{"version":3,"file":"Examples.DAMJtUPu.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/Sm5gFzATjVqqm3st2ejE/2ts5YZLHCdrItUH7plAf/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\"});// ============================================================\n// MAILCHIMP (unchanged): still adds NEW subscribers to the list.\n// ============================================================\nconst MAILCHIMP_WAITLIST_ACTION=\"https://radiuscore.us14.list-manage.com/subscribe/post?u=15b462c199fdf01737c079ba8&id=0edf030f1a&f_id=00f4bfe5f0\";const MAILCHIMP_WAITLIST_IFRAME_ID=\"mailchimp-waitlist-submit-iframe\";const MAILCHIMP_HONEYPOT_FIELD=\"b_15b462c199fdf01737c079ba8_0edf030f1a\";const MAILCHIMP_SUBMIT_LOCK_MS=1500;const MAILCHIMP_WAITLIST_REDIRECT_PATH=\"/ai-analysis-waitlist-confirmation\";// ============================================================\n// GOOGLE SHEET LOGGER: records EVERY sign-up, new AND existing.\n// This is how you see existing contacts who join the waitlist.\n//\n// SETUP (all in your own Google account, no client access needed):\n// 1. Make a Google Form. Add one short-answer question: Email.\n//    (Optional: add Name, or any other field you want to see.)\n// 2. In the form, click Responses > link it to a Google Sheet.\n//    Every submission now lands in that Sheet with a timestamp.\n// 3. In form Settings: turn OFF \"Limit to 1 response\" and OFF\n//    \"Collect email addresses\". This lets anyone submit.\n// 4. Get the field id and post URL:\n//    - Click the three dots (top right) > \"Get pre-filled link\".\n//    - Type a fake email in the Email box, click \"Get link\", copy it.\n//    - In that link you will see something like entry.1234567=test%40x.com\n//      The number after \"entry.\" is your SHEET_EMAIL_ENTRY below.\n//    - Take the form's normal URL and swap \"/viewform\" for\n//      \"/formResponse\". That is your SHEET_LOGGER_URL below.\n// ============================================================\nconst SHEET_LOGGER_URL=\"https://docs.google.com/forms/d/e/1FAIpQLSfwXDy38ftV90OpCY6wOgt9YMU55Lj889cbWR9f-goYtpqKBg/formResponse\";const SHEET_EMAIL_ENTRY=\"entry.650553680\";// Optional extra fields. Leave as-is if you only capture email.\n// const SHEET_NAME_ENTRY = \"entry.REPLACE_WITH_YOUR_NAME_FIELD_ID\"\nlet mailchimpLastSubmitAt=0;// Sends the sign-up to your Google Sheet. Works for existing contacts\n// because it does not care about Mailchimp status at all.\nasync function logToGoogleSheet(email){if(!SHEET_LOGGER_URL||SHEET_LOGGER_URL.includes(\"REPLACE_WITH_YOUR_FORM_ID\")){console.warn(\"logToGoogleSheet: SHEET_LOGGER_URL not set yet.\");return;}if(!email)return;const body=new URLSearchParams;body.set(SHEET_EMAIL_ENTRY,email);try{// no-cors is required for Google Forms. We cannot read the reply,\n// but the row is still written to the Sheet.\nawait fetch(SHEET_LOGGER_URL,{method:\"POST\",mode:\"no-cors\",headers:{\"Content-Type\":\"application/x-www-form-urlencoded\"},body:body.toString()});}catch(error){console.warn(\"logToGoogleSheet: failed.\",error);}}function getFormEmail(nativeForm){const data=new FormData(nativeForm);let email=data.get(\"EMAIL\");email=email?String(email).trim():\"\";if(!email){const emailInput=nativeForm.querySelector('input[type=\"email\"]');email=emailInput?.value.trim()??\"\";}return email;}function ensureMailchimpIframe(){if(typeof document===\"undefined\")return null;let iframe=document.getElementById(MAILCHIMP_WAITLIST_IFRAME_ID);if(!iframe){iframe=document.createElement(\"iframe\");iframe.id=MAILCHIMP_WAITLIST_IFRAME_ID;iframe.name=MAILCHIMP_WAITLIST_IFRAME_ID;iframe.style.display=\"none\";iframe.setAttribute(\"aria-hidden\",\"true\");document.body.appendChild(iframe);}return iframe;}// Now async: it logs to the Sheet FIRST (so the row is saved before we\n// navigate away), then submits to Mailchimp to add any new subscriber.\nasync function submitMailchimpWaitlistForm(nativeForm,sourceElement,warningPrefix){if(typeof document===\"undefined\")return false;const canReportValidity=typeof nativeForm.reportValidity===\"function\";const isValid=canReportValidity?nativeForm.reportValidity():nativeForm.checkValidity();if(!isValid){return false;}const now=Date.now();if(now-mailchimpLastSubmitAt<MAILCHIMP_SUBMIT_LOCK_MS){return false;}mailchimpLastSubmitAt=now;// 1. Log every sign-up to your Sheet (this is the part that catches\n//    existing contacts). Await it so navigation does not cancel it.\nconst email=getFormEmail(nativeForm);await logToGoogleSheet(email);// 2. Submit to Mailchimp to add new subscribers, same as before.\nconst iframe=ensureMailchimpIframe();if(!iframe)return false;const submitTarget=sourceElement??nativeForm;const handleIframeLoad=()=>{submitTarget.dispatchEvent(new CustomEvent(\"mailchimp:submitSuccess\",{bubbles:true,detail:{success:true}}));if(typeof window!==\"undefined\"){window.location.href=MAILCHIMP_WAITLIST_REDIRECT_PATH;}};iframe.addEventListener(\"load\",handleIframeLoad,{once:true});const data=new FormData(nativeForm);data.set(MAILCHIMP_HONEYPOT_FIELD,\"\");const tempForm=document.createElement(\"form\");tempForm.method=\"POST\";tempForm.action=MAILCHIMP_WAITLIST_ACTION;tempForm.target=iframe.name||MAILCHIMP_WAITLIST_IFRAME_ID;tempForm.style.display=\"none\";data.forEach((value,key)=>{if(value===null||value===undefined)return;const input=document.createElement(\"input\");input.type=\"hidden\";input.name=key;input.value=String(value);tempForm.appendChild(input);});document.body.appendChild(tempForm);try{tempForm.submit();return true;}catch(error){iframe.removeEventListener(\"load\",handleIframeLoad);console.warn(`${warningPrefix}: submit failed.`,error);return false;}finally{tempForm.remove();}}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 withBlogHeadingAnchors(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const elementRef=useRef(null);const setRefs=useCallback(node=>{elementRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},[ref]);useEffect(()=>{if(typeof window===\"undefined\")return;if(typeof document===\"undefined\")return;const root=elementRef.current;if(!root)return;const headingMatchers=[{regex:/^\\s*01\\s*[—-]\\s*background\\b/i,id:\"background\"},{regex:/^\\s*02\\s*[—-]\\s*the\\s+problem\\b/i,id:\"problem\"},{regex:/^\\s*03\\s*[—-]\\s*why\\s+radiuscore\\s+won\\b/i,id:\"why-radiuscore-won\"},{regex:/^\\s*04\\s*[—-]\\s*key\\s+outcomes\\b/i,id:\"key-outcomes\"},{regex:/^\\s*05\\s*[—-]\\s*implementation\\b/i,id:\"implementation\"},{regex:/^\\s*06\\s*[—-]\\s*the\\s+economics\\b/i,id:\"economics\"},{regex:/^\\s*07\\s*[—-]\\s*beyond\\s+workpapers\\b/i,id:\"beyond-workpapers\"},{regex:/^\\s*08\\s*[—-]\\s*is\\s+it\\s+right\\b/i,id:\"is-it-right\"}];let animationFrameId=null;let timeoutId=null;const applyAnchors=()=>{const headings=root.querySelectorAll(\"h1, h2, h3, h4, h5, h6\");headings.forEach(heading=>{const text=heading.textContent?.trim()??\"\";const match=headingMatchers.find(({regex})=>regex.test(text));if(!match)return;heading.id=match.id;heading.style.scrollMarginTop=\"110px\";});};const scheduleApplyAnchors=()=>{if(timeoutId!==null){window.clearTimeout(timeoutId);}if(animationFrameId!==null){window.cancelAnimationFrame(animationFrameId);}timeoutId=window.setTimeout(()=>{animationFrameId=window.requestAnimationFrame(()=>{applyAnchors();});},50);};scheduleApplyAnchors();const observer=new MutationObserver(()=>{scheduleApplyAnchors();});observer.observe(root,{childList:true,subtree:true,characterData:true});return()=>{observer.disconnect();if(timeoutId!==null){window.clearTimeout(timeoutId);}if(animationFrameId!==null){window.cancelAnimationFrame(animationFrameId);}};},[]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...props});});}export function withBlogTableOfContentsClicks(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const elementRef=useRef(null);const setRefs=useCallback(node=>{elementRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},[ref]);useEffect(()=>{if(typeof window===\"undefined\")return;if(typeof document===\"undefined\")return;const root=elementRef.current;if(!root)return;const sectionTargets=[{number:\"01\",id:\"background\",regex:/^\\s*01\\s*[—-]\\s*background\\b/i},{number:\"02\",id:\"problem\",regex:/^\\s*02\\s*[—-]\\s*the\\s+problem\\b/i},{number:\"03\",id:\"why-radiuscore-won\",regex:/^\\s*03\\s*[—-]\\s*why\\s+radiuscore\\s+won\\b/i},{number:\"04\",id:\"key-outcomes\",regex:/^\\s*04\\s*[—-]\\s*key\\s+outcomes\\b/i},{number:\"05\",id:\"implementation\",regex:/^\\s*05\\s*[—-]\\s*implementation\\b/i},{number:\"06\",id:\"economics\",regex:/^\\s*06\\s*[—-]\\s*the\\s+economics\\b/i},{number:\"07\",id:\"beyond-workpapers\",regex:/^\\s*07\\s*[—-]\\s*beyond\\s+workpapers\\b/i},{number:\"08\",id:\"is-it-right\",regex:/^\\s*08\\s*[—-]\\s*is\\s+it\\s+right\\b/i}];const clickables=[];const candidates=[root,...Array.from(root.querySelectorAll(\"*\"))];candidates.forEach(element=>{const text=element.innerText?.trim()??\"\";const sectionMatch=sectionTargets.find(({regex})=>regex.test(text));if(!sectionMatch)return;const hasMatchingDescendant=Array.from(element.querySelectorAll(\"*\")).some(descendant=>{const descendantText=descendant.innerText?.trim()??\"\";return sectionTargets.some(({regex})=>regex.test(descendantText));});if(hasMatchingDescendant)return;const handler=event=>{event.preventDefault();event.stopPropagation();const targetById=document.getElementById(sectionMatch.id);const target=targetById??Array.from(document.querySelectorAll(\"h1, h2, h3, h4, h5, h6\")).find(heading=>{const headingText=heading.textContent?.trim()??\"\";return headingText.startsWith(sectionMatch.number)&&sectionMatch.regex.test(headingText);});if(!target)return;const top=target.getBoundingClientRect().top+window.scrollY-110;window.scrollTo({top,behavior:\"smooth\"});};const previousCursor=element.style.cursor;element.style.cursor=\"pointer\";element.addEventListener(\"click\",handler);clickables.push({element,handler,previousCursor});});return()=>{clickables.forEach(({element,handler,previousCursor})=>{element.removeEventListener(\"click\",handler);element.style.cursor=previousCursor;});};},[]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...props});});}export function withMailchimpWaitlistSubmit(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const formRef=useRef(null);const setRefs=useCallback(node=>{formRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},[ref]);const handleSubmit=useCallback(event=>{event.preventDefault?.();const nativeForm=formRef.current;if(!nativeForm){console.warn(\"withMailchimpWaitlistSubmit: form element not found.\");return;}submitMailchimpWaitlistForm(nativeForm,nativeForm,\"withMailchimpWaitlistSubmit\");},[]);useEffect(()=>{const formElement=formRef.current;if(!formElement)return;const handleNativeSubmit=event=>{handleSubmit(event);};formElement.addEventListener(\"submit\",handleNativeSubmit);return()=>{formElement.removeEventListener(\"submit\",handleNativeSubmit);};},[handleSubmit]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...props,onSubmit:handleSubmit});});}export function withMailchimpWaitlistButtonSubmit(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const buttonRef=useRef(null);const setRefs=useCallback(node=>{buttonRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},[ref]);const handlePress=useCallback(async event=>{event?.preventDefault?.();event?.stopPropagation?.();const sourceButton=(event?.currentTarget)??buttonRef.current;const form=sourceButton?.closest(\"form\")??null;if(!form){console.warn(\"withMailchimpWaitlistButtonSubmit: no parent form.\");return;}const didSubmit=await submitMailchimpWaitlistForm(form,sourceButton,\"withMailchimpWaitlistButtonSubmit\");if(!didSubmit)return;if(typeof props.onClick===\"function\"){props.onClick(event);}if(typeof props.onTap===\"function\"){props.onTap(event);}},[props]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...props,onClick:handlePress,onTap:handlePress});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withMailchimpWaitlistButtonSubmit\":{\"type\":\"reactHoc\",\"name\":\"withMailchimpWaitlistButtonSubmit\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withBlogTableOfContentsClicks\":{\"type\":\"reactHoc\",\"name\":\"withBlogTableOfContentsClicks\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withBlogHeadingAnchors\":{\"type\":\"reactHoc\",\"name\":\"withBlogHeadingAnchors\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRotate\":{\"type\":\"reactHoc\",\"name\":\"withRotate\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRandomColor\":{\"type\":\"reactHoc\",\"name\":\"withRandomColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMailchimpWaitlistSubmit\":{\"type\":\"reactHoc\",\"name\":\"withMailchimpWaitlistSubmit\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHover\":{\"type\":\"reactHoc\",\"name\":\"withHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"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"}