{"version":3,"file":"Examples.LeTP4vpC.mjs","names":["useState","useRef","useCallback","useState","useMemo"],"sources":["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/c2fQZWGBuB4jRF0ZhGff/LSLSZalaUpO8MHDI319O/Examples.js"],"sourcesContent":["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,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 useStore=createStore({background:\"#0099FF\"});let lightboxOverrideMountCount=0;let lightboxCloseButton=null;let lightboxMonitorObserver=null;let lightboxMonitorRaf=0;let currentLightboxMedia=null;let currentLightboxOverlay=null;let customLightboxOverlay=null;let customLightboxMountCount=0;function isVisibleElement(element){const style=window.getComputedStyle(element);if(style.display===\"none\"||style.visibility===\"hidden\")return false;const rect=element.getBoundingClientRect();return rect.width>0&&rect.height>0;}function findOverlayAncestor(element){let node=element;while(node&&node!==document.body){const style=window.getComputedStyle(node);const rect=node.getBoundingClientRect();const coversViewport=rect.width>=window.innerWidth*.6&&rect.height>=window.innerHeight*.6;const layerLike=style.position===\"fixed\"||style.position===\"absolute\";if(layerLike&&coversViewport&&isVisibleElement(node)){return node;}node=node.parentElement;}return null;}function findExpandedLightboxMedia(){if(typeof document===\"undefined\"||typeof window===\"undefined\")return null;const mediaElements=Array.from(document.querySelectorAll(\"img, video, canvas\"));let best=null;let bestArea=0;for(const media of mediaElements){if(!(media instanceof HTMLElement))continue;if(!media.isConnected)continue;if(!isVisibleElement(media))continue;const rect=media.getBoundingClientRect();const area=rect.width*rect.height;const bigEnough=rect.width>=window.innerWidth*.3&&rect.height>=window.innerHeight*.3;if(!bigEnough)continue;const overlay=findOverlayAncestor(media);if(!overlay)continue;if(area>bestArea){best=media;bestArea=area;}}return best;}function removeGlobalLightboxCloseButton(){if(lightboxMonitorRaf&&typeof window!==\"undefined\"){window.cancelAnimationFrame(lightboxMonitorRaf);lightboxMonitorRaf=0;}if(lightboxMonitorObserver){lightboxMonitorObserver.disconnect();lightboxMonitorObserver=null;}currentLightboxMedia=null;currentLightboxOverlay=null;if(lightboxCloseButton){lightboxCloseButton.remove();lightboxCloseButton=null;}}function positionCloseButtonToMedia(media){if(!lightboxCloseButton)return;const rect=media.getBoundingClientRect();const buttonSize=40;const inset=6;const top=Math.max(0,rect.top+inset);const left=Math.min(window.innerWidth-buttonSize,Math.max(0,rect.right-buttonSize-inset));lightboxCloseButton.style.top=`${top}px`;lightboxCloseButton.style.left=`${left}px`;lightboxCloseButton.style.right=\"auto\";}function startLightboxButtonMonitor(){if(typeof document===\"undefined\"||typeof window===\"undefined\")return;if(lightboxMonitorObserver)return;const sync=()=>{const media=findExpandedLightboxMedia();if(!media){removeGlobalLightboxCloseButton();return;}currentLightboxMedia=media;currentLightboxOverlay=findOverlayAncestor(media);positionCloseButtonToMedia(media);};const scheduleSync=()=>{if(lightboxMonitorRaf)return;lightboxMonitorRaf=window.requestAnimationFrame(()=>{lightboxMonitorRaf=0;sync();});};lightboxMonitorObserver=new MutationObserver(()=>{scheduleSync();});lightboxMonitorObserver.observe(document.body,{childList:true,subtree:true,attributes:true,attributeFilter:[\"style\",\"class\",\"aria-hidden\"]});window.addEventListener(\"resize\",scheduleSync);window.addEventListener(\"scroll\",scheduleSync,{passive:true});window.visualViewport?.addEventListener(\"resize\",scheduleSync);window.visualViewport?.addEventListener(\"scroll\",scheduleSync);const cleanup=()=>{window.removeEventListener(\"resize\",scheduleSync);window.removeEventListener(\"scroll\",scheduleSync);window.visualViewport?.removeEventListener(\"resize\",scheduleSync);window.visualViewport?.removeEventListener(\"scroll\",scheduleSync);};startLightboxButtonMonitor._cleanup=cleanup;scheduleSync();}function ensureGlobalLightboxCloseButton(){if(typeof window===\"undefined\"||typeof document===\"undefined\")return;if(lightboxCloseButton)return;const button=document.createElement(\"button\");button.type=\"button\";button.setAttribute(\"aria-label\",\"Close lightbox\");button.textContent=\"\\xd7\";button.style.position=\"fixed\";button.style.top=\"12px\";button.style.left=\"12px\";button.style.width=\"40px\";button.style.height=\"40px\";button.style.border=\"1px solid rgba(255,255,255,0.28)\";button.style.borderRadius=\"999px\";button.style.background=\"rgba(0,0,0,0.55)\";button.style.color=\"#FFFFFF\";button.style.fontSize=\"24px\";button.style.lineHeight=\"1\";button.style.cursor=\"pointer\";button.style.zIndex=\"2147483647\";button.style.display=\"flex\";button.style.alignItems=\"center\";button.style.justifyContent=\"center\";button.style.setProperty(\"-webkit-tap-highlight-color\",\"transparent\");button.style.touchAction=\"manipulation\";button.addEventListener(\"click\",event=>{event.preventDefault();event.stopPropagation();const overlay=currentLightboxOverlay;const media=currentLightboxMedia;removeGlobalLightboxCloseButton();if(!overlay||!media)return;const mediaRect=media.getBoundingClientRect();const overlayRect=overlay.getBoundingClientRect();const clientX=mediaRect.left>overlayRect.left+20?overlayRect.left+12:overlayRect.right-12;const clientY=mediaRect.top>overlayRect.top+20?overlayRect.top+12:overlayRect.bottom-12;const pointerDown=new PointerEvent(\"pointerdown\",{bubbles:true,cancelable:true,clientX,clientY});const mouseDown=new MouseEvent(\"mousedown\",{bubbles:true,cancelable:true,clientX,clientY});const mouseUp=new MouseEvent(\"mouseup\",{bubbles:true,cancelable:true,clientX,clientY});const clickEvent=new MouseEvent(\"click\",{bubbles:true,cancelable:true,clientX,clientY});overlay.dispatchEvent(pointerDown);overlay.dispatchEvent(mouseDown);overlay.dispatchEvent(mouseUp);overlay.dispatchEvent(clickEvent);});document.body.appendChild(button);lightboxCloseButton=button;startLightboxButtonMonitor();}function openLightboxCloseButtonAfterNativeOpen(){if(typeof window===\"undefined\")return;const attempt=()=>{const media=findExpandedLightboxMedia();if(!media)return;ensureGlobalLightboxCloseButton();currentLightboxMedia=media;currentLightboxOverlay=findOverlayAncestor(media);positionCloseButtonToMedia(media);};window.requestAnimationFrame(()=>{attempt();window.setTimeout(attempt,60);});}function mountLightboxCloseButtonRuntime(){if(typeof window===\"undefined\"||typeof document===\"undefined\")return;lightboxOverrideMountCount+=1;if(lightboxOverrideMountCount>1)return;}function unmountLightboxCloseButtonRuntime(){if(typeof window===\"undefined\"||typeof document===\"undefined\")return;lightboxOverrideMountCount=Math.max(0,lightboxOverrideMountCount-1);if(lightboxOverrideMountCount>0)return;const cleanup=startLightboxButtonMonitor._cleanup;cleanup?.();startLightboxButtonMonitor._cleanup=undefined;removeGlobalLightboxCloseButton();}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 withYearPrevious(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const hasNavigatedRef=useRef(false);const navigateToYear=useCallback((event,nextYear)=>{if(typeof window===\"undefined\")return;if(hasNavigatedRef.current)return;hasNavigatedRef.current=true;const currentUrl=new URL(window.location.href);currentUrl.searchParams.set(\"year\",String(nextYear));const nextUrl=`${currentUrl.pathname}${currentUrl.search}${currentUrl.hash}`;if(event?.preventDefault){event.preventDefault();}window.history.pushState({},\"\",nextUrl);window.dispatchEvent(new PopStateEvent(\"popstate\"));},[]);const handleNavigatePrevious=useCallback(event=>{const currentUrl=new URL(window.location.href);const currentYear=Number.parseInt(currentUrl.searchParams.get(\"year\")??\"2026\",10);const safeYear=Number.isNaN(currentYear)?2026:currentYear;const previousYear=Math.max(2023,safeYear-1);navigateToYear(event,previousYear);},[navigateToYear]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:event=>{props.onClick?.(event);if(event?.defaultPrevented)return;handleNavigatePrevious(event);},onTap:event=>{props.onTap?.(event);if(event?.defaultPrevented)return;handleNavigatePrevious(event);},onKeyDown:event=>{props.onKeyDown?.(event);if(event?.defaultPrevented)return;if(event?.key===\"Enter\"||event?.key===\" \"){handleNavigatePrevious(event);}}});});}export function withYearNext(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const hasNavigatedRef=useRef(false);const navigateToYear=useCallback((event,nextYear)=>{if(typeof window===\"undefined\")return;if(hasNavigatedRef.current)return;hasNavigatedRef.current=true;const currentUrl=new URL(window.location.href);currentUrl.searchParams.set(\"year\",String(nextYear));const nextUrl=`${currentUrl.pathname}${currentUrl.search}${currentUrl.hash}`;if(event?.preventDefault){event.preventDefault();}window.history.pushState({},\"\",nextUrl);window.dispatchEvent(new PopStateEvent(\"popstate\"));},[]);const handleNavigateNext=useCallback(event=>{const currentUrl=new URL(window.location.href);const currentYear=Number.parseInt(currentUrl.searchParams.get(\"year\")??\"2026\",10);const safeYear=Number.isNaN(currentYear)?2026:currentYear;const nextYear=Math.min(2026,safeYear+1);navigateToYear(event,nextYear);},[navigateToYear]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:event=>{props.onClick?.(event);if(event?.defaultPrevented)return;handleNavigateNext(event);},onTap:event=>{props.onTap?.(event);if(event?.defaultPrevented)return;handleNavigateNext(event);},onKeyDown:event=>{props.onKeyDown?.(event);if(event?.defaultPrevented)return;if(event?.key===\"Enter\"||event?.key===\" \"){handleNavigateNext(event);}}});});}export function withCloseNavOnScrollAndOutside(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const localRef=useRef(null);const[activeVariant,setActiveVariant]=useState(props.variant);const setRefs=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}},[ref]);useEffect(()=>{if(props.variant!==undefined){startTransition(()=>setActiveVariant(props.variant));}},[props.variant]);const resolvedVariant=activeVariant??props.variant;const closedVariant=useMemo(()=>{if(typeof resolvedVariant!==\"string\")return undefined;if(resolvedVariant===\"Desktop open\")return\"Desktop\";if(resolvedVariant===\"Mobile open\")return\"Mobile\";return undefined;},[resolvedVariant]);const isOpen=useMemo(()=>{return typeof resolvedVariant===\"string\"&&/open/i.test(resolvedVariant)&&typeof closedVariant===\"string\"&&closedVariant!==resolvedVariant;},[closedVariant,resolvedVariant]);const closeNav=useCallback(()=>{if(!isOpen||!closedVariant)return;startTransition(()=>setActiveVariant(closedVariant));},[closedVariant,isOpen]);useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}const handleScroll=()=>{closeNav();};const handlePointerOutside=event=>{const node=localRef.current;const target=event.target;if(!node||!target)return;if(node.contains(target))return;closeNav();};window.addEventListener(\"scroll\",handleScroll,{passive:true});document.addEventListener(\"scroll\",handleScroll,{passive:true,capture:true});document.addEventListener(\"pointerdown\",handlePointerOutside,true);return()=>{window.removeEventListener(\"scroll\",handleScroll);document.removeEventListener(\"scroll\",handleScroll,true);document.removeEventListener(\"pointerdown\",handlePointerOutside,true);};},[closeNav]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...props,variant:resolvedVariant,onTap:event=>{props.onTap?.(event);},onClick:event=>{props.onClick?.(event);}});});}export function withDemoPromptUntilHeroEnd(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[isVisible,setIsVisible]=useState(true);const[bottomInset,setBottomInset]=useState(16);const evaluateVisibility=useCallback(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}const heroElement=document.getElementById(\"lego-hero-media\")??document.querySelector('[data-framer-element-id=\"lego-hero-media\"]')??document.querySelector('[data-framer-name=\"lego-hero-media\"]');if(!heroElement){startTransition(()=>setIsVisible(true));return;}const{bottom}=heroElement.getBoundingClientRect();startTransition(()=>setIsVisible(bottom>0));},[]);const updateBottomInset=useCallback(()=>{if(typeof window===\"undefined\")return;const viewportHeight=window.visualViewport?.height??window.innerHeight;const inset=Math.max(16,Math.round(viewportHeight*.03));startTransition(()=>setBottomInset(inset));},[]);useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}evaluateVisibility();updateBottomInset();const handleChange=()=>{evaluateVisibility();updateBottomInset();};window.addEventListener(\"scroll\",handleChange,{passive:true});window.addEventListener(\"resize\",handleChange);window.addEventListener(\"orientationchange\",handleChange);window.visualViewport?.addEventListener(\"resize\",handleChange);window.visualViewport?.addEventListener(\"scroll\",handleChange);return()=>{window.removeEventListener(\"scroll\",handleChange);window.removeEventListener(\"resize\",handleChange);window.removeEventListener(\"orientationchange\",handleChange);window.visualViewport?.removeEventListener(\"resize\",handleChange);window.visualViewport?.removeEventListener(\"scroll\",handleChange);};},[evaluateVisibility,updateBottomInset]);const fixedStyle=useMemo(()=>({...props.style,position:\"fixed\",top:\"auto\",right:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",bottom:`max(${bottomInset}px, env(safe-area-inset-bottom, 0px))`,zIndex:999,opacity:isVisible?1:0,pointerEvents:isVisible?\"auto\":\"none\",transition:\"opacity 120ms ease\"}),[bottomInset,isVisible,props.style]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props,style:fixedStyle});});}export function withLightboxCloseButton(Component){return /*#__PURE__*/forwardRef((props,ref)=>{useEffect(()=>{mountLightboxCloseButtonRuntime();return()=>{unmountLightboxCloseButtonRuntime();};},[]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onPointerDown:event=>{props.onPointerDown?.(event);if(event?.defaultPrevented)return;openLightboxCloseButtonAfterNativeOpen();},onClick:event=>{props.onClick?.(event);if(event?.defaultPrevented)return;openLightboxCloseButtonAfterNativeOpen();},onTap:event=>{props.onTap?.(event);if(event?.defaultPrevented)return;openLightboxCloseButtonAfterNativeOpen();}});});}function extractImageUrlFromElement(root){if(typeof window===\"undefined\"||!root)return null;const parseBackgroundUrl=value=>{const match=value.match(/url\\((['\"]?)(.*?)\\1\\)/i);if(!match||!match[2])return null;return match[2];};if(root instanceof HTMLImageElement&&root.src){return root.currentSrc||root.src;}const rootBg=parseBackgroundUrl(window.getComputedStyle(root).backgroundImage);if(rootBg)return rootBg;const imageDescendant=root.querySelector(\"img\");if(imageDescendant instanceof HTMLImageElement){return imageDescendant.currentSrc||imageDescendant.src;}const descendants=Array.from(root.querySelectorAll(\"*\"));for(const node of descendants){if(!(node instanceof HTMLElement))continue;const bg=parseBackgroundUrl(window.getComputedStyle(node).backgroundImage);if(bg)return bg;}return null;}function closeCustomImageLightbox(){if(customLightboxOverlay){customLightboxOverlay.remove();customLightboxOverlay=null;}}function openCustomImageLightbox(imageUrl){if(typeof document===\"undefined\")return;closeCustomImageLightbox();const overlay=document.createElement(\"div\");overlay.setAttribute(\"role\",\"dialog\");overlay.setAttribute(\"aria-modal\",\"true\");overlay.setAttribute(\"aria-label\",\"Image lightbox\");overlay.style.position=\"fixed\";overlay.style.inset=\"0\";overlay.style.background=\"rgba(0, 0, 0, 0.88)\";overlay.style.display=\"flex\";overlay.style.alignItems=\"center\";overlay.style.justifyContent=\"center\";overlay.style.padding=\"20px\";overlay.style.zIndex=\"2147483647\";overlay.style.touchAction=\"manipulation\";const mediaWrap=document.createElement(\"div\");mediaWrap.style.position=\"relative\";mediaWrap.style.maxWidth=\"min(92vw, 1400px)\";mediaWrap.style.maxHeight=\"92vh\";mediaWrap.style.display=\"inline-flex\";mediaWrap.style.alignItems=\"center\";mediaWrap.style.justifyContent=\"center\";const image=document.createElement(\"img\");image.src=imageUrl;image.alt=\"\";image.style.display=\"block\";image.style.maxWidth=\"min(92vw, 1400px)\";image.style.maxHeight=\"92vh\";image.style.width=\"auto\";image.style.height=\"auto\";image.style.objectFit=\"contain\";image.style.borderRadius=\"8px\";image.style.pointerEvents=\"auto\";const closeButton=document.createElement(\"button\");closeButton.type=\"button\";closeButton.setAttribute(\"aria-label\",\"Close image\");closeButton.textContent=\"\\xd7\";closeButton.style.position=\"absolute\";closeButton.style.top=\"6px\";closeButton.style.right=\"6px\";closeButton.style.width=\"36px\";closeButton.style.height=\"36px\";closeButton.style.borderRadius=\"999px\";closeButton.style.border=\"1px solid rgba(255,255,255,0.35)\";closeButton.style.background=\"rgba(0,0,0,0.55)\";closeButton.style.color=\"#fff\";closeButton.style.cursor=\"pointer\";closeButton.style.fontSize=\"24px\";closeButton.style.lineHeight=\"1\";closeButton.style.display=\"flex\";closeButton.style.alignItems=\"center\";closeButton.style.justifyContent=\"center\";closeButton.style.touchAction=\"manipulation\";closeButton.style.setProperty(\"-webkit-tap-highlight-color\",\"transparent\");closeButton.addEventListener(\"click\",event=>{event.preventDefault();event.stopPropagation();closeCustomImageLightbox();});overlay.addEventListener(\"click\",event=>{if(event.target!==overlay)return;closeCustomImageLightbox();});mediaWrap.appendChild(image);mediaWrap.appendChild(closeButton);overlay.appendChild(mediaWrap);document.body.appendChild(overlay);customLightboxOverlay=overlay;}function mountCustomImageLightboxRuntime(){customLightboxMountCount+=1;}function unmountCustomImageLightboxRuntime(){customLightboxMountCount=Math.max(0,customLightboxMountCount-1);if(customLightboxMountCount===0){closeCustomImageLightbox();}}export function withCustomImageLightbox(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const localRef=useRef(null);useEffect(()=>{mountCustomImageLightboxRuntime();return()=>{unmountCustomImageLightboxRuntime();};},[]);const setRefs=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}},[ref]);const openFromEvent=useCallback(event=>{event?.preventDefault?.();event?.stopPropagation?.();const currentTarget=event?.currentTarget;const sourceElement=currentTarget??localRef.current;const imageUrl=extractImageUrlFromElement(sourceElement);if(!imageUrl)return;openCustomImageLightbox(imageUrl);},[]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...props,onClick:event=>{openFromEvent(event);},onTap:event=>{openFromEvent(event);}});});}export function withViewportSafeMenu(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const localRef=useRef(null);const[safeHeight,setSafeHeight]=useState(48);const setRefs=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}},[ref]);const updateSafeHeight=useCallback(()=>{if(typeof window===\"undefined\")return;const node=localRef.current;if(!node)return;const viewportHeight=window.visualViewport?.height??window.innerHeight;const topOffset=node.getBoundingClientRect().top;const nextHeight=Math.max(48,Math.floor(viewportHeight-topOffset-12));startTransition(()=>setSafeHeight(nextHeight));},[]);useEffect(()=>{if(typeof window===\"undefined\")return;updateSafeHeight();window.addEventListener(\"resize\",updateSafeHeight);window.addEventListener(\"orientationchange\",updateSafeHeight);window.visualViewport?.addEventListener(\"resize\",updateSafeHeight);window.visualViewport?.addEventListener(\"scroll\",updateSafeHeight);return()=>{window.removeEventListener(\"resize\",updateSafeHeight);window.removeEventListener(\"orientationchange\",updateSafeHeight);window.visualViewport?.removeEventListener(\"resize\",updateSafeHeight);window.visualViewport?.removeEventListener(\"scroll\",updateSafeHeight);};},[updateSafeHeight]);const mergedStyle=useMemo(()=>({...props.style,height:safeHeight,maxHeight:safeHeight,overflowY:\"auto\",overflowX:\"hidden\",WebkitOverflowScrolling:\"touch\"}),[props.style,safeHeight]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...props,style:mergedStyle});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withViewportSafeMenu\":{\"type\":\"reactHoc\",\"name\":\"withViewportSafeMenu\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDemoPromptUntilHeroEnd\":{\"type\":\"reactHoc\",\"name\":\"withDemoPromptUntilHeroEnd\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withYearNext\":{\"type\":\"reactHoc\",\"name\":\"withYearNext\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRotate\":{\"type\":\"reactHoc\",\"name\":\"withRotate\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRandomColor\":{\"type\":\"reactHoc\",\"name\":\"withRandomColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHover\":{\"type\":\"reactHoc\",\"name\":\"withHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCloseNavOnScrollAndOutside\":{\"type\":\"reactHoc\",\"name\":\"withCloseNavOnScrollAndOutside\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLightboxCloseButton\":{\"type\":\"reactHoc\",\"name\":\"withLightboxCloseButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCustomImageLightbox\":{\"type\":\"reactHoc\",\"name\":\"withCustomImageLightbox\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withYearPrevious\":{\"type\":\"reactHoc\",\"name\":\"withYearPrevious\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"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"}