@tabnews/ui
Version:
TabNews UI
3 lines (2 loc) • 1.09 kB
JavaScript
"use client";
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),a=require("@primer/react"),t=require("react"),m=require("../constants/public.cjs"),f=require("../ThemeProvider/ThemeProvider.cjs"),h=()=>setTimeout(()=>document.documentElement.removeAttribute("data-no-flash")),y=typeof document>"u"?t.useEffect:t.useLayoutEffect;function M({children:e,defaultColorMode:l,noFlash:u=!0,...d}){const[r,i]=t.useState(l==="dark"?"dark":"light");return y(()=>{const n=localStorage.getItem("colorMode")||r;u&&h(),n!=r&&(document.documentElement.setAttribute("data-color-mode",n),i(n))},[]),o.jsxs(f.ThemeProvider,{colorMode:r,...d,children:[u&&o.jsx(c,{}),o.jsx(s,{}),e]})}function c(){return o.jsx("style",{dangerouslySetInnerHTML:{__html:"html[data-no-flash='true'] { visibility: hidden; }"}})}function s(){const{resolvedColorMode:e}=a.useTheme();t.useEffect(()=>{document.cookie=`${m.COLOR_MODE_COOKIE}=${e}; max-age=31536000; path=/`},[e])}exports.AutoThemeProvider=M;exports.ColorModeCookieSync=s;exports.NoFlashGlobalStyle=c;