{"version":3,"file":"HubSpotEmbed.CodgexPC.mjs","names":["useState","useId","useRef","__esmMin","init_ssg_sandbox_shims","init_npm_react_18_3_1","_e","de","p","ie","ce","window","addPropertyControls","init_framer_BWFVvmND","ControlType","RenderTarget","loadScript","s","SCRIPT_SRC","resolve","reject","labelsToPlaceholders","root","input","field","label","text","HubSpotEmbed","props","message","thankYou","ready","setReady","siteStyle","styling","uid","targetRef","error","setError","isCanvas","portalId","formId","cancelled","target","observer","resizer","settleTimer","capTimer","lockHeight","region","submitLabel","escapeHtml","reveal","isBuilt","frame","onChange","labels","done","renderThankYou","e","dark","theme","t","css","gap","fadeCss","style","placeholderStyle","reserve","split","title","body","wrap","icon","h","el","c","init_HubSpotEmbed","init_jsx_runtime"],"sources":["https:/framerusercontent.com/modules/6Y1cteYh4IAYY5KXoLQz/e7YCQs0oKlwfTSeuxIbd/HubSpotEmbed.js"],"sourcesContent":["// HubSpot form embed (legacy v2 embed script, raw HTML, HubSpot CSS off) so the\n// form picks up the site's own field and button styling. The v4 \"hs-form-frame\"\n// embed renders inside an iframe and can't be styled from the site.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useId,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const SCRIPT_SRC=\"https://js.hsforms.net/forms/embed/v2.js\";function loadScript(){if(typeof window===\"undefined\")return Promise.resolve();if(window.hbspt?.forms)return Promise.resolve();if(!window.__hsEmbedScript){window.__hsEmbedScript=new Promise((resolve,reject)=>{const s=document.createElement(\"script\");s.src=SCRIPT_SRC;s.async=true;s.onload=()=>resolve();s.onerror=()=>{window.__hsEmbedScript=undefined;reject(new Error(\"HubSpot script failed to load\"));};document.head.appendChild(s);});}return window.__hsEmbedScript;}// Design uses placeholders instead of labels: copy each text field's label\n// (including the required asterisk) into its placeholder.\nfunction labelsToPlaceholders(root){root.querySelectorAll(\".hs-form-field\").forEach(field=>{const input=field.querySelector('input[type=\"text\"], input[type=\"email\"], input[type=\"tel\"], input[type=\"number\"], textarea');const label=field.querySelector(\":scope > label\");if(!input||!label)return;const text=label.textContent?.replace(/\\s+/g,\" \").trim();if(text&&input.placeholder!==text)input.placeholder=text;if(!field.classList.contains(\"hse-placeholder\"))field.classList.add(\"hse-placeholder\");});}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function HubSpotEmbed(props){const{portalId,formId,region,labels,theme,gap,submitLabel,styling,thankYou,reserve,style}=props;const message=(thankYou||\"\").trim();// Hold the space the form will take until HubSpot has rendered it, so the\n// page doesn't jump when the fields arrive.\nconst[ready,setReady]=useState(false);const siteStyle=styling!==\"hubspot\";const uid=\"hse-\"+useId().replace(/[^a-zA-Z0-9]/g,\"\");const targetRef=useRef(null);const[error,setError]=useState(\"\");const isCanvas=RenderTarget.current()===RenderTarget.canvas;useEffect(()=>{if(isCanvas||!portalId||!formId)return;let cancelled=false;const target=targetRef.current;let observer=null;let resizer=null;let settleTimer=0;let capTimer=0;const lockHeight=()=>{if(target&&!target.style.minHeight)target.style.minHeight=target.offsetHeight+\"px\";};setError(\"\");loadScript().then(()=>{if(cancelled||!target||!window.hbspt?.forms)return;target.innerHTML=\"\";window.hbspt.forms.create({region:region||\"na1\",portalId,formId,target:\"#\"+uid,// Site styling: switch HubSpot's CSS off so ours applies.\n...siteStyle?{css:\"\"}:{},submitText:submitLabel||undefined,// Our own thank-you message replaces the form's after-submit\n// setting (HubSpot's message, or a redirect).\n...message?{inlineMessage:escapeHtml(message)}:{},// Keep the card the same size when HubSpot swaps the form\n// for its thank-you message.\nonFormSubmit:lockHeight,onFormSubmitted:()=>{target.classList.add(\"hse-done\");}});// Lock the height on submit (fallback for the callback above).\ntarget.addEventListener(\"submit\",lockHeight,true);// HubSpot renders fields in stages, so re-apply as they appear,\n// and mark the embed done once the thank-you message shows.\n// HubSpot builds the form in stages (fields with labels, then our\n// placeholders, then the reCAPTCHA badge), so its height changes a\n// few times in the first ~50ms. Keep it hidden in a fixed-height\n// box until it has been stable for 250ms, then reveal it.\nconst reveal=()=>{target.classList.add(\"hse-ready\");setReady(true);};// A form counts as built once its submit button exists, or, for\n// HubSpot's newer iframe forms (e.g. the newsletter form), once the\n// iframe has been given its real height. The iframe appears empty\n// (0px) and HubSpot sizes it a few hundred ms later.\nconst isBuilt=()=>{if(target.querySelector(\"input[type=submit]\"))return true;const frame=target.querySelector(\"iframe\");return!!frame&&frame.offsetHeight>50;};const onChange=()=>{if(target.querySelector(\".submitted-message\"))reveal();else if(!target.classList.contains(\"hse-ready\")&&isBuilt()){window.clearTimeout(settleTimer);settleTimer=window.setTimeout(reveal,250);if(!capTimer)capTimer=window.setTimeout(reveal,3e3);}if(siteStyle&&labels===\"placeholders\")labelsToPlaceholders(target);const done=target.querySelector(\".submitted-message\");if(done){target.classList.add(\"hse-done\");// Our message, laid out in the site's style. Also covers\n// forms that come back with an empty message. HubSpot\n// writes its text in after creating the element, so\n// re-apply whenever our layout has been replaced.\nif(message&&!done.querySelector(\".hse-ty\"))renderThankYou(done,message);}};onChange();observer=new MutationObserver(onChange);observer.observe(target,{childList:true,subtree:true});// Iframe forms change size without adding elements, so also\n// re-check whenever the form's height changes.\nif(typeof ResizeObserver!==\"undefined\"){// Only iframe forms need this; classic forms are tracked by\n// the mutation observer above.\nresizer=new ResizeObserver(()=>{if(!target.querySelector(\"form.hs-form\"))onChange();});resizer.observe(target);}}).catch(e=>{if(cancelled)return;setError(e.message);setReady(true);});return()=>{cancelled=true;window.clearTimeout(settleTimer);window.clearTimeout(capTimer);target?.classList.remove(\"hse-ready\");observer?.disconnect();resizer?.disconnect();target?.removeEventListener(\"submit\",lockHeight,true);if(target){target.style.minHeight=\"\";target.classList.remove(\"hse-done\");}if(target)target.innerHTML=\"\";};},[portalId,formId,region,labels,submitLabel,siteStyle,message,isCanvas]);const dark=theme===\"dark\";const t={field:dark?\"rgba(255,255,255,0.08)\":\"#F5F5F5\",text:dark?\"#FFFFFF\":\"rgb(40, 41, 42)\",muted:dark?\"rgba(255,255,255,0.6)\":\"rgb(112, 112, 113)\",button:dark?\"#FFFFFF\":\"rgb(33, 35, 255)\",buttonText:dark?\"rgb(40, 41, 42)\":\"#FFFFFF\",link:dark?\"#FFFFFF\":\"rgb(33, 35, 255)\"};const s=`#${uid}`;const css=`\n${s} form { display: flex; flex-direction: column; gap: ${gap}px; margin: 0; }\n${s} fieldset { max-width: none !important; border: 0; padding: 0; margin: 0; display: flex; gap: ${gap}px; }\n${s} fieldset > .hs-form-field, ${s} fieldset > div { flex: 1 1 0; min-width: 0; }\n${s} fieldset:not(:has(.hs-form-field:not([style*=\"none\"]))) { display: none; }\n${s} .hs-form-field { display: flex; flex-direction: column; gap: 6px; }\n${s} .hs-form-field > label { font-family: \"GT Standard L Regular\", sans-serif; font-size: 13px; color: ${t.muted}; }\n${s} .hse-placeholder > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }\n${s} .hs-form-required { color: inherit; }\n${s} .input { margin: 0 !important; }\n${s} input[type=\"text\"], ${s} input[type=\"email\"], ${s} input[type=\"tel\"], ${s} input[type=\"number\"], ${s} select, ${s} textarea {\n  box-sizing: border-box; width: 100% !important; height: 52px; padding: 12px 16px; border: 0; border-radius: 8px;\n  background: ${t.field}; color: ${t.text}; font-family: \"GT Standard L Regular\", sans-serif; font-size: 15px;\n  letter-spacing: 0.01em; line-height: 21px; outline: none; appearance: none; -webkit-appearance: none;\n}\n${s} textarea { height: 88px; resize: vertical; }\n${s} input::placeholder, ${s} textarea::placeholder { color: ${t.text}; opacity: 1; }\n${s} input:focus-visible, ${s} select:focus-visible, ${s} textarea:focus-visible { box-shadow: 0 0 0 2px ${t.button}; }\n${s} .inputs-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }\n${s} .inputs-list label, ${s} .legal-consent-container, ${s} .legal-consent-container p {\n  font-family: \"GT Standard L Regular\", sans-serif; font-size: 13px; line-height: 1.4; color: ${t.muted}; margin: 0;\n}\n${s} .inputs-list label { display: flex; align-items: center; gap: 8px; cursor: pointer; }\n${s} input[type=\"checkbox\"], ${s} input[type=\"radio\"] { width: 16px; height: 16px; margin: 0; accent-color: rgb(33, 35, 255); }\n${s} a { color: ${t.link}; text-decoration: underline; }\n${s} .hs-error-msgs { list-style: none; margin: 4px 0 0; padding: 0; }\n${s} .hs-error-msgs label, ${s} .hs-error-msg, ${s} .hs_error_rollup label {\n  position: static !important; width: auto !important; height: auto !important; clip: auto !important;\n  font-family: \"GT Standard L Regular\", sans-serif; font-size: 13px; color: rgb(229, 28, 28);\n}\n${s} .hs-input.invalid.error { box-shadow: 0 0 0 1px rgb(229, 28, 28); }\n${s} .hs_submit .actions { margin: 0; padding: 0; }\n${s} input[type=\"submit\"], ${s} .hs-button {\n  width: 100%; height: 40px; padding: 0 20px; border: 0; border-radius: 100px; cursor: pointer;\n  background: ${t.button}; color: ${t.buttonText}; font-family: \"GT Standard L Medium\", sans-serif;\n  font-size: 14px; font-weight: 500; letter-spacing: 0.01em; transition: opacity 0.2s cubic-bezier(0.23, 1, 0.32, 1);\n}\n@media (hover: hover) and (pointer: fine) { ${s} input[type=\"submit\"]:hover { opacity: 0.85; } }\n${s} input[type=\"submit\"]:active { transform: scale(0.97); }\n${s}.hse-done { display: flex; flex-direction: column; justify-content: center; }\n${s} .submitted-message { font-family: \"GT Standard L Regular\", sans-serif; font-size: 15px; line-height: 1.4; color: ${t.text}; }\n${s} .hse-ty { display: flex; flex-direction: column; align-items: center; gap: 12px; max-width: 460px; margin: 0 auto; padding: 24px 0; text-align: center; animation: hse-in 0.4s cubic-bezier(0.23, 1, 0.32, 1); }\n${s} .hse-ty-icon { width: 40px; height: 40px; margin-bottom: 4px; border-radius: 50%; background: ${t.button}; color: ${t.buttonText}; display: flex; align-items: center; justify-content: center; }\n${s} .hse-ty-title { margin: 0; font-family: \"GT Standard L Regular\", sans-serif; font-size: 28px; line-height: 1.15; letter-spacing: -0.03em; color: ${t.text}; text-wrap: balance; }\n${s} .hse-ty-body { margin: 0; font-family: \"GT Standard L Regular\", sans-serif; font-size: 15px; line-height: 1.4; color: ${t.muted}; text-wrap: pretty; }\n@media (max-width: 809.98px) { ${s} .hse-ty-title { font-size: 24px; } }\n@keyframes hse-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }\n@media (prefers-reduced-motion: reduce) { ${s} .hse-ty { animation: none; } }\n${s} .hs-richtext, ${s} .hs-richtext p { font-family: \"GT Standard L Regular\", sans-serif; font-size: 13px; color: ${t.muted}; margin: 0; }\n`;// Fields fade in when HubSpot renders them, instead of popping in.\nconst fadeCss=`\n${s}:not(.hse-ready) form.hs-form, ${s}:not(.hse-ready) iframe { opacity: 0; }\n${s}.hse-ready form.hs-form, ${s}.hse-ready iframe { animation: hse-fade-in 0.2s cubic-bezier(0.23, 1, 0.32, 1) both; }\n@keyframes hse-fade-in { from { opacity: 0; } to { opacity: 1; } }\n@media (prefers-reduced-motion: reduce) { ${s}.hse-ready form.hs-form, ${s}.hse-ready iframe { animation: none; } }\n`;if(isCanvas){return /*#__PURE__*/_jsxs(\"div\",{style:{...style,...placeholderStyle,background:t.field,color:t.muted},children:[\"HubSpot form \",formId?`\\xb7 ${formId.slice(0,8)}…`:\"\\xb7 add a Form ID\",/*#__PURE__*/_jsx(\"br\",{}),\"Renders on the published site\"]});}return /*#__PURE__*/_jsxs(\"div\",{style:{...style,width:\"100%\",// While HubSpot builds the form, hold exactly the reserved height.\n...!ready&&reserve?{height:reserve,overflow:\"hidden\"}:{}},children:[siteStyle?/*#__PURE__*/_jsx(\"style\",{children:css+fadeCss}):/*#__PURE__*/_jsx(\"style\",{children:`${s}.hse-done { display: flex; flex-direction: column; justify-content: center; }`+fadeCss}),/*#__PURE__*/_jsx(\"div\",{id:uid,ref:targetRef}),error&&/*#__PURE__*/_jsx(\"div\",{style:{color:\"rgb(229, 28, 28)\",fontSize:13},children:error})]});}HubSpotEmbed.displayName=\"HubSpot Embed\";HubSpotEmbed.defaultProps={portalId:\"47945561\",formId:\"\",region:\"na1\",labels:\"placeholders\",styling:\"site\",theme:\"light\",gap:12,submitLabel:\"\",thankYou:\"\",reserve:0};addPropertyControls(HubSpotEmbed,{portalId:{type:ControlType.String,title:\"Portal ID\",defaultValue:\"47945561\"},formId:{type:ControlType.String,title:\"Form ID\",placeholder:\"xxxxxxxx-xxxx-…\"},region:{type:ControlType.String,title:\"Region\",defaultValue:\"na1\"},styling:{type:ControlType.Enum,title:\"Styling\",options:[\"site\",\"hubspot\"],optionTitles:[\"Site\",\"HubSpot default\"],defaultValue:\"site\",displaySegmentedControl:true},labels:{type:ControlType.Enum,title:\"Labels\",options:[\"placeholders\",\"labels\"],optionTitles:[\"As placeholders\",\"Above fields\"],defaultValue:\"placeholders\"},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"light\",\"dark\"],optionTitles:[\"Light\",\"Dark\"],defaultValue:\"light\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:12,min:0,max:48,step:2,displayStepper:true},submitLabel:{type:ControlType.String,title:\"Button\",placeholder:\"Use HubSpot's label\"},reserve:{type:ControlType.Number,title:\"Reserve Height\",defaultValue:0,min:0,max:3e3,step:10,unit:\"px\",description:\"Space held for the form while HubSpot loads, so the page doesn't jump. Set to the form's loaded height.\"},thankYou:{type:ControlType.String,title:\"Thank You\",placeholder:\"Use HubSpot's after-submit setting\",displayTextArea:true}});// Tick, then the first sentence as a heading and the rest as body text.\nfunction renderThankYou(el,message){const split=message.search(/[.!?]\\s/);const title=split>-1?message.slice(0,split+1):message;const body=split>-1?message.slice(split+2).trim():\"\";const wrap=document.createElement(\"div\");wrap.className=\"hse-ty\";wrap.setAttribute(\"role\",\"status\");const icon=document.createElement(\"span\");icon.className=\"hse-ty-icon\";icon.setAttribute(\"aria-hidden\",\"true\");icon.innerHTML='<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"/></svg>';const h=document.createElement(\"p\");h.className=\"hse-ty-title\";h.textContent=title;wrap.append(icon,h);if(body){const p=document.createElement(\"p\");p.className=\"hse-ty-body\";p.textContent=body;wrap.append(p);}el.replaceChildren(wrap);}function escapeHtml(text){return text.replace(/[&<>\"']/g,c=>({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"})[c]);}const placeholderStyle={width:\"100%\",minHeight:160,padding:24,borderRadius:8,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",textAlign:\"center\",fontFamily:\"Inter, sans-serif\",fontSize:13,lineHeight:1.5};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HubSpotEmbed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HubSpotEmbed.map"],"mappings":"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"}