From ef4d8fa3e13aab4cb7b0c6cca33cbf8e255bf16e Mon Sep 17 00:00:00 2001 From: saberzero1 Date: Sat, 25 Apr 2026 22:56:57 +0200 Subject: [PATCH] feat: sync body.theme-dark/body.theme-light class with saved-theme attribute --- dist/components/index.js | 2 +- dist/components/index.js.map | 2 +- dist/index.js | 2 +- dist/index.js.map | 2 +- src/components/scripts/darkmode.inline.ts | 12 ++++++++++++ 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/dist/components/index.js b/dist/components/index.js index 4d471c7..ce93b93 100644 --- a/dist/components/index.js +++ b/dist/components/index.js @@ -343,7 +343,7 @@ function i18n(locale) { } // src/components/scripts/darkmode.inline.ts -var darkmode_inline_default = 'var c=window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark",s=localStorage.getItem("theme")??c;document.documentElement.setAttribute("saved-theme",s);var o=t=>{let n=new CustomEvent("themechange",{detail:{theme:t}});document.dispatchEvent(n)},a=()=>{let t=()=>{let e=document.documentElement.getAttribute("saved-theme")==="dark"?"light":"dark";document.documentElement.setAttribute("saved-theme",e),localStorage.setItem("theme",e),o(e)},n=e=>{let m=e.matches?"dark":"light";document.documentElement.setAttribute("saved-theme",m),localStorage.setItem("theme",m),o(m)};for(let e of document.getElementsByClassName("darkmode"))e.addEventListener("click",t),window.addCleanup(()=>e.removeEventListener("click",t));let d=window.matchMedia("(prefers-color-scheme: dark)");d.addEventListener("change",n),window.addCleanup(()=>d.removeEventListener("change",n))};document.addEventListener("nav",a);document.addEventListener("render",a);\n'; +var darkmode_inline_default = 'var r=window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark",h=localStorage.getItem("theme")??r;document.documentElement.setAttribute("saved-theme",h);var m=t=>{document.body?.classList.remove("theme-dark","theme-light"),document.body?.classList.add(`theme-${t}`)},c=t=>{let n=new CustomEvent("themechange",{detail:{theme:t}});document.dispatchEvent(n)},s=()=>{let t=document.documentElement.getAttribute("saved-theme")??"light";m(t);let n=()=>{let e=document.documentElement.getAttribute("saved-theme")==="dark"?"light":"dark";document.documentElement.setAttribute("saved-theme",e),localStorage.setItem("theme",e),m(e),c(e)},o=e=>{let d=e.matches?"dark":"light";document.documentElement.setAttribute("saved-theme",d),localStorage.setItem("theme",d),m(d),c(d)};for(let e of document.getElementsByClassName("darkmode"))e.addEventListener("click",n),window.addCleanup(()=>e.removeEventListener("click",n));let a=window.matchMedia("(prefers-color-scheme: dark)");a.addEventListener("change",o),window.addCleanup(()=>a.removeEventListener("change",o))};document.addEventListener("nav",s);document.addEventListener("render",s);\n'; // src/components/styles/darkmode.scss var darkmode_default = ".darkmode {\n cursor: pointer;\n padding: 0;\n position: relative;\n background: none;\n border: none;\n width: 20px;\n height: 32px;\n margin: 0;\n text-align: inherit;\n flex-shrink: 0;\n}\n.darkmode svg {\n position: absolute;\n width: 20px;\n height: 20px;\n top: calc(50% - 10px);\n fill: var(--darkgray);\n transition: opacity 0.1s ease;\n}\n\n:root[saved-theme=dark] {\n color-scheme: dark;\n}\n\n:root[saved-theme=light] {\n color-scheme: light;\n}\n\n:root[saved-theme=dark] .darkmode > .dayIcon {\n display: none;\n}\n:root[saved-theme=dark] .darkmode > .nightIcon {\n display: inline;\n}\n\n:root .darkmode > .dayIcon {\n display: inline;\n}\n:root .darkmode > .nightIcon {\n display: none;\n}"; diff --git a/dist/components/index.js.map b/dist/components/index.js.map index 31d7e1a..0ed2f1f 100644 --- a/dist/components/index.js.map +++ b/dist/components/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../node_modules/@quartz-community/utils/src/lang.ts","../../src/i18n/locales/en-US.ts","../../src/i18n/locales/ar-SA.ts","../../src/i18n/locales/ca-ES.ts","../../src/i18n/locales/cs-CZ.ts","../../src/i18n/locales/de-DE.ts","../../src/i18n/locales/en-GB.ts","../../src/i18n/locales/es-ES.ts","../../src/i18n/locales/fa-IR.ts","../../src/i18n/locales/fi-FI.ts","../../src/i18n/locales/fr-FR.ts","../../src/i18n/locales/he-IL.ts","../../src/i18n/locales/hu-HU.ts","../../src/i18n/locales/id-ID.ts","../../src/i18n/locales/it-IT.ts","../../src/i18n/locales/ja-JP.ts","../../src/i18n/locales/kk-KZ.ts","../../src/i18n/locales/ko-KR.ts","../../src/i18n/locales/lt-LT.ts","../../src/i18n/locales/nb-NO.ts","../../src/i18n/locales/nl-NL.ts","../../src/i18n/locales/pl-PL.ts","../../src/i18n/locales/pt-BR.ts","../../src/i18n/locales/ro-RO.ts","../../src/i18n/locales/ru-RU.ts","../../src/i18n/locales/th-TH.ts","../../src/i18n/locales/tr-TR.ts","../../src/i18n/locales/uk-UA.ts","../../src/i18n/locales/vi-VN.ts","../../src/i18n/locales/zh-CN.ts","../../src/i18n/locales/zh-TW.ts","../../src/i18n/index.ts","../../src/components/scripts/darkmode.inline.ts","../../src/components/styles/darkmode.scss","../../src/components/Darkmode.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export function capitalize(s: string): string {\n return s.substring(0, 1).toUpperCase() + s.substring(1);\n}\n\nexport function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dark mode\",\n lightMode: \"Light mode\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"الوضع الليلي\",\n lightMode: \"الوضع النهاري\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode fosc\",\n lightMode: \"Mode clar\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tmavý režim\",\n lightMode: \"Světlý režim\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dunkler Modus\",\n lightMode: \"Heller Modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dark mode\",\n lightMode: \"Light mode\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Modo oscuro\",\n lightMode: \"Modo claro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"حالت تاریک\",\n lightMode: \"حالت روشن\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tumma tila\",\n lightMode: \"Vaalea tila\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode sombre\",\n lightMode: \"Mode clair\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"מצב כהה\",\n lightMode: \"מצב בהיר\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Sötét mód\",\n lightMode: \"Világos mód\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode Gelap\",\n lightMode: \"Mode Terang\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tema scuro\",\n lightMode: \"Tema chiaro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"ダークモード\",\n lightMode: \"ライトモード\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Қараңғы режим\",\n lightMode: \"Жарық режимі\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"다크 모드\",\n lightMode: \"라이트 모드\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tamsus Režimas\",\n lightMode: \"Šviesus Režimas\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mørk modus\",\n lightMode: \"Lys modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Donkere modus\",\n lightMode: \"Lichte modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tryb ciemny\",\n lightMode: \"Trzyb jasny\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tema escuro\",\n lightMode: \"Tema claro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Modul întunecat\",\n lightMode: \"Modul luminos\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Тёмный режим\",\n lightMode: \"Светлый режим\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"โหมดมืด\",\n lightMode: \"โหมดสว่าง\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Koyu mod\",\n lightMode: \"Açık mod\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Темний режим\",\n lightMode: \"Світлий режим\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Chế độ tối\",\n lightMode: \"Chế độ sáng\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"暗色模式\",\n lightMode: \"亮色模式\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"暗色模式\",\n lightMode: \"亮色模式\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\nimport arSA from \"./locales/ar-SA\";\nimport caES from \"./locales/ca-ES\";\nimport csCZ from \"./locales/cs-CZ\";\nimport deDE from \"./locales/de-DE\";\nimport enGB from \"./locales/en-GB\";\nimport esES from \"./locales/es-ES\";\nimport faIR from \"./locales/fa-IR\";\nimport fiFI from \"./locales/fi-FI\";\nimport frFR from \"./locales/fr-FR\";\nimport heIL from \"./locales/he-IL\";\nimport huHU from \"./locales/hu-HU\";\nimport idID from \"./locales/id-ID\";\nimport itIT from \"./locales/it-IT\";\nimport jaJP from \"./locales/ja-JP\";\nimport kkKZ from \"./locales/kk-KZ\";\nimport koKR from \"./locales/ko-KR\";\nimport ltLT from \"./locales/lt-LT\";\nimport nbNO from \"./locales/nb-NO\";\nimport nlNL from \"./locales/nl-NL\";\nimport plPL from \"./locales/pl-PL\";\nimport ptBR from \"./locales/pt-BR\";\nimport roRO from \"./locales/ro-RO\";\nimport ruRU from \"./locales/ru-RU\";\nimport thTH from \"./locales/th-TH\";\nimport trTR from \"./locales/tr-TR\";\nimport ukUA from \"./locales/uk-UA\";\nimport viVN from \"./locales/vi-VN\";\nimport zhCN from \"./locales/zh-CN\";\nimport zhTW from \"./locales/zh-TW\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n \"ar-SA\": arSA,\n \"ca-ES\": caES,\n \"cs-CZ\": csCZ,\n \"de-DE\": deDE,\n \"en-GB\": enGB,\n \"es-ES\": esES,\n \"fa-IR\": faIR,\n \"fi-FI\": fiFI,\n \"fr-FR\": frFR,\n \"he-IL\": heIL,\n \"hu-HU\": huHU,\n \"id-ID\": idID,\n \"it-IT\": itIT,\n \"ja-JP\": jaJP,\n \"kk-KZ\": kkKZ,\n \"ko-KR\": koKR,\n \"lt-LT\": ltLT,\n \"nb-NO\": nbNO,\n \"nl-NL\": nlNL,\n \"pl-PL\": plPL,\n \"pt-BR\": ptBR,\n \"ro-RO\": roRO,\n \"ru-RU\": ruRU,\n \"th-TH\": thTH,\n \"tr-TR\": trTR,\n \"uk-UA\": ukUA,\n \"vi-VN\": viVN,\n \"zh-CN\": zhCN,\n \"zh-TW\": zhTW,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n","var c=window.matchMedia(\"(prefers-color-scheme: light)\").matches?\"light\":\"dark\",s=localStorage.getItem(\"theme\")??c;document.documentElement.setAttribute(\"saved-theme\",s);var o=t=>{let n=new CustomEvent(\"themechange\",{detail:{theme:t}});document.dispatchEvent(n)},a=()=>{let t=()=>{let e=document.documentElement.getAttribute(\"saved-theme\")===\"dark\"?\"light\":\"dark\";document.documentElement.setAttribute(\"saved-theme\",e),localStorage.setItem(\"theme\",e),o(e)},n=e=>{let m=e.matches?\"dark\":\"light\";document.documentElement.setAttribute(\"saved-theme\",m),localStorage.setItem(\"theme\",m),o(m)};for(let e of document.getElementsByClassName(\"darkmode\"))e.addEventListener(\"click\",t),window.addCleanup(()=>e.removeEventListener(\"click\",t));let d=window.matchMedia(\"(prefers-color-scheme: dark)\");d.addEventListener(\"change\",n),window.addCleanup(()=>d.removeEventListener(\"change\",n))};document.addEventListener(\"nav\",a);document.addEventListener(\"render\",a);\n",".darkmode {\n cursor: pointer;\n padding: 0;\n position: relative;\n background: none;\n border: none;\n width: 20px;\n height: 32px;\n margin: 0;\n text-align: inherit;\n flex-shrink: 0;\n}\n.darkmode svg {\n position: absolute;\n width: 20px;\n height: 20px;\n top: calc(50% - 10px);\n fill: var(--darkgray);\n transition: opacity 0.1s ease;\n}\n\n:root[saved-theme=dark] {\n color-scheme: dark;\n}\n\n:root[saved-theme=light] {\n color-scheme: light;\n}\n\n:root[saved-theme=dark] .darkmode > .dayIcon {\n display: none;\n}\n:root[saved-theme=dark] .darkmode > .nightIcon {\n display: inline;\n}\n\n:root .darkmode > .dayIcon {\n display: inline;\n}\n:root .darkmode > .nightIcon {\n display: none;\n}","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport { i18n } from \"../i18n\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport darkmodeScript from \"./scripts/darkmode.inline.ts\";\nimport styles from \"./styles/darkmode.scss\";\n\nconst Darkmode: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const locale = i18n(cfg?.locale ?? \"en-US\");\n const darkModeLabel = locale.components.themeToggle.darkMode;\n const lightModeLabel = locale.components.themeToggle.lightMode;\n\n return (\n \n );\n};\n\nDarkmode.beforeDOMLoaded = darkmodeScript;\nDarkmode.css = styles;\n\nexport default (() => Darkmode) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../../node_modules/@quartz-community/utils/src/lang.ts","../../src/i18n/locales/en-US.ts","../../src/i18n/locales/ar-SA.ts","../../src/i18n/locales/ca-ES.ts","../../src/i18n/locales/cs-CZ.ts","../../src/i18n/locales/de-DE.ts","../../src/i18n/locales/en-GB.ts","../../src/i18n/locales/es-ES.ts","../../src/i18n/locales/fa-IR.ts","../../src/i18n/locales/fi-FI.ts","../../src/i18n/locales/fr-FR.ts","../../src/i18n/locales/he-IL.ts","../../src/i18n/locales/hu-HU.ts","../../src/i18n/locales/id-ID.ts","../../src/i18n/locales/it-IT.ts","../../src/i18n/locales/ja-JP.ts","../../src/i18n/locales/kk-KZ.ts","../../src/i18n/locales/ko-KR.ts","../../src/i18n/locales/lt-LT.ts","../../src/i18n/locales/nb-NO.ts","../../src/i18n/locales/nl-NL.ts","../../src/i18n/locales/pl-PL.ts","../../src/i18n/locales/pt-BR.ts","../../src/i18n/locales/ro-RO.ts","../../src/i18n/locales/ru-RU.ts","../../src/i18n/locales/th-TH.ts","../../src/i18n/locales/tr-TR.ts","../../src/i18n/locales/uk-UA.ts","../../src/i18n/locales/vi-VN.ts","../../src/i18n/locales/zh-CN.ts","../../src/i18n/locales/zh-TW.ts","../../src/i18n/index.ts","../../src/components/scripts/darkmode.inline.ts","../../src/components/styles/darkmode.scss","../../src/components/Darkmode.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export function capitalize(s: string): string {\n return s.substring(0, 1).toUpperCase() + s.substring(1);\n}\n\nexport function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dark mode\",\n lightMode: \"Light mode\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"الوضع الليلي\",\n lightMode: \"الوضع النهاري\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode fosc\",\n lightMode: \"Mode clar\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tmavý režim\",\n lightMode: \"Světlý režim\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dunkler Modus\",\n lightMode: \"Heller Modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dark mode\",\n lightMode: \"Light mode\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Modo oscuro\",\n lightMode: \"Modo claro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"حالت تاریک\",\n lightMode: \"حالت روشن\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tumma tila\",\n lightMode: \"Vaalea tila\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode sombre\",\n lightMode: \"Mode clair\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"מצב כהה\",\n lightMode: \"מצב בהיר\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Sötét mód\",\n lightMode: \"Világos mód\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode Gelap\",\n lightMode: \"Mode Terang\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tema scuro\",\n lightMode: \"Tema chiaro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"ダークモード\",\n lightMode: \"ライトモード\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Қараңғы режим\",\n lightMode: \"Жарық режимі\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"다크 모드\",\n lightMode: \"라이트 모드\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tamsus Režimas\",\n lightMode: \"Šviesus Režimas\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mørk modus\",\n lightMode: \"Lys modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Donkere modus\",\n lightMode: \"Lichte modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tryb ciemny\",\n lightMode: \"Trzyb jasny\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tema escuro\",\n lightMode: \"Tema claro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Modul întunecat\",\n lightMode: \"Modul luminos\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Тёмный режим\",\n lightMode: \"Светлый режим\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"โหมดมืด\",\n lightMode: \"โหมดสว่าง\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Koyu mod\",\n lightMode: \"Açık mod\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Темний режим\",\n lightMode: \"Світлий режим\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Chế độ tối\",\n lightMode: \"Chế độ sáng\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"暗色模式\",\n lightMode: \"亮色模式\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"暗色模式\",\n lightMode: \"亮色模式\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\nimport arSA from \"./locales/ar-SA\";\nimport caES from \"./locales/ca-ES\";\nimport csCZ from \"./locales/cs-CZ\";\nimport deDE from \"./locales/de-DE\";\nimport enGB from \"./locales/en-GB\";\nimport esES from \"./locales/es-ES\";\nimport faIR from \"./locales/fa-IR\";\nimport fiFI from \"./locales/fi-FI\";\nimport frFR from \"./locales/fr-FR\";\nimport heIL from \"./locales/he-IL\";\nimport huHU from \"./locales/hu-HU\";\nimport idID from \"./locales/id-ID\";\nimport itIT from \"./locales/it-IT\";\nimport jaJP from \"./locales/ja-JP\";\nimport kkKZ from \"./locales/kk-KZ\";\nimport koKR from \"./locales/ko-KR\";\nimport ltLT from \"./locales/lt-LT\";\nimport nbNO from \"./locales/nb-NO\";\nimport nlNL from \"./locales/nl-NL\";\nimport plPL from \"./locales/pl-PL\";\nimport ptBR from \"./locales/pt-BR\";\nimport roRO from \"./locales/ro-RO\";\nimport ruRU from \"./locales/ru-RU\";\nimport thTH from \"./locales/th-TH\";\nimport trTR from \"./locales/tr-TR\";\nimport ukUA from \"./locales/uk-UA\";\nimport viVN from \"./locales/vi-VN\";\nimport zhCN from \"./locales/zh-CN\";\nimport zhTW from \"./locales/zh-TW\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n \"ar-SA\": arSA,\n \"ca-ES\": caES,\n \"cs-CZ\": csCZ,\n \"de-DE\": deDE,\n \"en-GB\": enGB,\n \"es-ES\": esES,\n \"fa-IR\": faIR,\n \"fi-FI\": fiFI,\n \"fr-FR\": frFR,\n \"he-IL\": heIL,\n \"hu-HU\": huHU,\n \"id-ID\": idID,\n \"it-IT\": itIT,\n \"ja-JP\": jaJP,\n \"kk-KZ\": kkKZ,\n \"ko-KR\": koKR,\n \"lt-LT\": ltLT,\n \"nb-NO\": nbNO,\n \"nl-NL\": nlNL,\n \"pl-PL\": plPL,\n \"pt-BR\": ptBR,\n \"ro-RO\": roRO,\n \"ru-RU\": ruRU,\n \"th-TH\": thTH,\n \"tr-TR\": trTR,\n \"uk-UA\": ukUA,\n \"vi-VN\": viVN,\n \"zh-CN\": zhCN,\n \"zh-TW\": zhTW,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n","var r=window.matchMedia(\"(prefers-color-scheme: light)\").matches?\"light\":\"dark\",h=localStorage.getItem(\"theme\")??r;document.documentElement.setAttribute(\"saved-theme\",h);var m=t=>{document.body?.classList.remove(\"theme-dark\",\"theme-light\"),document.body?.classList.add(`theme-${t}`)},c=t=>{let n=new CustomEvent(\"themechange\",{detail:{theme:t}});document.dispatchEvent(n)},s=()=>{let t=document.documentElement.getAttribute(\"saved-theme\")??\"light\";m(t);let n=()=>{let e=document.documentElement.getAttribute(\"saved-theme\")===\"dark\"?\"light\":\"dark\";document.documentElement.setAttribute(\"saved-theme\",e),localStorage.setItem(\"theme\",e),m(e),c(e)},o=e=>{let d=e.matches?\"dark\":\"light\";document.documentElement.setAttribute(\"saved-theme\",d),localStorage.setItem(\"theme\",d),m(d),c(d)};for(let e of document.getElementsByClassName(\"darkmode\"))e.addEventListener(\"click\",n),window.addCleanup(()=>e.removeEventListener(\"click\",n));let a=window.matchMedia(\"(prefers-color-scheme: dark)\");a.addEventListener(\"change\",o),window.addCleanup(()=>a.removeEventListener(\"change\",o))};document.addEventListener(\"nav\",s);document.addEventListener(\"render\",s);\n",".darkmode {\n cursor: pointer;\n padding: 0;\n position: relative;\n background: none;\n border: none;\n width: 20px;\n height: 32px;\n margin: 0;\n text-align: inherit;\n flex-shrink: 0;\n}\n.darkmode svg {\n position: absolute;\n width: 20px;\n height: 20px;\n top: calc(50% - 10px);\n fill: var(--darkgray);\n transition: opacity 0.1s ease;\n}\n\n:root[saved-theme=dark] {\n color-scheme: dark;\n}\n\n:root[saved-theme=light] {\n color-scheme: light;\n}\n\n:root[saved-theme=dark] .darkmode > .dayIcon {\n display: none;\n}\n:root[saved-theme=dark] .darkmode > .nightIcon {\n display: inline;\n}\n\n:root .darkmode > .dayIcon {\n display: inline;\n}\n:root .darkmode > .nightIcon {\n display: none;\n}","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport { i18n } from \"../i18n\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport darkmodeScript from \"./scripts/darkmode.inline.ts\";\nimport styles from \"./styles/darkmode.scss\";\n\nconst Darkmode: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const locale = i18n(cfg?.locale ?? \"en-US\");\n const darkModeLabel = locale.components.themeToggle.darkMode;\n const lightModeLabel = locale.components.themeToggle.lightMode;\n\n return (\n \n );\n};\n\nDarkmode.beforeDOMLoaded = darkmodeScript;\nDarkmode.css = styles;\n\nexport default (() => Darkmode) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 4d471c7..ce93b93 100644 --- a/dist/index.js +++ b/dist/index.js @@ -343,7 +343,7 @@ function i18n(locale) { } // src/components/scripts/darkmode.inline.ts -var darkmode_inline_default = 'var c=window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark",s=localStorage.getItem("theme")??c;document.documentElement.setAttribute("saved-theme",s);var o=t=>{let n=new CustomEvent("themechange",{detail:{theme:t}});document.dispatchEvent(n)},a=()=>{let t=()=>{let e=document.documentElement.getAttribute("saved-theme")==="dark"?"light":"dark";document.documentElement.setAttribute("saved-theme",e),localStorage.setItem("theme",e),o(e)},n=e=>{let m=e.matches?"dark":"light";document.documentElement.setAttribute("saved-theme",m),localStorage.setItem("theme",m),o(m)};for(let e of document.getElementsByClassName("darkmode"))e.addEventListener("click",t),window.addCleanup(()=>e.removeEventListener("click",t));let d=window.matchMedia("(prefers-color-scheme: dark)");d.addEventListener("change",n),window.addCleanup(()=>d.removeEventListener("change",n))};document.addEventListener("nav",a);document.addEventListener("render",a);\n'; +var darkmode_inline_default = 'var r=window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark",h=localStorage.getItem("theme")??r;document.documentElement.setAttribute("saved-theme",h);var m=t=>{document.body?.classList.remove("theme-dark","theme-light"),document.body?.classList.add(`theme-${t}`)},c=t=>{let n=new CustomEvent("themechange",{detail:{theme:t}});document.dispatchEvent(n)},s=()=>{let t=document.documentElement.getAttribute("saved-theme")??"light";m(t);let n=()=>{let e=document.documentElement.getAttribute("saved-theme")==="dark"?"light":"dark";document.documentElement.setAttribute("saved-theme",e),localStorage.setItem("theme",e),m(e),c(e)},o=e=>{let d=e.matches?"dark":"light";document.documentElement.setAttribute("saved-theme",d),localStorage.setItem("theme",d),m(d),c(d)};for(let e of document.getElementsByClassName("darkmode"))e.addEventListener("click",n),window.addCleanup(()=>e.removeEventListener("click",n));let a=window.matchMedia("(prefers-color-scheme: dark)");a.addEventListener("change",o),window.addCleanup(()=>a.removeEventListener("change",o))};document.addEventListener("nav",s);document.addEventListener("render",s);\n'; // src/components/styles/darkmode.scss var darkmode_default = ".darkmode {\n cursor: pointer;\n padding: 0;\n position: relative;\n background: none;\n border: none;\n width: 20px;\n height: 32px;\n margin: 0;\n text-align: inherit;\n flex-shrink: 0;\n}\n.darkmode svg {\n position: absolute;\n width: 20px;\n height: 20px;\n top: calc(50% - 10px);\n fill: var(--darkgray);\n transition: opacity 0.1s ease;\n}\n\n:root[saved-theme=dark] {\n color-scheme: dark;\n}\n\n:root[saved-theme=light] {\n color-scheme: light;\n}\n\n:root[saved-theme=dark] .darkmode > .dayIcon {\n display: none;\n}\n:root[saved-theme=dark] .darkmode > .nightIcon {\n display: inline;\n}\n\n:root .darkmode > .dayIcon {\n display: inline;\n}\n:root .darkmode > .nightIcon {\n display: none;\n}"; diff --git a/dist/index.js.map b/dist/index.js.map index a43ad92..bb249af 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/@quartz-community/utils/src/lang.ts","../src/i18n/locales/en-US.ts","../src/i18n/locales/ar-SA.ts","../src/i18n/locales/ca-ES.ts","../src/i18n/locales/cs-CZ.ts","../src/i18n/locales/de-DE.ts","../src/i18n/locales/en-GB.ts","../src/i18n/locales/es-ES.ts","../src/i18n/locales/fa-IR.ts","../src/i18n/locales/fi-FI.ts","../src/i18n/locales/fr-FR.ts","../src/i18n/locales/he-IL.ts","../src/i18n/locales/hu-HU.ts","../src/i18n/locales/id-ID.ts","../src/i18n/locales/it-IT.ts","../src/i18n/locales/ja-JP.ts","../src/i18n/locales/kk-KZ.ts","../src/i18n/locales/ko-KR.ts","../src/i18n/locales/lt-LT.ts","../src/i18n/locales/nb-NO.ts","../src/i18n/locales/nl-NL.ts","../src/i18n/locales/pl-PL.ts","../src/i18n/locales/pt-BR.ts","../src/i18n/locales/ro-RO.ts","../src/i18n/locales/ru-RU.ts","../src/i18n/locales/th-TH.ts","../src/i18n/locales/tr-TR.ts","../src/i18n/locales/uk-UA.ts","../src/i18n/locales/vi-VN.ts","../src/i18n/locales/zh-CN.ts","../src/i18n/locales/zh-TW.ts","../src/i18n/index.ts","../src/components/scripts/darkmode.inline.ts","../src/components/styles/darkmode.scss","../src/components/Darkmode.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export function capitalize(s: string): string {\n return s.substring(0, 1).toUpperCase() + s.substring(1);\n}\n\nexport function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dark mode\",\n lightMode: \"Light mode\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"الوضع الليلي\",\n lightMode: \"الوضع النهاري\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode fosc\",\n lightMode: \"Mode clar\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tmavý režim\",\n lightMode: \"Světlý režim\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dunkler Modus\",\n lightMode: \"Heller Modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dark mode\",\n lightMode: \"Light mode\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Modo oscuro\",\n lightMode: \"Modo claro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"حالت تاریک\",\n lightMode: \"حالت روشن\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tumma tila\",\n lightMode: \"Vaalea tila\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode sombre\",\n lightMode: \"Mode clair\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"מצב כהה\",\n lightMode: \"מצב בהיר\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Sötét mód\",\n lightMode: \"Világos mód\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode Gelap\",\n lightMode: \"Mode Terang\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tema scuro\",\n lightMode: \"Tema chiaro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"ダークモード\",\n lightMode: \"ライトモード\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Қараңғы режим\",\n lightMode: \"Жарық режимі\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"다크 모드\",\n lightMode: \"라이트 모드\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tamsus Režimas\",\n lightMode: \"Šviesus Režimas\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mørk modus\",\n lightMode: \"Lys modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Donkere modus\",\n lightMode: \"Lichte modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tryb ciemny\",\n lightMode: \"Trzyb jasny\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tema escuro\",\n lightMode: \"Tema claro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Modul întunecat\",\n lightMode: \"Modul luminos\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Тёмный режим\",\n lightMode: \"Светлый режим\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"โหมดมืด\",\n lightMode: \"โหมดสว่าง\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Koyu mod\",\n lightMode: \"Açık mod\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Темний режим\",\n lightMode: \"Світлий режим\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Chế độ tối\",\n lightMode: \"Chế độ sáng\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"暗色模式\",\n lightMode: \"亮色模式\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"暗色模式\",\n lightMode: \"亮色模式\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\nimport arSA from \"./locales/ar-SA\";\nimport caES from \"./locales/ca-ES\";\nimport csCZ from \"./locales/cs-CZ\";\nimport deDE from \"./locales/de-DE\";\nimport enGB from \"./locales/en-GB\";\nimport esES from \"./locales/es-ES\";\nimport faIR from \"./locales/fa-IR\";\nimport fiFI from \"./locales/fi-FI\";\nimport frFR from \"./locales/fr-FR\";\nimport heIL from \"./locales/he-IL\";\nimport huHU from \"./locales/hu-HU\";\nimport idID from \"./locales/id-ID\";\nimport itIT from \"./locales/it-IT\";\nimport jaJP from \"./locales/ja-JP\";\nimport kkKZ from \"./locales/kk-KZ\";\nimport koKR from \"./locales/ko-KR\";\nimport ltLT from \"./locales/lt-LT\";\nimport nbNO from \"./locales/nb-NO\";\nimport nlNL from \"./locales/nl-NL\";\nimport plPL from \"./locales/pl-PL\";\nimport ptBR from \"./locales/pt-BR\";\nimport roRO from \"./locales/ro-RO\";\nimport ruRU from \"./locales/ru-RU\";\nimport thTH from \"./locales/th-TH\";\nimport trTR from \"./locales/tr-TR\";\nimport ukUA from \"./locales/uk-UA\";\nimport viVN from \"./locales/vi-VN\";\nimport zhCN from \"./locales/zh-CN\";\nimport zhTW from \"./locales/zh-TW\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n \"ar-SA\": arSA,\n \"ca-ES\": caES,\n \"cs-CZ\": csCZ,\n \"de-DE\": deDE,\n \"en-GB\": enGB,\n \"es-ES\": esES,\n \"fa-IR\": faIR,\n \"fi-FI\": fiFI,\n \"fr-FR\": frFR,\n \"he-IL\": heIL,\n \"hu-HU\": huHU,\n \"id-ID\": idID,\n \"it-IT\": itIT,\n \"ja-JP\": jaJP,\n \"kk-KZ\": kkKZ,\n \"ko-KR\": koKR,\n \"lt-LT\": ltLT,\n \"nb-NO\": nbNO,\n \"nl-NL\": nlNL,\n \"pl-PL\": plPL,\n \"pt-BR\": ptBR,\n \"ro-RO\": roRO,\n \"ru-RU\": ruRU,\n \"th-TH\": thTH,\n \"tr-TR\": trTR,\n \"uk-UA\": ukUA,\n \"vi-VN\": viVN,\n \"zh-CN\": zhCN,\n \"zh-TW\": zhTW,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n","var c=window.matchMedia(\"(prefers-color-scheme: light)\").matches?\"light\":\"dark\",s=localStorage.getItem(\"theme\")??c;document.documentElement.setAttribute(\"saved-theme\",s);var o=t=>{let n=new CustomEvent(\"themechange\",{detail:{theme:t}});document.dispatchEvent(n)},a=()=>{let t=()=>{let e=document.documentElement.getAttribute(\"saved-theme\")===\"dark\"?\"light\":\"dark\";document.documentElement.setAttribute(\"saved-theme\",e),localStorage.setItem(\"theme\",e),o(e)},n=e=>{let m=e.matches?\"dark\":\"light\";document.documentElement.setAttribute(\"saved-theme\",m),localStorage.setItem(\"theme\",m),o(m)};for(let e of document.getElementsByClassName(\"darkmode\"))e.addEventListener(\"click\",t),window.addCleanup(()=>e.removeEventListener(\"click\",t));let d=window.matchMedia(\"(prefers-color-scheme: dark)\");d.addEventListener(\"change\",n),window.addCleanup(()=>d.removeEventListener(\"change\",n))};document.addEventListener(\"nav\",a);document.addEventListener(\"render\",a);\n",".darkmode {\n cursor: pointer;\n padding: 0;\n position: relative;\n background: none;\n border: none;\n width: 20px;\n height: 32px;\n margin: 0;\n text-align: inherit;\n flex-shrink: 0;\n}\n.darkmode svg {\n position: absolute;\n width: 20px;\n height: 20px;\n top: calc(50% - 10px);\n fill: var(--darkgray);\n transition: opacity 0.1s ease;\n}\n\n:root[saved-theme=dark] {\n color-scheme: dark;\n}\n\n:root[saved-theme=light] {\n color-scheme: light;\n}\n\n:root[saved-theme=dark] .darkmode > .dayIcon {\n display: none;\n}\n:root[saved-theme=dark] .darkmode > .nightIcon {\n display: inline;\n}\n\n:root .darkmode > .dayIcon {\n display: inline;\n}\n:root .darkmode > .nightIcon {\n display: none;\n}","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport { i18n } from \"../i18n\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport darkmodeScript from \"./scripts/darkmode.inline.ts\";\nimport styles from \"./styles/darkmode.scss\";\n\nconst Darkmode: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const locale = i18n(cfg?.locale ?? \"en-US\");\n const darkModeLabel = locale.components.themeToggle.darkMode;\n const lightModeLabel = locale.components.themeToggle.lightMode;\n\n return (\n \n );\n};\n\nDarkmode.beforeDOMLoaded = darkmodeScript;\nDarkmode.css = styles;\n\nexport default (() => Darkmode) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../node_modules/@quartz-community/utils/src/lang.ts","../src/i18n/locales/en-US.ts","../src/i18n/locales/ar-SA.ts","../src/i18n/locales/ca-ES.ts","../src/i18n/locales/cs-CZ.ts","../src/i18n/locales/de-DE.ts","../src/i18n/locales/en-GB.ts","../src/i18n/locales/es-ES.ts","../src/i18n/locales/fa-IR.ts","../src/i18n/locales/fi-FI.ts","../src/i18n/locales/fr-FR.ts","../src/i18n/locales/he-IL.ts","../src/i18n/locales/hu-HU.ts","../src/i18n/locales/id-ID.ts","../src/i18n/locales/it-IT.ts","../src/i18n/locales/ja-JP.ts","../src/i18n/locales/kk-KZ.ts","../src/i18n/locales/ko-KR.ts","../src/i18n/locales/lt-LT.ts","../src/i18n/locales/nb-NO.ts","../src/i18n/locales/nl-NL.ts","../src/i18n/locales/pl-PL.ts","../src/i18n/locales/pt-BR.ts","../src/i18n/locales/ro-RO.ts","../src/i18n/locales/ru-RU.ts","../src/i18n/locales/th-TH.ts","../src/i18n/locales/tr-TR.ts","../src/i18n/locales/uk-UA.ts","../src/i18n/locales/vi-VN.ts","../src/i18n/locales/zh-CN.ts","../src/i18n/locales/zh-TW.ts","../src/i18n/index.ts","../src/components/scripts/darkmode.inline.ts","../src/components/styles/darkmode.scss","../src/components/Darkmode.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export function capitalize(s: string): string {\n return s.substring(0, 1).toUpperCase() + s.substring(1);\n}\n\nexport function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dark mode\",\n lightMode: \"Light mode\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"الوضع الليلي\",\n lightMode: \"الوضع النهاري\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode fosc\",\n lightMode: \"Mode clar\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tmavý režim\",\n lightMode: \"Světlý režim\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dunkler Modus\",\n lightMode: \"Heller Modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Dark mode\",\n lightMode: \"Light mode\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Modo oscuro\",\n lightMode: \"Modo claro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"حالت تاریک\",\n lightMode: \"حالت روشن\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tumma tila\",\n lightMode: \"Vaalea tila\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode sombre\",\n lightMode: \"Mode clair\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"מצב כהה\",\n lightMode: \"מצב בהיר\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Sötét mód\",\n lightMode: \"Világos mód\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mode Gelap\",\n lightMode: \"Mode Terang\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tema scuro\",\n lightMode: \"Tema chiaro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"ダークモード\",\n lightMode: \"ライトモード\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Қараңғы режим\",\n lightMode: \"Жарық режимі\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"다크 모드\",\n lightMode: \"라이트 모드\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tamsus Režimas\",\n lightMode: \"Šviesus Režimas\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Mørk modus\",\n lightMode: \"Lys modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Donkere modus\",\n lightMode: \"Lichte modus\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tryb ciemny\",\n lightMode: \"Trzyb jasny\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Tema escuro\",\n lightMode: \"Tema claro\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Modul întunecat\",\n lightMode: \"Modul luminos\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Тёмный режим\",\n lightMode: \"Светлый режим\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"โหมดมืด\",\n lightMode: \"โหมดสว่าง\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Koyu mod\",\n lightMode: \"Açık mod\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Темний режим\",\n lightMode: \"Світлий режим\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"Chế độ tối\",\n lightMode: \"Chế độ sáng\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"暗色模式\",\n lightMode: \"亮色模式\",\n },\n },\n};\n","export default {\n components: {\n themeToggle: {\n darkMode: \"暗色模式\",\n lightMode: \"亮色模式\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\nimport arSA from \"./locales/ar-SA\";\nimport caES from \"./locales/ca-ES\";\nimport csCZ from \"./locales/cs-CZ\";\nimport deDE from \"./locales/de-DE\";\nimport enGB from \"./locales/en-GB\";\nimport esES from \"./locales/es-ES\";\nimport faIR from \"./locales/fa-IR\";\nimport fiFI from \"./locales/fi-FI\";\nimport frFR from \"./locales/fr-FR\";\nimport heIL from \"./locales/he-IL\";\nimport huHU from \"./locales/hu-HU\";\nimport idID from \"./locales/id-ID\";\nimport itIT from \"./locales/it-IT\";\nimport jaJP from \"./locales/ja-JP\";\nimport kkKZ from \"./locales/kk-KZ\";\nimport koKR from \"./locales/ko-KR\";\nimport ltLT from \"./locales/lt-LT\";\nimport nbNO from \"./locales/nb-NO\";\nimport nlNL from \"./locales/nl-NL\";\nimport plPL from \"./locales/pl-PL\";\nimport ptBR from \"./locales/pt-BR\";\nimport roRO from \"./locales/ro-RO\";\nimport ruRU from \"./locales/ru-RU\";\nimport thTH from \"./locales/th-TH\";\nimport trTR from \"./locales/tr-TR\";\nimport ukUA from \"./locales/uk-UA\";\nimport viVN from \"./locales/vi-VN\";\nimport zhCN from \"./locales/zh-CN\";\nimport zhTW from \"./locales/zh-TW\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n \"ar-SA\": arSA,\n \"ca-ES\": caES,\n \"cs-CZ\": csCZ,\n \"de-DE\": deDE,\n \"en-GB\": enGB,\n \"es-ES\": esES,\n \"fa-IR\": faIR,\n \"fi-FI\": fiFI,\n \"fr-FR\": frFR,\n \"he-IL\": heIL,\n \"hu-HU\": huHU,\n \"id-ID\": idID,\n \"it-IT\": itIT,\n \"ja-JP\": jaJP,\n \"kk-KZ\": kkKZ,\n \"ko-KR\": koKR,\n \"lt-LT\": ltLT,\n \"nb-NO\": nbNO,\n \"nl-NL\": nlNL,\n \"pl-PL\": plPL,\n \"pt-BR\": ptBR,\n \"ro-RO\": roRO,\n \"ru-RU\": ruRU,\n \"th-TH\": thTH,\n \"tr-TR\": trTR,\n \"uk-UA\": ukUA,\n \"vi-VN\": viVN,\n \"zh-CN\": zhCN,\n \"zh-TW\": zhTW,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n","var r=window.matchMedia(\"(prefers-color-scheme: light)\").matches?\"light\":\"dark\",h=localStorage.getItem(\"theme\")??r;document.documentElement.setAttribute(\"saved-theme\",h);var m=t=>{document.body?.classList.remove(\"theme-dark\",\"theme-light\"),document.body?.classList.add(`theme-${t}`)},c=t=>{let n=new CustomEvent(\"themechange\",{detail:{theme:t}});document.dispatchEvent(n)},s=()=>{let t=document.documentElement.getAttribute(\"saved-theme\")??\"light\";m(t);let n=()=>{let e=document.documentElement.getAttribute(\"saved-theme\")===\"dark\"?\"light\":\"dark\";document.documentElement.setAttribute(\"saved-theme\",e),localStorage.setItem(\"theme\",e),m(e),c(e)},o=e=>{let d=e.matches?\"dark\":\"light\";document.documentElement.setAttribute(\"saved-theme\",d),localStorage.setItem(\"theme\",d),m(d),c(d)};for(let e of document.getElementsByClassName(\"darkmode\"))e.addEventListener(\"click\",n),window.addCleanup(()=>e.removeEventListener(\"click\",n));let a=window.matchMedia(\"(prefers-color-scheme: dark)\");a.addEventListener(\"change\",o),window.addCleanup(()=>a.removeEventListener(\"change\",o))};document.addEventListener(\"nav\",s);document.addEventListener(\"render\",s);\n",".darkmode {\n cursor: pointer;\n padding: 0;\n position: relative;\n background: none;\n border: none;\n width: 20px;\n height: 32px;\n margin: 0;\n text-align: inherit;\n flex-shrink: 0;\n}\n.darkmode svg {\n position: absolute;\n width: 20px;\n height: 20px;\n top: calc(50% - 10px);\n fill: var(--darkgray);\n transition: opacity 0.1s ease;\n}\n\n:root[saved-theme=dark] {\n color-scheme: dark;\n}\n\n:root[saved-theme=light] {\n color-scheme: light;\n}\n\n:root[saved-theme=dark] .darkmode > .dayIcon {\n display: none;\n}\n:root[saved-theme=dark] .darkmode > .nightIcon {\n display: inline;\n}\n\n:root .darkmode > .dayIcon {\n display: inline;\n}\n:root .darkmode > .nightIcon {\n display: none;\n}","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport { i18n } from \"../i18n\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport darkmodeScript from \"./scripts/darkmode.inline.ts\";\nimport styles from \"./styles/darkmode.scss\";\n\nconst Darkmode: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const locale = i18n(cfg?.locale ?? \"en-US\");\n const darkModeLabel = locale.components.themeToggle.darkMode;\n const lightModeLabel = locale.components.themeToggle.lightMode;\n\n return (\n \n );\n};\n\nDarkmode.beforeDOMLoaded = darkmodeScript;\nDarkmode.css = styles;\n\nexport default (() => Darkmode) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file diff --git a/src/components/scripts/darkmode.inline.ts b/src/components/scripts/darkmode.inline.ts index ecf3b50..9524c02 100644 --- a/src/components/scripts/darkmode.inline.ts +++ b/src/components/scripts/darkmode.inline.ts @@ -2,6 +2,11 @@ const userPref = window.matchMedia("(prefers-color-scheme: light)").matches ? "l const currentTheme = localStorage.getItem("theme") ?? userPref; document.documentElement.setAttribute("saved-theme", currentTheme); +const syncBodyThemeClass = (theme: "light" | "dark") => { + document.body?.classList.remove("theme-dark", "theme-light"); + document.body?.classList.add(`theme-${theme}`); +}; + const emitThemeChangeEvent = (theme: "light" | "dark") => { const event: CustomEventMap["themechange"] = new CustomEvent("themechange", { detail: { theme }, @@ -10,11 +15,17 @@ const emitThemeChangeEvent = (theme: "light" | "dark") => { }; const setupDarkmode = () => { + // Sync body class with current theme on setup (runs after DOM is ready) + const currentSavedTheme = + (document.documentElement.getAttribute("saved-theme") as "light" | "dark") ?? "light"; + syncBodyThemeClass(currentSavedTheme); + const switchTheme = () => { const newTheme = document.documentElement.getAttribute("saved-theme") === "dark" ? "light" : "dark"; document.documentElement.setAttribute("saved-theme", newTheme); localStorage.setItem("theme", newTheme); + syncBodyThemeClass(newTheme); emitThemeChangeEvent(newTheme); }; @@ -22,6 +33,7 @@ const setupDarkmode = () => { const newTheme = e.matches ? "dark" : "light"; document.documentElement.setAttribute("saved-theme", newTheme); localStorage.setItem("theme", newTheme); + syncBodyThemeClass(newTheme); emitThemeChangeEvent(newTheme); };