{"version":3,"file":"Examples.CzOSIMko.mjs","names":["useState","useRef","useMemo","_Fragment","useCallback","useState"],"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/VVcQbLyVIBUAwlKrnQSV/CiJQLI8Atq6qoNh8E2UM/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,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";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{forwardRef,startTransition,useCallback,useEffect,useMemo,useRef,useState}from\"react\";// Learn more: https://www.framer.com/developers/overrides/\nconst useStore=createStore({background:\"#0099FF\",blogVisibleCount:6,blogTotalCount:null});const BLOG_LOAD_MORE_STEP=6;const BLOG_INITIAL_VISIBLE_COUNT=6;const BLOG_LOAD_MORE_SCOPE_PREFIX=\"blog-load-more-grid-scope\";export function withBlogLoadMoreGrid(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store,setStore]=useStore();const localRef=useRef(null);const scopeClass=useMemo(()=>`${BLOG_LOAD_MORE_SCOPE_PREFIX}-${Math.random().toString(36).slice(2,9)}`,[]);useEffect(()=>{if(typeof window===\"undefined\")return;const root=localRef.current;if(!root)return;const ensureVisibleCount=()=>{if(store.blogVisibleCount!==BLOG_INITIAL_VISIBLE_COUNT)return;setStore({blogVisibleCount:BLOG_INITIAL_VISIBLE_COUNT});};const updateTotalCount=()=>{const total=root.children.length;if(store.blogTotalCount===total)return;setStore({blogTotalCount:total});};ensureVisibleCount();updateTotalCount();const observer=new MutationObserver(()=>{updateTotalCount();});observer.observe(root,{childList:true});return()=>{observer.disconnect();};},[setStore,store.blogTotalCount,store.blogVisibleCount]);const visibleCount=Math.max(BLOG_INITIAL_VISIBLE_COUNT,store.blogVisibleCount||BLOG_INITIAL_VISIBLE_COUNT);const className=[props.className,scopeClass].filter(Boolean).join(\" \");return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                    .${scopeClass}[data-blog-load-more-grid=\"true\"] > *:nth-child(n + ${visibleCount+1}) {\n                        display: none !important;\n                    }\n                `}),/*#__PURE__*/_jsx(Component,{...props,ref:node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},className:className,\"data-blog-load-more-grid\":\"true\",style:{...props.style}})]});});}export function withBlogLoadMoreButton(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store,setStore]=useStore();const onClick=useCallback(event=>{setStore({blogVisibleCount:(store.blogVisibleCount||BLOG_INITIAL_VISIBLE_COUNT)+BLOG_LOAD_MORE_STEP});if(typeof props.onClick===\"function\"){props.onClick(event);}},[props,setStore,store.blogVisibleCount]);const shouldHide=typeof store.blogTotalCount===\"number\"&&store.blogTotalCount>0&&(store.blogVisibleCount||BLOG_INITIAL_VISIBLE_COUNT)>=store.blogTotalCount;return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:onClick,\"aria-hidden\":shouldHide?true:props[\"aria-hidden\"],style:{...props.style,display:shouldHide?\"none\":props.style?.display}});});}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()});}});});}const COMPACT_CARD_PADDING=24;const ROOT_CLASS_PREFIX=\"compact-equal-review-cards\";export function withCompactEqualReviewCards(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const localRef=useRef(null);const scopeClass=useMemo(()=>`${ROOT_CLASS_PREFIX}-${Math.random().toString(36).slice(2,9)}`,[]);useEffect(()=>{const root=localRef.current;if(!root)return;const cardLikeNodes=root.querySelectorAll([\"div > div\",\"[class*='card']\",\"[class*='review']\",\"[class*='slide']\",\"[class*='item']\",\"[data-card]\",\"[data-slide]\",\"[data-review]\",\"article\",\"li\",\"[role='group'] > div\"].join(\",\"));cardLikeNodes.forEach(el=>{const cs=window.getComputedStyle(el);const hasCardShape=parseFloat(cs.borderRadius||\"0\")>0||cs.borderStyle!==\"none\"||cs.backgroundColor!==\"rgba(0, 0, 0, 0)\";if(!hasCardShape)return;el.style.boxSizing=\"border-box\";el.style.padding=`${COMPACT_CARD_PADDING}px`;el.style.height=\"240px\";el.style.minHeight=\"240px\";el.style.maxHeight=\"240px\";el.style.display=\"flex\";el.style.flexDirection=\"column\";el.style.justifyContent=\"space-between\";});},[props]);const className=[props.className,scopeClass].filter(Boolean).join(\" \");return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                    .${scopeClass} [class*=\"card\"],\n                    .${scopeClass} [class*=\"review\"],\n                    .${scopeClass} [class*=\"slide\"],\n                    .${scopeClass} [class*=\"item\"],\n                    .${scopeClass} [data-card],\n                    .${scopeClass} [data-slide],\n                    .${scopeClass} [data-review],\n                    .${scopeClass} article,\n                    .${scopeClass} li,\n                    .${scopeClass} div > div {\n                        box-sizing: border-box !important;\n                        padding: 24px !important;\n                        height: 240px !important;\n                        min-height: 240px !important;\n                        max-height: 240px !important;\n                        display: flex !important;\n                        flex-direction: column !important;\n                        justify-content: space-between !important;\n                    }\n                `}),/*#__PURE__*/_jsx(Component,{...props,ref:node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},className:className,style:{...props.style}})]});});}const RADIO_SCOPE_PREFIX=\"checked-radio-icon-scope\";const CONSENT_CHECKBOX_SCOPE_PREFIX=\"larger-consent-checkbox-scope\";export function withCheckedRadioIcon(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const scopeId=useMemo(()=>`${RADIO_SCOPE_PREFIX}-${Math.random().toString(36).slice(2,9)}`,[]);const className=[props.className,scopeId].filter(Boolean).join(\" \");return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                    .${scopeId} input[type=\"radio\"] {\n                        -webkit-appearance: none;\n                        appearance: none;\n                        width: 18px;\n                        height: 18px;\n                        border-radius: 999px;\n                        border: 1px solid rgba(0, 0, 0, 0.22);\n                        background-color: rgba(0, 0, 0, 0.03);\n                        background-repeat: no-repeat;\n                        background-position: center;\n                        background-size: 12px 12px;\n                        margin: 0;\n                        cursor: pointer;\n                        vertical-align: middle;\n                        transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;\n                    }\n\n                    .${scopeId} input[type=\"radio\"]:checked {\n                        border-color: #5924EF;\n                        background-color: #5924EF;\n                        background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.2 5.7 10 11 4.8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n                    }\n\n                    .${scopeId} input[type=\"radio\"]:focus-visible {\n                        outline: none;\n                        box-shadow: 0 0 0 2px rgba(15, 15, 15, 0.16);\n                    }\n                `}),/*#__PURE__*/_jsx(Component,{ref:ref,...props,className:className,\"data-radio-scope\":scopeId,style:{...props.style}})]});});}export function withLargerConsentCheckbox(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const scopeId=useMemo(()=>`${CONSENT_CHECKBOX_SCOPE_PREFIX}-${Math.random().toString(36).slice(2,9)}`,[]);const className=[props.className,scopeId].filter(Boolean).join(\" \");return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                    .${scopeId} input[type=\"checkbox\"] {\n                        width: 26px !important;\n                        height: 26px !important;\n                        min-width: 26px !important;\n                        flex-shrink: 0;\n                        margin: 0;\n                        margin-top: 1px;\n                        cursor: pointer;\n                    }\n\n                    .${scopeId} > *,\n                    .${scopeId} > * > *,\n                    .${scopeId} > div,\n                    .${scopeId} label {\n                        display: flex !important;\n                        flex-direction: row !important;\n                        flex-wrap: nowrap !important;\n                        align-items: flex-start !important;\n                        gap: 8px;\n                    }\n\n                    .${scopeId} :not(input) {\n                        min-width: 0;\n                        text-align: left;\n                    }\n                `}),/*#__PURE__*/_jsx(Component,{ref:ref,...props,className:className,style:{...props.style}})]});});}export function withPersistentScrolledNavBackground(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[isScrolled,setIsScrolled]=useState(false);const threshold=8;const updateScrollState=useCallback(()=>{if(typeof window===\"undefined\")return;const nextIsScrolled=window.scrollY>threshold;startTransition(()=>{setIsScrolled(prev=>prev===nextIsScrolled?prev:nextIsScrolled);});},[]);useEffect(()=>{if(typeof window===\"undefined\")return;updateScrollState();window.addEventListener(\"scroll\",updateScrollState,{passive:true});return()=>{window.removeEventListener(\"scroll\",updateScrollState);};},[updateScrollState]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props,style:{...props.style,zIndex:1e3,backgroundColor:isScrolled?\"rgba(255, 255, 255, 1)\":\"transparent\",backdropFilter:isScrolled?\"blur(10px)\":\"blur(0px)\",WebkitBackdropFilter:isScrolled?\"blur(10px)\":\"blur(0px)\",transition:\"background-color 180ms ease, backdrop-filter 180ms ease, -webkit-backdrop-filter 180ms ease\"}});});}const CONTACT_WEBHOOK_URL=\"https://ooodles-api.onrender.com/webhooks/framer/contact\";const NEWSLETTER_WEBHOOK_URL=\"https://ooodles-api.onrender.com/webhooks/framer/newsletter\";function formDataToPayload(formData){return formDataToPayloadWithFallback(formData,\"Newsletter\");}function formDataToPayloadWithFallback(formData,fallbackSourcePage){const payload=Object.fromEntries(formData.entries());const sourcePage=payload.source_page;if(sourcePage===undefined||sourcePage===null||String(sourcePage).trim()===\"\"){payload.source_page=fallbackSourcePage;}if(typeof window!==\"undefined\"){const params=new URLSearchParams(window.location.search);payload.utm_source=params.get(\"utm_source\")||\"\";payload.utm_medium=params.get(\"utm_medium\")||\"\";payload.utm_campaign=params.get(\"utm_campaign\")||\"\";payload.utm_term=params.get(\"utm_term\")||\"\";payload.utm_content=params.get(\"utm_content\")||\"\";}return payload;}function cleanTrackingValue(value){return String(value??\"\").trim();}function getTrackingValue(payload,fieldNames){for(const fieldName of fieldNames){const value=cleanTrackingValue(payload[fieldName]);if(value)return value;}const normalizedFieldNames=fieldNames.map(fieldName=>fieldName.replace(/[^a-z0-9]/gi,\"\").toLowerCase());for(const[fieldName,rawValue]of Object.entries(payload)){const normalizedFieldName=fieldName.replace(/[^a-z0-9]/gi,\"\").toLowerCase();const isMatchingField=normalizedFieldNames.some(targetFieldName=>normalizedFieldName===targetFieldName||normalizedFieldName.includes(targetFieldName));if(!isMatchingField)continue;const value=cleanTrackingValue(rawValue);if(value)return value;}return\"\";}function pushGetStartedLeadTracking(payload){if(typeof window===\"undefined\")return Promise.resolve();const email=getTrackingValue(payload,[\"business_email\",\"email\",\"work_email\"]);const phoneNumber=getTrackingValue(payload,[\"phone\",\"phone_number\",\"phoneNumber\",\"telephone\",\"__phone\"]);const firstName=getTrackingValue(payload,[\"first_name\",\"firstName\"]);const lastName=getTrackingValue(payload,[\"last_name\",\"lastName\"]);const trackingPayload={email,phone_number:phoneNumber};return new Promise(resolve=>{let isResolved=false;const resolveOnce=()=>{if(isResolved)return;isResolved=true;window.clearTimeout(timeoutId);resolve();};const timeoutId=window.setTimeout(resolveOnce,750);(window.dataLayer=window.dataLayer||[]).push({event:\"ec_formsubmit\",source_page:cleanTrackingValue(payload.source_page)||\"Get Started\",enhanced_conversion_data:trackingPayload,user_data:{...trackingPayload,address:{first_name:firstName,last_name:lastName}},eventCallback:resolveOnce,eventTimeout:750});});}function setLoadingState(submitElement,label){if(!submitElement)return null;const previousTextContent=submitElement.textContent;const previousPointerEvents=submitElement.style.pointerEvents;const previousOpacity=submitElement.style.opacity;const previousAriaDisabled=submitElement.getAttribute(\"aria-disabled\");const isNativeButton=submitElement instanceof HTMLButtonElement||submitElement instanceof HTMLInputElement;const previousDisabled=isNativeButton?submitElement.disabled:undefined;const previousInputValue=submitElement instanceof HTMLInputElement?submitElement.value:null;if(submitElement instanceof HTMLInputElement){submitElement.value=label;}else{submitElement.textContent=label;}submitElement.style.pointerEvents=\"none\";submitElement.style.opacity=\"0.7\";submitElement.setAttribute(\"aria-disabled\",\"true\");if(isNativeButton){submitElement.disabled=true;}return()=>{if(submitElement instanceof HTMLInputElement){submitElement.value=previousInputValue??\"\";}else if(previousTextContent!==null){submitElement.textContent=previousTextContent;}submitElement.style.pointerEvents=previousPointerEvents;submitElement.style.opacity=previousOpacity;if(previousAriaDisabled===null){submitElement.removeAttribute(\"aria-disabled\");}else{submitElement.setAttribute(\"aria-disabled\",previousAriaDisabled);}if(isNativeButton&&previousDisabled!==undefined){submitElement.disabled=previousDisabled;}};}function resolveSubmitElement(form,candidate){if(candidate)return candidate;return Array.from(form.querySelectorAll(\"button[type='submit'], button:not([type]), input[type='submit'], [role='button']\")).find(element=>isFormSubmitTrigger(form,element))??null;}// Framer renders the phone field's country picker (and other pickers/toggles)\n// as a type-less <button>, which both counts as an implicit submit button and\n// matches the click selectors below. Clicking the country code therefore ran\n// full-form validation and painted every error message before the user had\n// touched anything. These controls must never be treated as a submit trigger.\nconst NON_SUBMIT_ROLES=new Set([\"combobox\",\"listbox\",\"option\",\"menu\",\"menubar\",\"menuitem\",\"menuitemradio\",\"menuitemcheckbox\",\"radio\",\"checkbox\",\"switch\",\"tab\",\"tablist\",\"dialog\"]);const NON_SUBMIT_LABEL_PATTERN=/(country|dial|calling code|area code|flag|prefix|select|selector|dropdown|picker|combobox|toggle|chevron|caret|arrow|expand|collapse|clear|reset|close|dismiss|cancel|search)/;function getOwnControlSignature(element){return[element.getAttribute(\"name\"),element.getAttribute(\"id\"),element.getAttribute(\"aria-label\"),element.getAttribute(\"title\"),element.getAttribute(\"data-framer-name\"),typeof element.className===\"string\"?element.className:\"\",(element.textContent||\"\").slice(0,60)].filter(Boolean).join(\" \").toLowerCase();}function isInsidePhoneField(form,element){const phoneControls=getPhoneControls(form);if(phoneControls.length===0)return false;// Start at the element itself: Framer sometimes gives the wrapper that holds\n// the country selector and the number input the role/button shape, so the\n// clicked element can be the phone field container rather than a child of it.\nlet ancestor=element;let depth=0;// Only look at the immediate field wrapper, not the whole form, otherwise\n// the real submit button would be excluded too.\nwhile(ancestor&&ancestor!==form&&depth<5){if(phoneControls.some(control=>ancestor.contains(control))){return true;}ancestor=ancestor.parentElement;depth+=1;}return false;}function isFormSubmitTrigger(form,element){if(!element)return false;if(element instanceof HTMLButtonElement||element instanceof HTMLInputElement){if(element.type===\"button\"||element.type===\"reset\")return false;if(element.disabled)return false;}// An explicit submit control is always a submit trigger.\nif((element instanceof HTMLButtonElement||element instanceof HTMLInputElement)&&element.type===\"submit\"){return true;}// The submit control lives inside the form. Dropdown panels (the country\n// list, for instance) are often portalled elsewhere in the DOM, and clicking\n// one of their entries must never be read as a submission.\nif(!form.contains(element))return false;const role=element.getAttribute(\"role\");if(role&&NON_SUBMIT_ROLES.has(role))return false;if(element.closest(\"select, [role='combobox'], [role='listbox'], [role='menu'], [role='dialog'], [role='option'], [aria-haspopup], [aria-expanded]\")){return false;}// A submit control never wraps form fields. A country picker, a field\n// wrapper, or the form's own container always does — so anything holding an\n// input/select/textarea is a picker or layout node, not a submission.\nif(element.querySelector(\"input, select, textarea\"))return false;if(NON_SUBMIT_LABEL_PATTERN.test(getOwnControlSignature(element))){return false;}if(isInsidePhoneField(form,element))return false;return true;}const VALIDATION_STYLE_ID=\"framer-clean-validation-styles\";const FIELD_ERROR_GAP=36;const PHONE_FIELD_KEY=\"__phone\";const MESSAGE_FIELD_KEY=\"__message\";const EMPLOYEE_FIELD_KEY=\"__employees\";const formsWithLiveValidationListeners=new WeakSet;function isSkippableFormControl(input){return input.type===\"hidden\"||input.type===\"button\"||input.type===\"submit\"||input.type===\"reset\";}function isEmptyRequiredValue(input){if(input instanceof HTMLInputElement){if(input.type===\"checkbox\"||input.type===\"radio\"){return!input.checked;}}return input.value.trim()===\"\";}function getFieldKey(input){return input.name||input.id||input.type;}function getControlsForField(form,fieldName){if(fieldName===PHONE_FIELD_KEY){return getPhoneControls(form);}if(fieldName===MESSAGE_FIELD_KEY){return getMessageControls(form);}if(fieldName===EMPLOYEE_FIELD_KEY){return getEmployeeRadioControls(form);}return Array.from(form.querySelectorAll(\"input, select, textarea\")).filter(control=>control.name===fieldName||control.id===fieldName||control.type===fieldName);}function getFieldMessageTarget(form,controls,fieldName){const visibleControls=controls.filter(control=>{const styles=window.getComputedStyle(control);return styles.display!==\"none\"&&styles.visibility!==\"hidden\";});const targetControls=visibleControls.length>0?visibleControls:controls;if(targetControls.length===0){const headingText=fieldName===PHONE_FIELD_KEY?\"Phone\":fieldName===MESSAGE_FIELD_KEY?\"Message\":fieldName===EMPLOYEE_FIELD_KEY?\"How many employees do you have?\":\"\";const heading=headingText?getSectionHeading(form,headingText):null;if(!heading)return null;let anchor=heading;let parent=heading.parentElement;while(parent&&parent!==form){const parentRect=parent.getBoundingClientRect();if(parentRect.width>=heading.getBoundingClientRect().width&&parentRect.height<=420){anchor=parent;}parent=parent.parentElement;}return anchor;}const formRect=form.getBoundingClientRect();const targets=targetControls.map(control=>{const controlRect=control.getBoundingClientRect();let anchor=control;let parent=control.parentElement;let bestWidth=controlRect.width;while(parent&&parent!==form){const parentRect=parent.getBoundingClientRect();const parentIsInsideForm=parentRect.left>=formRect.left-1&&parentRect.right<=formRect.right+1;const parentIsFieldSized=parentRect.width>=bestWidth&&parentRect.width<=formRect.width*.98&&parentRect.height<=Math.max(140,controlRect.height+80);if(parentIsInsideForm&&parentIsFieldSized){anchor=parent;bestWidth=parentRect.width;}parent=parent.parentElement;}return{anchor,rect:anchor.getBoundingClientRect()};});// Phone is rendered as a country selector plus a number input. Use the\n// left-most wrapper so its message starts with the rest of the section.\nconst target=fieldName===PHONE_FIELD_KEY?targets.sort((a,b)=>a.rect.left-b.rect.left)[0]?.anchor:targets[targets.length-1]?.anchor;if(!target)return null;if(target instanceof HTMLInputElement||target instanceof HTMLSelectElement||target instanceof HTMLTextAreaElement){return target.parentElement;}return target;}function applyFieldErrorSpacing(anchor,fieldName){if(!anchor.dataset.errorPreviousMarginBottom){anchor.dataset.errorPreviousMarginBottom=anchor.style.marginBottom;}if(!anchor.dataset.errorPreviousPosition){anchor.dataset.errorPreviousPosition=anchor.style.position;}if(!anchor.dataset.errorPreviousOverflow){anchor.dataset.errorPreviousOverflow=anchor.style.overflow;}if(window.getComputedStyle(anchor).position===\"static\"){anchor.style.position=\"relative\";}anchor.setAttribute(\"data-error-spacing\",\"true\");anchor.dataset.errorSpacingKey=fieldName;anchor.style.marginBottom=`${FIELD_ERROR_GAP}px`;anchor.style.overflow=\"visible\";}function clearFieldErrorSpacing(anchor){anchor.removeAttribute(\"data-error-spacing\");delete anchor.dataset.errorSpacingKey;anchor.style.marginBottom=anchor.dataset.errorPreviousMarginBottom||\"\";anchor.style.position=anchor.dataset.errorPreviousPosition||\"\";delete anchor.dataset.errorPreviousMarginBottom;delete anchor.dataset.errorPreviousPosition;anchor.style.overflow=anchor.dataset.errorPreviousOverflow||\"\";delete anchor.dataset.errorPreviousOverflow;}function addFieldErrorMessage(form,fieldName,controls,message){const formStyle=window.getComputedStyle(form);if(formStyle.position===\"static\"){form.style.position=\"relative\";}const anchor=getFieldMessageTarget(form,controls,fieldName);if(!anchor)return;const errorMessage=document.createElement(\"div\");errorMessage.className=\"form-error-message form-error-message-floating\";errorMessage.setAttribute(\"role\",\"alert\");errorMessage.dataset.fieldError=fieldName;errorMessage.textContent=message;applyFieldErrorSpacing(anchor,fieldName);anchor.appendChild(errorMessage);}function refreshFormErrorLayout(form){const messages=Array.from(form.querySelectorAll(\".form-error-message\"));form.querySelectorAll('[data-error-spacing=\"true\"]').forEach(el=>{clearFieldErrorSpacing(el);});messages.forEach(message=>{const fieldName=message.dataset.fieldError;if(!fieldName)return;const anchor=getFieldMessageTarget(form,getControlsForField(form,fieldName),fieldName);if(!anchor)return;applyFieldErrorSpacing(anchor,fieldName);anchor.appendChild(message);});}function clearFieldError(form,fieldName){getControlsForField(form,fieldName).forEach(input=>{input.removeAttribute(\"data-error\");input.removeAttribute(\"aria-invalid\");input.style.borderColor=\"\";input.style.boxShadow=\"\";});form.querySelectorAll(\".form-error-message\").forEach(message=>{if(message.dataset.fieldError===fieldName){message.remove();}});form.querySelectorAll('[data-error-spacing=\"true\"]').forEach(el=>{if(el.dataset.errorSpacingKey===fieldName){clearFieldErrorSpacing(el);}});if(!form.querySelector(\".form-error-message\")){form.querySelectorAll(\".form-error-banner\").forEach(el=>el.remove());return;}refreshFormErrorLayout(form);}function ensureLiveValidationClear(form){if(formsWithLiveValidationListeners.has(form))return;formsWithLiveValidationListeners.add(form);const clearChangedField=event=>{const target=event.target;if(!(target instanceof HTMLInputElement)&&!(target instanceof HTMLSelectElement)&&!(target instanceof HTMLTextAreaElement)){return;}if(isSkippableFormControl(target))return;if(target instanceof HTMLInputElement&&target.type===\"radio\"&&isEmployeeRadioOption(target)){clearFieldError(form,EMPLOYEE_FIELD_KEY);return;}if(getPhoneControls(form).includes(target)){clearFieldError(form,PHONE_FIELD_KEY);return;}if(getMessageControls(form).includes(target)){clearFieldError(form,MESSAGE_FIELD_KEY);return;}clearFieldError(form,getFieldKey(target));};form.addEventListener(\"input\",clearChangedField,true);form.addEventListener(\"change\",clearChangedField,true);}function ensureValidationStyles(){if(typeof document===\"undefined\")return;if(document.getElementById(VALIDATION_STYLE_ID))return;const styleSheet=document.createElement(\"style\");styleSheet.id=VALIDATION_STYLE_ID;styleSheet.textContent=`\n        .form-error-banner {\n            box-sizing: border-box;\n            width: 100%;\n            margin: 0 0 18px 0;\n            padding: 14px 16px;\n            border: 1px solid rgba(220, 38, 38, 0.22);\n            border-radius: 8px;\n            background: #fff7f7;\n            color: #7f1d1d;\n            display: grid;\n            grid-template-columns: 20px minmax(0, 1fr);\n            gap: 10px;\n            align-items: start;\n            font-family: inherit;\n            box-shadow: 0 10px 24px rgba(127, 29, 29, 0.08);\n            animation: framerValidationIn 180ms ease-out;\n        }\n\n        .form-error-banner svg {\n            width: 18px;\n            height: 18px;\n            margin-top: 1px;\n            flex-shrink: 0;\n        }\n\n        .form-error-banner-title {\n            margin: 0;\n            color: #7f1d1d;\n            font-size: 14px;\n            line-height: 1.35;\n            font-weight: 650;\n        }\n\n        .form-error-banner-text {\n            margin: 4px 0 0 0;\n            color: #991b1b;\n            font-size: 13px;\n            line-height: 1.45;\n            font-weight: 450;\n        }\n\n        .form-error-list {\n            margin: 6px 0 0 0;\n            padding-left: 17px;\n            color: #991b1b;\n            font-size: 13px;\n            line-height: 1.45;\n            font-weight: 450;\n        }\n\n        .form-error-list li {\n            margin: 2px 0;\n        }\n\n        .form-error-message {\n            box-sizing: border-box;\n            color: #dc2626;\n            font-family: inherit;\n            font-size: 12px;\n            line-height: 1.35;\n            font-weight: 500;\n            white-space: normal;\n            word-break: normal;\n            overflow-wrap: break-word;\n            animation: framerValidationIn 160ms ease-out;\n        }\n\n        .form-error-message-floating {\n            position: absolute;\n            z-index: 4;\n            top: calc(100% + 10px);\n            left: 0;\n            width: 100%;\n            margin: 0;\n            pointer-events: none;\n        }\n\n        @keyframes framerValidationIn {\n            from {\n                opacity: 0;\n                transform: translateY(-6px);\n            }\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n    `;document.head.appendChild(styleSheet);}function createErrorIcon(){const icon=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");icon.setAttribute(\"viewBox\",\"0 0 24 24\");icon.setAttribute(\"fill\",\"none\");icon.setAttribute(\"stroke\",\"currentColor\");icon.setAttribute(\"stroke-width\",\"2\");icon.setAttribute(\"stroke-linecap\",\"round\");icon.setAttribute(\"stroke-linejoin\",\"round\");icon.setAttribute(\"aria-hidden\",\"true\");const circle=document.createElementNS(\"http://www.w3.org/2000/svg\",\"circle\");circle.setAttribute(\"cx\",\"12\");circle.setAttribute(\"cy\",\"12\");circle.setAttribute(\"r\",\"10\");const line=document.createElementNS(\"http://www.w3.org/2000/svg\",\"line\");line.setAttribute(\"x1\",\"12\");line.setAttribute(\"y1\",\"8\");line.setAttribute(\"x2\",\"12\");line.setAttribute(\"y2\",\"12\");const dot=document.createElementNS(\"http://www.w3.org/2000/svg\",\"line\");dot.setAttribute(\"x1\",\"12\");dot.setAttribute(\"y1\",\"16\");dot.setAttribute(\"x2\",\"12.01\");dot.setAttribute(\"y2\",\"16\");icon.append(circle,line,dot);return icon;}function showFormAlert(form,title,messages){ensureValidationStyles();form.querySelectorAll(\".form-error-banner\").forEach(el=>el.remove());const errorBanner=document.createElement(\"div\");errorBanner.className=\"form-error-banner\";errorBanner.setAttribute(\"role\",\"alert\");errorBanner.setAttribute(\"aria-live\",\"assertive\");const content=document.createElement(\"div\");const heading=document.createElement(\"p\");heading.className=\"form-error-banner-title\";heading.textContent=title;content.appendChild(heading);if(messages.length>1){const list=document.createElement(\"ul\");list.className=\"form-error-list\";messages.forEach(message=>{const item=document.createElement(\"li\");item.textContent=message;list.appendChild(item);});content.appendChild(list);}else{const text=document.createElement(\"p\");text.className=\"form-error-banner-text\";text.textContent=messages[0]||\"Please check the form and try again.\";content.appendChild(text);}errorBanner.append(createErrorIcon(),content);form.insertBefore(errorBanner,form.firstChild);}function getNearbyControlText(control){const directLabel=control.closest(\"label\");if(directLabel)return directLabel.textContent?.trim()||\"\";let parent=control.parentElement;let depth=0;while(parent&&depth<5){const text=parent.textContent?.trim()||\"\";if(text)return text.slice(0,260);parent=parent.parentElement;depth+=1;}return\"\";}function getControlSignature(control){return[control.getAttribute(\"name\"),control.getAttribute(\"id\"),control.getAttribute(\"type\"),control.getAttribute(\"placeholder\"),control.getAttribute(\"aria-label\"),getNearbyControlText(control)].filter(Boolean).join(\" \").toLowerCase();}function getSectionHeading(form,headingText){const expectedText=headingText.toLowerCase();const candidates=Array.from(form.querySelectorAll(\"label, legend, h1, h2, h3, h4, h5, h6, p, span, div\")).filter(element=>{const styles=window.getComputedStyle(element);if(styles.display===\"none\"||styles.visibility===\"hidden\")return false;return element.textContent?.trim().toLowerCase()===expectedText;});candidates.sort((a,b)=>{const aChildren=a.querySelectorAll(\"*\").length;const bChildren=b.querySelectorAll(\"*\").length;return aChildren-bChildren;});return candidates[0]||null;}function getControlsBelowSectionHeading(form,headingText,selector,maxDistance=360){const heading=getSectionHeading(form,headingText);if(!heading)return[];const headingBottom=heading.getBoundingClientRect().bottom;const controls=Array.from(form.querySelectorAll(selector)).filter(control=>{const styles=window.getComputedStyle(control);if(isSkippableFormControl(control)||styles.display===\"none\"||styles.visibility===\"hidden\"){return false;}const distance=control.getBoundingClientRect().top-headingBottom;return distance>=-12&&distance<=maxDistance;});if(controls.length===0)return[];const nearestTop=Math.min(...controls.map(control=>control.getBoundingClientRect().top));return controls.filter(control=>Math.abs(control.getBoundingClientRect().top-nearestTop)<=42);}function getPhoneControls(form){const detectedControls=Array.from(form.querySelectorAll(\"input, select, textarea\")).filter(control=>{if(isSkippableFormControl(control))return false;const signature=getControlSignature(control);return control.type===\"tel\"||signature.includes(\"phone\")||signature.includes(\"000 000\");});return detectedControls.length>0?detectedControls:getControlsBelowSectionHeading(form,\"Phone\",\"input, select, textarea\",180);}function getMessageControls(form){const textareas=Array.from(form.querySelectorAll(\"textarea\"));const detectedControls=textareas.filter(control=>{const signature=getControlSignature(control);return signature.includes(\"message\")||signature.includes(\"description\")||signature.includes(\"requirements\")||textareas.length===1;});return detectedControls.length>0?detectedControls:getControlsBelowSectionHeading(form,\"Message\",\"textarea\",240);}function isEmployeeRadioOption(radio){const signature=getControlSignature(radio);return signature.includes(\"less than 50\")||signature.includes(\"50 - 100\")||signature.includes(\"50-100\")||signature.includes(\"101 - 300\")||signature.includes(\"101-300\")||signature.includes(\"above 300\");}function getEmployeeRadioControls(form){const radios=Array.from(form.querySelectorAll('input[type=\"radio\"]'));const detectedControls=radios.filter(isEmployeeRadioOption);if(detectedControls.length>0)return detectedControls;// Framer can render the option label outside the radio input's wrapper.\n// When the employee heading exists, the nearby radio set is the intended group.\nconst heading=getSectionHeading(form,\"How many employees do you have?\");if(!heading)return[];const headingBottom=heading.getBoundingClientRect().bottom;return radios.filter(radio=>{const styles=window.getComputedStyle(radio);if(styles.display===\"none\"||styles.visibility===\"hidden\")return false;const distance=radio.getBoundingClientRect().top-headingBottom;return distance>=-12&&distance<=360;});}function isEmployeeRadioGroup(form,groupName){return getEmployeeRadioControls(form).some(radio=>radio.name===groupName);}function hasPhoneValue(form){const digits=getPhoneControls(form).map(control=>control.value||\"\").join(\"\").replace(/\\D/g,\"\");return digits.length>=6;}function hasMessageValue(form){return getMessageControls(form).some(control=>control.value.trim().length>0);}function hasEmployeeSelection(form){return getEmployeeRadioControls(form).some(radio=>radio.checked);}function isEmailField(input){if(input instanceof HTMLInputElement&&input.type===\"email\")return true;const signature=[input.getAttribute(\"name\"),input.getAttribute(\"id\"),input.getAttribute(\"placeholder\"),input.getAttribute(\"aria-label\")].filter(Boolean).join(\" \").toLowerCase();return signature.includes(\"email\");}// Validation function to check required fields\nfunction validateFormFields(form){const inputs=form.querySelectorAll(\"input, select, textarea\");const errors={};let isValid=true;const phoneControls=getPhoneControls(form);const messageControls=getMessageControls(form);inputs.forEach(input=>{// Skip hidden inputs, buttons, and submit inputs\nif(isSkippableFormControl(input)){return;}// Radio groups are validated once below so they only show one message.\nif(input instanceof HTMLInputElement&&input.type===\"radio\"){return;}// These sections use one shared message and are validated below.\n// Skipping native required handling prevents Framer's generated\n// field names from swallowing the visible section-level message.\nif(phoneControls.includes(input)||messageControls.includes(input)){return;}// Newsletter forms are sometimes created in Framer without the\n// native required/type=email attributes. Email validation must still\n// run before the newsletter webhook is called.\nif(isEmailField(input)){const name=getFieldKey(input);const label=getInputLabel(input)||\"Email\";const value=input.value.trim();if(!value){isValid=false;errors[name]=`${label} is required`;}else if(!isValidEmail(value)){isValid=false;errors[name]=\"Please enter a valid email address\";}else if(isPersonalEmailDomain(value)){isValid=false;errors[name]=\"Please use your work email address\";}return;}// Check if input has required attribute\nif(input.hasAttribute(\"required\")){const name=getFieldKey(input);if(isEmptyRequiredValue(input)){isValid=false;const label=getInputLabel(input);errors[name]=`${label||name} is required`;}else{// Check specific validations\nif(input instanceof HTMLInputElement&&input.type===\"email\"&&!isValidEmail(input.value.trim())){isValid=false;errors[name]=`Please enter a valid email address`;}}}});// Validate custom \"How did you hear about us?\" dropdown.\n// The custom UI stores its value in a hidden input so it is included in FormData.\nconst howDidYouHearControl=form.querySelector('input[name=\"howdidyouhearaboutus\"]');if(howDidYouHearControl&&!howDidYouHearControl.value.trim()){isValid=false;errors[\"howdidyouhearaboutus\"]=\"How did you hear about us? is required\";}if((phoneControls.length>0||getSectionHeading(form,\"Phone\"))&&!hasPhoneValue(form)){isValid=false;errors[PHONE_FIELD_KEY]=\"Phone is required\";}if((messageControls.length>0||getSectionHeading(form,\"Message\"))&&!hasMessageValue(form)){isValid=false;errors[MESSAGE_FIELD_KEY]=\"Message is required\";}const employeeRadioControls=getEmployeeRadioControls(form);if((employeeRadioControls.length>0||getSectionHeading(form,\"How many employees do you have?\"))&&!hasEmployeeSelection(form)){isValid=false;errors[EMPLOYEE_FIELD_KEY]=\"How many employees do you have? is required\";}// Check radio groups\nconst radioGroups=new Set;form.querySelectorAll('input[type=\"radio\"]').forEach(radio=>{if(radio.hasAttribute(\"required\")&&radio.name&&!isEmployeeRadioOption(radio)){radioGroups.add(radio.name);}});radioGroups.forEach(groupName=>{const checked=Array.from(form.querySelectorAll('input[type=\"radio\"]')).some(radio=>radio.name===groupName&&radio.checked);if(!checked){isValid=false;const label=getRadioGroupLabel(form,groupName);errors[groupName]=`${label||groupName} is required`;}});return{isValid,errors};}function getInputLabel(input){const id=input.id;if(id){const label=Array.from(document.querySelectorAll(\"label[for]\")).find(labelElement=>labelElement.htmlFor===id);if(label)return label.textContent?.trim()||\"\";}// Check for parent label\nconst parentLabel=input.closest(\"label\");if(parentLabel){const text=parentLabel.textContent?.trim()||\"\";// Remove input text if it's inside the label\nreturn text.replace(input.value,\"\").trim()||\"\";}// Check for aria-label\nconst ariaLabel=input.getAttribute(\"aria-label\");if(ariaLabel)return ariaLabel;// Check for placeholder\nconst placeholder=input.getAttribute(\"placeholder\");if(placeholder)return placeholder;return\"\";}function getRadioGroupLabel(form,name){if(isEmployeeRadioGroup(form,name)){return\"How many employees do you have?\";}const firstRadio=Array.from(form.querySelectorAll('input[type=\"radio\"]')).find(radio=>radio.name===name);// Try to find a legend in fieldset\nconst fieldset=firstRadio?.closest(\"fieldset\");if(fieldset){const legend=fieldset.querySelector(\"legend\");if(legend)return legend.textContent?.trim()||\"\";}// Try to find a label with for attribute for the first radio in the group\nif(firstRadio){const label=getInputLabel(firstRadio);if(label)return label;}return name;}function isValidEmail(email){const emailRegex=/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;return emailRegex.test(email);}// Lead capture is work-email only. Rather than carrying a multi-thousand entry\n// blocklist in the override bundle, this matches the personal/free/disposable\n// providers by the patterns they actually share, plus an explicit set for the\n// mainstream ones that no pattern would catch.\nconst PERSONAL_EMAIL_DOMAINS=new Set([\"gmail.com\",\"googlemail.com\",\"google.com\",\"hotmail.com\",\"hotmail.co.uk\",\"hotmail.fr\",\"hotmail.it\",\"hotmail.es\",\"hotmail.de\",\"hotmail.be\",\"hotmail.nl\",\"hotmail.se\",\"hotmail.no\",\"hotmail.dk\",\"hotmail.ca\",\"hotmail.com.au\",\"hotmail.com.br\",\"outlook.com\",\"outlook.co.uk\",\"outlook.fr\",\"outlook.de\",\"outlook.es\",\"outlook.it\",\"outlook.ie\",\"outlook.com.au\",\"live.com\",\"live.co.uk\",\"live.ie\",\"live.fr\",\"live.de\",\"live.it\",\"live.nl\",\"live.se\",\"live.dk\",\"live.no\",\"live.ca\",\"live.com.au\",\"msn.com\",\"passport.com\",\"windowslive.com\",\"yahoo.com\",\"yahoo.co.uk\",\"yahoo.ie\",\"yahoo.fr\",\"yahoo.de\",\"yahoo.es\",\"yahoo.it\",\"yahoo.ca\",\"yahoo.com.au\",\"yahoo.co.in\",\"yahoo.co.jp\",\"ymail.com\",\"rocketmail.com\",\"btinternet.com\",\"btopenworld.com\",\"talktalk.net\",\"talk21.com\",\"sky.com\",\"virginmedia.com\",\"blueyonder.co.uk\",\"ntlworld.com\",\"tiscali.co.uk\",\"aol.com\",\"aol.co.uk\",\"aim.com\",\"icloud.com\",\"me.com\",\"mac.com\",\"gmx.com\",\"gmx.net\",\"gmx.de\",\"gmx.at\",\"gmx.ch\",\"gmx.co.uk\",\"web.de\",\"t-online.de\",\"freenet.de\",\"mail.com\",\"email.com\",\"usa.com\",\"inbox.com\",\"mail.ru\",\"inbox.ru\",\"list.ru\",\"bk.ru\",\"internet.ru\",\"yandex.com\",\"yandex.ru\",\"ya.ru\",\"rambler.ru\",\"zoho.com\",\"protonmail.com\",\"protonmail.ch\",\"proton.me\",\"pm.me\",\"tutanota.com\",\"tuta.io\",\"tutamail.com\",\"fastmail.com\",\"fastmail.fm\",\"hushmail.com\",\"hush.com\",\"runbox.com\",\"posteo.de\",\"mailfence.com\",\"startmail.com\",\"duck.com\",\"orange.fr\",\"wanadoo.fr\",\"free.fr\",\"laposte.net\",\"sfr.fr\",\"libero.it\",\"virgilio.it\",\"alice.it\",\"tin.it\",\"terra.com\",\"terra.com.br\",\"uol.com.br\",\"bol.com.br\",\"ig.com.br\",\"seznam.cz\",\"centrum.cz\",\"centrum.sk\",\"wp.pl\",\"o2.pl\",\"onet.pl\",\"interia.pl\",\"op.pl\",\"freemail.hu\",\"citromail.hu\",\"abv.bg\",\"mynet.com\",\"qq.com\",\"163.com\",\"126.com\",\"sina.com\",\"sina.cn\",\"sohu.com\",\"foxmail.com\",\"aliyun.com\",\"139.com\",\"189.cn\",\"naver.com\",\"hanmail.net\",\"daum.net\",\"nate.com\",\"rediffmail.com\",\"rediff.com\",\"indiatimes.com\",\"sify.com\",\"bigpond.com\",\"bigpond.net.au\",\"optusnet.com.au\",\"iinet.net.au\",\"xtra.co.nz\",\"shaw.ca\",\"rogers.com\",\"sympatico.ca\",\"telus.net\",\"comcast.net\",\"verizon.net\",\"att.net\",\"sbcglobal.net\",\"bellsouth.net\",\"cox.net\",\"charter.net\",\"earthlink.net\",\"juno.com\",\"netzero.net\",\"roadrunner.com\",\"rr.com\",\"optonline.net\",\"frontier.com\",\"windstream.net\",\"centurylink.net\",\"embarqmail.com\",\"compuserve.com\",\"prodigy.net\",\"excite.com\",\"lycos.com\",\"rocketmail.com\",\"mailinator.com\",\"guerrillamail.com\",\"guerrillamail.net\",\"sharklasers.com\",\"10minutemail.com\",\"10minutemail.net\",\"tempmail.com\",\"temp-mail.org\",\"throwawaymail.com\",\"yopmail.com\",\"yopmail.net\",\"trashmail.com\",\"trashmail.net\",\"getnada.com\",\"nada.email\",\"dispostable.com\",\"maildrop.cc\",\"mailnesia.com\",\"mintemail.com\",\"moakt.com\",\"mohmal.com\",\"spamgourmet.com\",\"fakeinbox.com\",\"emailondeck.com\",\"mailsac.com\",\"inboxbear.com\",\"burnermail.io\",\"anonaddy.com\",\"simplelogin.com\",\"grr.la\",\"spam4.me\",\"discard.email\",\"harakirimail.com\",\"byom.de\",\"einrot.com\",\"armyspy.com\",\"cuvox.de\",\"dayrep.com\",\"fleckens.hu\",\"gustr.com\",\"jourrapide.com\",\"rhyta.com\",\"superrito.com\",\"teleworm.us\"]);// Throwaway services churn through hostnames faster than any list can track, so\n// these substrings/suffixes catch the families the explicit set will miss.\nconst DISPOSABLE_DOMAIN_PATTERNS=[/(^|[.-])(temp|tmp)[-.]?mail/,/(^|[.-])mail[-.]?(temp|tmp|drop|nesia|nator|sac|inator)/,/(^|[.-])(trash|junk|spam|fake|throwaway|burner|disposable|guerrilla)/,/^\\d+minutemail/,/(^|[.-])(yopmail|mailinator|sharklasers|dropmail)/,/\\.(tk|ml|ga|cf|gq)$/];function getEmailDomain(email){return email.split(\"@\").pop()?.trim().toLowerCase()??\"\";}function isPersonalEmailDomain(email){const domain=getEmailDomain(email);if(!domain)return false;if(PERSONAL_EMAIL_DOMAINS.has(domain))return true;// Providers hand out regional and subdomain variants of the same service\n// (e.g. mail.yahoo.co.uk, students.gmail.com), so match on the parent too.\nconst isSubdomainOfBlocked=Array.from(PERSONAL_EMAIL_DOMAINS).some(blocked=>domain.endsWith(`.${blocked}`));if(isSubdomainOfBlocked)return true;return DISPOSABLE_DOMAIN_PATTERNS.some(pattern=>pattern.test(domain));}// Function to create and show error messages\nfunction showFormErrors(form,errors){// Clear existing error messages\nform.querySelectorAll(\".form-error-message\").forEach(el=>el.remove());form.querySelectorAll(\".form-error-banner\").forEach(el=>el.remove());ensureValidationStyles();ensureLiveValidationClear(form);showFormAlert(form,\"Please check the fields below\",[\"Fix the messages below and try again.\"]);Object.entries(errors).forEach(([fieldName,message])=>{const controls=getControlsForField(form,fieldName);controls.forEach(input=>{input.setAttribute(\"data-error\",\"true\");input.setAttribute(\"aria-invalid\",\"true\");});addFieldErrorMessage(form,fieldName,controls,message);});}function clearFormErrors(form){// Clear all error messages\nform.querySelectorAll(\".form-error-message\").forEach(el=>el.remove());form.querySelectorAll(\".form-error-banner\").forEach(el=>el.remove());// Clear error styling from all inputs\nform.querySelectorAll('[data-error=\"true\"]').forEach(el=>{el.removeAttribute(\"data-error\");el.removeAttribute(\"aria-invalid\");el.style.borderColor=\"\";el.style.boxShadow=\"\";});form.querySelectorAll('[data-error-spacing=\"true\"]').forEach(el=>{clearFieldErrorSpacing(el);});}const NEWSLETTER_SUCCESS_STYLE_ID=\"framer-newsletter-success-styles\";function ensureNewsletterSuccessStyles(){if(document.getElementById(NEWSLETTER_SUCCESS_STYLE_ID))return;const style=document.createElement(\"style\");style.id=NEWSLETTER_SUCCESS_STYLE_ID;style.textContent=`\n        .newsletter-success-panel {\n            box-sizing: border-box;\n            width: 40%;\n            padding: 0;\n            color: #35323f;\n            font-family: inherit;\n            animation: newsletterSuccessIn 220ms ease-out;\n            float:right;\n        }\n\n        .newsletter-success-title {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            margin: 0 0 12px 0;\n            color: #35323f;\n            font-size: 18px;\n            line-height: 1.25;\n            font-weight: 650;\n        }\n\n        .newsletter-success-icon {\n            width: 22px;\n            height: 22px;\n            flex: 0 0 22px;\n            color: #7c3aed;\n        }\n\n        .newsletter-success-text {\n            margin: 0;\n            color: #625d6c;\n            font-size: 15px;\n            line-height: 1.5;\n            font-weight: 450;\n        }\n\n        @keyframes newsletterSuccessIn {\n            from { opacity: 0; transform: translateY(8px); }\n            to { opacity: 1; transform: translateY(0); }\n        }\n\n        @media (max-width: 640px) {\n            .newsletter-success-title { gap: 8px; font-size: 16px; }\n            .newsletter-success-icon { width: 20px; height: 20px; flex-basis: 20px; }\n            .newsletter-success-text { font-size: 14px; }\n        }\n    `;document.head.appendChild(style);}function NewsletterSuccessPanel({onReset}){useEffect(()=>{ensureNewsletterSuccessStyles();},[]);return /*#__PURE__*/_jsxs(\"div\",{className:\"newsletter-success-panel\",\"aria-live\":\"polite\",\"data-newsletter-success-panel\":\"true\",children:[/*#__PURE__*/_jsxs(\"p\",{className:\"newsletter-success-title\",children:[/*#__PURE__*/_jsx(\"svg\",{className:\"newsletter-success-icon\",viewBox:\"0 0 48 48\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 25.5 18.5 37 42 10\",stroke:\"currentColor\",strokeWidth:\"3\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})}),/*#__PURE__*/_jsx(\"span\",{children:\"You're subscribed!\"})]}),/*#__PURE__*/_jsx(\"p\",{className:\"newsletter-success-text\",children:\"Thanks for subscribing. We'll send you our latest news, product updates, and exclusive offers straight to your inbox.\"})]});}export function SubmitNewsletterToWebhook(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const rootRef=useRef(null);const inFlightRef=useRef(false);const clickedSubmitterRef=useRef(null);// Check sessionStorage for existing subscription state\nconst getInitialSubscribedState=()=>{if(typeof sessionStorage===\"undefined\")return false;return sessionStorage.getItem(\"newsletter_subscribed\")===\"true\";};const[isSubscribed,setIsSubscribed]=useState(getInitialSubscribedState);const[showSuccess,setShowSuccess]=useState(isSubscribed);const submitToWebhook=useCallback(async form=>{if(inFlightRef.current)return;// Clear previous errors\nclearFormErrors(form);// Validate form\nconst{isValid,errors}=validateFormFields(form);if(!isValid){showFormErrors(form,errors);return;}inFlightRef.current=true;const submitElement=resolveSubmitElement(form,clickedSubmitterRef.current);const restoreLoadingState=setLoadingState(submitElement,\"Sending…\");try{const payload=formDataToPayload(new FormData(form));await fetch(NEWSLETTER_WEBHOOK_URL,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(payload)});// Set success state\nsetShowSuccess(true);setIsSubscribed(true);// Store in sessionStorage\nif(typeof sessionStorage!==\"undefined\"){sessionStorage.setItem(\"newsletter_subscribed\",\"true\");}}catch(error){console.error(error);// Show error message but don't reload\nshowFormAlert(form,\"Something went wrong\",[\"Please try again later.\"]);}finally{restoreLoadingState?.();inFlightRef.current=false;clickedSubmitterRef.current=null;}},[]);// Reset subscription state\nconst resetSubscription=useCallback(()=>{setShowSuccess(false);setIsSubscribed(false);if(typeof sessionStorage!==\"undefined\"){sessionStorage.removeItem(\"newsletter_subscribed\");}},[]);useEffect(()=>{const rootNode=rootRef.current;if(!rootNode)return;const getForm=()=>rootNode instanceof HTMLFormElement?rootNode:rootNode.querySelector(\"form\");const handleNativeClick=event=>{const clickEvent=event;if(!clickEvent.isTrusted)return;const target=clickEvent.target;if(!target||!rootNode.contains(target))return;const submitElement=target.closest(\"button, input[type='submit'], [role='button']\");if(!submitElement)return;const form=submitElement.closest(\"form\")??getForm();if(!form)return;// Country-code pickers and other in-form toggles are not submissions.\nif(!isFormSubmitTrigger(form,submitElement))return;event.preventDefault();event.stopPropagation();event.stopImmediatePropagation();clickedSubmitterRef.current=submitElement;void submitToWebhook(form);};const form=getForm();const handleNativeSubmit=event=>{const submittedForm=event.target instanceof HTMLFormElement?event.target:null;if(!submittedForm||!rootNode.contains(submittedForm))return;event.preventDefault();event.stopPropagation();event.stopImmediatePropagation();void submitToWebhook(submittedForm);};window.addEventListener(\"click\",handleNativeClick,true);const previousNoValidate=form?.noValidate;if(form)form.noValidate=true;window.addEventListener(\"submit\",handleNativeSubmit,true);return()=>{window.removeEventListener(\"click\",handleNativeClick,true);window.removeEventListener(\"submit\",handleNativeSubmit,true);if(form&&previousNoValidate!==undefined){form.noValidate=previousNoValidate;}};},[submitToWebhook]);const onSubmit=useCallback(event=>{event.preventDefault();event.stopPropagation();void submitToWebhook(event.currentTarget);},[submitToWebhook]);const onClickCapture=useCallback(event=>{if(!event.isTrusted)return;if(inFlightRef.current){event.preventDefault();event.stopPropagation();return;}const target=event.target;if(!target)return;const submitElement=target.closest(\"button[type='submit'], button:not([type]), input[type='submit'], [role='button']\");if(!submitElement)return;const form=submitElement.closest(\"form\")??rootRef.current?.querySelector(\"form\");if(!form)return;if(!isFormSubmitTrigger(form,submitElement))return;// Clear previous errors on new submission attempt\nclearFormErrors(form);clickedSubmitterRef.current=submitElement;event.preventDefault();event.stopPropagation();void submitToWebhook(form);},[submitToWebhook]);// Success styles\nconst successStyles=`\n            .newsletter-success-overlay {\n                position: relative;\n                width: 100%;\n                padding: 0;\n                animation: newsletterSuccessIn 220ms ease-out;\n            }\n            .newsletter-success-overlay .success-title {\n                display: flex;\n                align-items: center;\n                gap: 10px;\n                margin: 0 0 12px 0;\n                color: #35323f;\n                font-size: 18px;\n                line-height: 1.25;\n                font-weight: 650;\n            }\n            .newsletter-success-overlay .success-icon {\n                width: 22px;\n                height: 22px;\n                flex: 0 0 22px;\n                color: #7c3aed;\n            }\n            .newsletter-success-overlay .success-text {\n                margin: 0;\n                color: #625d6c;\n                font-size: 15px;\n                line-height: 1.5;\n                font-weight: 450;\n            }\n            @keyframes newsletterSuccessIn {\n                from { opacity: 0; transform: translateY(8px); }\n                to { opacity: 1; transform: translateY(0); }\n            }\n            @media (max-width: 640px) {\n                .newsletter-success-overlay .success-title {\n                    gap: 8px;\n                    font-size: 16px;\n                }\n                .newsletter-success-overlay .success-icon {\n                    width: 20px;\n                    height: 20px;\n                    flex-basis: 20px;\n                }\n                .newsletter-success-overlay .success-text {\n                    font-size: 14px;\n                }\n            }\n        `;// If showSuccess is true, render success panel\nif(showSuccess){return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:successStyles}),/*#__PURE__*/_jsxs(\"div\",{ref:node=>{if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},className:\"newsletter-success-overlay\",style:{...props.style,width:\"100%\",maxWidth:\"100%\",padding:props.style?.padding||\"0\",margin:props.style?.margin||\"0\"},children:[/*#__PURE__*/_jsxs(\"p\",{className:\"success-title\",children:[/*#__PURE__*/_jsx(\"svg\",{className:\"success-icon\",viewBox:\"0 0 48 48\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M7 25.5 18.5 37 42 10\",stroke:\"currentColor\",strokeWidth:\"3\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})}),/*#__PURE__*/_jsx(\"span\",{children:\"You're subscribed!\"})]}),/*#__PURE__*/_jsx(\"p\",{className:\"success-text\",children:\"Thanks for subscribing. We'll send you our latest news, product updates, and exclusive offers straight to your inbox.\"})]})]});}return /*#__PURE__*/_jsx(Component,{...props,ref:node=>{rootRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},onSubmit:onSubmit,onClickCapture:onClickCapture});});}const HEAR_ABOUT_OPTIONS=[\"Google\",\"LinkedIn\",\"Trade show or event\",\"Email marketing\",\"Recommended by someone\",\"Other\"];const SOLID_FORM_SURFACE=\"#ffffff\";const CONTACT_FORM_VISUAL_STYLE_ID=\"framer-opaque-contact-form-visuals\";function setImportantStyle(element,property,value){element.style.setProperty(property,value,\"important\");}function ensureOpaqueContactFormStyles(){if(typeof document===\"undefined\")return;if(document.getElementById(CONTACT_FORM_VISUAL_STYLE_ID))return;const style=document.createElement(\"style\");style.id=CONTACT_FORM_VISUAL_STYLE_ID;style.textContent=`\n        [data-opaque-contact-form=\"true\"] {\n            opacity: 1 !important;\n            filter: none !important;\n            backdrop-filter: none !important;\n            -webkit-backdrop-filter: none !important;\n            mix-blend-mode: normal !important;\n            background: #ffffff !important;\n            isolation: isolate !important;\n            position: relative !important;\n         \n        }\n\n        [data-opaque-contact-form=\"true\"] *,\n        [data-opaque-contact-form-root=\"true\"] {\n            filter: none !important;\n            backdrop-filter: none !important;\n            -webkit-backdrop-filter: none !important;\n            mix-blend-mode: normal !important;\n        }\n\n        [data-opaque-contact-form=\"true\"] label,\n        [data-opaque-contact-form=\"true\"] legend,\n        [data-opaque-contact-form=\"true\"] p,\n        [data-opaque-contact-form=\"true\"] span {\n            opacity: 1 !important;\n        }\n\n        [data-opaque-contact-form=\"true\"] input:not([type=\"hidden\"]):not([type=\"radio\"]):not([type=\"checkbox\"]):not([type=\"submit\"]):not([type=\"button\"]),\n        [data-opaque-contact-form=\"true\"] textarea,\n        [data-opaque-contact-form=\"true\"] select,\n        [data-opaque-contact-form=\"true\"] [data-how-did-you-hear-field=\"true\"] button[aria-haspopup=\"listbox\"] {\n            background: #ffffff !important;\n            background-color: #ffffff !important;\n            opacity: 1 !important;\n            filter: none !important;\n            backdrop-filter: none !important;\n            -webkit-backdrop-filter: none !important;\n        }\n\n        [data-opaque-contact-form=\"true\"] input::placeholder,\n        [data-opaque-contact-form=\"true\"] textarea::placeholder {\n            opacity: 1 !important;\n        }\n    `;document.head.appendChild(style);}function ensureOpaqueContactFormVisuals(root,form){ensureOpaqueContactFormStyles();root.dataset.opaqueContactFormRoot=\"true\";form.dataset.opaqueContactForm=\"true\";const formRect=form.getBoundingClientRect();const protectedElements=new Set([root,form]);let ancestor=form.parentElement;while(ancestor&&ancestor!==document.body){protectedElements.add(ancestor);const rect=ancestor.getBoundingClientRect();const isLikelyFormSurface=rect.width>=formRect.width*.85&&rect.width<=formRect.width*1.35&&rect.height>=formRect.height*.75&&rect.height<=formRect.height*1.45;if(isLikelyFormSurface){setImportantStyle(ancestor,\"background-color\",SOLID_FORM_SURFACE);setImportantStyle(ancestor,\"background-image\",\"none\");}ancestor=ancestor.parentElement;}protectedElements.forEach(element=>{setImportantStyle(element,\"opacity\",\"1\");setImportantStyle(element,\"filter\",\"none\");setImportantStyle(element,\"backdrop-filter\",\"none\");setImportantStyle(element,\"-webkit-backdrop-filter\",\"none\");setImportantStyle(element,\"mix-blend-mode\",\"normal\");setImportantStyle(element,\"position\",\"relative\");});setImportantStyle(root,\"background-color\",SOLID_FORM_SURFACE);setImportantStyle(form,\"background-color\",SOLID_FORM_SURFACE);setImportantStyle(form,\"isolation\",\"isolate\");form.querySelectorAll(\"input, textarea, select, button, label, legend, [role='button']\").forEach(element=>{setImportantStyle(element,\"opacity\",\"1\");setImportantStyle(element,\"filter\",\"none\");});form.querySelectorAll(\"input:not([type='hidden']):not([type='radio']):not([type='checkbox']):not([type='submit']):not([type='button']), textarea, select\").forEach(element=>{setImportantStyle(element,\"background-color\",SOLID_FORM_SURFACE);setImportantStyle(element,\"background-image\",\"none\");});}function scheduleOpaqueContactFormVisuals(root,form){ensureOpaqueContactFormVisuals(root,form);window.requestAnimationFrame(()=>{ensureOpaqueContactFormVisuals(root,form);window.requestAnimationFrame(()=>{ensureOpaqueContactFormVisuals(root,form);});});window.setTimeout(()=>{ensureOpaqueContactFormVisuals(root,form);},250);}function ensureHowDidYouHearField(form){if(form.querySelector('[data-how-did-you-hear-field=\"true\"]'))return;const formRect=form.getBoundingClientRect();// Match the custom dropdown to the REAL First name text input.\n// Do not use getControlSignature() here: that helper intentionally includes\n// nearby parent text, which can make a radio/checkbox elsewhere in the form\n// look like it belongs to \"First name\". That was the reason the dropdown\n// could collapse to roughly 18px and inherit a radio-like transparent style.\nconst firstNameControls=getControlsBelowSectionHeading(form,\"First name\",\"input, select, textarea\",160);const isTextLikeField=control=>{if(isSkippableFormControl(control))return false;if(control instanceof HTMLInputElement){if(control.type===\"radio\"||control.type===\"checkbox\"||control.type===\"range\"||control.type===\"color\"||control.type===\"file\"){return false;}}const rect=control.getBoundingClientRect();return rect.width>120&&rect.height>=32&&rect.height<=90;};const firstNameControl=firstNameControls.find(isTextLikeField)||Array.from(form.querySelectorAll(\"input, select, textarea\")).find(control=>{if(!isTextLikeField(control))return false;// Fallback only inspects attributes on the control itself, never\n// surrounding form text, so another field cannot be mistaken for it.\nconst ownSignature=[control.getAttribute(\"name\"),control.getAttribute(\"id\"),control.getAttribute(\"placeholder\"),control.getAttribute(\"aria-label\")].filter(Boolean).join(\" \").toLowerCase();return ownSignature.includes(\"first name\")||ownSignature.includes(\"firstname\")||ownSignature.includes(\"first_name\")||ownSignature.includes(\"given name\");})||null;const firstNameStyles=firstNameControl?window.getComputedStyle(firstNameControl):null;const firstNameHeight=firstNameControl?Math.round(firstNameControl.getBoundingClientRect().height):0;// A normal Framer text field here is about 44px high. If Framer returns an\n// implausibly small measurement, use 44px rather than ever collapsing the\n// custom dropdown to checkbox/radio height.\nconst matchedFieldHeight=firstNameHeight>=36&&firstNameHeight<=90?firstNameHeight:44;const parsedBorderWidth=parseFloat(firstNameStyles?.borderTopWidth||\"0\");const matchedBorderWidth=parsedBorderWidth>0?firstNameStyles.borderTopWidth:\"1px\";const matchedBorderStyle=firstNameStyles?.borderTopStyle&&firstNameStyles.borderTopStyle!==\"none\"?firstNameStyles.borderTopStyle:\"solid\";const matchedBorderColor=firstNameStyles?.borderTopColor&&firstNameStyles.borderTopColor!==\"rgba(0, 0, 0, 0)\"&&firstNameStyles.borderTopColor!==\"transparent\"?firstNameStyles.borderTopColor:\"rgba(53, 50, 63, 0.12)\";const matchedBorderRadius=firstNameStyles?.borderRadius&&firstNameStyles.borderRadius!==\"0px\"?firstNameStyles.borderRadius:\"10px\";const matchedBackground=SOLID_FORM_SURFACE;const matchedPaddingLeft=firstNameStyles?.paddingLeft||\"14px\";const matchedPaddingRight=firstNameStyles?.paddingRight||\"14px\";const matchedTextColor=firstNameStyles?.color||\"#625d6c\";const matchedFontSize=firstNameStyles?.fontSize||\"16px\";const matchedLineHeight=firstNameStyles?.lineHeight||\"normal\";// Find the COMPLETE phone section, not an inner country-code/input wrapper.\n// This prevents the new field from being injected inside the phone control.\nconst phoneHeading=getSectionHeading(form,\"Phone\");const phoneControls=getPhoneControls(form).filter(control=>{const styles=window.getComputedStyle(control);return styles.display!==\"none\"&&styles.visibility!==\"hidden\";});const phoneControl=phoneControls[0]||null;const findCommonAncestor=(first,second)=>{const ancestors=new Set;let node=first;while(node&&node!==form){ancestors.add(node);node=node.parentElement;}node=second;while(node&&node!==form){if(ancestors.has(node))return node;node=node.parentElement;}return null;};const getPhoneSection=()=>{let section=null;if(phoneHeading&&phoneControl){section=findCommonAncestor(phoneHeading,phoneControl);}else if(phoneControl){section=phoneControl.parentElement;}if(!section)return null;// Walk upward only while the node still looks like a single form section.\n// Prefer a wrapper that spans most of the form width and contains the\n// phone heading/control, but never climb into the whole form container.\nlet best=section;let parent=section.parentElement;while(parent&&parent!==form){const rect=parent.getBoundingClientRect();const isInsideForm=rect.left>=formRect.left-4&&rect.right<=formRect.right+4;const spansFormWidth=rect.width>=formRect.width*.72;const sectionSized=rect.height>0&&rect.height<=280;if(!isInsideForm||!sectionSized)break;if(spansFormWidth)best=parent;parent=parent.parentElement;}return best;};const phoneSection=getPhoneSection();// Create field wrapper.\nconst fieldWrapper=document.createElement(\"div\");fieldWrapper.dataset.howDidYouHearField=\"true\";fieldWrapper.style.position=\"relative\";fieldWrapper.style.width=\"100%\";fieldWrapper.style.boxSizing=\"border-box\";// Do not add an extra bottom margin here. The parent form stack already\n// provides the same spacing used between the other fields.\nfieldWrapper.style.margin=\"0\";fieldWrapper.style.display=\"flex\";fieldWrapper.style.flexDirection=\"column\";fieldWrapper.style.gap=\"8px\";fieldWrapper.style.overflow=\"visible\";fieldWrapper.style.zIndex=\"20\";fieldWrapper.style.setProperty(\"opacity\",\"1\",\"important\");fieldWrapper.style.setProperty(\"visibility\",\"visible\",\"important\");fieldWrapper.style.setProperty(\"filter\",\"none\",\"important\");// Label.\nconst label=document.createElement(\"label\");label.htmlFor=\"howdidyouhearaboutus-button\";label.style.fontFamily='\"Filson Pro\", \"Filson\", sans-serif';label.style.fontSize=\"15px\";label.style.fontWeight=\"400\";label.style.lineHeight=\"1.35\";label.style.color=\"#131b2e\";label.style.opacity=\"1\";label.style.display=\"block\";const labelText=document.createElement(\"span\");labelText.textContent=\"Please select how did you hear about us?\";const requiredMark=document.createElement(\"span\");// requiredMark.textContent = \" *\"\nrequiredMark.style.color=\"#dc2626\";label.append(labelText,requiredMark);// Hidden form field. This is what gets sent in FormData.\nconst hiddenInput=document.createElement(\"input\");hiddenInput.type=\"hidden\";hiddenInput.id=\"howdidyouhearaboutus\";hiddenInput.name=\"howdidyouhearaboutus\";hiddenInput.value=\"\";hiddenInput.setAttribute(\"data-custom-required\",\"true\");// Custom dropdown trigger.\nconst trigger=document.createElement(\"button\");trigger.type=\"button\";trigger.id=\"howdidyouhearaboutus-button\";trigger.setAttribute(\"aria-haspopup\",\"listbox\");trigger.setAttribute(\"aria-expanded\",\"false\");trigger.setAttribute(\"aria-controls\",\"howdidyouhearaboutus-listbox\");// Framer can ship component-level button rules with !important declarations.\n// Use inline !important for the visual properties that must match the text fields.\nconst setImportant=(property,value)=>{trigger.style.setProperty(property,value,\"important\");};setImportant(\"width\",\"100%\");setImportant(\"height\",`${matchedFieldHeight}px`);setImportant(\"min-height\",`${matchedFieldHeight}px`);setImportant(\"max-height\",`${matchedFieldHeight}px`);setImportant(\"box-sizing\",\"border-box\");setImportant(\"padding\",`0 ${matchedPaddingRight} 0 ${matchedPaddingLeft}`);setImportant(\"border\",`${matchedBorderWidth} ${matchedBorderStyle} ${matchedBorderColor}`);setImportant(\"border-radius\",matchedBorderRadius);setImportant(\"background-color\",matchedBackground);setImportant(\"background-image\",\"none\");setImportant(\"color\",matchedTextColor);setImportant(\"font-family\",'\"Filson Pro\", \"Filson\", sans-serif');setImportant(\"font-size\",matchedFontSize);setImportant(\"font-weight\",\"400\");setImportant(\"line-height\",matchedLineHeight);setImportant(\"opacity\",\"1\");setImportant(\"visibility\",\"visible\");setImportant(\"filter\",\"none\");setImportant(\"display\",\"flex\");setImportant(\"align-items\",\"center\");setImportant(\"justify-content\",\"space-between\");setImportant(\"flex\",\"0 0 auto\");setImportant(\"overflow\",\"hidden\");setImportant(\"appearance\",\"none\");setImportant(\"-webkit-appearance\",\"none\");trigger.style.cursor=\"pointer\";trigger.style.outline=\"none\";trigger.style.gap=\"15px\";trigger.style.textAlign=\"left\";trigger.style.transition=\"border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease\";const selectedText=document.createElement(\"span\");// A visible placeholder prevents the closed dropdown from looking blank.\nselectedText.textContent=\"Select an option\";selectedText.style.flex=\"1\";selectedText.style.minWidth=\"0\";selectedText.style.color=matchedTextColor;selectedText.style.opacity=\"0.6\";selectedText.style.fontSize=\"14px\";selectedText.style.fontFamily='\"Filson Pro\", \"Filson\", sans-serif';const chevron=document.createElement(\"span\");chevron.setAttribute(\"aria-hidden\",\"true\");chevron.innerHTML=`\n        <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n            <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#737780\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n        </svg>\n    `;chevron.style.width=\"18px\";chevron.style.height=\"18px\";chevron.style.display=\"flex\";chevron.style.alignItems=\"center\";chevron.style.justifyContent=\"center\";chevron.style.flexShrink=\"0\";chevron.style.transition=\"transform 160ms ease\";trigger.append(selectedText,chevron);// Custom dropdown panel styled like the supplied screenshot.\nconst menu=document.createElement(\"div\");menu.id=\"howdidyouhearaboutus-listbox\";menu.setAttribute(\"role\",\"listbox\");menu.style.position=\"absolute\";menu.style.left=\"0\";menu.style.right=\"0\";menu.style.top=\"calc(100% + 8px)\";menu.style.zIndex=\"9999\";menu.style.display=\"none\";menu.style.boxSizing=\"border-box\";menu.style.padding=\"8px\";menu.style.border=`${matchedBorderWidth} ${matchedBorderStyle} ${matchedBorderColor}`;menu.style.borderRadius=matchedBorderRadius;menu.style.background=\"#ffffff\";menu.style.fontFamily='\"Filson Pro\", \"Filson\", sans-serif';menu.style.opacity=\"1\";menu.style.boxShadow=\"0 8px 24px rgba(15, 23, 42, 0.12)\";menu.style.maxHeight=\"360px\";menu.style.overflowY=\"auto\";menu.style.setProperty(\"visibility\",\"visible\",\"important\");menu.style.setProperty(\"filter\",\"none\",\"important\");let isOpen=false;let selectedValue=\"\";const setOpen=nextOpen=>{isOpen=nextOpen;trigger.setAttribute(\"aria-expanded\",String(nextOpen));menu.style.display=nextOpen?\"block\":\"none\";chevron.style.transform=nextOpen?\"rotate(180deg)\":\"rotate(0deg)\";if(nextOpen){trigger.style.borderColor=matchedBorderColor;trigger.style.boxShadow=\"0 0 0 3px rgba(89, 36, 239, 0.08)\";}else{trigger.style.borderColor=matchedBorderColor;trigger.style.boxShadow=\"none\";}};const selectOption=value=>{selectedValue=value;hiddenInput.value=value;selectedText.textContent=value;selectedText.style.color=matchedTextColor;selectedText.style.opacity=\"1\";trigger.setAttribute(\"aria-label\",`How did you hear about us? ${value}`);menu.querySelectorAll('[role=\"option\"]').forEach(option=>{const isSelected=option.dataset.value===value;option.setAttribute(\"aria-selected\",String(isSelected));option.style.background=isSelected?\"#f1f4f8\":\"transparent\";});clearFieldError(form,\"howdidyouhearaboutus\");hiddenInput.dispatchEvent(new Event(\"change\",{bubbles:true}));setOpen(false);};HEAR_ABOUT_OPTIONS.forEach(optionValue=>{const option=document.createElement(\"button\");option.type=\"button\";option.setAttribute(\"role\",\"option\");option.setAttribute(\"aria-selected\",\"false\");option.dataset.value=optionValue;option.textContent=optionValue;option.style.width=\"100%\";option.style.minHeight=\"52px\";option.style.boxSizing=\"border-box\";option.style.padding=\"0 16px\";option.style.border=\"0\";option.style.borderRadius=\"8px\";option.style.background=\"transparent\";option.style.color=\"#131b2e\";option.style.fontFamily='\"Filson Pro\", \"Filson\", sans-serif';option.style.opacity=\"1\";option.style.fontSize=\"16px\";option.style.fontWeight=\"400\";option.style.textAlign=\"left\";option.style.cursor=\"pointer\";option.style.display=\"flex\";option.style.alignItems=\"center\";option.style.transition=\"background-color 120ms ease\";option.addEventListener(\"mouseenter\",()=>{option.style.background=\"#f1f4f8\";});option.addEventListener(\"mouseleave\",()=>{option.style.background=selectedValue===optionValue?\"#f1f4f8\":\"transparent\";});option.addEventListener(\"click\",event=>{event.preventDefault();event.stopPropagation();selectOption(optionValue);});menu.appendChild(option);});trigger.addEventListener(\"click\",event=>{event.preventDefault();event.stopPropagation();setOpen(!isOpen);});trigger.addEventListener(\"keydown\",event=>{if(event.key===\"Escape\"){setOpen(false);trigger.focus();return;}if(event.key===\"ArrowDown\"||event.key===\"Enter\"||event.key===\" \"){if(!isOpen){event.preventDefault();setOpen(true);const firstOption=menu.querySelector('[role=\"option\"]');firstOption?.focus();}}});menu.addEventListener(\"keydown\",event=>{const options=Array.from(menu.querySelectorAll('[role=\"option\"]'));const currentIndex=options.indexOf(document.activeElement);if(event.key===\"Escape\"){event.preventDefault();setOpen(false);trigger.focus();}else if(event.key===\"ArrowDown\"){event.preventDefault();options[(currentIndex+1+options.length)%options.length]?.focus();}else if(event.key===\"ArrowUp\"){event.preventDefault();options[(currentIndex-1+options.length)%options.length]?.focus();}});const handleOutsideClick=event=>{const target=event.target;if(!target||fieldWrapper.contains(target))return;setOpen(false);};document.addEventListener(\"click\",handleOutsideClick,true);fieldWrapper.append(label,hiddenInput,trigger,menu);// Insert AFTER the whole phone section.\nif(phoneSection?.parentElement){phoneSection.parentElement.insertBefore(fieldWrapper,phoneSection.nextSibling);return;}// Fallback: place it before the employee section, message section, or submit.\nconst employeeHeading=getSectionHeading(form,\"How many employees do you have?\");const messageHeading=getSectionHeading(form,\"Message\");const nextSection=employeeHeading||messageHeading;if(nextSection){let section=nextSection;while(section.parentElement&&section.parentElement!==form&&section.parentElement.getBoundingClientRect().width<=formRect.width*1.02){const parentRect=section.parentElement.getBoundingClientRect();if(parentRect.height>420)break;section=section.parentElement;}section.parentElement?.insertBefore(fieldWrapper,section);return;}const submit=resolveSubmitElement(form,null);if(submit?.parentElement){submit.parentElement.insertBefore(fieldWrapper,submit);}else{form.appendChild(fieldWrapper);}}export function SubmitGetStartedToWebhook(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const rootRef=useRef(null);const justSentRef=useRef(false);const resetTimerRef=useRef(null);const clickTriggerSelector=\"a[href], button, input[type='submit'], input[type='button'], [role='button']\";useEffect(()=>{if(typeof window===\"undefined\")return;const rootNode=rootRef.current;if(!rootNode)return;const form=rootNode instanceof HTMLFormElement?rootNode:rootNode.querySelector(\"form\");if(!form)return;ensureHowDidYouHearField(form);scheduleOpaqueContactFormVisuals(rootNode,form);},[]);// Create a validation function that can be called from both places\nconst validateAndSubmit=useCallback((form,destination,triggerElement)=>{// Clear previous errors\nclearFormErrors(form);// Validate form\nconst{isValid,errors}=validateFormFields(form);if(!isValid){showFormErrors(form,errors);return false;}if(justSentRef.current)return false;justSentRef.current=true;if(resetTimerRef.current!==null){window.clearTimeout(resetTimerRef.current);}resetTimerRef.current=window.setTimeout(()=>{justSentRef.current=false;resetTimerRef.current=null;},1500);const submitElement=triggerElement||resolveSubmitElement(form,null);const restoreLoadingState=setLoadingState(submitElement,\"Sending…\");void(async()=>{try{const payload=formDataToPayloadWithFallback(new FormData(form),\"Get Started\");await fetch(CONTACT_WEBHOOK_URL,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(payload)});await pushGetStartedLeadTracking(payload);window.location.assign(destination);}catch(error){console.error(error);showFormAlert(form,\"Could not send form\",[\"Something went wrong. Please try again.\"]);}finally{restoreLoadingState?.();}})();return true;},[]);useEffect(()=>{if(typeof window===\"undefined\")return;const rootNode=rootRef.current;if(!rootNode)return;const handleNativeClick=event=>{const clickEvent=event;if(!clickEvent.isTrusted)return;const target=clickEvent.target;if(!target)return;const trigger=target.closest(clickTriggerSelector);if(!trigger)return;const rootForm=rootNode instanceof HTMLFormElement?rootNode:rootNode.querySelector(\"form\");const form=trigger.closest(\"form\")??rootForm;if(!form)return;const isLinkTrigger=trigger instanceof HTMLAnchorElement||!!trigger.closest(\"a[href]\");if(!isLinkTrigger&&!isFormSubmitTrigger(form,trigger))return;const linkElement=trigger.closest(\"a[href]\")??(trigger instanceof HTMLAnchorElement&&trigger.hasAttribute(\"href\")?trigger:null);const destination=linkElement?.getAttribute(\"href\")?.trim()||\"/thank-you\";clickEvent.preventDefault();clickEvent.stopPropagation();clickEvent.stopImmediatePropagation();validateAndSubmit(form,destination,trigger);};rootNode.addEventListener(\"click\",handleNativeClick,true);return()=>{rootNode.removeEventListener(\"click\",handleNativeClick,true);if(resetTimerRef.current!==null){window.clearTimeout(resetTimerRef.current);}};},[validateAndSubmit]);const onSubmit=useCallback(event=>{if(typeof window===\"undefined\")return;event.preventDefault();event.stopPropagation();const form=event.currentTarget;const destination=form.getAttribute(\"action\")||\"/thank-you\";validateAndSubmit(form,destination,null);},[validateAndSubmit]);return /*#__PURE__*/_jsx(Component,{...props,ref:node=>{rootRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},onSubmit:onSubmit});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withBlogLoadMoreGrid\":{\"type\":\"reactHoc\",\"name\":\"withBlogLoadMoreGrid\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLargerConsentCheckbox\":{\"type\":\"reactHoc\",\"name\":\"withLargerConsentCheckbox\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRotate\":{\"type\":\"reactHoc\",\"name\":\"withRotate\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCompactEqualReviewCards\":{\"type\":\"reactHoc\",\"name\":\"withCompactEqualReviewCards\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SubmitNewsletterToWebhook\":{\"type\":\"reactHoc\",\"name\":\"SubmitNewsletterToWebhook\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHover\":{\"type\":\"reactHoc\",\"name\":\"withHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withBlogLoadMoreButton\":{\"type\":\"reactHoc\",\"name\":\"withBlogLoadMoreButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SubmitGetStartedToWebhook\":{\"type\":\"reactHoc\",\"name\":\"SubmitGetStartedToWebhook\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPersistentScrolledNavBackground\":{\"type\":\"reactHoc\",\"name\":\"withPersistentScrolledNavBackground\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCheckedRadioIcon\":{\"type\":\"reactHoc\",\"name\":\"withCheckedRadioIcon\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRandomColor\":{\"type\":\"reactHoc\",\"name\":\"withRandomColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Examples.map"],"mappings":"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"}