UNPKG

nextjs-themes

Version:

Unleash the Power of React Server Components! Use multiple themes on your site with confidence, without losing any advantages of React Server Components.

2 lines (1 loc) 1.42 kB
"use strict";var h=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var R=(t,e)=>{for(var o in e)h(t,o,{get:e[o],enumerable:!0})},N=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of g(e))!v.call(t,s)&&s!==o&&h(t,s,{get:()=>e[s],enumerable:!(i=U(e,s))||i.enumerable});return t};var A=t=>N(h({},"__esModule",{value:!0}),t);var P={};R(P,{Switcher:()=>w});module.exports=A(P);var d="nth",c="light",p="dark",F="system";var E=require("r18gs");var M={t:"",d:p,l:c,c:F,s:c},T="undefined",x=t=>{let e=t!=null?t:"#"+d;return(0,E.useRGS)(e,()=>{let o=typeof m!==T&&localStorage.getItem(e);return o?{...JSON.parse(o),s:m.matches?p:c}:M})};var l,I,C,a,O=(t="none")=>{let e=document.createElement("style");return e.textContent=`transition:${t.split(";")[0]}!important;`,document.head.appendChild(e),()=>{getComputedStyle(document.body),setTimeout(()=>document.head.removeChild(e),1)}},w=({forcedTheme:t,forcedColorScheme:e,targetSelector:o,themeTransition:i})=>{let s=o||"#"+d,[S,y]=x(o);if(typeof m!=T&&!a&&([l,I,C,a]=[m,u,r,f],l.addEventListener("change",()=>y(n=>({...n,s:l.matches?p:c}))),addEventListener("storage",n=>{n.key===s&&y(D=>({...D,...JSON.parse(n.newValue||"{}")}))})),a){a(t,e);let n=O(i);I(C(S),s),n();let{f:D,fc:k,...L}=S;localStorage.setItem(s,JSON.stringify(L))}return null};0&&(module.exports={Switcher});