{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/mpx1OUkfqtOYtBlCi234/PWfmAXfAYrAeTnflEyQE/Formspark.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";export function FormSpark(props){const generateInitialFormData=()=>{let data={url:typeof window!==\"undefined\"?window.location.href:\"\"};props.textfields.forEach(field=>{data[field.name]=\"\";});props.selects.forEach(select=>{data[select.name]=\"none\";});props.textareas.forEach(area=>{data[area.name]=\"\";});return data;};const[formData,setFormData]=React.useState(generateInitialFormData());const[submitting,setSubmitting]=React.useState(false);const onSubmit=e=>{e.preventDefault();setSubmitting(true);const formElement=document.createElement(\"form\");formElement.action=`https://submit-form.com/${props.formID}`;formElement.method=\"POST\";let senderName=\"\";for(const key in formData){const input=document.createElement(\"input\");input.type=\"hidden\";input.name=key;input.value=formData[key];formElement.appendChild(input);// Check if this field is marked as sender name\nif(props.textfields.find(field=>field.name===key&&field.useAsSenderName)){senderName=formData[key];}}// Manually append the value from the Uploadcare widget\nif(props.uploadcareID){const uploadcareInput=document.getElementById(\"fileupload\");if(uploadcareInput){const uploadcareField=document.createElement(\"input\");uploadcareField.type=\"hidden\";uploadcareField.name=\"fileupload\";uploadcareField.value=uploadcareInput.value// Get the value directly from the widget\n;formElement.appendChild(uploadcareField);}}// Add sender's name field if a sender name is set\nif(senderName){const senderInput=document.createElement(\"input\");senderInput.type=\"hidden\";senderInput.name=\"_email.from\";senderInput.value=senderName;formElement.appendChild(senderInput);}document.body.appendChild(formElement);formElement.submit();setFormData(generateInitialFormData());setSubmitting(false);};const handleChange=e=>{const{name,value}=e.target;setFormData(prevData=>({...prevData,[name]:value}));};React.useEffect(()=>{if(props.uploadcareID&&!window.uploadcare){const scriptId=\"uploadcare-script\";// Add custom CSS for Uploadcare button\nconst style=document.createElement(\"style\");style.textContent=`\n                .uploadcare--widget__button.uploadcare--widget__button_type_open {\n                    width: 100%;\n                    background-color: transparent;\n                    outline: none;\n                    cursor: pointer;\n                    color: ${props.buttonColor};\n                }\n            `;document.head.appendChild(style);// Load Uploadcare script\nif(!document.getElementById(scriptId)){const script=document.createElement(\"script\");script.id=scriptId;script.src=\"https://ucarecdn.com/libs/widget/3.x/uploadcare.full.min.js\";script.async=true;document.head.appendChild(script);}}},[props.uploadcareID,props.buttonColor]);const formStyle={...styles.form,gap:props.formGap,fontSize:props.fontSize+\"px\",fontFamily:props.fontFamily};const elementStyle={borderRadius:props.elementBorderRadius,height:props.elementHeight,fontSize:props.fontSize+\"px\",fontFamily:props.fontFamily,backgroundColor:props.elementBackgroundColor,boxShadow:`0px 0px 0px 2px ${props.elementShadowColor}`};const textareaStyle={...styles.textarea,borderRadius:props.elementBorderRadius,height:props.textareaHeight,fontSize:props.fontSize+\"px\",fontFamily:props.fontFamily,backgroundColor:props.elementBackgroundColor,boxShadow:`0px 0px 0px 2px ${props.elementShadowColor}`};const buttonStyle={...styles.button,backgroundColor:props.buttonColor,borderRadius:props.buttonBorderRadius,height:props.buttonHeight,fontSize:props.fontSize+\"px\",fontFamily:props.fontFamily,boxShadow:`0px 0px 0px 2px ${props.elementShadowColor}`};return /*#__PURE__*/_jsxs(\"form\",{onSubmit:onSubmit,style:{...props.style,...formStyle},id:props.htmlID,children:[/*#__PURE__*/_jsx(\"input\",{style:styles.input,type:\"hidden\",name:\"Url\",value:formData.url,readOnly:true}),\" \",props.textfields.map((field,index)=>/*#__PURE__*/_jsx(\"input\",{style:{...styles.input,...elementStyle},type:field.type,name:field.type===\"email\"?\"email\":field.name,placeholder:field.name,required:field.required,onChange:handleChange},index)),props.selects.map((select,index)=>/*#__PURE__*/_jsxs(\"select\",{style:{...styles.select,...elementStyle},name:select.name,required:select.required,onChange:handleChange,children:[/*#__PURE__*/_jsx(\"option\",{value:\"\",disabled:true,selected:true,children:select.name}),select.options.map((option,optionIndex)=>/*#__PURE__*/_jsx(\"option\",{value:option,children:option},optionIndex))]},index)),props.textareas.map((area,index)=>/*#__PURE__*/_jsx(\"textarea\",{style:textareaStyle,name:area.name,placeholder:area.name,required:area.required,onChange:handleChange},index)),props.uploadcareID&&/*#__PURE__*/_jsx(\"input\",{type:\"hidden\",id:\"fileupload\",name:\"fileupload\",role:\"uploadcare-uploader\",\"data-public-key\":props.uploadcareID}),/*#__PURE__*/_jsx(\"button\",{style:buttonStyle,type:\"submit\",disabled:submitting,children:props.buttonText})]});}addPropertyControls(FormSpark,{formID:{type:ControlType.String,title:\"Form ID\",defaultValue:\"\"},htmlID:{// New property for HTML ID\ntype:ControlType.String,title:\"HTML ID\",defaultValue:\"\"},fontFamily:{type:ControlType.String,title:\"Font Family\",defaultValue:\"Inter, sans-serif\"},textfields:{type:ControlType.Array,propertyControl:{type:ControlType.Object,controls:{name:{type:ControlType.String,placeholder:\"Field Name\",title:\"Name\"},type:{type:ControlType.Enum,options:[\"text\",\"number\",\"date\",\"email\"],optionTitles:[\"Text\",\"Number\",\"Date\",\"email\"],title:\"Type\"},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:true},useAsSenderName:{type:ControlType.Boolean,title:\"Use as sender name\",defaultValue:false}}},title:\"Textfields\",defaultValue:[{name:\"name\",type:\"text\",required:true,useAsSenderName:false},{name:\"age\",type:\"number\",required:true},{name:\"birthdate\",type:\"date\",required:true}]},selects:{type:ControlType.Array,propertyControl:{type:ControlType.Object,controls:{name:{type:ControlType.String,placeholder:\"Service\",title:\"Name\"},options:{type:ControlType.Array,propertyControl:{type:ControlType.String,placeholder:\"SEO\"},title:\"Options\"},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:true}}},title:\"Selects\",defaultValue:[{name:\"tjanst\",options:[\"hemstad\",\"foretagsstad\",\"fastighetsservice\"],required:true}]},textareas:{type:ControlType.Array,propertyControl:{type:ControlType.Object,controls:{name:{type:ControlType.String,placeholder:\"Meddelande\",title:\"Name\"},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:true}}},title:\"Textareas\",defaultValue:[{name:\"meddelande\",required:true}]},elementBorderRadius:{type:ControlType.Number,title:\"Element Border Radius\",defaultValue:15},buttonBorderRadius:{type:ControlType.Number,title:\"Button Border Radius\",defaultValue:8},buttonColor:{type:ControlType.Color,title:\"Button Color\",defaultValue:\"#f3b758\"},elementBackgroundColor:{type:ControlType.Color,title:\"Element Background Color\",defaultValue:\"#F7F7F7\"},elementShadowColor:{type:ControlType.Color,title:\"Element Shadow Color\",defaultValue:\"rgba(255, 255, 255, 0.1)\"},formGap:{type:ControlType.Number,title:\"Form Gap\",defaultValue:10},buttonHeight:{type:ControlType.Number,title:\"Button Height\",defaultValue:50},buttonText:{type:ControlType.String,title:\"Button Text\",defaultValue:\"SKICKA\"},elementHeight:{type:ControlType.Number,title:\"Element Height\",defaultValue:54},textareaHeight:{type:ControlType.Number,title:\"Textarea Height\",defaultValue:100},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:16},uploadcareID:{type:ControlType.String,title:\"Uploadcare ID\",defaultValue:\"\"}});const styles={form:{display:\"flex\",flexDirection:\"column\",padding:\"0px\",boxShadow:\"none\",backgroundColor:\"transparent\"},input:{padding:\"15px\",width:\"100%\",border:\"none\",backgroundColor:\"#F7F7F7\",outline:\"none\"},select:{overflow:\"visible\",padding:\"15px\",width:\"100%\",border:\"none\",backgroundColor:\"#F7F7F7\",outline:\"none\"},textarea:{height:\"100px\",padding:\"15px\",width:\"100%\",border:\"none\",backgroundColor:\"#F7F7F7\",outline:\"none\",resize:\"none\"},button:{fontWeight:\"600\",width:\"100%\",padding:\"15px\",border:\"none\",color:\"#ffffff\",cursor:\"pointer\"}};\nexport const __FramerMetadata__ = {\"exports\":{\"FormSpark\":{\"type\":\"reactComponent\",\"name\":\"FormSpark\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Formspark.map"],
  "mappings": "qHAAgJ,SAASA,EAAUC,EAAM,CAAC,IAAMC,EAAwB,IAAI,CAAC,IAAIC,EAAK,CAAC,IAAI,OAAOC,EAAS,IAAYA,EAAO,SAAS,KAAK,EAAE,EAAE,OAAAH,EAAM,WAAW,QAAQI,GAAO,CAACF,EAAKE,EAAM,IAAI,EAAE,EAAG,CAAC,EAAEJ,EAAM,QAAQ,QAAQK,GAAQ,CAACH,EAAKG,EAAO,IAAI,EAAE,MAAO,CAAC,EAAEL,EAAM,UAAU,QAAQM,GAAM,CAACJ,EAAKI,EAAK,IAAI,EAAE,EAAG,CAAC,EAASJ,CAAK,EAAO,CAACK,EAASC,CAAW,EAAQC,EAASR,EAAwB,CAAC,EAAO,CAACS,EAAWC,CAAa,EAAQF,EAAS,EAAK,EAAQG,EAASC,GAAG,CAACA,EAAE,eAAe,EAAEF,EAAc,EAAI,EAAE,IAAMG,EAAY,SAAS,cAAc,MAAM,EAAEA,EAAY,OAAO,2BAA2Bd,EAAM,MAAM,GAAGc,EAAY,OAAO,OAAO,IAAIC,EAAW,GAAG,QAAUC,KAAOT,EAAS,CAAC,IAAMU,EAAM,SAAS,cAAc,OAAO,EAAEA,EAAM,KAAK,SAASA,EAAM,KAAKD,EAAIC,EAAM,MAAMV,EAASS,CAAG,EAAEF,EAAY,YAAYG,CAAK,EACp7BjB,EAAM,WAAW,KAAKI,GAAOA,EAAM,OAAOY,GAAKZ,EAAM,eAAe,IAAGW,EAAWR,EAASS,CAAG,EAAG,CACpG,GAAGhB,EAAM,aAAa,CAAC,IAAMkB,EAAgB,SAAS,eAAe,YAAY,EAAE,GAAGA,EAAgB,CAAC,IAAMC,EAAgB,SAAS,cAAc,OAAO,EAAEA,EAAgB,KAAK,SAASA,EAAgB,KAAK,aAAaA,EAAgB,MAAMD,EAAgB,MAClQJ,EAAY,YAAYK,CAAe,CAAE,CAAC,CAC3C,GAAGJ,EAAW,CAAC,IAAMK,EAAY,SAAS,cAAc,OAAO,EAAEA,EAAY,KAAK,SAASA,EAAY,KAAK,cAAcA,EAAY,MAAML,EAAWD,EAAY,YAAYM,CAAW,CAAE,CAAC,SAAS,KAAK,YAAYN,CAAW,EAAEA,EAAY,OAAO,EAAEN,EAAYP,EAAwB,CAAC,EAAEU,EAAc,EAAK,CAAE,EAAQU,EAAaR,GAAG,CAAC,GAAK,CAAC,KAAAS,EAAK,MAAAC,CAAK,EAAEV,EAAE,OAAOL,EAAYgB,IAAW,CAAC,GAAGA,EAAS,CAACF,CAAI,EAAEC,CAAK,EAAE,CAAE,EAAQE,EAAU,IAAI,CAAC,GAAGzB,EAAM,cAAc,CAACG,EAAO,WAAW,CAAC,IAAMuB,EAAS,oBACxeC,EAAM,SAAS,cAAc,OAAO,EAS1C,GAT4CA,EAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAMjC3B,EAAM,WAAW;AAAA;AAAA,cAEhC,SAAS,KAAK,YAAY2B,CAAK,EAC1C,CAAC,SAAS,eAAeD,CAAQ,EAAE,CAAC,IAAME,EAAO,SAAS,cAAc,QAAQ,EAAEA,EAAO,GAAGF,EAASE,EAAO,IAAI,8DAA8DA,EAAO,MAAM,GAAK,SAAS,KAAK,YAAYA,CAAM,CAAE,CAAC,CAAC,EAAE,CAAC5B,EAAM,aAAaA,EAAM,WAAW,CAAC,EAAE,IAAM6B,EAAU,CAAC,GAAGC,EAAO,KAAK,IAAI9B,EAAM,QAAQ,SAASA,EAAM,SAAS,KAAK,WAAWA,EAAM,UAAU,EAAQ+B,EAAa,CAAC,aAAa/B,EAAM,oBAAoB,OAAOA,EAAM,cAAc,SAASA,EAAM,SAAS,KAAK,WAAWA,EAAM,WAAW,gBAAgBA,EAAM,uBAAuB,UAAU,mBAAmBA,EAAM,kBAAkB,EAAE,EAAQgC,EAAc,CAAC,GAAGF,EAAO,SAAS,aAAa9B,EAAM,oBAAoB,OAAOA,EAAM,eAAe,SAASA,EAAM,SAAS,KAAK,WAAWA,EAAM,WAAW,gBAAgBA,EAAM,uBAAuB,UAAU,mBAAmBA,EAAM,kBAAkB,EAAE,EAAQiC,EAAY,CAAC,GAAGH,EAAO,OAAO,gBAAgB9B,EAAM,YAAY,aAAaA,EAAM,mBAAmB,OAAOA,EAAM,aAAa,SAASA,EAAM,SAAS,KAAK,WAAWA,EAAM,WAAW,UAAU,mBAAmBA,EAAM,kBAAkB,EAAE,EAAE,OAAoBkC,EAAM,OAAO,CAAC,SAAStB,EAAS,MAAM,CAAC,GAAGZ,EAAM,MAAM,GAAG6B,CAAS,EAAE,GAAG7B,EAAM,OAAO,SAAS,CAAcmC,EAAK,QAAQ,CAAC,MAAML,EAAO,MAAM,KAAK,SAAS,KAAK,MAAM,MAAMvB,EAAS,IAAI,SAAS,EAAI,CAAC,EAAE,IAAIP,EAAM,WAAW,IAAI,CAACI,EAAMgC,IAAqBD,EAAK,QAAQ,CAAC,MAAM,CAAC,GAAGL,EAAO,MAAM,GAAGC,CAAY,EAAE,KAAK3B,EAAM,KAAK,KAAKA,EAAM,OAAO,QAAQ,QAAQA,EAAM,KAAK,YAAYA,EAAM,KAAK,SAASA,EAAM,SAAS,SAASiB,CAAY,EAAEe,CAAK,CAAC,EAAEpC,EAAM,QAAQ,IAAI,CAACK,EAAO+B,IAAqBF,EAAM,SAAS,CAAC,MAAM,CAAC,GAAGJ,EAAO,OAAO,GAAGC,CAAY,EAAE,KAAK1B,EAAO,KAAK,SAASA,EAAO,SAAS,SAASgB,EAAa,SAAS,CAAcc,EAAK,SAAS,CAAC,MAAM,GAAG,SAAS,GAAK,SAAS,GAAK,SAAS9B,EAAO,IAAI,CAAC,EAAEA,EAAO,QAAQ,IAAI,CAACgC,EAAOC,IAA2BH,EAAK,SAAS,CAAC,MAAME,EAAO,SAASA,CAAM,EAAEC,CAAW,CAAC,CAAC,CAAC,EAAEF,CAAK,CAAC,EAAEpC,EAAM,UAAU,IAAI,CAACM,EAAK8B,IAAqBD,EAAK,WAAW,CAAC,MAAMH,EAAc,KAAK1B,EAAK,KAAK,YAAYA,EAAK,KAAK,SAASA,EAAK,SAAS,SAASe,CAAY,EAAEe,CAAK,CAAC,EAAEpC,EAAM,cAA2BmC,EAAK,QAAQ,CAAC,KAAK,SAAS,GAAG,aAAa,KAAK,aAAa,KAAK,sBAAsB,kBAAkBnC,EAAM,YAAY,CAAC,EAAemC,EAAK,SAAS,CAAC,MAAMF,EAAY,KAAK,SAAS,SAASvB,EAAW,SAASV,EAAM,UAAU,CAAC,CAAC,CAAC,CAAC,CAAE,CAACuC,EAAoBxC,EAAU,CAAC,OAAO,CAAC,KAAKyC,EAAY,OAAO,MAAM,UAAU,aAAa,EAAE,EAAE,OAAO,CACl/E,KAAKA,EAAY,OAAO,MAAM,UAAU,aAAa,EAAE,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,cAAc,aAAa,mBAAmB,EAAE,WAAW,CAAC,KAAKA,EAAY,MAAM,gBAAgB,CAAC,KAAKA,EAAY,OAAO,SAAS,CAAC,KAAK,CAAC,KAAKA,EAAY,OAAO,YAAY,aAAa,MAAM,MAAM,EAAE,KAAK,CAAC,KAAKA,EAAY,KAAK,QAAQ,CAAC,OAAO,SAAS,OAAO,OAAO,EAAE,aAAa,CAAC,OAAO,SAAS,OAAO,OAAO,EAAE,MAAM,MAAM,EAAE,SAAS,CAAC,KAAKA,EAAY,QAAQ,MAAM,WAAW,aAAa,EAAI,EAAE,gBAAgB,CAAC,KAAKA,EAAY,QAAQ,MAAM,qBAAqB,aAAa,EAAK,CAAC,CAAC,EAAE,MAAM,aAAa,aAAa,CAAC,CAAC,KAAK,OAAO,KAAK,OAAO,SAAS,GAAK,gBAAgB,EAAK,EAAE,CAAC,KAAK,MAAM,KAAK,SAAS,SAAS,EAAI,EAAE,CAAC,KAAK,YAAY,KAAK,OAAO,SAAS,EAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAKA,EAAY,MAAM,gBAAgB,CAAC,KAAKA,EAAY,OAAO,SAAS,CAAC,KAAK,CAAC,KAAKA,EAAY,OAAO,YAAY,UAAU,MAAM,MAAM,EAAE,QAAQ,CAAC,KAAKA,EAAY,MAAM,gBAAgB,CAAC,KAAKA,EAAY,OAAO,YAAY,KAAK,EAAE,MAAM,SAAS,EAAE,SAAS,CAAC,KAAKA,EAAY,QAAQ,MAAM,WAAW,aAAa,EAAI,CAAC,CAAC,EAAE,MAAM,UAAU,aAAa,CAAC,CAAC,KAAK,SAAS,QAAQ,CAAC,UAAU,eAAe,mBAAmB,EAAE,SAAS,EAAI,CAAC,CAAC,EAAE,UAAU,CAAC,KAAKA,EAAY,MAAM,gBAAgB,CAAC,KAAKA,EAAY,OAAO,SAAS,CAAC,KAAK,CAAC,KAAKA,EAAY,OAAO,YAAY,aAAa,MAAM,MAAM,EAAE,SAAS,CAAC,KAAKA,EAAY,QAAQ,MAAM,WAAW,aAAa,EAAI,CAAC,CAAC,EAAE,MAAM,YAAY,aAAa,CAAC,CAAC,KAAK,aAAa,SAAS,EAAI,CAAC,CAAC,EAAE,oBAAoB,CAAC,KAAKA,EAAY,OAAO,MAAM,wBAAwB,aAAa,EAAE,EAAE,mBAAmB,CAAC,KAAKA,EAAY,OAAO,MAAM,uBAAuB,aAAa,CAAC,EAAE,YAAY,CAAC,KAAKA,EAAY,MAAM,MAAM,eAAe,aAAa,SAAS,EAAE,uBAAuB,CAAC,KAAKA,EAAY,MAAM,MAAM,2BAA2B,aAAa,SAAS,EAAE,mBAAmB,CAAC,KAAKA,EAAY,MAAM,MAAM,uBAAuB,aAAa,0BAA0B,EAAE,QAAQ,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,EAAE,aAAa,CAAC,KAAKA,EAAY,OAAO,MAAM,gBAAgB,aAAa,EAAE,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,cAAc,aAAa,QAAQ,EAAE,cAAc,CAAC,KAAKA,EAAY,OAAO,MAAM,iBAAiB,aAAa,EAAE,EAAE,eAAe,CAAC,KAAKA,EAAY,OAAO,MAAM,kBAAkB,aAAa,GAAG,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,MAAM,YAAY,aAAa,EAAE,EAAE,aAAa,CAAC,KAAKA,EAAY,OAAO,MAAM,gBAAgB,aAAa,EAAE,CAAC,CAAC,EAAE,IAAMV,EAAO,CAAC,KAAK,CAAC,QAAQ,OAAO,cAAc,SAAS,QAAQ,MAAM,UAAU,OAAO,gBAAgB,aAAa,EAAE,MAAM,CAAC,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,gBAAgB,UAAU,QAAQ,MAAM,EAAE,OAAO,CAAC,SAAS,UAAU,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,gBAAgB,UAAU,QAAQ,MAAM,EAAE,SAAS,CAAC,OAAO,QAAQ,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,gBAAgB,UAAU,QAAQ,OAAO,OAAO,MAAM,EAAE,OAAO,CAAC,WAAW,MAAM,MAAM,OAAO,QAAQ,OAAO,OAAO,OAAO,MAAM,UAAU,OAAO,SAAS,CAAC",
  "names": ["FormSpark", "props", "generateInitialFormData", "data", "window", "field", "select", "area", "formData", "setFormData", "ye", "submitting", "setSubmitting", "onSubmit", "e", "formElement", "senderName", "key", "input", "uploadcareInput", "uploadcareField", "senderInput", "handleChange", "name", "value", "prevData", "ue", "scriptId", "style", "script", "formStyle", "styles", "elementStyle", "textareaStyle", "buttonStyle", "u", "p", "index", "option", "optionIndex", "addPropertyControls", "ControlType"]
}
