nextjs-darkmode
Version:
Unleash the Power of React Server Components! Use dark/light mode on your site with confidence, without losing any advantages of React Server Components
3 lines (2 loc) • 1.87 kB
JavaScript
"use client";
;var f=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var T=(e,o)=>{for(var t in o)f(e,t,{get:o[t],enumerable:!0})},A=(e,o,t,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of L(o))!M.call(e,r)&&r!==t&&f(e,r,{get:()=>o[r],enumerable:!(s=E(o,r))||s.enumerable});return e};var b=e=>A(f({},"__esModule",{value:!0}),e);var I={};T(I,{Core:()=>$});module.exports=b(I);var h="system",S="dark",P="";var R=require("r18gs");var y=()=>(0,R.useRGS)("ndm",()=>{if(typeof document=="undefined")return{m:h,s:S};let[e,o]=["m","sm"].map(t=>document.documentElement.getAttribute("data-"+t));return{m:e!=null?e:h,s:o}});var v=(e,o,t)=>{var i;let[s,r]=["system","dark"];window.u=(n,c)=>{let d=n===s?c:n,a=document,p=document.documentElement,l=a.createElement("style");l.textContent=`*,*:after,*:before{transition:${o.split(";")[0]} !important;}`,l.setAttribute("nonce",t),a.head.appendChild(l),d===r?p.classList.add(r):p.classList.remove(r),[["sm",c],["rm",d],["m",n]].forEach(([x,w])=>p.setAttribute(`data-${x}`,w)),localStorage.setItem(e,n),getComputedStyle(a.body),setTimeout(()=>a.head.removeChild(l),1)},window.q=matchMedia(`(prefers-color-scheme: ${r})`),u((i=localStorage.getItem(e))!=null?i:s,q.matches?r:"")};var g=require("react/jsx-runtime"),C,m,k=({n:e,k:o,t})=>(0,g.jsx)("script",{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${v.toString()})(${[o,t,e].map(s=>`'${s}'`)})`},nonce:e}),$=({t:e="none",nonce:o="",k:t="o"})=>{let s=typeof window!="undefined";s&&!window.q&&v(t,e,o);let[{m:r,s:i},n]=y();return!m&&s&&([C,m]=[q,u],C.addEventListener("change",()=>n(c=>({...c,s:C.matches?S:P}))),addEventListener("storage",c=>{c.key===t&&n(d=>({...d,m:c.newValue}))})),m==null||m(r,i),(0,g.jsx)(k,{n:o,k:t,t:e})};0&&(module.exports={Core});