1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[566,977,1555,5293,9174],{2265:(e,t,a)=>{"use strict";a.d(t,{default:()=>n});var s=a(5155),i=a(2115);function n(e){let{variant:t="light"}=e,a="dark"===t,n=a?"border border-white/30 bg-transparent text-white placeholder:text-white/55":"border border-[var(--color-line)] bg-white text-ink placeholder:text-muted/80",r=a?"text-white/80":"text-muted",[l,c]=(0,i.useState)("idle"),[o,m]=(0,i.useState)("");async function p(e){if(e.preventDefault(),"sending"===l)return;c("sending"),m("");let t=e.currentTarget,a=new FormData(t),s={firstName:String(a.get("firstName")||""),lastName:String(a.get("lastName")||""),email:String(a.get("email")||""),phone:String(a.get("phone")||""),message:String(a.get("message")||""),company:String(a.get("company")||"")};try{let e=await fetch("/api/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}),a=await e.json().catch(()=>({}));e.ok&&a.ok?(c("sent"),t.reset()):(c("error"),m("missing_fields"===a.error?"Please fill in your name and email.":"invalid_email"===a.error?"That email doesnât look right â mind checking it?":"Something went wrong. Please try again or email [email protected] directly."))}catch(e){c("error"),m("Network error. Please try again or email [email protected] directly.")}}return"sent"===l?(0,s.jsxs)("div",{className:"grid gap-2 ".concat(a?"text-white":"text-ink"),"aria-live":"polite",role:"status",children:[(0,s.jsx)("p",{className:"text-[13px] font-semibold uppercase tracking-[0.3em]",children:"Message sent"}),(0,s.jsx)("p",{className:"text-[14px] opacity-80",children:"Thanks for reaching out. Kai and Emil will be in touch shortly."})]}):(0,s.jsxs)("form",{onSubmit:p,className:"grid gap-4","aria-label":"Contact KE Team Hawaii",noValidate:!0,children:[(0,s.jsx)("input",{type:"text",name:"company",tabIndex:-1,autoComplete:"off","aria-hidden":"true",className:"absolute left-[-10000px] h-px w-px opacity-0"}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,s.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-[0.2em] ".concat(r),children:"First name"}),(0,s.jsx)("input",{name:"firstName",required:!0,type:"text",className:"".concat(n," px-4 py-3 text-[14px]")})]}),(0,s.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,s.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-[0.2em] ".concat(r),children:"Last name"}),(0,s.jsx)("input",{name:"lastName",required:!0,type:"text",className:"".concat(n," px-4 py-3 text-[14px]")})]}),(0,s.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,s.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-[0.2em] ".concat(r),children:"Email"}),(0,s.jsx)("input",{name:"email",required:!0,type:"email",className:"".concat(n," px-4 py-3 text-[14px]")})]}),(0,s.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,s.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-[0.2em] ".concat(r),children:"Phone"}),(0,s.jsx)("input",{name:"phone",type:"tel",className:"".concat(n," px-4 py-3 text-[14px]")})]})]}),(0,s.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,s.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-[0.2em] ".concat(r),children:"Message"}),(0,s.jsx)("textarea",{name:"message",rows:4,className:"".concat(n," px-4 py-3 text-[14px]")})]}),(0,s.jsxs)("div",{className:"flex items-center gap-4",children:[(0,s.jsx)("button",{type:"submit",disabled:"sending"===l,className:"mt-2 self-start border px-10 py-4 text-[11px] font-semibold uppercase tracking-[0.3em] transition disabled:opacity-50 disabled:cursor-not-allowed ".concat(a?"border-white text-white hover:bg-white hover:text-ink":"border-ink text-ink hover:bg-ink hover:text-white"),children:"sending"===l?"Sendingâ¦":"Send Message"}),"error"===l&&o&&(0,s.jsx)("p",{className:"mt-2 text-[12px] ".concat(a?"text-red-200":"text-red-600"),"aria-live":"polite",role:"status",children:o})]})]})}},5769:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,2619,23)),Promise.resolve().then(a.t.bind(a,1356,23)),Promise.resolve().then(a.bind(a,2265))}},e=>{e.O(0,[1356,2619,8441,1255,7358],()=>e(e.s=5769)),_N_E=e.O()}]);
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.