{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/k76epLFsVsF4jlsF5pgg/ge79eoA2CuYo94sUAjT9/useColors.js"],
  "sourcesContent": ["import{RenderTarget}from\"framer\";import{useEffect,useState,useMemo}from\"react\";const cssVariableRegex=/var\\s*\\(\\s*(--[\\w-]+)(?:\\s*,\\s*((?:[^)(]+|\\((?:[^)(]+|\\([^)(]*\\))*\\))*))?\\s*\\)/;export function useColors(...colors){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const isOptimizing=typeof window===\"undefined\";const darkMode=useDarkMode();const[styleValues,setStyleValues]=useState(()=>extractStyleValues(colors.map(extractCSSVariableName)));useEffect(()=>{if(!isCanvas)return;const div=document.body.querySelector(\"main > div\");if(!div)return;const observer=new MutationObserver(()=>{setStyleValues(extractStyleValues(colors.map(extractCSSVariableName)));});observer.observe(div,{attributes:true,attributeFilter:[\"style\"]});return()=>observer.disconnect();},colors);const variableNames=useMemo(()=>colors.map(extractCSSVariableName),[colors]);if(isOptimizing){return colors.map(color=>extractDefaultValue(color));}let values=[];for(let i=0;i<colors.length;i++){const color=colors[i];// Return original value if not a string\nif(typeof color!==\"string\"){values.push(color);continue;}const variableName=variableNames[i];const colorValues=styleValues[variableName];if(variableName&&colorValues){values.push(darkMode?colorValues.dark||colorValues.light||color:colorValues.light||color);}else{values.push(color);}}return values;}////////////////////\nfunction extractStyleValues(variableNames){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const result={};let lightVars={};let darkVars={};if(isCanvas&&typeof document!==\"undefined\"){const div=document.body.querySelector(\"main > div\");if(div){const style=div.getAttribute(\"style\");if(style){const vars=parseVariables(style);lightVars=vars;darkVars=vars;}}}else{const{light,dark}=extractColorStyles();lightVars=parseVariables(light);darkVars=parseVariables(dark);}// Include all variables\nconst allVarNames=new Set([...Object.keys(lightVars),...Object.keys(darkVars)]);allVarNames.forEach(varName=>{result[varName]={light:lightVars[varName]||\"\",dark:darkVars[varName]||\"\"};});return result;}function extractColorStyles(){let lightSection=\"\";let darkSection=\"\";if(typeof document!==\"undefined\"){const styles=document.head.querySelectorAll(\"style[data-framer-css], style[data-framer-css-ssr], style[data-framer-css-ssr-minified]\");for(const style of styles){const rules=style.sheet?.cssRules;if(!rules)continue;const styleRules=[];for(const rule of rules){if(rule instanceof CSSStyleRule){styleRules.push([rule,false]);}else if(rule instanceof CSSMediaRule){if(rule.conditionText===\"(prefers-color-scheme: dark)\"){for(const subrule of rule.cssRules){if(subrule instanceof CSSStyleRule){styleRules.push([subrule,true]);}}}}}for(const[rule,isDarkMedia]of styleRules){const css=rule.cssText;const hasVars=css.includes(\"--token-\");if(!hasVars)continue;const isDark=isDarkMedia?rule.selectorText===\"body\":rule.selectorText==='body[data-framer-theme=\"dark\"]';const isLight=!isDarkMedia&&rule.selectorText===\"body\";if(!isDark&&!isLight)continue;if(isDark){if(!darkSection){darkSection=css.substring(css.indexOf(\"{\")+1,css.lastIndexOf(\"}\")).trim();}}else{if(!lightSection){lightSection=css.substring(css.indexOf(\"{\")+1,css.lastIndexOf(\"}\")).trim();}}if(darkSection&&lightSection)break;}if(darkSection&&lightSection)break;}}return{light:lightSection,dark:darkSection};}function useDarkMode(){const isPreview=typeof window!==\"undefined\"&&window.location.origin.endsWith(\"framercanvas.com\");const[isDarkMode,setIsDarkMode]=useState(()=>{if(typeof window===\"undefined\"){return false;}else if(isPreview&&typeof document!==\"undefined\"){return document.body.getAttribute(\"data-framer-theme\")===\"dark\";}else{return window.matchMedia(\"(prefers-color-scheme: dark)\").matches;}});useEffect(()=>{if(isPreview){const observer=new MutationObserver(mutations=>{mutations.forEach(mutation=>{if(mutation.attributeName===\"data-framer-theme\"){const theme=document.body.getAttribute(\"data-framer-theme\");setIsDarkMode(theme===\"dark\");}});});observer.observe(document.body,{attributes:true,attributeFilter:[\"data-framer-theme\"]});return()=>observer.disconnect();}else{const mediaQuery=window.matchMedia(\"(prefers-color-scheme: dark)\");const handleChange=e=>{setIsDarkMode(e.matches);};// Update initial value\nif(mediaQuery.matches!==isDarkMode){setIsDarkMode(mediaQuery.matches);}mediaQuery.addListener(handleChange);return()=>mediaQuery.removeListener(handleChange);}},[isPreview]);return isDarkMode;}function extractCSSVariableName(cssString){if(!cssString||!cssString.startsWith(\"var(\")){return\"\";}const match=cssVariableRegex.exec(cssString);if(match){const variableName=match[1];return variableName||\"\";}return\"\";}function parseVariables(section){const vars={};if(!section)return vars;const declarations=section.split(\";\").filter(Boolean);declarations.forEach(declaration=>{const[name,value]=declaration.split(\":\").map(s=>s.trim());if(name&&value){vars[name]=value;}});return vars;}function extractDefaultValue(cssVar){// Check if the string starts with \"var(\"\nif(!cssVar||!cssVar.startsWith(\"var(\")){return cssVar// Return the original value if it doesn't start with \"var(\"\n;}// Remove \"var(\" from the beginning and \")\" from the end\nconst content=cssVar.slice(4,-1);// Split the content by comma\nconst parts=content.split(\",\");// If there's more than one part, the second part is the default value\nif(parts.length>1){// Trim any whitespace from the default value\nreturn parts.slice(1).join(\",\").trim();}// If there's no comma, return an empty string or null\nreturn\"\";}\nexport const __FramerMetadata__ = {\"exports\":{\"useColors\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useColors.map"],
  "mappings": "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",
  "names": ["init_ssg_sandbox_shims", "cssVariableRegex", "useColors", "colors", "isCanvas", "RenderTarget", "isOptimizing", "darkMode", "useDarkMode", "styleValues", "setStyleValues", "ye", "extractStyleValues", "extractCSSVariableName", "ue", "div", "observer", "variableNames", "se", "color", "extractDefaultValue", "values", "i", "variableName", "colorValues", "result", "lightVars", "darkVars", "style", "vars", "parseVariables", "light", "dark", "extractColorStyles", "varName", "lightSection", "darkSection", "styles", "rules", "styleRules", "rule", "subrule", "isDarkMedia", "css", "isDark", "isLight", "isPreview", "isDarkMode", "setIsDarkMode", "mutations", "mutation", "theme", "mediaQuery", "handleChange", "e", "cssString", "match", "section", "declaration", "name", "value", "s", "cssVar", "parts"]
}
