{"version":3,"file":"Examples.Bdo6Vv-T.mjs","names":["useState","useRef","useCallback"],"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/Oj2sUS6o4ybEuXwaPXPi/UyPMxpC5PiTXeXkAwkx3/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,useCallback,useEffect,useMemo,useRef,useState}from\"react\";// @ts-expect-error Framer runtime URL import\nimport{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";// @ts-expect-error Framer runtime URL import\nimport{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\"});const descriptionStyleSnapshot=new WeakMap;const expandedDescriptions=new WeakSet;const buttonDefaultLabel=new WeakMap;const buttonVisibilitySnapshot=new WeakMap;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 withReadMoreToggle(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const buttonRef=useRef(null);const incomingOnClick=props?.onClick;const assignRef=useCallback(node=>{buttonRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&typeof ref===\"object\"){ref.current=node;}if(!node)return;setButtonLabel(node,\"Read more\");node.setAttribute(\"aria-expanded\",\"false\");},[ref]);const reevaluateVisibility=useCallback(()=>{const buttonElement=buttonRef.current;if(!buttonElement)return;const cardContainer=findClosestCardContainer(buttonElement);const description=cardContainer?findDescriptionInCard(cardContainer,buttonElement):null;if(!description){setButtonVisibility(buttonElement,false);return;}if(expandedDescriptions.has(description)){setButtonVisibility(buttonElement,true);setButtonLabel(buttonElement,\"Show less\");buttonElement.setAttribute(\"aria-expanded\",\"true\");return;}const hasOverflow=isDescriptionOverflowing(description);if(hasOverflow){setButtonVisibility(buttonElement,true);setButtonLabel(buttonElement,\"Read more\");buttonElement.setAttribute(\"aria-expanded\",\"false\");}else{setButtonVisibility(buttonElement,false);}},[]);useEffect(()=>{const buttonElement=buttonRef.current;if(!buttonElement||typeof window===\"undefined\")return;reevaluateVisibility();const rafId=window.requestAnimationFrame(()=>{reevaluateVisibility();});const settleTimer=window.setTimeout(()=>{reevaluateVisibility();},300);const lateSettleTimer=window.setTimeout(()=>{reevaluateVisibility();},900);const handleResize=()=>{reevaluateVisibility();};window.addEventListener(\"resize\",handleResize);const cardContainer=findClosestCardContainer(buttonElement);const description=cardContainer?findDescriptionInCard(cardContainer,buttonElement):null;let resizeObserver=null;if(typeof ResizeObserver!==\"undefined\"){resizeObserver=new ResizeObserver(()=>{reevaluateVisibility();});if(description)resizeObserver.observe(description);if(cardContainer)resizeObserver.observe(cardContainer);}let isCancelled=false;if(typeof document!==\"undefined\"&&\"fonts\"in document){const fontSet=document.fonts;fontSet?.ready.then(()=>{if(!isCancelled)reevaluateVisibility();}).catch(()=>{});}return()=>{isCancelled=true;window.cancelAnimationFrame(rafId);window.clearTimeout(settleTimer);window.clearTimeout(lateSettleTimer);window.removeEventListener(\"resize\",handleResize);resizeObserver?.disconnect();};},[props,reevaluateVisibility]);const onClick=useCallback(event=>{const clickedElement=event?.currentTarget;const buttonElement=clickedElement??buttonRef.current;if(!buttonElement){incomingOnClick?.(event);return;}const cardContainer=findClosestCardContainer(buttonElement);const description=cardContainer?findDescriptionInCard(cardContainer,buttonElement):null;if(!description){incomingOnClick?.(event);return;}const isExpanded=expandedDescriptions.has(description);if(!isExpanded){if(!descriptionStyleSnapshot.has(description)){descriptionStyleSnapshot.set(description,{WebkitLineClamp:description.style.webkitLineClamp,WebkitBoxOrient:description.style.webkitBoxOrient,overflow:description.style.overflow,textOverflow:description.style.textOverflow,whiteSpace:description.style.whiteSpace,maxHeight:description.style.maxHeight,display:description.style.display});}description.style.webkitLineClamp=\"unset\";description.style.webkitBoxOrient=\"initial\";description.style.overflow=\"visible\";description.style.textOverflow=\"clip\";description.style.whiteSpace=\"normal\";description.style.maxHeight=\"none\";description.style.display=\"block\";expandedDescriptions.add(description);setButtonLabel(buttonElement,\"Show less\");buttonElement.setAttribute(\"aria-expanded\",\"true\");}else{const previous=descriptionStyleSnapshot.get(description);if(previous){description.style.webkitLineClamp=previous.WebkitLineClamp;description.style.webkitBoxOrient=previous.WebkitBoxOrient;description.style.overflow=previous.overflow;description.style.textOverflow=previous.textOverflow;description.style.whiteSpace=previous.whiteSpace;description.style.maxHeight=previous.maxHeight;description.style.display=previous.display;}expandedDescriptions.delete(description);const hasOverflow=isDescriptionOverflowing(description);if(hasOverflow){setButtonVisibility(buttonElement,true);setButtonLabel(buttonElement,\"Read more\");buttonElement.setAttribute(\"aria-expanded\",\"false\");}else{setButtonVisibility(buttonElement,false);}}incomingOnClick?.(event);},[incomingOnClick]);return /*#__PURE__*/_jsx(Component,{ref:assignRef,...props,onClick:onClick});});}function findClosestCardContainer(startElement){const namedCard=startElement.closest('[data-framer-name=\"Gallery Entry\"]');if(namedCard)return namedCard;let current=startElement;while(current){if(current.querySelector('[data-framer-name=\"Description\"]')||current.querySelector('[aria-label=\"Description\"]')){return current;}current=current.parentElement;}return null;}function findDescriptionInCard(cardContainer,buttonElement){const named=cardContainer.querySelector('[data-framer-name=\"Description\"]');if(named)return named;const ariaNamed=cardContainer.querySelector('[aria-label=\"Description\"]');if(ariaNamed)return ariaNamed;const allTextNodes=Array.from(cardContainer.querySelectorAll(\"p, span, div\")).filter(el=>{const text=el.textContent?.trim()??\"\";return text.length>0&&el!==buttonElement&&!buttonElement.contains(el);});if(allTextNodes.length===0)return null;const buttonRect=buttonElement.getBoundingClientRect();return allTextNodes.sort((a,b)=>{const aRect=a.getBoundingClientRect();const bRect=b.getBoundingClientRect();const distanceA=Math.abs(aRect.top-buttonRect.top)+Math.abs(aRect.left-buttonRect.left);const distanceB=Math.abs(bRect.top-buttonRect.top)+Math.abs(bRect.left-buttonRect.left);return distanceA-distanceB;})[0];}function setButtonLabel(buttonElement,nextLabel){const textTarget=findTextTarget(buttonElement);if(!textTarget)return;if(!buttonDefaultLabel.has(buttonElement)){buttonDefaultLabel.set(buttonElement,textTarget.textContent||\"Read more\");}textTarget.textContent=nextLabel;}function findTextTarget(buttonElement){const preferred=buttonElement.querySelector(\"[data-framer-name], [aria-label], span, p, div\");if(preferred&&preferred.textContent?.trim())return preferred;if(buttonElement.textContent?.trim())return buttonElement;return null;}function isDescriptionOverflowing(descriptionElement){const verticalOverflow=descriptionElement.scrollHeight>descriptionElement.clientHeight+1;const horizontalOverflow=descriptionElement.scrollWidth>descriptionElement.clientWidth+1;const computedStyle=window.getComputedStyle(descriptionElement);const clampValue=parseInt(computedStyle.webkitLineClamp||\"0\",10);if(clampValue>0){return verticalOverflow||horizontalOverflow;}const hasOverflowStyle=computedStyle.overflow===\"hidden\"||computedStyle.overflowY===\"hidden\"||computedStyle.textOverflow===\"ellipsis\";return hasOverflowStyle&&(verticalOverflow||horizontalOverflow);}function setButtonVisibility(buttonElement,visible){if(!buttonVisibilitySnapshot.has(buttonElement)){buttonVisibilitySnapshot.set(buttonElement,{display:buttonElement.style.display,pointerEvents:buttonElement.style.pointerEvents});}if(visible){const previous=buttonVisibilitySnapshot.get(buttonElement);buttonElement.style.display=previous?.display??\"\";buttonElement.style.pointerEvents=previous?.pointerEvents??\"\";buttonElement.removeAttribute(\"aria-hidden\");buttonElement.removeAttribute(\"tabindex\");buttonElement.removeAttribute(\"disabled\");return;}buttonElement.style.display=\"none\";buttonElement.style.pointerEvents=\"none\";buttonElement.setAttribute(\"aria-hidden\",\"true\");buttonElement.setAttribute(\"tabindex\",\"-1\");if(buttonElement instanceof HTMLButtonElement){buttonElement.disabled=true;}}// Scales the inner \"Partner Logo\" when the whole card (link block) is hovered.\nexport function withImageZoomOnHover(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const cardRef=useRef(null);const assignRef=useCallback(node=>{cardRef.current=node;if(typeof ref===\"function\")ref(node);else if(ref&&typeof ref===\"object\")ref.current=node;},[ref]);const getLogo=useCallback(()=>{const card=cardRef.current;if(!card)return null;return card.querySelector('[data-framer-name=\"Partner Logo\"]');},[]);const onMouseEnter=useCallback(event=>{const logo=getLogo();if(logo){logo.style.transformOrigin=\"center center\";logo.style.transition=\"transform 0.4s cubic-bezier(0.44,0,0.56,1)\";logo.style.transform=\"scale(1.1)\";}props?.onMouseEnter?.(event);},[getLogo,props]);const onMouseLeave=useCallback(event=>{const logo=getLogo();if(logo){logo.style.transition=\"transform 0.4s cubic-bezier(0.44,0,0.56,1)\";logo.style.transform=\"scale(1)\";}props?.onMouseLeave?.(event);},[getLogo,props]);return /*#__PURE__*/_jsx(Component,{ref:assignRef,...props,onMouseEnter:onMouseEnter,onMouseLeave:onMouseLeave});});}export function withMobileScrollRevealNav(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const headerRef=useRef(null);const lastScrollYRef=useRef(0);const baseHeaderHeightRef=useRef(null);const tickingRef=useRef(false);const[isMobile,setIsMobile]=useState(false);const[isHidden,setIsHidden]=useState(false);const assignRef=useCallback(node=>{headerRef.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 evaluateViewport=()=>{const mobile=window.innerWidth<=991;setIsMobile(prev=>prev===mobile?prev:mobile);if(!mobile)setIsHidden(false);};evaluateViewport();window.addEventListener(\"resize\",evaluateViewport);return()=>{window.removeEventListener(\"resize\",evaluateViewport);};},[]);useEffect(()=>{if(typeof window===\"undefined\"||!isMobile)return;const update=()=>{tickingRef.current=false;const currentY=Math.max(window.scrollY||0,0);const headerElement=headerRef.current;if(currentY<=0){setIsHidden(false);lastScrollYRef.current=0;return;}if(headerElement){const measuredHeight=headerElement.offsetHeight;if(measuredHeight>0&&(baseHeaderHeightRef.current===null||measuredHeight<baseHeaderHeightRef.current)){baseHeaderHeightRef.current=measuredHeight;}}// While the drawer is open, never hide and keep it interactive.\nif(isHeaderExpandedForInteraction(headerElement,baseHeaderHeightRef.current)){setIsHidden(false);lastScrollYRef.current=currentY;return;}const delta=currentY-lastScrollYRef.current;if(delta>4){setIsHidden(true);}else if(delta<-4){setIsHidden(false);}lastScrollYRef.current=currentY;};const handleScroll=()=>{if(tickingRef.current)return;tickingRef.current=true;window.requestAnimationFrame(update);};update();window.addEventListener(\"scroll\",handleScroll,{passive:true});return()=>{window.removeEventListener(\"scroll\",handleScroll);};},[isMobile]);const mobileStyle=useMemo(()=>{if(!isMobile)return props?.style;return{...props?.style,position:\"sticky\",top:0,zIndex:20,transform:isHidden?\"translateY(-100%)\":\"translateY(0%)\",transition:\"transform 0.25s ease\",willChange:\"transform\",pointerEvents:isHidden?\"none\":\"auto\"};},[isHidden,isMobile,props?.style]);if(!isMobile){return /*#__PURE__*/_jsx(Component,{ref:assignRef,...props});}return /*#__PURE__*/_jsx(Component,{ref:assignRef,...props,style:mobileStyle});});}function isHeaderExpandedForInteraction(headerElement,baseHeight){if(!headerElement)return false;const expandedTrigger=headerElement.querySelector('[aria-expanded=\"true\"]');if(expandedTrigger)return true;const currentHeight=headerElement.offsetHeight;if(!baseHeight||baseHeight<=0)return false;return currentHeight>baseHeight*1.2;}\nexport const __FramerMetadata__ = {\"exports\":{\"withImageZoomOnHover\":{\"type\":\"reactHoc\",\"name\":\"withImageZoomOnHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHover\":{\"type\":\"reactHoc\",\"name\":\"withHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRotate\":{\"type\":\"reactHoc\",\"name\":\"withRotate\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMobileScrollRevealNav\":{\"type\":\"reactHoc\",\"name\":\"withMobileScrollRevealNav\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRandomColor\":{\"type\":\"reactHoc\",\"name\":\"withRandomColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withReadMoreToggle\":{\"type\":\"reactHoc\",\"name\":\"withReadMoreToggle\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"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"}