import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t,v as n}from"./codemirror-CTwcbJL3.js";var r=e(n(),1),i=t(),a=[`light`,`dark`,`dracula`,`catppuccin`,`nord`,`solarized`,`tokyo-night`,`one-dark`,`gruvbox`],o=(0,r.createContext)({theme:`dark`,setTheme:()=>null,setThemePreview:()=>null});function s({children:e,defaultTheme:t=`dark`,storageKey:n=`vite-ui-theme`,...s}){let[c,l]=(0,r.useState)(()=>localStorage.getItem(n)||t),[u,d]=(0,r.useState)(null),f=u??c;(0,r.useEffect)(()=>{let e=window.document.documentElement;if(e.classList.remove(...a),f===`system`){let t=window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`;e.classList.add(t);return}e.classList.add(f)},[f]);let p={theme:c,setTheme:e=>{localStorage.setItem(n,e),l(e)},setThemePreview:e=>{d(e)}};return(0,i.jsx)(o.Provider,{...s,value:p,children:e})}var c=()=>{let e=(0,r.useContext)(o);if(e===void 0)throw Error(`useTheme must be used within a ThemeProvider`);return e};export{c as n,s as t};