{"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","readyState","once","stampVersion","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\";\nimport { stampVersion } from \"./config\";\nimport { isBrowser } from \"./browser\";\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 if (isBrowser()) {\n if (document.readyState === \"interactive\") {\n initModeChangeEvent();\n } else {\n document.addEventListener(\"DOMContentLoaded\", () => initModeChangeEvent(), { once: true });\n }\n }\n\n stampVersion();\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":";;;;;4HAKgBA,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,aCzBE,GAAIC,IAAa,CACf,GAAIzB,SAAS0B,aAAe,cAAe,CACzC5B,G,KACK,CACLE,SAASmB,iBAAiB,oBAAoB,IAAMrB,KAAuB,CAAE6B,KAAM,M,EAIvFC,GACF,CClBY,MAACC,EAAgBC,S","ignoreList":[]}