1import{r as o,j as e,l as g,M as b,C as h,F as j}from"./index-BCW6nnV8.js";import{M as f}from"./mail-BtjO9jke.js";import{M as N}from"./map-pin-LP7pqidH.js";function v(){const[s,a]=o.useState(!1),[r,i]=o.useState(!1),[d,m]=o.useState(null),x=async t=>{t.preventDefault(),m(null),i(!0);const n=new FormData(t.currentTarget),u={name:n.get("name"),email:n.get("email"),subject:n.get("subject"),message:n.get("message")};try{const l=await fetch("/api/public/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)});if(!l.ok){const p=await l.json().catch(()=>({}));throw new Error(p.error||"Failed to send message")}a(!0),t.target.reset()}catch(l){m(l.message||"Something went wrong")}finally{i(!1)}};return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(g,{}),e.jsx("main",{children:e.jsxs("section",{className:"mx-auto max-w-6xl px-4 md:px-6 py-16 md:py-24",children:[e.jsx("p",{className:"text-xs font-bold uppercase tracking-[0.3em] text-brand",children:"Support"}),e.jsx("h1",{className:"mt-2 font-display text-4xl md:text-6xl font-extrabold uppercase",children:"Get in Touch"}),e.jsx("p",{className:"mt-3 max-w-xl text-muted-foreground",children:"Real humans, US-based, replying within 24 hours."}),e.jsxs("div",{className:"mt-12 grid lg:grid-cols-5 gap-8",children:[e.jsx("div",{className:"lg:col-span-2 space-y-4",children:[{icon:f,title:"Email",text:"[email protected]"},{icon:b,title:"Live Chat",text:"Monday to Friday"},{icon:N,title:"HQ",text:"Milwaukee, Wisconsin, USA"}].map(t=>e.jsxs("div",{className:"rounded-2xl border border-border bg-surface p-5 flex gap-4 items-start",children:[e.jsx("div",{className:"h-10 w-10 rounded-lg bg-brand/15 text-brand flex items-center justify-center shrink-0",children:e.jsx(t.icon,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-display text-sm font-bold uppercase tracking-wider",children:t.title}),e.jsx("p",{className:"text-sm text-muted-foreground mt-0.5",children:t.text})]})]},t.title))}),e.jsxs("form",{onSubmit:x,className:"lg:col-span-3 rounded-2xl border border-border bg-surface p-6 md:p-8 space-y-4",children:[e.jsxs("div",{className:"grid sm:grid-cols-2 gap-4",children:[e.jsx(c,{label:"Name",name:"name"}),e.jsx(c,{label:"Email",name:"email",type:"email"})]}),e.jsx(c,{label:"Subject",name:"subject"}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"contact-message",className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Message"}),e.jsx("textarea",{id:"contact-message",name:"message",rows:6,required:!0,className:"mt-1.5 w-full rounded-xl bg-background border border-border px-4 py-3 text-sm focus:border-brand focus:outline-none"})]}),e.jsx(h,{type:"submit",size:"lg",className:"w-full sm:w-auto",disabled:r||s,children:s?"Message Sent â":r?"Sending...":"Send Message"}),s&&e.jsx("p",{className:"text-xs text-brand",children:"We'll get back to you within 24 hours."}),d&&e.jsx("p",{className:"text-xs text-destructive",children:d})]})]})]})}),e.jsx(j,{})]})}function c({label:s,name:a,type:r="text"}){return e.jsxs("div",{children:[e.jsx("label",{htmlFor:`contact-${a}`,className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:s}),e.jsx("input",{id:`contact-${a}`,name:a,type:r,required:!0,className:"mt-1.5 w-full h-11 rounded-xl bg-background border border-border px-4 text-sm focus:border-brand focus:outline-none"})]})}export{v as component};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.