{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/zd3eQq4DoApV1wArMm8K/ZA3W7BNB1VDpEADFK7Cd/FormLink.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import React,{useState,useEffect,useRef}from\"react\";import{motion,AnimatePresence}from\"framer-motion\";import*as ReactDOM from\"react-dom\";// --- Subject: Constants and Assets ---\n// Icon Definitions\nconst ICONS={none:null,Phone:`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentColor\" d=\"M20.33,21.48l2.24-2.24a2.19,2.19,0,0,1,2.34-.48l2.73,1.09a2.18,2.18,0,0,1,1.36,2v5A2.17,2.17,0,0,1,26.72,29C7.59,27.81,3.73,11.61,3,5.41A2.17,2.17,0,0,1,5.17,3H10a2.16,2.16,0,0,1,2,1.36l1.09,2.73a2.16,2.16,0,0,1-.47,2.34l-2.24,2.24S11.67,20.4,20.33,21.48Z\"/></svg>`,Document:`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentColor\" d=\"m26,30h-5v-2h5v-2h-3c-1.1025,0-2-.8975-2-2v-2c0-1.103.8975-2,2-2h5v2h-5v2h3c1.1025,0,2,.8975,2,2v2c0,1.1025-.8975,2-2,2Z\"/><rect fill=\"currentColor\" x=\"10\" y=\"20\" width=\"6\" height=\"2\"/><rect fill=\"currentColor\" x=\"10\" y=\"16\" width=\"8\" height=\"2\"/><path fill=\"currentColor\" d=\"m24,16.9922h2v-6.9922c0-.1001,0-.2998-.1001-.3999-.0999-.1001-.0999-.2002-.2-.3003l-7-7c-.0999-.0996-.2-.1997-.3-.1997-.0999-.1001-.2998-.1001-.3999-.1001h-10c-.5,0-1,.2002-1.3999.6001-.4001.3999-.6001.8999-.6001,1.3999v24c0,.5.2,1,.6001,1.3999.3999.3999.8999.6001,1.3999.6001h7.9473v-2h-7.9473V4h8v6c0,.5.2,1,.6001,1.3999.3999.3999.8999.6001,1.3999.6001h6v4.9922Zm-6-6.9922v-5.6001l5.6001,5.6001h-5.6001Z\"/></svg>`,PDF:`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><polygon fill=\"currentColor\" points=\"30 18 30 16 24 16 24 26 26 26 26 22 29 22 29 20 26 20 26 18 30 18\"/><path fill=\"currentColor\" d=\"M19,26H15V16h4a3.0033,3.0033,0,0,1,3,3v4A3.0033,3.0033,0,0,1,19,26Zm-2-2h2a1.0011,1.0011,0,0,0,1-1V19a1.0011,1.0011,0,0,0-1-1H17Z\"/><path fill=\"currentColor\" d=\"M11,16H6V26H8V23h3a2.0027,2.0027,0,0,0,2-2V18A2.0023,2.0023,0,0,0,11,16ZM8,21V18h3l.001,3Z\"/><path fill=\"currentColor\" d=\"M22,14V10a.9092.9092,0,0,0-.3-.7l-7-7A.9087.9087,0,0,0,14,2H4A2.0059,2.0059,0,0,0,2,4V28a2,2,0,0,0,2,2H20V28H4V4h8v6a2.0059,2.0059,0,0,0,2,2h6v2Zm-8-4V4.4L19.6,10Z\"/></svg>`,\"Arrow Right\":`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><polygon fill=\"currentColor\" points=\"18 6 16.57 7.393 24.15 15 4 15 4 17 24.15 17 16.57 24.573 18 26 28 16 18 6\"/></svg>`,Menu:`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><rect fill=\"currentColor\" x=\"4\" y=\"6\" width=\"24\" height=\"2\"/><rect fill=\"currentColor\" x=\"4\" y=\"24\" width=\"24\" height=\"2\"/><rect fill=\"currentColor\" x=\"4\" y=\"12\" width=\"24\" height=\"2\"/><rect fill=\"currentColor\" x=\"4\" y=\"18\" width=\"24\" height=\"2\"/></svg>`,Chat:`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentColor\" d=\"M17.74,30,16,29l4-7h6a2,2,0,0,0,2-2V8a2,2,0,0,0-2-2H6A2,2,0,0,0,4,8V20a2,2,0,0,0,2,2h9v2H6a4,4,0,0,1-4-4V8A4,4,0,0,1,6,4H26a4,4,0,0,1,4,4V20a4,4,0,0,1-4,4H21.16Z\"/><rect fill=\"currentColor\" x=\"8\" y=\"10\" width=\"16\" height=\"2\"/><rect fill=\"currentColor\" x=\"8\" y=\"16\" width=\"10\" height=\"2\"/></svg>`,Download:`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"currentColor\" d=\"M26,24v4H6V24H4v4H4a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2h0V24Z\"/><polygon fill=\"currentColor\" points=\"26 14 24.59 12.59 17 20.17 17 2 15 2 15 20.17 7.41 12.59 6 14 16 24 26 14\"/></svg>`,Arrow:`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><polygon fill=\"currentColor\" points=\"10 6 10 8 22.59 8 6 24.59 7.41 26 24 9.41 24 22 26 22 26 6 10 6\"/></svg>`};const ICON_NAMES=Object.keys(ICONS);// Company Logo SVG\nconst UNIPACK_LOGO_SVG=`<svg width=\"120\" height=\"41\" viewBox=\"0 0 1054 360\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M544.125 180.3H507.375V126.12H544.125C556.585 126.12 562.815 132.84 562.815 146.28V160.14C562.815 173.58 556.585 180.3 544.125 180.3Z\" fill=\"#F00027\"/>\n<path d=\"M637.829 126.33L642.449 144.6L659.459 200.25H614.519L631.109 144.6L635.729 126.33H637.829Z\" fill=\"#F00027\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1053.75 0H0V360H1053.75V0ZM163.47 111.42H133.44V202.56C133.44 243.72 147.09 260.52 186.15 260.52C225.21 260.52 238.86 243.72 238.86 202.56V111.42H208.83V206.55C208.83 225.87 203.16 233.85 186.15 233.85C169.14 233.85 163.47 225.87 163.47 206.55V111.42ZM305.615 179.46L342.575 258H375.335V111.42H347.195V188.7L348.875 213.27H345.515L336.275 189.96L299.315 111.42H266.555V258H294.695V180.72L293.015 156.15H296.375L305.615 179.46ZM399.128 258H463.598V234.27H446.378V135.15H463.598V111.42H399.128V135.15H416.348V234.27H399.128V258ZM490.575 111.42V258H507.375V195H544.545C568.765 195 580.875 181.07 580.875 153.21C580.875 125.35 568.765 111.42 544.545 111.42H490.575ZM663.239 214.11L676.259 258H693.479L647.489 111.42H626.489L580.709 258H597.509L610.529 214.11H663.239ZM736.624 256.11C743.204 259.05 750.624 260.52 758.884 260.52C770.924 260.52 780.724 257.79 788.284 252.33C795.984 246.73 801.934 238.68 806.134 228.18L792.694 219.78C790.034 228.18 786.114 234.62 780.934 239.1C775.754 243.44 768.404 245.61 758.884 245.61C747.684 245.61 739.004 241.62 732.844 233.64C726.824 225.52 723.814 214.67 723.814 201.09V168.33C723.814 154.75 726.824 143.97 732.844 135.99C739.004 127.87 747.684 123.81 758.884 123.81C768.124 123.81 775.194 125.91 780.094 130.11C785.134 134.17 788.984 140.19 791.644 148.17L805.084 139.98C800.884 129.48 795.144 121.71 787.864 116.67C780.584 111.49 770.924 108.9 758.884 108.9C750.624 108.9 743.204 110.44 736.624 113.52C730.044 116.46 724.444 121.01 719.824 127.17C715.344 133.33 711.844 141.24 709.324 150.9C706.944 160.42 705.754 171.69 705.754 184.71C705.754 197.73 706.944 209.07 709.324 218.73C711.844 228.25 715.344 236.09 719.824 242.25C724.444 248.41 730.044 253.03 736.624 256.11ZM846.779 209.28L865.889 185.34L908.519 258H928.259L876.809 174.21L925.109 111.42H905.789L869.249 160.35L847.619 190.59H845.519L846.779 160.35V111.42H829.979V258H846.779V209.28Z\" fill=\"#F00027\"/>\n</svg>`;// --- Subject: Enhanced Button Component ---\n/**\n * Renders a customizable button with optional icon and hover/tap effects.\n * Uses Framer Motion for animations.\n */function EnhancedButton({text,iconName,iconColor,iconSize,iconPosition,iconSpacing,backgroundColor,hoverBackgroundColor,activeBackgroundColor,textColor,borderColor,borderWidth,borderRadius,paddingX,paddingY,fontSize,fontWeight,lineHeightMultiplier,letterSpacingEm,onClick,width=\"100%\",height,disabled=false}){const iconSvg=ICONS[iconName];const hasIcon=iconName!==\"none\"&&iconSvg;// --- Button Styles ---\nconst styles={button:{display:\"inline-flex\",alignItems:\"center\",justifyContent:\"space-between\",width:width,height:`${height}px`,padding:`${paddingY}px ${paddingX}px`,backgroundColor:backgroundColor,color:textColor,border:`${borderWidth}px solid ${borderColor}`,borderRadius:`${borderRadius}px`,fontFamily:\"Geist, -apple-system, BlinkMacSystemFont, sans-serif\",fontSize:`${fontSize}px`,fontWeight:fontWeight,lineHeight:`calc(${fontSize}px * ${lineHeightMultiplier})`,letterSpacing:`${letterSpacingEm}em`,cursor:disabled?\"not-allowed\":\"pointer\",outline:\"none\",transition:\"background-color 150ms ease-out, transform 100ms ease-out, box-shadow 150ms ease-out\",opacity:disabled?.6:1,position:\"relative\",boxSizing:\"border-box\",gap:hasIcon?`${iconSpacing}px`:\"0\",flexDirection:iconPosition===\"left\"?\"row\":\"row-reverse\"},iconWrapper:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:`${iconSize}px`,height:`${iconSize}px`,flexShrink:0,color:iconColor},textSpan:{// Ensure text doesn't unnecessarily wrap if space allows\nwhiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",flexGrow:1,textAlign:\"left\"}};// --- Animation Variants ---\nconst buttonVariants={rest:{backgroundColor:backgroundColor,scale:1,boxShadow:\"0 1px 2px rgba(0,0,0,0.05)\"},hover:{backgroundColor:hoverBackgroundColor,boxShadow:\"0 2px 5px rgba(0,0,0,0.1)\"},tap:{scale:.98,backgroundColor:activeBackgroundColor,boxShadow:\"0 1px 1px rgba(0,0,0,0.1)\"},disabled:{opacity:.6,cursor:\"not-allowed\",backgroundColor:backgroundColor,scale:1,boxShadow:\"none\"}};// --- Icon Element ---\nconst IconElement=hasIcon?/*#__PURE__*/_jsx(\"span\",{style:styles.iconWrapper,dangerouslySetInnerHTML:{__html:iconSvg.replace(\"<svg\",`<svg style=\"width:100%;height:100%;display:block;\"`)},\"aria-hidden\":\"true\"// Hide decorative icon from screen readers\n}):null;// --- Render ---\nreturn /*#__PURE__*/_jsxs(motion.button,{style:styles.button,onClick:!disabled?onClick:undefined,variants:buttonVariants,initial:\"rest\",whileHover:!disabled?\"hover\":\"disabled\",whileTap:!disabled?\"tap\":\"disabled\",animate:disabled?\"disabled\":\"rest\",transition:{duration:.15,ease:\"easeOut\"},disabled:disabled,children:[/*#__PURE__*/_jsx(\"span\",{style:styles.textSpan,children:text}),hasIcon&&IconElement]});}// --- Subject: Portal Component ---\n/**\n * Renders its children into a dedicated DOM node outside the main React tree.\n * Creates the container div if it doesn't exist.\n * Ensures the Geist font is loaded.\n */function ContactFormPortal({isOpen,children}){const[portalContainer,setPortalContainer]=useState(null);// --- Effect: Create or Find Portal Container ---\nuseEffect(()=>{// Avoid running on server\nif(typeof document===\"undefined\")return;let container=document.getElementById(\"contact-form-portal-container\");if(!container){container=document.createElement(\"div\");container.id=\"contact-form-portal-container\";// Style portal container for positioning context if needed\ncontainer.style.position=\"relative\";container.style.zIndex=\"10000\"// High z-index\n;document.body.appendChild(container);}setPortalContainer(container);// Cleanup function (optional, but good practice if needed later)\n// return () => {\n//     if (container && document.body.contains(container) && /* condition */) {\n//         // document.body.removeChild(container);\n//     }\n// };\n},[]);// --- Effect: Load Geist Font ---\nuseEffect(()=>{if(typeof document===\"undefined\"||document.getElementById(\"geist-font\")){return;// Don't load if server-side or already loaded\n}const link=document.createElement(\"link\");link.id=\"geist-font\";link.rel=\"stylesheet\";link.href=\"https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700;800&display=swap\";document.head.appendChild(link);},[]);// --- Render ---\n// Render children into the portal container only if it exists and modal is open\nif(!portalContainer||!isOpen){return null;}return /*#__PURE__*/ReactDOM.createPortal(children,portalContainer);}// --- Subject: Modal Component ---\n/**\n * Renders a modal dialog with backdrop, header (logo, close button), and body.\n * Handles closing via backdrop click or Escape key.\n * Manages body scroll locking.\n */function ContactFormModal({children,onClose,logoSvg,brandColor}){const modalRef=useRef(null);const bodyOverflowRef=useRef(null)// Store original body overflow\n;const bodyPositionRef=useRef(null)// Store original body position\n;const bodyTopRef=useRef(null)// Store original body top offset\n;const bodyWidthRef=useRef(null)// Store original body width\n;const scrollYRef=useRef(0)// Store scroll position\n;const isMobile=useRef(typeof window!==\"undefined\"&&window.innerWidth<=768);// --- Effect: Event Listeners and Scroll Lock ---\nuseEffect(()=>{if(typeof window===\"undefined\")return;// --- Event Handlers ---\nconst handleResize=()=>{isMobile.current=window.innerWidth<=768;};const handleEscape=e=>{if(e.key===\"Escape\")onClose();};// --- Scroll Locking ---\n// Store original body styles and scroll position *before* modifying\nbodyOverflowRef.current=document.body.style.overflow;bodyPositionRef.current=document.body.style.position;bodyTopRef.current=document.body.style.top;bodyWidthRef.current=document.body.style.width;scrollYRef.current=window.scrollY;// Apply scroll lock styles\ndocument.body.style.overflow=\"hidden\";document.body.style.position=\"fixed\"// Use fixed to prevent jump on some browsers\n;document.body.style.top=`-${scrollYRef.current}px`;document.body.style.width=\"100%\"// Prevent width changes\n;// --- Add Event Listeners ---\nwindow.addEventListener(\"resize\",handleResize);document.addEventListener(\"keydown\",handleEscape);// --- Cleanup Function ---\nreturn()=>{window.removeEventListener(\"resize\",handleResize);document.removeEventListener(\"keydown\",handleEscape);// Restore original body styles safely\ndocument.body.style.overflow=bodyOverflowRef.current||\"\";document.body.style.position=bodyPositionRef.current||\"\";document.body.style.top=bodyTopRef.current||\"\";document.body.style.width=bodyWidthRef.current||\"\";// Restore scroll position\nwindow.scrollTo(0,scrollYRef.current);};},[onClose])// Dependency array ensures effect runs only when onClose changes\n;// --- Event Handler: Backdrop Click ---\nconst handleBackdropClick=e=>{// Close only if the click is directly on the backdrop, not the modal content\nif(modalRef.current&&!modalRef.current.contains(e.target)){onClose();}};// --- Styles ---\n// Professional and modern styling\nconst styles={modalBackdrop:{position:\"fixed\",top:0,left:0,width:\"100vw\",height:\"100vh\",backgroundColor:\"rgba(0, 0, 0, 0.7)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",zIndex:9999,backdropFilter:\"blur(5px)\",WebkitBackdropFilter:\"blur(5px)\",fontFamily:\"Geist, -apple-system, BlinkMacSystemFont, sans-serif\",overflow:\"hidden\"},modalContainer:{position:\"relative\",width:\"100%\",height:\"100%\",maxWidth:isMobile.current?\"100vw\":\"36rem\",maxHeight:isMobile.current?\"100vh\":\"92vh\",background:\"white\",borderRadius:isMobile.current?\"0\":\"0.75rem\",boxShadow:\"0 20px 25px -5px rgba(0, 0, 0, 0.15), 0 10px 10px -5px rgba(0, 0, 0, 0.1)\",overflow:\"hidden\",display:\"flex\",flexDirection:\"column\",zIndex:1e4},modalHeader:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",padding:\"1rem 1.5rem\",borderBottom:\"1px solid #e5e7eb\",flexShrink:0,backgroundColor:\"#FCFCFC\"},logoContainer:{height:\"2rem\",display:\"flex\",alignItems:\"center\"},closeButton:{background:\"transparent\",border:\"none\",padding:0,width:\"2.5rem\",height:\"2.5rem\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#6b7280\",cursor:\"pointer\",borderRadius:\"50%\",transition:\"background-color 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1)\"},closeButtonHover:{backgroundColor:\"#f3f4f6\",color:\"#111827\"},modalBody:{flex:1,overflowY:\"auto\",WebkitOverflowScrolling:\"touch\"}};// --- State: Close Button Hover ---\nconst[isCloseHovered,setIsCloseHovered]=useState(false);// --- Render ---\nreturn /*#__PURE__*/_jsx(motion.div,{style:styles.modalBackdrop,onClick:handleBackdropClick,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2,ease:\"easeOut\"},\"aria-modal\":\"true\"// Indicate this is a modal dialog\n,role:\"dialog\"// Role for accessibility\n,children:/*#__PURE__*/_jsxs(motion.div,{style:styles.modalContainer,ref:modalRef,initial:{opacity:0,y:isMobile.current?50:20,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:isMobile.current?50:20,scale:.95},transition:{duration:.25,ease:\"easeOut\"},role:\"document\"// Contains the main content of the dialog\n,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.modalHeader,children:[/*#__PURE__*/_jsx(\"div\",{style:styles.logoContainer,dangerouslySetInnerHTML:{__html:logoSvg}}),/*#__PURE__*/_jsx(\"button\",{style:{...styles.closeButton,...isCloseHovered?styles.closeButtonHover:{}},onClick:onClose,onMouseEnter:()=>setIsCloseHovered(true),onMouseLeave:()=>setIsCloseHovered(false),\"aria-label\":\"Close quote request form\"// Clear aria label\n,children:/*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\"// Icon is decorative\n,children:[/*#__PURE__*/_jsx(\"line\",{x1:\"18\",y1:\"6\",x2:\"6\",y2:\"18\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"6\",y1:\"6\",x2:\"18\",y2:\"18\"})]})})]}),/*#__PURE__*/_jsx(\"div\",{style:styles.modalBody,children:children})]})});}// --- Subject: Contact Form Component ---\n/**\n * Renders the contact form with input fields, validation, submission logic,\n * and success screen.\n * Validation errors are shown only after attempting submission.\n * Phone number validation is relaxed for international input.\n */function ContactForm({// Callbacks & API\nonClose,apiEndpoint,// Data & Options\ndebugMode,includeFullPageUrl,productUrl,productCode,// Styling\nbrandColor,formLetterSpacingEm,formFontSize,// Form Content Props (exposed from QuoteButtonWithForm)\nformTitle,formIntroText,nameLabel,nameRequired,namePlaceholder,mobileLabel,mobileRequired,mobileHelperText,mobilePlaceholder,emailLabel,emailRequired,emailHelperText,emailPlaceholder,companyLabel,companyRequired,companyPlaceholder,submitButtonText,successTitle,successMessage}){// --- State Hooks ---\nconst[formData,setFormData]=useState({name:\"\",mobile:\"\",email:\"\",company:\"\",quote:\"Website Quote Request\",page_url:\"\",product_url:productUrl||\"\",product_code:productCode||\"\"});const[errors,setErrors]=useState({});const[touched,setTouched]=useState({})// Tracks if submit was attempted\n;const[isSubmitting,setIsSubmitting]=useState(false);const[isSuccess,setIsSuccess]=useState(false);const[submitError,setSubmitError]=useState(\"\");const[submittedData,setSubmittedData]=useState(null)// Store data shown on success\n;const[responseData,setResponseData]=useState(null)// Store API response for debug\n;const nameInputRef=useRef(null)// For focusing the first input\n;// --- Effect: Set Initial Page URL & Focus ---\nuseEffect(()=>{// Set page URL on mount\nif(typeof window!==\"undefined\"){setFormData(prev=>({...prev,page_url:includeFullPageUrl?window.location.href:\"\"}));}// Focus the first input field after a short delay for modal animation\nconst timer=setTimeout(()=>{if(nameInputRef.current){nameInputRef.current.focus();}},300)// Adjust delay if needed\n;return()=>clearTimeout(timer)// Cleanup timer\n;},[includeFullPageUrl])// Rerun if URL inclusion setting changes\n;// --- Effect: Update Product Info if Props Change ---\nuseEffect(()=>{setFormData(prev=>({...prev,product_url:productUrl||\"\",product_code:productCode||\"\"}));},[productUrl,productCode]);// --- Function: Validate Single Field ---\n// This is called by validateForm ONLY during the submission attempt.\n// It checks rules based on whether the field is marked as required.\nconst validateField=(name,value)=>{// Trim whitespace from string values for validation\nconst trimmedValue=typeof value===\"string\"?value.trim():value;switch(name){case\"name\":// Error only if name IS required AND the value is empty\nreturn nameRequired&&!trimmedValue?`Please enter your ${nameLabel.toLowerCase()}.`:\"\"// No error otherwise\n;case\"mobile\":// Error only if mobile IS required AND the value is empty\n// No complex regex, just check for presence if required.\nreturn mobileRequired&&!trimmedValue?`Please enter your ${mobileLabel.toLowerCase()}.`:\"\"// No error otherwise\n;case\"email\":// First check if required and empty\nif(emailRequired&&!trimmedValue){return`Please enter your ${emailLabel.toLowerCase()}.`;}// If NOT empty, and IS required, THEN validate format\n// If it's optional, we only validate format if something was entered\nif(trimmedValue&&!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(trimmedValue)){// Validate format only if a value exists, regardless of required status\n// This prevents invalid emails even if optional. If empty optional is okay.\nreturn\"Please provide a valid email address.\";}return\"\"// No error\n;case\"company\":// Error *ONLY IF* company IS required AND the value is empty.\n// If companyRequired is false, this condition is always false.\nreturn companyRequired&&!trimmedValue?`Please enter your ${companyLabel.toLowerCase()}.`:\"\"// No error if optional or if required and filled\n;default:return\"\"// No validation defined for other fields\n;}};// --- Event Handler: Field Change ---\nconst handleChange=e=>{const{name,value}=e.target;setFormData(prev=>({...prev,[name]:value}));// Clear the specific error for this field if the user starts typing again *after* a failed submission\nif(errors[name]){setErrors(prev=>({...prev,[name]:\"\"}));}};// --- Function: Validate Entire Form ---\n// Called only on submit attempt\nconst validateForm=()=>{const newErrors={};let isValid=true;const fieldsToValidate=[\"name\",\"mobile\",\"email\",\"company\"]// Fields subject to validation\n;// Validate relevant fields\nfieldsToValidate.forEach(field=>{const error=validateField(field,formData[field]);if(error){newErrors[field]=error;isValid=false;}});setErrors(newErrors)// Update error state\n;return isValid;};// --- Event Handler: Form Submission ---\nconst handleSubmit=async e=>{e.preventDefault()// Prevent default browser submission\n;// Mark all fields as 'touched' to potentially trigger error display if client-side validation fails\nconst allTouched={name:true,mobile:true,email:true,company:true};setTouched(allTouched);// Run client-side validation first\nif(!validateForm()){// Focus the first field with a client-side error\nconst fieldOrder=[\"name\",\"email\",\"mobile\",\"company\"];const firstErrorField=fieldOrder.find(f=>errors[f]);const inputElement=firstErrorField?document.getElementById(firstErrorField):null;if(inputElement){inputElement.focus();}return;// Stop submission if client-side validation fails\n}// --- If client-side validation passes, proceed to submission ---\nsetIsSubmitting(true);setSubmitError(\"\")// Clear previous submission errors\n;// --- Prepare data for API submission ---\n// Create a copy of the current form data to potentially modify for the API\nconst dataForApi={...formData};// --- BEGIN MODIFICATION ---\n// Check if the company field is empty (or just whitespace)\n// This modification happens *only* for the data being sent to the API.\nif(!dataForApi.company||dataForApi.company.trim()===\"\"){// If it's empty or only whitespace, set the default value\ndataForApi.company=\"Not Provided\";// Optional: Log this action if in debug mode for clarity\nif(debugMode){console.log(\"handleSubmit: Company field was empty, setting default 'Not Provided' for API submission.\");}}// --- END MODIFICATION ---\n// Store the *original* form data to display on the success screen/debug\nconst originalFormDataForDisplay={...formData};try{// --- API Call ---\n// Send the potentially modified data (dataForApi) to the endpoint\nconst response=await fetch(apiEndpoint,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(dataForApi)});// --- Response Handling ---\nlet responseBody={success:false};try{const contentType=response.headers.get(\"content-type\");if(contentType&&contentType.indexOf(\"application/json\")!==-1){responseBody=await response.json();}else if(response.ok){responseBody={success:true,message:\"Submitted successfully (non-JSON response).\"};}}catch(parseError){console.error(\"Error parsing response JSON:\",parseError);if(response.ok){responseBody={success:true,message:\"Submitted successfully (response parsing error).\"};}else{throw new Error(`Request failed with status ${response.status} and response parsing failed.`);}}setResponseData(responseBody)// Store API response for debug\n;// Check if response indicates failure (even after potential modification)\nif(!response.ok){const errorMessage=responseBody?.error||responseBody?.message||response.statusText||`Request failed with status ${response.status}`;throw new Error(errorMessage);}// --- Success ---\n// Use the ORIGINAL form data for the success screen display and debug output\nsetSubmittedData(originalFormDataForDisplay);setIsSuccess(true);}catch(error){// --- Error Handling ---\nconsole.error(\"Form submission error:\",error);setSubmitError(error.message||\"An unexpected error occurred. Please check your connection and try again.\");// If the error STILL mentions company required, it means the backend\n// might be rejecting \"Not Provided\" or has other issues.\n// Log the data we actually sent for debugging.\nif(debugMode){console.error(\"Data sent to API causing error:\",dataForApi);}}finally{// --- Cleanup ---\nsetIsSubmitting(false)// Ensure submitting state is reset\n;}};// --- Helper: Format JSON for Debug Display ---\nconst formatJSON=obj=>JSON.stringify(obj,null,2);// --- Effect: Add Spinner CSS Keyframes ---\n// Ensures spinner animation is available\nuseEffect(()=>{if(typeof document===\"undefined\"||document.getElementById(\"contact-spinner-keyframes\"))return;const styleSheet=document.createElement(\"style\");styleSheet.id=\"contact-spinner-keyframes\";styleSheet.type=\"text/css\";styleSheet.innerText=`@keyframes spin { to { transform: rotate(360deg); } }`;document.head.appendChild(styleSheet);},[]);// --- Styles ---\n// Modern, professional styling with improved typography and accessibility considerations\nconst styles={formContainer:{padding:\"1.5rem 2rem 2rem 2rem\",fontFamily:\"Geist, -apple-system, BlinkMacSystemFont, sans-serif\",color:\"#1f2937\",height:\"100%\",boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\"},heading:{fontSize:\"1.5rem\",fontWeight:600,marginBottom:\"0.5rem\",marginTop:0,color:\"#111827\",lineHeight:\"1.3\",letterSpacing:`${formLetterSpacingEm}em`},introText:{fontSize:`${formFontSize*.875}px`,color:\"#4b5563\",marginBottom:\"1.5rem\",marginTop:0,lineHeight:\"1.6\",letterSpacing:`${formLetterSpacingEm}em`},productInfo:{backgroundColor:\"#f9fafb\",padding:\"0.75rem 1rem\",borderRadius:\"0.375rem\",marginBottom:\"1.5rem\",borderLeft:`4px solid ${brandColor}`,fontSize:`${formFontSize*.875}px`,color:\"#374151\"},productInfoText:{margin:0,letterSpacing:`${formLetterSpacingEm}em`},form:{display:\"flex\",flexDirection:\"column\",gap:\"1.25rem\",flexGrow:1},formField:{display:\"flex\",flexDirection:\"column\",gap:\"0.375rem\"},labelContainer:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},label:{fontSize:`${formFontSize*.875}px`,fontWeight:500,color:\"#374151\",letterSpacing:`${formLetterSpacingEm}em`},required:{color:brandColor,paddingLeft:\"0.25rem\"},optional:{fontSize:`${formFontSize*.75}px`,color:\"#6b7280\",marginLeft:\"0.5rem\"},input:hasError=>({// Function to apply error styles conditionally\n    width:\"100%\",height:\"2.75rem\",padding:\"0 0.75rem\",border:`1px solid ${hasError?\"#ef4444\":\"#d1d5db\"}`,backgroundColor:\"#ffffff\",fontSize:`${formFontSize*.875}px`,color:\"#1f2937\",borderRadius:\"0.375rem\",transition:\"border-color 150ms ease-out, box-shadow 150ms ease-out\",boxSizing:\"border-box\",appearance:\"none\",WebkitAppearance:\"none\",margin:0,outline:\"none\",// Subtle box-shadow for error state\n    boxShadow:hasError?`0 0 0 1px rgba(239, 68, 68, 0.5)`:\"none\",\":focus\":{// Use pseudo-selector for focus state\n    borderColor:hasError?\"#ef4444\":brandColor,boxShadow:`0 0 0 1px ${hasError?\"rgba(239, 68, 68, 0.5)\":brandColor}`}}),// Note: Direct :focus style in JS is tricky. Use state or CSS classes if needed.\n// The boxShadow approach above provides a visual cue similar to focus ring.\nhelperText:{fontSize:`${formFontSize*.75}px`,color:\"#6b7280\",lineHeight:1.4,margin:0,letterSpacing:`${formLetterSpacingEm}em`},errorText:{color:\"#ef4444\",fontSize:`${formFontSize*.75}px`,lineHeight:1.4,margin:\"0.125rem 0 0 0\",letterSpacing:`${formLetterSpacingEm}em`},submitButtonContainer:{marginTop:\"0.5rem\"},submitButton:isSubmitting=>({// Style function based on submitting state\n    width:\"100%\",height:\"2.75rem\",padding:\"0 1rem\",backgroundColor:isSubmitting?\"#9ca3af\":brandColor,color:\"white\",border:\"none\",fontSize:`${formFontSize*.875}px`,fontWeight:500,cursor:isSubmitting?\"not-allowed\":\"pointer\",borderRadius:\"0.375rem\",transition:\"background-color 150ms ease-out, opacity 150ms ease-out\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:\"0.5rem\",opacity:isSubmitting?.8:1}),loadingSpinner:{width:\"1rem\",height:\"1rem\",borderRadius:\"50%\",border:\"2px solid rgba(255, 255, 255, 0.3)\",borderTopColor:\"#FFFFFF\",animation:\"spin 1s linear infinite\"},submitError:{// Style for the general submission error message box\ndisplay:\"flex\",alignItems:\"flex-start\",gap:\"0.5rem\",backgroundColor:\"#fef2f2\",padding:\"0.75rem 1rem\",marginBottom:\"1rem\",borderRadius:\"0.375rem\",border:\"1px solid #fecaca\",borderLeft:`4px solid #ef4444`},submitErrorIcon:{flexShrink:0,marginTop:\"2px\",color:\"#ef4444\"},submitErrorText:{margin:0,fontSize:`${formFontSize*.875}px`,color:\"#b91c1c\",letterSpacing:`${formLetterSpacingEm}em`,lineHeight:1.5},// --- Success Screen Styles ---\nsuccessContainer:{padding:\"2rem 2rem 3rem 2rem\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",textAlign:\"center\",height:\"100%\",boxSizing:\"border-box\"},successIcon:{marginBottom:\"1rem\",color:\"#10b981\"},successHeading:{fontSize:\"1.5rem\",fontWeight:600,color:\"#111827\",marginBottom:\"0.75rem\",marginTop:0,letterSpacing:`${formLetterSpacingEm}em`},successText:{color:\"#374151\",fontSize:`${formFontSize}px`,lineHeight:1.6,margin:\"0 0 1.5rem 0\",maxWidth:\"50ch\",letterSpacing:`${formLetterSpacingEm}em`},submittedDataContainer:{width:\"100%\",maxWidth:\"450px\",backgroundColor:\"#f9fafb\",border:\"1px solid #e5e7eb\",borderRadius:\"0.5rem\",padding:\"1rem 1.5rem\",marginTop:\"1.5rem\",textAlign:\"left\",boxSizing:\"border-box\"},submittedDataTitle:{fontSize:`${formFontSize*.875}px`,fontWeight:500,color:\"#6b7280\",marginBottom:\"1rem\",textTransform:\"uppercase\",letterSpacing:\"0.05em\"},dataRow:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"flex-start\",padding:\"0.625rem 0\",borderBottom:\"1px solid #f3f4f6\",gap:\"1rem\"},dataRowLast:{borderBottom:\"none\"},dataLabel:{fontSize:`${formFontSize*.875}px`,color:\"#6b7280\",marginRight:\"1rem\",flexShrink:0,letterSpacing:`${formLetterSpacingEm}em`},dataValue:{fontSize:`${formFontSize*.875}px`,color:\"#1f2937\",fontWeight:500,textAlign:\"right\",wordBreak:\"break-word\",letterSpacing:`${formLetterSpacingEm}em`,flexGrow:1},closeButtonSuccess:{// Style for the close button on the success screen\npadding:\"0.625rem 1.5rem\",backgroundColor:\"#f9fafb\",color:\"#374151\",border:\"1px solid #e5e7eb\",borderRadius:\"0.375rem\",fontSize:`${formFontSize*.875}px`,fontWeight:500,cursor:\"pointer\",transition:\"background-color 150ms ease-out, border-color 150ms ease-out\",marginTop:\"2rem\"},closeButtonSuccessHover:{backgroundColor:\"#f3f4f6\",borderColor:\"#d1d5db\"},// --- Debug Styles ---\ndebugInfo:{width:\"100%\",maxWidth:\"450px\",marginTop:\"2rem\",textAlign:\"left\",backgroundColor:\"#f8f8f8\",border:\"1px solid #e5e7eb\",borderRadius:\"0.375rem\",padding:\"1rem\",boxSizing:\"border-box\"},debugHeading:{fontSize:\"1rem\",fontWeight:600,margin:\"0 0 1rem 0\",color:\"#111827\"},debugSection:{marginBottom:\"1rem\"},debugSectionLast:{marginBottom:0},debugSectionHeading:{fontSize:`${formFontSize*.875}px`,fontWeight:500,margin:\"0 0 0.5rem 0\",color:\"#374151\"},debugPre:{backgroundColor:\"#f3f4f6\",padding:\"0.75rem\",borderRadius:\"0.25rem\",fontFamily:\"monospace\",fontSize:`${formFontSize*.75}px`,color:\"#4b5563\",overflowX:\"auto\",whiteSpace:\"pre-wrap\",wordWrap:\"break-word\",border:\"1px solid #e5e7eb\"}};// --- State: Input Focus & Hover ---\nconst[focusedField,setFocusedField]=useState(null)// Track focused input for styling\n;const[isSuccessCloseHovered,setIsSuccessCloseHovered]=useState(false);// --- Subject: Success Screen Rendering ---\nif(isSuccess&&submittedData){// Personalize success message\nconst finalSuccessMessage=successMessage.replace(/\\{\\{Name\\}\\}/g,submittedData.name||\"there\"// Fallback if name is empty\n);return /*#__PURE__*/_jsxs(motion.div,{style:styles.successContainer,initial:{opacity:0},animate:{opacity:1},transition:{duration:.3},children:[/*#__PURE__*/_jsx(\"div\",{style:styles.successIcon,children:/*#__PURE__*/_jsx(\"svg\",{width:\"56\",height:\"56\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{strokeLinecap:\"round\",strokeLinejoin:\"round\",d:\"M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"})})}),/*#__PURE__*/_jsx(\"h2\",{style:styles.successHeading,children:successTitle}),/*#__PURE__*/_jsx(\"p\",{style:styles.successText,children:finalSuccessMessage.split(\"\\n\").map((line,index,arr)=>/*#__PURE__*/_jsxs(React.Fragment,{children:[line,index<arr.length-1&&/*#__PURE__*/_jsx(\"br\",{}),\" \"]},index))}),/*#__PURE__*/_jsxs(\"div\",{style:styles.submittedDataContainer,children:[/*#__PURE__*/_jsx(\"h3\",{style:styles.submittedDataTitle,children:\"Your Submitted Details\"}),/*#__PURE__*/_jsxs(\"div\",{style:styles.dataRow,children:[/*#__PURE__*/_jsx(\"span\",{style:styles.dataLabel,children:nameLabel}),/*#__PURE__*/_jsx(\"span\",{style:styles.dataValue,children:submittedData.name||\"-\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:styles.dataRow,children:[/*#__PURE__*/_jsx(\"span\",{style:styles.dataLabel,children:mobileLabel}),/*#__PURE__*/_jsx(\"span\",{style:styles.dataValue,children:submittedData.mobile||\"-\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:styles.dataRow,children:[/*#__PURE__*/_jsx(\"span\",{style:styles.dataLabel,children:emailLabel}),/*#__PURE__*/_jsx(\"span\",{style:styles.dataValue,children:submittedData.email||\"-\"})]}),submittedData.company&&/*#__PURE__*/_jsxs(\"div\",{style:{...styles.dataRow,...styles.dataRowLast},children:[/*#__PURE__*/_jsx(\"span\",{style:styles.dataLabel,children:companyLabel}),/*#__PURE__*/_jsx(\"span\",{style:styles.dataValue,children:submittedData.company})]}),!submittedData.company&&Object.keys(submittedData).filter(k=>[\"name\",\"mobile\",\"email\"].includes(k)&&submittedData[k]).length>0&&/*#__PURE__*/_jsx(\"style\",{children:`.${styles.dataRow.split(\" \")[0]}:last-child { border-bottom: none; }`})// A bit hacky, better to adjust logic slightly\n,!submittedData.company&&/*#__PURE__*/_jsx(\"style\",{children:`#success-email-row { border-bottom: none; }`})]}),debugMode&&/*#__PURE__*/_jsxs(\"div\",{style:styles.debugInfo,children:[/*#__PURE__*/_jsx(\"h3\",{style:styles.debugHeading,children:\"Debug Information\"}),submittedData&&/*#__PURE__*/_jsxs(\"div\",{style:styles.debugSection,children:[/*#__PURE__*/_jsx(\"h4\",{style:styles.debugSectionHeading,children:\"Submitted Data (Sent to API):\"}),/*#__PURE__*/_jsx(\"pre\",{style:styles.debugPre,children:formatJSON(submittedData)})]}),responseData&&/*#__PURE__*/_jsxs(\"div\",{style:styles.debugSectionLast,children:[/*#__PURE__*/_jsx(\"h4\",{style:styles.debugSectionHeading,children:\"API Response Data:\"}),/*#__PURE__*/_jsx(\"pre\",{style:styles.debugPre,children:formatJSON(responseData)})]})]}),/*#__PURE__*/_jsx(motion.button,{style:{...styles.closeButtonSuccess,...isSuccessCloseHovered?styles.closeButtonSuccessHover:{}},onClick:onClose,whileTap:{scale:.98},onMouseEnter:()=>setIsSuccessCloseHovered(true),onMouseLeave:()=>setIsSuccessCloseHovered(false),children:\"Close\"})]},\"success-screen\"// Add key for AnimatePresence\n);}// --- Subject: Form Rendering ---\nreturn /*#__PURE__*/_jsxs(motion.div,{style:styles.formContainer,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},children:[/*#__PURE__*/_jsx(\"h1\",{style:styles.heading,children:formTitle}),formIntroText&&/*#__PURE__*/_jsx(\"p\",{style:styles.introText,children:formIntroText}),productCode&&/*#__PURE__*/_jsx(\"div\",{style:styles.productInfo,children:/*#__PURE__*/_jsxs(\"p\",{style:styles.productInfoText,children:[\"Requesting quote for: \",/*#__PURE__*/_jsx(\"strong\",{children:productCode})]})}),submitError&&/*#__PURE__*/_jsxs(\"div\",{style:styles.submitError,role:\"alert\",children:[/*#__PURE__*/_jsxs(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:styles.submitErrorIcon,\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"10\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"12\",y1:\"8\",x2:\"12\",y2:\"12\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"12\",y1:\"16\",x2:\"12.01\",y2:\"16\"})]}),/*#__PURE__*/_jsx(\"p\",{style:styles.submitErrorText,children:submitError})]}),/*#__PURE__*/_jsxs(\"form\",{style:styles.form,onSubmit:handleSubmit,noValidate:true,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.formField,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.labelContainer,children:[/*#__PURE__*/_jsxs(\"label\",{htmlFor:\"name\",style:styles.label,children:[nameLabel,nameRequired&&/*#__PURE__*/_jsx(\"span\",{style:styles.required,children:\"*\"})]}),!nameRequired&&/*#__PURE__*/_jsx(\"span\",{style:styles.optional,children:\"(Optional)\"})]}),/*#__PURE__*/_jsx(\"input\",{ref:nameInputRef,type:\"text\",id:\"name\",name:\"name\",value:formData.name,onChange:handleChange,// Removed onBlur validation trigger\nonFocus:()=>setFocusedField(\"name\"),onBlur:()=>setFocusedField(null),placeholder:namePlaceholder,style:styles.input(touched.name&&errors.name),autoComplete:\"name\"// Improve autofill\n,\"aria-required\":nameRequired,\"aria-invalid\":!!(touched.name&&errors.name),\"aria-describedby\":touched.name&&errors.name?\"name-error\":null}),touched.name&&errors.name&&/*#__PURE__*/_jsx(\"p\",{id:\"name-error\",style:styles.errorText,children:errors.name})]}),/*#__PURE__*/_jsxs(\"div\",{style:styles.formField,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.labelContainer,children:[/*#__PURE__*/_jsxs(\"label\",{htmlFor:\"email\",style:styles.label,children:[emailLabel,emailRequired&&/*#__PURE__*/_jsx(\"span\",{style:styles.required,children:\"*\"})]}),!emailRequired&&/*#__PURE__*/_jsx(\"span\",{style:styles.optional,children:\"(Optional)\"})]}),emailHelperText&&/*#__PURE__*/_jsx(\"p\",{id:\"email-helper\",style:styles.helperText,children:emailHelperText}),/*#__PURE__*/_jsx(\"input\",{type:\"email\",id:\"email\",name:\"email\",inputMode:\"email\"// Hint for mobile keyboards\n,value:formData.email,onChange:handleChange,onFocus:()=>setFocusedField(\"email\"),onBlur:()=>setFocusedField(null),placeholder:emailPlaceholder,style:styles.input(touched.email&&errors.email),autoComplete:\"email\",\"aria-required\":emailRequired,\"aria-invalid\":!!(touched.email&&errors.email),\"aria-describedby\":`\n                            ${emailHelperText?\"email-helper\":\"\"}\n                            ${touched.email&&errors.email?\" email-error\":\"\"}\n                        `.trim()}),touched.email&&errors.email&&/*#__PURE__*/_jsx(\"p\",{id:\"email-error\",style:styles.errorText,children:errors.email})]}),/*#__PURE__*/_jsxs(\"div\",{style:styles.formField,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.labelContainer,children:[/*#__PURE__*/_jsxs(\"label\",{htmlFor:\"mobile\",style:styles.label,children:[mobileLabel,mobileRequired&&/*#__PURE__*/_jsx(\"span\",{style:styles.required,children:\"*\"})]}),!mobileRequired&&/*#__PURE__*/_jsx(\"span\",{style:styles.optional,children:\"(Optional)\"})]}),mobileHelperText&&/*#__PURE__*/_jsx(\"p\",{id:\"mobile-helper\",style:styles.helperText,children:mobileHelperText}),/*#__PURE__*/_jsx(\"input\",{type:\"tel\"// Use 'tel' type for phone numbers\n,id:\"mobile\",name:\"mobile\",inputMode:\"tel\"// Hint for mobile keyboards\n,value:formData.mobile,onChange:handleChange,onFocus:()=>setFocusedField(\"mobile\"),onBlur:()=>setFocusedField(null),placeholder:mobilePlaceholder,style:styles.input(touched.mobile&&errors.mobile),autoComplete:\"tel\"// Improve autofill\n,\"aria-required\":mobileRequired,\"aria-invalid\":!!(touched.mobile&&errors.mobile),\"aria-describedby\":`\n                            ${mobileHelperText?\"mobile-helper\":\"\"}\n                            ${touched.mobile&&errors.mobile?\" mobile-error\":\"\"}\n                        `.trim()}),touched.mobile&&errors.mobile&&/*#__PURE__*/_jsx(\"p\",{id:\"mobile-error\",style:styles.errorText,children:errors.mobile})]}),/*#__PURE__*/_jsxs(\"div\",{style:styles.formField,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.labelContainer,children:[/*#__PURE__*/_jsxs(\"label\",{htmlFor:\"company\",style:styles.label,children:[companyLabel,companyRequired&&/*#__PURE__*/_jsx(\"span\",{style:styles.required,children:\"*\"})]}),!companyRequired&&/*#__PURE__*/_jsx(\"span\",{style:styles.optional,children:\"(Optional)\"})]}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",id:\"company\",name:\"company\",value:formData.company,onChange:handleChange,onFocus:()=>setFocusedField(\"company\"),onBlur:()=>setFocusedField(null),placeholder:companyPlaceholder,style:styles.input(touched.company&&errors.company),autoComplete:\"organization\"// Improve autofill\n,\"aria-required\":companyRequired,\"aria-invalid\":!!(touched.company&&errors.company),\"aria-describedby\":touched.company&&errors.company?\"company-error\":null}),touched.company&&errors.company&&/*#__PURE__*/_jsx(\"p\",{id:\"company-error\",style:styles.errorText,children:errors.company})]}),/*#__PURE__*/_jsx(\"div\",{style:styles.submitButtonContainer,children:/*#__PURE__*/_jsx(motion.button,{type:\"submit\"// Important: type=\"submit\" triggers form onSubmit\n,disabled:isSubmitting,style:styles.submitButton(isSubmitting),whileHover:!isSubmitting?{opacity:.9}:{},whileTap:!isSubmitting?{scale:.98}:{},children:isSubmitting?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{style:styles.loadingSpinner,\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{children:\"Submitting...\"})]}):submitButtonText})})]})]},\"form-screen\"// Add key for AnimatePresence\n);}// --- Subject: Main Exported Component for Framer ---\n/**\n * QuoteButtonWithForm Component:\n * Provides a button that triggers a modal containing a contact/quote request form.\n * Configurable via Framer properties for appearance, form fields, and API endpoint.\n */export default function QuoteButtonWithForm(props){// --- Component Props & Defaults ---\nconst{// Container Style\ncontainerWidth=\"auto\",// Button Styling Props\nbuttonText=\"Get a Quote\",buttonBackgroundColor=\"#F00027\",buttonHoverBackgroundColor=\"#BE001F\",buttonActiveBackgroundColor=\"#A60019\",buttonTextColor=\"#FFFFFF\",buttonBorderColor=\"transparent\",buttonBorderWidth=0,buttonBorderRadius=6,buttonPaddingX=16,buttonPaddingY=12,buttonFontSize=18,buttonFontWeight=\"700\",buttonLineHeight=1.4,buttonLetterSpacing=-.03,buttonHeight=48,buttonIconName=\"Arrow Right\",buttonIconColor=\"#FFFFFF\",buttonIconSize=24,buttonIconPosition=\"right\",buttonIconSpacing=8,// API & Data Props\napiEndpoint=\"https://framer.unipack.asia/\",debugMode=false,includeFullPageUrl=true,productUrl=\"\",productCode=\"\",// Form Content Props\nformTitle=\"Request Your Custom Quote\",formIntroText=\"Please fill in your details below. Our team will prepare a personalised quote based on your requirements.\",nameLabel=\"Full Name\",nameRequired=true,namePlaceholder=\"Enter your full name\",mobileLabel=\"Mobile Number\",mobileRequired=true,mobileHelperText=\"Include country code if outside India (e.g., +1 ...)\",mobilePlaceholder=\"Enter your mobile number\",emailLabel=\"Email Address\",emailRequired=true,emailHelperText=\"We'll send your quote to this email address.\",emailPlaceholder=\"Enter your email address\",companyLabel=\"Company Name\",companyRequired=false,companyPlaceholder=\"Enter your company name (if applicable)\",submitButtonText=\"Submit Quote Request\",successTitle=\"Thank You!\",successMessage=\"Thank you, {{Name}}! Your quote request has been successfully submitted.\\nOur team will review your details and send the quote to your email within 24 business hours.\",// Form Styling Props\nbrandColor=\"#F00027\",formLetterSpacingEm=-.015,formFontSize=16}=props;// --- State: Modal Visibility ---\nconst[isModalOpen,setIsModalOpen]=useState(false);const openModal=()=>setIsModalOpen(true);const closeModal=()=>setIsModalOpen(false);// --- Styles: Main Container ---\nconst styles={container:{width:containerWidth,height:\"auto\",position:\"relative\",fontFamily:\"Geist, -apple-system, BlinkMacSystemFont, sans-serif\"}};// --- Render ---\nreturn /*#__PURE__*/_jsxs(\"div\",{style:styles.container,children:[/*#__PURE__*/_jsx(EnhancedButton,{// Pass all button-related props\ntext:buttonText,iconName:buttonIconName,iconColor:buttonIconColor,iconSize:buttonIconSize,iconPosition:buttonIconPosition,iconSpacing:buttonIconSpacing,backgroundColor:buttonBackgroundColor,hoverBackgroundColor:buttonHoverBackgroundColor,activeBackgroundColor:buttonActiveBackgroundColor,textColor:buttonTextColor,borderColor:buttonBorderColor,borderWidth:buttonBorderWidth,borderRadius:buttonBorderRadius,paddingX:buttonPaddingX,paddingY:buttonPaddingY,fontSize:buttonFontSize,fontWeight:buttonFontWeight,lineHeightMultiplier:buttonLineHeight,letterSpacingEm:buttonLetterSpacing,height:buttonHeight,onClick:openModal,width:\"100%\"// Ensure button fills the container width\n}),/*#__PURE__*/_jsx(ContactFormPortal,{isOpen:isModalOpen,children:/*#__PURE__*/_jsx(AnimatePresence,{children:isModalOpen&&/*#__PURE__*/_jsx(ContactFormModal,{onClose:closeModal,logoSvg:UNIPACK_LOGO_SVG,brandColor:brandColor,children:/*#__PURE__*/_jsx(ContactForm,{// Pass necessary callbacks and data/config props\nonClose:closeModal,apiEndpoint:apiEndpoint,debugMode:debugMode,includeFullPageUrl:includeFullPageUrl,productUrl:productUrl,productCode:productCode,// Pass form content props\nformTitle:formTitle,formIntroText:formIntroText,nameLabel:nameLabel,nameRequired:nameRequired,namePlaceholder:namePlaceholder,mobileLabel:mobileLabel,mobileRequired:mobileRequired,mobileHelperText:mobileHelperText,mobilePlaceholder:mobilePlaceholder,emailLabel:emailLabel,emailRequired:emailRequired,emailHelperText:emailHelperText,emailPlaceholder:emailPlaceholder,companyLabel:companyLabel,companyRequired:companyRequired,companyPlaceholder:companyPlaceholder,submitButtonText:submitButtonText,successTitle:successTitle,successMessage:successMessage,// Pass form styling props\nbrandColor:brandColor,formLetterSpacingEm:formLetterSpacingEm,formFontSize:formFontSize})})})})]});}// --- Subject: Framer Property Controls ---\n/**\n * Defines the properties exposed in the Framer UI panel for customizing\n * the QuoteButtonWithForm component.\n */QuoteButtonWithForm.propertyControls={// --- Group: Container ---\ncontainerWidth:{type:\"string\",title:\"Container Width\",defaultValue:\"auto\",description:\"Width of the component container (e.g., 'auto', '100%', '250px'). The button will fill this width.\",group:\"Container\"},// --- Group: Button Styling ---\nbuttonText:{type:\"string\",title:\"Button Text\",defaultValue:\"Get a Quote\",group:\"Button Styling\"},buttonBackgroundColor:{type:\"color\",title:\"BG Color\",defaultValue:\"#F00027\",group:\"Button Styling\"},buttonHoverBackgroundColor:{type:\"color\",title:\"Hover BG\",defaultValue:\"#BE001F\",group:\"Button Styling\"},buttonActiveBackgroundColor:{type:\"color\",title:\"Active BG\",defaultValue:\"#A60019\",group:\"Button Styling\"},buttonTextColor:{type:\"color\",title:\"Text Color\",defaultValue:\"#FFFFFF\",group:\"Button Styling\"},buttonBorderColor:{type:\"color\",title:\"Border Color\",defaultValue:\"transparent\",group:\"Button Styling\"},buttonBorderWidth:{type:\"number\",title:\"Border Width\",defaultValue:0,min:0,max:10,step:1,displayStepper:true,group:\"Button Styling\"},buttonBorderRadius:{type:\"number\",title:\"Border Radius\",defaultValue:6,min:0,max:50,step:1,displayStepper:true,group:\"Button Styling\"},buttonPaddingX:{type:\"number\",title:\"Padding X\",defaultValue:16,min:0,max:50,step:1,displayStepper:true,group:\"Button Styling\"},buttonPaddingY:{type:\"number\",title:\"Padding Y\",defaultValue:12,min:0,max:50,step:1,displayStepper:true,group:\"Button Styling\"},buttonHeight:{type:\"number\",title:\"Height\",defaultValue:48,min:20,max:100,step:1,displayStepper:true,group:\"Button Styling\"},buttonFontSize:{type:\"number\",title:\"Font Size\",defaultValue:18,min:8,max:48,step:1,displayStepper:true,group:\"Button Styling\"},buttonFontWeight:{type:\"enum\",title:\"Font Weight\",options:[\"300\",\"400\",\"500\",\"600\",\"700\",\"800\"],defaultValue:\"700\",group:\"Button Styling\"},// buttonLineHeight: { // Line height derived from font size, maybe less necessary\n//     type: \"number\",\n//     title: \"Line Height (Multiplier)\",\n//     defaultValue: 1.4,\n//     min: 1, max: 3, step: 0.1,\n//     group: \"Button Styling\",\n// },\n// buttonLetterSpacing: { // Letter spacing derived from font size, maybe less necessary\n//     type: \"number\",\n//     title: \"Letter Spacing (em)\",\n//     defaultValue: -0.03,\n//     min: -0.1, max: 0.1, step: 0.01,\n//     group: \"Button Styling\",\n// },\n// --- Group: Button Icon ---\nbuttonIconName:{type:\"enum\",title:\"Icon\",options:ICON_NAMES,defaultValue:\"Arrow Right\",group:\"Button Icon\"},buttonIconColor:{type:\"color\",title:\"Icon Color\",defaultValue:\"#FFFFFF\",hidden:props=>props.buttonIconName===\"none\",group:\"Button Icon\"},buttonIconSize:{type:\"number\",title:\"Icon Size\",defaultValue:24,min:8,max:48,step:1,displayStepper:true,hidden:props=>props.buttonIconName===\"none\",group:\"Button Icon\"},buttonIconPosition:{type:\"enum\",title:\"Icon Position\",options:[\"left\",\"right\"],defaultValue:\"right\",hidden:props=>props.buttonIconName===\"none\",group:\"Button Icon\"},buttonIconSpacing:{type:\"number\",title:\"Icon Spacing\",defaultValue:8,min:0,max:30,step:1,displayStepper:true,hidden:props=>props.buttonIconName===\"none\",group:\"Button Icon\"},// --- Group: API & Data ---\napiEndpoint:{type:\"string\",title:\"API Endpoint URL\",defaultValue:\"https://framer.unipack.asia/\",description:\"The URL where the form data will be sent (POST request).\",group:\"API & Data\"},includeFullPageUrl:{type:\"boolean\",title:\"Send Page URL\",defaultValue:true,description:\"Include the current page URL (`page_url`) in the submitted data.\",group:\"API & Data\"},productUrl:{type:\"string\",title:\"Product URL\",defaultValue:\"\",description:\"Optional: URL of the product being quoted (`product_url`).\",group:\"API & Data\"},productCode:{type:\"string\",title:\"Product Code/Name\",defaultValue:\"\",description:\"Optional: Code/name shown in the form header and sent as `product_code`.\",group:\"API & Data\"},debugMode:{type:\"boolean\",title:\"Debug Mode\",defaultValue:false,description:\"Show submitted data and API response on the success screen.\",group:\"API & Data\"},// --- Group: Form Content ---\nformTitle:{type:\"string\",title:\"Form Title\",defaultValue:\"Request Your Custom Quote\",group:\"Form Content\"},formIntroText:{type:\"string\",title:\"Intro Text\",defaultValue:\"Please fill in your details below. Our team will prepare a personalised quote based on your requirements.\",group:\"Form Content\"},submitButtonText:{type:\"string\",title:\"Submit Button Text\",defaultValue:\"Submit Quote Request\",group:\"Form Content\"},successTitle:{type:\"string\",title:\"Success Title\",defaultValue:\"Thank You!\",group:\"Form Content\"},successMessage:{type:\"string\",title:\"Success Message\",defaultValue:\"Thank you, {{Name}}! Your quote request has been successfully submitted.\\nOur team will review your details and send the quote to your email within 24 business hours.\",description:\"Use {{Name}} to insert the submitted name.\",group:\"Form Content\"},// --- Group: Form Fields: Name ---\nnameLabel:{type:\"string\",title:\"Name Label\",defaultValue:\"Full Name\",group:\"Form Fields: Name\"},nameRequired:{type:\"boolean\",title:\"Name Required\",defaultValue:true,group:\"Form Fields: Name\"},namePlaceholder:{type:\"string\",title:\"Name Placeholder\",defaultValue:\"Enter your full name\",group:\"Form Fields: Name\"},// --- Group: Form Fields: Mobile ---\nmobileLabel:{type:\"string\",title:\"Mobile Label\",defaultValue:\"Mobile Number\",group:\"Form Fields: Mobile\"},mobileRequired:{type:\"boolean\",title:\"Mobile Required\",defaultValue:true,group:\"Form Fields: Mobile\"},mobileHelperText:{type:\"string\",title:\"Mobile Helper Text\",defaultValue:\"Include country code if outside India (e.g., +1 ...)\",group:\"Form Fields: Mobile\"},mobilePlaceholder:{type:\"string\",title:\"Mobile Placeholder\",defaultValue:\"Enter your mobile number\",group:\"Form Fields: Mobile\"},// --- Group: Form Fields: Email ---\nemailLabel:{type:\"string\",title:\"Email Label\",defaultValue:\"Email Address\",group:\"Form Fields: Email\"},emailRequired:{type:\"boolean\",title:\"Email Required\",defaultValue:true,group:\"Form Fields: Email\"},emailHelperText:{type:\"string\",title:\"Email Helper Text\",defaultValue:\"We'll send your quote to this email address.\",group:\"Form Fields: Email\"},emailPlaceholder:{type:\"string\",title:\"Email Placeholder\",defaultValue:\"Enter your email address\",group:\"Form Fields: Email\"},// --- Group: Form Fields: Company ---\ncompanyLabel:{type:\"string\",title:\"Company Label\",defaultValue:\"Company Name\",group:\"Form Fields: Company\"},companyRequired:{type:\"boolean\",title:\"Company Required\",defaultValue:false,group:\"Form Fields: Company\"},companyPlaceholder:{type:\"string\",title:\"Company Placeholder\",defaultValue:\"Enter your company name (if applicable)\",group:\"Form Fields: Company\"},// --- Group: Form Styling ---\nbrandColor:{type:\"color\",title:\"Brand Color Accent\",defaultValue:\"#F00027\",description:\"Accent color used in the form (e.g., borders, required asterisk). Defaults to Button BG Color.\",group:\"Form Styling\"}}// End of propertyControls\n;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"QuoteButtonWithForm\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FormLink.map"],
  "mappings": "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",
  "names": ["ICONS", "ICON_NAMES", "UNIPACK_LOGO_SVG", "EnhancedButton", "text", "iconName", "iconColor", "iconSize", "iconPosition", "iconSpacing", "backgroundColor", "hoverBackgroundColor", "activeBackgroundColor", "textColor", "borderColor", "borderWidth", "borderRadius", "paddingX", "paddingY", "fontSize", "fontWeight", "lineHeightMultiplier", "letterSpacingEm", "onClick", "width", "height", "disabled", "iconSvg", "hasIcon", "styles", "buttonVariants", "IconElement", "p", "u", "motion", "ContactFormPortal", "isOpen", "children", "portalContainer", "setPortalContainer", "ye", "ue", "container", "link", "Ga", "ContactFormModal", "onClose", "logoSvg", "brandColor", "modalRef", "pe", "bodyOverflowRef", "bodyPositionRef", "bodyTopRef", "bodyWidthRef", "scrollYRef", "isMobile", "window", "handleResize", "handleEscape", "e", "handleBackdropClick", "isCloseHovered", "setIsCloseHovered", "ContactForm", "apiEndpoint", "debugMode", "includeFullPageUrl", "productUrl", "productCode", "formLetterSpacingEm", "formFontSize", "formTitle", "formIntroText", "nameLabel", "nameRequired", "namePlaceholder", "mobileLabel", "mobileRequired", "mobileHelperText", "mobilePlaceholder", "emailLabel", "emailRequired", "emailHelperText", "emailPlaceholder", "companyLabel", "companyRequired", "companyPlaceholder", "submitButtonText", "successTitle", "successMessage", "formData", "setFormData", "errors", "setErrors", "touched", "setTouched", "isSubmitting", "setIsSubmitting", "isSuccess", "setIsSuccess", "submitError", "setSubmitError", "submittedData", "setSubmittedData", "responseData", "setResponseData", "nameInputRef", "prev", "timer", "validateField", "name", "value", "trimmedValue", "handleChange", "validateForm", "newErrors", "isValid", "field", "error", "handleSubmit", "firstErrorField", "f", "inputElement", "dataForApi", "originalFormDataForDisplay", "response", "responseBody", "contentType", "parseError", "errorMessage", "formatJSON", "obj", "styleSheet", "hasError", "focusedField", "setFocusedField", "isSuccessCloseHovered", "setIsSuccessCloseHovered", "finalSuccessMessage", "line", "index", "arr", "k", "l", "QuoteButtonWithForm", "props", "containerWidth", "buttonText", "buttonBackgroundColor", "buttonHoverBackgroundColor", "buttonActiveBackgroundColor", "buttonTextColor", "buttonBorderColor", "buttonBorderWidth", "buttonBorderRadius", "buttonPaddingX", "buttonPaddingY", "buttonFontSize", "buttonFontWeight", "buttonLineHeight", "buttonLetterSpacing", "buttonHeight", "buttonIconName", "buttonIconColor", "buttonIconSize", "buttonIconPosition", "buttonIconSpacing", "isModalOpen", "setIsModalOpen", "openModal", "closeModal", "AnimatePresence"]
}
