@aotearoan/neon
Version:
Neon is a lightweight design library of Vue 3 components with minimal dependencies.
3 lines (2 loc) • 1.94 kB
JavaScript
;var i=Object.defineProperty;var n=(c,a,s)=>a in c?i(c,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):c[a]=s;var o=(c,a,s)=>n(c,typeof a!="symbol"?a+"":a,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../model/common/color/NeonMode.cjs.js"),e=class e{static init(a,s){a&&(e.defaultMode=a,e.mode=a),s&&(e.callback=s),e.switchMode(e.mode),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e.onDarkChange),window.matchMedia("(prefers-color-scheme: light)").addEventListener("change",e.onLightChange))}static destroy(){window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",e.onDarkChange),window.matchMedia("(prefers-color-scheme: light)").removeEventListener("change",e.onLightChange)}static switchMode(a){switch(e.mode=a,a){case t.NeonMode.Light:e.updateClasses(!1);break;case t.NeonMode.Dark:e.updateClasses(!0);break;case t.NeonMode.System:window.matchMedia("(prefers-color-scheme: dark)").matches?(e.updateClasses(!0),e.callback&&e.callback(!0)):window.matchMedia("(prefers-color-scheme: light)").matches?(e.updateClasses(!1),e.callback&&e.callback(!1)):(e.updateClasses(e.defaultMode===t.NeonMode.Dark),e.callback&&e.callback(e.defaultMode===t.NeonMode.Dark));break}}static getMode(){return e.mode}static onDarkChange(a){e.mode===t.NeonMode.System&&a.matches&&(e.updateClasses(!0),e.callback&&e.callback(!0))}static onLightChange(a){e.mode===t.NeonMode.System&&a.matches&&(e.updateClasses(!1),e.callback&&e.callback(!1))}static updateClasses(a){document.documentElement.classList.remove(`neon-mode--${a?t.NeonMode.Light:t.NeonMode.Dark}`),document.documentElement.classList.add(`neon-mode--${a?t.NeonMode.Dark:t.NeonMode.Light}`)}};o(e,"defaultMode",t.NeonMode.Light),o(e,"mode",t.NeonMode.Light),o(e,"callback",null);let d=e;exports.NeonModeUtils=d;
//# sourceMappingURL=NeonModeUtils.cjs.js.map