{"version":3,"file":"RotatingText_1.BAs7u5Je.mjs","names":["useState","useRef","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/3oYXkh5HiUybuopfOLd6/x8d3kfLn8SgYnvIzmRk5/RotatingText_1.js"],"sourcesContent":["// Text Cycler component for Framer, adapted from provided code and following Framer component rules\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";/**\n * Text Cycler\n *\n * Animated cycling text with per-character/word/line animation and staggered transitions.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function TextCycler(props){const{texts=[\"React\",\"Bits\",\"Is\",\"Cool!\"],staggerFrom=\"last\",initial={y:\"100%\",opacity:0},animate={y:0,opacity:1},exit={y:\"-120%\",opacity:0},staggerDuration=.025,transition={type:\"spring\",damping:30,stiffness:400},rotationInterval=2,loop=true,auto=true,splitBy=\"characters\",font,fontSize=32,fontVariant=\"Semibold\",letterSpacing=-.01,italic=false,overflow=\"visible\",textColor=\"#000000\",style,duration=.5}=props;const[currentTextIndex,setCurrentTextIndex]=useState(0);const isStatic=useIsStaticRenderer();const intervalRef=useRef(null);const splitIntoCharacters=text=>{if(typeof Intl!==\"undefined\"&&Intl.Segmenter){const segmenter=new Intl.Segmenter(\"en\",{granularity:\"grapheme\"});return Array.from(segmenter.segment(text),segment=>segment.segment);}return Array.from(text);};const elements=useMemo(()=>{const currentText=texts[currentTextIndex]||\"\";if(splitBy===\"characters\"){const words=currentText.split(\" \");return words.map((word,i)=>({characters:splitIntoCharacters(word),needsSpace:i!==words.length-1}));}if(splitBy===\"words\"){return currentText.split(\" \").map((word,i,arr)=>({characters:[word],needsSpace:i!==arr.length-1}));}if(splitBy===\"lines\"){return currentText.split(\"\\n\").map((line,i,arr)=>({characters:[line],needsSpace:i!==arr.length-1}));}return currentText.split(splitBy).map((part,i,arr)=>({characters:[part],needsSpace:i!==arr.length-1}));},[texts,currentTextIndex,splitBy]);const getStaggerDelay=useCallback((index,totalChars)=>{const total=totalChars;if(staggerFrom===\"first\")return index*staggerDuration;if(staggerFrom===\"last\")return(total-1-index)*staggerDuration;if(staggerFrom===\"center\"){const center=Math.floor(total/2);return Math.abs(center-index)*staggerDuration;}if(staggerFrom===\"random\"){const randomIndex=Math.floor(Math.random()*total);return Math.abs(randomIndex-index)*staggerDuration;}return Math.abs(Number(staggerFrom)-index)*staggerDuration;},[staggerFrom,staggerDuration]);const handleIndexChange=useCallback(newIndex=>{startTransition(()=>setCurrentTextIndex(newIndex));},[]);const next=useCallback(()=>{const nextIndex=currentTextIndex===texts.length-1?loop?0:currentTextIndex:currentTextIndex+1;if(nextIndex!==currentTextIndex){handleIndexChange(nextIndex);}},[currentTextIndex,texts.length,loop,handleIndexChange]);useEffect(()=>{if(!auto||isStatic)return;intervalRef.current=window.setInterval(next,rotationInterval*1e3);return()=>{if(intervalRef.current)clearInterval(intervalRef.current);};},[next,rotationInterval,auto,isStatic]);// Style\nconst containerStyle={...style,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:textColor,overflow,...font,fontSize,letterSpacing:`${letterSpacing}em`,// Framer Font control uses `variant` for weight/style\n...fontVariant?{variant:fontVariant}:{},...italic?{fontStyle:\"italic\"}:{fontStyle:\"normal\"}};return /*#__PURE__*/_jsxs(motion.span,{style:containerStyle,\"aria-label\":texts[currentTextIndex],children:[/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",left:-9999,opacity:0},children:texts[currentTextIndex]}),/*#__PURE__*/_jsx(AnimatePresence,{mode:\"wait\",initial:false,children:/*#__PURE__*/_jsx(motion.span,{style:{display:\"flex\",alignItems:\"center\"},\"aria-hidden\":\"true\",children:elements.map((wordObj,wordIndex,array)=>{const previousCharsCount=array.slice(0,wordIndex).reduce((sum,word)=>sum+word.characters.length,0);return /*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-flex\",overflow:italic?\"visible\":\"hidden\",paddingTop:italic?\"0.2em\":\"0.05em\",paddingBottom:italic?\"0.25em\":\"0.1em\",paddingRight:italic?\"0.12em\":0,marginRight:italic?\"-0.12em\":0},children:[wordObj.characters.map((char,charIndex)=>/*#__PURE__*/_jsx(motion.span,{initial:initial,animate:animate,exit:exit,transition:{ease:\"easeInOut\",duration,delay:getStaggerDelay(previousCharsCount+charIndex,array.reduce((sum,word)=>sum+word.characters.length,0))},style:{display:\"inline-block\"},children:char},charIndex)),wordObj.needsSpace&&/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",width:4}})]},wordIndex);})},currentTextIndex)})]});}addPropertyControls(TextCycler,{texts:{type:ControlType.Array,title:\"Texts\",control:{type:ControlType.String,defaultValue:\"React\"},defaultValue:[\"React\",\"Bits\",\"Is\",\"Cool!\"],maxCount:10},splitBy:{type:ControlType.Enum,title:\"Split By\",options:[\"characters\",\"words\",\"lines\"],optionTitles:[\"Characters\",\"Words\",\"Lines\"],defaultValue:\"characters\"},rotationInterval:{type:ControlType.Number,title:\"Rotation Interval\",defaultValue:2,min:2,max:60,step:1,unit:\"s\"},staggerFrom:{type:ControlType.Enum,title:\"Stagger From\",options:[\"first\",\"last\",\"center\",\"random\"],optionTitles:[\"First\",\"Last\",\"Center\",\"Random\"],defaultValue:\"last\"},staggerDuration:{type:ControlType.Number,title:\"Stagger Duration\",defaultValue:.025,min:0,max:.2,step:.005,unit:\"s\"},duration:{type:ControlType.Number,title:\"Animation Duration\",defaultValue:.5,min:.1,max:2,step:.1,unit:\"s\"},font:{type:ControlType.Font,title:\"Typography\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"32px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:32,min:8,max:200,step:1,unit:\"px\"},fontVariant:{type:ControlType.Enum,title:\"Font Weight\",options:[\"Regular\",\"Medium\",\"Semibold\",\"Bold\"],defaultValue:\"Semibold\",displaySegmentedControl:true},letterSpacing:{type:ControlType.Number,title:\"Letter Spacing\",defaultValue:-.01,min:-.2,max:.2,step:.005,unit:\"em\"},italic:{type:ControlType.Boolean,title:\"Italic\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},overflow:{type:ControlType.Enum,title:\"Overflow\",options:[\"visible\",\"hidden\",\"clip\",\"auto\",\"scroll\"],defaultValue:\"visible\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextCycler\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RotatingText_1.map"],"mappings":"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"}