{
  "version": 3,
  "sources": ["ssg:https://framer.com/m/framer/store.js@^1.0.0", "ssg:https://framerusercontent.com/modules/6j0yYx9gnbwGFit9IRA4/loiE6SHK2rZOMXWAw2xt/ToggleMode.js"],
  "sourcesContent": ["import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map", "import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";export const modeStore=createStore({theme:\"light\"});/**\n * @framerSupportedLayoutWidth 32\n * @framerSupportedLayoutHeight 32\n */export default function ToggleMode(props){const{tint,size}=props;const[store,setStore]=modeStore();const[isDark,setIsDark]=useState(store.theme!=\"light\");const[darkStyleString,setDarkStyleString]=useState(\"\");const[lightStyleString,setLightStyleString]=useState(\"\");useEffect(()=>{const prefersDark=window.matchMedia(\"(prefers-color-scheme: dark)\");const matchesDark=prefersDark.matches;const localStorageTheme=localStorage.getItem(\"framerThemeMode\");const currentTheme=localStorageTheme!=undefined?localStorageTheme:matchesDark?\"dark\":\"light\";document.body.setAttribute(\"data-framer-theme\",currentTheme);setStore({theme:currentTheme});setIsDark(currentTheme==\"dark\");// Copy CSS variables from (prefers-color-scheme: dark)\nfor(let i=0;i<document.styleSheets.length;i++){try{for(let j=0;j<document.styleSheets[i].rules.length;j++){let rule=document.styleSheets[i].rules[j];if(rule.selectorText==\"body\"){setLightStyleString(rule.cssText.replace(\"body\",\"body[data-framer-theme='light']\"));}if(rule.conditionText==\"(prefers-color-scheme: dark)\"){setDarkStyleString(rule.cssRules[0].cssText.replace(\"body\",\"body[data-framer-theme='dark']\"));}}}catch{console.log(\"Cannot read a `rules` property\");}}prefersDark.addEventListener(\"change\",evt=>{setStore({theme:evt.matches?\"dark\":\"light\"});setIsDark(evt.matches);document.body.setAttribute(\"data-framer-theme\",evt.matches?\"dark\":\"light\");localStorage.setItem(\"framerThemeMode\",evt.matches?\"dark\":\"light\");});},[]);useEffect(()=>{setStore({theme:isDark?\"dark\":\"light\"});document.body.setAttribute(\"data-framer-theme\",isDark?\"dark\":\"light\");localStorage.setItem(\"framerThemeMode\",isDark?\"dark\":\"light\");},[isDark]);useEffect(()=>{const style=document.createElement(\"style\");const styleString=lightStyleString+darkStyleString;style.textContent=styleString;document.head.appendChild(style);},[lightStyleString,darkStyleString]);return /*#__PURE__*/_jsxs(\"label\",{style:{fontSize:`${size}px`,border:\"none\",background:\"0 0\",cursor:\"pointer\",color:tint},title:\"Toggle theme\",children:[/*#__PURE__*/_jsx(\"input\",{onChange:()=>setIsDark(!isDark),style:{display:\"none\"},type:\"checkbox\"}),/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",width:1,height:1,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0,0,0,0)\",whiteSpace:\"nowrap\",borderWidth:0},children:\"Toggle theme\"}),/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",\"aria-hidden\":\"true\",width:\"1em\",height:\"1em\",fill:\"currentColor\",style:{display:\"block\"},viewBox:\"0 0 32 32\",children:[/*#__PURE__*/_jsx(\"clipPath\",{id:\"theme-toggle__expand__cutout\",children:/*#__PURE__*/_jsx(\"path\",{style:{transitionProperty:\"transform, d\",transitionDuration:\"calc(500ms * 0.6)\",transitionTimingFunction:isDark?\"cubic-bezier(0, 0, 0, 1.25)\":\"cubic-bezier(0, 0, 0.5, 1)\",d:isDark?\"path('M-9 3h25a1 1 0 0017 13v30H0Z')\":\"path('M0-11h25a1 1 0 0017 13v30H0Z')\",transitionDelay:isDark?\"calc(500ms * 0.4)\":\"0s\"},d:\"M0-11h25a1 1 0 0017 13v30H0Z\"})}),/*#__PURE__*/_jsxs(\"g\",{clipPath:\"url(#theme-toggle__expand__cutout)\",children:[/*#__PURE__*/_jsx(\"circle\",{style:{transformOrigin:\"center\",transition:\"transform calc(500ms * 0.65) cubic-bezier(0, 0, 0, 1.25) calc(500ms * 0.35)\",transform:isDark?\"scale(1.4)\":\"scale(1)\",transitionDelay:isDark?\"0s\":\"calc(500ms * 0.35)\"},cx:\"16\",cy:\"16\",r:\"8.4\"}),/*#__PURE__*/_jsx(\"path\",{style:{transformOrigin:\"center\",transition:\"transform calc(500ms * 0.65) cubic-bezier(0, 0, 0, 1.25)\",transform:isDark?\"scale(0.75)\":\"scale(1)\",transitionDelay:isDark?\"0s\":\"calc(500ms * 0.35)\"},d:\"M18.3 3.2c0 1.3-1 2.3-2.3 2.3s-2.3-1-2.3-2.3S14.7.9 16 .9s2.3 1 2.3 2.3zm-4.6 25.6c0-1.3 1-2.3 2.3-2.3s2.3 1 2.3 2.3-1 2.3-2.3 2.3-2.3-1-2.3-2.3zm15.1-10.5c-1.3 0-2.3-1-2.3-2.3s1-2.3 2.3-2.3 2.3 1 2.3 2.3-1 2.3-2.3 2.3zM3.2 13.7c1.3 0 2.3 1 2.3 2.3s-1 2.3-2.3 2.3S.9 17.3.9 16s1-2.3 2.3-2.3zm5.8-7C9 7.9 7.9 9 6.7 9S4.4 8 4.4 6.7s1-2.3 2.3-2.3S9 5.4 9 6.7zm16.3 21c-1.3 0-2.3-1-2.3-2.3s1-2.3 2.3-2.3 2.3 1 2.3 2.3-1 2.3-2.3 2.3zm2.4-21c0 1.3-1 2.3-2.3 2.3S23 7.9 23 6.7s1-2.3 2.3-2.3 2.4 1 2.4 2.3zM6.7 23C8 23 9 24 9 25.3s-1 2.3-2.3 2.3-2.3-1-2.3-2.3 1-2.3 2.3-2.3z\"})]})]})]});}addPropertyControls(ToggleMode,{tint:{title:\"Color\",type:ControlType.Color,defaultValue:\"#09F\"},size:{title:\"Size\",type:ControlType.Number,defaultValue:42,max:100,min:24,step:1}});\nexport const __FramerMetadata__ = {\"exports\":{\"modeStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"ToggleMode\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"32\",\"framerSupportedLayoutHeight\":\"32\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ToggleMode.map"],
  "mappings": "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",
  "names": ["createStore", "state1", "dataStore", "Data", "setDataStore", "newState", "storeState", "storeSetters", "setStoreState", "setter", "useStore", "state", "setState", "ye", "ue", "useObserveData", "modeStore", "createStore", "ToggleMode", "props", "tint", "size", "store", "setStore", "isDark", "setIsDark", "ye", "darkStyleString", "setDarkStyleString", "lightStyleString", "setLightStyleString", "ue", "prefersDark", "window", "matchesDark", "localStorageTheme", "currentTheme", "i", "j", "rule", "evt", "style", "styleString", "u", "p", "addPropertyControls", "ControlType"]
}
