{"version":3,"file":"SpinTextCircleFX.TuKLLbow.mjs","names":["React.useMemo","React.useCallback"],"sources":["https:/framerusercontent.com/modules/pBnLIbK4WVyeF7v6cn2h/1qEyoEuG9L6S2MqG7aAp/SpinTextCircleFX.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{motion,useAnimation,useMotionValue}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";function CircularText({text=\"*DIVERSEKIT*COMPONENT\",spinDuration=20,onHover=\"speedUp\",size=200,fontSize=20,fontWeight=700,fontFamily=\"Arial, sans-serif\",color=\"#ffffff\",className=\"\",style={},...rest}){const letters=React.useMemo(()=>Array.from(String(text||\"\")),[text]);const controls=useAnimation();const rotate=useMotionValue(0);const startSpin=React.useCallback(duration=>{const start=rotate.get()||0;controls.start({rotate:[start,start+360],scale:1,transition:{duration:Math.max(1e-4,duration),ease:\"linear\",repeat:Infinity}});},[controls,rotate]);React.useEffect(()=>{startSpin(spinDuration);},[spinDuration,text,startSpin]);const handleHoverStart=()=>{const start=rotate.get()||0;if(!onHover||onHover===\"none\")return;switch(onHover){case\"slowDown\":controls.start({rotate:[start,start+360],scale:1,transition:{duration:Math.max(1e-4,spinDuration*2),ease:\"linear\",repeat:Infinity}});break;case\"speedUp\":controls.start({rotate:[start,start+360],scale:1.05,transition:{duration:Math.max(1e-4,spinDuration/4),ease:\"linear\",repeat:Infinity}});break;case\"pause\":controls.stop();rotate.set(start);controls.start({scale:1,transition:{type:\"spring\",damping:20,stiffness:300}});break;case\"goBonkers\":controls.start({rotate:[start,start+360],scale:.9,transition:{duration:Math.max(1e-4,spinDuration/20),ease:\"linear\",repeat:Infinity}});break;default:controls.start({rotate:[start,start+360],scale:1,transition:{duration:spinDuration,ease:\"linear\",repeat:Infinity}});}};const handleHoverEnd=()=>{const start=rotate.get()||0;controls.start({rotate:[start,start+360],scale:1,transition:{duration:Math.max(1e-4,spinDuration),ease:\"linear\",repeat:Infinity}});};const radius=Math.max(10,size/2-fontSize/2);const baseContainerStyle={width:size,height:size,position:\"relative\",borderRadius:\"50%\",display:\"inline-block\",overflow:\"visible\",WebkitTransformOrigin:\"50% 50%\",transformOrigin:\"50% 50%\"};const letterBaseStyle={position:\"absolute\",left:\"50%\",top:\"50%\",transformOrigin:\"0 0\",display:\"inline-block\",userSelect:\"none\",pointerEvents:\"none\",color,fontSize,fontWeight,fontFamily};return /*#__PURE__*/_jsx(motion.div,{...rest,className:`circular-text ${className}`.trim(),style:{...baseContainerStyle,...style,rotate},initial:{rotate:0,scale:1},animate:controls,onMouseEnter:handleHoverStart,onMouseLeave:handleHoverEnd,onTouchStart:handleHoverStart,onTouchEnd:handleHoverEnd,children:letters.map((letter,i)=>{const angle=360/Math.max(1,letters.length)*i;const transform=`rotate(${angle}deg) translate(${radius}px) rotate(90deg)`;const spanStyle={...letterBaseStyle,transform,WebkitTransform:transform,lineHeight:1,whiteSpace:\"pre\"};return /*#__PURE__*/_jsx(\"span\",{className:\"letter\",style:spanStyle,children:letter},i);})});}addPropertyControls(CircularText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"*DIVERSEKIT*COMPONENT\"},spinDuration:{type:ControlType.Number,title:\"Spin (s)\",min:.05,max:120,step:.1,defaultValue:20},onHover:{type:ControlType.Enum,title:\"On Hover\",options:[\"none\",\"speedUp\",\"slowDown\",\"pause\",\"goBonkers\"],optionTitles:[\"none\",\"speedUp\",\"slowDown\",\"pause\",\"goBonkers\"],defaultValue:\"speedUp\"},size:{type:ControlType.Number,title:\"Size\",min:32,max:1e3,step:1,defaultValue:200},fontSize:{type:ControlType.Number,title:\"Font Size\",min:8,max:120,step:1,defaultValue:20},fontWeight:{type:ControlType.Enum,title:\"Weight\",options:[100,200,300,400,500,600,700,800,900],optionTitles:[\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"],defaultValue:700},fontFamily:{type:ControlType.String,title:\"Font Family\",defaultValue:\"Arial, sans-serif\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#ffffff\",description:\"More Components at [DiverseKit](https://framer.link/se2heI4)\"}});export default CircularText;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CircularText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SpinTextCircleFX.map"],"mappings":"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"}