{"version":3,"file":"TextWave_Prod.DvxOqiEE.mjs","names":["useMemo","useRef","_Fragment","__esmMin","pe","init_npm_react_18_3_1","de","init_jsx_runtime","c","p","ce","useInView","motion","animate","init_framer_motion_DhsWWWsN","easeInOut","addPropertyControls","ControlType","RenderTarget","Color","init_framer_DKWANagr","useColors","init_useColors","TextWave","props","animation","id","generateRandomString","isCanvas","ref","elementsRef","spanWidthsRef","defaultColor","waveInColor","waveOutColor","colors","waveInColorObject","glowColorObject","glow","textColorObjectRef","delay","interpolateColorRef","isInView","loop","replay","textAlign","font","MotionTag","tag","spanClassName","waveRange","waveWidth","progressRef","lines","wordCount","textLines","text","i","line","index","createLineChildren","lineWords","per","l","word","savedIndex","el","char","lineIndex","wordIndex","charIndex","colorAnimation","timeoutId","animationFrame","animateTextColor","interpolateTextColor","animateIn","mapRange","speed","colorObject","value","runAnimation","segments","start","direction","end","updateText","cumulativeOffset","elementOffset","prevYPosition","elementLineMap","elementScaleMap","lineOffsets","element","offset","boundingClientRect","yPosition","origin","offsetPercent","scaleValue","waveScale","halfOffset","resize","scale","lineOffset","offsetValue","translate","trigger","userSelect","fromLow","fromHigh","toLow","toHigh","result","randomIndex","CHARACTERS","init_TextWave_Prod"],"sources":["https:/framerusercontent.com/modules/3IRcdSKMsgRyQ9gSaApX/M78UEPhT3wrz39QISNV2/TextWave_Prod.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,Color}from\"framer\";import{useEffect,useRef,useMemo}from\"react\";import{motion,animate,easeInOut,useInView}from\"framer-motion\";import{useColors}from\"https://framerusercontent.com/modules/k76epLFsVsF4jlsF5pgg/vhK3G0ntf62fqS2tFDno/useColors.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n */export default function TextWave(props){const{text,tag,per,origin,colors,font,userSelect,waveWidth,waveScale,speed,resize,animation,glow,direction}=props;const{loop,trigger,replay,delay}=animation;const id=useMemo(generateRandomString,[]);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const ref=useRef(null);const elementsRef=useRef([]);const spanWidthsRef=useRef([]);const[defaultColor,waveInColor,waveOutColor]=useColors(colors.defaultColor,colors.waveInColor,colors.waveOutColor);const waveInColorObject=useMemo(()=>Color(waveInColor),[waveInColor]);const glowColorObject=useMemo(()=>glow?Color(glow.color):null,[glow?.color]);const textColorObjectRef=useRef(Color(delay===0?waveOutColor:defaultColor));const interpolateColorRef=useRef(Color.interpolate(waveInColorObject,Color(waveOutColor||defaultColor)));const isInView=useInView(ref,{once:loop||!replay,amount:\"some\"});const textAlign=font?.textAlign||\"center\";const MotionTag=motion[tag]||motion.span;const spanClassName=`${id}-span`;const waveRange=(waveWidth+1)/2;const progressRef=useRef(-waveRange-1);const[lines,wordCount]=useMemo(()=>{const textLines=text.split(\"\\n\");let wordCount=0;const lines=[];for(let i=0;i<textLines.length;i++){const line=textLines[i].split(/[ \\t]+/);lines.push(line);wordCount+=line.length;}return[lines,wordCount];},[text]);let index=0;const createLineChildren=(lineIndex,lineWords)=>{return lineWords.map((word,wordIndex)=>{if(per===\"character\"){return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{className:`${id}-word-wrapper`,children:word.split(\"\").map((char,charIndex)=>{const savedIndex=index;index++;return /*#__PURE__*/_jsx(\"span\",{ref:el=>{if(el)elementsRef.current[savedIndex]=el;},className:spanClassName,children:char},`${lineIndex}-${wordIndex}-${charIndex}`);})},`${lineIndex}-${wordIndex}`),wordIndex<lineWords.length-1&&\" \"]});}const savedIndex=index;index++;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{ref:el=>{if(el)elementsRef.current[savedIndex]=el;},className:spanClassName,children:word},`${lineIndex}-${wordIndex}`),wordIndex<lineWords.length-1&&\" \"]});});};useEffect(()=>{let colorAnimation=null;let animation=null;let timeoutId=null;let animationFrame=null;const animateTextColor=animateIn=>{if(!waveOutColor||defaultColor===waveOutColor){return;}if(colorAnimation){colorAnimation.stop();}const interpolateTextColor=Color.interpolate(textColorObjectRef.current,Color(animateIn?waveOutColor:defaultColor));colorAnimation=animate(0,1,{type:\"spring\",bounce:0,duration:mapRange(speed,0,100,1.5,1),onUpdate:value=>{const colorObject=interpolateTextColor(value);textColorObjectRef.current=colorObject;interpolateColorRef.current=Color.interpolate(waveInColorObject,colorObject);if(ref.current){ref.current.style.color=colorObject.toValue();}}});};const runAnimation=()=>{animateTextColor(true);const segments=per===\"word\"?wordCount:text.length;const start=direction===\"right\"?-waveRange:segments+waveRange;const end=direction===\"right\"?segments+waveRange:-waveRange;animation=animate(start,end,{type:\"ease\",ease:\"linear\",duration:Math.exp(mapRange(speed,0,100,Math.log(.3),Math.log(.01)))*(segments+waveRange*2),onUpdate:value=>{progressRef.current=value;},onComplete:()=>{if(ref.current){ref.current.style.transform=\"\";}if(loop&&isInView){timeoutId=setTimeout(runAnimation,delay*1e3);}animateTextColor(false);}});};const updateText=()=>{let cumulativeOffset=0;let elementOffset=[];let prevYPosition=0;const elementLineMap=new Map;const elementScaleMap=new Map;const lineOffsets=[];let lineIndex=-1;for(let i=0;i<elementsRef.current.length;i++){const element=elementsRef.current[i];if(!element)continue;const offset=Math.abs(progressRef.current-i);const boundingClientRect=element.getBoundingClientRect();const yPosition=origin===\"center\"?boundingClientRect.y+boundingClientRect.height/2:boundingClientRect.y+boundingClientRect.height;if(Math.abs(yPosition-prevYPosition)>2){// New line has started\nlineIndex++;if(lineIndex>0){lineOffsets[lineIndex-1]=cumulativeOffset;}cumulativeOffset=0;}prevYPosition=yPosition;elementLineMap.set(element,lineIndex);if(offset>waveRange){element.style.color=\"\";element.style.margin=\"\";element.style.textShadow=\"\";elementOffset[i]=cumulativeOffset;}else{const offsetPercent=easeInOut(offset/waveRange);const scaleValue=mapRange(offsetPercent,0,1,waveScale,1);const halfOffset=resize?spanWidthsRef.current[i]*(scaleValue-1)/2:0;elementScaleMap.set(element,scaleValue);cumulativeOffset+=halfOffset;elementOffset[i]=cumulativeOffset;if(glow){element.style.textShadow=glow.blur>0?`0 0 ${glow.blur}px rgba(${glowColorObject.r}, ${glowColorObject.g}, ${glowColorObject.b}, ${glowColorObject.a*(1-offsetPercent)})`:\"\";}element.style.color=offsetPercent>=1?waveOutColor||defaultColor:offsetPercent<=0?waveInColor:interpolateColorRef.current?.(offsetPercent).toValue()||waveOutColor||defaultColor;cumulativeOffset+=halfOffset;}if(i===elementsRef.current.length-1){lineOffsets[lineIndex]=cumulativeOffset;}}for(let i=0;i<elementsRef.current.length;i++){const element=elementsRef.current[i];if(!element)continue;const scaleValue=elementScaleMap.get(element)||1;const scale=scaleValue!==1?`scale(${scaleValue})`:\"\";if(!resize){element.style.transform=scale;continue;}const offset=elementOffset[i];const lineIndex=elementLineMap.get(element)||0;const lineOffset=lineOffsets[lineIndex];let offsetValue=offset;switch(textAlign){case\"center\":offsetValue-=lineOffset/2;break;case\"right\":offsetValue-=lineOffset;break;}const translate=Math.abs(offsetValue)>.1?`translateX(${offsetValue}px)`:\"\";element.style.transform=translate&&scale?`${translate} ${scale}`:translate||scale;}animationFrame=requestAnimationFrame(updateText);};if(!isCanvas){animationFrame=requestAnimationFrame(updateText);const shouldAnimate=loop?isInView:trigger===\"appear\"||trigger===\"layerInView\"&&isInView;if(shouldAnimate){if(delay){timeoutId=setTimeout(runAnimation,delay*1e3);}else{runAnimation();}}}return()=>{animation?.cancel();colorAnimation?.stop();if(animationFrame){cancelAnimationFrame(animationFrame);}if(timeoutId){clearTimeout(timeoutId);}};},[isInView]);useEffect(()=>{if(!isCanvas){elementsRef.current.forEach((el,i)=>{if(el){spanWidthsRef.current[i]=el.getBoundingClientRect().width;}});}},[isCanvas,text,font]);return /*#__PURE__*/_jsxs(MotionTag,{ref:ref,style:{...props.style,transformStyle:\"preserve-3d\",whiteSpace:props.style?.width?undefined:\"nowrap\",userSelect:userSelect?\"auto\":\"none\",margin:0,textAlign,color:isCanvas?colors.defaultColor:textColorObjectRef.current?.toValue()||colors.defaultColor,...font},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n\t\t\t\t.${id}-line {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\ttransform-style: preserve-3d;\n\t\t\t\t}\n\t\t\t\t.${id}-word-wrapper {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\ttransform-style: preserve-3d;\n\t\t\t\t\twhite-space: pre;\n\t\t\t\t}\n\t\t\t\t.${id}-span {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\ttransform-style: preserve-3d;\n\t\t\t\t\twhite-space: pre;\n\t\t\t\t\twill-change: transform, color, text-shadow;\n\t\t\t\t\ttransform-origin: ${origin===\"center\"?\"50% 50%\":\"50% 100%\"};\n\t\t\t\t}\n\t\t\t\t`}),lines.length===1?createLineChildren(0,lines[0]):lines.map((lineWords,lineIndex)=>/*#__PURE__*/_jsx(\"span\",{className:`${id}-line`,children:createLineChildren(lineIndex,lineWords)},lineIndex))]});}TextWave.displayName=\"Text Wave\";addPropertyControls(TextWave,{text:{type:ControlType.String,defaultValue:\"Learn Framer With Framer University\",placeholder:\"Text\"},font:{type:\"font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:32,lineHeight:1}},colors:{type:ControlType.Object,buttonTitle:\"Colors\",controls:{defaultColor:{type:ControlType.Color,defaultValue:\"#FFF\",title:\"Default\"},waveInColor:{type:ControlType.Color,defaultValue:\"#FFF\",title:\"Wave In\"},waveOutColor:{type:ControlType.Color,defaultValue:\"rgba(255, 255, 255, 0.5)\",optional:true,title:\"Wave Out\"}}},glow:{type:ControlType.Object,optional:true,icon:\"effect\",controls:{color:{type:ControlType.Color,defaultValue:\"#FFF\"},blur:{type:ControlType.Number,defaultValue:10,min:0,max:100,step:1}}},per:{type:ControlType.Enum,options:[\"character\",\"word\"],optionTitles:[\"Letter\",\"Word\"],displaySegmentedControl:true},waveWidth:{type:ControlType.Number,defaultValue:10,min:1,max:100,step:1,title:\"Wave Width\"},waveScale:{type:ControlType.Number,defaultValue:1.2,min:0,max:2,step:.01,title:\"Scale\"},origin:{type:ControlType.Enum,defaultValue:\"center\",options:[\"center\",\"bottom\"],optionTitles:[\"Center\",\"Bottom\"],// optionIcons: [\"align-middle\", \"align-bottom\"],\ndisplaySegmentedControl:true,hidden:props=>props.waveScale===1},resize:{type:ControlType.Boolean,defaultValue:true},direction:{type:ControlType.Enum,defaultValue:\"right\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],optionIcons:[\"direction-left\",\"direction-right\"],displaySegmentedControl:true},speed:{type:ControlType.Number,defaultValue:50,min:0,max:100,step:1,unit:\"%\"},animation:{type:ControlType.Object,icon:\"effect\",controls:{loop:{type:ControlType.Boolean,defaultValue:false},trigger:{type:ControlType.Enum,defaultValue:\"layerInView\",options:[\"appear\",\"layerInView\"],optionTitles:[\"Appear\",\"Layer in View\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:props=>props.loop},replay:{type:ControlType.Boolean,defaultValue:true,hidden:props=>props.loop||props.trigger!==\"layerInView\"},delay:{type:ControlType.Number,defaultValue:0,min:0,step:.1}}},userSelect:{type:ControlType.Boolean,defaultValue:false},tag:{type:ControlType.Enum,title:\"Tag\",defaultValue:\"p\",displaySegmentedControl:true,options:[\"h1\",\"h2\",\"h3\",\"p\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"P\"],description:\"More components at [Framer University](https://frameruni.link/cc).\"}});function mapRange(value,fromLow,fromHigh,toLow,toHigh){if(fromLow===fromHigh){return toLow;}const percentage=(value-fromLow)/(fromHigh-fromLow);return toLow+percentage*(toHigh-toLow);}const CHARACTERS=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";function generateRandomString(){let result=\"\";for(let i=0;i<8;i++){const randomIndex=Math.floor(Math.random()*CHARACTERS.length);result+=CHARACTERS.charAt(randomIndex);}return result;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextWave\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}