{"version":3,"file":"Examples.BCduImNk.mjs","names":["useState","useState","useRef","useCallback","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/ZX6YgE58XYZQZSYTNiHr/ECLrdB3WaLcQHu9ccVWK/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\";import{useIsStaticRenderer}from\"framer\";// Learn more: https://www.framer.com/developers/overrides/\nconst useStore=createStore({background:\"#0099FF\"});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 showOnScrollUp(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const isStaticRenderer=useIsStaticRenderer();const[isVisible,setIsVisible]=useState(true);const[offset,setOffset]=useState(0);const lastScrollY=useRef(0);const elementRef=useRef(null);const setCombinedRef=useCallback(node=>{elementRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},[ref]);useEffect(()=>{if(typeof window===\"undefined\"||isStaticRenderer)return;const measure=()=>{const rect=elementRef.current?.getBoundingClientRect();const safetyMargin=8;const nextOffset=rect?rect.height+Math.max(rect.top,0)+safetyMargin:0;startTransition(()=>setOffset(nextOffset));};measure();window.addEventListener(\"resize\",measure);return()=>{window.removeEventListener(\"resize\",measure);};},[isStaticRenderer]);useEffect(()=>{if(typeof window===\"undefined\"||isStaticRenderer)return;const directionThreshold=8;const topRevealThreshold=16;lastScrollY.current=window.scrollY||0;const onScroll=()=>{const currentY=window.scrollY||0;const delta=currentY-lastScrollY.current;if(Math.abs(delta)<directionThreshold)return;if(currentY<=topRevealThreshold){startTransition(()=>setIsVisible(true));}else if(delta>0){startTransition(()=>setIsVisible(false));}else{startTransition(()=>setIsVisible(true));}lastScrollY.current=currentY;};window.addEventListener(\"scroll\",onScroll,{passive:true});return()=>{window.removeEventListener(\"scroll\",onScroll);};},[isStaticRenderer]);const prefersReducedMotion=typeof window!==\"undefined\"&&typeof window.matchMedia!==\"undefined\"&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;return /*#__PURE__*/_jsx(Component,{ref:setCombinedRef,...props,animate:{...typeof props.animate===\"object\"?props.animate:{},y:isVisible?0:-offset},transition:{...typeof props.transition===\"object\"?props.transition:{},duration:prefersReducedMotion?0:.24,ease:\"easeOut\"},style:{...props.style,willChange:\"transform\"}});});}export function highlightCaseStudySection(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const isStaticRenderer=useIsStaticRenderer();const elementRef=useRef(null);const[isActive,setIsActive]=useState(false);const setCombinedRef=useCallback(node=>{elementRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},[ref]);const hash=useMemo(()=>{const layerNameFromProps=typeof props?.name===\"string\"?props.name:\"\";const layerNameFromElement=elementRef.current?.getAttribute(\"data-framer-name\")??\"\";const layerName=(layerNameFromProps||layerNameFromElement).trim();const layerMap={Overview:\"#hero\",\"Section One\":\"#1\",\"Section Two\":\"#2\",\"Section Three\":\"#3\",\"Section Four\":\"#4\",\"Section Five\":\"#5\",\"Section Six\":\"#6\"};if(layerName in layerMap){return layerMap[layerName];}const hrefFromProps=typeof props?.href===\"string\"?props.href:undefined;const hrefFromElement=elementRef.current?.getAttribute(\"href\")??\"\";const href=hrefFromProps??hrefFromElement;const hashIndex=href.indexOf(\"#\");if(hashIndex<0)return\"\";return href.slice(hashIndex);},[props?.href,props?.name]);useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}if(isStaticRenderer||!hash){startTransition(()=>setIsActive(false));return;}const target=document.querySelector(hash);if(!target){startTransition(()=>setIsActive(false));return;}const observer=new IntersectionObserver(entries=>{const[entry]=entries;startTransition(()=>setIsActive(Boolean(entry?.isIntersecting)));},{threshold:.4,root:null,rootMargin:\"-20% 0px -50% 0px\"});observer.observe(target);return()=>{observer.disconnect();};},[hash,isStaticRenderer]);const nextStyle=isActive?{...props.style,fontWeight:700}:props.style;return /*#__PURE__*/_jsx(Component,{ref:setCombinedRef,...props,style:nextStyle});});}\nexport const __FramerMetadata__ = {\"exports\":{\"highlightCaseStudySection\":{\"type\":\"reactHoc\",\"name\":\"highlightCaseStudySection\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showOnScrollUp\":{\"type\":\"reactHoc\",\"name\":\"showOnScrollUp\",\"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\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"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"}