PageSourceSearch

https://weave.technology/assets/Contact-BnlJxTRc.js

js weave.technology collected 2026-10-10 00:09:11 UTC 16,194 bytes, 1 lines download raw bytes

1import{r as l,t as x,b as c,c as N,j as e,m as p,d as S,A as b,P as u,M as F,e as w}from"./index-lWvdArgx.js";import{P as k}from"./PageHero-Chsw4U4Z.js";import{C}from"./check-D1jmrK3L.js";import{C as T}from"./clock-Cs-6tWZ_.js";function A(){const[f,y]=l.useState(!1),[a,m]=l.useState({}),[d,g]=l.useState(""),h=l.useRef(null),{data:i}=x.contact.formStart.useQuery(void 0,{refetchOnWindowFocus:!1,staleTime:5400*1e3}),[t,v]=l.useState({name:"",email:"",phone:"",projectType:"",message:"",referral:""}),o=x.contact.submit.useMutation({onSuccess:()=>{y(!0),c.success("Thank you! We'll be in touch within 24 hours."),N("contact_form",{project_type:t.projectType,referral_source:t.referral})},onError:r=>{c.error(r.message||"Something went wrong. Please try again or call us directly.")}}),j=r=>{r.preventDefault();const s={};if(t.name.trim()||(s.name="Enter your name."),/^\S+@\S+\.\S+$/.test(t.email)||(s.email="Enter a valid email address."),Object.keys(s).length){m(s),window.requestAnimationFrame(()=>{s.name?h.current?.focus():document.getElementById("contact-email")?.focus()});return}if(!i?.token){c.error("Something went wrong. Please refresh the page and try again.");return}o.mutate({...t,formToken:i.token,companyWebsite:d})},n=r=>{v({...t,[r.target.name]:r.target.value}),(r.target.name==="name"||r.target.name==="email")&&r.target.value.trim()&&m(s=>({...s,[r.target.name]:void 0}))};return e.jsxs("div",{children:[e.jsx(k,{image:"https://d2xsxph8kpxj0f.cloudfront.net/310519663405981239/ETamdAhsBNNtfscnjMb7yB/hero-vinyl-WMpfKkLmDpf5HvuL8d3wmE.webp",title:"Let's Talk",subtitle:"Every great project starts with a conversation. Tell us about your home, your lifestyle, and your vision.",label:"Contact",height:"h-[60vh]"}),e.jsx("section",{className:"py-16 sm:py-24 lg:py-32",children:e.jsx("div",{className:"container",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-12 lg:gap-20",children:[e.jsx("div",{className:"lg:col-span-7",children:f?e.jsxs(p.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"p-12 border border-amber/30 bg-card text-center",role:"status","aria-labelledby":"contact-success-title",children:[e.jsx("div",{className:"w-16 h-16 rounded-full border-2 border-amber flex items-center justify-center mx-auto mb-6",children:e.jsx(C,{size:32,className:"text-amber"})}),e.jsx("h3",{id:"contact-success-title",className:"text-cream text-2xl mb-4",style:{fontFamily:"var(--font-display)",fontWeight:700},children:"Thank You"}),e.jsxs("p",{className:"text-cream/60 leading-relaxed max-w-md mx-auto",style:{fontFamily:"var(--font-body)"},children:["We've received your message and will be in touch within 24 hours. In the meantime, feel free to call us at"," ",e.jsx("a",{href:"tel:7042722221",className:"text-amber hover:text-amber-light transition-colors",children:"704.272.2221"}),"."]})]}):e.jsxs(p.form,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6},onSubmit:j,className:"space-y-6",noValidate:!0,"aria-busy":o.isPending,children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-amber mb-6 block",style:{fontFamily:"var(--font-mono)",fontSize:"0.75rem",letterSpacing:"0.15em",textTransform:"uppercase"},children:"Schedule a Consultation"}),e.jsx("h2",{className:"text-cream text-3xl md:text-4xl mb-2",style:{fontFamily:"var(--font-display)",fontWeight:700},children:"Tell Us About Your Project"}),e.jsx("p",{className:"text-cream/50 mb-8",style:{fontFamily:"var(--font-body)"},children:"Fill out the form below and we'll reach out to schedule a consultation."}),e.jsxs("p",{className:"text-cream/60 text-sm",children:["Fields marked ",e.jsx("span",{"aria-hidden":"true",children:"*"}),e.jsx("span",{className:"sr-only",children:"with an asterisk"})," are required."]}),(a.name||a.email||o.isError)&&e.jsxs("div",{role:"alert",className:"mt-4 border-l-2 border-red-400 pl-4 text-red-300",children:["Please correct the highlighted required field",a.name&&a.email?"s":""," before sending."]})]}),e.jsxs("div",{className:"sr-only","aria-hidden":"true",children:[e.jsx("label",{htmlFor:"contact-company-website",children:"Company website"}),e.jsx("input",{id:"contact-company-website",type:"text",name:"companyWebsite",value:d,onChange:r=>g(r.target.value),tabIndex:-1,autoComplete:"off"})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-cream/40 mb-2",style:{fontFamily:"var(--font-mono)",fontSize:"0.7rem",letterSpacing:"0.1em",textTransform:"uppercase"},htmlFor:"contact-name",children:"Name *"}),e.jsx("input",{id:"contact-name",ref:h,type:"text",name:"name",required:!0,value:t.name,onChange:n,className:"w-full bg-transparent border border-border/50 px-4 py-3.5 sm:py-3 text-cream focus:border-amber focus:outline-none transition-colors duration-300 rounded-none",style:{fontFamily:"var(--font-body)"},placeholder:"Your name",autoComplete:"name","aria-invalid":!!a.name,"aria-describedby":a.name?"contact-name-error":void 0}),a.name&&e.jsx("p",{id:"contact-name-error",className:"mt-2 text-sm text-red-300",children:a.name})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-cream/40 mb-2",style:{fontFamily:"var(--font-mono)",fontSize:"0.7rem",letterSpacing:"0.1em",textTransform:"uppercase"},htmlFor:"contact-email",children:"Email *"}),e.jsx("input",{id:"contact-email",type:"email",name:"email",required:!0,value:t.email,onChange:n,className:"w-full bg-transparent border border-border/50 px-4 py-3.5 sm:py-3 text-cream focus:border-amber focus:outline-none transition-colors duration-300 rounded-none",style:{fontFamily:"var(--font-body)"},placeholder:"[email protected]",autoComplete:"email","aria-invalid":!!a.email,"aria-describedby":a.email?"contact-email-error":void 0}),a.email&&e.jsx("p",{id:"contact-email-error",className:"mt-2 text-sm text-red-300",children:a.email})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-cream/40 mb-2",style:{fontFamily:"var(--font-mono)",fontSize:"0.7rem",letterSpacing:"0.1em",textTransform:"uppercase"},htmlFor:"contact-phone",children:"Phone"}),e.jsx("input",{id:"contact-phone",type:"tel",name:"phone",value:t.phone,onChange:n,className:"w-full bg-transparent border border-border/50 px-4 py-3.5 sm:py-3 text-cream focus:border-amber focus:outline-none transition-colors duration-300 rounded-none",style:{fontFamily:"var(--font-body)"},placeholder:"704.555.1234",autoComplete:"tel"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-cream/40 mb-2",style:{fontFamily:"var(--font-mono)",fontSize:"0.7rem",letterSpacing:"0.1em",textTransform:"uppercase"},htmlFor:"contact-project-type",children:"Project Type"}),e.jsxs("select",{id:"contact-project-type",name:"projectType",value:t.projectType,onCh
1ange:n,className:"w-full bg-transparent border border-border/50 px-4 py-3.5 sm:py-3 text-cream focus:border-amber focus:outline-none transition-colors duration-300 appearance-none rounded-none bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23c8956c%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E')] bg-no-repeat bg-[right_1rem_center]",style:{fontFamily:"var(--font-body)"},children:[e.jsx("option",{value:"",className:"bg-charcoal",children:"Select a project type"}),e.jsx("option",{value:"new-construction",className:"bg-charcoal",children:"New Construction"}),e.jsx("option",{value:"renovation",className:"bg-charcoal",children:"Renovation / Retrofit"}),e.jsx("option",{value:"outdoor",className:"bg-charcoal",children:"Outdoor Living / Pergola"}),e.jsx("option",{value:"cinema",className:"bg-charcoal",children:"Home Cinema"}),e.jsx("option",{value:"automation",className:"bg-charcoal",children:"Home Automation"}),e.jsx("option",{value:"rehabilitation",className:"bg-charcoal",children:"System Rehabilitation"}),e.jsx("option",{value:"commercial",className:"bg-charcoal",children:"Commercial"}),e.jsx("option",{value:"other",className:"bg-charcoal",children:"Other"})]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-cream/40 mb-2",style:{fontFamily:"var(--font-mono)",fontSize:"0.7rem",letterSpacing:"0.1em",textTransform:"uppercase"},htmlFor:"contact-message",children:"Tell Us About Your Project"}),e.jsx("textarea",{id:"contact-message",name:"message",value:t.message,onChange:n,rows:5,className:"w-full bg-transparent border border-border/50 px-4 py-3.5 sm:py-3 text-cream focus:border-amber focus:outline-none transition-colors duration-300 resize-none rounded-none",style:{fontFamily:"var(--font-body)"},placeholder:"Tell us about your home, your lifestyle, and what you're hoping to achieve..."})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-cream/40 mb-2",style:{fontFamily:"var(--font-mono)",fontSize:"0.7rem",letterSpacing:"0.1em",textTransform:"uppercase"},htmlFor:"contact-referral",children:"How Did You Hear About Us?"}),e.jsxs("select",{id:"contact-referral",name:"referral",value:t.referral,onChange:n,className:"w-full bg-transparent border border-border/50 px-4 py-3.5 sm:py-3 text-cream focus:border-amber focus:outline-none transition-colors duration-300 appearance-none rounded-none bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23c8956c%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E')] bg-no-repeat bg-[right_1rem_center]",style:{fontFamily:"var(--font-body)"},children:[e.jsx("option",{value:"",className:"bg-charcoal",children:"Select an option"}),e.jsx("option",{value:"designer",className:"bg-charcoal",children:"Interior Designer / Architect"}),e.jsx("option",{value:"realtor",className:"bg-charcoal",children:"Real Estate Agent"}),e.jsx("option",{value:"builder",className:"bg-charcoal",children:"Builder / Contractor"}),e.jsx("option",{value:"referral",className:"bg-charcoal",children:"Friend / Family Referral"}),e.jsx("option",{value:"google",className:"bg-charcoal",children:"Google Search"}),e.jsx("option",{value:"social",className:"bg-charcoal",children:"Social Media"}),e.jsx("option",{value:"other",className:"bg-charcoal",children:"Other"})]})]}),e.jsx("button",{type:"submit",disabled:o.isPending||!i?.token,className:"inline-flex items-center justify-center gap-2 px-10 py-4 bg-amber text-charcoal hover:bg-amber-light transition-all duration-400 amber-glow mt-4 disabled:opacity-60 disabled:cursor-not-allowed w-full sm:w-auto",style:{fontFamily:"var(--font-mono)",fontSize:"0.8rem",letterSpacing:"0.1em",textTransform:"uppercase",fontWeight:500},children:o.isPending?e.jsxs(e.Fragment,{children:[e.jsx(S,{size:16,className:"animate-spin"}),"Sending..."]}):e.jsxs(e.Fragment,{children:["Send Message",e.jsx(b,{size:16})]})}),e.jsx("p",{role:"status","aria-live":"polite",className:"sr-only",children:o.isPending?"Sending your consultation request.":o.isError?"The request could not be sent. Please try again.":""})]})}),e.jsx("div",{className:"lg:col-span-5",children:e.jsxs("div",{className:"sticky top-32 space-y-8",children:[e.jsxs("div",{className:"p-8 border border-border/30 bg-card",children:[e.jsx("h3",{className:"text-cream text-xl mb-6",style:{fontFamily:"var(--font-logo)",fontWeight:400,letterSpacing:"0.03em"},children:"Get in Touch"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("a",{href:"tel:7042722221",className:"flex items-start gap-4 text-cream/60 hover:text-amber transition-colors duration-300 group",children:[e.jsx("div",{className:"w-10 h-10 border border-amber/30 flex items-center justify-center shrink-0 group-hover:border-amber transition-colors duration-300",children:e.jsx(u,{size:18,className:"text-amber"})}),e.jsxs("div",{children:[e.jsx("span",{className:"block text-cream/30 mb-1",style:{fontFamily:"var(--font-mono)",fontSize:"0.65rem",letterSpacing:"0.1em",textTransform:"uppercase"},children:"Phone"}),e.jsx("span",{style:{fontFamily:"var(--font-body)",fontSize:"1rem"},children:"704.272.2221"})]})]}),e.jsxs("div",{className:"flex items-start gap-4 text-cream/60",children:[e.jsx("div",{className:"w-10 h-10 border border-amber/30 flex items-center justify-center shrink-0",children:e.jsx(F,{size:18,className:"text-amber"})}),e.jsxs("div",{children:[e.jsx("span",{className:"block text-cream/30 mb-1",style:{fontFamily:"var(--font-mono)",fontSize:"0.65rem",letterSpacing:"0.1em",textTransform:"uppercase"},children:"Address"}),e.jsxs("span",{style:{fontFamily:"var(--font-body)",fontSize:"1rem"},children:["2820 Selwyn Ave Ste 693",e.jsx("br",{}),"Charlotte, NC 28209"]})]})]}),e.jsxs("a",{href:"mailto:[email protected]",className:"flex items-start gap-4 text-cream/60 hover:text-amber transition-colors duration-300 group",children:[e.jsx("div",{className:"w-10 h-10 border border-amber/30 flex items-center justify-center shrink-0 group-hover:border-amber transition-colors duration-300",children:e.jsx(w,{size:18,className:"text-amber"})}),e.jsxs("div",{children:[e.jsx("span",{className:"block text-cream/30 mb-1",style:{fontFamily:"var(--font-mono)",fontSize:"0.65rem",letterSpacing:"0.1em",textTransform:"uppercase"},children:"Email"}),e.jsx("span",{style:{fontFamily:"var(--font-body)",fontSize:"1rem"},children:"[email protected]"})]})]}),e.jsxs("div",{className:"flex items-start gap-4 text-cream/60",children:[e.jsx("div",{className:"w-10 h-10 border border-amber/30 flex items-center justify-center shrink-0",children:e.jsx(T,{size:18,className:"text-amber"})}),e.jsxs("div",{children:[e.jsx("span",{className:"block text-cream/30 mb-1",style:{fontFamily:"var(--font-mono)",fontSize:"0.65rem",letterSpacing:"0.1em",textTransform:"uppercase"},children:"Hours"}),e.jsxs("span",{style:{fontFamily:"var(--font-body)",fontSize:"1rem"},children:["Monday – Friday: 9am – 5pm",e.jsx("br",{}),"Saturday: By appointment"]})]})]})]})]}),e.jsx("div",{className:"p-6 border border-border/30 bg-card text-center",children:e.jsxs("p",{className:"text-cream/50 italic",style:{fontFamily:"var(--font-body)",fontSize:"0.95rem"},children:["We respond within ",e.jsx("span",{className:"text-amber font-semibold",children:"1 business day"}),"."]})}),e.jsxs("div",{className:"p-8 border border-border/30 bg-card",children:[e.jsx("h4",{className:"text-cream text-lg mb-3",style:{fontFamily:"var(--font-logo)",fontWeight:400,letterSpacing:"0.03em"},children:"Existing Client?"}),e.jsx("p",{className:"text-cream/50 mb-4 leading-relaxed",style:{fontFamily:"var(--font-body)",fontSize:"0.95rem"},children:"Access your system documentation, warranties, how-to videos, and request service through your client portal."}),e.jsxs("a",{href:"/portal",className:"inline-flex items-center gap-2 px-6 py-3 border border-amber text-amber hover:bg-amber hover:text-charcoal transition-all duration-400",style:{fontFamily:"var(--font-mono)",fontSize:"0.75rem",letterSpacing:"0.1em",textTransform:"uppercase"},children:[e.jsx(b,{size:14}),"Client Portal"]})]}),e.jsxs("div",{className:"p-8 border border-amber/20 bg-amber/5",children:[e.jsx("h4",{className:"text-amber text-lg mb-3",style:{fontFamily:"var(--font-logo)",fontWeight:400,letterSpacing:"0.03em"},children:"Prefer to Talk?"}),e.jsx("p",{className:"text-cream/50 mb-4 leading-relaxed",style:{fontFamily:"var(--font-body)",fontSize:"0.95rem"},children:"We love a good phone conversation. Call us directly and let's chat about your project."}),e.jsxs("a",{href:"tel:7042722221",className:"inline-flex items-center gap-2 px-6 py-3 border border-amber text-amber hover:bg-amber hover:text-charcoal transition-all duration-400",style:{fontFamily:"var(--font-mono)",fontSize:"0.75rem",letterSpacing:"0.1em",textTransform:"uppercase"},children:[e.jsx(u,{size:14}),"Call 704.272.2221"]})]})]})})]})})})]})}export{A as default};

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.