{"version":3,"file":"ScrambleText.CTFURfjT.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/5HrlAhyRJhKyaPKoUZuu/iLjK5XLBirm3hATMIHsG/ScrambleText.js"],"sourcesContent":["// © Framer University. All rights reserved.\n// Bugfix added by @hyggemethat – 2025-04-03\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState,useRef}from\"react\";// Configuration\nconst loopDelay=5e3;const initDelay=100;// Do not configure\nconst letters=\"abcdefghijklmnopqrstuvwxyz-.,+*!?@&%/=\";export function onAppear(Component){return props=>{const value=props.children.props.children.props.children;const[isVisible,setIsVisible]=useState(false);const[iteration,setIteration]=useState(0);const intervalRef=useRef(null);const timeoutRef=useRef(null);const intersectionRef=useRef(null);const encrypt=iteration=>{return value.split(\"\").map((letter,index)=>{if(index<iteration){return value[index];}return letters[Math.floor(Math.random()*letters.length)];}).join(\"\");};useEffect(()=>{const observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting){setIsVisible(true);}else{setIsVisible(false);setIteration(0);if(intervalRef.current)clearInterval(intervalRef.current);if(timeoutRef.current)clearTimeout(timeoutRef.current);}});});observer.observe(intersectionRef.current);return()=>observer.disconnect();},[]);useEffect(()=>{if(isVisible){// Clear any existing intervals\nif(intervalRef.current)clearInterval(intervalRef.current);if(timeoutRef.current)clearTimeout(timeoutRef.current);// Initial delay before starting animation\ntimeoutRef.current=setTimeout(()=>{intervalRef.current=setInterval(()=>{setIteration(prev=>{const next=prev+5/6;if(next>=value.length){clearInterval(intervalRef.current);// Set timeout for the next loop\ntimeoutRef.current=setTimeout(()=>{setIteration(0);},loopDelay);return value.length// Cap at full text length\n;}return next;});},50);},initDelay);}return()=>{if(intervalRef.current)clearInterval(intervalRef.current);if(timeoutRef.current)clearTimeout(timeoutRef.current);};},[isVisible,iteration===0,value.length]);return /*#__PURE__*/_jsx(Component,{ref:intersectionRef,...props,text:isVisible?encrypt(iteration):value});};}\nexport const __FramerMetadata__ = {\"exports\":{\"onAppear\":{\"type\":\"reactHoc\",\"name\":\"onAppear\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrambleText.map"],"mappings":"2HAIuD,SAAgB,EAAS,EAAU,CAAC,MAAO,IAAO,CAAC,IAAM,EAAM,EAAM,SAAS,MAAM,SAAS,MAAM,SAAc,CAAC,EAAU,GAAcA,EAAS,EAAK,EAAO,CAAC,EAAU,GAAcA,EAAS,CAAC,EAAQ,EAAYC,EAAO,IAAI,EAAQ,EAAWA,EAAO,IAAI,EAAQ,EAAgBA,EAAO,IAAI,EAAQ,EAAQ,GAAmB,EAAM,MAAM,EAAE,CAAC,CAAC,KAAK,EAAO,IAAY,EAAM,EAAkB,EAAM,GAAe,EAAQ,KAAK,MAAM,KAAK,OAAO,EAAE,EAAc,EAAI,CAAC,CAAC,KAAK,EAAE,EAIhU,OAJoU,MAAc,CAAC,IAAM,EAAS,IAAI,qBAAqB,GAAS,CAAC,EAAQ,QAAQ,GAAO,CAAI,EAAM,eAAgB,EAAa,EAAI,GAAQ,EAAa,EAAK,EAAE,EAAa,CAAC,EAAK,EAAY,SAAQ,cAAc,EAAY,OAAO,EAAK,EAAW,SAAQ,aAAa,EAAW,OAAO,EAAG,CAAC,CAAE,CAAC,EAA4C,OAA1C,EAAS,QAAQ,EAAgB,OAAO,MAAY,EAAS,WAAW,CAAE,EAAE,CAAC,CAAC,EAAE,OAAkB,IACv5B,EAAY,SAAQ,cAAc,EAAY,OAAO,EAAK,EAAW,SAAQ,aAAa,EAAW,OAAO,EAC/G,EAAW,QAAQ,eAAe,CAAC,EAAY,QAAQ,gBAAgB,CAAC,EAAa,GAAM,CAAC,IAAM,EAAK,EAAK,EAAE,EAE5G,OAFiH,GAAM,EAAM,QAAQ,cAAc,EAAY,OAAO,EACxK,EAAW,QAAQ,eAAe,CAAC,EAAa,CAAC,CAAE,EAAE,CAAS,EAAS,EAAM,QACpE,CAAK,CAAC,CAAE,EAAE,EAAE,CAAE,EAAE,CAAS,OAAa,CAAI,EAAY,SAAQ,cAAc,EAAY,OAAO,EAAK,EAAW,SAAQ,aAAa,EAAW,OAAO,CAAE,GAAI,CAAC,EAAU,IAAY,EAAE,EAAM,MAAM,CAAC,EAAsB,EAAK,EAAU,CAAC,IAAI,EAAgB,GAAG,EAAM,KAAK,EAAU,EAAQ,CAAS,EAAE,CAAK,CAAC,CAAE,CAAE,uBANhR,IAA6C,EACjF,EAAU,IAAU,EAAU,IAC9B,EAAQ"}