1import{r as x,j as t,B as $,t as S,c as C}from"./index-DuSKzjd3.js";import{e as P}from"./enquiries-CtKdiUme.js";import{A as z}from"./AddressInput-BhQS5nbC.js";const g={name:"name",kind:"text",required:!0,max:100},b={name:"email",kind:"email",required:!0,max:200},k={name:"phone",kind:"tel",required:!0,max:40,autocomplete:"tel"},v={name:"organisation",kind:"text",required:!1,max:150},H=["public-space","education","venue","hospitality","workplace","retail","transport","cultural-institution","private-property","other"],y={"early-access":[g,b,k,{name:"location",kind:"text",required:!0,max:200,autocomplete:"address-level2",lookup:"place"},{name:"interest",kind:"select",required:!0,max:20,options:["recording","collaboration","producer","membership","other"]},{name:"message",kind:"textarea",required:!1,max:2e3}],partners:[g,b,k,v,{name:"message",kind:"textarea",required:!0,max:2e3}],investors:[g,b,k,v,{name:"message",kind:"textarea",required:!0,max:2e3}],places:[g,b,k,v,{name:"role",kind:"text",required:!1,max:100},{name:"hostType",kind:"select",required:!0,max:20,options:H},{name:"location",kind:"text",required:!0,max:200,autocomplete:"street-address",lookup:"address"},{name:"timeline",kind:"select",required:!1,max:20,options:["asap","3-months","6-months","12-months","exploring"]},{name:"intendedUse",kind:"textarea",required:!1,max:1e3},{name:"message",kind:"textarea",required:!1,max:2e3}],events:[g,b,k,v,{name:"eventType",kind:"select",required:!0,max:20,options:["wedding","festival","conference","exhibition","cultural","launch","private","other"]},{name:"location",kind:"text",required:!0,max:200,autocomplete:"off",lookup:"address"},{name:"eventDate",kind:"date",required:!1,max:10,min:"2027-04-01"},{name:"attendance",kind:"select",required:!1,max:20,options:["under-100","100-500","500-2000","over-2000","unsure"]},{name:"message",kind:"textarea",required:!1,max:2e3}],charities:[{name:"charityName",kind:"text",required:!0,max:150},{name:"charityNumber",kind:"text",required:!0,max:30},g,{name:"role",kind:"text",required:!0,max:100},b,k,{name:"area",kind:"text",required:!0,max:200,autocomplete:"address-level2",lookup:"place"},{name:"hasKiosk",kind:"select",required:!0,max:10,options:["yes","no","unsure"]},{name:"kioskLocation",kind:"text",required:!1,max:200,showIf:{field:"hasKiosk",value:"yes"},autocomplete:"off",lookup:"address"},{name:"purpose",kind:"textarea",required:!1,max:1500},{name:"audience",kind:"textarea",required:!1,max:1500}],industry:[g,b,k,v,{name:"role",kind:"text",required:!0,max:100},{name:"focus",kind:"select",required:!0,max:20,options:["a-and-r","supervision","label","publishing","management","brand","other"]},{name:"message",kind:"textarea",required:!1,max:2e3}],general:[g,b,k,v,{name:"topic",kind:"select",required:!0,max:20,options:["recording","press","partnership","red-box","other"]},{name:"message",kind:"textarea",required:!0,max:2e3}]},V=/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/,K=/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F\u2028\u2029]/g;function D(r,o){if(typeof r!="string")return"";let n=r.normalize("NFC").replace(K,"");return o?n=n.replace(/\r\n?/g,` 2`):n=n.replace(/[\r\n\t]+/g," "),n.trim()}function G(r){if(!/^\+?[0-9 ().-]{7,30}$/.test(r))return!1;const o=r.replace(/\D/g,"").length;return o>=7&&o<=15}function J(r){if(!/^\d{4}-\d{2}-\d{2}$/.test(r))return!1;const o=new Date(`${r}T00:00:00Z`);return!Number.isNaN(o.getTime())&&o.toISOString().slice(0,10)===r}function Q(r,o){var f;const n={},s={};for(const a of y[r]){if(a.showIf&&D(o[a.showIf.field],!1)!==a.showIf.value){n[a.name]="";continue}const c=D(o[a.name],a.kind==="textarea");if(n[a.name]=c,!c){a.required&&(s[a.name]="required");continue}c.length>a.max?s[a.name]="too-long":a.kind==="email"&&!V.test(c)?s[a.name]="email":a.kind==="select"&&!((f=a.options)!=null&&f.includes(c))?s[a.name]="invalid":a.kind==="date"&&!J(c)?s[a.name]="date":a.kind==="date"&&a.min&&c<a.min?s[a.name]="date-min":a.kind==="tel"&&!G(c)&&(s[a.name]="phone")}return{ok:Object.keys(s).length===0,values:n,errors:s}}const W={name:"name",email:"email",phone:"tel",organisation:"organization",role:"organization-title"},Y={"early-access":new Set(["name","email","phone","location"]),partners:new Set(["name","email","phone","organisation"]),investors:new Set(["name","email","phone","organisation"]),places:new Set(["name","email","phone","organisation","location","timeline"]),events:new Set(["name","email","phone","organisation","location","eventDate"]),general:new Set(["name","email","phone","organisation"]),industry:new Set(["name","email","phone","organisation","role","focus"]),charities:new Set(["charityName","charityNumber","name","role","email","phone"])},Z="w-full rounded-xl border bg-background px-4 py-3 text-base text-foreground outline-none transition-colors placeholder:text-muted-foreground
2/70 focus-visible:ring-4 focus-visible:ring-ring/40";function F(r,o){const n=new FormData(r),s={};for(const f of y[o])s[f.name]=String(n.get(f.name)??"");return s}function X({type:r,locale:o}){const n=P[o],s=n.types[r],f=x.useRef(null),a=x.useRef(null),c=x.useRef(null),I=x.useRef(0),[w,E]=x.useState({}),[h,j]=x.useState({state:"idle"}),[O,R]=x.useState({}),A=new Set(y[r].flatMap(e=>e.showIf?[e.showIf.field]:[]));x.useEffect(()=>{I.current=Date.now()},[]),x.useEffect(()=>{var e;Object.keys(w).length&&((e=a.current)==null||e.focus())},[w]),x.useEffect(()=>{var e;h.state==="sent"&&((e=c.current)==null||e.focus())},[h.state]);const _=e=>{const m=y[r].filter(l=>e[l.name]).map(l=>{var d;const u=s.fields[l.name],q=l.kind==="select"?((d=u.options)==null?void 0:d[e[l.name]])??e[l.name]:e[l.name];return`${u.label}: ${q}`});return`mailto:${$.contactEmail}?subject=${encodeURIComponent(s.title)}&body=${encodeURIComponent(m.join(` 3`))}`};async function B(e){e.preventDefault();const m=e.currentTarget,l=F(m,r),u=Q(r,l);if(E(u.errors),!u.ok)return;r==="events"&&S("event_inquiry_started"),r==="places"&&S("host_inquiry_started"),j({state:"sending"});const q={type:r,locale:o,fields:l,website:String(new FormData(m).get("website")??""),startedAt:I.current},d=(N,i)=>j({state:"failed",message:N,canEmail:i});try{const i=await(await fetch("/api/enquiries",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(q)})).json().catch(()=>null);if(i!=null&&i.ok)return r==="events"&&S("event_inquiry_completed"),r==="places"&&S("host_inquiry_completed"),j({state:"sent",reference:i.reference,email:u.values.email});if(i&&!i.ok){if(i.code==="invalid")return j({state:"idle"}),E(i.errors);const p=n.ui.failure;if(i.code==="too-fast")return d(p.tooFast,!1);if(i.code==="rate-limited")return d(p.rateLimited,!0);if(i.code==="unavailable")return d(p.unavailable,!0);if(i.code==="bad-request")return d(p.badRequest,!0)}return d(n.ui.failure.failed,!0)}catch{return d(n.ui.failure.network,!0)}}function U(){var e;(e=f.current)==null||e.reset(),R({}),E({}),j({state:"idle"}),I.current=Date.now()}if(h.state==="sent")return t.jsxs("div",{role:"status",className:"rounded-2xl border border-border bg-background p-6 sm:p-8",children:[t.jsx("h3",{ref:c,tabIndex:-1,className:"text-2xl font-semibold tracking-[-0.02em] outline-none",children:n.ui.sentTitle}),t.jsx("p",{className:"mt-3 text-lg leading-relaxed text-muted-foreground",children:n.ui.sentBody.replace("{email}",h.email)}),t.jsxs("p",{className:"mt-4 text-sm text-muted-foreground",children:[n.ui.reference,": ",t.jsx("strong",{className:"font-mono text-base font-semibold tracking-wide text-foreground",children:h.reference})]}),t.jsx("button",{type:"button",onClick:U,className:"mt-6 min-h-11 rounded-full border border-border px-5 text-[15px] font-semibold outline-none transition-colors hover:bg-secondary focus-visible:ring-4 focus-visible:ring-ring/40",children:n.ui.another})]});const L=Object.entries(w),T=h.state==="sending",M=e=>{var N;if(e.showIf&&O[e.showIf.field]!==e.showIf.value)return null;const m=s.fields[e.name],l=`${r}-${e.name}`,u=w[e.name],q=[m.help?`${l}-help`:"",u?`${l}-error`:""].filter(Boolean).join(" ")||void 0,d={id:l,name:e.name,required:e.required,"aria-invalid":u?!0:void 0,"aria-describedby":q,className:C(Z,u?"border-destructive":"border-border"),autoComplete:e.autocomplete??W[e.name]};return t.jsxs("div",{className:C(!Y[r].has(e.name)&&"sm:col-span-2"),children:[t.jsxs("label",{htmlFor:l,className:"mb-1.5 block text-[15px] font-medium",children:[m.label,e.required?t.jsx("span",{"aria-hidden":"true",className:"ml-1 text-primary",children:"*"}):t.jsxs("span",{className:"ml-2 text-sm font-normal text-muted-foreground",children:["(",n.ui.optional,")"]})]}),e.kind==="select"?t.jsxs("select",{...d,defaultValue:"",autoComplete:void 0,onChange:A.has(e.name)?i=>R(p=>({...p,[e.name]:i.target.value})):void 0,children:[t.jsx("option",{value:"",disabled:e.required,children:n.ui.choose}),(N=e.options)==null?void 0:N.map(i=>{var p;return t.jsx("option",{value:i,children:((p=m.options)==null?void 0:p[i])??i},i)})]}):e.kind==="textarea"?t.jsx("textarea",{...d,rows:e.max>1500?6:4,maxLength:e.max}):e.lookup?t.jsx(z,{...d,kind:e.lookup,locale:o,type:"text",maxLength:e.max}):t.jsx("input",{...d,className:e.kind==="date"?C(d.className,"block min-w-0 max-w-full appearance-none"):d.className,type:e.kind,inputMode:e.kind==="tel"?"tel":void 0,maxLength:e.kind==="date"?void 0:e.max,min:e.min}),m.help&&t.jsx("p",{id:`${l}-help`,className:"mt-1.5 text-sm text-muted-foreground",children:m.help}),u&&t.jsx("p",{id:`${l}-error`,className:"mt-1.5 text-sm font-medium text-destructive",children:n.ui.errors[u]})]},e.name)};return t.jsxs("form",{ref:f,onSubmit:B,noValidate:!0,"aria-label":s.title,className:"relative",children:[L.length>0&&t.jsxs("div",{ref:a,tabIndex:-1,role:"alert",className:"mb-6 rounded-xl border border-destructive/60 bg-destructive/10 p-4 outline-none",children:[t.jsx("p",{className:"font-semibold",children:n.ui.errorSummary}),t.jsx("ul",{className:"mt-2 list-disc space-y-1 pl-5 text-sm",children:L.map(([e])=>{var m;return t.jsx("li",{children:t.jsx("a",{className:"underline underline-offset-4",href:`#${r}-${e}`,children:((m=s.fields[e])==null?void 0:m.label)??e})},e)})})]}),t.jsx("div",{className:"grid gap-x-5 gap-y-5 sm:grid-cols-2",children:y[r].map(M)}),t.jsx("div",{"aria-hidden":"true",className:"absolute -left-[9999px] top-0 h-0 w-0 overflow-hidden",children:t.jsxs("label",{children:[n.ui.honeypot,t.jsx("input",{name:"website",type:"text",tabIndex:-1,autoComplete:"off",defaultValue:""})]})}),t.jsxs("p",{className:"mt-6 text-sm text-muted-foreground",children:[n.ui.requiredNote," · ",n.privacy.before,t.jsx("a",{className:"text-foreground underline underline-offset-4",href:"/legal/privacy",hrefLang:"en-GB",children:n.privacy.link}),n.privacy.after]}
3),h.state==="failed"&&t.jsxs("div",{role:"alert",className:"mt-6 rounded-xl border border-destructive/60 bg-destructive/10 p-4",children:[t.jsx("p",{className:"font-medium",children:h.message}),h.canEmail&&f.current&&t.jsxs("p",{className:"mt-2 text-sm",children:[t.jsx("a",{className:"font-semibold text-primary underline underline-offset-4",href:_(F(f.current,r)),children:n.ui.emailInstead})," ",t.jsx("span",{className:"text-muted-foreground",children:n.ui.emailNote})]})]}),t.jsx("div",{className:"mt-6 flex flex-wrap items-center gap-4",children:t.jsx("button",{type:"submit",disabled:T,className:"inline-flex min-h-12 items-center justify-center rounded-full bg-[hsl(var(--primary-fill))] px-8 text-[17px] font-semibold text-white outline-none transition-[filter,opacity] hover:brightness-110 focus-visible:ring-4 focus-visible:ring-ring/40 disabled:cursor-wait disabled:opacity-60",children:T?n.ui.sending:s.submit})}),t.jsx("noscript",{children:t.jsxs("p",{className:"mt-4 text-sm text-muted-foreground",children:[n.ui.noscript," ",t.jsx("a",{className:"text-primary underline underline-offset-4",href:`mailto:${$.contactEmail}?subject=${encodeURIComponent(s.title)}`,children:$.contactEmail})]})})]})}function re({type:r,locale:o}){return t.jsx(X,{type:r,locale:o})}export{re as EnquirySection};
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.