{"version":3,"file":"ScrambleAppear_Prod.D-FbCb_N.mjs","names":["useRef","useMemo","useState","useCallback"],"sources":["https:/framerusercontent.com/modules/x9N74fQKlr6QLCpcJIqg/RWVsDJ5qQ1WjEtdoE2Kw/ScrambleAppear_Prod.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{animate,useReducedMotion}from\"framer-motion\";import{useCallback,useEffect,useMemo,useRef,useState}from\"react\";const DEFAULT_TEXT=\"TEXT SCRAMBLE\\nAPPEAR EFFECT\";const SLOWEST_INTERVAL_MS=200;const FASTEST_INTERVAL_MS=10;const DEFAULT_CHARACTERS=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+[]{}|;:,.<>?~\";const DEFAULT_SCRAMBLE={percentage:10,speed:22,characters:DEFAULT_CHARACTERS};const DEFAULT_ANIMATION={from:\"center\",trigger:\"layerInView\",start:\"center\",replay:true,playing:true,delay:0,transition:{type:\"tween\",duration:2,ease:[0,0,1,1]}};const DEFAULT_FONT={fontFamily:\"Fragment Mono\",fontWeight:400,fontStyle:\"normal\",fontSize:24,letterSpacing:\"0em\",lineHeight:\"1.4em\"};const DEFAULT_FONT_CONTROL={variant:\"Regular\",fontSize:\"24px\",letterSpacing:\"0em\",lineHeight:\"1.4em\"};const VARIANT_WEIGHTS={Thin:100,ExtraLight:200,\"Extra Light\":200,Light:300,Regular:400,Medium:500,SemiBold:600,Semibold:600,Bold:700,ExtraBold:800,\"Extra Bold\":800,Black:900};function normalizeFont(font){if(!font)return DEFAULT_FONT;const{variant,...resolved}=font;const result={...resolved};if(!result.fontFamily)result.fontFamily=DEFAULT_FONT.fontFamily;if(result.fontWeight===undefined&&typeof variant===\"string\"){const base=variant.replace(/ ?Italic$/,\"\");result.fontWeight=VARIANT_WEIGHTS[base]??400;if(/Italic$/.test(variant))result.fontStyle=\"italic\";}return result;}function transformText(text,transform){if(transform===\"capitalize\"){return text.replace(/(^|\\s)(\\S)/g,(_match,lead,character)=>lead+character.toUpperCase());}if(transform===\"lowercase\")return text.toLowerCase();if(transform===\"uppercase\")return text.toUpperCase();return text;}function randomCharacter(characters,original){if(!characters.length||/\\s/.test(original))return original;const selected=characters[Math.floor(Math.random()*characters.length)];if(original===original.toLowerCase()&&original!==original.toUpperCase()){return selected.toLowerCase();}return selected.toUpperCase();}function makeOrder(text,from){const lines=[];let offset=0;for(const line of text.split(\"\\n\")){const characters=Array.from(line);lines.push(characters.map((_character,index)=>offset+index).filter(index=>!/\\s/.test(Array.from(text)[index])));offset+=characters.length+1;}const indices=lines.flat();if(from===\"right\")return lines.flatMap(line=>[...line].reverse());if(from===\"center\"){const centeredLines=lines.map(line=>{if(!line.length)return line;const center=(line[0]+line[line.length-1])/2;return[...line].sort((a,b)=>Math.abs(a-center)-Math.abs(b-center)||a-b);});const order=[];const longest=Math.max(0,...centeredLines.map(line=>line.length));for(let depth=0;depth<longest;depth++){for(const line of centeredLines){if(line[depth]!==undefined)order.push(line[depth]);}}return order;}if(from===\"random\"){for(let index=indices.length-1;index>0;index--){const swap=Math.floor(Math.random()*(index+1));[indices[index],indices[swap]]=[indices[swap],indices[index]];}}return indices;}function buildGlyphs(text,order,progress,percentage,characters){if(progress>=1){return Array.from(text,character=>({character,state:\"revealed\"}));}const rank=new Map(order.map((index,position)=>[index,position]));const band=Math.max(1,Math.round(order.length*Math.max(0,percentage)/100));const head=progress*(order.length+band)-band;return Array.from(text,(character,index)=>{if(/\\s/.test(character))return{character,state:\"revealed\"};const position=rank.get(index)??order.length;if(position<=head-band)return{character,state:\"revealed\"};if(position<=head){return{character:randomCharacter(characters,character),state:\"scrambled\"};}return{character,state:\"hidden\"};});}function swapIntervalMs(speed){const clamped=Math.min(100,Math.max(1,Number.isFinite(speed)?speed:DEFAULT_SCRAMBLE.speed));const ratio=FASTEST_INTERVAL_MS/SLOWEST_INTERVAL_MS;return SLOWEST_INTERVAL_MS*Math.pow(ratio,(clamped-1)/99);}function tokens(text){const result=[];let start=0;for(const part of text.split(/(\\s)/)){if(!part)continue;result.push({start,text:part,word:!/\\s/.test(part)});start+=Array.from(part).length;}return result;}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n * @framerIntrinsicWidth 245\n * @framerIntrinsicHeight 67\n */export default function ScrambleAppear(props){const{preview=true,text=DEFAULT_TEXT,font,color=\"#FFF\",scrambledColor=\"#888\",scramble=DEFAULT_SCRAMBLE,animation=DEFAULT_ANIMATION,transform=\"none\",wrap=\"auto\",truncate=false,lines=2,userSelect=true,tag=\"p\",style,className}=props;const rootRef=useRef(null);const controlsRef=useRef(null);const intervalRef=useRef(null);const runRef=useRef(0);const hasPlayedRef=useRef(false);const reducedMotion=useReducedMotion()===true;const renderTarget=RenderTarget.current();const isCanvas=renderTarget===RenderTarget.canvas;const isStatic=renderTarget===RenderTarget.thumbnail||renderTarget===RenderTarget.export;const displayText=transformText(text??\"\",transform);const order=useMemo(()=>makeOrder(displayText,animation?.from??DEFAULT_ANIMATION.from),[displayText,animation?.from]);const characters=useMemo(()=>Array.from(scramble?.characters||DEFAULT_CHARACTERS),[scramble?.characters]);const[progress,setProgress]=useState(isCanvas||isStatic?1:0);const[glyphs,setGlyphs]=useState(()=>buildGlyphs(displayText,order,isCanvas||isStatic?1:0,0,characters));const progressRef=useRef(progress);progressRef.current=progress;const stop=useCallback(()=>{controlsRef.current?.stop?.();controlsRef.current=null;if(intervalRef.current!==null)window.clearInterval(intervalRef.current);intervalRef.current=null;},[]);const updateGlyphs=useCallback(nextProgress=>{setGlyphs(buildGlyphs(displayText,order,nextProgress,scramble?.percentage??DEFAULT_SCRAMBLE.percentage,characters));},[characters,displayText,order,scramble?.percentage]);const run=useCallback(()=>{stop();const run=++runRef.current;setProgress(0);updateGlyphs(0);if(reducedMotion||isStatic||typeof window===\"undefined\"){setProgress(1);updateGlyphs(1);return;}const interval=swapIntervalMs(scramble?.speed??DEFAULT_SCRAMBLE.speed);intervalRef.current=window.setInterval(()=>updateGlyphs(progressRef.current),interval);const transition=animation?.transition??DEFAULT_ANIMATION.transition;controlsRef.current=animate(0,1,{...transition,delay:Math.max(0,animation?.delay??0),onUpdate:value=>{if(runRef.current!==run)return;progressRef.current=value;setProgress(value);},onComplete:()=>{if(runRef.current!==run)return;stop();progressRef.current=1;setProgress(1);updateGlyphs(1);}});},[animation?.delay,animation?.transition,isStatic,reducedMotion,scramble?.speed,stop,updateGlyphs]);useEffect(()=>{updateGlyphs(progressRef.current);},[updateGlyphs]);useEffect(()=>{if(isStatic||reducedMotion){stop();progressRef.current=1;setProgress(1);updateGlyphs(1);return;}if(isCanvas){if(preview)run();else stop();return stop;}if(animation?.trigger===\"appear\"){if(!hasPlayedRef.current){hasPlayedRef.current=true;run();}return stop;}if(animation?.trigger===\"toggle\"){if(animation.playing)run();else{stop();progressRef.current=0;setProgress(0);updateGlyphs(0);}return stop;}return stop;},[animation?.playing,animation?.trigger,isCanvas,isStatic,preview,reducedMotion,run,stop,updateGlyphs]);useEffect(()=>{if(isCanvas||isStatic||animation?.trigger!==\"layerInView\")return;const node=rootRef.current;if(!node||typeof window===\"undefined\")return;let frame=0;let active=false;const check=()=>{frame=0;const rect=node.getBoundingClientRect();const point=animation.start===\"top\"?rect.top:animation.start===\"bottom\"?rect.bottom:rect.top+rect.height/2;const entered=point<=window.innerHeight&&rect.bottom>0;const fullyOutside=rect.bottom<=0||rect.top>=window.innerHeight;if(entered&&!active&&(!hasPlayedRef.current||animation.replay)){active=true;hasPlayedRef.current=true;run();}else if(animation.replay&&fullyOutside&&active){active=false;stop();progressRef.current=0;setProgress(0);updateGlyphs(0);}};const schedule=()=>{if(!frame)frame=window.requestAnimationFrame(check);};window.addEventListener(\"scroll\",schedule,{passive:true});window.addEventListener(\"resize\",schedule);schedule();return()=>{window.removeEventListener(\"scroll\",schedule);window.removeEventListener(\"resize\",schedule);if(frame)window.cancelAnimationFrame(frame);stop();};},[animation?.replay,animation?.start,animation?.trigger,isCanvas,isStatic,run,stop,updateGlyphs]);useEffect(()=>stop,[stop]);const Element=tag;const resolvedUserSelect=userSelect===true||userSelect===\"auto\"?\"auto\":\"none\";const lineClamp=Math.max(1,Math.round(lines)||1);const rootStyle={position:\"relative\",display:\"block\",margin:0,width:\"max-content\",maxWidth:\"none\",minWidth:245,height:style?.height,whiteSpace:\"pre-wrap\",overflowWrap:\"normal\",wordBreak:\"normal\",color,userSelect:resolvedUserSelect,WebkitUserSelect:resolvedUserSelect,...normalizeFont(font),...style};// Framer passes width: 100% to the component DOM even while the canvas\n// layer itself is Fit. Reassert intrinsic sizing after the host style so\n// an unconstrained line is measured as a line instead of collapsing to\n// the width of its longest word.\nrootStyle.width=\"max-content\";rootStyle.maxWidth=\"none\";rootStyle.minWidth=245;rootStyle.whiteSpace=\"pre-wrap\";rootStyle.textWrap=wrap;rootStyle.userSelect=resolvedUserSelect;rootStyle.WebkitUserSelect=resolvedUserSelect;const clampStyle=truncate?{display:\"-webkit-box\",WebkitBoxOrient:\"vertical\",WebkitLineClamp:lineClamp,overflow:\"hidden\"}:{display:\"block\"};const textTokens=tokens(displayText);const visibleGlyphs=isStatic||reducedMotion?buildGlyphs(displayText,order,1,0,characters):glyphs;const scrambledCount=visibleGlyphs.reduce((count,glyph)=>count+(glyph.state===\"scrambled\"?1:0),0);return /*#__PURE__*/_jsxs(Element,{\"data-build\":\"scramble-appear-prod-20260930-01\",\"data-scramble-appear\":\"root\",\"data-scrambled-count\":scrambledCount,\"data-source-text\":displayText,\"data-render-target\":renderTarget,ref:rootRef,className:className,style:rootStyle,\"aria-label\":displayText,children:[/*#__PURE__*/_jsx(\"span\",{style:{...clampStyle,visibility:\"hidden\"},children:displayText}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{...clampStyle,position:\"absolute\",inset:0},children:textTokens.map((token,tokenIndex)=>{if(!token.word)return /*#__PURE__*/_jsx(\"span\",{children:token.text},tokenIndex);return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline\",whiteSpace:\"nowrap\"},children:Array.from(token.text).map((character,offset)=>{const glyph=visibleGlyphs[token.start+offset]??{character,state:\"revealed\"};return /*#__PURE__*/_jsx(\"span\",{style:{opacity:glyph.state===\"hidden\"?0:1,color:glyph.state===\"scrambled\"?scrambledColor:undefined},children:glyph.character},offset);})},tokenIndex);})})]});}ScrambleAppear.displayName=\"Scramble Appear\";addPropertyControls(ScrambleAppear,{preview:{type:ControlType.Boolean,title:\"On canvas\",enabledTitle:\"Play\",disabledTitle:\"Pause\",defaultValue:true},text:{type:ControlType.String,title:\"Text\",defaultValue:DEFAULT_TEXT,displayTextArea:true},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"monospace\",defaultValue:DEFAULT_FONT_CONTROL},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFF\"},scrambledColor:{type:ControlType.Color,title:\"Scrambled\",defaultValue:\"#888\"},scramble:{type:ControlType.Object,title:\"Scramble\",buttonTitle:\"Edit scramble\",icon:\"effect\",controls:{percentage:{type:ControlType.Number,title:\"Percentage\",defaultValue:DEFAULT_SCRAMBLE.percentage,min:0,max:100,step:1,unit:\"%\"},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:DEFAULT_SCRAMBLE.speed,min:1,max:100,step:1},characters:{type:ControlType.String,title:\"Characters\",defaultValue:DEFAULT_CHARACTERS,displayTextArea:true}},defaultValue:DEFAULT_SCRAMBLE},animation:{type:ControlType.Object,title:\"Animation\",buttonTitle:\"Edit animation\",icon:\"effect\",controls:{from:{type:ControlType.Enum,title:\"From\",options:[\"left\",\"center\",\"right\",\"random\"],optionTitles:[\"Left\",\"Center\",\"Right\",\"Random\"],defaultValue:DEFAULT_ANIMATION.from},trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"appear\",\"layerInView\",\"toggle\"],optionTitles:[\"On appear\",\"Layer in view\",\"Toggle\"],defaultValue:DEFAULT_ANIMATION.trigger,displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},start:{type:ControlType.Enum,title:\"Start\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],defaultValue:DEFAULT_ANIMATION.start,displaySegmentedControl:true,hidden:settings=>settings.trigger!==\"layerInView\"},replay:{type:ControlType.Boolean,title:\"Replay\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:DEFAULT_ANIMATION.replay,hidden:settings=>settings.trigger!==\"layerInView\"},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:DEFAULT_ANIMATION.playing,hidden:settings=>settings.trigger!==\"toggle\"},delay:{type:ControlType.Number,title:\"Delay\",defaultValue:DEFAULT_ANIMATION.delay,min:0,step:.1,unit:\"s\",displayStepper:true},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:DEFAULT_ANIMATION.transition}},defaultValue:DEFAULT_ANIMATION},transform:{type:ControlType.Enum,title:\"Transform\",options:[\"none\",\"capitalize\",\"lowercase\",\"uppercase\"],optionTitles:[\"None\",\"Capitalize\",\"Lowercase\",\"Uppercase\"],defaultValue:\"none\"},wrap:{type:ControlType.Enum,title:\"Wrap\",options:[\"auto\",\"balance\",\"pretty\"],optionTitles:[\"Auto\",\"Balance\",\"Pretty\"],defaultValue:\"auto\"},truncate:{type:ControlType.Boolean,title:\"Truncate\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false},lines:{type:ControlType.Number,title:\"Lines\",defaultValue:2,min:1,step:1,unit:\"L\",displayStepper:true,hidden:props=>!props.truncate},userSelect:{type:ControlType.Boolean,title:\"User select\",enabledTitle:\"Auto\",disabledTitle:\"None\",defaultValue:true},tag:{type:ControlType.Enum,title:\"Tag\",options:[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"p\",\"span\",\"div\",\"label\",\"blockquote\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\",\"P\",\"Span\",\"Div\",\"Label\",\"Blockquote\"],defaultValue:\"p\",description:\"More components at [Framer University](https://frameruni.link/cc).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrambleAppear\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 245\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"67\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrambleAppear_Prod.map"],"mappings":"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"}