efficient-storefront-blocks 0.59.0 → 0.61.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.
- package/CHANGELOG.md +42 -0
- package/README.md +2 -1
- package/dist/chunks/{EditorPreviewCheckout-RH4YMFWR.js → EditorPreviewCheckout-55ERZEPV.js} +1 -1
- package/dist/chunks/{SiteEditorProvider-CDMOH46L.js → SiteEditorProvider-XF374NLZ.js} +1 -1
- package/dist/chunks/chunk-FCCEAXMM.js +1 -0
- package/dist/chunks/chunk-VT346MLP.js +1 -0
- package/dist/chunks/chunk-VVQ7KFQO.js +1 -0
- package/dist/chunks/chunk-YNI65Q6Z.js +250 -0
- package/dist/chunks/{fitment-data-NSCUVNS2.js → fitment-data-RORHKBID.js} +1 -1
- package/dist/editor/lib/efficient-backend.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/AlloyWheelsListing/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/CheckoutCTA/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/Collections/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/CompatibleTyres/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/DeliveryOptions/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/DetailRows/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/FitmentFinder/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/FitmentTable/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/Gallery/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/GalleryB/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/ProductGrid/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/RelatedProducts/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/SpecTable/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/index.d.ts +1 -1
- package/dist/editor/lib/puck/blocks/service/AppointmentBooking/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/Events/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/Footer/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/FooterGroup/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/FooterSocial/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/ReviewForm/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/Reviews/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/SiteFooter/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/SiteHeader/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/SubmitBox/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/SubmitBuild/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/service/SubscribeBlogs/fields.js +1 -1
- package/dist/editor/lib/puck/config.js +1 -1
- package/dist/editor.css +1 -1
- package/dist/fitment.d.ts +56 -0
- package/dist/fitment.js +1 -0
- package/dist/index.d.ts +60 -12
- package/dist/index.js +202 -214
- package/dist/links.d.ts +1 -1
- package/dist/links.js +1 -1
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/FitmentTable.js +1 -1
- package/dist/render/components/FooterSocial.d.ts +0 -4
- package/dist/render/components/FooterSocial.js +1 -1
- package/dist/render/components/PopupFrame.d.ts +11 -0
- package/dist/render/components/PopupFrame.js +1 -0
- package/dist/render/components/ProductGridSection.d.ts +0 -1
- package/dist/render/components/ProductGridSection.js +1 -1
- package/dist/render/components/SubmitBuild.d.ts +0 -7
- package/dist/render/components/SubmitBuild.js +1 -1
- package/dist/render/components/wheels-plp/AlloyWheelsListing.d.ts +2 -1
- package/dist/render/components/wheels-plp/AlloyWheelsListing.js +1 -1
- package/dist/render/components/wheels-plp/usePlpFiltersInUrl.d.ts +2 -1
- package/dist/render/components/wheels-plp/usePlpFiltersInUrl.js +1 -1
- package/dist/render/lib/api/index.d.ts +9 -0
- package/dist/render/lib/api/index.js +1 -1
- package/dist/render/lib/content/field-usage.d.ts +0 -1
- package/dist/render/lib/content/field-usage.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/AccountBlock/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/AccountBlock/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/AccountBlock/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/AlloyWheelsListing/meta.d.ts +6 -0
- package/dist/render/lib/puck/blocks/commerce/AlloyWheelsListing/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/AlloyWheelsListing/render.d.ts +0 -4
- package/dist/render/lib/puck/blocks/commerce/AlloyWheelsListing/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/BundleOffer/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/BundleOffer/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/BundleOffer/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/CartBlock/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/CartBlock/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CartBlock/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/CatalogFilterBar/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/CatalogFilterBar/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CatalogFilterBar/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/CheckoutCTA/meta.d.ts +6 -0
- package/dist/render/lib/puck/blocks/commerce/CheckoutCTA/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CheckoutCTA/render.d.ts +0 -4
- package/dist/render/lib/puck/blocks/commerce/CheckoutCTA/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/CollectionCard/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/CollectionCard/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CollectionCard/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/Collections/meta.d.ts +7 -0
- package/dist/render/lib/puck/blocks/commerce/Collections/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/Collections/render.d.ts +0 -5
- package/dist/render/lib/puck/blocks/commerce/Collections/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/meta.d.ts +9 -0
- package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/render.d.ts +0 -7
- package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/CountrySwitchBlock/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/CountrySwitchBlock/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CountrySwitchBlock/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/DeliveryOptions/meta.d.ts +6 -0
- package/dist/render/lib/puck/blocks/commerce/DeliveryOptions/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/DeliveryOptions/render.d.ts +0 -4
- package/dist/render/lib/puck/blocks/commerce/DeliveryOptions/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/DetailRows/meta.d.ts +9 -0
- package/dist/render/lib/puck/blocks/commerce/DetailRows/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/DetailRows/render.d.ts +0 -7
- package/dist/render/lib/puck/blocks/commerce/DetailRows/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/EuTyreLabel/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/EuTyreLabel/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/EuTyreLabel/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/FitmentFinder/meta.d.ts +8 -0
- package/dist/render/lib/puck/blocks/commerce/FitmentFinder/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/FitmentFinder/render.d.ts +0 -6
- package/dist/render/lib/puck/blocks/commerce/FitmentFinder/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/FitmentTable/meta.d.ts +9 -0
- package/dist/render/lib/puck/blocks/commerce/FitmentTable/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/FitmentTable/render.d.ts +0 -7
- package/dist/render/lib/puck/blocks/commerce/FitmentTable/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/Gallery/meta.d.ts +14 -0
- package/dist/render/lib/puck/blocks/commerce/Gallery/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/Gallery/render.d.ts +0 -12
- package/dist/render/lib/puck/blocks/commerce/Gallery/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/GalleryB/meta.d.ts +13 -0
- package/dist/render/lib/puck/blocks/commerce/GalleryB/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/GalleryB/render.d.ts +0 -11
- package/dist/render/lib/puck/blocks/commerce/GalleryB/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/GalleryItem/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/GalleryItem/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/GalleryItem/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/Header/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/Header/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/Header/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/ProductGrid/meta.d.ts +7 -0
- package/dist/render/lib/puck/blocks/commerce/ProductGrid/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ProductGrid/render.d.ts +0 -5
- package/dist/render/lib/puck/blocks/commerce/ProductGrid/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/ProductHero/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/ProductHero/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ProductHero/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/ProductRef/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/ProductRef/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ProductRef/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/RelatedProducts/meta.d.ts +6 -0
- package/dist/render/lib/puck/blocks/commerce/RelatedProducts/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/RelatedProducts/render.d.ts +0 -4
- package/dist/render/lib/puck/blocks/commerce/RelatedProducts/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/SearchBlock/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/SearchBlock/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/SearchBlock/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/SpecTable/meta.d.ts +7 -0
- package/dist/render/lib/puck/blocks/commerce/SpecTable/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/SpecTable/render.d.ts +0 -5
- package/dist/render/lib/puck/blocks/commerce/SpecTable/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/ThemeSwitchBlock/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/ThemeSwitchBlock/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ThemeSwitchBlock/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/TyreFitment/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/TyreFitment/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/TyreFitment/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/TyreSizes/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/TyreSizes/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/TyreSizes/render.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/metas.d.ts +31 -0
- package/dist/render/lib/puck/blocks/commerce/metas.js +1 -0
- package/dist/render/lib/puck/blocks/service/AppointmentBooking/meta.d.ts +8 -0
- package/dist/render/lib/puck/blocks/service/AppointmentBooking/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/AppointmentBooking/render.d.ts +0 -6
- package/dist/render/lib/puck/blocks/service/AppointmentBooking/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/BookingBox/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/BookingBox/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/BookingBox/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/ContactRouting/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/ContactRouting/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/ContactRouting/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/Events/meta.d.ts +7 -0
- package/dist/render/lib/puck/blocks/service/Events/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/Events/render.d.ts +0 -5
- package/dist/render/lib/puck/blocks/service/Events/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/Footer/meta.d.ts +8 -0
- package/dist/render/lib/puck/blocks/service/Footer/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/Footer/render.d.ts +0 -6
- package/dist/render/lib/puck/blocks/service/Footer/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/FooterDivider/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterDivider/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterDivider/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/FooterEmailSignup/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterEmailSignup/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterEmailSignup/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/FooterGroup/meta.d.ts +8 -0
- package/dist/render/lib/puck/blocks/service/FooterGroup/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterGroup/render.d.ts +0 -6
- package/dist/render/lib/puck/blocks/service/FooterGroup/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/FooterLogo/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterLogo/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterLogo/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/FooterMenu/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterMenu/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterMenu/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/FooterSocial/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterSocial/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterSocial/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/FooterText/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterText/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterText/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/Form/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/Form/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/Form/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/LegalLineBlock/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/LegalLineBlock/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/LegalLineBlock/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/ReviewForm/meta.d.ts +6 -0
- package/dist/render/lib/puck/blocks/service/ReviewForm/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/ReviewForm/render.d.ts +0 -4
- package/dist/render/lib/puck/blocks/service/ReviewForm/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/Reviews/meta.d.ts +6 -0
- package/dist/render/lib/puck/blocks/service/Reviews/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/Reviews/render.d.ts +0 -4
- package/dist/render/lib/puck/blocks/service/Reviews/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/SiteFooter/meta.d.ts +7 -0
- package/dist/render/lib/puck/blocks/service/SiteFooter/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/SiteFooter/render.d.ts +0 -5
- package/dist/render/lib/puck/blocks/service/SiteFooter/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/SiteHeader/meta.d.ts +7 -0
- package/dist/render/lib/puck/blocks/service/SiteHeader/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/SiteHeader/render.d.ts +0 -5
- package/dist/render/lib/puck/blocks/service/SiteHeader/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/SubmitBox/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/SubmitBox/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/SubmitBox/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/SubmitBuild/meta.d.ts +8 -0
- package/dist/render/lib/puck/blocks/service/SubmitBuild/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/SubmitBuild/render.d.ts +0 -6
- package/dist/render/lib/puck/blocks/service/SubmitBuild/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/Subscribe/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/Subscribe/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/Subscribe/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/SubscribeBlogs/meta.d.ts +17 -0
- package/dist/render/lib/puck/blocks/service/SubscribeBlogs/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/SubscribeBlogs/render.d.ts +0 -15
- package/dist/render/lib/puck/blocks/service/SubscribeBlogs/render.js +1 -1
- package/dist/render/lib/puck/blocks/service/metas.d.ts +25 -0
- package/dist/render/lib/puck/blocks/service/metas.js +1 -0
- package/dist/render/lib/puck/current-product.js +1 -1
- package/dist/render/lib/puck/current-record.d.ts +0 -2
- package/dist/render/lib/puck/current-record.js +1 -1
- package/dist/render/lib/puck/lazy-draws.d.ts +5 -0
- package/dist/render/lib/puck/lazy-draws.js +1 -0
- package/dist/render/lib/puck/render-config.js +1 -1
- package/dist/render/lib/puck/storefront-root.d.ts +1 -0
- package/dist/render/lib/puck/storefront-root.js +1 -1
- package/dist/render/lib/sections/footer-social-gap.d.ts +4 -0
- package/dist/render/lib/sections/footer-social-gap.js +1 -0
- package/dist/render/lib/sections/product-grid-title.d.ts +2 -0
- package/dist/render/lib/sections/product-grid-title.js +1 -0
- package/dist/render/lib/sections/submit-build-copy.d.ts +7 -0
- package/dist/render/lib/sections/submit-build-copy.js +1 -0
- package/dist/render/lib/wheels/catalog-default-layout.d.ts +0 -6
- package/dist/render/lib/wheels/catalog-default-layout.js +1 -1
- package/dist/render/lib/wheels/fitment-columns.d.ts +6 -1
- package/dist/render/lib/wheels/fitment-columns.js +1 -1
- package/dist/render/lib/wheels/plp-hydrate.d.ts +2 -0
- package/dist/render/lib/wheels/plp-hydrate.js +1 -1
- package/dist/words.d.ts +26 -10
- package/dist/words.js +5 -5
- package/package.json +11 -4
- package/dist/chunks/chunk-76GXRMJK.js +0 -1
- package/dist/chunks/chunk-GHD5CTVU.js +0 -1
- package/dist/chunks/chunk-U72V3KUB.js +0 -261
- package/dist/chunks/chunk-UZYSAKGR.js +0 -1
- /package/dist/chunks/{chunk-2PHMIP2S.js → chunk-I6VNNXUI.js} +0 -0
- /package/dist/chunks/{chunk-U72V3KUB.js.LEGAL.txt → chunk-YNI65Q6Z.js.LEGAL.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as ut,j as me,r as ct,t as dt,u as ft,w as B}from"./chunk-76GXRMJK.js";import{Aa as pe,Ba as at,Ea as $e,Fa as st,Ia as Be,Ja as We}from"./chunk-2PHMIP2S.js";import{i as lt,k as oe}from"./chunk-GHD5CTVU.js";import{createContext as sn,useContext as ln,useEffect as un,useMemo as he,useState as gt}from"react";function pt(e,t){return e.map(n=>({partNumber:n.partNumber,quantity:n.wheels*t}))}function ie(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 qe=4,Pr=1,wr={unit:"set",spares:0,spareSide:"left"};function mt(e){return e.unit==="single"?1:qe+e.spares}function _r(e,t){return[{partNumber:e.partNumber,wheels:mt(t),prices:e.prices}]}function Rr(e,t){let n=mt(t)-qe;if(n<=0||e.length===0)return e;let r=on(e),o=r?r[t.spareSide]:0;return e.map((i,a)=>a===o?{...i,wheels:i.wheels+n}:i)}function on(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 an(e,t){return t.spares>0?`${e} + spare`:e}function Nr(e){return e.unit==="single"?"Single":an(`Set of ${qe}`,e)}var Lr="data-add-to-basket",Ge=9,Ne="en";function ge(e,t,n=0){return new Intl.NumberFormat(Ne,{style:"currency",currency:t,minimumFractionDigits:0,maximumFractionDigits:n}).format(e)}function Ir(e,t){return new Intl.NumberFormat(Ne,{style:"currency",currency:t}).format(e)}import{jsx as pn}from"react/jsx-runtime";var cn="storefront-country",ht=cn,yt=sn(null);function dn(e){return bt(e,"catalogue")}function fn(e){return bt(e,"money")}function bt(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 s=n.get(i)??0;a=new Intl.NumberFormat(Ne,{style:"currency",currency:i,minimumFractionDigits:t==="money"?s:0,maximumFractionDigits:s}),r.set(i,a)}return a.format(o)}}function Mr({children:e,currencies:t,countries:n,defaultCurrency:r,defaultCountry:o}){let i=he(()=>t??[],[t]),a=he(()=>n??[],[n]),s=he(()=>r||i.find(y=>y.isDefault)?.code||i[0]?.code||"",[r,i]),c=he(()=>o||a.find(y=>y.isDefault)?.code||a[0]?.code||"",[o,a]),[u,f]=gt(c),[d,S]=gt(!1);un(()=>{let y=oe.getItem(ht);y&&a.some(w=>w.code===y)&&f(y),S(!0)},[a]);function R(y){f(y),oe.setItem(ht,y)}let C=he(()=>{let y=a.find(v=>v.code===u)??null,w=y?.currency,O=w&&i.some(v=>v.code===w)?w:s,M=dn(i),L=fn(i);return{country:u,currency:O,setCountry:R,currencies:i,countries:a,activeCountry:y,formatPrice:(v,x)=>M(v,x??O),formatMoney:(v,x)=>L(v,x??O),ready:d}},[u,i,a,s,d]);return pn(yt.Provider,{value:C,children:e})}function Ct(){let e=ln(yt);if(!e)throw new Error("useCurrency must be used within a CurrencyProvider");return e}import{createContext as Nn,useCallback as T,useContext as Ln,useEffect as j,useMemo as Tt,useRef as ae,useState as k}from"react";function St(e,t){return e.valid?!1:e.reason==="firstOrderOnly"?!0:e.reason==="notEligible"&&!t}var vt="We'll confirm this discount when you place your order.",Hr="Confirmed at checkout";function $r(e){return e&&(e.valid||e.deferred)?e.code:void 0}var xt="coupon_code: ";function Br(e){return!(e instanceof me)||e.status!==400||!e.message.startsWith(xt)?null:e.message.slice(xt.length)}function Et(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 Le="Price on request",gn="Request a quote",hn="from ",Kr="From ",zr="each",Pt="Free";function Ke(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function ze(e,t){let n=e?.[t];return Ke(n)?n:null}function Xr(e,t,n,r){let o=ze(e,n),i=ze(t,n);return o===null&&i===null?0:o===null?1:i===null?-1:r==="asc"?o-i:i-o}function Yr(e,t,n,r){if(n==null&&r==null)return!0;let o=ze(e,t);return!(o===null||n!=null&&o<n||r!=null&&o>r)}var yn={priced:!1,unit:null,was:null,onSale:!1,setTotal:null};function bn(e,t,n){if(!Ke(e))return yn;let r=Ke(t)&&t>e?t:null;return{priced:!0,unit:e,was:r,onSale:r!==null,setTotal:n!=null?e*n:null}}function Vr(e,t,n=""){return!e.priced||e.unit==null?Le:`${n}${ge(e.unit,t)}`}function jr(e,t){return e.was==null?null:ge(e.was,t)}function Cn(e,t,n=1){let r=ie(e,t);if(r===null)return{priced:!1,unit:null,isFrom:!1,setTotal:null};let o=e.reduce((a,s)=>a+s.wheels,0),i=Math.min(...e.map(a=>a.prices[t]));return{priced:!0,unit:i,isFrom:i*o!==r,setTotal:r*n}}var xn={priced:!1,unit:null,isFrom:!1,was:null,onSale:!1,setTotal:null};function Qr(e,t,n,r=1){let o=bn(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=Cn(t.components,n,r);return a.priced?{priced:!0,unit:a.unit,isFrom:a.isFrom,was:null,onSale:!1,setTotal:a.setTotal,fromSetTotal:i}:{...xn,fromSetTotal:i}}function Sn(e,t){return!e.priced||e.unit==null?Le:`${e.isFrom?hn:""}${ge(e.unit,t)}`}function Zr(e,t){return e.was==null?null:ge(e.was,t)}function Jr(e,t){return!e.priced||e.unit==null?gn:Sn(e,t)}var vn=/^[^@\s]+@[^@\s]+\.[^@\s]+$/;function wt(e){return vn.test(e.trim())}var _t="sf:ga-purchases",En=20;function Nt(){return typeof window>"u"||window.parent!==window}function ye(...e){try{if(Nt()||typeof window.gtag!="function")return;window.gtag(...e)}catch{}}function Pn(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:ie(e.components,t)??0,quantity:e.qty}}function Xe(e,t){return e.filter(Ie).map(n=>Pn(n,t))}function io(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 Lt(e,t){let n=Xe([e],t);n.length!==0&&ye("event","add_to_cart",{currency:t,value:n[0].price*n[0].quantity,items:n})}function ao(e){let t=Xe(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 Rt=new Set;function wn(e){if(Rt.has(e))return!1;Rt.add(e);try{let t=JSON.parse(oe.getItem(_t)??"[]");if(t.includes(e))return!1;oe.setItem(_t,JSON.stringify([...t,e].slice(-En)))}catch{}return!0}function so(e){let t=e.confirmation;if(Nt()||!wn(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:Xe(e.lines,n)}),e.adsSendTo&&ye("event","conversion",{send_to:e.adsSendTo,transaction_id:t.orderNumber,currency:n,value:r})}var _n="Arranged after review",It="Calculated at checkout",Rn=It,co=It;function At({quoted:e,optionCount:t,chosenAmount:n,couponWaivesFreight:r}){return e&&t===0?"arranged":r?"free":n===void 0?"pending":n===0?"free":"charged"}function fo(e){switch(e){case"arranged":return _n;case"pending":return Rn;case"free":return Pt;case"charged":return null}}import{jsx as kn}from"react/jsx-runtime";var In=400,An=400,Tn=1500;function Ie(e){return(e.components?.length??0)>0}function kt(e,t){return{code:e,valid:t.valid,deferred:St(t,t.askedAsShopper),message:t.message||void 0,effects:t.effects??void 0}}function Mt(e,t){return ie(e.components,t)}function Ye(e,t){let n=Mt(e,t);return n===null?null:n*e.qty}function Ot(e){return e!=="tyre"}var Dt=Nn(null);function Po({children:e,preview:t=!1}){let{currency:n,country:r,formatMoney:o}=Ct(),[i,a]=k(t),[s,c]=k([]),[u,f]=k([]),[d,S]=k([]),[R,C]=k(!1),[y,w]=k(!1),[O,M]=k(!1),[L,v]=k(!1),[x,W]=k(null),[I,q]=k(void 0),b=ae(r),_=ae("");b.current=b.current||r;let[p,G]=k(null),[Q,F]=k(!1),[D,ve]=k(null),K=ae(void 0),Y=T(()=>a(!0),[]),le=T(()=>a(!1),[]),Z=T(()=>a(l=>!l),[]);j(()=>{t||typeof window>"u"||new URLSearchParams(window.location.search).get("cart")==="open"&&Y()},[Y,t]);let Ee=T(l=>{v(!0),Ot(l)&&M(!0)},[]),U=O||s.some(l=>Ot(l.kind)),Pe=L||s.length>0;j(()=>{if(t||!U||R)return;let l=!0;return B.listWheels().then(m=>{l&&(f(m),C(!0))}),()=>{l=!1}},[t,U,R]),j(()=>{if(t||!Pe||y)return;let l=!0;return B.listBundles().then(m=>{l&&(S(m),w(!0))}),()=>{l=!1}},[t,Pe,y]);let P=x?.deliveryOptions??[];j(()=>{P.length!==0&&ve(l=>l&&P.some(m=>m.id===l)?l:P[0]?.id??null)},[x]);let J=T(()=>s.filter(Ie).flatMap(l=>pt(l.components,l.qty)),[s]),ee=T(async(l,m)=>{let h=l.trim().toUpperCase();if(!h)return;let g=J();if(g.length===0){G({code:h,valid:!1,message:"Add a wheel to the cart first."});return}F(!0),K.current=m;try{let N=await B.validateCoupon({code:h,items:g,currency:n,shippingMethodId:D??void 0,customerEmail:m});G(kt(h,N))}catch{G({code:h,valid:!1,message:"Could not check that code. Please try again."})}finally{F(!1)}},[J,n,D]),ue=T(()=>{G(null),K.current=void 0},[]),ce=T(l=>{if(!p)return;let{code:m}=p;G(h=>h&&h.code===m?{code:m,valid:!1,refused:!0,message:l}:h)},[p]);j(()=>{if(!p||p.refused)return;let l=p.code,m=g=>g!==null&&g.code===l&&!g.refused,h=setTimeout(async()=>{let g=J();if(g.length===0){G(N=>m(N)?{code:l,valid:!1,message:"Add a wheel to the cart first."}:N);return}F(!0);try{let N=await B.validateCoupon({code:l,items:g,currency:n,shippingMethodId:D??void 0,customerEmail:K.current});G(fe=>m(fe)?kt(l,N):fe)}catch{}finally{F(!1)}},In);return()=>clearTimeout(h)},[s,n,D]);let te=p&&!p.refused?p.code:void 0;j(()=>{if(t)return;let l=!0,m=setTimeout(async()=>{let h=J();if(h.length===0){W(null),q(void 0);return}try{let g=await B.quoteCart({items:h,currency:n,shippingMethodId:D??void 0,couponCode:te,customerEmail:K.current||void 0,country:b.current||void 0,subdivision:_.current||void 0});if(!l)return;W(g)}catch{if(!l)return}q(te)},An);return()=>{l=!1,clearTimeout(m)}},[s,n,D,te,r]);let de=T(l=>{c(m=>{let h=m.findIndex(g=>g.id===l.id);return h===-1?[...m,l]:m.map((g,N)=>N===h?{...g,qty:Math.min(Ge,g.qty+l.qty)}:g)}),Lt(l,n)},[n]),ne=T(l=>{c(m=>m.filter(h=>h.id!==l))},[]),we=T((l,m)=>{let h=Math.max(1,Math.min(Ge,m));c(g=>g.map(N=>N.id===l?{...N,qty:h}:N))},[]),_e=T(l=>{c(l)},[]),[E,H]=k(null),V=ae(null);V.current=E;let $=ae(null),Fe=ae(""),tt=T((l,m)=>{let h=l.trim().toLowerCase();wt(h)&&H(g=>g&&g.email===h&&g.firstName===(m??"")?g:{email:h,firstName:m??""})},[]);j(()=>{if(t||!E)return;let l=Et(s.filter(Ie),g=>Ye(g,n)===null?Le:o(Ye(g,n),n)),m={email:E.email,firstName:E.firstName,currency:n,items:l},h=JSON.stringify(m);if(h!==Fe.current)return $.current&&clearTimeout($.current),$.current=setTimeout(()=>{$.current=null,Fe.current=h,B.captureCart(m).catch(g=>{})},Tn),()=>{$.current&&(clearTimeout($.current),$.current=null)}},[s,E,n,t]);let nt=T(()=>{$.current&&(clearTimeout($.current),$.current=null);let l=V.current;l&&(Fe.current="",B.captureCart({email:l.email,firstName:l.firstName,currency:n,items:[]}).catch(m=>{}))},[n]),rt=Tt(()=>{let l=s.reduce((A,re)=>{let Re=Ye(re,n);return Re===null?A:A+Re},0),m=s.some(A=>Mt(A,n)===null),h=s.reduce((A,re)=>A+re.qty,0),g=p?.valid?p.effects:void 0,N=g?Math.min(l,Number(g.discountAmount)):0,fe=x?.bundleDiscount??0,Jt=x?.appliedBundles??[],Ue=!!g?.freeShipping,ot=P.find(A=>A.id===D),it=Ue?0:x?.shipping??ot?.amount??0,en=At({quoted:x!==null,optionCount:P.length,chosenAmount:ot?.amount,couponWaivesFreight:Ue}),He={};for(let A of g?.freeUnits??[])He[A.partNumber]=(He[A.partNumber]??0)+A.quantity;let tn=x?.tax??null,nn=x?x.grandTotal:l-N-fe+it;return{sets:h,units:s.reduce((A,re)=>A+(re.components??[]).reduce((Re,rn)=>Re+rn.wheels*re.qty,0),0),subtotal:l,hasUnpricedLine:m,discount:N,bundleDiscount:fe,appliedBundles:Jt,shipping:it,freeShipping:Ue,shippingStatus:en,freeUnitsByPartNumber:He,tax:tn,grand:nn,repricing:!!p?.refused&&x!==null&&I===p?.code,currency:n}},[s,n,p,P,D,x,I]),Zt=Tt(()=>({isOpen:i,preview:t,open:Y,close:le,toggle:Z,items:s,catalog:u,bundles:d,warmCatalog:Ee,add:de,remove:ne,setQty:we,replaceItems:_e,identify:tt,clearCapturedCart:nt,coupon:p,applyCoupon:ee,removeCoupon:ue,refuseCoupon:ce,couponBusy:Q,deliveryOptions:P,shippingMethodId:D,setShippingMethodId:ve,totals:rt}),[i,t,Y,le,Z,s,u,d,Ee,de,ne,we,_e,tt,nt,p,ee,ue,ce,Q,P,D,rt]);return kn(Dt.Provider,{value:Zt,children:e})}function Ft(){let e=Ln(Dt);if(!e)throw new Error("useCart() must be called inside <CartProvider>. Mount the provider in app/layout.tsx.");return e}import{cache as Gn}from"react";function Ut(e,t,n,r){for(;e.size>=t;){let o,i;for(let[s,c]of e){if(c.expiresAt<=r){o=s;break}i===void 0&&n(s)&&(i=s)}let a=o??i??e.keys().next().value;if(a===void 0)return;e.delete(a)}}var On=6e4,Mn=5e3,Dn=500,Ae=new Map;async function Fn(e){let{host:t,matchesRequestHost:n}=await ct();if(!t)return"";let r=await dt();return r?`${e}|slug:${encodeURIComponent(t)}/${encodeURIComponent(r)}`:n?`${e}|host:${t}`:`${e}|xhost:${t}`}var Un=e=>e.includes("|slug:")||e.includes("|xhost:");async function Ht(e,t){if(await ft()!==null)return t();let n=await Fn(e);if(!n)return t();let r=Date.now(),o=Ae.get(n);if(o&&o.expiresAt>r)return o.load;let i=await t(),a=i.outcome.state==="failed",s=a?Mn:On,c=Ae.get(n)?.lastGood,u=i.outcome.state==="ok"?i:a?c:void 0,f=a&&u?u:i;return Ut(Ae,Dn,Un,r),Ae.set(n,{load:f,expiresAt:r+s,lastGood:u}),f}var Hn=404;function $n(e){if(e instanceof me&&e.status===Hn)return{state:"absent"};let t=e instanceof me?e.status:-1,n=e instanceof Error?e.message:String(e);return{state:"failed",status:t,detail:n}}var Bn="[storefront:chrome-load-failed]";function Wn(e,t){console.error(`${Bn} ${e} status=${t.status} \u2014 serving fallback chrome`,t.detail)}async function $t(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=$n(o);return i.state==="failed"&&Wn(e,i),{value:n,outcome:i}}}function qn(e){return e==="production"?"silent":"banner"}var To=qn("production");function Kn(e,t){return e?.trim()||t}function $o({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 zn={name:pe,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,consentEnabled:!1,consentPrivacyPage:null,consentNoticeOptOut:!1,socialLinks:$e},Bo=Gn(async()=>Ht("site",()=>$t("site",async()=>{let e=await B.getSite();return{name:at(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,consentEnabled:e.consentEnabled??!1,consentPrivacyPage:e.consentPrivacyPage??null,consentNoticeOptOut:e.consentNoticeOptOut??!1,socialLinks:st(e.socialLinks)}},zn)));var Wo={name:pe,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,consentEnabled:!1,consentPrivacyPage:null,consentNoticeOptOut:!1,socialLinks:$e};import{jsx as Ce,jsxs as Ve}from"react/jsx-runtime";import{useEffect as Te,useId as jn,useRef as Wt,useState as ke}from"react";import{efficientClientOpen as Xn}from"efficient-easel/screen/lib/session";var be=new Map,Yn=64;async function Vn(e){if(!Xn())return null;try{let t=await fetch(`${lt()}/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 Bt(e){let t=be.get(e);if(t)return t;let n=Vn(e);if(be.set(e,n),be.size>Yn){let r=be.keys().next();r.done||be.delete(r.value)}return n}var Qn=202/22,Zn=.88,ri=16,Jn="invert(1)";function oi({variant:e="header",scrolled:t=!0,src:n,reverse:r=!1,color:o=null,onLightSurface:i,reversedSrc:a,inkIsDark:s,size:c="medium",sizePx:u,wordmark:f,siteName:d=pe,fitToContainer:S=!1,fitWordmarkToContainer:R=!1,fitFloorPx:C}){let y=f&&f.trim()?f.trim():d,[w,O]=ke(!1),M=Wt(null),L=E=>{M.current=E};Te(()=>{let E=M.current?.ownerDocument??document,H=()=>{O(E.documentElement.getAttribute("data-theme")==="light")};H();let V=new MutationObserver(H);return V.observe(E.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>V.disconnect()},[]);let v=n&&n.trim()?n.trim():null,x=!!v&&ut(v),W=i??(w&&t),I=o&&o.trim()?o.trim():null,q=r&&!I,b=`logo-color-${jn().replace(/[^A-Za-z0-9_-]/g,"")}`,_=q&&x&&v&&a!=null?{reversed:a,inkIsDark:s??null}:null,p=_!==null,[G,Q]=ke(null);Te(()=>{if(!q||!v||!x||p){Q(null);return}let E=!1;return Q(null),Bt(v).then(H=>{E||Q(H)}),()=>{E=!0}},[q,v,x,p]);let F=_??G,D=!!F&&F.inkIsDark!==null&&(W?!F.inkIsDark:F.inkIsDark),ve=q&&!!v&&!x&&!W,K=D&&F?F.reversed:v,Y=K?[K]:[],[le,Z]=ke(0);Te(()=>{Z(0)},[v,D]);let Ee=e==="footer"?We:Be[c],U=u&&u>0?u:Ee,Pe=Math.round(U*Qn),P=le<Y.length?Y[le]:null,[J,ee]=ke(K),ue=P!==null&&P===J,ce=Wt(null);Te(()=>{let E=ce.current;if(!E||!E.complete)return;if(E.naturalWidth>0||E.naturalHeight>0){ee(P);return}let H=!1;return E.decode().then(()=>!H&&ee(P),()=>!H&&Z(V=>V+1)),()=>{H=!0}},[P]);let te=S||R,de=`calc(100cqi / ${((y.length+1)*Zn).toFixed(2)})`,ne=te&&C&&C>0?Math.min(C,U):null,we=te?ne===null?`min(${U}px, ${de})`:`clamp(${ne}px, ${de}, ${U}px)`:`${U}px`,_e=Ve("span",{className:`font-display font-bold tracking-[0.18em] ${ne===null?"whitespace-nowrap":"whitespace-normal"}`,style:{fontSize:we,lineHeight:1,...I?{color:I}:{}},"aria-label":y,children:[y,Ce("span",{className:"text-accent",style:I?{color:I}:void 0,children:"."})]});return Ve("span",{ref:L,className:"inline-flex items-center",children:[!ue&&_e,I&&P&&Ce("svg",{"aria-hidden":"true",focusable:"false",width:"0",height:"0",style:{position:"absolute"},children:Ve("filter",{id:b,colorInterpolationFilters:"sRGB",children:[Ce("feFlood",{style:{floodColor:I}}),Ce("feComposite",{in2:"SourceAlpha",operator:"in"})]})}),P&&Ce("img",{ref:ce,src:P,alt:y,width:Pe,height:U,className:"shrink-0 object-contain",style:{...ue?{height:`${U}px`,width:"auto",...S?{maxWidth:"100cqi"}:{}}:{display:"none"},...ve?{filter:Jn}:{},...I?{filter:`url(#${b})`}:{}},onLoad:()=>ee(P),onError:()=>Z(E=>E+1)},P)]})}import{jsx as xe,jsxs as tr}from"react/jsx-runtime";function er({spokes:e,mesh:t=!1,className:n}){let a=c=>Math.round(c*1e3)/1e3,s=[];for(let c=0;c<e;c++){let u=c/e*Math.PI*2-Math.PI/2;if(s.push({x1:a(100+Math.cos(u)*22),y1:a(100+Math.sin(u)*22),x2:a(100+Math.cos(u)*86),y2:a(100+Math.sin(u)*86),main:!0}),t){let f=u+Math.PI/e;s.push({x1:a(100+Math.cos(f)*22*1.4),y1:a(100+Math.sin(f)*22*1.4),x2:a(100+Math.cos(f)*78),y2:a(100+Math.sin(f)*78),main:!1})}}return tr("svg",{viewBox:"0 0 200 200",fill:"none",stroke:"currentColor",className:n??"block h-[70%] w-[70%] transition-transform duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",children:[xe("circle",{cx:100,cy:100,r:92,strokeWidth:2}),xe("circle",{cx:100,cy:100,r:84,strokeWidth:1,opacity:.4}),xe("circle",{cx:100,cy:100,r:22,strokeWidth:2}),xe("circle",{cx:100,cy:100,r:6,fill:"currentColor"}),s.map((c,u)=>xe("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},u))]})}var li="#c9a461",qt=[{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"}],ui={name:"",color:"var(--fg)",family:"silver",src:""};function nr(e,t){let n=r=>{let o=qt.findIndex(i=>i.f===r);return o===-1?qt.length:o};return n(e)-n(t)||e.localeCompare(t)}function ci(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(nr)}import{useState as rr}from"react";import{jsx as se,jsxs as je}from"react/jsx-runtime";function or({customerEmail:e}){let{coupon:t,applyCoupon:n,removeCoupon:r,couponBusy:o}=Ft(),[i,a]=rr("");async function s(){o||!i.trim()||(await n(i,e),a(""))}return je("div",{className:"flex flex-col gap-2",children:[t===null?je("div",{className:"flex border border-line",children:[se("input",{type:"text",value:i,onChange:c=>a(c.target.value),onKeyDown:c=>{c.key==="Enter"&&(c.preventDefault(),s())},placeholder:"Coupon code","aria-label":"Coupon code",className:"flex-1 bg-transparent px-4 py-4 font-mono text-[11px] uppercase tracking-[0.18em] text-fg outline-none placeholder:text-fg-dim"}),se("button",{type:"button",onClick:()=>{s()},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"})]}):je("div",{className:["flex items-center justify-between gap-3 border px-4 py-3",t.valid?"border-accent":"border-line"].join(" "),style:t.valid?{background:"color-mix(in oklab, var(--accent) 8%, transparent)"}:void 0,children:[se("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}),se("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?se("p",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-fg-dim",children:vt}):t&&!t.valid&&t.message&&se("p",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-alert",children:t.message})]})}var Qe="Ads on. Shopper can opt out.",Oe="Ads and analytics off until Accept",ir={us:{region:"us",name:"United States",model:"opt-out",law:"California CCPA / CPRA, other state laws",beforeChoice:Qe,footerLink:"Do Not Sell or Share My Personal Information",panelEyebrow:"Do not sell or share",adsRowName:"Sale or sharing for ads"},ca:{region:"ca",name:"Canada",model:"opt-in",law:"PIPEDA, Quebec Law 25",beforeChoice:Oe,footerLink:"Privacy choices",panelEyebrow:"Privacy choices",adsRowName:"Advertising"},au:{region:"au",name:"Australia",model:"opt-out",law:"Privacy Act 1988 (APPs)",beforeChoice:Qe,footerLink:"Privacy choices",panelEyebrow:"Privacy choices",adsRowName:"Advertising"},nz:{region:"nz",name:"New Zealand",model:"opt-out",law:"Privacy Act 2020",beforeChoice:Qe,footerLink:"Privacy choices",panelEyebrow:"Privacy choices",adsRowName:"Advertising"},uk:{region:"uk",name:"United Kingdom",model:"opt-in",law:"PECR, UK GDPR",beforeChoice:Oe,footerLink:"Cookie settings",panelEyebrow:"Cookie settings",adsRowName:"Advertising"},eu:{region:"eu",name:"European Union",model:"opt-in",law:"ePrivacy Directive, GDPR",beforeChoice:Oe,footerLink:"Cookie settings",panelEyebrow:"Cookie settings",adsRowName:"Advertising"},other:{region:"other",name:"All other countries",model:"opt-in",law:"Safe default",beforeChoice:Oe,footerLink:"Cookie settings",panelEyebrow:"Cookie settings",adsRowName:"Advertising"}};function ar(e){let t=[...e.googleAds?["Google"]:[],...e.meta?["Facebook","Instagram"]:[]];return t.length<=1?t.join(""):`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}function yi(e,t,n){let r=ar(n),o=r?`We use cookies to count visits and to show you ${t} ads on ${r}.`:"We use cookies to count visits.";return e.model==="opt-in"?{heading:r?"Cookies and ads":"Cookies",before:`${o} Nothing loads until you choose. You can change this at any time with `,link:e.footerLink,after:" at the bottom of every page."}:{heading:r?"Cookies and ads":"Cookies",before:`${o} You can say no at any time: choose Privacy choices, or use `,link:e.footerLink,after:" at the bottom of every page."}}var bi={accept:"Accept all",reject:"Reject all",choose:"Choose",save:"Save",ok:"OK",privacyChoices:"Privacy choices",privacyPolicy:"Privacy Policy",alwaysOn:"Always on"};var sr={asked:!1,region:"other",model:"opt-in",analytics:!0,ads:!0,chosen:!0,gpc:!1};var lr=sr;function vi(e=lr){if(e.asked)return e.ads?"granted":"denied"}function Pi(){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)}`}import{Children as cr,isValidElement as dr,useEffect as Kt,useId as fr,useLayoutEffect as Yt,useRef as z,useState as zt}from"react";var Me=(e,t)=>!!e[t]&&!e[t].disabled;function Ze(e,t,n){let r=e.length;for(let o=1;o<=r;o++){let i=((t+n*o)%r+r)%r;if(Me(e,i))return i}return t}function Je(e,t){return Ze(e,t===1?-1:e.length,t)}function et(e,t){return Me(e,t)?t:Math.max(Je(e,1),0)}function Gt(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(),s=n.findIndex((c,u)=>Me(n,u)&&c.label.toLowerCase().startsWith(a));return{state:i({open:!0,typed:a,focus:s>=0?s: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:Ze(n,o,1)}),handled:!0};case"ArrowUp":return{state:i({focus:Ze(n,o,-1)}),handled:!0};case"Home":return{state:i({focus:Je(n,1)}),handled:!0};case"End":return{state:i({focus:Je(n,-1)}),handled:!0};case"Enter":case" ":return Me(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{placeMenu as pr}from"efficient-shell/ui";import{Fragment as Cr,jsx as X,jsxs as Vt}from"react/jsx-runtime";var Xt={body:"text-[length:var(--size-body,14px)]",label:"text-[length:var(--size-label,13px)]"};function mr({items:e,value:t,onPick:n,open:r,onOpen:o,onClose:i}){let[a,s]=zt(!1),c=r!==void 0,u=c?r:a,[f,d]=zt(0),S=z({text:"",timer:0}),R=z(null),C=z(null),y=z(null),w=fr(),O=z(null),M=e.findIndex(b=>b.value===t),L=b=>{b!==u&&(c||s(b),b?o?.():i?.())},v=b=>{let _=e[b];!_||_.disabled||(n(_.value),L(!1),C.current?.focus())},x=b=>{let _={open:u,focus:u?f:et(e,M),typed:S.current.text},p=Gt(_,b,e);return!p.handled&&p.state.open===u?!1:(p.state.typed!==_.typed&&(S.current.text=p.state.typed,window.clearTimeout(S.current.timer),S.current.timer=window.setTimeout(()=>{S.current.text=""},500)),d(p.state.focus),p.commit!==void 0?v(p.commit):L(p.state.open),p.refocus&&C.current?.focus(),p.handled)},W=z(x);W.current=x;let I=z(()=>L(!1));I.current=()=>L(!1);let q=b=>{u||(O.current=b.nativeEvent,W.current(b.key)&&b.preventDefault())};return Kt(()=>{if(!u)return;let b=p=>{R.current?.contains(p.target)||I.current()},_=p=>{p!==O.current&&W.current(p.key)&&p.preventDefault()};return document.addEventListener("mousedown",b),document.addEventListener("keydown",_),()=>{document.removeEventListener("mousedown",b),document.removeEventListener("keydown",_)}},[u]),Kt(()=>{u&&(S.current.text||d(et(e,M)))},[u]),Yt(()=>{if(!u||!y.current)return;y.current.children.item(f)?.scrollIntoView({block:"nearest"})},[f,u]),{open:u,toggle:()=>L(!u),close:()=>L(!1),focusIdx:f,setFocusIdx:d,pick:b=>v(e.findIndex(_=>_.value===b)),wrapRef:R,triggerRef:C,listRef:y,listId:w,onTriggerKeyDown:q,activeId:u?`${w}-${f}`:void 0}}var gr={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-3 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 ${Xt.label} 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 ${Xt.body} 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-4 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 hr(e,t){Yt(()=>{let n=e.current,r=n?.ownerDocument.defaultView;if(!n||!r)return;let o=()=>{let i=n.style;i.top=i.bottom=i.marginTop=i.marginBottom=i.maxHeight=i.overflowY=i.translate="";let a=n.offsetParent??n.parentElement;if(!a)return;let s=a.getBoundingClientRect(),c=n.getBoundingClientRect(),u=Math.abs(c.right-s.right)<Math.abs(c.left-s.left)?"end":"start",f=pr({trigger:{left:s.left,right:s.right,top:s.top,bottom:s.bottom},menu:{width:c.width,height:c.height},bounds:{left:0,top:0,right:r.innerWidth,bottom:r.innerHeight},align:u,side:"bottom"});if(f.side==="top"){i.top="auto",i.bottom="100%",i.marginTop="0px";let S=f.top+Math.min(c.height,f.maxHeight);i.marginBottom=`${Math.max(0,s.top-S)}px`}f.maxHeight<c.height&&(i.maxHeight=`${f.maxHeight}px`,i.overflowY="auto");let d=f.left-c.left;d&&(i.translate=`${d}px`)};return o(),r.addEventListener("resize",o),r.addEventListener("scroll",o,!0),()=>{r.removeEventListener("resize",o),r.removeEventListener("scroll",o,!0)}},[e,t])}function yr({id:e,tone:t,items:n,value:r,focusIdx:o,onFocus:i,onPick:a,listRef:s,ariaLabel:c}){let u=gr[t],f=z(null);return hr(f,n.length),X("ul",{ref:d=>{f.current=d,s&&(s.current=d)},id:e,role:"listbox","aria-label":c,...u.pickerMarker?{"data-picker-menu":""}:{},className:u.list,children:n.map((d,S)=>{let R=d.value===r;return X("li",{id:`${e}-${S}`,role:"option","aria-selected":R,"aria-disabled":d.disabled||void 0,onMouseEnter:()=>!d.disabled&&i(S),onMouseDown:C=>{C.preventDefault(),d.disabled||a(d.value)},className:u.item(S===o,R&&d.value!=="",!!d.disabled,S===n.length-1),style:u.itemStyle?.(R),children:d.meta===void 0?d.label:Vt(Cr,{children:[d.lead,X("span",{className:"flex-1 whitespace-nowrap",children:d.label}),X("span",{className:"ml-auto text-[12px] opacity-50",children:d.meta})]})},`${d.value}_${S}`)})})}function br({value:e,onChange:t,disabled:n,children:r,className:o,style:i,name:a,id:s,"aria-label":c}){let u=cr.toArray(r).flatMap(C=>{if(!dr(C))return[];if(C.type!=="option")return[];let w=C.props,O=w.value!==void 0?String(w.value):"",M=w.children,L=typeof M=="string"||typeof M=="number"?String(M):O;return[{value:O,label:L,disabled:!!w.disabled}]}),f=e??"",d=mr({items:u,value:f,onPick:C=>t?.({target:{value:C}})}),R=u.find(C=>C.value===f)?.label??u[0]?.label??"";return Vt("div",{ref:d.wrapRef,className:"relative",children:[a&&X("input",{type:"hidden",name:a,value:f}),X("button",{ref:C=>{d.triggerRef.current=C},type:"button",disabled:n,"aria-haspopup":"listbox","aria-expanded":d.open,"aria-controls":d.open?d.listId:void 0,"aria-activedescendant":d.activeId,"aria-label":c,id:s,onClick:()=>!n&&d.toggle(),onKeyDown:C=>!n&&d.onTriggerKeyDown(C),className:`block w-full ${o??""}`,style:i,children:X("span",{className:"block w-full truncate text-left",children:R})}),d.open&&X(yr,{id:d.listId,tone:"select",items:u,value:f,focusIdx:d.focusIdx,onFocus:d.setFocusIdx,onPick:d.pick,listRef:d.listRef})]})}import{jsx as Se,jsxs as De}from"react/jsx-runtime";var xr="font-mono text-[length:var(--size-label,12px)]",Sr="font-semibold uppercase tracking-[0.22em] text-fg";function jt(e){return`${e??xr} ${Sr}`}function Qt(){return Se("span",{className:"text-accent",children:" *"})}function vr({children:e,required:t,labelFace:n}){return De("span",{className:jt(n),children:[e,t?Se(Qt,{}):null]})}function Er({label:e,required:t,hint:n,separate:r,htmlFor:o,labelFace:i,className:a,children:s}){let c=a?`flex flex-col gap-2 ${a}`:"flex flex-col gap-2",u=n?Se("span",{className:"font-mono text-[11px] uppercase tracking-[0.22em] text-fg-dim",children:n}):null;return r||n?De("div",{className:c,children:[De("label",{htmlFor:o,className:jt(i),children:[e,t?Se(Qt,{}):null]}),s,u]}):De("label",{htmlFor:o,className:c,children:[Se(vr,{required:t,labelFace:i,children:e}),s]})}export{Hr as a,$r as b,Br as c,pt as d,qe as e,Pr as f,wr as g,_r as h,Rr as i,on as j,an as k,Nr as l,Lr as m,Ge as n,Ne as o,ge as p,Ir as q,Le as r,gn as s,hn as t,Kr as u,zr as v,Pt as w,ze as x,Xr as y,Yr as z,bn as A,Vr as B,jr as C,Cn as D,Qr as E,Sn as F,Zr as G,Jr as H,wt as I,io as J,ao as K,so as L,co as M,fo as N,Mr as O,Ct as P,Ie as Q,Ye as R,Po as S,Ft as T,$o as U,zn as V,Wo as W,ri as X,oi as Y,er as Z,li as _,qt as $,ui as aa,nr as ba,ci as ca,or as da,ir as ea,yi as fa,bi as ga,sr as ha,vi as ia,Pi as ja,mr as ka,yr as la,br as ma,vr as na,Er as oa};
|
|
File without changes
|
|
File without changes
|