{"version":3,"file":"DecodingText.BAtP_neO.mjs","names":["useState","useRef","useMemo"],"sources":["https:/framerusercontent.com/modules/eWM5c6Cu5yzCkizDWfqj/u4Fbk5m09O8Q0X3tzQqK/DecodingText.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState,useRef,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Decoding text animation with configurable font, color, and looping.\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 50\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function DecodingText(props){const{text,color,font,speed,delayStart,style,numbersSet,symbolsSet,neonEnabled,paragraphMode}=props;const[displayText,setDisplayText]=useState(text);const hasCompletedRef=useRef(false);const prevTextRef=useRef(text);const prevDisplayRef=useRef(text);const charsNum=useMemo(()=>numbersSet&&numbersSet.length>0?numbersSet:\"0123456789\",[numbersSet]);const charsSym=useMemo(()=>symbolsSet&&symbolsSet.length>0?symbolsSet:\"!@#$%^&*()_+-=[]{}|;':,./<>?\",[symbolsSet]);useEffect(()=>{if(prevTextRef.current!==text){hasCompletedRef.current=false;prevTextRef.current=text;}if(!text||text.length===0){startTransition(()=>{setDisplayText(\"\");});return;}if(hasCompletedRef.current){return;}let frameId=null;const queue=[];for(let i=0;i<text.length;i++){const char=text[i];const start=delayStart+i*speed;const endNum=start+10;const endSym=endNum+10;queue.push({char:char,start:start,endNum:endNum,endSym:endSym,done:false});}let frame=0;const update=()=>{let output=\"\";let complete=0;for(let i=0;i<queue.length;i++){const q=queue[i];if(q.char===\" \"||q.char===\"\\n\"||q.char===\"\\r\"){output+=q.char;complete++;continue;}if(frame>=q.endSym){output+=q.char;complete++;}else if(frame>=q.endNum){output+=charsSym[Math.floor(Math.random()*charsSym.length)];}else if(frame>=q.start){output+=charsNum[Math.floor(Math.random()*charsNum.length)];}else{output+=\" \";}}if(output!==prevDisplayRef.current){prevDisplayRef.current=output;startTransition(()=>{setDisplayText(output);});}if(complete<queue.length){frameId=requestAnimationFrame(update);frame++;}else{hasCompletedRef.current=true;}};update();return()=>{if(frameId!==null){cancelAnimationFrame(frameId);}};},[text,speed,delayStart,charsNum,charsSym]);return /*#__PURE__*/_jsx(\"div\",{style:{...styleContainer,...style,color:color,...font,whiteSpace:paragraphMode?\"pre-wrap\":\"nowrap\",textShadow:neonEnabled?`0 0 5px ${color}, 0 0 10px ${color}, 0 0 20px ${color}`:\"none\",position:\"relative\"},children:displayText});}const styleContainer={display:\"flex\",alignItems:\"flex-start\",justifyContent:\"flex-start\",whiteSpace:\"pre-wrap\",width:\"80%\",height:\"100%\",minWidth:5,minHeight:5};addPropertyControls(DecodingText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"DECRYPTING...\",displayTextArea:true},numbersSet:{type:ControlType.String,title:\"Numbers\",defaultValue:\"0123456789\",placeholder:\"0123456789\"},symbolsSet:{type:ControlType.String,title:\"Symbols\",defaultValue:\"!@#$%^&*()_+-=[]{}|;':,./<>?\",placeholder:\"!@#$%^&*()_+-=[]{}|;':,./<>?\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#04db00\"},font:{type:ControlType.Font,title:\"Font\",defaultValue:{variant:\"Bold\",letterSpacing:\"0em\",lineHeight:\"1.2em\"},controls:\"extended\",defaultFontType:\"monospace\"},speed:{type:ControlType.Number,title:\"Flow Speed\",defaultValue:5,min:1,max:20,step:1,description:\"Letter spacing (the smaller, the faster it finishes)\"},delayStart:{type:ControlType.Number,title:\"Delay\",defaultValue:0,min:0,max:100},paragraphMode:{type:ControlType.Boolean,title:\"Paragraph\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:true},neonEnabled:{type:ControlType.Boolean,title:\"Neon Glow\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DecodingText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"50\",\"framerIntrinsicWidth\":\"200\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DecodingText.map"],"mappings":"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"}