{"version":3,"file":"DemoFormV2.DVCMachm.mjs","names":["useRef","useState","e","formData"],"sources":["https:/framerusercontent.com/modules/EQ9nntcdhdyI8sKGtq2D/HFFf1zdiwJwF6RXa0v1Z/styles.js","https:/framer.com/m/styles-5poT9f.js@HFFf1zdiwJwF6RXa0v1Z","https:/framerusercontent.com/modules/gj3GSHmciFoYRsIJdbAs/WO7ztrGO86dJ3ayjaOTZ/DemoFormV2.js"],"sourcesContent":["export const inputStyle={width:\"100%\",maxWidth:\"none\",boxSizing:\"border-box\",padding:\"16px\",background:\"#202020\",marginBottom:\"16px\",border:\"1px solid #303030\",borderRadius:\"8px\",color:\"#fff\",fontFamily:\"Inter, sans-serif\",fontSize:\"13px\"};export const textareaStyle={...inputStyle,resize:\"vertical\"};export const submitButtonStyle={fontSize:\"14px\",fontFamily:\"Inter, sans-serif\",width:\"100%\",maxWidth:\"none\",boxSizing:\"border-box\",padding:\"16px\",backgroundColor:\"#5752CA\",color:\"white\",fontWeight:\"600\",border:\"none\",borderRadius:\"8px\",cursor:\"pointer\"};export const radioContainerStyle={margin:\"0 0 16px 0\",padding:\"16px\",backgroundColor:\"#202020\",borderRadius:\"6px\",border:\"1px solid #333\"};export const radioGroupStyle={display:\"flex\",flexDirection:\"column\",gap:\"12px\",margin:\"8px 0\"};export const radioLabelStyle={display:\"flex\",alignItems:\"center\",color:\"rgba(255, 255, 255, 1)\",cursor:\"pointer\",fontSize:\"13px\"};export const radioStyle={marginRight:\"10px\",cursor:\"pointer\"};export const sectionTitleStyle={color:\"#aaa\",marginBottom:\"16px\",fontSize:\"12px\",fontWeight:\"500\"};// Additional layout styles extracted from inline usage\nexport const outerContainerStyle={display:\"flex\",justifyContent:\"center\",alignItems:\"center\",position:\"relative\"};export const alertOverlayStyle={position:\"fixed\",top:0,left:0,width:\"100vw\",height:\"100vh\",background:\"rgba(0,0,0,0.5)\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",zIndex:9999};export const alertModalStyle={background:\"#181818\",padding:\"24px\",borderRadius:\"12px\",maxWidth:\"400px\",color:\"#fff\",fontFamily:\"Inter, sans-serif\",fontSize:\"14px\",boxShadow:\"0 0 0 1px #333\"};export const alertButtonStyle={background:\"#5752CA\",color:\"#fff\",border:\"none\",borderRadius:\"6px\",padding:\"10px 16px\",fontSize:\"13px\",fontWeight:600,cursor:\"pointer\"};export const alertTextStyle={marginBottom:\"16px\"};export const formContainerStyle={display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\",fontFamily:\"Inter, sans-serif\",fontSize:\"16px\",color:\"black\",background:\"linear-gradient(to bottom, #101010 0%,#000000 100%)\",padding:\"24px\",borderRadius:\"12px\"};\nexport const __FramerMetadata__ = {\"exports\":{\"formContainerStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"radioGroupStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"radioLabelStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"alertButtonStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"alertTextStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"radioContainerStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"outerContainerStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"radioStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"textareaStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"submitButtonStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"inputStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sectionTitleStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"alertOverlayStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"alertModalStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./styles.map","/*\n * styles\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/EQ9nntcdhdyI8sKGtq2D/HFFf1zdiwJwF6RXa0v1Z/styles.js\"\n","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import React,{useState,useEffect,useRef}from\"react\";import{alertButtonStyle,alertModalStyle,alertOverlayStyle,alertTextStyle,formContainerStyle,inputStyle,outerContainerStyle,radioContainerStyle,radioGroupStyle,radioLabelStyle,radioStyle,sectionTitleStyle,submitButtonStyle,textareaStyle}from\"https://framer.com/m/styles-5poT9f.js@HFFf1zdiwJwF6RXa0v1Z\";const CRUSTDATA_API_BASE_URL=\"https://api.crustdata.com/accounts/inquiry/\";function getCookie(name){if(typeof document===\"undefined\")return null;const m=document.cookie.match(new RegExp(\"(^| )\"+name+\"=([^;]+)\"));return m?decodeURIComponent(m[2]):null;}// Wait for hubspotutk to appear (e.g., if HS script/consent loads late)\nasync function waitForHutk(maxWaitMs=4e3){const start=Date.now();let hutk=getCookie(\"hubspotutk\");while(!hutk&&Date.now()-start<maxWaitMs){await new Promise(r=>setTimeout(r,100))// poll every 100ms\n;hutk=getCookie(\"hubspotutk\");}return hutk// may be null if not set (that's OK—submission still works)\n;}// *** MODIFIED: Added userFormData prop to pass email, firstname, lastname ***\nfunction HubSpotMeetingScheduler({userFormData}){const isMountedRef=useRef(true);useEffect(()=>{// Load the HubSpot meetings embed script\nconst script=document.createElement(\"script\");script.src=\"https://static.hsappstatic.net/MeetingsEmbed/ex/MeetingsEmbedCode.js\";script.type=\"text/javascript\";script.async=true;// Only append if still mounted\nif(isMountedRef.current){document.body.appendChild(script);}return()=>{// Mark as unmounted and cleanup script\nisMountedRef.current=false;if(script.parentNode){script.parentNode.removeChild(script);}};},[]);// *** MODIFIED: Build URL with query parameters ***\nconst buildMeetingUrl=()=>{const baseUrl=\"https://meetings-na2.hubspot.com/chris-pisarski/web-demo-request\";const params=new URLSearchParams;params.append(\"embed\",\"true\");if(userFormData?.email){params.append(\"email\",userFormData.email);}if(userFormData?.firstname){params.append(\"firstname\",userFormData.firstname);}if(userFormData?.lastname){params.append(\"lastname\",userFormData.lastname);}return`${baseUrl}?${params.toString()}`;};return /*#__PURE__*/_jsx(\"div\",{className:\"meetings-iframe-container\",\"data-src\":buildMeetingUrl(),style:{width:\"100%\",minHeight:\"600px\",borderRadius:\"12px\",overflow:\"hidden\"}});}export default function DemoForm(props){const[formData,setFormData]=useState({name:\"\",company_name:\"\",company_email:\"\",phone_number:\"\",service:\"\",use_case:\"\",discover:\"\"});const[formSubmitted,setFormSubmitted]=useState(false);const[isSubmitting,setIsSubmitting]=useState(false);const[customAlert,setCustomAlert]=useState(null);const[submittedUserData,setSubmittedUserData]=useState(null)// *** ADDED: Store user data for meeting scheduler ***\n;React.useEffect(()=>{// Disable touch/click capture on the Glow overlay\nconst glow=document.querySelector('[data-framer-name=\"Glow\"]');if(glow)glow.style.pointerEvents=\"none\";},[]);const handleChange=event=>{try{const{name,value}=event.target;if(value===\"\"){console.log(\"Field cleared:\",name);const eventName=`demo-form-${name}`;try{if(typeof window!==\"undefined\"&&window.posthog&&typeof window.posthog.capture===\"function\"){window.posthog.capture(eventName);}}catch(posthogError){console.log(\"PostHog field tracking failed:\",posthogError.message);}}setFormData(prevState=>({...prevState,[name]:value}));}catch(error){console.error(\"HandleChange error:\",error);setFormData(prevState=>({...prevState,[event.target.name]:event.target.value}));}};const handleRadioChange=e=>{try{setFormData({...formData,service:e.target.value});}catch(error){console.error(\"Radio change error:\",error);}};const sendWithXHR=(url,options)=>{return new Promise((resolve,reject)=>{try{const xhr=new XMLHttpRequest;xhr.open(options.method,url);if(options.headers){Object.keys(options.headers).forEach(key=>{try{xhr.setRequestHeader(key,options.headers[key]);}catch(headerError){console.log(\"Header setting failed:\",key,headerError.message);}});}xhr.onload=()=>{if(xhr.status>=200&&xhr.status<300){resolve({status:xhr.status,ok:true});}else{reject(new Error(`HTTP ${xhr.status}`));}};xhr.onerror=()=>reject(new Error(\"Network error\"));xhr.ontimeout=()=>reject(new Error(\"Request timeout\"));xhr.timeout=3e4;xhr.send(options.body);}catch(xhrError){reject(xhrError);}});};const submitToHubSpot=async formData=>{const HUBSPOT_PORTAL_ID=\"244200357\";const HUBSPOT_FORM_GUID=\"cb61a13a-606b-4aaf-968b-55252a769f30\";// HubSpot internal names (as you confirmed)\nconst HS_PROP={email:\"email\",company:\"company\",firstname:\"firstname\",lastname:\"lastname\",phone:\"phone\",selectedservice:\"selectedservice\",use_case:\"use_case\",discover:\"discover\"};// Your radio option values already match HS\nconst SERVICE_MAP={apis:\"apis\",fullDataset:\"fullDataset\",mcp:\"mcp\",allOfTheAbove:\"allOfTheAbove\"};// Helpers (no logging)\nconst normalize=s=>String(s??\"\").trim();const splitName=full=>{const cleaned=normalize(full).replace(/\\s+/g,\" \");if(!cleaned)return{firstname:\"\",lastname:\"\"};const parts=cleaned.split(\" \");return parts.length===1?{firstname:parts[0],lastname:\"\"}:{firstname:parts[0],lastname:parts.slice(1).join(\" \")};};// Build values\nconst{firstname,lastname}=splitName(formData.name);const serviceHS=SERVICE_MAP[formData.service]??normalize(formData.service);const email=normalize(formData.company_email);const company=normalize(formData.company_name);const phone=normalize(formData.phone_number)// *** ADDED: Get phone number ***\n;const selectedservice=normalize(serviceHS);const use_case=normalize(formData.use_case);const discover=normalize(formData.discover);// Local required checks (no logs)\nif(!email||!company||!selectedservice||!use_case||!discover){throw new Error(\"Missing required fields.\");}const hutk=await waitForHutk();const payload={fields:[{name:HS_PROP.email,value:email},{name:HS_PROP.company,value:company},{name:HS_PROP.firstname,value:firstname},{name:HS_PROP.lastname,value:lastname},{name:HS_PROP.selectedservice,value:selectedservice},{name:HS_PROP.use_case,value:use_case},{name:HS_PROP.discover,value:discover}]};// *** MODIFIED: Only add phone if provided (optional field) ***\nif(phone){payload.fields.push({name:HS_PROP.phone,value:phone});}if(hutk){payload.context={hutk};}const url=`https://api.hsforms.com/submissions/v3/integration/submit/${HUBSPOT_PORTAL_ID}/${HUBSPOT_FORM_GUID}`;const response=await sendWithXHR(url,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(payload)});if(!response.ok){throw new Error(`HubSpot submission failed: ${response.status}`);}// *** ADDED: Return user data for meeting scheduler ***\nreturn{email,firstname,lastname};};const REQUIRED_FIELDS=[\"name\",\"company_name\",\"company_email\",\"service\",\"use_case\",\"discover\"];const validateForm=formData=>{const missingFields=REQUIRED_FIELDS.filter(field=>!formData[field]||formData[field].trim()===\"\");if(missingFields.length>0){const formattedFields=missingFields.map(field=>field.replaceAll(\"_\",\" \").replace(/\\b\\w/g,char=>char.toUpperCase()));return`Please fill in all required fields: ${formattedFields.join(\", \")}`;}const email=formData.company_email.trim();const emailRegex=/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;const personalEmailRegex=/@(gmail|yahoo|outlook|icloud)\\./i;if(!emailRegex.test(email)||personalEmailRegex.test(email)){return\"Please enter a valid business email address.\";}if(formData.phone_number.trim()){const phoneRegex=/^[+]?[\\d\\s\\-().]+$/;if(!phoneRegex.test(formData.phone_number.trim())){return\"Please enter a valid phone number.\";}}return null;};const buildCrustdataRequestOptions=formData=>{const requestBody={name:formData.name,company_name:formData.company_name,company_email:formData.company_email,selectedService:formData.service,use_case:formData.use_case,discover:formData.discover};return{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Accept:\"application/json, text/plain, */*\"},body:JSON.stringify(requestBody)};};const trackPosthogSubmission=formData=>{try{if(typeof window!==\"undefined\"&&window.posthog){if(typeof window.posthog.identify===\"function\"){window.posthog.identify(formData.company_email);}if(typeof window.posthog.capture===\"function\"){window.posthog.capture(\"demo-form-submission\",{service:formData.service,company:formData.company_name});}}else{console.log(\"PostHog not available (likely blocked by privacy settings)\");}}catch(posthogError){console.log(\"PostHog tracking failed:\",posthogError.message);}};const callCrustdataInquiry=async requestOptions=>{try{const hasFetchSupport=typeof fetch!==\"undefined\";if(!hasFetchSupport){console.log(\"Fetch not available; skipping Crustdata call\");return;}const response=await fetch(CRUSTDATA_API_BASE_URL,requestOptions);console.log(\"Crustdata inquiry API status:\",response.status);}catch(crustError){console.log(\"Crustdata inquiry API call failed (non-critical):\",crustError.message);}};const handleButtonClick=async event=>{event.preventDefault();// Disable PostHog capture just for the submit button\ntry{const submitButton=document.querySelector(\".demo-form-submit\");if(submitButton){submitButton.setAttribute(\"data-ph-capture-attribute-disable\",\"\");}}catch(buttonError){console.log(\"Button attribute setting failed:\",buttonError.message);}const validationError=validateForm(formData);if(validationError){setCustomAlert(validationError);setIsSubmitting(false);return;}setIsSubmitting(true);const crustRequestOptions=buildCrustdataRequestOptions(formData);try{// Capture returned user data for HubSpot / meeting scheduler\nconst userData=await submitToHubSpot(formData);setSubmittedUserData(userData);setFormSubmitted(true);// PostHog identify + submission event\ntrackPosthogSubmission(formData);// Crustdata inquiry API call (non-critical)\nawait callCrustdataInquiry(crustRequestOptions);}catch(err){const message=err.message===\"Network error\"?\"We couldn't submit your form. This is usually caused by an ad blocker. Please disable it and try again, or email us directly at gtm@crustdata.co\":err.message||\"Something went wrong. Please try again.\";setCustomAlert(message);}finally{setIsSubmitting(false);}};return /*#__PURE__*/_jsxs(\"div\",{style:outerContainerStyle,children:[customAlert&&/*#__PURE__*/_jsx(\"div\",{style:alertOverlayStyle,children:/*#__PURE__*/_jsxs(\"div\",{style:alertModalStyle,children:[/*#__PURE__*/_jsx(\"p\",{style:alertTextStyle,children:customAlert}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>setCustomAlert(null),style:alertButtonStyle,children:\"Close\"})]})}),!formSubmitted?/*#__PURE__*/_jsxs(\"div\",{style:formContainerStyle,children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",id:\"name\",name:\"name\",placeholder:\"Name*\",value:formData.name,onChange:handleChange,style:inputStyle,disabled:isSubmitting}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",id:\"company_name\",name:\"company_name\",placeholder:\"Organization*\",value:formData.company_name,onChange:handleChange,style:inputStyle,disabled:isSubmitting}),/*#__PURE__*/_jsx(\"input\",{type:\"email\",id:\"company_email\",name:\"company_email\",placeholder:\"Business email*\",value:formData.company_email,onChange:handleChange,style:inputStyle,disabled:isSubmitting}),/*#__PURE__*/_jsx(\"input\",{type:\"tel\",id:\"phone_number\",name:\"phone_number\",placeholder:\"Phone number (optional)\",value:formData.phone_number,onChange:handleChange,style:inputStyle,disabled:isSubmitting}),/*#__PURE__*/_jsxs(\"div\",{style:radioContainerStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:sectionTitleStyle,children:\"Which service are you interested in?*\"}),/*#__PURE__*/_jsxs(\"div\",{style:radioGroupStyle,children:[/*#__PURE__*/_jsxs(\"label\",{style:radioLabelStyle,children:[/*#__PURE__*/_jsx(\"input\",{type:\"radio\",name:\"service\",value:\"apis\",checked:formData.service===\"apis\",onChange:handleRadioChange,style:radioStyle,disabled:isSubmitting}),\"APIs\"]}),/*#__PURE__*/_jsxs(\"label\",{style:radioLabelStyle,children:[/*#__PURE__*/_jsx(\"input\",{type:\"radio\",name:\"service\",value:\"fullDataset\",checked:formData.service===\"fullDataset\",onChange:handleRadioChange,style:radioStyle,disabled:isSubmitting}),\"Full Dataset\"]}),/*#__PURE__*/_jsxs(\"label\",{style:radioLabelStyle,children:[/*#__PURE__*/_jsx(\"input\",{type:\"radio\",name:\"service\",value:\"mcp\",checked:formData.service===\"mcp\",onChange:handleRadioChange,style:radioStyle,disabled:isSubmitting}),\"MCP\"]}),/*#__PURE__*/_jsxs(\"label\",{style:radioLabelStyle,children:[/*#__PURE__*/_jsx(\"input\",{type:\"radio\",name:\"service\",value:\"allOfTheAbove\",checked:formData.service===\"allOfTheAbove\",onChange:handleRadioChange,style:radioStyle,disabled:isSubmitting}),\"All of the above\"]})]})]}),/*#__PURE__*/_jsx(\"textarea\",{id:\"use_case\",name:\"use_case\",placeholder:\"Tell us about your potential use case*\",value:formData.use_case,onChange:handleChange,style:textareaStyle,rows:\"4\",disabled:isSubmitting}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",id:\"discover\",name:\"discover\",placeholder:\"How did you discover us?*\",value:formData.discover,onChange:handleChange,style:inputStyle,disabled:isSubmitting}),/*#__PURE__*/_jsx(\"button\",{className:\"demo-form-submit\",onClick:handleButtonClick,style:{...submitButtonStyle,backgroundColor:isSubmitting?\"#666\":\"#5752CA\",cursor:isSubmitting?\"not-allowed\":\"pointer\"},disabled:isSubmitting,children:isSubmitting?\"Submitting...\":\"Submit\"})]}):// *** MODIFIED: Pass user data to meeting scheduler ***\n/*#__PURE__*/_jsx(HubSpotMeetingScheduler,{userFormData:submittedUserData})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DemoForm\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DemoFormV2.map"],"mappings":"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"}