efficient-storefront-blocks 0.57.0 → 0.58.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/dist/chunks/{EditorPreviewCheckout-7Y7WL5BM.js → EditorPreviewCheckout-4NGRJA3T.js} +1 -1
- package/dist/chunks/{SiteEditorProvider-5MWJMLLI.js → SiteEditorProvider-V5FE5UD6.js} +1 -1
- package/dist/chunks/{chunk-BPVXTVPM.js → chunk-4AKN63X5.js} +1 -1
- package/dist/chunks/chunk-K4AZ5SUU.js +1 -0
- package/dist/chunks/chunk-PHH7L5FJ.js +255 -0
- package/dist/chunks/{chunk-FSSCNRRE.js → chunk-SJQTKWV3.js} +1 -1
- package/dist/chunks/{fitment-data-UVMEA7WW.js → fitment-data-OIWU6HGJ.js} +1 -1
- package/dist/editor/components/BlogSource.d.ts +11 -0
- package/dist/editor/components/BlogSource.js +1 -0
- package/dist/editor/components/CategorySource.d.ts +7 -0
- package/dist/editor/components/CategorySource.js +1 -0
- package/dist/editor/components/CollectionPicker.d.ts +7 -0
- package/dist/editor/components/CollectionPicker.js +1 -0
- package/dist/editor/components/ConsentBannerLayoutTiles.d.ts +3 -0
- package/dist/editor/components/ConsentBannerLayoutTiles.js +1 -0
- package/dist/editor/components/CountryShowAsTiles.d.ts +5 -0
- package/dist/editor/components/CountryShowAsTiles.js +1 -0
- package/dist/editor/components/EditProductLink.d.ts +1 -0
- package/dist/editor/components/EditProductLink.js +1 -0
- package/dist/editor/components/EditorCurrencyProvider.d.ts +7 -0
- package/dist/editor/components/EditorCurrencyProvider.js +1 -0
- package/dist/editor/components/EditorPreviewChat.d.ts +1 -0
- package/dist/editor/components/EditorPreviewChat.js +11 -0
- package/dist/editor/components/EditorPreviewCheckout.d.ts +1 -0
- package/dist/editor/components/EditorPreviewCheckout.js +1 -0
- package/dist/editor/components/EditorPreviewSurface.d.ts +5 -0
- package/dist/editor/components/EditorPreviewSurface.js +1 -0
- package/dist/editor/components/FinishPicker.d.ts +6 -0
- package/dist/editor/components/FinishPicker.js +1 -0
- package/dist/editor/components/FooterColumnsField.d.ts +6 -0
- package/dist/editor/components/FooterColumnsField.js +1 -0
- package/dist/editor/components/FooterLogoFillField.d.ts +6 -0
- package/dist/editor/components/FooterLogoFillField.js +1 -0
- package/dist/editor/components/FooterLogoRowFillField.d.ts +6 -0
- package/dist/editor/components/FooterLogoRowFillField.js +1 -0
- package/dist/editor/components/FormPicker.d.ts +33 -0
- package/dist/editor/components/FormPicker.js +1 -0
- package/dist/editor/components/GalleryProductBinding.d.ts +7 -0
- package/dist/editor/components/GalleryProductBinding.js +1 -0
- package/dist/editor/components/GalleryShowcaseSource.d.ts +7 -0
- package/dist/editor/components/GalleryShowcaseSource.js +1 -0
- package/dist/editor/components/HeaderSection.d.ts +3 -0
- package/dist/editor/components/HeaderSection.js +1 -0
- package/dist/editor/components/HeaderSettingsPanel.d.ts +132 -0
- package/dist/editor/components/HeaderSettingsPanel.js +1 -0
- package/dist/editor/components/MenuLinkRangeField.d.ts +5 -0
- package/dist/editor/components/MenuLinkRangeField.js +1 -0
- package/dist/editor/components/MenuPicker.d.ts +7 -0
- package/dist/editor/components/MenuPicker.js +1 -0
- package/dist/editor/components/PerViewStepperField.d.ts +13 -0
- package/dist/editor/components/PerViewStepperField.js +1 -0
- package/dist/editor/components/PreviewHeader.d.ts +2 -0
- package/dist/editor/components/PreviewHeader.js +11 -0
- package/dist/editor/components/PreviewHeaderPrimer.d.ts +4 -0
- package/dist/editor/components/PreviewHeaderPrimer.js +1 -0
- package/dist/editor/components/PreviewMenusPrimer.d.ts +3 -0
- package/dist/editor/components/PreviewMenusPrimer.js +1 -0
- package/dist/editor/components/PreviewProductPicker.d.ts +20 -0
- package/dist/editor/components/PreviewProductPicker.js +1 -0
- package/dist/editor/components/ProductHeroSource.d.ts +19 -0
- package/dist/editor/components/ProductHeroSource.js +1 -0
- package/dist/editor/components/ProductPicker.d.ts +6 -0
- package/dist/editor/components/ProductPicker.js +1 -0
- package/dist/editor/components/SocialLinksDoor.d.ts +1 -0
- package/dist/editor/components/SocialLinksDoor.js +1 -0
- package/dist/editor/components/SpecTableSource.d.ts +7 -0
- package/dist/editor/components/SpecTableSource.js +1 -0
- package/dist/editor/components/StorefrontEditorFurniture.d.ts +6 -0
- package/dist/editor/components/StorefrontEditorFurniture.js +1 -0
- package/dist/editor/components/StorefrontHeaderPanel.d.ts +2 -0
- package/dist/editor/components/StorefrontHeaderPanel.js +1 -0
- package/dist/editor/components/StorefrontLinkRows.d.ts +5 -0
- package/dist/editor/components/StorefrontLinkRows.js +1 -0
- package/dist/editor/components/StorefrontShopRows.d.ts +2 -0
- package/dist/editor/components/StorefrontShopRows.js +1 -0
- package/dist/editor/components/SwitchToBoxHeader.d.ts +1 -0
- package/dist/editor/components/SwitchToBoxHeader.js +1 -0
- package/dist/editor/components/WheelsPerRowField.d.ts +6 -0
- package/dist/editor/components/WheelsPerRowField.js +1 -0
- package/dist/editor/components/useCategoryFilter.d.ts +11 -0
- package/dist/editor/components/useCategoryFilter.js +1 -0
- package/dist/editor/components/useGridSourceLock.d.ts +1 -0
- package/dist/editor/components/useGridSourceLock.js +1 -0
- package/dist/editor/components/useStorefrontCategories.d.ts +2 -0
- package/dist/editor/components/useStorefrontCategories.js +1 -0
- package/dist/editor/components/useStorefrontForms.d.ts +2 -0
- package/dist/editor/components/useStorefrontForms.js +1 -0
- package/dist/editor/components/useWheelMediaGroups.d.ts +2 -0
- package/dist/editor/components/useWheelMediaGroups.js +1 -0
- package/dist/editor/lib/api/section-templates.d.ts +43 -0
- package/dist/editor/lib/api/section-templates.js +1 -0
- package/dist/editor/lib/editor-currency-source.d.ts +11 -0
- package/dist/editor/lib/editor-currency-source.js +1 -0
- package/dist/editor/lib/efficient-backend.d.ts +21 -0
- package/dist/editor/lib/efficient-backend.js +1 -0
- package/dist/editor/lib/header-settings-source.d.ts +7 -0
- package/dist/editor/lib/header-settings-source.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/AccountBlock/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/AccountBlock/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/AlloyWheelsListing/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/AlloyWheelsListing/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/BundleOffer/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/BundleOffer/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/CartBlock/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/CartBlock/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/CatalogFilterBar/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/CatalogFilterBar/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/CheckoutCTA/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/CheckoutCTA/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/CollectionCard/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/CollectionCard/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/Collections/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/Collections/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/CompatibleTyres/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/CompatibleTyres/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/CountrySwitchBlock/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/CountrySwitchBlock/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/DeliveryOptions/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/DeliveryOptions/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/DetailRows/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/DetailRows/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/EuTyreLabel/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/EuTyreLabel/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/FitmentFinder/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/FitmentFinder/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/FitmentTable/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/FitmentTable/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/Gallery/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/Gallery/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/GalleryB/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/GalleryB/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/GalleryItem/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/GalleryItem/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/Header/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/Header/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/ProductGrid/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/ProductGrid/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/ProductHero/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/ProductHero/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/ProductRef/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/ProductRef/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/RelatedProducts/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/RelatedProducts/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/SearchBlock/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/SearchBlock/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/SpecTable/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/SpecTable/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/ThemeSwitchBlock/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/ThemeSwitchBlock/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/TyreFitment/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/TyreFitment/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/TyreSizes/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/TyreSizes/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/controls.d.ts +15 -0
- package/dist/editor/lib/puck/blocks/commerce/controls.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/index.d.ts +1 -0
- package/dist/editor/lib/puck/blocks/commerce/index.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/page-rules.d.ts +8 -0
- package/dist/editor/lib/puck/blocks/commerce/page-rules.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/shared-fields.d.ts +5 -0
- package/dist/editor/lib/puck/blocks/commerce/shared-fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/AppointmentBooking/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/AppointmentBooking/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/BookingBox/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/BookingBox/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/ContactRouting/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/ContactRouting/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/Events/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/Events/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/Footer/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/Footer/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/FooterDivider/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/FooterDivider/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/FooterEmailSignup/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/FooterEmailSignup/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/FooterGroup/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/FooterGroup/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/FooterLogo/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/FooterLogo/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/FooterMenu/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/FooterMenu/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/FooterSocial/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/FooterSocial/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/FooterText/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/FooterText/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/Form/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/Form/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/LegalLineBlock/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/LegalLineBlock/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/ReviewForm/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/ReviewForm/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/Reviews/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/Reviews/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/SiteFooter/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/SiteFooter/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/SiteHeader/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/SiteHeader/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/SubmitBox/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/SubmitBox/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/SubmitBuild/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/SubmitBuild/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/Subscribe/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/Subscribe/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/SubscribeBlogs/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/SubscribeBlogs/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/controls.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/controls.js +1 -0
- package/dist/editor/lib/puck/blocks/service/index.d.ts +1 -0
- package/dist/editor/lib/puck/blocks/service/index.js +1 -0
- package/dist/editor/lib/puck/blocks/service/placeholders.d.ts +1 -0
- package/dist/editor/lib/puck/blocks/service/placeholders.js +1 -0
- package/dist/editor/lib/puck/box-header-for-site.d.ts +9 -0
- package/dist/editor/lib/puck/box-header-for-site.js +1 -0
- package/dist/editor/lib/puck/box-header.d.ts +52 -0
- package/dist/editor/lib/puck/box-header.js +1 -0
- package/dist/editor/lib/puck/config.d.ts +73 -0
- package/dist/editor/lib/puck/config.js +1 -0
- package/dist/editor/lib/say-with.d.ts +2 -0
- package/dist/editor/lib/say-with.js +1 -0
- package/dist/editor/lib/storefront-document.d.ts +2 -0
- package/dist/editor/lib/storefront-document.js +1 -0
- package/dist/editor/lib/storefront-editor-words.d.ts +693 -0
- package/dist/editor/lib/storefront-editor-words.js +1 -0
- package/dist/editor/lib/storefront-editor.d.ts +9 -0
- package/dist/editor/lib/storefront-editor.js +1 -0
- package/dist/editor/lib/storefront-shop-surfaces.d.ts +8 -0
- package/dist/editor/lib/storefront-shop-surfaces.js +1 -0
- package/dist/editor/lib/use-prime-and-refresh.d.ts +16 -0
- package/dist/editor/lib/use-prime-and-refresh.js +1 -0
- package/dist/editor.css +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.js +69 -52
- package/dist/render/app/fonts/archivo/OFL.txt +93 -0
- package/dist/render/app/fonts/archivo/latin-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/archivo/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/archivo/latin-italic.woff2 +0 -0
- package/dist/render/app/fonts/archivo/latin.woff2 +0 -0
- package/dist/render/app/fonts/archivo/vietnamese-italic.woff2 +0 -0
- package/dist/render/app/fonts/archivo/vietnamese.woff2 +0 -0
- package/dist/render/app/fonts/assistant/OFL.txt +95 -0
- package/dist/render/app/fonts/assistant/hebrew.woff2 +0 -0
- package/dist/render/app/fonts/assistant/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/assistant/latin.woff2 +0 -0
- package/dist/render/app/fonts/big-shoulders/OFL.txt +93 -0
- package/dist/render/app/fonts/big-shoulders/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/big-shoulders/latin.woff2 +0 -0
- package/dist/render/app/fonts/big-shoulders/vietnamese.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/OFL.txt +93 -0
- package/dist/render/app/fonts/cormorant/cyrillic-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/cyrillic-ext.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/cyrillic-italic.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/cyrillic.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/latin-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/latin-italic.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/latin.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/vietnamese-italic.woff2 +0 -0
- package/dist/render/app/fonts/cormorant/vietnamese.woff2 +0 -0
- package/dist/render/app/fonts/dm-sans/OFL.txt +93 -0
- package/dist/render/app/fonts/dm-sans/latin-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/dm-sans/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/dm-sans/latin-italic.woff2 +0 -0
- package/dist/render/app/fonts/dm-sans/latin.woff2 +0 -0
- package/dist/render/app/fonts/fallbacks.css +133 -0
- package/dist/render/app/fonts/fraunces/OFL.txt +93 -0
- package/dist/render/app/fonts/fraunces/latin-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/fraunces/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/fraunces/latin-italic.woff2 +0 -0
- package/dist/render/app/fonts/fraunces/latin.woff2 +0 -0
- package/dist/render/app/fonts/fraunces/vietnamese-italic.woff2 +0 -0
- package/dist/render/app/fonts/fraunces/vietnamese.woff2 +0 -0
- package/dist/render/app/fonts/inter/OFL.txt +93 -0
- package/dist/render/app/fonts/inter/cyrillic-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/inter/cyrillic-ext.woff2 +0 -0
- package/dist/render/app/fonts/inter/cyrillic-italic.woff2 +0 -0
- package/dist/render/app/fonts/inter/cyrillic.woff2 +0 -0
- package/dist/render/app/fonts/inter/greek-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/inter/greek-ext.woff2 +0 -0
- package/dist/render/app/fonts/inter/greek-italic.woff2 +0 -0
- package/dist/render/app/fonts/inter/greek.woff2 +0 -0
- package/dist/render/app/fonts/inter/latin-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/inter/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/inter/latin-italic.woff2 +0 -0
- package/dist/render/app/fonts/inter/latin.woff2 +0 -0
- package/dist/render/app/fonts/inter/vietnamese-italic.woff2 +0 -0
- package/dist/render/app/fonts/inter/vietnamese.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/OFL.txt +93 -0
- package/dist/render/app/fonts/jetbrains-mono/cyrillic-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/cyrillic-ext.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/cyrillic-italic.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/cyrillic.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/greek-italic.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/greek.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/latin-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/latin-italic.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/latin.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/vietnamese-italic.woff2 +0 -0
- package/dist/render/app/fonts/jetbrains-mono/vietnamese.woff2 +0 -0
- package/dist/render/app/fonts/manrope/OFL.txt +93 -0
- package/dist/render/app/fonts/manrope/cyrillic-ext.woff2 +0 -0
- package/dist/render/app/fonts/manrope/cyrillic.woff2 +0 -0
- package/dist/render/app/fonts/manrope/greek.woff2 +0 -0
- package/dist/render/app/fonts/manrope/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/manrope/latin.woff2 +0 -0
- package/dist/render/app/fonts/manrope/vietnamese.woff2 +0 -0
- package/dist/render/app/fonts/michroma/OFL.txt +93 -0
- package/dist/render/app/fonts/michroma/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/michroma/latin.woff2 +0 -0
- package/dist/render/app/fonts/oswald/OFL.txt +93 -0
- package/dist/render/app/fonts/oswald/cyrillic-ext.woff2 +0 -0
- package/dist/render/app/fonts/oswald/cyrillic.woff2 +0 -0
- package/dist/render/app/fonts/oswald/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/oswald/latin.woff2 +0 -0
- package/dist/render/app/fonts/oswald/vietnamese.woff2 +0 -0
- package/dist/render/app/fonts/outfit/OFL.txt +93 -0
- package/dist/render/app/fonts/outfit/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/outfit/latin.woff2 +0 -0
- package/dist/render/app/fonts/playfair-display/OFL.txt +93 -0
- package/dist/render/app/fonts/playfair-display/cyrillic-italic.woff2 +0 -0
- package/dist/render/app/fonts/playfair-display/cyrillic.woff2 +0 -0
- package/dist/render/app/fonts/playfair-display/latin-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/playfair-display/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/playfair-display/latin-italic.woff2 +0 -0
- package/dist/render/app/fonts/playfair-display/latin.woff2 +0 -0
- package/dist/render/app/fonts/playfair-display/vietnamese-italic.woff2 +0 -0
- package/dist/render/app/fonts/playfair-display/vietnamese.woff2 +0 -0
- package/dist/render/app/fonts/poppins/OFL.txt +93 -0
- package/dist/render/app/fonts/poppins/devanagari-400.woff2 +0 -0
- package/dist/render/app/fonts/poppins/devanagari-500.woff2 +0 -0
- package/dist/render/app/fonts/poppins/devanagari-600.woff2 +0 -0
- package/dist/render/app/fonts/poppins/devanagari-italic-400.woff2 +0 -0
- package/dist/render/app/fonts/poppins/devanagari-italic-500.woff2 +0 -0
- package/dist/render/app/fonts/poppins/devanagari-italic-600.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-400.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-500.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-600.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-ext-400.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-ext-500.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-ext-600.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-ext-italic-400.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-ext-italic-500.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-ext-italic-600.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-italic-400.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-italic-500.woff2 +0 -0
- package/dist/render/app/fonts/poppins/latin-italic-600.woff2 +0 -0
- package/dist/render/app/fonts/sora/OFL.txt +93 -0
- package/dist/render/app/fonts/sora/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/sora/latin.woff2 +0 -0
- package/dist/render/app/fonts/space-grotesk/OFL.txt +93 -0
- package/dist/render/app/fonts/space-grotesk/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/space-grotesk/latin.woff2 +0 -0
- package/dist/render/app/fonts/space-grotesk/vietnamese.woff2 +0 -0
- package/dist/render/app/globals.css +3264 -0
- package/dist/render/built-with.json +3 -0
- package/dist/render/components/AppointmentBooking.d.ts +14 -0
- package/dist/render/components/AppointmentBooking.js +1 -0
- package/dist/render/components/AssistantChatMount.d.ts +8 -0
- package/dist/render/components/AssistantChatMount.js +1 -0
- package/dist/render/components/AssistantChatPanel.d.ts +7 -0
- package/dist/render/components/AssistantChatPanel.js +1 -0
- package/dist/render/components/BoxHeaderBar.d.ts +10 -0
- package/dist/render/components/BoxHeaderBar.js +1 -0
- package/dist/render/components/BrandPlate.d.ts +4 -0
- package/dist/render/components/BrandPlate.js +1 -0
- package/dist/render/components/BundleCard.d.ts +6 -0
- package/dist/render/components/BundleCard.js +1 -0
- package/dist/render/components/CartContext.d.ts +91 -0
- package/dist/render/components/CartContext.js +1 -0
- package/dist/render/components/CartDrawer.d.ts +12 -0
- package/dist/render/components/CartDrawer.js +4 -0
- package/dist/render/components/CartLineThumbnail.d.ts +8 -0
- package/dist/render/components/CartLineThumbnail.js +1 -0
- package/dist/render/components/CatalogFilterBarSection.d.ts +12 -0
- package/dist/render/components/CatalogFilterBarSection.js +1 -0
- package/dist/render/components/ChatContext.d.ts +23 -0
- package/dist/render/components/ChatContext.js +1 -0
- package/dist/render/components/ChatLauncher.d.ts +18 -0
- package/dist/render/components/ChatLauncher.js +1 -0
- package/dist/render/components/ChatWidget.d.ts +12 -0
- package/dist/render/components/ChatWidget.js +1 -0
- package/dist/render/components/CheckoutCTA.d.ts +12 -0
- package/dist/render/components/CheckoutCTA.js +1 -0
- package/dist/render/components/CollectionCard.d.ts +27 -0
- package/dist/render/components/CollectionCard.js +1 -0
- package/dist/render/components/Collections.d.ts +17 -0
- package/dist/render/components/Collections.js +1 -0
- package/dist/render/components/CompatibleTyres.d.ts +23 -0
- package/dist/render/components/CompatibleTyres.js +1 -0
- package/dist/render/components/ConsentBanner.d.ts +20 -0
- package/dist/render/components/ConsentBanner.js +1 -0
- package/dist/render/components/ConsentContext.d.ts +22 -0
- package/dist/render/components/ConsentContext.js +1 -0
- package/dist/render/components/ConsentPanel.d.ts +15 -0
- package/dist/render/components/ConsentPanel.js +1 -0
- package/dist/render/components/ConsentProvider.d.ts +7 -0
- package/dist/render/components/ConsentProvider.js +1 -0
- package/dist/render/components/ContactRouting.d.ts +33 -0
- package/dist/render/components/ContactRouting.js +1 -0
- package/dist/render/components/CountrySelect.d.ts +7 -0
- package/dist/render/components/CountrySelect.js +1 -0
- package/dist/render/components/CouponField.d.ts +3 -0
- package/dist/render/components/CouponField.js +1 -0
- package/dist/render/components/CurrencyContext.d.ts +27 -0
- package/dist/render/components/CurrencyContext.js +1 -0
- package/dist/render/components/DeliveryOptions.d.ts +18 -0
- package/dist/render/components/DeliveryOptions.js +1 -0
- package/dist/render/components/DeliveryOptionsSource.d.ts +8 -0
- package/dist/render/components/DeliveryOptionsSource.js +1 -0
- package/dist/render/components/DetailRows.d.ts +22 -0
- package/dist/render/components/DetailRows.js +1 -0
- package/dist/render/components/DimensionArrowMarkers.d.ts +3 -0
- package/dist/render/components/DimensionArrowMarkers.js +1 -0
- package/dist/render/components/EditorCurrencyNoticeContext.d.ts +7 -0
- package/dist/render/components/EditorCurrencyNoticeContext.js +1 -0
- package/dist/render/components/EmailCaptureForm.d.ts +15 -0
- package/dist/render/components/EmailCaptureForm.js +1 -0
- package/dist/render/components/EnglishVariant.d.ts +7 -0
- package/dist/render/components/EnglishVariant.js +1 -0
- package/dist/render/components/EuTyreLabelCard.d.ts +4 -0
- package/dist/render/components/EuTyreLabelCard.js +1 -0
- package/dist/render/components/EuTyreLabels.d.ts +7 -0
- package/dist/render/components/EuTyreLabels.js +1 -0
- package/dist/render/components/Events.d.ts +62 -0
- package/dist/render/components/Events.js +1 -0
- package/dist/render/components/FinishSwatches.d.ts +14 -0
- package/dist/render/components/FinishSwatches.js +1 -0
- package/dist/render/components/FitmentTable.d.ts +17 -0
- package/dist/render/components/FitmentTable.js +1 -0
- package/dist/render/components/FooterDivider.d.ts +6 -0
- package/dist/render/components/FooterDivider.js +1 -0
- package/dist/render/components/FooterEmailSignup.d.ts +6 -0
- package/dist/render/components/FooterEmailSignup.js +1 -0
- package/dist/render/components/FooterGroup.d.ts +8 -0
- package/dist/render/components/FooterGroup.js +1 -0
- package/dist/render/components/FooterLogo.d.ts +13 -0
- package/dist/render/components/FooterLogo.js +1 -0
- package/dist/render/components/FooterMenu.d.ts +25 -0
- package/dist/render/components/FooterMenu.js +1 -0
- package/dist/render/components/FooterSection.d.ts +11 -0
- package/dist/render/components/FooterSection.js +1 -0
- package/dist/render/components/FooterSocial.d.ts +16 -0
- package/dist/render/components/FooterSocial.js +1 -0
- package/dist/render/components/FooterText.d.ts +7 -0
- package/dist/render/components/FooterText.js +1 -0
- package/dist/render/components/FormBlock.d.ts +19 -0
- package/dist/render/components/FormBlock.js +1 -0
- package/dist/render/components/GalleryCard.d.ts +28 -0
- package/dist/render/components/GalleryCard.js +1 -0
- package/dist/render/components/GalleryGrid.d.ts +20 -0
- package/dist/render/components/GalleryGrid.js +1 -0
- package/dist/render/components/GalleryItem.d.ts +41 -0
- package/dist/render/components/GalleryItem.js +1 -0
- package/dist/render/components/GalleryShowcase.d.ts +51 -0
- package/dist/render/components/GalleryShowcase.js +1 -0
- package/dist/render/components/Header.d.ts +13 -0
- package/dist/render/components/Header.js +1 -0
- package/dist/render/components/HeaderNavItem.d.ts +17 -0
- package/dist/render/components/HeaderNavItem.js +1 -0
- package/dist/render/components/HeaderToolBlocks.d.ts +18 -0
- package/dist/render/components/HeaderToolBlocks.js +1 -0
- package/dist/render/components/HeaderTools.d.ts +21 -0
- package/dist/render/components/HeaderTools.js +1 -0
- package/dist/render/components/LegalLine.d.ts +4 -0
- package/dist/render/components/LegalLine.js +1 -0
- package/dist/render/components/Lightbox.d.ts +19 -0
- package/dist/render/components/Lightbox.js +1 -0
- package/dist/render/components/LinkedProductHero.d.ts +34 -0
- package/dist/render/components/LinkedProductHero.js +1 -0
- package/dist/render/components/LiveSiteMapsProvider.d.ts +6 -0
- package/dist/render/components/LiveSiteMapsProvider.js +1 -0
- package/dist/render/components/MenuPlaceholderLabel.d.ts +1 -0
- package/dist/render/components/MenuPlaceholderLabel.js +1 -0
- package/dist/render/components/NoCurrencyNote.d.ts +4 -0
- package/dist/render/components/NoCurrencyNote.js +1 -0
- package/dist/render/components/PreOrderPanel.d.ts +5 -0
- package/dist/render/components/PreOrderPanel.js +1 -0
- package/dist/render/components/PreviewMenusContext.d.ts +13 -0
- package/dist/render/components/PreviewMenusContext.js +1 -0
- package/dist/render/components/ProductCard.d.ts +6 -0
- package/dist/render/components/ProductCard.js +1 -0
- package/dist/render/components/ProductCardChrome.d.ts +37 -0
- package/dist/render/components/ProductCardChrome.js +1 -0
- package/dist/render/components/ProductCardEyebrow.d.ts +14 -0
- package/dist/render/components/ProductCardEyebrow.js +1 -0
- package/dist/render/components/ProductGridSection.d.ts +65 -0
- package/dist/render/components/ProductGridSection.js +1 -0
- package/dist/render/components/ProductHeroPanel.d.ts +22 -0
- package/dist/render/components/ProductHeroPanel.js +1 -0
- package/dist/render/components/ProductLightbox.d.ts +5 -0
- package/dist/render/components/ProductLightbox.js +1 -0
- package/dist/render/components/ProductRef.d.ts +16 -0
- package/dist/render/components/ProductRef.js +1 -0
- package/dist/render/components/PublishedFooter.d.ts +16 -0
- package/dist/render/components/PublishedFooter.js +1 -0
- package/dist/render/components/PublishedHeader.d.ts +4 -0
- package/dist/render/components/PublishedHeader.js +1 -0
- package/dist/render/components/QuantityStepper.d.ts +7 -0
- package/dist/render/components/QuantityStepper.js +1 -0
- package/dist/render/components/QuoteLink.d.ts +4 -0
- package/dist/render/components/QuoteLink.js +1 -0
- package/dist/render/components/ReviewForm.d.ts +8 -0
- package/dist/render/components/ReviewForm.js +1 -0
- package/dist/render/components/Reviews.d.ts +12 -0
- package/dist/render/components/Reviews.js +1 -0
- package/dist/render/components/SearchContext.d.ts +13 -0
- package/dist/render/components/SearchContext.js +1 -0
- package/dist/render/components/SectionBand.d.ts +9 -0
- package/dist/render/components/SectionBand.js +1 -0
- package/dist/render/components/SectionFootnote.d.ts +5 -0
- package/dist/render/components/SectionFootnote.js +1 -0
- package/dist/render/components/SectionGroupBody.d.ts +9 -0
- package/dist/render/components/SectionGroupBody.js +1 -0
- package/dist/render/components/SectionNotice.d.ts +7 -0
- package/dist/render/components/SectionNotice.js +1 -0
- package/dist/render/components/SiteRecordContext.d.ts +17 -0
- package/dist/render/components/SiteRecordContext.js +1 -0
- package/dist/render/components/SiteSwitch.d.ts +10 -0
- package/dist/render/components/SiteSwitch.js +1 -0
- package/dist/render/components/SpecTable.d.ts +18 -0
- package/dist/render/components/SpecTable.js +1 -0
- package/dist/render/components/SpecTablePartBridge.d.ts +5 -0
- package/dist/render/components/SpecTablePartBridge.js +1 -0
- package/dist/render/components/StorefrontProviders.d.ts +15 -0
- package/dist/render/components/StorefrontProviders.js +1 -0
- package/dist/render/components/SubmitBuild.d.ts +23 -0
- package/dist/render/components/SubmitBuild.js +1 -0
- package/dist/render/components/Subscribe.d.ts +27 -0
- package/dist/render/components/Subscribe.js +1 -0
- package/dist/render/components/SubscribePopup.d.ts +19 -0
- package/dist/render/components/SubscribePopup.js +7 -0
- package/dist/render/components/SubscribePopupContext.d.ts +33 -0
- package/dist/render/components/SubscribePopupContext.js +1 -0
- package/dist/render/components/ThemeToggle.d.ts +1 -0
- package/dist/render/components/ThemeToggle.js +1 -0
- package/dist/render/components/ThemedSelect.d.ts +59 -0
- package/dist/render/components/ThemedSelect.js +1 -0
- package/dist/render/components/TyreCard.d.ts +19 -0
- package/dist/render/components/TyreCard.js +1 -0
- package/dist/render/components/TyreFitVerdicts.d.ts +7 -0
- package/dist/render/components/TyreFitVerdicts.js +1 -0
- package/dist/render/components/TyreImage.d.ts +10 -0
- package/dist/render/components/TyreImage.js +1 -0
- package/dist/render/components/TyrePlpCard.d.ts +19 -0
- package/dist/render/components/TyrePlpCard.js +1 -0
- package/dist/render/components/TyreRenderSvg.d.ts +7 -0
- package/dist/render/components/TyreRenderSvg.js +1 -0
- package/dist/render/components/TyreSummaryCard.d.ts +11 -0
- package/dist/render/components/TyreSummaryCard.js +1 -0
- package/dist/render/components/TyreVehicleFitment.d.ts +18 -0
- package/dist/render/components/TyreVehicleFitment.js +1 -0
- package/dist/render/components/ViewMoreLink.d.ts +4 -0
- package/dist/render/components/ViewMoreLink.js +1 -0
- package/dist/render/components/WebFormField.d.ts +17 -0
- package/dist/render/components/WebFormField.js +1 -0
- package/dist/render/components/WheelCardFrame.d.ts +67 -0
- package/dist/render/components/WheelCardFrame.js +1 -0
- package/dist/render/components/WheelImage.d.ts +20 -0
- package/dist/render/components/WheelImage.js +1 -0
- package/dist/render/components/WheelPlaceholder.d.ts +7 -0
- package/dist/render/components/WheelPlaceholder.js +1 -0
- package/dist/render/components/WheelSvg.d.ts +7 -0
- package/dist/render/components/WheelSvg.js +1 -0
- package/dist/render/components/WishlistContext.d.ts +13 -0
- package/dist/render/components/WishlistContext.js +1 -0
- package/dist/render/components/booking/BookingBox.d.ts +16 -0
- package/dist/render/components/booking/BookingBox.js +1 -0
- package/dist/render/components/booking/BookingFormState.d.ts +46 -0
- package/dist/render/components/booking/BookingFormState.js +1 -0
- package/dist/render/components/booking/BookingRegions.d.ts +16 -0
- package/dist/render/components/booking/BookingRegions.js +1 -0
- package/dist/render/components/buy-row.d.ts +1 -0
- package/dist/render/components/buy-row.js +1 -0
- package/dist/render/components/catalog/CatalogFilterBar.d.ts +55 -0
- package/dist/render/components/catalog/CatalogFilterBar.js +1 -0
- package/dist/render/components/catalog/CatalogFilterContext.d.ts +39 -0
- package/dist/render/components/catalog/CatalogFilterContext.js +1 -0
- package/dist/render/components/catalog/CatalogFilterLabels.d.ts +6 -0
- package/dist/render/components/catalog/CatalogFilterLabels.js +1 -0
- package/dist/render/components/catalog/CatalogVehiclePicker.d.ts +22 -0
- package/dist/render/components/catalog/CatalogVehiclePicker.js +1 -0
- package/dist/render/components/catalog/FilterPill.d.ts +25 -0
- package/dist/render/components/catalog/FilterPill.js +1 -0
- package/dist/render/components/catalog/SiteMenuLinks.d.ts +6 -0
- package/dist/render/components/catalog/SiteMenuLinks.js +1 -0
- package/dist/render/components/checkout/CheckoutPageClient.d.ts +25 -0
- package/dist/render/components/checkout/CheckoutPageClient.js +3 -0
- package/dist/render/components/fitment/FitmentFinder.d.ts +15 -0
- package/dist/render/components/fitment/FitmentFinder.js +1 -0
- package/dist/render/components/fitment/FitmentPickerGrid.d.ts +6 -0
- package/dist/render/components/fitment/FitmentPickerGrid.js +1 -0
- package/dist/render/components/fitment/FitmentRowFit.d.ts +4 -0
- package/dist/render/components/fitment/FitmentRowFit.js +1 -0
- package/dist/render/components/fitment/PickerField.d.ts +16 -0
- package/dist/render/components/fitment/PickerField.js +1 -0
- package/dist/render/components/fitment/StockFitmentCard.d.ts +8 -0
- package/dist/render/components/fitment/StockFitmentCard.js +1 -0
- package/dist/render/components/fitment/useFitmentCascade.d.ts +31 -0
- package/dist/render/components/fitment/useFitmentCascade.js +1 -0
- package/dist/render/components/fitment/useVehicleFit.d.ts +29 -0
- package/dist/render/components/fitment/useVehicleFit.js +1 -0
- package/dist/render/components/fitment/vehicle-control.d.ts +10 -0
- package/dist/render/components/fitment/vehicle-control.js +0 -0
- package/dist/render/components/fitment/vehicle-level-state.d.ts +14 -0
- package/dist/render/components/fitment/vehicle-level-state.js +1 -0
- package/dist/render/components/formSubmission.d.ts +32 -0
- package/dist/render/components/formSubmission.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicBundleOffer.d.ts +13 -0
- package/dist/render/components/pdp-dynamic/DynamicBundleOffer.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicDetailRows.d.ts +14 -0
- package/dist/render/components/pdp-dynamic/DynamicDetailRows.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicEuTyreLabel.d.ts +8 -0
- package/dist/render/components/pdp-dynamic/DynamicEuTyreLabel.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicFitmentTable.d.ts +16 -0
- package/dist/render/components/pdp-dynamic/DynamicFitmentTable.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.d.ts +18 -0
- package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicProductHero.d.ts +25 -0
- package/dist/render/components/pdp-dynamic/DynamicProductHero.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.d.ts +31 -0
- package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicSpecTable.d.ts +13 -0
- package/dist/render/components/pdp-dynamic/DynamicSpecTable.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicTyreFitment.d.ts +13 -0
- package/dist/render/components/pdp-dynamic/DynamicTyreFitment.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicTyreSizes.d.ts +11 -0
- package/dist/render/components/pdp-dynamic/DynamicTyreSizes.js +1 -0
- package/dist/render/components/pdp-dynamic/FitmentTableBlock.d.ts +7 -0
- package/dist/render/components/pdp-dynamic/FitmentTableBlock.js +1 -0
- package/dist/render/components/pdp-dynamic/KindGate.d.ts +8 -0
- package/dist/render/components/pdp-dynamic/KindGate.js +1 -0
- package/dist/render/components/pdp-dynamic/useSampleProduct.d.ts +5 -0
- package/dist/render/components/pdp-dynamic/useSampleProduct.js +1 -0
- package/dist/render/components/product-hero/TyreHeroFitment.d.ts +17 -0
- package/dist/render/components/product-hero/TyreHeroFitment.js +1 -0
- package/dist/render/components/product-hero/VehicleQuestion.d.ts +18 -0
- package/dist/render/components/product-hero/VehicleQuestion.js +1 -0
- package/dist/render/components/product-hero/WheelHeroFitment.d.ts +9 -0
- package/dist/render/components/product-hero/WheelHeroFitment.js +1 -0
- package/dist/render/components/product-hero/hero-content.d.ts +7 -0
- package/dist/render/components/product-hero/hero-content.js +1 -0
- package/dist/render/components/product-hero/hero-view.d.ts +37 -0
- package/dist/render/components/product-hero/hero-view.js +1 -0
- package/dist/render/components/product-hero/stage-photo.d.ts +10 -0
- package/dist/render/components/product-hero/stage-photo.js +3 -0
- package/dist/render/components/submit/SubmitBox.d.ts +19 -0
- package/dist/render/components/submit/SubmitBox.js +1 -0
- package/dist/render/components/submit/SubmitRegions.d.ts +17 -0
- package/dist/render/components/submit/SubmitRegions.js +1 -0
- package/dist/render/components/useEuTyreLabels.d.ts +3 -0
- package/dist/render/components/useEuTyreLabels.js +1 -0
- package/dist/render/components/useFinishSelection.d.ts +17 -0
- package/dist/render/components/useFinishSelection.js +1 -0
- package/dist/render/components/useHeaderBar.d.ts +9 -0
- package/dist/render/components/useHeaderBar.js +1 -0
- package/dist/render/components/useLightbox.d.ts +10 -0
- package/dist/render/components/useLightbox.js +1 -0
- package/dist/render/components/useModalDismiss.d.ts +8 -0
- package/dist/render/components/useModalDismiss.js +1 -0
- package/dist/render/components/useNewsletterSignup.d.ts +12 -0
- package/dist/render/components/useNewsletterSignup.js +1 -0
- package/dist/render/components/usePreOrderIntent.d.ts +14 -0
- package/dist/render/components/usePreOrderIntent.js +1 -0
- package/dist/render/components/useProductCatalog.d.ts +54 -0
- package/dist/render/components/useProductCatalog.js +1 -0
- package/dist/render/components/useProductSelection.d.ts +39 -0
- package/dist/render/components/useProductSelection.js +1 -0
- package/dist/render/components/useStockAlertSignup.d.ts +14 -0
- package/dist/render/components/useStockAlertSignup.js +1 -0
- package/dist/render/components/useStorefrontReviews.d.ts +2 -0
- package/dist/render/components/useStorefrontReviews.js +1 -0
- package/dist/render/components/useTyreCatalog.d.ts +2 -0
- package/dist/render/components/useTyreCatalog.js +1 -0
- package/dist/render/components/useTyreDetail.d.ts +6 -0
- package/dist/render/components/useTyreDetail.js +1 -0
- package/dist/render/components/useTyreFitAnswer.d.ts +5 -0
- package/dist/render/components/useTyreFitAnswer.js +1 -0
- package/dist/render/components/useWheelDetail.d.ts +6 -0
- package/dist/render/components/useWheelDetail.js +1 -0
- package/dist/render/components/wheels-plp/AlloyWheelsListing.d.ts +42 -0
- package/dist/render/components/wheels-plp/AlloyWheelsListing.js +1 -0
- package/dist/render/components/wheels-plp/PlpActiveChips.d.ts +9 -0
- package/dist/render/components/wheels-plp/PlpActiveChips.js +1 -0
- package/dist/render/components/wheels-plp/PlpCard.d.ts +27 -0
- package/dist/render/components/wheels-plp/PlpCard.js +1 -0
- package/dist/render/components/wheels-plp/PlpInStockToggle.d.ts +6 -0
- package/dist/render/components/wheels-plp/PlpInStockToggle.js +1 -0
- package/dist/render/components/wheels-plp/PlpNotifyMeDialog.d.ts +10 -0
- package/dist/render/components/wheels-plp/PlpNotifyMeDialog.js +1 -0
- package/dist/render/components/wheels-plp/PlpPagination.d.ts +5 -0
- package/dist/render/components/wheels-plp/PlpPagination.js +1 -0
- package/dist/render/components/wheels-plp/PlpSidebar.d.ts +25 -0
- package/dist/render/components/wheels-plp/PlpSidebar.js +1 -0
- package/dist/render/components/wheels-plp/PlpTypePicker.d.ts +7 -0
- package/dist/render/components/wheels-plp/PlpTypePicker.js +1 -0
- package/dist/render/components/wheels-plp/PlpTyreSizeBoxes.d.ts +9 -0
- package/dist/render/components/wheels-plp/PlpTyreSizeBoxes.js +1 -0
- package/dist/render/components/wheels-plp/PlpVehicleBar.d.ts +15 -0
- package/dist/render/components/wheels-plp/PlpVehicleBar.js +1 -0
- package/dist/render/components/wheels-plp/PlpVehicleGate.d.ts +10 -0
- package/dist/render/components/wheels-plp/PlpVehicleGate.js +1 -0
- package/dist/render/components/wheels-plp/usePlpCardSelection.d.ts +18 -0
- package/dist/render/components/wheels-plp/usePlpCardSelection.js +1 -0
- package/dist/render/components/wheels-plp/usePlpFiltersInUrl.d.ts +10 -0
- package/dist/render/components/wheels-plp/usePlpFiltersInUrl.js +1 -0
- package/dist/render/components/wheels-plp/useVehicleCatalog.d.ts +10 -0
- package/dist/render/components/wheels-plp/useVehicleCatalog.js +1 -0
- package/dist/render/components/wheels-plp/useWheelCardBottom.d.ts +20 -0
- package/dist/render/components/wheels-plp/useWheelCardBottom.js +1 -0
- package/dist/render/lib/api/chat.d.ts +31 -0
- package/dist/render/lib/api/chat.js +1 -0
- package/dist/render/lib/api/fitment-data.d.ts +18 -0
- package/dist/render/lib/api/fitment-data.js +1 -0
- package/dist/render/lib/api/gallery-builds-data.d.ts +4 -0
- package/dist/render/lib/api/gallery-builds-data.js +1 -0
- package/dist/render/lib/api/generated-upload-limits.d.ts +1292 -0
- package/dist/render/lib/api/generated-upload-limits.js +1 -0
- package/dist/render/lib/api/index.d.ts +806 -0
- package/dist/render/lib/api/index.js +1 -0
- package/dist/render/lib/api/origins.d.ts +2 -0
- package/dist/render/lib/api/origins.js +1 -0
- package/dist/render/lib/api/types.d.ts +3928 -0
- package/dist/render/lib/api/types.js +0 -0
- package/dist/render/lib/api/upload-limits.d.ts +10 -0
- package/dist/render/lib/api/upload-limits.js +1 -0
- package/dist/render/lib/assistant-chat.d.ts +35 -0
- package/dist/render/lib/assistant-chat.js +1 -0
- package/dist/render/lib/auth.d.ts +6 -0
- package/dist/render/lib/auth.js +1 -0
- package/dist/render/lib/booking/text-kinds.d.ts +11 -0
- package/dist/render/lib/booking/text-kinds.js +1 -0
- package/dist/render/lib/booking-dates.d.ts +23 -0
- package/dist/render/lib/booking-dates.js +1 -0
- package/dist/render/lib/cache-evict.d.ts +4 -0
- package/dist/render/lib/cache-evict.js +1 -0
- package/dist/render/lib/cart/coupon-preview.d.ts +12 -0
- package/dist/render/lib/cart/coupon-preview.js +1 -0
- package/dist/render/lib/cart/shipping-status.d.ts +12 -0
- package/dist/render/lib/cart/shipping-status.js +1 -0
- package/dist/render/lib/cart/snapshot-lines.d.ts +3 -0
- package/dist/render/lib/cart/snapshot-lines.js +1 -0
- package/dist/render/lib/catalog/from-tyre.d.ts +3 -0
- package/dist/render/lib/catalog/from-tyre.js +1 -0
- package/dist/render/lib/catalog/from-wheel.d.ts +7 -0
- package/dist/render/lib/catalog/from-wheel.js +1 -0
- package/dist/render/lib/catalog/listing-links.d.ts +11 -0
- package/dist/render/lib/catalog/listing-links.js +1 -0
- package/dist/render/lib/catalog/plp-item.d.ts +39 -0
- package/dist/render/lib/catalog/plp-item.js +1 -0
- package/dist/render/lib/catalog/plp-vehicle-copy.d.ts +20 -0
- package/dist/render/lib/catalog/plp-vehicle-copy.js +1 -0
- package/dist/render/lib/catalog/plp-vehicle-slice.d.ts +13 -0
- package/dist/render/lib/catalog/plp-vehicle-slice.js +1 -0
- package/dist/render/lib/catalog/product-options.d.ts +27 -0
- package/dist/render/lib/catalog/product-options.js +1 -0
- package/dist/render/lib/catalog/purchase.d.ts +46 -0
- package/dist/render/lib/catalog/purchase.js +1 -0
- package/dist/render/lib/catalog/related-cards.d.ts +12 -0
- package/dist/render/lib/catalog/related-cards.js +1 -0
- package/dist/render/lib/catalog/relationships.d.ts +28 -0
- package/dist/render/lib/catalog/relationships.js +1 -0
- package/dist/render/lib/catalog/store-product.d.ts +56 -0
- package/dist/render/lib/catalog/store-product.js +1 -0
- package/dist/render/lib/chat-socket.d.ts +8 -0
- package/dist/render/lib/chat-socket.js +1 -0
- package/dist/render/lib/checkout/wallet-return.d.ts +52 -0
- package/dist/render/lib/checkout/wallet-return.js +1 -0
- package/dist/render/lib/chrome-cache.d.ts +6 -0
- package/dist/render/lib/chrome-cache.js +1 -0
- package/dist/render/lib/chrome-load.d.ts +28 -0
- package/dist/render/lib/chrome-load.js +1 -0
- package/dist/render/lib/click-ids.d.ts +8 -0
- package/dist/render/lib/click-ids.js +1 -0
- package/dist/render/lib/commerce.d.ts +42 -0
- package/dist/render/lib/commerce.js +1 -0
- package/dist/render/lib/consent/choice.d.ts +35 -0
- package/dist/render/lib/consent/choice.js +1 -0
- package/dist/render/lib/consent/rules.d.ts +60 -0
- package/dist/render/lib/consent/rules.js +1 -0
- package/dist/render/lib/content/catalog-filter-labels.d.ts +6 -0
- package/dist/render/lib/content/catalog-filter-labels.js +1 -0
- package/dist/render/lib/content/country-show-as.d.ts +9 -0
- package/dist/render/lib/content/country-show-as.js +1 -0
- package/dist/render/lib/content/english-variant.d.ts +4 -0
- package/dist/render/lib/content/english-variant.js +1 -0
- package/dist/render/lib/content/field-usage.d.ts +35 -0
- package/dist/render/lib/content/field-usage.js +1 -0
- package/dist/render/lib/content/header-bar.d.ts +8 -0
- package/dist/render/lib/content/header-bar.js +1 -0
- package/dist/render/lib/content/header-theme.d.ts +7 -0
- package/dist/render/lib/content/header-theme.js +1 -0
- package/dist/render/lib/content/menu-placeholder.d.ts +8 -0
- package/dist/render/lib/content/menu-placeholder.js +1 -0
- package/dist/render/lib/content/menu-row.d.ts +9 -0
- package/dist/render/lib/content/menu-row.js +1 -0
- package/dist/render/lib/content/product-hero.d.ts +13 -0
- package/dist/render/lib/content/product-hero.js +1 -0
- package/dist/render/lib/content/site.d.ts +62 -0
- package/dist/render/lib/content/site.js +1 -0
- package/dist/render/lib/content/source-values.d.ts +43 -0
- package/dist/render/lib/content/source-values.js +0 -0
- package/dist/render/lib/content/stock-words.d.ts +10 -0
- package/dist/render/lib/content/stock-words.js +1 -0
- package/dist/render/lib/countries.d.ts +5 -0
- package/dist/render/lib/countries.js +1 -0
- package/dist/render/lib/editor-route.d.ts +3 -0
- package/dist/render/lib/editor-route.js +1 -0
- package/dist/render/lib/email-shape.d.ts +1 -0
- package/dist/render/lib/email-shape.js +1 -0
- package/dist/render/lib/font-table.json +2588 -0
- package/dist/render/lib/forwarded-for.d.ts +6 -0
- package/dist/render/lib/forwarded-for.js +1 -0
- package/dist/render/lib/google-tag.d.ts +37 -0
- package/dist/render/lib/google-tag.js +1 -0
- package/dist/render/lib/header-settings-fetch.d.ts +5 -0
- package/dist/render/lib/header-settings-fetch.js +1 -0
- package/dist/render/lib/links/link-rules.d.ts +80 -0
- package/dist/render/lib/links/link-rules.js +1 -0
- package/dist/render/lib/logo/surface-is-light.d.ts +1 -0
- package/dist/render/lib/logo/surface-is-light.js +1 -0
- package/dist/render/lib/menu-link.d.ts +1 -0
- package/dist/render/lib/menu-link.js +1 -0
- package/dist/render/lib/menu-source.d.ts +23 -0
- package/dist/render/lib/menu-source.js +1 -0
- package/dist/render/lib/meta-pixel.d.ts +19 -0
- package/dist/render/lib/meta-pixel.js +1 -0
- package/dist/render/lib/newsletter-signup.d.ts +16 -0
- package/dist/render/lib/newsletter-signup.js +1 -0
- package/dist/render/lib/next-fonts.d.ts +3 -0
- package/dist/render/lib/next-fonts.js +1 -0
- package/dist/render/lib/popup/popup-rules.d.ts +25 -0
- package/dist/render/lib/popup/popup-rules.js +1 -0
- package/dist/render/lib/popup/text-kind-style.d.ts +3 -0
- package/dist/render/lib/popup/text-kind-style.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/AccountBlock/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/AccountBlock/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/AlloyWheelsListing/render.d.ts +6 -0
- package/dist/render/lib/puck/blocks/commerce/AlloyWheelsListing/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/BundleOffer/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/BundleOffer/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CartBlock/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/CartBlock/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CatalogFilterBar/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/CatalogFilterBar/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CheckoutCTA/render.d.ts +6 -0
- package/dist/render/lib/puck/blocks/commerce/CheckoutCTA/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CollectionCard/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/CollectionCard/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/Collections/render.d.ts +7 -0
- package/dist/render/lib/puck/blocks/commerce/Collections/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/render.d.ts +9 -0
- package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/CountrySwitchBlock/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/CountrySwitchBlock/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/DeliveryOptions/render.d.ts +6 -0
- package/dist/render/lib/puck/blocks/commerce/DeliveryOptions/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/DetailRows/render.d.ts +9 -0
- package/dist/render/lib/puck/blocks/commerce/DetailRows/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/EuTyreLabel/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/EuTyreLabel/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/FitmentFinder/render.d.ts +8 -0
- package/dist/render/lib/puck/blocks/commerce/FitmentFinder/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/FitmentTable/render.d.ts +9 -0
- package/dist/render/lib/puck/blocks/commerce/FitmentTable/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/Gallery/render.d.ts +14 -0
- package/dist/render/lib/puck/blocks/commerce/Gallery/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/GalleryB/render.d.ts +13 -0
- package/dist/render/lib/puck/blocks/commerce/GalleryB/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/GalleryItem/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/GalleryItem/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/Header/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/Header/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ProductGrid/render.d.ts +7 -0
- package/dist/render/lib/puck/blocks/commerce/ProductGrid/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ProductHero/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/ProductHero/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ProductRef/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/ProductRef/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/RelatedProducts/render.d.ts +6 -0
- package/dist/render/lib/puck/blocks/commerce/RelatedProducts/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/SearchBlock/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/SearchBlock/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/SpecTable/render.d.ts +7 -0
- package/dist/render/lib/puck/blocks/commerce/SpecTable/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ThemeSwitchBlock/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/ThemeSwitchBlock/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/TyreFitment/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/TyreFitment/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/TyreSizes/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/TyreSizes/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/placeholders.d.ts +4 -0
- package/dist/render/lib/puck/blocks/commerce/placeholders.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/renders.d.ts +32 -0
- package/dist/render/lib/puck/blocks/commerce/renders.js +1 -0
- package/dist/render/lib/puck/blocks/service/AppointmentBooking/render.d.ts +8 -0
- package/dist/render/lib/puck/blocks/service/AppointmentBooking/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/BookingBox/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/BookingBox/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/ContactRouting/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/ContactRouting/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/Events/render.d.ts +7 -0
- package/dist/render/lib/puck/blocks/service/Events/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/Footer/render.d.ts +8 -0
- package/dist/render/lib/puck/blocks/service/Footer/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterDivider/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterDivider/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterEmailSignup/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterEmailSignup/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterGroup/render.d.ts +8 -0
- package/dist/render/lib/puck/blocks/service/FooterGroup/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterLogo/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterLogo/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterMenu/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterMenu/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterSocial/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterSocial/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/FooterText/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/FooterText/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/Form/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/Form/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/LegalLineBlock/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/LegalLineBlock/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/ReviewForm/render.d.ts +6 -0
- package/dist/render/lib/puck/blocks/service/ReviewForm/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/Reviews/render.d.ts +6 -0
- package/dist/render/lib/puck/blocks/service/Reviews/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/SiteFooter/render.d.ts +7 -0
- package/dist/render/lib/puck/blocks/service/SiteFooter/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/SiteHeader/render.d.ts +7 -0
- package/dist/render/lib/puck/blocks/service/SiteHeader/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/SubmitBox/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/SubmitBox/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/SubmitBuild/render.d.ts +8 -0
- package/dist/render/lib/puck/blocks/service/SubmitBuild/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/Subscribe/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/Subscribe/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/SubscribeBlogs/render.d.ts +17 -0
- package/dist/render/lib/puck/blocks/service/SubscribeBlogs/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/renders.d.ts +26 -0
- package/dist/render/lib/puck/blocks/service/renders.js +1 -0
- package/dist/render/lib/puck/blocks/service/subscribe.d.ts +33 -0
- package/dist/render/lib/puck/blocks/service/subscribe.js +1 -0
- package/dist/render/lib/puck/blocks/text-part-shapes.json +1649 -0
- package/dist/render/lib/puck/current-product.d.ts +19 -0
- package/dist/render/lib/puck/current-product.js +1 -0
- package/dist/render/lib/puck/current-record.d.ts +44 -0
- package/dist/render/lib/puck/current-record.js +1 -0
- package/dist/render/lib/puck/fitment-table-dynamic.d.ts +4 -0
- package/dist/render/lib/puck/fitment-table-dynamic.js +1 -0
- package/dist/render/lib/puck/footer-page-blocks.d.ts +7 -0
- package/dist/render/lib/puck/footer-page-blocks.js +1 -0
- package/dist/render/lib/puck/preview-pick.d.ts +7 -0
- package/dist/render/lib/puck/preview-pick.js +1 -0
- package/dist/render/lib/puck/preview-product.d.ts +6 -0
- package/dist/render/lib/puck/preview-product.js +1 -0
- package/dist/render/lib/puck/render-client.d.ts +5 -0
- package/dist/render/lib/puck/render-client.js +1 -0
- package/dist/render/lib/puck/render-config.d.ts +4 -0
- package/dist/render/lib/puck/render-config.js +1 -0
- package/dist/render/lib/puck/slot-seeds.d.ts +3 -0
- package/dist/render/lib/puck/slot-seeds.js +1 -0
- package/dist/render/lib/puck/storefront-root.d.ts +18 -0
- package/dist/render/lib/puck/storefront-root.js +1 -0
- package/dist/render/lib/puck/subscribe-content-type.d.ts +10 -0
- package/dist/render/lib/puck/subscribe-content-type.js +1 -0
- package/dist/render/lib/puck/template-product-kind.d.ts +7 -0
- package/dist/render/lib/puck/template-product-kind.js +1 -0
- package/dist/render/lib/sections/card-image-sizes.d.ts +12 -0
- package/dist/render/lib/sections/card-image-sizes.js +1 -0
- package/dist/render/lib/sections/card-show-defaults.d.ts +10 -0
- package/dist/render/lib/sections/card-show-defaults.js +1 -0
- package/dist/render/lib/sections/catalog-filter-layout.d.ts +7 -0
- package/dist/render/lib/sections/catalog-filter-layout.js +1 -0
- package/dist/render/lib/sections/fill-row.d.ts +16 -0
- package/dist/render/lib/sections/fill-row.js +1 -0
- package/dist/render/lib/sections/hero-arrangement.d.ts +11 -0
- package/dist/render/lib/sections/hero-arrangement.js +1 -0
- package/dist/render/lib/sections/hero-gallery.d.ts +14 -0
- package/dist/render/lib/sections/hero-gallery.js +1 -0
- package/dist/render/lib/sections/hero-price-placement.d.ts +7 -0
- package/dist/render/lib/sections/hero-price-placement.js +1 -0
- package/dist/render/lib/select-keys.d.ts +18 -0
- package/dist/render/lib/select-keys.js +1 -0
- package/dist/render/lib/site-headers.d.ts +3 -0
- package/dist/render/lib/site-headers.js +1 -0
- package/dist/render/lib/storefront-page-groups.d.ts +16 -0
- package/dist/render/lib/storefront-page-groups.js +1 -0
- package/dist/render/lib/storefront-page-order.d.ts +3 -0
- package/dist/render/lib/storefront-page-order.js +1 -0
- package/dist/render/lib/submit/text-kinds.d.ts +11 -0
- package/dist/render/lib/submit/text-kinds.js +1 -0
- package/dist/render/lib/tyres/eu-tyre-label.d.ts +29 -0
- package/dist/render/lib/tyres/eu-tyre-label.js +1 -0
- package/dist/render/lib/tyres/placeholder-tyre.d.ts +2 -0
- package/dist/render/lib/tyres/placeholder-tyre.js +1 -0
- package/dist/render/lib/tyres/spec-sheet.d.ts +12 -0
- package/dist/render/lib/tyres/spec-sheet.js +1 -0
- package/dist/render/lib/tyres/tyre-brand-name.d.ts +2 -0
- package/dist/render/lib/tyres/tyre-brand-name.js +1 -0
- package/dist/render/lib/tyres/tyre-fit-copy.d.ts +3 -0
- package/dist/render/lib/tyres/tyre-fit-copy.js +1 -0
- package/dist/render/lib/tyres/tyre-page-path.d.ts +2 -0
- package/dist/render/lib/tyres/tyre-page-path.js +1 -0
- package/dist/render/lib/tyres/tyre-purchase.d.ts +12 -0
- package/dist/render/lib/tyres/tyre-purchase.js +1 -0
- package/dist/render/lib/tyres/tyre-size-fit.d.ts +12 -0
- package/dist/render/lib/tyres/tyre-size-fit.js +1 -0
- package/dist/render/lib/tyres/tyre-size.d.ts +11 -0
- package/dist/render/lib/tyres/tyre-size.js +1 -0
- package/dist/render/lib/tyres/tyre-vehicle-fitment.d.ts +17 -0
- package/dist/render/lib/tyres/tyre-vehicle-fitment.js +1 -0
- package/dist/render/lib/uuid.d.ts +1 -0
- package/dist/render/lib/uuid.js +1 -0
- package/dist/render/lib/wheels/applied-vehicle.d.ts +1 -0
- package/dist/render/lib/wheels/applied-vehicle.js +1 -0
- package/dist/render/lib/wheels/catalog-default-layout.d.ts +14 -0
- package/dist/render/lib/wheels/catalog-default-layout.js +1 -0
- package/dist/render/lib/wheels/catalog-filters-to-listing.d.ts +9 -0
- package/dist/render/lib/wheels/catalog-filters-to-listing.js +1 -0
- package/dist/render/lib/wheels/catalog-filters.d.ts +19 -0
- package/dist/render/lib/wheels/catalog-filters.js +1 -0
- package/dist/render/lib/wheels/collections.d.ts +22 -0
- package/dist/render/lib/wheels/collections.js +1 -0
- package/dist/render/lib/wheels/cover-rendering.d.ts +23 -0
- package/dist/render/lib/wheels/cover-rendering.js +1 -0
- package/dist/render/lib/wheels/detail-shots.d.ts +10 -0
- package/dist/render/lib/wheels/detail-shots.js +1 -0
- package/dist/render/lib/wheels/finish-colour-match.d.ts +4 -0
- package/dist/render/lib/wheels/finish-colour-match.js +1 -0
- package/dist/render/lib/wheels/finish-defaults.d.ts +16 -0
- package/dist/render/lib/wheels/finish-defaults.js +1 -0
- package/dist/render/lib/wheels/finish-photos.d.ts +2 -0
- package/dist/render/lib/wheels/finish-photos.js +1 -0
- package/dist/render/lib/wheels/fitment-columns.d.ts +9 -0
- package/dist/render/lib/wheels/fitment-columns.js +1 -0
- package/dist/render/lib/wheels/fitment-options.d.ts +18 -0
- package/dist/render/lib/wheels/fitment-options.js +1 -0
- package/dist/render/lib/wheels/fitment-row-fit.d.ts +17 -0
- package/dist/render/lib/wheels/fitment-row-fit.js +1 -0
- package/dist/render/lib/wheels/fitments.d.ts +13 -0
- package/dist/render/lib/wheels/fitments.js +1 -0
- package/dist/render/lib/wheels/grid-source.d.ts +12 -0
- package/dist/render/lib/wheels/grid-source.js +1 -0
- package/dist/render/lib/wheels/listable-wheels.d.ts +3 -0
- package/dist/render/lib/wheels/listable-wheels.js +1 -0
- package/dist/render/lib/wheels/lug-count.d.ts +10 -0
- package/dist/render/lib/wheels/lug-count.js +1 -0
- package/dist/render/lib/wheels/pdp-fit-verdict.d.ts +27 -0
- package/dist/render/lib/wheels/pdp-fit-verdict.js +1 -0
- package/dist/render/lib/wheels/picker-goes-to-the-shop.d.ts +10 -0
- package/dist/render/lib/wheels/picker-goes-to-the-shop.js +1 -0
- package/dist/render/lib/wheels/placeholder-wheel.d.ts +3 -0
- package/dist/render/lib/wheels/placeholder-wheel.js +1 -0
- package/dist/render/lib/wheels/plp-filters.d.ts +100 -0
- package/dist/render/lib/wheels/plp-filters.js +1 -0
- package/dist/render/lib/wheels/plp-fitment-match.d.ts +61 -0
- package/dist/render/lib/wheels/plp-fitment-match.js +1 -0
- package/dist/render/lib/wheels/plp-grid.d.ts +18 -0
- package/dist/render/lib/wheels/plp-grid.js +1 -0
- package/dist/render/lib/wheels/plp-hydrate.d.ts +21 -0
- package/dist/render/lib/wheels/plp-hydrate.js +1 -0
- package/dist/render/lib/wheels/plp-vehicle-params.d.ts +10 -0
- package/dist/render/lib/wheels/plp-vehicle-params.js +1 -0
- package/dist/render/lib/wheels/pre-order-intent.d.ts +3 -0
- package/dist/render/lib/wheels/pre-order-intent.js +1 -0
- package/dist/render/lib/wheels/pre-order.d.ts +7 -0
- package/dist/render/lib/wheels/pre-order.js +1 -0
- package/dist/render/lib/wheels/price-display.d.ts +47 -0
- package/dist/render/lib/wheels/price-display.js +1 -0
- package/dist/render/lib/wheels/render-fit.d.ts +3 -0
- package/dist/render/lib/wheels/render-fit.js +1 -0
- package/dist/render/lib/wheels/renderable-finishes.d.ts +6 -0
- package/dist/render/lib/wheels/renderable-finishes.js +1 -0
- package/dist/render/lib/wheels/selected-studs.d.ts +9 -0
- package/dist/render/lib/wheels/selected-studs.js +1 -0
- package/dist/render/lib/wheels/set-mode.d.ts +34 -0
- package/dist/render/lib/wheels/set-mode.js +1 -0
- package/dist/render/lib/wheels/size-range.d.ts +10 -0
- package/dist/render/lib/wheels/size-range.js +1 -0
- package/dist/render/lib/wheels/spec-format.d.ts +7 -0
- package/dist/render/lib/wheels/spec-format.js +1 -0
- package/dist/render/lib/wheels/spec-sheet.d.ts +58 -0
- package/dist/render/lib/wheels/spec-sheet.js +1 -0
- package/dist/render/lib/wheels/tyre-render.d.ts +34 -0
- package/dist/render/lib/wheels/tyre-render.js +1 -0
- package/dist/render/lib/wheels/variant-spec.d.ts +9 -0
- package/dist/render/lib/wheels/variant-spec.js +1 -0
- package/dist/render/lib/wheels/variants.d.ts +8 -0
- package/dist/render/lib/wheels/variants.js +1 -0
- package/dist/render/lib/wheels/vehicle-field-focus.d.ts +7 -0
- package/dist/render/lib/wheels/vehicle-field-focus.js +1 -0
- package/dist/render/lib/wheels/vehicle-memory.d.ts +25 -0
- package/dist/render/lib/wheels/vehicle-memory.js +1 -0
- package/dist/render/lib/wheels/wheel-name.d.ts +4 -0
- package/dist/render/lib/wheels/wheel-name.js +1 -0
- package/dist/render/lib/wheels/wheel-specs.d.ts +14 -0
- package/dist/render/lib/wheels/wheel-specs.js +1 -0
- package/dist/render/lib/wheels/wheel-summary-casing.d.ts +4 -0
- package/dist/render/lib/wheels/wheel-summary-casing.js +1 -0
- package/dist/render/lib/wheels/wheels.d.ts +38 -0
- package/dist/render/lib/wheels/wheels.js +1 -0
- package/dist/render/mocks/fitment-snapshot.json +3911 -0
- package/dist/render/mocks/gallery-builds.json +213 -0
- package/dist/words.d.ts +68 -7
- package/dist/words.js +5 -5
- package/package.json +37 -5
- package/dist/chunks/chunk-BDITPYS5.js +0 -1
- package/dist/chunks/chunk-EHKAKDFN.js +0 -255
- /package/dist/chunks/{chunk-4NM2MDGN.js → chunk-76HTJBKU.js} +0 -0
- /package/dist/chunks/{chunk-EHKAKDFN.js.LEGAL.txt → chunk-PHH7L5FJ.js.LEGAL.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useCallback as d,useEffect as c,useMemo as u,useState as i}from"react";import{fitment as f}from"../../lib/api/index.js";import{DEFAULT_VEHICLE as _}from"../../lib/wheels/fitment-options.js";function k(l){return l instanceof Error?l.message:String(l)}function z(l=[],y=!0){const[e,s]=i(_),[g,v]=i(l),[h,p]=i([]),[M,E]=i([]),[m,S]=i([]),[C,b]=i(null),[N,o]=i({makes:y&&l.length===0}),[O,r]=i(null);c(()=>{y&&l.length===0&&(o(t=>({...t,makes:!0})),f.listMakes().then(v).catch(()=>{}).finally(()=>o(t=>({...t,makes:!1}))))},[y,l.length]),c(()=>{if(!e.make){p([]);return}let t=!1;return o(a=>({...a,models:!0})),f.listModels(e.make).then(a=>{t||p(a)}).catch(a=>{t||r(k(a))}).finally(()=>{t||o(a=>({...a,models:!1}))}),()=>{t=!0}},[e.make]),c(()=>{if(!e.make||!e.model){E([]);return}let t=!1;return o(a=>({...a,years:!0})),f.listYears(e.make,e.model).then(a=>{t||E(a)}).catch(a=>{t||r(k(a))}).finally(()=>{t||o(a=>({...a,years:!1}))}),()=>{t=!0}},[e.make,e.model]),c(()=>{if(!e.make||!e.model||e.year===null){S([]);return}let t=!1;return o(a=>({...a,modifications:!0})),f.listModifications(e.make,e.model,e.year).then(a=>{t||S(a)}).catch(a=>{t||r(k(a))}).finally(()=>{t||o(a=>({...a,modifications:!1}))}),()=>{t=!0}},[e.make,e.model,e.year]),c(()=>{if(!(e.year!==null&&e.make&&e.model&&e.modification)){b(null);return}let a=!1;return o(n=>({...n,stock:!0})),r(null),f.getStockFitment(e.make,e.model,e.year,e.modification).then(n=>{a||b(n)}).catch(n=>{a||r(k(n))}).finally(()=>{a||o(n=>({...n,stock:!1}))}),()=>{a=!0}},[e.make,e.model,e.year,e.modification]),c(()=>{e.year!==null&&e.make&&e.model&&!e.modification&&m.length===1&&s(t=>({...t,modification:m[0].slug}))},[e.year,e.make,e.model,e.modification,m]);const F=d(t=>s(a=>({...a,make:t,model:"",year:null,modification:""})),[]),L=d(t=>s(a=>({...a,model:t,year:null,modification:""})),[]),Y=d(t=>s(a=>({...a,year:t?Number(t):null,modification:""})),[]),V=d(t=>s(a=>({...a,modification:t})),[]),x=u(()=>M.map(t=>({value:String(t),label:String(t)})),[M]),A=u(()=>g.map(t=>({value:t.slug,label:t.name})),[g]),D=u(()=>h.map(t=>({value:t.slug,label:t.name})),[h]),H=u(()=>m.map(t=>({value:t.slug,label:t.name})),[m]),I=e.year!==null&&!!e.make&&!!e.model&&!!e.modification,P=g.find(t=>t.slug===e.make)?.name??e.make,T=h.find(t=>t.slug===e.model)?.name??e.model,U=m.find(t=>t.slug===e.modification)?.name??e.modification;return{vehicle:e,setVehicle:s,setMake:F,setModel:L,setYear:Y,setModification:V,makeOptions:A,modelOptions:D,yearOptions:x,modOptions:H,loading:N,cascadeError:O,stock:C,fullyPicked:I,makeName:P,modelName:T,modName:U}}export{z as useFitmentCascade};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type FitmentCascade } from "./useFitmentCascade.js";
|
|
2
|
+
import type { FitmentMake, StockFitment } from "../../lib/api/index.js";
|
|
3
|
+
import { type VehicleSelection } from "../../lib/wheels/fitment-options.js";
|
|
4
|
+
import { type VehicleFitment } from "../../lib/wheels/plp-fitment-match.js";
|
|
5
|
+
import { type RememberedVehicle } from "../../lib/wheels/vehicle-memory.js";
|
|
6
|
+
export type VehicleLabels = RememberedVehicle["labels"];
|
|
7
|
+
export interface AppliedVehicle {
|
|
8
|
+
vehicle: VehicleSelection;
|
|
9
|
+
labels: VehicleLabels;
|
|
10
|
+
stock: StockFitment | null;
|
|
11
|
+
}
|
|
12
|
+
export interface VehicleFit {
|
|
13
|
+
cascade: FitmentCascade;
|
|
14
|
+
applied: AppliedVehicle | null;
|
|
15
|
+
fit: VehicleFitment | null;
|
|
16
|
+
resolving: boolean;
|
|
17
|
+
unresolved: boolean;
|
|
18
|
+
apply: () => void;
|
|
19
|
+
clear: () => void;
|
|
20
|
+
canApply: boolean;
|
|
21
|
+
appliedName: string;
|
|
22
|
+
restored: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function useVehicleFit({ initialMakes, editing, enabled, autoApply, }?: {
|
|
25
|
+
initialMakes?: FitmentMake[];
|
|
26
|
+
editing?: boolean;
|
|
27
|
+
enabled?: boolean;
|
|
28
|
+
autoApply?: boolean;
|
|
29
|
+
}): VehicleFit;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{useCallback as d,useEffect as f,useMemo as A,useRef as R,useState as F}from"react";import{useFitmentCascade as U}from"./useFitmentCascade.js";import{DEFAULT_VEHICLE as w}from"../../lib/wheels/fitment-options.js";import{vehicleFitmentFromStock as x}from"../../lib/wheels/plp-fitment-match.js";import{clearAppliedVehicle as M}from"../../lib/wheels/applied-vehicle.js";import{isCompleteVehicle as k,vehicleFromParams as P}from"../../lib/wheels/plp-vehicle-params.js";import{storefrontVehicleMemory as h}from"../../lib/wheels/vehicle-memory.js";function p(t,o,s){return t!==o?t:s||o}function j(t,o){return t.make===o.make&&t.model===o.model&&t.modification===o.modification}function n(t,o){return t.make===o.make&&t.model===o.model&&t.year===o.year&&t.modification===o.modification}function _({initialMakes:t=[],editing:o=!1,enabled:s=!0,autoApply:b=!1}={}){const e=U(t,s),{setVehicle:a}=e,[l,m]=F(null),[L,N]=F(!1),u=d(()=>({make:e.makeName,model:e.modelName,modification:e.modName}),[e.makeName,e.modelName,e.modName]);f(()=>{if(o||!s){N(!0);return}const c=P(new URLSearchParams(window.location.search)),r=c?null:h.read(),i=c??r?.vehicle??null;i&&(a(i),m({vehicle:i,labels:r?.labels??{make:i.make,model:i.model,modification:i.modification},stock:null})),N(!0)},[o,s,a]),f(()=>{if(!(o||!s))return h.subscribe(()=>{const c=h.read();m(i=>c?i&&n(i.vehicle,c.vehicle)?j(i.labels,c.labels)?i:{...i,labels:c.labels}:{vehicle:c.vehicle,labels:c.labels,stock:null}:null);const r=c?.vehicle??w;a(i=>n(i,r)?i:r)})},[o,s,a]),f(()=>{!b||!k(e.vehicle)||l&&n(l.vehicle,e.vehicle)||m({vehicle:e.vehicle,labels:u(),stock:e.stock})},[b,l,e.vehicle,e.stock,u]),f(()=>{if(!l||!n(e.vehicle,l.vehicle))return;const c={make:p(e.makeName,e.vehicle.make,l.labels.make),model:p(e.modelName,e.vehicle.model,l.labels.model),modification:p(e.modName,e.vehicle.modification,l.labels.modification)};(l.stock!==e.stock||l.labels.make!==c.make||l.labels.model!==c.model||l.labels.modification!==c.modification)&&m(i=>i&&n(e.vehicle,i.vehicle)?{...i,stock:e.stock,labels:c}:i)},[l,e.vehicle,e.stock,e.makeName,e.modelName,e.modName]);const v=R("");f(()=>{if(!(o||!s))try{if(!l){v.current!==""&&(h.clear(),v.current="");return}const c=JSON.stringify({vehicle:l.vehicle,labels:l.labels});if(c===v.current)return;h.write({vehicle:l.vehicle,labels:l.labels}),v.current=c}catch{}},[l,o,s]);const C=d(()=>{k(e.vehicle)&&m({vehicle:e.vehicle,labels:u(),stock:e.stock})},[e.vehicle,e.stock,u]),E=d(()=>{m(null),a(w),!o&&s&&M()},[o,s,a]),y=A(()=>x(l?.stock),[l?.stock]),V=!!l&&n(e.vehicle,l.vehicle)&&e.loading.stock!==!1,S=l?[l.vehicle.year,l.labels.make,l.labels.model,l.labels.modification].filter(Boolean).join(" "):"";return{cascade:e,applied:l,fit:y,resolving:V,unresolved:!!l&&y===null&&!V,apply:C,clear:E,canApply:k(e.vehicle),appliedName:S,restored:L}}export{_ as useVehicleFit};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FitmentCascade } from "./useFitmentCascade.js";
|
|
2
|
+
import type { VehicleFitment } from "../../lib/wheels/plp-fitment-match.js";
|
|
3
|
+
export interface VehicleControl {
|
|
4
|
+
cascade: FitmentCascade;
|
|
5
|
+
appliedName: string;
|
|
6
|
+
fit: VehicleFitment | null;
|
|
7
|
+
resolving: boolean;
|
|
8
|
+
unresolved: boolean;
|
|
9
|
+
clear: () => void;
|
|
10
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FitmentCascade } from "./useFitmentCascade.js";
|
|
2
|
+
import type { PickerOption } from "./PickerField.js";
|
|
3
|
+
import { VEHICLE_FIELD_ORDER, type VehicleField } from "../../lib/wheels/vehicle-field-focus.js";
|
|
4
|
+
export interface VehicleLevelState {
|
|
5
|
+
placeholder: string;
|
|
6
|
+
disabled: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const VEHICLE_FIELD_NEEDED: Record<VehicleField, string>;
|
|
9
|
+
export declare function vehicleLevelStates(cascade: FitmentCascade): Record<VehicleField, VehicleLevelState>;
|
|
10
|
+
export declare function vehicleLevelOptions(cascade: FitmentCascade): Record<VehicleField, PickerOption[]>;
|
|
11
|
+
export declare function vehicleLevelSetters(cascade: FitmentCascade): Record<VehicleField, (v: string) => void>;
|
|
12
|
+
export declare function vehicleLevelValues(cascade: FitmentCascade): Record<VehicleField, string>;
|
|
13
|
+
export declare function vehicleLevelNames(cascade: FitmentCascade): Record<VehicleField, string>;
|
|
14
|
+
export { VEHICLE_FIELD_ORDER };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{VEHICLE_FIELD_ORDER as d}from"../../lib/wheels/vehicle-field-focus.js";const o={make:"Pick a make first",model:"Pick a model first",year:"Pick a year first",trim:"Pick a trim first"};function l({parentPicked:e,loading:i,options:t,waiting:r,loadingLabel:a,readyLabel:n,emptyLabel:m}){return e?i?{placeholder:a,disabled:!0}:t.length===0?{placeholder:m,disabled:!0}:{placeholder:n,disabled:!1}:{placeholder:r,disabled:!0}}function p(e){const{vehicle:i,loading:t}=e;return{make:l({parentPicked:!0,loading:t.makes,options:e.makeOptions,waiting:"",loadingLabel:"Loading makes…",readyLabel:"Select make",emptyLabel:"Vehicle list unavailable"}),model:l({parentPicked:!!i.make,loading:t.models,options:e.modelOptions,waiting:o.make,loadingLabel:"Loading models…",readyLabel:"Select model",emptyLabel:"No models listed"}),year:l({parentPicked:!!i.model,loading:t.years,options:e.yearOptions,waiting:o.model,loadingLabel:"Loading years…",readyLabel:"Select year",emptyLabel:"No years listed"}),trim:l({parentPicked:i.year!==null,loading:t.modifications,options:e.modOptions,waiting:o.year,loadingLabel:"Loading trims…",readyLabel:"Select trim",emptyLabel:"No trims listed"})}}function y(e){return{make:e.makeOptions,model:e.modelOptions,year:e.yearOptions,trim:e.modOptions}}function k(e){return{make:e.setMake,model:e.setModel,year:e.setYear,trim:e.setModification}}function L(e){const{vehicle:i}=e;return{make:i.make,model:i.model,year:i.year!==null?String(i.year):"",trim:i.modification}}function u(e){const{vehicle:i}=e;return{make:i.make?e.makeName:"",model:i.model?e.modelName:"",year:i.year!==null?String(i.year):"",trim:i.modification?e.modName:""}}export{o as VEHICLE_FIELD_NEEDED,d as VEHICLE_FIELD_ORDER,u as vehicleLevelNames,y as vehicleLevelOptions,k as vehicleLevelSetters,p as vehicleLevelStates,L as vehicleLevelValues};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type FormEvent } from "react";
|
|
2
|
+
import { type Form, type FormField } from "../lib/api/index.js";
|
|
3
|
+
export declare function useBoundForm(formSlug: string | undefined, injected: Form | null | undefined): Form | null | undefined;
|
|
4
|
+
export interface FormSubmission {
|
|
5
|
+
valueOf: (key: string) => string;
|
|
6
|
+
set: (key: string, value: string) => void;
|
|
7
|
+
honeypot: string;
|
|
8
|
+
setHoneypot: (value: string) => void;
|
|
9
|
+
submitting: boolean;
|
|
10
|
+
done: boolean;
|
|
11
|
+
error: string | null;
|
|
12
|
+
handleSubmit: (e: FormEvent<HTMLFormElement>) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const SUBMIT_ERROR = "Something went wrong \u2014 your submission wasn't sent. Please try again.";
|
|
15
|
+
export declare function successMessageFor(form: Pick<Form, "successMessage">, fallback?: string): string;
|
|
16
|
+
export declare function useFormSubmission({ form, formSlug, editing, }: {
|
|
17
|
+
form: Form | null | undefined;
|
|
18
|
+
formSlug?: string;
|
|
19
|
+
editing?: boolean;
|
|
20
|
+
}): FormSubmission;
|
|
21
|
+
export declare function FormHoneypot({ value, onChange, }: {
|
|
22
|
+
value: string;
|
|
23
|
+
onChange: (v: string) => void;
|
|
24
|
+
}): import("react").JSX.Element;
|
|
25
|
+
export declare function FormFieldInput({ field, value, onChange, className, rows, placeholder, }: {
|
|
26
|
+
field: FormField;
|
|
27
|
+
value: string;
|
|
28
|
+
onChange: (v: string) => void;
|
|
29
|
+
className: string;
|
|
30
|
+
rows?: number;
|
|
31
|
+
placeholder?: string;
|
|
32
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as i,jsxs as F}from"react/jsx-runtime";import{useEffect as f,useState as a}from"react";import{products as y}from"../lib/api/index.js";import{onStorefrontFormsChanged as k}from"efficient-web-builder/format/lib/editor-events";function T(e,t){const[o,n]=a(void 0),[c,u]=a(0);return f(()=>{if(t!==void 0)return;if(!e){n(null);return}let s=!1;return y.getForm(e).then(r=>{s||n(r)}).catch(()=>{s||n(null)}),()=>{s=!0}},[t,e,c]),f(()=>{if(t===void 0)return k(()=>u(s=>s+1))},[t]),t!==void 0?t:o}const q="Something went wrong — your submission wasn't sent. Please try again.";function E(e,t="Thanks — we've received your submission."){return e.successMessage?.trim()||t}function I({form:e,formSlug:t,editing:o=!1}){const[n,c]=a({}),[u,s]=a(""),[r,h]=a(!1),[x,g]=a(!1),[v,d]=a(null);async function b(l){if(l.preventDefault(),!(o||r||!e||!t)){h(!0),d(null);try{const m=e.fields.map(p=>({fieldKey:p.key,value:n[p.key]??""}));await y.submitForm(t,{answers:m,...u?{company:u}:{}}),g(!0)}catch{d(q)}finally{h(!1)}}}return{valueOf:l=>n[l]??"",set:(l,m)=>c(p=>({...p,[l]:m})),honeypot:u,setHoneypot:s,submitting:r,done:x,error:v,handleSubmit:b}}function M({value:e,onChange:t}){return i("input",{type:"text",name:"company",tabIndex:-1,autoComplete:"off","aria-hidden":"true",className:"hidden",value:e,onChange:o=>t(o.target.value)})}function _({field:e,value:t,onChange:o,className:n,rows:c=5,placeholder:u}){const s=u??e.placeholder;return e.type==="textarea"?i("textarea",{required:e.required,rows:c,value:t,placeholder:s,onChange:r=>o(r.target.value),className:n}):e.type==="select"?F("select",{required:e.required,value:t,onChange:r=>o(r.target.value),className:n,children:[i("option",{value:"",children:s||"Select…"}),e.options.map(r=>i("option",{value:r,children:r},r))]}):e.type==="checkbox"?i("input",{type:"checkbox",required:e.required,checked:t==="true",onChange:r=>o(r.target.checked?"true":""),className:n}):i("input",{type:e.type==="email"?"email":e.type==="tel"?"tel":"text",required:e.required,value:t,placeholder:s,onChange:r=>o(r.target.value),className:n})}export{_ as FormFieldInput,M as FormHoneypot,q as SUBMIT_ERROR,E as successMessageFor,T as useBoundForm,I as useFormSubmission};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ProductKind } from "../../lib/api/index.js";
|
|
2
|
+
export declare const supportedKinds: readonly ProductKind[];
|
|
3
|
+
interface Props {
|
|
4
|
+
num?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
columns?: number;
|
|
8
|
+
editing?: boolean;
|
|
9
|
+
omitHead?: boolean;
|
|
10
|
+
cardImage?: number | null;
|
|
11
|
+
}
|
|
12
|
+
export default function DynamicBundleOffer(props: Props): import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import u from"../SectionBand.js";import B from"../BundleCard.js";import{cardImageShapeTokens as m}from"efficient-web-builder/format/lib/content/card-image-shape";import N from"efficient-web-builder/render/components/SectionHeader";import O from"./KindGate.js";import{useCurrency as _}from"../CurrencyContext.js";import{renderGold as f,renderHeadline as j}from"efficient-web-builder/render/components/goldPhrases";import{useCurrentProduct as k}from"../../lib/puck/current-product.js";import{say as C}from"efficient-web-builder/format/lib/editor-words";const x="border-b border-line py-[120px] max-[1100px]:py-20",g="border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20",S=["alloy-wheel"],y={2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1"};function D(r){return e(O,{kinds:S,type:"BundleOffer",editing:r.editing,children:e(v,{...r})})}function v({num:r,title:o,description:t,columns:d=3,editing:b=!1,omitHead:n=!1,cardImage:i}){const l=k(),{currency:h}=_(),s=l?.product.kind==="alloy-wheel"?l.product.source.bundles??[]:[],c=n?null:e(N,{num:r?f(r):void 0,title:o?j(o,!1):void 0,description:t?f(t):void 0,accent:!0});return s.length===0?b?a(u,{className:n?g:x,style:m(i),children:[c,e("p",{className:"border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:C("Bundles containing this product appear here on a product page.")})]}):null:a(u,{className:n?g:x,style:m(i),children:[c,e("div",{className:`mt-10 grid gap-6 ${y[d]??y[3]}`,children:s.slice(0,d).map(p=>e(B,{bundle:p,currency:h},p.slug))})]})}export{D as default,S as supportedKinds};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type DetailRow } from "../DetailRows.js";
|
|
2
|
+
import { type CurrentRecord } from "../../lib/puck/current-record.js";
|
|
3
|
+
import type { ProductKind } from "../../lib/api/index.js";
|
|
4
|
+
export declare const supportedKinds: readonly ProductKind[];
|
|
5
|
+
interface Props {
|
|
6
|
+
rowsFrom?: "story" | "details";
|
|
7
|
+
startLeft?: boolean;
|
|
8
|
+
padTop?: number;
|
|
9
|
+
padBottom?: number;
|
|
10
|
+
editing?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export default function DynamicDetailRows(props: Props): import("react").JSX.Element;
|
|
13
|
+
export declare function recordDetailRows(record: CurrentRecord): DetailRow[];
|
|
14
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as s}from"react/jsx-runtime";import g from"../SectionBand.js";import m from"../DetailRows.js";import y from"./KindGate.js";import{useCurrentProduct as R}from"../../lib/puck/current-product.js";import{SAMPLE_RECORD as x,recordFacts as D,recordPictures as b,useCurrentRecord as k,useDrawsOtherRecord as S}from"../../lib/puck/current-record.js";import{detailShotTag as B,pickDetailShots as T}from"../../lib/wheels/detail-shots.js";import{selectedStuds as N}from"../../lib/wheels/selected-studs.js";import{useSampleProduct as P}from"./useSampleProduct.js";import{say as v}from"efficient-web-builder/format/lib/editor-words";const C=["alloy-wheel"];function p(e,i){return e.finishes.find(t=>t.name===i)??e.finishes[0]}function L(e,i){return(p(e,i)?.features??[]).map(t=>({eyebrow:t.eyebrow,title:t.heading,copy:t.description,tag:t.mark,image:t.image||void 0}))}function j(e,i,t){const r=T(p(e,i),t);return r.rows.map(n=>({eyebrow:n.eyebrow?.trim()||void 0,title:n.title,copy:n.line||void 0,image:n.url,tag:B(n,r,t),imageShape:"square"}))}function E(e){return S(!!e.editing)?s(F,{...e}):s(y,{kinds:C,type:"DetailRows",editing:e.editing,children:s(K,{...e})})}function f(e){const i=D(e),t=b(e)[0];return!i.length&&!t&&!e.title.trim()?[]:[{title:e.title,specs:i,image:t?.url||void 0}]}function F({startLeft:e,padTop:i,padBottom:t,editing:r=!1}){const n=k(),o=n?f(n):r?f(x):[];return o.length===0?null:s(m,{rows:o,startLeft:e,padTop:i,padBottom:t,editing:r})}function K({rowsFrom:e,startLeft:i,padTop:t,padBottom:r,editing:n=!1}){const o=R(),h=P(n&&!o),l=o?.product??h,a=l?.kind==="alloy-wheel"?l.source:null,c=o?o.selection.shown.finish:void 0,w=o?N(o.selection):null,d=e==="details",u=a?d?j(a,c,w):L(a,c):[];return d&&u.length===0?n?s(g,{className:"border-b border-line py-14 max-[1100px]:py-10",children:s("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:v("No detail shots on this finish yet. Tick a close-up on the design's renderings and give it a title. This section is hidden on the live page until then.")})}):null:s(m,{rows:u,startLeft:i,padTop:t,padBottom:r,editing:n})}export{E as default,f as recordDetailRows,C as supportedKinds};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ProductKind } from "../../lib/api/index.js";
|
|
2
|
+
export declare const supportedKinds: readonly ProductKind[];
|
|
3
|
+
interface Props {
|
|
4
|
+
num?: string;
|
|
5
|
+
editing?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export default function DynamicEuTyreLabel(props: Props): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import l,{EU_LABEL_BAND as m}from"../EuTyreLabels.js";import c from"../SectionBand.js";import u from"./KindGate.js";import{useEuTyreLabels as p}from"../useEuTyreLabels.js";import{useCurrentProduct as d}from"../../lib/puck/current-product.js";import{useSampleProduct as f}from"./useSampleProduct.js";import{say as y}from"efficient-web-builder/format/lib/editor-words";const b=["tyre"];function E(r){return e(u,{kinds:b,type:"EuTyreLabel",editing:r.editing,children:e(h,{...r})})}function h({num:r,editing:t=!1}){const o=d(),a=f(t&&!o),n=o?.product??a,i=n?.kind==="tyre"?n.source.variants:[],s=p(i);return s.length===0&&t?e(c,{className:m,children:e("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:y("The EU label appears here for every size with an EPREL registration number. It is read live from the registry and never stored.")})}):e(l,{labels:s,num:r??"",capped:!1})}export{E as default,b as supportedKinds};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ProductKind } from "../../lib/api/index.js";
|
|
2
|
+
export declare const supportedKinds: readonly ProductKind[];
|
|
3
|
+
interface Props {
|
|
4
|
+
num?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
showFilter?: boolean;
|
|
8
|
+
tooltipDefaultOn?: boolean;
|
|
9
|
+
footnote?: string;
|
|
10
|
+
footnoteLinkText?: string;
|
|
11
|
+
footnoteLinkHref?: string;
|
|
12
|
+
editing?: boolean;
|
|
13
|
+
omitHead?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export default function DynamicFitmentTable(props: Props): import("react").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as o}from"react/jsx-runtime";import x from"../FitmentTable.js";import w from"./KindGate.js";import{useCurrentProduct as y}from"../../lib/puck/current-product.js";import{useSampleProduct as F}from"./useSampleProduct.js";const T=["alloy-wheel"];function b(t){return o(w,{kinds:T,type:"FitmentTable",editing:t.editing,children:o(g,{...t})})}function g({num:t,title:r,description:s,showFilter:l,tooltipDefaultOn:m,footnote:a,footnoteLinkText:d,footnoteLinkHref:f,editing:n=!1,omitHead:c=!1}){const e=y(),u=F(n&&!e),i=e?.product??u,p=i?.kind==="alloy-wheel"?i.source.fitments??[]:[];return o(x,{num:t,title:r,description:s,rows:p,showFilter:l,tooltipDefaultOn:m,footnote:a,footnoteLinkText:d,footnoteLinkHref:f,editing:n,omitHead:c,fieldUsage:e?.fieldUsage})}export{b as default,T as supportedKinds};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const supportedKinds: readonly ("alloy-wheel" | "tyre")[];
|
|
2
|
+
export interface DynamicGalleryGridProps {
|
|
3
|
+
num?: string;
|
|
4
|
+
title?: string;
|
|
5
|
+
linkText?: string;
|
|
6
|
+
linkHref?: string;
|
|
7
|
+
galleryHref?: string;
|
|
8
|
+
submitHref?: string;
|
|
9
|
+
zone?: string;
|
|
10
|
+
photoDisplay?: string;
|
|
11
|
+
previewHover?: boolean;
|
|
12
|
+
display?: unknown;
|
|
13
|
+
displayPhone?: unknown;
|
|
14
|
+
styleOwner?: string;
|
|
15
|
+
editing?: boolean;
|
|
16
|
+
omitHead?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export default function DynamicGalleryGrid(props: DynamicGalleryGridProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as t,jsxs as _}from"react/jsx-runtime";import A from"efficient-web-builder/render/components/Btn";import k,{GALLERY_GRID_ATTR as L,GalleryLinksContext as M}from"../GalleryItem.js";import{SharedPartKinds as T}from"efficient-web-builder/render/components/PublishedPartStylesContext";import{renderHeadline as C}from"efficient-web-builder/render/components/goldPhrases";import H from"efficient-web-builder/render/components/SectionHeader";import I from"./KindGate.js";import{PLP_KINDS as B}from"../../lib/catalog/plp-item.js";import{useCurrentProduct as j}from"../../lib/puck/current-product.js";import{SAMPLE_PICTURE_COUNT as D,SAMPLE_RECORD as F,recordPictures as K,useCurrentRecord as U,useDrawsOtherRecord as Z}from"../../lib/puck/current-record.js";import{useSampleProduct as $}from"./useSampleProduct.js";import{say as G}from"efficient-web-builder/format/lib/editor-words";const z=B,P=["photos","lifestyle","accessories","others"];function W(e,a){if(!e)return[];if(a==="all")return P.flatMap(n=>e[n]??[]);const i=P.includes(a)?a:null;return i?e[i]??[]:[]}const R="relative z-[2] bg-bg py-[120px] max-[800px]:py-[70px]",E="relative z-[2] bg-bg pt-0 pb-[120px] max-[800px]:pt-0 max-[800px]:pb-[70px]",O="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]";function X(e){return Z(!!e.editing)?t(Y,{...e}):t(I,{kinds:z,type:"GalleryB",editing:e.editing,children:t(q,{...e})})}function Y(e){const{editing:a=!1}=e,i=U(),n=i?K(i,{firstField:!0}).map(o=>({images:[o.url],eyebrow:o.alt||void 0})):a?Array.from({length:D},()=>({images:[""]})):[];return t(S,{...e,tiles:n,owner:{name:(i??F).title},emptyHint:G("This record’s pictures appear here on its page. A record with no pictures draws nothing.")})}function q({omitHead:e=!1,num:a,title:i,linkText:n,linkHref:o,galleryHref:p="/gallery",submitHref:x="/contact",zone:y="all",photoDisplay:f="covers",previewHover:b,display:v,displayPhone:u,styleOwner:h,editing:l=!1}){const g=j(),N=$(l&&!g),s=g?.product??N,m=W(s?.mediaGroups,y).map(r=>({images:(r.items??[]).filter(d=>d.kind==="image").map(d=>d.url),name:r.name,finish:r.finish})).filter(r=>r.images.length>0),w=(f==="auto"?m.length>=4?"covers":"all":f)==="all"?m.flatMap(r=>r.images.map(d=>({images:[d],name:r.name,finish:r.finish}))):m;return t(S,{omitHead:e,num:a,title:i,linkText:n,linkHref:o,galleryHref:p,submitHref:x,previewHover:b,display:v,displayPhone:u,styleOwner:h,editing:l,tiles:s?w.map(r=>({images:r.images,eyebrow:r.name,meta:r.finish})):[],owner:{name:s?.name??"",href:s?.href,process:s?.eyebrow},emptyHint:G("This product’s photos appear here on a product page. Add media groups in the product’s Media tab.")})}function S({omitHead:e=!1,num:a,title:i,linkText:n,linkHref:o,galleryHref:p="/gallery",submitHref:x="/contact",previewHover:y,display:f,displayPhone:b,styleOwner:v,editing:u=!1,tiles:h,owner:l,emptyHint:g}){const N=n?{text:n,href:o||"#"}:void 0,s=i?C(i,!1):void 0,m=e?null:t(H,{num:a,title:s,link:N});return h.length===0?u?t("section",{className:e?E:R,children:_("div",{className:O,children:[m,t("p",{className:"mt-8 border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:g})]})}):null:t("section",{className:e?E:R,children:_("div",{className:O,children:[m,t(M.Provider,{value:{galleryHref:p,submitHref:x,previewHover:y,display:f,displayPhone:b,styleOwner:v},children:t(T,{children:t("div",{[L]:"",className:"grid grid-cols-4 gap-2 max-[1500px]:grid-cols-3 max-[800px]:grid-cols-1 max-[800px]:gap-1",children:h.map((c,w)=>t(k,{image:c.images[0],photos:c.images.slice(1).map(r=>({src:r})),href:l.href,process:l.process,eyebrow:c.eyebrow,name:l.name,meta:c.meta,editing:u},`${c.eyebrow}-${w}`))})})}),t("div",{className:"mt-12 flex flex-col items-center gap-3",children:t(A,{href:p,variant:"ghost",children:"See Gallery"})})]})})}export{X as default,z as supportedKinds};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { StoreProduct } from "../../lib/catalog/store-product.js";
|
|
2
|
+
import type { HeroPricePlacement } from "../../lib/sections/hero-price-placement.js";
|
|
3
|
+
import type { HeroLayout, HeroTextAlign } from "../../lib/sections/hero-arrangement.js";
|
|
4
|
+
import type { HeroGalleryMode, HeroImageFit } from "../../lib/sections/hero-gallery.js";
|
|
5
|
+
interface HeroArrangement {
|
|
6
|
+
heroLayout?: HeroLayout;
|
|
7
|
+
imageRatio?: number;
|
|
8
|
+
textAlign?: HeroTextAlign;
|
|
9
|
+
showSpecTable?: boolean;
|
|
10
|
+
showPriceQuote?: boolean;
|
|
11
|
+
galleryMode?: HeroGalleryMode;
|
|
12
|
+
imageFit?: HeroImageFit;
|
|
13
|
+
}
|
|
14
|
+
export declare const supportedKinds: readonly ("alloy-wheel" | "tyre")[];
|
|
15
|
+
export default function DynamicProductHero({ editing, pricePlacement, showVehicleFitment, ...arrangement }: {
|
|
16
|
+
editing?: boolean;
|
|
17
|
+
pricePlacement?: HeroPricePlacement;
|
|
18
|
+
showVehicleFitment?: boolean;
|
|
19
|
+
} & HeroArrangement): import("react").JSX.Element;
|
|
20
|
+
export declare function SampleHeroLoaded({ product, pricePlacement, showVehicleFitment, ...arrangement }: {
|
|
21
|
+
product: StoreProduct;
|
|
22
|
+
pricePlacement?: HeroPricePlacement;
|
|
23
|
+
showVehicleFitment: boolean;
|
|
24
|
+
} & HeroArrangement): import("react").JSX.Element;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as t,Fragment as s,jsxs as p}from"react/jsx-runtime";import u from"../ProductHeroPanel.js";import l from"../ProductLightbox.js";import m from"../SectionNotice.js";import d from"./KindGate.js";import{useLightbox as a}from"../useLightbox.js";import{useProductSelection as f}from"../useProductSelection.js";import{PLP_KINDS as h}from"../../lib/catalog/plp-item.js";import{useCurrentProduct as x}from"../../lib/puck/current-product.js";import{useSampleProduct as P}from"./useSampleProduct.js";import{say as g}from"efficient-web-builder/format/lib/editor-words";const L=h;function b({editing:e=!1,pricePlacement:r,showVehicleFitment:i=!0,...o}){const n=x();return t(d,{kinds:L,type:"ProductHero",editing:e,children:n?t(u,{product:n.product,selection:n.selection,onLightbox:n.openLightbox,editing:e,pricePlacement:r,showVehicleFitment:i,...o}):e?t(S,{pricePlacement:r,showVehicleFitment:i,...o}):t(m,{size:"tall",children:"Bound to the current product — preview on a product page."})})}function S({pricePlacement:e,showVehicleFitment:r,...i}){const o=P(!0);return o?t(F,{product:o,pricePlacement:e,showVehicleFitment:r,...i}):t(m,{size:"tall",children:g("Loading sample product…")})}function F({product:e,pricePlacement:r,showVehicleFitment:i,...o}){const n=f(e,{editing:!0}),c=a();return p(s,{children:[t(u,{product:e,selection:n,onLightbox:c.open,editing:!0,pricePlacement:r,showVehicleFitment:i,...o}),t(l,{item:c.item,onClose:c.close})]})}export{F as SampleHeroLoaded,b as default,L as supportedKinds};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type CardImageBackground } from "efficient-web-builder/format/lib/content/card-image-background";
|
|
2
|
+
import { type CardIndexFormat, type CardOutline } from "efficient-web-builder/format/lib/sections/product-card-style";
|
|
3
|
+
export declare const supportedKinds: readonly ("alloy-wheel" | "tyre")[];
|
|
4
|
+
interface Props {
|
|
5
|
+
num?: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
columns?: number;
|
|
9
|
+
cardCount?: number;
|
|
10
|
+
relationship?: string;
|
|
11
|
+
footnote?: string;
|
|
12
|
+
footnoteLinkText?: string;
|
|
13
|
+
footnoteLinkHref?: string;
|
|
14
|
+
editing?: boolean;
|
|
15
|
+
omitHead?: boolean;
|
|
16
|
+
cardImage?: number | null;
|
|
17
|
+
outline?: CardOutline;
|
|
18
|
+
indexBadge?: CardIndexFormat;
|
|
19
|
+
showBadge?: boolean;
|
|
20
|
+
showCardPrice?: boolean;
|
|
21
|
+
showCardFinishes?: boolean;
|
|
22
|
+
showCardSizes?: boolean;
|
|
23
|
+
showCardBuy?: boolean;
|
|
24
|
+
showCardPage?: boolean;
|
|
25
|
+
coverIndex?: number;
|
|
26
|
+
imageBackground?: CardImageBackground;
|
|
27
|
+
spinOnHover?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export default function DynamicRelatedProducts(props: Props): import("react").JSX.Element;
|
|
30
|
+
export declare function RelatedProductsBody({ num, title, description, columns, cardCount, relationship: key, footnote, footnoteLinkText, footnoteLinkHref, editing, omitHead, cardImage, outline, indexBadge, showBadge, showCardPrice, showCardFinishes, showCardSizes, showCardBuy, showCardPage, coverIndex, imageBackground, spinOnHover, }: Props): import("react").JSX.Element | null;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e,jsxs as O}from"react/jsx-runtime";import A from"../SectionBand.js";import{GRID_CARD_SHOW as k}from"../../lib/sections/card-show-defaults.js";import{useEffect as W,useId as V,useState as X}from"react";import{resolveCardImageBackground as Z,THEME_CARD_IMAGE_BG as q}from"efficient-web-builder/format/lib/content/card-image-background";import{cardImageShapeTokens as B}from"efficient-web-builder/format/lib/content/card-image-shape";import{DEFAULT_COVER_INDEX as J}from"../../lib/wheels/cover-rendering.js";import{DEFAULT_CARD_INDEX_FORMAT as Q,DEFAULT_CARD_OUTLINE as Y,cardIndexCss as ee}from"efficient-web-builder/format/lib/sections/product-card-style";import re from"../CompatibleTyres.js";import oe from"../ProductCard.js";import{CARD_ROWS_GRID_CLASS as te,cardRowsGridStyle as ie}from"../WheelCardFrame.js";import{ProductCardChromeProvider as se}from"../ProductCardChrome.js";import{gridClassImageSizes as ne}from"../../lib/sections/card-image-sizes.js";import{fillRowCss as ae}from"../../lib/sections/fill-row.js";import le from"efficient-web-builder/render/components/SectionHeader";import de from"../ViewMoreLink.js";import{useSiteMenuLinks as ce}from"../catalog/SiteMenuLinks.js";import{renderGold as F,renderHeadline as me}from"efficient-web-builder/render/components/goldPhrases";import pe from"./KindGate.js";import{loadProductCatalog as ue}from"../useProductCatalog.js";import{PLP_KINDS as fe}from"../../lib/catalog/plp-item.js";import{relatedCardCount as he,relatedViewMore as ge}from"../../lib/catalog/related-cards.js";import{DEFAULT_RELATIONSHIP as xe,relationshipApplies as Ce,relationshipByKey as ye}from"../../lib/catalog/relationships.js";import{useCurrentProduct as we}from"../../lib/puck/current-product.js";import{PLACEHOLDER_RELATED as H}from"../../lib/wheels/placeholder-wheel.js";import{say as T}from"efficient-web-builder/format/lib/editor-words";const G={label:"text-[length:var(--size-label,13px)]"},be=fe,$={2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1",4:"grid-cols-4 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1"};function _e(r){return e(pe,{kinds:be,type:"RelatedProducts",editing:r.editing,children:e(Se,{...r})})}function Se({num:r,title:t,description:c,columns:n=3,cardCount:_,relationship:S=xe,footnote:E,footnoteLinkText:R,footnoteLinkHref:D,editing:o=!1,omitHead:x=!1,cardImage:i,outline:m,indexBadge:p,showBadge:C,showCardPrice:y,showCardFinishes:a,showCardSizes:l,showCardBuy:u,showCardPage:f,coverIndex:h,imageBackground:g,spinOnHover:w}){const d=we(),U=ce(),I=he(_),[j,N]=X([]);W(()=>{if(d||!o)return;let v=!1;return ue().then(M=>{const K=M.length>0?M:H;v||N(K)}).catch(()=>{v||N(H)}),()=>{v=!0}},[d,o]);const s=ye(S);if(!s)return null;const L=ge(s,U),P=x?null:e(le,{num:r?F(r):void 0,title:me(t||s.heading,!1),description:c?F(c):void 0,accent:!0});if(!d)return o?e(z,{header:P,wheels:j.slice(0,I),columns:n,viewMore:L,cardImage:i,outline:m,indexBadge:p,showBadge:C,showCardPrice:y,showCardFinishes:a,showCardSizes:l,showCardBuy:u,showCardPage:f,coverIndex:h,imageBackground:g,spinOnHover:w}):null;if(!Ce(s,d.product.kind))return o?e(A,{className:"border-b border-line py-14 max-[1100px]:py-10",style:B(i),children:e("p",{className:`font-mono ${G.label} uppercase tracking-[0.18em] text-fg-dim`,children:T("“{relationship}” does not apply to this product. It is hidden on the live page.",{relationship:T(s.label)})})}):null;const b=s.resolve(d.product,d.relatedWheels);return b.kind==="tyre"?e(re,{omitHead:x,columns:n,cardImage:i,outline:m,indexBadge:p,num:r,title:t||s.heading,description:c,tyres:[...b.tyres].slice(0,I),footnote:E,footnoteLinkText:R,footnoteLinkHref:D,viewMore:L,editing:o}):b.wheels.length===0?o?O(A,{className:"border-b border-line py-[120px] max-[1100px]:py-20",style:B(i),children:[P,e("p",{className:`border-t border-line py-6 font-mono ${G.label} uppercase tracking-[0.18em] text-fg-dim`,children:T("Related products appear here on a product page.")})]}):null:e(z,{header:P,wheels:[...b.wheels].slice(0,I),columns:n,viewMore:L,cardImage:i,outline:m,indexBadge:p,showBadge:C,showCardPrice:y,showCardFinishes:a,showCardSizes:l,showCardBuy:u,showCardPage:f,coverIndex:h,imageBackground:g,spinOnHover:w})}function z({header:r,wheels:t,columns:c,viewMore:n,cardImage:_,outline:S,indexBadge:E,showBadge:R,showCardPrice:D,showCardFinishes:o,showCardSizes:x,showCardBuy:i,showCardPage:m,coverIndex:p,imageBackground:C,spinOnHover:y}){const a=`rp-${V().replace(/:/g,"")}`;if(t.length===0)return null;const l=$[Math.min(4,Math.max(2,c))]??$[3],u=E??Q,f=ee(a,u),h=ae(a,l,{cards:t.length});return O(A,{className:"border-b border-line py-[120px] max-[1100px]:py-20",style:B(_),children:[f&&e("style",{children:f}),h&&e("style",{children:h}),r,e(se,{imageSizes:ne(l,t.length),imageBackgroundFill:Z(C,q),spinOnHover:y??!0,coverIndex:p??J,outline:S??Y,indexBadge:u,showBadge:R??!0,showCardPrice:D??!0,showCardFinishes:o??!0,showCardSizes:x??k.showCardSizes,showCardBuy:i??k.showCardBuy,showCardPage:m??k.showCardPage,children:e("div",{className:`${a} grid gap-[2px] ${te} bg-[var(--catalog-grid-bg)] ${l}`,style:ie("2px"),children:t.map((g,w)=>e(oe,{wheel:g,variant:"catalog"},`${g.slug}-${w}`))})}),e("div",{className:"mt-10 flex",children:e(de,{href:n.href,label:n.label})})]})}export{Se as RelatedProductsBody,_e as default,be as supportedKinds};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ProductKind } from "../../lib/api/index.js";
|
|
2
|
+
export declare const supportedKinds: readonly ProductKind[];
|
|
3
|
+
interface Props {
|
|
4
|
+
nodeId?: string;
|
|
5
|
+
num?: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
showDiagram?: boolean;
|
|
9
|
+
editing?: boolean;
|
|
10
|
+
omitHead?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export default function DynamicSpecTable(props: Props): import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as c}from"react/jsx-runtime";import h from"../SpecTable.js";import v from"./KindGate.js";import{useEuTyreLabels as A}from"../useEuTyreLabels.js";import{buildSpecSheet as E,sourceFromWheel as P}from"../../lib/wheels/spec-sheet.js";import{buildTyreSpecSheet as k}from"../../lib/tyres/spec-sheet.js";import{partVariant as L}from"../../lib/catalog/from-wheel.js";import{useCurrentProduct as V}from"../../lib/puck/current-product.js";import{applySpecAnswers as b}from"../../lib/content/field-usage.js";import{useSampleProduct as _}from"./useSampleProduct.js";const j=["alloy-wheel","tyre"],G=[],I=[];function K(n,r,s){const i=n.variants??[];return(r?i.find(t=>t.sku===r):void 0)??(s?i.find(t=>t.size===s):void 0)??i[0]??null}function M(n){return c(v,{kinds:j,type:"SpecTable",editing:n.editing,children:c(N,{...n})})}function N({num:n,title:r,description:s,showDiagram:i=!0,editing:t=!1,nodeId:d,omitHead:u=!1}){const e=V(),w=_(t&&!e),a=e?.product??w,l=a?.kind==="tyre"?a.source:null,y=A(l?.variants??G),p=e?.fieldUsage??I;if(l){const f=K(l,e?.selection.part?.id,e?.selection.shown.size),g=y.find(z=>z.size===f?.size)??null,x=k({brand:l.brand,variant:f,euLabel:g});return c(h,{capped:!1,num:n,title:r,description:s,rows:b(x.rows,p),diagram:null,editing:t,nodeId:d,omitHead:u})}const o=a?.kind==="alloy-wheel"?a.source:null,S=e?e.selection.shown.finish:o?.finishes[0]?.name,T=e&&o?L(o,e.selection.part)?.size??void 0:void 0,m=o?E(P(o),S,T):{rows:[],diagram:null};return c(h,{capped:!1,num:n,title:r,description:s,rows:b(m.rows,p),diagram:i?m.diagram:null,editing:t,nodeId:d,omitHead:u})}export{M as default,j as supportedKinds};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ProductKind } from "../../lib/api/index.js";
|
|
2
|
+
export declare const supportedKinds: readonly ProductKind[];
|
|
3
|
+
interface Props {
|
|
4
|
+
num?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
escapeText?: string;
|
|
8
|
+
escapeHref?: string;
|
|
9
|
+
omitHead?: boolean;
|
|
10
|
+
editing?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export default function DynamicTyreFitment(props: Props): import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as t,jsxs as l}from"react/jsx-runtime";import d from"../SectionBand.js";import f from"efficient-web-builder/render/components/SectionHeader";import T,{BAND_INLINE as y,BAND_OWN_BOX as x,TYRE_FITMENT_DESCRIPTION as h,TYRE_FITMENT_TITLE as N}from"../TyreVehicleFitment.js";import _ from"./KindGate.js";import{useCurrentProduct as g}from"../../lib/puck/current-product.js";import{useSampleProduct as E}from"./useSampleProduct.js";import{say as I}from"efficient-web-builder/format/lib/editor-words";const v=["tyre"];function F(e){return t(_,{kinds:v,type:"TyreFitment",editing:e.editing,children:t(B,{...e})})}function B({num:e,title:i,description:s,escapeText:p,escapeHref:u,omitHead:n=!1,editing:o=!1}){const a=g(),m=E(o&&!a),c=a?.product??m,r=c?.kind==="tyre"?c.source:null;return!r||r.variants.length===0?o?l(d,{className:n?x:y,children:[n?null:t(f,{num:e,title:i||N,description:s||h,accent:!0}),t("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:I("The vehicle question appears here on a tyre product page, with one verdict per size.")})]}):null:t(T,{num:e,title:i||void 0,description:s||void 0,escapeText:p,escapeHref:u,omitHead:n,capped:!1,slug:r.slug,variants:r.variants})}export{F as default,v as supportedKinds};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ProductKind } from "../../lib/api/index.js";
|
|
2
|
+
export declare const supportedKinds: readonly ProductKind[];
|
|
3
|
+
interface Props {
|
|
4
|
+
num?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
editing?: boolean;
|
|
8
|
+
omitHead?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export default function DynamicTyreSizes(props: Props): import("react").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as r,jsxs as d}from"react/jsx-runtime";import m from"../SectionBand.js";import b from"../SectionFootnote.js";import h from"efficient-web-builder/render/components/SectionHeader";import S from"../TyreCard.js";import{useCurrency as N}from"../CurrencyContext.js";import{renderGold as l,renderHeadline as z}from"efficient-web-builder/render/components/goldPhrases";import T from"./KindGate.js";import{useCurrentProduct as _}from"../../lib/puck/current-product.js";import{TYRE_ILLUSTRATION_NOTE as k}from"../../lib/wheels/tyre-render.js";import{useSampleProduct as E}from"./useSampleProduct.js";import{say as A}from"efficient-web-builder/format/lib/editor-words";const u="border-b border-line py-[120px] max-[1100px]:py-20",f="border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20",B=[],P=["tyre"];function U(t){return r(T,{kinds:P,type:"TyreSizes",editing:t.editing,children:r(j,{...t})})}function j({num:t,title:s,description:o,editing:i=!1,omitHead:e=!1}){const n=_(),x=E(i&&!n),p=n?.product??x,c=p?.kind==="tyre"?p.source.variants:[],a=e?null:r(h,{num:t?l(t):void 0,title:z(s||"Available *sizes.*",!1),description:l(o||"Every size this tyre is made in, with its own price and stock."),accent:!0});if(c.length===0)return i?d(m,{className:e?f:u,children:[a,r("p",{className:"border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:A("This product’s sizes appear here on a product page.")})]}):null;const y=c.some(g=>!g.image);return d(m,{className:e?f:u,children:[a,r(D,{variants:c,fieldUsage:n?.fieldUsage??B}),r(b,{text:y?k:""})]})}function D({variants:t,fieldUsage:s}){const{currency:o,formatPrice:i}=N();return r("div",{className:"grid grid-cols-3 gap-2 max-[1100px]:grid-cols-2 max-[720px]:grid-cols-1",children:t.map(e=>r(S,{fieldUsage:s,size:e.size,specs:e.specs,prices:e.prices,image:e.image,inStock:e.inStock,currency:o,formatPrice:i},e.sku))})}export{U as default,P as supportedKinds};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type FitmentTableProps } from "../FitmentTable.js";
|
|
2
|
+
interface Props extends Omit<FitmentTableProps, "rows"> {
|
|
3
|
+
dynamic?: unknown;
|
|
4
|
+
wheel?: unknown;
|
|
5
|
+
}
|
|
6
|
+
export default function FitmentTableBlock({ dynamic, wheel, omitHead, ...rest }: Props): import("react").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as m}from"react/jsx-runtime";import e from"./DynamicFitmentTable.js";import a from"../FitmentTable.js";import{useCurrentProduct as f}from"../../lib/puck/current-product.js";import{isEditorOnDynamicPage as s}from"efficient-web-builder/format/lib/puck/editor-page-context";import{fitmentTableIsDynamic as c}from"../../lib/puck/fitment-table-dynamic.js";import{getFitments as l}from"../../lib/wheels/fitments.js";function p({dynamic:r,wheel:t,omitHead:i=!1,...o}){const n=f()!==null||!!o.editing&&s();return c({dynamic:r,wheel:t},n)?m(e,{...o,omitHead:i}):m(a,{...o,omitHead:i,rows:l(typeof t=="string"?t:"")})}export{p as default};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ProductKind } from "../../lib/api/index.js";
|
|
3
|
+
export default function KindGate({ kinds, type, editing, children, }: {
|
|
4
|
+
kinds: readonly ProductKind[];
|
|
5
|
+
type: string;
|
|
6
|
+
editing?: boolean;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{Fragment as a,jsx as n}from"react/jsx-runtime";import l from"../SectionBand.js";import{SECTION_LABELS as c}from"efficient-web-builder/format/lib/puck/section-catalog";import{useCurrentProduct as d}from"../../lib/puck/current-product.js";import{PLP_KIND_LABELS as m}from"../../lib/catalog/plp-item.js";import{say as r}from"efficient-web-builder/format/lib/editor-words";function u({kinds:e,type:o,editing:i=!1,children:s}){const t=d();return!t||e.includes(t.product.kind)?n(a,{children:s}):i?n(l,{className:"border-b border-line py-14 max-[1100px]:py-10",children:n("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:r("{section} does not apply to {kind}. It is hidden on the live page.",{section:r(c[o]??o),kind:p(t.product.kind)})})}):null}function p(e){switch(e){case"alloy-wheel":return r("Alloy wheels");case"tyre":return r("Tyres");default:return m[e]}}export{u as default};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { StoreProduct } from "../../lib/catalog/store-product.js";
|
|
2
|
+
import { type ProductKind, type Wheel } from "../../lib/api/index.js";
|
|
3
|
+
export declare const PREVIEWABLE_KINDS: readonly ProductKind[];
|
|
4
|
+
export declare function sampleProductFor(picked: Wheel | null, kind: ProductKind): StoreProduct;
|
|
5
|
+
export declare function useSampleProduct(enabled: boolean): StoreProduct | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{useEffect as s,useState as p}from"react";import{fromTyre as a}from"../../lib/catalog/from-tyre.js";import{fromWheel as u}from"../../lib/catalog/from-wheel.js";import{storefrontAdmin as d}from"../../lib/api/index.js";import{getEditorToken as E}from"efficient-web-builder/render/lib/editor-auth";import{getEditorSiteId as P}from"efficient-web-builder/render/lib/editor-site";import{usePreviewProductSlug as h}from"../../lib/puck/preview-product.js";import{previewSlugFor as S,useCurrentPreviewPick as k}from"../../lib/puck/preview-pick.js";import{useTemplateProductKind as w}from"../../lib/puck/template-product-kind.js";import{PLACEHOLDER_TYRE as L}from"../../lib/tyres/placeholder-tyre.js";import{PLACEHOLDER_WHEEL as g}from"../../lib/wheels/placeholder-wheel.js";let c=null,m=null;const i=new Map;function v(e){const r=E(),t=P();(r!==c||t!==m)&&(c=r,m=t,i.clear());let o=i.get(e);return o||(o=r?d.getWheelDetail(r,e,{siteId:t}).catch(()=>null):Promise.resolve(null),i.set(e,o)),o}function T(e){return e==="tyre"?a(L):u(g)}const W=["alloy-wheel"];function A(e,r){return e?u(e):T(r)}function B(e){const r=S(k(),h()),t=w(),[o,n]=p(null);return s(()=>{if(!e||!r||!W.includes(t)){n(null);return}let l=!1;return v(r).then(f=>{l||n(f)}),()=>{l=!0}},[e,r,t]),e?A(o,t):null}export{W as PREVIEWABLE_KINDS,A as sampleProductFor,B as useSampleProduct};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { VehicleFit } from "../fitment/useVehicleFit.js";
|
|
2
|
+
import { type TyreFitAnswer } from "../../lib/tyres/tyre-vehicle-fitment.js";
|
|
3
|
+
import type { TyreVariant } from "../../lib/api/index.js";
|
|
4
|
+
export default function TyreHeroFitment({ slug, variants, vehicle, manualMode, setManualMode, }: {
|
|
5
|
+
slug: string;
|
|
6
|
+
variants: readonly TyreVariant[];
|
|
7
|
+
vehicle: VehicleFit;
|
|
8
|
+
manualMode: boolean;
|
|
9
|
+
setManualMode: (fn: (m: boolean) => boolean) => void;
|
|
10
|
+
}): import("react").JSX.Element;
|
|
11
|
+
export declare function TyreHeroVerdict({ answer, loading, car, variants, onChange, }: {
|
|
12
|
+
answer: TyreFitAnswer | null;
|
|
13
|
+
loading: boolean;
|
|
14
|
+
car: string;
|
|
15
|
+
variants: readonly TyreVariant[];
|
|
16
|
+
onChange: () => void;
|
|
17
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e,jsxs as t,Fragment as f}from"react/jsx-runtime";import p from"next/link";import y,{Box as m}from"./VehicleQuestion.js";import{useTyreFitAnswer as k}from"../useTyreFitAnswer.js";import{TYRE_FIT_LABEL as b,tyreFitHeadline as x}from"../../lib/tyres/tyre-fit-copy.js";import{TYRE_FIT_CHIP as g,tyreFitSizeChips as N}from"../../lib/tyres/tyre-size-fit.js";import{tyreFitQuery as F}from"../../lib/tyres/tyre-vehicle-fitment.js";function v({slug:s,variants:d,vehicle:r,manualMode:n,setManualMode:u}){const{answer:o,loading:a}=k(s,n?null:F(r.applied?.vehicle)),i=r.appliedName;return e(y,{vehicle:r,escape:e("button",{type:"button",className:"cursor-pointer text-right text-accent hover:underline",onClick:()=>u(l=>!l),children:n?"← Find by vehicle":"Select by specs instead →"}),override:n?t(m,{tone:"quiet",children:[e("strong",{className:"font-semibold text-fg",children:"You are choosing by size."}),t("span",{className:"mt-2 block",children:["Pick the size above. We have not checked it against any car — make sure it matches the placard on your door."," ",e(p,{href:"/contact",className:"text-accent hover:underline",children:"Ask us if you are unsure →"})]})]}):null,verdict:e(z,{answer:o,loading:a,car:i,variants:d,onChange:r.clear}),showChangeCar:!1,cascadeErrorNote:t(f,{children:["Vehicle data is unavailable right now. Pick your size above, or"," ",e(p,{href:"/contact",className:"text-accent hover:underline",children:"ask us to check it →"})]}),askNote:"Asked once. Every tyre after this one is already filled in."})}function z({answer:s,loading:d,car:r,variants:n,onChange:u}){if(d||!s)return t(m,{tone:"quiet",children:[e("strong",{className:"font-semibold text-fg",children:"Checking your car…"})," ",t("span",{children:["Reading the factory tyre sizes for your ",r,"."]})]});const o=N(s,n),a=s.status==="doesNotFit"?"You can still order any size here — check it suits your car first.":"",i=o.length===0?x(s):"",l=i&&a?`${i} ${a}`:i||a;return t(m,{tone:s.status==="fits"?"good":"quiet",children:[t("span",{className:"block",children:[s.status==="fits"?t("strong",{className:"font-semibold text-accent",children:["✓ Made in a size your ",r," takes"]}):s.status==="doesNotFit"?t("strong",{className:"font-semibold text-fg",children:["Not made in a size your ",r," takes"]}):t("strong",{className:"font-semibold text-fg",children:["We cannot check this tyre against your ",r]}),t("span",{className:"whitespace-nowrap",children:[" · ",e("button",{type:"button",onClick:u,"aria-label":`Change car - forget ${r} and ask again`,className:"cursor-pointer uppercase tracking-[0.16em] text-accent underline underline-offset-4 hover:text-fg",children:"Change car"})]})]}),l?e("span",{className:"mt-2 block",children:l}):null,o.length>0?t(f,{children:[e("span",{className:"mt-2 block",children:"Your car takes:"}),e("ul",{className:"mt-2 flex flex-wrap gap-2",children:o.map(c=>{const h=c.made?g.fits:g.doesNotFit;return e("li",{className:"border border-line px-2 py-1 text-[11px] uppercase tracking-[0.14em]",style:h.color?{color:h.color,borderColor:h.color}:void 0,children:c.made?`${c.size} · ${b.fits}`:c.size},c.size)})})]}):null]})}export{z as TyreHeroVerdict,v as default};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { VehicleControl } from "../fitment/vehicle-control.js";
|
|
3
|
+
export default function VehicleQuestion({ vehicle, escape, override, verdict, showChangeCar, cascadeErrorNote, askNote, }: {
|
|
4
|
+
vehicle: VehicleControl;
|
|
5
|
+
escape: ReactNode;
|
|
6
|
+
override: ReactNode | null;
|
|
7
|
+
verdict: ReactNode;
|
|
8
|
+
showChangeCar: boolean;
|
|
9
|
+
cascadeErrorNote: ReactNode;
|
|
10
|
+
askNote: string;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
export declare function HeroVehicleMemory({ vehicle }: {
|
|
13
|
+
vehicle: VehicleControl;
|
|
14
|
+
}): import("react").JSX.Element | null;
|
|
15
|
+
export declare function Box({ tone, children }: {
|
|
16
|
+
tone: "good" | "bad" | "quiet";
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as a,jsxs as t}from"react/jsx-runtime";import s from"../fitment/FitmentPickerGrid.js";function p({vehicle:e,escape:n,override:r,verdict:c,showChangeCar:o,cascadeErrorNote:i,askNote:l}){const d=e.appliedName!=="";return t("div",{className:"pb-2",children:[t("div",{className:"mb-3 flex items-center justify-between gap-4 font-mono text-[13px] font-semibold uppercase tracking-[0.2em] text-fg",children:[a("span",{children:"Vehicle Fitment"}),n]}),r?a("div",{className:"flex flex-col gap-3",children:r}):d?t("div",{className:"flex flex-col gap-3",children:[c,o&&a("div",{children:a("button",{type:"button",onClick:e.clear,"aria-label":`Change car - forget ${e.appliedName} and ask again`,className:"cursor-pointer font-mono text-[12px] uppercase tracking-[0.16em] text-accent underline underline-offset-4 hover:text-fg",children:"Change car"})})]}):t("div",{className:"flex flex-col gap-3",children:[a(s,{cascade:e.cascade,compact:!0}),e.cascade.cascadeError&&a("p",{className:"font-mono text-[12px] leading-relaxed tracking-[0.1em] text-fg-dim",children:i}),a("span",{className:"font-mono text-[12px] tracking-[0.1em] text-fg-dim",children:l})]})]})}function f({vehicle:e}){return e.appliedName?t("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 border border-accent px-3 py-2 font-mono text-[12px] tracking-[0.1em] text-fg-dim",style:{background:"color-mix(in oklab, var(--accent) 8%, transparent)"},children:[t("span",{children:["Showing fitment for your"," ",a("strong",{className:"font-semibold text-fg",children:e.appliedName})]}),a("button",{type:"button",onClick:e.clear,"aria-label":`Change car - forget ${e.appliedName} and ask again`,className:"ml-auto cursor-pointer uppercase tracking-[0.16em] text-accent underline underline-offset-4 hover:text-fg",children:"Change car"})]}):null}function g({tone:e,children:n}){return a("div",{className:["border px-3 py-3 font-mono text-[13px] leading-relaxed tracking-[0.1em] text-fg-dim",e==="good"?"border-accent":e==="bad"?"border-alert":"border-dashed border-line"].join(" "),children:n})}export{g as Box,f as HeroVehicleMemory,p as default};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { VehicleControl } from "../fitment/vehicle-control.js";
|
|
2
|
+
import type { ProductSelection } from "../useProductSelection.js";
|
|
3
|
+
import type { Wheel } from "../../lib/api/index.js";
|
|
4
|
+
export default function WheelHeroFitment({ selection, spec, vehicle, wheel, }: {
|
|
5
|
+
selection: ProductSelection;
|
|
6
|
+
spec: string;
|
|
7
|
+
vehicle: VehicleControl;
|
|
8
|
+
wheel: Wheel | null;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e,jsxs as n,Fragment as g}from"react/jsx-runtime";import o from"next/link";import b,{Box as s}from"./VehicleQuestion.js";import{resolvingRowsAnswered as w}from"../../lib/catalog/product-options.js";import{fitRefusal as h,pdpFitVerdict as x}from"../../lib/wheels/pdp-fit-verdict.js";import{variantIsDually as k}from"../../lib/wheels/set-mode.js";function y({selection:a,spec:r,vehicle:t,wheel:l}){const{manualMode:c,setManualMode:d}=a,u=w(a.rows,a.preOrder),m=t.appliedName!=="",f=(l?.variants??[]).some(k),i=x({wheel:l,applied:m,fit:t.fit,resolving:t.resolving});return e(b,{vehicle:t,escape:e("button",{type:"button",className:"cursor-pointer text-right text-accent hover:underline",onClick:()=>d(p=>!p),children:c?"← Find by vehicle":"Select by specs instead →"}),override:c?n(s,{tone:"quiet",children:[e("strong",{className:"font-semibold text-fg",children:"You are choosing by the numbers."}),n("span",{className:"mt-2 block",children:[r?`${f?"The set is":"All four wheels are"} ${r}. We have not checked that against any car — make sure it matches yours.`:u?"Answer the bolt pattern and the offset below. We will not check them against a car.":"Pick a finish and a size below. The bolt pattern and the offset come next, and we will not check them against a car."," ",e(o,{href:"/fitment",className:"text-accent hover:underline",children:"Talk to an engineer →"})]})]}):null,verdict:e(N,{verdict:i,car:t.appliedName}),showChangeCar:i.state!=="fits"&&i.state!=="checking",cascadeErrorNote:n(g,{children:["Vehicle data is unavailable right now. Pick your wheel by its specs instead, or"," ",e(o,{href:"/contact",className:"text-accent hover:underline",children:"ask us to check it →"})]}),askNote:"Asked once. Every wheel after this one is already filled in."})}function N({verdict:a,car:r}){switch(a.state){case"checking":return n(s,{tone:"quiet",children:[e("strong",{className:"font-semibold text-fg",children:"Checking fitment…"})," ",n("span",{children:["Reading the factory wheel specs for your ",r,"."]})]});case"fits":return n(s,{tone:"good",children:[n("strong",{className:"font-semibold text-accent",children:["✓ Fits your ",r]}),e("ul",{className:"mt-2 flex flex-wrap gap-2",children:a.checks.map(t=>e("li",{className:["px-2 py-1 text-[11px] uppercase tracking-[0.14em] text-fg-dim",t.value!==null?"border border-line":"border border-dashed border-line"].join(" "),children:t.value??`${t.name} not published, not checked`},t.key))})]});case"fits-with-warning":return n(s,{tone:"good",children:[n("strong",{className:"font-semibold text-accent",children:["✓ Fits your ",r]}),e("ul",{className:"mt-2 flex flex-wrap gap-2",children:a.checks.map(t=>e("li",{className:["px-2 py-1 text-[11px] uppercase tracking-[0.14em] text-fg-dim",t.value!==null?"border border-line":"border border-dashed border-line"].join(" "),children:t.value??`${t.name} not published, not checked`},t.key))}),n("span",{className:"mt-2 block border-l-2 border-alert pl-3",children:[e("strong",{className:"font-semibold text-fg",children:"Check the offset. "}),h(a.warning)," An offset this far out is what an aftermarket wheel is for, but it changes how far the wheel sits from the guard."," ",e(o,{href:"/contact",className:"text-accent hover:underline",children:"Ask us if you are unsure →"})]})]});case"no-fit":return n(s,{tone:"bad",children:[n("strong",{className:"font-semibold",style:{color:"var(--alert)"},children:["✗ Does not fit your ",r]}),e("span",{className:"mt-2 block",children:h(a.failure)})]});case"unknown":return n(s,{tone:"quiet",children:[e("strong",{className:"font-semibold text-fg",children:a.missing==="vehicle"?`We cannot check this wheel against your ${r}`:"We cannot check this wheel"}),n("span",{className:"mt-2 block",children:[a.missing==="vehicle"?`We have no factory wheel data for the ${r}, and we will not guess at a fit.`:"We do not hold a bolt pattern for this wheel, and we will not guess at a fit."," ",e(o,{href:"/contact",className:"text-accent hover:underline",children:"Ask us before you order →"})]})]});default:return null}}export{y as default};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type ProductHeroContent } from "../../lib/content/product-hero.js";
|
|
3
|
+
export declare function ProductHeroContentProvider({ content, children, }: {
|
|
4
|
+
content: ProductHeroContent;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}): import("react").JSX.Element;
|
|
7
|
+
export declare function useProductHeroContent(): ProductHeroContent;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import{createContext as n,useContext as u}from"react";import{PRODUCT_HERO_DEFAULTS as c}from"../../lib/content/product-hero.js";const t=n(c);function C({content:o,children:r}){return e(t.Provider,{value:o,children:r})}function d(){return u(t)}export{C as ProductHeroContentProvider,d as useProductHeroContent};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ProductSelection } from "../useProductSelection.js";
|
|
3
|
+
import type { StoreProduct } from "../../lib/catalog/store-product.js";
|
|
4
|
+
import type { HeroImageFit } from "../../lib/sections/hero-gallery.js";
|
|
5
|
+
export interface HeroView {
|
|
6
|
+
heading: string;
|
|
7
|
+
photos: string[];
|
|
8
|
+
tint: string | undefined;
|
|
9
|
+
stageImage: (opts: {
|
|
10
|
+
photo: string | undefined;
|
|
11
|
+
alt: string;
|
|
12
|
+
label: string;
|
|
13
|
+
onZoom: () => void;
|
|
14
|
+
fit: HeroImageFit;
|
|
15
|
+
}) => ReactNode;
|
|
16
|
+
thumbImage: (opts: {
|
|
17
|
+
photo: string | undefined;
|
|
18
|
+
alt: string;
|
|
19
|
+
}) => ReactNode;
|
|
20
|
+
captions: readonly (string | undefined)[];
|
|
21
|
+
galleryHint: string;
|
|
22
|
+
referenceNote: string;
|
|
23
|
+
thumbFallbackCells: number;
|
|
24
|
+
metaValue: string;
|
|
25
|
+
specCaption: string;
|
|
26
|
+
originCaption: ReactNode;
|
|
27
|
+
unitLabel: string;
|
|
28
|
+
vehicle: ReactNode;
|
|
29
|
+
vehicleMemory: ReactNode;
|
|
30
|
+
vehicleAnswersSpecs: boolean;
|
|
31
|
+
preOrder: ReactNode;
|
|
32
|
+
}
|
|
33
|
+
export declare function photoLabel(view: Pick<HeroView, "captions">, i: number): string;
|
|
34
|
+
export declare function MarkedLabel({ text }: {
|
|
35
|
+
text: string;
|
|
36
|
+
}): import("react").JSX.Element;
|
|
37
|
+
export declare function heroView(product: StoreProduct, selection: ProductSelection, editing: boolean): HeroView;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as a,Fragment as b,jsxs as x}from"react/jsx-runtime";import N from"./TyreHeroFitment.js";import{STAGE_IMAGE_SIZES as y}from"./stage-photo.js";import{HeroVehicleMemory as w}from"./VehicleQuestion.js";import E from"./WheelHeroFitment.js";import C from"../PreOrderPanel.js";import j from"efficient-web-builder/render/components/RMark";import z from"../TyreImage.js";import F from"../WheelImage.js";import k from"../WheelSvg.js";import{partVariant as P,wheelFinish as H}from"../../lib/catalog/from-wheel.js";import{tyreModelLine as L}from"../../lib/tyres/tyre-brand-name.js";import{axisRenderingsFor as R,lugRenderingsFor as S}from"../../lib/wheels/cover-rendering.js";import{finishAngles as _}from"../../lib/wheels/finish-photos.js";import{selectedStuds as A}from"../../lib/wheels/selected-studs.js";import{REFERENCE_NOTE as T,stageIsFallback as B}from"../../lib/wheels/render-fit.js";import{PER_WHEEL_UNIT as O}from"../../lib/wheels/set-mode.js";import{variantSpecLabel as I}from"../../lib/wheels/variant-spec.js";function ne(t,e){return t.captions[e]?.trim()||`Photo ${e+1}`}function se({text:t}){return t==="FusionForge®"?x(b,{children:["FusionForge",a(j,{})]}):a(b,{children:t})}function le(t,e,c){if(t.kind==="tyre"){const r=t.source,l=e.shown.size??r.sizes[0]??"",s=r.variants.find(d=>d.size===l),g=s?.specs.tireType??r.variants[0]?.specs.tireType??null,f=[s?.image,r.coverImage].filter(d=>!!d);return{heading:L(r.brand,r.name),photos:f.slice(0,1),tint:void 0,stageImage:()=>a(z,{image:s?.image??r.coverImage,size:l,type:g,sizes:y,priority:!0,className:"h-full w-full"}),thumbImage:()=>null,captions:[],thumbFallbackCells:0,galleryHint:"",referenceNote:"",metaValue:l,specCaption:s?[s.specs.loadIndex,s.specs.speedRating].filter(Boolean).join(""):"",originCaption:r.brand,unitLabel:"per tyre",vehicle:a(N,{slug:r.slug,variants:r.variants,vehicle:e.vehicle,manualMode:e.manualMode,setManualMode:e.setManualMode}),vehicleMemory:e.manualMode?null:a(w,{vehicle:e.vehicle}),vehicleAnswersSpecs:!1,preOrder:null}}const o=t.source,n=H(o,e.shown.finish),i=P(o,e.part),p=A(e),M=i?.components.find(r=>r.hand!=="right")??i?.components[0],m=R(n,M?.renderKey),h=m?null:S(n,p),v=m?[...m]:h?[...h]:_(n),u=v.length>0?v:o.coverImage?[o.coverImage]:[];return{heading:t.name,photos:u,tint:n.color,stageImage:({photo:r,alt:l,label:s,onZoom:g,fit:f})=>a(F,{src:r,alt:l,fill:!0,sizes:y,className:f==="cover"?"object-cover":"object-contain",priority:!0,onImageClick:g,imageButtonClassName:"relative block h-[88%] w-[88%] cursor-zoom-in",imageButtonLabel:s,fallback:a(k,{spokes:o.spokes,mesh:o.mesh,className:"block h-[70%] w-[70%]"})}),thumbImage:({photo:r,alt:l})=>a(F,{src:r,alt:l,fill:!0,sizes:"(max-width: 720px) 20vw, (max-width: 1100px) 10vw, 120px",className:"object-contain",imageWrapperClassName:"relative h-[80%] w-[80%]",fallback:a(k,{spokes:o.spokes,mesh:o.mesh,className:"block h-[55%] w-[55%]"})}),captions:u.map(r=>n.captions?.[r]),thumbFallbackCells:4,galleryHint:V(u,n,p,e.manualMode),referenceNote:!m&&B(n,i,p,h!=null)?T:"",metaValue:n.name,specCaption:i?I(i):"",originCaption:o.process==="FusionForge®"?"FusionForge® · Hybrid":`${o.process} · 1-piece`,unitLabel:O,vehicle:a(E,{selection:e,spec:i?I(i):"",vehicle:e.vehicle,wheel:o}),vehicleMemory:e.manualMode?null:a(w,{vehicle:e.vehicle}),vehicleAnswersSpecs:!0,preOrder:a(C,{wheel:o,editing:c})}}function V(t,e,c,o){return t.length>=2||c!=null||!Object.values(e.lugRenderings??{}).some(i=>Array.isArray(i)&&i.filter(Boolean).length>=2)?"":o?"Pick a bolt pattern to see every angle":"Pick your vehicle to see every angle"}export{se as MarkedLabel,le as heroView,ne as photoLabel};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const STAGE_IMAGE_SIZES = "(max-width: 720px) 88vw, (max-width: 1100px) 44vw, 700px";
|
|
2
|
+
export declare function stepGalleryAngle(idx: number, delta: number, total: number): number;
|
|
3
|
+
export interface StageControl {
|
|
4
|
+
glyph: string;
|
|
5
|
+
label: string;
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function stageControls(angleIdx: number, total: number, setAngleIdx: (i: number) => void): StageControl[];
|
|
9
|
+
export declare function decodeStagePhoto(url: string): Promise<void>;
|
|
10
|
+
export declare function useHeldStagePhoto(photos: readonly string[], wanted: string | undefined, decode?: (url: string) => Promise<void>): string | undefined;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";import{getImageProps as S}from"next/image";import{useEffect as p,useState as u}from"react";const d="(max-width: 720px) 88vw, (max-width: 1100px) 44vw, 700px";function a(t,e,s){return s<=1?0:((t+e)%s+s)%s}function v(t,e,s){return[{glyph:"◁",label:"Previous angle",onClick:()=>s(a(t,-1,e))},{glyph:"⟳",label:"Reset to first angle",onClick:()=>s(0)},{glyph:"▷",label:"Next angle",onClick:()=>s(a(t,1,e))}]}function x(t){const{props:e}=S({src:t,alt:"",fill:!0,sizes:d}),s=new window.Image;return e.sizes&&(s.sizes=e.sizes),e.srcSet&&(s.srcset=e.srcSet),s.src=e.src,s.decode()}function w(t,e,s=x){const[g,h]=u(()=>new Set),[n,m]=u(e),o=t.join(`
|
|
2
|
+
`);p(()=>{let l=!0;const f=r=>{l&&h(c=>c.has(r)?c:new Set(c).add(r))};for(const r of o?o.split(`
|
|
3
|
+
`):[])s(r).then(()=>f(r),()=>f(r));return()=>{l=!1}},[o]);const i=e===void 0||g.has(e)||n===void 0;return p(()=>{i&&n!==e&&m(e)},[i,n,e]),i?e:n}export{d as STAGE_IMAGE_SIZES,x as decodeStagePhoto,v as stageControls,a as stepGalleryAngle,w as useHeldStagePhoto};
|