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,27 @@
|
|
|
1
|
+
import { type NewsletterSource } from "../lib/newsletter-signup.js";
|
|
2
|
+
export declare const SIGNUP_FAILED = "That didn't go through \u2014 please try again.";
|
|
3
|
+
export interface JournalIssueRow {
|
|
4
|
+
n?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
small?: string;
|
|
7
|
+
date?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface SubscribeProps {
|
|
10
|
+
headNum?: string;
|
|
11
|
+
headTitle?: string;
|
|
12
|
+
headDesc?: string;
|
|
13
|
+
kicker?: string;
|
|
14
|
+
leadTitle?: string;
|
|
15
|
+
intro?: string;
|
|
16
|
+
emailPlaceholder?: string;
|
|
17
|
+
submitText?: string;
|
|
18
|
+
subscribedText?: string;
|
|
19
|
+
finePrint?: string;
|
|
20
|
+
issuesHeading?: string;
|
|
21
|
+
issues?: JournalIssueRow[];
|
|
22
|
+
archiveText?: string;
|
|
23
|
+
archiveHref?: string;
|
|
24
|
+
source?: NewsletterSource;
|
|
25
|
+
editing?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export default function Subscribe({ headNum, headTitle, headDesc, kicker, leadTitle, intro, emailPlaceholder, submitText, subscribedText, finePrint, issuesHeading, issues, archiveText, archiveHref, source, editing, }: SubscribeProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as t,jsxs as n}from"react/jsx-runtime";import D from"./SectionBand.js";import{useState as G}from"react";import{SiteLink as U}from"efficient-web-builder/render/lib/site-runtime";import{NEWSLETTER_SOURCE as q}from"../lib/newsletter-signup.js";import A from"efficient-web-builder/render/components/EditorialSectionHead";import y from"efficient-web-builder/render/components/SectionEyebrow";import{renderChrome as B,renderGold as a,renderHeadline as v}from"efficient-web-builder/render/components/goldPhrases";import{useNewsletterSignup as F}from"./useNewsletterSignup.js";const r={issueSubline:"text-[length:var(--size-body,13px)]",issueTitle:"text-[length:var(--size-body,16px)]",intro:"text-[length:var(--size-body,19px)]",note:"text-[length:var(--size-label,12px)]",label:"text-[length:var(--size-label,13px)]",field:"text-[length:var(--size-label,14px)]"},H="That didn't go through — please try again.";function M({headNum:N,headTitle:s,headDesc:S,kicker:d,leadTitle:m,intro:c,emailPlaceholder:k,submitText:w,subscribedText:j,finePrint:p,issuesHeading:x,issues:E,archiveText:b,archiveHref:_,source:$=q.subscribeSection,editing:z=!1}){const[u,L]=G(""),{status:i,submit:T}=F({source:$,dryRun:z}),o=i==="sent",f=i==="sending",I=i==="error"||i==="invalid",g=(E??[]).filter(e=>(e?.n??"").trim()||(e?.title??"").trim()||(e?.date??"").trim()),l=g.length>0,C=o?j||"Subscribed ✓":f?"Sending…":w||"Subscribe →";function R(e){e.preventDefault(),!o&&T({email:u})}return n(D,{className:"border-b border-line py-[140px] max-[1100px]:py-20",children:[t(A,{num:N,title:s?v(s,!0):void 0,desc:S,accentTracking:"-0.025em"}),n("div",{className:l?"grid min-h-[460px] grid-cols-[1.1fr_1fr] border border-line max-[1100px]:grid-cols-1":"grid min-h-[460px] grid-cols-1 border border-line",children:[n("div",{className:l?"flex flex-col justify-center gap-6 border-r border-line px-14 py-16 max-[1100px]:border-r-0 max-[1100px]:border-b max-[1100px]:px-8 max-[1100px]:py-12":"flex flex-col justify-center gap-6 px-14 py-16 max-[1100px]:px-8 max-[1100px]:py-12",children:[d&&t(y,{text:d}),m&&t("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5vw,72px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.035em]",children:v(m,!0)}),c&&t("p",{className:`max-w-[480px] font-serif ${r.intro} italic leading-[1.5] text-fg-dim`,children:a(c,!0)}),n("form",{className:"mt-2 flex max-w-[520px]",onSubmit:R,children:[t("input",{type:"email",placeholder:k||"your@email.com",required:!0,value:u,onChange:e=>L(e.target.value),disabled:o,className:`flex-1 border border-r-0 border-line bg-bg px-5 py-5 font-mono ${r.field} uppercase tracking-[0.18em] text-fg placeholder:text-fg-dim outline-none focus:border-accent`}),t("button",{type:"submit",disabled:o||f,className:`border border-btn bg-btn px-8 py-5 font-mono ${r.label} uppercase tracking-[0.3em] text-btn-ink transition-colors hover:bg-fg hover:border-fg disabled:cursor-default disabled:opacity-90`,children:B(C)})]}),I&&t("p",{role:"alert",className:`max-w-[480px] font-mono ${r.note} uppercase leading-[1.7] tracking-[0.18em] text-alert`,children:H}),p&&t("p",{className:`max-w-[480px] font-mono ${r.note} uppercase leading-[1.7] tracking-[0.18em] text-fg-dim`,children:a(p)})]}),l&&n("div",{id:"sub-recent-issues",className:"grid grid-rows-[auto_1fr_auto] gap-6 bg-[var(--journal-panel-bg)] px-12 py-12 scroll-mt-[160px] max-[1100px]:px-8 max-[1100px]:py-10",children:[x&&t(y,{text:x,size:12}),t("div",{className:"flex flex-col",children:g.map((e,h)=>n("div",{className:["grid grid-cols-[60px_1fr_auto] items-start gap-5 border-b border-line py-5",h===0?"border-t border-line":""].join(" "),children:[t("span",{className:`font-mono ${r.label} tracking-[0.22em] text-accent`,children:e.n?a(e.n):""}),n("span",{className:`font-display ${r.issueTitle} font-medium leading-[1.3] tracking-[-0.01em]`,children:[e.title?a(e.title):"",e.small?.trim()&&t("small",{className:`mt-1 block font-serif ${r.issueSubline} font-normal italic text-fg-dim`,children:a(e.small,!0)})]}),t("span",{className:`whitespace-nowrap pt-1 text-right font-mono ${r.note} uppercase tracking-[0.22em] text-fg-dim`,children:e.date?a(e.date):""})]},h))}),b&&t(U,{href:_||"/journal",className:`flex items-center justify-end gap-3 font-mono ${r.note} uppercase tracking-[0.22em] text-accent hover:text-fg`,children:a(b)})]})]})]})}export{H as SIGNUP_FAILED,M as default};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Form } from "../lib/api/index.js";
|
|
2
|
+
import { type SubscribePopupContent } from "efficient-web-builder/format/lib/content/subscribe";
|
|
3
|
+
import { type NewsletterSource } from "../lib/newsletter-signup.js";
|
|
4
|
+
import { type PopupMode } from "./SubscribePopupContext.js";
|
|
5
|
+
export declare function SubscribePopupView({ content, open, onClose, onSent, inline, prefillEmail, source, mode, form, }: {
|
|
6
|
+
content: SubscribePopupContent;
|
|
7
|
+
open?: boolean;
|
|
8
|
+
onClose?: () => void;
|
|
9
|
+
onSent?: () => void;
|
|
10
|
+
inline?: boolean;
|
|
11
|
+
prefillEmail?: string;
|
|
12
|
+
source?: NewsletterSource;
|
|
13
|
+
mode?: PopupMode;
|
|
14
|
+
form?: Form | null;
|
|
15
|
+
}): import("react").JSX.Element | null;
|
|
16
|
+
export default function SubscribePopup({ content, form, }: {
|
|
17
|
+
content?: SubscribePopupContent;
|
|
18
|
+
form?: Form | null;
|
|
19
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";import{jsx as r,jsxs as t,Fragment as te}from"react/jsx-runtime";import{useCallback as oe,useEffect as u,useRef as R,useState as d}from"react";import{ApiError as ie}from"../lib/api/index.js";import{sectionCornerStyle as ne}from"efficient-web-builder/format/lib/content/section-corners";import{nestedAccentValue as se,sectionThemeWrap as le}from"efficient-web-builder/format/lib/content/section-surface";import{SUBSCRIBE_POPUP_DEFAULTS as pe}from"efficient-web-builder/format/lib/content/subscribe";import{NEWSLETTER_SOURCE as me}from"../lib/newsletter-signup.js";import{popupKindStyle as ce}from"../lib/popup/text-kind-style.js";import{FormBody as de}from"./FormBlock.js";import{useBoundForm as fe}from"./formSubmission.js";import D from"efficient-web-builder/render/components/SectionEyebrow";import O,{FieldCaption as U}from"./WebFormField.js";import{renderGold as i,renderHeadline as k}from"efficient-web-builder/render/components/goldPhrases";import{useNewsletterSignup as xe}from"./useNewsletterSignup.js";import{useSubscribePopup as ue}from"./SubscribePopupContext.js";import{useModalDismiss as be}from"./useModalDismiss.js";const H={eyebrow:"[&>span]:text-[length:var(--pp-eyebrow-size,var(--size-label,12px))]",formEyebrow:"[&>span]:text-[length:var(--pp-formeyebrow-size,var(--size-label,13px))]"},ge=50,b="font-[family-name:var(--pp-fieldlabel-font,var(--font-mono))] text-[length:var(--pp-fieldlabel-size,12px)]";function he(e){const n=le({sectionAccent:se(e.sectionAccent)}),l=ne(e.sectionCorners,e.sectionCornerSides);return{className:n?.className??"",style:{...n?.style??{},...l??{},...ce(e.textStyles)}}}function ve({content:e,open:n=!0,onClose:l,onSent:f,inline:o=!1,prefillEmail:c="",source:g=me.popup,mode:h="chosen",form:V}){const v=h==="chosen"?e.formSlug:"",y=fe(v||void 0,o?void 0:V??null),W=!!v&&!!y,[w,Y]=d(""),[S,z]=d(""),[E,M]=d(()=>new Set(e.interests.slice(0,1))),[_,G]=d(e.frequencies[0]??""),{status:m,error:C,submit:K,reset:j}=xe({source:g,dryRun:o}),F=m==="sending",L=m==="invalid"?e.emailInvalidText:m==="error"?C instanceof ie?C.message:e.submitErrorText:null,[X,Z]=d(""),P=R(null),T=R(null);u(()=>{n&&j()},[n,j]),u(()=>{m==="sent"&&!o&&f?.()},[m]);const J=oe(()=>l?.(),[l]);if(be({active:!o&&n,onDismiss:J}),u(()=>{if(o||!n)return;const a=window.setTimeout(()=>T.current?.focus(),ge);return()=>window.clearTimeout(a)},[o,n]),u(()=>{!n||!c||z(c)},[n,c]),!o&&!n)return null;function Q(a){M(s=>{const p=new Set(s);return p.has(a)?p.delete(a):p.add(a),p})}function ee(a){a.target===P.current&&l?.()}function re(a){a.preventDefault();const s=S.trim().toLowerCase();Z(s),K({email:s,firstName:w,interests:[...E],frequency:_})}const ae=e.successBody.replace(/\{email\}/g,X).replace(/\{issue\}/g,e.issueNumber),B=he(e),N=e.formSide==="left",q=t("div",{className:"flex flex-wrap items-center justify-between gap-5 uppercase tracking-[0.18em] text-fg-dim",children:[t("span",{className:"flex items-center gap-2 font-[family-name:var(--pp-fineprint-font,var(--font-mono))] text-[length:var(--pp-fineprint-size,12px)]",children:[r("span",{className:"block h-1.5 w-1.5 rounded-full bg-accent"}),i(e.finePrint)]}),!o&&r("button",{type:"button",onClick:l,className:"font-[family-name:var(--pp-dismiss-font,var(--font-mono))] text-[length:var(--pp-dismiss-size,12px)] uppercase tracking-[0.18em] text-fg-dim underline underline-offset-[3px] transition-colors hover:text-fg",children:i(e.dismissText)})]}),$=t(te,{children:[r("span",{className:`contents [&>span]:font-[family-name:var(--pp-formeyebrow-font,var(--font-mono))] ${H.formEyebrow}`,children:r(D,{text:e.formLabel,scaled:!1,className:"mb-5"})}),r("h2",{id:"subscribe-modal-title",className:"font-[family-name:var(--pp-formheading-font,var(--font-display))] text-[length:var(--pp-formheading-size,34px)] font-medium uppercase leading-none tracking-[-0.025em] [&_em]:font-serif [&_em]:normal-case [&_em]:tracking-[-0.02em]",children:k(e.formHeading)}),r("p",{className:"mt-4 font-[family-name:var(--pp-formintro-font,var(--font-serif))] text-[length:var(--pp-formintro-size,17px)] italic leading-[1.55] text-fg-dim",children:i(e.formIntro,!0)})]}),A="px-12 py-12 max-[880px]:px-8 max-[880px]:py-8";let x;W&&y?x=t("div",{className:`relative flex min-h-[560px] flex-col max-[880px]:min-h-0 ${A}`,children:[$,r("div",{className:"mt-8",children:r(de,{form:y,formSlug:v,editing:o,onSent:f})}),r("div",{className:"mt-auto pt-8",children:q})]}):m!=="sent"?x=t("form",{onSubmit:re,noValidate:!0,className:`relative flex min-h-[560px] flex-col max-[880px]:min-h-0 ${A}`,children:[$,t("div",{className:"mt-8 flex flex-col gap-5",children:[r(O,{label:i(e.firstNameLabel),required:!0,labelFace:b,children:r("input",{type:"text",value:w,onChange:a=>Y(a.target.value),placeholder:e.firstNamePlaceholder,required:!0,className:"border border-line bg-surface px-4 py-4 font-display text-[15px] tracking-[-0.005em] text-fg outline-none transition-colors placeholder:tracking-[0.04em] placeholder:text-fg-dim focus:border-accent"})}),r(O,{label:i(e.emailLabel),required:!0,labelFace:b,children:r("input",{type:"email",value:S,onChange:a=>z(a.target.value),placeholder:e.emailPlaceholder,required:!0,className:"border border-line bg-surface px-4 py-4 font-display text-[15px] tracking-[-0.005em] text-fg outline-none transition-colors placeholder:tracking-[0.04em] placeholder:text-fg-dim focus:border-accent"})}),t("div",{className:"mt-2 flex flex-col gap-3",children:[r(U,{labelFace:b,children:i(e.interestsLabel)}),r("div",{className:"flex flex-wrap gap-2",children:e.interests.map((a,s)=>{const p=E.has(a);return r("button",{type:"button",onClick:()=>Q(a),"aria-pressed":p,className:["select-none border px-4 py-3 font-[family-name:var(--pp-option-font,var(--font-mono))] text-[length:var(--pp-option-size,12px)] uppercase tracking-[0.22em] transition-all",p?"border-accent bg-accent text-bg":"border-line text-fg-dim hover:text-fg"].join(" "),children:a},`${a}-${s}`)})})]}),e.frequencies.length>0&&t("div",{className:"mt-2 flex flex-col gap-3",children:[r(U,{labelFace:b,children:i(e.frequencyLabel)}),r("div",{className:"flex border border-line",children:e.frequencies.map((a,s)=>{const p=_===a;return r("button",{type:"button",onClick:()=>G(a),"aria-pressed":p,className:["flex-1 px-3 py-4 font-[family-name:var(--pp-option-font,var(--font-mono))] text-[length:var(--pp-option-size,12px)] uppercase tracking-[0.24em] transition-all",s<e.frequencies.length-1?"border-r border-line":"",p?"bg-accent text-bg":"text-fg-dim hover:text-fg"].join(" "),children:a},`${a}-${s}`)})})]})]}),t("div",{className:"mt-auto flex flex-col gap-4 pt-8",children:[L&&r("p",{role:"alert",className:"border border-red-300 bg-red-50 px-4 py-3 font-mono text-[12px] uppercase tracking-[0.18em] text-red-700",children:L}),t("button",{type:"submit",disabled:F,className:"group flex items-center justify-between gap-5 border border-btn bg-btn px-6 py-5 font-mono text-[14px] uppercase tracking-[0.3em] text-btn-ink transition-colors hover:border-fg hover:bg-fg disabled:cursor-wait disabled:opacity-60 disabled:hover:border-btn disabled:hover:bg-btn",children:[r("span",{children:e.submitText}),r("span",{className:"transition-transform group-hover:translate-x-[4px]",children:F?"…":"→"})]}),q]})]}):x=t("div",{className:"flex min-h-[560px] flex-col justify-center gap-6 px-12 py-12 max-[880px]:min-h-0 max-[880px]:px-8 max-[880px]:py-8",style:{animation:"subscribe-fade 0.25s ease"},children:[r("div",{className:"flex h-16 w-16 items-center justify-center border border-accent font-display text-[32px] text-accent",children:"✓"}),r("h3",{className:"font-[family-name:var(--pp-doneheading-font,var(--font-display))] text-[length:var(--pp-doneheading-size,38px)] font-medium uppercase leading-none tracking-[-0.025em] [&_em]:font-serif [&_em]:normal-case [&_em]:tracking-[-0.02em]",children:k(e.successHeading)}),r("p",{className:"max-w-[440px] font-[family-name:var(--pp-donebody-font,var(--font-serif))] text-[length:var(--pp-donebody-size,18px)] italic leading-[1.55] text-fg-dim",children:i(ae,!0)}),!o&&r("button",{type:"button",onClick:l,className:"self-start border border-line px-6 py-5 font-mono text-[14px] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:i(e.keepBrowsingText)})]});const I=t("div",{className:`relative w-[min(1100px,100%)] overflow-hidden border border-line bg-bg [border-radius:var(--sf-section-radius,0px)] max-[880px]:border-x-0 max-[880px]:border-b-0 ${B.className}`.trim(),style:{...B.style,background:"var(--bg)",color:"var(--fg)",boxShadow:o?"0 30px 80px -30px rgba(0,0,0,0.5)":"0 60px 120px -20px rgba(0,0,0,0.7)",animation:o?void 0:"subscribe-rise 0.35s cubic-bezier(.2,.7,.2,1)"},children:[!o&&r("button",{ref:T,type:"button",onClick:l,"aria-label":"Close popup",className:"absolute right-[18px] top-[18px] z-[5] flex h-[38px] w-[38px] items-center justify-center border border-line font-mono text-[14px] text-fg-dim transition-colors hover:border-accent hover:text-fg max-[880px]:right-3 max-[880px]:top-3 max-[880px]:h-11 max-[880px]:w-11",style:{background:"color-mix(in oklab, var(--bg) 85%, transparent)"},children:"✕"}),t("div",{className:["grid max-h-[calc(100vh-48px)] overflow-hidden max-[880px]:max-h-[88dvh] max-[880px]:grid-cols-1 max-[880px]:overflow-auto",N?"grid-cols-[1fr_1.05fr]":"grid-cols-[1.05fr_1fr]"].join(" "),children:[t("aside",{className:["relative flex min-h-[560px] flex-col justify-between overflow-hidden border-line px-[var(--sf-site-gutter,40px)] py-12 max-[880px]:min-h-[380px] max-[880px]:border-r-0 max-[880px]:border-l-0 max-[880px]:border-b max-[880px]:px-8 max-[880px]:py-8",N?"order-2 border-l max-[880px]:order-none":"border-r",e.valuePanelOnPhone?"":"max-[880px]:hidden"].join(" "),style:{background:"var(--subscribe-panel-bg)"},children:[r("div",{className:"pointer-events-none absolute inset-0",style:{backgroundImage:"repeating-linear-gradient(0deg, transparent 0 28px, color-mix(in oklab, var(--accent) 4%, transparent) 28px 29px), repeating-linear-gradient(90deg, transparent 0 28px, color-mix(in oklab, var(--accent) 3%, transparent) 28px 29px)"}}),t("div",{"aria-hidden":!0,className:"pointer-events-none absolute -right-[120px] -bottom-[120px] z-[1] h-[520px] w-[520px] rounded-full border opacity-50 max-[880px]:-right-[100px] max-[880px]:-bottom-[100px] max-[880px]:h-[340px] max-[880px]:w-[340px]",style:{borderColor:"color-mix(in oklab, var(--accent) 22%, transparent)"},children:[r("div",{className:"absolute inset-[60px] rounded-full border",style:{borderColor:"color-mix(in oklab, var(--accent) 18%, transparent)"}}),r("div",{className:"absolute inset-[140px] rounded-full border",style:{borderColor:"color-mix(in oklab, var(--accent) 14%, transparent)"}})]}),t("div",{className:["relative z-[2] flex items-start justify-between font-[family-name:var(--pp-meta-font,var(--font-mono))] text-[length:var(--pp-meta-size,12px)] uppercase tracking-[0.3em] text-fg-dim",N&&!o?"pr-[52px]":""].join(" "),children:[r("span",{children:i(e.metaLabel)}),(e.issueLabel||e.issueNumber)&&t("span",{children:[i(e.issueLabel)," ",r("strong",{className:"font-normal text-accent",children:e.issueNumber})]})]}),t("div",{className:"relative z-[2] flex flex-col gap-5 py-8",children:[r("span",{className:`contents [&>span]:font-[family-name:var(--pp-eyebrow-font,var(--font-mono))] ${H.eyebrow}`,children:r(D,{text:e.kicker,size:12,scaled:!1})}),r("h2",{className:"font-[family-name:var(--pp-heading-font,var(--font-display))] text-[length:var(--pp-heading-size,clamp(40px,4.8vw,68px))] font-medium uppercase leading-[0.92] tracking-[-0.04em] text-fg [&_em]:font-serif [&_em]:normal-case [&_em]:tracking-[-0.03em]",children:k(e.heading)}),r("p",{className:"max-w-[420px] font-[family-name:var(--pp-body-font,var(--font-serif))] text-[length:var(--pp-body-size,18px)] italic leading-[1.5]",style:{color:"color-mix(in oklab, var(--fg) 85%, transparent)"},children:i(e.deck,!0)})]}),e.stats.length>0&&r("div",{className:"relative z-[2] grid grid-cols-2 gap-5 border-t pt-6",style:{borderColor:"color-mix(in oklab, var(--accent) 18%, var(--site-line))"},children:e.stats.map((a,s)=>t("div",{children:[r("div",{className:"mb-2 font-[family-name:var(--pp-statname-font,var(--font-mono))] text-[length:var(--pp-statname-size,11px)] uppercase tracking-[0.24em] text-fg-dim",children:i(a.label)}),r("div",{className:"font-[family-name:var(--pp-statvalue-font,var(--font-display))] text-[length:var(--pp-statvalue-size,22px)] font-medium tracking-[-0.015em] text-fg",children:i(a.value)})]},`${a.label}-${s}`))})]}),x]})]});return o?r("div",{className:"flex w-full justify-center p-6","data-subscribe-preview":!0,children:I}):t("div",{ref:P,onClick:ee,role:"dialog","aria-modal":"true","aria-labelledby":"subscribe-modal-title",className:"fixed inset-0 z-[90] flex items-center justify-center p-6 backdrop-blur-[8px] max-[880px]:items-end max-[880px]:p-0",style:{background:"color-mix(in oklab, var(--bg) 78%, transparent)",animation:"subscribe-fade 0.25s ease"},children:[I,r("style",{children:`
|
|
2
|
+
@keyframes subscribe-fade { from { opacity: 0 } to { opacity: 1 } }
|
|
3
|
+
@keyframes subscribe-rise {
|
|
4
|
+
from { transform: translateY(20px); opacity: 0 }
|
|
5
|
+
to { transform: translateY(0); opacity: 1 }
|
|
6
|
+
}
|
|
7
|
+
`})]})}function ye({content:e,form:n=null}){const{isOpen:l,mode:f,close:o,markSent:c,prefillEmail:g,signupSource:h}=ue();return r(ve,{content:e??pe,open:l,onClose:o,onSent:c,prefillEmail:g,source:h,mode:f,form:n})}export{ve as SubscribePopupView,ye as default};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { PopupHideAfter, PopupShowOn, PopupTrigger } from "efficient-web-builder/format/lib/content/subscribe";
|
|
2
|
+
import { type NewsletterSource } from "../lib/newsletter-signup.js";
|
|
3
|
+
export interface SubscribeHandover {
|
|
4
|
+
email?: string;
|
|
5
|
+
source?: NewsletterSource;
|
|
6
|
+
}
|
|
7
|
+
export type PopupMode = "newsletter" | "chosen";
|
|
8
|
+
interface PopupCtx {
|
|
9
|
+
isOpen: boolean;
|
|
10
|
+
mode: PopupMode;
|
|
11
|
+
open: (handover?: SubscribeHandover) => void;
|
|
12
|
+
close: () => void;
|
|
13
|
+
markSent: () => void;
|
|
14
|
+
prefillEmail: string;
|
|
15
|
+
signupSource: NewsletterSource;
|
|
16
|
+
}
|
|
17
|
+
export interface PopupBehaviour {
|
|
18
|
+
autoOpen?: boolean;
|
|
19
|
+
autoOpenDelaySec?: number;
|
|
20
|
+
trigger?: PopupTrigger;
|
|
21
|
+
scrollPercent?: number;
|
|
22
|
+
showOn?: PopupShowOn;
|
|
23
|
+
showOnPages?: readonly string[];
|
|
24
|
+
hideAfter?: PopupHideAfter;
|
|
25
|
+
hideDays?: number;
|
|
26
|
+
}
|
|
27
|
+
interface ProviderProps extends PopupBehaviour {
|
|
28
|
+
children: React.ReactNode;
|
|
29
|
+
disableAutoTrigger?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare function SubscribePopupProvider({ children, disableAutoTrigger, autoOpen, autoOpenDelaySec, trigger, scrollPercent, showOn, showOnPages, hideAfter, hideDays, }: ProviderProps): import("react").JSX.Element;
|
|
32
|
+
export declare function useSubscribePopup(): PopupCtx;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as A}from"react/jsx-runtime";import{usePathname as G}from"next/navigation";import{createContext as j,useCallback as n,useContext as D,useEffect as I,useMemo as N,useRef as U,useState as u}from"react";import{isEditorRoute as F}from"../lib/editor-route.js";import{NEWSLETTER_SOURCE as W}from"../lib/newsletter-signup.js";import{effectiveTrigger as q,markPopupClosed as O,mayAutoOpen as z,popupAllowedOnPath as B,scrolledPercent as J}from"../lib/popup/popup-rules.js";import{safeLocalStorage as K,safeSessionStorage as Q}from"efficient-web-builder/format/lib/safe-storage";const y=j(null),a={session:Q,local:K};function V(){try{return window.matchMedia("(hover: hover) and (pointer: fine)").matches}catch{return!1}}const X=15,Z=[];function ie({children:t,disableAutoTrigger:l,autoOpen:m=!1,autoOpenDelaySec:p=X,trigger:d="delay",scrollPercent:f=50,showOn:v="all",showOnPages:w=Z,hideAfter:E="visit",hideDays:h=7}){const[S,r]=u(!1),[P,x]=u("chosen"),[s,b]=u({}),i=G()??"/",L=F(i),Y=B(i,v,w),T=U(!1),C=n(_=>{b(_??{}),x("newsletter"),r(!0)},[]),o=n(()=>{T.current=!0,b({}),x("chosen"),r(!0)},[]),R=n(()=>O(a,Date.now()),[]),M=n(()=>{r(!1),O(a,Date.now())},[]);I(()=>{if(l||T.current||!z({autoOpen:m,inEditor:L,path:i,showOn:v,showOnPages:w,hideAfter:E,hideDays:h},a,Date.now()))return;const H=q(d,V());if(H==="scroll"){const e=()=>{J(window.scrollY,window.innerHeight,document.documentElement.scrollHeight)>=f&&(window.removeEventListener("scroll",e),o())};return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)}if(H==="exit"){const e=c=>{c.relatedTarget===null&&c.clientY<=0&&(document.removeEventListener("mouseout",e),o())};return document.addEventListener("mouseout",e),()=>document.removeEventListener("mouseout",e)}const k=window.setTimeout(o,Math.max(0,p)*1e3);return()=>window.clearTimeout(k)},[l,m,L,Y,d,p,f,E,h,o]);const g=N(()=>({isOpen:S,mode:P,open:C,close:M,markSent:R,prefillEmail:s.email??"",signupSource:s.source??W.popup}),[S,P,C,M,R,s]);return A(y.Provider,{value:g,children:t})}function ce(){const t=D(y);if(!t)throw new Error("useSubscribePopup() must be called inside <SubscribePopupProvider>. Mount the provider in app/layout.tsx.");return t}export{ie as SubscribePopupProvider,ce as useSubscribePopup};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function ThemeToggle(): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as c}from"react/jsx-runtime";import{useEffect as d,useRef as f,useState as l}from"react";import{applyTheme as h,currentTheme as b,THEME_ATTR as p,writeVisitorTheme as g}from"efficient-web-builder/format/lib/theme-dom";function T(){const[n,r]=l("dark"),[u,i]=l(!1),o=f(null),s=()=>o.current?.ownerDocument??document;d(()=>{const t=s().documentElement,e=()=>r(b(t));e(),i(!0);const a=new MutationObserver(e);return a.observe(t,{attributes:!0,attributeFilter:[p]}),()=>a.disconnect()},[]);function m(){const t=s(),e=n==="dark"?"light":"dark";r(e),h(t.documentElement,e),g(t,e)}return c("button",{ref:o,type:"button",onClick:m,"aria-label":`Switch to ${n==="dark"?"light":"dark"} theme`,"aria-pressed":n==="light",className:"relative inline-flex h-5 w-9 items-center rounded-full border border-line bg-surface-2 p-0.5",children:c("span",{className:"block h-3.5 w-3.5 rounded-full bg-accent transition-transform duration-200 ease-out",style:{transform:u&&n==="light"?"translateX(16px)":"translateX(0)"}})})}export{T as default};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { KeyboardEvent as ReactKeyboardEvent, ReactNode, type RefObject } from "react";
|
|
2
|
+
export interface SelectItem {
|
|
3
|
+
value: string;
|
|
4
|
+
label: string;
|
|
5
|
+
meta?: string;
|
|
6
|
+
lead?: ReactNode;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function useThemedSelect({ items, value, onPick, open: openProp, onOpen, onClose, }: {
|
|
10
|
+
items: readonly SelectItem[];
|
|
11
|
+
value: string;
|
|
12
|
+
onPick: (value: string) => void;
|
|
13
|
+
open?: boolean;
|
|
14
|
+
onOpen?: () => void;
|
|
15
|
+
onClose?: () => void;
|
|
16
|
+
}): {
|
|
17
|
+
open: boolean;
|
|
18
|
+
toggle: () => void;
|
|
19
|
+
close: () => void;
|
|
20
|
+
focusIdx: number;
|
|
21
|
+
setFocusIdx: import("react").Dispatch<import("react").SetStateAction<number>>;
|
|
22
|
+
pick: (v: string) => void;
|
|
23
|
+
wrapRef: RefObject<HTMLDivElement | null>;
|
|
24
|
+
triggerRef: RefObject<HTMLElement | null>;
|
|
25
|
+
listRef: RefObject<HTMLUListElement | null>;
|
|
26
|
+
listId: string;
|
|
27
|
+
onTriggerKeyDown: (e: ReactKeyboardEvent) => void;
|
|
28
|
+
activeId: string | undefined;
|
|
29
|
+
};
|
|
30
|
+
export type SelectTone = "select" | "cell" | "hairline" | "region";
|
|
31
|
+
export declare function ThemedSelectList({ id, tone, items, value, focusIdx, onFocus, onPick, listRef, ariaLabel, }: {
|
|
32
|
+
id: string;
|
|
33
|
+
tone: SelectTone;
|
|
34
|
+
items: readonly SelectItem[];
|
|
35
|
+
value: string;
|
|
36
|
+
focusIdx: number;
|
|
37
|
+
onFocus: (i: number) => void;
|
|
38
|
+
onPick: (value: string) => void;
|
|
39
|
+
listRef?: RefObject<HTMLUListElement | null>;
|
|
40
|
+
ariaLabel?: string;
|
|
41
|
+
}): import("react").JSX.Element;
|
|
42
|
+
interface ThemedSelectProps {
|
|
43
|
+
value?: string;
|
|
44
|
+
onChange?: (e: {
|
|
45
|
+
target: {
|
|
46
|
+
value: string;
|
|
47
|
+
};
|
|
48
|
+
}) => void;
|
|
49
|
+
disabled?: boolean;
|
|
50
|
+
required?: boolean;
|
|
51
|
+
children: ReactNode;
|
|
52
|
+
className?: string;
|
|
53
|
+
style?: React.CSSProperties;
|
|
54
|
+
name?: string;
|
|
55
|
+
id?: string;
|
|
56
|
+
"aria-label"?: string;
|
|
57
|
+
}
|
|
58
|
+
export default function ThemedSelect({ value, onChange, disabled, children, className, style, name, id, "aria-label": ariaLabel, }: ThemedSelectProps): import("react").JSX.Element;
|
|
59
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as w,Fragment as H,jsxs as M}from"react/jsx-runtime";import{Children as K,isValidElement as F,useEffect as _,useId as O,useLayoutEffect as $,useRef as v,useState as D}from"react";import{firstFocus as j,selectKey as B,TYPEAHEAD_RESET_MS as C}from"../lib/select-keys.js";import{placeMenu as A}from"efficient-shell/ui";const z={body:"text-[length:var(--size-body,14px)]",label:"text-[length:var(--size-label,13px)]"};function P({items:n,value:p,onPick:r,open:a,onOpen:m,onClose:o}){const[b,d]=D(!1),f=a!==void 0,t=f?a:b,[l,e]=D(0),u=v({text:"",timer:0}),x=v(null),s=v(null),I=v(null),y=O(),E=v(null),k=n.findIndex(i=>i.value===p),h=i=>{i!==t&&(f||d(i),i?m?.():o?.())},R=i=>{const g=n[i];!g||g.disabled||(r(g.value),h(!1),s.current?.focus())},S=i=>{const g={open:t,focus:t?l:j(n,k),typed:u.current.text},c=B(g,i,n);return!c.handled&&c.state.open===t?!1:(c.state.typed!==g.typed&&(u.current.text=c.state.typed,window.clearTimeout(u.current.timer),u.current.timer=window.setTimeout(()=>{u.current.text=""},C)),e(c.state.focus),c.commit!==void 0?R(c.commit):h(c.state.open),c.refocus&&s.current?.focus(),c.handled)},T=v(S);T.current=S;const L=v(()=>h(!1));L.current=()=>h(!1);const N=i=>{t||(E.current=i.nativeEvent,T.current(i.key)&&i.preventDefault())};return _(()=>{if(!t)return;const i=c=>{x.current?.contains(c.target)||L.current()},g=c=>{c!==E.current&&T.current(c.key)&&c.preventDefault()};return document.addEventListener("mousedown",i),document.addEventListener("keydown",g),()=>{document.removeEventListener("mousedown",i),document.removeEventListener("keydown",g)}},[t]),_(()=>{t&&(u.current.text||e(j(n,k)))},[t]),$(()=>{if(!t||!I.current)return;I.current.children.item(l)?.scrollIntoView({block:"nearest"})},[l,t]),{open:t,toggle:()=>h(!t),close:()=>h(!1),focusIdx:l,setFocusIdx:e,pick:i=>R(n.findIndex(g=>g.value===i)),wrapRef:x,triggerRef:s,listRef:I,listId:y,onTriggerKeyDown:N,activeId:t?`${y}-${l}`:void 0}}const V={select:{list:"absolute left-0 top-full z-50 mt-1 max-h-[280px] w-max min-w-full overflow-y-auto border-2 border-accent bg-bg shadow-xl",item:(n,p,r)=>["px-3 py-3 font-mono text-[13px] font-semibold uppercase tracking-[0.1em] transition-colors whitespace-nowrap",r?"cursor-not-allowed opacity-40":"cursor-pointer",n&&!r?"bg-accent text-bg":"bg-bg text-fg"].join(" ")},cell:{list:"absolute left-0 top-full z-50 mt-1 max-h-[320px] w-max min-w-full overflow-y-auto border-2 border-accent bg-bg shadow-xl",item:n=>[`cursor-pointer whitespace-nowrap px-6 py-3 font-mono ${z.label} font-semibold uppercase tracking-[0.1em] transition-colors`,n?"bg-accent text-bg":"bg-bg text-fg"].join(" "),pickerMarker:!0},hairline:{list:"absolute left-0 top-full z-50 max-h-[320px] w-full overflow-y-auto border border-line bg-bg shadow-[0_6px_20px_rgba(0,0,0,0.10)]",item:(n,p)=>[`flex cursor-pointer items-center justify-between gap-4 border-b border-line px-4 py-3 text-left ${z.body} transition-colors last:border-b-0`,p?"border-fg font-medium text-fg":n?"border-fg text-fg":"text-fg-dim"].join(" "),pickerMarker:!0},region:{list:"absolute right-0 top-full z-[200] mt-2 flex min-w-[240px] flex-col border border-line bg-surface text-fg",item:(n,p,r,a)=>["flex w-full cursor-pointer items-center gap-3 px-4 py-3 text-left transition-colors","font-mono text-[13px] uppercase tracking-[0.18em]",n?"bg-surface-2 text-fg":"",a?"":"border-b border-line",p?"text-accent":""].join(" "),itemStyle:n=>n?void 0:{color:"color-mix(in oklab, currentColor 80%, transparent)"}}};function Y(n,p){$(()=>{const r=n.current,a=r?.ownerDocument.defaultView;if(!r||!a)return;const m=()=>{const o=r.style;o.top=o.bottom=o.marginTop=o.marginBottom=o.maxHeight=o.overflowY=o.translate="";const b=r.offsetParent??r.parentElement;if(!b)return;const d=b.getBoundingClientRect(),f=r.getBoundingClientRect(),t=Math.abs(f.right-d.right)<Math.abs(f.left-d.left)?"end":"start",l=A({trigger:{left:d.left,right:d.right,top:d.top,bottom:d.bottom},menu:{width:f.width,height:f.height},bounds:{left:0,top:0,right:a.innerWidth,bottom:a.innerHeight},align:t,side:"bottom"});if(l.side==="top"){o.top="auto",o.bottom="100%",o.marginTop="0px";const u=l.top+Math.min(f.height,l.maxHeight);o.marginBottom=`${Math.max(0,d.top-u)}px`}l.maxHeight<f.height&&(o.maxHeight=`${l.maxHeight}px`,o.overflowY="auto");const e=l.left-f.left;e&&(o.translate=`${e}px`)};return m(),a.addEventListener("resize",m),a.addEventListener("scroll",m,!0),()=>{a.removeEventListener("resize",m),a.removeEventListener("scroll",m,!0)}},[n,p])}function X({id:n,tone:p,items:r,value:a,focusIdx:m,onFocus:o,onPick:b,listRef:d,ariaLabel:f}){const t=V[p],l=v(null);return Y(l,r.length),w("ul",{ref:e=>{l.current=e,d&&(d.current=e)},id:n,role:"listbox","aria-label":f,...t.pickerMarker?{"data-picker-menu":""}:{},className:t.list,children:r.map((e,u)=>{const x=e.value===a;return w("li",{id:`${n}-${u}`,role:"option","aria-selected":x,"aria-disabled":e.disabled||void 0,onMouseEnter:()=>!e.disabled&&o(u),onMouseDown:s=>{s.preventDefault(),e.disabled||b(e.value)},className:t.item(u===m,x&&e.value!=="",!!e.disabled,u===r.length-1),style:t.itemStyle?.(x),children:e.meta===void 0?e.label:M(H,{children:[e.lead,w("span",{className:"flex-1 whitespace-nowrap",children:e.label}),w("span",{className:"ml-auto text-[12px] opacity-50",children:e.meta})]})},`${e.value}_${u}`)})})}function W({value:n,onChange:p,disabled:r,children:a,className:m,style:o,name:b,id:d,"aria-label":f}){const t=K.toArray(a).flatMap(s=>{if(!F(s))return[];if(s.type!=="option")return[];const y=s.props,E=y.value!==void 0?String(y.value):"",k=y.children,h=typeof k=="string"||typeof k=="number"?String(k):E;return[{value:E,label:h,disabled:!!y.disabled}]}),l=n??"",e=P({items:t,value:l,onPick:s=>p?.({target:{value:s}})}),x=t.find(s=>s.value===l)?.label??t[0]?.label??"";return M("div",{ref:e.wrapRef,className:"relative",children:[b&&w("input",{type:"hidden",name:b,value:l}),w("button",{ref:s=>{e.triggerRef.current=s},type:"button",disabled:r,"aria-haspopup":"listbox","aria-expanded":e.open,"aria-controls":e.open?e.listId:void 0,"aria-activedescendant":e.activeId,"aria-label":f,id:d,onClick:()=>!r&&e.toggle(),onKeyDown:s=>!r&&e.onTriggerKeyDown(s),className:`block w-full ${m??""}`,style:o,children:w("span",{className:"block w-full truncate text-left",children:x})}),e.open&&w(X,{id:e.listId,tone:"select",items:t,value:l,focusIdx:e.focusIdx,onFocus:e.setFocusIdx,onPick:e.pick,listRef:e.listRef})]})}export{X as ThemedSelectList,W as default,P as useThemedSelect};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CompatibleTyre, TyreVariant } from "../lib/api/index.js";
|
|
2
|
+
import { type FieldUsageAnswer } from "../lib/content/field-usage.js";
|
|
3
|
+
import { type CardOutline } from "efficient-web-builder/format/lib/sections/product-card-style";
|
|
4
|
+
export interface TyreCardProps {
|
|
5
|
+
outline?: CardOutline;
|
|
6
|
+
showIndex?: boolean;
|
|
7
|
+
size: string;
|
|
8
|
+
specs: CompatibleTyre["specs"] | TyreVariant["specs"];
|
|
9
|
+
prices: CompatibleTyre["prices"] | TyreVariant["prices"];
|
|
10
|
+
image?: string | null;
|
|
11
|
+
inStock: boolean;
|
|
12
|
+
href?: string | null;
|
|
13
|
+
linkLabel?: string;
|
|
14
|
+
imageSizes?: string;
|
|
15
|
+
fieldUsage?: readonly FieldUsageAnswer[];
|
|
16
|
+
currency: string;
|
|
17
|
+
formatPrice: (amount: number, code?: string) => string;
|
|
18
|
+
}
|
|
19
|
+
export default function TyreCard({ outline, showIndex, size, specs, prices, image, inStock, href, linkLabel, imageSizes, fieldUsage, currency, formatPrice, }: TyreCardProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e,jsxs as r,Fragment as C}from"react/jsx-runtime";import A from"next/link";import w from"./TyreImage.js";import{priceIn as $,UNPRICED_LABEL as T}from"../lib/wheels/price-display.js";import{keepForSpec as j}from"../lib/content/field-usage.js";import{stockWord as D}from"../lib/content/stock-words.js";import{CARD_INDEX_BADGE_CLASS as I,CARD_INDEX_CLASS as R,cardOutlineClass as k}from"efficient-web-builder/format/lib/sections/product-card-style";const s={headingSmall:"text-[length:var(--size-headingSmall,22px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"},B=[],F="View tyre",P="flex flex-col bg-[var(--card-bg)] p-5";function g(l,n){const a=l?k(l):"";return[P,n?"relative":"",a].filter(Boolean).join(" ")}function V({outline:l,showIndex:n=!1,size:a,specs:t,prices:x,image:h,inStock:o,href:c,linkLabel:u=F,imageSizes:b="(max-width: 720px) 100vw, (max-width: 1100px) 50vw, 33vw",fieldUsage:N=B,currency:S,formatPrice:_}){const m=$(x,S),v=m===null?T:_(m),y=j(N),d=[["load_index","Load index",t.loadIndex],["speed_rating","Speed",t.speedRating],["construction","Construction",t.construction],["tire_type","Type",t.tireType]].filter(([,,i])=>!!i).filter(([i])=>y(i)),p=r(C,{children:[e(w,{image:h,size:a,type:t.tireType,sizes:b}),e("h3",{className:`mt-4 font-heading3 ${s.headingSmall} font-medium leading-tight`,children:a}),t.treadPattern?e("div",{className:`mt-1 font-mono ${s.labelSmall} uppercase tracking-[0.18em] text-accent`,children:t.treadPattern}):null,d.length>0&&e("dl",{className:`mt-3 flex flex-col gap-2 font-mono ${s.labelSmall}`,children:d.map(([i,E,L])=>r("div",{className:"flex items-baseline justify-between gap-3",children:[e("dt",{className:"uppercase tracking-[0.14em] text-fg-dim",children:E}),e("dd",{className:"text-right text-fg",children:L})]},i))}),r("div",{className:`mt-4 flex items-baseline justify-between gap-3 border-t border-line pt-3 font-mono ${s.labelLarge}`,children:[e("span",{className:"text-fg",children:v}),e("span",{style:o?{color:"var(--green)"}:void 0,className:o?void 0:"text-fg-dim",children:D(o)})]})]}),f=n?e("span",{"aria-hidden":!0,className:`${R} ${I}`}):null;return c?r(A,{href:c,"aria-label":a?`View ${a} tyre`:"View this tyre",className:`group ${g(l,n)}`,children:[f,p,r("span",{className:`mt-3 inline-flex items-center gap-2 font-mono ${s.labelSmall} uppercase tracking-[0.2em] text-accent transition-colors group-hover:text-fg`,children:[u,e("span",{"aria-hidden":!0,className:"transition-transform group-hover:translate-x-1",children:"→"})]})]}):r("div",{className:g(l,n),children:[f,p]})}export{V as default};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type TyreFitAnswer } from "../lib/tyres/tyre-vehicle-fitment.js";
|
|
2
|
+
import type { TyreVariant } from "../lib/api/index.js";
|
|
3
|
+
export default function TyreFitVerdicts({ variants, answer, loading, }: {
|
|
4
|
+
variants: TyreVariant[];
|
|
5
|
+
answer: TyreFitAnswer | null;
|
|
6
|
+
loading?: boolean;
|
|
7
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e,jsxs as i}from"react/jsx-runtime";import{TYRE_FIT_LABEL as m,tyreFitHeadline as o}from"../lib/tyres/tyre-fit-copy.js";import{variantFitStatus as d}from"../lib/tyres/tyre-vehicle-fitment.js";const t={body:"text-[length:var(--size-body,18px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"},g={fits:{className:"font-medium",style:{color:"var(--green)"}},doesNotFit:{className:"text-fg-dim"},unknown:{className:"text-fg-dim"}};function p({variants:n,answer:l,loading:c=!1}){return l?i("div",{className:"mt-10",children:[e("p",{className:`max-w-[68ch] font-serif ${t.body} italic leading-[1.55] text-fg-dim`,children:o(l)}),e("ul",{className:"mt-6 grid gap-[2px] border border-line bg-line",children:n.map(s=>{const a=d(l,s.sku),r=g[a];return i("li",{className:"flex items-baseline justify-between gap-6 bg-bg px-5 py-4",children:[e("span",{className:`font-mono ${t.labelLarge} uppercase tracking-[0.14em] text-fg`,children:s.size}),e("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.24em] ${r.className}`,style:r.style,children:m[a]})]},s.sku)})})]}):c?e("p",{className:`mt-10 border border-line bg-bg p-6 font-mono ${t.labelLarge} uppercase tracking-[0.24em] text-fg-dim`,children:"Checking your car…"}):null}export{p as default};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface TyreImageProps {
|
|
2
|
+
image?: string | null;
|
|
3
|
+
size?: string | null;
|
|
4
|
+
type?: string | null;
|
|
5
|
+
sizes?: string;
|
|
6
|
+
priority?: boolean;
|
|
7
|
+
className?: string;
|
|
8
|
+
showBackground?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export default function TyreImage({ image, size, type, sizes, priority, className, showBackground, }: TyreImageProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as r}from"react/jsx-runtime";import c from"efficient-web-builder/render/components/Placeholder";import f from"./TyreRenderSvg.js";import{resolveMedia as n}from"efficient-web-builder/render/lib/media";function m({image:t,size:e,type:a,sizes:l,priority:o=!1,className:s="aspect-square",showBackground:i=!0}){return r("div",{className:`text-fg ${s}`,style:{padding:"var(--sf-tyre-image-inset, 0)"},children:r(c,{label:e||"Tyre",src:n(t??void 0),alt:e?`${e} tyre`:"Tyre",objectFit:"contain",sizes:l,priority:o,showBackground:i,fallback:r(f,{size:e,type:a,className:"block h-full w-full p-3"})})})}export{m as default};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type FieldUsageAnswer } from "../lib/content/field-usage.js";
|
|
2
|
+
export interface TyrePlpCardProps {
|
|
3
|
+
brand?: string | null;
|
|
4
|
+
brandLogo?: string | null;
|
|
5
|
+
brandPlate?: boolean;
|
|
6
|
+
kindLabel?: string | null;
|
|
7
|
+
showBrand?: boolean;
|
|
8
|
+
fieldUsage?: readonly FieldUsageAnswer[];
|
|
9
|
+
name: string;
|
|
10
|
+
slug?: string | null;
|
|
11
|
+
sizes: string[];
|
|
12
|
+
fitSize?: string | null;
|
|
13
|
+
rimDiameters: number[];
|
|
14
|
+
prices?: Record<string, number | null>;
|
|
15
|
+
image?: string | null;
|
|
16
|
+
currency: string;
|
|
17
|
+
editing?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export default function TyrePlpCard({ brand, brandLogo, brandPlate, kindLabel, showBrand, name, slug, sizes, fitSize, rimDiameters, prices, image, currency, editing, fieldUsage, }: TyrePlpCardProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as t,jsxs as a}from"react/jsx-runtime";import Y from"next/link";import{useCallback as Z,useEffect as J,useMemo as ee,useState as L}from"react";import te from"./BrandPlate.js";import{productCardEyebrow as re}from"./ProductCardEyebrow.js";import oe from"./TyreImage.js";import{useCart as ne}from"./CartContext.js";import ae from"./QuoteLink.js";import{useSiteTakesOrders as ce}from"./SiteRecordContext.js";import{useCurrency as se}from"./CurrencyContext.js";import{useTyreDetail as ie}from"./useTyreDetail.js";import le,{CARD_CHIP_CLASS as me,CARD_CHIP_LIST_CLASS as pe,CARD_CHIP_MORE_CLASS as de,CARD_CHIP_ROW_CLASS as ue,CARD_CHIP_SHAPE_CLASS as Ce,CARD_CTA_GHOST_CLASS as he,CARD_CTA_PRIMARY_CLASS as x,CARD_CTA_STACK_CLASS as fe}from"./WheelCardFrame.js";import{DEFAULT_PURCHASE_STATE as k}from"../lib/catalog/purchase.js";import{ADD_TO_BASKET_ATTR as _e}from"../lib/commerce.js";import{keepForCard as Se}from"../lib/content/field-usage.js";import{tyreModelLine as Ae}from"../lib/tyres/tyre-brand-name.js";import{tyrePagePath as Te}from"../lib/tyres/tyre-page-path.js";import{canOrderTyreVariant as ye,tyreCartLine as ge}from"../lib/tyres/tyre-purchase.js";import{EACH_UNIT as be,formatWheelPrice as Pe,FROM_PREFIX as Re,priceIn as Le,resolveWheelPrice as xe}from"../lib/wheels/price-display.js";import{formatSizeRange as ke}from"../lib/wheels/size-range.js";const N={label:"text-[length:var(--size-label,11px)]"},Ne=2,ve=[];function Ee({brand:u,brandLogo:v,brandPlate:E=!0,kindLabel:I=null,showBrand:D=!0,name:w,slug:c,sizes:s,fitSize:_=null,rimDiameters:H,prices:O,image:z,currency:S,editing:C=!1,fieldUsage:F=ve}){const A=Se(F),{add:j,open:B,warmCatalog:T}=ne(),i=ce();J(()=>{!C&&i&&T("tyre")},[C,i,T]);const{currency:W}=se(),l=xe(Le(O,S),null),$=Pe(l,S,Re),M=[s.length>0?`${s.length} ${s.length===1?"size":"sizes"}`:null,A("rim_diameter")?ke(H):null].filter(Boolean).join(" · "),m=Te(c),[U,K]=L(!1),h=Z(()=>{c&&K(!0)},[c]),{state:y,tyre:p}=ie(c??null,U),r=ee(()=>p?.variants??[],[p]),[X,q]=L(null),G=r.length===1?r[0].size:null,f=X??G,d=r.find(e=>e.size===f),n=d!=null&&ye(d,W),o=y==="ready",g=!m||y==="error"||o&&r.length===0;function Q(){!p||!d||!n||C||(j(ge(p,d,k.choice,k.qty)),B())}const b=o&&r.length>0?r.map(e=>e.size):s,P=b.slice(0,Ne),R=b.length-P.length,V=e=>["cursor-pointer transition-colors",Ce,e?"border-accent bg-accent text-bg":"border-accent/60 text-accent hover:border-accent hover:bg-accent/10"].join(" ");return t(le,{href:m,identityLink:!0,containerProps:{onPointerEnter:h,onTouchStart:h,onFocusCapture:h},image:t(oe,{image:z,className:"h-full w-full",sizes:"(max-width: 640px) 90vw, (max-width: 1024px) 45vw, 280px",showBackground:!1}),plate:E?t(te,{brand:u,logo:v}):null,eyebrow:re(I,D&&A("brand")&&u||null),name:Ae(u??"",w),spec:M,price:$,metaLine:l.priced?be:null,chips:a("div",{children:[_&&a("p",{className:`font-mono ${N.label} font-medium uppercase tracking-[0.14em] text-green`,children:["Fits · ",_]}),a("div",{className:ue,children:[t("div",{className:pe,children:P.map(e=>o&&r.length>0?t("button",{type:"button",title:e,"aria-label":e,"aria-pressed":f===e,onClick:()=>q(e),className:V(f===e),children:e},e):t("span",{className:me,children:e},e))}),R>0&&a("span",{className:de,children:["+",R]})]})]}),actions:a("div",{className:fe,children:[!g&&l.priced&&!i&&t(ae,{className:x}),!g&&l.priced&&i&&t("button",{type:"button",onClick:Q,[_e]:"",disabled:o&&!n,className:n||!o?`${x}${n?"":" opacity-80"}`:`cursor-not-allowed border border-dashed border-accent/50 px-4 py-3 font-mono ${N.label} font-bold uppercase tracking-[0.24em] text-accent/70`,children:o&&!n?"Select a size":"Add to basket"}),m&&t(Y,{href:m,className:he,children:"Open product page"})]})})}export{Ee as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as t,jsxs as n,Fragment as h}from"react/jsx-runtime";import{useId as b}from"react";import{TYRE_VIEW_SIZE as k,resolveTreadPattern as P,tyreArcPath as x,tyreBlockPath as $,tyreGeometry as I,tyreProfileFromSize as _,tyreRingPath as m}from"../lib/wheels/tyre-render.js";const c={rib:.2,grooveWall:.16,shoulder:.22,silhouette:.26,relief:[.26,.15,.11],lettering:.1,dishFill:.06,dishEdge:.3,spoke:.3,hubFill:.16,hubEdge:.34},F=[.8,.52,.24],O=.4,R=.88,E=.3,W=5,w=.3,T=.84,S=7,o=r=>Math.round(r*10)/10;function M({size:r,type:a,className:i}){const l=b().replace(/[^a-zA-Z0-9]/g,""),s={tread:`${l}-tread`,wall:`${l}-wall`,rim:`${l}-rim`,shadow:`${l}-shadow`,crown:`${l}-crown`},e=I(_(r)),y=m(e,0,1),p=r?`${r} tyre illustration`:"Tyre illustration";return n("svg",{"data-tyre-placeholder":"",viewBox:`0 0 ${k} ${k}`,role:"img","aria-label":p,fill:"none",className:i??"block h-full w-full",children:[t("title",{children:p}),n("defs",{children:[t(v,{id:s}),t("clipPath",{id:s.crown,children:t("path",{d:y})})]}),t("ellipse",{cx:o(e.cxf+e.dx/2),cy:o(e.cy+e.ry-4),rx:o(e.dx*1.5),ry:16,fill:`url(#${s.shadow})`}),t(G,{g:e,id:s}),t(A,{g:e,id:s}),t("path",{d:y,fill:`url(#${s.tread})`}),t("g",{clipPath:`url(#${s.crown})`,children:P(a).map(f=>t(N,{g:e,column:f},f.f[0]))}),t("path",{d:x(e,0,0,!0),stroke:"currentColor",strokeOpacity:c.shoulder,strokeWidth:1.2}),t("path",{d:x(e,1,1),stroke:"currentColor",strokeOpacity:c.silhouette,strokeWidth:1.4})]})}function N({g:r,column:a}){const[i,l]=a.f;if(!a.blocks)return n(h,{children:[t("path",{d:m(r,i,l),fill:"currentColor",fillOpacity:c.rib}),t("path",{d:x(r,i,1),stroke:"currentColor",strokeOpacity:c.grooveWall,strokeWidth:1})]});const{count:s,gap:e,phase:y=0}=a.blocks,p=1/s,f=[];for(let d=-1;d<=s;d+=1){const u=Math.max((d+y+e/2)*p,0),C=Math.min((d+y+1-e/2)*p,1);C-u>p*.15&&f.push([u,C])}return t(h,{children:f.map(([d,u])=>t("path",{d:$(r,i,l,d,u),fill:"currentColor",fillOpacity:c.rib,stroke:"currentColor",strokeOpacity:c.grooveWall,strokeWidth:1},d))})}function v({id:r}){return n(h,{children:[n("linearGradient",{id:r.tread,x1:"0",y1:"0",x2:"1",y2:"0",children:[t("stop",{offset:"0",stopColor:"currentColor",stopOpacity:.07}),t("stop",{offset:"0.14",stopColor:"currentColor",stopOpacity:.24}),t("stop",{offset:"0.45",stopColor:"currentColor",stopOpacity:.18}),t("stop",{offset:"0.84",stopColor:"currentColor",stopOpacity:.1}),t("stop",{offset:"1",stopColor:"currentColor",stopOpacity:.05})]}),n("linearGradient",{id:r.wall,x1:"0.15",y1:"0",x2:"0.9",y2:"1",children:[t("stop",{offset:"0",stopColor:"currentColor",stopOpacity:.28}),t("stop",{offset:"0.45",stopColor:"currentColor",stopOpacity:.17}),t("stop",{offset:"1",stopColor:"currentColor",stopOpacity:.08})]}),n("linearGradient",{id:r.rim,x1:"0.1",y1:"0",x2:"0.9",y2:"1",children:[t("stop",{offset:"0",stopColor:"currentColor",stopOpacity:.46}),t("stop",{offset:"0.5",stopColor:"currentColor",stopOpacity:.26}),t("stop",{offset:"1",stopColor:"currentColor",stopOpacity:.12})]}),n("radialGradient",{id:r.shadow,children:[t("stop",{offset:"0",stopColor:"currentColor",stopOpacity:.22}),t("stop",{offset:"1",stopColor:"currentColor",stopOpacity:0})]})]})}function G({g:r,id:a}){const i=r.rimRy/r.ry,l=e=>i+(1-i)*e,s=Math.max(6,(r.ry-r.rimRy)*.3);return n(h,{children:[t("ellipse",{cx:o(r.cxf),cy:o(r.cy),rx:o(r.rx),ry:o(r.ry),fill:`url(#${a.wall})`}),F.map((e,y)=>{const p=l(e);return t("ellipse",{cx:o(r.cxf),cy:o(r.cy),rx:o(r.rx*p),ry:o(r.ry*p),stroke:"currentColor",strokeOpacity:c.relief[y],strokeWidth:1},e)}),t("ellipse",{cx:o(r.cxf),cy:o(r.cy),rx:o(r.rx*l(O)),ry:o(r.ry*l(O)),stroke:"currentColor",strokeOpacity:c.lettering,strokeWidth:o(s)})]})}function A({g:r,id:a}){const i=Array.from({length:W},(l,s)=>{const e=(s*(360/W)-90)*Math.PI/180;return{x1:r.cxf+r.rimRx*w*Math.cos(e),y1:r.cy+r.rimRy*w*Math.sin(e),x2:r.cxf+r.rimRx*T*Math.cos(e),y2:r.cy+r.rimRy*T*Math.sin(e)}});return n(h,{children:[t("ellipse",{cx:o(r.cxf),cy:o(r.cy),rx:o(r.rimRx),ry:o(r.rimRy),fill:`url(#${a.rim})`}),t("ellipse",{cx:o(r.cxf),cy:o(r.cy),rx:o(r.rimRx*R),ry:o(r.rimRy*R),fill:"currentColor",fillOpacity:c.dishFill,stroke:"currentColor",strokeOpacity:c.dishEdge,strokeWidth:1}),i.map((l,s)=>t("line",{x1:o(l.x1),y1:o(l.y1),x2:o(l.x2),y2:o(l.y2),stroke:"currentColor",strokeOpacity:c.spoke,strokeWidth:S,strokeLinecap:"round"},s)),t("ellipse",{cx:o(r.cxf),cy:o(r.cy),rx:o(r.rimRx*E),ry:o(r.rimRy*E),fill:"currentColor",fillOpacity:c.hubFill,stroke:"currentColor",strokeOpacity:c.hubEdge,strokeWidth:1})]})}export{M as default};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TyreProductSummary } from "../lib/api/index.js";
|
|
2
|
+
import type { FieldUsageAnswer } from "../lib/content/field-usage.js";
|
|
3
|
+
export default function TyreSummaryCard({ item, currency, kindLabel, showBrand, fitSize, editing, fieldUsage, }: {
|
|
4
|
+
item: TyreProductSummary;
|
|
5
|
+
currency: string;
|
|
6
|
+
fitSize?: string | null;
|
|
7
|
+
kindLabel?: string | null;
|
|
8
|
+
showBrand?: boolean;
|
|
9
|
+
editing?: boolean;
|
|
10
|
+
fieldUsage?: readonly FieldUsageAnswer[];
|
|
11
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as o}from"react/jsx-runtime";import d from"./TyrePlpCard.js";function u({item:r,currency:e,kindLabel:a=null,showBrand:s=!0,fitSize:n=null,editing:i=!1,fieldUsage:l}){return o(d,{brand:r.brand,brandLogo:r.brandLogo,kindLabel:a,showBrand:s,name:r.name,slug:r.slug,sizes:r.sizes,fitSize:n,rimDiameters:r.rimDiameters,prices:r.prices,image:r.coverImage,currency:e,editing:i,fieldUsage:l})}export{u as default};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type TyreFitAnswer } from "../lib/tyres/tyre-vehicle-fitment.js";
|
|
2
|
+
import type { TyreVariant } from "../lib/api/index.js";
|
|
3
|
+
export declare const TYRE_FITMENT_TITLE = "Will it fit *your car?*";
|
|
4
|
+
export declare const TYRE_FITMENT_DESCRIPTION = "Pick your vehicle and we\u2019ll tell you which of these sizes matches what it came on.";
|
|
5
|
+
export declare const BAND_INLINE = "border-b border-line py-[120px] max-[1100px]:py-20";
|
|
6
|
+
export declare const BAND_OWN_BOX = "border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20";
|
|
7
|
+
export default function TyreVehicleFitment({ num, title, description, escapeText, escapeHref, omitHead, capped, slug, variants, onAnswer, }: {
|
|
8
|
+
num?: string;
|
|
9
|
+
title?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
escapeText?: string;
|
|
12
|
+
escapeHref?: string;
|
|
13
|
+
omitHead?: boolean;
|
|
14
|
+
capped?: boolean;
|
|
15
|
+
slug: string;
|
|
16
|
+
variants: TyreVariant[];
|
|
17
|
+
onAnswer?: (answer: TyreFitAnswer | null) => void;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as t,jsxs as l}from"react/jsx-runtime";import h from"./SectionBand.js";import{useEffect as y,useRef as T}from"react";import b from"efficient-web-builder/render/components/SectionHeader";import N from"./TyreFitVerdicts.js";import{useTyreFitAnswer as _}from"./useTyreFitAnswer.js";import E from"./fitment/FitmentPickerGrid.js";import{useVehicleFit as F}from"./fitment/useVehicleFit.js";import{tyreFitQuery as I}from"../lib/tyres/tyre-vehicle-fitment.js";const v="Will it fit *your car?*",w="Pick your vehicle and we’ll tell you which of these sizes matches what it came on.",g="border-b border-line py-[120px] max-[1100px]:py-20",j="border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20";function k({num:a,title:p=v,description:m=w,escapeText:r,escapeHref:o,omitHead:i=!1,capped:u=!0,slug:d,variants:f,onAnswer:n}){const c=F({autoApply:!0}),{answer:e,loading:x}=_(d,I(c.applied?.vehicle)),s=T(n);return s.current=n,y(()=>{s.current?.(e)},[e]),l(h,{className:i?j:g,capped:u,children:[i?null:t(b,{num:a,title:p,description:m,accent:!0}),t(E,{cascade:c.cascade}),r&&o?l("a",{href:o,className:"mt-6 inline-block font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-accent underline-offset-4 hover:underline",children:[r," →"]}):null,t(N,{variants:f,answer:e,loading:x})]})}export{g as BAND_INLINE,j as BAND_OWN_BOX,w as TYRE_FITMENT_DESCRIPTION,v as TYRE_FITMENT_TITLE,k as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as t,jsxs as i}from"react/jsx-runtime";import n from"next/link";function s({href:e,label:r}){return i(n,{href:e,"data-view-more":!0,className:"inline-flex items-center gap-3 self-start border-b border-line pb-2 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg transition-colors hover:text-fg-dim",children:[r,t("span",{"aria-hidden":!0,children:"→"})]})}export{s as default};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export declare function fieldCaptionClass(labelFace?: string): string;
|
|
3
|
+
export declare function FieldCaption({ children, required, labelFace, }: {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
required?: boolean;
|
|
6
|
+
labelFace?: string;
|
|
7
|
+
}): import("react").JSX.Element;
|
|
8
|
+
export default function WebFormField({ label, required, hint, separate, htmlFor, labelFace, className, children, }: {
|
|
9
|
+
label: ReactNode;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
hint?: ReactNode;
|
|
12
|
+
separate?: boolean;
|
|
13
|
+
htmlFor?: string;
|
|
14
|
+
labelFace?: string;
|
|
15
|
+
className?: string;
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as t,jsxs as r}from"react/jsx-runtime";const m="font-mono text-[length:var(--size-label,12px)]",d="font-semibold uppercase tracking-[0.22em] text-fg";function x(e){return`${e??m} ${d}`}function f(){return t("span",{className:"text-accent",children:" *"})}function g({children:e,required:l,labelFace:n}){return r("span",{className:x(n),children:[e,l?t(f,{}):null]})}function h({label:e,required:l,hint:n,separate:p,htmlFor:s,labelFace:a,className:o,children:c}){const i=o?`flex flex-col gap-2 ${o}`:"flex flex-col gap-2",u=n?t("span",{className:"font-mono text-[11px] uppercase tracking-[0.22em] text-fg-dim",children:n}):null;return p||n?r("div",{className:i,children:[r("label",{htmlFor:s,className:x(a),children:[e,l?t(f,{}):null]}),c,u]}):r("label",{htmlFor:s,className:i,children:[t(g,{required:l,labelFace:a,children:e}),c]})}export{g as FieldCaption,h as default,x as fieldCaptionClass};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ComponentProps, CSSProperties, ReactNode } from "react";
|
|
2
|
+
import { type CardOutline } from "efficient-web-builder/format/lib/sections/product-card-style";
|
|
3
|
+
export declare const CARD_ROWS_GRID_CLASS = "sf-card-rows";
|
|
4
|
+
export declare const cardRowsGridStyle: (rowGap: string) => CSSProperties;
|
|
5
|
+
export declare const CARD_CHIP_ROW_CLASS = "mt-3 flex h-[26px] items-center gap-1";
|
|
6
|
+
export declare const CARD_CHIP_LIST_CLASS = "flex min-w-0 items-center gap-1 overflow-hidden";
|
|
7
|
+
export declare const CARD_CHIP_MORE_CLASS: string;
|
|
8
|
+
export declare const CARD_CHIP_SHAPE_CLASS: string;
|
|
9
|
+
export declare const CARD_CHIP_CLASS: string;
|
|
10
|
+
export declare const setPlateWidthCss: (gap: number | string) => string;
|
|
11
|
+
export declare const GRID_GAP_PX = 2;
|
|
12
|
+
export declare const CARD_PAD_X_PX = 32;
|
|
13
|
+
export declare const setBandGapPx: (showImageBackground: boolean) => number;
|
|
14
|
+
export declare const setBandGapCss: (showImageBackground: boolean, gridGap?: string) => string;
|
|
15
|
+
export declare const SET_PLATE_PX = 252;
|
|
16
|
+
export declare const SET_STACK_GAP_PX = 16;
|
|
17
|
+
export declare const SET_STACK_MAX_PX = 800;
|
|
18
|
+
export declare const CARD_SPEC_FIELD_CLASS = "whitespace-nowrap";
|
|
19
|
+
export type CardSpecField = string | {
|
|
20
|
+
readonly text: string;
|
|
21
|
+
readonly accent: boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare function cardSpecFields(fields: readonly CardSpecField[], separator?: string): ReactNode;
|
|
24
|
+
export declare const CARD_CTA_STACK_CLASS = "mt-3 flex flex-col gap-2";
|
|
25
|
+
export declare const CARD_CTA_PRIMARY_CLASS: string;
|
|
26
|
+
export declare const CARD_CTA_GHOST_CLASS: string;
|
|
27
|
+
export declare const CARD_BADGE_ANCHOR_CLASS = "absolute right-[18px] top-[18px] z-10";
|
|
28
|
+
export declare const CARD_BADGE_ANCHOR_LEFT_CLASS = "absolute left-[18px] top-[18px] z-10";
|
|
29
|
+
export declare function WheelCardBadge({ tone, className, children, }: {
|
|
30
|
+
tone: "solid" | "outline";
|
|
31
|
+
className?: string;
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
}): import("react").JSX.Element;
|
|
34
|
+
export declare function WheelCardCorners({ set, numbered, right, }: {
|
|
35
|
+
set: boolean;
|
|
36
|
+
numbered: boolean;
|
|
37
|
+
right: ReactNode[];
|
|
38
|
+
}): import("react").JSX.Element;
|
|
39
|
+
export default function WheelCardFrame({ variant, wide, setGridGap, href, identityLink, outline, imageBackgroundFill, containerProps, probes, indexBadge, badges, image, imageSecond, plate, eyebrow, reserveEyebrow, name, spec, was, price, metaLine, swatches, showPrice, reserveSwatches, chips, actions, wholeCardLink, }: {
|
|
40
|
+
variant?: "compact" | "catalog";
|
|
41
|
+
wide?: boolean;
|
|
42
|
+
setGridGap?: string;
|
|
43
|
+
href?: string | null;
|
|
44
|
+
identityLink?: boolean;
|
|
45
|
+
outline?: CardOutline;
|
|
46
|
+
imageBackgroundFill?: string;
|
|
47
|
+
containerProps?: Omit<ComponentProps<"article">, "className" | "children">;
|
|
48
|
+
probes?: ReactNode;
|
|
49
|
+
indexBadge?: ReactNode;
|
|
50
|
+
badges?: ReactNode;
|
|
51
|
+
image: ReactNode;
|
|
52
|
+
imageSecond?: ReactNode;
|
|
53
|
+
plate?: ReactNode;
|
|
54
|
+
eyebrow?: ReactNode;
|
|
55
|
+
reserveEyebrow?: boolean;
|
|
56
|
+
name: ReactNode;
|
|
57
|
+
spec?: ReactNode;
|
|
58
|
+
was?: ReactNode;
|
|
59
|
+
price?: ReactNode;
|
|
60
|
+
metaLine?: ReactNode;
|
|
61
|
+
swatches?: ReactNode;
|
|
62
|
+
showPrice?: boolean;
|
|
63
|
+
reserveSwatches?: boolean;
|
|
64
|
+
chips?: ReactNode;
|
|
65
|
+
actions?: ReactNode;
|
|
66
|
+
wholeCardLink?: boolean;
|
|
67
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as t,jsxs as l,Fragment as f}from"react/jsx-runtime";import j from"next/link";import{Fragment as z}from"react";import{cardOutlineClass as te}from"efficient-web-builder/format/lib/sections/product-card-style";import{CARD_IMAGE_BG_OFF as re,cardImageBackgroundPaints as ae,THEME_CARD_IMAGE_BG as le}from"efficient-web-builder/format/lib/content/card-image-background";const a={headingSmall1:"text-[length:var(--size-headingSmall,22px)]",headingSmall2:"text-[length:var(--size-headingSmall,30px)]",labelSmall:"text-[length:var(--size-label,11px)]",label:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"},Ce="sf-card-rows",ve=e=>({rowGap:0,"--sf-card-row-gap":e}),Ae="mt-3 flex h-[26px] items-center gap-1",we="flex min-w-0 items-center gap-1 overflow-hidden",Re=`shrink-0 border border-line px-2 py-0.5 font-mono ${a.labelSmall} tracking-[0.08em] text-fg-dim`,ne=`border px-2 py-0.5 font-mono ${a.labelSmall} tracking-[0.08em] whitespace-nowrap`,$e=`${ne} border-accent/60 text-accent`,oe=e=>`calc((100% - ${typeof e=="number"?`${e}px`:e}) / 2)`,F=2,se=32,H=e=>F+2*se+(e?16:0),B=(e,r)=>r===void 0?`${H(e)}px`:`calc(${r} + ${H(e)-F}px)`,Ee=252,ce=16,Ne=800,ie="whitespace-nowrap",de=e=>typeof e=="string"?e:e.text;function De(e,r="·"){return e.map((n,o)=>{const s=de(n),d=typeof n!="string"&&n.accent;return l(z,{children:[t("span",{className:`${ie}${d?" text-accent":""}`,children:o<e.length-1?`${s} ${r}`:s}),o<e.length-1?" ":null]},s)})}const Le="mt-3 flex flex-col gap-2",ye=`cursor-pointer bg-btn px-4 py-3 font-mono ${a.labelSmall} font-bold uppercase tracking-[0.24em] text-btn-ink transition-colors hover:bg-fg`,Pe=`border border-btn px-4 py-3 text-center font-mono ${a.labelSmall} font-bold uppercase tracking-[0.24em] text-btn transition-colors hover:bg-btn hover:text-btn-ink`,pe=`border px-2 py-1 font-mono ${a.labelSmall} uppercase tracking-[0.3em]`,me="absolute right-[18px] top-[18px] z-10",xe="absolute left-[18px] top-[18px] z-10";function fe({tone:e,className:r,children:n}){return t("span",{className:[r,pe,e==="solid"?"border-accent bg-accent text-bg":"border-accent text-accent"].filter(Boolean).join(" "),children:n})}function Te({set:e,numbered:r,right:n}){const o=e?t(fe,{tone:"solid",children:"Set"}):null,s=[r?o:null,...n].filter(Boolean);return l(f,{children:[o&&!r&&t("div",{className:`${xe} pointer-events-none flex flex-col items-start gap-1`,children:o}),s.length>0&&t("div",{className:`${me} pointer-events-none flex flex-col items-end gap-1`,children:s.map((d,p)=>t(z,{children:d},p))})]})}function ge({variant:e="catalog",wide:r=!1,setGridGap:n,href:o,identityLink:s=!1,outline:d="none",imageBackgroundFill:p=re,containerProps:v,probes:g,indexBadge:h,badges:_,image:x,imageSecond:O,plate:A,eyebrow:w,reserveEyebrow:X=!1,name:W,spec:M,was:R,price:q,metaLine:$,swatches:E,showPrice:N=!0,reserveSwatches:K=!0,chips:D,actions:L,wholeCardLink:Y=!1}){const c=e==="catalog",m=ae(p),y=m&&p===le,P=y?"bg-[var(--wheel-stage)] p-2":m?"p-2":"",T=m&&!y?{backgroundColor:p}:{},k=C=>t("figure",{className:"m-0 aspect-square [flex:0_0_auto] max-w-full w-[var(--sf-set-plate-w)] max-[800px]:w-full",style:{"--sf-set-plate-w":oe(B(m,n))},children:C}),Z=c?l("div",{className:r?`relative mt-2 mb-5 flex items-center justify-center [&_img]:object-top max-[800px]:flex-col ${P}`:`relative mt-2 mb-5 flex aspect-square items-center justify-center overflow-hidden [&_img]:object-top ${P}`,style:r?{...T,borderRadius:10,columnGap:B(m,n),rowGap:ce}:{...T,borderRadius:"var(--sf-card-image-radius, 10px)"},children:[r?l(f,{children:[k(x),k(O??x)]}):x,A]}):l("div",{className:"relative mb-5 aspect-square overflow-hidden bg-bg p-8 [&_img]:object-top",style:{borderRadius:"var(--sf-card-image-radius, 10px)"},children:[x,A]}),G=`font-mono ${a.label} uppercase text-accent ${c?"tracking-[0.3em]":"tracking-[0.25em]"}`,J=w?t("div",{className:G,children:w}):c&&X?t("div",{"aria-hidden":!0,className:G,children:" "}):null,Q=t("div",{className:c?`mt-2 h-[60px] overflow-hidden break-words [.sf-card-rows_&]:h-auto [.sf-card-rows_&]:max-h-[60px] font-heading3 ${a.headingSmall2} font-medium uppercase leading-none tracking-[-0.02em]`:`mt-2 font-heading3 ${a.headingSmall1} font-medium tracking-[-0.02em]`,children:W}),U=t("div",{className:c?`mt-2 h-[38px] overflow-hidden [.sf-card-rows_&]:h-auto [.sf-card-rows_&]:max-h-[76px] font-mono ${a.labelLarge} leading-[19px] tracking-[0.14em] text-fg-dim`:`mt-[4px] font-mono ${a.labelLarge} tracking-[0.1em] text-fg-dim`,children:M}),V=N?l("div",{className:`mt-2 font-mono ${a.labelLarge}`,children:[R&&t("span",{className:"mr-2 text-fg-dim line-through",children:R}),q]}):null,ee=N&&$?t("div",{className:`mt-[2px] font-mono ${a.labelSmall} tracking-[0.08em] text-fg-dim`,children:$}):null,I=c&&!E?K?t("div",{"aria-hidden":!0,className:"mt-4 h-4"}):null:E,u=[c?"sf-card sf-card-fill group relative flex min-h-[460px] flex-col bg-[var(--card-bg)] px-8 pt-8 pb-8 transition-colors duration-200 hover:bg-[var(--card-bg-hover)] [.sf-card-rows>&]:row-span-9 [.sf-card-rows>&]:mb-[var(--sf-card-row-gap)] [.sf-card-rows>&]:grid [.sf-card-rows>&]:grid-rows-subgrid [.sf-card-rows>&]:gap-y-0":"sf-card sf-card-fill group relative block bg-[var(--card-bg)] p-5 transition-colors duration-300 hover:bg-[var(--card-bg-hover)]",te(d),r?"col-span-2 max-[800px]:col-span-1 @max-[720px]:col-span-1":""].filter(Boolean).join(" "),i=C=>C??(c?t("div",{"aria-hidden":!0}):null),b=l(f,{children:[Z,i(J),Q]}),S=l(f,{children:[U,i(V),i(ee),i(I?t("div",{className:"relative z-10",children:I}):null),i(D?t("div",{className:"relative z-10",children:D}):null),i(L?t("div",{className:"relative z-10 [.sf-card-rows>*>&]:self-end",children:L}):null)]});return o?s?l("article",{...v,className:u,children:[g,h,_,t(j,{href:o,className:`flex flex-col ${Y?"after:absolute after:inset-0 after:content-['']":""} [.sf-card-rows>*>&]:row-span-3 [.sf-card-rows>*>&]:grid [.sf-card-rows>*>&]:grid-rows-subgrid [.sf-card-rows>*>&]:gap-y-0`,children:b}),S]}):l(j,{href:o,className:u,children:[g,h,_,b,S]}):l("article",{...v,className:u,children:[g,h,_,b,S]})}export{me as CARD_BADGE_ANCHOR_CLASS,xe as CARD_BADGE_ANCHOR_LEFT_CLASS,$e as CARD_CHIP_CLASS,we as CARD_CHIP_LIST_CLASS,Re as CARD_CHIP_MORE_CLASS,Ae as CARD_CHIP_ROW_CLASS,ne as CARD_CHIP_SHAPE_CLASS,Pe as CARD_CTA_GHOST_CLASS,ye as CARD_CTA_PRIMARY_CLASS,Le as CARD_CTA_STACK_CLASS,se as CARD_PAD_X_PX,Ce as CARD_ROWS_GRID_CLASS,ie as CARD_SPEC_FIELD_CLASS,F as GRID_GAP_PX,Ee as SET_PLATE_PX,ce as SET_STACK_GAP_PX,Ne as SET_STACK_MAX_PX,fe as WheelCardBadge,Te as WheelCardCorners,ve as cardRowsGridStyle,De as cardSpecFields,ge as default,B as setBandGapCss,H as setBandGapPx,oe as setPlateWidthCss};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactNode } from "react";
|
|
2
|
+
export interface WheelImageProps {
|
|
3
|
+
src?: string | null;
|
|
4
|
+
alt: string;
|
|
5
|
+
fallback: ReactNode;
|
|
6
|
+
fill?: boolean;
|
|
7
|
+
width?: number;
|
|
8
|
+
height?: number;
|
|
9
|
+
sizes?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
style?: CSSProperties;
|
|
12
|
+
priority?: boolean;
|
|
13
|
+
draggable?: boolean;
|
|
14
|
+
imageKey?: string;
|
|
15
|
+
imageWrapperClassName?: string;
|
|
16
|
+
onImageClick?: () => void;
|
|
17
|
+
imageButtonClassName?: string;
|
|
18
|
+
imageButtonLabel?: string;
|
|
19
|
+
}
|
|
20
|
+
export default function WheelImage({ src, alt, fallback, fill, width, height, sizes, className, style, priority, draggable, imageKey, imageWrapperClassName, onImageClick, imageButtonClassName, imageButtonLabel, }: WheelImageProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{Fragment as S,jsx as e}from"react/jsx-runtime";import j from"next/image";import{useState as N}from"react";function _({src:l,alt:n,fallback:a,fill:c=!1,width:m,height:u,sizes:d,className:f,style:h,priority:g,draggable:p,imageKey:b,imageWrapperClassName:r,onImageClick:s,imageButtonClassName:w,imageButtonLabel:x}){const[y,F]=N(null),t=l||"";if(!(t!==""&&y!==t))return e(S,{children:a});const o=e(j,{src:t,alt:n,...c?{fill:!0}:{width:m??1e3,height:u??1e3},sizes:d,className:f,style:h,priority:g,draggable:p,onError:()=>F(t)},b??t),i=r?e("div",{className:r,children:o}):o;return s?e("button",{type:"button",onClick:s,"aria-label":x,className:w,children:i}):i}export{_ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useState as i}from"react";import{sizedImage as n}from"efficient-web-builder/format/lib/sized-image";const c="(max-width: 640px) 100vw, (max-width: 1100px) 50vw, 33vw";function d({src:a,alt:s=""}){const[l,o]=i(!1),t=a||"";return e("div",{className:"relative aspect-square overflow-hidden bg-bg",children:r("div",{className:"absolute inset-0 flex items-center justify-center transition-transform duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)] group-hover:rotate-[60deg]",children:[e("div",{className:"absolute inset-0 z-[1] flex items-center justify-center",children:r("div",{className:"relative flex h-[70%] w-[70%] items-center justify-center rounded-full border-2",style:{borderColor:"var(--accent)"},children:[e("div",{className:"absolute inset-[10%] rounded-full border",style:{borderColor:"var(--accent)",opacity:.4}}),e("div",{className:"absolute left-1/2 top-1/2 h-[18%] w-[18%] -translate-x-1/2 -translate-y-1/2 rounded-full border-2",style:{borderColor:"var(--accent)"}}),e("div",{className:"absolute left-1/2 top-1/2 h-[6%] w-[6%] -translate-x-1/2 -translate-y-1/2 rounded-full",style:{background:"var(--accent)"}})]})}),t&&e("img",{...n(t,{fallbackWidth:960}),sizes:c,alt:s,className:"absolute inset-0 z-[2] h-full w-full object-contain",style:{display:l?"none":"block"},onError:()=>o(!0)})]})})}export{d as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as i,jsxs as h}from"react/jsx-runtime";function x({spokes:n,mesh:a=!1,className:e}){const r=c=>Math.round(c*1e3)/1e3,s=[];for(let c=0;c<n;c++){const t=c/n*Math.PI*2-Math.PI/2;if(s.push({x1:r(100+Math.cos(t)*22),y1:r(100+Math.sin(t)*22),x2:r(100+Math.cos(t)*86),y2:r(100+Math.sin(t)*86),main:!0}),a){const o=t+Math.PI/n;s.push({x1:r(100+Math.cos(o)*22*1.4),y1:r(100+Math.sin(o)*22*1.4),x2:r(100+Math.cos(o)*78),y2:r(100+Math.sin(o)*78),main:!1})}}return h("svg",{viewBox:"0 0 200 200",fill:"none",stroke:"currentColor",className:e??"block h-[70%] w-[70%] transition-transform duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",children:[i("circle",{cx:100,cy:100,r:92,strokeWidth:2}),i("circle",{cx:100,cy:100,r:84,strokeWidth:1,opacity:.4}),i("circle",{cx:100,cy:100,r:22,strokeWidth:2}),i("circle",{cx:100,cy:100,r:6,fill:"currentColor"}),s.map((c,t)=>i("line",{x1:c.x1,y1:c.y1,x2:c.x2,y2:c.y2,stroke:"currentColor",strokeWidth:c.main?6:3,strokeLinecap:"round",opacity:c.main?1:.5},t))]})}export{x as default};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
interface WishlistValue {
|
|
3
|
+
slugs: string[];
|
|
4
|
+
ready: boolean;
|
|
5
|
+
has: (slug: string) => boolean;
|
|
6
|
+
toggle: (slug: string) => void;
|
|
7
|
+
count: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function WishlistProvider({ children }: {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
export declare function useWishlist(): WishlistValue;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as m}from"react/jsx-runtime";import{createContext as p,useContext as x,useEffect as g,useState as o}from"react";import{safeLocalStorage as n}from"efficient-web-builder/format/lib/safe-storage";const c="storefront-wishlist";function S(s){const t=JSON.parse(s);return Array.isArray(t)?t.filter(r=>typeof r=="string"):[]}const u=p(null);function w({children:s}){const[t,r]=o([]),[l,a]=o(!1);g(()=>{const e=n.getItem(c);try{e&&r(S(e))}catch{}a(!0)},[]);function f(e){const i=t.includes(e)?t.filter(h=>h!==e):[...t,e];r(i),n.setItem(c,JSON.stringify(i))}const d={slugs:t,ready:l,has:e=>t.includes(e),toggle:f,count:t.length};return m(u.Provider,{value:d,children:s})}function E(){const s=x(u);if(!s)throw new Error("useWishlist must be used within a WishlistProvider");return s}export{w as WishlistProvider,E as useWishlist};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const BOOKING_REGIONS: readonly ["head", "booking", "details", "confirm"];
|
|
2
|
+
export type BookingRegion = (typeof BOOKING_REGIONS)[number];
|
|
3
|
+
export declare const BOOKING_REGION_NAMES: Record<BookingRegion, string>;
|
|
4
|
+
export interface BookingBoxProps {
|
|
5
|
+
region?: string;
|
|
6
|
+
successMessage?: string;
|
|
7
|
+
styleStep?: unknown;
|
|
8
|
+
styleName?: unknown;
|
|
9
|
+
styleValue?: unknown;
|
|
10
|
+
styleNote?: unknown;
|
|
11
|
+
eyebrow?: string;
|
|
12
|
+
heading?: string;
|
|
13
|
+
intro?: string;
|
|
14
|
+
buttonLabel?: string;
|
|
15
|
+
}
|
|
16
|
+
export default function BookingBox({ region, eyebrow, heading, intro, buttonLabel, successMessage, ...kinds }: BookingBoxProps): import("react").JSX.Element | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as o}from"react/jsx-runtime";import{BookingChoose as m,BookingConfirmed as u,BookingDetails as d,BookingHead as g}from"./BookingRegions.js";import{useBookingForm as k}from"./BookingFormState.js";import{bookingKindStyle as p}from"../../lib/booking/text-kinds.js";const N=["head","booking","details","confirm"],O={head:"Head",booking:"Booking",details:"Your details",confirm:"Confirmation"};function B({region:n,eyebrow:r,heading:s,intro:l,buttonLabel:a,successMessage:c,...f}){const{confirmation:i,services:t}=k(),e=p(f);return n==="head"?o("div",{className:"min-[960px]:col-span-2",style:e,children:o(g,{eyebrow:r,heading:s,intro:l})}):n==="confirm"?i?o("div",{className:"min-[960px]:col-span-2",style:e,children:o(u,{successMessage:c})}):null:i||!t||t.length===0?null:n==="booking"?o(m,{style:e}):n==="details"?o(d,{buttonLabel:a,style:e}):null}export{N as BOOKING_REGIONS,O as BOOKING_REGION_NAMES,B as default};
|