{"version":3,"file":"shared-lib.CodW1XT4.mjs","names":["useRef","useState","Tag"],"sources":["https:/framerusercontent.com/modules/kDBUTecCGecpzaAQHgZH/lv5LKaC92o7Z19PN84yB/ScrambleText.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useInView,useReducedMotion}from\"framer-motion\";const GLYPHS=\"ABCDEFGHJKLMNPQRSTUVWXYZ0123456789$€\\xa5\\xa3#%&*+=/<>\";/**\n * VAULT 27 — text that decodes from random glyphs into its final copy.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function ScrambleText(props){const{text=\"Wealth, sealed.\",font,color=\"#EDEBE4\",scrambleColor=\"#C8FF3D\",tag=\"p\",duration=1.2,delay=0,trigger=\"inView\",replay=false,alignment=\"left\",style}=props;const ref=useRef(null);const isStatic=useIsStaticRenderer();const reduce=useReducedMotion();const inView=useInView(ref,{once:!replay,amount:.4});const[progress,setProgress]=useState(isStatic||reduce?1:0);const[seed,setSeed]=useState(0);const[hoverRun,setHoverRun]=useState(0);const shouldRun=!isStatic&&!reduce&&(trigger===\"mount\"||trigger===\"inView\"&&inView||trigger===\"hover\"&&hoverRun>0);useEffect(()=>{if(!shouldRun){if(trigger===\"inView\"&&replay&&!inView&&!isStatic&&!reduce)setProgress(0);return;}let raf=0;let start=0;let last=0;const total=Math.max(.1,duration)*1e3;const tick=t=>{if(!start)start=t+delay*1e3;const p=Math.min(1,Math.max(0,(t-start)/total));setProgress(p);if(t-last>45){last=t;setSeed(s=>s+1);}if(p<1)raf=requestAnimationFrame(tick);};setProgress(0);raf=requestAnimationFrame(tick);return()=>cancelAnimationFrame(raf);},[shouldRun,duration,delay,hoverRun]);const chars=text.split(\"\");const revealCount=Math.floor(progress*chars.length);const Tag=tag;return /*#__PURE__*/_jsx(Tag,{ref:ref,\"aria-label\":text,onMouseEnter:trigger===\"hover\"?()=>setHoverRun(n=>n+1):undefined,style:{position:\"relative\",margin:0,color,textAlign:alignment,whiteSpace:\"pre-wrap\",width:\"100%\",...font,...style},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:chars.map((ch,i)=>{if(ch===\" \"||ch===\"\\n\"||i<revealCount)return /*#__PURE__*/_jsx(\"span\",{children:ch},i);const g=GLYPHS[(i*7+seed*13)%GLYPHS.length];// The real character keeps its width (invisible); the glyph is drawn on top,\n// so the layout never shifts while scrambling.\nreturn /*#__PURE__*/_jsxs(\"span\",{style:{position:\"relative\",display:\"inline\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{color:\"transparent\"},children:ch}),/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",left:\"50%\",top:0,transform:\"translateX(-50%)\",color:scrambleColor,opacity:.85,pointerEvents:\"none\"},children:g})]},i);})})});}addPropertyControls(ScrambleText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Wealth, sealed.\",displayTextArea:true},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:64,lineHeight:\"1em\",letterSpacing:\"-0.03em\"}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#EDEBE4\"},scrambleColor:{type:ControlType.Color,title:\"Scramble\",defaultValue:\"#C8FF3D\"},tag:{type:ControlType.Enum,title:\"Tag\",defaultValue:\"p\",options:[\"h1\",\"h2\",\"h3\",\"p\",\"span\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"Paragraph\",\"Span\"]},alignment:{type:ControlType.Enum,title:\"Align\",defaultValue:\"left\",options:[\"left\",\"center\",\"right\"],displaySegmentedControl:true},trigger:{type:ControlType.Enum,title:\"Trigger\",defaultValue:\"inView\",options:[\"inView\",\"mount\",\"hover\"],optionTitles:[\"In View\",\"On Load\",\"Hover\"]},replay:{type:ControlType.Boolean,title:\"Replay\",defaultValue:false},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:1.2,min:.2,max:5,step:.1,unit:\"s\"},delay:{type:ControlType.Number,title:\"Delay\",defaultValue:0,min:0,max:5,step:.1,unit:\"s\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrambleText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrambleText.map"],"mappings":"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"}