{"version":3,"file":"Claude_VariableText.CA_FJcaX.mjs","names":["useRef","useState","useCallback"],"sources":["https:/framerusercontent.com/modules/vKnug4MuzX3zbm41UaQx/RqPCc5qDvvFd0YxIuy6n/Claude_VariableText.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useRef,useState,useCallback}from\"react\";/**\n * Variable Font Hover Effect\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 100\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function VariableText(props){const{text=\"Variable Font\",font,color=\"#000000\",minWeight=100,maxWeight=900,minSize=48,maxSize=72,radius=150,enterDuration=.1,leaveDuration=.4,transitionEasing=\"ease\"}=props;const chars=text.split(\"\");const charRefs=useRef([]);const isHoveringRef=useRef(false);const[weights,setWeights]=useState(()=>Array(chars.length).fill(minWeight));const[sizes,setSizes]=useState(()=>Array(chars.length).fill(minSize));const{fontWeight:_,...fontWithoutWeight}=font||{};const handlePointerMove=useCallback(e=>{isHoveringRef.current=true;const mouseX=e.clientX;const newWeights=[];const newSizes=[];charRefs.current.forEach(el=>{if(!el){newWeights.push(minWeight);newSizes.push(minSize);return;}const rect=el.getBoundingClientRect();const dist=Math.abs(mouseX-(rect.left+rect.width/2));if(dist>=radius){newWeights.push(minWeight);newSizes.push(minSize);return;}const falloff=Math.cos(dist/radius*(Math.PI/2));newWeights.push(Math.round(minWeight+(maxWeight-minWeight)*falloff));newSizes.push(Math.round(minSize+(maxSize-minSize)*falloff));});setWeights(newWeights);setSizes(newSizes);},[minWeight,maxWeight,minSize,maxSize,radius]);const handlePointerLeave=useCallback(()=>{isHoveringRef.current=false;setWeights(Array(chars.length).fill(minWeight));setSizes(Array(chars.length).fill(minSize));},[chars.length,minWeight,minSize]);return /*#__PURE__*/_jsx(\"div\",{onPointerMove:handlePointerMove,onPointerLeave:handlePointerLeave,style:{display:\"flex\",alignItems:\"baseline\",width:\"max-content\",// cursor: \"pointer\",\npointerEvents:\"all\"},children:chars.map((char,i)=>{const duration=isHoveringRef.current?enterDuration:leaveDuration;return /*#__PURE__*/_jsx(\"span\",{ref:el=>{charRefs.current[i]=el;},style:{...fontWithoutWeight,color,fontSize:sizes[i],fontVariationSettings:`'wght' ${weights[i]}`,display:\"inline-block\",transition:`font-variation-settings ${duration}s ${transitionEasing}, font-size ${duration}s ${transitionEasing}`,userSelect:\"none\"},children:char===\" \"?\"\\xa0\":char},i);})});}addPropertyControls(VariableText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Variable Font\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},minWeight:{type:ControlType.Number,title:\"Min Weight\",defaultValue:100,min:100,max:900,step:100,displayStepper:true},maxWeight:{type:ControlType.Number,title:\"Max Weight\",defaultValue:900,min:100,max:900,step:100,displayStepper:true},minSize:{type:ControlType.Number,title:\"Min Size\",defaultValue:48,min:8,max:200,step:1,unit:\"px\",displayStepper:true},maxSize:{type:ControlType.Number,title:\"Max Size\",defaultValue:72,min:8,max:200,step:1,unit:\"px\",displayStepper:true},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:150,min:10,max:500,step:10,unit:\"px\",displayStepper:true},enterDuration:{type:ControlType.Number,title:\"Enter Duration\",defaultValue:.1,min:0,max:2,step:.05,unit:\"s\",displayStepper:true},leaveDuration:{type:ControlType.Number,title:\"Leave Duration\",defaultValue:.4,min:0,max:2,step:.05,unit:\"s\",displayStepper:true},transitionEasing:{type:ControlType.Enum,title:\"Easing\",defaultValue:\"ease\",options:[\"linear\",\"ease\",\"ease-in\",\"ease-out\",\"ease-in-out\",\"cubic-bezier(0.34, 1.56, 0.64, 1)\"],optionTitles:[\"Linear\",\"Ease\",\"Ease In\",\"Ease Out\",\"Ease In Out\",\"Spring\"]}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"VariableText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"400\",\"framerIntrinsicHeight\":\"100\",\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Claude_VariableText.map"],"mappings":"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"}