efficient-storefront-blocks 0.13.0 → 0.15.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +17 -9
  3. package/dist/chunks/EditorPreviewCheckout-J7MWTEHJ.js +4 -0
  4. package/dist/chunks/{PreviewFooter-WL76Z4NK.js → PreviewFooter-CZAS77OV.js} +1 -1
  5. package/dist/chunks/SectionEditorShell-JUUJQRZP.js +1 -0
  6. package/dist/chunks/SiteEditorProvider-PFM6CCPW.js +1 -0
  7. package/dist/chunks/chunk-2I435NJQ.js +1 -0
  8. package/dist/chunks/chunk-2PHC572K.js +153 -0
  9. package/dist/chunks/chunk-2PHC572K.js.LEGAL.txt +5 -0
  10. package/dist/chunks/chunk-GC3WZ5PJ.js +1 -0
  11. package/dist/chunks/chunk-HBULIX4L.js +1 -0
  12. package/dist/chunks/{chunk-QL3UVEEM.js → chunk-O6RPIOGL.js} +1 -1
  13. package/dist/chunks/chunk-VG7NDFTL.js +16 -0
  14. package/dist/chunks/{chunk-I5J42GI3.js.LEGAL.txt → chunk-VG7NDFTL.js.LEGAL.txt} +1 -1
  15. package/dist/chunks/chunk-VPRUR365.js +230 -0
  16. package/dist/chunks/{fitment-data-3PTG4BJX.js → fitment-data-FSXAUWXQ.js} +1 -1
  17. package/dist/chunks/render-client-VEVVM4IW.js +1 -0
  18. package/dist/contract.js +1 -1
  19. package/dist/editor.css +1 -1
  20. package/dist/index.js +970 -3069
  21. package/dist/links.js +1 -1
  22. package/package.json +6 -6
  23. package/dist/chunks/EditorPreviewCheckout-D2J57RZY.js +0 -4
  24. package/dist/chunks/SectionEditorShell-U3CXCPYO.js +0 -1
  25. package/dist/chunks/SiteEditorProvider-5HGJJCOZ.js +0 -1
  26. package/dist/chunks/chunk-BAXOL3AI.js +0 -1
  27. package/dist/chunks/chunk-I5J42GI3.js +0 -16
  28. package/dist/chunks/chunk-MSHAAJSK.js +0 -230
  29. package/dist/chunks/chunk-NQIIJI3Z.js +0 -1
  30. package/dist/chunks/chunk-R2JQPRJX.js +0 -1
  31. package/dist/chunks/chunk-XNYKOAQ3.js +0 -153
  32. package/dist/chunks/chunk-XNYKOAQ3.js.LEGAL.txt +0 -4
  33. package/dist/chunks/render-client-DYF6CWVJ.js +0 -1
  34. /package/dist/chunks/{gallery-builds-data-SWA6XKFF.js → gallery-builds-data-VVHHVNYW.js} +0 -0
  35. /package/dist/chunks/{headers-VF4VTX37.js → headers-UYHEZDAT.js} +0 -0
