{"version":3,"file":"AnimatedCodeBlock_1.DXPEBXLD.mjs","names":["useRef","useState","useMemo","text","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","RichText","useMemo","useRef","useState","p"],"sources":["https:/framerusercontent.com/modules/x9N74fQKlr6QLCpcJIqg/ItbrXvATfgkGTI2S7SIM/ScrambleAppear_Prod.js","https:/framerusercontent.com/modules/m7MEfG0zVefoMyLFoKZz/Q4We3QyxQTmkRea8ha01/keIizDW4W.js","https:/framerusercontent.com/modules/peWCJdcsDY73xSiuWh1V/dqKM1hFH4s2qU7LfKwVr/AnimatedCodeBlock_1.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useState,useRef,useMemo}from\"react\";import{useInView,animate}from\"framer-motion\";const HIDDEN=0;const SCRAMBLED=1;const REVEALED=2;/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n */export default function ScrambleAppear(props){var _props_style;const{from,scrambledLetters,text,scrambledColor,animation,speed}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const Tag=props.tag;const ref=useRef(null);const encryptedText=useRef(randomString(props));const[progress,setProgress]=useState(0);const[currentAnimation,setCurrentAnimation]=useState(null);const intervalRef=useRef(null);const isInView=useInView(ref,{once:!props.animation.replay,amount:\"some\"});const characterDelay=mapRange(speed,1,100,.2,.002)// seconds per character\n;const shuffledIndices=useMemo(()=>{if(from===\"random\"){const indices=Array.from({length:text.length},(_,i)=>i);return indices.sort(()=>Math.random()-.5);}return[];},[text,from]);const runAnimation=()=>{if(!isCanvas){if(currentAnimation){currentAnimation.stop();}if(intervalRef.current){clearInterval(intervalRef.current);}// Add timeout for delay\nsetTimeout(()=>{intervalRef.current=setInterval(()=>{encryptedText.current=randomString(props);},characterDelay*1e3);setCurrentAnimation(animate(0,1,{type:\"ease\",ease:\"linear\",duration:characterDelay*(text.length+scrambledLetters),onUpdate:setProgress,onComplete:()=>{if(intervalRef.current){clearInterval(intervalRef.current);}}}));},animation.delay*1e3);}};useEffect(()=>{if(animation.trigger==\"appear\"){runAnimation();}return()=>{if(intervalRef.current){clearInterval(intervalRef.current);}};},[]);useEffect(()=>{if(animation.trigger==\"layerInView\"){if(isInView){runAnimation();}else{if(currentAnimation){currentAnimation.stop();setProgress(0);if(intervalRef.current){clearInterval(intervalRef.current);}}}}},[isInView]);let segments=[];switch(from){case\"left\":{const leftCutoff=mapRange(progress,0,1,-scrambledLetters,text.length);const rightCutoff=mapRange(progress,0,1,0,text.length+scrambledLetters);segments.push([text.substring(0,clamp(leftCutoff,0,text.length)),REVEALED],[encryptedText.current.substring(clamp(leftCutoff,0,text.length),clamp(rightCutoff,0,text.length)),SCRAMBLED],[text.substring(clamp(rightCutoff,0,text.length)),HIDDEN]);break;}case\"center\":{const center=Math.ceil(text.length/2);const letters=Math.max(Math.floor(scrambledLetters/2),1);const leftCutoff=mapRange(progress,0,1,center,-letters);const rightCutoff=mapRange(progress,0,1,center+letters,0);segments.push([text.substring(0,clamp(leftCutoff,0,text.length)),HIDDEN],[encryptedText.current.substring(clamp(leftCutoff,0,center),clamp(rightCutoff,0,center)),SCRAMBLED],[text.substring(clamp(rightCutoff,0,center),clamp(text.length-rightCutoff,center,text.length)),REVEALED],[encryptedText.current.substring(clamp(text.length-leftCutoff,center,text.length),clamp(text.length-rightCutoff,center,text.length)),SCRAMBLED],[text.substring(clamp(text.length-leftCutoff,0,text.length),text.length),HIDDEN]);break;}case\"right\":{const leftCutoff=mapRange(progress,0,1,text.length,-scrambledLetters);const rightCutoff=mapRange(progress,0,1,text.length+scrambledLetters,0);segments.push([text.substring(0,clamp(leftCutoff,0,text.length)),HIDDEN],[encryptedText.current.substring(clamp(leftCutoff,0,text.length),clamp(rightCutoff,0,text.length)),SCRAMBLED],[text.substring(clamp(rightCutoff,0,text.length),text.length),REVEALED]);break;}case\"random\":{// Show all hidden characters if progress is 0 (during delay)\nif(progress===0){segments.push([text,HIDDEN]);}else if(progress>=1){segments.push([text,REVEALED]);}else{// Calculate two thresholds for each character based on its position in shuffledIndices\nfor(let i=0;i<text.length;i++){const indexInSequence=shuffledIndices.indexOf(i);// Adjust the windows to maintain consistent number of scrambled letters\nconst scrambleWindow=scrambledLetters/text.length// Size of the \"window\" of scrambled letters\n;const startScrambleAt=indexInSequence/text.length*(1-scrambleWindow)// When this character starts scrambling\n;const startRevealAt=startScrambleAt+scrambleWindow// When this character starts revealing\n;if(progress>=startRevealAt){// Past reveal threshold - show actual character\nsegments.push([text[i],REVEALED]);}else if(progress>=startScrambleAt){// Between scramble and reveal threshold - show scrambled\nsegments.push([encryptedText.current[i],SCRAMBLED]);}else{// Before scramble threshold - show hidden\nsegments.push([text[i],HIDDEN]);}}}break;}}return /*#__PURE__*/_jsx(Tag,{ref:ref,style:{color:props.color,userSelect:\"none\",pointerEvents:\"none\",margin:0,whiteSpace:((_props_style=props.style)===null||_props_style===void 0?void 0:_props_style.width)?undefined:\"nowrap\",...props.font,...props.style},children:isCanvas?text:consolidateSegments(segments).map(([text,state],index)=>{switch(state){case HIDDEN:return /*#__PURE__*/_jsx(\"span\",{style:{opacity:0},children:text},index);case SCRAMBLED:return scrambledColor?/*#__PURE__*/_jsx(\"span\",{style:{color:scrambledColor},children:text},index):text;case REVEALED:return text;}})});}ScrambleAppear.displayName=\"Scramble Appear\";addPropertyControls(ScrambleAppear,{text:{type:ControlType.String,defaultValue:\"Learn Framer With Framer University\",displayTextArea:true},characters:{type:ControlType.String,defaultValue:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+[]{}|;:,.<>?~\",displayTextArea:true},from:{type:ControlType.Enum,defaultValue:\"left\",options:[\"left\",\"center\",\"right\",\"random\"],optionTitles:[\"Left\",\"Center\",\"Right\",\"Random\"]},font:{type:\"font\",controls:\"extended\",defaultFontType:\"monospace\",defaultValue:{fontSize:24,lineHeight:1.4}},color:{type:ControlType.Color,defaultValue:\"#000\"},scrambledColor:{type:ControlType.Color,optional:true,title:\"Scrambled\"},speed:{type:ControlType.Number,defaultValue:75,min:1,max:100,step:1,unit:\"%\"},scrambledLetters:{type:ControlType.Number,defaultValue:10,min:1,step:1,displayStepper:true,title:\"Letters\"},animation:{type:ControlType.Object,icon:\"effect\",controls:{trigger:{type:ControlType.Enum,defaultValue:\"layerInView\",options:[\"appear\",\"layerInView\"],optionTitles:[\"Appear\",\"Layer in View\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},replay:{type:ControlType.Boolean,defaultValue:true,hidden:props=>props.trigger!==\"layerInView\"},delay:{type:ControlType.Number,defaultValue:0,min:0,step:.01}}},options:{type:ControlType.Object,buttonTitle:\"Options\",controls:{matchCase:{type:ControlType.Boolean,defaultValue:true},keepSpaces:{type:ControlType.Boolean,defaultValue:false,title:\"Spaces\",enabledTitle:\"Keep\",disabledTitle:\"Replace\",description:\"\"}}},userSelect:{type:ControlType.Boolean,defaultValue:true},tag:{type:ControlType.Enum,title:\"Tag\",defaultValue:\"p\",displaySegmentedControl:true,options:[\"h1\",\"h2\",\"h3\",\"p\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"P\"],description:\"More components at [Framer University](https://frameruni.link/cc).\"}});const randomString=props=>{const length=props.text.length;const characters=props.characters;const originalText=props.text;const matchCase=props.options.matchCase;const keepSpaces=props.options.keepSpaces;if(length<=0){return\"\";}let result=\"\";let lastChar=\"\";for(let i=0;i<length;i++){const originalChar=originalText[i];// Preserve spaces and tabs if keepSpaces is true\nif(keepSpaces&&(originalChar===\" \"||originalChar===\"\t\")){result+=originalChar;continue;}let newChar;do{newChar=characters[Math.floor(Math.random()*characters.length)];// Match case if matchCase is true\nif(matchCase&&originalChar){newChar=originalChar===originalChar.toUpperCase()?newChar.toUpperCase():newChar.toLowerCase();}}while(newChar===lastChar&&characters.length>=8)result+=newChar;lastChar=newChar;}return result;};function mapRange(value,fromLow,fromHigh,toLow,toHigh){if(fromLow===fromHigh){return toLow;}const percentage=(value-fromLow)/(fromHigh-fromLow);return toLow+percentage*(toHigh-toLow);}function clamp(value,min,max){return Math.max(min,Math.min(value,max));}function consolidateSegments(segments){return segments.filter(([text])=>text.length>0).reduce((acc,curr)=>{// If array is empty or last segment has different state, add new segment\nif(acc.length===0||acc[acc.length-1][1]!==curr[1]){acc.push(curr);}else{// Combine text with the last segment that has the same state\nacc[acc.length-1][0]+=curr[0];}return acc;},[]);}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrambleAppear\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"400\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrambleAppear_Prod.map","// Generated by Framer (8e1ebfe)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useOnVariantChange,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"GXNHwJ1La\",\"tMDXcSqOV\"];const serializationHash=\"framer-2Pboe\";const variantClassNames={GXNHwJ1La:\"framer-v-1wteo5v\",tMDXcSqOV:\"framer-v-7zjdv7\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const k6CyseD8_=undefined;const transition1={bounce:.2,delay:0,duration:2.5,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Variant 1\":\"GXNHwJ1La\",\"Variant 2\":\"tMDXcSqOV\"};const getProps=({fontSize,height,id,width,...props})=>{return{...props,k6CyseD8_:fontSize??props.k6CyseD8_??72,variant:humanReadableVariantMap[props.variant]??props.variant??\"GXNHwJ1La\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,k6CyseD8_,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"GXNHwJ1La\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onAppearduqpbu=activeVariantCallback(async(...args)=>{setVariant(\"tMDXcSqOV\",true);});useOnVariantChange(baseVariant,{default:onAppearduqpbu});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1wteo5v\",className,classNames),\"data-framer-name\":\"Variant 1\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"GXNHwJ1La\",ref:refBinding,style:{...style},...addPropertyOverrides({tMDXcSqOV:{\"data-framer-name\":\"Variant 2\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7TW9uYSBTYW5zLXZhcmlhYmxlLXJlZ3VsYXJWRj1JbmRrZEdnaUlERXdNQ3dnSW5kbmFIUWlJRFUxTUE9PQ==\",\"--framer-font-family\":'\"Mona Sans Variable\", \"Mona Sans Variable Placeholder\", sans-serif',\"--framer-font-size\":\"calc(var(--variable-reference-k6CyseD8_-keIizDW4W) * 1px)\",\"--framer-font-variation-axes\":'var(--extracted-2gg91v, \"wdth\" 100, \"wght\" 550)',\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"100%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Notifications are your voice.\"}),/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7TW9uYSBTYW5zLXZhcmlhYmxlLXJlZ3VsYXJWRj1JbmRrZEdnaUlERXdNQ3dnSW5kbmFIUWlJRFUxTUE9PQ==\",\"--framer-font-family\":'\"Mona Sans Variable\", \"Mona Sans Variable Placeholder\", sans-serif',\"--framer-font-size\":\"calc(var(--variable-reference-k6CyseD8_-keIizDW4W) * 1px)\",\"--framer-font-variation-axes\":'var(--extracted-1qhja7k, \"wdth\" 100, \"wght\" 550)',\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"100%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-2gxw0f, rgb(255, 255, 255))\"},children:\"Now make it count.\"})]}),className:\"framer-1holz0z\",\"data-framer-name\":\"Deliver software smarter, faster & easier\",fonts:[\"GF;Mona Sans-variable-regular\"],layoutDependency:layoutDependency,layoutId:\"qm7IBkK2P\",style:{\"--extracted-1qhja7k\":'\"wdth\" 100, \"wght\" 550',\"--extracted-2gg91v\":'\"wdth\" 100, \"wght\" 550',\"--extracted-2gxw0f\":\"rgb(255, 255, 255)\",\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-paragraph-spacing\":\"0px\",\"--variable-reference-k6CyseD8_-keIizDW4W\":k6CyseD8_,filter:\"blur(13px)\",opacity:.1,WebkitFilter:\"blur(13px)\"},variants:{tMDXcSqOV:{filter:\"none\",opacity:1,WebkitFilter:\"none\"}},verticalAlignment:\"top\",withExternalLayout:true})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-2Pboe.framer-1thtig6, .framer-2Pboe .framer-1thtig6 { display: block; }\",\".framer-2Pboe.framer-1wteo5v { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1542px; }\",\".framer-2Pboe .framer-1holz0z { flex: 1 0 0px; height: auto; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 144\n * @framerIntrinsicWidth 1542\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"tMDXcSqOV\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"k6CyseD8_\":\"fontSize\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerkeIizDW4W=withCSS(Component,css,\"framer-2Pboe\");export default FramerkeIizDW4W;FramerkeIizDW4W.displayName=\"Blur heading - Home\";FramerkeIizDW4W.defaultProps={height:144,width:1542};addPropertyControls(FramerkeIizDW4W,{variant:{options:[\"GXNHwJ1La\",\"tMDXcSqOV\"],optionTitles:[\"Variant 1\",\"Variant 2\"],title:\"Variant\",type:ControlType.Enum},k6CyseD8_:{defaultValue:72,title:\"Font Size\",type:ControlType.Number}});const variationAxes=[{defaultValue:100,maxValue:125,minValue:75,name:\"Width\",tag:\"wdth\"},{defaultValue:200,maxValue:900,minValue:200,name:\"Weight\",tag:\"wght\"}];addFonts(FramerkeIizDW4W,[{explicitInter:true,fonts:[{cssFamilyName:\"Mona Sans Variable\",source:\"google\",style:\"normal\",uiFamilyName:\"Mona Sans\",url:\"https://fonts.gstatic.com/s/monasans/v4/o-0IIpQmx24alC5A4PNb5z5Ba_2c7A.woff2\",variationAxes,weight:\"400\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerkeIizDW4W\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"144\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"k6CyseD8_\\\":\\\"fontSize\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"tMDXcSqOV\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"1542\",\"framerDisplayContentsDiv\":\"false\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./keIizDW4W.map","// AnimatedCodeBlock — wrapped-lines aware + custom theme + loop toggle\n// - Lines wrap (no horizontal scrollbar). \"Lines Shown\" counts *visual rows*.\n// - Sliding window uses measured row-heights (hidden measurer + ResizeObserver).\n// - Optional custom theme: background, border, text.\n// - New: `loop` toggle; when off, plays once and stops at the end (no reset).\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useMemo,useRef}from\"react\";import{motion,useInView}from\"framer-motion\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// ---- mini highlighter -------------------------------------------------------\nconst syntaxHighlight=(code,language,theme,customTextColor,customLabelColor)=>{const colors=theme===\"dark\"?{keyword:\"#BC8DF3\",string:\"#94e9a1\",comment:\"#6A9955\",function:\"#94E9A1\",number:\"#94E9A1\",operator:\"#FF9E51\",default:\"#ffffff\",label:\"#FF9E51\"}:theme===\"light\"?{keyword:\"#0000FF\",string:\"#A31515\",comment:\"#008000\",function:\"#795E26\",number:\"#098658\",operator:\"#000000\",default:\"#000000\",label:\"#000000\"}:{keyword:customTextColor||\"#000000\",string:customTextColor||\"#000000\",comment:customTextColor||\"#000000\",function:customTextColor||\"#000000\",number:customTextColor||\"#000000\",operator:customTextColor||\"#000000\",default:customTextColor||\"#000000\",label:customLabelColor||customTextColor||\"#000000\"};const keywords={javascript:[\"import\",\"export\",\"function\",\"const\",\"let\",\"var\",\"return\",\"if\",\"else\",\"for\",\"while\",\"class\",\"extends\",\"async\",\"await\"],jsx:[\"import\",\"export\",\"function\",\"const\",\"let\",\"var\",\"return\",\"if\",\"else\",\"for\",\"while\",\"class\",\"extends\",\"async\",\"await\"],typescript:[\"import\",\"export\",\"function\",\"const\",\"let\",\"var\",\"return\",\"if\",\"else\",\"for\",\"while\",\"class\",\"extends\",\"interface\",\"type\",\"async\",\"await\"],python:[\"def\",\"class\",\"import\",\"from\",\"return\",\"if\",\"else\",\"elif\",\"for\",\"while\",\"try\",\"except\",\"with\",\"as\"],java:[\"public\",\"private\",\"protected\",\"class\",\"interface\",\"extends\",\"implements\",\"return\",\"if\",\"else\",\"for\",\"while\",\"try\",\"catch\"],css:[\"color\",\"background\",\"margin\",\"padding\",\"border\",\"font\",\"display\",\"position\",\"width\",\"height\"]};const escapeHtml=s=>s.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");const langKeywords=keywords[language.toLowerCase()]||keywords.javascript;const tokens=[];let remaining=code;let pos=0;while(pos<code.length){let matched=false;// Try to match comment\nconst commentMatch=remaining.match(/^(\\/\\/.*$|\\/\\*[\\s\\S]*?\\*\\/)/);if(commentMatch){tokens.push({type:\"comment\",value:commentMatch[0]});pos+=commentMatch[0].length;remaining=code.slice(pos);matched=true;continue;}// Try to match string\nconst stringMatch=remaining.match(/^((?:\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")|(?:'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|(?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`))/);if(stringMatch){tokens.push({type:\"string\",value:stringMatch[0]});pos+=stringMatch[0].length;remaining=code.slice(pos);matched=true;continue;}// Try to match number\nconst numberMatch=remaining.match(/^\\d+\\.?\\d*/);if(numberMatch){tokens.push({type:\"number\",value:numberMatch[0]});pos+=numberMatch[0].length;remaining=code.slice(pos);matched=true;continue;}// Try to match label (property name followed by colon)\nconst labelMatch=remaining.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\\s*:/);if(labelMatch){tokens.push({type:\"label\",value:labelMatch[1]});tokens.push({type:\"text\",value:labelMatch[0].slice(labelMatch[1].length)});pos+=labelMatch[0].length;remaining=code.slice(pos);matched=true;continue;}// Try to match keyword\nlet keywordMatched=false;for(const kw of langKeywords){const kwRegex=new RegExp(`^${kw}\\\\b`);if(kwRegex.test(remaining)){tokens.push({type:\"keyword\",value:kw});pos+=kw.length;remaining=code.slice(pos);keywordMatched=true;matched=true;break;}}if(keywordMatched)continue;// No special token matched, take one character as text\ntokens.push({type:\"text\",value:code[pos]});pos++;remaining=code.slice(pos);}// Convert tokens to HTML\nlet result=\"\";for(const token of tokens){const escaped=escapeHtml(token.value);switch(token.type){case\"keyword\":result+=`<span style=\"color:${colors.keyword}\">${escaped}</span>`;break;case\"string\":result+=`<span style=\"color:${colors.string}\">${escaped}</span>`;break;case\"comment\":result+=`<span style=\"color:${colors.comment}\">${escaped}</span>`;break;case\"number\":result+=`<span style=\"color:${colors.number}\">${escaped}</span>`;break;case\"label\":result+=`<span style=\"color:${colors.label}\">${escaped}</span>`;break;default:result+=escaped;}}return result;};/**\n * Enhanced animated code block (visual-row aware with wrapping)\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n */export default function AnimatedCodeBlock(props){const{code=`import { motion } from \"framer-motion\";\n\nfunction Component() {\n  return (\n    <motion.div\n      transition={{ ease: \"linear\" }}\n      animate={{ rotate: 360, scale: 2 }}\n    />\n  );\n}\n\n// This component creates a sleek writing effect\n// Text flows from top to bottom smoothly\n// As new text appears at the bottom\n// Older text gradually fades away from the top\n// Creating a continuous scrolling effect\n// Perfect for displaying long content\n// Like JSON, code, or extensive text blocks\n// Features typewriter effect with character animation\n// Automatic line management with fade transitions`,language=\"jsx\",theme=\"dark\",showLineNumbers=true,characterDelay=30,font,padding=\"20px\",radius=\"8px\",animationType=\"typewriter\",linesShown=10,loop=true,customBackgroundColor=\"#1E1E1E\",customBorderColor=\"#333333\",customTextColor=\"#D4D4D4\"}=props;const isStatic=useIsStaticRenderer();// Split code preserving blank lines\nconst allLines=useMemo(()=>code.split(\"\\n\"),[code]);// Typography\nconst baseLineHeight=parseFloat(font?.lineHeight)||1.4;const fontSize=parseFloat(font?.fontSize)||14;const fixedLineHeight=Math.max(fontSize*baseLineHeight,20);const lineHeightPx=fixedLineHeight+\"px\";// Refs + measurement\nconst containerRef=useRef(null);const measurerRef=useRef(null);const[containerWidth,setContainerWidth]=useState(0);// Detect when component is in view\nconst isInView=useInView(containerRef,{once:true,amount:.3});useEffect(()=>{if(!containerRef.current)return;const ro=new window.ResizeObserver(entries=>{for(const e of entries)setContainerWidth(e.contentRect.width);});ro.observe(containerRef.current);setContainerWidth(containerRef.current.clientWidth);return()=>ro.disconnect();},[]);// How many visual rows does `text` occupy?\nconst measureRows=text=>{const measurer=measurerRef.current;if(!measurer)return 1;measurer.textContent=text.length?text:\" \";const h=measurer.scrollHeight;return Math.max(1,Math.round(h/fixedLineHeight));};// Pre-compute rows for complete lines\nconst rowsPerLine=useMemo(()=>{if(!containerWidth)return allLines.map(()=>1);return allLines.map(ln=>measureRows(ln));// eslint-disable-next-line react-hooks/exhaustive-deps\n},[allLines,containerWidth,fixedLineHeight,showLineNumbers]);// Animation state\nconst[currentLineIndex,setCurrentLineIndex]=useState(0);const[currentCharIndex,setCurrentCharIndex]=useState(0);const[loopCount,setLoopCount]=useState(0);useEffect(()=>{if(!isStatic){setCurrentLineIndex(0);setCurrentCharIndex(0);setLoopCount(0);}},[code,linesShown,isStatic]);// Start animation when in view\nuseEffect(()=>{if(isInView&&!isStatic){setCurrentLineIndex(0);setCurrentCharIndex(0);setLoopCount(0);}},[isInView,isStatic]);const currentLine=currentLineIndex<allLines.length?allLines[currentLineIndex]:\"\";const partialLine=currentLine.length>0?currentLine.slice(0,currentCharIndex):\"\";// Compute visible window using visual rows\nconst visible=useMemo(()=>{const out=[];let totalRows=0;// Start from line 0 and build downward\nfor(let abs=0;abs<=currentLineIndex&&totalRows<linesShown;abs++){if(abs<currentLineIndex){const text=allLines[abs]??\"\";const r=rowsPerLine[abs]||1;out.push({absIndex:abs,text});totalRows+=r;}else{// Current line being typed\nconst text=partialLine||\"\";const r=Math.max(1,measureRows(text));out.push({absIndex:abs,text,isPartial:true});totalRows+=r;}}return out;},[allLines,rowsPerLine,partialLine,currentLineIndex,linesShown,containerWidth,fixedLineHeight]);// Animation loop — plays through ALL lines, reset only if loop=true\nuseEffect(()=>{if(isStatic||!isInView)return;const atEnd=currentLineIndex>=allLines.length;if(atEnd){if(!loop)return;// stop here when not looping\nconst t=setTimeout(()=>{setCurrentLineIndex(0);setCurrentCharIndex(0);setLoopCount(p=>p+1);},1e3);return()=>clearTimeout(t);}const id=setInterval(()=>{if(currentLine.length===0){if(currentCharIndex===0)setCurrentCharIndex(1);else{setCurrentLineIndex(p=>p+1);setCurrentCharIndex(0);}return;}if(currentCharIndex>=currentLine.length){setCurrentLineIndex(p=>p+1);setCurrentCharIndex(0);}else{setCurrentCharIndex(p=>p+1);}},characterDelay);return()=>clearInterval(id);},[currentLineIndex,currentCharIndex,currentLine,characterDelay,isStatic,allLines.length,linesShown,loop,isInView]);const isTyping=currentLineIndex<allLines.length&&currentCharIndex>0;// Theme\nconst themeColors={dark:{background:\"linear-gradient(to bottom, #050505, #0d0d0d)\",text:\"#ffffff\",lineNumber:\"#858585\",border:\"#333333\",label:\"#FF9E51\"},light:{background:\"linear-gradient(to bottom, #050505, #0d0d0d)\",text:\"#000000\",lineNumber:\"#999999\",border:\"#E1E1E1\"},custom:{background:customBackgroundColor,text:customTextColor,lineNumber:customTextColor,border:customBorderColor}};const currentTheme=themeColors[theme];const normalizedLanguage=(language||\"javascript\").toLowerCase();// ---- Static mode ----------------------------------------------------------\nif(isStatic){let shown=[];let used=0;for(let i=0;i<allLines.length&&used<linesShown;i++){const r=rowsPerLine[i]||1;shown.push(allLines[i]);used+=r;}return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{...props.style,backgroundColor:currentTheme.background,color:currentTheme.text,border:\"none\",borderRadius:radius,padding:padding,overflow:\"hidden\",position:\"relative\",height:\"100%\",boxSizing:\"border-box\",fontFamily:font?.fontFamily||\"Monaco, Menlo, 'Ubuntu Mono', monospace\",fontSize:font?.fontSize||\"14px\"},children:[/*#__PURE__*/_jsx(\"div\",{ref:measurerRef,style:{position:\"absolute\",visibility:\"hidden\",pointerEvents:\"none\",whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",overflowWrap:\"anywhere\",left:0,top:0,right:0,fontFamily:font?.fontFamily||\"Monaco, Menlo, 'Ubuntu Mono', monospace\",fontSize:font?.fontSize||\"14px\",lineHeight:lineHeightPx,padding:0,margin:0}}),/*#__PURE__*/_jsx(\"div\",{style:{height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"flex-start\",overflowX:\"hidden\"},children:shown.map((line,i)=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"flex-start\",minHeight:lineHeightPx,lineHeight:lineHeightPx},children:[showLineNumbers&&/*#__PURE__*/_jsx(\"span\",{style:{color:currentTheme.lineNumber,marginRight:\"16px\",minWidth:\"24px\",textAlign:\"right\",userSelect:\"none\",flexShrink:0},children:i+1}),/*#__PURE__*/_jsx(\"span\",{style:{whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",overflowWrap:\"anywhere\",flex:1},dangerouslySetInnerHTML:{__html:line.length?syntaxHighlight(line,normalizedLanguage,theme,customTextColor):\"&nbsp;\"}})]},\"static-\"+i))})]});}// ---- Animated mode --------------------------------------------------------\nreturn /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{...props.style,backgroundColor:currentTheme.background,color:currentTheme.text,border:\"none\",borderRadius:radius,padding:padding,overflow:\"hidden\",position:\"relative\",height:\"100%\",boxSizing:\"border-box\",fontFamily:font?.fontFamily||\"Monaco, Menlo, 'Ubuntu Mono', monospace\",fontSize:font?.fontSize||\"14px\"},children:[/*#__PURE__*/_jsx(\"div\",{ref:measurerRef,style:{position:\"absolute\",visibility:\"hidden\",pointerEvents:\"none\",whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",overflowWrap:\"anywhere\",left:0,top:0,right:0,fontFamily:font?.fontFamily||\"Monaco, Menlo, 'Ubuntu Mono', monospace\",fontSize:font?.fontSize||\"14px\",lineHeight:lineHeightPx,padding:0,margin:0}}),/*#__PURE__*/_jsx(\"div\",{style:{height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"flex-start\",overflowX:\"hidden\"},children:visible.map((row,i)=>{const isCurrentlyTyping=isTyping&&row.isPartial;const displayLineNumber=row.absIndex>=0?row.absIndex+1:\"\";const motionProps=animationType===\"typewriter\"?{animate:{opacity:1},transition:{opacity:{duration:.25,ease:\"easeInOut\"}}}:animationType===\"fade\"?{initial:{opacity:0},animate:{opacity:1},transition:{opacity:{duration:.4,ease:\"easeOut\"}}}:{initial:{x:-12,opacity:0},animate:{x:0,opacity:1},transition:{x:{duration:.25,ease:\"easeOut\"},opacity:{duration:.25,ease:\"easeInOut\"}}};return /*#__PURE__*/_jsxs(motion.div,{...motionProps,style:{display:\"flex\",alignItems:\"flex-start\",minHeight:lineHeightPx,lineHeight:lineHeightPx},children:[showLineNumbers&&/*#__PURE__*/_jsx(\"span\",{style:{color:currentTheme.lineNumber,marginRight:\"16px\",minWidth:\"24px\",textAlign:\"right\",userSelect:\"none\",flexShrink:0},children:displayLineNumber}),/*#__PURE__*/_jsxs(\"span\",{style:{whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",overflowWrap:\"anywhere\",flex:1,display:\"flex\",alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:row.text.length?syntaxHighlight(row.text,normalizedLanguage,theme,customTextColor):\"&nbsp;\"}}),isCurrentlyTyping&&/*#__PURE__*/_jsx(motion.span,{animate:{opacity:[1,0]},transition:{duration:.8,repeat:Infinity,repeatType:\"reverse\"},style:{display:\"inline-block\",width:\"2px\",height:\"1em\",backgroundColor:currentTheme.text,marginLeft:\"2px\"}})]})]},String(loopCount)+\"-\"+String(row.absIndex)+\"-\"+String(i));})})]});}addPropertyControls(AnimatedCodeBlock,{code:{type:ControlType.String,title:\"Code\",defaultValue:`import { motion } from \"framer-motion\";`,displayTextArea:true},language:{type:ControlType.Enum,title:\"Language\",options:[\"javascript\",\"jsx\",\"typescript\",\"python\",\"java\",\"css\",\"html\"],optionTitles:[\"JavaScript\",\"JSX\",\"TypeScript\",\"Python\",\"Java\",\"CSS\",\"HTML\"],defaultValue:\"jsx\"},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"dark\",\"light\",\"custom\"],optionTitles:[\"Dark\",\"Light\",\"Custom\"],defaultValue:\"dark\"},customBackgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#1E1E1E\",hidden:p=>p.theme!==\"custom\"},customBorderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#333333\",hidden:p=>p.theme!==\"custom\"},customTextColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#D4D4D4\",hidden:p=>p.theme!==\"custom\"},customLabelColor:{type:ControlType.Color,title:\"Label\",defaultValue:\"#ffffff\",hidden:p=>p.theme!==\"custom\"},showLineNumbers:{type:ControlType.Boolean,title:\"Line Numbers\",defaultValue:true},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"14px\",letterSpacing:\"0em\",lineHeight:\"1.4em\"},controls:\"extended\",defaultFontType:\"monospace\"},animationType:{type:ControlType.Enum,title:\"Animation\",options:[\"typewriter\",\"fade\",\"slide\"],optionTitles:[\"Typewriter\",\"Fade\",\"Slide\"],defaultValue:\"typewriter\"},characterDelay:{type:ControlType.Number,title:\"Speed\",defaultValue:30,min:10,max:200,step:10,unit:\"ms\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"20px\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"8px\"},linesShown:{type:ControlType.Number,title:\"Lines Shown\",defaultValue:10,min:1,max:100,step:1,displayStepper:true},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AnimatedCodeBlock\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AnimatedCodeBlock_1.map"],"mappings":"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"}