{"version":3,"file":"CursorFillButton.DP7UHc1D.mjs","names":["React.useRef","__esmMin","init_ssg_sandbox_shims","window","de","init_jsx_runtime","c","p","init_npm_react_18_3_1","ce","addPropertyControls","init_framer_BWFVvmND","Link","ControlType","init_npm_gsap_3_11_3","i","CursorFillButton","defaults","props","buttonRef","fillRef","textRef","fill","label","getDuration","duration","link","button","rect","scaleX","scaleY","width","height","x","event","y","radius","animationDuration","hoverTextColor","textColor","paddingVertical","paddingHorizontal","borderWidth","borderColor","style","fillColor","font","text","init_CursorFillButton"],"sources":["https:/framerusercontent.com/modules/SJ0nUvr5DsLJCjpl1bvw/9Zr7SXJmdVLeWNDN894C/CursorFillButton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,Link}from\"framer\";import gsap from\"gsap\";const defaults={text:\"Send us your brief\",backgroundColor:\"#FFFFFF\",fillColor:\"#111111\",textColor:\"#111111\",hoverTextColor:\"#FFFFFF\",borderColor:\"#222222\",borderWidth:0,borderRadius:12,fontSize:26,paddingHorizontal:48,paddingVertical:28,duration:.65,ease:\"power3.out\"};/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function CursorFillButton(props){const{text=defaults.text,link=\"#\",backgroundColor=defaults.backgroundColor,fillColor=defaults.fillColor,textColor=defaults.textColor,hoverTextColor=defaults.hoverTextColor,borderColor=defaults.borderColor,borderWidth=defaults.borderWidth,borderRadius=defaults.borderRadius,font,fontSize=defaults.fontSize,paddingHorizontal=defaults.paddingHorizontal,paddingVertical=defaults.paddingVertical,duration=defaults.duration,ease=defaults.ease,style}=props;const buttonRef=React.useRef(null);const fillRef=React.useRef(null);const textRef=React.useRef(null);React.useEffect(()=>{const fill=fillRef.current;const label=textRef.current;if(!fill||!label)return;gsap.set(fill,{scale:0,transformOrigin:\"50% 50%\"});return()=>{gsap.killTweensOf(fill);gsap.killTweensOf(label);};},[]);const getDuration=()=>{const reduceMotion=typeof window!==\"undefined\"&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;return reduceMotion?0:duration;};const handleMouseEnter=event=>{const button=buttonRef.current;const fill=fillRef.current;const label=textRef.current;if(!button||!fill||!label)return;const rect=button.getBoundingClientRect();if(!rect.width||!rect.height)return;// Account for Framer canvas zoom.\nconst scaleX=button.offsetWidth/rect.width;const scaleY=button.offsetHeight/rect.height;const width=button.clientWidth;const height=button.clientHeight;const x=Math.max(0,Math.min(width,(event.clientX-rect.left)*scaleX-button.clientLeft));const y=Math.max(0,Math.min(height,(event.clientY-rect.top)*scaleY-button.clientTop));// Expand far enough to cover every corner.\nconst radius=Math.max(Math.hypot(x,y),Math.hypot(width-x,y),Math.hypot(x,height-y),Math.hypot(width-x,height-y))+2;gsap.killTweensOf(fill);gsap.set(fill,{width:radius*2,height:radius*2,left:x,top:y,xPercent:-50,yPercent:-50,scale:0});const animationDuration=getDuration();gsap.to(fill,{scale:1,duration:animationDuration,ease,overwrite:true});gsap.to(label,{color:hoverTextColor,duration:animationDuration*.6,ease:\"power2.out\",overwrite:true});};const handleMouseLeave=()=>{const fill=fillRef.current;const label=textRef.current;if(!fill||!label)return;const animationDuration=getDuration();gsap.to(fill,{scale:0,duration:animationDuration*.8,ease,overwrite:true});gsap.to(label,{color:textColor,duration:animationDuration*.5,ease:\"power2.out\",overwrite:true});};return /*#__PURE__*/_jsx(Link,{href:link,children:/*#__PURE__*/_jsxs(\"a\",{ref:buttonRef,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,style:{position:\"relative\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",width:\"max-content\",height:\"auto\",padding:`${paddingVertical}px ${paddingHorizontal}px`,boxSizing:\"border-box\",overflow:\"hidden\",isolation:\"isolate\",border:`${borderWidth}px solid ${borderColor}`,borderRadius,backgroundColor,color:textColor,textDecoration:\"none\",cursor:\"pointer\",verticalAlign:\"middle\",// Allow Framer to supply fixed/fill dimensions.\n...style},children:[/*#__PURE__*/_jsx(\"span\",{ref:fillRef,\"aria-hidden\":\"true\",style:{position:\"absolute\",display:\"block\",width:0,height:0,borderRadius:\"50%\",backgroundColor:fillColor,pointerEvents:\"none\",zIndex:0}}),/*#__PURE__*/_jsx(\"span\",{ref:textRef,style:{position:\"relative\",zIndex:1,display:\"inline-flex\",alignItems:\"center\",flexShrink:0,color:textColor,fontFamily:'\"Courier New\", Courier, monospace',fontSize:26,letterSpacing:\"0.5px\",lineHeight:1.2,...font,fontSize,whiteSpace:\"nowrap\",pointerEvents:\"none\"},children:text})]})});}addPropertyControls(CursorFillButton,{text:{type:ControlType.String,title:\"Text\",defaultValue:defaults.text},link:{type:ControlType.Link,title:\"Link\"},paddingHorizontal:{type:ControlType.Number,title:\"Padding X\",defaultValue:defaults.paddingHorizontal,min:0,max:200,step:1,unit:\"px\"},paddingVertical:{type:ControlType.Number,title:\"Padding Y\",defaultValue:defaults.paddingVertical,min:0,max:100,step:1,unit:\"px\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:defaults.backgroundColor},fillColor:{type:ControlType.Color,title:\"Hover Fill\",defaultValue:defaults.fillColor},textColor:{type:ControlType.Color,title:\"Text Colour\",defaultValue:defaults.textColor},hoverTextColor:{type:ControlType.Color,title:\"Hover Text\",defaultValue:defaults.hoverTextColor},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:defaults.borderColor},borderWidth:{type:ControlType.Number,title:\"Border Width\",defaultValue:defaults.borderWidth,min:0,max:10,step:1,unit:\"px\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:defaults.borderRadius,min:0,max:200,step:1,unit:\"px\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"monospace\",defaultFontSize:\"26px\",displayFontSize:true,displayFontSize:false,defaultValue:{fontSize:\"26px\",letterSpacing:\"0.5px\",lineHeight:\"1.2em\"}},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:defaults.fontSize,min:1,max:200,step:1,unit:\"px\"},duration:{type:ControlType.Number,title:\"Speed\",defaultValue:defaults.duration,min:.2,max:2,step:.05,unit:\"s\"},ease:{type:ControlType.Enum,title:\"Easing\",defaultValue:defaults.ease,options:[\"power2.out\",\"power3.out\",\"power4.out\",\"expo.out\",\"circ.out\"]}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CursorFillButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CursorFillButton.map"],"mappings":"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"}