{"version":3,"names":["initModeChangeEvent","classList","document","body","prefersDark","window","matchMedia","matches","getMode","contains","darkMode","autoMode","emitModeChange","mode","dispatchEvent","CustomEvent","bubbles","detail","modeChangeHandler","newMode","currentMode","addEventListener","event","MutationObserver","observe","attributes","attributeFilter","isBrowser","location","readyState","once","globalScripts","appGlobalScript"],"sources":["src/utils/mode.ts","src/utils/globalScript.ts","@stencil/core/internal/app-globals"],"sourcesContent":["import { autoMode, darkMode } from \"./resources\";\n\n/**\n * Emits when the mode is dynamically toggled between light and dark on or in OS preferences.\n */\nexport function initModeChangeEvent(): void {\n const { classList } = document.body;\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n const getMode = (): string =>\n classList.contains(darkMode) || (classList.contains(autoMode) && prefersDark) ? \"dark\" : \"light\";\n\n const emitModeChange = (mode: string) =>\n document.body.dispatchEvent(new CustomEvent(\"calciteModeChange\", { bubbles: true, detail: { mode } }));\n\n const modeChangeHandler = (newMode: string): void => {\n currentMode !== newMode && emitModeChange(newMode);\n currentMode = newMode;\n };\n\n let currentMode = getMode();\n\n // emits event on page load\n emitModeChange(currentMode);\n\n // emits event when changing OS mode preferences\n window\n .matchMedia(\"(prefers-color-scheme: dark)\")\n .addEventListener(\"change\", (event) => modeChangeHandler(event.matches ? \"dark\" : \"light\"));\n\n // emits event when toggling between mode classes on \n new MutationObserver(() => modeChangeHandler(getMode())).observe(document.body, {\n attributes: true,\n attributeFilter: [\"class\"],\n });\n}\n","import { initModeChangeEvent } from \"./mode\";\n\n/**\n * This file is imported in Stencil's `globalScript` config option.\n *\n * @see {@link https://stenciljs.com/docs/config#globalscript}\n */\nexport default function (): void {\n const isBrowser =\n typeof window !== \"undefined\" &&\n typeof location !== \"undefined\" &&\n typeof document !== \"undefined\" &&\n window.location === location &&\n window.document === document;\n\n if (isBrowser) {\n if (document.readyState === \"interactive\") {\n initModeChangeEvent();\n } else {\n document.addEventListener(\"DOMContentLoaded\", () => initModeChangeEvent(), { once: true });\n }\n }\n}\n","import appGlobalScript from '/home/runner/work/calcite-design-system/calcite-design-system/packages/calcite-components/src/utils/globalScript.ts';\nexport const globalScripts = appGlobalScript;\n"],"mappings":";;;;;oDAKgBA,IACd,MAAMC,UAAEA,GAAcC,SAASC,KAC/B,MAAMC,EAAcC,OAAOC,WAAW,gCAAgCC,QAEtE,MAAMC,EAAU,IACdP,EAAUQ,SAASC,IAAcT,EAAUQ,SAASE,IAAaP,EAAe,OAAS,QAE3F,MAAMQ,EAAkBC,GACtBX,SAASC,KAAKW,cAAc,IAAIC,YAAY,oBAAqB,CAAEC,QAAS,KAAMC,OAAQ,CAAEJ,WAE9F,MAAMK,EAAqBC,IACzBC,IAAgBD,GAAWP,EAAeO,GAC1CC,EAAcD,CAAO,EAGvB,IAAIC,EAAcZ,IAGlBI,EAAeQ,GAGff,OACGC,WAAW,gCACXe,iBAAiB,UAAWC,GAAUJ,EAAkBI,EAAMf,QAAU,OAAS,WAGpF,IAAIgB,kBAAiB,IAAML,EAAkBV,OAAYgB,QAAQtB,SAASC,KAAM,CAC9EsB,WAAY,KACZC,gBAAiB,CAAC,UAEtB,C,aC3BE,MAAMC,SACGtB,SAAW,oBACXuB,WAAa,oBACb1B,WAAa,aACpBG,OAAOuB,WAAaA,UACpBvB,OAAOH,WAAaA,SAEtB,GAAIyB,EAAW,CACb,GAAIzB,SAAS2B,aAAe,cAAe,CACzC7B,G,KACK,CACLE,SAASmB,iBAAiB,oBAAoB,IAAMrB,KAAuB,CAAE8B,KAAM,M,EAGzF,CCrBY,MAACC,EAAgBC,S"}