{"version":3,"file":"RotatingText_2.BaJgiRf2.mjs","names":["useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/9rU42VoEqRGF7AU5O9Fj/LhgsHk9CVrGD344eYSWe/RotatingText_2.js"],"sourcesContent":["// Rotating text component with character-by-character animation and customizable transitions\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useState,startTransition}from\"react\";import{motion,AnimatePresence}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function RotatingText(props){const{texts=[\"Hello\",\"DiverseKit\",\"Framer\"],transition={type:\"spring\",damping:25,stiffness:300},initial={y:\"100%\",opacity:0},animate={y:0,opacity:1},exit={y:\"-120%\",opacity:0},animatePresenceMode=\"wait\",animatePresenceInitial=false,rotationInterval=2e3,staggerDuration=.03,staggerFrom=\"first\",loop=true,auto=true,splitBy=\"characters\",onNext,textColor=\"#000000\",font,style,padding=\"0px\",backgroundColor=\"transparent\",borderRadius=\"0px\"}=props;const[currentTextIndex,setCurrentTextIndex]=useState(0);const splitIntoCharacters=text=>{if(typeof Intl!==\"undefined\"&&\"Segmenter\"in Intl){try{const segmenter=new Intl.Segmenter(\"en\",{granularity:\"grapheme\"});return Array.from(segmenter.segment(text),segment=>segment.segment);}catch(e){return Array.from(text);}}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(staggerFrom-index)*staggerDuration;},[staggerFrom,staggerDuration]);const handleIndexChange=useCallback(newIndex=>{startTransition(()=>setCurrentTextIndex(newIndex));if(onNext)onNext(newIndex);},[onNext]);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)return;const intervalId=setInterval(next,rotationInterval);return()=>clearInterval(intervalId);},[next,rotationInterval,auto]);return /*#__PURE__*/_jsxs(motion.span,{style:{display:\"flex\",flexWrap:\"wrap\",whiteSpace:\"pre-wrap\",position:\"relative\",color:textColor,width:\"max-content\",padding,backgroundColor,borderRadius,...font,...style},layout:true,transition:transition,children:[/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",width:\"1px\",height:\"1px\",padding:0,margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",border:0},children:texts[currentTextIndex]}),/*#__PURE__*/_jsx(AnimatePresence,{mode:animatePresenceMode,initial:animatePresenceInitial,children:/*#__PURE__*/_jsx(motion.span,{style:{display:\"flex\",flexDirection:splitBy===\"lines\"?\"column\":\"row\",flexWrap:\"wrap\",whiteSpace:\"pre-wrap\",position:\"relative\",width:splitBy===\"lines\"?\"100%\":\"auto\"},layout:true,\"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\"},children:[wordObj.characters.map((char,charIndex)=>/*#__PURE__*/_jsx(motion.span,{initial:initial,animate:animate,exit:exit,transition:{...transition,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:{whiteSpace:\"pre\"},children:\" \"})]},wordIndex);})},currentTextIndex)})]});}addPropertyControls(RotatingText,{texts:{type:ControlType.Array,title:\"Texts\",control:{type:ControlType.String},defaultValue:[\"Hello\",\"DiverseKit\",\"Framer\"]},auto:{type:ControlType.Boolean,title:\"Auto Rotate\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},rotationInterval:{type:ControlType.Number,title:\"Interval\",defaultValue:2e3,min:100,max:1e4,step:100,unit:\"ms\",hidden:({auto})=>!auto},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},splitBy:{type:ControlType.Enum,title:\"Split By\",options:[\"characters\",\"words\",\"lines\"],optionTitles:[\"Characters\",\"Words\",\"Lines\"],defaultValue:\"characters\"},staggerDuration:{type:ControlType.Number,title:\"Stagger\",defaultValue:.03,min:0,max:.5,step:.01,unit:\"s\"},staggerFrom:{type:ControlType.Enum,title:\"Stagger From\",options:[\"first\",\"last\",\"center\",\"random\"],optionTitles:[\"First\",\"Last\",\"Center\",\"Random\"],defaultValue:\"first\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"40px\",variant:\"Bold\",letterSpacing:\"-0.04em\",lineHeight:\"1em\"}},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"0px\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0, 0, 0, 0)\"},borderRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"0px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RotatingText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\"}},\"RotatingTextProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RotatingText_2.map"],"mappings":"qQAIG,SAAwB,EAAa,EAAM,CAAC,GAAK,CAAC,QAAM,CAAC,QAAQ,aAAa,SAAS,CAAC,aAAW,CAAC,KAAK,SAAS,QAAQ,GAAG,UAAU,IAAI,CAAC,UAAQ,CAAC,EAAE,OAAO,QAAQ,EAAE,CAAC,UAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAK,CAAC,EAAE,QAAQ,QAAQ,EAAE,CAAC,sBAAoB,OAAO,yBAAuB,GAAM,mBAAiB,IAAI,kBAAgB,IAAI,cAAY,QAAQ,OAAK,GAAK,OAAK,GAAK,UAAQ,aAAa,SAAO,YAAU,UAAU,OAAK,QAAM,UAAQ,MAAM,kBAAgB,cAAc,eAAa,OAAO,EAAW,CAAC,EAAiB,GAAqBA,EAAS,EAAE,CAAO,EAAoB,GAAM,CAAC,GAAG,OAAO,KAAO,KAAa,cAAc,KAAM,GAAG,CAAC,IAAM,EAAU,IAAI,KAAK,UAAU,KAAK,CAAC,YAAY,WAAW,CAAC,CAAC,OAAO,MAAM,KAAK,EAAU,QAAQ,EAAK,CAAC,GAAS,EAAQ,QAAQ,MAAU,CAAC,OAAO,MAAM,KAAK,EAAK,CAAG,OAAO,MAAM,KAAK,EAAK,EAAS,EAASC,MAAY,CAAC,IAAM,EAAY,EAAM,GAAkB,GAAG,IAAU,aAAa,CAAC,IAAM,EAAM,EAAY,MAAM,IAAI,CAAC,OAAO,EAAM,KAAK,EAAK,KAAK,CAAC,WAAW,EAAoB,EAAK,CAAC,WAAW,IAAI,EAAM,OAAO,EAAE,EAAE,CAAuP,OAAlP,IAAU,QAAgB,EAAY,MAAM,IAAI,CAAC,KAAK,EAAK,EAAE,KAAO,CAAC,WAAW,CAAC,EAAK,CAAC,WAAW,IAAI,EAAI,OAAO,EAAE,EAAE,CAAK,IAAU,QAAgB,EAAY,MAAM;EAAK,CAAC,KAAK,EAAK,EAAE,KAAO,CAAC,WAAW,CAAC,EAAK,CAAC,WAAW,IAAI,EAAI,OAAO,EAAE,EAAE,CAAS,EAAY,MAAM,EAAQ,CAAC,KAAK,EAAK,EAAE,KAAO,CAAC,WAAW,CAAC,EAAK,CAAC,WAAW,IAAI,EAAI,OAAO,EAAE,EAAE,EAAG,CAAC,EAAM,EAAiB,EAAQ,CAAC,CAAO,EAAgBC,GAAa,EAAM,IAAa,CAAC,IAAM,EAAM,EAAW,GAAG,IAAc,QAAQ,OAAO,EAAM,EAAgB,GAAG,IAAc,OAAO,OAAO,EAAM,EAAE,GAAO,EAAgB,GAAG,IAAc,SAAS,CAAC,IAAM,EAAO,KAAK,MAAM,EAAM,EAAE,CAAC,OAAO,KAAK,IAAI,EAAO,EAAM,CAAC,EAAiB,GAAG,IAAc,SAAS,CAAC,IAAM,EAAY,KAAK,MAAM,KAAK,QAAQ,CAAC,EAAM,CAAC,OAAO,KAAK,IAAI,EAAY,EAAM,CAAC,EAAiB,OAAO,KAAK,IAAI,EAAY,EAAM,CAAC,GAAkB,CAAC,EAAY,EAAgB,CAAC,CAAO,EAAkBA,EAAY,GAAU,CAAC,MAAoB,EAAoB,EAAS,CAAC,CAAI,GAAO,EAAO,EAAS,EAAG,CAAC,EAAO,CAAC,CAAO,EAAKA,MAAgB,CAAC,IAAM,EAAU,IAAmB,EAAM,OAAO,EAAE,EAAK,EAAE,EAAiB,EAAiB,EAAK,IAAY,GAAkB,EAAkB,EAAU,EAAI,CAAC,EAAiB,EAAM,OAAO,EAAK,EAAkB,CAAC,CAAwJ,OAAvJ,MAAc,CAAC,GAAG,CAAC,EAAK,OAAO,IAAM,EAAW,YAAY,EAAK,EAAiB,CAAC,UAAU,cAAc,EAAW,EAAG,CAAC,EAAK,EAAiB,EAAK,CAAC,CAAqB,EAAM,EAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,OAAO,SAAS,OAAO,WAAW,WAAW,SAAS,WAAW,MAAM,EAAU,MAAM,cAAc,UAAQ,kBAAgB,eAAa,GAAG,EAAK,GAAG,EAAM,CAAC,OAAO,GAAgB,aAAW,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,MAAM,OAAO,MAAM,QAAQ,EAAE,OAAO,OAAO,SAAS,SAAS,KAAK,mBAAmB,WAAW,SAAS,OAAO,EAAE,CAAC,SAAS,EAAM,GAAkB,CAAC,CAAc,EAAK,EAAgB,CAAC,KAAK,EAAoB,QAAQ,EAAuB,SAAsB,EAAK,EAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,IAAU,QAAQ,SAAS,MAAM,SAAS,OAAO,WAAW,WAAW,SAAS,WAAW,MAAM,IAAU,QAAQ,OAAO,OAAO,CAAC,OAAO,GAAK,cAAc,OAAO,SAAS,EAAS,KAAK,EAAQ,EAAU,IAAQ,CAAC,IAAM,EAAmB,EAAM,MAAM,EAAE,EAAU,CAAC,QAAQ,EAAI,IAAO,EAAI,EAAK,WAAW,OAAO,EAAE,CAAC,OAAoB,EAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,cAAc,CAAC,SAAS,CAAC,EAAQ,WAAW,KAAK,EAAK,IAAyB,EAAK,EAAO,KAAK,CAAS,UAAgB,UAAa,OAAK,WAAW,CAAC,GAAG,EAAW,MAAM,EAAgB,EAAmB,EAAU,EAAM,QAAQ,EAAI,IAAO,EAAI,EAAK,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,eAAe,CAAC,SAAS,EAAK,CAAC,EAAU,CAAC,CAAC,EAAQ,YAAyB,EAAK,OAAO,CAAC,MAAM,CAAC,WAAW,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,EAAU,EAAG,CAAC,CAAC,EAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,kBAHtyH,IAA0E,IAAkD,IAAoD,CAGwnH,EAAoB,EAAa,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,QAAQ,CAAC,KAAK,EAAY,OAAO,CAAC,aAAa,CAAC,QAAQ,aAAa,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAK,aAAa,KAAK,cAAc,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,UAAQ,CAAC,EAAK,CAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAK,aAAa,KAAK,cAAc,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,QAAQ,CAAC,aAAa,QAAQ,QAAQ,CAAC,aAAa,CAAC,aAAa,QAAQ,QAAQ,CAAC,aAAa,aAAa,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,IAAI,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,eAAe,QAAQ,CAAC,QAAQ,OAAO,SAAS,SAAS,CAAC,aAAa,CAAC,QAAQ,OAAO,SAAS,SAAS,CAAC,aAAa,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,OAAO,cAAc,UAAU,WAAW,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,mBAAmB,CAAC,aAAa,CAAC,KAAK,EAAY,aAAa,MAAM,SAAS,aAAa,MAAM,CAAC,CAAC"}