{"version":3,"file":"EmailOverride.CIsT2coA.mjs","names":["__legacyOverrideHOC_DataObserverContext","_jsx","useState","useRef"],"sources":["https:/framerusercontent.com/modules/ehWX53aOKqnQZHO44mbU/e9gHMAsHXSrxAHijPQPy/EmailOverride.js"],"sourcesContent":["// EmailOverride.tsx\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";const KEY=\"userEmail\";const PLACEHOLDER=\"EMAIL\";// ---- storage helpers\nconst getStoredEmail=()=>{const qs=new URLSearchParams(window.location.search).get(\"email\")?.trim()||\"\";if(qs)return qs;try{return(localStorage.getItem(KEY)||\"\").trim();}catch{return\"\";}};const setStoredEmail=email=>{try{const v=email.trim();if(v)localStorage.setItem(KEY,v);else localStorage.removeItem(KEY);}catch{}};// (optional) hero capture button\nexport const CaptureAndRedirect=()=>({onClick:()=>{const input=document.querySelector('input[name=\"hero-email\"]');const email=input?.value?.trim()||\"\";if(!email)return;setStoredEmail(email);const next=new URL(\"/contact\",window.location.origin);next.searchParams.set(\"email\",email);window.location.href=next.toString();}});export const CaptureAndRedirectFooter=()=>({onClick:()=>{const input=document.querySelector('input[name=\"cta-email\"]');const email=input?.value?.trim()||\"\";if(!email)return;setStoredEmail(email);const next=new URL(\"/contact\",window.location.origin);next.searchParams.set(\"email\",email);window.location.href=next.toString();}});// Attach to the Email input on /contact\nexport const PrefillEmailInput=()=>{const[value,setValue]=useState(\"\");const appliedOnceRef=useRef(false);const observerRef=useRef(null);// 1) init from storage/query once\nuseEffect(()=>{setValue(getStoredEmail());},[]);// 2) keep in sync if another tab writes\nuseEffect(()=>{const onStorage=e=>{if(e.key===KEY)setValue((e.newValue||\"\").trim());};window.addEventListener(\"storage\",onStorage);return()=>window.removeEventListener(\"storage\",onStorage);},[]);// 3) DOM fallback: set the real input's value once if it rendered empty.\nuseEffect(()=>{// Nothing to prefill\nif(!value)return;const selectEmailInput=()=>{// If your field uses a different name, change the selector here:\nreturn document.querySelector('input[name=\"email\"]')||document.querySelector('input[type=\"email\"]')||document.querySelector('input[placeholder=\"EMAIL\"]');};const applyIfNeeded=()=>{const el=selectEmailInput();if(!el)return false;// Don’t fight the user: only prefill if still empty and not focused.\nif(el.value===\"\"&&document.activeElement!==el){el.value=value;// notify any internal listeners\nel.dispatchEvent(new Event(\"input\",{bubbles:true}));el.dispatchEvent(new Event(\"change\",{bubbles:true}));return true;}return false;};// Try immediately\nconst applied=applyIfNeeded();if(applied){appliedOnceRef.current=true;return;}// If not found or not ready yet, observe and try again once\nif(!observerRef.current){observerRef.current=new MutationObserver(()=>{if(appliedOnceRef.current)return;const ok=applyIfNeeded();if(ok){appliedOnceRef.current=true;observerRef.current?.disconnect();observerRef.current=null;}});observerRef.current.observe(document.body,{childList:true,subtree:true});}return()=>{observerRef.current?.disconnect();observerRef.current=null;};},[value]);// 4) set placeholder attribute reliably (some components ignore prop)\nuseEffect(()=>{const el=document.querySelector('input[name=\"email\"]')||document.querySelector('input[type=\"email\"]');if(el)el.setAttribute(\"placeholder\",PLACEHOLDER);},[]);// 5) Controlled props for smooth typing (no focus loss)\nreturn{value,placeholder:PLACEHOLDER,onChange:e=>setValue(e?.target?.value??\"\"),onValueChange:v=>setValue(v??\"\"),onTextChange:v=>setValue(v??\"\"),onBlur:()=>setStoredEmail(value),inputMode:\"email\",autoComplete:\"email\",name:\"email\"};};import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withCaptureAndRedirect(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...CaptureAndRedirect(props)});};}withCaptureAndRedirect.displayName=\"CaptureAndRedirect\";export function withCaptureAndRedirectFooter(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...CaptureAndRedirectFooter(props)});};}withCaptureAndRedirectFooter.displayName=\"CaptureAndRedirectFooter\";export function withPrefillEmailInput(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...PrefillEmailInput(props)});};}withPrefillEmailInput.displayName=\"PrefillEmailInput\";\nexport const __FramerMetadata__ = {\"exports\":{\"CaptureAndRedirect\":{\"type\":\"override\",\"name\":\"CaptureAndRedirect\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPrefillEmailInput\":{\"type\":\"reactHoc\",\"name\":\"withPrefillEmailInput\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCaptureAndRedirectFooter\":{\"type\":\"reactHoc\",\"name\":\"withCaptureAndRedirectFooter\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CaptureAndRedirectFooter\":{\"type\":\"override\",\"name\":\"CaptureAndRedirectFooter\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PrefillEmailInput\":{\"type\":\"override\",\"name\":\"PrefillEmailInput\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCaptureAndRedirect\":{\"type\":\"reactHoc\",\"name\":\"withCaptureAndRedirect\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EmailOverride.map"],"mappings":"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"}