efficient-storefront-blocks 0.42.1 → 0.44.0

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.
@@ -1 +0,0 @@
1
- import{jsx as we}from"react/jsx-runtime";import{createContext as Zt,useCallback as l,useContext as Jt,useMemo as Qt,useState as Ae}from"react";import{createContext as se,useContext as R}from"react";import{createContext as ht}from"react";var re=ht(null);var gt=se(null),M=se({logo:null,placeholder:!1,wordmark:null});function Sn(){let e=R(re),t=R(gt),n=R(M),a=!e&&n.placeholder,o=e?e.logoUrl:n.logo?.logoUrl??t?.logoUrl??null;return{src:a?null:o,reversedSrc:e?e.logoReversed:n.logo?.logoReversed??t?.logoReversed??null,inkIsDark:e?e.logoInkIsDark:n.logo?.logoInkIsDark??t?.logoInkIsDark??null,wordmark:e?null:n.wordmark,siteName:e?.siteName??t?.siteName}}import{createPreviewSelectionContext as En,useSelectHandler as ie}from"efficient-easel/screen/lib/puck/preview-selection-context";var bn="storefront-theme",Tn="sf:theme-mode",wn="sf:theme-switch",An="hide",v="light";function ft(e){return e>=7&&e<18}function Cn(e){let{mode:t,override:n,switchShown:a,hour:o}=e;return a&&(n==="light"||n==="dark")?n:t==="auto"?ft(o)?"light":"dark":t==="light"?"light":"dark"}var h={background:"#0a0a0a",surface:"#131313",line:"#2a2a2a",muted:"#9a9388"},mt=[{text:"#2e2e2e",accent:"#2e2e2e",background:"#ffffff",surface:"#f7f7f7",line:"#e0e0e0",muted:"#5c5c5c"},{text:"#f7f7f7",accent:"#f7f7f7",background:"#0a0a0a",surface:"#1b1b1b",line:"#363636",muted:"#a3a3a3"},{text:"#ffffff",accent:"#ffffff",background:"#2e2e2e",surface:"#3d3d3d",line:"#545454",muted:"#b0b0b0"},{text:"#0a0a0a",accent:"#0a0a0a",background:"#f7f7f7",surface:"#ffffff",line:"#d9d9d9",muted:"#5c5c5c"}],L={selected:0,themes:mt};function le(e){return!e||!Array.isArray(e.themes)||e.themes.length===0?{...L}:{selected:Math.min(Math.max(0,e.selected??0),e.themes.length-1),themes:e.themes}}function D(e,t,n){let a=C(e),o=C(t);if(a===null||o===null)return e;let i=s=>Math.max(0,Math.min(255,Math.round(s))).toString(16).padStart(2,"0");return`#${a.map((s,u)=>i(s+(o[u]-s)*n)).join("")}`}var St={light:"#ffffff",dark:"#0a0a0a"},Ln=["light","dark"];function kn(e,t){let n=St[t],a=t==="light"?"#ffffff":"#000000";return{text:n,accent:n,background:e,surface:D(e,a,.1),line:D(e,a,.22),muted:D(n,e,.35),brandInk:t}}function k(e){let t=le(e);return t.themes[t.selected]}function ce(e){return{text:e.text,accent:e.accent,background:e.background||h.background,surface:e.surface||h.surface,line:e.line||h.line,muted:e.muted||h.muted}}function C(e){let t=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;let n=t[1].length===3?[...t[1]].map(s=>s+s).join(""):t[1],[a,o,i]=[0,2,4].map(s=>parseInt(n.slice(s,s+2),16));return[a,o,i]}function N(e){let t=C(e);if(t===null)return null;let[n,a,o]=t.map(i=>{let s=i/255;return s<=.04045?s/12.92:((s+.055)/1.055)**2.4});return .2126*n+.7152*a+.0722*o}var pt=.4,_t=4.5,Et=3;function yt(e,t){let n=N(e),a=N(t);if(n===null||a===null)return null;let[o,i]=n>=a?[n,a]:[a,n];return(o+.05)/(i+.05)}var In={good:"Good","large-only":"Large text only",hard:"Hard to read"};function Hn(e){return e>=_t?"good":e>=Et?"large-only":"hard"}var O=["#000000","#ffffff"];function I(e){let t=O[0],n=-1;for(let a of O){let o=yt(e,a);if(o===null)return O[0];o>n&&(n=o,t=a)}return t}var bt=[.25,.4,.55];function xn(e){let t=C(e);return t===null?[]:bt.map(n=>"#"+t.map(a=>Math.round(a*(1-n)).toString(16).padStart(2,"0")).join(""))}function Rn(e){let t=k(e),n={"--theme-fg":t.text},a=N(t.text);return(a===null||a>=pt)&&(n["--overlay-fg"]=t.text),n}var Tt=82;function G(e){return`color-mix(in srgb, ${e} ${Tt}%, #000)`}function Mn(e){let t=k(e);return{"--theme-accent":t.accent,"--theme-accent-2":G(t.accent),"--theme-accent-ink":I(t.accent)}}function ue(e){let t=e?.button;return/^#[0-9a-fA-F]{6}$/.test(t??"")?t.toLowerCase():null}function Dn(e){let t=k(e),n=ue(t),a=de(t);if(n===null&&a===null)return{};let o={};return n!==null&&(o["--theme-btn"]=n,o["--theme-btn-2"]=G(n)),o["--theme-btn-ink"]=a??I(n),o}function de(e){let t=e?.buttonInk;return/^#[0-9a-fA-F]{6}$/.test(t??"")?t.toLowerCase():null}function On(e,t){return de(e)??I(ue(e)??t)}function Pn(e){let t={};return le(e).themes.forEach((n,a)=>{let o=ce(n);t[`--theme-preset-${a}-accent`]=o.accent,t[`--theme-preset-${a}-accent-2`]=G(o.accent),t[`--theme-preset-${a}-accent-ink`]=I(o.accent),t[`--theme-preset-${a}-bg`]=o.background,t[`--theme-preset-${a}-fg`]=o.text,t[`--theme-preset-${a}-surface`]=o.surface,t[`--theme-preset-${a}-surface-2`]=`color-mix(in srgb, ${o.surface} 60%, ${o.line})`,t[`--theme-preset-${a}-line`]=o.line,t[`--theme-preset-${a}-muted`]=o.muted}),t}var Fn=["--theme-bg","--theme-surface","--theme-surface-2","--theme-line","--theme-muted"];function Nn(e){let t=ce(k(e)),n=`color-mix(in srgb, ${t.surface} 60%, ${t.line})`,a={"--theme-bg":t.background,"--theme-surface":t.surface,"--theme-line":t.line,"--theme-muted":t.muted};return(t.surface!==h.surface||t.line!==h.line)&&(a["--theme-surface-2"]=n),a}var wt=["heading","body","label"];function vn(e){if(!e)return null;for(let t of wt)if(e.includes(`--size-${t}`))return t;return/--size-heading(Large|Medium|Small)/.test(e)?"heading":null}var he=["headingLarge","headingMedium","headingSmall","accent","body","label"];var U={headingLarge:null,headingMedium:null,headingSmall:null,accent:null,body:null,label:null},At=8,Ct=200;function Lt(e){if(typeof e!="number"||!Number.isFinite(e))return null;let t=Math.round(e);return t>=At&&t<=Ct?t:null}function kt(e){let t={};for(let n of he)t[n]=Lt(e?.[n]);return t}function Gn(e){let t=kt(e),n={};for(let a of he){let o=t[a];o!==null&&(n[`--size-${a}`]=`${o}px`)}return n}var It=["square","small","large"],Ht="small";function Un(e){return It.includes(e??"")?e:Ht}var ge=0,xt=40,zn={square:0,small:null,large:16},Rt={"--sf-card-radius":1,"--sf-button-radius":.5,"--site-radius":.5,"--site-radius-xs":.25,"--site-radius-sm":.5,"--site-radius-md":.75,"--site-radius-lg":1,"--site-radius-xl":1.25,"--site-radius-2xl":1.5,"--site-radius-3xl":2,"--site-radius-4xl":2.5};function fe(e){if(e==null||typeof e=="string"&&e.trim()==="")return null;let t=typeof e=="string"?Number(e):e;return Number.isFinite(t)?Math.min(xt,Math.max(ge,Math.round(t))):null}function Mt(e){let t=fe(e);return t===null?{}:Object.fromEntries(Object.entries(Rt).map(([n,a])=>{let o=t*a/16;return[n,o===0?"0":`${o}rem`]}))}function $n(e){return Mt(fe(e)??ge)}var Dt=["none","soft","lifted"],Ot="soft",me="none",Pt=["tight","normal","roomy"],Ft="normal",H="normal",Nt=["none","lift","highlight"],vt="lift",Gt="highlight",Se="#141416";function pe(e){return Dt.includes(e??"")?e:Ot}function Ut(e){return Pt.includes(e??"")?e:Ft}function _e(e){return Nt.includes(e??"")?e:vt}function zt(e){return/^#[0-9a-fA-F]{6}$/.test(e??"")?e.toLowerCase():Se}function Bn(e){let t=pe(e);return t===me?void 0:t}function Vn(e){let t=Ut(e);return t===H?void 0:t}function Wn(e){let t=_e(e);return t===Gt?void 0:t}function Yn(e,t,n){let a=zt(t);return a===Se?{}:pe(e)!==me||_e(n)==="lift"?{"--sf-shadow-color":a}:{}}var $t=["normal","tight","compressed"],y="normal";function Ee(e){return $t.includes(e??"")?e:y}function Xn(e){let t=Ee(e);return t===y?void 0:t}function jn(e){switch(Ee(e)){case"tight":return{lineHeight:.95,letterSpacing:-.01};case"compressed":return{lineHeight:.86,letterSpacing:-.01};default:return{}}}var z={case:"authored",weight:null,weightStrong:null,italicStrong:null,maxPx:null,weight2:null,weight3:null,case2:"authored",case3:"authored"},P=100,F=900,Bt=24,Vt=200;function A(e,t,n){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,t),n))}function ye(e){let t=A(e?.weight,P,F),n=e?.case==="sentence"?"sentence":"authored",a=i=>i==null?t:A(i,P,F),o=i=>i==="sentence"?"sentence":i==="authored"?"authored":n;return{case:n,weight:t,weightStrong:A(e?.weightStrong,P,F),italicStrong:typeof e?.italicStrong=="boolean"?e.italicStrong:null,maxPx:A(e?.maxPx,Bt,Vt),weight2:a(e?.weight2),weight3:a(e?.weight3),case2:o(e?.case2),case3:o(e?.case3)}}function qn(e){let t=ye(e),n={};return t.case==="sentence"&&(n["--sf-heading-case"]="none"),t.weight!==null&&(n["--sf-heading-weight"]=String(t.weight)),t.weightStrong!==null&&(n["--sf-heading-weight-strong"]=String(t.weightStrong)),t.maxPx!==null&&(n["--sf-heading-max"]=`${t.maxPx}px`),t.weight2!==null&&t.weight2!==t.weight&&(n["--sf-heading-2-weight"]=String(t.weight2)),t.weight3!==null&&t.weight3!==t.weight&&(n["--sf-heading-3-weight"]=String(t.weight3)),t.case2!==t.case&&(n["--sf-heading-2-case"]=t.case2==="sentence"?"none":"uppercase"),t.case3!==t.case&&(n["--sf-heading-3-case"]=t.case3==="sentence"?"none":"uppercase"),n}function Kn(e){return ye({case:e?.heading_case??void 0,weight:e?.heading_weight,weightStrong:e?.heading_weight_strong,italicStrong:e?.accent_italic,maxPx:e?.heading_max_px,weight2:e?.heading_2_weight??void 0,weight3:e?.heading_3_weight??void 0,case2:e?.heading_2_case??void 0,case3:e?.heading_3_case??void 0})}var be=[{key:"space-grotesk",label:"Space Grotesk",cssVar:"--font-display",category:"sans",italic:!1,italicLoaded:!1},{key:"inter",label:"Inter",cssVar:"--font-body",category:"sans",italic:!0,italicLoaded:!0},{key:"poppins",label:"Poppins",cssVar:"--font-poppins",category:"sans",italic:!0,italicLoaded:!0},{key:"dm-sans",label:"DM Sans",cssVar:"--font-dm-sans",category:"sans",italic:!0,italicLoaded:!0},{key:"sora",label:"Sora",cssVar:"--font-sora",category:"sans",italic:!1,italicLoaded:!1},{key:"oswald",label:"Oswald",cssVar:"--font-oswald",category:"sans",italic:!1,italicLoaded:!1},{key:"archivo",label:"Archivo",cssVar:"--font-archivo",category:"sans",italic:!0,italicLoaded:!0},{key:"outfit",label:"Outfit",cssVar:"--font-outfit",category:"sans",italic:!1,italicLoaded:!1},{key:"manrope",label:"Manrope",cssVar:"--font-manrope",category:"sans",italic:!1,italicLoaded:!1},{key:"big-shoulders",label:"Big Shoulders",cssVar:"--font-big-shoulders",category:"sans",italic:!1,italicLoaded:!1},{key:"michroma",label:"Michroma",cssVar:"--font-michroma",category:"sans",italic:!1,italicLoaded:!1},{key:"fraunces",label:"Fraunces",cssVar:"--font-serif",category:"serif",italic:!0,italicLoaded:!0},{key:"playfair-display",label:"Playfair Display",cssVar:"--font-playfair",category:"serif",italic:!0,italicLoaded:!0},{key:"cormorant",label:"Cormorant",cssVar:"--font-cormorant",category:"serif",italic:!0,italicLoaded:!0},{key:"jetbrains-mono",label:"JetBrains Mono",cssVar:"--font-mono-loaded",category:"mono",italic:!0,italicLoaded:!0}],f=new Map(be.map(e=>[e.key,e]));function Jn(e){return f.get(e)}var Te=["heading","heading2","heading3","body","accent","label"],Qn={heading:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",body:"Body",accent:"Accent",label:"Labels"},Wt=[["font-heading2","heading2"],["font-heading3","heading3"],["font-display","heading"],["font-serif","accent"],["font-mono","label"],["font-body","body"]],Yt=/var\(--size-(headingLarge|headingMedium|headingSmall|accent|body|label)\s*,/,ea={heading:"headingLarge",heading2:"headingMedium",heading3:"headingSmall",accent:"accent",body:"body",label:"label"},Xt={headingLarge:"heading",headingMedium:"heading2",headingSmall:"heading3",accent:"accent",body:"body",label:"label"};function ta(e){let t=e?Yt.exec(e):null;return t?Xt[t[1]]??null:jt(e)}function jt(e){if(!e)return null;let t=e.split(/\s+/).filter(n=>!n.slice(0,n.lastIndexOf(":")+1).includes("&")).map(n=>n.slice(n.lastIndexOf(":")+1));for(let[n,a]of Wt)if(t.includes(n))return a;return null}var d={heading:"space-grotesk",heading2:"space-grotesk",heading3:"space-grotesk",body:"inter",accent:"fraunces",label:"jetbrains-mono"};function qt(e){let t=n=>{let a=e?.[n];if(a&&f.has(a))return a;if(n==="heading2"||n==="heading3"){let o=e?.heading;return o&&f.has(o)?o:d.heading}return d[n]};return Object.fromEntries(Te.map(n=>[n,t(n)]))}function Kt(e,t){return f.get(e[t])??f.get(d[t])}function g(e,t){return`var(${Kt(e,t).cssVar})`}var na=[...new Set(Te.map(e=>f.get(d[e]).cssVar))],aa=[...new Set(be.map(e=>e.cssVar))];function oa(e){let t=qt(e);return{"--font-role-heading":g(t,"heading"),"--font-role-heading2":g(t,"heading2"),"--font-role-heading3":g(t,"heading3"),"--font-role-body":g(t,"body"),"--font-role-accent":g(t,"accent"),"--font-role-label":g(t,"label"),fontFamily:"var(--font-role-body)"}}var Le=Zt({settings:null,setSettings:()=>{},primeSettings:()=>{},websiteName:null,templateChrome:!1,templateName:null,chromePlaceholder:!1,themeMode:v,setThemeMode:()=>{},themeSwitchShown:!1,setThemeSwitchShown:()=>{},theme:L,setTheme:()=>{},fonts:d,setFonts:()=>{},sizes:U,setSizes:()=>{},cornerRadiusPx:null,setCornerRadiusPx:()=>{},cardShadow:null,setCardShadow:()=>{},shadowColor:null,setShadowColor:()=>{},cardGap:H,setCardGap:()=>{},hoverEffect:null,setHoverEffect:()=>{},headingCompression:y,setHeadingCompression:()=>{},siteWidth:null,setSiteWidth:()=>{},siteGutter:null,blockGap:null,setSiteGutter:()=>{},setBlockGap:()=>{},headingTypography:z,setHeadingTypography:()=>{},textStyles:null,setTextStyles:()=>{},heroBackgroundFollowsWidth:null,setHeroBackgroundFollowsWidth:()=>{},photographyGrayscale:null,setPhotographyGrayscale:()=>{},themeFromDocument:!1,selected:!1,setSelected:()=>{},select:()=>{},setSelectHandler:()=>{}});function ha({children:e,websiteName:t=null,templateChrome:n=!1,templateName:a=null,chromePlaceholder:o=!1,themeMode:i=v,onThemeModeChange:s,themeSwitchShown:u=!1,onThemeSwitchShownChange:b,theme:T=L,onThemeChange:m,fonts:S=d,onFontsChange:p,sizes:_=U,onSizesChange:c,cornerRadiusPx:x=null,onCornerRadiusPxChange:w,cardShadow:Ie=null,onCardShadowChange:$,shadowColor:He=null,onShadowColorChange:B,cardGap:xe=H,onCardGapChange:V,hoverEffect:Re=null,onHoverEffectChange:W,headingCompression:Me=y,onHeadingCompressionChange:Y,siteWidth:De=null,onSiteWidthChange:X,siteGutter:Oe=null,blockGap:Pe=null,onSiteGutterChange:j,onBlockGapChange:q,headingTypography:Fe=z,onHeadingTypographyChange:K,textStyles:Ne=null,onTextStylesChange:Z,heroBackgroundFollowsWidth:ve=null,onHeroBackgroundFollowsWidthChange:J,photographyGrayscale:Ge=null,onPhotographyGrayscaleChange:Q,themeFromDocument:Ue=!1}){let[E,ee]=Ae(null),ze=l(r=>ee(dt=>dt??r),[]),[$e,Be]=Ae(!1),Ve=l(r=>s?.(r),[s]),We=l(r=>b?.(r),[b]),Ye=l(r=>m?.(r),[m]),Xe=l(r=>p?.(r),[p]),je=l(r=>c?.(r),[c]),qe=l(r=>X?.(r),[X]),Ke=l(r=>j?.(r),[j]),Ze=l(r=>q?.(r),[q]),Je=l(r=>J?.(r),[J]),Qe=l(r=>Q?.(r),[Q]),et=l(r=>w?.(r),[w]),tt=l(r=>$?.(r),[$]),nt=l(r=>B?.(r),[B]),at=l(r=>V?.(r),[V]),ot=l(r=>W?.(r),[W]),rt=l(r=>Y?.(r),[Y]),st=l(r=>K?.(r),[K]),it=l(r=>Z?.(r),[Z]),{select:lt,setSelectHandler:ct}=ie(),te=E?.logoUrl,ne=E?.logoReversed,ae=E?.logoInkIsDark,oe=E!==null,ut=Qt(()=>({logo:oe?{logoUrl:te,logoReversed:ne,logoInkIsDark:ae}:null,placeholder:n||o,wordmark:n?a:t}),[oe,te,ne,ae,n,o,a,t]);return we(M.Provider,{value:ut,children:we(Le.Provider,{value:{settings:E,setSettings:ee,primeSettings:ze,websiteName:t,templateChrome:n,templateName:a,chromePlaceholder:o,themeMode:i,setThemeMode:Ve,themeSwitchShown:u,setThemeSwitchShown:We,theme:T,setTheme:Ye,fonts:S,setFonts:Xe,sizes:_,setSizes:je,cornerRadiusPx:x,setCornerRadiusPx:et,cardShadow:Ie,setCardShadow:tt,shadowColor:He,setShadowColor:nt,cardGap:xe,setCardGap:at,hoverEffect:Re,setHoverEffect:ot,headingCompression:Me,setHeadingCompression:rt,siteWidth:De,setSiteWidth:qe,siteGutter:Oe,blockGap:Pe,setSiteGutter:Ke,setBlockGap:Ze,headingTypography:Fe,setHeadingTypography:st,textStyles:Ne,setTextStyles:it,heroBackgroundFollowsWidth:ve,setHeroBackgroundFollowsWidth:Je,photographyGrayscale:Ge,setPhotographyGrayscale:Qe,themeFromDocument:Ue,selected:$e,setSelected:Be,select:lt,setSelectHandler:ct},children:e})})}var ga=()=>Jt(Le);import{forwardRef as en}from"react";import{jsx as an}from"react/jsx-runtime";var tn={position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,color:"transparent"},nn=en(function({src:t,width:n,height:a,fill:o,priority:i,loading:s,style:u,quality:b,placeholder:T,blurDataURL:m,unoptimized:S,loader:p,overrideSrc:_,...c},x){let w=_??(typeof t=="string"?t:t.src);return an("img",{ref:x,src:w,width:o?void 0:n,height:o?void 0:a,loading:i?"eager":s??"lazy",fetchPriority:i?"high":void 0,decoding:"async",style:o?{...tn,...u}:{color:"transparent",...u},...c})}),Sa=nn;function pa(e){return{props:{src:e.overrideSrc??(typeof e.src=="string"?e.src:e.src.src),sizes:e.sizes}}}import{forwardRef as on}from"react";import{jsx as ln}from"react/jsx-runtime";function rn(e){if(typeof e=="string")return e;let t=e.query?`?${new URLSearchParams(e.query).toString()}`:"",n=e.hash?e.hash.startsWith("#")?e.hash:`#${e.hash}`:"";return`${e.pathname??""}${t}${n}`}var sn=on(function({href:t,prefetch:n,replace:a,scroll:o,shallow:i,legacyBehavior:s,passHref:u,locale:b,onClick:T,children:m,...S},p){let _=c=>{T?.(c),!(c.defaultPrevented||S.target==="_blank")&&c.preventDefault()};return ln("a",{ref:p,href:rn(t),onClick:_,...S,children:m})}),ba=sn;var cn="Storefront";function Aa(e){return e?.trim()||cn}var ke=["instagram","facebook","tiktok","youtube","x","linkedin","pinterest","whatsapp","telegram","line","wechat"],un={instagram:"Instagram",facebook:"Facebook",tiktok:"TikTok",youtube:"YouTube",x:"X",linkedin:"LinkedIn",pinterest:"Pinterest",whatsapp:"WhatsApp",telegram:"Telegram",line:"LINE",wechat:"WeChat"},dn={};function La(e){if(!e||typeof e!="object")return dn;let t={};for(let n of ke){let a=e[n];if(typeof a!="string")continue;let o=a.trim();!o||!/^https?:\/\//i.test(o)||(t[n]=o)}return t}function ka(e){return ke.flatMap(t=>{let n=e[t];return n?[{platform:t,href:n,label:un[t]}]:[]})}var Ia=e=>`${e}_url`;export{Sa as a,pa as b,ba as c,be as d,Jn as e,Te as f,Qn as g,ea as h,ta as i,jt as j,d as k,qt as l,oa as m,bn as n,Tn as o,wn as p,An as q,v as r,Cn as s,h as t,mt as u,le as v,Ln as w,kn as x,k as y,ce as z,yt as A,In as B,Hn as C,I as D,xn as E,Rn as F,Mn as G,ue as H,Dn as I,de as J,On as K,Pn as L,Fn as M,Nn as N,vn as O,U as P,kt as Q,Gn as R,Un as S,ge as T,xt as U,zn as V,fe as W,Mt as X,$n as Y,Dt as Z,Ot as _,me as $,H as aa,Nt as ba,vt as ca,Gt as da,Se as ea,pe as fa,Ut as ga,_e as ha,zt as ia,Bn as ja,Vn as ka,Wn as la,Yn as ma,y as na,Ee as oa,Xn as pa,jn as qa,z as ra,ye as sa,qn as ta,Kn as ua,re as va,Sn as wa,En as xa,ie as ya,ha as za,ga as Aa,cn as Ba,Aa as Ca,ke as Da,un as Ea,dn as Fa,La as Ga,ka as Ha,Ia};
@@ -1 +0,0 @@
1
- import{f as rt,i as pe,r as ot,t as it,u as at,w as H}from"./chunk-TTHDA2MW.js";import{Ba as me,Ca as et,Fa as Me,Ga as tt}from"./chunk-M72Y46OD.js";import{e as Ze,q as nt,s as re}from"./chunk-ZC4KGN3D.js";import{createContext as tn,useContext as nn,useEffect as rn,useMemo as ge,useState as ut}from"react";function st(e,t){return e.map(n=>({partNumber:n.partNumber,quantity:n.wheels*t}))}function oe(e,t){if(e.length===0)return null;let n=0;for(let r of e){let i=r.prices?.[t];if(typeof i!="number"||!Number.isFinite(i)||i<=0)return null;n+=i*r.wheels}return n}var De=4,mr=1,pr={unit:"set",spares:0,spareSide:"left"};function lt(e){return e.unit==="single"?1:De+e.spares}function fr(e,t){return[{partNumber:e.partNumber,wheels:lt(t),prices:e.prices}]}function gr(e,t){let n=lt(t)-De;if(n<=0||e.length===0)return e;let r=Zt(e),i=r?r[t.spareSide]:0;return e.map((o,a)=>a===i?{...o,wheels:o.wheels+n}:o)}function Zt(e){let t,n;for(let r=0;r<e.length;r+=1){let i=e[r].hand;if(i!=="left"&&i!=="right")continue;if((i==="left"?t:n)!==void 0)return null;i==="left"?t=r:n=r}return t!==void 0&&n!==void 0?{left:t,right:n}:null}function en(e,t){return t.spares>0?`${e} + spare`:e}function hr(e){return e.unit==="single"?"Single":en(`Set of ${De}`,e)}var yr="data-add-to-basket",Oe=9,Fe="en";function fe(e,t,n=0){return new Intl.NumberFormat(Fe,{style:"currency",currency:t,minimumFractionDigits:0,maximumFractionDigits:n}).format(e)}import{jsx as sn}from"react/jsx-runtime";var ct="storefront-country",dt=tn(null);function on(e){return mt(e,"catalogue")}function an(e){return mt(e,"money")}function mt(e,t){let n=new Map(e.map(i=>[i.code,i.decimalPlaces])),r=new Map;return(i,o)=>{if(!o)return"";let a=r.get(o);if(!a){let s=n.get(o)??0;a=new Intl.NumberFormat(Fe,{style:"currency",currency:o,minimumFractionDigits:t==="money"?s:0,maximumFractionDigits:s}),r.set(o,a)}return a.format(i)}}function vr({children:e,currencies:t,countries:n,defaultCurrency:r,defaultCountry:i}){let o=ge(()=>t??[],[t]),a=ge(()=>n??[],[n]),s=ge(()=>r||o.find(x=>x.isDefault)?.code||o[0]?.code||"",[r,o]),u=ge(()=>i||a.find(x=>x.isDefault)?.code||a[0]?.code||"",[i,a]),[l,m]=ut(u),[d,E]=ut(!1);rn(()=>{let x=re.getItem(ct);x&&a.some(L=>L.code===x)&&m(x),E(!0)},[a]);function P(x){m(x),re.setItem(ct,x)}let b=ge(()=>{let x=a.find(I=>I.code===l)??null,L=x?.currency,T=L&&o.some(I=>I.code===L)?L:s,M=on(o),C=an(o);return{country:l,currency:T,setCountry:P,currencies:o,countries:a,activeCountry:x,formatPrice:(I,S)=>M(I,S??T),formatMoney:(I,S)=>C(I,S??T),ready:d}},[l,o,a,s,d]);return sn(dt.Provider,{value:b,children:e})}function pt(){let e=nn(dt);if(!e)throw new Error("useCurrency must be used within a CurrencyProvider");return e}import{createContext as Sn,useCallback as k,useContext as vn,useEffect as Y,useMemo as wt,useRef as ie,useState as R}from"react";function gt(e,t){return e.valid?!1:e.reason==="firstOrderOnly"?!0:e.reason==="notEligible"&&!t}var ht="We'll confirm this discount when you place your order.",Lr="Confirmed at checkout";function Ir(e){return e&&(e.valid||e.deferred)?e.code:void 0}var ft="coupon_code: ";function Nr(e){return!(e instanceof pe)||e.status!==400||!e.message.startsWith(ft)?null:e.message.slice(ft.length)}function yt(e,t){return e.map(n=>({qty:n.qty,slug:n.slug,name:`${n.name.lead}${n.name.accent}`.trim(),finish:n.finishName,size:n.size,kind:n.kind,sku:n.sku,pack:n.pack,priceLabel:t(n)}))}var we="Price on request",un="Request a quote";function Ue(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function $e(e,t){let n=e?.[t];return Ue(n)?n:null}function Rr(e,t,n,r){let i=$e(e,n),o=$e(t,n);return i===null&&o===null?0:i===null?1:o===null?-1:r==="asc"?i-o:o-i}function Ar(e,t,n,r){if(n==null&&r==null)return!0;let i=$e(e,t);return!(i===null||n!=null&&i<n||r!=null&&i>r)}var cn={priced:!1,unit:null,was:null,onSale:!1,setTotal:null};function dn(e,t,n){if(!Ue(e))return cn;let r=Ue(t)&&t>e?t:null;return{priced:!0,unit:e,was:r,onSale:r!==null,setTotal:n!=null?e*n:null}}function Mr(e,t,n=""){return!e.priced||e.unit==null?we:`${n}${fe(e.unit,t)}`}function Dr(e,t){return e.was==null?null:fe(e.was,t)}function mn(e,t,n=1){let r=oe(e,t);if(r===null)return{priced:!1,unit:null,isFrom:!1,setTotal:null};let i=e.reduce((a,s)=>a+s.wheels,0),o=Math.min(...e.map(a=>a.prices[t]));return{priced:!0,unit:o,isFrom:o*i!==r,setTotal:r*n}}var pn={priced:!1,unit:null,isFrom:!1,was:null,onSale:!1,setTotal:null};function Or(e,t,n,r=1){let i=dn(e.prices[n],e.msrpPrices?.[n],4),o=i.setTotal==null?null:i.setTotal*r;if(!t)return{priced:i.priced,unit:i.unit,isFrom:!0,was:i.was,onSale:i.onSale,setTotal:null,fromSetTotal:o};let a=mn(t.components,n,r);return a.priced?{priced:!0,unit:a.unit,isFrom:a.isFrom,was:null,onSale:!1,setTotal:a.setTotal,fromSetTotal:o}:{...pn,fromSetTotal:o}}function fn(e,t){return!e.priced||e.unit==null?we:`${e.isFrom?"from ":""}${fe(e.unit,t)}`}function Fr(e,t){return e.was==null?null:fe(e.was,t)}function Ur(e,t){return!e.priced||e.unit==null?un:fn(e,t)}var gn=/^[^@\s]+@[^@\s]+\.[^@\s]+$/;function bt(e){return gn.test(e.trim())}var xt="sf:ga-purchases",hn=20;function St(){return typeof window>"u"||window.parent!==window}function he(...e){try{if(St()||typeof window.gtag!="function")return;window.gtag(...e)}catch{}}function yn(e,t){let n=e.config.find(r=>r.gold)?.label;return{item_id:`${e.slug}|${e.finishName}|${e.size}`,item_name:`${e.name.lead}${e.name.accent}`.trim(),...n?{item_variant:n}:{},price:oe(e.components,t)??0,quantity:e.qty}}function He(e,t){return e.filter(Pe).map(n=>yn(n,t))}function Br(e){he("event","view_item",{currency:e.currency,value:e.pricePerSet,items:[{item_id:e.itemId,item_name:e.itemName,...e.variant?{item_variant:e.variant}:{},price:e.pricePerSet,quantity:1}]})}function vt(e,t){let n=He([e],t);n.length!==0&&he("event","add_to_cart",{currency:t,value:n[0].price*n[0].quantity,items:n})}function Gr(e){let t=He(e.lines,e.currency);t.length!==0&&he("event","begin_checkout",{currency:e.currency,value:e.value,...e.coupon?{coupon:e.coupon}:{},items:t})}var Ct=new Set;function bn(e){if(Ct.has(e))return!1;Ct.add(e);try{let t=JSON.parse(re.getItem(xt)??"[]");if(t.includes(e))return!1;re.setItem(xt,JSON.stringify([...t,e].slice(-hn)))}catch{}return!0}function zr(e){let t=e.confirmation;if(St()||!bn(t.orderNumber))return;let n=t.currency,r=Number(t.grandTotal);he("event","purchase",{transaction_id:t.orderNumber,currency:n,value:r,shipping:Number(t.freightCharge),...t.couponCode?{coupon:t.couponCode}:{},items:He(e.lines,n)}),e.adsSendTo&&he("event","conversion",{send_to:e.adsSendTo,transaction_id:t.orderNumber,currency:n,value:r})}var xn="Arranged after review",Cn="Calculated at checkout";function Et({quoted:e,optionCount:t,chosenAmount:n,couponWaivesFreight:r}){return e&&t===0?"arranged":r?"free":n===void 0?"pending":n===0?"free":"charged"}function Xr(e){switch(e){case"arranged":return xn;case"pending":return Cn;case"free":return"Free";case"charged":return null}}import{jsx as Ln}from"react/jsx-runtime";var En=400,wn=400,Pn=1500;function Pe(e){return(e.components?.length??0)>0}function Pt(e,t){return{code:e,valid:t.valid,deferred:gt(t,t.askedAsShopper),message:t.message||void 0,effects:t.effects??void 0}}function It(e,t){return oe(e.components,t)}function qe(e,t){let n=It(e,t);return n===null?null:n*e.qty}function Lt(e){return e!=="tyre"}var Nt=Sn(null);function ao({children:e,preview:t=!1}){let{currency:n,country:r,formatMoney:i}=pt(),[o,a]=R(t),[s,u]=R([]),[l,m]=R([]),[d,E]=R([]),[P,b]=R(!1),[x,L]=R(!1),[T,M]=R(!1),[C,I]=R(!1),[S,q]=R(null),[W,j]=R(void 0),y=ie(r),v=ie("");y.current=y.current||r;let[p,K]=R(null),[Q,z]=R(!1),[A,J]=R(null),Z=ie(void 0),D=k(()=>a(!0),[]),Ce=k(()=>a(!1),[]),O=k(()=>a(c=>!c),[]);Y(()=>{t||typeof window>"u"||new URLSearchParams(window.location.search).get("cart")==="open"&&D()},[D,t]);let Se=k(c=>{I(!0),Lt(c)&&M(!0)},[]),ee=T||s.some(c=>Lt(c.kind)),se=C||s.length>0;Y(()=>{if(t||!ee||P)return;let c=!0;return H.listWheels().then(f=>{c&&(m(f),b(!0))}),()=>{c=!1}},[t,ee,P]),Y(()=>{if(t||!se||x)return;let c=!0;return H.listBundles().then(f=>{c&&(E(f),L(!0))}),()=>{c=!1}},[t,se,x]);let F=S?.deliveryOptions??[];Y(()=>{F.length!==0&&J(c=>c&&F.some(f=>f.id===c)?c:F[0]?.id??null)},[S]);let V=k(()=>s.filter(Pe).flatMap(c=>st(c.components,c.qty)),[s]),le=k(async(c,f)=>{let h=c.trim().toUpperCase();if(!h)return;let g=V();if(g.length===0){K({code:h,valid:!1,message:"Add a wheel to the cart first."});return}z(!0),Z.current=f;try{let N=await H.validateCoupon({code:h,items:g,currency:n,shippingMethodId:A??void 0,customerEmail:f});K(Pt(h,N))}catch{K({code:h,valid:!1,message:"Could not check that code. Please try again."})}finally{z(!1)}},[V,n,A]),te=k(()=>{K(null),Z.current=void 0},[]),ve=k(c=>{if(!p)return;let{code:f}=p;K(h=>h&&h.code===f?{code:f,valid:!1,refused:!0,message:c}:h)},[p]);Y(()=>{if(!p||p.refused)return;let c=p.code,f=g=>g!==null&&g.code===c&&!g.refused,h=setTimeout(async()=>{let g=V();if(g.length===0){K(N=>f(N)?{code:c,valid:!1,message:"Add a wheel to the cart first."}:N);return}z(!0);try{let N=await H.validateCoupon({code:c,items:g,currency:n,shippingMethodId:A??void 0,customerEmail:Z.current});K(de=>f(de)?Pt(c,N):de)}catch{}finally{z(!1)}},En);return()=>clearTimeout(h)},[s,n,A]);let ue=p&&!p.refused?p.code:void 0;Y(()=>{if(t)return;let c=!0,f=setTimeout(async()=>{let h=V();if(h.length===0){q(null),j(void 0);return}try{let g=await H.quoteCart({items:h,currency:n,shippingMethodId:A??void 0,couponCode:ue,customerEmail:Z.current||void 0,country:y.current||void 0,subdivision:v.current||void 0});if(!c)return;q(g)}catch{if(!c)return}j(ue)},wn);return()=>{c=!1,clearTimeout(f)}},[s,n,A,ue,r]);let w=k(c=>{u(f=>{let h=f.findIndex(g=>g.id===c.id);return h===-1?[...f,c]:f.map((g,N)=>N===h?{...g,qty:Math.min(Oe,g.qty+c.qty)}:g)}),vt(c,n)},[n]),U=k(c=>{u(f=>f.filter(h=>h.id!==c))},[]),X=k((c,f)=>{let h=Math.max(1,Math.min(Oe,f));u(g=>g.map(N=>N.id===c?{...N,qty:h}:N))},[]),ze=k(c=>{u(c)},[]),[ce,zt]=R(null),Ve=ie(null);Ve.current=ce;let $=ie(null),ke=ie(""),Xe=k((c,f)=>{let h=c.trim().toLowerCase();bt(h)&&zt(g=>g&&g.email===h&&g.firstName===(f??"")?g:{email:h,firstName:f??""})},[]);Y(()=>{if(t||!ce)return;let c=yt(s.filter(Pe),g=>qe(g,n)===null?we:i(qe(g,n),n)),f={email:ce.email,firstName:ce.firstName,currency:n,items:c},h=JSON.stringify(f);if(h!==ke.current)return $.current&&clearTimeout($.current),$.current=setTimeout(()=>{$.current=null,ke.current=h,H.captureCart(f).catch(g=>{})},Pn),()=>{$.current&&(clearTimeout($.current),$.current=null)}},[s,ce,n,t]);let Ye=k(()=>{$.current&&(clearTimeout($.current),$.current=null);let c=Ve.current;c&&(ke.current="",H.captureCart({email:c.email,firstName:c.firstName,currency:n,items:[]}).catch(f=>{}))},[n]),je=wt(()=>{let c=s.reduce((_,ne)=>{let Ee=qe(ne,n);return Ee===null?_:_+Ee},0),f=s.some(_=>It(_,n)===null),h=s.reduce((_,ne)=>_+ne.qty,0),g=p?.valid?p.effects:void 0,N=g?Math.min(c,Number(g.discountAmount)):0,de=S?.bundleDiscount??0,Xt=S?.appliedBundles??[],Re=!!g?.freeShipping,Qe=F.find(_=>_.id===A),Je=Re?0:S?.shipping??Qe?.amount??0,Yt=Et({quoted:S!==null,optionCount:F.length,chosenAmount:Qe?.amount,couponWaivesFreight:Re}),Ae={};for(let _ of g?.freeUnits??[])Ae[_.partNumber]=(Ae[_.partNumber]??0)+_.quantity;let jt=S?.tax??null,Qt=S?S.grandTotal:c-N-de+Je;return{sets:h,units:s.reduce((_,ne)=>_+(ne.components??[]).reduce((Ee,Jt)=>Ee+Jt.wheels*ne.qty,0),0),subtotal:c,hasUnpricedLine:f,discount:N,bundleDiscount:de,appliedBundles:Xt,shipping:Je,freeShipping:Re,shippingStatus:Yt,freeUnitsByPartNumber:Ae,tax:jt,grand:Qt,repricing:!!p?.refused&&S!==null&&W===p?.code,currency:n}},[s,n,p,F,A,S,W]),Vt=wt(()=>({isOpen:o,preview:t,open:D,close:Ce,toggle:O,items:s,catalog:l,bundles:d,warmCatalog:Se,add:w,remove:U,setQty:X,replaceItems:ze,identify:Xe,clearCapturedCart:Ye,coupon:p,applyCoupon:le,removeCoupon:te,refuseCoupon:ve,couponBusy:Q,deliveryOptions:F,shippingMethodId:A,setShippingMethodId:J,totals:je}),[o,t,D,Ce,O,s,l,d,Se,w,U,X,ze,Xe,Ye,p,le,te,ve,Q,F,A,je]);return Ln(Nt.Provider,{value:Vt,children:e})}function Tt(){let e=vn(Nt);if(!e)throw new Error("useCart() must be called inside <CartProvider>. Mount the provider in app/layout.tsx.");return e}import{cache as Fn}from"react";function _t(e,t,n,r){for(;e.size>=t;){let i,o;for(let[s,u]of e){if(u.expiresAt<=r){i=s;break}o===void 0&&n(s)&&(o=s)}let a=i??o??e.keys().next().value;if(a===void 0)return;e.delete(a)}}var In=6e4,Nn=5e3,Tn=500,Le=new Map;async function _n(e){let{host:t,matchesRequestHost:n}=await ot();if(!t)return"";let r=await it();return r?`${e}|slug:${encodeURIComponent(t)}/${encodeURIComponent(r)}`:n?`${e}|host:${t}`:`${e}|xhost:${t}`}var kn=e=>e.includes("|slug:")||e.includes("|xhost:");async function kt(e,t){if(await at()!==null)return t();let n=await _n(e);if(!n)return t();let r=Date.now(),i=Le.get(n);if(i&&i.expiresAt>r)return i.load;let o=await t(),a=o.outcome.state==="failed",s=a?Nn:In,u=Le.get(n)?.lastGood,l=o.outcome.state==="ok"?o:a?u:void 0,m=a&&l?l:o;return _t(Le,Tn,kn,r),Le.set(n,{load:m,expiresAt:r+s,lastGood:l}),m}var Rn=404;function An(e){if(e instanceof pe&&e.status===Rn)return{state:"absent"};let t=e instanceof pe?e.status:-1,n=e instanceof Error?e.message:String(e);return{state:"failed",status:t,detail:n}}var Mn="[storefront:chrome-load-failed]";function Dn(e,t){console.error(`${Mn} ${e} status=${t.status} \u2014 serving fallback chrome`,t.detail)}async function Rt(e,t,n,r){try{let i=await t();return r?.(i)?{value:i,outcome:{state:"absent"}}:{value:i,outcome:{state:"ok"}}}catch(i){let o=An(i);return o.state==="failed"&&Dn(e,o),{value:n,outcome:o}}}function On(e){return e==="production"?"silent":"banner"}var go=On("production");function Un(e,t){return e?.trim()||t}function Eo({legalName:e,foundedYear:t,siteName:n},r=new Date().getFullYear()){let i=Un(e,n);return`\xA9 ${t&&t<r?`${t}\u2013${r}`:`${r}`} ${i}`}var $n={name:me,legalName:null,foundedYear:null,faviconUrl:null,currencies:[],defaultCurrency:null,countries:[],defaultCountry:null,commerceEnabled:!0,cardPayments:!1,paymentMethods:[],paypalClientId:null,paypalEnvironment:null,squareApplicationId:null,squareLocationId:null,squareEnvironment:null,ga4MeasurementId:null,googleAdsId:null,googleAdsConversionLabel:null,metaPixelId:null,mapsApiKey:null,mapsMapId:null,socialLinks:Me},wo=Fn(async()=>kt("site",()=>Rt("site",async()=>{let e=await H.getSite();return{name:et(e.name),legalName:e.legalName?.trim()||null,foundedYear:e.foundedYear??null,faviconUrl:e.faviconUrl??null,currencies:e.currencies??[],defaultCurrency:e.defaultCurrency??null,countries:e.countries??[],defaultCountry:e.defaultCountry??null,commerceEnabled:e.commerceEnabled??!0,cardPayments:e.cardPayments??!1,paymentMethods:e.paymentMethods??(e.cardPayments?["card"]:[]),paypalClientId:e.paypalClientId??null,paypalEnvironment:e.paypalEnvironment??null,squareApplicationId:e.squareApplicationId??null,squareLocationId:e.squareLocationId??null,squareEnvironment:e.squareEnvironment??null,ga4MeasurementId:e.ga4MeasurementId??null,googleAdsId:e.googleAdsId??null,googleAdsConversionLabel:(e.googleAdsId?e.googleAdsConversionLabel:null)??null,metaPixelId:e.metaPixelId??null,mapsApiKey:e.mapsApiKey??null,mapsMapId:e.mapsMapId??null,socialLinks:tt(e.socialLinks)}},$n)));var Po={name:me,legalName:null,foundedYear:null,faviconUrl:null,currencies:[{code:"USD",symbol:"$",decimalPlaces:2,isDefault:!0}],defaultCurrency:"USD",countries:[{code:"US",name:"United States",currency:"USD",url:"",isDefault:!0,chargeTax:!1,taxDisplay:"none",taxName:"",taxRate:null,postalLabel:"Zip Code"}],defaultCountry:"US",commerceEnabled:!0,cardPayments:!0,paymentMethods:["card"],paypalClientId:null,paypalEnvironment:null,squareApplicationId:null,squareLocationId:null,squareEnvironment:null,ga4MeasurementId:null,googleAdsId:null,googleAdsConversionLabel:null,metaPixelId:null,mapsApiKey:null,mapsMapId:null,socialLinks:Me};import{jsx as Mt,jsxs as Dt}from"react/jsx-runtime";import{useEffect as Ie,useRef as Ot,useState as Ne}from"react";var ye=new Map,Hn=64;async function qn(e){if(!Ze())return null;try{let t=await fetch(`${nt()}/logo-analysis.json?url=${encodeURIComponent(e)}`);if(!t.ok)return null;let n=await t.json();if(!n||typeof n!="object")return null;let{reversed:r,inkIsDark:i}=n;return typeof r!="string"?null:{reversed:r,inkIsDark:typeof i=="boolean"?i:null}}catch{return null}}function At(e){let t=ye.get(e);if(t)return t;let n=qn(e);if(ye.set(e,n),ye.size>Hn){let r=ye.keys().next();r.done||ye.delete(r.value)}return n}var Kn={small:54,medium:66,large:84},Wn=44,Bn=202/22,Do=16,Oo=140,Gn=.88,Fo=16,zn="invert(1)";function Uo({variant:e="header",scrolled:t=!0,src:n,reverse:r=!1,onLightSurface:i,reversedSrc:o,inkIsDark:a,size:s="medium",sizePx:u,wordmark:l,siteName:m=me,fitToContainer:d=!1,fitWordmarkToContainer:E=!1,fitFloorPx:P}){let b=l&&l.trim()?l.trim():m,[x,L]=Ne(!1),T=Ot(null),M=w=>{T.current=w};Ie(()=>{let w=T.current?.ownerDocument??document,U=()=>{L(w.documentElement.getAttribute("data-theme")==="light")};U();let X=new MutationObserver(U);return X.observe(w.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>X.disconnect()},[]);let C=n&&n.trim()?n.trim():null,I=!!C&&rt(C),S=i??(x&&t),q=r&&I&&C&&o!=null?{reversed:o,inkIsDark:a??null}:null,W=q!==null,[j,y]=Ne(null);Ie(()=>{if(!r||!C||!I||W){y(null);return}let w=!1;return y(null),At(C).then(U=>{w||y(U)}),()=>{w=!0}},[r,C,I,W]);let v=q??j,p=!!v&&v.inkIsDark!==null&&(S?!v.inkIsDark:v.inkIsDark),K=r&&!!C&&!I&&!S,Q=p&&v?v.reversed:C,z=Q?[Q]:[],[A,J]=Ne(0);Ie(()=>{J(0)},[C,p]);let Z=e==="footer"?Wn:Kn[s],D=u&&u>0?u:Z,Ce=Math.round(D*Bn),O=A<z.length?z[A]:null,[Se,ee]=Ne(Q),se=O!==null&&O===Se,F=Ot(null);Ie(()=>{let w=F.current;if(!w||!w.complete)return;if(w.naturalWidth>0||w.naturalHeight>0){ee(O);return}let U=!1;return w.decode().then(()=>!U&&ee(O),()=>!U&&J(X=>X+1)),()=>{U=!0}},[O]);let V=d||E,le=`calc(100cqi / ${((b.length+1)*Gn).toFixed(2)})`,te=V&&P&&P>0?Math.min(P,D):null,ve=V?te===null?`min(${D}px, ${le})`:`clamp(${te}px, ${le}, ${D}px)`:`${D}px`,ue=Dt("span",{className:`font-display font-bold tracking-[0.18em] ${te===null?"whitespace-nowrap":"whitespace-normal"}`,style:{fontSize:ve,lineHeight:1},"aria-label":b,children:[b,Mt("span",{className:"text-accent",children:"."})]});return Dt("span",{ref:M,className:"inline-flex items-center",children:[!se&&ue,O&&Mt("img",{ref:F,src:O,alt:b,width:Ce,height:D,className:"shrink-0 object-contain",style:{...se?{height:`${D}px`,width:"auto",...d?{maxWidth:"100cqi"}:{}}:{display:"none"},...K?{filter:zn}:{}},onLoad:()=>ee(O),onError:()=>J(w=>w+1)},O)]})}import{Children as Xn,isValidElement as Yn,useEffect as $t,useId as jn,useLayoutEffect as qt,useRef as B,useState as Ht}from"react";var Te=(e,t)=>!!e[t]&&!e[t].disabled;function Ke(e,t,n){let r=e.length;for(let i=1;i<=r;i++){let o=((t+n*i)%r+r)%r;if(Te(e,o))return o}return t}function We(e,t){return Ke(e,t===1?-1:e.length,t)}function Be(e,t){return Te(e,t)?t:Math.max(We(e,1),0)}function Ft(e,t,n){let{open:r,focus:i}=e,o=a=>({...e,...a});if(t.length===1&&/\S/.test(t)){let a=e.typed+t.toLowerCase(),s=n.findIndex((u,l)=>Te(n,l)&&u.label.toLowerCase().startsWith(a));return{state:o({open:!0,typed:a,focus:s>=0?s:i}),handled:!0}}if(!r)return t==="ArrowDown"||t==="ArrowUp"||t==="Enter"||t===" "?{state:o({open:!0,typed:""}),handled:!0}:{state:e,handled:!1};switch(t){case"ArrowDown":return{state:o({focus:Ke(n,i,1)}),handled:!0};case"ArrowUp":return{state:o({focus:Ke(n,i,-1)}),handled:!0};case"Home":return{state:o({focus:We(n,1)}),handled:!0};case"End":return{state:o({focus:We(n,-1)}),handled:!0};case"Enter":case" ":return Te(n,i)?{state:o({open:!1,typed:""}),commit:i,refocus:!0,handled:!0}:{state:e,handled:!0};case"Escape":return{state:o({open:!1,typed:""}),refocus:!0,handled:!0};case"Tab":return{state:o({open:!1,typed:""}),handled:!1};default:return{state:e,handled:!1}}}function Ut({anchor:e,list:t,view:n,gap:r=8}){let i=n.height-e.bottom-r-8,o=e.top-r-8,a=!1,s;if(t.height>i){a=o>i;let m=Math.max(0,a?o:i);t.height>m&&(s=m)}let u=0,l=t.left+t.width;return t.width>n.width-16||t.left<8?u=8-t.left:l>n.width-8&&(u=n.width-8-l),{up:a,maxHeight:s,shiftX:u}}import{Fragment as nr,jsx as G,jsxs as Kt}from"react/jsx-runtime";function Qn({items:e,value:t,onPick:n,open:r,onOpen:i,onClose:o}){let[a,s]=Ht(!1),u=r!==void 0,l=u?r:a,[m,d]=Ht(0),E=B({text:"",timer:0}),P=B(null),b=B(null),x=B(null),L=jn(),T=B(null),M=e.findIndex(y=>y.value===t),C=y=>{y!==l&&(u||s(y),y?i?.():o?.())},I=y=>{let v=e[y];!v||v.disabled||(n(v.value),C(!1),b.current?.focus())},S=y=>{let v={open:l,focus:l?m:Be(e,M),typed:E.current.text},p=Ft(v,y,e);return!p.handled&&p.state.open===l?!1:(p.state.typed!==v.typed&&(E.current.text=p.state.typed,window.clearTimeout(E.current.timer),E.current.timer=window.setTimeout(()=>{E.current.text=""},500)),d(p.state.focus),p.commit!==void 0?I(p.commit):C(p.state.open),p.refocus&&b.current?.focus(),p.handled)},q=B(S);q.current=S;let W=B(()=>C(!1));W.current=()=>C(!1);let j=y=>{l||(T.current=y.nativeEvent,q.current(y.key)&&y.preventDefault())};return $t(()=>{if(!l)return;let y=p=>{P.current?.contains(p.target)||W.current()},v=p=>{p!==T.current&&q.current(p.key)&&p.preventDefault()};return document.addEventListener("mousedown",y),document.addEventListener("keydown",v),()=>{document.removeEventListener("mousedown",y),document.removeEventListener("keydown",v)}},[l]),$t(()=>{l&&(E.current.text||d(Be(e,M)))},[l]),qt(()=>{if(!l||!x.current)return;x.current.children.item(m)?.scrollIntoView({block:"nearest"})},[m,l]),{open:l,toggle:()=>C(!l),close:()=>C(!1),focusIdx:m,setFocusIdx:d,pick:y=>I(e.findIndex(v=>v.value===y)),wrapRef:P,triggerRef:b,listRef:x,listId:L,onTriggerKeyDown:j,activeId:l?`${L}-${m}`:void 0}}var Jn={select:{list:"absolute left-0 top-full z-50 mt-1 max-h-[280px] w-max min-w-full overflow-y-auto border-2 border-accent bg-bg shadow-xl",item:(e,t,n)=>["px-3 py-2.5 font-mono text-[13px] font-semibold uppercase tracking-[0.1em] transition-colors whitespace-nowrap",n?"cursor-not-allowed opacity-40":"cursor-pointer",e&&!n?"bg-accent text-bg":"bg-bg text-fg"].join(" ")},cell:{list:"absolute left-0 top-full z-50 mt-1 max-h-[320px] w-max min-w-full overflow-y-auto border-2 border-accent bg-bg shadow-xl",item:e=>["cursor-pointer whitespace-nowrap px-6 py-3 font-mono text-[length:var(--size-label,13px)] font-semibold uppercase tracking-[0.1em] transition-colors",e?"bg-accent text-bg":"bg-bg text-fg"].join(" "),pickerMarker:!0},hairline:{list:"absolute left-0 top-full z-50 max-h-[320px] w-full overflow-y-auto border border-line bg-bg shadow-[0_6px_20px_rgba(0,0,0,0.10)]",item:(e,t)=>["flex cursor-pointer items-center justify-between gap-4 border-b border-line px-4 py-3 text-left text-[length:var(--size-body,14px)] transition-colors last:border-b-0",t?"border-fg font-medium text-fg":e?"border-fg text-fg":"text-fg-dim"].join(" "),pickerMarker:!0},region:{list:"absolute right-0 top-full z-[200] mt-2 flex min-w-[240px] flex-col border border-line bg-surface text-fg",item:(e,t,n,r)=>["flex w-full cursor-pointer items-center gap-3 px-3.5 py-3 text-left transition-colors","font-mono text-[13px] uppercase tracking-[0.18em]",e?"bg-surface-2 text-fg":"",r?"":"border-b border-line",t?"text-accent":""].join(" "),itemStyle:e=>e?void 0:{color:"color-mix(in oklab, currentColor 80%, transparent)"}}};function Zn(e,t){qt(()=>{let n=e.current,r=n?.ownerDocument.defaultView;if(!n||!r)return;let i=()=>{let o=n.style;o.top=o.bottom=o.marginTop=o.marginBottom=o.maxHeight=o.overflowY=o.translate="";let a=n.offsetParent??n.parentElement;if(!a)return;let s=a.getBoundingClientRect(),u=n.getBoundingClientRect(),l=Math.max(0,u.top-s.bottom),m=Ut({anchor:s,list:{top:u.top,left:u.left,width:u.width,height:u.height},view:{width:r.innerWidth,height:r.innerHeight},gap:l});m.up&&(o.top="auto",o.bottom="100%",o.marginTop="0px",o.marginBottom=`${l}px`),m.maxHeight!==void 0&&(o.maxHeight=`${m.maxHeight}px`,o.overflowY="auto"),m.shiftX&&(o.translate=`${m.shiftX}px`)};return i(),r.addEventListener("resize",i),r.addEventListener("scroll",i,!0),()=>{r.removeEventListener("resize",i),r.removeEventListener("scroll",i,!0)}},[e,t])}function er({id:e,tone:t,items:n,value:r,focusIdx:i,onFocus:o,onPick:a,listRef:s,ariaLabel:u}){let l=Jn[t],m=B(null);return Zn(m,n.length),G("ul",{ref:d=>{m.current=d,s&&(s.current=d)},id:e,role:"listbox","aria-label":u,...l.pickerMarker?{"data-picker-menu":""}:{},className:l.list,children:n.map((d,E)=>{let P=d.value===r;return G("li",{id:`${e}-${E}`,role:"option","aria-selected":P,"aria-disabled":d.disabled||void 0,onMouseEnter:()=>!d.disabled&&o(E),onMouseDown:b=>{b.preventDefault(),d.disabled||a(d.value)},className:l.item(E===i,P&&d.value!=="",!!d.disabled,E===n.length-1),style:l.itemStyle?.(P),children:d.meta===void 0?d.label:Kt(nr,{children:[G("span",{className:"flex-1 whitespace-nowrap",children:d.label}),G("span",{className:"ml-auto text-[12px] opacity-50",children:d.meta})]})},`${d.value}_${E}`)})})}function tr({value:e,onChange:t,disabled:n,children:r,className:i,style:o,name:a,id:s,"aria-label":u}){let l=Xn.toArray(r).flatMap(b=>{if(!Yn(b))return[];if(b.type!=="option")return[];let L=b.props,T=L.value!==void 0?String(L.value):"",M=L.children,C=typeof M=="string"||typeof M=="number"?String(M):T;return[{value:T,label:C,disabled:!!L.disabled}]}),m=e??"",d=Qn({items:l,value:m,onPick:b=>t?.({target:{value:b}})}),P=l.find(b=>b.value===m)?.label??l[0]?.label??"";return Kt("div",{ref:d.wrapRef,className:"relative",children:[a&&G("input",{type:"hidden",name:a,value:m}),G("button",{ref:b=>{d.triggerRef.current=b},type:"button",disabled:n,"aria-haspopup":"listbox","aria-expanded":d.open,"aria-controls":d.open?d.listId:void 0,"aria-activedescendant":d.activeId,"aria-label":u,id:s,onClick:()=>!n&&d.toggle(),onKeyDown:b=>!n&&d.onTriggerKeyDown(b),className:`block w-full ${i??""}`,style:o,children:G("span",{className:"block w-full truncate text-left",children:P})}),d.open&&G(er,{id:d.listId,tone:"select",items:l,value:m,focusIdx:d.focusIdx,onFocus:d.setFocusIdx,onPick:d.pick,listRef:d.listRef})]})}var Yo="#c9a461",Wt=[{f:"black",label:"Black",hex:"#171717"},{f:"silver",label:"Silver",hex:"#cccccc"},{f:"bronze",label:"Bronze",hex:"#8a6438"},{f:"graphite",label:"Graphite",hex:"#3a3c3f"},{f:"red",label:"Candy Red",hex:"#7a0f14"}],jo={name:"",color:"var(--fg)",family:"silver",src:""};function rr(e,t){let n=r=>{let i=Wt.findIndex(o=>o.f===r);return i===-1?Wt.length:i};return n(e)-n(t)||e.localeCompare(t)}function Qo(e){let t=new Set;for(let n of e)for(let r of n.finishes??[])r?.family&&t.add(r.family);return[...t].sort(rr)}import{jsx as be,jsxs as _e}from"react/jsx-runtime";var or="font-mono text-[length:var(--size-label,12px)]",ir="font-semibold uppercase tracking-[0.22em] text-fg";function Bt(e){return`${e??or} ${ir}`}function Gt(){return be("span",{className:"text-accent",children:" *"})}function ar({children:e,required:t,labelFace:n}){return _e("span",{className:Bt(n),children:[e,t?be(Gt,{}):null]})}function sr({label:e,required:t,hint:n,separate:r,htmlFor:i,labelFace:o,className:a,children:s}){let u=a?`flex flex-col gap-2 ${a}`:"flex flex-col gap-2",l=n?be("span",{className:"font-mono text-[11px] uppercase tracking-[0.22em] text-fg-dim",children:n}):null;return r||n?_e("div",{className:u,children:[_e("label",{htmlFor:i,className:Bt(o),children:[e,t?be(Gt,{}):null]}),s,l]}):_e("label",{htmlFor:i,className:u,children:[be(ar,{required:t,labelFace:o,children:e}),s]})}import{jsx as xe,jsxs as ur}from"react/jsx-runtime";function lr({spokes:e,mesh:t=!1,className:n}){let a=u=>Math.round(u*1e3)/1e3,s=[];for(let u=0;u<e;u++){let l=u/e*Math.PI*2-Math.PI/2;if(s.push({x1:a(100+Math.cos(l)*22),y1:a(100+Math.sin(l)*22),x2:a(100+Math.cos(l)*86),y2:a(100+Math.sin(l)*86),main:!0}),t){let m=l+Math.PI/e;s.push({x1:a(100+Math.cos(m)*22*1.4),y1:a(100+Math.sin(m)*22*1.4),x2:a(100+Math.cos(m)*78),y2:a(100+Math.sin(m)*78),main:!1})}}return ur("svg",{viewBox:"0 0 200 200",fill:"none",stroke:"currentColor",className:n??"block h-[70%] w-[70%] transition-transform duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",children:[xe("circle",{cx:100,cy:100,r:92,strokeWidth:2}),xe("circle",{cx:100,cy:100,r:84,strokeWidth:1,opacity:.4}),xe("circle",{cx:100,cy:100,r:22,strokeWidth:2}),xe("circle",{cx:100,cy:100,r:6,fill:"currentColor"}),s.map((u,l)=>xe("line",{x1:u.x1,y1:u.y1,x2:u.x2,y2:u.y2,stroke:"currentColor",strokeWidth:u.main?6:3,strokeLinecap:"round",opacity:u.main?1:.5},l))]})}import{useState as cr}from"react";import{jsx as ae,jsxs as Ge}from"react/jsx-runtime";function dr({customerEmail:e}){let{coupon:t,applyCoupon:n,removeCoupon:r,couponBusy:i}=Tt(),[o,a]=cr("");async function s(){i||!o.trim()||(await n(o,e),a(""))}return Ge("div",{className:"flex flex-col gap-2",children:[t===null?Ge("div",{className:"flex border border-line",children:[ae("input",{type:"text",value:o,onChange:u=>a(u.target.value),onKeyDown:u=>{u.key==="Enter"&&(u.preventDefault(),s())},placeholder:"Coupon code","aria-label":"Coupon code",className:"flex-1 bg-transparent px-3.5 py-3.5 font-mono text-[11px] uppercase tracking-[0.18em] text-fg outline-none placeholder:text-fg-dim"}),ae("button",{type:"button",onClick:()=>{s()},disabled:i,className:"border-l border-line px-4 font-mono text-[10px] uppercase tracking-[0.26em] text-btn transition-colors hover:bg-btn hover:text-btn-ink disabled:cursor-wait disabled:opacity-60",children:i?"\u2026":"Apply"})]}):Ge("div",{className:["flex items-center justify-between gap-3 border px-3.5 py-3",t.valid?"border-accent":"border-line"].join(" "),style:t.valid?{background:"color-mix(in oklab, var(--accent) 8%, transparent)"}:void 0,children:[ae("span",{className:["font-mono text-[11px] uppercase tracking-[0.22em]",t.valid?"text-accent":t.deferred?"text-fg":"text-fg-dim line-through"].join(" "),children:t.code}),ae("button",{type:"button",onClick:r,"aria-label":`Remove coupon ${t.code}`,className:"font-mono text-[12px] text-fg-dim transition-colors hover:text-fg",children:"\u2715"})]}),t?.deferred?ae("p",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-fg-dim",children:ht}):t&&!t.valid&&t.message&&ae("p",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-alert",children:t.message})]})}function li(){let e=typeof crypto<"u"?crypto:void 0;if(typeof e?.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);if(typeof e?.getRandomValues=="function")e.getRandomValues(t);else for(let r=0;r<t.length;r++)t[r]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=Array.from(t,r=>r.toString(16).padStart(2,"0")).join("");return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}export{Lr as a,Ir as b,Nr as c,st as d,De as e,mr as f,pr as g,fr as h,gr as i,Zt as j,en as k,hr as l,yr as m,Oe as n,Fe as o,fe as p,we as q,un as r,$e as s,Rr as t,Ar as u,dn as v,Mr as w,Dr as x,mn as y,Or as z,fn as A,Fr as B,Ur as C,bt as D,Br as E,Gr as F,zr as G,Xr as H,vr as I,pt as J,Pe as K,qe as L,ao as M,Tt as N,Eo as O,$n as P,Po as Q,Kn as R,Wn as S,Do as T,Oo as U,Fo as V,Uo as W,Qn as X,er as Y,tr as Z,Yo as _,Wt as $,jo as aa,rr as ba,Qo as ca,ar as da,sr as ea,lr as fa,dr as ga,li as ha};
@@ -1 +0,0 @@
1
- import{c as J,e as G,i as V,k,p as E,q as K,s as C}from"./chunk-ZC4KGN3D.js";var I="x-forwarded-for";function z(e){let t=(e??"").split(",").map(r=>r.trim()).filter(Boolean);return t.length>0?t[t.length-1]:null}var qe="x-forwarded-host";function j(e,t,r){let n={};return e&&(n[qe]=e),t&&r==="uncached"&&(n[I]=t),n}function Z(e){if(e?.cache==="no-store"||e?.cache==="no-cache")return"uncached";if(e?.cache==="force-cache")return"data-cached";let t=e?.next?.revalidate;return typeof t=="number"&&t>0?"data-cached":"uncached"}var Q="x-storefront-site",X="x-storefront-host",Y="x-storefront-preview";var ee={contentHash:"db2b679aad5380c6",schema:1,mediaFields:{ImageBlock:["src"],LogoBlock:["src"],Flex:["bgImage"],FeaturedCover:["image"],LongRead:["image"],Banner:["imageSrc"],Timeline:["imageSrc"],Logos:["items[].src"],ContactLocations:["locations[].photo"],HeroSingle:["imageFocal","mediaImage","mediaVideo","poster"],HeroSlide:["mediaImage","mediaVideo","poster"],PostCard:["image"],Gallery:["othersCards[].image","othersCards[].photos[].src","vehicleCards[].image","vehicleCards[].photos[].src","wheelCards[].image","wheelCards[].photos[].src"],GalleryItem:["image","photos[].src"],Manifesto:["imageSrc"],SectionHeader:["logoSrc"],IntroBleed:["imageSrc","imageSrcMobile"],Split:["imageSrc","textBgSrc"],ProcessSteps:["steps[].image"],DetailRows:["rows[].image"],PaymentBadges:["badges[].src"]},mediaKeyNames:["bgImage","image","imageFocal","imageSrc","imageSrcMobile","logoSrc","mediaImage","mediaVideo","photo","poster","src","textBgSrc"],snapshotObjects:{ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},hydratedLists:{Events:["posts"],SubscribeBlogs:["posts"]},technicalStateKeys:["imageFocal"]};var Be="shop_access_token",te="shop_refresh_token",q=null;function $(){C.removeItem(Be),C.removeItem(te)}var P={getAccess(){return q},takeLegacyRefresh(){let e=C.getItem(te);return $(),e},setTokens(e){q=e,$()},clear(){q=null,$()}};function Ue(e){return!!e.src}function b(e){let t=e.finishes.filter(Ue);if(t.length===e.finishes.length)return e;let r=e.defaultFinish&&t.some(n=>n.name===e.defaultFinish)?e.defaultFinish:null;return{...e,finishes:t,defaultFinish:r}}function Le(e){return e.listable!==!1}function B(e){return e.map(b).filter(Le)}var oe=["fill","stroke","stop-color","color","flood-color","lighting-color","solid-color"],ie=new Set(["none","transparent","currentcolor","inherit","initial","unset","context-fill","context-stroke"]),T={black:[0,0,0],white:[255,255,255],gray:[128,128,128],grey:[128,128,128],darkgray:[169,169,169],darkgrey:[169,169,169],dimgray:[105,105,105],dimgrey:[105,105,105],lightgray:[211,211,211],lightgrey:[211,211,211],gainsboro:[220,220,220],silver:[192,192,192],whitesmoke:[245,245,245]},ae=12,ce=/\burl\(/i,le=new RegExp(`(?<![-\\w])(${oe.join("|")})(\\s*=\\s*)(["'])([^"']*)\\3`,"gi"),ue=new RegExp(`((?:^|[;{\\s"'])(?:${oe.join("|")})\\s*:\\s*)([^;}"'<>]+)`,"gi"),Ne=/<svg\b([^>]*)>/i,Me=/\bfill\s*[=:]/i;function He(e){let t=e.replace(le,(r,n,s,o,l)=>{let u=re(l);return u===null?r:`${n}${s}${o}${u}${o}`}).replace(ue,(r,n,s)=>{let o=re(s);return o===null?r:`${n}${o}`});return t=t.replace(Ne,(r,n)=>Me.test(n)?r:`<svg fill="#ffffff"${n}>`),t}function re(e){let t=/!important/i.test(e),r=e.replace(/!important/gi,"").trim().toLowerCase();if(!r||ce.test(r)||ie.has(r))return null;let n=r in T?[...T[r],1]:me(r);if(!n)return null;let[s,o,l,u]=n;if(Math.max(s,o,l)-Math.min(s,o,l)>ae)return null;let m=De(255-s,255-o,255-l,u);return t?`${m} !important`:m}function De(e,t,r,n){if(n<1)return`rgba(${e}, ${t}, ${r}, ${n})`;let s=o=>o.toString(16).padStart(2,"0");return`#${s(e)}${s(t)}${s(r)}`}function me(e){return e.startsWith("#")?We(e):e.startsWith("rgb")?Je(e):e.startsWith("hsl")?Ve(e):null}function We(e){let t=e.slice(1),r=1;if(t.length===3||t.length===4)t.length===4&&(r=parseInt(t[3]+t[3],16)/255),t=t.slice(0,3).split("").map(n=>n+n).join("");else if(t.length===6||t.length===8)t.length===8&&(r=parseInt(t.slice(6,8),16)/255),t=t.slice(0,6);else return null;return/^[0-9a-f]{6}$/.test(t)?[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16),r]:null}function Je(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[r,n]=t.split("/"),s=r.split(/[\s,]+/).filter(Boolean).slice(0,3);if(s.length<3)return null;let o=s.map(u=>u.endsWith("%")?Math.round(parseFloat(u)/100*255):Math.round(parseFloat(u)));if(o.some(u=>Number.isNaN(u)))return null;let l=n?O(n):Ge(r);return[o[0],o[1],o[2],l]}function Ge(e){let t=e.split(/[\s,]+/).filter(Boolean);return t.length>=4?O(t[3]):1}function O(e){let t=e.trim().endsWith("%")?parseFloat(e)/100:parseFloat(e);return Number.isNaN(t)?1:t}function Ve(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[r,n]=t.split("/"),s=r.split(/[\s,]+/).filter(Boolean);if(s.length<3)return null;let o=parseFloat(s[0]),l=parseFloat(s[1])/100,u=parseFloat(s[2])/100;if([o,l,u].some(Ie=>Number.isNaN(Ie)))return null;let m=n?O(n):s.length>=4?O(s[3]):1,[y,f,S]=Ke(o,l,u);return[y,f,S,m]}function Ke(e,t,r){let n=(1-Math.abs(2*r-1))*t,s=(e%360+360)%360/60,o=n*(1-Math.abs(s%2-1)),l=0,u=0,m=0;s<1?[l,u,m]=[n,o,0]:s<2?[l,u,m]=[o,n,0]:s<3?[l,u,m]=[0,n,o]:s<4?[l,u,m]=[0,o,n]:s<5?[l,u,m]=[o,0,n]:[l,u,m]=[n,0,o];let y=r-n/2;return[Math.round((l+y)*255),Math.round((u+y)*255),Math.round((m+y)*255)]}var ne=512*1024;function U(e){return/\.svg(\?|$)/i.test(e)}function ze(e){return`data:image/svg+xml,${encodeURIComponent(He(e))}`}function je(e){let t=e.replace(/!important/gi,"").trim().toLowerCase();if(!t||ce.test(t)||ie.has(t))return null;let r=t in T?[...T[t],1]:me(t);if(!r)return null;let[n,s,o]=r;return Math.max(n,s,o)-Math.min(n,s,o)>ae?null:(.2126*n+.7152*s+.0722*o)/255}function Ze(e){let t=[],r=n=>{let s=je(n);s!==null&&t.push(s)};for(let n of e.matchAll(le))r(n[4]);for(let n of e.matchAll(ue))r(n[2]);return t.length?t.reduce((n,s)=>n+s,0)/t.length<.5:null}var se=/^(?:\uFEFF|\s+|<\?xml[^>]*\?>|<!--[\s\S]*?-->|<!DOCTYPE\s+svg[^>[]*>)/i;function Qe(e){let t=e;for(let r=se.exec(t);r&&r[0].length>0;r=se.exec(t))t=t.slice(r[0].length);return/^<svg[\s>/]/i.test(t)}async function Xe(e,t){if(!U(e))return null;try{let r=await fetch(e,{signal:t,redirect:"manual"});if(!r.ok)return null;let n=Number(r.headers.get("content-length"));if(Number.isFinite(n)&&n>ne)return null;let s=await r.text();return s.length>ne?null:Qe(s)?s:null}catch{return null}}async function pe(e,t){let r=await Xe(e,t);return r===null?null:{reversed:ze(r),inkIsDark:Ze(r)}}function de(){return J().siteId()}var Ye="",h=class extends Error{constructor(t,r,n){super(r),this.status=t,this.data=n}},M="Unable to reach the server. This could be a problem with your internet connection, or the server may be undergoing maintenance or an upgrade. Please try again shortly.",et=new Set([502,503,504]),L=0,tt="This editor runs on its host's own backend, which does not serve this request.",rt=5e3,nt=15e3,st=()=>typeof window>"u"?rt:nt;function Re(e){let t=(e.method??"GET").toUpperCase();if(!(e.body!=null||t!=="GET"&&t!=="HEAD")&&!(e.audience!=null&&e.audience!=="shop")&&typeof AbortSignal?.timeout=="function")return AbortSignal.timeout(st())}var ge=e=>e instanceof Error&&e.name==="TimeoutError",he=(e,t)=>et.has(e)?M:t,ot=["admin","venue"],_e="admin";function Yt(e){_e=ot.includes(e)?e:"admin"}function it(){return _e}var at=/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*$/,xe=null;function er(e){xe=e&&at.test(e)?e:null}function ct(){return xe}function lt(e){if(typeof window>"u"||!e.startsWith("/api/v1/"))return e;let t=E();return!t||/[?&]site=/.test(e)?e:F(e,`site=${encodeURIComponent(t)}`)}async function i(e,t={}){let{token:r,baseUrl:n,headers:s,audience:o,...l}=t;if(typeof window<"u"&&!G())throw new h(L,tt,null);if(typeof window>"u"&&n===void 0)throw new Error(`apiFetch(${JSON.stringify(e)}) ran on the server without an explicit baseUrl. The API_URL default it would inherit is browser-only (the prod image bakes NEXT_PUBLIC_API_URL="" for same-origin use, which a Node fetch cannot resolve). Pass a base explicitly: \`await backendOpts()\` (or baseUrl: PRODUCT_FETCH_BASE) for product reads, or the server-only PRODUCT_BACKEND_URL env for other backend surfaces.`);let u=typeof FormData<"u"&&l.body instanceof FormData,m;try{m=await fetch(`${n??Ye}${lt(e)}`,{...l,headers:{...u?{}:{"Content-Type":"application/json"},...r?{Authorization:`Bearer ${r}`}:{},...o===null?{}:{"X-Portal-Audience":o??"shop"},...s},signal:l.signal??Re({...l,audience:o})})}catch(S){throw S instanceof TypeError||ge(S)?new h(L,M,null):S}let y;try{y=await m.text()}catch(S){throw ge(S)?new h(L,M,null):S}let f=null;if(y)try{f=JSON.parse(y)}catch{throw new h(m.status,m.ok?"Expected JSON but received a non-JSON response":he(m.status,m.statusText),y)}if(!m.ok){let S=(f&&typeof f=="object"&&"detail"in f&&typeof f.detail=="string"?f.detail:null)??he(m.status,m.statusText);throw new h(m.status,S,f)}return f}var A=null;async function ke(){return A||(A=ut().finally(()=>{A=null}),A)}async function ut(){let e=P.takeLegacyRefresh(),t=await mt.refresh(e??void 0);return P.setTokens(t.access),t.access}async function Ce(){return P.getAccess()??ke()}async function p(e,t={}){let r;try{r=await Ce()}catch{throw P.clear(),new h(401,"Not signed in",null)}try{return await i(e,{...t,token:r})}catch(n){if(!(n instanceof h)||n.status!==401)throw n;try{let s=await ke();return await i(e,{...t,token:s})}catch{throw P.clear(),n}}}async function ye(e,t={}){if(P.getAccess())try{return{data:await p(e,t),asShopper:!0}}catch(r){if(!(r instanceof h)||r.status!==401)throw r}return{data:await i(e,t),asShopper:!1}}async function fe(){let e=await p("/api/auth/me/");if(e.portal!=="shop")throw P.clear(),new h(403,"This session is not valid for this shop.",null);return e}var mt={login:(e,t)=>i("/api/auth/login/",{method:"POST",body:JSON.stringify({email:e,password:t,portal:"shop"}),credentials:"include"}),refresh:e=>i("/api/auth/refresh/",{method:"POST",body:JSON.stringify(e?{refresh:e,portal:"shop"}:{portal:"shop"}),credentials:"include"}),logout:async()=>{P.clear();try{await i("/api/auth/logout/",{method:"POST",body:JSON.stringify({portal:"shop"}),credentials:"include"})}catch{}},restoreSession:async()=>{let e=await Ce();return await fe(),e},me:fe,updateMe:e=>p("/api/auth/me/",{method:"PATCH",body:JSON.stringify(e)}),changePassword:(e,t)=>p("/api/auth/me/",{method:"PATCH",body:JSON.stringify({password:t,old_password:e})}),changeEmail:(e,t)=>p("/api/shop-portal/change-email/",{method:"POST",body:JSON.stringify({new_email:e,current_password:t})}),myProfile:()=>p("/api/shop-portal/profile/"),updateMyProfile:e=>p("/api/shop-portal/profile/",{method:"PATCH",body:JSON.stringify(e)}),myAddresses:()=>p("/api/shop-portal/delivery-locations/"),createAddress:e=>p("/api/shop-portal/delivery-locations/",{method:"POST",body:JSON.stringify(e)}),updateAddress:(e,t)=>p(`/api/shop-portal/delivery-locations/${e}/`,{method:"PATCH",body:JSON.stringify(t)}),deleteAddress:e=>p(`/api/shop-portal/delivery-locations/${e}/`,{method:"DELETE"}),passwordResetRequest:e=>i("/api/auth/password-reset/",{method:"POST",body:JSON.stringify({email:e})}),passwordResetConfirm:(e,t,r)=>i("/api/auth/password-reset/confirm/",{method:"POST",body:JSON.stringify({uid:e,token:t,new_password:r})}),brands:()=>p("/api/products/brands/"),myOrders:()=>p("/api/shop-portal/orders/").then(e=>e.results),myOrder:e=>p(`/api/shop-portal/orders/${e}/`),cancelOrder:e=>p(`/api/shop-portal/orders/${e}/cancel/`,{method:"POST"}),myReturns:e=>p(`/api/shop-portal/returns/${e?`?order=${encodeURIComponent(e)}`:""}`).then(t=>t.results),createReturn:e=>p("/api/shop-portal/returns/",{method:"POST",body:JSON.stringify(e)}),withdrawReturn:e=>p(`/api/shop-portal/returns/${e}/cancel/`,{method:"POST"}),uploadReturnPhoto:(e,t)=>{let r=new FormData;return r.append("claim_item",e),r.append("file",t),r.append("media_type",t.type.startsWith("video/")?"video":"image"),p("/api/shop-portal/return-media/",{method:"POST",body:r})}};function g(e){if(typeof e=="string")return e.startsWith("/media/")?V(e):e;if(Array.isArray(e))return e.map(g);if(e&&typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))t[r]=r==="captions"&&n&&typeof n=="object"&&!Array.isArray(n)?Object.fromEntries(Object.entries(n).map(([s,o])=>[g(s),o])):g(n);return t}return e}var pt="",Te="".replace(/\/+$/,""),Oe=typeof window>"u"&&Te!=="",dt=Oe?Te:pt,gt=K,w=()=>({baseUrl:gt(),audience:null});function a(e,t){let r=t?`?process=${encodeURIComponent(t)}`:"";return`/api/v1${e}${r}`}var ht=100,Se=50;function ve(e,t,r){let n=new URLSearchParams;for(let[s,o]of Object.entries(t))o!=null&&o!==""&&n.set(s,String(o));return n.set("pageSize",String(ht)),r&&n.set("cursor",r),`/api/v1${e}?${n.toString()}`}function yt(e,t){return ve("/wheels",{process:e},t)}function ft(e,t,r){return ve("/products",{kind:e.join(","),make:t?.make,model:t?.model,year:t?.year,modification:t?.modification},r)}function St(e){if(!e)return null;try{return new URL(e,"http://cursor.invalid").searchParams.get("cursor")}catch{return null}}async function Pe(e,t,r=()=>!1){let n=[],s=null;try{for(let o=0;o<Se;o++){let l=await i(await t(s),await c());if(n.push(...l.results),s=St(l.next),!s)break}s&&console.warn(`[${e}] stopped at ${Se} pages (${n.length} rows); catalog may be truncated`)}catch(o){if(r(o))throw o;console.warn(`[${e}] product API unavailable, returning []`,o)}return n}var Pt=e=>e instanceof h&&e.status===400;function wt(e){return e.flatMap(t=>t.kind==="alloy-wheel"?B([t]):[t])}async function Fe(){return(await bt()).host}async function bt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js"),t=await e(),r=o=>o?.split(",")[0]?.split(":")[0]?.trim().toLowerCase()||null,n=r(t.get(X)??t.get("x-forwarded-host")??t.get("host")),s=r(t.get("host"));return{host:n,matchesRequestHost:n!==null&&n===s}}catch{return{host:null,matchesRequestHost:!1}}}async function At(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return z((await e()).get(I))}catch{return null}}async function Rt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get(Q)||null}catch{return null}}async function _t(){let e=await Rt();if(e)return`site=${encodeURIComponent(e)}`;let t=await Fe();return t?`host=${encodeURIComponent(t)}`:""}async function d(e){if(typeof window<"u"){let t=E();return t?F(e,`site=${encodeURIComponent(t)}`):e}return F(e,await _t())}function F(e,t){return t?`${e}${e.includes("?")?"&":"?"}${t}`:e}var xt="preview";async function kt(){if(typeof window<"u")return null;try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get(Y)}catch{return null}}async function Ct(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get("user-agent")}catch{return null}}async function N(e,t){let r=await kt();if(r===null)return[await d(e),await c(t)];let n=F(await d(e),`${xt}=${encodeURIComponent(r)}`),{next:s,cache:o,...l}=t??{},u=await c({...l,cache:"no-store"}),m=await Ct();return m&&(u.headers={...u.headers,"user-agent":m}),[n,u]}async function Tt(e){if(!Oe)return;let[t,r]=await Promise.all([Fe(),At()]),n=j(t,r,e);return Object.keys(n).length>0?n:void 0}async function c(e){let t=await Tt(Z(e)),r={baseUrl:dt,...e};return t&&(r.headers={...t,...e?.headers}),r}var R=typeof window>"u";function _(e,t){let r=new URLSearchParams;for(let[s,o]of Object.entries(t))o!==void 0&&o!==""&&r.set(s,String(o));let n=r.toString();return`/api/v1/fitment${e}${n?`?${n}`:""}`}var or={listMakes:async e=>{if(R){let{fitmentData:r}=await import("./fitment-data-RIEEQFFZ.js");return r.makes(e)}return(await i(_("/makes",{region:e}),w())).results},listModels:async(e,t)=>{if(R){let{fitmentData:n}=await import("./fitment-data-RIEEQFFZ.js");return n.models(e,t)}return(await i(_("/models",{make:e,region:t}),w())).results},listYears:async(e,t,r)=>{if(R){let{fitmentData:s}=await import("./fitment-data-RIEEQFFZ.js");return s.years(e,t,r)}return(await i(_("/years",{make:e,model:t,region:r}),w())).results},listModifications:async(e,t,r,n)=>{if(R){let{fitmentData:o}=await import("./fitment-data-RIEEQFFZ.js");return o.modifications(e,t,r,n)}return(await i(_("/modifications",{make:e,model:t,year:r,region:n}),w())).results},getStockFitment:async(e,t,r,n,s)=>{if(R){let{fitmentData:o}=await import("./fitment-data-RIEEQFFZ.js");return o.stockFitment(e,t,r,n,s)}return i(_("/stock-fitment",{make:e,model:t,year:r,modification:n,region:s}),w())}},ir={listWheels:async e=>{let t=await Pe("products.listWheels",async r=>await d(yt(e,r)));return B(g(t))},listCatalog:async(e,t)=>{if(e.length===0)throw new Error("products.listCatalog() needs at least one kind. An empty list would omit `kind`, which the contract reads as `alloy-wheel` \u2014 so the call would silently return the wheel catalog instead of nothing.");let r=await Pe("products.listCatalog",async n=>await d(ft(e,t,n)),Pt);return wt(g(r))},getWheel:async e=>b(g(await i(await d(a(`/wheels/${e}`)),await c()))),getTyre:async e=>g(await i(await d(a(`/tyres/${e}`)),await c())),listBundles:async()=>{try{return await i(await d(a("/bundles")),await c())}catch{return[]}},getBundle:async e=>i(await d(a(`/bundles/${e}`)),await c()),listGalleryBuilds:async(e={})=>{let{process:t=null,wheelSlug:r=null}=e;if(typeof window>"u"){let{listGalleryBuilds:n}=await import("./gallery-builds-data-VVHHVNYW.js");return g(n(t,r))}try{let n=new URLSearchParams;t&&n.set("process",t),r&&n.set("wheelSlug",r);let s=n.toString(),o=await i(`/api/v1/gallery-builds${s?`?${s}`:""}`,w());return g(o.results)}catch(n){return console.warn("[products.listGalleryBuilds] product API unavailable, returning []",n),[]}},getSite:async()=>i(await d(a("/site")),await c()),getSiteBySlug:async e=>i(`${a("/site")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await c():void 0),listBrands:async()=>{try{return(await i(await d(a("/brands")),await c())).results??[]}catch(e){return console.warn("[products.listBrands] product API unavailable, returning []",e),[]}},listBrandsForSite:async e=>(await i(`${a("/brands")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await c():void 0)).results??[],listPages:async()=>g(await i(await d(a("/pages")),await c())),listProductTemplates:async()=>{try{return await i(await d(a("/product-templates")),await c())}catch(e){return console.warn("[products.listProductTemplates] unavailable, returning []",e),[]}},listDynamicPages:async e=>{let t=e?`?recordType=${encodeURIComponent(e)}`:"";try{return await i(await d(`${a("/dynamic-pages")}${t}`),await c())}catch(r){if(r instanceof h&&r.status===404)return[];throw r}},getRecord:async(e,t)=>{try{return await i(await d(a(`/records/${encodeURIComponent(e)}/${encodeURIComponent(t)}`)),await c())}catch(r){if(r instanceof h&&r.status===404)return null;throw r}},listProductTypeChoices:async()=>{try{return await i(await d(a("/product-type-choices")),await c())}catch(e){return console.warn("[products.listProductTypeChoices] unavailable, returning []",e),[]}},listFieldUsage:async()=>{try{return await i(await d(a("/field-usage")),await c())}catch(e){return console.warn("[products.listFieldUsage] unavailable, returning []",e),[]}},getPage:async(e,t={})=>{let r=t.record?`?record=${encodeURIComponent(t.record)}`:"",[n,s]=await N(a(`/pages/${e}`)+r,t.revalidate!==void 0?{next:{revalidate:t.revalidate}}:void 0);return g(await i(n,s))},listBlogPosts:async()=>{try{return(await i(a("/blog-posts"),await c())).map(t=>({...t,coverImage:k(t.coverImage)??""}))}catch(e){return console.warn("[products.listBlogPosts] blog API unavailable, returning []",e),[]}},getBlogPost:async e=>{let t=await i(a(`/blog-posts/${e}`),await c());return{...t,coverImage:k(t.coverImage)??""}},createOrder:async e=>i(a("/orders"),await c({method:"POST",body:JSON.stringify(e)})),createOrderAuthed:async e=>p(a("/orders"),await c({method:"POST",body:JSON.stringify(e)})),lookupOrder:async e=>i(a("/orders/lookup"),await c({method:"POST",body:JSON.stringify(e)})),createPaymentIntent:async e=>i(a("/payments/intent"),await c({method:"POST",body:JSON.stringify(e)})),createPaypalOrder:async e=>i(a("/payments/paypal/order"),await c({method:"POST",body:JSON.stringify(e)})),capturePaypalOrder:async e=>i(a("/payments/paypal/capture"),await c({method:"POST",body:JSON.stringify(e)})),createAfterpayCheckout:async e=>i(a("/payments/afterpay/checkout"),await c({method:"POST",body:JSON.stringify(e)})),captureAfterpayPayment:async e=>i(a("/payments/afterpay/capture"),await c({method:"POST",body:JSON.stringify(e)})),chargeSquare:async e=>i(a("/payments/square/charge"),await c({method:"POST",body:JSON.stringify(e)})),createGocardlessBillingRequest:async e=>i(a("/payments/gocardless/billing-request"),await c({method:"POST",body:JSON.stringify(e)})),completeGocardlessPayment:async e=>i(a("/payments/gocardless/complete"),await c({method:"POST",body:JSON.stringify(e)})),createZipCheckout:async e=>i(a("/payments/zip/checkout"),await c({method:"POST",body:JSON.stringify(e)})),captureZipPayment:async e=>i(a("/payments/zip/capture"),await c({method:"POST",body:JSON.stringify(e)})),createKlarnaCheckout:async e=>i(a("/payments/klarna/checkout"),await c({method:"POST",body:JSON.stringify(e)})),captureKlarnaPayment:async e=>i(a("/payments/klarna/capture"),await c({method:"POST",body:JSON.stringify(e)})),createStockAlert:async e=>i(a("/stock-alerts"),await c({method:"POST",body:JSON.stringify(e)})),createPreOrderIntent:async e=>i(a("/pre-order-intents"),await c({method:"POST",body:JSON.stringify(e)})),createNewsletterSubscription:async e=>i(a("/newsletter-subscriptions"),await c({method:"POST",body:JSON.stringify(e)})),unsubscribeNewsletter:async e=>i(a("/newsletter-unsubscribe"),await c({method:"POST",body:JSON.stringify(e)})),captureCart:async e=>i(a("/carts"),await c({method:"POST",body:JSON.stringify(e)})),restoreCart:async e=>i(a("/carts/restore"),await c({method:"POST",body:JSON.stringify(e)})),unsubscribeCartReminders:async e=>i(a("/carts/unsubscribe"),await c({method:"POST",body:JSON.stringify(e)})),listReviews:async(e={})=>{let t=new URLSearchParams;e.limit&&t.set("limit",String(e.limit)),e.designCode&&t.set("designCode",e.designCode);let r=a("/reviews"),n=t.toString();try{return await i(await d(n?`${r}?${n}`:r),await c())}catch(s){return console.warn("[products.listReviews] product API unavailable, returning []",s),[]}},submitReview:async e=>i(a("/reviews"),await c({method:"POST",body:JSON.stringify(e)})),getForm:async e=>i(a(`/forms/${encodeURIComponent(e)}`),await c()),submitForm:async(e,t)=>i(a(`/forms/${encodeURIComponent(e)}/submissions`),await c({method:"POST",body:JSON.stringify(t)})),listShippingMethods:async()=>{try{return await i(a("/shipping-methods"),await c())}catch(e){return console.warn("[products.listShippingMethods] product API unavailable, returning []",e),[]}},listCountrySubdivisions:async e=>{try{return await i(a(`/countries/${encodeURIComponent(e)}/subdivisions`),await c())}catch(t){return console.warn("[products.listCountrySubdivisions] unavailable, returning []",t),[]}},quoteCart:async e=>{let t=a("/cart/quote"),r=await c({method:"POST",body:JSON.stringify(e)});return e.couponCode?(await ye(t,r)).data:i(t,r)},validateCoupon:async e=>{let{data:t,asShopper:r}=await ye(a("/coupons/validate"),await c({method:"POST",body:JSON.stringify(e)}));return{...t,askedAsShopper:r}},getHeaderSettings:async()=>{let e=Re({method:"GET"}),t=await i(...await N(a("/header-settings"),{signal:e})),r=k(t.logoUrl),n=null,s=null;if(r&&U(r)){let o=await pe(r,e);o&&(n=o.reversed,s=o.inkIsDark)}return{...t,logoUrl:r,logoReversed:n,logoInkIsDark:s}},getThemeSettings:async()=>i(...await N(a("/theme-settings"))),getChatSettings:async()=>i(await d(a("/chat-settings")),await c())},ar={listServices:async()=>{try{return await i(a("/bookings/services"),await c())}catch(e){return console.warn("[bookings.listServices] API unavailable, returning []",e),{results:[],currency:"USD"}}},getAvailability:async(e,t)=>i(a(`/bookings/availability?service=${encodeURIComponent(e)}&date=${t}`),await c()),create:async e=>i(a("/bookings"),await c({method:"POST",body:JSON.stringify(e)})),get:async e=>i(a(`/bookings/manage/${encodeURIComponent(e)}`),await c()),cancel:async e=>i(a(`/bookings/manage/${encodeURIComponent(e)}/cancel`),await c({method:"POST"})),createPaymentIntent:async e=>i(a("/bookings/payments/intent"),await c({method:"POST",body:JSON.stringify({manageToken:e})}))},H=class extends Error{constructor(r,n){super(`Slug "${r}" exists on ${n} websites; a site is required to pick one.`);this.slug=r;this.count=n;this.name="AmbiguousPageSlugError"}},x=e=>e?`/api/storefront/header-settings/?${new URLSearchParams({site:e})}`:"/api/storefront/header-settings/",we=e=>e?`/api/storefront/theme-settings/?${new URLSearchParams({site:e})}`:"/api/storefront/theme-settings/",be=e=>e?`/api/storefront/chat-settings/?${new URLSearchParams({site:e})}`:"/api/storefront/chat-settings/",Ae=e=>`/api/storefront/social-settings/?${new URLSearchParams({site:e})}`,D=e=>`/api/storefront/sites/${encodeURIComponent(e)}/`,Ot=e=>`${D(e)}currencies/`,vt="/api/storefront/media/ingest/",W=class extends Error{constructor(){super("This editor is not connected to a website, so an upload has nowhere to go. Open the page from the website the file should belong to, then try again."),this.name="MediaUploadDestinationError"}};function Ft(){let e=de();if(!e)throw new W;return`${vt}?${new URLSearchParams({site:e})}`}var v={"X-Puck-Media-Manifest":ee.contentHash},cr=Ee({});function Ee(e){return(t,r={})=>{let n=ct(),s=e.headers||n?{...n?{"Accept-Language":n}:{},...e.headers,...r.headers}:void 0;return i(t,{...r,...e.baseUrl!==void 0?{baseUrl:e.baseUrl}:{},...s?{headers:s}:{},audience:e.audience??it()})}}function Et(e={}){let t=Ee(e);return{findPageBySlug:async(r,n,s)=>{let o=new URLSearchParams({slug:r});s&&o.set("site",s);let l=await t(`/api/storefront/pages/?${o.toString()}`,{token:n}),u=Array.isArray(l)?l:l.results??[];if(!s&&u.length>1)throw new H(r,u.length);return u[0]??null},getPageById:(r,n)=>t(`/api/storefront/pages/${r}/`,{token:n}),saveLayout:(r,n,s,o,l)=>t(`/api/storefront/pages/${r}/`,{method:"PATCH",body:JSON.stringify({layout:n,expected_updated_at:o,...l?{client_id:l}:{}}),token:s}),publishPage:(r,n,s)=>t(`/api/storefront/pages/${r}/publish/`,{method:"POST",body:s?JSON.stringify({expected_updated_at:s}):void 0,token:n}),createPagePreviewLink:(r,n)=>t(`/api/storefront/pages/${r}/preview-link/`,{method:"POST",token:n}),claimPageEditLock:(r,n,s,o=!1)=>t(`/api/storefront/pages/${r}/edit-lock/`,{method:"POST",body:JSON.stringify({client_id:s,takeover:o}),token:n}),releasePageEditLock:(r,n)=>t(`/api/storefront/pages/${r}/edit-lock/`,{method:"DELETE",token:n}),createTemplate:(r,n,s)=>t("/api/storefront/page-templates/",{method:"POST",body:JSON.stringify({name:r,layout:n}),headers:v,token:s}),getTemplate:(r,n)=>t(`/api/storefront/page-templates/${r}/`,{token:n}),saveTemplateLayout:(r,n,s)=>t(`/api/storefront/page-templates/${r}/`,{method:"PATCH",body:JSON.stringify({layout:n}),headers:v,token:s}),listTemplatePages:async(r,n)=>{let s=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(r)}`,{token:n});return Array.isArray(s)?s:s.results??[]},findTemplatePageBySlug:async(r,n,s)=>{let o=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(r)}&slug=${encodeURIComponent(n)}`,{token:s});return(Array.isArray(o)?o:o.results??[])[0]??null},createTemplatePage:(r,n,s)=>t("/api/storefront/template-pages/",{method:"POST",body:JSON.stringify({template:r,...n}),headers:v,token:s}),saveTemplatePageLayout:(r,n,s)=>t(`/api/storefront/template-pages/${r}/`,{method:"PATCH",body:JSON.stringify({layout:n}),headers:v,token:s}),deleteTemplatePage:(r,n,s)=>t(`/api/storefront/template-pages/${r}/`,{method:"DELETE",token:n,...s?.keepalive?{keepalive:!0}:{}}),listPages:async(r,n)=>{let s=new URLSearchParams({no_page:"true"});n&&s.set("site",n);let o=await t(`/api/storefront/pages/?${s.toString()}`,{token:r});return Array.isArray(o)?o:o.results??[]},createPage:(r,n,s,o)=>t("/api/storefront/pages/",{method:"POST",body:JSON.stringify({title:r,slug:n,layout:s}),token:o}),deletePage:(r,n)=>t(`/api/storefront/pages/${r}/`,{method:"DELETE",token:n}),getHeaderSettings:(r,n)=>t(x(n),{token:r}),listMenus:async(r,n)=>{let s=new URLSearchParams({no_page:"true"});n&&s.set("site",n);let o=await t(`/api/storefront/menus/?${s}`,{token:r});return Array.isArray(o)?o:o.results??[]},listBlogPosts:async(r,n={})=>{let s=new URLSearchParams({no_page:"true"});n.visibleOnly&&s.set("is_visible","true"),n.siteId&&s.set("site",n.siteId);let o=await t(`/api/storefront/blog-posts/?${s.toString()}`,{token:r});return Array.isArray(o)?o:o.results??[]},listFieldUsage:async(r,n)=>{let s=await t(`/api/storefront/field-usage/?site=${encodeURIComponent(n)}`,{token:r});return Array.isArray(s?.entries)?s.entries:[]},listCategories:async(r,n={})=>{let s=new URLSearchParams({no_page:"true"});n.visibleOnly&&s.set("is_visible","true"),n.siteId&&s.set("site",n.siteId);let o=await t(`/api/storefront/categories/?${s.toString()}`,{token:r});return[...Array.isArray(o)?o:o.results??[]].sort((u,m)=>u.sort_order-m.sort_order||u.name.localeCompare(m.name))},listForms:async(r,n={})=>{let s=new URLSearchParams({no_page:"true"});n.siteId&&s.set("site",n.siteId);let o=await t(`/api/storefront/forms/?${s.toString()}`,{token:r});return[...Array.isArray(o)?o:o.results??[]].sort((u,m)=>u.title.localeCompare(m.title))},listWheelSummaries:async(r,n={})=>{let s=new URLSearchParams;n.siteId&&s.set("site",n.siteId);let o=s.toString(),l=await t(`/api/storefront/wheel-curations/summaries/${o?`?${o}`:""}`,{token:r});return g(l)},listProducts:async(r,n={})=>{let s=new URLSearchParams;n.kinds?.length&&s.set("kind",n.kinds.join(",")),n.siteId&&s.set("site",n.siteId);let o=s.toString(),l=await t(`/api/storefront/products/${o?`?${o}`:""}`,{token:r});return g(l)},getWheelDetail:async(r,n,s={})=>{let o=new URLSearchParams({slug:n});return s.siteId&&o.set("site",s.siteId),b(g(await t(`/api/storefront/wheel-curations/detail/?${o.toString()}`,{token:r})))},updateHeaderSettings:(r,n,s)=>t(x(s),{method:"PATCH",body:JSON.stringify(r),token:n}),getSite:(r,n)=>t(D(r),{token:n}),listSites:async r=>{let n=await t("/api/storefront/sites/?no_page=true",{token:r});return Array.isArray(n)?n:n.results??[]},listSiteCurrencies:async(r,n)=>{let s=await t(Ot(r),{token:n});return Array.isArray(s)?s:[]},updateSite:(r,n,s)=>t(D(r),{method:"PATCH",body:JSON.stringify(n),token:s}),getThemeSettings:(r,n)=>t(we(n),{token:r}),updateThemeSettings:(r,n,s)=>t(we(s),{method:"PATCH",body:JSON.stringify(r),token:n}),getChatSettings:(r,n)=>t(be(n),{token:r}),updateChatSettings:(r,n,s)=>t(be(s),{method:"PATCH",body:JSON.stringify(r),token:n}),getSocialSettings:(r,n)=>t(Ae(n),{token:r}),updateSocialSettings:(r,n,s)=>t(Ae(s),{method:"PATCH",body:JSON.stringify(r),token:n}),uploadHeaderLogo:(r,n,s)=>{let o=new FormData;return o.append("logo",r),t(x(s),{method:"PATCH",body:o,token:n})},clearHeaderLogo:(r,n)=>t(x(n),{method:"PATCH",body:JSON.stringify({logo:null}),token:r}),setHeaderLogoFromAsset:(r,n,s)=>t(x(s),{method:"PATCH",body:JSON.stringify({logo_asset_id:r}),token:n}),uploadMedia:async(r,n)=>{let s=new FormData;return s.append("file",r),t(Ft(),{method:"POST",body:s,token:n})},listMedia:async(r,n)=>{let s=new URLSearchParams({no_page:"true"});n&&s.set("kind",n);let o=await t(`/api/storefront/media-assets/?${s.toString()}`,{token:r});return Array.isArray(o)?o:o.results??[]}}}var lr=Et();export{ee as a,j as b,Z as c,P as d,Ue as e,U as f,de as g,Ye as h,h as i,M as j,L as k,Yt as l,er as m,i as n,mt as o,pt as p,Fe as q,bt as r,At as s,Rt as t,kt as u,or as v,ir as w,ar as x,H as y,cr as z,lr as A};
@@ -1 +0,0 @@
1
- import{b as d,c as p,q as S,s as b}from"./chunk-TTHDA2MW.js";import"./chunk-ZC4KGN3D.js";import"./chunk-Y6SLVHK3.js";var T={generatedAt:"2026-06-28T04:33:14.721Z",region:"audm",upstreamHits:80,makes:[{slug:"abarth",name:"Abarth"},{slug:"aion",name:"Aion"},{slug:"alfa-romeo",name:"Alfa Romeo"},{slug:"alpine",name:"Alpine"},{slug:"aston-martin",name:"Aston Martin"},{slug:"audi",name:"Audi"},{slug:"bentley",name:"Bentley"},{slug:"bmw",name:"BMW"},{slug:"bmw-alpina",name:"BMW Alpina"},{slug:"byd",name:"BYD"},{slug:"cadillac",name:"Cadillac"},{slug:"chery",name:"Chery"},{slug:"citroen",name:"Citro\xEBn"},{slug:"cupra",name:"Cupra"},{slug:"daihatsu",name:"Daihatsu"},{slug:"datsun",name:"Datsun"},{slug:"deepal",name:"Deepal"},{slug:"denza",name:"Denza"},{slug:"dodge",name:"Dodge"},{slug:"ds",name:"DS"},{slug:"ferrari",name:"Ferrari"},{slug:"fiat",name:"Fiat"},{slug:"ford",name:"Ford"},{slug:"foton",name:"Foton"},{slug:"geely",name:"Geely"},{slug:"genesis",name:"Genesis"},{slug:"great-wall",name:"Great Wall (GWM)"},{slug:"haval",name:"Haval"},{slug:"holden",name:"Holden"},{slug:"honda",name:"Honda"},{slug:"hyundai",name:"Hyundai"},{slug:"ineos",name:"Ineos"},{slug:"isuzu",name:"Isuzu"},{slug:"iveco",name:"Iveco"},{slug:"jac",name:"JAC"},{slug:"jaecoo",name:"Jaecoo"},{slug:"jaguar",name:"Jaguar"},{slug:"jeep",name:"Jeep"},{slug:"kg-mobility",name:"KGM"},{slug:"kia",name:"Kia"},{slug:"lamborghini",name:"Lamborghini"},{slug:"land-rover",name:"Land Rover"},{slug:"ldv",name:"LDV"},{slug:"leapmotor",name:"Leapmotor"},{slug:"lexus",name:"Lexus"},{slug:"lotus",name:"Lotus"},{slug:"mahindra",name:"Mahindra"},{slug:"maserati",name:"Maserati"},{slug:"mazda",name:"Mazda"},{slug:"mclaren",name:"McLaren"},{slug:"mercedes",name:"Mercedes-Benz"},{slug:"mercedes-maybach",name:"Mercedes-Maybach"},{slug:"mg",name:"MG"},{slug:"mini",name:"MINI"},{slug:"mitsubishi",name:"Mitsubishi"},{slug:"nissan",name:"Nissan"},{slug:"omoda",name:"Omoda"},{slug:"opel",name:"Opel"},{slug:"ora",name:"Ora"},{slug:"peugeot",name:"Peugeot"},{slug:"polaris",name:"Polaris"},{slug:"polestar",name:"Polestar"},{slug:"porsche",name:"Porsche"},{slug:"proton",name:"Proton"},{slug:"ram",name:"Ram"},{slug:"renault",name:"Renault"},{slug:"seat",name:"Seat"},{slug:"skoda",name:"Skoda"},{slug:"smart",name:"Smart"},{slug:"ssangyong",name:"SsangYong"},{slug:"subaru",name:"Subaru"},{slug:"suzuki",name:"Suzuki"},{slug:"tank",name:"Tank"},{slug:"tesla",name:"Tesla"},{slug:"toyota",name:"Toyota"},{slug:"triumph",name:"Triumph"},{slug:"volkswagen",name:"Volkswagen"},{slug:"volvo",name:"Volvo"},{slug:"zeekr",name:"Zeekr"}],models:{abarth:[{slug:"500e",name:"500e"},{slug:"695",name:"695"},{slug:"695c",name:"695C"}],aion:[{slug:"ut",name:"UT"}],"alfa-romeo":[{slug:"giulia",name:"Giulia"},{slug:"junior",name:"Junior"},{slug:"stelvio",name:"Stelvio"},{slug:"tonale",name:"Tonale"}],alpine:[{slug:"a110",name:"A110"},{slug:"a390",name:"A390"}],"aston-martin":[{slug:"db11",name:"DB11"},{slug:"db12",name:"DB12"},{slug:"dbs-770-ultimate",name:"DBS 770 Ultimate"},{slug:"dbs-superleggera",name:"DBS Superleggera"},{slug:"dbx",name:"DBX"},{slug:"dbx-s",name:"DBX S"},{slug:"dbx707",name:"DBX707"},{slug:"v12-vantage",name:"V12 Vantage"},{slug:"valhalla",name:"Valhalla"},{slug:"valour",name:"Valour"},{slug:"vanquish",name:"Vanquish"},{slug:"vantage",name:"Vantage"},{slug:"vantage-s",name:"Vantage S"}],audi:[{slug:"5-5",name:"5+5"},{slug:"a1",name:"A1"},{slug:"a3",name:"A3"},{slug:"a4",name:"A4"},{slug:"a4-allroad",name:"A4 Allroad"},{slug:"a5",name:"A5"},{slug:"a6",name:"A6"},{slug:"a6-allroad",name:"A6 Allroad"},{slug:"a7",name:"A7"},{slug:"a8",name:"A8"},{slug:"allroad",name:"Allroad"},{slug:"e-tron",name:"e-tron"},{slug:"e-tron-gt",name:"e-tron GT"},{slug:"e-tron-s",name:"e-tron S"},{slug:"e-tron-s-sportback",name:"e-tron S Sportback"},{slug:"e-tron-sportback",name:"e-tron Sportback"},{slug:"q2",name:"Q2"},{slug:"q3",name:"Q3"},{slug:"q3-sportback",name:"Q3 Sportback"},{slug:"q4",name:"Q4 e-tron"},{slug:"q4-sportback",name:"Q4 Sportback e-tron"},{slug:"q5",name:"Q5"},{slug:"q5-sportback",name:"Q5 Sportback"},{slug:"q6-e-tron",name:"Q6 e-tron"},{slug:"q7",name:"Q7"},{slug:"q8",name:"Q8"},{slug:"q8-e-tron",name:"Q8 e-tron"},{slug:"q8-sportback-e-tron",name:"Q8 Sportback e-tron"},{slug:"r8",name:"R8"},{slug:"rs-e-tron-gt",name:"RS e-tron GT"},{slug:"rs-q3",name:"RS Q3"},{slug:"rs-q3-sportback",name:"RS Q3 Sportback"},{slug:"rs-q8",name:"RS Q8"},{slug:"rs3",name:"RS3"},{slug:"rs4",name:"RS4"},{slug:"rs5",name:"RS5"},{slug:"rs6",name:"RS6"},{slug:"rs7",name:"RS7"},{slug:"s-e-tron-gt",name:"S e-tron GT"},{slug:"s1",name:"S1"},{slug:"s3",name:"S3"},{slug:"s4",name:"S4"},{slug:"s5",name:"S5"},{slug:"s6",name:"S6"},{slug:"s7",name:"S7"},{slug:"s8",name:"S8"},{slug:"sq2",name:"SQ2"},{slug:"sq5",name:"SQ5"},{slug:"sq5-sportback",name:"SQ5 Sportback"},{slug:"sq6-e-tron",name:"SQ6 e-tron"},{slug:"sq7",name:"SQ7"},{slug:"sq8",name:"SQ8"},{slug:"sq8-e-tron",name:"SQ8 e-tron"},{slug:"sq8-sportback-e-tron",name:"SQ8 Sportback e-tron"},{slug:"tt",name:"TT"},{slug:"tt-rs",name:"TT RS"},{slug:"tts",name:"TT S"}],bentley:[{slug:"bentayga",name:"Bentayga"},{slug:"continental-gt",name:"Continental GT"},{slug:"continental-gtc",name:"Continental GTC"},{slug:"flying-spur",name:"Flying Spur"}],bmw:[{slug:"1-series",name:"1 Series"},{slug:"2-series",name:"2 Series"},{slug:"2-series-active-tourer",name:"2 Series Active Tourer"},{slug:"2-series-gran-coupe",name:"2 Series Gran Coupe"},{slug:"3-series",name:"3 Series"},{slug:"3-series-gran-turismo",name:"3 Series Gran Turismo"},{slug:"4-series",name:"4 Series"},{slug:"4-series-gran-coupe",name:"4 Series Gran Coupe"},{slug:"5-series",name:"5 Series"},{slug:"5-series-gran-turismo",name:"5 Series Gran Turismo"},{slug:"6-series",name:"6 Series"},{slug:"7-series",name:"7 Series"},{slug:"8-series",name:"8 Series"},{slug:"i4",name:"i4"},{slug:"i5",name:"i5"},{slug:"i7",name:"i7"},{slug:"ix",name:"iX"},{slug:"ix1",name:"iX1"},{slug:"ix2",name:"iX2"},{slug:"ix3",name:"iX3"},{slug:"m2",name:"M2"},{slug:"m3",name:"M3"},{slug:"m4",name:"M4"},{slug:"m5",name:"M5"},{slug:"m8",name:"M8"},{slug:"x1",name:"X1"},{slug:"x2",name:"X2"},{slug:"x3",name:"X3"},{slug:"x3-m",name:"X3 M"},{slug:"x4",name:"X4"},{slug:"x4-m",name:"X4 M"},{slug:"x5",name:"X5"},{slug:"x5-m",name:"X5 M"},{slug:"x6",name:"X6"},{slug:"x6-m",name:"X6 M"},{slug:"x7",name:"X7"},{slug:"xm",name:"XM"},{slug:"z4",name:"Z4"}],"bmw-alpina":[{slug:"b10",name:"B10"},{slug:"b3",name:"B3"},{slug:"b4",name:"B4"},{slug:"b8",name:"B8"},{slug:"xb7",name:"XB7"},{slug:"xd3",name:"XD3"}],byd:[{slug:"atto-1",name:"Atto 1"},{slug:"atto-3",name:"Atto 3"},{slug:"sea-lion-6",name:"Sealion 6"},{slug:"seal",name:"Seal"},{slug:"sealion-5",name:"Sealion 5"},{slug:"sealion-7",name:"Sealion 7"},{slug:"sealion-8",name:"Sealion 8"},{slug:"shark-6",name:"Shark 6"}],cadillac:[{slug:"lyriq",name:"Lyriq"}],chery:[{slug:"j1",name:"J1"},{slug:"j11",name:"J11"},{slug:"j3",name:"J3"},{slug:"omoda-5",name:"Omoda 5"},{slug:"omoda-5-gt",name:"Omoda 5 GT"},{slug:"omoda-e5",name:"Omoda E5"},{slug:"tiggo-4",name:"Tiggo 4"},{slug:"tiggo-4-pro",name:"Tiggo 4 Pro"},{slug:"tiggo-7",name:"Tiggo 7"},{slug:"tiggo-7-pro",name:"Tiggo 7 Pro"},{slug:"tiggo-8",name:"Tiggo 8"},{slug:"tiggo-8-pro-max",name:"Tiggo 8 Pro Max"}],citroen:[{slug:"c3",name:"C3"},{slug:"c3-aircross",name:"C3 Aircross"},{slug:"c4",name:"C4"},{slug:"c5-aircross",name:"C5 Aircross"}],cupra:[{slug:"ateca",name:"Ateca"},{slug:"born",name:"Born"},{slug:"formentor",name:"Formentor"},{slug:"leon",name:"Leon"},{slug:"tavascan",name:"Tavascan"},{slug:"terramar",name:"Terramar"}],daihatsu:[{slug:"charade",name:"Charade"}],datsun:[{slug:"240z",name:"240Z"},{slug:"260z",name:"260Z"},{slug:"280z",name:"280Z"},{slug:"280zx",name:"280ZX"}],deepal:[{slug:"e07",name:"E07"},{slug:"s07",name:"S07"}],denza:[{slug:"b5",name:"B5"},{slug:"b8",name:"B8"},{slug:"d9",name:"D9"}],dodge:[{slug:"avenger",name:"Avenger"}],ds:[{slug:"ds-3",name:"DS 3"},{slug:"ds-4",name:"DS 4"},{slug:"ds-7",name:"DS 7"}],ferrari:[{slug:"12cilindri",name:"12Cilindri"},{slug:"12cilindri-spider",name:"12Cilindri Spider"},{slug:"296-gt3",name:"296 GT3"},{slug:"296-gtb",name:"296 GTB"},{slug:"296-gts",name:"296 GTS"},{slug:"296-speciale",name:"296 Speciale"},{slug:"296-speciale-a",name:"296 Speciale A"},{slug:"458-italia",name:"458 Italia"},{slug:"458-speciale",name:"458 Speciale"},{slug:"458-speciale-a",name:"458 Speciale A"},{slug:"458-spider",name:"458 Spider"},{slug:"488-gtb",name:"488 GTB"},{slug:"488-pista",name:"488 Pista"},{slug:"488-pista-spider",name:"488 Pista Spider"},{slug:"488-spider",name:"488 Spider"},{slug:"812-competizione",name:"812 Competizione"},{slug:"812-competizione-a",name:"812 Competizione A"},{slug:"812-gts",name:"812 GTS"},{slug:"812-superfast",name:"812 Superfast"},{slug:"849-testarossa",name:"849 Testarossa"},{slug:"amalfi",name:"Amalfi"},{slug:"daytona-sp3",name:"Daytona SP3"},{slug:"f8-spider",name:"F8 Spider"},{slug:"f8-tributo",name:"F8 Tributo"},{slug:"f80",name:"F80"},{slug:"ff",name:"FF"},{slug:"gtc4-lusso",name:"GTC4Lusso"},{slug:"monza-sp1",name:"Monza SP1"},{slug:"monza-sp2",name:"Monza SP2"},{slug:"portofino",name:"Portofino"},{slug:"roma",name:"Roma"},{slug:"sf90-spider",name:"SF90 Spider"},{slug:"sf90-stradale",name:"SF90 Stradale"},{slug:"sf90-xx-spider",name:"SF90 XX Spider"},{slug:"sf90-xx-stradale",name:"SF90 XX Stradale"}],fiat:[{slug:"500",name:"500"},{slug:"500c",name:"500C"},{slug:"500e",name:"500e"},{slug:"595",name:"595"},{slug:"695",name:"695"},{slug:"ducato",name:"Ducato"},{slug:"ritmo",name:"Ritmo"}],ford:[{slug:"capri",name:"Capri"},{slug:"cougar",name:"Cougar"},{slug:"courier",name:"Courier"},{slug:"e-transit",name:"E-Transit"},{slug:"endura",name:"Endura"},{slug:"escape",name:"Escape"},{slug:"everest",name:"Everest"},{slug:"f-150",name:"F-150"},{slug:"fairlane",name:"Fairlane"},{slug:"fairmont",name:"Fairmont"},{slug:"falcon",name:"Falcon"},{slug:"fiesta",name:"Fiesta"},{slug:"laser",name:"Laser"},{slug:"ltd",name:"LTD"},{slug:"mustang",name:"Mustang"},{slug:"mustang-mach-e",name:"Mustang Mach-E"},{slug:"probe",name:"Probe"},{slug:"puma",name:"Puma"},{slug:"ranger",name:"Ranger"},{slug:"taurus",name:"Taurus"},{slug:"territory",name:"Territory"},{slug:"tourneo-custom",name:"Tourneo Custom"},{slug:"transit",name:"Transit"},{slug:"transit-custom",name:"Transit Custom"}],foton:[{slug:"tunland",name:"Tunland"}],geely:[{slug:"ex5",name:"EX5"},{slug:"riddara-rd6",name:"Riddara RD6"},{slug:"starray-em-i",name:"Starray EM-i"}],genesis:[{slug:"g70",name:"G70"},{slug:"g80",name:"G80"},{slug:"gv60",name:"GV60"},{slug:"gv70",name:"GV70"},{slug:"gv80",name:"GV80"}],"great-wall":[{slug:"cannon",name:"Cannon"},{slug:"cannon-alpha",name:"Cannon Alpha"},{slug:"ora",name:"Ora"},{slug:"steed",name:"Steed"},{slug:"ute",name:"Ute"}],haval:[{slug:"h6",name:"H6"},{slug:"h6gt",name:"H6 GT"},{slug:"jolion",name:"Jolion"},{slug:"jolion-s",name:"Jolion S"}],holden:[{slug:"acadia",name:"Acadia"},{slug:"adventra",name:"Adventra"},{slug:"apollo",name:"Apollo"},{slug:"astra",name:"Astra"},{slug:"astra-gtc",name:"Astra GTC"},{slug:"astra-vxr",name:"Astra VXR"},{slug:"barina",name:"Barina"},{slug:"barina-spark",name:"Barina Spark"},{slug:"caprice",name:"Caprice"},{slug:"captiva",name:"Captiva"},{slug:"captiva-5",name:"Captiva 5"},{slug:"captiva-7",name:"Captiva 7"},{slug:"cascada",name:"Cascada"},{slug:"colorado",name:"Colorado"},{slug:"colorado-7",name:"Colorado 7"},{slug:"commodore",name:"Commodore"},{slug:"crewman",name:"Crewman"},{slug:"cruze",name:"Cruze"},{slug:"equinox",name:"Equinox"},{slug:"frontera",name:"Frontera"},{slug:"insignia-vxr",name:"Insignia VXR"},{slug:"jackaroo",name:"Jackaroo"},{slug:"malibu",name:"Malibu"},{slug:"monaro",name:"Monaro"},{slug:"one-tonner",name:"One Tonner"},{slug:"rodeo",name:"Rodeo"},{slug:"spark",name:"Spark"},{slug:"suburban",name:"Suburban"},{slug:"tigra",name:"Tigra"},{slug:"trailblazer",name:"Trailblazer"},{slug:"trax",name:"Trax"},{slug:"ute",name:"Ute"},{slug:"vectra",name:"Vectra"},{slug:"viva",name:"Viva"},{slug:"volt",name:"Volt"},{slug:"zafira",name:"Zafira"}],honda:[{slug:"accord",name:"Accord"},{slug:"accord-euro",name:"Accord Euro"},{slug:"city",name:"City"},{slug:"civic",name:"Civic"},{slug:"civic-5d",name:"Civic 5d"},{slug:"civic-type-r",name:"Civic Type R"},{slug:"cr-v",name:"CR-V"},{slug:"hr-v",name:"HR-V"},{slug:"jazz",name:"Jazz"},{slug:"jazz-crosstar",name:"Jazz Crosstar"},{slug:"legend",name:"Legend"},{slug:"odyssey",name:"Odyssey"},{slug:"s2000",name:"S2000"},{slug:"zr-v",name:"ZR-V"}],hyundai:[{slug:"accent",name:"Accent"},{slug:"elantra",name:"Elantra"},{slug:"elantra-lavita",name:"Elantra LaVita"},{slug:"i20-n",name:"i20 N"},{slug:"i30",name:"i30"},{slug:"i30-fastback-n",name:"i30 Fastback N"},{slug:"i30-n",name:"i30 N"},{slug:"i30-sedan",name:"i30 Sedan"},{slug:"i30-sedan-n",name:"i30 Sedan N"},{slug:"i45",name:"i45"},{slug:"iload",name:"iLoad"},{slug:"imax",name:"iMax"},{slug:"inster",name:"Inster"},{slug:"ioniq",name:"IONIQ"},{slug:"ioniq-5",name:"IONIQ 5"},{slug:"ioniq-5-n",name:"IONIQ 5 N"},{slug:"ioniq-6",name:"IONIQ 6"},{slug:"ioniq-6-n",name:"IONIQ 6 N"},{slug:"ioniq-9",name:"IONIQ 9"},{slug:"ix35",name:"ix35"},{slug:"kona",name:"Kona"},{slug:"kona-n",name:"Kona N"},{slug:"mighty",name:"Mighty"},{slug:"nexo",name:"Nexo"},{slug:"palisade",name:"Palisade"},{slug:"santa-fe",name:"Santa Fe"},{slug:"sonata",name:"Sonata"},{slug:"staria",name:"Staria"},{slug:"tucson",name:"Tucson"},{slug:"venue",name:"Venue"}],ineos:[{slug:"grenadier",name:"Grenadier"}],isuzu:[{slug:"d-max",name:"D-MAX"},{slug:"mu-x",name:"mu-X"}],iveco:[{slug:"daily",name:"Daily"}],jac:[{slug:"t9",name:"T9"}],jaecoo:[{slug:"j5",name:"J5"},{slug:"j7",name:"J7"}],jaguar:[{slug:"e-pace",name:"E-Pace"},{slug:"f-pace",name:"F-Pace"},{slug:"f-type",name:"F-Type"},{slug:"i-pace",name:"I-Pace"},{slug:"xe",name:"XE"},{slug:"xf",name:"XF"}],jeep:[{slug:"avenger",name:"Avenger"},{slug:"cherokee",name:"Cherokee"},{slug:"compass",name:"Compass"},{slug:"gladiator",name:"Gladiator"},{slug:"grand-cherokee",name:"Grand Cherokee"},{slug:"grand-cherokee-l",name:"Grand Cherokee L"},{slug:"renegade",name:"Renegade"},{slug:"wrangler",name:"Wrangler"}],"kg-mobility":[{slug:"actyon",name:"Actyon"},{slug:"korando",name:"Korando"},{slug:"musso",name:"Musso"},{slug:"musso-ev",name:"Musso EV"},{slug:"rexton",name:"Rexton"},{slug:"torres",name:"Torres"}],kia:[{slug:"carnival",name:"Carnival"},{slug:"cerato",name:"Cerato"},{slug:"ev3",name:"EV3"},{slug:"ev4",name:"EV4"},{slug:"ev5",name:"EV5"},{slug:"ev6",name:"EV6"},{slug:"ev9",name:"EV9"},{slug:"grand-carnival",name:"Grand Carnival"},{slug:"k4",name:"K4"},{slug:"mentor",name:"Mentor"},{slug:"niro",name:"Niro"},{slug:"niro-plus",name:"Niro Plus"},{slug:"optima",name:"Optima"},{slug:"picanto",name:"Picanto"},{slug:"picanto-x-line",name:"Picanto X-Line"},{slug:"rio",name:"Rio"},{slug:"rondo",name:"Rondo"},{slug:"seltos",name:"Seltos"},{slug:"sorento",name:"Sorento"},{slug:"sportage",name:"Sportage"},{slug:"stinger",name:"Stinger"},{slug:"stonic",name:"Stonic"},{slug:"tasman",name:"Tasman"}],lamborghini:[{slug:"aventador",name:"Aventador"},{slug:"countach",name:"Countach"},{slug:"huracan",name:"Huracan"},{slug:"revuelto",name:"Revuelto"},{slug:"sian",name:"Sian"},{slug:"temerario",name:"Temerario"},{slug:"urus",name:"Urus"}],"land-rover":[{slug:"defender",name:"Defender"},{slug:"discovery-5",name:"Discovery 5"},{slug:"discovery-sport",name:"Discovery Sport"},{slug:"range-rover",name:"Range Rover"},{slug:"range-rover-evoque",name:"Range Rover Evoque"},{slug:"range-rover-sport",name:"Range Rover Sport"},{slug:"range-rover-velar",name:"Range Rover Velar"}],ldv:[{slug:"d90",name:"D90"},{slug:"deliver-7",name:"Deliver 7"},{slug:"deliver-9",name:"Deliver 9"},{slug:"edeliver-3",name:"eDeliver 3"},{slug:"edeliver-7",name:"eDeliver 7"},{slug:"edeliver-9",name:"eDeliver 9"},{slug:"et60",name:"eT60"},{slug:"g10",name:"G10"},{slug:"mifa",name:"Mifa People Mover"},{slug:"mifa-9",name:"Mifa 9"},{slug:"t60",name:"T60"},{slug:"terron-9",name:"Terron 9"},{slug:"v80",name:"V80"}],leapmotor:[{slug:"b10",name:"B10"},{slug:"c10",name:"C10"}],lexus:[{slug:"es",name:"ES"},{slug:"gx",name:"GX"},{slug:"is",name:"IS"},{slug:"lbx",name:"LBX"},{slug:"lc",name:"LC"},{slug:"lm",name:"LM"},{slug:"ls",name:"LS"},{slug:"lx",name:"LX"},{slug:"nx",name:"NX"},{slug:"rc-f",name:"RC F"},{slug:"rx",name:"RX"},{slug:"rz",name:"RZ"},{slug:"ux",name:"UX"}],lotus:[{slug:"eletre",name:"Eletre"},{slug:"emeya",name:"Emeya"},{slug:"emira",name:"Emira"},{slug:"evija",name:"Evija"}],mahindra:[{slug:"genio",name:"Genio"},{slug:"pik-up",name:"Pik Up"},{slug:"scorpio-n",name:"Scorpio-N"},{slug:"xuv500",name:"XUV500"},{slug:"xuv700",name:"XUV700"}],maserati:[{slug:"ghibli",name:"Ghibli"},{slug:"gran-turismo",name:"GranTurismo"},{slug:"grancabrio",name:"GranCabrio"},{slug:"grecale",name:"Grecale"},{slug:"gt2-stradale",name:"GT2 Stradale"},{slug:"levante",name:"Levante"},{slug:"mc20",name:"MC20"},{slug:"mcpura",name:"MCPura"},{slug:"quattroporte",name:"Quattroporte"}],mazda:[{slug:"6e",name:"6e"},{slug:"929",name:"929"},{slug:"bravo",name:"Bravo"},{slug:"bt-50",name:"BT-50"},{slug:"cx-3",name:"CX-3"},{slug:"cx-30",name:"CX-30"},{slug:"cx-5",name:"CX-5"},{slug:"cx-60",name:"CX-60"},{slug:"cx-70",name:"CX-70"},{slug:"cx-8",name:"CX-8"},{slug:"cx-80",name:"CX-80"},{slug:"cx-9",name:"CX-9"},{slug:"cx-90",name:"CX-90"},{slug:"mazda2",name:"Mazda2"},{slug:"mazda3",name:"Mazda3"},{slug:"mazda3-mps",name:"Mazda3 MPS"},{slug:"mazda6",name:"Mazda6"},{slug:"mx-30",name:"MX-30"},{slug:"mx-5",name:"MX-5"},{slug:"mx-5-rf",name:"MX-5 RF"},{slug:"rx-7",name:"RX-7"}],mclaren:[{slug:"720s",name:"720S"},{slug:"720s-spider",name:"720S Spider"},{slug:"750s",name:"750S"},{slug:"765lt",name:"765LT"},{slug:"765lt-spider",name:"765LT Spider"},{slug:"artura",name:"Artura"},{slug:"gt",name:"GT"},{slug:"gts",name:"GTS"},{slug:"mp4-12c",name:"Mp4-12C"},{slug:"senna",name:"Senna"},{slug:"speedtail",name:"Speedtail"},{slug:"w1",name:"W1"}],mercedes:[{slug:"a-class",name:"A-Class"},{slug:"a-class-amg",name:"A-Class AMG"},{slug:"c-class",name:"C-Class"},{slug:"c-class-amg",name:"C-Class AMG"},{slug:"cla-class",name:"CLA-Class"},{slug:"cla-class-amg",name:"CLA-Class AMG"},{slug:"cle-class",name:"CLE-Class"},{slug:"cls-class-amg",name:"CLS-Class AMG"},{slug:"e-class",name:"E-Class"},{slug:"e-class-amg",name:"E-Class AMG"},{slug:"e-class-cabrio",name:"E-Class Cabriolet"},{slug:"e-class-coupe",name:"E-Class Coupe"},{slug:"eqa",name:"EQA"},{slug:"eqb",name:"EQB"},{slug:"eqc",name:"EQC"},{slug:"eqe",name:"EQE"},{slug:"eqe-amg",name:"EQE AMG"},{slug:"eqe-suv",name:"EQE SUV"},{slug:"eqe-suv-amg",name:"EQE SUV AMG"},{slug:"eqs",name:"EQS"},{slug:"eqs-amg",name:"EQS AMG"},{slug:"eqs-suv",name:"EQS SUV"},{slug:"eqv",name:"EQV"},{slug:"g-class",name:"G-Class"},{slug:"g-class-amg",name:"G-Class AMG"},{slug:"gla",name:"GLA-Class"},{slug:"gla-class-amg",name:"GLA-Class AMG"},{slug:"glb",name:"GLB-Class"},{slug:"glb-class-amg",name:"GLB-Class AMG"},{slug:"glc",name:"GLC-Class"},{slug:"glc-class-amg",name:"GLC-Class AMG"},{slug:"glc-class-coupe",name:"GLC-Class Coupe"},{slug:"glc-class-coupe-amg",name:"GLC-Class Coupe AMG"},{slug:"gle-class",name:"GLE-Class"},{slug:"gle-class-amg",name:"GLE-Class AMG"},{slug:"gle-class-coupe",name:"GLE-Class Coupe"},{slug:"gle-class-coupe-amg",name:"GLE-Class Coupe AMG"},{slug:"gls-class",name:"GLS-Class"},{slug:"gls-class-amg",name:"GLS-Class AMG"},{slug:"s-class",name:"S-Class"},{slug:"sprinter",name:"Sprinter"},{slug:"v-class",name:"V-Class"},{slug:"x-class",name:"X-Class"}],"mercedes-maybach":[{slug:"eqs",name:"EQS"},{slug:"gls-class",name:"GLS-Class"},{slug:"s-class",name:"S-Class"}],mg:[{slug:"3",name:"3"},{slug:"350",name:"350"},{slug:"4",name:"4"},{slug:"5",name:"5"},{slug:"6",name:"6"},{slug:"cyberster",name:"Cyberster"},{slug:"gs",name:"GS"},{slug:"hs",name:"HS"},{slug:"im5",name:"IM5"},{slug:"im6",name:"IM6"},{slug:"qs",name:"QS"},{slug:"s5",name:"S5"},{slug:"u9",name:"MGU9"},{slug:"zs",name:"ZS"},{slug:"zs-ev",name:"ZS EV"},{slug:"zst",name:"ZST"}],mini:[{slug:"aceman",name:"Aceman"},{slug:"clubman",name:"Clubman"},{slug:"convertible",name:"Convertible"},{slug:"cooper",name:"Cooper"},{slug:"countryman",name:"Countryman"},{slug:"hatch",name:"Hatch"}],mitsubishi:[{slug:"asx",name:"ASX"},{slug:"challenger",name:"Challenger"},{slug:"eclipse-cross",name:"Eclipse Cross"},{slug:"express",name:"Express"},{slug:"l200",name:"L200"},{slug:"magna",name:"Magna"},{slug:"mirage",name:"Mirage"},{slug:"nimbus",name:"Nimbus"},{slug:"outlander",name:"Outlander"},{slug:"pajero-sport",name:"Pajero Sport"},{slug:"triton",name:"Triton"},{slug:"verada",name:"Verada"}],nissan:[{slug:"200sx",name:"200SX"},{slug:"280zx",name:"280ZX"},{slug:"300zx",name:"300ZX"},{slug:"370z",name:"370Z"},{slug:"almera",name:"Almera"},{slug:"altima",name:"Altima"},{slug:"ariya",name:"Ariya"},{slug:"bluebird",name:"Bluebird"},{slug:"dualis",name:"Dualis"},{slug:"dualis-2",name:"Dualis+2"},{slug:"gt-r",name:"GT-R"},{slug:"juke",name:"Juke"},{slug:"leaf",name:"Leaf"},{slug:"maxima",name:"Maxima"},{slug:"micra",name:"Micra"},{slug:"navara",name:"Navara"},{slug:"np300-navara",name:"NP300 Navara"},{slug:"pathfinder",name:"Pathfinder"},{slug:"patrol",name:"Patrol"},{slug:"patrol-cab-chassis",name:"Patrol Cab Chassis"},{slug:"pulsar",name:"Pulsar"},{slug:"qashqai",name:"Qashqai"},{slug:"x-trail",name:"X-Trail"},{slug:"z",name:"Z"}],omoda:[{slug:"9",name:"9"},{slug:"c5",name:"C5"},{slug:"e5",name:"E5"}],opel:[{slug:"astra",name:"Astra"},{slug:"grandland",name:"Grandland"},{slug:"mokka",name:"Mokka"}],ora:[{slug:"03",name:"03"}],peugeot:[{slug:"2008",name:"2008"},{slug:"208",name:"208"},{slug:"3008",name:"3008"},{slug:"308",name:"308"},{slug:"408",name:"408"},{slug:"5008",name:"5008"},{slug:"508",name:"508"},{slug:"boxer",name:"Boxer"},{slug:"expert",name:"Expert"},{slug:"partner",name:"Partner"}],polaris:[{slug:"general-xp",name:"General XP 1000"},{slug:"general-xp-4",name:"General XP 4 1000"},{slug:"ranger-crew-xd",name:"Ranger Crew XD 1500"},{slug:"ranger-crew-xp",name:"Ranger Crew XP 1000"},{slug:"ranger-xd",name:"Ranger XD 1500"},{slug:"ranger-xp",name:"Ranger XP 1000"},{slug:"rzr-pro-r",name:"RZR Pro R"},{slug:"rzr-pro-r-4",name:"RZR Pro R 4"},{slug:"rzr-pro-xp",name:"RZR Pro XP"},{slug:"rzr-xp",name:"RZR XP 1000"},{slug:"rzr-xp-4",name:"RZR XP 4 1000"},{slug:"xpedition-adv",name:"Xpedition ADV"},{slug:"xpedition-adv-5",name:"Xpedition ADV 5"},{slug:"xpedition-xp",name:"Xpedition XP"},{slug:"xpedition-xp-5",name:"Xpedition XP 5"}],polestar:[{slug:"polestar-1",name:"Polestar 1"},{slug:"polestar-2",name:"Polestar 2"},{slug:"polestar-3",name:"Polestar 3"},{slug:"polestar-4",name:"Polestar 4"},{slug:"polestar-5",name:"Polestar 5"}],porsche:[{slug:"718",name:"718"},{slug:"911",name:"911"},{slug:"928",name:"928"},{slug:"cayenne",name:"Cayenne"},{slug:"macan",name:"Macan"},{slug:"panamera",name:"Panamera"},{slug:"taycan",name:"Taycan"}],proton:[{slug:"exora",name:"Exora"},{slug:"gen-2",name:"Gen-2"},{slug:"jumbuck",name:"Jumbuck"},{slug:"persona",name:"Persona"},{slug:"preve",name:"Preve"},{slug:"s16",name:"S16"},{slug:"satria",name:"Satria"},{slug:"savvy",name:"Savvy"},{slug:"suprima",name:"Suprima S"},{slug:"waja",name:"Waja"}],ram:[{slug:"1500",name:"1500"},{slug:"1500-classic",name:"1500 Classic"},{slug:"1500-trx",name:"1500 TRX"},{slug:"2500",name:"2500"},{slug:"3500",name:"3500"}],renault:[{slug:"arkana",name:"Arkana"},{slug:"captur",name:"Captur"},{slug:"duster",name:"Duster"},{slug:"kangoo",name:"Kangoo"},{slug:"kangoo-van",name:"Kangoo Van"},{slug:"koleos",name:"Koleos"},{slug:"latitude",name:"Latitude"},{slug:"master",name:"Master"},{slug:"megane-e-tech",name:"Megane E-Tech"},{slug:"scenic-e-tech",name:"Scenic E-Tech"},{slug:"trafic",name:"Trafic"}],seat:[{slug:"arona",name:"Arona"},{slug:"ateca",name:"Ateca"},{slug:"leon",name:"Leon"},{slug:"tarraco",name:"Tarraco"}],skoda:[{slug:"elroq",name:"Elroq"},{slug:"enyaq-iv",name:"Enyaq"},{slug:"fabia",name:"Fabia"},{slug:"kamiq",name:"Kamiq"},{slug:"karoq",name:"Karoq"},{slug:"kodiaq",name:"Kodiaq"},{slug:"octavia",name:"Octavia"},{slug:"rapid",name:"Rapid"},{slug:"scala",name:"Scala"},{slug:"superb",name:"Superb"},{slug:"superb-scout",name:"Superb Scout"},{slug:"yeti",name:"Yeti"}],smart:[{slug:"1",name:"#1"},{slug:"3",name:"#3"},{slug:"roadster",name:"Roadster"}],ssangyong:[{slug:"korando",name:"Korando"},{slug:"kyron",name:"Kyron"},{slug:"musso",name:"Musso"},{slug:"rexton",name:"Rexton"},{slug:"rhino",name:"Rhino"},{slug:"stavic",name:"Stavic"},{slug:"tivoli",name:"Tivoli"}],subaru:[{slug:"brz",name:"BRZ"},{slug:"crosstrek",name:"Crosstrek"},{slug:"forester",name:"Forester"},{slug:"impreza",name:"Impreza"},{slug:"liberty",name:"Liberty"},{slug:"outback",name:"Outback"},{slug:"solterra",name:"Solterra"},{slug:"wrx",name:"WRX"},{slug:"wrx-sti",name:"WRX STI"},{slug:"xv",name:"XV"}],suzuki:[{slug:"baleno",name:"Baleno"},{slug:"fronx",name:"Fronx"},{slug:"ignis",name:"Ignis"},{slug:"jimny",name:"Jimny"},{slug:"s-cross",name:"S-Cross"},{slug:"swift",name:"Swift"},{slug:"swift-sport",name:"Swift Sport"},{slug:"vitara",name:"Vitara"}],tank:[{slug:"300",name:"300"},{slug:"500",name:"500"}],tesla:[{slug:"cybertruck",name:"Cybertruck"},{slug:"model-3",name:"Model 3"},{slug:"model-s",name:"Model S"},{slug:"model-x",name:"Model X"},{slug:"model-y",name:"Model Y"}],toyota:[{slug:"86",name:"86"},{slug:"aurion",name:"Aurion"},{slug:"avalon",name:"Avalon"},{slug:"avensis-verso",name:"Avensis Verso"},{slug:"bz4x",name:"bZ4X"},{slug:"c-hr",name:"C-HR"},{slug:"camry",name:"Camry"},{slug:"corolla",name:"Corolla"},{slug:"corolla-cross",name:"Corolla Cross"},{slug:"echo",name:"Echo"},{slug:"fortuner",name:"Fortuner"},{slug:"gr-corolla",name:"GR Corolla"},{slug:"gr-yaris",name:"GR Yaris"},{slug:"gr86",name:"GR86"},{slug:"granvia",name:"Granvia"},{slug:"hiace",name:"Hiace"},{slug:"hilux",name:"Hilux"},{slug:"kluger",name:"Kluger"},{slug:"land-cruiser",name:"Land Cruiser"},{slug:"land-cruiser-prado",name:"Land Cruiser Prado"},{slug:"prius",name:"Prius"},{slug:"prius-c",name:"Prius c"},{slug:"prius-v",name:"Prius v"},{slug:"rav4",name:"RAV4"},{slug:"rukus",name:"Rukus"},{slug:"supra",name:"Supra"},{slug:"tarago",name:"Tarago"},{slug:"tundra",name:"Tundra"},{slug:"vienta",name:"Vienta"},{slug:"yaris",name:"Yaris"},{slug:"yaris-cross",name:"Yaris Cross"}],triumph:[{slug:"tr7",name:"TR7"}],volkswagen:[{slug:"amarok",name:"Amarok"},{slug:"beetle",name:"Beetle"},{slug:"caddy",name:"Caddy"},{slug:"california",name:"California"},{slug:"caravelle",name:"Caravelle"},{slug:"cc",name:"CC"},{slug:"crafter",name:"Crafter"},{slug:"golf",name:"Golf"},{slug:"golf-alltrack",name:"Golf Alltrack"},{slug:"golf-gti",name:"Golf GTI"},{slug:"golf-r",name:"Golf R"},{slug:"grand-california",name:"Grand California"},{slug:"id-buzz",name:"ID. Buzz"},{slug:"id4",name:"ID.4"},{slug:"id5",name:"ID.5"},{slug:"multivan",name:"Multivan"},{slug:"passat",name:"Passat"},{slug:"passat-alltrack",name:"Passat Alltrack"},{slug:"polo",name:"Polo"},{slug:"polo-gti",name:"Polo GTI"},{slug:"t-cross",name:"T-Cross"},{slug:"t-roc",name:"T-Roc"},{slug:"t-roc-r",name:"T-Roc R"},{slug:"tiguan",name:"Tiguan"},{slug:"tiguan-allspace",name:"Tiguan Allspace"},{slug:"touareg",name:"Touareg"},{slug:"transporter",name:"Transporter"}],volvo:[{slug:"c40",name:"C40"},{slug:"es90",name:"ES90"},{slug:"ex30",name:"EX30"},{slug:"ex40",name:"EX40"},{slug:"ex90",name:"EX90"},{slug:"s60",name:"S60"},{slug:"s60-cross-country",name:"S60 Cross Country"},{slug:"s90",name:"S90"},{slug:"v60-cross-country",name:"V60 Cross Country"},{slug:"v90-cross-country",name:"V90 Cross Country"},{slug:"xc40",name:"XC40"},{slug:"xc60",name:"XC60"},{slug:"xc90",name:"XC90"}],zeekr:[{slug:"009",name:"009"},{slug:"x",name:"X"}]},years:{"audi/rs6":[2026,2025,2024,2023,2022,2021,2020],"bmw/m3":[2026,2025,2024,2023,2022,2021,2020,2018,2017,2016,2015,2014],"ferrari/296-gtb":[2026,2025,2024,2023,2022],"lamborghini/huracan":[2024,2023,2022,2021,2020,2019],"mclaren/750s":[2026,2025,2024,2023],"mercedes/c-class-amg":[2026,2025,2024,2023,2022,2021,2020,2019,2018,2017,2016],"nissan/gt-r":[2023,2022,2021,2020,2019,2018,2017,2016],"tesla/model-3":[2026,2025,2024,2023,2022,2021,2020,2019,2018,2017],"toyota/supra":[2026,2025,2024,2023,2022,2021,1993,1992,1991,1990,1989,1988,1987,1986]},modifications:{"audi/rs6/2024":[{slug:"a28ff79ddf",name:"4.0 TFSi quattro",trim:"4.0 TFSi quattro",body:null}],"bmw/m3/2024":[{slug:"0aaf0bb46d",name:"M3",trim:"M3",body:null},{slug:"402e65e913",name:"M3 Competition",trim:"M3 Competition",body:null},{slug:"4c760df5c5",name:"M3 Competition xDrive",trim:"M3 Competition xDrive",body:null},{slug:"6250847bc8",name:"M3 Competition xDrive",trim:"M3 Competition xDrive",body:null},{slug:"82f59cadb0",name:"M3",trim:"M3",body:null}],"ferrari/296-gtb/2024":[{slug:"c412dafd12",name:"3.0",trim:"3.0",body:null}],"lamborghini/huracan/2024":[{slug:"aab49a3dae",name:"Evo 5.2",trim:"Evo 5.2",body:null},{slug:"f81a37ca20",name:"Evo 5.2",trim:"Evo 5.2",body:null}],"mclaren/750s/2024":[{slug:"f8f346c327",name:"4.0T",trim:"4.0T",body:null}],"mercedes/c-class-amg/2024":[{slug:"038122904b",name:"C 43 4Matic",trim:"C 43 4Matic",body:null},{slug:"a403e6b64c",name:"C 63 S E",trim:"C 63 S E",body:null}],"nissan/gt-r/2024":[],"tesla/model-3/2024":[{slug:"026e4ab9d6",name:"Long Range",trim:"Long Range",body:null},{slug:"4296c050a9",name:"Performance",trim:"Performance",body:null},{slug:"50f0c93d66",name:"Performance",trim:"Performance",body:null},{slug:"be5b2b9767",name:"Standard Range",trim:"Standard Range",body:null},{slug:"d4960b3833",name:"Long Range",trim:"Long Range",body:null}],"toyota/supra/2024":[{slug:"eabbd747b7",name:"3.0i",trim:"3.0i",body:null}]},meta:{modelsFetchedAt:{abarth:"2026-06-28T04:33:00.474Z",aion:"2026-06-28T04:33:01.415Z","alfa-romeo":"2026-06-28T04:33:02.355Z",alpine:"2026-06-28T04:33:03.290Z","aston-martin":"2026-06-28T04:33:04.229Z",audi:"2026-06-28T04:33:05.195Z",bentley:"2026-06-28T04:33:06.135Z",bmw:"2026-06-28T04:33:07.112Z","bmw-alpina":"2026-06-28T04:33:08.062Z",byd:"2026-06-28T04:33:09.004Z",cadillac:"2026-06-28T04:33:09.958Z",chery:"2026-06-28T04:33:10.944Z",citroen:"2026-06-28T04:33:11.887Z",cupra:"2026-06-28T04:33:12.827Z",daihatsu:"2026-06-28T04:33:13.770Z",datsun:"2026-06-28T04:33:14.721Z",deepal:"2026-06-27T04:23:59.381Z",denza:"2026-06-27T04:24:00.200Z",dodge:"2026-06-27T04:24:01.018Z",ds:"2026-06-27T04:24:01.843Z",ferrari:"2026-06-27T04:24:02.667Z",fiat:"2026-06-27T04:24:03.492Z",ford:"2026-06-27T04:24:04.311Z",foton:"2026-06-27T04:24:05.129Z",geely:"2026-06-27T04:24:05.946Z",genesis:"2026-06-27T04:24:06.764Z","great-wall":"2026-06-27T04:24:07.584Z",haval:"2026-06-27T04:24:08.402Z",holden:"2026-06-27T04:24:09.221Z",honda:"2026-06-27T04:24:10.039Z",hyundai:"2026-06-27T04:24:10.861Z",ineos:"2026-06-27T04:24:11.677Z",isuzu:"2026-06-27T04:24:12.495Z",iveco:"2026-06-28T04:32:51.940Z",jac:"2026-06-27T04:24:13.314Z",jaecoo:"2026-06-28T04:32:17.949Z",jaguar:"2026-06-28T04:32:18.902Z",jeep:"2026-06-28T04:32:19.838Z","kg-mobility":"2026-06-28T04:32:20.769Z",kia:"2026-06-28T04:32:21.710Z",lamborghini:"2026-06-28T04:32:22.641Z","land-rover":"2026-06-28T04:32:23.589Z",ldv:"2026-06-28T04:32:24.525Z",leapmotor:"2026-06-28T04:32:25.463Z",lexus:"2026-06-28T04:32:26.401Z",lotus:"2026-06-28T04:32:27.336Z",mahindra:"2026-06-28T04:32:28.278Z",maserati:"2026-06-28T04:32:29.225Z",mazda:"2026-06-28T04:32:30.189Z",mclaren:"2026-06-28T04:32:31.133Z",mercedes:"2026-06-28T04:32:32.103Z","mercedes-maybach":"2026-06-28T04:32:33.041Z",mg:"2026-06-28T04:32:33.991Z",mini:"2026-06-28T04:32:34.935Z",mitsubishi:"2026-06-28T04:32:35.884Z",nissan:"2026-06-28T04:32:36.836Z",omoda:"2026-06-28T04:32:37.789Z",opel:"2026-06-28T04:32:38.731Z",ora:"2026-06-28T04:32:39.684Z",peugeot:"2026-06-28T04:32:40.631Z",polaris:"2026-06-28T04:32:52.902Z",polestar:"2026-06-28T04:32:41.575Z",porsche:"2026-06-28T04:32:42.516Z",proton:"2026-06-28T04:32:43.459Z",ram:"2026-06-28T04:32:44.398Z",renault:"2026-06-28T04:32:45.351Z",seat:"2026-06-28T04:32:46.297Z",skoda:"2026-06-28T04:32:47.233Z",smart:"2026-06-28T04:32:48.178Z",ssangyong:"2026-06-28T04:32:49.114Z",subaru:"2026-06-28T04:32:50.052Z",suzuki:"2026-06-28T04:32:50.996Z",tank:"2026-06-28T04:32:53.840Z",tesla:"2026-06-28T04:32:54.775Z",toyota:"2026-06-28T04:32:55.749Z",triumph:"2026-06-28T04:32:56.677Z",volkswagen:"2026-06-28T04:32:57.635Z",volvo:"2026-06-28T04:32:58.582Z",zeekr:"2026-06-28T04:32:59.524Z"},popularFetchedAt:"2026-06-28T04:32:16.984Z",coverage:{covered:79,total:79}}};var u=T,x="http://localhost:8000".replace(/\/+$/,""),k=3600,M="x-efficient-shop-hop",v="".trim();async function g(a,e){let s=new URLSearchParams;for(let[y,i]of Object.entries(e))i!==void 0&&i!==""&&s.set(y,String(i));let n=s.toString(),l=`${x}/api/fitment${a}${n?`?${n}`:""}`,m={next:{revalidate:k}},[C,f]=await Promise.all([S(),b()]),o=d(C,f,p(m));v&&(o[M]=v);let t=await fetch(l,{...m,...Object.keys(o).length>0?{headers:o}:{}});if(!t.ok)throw new Error(`backend fitment ${t.status} on ${a}`);let c=await t.text();return c?JSON.parse(c):null}function r(a){return a!==void 0&&u.region===a&&(u.makes?.length??0)>0}function Z(a){if(!a)return null;let e=a.et_range;return{pcd:a.pcd||void 0,boltPattern:a.bolt_pattern||void 0,centreBore:a.centre_bore??void 0,frontWheels:a.front_wheels??[],rearWheels:a.rear_wheels??[],frontTyres:a.front_tyres??[],rearTyres:a.rear_tyres??[],etRange:e&&e[0]!==null&&e[1]!==null?[e[0],e[1]]:void 0}}var E={async makes(a){try{return await g("/makes/",{region:a})}catch(e){if(r(a))return u.makes;throw e}},async models(a,e){try{return await g("/models/",{make:a,region:e})}catch(s){let n=r(e)?u.models[a]:void 0;if(n)return n;throw s}},async years(a,e,s){try{return await g("/years/",{make:a,model:e,region:s})}catch(n){let l=r(s)?u.years[`${a}/${e}`]:void 0;if(l)return l;throw n}},async modifications(a,e,s,n){try{return await g("/modifications/",{make:a,model:e,year:s,region:n})}catch(l){let m=r(n)?u.modifications[`${a}/${e}/${s}`]:void 0;if(m)return m;throw l}},async stockFitment(a,e,s,n,l){return Z(await g("/stock-fitment/",{make:a,model:e,year:s,modification:n,region:l}))}};export{E as fitmentData};