{"version":3,"file":"TextCycle.B3aSuYAI.mjs","names":["useState","useRef","__esmMin","init_ssg_sandbox_shims","init_npm_react_18_3_1","window","te","ce","init_jsx_runtime","_e","de","motion","AnimatePresence","init_framer_motion_DhsWWWsN","init_framer_B1b760uK","addPropertyControls","ControlType","useIsStaticRenderer","TextCycle","props","index","setIndex","animating","setAnimating","isStatic","timeoutRef","slide","setSlide","prevIndex","texts","duration","currentText","variants","transition","animationDirection","style","font","init_TextCycle"],"sources":["https:/framerusercontent.com/modules/Ig07Rt6yW28hB4aeJUE9/AXb9YrTLX7OqDzh8rSHK/TextCycle.js"],"sourcesContent":["// Text animation that cycles through multiple texts, user can add many different texts\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState,useRef,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// Add motion import\nimport{motion,AnimatePresence}from\"framer-motion\";/**\n * TextCycle\n *\n * Animated text that cycles through multiple user-provided texts.\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 50\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function TextCycle(props){const{texts=[{value:\"Hello\"},{value:\"World\"}],duration=2e3,font,color,animationDirection=\"vertical-down\",overflow=\"visible\",style}=props;const[index,setIndex]=useState(0);const[animating,setAnimating]=useState(false);const isStatic=useIsStaticRenderer();const timeoutRef=useRef(null);// Animation state for slide/fade\nconst[slide,setSlide]=useState(0);useEffect(()=>{if(isStatic)return;if(texts.length<=1)return;if(timeoutRef.current)clearTimeout(timeoutRef.current);setAnimating(true);timeoutRef.current=window.setTimeout(()=>{setAnimating(false);setTimeout(()=>{startTransition(()=>{setIndex(prevIndex=>(prevIndex+1)%texts.length);});},400)// match transition duration\n;},duration);return()=>{if(timeoutRef.current)clearTimeout(timeoutRef.current);};},[index,duration,texts.length,isStatic]);const currentText=texts[index]?.value||\"\";// Generate animation variants based on direction\nconst getVariants=()=>{const transition={duration:.4,ease:[.42,0,.58,1]};switch(animationDirection){case\"vertical-up\":return{enter:{opacity:0,y:30,position:\"absolute\"},center:{opacity:1,y:0,position:\"relative\",transition},exit:{opacity:0,y:-30,position:\"absolute\",transition:{duration:.4,ease:[.42,0,1,1]}}};case\"horizontal-right\":return{enter:{opacity:0,x:-30,position:\"absolute\"},center:{opacity:1,x:0,position:\"relative\",transition},exit:{opacity:0,x:30,position:\"absolute\",transition:{duration:.4,ease:[.42,0,1,1]}}};case\"horizontal-left\":return{enter:{opacity:0,x:30,position:\"absolute\"},center:{opacity:1,x:0,position:\"relative\",transition},exit:{opacity:0,x:-30,position:\"absolute\",transition:{duration:.4,ease:[.42,0,1,1]}}};case\"vertical-down\":default:return{enter:{opacity:0,y:-30,position:\"absolute\"},center:{opacity:1,y:0,position:\"relative\",transition},exit:{opacity:0,y:30,position:\"absolute\",transition:{duration:.4,ease:[.42,0,1,1]}}};}};const variants=getVariants();return /*#__PURE__*/_jsx(\"span\",{style:{...style,...font,color,display:\"flex\",alignItems:\"center\",justifyContent:\"flex-start\",position:\"relative\",whiteSpace:\"nowrap\",overflow,width:\"100%\",height:\"100%\"},\"aria-live\":\"polite\",children:/*#__PURE__*/_jsx(AnimatePresence,{initial:false,mode:\"wait\",children:/*#__PURE__*/_jsx(motion.span,{variants:variants,initial:\"enter\",animate:\"center\",exit:\"exit\",style:{display:\"inline-block\"},children:currentText},index)})});}addPropertyControls(TextCycle,{texts:{type:ControlType.Array,title:\"Texts\",control:{type:ControlType.Object,controls:{value:{type:ControlType.String,title:\"Text\",defaultValue:\"Hello\"}}},defaultValue:[{value:\"Hello\"},{value:\"World\"},{value:\"Framer\"}],maxCount:10},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:2e3,min:500,max:1e4,unit:\"ms\",step:100},animationDirection:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"vertical-down\",options:[\"vertical-down\",\"vertical-up\",\"horizontal-right\",\"horizontal-left\"],optionTitles:[\"Top to Bottom\",\"Bottom to Top\",\"Left to Right\",\"Right to Left\"]},overflow:{type:ControlType.Enum,title:\"Overflow\",defaultValue:\"visible\",options:[\"visible\",\"hidden\",\"scroll\",\"auto\",\"clip\"],optionTitles:[\"Visible\",\"Hidden\",\"Scroll\",\"Auto\",\"Clip\"]},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"32px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextCycle\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"50\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextCycle.map"],"mappings":"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"}