{"version":3,"file":"ScrambleText_1.CsRoKP9O.mjs","names":["useState","useRef","useCallback","t","x2","useMemo"],"sources":["https:/framerusercontent.com/modules/XQj0FrDmoRiUjgX6NnVC/HuplW9t9qk4biCf67SjW/ScrambleText_1.js"],"sourcesContent":["// Scramble Text - Animated text reveal with customizable scramble effects\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState,useRef,useCallback,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType,useInView}from\"framer\";/**\n * Scramble Text\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 60\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function ScrambleText(props){const{text=\"Scramble Text\",font,color=\"#000000\",scrambledColor=\"#CCCCCC\",characterSet=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*\",scramblePercentage=100,keepEnding=0,duration=1e3,delay=0,scrambleSpeed=50,direction=\"left\",trigger=\"onLoad\",replay=\"none\",loop=false,loopInterval=3e3,cursor=\"default\",easing=\"linear\",customBezier={x1:.42,y1:0,x2:.58,y2:1},steps=5,stepPosition=\"end\",textAlign=\"left\"}=props;const[displayText,setDisplayText]=useState(text);const[isAnimating,setIsAnimating]=useState(false);const[isHovered,setIsHovered]=useState(false);const containerRef=useRef(null);const animationRef=useRef(null);const loopTimeoutRef=useRef(null);const isInView=useInView(containerRef,{once:trigger===\"onLoad\"});const getRandomChar=useCallback(()=>{return characterSet[Math.floor(Math.random()*characterSet.length)];},[characterSet]);const applyEasing=useCallback(t=>{switch(easing){case\"linear\":return t;case\"ease-in\":return t*t;case\"ease-out\":return t*(2-t);case\"ease-in-out\":return t<.5?2*t*t:-1+(4-2*t)*t;case\"ease-in-cubic\":return t*t*t;case\"ease-out-cubic\":return 1-Math.pow(1-t,3);case\"ease-in-out-cubic\":return t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;case\"custom-bezier\":return cubicBezier(t,customBezier.x1,customBezier.y1,customBezier.x2,customBezier.y2);case\"steps\":if(stepPosition===\"start\"){return Math.ceil(t*steps)/steps;}else{return Math.floor(t*steps)/steps;}default:return t;}},[easing,customBezier,steps,stepPosition]);const cubicBezier=(t,x1,y1,x2,y2)=>{const cx=3*x1;const bx=3*(x2-x1)-cx;const ax=1-cx-bx;const cy=3*y1;const by=3*(y2-y1)-cy;const ay=1-cy-by;const sampleCurveX=t=>((ax*t+bx)*t+cx)*t;const sampleCurveY=t=>((ay*t+by)*t+cy)*t;const solveCurveX=x=>{let t0=0;let t1=1;let t2=x;let x2;let d2;for(let i=0;i<8;i++){x2=sampleCurveX(t2)-x;if(Math.abs(x2)<1e-6)return t2;d2=(3*ax*t2+2*bx)*t2+cx;if(Math.abs(d2)<1e-6)break;t2=t2-x2/d2;}t2=x;if(t2<t0)return t0;if(t2>t1)return t1;while(t0<t1){x2=sampleCurveX(t2);if(Math.abs(x2-x)<1e-6)return t2;if(x>x2)t0=t2;else t1=t2;t2=(t1-t0)*.5+t0;}return t2;};return sampleCurveY(solveCurveX(t));};const scrambleText=useCallback((currentText,progress)=>{const textLength=text.length;const scrambleCount=Math.floor(textLength*scramblePercentage/100);const keepEndingCount=Math.min(keepEnding,textLength);let result=\"\";for(let i=0;i<textLength;i++){const isEndChar=i>=textLength-keepEndingCount;const shouldReveal=(()=>{switch(direction){case\"left\":return i<textLength*progress;case\"right\":return i>=textLength*(1-progress);case\"center\":{const center=textLength/2;const revealDistance=textLength/2*progress;return Math.abs(i-center)<=revealDistance;}case\"random\":return Math.random()<progress;default:return i<textLength*progress;}})();if(isEndChar&&keepEndingCount>0){result+=text[i];}else if(shouldReveal){result+=text[i];}else if(i<scrambleCount){result+=getRandomChar();}else{result+=text[i];}}return result;},[text,scramblePercentage,keepEnding,direction,getRandomChar]);const animate=useCallback(()=>{const startTime=Date.now()+delay;const endTime=startTime+duration;const step=()=>{const now=Date.now();if(now<startTime){animationRef.current=requestAnimationFrame(step);return;}if(now>=endTime){startTransition(()=>{setDisplayText(text);setIsAnimating(false);});return;}const elapsed=now-startTime;const progress=Math.min(elapsed/duration,1);if(elapsed%scrambleSpeed<16){const scrambled=scrambleText(text,applyEasing(progress));startTransition(()=>setDisplayText(scrambled));}animationRef.current=requestAnimationFrame(step);};startTransition(()=>setIsAnimating(true));animationRef.current=requestAnimationFrame(step);},[text,duration,delay,scrambleSpeed,scrambleText,applyEasing]);const startAnimation=useCallback(()=>{if(animationRef.current){cancelAnimationFrame(animationRef.current);}if(loopTimeoutRef.current){clearTimeout(loopTimeoutRef.current);}animate();},[animate]);const setupLoop=useCallback(()=>{if(!loop)return;loopTimeoutRef.current=window.setTimeout(()=>{startAnimation();setupLoop();},duration+delay+loopInterval);},[loop,duration,delay,loopInterval,startAnimation]);useEffect(()=>{if(trigger===\"onLoad\"||trigger===\"inView\"&&isInView){startAnimation();if(loop){setupLoop();}}return()=>{if(animationRef.current){cancelAnimationFrame(animationRef.current);}if(loopTimeoutRef.current){clearTimeout(loopTimeoutRef.current);}};},[trigger,isInView,startAnimation,setupLoop,loop]);useEffect(()=>{if(replay===\"hover\"&&isHovered&&!isAnimating){startAnimation();}},[isHovered,replay,isAnimating,startAnimation]);const handleClick=useCallback(()=>{if(replay===\"click\"&&!isAnimating){startAnimation();}},[replay,isAnimating,startAnimation]);const handleMouseEnter=useCallback(()=>{startTransition(()=>setIsHovered(true));},[]);const handleMouseLeave=useCallback(()=>{startTransition(()=>setIsHovered(false));},[]);const textColor=useMemo(()=>{if(!isAnimating)return color;return displayText===text?color:scrambledColor;},[isAnimating,displayText,text,color,scrambledColor]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...props.style,position:\"relative\",overflow:\"hidden\",cursor},onClick:handleClick,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,children:/*#__PURE__*/_jsx(\"span\",{style:{...font,color:textColor,whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",display:\"block\",textAlign,transition:\"color 0.1s ease\"},children:displayText})});}addPropertyControls(ScrambleText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Scramble Text\",displayTextArea:true},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"40px\",variant:\"Bold\",letterSpacing:\"-0.04em\",lineHeight:\"1em\"}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},scrambledColor:{type:ControlType.Color,title:\"Scrambled Color\",defaultValue:\"#CCCCCC\"},characterSet:{type:ControlType.String,title:\"Character Set\",defaultValue:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*\",displayTextArea:true},scramblePercentage:{type:ControlType.Number,title:\"Scramble %\",defaultValue:100,min:0,max:100,step:1,unit:\"%\"},keepEnding:{type:ControlType.Number,title:\"Keep Ending\",defaultValue:0,min:0,max:50,step:1,displayStepper:true},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:1e3,min:100,max:5e3,step:100,unit:\"ms\"},delay:{type:ControlType.Number,title:\"Delay\",defaultValue:0,min:0,max:5e3,step:100,unit:\"ms\"},scrambleSpeed:{type:ControlType.Number,title:\"Scramble Speed\",defaultValue:50,min:16,max:200,step:16,unit:\"ms\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"center\",\"random\"],optionTitles:[\"Left\",\"Right\",\"Center\",\"Random\"],defaultValue:\"left\",displaySegmentedControl:true},trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"onLoad\",\"inView\"],optionTitles:[\"On Load\",\"In View\"],defaultValue:\"onLoad\",displaySegmentedControl:true},replay:{type:ControlType.Enum,title:\"Replay\",options:[\"hover\",\"click\",\"none\"],optionTitles:[\"Hover\",\"Click\",\"None\"],defaultValue:\"none\",displaySegmentedControl:true},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},loopInterval:{type:ControlType.Number,title:\"Loop Interval\",defaultValue:3e3,min:0,max:1e4,step:100,unit:\"ms\",hidden:({loop})=>!loop},cursor:{type:ControlType.Enum,title:\"Cursor\",options:[\"default\",\"pointer\",\"text\",\"none\"],optionTitles:[\"Default\",\"Pointer\",\"Text\",\"None\"],defaultValue:\"default\"},easing:{type:ControlType.Enum,title:\"Easing\",options:[\"linear\",\"ease-in\",\"ease-out\",\"ease-in-out\",\"ease-in-cubic\",\"ease-out-cubic\",\"ease-in-out-cubic\",\"custom-bezier\",\"steps\"],optionTitles:[\"Linear\",\"Ease In\",\"Ease Out\",\"Ease In Out\",\"Ease In Cubic\",\"Ease Out Cubic\",\"Ease In Out Cubic\",\"Custom Bezier\",\"Steps\"],defaultValue:\"linear\"},customBezier:{type:ControlType.Object,title:\"Custom Bezier\",controls:{x1:{type:ControlType.Number,title:\"X1\",defaultValue:.42,min:0,max:1,step:.01},y1:{type:ControlType.Number,title:\"Y1\",defaultValue:0,min:0,max:1,step:.01},x2:{type:ControlType.Number,title:\"X2\",defaultValue:.58,min:0,max:1,step:.01},y2:{type:ControlType.Number,title:\"Y2\",defaultValue:1,min:0,max:1,step:.01}},hidden:({easing})=>easing!==\"custom-bezier\"},steps:{type:ControlType.Number,title:\"Steps\",defaultValue:5,min:1,max:20,step:1,displayStepper:true,hidden:({easing})=>easing!==\"steps\"},stepPosition:{type:ControlType.Enum,title:\"Step Position\",options:[\"start\",\"end\"],optionTitles:[\"Start\",\"End\"],defaultValue:\"end\",displaySegmentedControl:true,hidden:({easing})=>easing!==\"steps\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrambleText\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"60\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrambleText_1.map"],"mappings":"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"}