{"version":3,"file":"Examples.Cs8RN_ru.mjs","names":["React.forwardRef","useState","useRef","useState","useCallback"],"sources":["https:/framerusercontent.com/modules/BDrqY5oaq6eGY8tRR51g/0R8RBYzWyOChj3p2MvRl/ws3drt59K.js","https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/28rXvpPsrum7FH6cMELS/1jCAazZw1EGHjrG5Nu5D/Utils.js","https:/framer.com/m/framer/utils.js@^0.9.0","https:/framerusercontent.com/modules/cZQRzV7mxdGW6P1PShTI/kfeJpcOYFcNJS43xAa6g/Examples.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 16.561 6 C 14.561 -2 2.561 -2 0.561 6 C -1.439 14 2.061 20 8.561 20 C 15.061 20 18.561 12.4 12.561 10 C 6.561 7.6 3.561 12 5.561 14 C 7.561 16 12.561 15 12.561 10 C 12.561 5 7.561 4 5.561 6\" fill=\"transparent\" height=\"20px\" id=\"WhEyla0lJ\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--1df8v9o, rgb(0,0,0))\" transform=\"translate(3.439 2)\" width=\"16.561497509328397px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,n2nHSaXfp:stroke??props.n2nHSaXfp??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,n2nHSaXfp,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-QAZIz\",className),layoutId:layoutId,ref:ref,style:{\"--1df8v9o\":n2nHSaXfp,...style}});});const css=[`.framer-QAZIz { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--1df8v9o); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"n2nHSaXfp\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Threads\",\"color\":{\"type\":\"variable\",\"value\":\"1df8v9o\"},\"set\":{\"localId\":\"vectorSet/yXo17f3GZ\",\"id\":\"yXo17f3GZ\",\"moduleId\":\"eO37kitVCMcNEgHMGd3K\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-QAZIz\");Icon.displayName=\"Threads\";export default Icon;addPropertyControls(Icon,{n2nHSaXfp:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"Threads\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1df8v9o\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/yXo17f3GZ\\\",\\\"id\\\":\\\"yXo17f3GZ\\\",\\\"moduleId\\\":\\\"eO37kitVCMcNEgHMGd3K\\\"}}\",\"framerVariables\":\"{\\\"n2nHSaXfp\\\":\\\"stroke\\\"}\",\"framerDisableUnlink\":\"true\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","export const centerContent = {\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const autoSizingText = {\n    width: \"max-content\",\n    wordBreak: \"break-word\",\n    overflowWrap: \"break-word\",\n    overflow: \"hidden\",\n    whiteSpace: \"pre-wrap\",\n    flexShrink: 0\n};\nexport const defaultContainerStyles = {\n    ...centerContent,\n    overflow: \"hidden\"\n};\nexport const containerStyles = defaultContainerStyles;\nexport const randomColor = ()=>\"#\" + Math.floor(Math.random() * 16777215).toString(16)\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"centerContent\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"autoSizingText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultContainerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomColor\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./Utils.map","/*\n * Utils (framer/utils@0.9.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/28rXvpPsrum7FH6cMELS/1jCAazZw1EGHjrG5Nu5D/Utils.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,startTransition,useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{randomColor}from\"https://framer.com/m/framer/utils.js@^0.9.0\";// Learn more: https://www.framer.com/developers/overrides/\nconst animalIdentityKey=\"animalIdentity:v1\";let hasHandledReloadReset=false;function isPageRefresh(){if(typeof window===\"undefined\")return false;const navEntry=performance.getEntriesByType(\"navigation\")[0];return navEntry?.type===\"reload\";}function createAnimalIdentity(){const color=animalColors[Math.floor(Math.random()*animalColors.length)];const animal=animals[Math.floor(Math.random()*animals.length)];return{label:`${color.name} ${animal.name} ${animal.kaomoji}`.toUpperCase(),color:color.hex};}function getSessionAnimalIdentity(){if(typeof window===\"undefined\"){return createAnimalIdentity();}if(!hasHandledReloadReset){hasHandledReloadReset=true;if(isPageRefresh()){sessionStorage.removeItem(animalIdentityKey);}}const saved=sessionStorage.getItem(animalIdentityKey);if(saved){try{return JSON.parse(saved);}catch{sessionStorage.removeItem(animalIdentityKey);}}const identity=createAnimalIdentity();sessionStorage.setItem(animalIdentityKey,JSON.stringify(identity));return identity;}const useStore=createStore({background:\"#0099FF\",animalColor:\"\"});const useIsomorphicLayoutEffect=typeof window!==\"undefined\"?useLayoutEffect:useEffect;const animalColors=[{name:\"Amber\",hex:\"#E8965A\"},{name:\"Golden\",hex:\"#D4A857\"},{name:\"Lime\",hex:\"#8BBD5A\"},{name:\"Teal\",hex:\"#3D7A6E\"},{name:\"Mint\",hex:\"#6DB8A0\"},{name:\"Terra\",hex:\"#D45C3A\"},{name:\"Peach\",hex:\"#E8956A\"},{name:\"Sky\",hex:\"#7EC8CC\"},{name:\"Slate\",hex:\"#607B7D\"},{name:\"Sage\",hex:\"#7A9E7E\"},{name:\"Coral\",hex:\"#E55A2B\"},{name:\"Rose\",hex:\"#BF7B8A\"},{name:\"Steel\",hex:\"#4A7E8B\"},{name:\"Honey\",hex:\"#E9A85E\"},{name:\"Fern\",hex:\"#3A7D44\"},{name:\"Blue\",hex:\"#5B8DB8\"},{name:\"Plum\",hex:\"#3D3054\"}];const animals=[{name:\"Rabbit\",kaomoji:\"(\\\\_/)\"},{name:\"Turtle\",kaomoji:\"~(˘▾˘~)\"},{name:\"Bear\",kaomoji:\"ʕ •ᴥ•ʔ\"},{name:\"Fox\",kaomoji:\"(^ω^)\"},{name:\"Cat\",kaomoji:\"/ᐠ｡ꞈ｡ᐟ\\\\\\\\\"},{name:\"Hamster\",kaomoji:\"(ᵔᴥᵔ)\"},{name:\"Capybara\",kaomoji:\"(ᵔ‿ᵔ)\"},{name:\"Duck\",kaomoji:\"(≧◡≦)\"}];const typewriterFallbackSourceText=\"We were such a great team and I loved our collaboration throughout. \\n\\nBuilding working voice clone app and git push & pull for the entire 6 months was a real learning journey!\";export function withRotate(Component){return /*#__PURE__*/forwardRef((props,ref)=>{return /*#__PURE__*/_jsx(Component,{ref:ref,...props,animate:{rotate:90},transition:{duration:2}});});}export function withHover(Component){return /*#__PURE__*/forwardRef((props,ref)=>{return /*#__PURE__*/_jsx(Component,{ref:ref,...props,whileHover:{scale:1.05}});});}export function withRandomColor(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store,setStore]=useStore();return /*#__PURE__*/_jsx(Component,{ref:ref,...props,animate:{background:store.background},onClick:()=>{setStore({background:randomColor()});}});});}export function withRandomAnimalName(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[,setStore]=useStore();const localRef=useRef(null);const[content,setContent]=useState(null);useEffect(()=>{const identity=getSessionAnimalIdentity();startTransition(()=>{setContent(identity);});setStore({animalColor:identity.color});},[]);const chosenLabel=content?.label??props.text;const chosenColor=content?.color;const mergedRef=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&typeof ref===\"object\"){ref.current=node;}},[ref]);useEffect(()=>{if(!chosenColor)return;if(typeof window===\"undefined\")return;const root=localRef.current;if(!root)return;root.style.setProperty(\"color\",chosenColor,\"important\");const descendants=root.querySelectorAll(\"span, p, div, strong, em, a, li\");descendants.forEach(element=>{element.style.setProperty(\"color\",chosenColor,\"important\");});},[chosenColor]);return /*#__PURE__*/_jsx(Component,{ref:mergedRef,...props,text:chosenLabel,color:chosenColor??props.color,textColor:chosenColor??props.textColor,style:{...props.style,color:chosenColor??props.style?.color}});});}export function withSharedAnimalColor(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useStore();const localRef=useRef(null);const sharedColor=store.animalColor||undefined;const mergedRef=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&typeof ref===\"object\"){ref.current=node;}},[ref]);useEffect(()=>{if(!sharedColor)return;if(typeof window===\"undefined\")return;const root=localRef.current;if(!root)return;root.style.setProperty(\"color\",sharedColor,\"important\");const descendants=root.querySelectorAll(\"span, p, div, strong, em, a, li\");descendants.forEach(element=>{element.style.setProperty(\"color\",sharedColor,\"important\");});},[sharedColor]);return /*#__PURE__*/_jsx(Component,{ref:mergedRef,...props,color:sharedColor??props.color,textColor:sharedColor??props.textColor,style:{...props.style,color:sharedColor??props.style?.color}});});}export function withSharedAnimalColorOnHover(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useStore();const localRef=useRef(null);const[isActive,setIsActive]=useState(false);const sharedColor=store.animalColor||undefined;const previousColorStateRef=useRef(new Map);const mergedRef=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&typeof ref===\"object\"){ref.current=node;}},[ref]);useEffect(()=>{if(typeof window===\"undefined\")return;const root=localRef.current;if(!root)return;const elements=[root,...Array.from(root.querySelectorAll(\"span, p, div, strong, em, a, li\"))];if(isActive&&sharedColor){const previousMap=new Map;elements.forEach(element=>{previousMap.set(element,{value:element.style.getPropertyValue(\"color\"),priority:element.style.getPropertyPriority(\"color\")});element.style.setProperty(\"color\",sharedColor,\"important\");});previousColorStateRef.current=previousMap;return;}const previousMap=previousColorStateRef.current;previousMap.forEach((previous,element)=>{if(!element.isConnected)return;if(previous.value){element.style.setProperty(\"color\",previous.value,previous.priority);}else{element.style.removeProperty(\"color\");}});previousColorStateRef.current=new Map;},[isActive,sharedColor]);const handleMouseEnter=useCallback(event=>{startTransition(()=>{setIsActive(true);});if(typeof props.onMouseEnter===\"function\"){props.onMouseEnter(event);}},[props]);const handleMouseLeave=useCallback(event=>{startTransition(()=>{setIsActive(false);});if(typeof props.onMouseLeave===\"function\"){props.onMouseLeave(event);}},[props]);const handleFocus=useCallback(event=>{startTransition(()=>{setIsActive(true);});if(typeof props.onFocus===\"function\"){props.onFocus(event);}},[props]);const handleBlur=useCallback(event=>{startTransition(()=>{setIsActive(false);});if(typeof props.onBlur===\"function\"){props.onBlur(event);}},[props]);const activeColor=isActive?sharedColor:undefined;return /*#__PURE__*/_jsx(Component,{ref:mergedRef,...props,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,onFocus:handleFocus,onBlur:handleBlur,color:activeColor??props.color,textColor:activeColor??props.textColor,style:{...props.style,color:activeColor??props.style?.color}});});}export function withSharedAnimalColorForButtonHover(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=useStore();const localRef=useRef(null);const[isActive,setIsActive]=useState(false);const sharedColor=store.animalColor||undefined;const previousColorStateRef=useRef(new Map);const observerRef=useRef(null);const rafIdRef=useRef(null);const mergedRef=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&typeof ref===\"object\"){ref.current=node;}},[ref]);const evaluateActiveState=useCallback(root=>{let hovered=false;let focusedWithin=false;try{hovered=root.matches(\":hover\");}catch{hovered=false;}try{focusedWithin=root.matches(\":focus-within\");}catch{if(typeof document!==\"undefined\"){focusedWithin=root.contains(document.activeElement);}}return hovered||focusedWithin;},[]);const restoreAppliedColors=useCallback(()=>{const existingMap=previousColorStateRef.current;existingMap.forEach((previous,element)=>{if(!element.isConnected)return;if(previous.value){element.style.setProperty(\"color\",previous.value,previous.priority);}else{element.style.removeProperty(\"color\");}});previousColorStateRef.current=new Map;},[]);const applyColorToTargets=useCallback(()=>{if(typeof window===\"undefined\")return;const root=localRef.current;if(!root)return;if(!isActive||!sharedColor){restoreAppliedColors();return;}const targets=[root,...Array.from(root.querySelectorAll(\"span, p, div, strong, em, a, li\"))].filter(element=>{if(!element.isConnected)return false;if(element.getClientRects().length===0)return false;const computed=window.getComputedStyle(element);if(computed.display===\"none\")return false;if(computed.visibility===\"hidden\")return false;return true;});const existingMap=previousColorStateRef.current;targets.forEach(element=>{if(!existingMap.has(element)){existingMap.set(element,{value:element.style.getPropertyValue(\"color\"),priority:element.style.getPropertyPriority(\"color\")});}element.style.setProperty(\"color\",sharedColor,\"important\");});},[isActive,restoreAppliedColors,sharedColor]);const scheduleApplyColor=useCallback(()=>{applyColorToTargets();if(typeof window===\"undefined\")return;if(rafIdRef.current!==null){window.cancelAnimationFrame(rafIdRef.current);}rafIdRef.current=window.requestAnimationFrame(()=>{applyColorToTargets();rafIdRef.current=null;});},[applyColorToTargets]);useIsomorphicLayoutEffect(()=>{scheduleApplyColor();},[scheduleApplyColor]);useIsomorphicLayoutEffect(()=>{if(typeof window===\"undefined\")return;const root=localRef.current;if(!root)return;const syncFromNativeState=()=>{const nextActive=evaluateActiveState(root);startTransition(()=>{setIsActive(nextActive);});};const nativeEvents=[\"pointerenter\",\"pointerleave\",\"mouseenter\",\"mouseleave\",\"focusin\",\"focusout\"];nativeEvents.forEach(eventName=>{root.addEventListener(eventName,syncFromNativeState);});syncFromNativeState();return()=>{nativeEvents.forEach(eventName=>{root.removeEventListener(eventName,syncFromNativeState);});};},[evaluateActiveState]);useIsomorphicLayoutEffect(()=>{if(typeof window===\"undefined\")return;const root=localRef.current;if(!root)return;if(observerRef.current){observerRef.current.disconnect();observerRef.current=null;}if(!(isActive&&sharedColor))return;const observer=new MutationObserver(()=>{scheduleApplyColor();});observer.observe(root,{childList:true,subtree:true,attributes:true,characterData:true});observerRef.current=observer;return()=>{observer.disconnect();if(observerRef.current===observer){observerRef.current=null;}};},[isActive,scheduleApplyColor,sharedColor]);useEffect(()=>{return()=>{if(typeof window!==\"undefined\"&&rafIdRef.current!==null){window.cancelAnimationFrame(rafIdRef.current);rafIdRef.current=null;}if(observerRef.current){observerRef.current.disconnect();observerRef.current=null;}restoreAppliedColors();};},[restoreAppliedColors]);const handleMouseEnter=useCallback(event=>{startTransition(()=>{setIsActive(true);});if(typeof props.onMouseEnter===\"function\"){props.onMouseEnter(event);}},[props]);const handleMouseLeave=useCallback(event=>{startTransition(()=>{setIsActive(false);});if(typeof props.onMouseLeave===\"function\"){props.onMouseLeave(event);}},[props]);const handleFocus=useCallback(event=>{startTransition(()=>{setIsActive(true);});if(typeof props.onFocus===\"function\"){props.onFocus(event);}},[props]);const handleBlur=useCallback(event=>{startTransition(()=>{setIsActive(false);});if(typeof props.onBlur===\"function\"){props.onBlur(event);}},[props]);return /*#__PURE__*/_jsx(Component,{ref:mergedRef,...props,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,onFocus:handleFocus,onBlur:handleBlur});});}export function withPacificTime(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const formatPacificTime=useCallback(()=>{const formatter=new Intl.DateTimeFormat(\"en-US\",{timeZone:\"America/Los_Angeles\",hour:\"numeric\",minute:\"2-digit\",hour12:true});return`Local time ${formatter.format(new Date)}`;},[]);const[timeLabel,setTimeLabel]=useState(()=>formatPacificTime());useEffect(()=>{startTransition(()=>{setTimeLabel(formatPacificTime());});if(typeof window===\"undefined\")return;const intervalId=window.setInterval(()=>{startTransition(()=>{setTimeLabel(formatPacificTime());});},6e4);return()=>{window.clearInterval(intervalId);};},[formatPacificTime]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props,text:timeLabel});});}export function withTypewriterCursor(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const localRef=useRef(null);const[domSourceText,setDomSourceText]=useState(\"\");const sourceText=useMemo(()=>{const propSourceText=typeof props.text===\"string\"?props.text:\"\";if(propSourceText.trim().length>0)return propSourceText;const cleanedDomSource=domSourceText.replace(/\\|/g,\"\").trim();if(cleanedDomSource.length>0)return domSourceText;return typewriterFallbackSourceText;},[domSourceText,props.text]);const[hasEnteredView,setHasEnteredView]=useState(false);const[typedCount,setTypedCount]=useState(0);const[cursorVisible,setCursorVisible]=useState(true);const wordChunks=useMemo(()=>{return sourceText.match(/\\S+\\s*|\\s+/g)??[];},[sourceText]);const mergedViewport=useMemo(()=>({amount:.25,once:true,...props.viewport??{}}),[props.viewport]);const mergedRef=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&typeof ref===\"object\"){ref.current=node;}},[ref]);const handleViewportEnter=useCallback((...args)=>{if(!hasEnteredView){startTransition(()=>{setHasEnteredView(true);});}if(typeof props.onViewportEnter===\"function\"){props.onViewportEnter(...args);}},[hasEnteredView,props]);useEffect(()=>{if(hasEnteredView)return;const propSourceText=typeof props.text===\"string\"?props.text:\"\";if(propSourceText.trim().length>0)return;if(typeof window===\"undefined\")return;let disposed=false;let attempts=0;const readDomSource=()=>{if(disposed)return;const root=localRef.current;const rawText=root?.textContent?.replace(/\\u00A0/g,\" \")??\"\";const normalized=rawText.replace(/\\|/g,\"\").trim();if(normalized.length>0){startTransition(()=>{setDomSourceText(rawText);});return;}attempts+=1;if(attempts<20){window.setTimeout(readDomSource,100);}};window.setTimeout(readDomSource,0);return()=>{disposed=true;};},[hasEnteredView,props.text]);useEffect(()=>{startTransition(()=>{setHasEnteredView(false);setTypedCount(0);setCursorVisible(true);});},[sourceText]);useEffect(()=>{if(hasEnteredView)return;if(typeof window===\"undefined\")return;if(typeof IntersectionObserver===\"undefined\"){startTransition(()=>{setHasEnteredView(true);});return;}const root=localRef.current;if(!root)return;const findCursorTriggerTarget=()=>{const ancestorMatch=root.closest('#cursor, [data-framer-name=\"cursor\"]');if(ancestorMatch)return ancestorMatch;const idMatch=document.getElementById(\"cursor\");if(idMatch)return idMatch;const anchorMatch=document.querySelector('[name=\"cursor\"], a[href=\"#cursor\"]');if(anchorMatch)return anchorMatch;const framerContainer=Array.from(document.querySelectorAll(\"[data-framer-id]\")).find(container=>container.querySelector('#cursor, [name=\"cursor\"], [data-framer-name=\"cursor\"], a[href=\"#cursor\"]'));if(framerContainer)return framerContainer;const nearbyMatch=root.parentElement?.querySelector('#cursor, [name=\"cursor\"], [data-framer-name=\"cursor\"], a[href=\"#cursor\"]');return nearbyMatch??root;};const triggerTarget=findCursorTriggerTarget();const observer=new IntersectionObserver(entries=>{const[entry]=entries;if(!entry)return;if(entry.isIntersecting&&entry.intersectionRatio>=.25){startTransition(()=>{setHasEnteredView(true);});observer.disconnect();}},{threshold:[.25]});observer.observe(triggerTarget);return()=>{observer.disconnect();};},[hasEnteredView,sourceText]);useEffect(()=>{if(!hasEnteredView)return;if(typeof window===\"undefined\")return;const typingInterval=window.setInterval(()=>{startTransition(()=>{setTypedCount(current=>{if(current>=wordChunks.length)return current;return current+1;});});},65);return()=>{window.clearInterval(typingInterval);};},[hasEnteredView,wordChunks.length]);useEffect(()=>{if(!hasEnteredView)return;if(typeof window===\"undefined\")return;const cursorInterval=window.setInterval(()=>{startTransition(()=>{setCursorVisible(visible=>!visible);});},530);return()=>{window.clearInterval(cursorInterval);};},[hasEnteredView]);const typedText=wordChunks.slice(0,typedCount).join(\"\");const displayText=hasEnteredView?`${typedText}${cursorVisible?\"|\":\"\"}`:sourceText;return /*#__PURE__*/_jsx(Component,{ref:mergedRef,...props,viewport:mergedViewport,onViewportEnter:handleViewportEnter,style:{...props.style,opacity:hasEnteredView?props.style?.opacity:0},text:displayText});});}export function withTypewriterReveal(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const localRef=useRef(null);const TYPE_INTERVAL_MS=45;const CURSOR_BLINK_MS=530;const VIEWPORT_THRESHOLD=.25;const MAX_DOM_READ_ATTEMPTS=20;const DOM_READ_RETRY_MS=100;const extractTextFromChildren=useCallback(node=>{if(typeof node===\"string\"||typeof node===\"number\"){return String(node);}if(Array.isArray(node)){return node.map(child=>extractTextFromChildren(child)).join(\"\");}if(node&&typeof node===\"object\"&&\"props\"in node){return extractTextFromChildren(node.props?.children);}return\"\";},[]);const[domSourceText,setDomSourceText]=useState(\"\");const[hasEnteredView,setHasEnteredView]=useState(false);const[typedCount,setTypedCount]=useState(0);const[cursorVisible,setCursorVisible]=useState(true);const sourceText=useMemo(()=>{const textProp=typeof props.text===\"string\"?props.text:\"\";if(textProp.trim().length>0)return textProp;const childrenText=extractTextFromChildren(props.children);if(childrenText.trim().length>0)return childrenText;if(domSourceText.trim().length>0)return domSourceText;return\"\";},[domSourceText,extractTextFromChildren,props.children,props.text]);const mergedRef=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&typeof ref===\"object\"){ref.current=node;}},[ref]);useEffect(()=>{if(typeof window===\"undefined\")return;if(sourceText.trim().length>0)return;let disposed=false;let attempts=0;const readDomSource=()=>{if(disposed)return;const root=localRef.current;const rawText=root?.textContent?.replace(/\\u00A0/g,\" \")??\"\";if(rawText.trim().length>0){startTransition(()=>{setDomSourceText(rawText);});return;}attempts+=1;if(attempts<MAX_DOM_READ_ATTEMPTS){window.setTimeout(readDomSource,DOM_READ_RETRY_MS);}};window.setTimeout(readDomSource,0);return()=>{disposed=true;};},[sourceText]);useEffect(()=>{startTransition(()=>{setHasEnteredView(false);setTypedCount(0);setCursorVisible(true);});},[sourceText]);useEffect(()=>{if(hasEnteredView)return;if(typeof window===\"undefined\")return;if(typeof IntersectionObserver===\"undefined\"){startTransition(()=>{setHasEnteredView(true);});return;}const root=localRef.current;if(!root)return;const observer=new IntersectionObserver(entries=>{const[entry]=entries;if(!entry)return;if(entry.isIntersecting&&entry.intersectionRatio>=VIEWPORT_THRESHOLD){startTransition(()=>{setHasEnteredView(true);});observer.disconnect();}},{threshold:[VIEWPORT_THRESHOLD]});observer.observe(root);return()=>{observer.disconnect();};},[hasEnteredView,sourceText]);useEffect(()=>{if(!hasEnteredView)return;if(typeof window===\"undefined\")return;const characters=Array.from(sourceText);const typingInterval=window.setInterval(()=>{startTransition(()=>{setTypedCount(current=>current>=characters.length?current:current+1);});},TYPE_INTERVAL_MS);return()=>{window.clearInterval(typingInterval);};},[TYPE_INTERVAL_MS,hasEnteredView,sourceText]);useEffect(()=>{if(!hasEnteredView)return;if(typeof window===\"undefined\")return;const cursorInterval=window.setInterval(()=>{startTransition(()=>{setCursorVisible(visible=>!visible);});},CURSOR_BLINK_MS);return()=>{window.clearInterval(cursorInterval);};},[CURSOR_BLINK_MS,hasEnteredView]);const typedText=useMemo(()=>{return Array.from(sourceText).slice(0,typedCount).join(\"\");},[sourceText,typedCount]);const displayText=hasEnteredView?`${typedText}${cursorVisible?\"|\":\"\"}`:sourceText;return /*#__PURE__*/_jsx(Component,{ref:mergedRef,...props,text:displayText,children:displayText,style:{...props.style,whiteSpace:\"pre-wrap\"}});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withSharedAnimalColorForButtonHover\":{\"type\":\"reactHoc\",\"name\":\"withSharedAnimalColorForButtonHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPacificTime\":{\"type\":\"reactHoc\",\"name\":\"withPacificTime\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRandomAnimalName\":{\"type\":\"reactHoc\",\"name\":\"withRandomAnimalName\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRandomColor\":{\"type\":\"reactHoc\",\"name\":\"withRandomColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSharedAnimalColor\":{\"type\":\"reactHoc\",\"name\":\"withSharedAnimalColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSharedAnimalColorOnHover\":{\"type\":\"reactHoc\",\"name\":\"withSharedAnimalColorOnHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withTypewriterCursor\":{\"type\":\"reactHoc\",\"name\":\"withTypewriterCursor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withTypewriterReveal\":{\"type\":\"reactHoc\",\"name\":\"withTypewriterReveal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRotate\":{\"type\":\"reactHoc\",\"name\":\"withRotate\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHover\":{\"type\":\"reactHoc\",\"name\":\"withHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"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"}