/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/next-theme@0.1.5/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("next/head");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=a(e),s=a(t);const l={attribute:"class",darkTheme:"dark",defaultTheme:"light",lightTheme:"light",mediaQuery:!0,setAttribute:!0,storageKey:"theme",themes:["light","dark"]};const n=r.default.createContext({themes:l.themes,value:l.defaultTheme,handleChange:()=>{}}),c=e.memo((({storageKey:e,attribute:t,mediaQuery:a,defaultTheme:l,darkTheme:n,lightTheme:c})=>{const u="class"===t?"var d=document.documentElement.classList;":"var d=document.documentElement;",d=e=>"class"===t?`d.add(${e})`:`d.setAttribute('${t}', ${e})`;return r.default.createElement(s.default,null,a?r.default.createElement("script",{dangerouslySetInnerHTML:{__html:`${u}!function(){try{var e=localStorage.getItem('${e}');e||(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"${n}":"${c}")}catch(e){}e||(e="${l}");${d("e")}}();`}}):r.default.createElement("script",{dangerouslySetInnerHTML:{__html:`${u}!function(){try{var e=localStorage.getItem('${e}');}catch(e){}e||(e="${l}");${d("e")}}();`}}))}));exports.ThemeProvider=({attribute:t=l.attribute,defaultTheme:a=l.defaultTheme,storageKey:s=l.storageKey,darkTheme:u=l.darkTheme,lightTheme:d=l.lightTheme,setAttribute:o=l.setAttribute,mediaQuery:m=l.mediaQuery,themes:h=[d,u],children:i})=>{const[f,g]=e.useState();e.useEffect((()=>{void 0!==f&&localStorage.setItem(s,f)}),[f,s]);const v=e.useCallback((e=>{if(o){const a=document.documentElement;"class"===t?(a.classList.remove(...h),a.classList.add(e)):a.setAttribute(t,e)}}),[t,o,h]),y=e.useCallback((e=>{if("system"===e&&m&&(e=window.matchMedia("(prefers-color-scheme: dark)").matches?u:d),!h.includes(e))throw new Error(`Unknown theme: ${e}. Have you included it in the themes prop?`);g(e),v(e)}),[v,u,d,m,h]),T=e.useCallback((e=>{e.key===s&&y(e.newValue||a)}),[a,y,s]);e.useEffect((()=>{window.addEventListener("storage",T);let e=localStorage.getItem(s);return"system"!==e&&null!==e||(e=m?window.matchMedia("(prefers-color-scheme: dark)").matches?u:d:a),g(e),()=>window.removeEventListener("storage",T)}),[]),e.useEffect((()=>{f&&function(e,t,a){const r=document.documentElement;"class"===a?(r.classList.remove(...t),r.classList.add(e)):r.setAttribute(a,e)}(f,h,t)}),[f,h,t]);const b=e.useCallback((e=>{y(e.matches?u:d)}),[u,y,d]);e.useEffect((()=>{const e=window.matchMedia("(prefers-color-scheme: dark)");return m?e.addEventListener("change",b):e.removeEventListener("change",b),()=>e.removeEventListener("change",b)}),[m,b]);const k=r.default.useMemo((()=>({themes:h,handleChange:y,value:f||a})),[f,a,y,h]);return r.default.createElement(n.Provider,{value:k},r.default.createElement(c,{attribute:t,darkTheme:u,defaultTheme:a,lightTheme:d,mediaQuery:m,storageKey:s}),i)},exports.default=()=>{const{handleChange:t,themes:a,value:r}=e.useContext(n),s=e.useCallback((e=>t(e)),[t]),l=e.useMemo((()=>r),[r]),c=e.useCallback((()=>s(a[(a.indexOf(l)+1)%a.length])),[s,l,a]);return{theme:l,setTheme:s,toggle:c}};
