PageSourceSearch

https://velthub.ai/assets/ContactPage-B-EsNtnI.js

js velthub.ai collected 2026-10-05 15:25:43 UTC 15,606 bytes, 1 lines download raw bytes

1import{r,j as e}from"./react-vendor-CrqKAb84.js";import{P as $}from"./PageTransition-CosYd_Lp.js";import{u as H,a as O,W as q}from"./WhatsAppButton-DjLV-JaS.js";import{u as P,g as x,S as W}from"./gsap-ChN_KuDA.js";import{F as u}from"./FadeIn-C__uGotL.js";import{u as G,C as n,s as d,A as C,B as V,i as X,g as Y}from"./index-gEfTXkrH.js";import{F as D}from"./FormPrivacyNotice-MiGL5LTs.js";import{P as J}from"./phone-DXFmU3D9.js";import{m as K}from"./motion-QfQdVd1h.js";import{C as Q}from"./circle-check-DqgPBDz4.js";import{L as E}from"./loader-circle-COUdSYUQ.js";import{A as Z}from"./arrow-up-right-CJGwUgSM.js";import{o as ee,s as l}from"./schemas-CAbpyWp9.js";import"./supabase-Cv6iC1M6.js";import"./Trans-BXgcQ_4F.js";x.registerPlugin(W);function ue(){const{t:a,i18n:S}=G(),z=a("contactPage.form.projectTypes",{returnObjects:!0}),L=a("contact.form.budgetRanges",{returnObjects:!0}),h=r.useRef(null),[c,b]=r.useState(!1),[R,f]=r.useState(!1),_=r.useMemo(()=>ee({nome:l().min(2,a("contact.form.validation.nameMin")),email:l().email(a("contact.form.validation.emailInvalid")),progetto:l().min(1,a("contact.form.validation.projectRequired")),budget:l().min(1,a("contact.form.validation.budgetRequired")),messaggio:l().min(10,a("contact.form.validation.messageMin"))}),[S.language]),{register:g,handleSubmit:I,setValue:w,watch:v,formState:{errors:s}}=H({resolver:O(_),defaultValues:{progetto:"",budget:""}}),M=v("progetto"),T=v("budget"),j=r.useRef(null);P(()=>{const t=j.current;if(t){const i=y=>{const m=t.getBoundingClientRect(),F=y.clientX-m.left-m.width/2,U=y.clientY-m.top-m.height/2;x.to(t,{x:F*.2,y:U*.2,duration:.5,ease:"power3.out"})},o=()=>{x.to(t,{x:0,y:0,duration:.5,ease:"elastic.out(1, 0.3)"})};return t.addEventListener("mousemove",i),t.addEventListener("mouseleave",o),()=>{t.removeEventListener("mousemove",i),t.removeEventListener("mouseleave",o)}}},{scope:h}),P(()=>{x.from(".contact-info-item",{x:-50,opacity:0,duration:1,stagger:.2,ease:"power3.out",scrollTrigger:{trigger:".form-section",start:"top 80%"}})},{scope:h});const[N,p]=r.useState(null),[k,A]=r.useState(""),B=async t=>{var i;b(!0),p(null);try{await X("contact-submit",{...t,azienda:((i=t.azienda)==null?void 0:i.trim())||"-",website:k,sourceUrl:typeof window<"u"?window.location.href:void 0}),f(!0)}catch(o){o instanceof Y&&o.status===429?p(a("contactPage.form.errorRateLimited")):p(o instanceof Error?o.message:a("contactPage.form.errorSubmit"))}finally{b(!1)}};return e.jsx($,{children:e.jsxs("div",{className:"bg-[#0a0a0a] min-h-screen selection:bg-white selection:text-black relative",ref:h,children:[e.jsx("div",{className:"fixed inset-0 pointer-events-none opacity-[0.03] z-[100]",style:{backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E\")"}}),e.jsx("section",{className:"pt-40 pb-24 px-6 max-w-7xl mx-auto",children:e.jsx(u,{children:e.jsx("div",{className:"max-w-5xl",children:e.jsx("h1",{className:"text-6xl md:text-8xl lg:text-9xl font-medium tracking-tighter mb-12 leading-[0.9]",children:a("contactPage.title")})})})}),e.jsx("section",{className:"form-section py-32 px-6 max-w-7xl mx-auto",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-24",children:[e.jsxs("div",{className:"lg:col-span-4 space-y-20",children:[e.jsxs("div",{className:"contact-info-item group",children:[e.jsx("span",{className:"text-[10px] font-mono text-white/45 tracking-wide block mb-6 group-hover:text-white/70 transition-colors italic",children:a("contactPage.sections.connectivity")}),e.jsx("a",{href:"mailto:".concat(n.email),className:"text-3xl font-light hover:text-white/60 transition-all duration-500 block tracking-tight",children:n.email}),e.jsxs("a",{href:n.phoneHref,className:"mt-4 inline-flex items-center gap-2 text-xl font-light text-white/60 hover:text-white transition-colors",children:[e.jsx(J,{className:"w-4 h-4"}),n.phone]}),e.jsx("div",{className:"w-12 h-[1px] bg-white/10 mt-6 group-hover:w-full transition-all duration-700"}),e.jsx("div",{className:"mt-8",children:e.jsx(q,{variant:"solid"})})]}),e.jsxs("div",{className:"contact-info-item group",children:[e.jsx("span",{className:"text-[10px] font-mono text-white/45 tracking-wide block mb-6 group-hover:text-white/70 transition-colors italic",children:a("contactPage.sections.presence")}),e.jsx("div",{className:"space-y-8",children:n.offices.map(t=>e.jsxs("div",{children:[e.jsx("span",{className:"block text-white text-sm font-mono tracking-wide mb-2",children:a("office
1s.".concat(t.role))}),e.jsxs("p",{className:"text-2xl font-light leading-tight tracking-tight",children:[t.street,e.jsx("br",{}),t.postalCode," ",t.city," (",t.province,")"]})]},t.label))}),e.jsx("div",{className:"w-12 h-[1px] bg-white/10 mt-6 group-hover:w-full transition-all duration-700"})]}),e.jsxs("div",{className:"contact-info-item group",children:[e.jsx("span",{className:"text-[10px] font-mono text-white/45 tracking-wide block mb-6 group-hover:text-white/70 transition-colors italic",children:a("contactPage.sections.network")}),e.jsx("div",{className:"flex flex-col gap-4",children:[{label:"LinkedIn",url:d("LinkedIn"),path:"M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"},{label:"Instagram",url:d("Instagram"),path:"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"},{label:"Facebook",url:d("Facebook"),path:"M9 8h-3v4h3v12h5v-12h3.642l.358-4h-4v-1.667c0-.955.192-1.333 1.115-1.333h2.885v-5h-3.808c-3.596 0-5.192 1.583-5.192 4.615v3.385z"},{label:"X",url:d("X"),path:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}].map(t=>e.jsxs("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",className:"text-xl font-light text-white/60 hover:text-white transition-all duration-500 flex items-center gap-4 group/link",children:[e.jsx("svg",{className:"w-5 h-5 shrink-0 text-white/30 group-hover/link:text-white transition-colors duration-500",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{d:t.path})}),t.label]},t.label))})]})]}),e.jsx("div",{className:"lg:col-span-8 relative",children:e.jsxs(u,{children:[e.jsx("div",{className:"absolute -top-24 -right-24 w-96 h-96 bg-white/[0.02] rounded-full blur-[120px] pointer-events-none"}),R?e.jsxs(K.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"bg-white text-black p-12 md:p-24 flex flex-col items-center text-center relative overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 left-0 w-full h-1 bg-black/10"}),e.jsx(Q,{className:"w-24 h-24 mb-10 stroke-[1px]"}),e.jsx("h2",{className:"text-4xl md:text-6xl font-medium tracking-tighter mb-8 italic",children:a("contactPage.form.successTitle")}),e.jsx("p",{className:"text-xl font-light opacity-60 max-w-md leading-relaxed",children:a("contactPage.form.successBody")}),e.jsxs("button",{onClick:()=>f(!1),className:"mt-16 group flex items-center gap-4 font-mono text-[10px] tracking-wide border border-black/10 px-8 py-4 hover:bg-black hover:text-white transition-all duration-500",children:[a("contactPage.form.successAgain"),e.jsx(C,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})]}):e.jsxs("form",{onSubmit:I(B),className:"space-y-0 border-b border-white/5 relative z-10",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2",children:[e.jsxs("div",{className:"group relative border-t border-white/5 md:border-r pt-10 pb-12 md:pt-12 md:pb-16 px-8 md:px-10 transition-all duration-700 hover:bg-white/[0.03]",children:[e.jsx("div",{className:"flex justify-between items-center mb-8 md:mb-10",children:e.jsx("label",{className:"text-[10px] font-mono text-white/55 tracking-wide group-focus-within:text-white transition-colors",children:a("contactPage.form.nameLabel")})}),e.jsx("input",{...g("nome"),className:"w-full bg-transparent text-2xl md:text-3xl font-light focus:outline-none placeholder:text-white/30 tracking-tight",placeholder:a("contact.form.namePlaceholder")}),e.jsx("div",{className:"absolute bottom-0 left-0 h-[1px] bg-white w-0 group-focus-within:w-full transition-all duration-1000 ease-in-out"}),s.nome&&e.jsx("span",{className:"text-red-500 text-[11px] font-mono mt-4 block tracking-wide absolute bottom-6",children:s.nome.message})]}),e.jsxs("div",{className:"group relative border-t border-white/5 pt-10 pb-12 md:pt-12 md:pb-16 px-8 md:px-10 transition-all duration-700 hover:bg-white/[0.03]",children:[e.jsx("div",{className:"flex justify-between items-center mb-8 md:mb-10",children:e.jsx("label",{className:"text-[10px] font-mono text-white/55 tracking-wide group-focus-within:text-white transition-colors",children:a("contactPage.form.emailLabel")})}),e.jsx("input",{...g("email"),type:"email",className:"w-full bg-transparent text-2xl md:text-3xl font-light focus:outline-none placeholder:text-white/30 tracking-tight",placeholder:a("contact.form.emailPlaceholder")}),e.jsx("div",{className:"absolute bottom-0 left-0 h-[1px] bg-white w-0 group-focus-within:w-full transition-all duration-1000 ease-in-out"}),s.email&&e.jsx("span",{className:"text-red-500 text-[11px] font-mono mt-4 block tracking-wide absolute bottom-6",children:s.email.message})]})]}),e.jsxs("div",{className:"group relative border-t border-white/5 pt-12 pb-16 px-10 transition-all duration-700 hover:bg-white/[0.03]",children:[e.jsx("div",{className:"flex justify-between items-center mb-12",children:e.jsx("label",{className:"text-[10px] font-mono text-white/55 tracking-wide block",children:a("contactPage.form.projectLabel")})}),e.jsx("div",{className:"flex flex-wrap gap-4",children:z.map(t=>e.jsx("button",{type:"button",onClick:()=>w("progetto",t),className:"relative px-8 py-5 border font-mono text-[10px] tracking-wide transition-all duration-500 ".concat(M===t?"bg-white text-black border-white shadow-[0_0_30px_rgba(255,255,255,0.1)]":"bg-transparent text-white/60 border-white/15 hover:border-white/40 hover:text-white"),children:t},t))}),s.progetto&&e.jsx("span",{className:"text-red-500 text-[11px] font-mono mt-4 block tracking-wide absolute bottom-6",children:s.progetto.message})]}),e.jsxs("div",{className:"group relative border-t border-white/5 pt-12 pb-16 px-10 transition-all duration-700 hover:bg-white/[0.03]",children:[e.jsx("div",{className:"flex justify-between items-center mb-12",children:e.jsx("label",{className:"text-[10px] font-mono text-white/55 tracking-wide block",children:a("contactPage.form.budgetLabel")})}),e.jsx("div",{className:"flex flex-wrap gap-4",children:V.map((t,i)=>{var o;return e.jsx("button",{type:"button",onClick:()=>w("budget",t),className:"relative px-10 py-5 border font-mono text-[10px] tracking-wide transition-all duration-500 ".concat(T===t?"bg-white text-black border-white shadow-[0_0_30px_rgba(255,255,255,0.1)]":"bg-transparent text-white/60 border-white/15 hover:border-white/40 hover:text-white"),children:(o=L[i])!=null?o:t},t)})}),s.budget&&e.jsx("span",{className:"text-red-500 text-[11px] font-mono mt-4 block tracking-wide absolute bottom-6",children:s.budget.message})]}),e.jsxs("div",{className:"group relative border-t border-white/5 pt-10 pb-16 md:pt-12 md:pb-24 px-8 md:px-10 transition-all duration-700 hover:bg-white/[0.03]",children:[e.jsx("div",{className:"flex justify-between items-center mb-8 md:mb-10",children:e.jsx("label",{className:"text-[10px] font-mono text-white/55 tracking-wide block group-focus-within:text-white transition-colors",children:a("contactPage.form.messageLabel")})}),e.jsx("textarea",{...g("messaggio"),rows:4,className:"w-full bg-transparent text-2xl md:text-3xl font-light focus:outline-none placeholder:text-white/30 resize-none leading-relaxed tracking-tight",placeholder:a("contactPage.form.messagePlaceholder")}),e.jsx("div",{className:"absolute bottom-0 left-0 h-[1px] bg-white w-0 group-focus-within:w-full transition-all duration-1000 ease-in-out"}),s.messaggio&&e.jsx("span",{className:"text-red-500 text-[11px] font-mono mt-4 block tracking-wide absolute bottom-8",children:s.messaggio.message})]}),e.jsx("input",{type:"text",tabIndex:-1,autoComplete:"off",value:k,onChange:t=>A(t.target.value),className:"absolute left-[-9999px] h-0 w-0 opacity-0","aria-hidden":!0}),N&&e.jsx("div",{className:"border border-red-500/40 bg-red-500/10 text-red-300 px-4 py-3 text-xs font-mono",children:N}
1),e.jsxs("button",{ref:j,type:"submit",disabled:c,className:"group relative w-full bg-white text-black py-12 overflow-hidden flex items-center justify-center gap-8 transition-all duration-700 active:scale-[0.99] shadow-[0_20px_50px_rgba(255,255,255,0.05)] disabled:opacity-70",children:[e.jsx("span",{className:"relative z-10 font-mono text-[11px] tracking-wide font-bold",children:a(c?"contactPage.form.submitting":"contactPage.form.submit")}),c?e.jsx(E,{className:"w-6 h-6 relative z-10 animate-spin"}):e.jsx(C,{className:"w-6 h-6 relative z-10 group-hover:translate-x-4 transition-transform duration-700 ease-out"}),e.jsx("div",{className:"absolute inset-0 bg-neutral-100 translate-y-full group-hover:translate-y-0 transition-transform duration-700 ease-out"}),c&&e.jsx(E,{className:"w-6 h-6 animate-spin relative z-10"})]}),e.jsx(D,{className:"px-8 md:px-10 py-6"})]})]})})]})}),e.jsx("section",{className:"pb-32 px-6 max-w-7xl mx-auto",children:e.jsx(u,{children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-12",children:n.offices.map((t,i)=>e.jsxs("div",{className:"border border-white/10 bg-[#050505] p-10 md:p-12 hover:border-white/20 transition-colors duration-500",children:[e.jsx("h3",{className:"text-2xl font-medium tracking-tight mb-2",children:a("offices.".concat(t.role))}),e.jsx("p",{className:"text-sm text-white/40 font-light",children:t.address}),e.jsxs("a",{href:"https://www.google.com/maps/search/?api=1&query=".concat(encodeURIComponent(t.address)),target:"_blank",rel:"noopener noreferrer",className:"mt-8 flex w-fit items-center gap-2 bg-white text-black px-6 py-3 text-[10px] font-mono tracking-wide hover:bg-neutral-200 transition-colors",children:[a("contact.openInMaps")," ",e.jsx(Z,{className:"w-4 h-4"})]})]},i))})})})]})})}export{ue as ContactPage};

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.