{"version":3,"file":"ButtonGreyToColor.BC61_JDi.mjs","names":["useState","useCallback"],"sources":["https:/framerusercontent.com/modules/BEixa4hRv7l48M3hRkw0/kJBSCggNXlnapK4a1Vmi/ButtonGreyToColor.js"],"sourcesContent":["// ButtonGreytoColor.tsx — Framer Code Component\n// A button that starts grey and fills with the accent color on hover.\n// CSS var() rendering for flash-free theme switching\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect,useCallback}from\"react\";import{addPropertyControls,ControlType,Link}from\"framer\";// ============================================================\n// THEME SYSTEM — cookie-first, sets CSS vars on mount\n// ============================================================\nconst THEME_TOKENS={yellow:{\"--accent\":\"#D2FF03\",\"--accent-hover-600\":\"#BFE900\",\"--text-on-accent\":\"#10100F\",\"--text-on-accent-inverse\":\"#FEFEFE\",\"--accent-on-dark\":\"#D2FF03\",\"--accent-hover-on-dark\":\"#BFE900\",\"--accent-400\":\"#DDFF3F\",\"--accent-700\":\"#9CBE00\"},blue:{\"--accent\":\"#0038FF\",\"--accent-hover-600\":\"#131DD6\",\"--text-on-accent\":\"#FEFEFE\",\"--text-on-accent-inverse\":\"#10100F\",\"--accent-on-dark\":\"#FEFEFE\",\"--accent-hover-on-dark\":\"#DCE0E2\",\"--accent-400\":\"#4F57F0\",\"--accent-700\":\"#0E16A4\"},orange:{\"--accent\":\"#FF6B00\",\"--accent-hover-600\":\"#E74702\",\"--text-on-accent\":\"#10100F\",\"--text-on-accent-inverse\":\"#FEFEFE\",\"--accent-on-dark\":\"#FF6B00\",\"--accent-hover-on-dark\":\"#E74702\",\"--accent-400\":\"#FD7941\",\"--accent-700\":\"#BC3A02\"}};const STORAGE_KEY=\"mc2-theme\";function getCookie(name){try{const match=document.cookie.match(new RegExp(`(?:^|; )${name}=([^;]*)`));return match?match[1]:null;}catch(e){}return null;}function getStoredTheme(){try{const match=window.location.hash.match(/mc2=(\\w+)/);if(match&&match[1]&&THEME_TOKENS[match[1]])return match[1];}catch(e){}const fromCookie=getCookie(STORAGE_KEY);if(fromCookie&&THEME_TOKENS[fromCookie])return fromCookie;try{const stored=localStorage.getItem(STORAGE_KEY);if(stored&&THEME_TOKENS[stored])return stored;}catch(e){}return\"yellow\";}function applyCSSVars(themeName){const tokens=THEME_TOKENS[themeName];if(!tokens)return;const root=document.documentElement;for(const[key,value]of Object.entries(tokens)){root.style.setProperty(key,value);}}function useThemeWithCSSVars(){const[theme,setTheme]=useState(()=>typeof window!==\"undefined\"?getStoredTheme():\"yellow\");useEffect(()=>{applyCSSVars(theme);},[]);useEffect(()=>{const stored=getStoredTheme();setTheme(stored);applyCSSVars(stored);const onChange=e=>{const name=e.detail;if(name&&THEME_TOKENS[name]){setTheme(name);applyCSSVars(name);}};const onStorage=e=>{if(e.key===STORAGE_KEY&&e.newValue&&THEME_TOKENS[e.newValue]){setTheme(e.newValue);applyCSSVars(e.newValue);}};window.addEventListener(\"themechange\",onChange);window.addEventListener(\"storage\",onStorage);return()=>{window.removeEventListener(\"themechange\",onChange);window.removeEventListener(\"storage\",onStorage);};},[]);return theme;}export default function ButtonGreytoColor({text=\"Button\",link=\"/\",fontSize=18,paddingX=20,paddingY=12,...props}){const[hovered,setHovered]=useState(false);useThemeWithCSSVars();const safeLink=link||\"/\";const handleClick=useCallback(event=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}const href=link||\"\";if(!href||!href.includes(\"#\"))return;let isSamePageHash=href.startsWith(\"#\");let targetHash=\"\";if(href.startsWith(\"#\")){targetHash=href;}else{try{const targetUrl=new URL(href,window.location.href);const currentUrl=new URL(window.location.href);isSamePageHash=targetUrl.origin===currentUrl.origin&&targetUrl.pathname===currentUrl.pathname;targetHash=targetUrl.hash;}catch(e){return;}}if(!isSamePageHash||!targetHash)return;const targetId=decodeURIComponent(targetHash.slice(1));if(!targetId)return;const targetElement=document.getElementById(targetId);if(!targetElement)return;event.preventDefault();targetElement.scrollIntoView({behavior:\"smooth\",block:\"start\"});},[link]);return /*#__PURE__*/_jsx(Link,{href:safeLink,smoothScroll:true,children:/*#__PURE__*/_jsx(\"a\",{href:safeLink,style:{...props.style,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",padding:`${paddingY}px ${paddingX}px`,backgroundColor:hovered?\"var(--accent, #D2FF03)\":\"#DCE0E2\",fontFamily:\"Inter, sans-serif\",fontWeight:400,fontSize:fontSize,lineHeight:1.2,color:hovered?\"var(--text-on-accent, #10100F)\":\"#10100F\",textDecoration:\"none\",cursor:\"pointer\",transition:\"background-color 0.2s ease, color 0.2s ease\",width:\"auto\",whiteSpace:\"nowrap\"},onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),onClick:handleClick,children:text})});}addPropertyControls(ButtonGreytoColor,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Button\"},link:{type:ControlType.Link,title:\"Link\"},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:18,min:10,max:48,step:1},paddingX:{type:ControlType.Number,title:\"Padding Horizontal\",defaultValue:20,min:0,max:60,step:2},paddingY:{type:ControlType.Number,title:\"Padding Vertical\",defaultValue:12,min:0,max:40,step:2}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ButtonGreytoColor\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ButtonGreyToColor.map"],"mappings":"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"}