{"version":3,"file":"Unified_Form.B1IsKv2_.mjs","names":["useState","useRef","useMemo","_Fragment","__esmMin","init_npm_react_18_3_1","window","pe","init_ssg_sandbox_shims","ce","init_jsx_runtime","p","_e","de","addPropertyControls","init_framer_CaDWdxiz","ControlType","pageSlug","path","makeOrigin","prefix","slug","resolveOrigin","utms","override","portalOriginOverride","originPrefix","hsIdentify","firstName","lastName","readUrlUtms","found","k","UTM_KEYS","v","captureUtms","UTM_STORE","getUtms","current","raw","UTM_MAX_AGE_MS","Chevron","color","open","TextField","s","label","required","error","Dropdown","setOpen","ref","onDoc","onBlur","chosen","multi","selected","value","summary","pick","onPick","o","box","checkboxSize","colors","active","renderOption","hint","groups","groupName","items","options","UnifiedForm","props","pal","THEMES","theme","successHeadingRef","hasMeetingSuccess","meetingEmbedURL","data","setData","touched","setTouched","status","setStatus","errorMsg","setErrorMsg","set","d","key","blur","toggleInArray","requiredKeys","fieldError","EMAIL_RE","canSubmit","filled","emailOk","buildPostHogPayload","originSlug","buildPayload","handleSubmit","a","ph","res","webhookUrl","err","style","fontRegular","radius","textSize","fontMedium","fieldRadius","Header","heading","subtitle","hideHeaderOnMeeting","meetingSuccessHeading","meetingSuccessBody","successTitle","successBody","DEFAULT_INDUSTRIES","DEFAULT_HEAR_ABOUT","DEFAULT_ZONES","DEFAULT_SIGNAL_GROUPS","newsletterLabel","submitLabel","privacyNoticeText","privacyUrl","l","init_Unified_Form"],"sources":["https:/framerusercontent.com/modules/agOZFx5nezHW0ndSxAcp/xBDKyQvqlFdf0juvJ1CA/Unified_Form.js"],"sourcesContent":["// @ts-nocheck\n// UnifiedForm.tsx — Electricity Maps \"Unified Forms\" → Clay code component for Framer\n//\n// HOW TO USE IN FRAMER\n// 1. Assets panel → Code → New Component → paste this file, name it \"UnifiedForm\".\n// 2. Drag it onto the canvas / into a frame. Configure in the right panel.\n// 3. Set the Webhook URL to your n8n proxy. Preview to test (real POST).\n//\n// Fields/requirements/options follow the \"Form Field Reference\" table. JSON keys\n// match the product payload (camelCase profile*/solution* + type/origin/submittedAt)\n// so website + portal land in the SAME Clay columns. One component, two themes.\n//\n// ATTRIBUTION: on submit the form calls HubSpot's client-side `identify` to tie\n// the submitter's usertoken (the hubspotutk cookie) to their email. That binds\n// their web analytics — source, first page, and all future visits — to the\n// HubSpot contact: the same attribution a native HubSpot form gave, with no\n// HubSpot form involved. The field payload still POSTs to n8n (Clay + a HubSpot\n// CRM upsert). No Forms API, no hutk forwarding.\n//\n// @framerSupportedLayoutWidth any-prefer-fixed\n// @framerSupportedLayoutHeight auto\n// @framerIntrinsicWidth 440\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useMemo,useRef,useEffect}from\"react\";// ── Theme palettes ───────────────────────────────────────────────────────────\nconst THEMES={light:{cardBg:\"#F1F0EE\",text:\"#000000\",subtitle:\"rgba(0,0,0,0.62)\",fieldBg:\"#FFFFFF\",fieldText:\"#0A0A0A\",border:\"#D9D7D3\",buttonBg:\"#000000\",buttonText:\"#FFFFFF\",disabledBg:\"#C9C7C3\",disabledText:\"#6B6B6B\",error:\"#D14343\"},dark:{cardBg:\"#000000\",text:\"#FFFFFF\",subtitle:\"rgba(255,255,255,0.68)\",fieldBg:\"#FFFFFF\",fieldText:\"#0A0A0A\",border:\"transparent\",buttonBg:\"#F1F0EE\",buttonText:\"#000000\",disabledBg:\"#2E2E2E\",disabledText:\"#7A7A7A\",error:\"#FF6B6B\"}};// ── Default option lists (overridable in the panel) ──────────────────────────\nconst DEFAULT_INDUSTRIES=[\"Independent Power Producer (IPP)\",\"Prop & Algo Trader\",\"BESS\",\"Flexibility Aggregators & VPP\",\"Hedge Funds\",\"Private Equity & Asset Management\",\"Commercial & Retail Banks\",\"Buildings & Energy Management\",\"Energy Retailer\",\"Data Centers & IT Infrastructure\",\"E-Mobility & Automotive\",\"Carbon Accounting Software & Consultants\",\"Industrial & Commercial\",\"Other\"];const DEFAULT_HEAR_ABOUT=[\"Linkedin\",\"x/Twitter\",\"Whitepaper\",\"Media/News\",\"Podcast/Interview/Webinar\",\"Search Engines (Google, Bing, etc)\",\"LLMs (ChatGPT, Claude, etc)\",\"Event\",\"Customer referral\",\"Home Assistant\",\"Other\"];const DEFAULT_ZONES=[\"Global\",\"EU + UK\",\"North America\",\"South America\",\"Asia / Oceania\",\"Individual Zones\"];// Signals are grouped under category headers in the dropdown. Selection is still\n// flat (data.signals holds the chosen signal strings); the grouping is display\n// only, so the payload (solutionSignals) is unaffected.\nconst DEFAULT_SIGNAL_GROUPS={Sustainability:[\"Carbon Intensity\",\"Renewable Energy %\",\"Carbon-Free Energy %\"],\"Electricity Prices\":[\"Day-Ahead Price (EU)\",\"Locational Marginal Price (US)\",\"Intraday Price\"],\"Electricity Mix & Flows\":[\"Electricity Mix\",\"Interconnector Flows\",\"Interconnector Congestion\"],\"Electricity Load\":[\"Net Load\",\"Total Load\"],Other:[\"I don't know yet\"]};const EMAIL_RE=/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;// Build the spec's \"<prefix>:<slug>\" origin. Blank slug → derive from the current\n// page path at submit time (/get-started → \"get-started\", homepage → \"home\").\nfunction pageSlug(){if(typeof window===\"undefined\"||!window.location)return\"home\";const path=window.location.pathname.replace(/^\\/+|\\/+$/g,\"\");return path?path.replace(/\\//g,\"-\").toLowerCase():\"home\";}function makeOrigin(prefix,slug){const s=(slug||\"\").trim()||pageSlug();return`${prefix}:${s}`;}// origin = \"portal:<utm_campaign>\" for portal traffic (e.g. \"portal:app-map-gating\");\n// everything else stays \"website:<page-slug>\" (e.g. \"website:get-started\").\nfunction resolveOrigin(utms,slug,originPrefix,portalOriginOverride){if(utms.utm_source===\"portal\"){const override=String(portalOriginOverride||\"\").trim();if(override)return override.includes(\":\")?override:`portal:${override}`;return`portal:${utms.utm_campaign||pageSlug()}`;}return makeOrigin(originPrefix||\"website\",slug);}// Tie this submitter to their HubSpot usertoken (the hubspotutk cookie) via the\n// tracking code's client-side `identify`. This binds their web attribution — and\n// their future visits — to the contact. `identify` only stages the identity in\n// the tracker; the trackPageView is what transmits it. No-ops safely if the\n// HubSpot script isn't present (e.g. Framer preview) or the visitor has no cookie\n// (declined tracking) — the contact then simply lands without attribution.\nfunction hsIdentify(email,firstName,lastName){if(typeof window===\"undefined\")return;window._hsq=window._hsq||[];window._hsq.push([\"identify\",{email,firstname:firstName,lastname:lastName}]);window._hsq.push([\"trackPageView\"]);}// ── UTM capture ──────────────────────────────────────────────────────────────\n// Last-touch UTMs, persisted in sessionStorage under \"em_utms\".\n//\n// Site-wide capture is done by the \"UTM capture\" custom code script (Site\n// Settings → Custom Code, End of <body>, All pages, On every page visit), which\n// writes the same \"em_utms\" key on any page that has UTMs in the URL. The\n// captureUtms() call on mount below is a fallback for pages where that script\n// hasn't run (e.g. Framer preview). Keep UTM_KEYS and UTM_STORE in sync with it.\n//\n// UTMs are treated as a set: if the current URL carries any UTM, that set wins\n// entirely; otherwise the stored set is used. This avoids mixing params from\n// two different campaigns into one submission.\nconst UTM_KEYS=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_content\",\"utm_term\"];const UTM_STORE=\"em_utms\";function readUrlUtms(){if(typeof window===\"undefined\"||!window.location)return{};const p=new URLSearchParams(window.location.search);const found={};for(const k of UTM_KEYS){const v=p.get(k);if(v)found[k]=v;}return found;}const UTM_MAX_AGE_MS=30*24*60*60*1e3// 30 days\n;function captureUtms(){const found=readUrlUtms();if(Object.keys(found).length){try{localStorage.setItem(UTM_STORE,JSON.stringify({utms:found,ts:Date.now()}));}catch(e){}}}function getUtms(){const current=readUrlUtms();if(Object.keys(current).length)return current;try{const raw=JSON.parse(localStorage.getItem(UTM_STORE)||\"null\");if(raw&&raw.utms&&Date.now()-raw.ts<UTM_MAX_AGE_MS)return raw.utms;}catch(e){}return{};}// ── Shared bits (module-level so inputs/dropdowns don't remount) ──────────────\nfunction Chevron({open,color}){return /*#__PURE__*/_jsx(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{flexShrink:0,transition:\"transform .15s ease\",transform:open?\"rotate(180deg)\":\"none\"},children:/*#__PURE__*/_jsx(\"polyline\",{points:\"6 9 12 15 18 9\"})});}function TextField({label,value,error,onChange,onBlur,type=\"text\",placeholder,required,s}){return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"label\",{style:s.label,children:[label,required?/*#__PURE__*/_jsx(\"span\",{style:s.req,children:\" *\"}):null]}),/*#__PURE__*/_jsx(\"input\",{style:s.input(error),type:type,value:value,placeholder:placeholder,onChange:onChange,onBlur:onBlur}),error?/*#__PURE__*/_jsx(\"div\",{style:s.errText,children:error}):null]});}// Unified dropdown — single-select (radio) or multi-select (checkbox). Both open\n// the same custom panel, so they look and behave identically.\nfunction Dropdown({label,required,hint,multi,value,selected,error,onPick,onBlur,options=[],groups,s,colors,checkboxSize}){const[open,setOpen]=useState(false);const ref=useRef(null);useEffect(()=>{if(!open)return;const onDoc=e=>{if(ref.current&&!ref.current.contains(e.target)){setOpen(false);onBlur&&onBlur();}};document.addEventListener(\"mousedown\",onDoc);return()=>document.removeEventListener(\"mousedown\",onDoc);},[open]);const chosen=multi?selected:value?[value]:[];const summary=chosen.length?chosen.join(\", \"):\"Select…\";const pick=o=>{onPick(o);if(!multi){setOpen(false);onBlur&&onBlur();}};const box=active=>({width:checkboxSize,height:checkboxSize,borderRadius:multi?4:999,border:`1px solid ${colors.fieldText}`,background:active?colors.fieldText:\"transparent\",color:colors.fieldBg,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:Math.round(checkboxSize*.62),flexShrink:0});const renderOption=o=>{const active=chosen.includes(o);return /*#__PURE__*/_jsxs(\"div\",{onClick:()=>pick(o),style:{display:\"flex\",alignItems:\"center\",gap:10,padding:\"10px 14px\",cursor:\"pointer\",fontSize:14,color:colors.fieldText},children:[/*#__PURE__*/_jsx(\"span\",{style:box(active),children:active?\"✓\":\"\"}),/*#__PURE__*/_jsx(\"span\",{children:o})]},o);};return /*#__PURE__*/_jsxs(\"div\",{ref:ref,children:[/*#__PURE__*/_jsxs(\"label\",{style:s.label,children:[label,required?/*#__PURE__*/_jsx(\"span\",{style:s.req,children:\" *\"}):null,hint?/*#__PURE__*/_jsxs(\"span\",{style:{opacity:.5},children:[\" \",hint]}):null]}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{...s.input(error),display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",cursor:\"pointer\"},onClick:()=>setOpen(o=>!o),children:[/*#__PURE__*/_jsx(\"span\",{style:{overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\",opacity:chosen.length?1:.5},children:summary}),/*#__PURE__*/_jsx(\"span\",{style:{display:\"flex\",marginLeft:8},children:/*#__PURE__*/_jsx(Chevron,{open:open,color:colors.fieldText})})]}),open&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:\"calc(100% + 6px)\",left:0,right:0,zIndex:50,maxHeight:280,overflowY:\"auto\",border:`1px solid ${colors.panelBorder}`,borderRadius:12,background:colors.fieldBg,boxShadow:\"0 12px 32px rgba(0,0,0,0.18)\"},children:groups?Object.entries(groups).map(([groupName,items])=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{style:{padding:\"12px 14px 4px\",fontSize:11,fontFamily:s.label.fontFamily,letterSpacing:.5,textTransform:\"uppercase\",color:colors.fieldText,opacity:.45},children:groupName}),items.map(o=>renderOption(o))]},groupName)):options.map(o=>renderOption(o))})]}),error?/*#__PURE__*/_jsx(\"div\",{style:s.errText,children:error}):null]});}// ── Main component ───────────────────────────────────────────────────────────\nexport default function UnifiedForm(props){const{webhookUrl,type,originPrefix,originSlug,portalOriginOverride,theme,heading,subtitle,newsletterLabel,privacyNoticeText,privacyUrl,submitLabel,successTitle,successBody,meetingEmbedURL,meetingSuccessHeading,meetingSuccessBody,hideHeaderOnMeeting,radius,fieldRadius,textSize,maxWidth,checkboxSize,fontRegular,fontMedium,style}=props;const pal=THEMES[theme]||THEMES.light;const successHeadingRef=useRef(null);const hasMeetingSuccess=Boolean(String(meetingEmbedURL||\"\").trim());const[data,setData]=useState({firstName:\"\",lastName:\"\",email:\"\",company:\"\",industry:\"\",industryOther:\"\",hearAbout:\"\",hearAboutOther:\"\",zones:[],signals:[],message:\"\",newsletter:false});const[touched,setTouched]=useState({});const[status,setStatus]=useState(\"idle\")// idle | submitting | success | error\n;const[errorMsg,setErrorMsg]=useState(\"\");const set=(key,value)=>setData(d=>({...d,[key]:value}));const blur=key=>setTouched(t=>({...t,[key]:true}));const toggleInArray=(key,value)=>setData(d=>({...d,[key]:d[key].includes(value)?d[key].filter(v=>v!==value):[...d[key],value]}));// Fallback capture; the site-wide \"UTM capture\" script is the primary one.\nuseEffect(()=>{captureUtms();},[]);useEffect(()=>{if(status!==\"success\"||!hasMeetingSuccess)return;if(typeof window===\"undefined\")return;if(!successHeadingRef.current)return;successHeadingRef.current.focus();},[status,hasMeetingSuccess]);const requiredKeys=[\"firstName\",\"lastName\",\"email\",\"company\",\"industry\",\"hearAbout\",\"message\"];const fieldError=key=>{const v=data[key];if(requiredKeys.includes(key)&&!String(v??\"\").trim())return\"Required\";if(key===\"email\"&&v&&!EMAIL_RE.test(v))return\"Enter a valid email\";return\"\";};const canSubmit=useMemo(()=>{const filled=requiredKeys.every(k=>String(data[k]??\"\").trim());const emailOk=EMAIL_RE.test(data.email);return filled&&emailOk&&status!==\"submitting\";},[data,status]);const buildPostHogPayload=utms=>({type,origin:resolveOrigin(utms,originSlug,originPrefix,portalOriginOverride),message:data.message,submitted_at:new Date().toISOString(),profile_first_name:data.firstName,profile_last_name:data.lastName,profile_email:data.email,profile_company:data.company,profile_industry:data.industry,profile_industry_other:data.industry===\"Other\"?data.industryOther:\"\",profile_hear_about:data.hearAbout,profile_hear_about_other:data.hearAbout===\"Other\"?data.hearAboutOther:\"\",profile_newsletter:Boolean(data.newsletter),solution_zones:data.zones.join(\", \"),solution_signals:data.signals.join(\", \"),...utms});const buildPayload=utms=>({type,origin:resolveOrigin(utms,originSlug,originPrefix,portalOriginOverride),message:data.message,submittedAt:new Date().toISOString(),profileFirstName:data.firstName,profileLastName:data.lastName,profileEmail:data.email,profileCompany:data.company,profileIndustry:data.industry,profileIndustryOther:data.industry===\"Other\"?data.industryOther:\"\",profileHearAbout:data.hearAbout,profileHearAboutOther:data.hearAbout===\"Other\"?data.hearAboutOther:\"\",profileNewsletter:Boolean(data.newsletter),solutionZones:data.zones.join(\", \"),solutionSignals:data.signals.join(\", \"),...utms});const handleSubmit=async()=>{setTouched(requiredKeys.reduce((a,k)=>({...a,[k]:true}),{}));if(!canSubmit)return;// Resolve UTMs once so PostHog and n8n receive the identical set.\nconst utms=getUtms();let ph={phDistinctId:\"\",phDeviceId:\"\",phSessionId:\"\"};try{if(window.posthog){window.posthog?.capture(\"form_submitted\",buildPostHogPayload(utms));ph.phDistinctId=window.posthog.get_distinct_id?.()||\"\";ph.phDeviceId=window.posthog.get_property?.(\"$device_id\")||\"\";ph.phSessionId=window.posthog.get_session_id?.()||\"\";}}catch(e){}// Attribution channel, independent of the n8n POST below: bind this\n// submitter's usertoken to their email so HubSpot attaches their browsing\n// (and future visits) to the contact.\nhsIdentify(data.email,data.firstName,data.lastName);setStatus(\"submitting\");setErrorMsg(\"\");try{const headers={\"Content-Type\":\"application/json\"};const res=await fetch(webhookUrl,{method:\"POST\",headers,body:JSON.stringify({...buildPayload(utms),...ph})});if(!res.ok)throw new Error(`Server returned ${res.status}`);setStatus(\"success\");}catch(err){setStatus(\"error\");setErrorMsg(err?.message?`Something went wrong (${err.message}). Please try again.`:\"Something went wrong. Please try again.\");}};// ── styles ──────────────────────────────────────────────────────────────\nconst s={wrap:{...style,boxSizing:\"border-box\",background:pal.cardBg,color:pal.text,fontFamily:fontRegular,borderRadius:radius,padding:32,display:\"flex\",flexDirection:\"column\",gap:18,width:\"100%\",maxWidth:maxWidth,marginLeft:\"auto\",marginRight:\"auto\",overflow:\"visible\"},label:{display:\"block\",fontSize:Math.max(12,textSize-1),fontFamily:fontMedium,letterSpacing:.2,marginBottom:6,opacity:1},input:err=>({boxSizing:\"border-box\",width:\"100%\",padding:\"10px 16px\",background:pal.fieldBg,color:pal.fieldText,border:`1px solid ${err?pal.error:pal.border}`,borderRadius:fieldRadius,fontSize:textSize,fontFamily:fontRegular,outline:\"none\"}),row2:{display:\"flex\",gap:14},col:{flex:1,minWidth:0},errText:{color:pal.error,fontSize:12,marginTop:4},req:{color:pal.error},indent:{marginLeft:14,paddingLeft:16,borderLeft:`2px solid ${pal.border===\"transparent\"?\"rgba(255,255,255,0.25)\":pal.border}`},button:{marginTop:6,padding:\"14px 18px\",background:canSubmit?pal.buttonBg:pal.disabledBg,color:canSubmit?pal.buttonText:pal.disabledText,border:\"none\",borderRadius:fieldRadius,fontSize:textSize,fontFamily:fontMedium,cursor:canSubmit?\"pointer\":\"not-allowed\",transition:\"background .15s ease\"},checkRow:{display:\"flex\",alignItems:\"flex-start\",gap:10,fontSize:17,lineHeight:1.4},notice:{fontSize:12,lineHeight:1.5,color:pal.subtitle,marginTop:2}};const colors={fieldBg:pal.fieldBg,fieldText:pal.fieldText,panelBorder:pal.border===\"transparent\"?\"#D9D7D3\":pal.border};const Header=()=>heading?/*#__PURE__*/_jsxs(\"div\",{style:{marginBottom:4},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:28,fontFamily:fontMedium,lineHeight:1.15,color:pal.text},children:heading}),subtitle?/*#__PURE__*/_jsx(\"div\",{style:{fontSize:15,lineHeight:1.5,color:pal.subtitle,marginTop:8},children:subtitle}):null]}):null;if(status===\"success\"){if(hasMeetingSuccess){return /*#__PURE__*/_jsxs(\"div\",{style:s.wrap,children:[!hideHeaderOnMeeting?/*#__PURE__*/_jsx(Header,{}):null,/*#__PURE__*/_jsx(\"div\",{ref:successHeadingRef,tabIndex:-1,style:{fontSize:24,fontFamily:\"Inter, sans-serif\",fontWeight:400,lineHeight:1.2,color:\"#111111\",outline:\"none\"},children:meetingSuccessHeading}),/*#__PURE__*/_jsx(\"div\",{style:{color:\"#4a4a48\",fontSize:16,lineHeight:1.5,fontFamily:\"Inter, sans-serif\",fontWeight:400},children:meetingSuccessBody}),/*#__PURE__*/_jsx(\"iframe\",{src:String(meetingEmbedURL||\"\").trim(),title:\"Book a meeting\",style:{width:\"100%\",minHeight:650,border:0,borderRadius:20,background:\"#FFFFFF\"}})]});}return /*#__PURE__*/_jsxs(\"div\",{style:s.wrap,children:[/*#__PURE__*/_jsx(Header,{}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:22,fontFamily:fontMedium,marginBottom:4},children:successTitle}),/*#__PURE__*/_jsx(\"div\",{style:{color:pal.subtitle,fontSize:15,lineHeight:1.5},children:successBody})]});}return /*#__PURE__*/_jsxs(\"div\",{style:s.wrap,children:[/*#__PURE__*/_jsx(Header,{}),/*#__PURE__*/_jsxs(\"div\",{style:s.row2,children:[/*#__PURE__*/_jsx(\"div\",{style:s.col,children:/*#__PURE__*/_jsx(TextField,{label:\"First name\",required:true,value:data.firstName,error:touched.firstName?fieldError(\"firstName\"):\"\",onChange:e=>set(\"firstName\",e.target.value),onBlur:()=>blur(\"firstName\"),s:s})}),/*#__PURE__*/_jsx(\"div\",{style:s.col,children:/*#__PURE__*/_jsx(TextField,{label:\"Last name\",required:true,value:data.lastName,error:touched.lastName?fieldError(\"lastName\"):\"\",onChange:e=>set(\"lastName\",e.target.value),onBlur:()=>blur(\"lastName\"),s:s})})]}),/*#__PURE__*/_jsx(TextField,{label:\"Email\",required:true,type:\"email\",placeholder:\"you@company.com\",value:data.email,error:touched.email?fieldError(\"email\"):\"\",onChange:e=>set(\"email\",e.target.value),onBlur:()=>blur(\"email\"),s:s}),/*#__PURE__*/_jsx(TextField,{label:\"Company name\",required:true,value:data.company,error:touched.company?fieldError(\"company\"):\"\",onChange:e=>set(\"company\",e.target.value),onBlur:()=>blur(\"company\"),s:s}),/*#__PURE__*/_jsx(Dropdown,{label:\"Industry\",required:true,value:data.industry,error:touched.industry?fieldError(\"industry\"):\"\",onPick:v=>set(\"industry\",v),onBlur:()=>blur(\"industry\"),options:DEFAULT_INDUSTRIES,s:s,colors:colors,checkboxSize:checkboxSize}),data.industry===\"Other\"&&/*#__PURE__*/_jsx(\"div\",{style:s.indent,children:/*#__PURE__*/_jsx(TextField,{label:\"Tell us your industry\",value:data.industryOther,error:\"\",onChange:e=>set(\"industryOther\",e.target.value),onBlur:()=>blur(\"industryOther\"),s:s})}),/*#__PURE__*/_jsx(Dropdown,{label:\"Where did you hear about us?\",required:true,value:data.hearAbout,error:touched.hearAbout?fieldError(\"hearAbout\"):\"\",onPick:v=>set(\"hearAbout\",v),onBlur:()=>blur(\"hearAbout\"),options:DEFAULT_HEAR_ABOUT,s:s,colors:colors,checkboxSize:checkboxSize}),data.hearAbout===\"Other\"&&/*#__PURE__*/_jsx(\"div\",{style:s.indent,children:/*#__PURE__*/_jsx(TextField,{label:\"Where exactly?\",value:data.hearAboutOther,error:\"\",onChange:e=>set(\"hearAboutOther\",e.target.value),onBlur:()=>blur(\"hearAboutOther\"),s:s})}),/*#__PURE__*/_jsx(Dropdown,{label:\"Zones\",hint:\"(optional, multi-select)\",multi:true,selected:data.zones,onPick:v=>toggleInArray(\"zones\",v),options:DEFAULT_ZONES,s:s,colors:colors,checkboxSize:checkboxSize}),/*#__PURE__*/_jsx(Dropdown,{label:\"Signals\",hint:\"(optional, multi-select)\",multi:true,selected:data.signals,onPick:v=>toggleInArray(\"signals\",v),groups:DEFAULT_SIGNAL_GROUPS,s:s,colors:colors,checkboxSize:checkboxSize}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"label\",{style:s.label,children:[\"Message\",/*#__PURE__*/_jsx(\"span\",{style:s.req,children:\" *\"})]}),/*#__PURE__*/_jsx(\"textarea\",{style:{...s.input(touched.message?fieldError(\"message\"):\"\"),minHeight:96,resize:\"vertical\"},value:data.message,onChange:e=>set(\"message\",e.target.value),onBlur:()=>blur(\"message\"),placeholder:\"What are you trying to do?\"}),touched.message&&fieldError(\"message\")?/*#__PURE__*/_jsx(\"div\",{style:s.errText,children:fieldError(\"message\")}):null]}),/*#__PURE__*/_jsxs(\"label\",{style:s.checkRow,children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",checked:data.newsletter,onChange:e=>set(\"newsletter\",e.target.checked),style:{marginTop:2,flexShrink:0,width:16,height:16}}),/*#__PURE__*/_jsx(\"span\",{children:newsletterLabel})]}),/*#__PURE__*/_jsx(\"button\",{style:s.button,onClick:handleSubmit,disabled:!canSubmit,children:status===\"submitting\"?\"Sending…\":submitLabel}),privacyNoticeText?/*#__PURE__*/_jsxs(\"div\",{style:s.notice,children:[privacyNoticeText,privacyUrl?/*#__PURE__*/_jsxs(_Fragment,{children:[\" \",/*#__PURE__*/_jsx(\"a\",{href:privacyUrl,target:\"_blank\",rel:\"noopener noreferrer\",style:{color:\"inherit\",textDecoration:\"underline\"},children:\"Privacy Policy\"}),\".\"]}):null]}):null,status===\"error\"?/*#__PURE__*/_jsx(\"div\",{style:s.errText,children:errorMsg}):null]});}UnifiedForm.defaultProps={webhookUrl:\"https://emaps.app.n8n.cloud/webhook/product-2-n8n-tts-trial\",type:\"talk_to_sales\",originPrefix:\"website\",originSlug:\"\",portalOriginOverride:\"\",theme:\"light\",heading:\"\",subtitle:\"\",newsletterLabel:\"Email me the Electricity Maps newsletter, product updates, and company news. Frequency varies. Unsubscribe anytime through the unsubscribe link.\",privacyNoticeText:\"By submitting, you agree we'll process the details above to respond to your enquiry.\",privacyUrl:\"https://www.electricitymaps.com/privacy-policy\",submitLabel:\"Submit\",successTitle:\"Thanks — we'll be in touch.\",successBody:\"Your message is on its way to our team. Expect a reply shortly.\",meetingEmbedURL:\"\",meetingSuccessHeading:\"\",meetingSuccessBody:\"\",hideHeaderOnMeeting:false,radius:16,fieldRadius:14,textSize:16,maxWidth:650,checkboxSize:18,fontRegular:\"'Formular Regular', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",fontMedium:\"'Formular Medium', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\"};addPropertyControls(UnifiedForm,{webhookUrl:{type:ControlType.String,title:\"Webhook URL\"},type:{type:ControlType.Enum,title:\"Type\",options:[\"talk_to_sales\",\"api_trial\"]},originPrefix:{type:ControlType.Enum,title:\"Origin prefix\",options:[\"website\",\"portal\"]},originSlug:{type:ControlType.String,title:\"Origin slug\",placeholder:\"blank = current page slug\"},portalOriginOverride:{type:ControlType.String,title:\"Portal origin override\",placeholder:\"empty = portal:<utm_campaign>\",defaultValue:\"\"},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"light\",\"dark\"],displaySegmentedControl:true},heading:{type:ControlType.String,title:\"Heading\",placeholder:\"optional\"},subtitle:{type:ControlType.String,title:\"Subtitle\",displayTextArea:true,placeholder:\"optional\"},newsletterLabel:{type:ControlType.String,title:\"Newsletter label\",displayTextArea:true},privacyNoticeText:{type:ControlType.String,title:\"Privacy notice\",displayTextArea:true},privacyUrl:{type:ControlType.String,title:\"Privacy Policy URL\"},submitLabel:{type:ControlType.String,title:\"Button\"},successTitle:{type:ControlType.String,title:\"Success title\"},successBody:{type:ControlType.String,title:\"Success body\"},meetingEmbedURL:{type:ControlType.String,title:\"Meeting embed URL\",defaultValue:\"\",placeholder:\"empty = off\"},meetingSuccessHeading:{type:ControlType.String,title:\"Success heading\",defaultValue:\"\"},meetingSuccessBody:{type:ControlType.String,title:\"Success body\",displayTextArea:true,defaultValue:\"\"},hideHeaderOnMeeting:{type:ControlType.Boolean,title:\"Hide header on booking\",defaultValue:false},radius:{type:ControlType.Number,title:\"Card radius\",min:0,max:48},fieldRadius:{type:ControlType.Number,title:\"Field radius\",min:0,max:999},textSize:{type:ControlType.Number,title:\"Text size\",min:12,max:22},maxWidth:{type:ControlType.Number,title:\"Max width\",min:320,max:1200},checkboxSize:{type:ControlType.Number,title:\"Checkbox size\",min:14,max:32},fontMedium:{type:ControlType.String,title:\"Font \\xb7 labels\"},fontRegular:{type:ControlType.String,title:\"Font \\xb7 fields\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"UnifiedForm\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Unified_Form.map"],"mappings":"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"}