UNPKG

dgz-ui-shared

Version:

Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript, dgz-ui library

2 lines (1 loc) 861 B
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../jsx-runtime-h4oGeKUK.cjs"),c=require("react"),t=require("../ThemeMode-BO6tit_Z.cjs"),u=require("../ThemeProviderContext-3ysAf7lU.cjs");function a({children:d,defaultTheme:n=t.ThemeMode.SYSTEM,storageKey:r="theme",...i}){const[o,s]=c.useState(()=>localStorage.getItem(r)||n);c.useEffect(()=>{const e=window.document.documentElement;if(e.classList.remove(t.ThemeMode.LIGHT,t.ThemeMode.DARK),o===t.ThemeMode.SYSTEM){const m=window.matchMedia("(prefers-color-scheme: dark)").matches?t.ThemeMode.DARK:t.ThemeMode.LIGHT;e.classList.add(m),s(m);return}e.style.colorScheme=o,e.classList.add(o)},[o]);const h={theme:o,setTheme:e=>{localStorage.setItem(r,e),s(e)}};return T.jsxRuntimeExports.jsx(u.ThemeProviderContext,{...i,value:h,children:d})}exports.ThemeProvider=a;