{"version":3,"file":"shared-lib.CpDUnjOB.mjs","names":["useRef","useState","useMemo","text","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","SVG"],"sources":["https:/framerusercontent.com/modules/x9N74fQKlr6QLCpcJIqg/ItbrXvATfgkGTI2S7SIM/ScrambleAppear_Prod.js","https:/framerusercontent.com/modules/IeWJeXtBcaKHxzQUTmcI/FV3cKK9t6XNWL5cEXTFI/oXLodmb2X.js","https:/framerusercontent.com/modules/dyclZksf0tS9cyJYIBTR/d5gNbON0XkATCkgm8BDl/siteMetadata.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 (63ecd5c)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"Nwg5Bziy3\",\"ypPMaD4Qu\"];const serializationHash=\"framer-18iGs\";const variantClassNames={Nwg5Bziy3:\"framer-v-1qb037\",ypPMaD4Qu:\"framer-v-1dwqkds\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,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={Big:\"Nwg5Bziy3\",Small:\"ypPMaD4Qu\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"Nwg5Bziy3\"};};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,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"Nwg5Bziy3\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);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__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1qb037\",className,classNames),\"data-framer-name\":\"Big\",layoutDependency:layoutDependency,layoutId:\"Nwg5Bziy3\",ref:refBinding,style:{...style},...addPropertyOverrides({ypPMaD4Qu:{\"data-framer-name\":\"Small\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-9xleuf\",\"data-framer-name\":\"Top right\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:20,intrinsicWidth:20,layoutDependency:layoutDependency,layoutId:\"wrJungTgK\",svg:'<svg width=\"20\" height=\"20\" viewBox=\"-1 -1 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M0 0H18V18\" stroke=\"#646464\" stroke-width=\"2\"/>\\n</svg>\\n',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1y4wsz2\",\"data-framer-name\":\"Top left\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:20,intrinsicWidth:20,layoutDependency:layoutDependency,layoutId:\"FaXdLGKcR\",svg:'<svg width=\"20\" height=\"20\" viewBox=\"-1 -1 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M18 0H0V18\" stroke=\"#646464\" stroke-width=\"2\"/>\\n</svg>\\n',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1pm3nbv\",\"data-framer-name\":\"Bot left\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:20,intrinsicWidth:20,layoutDependency:layoutDependency,layoutId:\"XAKWVycYr\",svg:'<svg width=\"20\" height=\"20\" viewBox=\"-1 -1 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M18 18H0V0\" stroke=\"#646464\" stroke-width=\"2\"/>\\n</svg>\\n',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-at4ydx\",\"data-framer-name\":\"Bot right\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:20,intrinsicWidth:20,layoutDependency:layoutDependency,layoutId:\"U_9BW3sKM\",svg:'<svg width=\"20\" height=\"20\" viewBox=\"-1 -1 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M0 18H18V0\" stroke=\"#646464\" stroke-width=\"2\"/>\\n</svg>\\n',withExternalLayout:true})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-18iGs.framer-p0oxmy, .framer-18iGs .framer-p0oxmy { display: block; }\",\".framer-18iGs.framer-1qb037 { height: 203px; overflow: hidden; position: relative; width: 600px; }\",\".framer-18iGs .framer-9xleuf { flex: none; height: 20px; position: absolute; right: 0px; top: 0px; width: 20px; z-index: 1; }\",\".framer-18iGs .framer-1y4wsz2 { flex: none; height: 20px; left: 0px; position: absolute; top: 0px; width: 20px; z-index: 1; }\",\".framer-18iGs .framer-1pm3nbv { bottom: 0px; flex: none; height: 20px; left: 0px; position: absolute; width: 20px; z-index: 1; }\",\".framer-18iGs .framer-at4ydx { bottom: 0px; flex: none; height: 20px; position: absolute; right: 0px; width: 20px; z-index: 1; }\",\".framer-18iGs.framer-v-1dwqkds .framer-9xleuf, .framer-18iGs.framer-v-1dwqkds .framer-1y4wsz2, .framer-18iGs.framer-v-1dwqkds .framer-1pm3nbv, .framer-18iGs.framer-v-1dwqkds .framer-at4ydx { height: 10px; width: 10px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 203\n * @framerIntrinsicWidth 600\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"ypPMaD4Qu\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FrameroXLodmb2X=withCSS(Component,css,\"framer-18iGs\");export default FrameroXLodmb2X;FrameroXLodmb2X.displayName=\"Border\";FrameroXLodmb2X.defaultProps={height:203,width:600};addPropertyControls(FrameroXLodmb2X,{variant:{options:[\"Nwg5Bziy3\",\"ypPMaD4Qu\"],optionTitles:[\"Big\",\"Small\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FrameroXLodmb2X,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FrameroXLodmb2X\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"ypPMaD4Qu\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"203\",\"framerIntrinsicWidth\":\"600\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./oXLodmb2X.map","// Generated by Framer (e85a4e6)\nexport default function metadata(params,activeLocale){return{description:\"Void is a minimalist dark narrow Framer Template suitable for developers and designers.\",favicon:\"https://framerusercontent.com/assets/3doxgUxLPk6SAzMaBSWzOWu0cQ.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/RQDxxQv4VTNE4lPLTYxTPX49qKo.jpg\",title:\"Void - Portfolio Framer Template\"};}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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"}