@aotearoan/neon
Version:
Neon is a lightweight design library of Vue 3 components with minimal dependencies.
3 lines (2 loc) • 1.9 kB
JavaScript
;var s=Object.defineProperty;var d=(n,a,t)=>a in n?s(n,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[a]=t;var c=(n,a,t)=>(d(n,typeof a!="symbol"?a+"":a,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../enums/NeonMode.cjs.js"),e=class e{static getMode(){return e.mode}static init(a){if(a)e.defaultMode=a,e.mode=e.defaultMode;else{const t=window.matchMedia("(prefers-color-scheme: dark)").matches,i=window.matchMedia("(prefers-color-scheme: light)").matches;t?e.mode=o.NeonMode.Dark:i?e.mode=o.NeonMode.Light:e.mode=e.defaultMode}}static addListener(a,t){window.matchMedia&&(Object.keys(e.callbacks).length===0&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e.onDarkChange),window.matchMedia("(prefers-color-scheme: light)").addEventListener("change",e.onLightChange),window.matchMedia("(prefers-color-scheme: no-preference)").addEventListener("change",e.onNoPreferenceChange)),e.callbacks[a]=t,t(e.mode||e.defaultMode))}static removeListener(a){delete e.callbacks[a],Object.keys(e.callbacks).length===0&&window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",e.onDarkChange),window.matchMedia("(prefers-color-scheme: light)").removeEventListener("change",e.onLightChange),window.matchMedia("(prefers-color-scheme: no-preference)").removeEventListener("change",e.onNoPreferenceChange))}static getCallbacks(){return e.callbacks}static onDarkChange(a){e.onChange(a,o.NeonMode.Dark)}static onLightChange(a){e.onChange(a,o.NeonMode.Light)}static onNoPreferenceChange(a){e.onChange(a,e.defaultMode)}static onChange(a,t){a.matches&&e.handleChange(t)}static handleChange(a){Object.values(e.callbacks).forEach(t=>t(a))}};c(e,"callbacks",{}),c(e,"defaultMode",o.NeonMode.Dark),c(e,"mode",null);let r=e;exports.NeonModeUtils=r;
//# sourceMappingURL=NeonModeUtils.cjs.js.map