{"version":3,"file":"shared-lib.eCSMjDxw.mjs","names":["useState","startTransition"],"sources":["https:/framerusercontent.com/modules/5eHo3RwbVQvpZbjQ3lsL/1wxYk1qwHWYNAdWSwhqW/ScrambleHover.js","https:/framerusercontent.com/modules/tgbKzAlx5XhlU2QWyDpl/XD2kRjdC3fHxsXupGO2R/siteMetadata.js"],"sourcesContent":["// Text scrambler component with hover effect that scrambles and reveals text\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,startTransition}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function ScrambleHover(props){const{text,characters,font,normalColor,scrambledColor,sequential,scrambleSpeed,maxIterations,revealDirection,blurScrambled}=props;const[displayText,setDisplayText]=useState(text);const[isHovering,setIsHovering]=useState(false);const[isScrambling,setIsScrambling]=useState(false);const[revealedIndices,setRevealedIndices]=useState(new Set);useEffect(()=>{let interval;let currentIteration=0;const getNextIndex=()=>{const textLength=text.length;const unrevealedIndices=[];for(let i=0;i<textLength;i++){if(!revealedIndices.has(i)){unrevealedIndices.push(i);}}if(unrevealedIndices.length===0)return 0;switch(revealDirection){case\"start\":return unrevealedIndices[0];case\"end\":return unrevealedIndices[unrevealedIndices.length-1];case\"center\":const middle=Math.floor(textLength/2);let closestIndex=unrevealedIndices[0];let minDistance=Math.abs(closestIndex-middle);for(const index of unrevealedIndices){const distance=Math.abs(index-middle);if(distance<minDistance){minDistance=distance;closestIndex=index;}}return closestIndex;case\"random\":return unrevealedIndices[Math.floor(Math.random()*unrevealedIndices.length)];default:return unrevealedIndices[0];}};const shuffleText=text=>{return text.split(\"\").map((char,i)=>{if(char===\" \")return\" \";if(revealedIndices.has(i))return text[i];return availableChars[Math.floor(Math.random()*availableChars.length)];}).join(\"\");};const availableChars=characters.split(\"\");if(isHovering){startTransition(()=>setIsScrambling(true));// Convert percentage to milliseconds (0% = 200ms, 100% = 10ms)\nconst speedInMs=Math.max(10,200-scrambleSpeed/100*190);interval=window.setInterval(()=>{if(revealedIndices.size<text.length&&revealedIndices.size<maxIterations){const nextIndex=getNextIndex();if(!revealedIndices.has(nextIndex)){revealedIndices.add(nextIndex);}startTransition(()=>setDisplayText(shuffleText(text)));}else{clearInterval(interval);startTransition(()=>setIsScrambling(false));startTransition(()=>setDisplayText(text));}},speedInMs);}else{startTransition(()=>setDisplayText(text));revealedIndices.clear();startTransition(()=>setIsScrambling(false));}return()=>{if(interval)clearInterval(interval);};},[isHovering,text,characters,scrambleSpeed,revealDirection,maxIterations]);const isFixedWidth=props?.style&&props.style.width===\"100%\";return /*#__PURE__*/_jsxs(motion.span,{onHoverStart:()=>startTransition(()=>setIsHovering(true)),onHoverEnd:()=>startTransition(()=>setIsHovering(false)),style:{display:\"inline-block\",whiteSpace:\"nowrap\",position:\"relative\",width:\"100%\",...font},children:[/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",left:\"-9999px\"},children:displayText}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:displayText.split(\"\").map((char,index)=>/*#__PURE__*/_jsx(\"span\",{style:{color:revealedIndices.has(index)||!isScrambling||!isHovering?normalColor:scrambledColor,filter:revealedIndices.has(index)||!isScrambling||!isHovering?\"none\":blurScrambled?`blur(${Math.random()*5+1}px)`:\"none\",transform:revealedIndices.has(index)||!isScrambling||!isHovering?\"none\":blurScrambled?`translateY(${(Math.random()-.5)*4}px)`:\"none\"},children:char},index))})]});}addPropertyControls(ScrambleHover,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Hover to scramble\",displayTextArea:true},characters:{type:ControlType.String,title:\"Characters\",defaultValue:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()_+\",displayTextArea:true},revealDirection:{type:ControlType.Enum,title:\"From\",options:[\"start\",\"end\",\"center\",\"random\"],optionTitles:[\"Left\",\"Right\",\"Center\",\"Random\"],defaultValue:\"start\"},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"32px\",variant:\"Bold\",letterSpacing:\"-0.03em\",lineHeight:\"1em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},normalColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},scrambledColor:{type:ControlType.Color,title:\"Scrambled\",defaultValue:\"#CCCCCC\"},scrambleSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:50,min:0,max:100,step:1,unit:\"%\"},maxIterations:{type:ControlType.Number,title:\"Letters\",defaultValue:10,min:1,max:50,step:1,displayStepper:true},blurScrambled:{type:ControlType.Boolean,title:\"Blur Effect\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrambleHover\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrambleHover.map","// Generated by Framer (f21d278)\nexport default function metadata(params,activeLocale){return{description:\"The collection of Omar Alessandro Santisi Emamers work\",favicon:\"https://framerusercontent.com/assets/mJn1OFCEQYwEOB52FqpZ9EAEK0.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/mJn1OFCEQYwEOB52FqpZ9EAEK0.png\",title:\"Alessandro Santisi - Videographer\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}