{"version":3,"file":"OriginButtonPro.DLBHnml2.mjs","names":["React.useState","React.useRef","React.useCallback","React.useMemo"],"sources":["https:/framerusercontent.com/modules/75ttIfvKKTA474Fpp0QV/BwBo5aH3c0sZ8VftY6rq/OriginButtonPro.js"],"sourcesContent":["// User instructions: Create a Framer-compatible component using the code given below (OriginButtonPro with origin-based fill animation).\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{startTransition}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const FILL_DURATION=.5;const FILL_EASE=[.16,1,.3,1];function getCoverDiameter(width,height,x,y){return Math.ceil(2*Math.max(Math.hypot(x,y),Math.hypot(width-x,y),Math.hypot(x,height-y),Math.hypot(width-x,height-y)));}function hasTextContent(node){if(typeof node===\"string\"||typeof node===\"number\")return String(node).trim().length>0;if(Array.isArray(node))return node.some(hasTextContent);if(/*#__PURE__*/React.isValidElement(node))return hasTextContent(node.props.children);return false;}/**\n * @framerIntrinsicWidth 220\n * @framerIntrinsicHeight 48\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerDisableUnlink\n */export default function OriginButtonPro(props){const{label,link,newTab,state,defaultState,disabledState,fillMode,followCursor,animationStyle,padding,textTransform,borderRadius,textColorHover,fillColor,font,onClick,style}=props;const isStatic=useIsStaticRenderer();const isDisabled=state===\"disabled\";// Detect touch device\nconst[isTouchDevice,setIsTouchDevice]=React.useState(false);React.useEffect(()=>{if(typeof window===\"undefined\")return;const hasTouch=\"ontouchstart\"in window||navigator.maxTouchPoints>0;startTransition(()=>setIsTouchDevice(hasTouch));},[]);const activeState=isDisabled?disabledState:defaultState;const buttonRef=React.useRef(null);const[hovered,setHovered]=React.useState(false);const[isPressed,setIsPressed]=React.useState(false);const[origin,setOrigin]=React.useState({x:0,y:0});const[coverSize,setCoverSize]=React.useState(0);const[linearHasEverShown,setLinearHasEverShown]=React.useState(false);const[shouldRenderLinear,setShouldRenderLinear]=React.useState(false);const[linearFadeOut,setLinearFadeOut]=React.useState(false);const linearFadeTimeoutRef=React.useRef(null);const clearLinearFadeTimeout=React.useCallback(()=>{if(typeof window===\"undefined\")return;if(linearFadeTimeoutRef.current!==null){window.clearTimeout(linearFadeTimeoutRef.current);linearFadeTimeoutRef.current=null;}},[]);const scheduleLinearFadeOut=React.useCallback(()=>{if(typeof window===\"undefined\")return;clearLinearFadeTimeout();linearFadeTimeoutRef.current=window.setTimeout(()=>{startTransition(()=>setLinearFadeOut(true));},100);},[clearLinearFadeTimeout]);const updateOrigin=React.useCallback((x,y)=>{const node=buttonRef.current;if(!node)return;const rect=node.getBoundingClientRect();startTransition(()=>{setOrigin({x,y});setCoverSize(getCoverDiameter(rect.width,rect.height,x,y));});},[]);const updateOriginFromPointer=React.useCallback(event=>{const rect=event.currentTarget.getBoundingClientRect();updateOrigin(event.clientX-rect.left,event.clientY-rect.top);},[updateOrigin]);const updateOriginFromCenter=React.useCallback(()=>{const node=buttonRef.current;if(!node)return;const rect=node.getBoundingClientRect();updateOrigin(rect.width/2,rect.height/2);},[updateOrigin]);// On touch devices, use pressed state for the fill effect (no hover available)\nconst showFill=!isStatic&&!isDisabled&&(hovered||isTouchDevice&&isPressed);React.useEffect(()=>{if(typeof window===\"undefined\")return;const node=buttonRef.current;if(!(node&&showFill))return;const measure=()=>{const rect=node.getBoundingClientRect();startTransition(()=>{setCoverSize(getCoverDiameter(rect.width,rect.height,origin.x,origin.y));});};measure();let observer=null;if(typeof globalThis.ResizeObserver!==\"undefined\"){const RO=globalThis.ResizeObserver;observer=new RO(measure);observer.observe(node);}const fonts=document.fonts;if(fonts?.ready){fonts.ready.then(measure).catch(()=>undefined);}return()=>{observer?.disconnect();};},[showFill,origin.x,origin.y]);const fillTransition=React.useMemo(()=>{switch(animationStyle){case\"linear\":return{duration:FILL_DURATION,ease:\"linear\"};case\"easeIn\":return{duration:FILL_DURATION,ease:\"easeIn\"};case\"easeOut\":return{duration:FILL_DURATION,ease:\"easeOut\"};case\"easeInOut\":return{duration:FILL_DURATION,ease:\"easeInOut\"};case\"spring\":return{type:\"spring\",stiffness:520,damping:38};case\"bounce\":return{type:\"spring\",stiffness:520,damping:28,bounce:.35};case\"cubic\":default:return{duration:FILL_DURATION,ease:FILL_EASE};}},[animationStyle]);const linearWipeTransition=React.useMemo(()=>{return{scaleX:fillTransition,opacity:fillTransition};},[fillTransition]);const linearExitMinScale=1e-4;const fixedWidth=Boolean(style&&style.width===\"100%\");const Root=link&&!isDisabled?motion.a:motion.button;const effectiveOrigin=React.useMemo(()=>{if(fillMode===\"centered\")return{x:0,y:0};return origin;},[fillMode,origin]);React.useEffect(()=>{if(fillMode!==\"centered\")return;const node=buttonRef.current;if(!node)return;const rect=node.getBoundingClientRect();startTransition(()=>{setOrigin({x:rect.width/2,y:rect.height/2});setCoverSize(getCoverDiameter(rect.width,rect.height,rect.width/2,rect.height/2));});},[fillMode]);React.useEffect(()=>{if(fillMode!==\"linear\")return;if(showFill){clearLinearFadeTimeout();startTransition(()=>setShouldRenderLinear(true));startTransition(()=>setLinearHasEverShown(true));startTransition(()=>setLinearFadeOut(false));return;}return()=>{clearLinearFadeTimeout();};},[fillMode,showFill,clearLinearFadeTimeout]);React.useEffect(()=>{if(fillMode!==\"linear\")return;// Prevent any initial visible wipe before first interaction\nstartTransition(()=>{setLinearHasEverShown(false);setLinearFadeOut(false);setShouldRenderLinear(false);});clearLinearFadeTimeout();// eslint-disable-next-line react-hooks/exhaustive-deps\n},[fillMode]);return /*#__PURE__*/_jsxs(Root,{ref:buttonRef,...link&&!isDisabled?{href:link,target:newTab?\"_blank\":undefined,rel:newTab?\"noopener noreferrer\":undefined}:{type:\"button\"},\"aria-disabled\":isDisabled||undefined,tabIndex:isDisabled?-1:undefined,onClick:event=>{if(isDisabled){event?.preventDefault?.();event?.stopPropagation?.();return;}onClick?.(event);},onBlur:event=>{if(isDisabled)return;startTransition(()=>{setIsPressed(false);if(!event.defaultPrevented)setHovered(false);});},onFocus:event=>{if(isDisabled)return;if(event.defaultPrevented)return;if(event.currentTarget.matches(\":focus-visible\")){updateOriginFromCenter();startTransition(()=>{setHovered(true);});}},onKeyDown:event=>{if(isDisabled)return;if(event.defaultPrevented||event.repeat)return;if(event.key!==\" \"&&event.key!==\"Enter\")return;if(event.key===\" \")event.preventDefault();updateOriginFromCenter();startTransition(()=>{setIsPressed(true);setHovered(true);});},onKeyUp:event=>{if(isDisabled)return;if(event.key===\" \"||event.key===\"Enter\"){startTransition(()=>{setIsPressed(false);if(!event.currentTarget.matches(\":focus-visible\"))setHovered(false);});}},onPointerCancel:()=>{if(isDisabled)return;startTransition(()=>{setIsPressed(false);});},onPointerDown:event=>{if(isDisabled)return;if(event.defaultPrevented||event.button!==0)return;if(fillMode!==\"centered\")updateOriginFromPointer(event);startTransition(()=>{setIsPressed(true);// On touch devices, don't set hovered - use pressed state instead\nif(!isTouchDevice)setHovered(true);});},onPointerEnter:event=>{if(isDisabled)return;if(event.defaultPrevented)return;if(fillMode!==\"centered\")updateOriginFromPointer(event);startTransition(()=>{setHovered(true);});},onPointerLeave:()=>{if(isDisabled)return;startTransition(()=>{setHovered(false);setIsPressed(false);});},onPointerMove:event=>{if(isDisabled)return;if(isStatic)return;if(!followCursor)return;if(!hovered)return;if(fillMode===\"centered\")return;updateOriginFromPointer(event);},onPointerUp:()=>{if(isDisabled)return;startTransition(()=>{setIsPressed(false);});},whileTap:isStatic||isDisabled?undefined:{scale:.985},style:{...style,position:\"relative\",overflow:\"hidden\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,userSelect:\"none\",WebkitUserSelect:\"none\",touchAction:\"manipulation\",cursor:isDisabled?\"not-allowed\":\"pointer\",width:\"100%\",height:\"100%\",padding,borderRadius,borderWidth:activeState.borderWidth??1,borderStyle:\"solid\",borderColor:activeState.borderColor,background:activeState.backgroundColor,color:activeState.textColor,textDecoration:\"none\",opacity:1,outline:\"none\",boxShadow:\"none\",transitionProperty:\"color, background-color, border-color\",transitionDuration:\"300ms\",transitionTimingFunction:\"cubic-bezier(0.16,1,0.3,1)\",...fixedWidth?null:{width:\"max-content\",minWidth:\"max-content\"},...font},children:[fillMode===\"radial\"&&/*#__PURE__*/_jsx(motion.span,{\"aria-hidden\":true,initial:false,animate:{scale:showFill&&coverSize>0?1:0},transition:fillTransition,style:{pointerEvents:\"none\",position:\"absolute\",left:effectiveOrigin.x,top:effectiveOrigin.y,width:coverSize,height:coverSize,borderRadius:9999,translate:\"-50% -50%\",background:fillColor}}),fillMode===\"centered\"&&/*#__PURE__*/_jsx(motion.span,{\"aria-hidden\":true,initial:false,animate:{scale:showFill&&coverSize>0?1:0},transition:fillTransition,style:{pointerEvents:\"none\",position:\"absolute\",left:\"50%\",top:\"50%\",width:coverSize,height:coverSize,borderRadius:9999,translate:\"-50% -50%\",background:fillColor}}),fillMode===\"linear\"&&shouldRenderLinear&&/*#__PURE__*/_jsx(motion.span,{\"aria-hidden\":true,initial:{scaleX:0,opacity:0},animate:{scaleX:showFill?1:0,opacity:showFill?1:linearHasEverShown&&linearFadeOut?0:1},transition:linearWipeTransition,onAnimationComplete:definition=>{if(fillMode!==\"linear\")return;if(!showFill&&linearHasEverShown){// Trigger opacity fade after scale reaches 0\nif(typeof definition===\"object\"&&!Array.isArray(definition)&&definition?.scaleX===0){startTransition(()=>setLinearFadeOut(true));}// Remove from DOM after opacity fade completes\nif(typeof definition===\"object\"&&!Array.isArray(definition)&&definition?.opacity===0){startTransition(()=>setShouldRenderLinear(false));}}},style:{pointerEvents:\"none\",position:\"absolute\",left:0,top:0,width:\"100%\",height:\"100%\",background:fillColor,borderRadius:borderRadius,transformOrigin:`${Math.max(0,Math.min(100,origin.x/Math.max(1,buttonRef.current?.getBoundingClientRect?.()?.width||1)*100))}% 50%`}}),/*#__PURE__*/_jsx(\"span\",{style:{position:\"relative\",zIndex:1,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,color:showFill?textColorHover:activeState.textColor,transition:\"color 300ms cubic-bezier(0.16,1,0.3,1)\",textTransform,...fixedWidth?{width:\"100%\"}:{minWidth:\"max-content\"}},children:label})]});}OriginButtonPro.displayName=\"Origin Button Pro\";addPropertyControls(OriginButtonPro,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Button\"},link:{type:ControlType.Link,title:\"Link\",defaultValue:\"\"},newTab:{type:ControlType.Boolean,title:\"New Tab\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:({link})=>!link},state:{type:ControlType.Enum,title:\"State\",options:[\"default\",\"disabled\"],optionTitles:[\"Default\",\"Disabled\"],defaultValue:\"default\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},defaultState:{type:ControlType.Object,title:\"Default State\",icon:\"effect\",hidden:({state})=>state===\"disabled\",controls:{backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#000000\"},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#EEEEEE\"},borderWidth:{type:ControlType.Number,title:\"Border Width\",defaultValue:1,min:0,max:50,step:1,unit:\"px\"}}},disabledState:{type:ControlType.Object,title:\"Disabled State\",icon:\"effect\",hidden:({state})=>state===\"default\",controls:{backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#F5F5F5\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#CCCCCC\"},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#EEEEEE\"},borderWidth:{type:ControlType.Number,title:\"Border Width\",defaultValue:1,min:0,max:50,step:1,unit:\"px\"}}},fillMode:{type:ControlType.Enum,title:\"Fill Mode\",options:[\"radial\",\"linear\",\"centered\"],optionTitles:[\"Radial\",\"Linear wipe\",\"Centered\"],defaultValue:\"radial\",hidden:({state})=>state===\"disabled\"},followCursor:{type:ControlType.Boolean,title:\"Follow Cursor\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:({state,fillMode})=>state===\"disabled\"||fillMode===\"centered\"},fillColor:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#111111\",hidden:({state})=>state===\"disabled\"},textColorHover:{type:ControlType.Color,title:\"Text (Hover)\",defaultValue:\"#FFFFFF\",hidden:({state})=>state===\"disabled\"},animationStyle:{type:ControlType.Enum,title:\"Animation\",options:[\"cubic\",\"linear\",\"easeIn\",\"easeOut\",\"easeInOut\",\"spring\",\"bounce\"],optionTitles:[\"Cubic\",\"Linear\",\"Ease-In\",\"Ease-Out\",\"Ease-In-Out\",\"Spring\",\"Bounce\"],defaultValue:\"cubic\",hidden:({state})=>state===\"disabled\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"12px\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:12,min:0,max:48,step:1,unit:\"px\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.02em\",lineHeight:\"1em\"}},textTransform:{type:ControlType.Enum,title:\"Text Transform\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],optionTitles:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"],defaultValue:\"none\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"OriginButtonPro\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"220\",\"framerDisableUnlink\":\"\",\"framerIntrinsicHeight\":\"48\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./OriginButtonPro.map"],"mappings":"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"}