@@ -0,0 +1,5 @@
1
+ Bundled license information:
2
+
3
+ dompurify/dist/purify.cjs.js:
4
+ /*! @license DOMPurify 3.4.16 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.16/LICENSE */
5
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
@@ -0,0 +1 @@
1
+ import{jsx as Te}from"react/jsx-runtime";import{createContext as Kt,useCallback as l,useContext as Zt,useMemo as Jt,useState as we}from"react";import{createContext as ie,useContext as x}from"react";import{createContext as ct}from"react";var se=ct(null);var dt=ie(null),M=ie({logo:null,placeholder:!1,wordmark:null});function mn(){let e=x(se),t=x(dt),n=x(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 _n,useSelectHandler as le}from"efficient-easel/screen/lib/puck/preview-selection-context";var yn="storefront-theme",bn="sf:theme-mode",Tn="sf:theme-switch",wn="hide",v="light";function ut(e){return e>=7&&e<18}function An(e){let{mode:t,override:n,switchShown:a,hour:o}=e;return a&&(n==="light"||n==="dark")?n:t==="auto"?ut(o)?"light":"dark":t==="light"?"light":"dark"}var g={background:"#0a0a0a",surface:"#131313",line:"#2a2a2a",muted:"#9a9388"},ht=[{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:ht};function ce(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,d)=>i(s+(o[d]-s)*n)).join("")}`}var gt={light:"#ffffff",dark:"#0a0a0a"},Cn=["light","dark"];function Ln(e,t){let n=gt[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=ce(e);return t.themes[t.selected]}function de(e){return{text:e.text,accent:e.accent,background:e.background||g.background,surface:e.surface||g.surface,line:e.line||g.line,muted:e.muted||g.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 ft=.4,mt=4.5,pt=3;function St(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 kn={good:"Good","large-only":"Large text only",hard:"Hard to read"};function In(e){return e>=mt?"good":e>=pt?"large-only":"hard"}var O=["#000000","#ffffff"];function I(e){let t=O[0],n=-1;for(let a of O){let o=St(e,a);if(o===null)return O[0];o>n&&(n=o,t=a)}return t}var _t=[.25,.4,.55];function Hn(e){let t=C(e);return t===null?[]:_t.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>=ft)&&(n["--overlay-fg"]=t.text),n}var Et=82;function G(e){return`color-mix(in srgb, ${e} ${Et}%, #000)`}function xn(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 Mn(e){let t=k(e),n=ue(t),a=he(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 he(e){let t=e?.buttonInk;return/^#[0-9a-fA-F]{6}$/.test(t??"")?t.toLowerCase():null}function Dn(e,t){return he(e)??I(ue(e)??t)}function On(e){let t={};return ce(e).themes.forEach((n,a)=>{let o=de(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 Pn=["--theme-bg","--theme-surface","--theme-surface-2","--theme-line","--theme-muted"];function Fn(e){let t=de(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!==g.surface||t.line!==g.line)&&(a["--theme-surface-2"]=n),a}var yt=["heading","body","label"];function Nn(e){if(!e)return null;for(let t of yt)if(e.includes(`--size-${t}`))return t;return/--size-heading(Large|Medium|Small)/.test(e)?"heading":null}var ge=["headingLarge","headingMedium","headingSmall","accent","body","label"];var U={headingLarge:null,headingMedium:null,headingSmall:null,accent:null,body:null,label:null},bt=8,Tt=200,vn=1;function wt(e){if(typeof e!="number"||!Number.isFinite(e))return null;let t=Math.round(e);return t>=bt&&t<=Tt?t:null}function At(e){let t={};for(let n of ge)t[n]=wt(e?.[n]);return t}function Gn(e){let t=At(e),n={};for(let a of ge){let o=t[a];o!==null&&(n[`--size-${a}`]=`${o}px`)}return n}var Ct=["square","small","large"],Lt="small";function Un(e){return Ct.includes(e??"")?e:Lt}var fe=0,kt=40,zn={square:0,small:null,large:16},It={"--sf-card-radius":1,"--sf-button-radius":.5,"--radius":.5,"--radius-xs":.25,"--radius-sm":.5,"--radius-md":.75,"--radius-lg":1,"--radius-xl":1.25,"--radius-2xl":1.5,"--radius-3xl":2,"--radius-4xl":2.5};function me(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(kt,Math.max(fe,Math.round(t))):null}function Ht(e){let t=me(e);return t===null?{}:Object.fromEntries(Object.entries(It).map(([n,a])=>{let o=t*a/16;return[n,o===0?"0":`${o}rem`]}))}function $n(e){return Ht(me(e)??fe)}var Rt=["none","soft","lifted"],xt="soft",pe="none",Mt=["tight","normal","roomy"],Dt="normal",H="normal",Ot=["none","lift","highlight"],Pt="lift",Ft="highlight",Se="#141416";function _e(e){return Rt.includes(e??"")?e:xt}function Nt(e){return Mt.includes(e??"")?e:Dt}function Ee(e){return Ot.includes(e??"")?e:Pt}function vt(e){return/^#[0-9a-fA-F]{6}$/.test(e??"")?e.toLowerCase():Se}function Bn(e){let t=_e(e);return t===pe?void 0:t}function Vn(e){let t=Nt(e);return t===H?void 0:t}function Wn(e){let t=Ee(e);return t===Ft?void 0:t}function Yn(e,t,n){let a=vt(t);return a===Se?{}:_e(e)!==pe||Ee(n)==="lift"?{"--sf-shadow-color":a}:{}}var Gt=["normal","tight","compressed"],y="normal";function ye(e){return Gt.includes(e??"")?e:y}function Xn(e){let t=ye(e);return t===y?void 0:t}function jn(e){switch(ye(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,maxPx:null,weight2:null,weight3:null,case2:"authored",case3:"authored"},P=100,F=900,Ut=24,zt=200;function A(e,t,n){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,t),n))}function $(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),maxPx:A(e?.maxPx,Ut,zt),weight2:a(e?.weight2),weight3:a(e?.weight3),case2:o(e?.case2),case3:o(e?.case3)}}function qn(e){let t=$(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 $({case:e?.heading_case??void 0,weight:e?.heading_weight,weightStrong:e?.heading_weight_strong,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})}function Zn(e){let t=$(e);return{heading_case:t.case,heading_weight:t.weight,heading_weight_strong:t.weightStrong,heading_max_px:t.maxPx,heading_2_weight:t.weight2,heading_3_weight:t.weight3,heading_2_case:t.case2,heading_3_case:t.case3}}var B=[{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}],u=new Map(B.map(e=>[e.key,e])),$t={sans:"Sans",serif:"Serif",mono:"Mono"};function Qn(){return Object.keys($t).map(e=>[e,B.filter(t=>t.category===e)]).filter(([,e])=>e.length>0)}function ea(e){return u.get(e)?.italicLoaded??!1}function ta(e){return u.get(e)}var be=["heading","heading2","heading3","body","accent","label"],na={heading:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",body:"Body",accent:"Accent",label:"Labels"},Bt=[["font-heading2","heading2"],["font-heading3","heading3"],["font-display","heading"],["font-serif","accent"],["font-mono","label"],["font-body","body"]],Vt=/var\(--size-(headingLarge|headingMedium|headingSmall|accent|body|label)\s*,/,aa={heading:"headingLarge",heading2:"headingMedium",heading3:"headingSmall",accent:"accent",body:"body",label:"label"},Wt={headingLarge:"heading",headingMedium:"heading2",headingSmall:"heading3",accent:"accent",body:"body",label:"label"};function oa(e){let t=e?Vt.exec(e):null;return t?Wt[t[1]]??null:Yt(e)}function Yt(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 Bt)if(t.includes(n))return a;return null}var Xt=["heading","heading2","heading3"];function ra(e){return Xt.includes(e)}var h={heading:"space-grotesk",heading2:"space-grotesk",heading3:"space-grotesk",body:"inter",accent:"fraunces",label:"jetbrains-mono"};function jt(e){let t=n=>{let a=e?.[n];if(a&&u.has(a))return a;if(n==="heading2"||n==="heading3"){let o=e?.heading;return o&&u.has(o)?o:h.heading}return h[n]};return Object.fromEntries(be.map(n=>[n,t(n)]))}function qt(e,t){return u.get(e[t])??u.get(h[t])}function f(e,t){return`var(${qt(e,t).cssVar})`}var sa=[...new Set(be.map(e=>u.get(h[e]).cssVar))],ia=[...new Set(B.map(e=>e.cssVar))];function la(e){let t=jt(e);return{"--font-role-heading":f(t,"heading"),"--font-role-heading2":f(t,"heading2"),"--font-role-heading3":f(t,"heading3"),"--font-role-body":f(t,"body"),"--font-role-accent":f(t,"accent"),"--font-role-label":f(t,"label"),fontFamily:"var(--font-role-body)"}}var Ce=Kt({settings:null,setSettings:()=>{},primeSettings:()=>{},websiteName:null,templateChrome:!1,templateName:null,chromePlaceholder:!1,themeMode:v,setThemeMode:()=>{},themeSwitchShown:!1,setThemeSwitchShown:()=>{},theme:L,setTheme:()=>{},fonts:h,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:()=>{},heroBackgroundFollowsWidth:null,setHeroBackgroundFollowsWidth:()=>{},photographyGrayscale:null,setPhotographyGrayscale:()=>{},themeFromDocument:!1,selected:!1,setSelected:()=>{},select:()=>{},setSelectHandler:()=>{}});function pa({children:e,websiteName:t=null,templateChrome:n=!1,templateName:a=null,chromePlaceholder:o=!1,themeMode:i=v,onThemeModeChange:s,themeSwitchShown:d=!1,onThemeSwitchShownChange:b,theme:T=L,onThemeChange:m,fonts:p=h,onFontsChange:S,sizes:_=U,onSizesChange:c,cornerRadiusPx:R=null,onCornerRadiusPxChange:w,cardShadow:ke=null,onCardShadowChange:V,shadowColor:Ie=null,onShadowColorChange:W,cardGap:He=H,onCardGapChange:Y,hoverEffect:Re=null,onHoverEffectChange:X,headingCompression:xe=y,onHeadingCompressionChange:j,siteWidth:Me=null,onSiteWidthChange:q,siteGutter:De=null,blockGap:Oe=null,onSiteGutterChange:K,onBlockGapChange:Z,headingTypography:Pe=z,onHeadingTypographyChange:J,heroBackgroundFollowsWidth:Fe=null,onHeroBackgroundFollowsWidthChange:Q,photographyGrayscale:Ne=null,onPhotographyGrayscaleChange:ee,themeFromDocument:ve=!1}){let[E,te]=we(null),Ge=l(r=>te(lt=>lt??r),[]),[Ue,ze]=we(!1),$e=l(r=>s?.(r),[s]),Be=l(r=>b?.(r),[b]),Ve=l(r=>m?.(r),[m]),We=l(r=>S?.(r),[S]),Ye=l(r=>c?.(r),[c]),Xe=l(r=>q?.(r),[q]),je=l(r=>K?.(r),[K]),qe=l(r=>Z?.(r),[Z]),Ke=l(r=>Q?.(r),[Q]),Ze=l(r=>ee?.(r),[ee]),Je=l(r=>w?.(r),[w]),Qe=l(r=>V?.(r),[V]),et=l(r=>W?.(r),[W]),tt=l(r=>Y?.(r),[Y]),nt=l(r=>X?.(r),[X]),at=l(r=>j?.(r),[j]),ot=l(r=>J?.(r),[J]),{select:rt,setSelectHandler:st}=le(),ne=E?.logoUrl,ae=E?.logoReversed,oe=E?.logoInkIsDark,re=E!==null,it=Jt(()=>({logo:re?{logoUrl:ne,logoReversed:ae,logoInkIsDark:oe}:null,placeholder:n||o,wordmark:n?a:t}),[re,ne,ae,oe,n,o,a,t]);return Te(M.Provider,{value:it,children:Te(Ce.Provider,{value:{settings:E,setSettings:te,primeSettings:Ge,websiteName:t,templateChrome:n,templateName:a,chromePlaceholder:o,themeMode:i,setThemeMode:$e,themeSwitchShown:d,setThemeSwitchShown:Be,theme:T,setTheme:Ve,fonts:p,setFonts:We,sizes:_,setSizes:Ye,cornerRadiusPx:R,setCornerRadiusPx:Je,cardShadow:ke,setCardShadow:Qe,shadowColor:Ie,setShadowColor:et,cardGap:He,setCardGap:tt,hoverEffect:Re,setHoverEffect:nt,headingCompression:xe,setHeadingCompression:at,siteWidth:Me,setSiteWidth:Xe,siteGutter:De,blockGap:Oe,setSiteGutter:je,setBlockGap:qe,headingTypography:Pe,setHeadingTypography:ot,heroBackgroundFollowsWidth:Fe,setHeroBackgroundFollowsWidth:Ke,photographyGrayscale:Ne,setPhotographyGrayscale:Ze,themeFromDocument:ve,selected:Ue,setSelected:ze,select:rt,setSelectHandler:st},children:e})})}var Sa=()=>Zt(Ce);var Qt="Storefront";function Ea(e){return e?.trim()||Qt}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:d,quality:b,placeholder:T,blurDataURL:m,unoptimized:p,loader:S,overrideSrc:_,...c},R){let w=_??(typeof t=="string"?t:t.src);return an("img",{ref:R,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,...d}:{color:"transparent",...d},...c})}),Ta=nn;function wa(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:d,locale:b,onClick:T,children:m,...p},S){let _=c=>{T?.(c),!(c.defaultPrevented||p.target==="_blank")&&c.preventDefault()};return ln("a",{ref:S,href:rn(t),onClick:_,...p,children:m})}),ka=sn;var Le=["instagram","facebook","tiktok","youtube","x","linkedin","pinterest","whatsapp"],cn={instagram:"Instagram",facebook:"Facebook",tiktok:"TikTok",youtube:"YouTube",x:"X",linkedin:"LinkedIn",pinterest:"Pinterest",whatsapp:"WhatsApp"},dn={};function Ra(e){if(!e||typeof e!="object")return dn;let t={};for(let n of Le){let a=e[n];if(typeof a!="string")continue;let o=a.trim();!o||!/^https?:\/\//i.test(o)||(t[n]=o)}return t}function xa(e){return Le.flatMap(t=>{let n=e[t];return n?[{platform:t,href:n,label:cn[t]}]:[]})}var Ma=e=>`${e}_url`;export{Ta as a,wa as b,ka as c,B as d,$t as e,Qn as f,ea as g,ta as h,be as i,na as j,aa as k,oa as l,Yt as m,ra as n,h as o,jt as p,la as q,yn as r,bn as s,Tn as t,wn as u,v,An as w,ht as x,ce as y,Cn as z,Ln as A,k as B,de as C,St as D,kn as E,In as F,I as G,Hn as H,Rn as I,xn as J,ue as K,Mn as L,he as M,Dn as N,On as O,Pn as P,Fn as Q,Nn as R,U as S,bt as T,Tt as U,vn as V,At as W,Gn as X,Un as Y,fe as Z,kt as _,zn as $,me as aa,Ht as ba,$n as ca,Rt as da,xt as ea,pe as fa,H as ga,Ot as ha,Pt as ia,Ft as ja,Se as ka,_e as la,Nt as ma,Ee as na,vt as oa,Bn as pa,Vn as qa,Wn as ra,Yn as sa,y as ta,ye as ua,Xn as va,jn as wa,z as xa,P as ya,F as za,Ut as Aa,zt as Ba,$ as Ca,qn as Da,Kn as Ea,Zn as Fa,se as Ga,mn as Ha,_n as Ia,le as Ja,pa as Ka,Sa as La,Qt as Ma,Ea as Na,Le as Oa,cn as Pa,dn as Qa,Ra,xa as Sa,Ma as Ta};
@@ -0,0 +1 @@
1
+ import{f as nt,i as fe,p as rt,r as ot,t as q}from"./chunk-O6RPIOGL.js";import{Ma as me,Na as Ze,Qa as Ae,Ra as et}from"./chunk-GC3WZ5PJ.js";import{e as Je,r as tt,t as re}from"./chunk-2I435NJQ.js";import{createContext as Qt,useContext as Xt,useEffect as Jt,useMemo as ge,useState as st}from"react";function it(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 o=r.prices?.[t];if(typeof o!="number"||!Number.isFinite(o)||o<=0)return null;n+=o*r.wheels}return n}var Me=4,ir=1,ar={unit:"set",spares:0,spareSide:"left"};function at(e){return e.unit==="single"?1:Me+e.spares}function sr(e,t){return[{partNumber:e.partNumber,wheels:at(t),prices:e.prices}]}function lr(e,t){let n=at(t)-Me;if(n<=0||e.length===0)return e;let r=Yt(e),o=r?r[t.spareSide]:0;return e.map((i,a)=>a===o?{...i,wheels:i.wheels+n}:i)}function Yt(e){let t,n;for(let r=0;r<e.length;r+=1){let o=e[r].hand;if(o!=="left"&&o!=="right")continue;if((o==="left"?t:n)!==void 0)return null;o==="left"?t=r:n=r}return t!==void 0&&n!==void 0?{left:t,right:n}:null}function jt(e,t){return t.spares>0?`${e} + spare`:e}function ur(e){return e.unit==="single"?"Single":jt(`Set of ${Me}`,e)}var cr="data-add-to-basket",De=9,Oe="en";function pe(e,t,n=0){return new Intl.NumberFormat(Oe,{style:"currency",currency:t,minimumFractionDigits:0,maximumFractionDigits:n}).format(e)}import{jsx as tn}from"react/jsx-runtime";var lt="storefront-country",ut=Qt(null);function Zt(e){return ct(e,"catalogue")}function en(e){return ct(e,"money")}function ct(e,t){let n=new Map(e.map(o=>[o.code,o.decimalPlaces])),r=new Map;return(o,i)=>{if(!i)return"";let a=r.get(i);if(!a){let u=n.get(i)??0;a=new Intl.NumberFormat(Oe,{style:"currency",currency:i,minimumFractionDigits:t==="money"?u:0,maximumFractionDigits:u}),r.set(i,a)}return a.format(o)}}function gr({children:e,currencies:t,countries:n,defaultCurrency:r,defaultCountry:o}){let i=ge(()=>t??[],[t]),a=ge(()=>n??[],[n]),u=ge(()=>r||i.find(C=>C.isDefault)?.code||i[0]?.code||"",[r,i]),c=ge(()=>o||a.find(C=>C.isDefault)?.code||a[0]?.code||"",[o,a]),[l,d]=st(c),[f,P]=st(!1);Jt(()=>{let C=re.getItem(lt);C&&a.some(I=>I.code===C)&&d(C),P(!0)},[a]);function L(C){d(C),re.setItem(lt,C)}let h=ge(()=>{let C=a.find(w=>w.code===l)??null,I=C?.currency,T=I&&i.some(w=>w.code===I)?I:u,M=Zt(i),x=en(i);return{country:l,currency:T,setCountry:L,currencies:i,countries:a,activeCountry:C,formatPrice:(w,S)=>M(w,S??T),formatMoney:(w,S)=>x(w,S??T),ready:f}},[l,i,a,u,f]);return tn(ut.Provider,{value:h,children:e})}function dt(){let e=Xt(ut);if(!e)throw new Error("useCurrency must be used within a CurrencyProvider");return e}import{createContext as pn,useCallback as k,useContext as gn,useEffect as Y,useMemo as St,useRef as ie,useState as R}from"react";function ft(e,t){return e.valid?!1:e.reason==="firstOrderOnly"?!0:e.reason==="notEligible"&&!t}var pt="We'll confirm this discount when you place your order.",Cr="Confirmed at checkout";function xr(e){return e&&(e.valid||e.deferred)?e.code:void 0}var mt="coupon_code: ";function Sr(e){return!(e instanceof fe)||e.status!==400||!e.message.startsWith(mt)?null:e.message.slice(mt.length)}function gt(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 Pe="Price on request",rn="Request a quote";function Fe(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Ue(e,t){let n=e?.[t];return Fe(n)?n:null}function Ir(e,t,n,r){let o=Ue(e,n),i=Ue(t,n);return o===null&&i===null?0:o===null?1:i===null?-1:r==="asc"?o-i:i-o}function wr(e,t,n,r){if(n==null&&r==null)return!0;let o=Ue(e,t);return!(o===null||n!=null&&o<n||r!=null&&o>r)}var on={priced:!1,unit:null,was:null,onSale:!1,setTotal:null};function an(e,t,n){if(!Fe(e))return on;let r=Fe(t)&&t>e?t:null;return{priced:!0,unit:e,was:r,onSale:r!==null,setTotal:n!=null?e*n:null}}function Lr(e,t,n=""){return!e.priced||e.unit==null?Pe:`${n}${pe(e.unit,t)}`}function Nr(e,t){return e.was==null?null:pe(e.was,t)}function sn(e,t,n=1){let r=oe(e,t);if(r===null)return{priced:!1,unit:null,isFrom:!1,setTotal:null};let o=e.reduce((a,u)=>a+u.wheels,0),i=Math.min(...e.map(a=>a.prices[t]));return{priced:!0,unit:i,isFrom:i*o!==r,setTotal:r*n}}var ln={priced:!1,unit:null,isFrom:!1,was:null,onSale:!1,setTotal:null};function Tr(e,t,n,r=1){let o=an(e.prices[n],e.msrpPrices?.[n],4),i=o.setTotal==null?null:o.setTotal*r;if(!t)return{priced:o.priced,unit:o.unit,isFrom:!0,was:o.was,onSale:o.onSale,setTotal:null,fromSetTotal:i};let a=sn(t.components,n,r);return a.priced?{priced:!0,unit:a.unit,isFrom:a.isFrom,was:null,onSale:!1,setTotal:a.setTotal,fromSetTotal:i}:{...ln,fromSetTotal:i}}function un(e,t){return!e.priced||e.unit==null?Pe:`${e.isFrom?"from ":""}${pe(e.unit,t)}`}function _r(e,t){return e.was==null?null:pe(e.was,t)}function kr(e,t){return!e.priced||e.unit==null?rn:un(e,t)}var cn=/^[^@\s]+@[^@\s]+\.[^@\s]+$/;function yt(e){return cn.test(e.trim())}var bt="sf:ga-purchases",dn=20;function Ct(){return typeof window>"u"||window.parent!==window}function ye(...e){try{if(Ct()||typeof window.gtag!="function")return;window.gtag(...e)}catch{}}function mn(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 $e(e,t){return e.filter(Ie).map(n=>mn(n,t))}function Fr(e){ye("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 xt(e,t){let n=$e([e],t);n.length!==0&&ye("event","add_to_cart",{currency:t,value:n[0].price*n[0].quantity,items:n})}function Ur(e){let t=$e(e.lines,e.currency);t.length!==0&&ye("event","begin_checkout",{currency:e.currency,value:e.value,...e.coupon?{coupon:e.coupon}:{},items:t})}var ht=new Set;function fn(e){if(ht.has(e))return!1;ht.add(e);try{let t=JSON.parse(re.getItem(bt)??"[]");if(t.includes(e))return!1;re.setItem(bt,JSON.stringify([...t,e].slice(-dn)))}catch{}return!0}function $r(e){let t=e.confirmation;if(Ct()||!fn(t.orderNumber))return;let n=t.currency,r=Number(t.grandTotal);ye("event","purchase",{transaction_id:t.orderNumber,currency:n,value:r,shipping:Number(t.freightCharge),...t.couponCode?{coupon:t.couponCode}:{},items:$e(e.lines,n)}),e.adsSendTo&&ye("event","conversion",{send_to:e.adsSendTo,transaction_id:t.orderNumber,currency:n,value:r})}import{jsx as Cn}from"react/jsx-runtime";var yn=400,bn=400,hn=1500;function Ie(e){return(e.components?.length??0)>0}function vt(e,t){return{code:e,valid:t.valid,deferred:ft(t,t.askedAsShopper),message:t.message||void 0,effects:t.effects??void 0}}function Pt(e,t){return oe(e.components,t)}function qe(e,t){let n=Pt(e,t);return n===null?null:n*e.qty}function Et(e){return e!=="tyre"}var It=pn(null);function Qr({children:e,preview:t=!1}){let{currency:n,country:r,formatMoney:o}=dt(),[i,a]=R(t),[u,c]=R([]),[l,d]=R([]),[f,P]=R([]),[L,h]=R(!1),[C,I]=R(!1),[T,M]=R(!1),[x,w]=R(!1),[S,K]=R(null),[W,Q]=R(void 0),b=ie(r),v=ie("");b.current=b.current||r;let[m,H]=R(null),[X,z]=R(!1),[A,J]=R(null),Z=ie(void 0),D=k(()=>a(!0),[]),xe=k(()=>a(!1),[]),O=k(()=>a(s=>!s),[]);Y(()=>{t||typeof window>"u"||new URLSearchParams(window.location.search).get("cart")==="open"&&D()},[D,t]);let Se=k(s=>{w(!0),Et(s)&&M(!0)},[]),ee=T||u.some(s=>Et(s.kind)),se=x||u.length>0;Y(()=>{if(t||!ee||L)return;let s=!0;return q.listWheels().then(p=>{s&&(d(p),h(!0))}),()=>{s=!1}},[t,ee,L]),Y(()=>{if(t||!se||C)return;let s=!0;return q.listBundles().then(p=>{s&&(P(p),I(!0))}),()=>{s=!1}},[t,se,C]);let U=S?.deliveryOptions??[];Y(()=>{U.length!==0&&J(s=>s&&U.some(p=>p.id===s)?s:U[0]?.id??null)},[S]);let V=k(()=>u.filter(Ie).flatMap(s=>it(s.components,s.qty)),[u]),le=k(async(s,p)=>{let y=s.trim().toUpperCase();if(!y)return;let g=V();if(g.length===0){H({code:y,valid:!1,message:"Add a wheel to the cart first."});return}z(!0),Z.current=p;try{let N=await q.validateCoupon({code:y,items:g,currency:n,shippingMethodId:A??void 0,customerEmail:p});H(vt(y,N))}catch{H({code:y,valid:!1,message:"Could not check that code. Please try again."})}finally{z(!1)}},[V,n,A]),te=k(()=>{H(null),Z.current=void 0},[]),ve=k(s=>{if(!m)return;let{code:p}=m;H(y=>y&&y.code===p?{code:p,valid:!1,refused:!0,message:s}:y)},[m]);Y(()=>{if(!m||m.refused)return;let s=m.code,p=g=>g!==null&&g.code===s&&!g.refused,y=setTimeout(async()=>{let g=V();if(g.length===0){H(N=>p(N)?{code:s,valid:!1,message:"Add a wheel to the cart first."}:N);return}z(!0);try{let N=await q.validateCoupon({code:s,items:g,currency:n,shippingMethodId:A??void 0,customerEmail:Z.current});H(de=>p(de)?vt(s,N):de)}catch{}finally{z(!1)}},yn);return()=>clearTimeout(y)},[u,n,A]);let ue=m&&!m.refused?m.code:void 0;Y(()=>{if(t)return;let s=!0,p=setTimeout(async()=>{let y=V();if(y.length===0){K(null),Q(void 0);return}try{let g=await q.quoteCart({items:y,currency:n,shippingMethodId:A??void 0,couponCode:ue,customerEmail:Z.current||void 0,country:b.current||void 0,subdivision:v.current||void 0});if(!s)return;K(g)}catch{if(!s)return}Q(ue)},bn);return()=>{s=!1,clearTimeout(p)}},[u,n,A,ue,r]);let E=k(s=>{c(p=>{let y=p.findIndex(g=>g.id===s.id);return y===-1?[...p,s]:p.map((g,N)=>N===y?{...g,qty:Math.min(De,g.qty+s.qty)}:g)}),xt(s,n)},[n]),F=k(s=>{c(p=>p.filter(y=>y.id!==s))},[]),G=k((s,p)=>{let y=Math.max(1,Math.min(De,p));c(g=>g.map(N=>N.id===s?{...N,qty:y}:N))},[]),ze=k(s=>{c(s)},[]),[ce,Kt]=R(null),Ve=ie(null);Ve.current=ce;let $=ie(null),ke=ie(""),Ge=k((s,p)=>{let y=s.trim().toLowerCase();yt(y)&&Kt(g=>g&&g.email===y&&g.firstName===(p??"")?g:{email:y,firstName:p??""})},[]);Y(()=>{if(t||!ce)return;let s=gt(u.filter(Ie),g=>qe(g,n)===null?Pe:o(qe(g,n),n)),p={email:ce.email,firstName:ce.firstName,currency:n,items:s},y=JSON.stringify(p);if(y!==ke.current)return $.current&&clearTimeout($.current),$.current=setTimeout(()=>{$.current=null,ke.current=y,q.captureCart(p).catch(g=>{})},hn),()=>{$.current&&(clearTimeout($.current),$.current=null)}},[u,ce,n,t]);let Ye=k(()=>{$.current&&(clearTimeout($.current),$.current=null);let s=Ve.current;s&&(ke.current="",q.captureCart({email:s.email,firstName:s.firstName,currency:n,items:[]}).catch(p=>{}))},[n]),je=St(()=>{let s=u.reduce((_,ne)=>{let Ee=qe(ne,n);return Ee===null?_:_+Ee},0),p=u.some(_=>Pt(_,n)===null),y=u.reduce((_,ne)=>_+ne.qty,0),g=m?.valid?m.effects:void 0,N=g?Math.min(s,Number(g.discountAmount)):0,de=S?.bundleDiscount??0,Wt=S?.appliedBundles??[],Qe=!!g?.freeShipping,Bt=U.find(_=>_.id===A),Xe=Qe?0:S?.shipping??Bt?.amount??0,Re={};for(let _ of g?.freeUnits??[])Re[_.partNumber]=(Re[_.partNumber]??0)+_.quantity;let zt=S?.tax??null,Vt=S?S.grandTotal:s-N-de+Xe;return{sets:y,units:u.reduce((_,ne)=>_+(ne.components??[]).reduce((Ee,Gt)=>Ee+Gt.wheels*ne.qty,0),0),subtotal:s,hasUnpricedLine:p,discount:N,bundleDiscount:de,appliedBundles:Wt,shipping:Xe,freeShipping:Qe,freeUnitsByPartNumber:Re,tax:zt,grand:Vt,repricing:!!m?.refused&&S!==null&&W===m?.code,currency:n}},[u,n,m,U,A,S,W]),Ht=St(()=>({isOpen:i,preview:t,open:D,close:xe,toggle:O,items:u,catalog:l,bundles:f,warmCatalog:Se,add:E,remove:F,setQty:G,replaceItems:ze,identify:Ge,clearCapturedCart:Ye,coupon:m,applyCoupon:le,removeCoupon:te,refuseCoupon:ve,couponBusy:X,deliveryOptions:U,shippingMethodId:A,setShippingMethodId:J,totals:je}),[i,t,D,xe,O,u,l,f,Se,E,F,G,ze,Ge,Ye,m,le,te,ve,X,U,A,je]);return Cn(It.Provider,{value:Ht,children:e})}function wt(){let e=gn(It);if(!e)throw new Error("useCart() must be called inside <CartProvider>. Mount the provider in app/layout.tsx.");return e}import{cache as _n}from"react";function Lt(e,t,n,r){for(;e.size>=t;){let o,i;for(let[u,c]of e){if(c.expiresAt<=r){o=u;break}i===void 0&&n(u)&&(i=u)}let a=o??i??e.keys().next().value;if(a===void 0)return;e.delete(a)}}var xn=6e4,Sn=5e3,vn=500,we=new Map;async function En(e){let{host:t,matchesRequestHost:n}=await rt();if(!t)return"";let r=await ot();return r?`${e}|slug:${encodeURIComponent(t)}/${encodeURIComponent(r)}`:n?`${e}|host:${t}`:`${e}|xhost:${t}`}var Pn=e=>e.includes("|slug:")||e.includes("|xhost:");async function Nt(e,t){let n=await En(e);if(!n)return t();let r=Date.now(),o=we.get(n);if(o&&o.expiresAt>r)return o.load;let i=await t(),a=i.outcome.state==="failed",u=a?Sn:xn,c=we.get(n)?.lastGood,l=i.outcome.state==="ok"?i:a?c:void 0,d=a&&l?l:i;return Lt(we,vn,Pn,r),we.set(n,{load:d,expiresAt:r+u,lastGood:l}),d}var In=404;function wn(e){if(e instanceof fe&&e.status===In)return{state:"absent"};let t=e instanceof fe?e.status:-1,n=e instanceof Error?e.message:String(e);return{state:"failed",status:t,detail:n}}var Ln="[storefront:chrome-load-failed]";function Nn(e,t){console.error(`${Ln} ${e} status=${t.status} \u2014 serving fallback chrome`,t.detail)}async function Tt(e,t,n,r){try{let o=await t();return r?.(o)?{value:o,outcome:{state:"absent"}}:{value:o,outcome:{state:"ok"}}}catch(o){let i=wn(o);return i.state==="failed"&&Nn(e,i),{value:n,outcome:i}}}function Tn(e){return e==="production"?"silent":"banner"}var oo=Tn("production");function kn(e,t){return e?.trim()||t}function fo({legalName:e,foundedYear:t,siteName:n},r=new Date().getFullYear()){let o=kn(e,n);return`\xA9 ${t&&t<r?`${t}\u2013${r}`:`${r}`} ${o}`}var Rn={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:Ae},po=_n(async()=>Nt("site",()=>Tt("site",async()=>{let e=await q.getSite();return{name:Ze(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:et(e.socialLinks)}},Rn)));var go={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:Ae};import{jsx as kt,jsxs as Rt}from"react/jsx-runtime";import{useEffect as Le,useRef as At,useState as Ne}from"react";var be=new Map,An=64;async function Mn(e){if(!Je())return null;try{let t=await fetch(`${tt()}/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:o}=n;return typeof r!="string"?null:{reversed:r,inkIsDark:typeof o=="boolean"?o:null}}catch{return null}}function _t(e){let t=be.get(e);if(t)return t;let n=Mn(e);if(be.set(e,n),be.size>An){let r=be.keys().next();r.done||be.delete(r.value)}return n}var Dn={small:54,medium:66,large:84},On=44,Fn=202/22,Io=16,wo=140,Un=.88,Lo=16,$n="invert(1)";function No({variant:e="header",scrolled:t=!0,src:n,reverse:r=!1,onLightSurface:o,reversedSrc:i,inkIsDark:a,size:u="medium",sizePx:c,wordmark:l,siteName:d=me,fitToContainer:f=!1,fitWordmarkToContainer:P=!1,fitFloorPx:L}){let h=l&&l.trim()?l.trim():d,[C,I]=Ne(!1),T=At(null),M=E=>{T.current=E};Le(()=>{let E=T.current?.ownerDocument??document,F=()=>{I(E.documentElement.getAttribute("data-theme")==="light")};F();let G=new MutationObserver(F);return G.observe(E.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>G.disconnect()},[]);let x=n&&n.trim()?n.trim():null,w=!!x&&nt(x),S=o??(C&&t),K=r&&w&&x&&i!=null?{reversed:i,inkIsDark:a??null}:null,W=K!==null,[Q,b]=Ne(null);Le(()=>{if(!r||!x||!w||W){b(null);return}let E=!1;return b(null),_t(x).then(F=>{E||b(F)}),()=>{E=!0}},[r,x,w,W]);let v=K??Q,m=!!v&&v.inkIsDark!==null&&(S?!v.inkIsDark:v.inkIsDark),H=r&&!!x&&!w&&!S,X=m&&v?v.reversed:x,z=X?[X]:[],[A,J]=Ne(0);Le(()=>{J(0)},[x,m]);let Z=e==="footer"?On:Dn[u],D=c&&c>0?c:Z,xe=Math.round(D*Fn),O=A<z.length?z[A]:null,[Se,ee]=Ne(X),se=O!==null&&O===Se,U=At(null);Le(()=>{let E=U.current;if(!E||!E.complete)return;if(E.naturalWidth>0||E.naturalHeight>0){ee(O);return}let F=!1;return E.decode().then(()=>!F&&ee(O),()=>!F&&J(G=>G+1)),()=>{F=!0}},[O]);let V=f||P,le=`calc(100cqi / ${((h.length+1)*Un).toFixed(2)})`,te=V&&L&&L>0?Math.min(L,D):null,ve=V?te===null?`min(${D}px, ${le})`:`clamp(${te}px, ${le}, ${D}px)`:`${D}px`,ue=Rt("span",{className:`font-display font-bold tracking-[0.18em] ${te===null?"whitespace-nowrap":"whitespace-normal"}`,style:{fontSize:ve,lineHeight:1},"aria-label":h,children:[h,kt("span",{className:"text-accent",children:"."})]});return Rt("span",{ref:M,className:"inline-flex items-center",children:[!se&&ue,O&&kt("img",{ref:U,src:O,alt:h,width:xe,height:D,className:"shrink-0 object-contain",style:{...se?{height:`${D}px`,width:"auto",...f?{maxWidth:"100cqi"}:{}}:{display:"none"},...H?{filter:$n}:{}},onLoad:()=>ee(O),onError:()=>J(E=>E+1)},O)]})}import{Children as Kn,isValidElement as Hn,useEffect as Dt,useId as Wn,useLayoutEffect as Bn,useRef as j,useState as Ot}from"react";var Te=(e,t)=>!!e[t]&&!e[t].disabled;function Ke(e,t,n){let r=e.length;for(let o=1;o<=r;o++){let i=((t+n*o)%r+r)%r;if(Te(e,i))return i}return t}function He(e,t){return Ke(e,t===1?-1:e.length,t)}function We(e,t){return Te(e,t)?t:Math.max(He(e,1),0)}function Mt(e,t,n){let{open:r,focus:o}=e,i=a=>({...e,...a});if(t.length===1&&/\S/.test(t)){let a=e.typed+t.toLowerCase(),u=n.findIndex((c,l)=>Te(n,l)&&c.label.toLowerCase().startsWith(a));return{state:i({open:!0,typed:a,focus:u>=0?u:o}),handled:!0}}if(!r)return t==="ArrowDown"||t==="ArrowUp"||t==="Enter"||t===" "?{state:i({open:!0,typed:""}),handled:!0}:{state:e,handled:!1};switch(t){case"ArrowDown":return{state:i({focus:Ke(n,o,1)}),handled:!0};case"ArrowUp":return{state:i({focus:Ke(n,o,-1)}),handled:!0};case"Home":return{state:i({focus:He(n,1)}),handled:!0};case"End":return{state:i({focus:He(n,-1)}),handled:!0};case"Enter":case" ":return Te(n,o)?{state:i({open:!1,typed:""}),commit:o,refocus:!0,handled:!0}:{state:e,handled:!0};case"Escape":return{state:i({open:!1,typed:""}),refocus:!0,handled:!0};case"Tab":return{state:i({open:!1,typed:""}),handled:!1};default:return{state:e,handled:!1}}}import{Fragment as jn,jsx as B,jsxs as Ft}from"react/jsx-runtime";function zn({items:e,value:t,onPick:n,open:r,onOpen:o,onClose:i}){let[a,u]=Ot(!1),c=r!==void 0,l=c?r:a,[d,f]=Ot(0),P=j({text:"",timer:0}),L=j(null),h=j(null),C=j(null),I=Wn(),T=j(null),M=e.findIndex(b=>b.value===t),x=b=>{b!==l&&(c||u(b),b?o?.():i?.())},w=b=>{let v=e[b];!v||v.disabled||(n(v.value),x(!1),h.current?.focus())},S=b=>{let v={open:l,focus:l?d:We(e,M),typed:P.current.text},m=Mt(v,b,e);return!m.handled&&m.state.open===l?!1:(m.state.typed!==v.typed&&(P.current.text=m.state.typed,window.clearTimeout(P.current.timer),P.current.timer=window.setTimeout(()=>{P.current.text=""},500)),f(m.state.focus),m.commit!==void 0?w(m.commit):x(m.state.open),m.refocus&&h.current?.focus(),m.handled)},K=j(S);K.current=S;let W=j(()=>x(!1));W.current=()=>x(!1);let Q=b=>{l||(T.current=b.nativeEvent,K.current(b.key)&&b.preventDefault())};return Dt(()=>{if(!l)return;let b=m=>{L.current?.contains(m.target)||W.current()},v=m=>{m!==T.current&&K.current(m.key)&&m.preventDefault()};return document.addEventListener("mousedown",b),document.addEventListener("keydown",v),()=>{document.removeEventListener("mousedown",b),document.removeEventListener("keydown",v)}},[l]),Dt(()=>{l&&(P.current.text||f(We(e,M)))},[l]),Bn(()=>{if(!l||!C.current)return;C.current.children.item(d)?.scrollIntoView({block:"nearest"})},[d,l]),{open:l,toggle:()=>x(!l),close:()=>x(!1),focusIdx:d,setFocusIdx:f,pick:b=>w(e.findIndex(v=>v.value===b)),wrapRef:L,triggerRef:h,listRef:C,listId:I,onTriggerKeyDown:Q,activeId:l?`${I}-${d}`:void 0}}var Vn={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 Gn({id:e,tone:t,items:n,value:r,focusIdx:o,onFocus:i,onPick:a,listRef:u,ariaLabel:c}){let l=Vn[t];return B("ul",{ref:u,id:e,role:"listbox","aria-label":c,...l.pickerMarker?{"data-picker-menu":""}:{},className:l.list,children:n.map((d,f)=>{let P=d.value===r;return B("li",{id:`${e}-${f}`,role:"option","aria-selected":P,"aria-disabled":d.disabled||void 0,onMouseEnter:()=>!d.disabled&&i(f),onMouseDown:L=>{L.preventDefault(),d.disabled||a(d.value)},className:l.item(f===o,P&&d.value!=="",!!d.disabled,f===n.length-1),style:l.itemStyle?.(P),children:d.meta===void 0?d.label:Ft(jn,{children:[B("span",{className:"flex-1 whitespace-nowrap",children:d.label}),B("span",{className:"ml-auto text-[12px] opacity-50",children:d.meta})]})},`${d.value}_${f}`)})})}function Yn({value:e,onChange:t,disabled:n,children:r,className:o,style:i,name:a,id:u,"aria-label":c}){let l=Kn.toArray(r).flatMap(h=>{if(!Hn(h))return[];if(h.type!=="option")return[];let I=h.props,T=I.value!==void 0?String(I.value):"",M=I.children,x=typeof M=="string"||typeof M=="number"?String(M):T;return[{value:T,label:x,disabled:!!I.disabled}]}),d=e??"",f=zn({items:l,value:d,onPick:h=>t?.({target:{value:h}})}),L=l.find(h=>h.value===d)?.label??l[0]?.label??"";return Ft("div",{ref:f.wrapRef,className:"relative",children:[a&&B("input",{type:"hidden",name:a,value:d}),B("button",{ref:h=>{f.triggerRef.current=h},type:"button",disabled:n,"aria-haspopup":"listbox","aria-expanded":f.open,"aria-controls":f.open?f.listId:void 0,"aria-activedescendant":f.activeId,"aria-label":c,id:u,onClick:()=>!n&&f.toggle(),onKeyDown:h=>!n&&f.onTriggerKeyDown(h),className:`block w-full ${o??""}`,style:i,children:B("span",{className:"block w-full truncate text-left",children:L})}),f.open&&B(Gn,{id:f.listId,tone:"select",items:l,value:d,focusIdx:f.focusIdx,onFocus:f.setFocusIdx,onPick:f.pick,listRef:f.listRef})]})}var Fo="#c9a461",Ut=[{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"}],Uo={name:"",color:"var(--fg)",family:"silver",src:""};function Qn(e,t){let n=r=>{let o=Ut.findIndex(i=>i.f===r);return o===-1?Ut.length:o};return n(e)-n(t)||e.localeCompare(t)}function $o(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(Qn)}import{jsx as he,jsxs as _e}from"react/jsx-runtime";var Xn="font-mono text-[length:var(--size-label,12px)]",Jn="font-semibold uppercase tracking-[0.22em] text-fg";function $t(e){return`${e??Xn} ${Jn}`}function qt(){return he("span",{className:"text-accent",children:" *"})}function Zn({children:e,required:t,labelFace:n}){return _e("span",{className:$t(n),children:[e,t?he(qt,{}):null]})}function er({label:e,required:t,hint:n,separate:r,htmlFor:o,labelFace:i,className:a,children:u}){let c=a?`flex flex-col gap-2 ${a}`:"flex flex-col gap-2",l=n?he("span",{className:"font-mono text-[11px] uppercase tracking-[0.22em] text-fg-dim",children:n}):null;return r||n?_e("div",{className:c,children:[_e("label",{htmlFor:o,className:$t(i),children:[e,t?he(qt,{}):null]}),u,l]}):_e("label",{htmlFor:o,className:c,children:[he(Zn,{required:t,labelFace:i,children:e}),u]})}import{jsx as Ce,jsxs as nr}from"react/jsx-runtime";function tr({spokes:e,mesh:t=!1,className:n}){let a=c=>Math.round(c*1e3)/1e3,u=[];for(let c=0;c<e;c++){let l=c/e*Math.PI*2-Math.PI/2;if(u.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 d=l+Math.PI/e;u.push({x1:a(100+Math.cos(d)*22*1.4),y1:a(100+Math.sin(d)*22*1.4),x2:a(100+Math.cos(d)*78),y2:a(100+Math.sin(d)*78),main:!1})}}return nr("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:[Ce("circle",{cx:100,cy:100,r:92,strokeWidth:2}),Ce("circle",{cx:100,cy:100,r:84,strokeWidth:1,opacity:.4}),Ce("circle",{cx:100,cy:100,r:22,strokeWidth:2}),Ce("circle",{cx:100,cy:100,r:6,fill:"currentColor"}),u.map((c,l)=>Ce("line",{x1:c.x1,y1:c.y1,x2:c.x2,y2:c.y2,stroke:"currentColor",strokeWidth:c.main?6:3,strokeLinecap:"round",opacity:c.main?1:.5},l))]})}import{useState as rr}from"react";import{jsx as ae,jsxs as Be}from"react/jsx-runtime";function or({customerEmail:e}){let{coupon:t,applyCoupon:n,removeCoupon:r,couponBusy:o}=wt(),[i,a]=rr("");async function u(){o||!i.trim()||(await n(i,e),a(""))}return Be("div",{className:"flex flex-col gap-2",children:[t===null?Be("div",{className:"flex border border-line",children:[ae("input",{type:"text",value:i,onChange:c=>a(c.target.value),onKeyDown:c=>{c.key==="Enter"&&(c.preventDefault(),u())},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:()=>{u()},disabled:o,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:o?"\u2026":"Apply"})]}):Be("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:pt}):t&&!t.valid&&t.message&&ae("p",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-alert",children:t.message})]})}function Qo(){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{Cr as a,xr as b,Sr as c,it as d,Me as e,ir as f,ar as g,sr as h,lr as i,Yt as j,jt as k,ur as l,cr as m,De as n,Oe as o,pe as p,Pe as q,rn as r,Ue as s,Ir as t,wr as u,an as v,Lr as w,Nr as x,sn as y,Tr as z,un as A,_r as B,kr as C,yt as D,Fr as E,Ur as F,$r as G,gr as H,dt as I,Ie as J,qe as K,Qr as L,wt as M,fo as N,Rn as O,go as P,Dn as Q,On as R,Io as S,wo as T,Lo as U,No as V,zn as W,Gn as X,Yn as Y,Fo as Z,Ut as _,Uo as $,Qn as aa,$o as ba,Zn as ca,er as da,tr as ea,or as fa,Qo as ga};
@@ -1 +1 @@
1
- import{c as W,e as G,i as V,k as T,q as I,r as K,t as k}from"./chunk-NQIIJI3Z.js";var E="x-forwarded-for";function j(e){let t=(e??"").split(",").map(r=>r.trim()).filter(Boolean);return t.length>0?t[t.length-1]:null}var ve="x-forwarded-host";function z(e,t,r){let n={};return e&&(n[ve]=e),t&&r==="uncached"&&(n[E]=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",Y="x-storefront-host";var X={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 Ie="shop_access_token",ee="shop_refresh_token",B=null;function q(){k.removeItem(Ie),k.removeItem(ee)}var b={getAccess(){return B},takeLegacyRefresh(){let e=k.getItem(ee);return q(),e},setTokens(e){B=e,q()},clear(){B=null,q()}};function Ee(e){return!!e.src}function A(e){let t=e.finishes.filter(Ee);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 Be(e){return e.listable!==!1}function $(e){return e.map(A).filter(Be)}var se=["fill","stroke","stop-color","color","flood-color","lighting-color","solid-color"],oe=new Set(["none","transparent","currentcolor","inherit","initial","unset","context-fill","context-stroke"]),O={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]},ie=12,ae=/\burl\(/i,ce=new RegExp(`(?<![-\\w])(${se.join("|")})(\\s*=\\s*)(["'])([^"']*)\\3`,"gi"),le=new RegExp(`((?:^|[;{\\s"'])(?:${se.join("|")})\\s*:\\s*)([^;}"'<>]+)`,"gi"),qe=/<svg\b([^>]*)>/i,$e=/\bfill\s*[=:]/i;function Le(e){let t=e.replace(ce,(r,n,s,o,m)=>{let u=te(m);return u===null?r:`${n}${s}${o}${u}${o}`}).replace(le,(r,n,s)=>{let o=te(s);return o===null?r:`${n}${o}`});return t=t.replace(qe,(r,n)=>$e.test(n)?r:`<svg fill="#ffffff"${n}>`),t}function te(e){let t=/!important/i.test(e),n=e.replace(/!important/gi,"").trim().toLowerCase();if(!n||ae.test(n)||oe.has(n))return null;let s=n in O?[...O[n],1]:me(n);if(!s)return null;let[o,m,u,p]=s;if(Math.max(o,m,u)-Math.min(o,m,u)>ie)return null;let y=Ne(255-o,255-m,255-u,p);return t?`${y} !important`:y}function Ne(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("#")?Ue(e):e.startsWith("rgb")?Me(e):e.startsWith("hsl")?De(e):null}function Ue(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 Me(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 m=n?v(n):He(r);return[o[0],o[1],o[2],m]}function He(e){let t=e.split(/[\s,]+/).filter(Boolean);return t.length>=4?v(t[3]):1}function v(e){let t=e.trim().endsWith("%")?parseFloat(e)/100:parseFloat(e);return Number.isNaN(t)?1:t}function De(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]),m=parseFloat(s[1])/100,u=parseFloat(s[2])/100;if([o,m,u].some(Oe=>Number.isNaN(Oe)))return null;let p=n?v(n):s.length>=4?v(s[3]):1,[y,S,P]=Je(o,m,u);return[y,S,P,p]}function Je(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)),m=0,u=0,p=0;s<1?[m,u,p]=[n,o,0]:s<2?[m,u,p]=[o,n,0]:s<3?[m,u,p]=[0,n,o]:s<4?[m,u,p]=[0,o,n]:s<5?[m,u,p]=[o,0,n]:[m,u,p]=[n,0,o];let y=r-n/2;return[Math.round((m+y)*255),Math.round((u+y)*255),Math.round((p+y)*255)]}var re=512*1024;function L(e){return/\.svg(\?|$)/i.test(e)}function We(e){return`data:image/svg+xml,${encodeURIComponent(Le(e))}`}function Ge(e){let t=e.replace(/!important/gi,"").trim().toLowerCase();if(!t||ae.test(t)||oe.has(t))return null;let r=t in O?[...O[t],1]:me(t);if(!r)return null;let[n,s,o]=r;return Math.max(n,s,o)-Math.min(n,s,o)>ie?null:(.2126*n+.7152*s+.0722*o)/255}function Ve(e){let t=[],r=n=>{let s=Ge(n);s!==null&&t.push(s)};for(let n of e.matchAll(ce))r(n[4]);for(let n of e.matchAll(le))r(n[2]);return t.length?t.reduce((n,s)=>n+s,0)/t.length<.5:null}var ne=/^(?:\uFEFF|\s+|<\?xml[^>]*\?>|<!--[\s\S]*?-->|<!DOCTYPE\s+svg[^>[]*>)/i;function Ke(e){let t=e;for(let r=ne.exec(t);r&&r[0].length>0;r=ne.exec(t))t=t.slice(r[0].length);return/^<svg[\s>/]/i.test(t)}async function je(e,t){if(!L(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>re)return null;let s=await r.text();return s.length>re?null:Ke(s)?s:null}catch{return null}}async function ue(e,t){let r=await je(e,t);return r===null?null:{reversed:We(r),inkIsDark:Ve(r)}}function pe(){return W().siteId()}var ze="",f=class extends Error{constructor(t,r,n){super(r),this.status=t,this.data=n}},U="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.",Ze=new Set([502,503,504]),N=0,Qe="This editor runs on its host's own backend, which does not serve this request.",Ye=5e3,Xe=15e3,et=()=>typeof window>"u"?Ye:Xe;function Ae(e){let t=(e.method??"GET").toUpperCase();if(!(e.body!=null||t!=="GET"&&t!=="HEAD")&&e.audience!=="admin"&&typeof AbortSignal?.timeout=="function")return AbortSignal.timeout(et())}var de=e=>e instanceof Error&&e.name==="TimeoutError",ge=(e,t)=>Ze.has(e)?U:t;function tt(e){if(typeof window>"u"||!e.startsWith("/api/v1/"))return e;let t=I();return!t||/[?&]site=/.test(e)?e:M(e,`site=${encodeURIComponent(t)}`)}async function i(e,t={}){let{token:r,baseUrl:n,headers:s,audience:o,...m}=t;if(typeof window<"u"&&!G())throw new f(N,Qe,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"&&m.body instanceof FormData,p;try{p=await fetch(`${n??ze}${tt(e)}`,{...m,headers:{...u?{}:{"Content-Type":"application/json"},...r?{Authorization:`Bearer ${r}`}:{},...o===null?{}:{"X-Portal-Audience":o??"shop"},...s},signal:m.signal??Ae({...m,audience:o})})}catch(P){throw P instanceof TypeError||de(P)?new f(N,U,null):P}let y;try{y=await p.text()}catch(P){throw de(P)?new f(N,U,null):P}let S=null;if(y)try{S=JSON.parse(y)}catch{throw new f(p.status,p.ok?"Expected JSON but received a non-JSON response":ge(p.status,p.statusText),y)}if(!p.ok){let P=(S&&typeof S=="object"&&"detail"in S&&typeof S.detail=="string"?S.detail:null)??ge(p.status,p.statusText);throw new f(p.status,P,S)}return S}var R=null;async function Re(){return R||(R=rt().finally(()=>{R=null}),R)}async function rt(){let e=b.takeLegacyRefresh(),t=await nt.refresh(e??void 0);return b.setTokens(t.access),t.access}async function _e(){return b.getAccess()??Re()}async function d(e,t={}){let r;try{r=await _e()}catch{throw b.clear(),new f(401,"Not signed in",null)}try{return await i(e,{...t,token:r})}catch(n){if(!(n instanceof f)||n.status!==401)throw n;try{let s=await Re();return await i(e,{...t,token:s})}catch{throw b.clear(),n}}}async function he(e,t={}){if(b.getAccess())try{return{data:await d(e,t),asShopper:!0}}catch(r){if(!(r instanceof f)||r.status!==401)throw r}return{data:await i(e,t),asShopper:!1}}async function ye(){let e=await d("/api/auth/me/");if(e.portal!=="shop")throw b.clear(),new f(403,"This session is not valid for this shop.",null);return e}var nt={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()=>{b.clear();try{await i("/api/auth/logout/",{method:"POST",body:JSON.stringify({portal:"shop"}),credentials:"include"})}catch{}},restoreSession:async()=>{let e=await _e();return await ye(),e},me:ye,updateMe:e=>d("/api/auth/me/",{method:"PATCH",body:JSON.stringify(e)}),changePassword:(e,t)=>d("/api/auth/me/",{method:"PATCH",body:JSON.stringify({password:t,old_password:e})}),changeEmail:(e,t)=>d("/api/shop-portal/change-email/",{method:"POST",body:JSON.stringify({new_email:e,current_password:t})}),myProfile:()=>d("/api/shop-portal/profile/"),updateMyProfile:e=>d("/api/shop-portal/profile/",{method:"PATCH",body:JSON.stringify(e)}),myAddresses:()=>d("/api/shop-portal/delivery-locations/"),createAddress:e=>d("/api/shop-portal/delivery-locations/",{method:"POST",body:JSON.stringify(e)}),updateAddress:(e,t)=>d(`/api/shop-portal/delivery-locations/${e}/`,{method:"PATCH",body:JSON.stringify(t)}),deleteAddress:e=>d(`/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:()=>d("/api/products/brands/"),myOrders:()=>d("/api/shop-portal/orders/").then(e=>e.results),myOrder:e=>d(`/api/shop-portal/orders/${e}/`),cancelOrder:e=>d(`/api/shop-portal/orders/${e}/cancel/`,{method:"POST"}),myReturns:e=>d(`/api/shop-portal/returns/${e?`?order=${encodeURIComponent(e)}`:""}`).then(t=>t.results),createReturn:e=>d("/api/shop-portal/returns/",{method:"POST",body:JSON.stringify(e)}),withdrawReturn:e=>d(`/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"),d("/api/shop-portal/return-media/",{method:"POST",body:r})}};function h(e){if(typeof e=="string")return e.startsWith("/media/")?V(e):e;if(Array.isArray(e))return e.map(h);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])=>[h(s),o])):h(n);return t}return e}var st="",Ce="".replace(/\/+$/,""),xe=typeof window>"u"&&Ce!=="",ot=xe?Ce:st,it=K,w=()=>({baseUrl:it(),audience:null});function c(e,t){let r=t?`?process=${encodeURIComponent(t)}`:"";return`/api/v1${e}${r}`}var at=100,fe=50;function Te(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(at)),r&&n.set("cursor",r),`/api/v1${e}?${n.toString()}`}function ct(e,t){return Te("/wheels",{process:e},t)}function lt(e,t,r){return Te("/products",{kind:e.join(","),make:t?.make,model:t?.model,year:t?.year,modification:t?.modification},r)}function mt(e){if(!e)return null;try{return new URL(e,"http://cursor.invalid").searchParams.get("cursor")}catch{return null}}async function Se(e,t,r=()=>!1){let n=[],s=null;try{for(let o=0;o<fe;o++){let m=await i(await t(s),await a());if(n.push(...m.results),s=mt(m.next),!s)break}s&&console.warn(`[${e}] stopped at ${fe} 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 ut=e=>e instanceof f&&e.status===400;function pt(e){return e.flatMap(t=>t.kind==="alloy-wheel"?$([t]):[t])}async function ke(){return(await dt()).host}async function dt(){try{let{headers:e}=await import("./headers-VF4VTX37.js"),t=await e(),r=o=>o?.split(",")[0]?.split(":")[0]?.trim().toLowerCase()||null,n=r(t.get(Y)??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 gt(){try{let{headers:e}=await import("./headers-VF4VTX37.js");return j((await e()).get(E))}catch{return null}}async function ht(){try{let{headers:e}=await import("./headers-VF4VTX37.js");return(await e()).get(Q)||null}catch{return null}}async function yt(){let e=await ht();if(e)return`site=${encodeURIComponent(e)}`;let t=await ke();return t?`host=${encodeURIComponent(t)}`:""}async function g(e){if(typeof window<"u"){let t=I();return t?M(e,`site=${encodeURIComponent(t)}`):e}return M(e,await yt())}function M(e,t){return t?`${e}${e.includes("?")?"&":"?"}${t}`:e}async function ft(e){if(!xe)return;let[t,r]=await Promise.all([ke(),gt()]),n=z(t,r,e);return Object.keys(n).length>0?n:void 0}async function a(e){let t=await ft(Z(e)),r={baseUrl:ot,...e};return t&&(r.headers={...t,...e?.headers}),r}var _=typeof window>"u";function C(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 Gt={listMakes:async e=>{if(_){let{fitmentData:r}=await import("./fitment-data-3PTG4BJX.js");return r.makes(e)}return(await i(C("/makes",{region:e}),w())).results},listModels:async(e,t)=>{if(_){let{fitmentData:n}=await import("./fitment-data-3PTG4BJX.js");return n.models(e,t)}return(await i(C("/models",{make:e,region:t}),w())).results},listYears:async(e,t,r)=>{if(_){let{fitmentData:s}=await import("./fitment-data-3PTG4BJX.js");return s.years(e,t,r)}return(await i(C("/years",{make:e,model:t,region:r}),w())).results},listModifications:async(e,t,r,n)=>{if(_){let{fitmentData:o}=await import("./fitment-data-3PTG4BJX.js");return o.modifications(e,t,r,n)}return(await i(C("/modifications",{make:e,model:t,year:r,region:n}),w())).results},getStockFitment:async(e,t,r,n,s)=>{if(_){let{fitmentData:o}=await import("./fitment-data-3PTG4BJX.js");return o.stockFitment(e,t,r,n,s)}return i(C("/stock-fitment",{make:e,model:t,year:r,modification:n,region:s}),w())}},Vt={listWheels:async e=>{let t=await Se("products.listWheels",async r=>await g(ct(e,r)));return $(h(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 Se("products.listCatalog",async n=>await g(lt(e,t,n)),ut);return pt(h(r))},getWheel:async e=>A(h(await i(await g(c(`/wheels/${e}`)),await a()))),getTyre:async e=>h(await i(await g(c(`/tyres/${e}`)),await a())),listBundles:async()=>{try{return await i(await g(c("/bundles")),await a())}catch{return[]}},getBundle:async e=>i(await g(c(`/bundles/${e}`)),await a()),listGalleryBuilds:async(e={})=>{let{process:t=null,wheelSlug:r=null}=e;if(typeof window>"u"){let{listGalleryBuilds:n}=await import("./gallery-builds-data-SWA6XKFF.js");return h(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 h(o.results)}catch(n){return console.warn("[products.listGalleryBuilds] product API unavailable, returning []",n),[]}},getSite:async()=>i(await g(c("/site")),await a()),getSiteBySlug:async e=>i(`${c("/site")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await a():void 0),listBrands:async()=>{try{return(await i(await g(c("/brands")),await a())).results??[]}catch(e){return console.warn("[products.listBrands] product API unavailable, returning []",e),[]}},listBrandsForSite:async e=>(await i(`${c("/brands")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await a():void 0)).results??[],listPages:async()=>h(await i(await g(c("/pages")),await a())),listProductTemplates:async()=>{try{return await i(await g(c("/product-templates")),await a())}catch(e){return console.warn("[products.listProductTemplates] unavailable, returning []",e),[]}},listProductTypeChoices:async()=>{try{return await i(await g(c("/product-type-choices")),await a())}catch(e){return console.warn("[products.listProductTypeChoices] unavailable, returning []",e),[]}},listFieldUsage:async()=>{try{return await i(await g(c("/field-usage")),await a())}catch(e){return console.warn("[products.listFieldUsage] unavailable, returning []",e),[]}},getPage:async(e,t={})=>h(await i(await g(c(`/pages/${e}`)),await a(t.revalidate!==void 0?{next:{revalidate:t.revalidate}}:void 0))),listBlogPosts:async()=>{try{return(await i(c("/blog-posts"),await a())).map(t=>({...t,coverImage:T(t.coverImage)??""}))}catch(e){return console.warn("[products.listBlogPosts] blog API unavailable, returning []",e),[]}},getBlogPost:async e=>{let t=await i(c(`/blog-posts/${e}`),await a());return{...t,coverImage:T(t.coverImage)??""}},createOrder:async e=>i(c("/orders"),await a({method:"POST",body:JSON.stringify(e)})),createOrderAuthed:async e=>d(c("/orders"),await a({method:"POST",body:JSON.stringify(e)})),lookupOrder:async e=>i(c("/orders/lookup"),await a({method:"POST",body:JSON.stringify(e)})),createPaymentIntent:async e=>i(c("/payments/intent"),await a({method:"POST",body:JSON.stringify(e)})),createPaypalOrder:async e=>i(c("/payments/paypal/order"),await a({method:"POST",body:JSON.stringify(e)})),capturePaypalOrder:async e=>i(c("/payments/paypal/capture"),await a({method:"POST",body:JSON.stringify(e)})),createAfterpayCheckout:async e=>i(c("/payments/afterpay/checkout"),await a({method:"POST",body:JSON.stringify(e)})),captureAfterpayPayment:async e=>i(c("/payments/afterpay/capture"),await a({method:"POST",body:JSON.stringify(e)})),chargeSquare:async e=>i(c("/payments/square/charge"),await a({method:"POST",body:JSON.stringify(e)})),createGocardlessBillingRequest:async e=>i(c("/payments/gocardless/billing-request"),await a({method:"POST",body:JSON.stringify(e)})),completeGocardlessPayment:async e=>i(c("/payments/gocardless/complete"),await a({method:"POST",body:JSON.stringify(e)})),createZipCheckout:async e=>i(c("/payments/zip/checkout"),await a({method:"POST",body:JSON.stringify(e)})),captureZipPayment:async e=>i(c("/payments/zip/capture"),await a({method:"POST",body:JSON.stringify(e)})),createKlarnaCheckout:async e=>i(c("/payments/klarna/checkout"),await a({method:"POST",body:JSON.stringify(e)})),captureKlarnaPayment:async e=>i(c("/payments/klarna/capture"),await a({method:"POST",body:JSON.stringify(e)})),createStockAlert:async e=>i(c("/stock-alerts"),await a({method:"POST",body:JSON.stringify(e)})),createPreOrderIntent:async e=>i(c("/pre-order-intents"),await a({method:"POST",body:JSON.stringify(e)})),createNewsletterSubscription:async e=>i(c("/newsletter-subscriptions"),await a({method:"POST",body:JSON.stringify(e)})),unsubscribeNewsletter:async e=>i(c("/newsletter-unsubscribe"),await a({method:"POST",body:JSON.stringify(e)})),captureCart:async e=>i(c("/carts"),await a({method:"POST",body:JSON.stringify(e)})),restoreCart:async e=>i(c("/carts/restore"),await a({method:"POST",body:JSON.stringify(e)})),unsubscribeCartReminders:async e=>i(c("/carts/unsubscribe"),await a({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=c("/reviews"),n=t.toString();try{return await i(await g(n?`${r}?${n}`:r),await a())}catch(s){return console.warn("[products.listReviews] product API unavailable, returning []",s),[]}},submitReview:async e=>i(c("/reviews"),await a({method:"POST",body:JSON.stringify(e)})),getForm:async e=>i(c(`/forms/${encodeURIComponent(e)}`),await a()),submitForm:async(e,t)=>i(c(`/forms/${encodeURIComponent(e)}/submissions`),await a({method:"POST",body:JSON.stringify(t)})),listShippingMethods:async()=>{try{return await i(c("/shipping-methods"),await a())}catch(e){return console.warn("[products.listShippingMethods] product API unavailable, returning []",e),[]}},listCountrySubdivisions:async e=>{try{return await i(c(`/countries/${encodeURIComponent(e)}/subdivisions`),await a())}catch(t){return console.warn("[products.listCountrySubdivisions] unavailable, returning []",t),[]}},quoteCart:async e=>{let t=c("/cart/quote"),r=await a({method:"POST",body:JSON.stringify(e)});return e.couponCode?(await he(t,r)).data:i(t,r)},validateCoupon:async e=>{let{data:t,asShopper:r}=await he(c("/coupons/validate"),await a({method:"POST",body:JSON.stringify(e)}));return{...t,askedAsShopper:r}},getHeaderSettings:async()=>{let e=Ae({method:"GET"}),t=await i(await g(c("/header-settings")),await a({signal:e})),r=T(t.logoUrl),n=null,s=null;if(r&&L(r)){let o=await ue(r,e);o&&(n=o.reversed,s=o.inkIsDark)}return{...t,logoUrl:r,logoReversed:n,logoInkIsDark:s}},getThemeSettings:async()=>i(await g(c("/theme-settings")),await a()),getChatSettings:async()=>i(await g(c("/chat-settings")),await a())},Kt={listServices:async()=>{try{return await i(c("/bookings/services"),await a())}catch(e){return console.warn("[bookings.listServices] API unavailable, returning []",e),{results:[],currency:"USD"}}},getAvailability:async(e,t)=>i(c(`/bookings/availability?service=${encodeURIComponent(e)}&date=${t}`),await a()),create:async e=>i(c("/bookings"),await a({method:"POST",body:JSON.stringify(e)})),get:async e=>i(c(`/bookings/manage/${encodeURIComponent(e)}`),await a()),cancel:async e=>i(c(`/bookings/manage/${encodeURIComponent(e)}/cancel`),await a({method:"POST"})),createPaymentIntent:async e=>i(c("/bookings/payments/intent"),await a({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/",Pe=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/",we=e=>`/api/storefront/social-settings/?${new URLSearchParams({site:e})}`,D=e=>`/api/storefront/sites/${encodeURIComponent(e)}/`,St=e=>`${D(e)}currencies/`,Pt="/api/storefront/media/ingest/",J=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 bt(){let e=pe();if(!e)throw new J;return`${Pt}?${new URLSearchParams({site:e})}`}var F={"X-Puck-Media-Manifest":X.contentHash},l=(e,t={})=>i(e,{...t,audience:"admin"}),jt={findPageBySlug:async(e,t,r)=>{let n=new URLSearchParams({slug:e});r&&n.set("site",r);let s=await l(`/api/storefront/pages/?${n.toString()}`,{token:t}),o=Array.isArray(s)?s:s.results??[];if(!r&&o.length>1)throw new H(e,o.length);return o[0]??null},getPageById:(e,t)=>l(`/api/storefront/pages/${e}/`,{token:t}),saveLayout:(e,t,r,n,s)=>l(`/api/storefront/pages/${e}/`,{method:"PATCH",body:JSON.stringify({layout:t,expected_updated_at:n,...s?{client_id:s}:{}}),token:r}),publishPage:(e,t,r)=>l(`/api/storefront/pages/${e}/publish/`,{method:"POST",body:r?JSON.stringify({expected_updated_at:r}):void 0,token:t}),claimPageEditLock:(e,t,r,n=!1)=>l(`/api/storefront/pages/${e}/edit-lock/`,{method:"POST",body:JSON.stringify({client_id:r,takeover:n}),token:t}),releasePageEditLock:(e,t)=>l(`/api/storefront/pages/${e}/edit-lock/`,{method:"DELETE",token:t}),createTemplate:(e,t,r)=>l("/api/storefront/page-templates/",{method:"POST",body:JSON.stringify({name:e,layout:t}),headers:F,token:r}),getTemplate:(e,t)=>l(`/api/storefront/page-templates/${e}/`,{token:t}),saveTemplateLayout:(e,t,r)=>l(`/api/storefront/page-templates/${e}/`,{method:"PATCH",body:JSON.stringify({layout:t}),headers:F,token:r}),listTemplatePages:async(e,t)=>{let r=await l(`/api/storefront/template-pages/?template=${encodeURIComponent(e)}`,{token:t});return Array.isArray(r)?r:r.results??[]},findTemplatePageBySlug:async(e,t,r)=>{let n=await l(`/api/storefront/template-pages/?template=${encodeURIComponent(e)}&slug=${encodeURIComponent(t)}`,{token:r});return(Array.isArray(n)?n:n.results??[])[0]??null},createTemplatePage:(e,t,r)=>l("/api/storefront/template-pages/",{method:"POST",body:JSON.stringify({template:e,...t}),headers:F,token:r}),saveTemplatePageLayout:(e,t,r)=>l(`/api/storefront/template-pages/${e}/`,{method:"PATCH",body:JSON.stringify({layout:t}),headers:F,token:r}),deleteTemplatePage:(e,t)=>l(`/api/storefront/template-pages/${e}/`,{method:"DELETE",token:t}),listPages:async(e,t)=>{let r=new URLSearchParams({no_page:"true"});t&&r.set("site",t);let n=await l(`/api/storefront/pages/?${r.toString()}`,{token:e});return Array.isArray(n)?n:n.results??[]},createPage:(e,t,r,n)=>l("/api/storefront/pages/",{method:"POST",body:JSON.stringify({title:e,slug:t,layout:r}),token:n}),deletePage:(e,t)=>l(`/api/storefront/pages/${e}/`,{method:"DELETE",token:t}),getHeaderSettings:(e,t)=>l(x(t),{token:e}),listMenus:async(e,t)=>{let r=new URLSearchParams({no_page:"true"});t&&r.set("site",t);let n=await l(`/api/storefront/menus/?${r}`,{token:e});return Array.isArray(n)?n:n.results??[]},listBlogPosts:async(e,t={})=>{let r=new URLSearchParams({no_page:"true"});t.visibleOnly&&r.set("is_visible","true"),t.siteId&&r.set("site",t.siteId);let n=await l(`/api/storefront/blog-posts/?${r.toString()}`,{token:e});return Array.isArray(n)?n:n.results??[]},listFieldUsage:async(e,t)=>{let r=await l(`/api/storefront/field-usage/?site=${encodeURIComponent(t)}`,{token:e});return Array.isArray(r?.entries)?r.entries:[]},listCategories:async(e,t={})=>{let r=new URLSearchParams({no_page:"true"});t.visibleOnly&&r.set("is_visible","true"),t.siteId&&r.set("site",t.siteId);let n=await l(`/api/storefront/categories/?${r.toString()}`,{token:e});return[...Array.isArray(n)?n:n.results??[]].sort((o,m)=>o.sort_order-m.sort_order||o.name.localeCompare(m.name))},listForms:async(e,t={})=>{let r=new URLSearchParams({no_page:"true"});t.siteId&&r.set("site",t.siteId);let n=await l(`/api/storefront/forms/?${r.toString()}`,{token:e});return[...Array.isArray(n)?n:n.results??[]].sort((o,m)=>o.title.localeCompare(m.title))},listWheelSummaries:async(e,t={})=>{let r=new URLSearchParams;t.siteId&&r.set("site",t.siteId);let n=r.toString(),s=await l(`/api/storefront/wheel-curations/summaries/${n?`?${n}`:""}`,{token:e});return h(s)},listProducts:async(e,t={})=>{let r=new URLSearchParams;t.kinds?.length&&r.set("kind",t.kinds.join(",")),t.siteId&&r.set("site",t.siteId);let n=r.toString(),s=await l(`/api/storefront/products/${n?`?${n}`:""}`,{token:e});return h(s)},getWheelDetail:async(e,t,r={})=>{let n=new URLSearchParams({slug:t});return r.siteId&&n.set("site",r.siteId),A(h(await l(`/api/storefront/wheel-curations/detail/?${n.toString()}`,{token:e})))},updateHeaderSettings:(e,t,r)=>l(x(r),{method:"PATCH",body:JSON.stringify(e),token:t}),getSite:(e,t)=>l(D(e),{token:t}),listSiteCurrencies:async(e,t)=>{let r=await l(St(e),{token:t});return Array.isArray(r)?r:[]},updateSite:(e,t,r)=>l(D(e),{method:"PATCH",body:JSON.stringify(t),token:r}),getThemeSettings:(e,t)=>l(Pe(t),{token:e}),updateThemeSettings:(e,t,r)=>l(Pe(r),{method:"PATCH",body:JSON.stringify(e),token:t}),getChatSettings:(e,t)=>l(be(t),{token:e}),updateChatSettings:(e,t,r)=>l(be(r),{method:"PATCH",body:JSON.stringify(e),token:t}),getSocialSettings:(e,t)=>l(we(t),{token:e}),updateSocialSettings:(e,t,r)=>l(we(r),{method:"PATCH",body:JSON.stringify(e),token:t}),uploadHeaderLogo:(e,t,r)=>{let n=new FormData;return n.append("logo",e),l(x(r),{method:"PATCH",body:n,token:t})},clearHeaderLogo:(e,t)=>l(x(t),{method:"PATCH",body:JSON.stringify({logo:null}),token:e}),setHeaderLogoFromAsset:(e,t,r)=>l(x(r),{method:"PATCH",body:JSON.stringify({logo_asset_id:e}),token:t}),uploadMedia:async(e,t)=>{let r=new FormData;return r.append("file",e),l(bt(),{method:"POST",body:r,token:t})},listMedia:async(e,t)=>{let r=new URLSearchParams({no_page:"true"});t&&r.set("kind",t);let n=await l(`/api/storefront/media-assets/?${r.toString()}`,{token:e});return Array.isArray(n)?n:n.results??[]}};export{X as a,z as b,Z as c,b as d,Ee as e,L as f,pe as g,ze as h,f as i,U as j,N as k,i as l,nt as m,st as n,ke as o,dt as p,gt as q,ht as r,Gt as s,Vt as t,Kt as u,H as v,l as w,jt as x};
1
+ import{c as W,e as G,i as V,k as x,q as I,r as K,t as T}from"./chunk-2I435NJQ.js";var E="x-forwarded-for";function j(e){let t=(e??"").split(",").map(r=>r.trim()).filter(Boolean);return t.length>0?t[t.length-1]:null}var ve="x-forwarded-host";function z(e,t,r){let n={};return e&&(n[ve]=e),t&&r==="uncached"&&(n[E]=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";var Y={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 Ie="shop_access_token",ee="shop_refresh_token",q=null;function B(){T.removeItem(Ie),T.removeItem(ee)}var w={getAccess(){return q},takeLegacyRefresh(){let e=T.getItem(ee);return B(),e},setTokens(e){q=e,B()},clear(){q=null,B()}};function Ee(e){return!!e.src}function A(e){let t=e.finishes.filter(Ee);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 qe(e){return e.listable!==!1}function $(e){return e.map(A).filter(qe)}var se=["fill","stroke","stop-color","color","flood-color","lighting-color","solid-color"],oe=new Set(["none","transparent","currentcolor","inherit","initial","unset","context-fill","context-stroke"]),O={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]},ie=12,ae=/\burl\(/i,ce=new RegExp(`(?<![-\\w])(${se.join("|")})(\\s*=\\s*)(["'])([^"']*)\\3`,"gi"),le=new RegExp(`((?:^|[;{\\s"'])(?:${se.join("|")})\\s*:\\s*)([^;}"'<>]+)`,"gi"),Be=/<svg\b([^>]*)>/i,$e=/\bfill\s*[=:]/i;function Ne(e){let t=e.replace(ce,(r,n,s,o,m)=>{let u=te(m);return u===null?r:`${n}${s}${o}${u}${o}`}).replace(le,(r,n,s)=>{let o=te(s);return o===null?r:`${n}${o}`});return t=t.replace(Be,(r,n)=>$e.test(n)?r:`<svg fill="#ffffff"${n}>`),t}function te(e){let t=/!important/i.test(e),r=e.replace(/!important/gi,"").trim().toLowerCase();if(!r||ae.test(r)||oe.has(r))return null;let n=r in O?[...O[r],1]:me(r);if(!n)return null;let[s,o,m,u]=n;if(Math.max(s,o,m)-Math.min(s,o,m)>ie)return null;let p=Ue(255-s,255-o,255-m,u);return t?`${p} !important`:p}function Ue(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("#")?Le(e):e.startsWith("rgb")?Me(e):e.startsWith("hsl")?De(e):null}function Le(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 Me(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 m=n?v(n):He(r);return[o[0],o[1],o[2],m]}function He(e){let t=e.split(/[\s,]+/).filter(Boolean);return t.length>=4?v(t[3]):1}function v(e){let t=e.trim().endsWith("%")?parseFloat(e)/100:parseFloat(e);return Number.isNaN(t)?1:t}function De(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]),m=parseFloat(s[1])/100,u=parseFloat(s[2])/100;if([o,m,u].some(Oe=>Number.isNaN(Oe)))return null;let p=n?v(n):s.length>=4?v(s[3]):1,[f,S,P]=Je(o,m,u);return[f,S,P,p]}function Je(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)),m=0,u=0,p=0;s<1?[m,u,p]=[n,o,0]:s<2?[m,u,p]=[o,n,0]:s<3?[m,u,p]=[0,n,o]:s<4?[m,u,p]=[0,o,n]:s<5?[m,u,p]=[o,0,n]:[m,u,p]=[n,0,o];let f=r-n/2;return[Math.round((m+f)*255),Math.round((u+f)*255),Math.round((p+f)*255)]}var re=512*1024;function N(e){return/\.svg(\?|$)/i.test(e)}function We(e){return`data:image/svg+xml,${encodeURIComponent(Ne(e))}`}function Ge(e){let t=e.replace(/!important/gi,"").trim().toLowerCase();if(!t||ae.test(t)||oe.has(t))return null;let r=t in O?[...O[t],1]:me(t);if(!r)return null;let[n,s,o]=r;return Math.max(n,s,o)-Math.min(n,s,o)>ie?null:(.2126*n+.7152*s+.0722*o)/255}function Ve(e){let t=[],r=n=>{let s=Ge(n);s!==null&&t.push(s)};for(let n of e.matchAll(ce))r(n[4]);for(let n of e.matchAll(le))r(n[2]);return t.length?t.reduce((n,s)=>n+s,0)/t.length<.5:null}var ne=/^(?:\uFEFF|\s+|<\?xml[^>]*\?>|<!--[\s\S]*?-->|<!DOCTYPE\s+svg[^>[]*>)/i;function Ke(e){let t=e;for(let r=ne.exec(t);r&&r[0].length>0;r=ne.exec(t))t=t.slice(r[0].length);return/^<svg[\s>/]/i.test(t)}async function je(e,t){if(!N(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>re)return null;let s=await r.text();return s.length>re?null:Ke(s)?s:null}catch{return null}}async function ue(e,t){let r=await je(e,t);return r===null?null:{reversed:We(r),inkIsDark:Ve(r)}}function pe(){return W().siteId()}var ze="",y=class extends Error{constructor(t,r,n){super(r),this.status=t,this.data=n}},L="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.",Ze=new Set([502,503,504]),U=0,Qe="This editor runs on its host's own backend, which does not serve this request.",Xe=5e3,Ye=15e3,et=()=>typeof window>"u"?Xe:Ye;function Ae(e){let t=(e.method??"GET").toUpperCase();if(!(e.body!=null||t!=="GET"&&t!=="HEAD")&&e.audience!=="admin"&&typeof AbortSignal?.timeout=="function")return AbortSignal.timeout(et())}var de=e=>e instanceof Error&&e.name==="TimeoutError",ge=(e,t)=>Ze.has(e)?L:t;function tt(e){if(typeof window>"u"||!e.startsWith("/api/v1/"))return e;let t=I();return!t||/[?&]site=/.test(e)?e:M(e,`site=${encodeURIComponent(t)}`)}async function i(e,t={}){let{token:r,baseUrl:n,headers:s,audience:o,...m}=t;if(typeof window<"u"&&!G())throw new y(U,Qe,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"&&m.body instanceof FormData,p;try{p=await fetch(`${n??ze}${tt(e)}`,{...m,headers:{...u?{}:{"Content-Type":"application/json"},...r?{Authorization:`Bearer ${r}`}:{},...o===null?{}:{"X-Portal-Audience":o??"shop"},...s},signal:m.signal??Ae({...m,audience:o})})}catch(P){throw P instanceof TypeError||de(P)?new y(U,L,null):P}let f;try{f=await p.text()}catch(P){throw de(P)?new y(U,L,null):P}let S=null;if(f)try{S=JSON.parse(f)}catch{throw new y(p.status,p.ok?"Expected JSON but received a non-JSON response":ge(p.status,p.statusText),f)}if(!p.ok){let P=(S&&typeof S=="object"&&"detail"in S&&typeof S.detail=="string"?S.detail:null)??ge(p.status,p.statusText);throw new y(p.status,P,S)}return S}var R=null;async function Re(){return R||(R=rt().finally(()=>{R=null}),R)}async function rt(){let e=w.takeLegacyRefresh(),t=await nt.refresh(e??void 0);return w.setTokens(t.access),t.access}async function _e(){return w.getAccess()??Re()}async function d(e,t={}){let r;try{r=await _e()}catch{throw w.clear(),new y(401,"Not signed in",null)}try{return await i(e,{...t,token:r})}catch(n){if(!(n instanceof y)||n.status!==401)throw n;try{let s=await Re();return await i(e,{...t,token:s})}catch{throw w.clear(),n}}}async function he(e,t={}){if(w.getAccess())try{return{data:await d(e,t),asShopper:!0}}catch(r){if(!(r instanceof y)||r.status!==401)throw r}return{data:await i(e,t),asShopper:!1}}async function ye(){let e=await d("/api/auth/me/");if(e.portal!=="shop")throw w.clear(),new y(403,"This session is not valid for this shop.",null);return e}var nt={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()=>{w.clear();try{await i("/api/auth/logout/",{method:"POST",body:JSON.stringify({portal:"shop"}),credentials:"include"})}catch{}},restoreSession:async()=>{let e=await _e();return await ye(),e},me:ye,updateMe:e=>d("/api/auth/me/",{method:"PATCH",body:JSON.stringify(e)}),changePassword:(e,t)=>d("/api/auth/me/",{method:"PATCH",body:JSON.stringify({password:t,old_password:e})}),changeEmail:(e,t)=>d("/api/shop-portal/change-email/",{method:"POST",body:JSON.stringify({new_email:e,current_password:t})}),myProfile:()=>d("/api/shop-portal/profile/"),updateMyProfile:e=>d("/api/shop-portal/profile/",{method:"PATCH",body:JSON.stringify(e)}),myAddresses:()=>d("/api/shop-portal/delivery-locations/"),createAddress:e=>d("/api/shop-portal/delivery-locations/",{method:"POST",body:JSON.stringify(e)}),updateAddress:(e,t)=>d(`/api/shop-portal/delivery-locations/${e}/`,{method:"PATCH",body:JSON.stringify(t)}),deleteAddress:e=>d(`/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:()=>d("/api/products/brands/"),myOrders:()=>d("/api/shop-portal/orders/").then(e=>e.results),myOrder:e=>d(`/api/shop-portal/orders/${e}/`),cancelOrder:e=>d(`/api/shop-portal/orders/${e}/cancel/`,{method:"POST"}),myReturns:e=>d(`/api/shop-portal/returns/${e?`?order=${encodeURIComponent(e)}`:""}`).then(t=>t.results),createReturn:e=>d("/api/shop-portal/returns/",{method:"POST",body:JSON.stringify(e)}),withdrawReturn:e=>d(`/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"),d("/api/shop-portal/return-media/",{method:"POST",body:r})}};function h(e){if(typeof e=="string")return e.startsWith("/media/")?V(e):e;if(Array.isArray(e))return e.map(h);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])=>[h(s),o])):h(n);return t}return e}var st="",Ce="".replace(/\/+$/,""),ke=typeof window>"u"&&Ce!=="",ot=ke?Ce:st,it=K,b=()=>({baseUrl:it(),audience:null});function c(e,t){let r=t?`?process=${encodeURIComponent(t)}`:"";return`/api/v1${e}${r}`}var at=100,fe=50;function xe(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(at)),r&&n.set("cursor",r),`/api/v1${e}?${n.toString()}`}function ct(e,t){return xe("/wheels",{process:e},t)}function lt(e,t,r){return xe("/products",{kind:e.join(","),make:t?.make,model:t?.model,year:t?.year,modification:t?.modification},r)}function mt(e){if(!e)return null;try{return new URL(e,"http://cursor.invalid").searchParams.get("cursor")}catch{return null}}async function Se(e,t,r=()=>!1){let n=[],s=null;try{for(let o=0;o<fe;o++){let m=await i(await t(s),await a());if(n.push(...m.results),s=mt(m.next),!s)break}s&&console.warn(`[${e}] stopped at ${fe} 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 ut=e=>e instanceof y&&e.status===400;function pt(e){return e.flatMap(t=>t.kind==="alloy-wheel"?$([t]):[t])}async function Te(){return(await dt()).host}async function dt(){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 gt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return j((await e()).get(E))}catch{return null}}async function ht(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get(Q)||null}catch{return null}}async function yt(){let e=await ht();if(e)return`site=${encodeURIComponent(e)}`;let t=await Te();return t?`host=${encodeURIComponent(t)}`:""}async function g(e){if(typeof window<"u"){let t=I();return t?M(e,`site=${encodeURIComponent(t)}`):e}return M(e,await yt())}function M(e,t){return t?`${e}${e.includes("?")?"&":"?"}${t}`:e}async function ft(e){if(!ke)return;let[t,r]=await Promise.all([Te(),gt()]),n=z(t,r,e);return Object.keys(n).length>0?n:void 0}async function a(e){let t=await ft(Z(e)),r={baseUrl:ot,...e};return t&&(r.headers={...t,...e?.headers}),r}var _=typeof window>"u";function C(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 Gt={listMakes:async e=>{if(_){let{fitmentData:r}=await import("./fitment-data-FSXAUWXQ.js");return r.makes(e)}return(await i(C("/makes",{region:e}),b())).results},listModels:async(e,t)=>{if(_){let{fitmentData:n}=await import("./fitment-data-FSXAUWXQ.js");return n.models(e,t)}return(await i(C("/models",{make:e,region:t}),b())).results},listYears:async(e,t,r)=>{if(_){let{fitmentData:s}=await import("./fitment-data-FSXAUWXQ.js");return s.years(e,t,r)}return(await i(C("/years",{make:e,model:t,region:r}),b())).results},listModifications:async(e,t,r,n)=>{if(_){let{fitmentData:o}=await import("./fitment-data-FSXAUWXQ.js");return o.modifications(e,t,r,n)}return(await i(C("/modifications",{make:e,model:t,year:r,region:n}),b())).results},getStockFitment:async(e,t,r,n,s)=>{if(_){let{fitmentData:o}=await import("./fitment-data-FSXAUWXQ.js");return o.stockFitment(e,t,r,n,s)}return i(C("/stock-fitment",{make:e,model:t,year:r,modification:n,region:s}),b())}},Vt={listWheels:async e=>{let t=await Se("products.listWheels",async r=>await g(ct(e,r)));return $(h(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 Se("products.listCatalog",async n=>await g(lt(e,t,n)),ut);return pt(h(r))},getWheel:async e=>A(h(await i(await g(c(`/wheels/${e}`)),await a()))),getTyre:async e=>h(await i(await g(c(`/tyres/${e}`)),await a())),listBundles:async()=>{try{return await i(await g(c("/bundles")),await a())}catch{return[]}},getBundle:async e=>i(await g(c(`/bundles/${e}`)),await a()),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 h(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}`:""}`,b());return h(o.results)}catch(n){return console.warn("[products.listGalleryBuilds] product API unavailable, returning []",n),[]}},getSite:async()=>i(await g(c("/site")),await a()),getSiteBySlug:async e=>i(`${c("/site")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await a():void 0),listBrands:async()=>{try{return(await i(await g(c("/brands")),await a())).results??[]}catch(e){return console.warn("[products.listBrands] product API unavailable, returning []",e),[]}},listBrandsForSite:async e=>(await i(`${c("/brands")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await a():void 0)).results??[],listPages:async()=>h(await i(await g(c("/pages")),await a())),listProductTemplates:async()=>{try{return await i(await g(c("/product-templates")),await a())}catch(e){return console.warn("[products.listProductTemplates] unavailable, returning []",e),[]}},listProductTypeChoices:async()=>{try{return await i(await g(c("/product-type-choices")),await a())}catch(e){return console.warn("[products.listProductTypeChoices] unavailable, returning []",e),[]}},listFieldUsage:async()=>{try{return await i(await g(c("/field-usage")),await a())}catch(e){return console.warn("[products.listFieldUsage] unavailable, returning []",e),[]}},getPage:async(e,t={})=>h(await i(await g(c(`/pages/${e}`)),await a(t.revalidate!==void 0?{next:{revalidate:t.revalidate}}:void 0))),listBlogPosts:async()=>{try{return(await i(c("/blog-posts"),await a())).map(t=>({...t,coverImage:x(t.coverImage)??""}))}catch(e){return console.warn("[products.listBlogPosts] blog API unavailable, returning []",e),[]}},getBlogPost:async e=>{let t=await i(c(`/blog-posts/${e}`),await a());return{...t,coverImage:x(t.coverImage)??""}},createOrder:async e=>i(c("/orders"),await a({method:"POST",body:JSON.stringify(e)})),createOrderAuthed:async e=>d(c("/orders"),await a({method:"POST",body:JSON.stringify(e)})),lookupOrder:async e=>i(c("/orders/lookup"),await a({method:"POST",body:JSON.stringify(e)})),createPaymentIntent:async e=>i(c("/payments/intent"),await a({method:"POST",body:JSON.stringify(e)})),createPaypalOrder:async e=>i(c("/payments/paypal/order"),await a({method:"POST",body:JSON.stringify(e)})),capturePaypalOrder:async e=>i(c("/payments/paypal/capture"),await a({method:"POST",body:JSON.stringify(e)})),createAfterpayCheckout:async e=>i(c("/payments/afterpay/checkout"),await a({method:"POST",body:JSON.stringify(e)})),captureAfterpayPayment:async e=>i(c("/payments/afterpay/capture"),await a({method:"POST",body:JSON.stringify(e)})),chargeSquare:async e=>i(c("/payments/square/charge"),await a({method:"POST",body:JSON.stringify(e)})),createGocardlessBillingRequest:async e=>i(c("/payments/gocardless/billing-request"),await a({method:"POST",body:JSON.stringify(e)})),completeGocardlessPayment:async e=>i(c("/payments/gocardless/complete"),await a({method:"POST",body:JSON.stringify(e)})),createZipCheckout:async e=>i(c("/payments/zip/checkout"),await a({method:"POST",body:JSON.stringify(e)})),captureZipPayment:async e=>i(c("/payments/zip/capture"),await a({method:"POST",body:JSON.stringify(e)})),createKlarnaCheckout:async e=>i(c("/payments/klarna/checkout"),await a({method:"POST",body:JSON.stringify(e)})),captureKlarnaPayment:async e=>i(c("/payments/klarna/capture"),await a({method:"POST",body:JSON.stringify(e)})),createStockAlert:async e=>i(c("/stock-alerts"),await a({method:"POST",body:JSON.stringify(e)})),createPreOrderIntent:async e=>i(c("/pre-order-intents"),await a({method:"POST",body:JSON.stringify(e)})),createNewsletterSubscription:async e=>i(c("/newsletter-subscriptions"),await a({method:"POST",body:JSON.stringify(e)})),unsubscribeNewsletter:async e=>i(c("/newsletter-unsubscribe"),await a({method:"POST",body:JSON.stringify(e)})),captureCart:async e=>i(c("/carts"),await a({method:"POST",body:JSON.stringify(e)})),restoreCart:async e=>i(c("/carts/restore"),await a({method:"POST",body:JSON.stringify(e)})),unsubscribeCartReminders:async e=>i(c("/carts/unsubscribe"),await a({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=c("/reviews"),n=t.toString();try{return await i(await g(n?`${r}?${n}`:r),await a())}catch(s){return console.warn("[products.listReviews] product API unavailable, returning []",s),[]}},submitReview:async e=>i(c("/reviews"),await a({method:"POST",body:JSON.stringify(e)})),getForm:async e=>i(c(`/forms/${encodeURIComponent(e)}`),await a()),submitForm:async(e,t)=>i(c(`/forms/${encodeURIComponent(e)}/submissions`),await a({method:"POST",body:JSON.stringify(t)})),listShippingMethods:async()=>{try{return await i(c("/shipping-methods"),await a())}catch(e){return console.warn("[products.listShippingMethods] product API unavailable, returning []",e),[]}},listCountrySubdivisions:async e=>{try{return await i(c(`/countries/${encodeURIComponent(e)}/subdivisions`),await a())}catch(t){return console.warn("[products.listCountrySubdivisions] unavailable, returning []",t),[]}},quoteCart:async e=>{let t=c("/cart/quote"),r=await a({method:"POST",body:JSON.stringify(e)});return e.couponCode?(await he(t,r)).data:i(t,r)},validateCoupon:async e=>{let{data:t,asShopper:r}=await he(c("/coupons/validate"),await a({method:"POST",body:JSON.stringify(e)}));return{...t,askedAsShopper:r}},getHeaderSettings:async()=>{let e=Ae({method:"GET"}),t=await i(await g(c("/header-settings")),await a({signal:e})),r=x(t.logoUrl),n=null,s=null;if(r&&N(r)){let o=await ue(r,e);o&&(n=o.reversed,s=o.inkIsDark)}return{...t,logoUrl:r,logoReversed:n,logoInkIsDark:s}},getThemeSettings:async()=>i(await g(c("/theme-settings")),await a()),getChatSettings:async()=>i(await g(c("/chat-settings")),await a())},Kt={listServices:async()=>{try{return await i(c("/bookings/services"),await a())}catch(e){return console.warn("[bookings.listServices] API unavailable, returning []",e),{results:[],currency:"USD"}}},getAvailability:async(e,t)=>i(c(`/bookings/availability?service=${encodeURIComponent(e)}&date=${t}`),await a()),create:async e=>i(c("/bookings"),await a({method:"POST",body:JSON.stringify(e)})),get:async e=>i(c(`/bookings/manage/${encodeURIComponent(e)}`),await a()),cancel:async e=>i(c(`/bookings/manage/${encodeURIComponent(e)}/cancel`),await a({method:"POST"})),createPaymentIntent:async e=>i(c("/bookings/payments/intent"),await a({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"}},k=e=>e?`/api/storefront/header-settings/?${new URLSearchParams({site:e})}`:"/api/storefront/header-settings/",Pe=e=>e?`/api/storefront/theme-settings/?${new URLSearchParams({site:e})}`:"/api/storefront/theme-settings/",we=e=>e?`/api/storefront/chat-settings/?${new URLSearchParams({site:e})}`:"/api/storefront/chat-settings/",be=e=>`/api/storefront/social-settings/?${new URLSearchParams({site:e})}`,D=e=>`/api/storefront/sites/${encodeURIComponent(e)}/`,St=e=>`${D(e)}currencies/`,Pt="/api/storefront/media/ingest/",J=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 wt(){let e=pe();if(!e)throw new J;return`${Pt}?${new URLSearchParams({site:e})}`}var F={"X-Puck-Media-Manifest":Y.contentHash},l=(e,t={})=>i(e,{...t,audience:"admin"}),jt={findPageBySlug:async(e,t,r)=>{let n=new URLSearchParams({slug:e});r&&n.set("site",r);let s=await l(`/api/storefront/pages/?${n.toString()}`,{token:t}),o=Array.isArray(s)?s:s.results??[];if(!r&&o.length>1)throw new H(e,o.length);return o[0]??null},getPageById:(e,t)=>l(`/api/storefront/pages/${e}/`,{token:t}),saveLayout:(e,t,r,n,s)=>l(`/api/storefront/pages/${e}/`,{method:"PATCH",body:JSON.stringify({layout:t,expected_updated_at:n,...s?{client_id:s}:{}}),token:r}),publishPage:(e,t,r)=>l(`/api/storefront/pages/${e}/publish/`,{method:"POST",body:r?JSON.stringify({expected_updated_at:r}):void 0,token:t}),claimPageEditLock:(e,t,r,n=!1)=>l(`/api/storefront/pages/${e}/edit-lock/`,{method:"POST",body:JSON.stringify({client_id:r,takeover:n}),token:t}),releasePageEditLock:(e,t)=>l(`/api/storefront/pages/${e}/edit-lock/`,{method:"DELETE",token:t}),createTemplate:(e,t,r)=>l("/api/storefront/page-templates/",{method:"POST",body:JSON.stringify({name:e,layout:t}),headers:F,token:r}),getTemplate:(e,t)=>l(`/api/storefront/page-templates/${e}/`,{token:t}),saveTemplateLayout:(e,t,r)=>l(`/api/storefront/page-templates/${e}/`,{method:"PATCH",body:JSON.stringify({layout:t}),headers:F,token:r}),listTemplatePages:async(e,t)=>{let r=await l(`/api/storefront/template-pages/?template=${encodeURIComponent(e)}`,{token:t});return Array.isArray(r)?r:r.results??[]},findTemplatePageBySlug:async(e,t,r)=>{let n=await l(`/api/storefront/template-pages/?template=${encodeURIComponent(e)}&slug=${encodeURIComponent(t)}`,{token:r});return(Array.isArray(n)?n:n.results??[])[0]??null},createTemplatePage:(e,t,r)=>l("/api/storefront/template-pages/",{method:"POST",body:JSON.stringify({template:e,...t}),headers:F,token:r}),saveTemplatePageLayout:(e,t,r)=>l(`/api/storefront/template-pages/${e}/`,{method:"PATCH",body:JSON.stringify({layout:t}),headers:F,token:r}),deleteTemplatePage:(e,t)=>l(`/api/storefront/template-pages/${e}/`,{method:"DELETE",token:t}),listPages:async(e,t)=>{let r=new URLSearchParams({no_page:"true"});t&&r.set("site",t);let n=await l(`/api/storefront/pages/?${r.toString()}`,{token:e});return Array.isArray(n)?n:n.results??[]},createPage:(e,t,r,n)=>l("/api/storefront/pages/",{method:"POST",body:JSON.stringify({title:e,slug:t,layout:r}),token:n}),deletePage:(e,t)=>l(`/api/storefront/pages/${e}/`,{method:"DELETE",token:t}),getHeaderSettings:(e,t)=>l(k(t),{token:e}),listMenus:async(e,t)=>{let r=new URLSearchParams({no_page:"true"});t&&r.set("site",t);let n=await l(`/api/storefront/menus/?${r}`,{token:e});return Array.isArray(n)?n:n.results??[]},listBlogPosts:async(e,t={})=>{let r=new URLSearchParams({no_page:"true"});t.visibleOnly&&r.set("is_visible","true"),t.siteId&&r.set("site",t.siteId);let n=await l(`/api/storefront/blog-posts/?${r.toString()}`,{token:e});return Array.isArray(n)?n:n.results??[]},listFieldUsage:async(e,t)=>{let r=await l(`/api/storefront/field-usage/?site=${encodeURIComponent(t)}`,{token:e});return Array.isArray(r?.entries)?r.entries:[]},listCategories:async(e,t={})=>{let r=new URLSearchParams({no_page:"true"});t.visibleOnly&&r.set("is_visible","true"),t.siteId&&r.set("site",t.siteId);let n=await l(`/api/storefront/categories/?${r.toString()}`,{token:e});return[...Array.isArray(n)?n:n.results??[]].sort((o,m)=>o.sort_order-m.sort_order||o.name.localeCompare(m.name))},listForms:async(e,t={})=>{let r=new URLSearchParams({no_page:"true"});t.siteId&&r.set("site",t.siteId);let n=await l(`/api/storefront/forms/?${r.toString()}`,{token:e});return[...Array.isArray(n)?n:n.results??[]].sort((o,m)=>o.title.localeCompare(m.title))},listWheelSummaries:async(e,t={})=>{let r=new URLSearchParams;t.siteId&&r.set("site",t.siteId);let n=r.toString(),s=await l(`/api/storefront/wheel-curations/summaries/${n?`?${n}`:""}`,{token:e});return h(s)},listProducts:async(e,t={})=>{let r=new URLSearchParams;t.kinds?.length&&r.set("kind",t.kinds.join(",")),t.siteId&&r.set("site",t.siteId);let n=r.toString(),s=await l(`/api/storefront/products/${n?`?${n}`:""}`,{token:e});return h(s)},getWheelDetail:async(e,t,r={})=>{let n=new URLSearchParams({slug:t});return r.siteId&&n.set("site",r.siteId),A(h(await l(`/api/storefront/wheel-curations/detail/?${n.toString()}`,{token:e})))},updateHeaderSettings:(e,t,r)=>l(k(r),{method:"PATCH",body:JSON.stringify(e),token:t}),getSite:(e,t)=>l(D(e),{token:t}),listSiteCurrencies:async(e,t)=>{let r=await l(St(e),{token:t});return Array.isArray(r)?r:[]},updateSite:(e,t,r)=>l(D(e),{method:"PATCH",body:JSON.stringify(t),token:r}),getThemeSettings:(e,t)=>l(Pe(t),{token:e}),updateThemeSettings:(e,t,r)=>l(Pe(r),{method:"PATCH",body:JSON.stringify(e),token:t}),getChatSettings:(e,t)=>l(we(t),{token:e}),updateChatSettings:(e,t,r)=>l(we(r),{method:"PATCH",body:JSON.stringify(e),token:t}),getSocialSettings:(e,t)=>l(be(t),{token:e}),updateSocialSettings:(e,t,r)=>l(be(r),{method:"PATCH",body:JSON.stringify(e),token:t}),uploadHeaderLogo:(e,t,r)=>{let n=new FormData;return n.append("logo",e),l(k(r),{method:"PATCH",body:n,token:t})},clearHeaderLogo:(e,t)=>l(k(t),{method:"PATCH",body:JSON.stringify({logo:null}),token:e}),setHeaderLogoFromAsset:(e,t,r)=>l(k(r),{method:"PATCH",body:JSON.stringify({logo_asset_id:e}),token:t}),uploadMedia:async(e,t)=>{let r=new FormData;return r.append("file",e),l(wt(),{method:"POST",body:r,token:t})},listMedia:async(e,t)=>{let r=new URLSearchParams({no_page:"true"});t&&r.set("kind",t);let n=await l(`/api/storefront/media-assets/?${r.toString()}`,{token:e});return Array.isArray(n)?n:n.results??[]}};export{Y as a,z as b,Z as c,w as d,Ee as e,N as f,pe as g,ze as h,y as i,L as j,U as k,i as l,nt as m,st as n,Te as o,dt as p,gt as q,ht as r,Gt as s,Vt as t,Kt as u,H as v,l as w,jt as x};