{"version":3,"file":"Examples.ciHybcCG.mjs","names":["useStore","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/JvONtw2OlhHWPNpSabZo/oRVItOqD4hKzlai5TQap/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 ResetFormAfterSubmit(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const rootRef=useRef(null);const timeoutIdsRef=useRef([]);const buttonStateRef=useRef(new WeakMap);const dispatchValueEvents=useCallback(element=>{element.dispatchEvent(new Event(\"input\",{bubbles:true}));element.dispatchEvent(new Event(\"change\",{bubbles:true}));},[]);const clearFormFields=useCallback(form=>{const textLikeSelector='input[type=\"text\"], input[type=\"email\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"date\"], input[type=\"time\"], input[type=\"number\"]';form.querySelectorAll(textLikeSelector).forEach(input=>{input.value=\"\";dispatchValueEvents(input);});form.querySelectorAll(\"textarea\").forEach(textarea=>{textarea.value=\"\";dispatchValueEvents(textarea);});form.querySelectorAll(\"select\").forEach(select=>{if(select.multiple){Array.from(select.options).forEach(option=>{option.selected=false;});}else{select.selectedIndex=-1;select.value=\"\";}dispatchValueEvents(select);});form.querySelectorAll('input[type=\"checkbox\"], input[type=\"radio\"]').forEach(input=>{input.checked=false;dispatchValueEvents(input);});},[dispatchValueEvents]);const getSubmitButtons=useCallback(form=>{return Array.from(form.querySelectorAll('button[type=\"submit\"], button:not([type]), input[type=\"submit\"]'));},[]);const isElementVisible=useCallback(element=>{if(!(element instanceof HTMLElement))return true;const style=window.getComputedStyle(element);if(style.display===\"none\"||style.visibility===\"hidden\"||Number(style.opacity)===0)return false;return element.getClientRects().length>0;},[]);const findBestLabelElement=useCallback(button=>{if(button.children.length===0)return button;const candidates=Array.from(button.querySelectorAll(\"*\")).filter(node=>{const text=node.textContent?.trim()||\"\";return text.length>0&&isElementVisible(node);});if(candidates.length===0)return null;const getDepth=el=>{let depth=0;let current=el;while(current&&current!==button){depth+=1;current=current.parentElement;}return depth;};candidates.sort((a,b)=>{const depthDiff=getDepth(b)-getDepth(a);if(depthDiff!==0)return depthDiff;return(a.textContent?.trim().length||0)-(b.textContent?.trim().length||0);});return candidates[0]??null;},[isElementVisible]);const getButtonLabel=useCallback((element,labelElement)=>{if(element instanceof HTMLInputElement)return element.value||\"\";const source=labelElement&&labelElement.isConnected&&element.contains(labelElement)&&isElementVisible(labelElement)?labelElement:findBestLabelElement(element);if(source)return source.textContent?.trim()||\"\";if(element.children.length===0)return element.textContent?.trim()||\"\";return\"\";},[findBestLabelElement,isElementVisible]);const setButtonLabel=useCallback((element,value,labelElement)=>{if(element instanceof HTMLInputElement){element.value=value;return;}const target=labelElement&&labelElement.isConnected&&element.contains(labelElement)?labelElement:findBestLabelElement(element);if(target){target.textContent=value;return;}if(element.children.length===0){element.textContent=value;}},[findBestLabelElement]);const resolveButtonForSnapshot=useCallback((form,snapshot)=>{if(snapshot.element.isConnected&&form.contains(snapshot.element))return snapshot.element;const currentButtons=getSubmitButtons(form);return currentButtons[snapshot.index]??snapshot.element;},[getSubmitButtons]);const resolveLabelElementForButton=useCallback((button,labelElement)=>{if(button instanceof HTMLInputElement)return null;if(labelElement&&labelElement.isConnected&&button.contains(labelElement)){return labelElement;}return findBestLabelElement(button);},[findBestLabelElement]);const captureButtonState=useCallback(form=>{const snapshot=getSubmitButtons(form).map((element,index)=>{const labelElement=element instanceof HTMLInputElement?null:findBestLabelElement(element);return{index,element,labelElement,text:getButtonLabel(element,labelElement),disabled:element.disabled,ariaBusy:element.getAttribute(\"aria-busy\")};});buttonStateRef.current.set(form,snapshot);},[findBestLabelElement,getButtonLabel,getSubmitButtons]);const restoreSubmitButtons=useCallback(form=>{const snapshot=buttonStateRef.current.get(form);if(!snapshot||snapshot.length===0)return;const submittedMessagePattern=/(submitted|thank|success)/i;snapshot.forEach(buttonSnapshot=>{const element=resolveButtonForSnapshot(form,buttonSnapshot);if(!element||!element.isConnected)return;const labelElement=resolveLabelElementForButton(element,buttonSnapshot.labelElement);const currentLabel=getButtonLabel(element,labelElement);const shouldRestoreLabel=submittedMessagePattern.test(currentLabel)||currentLabel.length>0&&currentLabel!==buttonSnapshot.text&&submittedMessagePattern.test(currentLabel.replace(/[\\u2014-]/g,\" \"));if(shouldRestoreLabel){setButtonLabel(element,buttonSnapshot.text,labelElement);}element.disabled=false;element.removeAttribute(\"aria-busy\");});},[getButtonLabel,resolveButtonForSnapshot,resolveLabelElementForButton,setButtonLabel]);const resetSubmissionState=useCallback(form=>{form.reset();form.dispatchEvent(new Event(\"reset\",{bubbles:true}));clearFormFields(form);restoreSubmitButtons(form);// Best-effort nudge for UI controls that may remain in a busy/success state.\nform.querySelectorAll('button[type=\"submit\"], button:not([type])').forEach(button=>{button.disabled=false;button.removeAttribute(\"aria-busy\");});},[clearFormFields,restoreSubmitButtons]);useEffect(()=>{if(typeof window===\"undefined\")return;const root=rootRef.current;if(!root)return;const forms=new Set;if(root instanceof HTMLFormElement){forms.add(root);}const closestForm=root.closest(\"form\");if(closestForm instanceof HTMLFormElement){forms.add(closestForm);}root.querySelectorAll(\"form\").forEach(form=>{forms.add(form);});if(forms.size===0)return;forms.forEach(form=>{captureButtonState(form);});const onNativeSubmit=event=>{const target=event.target;const form=target instanceof HTMLFormElement&&target||(target instanceof HTMLElement?target.closest(\"form\"):null);if(!(form instanceof HTMLFormElement))return;const timeoutId=window.setTimeout(()=>{clearFormFields(form);},700);timeoutIdsRef.current.push(timeoutId);const resetTimeoutId=window.setTimeout(()=>{resetSubmissionState(form);},4e3);timeoutIdsRef.current.push(resetTimeoutId);const retryRestoreA=window.setTimeout(()=>{resetSubmissionState(form);},4500);timeoutIdsRef.current.push(retryRestoreA);const retryRestoreB=window.setTimeout(()=>{resetSubmissionState(form);},5200);timeoutIdsRef.current.push(retryRestoreB);};forms.forEach(form=>{form.addEventListener(\"submit\",onNativeSubmit);});return()=>{forms.forEach(form=>{form.removeEventListener(\"submit\",onNativeSubmit);});timeoutIdsRef.current.forEach(id=>{window.clearTimeout(id);});timeoutIdsRef.current=[];};},[captureButtonState,clearFormFields,resetSubmissionState]);const handleSubmit=event=>{props.onSubmit?.(event);};return /*#__PURE__*/_jsx(Component,{ref:node=>{rootRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}},...props,onSubmit:handleSubmit});});}\nexport const __FramerMetadata__ = {\"exports\":{\"ResetFormAfterSubmit\":{\"type\":\"reactHoc\",\"name\":\"ResetFormAfterSubmit\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHover\":{\"type\":\"reactHoc\",\"name\":\"withHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRotate\":{\"type\":\"reactHoc\",\"name\":\"withRotate\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRandomColor\":{\"type\":\"reactHoc\",\"name\":\"withRandomColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"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"}