PageSourceSearch

https://viansa.com/assets/contact.index-BnahoYnL.js

js viansa.com collected 2026-10-03 19:49:16 UTC 7,200 bytes, 1 lines download raw bytes

1import{j as e,c as S,r as n}from"./index-BJBk2PZ-.js";import{N as C,F as _}from"./Footer-BiTcmQCV.js";import{c as P,P as F}from"./contact-hero.jpg.asset-BVlugDJG.js";import{M as L,C as M}from"./map-pin-BoqHMnzt.js";import{G as W}from"./grape-C_493jx4.js";const E=P.url;function O({label:a,lines:l,href:t}){const r=e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"eyebrow text-walnut/50 mb-1 !text-[1.125rem]",children:a}),l.map(c=>e.jsx("p",{className:"font-sans text-base text-foreground group-hover:text-walnut transition-colors",children:c},c))]});return t?e.jsx("a",{href:t,target:t.startsWith("http")?"_blank":void 0,rel:t.startsWith("http")?"noopener noreferrer":void 0,className:"block",children:r}):e.jsx("div",{children:r})}function R({icon:a,label:l,lines:t,href:r}){return e.jsxs("div",{className:"group flex gap-4 items-start",children:[e.jsx("span",{className:"flex-shrink-0 w-10 h-10 rounded-full bg-walnut/5 flex items-center justify-center group-hover:bg-walnut/10 transition-colors",children:e.jsx(a,{size:18,className:"text-bronze group-hover:text-walnut transition-colors"})}),e.jsx("div",{children:e.jsx(O,{label:l,lines:t,href:r})})]})}const A=[{icon:L,label:"Address",lines:["25200 Arnold Drive","Sonoma, CA 95476"],href:"https://maps.app.goo.gl/y65ieHVrh2S8Trjg9"},{icon:F,label:"Phone",lines:["(800) 995-4740"],href:"tel:+18009954740"},{icon:M,label:"Hours",lines:["Open Daily by Reservation","10am – 4pm"],href:"/visit"},{icon:W,label:"Winemaker",lines:["Meredith Leahy"]}];function H(){return e.jsxs(e.Fragment,{children:[e.jsx(C,{}),e.jsxs("main",{className:"bg-cream text-foreground",children:[e.jsxs("section",{className:"relative h-[50vh] min-h-[400px] flex items-end overflow-hidden",children:[e.jsx("img",{src:E,alt:"Viansa Sonoma estate views",className:"absolute inset-0 w-full h-full object-cover"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-ink/80 via-ink/30 to-transparent"}),e.jsxs("div",{className:"relative z-10 mx-auto max-w-[1400px] w-full px-6 lg:px-10 pb-12 lg:pb-16",children:[e.jsx("p",{className:"eyebrow text-gold/80 mb-3",children:"Get in Touch"}),e.jsxs("h1",{className:"font-serif text-4xl md:text-5xl lg:text-6xl font-light text-walnut-foreground leading-tight",children:["Contact ",e.jsx("em",{children:"Us"})]})]})]}),e.jsxs("section",{className:"relative py-20 lg:py-28",children:[e.jsxs("div",{className:"flex flex-col gap-[3px] absolute top-0 left-0 right-0",children:[e.jsx("span",{className:"block h-px bg-walnut/10"}),e.jsx("span",{className:"block h-px bg-walnut/8"}),e.jsx("span",{className:"block h-px bg-walnut/5"})]}),e.jsx("div",{className:"mx-auto max-w-[1400px] px-6 lg:px-10",children:e.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 lg:gap-16 items-start",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"font-serif text-3xl md:text-4xl font-light text-walnut mb-10",children:"Viansa Winery"}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-8",children:A.map(a=>e.jsx(R,{...a},a.label))}),e.jsxs("div",{className:"mt-20 lg:mt-28",children:[e.jsxs("h2",{className:"font-serif text-3xl md:text-4xl font-light text-walnut mb-10",children:["Contact ",e.jsx("em",{children:"Us"})]}),e.jsx(z,{})]})]}),e.jsx("div",{className:"w-full h-[450px] lg:h-[560px] lg:sticky lg:top-8",children:e.jsx("iframe",{src:"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3135.0611408106083!2d-122.45438328814333!3d38.20847718694104!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x8085a5e352f65d45%3A0xc0b8363aa93ab188!2sViansa%20Winery!5e0!3m2!1sen!2sus!4v1783712499898!5m2!1sen!2sus",width:"100%",height:"100%",style:{border:0},allowFullScreen:!0,loading:"lazy",referrerPolicy:"strict-origin-when-cross-origin",title:"Viansa Winery location map",className:"w-full h-full"})})]})})]})]}),e.jsx(_,{})]})}const i="w-full h-12 bg-cream border-2 border-walnut px-4 font-sans text-walnut text-base focus:outline-none focus:border-ink transition-colors",o="block font-sackers text-[11px] font-bold uppercase tracking-wider text-walnut mb-2",q=["Reservations","Weddings","Proposals","Private + Corporate Events","Photoshoots","Wine Club","Orders","Other"];function z(){const a=S(),[l,t]=n.useState(""),[r,c]=n.useState(""),[g,u]=n.useState(""),[p,b]=n.useState(""),[x,j]=n.useState(""),[f,N]=n.useState(""),[h,m]=n.useState("idle"),[v,d]=n.useState("");async function y(s){if(s.preventDefault(),!x){m("error"),d("Please choose what your message is regarding.");return}m("submitting"),d("");try{const w=await fetch("/api/public/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({firstName:l,lastName:r,email:g,phone:p,regarding:x,message:f})}),k=await w.json().catch(()=>({}));if(!w.ok){m("error"),d(k.error||"Something went wrong. Please try again.");return}m("success"),t(""),c(""),u(""),b(""),j(""),N(""),a({to:"/contact/thank-you"})}catch{m("error"),d("Network error. Please try again.")}}return e.jsxs("form",{onSubmit:y,className:"space-y-6",children:[e.jsxs("div",{className:"grid sm:grid-cols-2 gap-5",children:[e.jsxs("div",{children:[e.jsxs("label",{className:o,htmlFor:"c_first_name",children:["First Name ",e.jsx("span",{className:"text-brick",children:"*"})]}
1),e.jsx("input",{id:"c_first_name",required:!0,value:l,onChange:s=>t(s.target.value),className:i,maxLength:80})]}),e.jsxs("div",{children:[e.jsxs("label",{className:o,htmlFor:"c_last_name",children:["Last Name ",e.jsx("span",{className:"text-brick",children:"*"})]}),e.jsx("input",{id:"c_last_name",required:!0,value:r,onChange:s=>c(s.target.value),className:i,maxLength:80})]})]}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-5",children:[e.jsxs("div",{children:[e.jsxs("label",{className:o,htmlFor:"c_email",children:["Email ",e.jsx("span",{className:"text-brick",children:"*"})]}),e.jsx("input",{id:"c_email",type:"email",required:!0,value:g,onChange:s=>u(s.target.value),className:i,maxLength:255})]}),e.jsxs("div",{children:[e.jsx("label",{className:o,htmlFor:"c_phone",children:"Phone"}),e.jsx("input",{id:"c_phone",type:"tel",value:p,onChange:s=>b(s.target.value),className:i,maxLength:40})]})]}),e.jsxs("div",{children:[e.jsxs("label",{className:o,htmlFor:"c_regarding",children:["Regarding ",e.jsx("span",{className:"text-brick",children:"*"})]}),e.jsxs("select",{id:"c_regarding",required:!0,value:x,onChange:s=>j(s.target.value),className:i,children:[e.jsx("option",{value:"",disabled:!0,children:"Select an option"}),q.map(s=>e.jsx("option",{value:s,children:s},s))]})]}),e.jsxs("div",{children:[e.jsxs("label",{className:o,htmlFor:"c_message",children:["Message ",e.jsx("span",{className:"text-brick",children:"*"})]}),e.jsx("textarea",{id:"c_message",rows:6,required:!0,value:f,onChange:s=>N(s.target.value),className:`${i} h-auto py-3`,maxLength:4e3})]}),h==="error"&&v&&e.jsx("p",{className:"font-sans text-brick text-sm",children:v}),e.jsx("button",{type:"submit",disabled:h==="submitting",className:"btn-fill relative inline-flex items-center justify-center px-10 py-3.5 bg-walnut text-walnut-foreground font-sackers text-sm font-bold tracking-normal uppercase before:bg-bronze disabled:opacity-60",children:h==="submitting"?"Sending…":"Send Message"})]})}export{H 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.