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.

3 lines (2 loc) 2.46 kB
"use client"; "use strict";var I=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var b=(t,e)=>{for(var o in e)I(t,o,{get:e[o],enumerable:!0})},K=(t,e,o,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of H(e))!_.call(t,s)&&s!==o&&I(t,s,{get:()=>e[s],enumerable:!(p=G(e,s))||p.enumerable});return t};var $=t=>K(I({},"__esModule",{value:!0}),t);var j={};b(j,{ThemeSwitcher:()=>Y});module.exports=$(j);var L=(t,e,o,p,s)=>{window.m=matchMedia("(prefers-color-scheme: dark)");let l=["color-scheme","csp","theme","th"];window.u=(n,T)=>{var x;let y=(x=document.querySelector(T))!=null?x:document.documentElement,a=[];l.forEach((D,w)=>{a.push(D+"-"+n[w]),y.setAttribute("data-"+D,n[w])}),a[0]=n[0],o&&(a=a.map(D=>{var w;return(w=o[D])!=null?w:D})),y.className=a.join(" ")};let C=localStorage.getItem(t),i={...C?JSON.parse(C):e,s:m.matches?e.d:e.l},d,c,S,U;window.f=(n,T)=>{c=U=n,d=S=T},f(p,s),window.r=n=>{c=U!=null?U:n.f,d=S!=null?S:n.fc;let T=d!=null?d:n.c,y=T===e.c?n.s:T,a=y===""?n.t:y===e.d?n.d:n.l,x=c!=null?c:a;return[y||n.s,T,x,c!=null?c:n.t]},u(r(i),t)};var M=require("r18gs");var g="nth",F="light",v="dark",A="system";var N={t:"",d:v,l:F,c:A,s:F},E="undefined",P=t=>{let e=t!=null?t:"#"+g;return(0,M.useRGS)(e,()=>{let o=typeof m!==E&&localStorage.getItem(e);return o?{...JSON.parse(o),s:m.matches?v:F}:N})};var O,J,k,R,q=(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)}},V=({forcedTheme:t,forcedColorScheme:e,targetSelector:o,themeTransition:p})=>{let s=o||"#"+g,[l,C]=P(o);if(typeof m!=E&&!R&&([O,J,k,R]=[m,u,r,f],O.addEventListener("change",()=>C(i=>({...i,s:O.matches?v:F}))),addEventListener("storage",i=>{i.key===s&&C(d=>({...d,...JSON.parse(i.newValue||"{}")}))})),R){R(t,e);let i=q(p);J(k(l),s),i();let{f:d,fc:c,...S}=l;localStorage.setItem(s,JSON.stringify(S))}return null};var h=require("react/jsx-runtime"),Q=({targetSelector:t,nonce:e,styles:o,forcedTheme:p,forcedColorScheme:s})=>{let l=[t||"#"+g,N,o,p,s];return typeof window!=E&&L(...l),(0,h.jsx)("script",{dangerouslySetInnerHTML:{__html:`(${L})(${JSON.stringify(l).slice(1,-1)})`},nonce:e})},Y=t=>(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(Q,{...t}),(0,h.jsx)(V,{...t})]});0&&(module.exports={ThemeSwitcher});