{"version":3,"file":"Examples.CI07VhfE.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/xB36ayT4CE4nVG6kQYC5/2VpIH4GOMgKnaowEblmg/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,useRef}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\"});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 withEagerImageLoading(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const incomingProps=props;const rootRef=useRef(null);const setRefs=useCallback(node=>{rootRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}},[ref]);useEffect(()=>{const root=rootRef.current;if(!root)return;if(typeof window===\"undefined\"||typeof document===\"undefined\")return;const desiredTitle=\"Organic Farms Online Menu\";const timeouts=[];const observers=[];const iframeCtor=typeof HTMLIFrameElement!==\"undefined\"?HTMLIFrameElement:null;const mutationObserverCtor=typeof MutationObserver!==\"undefined\"?MutationObserver:null;const setTitleIfMissing=iframe=>{const existingTitle=iframe.getAttribute(\"title\")?.trim()??\"\";if(existingTitle.length===0){iframe.setAttribute(\"title\",desiredTitle);}};const isIframeElement=element=>{if(!element||!iframeCtor)return false;return element instanceof iframeCtor;};const addIframesFromElement=(element,bucket)=>{if(!element)return;if(isIframeElement(element)){bucket.add(element);}const descendants=element.querySelectorAll(\"iframe\");descendants.forEach(node=>{if(isIframeElement(node)){bucket.add(node);}});};const isLikelyNearbyIframe=(iframe,rootElement)=>{const parent=rootElement.parentElement;const grandParent=parent?.parentElement??null;const greatGrandParent=grandParent?.parentElement??null;if(iframe.parentElement===parent||iframe.parentElement===grandParent||iframe.parentElement===greatGrandParent){return true;}if(parent?.contains(iframe)||grandParent?.contains(iframe)||greatGrandParent?.contains(iframe)){return true;}if(typeof rootElement.getBoundingClientRect!==\"function\"){return false;}const rootRect=rootElement.getBoundingClientRect();const iframeRect=iframe.getBoundingClientRect();const dx=iframeRect.left+iframeRect.width/2-(rootRect.left+rootRect.width/2);const dy=iframeRect.top+iframeRect.height/2-(rootRect.top+rootRect.height/2);const distance=Math.sqrt(dx*dx+dy*dy);return distance<1200;};const applyEnhancements=()=>{const rootElement=rootRef.current;if(!rootElement)return;const iframeCandidates=new Set;if(isIframeElement(rootElement)){iframeCandidates.add(rootElement);}addIframesFromElement(rootElement,iframeCandidates);const parent=rootElement.parentElement;const grandParent=parent?.parentElement??null;const greatGrandParent=grandParent?.parentElement??null;addIframesFromElement(parent,iframeCandidates);addIframesFromElement(grandParent,iframeCandidates);addIframesFromElement(greatGrandParent,iframeCandidates);const containerAncestor=rootElement.closest(\"[data-framer-name], [data-framer-component-type], [class*='framer'], [id*='framer']\");addIframesFromElement(containerAncestor,iframeCandidates);const allDocumentIframes=document.querySelectorAll(\"iframe\");allDocumentIframes.forEach(node=>{if(!isIframeElement(node))return;const existingTitle=node.getAttribute(\"title\")?.trim()??\"\";if(existingTitle.length>0)return;if(isLikelyNearbyIframe(node,rootElement)){iframeCandidates.add(node);}});iframeCandidates.forEach(iframe=>{setTitleIfMissing(iframe);});const nestedImages=rootElement.querySelectorAll(\"img\");nestedImages.forEach(image=>{image.setAttribute(\"loading\",\"eager\");image.setAttribute(\"fetchpriority\",\"high\");});};applyEnhancements();const observeTarget=target=>{if(!target||!mutationObserverCtor)return;try{const observer=new mutationObserverCtor(()=>{applyEnhancements();});observer.observe(target,{childList:true,subtree:true,attributes:true});observers.push(observer);}catch(_error){// no-op: observer targets can become unavailable during canvas rerenders\n}};observeTarget(root);observeTarget(root.parentElement);observeTarget(document.body);[80,200,500,900,1400,2100,3200,4500].forEach(delay=>{const timeoutId=window.setTimeout(()=>{applyEnhancements();},delay);timeouts.push(timeoutId);});return()=>{observers.forEach(observer=>{observer.disconnect();});timeouts.forEach(timeoutId=>{window.clearTimeout(timeoutId);});};},[]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...incomingProps,title:incomingProps.title??\"Organic Farms Online Menu\",loading:\"eager\",fetchPriority:\"high\"});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withHover\":{\"type\":\"reactHoc\",\"name\":\"withHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRotate\":{\"type\":\"reactHoc\",\"name\":\"withRotate\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRandomColor\":{\"type\":\"reactHoc\",\"name\":\"withRandomColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEagerImageLoading\":{\"type\":\"reactHoc\",\"name\":\"withEagerImageLoading\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"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"}