efficient-storefront-blocks 0.25.0 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/chunks/{PreviewFooter-SMYEU6AT.js → PreviewFooter-FMWOXIAI.js} +1 -1
- package/dist/chunks/{chunk-V5ANFR4Q.js → chunk-ITVNHQAU.js} +2 -2
- package/dist/chunks/{render-client-GS5UA2Q7.js → render-client-IM6ELUPU.js} +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- /package/dist/chunks/{chunk-V5ANFR4Q.js.LEGAL.txt → chunk-ITVNHQAU.js.LEGAL.txt} +0 -0
|
@@ -19,7 +19,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
19
19
|
`;function Vp(){let{chromePlaceholder:e,themeFromDocument:t}=V3(),{chat:a,selected:s,select:c}=ew();return e||t||!a.enabled?null:GW("div",{className:"sf-preview-chat-pick","data-selected":s||void 0,onClick:l=>{l.stopPropagation(),c()},children:[Ep("style",{children:OW}),Ep(oS,{preview:!0,children:Ep(Pp,{title:a.title,subtitle:a.subtitle,greeting:a.greeting})})]})}import{lazy as qW,Suspense as WW}from"react";import{jsx as nS}from"react/jsx-runtime";function Np(e,t={}){let a=qW(async()=>{let l=await e();return{default:"default"in l?l.default:l}}),s=t.loading?t.loading():null;function c(l){return nS(WW,{fallback:s,children:nS(a,{...l})})}return c}import{useEffect as xU,useRef as zU}from"react";import{jsx as _p,jsxs as UW}from"react/jsx-runtime";import{useEffect as jW,useState as $W}from"react";function C0({fallback:e,className:t,src:a,alt:s="",objectPosition:c,objectFit:l="cover",sizes:r="100vw",priority:o=!1,deferFetch:i=!1,showBackground:n=!0,treatment:h}){let[m,p]=$W(!1),u=a||"";jW(()=>{p(!1)},[u]);let g=Lx(u),d=!u||m;return UW("div",{className:`relative h-full w-full overflow-hidden ${t??""}`,children:[_p("div",{className:"absolute inset-0 flex items-center justify-center",style:n?{background:"var(--site-surface)"}:void 0,children:d?e:null}),u&&(g?_p("img",{src:u,alt:s,decoding:"async",...i?{loading:"lazy"}:{},className:`absolute inset-0 h-full w-full${h?.className?` ${h.className}`:""}`,style:{display:m?"none":"block",objectFit:l,...c?{objectPosition:c}:{},...h?.style??{}},onError:()=>p(!0)}):_p(ll,{src:u,alt:s,fill:!0,sizes:r,priority:o,...h?.className?{className:h.className}:{},style:{display:m?"none":"block",objectFit:l,...c?{objectPosition:c}:{},...h?.style??{}},onError:()=>p(!0)}))]})}import{useId as aU}from"react";var KW=25.4,Ga=400,ro=152,YW=58,hS=ro*Math.cos(YW*Math.PI/180),XW=14,JW=Ga/2,QW={sectionWidth:225,aspectRatio:60,rimDiameter:17};function pS(e){let t=l4(e);return t?{sectionWidth:t.width,aspectRatio:t.profile,rimDiameter:t.rim}:QW}function uS(e){let t=e.rimDiameter*KW/2,a=t+e.sectionWidth*e.aspectRatio/100,s=ro*(e.sectionWidth/a),c=t/a;return{cy:JW,rx:hS,ry:ro,cxf:Ga/2-s/2-XW,dx:s,rimRx:hS*c,rimRy:ro*c}}var x0=e=>e.toFixed(1);function oo(e,t,a,s=!1){let c=e.cxf+t*e.dx,[l,r]=s?[e.cy+e.ry,e.cy-e.ry]:[e.cy-e.ry,e.cy+e.ry];return`M${x0(c)} ${x0(l)} A${x0(e.rx)} ${x0(e.ry)} 0 0 ${a} ${x0(c)} ${x0(r)}`}function Ip(e,t,a){let s=e.cxf+t*e.dx,c=e.cxf+a*e.dx,l=e.cy-e.ry,r=e.cy+e.ry;return`M${x0(s)} ${x0(l)} L${x0(c)} ${x0(l)} A${x0(e.rx)} ${x0(e.ry)} 0 0 1 ${x0(c)} ${x0(r)} L${x0(s)} ${x0(r)} A${x0(e.rx)} ${x0(e.ry)} 0 0 0 ${x0(s)} ${x0(l)} Z`}function lo(e,t,a){let s=a*Math.PI;return[e.cxf+t*e.dx+e.rx*Math.sin(s),e.cy-e.ry*Math.cos(s)]}function dS(e,t,a,s,c){let[l,r]=lo(e,t,s),[o,i]=lo(e,t,c),[n,h]=lo(e,a,c),[m,p]=lo(e,a,s);return`M${x0(l)} ${x0(r)} A${x0(e.rx)} ${x0(e.ry)} 0 0 1 ${x0(o)} ${x0(i)} L${x0(n)} ${x0(h)} A${x0(e.rx)} ${x0(e.ry)} 0 0 0 ${x0(m)} ${x0(p)} L${x0(l)} ${x0(r)} Z`}var mS=[{f:[0,.215]},{f:[.245,.485]},{f:[.515,.755]},{f:[.785,1]}],eU={COM:[{f:[0,.115]},{f:[.145,.26]},{f:[.29,.405]},{f:[.435,.55]},{f:[.58,.695]},{f:[.725,.84]},{f:[.87,1]}],P:[{f:[0,.17],blocks:{count:9,gap:.34}},{f:[.2,.38]},{f:[.42,.58]},{f:[.62,.8]},{f:[.83,1],blocks:{count:9,gap:.34,phase:.5}}],HP:[{f:[0,.3]},{f:[.34,.52]},{f:[.56,.7]},{f:[.74,1],blocks:{count:16,gap:.18}}],UHP:[{f:[0,.34]},{f:[.4,.56]},{f:[.62,1]}],SUV:[{f:[0,.16],blocks:{count:7,gap:.4}},{f:[.2,.36],blocks:{count:11,gap:.26,phase:.5}},{f:[.4,.6]},{f:[.64,.8],blocks:{count:11,gap:.26,phase:.5}},{f:[.84,1],blocks:{count:7,gap:.4}}],LT:[{f:[0,.22],blocks:{count:11,gap:.26}},{f:[.26,.48],blocks:{count:11,gap:.26,phase:.5}},{f:[.52,.74],blocks:{count:11,gap:.26}},{f:[.78,1],blocks:{count:11,gap:.26,phase:.5}}],AT:[{f:[0,.23],blocks:{count:6,gap:.46}},{f:[.29,.5],blocks:{count:6,gap:.46,phase:.5}},{f:[.56,.77],blocks:{count:6,gap:.46}},{f:[.83,1],blocks:{count:6,gap:.46,phase:.5}}],MT:[{f:[0,.29],blocks:{count:4,gap:.58}},{f:[.36,.64],blocks:{count:4,gap:.58,phase:.5}},{f:[.71,1],blocks:{count:4,gap:.58}}]},tU=[["ultra high performance","UHP"],["uhp","UHP"],["high performance","HP"],["hp","HP"],["performance","HP"],["sport","HP"],["mud terrain","MT"],["mud","MT"],["mt","MT"],["all terrain","AT"],["at","AT"],["light truck","LT"],["lt","LT"],["commercial","COM"],["com","COM"],["van","COM"],["cargo","COM"],["suv","SUV"],["4x4","SUV"],["crossover","SUV"],["cuv","SUV"],["passenger","P"],["touring","P"],["highway","P"],["p","P"]];function gS(e){let t=` ${(e??"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim()} `;if(t.trim()==="")return mS;for(let[a,s]of tU)if(t.includes(` ${a} `))return eU[s];return mS}var io="Illustrations are drawn to each tyre's listed size and represent its category; supplier photography replaces them where available.";import{Fragment as qa,jsx as u0,jsxs as A5}from"react/jsx-runtime";var i4={rib:.2,grooveWall:.16,shoulder:.22,silhouette:.26,relief:[.26,.15,.11],lettering:.1,dishFill:.06,dishEdge:.3,spoke:.3,hubFill:.16,hubEdge:.34},sU=[.8,.52,.24],vS=.4,fS=.88,bS=.3,xS=5,zS=.3,yS=.84,cU=7,S0=e=>Math.round(e*10)/10;function Rp({size:e,type:t,className:a}){let s=aU().replace(/[^a-zA-Z0-9]/g,""),c={tread:`${s}-tread`,wall:`${s}-wall`,rim:`${s}-rim`,shadow:`${s}-shadow`,crown:`${s}-crown`},l=uS(pS(e)),r=Ip(l,0,1),o=e?`${e} tyre illustration`:"Tyre illustration";return A5("svg",{"data-tyre-placeholder":"",viewBox:`0 0 ${Ga} ${Ga}`,role:"img","aria-label":o,fill:"none",className:a??"block h-full w-full",children:[u0("title",{children:o}),A5("defs",{children:[u0(rU,{id:c}),u0("clipPath",{id:c.crown,children:u0("path",{d:r})})]}),u0("ellipse",{cx:S0(l.cxf+l.dx/2),cy:S0(l.cy+l.ry-4),rx:S0(l.dx*1.5),ry:16,fill:`url(#${c.shadow})`}),u0(oU,{g:l,id:c}),u0(iU,{g:l,id:c}),u0("path",{d:r,fill:`url(#${c.tread})`}),u0("g",{clipPath:`url(#${c.crown})`,children:gS(t).map(i=>u0(lU,{g:l,column:i},i.f[0]))}),u0("path",{d:oo(l,0,0,!0),stroke:"currentColor",strokeOpacity:i4.shoulder,strokeWidth:1.2}),u0("path",{d:oo(l,1,1),stroke:"currentColor",strokeOpacity:i4.silhouette,strokeWidth:1.4})]})}function lU({g:e,column:t}){let[a,s]=t.f;if(!t.blocks)return A5(qa,{children:[u0("path",{d:Ip(e,a,s),fill:"currentColor",fillOpacity:i4.rib}),u0("path",{d:oo(e,a,1),stroke:"currentColor",strokeOpacity:i4.grooveWall,strokeWidth:1})]});let{count:c,gap:l,phase:r=0}=t.blocks,o=1/c,i=[];for(let n=-1;n<=c;n+=1){let h=Math.max((n+r+l/2)*o,0),m=Math.min((n+r+1-l/2)*o,1);m-h>o*.15&&i.push([h,m])}return u0(qa,{children:i.map(([n,h])=>u0("path",{d:dS(e,a,s,n,h),fill:"currentColor",fillOpacity:i4.rib,stroke:"currentColor",strokeOpacity:i4.grooveWall,strokeWidth:1},n))})}function rU({id:e}){return A5(qa,{children:[A5("linearGradient",{id:e.tread,x1:"0",y1:"0",x2:"1",y2:"0",children:[u0("stop",{offset:"0",stopColor:"currentColor",stopOpacity:.07}),u0("stop",{offset:"0.14",stopColor:"currentColor",stopOpacity:.24}),u0("stop",{offset:"0.45",stopColor:"currentColor",stopOpacity:.18}),u0("stop",{offset:"0.84",stopColor:"currentColor",stopOpacity:.1}),u0("stop",{offset:"1",stopColor:"currentColor",stopOpacity:.05})]}),A5("linearGradient",{id:e.wall,x1:"0.15",y1:"0",x2:"0.9",y2:"1",children:[u0("stop",{offset:"0",stopColor:"currentColor",stopOpacity:.28}),u0("stop",{offset:"0.45",stopColor:"currentColor",stopOpacity:.17}),u0("stop",{offset:"1",stopColor:"currentColor",stopOpacity:.08})]}),A5("linearGradient",{id:e.rim,x1:"0.1",y1:"0",x2:"0.9",y2:"1",children:[u0("stop",{offset:"0",stopColor:"currentColor",stopOpacity:.46}),u0("stop",{offset:"0.5",stopColor:"currentColor",stopOpacity:.26}),u0("stop",{offset:"1",stopColor:"currentColor",stopOpacity:.12})]}),A5("radialGradient",{id:e.shadow,children:[u0("stop",{offset:"0",stopColor:"currentColor",stopOpacity:.22}),u0("stop",{offset:"1",stopColor:"currentColor",stopOpacity:0})]})]})}function oU({g:e,id:t}){let a=e.rimRy/e.ry,s=l=>a+(1-a)*l,c=Math.max(6,(e.ry-e.rimRy)*.3);return A5(qa,{children:[u0("ellipse",{cx:S0(e.cxf),cy:S0(e.cy),rx:S0(e.rx),ry:S0(e.ry),fill:`url(#${t.wall})`}),sU.map((l,r)=>{let o=s(l);return u0("ellipse",{cx:S0(e.cxf),cy:S0(e.cy),rx:S0(e.rx*o),ry:S0(e.ry*o),stroke:"currentColor",strokeOpacity:i4.relief[r],strokeWidth:1},l)}),u0("ellipse",{cx:S0(e.cxf),cy:S0(e.cy),rx:S0(e.rx*s(vS)),ry:S0(e.ry*s(vS)),stroke:"currentColor",strokeOpacity:i4.lettering,strokeWidth:S0(c)})]})}function iU({g:e,id:t}){let a=Array.from({length:xS},(s,c)=>{let l=(c*(360/xS)-90)*Math.PI/180;return{x1:e.cxf+e.rimRx*zS*Math.cos(l),y1:e.cy+e.rimRy*zS*Math.sin(l),x2:e.cxf+e.rimRx*yS*Math.cos(l),y2:e.cy+e.rimRy*yS*Math.sin(l)}});return A5(qa,{children:[u0("ellipse",{cx:S0(e.cxf),cy:S0(e.cy),rx:S0(e.rimRx),ry:S0(e.rimRy),fill:`url(#${t.rim})`}),u0("ellipse",{cx:S0(e.cxf),cy:S0(e.cy),rx:S0(e.rimRx*fS),ry:S0(e.rimRy*fS),fill:"currentColor",fillOpacity:i4.dishFill,stroke:"currentColor",strokeOpacity:i4.dishEdge,strokeWidth:1}),a.map((s,c)=>u0("line",{x1:S0(s.x1),y1:S0(s.y1),x2:S0(s.x2),y2:S0(s.y2),stroke:"currentColor",strokeOpacity:i4.spoke,strokeWidth:cU,strokeLinecap:"round"},c)),u0("ellipse",{cx:S0(e.cxf),cy:S0(e.cy),rx:S0(e.rimRx*bS),ry:S0(e.rimRy*bS),fill:"currentColor",fillOpacity:i4.hubFill,stroke:"currentColor",strokeOpacity:i4.hubEdge,strokeWidth:1})]})}import{jsx as Bp}from"react/jsx-runtime";function i6({image:e,size:t,type:a,sizes:s,priority:c=!1,className:l="aspect-square",showBackground:r=!0}){return Bp("div",{className:`text-fg ${l}`,style:{padding:"var(--sf-tyre-image-inset, 0)"},children:Bp(C0,{label:t||"Tyre",src:Q3(e??void 0),alt:t?`${t} tyre`:"Tyre",objectFit:"contain",sizes:s,priority:c,showBackground:r,fallback:Bp(Rp,{size:t,type:a,className:"block h-full w-full p-3"})})})}function ho(e){if(!e||e.year===null)return null;let{make:t,model:a,year:s,modification:c}=e;return!t||!a||!c?null:{make:t,model:a,year:s,modification:c}}function nU(e,t){let a=new URLSearchParams({make:t.make,model:t.model,year:String(t.year),modification:t.modification});return`/api/v1/tyres/${encodeURIComponent(e)}/fitment?${a.toString()}`}function no(e,t=""){return{vehicle:{...e,region:t},status:"unknown",oemSizes:[],variants:[]}}function hU(e,t){if(typeof t!="object"||t===null)return no(e);let a=t,s=typeof a.vehicle=="object"&&a.vehicle!==null?a.vehicle:{},c=typeof s.region=="string"?s.region:"",l=a.status;if(l!=="fits"&&l!=="doesNotFit")return no(e,c);let r=Array.isArray(a.variants)?a.variants.filter(o=>typeof o=="object"&&o!==null&&typeof o.sku=="string"&&typeof o.fits=="boolean"):[];return r.length===0?no(e,c):{vehicle:{make:typeof s.make=="string"?s.make:e.make,model:typeof s.model=="string"?s.model:e.model,year:typeof s.year=="number"?s.year:e.year,modification:typeof s.modification=="string"?s.modification:e.modification,region:c},status:l,oemSizes:Array.isArray(a.oemSizes)?a.oemSizes.filter(o=>typeof o=="string"):[],variants:r.map(o=>({sku:o.sku,size:typeof o.size=="string"?o.size:"",fits:o.fits}))}}async function wS(e,t){try{let a=await a7(nU(e,t),{baseUrl:aC});return hU(t,a)}catch{return no(t)}}function CS(e){if(!e)return[];let t=[];for(let a of[...e.frontTyres,...e.rearTyres]){let s=l4(a);if(!s)continue;let c=q4(s);t.includes(c)||t.push(c)}return t}function kS(e,t){if(t.length===0)return null;for(let a of e){let s=l4(a);if(!s)continue;let c=q4(s);if(t.includes(c))return c}return null}function Wa(e,t){if(!e||e.status==="unknown")return"unknown";let a=e.variants.find(s=>s.sku===t);return a?a.fits?"fits":"doesNotFit":"unknown"}var mU="/tyres";function De(e){return e?`${mU}/${e}`:null}function Oe(e){let t=e.lastIndexOf(" ");return t===-1?{lead:"",accent:e}:{lead:e.slice(0,t+1),accent:e.slice(t+1)}}function Zp(e,t){return rC({partNumber:e.sku,prices:e.prices},t)}var pU="Tyre";function mo(e,t,a,s){return{id:`${e.slug}|${t.sku}|${a.unit}|${a.spares>0?"spare":"no-spare"}`,slug:e.slug,name:Oe(e.name),process:e.brand||pU,positionNo:"01",config:[{label:t.size},{label:hr(a)}],finishName:"",size:t.size,components:Zp(t,a),qty:s,href:De(e.slug)??void 0,kind:"tyre",sku:t.sku,pack:a}}function po(e){return e.kind==="tyre"}function MS(e,t){let a=e.prices?.[t];return typeof a!="number"||!Number.isFinite(a)||a<=0?!1:e.inStock}import{jsx as Ua}from"react/jsx-runtime";function uU(e){let t=e?.tyreTypes??[];return t.length===1?t[0]:null}function Dp({line:e,catalog:t,tyre:a}){let s=t.find(h=>h.slug===e.slug),c=e.config.find(h=>h.gold)?.label,l=s?.finishes.find(h=>h.name===c&&h.src)??s?.finishes.find(h=>h.src),r=s?.spokes??5,o=s?.mesh??!1,n=(s?.finishes.find(h=>h.name===c)??s?.finishes[0])?.color??vC;return Ua("div",{className:"relative flex aspect-square items-center justify-center overflow-hidden border border-line bg-surface",children:po(e)?Ua(i6,{image:a?.coverImage,size:e.size,type:uU(a),sizes:"96px",className:"h-full w-full"}):l?.src?Ua(E3,{src:l.src,alt:`${s?.name??e.slug} \u2014 ${l.name}`,width:120,height:120,sizes:"96px",className:"relative z-[2] block w-[88%] object-contain",style:{filter:"drop-shadow(0 6px 12px rgba(0,0,0,0.25))"}}):s||t.length===0?Ua("div",{className:"relative z-[2] block w-[72%]",style:{color:n,filter:"drop-shadow(0 6px 12px rgba(0,0,0,0.25))"},children:Ua(x8,{spokes:r,mesh:o,className:"block w-full"})}):null})}import{jsx as Op,jsxs as gU}from"react/jsx-runtime";function SS(e,t){return Math.min(Sm,Math.max(1,e+t))}var LS="disabled:cursor-not-allowed disabled:opacity-40",dU={large:{frame:"flex items-center border-2 border-fg-dim/50",button:`h-12 w-12 cursor-pointer bg-transparent font-mono text-[length:var(--size-label,16px)] font-bold text-fg transition-colors enabled:hover:bg-surface enabled:hover:text-accent ${LS}`,value:"w-11 text-center font-mono text-[length:var(--size-label,15px)] font-bold tracking-[0.1em] text-fg"},small:{frame:"flex items-center border border-line",button:`h-[30px] w-[30px] cursor-pointer font-mono text-fg-dim transition-colors enabled:hover:text-accent ${LS}`,value:"min-w-[36px] px-3 text-center font-mono text-[12px] tracking-[0.18em] text-fg"}};function ja({value:e,onChange:t,size:a}){let s=dU[a];return gU("div",{className:s.frame,children:[Op("button",{type:"button",onClick:()=>t(SS(e,-1)),disabled:e<=1,"aria-label":"Decrease quantity",className:s.button,children:"\u2212"}),Op("span",{className:s.value,children:e}),Op("button",{type:"button",onClick:()=>t(SS(e,1)),disabled:e>=Sm,"aria-label":"Increase quantity",className:s.button,children:"+"})]})}import{useEffect as vU,useState as fU}from"react";var bU=new Map;function AS(e){let[t,a]=fU(null);return vU(()=>{if(!e||t)return;let s=!0;return g0.listCatalog(["tyre"]).then(c=>{s&&a(new Map(c.flatMap(l=>l.kind==="tyre"?[[l.slug,l]]:[])))}).catch(c=>{console.error("[useTyreCatalog] tyre catalog read failed",c)}),()=>{s=!1}},[e,t]),t??bU}import{Fragment as uo,jsx as N1,jsxs as i0}from"react/jsx-runtime";function $a({content:e=Fl}){let{isOpen:t,preview:a,close:s,items:c,remove:l,setQty:r,totals:o,coupon:i,bundles:n}=c4(),h=new Set(c.flatMap(x=>(x.components??[]).map(k=>k.partNumber))),m=new Set(o.appliedBundles.map(x=>x.slug)),p=n.filter(x=>!m.has(x.slug)).filter(x=>x.components.some(k=>h.has(k.partNumber))).slice(0,2),{formatMoney:u,activeCountry:g}=p0(),d=g?.name??e.shipsToFallback,f=1+(e.leadTimeValue?1:0)+(d?1:0),v=zU(null),z=AS(c.some(po));return k4({active:t,onDismiss:s,lockScroll:!a}),xU(()=>{t&&v.current?.focus({preventScroll:!0})},[t]),t?i0(uo,{children:[N1("div",{onClick:s,className:"fixed inset-0 z-[60] backdrop-blur-[4px]",style:{background:"rgba(0,0,0,0.68)",animation:"storefront-cart-fade 350ms ease both"},"aria-hidden":"true"}),i0("aside",{role:"dialog","aria-label":"Your cart","aria-modal":"true",className:"fixed inset-y-0 right-0 z-[61] flex w-[520px] max-w-[100vw] flex-col border-l border-line bg-bg max-[640px]:w-screen max-[640px]:border-l-0",style:{animation:"storefront-cart-slide 450ms cubic-bezier(.2,.7,.2,1) both",boxShadow:"-30px 0 80px rgba(0,0,0,.5)"},onClick:x=>x.stopPropagation(),children:[N1("style",{children:`
|
|
20
20
|
@keyframes storefront-cart-fade { from { opacity: 0 } to { opacity: 1 } }
|
|
21
21
|
@keyframes storefront-cart-slide { from { transform: translateX(40px); opacity: 0 } to { transform: translateX(0); opacity: 1 } }
|
|
22
|
-
`}),i0("header",{className:"flex flex-shrink-0 flex-col gap-3.5 border-b border-line px-8 pb-[22px] pt-[26px] max-[640px]:px-[22px] max-[640px]:pt-[22px] max-[640px]:pb-[18px]",children:[i0("div",{className:"flex items-center justify-between",children:[i0("span",{className:"flex items-center gap-2.5 font-mono text-[10px] uppercase tracking-[0.3em] text-accent",children:[e.kickerBadge?N1("span",{className:"border px-2 py-1 text-[10px]",style:{background:"color-mix(in oklab, var(--accent) 12%, transparent)",borderColor:"color-mix(in oklab, var(--accent) 50%, transparent)"},children:e.kickerBadge}):null,(e.kickerBadge?"\xB7 ":"")+e.kickerText]}),N1("button",{ref:v,type:"button",onClick:s,"aria-label":"Close cart",className:"flex h-8 w-8 items-center justify-center border border-line text-[14px] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"\u2715"})]}),i0("h1",{className:"font-display text-[38px] font-medium uppercase leading-[0.95] tracking-[-0.03em] max-[640px]:text-[30px]",children:[e.titleLead+" ",N1("em",{className:"font-serif font-normal italic text-accent tracking-[-0.02em] normal-case",children:e.titleAccent})]}),N1("p",{className:"font-serif text-[13px] italic leading-[1.5] text-fg-dim",children:uy(e,c.length)})]}),i0("div",{className:`grid flex-shrink-0 ${yU[f-1]} gap-px border-b border-line bg-line`,children:[N1(Gp,{label:"Items",value:i0(uo,{children:[N1("em",{className:"font-serif font-normal italic text-accent",children:o.sets})," set",o.sets===1?"":"s"," \xB7 ",o.units," item",o.units===1?"":"s"]})}),e.leadTimeValue?N1(Gp,{label:"Lead time",value:e.leadTimeValue}):null,d?N1(Gp,{label:"Ships to",value:d}):null]}),i0("div",{className:"flex-1 overflow-y-auto [scrollbar-color:var(--site-line)_transparent] [scrollbar-width:thin]",children:[c.length===0?N1(SU,{content:e}):c.map(x=>N1(wU,{line:x,tyre:z.get(x.slug),onRemove:()=>l(x.id),onQtyChange:k=>r(x.id,k)},x.id)),p.length>0&&i0("section",{className:"border-b border-line px-8 py-[22px] max-[640px]:px-[22px]",style:{background:"color-mix(in oklab, var(--site-surface) 60%, transparent)"},children:[i0("div",{className:"mb-3.5 flex items-center justify-between font-mono text-[10px] uppercase tracking-[0.3em] text-accent",children:[N1("span",{children:"You may also need"}),N1("span",{className:"font-display text-[11px] normal-case tracking-[0.08em] text-fg-dim",children:"Buy together, save"})]}),N1("div",{className:"grid grid-cols-2 gap-2 max-[640px]:grid-cols-1",children:p.map(x=>N1(CU,{href:`/bundles/${x.slug}`,title:x.name,sub:kU(x,o.currency,u)},x.slug))})]}),N1("section",{className:"border-b border-line px-8 py-[22px] max-[640px]:px-[22px]",children:N1(zC,{})}),e.promises.length>0&&N1("div",{className:"flex flex-wrap justify-center gap-[18px] border-b border-line px-8 pt-[22px] pb-7 font-mono text-[9px] uppercase tracking-[0.24em] text-fg-dim max-[640px]:px-[22px]",children:e.promises.map(x=>N1(MU,{children:x},x))})]}),i0("div",{className:"flex flex-shrink-0 flex-col gap-2 border-t border-line px-8 pt-5 max-[640px]:px-[22px]",children:[N1(d7,{label:`Subtotal \xB7 ${o.sets} set${o.sets===1?"":"s"}`,value:u(o.subtotal,o.currency)}),o.appliedBundles.map(x=>N1(d7,{label:`Bundle \xB7 ${x.name}${x.multiples>1?` \xD7${x.multiples}`:""}`,value:i0("span",{style:{color:"var(--green)"},children:["\u2212 ",u(x.discount,o.currency)]})},x.slug)),o.discount>0&&i?.valid&&N1(d7,{label:`Coupon \xB7 ${i.code}`,value:i0("span",{style:{color:"var(--green)"},children:["\u2212 ",u(o.discount,o.currency)]})}),i?.deferred&&N1(d7,{label:`Coupon \xB7 ${i.code}`,value:cC}),i?.valid&&i.effects?.gift&&N1(d7,{label:`Free gift \xB7 ${i.effects.gift.partNumber}${i.effects.gift.quantity>1?` \xD7${i.effects.gift.quantity}`:""}`,value:N1("span",{style:{color:"var(--green)"},children:"Free"})}),N1(d7,{label:"Shipping",value:o.freeShipping||o.shipping===0?N1("span",{style:{color:"var(--green)"},children:"Free"}):u(o.shipping,o.currency)}),o.tax&&(o.tax.charged?N1(d7,{label:o.tax.inclusive?`${o.tax.name} included \xB7 ${o.tax.rate}%`:o.tax.name,value:u(o.tax.amount,o.currency)}):o.tax.name?N1(d7,{label:o.tax.name,value:"Calculated at checkout"}):null),i0("div",{className:"mt-1.5 flex items-center justify-between border-t border-line pt-3.5 text-fg",children:[i0("span",{className:"font-display text-[22px] font-medium tracking-[-0.02em] normal-case",children:["Total ",N1("em",{className:"font-serif font-normal italic text-accent",children:"due"})]}),N1("span",{className:"text-right font-display text-[30px] font-medium tracking-[-0.025em] text-fg",children:o.repricing?"\u2026":u(o.grand,o.currency)})]})]}),i0("div",{className:"flex flex-shrink-0 flex-col gap-2.5 px-8 pb-[22px] pt-3.5 max-[640px]:px-[22px]",children:[i0(S1,{href:"/checkout",onClick:s,"aria-disabled":c.length===0,className:["group flex items-center justify-between border px-5 py-[18px] font-mono text-[12px] uppercase tracking-[0.3em] transition-colors",c.length===0?"pointer-events-none cursor-not-allowed border-line bg-surface text-fg-dim":"border-btn bg-btn text-btn-ink hover:border-fg hover:bg-fg"].join(" "),children:["Begin checkout",N1("span",{className:"transition-transform group-hover:translate-x-1",children:"\u2192"})]}),i0("div",{className:"flex items-center justify-between px-1 py-1.5 font-mono text-[10px] uppercase tracking-[0.24em] text-fg-dim",children:[N1(S1,{href:"/wheels",onClick:s,className:"text-fg transition-colors hover:text-accent",children:"\u2190 Keep browsing"}),N1("button",{type:"button",className:"text-fg transition-colors hover:text-accent",children:"Save for later"})]})]})]})]}):null}var yU=["grid-cols-1","grid-cols-2","grid-cols-3"];function Gp({label:e,value:t}){return i0("div",{className:"flex flex-col gap-[3px] bg-bg px-4 py-3.5",children:[N1("span",{className:"font-mono text-[9px] uppercase tracking-[0.26em] text-fg-dim",children:e}),N1("span",{className:"font-display text-[14px] font-medium tracking-[-0.005em] text-fg",children:t})]})}function wU({line:e,tyre:t,onRemove:a,onQtyChange:s}){let{catalog:c,totals:l}=c4(),r=(e.components??[]).reduce((n,h)=>n+(l.freeUnitsByPartNumber[h.partNumber]??0),0),{currency:o,formatMoney:i}=p0();return i0(uo,{children:[i0("article",{className:"grid grid-cols-[96px_1fr] gap-5 border-b border-line px-8 py-6 transition-colors hover:bg-[color-mix(in_oklab,var(--site-surface)_60%,transparent)] max-[640px]:grid-cols-[78px_1fr] max-[640px]:px-[22px] max-[640px]:py-5",children:[N1(Dp,{line:e,catalog:c,tyre:t}),i0("div",{className:"flex min-w-0 flex-col gap-2",children:[i0("div",{className:"flex items-start justify-between gap-3",children:[i0("span",{className:"font-mono text-[9px] uppercase tracking-[0.26em] text-accent",children:["N\xB0 ",e.positionNo," \xB7 ",e.process==="FusionForge\xAE"?i0(uo,{children:["FusionForge",N1(c6,{})]}):e.process]}),N1("span",{className:"whitespace-nowrap font-display text-[16px] font-medium tracking-[-0.015em] text-fg",children:Lm(e,o)===null?c7:i(Lm(e,o),o)})]}),i0("h3",{className:"mt-0.5 font-display text-[22px] font-medium uppercase leading-none tracking-[-0.02em]",children:[e.name.lead,N1("em",{className:"font-serif font-normal italic text-accent tracking-[-0.01em] normal-case",children:e.name.accent})]}),e.config.length>0&&i0("div",{className:"mt-1 flex flex-wrap gap-1.5",children:[e.config.map(n=>N1("span",{className:["border px-2 py-1 font-mono text-[9px] uppercase tracking-[0.18em]",n.gold?"border-[color-mix(in_oklab,var(--accent)_45%,var(--site-line))] text-accent":"border-line text-fg-dim"].join(" "),children:n.label},n.label)),r>0&&i0("span",{className:"border border-accent bg-accent px-2 py-1 font-mono text-[9px] uppercase tracking-[0.18em] text-bg",children:[r,"\xD7 free"]})]}),i0("div",{className:"mt-2.5 flex items-center justify-between gap-3",children:[N1(ja,{value:e.qty,onChange:s,size:"small"}),i0("div",{className:"flex gap-3.5 font-mono text-[10px] uppercase tracking-[0.22em]",children:[N1(S1,{href:e.href??`/wheels/${e.slug}`,className:"text-fg-dim transition-colors hover:text-accent",children:e.href?"View product":"Edit finish"}),N1("button",{type:"button",onClick:a,className:"text-fg-dim transition-colors hover:text-alert",children:"Remove"})]})]})]})]}),e.verifiedFor&&i0("div",{className:"mx-8 -mt-px flex items-start gap-3 border-t-0 px-4 py-3.5 font-display text-[13px] leading-[1.45] text-fg max-[640px]:mx-[22px]",style:{background:"color-mix(in oklab, var(--accent) 8%, transparent)",border:"1px solid color-mix(in oklab, var(--accent) 35%, var(--site-line))",borderTop:"0"},children:[N1("span",{className:"flex-shrink-0 pt-px font-mono text-[10px] uppercase tracking-[0.24em] text-accent",children:"Fits"}),i0("span",{children:["Verified for your ",N1("strong",{className:"font-medium text-accent",children:e.verifiedFor}),". Final torque values shipped with the wheels."]})]})]})}function CU({title:e,sub:t,href:a}){return i0(S1,{href:a,className:"flex items-center justify-between border border-line bg-bg px-3.5 py-3 text-left transition-colors hover:border-accent",children:[i0("span",{className:"flex min-w-0 flex-col gap-[3px]",children:[N1("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap font-display text-[13px] font-medium tracking-[-0.005em] text-fg",children:e}),N1("span",{className:"font-mono text-[9px] uppercase tracking-[0.22em] text-fg-dim",children:t})]}),N1("span",{className:"ml-2 flex h-6 w-6 flex-shrink-0 items-center justify-center font-mono text-[13px] text-accent",style:{borderColor:"color-mix(in oklab, var(--accent) 45%, var(--site-line))",borderWidth:1,borderStyle:"solid"},children:"+"})]})}function kU(e,t,a){let s=e.savings[t];if(s===void 0)return"Buy together";let c=a(s,t);return e.savingIsFrom?`Save from ${c}`:`Save ${c}`}function MU({children:e}){return N1("span",{className:"inline-flex items-center gap-1.5 before:text-[6px] before:text-accent before:content-['\u25CF']",children:e})}function d7({label:e,value:t}){return i0("div",{className:"flex items-center justify-between font-mono text-[11px] uppercase tracking-[0.18em] text-fg-dim",children:[N1("span",{children:e}),N1("strong",{className:"font-display text-[14px] font-normal tracking-[-0.005em] normal-case text-fg",children:t})]})}function SU({content:e}){return i0("div",{className:"flex flex-col items-center justify-center gap-3 px-8 py-20 text-center",children:[N1("span",{className:"font-mono text-[10px] uppercase tracking-[0.3em] text-accent",children:e.emptyKicker}),N1("p",{className:"font-serif text-[16px] italic leading-[1.5] text-fg-dim",children:e.emptyBody}),i0(S1,{href:"/wheels",className:"mt-3 inline-flex items-center gap-3 border border-line px-5 py-3 font-mono text-[11px] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:["Browse the catalog ",N1("span",{className:"text-accent",children:"\u2192"})]})]})}var LU=[{key:"cart",label:"Cart",href:"/?cart=open"},{key:"checkout",label:"Checkout",href:"/checkout"}],AU=Object.fromEntries(LU.map(e=>[e.key,e]));function HS(e){return AU[e]}import{Fragment as FU,jsx as Ge,jsxs as Ka}from"react/jsx-runtime";var HU=Np(()=>import("./EditorPreviewCheckout-URFSPLP6.js"),{ssr:!1});function qp(){let{chromePlaceholder:e,themeFromDocument:t}=V3(),{surface:a}=cw();return e||t||!a||a!=="cart"&&a!=="checkout"?null:a==="checkout"?Ka(FU,{children:[Ge(HU,{}),Ge(FS,{surface:a})]}):Ge(gr,{children:Ka(vr,{preview:!0,children:[Ge($a,{}),Ge(FS,{surface:a})]})})}function FS({surface:e}){let{label:t,href:a}=HS(e);return Ka("div",{style:{position:"fixed",bottom:14,left:"50%",transform:"translateX(-50%)",zIndex:2147483e3,display:"flex",alignItems:"center",gap:8,maxWidth:"calc(100% - 24px)",padding:"5px 6px 5px 13px",borderRadius:999,fontSize:12,fontWeight:600,fontFamily:"system-ui, sans-serif",color:"#334155",background:"rgba(255,255,255,0.94)",border:"1px solid rgba(15,23,42,0.12)",boxShadow:"0 6px 24px rgba(15,23,42,0.18)",pointerEvents:"none"},children:[Ka("span",{style:{whiteSpace:"nowrap"},children:[t," \xB7 preview only"]}),Ka("a",{href:a,target:"_blank",rel:"noopener noreferrer",style:{pointerEvents:"auto",flex:"none",display:"inline-flex",alignItems:"center",gap:5,padding:"4px 11px",borderRadius:999,color:"#fff",background:"#2563eb",textDecoration:"none"},children:["Open live",Ge(a6,{name:"external-link",size:13,rounded:!0})]})]})}import{CategoryIcon as Xs1,CheckIcon as qO,ClockIcon as ex,ColumnsIcon as Js1,DirectionIcon as Qs1,EyeIcon as ec1,ListIcon as tc1,PageIcon as ac1,PlacementIcon as sc1,ScrollPointIcon as cc1,TriggerIcon as lc1}from"efficient-easel/icons";import{useContext as VU,useEffect as _S,useRef as vo,useState as fo}from"react";import{Button as bo}from"efficient-shell/ui";var Ya=class extends Error{constructor(a){super("The storefront forms list could not be loaded.");this.cause=a;this.name="FormsUnavailableError"}},go=null,Wp=null,Up=null;function TU(){go=null,Wp=null,Up=null}function TS(e=!1){let t=N3(),a=i2();return(e||!go||Wp===null&&t!==null||Up!==a)&&(Wp=t,Up=a,go=(t?X1.listForms(t,{siteId:a}):Promise.reject(new Ya)).catch(s=>{throw TU(),s instanceof Ya?s:new Ya(s)})),go}var jp=new Map,PU=9e5,PS=0;function EU(){return PS+=1,`fe-${typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():String(PS)}`}function ES(e,t){e.connected&&e.send("storefront-editor:open-form",{mode:"edit",formId:t})}function VS(e,t){if(!e.connected)return Promise.resolve({status:"closed"});let a=EU();return new Promise(s=>{let c=setTimeout(()=>NS(a,{status:"timeout"}),t.timeoutMs??PU);jp.set(a,l=>{clearTimeout(c),s(l)}),e.send("storefront-editor:open-form",{requestId:a,mode:t.mode,...t.formId?{formId:t.formId}:{}})})}function NS(e,t){let a=jp.get(e);a&&(jp.delete(e),a(t))}function fh1(e,t){NS(e,t?{status:"saved",form:t}:{status:"closed"})}import{jsx as E2,jsxs as U4}from"react/jsx-runtime";var IS="__create-a-new-form__";function NU({value:e,forms:t,loadFailed:a,emptyLabel:s="No form yet"}){let c=t??[],l=e?c.some(m=>m.slug===e):!0,r=t===null&&!a,o={value:"",label:r?"Loading\u2026":a?"Forms couldn\u2019t be loaded":s},i=e&&!l?[{value:e,label:r||a?e:`${e} \u2014 no form with this name`}]:[],n=c.map(m=>({value:m.slug,label:m.is_active?m.title:`${m.title} (switched off)`})),h=r?[]:[{value:IS,label:"Create a new form\u2026"}];return[o,...i,...n,...h]}function _U(e){return e===IS?{action:"create"}:{action:"store",slug:e}}function IU({value:e,pickedId:t,forms:a}){if(!e||!t||a.some(c=>c.slug===e))return null;let s=a.find(c=>c.id===t);return s&&s.slug&&s.slug!==e?s.slug:null}function RU(e){let t=["Goes to Storefront \u2192 Forms"],a=(e.notify_email??"").trim();return a&&t.push(`Emails a copy to ${a}`),e.mailing_list_name&&t.push(e.subscribe_mode==="checkbox"?`Joins the \u201C${e.mailing_list_name}\u201D audience, but only when the consent box is ticked`:`Joins the \u201C${e.mailing_list_name}\u201D audience`),e.kind==="account_signup"&&t.push(e.signup_customer_type==="importer"?"Creates a wholesale account":"Creates a retail account"),t}function $p({value:e,onChange:t,label:a="Form",emptyLabel:s}){let c=z4(),l=VU(Sl),r=l?l.capabilities.hasForms:!0,[o,i]=fo(null),[n,h]=fo(!1),[m,p]=fo(!1),[u,g]=fo(!1),d=vo(!0),f=vo(e);f.current=e;let v=vo(t);v.current=t;let z=vo(null),x=(F=!1)=>TS(F).then(T=>{if(d.current){i(T),h(!1);let V=IU({value:f.current,pickedId:z.current,forms:T});V&&v.current(V)}return T},()=>(d.current&&h(!0),[]));_S(()=>(d.current=!0,r&&x(),()=>{d.current=!1}),[r]),_S(()=>r?Qr(()=>{x(!0)}):void 0,[r]);let M=e?(o??[]).find(F=>F.slug===e)??null:null;M?z.current=M.id:e||(z.current=null);let A=!!e&&!M&&o!==null&&!n,B=NU({value:e,forms:o,loadFailed:n,emptyLabel:s}),P=async()=>{p(!0),g(!1);try{let F=await VS(c,{mode:"create"}),T=await x(!0);if(!d.current)return;if(F.status==="timeout"){g(!0);return}if(F.status!=="saved")return;let{form:V}=F;V.slug!==f.current&&v.current(V.slug),T.some(Z=>Z.id===V.id)||x(!0)}finally{d.current&&p(!1)}},D=F=>{let T=_U(F);T.action==="create"?P():(g(!1),t(T.slug))};return r?U4("div",{className:"sf-formpicker",children:[E2(B9,{label:a,options:B,fallback:"",value:e??"",onChange:D,placeholder:"Search forms\u2026"}),u&&E2("p",{className:"sf-formsummary-warn",children:"That didn\u2019t come back \u2014 pick the form from the list, or try again."}),M?U4("div",{className:"sf-blogsource sf-formsummary",children:[U4("div",{children:[E2("div",{className:"sf-formsummary-caption",children:M.fields.length===1?"1 field":`${M.fields.length} fields`}),M.fields.length?E2("ol",{className:"sf-formsummary-fields",children:M.fields.map((F,T)=>E2("li",{children:F.label},F.key||`${F.label}-${T}`))}):E2("p",{className:"es-field-hint sf-hint-keep",children:"This form has no fields yet, so there is nothing for a visitor to fill in."})]}),U4("div",{children:[E2("div",{className:"sf-formsummary-caption",children:"Where the answers go"}),E2("ul",{className:"sf-formsummary-fields",children:RU(M).map(F=>E2("li",{children:F},F))})]}),!M.is_active&&E2("p",{className:"sf-formsummary-warn",children:"This form is switched off, so it won\u2019t appear on the published page. Turn it back on in Storefront \u2192 Forms."}),U4("div",{className:"sf-formsummary-actions",children:[E2(bo,{variant:"secondary",size:"sm",onClick:()=>ES(c,M.id),children:"Edit form \u270E"}),E2(bo,{variant:"secondary",size:"sm",disabled:m,onClick:()=>{P()},children:"New form +"})]}),E2("p",{className:"es-field-hint sf-hint-keep",children:"The questions, the button text and the thank-you message all come from Storefront \u2192 Forms. Edit them there \u2014 this section updates to match."})]}):U4("div",{className:"sf-blogsource sf-formsummary",children:[n?U4("p",{className:"es-field-hint sf-hint-keep",children:["This website\u2019s forms couldn\u2019t be loaded, so there is nothing to choose from yet.",e?` This section still points at \u201C${e}\u201D, and that is unchanged.`:""]}):A&&U4("p",{className:"sf-formsummary-warn",children:["This section points at \u201C",e,"\u201D, and this website has no form with that name. Pick one from the list above, or leave it \u2014 nothing has been changed."]}),U4("div",{className:"sf-formsummary-actions",children:[n&&E2(bo,{variant:"secondary",size:"sm",disabled:m,onClick:()=>{x(!0)},children:"Try again"}),E2(bo,{variant:"secondary",size:"sm",disabled:m,onClick:()=>{P()},children:"New form +"})]}),!n&&E2("p",{className:"es-field-hint sf-hint-keep",children:"Pick a form to show here, or build a new one. Forms are made once in Storefront \u2192 Forms and can be shown on any number of pages."})]})]}):E2("div",{className:"sf-formpicker",children:E2("div",{className:"sf-blogsource sf-formsummary",children:U4("div",{children:[E2("div",{className:"sf-formsummary-caption",children:a}),U4("p",{className:"es-field-hint sf-hint-keep",children:["Forms aren\u2019t available in this editor, so there is nothing to choose here.",e?` This section still points at \u201C${e}\u201D, and that is unchanged.`:""]})]})})})}import{jsx as BU}from"react/jsx-runtime";function H5(e,t){return{type:"custom",render:({value:a,onChange:s})=>BU($p,{value:a,onChange:s,...e?{label:e}:{},...t?{emptyLabel:t}:{}})}}var xo=null,RS=null;function ZU(e,t){xo=e,RS=t}function Vh1(e){ZU(e,null)}function BS(){return xo}function M2(){return RS==="dynamic"||xo===Qm}function ZS(e){return Er(xo??"",e)??"alloy-wheel"}import{createContext as DU,useContext as OU}from"react";import{jsx as GU}from"react/jsx-runtime";var DS=DU(null);function OS({slug:e,children:t}){let a=typeof e=="string"&&e.trim()?e:null;return GU(DS.Provider,{value:a,children:t})}function GS(){return OU(DS)}import{createContext as qU,useContext as WU}from"react";import{jsx as UU}from"react/jsx-runtime";var qS=qU("alloy-wheel");function WS({kind:e,children:t}){return UU(qS.Provider,{value:e??"alloy-wheel",children:t})}function US(){return WU(qS)}import{createContext as jS,useContext as zo}from"react";import{jsx as YU}from"react/jsx-runtime";function jU(e){let t=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").trim().toLowerCase();return t?t[0].toUpperCase()+t.slice(1):e}var $U=/^\d{4}-\d{2}-\d{2}$/;function $S(e){return e?e.schema?.length?e.schema.filter(t=>typeof t?.key=="string"&&t.key in e.fields):Object.entries(e.fields).flatMap(([t,a])=>{let s=Array.isArray(a)?"images":typeof a=="string"?$U.test(a)?"date":"text":null;return s?[{key:t,label:jU(t),kind:s}]:[]}):[]}function yo(e,{firstField:t=!1}={}){if(!e)return[];let a=$S(e).filter(s=>s.kind==="images");return(t?a.slice(0,1):a).flatMap(s=>{let c=e.fields[s.key];return Array.isArray(c)?c.flatMap(l=>{let r=l?.url;if(typeof r!="string"||!r)return[];let o=l.alt;return[{url:r,alt:typeof o=="string"?o:""}]}):[]})}function KU(e){let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.getTime())?e:t.toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"})}function KS(e){return e?$S(e).flatMap(t=>{if(t.kind!=="text"&&t.kind!=="date")return[];let a=e.fields[t.key];return typeof a!="string"||!a.trim()?[]:[{label:t.label,value:t.kind==="date"?KU(a):a}]}):[]}var g7="product",Kp=jS(null);function Yp(e){let t=e?.recordType;return typeof t=="string"&&t.trim()||g7}function wo(e){let t=e?.appState?.data?.root;return Yp(t?.props)!==g7}var YS=jS(g7);function XS({type:e,children:t}){return YU(YS.Provider,{value:e,children:t})}function Co(e){let t=zo(Kp),a=zo(YS);return t?t.type!==g7:e&&a!==g7}var ko={type:"sample",key:"sample",title:"Record title",fields:{first:"A detail of this record",second:"Another detail",third:"A third"},value:void 0,schema:[{key:"first",label:"First detail",kind:"text"},{key:"second",label:"Second detail",kind:"text"},{key:"third",label:"Third detail",kind:"text"}]},JS=4;function Mo(){return zo(Kp)}function QS(e){let t=zo(Kp);return t!==null&&t.type===e?t:null}import{createContext as JU,useContext as QU}from"react";var Xp="heroBullets",Xa="\xB7",Ja={bullets:[{label:"Free shipping",detail:"USA, UK, AUS"},{label:"Lifetime warranty",detail:"structural"}]};function eL(e){return e.detail?`${e.label} ${Xa} ${e.detail}`:e.label}function XU(e){let t=e.trim();if(!t)return null;let a=t.indexOf(Xa);return a<0?{label:t,detail:""}:{label:t.slice(0,a).trim(),detail:t.slice(a+Xa.length).trim()}}function tL(e){let t=(e??{})[Xp];return Array.isArray(t)?{bullets:t.map(s=>XU(typeof s=="string"?s:my(s?.text,""))).filter(s=>s!==null)}:Ja}import{jsx as ej}from"react/jsx-runtime";var aL=JU(Ja);function sL({content:e,children:t}){return ej(aL.Provider,{value:e,children:t})}function cL(){return QU(aL)}var u2={text:"Button label",href:"#"},L={eyebrow:"Eyebrow",heading:"Main heading",accent:"Highlight line",body:"Add a sentence or two of supporting copy.",button:"Button label",link:"#",sectionHeading:"Section heading",slideName:"Slide name",boxName:"Box name",headingAccent:"Section heading *here.*",sectionNumber:"Section number",imageCaption:"Image caption",bookingConfirmation:"Thanks \u2014 we'll email you to confirm.",imageMeta:"Image meta",label:"Label",value:"Value",viewAll:"View all",date:"Month DD, YYYY",category:"Category"};var t3={Series:"transparent",StatsParagraph:"transparent",TimelineTrack:Ly,Stats:void 0};import{jsx as f7}from"react/jsx-runtime";import{jsx as aj}from"react/jsx-runtime";var So="sf-card",V2={min:0,max:90,step:5,fallback:0,unit:"%"},v7=[{label:"Even",value:"even"},{label:"From the bottom",value:"bottom"}],tj="68%",D3={desktop:20,phone:20,side:40,sidePhone:24},lL="sf-box-sides",rL={min:0,max:200,step:10};function qe(e){return typeof e=="string"&&e.trim()!==""}function Lo(e,t){let a=typeof e=="number"?e:Number.parseFloat(String(e??""));if(!Number.isFinite(a)||a<=0)return null;let s=(Math.min(V2.max,Math.max(V2.min,a))/100).toFixed(2);return t!=="bottom"?{background:`rgba(0,0,0,${s})`}:{background:`linear-gradient(0deg, rgba(0,0,0,${s}) 0%, rgba(0,0,0,0) ${tj})`}}function Ao(e,t){let a={"top-left":["start","start"],"top-center":["center","start"],"top-right":["end","start"],left:["start","center"],center:["center","center"],right:["end","center"],"bottom-left":["start","end"],"bottom-center":["center","end"],"bottom-right":["end","end"]},[s,c]=a[e]??a.center,[l,r]=t==="column"?[c,s]:[s,c],o={start:"justify-start",center:"justify-center",end:"justify-end"},i={start:"items-start",center:"items-center",end:"items-end"};return`${o[l]} ${i[r]}`}var Ho={ParagraphsA:{top:60,bottom:80},StatsParagraph:{top:120,bottom:120},Timeline:{top:120,bottom:120},Footprint:{top:120,bottom:120},TimelineTrack:{top:120,bottom:120},TitleWithButtons:{top:140,bottom:140},ProcessSteps:{top:120,bottom:120},DetailRows:{top:100,bottom:100}},oL=new Set(Object.keys(Ho)),sj=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),iL=new Set(["ProductGrid"]);function Jp(e,t){let a=e.render;e.render=s=>{if(t?.(s))return a(s);let c=N9(s.sectionPaddingTop,s.sectionPaddingBottom,s.sectionPaddingTopPhone,s.sectionPaddingBottomPhone),l=a(s);return c?aj("div",{className:c.className,style:c.style,children:l}):l}}var nL={name:"sectionPadding",applies:(e,t,a)=>t.isSection(e)&&!sj.has(e)&&!!a&&typeof a.render=="function",panel(e,t,a){oL.has(t)||iL.has(t)||(e.fields={...e.fields,...a.spacingFields({phone:!0})})},draw(e,t){if(oL.has(t)){let a=e.render,s=Ho[t];e.render=c=>{let l=Qz(c,s);return a({...c,padTop:l.top,padBottom:l.bottom})};return}if(iL.has(t)){Jp(e);return}Jp(e,t==="Flex"?a=>qe(a.bgImage):void 0)}},cj=["Heading","Text"],hL={name:"blockPadding",applies:(e,t,a)=>cj.includes(e)&&!!a&&typeof a.render=="function",panel(e,t,a){e.fields={...e.fields,...a.spacingFields({phone:!0})}},draw(e){Jp(e)}};import{jsx as We,jsxs as lj}from"react/jsx-runtime";import{useEasel as rj}from"efficient-easel/easel";import{SettingsDrill as oj}from"efficient-easel/panel";import{default as mL}from"efficient-easel/screen/components/AddBlockRow";import{default as pL}from"efficient-easel/screen/components/AddChildRow";import{SlotChildActionsProvider as hm1,useSlotChildActions as uL}from"efficient-easel/screen/components/SlotChildActionsContext";function ij({parent:e,parentType:t,label:a,rowName:s,onSelectChild:c,onAddChild:l,nestDepth:r=0}){let o=km(t,r);if(!o)return null;let{slot:i,choices:n,spec:h}=o,m=String(e.props.id),p=`${m}:${i}`,u=Array.isArray(e.props[i])?e.props[i]:[],g=h?.addBlocked?.(u)??null,d=h?.notice?.(u)??null;return lj("div",{className:"sf-slot-rows",children:[a?We($9,{label:`${a} \xB7 ${u.length}`}):null,d?We("p",{className:"sf-note",children:d}):null,u.map((f,v)=>We(oj,{name:s(f),onOpen:()=>c(p,v,String(f.props.id),t)},String(f.props.id??`${p}-${v}`))),n?We(mL,{choices:n,onPick:f=>l(m,i,f,u.length,t)}):h.fixed?null:We(pL,{label:h.addLabel,blocked:g,onAdd:()=>l(m,i,h.childType,u.length,t)})]})}function nj(e,t){return km(t)?.source==="footer"?e.blockRowName:e.childRowName}function dL({parentType:e,label:t}){let{appState:a,selectedItem:s}=rj(r=>r),c=uL();if(!c||!s||s.type!==e)return null;let l=e===Ox?rl(a?.data,String(s.props.id)):0;return We(ij,{parent:s,parentType:e,label:t,rowName:nj(c,e),onSelectChild:c.selectChild,onAddChild:c.addChild,nestDepth:l})}var gL="grayscale(1) contrast(1.03)",vL="Black and white";function hj(e){return e===!0?{filter:gL}:{}}function mj(e){let{filter:t}=hj(e);return t?{style:{filter:t}}:{}}var Qa="sf-photo-grayscale",pj=`@media (hover:hover){.${Qa}{filter:${gL};transition:filter 160ms ease}.${Qa}:hover{filter:none}}@media (hover:hover) and (prefers-reduced-motion:reduce){.${Qa}{transition:none}}`;function Ue(e,t){return typeof e=="boolean"?e?mj(!0):{}:t===!0?{className:Qa}:{}}function fL(e){return e===!0?{[Qa]:pj}:{}}import{AlignLeftIcon as gj,BlackAndWhiteIcon as vj,ContrastIcon as fj,HeightIcon as bj,TypeIcon as xj}from"efficient-easel/icons";var uj=["eyebrow","heading","title","body","intro","button","link","label","number","value","name","price","date","caption","note","quote","tag","meta"],dj=new Set(uj);function bL(e){let t=e.toLowerCase().split(/[^a-z]+/).filter(Boolean);for(let a=t.length-1;a>=0;a-=1)if(dj.has(t[a]))return t[a];return null}var n6=e=>X2(e,s1("Height",f7(bj,{}),re.min,re.max,re.step,re.fallback,re.unit)),S4={ctaText:H("Button",u2.text),ctaHref:H1("Button link")},F5=()=>b1("Alignment",f7(gj,{}),[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}],"left"),Fo=()=>b1("Tone",f7(fj,{}),[{label:"Default",value:"default"},{label:"Muted",value:"dim"}],"default"),n3=e=>f5({...Ho[e],keys:{top:"padTop",bottom:"padBottom"},group:!1}),c2=(e,t)=>({type:"custom",render:()=>f7(dL,{parentType:e,label:t})});function zj(e){let{photographyGrayscale:t}=V3();return c1(vL,t===!0,f7(vj,{})).render(e)}function je(){return{type:"custom",render:e=>f7(zj,{...e})}}var U1=Object.keys(b5("full"));function $e(e){let t=bL(e);return t?f7(e4,{noun:t}):f7(xj,{})}import{createContext as yj,useContext as wj}from"react";import{jsx as b7,jsxs as Qp}from"react/jsx-runtime";function eu(e){return M9(e)??void 0}var tu=yj({}),xL=3;function au({tag:e,name:t,desc:a,href:s,imageSrc:c,imageLabel:l,price:r}){let{showPrice:o,cardStyle:i,partStyles:n,editing:h}=wj(tu),m=i==="bordered"?" border border-line":i==="shadow"?" shadow-[0_8px_30px_rgba(0,0,0,0.12)]":"",p=eu(c),u=d=>h?{[d8]:d}:{},g=d=>Xl(n?.[g8(d)]?.role,ow[d],hl);return Qp(S1,{href:s||"#",className:`sf-card group relative block w-full min-w-0 overflow-hidden bg-surface-2${m}`,children:[b7("div",{className:"relative z-0 aspect-[4/5] transition-transform duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)] group-hover:scale-[1.04]",children:b7(C0,{label:l||"collection.jpg",src:p})}),b7("div",{className:"pointer-events-none absolute inset-0 z-[1] [background:rgba(0,0,0,0.4)] group-hover:[background:rgba(0,0,0,0.3)] max-[800px]:hidden",style:{transition:"none"}}),Qp("div",{className:"absolute inset-x-8 bottom-8 z-[2] flex flex-col gap-2.5 text-overlay-fg max-[800px]:relative max-[800px]:inset-auto max-[800px]:p-6 max-[800px]:gap-3 max-[800px]:text-fg",children:[e&&b7("span",{...u("tag"),style:g("tag"),className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.25em] opacity-70",children:C(e)}),t&&b7("h3",{...u("name"),style:g("name"),className:"font-heading2 text-[length:min(var(--size-headingMedium,48px),var(--sf-heading-max,9999px))] font-medium leading-none tracking-[-0.03em] max-[800px]:text-[length:min(var(--size-headingMedium,36px),var(--sf-heading-max,9999px))]",children:typeof t=="string"?j(t,!1):t}),a&&b0(a).map((d,f)=>b7("p",{...u("body"),style:g("body"),className:"max-w-[420px] text-[length:var(--size-body,14px)] leading-[1.5] opacity-80",children:C(d)},f)),o&&r&&b7("span",{...u("price"),style:g("price"),className:"font-mono text-[length:var(--size-label,15px)] tracking-[0.05em] text-accent",children:C(r)}),Qp("span",{...u("link"),style:g("link"),className:"mt-2 inline-flex items-center gap-2.5 font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.2em]",children:["Explore",b7("span",{className:"transition-transform group-hover:translate-x-[3px]","aria-hidden":!0,children:"\u2192"})]})]})]})}import{createContext as kj,useCallback as Mj,useContext as Sj,useEffect as yL,useRef as Lj,useState as cu}from"react";import{useState as Cj}from"react";function To(e){switch(e){case"tall":return"aspect-[3/4]";case"wide":return"aspect-[2/1]";case"landscape":return"aspect-[4/3]";case"portrait":return"aspect-[4/5]";case"auto":return"";default:return"aspect-square"}}function zL(e){return e==="below"}import{jsx as j4,jsxs as Ke}from"react/jsx-runtime";function su({build:e,hiddenMobile:t,alwaysShowOverlay:a,forceHover:s,index:c,total:l,ratio:r,captionPlace:o}){let[i,n]=Cj(!1),h=zL(o),m=Ke("div",{className:["sf-card group relative overflow-hidden bg-surface-2",To(r),t?"max-[800px]:hidden":""].join(" "),children:[Ke("div",{className:["absolute inset-0 z-[1] flex items-center justify-center transition-[transform,filter,opacity] duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",s?"scale-[1.06] opacity-0 [filter:brightness(0.5)]":"group-hover:scale-[1.06] group-hover:opacity-0 group-hover:[filter:brightness(0.5)]"].join(" "),children:[j4(C0,{label:e.imageLabel,src:e.imageSrc}),j4("div",{className:"absolute inset-0",style:{background:"rgba(0,0,0,0.35)"}})]}),j4("div",{className:["absolute inset-0 z-[1] flex items-center justify-center transition-[transform,filter,opacity] duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",s?"opacity-100 scale-[1.06] [filter:brightness(0.5)]":"opacity-0 group-hover:scale-[1.06] group-hover:opacity-100 group-hover:[filter:brightness(0.5)]"].join(" "),style:{background:"var(--site-surface)"},children:e.detailSrc&&j4(E3,{src:e.detailSrc,alt:"",fill:!0,sizes:"(max-width: 800px) 100vw, (max-width: 1500px) 33vw, 25vw",loading:"lazy",className:"absolute inset-0 z-[3] object-cover",style:{display:i?"none":"block"},onError:()=>n(!0)})}),c!=null&&l!=null&&Ke("span",{className:"pointer-events-none absolute top-3 right-3 z-[3] font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] max-[800px]:top-2.5 max-[800px]:right-2.5",style:{color:"rgba(245,241,232,0.7)"},children:[String(c).padStart(2,"0")," / ",String(l).padStart(2,"0")]}),e.process&&j4("span",{className:["pointer-events-none absolute top-3 left-3 z-[3] inline-block max-w-[60%] truncate font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] text-accent max-[800px]:top-2.5 max-[800px]:left-2.5","transition-opacity duration-300 ease-out",a||s?"opacity-100":"opacity-0 group-hover:opacity-100 max-[800px]:opacity-100"].join(" "),children:Y1(e.process)}),Ke("div",{className:["absolute inset-0 z-[2] flex flex-col justify-end gap-1 p-6","transition-[opacity,transform] duration-300 ease-out",a||s?"opacity-100 translate-y-0":"opacity-0 translate-y-2 group-hover:opacity-100 group-hover:translate-y-0 max-[800px]:opacity-100 max-[800px]:translate-y-0","max-[800px]:p-3.5"].join(" "),style:{color:"var(--overlay-fg)",background:"linear-gradient(180deg, transparent 40%, rgba(10,10,10,.85) 100%)"},children:[e.car&&j4("div",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.2em] text-accent max-[800px]:text-[length:var(--size-label,11px)] max-[800px]:tracking-[0.15em]",children:e.car}),e.wheel&&j4("div",{className:"font-heading3 text-[length:var(--size-headingSmall,22px)] font-medium leading-[1.05] tracking-[-0.02em] max-[800px]:text-[length:var(--size-body,16px)]",children:e.wheel}),e.finish&&j4("div",{className:"mt-1.5 flex gap-3.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.12em]",style:{color:"rgba(245,241,232,0.7)"},children:j4("span",{children:Y1(e.finish)})})]})]});return h?Ke("div",{className:t?"max-[800px]:hidden":"",children:[m,Ke("div",{className:"bg-surface px-3.5 pt-3 pb-3.5",children:[e.wheel&&j4("div",{className:"font-display text-[length:var(--size-body,15px)] font-medium leading-[1.25] tracking-[-0.01em] text-fg",children:e.wheel}),(e.finish||e.car)&&j4("div",{className:"mt-0.5 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] text-fg-dim",children:Y1(e.finish||e.car)})]})]}):m}import{Fragment as Ye,jsx as J0,jsxs as h3}from"react/jsx-runtime";var es=kj({}),ts="data-gallery-grid",lu="data-gallery-tile";function Aj(e,t){let[a,s]=cu(null);return yL(()=>{let c=e.current,l=c?.closest(`[${ts}]`);if(!c||!l)return;let r=()=>{let i=Array.from(l.querySelectorAll(`[${lu}]`)),n=i.indexOf(c),h=n>=0?{index:n+1,total:i.length}:null;s(m=>m?.index===h?.index&&m?.total===h?.total?m:h)};if(r(),!t)return;let o=new MutationObserver(r);return o.observe(l,{childList:!0,subtree:!0}),()=>o.disconnect()},[e,t]),a}var wL=[{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"}];function Hj(e,t){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}function Fj(e){let t=(e.photos??[]).map(l=>l?.src).filter(l=>!!l),a=e.image||t[0]||"",s=[a,...t].filter(l=>!!l),c=Hj(e.name,"gallery-item");return{car:e.eyebrow??"",wheel:e.name??"",process:e.process??"",finish:e.meta??"",imageLabel:`${c}.jpg`,detailLabel:`${c}-detail.jpg`,imageSrc:a||void 0,detailSrc:t[0]||a||void 0,photos:s,href:e.href}}function as({editing:e=!1,previewHover:t,ratio:a,captionPlace:s,...c}){let{galleryHref:l="/gallery",submitHref:r="/contact",previewHover:o}=Sj(es),i=Fj(c),n=i.photos??(i.imageSrc?[i.imageSrc]:[]),h=Lj(null),m=Mj(x=>{h.current=x},[]),p=Aj(h,e),u=e&&(!!t||!!o),[g,d]=cu(!1),[f,v]=cu(0);yL(()=>{if(!g)return;let x=M=>{M.key==="Escape"?d(!1):M.key==="ArrowLeft"&&n.length>1?v(A=>(A-1+n.length)%n.length):M.key==="ArrowRight"&&n.length>1&&v(A=>(A+1)%n.length)};window.addEventListener("keydown",x);let k=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",x),document.body.style.overflow=k}},[g,n.length]);let z=J0(su,{build:i,forceHover:u,index:p?.index,total:p?.total,ratio:a,captionPlace:s});return h3(Ye,{children:[e?J0("div",{ref:m,[lu]:"",className:"block w-full text-left",children:z}):J0("button",{ref:m,[lu]:"",type:"button","aria-label":`Open ${i.car||"build"} on ${i.wheel||"wheel"}`,onClick:()=>{v(0),d(!0)},className:"block w-full cursor-pointer text-left focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",children:z}),g&&(()=>{let x=n[f]??i.imageSrc??"",k=()=>v(A=>(A-1+n.length)%n.length),M=()=>v(A=>(A+1)%n.length);return J0("div",{role:"dialog","aria-modal":"true","aria-label":`${i.car} on ${i.wheel}`,onClick:()=>d(!1),className:"fixed inset-0 z-[100] flex items-center justify-center p-6 backdrop-blur-[8px] max-[700px]:p-3",style:{background:"color-mix(in oklab, var(--bg) 78%, transparent)"},children:h3("div",{onClick:A=>A.stopPropagation(),className:"relative grid w-[min(1800px,100%)] max-h-[calc(100vh-48px)] grid-cols-[1.4fr_1fr] overflow-hidden border border-line bg-bg max-[1100px]:grid-cols-1 max-[1100px]:overflow-auto",style:{boxShadow:"0 60px 120px -20px rgba(0,0,0,0.7)"},children:[J0("button",{type:"button",onClick:()=>d(!1),"aria-label":"Close popup",className:"absolute right-[24px] top-[24px] z-[5] flex h-[56px] w-[56px] items-center justify-center border border-line font-mono text-[length:var(--size-label,21px)] text-fg-dim transition-colors hover:border-accent hover:text-fg",style:{background:"color-mix(in oklab, var(--bg) 70%, transparent)"},children:"\u2715"}),h3("div",{className:"relative flex min-h-[690px] items-center justify-center overflow-hidden bg-surface-2 max-[1100px]:min-h-[450px]",children:[x&&J0("img",{src:x,alt:`${i.car} \u2014 ${f+1} of ${n.length}`,className:"block h-full max-h-[88vh] w-full object-cover"},x),n.length>1&&h3(Ye,{children:[J0("button",{type:"button","aria-label":"Previous photo",onClick:k,className:"absolute left-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"\u25C1"}),J0("button",{type:"button","aria-label":"Next photo",onClick:M,className:"absolute right-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"\u25B7"}),h3("span",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 border border-fg-dim/30 bg-overlay-scrim/50 px-4 py-1.5 font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em] text-fg-dim backdrop-blur-[4px]",children:[f+1," / ",n.length]})]})]}),h3("div",{className:"flex flex-col gap-[30px] px-[60px] py-[72px] max-[1100px]:px-9 max-[1100px]:py-[54px]",children:[i.process&&J0("span",{className:"font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.3em] text-accent",children:C(i.process)}),i.wheel&&J0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(42px,4.5vw,60px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.025em]",children:j(i.wheel,!1)}),i.car&&h3("div",{className:"font-heading3 text-[length:var(--size-headingSmall,27px)] leading-[1.4] text-fg",children:["on ",J0("em",{className:"font-serif font-normal italic text-accent tracking-[-0.01em]",children:C(i.car,!0)})]}),h3("dl",{className:"mt-3 grid grid-cols-[auto_1fr] gap-x-7 gap-y-[18px] border-y border-line py-[30px] font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em]",children:[i.wheel&&h3(Ye,{children:[J0("dt",{className:"text-fg-dim",children:"Wheel"}),J0("dd",{className:"text-fg",children:C(i.wheel)})]}),i.process&&h3(Ye,{children:[J0("dt",{className:"text-fg-dim",children:"Process"}),J0("dd",{className:"text-fg",children:C(i.process)})]}),i.finish&&h3(Ye,{children:[J0("dt",{className:"text-fg-dim",children:"Finish"}),J0("dd",{className:"text-fg",children:C(i.finish)})]}),i.car&&h3(Ye,{children:[J0("dt",{className:"text-fg-dim",children:"Vehicle"}),J0("dd",{className:"text-fg",children:C(i.car)})]})]}),h3("div",{className:"mt-auto flex flex-col gap-3.5 pt-6",children:[h3(S1,{href:i.href||"/wheels",onClick:()=>d(!1),className:"group flex items-center justify-between gap-6 border border-btn bg-btn px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-btn-ink transition-colors hover:border-fg hover:bg-fg",children:[J0("span",{children:"View product"}),J0("span",{className:"transition-transform group-hover:translate-x-[6px]",children:"\u2192"})]}),h3(S1,{href:l,onClick:()=>d(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[J0("span",{children:"See more builds"}),J0("span",{children:"\u2192"})]}),h3(S1,{href:r,onClick:()=>d(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[J0("span",{children:"Submit your build"}),J0("span",{children:"\u2192"})]})]})]})]})})})()]})}import{createContext as Vj,useContext as Nj,useEffect as Po,useId as _j,useMemo as Ij,useState as N2}from"react";var Tj=14,Pj=3;function ru(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function Ej(e,t){let a=new Date(`${e}T00:00:00`);return a.setDate(a.getDate()+t),ru(a)}async function CL(e,t,a={}){let s=a.days??Tj,c=a.read??f8.getAvailability,l=0,r=0;for(let o=0;o<s;o++){if(a.signal?.aborted)return{outcome:"unreadable"};let i=Ej(t,o);try{let n=await c(e,i);if(l=0,r++,n.slots.length>0)return{outcome:"found",date:i,availability:n}}catch{if(l++,l>=Pj)return{outcome:"unreadable"}}}return r===s?{outcome:"noneInWindow",days:s}:{outcome:"unreadable"}}import{jsx as Zj}from"react/jsx-runtime";var kL=Vj(null);function x7(){let e=Nj(kL);if(!e)throw new Error("useBookingForm must be used inside <BookingFormProvider>");return e}var ou=[{id:"example-1",name:"Example service",durationMinutes:45,price:"80.00",description:"What this appointment includes, in a sentence."},{id:"example-2",name:"Second example",durationMinutes:30,price:"0",description:""}];function Rj(e){return{timezone:"UTC",slots:[`${e}T09:00:00.000Z`,`${e}T10:30:00.000Z`,`${e}T13:00:00.000Z`].map(t=>({start:t}))}}var iu={bookingNumber:"EXAMPLE-0000",service:"Example service",startAt:"2026-01-01T00:00:00.000Z",timezone:"UTC",customerTimezone:"",manageToken:"example"};function Bj(e,t){return e&&t?.length===0}function ML({editing:e=!1,previewConfirmation:t=!1,children:a}){let s=_j(),c=Ij(()=>ru(new Date),[]),[l,r]=N2(),[o,i]=N2(""),[n,h]=N2(""),[m,p]=N2(c),[u,g]=N2(c),[d,f]=N2(!1),[v,z]=N2(null),[x,k]=N2(),[M,A]=N2(""),[B,P]=N2(""),[D,F]=N2(""),[T,V]=N2(""),[Z,_]=N2(""),[N,t1]=N2(()=>Am()),[E,q]=N2(null),[K,W]=N2(!1),[r1,x1]=N2(!1),[Y,e1]=N2(null),[g1,U]=N2("");Po(()=>{U(Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC")},[]),Po(()=>{let s0=!1;return f8.listServices().then(c0=>{s0||(r(c0.results),i(c0.currency),h(K1=>K1||c0.results[0]?.id||""))}).catch(()=>{s0||r([])}),()=>{s0=!0}},[]),Po(()=>{if(d||!n)return;let s0={aborted:!1};return A(""),k(void 0),e1(null),z(null),W(!0),CL(n,c,{signal:s0}).then(c0=>{if(!s0.aborted){if(c0.outcome==="found"){p(c0.date),g(c0.date),k(c0.availability);return}z(c0.outcome==="noneInWindow"?`No times are available in the next ${c0.days} days.`:"We couldn't load available times. Please try again.")}}).finally(()=>{s0.aborted||W(!1)}),()=>{s0.aborted=!0}},[d,n,c]),Po(()=>{if(!d||!n||!m)return;let s0=!1;return A(""),k(void 0),e1(null),z(null),W(!0),f8.getAvailability(n,m).then(c0=>{s0||(k(c0),c0.slots.length===0&&z("No times are available on this date."))}).catch(()=>{s0||z("We couldn't load available times. Please try again.")}).finally(()=>{s0||W(!1)}),()=>{s0=!0}},[m,d,n]);let p1=l?.find(s0=>s0.id===n),f1=p1?.depositAmountDue!=null,F0=!!(!e&&!r1&&p1&&M&&B.trim()&&D.trim()&&!f1);async function T0(s0){if(s0.preventDefault(),!(!F0||!p1)){x1(!0),e1(null);try{let c0=await f8.create({serviceId:p1.id,start:M,customer:{name:B.trim(),email:D.trim(),phone:T.trim()},notes:Z.trim(),idempotencyKey:N,customerTimezone:g1});q(c0),t1(Am())}catch(c0){e1(c0 instanceof G4&&c0.status===409?"That time was just booked. Choose another available time.":"Your appointment wasn't submitted. Please check your details and try again."),c0 instanceof G4&&c0.status===409&&(A(""),f8.getAvailability(p1.id,m).then(k).catch(()=>{}))}finally{x1(!1)}}}let A1=Bj(e,l);return Zj(kL.Provider,{value:{fieldPrefix:s,editing:e,services:A1?ou:l,currency:A1?"AUD":o,serviceId:A1?ou[0].id:n,setServiceId:h,service:A1?ou[0]:p1,requiresPayment:A1?!1:f1,date:m,earliestDate:u,setDate:p,setDateTouched:f,availability:A1?Rj(m):x,loadingSlots:A1?!1:K,noSlotsMessage:v,selectedStart:A1?`${m}T09:00:00.000Z`:M,setSelectedStart:A,customerTimezone:g1,name:B,setName:P,email:D,setEmail:F,phone:T,setPhone:V,notes:Z,setNotes:_,confirmation:E??(t?iu:null),submitting:r1,error:Y,canSubmit:A1?!1:F0,handleSubmit:T0,sample:!!A1},children:a})}import{jsx as nu,Fragment as Dj,jsxs as Oj}from"react/jsx-runtime";var Gj="sf-button group inline-flex items-center justify-center gap-2.5 border px-[22px] py-4 font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.2em] transition-colors",SL={primary:"border-btn bg-btn text-btn-ink hover:border-btn-2 hover:bg-btn-2",ghost:"border-current bg-transparent hover:bg-white/10"};function a3(e){let{variant:t="primary",arrow:a,className:s,style:c,children:l,href:r,newTab:o,...i}=e,n=`${Gj} ${SL[t]??SL.primary} ${s??""}`,h=Oj(Dj,{children:[l,a!==null&&nu("span",{"aria-hidden":!0,className:"transition-transform group-hover:translate-x-[3px]",children:a??"\u2192"})]});return r?nu(t0,{href:r,className:n,style:c,...o?{target:"_blank",rel:"noopener noreferrer"}:{},children:h}):nu("button",{type:"button",className:n,style:c,...i,children:h})}import{jsx as L0,jsxs as M3}from"react/jsx-runtime";var ss="w-full border-2 border-line bg-bg px-4 py-3.5 font-[family-name:var(--bk-value-font,var(--font-display))] text-[length:var(--bk-value-size,17px)] text-fg outline-none transition-colors placeholder:text-fg-dim hover:border-fg-dim focus:border-accent";function qj(e,t){let a=Number(e);if(a===0)return"Free";try{return new Intl.NumberFormat(void 0,{style:"currency",currency:t}).format(a)}catch{return`${t} ${e}`}}function LL(e,t){try{return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit",timeZone:t}).format(new Date(e))}catch{return new Date(e).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}}function AL(e,t){try{return new Intl.DateTimeFormat(void 0,{weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",timeZone:t,timeZoneName:"short"}).format(new Date(e))}catch{return new Date(e).toLocaleString()}}var cs="font-[family-name:var(--bk-name-font,var(--font-mono))] text-[length:var(--bk-name-size,12px)]";function hu({number:e,children:t}){return M3("div",{className:"mb-4 flex items-center gap-3",children:[L0("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-full border border-line font-[family-name:var(--bk-step-font,var(--font-mono))] text-[length:var(--bk-step-size,11px)] font-semibold text-fg-dim",children:e}),L0("h3",{className:"font-[family-name:var(--bk-step-font,var(--font-mono))] text-[length:var(--bk-step-size,12px)] font-semibold uppercase tracking-[0.2em] text-fg",children:t})]})}function Eo({eyebrow:e,heading:t,intro:a}){return M3("div",{className:"mb-10 max-w-[760px]",children:[(e??"").trim()&&L0("p",{className:"mb-4 font-mono text-[12px] font-semibold uppercase tracking-[0.24em] text-accent",children:e}),(t??"").trim()&&L0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.98] tracking-[-0.025em] text-fg max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:t}),(a??"").trim()&&L0("p",{className:"mt-5 max-w-[660px] font-display text-[17px] leading-[1.65] text-fg-dim",children:a})]})}function Vo({style:e}={}){let{fieldPrefix:t,services:a,currency:s,serviceId:c,setServiceId:l,requiresPayment:r,date:o,earliestDate:i,setDate:n,setDateTouched:h,availability:m,loadingSlots:p,noSlotsMessage:u,selectedStart:g,setSelectedStart:d,customerTimezone:f}=x7();return a?M3("div",{className:"flex flex-col gap-9",style:e,children:[M3("div",{children:[L0(hu,{number:"01",children:"Choose a service"}),L0("div",{className:"grid gap-3 sm:grid-cols-2",children:a.map(v=>{let z=v.id===c;return M3("button",{type:"button","aria-pressed":z,onClick:()=>l(v.id),className:`min-h-11 border p-4 text-left transition-colors ${z?"border-accent bg-accent/10":"border-line bg-bg hover:border-fg-dim"}`,children:[L0("span",{className:"block font-[family-name:var(--bk-name-font,var(--font-display))] text-[length:var(--bk-name-size,18px)] font-medium text-fg",children:v.name}),M3("span",{className:"mt-1 block font-[family-name:var(--bk-value-font,var(--font-mono))] text-[length:var(--bk-value-size,11px)] uppercase tracking-[0.14em] text-fg-dim",children:[v.durationMinutes," min \xB7 ",qj(v.price,s)]}),v.description&&L0("span",{className:"mt-3 block font-[family-name:var(--bk-note-font,var(--font-display))] text-[length:var(--bk-note-size,14px)] leading-[1.5] text-fg-dim",children:v.description})]},v.id)})}),r&&L0("p",{className:"mt-3 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,11px)] uppercase tracking-[0.14em] text-alert",role:"alert",children:"This service requires an upfront payment and cannot be booked through this form yet."})]}),M3("div",{children:[L0(hu,{number:"02",children:"Choose a date and time"}),L0(D2,{separate:!0,htmlFor:`${t}-date`,label:"Date",required:!0,labelFace:cs,children:L0("input",{id:`${t}-date`,type:"date",min:i,value:o,onChange:v=>{h(!0),n(v.target.value)},className:ss,required:!0})}),L0("div",{className:"mt-4 grid grid-cols-2 gap-2 sm:grid-cols-3 min-[1200px]:grid-cols-4",role:"group","aria-label":"Available appointment times",children:p?L0("p",{className:"col-span-full py-3 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,11px)] uppercase tracking-[0.18em] text-fg-dim",children:"Loading times\u2026"}):m?.slots.length?m.slots.map(v=>M3("button",{type:"button","aria-pressed":g===v.start,onClick:()=>d(v.start),className:`min-h-11 border px-3 py-2 font-[family-name:var(--bk-value-font,var(--font-mono))] text-[length:var(--bk-value-size,12px)] font-semibold uppercase tracking-[0.12em] transition-colors ${g===v.start?"border-accent bg-accent text-bg":"border-line bg-bg text-fg hover:border-accent"}`,children:[L0("span",{className:"block",children:LL(v.start,f||m.timezone)}),f&&f!==m.timezone&&M3("span",{className:"mt-0.5 block text-[9px] font-normal tracking-[0.08em] opacity-70",children:[LL(v.start,m.timezone)," business"]})]},v.start)):u?L0("p",{className:"col-span-full py-3 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,11px)] uppercase tracking-[0.18em] text-fg-dim",role:"status",children:u}):null}),m?.timezone&&M3("p",{className:"mt-3 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,10px)] uppercase tracking-[0.16em] text-fg-dim",children:["Times shown in ",f||m.timezone,f&&f!==m.timezone?` \xB7 business timezone ${m.timezone}`:""]})]})]}):null}function No({buttonLabel:e,style:t}){let{fieldPrefix:a,editing:s,name:c,setName:l,email:r,setEmail:o,phone:i,setPhone:n,notes:h,setNotes:m,submitting:p,error:u,canSubmit:g}=x7();return M3("div",{className:"sf-card border border-line bg-bg p-5 min-[640px]:p-7",style:t,children:[L0(hu,{number:"03",children:"Your details"}),M3("div",{className:"flex flex-col gap-4",children:[L0(D2,{separate:!0,htmlFor:`${a}-name`,label:"Name",required:!0,labelFace:cs,children:L0("input",{id:`${a}-name`,type:"text",autoComplete:"name",value:c,onChange:d=>l(d.target.value),className:ss,required:!0})}),L0(D2,{separate:!0,htmlFor:`${a}-email`,label:"Email",required:!0,labelFace:cs,children:L0("input",{id:`${a}-email`,type:"email",inputMode:"email",autoComplete:"email",value:r,onChange:d=>o(d.target.value),className:ss,required:!0})}),L0(D2,{separate:!0,htmlFor:`${a}-phone`,label:"Phone",labelFace:cs,children:L0("input",{id:`${a}-phone`,type:"tel",inputMode:"tel",autoComplete:"tel",value:i,onChange:d=>n(d.target.value),className:ss})}),L0(D2,{separate:!0,htmlFor:`${a}-notes`,label:"What would you like to cover?",labelFace:cs,children:L0("textarea",{id:`${a}-notes`,rows:4,value:h,onChange:d=>m(d.target.value),className:`${ss} resize-y`})})]}),u&&L0("p",{className:"mt-4 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,11px)] uppercase tracking-[0.16em] text-alert",role:"alert",children:u}),L0(a3,{type:s?"button":"submit",disabled:!g,arrow:null,className:"mt-6 w-full disabled:cursor-not-allowed disabled:opacity-50",children:p?"Submitting\u2026":(e??"").trim()||"Book appointment"})]})}function _o({successMessage:e}){let{confirmation:t,customerTimezone:a}=x7();return t?M3("div",{className:"sf-card max-w-[760px] border border-line bg-bg p-6 min-[640px]:p-9",role:"status",children:[M3("p",{className:"font-mono text-[12px] font-semibold uppercase tracking-[0.22em] text-accent",children:["Request received \xB7 ",t.bookingNumber]}),L0("h3",{className:"mt-4 font-display text-[28px] font-medium uppercase text-fg",children:t.service}),L0("p",{className:"mt-2 font-display text-[17px] text-fg-dim",children:AL(t.startAt,t.customerTimezone||a||t.timezone)}),t.customerTimezone&&t.timezone!==t.customerTimezone&&M3("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-[0.16em] text-fg-dim",children:["Business time: ",AL(t.startAt,t.timezone)]}),(e??"").trim()&&L0("p",{className:"mt-5 max-w-[620px] font-serif text-[18px] italic leading-[1.6] text-fg-dim",children:e}),L0(a3,{href:`/book/${encodeURIComponent(t.manageToken)}`,newTab:t!==iu,variant:"ghost",className:"mt-7",children:"Manage booking"})]}):null}var Io=["step","name","value","note"],mu={step:"Step",name:"Name",value:"Value",note:"Note"},Ro={step:"styleStep",name:"styleName",value:"styleValue",note:"styleNote"},HL={step:{font:"--bk-step-font",size:"--bk-step-size"},name:{font:"--bk-name-font",size:"--bk-name-size"},value:{font:"--bk-value-font",size:"--bk-value-size"},note:{font:"--bk-note-font",size:"--bk-note-size"}};function Wj(e){return typeof e=="string"&&u5.includes(e)?e:null}var Uj={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0,widthPx:900};function FL(e,t){let a={};for(let s of Io){let c=Wj(e[Ro[s]]);if(!c)continue;let l=T9({role:c},Uj,t);l.fontFamily&&(a[HL[s].font]=l.fontFamily),l.fontSize&&(a[HL[s].size]=l.fontSize)}return a}import{jsx as Xe}from"react/jsx-runtime";var TL=["head","booking","details","confirm"],PL={head:"Head",booking:"Booking",details:"Your details",confirm:"Confirmation"};function pu({region:e,eyebrow:t,heading:a,intro:s,buttonLabel:c,successMessage:l,...r}){let{confirmation:o,services:i}=x7(),n=FL(r);return e==="head"?Xe("div",{className:"min-[960px]:col-span-2",style:n,children:Xe(Eo,{eyebrow:t,heading:a,intro:s})}):e==="confirm"?o?Xe("div",{className:"min-[960px]:col-span-2",style:n,children:Xe(_o,{successMessage:l})}):null:o||!i||i.length===0?null:e==="booking"?Xe(Vo,{style:n}):e==="details"?Xe(No,{buttonLabel:c,style:n}):null}import{jsx as K0,Fragment as jj,jsxs as L4}from"react/jsx-runtime";var L8="solid",uu=[{label:"Solid",value:"solid"},{label:"Outlined",value:"outlined"}];function EL(e){return R2(uu,L8,e)}var du="sf-secnum-outline",VL="font-display text-[length:var(--size-headingMedium,clamp(48px,6vw,96px))] font-medium leading-[0.8] tracking-[-0.02em]",NL=`@supports (-webkit-text-stroke: 1px currentColor){.${du}{color:var(--site-surface-2);-webkit-text-stroke:1px var(--site-line)}}`;var ls=(e,t=!1)=>typeof e=="string"?j(e,t):e,Je=(e,t=!1)=>typeof e=="string"?C(e,t):e;function Q1({num:e,title:t,link:a,logo:s,description:c,accent:l,accentNum:r,numStyle:o=L8,look:i="standard",titleAccent:n,accentTracking:h="-0.02em",spaceBelow:m,rowGap:p,descriptionSize:u,className:g="",eyebrowLook:d=rr}){let f=m??(i==="editorial"?"mb-[60px]":"");if(i==="editorial"){let A=!!t||!!n;return L4("header",{className:`${f} grid grid-cols-[auto_1fr_auto] items-end gap-10 border-b border-line pb-8 max-[1100px]:grid-cols-1 max-[1100px]:gap-3.5 ${g}`.trim(),children:[e&&(typeof e=="string"?K0(V1,{text:e,className:"pb-2"}):K0("span",{className:"pb-2",children:e})),A&&L4("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5.5vw,80px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:[t,n&&L4(jj,{children:[" ",K0("em",{className:"font-serif font-normal italic text-accent",style:{letterSpacing:h},children:n})]})]}),c&&K0("p",{className:"max-w-[360px] pb-1 text-right font-display text-[length:var(--size-body,14px)] leading-[1.5] text-fg-dim max-[1100px]:max-w-full max-[1100px]:text-left",children:c})]})}if(i==="simple"){let A=`${f} ${g}`.trim();return L4("div",{className:A||void 0,children:[e&&(typeof e=="string"?K0(V1,{text:e,look:d,className:"mb-4 block"}):K0("span",{className:"mb-4 block",children:e})),t&&K0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:ls(t)})]})}if(i==="statement"){let A=`${f} ${g}`.trim();return L4("div",{className:A||void 0,children:[e&&(typeof e=="string"?K0(V1,{text:e,look:d,className:"mb-4 block"}):K0("span",{className:"mb-4 block",children:e})),t&&K0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5vw,72px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em] text-fg",children:ls(t,!0)})]})}if(i==="natural"){let A=`flex max-w-[680px] flex-col ${p??"gap-5"} ${f} ${g}`.replace(/\s+/g," ").trim();return L4("div",{className:A,children:[e&&(typeof e=="string"?K0(V1,{text:e,look:d}):K0("span",{children:e})),t&&K0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium leading-[1.05] tracking-[-0.03em] max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:ls(t)}),c&&K0("p",{className:`${u??"text-[length:var(--size-body,16px)]"} leading-[1.6] opacity-85`,children:c})]})}if(i==="essay"){let A=`${f} ${g}`.trim();return L4("div",{className:A||void 0,children:[e&&(typeof e=="string"?K0(V1,{text:e,look:d,className:"mb-4 block"}):K0("span",{className:"mb-4 block",children:e})),t&&K0("h2",{className:"font-heading2 text-[length:var(--sf-heading-max,var(--size-headingMedium,38px))] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-none tracking-[-0.02em] text-fg max-[800px]:text-[length:var(--size-headingSmall,28px)]",children:ls(t)})]})}let v=!!c||!!a,z=!!t,x=EL(o)==="outlined",k="font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.3em]",M=null;if(e)if(x)M=K0("span",{className:`${VL} text-fg-dim ${du}`,children:Je(e)});else if(r&&!l&&typeof e=="string"){let A=e.indexOf("/"),B=A===-1?e:e.slice(0,A),P=A===-1?"":e.slice(A);M=L4("span",{className:k,children:[K0("span",{className:"text-accent",children:Je(B)}),P&&K0("span",{className:"text-fg-dim",children:Je(P)})]})}else M=K0("span",{className:`${k} ${l?"text-accent":"text-fg-dim"}`,children:Je(e)});return L4("div",{className:"mb-16 grid grid-cols-[auto_1fr_auto] items-end gap-10 border-b border-line pb-6 max-[800px]:mb-9 max-[800px]:grid-cols-1 max-[800px]:gap-3 max-[800px]:pb-5",children:[x&&e&&K0("style",{children:NL}),L4("div",{className:"flex flex-col items-start gap-3",children:[s?.src&&K0("img",{src:H2(s.src),alt:s.alt,className:"h-8 w-auto object-contain"}),M]}),z&&K0("h2",{className:l?"font-heading2 text-[length:min(var(--size-headingMedium,clamp(36px,5vw,64px)),var(--sf-heading-max,9999px))] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-[0.95] tracking-[-0.025em]":"font-heading2 text-[length:min(var(--size-headingMedium,56px),var(--sf-heading-max,9999px))] [font-weight:var(--sf-heading-weight,500)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-none tracking-[-0.03em] whitespace-pre-line max-[800px]:text-[length:min(var(--size-headingMedium,36px),var(--sf-heading-max,9999px))] max-[800px]:leading-[1]",children:ls(t)}),v&&L4("div",{className:"flex flex-col items-end gap-3 max-[800px]:items-start",children:[c&&K0("p",{className:"max-w-[340px] font-display text-[length:var(--size-body,14px)] leading-[1.5] text-fg-dim text-right max-[800px]:max-w-full max-[800px]:text-left",children:Je(c)}),a&&L4(t0,{href:a.href,className:"inline-flex items-center gap-2 whitespace-nowrap font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.2em] text-fg-dim transition-colors hover:text-fg",children:[Je(a.text),K0("span",{"aria-hidden":!0,children:"\u2192"})]})]})]})}import{jsx as A4,jsxs as rs}from"react/jsx-runtime";function $j(e){return e.type==="textarea"||e.type==="select"||e.type==="checkbox"}function _L({eyebrow:e,title:t}){return rs("div",{className:"flex flex-col gap-4",children:[e&&A4(V1,{text:e,scaled:!1}),t&&A4("h2",{className:"font-display text-[min(clamp(40px,5vw,72px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:j(t,!0)})]})}function Bo({body:e,buttonLabel:t,consent:a,form:s,submission:c,showForm:l,resolving:r,editing:o}){return rs("div",{className:"flex flex-col gap-7",children:[e&&b0(e).map((i,n)=>A4("p",{className:"max-w-[480px] font-display text-[16px] leading-[1.6] text-fg-dim",children:C(i)},n)),l&&(s?c.done?A4("p",{role:"status",className:"max-w-[480px] font-[family-name:var(--sb-thanks-font,var(--font-serif))] text-[length:var(--sb-thanks-size,17px)] italic leading-[1.6] text-fg-dim",children:Re(s)}):rs("form",{className:"grid grid-cols-2 gap-2",onSubmit:c.handleSubmit,children:[s.fields.map(i=>{let n=["border border-line bg-transparent px-4 py-3.5 font-[family-name:var(--sb-field-font,var(--font-mono))] text-[length:var(--sb-field-size,14px)] tracking-[0.1em] text-fg outline-none focus:border-accent",$j(i)?"col-span-2":""].join(" ");return i.type==="checkbox"?rs("label",{className:"col-span-2 flex items-start gap-3 font-[family-name:var(--sb-tick-font,var(--font-mono))] text-[length:var(--sb-tick-size,12px)] uppercase tracking-[0.18em] text-fg-dim",children:[A4(p7,{field:i,value:c.valueOf(i.key),onChange:h=>c.set(i.key,h),className:"mt-0.5 size-4 accent-accent"}),rs("span",{children:[i.label,i.required?A4("span",{className:"text-accent",children:" *"}):null]})]},i.key):A4(p7,{field:i,value:c.valueOf(i.key),onChange:h=>c.set(i.key,h),rows:4,placeholder:i.placeholder||i.label,className:i.type==="textarea"?`${n} resize-y`:n},i.key)}),A4(Be,{value:c.honeypot,onChange:c.setHoneypot}),c.error&&A4("p",{role:"alert",className:"col-span-2 font-mono text-[12px] uppercase tracking-[0.18em] text-alert",children:c.error}),t&&A4("button",{type:o?"button":"submit",disabled:c.submitting,className:"col-span-2 cursor-pointer bg-btn px-6 py-4 font-mono text-[14px] uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg hover:text-bg disabled:cursor-wait disabled:opacity-60",children:c.submitting?"Sending\u2026":C(t)})]}):A4("p",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim",children:r?"Loading form\u2026":"Choose a form in the inspector, under Form \u2014 until then this form is hidden on the live page and nothing can be submitted."})),l&&a&&A4("span",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim/70",children:C(a)})]})}var Zo=["field","tick","thanks"],gu={field:"Form rows",tick:"Tick label",thanks:"Thank-you message"},Do={field:"styleField",tick:"styleTick",thanks:"styleThanks"},IL={field:{font:"--sb-field-font",size:"--sb-field-size"},tick:{font:"--sb-tick-font",size:"--sb-tick-size"},thanks:{font:"--sb-thanks-font",size:"--sb-thanks-size"}};function Kj(e){return typeof e=="string"&&u5.includes(e)?e:null}var Yj={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0,widthPx:900};function RL(e,t){let a={};for(let s of Zo){let c=Kj(e[Do[s]]);if(!c)continue;let l=T9({role:c},Yj,t);l.fontFamily&&(a[IL[s].font]=l.fontFamily),l.fontSize&&(a[IL[s].size]=l.fontSize)}return a}import{jsx as Oo}from"react/jsx-runtime";var BL=["head","form"],ZL={head:"Head",form:"Form"};function vu({region:e,eyebrow:t,title:a,body:s,buttonText:c,consent:l,formSlug:r,form:o,editing:i=!1,...n}){let h=S5(r,o),m=m7({form:h,formSlug:r,editing:i}),p=RL(n);return e==="head"?Oo("div",{style:p,children:Oo(Q1,{look:"statement",num:t,title:a})}):Oo("div",{style:p,children:Oo(Bo,{body:s??"",buttonLabel:c??"",consent:l??"",form:h,submission:m,showForm:!!h||i,resolving:h===void 0,editing:i})})}var Xj={AppointmentBooking:{slot:"boxes",childType:"BookingBox",addLabel:"Add box",fixed:!0,seeds:()=>TL.map(e=>({region:e,name:PL[e]})),addBlocked:()=>"A Booking Form is these three boxes. They cannot be added to or removed.",skipSeed:e=>e.layout!=="boxes"},SubmitBuild:{slot:"boxes",childType:"SubmitBox",addLabel:"Add box",fixed:!0,seeds:()=>BL.map(e=>({region:e,name:ZL[e]})),addBlocked:()=>"A Submit-a-build section is these two boxes. They cannot be added to or removed.",skipSeed:e=>e.layout!=="boxes"},Collections:{slot:"cards",childType:"CollectionCard",addLabel:"Add card",seeds:()=>Array.from({length:xL},()=>({collection:null}))},ProductGrid:{slot:"products",childType:"ProductRef",addLabel:"Add product",seeds:()=>[{code:""},{code:""},{code:""}],legacy:e=>Array.isArray(e.design_codes)?e.design_codes.map(t=>t?.code).filter(t=>!!t).map(t=>({code:t})):[]},GalleryB:{slot:"items",childType:"GalleryItem",addLabel:"Add image",seeds:()=>wL.map(e=>({...e})),legacy:e=>Array.isArray(e.cards)?e.cards.map(t=>({...t})):[]}};qx(Xj);function Qe(e,t){let a={};for(let s of Object.keys(e))a[s]={...e[s],...t[s]};return a}import{jsx as Jj}from"react/jsx-runtime";import{OpacityIcon as Qj}from"efficient-easel/icons";var DL={fields:{_gContent:b("Content"),eyebrow:H("Eyebrow","Limited release"),title:O("Heading","Banner headline"),body:O("Body","A line or two of supporting copy."),_gBackground:b("Background image"),imageSrc:G1("Image","image/*"),overlay:s1("Overlay",Jj(Qj,{}),0,100,5,60,"%"),_gButton:b("Button"),...S4,_gLayout:b("Layout")}};import{jsx as a$}from"react/jsx-runtime";import{jsx as os,jsxs as fu,Fragment as e$}from"react/jsx-runtime";import{Fragment as t$}from"react";function OL({items:e,meta:t,editing:a=!1}){let s=(e??[]).filter(l=>l?.label?.trim()),c=s.length>0?s:a?[{label:"Breadcrumb"}]:[];return c.length===0&&!t?null:fu("nav",{className:"flex items-center gap-4 border-b border-line px-[var(--sf-site-gutter,40px)] py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg-dim max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-4",children:[c.map((l,r)=>{let o=r===c.length-1;return fu(t$,{children:[r>0&&os("span",{className:"opacity-40",children:"/"}),l.href&&!o?os(t0,{href:l.href,className:"hover:text-fg",children:Z0(l.label)}):os("span",{className:o?"text-fg":void 0,children:Z0(l.label)})]},r)}),t&&fu(e$,{children:[os("span",{className:"opacity-40",children:"\xB7"}),os("span",{children:C(t)})]})]})}function $4(e,t,a){return e||(a?.isEditing?t:void 0)}function y1(e,t,a){let s=Array.isArray(e)?e:[];return s.length?s:a?.isEditing?t:[]}function y(e,t,a){let s=F2(e);if(!s.hidden)return $4(s.text,t,a)}function Q0(e,t,a){return F2(e).hidden?"":y(e,t,a)}function O3(e,t,a){return{text:y(e,u2.text,a),href:t||u2.href}}var bu={meta:"Trailing note"},s$=[{label:"Home",href:"/"},{label:"Section",href:""}],GL={label:"Breadcrumb",defaultProps:{items:[],meta:""},render:({items:e,meta:t,puck:a})=>a$(OL,{items:y1(e,s$,a),meta:y(t,bu.meta,a),editing:a?.isEditing})};var qL={fields:{_gContent:b("Content"),items:{type:"array",label:"Crumbs",arrayFields:{label:G("Label"),href:J2(G("Link"))},getItemSummary:e=>e?.label||"Crumb"},meta:H("Trailing note",bu.meta)}};import{jsx as l$}from"react/jsx-runtime";function WL(e){return typeof e=="boolean"?e:!0}import{ButtonArrowIcon as r$}from"efficient-easel/icons";var UL={fields:{label:G("Button"),href:H1("Button link"),_gStyle:b("Style"),variant:{type:"radio",options:[{label:"Primary",value:"primary"},{label:"Ghost",value:"ghost"}]},arrow:c1("Arrow",!0,l$(r$,{})),align:F5()}};import{jsx as KL}from"react/jsx-runtime";import{ColumnsIcon as p$,StylesIcon as u$}from"efficient-easel/icons";import{jsx as h$}from"react/jsx-runtime";import{jsx as et,Fragment as o$,jsxs as xu}from"react/jsx-runtime";var i$="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] py-[72px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",n$="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-0 pb-[72px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]";function jL({look:e,eyebrow:t,title:a,items:s,columns:c,omitHead:l=!1,editing:r=!1}={}){let o=Math.min(4,Math.max(2,c??3)),i=(s??[]).filter(h=>r||(h.title??"").trim()||(h.body??"").trim()),n=!!(t??"").trim()||!!(a??"").trim();return!r&&!n&&i.length===0?null:et("section",{className:"relative z-[2] bg-surface",children:xu("div",{className:l?n$:i$,children:[l?null:xu(o$,{children:[(t??"").trim()&&et(V1,{text:t??"",look:e,className:"mb-4 block"}),(a??"").trim()&&et("h2",{className:"mb-9 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:mb-7 max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:j(a??"",!1)})]}),i.length>0&&et("div",{className:"sf-card grid grid-cols-1 gap-px border border-line bg-line min-[700px]:[grid-template-columns:repeat(var(--cd-cols),minmax(0,1fr))]",style:{"--cd-cols":String(o)},children:i.map((h,m)=>xu("div",{className:"bg-bg p-8 max-[800px]:p-7",children:[et("div",{className:"mb-3 font-heading3 text-[length:var(--size-headingSmall,20px)] font-medium uppercase tracking-[0.02em] text-fg",children:C((h.title??"").trim()||"Card title")}),et("p",{className:"text-[length:var(--size-body,15px)] leading-[1.6] text-fg-dim",children:C((h.body??"").trim()||"A short line about this card.")})]},m))})]})})}var is={eyebrow:"Label",title:"Section *heading.*"},m$=[{title:"Card title one",body:"A short line about this card."},{title:"Card title two",body:"A short line about this card."},{title:"Card title three",body:"A short line about this card."}],$L={label:"Cards",defaultProps:{eyebrow:"",title:"",items:[],columns:3},render:e=>{let t=D1(e.headPlacement)==="own-box",a=s=>t?void 0:s;return h$(jL,{look:s4(e.eyebrowLook,"Cards"),eyebrow:a(y(e.eyebrow,is.eyebrow,e.puck)),title:a(y(e.title,is.title,e.puck)),omitHead:t,items:y1(e.items,m$,e.puck),columns:e.columns,editing:e.puck?.isEditing})}};var YL={fields:{_gContent:b("Content"),eyebrow:H("Eyebrow",is.eyebrow),eyebrowLook:d1("Eyebrow style",KL(u$,{}),[...y4],e7("Cards")),title:O("Heading",is.title),items:{type:"array",label:"Cards",arrayFields:{title:v1("Card title"),body:E1("Card body")},defaultItemProps:{title:"",body:""},getItemSummary:e=>e?.title||e?.body||"Card"},_gStyle:b("Style"),columns:s1("Columns",KL(p$,{}),2,4,1,3)},resolveFields:(e,{fields:t,parent:a})=>O1(W1(t,a,U1),e.props.headPlacement,B1.Cards.headRows)};import{jsx as d$}from"react/jsx-runtime";import{StickyIcon as g$}from"efficient-easel/icons";var XL={fields:{tabs:{type:"array",label:"Tabs",arrayFields:{label:G("Label"),count:G("Count")},getItemSummary:e=>e?.label?`${e.label}${e.count?` \xB7 ${e.count}`:""}`:"Tab"},activeTab:J2(G("Active tab","All")),_gLinks:b("Links"),links:{type:"array",label:"Right links",arrayFields:{label:G("Label"),href:J2(G("Link"))},getItemSummary:e=>e?.label||"Link"},_gStyle:b("Style"),sticky:c1("Stick under header",!0,d$(g$,{}))}};import{jsx as y$}from"react/jsx-runtime";import{StylesIcon as w$}from"efficient-easel/icons";import{jsx as x$}from"react/jsx-runtime";import{jsx as l2,jsxs as K4}from"react/jsx-runtime";function zu(e){return Number.isInteger(e)?String(e):String(Math.round(e*10)/10)}var JL=[100,70,46,30,19,12];function QL(e){return`color-mix(in srgb, var(--accent) ${JL[e%JL.length]}%, var(--bg))`}function v$({data:e,suffix:t}){let a=Math.max(...e.map(s=>s.value),0)||1;return l2("div",{className:"flex w-full flex-col gap-6",children:e.map((s,c)=>K4("div",{children:[K4("div",{className:"mb-2 flex items-baseline justify-between gap-4",children:[l2("span",{className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] text-fg/60",children:C(s.label)}),K4("span",{className:"font-display text-[length:var(--size-body,16px)] font-medium text-fg",children:[zu(s.value),t]})]}),l2("div",{className:"h-[10px] border border-line bg-bg",children:l2("div",{className:"h-full bg-accent",style:{width:`${Math.max(s.value/a*100,s.value===0?0:2)}%`}})})]},c))})}function f$({data:e,suffix:t}){let a={l:42,r:42,t:36,b:38},s=640-a.l-a.r,c=300-a.t-a.b,l=Math.max(...e.map(h=>h.value),0)||1,r=e.length>1?s/(e.length-1):0,o=e.map((h,m)=>({x:a.l+(e.length>1?m*r:s/2),y:a.t+c-h.value/l*c})),i=o.map((h,m)=>`${m===0?"M":"L"}${h.x},${h.y}`).join(" "),n=`${i} L${o[o.length-1].x},${a.t+c} L${o[0].x},${a.t+c} Z`;return K4("svg",{viewBox:"0 0 640 300",className:"w-full",role:"img","aria-hidden":!0,children:[[.25,.5,.75,1].map(h=>l2("line",{x1:a.l,x2:640-a.r,y1:a.t+c*(1-h),y2:a.t+c*(1-h),stroke:"var(--site-line)",strokeWidth:"1"},h)),l2("line",{x1:a.l,x2:640-a.r,y1:a.t+c,y2:a.t+c,stroke:"var(--site-line)",strokeWidth:"1.5"}),l2("path",{d:n,fill:"var(--accent)",opacity:"0.13"}),l2("path",{d:i,fill:"none",stroke:"var(--accent)",strokeWidth:"2.5"}),o.map((h,m)=>K4("g",{children:[l2("circle",{cx:h.x,cy:h.y,r:"4",fill:"var(--accent)"}),K4("text",{x:h.x,y:h.y-12,textAnchor:"middle",className:"font-display",fontSize:"14",fill:"var(--fg)",children:[zu(e[m].value),t]}),l2("text",{x:h.x,y:288,textAnchor:"middle",className:"font-mono",fontSize:"10",letterSpacing:"0.1em",fill:"var(--fg)",opacity:"0.55",children:e[m].label.toUpperCase()})]},m))]})}function b$({data:e,suffix:t}){let a=e.reduce((o,i)=>o+i.value,0)||1,s=80,c=2*Math.PI*s,l=0,r=e.map((o,i)=>{let n=o.value/a,h={frac:n,dash:Math.max(n*c-3,0),off:l,ink:QL(i)};return l+=n*c,h});return K4("div",{className:"flex w-full flex-wrap items-center justify-center gap-10",children:[l2("svg",{viewBox:"0 0 200 200",className:"w-[220px] max-w-full -rotate-90",role:"img","aria-hidden":!0,children:r.map((o,i)=>l2("circle",{cx:"100",cy:"100",r:s,fill:"none",stroke:o.ink,strokeWidth:"34",strokeDasharray:`${o.dash} ${c-o.dash}`,strokeDashoffset:-o.off},i))}),l2("ul",{className:"flex min-w-[200px] flex-1 flex-col gap-3",children:e.map((o,i)=>K4("li",{className:"flex items-baseline gap-3",children:[l2("span",{"aria-hidden":!0,className:"h-[10px] w-[10px] flex-shrink-0 rotate-45",style:{background:QL(i)}}),l2("span",{className:"flex-1 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.12em] text-fg/60",children:C(o.label)}),l2("span",{className:"font-display text-[length:var(--size-body,15px)] font-medium text-fg",children:t?`${zu(o.value)}${t}`:`${Math.round(o.value/a*100)}%`})]},i))})]})}function eA({eyebrow:e,title:t,body:a,chartStyle:s,items:c,valueSuffix:l,caption:r,editing:o=!1}={}){let i=(l??"").trim()===""?"":l??"",n=(c??[]).map(u=>({label:(u.label??"").trim(),value:parseFloat(u.value??"")})).filter(u=>o?!0:u.label&&Number.isFinite(u.value)).map(u=>({label:u.label||"\u2014",value:Number.isFinite(u.value)?u.value:0})),h=!!(e??"").trim()||!!(t??"").trim();if(!o&&!h&&n.length===0)return null;let m=s??"bars",p=n.length===0?null:m==="line"&&n.length>1?l2(f$,{data:n,suffix:i}):m==="donut"?l2(b$,{data:n,suffix:i}):l2(v$,{data:n,suffix:i});return l2("section",{className:"relative z-[2] border-y border-line bg-surface",children:K4("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] items-center gap-14 px-[var(--sf-site-gutter,40px)] py-[76px] min-[960px]:[grid-template-columns:minmax(0,5fr)_minmax(0,7fr)] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[K4("div",{children:[(e??"").trim()&&l2("span",{className:"inline-block bg-accent px-3.5 py-1.5 font-mono text-[length:var(--size-label,12px)] font-semibold uppercase tracking-[0.16em] text-bg",children:C(e??"")}),(t??"").trim()&&l2("h2",{className:"mt-5 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-[1.04] tracking-[-0.02em] text-fg max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:j(t??"",!1)}),(a??"").trim()&&l2("p",{className:"mt-5 max-w-[46ch] text-[length:var(--size-body,15px)] leading-relaxed text-fg/65",children:a})]}),K4("div",{children:[p,(r??"").trim()&&l2("p",{className:"mt-4 font-mono text-[length:var(--size-label,10px)] uppercase tracking-[0.14em] text-fg/40",children:r})]})]})})}var ns={eyebrow:"By the numbers",title:`A picture worth
|
|
22
|
+
`}),i0("header",{className:"flex flex-shrink-0 flex-col gap-3.5 border-b border-line px-8 pb-[22px] pt-[26px] max-[640px]:px-[22px] max-[640px]:pt-[22px] max-[640px]:pb-[18px]",children:[i0("div",{className:"flex items-center justify-between",children:[i0("span",{className:"flex items-center gap-2.5 font-mono text-[10px] uppercase tracking-[0.3em] text-accent",children:[e.kickerBadge?N1("span",{className:"border px-2 py-1 text-[10px]",style:{background:"color-mix(in oklab, var(--accent) 12%, transparent)",borderColor:"color-mix(in oklab, var(--accent) 50%, transparent)"},children:e.kickerBadge}):null,(e.kickerBadge?"\xB7 ":"")+e.kickerText]}),N1("button",{ref:v,type:"button",onClick:s,"aria-label":"Close cart",className:"flex h-8 w-8 items-center justify-center border border-line text-[14px] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"\u2715"})]}),i0("h1",{className:"font-display text-[38px] font-medium uppercase leading-[0.95] tracking-[-0.03em] max-[640px]:text-[30px]",children:[e.titleLead+" ",N1("em",{className:"font-serif font-normal italic text-accent tracking-[-0.02em] normal-case",children:e.titleAccent})]}),N1("p",{className:"font-serif text-[13px] italic leading-[1.5] text-fg-dim",children:uy(e,c.length)})]}),i0("div",{className:`grid flex-shrink-0 ${yU[f-1]} gap-px border-b border-line bg-line`,children:[N1(Gp,{label:"Items",value:i0(uo,{children:[N1("em",{className:"font-serif font-normal italic text-accent",children:o.sets})," set",o.sets===1?"":"s"," \xB7 ",o.units," item",o.units===1?"":"s"]})}),e.leadTimeValue?N1(Gp,{label:"Lead time",value:e.leadTimeValue}):null,d?N1(Gp,{label:"Ships to",value:d}):null]}),i0("div",{className:"flex-1 overflow-y-auto [scrollbar-color:var(--site-line)_transparent] [scrollbar-width:thin]",children:[c.length===0?N1(SU,{content:e}):c.map(x=>N1(wU,{line:x,tyre:z.get(x.slug),onRemove:()=>l(x.id),onQtyChange:k=>r(x.id,k)},x.id)),p.length>0&&i0("section",{className:"border-b border-line px-8 py-[22px] max-[640px]:px-[22px]",style:{background:"color-mix(in oklab, var(--site-surface) 60%, transparent)"},children:[i0("div",{className:"mb-3.5 flex items-center justify-between font-mono text-[10px] uppercase tracking-[0.3em] text-accent",children:[N1("span",{children:"You may also need"}),N1("span",{className:"font-display text-[11px] normal-case tracking-[0.08em] text-fg-dim",children:"Buy together, save"})]}),N1("div",{className:"grid grid-cols-2 gap-2 max-[640px]:grid-cols-1",children:p.map(x=>N1(CU,{href:`/bundles/${x.slug}`,title:x.name,sub:kU(x,o.currency,u)},x.slug))})]}),N1("section",{className:"border-b border-line px-8 py-[22px] max-[640px]:px-[22px]",children:N1(zC,{})}),e.promises.length>0&&N1("div",{className:"flex flex-wrap justify-center gap-[18px] border-b border-line px-8 pt-[22px] pb-7 font-mono text-[9px] uppercase tracking-[0.24em] text-fg-dim max-[640px]:px-[22px]",children:e.promises.map(x=>N1(MU,{children:x},x))})]}),i0("div",{className:"flex flex-shrink-0 flex-col gap-2 border-t border-line px-8 pt-5 max-[640px]:px-[22px]",children:[N1(d7,{label:`Subtotal \xB7 ${o.sets} set${o.sets===1?"":"s"}`,value:u(o.subtotal,o.currency)}),o.appliedBundles.map(x=>N1(d7,{label:`Bundle \xB7 ${x.name}${x.multiples>1?` \xD7${x.multiples}`:""}`,value:i0("span",{style:{color:"var(--green)"},children:["\u2212 ",u(x.discount,o.currency)]})},x.slug)),o.discount>0&&i?.valid&&N1(d7,{label:`Coupon \xB7 ${i.code}`,value:i0("span",{style:{color:"var(--green)"},children:["\u2212 ",u(o.discount,o.currency)]})}),i?.deferred&&N1(d7,{label:`Coupon \xB7 ${i.code}`,value:cC}),i?.valid&&i.effects?.gift&&N1(d7,{label:`Free gift \xB7 ${i.effects.gift.partNumber}${i.effects.gift.quantity>1?` \xD7${i.effects.gift.quantity}`:""}`,value:N1("span",{style:{color:"var(--green)"},children:"Free"})}),N1(d7,{label:"Shipping",value:o.freeShipping||o.shipping===0?N1("span",{style:{color:"var(--green)"},children:"Free"}):u(o.shipping,o.currency)}),o.tax&&(o.tax.charged?N1(d7,{label:o.tax.inclusive?`${o.tax.name} included \xB7 ${o.tax.rate}%`:o.tax.name,value:u(o.tax.amount,o.currency)}):o.tax.name?N1(d7,{label:o.tax.name,value:"Calculated at checkout"}):null),i0("div",{className:"mt-1.5 flex items-center justify-between border-t border-line pt-3.5 text-fg",children:[i0("span",{className:"font-display text-[22px] font-medium tracking-[-0.02em] normal-case",children:["Total ",N1("em",{className:"font-serif font-normal italic text-accent",children:"due"})]}),N1("span",{className:"text-right font-display text-[30px] font-medium tracking-[-0.025em] text-fg",children:o.repricing?"\u2026":u(o.grand,o.currency)})]})]}),i0("div",{className:"flex flex-shrink-0 flex-col gap-2.5 px-8 pb-[22px] pt-3.5 max-[640px]:px-[22px]",children:[i0(S1,{href:"/checkout",onClick:s,"aria-disabled":c.length===0,className:["group flex items-center justify-between border px-5 py-[18px] font-mono text-[12px] uppercase tracking-[0.3em] transition-colors",c.length===0?"pointer-events-none cursor-not-allowed border-line bg-surface text-fg-dim":"border-btn bg-btn text-btn-ink hover:border-fg hover:bg-fg"].join(" "),children:["Begin checkout",N1("span",{className:"transition-transform group-hover:translate-x-1",children:"\u2192"})]}),i0("div",{className:"flex items-center justify-between px-1 py-1.5 font-mono text-[10px] uppercase tracking-[0.24em] text-fg-dim",children:[N1(S1,{href:"/wheels",onClick:s,className:"text-fg transition-colors hover:text-accent",children:"\u2190 Keep browsing"}),N1("button",{type:"button",className:"text-fg transition-colors hover:text-accent",children:"Save for later"})]})]})]})]}):null}var yU=["grid-cols-1","grid-cols-2","grid-cols-3"];function Gp({label:e,value:t}){return i0("div",{className:"flex flex-col gap-[3px] bg-bg px-4 py-3.5",children:[N1("span",{className:"font-mono text-[9px] uppercase tracking-[0.26em] text-fg-dim",children:e}),N1("span",{className:"font-display text-[14px] font-medium tracking-[-0.005em] text-fg",children:t})]})}function wU({line:e,tyre:t,onRemove:a,onQtyChange:s}){let{catalog:c,totals:l}=c4(),r=(e.components??[]).reduce((n,h)=>n+(l.freeUnitsByPartNumber[h.partNumber]??0),0),{currency:o,formatMoney:i}=p0();return i0(uo,{children:[i0("article",{className:"grid grid-cols-[96px_1fr] gap-5 border-b border-line px-8 py-6 transition-colors hover:bg-[color-mix(in_oklab,var(--site-surface)_60%,transparent)] max-[640px]:grid-cols-[78px_1fr] max-[640px]:px-[22px] max-[640px]:py-5",children:[N1(Dp,{line:e,catalog:c,tyre:t}),i0("div",{className:"flex min-w-0 flex-col gap-2",children:[i0("div",{className:"flex items-start justify-between gap-3",children:[i0("span",{className:"font-mono text-[9px] uppercase tracking-[0.26em] text-accent",children:["N\xB0 ",e.positionNo," \xB7 ",e.process==="FusionForge\xAE"?i0(uo,{children:["FusionForge",N1(c6,{})]}):e.process]}),N1("span",{className:"whitespace-nowrap font-display text-[16px] font-medium tracking-[-0.015em] text-fg",children:Lm(e,o)===null?c7:i(Lm(e,o),o)})]}),i0("h3",{className:"mt-0.5 font-display text-[22px] font-medium uppercase leading-none tracking-[-0.02em]",children:[e.name.lead,N1("em",{className:"font-serif font-normal italic text-accent tracking-[-0.01em] normal-case",children:e.name.accent})]}),e.config.length>0&&i0("div",{className:"mt-1 flex flex-wrap gap-1.5",children:[e.config.map(n=>N1("span",{className:["border px-2 py-1 font-mono text-[9px] uppercase tracking-[0.18em]",n.gold?"border-[color-mix(in_oklab,var(--accent)_45%,var(--site-line))] text-accent":"border-line text-fg-dim"].join(" "),children:n.label},n.label)),r>0&&i0("span",{className:"border border-accent bg-accent px-2 py-1 font-mono text-[9px] uppercase tracking-[0.18em] text-bg",children:[r,"\xD7 free"]})]}),i0("div",{className:"mt-2.5 flex items-center justify-between gap-3",children:[N1(ja,{value:e.qty,onChange:s,size:"small"}),i0("div",{className:"flex gap-3.5 font-mono text-[10px] uppercase tracking-[0.22em]",children:[N1(S1,{href:e.href??`/wheels/${e.slug}`,className:"text-fg-dim transition-colors hover:text-accent",children:e.href?"View product":"Edit finish"}),N1("button",{type:"button",onClick:a,className:"text-fg-dim transition-colors hover:text-alert",children:"Remove"})]})]})]})]}),e.verifiedFor&&i0("div",{className:"mx-8 -mt-px flex items-start gap-3 border-t-0 px-4 py-3.5 font-display text-[13px] leading-[1.45] text-fg max-[640px]:mx-[22px]",style:{background:"color-mix(in oklab, var(--accent) 8%, transparent)",border:"1px solid color-mix(in oklab, var(--accent) 35%, var(--site-line))",borderTop:"0"},children:[N1("span",{className:"flex-shrink-0 pt-px font-mono text-[10px] uppercase tracking-[0.24em] text-accent",children:"Fits"}),i0("span",{children:["Verified for your ",N1("strong",{className:"font-medium text-accent",children:e.verifiedFor}),". Final torque values shipped with the wheels."]})]})]})}function CU({title:e,sub:t,href:a}){return i0(S1,{href:a,className:"flex items-center justify-between border border-line bg-bg px-3.5 py-3 text-left transition-colors hover:border-accent",children:[i0("span",{className:"flex min-w-0 flex-col gap-[3px]",children:[N1("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap font-display text-[13px] font-medium tracking-[-0.005em] text-fg",children:e}),N1("span",{className:"font-mono text-[9px] uppercase tracking-[0.22em] text-fg-dim",children:t})]}),N1("span",{className:"ml-2 flex h-6 w-6 flex-shrink-0 items-center justify-center font-mono text-[13px] text-accent",style:{borderColor:"color-mix(in oklab, var(--accent) 45%, var(--site-line))",borderWidth:1,borderStyle:"solid"},children:"+"})]})}function kU(e,t,a){let s=e.savings[t];if(s===void 0)return"Buy together";let c=a(s,t);return e.savingIsFrom?`Save from ${c}`:`Save ${c}`}function MU({children:e}){return N1("span",{className:"inline-flex items-center gap-1.5 before:text-[6px] before:text-accent before:content-['\u25CF']",children:e})}function d7({label:e,value:t}){return i0("div",{className:"flex items-center justify-between font-mono text-[11px] uppercase tracking-[0.18em] text-fg-dim",children:[N1("span",{children:e}),N1("strong",{className:"font-display text-[14px] font-normal tracking-[-0.005em] normal-case text-fg",children:t})]})}function SU({content:e}){return i0("div",{className:"flex flex-col items-center justify-center gap-3 px-8 py-20 text-center",children:[N1("span",{className:"font-mono text-[10px] uppercase tracking-[0.3em] text-accent",children:e.emptyKicker}),N1("p",{className:"font-serif text-[16px] italic leading-[1.5] text-fg-dim",children:e.emptyBody}),i0(S1,{href:"/wheels",className:"mt-3 inline-flex items-center gap-3 border border-line px-5 py-3 font-mono text-[11px] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:["Browse the catalog ",N1("span",{className:"text-accent",children:"\u2192"})]})]})}var LU=[{key:"cart",label:"Cart",href:"/?cart=open"},{key:"checkout",label:"Checkout",href:"/checkout"}],AU=Object.fromEntries(LU.map(e=>[e.key,e]));function HS(e){return AU[e]}import{Fragment as FU,jsx as Ge,jsxs as Ka}from"react/jsx-runtime";var HU=Np(()=>import("./EditorPreviewCheckout-URFSPLP6.js"),{ssr:!1});function qp(){let{chromePlaceholder:e,themeFromDocument:t}=V3(),{surface:a}=cw();return e||t||!a||a!=="cart"&&a!=="checkout"?null:a==="checkout"?Ka(FU,{children:[Ge(HU,{}),Ge(FS,{surface:a})]}):Ge(gr,{children:Ka(vr,{preview:!0,children:[Ge($a,{}),Ge(FS,{surface:a})]})})}function FS({surface:e}){let{label:t,href:a}=HS(e);return Ka("div",{style:{position:"fixed",bottom:14,left:"50%",transform:"translateX(-50%)",zIndex:2147483e3,display:"flex",alignItems:"center",gap:8,maxWidth:"calc(100% - 24px)",padding:"5px 6px 5px 13px",borderRadius:999,fontSize:12,fontWeight:600,fontFamily:"system-ui, sans-serif",color:"#334155",background:"rgba(255,255,255,0.94)",border:"1px solid rgba(15,23,42,0.12)",boxShadow:"0 6px 24px rgba(15,23,42,0.18)",pointerEvents:"none"},children:[Ka("span",{style:{whiteSpace:"nowrap"},children:[t," \xB7 preview only"]}),Ka("a",{href:a,target:"_blank",rel:"noopener noreferrer",style:{pointerEvents:"auto",flex:"none",display:"inline-flex",alignItems:"center",gap:5,padding:"4px 11px",borderRadius:999,color:"#fff",background:"#2563eb",textDecoration:"none"},children:["Open live",Ge(a6,{name:"external-link",size:13,rounded:!0})]})]})}import{CategoryIcon as Xs1,CheckIcon as qO,ClockIcon as ex,ColumnsIcon as Js1,DirectionIcon as Qs1,EyeIcon as ec1,ListIcon as tc1,PageIcon as ac1,PlacementIcon as sc1,ScrollPointIcon as cc1,TriggerIcon as lc1}from"efficient-easel/icons";import{useContext as VU,useEffect as _S,useRef as vo,useState as fo}from"react";import{Button as bo}from"efficient-shell/ui";var Ya=class extends Error{constructor(a){super("The storefront forms list could not be loaded.");this.cause=a;this.name="FormsUnavailableError"}},go=null,Wp=null,Up=null;function TU(){go=null,Wp=null,Up=null}function TS(e=!1){let t=N3(),a=i2();return(e||!go||Wp===null&&t!==null||Up!==a)&&(Wp=t,Up=a,go=(t?X1.listForms(t,{siteId:a}):Promise.reject(new Ya)).catch(s=>{throw TU(),s instanceof Ya?s:new Ya(s)})),go}var jp=new Map,PU=9e5,PS=0;function EU(){return PS+=1,`fe-${typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():String(PS)}`}function ES(e,t){e.connected&&e.send("storefront-editor:open-form",{mode:"edit",formId:t})}function VS(e,t){if(!e.connected)return Promise.resolve({status:"closed"});let a=EU();return new Promise(s=>{let c=setTimeout(()=>NS(a,{status:"timeout"}),t.timeoutMs??PU);jp.set(a,l=>{clearTimeout(c),s(l)}),e.send("storefront-editor:open-form",{requestId:a,mode:t.mode,...t.formId?{formId:t.formId}:{}})})}function NS(e,t){let a=jp.get(e);a&&(jp.delete(e),a(t))}function fh1(e,t){NS(e,t?{status:"saved",form:t}:{status:"closed"})}import{jsx as E2,jsxs as U4}from"react/jsx-runtime";var IS="__create-a-new-form__";function NU({value:e,forms:t,loadFailed:a,emptyLabel:s="No form yet"}){let c=t??[],l=e?c.some(m=>m.slug===e):!0,r=t===null&&!a,o={value:"",label:r?"Loading\u2026":a?"Forms couldn\u2019t be loaded":s},i=e&&!l?[{value:e,label:r||a?e:`${e} \u2014 no form with this name`}]:[],n=c.map(m=>({value:m.slug,label:m.is_active?m.title:`${m.title} (switched off)`})),h=r?[]:[{value:IS,label:"Create a new form"}];return[o,...i,...n,...h]}function _U(e){return e===IS?{action:"create"}:{action:"store",slug:e}}function IU({value:e,pickedId:t,forms:a}){if(!e||!t||a.some(c=>c.slug===e))return null;let s=a.find(c=>c.id===t);return s&&s.slug&&s.slug!==e?s.slug:null}function RU(e){let t=["Goes to Storefront \u2192 Forms"],a=(e.notify_email??"").trim();return a&&t.push(`Emails a copy to ${a}`),e.mailing_list_name&&t.push(e.subscribe_mode==="checkbox"?`Joins the \u201C${e.mailing_list_name}\u201D audience, but only when the consent box is ticked`:`Joins the \u201C${e.mailing_list_name}\u201D audience`),e.kind==="account_signup"&&t.push(e.signup_customer_type==="importer"?"Creates a wholesale account":"Creates a retail account"),t}function $p({value:e,onChange:t,label:a="Form",emptyLabel:s}){let c=z4(),l=VU(Sl),r=l?l.capabilities.hasForms:!0,[o,i]=fo(null),[n,h]=fo(!1),[m,p]=fo(!1),[u,g]=fo(!1),d=vo(!0),f=vo(e);f.current=e;let v=vo(t);v.current=t;let z=vo(null),x=(F=!1)=>TS(F).then(T=>{if(d.current){i(T),h(!1);let V=IU({value:f.current,pickedId:z.current,forms:T});V&&v.current(V)}return T},()=>(d.current&&h(!0),[]));_S(()=>(d.current=!0,r&&x(),()=>{d.current=!1}),[r]),_S(()=>r?Qr(()=>{x(!0)}):void 0,[r]);let M=e?(o??[]).find(F=>F.slug===e)??null:null;M?z.current=M.id:e||(z.current=null);let A=!!e&&!M&&o!==null&&!n,B=NU({value:e,forms:o,loadFailed:n,emptyLabel:s}),P=async()=>{p(!0),g(!1);try{let F=await VS(c,{mode:"create"}),T=await x(!0);if(!d.current)return;if(F.status==="timeout"){g(!0);return}if(F.status!=="saved")return;let{form:V}=F;V.slug!==f.current&&v.current(V.slug),T.some(Z=>Z.id===V.id)||x(!0)}finally{d.current&&p(!1)}},D=F=>{let T=_U(F);T.action==="create"?P():(g(!1),t(T.slug))};return r?U4("div",{className:"sf-formpicker",children:[E2(B9,{label:a,options:B,fallback:"",value:e??"",onChange:D,placeholder:"Search forms\u2026"}),u&&E2("p",{className:"sf-formsummary-warn",children:"That didn\u2019t come back \u2014 pick the form from the list, or try again."}),M?U4("div",{className:"sf-blogsource sf-formsummary",children:[U4("div",{children:[E2("div",{className:"sf-formsummary-caption",children:M.fields.length===1?"1 field":`${M.fields.length} fields`}),M.fields.length?E2("ol",{className:"sf-formsummary-fields",children:M.fields.map((F,T)=>E2("li",{children:F.label},F.key||`${F.label}-${T}`))}):E2("p",{className:"es-field-hint sf-hint-keep",children:"This form has no fields yet, so there is nothing for a visitor to fill in."})]}),U4("div",{children:[E2("div",{className:"sf-formsummary-caption",children:"Where the answers go"}),E2("ul",{className:"sf-formsummary-fields",children:RU(M).map(F=>E2("li",{children:F},F))})]}),!M.is_active&&E2("p",{className:"sf-formsummary-warn",children:"This form is switched off, so it won\u2019t appear on the published page. Turn it back on in Storefront \u2192 Forms."}),U4("div",{className:"sf-formsummary-actions",children:[E2(bo,{variant:"secondary",size:"sm",onClick:()=>ES(c,M.id),children:"Edit form \u270E"}),E2(bo,{variant:"secondary",size:"sm",disabled:m,onClick:()=>{P()},children:"New form +"})]}),E2("p",{className:"es-field-hint sf-hint-keep",children:"The questions, the button text and the thank-you message all come from Storefront \u2192 Forms. Edit them there \u2014 this section updates to match."})]}):U4("div",{className:"sf-blogsource sf-formsummary",children:[n?U4("p",{className:"es-field-hint sf-hint-keep",children:["This website\u2019s forms couldn\u2019t be loaded, so there is nothing to choose from yet.",e?` This section still points at \u201C${e}\u201D, and that is unchanged.`:""]}):A&&U4("p",{className:"sf-formsummary-warn",children:["This section points at \u201C",e,"\u201D, and this website has no form with that name. Pick one from the list above, or leave it \u2014 nothing has been changed."]}),U4("div",{className:"sf-formsummary-actions",children:[n&&E2(bo,{variant:"secondary",size:"sm",disabled:m,onClick:()=>{x(!0)},children:"Try again"}),E2(bo,{variant:"secondary",size:"sm",disabled:m,onClick:()=>{P()},children:"New form +"})]}),!n&&E2("p",{className:"es-field-hint sf-hint-keep",children:"Pick a form to show here, or build a new one. Forms are made once in Storefront \u2192 Forms and can be shown on any number of pages."})]})]}):E2("div",{className:"sf-formpicker",children:E2("div",{className:"sf-blogsource sf-formsummary",children:U4("div",{children:[E2("div",{className:"sf-formsummary-caption",children:a}),U4("p",{className:"es-field-hint sf-hint-keep",children:["Forms aren\u2019t available in this editor, so there is nothing to choose here.",e?` This section still points at \u201C${e}\u201D, and that is unchanged.`:""]})]})})})}import{jsx as BU}from"react/jsx-runtime";function H5(e,t){return{type:"custom",render:({value:a,onChange:s})=>BU($p,{value:a,onChange:s,...e?{label:e}:{},...t?{emptyLabel:t}:{}})}}var xo=null,RS=null;function ZU(e,t){xo=e,RS=t}function Vh1(e){ZU(e,null)}function BS(){return xo}function M2(){return RS==="dynamic"||xo===Qm}function ZS(e){return Er(xo??"",e)??"alloy-wheel"}import{createContext as DU,useContext as OU}from"react";import{jsx as GU}from"react/jsx-runtime";var DS=DU(null);function OS({slug:e,children:t}){let a=typeof e=="string"&&e.trim()?e:null;return GU(DS.Provider,{value:a,children:t})}function GS(){return OU(DS)}import{createContext as qU,useContext as WU}from"react";import{jsx as UU}from"react/jsx-runtime";var qS=qU("alloy-wheel");function WS({kind:e,children:t}){return UU(qS.Provider,{value:e??"alloy-wheel",children:t})}function US(){return WU(qS)}import{createContext as jS,useContext as zo}from"react";import{jsx as YU}from"react/jsx-runtime";function jU(e){let t=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").trim().toLowerCase();return t?t[0].toUpperCase()+t.slice(1):e}var $U=/^\d{4}-\d{2}-\d{2}$/;function $S(e){return e?e.schema?.length?e.schema.filter(t=>typeof t?.key=="string"&&t.key in e.fields):Object.entries(e.fields).flatMap(([t,a])=>{let s=Array.isArray(a)?"images":typeof a=="string"?$U.test(a)?"date":"text":null;return s?[{key:t,label:jU(t),kind:s}]:[]}):[]}function yo(e,{firstField:t=!1}={}){if(!e)return[];let a=$S(e).filter(s=>s.kind==="images");return(t?a.slice(0,1):a).flatMap(s=>{let c=e.fields[s.key];return Array.isArray(c)?c.flatMap(l=>{let r=l?.url;if(typeof r!="string"||!r)return[];let o=l.alt;return[{url:r,alt:typeof o=="string"?o:""}]}):[]})}function KU(e){let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.getTime())?e:t.toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"})}function KS(e){return e?$S(e).flatMap(t=>{if(t.kind!=="text"&&t.kind!=="date")return[];let a=e.fields[t.key];return typeof a!="string"||!a.trim()?[]:[{label:t.label,value:t.kind==="date"?KU(a):a}]}):[]}var g7="product",Kp=jS(null);function Yp(e){let t=e?.recordType;return typeof t=="string"&&t.trim()||g7}function wo(e){let t=e?.appState?.data?.root;return Yp(t?.props)!==g7}var YS=jS(g7);function XS({type:e,children:t}){return YU(YS.Provider,{value:e,children:t})}function Co(e){let t=zo(Kp),a=zo(YS);return t?t.type!==g7:e&&a!==g7}var ko={type:"sample",key:"sample",title:"Record title",fields:{first:"A detail of this record",second:"Another detail",third:"A third"},value:void 0,schema:[{key:"first",label:"First detail",kind:"text"},{key:"second",label:"Second detail",kind:"text"},{key:"third",label:"Third detail",kind:"text"}]},JS=4;function Mo(){return zo(Kp)}function QS(e){let t=zo(Kp);return t!==null&&t.type===e?t:null}import{createContext as JU,useContext as QU}from"react";var Xp="heroBullets",Xa="\xB7",Ja={bullets:[{label:"Free shipping",detail:"USA, UK, AUS"},{label:"Lifetime warranty",detail:"structural"}]};function eL(e){return e.detail?`${e.label} ${Xa} ${e.detail}`:e.label}function XU(e){let t=e.trim();if(!t)return null;let a=t.indexOf(Xa);return a<0?{label:t,detail:""}:{label:t.slice(0,a).trim(),detail:t.slice(a+Xa.length).trim()}}function tL(e){let t=(e??{})[Xp];return Array.isArray(t)?{bullets:t.map(s=>XU(typeof s=="string"?s:my(s?.text,""))).filter(s=>s!==null)}:Ja}import{jsx as ej}from"react/jsx-runtime";var aL=JU(Ja);function sL({content:e,children:t}){return ej(aL.Provider,{value:e,children:t})}function cL(){return QU(aL)}var u2={text:"Button label",href:"#"},L={eyebrow:"Eyebrow",heading:"Main heading",accent:"Highlight line",body:"Add a sentence or two of supporting copy.",button:"Button label",link:"#",sectionHeading:"Section heading",slideName:"Slide name",boxName:"Box name",headingAccent:"Section heading *here.*",sectionNumber:"Section number",imageCaption:"Image caption",bookingConfirmation:"Thanks \u2014 we'll email you to confirm.",imageMeta:"Image meta",label:"Label",value:"Value",viewAll:"View all",date:"Month DD, YYYY",category:"Category"};var t3={Series:"transparent",StatsParagraph:"transparent",TimelineTrack:Ly,Stats:void 0};import{jsx as f7}from"react/jsx-runtime";import{jsx as aj}from"react/jsx-runtime";var So="sf-card",V2={min:0,max:90,step:5,fallback:0,unit:"%"},v7=[{label:"Even",value:"even"},{label:"From the bottom",value:"bottom"}],tj="68%",D3={desktop:20,phone:20,side:40,sidePhone:24},lL="sf-box-sides",rL={min:0,max:200,step:10};function qe(e){return typeof e=="string"&&e.trim()!==""}function Lo(e,t){let a=typeof e=="number"?e:Number.parseFloat(String(e??""));if(!Number.isFinite(a)||a<=0)return null;let s=(Math.min(V2.max,Math.max(V2.min,a))/100).toFixed(2);return t!=="bottom"?{background:`rgba(0,0,0,${s})`}:{background:`linear-gradient(0deg, rgba(0,0,0,${s}) 0%, rgba(0,0,0,0) ${tj})`}}function Ao(e,t){let a={"top-left":["start","start"],"top-center":["center","start"],"top-right":["end","start"],left:["start","center"],center:["center","center"],right:["end","center"],"bottom-left":["start","end"],"bottom-center":["center","end"],"bottom-right":["end","end"]},[s,c]=a[e]??a.center,[l,r]=t==="column"?[c,s]:[s,c],o={start:"justify-start",center:"justify-center",end:"justify-end"},i={start:"items-start",center:"items-center",end:"items-end"};return`${o[l]} ${i[r]}`}var Ho={ParagraphsA:{top:60,bottom:80},StatsParagraph:{top:120,bottom:120},Timeline:{top:120,bottom:120},Footprint:{top:120,bottom:120},TimelineTrack:{top:120,bottom:120},TitleWithButtons:{top:140,bottom:140},ProcessSteps:{top:120,bottom:120},DetailRows:{top:100,bottom:100}},oL=new Set(Object.keys(Ho)),sj=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),iL=new Set(["ProductGrid"]);function Jp(e,t){let a=e.render;e.render=s=>{if(t?.(s))return a(s);let c=N9(s.sectionPaddingTop,s.sectionPaddingBottom,s.sectionPaddingTopPhone,s.sectionPaddingBottomPhone),l=a(s);return c?aj("div",{className:c.className,style:c.style,children:l}):l}}var nL={name:"sectionPadding",applies:(e,t,a)=>t.isSection(e)&&!sj.has(e)&&!!a&&typeof a.render=="function",panel(e,t,a){oL.has(t)||iL.has(t)||(e.fields={...e.fields,...a.spacingFields({phone:!0})})},draw(e,t){if(oL.has(t)){let a=e.render,s=Ho[t];e.render=c=>{let l=Qz(c,s);return a({...c,padTop:l.top,padBottom:l.bottom})};return}if(iL.has(t)){Jp(e);return}Jp(e,t==="Flex"?a=>qe(a.bgImage):void 0)}},cj=["Heading","Text"],hL={name:"blockPadding",applies:(e,t,a)=>cj.includes(e)&&!!a&&typeof a.render=="function",panel(e,t,a){e.fields={...e.fields,...a.spacingFields({phone:!0})}},draw(e){Jp(e)}};import{jsx as We,jsxs as lj}from"react/jsx-runtime";import{useEasel as rj}from"efficient-easel/easel";import{SettingsDrill as oj}from"efficient-easel/panel";import{default as mL}from"efficient-easel/screen/components/AddBlockRow";import{default as pL}from"efficient-easel/screen/components/AddChildRow";import{SlotChildActionsProvider as hm1,useSlotChildActions as uL}from"efficient-easel/screen/components/SlotChildActionsContext";function ij({parent:e,parentType:t,label:a,rowName:s,onSelectChild:c,onAddChild:l,nestDepth:r=0}){let o=km(t,r);if(!o)return null;let{slot:i,choices:n,spec:h}=o,m=String(e.props.id),p=`${m}:${i}`,u=Array.isArray(e.props[i])?e.props[i]:[],g=h?.addBlocked?.(u)??null,d=h?.notice?.(u)??null;return lj("div",{className:"sf-slot-rows",children:[a?We($9,{label:`${a} \xB7 ${u.length}`}):null,d?We("p",{className:"sf-note",children:d}):null,u.map((f,v)=>We(oj,{name:s(f),onOpen:()=>c(p,v,String(f.props.id),t)},String(f.props.id??`${p}-${v}`))),n?We(mL,{choices:n,onPick:f=>l(m,i,f,u.length,t)}):h.fixed?null:We(pL,{label:h.addLabel,blocked:g,onAdd:()=>l(m,i,h.childType,u.length,t)})]})}function nj(e,t){return km(t)?.source==="footer"?e.blockRowName:e.childRowName}function dL({parentType:e,label:t}){let{appState:a,selectedItem:s}=rj(r=>r),c=uL();if(!c||!s||s.type!==e)return null;let l=e===Ox?rl(a?.data,String(s.props.id)):0;return We(ij,{parent:s,parentType:e,label:t,rowName:nj(c,e),onSelectChild:c.selectChild,onAddChild:c.addChild,nestDepth:l})}var gL="grayscale(1) contrast(1.03)",vL="Black and white";function hj(e){return e===!0?{filter:gL}:{}}function mj(e){let{filter:t}=hj(e);return t?{style:{filter:t}}:{}}var Qa="sf-photo-grayscale",pj=`@media (hover:hover){.${Qa}{filter:${gL};transition:filter 160ms ease}.${Qa}:hover{filter:none}}@media (hover:hover) and (prefers-reduced-motion:reduce){.${Qa}{transition:none}}`;function Ue(e,t){return typeof e=="boolean"?e?mj(!0):{}:t===!0?{className:Qa}:{}}function fL(e){return e===!0?{[Qa]:pj}:{}}import{AlignLeftIcon as gj,BlackAndWhiteIcon as vj,ContrastIcon as fj,HeightIcon as bj,TypeIcon as xj}from"efficient-easel/icons";var uj=["eyebrow","heading","title","body","intro","button","link","label","number","value","name","price","date","caption","note","quote","tag","meta"],dj=new Set(uj);function bL(e){let t=e.toLowerCase().split(/[^a-z]+/).filter(Boolean);for(let a=t.length-1;a>=0;a-=1)if(dj.has(t[a]))return t[a];return null}var n6=e=>X2(e,s1("Height",f7(bj,{}),re.min,re.max,re.step,re.fallback,re.unit)),S4={ctaText:H("Button",u2.text),ctaHref:H1("Button link")},F5=()=>b1("Alignment",f7(gj,{}),[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}],"left"),Fo=()=>b1("Tone",f7(fj,{}),[{label:"Default",value:"default"},{label:"Muted",value:"dim"}],"default"),n3=e=>f5({...Ho[e],keys:{top:"padTop",bottom:"padBottom"},group:!1}),c2=(e,t)=>({type:"custom",render:()=>f7(dL,{parentType:e,label:t})});function zj(e){let{photographyGrayscale:t}=V3();return c1(vL,t===!0,f7(vj,{})).render(e)}function je(){return{type:"custom",render:e=>f7(zj,{...e})}}var U1=Object.keys(b5("full"));function $e(e){let t=bL(e);return t?f7(e4,{noun:t}):f7(xj,{})}import{createContext as yj,useContext as wj}from"react";import{jsx as b7,jsxs as Qp}from"react/jsx-runtime";function eu(e){return M9(e)??void 0}var tu=yj({}),xL=3;function au({tag:e,name:t,desc:a,href:s,imageSrc:c,imageLabel:l,price:r}){let{showPrice:o,cardStyle:i,partStyles:n,editing:h}=wj(tu),m=i==="bordered"?" border border-line":i==="shadow"?" shadow-[0_8px_30px_rgba(0,0,0,0.12)]":"",p=eu(c),u=d=>h?{[d8]:d}:{},g=d=>Xl(n?.[g8(d)]?.role,ow[d],hl);return Qp(S1,{href:s||"#",className:`sf-card group relative block w-full min-w-0 overflow-hidden bg-surface-2${m}`,children:[b7("div",{className:"relative z-0 aspect-[4/5] transition-transform duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)] group-hover:scale-[1.04]",children:b7(C0,{label:l||"collection.jpg",src:p})}),b7("div",{className:"pointer-events-none absolute inset-0 z-[1] [background:rgba(0,0,0,0.4)] group-hover:[background:rgba(0,0,0,0.3)] max-[800px]:hidden",style:{transition:"none"}}),Qp("div",{className:"absolute inset-x-8 bottom-8 z-[2] flex flex-col gap-2.5 text-overlay-fg max-[800px]:relative max-[800px]:inset-auto max-[800px]:p-6 max-[800px]:gap-3 max-[800px]:text-fg",children:[e&&b7("span",{...u("tag"),style:g("tag"),className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.25em] opacity-70",children:C(e)}),t&&b7("h3",{...u("name"),style:g("name"),className:"font-heading2 text-[length:min(var(--size-headingMedium,48px),var(--sf-heading-max,9999px))] font-medium leading-none tracking-[-0.03em] max-[800px]:text-[length:min(var(--size-headingMedium,36px),var(--sf-heading-max,9999px))]",children:typeof t=="string"?j(t,!1):t}),a&&b0(a).map((d,f)=>b7("p",{...u("body"),style:g("body"),className:"max-w-[420px] text-[length:var(--size-body,14px)] leading-[1.5] opacity-80",children:C(d)},f)),o&&r&&b7("span",{...u("price"),style:g("price"),className:"font-mono text-[length:var(--size-label,15px)] tracking-[0.05em] text-accent",children:C(r)}),Qp("span",{...u("link"),style:g("link"),className:"mt-2 inline-flex items-center gap-2.5 font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.2em]",children:["Explore",b7("span",{className:"transition-transform group-hover:translate-x-[3px]","aria-hidden":!0,children:"\u2192"})]})]})]})}import{createContext as kj,useCallback as Mj,useContext as Sj,useEffect as yL,useRef as Lj,useState as cu}from"react";import{useState as Cj}from"react";function To(e){switch(e){case"tall":return"aspect-[3/4]";case"wide":return"aspect-[2/1]";case"landscape":return"aspect-[4/3]";case"portrait":return"aspect-[4/5]";case"auto":return"";default:return"aspect-square"}}function zL(e){return e==="below"}import{jsx as j4,jsxs as Ke}from"react/jsx-runtime";function su({build:e,hiddenMobile:t,alwaysShowOverlay:a,forceHover:s,index:c,total:l,ratio:r,captionPlace:o}){let[i,n]=Cj(!1),h=zL(o),m=Ke("div",{className:["sf-card group relative overflow-hidden bg-surface-2",To(r),t?"max-[800px]:hidden":""].join(" "),children:[Ke("div",{className:["absolute inset-0 z-[1] flex items-center justify-center transition-[transform,filter,opacity] duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",s?"scale-[1.06] opacity-0 [filter:brightness(0.5)]":"group-hover:scale-[1.06] group-hover:opacity-0 group-hover:[filter:brightness(0.5)]"].join(" "),children:[j4(C0,{label:e.imageLabel,src:e.imageSrc}),j4("div",{className:"absolute inset-0",style:{background:"rgba(0,0,0,0.35)"}})]}),j4("div",{className:["absolute inset-0 z-[1] flex items-center justify-center transition-[transform,filter,opacity] duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",s?"opacity-100 scale-[1.06] [filter:brightness(0.5)]":"opacity-0 group-hover:scale-[1.06] group-hover:opacity-100 group-hover:[filter:brightness(0.5)]"].join(" "),style:{background:"var(--site-surface)"},children:e.detailSrc&&j4(E3,{src:e.detailSrc,alt:"",fill:!0,sizes:"(max-width: 800px) 100vw, (max-width: 1500px) 33vw, 25vw",loading:"lazy",className:"absolute inset-0 z-[3] object-cover",style:{display:i?"none":"block"},onError:()=>n(!0)})}),c!=null&&l!=null&&Ke("span",{className:"pointer-events-none absolute top-3 right-3 z-[3] font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] max-[800px]:top-2.5 max-[800px]:right-2.5",style:{color:"rgba(245,241,232,0.7)"},children:[String(c).padStart(2,"0")," / ",String(l).padStart(2,"0")]}),e.process&&j4("span",{className:["pointer-events-none absolute top-3 left-3 z-[3] inline-block max-w-[60%] truncate font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] text-accent max-[800px]:top-2.5 max-[800px]:left-2.5","transition-opacity duration-300 ease-out",a||s?"opacity-100":"opacity-0 group-hover:opacity-100 max-[800px]:opacity-100"].join(" "),children:Y1(e.process)}),Ke("div",{className:["absolute inset-0 z-[2] flex flex-col justify-end gap-1 p-6","transition-[opacity,transform] duration-300 ease-out",a||s?"opacity-100 translate-y-0":"opacity-0 translate-y-2 group-hover:opacity-100 group-hover:translate-y-0 max-[800px]:opacity-100 max-[800px]:translate-y-0","max-[800px]:p-3.5"].join(" "),style:{color:"var(--overlay-fg)",background:"linear-gradient(180deg, transparent 40%, rgba(10,10,10,.85) 100%)"},children:[e.car&&j4("div",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.2em] text-accent max-[800px]:text-[length:var(--size-label,11px)] max-[800px]:tracking-[0.15em]",children:e.car}),e.wheel&&j4("div",{className:"font-heading3 text-[length:var(--size-headingSmall,22px)] font-medium leading-[1.05] tracking-[-0.02em] max-[800px]:text-[length:var(--size-body,16px)]",children:e.wheel}),e.finish&&j4("div",{className:"mt-1.5 flex gap-3.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.12em]",style:{color:"rgba(245,241,232,0.7)"},children:j4("span",{children:Y1(e.finish)})})]})]});return h?Ke("div",{className:t?"max-[800px]:hidden":"",children:[m,Ke("div",{className:"bg-surface px-3.5 pt-3 pb-3.5",children:[e.wheel&&j4("div",{className:"font-display text-[length:var(--size-body,15px)] font-medium leading-[1.25] tracking-[-0.01em] text-fg",children:e.wheel}),(e.finish||e.car)&&j4("div",{className:"mt-0.5 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] text-fg-dim",children:Y1(e.finish||e.car)})]})]}):m}import{Fragment as Ye,jsx as J0,jsxs as h3}from"react/jsx-runtime";var es=kj({}),ts="data-gallery-grid",lu="data-gallery-tile";function Aj(e,t){let[a,s]=cu(null);return yL(()=>{let c=e.current,l=c?.closest(`[${ts}]`);if(!c||!l)return;let r=()=>{let i=Array.from(l.querySelectorAll(`[${lu}]`)),n=i.indexOf(c),h=n>=0?{index:n+1,total:i.length}:null;s(m=>m?.index===h?.index&&m?.total===h?.total?m:h)};if(r(),!t)return;let o=new MutationObserver(r);return o.observe(l,{childList:!0,subtree:!0}),()=>o.disconnect()},[e,t]),a}var wL=[{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},{image:"",href:"#",process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"}];function Hj(e,t){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}function Fj(e){let t=(e.photos??[]).map(l=>l?.src).filter(l=>!!l),a=e.image||t[0]||"",s=[a,...t].filter(l=>!!l),c=Hj(e.name,"gallery-item");return{car:e.eyebrow??"",wheel:e.name??"",process:e.process??"",finish:e.meta??"",imageLabel:`${c}.jpg`,detailLabel:`${c}-detail.jpg`,imageSrc:a||void 0,detailSrc:t[0]||a||void 0,photos:s,href:e.href}}function as({editing:e=!1,previewHover:t,ratio:a,captionPlace:s,...c}){let{galleryHref:l="/gallery",submitHref:r="/contact",previewHover:o}=Sj(es),i=Fj(c),n=i.photos??(i.imageSrc?[i.imageSrc]:[]),h=Lj(null),m=Mj(x=>{h.current=x},[]),p=Aj(h,e),u=e&&(!!t||!!o),[g,d]=cu(!1),[f,v]=cu(0);yL(()=>{if(!g)return;let x=M=>{M.key==="Escape"?d(!1):M.key==="ArrowLeft"&&n.length>1?v(A=>(A-1+n.length)%n.length):M.key==="ArrowRight"&&n.length>1&&v(A=>(A+1)%n.length)};window.addEventListener("keydown",x);let k=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",x),document.body.style.overflow=k}},[g,n.length]);let z=J0(su,{build:i,forceHover:u,index:p?.index,total:p?.total,ratio:a,captionPlace:s});return h3(Ye,{children:[e?J0("div",{ref:m,[lu]:"",className:"block w-full text-left",children:z}):J0("button",{ref:m,[lu]:"",type:"button","aria-label":`Open ${i.car||"build"} on ${i.wheel||"wheel"}`,onClick:()=>{v(0),d(!0)},className:"block w-full cursor-pointer text-left focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",children:z}),g&&(()=>{let x=n[f]??i.imageSrc??"",k=()=>v(A=>(A-1+n.length)%n.length),M=()=>v(A=>(A+1)%n.length);return J0("div",{role:"dialog","aria-modal":"true","aria-label":`${i.car} on ${i.wheel}`,onClick:()=>d(!1),className:"fixed inset-0 z-[100] flex items-center justify-center p-6 backdrop-blur-[8px] max-[700px]:p-3",style:{background:"color-mix(in oklab, var(--bg) 78%, transparent)"},children:h3("div",{onClick:A=>A.stopPropagation(),className:"relative grid w-[min(1800px,100%)] max-h-[calc(100vh-48px)] grid-cols-[1.4fr_1fr] overflow-hidden border border-line bg-bg max-[1100px]:grid-cols-1 max-[1100px]:overflow-auto",style:{boxShadow:"0 60px 120px -20px rgba(0,0,0,0.7)"},children:[J0("button",{type:"button",onClick:()=>d(!1),"aria-label":"Close popup",className:"absolute right-[24px] top-[24px] z-[5] flex h-[56px] w-[56px] items-center justify-center border border-line font-mono text-[length:var(--size-label,21px)] text-fg-dim transition-colors hover:border-accent hover:text-fg",style:{background:"color-mix(in oklab, var(--bg) 70%, transparent)"},children:"\u2715"}),h3("div",{className:"relative flex min-h-[690px] items-center justify-center overflow-hidden bg-surface-2 max-[1100px]:min-h-[450px]",children:[x&&J0("img",{src:x,alt:`${i.car} \u2014 ${f+1} of ${n.length}`,className:"block h-full max-h-[88vh] w-full object-cover"},x),n.length>1&&h3(Ye,{children:[J0("button",{type:"button","aria-label":"Previous photo",onClick:k,className:"absolute left-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"\u25C1"}),J0("button",{type:"button","aria-label":"Next photo",onClick:M,className:"absolute right-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"\u25B7"}),h3("span",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 border border-fg-dim/30 bg-overlay-scrim/50 px-4 py-1.5 font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em] text-fg-dim backdrop-blur-[4px]",children:[f+1," / ",n.length]})]})]}),h3("div",{className:"flex flex-col gap-[30px] px-[60px] py-[72px] max-[1100px]:px-9 max-[1100px]:py-[54px]",children:[i.process&&J0("span",{className:"font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.3em] text-accent",children:C(i.process)}),i.wheel&&J0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(42px,4.5vw,60px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.025em]",children:j(i.wheel,!1)}),i.car&&h3("div",{className:"font-heading3 text-[length:var(--size-headingSmall,27px)] leading-[1.4] text-fg",children:["on ",J0("em",{className:"font-serif font-normal italic text-accent tracking-[-0.01em]",children:C(i.car,!0)})]}),h3("dl",{className:"mt-3 grid grid-cols-[auto_1fr] gap-x-7 gap-y-[18px] border-y border-line py-[30px] font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em]",children:[i.wheel&&h3(Ye,{children:[J0("dt",{className:"text-fg-dim",children:"Wheel"}),J0("dd",{className:"text-fg",children:C(i.wheel)})]}),i.process&&h3(Ye,{children:[J0("dt",{className:"text-fg-dim",children:"Process"}),J0("dd",{className:"text-fg",children:C(i.process)})]}),i.finish&&h3(Ye,{children:[J0("dt",{className:"text-fg-dim",children:"Finish"}),J0("dd",{className:"text-fg",children:C(i.finish)})]}),i.car&&h3(Ye,{children:[J0("dt",{className:"text-fg-dim",children:"Vehicle"}),J0("dd",{className:"text-fg",children:C(i.car)})]})]}),h3("div",{className:"mt-auto flex flex-col gap-3.5 pt-6",children:[h3(S1,{href:i.href||"/wheels",onClick:()=>d(!1),className:"group flex items-center justify-between gap-6 border border-btn bg-btn px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-btn-ink transition-colors hover:border-fg hover:bg-fg",children:[J0("span",{children:"View product"}),J0("span",{className:"transition-transform group-hover:translate-x-[6px]",children:"\u2192"})]}),h3(S1,{href:l,onClick:()=>d(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[J0("span",{children:"See more builds"}),J0("span",{children:"\u2192"})]}),h3(S1,{href:r,onClick:()=>d(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[J0("span",{children:"Submit your build"}),J0("span",{children:"\u2192"})]})]})]})]})})})()]})}import{createContext as Vj,useContext as Nj,useEffect as Po,useId as _j,useMemo as Ij,useState as N2}from"react";var Tj=14,Pj=3;function ru(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function Ej(e,t){let a=new Date(`${e}T00:00:00`);return a.setDate(a.getDate()+t),ru(a)}async function CL(e,t,a={}){let s=a.days??Tj,c=a.read??f8.getAvailability,l=0,r=0;for(let o=0;o<s;o++){if(a.signal?.aborted)return{outcome:"unreadable"};let i=Ej(t,o);try{let n=await c(e,i);if(l=0,r++,n.slots.length>0)return{outcome:"found",date:i,availability:n}}catch{if(l++,l>=Pj)return{outcome:"unreadable"}}}return r===s?{outcome:"noneInWindow",days:s}:{outcome:"unreadable"}}import{jsx as Zj}from"react/jsx-runtime";var kL=Vj(null);function x7(){let e=Nj(kL);if(!e)throw new Error("useBookingForm must be used inside <BookingFormProvider>");return e}var ou=[{id:"example-1",name:"Example service",durationMinutes:45,price:"80.00",description:"What this appointment includes, in a sentence."},{id:"example-2",name:"Second example",durationMinutes:30,price:"0",description:""}];function Rj(e){return{timezone:"UTC",slots:[`${e}T09:00:00.000Z`,`${e}T10:30:00.000Z`,`${e}T13:00:00.000Z`].map(t=>({start:t}))}}var iu={bookingNumber:"EXAMPLE-0000",service:"Example service",startAt:"2026-01-01T00:00:00.000Z",timezone:"UTC",customerTimezone:"",manageToken:"example"};function Bj(e,t){return e&&t?.length===0}function ML({editing:e=!1,previewConfirmation:t=!1,children:a}){let s=_j(),c=Ij(()=>ru(new Date),[]),[l,r]=N2(),[o,i]=N2(""),[n,h]=N2(""),[m,p]=N2(c),[u,g]=N2(c),[d,f]=N2(!1),[v,z]=N2(null),[x,k]=N2(),[M,A]=N2(""),[B,P]=N2(""),[D,F]=N2(""),[T,V]=N2(""),[Z,_]=N2(""),[N,t1]=N2(()=>Am()),[E,q]=N2(null),[K,W]=N2(!1),[r1,x1]=N2(!1),[Y,e1]=N2(null),[g1,U]=N2("");Po(()=>{U(Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC")},[]),Po(()=>{let s0=!1;return f8.listServices().then(c0=>{s0||(r(c0.results),i(c0.currency),h(K1=>K1||c0.results[0]?.id||""))}).catch(()=>{s0||r([])}),()=>{s0=!0}},[]),Po(()=>{if(d||!n)return;let s0={aborted:!1};return A(""),k(void 0),e1(null),z(null),W(!0),CL(n,c,{signal:s0}).then(c0=>{if(!s0.aborted){if(c0.outcome==="found"){p(c0.date),g(c0.date),k(c0.availability);return}z(c0.outcome==="noneInWindow"?`No times are available in the next ${c0.days} days.`:"We couldn't load available times. Please try again.")}}).finally(()=>{s0.aborted||W(!1)}),()=>{s0.aborted=!0}},[d,n,c]),Po(()=>{if(!d||!n||!m)return;let s0=!1;return A(""),k(void 0),e1(null),z(null),W(!0),f8.getAvailability(n,m).then(c0=>{s0||(k(c0),c0.slots.length===0&&z("No times are available on this date."))}).catch(()=>{s0||z("We couldn't load available times. Please try again.")}).finally(()=>{s0||W(!1)}),()=>{s0=!0}},[m,d,n]);let p1=l?.find(s0=>s0.id===n),f1=p1?.depositAmountDue!=null,F0=!!(!e&&!r1&&p1&&M&&B.trim()&&D.trim()&&!f1);async function T0(s0){if(s0.preventDefault(),!(!F0||!p1)){x1(!0),e1(null);try{let c0=await f8.create({serviceId:p1.id,start:M,customer:{name:B.trim(),email:D.trim(),phone:T.trim()},notes:Z.trim(),idempotencyKey:N,customerTimezone:g1});q(c0),t1(Am())}catch(c0){e1(c0 instanceof G4&&c0.status===409?"That time was just booked. Choose another available time.":"Your appointment wasn't submitted. Please check your details and try again."),c0 instanceof G4&&c0.status===409&&(A(""),f8.getAvailability(p1.id,m).then(k).catch(()=>{}))}finally{x1(!1)}}}let A1=Bj(e,l);return Zj(kL.Provider,{value:{fieldPrefix:s,editing:e,services:A1?ou:l,currency:A1?"AUD":o,serviceId:A1?ou[0].id:n,setServiceId:h,service:A1?ou[0]:p1,requiresPayment:A1?!1:f1,date:m,earliestDate:u,setDate:p,setDateTouched:f,availability:A1?Rj(m):x,loadingSlots:A1?!1:K,noSlotsMessage:v,selectedStart:A1?`${m}T09:00:00.000Z`:M,setSelectedStart:A,customerTimezone:g1,name:B,setName:P,email:D,setEmail:F,phone:T,setPhone:V,notes:Z,setNotes:_,confirmation:E??(t?iu:null),submitting:r1,error:Y,canSubmit:A1?!1:F0,handleSubmit:T0,sample:!!A1},children:a})}import{jsx as nu,Fragment as Dj,jsxs as Oj}from"react/jsx-runtime";var Gj="sf-button group inline-flex items-center justify-center gap-2.5 border px-[22px] py-4 font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.2em] transition-colors",SL={primary:"border-btn bg-btn text-btn-ink hover:border-btn-2 hover:bg-btn-2",ghost:"border-current bg-transparent hover:bg-white/10"};function a3(e){let{variant:t="primary",arrow:a,className:s,style:c,children:l,href:r,newTab:o,...i}=e,n=`${Gj} ${SL[t]??SL.primary} ${s??""}`,h=Oj(Dj,{children:[l,a!==null&&nu("span",{"aria-hidden":!0,className:"transition-transform group-hover:translate-x-[3px]",children:a??"\u2192"})]});return r?nu(t0,{href:r,className:n,style:c,...o?{target:"_blank",rel:"noopener noreferrer"}:{},children:h}):nu("button",{type:"button",className:n,style:c,...i,children:h})}import{jsx as L0,jsxs as M3}from"react/jsx-runtime";var ss="w-full border-2 border-line bg-bg px-4 py-3.5 font-[family-name:var(--bk-value-font,var(--font-display))] text-[length:var(--bk-value-size,17px)] text-fg outline-none transition-colors placeholder:text-fg-dim hover:border-fg-dim focus:border-accent";function qj(e,t){let a=Number(e);if(a===0)return"Free";try{return new Intl.NumberFormat(void 0,{style:"currency",currency:t}).format(a)}catch{return`${t} ${e}`}}function LL(e,t){try{return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit",timeZone:t}).format(new Date(e))}catch{return new Date(e).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}}function AL(e,t){try{return new Intl.DateTimeFormat(void 0,{weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",timeZone:t,timeZoneName:"short"}).format(new Date(e))}catch{return new Date(e).toLocaleString()}}var cs="font-[family-name:var(--bk-name-font,var(--font-mono))] text-[length:var(--bk-name-size,12px)]";function hu({number:e,children:t}){return M3("div",{className:"mb-4 flex items-center gap-3",children:[L0("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-full border border-line font-[family-name:var(--bk-step-font,var(--font-mono))] text-[length:var(--bk-step-size,11px)] font-semibold text-fg-dim",children:e}),L0("h3",{className:"font-[family-name:var(--bk-step-font,var(--font-mono))] text-[length:var(--bk-step-size,12px)] font-semibold uppercase tracking-[0.2em] text-fg",children:t})]})}function Eo({eyebrow:e,heading:t,intro:a}){return M3("div",{className:"mb-10 max-w-[760px]",children:[(e??"").trim()&&L0("p",{className:"mb-4 font-mono text-[12px] font-semibold uppercase tracking-[0.24em] text-accent",children:e}),(t??"").trim()&&L0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.98] tracking-[-0.025em] text-fg max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:t}),(a??"").trim()&&L0("p",{className:"mt-5 max-w-[660px] font-display text-[17px] leading-[1.65] text-fg-dim",children:a})]})}function Vo({style:e}={}){let{fieldPrefix:t,services:a,currency:s,serviceId:c,setServiceId:l,requiresPayment:r,date:o,earliestDate:i,setDate:n,setDateTouched:h,availability:m,loadingSlots:p,noSlotsMessage:u,selectedStart:g,setSelectedStart:d,customerTimezone:f}=x7();return a?M3("div",{className:"flex flex-col gap-9",style:e,children:[M3("div",{children:[L0(hu,{number:"01",children:"Choose a service"}),L0("div",{className:"grid gap-3 sm:grid-cols-2",children:a.map(v=>{let z=v.id===c;return M3("button",{type:"button","aria-pressed":z,onClick:()=>l(v.id),className:`min-h-11 border p-4 text-left transition-colors ${z?"border-accent bg-accent/10":"border-line bg-bg hover:border-fg-dim"}`,children:[L0("span",{className:"block font-[family-name:var(--bk-name-font,var(--font-display))] text-[length:var(--bk-name-size,18px)] font-medium text-fg",children:v.name}),M3("span",{className:"mt-1 block font-[family-name:var(--bk-value-font,var(--font-mono))] text-[length:var(--bk-value-size,11px)] uppercase tracking-[0.14em] text-fg-dim",children:[v.durationMinutes," min \xB7 ",qj(v.price,s)]}),v.description&&L0("span",{className:"mt-3 block font-[family-name:var(--bk-note-font,var(--font-display))] text-[length:var(--bk-note-size,14px)] leading-[1.5] text-fg-dim",children:v.description})]},v.id)})}),r&&L0("p",{className:"mt-3 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,11px)] uppercase tracking-[0.14em] text-alert",role:"alert",children:"This service requires an upfront payment and cannot be booked through this form yet."})]}),M3("div",{children:[L0(hu,{number:"02",children:"Choose a date and time"}),L0(D2,{separate:!0,htmlFor:`${t}-date`,label:"Date",required:!0,labelFace:cs,children:L0("input",{id:`${t}-date`,type:"date",min:i,value:o,onChange:v=>{h(!0),n(v.target.value)},className:ss,required:!0})}),L0("div",{className:"mt-4 grid grid-cols-2 gap-2 sm:grid-cols-3 min-[1200px]:grid-cols-4",role:"group","aria-label":"Available appointment times",children:p?L0("p",{className:"col-span-full py-3 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,11px)] uppercase tracking-[0.18em] text-fg-dim",children:"Loading times\u2026"}):m?.slots.length?m.slots.map(v=>M3("button",{type:"button","aria-pressed":g===v.start,onClick:()=>d(v.start),className:`min-h-11 border px-3 py-2 font-[family-name:var(--bk-value-font,var(--font-mono))] text-[length:var(--bk-value-size,12px)] font-semibold uppercase tracking-[0.12em] transition-colors ${g===v.start?"border-accent bg-accent text-bg":"border-line bg-bg text-fg hover:border-accent"}`,children:[L0("span",{className:"block",children:LL(v.start,f||m.timezone)}),f&&f!==m.timezone&&M3("span",{className:"mt-0.5 block text-[9px] font-normal tracking-[0.08em] opacity-70",children:[LL(v.start,m.timezone)," business"]})]},v.start)):u?L0("p",{className:"col-span-full py-3 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,11px)] uppercase tracking-[0.18em] text-fg-dim",role:"status",children:u}):null}),m?.timezone&&M3("p",{className:"mt-3 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,10px)] uppercase tracking-[0.16em] text-fg-dim",children:["Times shown in ",f||m.timezone,f&&f!==m.timezone?` \xB7 business timezone ${m.timezone}`:""]})]})]}):null}function No({buttonLabel:e,style:t}){let{fieldPrefix:a,editing:s,name:c,setName:l,email:r,setEmail:o,phone:i,setPhone:n,notes:h,setNotes:m,submitting:p,error:u,canSubmit:g}=x7();return M3("div",{className:"sf-card border border-line bg-bg p-5 min-[640px]:p-7",style:t,children:[L0(hu,{number:"03",children:"Your details"}),M3("div",{className:"flex flex-col gap-4",children:[L0(D2,{separate:!0,htmlFor:`${a}-name`,label:"Name",required:!0,labelFace:cs,children:L0("input",{id:`${a}-name`,type:"text",autoComplete:"name",value:c,onChange:d=>l(d.target.value),className:ss,required:!0})}),L0(D2,{separate:!0,htmlFor:`${a}-email`,label:"Email",required:!0,labelFace:cs,children:L0("input",{id:`${a}-email`,type:"email",inputMode:"email",autoComplete:"email",value:r,onChange:d=>o(d.target.value),className:ss,required:!0})}),L0(D2,{separate:!0,htmlFor:`${a}-phone`,label:"Phone",labelFace:cs,children:L0("input",{id:`${a}-phone`,type:"tel",inputMode:"tel",autoComplete:"tel",value:i,onChange:d=>n(d.target.value),className:ss})}),L0(D2,{separate:!0,htmlFor:`${a}-notes`,label:"What would you like to cover?",labelFace:cs,children:L0("textarea",{id:`${a}-notes`,rows:4,value:h,onChange:d=>m(d.target.value),className:`${ss} resize-y`})})]}),u&&L0("p",{className:"mt-4 font-[family-name:var(--bk-note-font,var(--font-mono))] text-[length:var(--bk-note-size,11px)] uppercase tracking-[0.16em] text-alert",role:"alert",children:u}),L0(a3,{type:s?"button":"submit",disabled:!g,arrow:null,className:"mt-6 w-full disabled:cursor-not-allowed disabled:opacity-50",children:p?"Submitting\u2026":(e??"").trim()||"Book appointment"})]})}function _o({successMessage:e}){let{confirmation:t,customerTimezone:a}=x7();return t?M3("div",{className:"sf-card max-w-[760px] border border-line bg-bg p-6 min-[640px]:p-9",role:"status",children:[M3("p",{className:"font-mono text-[12px] font-semibold uppercase tracking-[0.22em] text-accent",children:["Request received \xB7 ",t.bookingNumber]}),L0("h3",{className:"mt-4 font-display text-[28px] font-medium uppercase text-fg",children:t.service}),L0("p",{className:"mt-2 font-display text-[17px] text-fg-dim",children:AL(t.startAt,t.customerTimezone||a||t.timezone)}),t.customerTimezone&&t.timezone!==t.customerTimezone&&M3("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-[0.16em] text-fg-dim",children:["Business time: ",AL(t.startAt,t.timezone)]}),(e??"").trim()&&L0("p",{className:"mt-5 max-w-[620px] font-serif text-[18px] italic leading-[1.6] text-fg-dim",children:e}),L0(a3,{href:`/book/${encodeURIComponent(t.manageToken)}`,newTab:t!==iu,variant:"ghost",className:"mt-7",children:"Manage booking"})]}):null}var Io=["step","name","value","note"],mu={step:"Step",name:"Name",value:"Value",note:"Note"},Ro={step:"styleStep",name:"styleName",value:"styleValue",note:"styleNote"},HL={step:{font:"--bk-step-font",size:"--bk-step-size"},name:{font:"--bk-name-font",size:"--bk-name-size"},value:{font:"--bk-value-font",size:"--bk-value-size"},note:{font:"--bk-note-font",size:"--bk-note-size"}};function Wj(e){return typeof e=="string"&&u5.includes(e)?e:null}var Uj={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0,widthPx:900};function FL(e,t){let a={};for(let s of Io){let c=Wj(e[Ro[s]]);if(!c)continue;let l=T9({role:c},Uj,t);l.fontFamily&&(a[HL[s].font]=l.fontFamily),l.fontSize&&(a[HL[s].size]=l.fontSize)}return a}import{jsx as Xe}from"react/jsx-runtime";var TL=["head","booking","details","confirm"],PL={head:"Head",booking:"Booking",details:"Your details",confirm:"Confirmation"};function pu({region:e,eyebrow:t,heading:a,intro:s,buttonLabel:c,successMessage:l,...r}){let{confirmation:o,services:i}=x7(),n=FL(r);return e==="head"?Xe("div",{className:"min-[960px]:col-span-2",style:n,children:Xe(Eo,{eyebrow:t,heading:a,intro:s})}):e==="confirm"?o?Xe("div",{className:"min-[960px]:col-span-2",style:n,children:Xe(_o,{successMessage:l})}):null:o||!i||i.length===0?null:e==="booking"?Xe(Vo,{style:n}):e==="details"?Xe(No,{buttonLabel:c,style:n}):null}import{jsx as K0,Fragment as jj,jsxs as L4}from"react/jsx-runtime";var L8="solid",uu=[{label:"Solid",value:"solid"},{label:"Outlined",value:"outlined"}];function EL(e){return R2(uu,L8,e)}var du="sf-secnum-outline",VL="font-display text-[length:var(--size-headingMedium,clamp(48px,6vw,96px))] font-medium leading-[0.8] tracking-[-0.02em]",NL=`@supports (-webkit-text-stroke: 1px currentColor){.${du}{color:var(--site-surface-2);-webkit-text-stroke:1px var(--site-line)}}`;var ls=(e,t=!1)=>typeof e=="string"?j(e,t):e,Je=(e,t=!1)=>typeof e=="string"?C(e,t):e;function Q1({num:e,title:t,link:a,logo:s,description:c,accent:l,accentNum:r,numStyle:o=L8,look:i="standard",titleAccent:n,accentTracking:h="-0.02em",spaceBelow:m,rowGap:p,descriptionSize:u,className:g="",eyebrowLook:d=rr}){let f=m??(i==="editorial"?"mb-[60px]":"");if(i==="editorial"){let A=!!t||!!n;return L4("header",{className:`${f} grid grid-cols-[auto_1fr_auto] items-end gap-10 border-b border-line pb-8 max-[1100px]:grid-cols-1 max-[1100px]:gap-3.5 ${g}`.trim(),children:[e&&(typeof e=="string"?K0(V1,{text:e,className:"pb-2"}):K0("span",{className:"pb-2",children:e})),A&&L4("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5.5vw,80px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:[t,n&&L4(jj,{children:[" ",K0("em",{className:"font-serif font-normal italic text-accent",style:{letterSpacing:h},children:n})]})]}),c&&K0("p",{className:"max-w-[360px] pb-1 text-right font-display text-[length:var(--size-body,14px)] leading-[1.5] text-fg-dim max-[1100px]:max-w-full max-[1100px]:text-left",children:c})]})}if(i==="simple"){let A=`${f} ${g}`.trim();return L4("div",{className:A||void 0,children:[e&&(typeof e=="string"?K0(V1,{text:e,look:d,className:"mb-4 block"}):K0("span",{className:"mb-4 block",children:e})),t&&K0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:ls(t)})]})}if(i==="statement"){let A=`${f} ${g}`.trim();return L4("div",{className:A||void 0,children:[e&&(typeof e=="string"?K0(V1,{text:e,look:d,className:"mb-4 block"}):K0("span",{className:"mb-4 block",children:e})),t&&K0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5vw,72px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em] text-fg",children:ls(t,!0)})]})}if(i==="natural"){let A=`flex max-w-[680px] flex-col ${p??"gap-5"} ${f} ${g}`.replace(/\s+/g," ").trim();return L4("div",{className:A,children:[e&&(typeof e=="string"?K0(V1,{text:e,look:d}):K0("span",{children:e})),t&&K0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium leading-[1.05] tracking-[-0.03em] max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:ls(t)}),c&&K0("p",{className:`${u??"text-[length:var(--size-body,16px)]"} leading-[1.6] opacity-85`,children:c})]})}if(i==="essay"){let A=`${f} ${g}`.trim();return L4("div",{className:A||void 0,children:[e&&(typeof e=="string"?K0(V1,{text:e,look:d,className:"mb-4 block"}):K0("span",{className:"mb-4 block",children:e})),t&&K0("h2",{className:"font-heading2 text-[length:var(--sf-heading-max,var(--size-headingMedium,38px))] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-none tracking-[-0.02em] text-fg max-[800px]:text-[length:var(--size-headingSmall,28px)]",children:ls(t)})]})}let v=!!c||!!a,z=!!t,x=EL(o)==="outlined",k="font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.3em]",M=null;if(e)if(x)M=K0("span",{className:`${VL} text-fg-dim ${du}`,children:Je(e)});else if(r&&!l&&typeof e=="string"){let A=e.indexOf("/"),B=A===-1?e:e.slice(0,A),P=A===-1?"":e.slice(A);M=L4("span",{className:k,children:[K0("span",{className:"text-accent",children:Je(B)}),P&&K0("span",{className:"text-fg-dim",children:Je(P)})]})}else M=K0("span",{className:`${k} ${l?"text-accent":"text-fg-dim"}`,children:Je(e)});return L4("div",{className:"mb-16 grid grid-cols-[auto_1fr_auto] items-end gap-10 border-b border-line pb-6 max-[800px]:mb-9 max-[800px]:grid-cols-1 max-[800px]:gap-3 max-[800px]:pb-5",children:[x&&e&&K0("style",{children:NL}),L4("div",{className:"flex flex-col items-start gap-3",children:[s?.src&&K0("img",{src:H2(s.src),alt:s.alt,className:"h-8 w-auto object-contain"}),M]}),z&&K0("h2",{className:l?"font-heading2 text-[length:min(var(--size-headingMedium,clamp(36px,5vw,64px)),var(--sf-heading-max,9999px))] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-[0.95] tracking-[-0.025em]":"font-heading2 text-[length:min(var(--size-headingMedium,56px),var(--sf-heading-max,9999px))] [font-weight:var(--sf-heading-weight,500)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-none tracking-[-0.03em] whitespace-pre-line max-[800px]:text-[length:min(var(--size-headingMedium,36px),var(--sf-heading-max,9999px))] max-[800px]:leading-[1]",children:ls(t)}),v&&L4("div",{className:"flex flex-col items-end gap-3 max-[800px]:items-start",children:[c&&K0("p",{className:"max-w-[340px] font-display text-[length:var(--size-body,14px)] leading-[1.5] text-fg-dim text-right max-[800px]:max-w-full max-[800px]:text-left",children:Je(c)}),a&&L4(t0,{href:a.href,className:"inline-flex items-center gap-2 whitespace-nowrap font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.2em] text-fg-dim transition-colors hover:text-fg",children:[Je(a.text),K0("span",{"aria-hidden":!0,children:"\u2192"})]})]})]})}import{jsx as A4,jsxs as rs}from"react/jsx-runtime";function $j(e){return e.type==="textarea"||e.type==="select"||e.type==="checkbox"}function _L({eyebrow:e,title:t}){return rs("div",{className:"flex flex-col gap-4",children:[e&&A4(V1,{text:e,scaled:!1}),t&&A4("h2",{className:"font-display text-[min(clamp(40px,5vw,72px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:j(t,!0)})]})}function Bo({body:e,buttonLabel:t,consent:a,form:s,submission:c,showForm:l,resolving:r,editing:o}){return rs("div",{className:"flex flex-col gap-7",children:[e&&b0(e).map((i,n)=>A4("p",{className:"max-w-[480px] font-display text-[16px] leading-[1.6] text-fg-dim",children:C(i)},n)),l&&(s?c.done?A4("p",{role:"status",className:"max-w-[480px] font-[family-name:var(--sb-thanks-font,var(--font-serif))] text-[length:var(--sb-thanks-size,17px)] italic leading-[1.6] text-fg-dim",children:Re(s)}):rs("form",{className:"grid grid-cols-2 gap-2",onSubmit:c.handleSubmit,children:[s.fields.map(i=>{let n=["border border-line bg-transparent px-4 py-3.5 font-[family-name:var(--sb-field-font,var(--font-mono))] text-[length:var(--sb-field-size,14px)] tracking-[0.1em] text-fg outline-none focus:border-accent",$j(i)?"col-span-2":""].join(" ");return i.type==="checkbox"?rs("label",{className:"col-span-2 flex items-start gap-3 font-[family-name:var(--sb-tick-font,var(--font-mono))] text-[length:var(--sb-tick-size,12px)] uppercase tracking-[0.18em] text-fg-dim",children:[A4(p7,{field:i,value:c.valueOf(i.key),onChange:h=>c.set(i.key,h),className:"mt-0.5 size-4 accent-accent"}),rs("span",{children:[i.label,i.required?A4("span",{className:"text-accent",children:" *"}):null]})]},i.key):A4(p7,{field:i,value:c.valueOf(i.key),onChange:h=>c.set(i.key,h),rows:4,placeholder:i.placeholder||i.label,className:i.type==="textarea"?`${n} resize-y`:n},i.key)}),A4(Be,{value:c.honeypot,onChange:c.setHoneypot}),c.error&&A4("p",{role:"alert",className:"col-span-2 font-mono text-[12px] uppercase tracking-[0.18em] text-alert",children:c.error}),t&&A4("button",{type:o?"button":"submit",disabled:c.submitting,className:"col-span-2 cursor-pointer bg-btn px-6 py-4 font-mono text-[14px] uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg hover:text-bg disabled:cursor-wait disabled:opacity-60",children:c.submitting?"Sending\u2026":C(t)})]}):A4("p",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim",children:r?"Loading form\u2026":"Choose a form in the inspector, under Form \u2014 until then this form is hidden on the live page and nothing can be submitted."})),l&&a&&A4("span",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim/70",children:C(a)})]})}var Zo=["field","tick","thanks"],gu={field:"Form rows",tick:"Tick label",thanks:"Thank-you message"},Do={field:"styleField",tick:"styleTick",thanks:"styleThanks"},IL={field:{font:"--sb-field-font",size:"--sb-field-size"},tick:{font:"--sb-tick-font",size:"--sb-tick-size"},thanks:{font:"--sb-thanks-font",size:"--sb-thanks-size"}};function Kj(e){return typeof e=="string"&&u5.includes(e)?e:null}var Yj={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0,widthPx:900};function RL(e,t){let a={};for(let s of Zo){let c=Kj(e[Do[s]]);if(!c)continue;let l=T9({role:c},Yj,t);l.fontFamily&&(a[IL[s].font]=l.fontFamily),l.fontSize&&(a[IL[s].size]=l.fontSize)}return a}import{jsx as Oo}from"react/jsx-runtime";var BL=["head","form"],ZL={head:"Head",form:"Form"};function vu({region:e,eyebrow:t,title:a,body:s,buttonText:c,consent:l,formSlug:r,form:o,editing:i=!1,...n}){let h=S5(r,o),m=m7({form:h,formSlug:r,editing:i}),p=RL(n);return e==="head"?Oo("div",{style:p,children:Oo(Q1,{look:"statement",num:t,title:a})}):Oo("div",{style:p,children:Oo(Bo,{body:s??"",buttonLabel:c??"",consent:l??"",form:h,submission:m,showForm:!!h||i,resolving:h===void 0,editing:i})})}var Xj={AppointmentBooking:{slot:"boxes",childType:"BookingBox",addLabel:"Add box",fixed:!0,seeds:()=>TL.map(e=>({region:e,name:PL[e]})),addBlocked:()=>"A Booking Form is these three boxes. They cannot be added to or removed.",skipSeed:e=>e.layout!=="boxes"},SubmitBuild:{slot:"boxes",childType:"SubmitBox",addLabel:"Add box",fixed:!0,seeds:()=>BL.map(e=>({region:e,name:ZL[e]})),addBlocked:()=>"A Submit-a-build section is these two boxes. They cannot be added to or removed.",skipSeed:e=>e.layout!=="boxes"},Collections:{slot:"cards",childType:"CollectionCard",addLabel:"Add card",seeds:()=>Array.from({length:xL},()=>({collection:null}))},ProductGrid:{slot:"products",childType:"ProductRef",addLabel:"Add product",seeds:()=>[{code:""},{code:""},{code:""}],legacy:e=>Array.isArray(e.design_codes)?e.design_codes.map(t=>t?.code).filter(t=>!!t).map(t=>({code:t})):[]},GalleryB:{slot:"items",childType:"GalleryItem",addLabel:"Add image",seeds:()=>wL.map(e=>({...e})),legacy:e=>Array.isArray(e.cards)?e.cards.map(t=>({...t})):[]}};qx(Xj);function Qe(e,t){let a={};for(let s of Object.keys(e))a[s]={...e[s],...t[s]};return a}import{jsx as Jj}from"react/jsx-runtime";import{OpacityIcon as Qj}from"efficient-easel/icons";var DL={fields:{_gContent:b("Content"),eyebrow:H("Eyebrow","Limited release"),title:O("Heading","Banner headline"),body:O("Body","A line or two of supporting copy."),_gBackground:b("Background image"),imageSrc:G1("Image","image/*"),overlay:s1("Overlay",Jj(Qj,{}),0,100,5,60,"%"),_gButton:b("Button"),...S4,_gLayout:b("Layout")}};import{jsx as a$}from"react/jsx-runtime";import{jsx as os,jsxs as fu,Fragment as e$}from"react/jsx-runtime";import{Fragment as t$}from"react";function OL({items:e,meta:t,editing:a=!1}){let s=(e??[]).filter(l=>l?.label?.trim()),c=s.length>0?s:a?[{label:"Breadcrumb"}]:[];return c.length===0&&!t?null:fu("nav",{className:"flex items-center gap-4 border-b border-line px-[var(--sf-site-gutter,40px)] py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg-dim max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-4",children:[c.map((l,r)=>{let o=r===c.length-1;return fu(t$,{children:[r>0&&os("span",{className:"opacity-40",children:"/"}),l.href&&!o?os(t0,{href:l.href,className:"hover:text-fg",children:Z0(l.label)}):os("span",{className:o?"text-fg":void 0,children:Z0(l.label)})]},r)}),t&&fu(e$,{children:[os("span",{className:"opacity-40",children:"\xB7"}),os("span",{children:C(t)})]})]})}function $4(e,t,a){return e||(a?.isEditing?t:void 0)}function y1(e,t,a){let s=Array.isArray(e)?e:[];return s.length?s:a?.isEditing?t:[]}function y(e,t,a){let s=F2(e);if(!s.hidden)return $4(s.text,t,a)}function Q0(e,t,a){return F2(e).hidden?"":y(e,t,a)}function O3(e,t,a){return{text:y(e,u2.text,a),href:t||u2.href}}var bu={meta:"Trailing note"},s$=[{label:"Home",href:"/"},{label:"Section",href:""}],GL={label:"Breadcrumb",defaultProps:{items:[],meta:""},render:({items:e,meta:t,puck:a})=>a$(OL,{items:y1(e,s$,a),meta:y(t,bu.meta,a),editing:a?.isEditing})};var qL={fields:{_gContent:b("Content"),items:{type:"array",label:"Crumbs",arrayFields:{label:G("Label"),href:J2(G("Link"))},getItemSummary:e=>e?.label||"Crumb"},meta:H("Trailing note",bu.meta)}};import{jsx as l$}from"react/jsx-runtime";function WL(e){return typeof e=="boolean"?e:!0}import{ButtonArrowIcon as r$}from"efficient-easel/icons";var UL={fields:{label:G("Button"),href:H1("Button link"),_gStyle:b("Style"),variant:{type:"radio",options:[{label:"Primary",value:"primary"},{label:"Ghost",value:"ghost"}]},arrow:c1("Arrow",!0,l$(r$,{})),align:F5()}};import{jsx as KL}from"react/jsx-runtime";import{ColumnsIcon as p$,StylesIcon as u$}from"efficient-easel/icons";import{jsx as h$}from"react/jsx-runtime";import{jsx as et,Fragment as o$,jsxs as xu}from"react/jsx-runtime";var i$="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] py-[72px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",n$="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-0 pb-[72px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]";function jL({look:e,eyebrow:t,title:a,items:s,columns:c,omitHead:l=!1,editing:r=!1}={}){let o=Math.min(4,Math.max(2,c??3)),i=(s??[]).filter(h=>r||(h.title??"").trim()||(h.body??"").trim()),n=!!(t??"").trim()||!!(a??"").trim();return!r&&!n&&i.length===0?null:et("section",{className:"relative z-[2] bg-surface",children:xu("div",{className:l?n$:i$,children:[l?null:xu(o$,{children:[(t??"").trim()&&et(V1,{text:t??"",look:e,className:"mb-4 block"}),(a??"").trim()&&et("h2",{className:"mb-9 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:mb-7 max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:j(a??"",!1)})]}),i.length>0&&et("div",{className:"sf-card grid grid-cols-1 gap-px border border-line bg-line min-[700px]:[grid-template-columns:repeat(var(--cd-cols),minmax(0,1fr))]",style:{"--cd-cols":String(o)},children:i.map((h,m)=>xu("div",{className:"bg-bg p-8 max-[800px]:p-7",children:[et("div",{className:"mb-3 font-heading3 text-[length:var(--size-headingSmall,20px)] font-medium uppercase tracking-[0.02em] text-fg",children:C((h.title??"").trim()||"Card title")}),et("p",{className:"text-[length:var(--size-body,15px)] leading-[1.6] text-fg-dim",children:C((h.body??"").trim()||"A short line about this card.")})]},m))})]})})}var is={eyebrow:"Label",title:"Section *heading.*"},m$=[{title:"Card title one",body:"A short line about this card."},{title:"Card title two",body:"A short line about this card."},{title:"Card title three",body:"A short line about this card."}],$L={label:"Cards",defaultProps:{eyebrow:"",title:"",items:[],columns:3},render:e=>{let t=D1(e.headPlacement)==="own-box",a=s=>t?void 0:s;return h$(jL,{look:s4(e.eyebrowLook,"Cards"),eyebrow:a(y(e.eyebrow,is.eyebrow,e.puck)),title:a(y(e.title,is.title,e.puck)),omitHead:t,items:y1(e.items,m$,e.puck),columns:e.columns,editing:e.puck?.isEditing})}};var YL={fields:{_gContent:b("Content"),eyebrow:H("Eyebrow",is.eyebrow),eyebrowLook:d1("Eyebrow style",KL(u$,{}),[...y4],e7("Cards")),title:O("Heading",is.title),items:{type:"array",label:"Cards",arrayFields:{title:v1("Card title"),body:E1("Card body")},defaultItemProps:{title:"",body:""},getItemSummary:e=>e?.title||e?.body||"Card"},_gStyle:b("Style"),columns:s1("Columns",KL(p$,{}),2,4,1,3)},resolveFields:(e,{fields:t,parent:a})=>O1(W1(t,a,U1),e.props.headPlacement,B1.Cards.headRows)};import{jsx as d$}from"react/jsx-runtime";import{StickyIcon as g$}from"efficient-easel/icons";var XL={fields:{tabs:{type:"array",label:"Tabs",arrayFields:{label:G("Label"),count:G("Count")},getItemSummary:e=>e?.label?`${e.label}${e.count?` \xB7 ${e.count}`:""}`:"Tab"},activeTab:J2(G("Active tab","All")),_gLinks:b("Links"),links:{type:"array",label:"Right links",arrayFields:{label:G("Label"),href:J2(G("Link"))},getItemSummary:e=>e?.label||"Link"},_gStyle:b("Style"),sticky:c1("Stick under header",!0,d$(g$,{}))}};import{jsx as y$}from"react/jsx-runtime";import{StylesIcon as w$}from"efficient-easel/icons";import{jsx as x$}from"react/jsx-runtime";import{jsx as l2,jsxs as K4}from"react/jsx-runtime";function zu(e){return Number.isInteger(e)?String(e):String(Math.round(e*10)/10)}var JL=[100,70,46,30,19,12];function QL(e){return`color-mix(in srgb, var(--accent) ${JL[e%JL.length]}%, var(--bg))`}function v$({data:e,suffix:t}){let a=Math.max(...e.map(s=>s.value),0)||1;return l2("div",{className:"flex w-full flex-col gap-6",children:e.map((s,c)=>K4("div",{children:[K4("div",{className:"mb-2 flex items-baseline justify-between gap-4",children:[l2("span",{className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] text-fg/60",children:C(s.label)}),K4("span",{className:"font-display text-[length:var(--size-body,16px)] font-medium text-fg",children:[zu(s.value),t]})]}),l2("div",{className:"h-[10px] border border-line bg-bg",children:l2("div",{className:"h-full bg-accent",style:{width:`${Math.max(s.value/a*100,s.value===0?0:2)}%`}})})]},c))})}function f$({data:e,suffix:t}){let a={l:42,r:42,t:36,b:38},s=640-a.l-a.r,c=300-a.t-a.b,l=Math.max(...e.map(h=>h.value),0)||1,r=e.length>1?s/(e.length-1):0,o=e.map((h,m)=>({x:a.l+(e.length>1?m*r:s/2),y:a.t+c-h.value/l*c})),i=o.map((h,m)=>`${m===0?"M":"L"}${h.x},${h.y}`).join(" "),n=`${i} L${o[o.length-1].x},${a.t+c} L${o[0].x},${a.t+c} Z`;return K4("svg",{viewBox:"0 0 640 300",className:"w-full",role:"img","aria-hidden":!0,children:[[.25,.5,.75,1].map(h=>l2("line",{x1:a.l,x2:640-a.r,y1:a.t+c*(1-h),y2:a.t+c*(1-h),stroke:"var(--site-line)",strokeWidth:"1"},h)),l2("line",{x1:a.l,x2:640-a.r,y1:a.t+c,y2:a.t+c,stroke:"var(--site-line)",strokeWidth:"1.5"}),l2("path",{d:n,fill:"var(--accent)",opacity:"0.13"}),l2("path",{d:i,fill:"none",stroke:"var(--accent)",strokeWidth:"2.5"}),o.map((h,m)=>K4("g",{children:[l2("circle",{cx:h.x,cy:h.y,r:"4",fill:"var(--accent)"}),K4("text",{x:h.x,y:h.y-12,textAnchor:"middle",className:"font-display",fontSize:"14",fill:"var(--fg)",children:[zu(e[m].value),t]}),l2("text",{x:h.x,y:288,textAnchor:"middle",className:"font-mono",fontSize:"10",letterSpacing:"0.1em",fill:"var(--fg)",opacity:"0.55",children:e[m].label.toUpperCase()})]},m))]})}function b$({data:e,suffix:t}){let a=e.reduce((o,i)=>o+i.value,0)||1,s=80,c=2*Math.PI*s,l=0,r=e.map((o,i)=>{let n=o.value/a,h={frac:n,dash:Math.max(n*c-3,0),off:l,ink:QL(i)};return l+=n*c,h});return K4("div",{className:"flex w-full flex-wrap items-center justify-center gap-10",children:[l2("svg",{viewBox:"0 0 200 200",className:"w-[220px] max-w-full -rotate-90",role:"img","aria-hidden":!0,children:r.map((o,i)=>l2("circle",{cx:"100",cy:"100",r:s,fill:"none",stroke:o.ink,strokeWidth:"34",strokeDasharray:`${o.dash} ${c-o.dash}`,strokeDashoffset:-o.off},i))}),l2("ul",{className:"flex min-w-[200px] flex-1 flex-col gap-3",children:e.map((o,i)=>K4("li",{className:"flex items-baseline gap-3",children:[l2("span",{"aria-hidden":!0,className:"h-[10px] w-[10px] flex-shrink-0 rotate-45",style:{background:QL(i)}}),l2("span",{className:"flex-1 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.12em] text-fg/60",children:C(o.label)}),l2("span",{className:"font-display text-[length:var(--size-body,15px)] font-medium text-fg",children:t?`${zu(o.value)}${t}`:`${Math.round(o.value/a*100)}%`})]},i))})]})}function eA({eyebrow:e,title:t,body:a,chartStyle:s,items:c,valueSuffix:l,caption:r,editing:o=!1}={}){let i=(l??"").trim()===""?"":l??"",n=(c??[]).map(u=>({label:(u.label??"").trim(),value:parseFloat(u.value??"")})).filter(u=>o?!0:u.label&&Number.isFinite(u.value)).map(u=>({label:u.label||"\u2014",value:Number.isFinite(u.value)?u.value:0})),h=!!(e??"").trim()||!!(t??"").trim();if(!o&&!h&&n.length===0)return null;let m=s??"bars",p=n.length===0?null:m==="line"&&n.length>1?l2(f$,{data:n,suffix:i}):m==="donut"?l2(b$,{data:n,suffix:i}):l2(v$,{data:n,suffix:i});return l2("section",{className:"relative z-[2] border-y border-line bg-surface",children:K4("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] items-center gap-14 px-[var(--sf-site-gutter,40px)] py-[76px] min-[960px]:[grid-template-columns:minmax(0,5fr)_minmax(0,7fr)] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[K4("div",{children:[(e??"").trim()&&l2("span",{className:"inline-block bg-accent px-3.5 py-1.5 font-mono text-[length:var(--size-label,12px)] font-semibold uppercase tracking-[0.16em] text-bg",children:C(e??"")}),(t??"").trim()&&l2("h2",{className:"mt-5 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-[1.04] tracking-[-0.02em] text-fg max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:j(t??"",!1)}),(a??"").trim()&&l2("p",{className:"mt-5 max-w-[46ch] text-[length:var(--size-body,15px)] leading-relaxed text-fg/65",children:a})]}),K4("div",{children:[p,(r??"").trim()&&l2("p",{className:"mt-4 font-mono text-[length:var(--size-label,10px)] uppercase tracking-[0.14em] text-fg/40",children:r})]})]})})}var ns={eyebrow:"By the numbers",title:`A picture worth
|
|
23
23
|
*a thousand rows.*`},z$=[{label:"Before",value:"9"},{label:"After",value:"3"},{label:"With us",value:"1"}],tA={label:"Chart",defaultProps:{eyebrow:"",title:"",body:"",items:[],caption:"",chartStyle:"bars",valueSuffix:""},render:({eyebrow:e,title:t,body:a,items:s,caption:c,chartStyle:l,valueSuffix:r,puck:o})=>x$(eA,{eyebrow:y(e,ns.eyebrow,o),title:y(t,ns.title,o),body:a,items:y1(s,z$,o),chartStyle:l,valueSuffix:r,caption:c,editing:o?.isEditing})};var aA={fields:{_gContent:b("Content"),eyebrow:H("Chip label",ns.eyebrow),title:O("Heading",ns.title),body:O("Body",""),items:{type:"array",label:"Data points",arrayFields:{label:v1("Label"),value:G("Value")},defaultItemProps:{label:"",value:""},getItemSummary:e=>[e?.label,e?.value].filter(Boolean).join(" \xB7 ")||"Point"},caption:H("Caption","Illustrative example"),_gStyle:b("Style"),chartStyle:d1("Chart style",y$(w$,{}),[{label:"Bars (comparison / funnel)",value:"bars"},{label:"Line (trend)",value:"line"},{label:"Donut (split of a whole)",value:"donut"}],"bars"),valueSuffix:H("Value suffix","%")}};import{jsx as Z$}from"react/jsx-runtime";import{jsx as L1,Fragment as Cu,jsxs as H4}from"react/jsx-runtime";import{useId as M$,useState as S$}from"react";import{InspectorUpLevel as ms}from"efficient-easel/chrome";import{useEasel as L$}from"efficient-easel/easel";import{ListField as rA}from"efficient-easel/fields";import{SettingsField as oA}from"efficient-easel/panel";import{ClockIcon as sA,ContrastIcon as A$,GlobeIcon as H$,LinkIcon as F$,LocationIcon as T$,PhoneIcon as P$,SquareIcon as E$,TypeIcon as ku}from"efficient-easel/icons";var C$=["tall","square","wide"],k$="tall";function Go(e){return C$.includes(String(e??""))?String(e):k$}var r2={sectionNumber:"\xB7 Locations",heading:"Our *locations.*",tagline:"Visit us in person \u2014 find your nearest studio below.",galleryKicker:"Gallery",galleryHint:"Hover to see in colour \xB7 click to jump",apiKey:"",mapId:"",mapTheme:"auto"},hs=[{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
|
|
24
24
|
Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""},{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
|
|
25
25
|
Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""}];function qo(e){let t=String(e??"").split(" \xB7 ");return{state:(t[0]??"").trim(),country:(t[1]??"").trim()}}var A8="other",v0={routingNumber:"02 \xB7 Routing",routingTagline:"What can we help you with?",groups:[{id:"fitment",eyebrow:"A \xB7 Label",title:"Group one",copy:"Short description of this routing group.",response:"< 48h"},{id:"trade",eyebrow:"B \xB7 Label",title:"Group two",copy:"Short description of this routing group.",response:"< 24h"},{id:"press",eyebrow:"C \xB7 Label",title:"Group three",copy:"Short description of this routing group.",response:"< 48h"},{id:"order",eyebrow:"D \xB7 Label",title:"Group four",copy:"Short description of this routing group.",response:"< 24h"}],formNumber:"03 \xB7 Message",formHeading:"Send *a note.*",metaLines:["Encrypted in transit","Stored 12 months"],showOther:!0,otherLabel:"Other",otherNoteTitle:"No matching team",otherNoteBody:"Tell us what you need in the message field below \u2014 we'll route it to whoever can help.",buttonText:"Send Message \u2192",consent:"By submitting, you agree to our privacy policy. We never share contact details with third parties.",channels:[{label:"Team one",value:"team-one@email.com",href:"mailto:team-one@email.com",sub:"Detail \xB7 Detail",groupId:"fitment"},{label:"Team two",value:"team-two@email.com",href:"mailto:team-two@email.com",sub:"Detail \xB7 Detail",groupId:"trade"},{label:"Team three",value:"team-three@email.com",href:"mailto:team-three@email.com",sub:"Detail \xB7 Detail",groupId:"press"},{label:"Team four",value:"team-four@email.com",href:"mailto:team-four@email.com",sub:"Detail \xB7 Detail",groupId:"order"},{label:"Phone",value:"+1 (000) 000-0000",href:"tel:+10000000000",sub:"Mon\u2013Fri \xB7 9:00\u201318:00"}]};function yu(e){return wl(e)}function V$(e){let t=[];return e.forEach((a,s)=>{let c=Q6(a),l=t.find(r=>r.key===c);l||(l={key:c,name:String(a?.groupName??""),indices:[]},t.push(l)),l.indices.push(s)}),t}function wu({children:e}){return L1("div",{style:{fontSize:11,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--fg-dim, #999)",margin:"14px 0 6px"},children:e})}var iA={width:"100%",height:32,textAlign:"left",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"0 12px",fontSize:12,border:"1px solid var(--border-strong, #d0d0d0)",borderRadius:6,background:"transparent",color:"inherit",cursor:"inherit"},N$={padding:0,border:"none",background:"none",font:"inherit",fontSize:12,color:"var(--sf-accent, #2563eb)",cursor:"pointer"},nA={...N$,color:"#d85a30"};function h6({label:e,value:t,placeholder:a,textarea:s,icon:c,onChange:l,onBlur:r,onKeyDown:o}){let i=M$();return L1(oA,{label:e,icon:c??L1(ku,{}),htmlFor:i,children:s?L1("textarea",{id:i,value:t,placeholder:a,onChange:n=>l(n.target.value)}):L1("input",{id:i,type:"text",value:t,placeholder:a,onChange:n=>l(n.target.value),onBlur:r,onKeyDown:o})})}var _$=[{label:"Auto",value:"auto"},{label:"Dark",value:"dark"},{label:"Light",value:"light"}],I$=[{label:"Tall (3:4)",value:"tall"},{label:"Square",value:"square"},{label:"Wide (2:1)",value:"wide"}];function cA({label:e,icon:t,options:a,value:s,onChange:c}){return L1(oA,{label:e,icon:t,children:L1("div",{role:"group","aria-label":e,style:{display:"flex",gap:4,flex:1},children:a.map(l=>{let r=s===l.value;return L1("button",{type:"button","aria-pressed":r,onClick:()=>c(l.value),style:{flex:1,padding:"6px 8px",fontSize:12,borderRadius:6,cursor:"pointer",border:`1px solid ${r?"var(--sf-accent, #2563eb)":"var(--border-strong, #d0d0d0)"}`,background:r?"var(--sf-accent, #2563eb)":"transparent",color:r?"#fff":"inherit",fontWeight:r?500:400},children:l.label},l.value)})})})}function lA({props:e,setSection:t,headOnly:a}){let s=r=>String(e[r]??""),c=e.mapTheme||r2.mapTheme,l=r2;return H4(Cu,{children:[!a&&L1(wu,{children:"Section"}),L1(h6,{label:"Section number",value:s("sectionNumber"),placeholder:l.sectionNumber,onChange:r=>t({sectionNumber:r})}),L1(h6,{label:"Heading",textarea:!0,value:s("heading"),placeholder:l.heading,onChange:r=>t({heading:r})}),L1(h6,{label:"Body",textarea:!0,value:s("tagline"),placeholder:l.tagline,onChange:r=>t({tagline:r})}),a?null:H4(Cu,{children:[L1(wu,{children:"City strip"}),L1(h6,{label:"Eyebrow",value:s("galleryKicker"),placeholder:l.galleryKicker,onChange:r=>t({galleryKicker:r})}),L1(h6,{label:"Hint",value:s("galleryHint"),placeholder:l.galleryHint,onChange:r=>t({galleryHint:r})}),L1(cA,{label:"Shape",icon:L1(E$,{}),options:I$,value:Go(e.imageShape),onChange:r=>t({imageShape:r})}),L1(wu,{children:"Map & Theme"}),L1(cA,{label:"Map theme",icon:L1(A$,{}),options:_$,value:c,onChange:r=>t({mapTheme:r})})]})]})}function R$({cards:e,groupKey:t,onChange:a,onBack:s,onOpenCity:c,onNavigate:l}){let r=e.map((u,g)=>Q6(u)===t?g:-1).filter(u=>u>=0),o=String(e[r[0]]?.groupName??""),i=new Set(e.map(Q6).filter(u=>u!==t)),[n,h]=S$(t),m=u=>a(e.map(g=>Q6(g)===t?{...g,...u}:g)),p=()=>{let u=n;if(u!==t){if(i.has(u)){h(t);return}a(e.map(g=>Q6(g)===t?{...g,group:u}:g)),l(u)}};return H4("div",{className:"sf-locations-view",children:[L1(ms,{inline:!0,name:"Section",onSelect:s}),L1("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:lr(t,o)}),L1(h6,{label:"Group heading",value:n,placeholder:"e.g. Americas",onChange:h,onBlur:p,onKeyDown:u=>{u.key==="Enter"&&u.currentTarget.blur()}}),i.has(n)&&n!==t&&L1("p",{className:"sf-note sf-note--error",role:"alert",children:"Another group already uses this heading \u2014 pick a different one."}),L1(h6,{label:"Group name",value:o,placeholder:"Shown beside the heading",onChange:u=>m({groupName:u})}),L1(rA,{label:"Cities in this group",noun:"city",items:r.map(u=>e[u]),onChange:u=>a(Dw(e,t,u)),newItem:()=>({...Cm,group:t,groupName:o}),open:null,onOpen:()=>{},renderItem:()=>null,removeOnRow:!1,canDuplicate:()=>!1,renderRow:(u,g)=>H4("button",{type:"button",style:iA,onClick:()=>c(r[g]),children:[L1("span",{children:u?.name||"City"}),L1("span",{"aria-hidden":"true",children:"\u203A"})]})}),L1("div",{style:{marginTop:12},children:H4("button",{type:"button",style:nA,onClick:()=>{a(e.filter(u=>Q6(u)!==t)),s()},children:["Delete group (",r.length," ",r.length===1?"city":"cities",")"]})})]})}function hA({value:e,onChange:t}){let a=Array.isArray(e)?e:[],s=Zw(),c=rw(),l=V$(a),{appState:r,selectedItem:o}=L$(d=>d),i=cy(),n=o?.props??{},h=d=>{if(!o)return;let f=(r.data.content??[]).findIndex(v=>v.props.id===o.props.id);f<0||i.replaceComponent(Gx,f,{type:o.type,props:{...o.props,...d}})},m=(d,f)=>t(a.map((v,z)=>z===d?{...v,...f}:v)),p=()=>{let d=new Set(l.map(z=>z.key)),f=l.length+1,v=`Group ${f}`;for(;d.has(v);)v=`Group ${++f}`;return v};if(s.level==="texts")return H4("div",{className:"sf-locations-view",children:[L1(ms,{inline:!0,name:"Locations",onSelect:()=>O4({level:"groups"})}),L1("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:"Texts"}),L1(lA,{props:n,setSection:h,headOnly:!0})]});if(s.level==="image"){let d=a[s.index];return d?H4("div",{className:"sf-locations-view",children:[L1(ms,{inline:!0,name:String(d.name??"")||"City",onSelect:()=>O4({level:"city",index:s.index})}),L1("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:"Image"}),L1(hy,{value:d.photo||"",onChange:f=>m(s.index,{photo:f}),label:"Image",accept:"image/*"})]}):u()}if(s.level==="map"){let d=a[s.index];return d?H4("div",{className:"sf-locations-view",children:[L1(ms,{inline:!0,name:String(d.name??"")||"City",onSelect:()=>O4({level:"city",index:s.index})}),L1("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:"Map"}),L1(Gl,{value:d.geocode,onChange:f=>m(s.index,{geocode:f}),label:"Coordinates"}),L1(h6,{label:"Directions link",icon:L1(F$,{}),value:String(d.mapsUrl??""),onChange:f=>m(s.index,{mapsUrl:f})})]}):u()}if(s.level==="city"){let d=s.index,f=a[d];if(!f)return u();let v=Q6(f),z=(k,M)=>m(d,{[k]:M}),x=(k,M,A,B=!1)=>L1(h6,{label:M,icon:A,textarea:B,value:String(f[k]??""),onChange:P=>z(k,P)});return H4("div",{className:"sf-locations-view",children:[L1(ms,{inline:!0,name:lr(v,String(f.groupName??"")),onSelect:()=>O4({level:"group",key:v})}),L1("div",{style:{fontSize:14,fontWeight:500,margin:"6px 0 10px"},children:f.name||"City"}),x("name","Location name",L1(ku,{})),x("state","State / Province",L1(ku,{})),x("country","Country",L1(H$,{})),x("address","Address",L1(T$,{}),!0),x("phone","Phone",L1(P$,{})),x("hours","Opening hours",L1(sA,{})),x("timezone","Timezone chip",L1(sA,{})),L1("div",{style:{marginTop:12},children:L1("button",{type:"button",style:nA,onClick:()=>{t(a.filter((k,M)=>M!==d)),O4({level:"group",key:v})},children:"Delete city"})})]})}if(s.level==="group")return l.some(d=>d.key===s.key)?L1(R$,{cards:a,groupKey:s.key,onChange:t,onBack:()=>O4({level:"groups"}),onOpenCity:d=>O4({level:"city",index:d}),onNavigate:d=>O4({level:"group",key:d})},s.key):u();function u(){return H4("div",{className:"sf-locations-view",children:[L1(lA,{props:n,setSection:h}),!c&&L1(Cu,{children:g()})]})}function g(){return L1(rA,{label:"Locations",noun:"group",items:l,onChange:d=>{let f=d.find(v=>!l.some(z=>z.key===v.key));t(Ow(a,d.map(v=>v.key),v=>[{...Cm,group:v,groupName:""}])),f&&O4({level:"group",key:f.key})},newItem:()=>({key:p(),name:"",indices:[]}),open:null,onOpen:()=>{},renderItem:()=>null,removeOnRow:!1,canDuplicate:()=>!1,above:l.length===0?L1("div",{style:{fontSize:12,color:"var(--fg-dim, #999)",padding:"4px 0"},children:"No locations yet."}):void 0,renderRow:d=>H4("button",{type:"button",style:iA,onClick:()=>O4({level:"group",key:d.key}),children:[L1("span",{style:{fontWeight:500},children:lr(d.key,d.name)}),H4("span",{style:{color:"var(--fg-dim, #999)"},children:[d.indices.length," ",d.indices.length===1?"city":"cities"," \u203A"]})]})})}return u()}var B$="/geocode.json";async function mA(e){let t=e.trim();if(!t)return null;if(!fx())throw new Error("geocode_unavailable");let a=await fetch(`${Gw()}${B$}?q=${encodeURIComponent(t)}`,{headers:{Accept:"application/json"}});if(!a.ok)throw new Error(`geocode_http_${a.status}`);let s=await a.json();if(!s||typeof s!="object")return null;let{lat:c,lng:l,label:r}=s,o=Number(c),i=Number(l);return!Number.isFinite(o)||!Number.isFinite(i)?null:{lat:o,lng:i,label:String(r??"")}}var Wo=e=>typeof e=="number"&&Number.isFinite(e);function Uo(e){return e.some(t=>{let a=t?.geocode;return a?a.pending||a.manual&&a.lat===void 0&&a.lng===void 0?!0:Wo(a.lat)&&a.lat!==t.lat||Wo(a.lng)&&a.lng!==t.lng:!1})}async function jo(e,t,{geocode:a=mA,courtesyGapMs:s=1100}={}){let c=r=>new Promise(o=>setTimeout(o,r)),l=e.slice();if(e.some(r=>r?.geocode?.pending)){let r=[],o=!1;for(let i of e){if(!i?.geocode?.pending){r.push(i);continue}o&&s>0&&await c(s),o=!0;try{let n=await a(t(i));r.push(n?{...i,lat:n.lat,lng:n.lng,geocode:{...i.geocode,pending:!1,ok:!0,status:`Found \u2014 ${n.label.split(",").slice(0,3).join(",").trim()}`,lat:n.lat,lng:n.lng}}:{...i,geocode:{...i.geocode,pending:!1,ok:!1,status:"No match \u2014 check the address and try again."}})}catch{r.push({...i,geocode:{...i.geocode,pending:!1,ok:!1,status:"Lookup busy \u2014 try again in a moment."}})}}l=r}return l.map(r=>{let o=r?.geocode;if(!o)return r;if(o.manual&&o.lat===void 0&&o.lng===void 0)return{...r,geocode:{...o,lat:r.lat,lng:r.lng}};let i=Wo(o.lat)&&o.lat!==r.lat?o.lat:r.lat,n=Wo(o.lng)&&o.lng!==r.lng?o.lng:r.lng;return i!==r.lat||n!==r.lng?{...r,lat:i,lng:n}:r})}var pA={fields:{locations:{type:"custom",render:({value:e,onChange:t})=>Z$(hA,{value:e,onChange:t})}},resolveData:async e=>{let t=e.props,a=t.locations??[];if(!Uo(a))return e;let s=await jo(a,c=>{let l=qo(c.region);return[String(c.address??"").replace(/\s*\n+\s*/g,", "),c.name,String(c.state??"").trim()||l.state,String(c.country??"").trim()||l.country].map(r=>String(r??"").trim()).filter(Boolean).join(", ")});return{...e,props:{...t,locations:s}}}};import{jsx as fA}from"react/jsx-runtime";import{ClockIcon as Y$,TagIcon as X$}from"efficient-easel/icons";import{jsx as K$}from"react/jsx-runtime";import{jsx as T5,jsxs as $o,Fragment as O$}from"react/jsx-runtime";import{useEffect as G$,useState as dA}from"react";import{Fragment as D$,jsx as uA}from"react/jsx-runtime";function tt({kind:e,children:t}){let a=Lz(e);return a?uA("span",{[iz]:a.stamp,children:t}):uA(D$,{children:t})}var q$=24*3600*1e3,W$=[{key:"hours",label:"Hours"},{key:"minutes",label:"Minutes"},{key:"seconds",label:"Seconds"}];function U$(e,t){return Math.max(0,Math.ceil((e-t)/1e3))}function j$(e){let t=Date.parse((e??"").trim());return Number.isFinite(t)?t:null}var $$=e=>String(e).padStart(2,"0");function gA({title:e,zeroText:t,endsAt:a,showUnits:s=!0,editing:c=!1}={}){let l=j$(a),[r]=dA(()=>Date.now()+q$),o=l??(c?r:null),[i,n]=dA(()=>Date.now());if(G$(()=>{if(o===null)return;n(Date.now());let d=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(d)},[o]),o===null)return null;let h=U$(o,i),m=[Math.floor(h/3600),Math.floor(h%3600/60),h%60],p=(e??"").trim(),u=(t??"").trim(),g=`${m[0]} hours, ${m[1]} minutes and ${m[2]} seconds left`;return T5("section",{className:"relative z-[2] bg-bg",role:"timer","aria-live":"off",children:$o("div",{className:"mx-auto flex max-w-[var(--sf-site-width,1600px)] flex-col items-center gap-4 px-[var(--sf-site-gutter,40px)] py-12 text-center max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[p&&T5("p",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.2em] text-fg-dim",children:C(p)}),h===0?u&&T5("p",{className:"font-heading3 text-[length:min(var(--size-headingSmall,32px),var(--sf-heading-max,9999px))] font-medium leading-tight text-fg",children:j(u,!1)}):$o(O$,{children:[T5("span",{className:"sr-only",children:g}),T5("div",{"aria-hidden":!0,className:"flex items-start gap-[clamp(8px,2vw,24px)]",children:W$.map((d,f)=>$o("div",{className:"contents",children:[f>0&&T5("span",{className:"font-mono text-[length:clamp(32px,7vw,80px)] leading-none text-accent",children:":"}),$o("div",{className:"flex min-w-0 flex-col items-center gap-2",children:[T5(tt,{kind:tm,children:T5("span",{"data-countdown-unit":d.key,...c?{[W6]:tm}:{},suppressHydrationWarning:!0,className:"font-mono text-[length:clamp(40px,8vw,96px)] font-medium leading-none tabular-nums text-fg",children:$$(m[f])})}),s&&T5(tt,{kind:P9,children:T5("span",{...c?{[W6]:P9}:{},className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.2em] text-fg-dim",children:d.label})})]})]},d.key))})]})]})})}var Ko={title:"Back online in",zeroText:"Almost done. Back very soon."},vA={label:"Countdown",defaultProps:{...Ko,endsAt:"",showUnits:!0},render:({title:e,zeroText:t,endsAt:a,showUnits:s,puck:c})=>K$(gA,{title:e,zeroText:t,endsAt:a,showUnits:s,editing:c?.isEditing})};var bA={fields:{title:H("Heading",Ko.title),zeroText:H("At zero",Ko.zeroText),endsAt:Gy("Ends",fA(Y$,{}),"In your own time zone. Every visitor counts down to the same moment."),showUnits:c1("Unit labels",!0,fA(X$,{}))}};var xA={fields:{html:{type:"textarea",label:"HTML"}}};import{jsx as aK}from"react/jsx-runtime";import{StylesIcon as sK}from"efficient-easel/icons";var H8="line",Mu=[{label:"Line",value:"line"},{label:"Stripes \xB7 fine",value:"stripes-fine"},{label:"Stripes \xB7 medium",value:"stripes-medium"},{label:"Stripes \xB7 bold",value:"stripes-bold"}],J$={"stripes-fine":{ink:4,period:12},"stripes-medium":{ink:8,period:18},"stripes-bold":{ink:14,period:28}},zA=28,Q$="-45deg",eK="color-mix(in oklab, var(--accent) 50%, var(--bg))";function tK(e){return e!=="line"}function yA(e){return R2(Mu,H8,e)}function wA(e){if(!tK(e))return null;let{ink:t,period:a}=J$[e];return`repeating-linear-gradient(${Q$}, ${eK} 0 ${t}px, transparent ${t}px ${a}px)`}var CA={fields:{style:d1("Style",aK(sK,{}),Mu,H8),spacing:{type:"select",options:[{label:"Small",value:"sm"},{label:"Medium",value:"md"},{label:"Large",value:"lg"}]}}};import{jsx as iK}from"react/jsx-runtime";import{jsx as m6,jsxs as ps}from"react/jsx-runtime";function cK(e,t){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||`section-${t+1}`}function lK(e){let t=[];for(let a of e.replace(/\r\n?/g,`
|
|
@@ -151,4 +151,4 @@ ${s}`:t.push({type:"p",text:s})});return t}var rK=[{label:"First section",headin
|
|
|
151
151
|
`;function JB(){let{settings:e,selected:t,select:a,websiteName:s,templateChrome:c,templateName:l,chromePlaceholder:r,themeSwitchShown:o}=V3(),i=c?l?.trim()||"Template":s?.trim()||jl,n=c||r;return b91("div",{className:"sf-preview-header-pick sf-theme-surfaces","data-selected":t||void 0,onClick:h=>{h.stopPropagation(),a()},children:[XB("style",{children:f91}),XB(Nf,{previewSettings:e??void 0,editorPreview:!0,showThemeToggle:o,wordmark:i,hideLogo:n,hideMenu:n})]})}import{Render as S91}from"efficient-easel/render";import{useEffect as x91,useState as z91}from"react";import{jsx as C91}from"react/jsx-runtime";var y91=["none","always","on_scroll_up"],w91=e=>y91.includes(e)?e:"always";function _f({sticky:e,topTextColor:t,heightPx:a,theme:s,children:c}){let l=w91(e),r=WB(a),{headerRef:o,scrolled:i,navHidden:n}=ah({stickyMode:l,heightPx:r}),h=ih(t),m=h==="auto"?null:{[oh]:h},p=sh(s),u=ch(Ze()),[g,d]=z91(!1);x91(()=>{let z=o.current?.ownerDocument??document,x=()=>d(z.documentElement.getAttribute("data-theme")==="light");x();let k=new MutationObserver(x);return k.observe(z.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>k.disconnect()},[o]);let f=i||u,v=lh(g,u);return C91("header",{ref:o,"data-scrolled":i||void 0,"data-box-header":"",...m,className:["sf-site-header",...p?[p.className]:[],"flex flex-col justify-center",l==="none"?"absolute":"fixed","inset-x-0 top-0 z-50",f?"border-b border-line backdrop-blur-md":"border-b border-transparent","transition-[background,border-color,transform] duration-300 ease-out"].join(" "),style:{...p?p.style:null,minHeight:`var(${tr}, ${r}px)`,...n?{transform:"translateY(-100%)"}:null,...f?{background:v,color:"var(--fg)","--sf-header-ground":v}:{color:"var(--sf-header-overlay-fg)","--sf-header-ground":"var(--sf-header-overlay-ground)"}},children:c})}var k91={"Logos.logosPerRow":"columns","HeroSlide.tintOpacity":"overlay","Split.textBgTint":"overlay"};function M91(e){return Array.isArray(e)&&e.length>0&&e.every(t=>!!t&&typeof t=="object"&&typeof t.type=="string")}function If(e){let t=e.props,a=!1;if(e.type&&t)for(let[s,c]of Object.entries(k91)){let l=s.indexOf("."),r=s.slice(0,l),o=s.slice(l+1);if(r!==e.type||!(o in t))continue;let i=t[o],n={...t};delete n[o],(!(c in n)||n[c]===void 0)&&(n[c]=i),t=n,a=!0}if(t){let s=t;for(let[c,l]of Object.entries(t)){if(!M91(l))continue;let r=l.map(If);r.some((o,i)=>o!==l[i])&&(s===t&&(s={...t}),s[c]=r,a=!0)}t=s}return a?{...e,props:t}:e}function QB(e){let t=e;if(!t||typeof t!="object")return e;let a=!1,s={...e};if(Array.isArray(t.content)){let c=t.content.map(If);c.some((l,r)=>l!==t.content[r])&&(s.content=c,a=!0)}if(t.zones&&typeof t.zones=="object"){let c=!1,l=Object.fromEntries(Object.entries(t.zones).map(([r,o])=>{if(!Array.isArray(o))return[r,o];let i=o.map(If);return i.some((n,h)=>n!==o[h])&&(c=!0),[r,i]}));c&&(s.zones=l,a=!0)}return a?s:e}import{Fragment as H91,jsx as Rf}from"react/jsx-runtime";var L91=null,A91=()=>L91??={...Bf,root:{...Bf.root,render:({children:e})=>Rf(H91,{children:e})}};function Zf({group:e}){let t=QB({root:{props:{}},content:[e],zones:{}}),a=e.props??{};return Rf(_f,{sticky:a.sticky,topTextColor:a.topTextColor,heightPx:a.heightPx,theme:a.sectionAccent,children:Rf(S91,{config:A91(),data:t})})}import{jsx as eZ}from"react/jsx-runtime";function Df({editing:e=!1}){let{headerGroup:t}=Qy();return e?t?eZ(Zf,{group:t}):eZ(JB,{}):null}import{jsx as F91}from"react/jsx-runtime";var tZ={label:"Header",render:({puck:e})=>F91(Df,{editing:e?.isEditing})};import{useEffect as ce1,useState as FZ}from"react";var aZ="flex items-stretch gap-3.5 max-[720px]:flex-wrap max-[720px]:[&>.flex-1]:order-last max-[720px]:[&>.flex-1]:basis-full";import{useEffect as $f,useRef as K91,useState as AZ}from"react";import{jsx as Of,jsxs as sZ}from"react/jsx-runtime";var T91="Please enter a valid email address.";function Vc({email:e,onEmailChange:t,status:a,onResetVerdict:s,onSubmit:c,submitLabel:l,errorMessage:r,inputAriaLabel:o,buttonClassName:i,className:n,placeholder:h="you@example.com"}){return sZ("form",{className:[n,"flex flex-col gap-2"].filter(Boolean).join(" "),noValidate:!0,onSubmit:m=>{m.preventDefault(),c()},children:[sZ("div",{className:"flex items-stretch gap-2",children:[Of("input",{type:"email",value:e,onChange:m=>{t(m.target.value),(a==="invalid"||a==="error")&&s()},placeholder:h,"aria-label":o,disabled:a==="sending",className:"min-w-0 flex-1 border-2 border-line bg-bg px-3.5 py-3 font-display text-[15px] text-fg outline-none transition-colors placeholder:text-fg-dim hover:border-fg-dim focus:border-accent disabled:opacity-60"}),Of("button",{type:"submit",disabled:a==="sending",className:i,children:a==="sending"?"Sending\u2026":l})]}),(a==="error"||a==="invalid")&&Of("p",{role:"alert",className:"font-mono text-[11px] uppercase tracking-[0.18em]",style:{color:"var(--alert)"},children:a==="invalid"?T91:r})]})}import{jsx as Y5,jsxs as ra}from"react/jsx-runtime";function Nc({vehicle:e,escape:t,override:a,verdict:s,showChangeCar:c,cascadeErrorNote:l,askNote:r}){let o=e.appliedName!=="";return ra("div",{className:"pb-2",children:[ra("div",{className:"mb-3 flex items-center justify-between gap-4 font-mono text-[13px] font-semibold uppercase tracking-[0.2em] text-fg",children:[Y5("span",{children:"Vehicle Fitment"}),t]}),a?Y5("div",{className:"flex flex-col gap-3",children:a}):o?ra("div",{className:"flex flex-col gap-3",children:[s,c&&Y5("div",{children:Y5("button",{type:"button",onClick:e.clear,"aria-label":`Change car - forget ${e.appliedName} and ask again`,className:"cursor-pointer font-mono text-[12px] uppercase tracking-[0.16em] text-accent underline underline-offset-4 hover:text-fg",children:"Change car"})})]}):ra("div",{className:"flex flex-col gap-3",children:[Y5($3,{cascade:e.cascade,compact:!0}),e.cascade.cascadeError&&Y5("p",{className:"font-mono text-[12px] leading-relaxed tracking-[0.1em] text-fg-dim",children:l}),Y5("span",{className:"font-mono text-[12px] tracking-[0.1em] text-fg-dim",children:r})]})]})}function Gf({vehicle:e}){return e.appliedName?ra("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 border border-accent px-3 py-2 font-mono text-[12px] tracking-[0.1em] text-fg-dim",style:{background:"color-mix(in oklab, var(--accent) 8%, transparent)"},children:[ra("span",{children:["Showing fitment for your"," ",Y5("strong",{className:"font-semibold text-fg",children:e.appliedName})]}),Y5("button",{type:"button",onClick:e.clear,"aria-label":`Change car - forget ${e.appliedName} and ask again`,className:"ml-auto cursor-pointer uppercase tracking-[0.16em] text-accent underline underline-offset-4 hover:text-fg",children:"Change car"})]}):null}function i5({tone:e,children:t}){return Y5("div",{className:["border px-3 py-2.5 font-mono text-[13px] leading-relaxed tracking-[0.1em] text-fg-dim",e==="good"?"border-accent":e==="bad"?"border-alert":"border-dashed border-line"].join(" "),children:t})}import{useEffect as P91,useState as cZ}from"react";function hh(e,t){let[a,s]=cZ(null),[c,l]=cZ(!1),r=t?.make??"",o=t?.model??"",i=t?.year??null,n=t?.modification??"",h=t!==null;return P91(()=>{if(!h||i===null){s(null),l(!1);return}let m=!0;return s(null),l(!0),wS(e,{make:r,model:o,year:i,modification:n}).then(p=>{if(!m)return;let u=p.vehicle;u.make!==r||u.model!==o||u.year!==i||u.modification!==n||(s(p),l(!1))}),()=>{m=!1}},[e,r,o,i,n,h]),{answer:a,loading:c}}function mh(e){let t=e.oemSizes.length>0?` Your car takes ${e.oemSizes.join(", ")}.`:"";return e.status==="fits"?`This tyre is made in a size your car takes.${t}`:e.status==="doesNotFit"?`This tyre is not made in a size your car takes.${t}`:"We don\u2019t hold factory tyre sizes for this car, so we can\u2019t tell you whether this tyre fits it. Please check your car\u2019s door placard or ask us before ordering."}var ph={fits:"Fits",doesNotFit:"Not your size",unknown:"Unknown"};function E91(e,t,a){if(!e)return"unknown";let s=t.filter(l=>l.size===a);if(s.length===0)return"unknown";let c=s.map(l=>Wa(e,l.sku));return c.includes("fits")?"fits":c.every(l=>l==="doesNotFit")?"doesNotFit":"unknown"}var qf={fits:{color:"var(--accent)",dashed:!1},doesNotFit:{color:void 0,dashed:!1},unknown:{color:void 0,dashed:!0}};function lZ(e,t){if(!e)return[];let a=[];for(let n of t)a.includes(n.size)||a.push(n.size);let s=a.filter(n=>E91(e,t,n)==="fits"),c=n=>{let h=l4(n);return h?q4(h):null},l=new Map;for(let n of s){let h=c(n);h!==null&&!l.has(h)&&l.set(h,n)}let r=[],o=new Set,i=new Set;for(let n of e.oemSizes){let h=c(n),m=h===null?void 0:l.get(h),p=m??n;o.has(p)||(o.add(p),h!==null&&i.add(h),r.push({size:p,made:m!==void 0}))}for(let n of s){let h=c(n);h!==null&&i.has(h)||o.has(n)||(o.add(n),r.push({size:n,made:!0}))}return r}import{Fragment as rZ,jsx as R4,jsxs as I4}from"react/jsx-runtime";function Wf({slug:e,variants:t,vehicle:a,manualMode:s,setManualMode:c}){let{answer:l,loading:r}=hh(e,s?null:ho(a.applied?.vehicle)),o=a.appliedName;return R4(Nc,{vehicle:a,escape:R4("button",{type:"button",className:"cursor-pointer text-right text-accent hover:underline",onClick:()=>c(i=>!i),children:s?"\u2190 Find by vehicle":"Select by specs instead \u2192"}),override:s?I4(i5,{tone:"quiet",children:[R4("strong",{className:"font-semibold text-fg",children:"You are choosing by size."}),I4("span",{className:"mt-1.5 block",children:["Pick the size above. We have not checked it against any car \u2014 make sure it matches the placard on your door."," ",R4(S1,{href:"/contact",className:"text-accent hover:underline",children:"Ask us if you are unsure \u2192"})]})]}):null,verdict:R4(V91,{answer:l,loading:r,car:o,variants:t,onChange:a.clear}),showChangeCar:!1,cascadeErrorNote:I4(rZ,{children:["Vehicle data is unavailable right now. Pick your size above, or"," ",R4(S1,{href:"/contact",className:"text-accent hover:underline",children:"ask us to check it \u2192"})]}),askNote:"Asked once. Every tyre after this one is already filled in."})}function V91({answer:e,loading:t,car:a,variants:s,onChange:c}){if(t||!e)return I4(i5,{tone:"quiet",children:[R4("strong",{className:"font-semibold text-fg",children:"Checking your car\u2026"})," ",I4("span",{children:["Reading the factory tyre sizes for your ",a,"."]})]});let l=lZ(e,s),r=e.status==="doesNotFit"?"You can still order any size here \u2014 check it suits your car first.":"",o=l.length===0?mh(e):"",i=o&&r?`${o} ${r}`:o||r;return I4(i5,{tone:e.status==="fits"?"good":"quiet",children:[I4("span",{className:"block",children:[e.status==="fits"?I4("strong",{className:"font-semibold text-accent",children:["\u2713 Made in a size your ",a," takes"]}):e.status==="doesNotFit"?I4("strong",{className:"font-semibold text-fg",children:["Not made in a size your ",a," takes"]}):I4("strong",{className:"font-semibold text-fg",children:["We cannot check this tyre against your ",a]}),I4("span",{className:"whitespace-nowrap",children:[" \xB7 ",R4("button",{type:"button",onClick:c,"aria-label":`Change car - forget ${a} and ask again`,className:"cursor-pointer uppercase tracking-[0.16em] text-accent underline underline-offset-4 hover:text-fg",children:"Change car"})]})]}),i?R4("span",{className:"mt-1.5 block",children:i}):null,l.length>0?I4(rZ,{children:[R4("span",{className:"mt-1.5 block",children:"Your car takes:"}),R4("ul",{className:"mt-2 flex flex-wrap gap-1.5",children:l.map(n=>{let h=n.made?qf.fits:qf.doesNotFit;return R4("li",{className:"border border-line px-2 py-1 text-[11px] uppercase tracking-[0.14em]",style:h.color?{color:h.color,borderColor:h.color}:void 0,children:n.made?`${n.size} \xB7 ${ph.fits}`:n.size},n.size)})})]}):null]})}import{useEffect as oZ,useState as iZ}from"react";var uh="(max-width: 720px) 88vw, (max-width: 1100px) 44vw, 700px";function nZ(e,t,a){return a<=1?0:((e+t)%a+a)%a}function hZ(e,t,a){return[{glyph:"\u25C1",label:"Previous angle",onClick:()=>a(nZ(e,-1,t))},{glyph:"\u27F3",label:"Reset to first angle",onClick:()=>a(0)},{glyph:"\u25B7",label:"Next angle",onClick:()=>a(nZ(e,1,t))}]}function N91(e){let{props:t}=Mx({src:e,alt:"",fill:!0,sizes:uh}),a=new window.Image;return t.sizes&&(a.sizes=t.sizes),t.srcSet&&(a.srcset=t.srcSet),a.src=t.src,a.decode()}function mZ(e,t,a=N91){let[s,c]=iZ(()=>new Set),[l,r]=iZ(t),o=e.join(`
|
|
152
152
|
`);oZ(()=>{let n=!0,h=m=>{n&&c(p=>p.has(m)?p:new Set(p).add(m))};for(let m of o?o.split(`
|
|
153
153
|
`):[])a(m).then(()=>h(m),()=>h(m));return()=>{n=!1}},[o]);let i=t===void 0||s.has(t)||l===void 0;return oZ(()=>{i&&l!==t&&r(t)},[i,l,t]),i?t:l}import{Fragment as I91,jsx as z3,jsxs as K3}from"react/jsx-runtime";function Uf({selection:e,spec:t,vehicle:a,wheel:s}){let{manualMode:c,setManualMode:l}=e,r=fn(e.rows,e.preOrder),o=a.appliedName!=="",i=(s?.variants??[]).some(Qd),n=AI({wheel:s,applied:o,fit:a.fit,resolving:a.resolving});return z3(Nc,{vehicle:a,escape:z3("button",{type:"button",className:"cursor-pointer text-right text-accent hover:underline",onClick:()=>l(h=>!h),children:c?"\u2190 Find by vehicle":"Select by specs instead \u2192"}),override:c?K3(i5,{tone:"quiet",children:[z3("strong",{className:"font-semibold text-fg",children:"You are choosing by the numbers."}),K3("span",{className:"mt-1.5 block",children:[t?`${i?"The set is":"All four wheels are"} ${t}. We have not checked that against any car \u2014 make sure it matches yours.`:r?"Answer the bolt pattern and the offset below. We will not check them against a car.":"Pick a finish and a size below. The bolt pattern and the offset come next, and we will not check them against a car."," ",z3(S1,{href:"/fitment",className:"text-accent hover:underline",children:"Talk to an engineer \u2192"})]})]}):null,verdict:z3(_91,{verdict:n,car:a.appliedName}),showChangeCar:n.state!=="fits"&&n.state!=="checking",cascadeErrorNote:K3(I91,{children:["Vehicle data is unavailable right now. Pick your wheel by its specs instead, or"," ",z3(S1,{href:"/contact",className:"text-accent hover:underline",children:"ask us to check it \u2192"})]}),askNote:"Asked once. Every wheel after this one is already filled in."})}function _91({verdict:e,car:t}){switch(e.state){case"checking":return K3(i5,{tone:"quiet",children:[z3("strong",{className:"font-semibold text-fg",children:"Checking fitment\u2026"})," ",K3("span",{children:["Reading the factory wheel specs for your ",t,"."]})]});case"fits":return K3(i5,{tone:"good",children:[K3("strong",{className:"font-semibold text-accent",children:["\u2713 Fits your ",t]}),z3("ul",{className:"mt-2 flex flex-wrap gap-1.5",children:e.checks.map(a=>z3("li",{className:["px-2 py-1 text-[11px] uppercase tracking-[0.14em] text-fg-dim",a.value!==null?"border border-line":"border border-dashed border-line"].join(" "),children:a.value??`${a.name} not published, not checked`},a.key))})]});case"fits-with-warning":return K3(i5,{tone:"good",children:[K3("strong",{className:"font-semibold text-accent",children:["\u2713 Fits your ",t]}),z3("ul",{className:"mt-2 flex flex-wrap gap-1.5",children:e.checks.map(a=>z3("li",{className:["px-2 py-1 text-[11px] uppercase tracking-[0.14em] text-fg-dim",a.value!==null?"border border-line":"border border-dashed border-line"].join(" "),children:a.value??`${a.name} not published, not checked`},a.key))}),K3("span",{className:"mt-2 block border-l-2 border-alert pl-2.5",children:[z3("strong",{className:"font-semibold text-fg",children:"Check the offset. "}),o9(e.warning)," An offset this far out is what an aftermarket wheel is for, but it changes how far the wheel sits from the guard."," ",z3(S1,{href:"/contact",className:"text-accent hover:underline",children:"Ask us if you are unsure \u2192"})]})]});case"no-fit":return K3(i5,{tone:"bad",children:[K3("strong",{className:"font-semibold",style:{color:"var(--alert)"},children:["\u2717 Does not fit your ",t]}),z3("span",{className:"mt-1.5 block",children:o9(e.failure)})]});case"unknown":return K3(i5,{tone:"quiet",children:[z3("strong",{className:"font-semibold text-fg",children:e.missing==="vehicle"?`We cannot check this wheel against your ${t}`:"We cannot check this wheel"}),K3("span",{className:"mt-1.5 block",children:[e.missing==="vehicle"?`We have no factory wheel data for the ${t}, and we will not guess at a fit.`:"We do not hold a bolt pattern for this wheel, and we will not guess at a fit."," ",z3(S1,{href:"/contact",className:"text-accent hover:underline",children:"Ask us before you order \u2192"})]})]});default:return null}}import{useState as gZ}from"react";import{useCallback as uZ,useRef as R91,useState as B91}from"react";function pZ(e,t,a){return{productSlug:e,email:a.trim(),size:t?y8(t):""}}function dZ(){let[e,t]=B91("idle"),a=R91(!1),s=uZ(()=>{a.current=!1,t("idle")},[]),c=uZ(async({productSlug:l,size:r,email:o,dryRun:i=!1})=>{if(!a.current){if(!ve(o)){t("invalid");return}a.current=!0,t("sending");try{i||await g0.createPreOrderIntent(pZ(l,r,o))}catch{a.current=!1,t("error");return}a.current=!1,t("sent")}},[]);return{status:e,submit:c,reset:s}}import{jsx as oa,jsxs as ia}from"react/jsx-runtime";function jf({wheel:e,editing:t=!1}){let a=e.sizePairs??[],[s,c]=gZ(a.length>0?0:-1),[l,r]=gZ(""),{status:o,submit:i,reset:n}=dZ(),h=s>=0?a[s]??null:null;function m(){i({productSlug:e.slug,size:h,email:l,dryRun:t})}return ia("div",{className:"flex flex-col gap-5 border-t border-line pt-[18px]",children:[ia("div",{className:"border-2 border-accent/40 px-4 py-3.5 font-mono text-[12px] leading-relaxed tracking-[0.08em] text-fg",style:{background:"color-mix(in oklab, var(--accent) 6%, transparent)"},children:[oa("span",{className:"font-bold uppercase tracking-[0.2em] text-accent",children:"Pre-order"})," ","\u2014 this design isn't available to add to cart right now. Leave your email to pre-order it. No payment is taken now."]}),a.length>0&&ia("div",{children:[ia("div",{className:"mb-3.5 font-mono text-[13px] font-semibold uppercase tracking-[0.22em] text-fg",children:["Size \xB7"," ",oa("span",{className:"text-accent",children:h?y8(h):"Select a size"})]}),oa("div",{className:"flex flex-wrap gap-1.5",children:a.map((p,u)=>{let g=u===s;return ia("button",{type:"button",onClick:()=>{c(u),o==="sent"&&n()},className:["relative cursor-pointer border-2 px-4 py-3 text-left font-mono uppercase transition-colors",g?"border-accent text-fg outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 text-fg hover:border-accent"].join(" "),style:g?{background:"color-mix(in oklab, var(--accent) 14%, transparent)"}:void 0,children:[g&&oa("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),oa("span",{className:"block text-[14px] tracking-[0.18em]",children:y8(p)})]},y8(p))})})]}),o==="sent"?ia("p",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-accent",children:["Thanks \u2014 we've registered your pre-order for the ",e.name,"."]}):oa(Vc,{email:l,onEmailChange:r,status:o,onResetVerdict:n,onSubmit:m,inputAriaLabel:"Email to pre-order this design",submitLabel:"Pre-order",buttonClassName:"cursor-pointer whitespace-nowrap border-2 border-btn bg-btn px-6 font-mono text-[12px] font-bold uppercase tracking-[0.22em] text-btn-ink transition-colors hover:bg-fg hover:border-fg disabled:cursor-not-allowed disabled:opacity-50",errorMessage:"Couldn't register that \u2014 please try again."})]})}import{useState as Z91}from"react";import{Fragment as D91,jsx as dh}from"react/jsx-runtime";function gh({src:e,alt:t,fallback:a,fill:s=!1,width:c,height:l,sizes:r,className:o,style:i,priority:n,draggable:h,imageKey:m,imageWrapperClassName:p,onImageClick:u,imageButtonClassName:g,imageButtonLabel:d}){let[f,v]=Z91(null),z=e||"";if(!(z!==""&&f!==z))return dh(D91,{children:a});let k=dh(E3,{src:z,alt:t,...s?{fill:!0}:{width:c??1e3,height:l??1e3},sizes:r,className:o,style:i,priority:n,draggable:h,onError:()=>v(z)},m??z),M=p?dh("div",{className:p,children:k}):k;return u?dh("button",{type:"button",onClick:u,"aria-label":d,className:g,children:M}):M}function vZ(e){let t=e.angles??(e.src?[e.src]:[]),a=[],s=[];for(let c of t)(c.split("/").pop()??"").includes("20-20")?a.push(c):s.push(c);return[...s,...a]}var bZ="Image for reference only. Actual product may vary.",fZ=e=>String(Number(e));function xZ(e,t,a,s){let c=e.renderFits;if(!c||!t||t.diameter==null||t.width==null)return!1;let l=s&&a!=null?c.lug?.[String(a)]:c.angles;if(!l)return!1;let r=fZ(t.diameter);if(!(l.sizes.length===0||l.sizes.includes(`${r}x${fZ(t.width)}`)||l.sizes.includes(r)))return!0;let i=l.lugs??[];return!s&&a!=null&&i.length>0&&!i.includes(a)}import{Fragment as zZ,jsx as B4,jsxs as G91}from"react/jsx-runtime";function vh(e,t){return e.captions[t]?.trim()||`Photo ${t+1}`}function fh({text:e}){return e==="FusionForge\xAE"?G91(zZ,{children:["FusionForge",B4(c6,{})]}):B4(zZ,{children:e})}function yZ(e,t,a){if(e.kind==="tyre"){let h=e.source,m=t.shown.size??h.sizes[0]??"",p=h.variants.find(d=>d.size===m),u=p?.specs.tireType??h.variants[0]?.specs.tireType??null,g=[p?.image,h.coverImage].filter(d=>!!d);return{heading:Ui(h.brand,h.name),photos:g.slice(0,1),tint:void 0,stageImage:()=>B4(i6,{image:p?.image??h.coverImage,size:m,type:u,sizes:uh,priority:!0,className:"h-full w-full"}),thumbImage:()=>null,captions:[],thumbFallbackCells:0,galleryHint:"",referenceNote:"",metaValue:m,specCaption:p?[p.specs.loadIndex,p.specs.speedRating].filter(Boolean).join(""):"",originCaption:h.brand,unitLabel:"per tyre",vehicle:B4(Wf,{slug:h.slug,variants:h.variants,vehicle:t.vehicle,manualMode:t.manualMode,setManualMode:t.setManualMode}),vehicleMemory:t.manualMode?null:B4(Gf,{vehicle:t.vehicle}),vehicleAnswersSpecs:!1,preOrder:null}}let s=e.source,c=lN(s,t.shown.finish),l=I7(s,t.part),r=yn(t),o=rg(c,r),i=o?[...o]:vZ(c),n=i.length>0?i:s.coverImage?[s.coverImage]:[];return{heading:e.name,photos:n,tint:c.color,stageImage:({photo:h,alt:m,label:p,onZoom:u,fit:g})=>B4(gh,{src:h,alt:m,fill:!0,sizes:uh,className:g==="cover"?"object-cover":"object-contain",priority:!0,onImageClick:u,imageButtonClassName:"relative block h-[88%] w-[88%] cursor-zoom-in",imageButtonLabel:p,fallback:B4(x8,{spokes:s.spokes,mesh:s.mesh,className:"block h-[70%] w-[70%]"})}),thumbImage:({photo:h,alt:m})=>B4(gh,{src:h,alt:m,fill:!0,sizes:"(max-width: 720px) 20vw, (max-width: 1100px) 10vw, 120px",className:"object-contain",imageWrapperClassName:"relative h-[80%] w-[80%]",fallback:B4(x8,{spokes:s.spokes,mesh:s.mesh,className:"block h-[55%] w-[55%]"})}),captions:n.map(h=>c.captions?.[h]),thumbFallbackCells:4,galleryHint:O91(n,c,r,t.manualMode),referenceNote:xZ(c,l,r,o!=null)?bZ:"",metaValue:c.name,specCaption:l?js(l):"",originCaption:s.process==="FusionForge\xAE"?"FusionForge\xAE \xB7 Hybrid":`${s.process} \xB7 1-piece`,unitLabel:"per wheel",vehicle:B4(Uf,{selection:t,spec:l?js(l):"",vehicle:t.vehicle,wheel:s}),vehicleMemory:t.manualMode?null:B4(Gf,{vehicle:t.vehicle}),vehicleAnswersSpecs:!0,preOrder:B4(jf,{wheel:s,editing:a})}}function O91(e,t,a,s){return e.length>=2||a!=null||!Object.values(t.lugRenderings??{}).some(l=>Array.isArray(l)&&l.filter(Boolean).length>=2)?"":s?"Pick a bolt pattern to see every angle":"Pick your vehicle to see every angle"}import{createContext as q91,useContext as W91,useEffect as U91,useState as wZ}from"react";import{jsx as $91}from"react/jsx-runtime";var CZ="storefront-wishlist";function j91(e){let t=JSON.parse(e);return Array.isArray(t)?t.filter(a=>typeof a=="string"):[]}var kZ=q91(null);function T60({children:e}){let[t,a]=wZ([]),[s,c]=wZ(!1);U91(()=>{let o=Q2.getItem(CZ);try{o&&a(j91(o))}catch{}c(!0)},[]);function l(o){let i=t.includes(o)?t.filter(n=>n!==o):[...t,o];a(i),Q2.setItem(CZ,JSON.stringify(i))}let r={slugs:t,ready:s,has:o=>t.includes(o),toggle:l,count:t.length};return $91(kZ.Provider,{value:r,children:e})}function MZ(){let e=W91(kZ);if(!e)throw new Error("useWishlist must be used within a WishlistProvider");return e}var SZ="data-option-row";import{Fragment as n5,jsx as z1,jsxs as $1}from"react/jsx-runtime";var Y91=4e3;function X91(e){return e?[e.year,e.make,e.model,e.modification].join("-"):""}function na({product:e,selection:t,onLightbox:a,editing:s=!1,pricePlacement:c="top",showVehicleFitment:l=!0,heroLayout:r=K7,imageRatio:o=Y7,textAlign:i=p9,showSpecTable:n=!0,showPriceQuote:h=!0,galleryMode:m=X7,imageFit:p=J7}){let u=Yt(r),g=Zn(i),d=Dn(o),f=On(m),v=TR(Gn(p),KV(e)),z=u==="imageRight"?`${100-d}fr ${d}fr`:`${d}fr ${100-d}fr`,{picked:x,pick:k,qty:M,setQty:A,choice:B,setChoice:P,angleIdx:D,setAngleIdx:F,showValidation:T,setShowValidation:V,manualMode:Z,vehicle:_,rows:N,facts:t1,part:E,outOfStock:q,offer:K,preOrder:W,canAddToCart:r1,currency:x1,price:Y,set:e1,msrpLabel:g1}=t,U=yZ(e,t,s),{bullets:p1}=cL(),f1=DV(e),F0=qV(e),T0=l?U.vehicle:null,A1=l?U.vehicleMemory:null,[s0,c0]=AZ(!1);$f(()=>{let X=()=>{c0(document.documentElement.getAttribute("data-theme")==="light")};X();let C1=new MutationObserver(X);return C1.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>C1.disconnect()},[]);let{add:K1,open:w2,warmCatalog:e0}=c4();$f(()=>{s||e0(e.kind)},[s,e.kind,e0]);let A2=N.filter(X=>!W||X.values.length>0),d0=A2.filter(X=>X.role==="resolves"),m1=A2.filter(X=>X.role==="describes"&&!YV(F0,X.key)),q1=m1.findIndex(X=>X.chosen===null),o0=(!T0||!U.vehicleAnswersSpecs||t.fitmentSet)&&fn(N,W)?q1===-1?m1:m1.slice(0,q1+1):[],P0=[...d0,...o0],y0=$1("div",{className:"flex items-baseline gap-5 border-t border-line pt-[18px]",children:[g1&&z1("div",{className:"font-mono text-[length:var(--size-label,15px)] text-fg-dim line-through",children:g1}),z1("div",{className:"font-heading2 text-[length:min(var(--size-headingMedium,36px),var(--sf-heading-max,9999px))] font-bold leading-none tracking-[-0.01em] text-fg",children:f1?mC(Y,x1):ge(Y,x1)}),Y.priced&&z1("div",{className:"font-mono text-[length:var(--size-label,13px)] font-semibold uppercase tracking-[0.22em] text-fg",children:U.unitLabel}),Y.setTotal!=null&&$1("div",{className:"ml-auto border border-accent px-3 py-2 font-mono text-[length:var(--size-label,13px)] font-bold uppercase tracking-[0.18em] text-accent",style:{background:"color-mix(in oklab, var(--accent) 14%, transparent)"},children:[K.quantityLabel,": ",Z2(e1,x1)]})]}),o2=K91(null);return $f(()=>{s||o2.current===e.slug||(o2.current=e.slug,pC({itemId:E?`${e.slug}|${E.id}`:e.slug,itemName:e.name,variant:U.metaValue,pricePerSet:Y.setTotal??Y.fromSetTotal??0,currency:x1}))},[s,e.slug,e.name,U.metaValue,E,Y,x1]),$1(n5,{children:[z1("nav",{className:"border-b border-line px-[max(var(--sf-site-gutter,40px),calc((100%_-_var(--sf-page-cap,100%))/2_+_var(--sf-site-gutter,40px)))] pt-4 pb-4 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg-dim max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))]",style:s0?void 0:{background:"var(--section-bg)"},children:e.crumbs.map((X,C1)=>$1("span",{children:[C1>0&&$1(n5,{children:[z1("span",{className:"mx-3 text-accent",children:"/"}),z1("wbr",{})]}),X.href?z1(S1,{href:X.href,className:"hover:text-fg",children:z1(fh,{text:X.label})}):z1("span",{className:"text-fg",children:z1(fh,{text:X.label})})]},`${X.label}-${C1}`))}),$1("section",{"data-hero-layout":u,"data-hero-align":g,className:["grid gap-10 px-[max(var(--sf-site-gutter,40px),calc((100%_-_var(--sf-page-cap,100%))/2_+_var(--sf-site-gutter,40px)))] py-14 max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-8",u==="stacked"?"grid-cols-1":"[grid-template-columns:var(--hero-cols)] max-[1100px]:[grid-template-columns:1fr]"].join(" "),style:{...s0?{}:{background:"var(--section-bg)"},...u==="stacked"?{}:{"--hero-cols":z}},children:[$1("div",{"data-hero-gallery":f,"data-hero-fit":v,className:f==="tiled"?"flex items-start gap-3 max-[720px]:gap-2":void 0,style:u==="imageRight"?{order:2}:void 0,children:[$1("div",{className:f==="tiled"?"min-w-0 flex-1":void 0,children:[z1(ee1,{name:e.name,view:U,angleIdx:D,onSelect:F,isLight:s0,onLightbox:a,fit:v}),U.referenceNote&&z1("p",{"data-hero-reference-note":!0,className:"mt-2 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.18em] text-fg-dim",children:U.referenceNote}),U.galleryHint&&z1("p",{"data-hero-gallery-hint":!0,className:"mt-2 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.18em] text-fg-dim",children:U.galleryHint})]}),f!=="main"&&z1(te1,{name:e.name,view:U,angleIdx:D,onSelect:F,isLight:s0,tiled:f==="tiled"})]}),$1("div",{className:["flex flex-col gap-7",g==="center"?"items-center text-center":""].filter(Boolean).join(" "),style:u==="imageRight"?{order:1}:void 0,children:[$1("div",{children:[$1("div",{className:"mb-2.5 flex items-center gap-2.5 font-mono text-[length:var(--size-label,13px)] font-semibold uppercase tracking-[0.2em] text-accent",children:[z1("span",{children:z1(fh,{text:e.eyebrow})}),e.badge&&$1(n5,{children:[z1("span",{children:"\xB7"}),z1("span",{children:e.badge})]})]}),z1("h1",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(48px,5.5vw,84px)),var(--sf-heading-max,9999px))] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] leading-[0.92] tracking-[-0.035em]",children:(()=>{let X=U.heading.lastIndexOf(" ");if(X===-1)return U.heading;let C1=U.heading.slice(0,X),h0=U.heading.slice(X+1);return $1(n5,{children:[C1," ",$1("em",{className:"font-normal italic text-accent",children:[h0,"."]})]})})()})]}),c!=="belowSpecs"&&h&&y0,A1,d0.map(X=>z1(LZ,{row:X,onPick:k},X.key)),W&&U.preOrder?$1(n5,{children:[c==="belowSpecs"&&h&&y0,U.preOrder]}):$1(n5,{children:[T0,o0.map(X=>z1(LZ,{row:X,onPick:k},X.key)),n&&z1(J91,{facts:t1}),(K.packs.length>0||K.extra||K.spareCounts.length>0)&&$1("div",{className:"border-b border-line pb-[26px]",children:[K.packs.length>0&&$1(n5,{children:[z1("div",{className:"mb-3.5 font-mono text-[length:var(--size-label,13px)] font-semibold uppercase tracking-[0.22em] text-fg",children:"How many"}),z1("div",{className:"flex flex-wrap gap-1.5",children:K.packs.map(X=>$1("button",{type:"button",onClick:()=>P(C1=>({...C1,unit:X.value})),"aria-pressed":B.unit===X.value,className:["relative cursor-pointer border-2 px-4 py-3 text-left font-mono uppercase transition-colors",B.unit===X.value?"border-accent text-fg outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 text-fg hover:border-accent"].join(" "),style:B.unit===X.value?{background:"color-mix(in oklab, var(--accent) 14%, transparent)"}:void 0,children:[B.unit===X.value&&z1("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),z1("span",{className:"block text-[length:var(--size-label,14px)] tracking-[0.18em]",children:X.label})]},X.value))})]}),K.extra&&$1("label",{className:`${K.packs.length>0?"mt-3.5 ":""}flex cursor-pointer items-center gap-3 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.16em] text-fg`,children:[z1("input",{type:"checkbox",checked:B.spares>0,onChange:X=>P(C1=>({...C1,spares:X.target.checked?nr:0})),className:"h-4 w-4 cursor-pointer accent-[var(--accent)]"}),K.extra.label]}),K.spareCounts.length>0&&$1(n5,{children:[z1("div",{className:"mb-3.5 font-mono text-[length:var(--size-label,13px)] font-semibold uppercase tracking-[0.22em] text-fg",children:X8.howMany}),z1("div",{className:"flex flex-col gap-1.5 sm:flex-row sm:flex-wrap",children:K.spareCounts.map(X=>{let C1=X.value-s7,h0=B.spares===C1;return $1("button",{type:"button",onClick:()=>P(V0=>({...V0,spares:C1})),"aria-pressed":h0,className:["relative cursor-pointer border-2 px-4 py-3 text-left font-mono uppercase transition-colors",h0?"border-accent text-fg outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 text-fg hover:border-accent"].join(" "),style:h0?{background:"color-mix(in oklab, var(--accent) 14%, transparent)"}:void 0,children:[h0&&z1("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),$1("span",{className:"block text-[length:var(--size-label,14px)] tracking-[0.18em]",children:[X.value," \xB7 ",X.label]})]},X.value)})})]}),K.spareSide&&$1(n5,{children:[z1("div",{className:"mb-3.5 mt-[26px] font-mono text-[length:var(--size-label,13px)] font-semibold uppercase tracking-[0.22em] text-fg",children:K.spareSide.label}),z1("div",{className:"flex flex-wrap gap-1.5",children:K.spareSide.options.map(X=>{let C1=B.spareSide===X.value;return $1("button",{type:"button",onClick:()=>P(h0=>({...h0,spareSide:X.value})),"aria-pressed":C1,className:["relative cursor-pointer border-2 px-4 py-3 text-left font-mono uppercase transition-colors",C1?"border-accent text-fg outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 text-fg hover:border-accent"].join(" "),style:C1?{background:"color-mix(in oklab, var(--accent) 14%, transparent)"}:void 0,children:[C1&&z1("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),z1("span",{className:"block text-[length:var(--size-label,14px)] tracking-[0.18em]",children:X.label})]},X.value)})})]})]}),c==="belowSpecs"&&h&&y0,$1("div",{className:aZ,children:[!(f1&&!Y.priced)&&z1(ja,{value:M,onChange:A,size:"large"}),f1&&!Y.priced?z1(S1,{href:"/contact",className:"flex-1 cursor-pointer bg-btn px-6 py-4 text-center font-mono text-[length:var(--size-label,14px)] font-bold uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg",children:mr}):Y.priced?q?z1("button",{type:"button",disabled:!0,"aria-disabled":!0,className:"flex-1 cursor-not-allowed border-2 border-dashed border-fg-dim/20 px-6 py-4 font-mono text-[length:var(--size-label,14px)] font-bold uppercase tracking-[0.32em] text-fg-dim/40",children:"Out of stock"}):$1("button",{type:"button",[me]:"",onClick:()=>{if(!r1){V(!0),window.setTimeout(()=>V(!1),Y91);return}if(V(!1),s)return;let X=nN(e,E,x,{choice:B,qty:M},{fitmentLabel:Z?U.specCaption:_.appliedName?`For ${_.appliedName}`:"",fitmentKey:Z?`manual|${U.specCaption}`:`vehicle|${X91(_.applied?.vehicle)}`});X&&(K1(X),w2())},"aria-disabled":!r1,className:["flex-1 px-6 py-4 font-mono text-[length:var(--size-label,14px)] font-bold uppercase tracking-[0.32em] transition-colors",r1?"cursor-pointer bg-btn text-btn-ink hover:bg-fg hover:text-bg":"cursor-pointer border-2 border-dashed border-accent/50 text-accent/80 hover:border-accent hover:text-accent"].join(" "),style:r1?void 0:{background:"color-mix(in oklab, var(--accent) 6%, transparent)"},children:["Add to Cart",Y.setTotal!=null?` \xB7 ${Z2(e1,x1)}`:""]}):z1("button",{type:"button",disabled:!0,"aria-disabled":!0,className:"flex-1 cursor-not-allowed border-2 border-dashed border-fg-dim/20 px-6 py-4 font-mono text-[length:var(--size-label,14px)] font-bold uppercase tracking-[0.32em] text-fg-dim/40",children:c7}),z1(ae1,{slug:e.slug,name:e.name})]}),q&&E&&z1(se1,{partNumbers:E.components.map(X=>X.partNumber),productSlug:e.slug},E.id),T&&(()=>{let X=P0.filter(h0=>h0.chosen===null).map(h0=>h0.prompt.replace(/^Select\s+/i,""));if(T0&&U.vehicleAnswersSpecs&&!t.fitmentSet&&X.push("vehicle fitment"),X.length===0)return null;let C1=X.length===1?X[0]:X.length===2?`${X[0]} and ${X[1]}`:`${X.slice(0,-1).join(", ")}, and ${X.at(-1)}`;return $1("p",{role:"alert",className:"-mt-1 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em]",style:{color:"var(--alert)"},children:["Please select ",C1," first."]})})()]}),p1.length>0&&z1("ul",{className:"flex flex-wrap items-center gap-x-6 gap-y-2 border-t border-line pt-5 font-mono text-[length:var(--size-label,13px)] tracking-[0.05em] text-fg",children:p1.map((X,C1)=>$1("li",{children:[z1("strong",{className:"font-bold text-accent",children:X.label}),X.detail?` ${Xa} ${X.detail}`:""]},`${X.label}-${C1}`))})]})]})]})}function J91({facts:e}){return e.length===0?null:$1("div",{className:"border-b border-line pb-[26px]",children:[z1("dl",{className:"flex flex-col gap-2",children:e.map(t=>$1("div",{className:"flex flex-wrap items-baseline gap-x-2 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.22em]",children:[$1("dt",{className:"text-fg-dim",children:[t.label," \xB7"]}),z1("dd",{className:"font-semibold text-fg",children:t.value.label})]},t.key))}),z1("p",{className:"mt-3 font-mono text-[length:var(--size-body,12px)] leading-relaxed tracking-[0.1em] text-fg-dim",children:"Only one of each is left, so there is nothing to choose here."})]})}function LZ({row:e,onPick:t}){if(e.values.length===0&&!e.empty)return null;let a=e.values.find(c=>c.value===e.chosen),s=a&&[a.label,a.note].filter(Boolean).join(" \xB7 ");return $1("div",{className:"border-b border-line pb-[26px]",[SZ]:e.key,children:[$1("div",{className:"mb-3.5 font-mono text-[length:var(--size-label,13px)] font-semibold uppercase tracking-[0.22em] text-fg",children:[e.label," \xB7 ",z1("span",{className:"text-accent",children:s??e.prompt})]}),e.values.length===0?$1("p",{className:"font-mono text-[length:var(--size-body,12px)] leading-relaxed tracking-[0.1em] text-fg-dim",children:[e.empty.text," ",z1(S1,{href:e.empty.href,className:"text-accent hover:underline",children:e.empty.linkText})]}):e.display==="swatch"?z1("div",{className:"grid grid-cols-2 gap-2",children:e.values.map(c=>{let l=c.value===e.chosen;return $1("button",{type:"button",onClick:()=>t(e.key,c.value),className:["relative flex items-center gap-3 border-2 px-3 py-3 text-left transition-colors",l?"border-accent outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 hover:border-accent"].join(" "),style:l?{background:"color-mix(in oklab, var(--accent) 14%, transparent)"}:void 0,children:[l&&z1("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),z1("span",{className:"block h-5 w-5 shrink-0 rounded-full border border-fg-dim",style:{background:c.swatch}}),z1("span",{className:"block min-w-0 flex-1 truncate font-mono text-[length:var(--size-label,12px)] font-bold uppercase tracking-[0.18em] text-fg",children:c.label})]},c.value)})}):z1("div",{className:"flex flex-wrap gap-1.5",children:e.values.map(c=>{let l=c.value===e.chosen;return $1("button",{type:"button",onClick:()=>t(e.key,c.value),className:["relative cursor-pointer border-2 px-4 py-3 text-left font-mono uppercase transition-colors",l?"border-accent text-fg outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 text-fg hover:border-accent"].join(" "),style:l?{background:"color-mix(in oklab, var(--accent) 14%, transparent)"}:void 0,children:[l&&z1("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),z1("span",{className:"block text-[length:var(--size-label,14px)] tracking-[0.18em]",children:c.label}),c.note&&z1("span",{className:"mt-1 block text-[length:var(--size-label,11px)] tracking-[0.12em] text-fg-dim",children:c.note})]},c.value)})})]})}function HZ(e){return e.photos.length>0?e.photos.length:e.thumbFallbackCells}var Q91=6;function ee1({name:e,view:t,angleIdx:a,onSelect:s,isLight:c,onLightbox:l,fit:r}){let o=t.photos[Math.min(a,t.photos.length-1)],i=mZ(t.photos,o),n=HZ(t),h=n>=2,m=String(n).padStart(2,"0"),p=Math.min(a,Math.max(t.photos.length-1,0)),u=h||t.captions[p]?vh(t,p):"",g=[e,t.metaValue,u].filter(Boolean).join(" \u2014 "),d="max-[720px]:static",f=["relative flex aspect-square items-center justify-center overflow-hidden max-[720px]:col-span-2",c?"bg-bg":""].join(" ");return $1("div",{className:"relative max-[720px]:grid max-[720px]:grid-cols-[minmax(0,1fr)_auto] max-[720px]:items-start max-[720px]:gap-x-3 max-[720px]:gap-y-2",style:{color:t.tint},children:[$1("div",{className:`absolute left-0 top-0 z-10 flex items-center gap-3 font-mono text-[length:var(--size-label,13px)] font-semibold uppercase tracking-[0.2em] text-fg ${d} max-[720px]:min-w-0 max-[720px]:flex-wrap max-[720px]:gap-x-2 max-[720px]:gap-y-1`,children:[h&&$1(n5,{children:[$1("span",{className:"text-accent",children:[String(a+1).padStart(2,"0")," / ",m]}),z1("span",{className:"text-fg-dim",children:"\xB7"})]}),z1("span",{children:e}),t.metaValue&&$1(n5,{children:[z1("span",{className:"text-fg-dim",children:"\xB7"}),z1("span",{className:"text-accent",children:t.metaValue})]})]}),h&&z1("div",{className:`absolute right-5 top-5 z-10 flex gap-1 ${d}`,children:hZ(a,n,s).map(z=>z1("button",{type:"button","aria-label":z.label,title:z.label,onClick:z.onClick,className:"flex h-7 w-7 items-center justify-center border border-fg-dim/60 text-fg transition-colors hover:border-accent hover:text-accent",children:z.glyph},z.label))}),$1("div",{className:f,children:[["top-3 left-3","top-3 right-3","bottom-3 left-3","bottom-3 right-3"].map((z,x)=>z1("span",{className:`absolute ${z} h-3 w-3 border border-fg-dim/40`,style:{borderTop:z.includes("top")?"1px solid var(--site-line)":"none",borderBottom:z.includes("bottom")?"1px solid var(--site-line)":"none",borderLeft:z.includes("left")?"1px solid var(--site-line)":"none",borderRight:z.includes("right")?"1px solid var(--site-line)":"none"}},x)),t.stageImage({photo:i,alt:g,label:`Open ${[e,t.metaValue].filter(Boolean).join(" ")} at full resolution`,onZoom:()=>l(i,g),fit:r})]}),$1("div",{className:`absolute bottom-5 left-5 right-5 z-10 flex items-center justify-between gap-3 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em] text-fg-dim ${d} max-[720px]:col-span-2 max-[720px]:flex-wrap`,children:[z1("span",{children:t.specCaption}),z1("span",{children:t.originCaption})]})]})}function te1({name:e,view:t,angleIdx:a,onSelect:s,isLight:c,tiled:l=!1}){let r=HZ(t);return r<2?null:z1("div",{className:l?"order-[-1] flex w-16 flex-col gap-2 max-[720px]:w-12 max-[720px]:gap-1":"mt-2 grid grid-cols-4 gap-2 max-[720px]:gap-1",style:!l&&r>4?{gridTemplateColumns:`repeat(${Math.min(r,Q91)}, minmax(0, 1fr))`}:void 0,children:Array.from({length:r}).map((o,i)=>{let n=t.photos[i];return $1("button",{type:"button",onClick:()=>s(i),"aria-label":`View ${vh(t,i)}`,className:["relative flex aspect-square items-center justify-center overflow-hidden transition-colors",c?"bg-bg":"",i===a?"border border-accent":"border border-transparent hover:border-fg-dim"].join(" "),style:{color:t.tint},children:[z1("span",{className:"absolute top-1.5 left-2 z-10 font-mono text-[length:var(--size-label,8px)] uppercase tracking-[0.18em] text-fg-dim",children:String(i+1).padStart(2,"0")}),t.thumbImage({photo:n,alt:`${e} \u2014 ${vh(t,i)}`})]},i)})})}function ae1({slug:e,name:t}){let{has:a,toggle:s}=MZ(),c=a(e);return z1("button",{type:"button",title:c?"Saved":"Save","aria-label":c?`Remove ${t} from wishlist`:`Save ${t} to wishlist`,"aria-pressed":c,onClick:()=>s(e),className:["h-12 w-12 cursor-pointer border-2 bg-transparent transition-colors",c?"border-accent text-accent":"border-fg-dim/50 text-fg hover:border-accent hover:text-accent"].join(" "),children:c?"\u2665":"\u2661"})}function se1({partNumbers:e,productSlug:t}){let[a,s]=AZ(""),{status:c,submit:l,reset:r}=Yi();function o(){l({partNumbers:e,email:a,productSlug:t})}return c==="sent"?z1("p",{className:"-mt-1 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em] text-accent",children:"We'll email you when it's back."}):z1(Vc,{className:"-mt-1",email:a,onEmailChange:s,status:c,onResetVerdict:r,onSubmit:o,inputAriaLabel:"Email for the back-in-stock alert",submitLabel:"Notify me when back",buttonClassName:"cursor-pointer whitespace-nowrap border-2 border-btn px-4 font-mono text-[length:var(--size-label,11px)] font-bold uppercase tracking-[0.22em] text-btn transition-colors hover:bg-btn hover:text-btn-ink disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-btn",errorMessage:"Couldn't save that \u2014 please try again."})}import{Fragment as re1,jsx as _c,jsxs as oe1}from"react/jsx-runtime";function Kf({slug:e,kind:t="wheel",editing:a=!1,pricePlacement:s,showVehicleFitment:c=!0,...l}){let[r,o]=FZ(null),[i,n]=FZ(!1);return ce1(()=>{let h=!1;return o(null),n(!1),(t==="tyre"?g0.getTyre(e).then(p=>({kind:"tyre",tyre:p})):g0.getWheel(e).then(p=>({kind:"wheel",wheel:p}))).then(p=>{h||o(p)}).catch(()=>{h||n(!0)}),()=>{h=!0}},[e,t]),i?_c(M4,{size:"tall",children:"Couldn\u2019t load this product."}):r?_c(le1,{record:r,editing:a,pricePlacement:s,showVehicleFitment:c,...l}):_c(M4,{size:"tall",children:"Loading product\u2026"})}function le1({record:e,editing:t=!1,pricePlacement:a,showVehicleFitment:s=!0,...c}){let l=e.kind==="tyre"?wn(e.tyre):$s(e.wheel),r=vc(l,{editing:t}),o=gc();return oe1(re1,{children:[_c(na,{product:l,selection:r,onLightbox:o.open,editing:t,pricePlacement:a,showVehicleFitment:s,...c}),_c(Bt,{item:o.item,onClose:o.close})]})}import{Fragment as me1,jsx as t8,jsxs as pe1}from"react/jsx-runtime";var ie1=R3;function bh({editing:e=!1,pricePlacement:t,showVehicleFitment:a=!0,...s}){let c=Y0();return t8(x2,{kinds:ie1,type:"ProductHero",editing:e,children:c?t8(na,{product:c.product,selection:c.selection,onLightbox:c.openLightbox,editing:e,pricePlacement:t,showVehicleFitment:a,...s}):e?t8(ne1,{pricePlacement:t,showVehicleFitment:a,...s}):t8(M4,{size:"tall",children:"Bound to the current product \u2014 preview on a product page."})})}function ne1({pricePlacement:e,showVehicleFitment:t,...a}){let s=v3(!0);return s?t8(he1,{product:s,pricePlacement:e,showVehicleFitment:t,...a}):t8(M4,{size:"tall",children:"Loading sample product\u2026"})}function he1({product:e,pricePlacement:t,showVehicleFitment:a,...s}){let c=vc(e,{editing:!0}),l=gc();return pe1(me1,{children:[t8(na,{product:e,selection:c,onLightbox:l.open,editing:!0,pricePlacement:t,showVehicleFitment:a,...s}),t8(Bt,{item:l.item,onClose:l.close})]})}import{jsx as Ic}from"react/jsx-runtime";function ue1({source:e,editing:t=!1,pricePlacement:a=Kt,showVehicleFitment:s=!0,heroLayout:c=K7,imageRatio:l=Y7,textAlign:r=p9,showSpecTable:o=!0,showPriceQuote:i=!0,galleryMode:n=X7,imageFit:h=J7}){let m={heroLayout:c,imageRatio:l,textAlign:r,showSpecTable:o,showPriceQuote:i,galleryMode:n,imageFit:h};return Y0()||t&&M2()?Ic(bh,{editing:t,pricePlacement:a,showVehicleFitment:s,...m}):e?.slug?Ic(Kf,{slug:e.slug,kind:e.kind??"wheel",editing:t,pricePlacement:a,showVehicleFitment:s,...m}):t?Ic(M4,{size:"tall",children:"Pick a product in the panel to fill this hero."}):Ic(bh,{pricePlacement:a,showVehicleFitment:s,...m})}var TZ={label:"Product Hero",defaultProps:{source:null,pricePlacement:Kt,showVehicleFitment:!0,heroLayout:K7,imageRatio:Y7,textAlign:p9,showSpecTable:!0,showPriceQuote:!0,galleryMode:X7,imageFit:J7},render:e=>Ic(ue1,{source:e.source,editing:e.puck?.isEditing,pricePlacement:HR(e.pricePlacement),showVehicleFitment:e.showVehicleFitment??!0,heroLayout:Yt(e.heroLayout),imageRatio:Dn(e.imageRatio),textAlign:Zn(e.textAlign),showSpecTable:e.showSpecTable??!0,showPriceQuote:e.showPriceQuote??!0,galleryMode:On(e.galleryMode),imageFit:Gn(e.imageFit)})};import{jsx as de1}from"react/jsx-runtime";var PZ={label:"Product",defaultProps:{code:"",finish:""},render:e=>de1(Zv,{code:e.code||void 0,finish:e.finish||void 0,wheel:e.wheel})};import{jsx as ge1}from"react/jsx-runtime";var EZ={label:"Search",defaultProps:{style:"icon"},render:({style:e,puck:t})=>ge1(fB,{style:e,editing:t?.isEditing})};import{useEffect as fe1,useRef as be1}from"react";import{jsx as Rc,jsxs as VZ}from"react/jsx-runtime";var ve1={fits:{className:"font-medium",style:{color:"var(--green)"}},doesNotFit:{className:"text-fg-dim"},unknown:{className:"text-fg-dim"}};function Yf({variants:e,answer:t,loading:a=!1}){return t?VZ("div",{className:"mt-9",children:[Rc("p",{className:"max-w-[68ch] font-serif text-[length:var(--size-body,18px)] italic leading-[1.55] text-fg-dim",children:mh(t)}),Rc("ul",{className:"mt-6 grid gap-[2px] border border-line bg-line",children:e.map(s=>{let c=Wa(t,s.sku),l=ve1[c];return VZ("li",{className:"flex items-baseline justify-between gap-6 bg-bg px-[18px] py-4",children:[Rc("span",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.14em] text-fg",children:s.size}),Rc("span",{className:`font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] ${l.className}`,style:l.style,children:ph[c]})]},s.sku)})})]}):a?Rc("p",{className:"mt-9 border border-line bg-bg p-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.24em] text-fg-dim",children:"Checking your car\u2026"}):null}import{jsx as Xf,jsxs as NZ}from"react/jsx-runtime";var Jf="Will it fit *your car?*",Qf="Pick your vehicle and we\u2019ll tell you which of these sizes matches what it came on.",eb="mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-20",tb="mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] pt-0 pb-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:pt-0 max-[1100px]:pb-20";function ab({num:e,title:t=Jf,description:a=Qf,escapeText:s,escapeHref:c,omitHead:l=!1,slug:r,variants:o,onAnswer:i}){let n=N4({autoApply:!0}),{answer:h,loading:m}=hh(r,ho(n.applied?.vehicle)),p=be1(i);return p.current=i,fe1(()=>{p.current?.(h)},[h]),NZ("section",{className:l?tb:eb,children:[l?null:Xf(Q1,{num:e,title:t,description:a,accent:!0}),Xf($3,{cascade:n.cascade}),s&&c?NZ("a",{href:c,className:"mt-6 inline-block font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-accent underline-offset-4 hover:underline",children:[s," \u2192"]}):null,Xf(Yf,{variants:o,answer:h,loading:m})]})}import{jsx as Bc,jsxs as ye1}from"react/jsx-runtime";var xe1=["tyre"];function sb(e){return Bc(x2,{kinds:xe1,type:"TyreFitment",editing:e.editing,children:Bc(ze1,{...e})})}function ze1({num:e,title:t,description:a,escapeText:s,escapeHref:c,omitHead:l=!1,editing:r=!1}){let o=Y0(),i=v3(r&&!o),n=o?.product??i,h=n?.kind==="tyre"?n.source:null;return!h||h.variants.length===0?r?ye1("section",{className:l?tb:eb,children:[l?null:Bc(Q1,{num:e,title:t||Jf,description:a||Qf,accent:!0}),Bc("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:"The vehicle question appears here on a tyre product page, with one verdict per size."})]}):null:Bc(ab,{num:e,title:t||void 0,description:a||void 0,escapeText:s,escapeHref:c,omitHead:l,slug:h.slug,variants:h.variants})}import{jsx as we1}from"react/jsx-runtime";var _Z={label:"Tyre Fitment Form",defaultProps:{num:"",title:"",description:"",escapeText:"",escapeHref:""},render:e=>{let t=D1(e.headPlacement)==="own-box",a=l=>t?void 0:l,s=a1(e.escapeText),c=a1(e.escapeHref);return we1(sb,{num:a(y(e.num,j0.num,e.puck)),title:a(y(e.title,L.sectionHeading,e.puck)),description:a(y(e.description,L.body,e.puck)),escapeText:s,escapeHref:c,omitHead:t,editing:e.puck?.isEditing})}};import{jsx as a8,jsxs as BZ}from"react/jsx-runtime";var IZ="mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-20",RZ="mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] pt-0 pb-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:pt-0 max-[1100px]:pb-20",Ce1=[],ke1=["tyre"];function cb(e){return a8(x2,{kinds:ke1,type:"TyreSizes",editing:e.editing,children:a8(Me1,{...e})})}function Me1({num:e,title:t,description:a,editing:s=!1,omitHead:c=!1}){let l=Y0(),r=v3(s&&!l),o=l?.product??r,i=o?.kind==="tyre"?o.source.variants:[],n=c?null:a8(Q1,{num:e?C(e):void 0,title:j(t||"Available *sizes.*",!1),description:C(a||"Every size this tyre is made in, with its own price and stock."),accent:!0});if(i.length===0)return s?BZ("section",{className:c?RZ:IZ,children:[n,a8("p",{className:"border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:"This product\u2019s sizes appear here on a product page."})]}):null;let h=i.some(m=>!m.image);return BZ("section",{className:c?RZ:IZ,children:[n,a8(Se1,{variants:i,fieldUsage:l?.fieldUsage??Ce1}),a8(t5,{text:h?io:""})]})}function Se1({variants:e,fieldUsage:t}){let{currency:a,formatPrice:s}=p0();return a8("div",{className:"grid grid-cols-3 gap-2 max-[1100px]:grid-cols-2 max-[720px]:grid-cols-1",children:e.map(c=>a8(uc,{fieldUsage:t,size:c.size,specs:c.specs,prices:c.prices,image:c.image,inStock:c.inStock,currency:a,formatPrice:s},c.sku))})}import{jsx as Le1}from"react/jsx-runtime";var ZZ={label:"Tyre Sizes",defaultProps:{num:"",title:"",description:""},render:e=>{let t=D1(e.headPlacement)==="own-box",a=s=>t?void 0:s;return Le1(cb,{num:a(y(e.num,j0.num,e.puck)),title:a(y(e.title,L.sectionHeading,e.puck)),description:a(y(e.description,L.body,e.puck)),omitHead:t,editing:e.puck?.isEditing})}};var DZ={AlloyWheelsListing:UN,BrandStrip:iB,BundleOffer:uB,CartBlock:zB,CatalogFilterBar:EB,CheckoutCTA:p_,CollectionCard:NB,Collections:b_,CompatibleTyres:K_,CountrySwitchBlock:_B,DeliveryOptions:Q_,DetailRows:dI,EuTyreLabel:IB,FitmentFinder:yI,FitmentTable:DI,Gallery:KI,GalleryB:lR,GalleryItem:RB,Header:tZ,ProductGrid:wR,ProductHero:TZ,ProductRef:PZ,RelatedProducts:RR,SearchBlock:EZ,SpecTable:eB,TyreFitment:_Z,TyreSizes:ZZ};var Ae1={AlloyWheelsListing:KN,BrandStrip:e_,BundleOffer:t_,CartBlock:a_,CatalogFilterBar:h_,CheckoutCTA:u_,CollectionCard:v_,Collections:z_,CompatibleTyres:Y_,CountrySwitchBlock:X_,DeliveryOptions:tI,DetailRows:vI,EuTyreLabel:fI,FitmentFinder:wI,FitmentTable:OI,Gallery:JI,GalleryB:rR,GalleryItem:pR,Header:uR,ProductGrid:kR,ProductHero:PR,ProductRef:IR,RelatedProducts:BR,SearchBlock:ZR,SpecTable:aB,TyreFitment:sB,TyreSizes:cB},W0=Qe(DZ,Ae1);import{jsx as g4,jsxs as xh}from"react/jsx-runtime";function rb(e={}){let t=qw();return g4(ML,{editing:e.editing,previewConfirmation:!!e.nodeId&&t===e.nodeId,children:g4(He1,{...e})})}var OZ="mx-auto max-w-[var(--sf-site-width,1600px)] px-[min(24px,var(--sf-site-gutter,40px))] py-16 min-[800px]:px-[var(--sf-site-gutter,40px)] min-[800px]:py-[88px]",lb="grid gap-8 min-[960px]:grid-cols-[minmax(0,1fr)_minmax(360px,0.8fr)] min-[960px]:gap-12";function He1({eyebrow:e,heading:t,intro:a,buttonLabel:s,successMessage:c,boxes:l,inBoxes:r=!1}){let{fieldPrefix:o,editing:i,services:n,currency:h,serviceId:m,setServiceId:p,requiresPayment:u,date:g,earliestDate:d,setDate:f,setDateTouched:v,availability:z,loadingSlots:x,noSlotsMessage:k,selectedStart:M,setSelectedStart:A,customerTimezone:B,name:P,setName:D,email:F,setEmail:T,phone:V,setPhone:Z,notes:_,setNotes:N,confirmation:t1,submitting:E,error:q,canSubmit:K,handleSubmit:W,sample:r1}=x7(),x1=r1?g4("p",{className:"mb-6 font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",role:"status",children:"Example form \u2014 add an active service in Storefront \u2192 Booking Services."}):null,Y=n===void 0?g4("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:"Loading appointments\u2026"}):n?.length===0?g4("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",role:"status",children:i?"Add an active service in Storefront \u2192 Booking Services.":"Appointments are not available right now."}):null;return r&&l?g4("section",{className:"relative z-[2] border-t border-line bg-surface",children:xh("div",{className:OZ,children:[x1,t1?g4(l,{className:`${lb} items-start`}):xh("form",{onSubmit:W,children:[g4(l,{className:`${lb} items-start`}),Y]})]})}):g4("section",{className:"relative z-[2] border-t border-line bg-surface",children:xh("div",{className:OZ,children:[x1,g4(Eo,{eyebrow:e,heading:t,intro:a}),t1?g4(_o,{successMessage:c}):Y||xh("form",{onSubmit:W,className:lb,children:[g4(Vo,{}),g4(No,{buttonLabel:s})]})]})})}import{jsx as Fe1}from"react/jsx-runtime";var ob={boxes:{type:"slot",allow:["BookingBox"]}},GZ={label:"Booking Form",fields:ob,defaultProps:{eyebrow:"",heading:"",intro:"",buttonLabel:"",successMessage:""},render:e=>Fe1(rb,{eyebrow:y(e.eyebrow,L.eyebrow,e.puck),heading:y(e.heading,L.heading,e.puck),intro:y(e.intro,L.body,e.puck),buttonLabel:y(e.buttonLabel,L.button,e.puck),successMessage:y(e.successMessage,L.bookingConfirmation,e.puck),boxes:e.boxes,inBoxes:e.layout==="boxes",nodeId:typeof e.id=="string"?e.id:void 0,editing:e.puck?.isEditing})};var qZ={fields:{_gContent:b("Content"),eyebrow:G("Eyebrow"),heading:E1("Heading"),intro:E1("Introduction"),buttonLabel:G("Submit button"),successMessage:E1("Confirmation message"),boxes:ob.boxes},resolveFields:(e,{fields:t})=>{if(e.props.layout!=="boxes")return t;let{eyebrow:a,heading:s,intro:c,buttonLabel:l,successMessage:r,...o}=t;return o}};var WZ={fields:{_gTextStyle:b("Text style"),...Object.fromEntries(Io.map(e=>[Ro[e],d1(mu[e],$e(mu[e]),[{label:"Section's own",value:""},...u5.map(t=>({label:A9[t],value:t}))],"")])),_gContent:b("Content"),eyebrow:G("Eyebrow"),heading:E1("Heading"),intro:E1("Introduction"),buttonLabel:G("Submit button"),successMessage:E1("Confirmation message")},resolveFields:(e,{fields:t})=>{let a=e.props.region,s=t,c=Io.map(r=>Ro[r]),l=r=>Object.fromEntries(Object.entries(s).filter(([o])=>o.startsWith("_")||c.includes(o)||r.includes(o)));return l(a==="head"?["eyebrow","heading","intro"]:a==="details"?["buttonLabel"]:a==="confirm"?["successMessage"]:[])}};import{EyeIcon as Te1,LinkIcon as UZ,EyeOffIcon as Pe1}from"efficient-easel/icons";import{jsx as Zc}from"react/jsx-runtime";var jZ={fields:{_gTop:b("Routing groups"),routingNumber:H("Section number",v0.routingNumber),routingTagline:H("Eyebrow",v0.routingTagline),groups:{type:"array",label:"Groups",arrayFields:{eyebrow:G("Eyebrow"),title:E1("Title"),copy:E1("Body"),response:G("Response time")},getItemSummary:e=>e?.title||e?.eyebrow||"Group"},_gForm:b("Message form"),formSlug:H5(),formNumber:H("Section number",v0.formNumber),formHeading:O("Heading",v0.formHeading),metaItems:T2("Meta lines",Zc(e4,{noun:"meta"}),"Encrypted in transit","verbatim"),_gOther:b("\u201COther\u201D reason"),showOther:c1("Show \u201COther\u201D reason",v0.showOther,Zc(Te1,{})),otherLabel:G("\u201COther\u201D chip label",v0.otherLabel),otherNoteTitle:H("\u201COther\u201D note title",v0.otherNoteTitle),otherNoteBody:O("\u201COther\u201D note body",v0.otherNoteBody),_gSubmit:b("Submit button"),buttonText:G("Submit button",v0.buttonText),consent:O("Consent line",v0.consent),_gChannels:b("Contact info"),channels:{type:"array",label:"Channels",arrayFields:{label:G("Label"),value:G("Value"),href:J2(G("Link")),sub:G("Sub line"),groupId:d1("Link to group",Zc(UZ,{}),[{label:"\u2014 Not linked \u2014",value:""},...v0.groups.map(e=>({label:e.title,value:e.id}))],""),hidden:c1("Hidden",!1,Zc(Pe1,{}))},getItemSummary:e=>`${e?.label||e?.value||"Channel"}${e?.hidden?" \xB7 hidden":""}`}},resolveData:e=>{let t=e.props.groups??[];if(!t.some(c=>!c?.id))return e;let a=new Set,s=t.map((c,l)=>{if(c?.id)return a.add(c.id),c;let r=yu(c?.title)||`group-${l+1}`;for(;a.has(r);)r=`${r}-${l+1}`;return a.add(r),{...c,id:r}});return{...e,props:{...e.props,groups:s}}},resolveFields:(e,{fields:t})=>{let a=e.props.groups??[],s=[{label:"\u2014 Not linked \u2014",value:""},...a.map((r,o)=>({label:r?.title||r?.eyebrow||`Group ${o+1}`,value:r?.id||yu(r?.title)||`group-${o+1}`}))],c=t,l=c.channels;return l?.type==="array"&&l.arrayFields&&(c.channels={...l,arrayFields:{...l.arrayFields,groupId:d1("Link to group",Zc(UZ,{}),s,"")}}),t}};import{useEffect as Ee1,useRef as Ve1,useState as Ne1}from"react";import{Fragment as Ze1,jsx as ib,jsxs as De1}from"react/jsx-runtime";var _e1=12,zh=null,$Z=null;function Ie1(e=!1){let t=i2();if((e||$Z!==t)&&(zh=null),!zh){let a=N3();$Z=t,zh=X1.listBlogPosts(a,{visibleOnly:!0,siteId:t}).catch(()=>null)}return zh}function Re1(e){if(!e)return"";let t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"2-digit"})}function Be1(e){return{slug:e.slug,title:e.title,excerpt:e.excerpt,cover:e.cover_image?M9(e.cover_image)??"":"",meta:e.category||void 0,dateLabel:Re1(e.published_at)||void 0}}function g9({value:e,onChange:t,snapshotCount:a=_e1}){let[s,c]=Ne1("idle"),l=Array.isArray(e),r=l?e.length:0,o=Ve1(!0),i=h=>{c("loading"),Ie1(h).then(m=>{if(!o.current)return;if(m===null){c("error");return}c("idle");let p=m.slice(0,a).map(Be1);p6(p,e??null)&&t(p)})};Ee1(()=>(o.current=!0,i(!1),()=>{o.current=!1}),[]);let n=s==="loading"?"Syncing from Storefront \u2192 Blog\u2026":s==="error"?"Couldn\u2019t reach Storefront \u2192 Blog.":l?`Auto-synced from Storefront \u2192 Blog \xB7 ${r} post${r===1?"":"s"}`:"Linking to Storefront \u2192 Blog\u2026";return De1("div",{children:[ib($9,{label:"Blog posts"}),ib(T4,{status:s,statusText:n,onRefresh:()=>i(!0),busy:s==="loading",spaced:!1,hint:ib(Ze1,{children:"Auto-refreshes from the most-recent visible posts each time you open the editor. Set how many appear with \u201CPosts to display\u201D."})})]})}import{useState as Oe1}from"react";import{jsx as R0,jsxs as s8}from"react/jsx-runtime";var KZ=3,JZ="featured",yh="tabs",QZ="portrait",ha="spread",wh="count",eD=[{label:"Even grid",value:"even"},{label:"Featured first",value:JZ},{label:"Tabs",value:yh},{label:"Photo cards",value:QZ},{label:"Staggered spread",value:ha},{label:"Count",value:wh}],Ge1=[QZ,ha],tD="even",N6={min:2,max:11,step:1,fallback:7,unit:"of 12"},qe1="bottom-left",We1=55,Ue1="bottom";function je1(e){let t=typeof e=="number"?e:Number.parseFloat(String(e??"")),a=Number.isFinite(t)?Math.min(N6.max,Math.max(N6.min,Math.round(t))):N6.fallback;return`${a}fr ${12-a}fr`}var YZ={1:"grid-cols-1",2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[800px]:grid-cols-1",4:"grid-cols-4 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1"},XZ={2:"grid-cols-2",3:"grid-cols-3 max-[800px]:grid-cols-2",4:"grid-cols-4 max-[1100px]:grid-cols-3 max-[800px]:grid-cols-2"},$e1="Find by name",Ke1="Nobody by that name.";function Ye1(e,t){let a=c=>c.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLocaleLowerCase().trim(),s=a(t);return s===""||a(e).includes(s)}function Xe1({card:e,scaffold:t,lower:a=!1}){return s8(t0,{href:e.href||"#",className:`sf-card group relative isolate flex aspect-[3/4] overflow-hidden bg-surface${a?" min-[801px]:mt-16":""}`,"aria-disabled":t||void 0,tabIndex:t?-1:void 0,children:[R0("div",{className:"absolute inset-0 transition-transform duration-700 group-hover:scale-[1.03] motion-reduce:transition-none motion-reduce:group-hover:scale-100",children:R0(C0,{label:`card-${e.slug}`,src:e.cover||void 0,sizes:"(max-width: 800px) 50vw, 25vw"})}),R0("div",{"aria-hidden":!0,className:"absolute inset-0 z-0",style:{background:"linear-gradient(180deg, transparent 45%, color-mix(in srgb, var(--bg) 88%, transparent) 100%)"}}),e.meta&&R0("span",{className:"absolute left-3 top-3 z-[1] rounded-[var(--sf-button-radius,999px)] bg-bg/85 px-2.5 py-1 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.16em] text-accent",children:C(e.meta)}),s8("div",{className:"relative z-[1] mt-auto flex w-full flex-col gap-1 p-4 max-[800px]:p-3",children:[R0("h3",{className:"font-heading3 text-[length:var(--size-headingSmall,24px)] leading-[1.1] tracking-[-0.01em] text-fg",children:j(e.title,!1)}),e.dateLabel&&R0("p",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.16em] text-accent",children:C(e.dateLabel)}),e.excerpt&&R0("p",{className:"line-clamp-2 text-[length:var(--size-body,14px)] leading-[1.45] text-fg-dim",children:C(e.excerpt)})]})]})}function Je1({cards:e,scaffold:t}){return R0("nav",{"aria-label":"Days",className:"-mx-1 overflow-x-auto",children:R0("ul",{className:"flex min-w-max gap-2 px-1 pb-1",children:e.map((a,s)=>{let c=!!a.meta;return R0("li",{children:s8(t0,{href:a.href||"#","aria-current":c?"page":void 0,"aria-disabled":t||void 0,tabIndex:t?-1:void 0,className:`flex flex-col gap-0.5 rounded-[var(--sf-button-radius,999px)] border px-5 py-2.5 transition-colors ${c?"border-accent bg-accent text-accent-ink":"border-line text-fg hover:border-accent hover:text-accent"}`,children:[R0("span",{className:"font-heading3 text-[length:var(--size-body,15px)] leading-[1.2]",children:j(a.title,!1)}),a.excerpt&&R0("span",{className:`font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] ${c?"opacity-80":"text-fg-dim"}`,children:C(a.excerpt)})]})},`${a.slug}-${s}`)})})})}function Qe1({count:e,words:t,href:a}){let s=s8("span",{className:"inline-flex items-baseline gap-3",children:[R0("span",{className:"font-heading text-[length:var(--size-headingLarge,64px)] leading-none text-accent",children:e}),t!==void 0&&R0("span",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg",children:t})]});return a?R0(t0,{href:a,className:"inline-flex hover:opacity-85",children:s}):s}var et1="relative z-[2] bg-bg px-[var(--sf-site-gutter,40px)] py-[120px] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:py-[70px]",tt1="relative z-[2] bg-bg px-[var(--sf-site-gutter,40px)] pt-0 pb-[120px] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:pt-0 max-[800px]:pb-[70px]",at1="relative z-[2] bg-bg px-[var(--sf-site-gutter,40px)] py-[32px] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:py-[24px]";function nb({num:e,title:t,link:a,posts:s,columns:c,limit:l,showAll:r=!1,editing:o=!1,cardImage:i,gap:n,layout:h,featuredWidth:m,listCover:p=!0,featuredDarken:u,omitHead:g=!1,sample:d,nameFilter:f=!1}){let[v,z]=Oe1(""),x=s??[],k=r?x.length:typeof l=="number"&&l>0?l:KZ,M=x.slice(0,k),A=o&&M.length===0;if(M.length===0&&!o)return null;let B=r?KZ:k,P=A?d?.length?d.slice(0,r?d.length:B):Array.from({length:B},(E,q)=>({slug:`placeholder-${q}`,title:"Blog post title",excerpt:"A short summary of the post appears here.",cover:"",meta:"Journal",dateLabel:"Date"})):M,D=_3("Events",n,"both"),F=h===JZ&&P.length>1,T=je1(m),V=h===yh,Z=h===wh,_=Ge1.includes(h??""),N=f&&!V&&!Z&&!F,t1=N?P.filter(E=>Ye1(E.title,v)):P;return Z?R0("section",{className:at1,children:R0(Qe1,{count:P.length,words:g||t===void 0?void 0:j(t,!1),href:g?void 0:a?.href})}):s8("section",{className:g?tt1:et1,style:Y2(i),children:[g?null:R0(Q1,{num:e!==void 0?C(e):void 0,title:t!==void 0?j(t,!1):void 0,link:a?{text:C(a.text),href:a.href}:void 0}),N&&s8("div",{className:"mb-6 flex flex-col gap-2",children:[s8("label",{className:"flex max-w-[360px] flex-col gap-1.5",children:[R0("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em] text-fg-dim",children:$e1}),R0("input",{type:"search",value:v,onChange:E=>z(E.target.value),autoComplete:"off",className:"rounded-[var(--sf-button-radius,6px)] border border-line bg-bg px-4 py-2.5 text-[length:var(--size-body,15px)] text-fg outline-none focus:border-accent"})]}),t1.length===0&&R0("p",{role:"status",className:"text-[length:var(--size-body,14px)] text-fg-dim",children:Ke1})]}),V?R0(Je1,{cards:P,scaffold:A}):_?R0("div",{className:`sf-card-grid grid${D.className} ${h===ha?"grid-cols-3 max-[800px]:grid-cols-2":XZ[Math.min(4,Math.max(2,c??3))]??XZ[3]}`,style:D.style,children:t1.map((E,q)=>R0(Xe1,{card:E,scaffold:A,lower:h===ha&&q%3===1},`${E.slug}-${q}`))}):F?s8("div",{className:`sf-card-grid grid grid-cols-[var(--sf-events-split)] max-[800px]:grid-cols-1${D.className}`,style:{...D.style,"--sf-events-split":T},children:[R0(ut,{post:P[0],href:P[0].href,scaffold:A,layout:"cover",darken:u??We1,darkenStyle:Ue1,placement:qe1},`${P[0].slug}-0`),R0("div",{className:`grid auto-rows-min${D.className}`,style:D.style,children:P.slice(1).map((E,q)=>R0(ut,{post:E,href:E.href,scaffold:A,showCover:p},`${E.slug}-${q+1}`))})]}):R0("div",{className:`sf-card-grid grid${D.className} ${YZ[Math.min(4,Math.max(1,c??3))]??YZ[3]}`,style:D.style,children:t1.map((E,q)=>R0(ut,{post:E,href:E.href,scaffold:A},`${E.slug}-${q}`))})]})}import{LayoutIcon as lt1,ColumnsIcon as rt1,WidthIcon as ot1,ImageIcon as it1,OpacityIcon as nt1,ListIcon as ht1,HashIcon as mt1,SearchIcon as pt1}from"efficient-easel/icons";import{jsx as ct1}from"react/jsx-runtime";var v9={num:L.sectionNumber,title:"Section title",link:L.viewAll},st1=[{key:"sample-1",title:"First card",excerpt:"A line about it appears here."},{key:"sample-2",title:"Second card",excerpt:"A line about it appears here."},{key:"sample-3",title:"Third card",excerpt:"A line about it appears here."},{key:"sample-4",title:"Fourth card",excerpt:"A line about it appears here."}],aD=(e,t)=>({slug:e.key||`card-${t}`,title:e.title??"",excerpt:e.excerpt??"",cover:e.cover??"",meta:e.meta||void 0,dateLabel:e.dateLabel||void 0,href:e.href||"#"}),sD={label:"Latest Posts",defaultProps:{num:"",title:"",linkText:"",linkHref:"/journal",columns:3,limit:3,showAll:!1},render:e=>{let t=D1(e.headPlacement)==="own-box",a=o=>t?void 0:o,s=y(e.linkText,v9.link,e.puck),l=B8(e)!==""?fi(e,!!e.puck?.isEditing,st1):null,r=l?l.sample?[]:l.rows.map(aD):e.posts;return ct1(nb,{num:a(y(e.num,v9.num,e.puck)),title:a(y(e.title,v9.title,e.puck)),link:a(s?{text:s,href:a1(e.linkHref)||"/journal"}:void 0),omitHead:t,posts:r,sample:l?.sample?l.rows.map(aD):void 0,columns:e.columns,limit:e.limit,showAll:e.showAll,layout:e.layout,featuredWidth:e.featuredWidth,listCover:e.listCover,featuredDarken:e.featuredDarken,cardImage:e.cardImage,gap:e.gap,nameFilter:e.nameFilter===!0,editing:e.puck?.isEditing})}};import{jsx as c8}from"react/jsx-runtime";var ut1=50,cD={fields:{_gContent:b("Content"),num:H("Number",v9.num),title:O("Heading",v9.title),linkText:H("Button",v9.link),linkHref:H1("Link"),dataSource:bi("Cards from","Blog posts"),_gPosts:b("Blog posts"),posts:a2(g9,{snapshotCount:ut1}),_gLayout:b("Layout"),layout:d1("Arrangement",c8(lt1,{}),eD,tD),columns:s1("Columns",c8(rt1,{}),2,4,1,3),featuredWidth:s1("Featured width",c8(ot1,{}),N6.min,N6.max,N6.step,N6.fallback,N6.unit),listCover:c1("Show cover image on the smaller cards",!0,c8(it1,{})),featuredDarken:s1("Darken",c8(nt1,{}),V2.min,V2.max,V2.step,55,V2.unit),nameFilter:c1("Filter by name",!1,c8(pt1,{})),gap:I3("Events"),showAll:c1("Show all blog posts",!1,c8(ht1,{})),limit:s1("Posts to display",c8(mt1,{}),1,20,1,3),cardImage:J6()},resolveFields:(e,{fields:t,parent:a})=>{let s=e.props,l={...xi("Events",t,e.props,{hides:["_gPosts","posts"]})},r=o=>O1(W1(o,a,U1),e.props.headPlacement,B1.Events.headRows);if(s.showAll&&delete l.limit,s.layout==="featured")delete l.columns;else for(let o of["featuredWidth","listCover","featuredDarken"])delete l[o];if(s.layout===yh||s.layout===wh)for(let o of["columns","nameFilter","cardImage"])delete l[o];return s.layout===ha&&delete l.columns,s.layout==="featured"&&delete l.nameFilter,r(l)}};import{jsx as Ch}from"react/jsx-runtime";import{SettingsDefaultReset as dt1,SettingsField as gt1,SettingsSegmented as vt1}from"efficient-easel/panel";import{WidthIcon as ft1}from"efficient-easel/icons";function kh({value:e,resolved:t,onChange:a,label:s="Width",labelId:c,followsLabel:l,hint:r}){let o=e===void 0,i=o?t:e;return Ch(gt1,{label:s,labelId:c,icon:Ch(ft1,{}),value:o?l:void 0,changed:!o,action:Ch(dt1,{label:s,changed:!o,onReset:()=>a(void 0)}),hint:r,children:Ch(vt1,{options:[{label:am.page,id:"content"},{label:am.full,id:"full"}],value:i,ariaLabel:s,onChange:a})})}import{SettingsField as bt1,SettingsSwitch as xt1}from"efficient-easel/panel";import{BlockColumnIcon as zt1}from"efficient-easel/icons";import{Fragment as yt1,jsx as Mh,jsxs as wt1}from"react/jsx-runtime";function hb({value:e,onChange:t}){let a=z5(),s={...D9,...e},c=s[a];return Mh(bt1,{label:"Logo fills its column",icon:Mh(zt1,{}),action:Mh(xt1,{checked:c,onChange:l=>t({...s,[a]:l}),ariaLabel:`Logo fills its column on ${g5[a]}`}),hint:wt1(yt1,{children:["Sets the ",Mh("strong",{children:g5[a]})," view \u2014 switch views in the top bar to set each one."]})})}import{SettingsField as Ct1,SettingsSwitch as kt1}from"efficient-easel/panel";import{FullWidthIcon as Mt1}from"efficient-easel/icons";import{Fragment as St1,jsx as Sh,jsxs as Lt1}from"react/jsx-runtime";function mb({value:e,onChange:t}){let a=z5(),s={...O9,...e},c=s[a];return Sh(Ct1,{label:"Logo fills its row",icon:Sh(Mt1,{}),action:Sh(kt1,{checked:c,onChange:l=>t({...s,[a]:l}),ariaLabel:`Logo fills its row on ${g5[a]}`}),hint:Lt1(St1,{children:["Sets the ",Sh("strong",{children:g5[a]})," view \u2014 switch views in the top bar to set each one."]})})}import{jsx as At1}from"react/jsx-runtime";function pb({value:e,onChange:t}){return At1(Bs,{label:"Columns per line",unit:"columns",steps:fy,value:Pl(e),onChange:t})}import{useContext as Ht1,useEffect as Ft1,useRef as Tt1,useState as rD}from"react";import{jsx as ma,jsxs as lD}from"react/jsx-runtime";function Dc(){let e=vB();return lD("div",{className:"flex flex-wrap justify-between gap-x-6 gap-y-3 border-t border-line pt-6 font-mono text-[13px] uppercase tracking-[0.15em] text-fg-dim max-[800px]:flex-col max-[800px]:gap-3",children:[ma("span",{children:e}),lD("span",{className:"flex flex-wrap items-center gap-3",children:[ma("span",{children:"Privacy"}),ma("span",{"aria-hidden":!0,children:"\xB7"}),ma("span",{children:"Terms"}),ma("span",{"aria-hidden":!0,children:"\xB7"}),ma("span",{children:"Cookies"})]})]})}import{jsx as ub,jsxs as Vt1}from"react/jsx-runtime";var oD={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4",5:"grid-cols-5",6:"grid-cols-6"},Pt1={1:"min-[720px]:grid-cols-1",2:"min-[720px]:grid-cols-2",3:"min-[720px]:grid-cols-3",4:"min-[720px]:grid-cols-4",5:"min-[720px]:grid-cols-5",6:"min-[720px]:grid-cols-6"},Et1={1:"min-[1100px]:grid-cols-1",2:"min-[1100px]:grid-cols-2",3:"min-[1100px]:grid-cols-3",4:"min-[1100px]:grid-cols-4",5:"min-[1100px]:grid-cols-5",6:"min-[1100px]:grid-cols-6"};function db({blocks:e,editing:t=!1,width:a,columns:s,logoFill:c,logoRowFill:l}){let r=Ht1(ya),{desktop:o,tablet:i,mobile:n}=Pl(s),{desktop:h,tablet:m,mobile:p}={...D9,...c},{desktop:u,tablet:g,mobile:d}={...O9,...l},f=z5(),z=t?oD[f==="desktop"?o:f==="tablet"?i:n]:`${oD[n]} ${Pt1[i]} ${Et1[o]}`,x=Tt1(null),[k,M]=rD(1),[A,B]=rD(!1);if(Ft1(()=>{if(!t&&!r)return;let D=x.current;if(!D)return;let F=()=>{let t1=D.querySelector(".footer-block-grid");if(!t1)return;let E=t?f:wy(window.innerWidth),q=E==="desktop"?u:E==="tablet"?g:d;B(q);let K=E==="desktop"?h:E==="tablet"?m:p,W=getComputedStyle(t1).gridTemplateColumns.split(" ").filter(Boolean).length-1,r1=Math.max(t1.childElementCount-1,0);M(!q&&K&&W>=1?Math.max(Math.ceil(r1/W),1):1)},T,V=()=>{clearTimeout(T),T=setTimeout(F,0)},Z=[0,80,250,600].map(t1=>setTimeout(F,t1)),_=new MutationObserver(V);_.observe(D,{childList:!0,subtree:!0});let N=new ResizeObserver(V);return N.observe(D),()=>{clearTimeout(T),Z.forEach(clearTimeout),_.disconnect(),N.disconnect()}},[o,i,n,t,r,f,h,m,p,u,g,d]),!t&&!r)return null;let P=zl(yl(a))??void 0;return ub("footer",{ref:x,className:"border-t border-line bg-bg px-[var(--sf-site-gutter,40px)] pb-10 pt-20 max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:pt-14",style:{"--footer-logo-rows":k,"--footer-logo-col":A?"1 / -1":"1"},children:Vt1("div",{style:P,children:[ub(e,{className:`footer-block-grid mb-[60px] grid items-start gap-x-10 gap-y-12 ${z}`,minEmptyHeight:160}),ub(Dc,{})]})})}import{jsx as Nt1}from"react/jsx-runtime";var gb={blocks:{type:"slot",allow:["FooterLogo","FooterMenu","FooterDivider","FooterGroup","FooterText","FooterEmailSignup","FooterSocial"]}},iD={label:"Footer",fields:gb,defaultProps:{columns:by,logoFill:D9,logoRowFill:O9},render:({blocks:e,width:t,columns:a,logoFill:s,logoRowFill:c,puck:l})=>Nt1(db,{blocks:e,width:t,columns:a,logoFill:s,logoRowFill:c,editing:l?.isEditing})};import{jsx as Lh}from"react/jsx-runtime";var nD={fields:{_gLayout:b("Layout"),width:{type:"custom",render:({value:e,onChange:t})=>Lh(kh,{value:e==="full"?"full":e==="page"||e==="content"?"content":void 0,resolved:"content",followsLabel:"Follows the page",hint:"Whether the footer's blocks sit on the page's column, or run edge to edge. The background always spans the screen.",onChange:a=>t(a)})},columns:{type:"custom",render:({value:e,onChange:t})=>Lh(pb,{value:e,onChange:t})},logoFill:{type:"custom",render:({value:e,onChange:t})=>Lh(hb,{value:e,onChange:t})},logoRowFill:{type:"custom",render:({value:e,onChange:t})=>Lh(mb,{value:e,onChange:t})},_gBlocks:b("Blocks"),blockList:c2("Footer"),blocks:gb.blocks}};import{WeightIcon as _t1,WidthIcon as It1,PhoneIcon as Rt1}from"efficient-easel/icons";import{jsx as vb}from"react/jsx-runtime";var hD={fields:{_gStyle:b("Style"),thickness:s1("Thickness",vb(_t1,{}),1,8,1,1,"px"),lengthPct:s1("Length",vb(It1,{}),10,100,1,100,"%"),hideOnMobile:c1("Hide on mobile",!1,vb(Rt1,{}))}};var mD={fields:{_gContent:b("Content"),heading:E1("Heading","Join our email list"),placeholder:G("Field placeholder","Email address"),buttonLabel:G("Button","Subscribe")}};import{AlignLeftIcon as Dt1}from"efficient-easel/icons";import{jsx as pD}from"react/jsx-runtime";var Bt1={start:"items-start",center:"items-center",end:"items-end"};function fb({direction:e="vertical",gap:t,align:a="start",content:s}){let c=_3("FooterGroup",t,e==="horizontal"?"inline":"block");return pD("div",{className:"min-w-0",children:pD(s,{className:`flex ${e==="horizontal"?"flex-row flex-wrap":"flex-col"} ${Bt1[a]}${c.className}`,style:c.style,minEmptyHeight:80})})}import{jsx as Zt1}from"react/jsx-runtime";var bb={blocks:{type:"slot",allow:["FooterText","FooterEmailSignup","FooterMenu","FooterDivider","FooterSocial"]}},uD={label:"Footer Box",fields:bb,defaultProps:{direction:"vertical",align:"start"},render:({direction:e,gap:t,align:a,blocks:s})=>Zt1(fb,{direction:e,gap:t,align:a,content:s})};import{jsx as Ot1}from"react/jsx-runtime";var dD={fields:{_gLayout:b("Layout"),direction:b1("Direction",p8("`Direction` names how a container's children run \u2014 a MODIFIER, not a thing. doc/naming.md N10.1 gives the idea a dash in its Glyph column; editor-shell's own `direction` meaning says the bare row is CORRECT and not an omission (SS seat, 2026-09-11)."),[{label:"Vertical",value:"vertical"},{label:"Horizontal",value:"horizontal"}],"vertical"),gap:I3("FooterGroup"),align:b1("Alignment",Ot1(Dt1,{}),[{label:"Start",value:"start"},{label:"Center",value:"center"},{label:"End",value:"end"}],"start"),_gBlocks:b("Blocks"),blockList:c2("FooterGroup"),blocks:bb.blocks}};import{WidthIcon as Gt1,AlignLeftIcon as qt1,LogoIcon as Wt1,PaddingTopIcon as Ut1,PaddingRightIcon as jt1,PaddingBottomIcon as $t1,PaddingLeftIcon as Kt1}from"efficient-easel/icons";import{jsx as f9}from"react/jsx-runtime";var gD={fields:{_gContent:b("Content"),tagline:E1("Body","Short brand tagline"),_gStyle:b("Style"),widthPct:s1("Width",f9(Gt1,{}),40,400,1,100,"%"),align:b1("Alignment",f9(qt1,{}),[{label:"Start",value:"left"},{label:"Center",value:"center"},{label:"End",value:"right"}],"left"),reverse:b1("Logo color",f9(Wt1,{}),[{label:"Auto contrast",value:"auto"},{label:"As uploaded",value:"off"}],"auto"),padTop:s1("Padding top",f9(Ut1,{}),0,120,2,0,"px"),padRight:s1("Padding right",f9(jt1,{}),0,120,2,0,"px"),padBottom:s1("Padding bottom",f9($t1,{}),0,120,2,0,"px"),padLeft:s1("Padding left",f9(Kt1,{}),0,120,2,0,"px")}};import{Button as Yt1}from"efficient-shell/ui";import{SettingsField as Xt1}from"efficient-easel/panel";import{FieldSelect as Jt1}from"efficient-easel/fields";import{MenuIcon as Qt1}from"efficient-easel/icons";import{useCallback as ea1,useEffect as vD,useState as xb}from"react";import{jsx as pa,jsxs as zb}from"react/jsx-runtime";function yb({value:e,onChange:t}){let[a,s]=xb(null),[c,l]=xb(!1),r=ea1(v=>{s(v),l(!0)},[]);vD(()=>{let v=!1;return mp(N3()).then(z=>{v||r(z)}).catch(()=>{v||s([])}),()=>{v=!0}},[r]),vD(()=>{let v=!1,z=IM(()=>{Wk(N3()).then(x=>{v||r(x)}).catch(()=>{})});return()=>{v=!0,z()}},[r]);let o=a===null,i=!!(e?.id||e?.handle),n=c&&i&&!Dr(a??[],e),h=!i&&(e?.items?.length??0)>0,m=n?"":Dr(a??[],e)?.id??"",p=v=>t({id:v.id,handle:v.handle,name:v.name,items:v.items.map(z=>({label:z.label,url:z.url}))}),u=v=>{if(!v){t(null);return}let z=(a??[]).find(x=>x.id===v);z&&p(z)},[g,d]=xb(!1),f=()=>{i&&(d(!0),mp(N3(),!0).then(v=>{r(v);let z=Dr(v,e);z&&p(z)}).catch(()=>{}).finally(()=>d(!1)))};return zb("div",{children:[pa(Xt1,{label:"Menu",icon:pa(Qt1,{}),hint:!o&&a&&a.length===0?"Create menus in Storefront \u2192 Menus, then pick one here.":void 0,children:pa(Jt1,{value:m,ariaLabel:"Menu",onChange:u,readOnly:o||(a?.length??0)===0,options:[{label:o?"Loading menus\u2026":a&&a.length===0?"No menus found":"Select a menu\u2026",value:""},...(a??[]).map(v=>({label:`${v.name} (${v.item_count??v.items.length})`,value:v.id}))]})}),h?pa("p",{className:"mt-1.5 text-[12px] text-[var(--sf-warning,#b45309)]",children:_k}):null,n?pa("p",{className:"mt-1.5 text-[12px] text-[var(--sf-warning,#b45309)]",children:Ik(e?.name??"The linked menu")}):null,i&&!n?zb("div",{className:"mt-1.5 flex items-center justify-between gap-2",children:[zb("p",{className:"text-[12px] text-fg-dim",children:["Linked to \u201C",e?.name,"\u201D \u2014 ",e?.items?.length??0," link",(e?.items?.length??0)===1?"":"s",". Re-pull after editing the menu:"]}),pa(Yt1,{variant:"link",size:"sm",className:"shrink-0",onClick:f,disabled:g,children:g?"Updating\u2026":"Update links"})]}):null]})}import{PhoneIcon as ta1,LineBetweenIcon as aa1}from"efficient-easel/icons";import{jsx as wb}from"react/jsx-runtime";var fD={fields:{_gContent:b("Content"),menu:{type:"custom",render:({value:e,onChange:t})=>wb(yb,{value:e,onChange:t})},heading:G("Heading","Column heading"),_gStyle:b("Style"),accordionMobile:c1("Show as accordion on mobile",!1,wb(ta1,{})),showDividers:c1("Dividers between links",!1,wb(aa1,{}))}};import{jsx as Oc}from"react/jsx-runtime";var bD={small:16,medium:20,large:24},Cb=0,kb=32,zD=2,Gc=0,xD={start:"justify-start",center:"justify-center",end:"justify-end"};function Mb({iconStyle:e=le,iconSize:t="medium",align:a="start",gap:s=Gc,editing:c=!1}){let l=dB(),r=sw(aw(l));if(r.length===0)return c?Oc("div",{"data-social-placeholder":"",className:"rounded border border-dashed border-line px-3 py-2 text-[13px] text-fg-dim",children:"Add your social links"}):null;let o=bD[t]??bD.medium,n={gap:Math.min(kb,Math.max(Cb,Number.isFinite(s)?s:0)),"--social-mark":`${o}px`};return Oc("ul",{"data-social-block":"","aria-label":"Social media",className:`flex list-none flex-wrap p-0 [margin:calc((44px-var(--social-mark))/-2)] max-[800px]:[margin:calc((40px-var(--social-mark))/-2)] ${xD[a]??xD.start}`,style:n,children:r.map(({platform:h,href:m,label:p})=>Oc("li",{children:Oc("a",{href:m,target:"_blank",rel:"noopener noreferrer","aria-label":`${p} (opens in a new tab)`,className:"grid h-11 w-11 place-items-center rounded text-fg transition-colors hover:text-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-4px] focus-visible:outline-current motion-reduce:transition-none max-[800px]:h-10 max-[800px]:w-10",children:Oc(dw,{platform:h,iconStyle:e,size:o})})},h))})}import{Button as sa1}from"efficient-shell/ui";import{Fragment as ca1,jsx as Sb,jsxs as la1}from"react/jsx-runtime";function Lb(){let{openPanel:e}=Yl();return la1(ca1,{children:[Sb($9,{label:"Social links"}),Sb("p",{className:"es-field-hint sf-hint-keep",children:"The links are typed once for the whole website, in Site settings."}),Sb(sa1,{variant:"link",size:"sm",onClick:e,children:"Edit social links \u2192"})]})}import{StylesIcon as ra1,TextSizeIcon as oa1,AlignLeftIcon as ia1,GapIcon as na1}from"efficient-easel/icons";import{jsx as qc}from"react/jsx-runtime";var yD={fields:{_gStyle:b("Style"),iconStyle:b1("Icon style",qc(ra1,{}),[{label:"Outline",value:"outline"},{label:"Solid",value:"solid"}],le),iconSize:b1("Icon size",qc(oa1,{}),[{label:"Small",value:"small"},{label:"Medium",value:"medium"},{label:"Large",value:"large"}],"medium"),_socialLinks:{type:"custom",render:()=>qc(Lb,{})},_gLayout:b("Layout"),align:b1("Alignment",qc(ia1,{}),[{label:"Start",value:"start"},{label:"Center",value:"center"},{label:"End",value:"end"}],"start"),gap:s1("Gap",qc(na1,{}),Cb,kb,zD,Gc,"px")}};import{TextSizeIcon as ha1}from"efficient-easel/icons";import{jsx as ma1}from"react/jsx-runtime";var wD={fields:{_gContent:b("Content"),text:E1("Body","Footer text"),_gStyle:b("Style"),size:b1("Size",ma1(ha1,{}),[{label:"S",value:"sm"},{label:"M",value:"md"},{label:"L",value:"lg"}],"md"),tone:Fo()}};var CD={fields:{_gForm:b("Form"),formSlug:H5(),_gContent:b("Content"),heading:G("Heading override"),intro:E1("Intro"),submitText:G("Submit button"),finePrint:G("Fine print")}};var kD={fields:{}};var Ah="e.g. D00123 \xB7 blank = the whole store";import{useState as l8}from"react";import{Fragment as da1,jsx as o3,jsxs as Wc}from"react/jsx-runtime";var Hh="w-full border-2 border-line bg-bg px-4 py-3.5 font-display text-[17px] tracking-[-0.005em] text-fg outline-none transition-colors placeholder:text-fg-dim hover:border-fg-dim focus:border-accent",pa1="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] py-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",ua1="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-0 pb-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]";function Ab({eyebrow:e,title:t,designCode:a,omitHead:s=!1,editing:c=!1}={}){let[l,r]=l8(""),[o,i]=l8(""),[n,h]=l8(0),[m,p]=l8(""),[u,g]=l8(""),[d,f]=l8(!1),[v,z]=l8(!1),[x,k]=l8(null);async function M(A){if(A.preventDefault(),!(c||d)){if(n<1){k("Choose a star rating.");return}f(!0),k(null);try{await g0.submitReview({authorName:l.trim(),...o.trim()?{email:o.trim()}:{},rating:n,...m.trim()?{title:m.trim()}:{},body:u.trim(),...a?.trim()?{designCode:a.trim()}:{}}),z(!0)}catch{k("Something went wrong \u2014 your review wasn't sent. Please try again.")}finally{f(!1)}}}return o3("section",{className:"relative z-[2] border-t border-line bg-surface",children:Wc("div",{className:s?ua1:pa1,children:[s?null:Wc(da1,{children:[(e??"").trim()&&o3(V1,{text:e??"",scaled:!1,className:"mb-4 block"}),(t??"").trim()&&o3("h2",{className:"mb-11 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:mb-8 max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:j(t??"",!1)})]}),v?o3("p",{role:"status",className:"max-w-[560px] font-serif text-[19px] italic leading-[1.6] text-fg-dim",children:"Thanks \u2014 your review will appear once approved."}):Wc("form",{className:"flex max-w-[720px] flex-col gap-5",onSubmit:M,children:[Wc("div",{className:"grid grid-cols-2 gap-3 max-[640px]:grid-cols-1",children:[o3(D2,{label:"Name",required:!0,children:o3("input",{type:"text",required:!0,value:l,onChange:A=>r(A.target.value),className:Hh})}),o3(D2,{label:"Email \u2014 never shown publicly",children:o3("input",{type:"email",value:o,onChange:A=>i(A.target.value),className:Hh})})]}),Wc("div",{className:"flex flex-col gap-2",children:[o3(b8,{required:!0,children:"Rating"}),o3("div",{role:"group","aria-label":"Rating",className:"flex gap-1",children:[1,2,3,4,5].map(A=>o3("button",{type:"button","aria-pressed":n>=A,"aria-label":`${A} star${A===1?"":"s"}`,onClick:()=>{h(A),k(null)},className:["cursor-pointer text-[30px] leading-none transition-colors",n>=A?"text-accent":"text-fg-dim/30 hover:text-fg-dim"].join(" "),children:"\u2605"},A))})]}),o3(D2,{label:"Review title (optional)",children:o3("input",{type:"text",value:m,onChange:A=>p(A.target.value),className:Hh})}),o3(D2,{label:"Your review",required:!0,children:o3("textarea",{required:!0,rows:5,value:u,onChange:A=>g(A.target.value),className:Hh+" resize-y"})}),x&&o3("p",{role:"alert",className:"font-mono text-[12px] uppercase tracking-[0.18em] text-alert",children:x}),o3("button",{type:c?"button":"submit",disabled:d,className:"cursor-pointer self-start bg-btn px-8 py-4 font-mono text-[14px] uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg hover:text-bg disabled:cursor-wait disabled:opacity-60",children:d?"Sending\u2026":"Submit review \u2192"})]})]})})}import{jsx as ga1}from"react/jsx-runtime";var Uc={eyebrow:"Your turn",title:"Leave a *review.*"},MD={label:"Review Form",defaultProps:{eyebrow:"",title:"",designCode:""},render:e=>{let t=D1(e.headPlacement)==="own-box",a=s=>t?void 0:s;return ga1(Ab,{eyebrow:a(y(e.eyebrow,Uc.eyebrow,e.puck)),title:a(y(e.title,Uc.title,e.puck)),omitHead:t,designCode:a1(e.designCode)||void 0,editing:e.puck?.isEditing})}};var SD={fields:{_gContent:b("Content"),eyebrow:H("Eyebrow",Uc.eyebrow),title:O("Heading",Uc.title),_gSource:b("Reviews"),designCode:J2(G("Design code",Ah))},resolveFields:(e,{fields:t,parent:a})=>O1(W1(t,a,U1),e.props.headPlacement,B1.ReviewForm.headRows)};import{StylesIcon as ka1,HashIcon as Ma1,ColumnsIcon as Sa1}from"efficient-easel/icons";import{useEffect as va1,useState as fa1}from"react";function LD(e,t){let[a,s]=fa1(null);return va1(()=>{let c=!1;return s(null),g0.listReviews({...e?{limit:e}:{},...t?{designCode:t}:{}}).then(l=>{c||s(l)}),()=>{c=!0}},[e,t]),a}import{Fragment as wa1,jsx as Z4,jsxs as Fh}from"react/jsx-runtime";var AD=[{id:"sample-review-1",authorName:"Sample reviewer",rating:5,title:"Sample review title",body:"Approved customer reviews appear here automatically \u2014 this card is only a preview of the section's shape.",designCode:"",createdAt:""},{id:"sample-review-2",authorName:"Sample reviewer",rating:4,title:"",body:"Reviews are collected by the Review Form section and wait for your approval before they show.",designCode:"",createdAt:""},{id:"sample-review-3",authorName:"Sample reviewer",rating:5,title:"Another sample",body:"Set a product design code on this section to show one product's reviews; leave it blank for the whole store.",designCode:"",createdAt:""}];function ba1(e){let t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleDateString("en-US",{month:"long",year:"numeric"})}function xa1({rating:e}){let t=Math.min(5,Math.max(0,Math.round(e)));return Z4("div",{role:"img","aria-label":`${t} out of 5 stars`,className:"flex gap-1 text-[length:var(--size-body,17px)] leading-none",children:Array.from({length:5}).map((a,s)=>Z4("span",{"aria-hidden":!0,className:s<t?"text-accent":"text-fg-dim/30",children:"\u2605"},s))})}var za1="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] py-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",ya1="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-0 pb-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]";function Hb({look:e,eyebrow:t,title:a,columns:s,limit:c,designCode:l,omitHead:r=!1,editing:o=!1}={}){let i=LD(c??6,l),n=Math.min(3,Math.max(1,s??3)),h=i&&i.length>0?i:o?AD:[],m=h===AD;return!o&&h.length===0?null:Z4("section",{className:"relative z-[2] border-t border-line bg-surface",children:Fh("div",{className:r?ya1:za1,children:[r?null:Fh(wa1,{children:[(t??"").trim()&&Z4(V1,{text:t??"",look:e,className:"mb-4 block"}),(a??"").trim()&&Z4("h2",{className:"mb-11 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:mb-8 max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:j(a??"",!1)})]}),Z4("div",{className:"sf-card grid grid-cols-1 gap-px border border-line bg-line min-[700px]:[grid-template-columns:repeat(var(--rv-cols),minmax(0,1fr))]",style:{"--rv-cols":String(n)},children:h.map(p=>Fh("article",{className:["flex flex-col gap-4 bg-bg p-9 max-[800px]:p-7",m?"opacity-60":""].join(" "),children:[Z4(xa1,{rating:p.rating}),p.title.trim()&&Z4("h3",{className:"font-display text-[length:var(--size-body,19px)] font-medium uppercase leading-[1.2] tracking-[-0.01em] text-fg",children:p.title}),Z4("div",{className:"flex-1 font-serif text-[length:var(--size-body,15px)] leading-[1.65] text-fg-dim",children:b0(p.body).map((u,g)=>Z4("p",{className:g?"mt-3":"",children:u},g))}),Fh("footer",{className:"flex items-baseline justify-between gap-4 border-t border-line pt-[18px]",children:[Z4("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.22em] text-fg",children:p.authorName}),Z4("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em] text-fg-dim",children:ba1(p.createdAt)})]})]},p.id))})]})})}import{jsx as Ca1}from"react/jsx-runtime";var jc={eyebrow:"Reviews",title:"From our *customers.*"},HD={label:"Reviews",defaultProps:{eyebrow:"",title:"",columns:3,limit:6,designCode:""},render:e=>{let t=D1(e.headPlacement)==="own-box",a=s=>t?void 0:s;return Ca1(Hb,{look:s4(e.eyebrowLook,"Reviews"),eyebrow:a(y(e.eyebrow,jc.eyebrow,e.puck)),title:a(y(e.title,jc.title,e.puck)),omitHead:t,columns:e.columns,limit:e.limit,designCode:a1(e.designCode)||void 0,editing:e.puck?.isEditing})}};import{jsx as Fb}from"react/jsx-runtime";var FD={fields:{_gContent:b("Content"),eyebrow:H("Eyebrow",jc.eyebrow),eyebrowLook:d1("Eyebrow style",Fb(ka1,{}),[...y4],e7("Reviews")),title:O("Heading",jc.title),_gSource:b("Reviews"),limit:s1("Reviews to display",Fb(Ma1,{}),3,12,1,6),designCode:J2(G("Design code",Ah)),_gStyle:b("Style"),columns:s1("Columns",Fb(Sa1,{}),1,3,1,3)},resolveFields:(e,{fields:t,parent:a})=>O1(W1(t,a,U1),e.props.headPlacement,B1.Reviews.headRows)};import{FullWidthIcon as Ha1}from"efficient-easel/icons";import{jsx as Tb,jsxs as La1}from"react/jsx-runtime";function $c({place:e,sections:t,editing:a=!1,fullWidth:s=!1,navTextCase:c,menuRow:l}){let o=La1(e==="footer"?"footer":"div",{"data-section-group":e,...e==="header"?{"data-header-nav-case":UB(c),"data-header-menu-row":jB(l)??"top"}:null,style:s===!0?{"--sf-site-width":"100vw"}:void 0,children:[a?Tb("p",{className:"px-5 pt-3 font-mono text-[11px] uppercase tracking-[0.15em] text-fg-dim",children:e==="header"?"Site header \u2014 above every page":"Site footer \u2014 below every page"}):null,Tb(t,{minEmptyHeight:120})]});return e==="header"?Tb(Zk,{children:o}):o}import{jsx as Aa1}from"react/jsx-runtime";var Pb={sections:{type:"slot"}},TD={label:"Site Footer",fields:Pb,render:({sections:e,fullWidth:t,puck:a})=>Aa1($c,{place:"footer",sections:e,fullWidth:t,editing:a?.isEditing})};import{jsx as Fa1}from"react/jsx-runtime";var PD={fields:{fullWidth:c1("Full width",!1,Fa1(Ha1,{})),sections:Pb.sections}};import{CaseIcon as Pa1,ContrastIcon as Ea1,FullWidthIcon as Va1,HeightIcon as Na1,LayoutIcon as _a1,StickyIcon as Ia1}from"efficient-easel/icons";import{jsx as Ta1}from"react/jsx-runtime";var Eb={sections:{type:"slot"}},ED={label:"Site Header",fields:Eb,defaultProps:{sticky:"always",topTextColor:"auto",sections:[]},render:({sections:e,fullWidth:t,navTextCase:a,menuRow:s,puck:c})=>Ta1($c,{place:"header",sections:e,fullWidth:t,navTextCase:a,menuRow:s,editing:c?.isEditing})};import{jsx as ua}from"react/jsx-runtime";var{sectionAccent:Ra1}=K9(e=>Ef(e)??qB,"Follow the site theme"),VD={fields:{heightPx:s1("Height",ua(Na1,{}),y5.min,y5.max,2,y5.default,"px"),fullWidth:c1("Full width",!1,ua(Va1,{})),sectionAccent:Ra1,topTextColor:b1("Text color at the top",ua(Ea1,{}),[{label:"Auto",value:"auto"},{label:"Light",value:"light"},{label:"Dark",value:"dark"}],"auto"),navTextCase:b1("Letters",ua(Pa1,{}),[{label:"Uppercase",value:"uppercase"},{label:"Capitalised",value:"capitalised"}],"uppercase"),menuRow:b1("Menu row",ua(_a1,{}),[{label:"Own row",value:"top"},{label:"Same row",value:"inline"}],"top"),sticky:b1("Sticky header",ua(Ia1,{}),[{label:"None",value:"none"},{label:"Always",value:"always"},{label:"On scroll up",value:"on_scroll_up"}],"always"),sections:Eb.sections}};import{jsx as Th,jsxs as Ba1}from"react/jsx-runtime";var z0={eyebrow:"Section number",title:"Show *us yours.*",body:"Tell people what they get for submitting, and what you do with what they send.",buttonText:"Submit \u2192",consent:"By submitting, you agree to our privacy policy. We never share contact details with third parties."};function Kc(e,t){return e===void 0?t:e}function Vb({eyebrow:e,title:t,body:a,buttonText:s,consent:c,formSlug:l,form:r,editing:o=!1,boxes:i,inBoxes:n=!1,...h}){let m=Kc(e,z0.eyebrow),p=Kc(t,z0.title),u=Kc(a,z0.body),g=Kc(s,z0.buttonText),d=Kc(c,z0.consent),f=S5(l,r),v=m7({form:f,formSlug:l,editing:o}),z=f===void 0,x=!!f||o;return!x&&!m&&!p&&!u?null:n&&i?Th("section",{className:N0(h)?"border-y border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]":"mx-auto max-w-[var(--sf-site-width,1600px)] border-y border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]",children:Th(i,{className:"grid grid-cols-2 items-start gap-[60px] max-[1100px]:grid-cols-1 max-[1100px]:gap-9"})}):Ba1("section",{className:N0(h)?"grid grid-cols-2 items-end gap-[60px] border-y border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:grid-cols-1 max-[1100px]:gap-9 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]":"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-2 items-end gap-[60px] border-y border-line px-[var(--sf-site-gutter,40px)] py-[120px] max-[1100px]:grid-cols-1 max-[1100px]:gap-9 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]",children:[Th(_L,{eyebrow:m,title:p}),Th(Bo,{body:u,buttonLabel:g,consent:d,form:f,submission:v,showForm:x,resolving:z,editing:o})]})}var ND={fields:{_gTextStyle:b("Text style"),...Object.fromEntries(Zo.map(e=>[Do[e],d1(gu[e],$e(gu[e]),[{label:"Section's own",value:""},...u5.map(t=>({label:A9[t],value:t}))],"")])),_gContent:b("Content"),eyebrow:H("Eyebrow",z0.eyebrow),title:O("Heading",z0.title),body:O("Body",z0.body),formSlug:H5(),buttonText:H("Button",z0.buttonText),consent:O("Consent line",z0.consent)},resolveFields:(e,{fields:t})=>{let a=e.props.region,s=t,c=["eyebrow","title"],l=["body","formSlug","buttonText","consent"],r=Zo.map(n=>Do[n]),o=a==="head"?c:l,i={};for(let[n,h]of Object.entries(s)){if(n.startsWith("_")){i[n]=h;continue}if(r.includes(n)){a!=="head"&&(i[n]=h);continue}o.includes(n)&&(i[n]=h)}return i}};import{jsx as Za1}from"react/jsx-runtime";var Nb={boxes:{type:"slot",allow:["SubmitBox"]}},_D={label:"Photo Submission Form",fields:Nb,defaultProps:{eyebrow:z0.eyebrow,title:z0.title,body:z0.body,formSlug:"",buttonText:z0.buttonText,consent:z0.consent},render:e=>Za1(Vb,{boxes:e.boxes,inBoxes:e.layout==="boxes",eyebrow:Q0(e.eyebrow,z0.eyebrow,e.puck),title:Q0(e.title,z0.title,e.puck),body:Q0(e.body,z0.body,e.puck),buttonText:Q0(e.buttonText,z0.buttonText,e.puck),consent:Q0(e.consent,z0.consent,e.puck),formSlug:a1(e.formSlug)||void 0,form:e.form,editing:e.puck?.isEditing})};var ID={fields:{_gContent:b("Content"),eyebrow:H("Eyebrow",z0.eyebrow),title:O("Heading",z0.title),body:O("Body",z0.body),_gForm:b("Form"),formSlug:H5(),_gButton:b("Button"),buttonText:H("Button",z0.buttonText),_gFootnote:b("Footnote"),consent:O("Consent line",z0.consent),boxes:Nb.boxes},resolveFields:(e,{fields:t})=>{if(e.props.layout!=="boxes")return t;let{_gContent:a,eyebrow:s,title:c,body:l,_gForm:r,formSlug:o,_gButton:i,buttonText:n,_gFootnote:h,consent:m,...p}=t;return p}};var Da1=["issues","posts"],RD=[{label:"Issues",value:"issues"},{label:"Blog posts",value:"posts"}],_b="issues";function Ib(e){return Da1.includes(e)?e:_b}var Oa1={issues:["issues"],_gPosts:["posts"],posts:["posts"],limit:["posts"]};function BD(e,t){let a=Ib(t),s={...e};for(let[c,l]of Object.entries(Oa1))l.includes(a)||delete s[c];return s}import{CategoryIcon as qa1,HashIcon as Wa1}from"efficient-easel/icons";var B0={headNum:L.sectionNumber,headTitle:L.headingAccent,headDesc:"A short description of your newsletter or publication.",kicker:"\u2192 Newsletter",leadTitle:"Get it in the *inbox.*",intro:"Tell readers what they get and how often. One email, straight to the inbox. We will never sell your address.",emailPlaceholder:"your@email.com",submitText:"Subscribe \u2192",subscribedText:"Subscribed \u2713",finePrint:"Approx. 1 email per week \xB7 Unsubscribe in one click",issuesHeading:"Recent issues",archiveText:"View the full archive \u2192",archiveHref:u2.href},ZD=[{n:"N\xB0 04",title:"Issue title",small:"Short description",date:"Month YYYY"},{n:"N\xB0 03",title:"Issue title",small:"Short description",date:"Month YYYY"},{n:"N\xB0 02",title:"Issue title",small:"Short description",date:"Month YYYY"},{n:"N\xB0 01",title:"Issue title",small:"Short description",date:"Month YYYY"}];function Ga1(e){return e.map((t,a)=>({n:`N\xB0 ${String(e.length-a).padStart(2,"0")}`,title:t.title,small:t.meta,date:t.dateLabel}))}function Ph(e,t){if(e==="issues")return y1(t.issues,ZD,t.puck);let a=t.posts,s=typeof t.limit=="number"&&t.limit>0?t.limit:4,c=Array.isArray(a)?Ga1(a.slice(0,s)):[];return y1(c,ZD,t.puck)}import{jsx as DD}from"react/jsx-runtime";var OD={fields:{_sHead:a0("Section header"),_gHeadCopy:b("Content"),headNum:H("Number",B0.headNum),headTitle:O("Heading",B0.headTitle),headDesc:O("Body",B0.headDesc),_sLeft:a0("Newsletter panel"),_gLeftCopy:b("Content"),kicker:H("Eyebrow",B0.kicker),leadTitle:O("Heading",B0.leadTitle),intro:O("Intro",B0.intro),_gForm:b("Signup form"),emailPlaceholder:G("Email placeholder",B0.emailPlaceholder),submitText:G("Submit button",B0.submitText),subscribedText:G("Subscribed button",B0.subscribedText),finePrint:O("Fine print",B0.finePrint),_sRight:a0("Recent issues"),_gRightCopy:b("Content"),contentType:b1("Type",DD(qa1,{}),[...RD],_b),issuesHeading:H("Panel heading",B0.issuesHeading),issues:{type:"array",label:"Issues",arrayFields:{n:v1("Number"),title:v1("Title"),small:v1("Sub-line"),date:v1("Date")},getItemSummary:e=>[e?.n,e?.title].filter(Boolean).join(" \xB7 ")||"Issue"},_gPosts:b("Blog posts"),posts:a2(g9),limit:s1("Posts to display",DD(Wa1,{}),1,6,1,4),_gArchive:b("Archive link"),archiveText:H("Archive button",B0.archiveText),archiveHref:H1("Archive link")},resolveFields:(e,{fields:t})=>BD(t,e.props.contentType)};import{HashIcon as Ka1}from"efficient-easel/icons";import{useState as Ua1}from"react";import{jsx as Y3,jsxs as b9}from"react/jsx-runtime";var ja1="That didn't go through \u2014 please try again.";function Yc({headNum:e,headTitle:t,headDesc:a,kicker:s,leadTitle:c,intro:l,emailPlaceholder:r,submitText:o,subscribedText:i,finePrint:n,issuesHeading:h,issues:m,archiveText:p,archiveHref:u,source:g=Z3.subscribeSection,editing:d=!1,...f}){let[v,z]=Ua1(""),{status:x,submit:k}=to({source:g,dryRun:d}),M=x==="sent",A=x==="sending",B=x==="error"||x==="invalid",P=(m??[]).filter(V=>(V?.n??"").trim()||(V?.title??"").trim()||(V?.date??"").trim()),D=P.length>0,F=M?i||"Subscribed \u2713":A?"Sending\u2026":o||"Subscribe \u2192";function T(V){V.preventDefault(),!M&&k({email:v})}return b9("section",{className:N0(f)?"border-b border-line px-[var(--sf-site-gutter,40px)] py-[140px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-20":"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] py-[140px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-20",children:[Y3(O2,{num:e,title:t?j(t,!0):void 0,desc:a,accentTracking:"-0.025em"}),b9("div",{className:D?"grid min-h-[460px] grid-cols-[1.1fr_1fr] border border-line max-[1100px]:grid-cols-1":"grid min-h-[460px] grid-cols-1 border border-line",children:[b9("div",{className:D?"flex flex-col justify-center gap-6 border-r border-line px-14 py-16 max-[1100px]:border-r-0 max-[1100px]:border-b max-[1100px]:px-7 max-[1100px]:py-12":"flex flex-col justify-center gap-6 px-14 py-16 max-[1100px]:px-7 max-[1100px]:py-12",children:[s&&Y3(V1,{text:s}),c&&Y3("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5vw,72px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.035em]",children:j(c,!0)}),l&&Y3("p",{className:"max-w-[480px] font-serif text-[length:var(--size-body,19px)] italic leading-[1.5] text-fg-dim",children:C(l,!0)}),b9("form",{className:"mt-2 flex max-w-[520px]",onSubmit:T,children:[Y3("input",{type:"email",placeholder:r||"your@email.com",required:!0,value:v,onChange:V=>z(V.target.value),disabled:M,className:"flex-1 border border-r-0 border-line bg-bg px-5 py-[18px] font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.18em] text-fg placeholder:text-fg-dim outline-none focus:border-accent"}),Y3("button",{type:"submit",disabled:M||A,className:"border border-btn bg-btn px-7 py-[18px] font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-btn-ink transition-colors hover:bg-fg hover:border-fg disabled:cursor-default disabled:opacity-90",children:Z0(F)})]}),B&&Y3("p",{role:"alert",className:"max-w-[480px] font-mono text-[length:var(--size-label,12px)] uppercase leading-[1.7] tracking-[0.18em] text-alert",children:ja1}),n&&Y3("p",{className:"max-w-[480px] font-mono text-[length:var(--size-label,12px)] uppercase leading-[1.7] tracking-[0.18em] text-fg-dim",children:C(n)})]}),D&&b9("div",{id:"sub-recent-issues",className:"grid grid-rows-[auto_1fr_auto] gap-6 bg-[var(--journal-panel-bg)] px-11 py-12 scroll-mt-[160px] max-[1100px]:px-7 max-[1100px]:py-9",children:[h&&Y3(V1,{text:h,size:12}),Y3("div",{className:"flex flex-col",children:P.map((V,Z)=>b9("div",{className:["grid grid-cols-[60px_1fr_auto] items-start gap-[18px] border-b border-line py-[18px]",Z===0?"border-t border-line":""].join(" "),children:[Y3("span",{className:"font-mono text-[length:var(--size-label,13px)] tracking-[0.22em] text-accent",children:V.n?C(V.n):""}),b9("span",{className:"font-display text-[length:var(--size-body,16px)] font-medium leading-[1.3] tracking-[-0.01em]",children:[V.title?C(V.title):"",V.small?.trim()&&Y3("small",{className:"mt-1 block font-serif text-[length:var(--size-body,13px)] font-normal italic text-fg-dim",children:C(V.small,!0)})]}),Y3("span",{className:"whitespace-nowrap pt-[3px] text-right font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.22em] text-fg-dim",children:V.date?C(V.date):""})]},Z))}),p&&Y3(t0,{href:u||"/journal",className:"flex items-center justify-end gap-2.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.22em] text-accent hover:text-fg",children:C(p)})]})]})]})}import{jsx as $a1}from"react/jsx-runtime";var X0={...B0,issuesHeading:"Recent posts",archiveText:"Read all posts \u2192"},GD={label:"Subscribe with Posts",defaultProps:{headNum:"",headTitle:"",headDesc:"",kicker:"",leadTitle:"",intro:"",emailPlaceholder:"",submitText:"",subscribedText:"",finePrint:"",issuesHeading:"",limit:4,archiveText:"",archiveHref:""},render:e=>{let t=Ph("posts",e);return $a1(Yc,{headNum:y(e.headNum,X0.headNum,e.puck),headTitle:y(e.headTitle,X0.headTitle,e.puck),headDesc:y(e.headDesc,X0.headDesc,e.puck),kicker:y(e.kicker,X0.kicker,e.puck),leadTitle:y(e.leadTitle,X0.leadTitle,e.puck),intro:y(e.intro,X0.intro,e.puck),emailPlaceholder:a1(e.emailPlaceholder)||X0.emailPlaceholder,submitText:a1(e.submitText)||X0.submitText,subscribedText:a1(e.subscribedText)||X0.subscribedText,finePrint:y(e.finePrint,X0.finePrint,e.puck),issuesHeading:y(e.issuesHeading,X0.issuesHeading,e.puck),issues:t,source:Z3.subscribeBlogsSection,editing:e.puck?.isEditing,archiveText:y(e.archiveText,X0.archiveText,e.puck),archiveHref:a1(e.archiveHref)||X0.archiveHref})}};import{jsx as Ya1}from"react/jsx-runtime";var qD={fields:{_sHead:a0("Section header"),_gHeadCopy:b("Content"),headNum:H("Number",X0.headNum),headTitle:O("Heading",X0.headTitle),headDesc:O("Body",X0.headDesc),_sLeft:a0("Newsletter panel"),_gLeftCopy:b("Content"),kicker:H("Eyebrow",X0.kicker),leadTitle:O("Heading",X0.leadTitle),intro:O("Intro",X0.intro),_gForm:b("Signup form"),emailPlaceholder:G("Email placeholder",X0.emailPlaceholder),submitText:G("Submit button",X0.submitText),subscribedText:G("Subscribed button",X0.subscribedText),finePrint:O("Fine print",X0.finePrint),_sRight:a0("Recent posts"),_gRightCopy:b("Content"),issuesHeading:H("Panel heading",X0.issuesHeading),_gPosts:b("Blog posts"),posts:a2(g9),limit:s1("Posts to display",Ya1(Ka1,{}),1,6,1,4),_gArchive:b("Archive link"),archiveText:H("Archive button",X0.archiveText),archiveHref:H1("Archive link")}};import{jsx as Xa1}from"react/jsx-runtime";var WD={label:"Booking box",defaultProps:{},render:e=>Xa1(pu,{region:typeof e.region=="string"?e.region:void 0,eyebrow:y(e.eyebrow,L.eyebrow,e.puck),heading:y(e.heading,L.heading,e.puck),intro:y(e.intro,L.body,e.puck),buttonLabel:y(e.buttonLabel,L.button,e.puck),successMessage:y(e.successMessage,L.bookingConfirmation,e.puck),styleStep:e.styleStep,styleName:e.styleName,styleValue:e.styleValue,styleNote:e.styleNote})};import{useEffect as Rb,useState as Bb}from"react";import{Fragment as Ja1,jsx as A0,jsxs as y3}from"react/jsx-runtime";var UD="border-b border-line bg-transparent py-3.5 font-display text-[length:var(--size-body,18px)] tracking-[0.01em] text-fg outline-none transition-colors focus:border-accent";function Zb({routingNumber:e,routingTagline:t,groups:a,formNumber:s,formHeading:c,metaLines:l,showOther:r=!0,otherLabel:o="Other",otherNoteTitle:i,otherNoteBody:n,buttonText:h,consent:m,channels:p,formSlug:u,form:g,editing:d,initialActiveId:f,onActiveChange:v,reasonExtras:z,...x}){let k=[...a.map(W=>W.id),...r?[A8]:[]],M=f&&k.includes(f)?f:k[0]??A8,[A,B]=Bb(M);Rb(()=>{k.includes(A)||B(k[0]??A8)},[k.join("|")]),Rb(()=>{f&&k.includes(f)&&B(f)},[f]);let P=W=>{B(W),F(null),v?.(W)},[D,F]=Bb(null),T=(p??[]).filter(W=>!W.hidden),V=T.find(W=>W.groupId===A)?.value??null,Z=D??V,_=S5(u,g),N=m7({form:_,formSlug:u,editing:d}),t1=_===void 0,E=!!_||!!d,[q,K]=Bb(!1);return Rb(()=>{let W=()=>K(document.documentElement.getAttribute("data-theme")==="light");W();let r1=new MutationObserver(W);return r1.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>r1.disconnect()},[]),y3(Ja1,{children:[y3("section",{className:N0(x)?"border-b border-line px-[var(--sf-site-gutter,40px)] py-[60px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]":"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] py-[60px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",style:q?void 0:{background:"var(--section-bg)"},children:[(e||t)&&y3("div",{className:"mb-6 flex items-center gap-6 border-b border-line pb-6",children:[e&&A0(V1,{text:e}),t&&A0("span",{className:"font-display text-[length:var(--size-body,14px)] uppercase tracking-[0.04em] text-fg-dim",children:C(t)})]}),A0("div",{className:"sf-card grid grid-cols-4 gap-[2px] border border-line bg-line max-[1100px]:grid-cols-2 max-[700px]:grid-cols-1",children:a.map(W=>{let r1=A===W.id;return y3("button",{type:"button",onClick:()=>{P(W.id),typeof window<"u"&&window.matchMedia("(max-width: 1100px)").matches&&document.getElementById("contact-form")?.scrollIntoView({behavior:l6(),block:"start"})},className:["flex min-h-[240px] cursor-pointer flex-col gap-3.5 px-7 py-9 text-left transition-colors",r1?"bg-surface outline outline-2 -outline-offset-2 outline-accent":"bg-bg hover:bg-surface"].join(" "),children:[W.eyebrow&&A0("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-accent",children:W.eyebrow}),A0("h3",{className:"whitespace-pre-line font-heading3 text-[length:var(--size-headingSmall,26px)] font-medium uppercase leading-[1.05] tracking-[-0.02em]",children:W.title}),W.copy&&A0("p",{className:"mt-auto font-display text-[length:var(--size-body,14px)] leading-[1.5] text-fg-dim",children:W.copy}),W.response&&y3("div",{className:"mt-2 flex justify-between border-t border-line pt-3.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.22em] text-fg-dim",children:[A0("span",{children:"Response"}),A0("strong",{className:"font-normal text-fg",children:W.response})]})]},W.id)})})]}),(E||T.length>0)&&y3("section",{id:"contact-form",className:["mx-auto grid max-w-[var(--sf-site-width,1600px)] scroll-mt-[80px] gap-20 border-b border-line px-[var(--sf-site-gutter,40px)] py-20 max-[1100px]:grid-cols-1 max-[1100px]:gap-[60px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]",E&&T.length>0?"grid-cols-[1.3fr_1fr]":"grid-cols-1"].join(" "),children:[E&&y3("div",{children:[y3("div",{className:"mb-7 flex items-end justify-between gap-6 border-b border-line pb-6",children:[y3("div",{children:[s&&A0("div",{className:"pb-2 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-accent",children:C(s)}),c&&A0("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(36px,4vw,56px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:j(c,!0)})]}),!!(l&&l.length)&&A0("div",{className:"text-right font-mono text-[length:var(--size-label,12px)] uppercase leading-[1.8] tracking-[0.22em] text-fg-dim max-[700px]:text-left",children:l.map((W,r1)=>A0("div",{children:W},r1))})]}),_?N.done?A0("div",{className:"border border-accent bg-accent/[0.08] p-8 font-display text-[length:var(--size-body,15px)] leading-[1.6] text-fg-dim",children:Re(_,"Thanks \u2014 we've received your message.")}):y3("form",{className:"grid grid-cols-2 gap-5 max-[700px]:grid-cols-1",onSubmit:N.handleSubmit,children:[_.fields.map(W=>A0(D2,{label:W.label,required:W.required,className:W.type==="textarea"||W.type==="checkbox"?"col-span-2 max-[700px]:col-span-1":void 0,children:A0(p7,{field:W,value:N.valueOf(W.key),onChange:r1=>N.set(W.key,r1),className:W.type==="textarea"?`${UD} min-h-[140px] resize-y leading-[1.5]`:W.type==="checkbox"?"size-4 self-start accent-accent":UD})},W.key)),y3("div",{className:"col-span-2 flex flex-col gap-2 max-[700px]:col-span-1",children:[A0(b8,{required:!0,children:"Reason"}),y3("div",{className:"mt-1 flex flex-wrap gap-2",children:[a.map(W=>{let r1=A===W.id;return A0("button",{type:"button",onClick:()=>P(W.id),className:["cursor-pointer border px-3.5 py-2.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.2em] transition-colors",r1?"border-accent bg-accent text-bg":"border-line text-fg-dim hover:text-fg"].join(" "),children:W.title},W.id)}),r&&A0("button",{type:"button",onClick:()=>P(A8),className:["cursor-pointer border px-3.5 py-2.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.2em] transition-colors",A===A8?"border-accent bg-accent text-bg":"border-line text-fg-dim hover:text-fg"].join(" "),children:Z0(o)})]})]}),z?.(A),A===A8&&(i||n)&&y3("div",{className:"sf-card col-span-2 flex flex-col gap-2 border border-line bg-bg/40 p-5 max-[700px]:col-span-1",children:[i&&A0("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-accent",children:C(i)}),n&&b0(n).map((W,r1)=>A0("p",{className:"font-display text-[length:var(--size-body,15px)] leading-[1.55] text-fg-dim",children:C(W)},r1))]}),A0(Be,{value:N.honeypot,onChange:N.setHoneypot}),N.error&&A0("p",{role:"alert",className:"col-span-2 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em] text-alert max-[700px]:col-span-1",children:N.error}),y3("div",{className:"col-span-2 mt-5 flex flex-wrap items-center justify-between gap-6 border-t border-line pt-6 max-[700px]:col-span-1 max-[700px]:flex-col max-[700px]:items-stretch",children:[m&&A0("span",{className:"max-w-[380px] font-mono text-[length:var(--size-label,12px)] uppercase leading-[1.6] tracking-[0.18em] text-fg-dim",children:C(m)}),A0("button",{type:d?"button":"submit",disabled:N.submitting,className:"cursor-pointer bg-btn px-8 py-[18px] font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg disabled:cursor-wait disabled:opacity-60 max-[700px]:w-full",children:N.submitting?"Sending\u2026":h?Z0(h):"Send Message \u2192"})]})]}):A0("p",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.22em] text-fg-dim",children:t1?"Loading form\u2026":"Choose a form in the inspector, under Message form \u2014 until then this column is hidden on the live page and no message can be sent."})]}),T.length>0&&A0("aside",{className:"flex flex-col gap-0 max-[1100px]:hidden",children:T.map((W,r1)=>{let x1=Z===W.value,e1=!!!W.groupId;return y3("div",{onClick:e1?()=>F(W.value):void 0,className:["relative flex flex-col gap-2.5 border-b border-line border-l-2 px-5 py-7 transition-all",e1?"cursor-pointer border-t-2 border-t-accent":"",x1?"border-l-accent pl-6":e1?"border-l-transparent hover:bg-accent/[0.04]":"border-l-transparent"].join(" "),style:x1?{background:"color-mix(in oklab, var(--accent) 8%, transparent)"}:void 0,children:[x1&&y3("span",{className:"absolute right-[18px] top-6 flex flex-col items-end gap-0.5 text-right",children:[A0("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-accent",children:"\u2192 Message routes here"}),A0("span",{className:"font-mono text-[length:var(--size-label,10px)] uppercase tracking-[0.18em] text-fg-dim",children:"Other inboxes filter as spam"})]}),A0("span",{className:["font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] transition-colors",x1?"text-fg":"text-accent"].join(" "),children:W.label}),e1?A0("a",{href:W.href,onClick:g1=>g1.stopPropagation(),className:["font-heading3 text-[length:var(--size-headingSmall,24px)] font-medium leading-[1.2] tracking-[-0.02em] transition-colors hover:text-accent",x1?"text-accent":"text-fg"].join(" "),children:W.value}):A0("span",{className:["font-heading3 text-[length:var(--size-headingSmall,24px)] font-medium leading-[1.2] tracking-[-0.02em]",x1?"text-accent":"text-fg"].join(" "),children:W.value}),W.sub&&A0("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.2em] text-fg-dim",children:W.sub})]},`${W.value}-${r1}`)})})]})]})}import{jsx as Qa1}from"react/jsx-runtime";var jD={label:"Contact Form",defaultProps:{routingNumber:v0.routingNumber,routingTagline:v0.routingTagline,groups:v0.groups,formSlug:"",formNumber:v0.formNumber,formHeading:v0.formHeading,metaItems:v0.metaLines.map(e=>({text:e})),showOther:v0.showOther,otherLabel:v0.otherLabel,otherNoteTitle:v0.otherNoteTitle,otherNoteBody:v0.otherNoteBody,buttonText:v0.buttonText,consent:v0.consent,channels:v0.channels},render:e=>Qa1(Zb,{routingNumber:y(e.routingNumber,v0.routingNumber,e.puck),routingTagline:y(e.routingTagline,v0.routingTagline,e.puck),groups:e.groups??[],formNumber:y(e.formNumber,v0.formNumber,e.puck),formHeading:y(e.formHeading,v0.formHeading,e.puck),metaLines:(e.metaItems??[]).map(t=>t?.text??"").filter(Boolean),showOther:e.showOther,otherLabel:a1(e.otherLabel)||v0.otherLabel,otherNoteTitle:y(e.otherNoteTitle,v0.otherNoteTitle,e.puck),otherNoteBody:y(e.otherNoteBody,v0.otherNoteBody,e.puck),buttonText:a1(e.buttonText)||v0.buttonText,consent:y(e.consent,v0.consent,e.puck),channels:e.channels??[],formSlug:a1(e.formSlug)||void 0,form:e.form,editing:e.puck?.isEditing})};import{jsx as $D}from"react/jsx-runtime";function Db({thickness:e=1,lengthPct:t=100,hideOnMobile:a=!1}){return $D("div",{className:`col-span-full w-full basis-full ${a?"max-[800px]:hidden":""}`,"aria-hidden":"true",children:$D("div",{className:"bg-line",style:{height:`${e}px`,width:`${t}%`}})})}import{jsx as es1}from"react/jsx-runtime";var KD={label:"Divider",defaultProps:{thickness:1,lengthPct:100,hideOnMobile:!1},render:({thickness:e,lengthPct:t,hideOnMobile:a})=>es1(Db,{thickness:e,lengthPct:t,hideOnMobile:a})};import{useState as ts1}from"react";import{jsx as Ob,jsxs as YD}from"react/jsx-runtime";function Gb({heading:e,placeholder:t="Email address",buttonLabel:a="Subscribe"}){let{open:s}=Ap(),[c,l]=ts1("");return YD("div",{className:"w-full min-w-0",children:[e?Ob("h4",{className:"mb-3 font-mono text-[13px] uppercase tracking-[0.2em] text-fg-dim",children:j(e,!1)}):null,YD("form",{className:"flex max-w-[320px] flex-wrap items-stretch gap-2",onSubmit:r=>{r.preventDefault(),s({email:c.trim(),source:Z3.footerSignup})},children:[Ob("input",{type:"email",placeholder:t,value:c,onChange:r=>l(r.target.value),className:"w-0 min-w-[7rem] flex-1 border border-line bg-transparent px-3 py-2 text-[13px] text-fg placeholder:text-fg-dim/70 focus:border-accent focus:outline-none","aria-label":p2(e??"")||"Email address"}),Ob("button",{type:"submit",className:"shrink-0 border border-btn bg-btn px-4 py-2 text-[13px] font-medium text-btn-ink transition-opacity hover:opacity-90",children:Z0(a)})]})]})}import{jsx as as1}from"react/jsx-runtime";var XD={label:"Email Form",defaultProps:{heading:"",placeholder:"Email address",buttonLabel:"Subscribe"},render:({heading:e,placeholder:t,buttonLabel:a,puck:s})=>as1(Gb,{heading:$4(e,"Join our email list",s),placeholder:t||void 0,buttonLabel:a||void 0})};import{jsx as Eh,jsxs as cs1}from"react/jsx-runtime";var ss1={left:"items-start text-left",center:"items-center text-center",right:"items-end text-right"};function qb({tagline:e,widthPct:t=100,align:a="left",reverse:s=!0,padTop:c=0,padRight:l=0,padBottom:r=0,padLeft:o=0,editing:i=!1}){let{src:n,reversedSrc:h,inkIsDark:m,wordmark:p,siteName:u}=Ml(),g=Math.round(r7*(t/100)),d={...c?{paddingTop:c}:{},...l?{paddingRight:l}:{},...r?{paddingBottom:r}:{},...o?{paddingLeft:o}:{}};return cs1("div",{className:`flex min-w-0 flex-col ${ss1[a]} [container-type:inline-size]`,style:d,children:[Eh(S1,{href:"/","aria-label":u?`${u} home`:"Home",className:"inline-flex max-w-full overflow-x-clip",children:Eh(fe,{variant:"footer",sizePx:g,src:n,reverse:s,reversedSrc:h,inkIsDark:m,wordmark:p,siteName:u,fitWordmarkToContainer:!0,fitFloorPx:gC})}),e?Eh("p",{className:"mt-3.5 max-w-[280px] text-[13px] leading-[1.5] text-fg-dim",children:C(e)}):i?Eh("p",{className:"mt-3.5 max-w-[280px] text-[13px] italic leading-[1.5] text-fg-dim/60",children:"Add a short brand tagline \u2192"}):null]})}import{jsx as ls1}from"react/jsx-runtime";var JD={label:"Logo",defaultProps:{widthPct:100,align:"left",reverse:"auto",padTop:0,padRight:0,padBottom:0,padLeft:0},render:({tagline:e,widthPct:t,align:a,reverse:s,padTop:c,padRight:l,padBottom:r,padLeft:o,puck:i})=>ls1(qb,{tagline:e||void 0,widthPct:t,align:a,reverse:s!=="off",padTop:c,padRight:l,padBottom:r,padLeft:o,editing:i?.isEditing})};import{jsx as rs1}from"react/jsx-runtime";var QD={label:"Menu",defaultProps:{accordionMobile:!1,showDividers:!1},render:({menu:e,heading:t,accordionMobile:a,showDividers:s,puck:c})=>rs1(_a,{menu:e,heading:t||void 0,accordionMobile:a,showDividers:s,editing:c?.isEditing})};import{jsx as os1}from"react/jsx-runtime";var eO={label:"Social Logos",defaultProps:{iconStyle:le,iconSize:"medium",align:"start",gap:Gc},render:({iconStyle:e,iconSize:t,align:a,gap:s,puck:c})=>os1(Mb,{iconStyle:e,iconSize:t,align:a,gap:s,editing:c?.isEditing})};import{jsx as ns1}from"react/jsx-runtime";var is1={sm:"text-[12px]",md:"text-[13px]",lg:"text-[15px]"};function Wb({text:e,size:t="md",tone:a="default",editing:s=!1}){let c=e||(s?"Add a line of footer text.":"");return c?ns1("p",{className:`${is1[t]} leading-[1.5] ${a==="dim"?"text-fg-dim":"text-fg"}`,children:C(c)}):null}import{jsx as hs1}from"react/jsx-runtime";var tO={label:"Text",defaultProps:{size:"md",tone:"default"},render:({text:e,size:t,tone:a,puck:s})=>hs1(Wb,{text:e||void 0,size:t,tone:a,editing:s?.isEditing})};import{jsx as ms1}from"react/jsx-runtime";var aO={label:"Form",defaultProps:{formSlug:"",heading:"",intro:"",submitText:"",finePrint:""},render:e=>ms1(yp,{formSlug:a1(e.formSlug)||void 0,heading:a1(e.heading)||void 0,intro:a1(e.intro)||void 0,submitText:a1(e.submitText)||void 0,finePrint:a1(e.finePrint)||void 0,form:e.form,editing:e.puck?.isEditing})};import{jsx as ps1}from"react/jsx-runtime";var sO={label:"Legal Line",render:()=>ps1(Dc,{})};import{jsx as us1}from"react/jsx-runtime";var cO={label:"Submit box",defaultProps:{},render:e=>us1(vu,{region:typeof e.region=="string"?e.region:void 0,eyebrow:Q0(e.eyebrow,z0.eyebrow,e.puck),title:Q0(e.title,z0.title,e.puck),body:Q0(e.body,z0.body,e.puck),buttonText:Q0(e.buttonText,z0.buttonText,e.puck),consent:Q0(e.consent,z0.consent,e.puck),formSlug:a1(e.formSlug)||void 0,form:e.form,editing:e.puck?.isEditing,styleField:e.styleField,styleTick:e.styleTick,styleThanks:e.styleThanks})};import{jsx as ds1}from"react/jsx-runtime";var lO={label:"Subscribe Form",defaultProps:{headNum:"",headTitle:"",headDesc:"",kicker:"",leadTitle:"",intro:"",emailPlaceholder:"",submitText:"",subscribedText:"",finePrint:"",issuesHeading:"",issues:[],archiveText:"",archiveHref:""},render:({headNum:e,headTitle:t,headDesc:a,kicker:s,leadTitle:c,intro:l,emailPlaceholder:r,submitText:o,subscribedText:i,finePrint:n,issuesHeading:h,issues:m,contentType:p,posts:u,limit:g,archiveText:d,archiveHref:f,puck:v})=>ds1(Yc,{headNum:y(e,B0.headNum,v),headTitle:y(t,B0.headTitle,v),headDesc:y(a,B0.headDesc,v),kicker:y(s,B0.kicker,v),leadTitle:y(c,B0.leadTitle,v),intro:y(l,B0.intro,v),emailPlaceholder:a1(r)||B0.emailPlaceholder,submitText:a1(o)||B0.submitText,subscribedText:a1(i)||B0.subscribedText,finePrint:y(n,B0.finePrint,v),issuesHeading:y(h,B0.issuesHeading,v),issues:Ph(Ib(p),{issues:m,posts:u,limit:g,puck:v}),source:Z3.subscribeSection,editing:v?.isEditing,archiveText:y(d,B0.archiveText,v),archiveHref:a1(f)||B0.archiveHref})};var rO={AppointmentBooking:GZ,BookingBox:WD,ContactRouting:jD,Events:sD,Footer:iD,FooterDivider:KD,FooterEmailSignup:XD,FooterGroup:uD,FooterLogo:JD,FooterMenu:QD,FooterSocial:eO,FooterText:tO,Form:aO,LegalLineBlock:sO,ReviewForm:MD,Reviews:HD,[L9]:TD,[S9]:ED,SubmitBox:cO,SubmitBuild:_D,Subscribe:lO,SubscribeBlogs:GD};var gs1={AppointmentBooking:qZ,BookingBox:WZ,ContactRouting:jZ,Events:cD,Footer:nD,FooterDivider:hD,FooterEmailSignup:mD,FooterGroup:dD,FooterLogo:gD,FooterMenu:fD,FooterSocial:yD,FooterText:wD,Form:CD,LegalLineBlock:kD,ReviewForm:SD,Reviews:FD,[L9]:PD,[S9]:VD,SubmitBox:ND,SubmitBuild:ID,Subscribe:OD,SubscribeBlogs:qD},h2=Qe(rO,gs1);import{jsx as I6,jsxs as hO}from"react/jsx-runtime";var Ub=e=>e==="sentence"?"none":void 0,_6=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,Xc=e=>typeof e=="string"&&e?e:void 0,vs1=["font","color","size","weight","italic","lineHeight","letterSpacing","paragraphSpacing","letterCase","largestSize"];function Vh(e){let t={};for(let a of vs1)e[a]!==void 0&&(t[a]=e[a]);return t}function fs1(e){let t=e.fonts,a=e.sizes,s=e.typography,c=Cz(e.compression),l=(o,i)=>({id:`heading-${o}`,kind:"heading",name:`Heading ${o}`,values:Vh(i)}),r=(o,i={})=>({id:`body-${o}`,kind:"body",name:`Body ${o}`,values:Vh(i)});return[l(1,{font:Xc(t.heading),size:_6(a.headingLarge),weight:_6(s.weight),lineHeight:c.lineHeight,letterSpacing:c.letterSpacing,letterCase:Ub(s.case),largestSize:_6(s.maxPx)}),l(2,{font:Xc(t.heading2),size:_6(a.headingMedium),weight:_6(s.weight2),lineHeight:c.lineHeight,letterSpacing:c.letterSpacing,letterCase:Ub(s.case2)}),l(3,{font:Xc(t.heading3),size:_6(a.headingSmall),weight:_6(s.weight3),lineHeight:c.lineHeight,letterSpacing:c.letterSpacing,letterCase:Ub(s.case3)}),r(1,{font:Xc(t.body),size:_6(a.body)}),r(2),r(3),r(4),r(5,{font:Xc(t.label),size:_6(a.label)})]}function oO(e){return Array.isArray(e)&&e.every(t=>t&&typeof t=="object"&&typeof t.id=="string"&&(t.kind==="heading"||t.kind==="body")&&typeof t.name=="string")?e.map(t=>({...t,values:Vh(t.values??{})})):null}function iO(e){return oO(e)??[]}function Io0(e,t){let a=fs1(t),s=oO(e);return s?s.map(c=>({...c,values:Vh({...bs1(a,c.id),...c.values})})):a}var bs1=(e,t)=>e.find(a=>a.id===t)?.values??{};function Ro0(e,t){let a=p=>e.find(u=>u.id===p)?.values??{},s=a("heading-1"),c=a("heading-2"),l=a("heading-3"),r=a("body-1"),o=a("body-5"),i=t.fonts,n=t.sizes,h=t.typography,m=p=>p==="none"?"sentence":"authored";return{fonts:{...i,heading:s.font??i.heading,heading2:c.font??s.font??i.heading2,heading3:l.font??s.font??i.heading3,body:r.font??i.body,label:o.font??i.label},sizes:{...n,headingLarge:s.size??null,headingMedium:c.size??null,headingSmall:l.size??null,body:r.size??null,label:o.size??null},compression:t.compression,typography:{...h,case:m(s.letterCase),weight:s.weight??null,maxPx:s.largestSize??null,weight2:c.weight??null,weight3:l.weight??null,case2:m(c.letterCase),case3:m(l.letterCase)}}}function xs1(e){switch(e.id){case"heading-1":return"font-display";case"heading-2":return"font-heading2";case"heading-3":return"font-heading3";case"body-1":return"font-body";case"body-5":return"font-mono";default:return`font-${e.id}`}}function zs1(e){return e==="accent"?"var(--accent)":e==="text"?"var(--fg)":e==="labels"?"var(--fg-dim)":/^#[0-9a-f]{6}$/i.test(e)?e:null}function ys1(e){let t=":is([data-sf-bullet], [data-sf-number])";return[`${e} br:not(br + br) { display: block; content: ""; margin-top: var(--sf-part-para) }`,`${e} ${t}:not(:first-child) { margin-top: var(--sf-part-para) }`,`${e} ${t}:not(:last-child) { margin-bottom: var(--sf-part-para) }`]}function nO(e){let t=[];for(let a of e){let s=a.values,c=`.${xs1(a)}`,l=[],r=s.font!==void 0?tz.find(n=>n.key===s.font)?.cssVar:void 0;if(r&&l.push(`font-family: var(${r})`),s.size!==void 0){let n=s.largestSize!==void 0?Math.min(s.size,s.largestSize):s.size;l.push(`font-size: ${n}px`)}let o=s.color!==void 0?zs1(s.color):null;o&&l.push(`color: ${o}`),s.italic===!0&&l.push("font-style: italic"),s.weight!==void 0&&l.push(`font-weight: ${s.weight}`);let i=[];s.lineHeight!==void 0&&i.push(`line-height: ${s.lineHeight}`),s.letterSpacing!==void 0&&i.push(`letter-spacing: ${s.letterSpacing}em`),a.kind==="body"&&l.push(...i),s.letterCase!==void 0&&l.push(`text-transform: ${s.letterCase==="upper"?"uppercase":s.letterCase==="lower"?"lowercase":"none"}`),s.paragraphSpacing&&l.push(`--sf-part-para: ${s.paragraphSpacing}px`),l.length&&t.push(`${c} { ${l.join("; ")} }`),a.kind==="heading"&&i.length&&t.push(`${c}, ${c}:is(h1, h2, h3, h4) { ${i.join("; ")} }`),s.paragraphSpacing&&t.push(...ys1(c))}return t.join(`
|
|
154
|
-
`)}import{useEasel as ws1}from"efficient-easel/easel";var Cs1="color-mix(in oklab, var(--bg) 40%, #ffffff)",ks1="12vh";function Ms1({style:e,frameClass:t,children:a}){let{appState:s}=ws1(u=>u),c=s.data.content,l=s.data.root;if(Vw(c))return I6("div",{className:`sf-themed-content${t?` ${t}`:""}`,style:{...e,background:Cs1,minHeight:"100vh",paddingBottom:ks1},children:I6("div",{style:{background:"var(--bg)"},children:a})});let r=Ma(c)&&sr(l,c),o=Ma(c)?Iw(l,c):null,i=o?{[_w]:o}:null,n=Bz(l?.widthChoice),h=n?{[Rz]:n}:null,m=r?null:KB(c),p=m?{[rh]:m}:null;return I6("div",{className:`sf-themed-content${r?` ${ar}`:""}${t?` ${t}`:""}`,style:e,...p,...i,...h,children:I6("div",{style:{background:"var(--bg)",minHeight:"100%"},children:a})})}function mO(e){return{frameClass:void 0,style:{"--sf-page-width":za}}}function jb({w:e,children:t}){let{frameClass:a,style:s}=mO(e);return I6("div",{className:a,style:s,children:t})}function $b({propsTheme:e,propsFonts:t,propsCornerStyle:a,propsCornerRadiusPx:s,propsHeadingCompression:c,propsHeadingTypography:l,widthMode:r,fullWidth:o,pageWidth:i,pageBackground:n,chromeInheritsSiteBackground:h,suppressPreviewNav:m,footer:p,overlay:u,children:g}){let{theme:d,fonts:f,sizes:v,cornerRadiusPx:z,cardShadow:x,shadowColor:k,cardGap:M,hoverEffect:A,headingCompression:B,siteWidth:P,siteGutter:D,blockGap:F,headingTypography:T,heroBackgroundFollowsWidth:V,photographyGrayscale:Z,textStyles:_,themeFromDocument:N}=V3(),t1=N?e:d,E=N?t:f,q=N?void 0:v,K=N?s===void 0?vz[gz(a)]:fz(s):z,W=N?c:B,r1=nO(iO(N?void 0:_)),x1=N?l:T,Y=mO({widthMode:r,fullWidth:o,pageWidth:i}),e1={...xa(t1),...bl(q),...kz(x1),...Y.style,...h?{}:im(n)};return hO("div",{className:"sf-theme-surfaces sf-theme-accent",style:{...ml(E),...dl(t1),...gl(t1),...vl(t1),...fl(t1),...Qh(K),...Fz(Qh(K)),...yz(N?void 0:x,N?void 0:k,N?void 0:A),...Pz(N?void 0:P),...Ez(N?void 0:D),...Sy(N?void 0:F),...Iz(N?void 0:V)},"data-sf-headings":wz(W),"data-sf-card-shadow":N?void 0:bz(x),"data-sf-card-gap":N?void 0:xz(M),"data-sf-card-hover":N?void 0:zz(A),onClickCapture:m,children:[r1?I6("style",{"data-sf-text-styles":"",dangerouslySetInnerHTML:{__html:r1}}):null,hO(gT,{grayscale:N?void 0:Z,children:[I6(Ms1,{style:e1,frameClass:Y.frameClass,children:g}),p,u]})]})}var Kb=e=>{e.target?.closest?.("a")&&e.preventDefault()};function pO({pageBackground:e,inheritBackground:t=!1,w:a,children:s}){return I6("div",{style:{...t?{}:im(e),background:"var(--bg)",minHeight:"100%",overflowX:"clip"},children:I6(jb,{w:a,children:s})})}import{jsx as Xb}from"react/jsx-runtime";import{ListIcon as Ss1,PaddingTopIcon as Ls1}from"efficient-easel/icons";function As1(){return{type:"custom",render:({value:e,onChange:t})=>Xb(kh,{value:e==="full"?"full":e==="content"?"content":void 0,resolved:"content",followsLabel:"Follows the site",hint:"Whether this page sits on the site's content column, or runs edge to edge.",onChange:a=>t(a)})}}var Hs1=[{label:"Auto",value:"auto"},{label:"Shared",value:"shared"},{label:"Its own",value:"own"}],gO={title:G("Page Title"),pageBackground:qy(),topSpace:d1("Top space",Xb(Ls1,{}),Hs1,Nw),widthChoice:As1()},Fs1="Record type",Yb=new Map,uO=-1;function Ts1(e){uO!==Xm()&&(Yb.clear(),uO=Xm());let t=Ym(),a=t.some(c=>c.key===e)?"":e,s=Yb.get(a);return s||(s=d1(Fs1,Xb(Ss1,{}),[...t.map(c=>({label:c.label,value:c.key})),...a?[{label:a,value:a}]:[]],Fe),Yb.set(a,s)),s}var dO=new WeakMap;function vO(e,t){if(!M2()||Ym().length<2||Tr in e)return e;let a=Ts1(Pr(t)),s=dO.get(e);if(s&&s.row===a)return s.fields;let c={[Tr]:a,...e};return dO.set(e,{row:a,fields:c}),c}function Ps1(e,t){let a=nm(t),s=a?a.inner:t;if($h(s))return!1;if(s?.type==="slot")return!0;let c=ny(s);return c==="always"?!1:c==="authored-copy"?rz(e):!0}function fO(e){let t=nm(e),a=t?t.inner:e,s=$h(a);return s?Py(a)?0:s.level:null}function Es1(e,t,a){return a&&t===0&&e===u8.Content}var Vs1=new WeakMap,Ns1=new WeakMap;function Nh(e,t="section"){let a=t==="page"?Ns1:Vs1,s=a.get(e);if(s)return s;let c=Object.entries(e).map(([m,p])=>({key:m,field:p,level:fO(p),draws:Ps1(m,p)||t==="page"&&fO(p)===null&&Yh(m,p)})),l=t==="section"&&c.some(m=>Yh(m.key,m.field)),r=new Set;for(let m=0;m<c.length;m++){let p=c[m].level;if(p===null)continue;let u=0;for(let g=m+1;g<c.length;g++){let d=c[g].level;if(d!==null&&d<=p)break;c[g].draws&&(u+=1)}u===0&&!Es1(c[m].key,p,l)&&r.add(c[m].key)}let o=l&&Jy(e),i=o&&!(u8.Content in e);if(!r.size&&!i)return a.set(e,e),e;let n={};for(let m of c)r.has(m.key)||(n[m.key]=m.field);let h=ce(o?Xy(n):n);return a.set(e,h),h}var bO={name:"catalogueLabel",applies:e=>Object.prototype.hasOwnProperty.call(ba,e),draw(e,t){e.label=ba[t]}};import{jsx as _s1}from"react/jsx-runtime";var xO={name:"sectionGroupAllow",applies:e=>nl.includes(e),panel(e,t,a,s){let c=e.fields?.sections;c&&(c.allow=[...s.sectionGroupAllow])}},Jb=new Set(Object.keys(B1)),zO={name:"openSlotDisallow",applies:()=>!0,panel(e,t,a,s){let c=s.contentSectionKeys;if(e?.fields)for(let l of Object.values(e.fields)){let r=l;if(r.type!=="slot"||r.allow)continue;let o=t==="Flex"?c.filter(i=>!Jb.has(i)):c;r.disallow=Array.from(new Set([...r.disallow??[],...o]))}}};var Is1=Array.from(new Set([...Cx.map(e=>e.type),...Jb,...cl,"GalleryItem"])),yO={name:"cellWidth",applies:(e,t,a)=>Is1.includes(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let s=a.cellWidthFields;e.fields={...e.fields,...s()};let c=e.resolveFields;e.resolveFields=(l,r)=>{let o=c?c(l,r):r.fields,i=wi(r.appState,l.props?.id);if(i===void 0||Qx(i))return o;let n={...o};for(let h of Object.keys(s()))delete n[h];return n}},draw(e){let t=e.render;e.render=a=>{let s=Xx(a.gridSpan),c=t(a);return s==null?c:_s1("div",{className:"sf-grid-cell",[Jx]:String(s),children:c})}}};import{jsx as wO}from"react/jsx-runtime";var CO={name:"clickableParts",applies:(e,t,a)=>typeof a?.render=="function",draw(e,t){let a=e,s=a.render;a.render=c=>{let l=F9(c);return c.puck?.isEditing?wO(DA,{needles:Kh(a.fields,c),styles:l,type:t,children:s(c)}):Object.keys(l).length?wO(Sz,{needles:Kh(a.fields,c),styles:l,type:t,children:s(c)}):s(c)}}};import{jsx as kO}from"react/jsx-runtime";var MO={name:"sectionCorners",applies:(e,t,a)=>t.isSection(e)&&!!a&&typeof a.render=="function",panel(e,t,a){e.fields={...e.fields,...a.sectionShapeFields()}},draw(e){let t=e.render;e.render=a=>{let s=xl(a.sectionCorners,a.sectionCornerSides),c=t(a),l=N0(a)?`sf-section-corners ${Az}`:"sf-section-corners";return s?kO("div",{className:l,style:{display:"contents",...s},children:c}):c}}},Rs1=["CollectionCard"],SO={name:"cardCorners",applies:(e,t,a)=>Rs1.includes(e)&&!!a&&typeof a.render=="function",panel(e,t,a){e.fields={...e.fields,...a.cardShapeFields()}},draw(e){let t=e.render;e.render=a=>{let s=Hz(a.cardCorners,a.cardCornerSides),c=t(a);return s?kO("div",{className:"sf-card-corners",style:{display:"contents",...s},children:c}):c}}};var LO={name:"emptyHeadings",applies:()=>!0,panel(e,t,a){let s=a.dropEmptyHeadings,c=e.resolveFields;e.resolveFields=c?(l,r)=>{let o=c(l,r);return o instanceof Promise?o.then(i=>s(i??r.fields)):s(o??r.fields)}:(l,r)=>s(r.fields)}};var AO={name:"hiddenNodes",applies:(e,t,a)=>typeof a?.render=="function",draw(e){let t=e.render;e.render=a=>a._hidden?null:t(a)}};import{jsx as HO,Fragment as Bs1,jsxs as Zs1}from"react/jsx-runtime";function Ds1({anchor:e}){let t=cm(typeof e=="string"?e:"");return t?HO("span",{id:t,className:"sf-section-anchor","aria-hidden":"true"}):null}var FO={name:"sectionAnchor",applies:(e,t,a)=>t.isSection(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let s=a.anchorFields;e.fields={...e.fields,...s()}},draw(e){e.defaultProps={...e.defaultProps,anchor:""};let t=e.render;e.render=a=>Zs1(Bs1,{children:[HO(Ds1,{anchor:a.anchor}),t(a)]})}};import{jsx as qs1}from"react/jsx-runtime";import{jsx as Os1}from"react/jsx-runtime";import{useEffect as Gs1,useRef as TO}from"react";function PO({motion:e,editing:t,children:a}){let s=TO(null),c=TO(e);return Gs1(()=>{let l=s.current;if(l){if(t){if(c.current===e)return;c.current=e,Uz(l);return}return Wz(l)}},[e,t]),Os1("div",{ref:s,[qz]:e,children:a})}var EO={name:"sectionAnimation",applies:(e,t,a)=>t.isSection(e)&&!jz.has(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let s=a.sectionAnimationFields;e.fields={...e.fields,...s()}},draw(e){let t=e,a=t.render;t.render=s=>{let c=Gz(s.sectionAnimation);return c?qs1(PO,{motion:c,editing:!!s.puck?.isEditing,children:a(s)}):a(s)}}};import{jsx as Ws1}from"react/jsx-runtime";var _O={name:"sectionHeight",applies:(e,t,a)=>t.isSection(e)&&!Kz.has(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let s=a.heightFields;e.fields={...e.fields,...s()};let c=e.resolveFields;e.resolveFields=(l,r)=>{let o=c?c(l,r):r.fields,i=l?.props??{},n=$z(i),h=Yz(i)?Xz(i):null;return o&&typeof o.then=="function"?o.then(m=>NO(VO(m,n),h)):NO(VO(o,n),h)}},draw(e){let t=e.render;e.render=a=>{let s=Jz(a);return s?Ws1("div",{className:s.className,style:s.style,children:t(a)}):t(a)}}};function VO(e,t){if(!e||!("sectionHeightMode"in e))return e;let a={...e};if(t.mode==="auto")return delete a.sectionHeightValue,delete a.sectionHeightUnit,a;t.mode==="screen"&&delete a.sectionHeightUnit;let s=a.sectionHeightValue;return s&&(a.sectionHeightValue={...s,unit:t.unit}),a}function NO(e,t){if(!e||!("sectionHeightModePhone"in e))return e;let a={...e};if(!t||t.mode==="auto")return delete a.sectionHeightValuePhone,delete a.sectionHeightUnitPhone,a;t.mode==="screen"&&delete a.sectionHeightUnitPhone;let s=a.sectionHeightValuePhone;return s&&(a.sectionHeightValuePhone={...s,unit:t.unit}),a}import{jsx as Us1}from"react/jsx-runtime";var IO={name:"sectionTheme",applies:(e,t,a)=>t.isSection(e)&&!Dz.has(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let{sectionThemeFields:s,SECTION_THEME_FOLLOW_LABEL:c}=a,l=rm.has(t);e.fields={...e.fields,...l?s(d5,c):s()}},draw(e,t){let a=rm.has(t),s=e.render;e.render=c=>{let l=V9(a?{...c,sectionAccent:d5(c.sectionAccent)}:c),r=s(c);return l?Us1("div",{className:l.className,style:l.style,children:r}):r}}},RO={name:"slideTheme",applies:e=>e==="HeroSlide",panel(e,t,a){let{sectionThemeFields:s,BLOCK_THEME_FOLLOW_LABEL:c}=a;e?.fields&&(e.fields={...e.fields,...s(d5,c)})}};var js1=new Set(["Reviews","Cards","FAQ","Prose","ProductHero","SpecTable","ProductGrid","ParagraphsA","KeyFeatures","Stats","StatsParagraph","Chart","Mockup","Testimonials","Logos","ContactRouting","ContactLocations","SubmitBuild","ReviewForm","Form","AppointmentBooking","OrderSummary","DeliveryOptions","PaymentBadges","CheckoutCTA","Collections","AlloyWheelsListing","CatalogFilterBar","FitmentFinder","GalleryB","BrandStrip","DocMasthead","DocBody","DocMetaCards","Masthead","FeaturedCover","LongRead","Series","Events","SectionHeader","Grid","Flex","Spacer","Divider","CustomHTML","Breadcrumb","CategoryBar","DocTabs","Hero","HeroSingle","IntroBleed","Manifesto","Timeline","TimelineTrack","Footprint","Banner","TitleWithButtons","Ticker","SubscribeBlogs","TyreSizes","TyreFitment","EuTyreLabel","SpecStrip","ProcessSteps","DetailRows","FitmentTable","CompatibleTyres","RelatedProducts","BundleOffer","Split","Gallery","Subscribe"]),BO={name:"sectionGroups",applies:(e,t)=>t.isSection(e)&&(js1.has(e)||t.isHostBlock(e)),panel(e,t,a){let s=a.assignSectionGroups;e?.fields&&(e.fields=s(e.fields,t))}},$s1=new Set(["HeroSlide","Heading","Text","ImageBlock","ButtonBlock","HeroGroup","GalleryItem","Footer","FooterLogo","FooterMenu","FooterGroup","FooterText","PostCard","LogoBlock","CollectionCard","Eyebrow","BookingBox","SubmitBox","FooterSocial","MenuBlock","SocialLogosBlock","EmailFormBlock","SearchBlock","CartBlock"]),ZO={name:"blockGroups",applies:e=>$s1.has(e),panel(e,t,a){let s=a.assignSectionGroups;e?.fields&&(e.fields=s(e.fields,t))}};var Ks1=["Form","Stats"];function Qb(e,t){let a=new Set(e),s=zx.filter(i=>a.has(i)),c=s.filter(i=>i!=="Header"&&i!=="Footer"&&!nl.includes(i)),l=new Set([...t,...cl,...Ks1]),r=s.filter(i=>!l.has(i)),o=new Set(s);return{isSection:i=>o.has(i),isHostBlock:()=>!1,sectionGroupAllow:c,contentSectionKeys:r}}var Ys1=[xO,zO,nL,MO,SO,hL,yO,XF,JF,QF,eT,_O,FO,IO,EO,RO,BO,ZO,LO,CO,AO,bO];function DO(e,t,a){let s=t;for(let c of Ys1)c.applies(e,a,s)&&(a.inspector&&c.panel?.(s,e,a.inspector,a),c.draw?.(s,e,a));return t}var OO={spacingFields:f5,sectionShapeFields:Il,cardShapeFields:Ny,cellWidthFields:Zy,widthField:b5,heightFields:Dy,anchorFields:Oy,sectionThemeFields:K9,sectionAnimationFields:Vy,slider:s1,assignSectionGroups:Ul,dropEmptyHeadings:Nh,SECTION_THEME_FOLLOW_LABEL:Ll,BLOCK_THEME_FOLLOW_LABEL:sy};function GO(e){let t={...Qb(Object.keys(e.components),e.categories?.structure?.components??[]),inspector:OO};for(let[l,r]of Object.entries(e.components))DO(l,r,t);let a=e.root,s=a.resolveFields,c=(l,r)=>Nh(vO(l,r?.props),"page");return a.resolveFields=s?(l,r)=>{let o=s(l,r);return o instanceof Promise?o.then(i=>c(i??r.fields,l)):c(o??r.fields,l)}:(l,r)=>c(r.fields,l),t}import{Fragment as fc1,jsx as r0,jsxs as da}from"react/jsx-runtime";var Th0=[{value:"00",label:L.label},{value:"00",label:L.label},{value:"00",label:L.label}],rc1=qh(()=>import("./PreviewFooter-SMYEU6AT.js")),oc1=qh(()=>import("./render-client-GS5UA2Q7.js")),ic1={padding:"14px 18px",fontFamily:"var(--font-mono, monospace)",fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:"var(--fg-dim, #888)",borderBottom:"1px solid var(--site-line, #e5e5e5)"};function nc1({propsTheme:e,propsFonts:t,widthMode:a,fullWidth:s,pageWidth:c,pageBackground:l,chromeInheritsSiteBackground:r,suppressPreviewNav:o,children:i}){let{originData:n,exitFocus:h}=Sk(),{theme:m,fonts:p,sizes:u,themeFromDocument:g}=V3();if(!n)return da($b,{propsTheme:e,propsFonts:t,widthMode:a,fullWidth:s,pageWidth:c,pageBackground:l,chromeInheritsSiteBackground:r,suppressPreviewNav:o,footer:null,children:[r0("div",{style:ic1,children:"This is your site footer \u2014 it shows at the bottom of every page."}),i]});let d=g?e:m,f=g?t:p,v=n.content??[],z=n.root,x=Ma(v)&&sr(z,v);return da("div",{className:"sf-theme-accent",style:{...ml(f),...dl(d),...gl(d),...vl(d)},onClickCapture:o,children:[da("div",{style:{position:"relative"},children:[r0("div",{className:x?ar:void 0,style:{...xa(d),...bl(g?void 0:u),pointerEvents:"none",userSelect:"none"},"aria-hidden":"true",children:r0(oc1,{data:n})}),r0("button",{type:"button",onClick:()=>h(),title:"Click the page to go back","aria-label":"Go back to the page",style:{position:"absolute",inset:0,width:"100%",height:"100%",cursor:"pointer",background:"transparent",border:0,padding:0}})]}),r0("div",{className:"sf-theme-surfaces",style:{...xa(d),...fl(d)},children:r0(jb,{w:{widthMode:a,fullWidth:s,pageWidth:c},children:i})})]})}var H0=fm,hc1={formSlug:H5(void 0,"Newsletter (built in)"),_gLeft:b("Left panel"),metaLabel:G("Meta label",H0.metaLabel),issueLabel:G("Issue label",H0.issueLabel),issueNumber:G("Issue number",H0.issueNumber),kicker:G("Eyebrow",H0.kicker),heading:E1("Heading",H0.heading),deck:E1("Deck",H0.deck),stats:{type:"array",label:"Stats",arrayFields:{label:G("Label"),value:G("Value")},getItemSummary:e=>e?.label||e?.value||"Stat"},_gForm:b("Right panel \xB7 form"),formLabel:G("Section label",H0.formLabel),formHeading:G("Heading",H0.formHeading),formIntro:E1("Intro",H0.formIntro),firstNameLabel:G("First-name label",H0.firstNameLabel),firstNamePlaceholder:G("First-name placeholder",H0.firstNamePlaceholder),emailLabel:G("Email label",H0.emailLabel),emailPlaceholder:G("Email placeholder",H0.emailPlaceholder),_gChoices:b("Right panel \xB7 choices"),interestsLabel:G("Interests label",H0.interestsLabel),interests:T2("Interest chips",r0(e4,{noun:"tag"}),"Chip label","verbatim"),frequencyLabel:G("Frequency label",H0.frequencyLabel),frequencies:T2("Frequency options",r0(tc1,{}),"Option label","verbatim"),_gActions:b("Right panel \xB7 actions"),submitText:G("Submit button",H0.submitText),finePrint:G("Fine print",H0.finePrint),dismissText:G("Dismiss link",H0.dismissText),emailInvalidText:G("Invalid-email error",H0.emailInvalidText),submitErrorText:G("Submit-failed error",H0.submitErrorText),_gSuccess:b("Success state"),successHeading:G("Heading",H0.successHeading),successBody:E1("Message",H0.successBody),keepBrowsingText:G("Dismiss button",H0.keepBrowsingText),...K9(d5,Ll),...Il(),_gTextStyle:b("Text style"),...Object.fromEntries(Tl.map(e=>[gy[e],d1(mm[e],$e(mm[e]),[{label:"Popup's own",value:""},...u5.map(t=>({label:A9[t],value:t}))],"")])),_gBehaviour:b("Behavior"),autoOpen:c1("Show by itself",H0.autoOpen,r0(ec1,{})),trigger:b1("Trigger",r0(lc1,{}),[{label:"Delay",value:"delay"},{label:"Scroll",value:"scroll"},{label:"Exit",value:"exit"}],H0.trigger),autoOpenDelaySec:s1("Delay",r0(ex,{}),dm.min,dm.max,1,H0.autoOpenDelaySec,"s"),scrollPercent:s1("Scroll",r0(cc1,{}),gm.min,gm.max,5,H0.scrollPercent,"%"),showOn:b1("Pages",r0(ac1,{}),[{label:"All",value:"all"},{label:"Chosen",value:"chosen"}],H0.showOn),showOnPages:X9("Chosen pages",[],"None"),hideAfter:b1("After close",r0(ex,{}),[{label:"This visit",value:"visit"},{label:"Days",value:"days"},{label:"Never",value:"never"}],H0.hideAfter),hideDays:s1("Days",r0(ex,{}),vm.min,vm.max,1,H0.hideDays),_gArrangement:b("Arrangement"),formSide:b1("Form side",r0(sc1,{}),[{label:"Right",value:"right"},{label:"Left",value:"left"}],H0.formSide),_gPhone:b("On a phone"),valuePanelOnPhone:c1("Left panel",H0.valuePanelOnPhone,r0(Js1,{}))},mc1=Ul(hc1,"SubscribePopup");async function pc1(){return(await zy(i2()??"")).filter(t=>!wa(t.slug)).map(t=>({label:t.label,value:n8(t.slug)}))}async function uc1(e){let t=bm(e),a=new Set;t.autoOpen||["trigger","autoOpenDelaySec","scrollPercent","showOn","showOnPages","hideAfter","hideDays"].forEach(c=>a.add(c)),t.trigger==="scroll"&&a.add("autoOpenDelaySec"),t.trigger!=="scroll"&&a.add("scrollPercent"),t.showOn!=="chosen"&&a.add("showOnPages"),t.hideAfter!=="days"&&a.add("hideDays");let s={};for(let[c,l]of Object.entries(mc1))a.has(c)||(s[c]=c==="showOnPages"?{...l,options:await pc1().catch(()=>[])}:l);return ce(s)}var h5=Fl,dc1={_gHeader:b("Header"),kickerBadge:G("Eyebrow badge",h5.kickerBadge),kickerText:G("Eyebrow text",h5.kickerText),titleLead:G("Heading",h5.titleLead),titleAccent:G("Heading accent",h5.titleAccent),subtitleEmpty:E1("Sub-line \xB7 empty",h5.subtitleEmpty),subtitleOne:E1("Sub-line \xB7 one set",h5.subtitleOne),subtitleMany:E1("Sub-line \xB7 several sets",h5.subtitleMany,"{count} becomes the number of sets"),_gStatus:b("Status rail"),leadTimeValue:G("Lead time",h5.leadTimeValue),shipsToFallback:G("Ships to \xB7 fallback",h5.shipsToFallback,"Shown only while the site serves no countries \u2014 otherwise the site's default country is stated"),_gPromises:b("Promise row"),promises:T2("Trust markers",r0(qO,{}),"Marker","verbatim"),_gEmpty:b("Empty basket"),emptyKicker:G("Eyebrow",h5.emptyKicker),emptyBody:E1("Message",h5.emptyBody)},_h={root:{fields:{...gO,_gOpening:b("Opening filter"),openingProcess:d1("Process",p8("A facet's options grow out of the merchant's CATALOGUE, so the set of rows is not ours to count and an icon-per-facet queue never empties. Owner, 2026-08-29, on the `Opening filter` group: \u300Cfilter \u91CC\u4E0D\u52A0 icon\u2026\u4E0D\u7136\u6CA1\u5B8C\u6CA1\u4E86\u3002\u300D"),EM,Jr),openingSize:G("Size","Any"),openingLugs:G("Lugs","Any"),openingFinish:d1("Finish",p8("A facet's options grow out of the merchant's CATALOGUE, so the set of rows is not ours to count and an icon-per-facet queue never empties. Owner, 2026-08-29, on the `Opening filter` group: \u300Cfilter \u91CC\u4E0D\u52A0 icon\u2026\u4E0D\u7136\u6CA1\u5B8C\u6CA1\u4E86\u3002\u300D"),PM,Jr),openingPriceMin:G("Price from","Any"),openingPriceMax:G("Price to","Any")},resolveFields:async(e,{fields:t})=>{if(e?.props?.kind===um)return uc1(e.props);if(e?.props?.kind===hm)return dc1;let a=t;return M2()?{[ep]:d1("Product type",r0(Xs1,{}),ye,"alloy-wheel"),...a,_gHeroBullets:b("Product hero"),_nHeroBullets:v5("The promises under Add to Cart. Text before the \xB7 is bold. Leave the list empty to show no promises at all."),[Xp]:T2("Trust bullets",r0(qO,{}),eL(Ja.bullets[0]),"verbatim")}:a},render:e=>{let{children:t,puck:a,widthMode:s,fullWidth:c,pageWidth:l,pageBackground:r,theme:o,fonts:i,scales:n,kind:h,previewProduct:m}=e,p=Er(typeof h=="string"?h:"",e);if(h===um){let v=bm(e);return da("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[a?.isEditing?r0("div",{style:{padding:"14px 18px",fontFamily:"var(--font-mono, monospace)",fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:"var(--fg-dim, #888)",borderBottom:"1px solid var(--site-line, #e5e5e5)"},children:"This is the site popup \u2014 edit it in the Settings panel \u2192"}):null,r0(eS,{inline:!0,content:v})]})}if(h===hm){let v=dy(e);return da("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[a?.isEditing?r0("div",{style:{padding:"14px 18px",fontFamily:"var(--font-mono, monospace)",fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:"var(--fg-dim, #888)",borderBottom:"1px solid var(--site-line, #e5e5e5)"},children:"This is the cart drawer \u2014 edit its copy in the Settings panel \u2192"}):null,r0(gr,{children:r0(vr,{preview:!0,children:r0($a,{content:v})})})]})}let u=!!a?.isEditing,g=r0(XS,{type:Yp(e),children:r0(WS,{kind:p,children:r0(sL,{content:tL(e),children:r0(OS,{slug:u?m:null,children:r0(MM,{initial:FM(e),children:t})})})})}),d=h===vy&&!ry(r);return u?h===Z9?r0(nc1,{propsTheme:o,propsFonts:i,widthMode:s,fullWidth:c,pageWidth:l,pageBackground:typeof r=="string"?r:void 0,chromeInheritsSiteBackground:d,suppressPreviewNav:Kb,children:g}):r0($b,{propsTheme:o,propsFonts:i,widthMode:s,fullWidth:c,pageWidth:l,pageBackground:typeof r=="string"?r:void 0,suppressPreviewNav:Kb,footer:r0(rc1,{}),overlay:da(fc1,{children:[r0(Vp,{}),r0(qp,{})]}),children:g}):r0(pO,{pageBackground:r,inheritBackground:d,w:{widthMode:s,fullWidth:c,pageWidth:l},children:g})}},categories:xx(),components:{Heading:R1.Heading,Text:R1.Text,Eyebrow:R1.Eyebrow,ImageBlock:R1.ImageBlock,LogoBlock:R1.LogoBlock,ButtonBlock:R1.ButtonBlock,Spacer:R1.Spacer,Divider:R1.Divider,Grid:R1.Grid,Flex:R1.Flex,Breadcrumb:R1.Breadcrumb,Masthead:R1.Masthead,CategoryBar:R1.CategoryBar,FeaturedCover:R1.FeaturedCover,LongRead:R1.LongRead,Series:R1.Series,Subscribe:h2.Subscribe,SubscribeBlogs:h2.SubscribeBlogs,Banner:R1.Banner,ParagraphsA:R1.ParagraphsA,StatsParagraph:R1.StatsParagraph,Timeline:R1.Timeline,Footprint:R1.Footprint,TimelineTrack:R1.TimelineTrack,TitleWithButtons:R1.TitleWithButtons,Stats:R1.Stats,Integrations:R1.Integrations,Mockup:R1.Mockup,Chart:R1.Chart,KeyFeatures:R1.KeyFeatures,Testimonials:R1.Testimonials,Reviews:h2.Reviews,Prose:R1.Prose,Cards:R1.Cards,Logos:R1.Logos,Ticker:R1.Ticker,ContactRouting:h2.ContactRouting,ContactLocations:R1.ContactLocations,HeroSingle:R1.HeroSingle,Hero:R1.Hero,HeroSlide:R1.HeroSlide,HeroGroup:R1.HeroGroup,Collections:W0.Collections,CollectionCard:W0.CollectionCard,Events:h2.Events,PostCard:R1.PostCard,DocMetaCards:R1.DocMetaCards,DocTabs:R1.DocTabs,DocMasthead:R1.DocMasthead,DocBody:R1.DocBody,FAQ:R1.FAQ,Gallery:W0.Gallery,GalleryB:W0.GalleryB,BrandStrip:W0.BrandStrip,SpecStrip:R1.SpecStrip,GalleryItem:W0.GalleryItem,Manifesto:R1.Manifesto,SectionHeader:R1.SectionHeader,IntroBleed:R1.IntroBleed,Split:R1.Split,SubmitBuild:h2.SubmitBuild,SubmitBox:h2.SubmitBox,ReviewForm:h2.ReviewForm,Form:h2.Form,AppointmentBooking:h2.AppointmentBooking,BookingBox:h2.BookingBox,CatalogFilterBar:W0.CatalogFilterBar,AlloyWheelsListing:W0.AlloyWheelsListing,ProductGrid:W0.ProductGrid,ProductHero:W0.ProductHero,SpecTable:W0.SpecTable,ProcessSteps:R1.ProcessSteps,DetailRows:W0.DetailRows,FitmentTable:W0.FitmentTable,RelatedProducts:W0.RelatedProducts,BundleOffer:W0.BundleOffer,CompatibleTyres:W0.CompatibleTyres,TyreSizes:W0.TyreSizes,TyreFitment:W0.TyreFitment,EuTyreLabel:W0.EuTyreLabel,FitmentFinder:W0.FitmentFinder,OrderSummary:R1.OrderSummary,DeliveryOptions:W0.DeliveryOptions,PaymentBadges:R1.PaymentBadges,CheckoutCTA:W0.CheckoutCTA,ProductRef:W0.ProductRef,CustomHTML:R1.CustomHTML,Header:W0.Header,Footer:h2.Footer,FooterLogo:h2.FooterLogo,FooterMenu:h2.FooterMenu,FooterDivider:h2.FooterDivider,FooterGroup:h2.FooterGroup,FooterText:h2.FooterText,FooterEmailSignup:h2.FooterEmailSignup,FooterSocial:h2.FooterSocial,LegalLineBlock:h2.LegalLineBlock,SearchBlock:W0.SearchBlock,CartBlock:W0.CartBlock,CountrySwitchBlock:W0.CountrySwitchBlock,[S9]:h2.SiteHeader,[L9]:h2.SiteFooter}},gc1={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial"};for(let[e,t]of Object.entries(gc1)){let a=_h.components;a[e]={...a[t]}}{let e=_h.components.MenuBlock;e.fields={...e.fields,direction:b1("Direction",r0(Qs1,{}),[{label:om.column,value:"column"},{label:om.row,value:"row"}],"column")},e.defaultProps={...e.defaultProps,direction:"column"},e.render=({menu:t,heading:a,accordionMobile:s,showDividers:c,direction:l,puck:r})=>r0(_a,{menu:t,heading:a||void 0,accordionMobile:s,showDividers:c,layout:l==="row"?"row":"column",editing:r?.isEditing})}var vc1=GO(_h),Ph0=vc1.sectionGroupAllow,Bf=_h;export{Kb1 as a,Yb1 as b,Xb1 as c,Jb1 as d,Qb1 as e,Qb as f,DO as g,OO as h,ZU as i,Vh1 as j,Ul1 as k,QB as l,Mo1 as m,IM as n,So1 as o,Lo1 as p,fh1 as q,Io0 as r,Ro0 as s,yD1 as t,Bc1 as u,Zc1 as v,Dc1 as w,Oc1 as x,sl1 as y,cl1 as z,KG1 as A,gr1 as B,ni1 as C,T60 as D,Np as E,FN1 as F,mp as G,Wk as H,wr1 as I,Cr1 as J,kr1 as K,Ar1 as L,Kk as M,rr1 as N,qB as O,Ef as P,ih as Q,Ct as R,r3 as S,LU as T,jB as U,Xr as V,Ba as W,Yq as X,uo1 as Y,Ol1 as Z,xR as _,kc as $,Bf as aa};
|
|
154
|
+
`)}import{useEasel as ws1}from"efficient-easel/easel";var Cs1="color-mix(in oklab, var(--bg) 40%, #ffffff)",ks1="12vh";function Ms1({style:e,frameClass:t,children:a}){let{appState:s}=ws1(u=>u),c=s.data.content,l=s.data.root;if(Vw(c))return I6("div",{className:`sf-themed-content${t?` ${t}`:""}`,style:{...e,background:Cs1,minHeight:"100vh",paddingBottom:ks1},children:I6("div",{style:{background:"var(--bg)"},children:a})});let r=Ma(c)&&sr(l,c),o=Ma(c)?Iw(l,c):null,i=o?{[_w]:o}:null,n=Bz(l?.widthChoice),h=n?{[Rz]:n}:null,m=r?null:KB(c),p=m?{[rh]:m}:null;return I6("div",{className:`sf-themed-content${r?` ${ar}`:""}${t?` ${t}`:""}`,style:e,...p,...i,...h,children:I6("div",{style:{background:"var(--bg)",minHeight:"100%"},children:a})})}function mO(e){return{frameClass:void 0,style:{"--sf-page-width":za}}}function jb({w:e,children:t}){let{frameClass:a,style:s}=mO(e);return I6("div",{className:a,style:s,children:t})}function $b({propsTheme:e,propsFonts:t,propsCornerStyle:a,propsCornerRadiusPx:s,propsHeadingCompression:c,propsHeadingTypography:l,widthMode:r,fullWidth:o,pageWidth:i,pageBackground:n,chromeInheritsSiteBackground:h,suppressPreviewNav:m,footer:p,overlay:u,children:g}){let{theme:d,fonts:f,sizes:v,cornerRadiusPx:z,cardShadow:x,shadowColor:k,cardGap:M,hoverEffect:A,headingCompression:B,siteWidth:P,siteGutter:D,blockGap:F,headingTypography:T,heroBackgroundFollowsWidth:V,photographyGrayscale:Z,textStyles:_,themeFromDocument:N}=V3(),t1=N?e:d,E=N?t:f,q=N?void 0:v,K=N?s===void 0?vz[gz(a)]:fz(s):z,W=N?c:B,r1=nO(iO(N?void 0:_)),x1=N?l:T,Y=mO({widthMode:r,fullWidth:o,pageWidth:i}),e1={...xa(t1),...bl(q),...kz(x1),...Y.style,...h?{}:im(n)};return hO("div",{className:"sf-theme-surfaces sf-theme-accent",style:{...ml(E),...dl(t1),...gl(t1),...vl(t1),...fl(t1),...Qh(K),...Fz(Qh(K)),...yz(N?void 0:x,N?void 0:k,N?void 0:A),...Pz(N?void 0:P),...Ez(N?void 0:D),...Sy(N?void 0:F),...Iz(N?void 0:V)},"data-sf-headings":wz(W),"data-sf-card-shadow":N?void 0:bz(x),"data-sf-card-gap":N?void 0:xz(M),"data-sf-card-hover":N?void 0:zz(A),onClickCapture:m,children:[r1?I6("style",{"data-sf-text-styles":"",dangerouslySetInnerHTML:{__html:r1}}):null,hO(gT,{grayscale:N?void 0:Z,children:[I6(Ms1,{style:e1,frameClass:Y.frameClass,children:g}),p,u]})]})}var Kb=e=>{e.target?.closest?.("a")&&e.preventDefault()};function pO({pageBackground:e,inheritBackground:t=!1,w:a,children:s}){return I6("div",{style:{...t?{}:im(e),background:"var(--bg)",minHeight:"100%",overflowX:"clip"},children:I6(jb,{w:a,children:s})})}import{jsx as Xb}from"react/jsx-runtime";import{ListIcon as Ss1,PaddingTopIcon as Ls1}from"efficient-easel/icons";function As1(){return{type:"custom",render:({value:e,onChange:t})=>Xb(kh,{value:e==="full"?"full":e==="content"?"content":void 0,resolved:"content",followsLabel:"Follows the site",hint:"Whether this page sits on the site's content column, or runs edge to edge.",onChange:a=>t(a)})}}var Hs1=[{label:"Auto",value:"auto"},{label:"Shared",value:"shared"},{label:"Its own",value:"own"}],gO={title:G("Page Title"),pageBackground:qy(),topSpace:d1("Top space",Xb(Ls1,{}),Hs1,Nw),widthChoice:As1()},Fs1="Record type",Yb=new Map,uO=-1;function Ts1(e){uO!==Xm()&&(Yb.clear(),uO=Xm());let t=Ym(),a=t.some(c=>c.key===e)?"":e,s=Yb.get(a);return s||(s=d1(Fs1,Xb(Ss1,{}),[...t.map(c=>({label:c.label,value:c.key})),...a?[{label:a,value:a}]:[]],Fe),Yb.set(a,s)),s}var dO=new WeakMap;function vO(e,t){if(!M2()||Ym().length<2||Tr in e)return e;let a=Ts1(Pr(t)),s=dO.get(e);if(s&&s.row===a)return s.fields;let c={[Tr]:a,...e};return dO.set(e,{row:a,fields:c}),c}function Ps1(e,t){let a=nm(t),s=a?a.inner:t;if($h(s))return!1;if(s?.type==="slot")return!0;let c=ny(s);return c==="always"?!1:c==="authored-copy"?rz(e):!0}function fO(e){let t=nm(e),a=t?t.inner:e,s=$h(a);return s?Py(a)?0:s.level:null}function Es1(e,t,a){return a&&t===0&&e===u8.Content}var Vs1=new WeakMap,Ns1=new WeakMap;function Nh(e,t="section"){let a=t==="page"?Ns1:Vs1,s=a.get(e);if(s)return s;let c=Object.entries(e).map(([m,p])=>({key:m,field:p,level:fO(p),draws:Ps1(m,p)||t==="page"&&fO(p)===null&&Yh(m,p)})),l=t==="section"&&c.some(m=>Yh(m.key,m.field)),r=new Set;for(let m=0;m<c.length;m++){let p=c[m].level;if(p===null)continue;let u=0;for(let g=m+1;g<c.length;g++){let d=c[g].level;if(d!==null&&d<=p)break;c[g].draws&&(u+=1)}u===0&&!Es1(c[m].key,p,l)&&r.add(c[m].key)}let o=l&&Jy(e),i=o&&!(u8.Content in e);if(!r.size&&!i)return a.set(e,e),e;let n={};for(let m of c)r.has(m.key)||(n[m.key]=m.field);let h=ce(o?Xy(n):n);return a.set(e,h),h}var bO={name:"catalogueLabel",applies:e=>Object.prototype.hasOwnProperty.call(ba,e),draw(e,t){e.label=ba[t]}};import{jsx as _s1}from"react/jsx-runtime";var xO={name:"sectionGroupAllow",applies:e=>nl.includes(e),panel(e,t,a,s){let c=e.fields?.sections;c&&(c.allow=[...s.sectionGroupAllow])}},Jb=new Set(Object.keys(B1)),zO={name:"openSlotDisallow",applies:()=>!0,panel(e,t,a,s){let c=s.contentSectionKeys;if(e?.fields)for(let l of Object.values(e.fields)){let r=l;if(r.type!=="slot"||r.allow)continue;let o=t==="Flex"?c.filter(i=>!Jb.has(i)):c;r.disallow=Array.from(new Set([...r.disallow??[],...o]))}}};var Is1=Array.from(new Set([...Cx.map(e=>e.type),...Jb,...cl,"GalleryItem"])),yO={name:"cellWidth",applies:(e,t,a)=>Is1.includes(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let s=a.cellWidthFields;e.fields={...e.fields,...s()};let c=e.resolveFields;e.resolveFields=(l,r)=>{let o=c?c(l,r):r.fields,i=wi(r.appState,l.props?.id);if(i===void 0||Qx(i))return o;let n={...o};for(let h of Object.keys(s()))delete n[h];return n}},draw(e){let t=e.render;e.render=a=>{let s=Xx(a.gridSpan),c=t(a);return s==null?c:_s1("div",{className:"sf-grid-cell",[Jx]:String(s),children:c})}}};import{jsx as wO}from"react/jsx-runtime";var CO={name:"clickableParts",applies:(e,t,a)=>typeof a?.render=="function",draw(e,t){let a=e,s=a.render;a.render=c=>{let l=F9(c);return c.puck?.isEditing?wO(DA,{needles:Kh(a.fields,c),styles:l,type:t,children:s(c)}):Object.keys(l).length?wO(Sz,{needles:Kh(a.fields,c),styles:l,type:t,children:s(c)}):s(c)}}};import{jsx as kO}from"react/jsx-runtime";var MO={name:"sectionCorners",applies:(e,t,a)=>t.isSection(e)&&!!a&&typeof a.render=="function",panel(e,t,a){e.fields={...e.fields,...a.sectionShapeFields()}},draw(e){let t=e.render;e.render=a=>{let s=xl(a.sectionCorners,a.sectionCornerSides),c=t(a),l=N0(a)?`sf-section-corners ${Az}`:"sf-section-corners";return s?kO("div",{className:l,style:{display:"contents",...s},children:c}):c}}},Rs1=["CollectionCard"],SO={name:"cardCorners",applies:(e,t,a)=>Rs1.includes(e)&&!!a&&typeof a.render=="function",panel(e,t,a){e.fields={...e.fields,...a.cardShapeFields()}},draw(e){let t=e.render;e.render=a=>{let s=Hz(a.cardCorners,a.cardCornerSides),c=t(a);return s?kO("div",{className:"sf-card-corners",style:{display:"contents",...s},children:c}):c}}};var LO={name:"emptyHeadings",applies:()=>!0,panel(e,t,a){let s=a.dropEmptyHeadings,c=e.resolveFields;e.resolveFields=c?(l,r)=>{let o=c(l,r);return o instanceof Promise?o.then(i=>s(i??r.fields)):s(o??r.fields)}:(l,r)=>s(r.fields)}};var AO={name:"hiddenNodes",applies:(e,t,a)=>typeof a?.render=="function",draw(e){let t=e.render;e.render=a=>a._hidden?null:t(a)}};import{jsx as HO,Fragment as Bs1,jsxs as Zs1}from"react/jsx-runtime";function Ds1({anchor:e}){let t=cm(typeof e=="string"?e:"");return t?HO("span",{id:t,className:"sf-section-anchor","aria-hidden":"true"}):null}var FO={name:"sectionAnchor",applies:(e,t,a)=>t.isSection(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let s=a.anchorFields;e.fields={...e.fields,...s()}},draw(e){e.defaultProps={...e.defaultProps,anchor:""};let t=e.render;e.render=a=>Zs1(Bs1,{children:[HO(Ds1,{anchor:a.anchor}),t(a)]})}};import{jsx as qs1}from"react/jsx-runtime";import{jsx as Os1}from"react/jsx-runtime";import{useEffect as Gs1,useRef as TO}from"react";function PO({motion:e,editing:t,children:a}){let s=TO(null),c=TO(e);return Gs1(()=>{let l=s.current;if(l){if(t){if(c.current===e)return;c.current=e,Uz(l);return}return Wz(l)}},[e,t]),Os1("div",{ref:s,[qz]:e,children:a})}var EO={name:"sectionAnimation",applies:(e,t,a)=>t.isSection(e)&&!jz.has(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let s=a.sectionAnimationFields;e.fields={...e.fields,...s()}},draw(e){let t=e,a=t.render;t.render=s=>{let c=Gz(s.sectionAnimation);return c?qs1(PO,{motion:c,editing:!!s.puck?.isEditing,children:a(s)}):a(s)}}};import{jsx as Ws1}from"react/jsx-runtime";var _O={name:"sectionHeight",applies:(e,t,a)=>t.isSection(e)&&!Kz.has(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let s=a.heightFields;e.fields={...e.fields,...s()};let c=e.resolveFields;e.resolveFields=(l,r)=>{let o=c?c(l,r):r.fields,i=l?.props??{},n=$z(i),h=Yz(i)?Xz(i):null;return o&&typeof o.then=="function"?o.then(m=>NO(VO(m,n),h)):NO(VO(o,n),h)}},draw(e){let t=e.render;e.render=a=>{let s=Jz(a);return s?Ws1("div",{className:s.className,style:s.style,children:t(a)}):t(a)}}};function VO(e,t){if(!e||!("sectionHeightMode"in e))return e;let a={...e};if(t.mode==="auto")return delete a.sectionHeightValue,delete a.sectionHeightUnit,a;t.mode==="screen"&&delete a.sectionHeightUnit;let s=a.sectionHeightValue;return s&&(a.sectionHeightValue={...s,unit:t.unit}),a}function NO(e,t){if(!e||!("sectionHeightModePhone"in e))return e;let a={...e};if(!t||t.mode==="auto")return delete a.sectionHeightValuePhone,delete a.sectionHeightUnitPhone,a;t.mode==="screen"&&delete a.sectionHeightUnitPhone;let s=a.sectionHeightValuePhone;return s&&(a.sectionHeightValuePhone={...s,unit:t.unit}),a}import{jsx as Us1}from"react/jsx-runtime";var IO={name:"sectionTheme",applies:(e,t,a)=>t.isSection(e)&&!Dz.has(e)&&!!a&&typeof a.render=="function",panel(e,t,a){let{sectionThemeFields:s,SECTION_THEME_FOLLOW_LABEL:c}=a,l=rm.has(t);e.fields={...e.fields,...l?s(d5,c):s()}},draw(e,t){let a=rm.has(t),s=e.render;e.render=c=>{let l=V9(a?{...c,sectionAccent:d5(c.sectionAccent)}:c),r=s(c);return l?Us1("div",{className:l.className,style:l.style,children:r}):r}}},RO={name:"slideTheme",applies:e=>e==="HeroSlide",panel(e,t,a){let{sectionThemeFields:s,BLOCK_THEME_FOLLOW_LABEL:c}=a;e?.fields&&(e.fields={...e.fields,...s(d5,c)})}};var js1=new Set(["Reviews","Cards","FAQ","Prose","ProductHero","SpecTable","ProductGrid","ParagraphsA","KeyFeatures","Stats","StatsParagraph","Chart","Mockup","Testimonials","Logos","ContactRouting","ContactLocations","SubmitBuild","ReviewForm","Form","AppointmentBooking","OrderSummary","DeliveryOptions","PaymentBadges","CheckoutCTA","Collections","AlloyWheelsListing","CatalogFilterBar","FitmentFinder","GalleryB","BrandStrip","DocMasthead","DocBody","DocMetaCards","Masthead","FeaturedCover","LongRead","Series","Events","SectionHeader","Grid","Flex","Spacer","Divider","CustomHTML","Breadcrumb","CategoryBar","DocTabs","Hero","HeroSingle","IntroBleed","Manifesto","Timeline","TimelineTrack","Footprint","Banner","TitleWithButtons","Ticker","SubscribeBlogs","TyreSizes","TyreFitment","EuTyreLabel","SpecStrip","ProcessSteps","DetailRows","FitmentTable","CompatibleTyres","RelatedProducts","BundleOffer","Split","Gallery","Subscribe"]),BO={name:"sectionGroups",applies:(e,t)=>t.isSection(e)&&(js1.has(e)||t.isHostBlock(e)),panel(e,t,a){let s=a.assignSectionGroups;e?.fields&&(e.fields=s(e.fields,t))}},$s1=new Set(["HeroSlide","Heading","Text","ImageBlock","ButtonBlock","HeroGroup","GalleryItem","Footer","FooterLogo","FooterMenu","FooterGroup","FooterText","PostCard","LogoBlock","CollectionCard","Eyebrow","BookingBox","SubmitBox","FooterSocial","MenuBlock","SocialLogosBlock","EmailFormBlock","SearchBlock","CartBlock"]),ZO={name:"blockGroups",applies:e=>$s1.has(e),panel(e,t,a){let s=a.assignSectionGroups;e?.fields&&(e.fields=s(e.fields,t))}};var Ks1=["Form","Stats"];function Qb(e,t){let a=new Set(e),s=zx.filter(i=>a.has(i)),c=s.filter(i=>i!=="Header"&&i!=="Footer"&&!nl.includes(i)),l=new Set([...t,...cl,...Ks1]),r=s.filter(i=>!l.has(i)),o=new Set(s);return{isSection:i=>o.has(i),isHostBlock:()=>!1,sectionGroupAllow:c,contentSectionKeys:r}}var Ys1=[xO,zO,nL,MO,SO,hL,yO,XF,JF,QF,eT,_O,FO,IO,EO,RO,BO,ZO,LO,CO,AO,bO];function DO(e,t,a){let s=t;for(let c of Ys1)c.applies(e,a,s)&&(a.inspector&&c.panel?.(s,e,a.inspector,a),c.draw?.(s,e,a));return t}var OO={spacingFields:f5,sectionShapeFields:Il,cardShapeFields:Ny,cellWidthFields:Zy,widthField:b5,heightFields:Dy,anchorFields:Oy,sectionThemeFields:K9,sectionAnimationFields:Vy,slider:s1,assignSectionGroups:Ul,dropEmptyHeadings:Nh,SECTION_THEME_FOLLOW_LABEL:Ll,BLOCK_THEME_FOLLOW_LABEL:sy};function GO(e){let t={...Qb(Object.keys(e.components),e.categories?.structure?.components??[]),inspector:OO};for(let[l,r]of Object.entries(e.components))DO(l,r,t);let a=e.root,s=a.resolveFields,c=(l,r)=>Nh(vO(l,r?.props),"page");return a.resolveFields=s?(l,r)=>{let o=s(l,r);return o instanceof Promise?o.then(i=>c(i??r.fields,l)):c(o??r.fields,l)}:(l,r)=>c(r.fields,l),t}import{Fragment as fc1,jsx as r0,jsxs as da}from"react/jsx-runtime";var Th0=[{value:"00",label:L.label},{value:"00",label:L.label},{value:"00",label:L.label}],rc1=qh(()=>import("./PreviewFooter-FMWOXIAI.js")),oc1=qh(()=>import("./render-client-IM6ELUPU.js")),ic1={padding:"14px 18px",fontFamily:"var(--font-mono, monospace)",fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:"var(--fg-dim, #888)",borderBottom:"1px solid var(--site-line, #e5e5e5)"};function nc1({propsTheme:e,propsFonts:t,widthMode:a,fullWidth:s,pageWidth:c,pageBackground:l,chromeInheritsSiteBackground:r,suppressPreviewNav:o,children:i}){let{originData:n,exitFocus:h}=Sk(),{theme:m,fonts:p,sizes:u,themeFromDocument:g}=V3();if(!n)return da($b,{propsTheme:e,propsFonts:t,widthMode:a,fullWidth:s,pageWidth:c,pageBackground:l,chromeInheritsSiteBackground:r,suppressPreviewNav:o,footer:null,children:[r0("div",{style:ic1,children:"This is your site footer \u2014 it shows at the bottom of every page."}),i]});let d=g?e:m,f=g?t:p,v=n.content??[],z=n.root,x=Ma(v)&&sr(z,v);return da("div",{className:"sf-theme-accent",style:{...ml(f),...dl(d),...gl(d),...vl(d)},onClickCapture:o,children:[da("div",{style:{position:"relative"},children:[r0("div",{className:x?ar:void 0,style:{...xa(d),...bl(g?void 0:u),pointerEvents:"none",userSelect:"none"},"aria-hidden":"true",children:r0(oc1,{data:n})}),r0("button",{type:"button",onClick:()=>h(),title:"Click the page to go back","aria-label":"Go back to the page",style:{position:"absolute",inset:0,width:"100%",height:"100%",cursor:"pointer",background:"transparent",border:0,padding:0}})]}),r0("div",{className:"sf-theme-surfaces",style:{...xa(d),...fl(d)},children:r0(jb,{w:{widthMode:a,fullWidth:s,pageWidth:c},children:i})})]})}var H0=fm,hc1={formSlug:H5(void 0,"Newsletter (built in)"),_gLeft:b("Left panel"),metaLabel:G("Meta label",H0.metaLabel),issueLabel:G("Issue label",H0.issueLabel),issueNumber:G("Issue number",H0.issueNumber),kicker:G("Eyebrow",H0.kicker),heading:E1("Heading",H0.heading),deck:E1("Deck",H0.deck),stats:{type:"array",label:"Stats",arrayFields:{label:G("Label"),value:G("Value")},getItemSummary:e=>e?.label||e?.value||"Stat"},_gForm:b("Right panel \xB7 form"),formLabel:G("Section label",H0.formLabel),formHeading:G("Heading",H0.formHeading),formIntro:E1("Intro",H0.formIntro),firstNameLabel:G("First-name label",H0.firstNameLabel),firstNamePlaceholder:G("First-name placeholder",H0.firstNamePlaceholder),emailLabel:G("Email label",H0.emailLabel),emailPlaceholder:G("Email placeholder",H0.emailPlaceholder),_gChoices:b("Right panel \xB7 choices"),interestsLabel:G("Interests label",H0.interestsLabel),interests:T2("Interest chips",r0(e4,{noun:"tag"}),"Chip label","verbatim"),frequencyLabel:G("Frequency label",H0.frequencyLabel),frequencies:T2("Frequency options",r0(tc1,{}),"Option label","verbatim"),_gActions:b("Right panel \xB7 actions"),submitText:G("Submit button",H0.submitText),finePrint:G("Fine print",H0.finePrint),dismissText:G("Dismiss link",H0.dismissText),emailInvalidText:G("Invalid-email error",H0.emailInvalidText),submitErrorText:G("Submit-failed error",H0.submitErrorText),_gSuccess:b("Success state"),successHeading:G("Heading",H0.successHeading),successBody:E1("Message",H0.successBody),keepBrowsingText:G("Dismiss button",H0.keepBrowsingText),...K9(d5,Ll),...Il(),_gTextStyle:b("Text style"),...Object.fromEntries(Tl.map(e=>[gy[e],d1(mm[e],$e(mm[e]),[{label:"Popup's own",value:""},...u5.map(t=>({label:A9[t],value:t}))],"")])),_gBehaviour:b("Behavior"),autoOpen:c1("Show by itself",H0.autoOpen,r0(ec1,{})),trigger:b1("Trigger",r0(lc1,{}),[{label:"Delay",value:"delay"},{label:"Scroll",value:"scroll"},{label:"Exit",value:"exit"}],H0.trigger),autoOpenDelaySec:s1("Delay",r0(ex,{}),dm.min,dm.max,1,H0.autoOpenDelaySec,"s"),scrollPercent:s1("Scroll",r0(cc1,{}),gm.min,gm.max,5,H0.scrollPercent,"%"),showOn:b1("Pages",r0(ac1,{}),[{label:"All",value:"all"},{label:"Chosen",value:"chosen"}],H0.showOn),showOnPages:X9("Chosen pages",[],"None"),hideAfter:b1("After close",r0(ex,{}),[{label:"This visit",value:"visit"},{label:"Days",value:"days"},{label:"Never",value:"never"}],H0.hideAfter),hideDays:s1("Days",r0(ex,{}),vm.min,vm.max,1,H0.hideDays),_gArrangement:b("Arrangement"),formSide:b1("Form side",r0(sc1,{}),[{label:"Right",value:"right"},{label:"Left",value:"left"}],H0.formSide),_gPhone:b("On a phone"),valuePanelOnPhone:c1("Left panel",H0.valuePanelOnPhone,r0(Js1,{}))},mc1=Ul(hc1,"SubscribePopup");async function pc1(){return(await zy(i2()??"")).filter(t=>!wa(t.slug)).map(t=>({label:t.label,value:n8(t.slug)}))}async function uc1(e){let t=bm(e),a=new Set;t.autoOpen||["trigger","autoOpenDelaySec","scrollPercent","showOn","showOnPages","hideAfter","hideDays"].forEach(c=>a.add(c)),t.trigger==="scroll"&&a.add("autoOpenDelaySec"),t.trigger!=="scroll"&&a.add("scrollPercent"),t.showOn!=="chosen"&&a.add("showOnPages"),t.hideAfter!=="days"&&a.add("hideDays");let s={};for(let[c,l]of Object.entries(mc1))a.has(c)||(s[c]=c==="showOnPages"?{...l,options:await pc1().catch(()=>[])}:l);return ce(s)}var h5=Fl,dc1={_gHeader:b("Header"),kickerBadge:G("Eyebrow badge",h5.kickerBadge),kickerText:G("Eyebrow text",h5.kickerText),titleLead:G("Heading",h5.titleLead),titleAccent:G("Heading accent",h5.titleAccent),subtitleEmpty:E1("Sub-line \xB7 empty",h5.subtitleEmpty),subtitleOne:E1("Sub-line \xB7 one set",h5.subtitleOne),subtitleMany:E1("Sub-line \xB7 several sets",h5.subtitleMany,"{count} becomes the number of sets"),_gStatus:b("Status rail"),leadTimeValue:G("Lead time",h5.leadTimeValue),shipsToFallback:G("Ships to \xB7 fallback",h5.shipsToFallback,"Shown only while the site serves no countries \u2014 otherwise the site's default country is stated"),_gPromises:b("Promise row"),promises:T2("Trust markers",r0(qO,{}),"Marker","verbatim"),_gEmpty:b("Empty basket"),emptyKicker:G("Eyebrow",h5.emptyKicker),emptyBody:E1("Message",h5.emptyBody)},_h={root:{fields:{...gO,_gOpening:b("Opening filter"),openingProcess:d1("Process",p8("A facet's options grow out of the merchant's CATALOGUE, so the set of rows is not ours to count and an icon-per-facet queue never empties. Owner, 2026-08-29, on the `Opening filter` group: \u300Cfilter \u91CC\u4E0D\u52A0 icon\u2026\u4E0D\u7136\u6CA1\u5B8C\u6CA1\u4E86\u3002\u300D"),EM,Jr),openingSize:G("Size","Any"),openingLugs:G("Lugs","Any"),openingFinish:d1("Finish",p8("A facet's options grow out of the merchant's CATALOGUE, so the set of rows is not ours to count and an icon-per-facet queue never empties. Owner, 2026-08-29, on the `Opening filter` group: \u300Cfilter \u91CC\u4E0D\u52A0 icon\u2026\u4E0D\u7136\u6CA1\u5B8C\u6CA1\u4E86\u3002\u300D"),PM,Jr),openingPriceMin:G("Price from","Any"),openingPriceMax:G("Price to","Any")},resolveFields:async(e,{fields:t})=>{if(e?.props?.kind===um)return uc1(e.props);if(e?.props?.kind===hm)return dc1;let a=t;return M2()?{[ep]:d1("Product type",r0(Xs1,{}),ye,"alloy-wheel"),...a,_gHeroBullets:b("Product hero"),_nHeroBullets:v5("The promises under Add to Cart. Text before the \xB7 is bold. Leave the list empty to show no promises at all."),[Xp]:T2("Trust bullets",r0(qO,{}),eL(Ja.bullets[0]),"verbatim")}:a},render:e=>{let{children:t,puck:a,widthMode:s,fullWidth:c,pageWidth:l,pageBackground:r,theme:o,fonts:i,scales:n,kind:h,previewProduct:m}=e,p=Er(typeof h=="string"?h:"",e);if(h===um){let v=bm(e);return da("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[a?.isEditing?r0("div",{style:{padding:"14px 18px",fontFamily:"var(--font-mono, monospace)",fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:"var(--fg-dim, #888)",borderBottom:"1px solid var(--site-line, #e5e5e5)"},children:"This is the site popup \u2014 edit it in the Settings panel \u2192"}):null,r0(eS,{inline:!0,content:v})]})}if(h===hm){let v=dy(e);return da("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[a?.isEditing?r0("div",{style:{padding:"14px 18px",fontFamily:"var(--font-mono, monospace)",fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:"var(--fg-dim, #888)",borderBottom:"1px solid var(--site-line, #e5e5e5)"},children:"This is the cart drawer \u2014 edit its copy in the Settings panel \u2192"}):null,r0(gr,{children:r0(vr,{preview:!0,children:r0($a,{content:v})})})]})}let u=!!a?.isEditing,g=r0(XS,{type:Yp(e),children:r0(WS,{kind:p,children:r0(sL,{content:tL(e),children:r0(OS,{slug:u?m:null,children:r0(MM,{initial:FM(e),children:t})})})})}),d=h===vy&&!ry(r);return u?h===Z9?r0(nc1,{propsTheme:o,propsFonts:i,widthMode:s,fullWidth:c,pageWidth:l,pageBackground:typeof r=="string"?r:void 0,chromeInheritsSiteBackground:d,suppressPreviewNav:Kb,children:g}):r0($b,{propsTheme:o,propsFonts:i,widthMode:s,fullWidth:c,pageWidth:l,pageBackground:typeof r=="string"?r:void 0,suppressPreviewNav:Kb,footer:r0(rc1,{}),overlay:da(fc1,{children:[r0(Vp,{}),r0(qp,{})]}),children:g}):r0(pO,{pageBackground:r,inheritBackground:d,w:{widthMode:s,fullWidth:c,pageWidth:l},children:g})}},categories:xx(),components:{Heading:R1.Heading,Text:R1.Text,Eyebrow:R1.Eyebrow,ImageBlock:R1.ImageBlock,LogoBlock:R1.LogoBlock,ButtonBlock:R1.ButtonBlock,Spacer:R1.Spacer,Divider:R1.Divider,Grid:R1.Grid,Flex:R1.Flex,Breadcrumb:R1.Breadcrumb,Masthead:R1.Masthead,CategoryBar:R1.CategoryBar,FeaturedCover:R1.FeaturedCover,LongRead:R1.LongRead,Series:R1.Series,Subscribe:h2.Subscribe,SubscribeBlogs:h2.SubscribeBlogs,Banner:R1.Banner,ParagraphsA:R1.ParagraphsA,StatsParagraph:R1.StatsParagraph,Timeline:R1.Timeline,Footprint:R1.Footprint,TimelineTrack:R1.TimelineTrack,TitleWithButtons:R1.TitleWithButtons,Stats:R1.Stats,Integrations:R1.Integrations,Mockup:R1.Mockup,Chart:R1.Chart,KeyFeatures:R1.KeyFeatures,Testimonials:R1.Testimonials,Reviews:h2.Reviews,Prose:R1.Prose,Cards:R1.Cards,Logos:R1.Logos,Ticker:R1.Ticker,ContactRouting:h2.ContactRouting,ContactLocations:R1.ContactLocations,HeroSingle:R1.HeroSingle,Hero:R1.Hero,HeroSlide:R1.HeroSlide,HeroGroup:R1.HeroGroup,Collections:W0.Collections,CollectionCard:W0.CollectionCard,Events:h2.Events,PostCard:R1.PostCard,DocMetaCards:R1.DocMetaCards,DocTabs:R1.DocTabs,DocMasthead:R1.DocMasthead,DocBody:R1.DocBody,FAQ:R1.FAQ,Gallery:W0.Gallery,GalleryB:W0.GalleryB,BrandStrip:W0.BrandStrip,SpecStrip:R1.SpecStrip,GalleryItem:W0.GalleryItem,Manifesto:R1.Manifesto,SectionHeader:R1.SectionHeader,IntroBleed:R1.IntroBleed,Split:R1.Split,SubmitBuild:h2.SubmitBuild,SubmitBox:h2.SubmitBox,ReviewForm:h2.ReviewForm,Form:h2.Form,AppointmentBooking:h2.AppointmentBooking,BookingBox:h2.BookingBox,CatalogFilterBar:W0.CatalogFilterBar,AlloyWheelsListing:W0.AlloyWheelsListing,ProductGrid:W0.ProductGrid,ProductHero:W0.ProductHero,SpecTable:W0.SpecTable,ProcessSteps:R1.ProcessSteps,DetailRows:W0.DetailRows,FitmentTable:W0.FitmentTable,RelatedProducts:W0.RelatedProducts,BundleOffer:W0.BundleOffer,CompatibleTyres:W0.CompatibleTyres,TyreSizes:W0.TyreSizes,TyreFitment:W0.TyreFitment,EuTyreLabel:W0.EuTyreLabel,FitmentFinder:W0.FitmentFinder,OrderSummary:R1.OrderSummary,DeliveryOptions:W0.DeliveryOptions,PaymentBadges:R1.PaymentBadges,CheckoutCTA:W0.CheckoutCTA,ProductRef:W0.ProductRef,CustomHTML:R1.CustomHTML,Header:W0.Header,Footer:h2.Footer,FooterLogo:h2.FooterLogo,FooterMenu:h2.FooterMenu,FooterDivider:h2.FooterDivider,FooterGroup:h2.FooterGroup,FooterText:h2.FooterText,FooterEmailSignup:h2.FooterEmailSignup,FooterSocial:h2.FooterSocial,LegalLineBlock:h2.LegalLineBlock,SearchBlock:W0.SearchBlock,CartBlock:W0.CartBlock,CountrySwitchBlock:W0.CountrySwitchBlock,[S9]:h2.SiteHeader,[L9]:h2.SiteFooter}},gc1={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial"};for(let[e,t]of Object.entries(gc1)){let a=_h.components;a[e]={...a[t]}}{let e=_h.components.MenuBlock;e.fields={...e.fields,direction:b1("Direction",r0(Qs1,{}),[{label:om.column,value:"column"},{label:om.row,value:"row"}],"column")},e.defaultProps={...e.defaultProps,direction:"column"},e.render=({menu:t,heading:a,accordionMobile:s,showDividers:c,direction:l,puck:r})=>r0(_a,{menu:t,heading:a||void 0,accordionMobile:s,showDividers:c,layout:l==="row"?"row":"column",editing:r?.isEditing})}var vc1=GO(_h),Ph0=vc1.sectionGroupAllow,Bf=_h;export{Kb1 as a,Yb1 as b,Xb1 as c,Jb1 as d,Qb1 as e,Qb as f,DO as g,OO as h,ZU as i,Vh1 as j,Ul1 as k,QB as l,Mo1 as m,IM as n,So1 as o,Lo1 as p,fh1 as q,Io0 as r,Ro0 as s,yD1 as t,Bc1 as u,Zc1 as v,Dc1 as w,Oc1 as x,sl1 as y,cl1 as z,KG1 as A,gr1 as B,ni1 as C,T60 as D,Np as E,FN1 as F,mp as G,Wk as H,wr1 as I,Cr1 as J,kr1 as K,Ar1 as L,Kk as M,rr1 as N,qB as O,Ef as P,ih as Q,Ct as R,r3 as S,LU as T,jB as U,Xr as V,Ba as W,Yq as X,uo1 as Y,Ol1 as Z,xR as _,kc as $,Bf as aa};
|