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.
Files changed (1111) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/chunks/{EditorPreviewCheckout-7Y7WL5BM.js → EditorPreviewCheckout-4NGRJA3T.js} +1 -1
  3. package/dist/chunks/{SiteEditorProvider-5MWJMLLI.js → SiteEditorProvider-V5FE5UD6.js} +1 -1
  4. package/dist/chunks/{chunk-BPVXTVPM.js → chunk-4AKN63X5.js} +1 -1
  5. package/dist/chunks/chunk-K4AZ5SUU.js +1 -0
  6. package/dist/chunks/chunk-PHH7L5FJ.js +255 -0
  7. package/dist/chunks/{chunk-FSSCNRRE.js → chunk-SJQTKWV3.js} +1 -1
  8. package/dist/chunks/{fitment-data-UVMEA7WW.js → fitment-data-OIWU6HGJ.js} +1 -1
  9. package/dist/editor/components/BlogSource.d.ts +11 -0
  10. package/dist/editor/components/BlogSource.js +1 -0
  11. package/dist/editor/components/CategorySource.d.ts +7 -0
  12. package/dist/editor/components/CategorySource.js +1 -0
  13. package/dist/editor/components/CollectionPicker.d.ts +7 -0
  14. package/dist/editor/components/CollectionPicker.js +1 -0
  15. package/dist/editor/components/ConsentBannerLayoutTiles.d.ts +3 -0
  16. package/dist/editor/components/ConsentBannerLayoutTiles.js +1 -0
  17. package/dist/editor/components/CountryShowAsTiles.d.ts +5 -0
  18. package/dist/editor/components/CountryShowAsTiles.js +1 -0
  19. package/dist/editor/components/EditProductLink.d.ts +1 -0
  20. package/dist/editor/components/EditProductLink.js +1 -0
  21. package/dist/editor/components/EditorCurrencyProvider.d.ts +7 -0
  22. package/dist/editor/components/EditorCurrencyProvider.js +1 -0
  23. package/dist/editor/components/EditorPreviewChat.d.ts +1 -0
  24. package/dist/editor/components/EditorPreviewChat.js +11 -0
  25. package/dist/editor/components/EditorPreviewCheckout.d.ts +1 -0
  26. package/dist/editor/components/EditorPreviewCheckout.js +1 -0
  27. package/dist/editor/components/EditorPreviewSurface.d.ts +5 -0
  28. package/dist/editor/components/EditorPreviewSurface.js +1 -0
  29. package/dist/editor/components/FinishPicker.d.ts +6 -0
  30. package/dist/editor/components/FinishPicker.js +1 -0
  31. package/dist/editor/components/FooterColumnsField.d.ts +6 -0
  32. package/dist/editor/components/FooterColumnsField.js +1 -0
  33. package/dist/editor/components/FooterLogoFillField.d.ts +6 -0
  34. package/dist/editor/components/FooterLogoFillField.js +1 -0
  35. package/dist/editor/components/FooterLogoRowFillField.d.ts +6 -0
  36. package/dist/editor/components/FooterLogoRowFillField.js +1 -0
  37. package/dist/editor/components/FormPicker.d.ts +33 -0
  38. package/dist/editor/components/FormPicker.js +1 -0
  39. package/dist/editor/components/GalleryProductBinding.d.ts +7 -0
  40. package/dist/editor/components/GalleryProductBinding.js +1 -0
  41. package/dist/editor/components/GalleryShowcaseSource.d.ts +7 -0
  42. package/dist/editor/components/GalleryShowcaseSource.js +1 -0
  43. package/dist/editor/components/HeaderSection.d.ts +3 -0
  44. package/dist/editor/components/HeaderSection.js +1 -0
  45. package/dist/editor/components/HeaderSettingsPanel.d.ts +132 -0
  46. package/dist/editor/components/HeaderSettingsPanel.js +1 -0
  47. package/dist/editor/components/MenuLinkRangeField.d.ts +5 -0
  48. package/dist/editor/components/MenuLinkRangeField.js +1 -0
  49. package/dist/editor/components/MenuPicker.d.ts +7 -0
  50. package/dist/editor/components/MenuPicker.js +1 -0
  51. package/dist/editor/components/PerViewStepperField.d.ts +13 -0
  52. package/dist/editor/components/PerViewStepperField.js +1 -0
  53. package/dist/editor/components/PreviewHeader.d.ts +2 -0
  54. package/dist/editor/components/PreviewHeader.js +11 -0
  55. package/dist/editor/components/PreviewHeaderPrimer.d.ts +4 -0
  56. package/dist/editor/components/PreviewHeaderPrimer.js +1 -0
  57. package/dist/editor/components/PreviewMenusPrimer.d.ts +3 -0
  58. package/dist/editor/components/PreviewMenusPrimer.js +1 -0
  59. package/dist/editor/components/PreviewProductPicker.d.ts +20 -0
  60. package/dist/editor/components/PreviewProductPicker.js +1 -0
  61. package/dist/editor/components/ProductHeroSource.d.ts +19 -0
  62. package/dist/editor/components/ProductHeroSource.js +1 -0
  63. package/dist/editor/components/ProductPicker.d.ts +6 -0
  64. package/dist/editor/components/ProductPicker.js +1 -0
  65. package/dist/editor/components/SocialLinksDoor.d.ts +1 -0
  66. package/dist/editor/components/SocialLinksDoor.js +1 -0
  67. package/dist/editor/components/SpecTableSource.d.ts +7 -0
  68. package/dist/editor/components/SpecTableSource.js +1 -0
  69. package/dist/editor/components/StorefrontEditorFurniture.d.ts +6 -0
  70. package/dist/editor/components/StorefrontEditorFurniture.js +1 -0
  71. package/dist/editor/components/StorefrontHeaderPanel.d.ts +2 -0
  72. package/dist/editor/components/StorefrontHeaderPanel.js +1 -0
  73. package/dist/editor/components/StorefrontLinkRows.d.ts +5 -0
  74. package/dist/editor/components/StorefrontLinkRows.js +1 -0
  75. package/dist/editor/components/StorefrontShopRows.d.ts +2 -0
  76. package/dist/editor/components/StorefrontShopRows.js +1 -0
  77. package/dist/editor/components/SwitchToBoxHeader.d.ts +1 -0
  78. package/dist/editor/components/SwitchToBoxHeader.js +1 -0
  79. package/dist/editor/components/WheelsPerRowField.d.ts +6 -0
  80. package/dist/editor/components/WheelsPerRowField.js +1 -0
  81. package/dist/editor/components/useCategoryFilter.d.ts +11 -0
  82. package/dist/editor/components/useCategoryFilter.js +1 -0
  83. package/dist/editor/components/useGridSourceLock.d.ts +1 -0
  84. package/dist/editor/components/useGridSourceLock.js +1 -0
  85. package/dist/editor/components/useStorefrontCategories.d.ts +2 -0
  86. package/dist/editor/components/useStorefrontCategories.js +1 -0
  87. package/dist/editor/components/useStorefrontForms.d.ts +2 -0
  88. package/dist/editor/components/useStorefrontForms.js +1 -0
  89. package/dist/editor/components/useWheelMediaGroups.d.ts +2 -0
  90. package/dist/editor/components/useWheelMediaGroups.js +1 -0
  91. package/dist/editor/lib/api/section-templates.d.ts +43 -0
  92. package/dist/editor/lib/api/section-templates.js +1 -0
  93. package/dist/editor/lib/editor-currency-source.d.ts +11 -0
  94. package/dist/editor/lib/editor-currency-source.js +1 -0
  95. package/dist/editor/lib/efficient-backend.d.ts +21 -0
  96. package/dist/editor/lib/efficient-backend.js +1 -0
  97. package/dist/editor/lib/header-settings-source.d.ts +7 -0
  98. package/dist/editor/lib/header-settings-source.js +1 -0
  99. package/dist/editor/lib/puck/blocks/commerce/AccountBlock/fields.d.ts +2 -0
  100. package/dist/editor/lib/puck/blocks/commerce/AccountBlock/fields.js +1 -0
  101. package/dist/editor/lib/puck/blocks/commerce/AlloyWheelsListing/fields.d.ts +2 -0
  102. package/dist/editor/lib/puck/blocks/commerce/AlloyWheelsListing/fields.js +1 -0
  103. package/dist/editor/lib/puck/blocks/commerce/BundleOffer/fields.d.ts +2 -0
  104. package/dist/editor/lib/puck/blocks/commerce/BundleOffer/fields.js +1 -0
  105. package/dist/editor/lib/puck/blocks/commerce/CartBlock/fields.d.ts +2 -0
  106. package/dist/editor/lib/puck/blocks/commerce/CartBlock/fields.js +1 -0
  107. package/dist/editor/lib/puck/blocks/commerce/CatalogFilterBar/fields.d.ts +2 -0
  108. package/dist/editor/lib/puck/blocks/commerce/CatalogFilterBar/fields.js +1 -0
  109. package/dist/editor/lib/puck/blocks/commerce/CheckoutCTA/fields.d.ts +2 -0
  110. package/dist/editor/lib/puck/blocks/commerce/CheckoutCTA/fields.js +1 -0
  111. package/dist/editor/lib/puck/blocks/commerce/CollectionCard/fields.d.ts +2 -0
  112. package/dist/editor/lib/puck/blocks/commerce/CollectionCard/fields.js +1 -0
  113. package/dist/editor/lib/puck/blocks/commerce/Collections/fields.d.ts +2 -0
  114. package/dist/editor/lib/puck/blocks/commerce/Collections/fields.js +1 -0
  115. package/dist/editor/lib/puck/blocks/commerce/CompatibleTyres/fields.d.ts +2 -0
  116. package/dist/editor/lib/puck/blocks/commerce/CompatibleTyres/fields.js +1 -0
  117. package/dist/editor/lib/puck/blocks/commerce/CountrySwitchBlock/fields.d.ts +2 -0
  118. package/dist/editor/lib/puck/blocks/commerce/CountrySwitchBlock/fields.js +1 -0
  119. package/dist/editor/lib/puck/blocks/commerce/DeliveryOptions/fields.d.ts +2 -0
  120. package/dist/editor/lib/puck/blocks/commerce/DeliveryOptions/fields.js +1 -0
  121. package/dist/editor/lib/puck/blocks/commerce/DetailRows/fields.d.ts +2 -0
  122. package/dist/editor/lib/puck/blocks/commerce/DetailRows/fields.js +1 -0
  123. package/dist/editor/lib/puck/blocks/commerce/EuTyreLabel/fields.d.ts +2 -0
  124. package/dist/editor/lib/puck/blocks/commerce/EuTyreLabel/fields.js +1 -0
  125. package/dist/editor/lib/puck/blocks/commerce/FitmentFinder/fields.d.ts +2 -0
  126. package/dist/editor/lib/puck/blocks/commerce/FitmentFinder/fields.js +1 -0
  127. package/dist/editor/lib/puck/blocks/commerce/FitmentTable/fields.d.ts +2 -0
  128. package/dist/editor/lib/puck/blocks/commerce/FitmentTable/fields.js +1 -0
  129. package/dist/editor/lib/puck/blocks/commerce/Gallery/fields.d.ts +2 -0
  130. package/dist/editor/lib/puck/blocks/commerce/Gallery/fields.js +1 -0
  131. package/dist/editor/lib/puck/blocks/commerce/GalleryB/fields.d.ts +2 -0
  132. package/dist/editor/lib/puck/blocks/commerce/GalleryB/fields.js +1 -0
  133. package/dist/editor/lib/puck/blocks/commerce/GalleryItem/fields.d.ts +2 -0
  134. package/dist/editor/lib/puck/blocks/commerce/GalleryItem/fields.js +1 -0
  135. package/dist/editor/lib/puck/blocks/commerce/Header/fields.d.ts +2 -0
  136. package/dist/editor/lib/puck/blocks/commerce/Header/fields.js +1 -0
  137. package/dist/editor/lib/puck/blocks/commerce/ProductGrid/fields.d.ts +2 -0
  138. package/dist/editor/lib/puck/blocks/commerce/ProductGrid/fields.js +1 -0
  139. package/dist/editor/lib/puck/blocks/commerce/ProductHero/fields.d.ts +2 -0
  140. package/dist/editor/lib/puck/blocks/commerce/ProductHero/fields.js +1 -0
  141. package/dist/editor/lib/puck/blocks/commerce/ProductRef/fields.d.ts +2 -0
  142. package/dist/editor/lib/puck/blocks/commerce/ProductRef/fields.js +1 -0
  143. package/dist/editor/lib/puck/blocks/commerce/RelatedProducts/fields.d.ts +2 -0
  144. package/dist/editor/lib/puck/blocks/commerce/RelatedProducts/fields.js +1 -0
  145. package/dist/editor/lib/puck/blocks/commerce/SearchBlock/fields.d.ts +2 -0
  146. package/dist/editor/lib/puck/blocks/commerce/SearchBlock/fields.js +1 -0
  147. package/dist/editor/lib/puck/blocks/commerce/SpecTable/fields.d.ts +2 -0
  148. package/dist/editor/lib/puck/blocks/commerce/SpecTable/fields.js +1 -0
  149. package/dist/editor/lib/puck/blocks/commerce/ThemeSwitchBlock/fields.d.ts +2 -0
  150. package/dist/editor/lib/puck/blocks/commerce/ThemeSwitchBlock/fields.js +1 -0
  151. package/dist/editor/lib/puck/blocks/commerce/TyreFitment/fields.d.ts +2 -0
  152. package/dist/editor/lib/puck/blocks/commerce/TyreFitment/fields.js +1 -0
  153. package/dist/editor/lib/puck/blocks/commerce/TyreSizes/fields.d.ts +2 -0
  154. package/dist/editor/lib/puck/blocks/commerce/TyreSizes/fields.js +1 -0
  155. package/dist/editor/lib/puck/blocks/commerce/controls.d.ts +15 -0
  156. package/dist/editor/lib/puck/blocks/commerce/controls.js +1 -0
  157. package/dist/editor/lib/puck/blocks/commerce/index.d.ts +1 -0
  158. package/dist/editor/lib/puck/blocks/commerce/index.js +1 -0
  159. package/dist/editor/lib/puck/blocks/commerce/page-rules.d.ts +8 -0
  160. package/dist/editor/lib/puck/blocks/commerce/page-rules.js +1 -0
  161. package/dist/editor/lib/puck/blocks/commerce/shared-fields.d.ts +5 -0
  162. package/dist/editor/lib/puck/blocks/commerce/shared-fields.js +1 -0
  163. package/dist/editor/lib/puck/blocks/service/AppointmentBooking/fields.d.ts +2 -0
  164. package/dist/editor/lib/puck/blocks/service/AppointmentBooking/fields.js +1 -0
  165. package/dist/editor/lib/puck/blocks/service/BookingBox/fields.d.ts +2 -0
  166. package/dist/editor/lib/puck/blocks/service/BookingBox/fields.js +1 -0
  167. package/dist/editor/lib/puck/blocks/service/ContactRouting/fields.d.ts +2 -0
  168. package/dist/editor/lib/puck/blocks/service/ContactRouting/fields.js +1 -0
  169. package/dist/editor/lib/puck/blocks/service/Events/fields.d.ts +2 -0
  170. package/dist/editor/lib/puck/blocks/service/Events/fields.js +1 -0
  171. package/dist/editor/lib/puck/blocks/service/Footer/fields.d.ts +2 -0
  172. package/dist/editor/lib/puck/blocks/service/Footer/fields.js +1 -0
  173. package/dist/editor/lib/puck/blocks/service/FooterDivider/fields.d.ts +2 -0
  174. package/dist/editor/lib/puck/blocks/service/FooterDivider/fields.js +1 -0
  175. package/dist/editor/lib/puck/blocks/service/FooterEmailSignup/fields.d.ts +2 -0
  176. package/dist/editor/lib/puck/blocks/service/FooterEmailSignup/fields.js +1 -0
  177. package/dist/editor/lib/puck/blocks/service/FooterGroup/fields.d.ts +2 -0
  178. package/dist/editor/lib/puck/blocks/service/FooterGroup/fields.js +1 -0
  179. package/dist/editor/lib/puck/blocks/service/FooterLogo/fields.d.ts +2 -0
  180. package/dist/editor/lib/puck/blocks/service/FooterLogo/fields.js +1 -0
  181. package/dist/editor/lib/puck/blocks/service/FooterMenu/fields.d.ts +2 -0
  182. package/dist/editor/lib/puck/blocks/service/FooterMenu/fields.js +1 -0
  183. package/dist/editor/lib/puck/blocks/service/FooterSocial/fields.d.ts +2 -0
  184. package/dist/editor/lib/puck/blocks/service/FooterSocial/fields.js +1 -0
  185. package/dist/editor/lib/puck/blocks/service/FooterText/fields.d.ts +2 -0
  186. package/dist/editor/lib/puck/blocks/service/FooterText/fields.js +1 -0
  187. package/dist/editor/lib/puck/blocks/service/Form/fields.d.ts +2 -0
  188. package/dist/editor/lib/puck/blocks/service/Form/fields.js +1 -0
  189. package/dist/editor/lib/puck/blocks/service/LegalLineBlock/fields.d.ts +2 -0
  190. package/dist/editor/lib/puck/blocks/service/LegalLineBlock/fields.js +1 -0
  191. package/dist/editor/lib/puck/blocks/service/ReviewForm/fields.d.ts +2 -0
  192. package/dist/editor/lib/puck/blocks/service/ReviewForm/fields.js +1 -0
  193. package/dist/editor/lib/puck/blocks/service/Reviews/fields.d.ts +2 -0
  194. package/dist/editor/lib/puck/blocks/service/Reviews/fields.js +1 -0
  195. package/dist/editor/lib/puck/blocks/service/SiteFooter/fields.d.ts +2 -0
  196. package/dist/editor/lib/puck/blocks/service/SiteFooter/fields.js +1 -0
  197. package/dist/editor/lib/puck/blocks/service/SiteHeader/fields.d.ts +2 -0
  198. package/dist/editor/lib/puck/blocks/service/SiteHeader/fields.js +1 -0
  199. package/dist/editor/lib/puck/blocks/service/SubmitBox/fields.d.ts +2 -0
  200. package/dist/editor/lib/puck/blocks/service/SubmitBox/fields.js +1 -0
  201. package/dist/editor/lib/puck/blocks/service/SubmitBuild/fields.d.ts +2 -0
  202. package/dist/editor/lib/puck/blocks/service/SubmitBuild/fields.js +1 -0
  203. package/dist/editor/lib/puck/blocks/service/Subscribe/fields.d.ts +2 -0
  204. package/dist/editor/lib/puck/blocks/service/Subscribe/fields.js +1 -0
  205. package/dist/editor/lib/puck/blocks/service/SubscribeBlogs/fields.d.ts +2 -0
  206. package/dist/editor/lib/puck/blocks/service/SubscribeBlogs/fields.js +1 -0
  207. package/dist/editor/lib/puck/blocks/service/controls.d.ts +2 -0
  208. package/dist/editor/lib/puck/blocks/service/controls.js +1 -0
  209. package/dist/editor/lib/puck/blocks/service/index.d.ts +1 -0
  210. package/dist/editor/lib/puck/blocks/service/index.js +1 -0
  211. package/dist/editor/lib/puck/blocks/service/placeholders.d.ts +1 -0
  212. package/dist/editor/lib/puck/blocks/service/placeholders.js +1 -0
  213. package/dist/editor/lib/puck/box-header-for-site.d.ts +9 -0
  214. package/dist/editor/lib/puck/box-header-for-site.js +1 -0
  215. package/dist/editor/lib/puck/box-header.d.ts +52 -0
  216. package/dist/editor/lib/puck/box-header.js +1 -0
  217. package/dist/editor/lib/puck/config.d.ts +73 -0
  218. package/dist/editor/lib/puck/config.js +1 -0
  219. package/dist/editor/lib/say-with.d.ts +2 -0
  220. package/dist/editor/lib/say-with.js +1 -0
  221. package/dist/editor/lib/storefront-document.d.ts +2 -0
  222. package/dist/editor/lib/storefront-document.js +1 -0
  223. package/dist/editor/lib/storefront-editor-words.d.ts +693 -0
  224. package/dist/editor/lib/storefront-editor-words.js +1 -0
  225. package/dist/editor/lib/storefront-editor.d.ts +9 -0
  226. package/dist/editor/lib/storefront-editor.js +1 -0
  227. package/dist/editor/lib/storefront-shop-surfaces.d.ts +8 -0
  228. package/dist/editor/lib/storefront-shop-surfaces.js +1 -0
  229. package/dist/editor/lib/use-prime-and-refresh.d.ts +16 -0
  230. package/dist/editor/lib/use-prime-and-refresh.js +1 -0
  231. package/dist/editor.css +1 -1
  232. package/dist/index.d.ts +14 -0
  233. package/dist/index.js +69 -52
  234. package/dist/render/app/fonts/archivo/OFL.txt +93 -0
  235. package/dist/render/app/fonts/archivo/latin-ext-italic.woff2 +0 -0
  236. package/dist/render/app/fonts/archivo/latin-ext.woff2 +0 -0
  237. package/dist/render/app/fonts/archivo/latin-italic.woff2 +0 -0
  238. package/dist/render/app/fonts/archivo/latin.woff2 +0 -0
  239. package/dist/render/app/fonts/archivo/vietnamese-italic.woff2 +0 -0
  240. package/dist/render/app/fonts/archivo/vietnamese.woff2 +0 -0
  241. package/dist/render/app/fonts/assistant/OFL.txt +95 -0
  242. package/dist/render/app/fonts/assistant/hebrew.woff2 +0 -0
  243. package/dist/render/app/fonts/assistant/latin-ext.woff2 +0 -0
  244. package/dist/render/app/fonts/assistant/latin.woff2 +0 -0
  245. package/dist/render/app/fonts/big-shoulders/OFL.txt +93 -0
  246. package/dist/render/app/fonts/big-shoulders/latin-ext.woff2 +0 -0
  247. package/dist/render/app/fonts/big-shoulders/latin.woff2 +0 -0
  248. package/dist/render/app/fonts/big-shoulders/vietnamese.woff2 +0 -0
  249. package/dist/render/app/fonts/cormorant/OFL.txt +93 -0
  250. package/dist/render/app/fonts/cormorant/cyrillic-ext-italic.woff2 +0 -0
  251. package/dist/render/app/fonts/cormorant/cyrillic-ext.woff2 +0 -0
  252. package/dist/render/app/fonts/cormorant/cyrillic-italic.woff2 +0 -0
  253. package/dist/render/app/fonts/cormorant/cyrillic.woff2 +0 -0
  254. package/dist/render/app/fonts/cormorant/latin-ext-italic.woff2 +0 -0
  255. package/dist/render/app/fonts/cormorant/latin-ext.woff2 +0 -0
  256. package/dist/render/app/fonts/cormorant/latin-italic.woff2 +0 -0
  257. package/dist/render/app/fonts/cormorant/latin.woff2 +0 -0
  258. package/dist/render/app/fonts/cormorant/vietnamese-italic.woff2 +0 -0
  259. package/dist/render/app/fonts/cormorant/vietnamese.woff2 +0 -0
  260. package/dist/render/app/fonts/dm-sans/OFL.txt +93 -0
  261. package/dist/render/app/fonts/dm-sans/latin-ext-italic.woff2 +0 -0
  262. package/dist/render/app/fonts/dm-sans/latin-ext.woff2 +0 -0
  263. package/dist/render/app/fonts/dm-sans/latin-italic.woff2 +0 -0
  264. package/dist/render/app/fonts/dm-sans/latin.woff2 +0 -0
  265. package/dist/render/app/fonts/fallbacks.css +133 -0
  266. package/dist/render/app/fonts/fraunces/OFL.txt +93 -0
  267. package/dist/render/app/fonts/fraunces/latin-ext-italic.woff2 +0 -0
  268. package/dist/render/app/fonts/fraunces/latin-ext.woff2 +0 -0
  269. package/dist/render/app/fonts/fraunces/latin-italic.woff2 +0 -0
  270. package/dist/render/app/fonts/fraunces/latin.woff2 +0 -0
  271. package/dist/render/app/fonts/fraunces/vietnamese-italic.woff2 +0 -0
  272. package/dist/render/app/fonts/fraunces/vietnamese.woff2 +0 -0
  273. package/dist/render/app/fonts/inter/OFL.txt +93 -0
  274. package/dist/render/app/fonts/inter/cyrillic-ext-italic.woff2 +0 -0
  275. package/dist/render/app/fonts/inter/cyrillic-ext.woff2 +0 -0
  276. package/dist/render/app/fonts/inter/cyrillic-italic.woff2 +0 -0
  277. package/dist/render/app/fonts/inter/cyrillic.woff2 +0 -0
  278. package/dist/render/app/fonts/inter/greek-ext-italic.woff2 +0 -0
  279. package/dist/render/app/fonts/inter/greek-ext.woff2 +0 -0
  280. package/dist/render/app/fonts/inter/greek-italic.woff2 +0 -0
  281. package/dist/render/app/fonts/inter/greek.woff2 +0 -0
  282. package/dist/render/app/fonts/inter/latin-ext-italic.woff2 +0 -0
  283. package/dist/render/app/fonts/inter/latin-ext.woff2 +0 -0
  284. package/dist/render/app/fonts/inter/latin-italic.woff2 +0 -0
  285. package/dist/render/app/fonts/inter/latin.woff2 +0 -0
  286. package/dist/render/app/fonts/inter/vietnamese-italic.woff2 +0 -0
  287. package/dist/render/app/fonts/inter/vietnamese.woff2 +0 -0
  288. package/dist/render/app/fonts/jetbrains-mono/OFL.txt +93 -0
  289. package/dist/render/app/fonts/jetbrains-mono/cyrillic-ext-italic.woff2 +0 -0
  290. package/dist/render/app/fonts/jetbrains-mono/cyrillic-ext.woff2 +0 -0
  291. package/dist/render/app/fonts/jetbrains-mono/cyrillic-italic.woff2 +0 -0
  292. package/dist/render/app/fonts/jetbrains-mono/cyrillic.woff2 +0 -0
  293. package/dist/render/app/fonts/jetbrains-mono/greek-italic.woff2 +0 -0
  294. package/dist/render/app/fonts/jetbrains-mono/greek.woff2 +0 -0
  295. package/dist/render/app/fonts/jetbrains-mono/latin-ext-italic.woff2 +0 -0
  296. package/dist/render/app/fonts/jetbrains-mono/latin-ext.woff2 +0 -0
  297. package/dist/render/app/fonts/jetbrains-mono/latin-italic.woff2 +0 -0
  298. package/dist/render/app/fonts/jetbrains-mono/latin.woff2 +0 -0
  299. package/dist/render/app/fonts/jetbrains-mono/vietnamese-italic.woff2 +0 -0
  300. package/dist/render/app/fonts/jetbrains-mono/vietnamese.woff2 +0 -0
  301. package/dist/render/app/fonts/manrope/OFL.txt +93 -0
  302. package/dist/render/app/fonts/manrope/cyrillic-ext.woff2 +0 -0
  303. package/dist/render/app/fonts/manrope/cyrillic.woff2 +0 -0
  304. package/dist/render/app/fonts/manrope/greek.woff2 +0 -0
  305. package/dist/render/app/fonts/manrope/latin-ext.woff2 +0 -0
  306. package/dist/render/app/fonts/manrope/latin.woff2 +0 -0
  307. package/dist/render/app/fonts/manrope/vietnamese.woff2 +0 -0
  308. package/dist/render/app/fonts/michroma/OFL.txt +93 -0
  309. package/dist/render/app/fonts/michroma/latin-ext.woff2 +0 -0
  310. package/dist/render/app/fonts/michroma/latin.woff2 +0 -0
  311. package/dist/render/app/fonts/oswald/OFL.txt +93 -0
  312. package/dist/render/app/fonts/oswald/cyrillic-ext.woff2 +0 -0
  313. package/dist/render/app/fonts/oswald/cyrillic.woff2 +0 -0
  314. package/dist/render/app/fonts/oswald/latin-ext.woff2 +0 -0
  315. package/dist/render/app/fonts/oswald/latin.woff2 +0 -0
  316. package/dist/render/app/fonts/oswald/vietnamese.woff2 +0 -0
  317. package/dist/render/app/fonts/outfit/OFL.txt +93 -0
  318. package/dist/render/app/fonts/outfit/latin-ext.woff2 +0 -0
  319. package/dist/render/app/fonts/outfit/latin.woff2 +0 -0
  320. package/dist/render/app/fonts/playfair-display/OFL.txt +93 -0
  321. package/dist/render/app/fonts/playfair-display/cyrillic-italic.woff2 +0 -0
  322. package/dist/render/app/fonts/playfair-display/cyrillic.woff2 +0 -0
  323. package/dist/render/app/fonts/playfair-display/latin-ext-italic.woff2 +0 -0
  324. package/dist/render/app/fonts/playfair-display/latin-ext.woff2 +0 -0
  325. package/dist/render/app/fonts/playfair-display/latin-italic.woff2 +0 -0
  326. package/dist/render/app/fonts/playfair-display/latin.woff2 +0 -0
  327. package/dist/render/app/fonts/playfair-display/vietnamese-italic.woff2 +0 -0
  328. package/dist/render/app/fonts/playfair-display/vietnamese.woff2 +0 -0
  329. package/dist/render/app/fonts/poppins/OFL.txt +93 -0
  330. package/dist/render/app/fonts/poppins/devanagari-400.woff2 +0 -0
  331. package/dist/render/app/fonts/poppins/devanagari-500.woff2 +0 -0
  332. package/dist/render/app/fonts/poppins/devanagari-600.woff2 +0 -0
  333. package/dist/render/app/fonts/poppins/devanagari-italic-400.woff2 +0 -0
  334. package/dist/render/app/fonts/poppins/devanagari-italic-500.woff2 +0 -0
  335. package/dist/render/app/fonts/poppins/devanagari-italic-600.woff2 +0 -0
  336. package/dist/render/app/fonts/poppins/latin-400.woff2 +0 -0
  337. package/dist/render/app/fonts/poppins/latin-500.woff2 +0 -0
  338. package/dist/render/app/fonts/poppins/latin-600.woff2 +0 -0
  339. package/dist/render/app/fonts/poppins/latin-ext-400.woff2 +0 -0
  340. package/dist/render/app/fonts/poppins/latin-ext-500.woff2 +0 -0
  341. package/dist/render/app/fonts/poppins/latin-ext-600.woff2 +0 -0
  342. package/dist/render/app/fonts/poppins/latin-ext-italic-400.woff2 +0 -0
  343. package/dist/render/app/fonts/poppins/latin-ext-italic-500.woff2 +0 -0
  344. package/dist/render/app/fonts/poppins/latin-ext-italic-600.woff2 +0 -0
  345. package/dist/render/app/fonts/poppins/latin-italic-400.woff2 +0 -0
  346. package/dist/render/app/fonts/poppins/latin-italic-500.woff2 +0 -0
  347. package/dist/render/app/fonts/poppins/latin-italic-600.woff2 +0 -0
  348. package/dist/render/app/fonts/sora/OFL.txt +93 -0
  349. package/dist/render/app/fonts/sora/latin-ext.woff2 +0 -0
  350. package/dist/render/app/fonts/sora/latin.woff2 +0 -0
  351. package/dist/render/app/fonts/space-grotesk/OFL.txt +93 -0
  352. package/dist/render/app/fonts/space-grotesk/latin-ext.woff2 +0 -0
  353. package/dist/render/app/fonts/space-grotesk/latin.woff2 +0 -0
  354. package/dist/render/app/fonts/space-grotesk/vietnamese.woff2 +0 -0
  355. package/dist/render/app/globals.css +3264 -0
  356. package/dist/render/built-with.json +3 -0
  357. package/dist/render/components/AppointmentBooking.d.ts +14 -0
  358. package/dist/render/components/AppointmentBooking.js +1 -0
  359. package/dist/render/components/AssistantChatMount.d.ts +8 -0
  360. package/dist/render/components/AssistantChatMount.js +1 -0
  361. package/dist/render/components/AssistantChatPanel.d.ts +7 -0
  362. package/dist/render/components/AssistantChatPanel.js +1 -0
  363. package/dist/render/components/BoxHeaderBar.d.ts +10 -0
  364. package/dist/render/components/BoxHeaderBar.js +1 -0
  365. package/dist/render/components/BrandPlate.d.ts +4 -0
  366. package/dist/render/components/BrandPlate.js +1 -0
  367. package/dist/render/components/BundleCard.d.ts +6 -0
  368. package/dist/render/components/BundleCard.js +1 -0
  369. package/dist/render/components/CartContext.d.ts +91 -0
  370. package/dist/render/components/CartContext.js +1 -0
  371. package/dist/render/components/CartDrawer.d.ts +12 -0
  372. package/dist/render/components/CartDrawer.js +4 -0
  373. package/dist/render/components/CartLineThumbnail.d.ts +8 -0
  374. package/dist/render/components/CartLineThumbnail.js +1 -0
  375. package/dist/render/components/CatalogFilterBarSection.d.ts +12 -0
  376. package/dist/render/components/CatalogFilterBarSection.js +1 -0
  377. package/dist/render/components/ChatContext.d.ts +23 -0
  378. package/dist/render/components/ChatContext.js +1 -0
  379. package/dist/render/components/ChatLauncher.d.ts +18 -0
  380. package/dist/render/components/ChatLauncher.js +1 -0
  381. package/dist/render/components/ChatWidget.d.ts +12 -0
  382. package/dist/render/components/ChatWidget.js +1 -0
  383. package/dist/render/components/CheckoutCTA.d.ts +12 -0
  384. package/dist/render/components/CheckoutCTA.js +1 -0
  385. package/dist/render/components/CollectionCard.d.ts +27 -0
  386. package/dist/render/components/CollectionCard.js +1 -0
  387. package/dist/render/components/Collections.d.ts +17 -0
  388. package/dist/render/components/Collections.js +1 -0
  389. package/dist/render/components/CompatibleTyres.d.ts +23 -0
  390. package/dist/render/components/CompatibleTyres.js +1 -0
  391. package/dist/render/components/ConsentBanner.d.ts +20 -0
  392. package/dist/render/components/ConsentBanner.js +1 -0
  393. package/dist/render/components/ConsentContext.d.ts +22 -0
  394. package/dist/render/components/ConsentContext.js +1 -0
  395. package/dist/render/components/ConsentPanel.d.ts +15 -0
  396. package/dist/render/components/ConsentPanel.js +1 -0
  397. package/dist/render/components/ConsentProvider.d.ts +7 -0
  398. package/dist/render/components/ConsentProvider.js +1 -0
  399. package/dist/render/components/ContactRouting.d.ts +33 -0
  400. package/dist/render/components/ContactRouting.js +1 -0
  401. package/dist/render/components/CountrySelect.d.ts +7 -0
  402. package/dist/render/components/CountrySelect.js +1 -0
  403. package/dist/render/components/CouponField.d.ts +3 -0
  404. package/dist/render/components/CouponField.js +1 -0
  405. package/dist/render/components/CurrencyContext.d.ts +27 -0
  406. package/dist/render/components/CurrencyContext.js +1 -0
  407. package/dist/render/components/DeliveryOptions.d.ts +18 -0
  408. package/dist/render/components/DeliveryOptions.js +1 -0
  409. package/dist/render/components/DeliveryOptionsSource.d.ts +8 -0
  410. package/dist/render/components/DeliveryOptionsSource.js +1 -0
  411. package/dist/render/components/DetailRows.d.ts +22 -0
  412. package/dist/render/components/DetailRows.js +1 -0
  413. package/dist/render/components/DimensionArrowMarkers.d.ts +3 -0
  414. package/dist/render/components/DimensionArrowMarkers.js +1 -0
  415. package/dist/render/components/EditorCurrencyNoticeContext.d.ts +7 -0
  416. package/dist/render/components/EditorCurrencyNoticeContext.js +1 -0
  417. package/dist/render/components/EmailCaptureForm.d.ts +15 -0
  418. package/dist/render/components/EmailCaptureForm.js +1 -0
  419. package/dist/render/components/EnglishVariant.d.ts +7 -0
  420. package/dist/render/components/EnglishVariant.js +1 -0
  421. package/dist/render/components/EuTyreLabelCard.d.ts +4 -0
  422. package/dist/render/components/EuTyreLabelCard.js +1 -0
  423. package/dist/render/components/EuTyreLabels.d.ts +7 -0
  424. package/dist/render/components/EuTyreLabels.js +1 -0
  425. package/dist/render/components/Events.d.ts +62 -0
  426. package/dist/render/components/Events.js +1 -0
  427. package/dist/render/components/FinishSwatches.d.ts +14 -0
  428. package/dist/render/components/FinishSwatches.js +1 -0
  429. package/dist/render/components/FitmentTable.d.ts +17 -0
  430. package/dist/render/components/FitmentTable.js +1 -0
  431. package/dist/render/components/FooterDivider.d.ts +6 -0
  432. package/dist/render/components/FooterDivider.js +1 -0
  433. package/dist/render/components/FooterEmailSignup.d.ts +6 -0
  434. package/dist/render/components/FooterEmailSignup.js +1 -0
  435. package/dist/render/components/FooterGroup.d.ts +8 -0
  436. package/dist/render/components/FooterGroup.js +1 -0
  437. package/dist/render/components/FooterLogo.d.ts +13 -0
  438. package/dist/render/components/FooterLogo.js +1 -0
  439. package/dist/render/components/FooterMenu.d.ts +25 -0
  440. package/dist/render/components/FooterMenu.js +1 -0
  441. package/dist/render/components/FooterSection.d.ts +11 -0
  442. package/dist/render/components/FooterSection.js +1 -0
  443. package/dist/render/components/FooterSocial.d.ts +16 -0
  444. package/dist/render/components/FooterSocial.js +1 -0
  445. package/dist/render/components/FooterText.d.ts +7 -0
  446. package/dist/render/components/FooterText.js +1 -0
  447. package/dist/render/components/FormBlock.d.ts +19 -0
  448. package/dist/render/components/FormBlock.js +1 -0
  449. package/dist/render/components/GalleryCard.d.ts +28 -0
  450. package/dist/render/components/GalleryCard.js +1 -0
  451. package/dist/render/components/GalleryGrid.d.ts +20 -0
  452. package/dist/render/components/GalleryGrid.js +1 -0
  453. package/dist/render/components/GalleryItem.d.ts +41 -0
  454. package/dist/render/components/GalleryItem.js +1 -0
  455. package/dist/render/components/GalleryShowcase.d.ts +51 -0
  456. package/dist/render/components/GalleryShowcase.js +1 -0
  457. package/dist/render/components/Header.d.ts +13 -0
  458. package/dist/render/components/Header.js +1 -0
  459. package/dist/render/components/HeaderNavItem.d.ts +17 -0
  460. package/dist/render/components/HeaderNavItem.js +1 -0
  461. package/dist/render/components/HeaderToolBlocks.d.ts +18 -0
  462. package/dist/render/components/HeaderToolBlocks.js +1 -0
  463. package/dist/render/components/HeaderTools.d.ts +21 -0
  464. package/dist/render/components/HeaderTools.js +1 -0
  465. package/dist/render/components/LegalLine.d.ts +4 -0
  466. package/dist/render/components/LegalLine.js +1 -0
  467. package/dist/render/components/Lightbox.d.ts +19 -0
  468. package/dist/render/components/Lightbox.js +1 -0
  469. package/dist/render/components/LinkedProductHero.d.ts +34 -0
  470. package/dist/render/components/LinkedProductHero.js +1 -0
  471. package/dist/render/components/LiveSiteMapsProvider.d.ts +6 -0
  472. package/dist/render/components/LiveSiteMapsProvider.js +1 -0
  473. package/dist/render/components/MenuPlaceholderLabel.d.ts +1 -0
  474. package/dist/render/components/MenuPlaceholderLabel.js +1 -0
  475. package/dist/render/components/NoCurrencyNote.d.ts +4 -0
  476. package/dist/render/components/NoCurrencyNote.js +1 -0
  477. package/dist/render/components/PreOrderPanel.d.ts +5 -0
  478. package/dist/render/components/PreOrderPanel.js +1 -0
  479. package/dist/render/components/PreviewMenusContext.d.ts +13 -0
  480. package/dist/render/components/PreviewMenusContext.js +1 -0
  481. package/dist/render/components/ProductCard.d.ts +6 -0
  482. package/dist/render/components/ProductCard.js +1 -0
  483. package/dist/render/components/ProductCardChrome.d.ts +37 -0
  484. package/dist/render/components/ProductCardChrome.js +1 -0
  485. package/dist/render/components/ProductCardEyebrow.d.ts +14 -0
  486. package/dist/render/components/ProductCardEyebrow.js +1 -0
  487. package/dist/render/components/ProductGridSection.d.ts +65 -0
  488. package/dist/render/components/ProductGridSection.js +1 -0
  489. package/dist/render/components/ProductHeroPanel.d.ts +22 -0
  490. package/dist/render/components/ProductHeroPanel.js +1 -0
  491. package/dist/render/components/ProductLightbox.d.ts +5 -0
  492. package/dist/render/components/ProductLightbox.js +1 -0
  493. package/dist/render/components/ProductRef.d.ts +16 -0
  494. package/dist/render/components/ProductRef.js +1 -0
  495. package/dist/render/components/PublishedFooter.d.ts +16 -0
  496. package/dist/render/components/PublishedFooter.js +1 -0
  497. package/dist/render/components/PublishedHeader.d.ts +4 -0
  498. package/dist/render/components/PublishedHeader.js +1 -0
  499. package/dist/render/components/QuantityStepper.d.ts +7 -0
  500. package/dist/render/components/QuantityStepper.js +1 -0
  501. package/dist/render/components/QuoteLink.d.ts +4 -0
  502. package/dist/render/components/QuoteLink.js +1 -0
  503. package/dist/render/components/ReviewForm.d.ts +8 -0
  504. package/dist/render/components/ReviewForm.js +1 -0
  505. package/dist/render/components/Reviews.d.ts +12 -0
  506. package/dist/render/components/Reviews.js +1 -0
  507. package/dist/render/components/SearchContext.d.ts +13 -0
  508. package/dist/render/components/SearchContext.js +1 -0
  509. package/dist/render/components/SectionBand.d.ts +9 -0
  510. package/dist/render/components/SectionBand.js +1 -0
  511. package/dist/render/components/SectionFootnote.d.ts +5 -0
  512. package/dist/render/components/SectionFootnote.js +1 -0
  513. package/dist/render/components/SectionGroupBody.d.ts +9 -0
  514. package/dist/render/components/SectionGroupBody.js +1 -0
  515. package/dist/render/components/SectionNotice.d.ts +7 -0
  516. package/dist/render/components/SectionNotice.js +1 -0
  517. package/dist/render/components/SiteRecordContext.d.ts +17 -0
  518. package/dist/render/components/SiteRecordContext.js +1 -0
  519. package/dist/render/components/SiteSwitch.d.ts +10 -0
  520. package/dist/render/components/SiteSwitch.js +1 -0
  521. package/dist/render/components/SpecTable.d.ts +18 -0
  522. package/dist/render/components/SpecTable.js +1 -0
  523. package/dist/render/components/SpecTablePartBridge.d.ts +5 -0
  524. package/dist/render/components/SpecTablePartBridge.js +1 -0
  525. package/dist/render/components/StorefrontProviders.d.ts +15 -0
  526. package/dist/render/components/StorefrontProviders.js +1 -0
  527. package/dist/render/components/SubmitBuild.d.ts +23 -0
  528. package/dist/render/components/SubmitBuild.js +1 -0
  529. package/dist/render/components/Subscribe.d.ts +27 -0
  530. package/dist/render/components/Subscribe.js +1 -0
  531. package/dist/render/components/SubscribePopup.d.ts +19 -0
  532. package/dist/render/components/SubscribePopup.js +7 -0
  533. package/dist/render/components/SubscribePopupContext.d.ts +33 -0
  534. package/dist/render/components/SubscribePopupContext.js +1 -0
  535. package/dist/render/components/ThemeToggle.d.ts +1 -0
  536. package/dist/render/components/ThemeToggle.js +1 -0
  537. package/dist/render/components/ThemedSelect.d.ts +59 -0
  538. package/dist/render/components/ThemedSelect.js +1 -0
  539. package/dist/render/components/TyreCard.d.ts +19 -0
  540. package/dist/render/components/TyreCard.js +1 -0
  541. package/dist/render/components/TyreFitVerdicts.d.ts +7 -0
  542. package/dist/render/components/TyreFitVerdicts.js +1 -0
  543. package/dist/render/components/TyreImage.d.ts +10 -0
  544. package/dist/render/components/TyreImage.js +1 -0
  545. package/dist/render/components/TyrePlpCard.d.ts +19 -0
  546. package/dist/render/components/TyrePlpCard.js +1 -0
  547. package/dist/render/components/TyreRenderSvg.d.ts +7 -0
  548. package/dist/render/components/TyreRenderSvg.js +1 -0
  549. package/dist/render/components/TyreSummaryCard.d.ts +11 -0
  550. package/dist/render/components/TyreSummaryCard.js +1 -0
  551. package/dist/render/components/TyreVehicleFitment.d.ts +18 -0
  552. package/dist/render/components/TyreVehicleFitment.js +1 -0
  553. package/dist/render/components/ViewMoreLink.d.ts +4 -0
  554. package/dist/render/components/ViewMoreLink.js +1 -0
  555. package/dist/render/components/WebFormField.d.ts +17 -0
  556. package/dist/render/components/WebFormField.js +1 -0
  557. package/dist/render/components/WheelCardFrame.d.ts +67 -0
  558. package/dist/render/components/WheelCardFrame.js +1 -0
  559. package/dist/render/components/WheelImage.d.ts +20 -0
  560. package/dist/render/components/WheelImage.js +1 -0
  561. package/dist/render/components/WheelPlaceholder.d.ts +7 -0
  562. package/dist/render/components/WheelPlaceholder.js +1 -0
  563. package/dist/render/components/WheelSvg.d.ts +7 -0
  564. package/dist/render/components/WheelSvg.js +1 -0
  565. package/dist/render/components/WishlistContext.d.ts +13 -0
  566. package/dist/render/components/WishlistContext.js +1 -0
  567. package/dist/render/components/booking/BookingBox.d.ts +16 -0
  568. package/dist/render/components/booking/BookingBox.js +1 -0
  569. package/dist/render/components/booking/BookingFormState.d.ts +46 -0
  570. package/dist/render/components/booking/BookingFormState.js +1 -0
  571. package/dist/render/components/booking/BookingRegions.d.ts +16 -0
  572. package/dist/render/components/booking/BookingRegions.js +1 -0
  573. package/dist/render/components/buy-row.d.ts +1 -0
  574. package/dist/render/components/buy-row.js +1 -0
  575. package/dist/render/components/catalog/CatalogFilterBar.d.ts +55 -0
  576. package/dist/render/components/catalog/CatalogFilterBar.js +1 -0
  577. package/dist/render/components/catalog/CatalogFilterContext.d.ts +39 -0
  578. package/dist/render/components/catalog/CatalogFilterContext.js +1 -0
  579. package/dist/render/components/catalog/CatalogFilterLabels.d.ts +6 -0
  580. package/dist/render/components/catalog/CatalogFilterLabels.js +1 -0
  581. package/dist/render/components/catalog/CatalogVehiclePicker.d.ts +22 -0
  582. package/dist/render/components/catalog/CatalogVehiclePicker.js +1 -0
  583. package/dist/render/components/catalog/FilterPill.d.ts +25 -0
  584. package/dist/render/components/catalog/FilterPill.js +1 -0
  585. package/dist/render/components/catalog/SiteMenuLinks.d.ts +6 -0
  586. package/dist/render/components/catalog/SiteMenuLinks.js +1 -0
  587. package/dist/render/components/checkout/CheckoutPageClient.d.ts +25 -0
  588. package/dist/render/components/checkout/CheckoutPageClient.js +3 -0
  589. package/dist/render/components/fitment/FitmentFinder.d.ts +15 -0
  590. package/dist/render/components/fitment/FitmentFinder.js +1 -0
  591. package/dist/render/components/fitment/FitmentPickerGrid.d.ts +6 -0
  592. package/dist/render/components/fitment/FitmentPickerGrid.js +1 -0
  593. package/dist/render/components/fitment/FitmentRowFit.d.ts +4 -0
  594. package/dist/render/components/fitment/FitmentRowFit.js +1 -0
  595. package/dist/render/components/fitment/PickerField.d.ts +16 -0
  596. package/dist/render/components/fitment/PickerField.js +1 -0
  597. package/dist/render/components/fitment/StockFitmentCard.d.ts +8 -0
  598. package/dist/render/components/fitment/StockFitmentCard.js +1 -0
  599. package/dist/render/components/fitment/useFitmentCascade.d.ts +31 -0
  600. package/dist/render/components/fitment/useFitmentCascade.js +1 -0
  601. package/dist/render/components/fitment/useVehicleFit.d.ts +29 -0
  602. package/dist/render/components/fitment/useVehicleFit.js +1 -0
  603. package/dist/render/components/fitment/vehicle-control.d.ts +10 -0
  604. package/dist/render/components/fitment/vehicle-control.js +0 -0
  605. package/dist/render/components/fitment/vehicle-level-state.d.ts +14 -0
  606. package/dist/render/components/fitment/vehicle-level-state.js +1 -0
  607. package/dist/render/components/formSubmission.d.ts +32 -0
  608. package/dist/render/components/formSubmission.js +1 -0
  609. package/dist/render/components/pdp-dynamic/DynamicBundleOffer.d.ts +13 -0
  610. package/dist/render/components/pdp-dynamic/DynamicBundleOffer.js +1 -0
  611. package/dist/render/components/pdp-dynamic/DynamicDetailRows.d.ts +14 -0
  612. package/dist/render/components/pdp-dynamic/DynamicDetailRows.js +1 -0
  613. package/dist/render/components/pdp-dynamic/DynamicEuTyreLabel.d.ts +8 -0
  614. package/dist/render/components/pdp-dynamic/DynamicEuTyreLabel.js +1 -0
  615. package/dist/render/components/pdp-dynamic/DynamicFitmentTable.d.ts +16 -0
  616. package/dist/render/components/pdp-dynamic/DynamicFitmentTable.js +1 -0
  617. package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.d.ts +18 -0
  618. package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.js +1 -0
  619. package/dist/render/components/pdp-dynamic/DynamicProductHero.d.ts +25 -0
  620. package/dist/render/components/pdp-dynamic/DynamicProductHero.js +1 -0
  621. package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.d.ts +31 -0
  622. package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.js +1 -0
  623. package/dist/render/components/pdp-dynamic/DynamicSpecTable.d.ts +13 -0
  624. package/dist/render/components/pdp-dynamic/DynamicSpecTable.js +1 -0
  625. package/dist/render/components/pdp-dynamic/DynamicTyreFitment.d.ts +13 -0
  626. package/dist/render/components/pdp-dynamic/DynamicTyreFitment.js +1 -0
  627. package/dist/render/components/pdp-dynamic/DynamicTyreSizes.d.ts +11 -0
  628. package/dist/render/components/pdp-dynamic/DynamicTyreSizes.js +1 -0
  629. package/dist/render/components/pdp-dynamic/FitmentTableBlock.d.ts +7 -0
  630. package/dist/render/components/pdp-dynamic/FitmentTableBlock.js +1 -0
  631. package/dist/render/components/pdp-dynamic/KindGate.d.ts +8 -0
  632. package/dist/render/components/pdp-dynamic/KindGate.js +1 -0
  633. package/dist/render/components/pdp-dynamic/useSampleProduct.d.ts +5 -0
  634. package/dist/render/components/pdp-dynamic/useSampleProduct.js +1 -0
  635. package/dist/render/components/product-hero/TyreHeroFitment.d.ts +17 -0
  636. package/dist/render/components/product-hero/TyreHeroFitment.js +1 -0
  637. package/dist/render/components/product-hero/VehicleQuestion.d.ts +18 -0
  638. package/dist/render/components/product-hero/VehicleQuestion.js +1 -0
  639. package/dist/render/components/product-hero/WheelHeroFitment.d.ts +9 -0
  640. package/dist/render/components/product-hero/WheelHeroFitment.js +1 -0
  641. package/dist/render/components/product-hero/hero-content.d.ts +7 -0
  642. package/dist/render/components/product-hero/hero-content.js +1 -0
  643. package/dist/render/components/product-hero/hero-view.d.ts +37 -0
  644. package/dist/render/components/product-hero/hero-view.js +1 -0
  645. package/dist/render/components/product-hero/stage-photo.d.ts +10 -0
  646. package/dist/render/components/product-hero/stage-photo.js +3 -0
  647. package/dist/render/components/submit/SubmitBox.d.ts +19 -0
  648. package/dist/render/components/submit/SubmitBox.js +1 -0
  649. package/dist/render/components/submit/SubmitRegions.d.ts +17 -0
  650. package/dist/render/components/submit/SubmitRegions.js +1 -0
  651. package/dist/render/components/useEuTyreLabels.d.ts +3 -0
  652. package/dist/render/components/useEuTyreLabels.js +1 -0
  653. package/dist/render/components/useFinishSelection.d.ts +17 -0
  654. package/dist/render/components/useFinishSelection.js +1 -0
  655. package/dist/render/components/useHeaderBar.d.ts +9 -0
  656. package/dist/render/components/useHeaderBar.js +1 -0
  657. package/dist/render/components/useLightbox.d.ts +10 -0
  658. package/dist/render/components/useLightbox.js +1 -0
  659. package/dist/render/components/useModalDismiss.d.ts +8 -0
  660. package/dist/render/components/useModalDismiss.js +1 -0
  661. package/dist/render/components/useNewsletterSignup.d.ts +12 -0
  662. package/dist/render/components/useNewsletterSignup.js +1 -0
  663. package/dist/render/components/usePreOrderIntent.d.ts +14 -0
  664. package/dist/render/components/usePreOrderIntent.js +1 -0
  665. package/dist/render/components/useProductCatalog.d.ts +54 -0
  666. package/dist/render/components/useProductCatalog.js +1 -0
  667. package/dist/render/components/useProductSelection.d.ts +39 -0
  668. package/dist/render/components/useProductSelection.js +1 -0
  669. package/dist/render/components/useStockAlertSignup.d.ts +14 -0
  670. package/dist/render/components/useStockAlertSignup.js +1 -0
  671. package/dist/render/components/useStorefrontReviews.d.ts +2 -0
  672. package/dist/render/components/useStorefrontReviews.js +1 -0
  673. package/dist/render/components/useTyreCatalog.d.ts +2 -0
  674. package/dist/render/components/useTyreCatalog.js +1 -0
  675. package/dist/render/components/useTyreDetail.d.ts +6 -0
  676. package/dist/render/components/useTyreDetail.js +1 -0
  677. package/dist/render/components/useTyreFitAnswer.d.ts +5 -0
  678. package/dist/render/components/useTyreFitAnswer.js +1 -0
  679. package/dist/render/components/useWheelDetail.d.ts +6 -0
  680. package/dist/render/components/useWheelDetail.js +1 -0
  681. package/dist/render/components/wheels-plp/AlloyWheelsListing.d.ts +42 -0
  682. package/dist/render/components/wheels-plp/AlloyWheelsListing.js +1 -0
  683. package/dist/render/components/wheels-plp/PlpActiveChips.d.ts +9 -0
  684. package/dist/render/components/wheels-plp/PlpActiveChips.js +1 -0
  685. package/dist/render/components/wheels-plp/PlpCard.d.ts +27 -0
  686. package/dist/render/components/wheels-plp/PlpCard.js +1 -0
  687. package/dist/render/components/wheels-plp/PlpInStockToggle.d.ts +6 -0
  688. package/dist/render/components/wheels-plp/PlpInStockToggle.js +1 -0
  689. package/dist/render/components/wheels-plp/PlpNotifyMeDialog.d.ts +10 -0
  690. package/dist/render/components/wheels-plp/PlpNotifyMeDialog.js +1 -0
  691. package/dist/render/components/wheels-plp/PlpPagination.d.ts +5 -0
  692. package/dist/render/components/wheels-plp/PlpPagination.js +1 -0
  693. package/dist/render/components/wheels-plp/PlpSidebar.d.ts +25 -0
  694. package/dist/render/components/wheels-plp/PlpSidebar.js +1 -0
  695. package/dist/render/components/wheels-plp/PlpTypePicker.d.ts +7 -0
  696. package/dist/render/components/wheels-plp/PlpTypePicker.js +1 -0
  697. package/dist/render/components/wheels-plp/PlpTyreSizeBoxes.d.ts +9 -0
  698. package/dist/render/components/wheels-plp/PlpTyreSizeBoxes.js +1 -0
  699. package/dist/render/components/wheels-plp/PlpVehicleBar.d.ts +15 -0
  700. package/dist/render/components/wheels-plp/PlpVehicleBar.js +1 -0
  701. package/dist/render/components/wheels-plp/PlpVehicleGate.d.ts +10 -0
  702. package/dist/render/components/wheels-plp/PlpVehicleGate.js +1 -0
  703. package/dist/render/components/wheels-plp/usePlpCardSelection.d.ts +18 -0
  704. package/dist/render/components/wheels-plp/usePlpCardSelection.js +1 -0
  705. package/dist/render/components/wheels-plp/usePlpFiltersInUrl.d.ts +10 -0
  706. package/dist/render/components/wheels-plp/usePlpFiltersInUrl.js +1 -0
  707. package/dist/render/components/wheels-plp/useVehicleCatalog.d.ts +10 -0
  708. package/dist/render/components/wheels-plp/useVehicleCatalog.js +1 -0
  709. package/dist/render/components/wheels-plp/useWheelCardBottom.d.ts +20 -0
  710. package/dist/render/components/wheels-plp/useWheelCardBottom.js +1 -0
  711. package/dist/render/lib/api/chat.d.ts +31 -0
  712. package/dist/render/lib/api/chat.js +1 -0
  713. package/dist/render/lib/api/fitment-data.d.ts +18 -0
  714. package/dist/render/lib/api/fitment-data.js +1 -0
  715. package/dist/render/lib/api/gallery-builds-data.d.ts +4 -0
  716. package/dist/render/lib/api/gallery-builds-data.js +1 -0
  717. package/dist/render/lib/api/generated-upload-limits.d.ts +1292 -0
  718. package/dist/render/lib/api/generated-upload-limits.js +1 -0
  719. package/dist/render/lib/api/index.d.ts +806 -0
  720. package/dist/render/lib/api/index.js +1 -0
  721. package/dist/render/lib/api/origins.d.ts +2 -0
  722. package/dist/render/lib/api/origins.js +1 -0
  723. package/dist/render/lib/api/types.d.ts +3928 -0
  724. package/dist/render/lib/api/types.js +0 -0
  725. package/dist/render/lib/api/upload-limits.d.ts +10 -0
  726. package/dist/render/lib/api/upload-limits.js +1 -0
  727. package/dist/render/lib/assistant-chat.d.ts +35 -0
  728. package/dist/render/lib/assistant-chat.js +1 -0
  729. package/dist/render/lib/auth.d.ts +6 -0
  730. package/dist/render/lib/auth.js +1 -0
  731. package/dist/render/lib/booking/text-kinds.d.ts +11 -0
  732. package/dist/render/lib/booking/text-kinds.js +1 -0
  733. package/dist/render/lib/booking-dates.d.ts +23 -0
  734. package/dist/render/lib/booking-dates.js +1 -0
  735. package/dist/render/lib/cache-evict.d.ts +4 -0
  736. package/dist/render/lib/cache-evict.js +1 -0
  737. package/dist/render/lib/cart/coupon-preview.d.ts +12 -0
  738. package/dist/render/lib/cart/coupon-preview.js +1 -0
  739. package/dist/render/lib/cart/shipping-status.d.ts +12 -0
  740. package/dist/render/lib/cart/shipping-status.js +1 -0
  741. package/dist/render/lib/cart/snapshot-lines.d.ts +3 -0
  742. package/dist/render/lib/cart/snapshot-lines.js +1 -0
  743. package/dist/render/lib/catalog/from-tyre.d.ts +3 -0
  744. package/dist/render/lib/catalog/from-tyre.js +1 -0
  745. package/dist/render/lib/catalog/from-wheel.d.ts +7 -0
  746. package/dist/render/lib/catalog/from-wheel.js +1 -0
  747. package/dist/render/lib/catalog/listing-links.d.ts +11 -0
  748. package/dist/render/lib/catalog/listing-links.js +1 -0
  749. package/dist/render/lib/catalog/plp-item.d.ts +39 -0
  750. package/dist/render/lib/catalog/plp-item.js +1 -0
  751. package/dist/render/lib/catalog/plp-vehicle-copy.d.ts +20 -0
  752. package/dist/render/lib/catalog/plp-vehicle-copy.js +1 -0
  753. package/dist/render/lib/catalog/plp-vehicle-slice.d.ts +13 -0
  754. package/dist/render/lib/catalog/plp-vehicle-slice.js +1 -0
  755. package/dist/render/lib/catalog/product-options.d.ts +27 -0
  756. package/dist/render/lib/catalog/product-options.js +1 -0
  757. package/dist/render/lib/catalog/purchase.d.ts +46 -0
  758. package/dist/render/lib/catalog/purchase.js +1 -0
  759. package/dist/render/lib/catalog/related-cards.d.ts +12 -0
  760. package/dist/render/lib/catalog/related-cards.js +1 -0
  761. package/dist/render/lib/catalog/relationships.d.ts +28 -0
  762. package/dist/render/lib/catalog/relationships.js +1 -0
  763. package/dist/render/lib/catalog/store-product.d.ts +56 -0
  764. package/dist/render/lib/catalog/store-product.js +1 -0
  765. package/dist/render/lib/chat-socket.d.ts +8 -0
  766. package/dist/render/lib/chat-socket.js +1 -0
  767. package/dist/render/lib/checkout/wallet-return.d.ts +52 -0
  768. package/dist/render/lib/checkout/wallet-return.js +1 -0
  769. package/dist/render/lib/chrome-cache.d.ts +6 -0
  770. package/dist/render/lib/chrome-cache.js +1 -0
  771. package/dist/render/lib/chrome-load.d.ts +28 -0
  772. package/dist/render/lib/chrome-load.js +1 -0
  773. package/dist/render/lib/click-ids.d.ts +8 -0
  774. package/dist/render/lib/click-ids.js +1 -0
  775. package/dist/render/lib/commerce.d.ts +42 -0
  776. package/dist/render/lib/commerce.js +1 -0
  777. package/dist/render/lib/consent/choice.d.ts +35 -0
  778. package/dist/render/lib/consent/choice.js +1 -0
  779. package/dist/render/lib/consent/rules.d.ts +60 -0
  780. package/dist/render/lib/consent/rules.js +1 -0
  781. package/dist/render/lib/content/catalog-filter-labels.d.ts +6 -0
  782. package/dist/render/lib/content/catalog-filter-labels.js +1 -0
  783. package/dist/render/lib/content/country-show-as.d.ts +9 -0
  784. package/dist/render/lib/content/country-show-as.js +1 -0
  785. package/dist/render/lib/content/english-variant.d.ts +4 -0
  786. package/dist/render/lib/content/english-variant.js +1 -0
  787. package/dist/render/lib/content/field-usage.d.ts +35 -0
  788. package/dist/render/lib/content/field-usage.js +1 -0
  789. package/dist/render/lib/content/header-bar.d.ts +8 -0
  790. package/dist/render/lib/content/header-bar.js +1 -0
  791. package/dist/render/lib/content/header-theme.d.ts +7 -0
  792. package/dist/render/lib/content/header-theme.js +1 -0
  793. package/dist/render/lib/content/menu-placeholder.d.ts +8 -0
  794. package/dist/render/lib/content/menu-placeholder.js +1 -0
  795. package/dist/render/lib/content/menu-row.d.ts +9 -0
  796. package/dist/render/lib/content/menu-row.js +1 -0
  797. package/dist/render/lib/content/product-hero.d.ts +13 -0
  798. package/dist/render/lib/content/product-hero.js +1 -0
  799. package/dist/render/lib/content/site.d.ts +62 -0
  800. package/dist/render/lib/content/site.js +1 -0
  801. package/dist/render/lib/content/source-values.d.ts +43 -0
  802. package/dist/render/lib/content/source-values.js +0 -0
  803. package/dist/render/lib/content/stock-words.d.ts +10 -0
  804. package/dist/render/lib/content/stock-words.js +1 -0
  805. package/dist/render/lib/countries.d.ts +5 -0
  806. package/dist/render/lib/countries.js +1 -0
  807. package/dist/render/lib/editor-route.d.ts +3 -0
  808. package/dist/render/lib/editor-route.js +1 -0
  809. package/dist/render/lib/email-shape.d.ts +1 -0
  810. package/dist/render/lib/email-shape.js +1 -0
  811. package/dist/render/lib/font-table.json +2588 -0
  812. package/dist/render/lib/forwarded-for.d.ts +6 -0
  813. package/dist/render/lib/forwarded-for.js +1 -0
  814. package/dist/render/lib/google-tag.d.ts +37 -0
  815. package/dist/render/lib/google-tag.js +1 -0
  816. package/dist/render/lib/header-settings-fetch.d.ts +5 -0
  817. package/dist/render/lib/header-settings-fetch.js +1 -0
  818. package/dist/render/lib/links/link-rules.d.ts +80 -0
  819. package/dist/render/lib/links/link-rules.js +1 -0
  820. package/dist/render/lib/logo/surface-is-light.d.ts +1 -0
  821. package/dist/render/lib/logo/surface-is-light.js +1 -0
  822. package/dist/render/lib/menu-link.d.ts +1 -0
  823. package/dist/render/lib/menu-link.js +1 -0
  824. package/dist/render/lib/menu-source.d.ts +23 -0
  825. package/dist/render/lib/menu-source.js +1 -0
  826. package/dist/render/lib/meta-pixel.d.ts +19 -0
  827. package/dist/render/lib/meta-pixel.js +1 -0
  828. package/dist/render/lib/newsletter-signup.d.ts +16 -0
  829. package/dist/render/lib/newsletter-signup.js +1 -0
  830. package/dist/render/lib/next-fonts.d.ts +3 -0
  831. package/dist/render/lib/next-fonts.js +1 -0
  832. package/dist/render/lib/popup/popup-rules.d.ts +25 -0
  833. package/dist/render/lib/popup/popup-rules.js +1 -0
  834. package/dist/render/lib/popup/text-kind-style.d.ts +3 -0
  835. package/dist/render/lib/popup/text-kind-style.js +1 -0
  836. package/dist/render/lib/puck/blocks/commerce/AccountBlock/render.d.ts +2 -0
  837. package/dist/render/lib/puck/blocks/commerce/AccountBlock/render.js +1 -0
  838. package/dist/render/lib/puck/blocks/commerce/AlloyWheelsListing/render.d.ts +6 -0
  839. package/dist/render/lib/puck/blocks/commerce/AlloyWheelsListing/render.js +1 -0
  840. package/dist/render/lib/puck/blocks/commerce/BundleOffer/render.d.ts +2 -0
  841. package/dist/render/lib/puck/blocks/commerce/BundleOffer/render.js +1 -0
  842. package/dist/render/lib/puck/blocks/commerce/CartBlock/render.d.ts +2 -0
  843. package/dist/render/lib/puck/blocks/commerce/CartBlock/render.js +1 -0
  844. package/dist/render/lib/puck/blocks/commerce/CatalogFilterBar/render.d.ts +2 -0
  845. package/dist/render/lib/puck/blocks/commerce/CatalogFilterBar/render.js +1 -0
  846. package/dist/render/lib/puck/blocks/commerce/CheckoutCTA/render.d.ts +6 -0
  847. package/dist/render/lib/puck/blocks/commerce/CheckoutCTA/render.js +1 -0
  848. package/dist/render/lib/puck/blocks/commerce/CollectionCard/render.d.ts +2 -0
  849. package/dist/render/lib/puck/blocks/commerce/CollectionCard/render.js +1 -0
  850. package/dist/render/lib/puck/blocks/commerce/Collections/render.d.ts +7 -0
  851. package/dist/render/lib/puck/blocks/commerce/Collections/render.js +1 -0
  852. package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/render.d.ts +9 -0
  853. package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/render.js +1 -0
  854. package/dist/render/lib/puck/blocks/commerce/CountrySwitchBlock/render.d.ts +2 -0
  855. package/dist/render/lib/puck/blocks/commerce/CountrySwitchBlock/render.js +1 -0
  856. package/dist/render/lib/puck/blocks/commerce/DeliveryOptions/render.d.ts +6 -0
  857. package/dist/render/lib/puck/blocks/commerce/DeliveryOptions/render.js +1 -0
  858. package/dist/render/lib/puck/blocks/commerce/DetailRows/render.d.ts +9 -0
  859. package/dist/render/lib/puck/blocks/commerce/DetailRows/render.js +1 -0
  860. package/dist/render/lib/puck/blocks/commerce/EuTyreLabel/render.d.ts +2 -0
  861. package/dist/render/lib/puck/blocks/commerce/EuTyreLabel/render.js +1 -0
  862. package/dist/render/lib/puck/blocks/commerce/FitmentFinder/render.d.ts +8 -0
  863. package/dist/render/lib/puck/blocks/commerce/FitmentFinder/render.js +1 -0
  864. package/dist/render/lib/puck/blocks/commerce/FitmentTable/render.d.ts +9 -0
  865. package/dist/render/lib/puck/blocks/commerce/FitmentTable/render.js +1 -0
  866. package/dist/render/lib/puck/blocks/commerce/Gallery/render.d.ts +14 -0
  867. package/dist/render/lib/puck/blocks/commerce/Gallery/render.js +1 -0
  868. package/dist/render/lib/puck/blocks/commerce/GalleryB/render.d.ts +13 -0
  869. package/dist/render/lib/puck/blocks/commerce/GalleryB/render.js +1 -0
  870. package/dist/render/lib/puck/blocks/commerce/GalleryItem/render.d.ts +2 -0
  871. package/dist/render/lib/puck/blocks/commerce/GalleryItem/render.js +1 -0
  872. package/dist/render/lib/puck/blocks/commerce/Header/render.d.ts +2 -0
  873. package/dist/render/lib/puck/blocks/commerce/Header/render.js +1 -0
  874. package/dist/render/lib/puck/blocks/commerce/ProductGrid/render.d.ts +7 -0
  875. package/dist/render/lib/puck/blocks/commerce/ProductGrid/render.js +1 -0
  876. package/dist/render/lib/puck/blocks/commerce/ProductHero/render.d.ts +2 -0
  877. package/dist/render/lib/puck/blocks/commerce/ProductHero/render.js +1 -0
  878. package/dist/render/lib/puck/blocks/commerce/ProductRef/render.d.ts +2 -0
  879. package/dist/render/lib/puck/blocks/commerce/ProductRef/render.js +1 -0
  880. package/dist/render/lib/puck/blocks/commerce/RelatedProducts/render.d.ts +6 -0
  881. package/dist/render/lib/puck/blocks/commerce/RelatedProducts/render.js +1 -0
  882. package/dist/render/lib/puck/blocks/commerce/SearchBlock/render.d.ts +2 -0
  883. package/dist/render/lib/puck/blocks/commerce/SearchBlock/render.js +1 -0
  884. package/dist/render/lib/puck/blocks/commerce/SpecTable/render.d.ts +7 -0
  885. package/dist/render/lib/puck/blocks/commerce/SpecTable/render.js +1 -0
  886. package/dist/render/lib/puck/blocks/commerce/ThemeSwitchBlock/render.d.ts +2 -0
  887. package/dist/render/lib/puck/blocks/commerce/ThemeSwitchBlock/render.js +1 -0
  888. package/dist/render/lib/puck/blocks/commerce/TyreFitment/render.d.ts +2 -0
  889. package/dist/render/lib/puck/blocks/commerce/TyreFitment/render.js +1 -0
  890. package/dist/render/lib/puck/blocks/commerce/TyreSizes/render.d.ts +2 -0
  891. package/dist/render/lib/puck/blocks/commerce/TyreSizes/render.js +1 -0
  892. package/dist/render/lib/puck/blocks/commerce/placeholders.d.ts +4 -0
  893. package/dist/render/lib/puck/blocks/commerce/placeholders.js +1 -0
  894. package/dist/render/lib/puck/blocks/commerce/renders.d.ts +32 -0
  895. package/dist/render/lib/puck/blocks/commerce/renders.js +1 -0
  896. package/dist/render/lib/puck/blocks/service/AppointmentBooking/render.d.ts +8 -0
  897. package/dist/render/lib/puck/blocks/service/AppointmentBooking/render.js +1 -0
  898. package/dist/render/lib/puck/blocks/service/BookingBox/render.d.ts +2 -0
  899. package/dist/render/lib/puck/blocks/service/BookingBox/render.js +1 -0
  900. package/dist/render/lib/puck/blocks/service/ContactRouting/render.d.ts +2 -0
  901. package/dist/render/lib/puck/blocks/service/ContactRouting/render.js +1 -0
  902. package/dist/render/lib/puck/blocks/service/Events/render.d.ts +7 -0
  903. package/dist/render/lib/puck/blocks/service/Events/render.js +1 -0
  904. package/dist/render/lib/puck/blocks/service/Footer/render.d.ts +8 -0
  905. package/dist/render/lib/puck/blocks/service/Footer/render.js +1 -0
  906. package/dist/render/lib/puck/blocks/service/FooterDivider/render.d.ts +2 -0
  907. package/dist/render/lib/puck/blocks/service/FooterDivider/render.js +1 -0
  908. package/dist/render/lib/puck/blocks/service/FooterEmailSignup/render.d.ts +2 -0
  909. package/dist/render/lib/puck/blocks/service/FooterEmailSignup/render.js +1 -0
  910. package/dist/render/lib/puck/blocks/service/FooterGroup/render.d.ts +8 -0
  911. package/dist/render/lib/puck/blocks/service/FooterGroup/render.js +1 -0
  912. package/dist/render/lib/puck/blocks/service/FooterLogo/render.d.ts +2 -0
  913. package/dist/render/lib/puck/blocks/service/FooterLogo/render.js +1 -0
  914. package/dist/render/lib/puck/blocks/service/FooterMenu/render.d.ts +2 -0
  915. package/dist/render/lib/puck/blocks/service/FooterMenu/render.js +1 -0
  916. package/dist/render/lib/puck/blocks/service/FooterSocial/render.d.ts +2 -0
  917. package/dist/render/lib/puck/blocks/service/FooterSocial/render.js +1 -0
  918. package/dist/render/lib/puck/blocks/service/FooterText/render.d.ts +2 -0
  919. package/dist/render/lib/puck/blocks/service/FooterText/render.js +1 -0
  920. package/dist/render/lib/puck/blocks/service/Form/render.d.ts +2 -0
  921. package/dist/render/lib/puck/blocks/service/Form/render.js +1 -0
  922. package/dist/render/lib/puck/blocks/service/LegalLineBlock/render.d.ts +2 -0
  923. package/dist/render/lib/puck/blocks/service/LegalLineBlock/render.js +1 -0
  924. package/dist/render/lib/puck/blocks/service/ReviewForm/render.d.ts +6 -0
  925. package/dist/render/lib/puck/blocks/service/ReviewForm/render.js +1 -0
  926. package/dist/render/lib/puck/blocks/service/Reviews/render.d.ts +6 -0
  927. package/dist/render/lib/puck/blocks/service/Reviews/render.js +1 -0
  928. package/dist/render/lib/puck/blocks/service/SiteFooter/render.d.ts +7 -0
  929. package/dist/render/lib/puck/blocks/service/SiteFooter/render.js +1 -0
  930. package/dist/render/lib/puck/blocks/service/SiteHeader/render.d.ts +7 -0
  931. package/dist/render/lib/puck/blocks/service/SiteHeader/render.js +1 -0
  932. package/dist/render/lib/puck/blocks/service/SubmitBox/render.d.ts +2 -0
  933. package/dist/render/lib/puck/blocks/service/SubmitBox/render.js +1 -0
  934. package/dist/render/lib/puck/blocks/service/SubmitBuild/render.d.ts +8 -0
  935. package/dist/render/lib/puck/blocks/service/SubmitBuild/render.js +1 -0
  936. package/dist/render/lib/puck/blocks/service/Subscribe/render.d.ts +2 -0
  937. package/dist/render/lib/puck/blocks/service/Subscribe/render.js +1 -0
  938. package/dist/render/lib/puck/blocks/service/SubscribeBlogs/render.d.ts +17 -0
  939. package/dist/render/lib/puck/blocks/service/SubscribeBlogs/render.js +1 -0
  940. package/dist/render/lib/puck/blocks/service/renders.d.ts +26 -0
  941. package/dist/render/lib/puck/blocks/service/renders.js +1 -0
  942. package/dist/render/lib/puck/blocks/service/subscribe.d.ts +33 -0
  943. package/dist/render/lib/puck/blocks/service/subscribe.js +1 -0
  944. package/dist/render/lib/puck/blocks/text-part-shapes.json +1649 -0
  945. package/dist/render/lib/puck/current-product.d.ts +19 -0
  946. package/dist/render/lib/puck/current-product.js +1 -0
  947. package/dist/render/lib/puck/current-record.d.ts +44 -0
  948. package/dist/render/lib/puck/current-record.js +1 -0
  949. package/dist/render/lib/puck/fitment-table-dynamic.d.ts +4 -0
  950. package/dist/render/lib/puck/fitment-table-dynamic.js +1 -0
  951. package/dist/render/lib/puck/footer-page-blocks.d.ts +7 -0
  952. package/dist/render/lib/puck/footer-page-blocks.js +1 -0
  953. package/dist/render/lib/puck/preview-pick.d.ts +7 -0
  954. package/dist/render/lib/puck/preview-pick.js +1 -0
  955. package/dist/render/lib/puck/preview-product.d.ts +6 -0
  956. package/dist/render/lib/puck/preview-product.js +1 -0
  957. package/dist/render/lib/puck/render-client.d.ts +5 -0
  958. package/dist/render/lib/puck/render-client.js +1 -0
  959. package/dist/render/lib/puck/render-config.d.ts +4 -0
  960. package/dist/render/lib/puck/render-config.js +1 -0
  961. package/dist/render/lib/puck/slot-seeds.d.ts +3 -0
  962. package/dist/render/lib/puck/slot-seeds.js +1 -0
  963. package/dist/render/lib/puck/storefront-root.d.ts +18 -0
  964. package/dist/render/lib/puck/storefront-root.js +1 -0
  965. package/dist/render/lib/puck/subscribe-content-type.d.ts +10 -0
  966. package/dist/render/lib/puck/subscribe-content-type.js +1 -0
  967. package/dist/render/lib/puck/template-product-kind.d.ts +7 -0
  968. package/dist/render/lib/puck/template-product-kind.js +1 -0
  969. package/dist/render/lib/sections/card-image-sizes.d.ts +12 -0
  970. package/dist/render/lib/sections/card-image-sizes.js +1 -0
  971. package/dist/render/lib/sections/card-show-defaults.d.ts +10 -0
  972. package/dist/render/lib/sections/card-show-defaults.js +1 -0
  973. package/dist/render/lib/sections/catalog-filter-layout.d.ts +7 -0
  974. package/dist/render/lib/sections/catalog-filter-layout.js +1 -0
  975. package/dist/render/lib/sections/fill-row.d.ts +16 -0
  976. package/dist/render/lib/sections/fill-row.js +1 -0
  977. package/dist/render/lib/sections/hero-arrangement.d.ts +11 -0
  978. package/dist/render/lib/sections/hero-arrangement.js +1 -0
  979. package/dist/render/lib/sections/hero-gallery.d.ts +14 -0
  980. package/dist/render/lib/sections/hero-gallery.js +1 -0
  981. package/dist/render/lib/sections/hero-price-placement.d.ts +7 -0
  982. package/dist/render/lib/sections/hero-price-placement.js +1 -0
  983. package/dist/render/lib/select-keys.d.ts +18 -0
  984. package/dist/render/lib/select-keys.js +1 -0
  985. package/dist/render/lib/site-headers.d.ts +3 -0
  986. package/dist/render/lib/site-headers.js +1 -0
  987. package/dist/render/lib/storefront-page-groups.d.ts +16 -0
  988. package/dist/render/lib/storefront-page-groups.js +1 -0
  989. package/dist/render/lib/storefront-page-order.d.ts +3 -0
  990. package/dist/render/lib/storefront-page-order.js +1 -0
  991. package/dist/render/lib/submit/text-kinds.d.ts +11 -0
  992. package/dist/render/lib/submit/text-kinds.js +1 -0
  993. package/dist/render/lib/tyres/eu-tyre-label.d.ts +29 -0
  994. package/dist/render/lib/tyres/eu-tyre-label.js +1 -0
  995. package/dist/render/lib/tyres/placeholder-tyre.d.ts +2 -0
  996. package/dist/render/lib/tyres/placeholder-tyre.js +1 -0
  997. package/dist/render/lib/tyres/spec-sheet.d.ts +12 -0
  998. package/dist/render/lib/tyres/spec-sheet.js +1 -0
  999. package/dist/render/lib/tyres/tyre-brand-name.d.ts +2 -0
  1000. package/dist/render/lib/tyres/tyre-brand-name.js +1 -0
  1001. package/dist/render/lib/tyres/tyre-fit-copy.d.ts +3 -0
  1002. package/dist/render/lib/tyres/tyre-fit-copy.js +1 -0
  1003. package/dist/render/lib/tyres/tyre-page-path.d.ts +2 -0
  1004. package/dist/render/lib/tyres/tyre-page-path.js +1 -0
  1005. package/dist/render/lib/tyres/tyre-purchase.d.ts +12 -0
  1006. package/dist/render/lib/tyres/tyre-purchase.js +1 -0
  1007. package/dist/render/lib/tyres/tyre-size-fit.d.ts +12 -0
  1008. package/dist/render/lib/tyres/tyre-size-fit.js +1 -0
  1009. package/dist/render/lib/tyres/tyre-size.d.ts +11 -0
  1010. package/dist/render/lib/tyres/tyre-size.js +1 -0
  1011. package/dist/render/lib/tyres/tyre-vehicle-fitment.d.ts +17 -0
  1012. package/dist/render/lib/tyres/tyre-vehicle-fitment.js +1 -0
  1013. package/dist/render/lib/uuid.d.ts +1 -0
  1014. package/dist/render/lib/uuid.js +1 -0
  1015. package/dist/render/lib/wheels/applied-vehicle.d.ts +1 -0
  1016. package/dist/render/lib/wheels/applied-vehicle.js +1 -0
  1017. package/dist/render/lib/wheels/catalog-default-layout.d.ts +14 -0
  1018. package/dist/render/lib/wheels/catalog-default-layout.js +1 -0
  1019. package/dist/render/lib/wheels/catalog-filters-to-listing.d.ts +9 -0
  1020. package/dist/render/lib/wheels/catalog-filters-to-listing.js +1 -0
  1021. package/dist/render/lib/wheels/catalog-filters.d.ts +19 -0
  1022. package/dist/render/lib/wheels/catalog-filters.js +1 -0
  1023. package/dist/render/lib/wheels/collections.d.ts +22 -0
  1024. package/dist/render/lib/wheels/collections.js +1 -0
  1025. package/dist/render/lib/wheels/cover-rendering.d.ts +23 -0
  1026. package/dist/render/lib/wheels/cover-rendering.js +1 -0
  1027. package/dist/render/lib/wheels/detail-shots.d.ts +10 -0
  1028. package/dist/render/lib/wheels/detail-shots.js +1 -0
  1029. package/dist/render/lib/wheels/finish-colour-match.d.ts +4 -0
  1030. package/dist/render/lib/wheels/finish-colour-match.js +1 -0
  1031. package/dist/render/lib/wheels/finish-defaults.d.ts +16 -0
  1032. package/dist/render/lib/wheels/finish-defaults.js +1 -0
  1033. package/dist/render/lib/wheels/finish-photos.d.ts +2 -0
  1034. package/dist/render/lib/wheels/finish-photos.js +1 -0
  1035. package/dist/render/lib/wheels/fitment-columns.d.ts +9 -0
  1036. package/dist/render/lib/wheels/fitment-columns.js +1 -0
  1037. package/dist/render/lib/wheels/fitment-options.d.ts +18 -0
  1038. package/dist/render/lib/wheels/fitment-options.js +1 -0
  1039. package/dist/render/lib/wheels/fitment-row-fit.d.ts +17 -0
  1040. package/dist/render/lib/wheels/fitment-row-fit.js +1 -0
  1041. package/dist/render/lib/wheels/fitments.d.ts +13 -0
  1042. package/dist/render/lib/wheels/fitments.js +1 -0
  1043. package/dist/render/lib/wheels/grid-source.d.ts +12 -0
  1044. package/dist/render/lib/wheels/grid-source.js +1 -0
  1045. package/dist/render/lib/wheels/listable-wheels.d.ts +3 -0
  1046. package/dist/render/lib/wheels/listable-wheels.js +1 -0
  1047. package/dist/render/lib/wheels/lug-count.d.ts +10 -0
  1048. package/dist/render/lib/wheels/lug-count.js +1 -0
  1049. package/dist/render/lib/wheels/pdp-fit-verdict.d.ts +27 -0
  1050. package/dist/render/lib/wheels/pdp-fit-verdict.js +1 -0
  1051. package/dist/render/lib/wheels/picker-goes-to-the-shop.d.ts +10 -0
  1052. package/dist/render/lib/wheels/picker-goes-to-the-shop.js +1 -0
  1053. package/dist/render/lib/wheels/placeholder-wheel.d.ts +3 -0
  1054. package/dist/render/lib/wheels/placeholder-wheel.js +1 -0
  1055. package/dist/render/lib/wheels/plp-filters.d.ts +100 -0
  1056. package/dist/render/lib/wheels/plp-filters.js +1 -0
  1057. package/dist/render/lib/wheels/plp-fitment-match.d.ts +61 -0
  1058. package/dist/render/lib/wheels/plp-fitment-match.js +1 -0
  1059. package/dist/render/lib/wheels/plp-grid.d.ts +18 -0
  1060. package/dist/render/lib/wheels/plp-grid.js +1 -0
  1061. package/dist/render/lib/wheels/plp-hydrate.d.ts +21 -0
  1062. package/dist/render/lib/wheels/plp-hydrate.js +1 -0
  1063. package/dist/render/lib/wheels/plp-vehicle-params.d.ts +10 -0
  1064. package/dist/render/lib/wheels/plp-vehicle-params.js +1 -0
  1065. package/dist/render/lib/wheels/pre-order-intent.d.ts +3 -0
  1066. package/dist/render/lib/wheels/pre-order-intent.js +1 -0
  1067. package/dist/render/lib/wheels/pre-order.d.ts +7 -0
  1068. package/dist/render/lib/wheels/pre-order.js +1 -0
  1069. package/dist/render/lib/wheels/price-display.d.ts +47 -0
  1070. package/dist/render/lib/wheels/price-display.js +1 -0
  1071. package/dist/render/lib/wheels/render-fit.d.ts +3 -0
  1072. package/dist/render/lib/wheels/render-fit.js +1 -0
  1073. package/dist/render/lib/wheels/renderable-finishes.d.ts +6 -0
  1074. package/dist/render/lib/wheels/renderable-finishes.js +1 -0
  1075. package/dist/render/lib/wheels/selected-studs.d.ts +9 -0
  1076. package/dist/render/lib/wheels/selected-studs.js +1 -0
  1077. package/dist/render/lib/wheels/set-mode.d.ts +34 -0
  1078. package/dist/render/lib/wheels/set-mode.js +1 -0
  1079. package/dist/render/lib/wheels/size-range.d.ts +10 -0
  1080. package/dist/render/lib/wheels/size-range.js +1 -0
  1081. package/dist/render/lib/wheels/spec-format.d.ts +7 -0
  1082. package/dist/render/lib/wheels/spec-format.js +1 -0
  1083. package/dist/render/lib/wheels/spec-sheet.d.ts +58 -0
  1084. package/dist/render/lib/wheels/spec-sheet.js +1 -0
  1085. package/dist/render/lib/wheels/tyre-render.d.ts +34 -0
  1086. package/dist/render/lib/wheels/tyre-render.js +1 -0
  1087. package/dist/render/lib/wheels/variant-spec.d.ts +9 -0
  1088. package/dist/render/lib/wheels/variant-spec.js +1 -0
  1089. package/dist/render/lib/wheels/variants.d.ts +8 -0
  1090. package/dist/render/lib/wheels/variants.js +1 -0
  1091. package/dist/render/lib/wheels/vehicle-field-focus.d.ts +7 -0
  1092. package/dist/render/lib/wheels/vehicle-field-focus.js +1 -0
  1093. package/dist/render/lib/wheels/vehicle-memory.d.ts +25 -0
  1094. package/dist/render/lib/wheels/vehicle-memory.js +1 -0
  1095. package/dist/render/lib/wheels/wheel-name.d.ts +4 -0
  1096. package/dist/render/lib/wheels/wheel-name.js +1 -0
  1097. package/dist/render/lib/wheels/wheel-specs.d.ts +14 -0
  1098. package/dist/render/lib/wheels/wheel-specs.js +1 -0
  1099. package/dist/render/lib/wheels/wheel-summary-casing.d.ts +4 -0
  1100. package/dist/render/lib/wheels/wheel-summary-casing.js +1 -0
  1101. package/dist/render/lib/wheels/wheels.d.ts +38 -0
  1102. package/dist/render/lib/wheels/wheels.js +1 -0
  1103. package/dist/render/mocks/fitment-snapshot.json +3911 -0
  1104. package/dist/render/mocks/gallery-builds.json +213 -0
  1105. package/dist/words.d.ts +68 -7
  1106. package/dist/words.js +5 -5
  1107. package/package.json +37 -5
  1108. package/dist/chunks/chunk-BDITPYS5.js +0 -1
  1109. package/dist/chunks/chunk-EHKAKDFN.js +0 -255
  1110. /package/dist/chunks/{chunk-4NM2MDGN.js → chunk-76HTJBKU.js} +0 -0
  1111. /package/dist/chunks/{chunk-EHKAKDFN.js.LEGAL.txt → chunk-PHH7L5FJ.js.LEGAL.txt} +0 -0
@@ -0,0 +1,19 @@
1
+ import type { Form } from "../../lib/api/index.js";
2
+ export declare const SUBMIT_REGIONS: readonly ["head", "form"];
3
+ export type SubmitRegion = (typeof SUBMIT_REGIONS)[number];
4
+ export declare const SUBMIT_REGION_NAMES: Record<SubmitRegion, string>;
5
+ export interface SubmitBoxProps {
6
+ region?: string;
7
+ eyebrow?: string;
8
+ title?: string;
9
+ body?: string;
10
+ buttonText?: string;
11
+ consent?: string;
12
+ formSlug?: string;
13
+ form?: Form | null;
14
+ editing?: boolean;
15
+ styleField?: unknown;
16
+ styleTick?: unknown;
17
+ styleThanks?: unknown;
18
+ }
19
+ export default function SubmitBox({ region, eyebrow, title, body, buttonText, consent, formSlug, form: injectedForm, editing, ...kinds }: SubmitBoxProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import{useBoundForm as b,useFormSubmission as p}from"../formSubmission.js";import S from"efficient-web-builder/render/components/SectionHeader";import{SubmitFormColumn as h}from"./SubmitRegions.js";import{submitKindStyle as x}from"../../lib/submit/text-kinds.js";const E=["head","form"],M={head:"Head",form:"Form"};function y({region:m,eyebrow:n,title:i,body:u,buttonText:d,consent:f,formSlug:r,form:l,editing:t=!1,...c}){const o=b(r,l),a=p({form:o,formSlug:r,editing:t}),s=x(c);return m==="head"?e("div",{style:s,children:e(S,{look:"statement",num:n,title:i})}):e("div",{style:s,children:e(h,{body:u??"",buttonLabel:d??"",consent:f??"",form:o,submission:a,showForm:!!o||t,resolving:o===void 0,editing:t})})}export{E as SUBMIT_REGIONS,M as SUBMIT_REGION_NAMES,y as default};
@@ -0,0 +1,17 @@
1
+ import type { Form, FormField } from "../../lib/api/index.js";
2
+ import { type useFormSubmission } from "../formSubmission.js";
3
+ export declare function isFullWidth(field: FormField): boolean;
4
+ export declare function SubmitHead({ eyebrow, title }: {
5
+ eyebrow: string;
6
+ title: string;
7
+ }): import("react").JSX.Element;
8
+ export declare function SubmitFormColumn({ body, buttonLabel, consent, form, submission, showForm, resolving, editing, }: {
9
+ body: string;
10
+ buttonLabel: string;
11
+ consent: string;
12
+ form: Form | null | undefined;
13
+ submission: ReturnType<typeof useFormSubmission>;
14
+ showForm: boolean;
15
+ resolving: boolean;
16
+ editing: boolean;
17
+ }): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{FormFieldInput as d,FormHoneypot as f,successMessageFor as u}from"../formSubmission.js";import y from"efficient-web-builder/render/components/SectionEyebrow";import{renderGold as p,renderHeadline as v,splitParagraphs as b}from"efficient-web-builder/render/components/goldPhrases";import{say as x}from"efficient-web-builder/format/lib/editor-words";function k(n){return n.type==="textarea"||n.type==="select"||n.type==="checkbox"}function z({eyebrow:n,title:r}){return l("div",{className:"flex flex-col gap-4",children:[n&&a(y,{text:n,scaled:!1}),r&&a("h2",{className:"font-display text-[min(clamp(40px,5vw,72px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:v(r,!0)})]})}function w({body:n,buttonLabel:r,consent:s,form:c,submission:t,showForm:m,resolving:g,editing:h}){return l("div",{className:"flex flex-col gap-8",children:[n&&b(n).map((e,o)=>a("p",{className:"max-w-[480px] font-display text-[16px] leading-[1.6] text-fg-dim",children:p(e)},o)),m&&(c?t.done?a("p",{role:"status",className:"max-w-[480px] font-[family-name:var(--sb-thanks-font,var(--font-serif))] text-[length:var(--sb-thanks-size,17px)] italic leading-[1.6] text-fg-dim",children:u(c)}):l("form",{className:"grid grid-cols-2 gap-2",onSubmit:t.handleSubmit,children:[c.fields.map(e=>{const o=["border border-line bg-transparent px-4 py-4 font-[family-name:var(--sb-field-font,var(--font-mono))] text-[length:var(--sb-field-size,14px)] tracking-[0.1em] text-fg outline-none focus:border-accent",k(e)?"col-span-2":""].join(" ");return e.type==="checkbox"?l("label",{className:"col-span-2 flex items-start gap-3 font-[family-name:var(--sb-tick-font,var(--font-mono))] text-[length:var(--sb-tick-size,12px)] uppercase tracking-[0.18em] text-fg-dim",children:[a(d,{field:e,value:t.valueOf(e.key),onChange:i=>t.set(e.key,i),className:"mt-0.5 size-4 accent-accent"}),l("span",{children:[e.label,e.required?a("span",{className:"text-accent",children:" *"}):null]})]},e.key):a(d,{field:e,value:t.valueOf(e.key),onChange:i=>t.set(e.key,i),rows:4,placeholder:e.placeholder||e.label,className:e.type==="textarea"?`${o} resize-y`:o},e.key)}),a(f,{value:t.honeypot,onChange:t.setHoneypot}),t.error&&a("p",{role:"alert",className:"col-span-2 font-mono text-[12px] uppercase tracking-[0.18em] text-alert",children:t.error}),r&&a("button",{type:h?"button":"submit",disabled:t.submitting,className:"col-span-2 cursor-pointer bg-btn px-6 py-4 font-mono text-[14px] uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg hover:text-bg disabled:cursor-wait disabled:opacity-60",children:t.submitting?"Sending…":p(r)})]}):a("p",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim",children:g?x("Loading form…"):x("Choose a form in the inspector, under Form — until then this form is hidden on the live page and nothing can be submitted.")})),m&&s&&a("span",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim/70",children:p(s)})]})}export{w as SubmitFormColumn,z as SubmitHead,k as isFullWidth};
@@ -0,0 +1,3 @@
1
+ import { type EuTyreLabel } from "../lib/tyres/eu-tyre-label.js";
2
+ import type { TyreVariant } from "../lib/api/index.js";
3
+ export declare function useEuTyreLabels(variants: TyreVariant[]): EuTyreLabel[];
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as u,useState as n}from"react";import{loadEuTyreLabels as i}from"../lib/tyres/eu-tyre-label.js";function m(t){const[r,s]=n([]),l=t.map(e=>e.eprelRegistrationNumber??"").join(",");return u(()=>{let e=!0;return i(t).then(o=>{e&&s(o)}),()=>{e=!1}},[l]),r}export{m as useEuTyreLabels};
@@ -0,0 +1,17 @@
1
+ export interface FinishSwatch {
2
+ name: string;
3
+ color: string;
4
+ src: string;
5
+ }
6
+ export interface FinishSelection {
7
+ selectedIdx: number;
8
+ setSelectedIdx: (i: number) => void;
9
+ hoverIdx: number | null;
10
+ setHoverIdx: (i: number | null) => void;
11
+ availability: boolean[];
12
+ finish: FinishSwatch | undefined;
13
+ shownSrc: string | null;
14
+ showSwatches: boolean;
15
+ probes: React.ReactNode;
16
+ }
17
+ export declare function useFinishSelection(finishes: FinishSwatch[], cover: string | null, defaultFinish?: string): FinishSelection;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as h}from"react/jsx-runtime";import S from"next/image";import{useEffect as w,useMemo as y,useState as i}from"react";function A(s,x,d){const[n,o]=i(()=>{const e=d?s.findIndex(t=>t.name===d):-1;return e>=0?e:0}),[l,a]=i(null),[c,I]=i(()=>s.map(()=>!0)),g=e=>{I(t=>{if(t[e]===!1)return t;const f=[...t];return f[e]=!1,f})},r=y(()=>c.map((e,t)=>e?t:-1).filter(e=>e!==-1),[c]);w(()=>{if(r.length===0){n!==-1&&o(-1),l!==null&&a(null);return}n>=0&&!r.includes(n)&&o(r[0]),l!==null&&!r.includes(l)&&a(null)},[r,n,l]);const u=l??n,m=u>=0?s[u]:void 0,p=m?.src??x,b=r.length>=2,v=s.length>0?h("div",{className:"hidden","aria-hidden":!0,children:s.map((e,t)=>h(S,{src:e.src,alt:"",width:16,height:16,loading:"eager",onError:()=>g(t)},e.src))}):null;return{selectedIdx:n,setSelectedIdx:o,hoverIdx:l,setHoverIdx:a,availability:c,finish:m,shownSrc:p,showSwatches:b,probes:v}}export{A as useFinishSelection};
@@ -0,0 +1,9 @@
1
+ export type HeaderStickyMode = "none" | "always" | "on_scroll_up";
2
+ export declare function useHeaderBar({ stickyMode, heightPx }: {
3
+ stickyMode: HeaderStickyMode;
4
+ heightPx: number;
5
+ }): {
6
+ headerRef: import("react").RefObject<HTMLElement | null>;
7
+ scrolled: boolean;
8
+ navHidden: boolean;
9
+ };
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as u,useRef as w,useState as m}from"react";import{HEADER_DRAWN_HEIGHT_VAR as p,HEADER_SET_HEIGHT_VAR as R}from"efficient-web-builder/render/lib/puck/header-clearance";function A({stickyMode:o,heightPx:i}){const c=w(null),[E,b]=m(!1),[v,f]=m(!1);return u(()=>{const e=c.current?.ownerDocument?.defaultView??window,s=i;let n=e.scrollY;function l(){const t=e.scrollY;b(t>10),o==="on_scroll_up"&&(t<=s?f(!1):t>n+4?f(!0):t<n-4&&f(!1)),n=t}return l(),e.addEventListener("scroll",l,{passive:!0}),()=>e.removeEventListener("scroll",l)},[o,i]),u(()=>{o!=="on_scroll_up"&&f(!1)},[o]),u(()=>{const e=c.current?.ownerDocument?.documentElement;e&&e.style.setProperty(R,`${i}px`)},[i]),u(()=>{const e=c.current,s=e?.ownerDocument,n=s?.defaultView;if(!e||!s||!n)return;let l="";const t=a=>{const r=`${Math.round(a)}px`;r!==l&&(l=r,s.documentElement.style.setProperty(p,r),s.body?.style.setProperty(p,r))};if(typeof n.ResizeObserver!="function"){t(e.getBoundingClientRect().height);return}const d=new n.ResizeObserver(a=>{const r=a[0]?.borderBoxSize?.[0];t(r?r.blockSize:e.getBoundingClientRect().height)});return d.observe(e),()=>d.disconnect()},[]),u(()=>{const e=c.current?.ownerDocument?.documentElement;e&&e.setAttribute("data-header-sticky",o)},[o]),{headerRef:c,scrolled:E,navHidden:v}}export{A as useHeaderBar};
@@ -0,0 +1,10 @@
1
+ export interface LightboxItem {
2
+ src: string;
3
+ alt: string;
4
+ }
5
+ export interface Lightbox {
6
+ item: LightboxItem | null;
7
+ open: (src: string, alt: string) => void;
8
+ close: () => void;
9
+ }
10
+ export declare function useLightbox(): Lightbox;
@@ -0,0 +1 @@
1
+ "use client";import{useState as u}from"react";function s(){const[t,e]=u(null);return{item:t,open:(n,o)=>e({src:n,alt:o}),close:()=>e(null)}}export{s as useLightbox};
@@ -0,0 +1,8 @@
1
+ import { type RefObject } from "react";
2
+ export declare function useModalDismiss({ active, onDismiss, focusRef, lockScroll, scopeRef, }: {
3
+ active: boolean;
4
+ onDismiss: () => void;
5
+ focusRef?: RefObject<HTMLElement | null>;
6
+ lockScroll?: boolean;
7
+ scopeRef?: RefObject<HTMLElement | null>;
8
+ }): void;
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as o}from"react";function l({active:e,onDismiss:d,focusRef:m,lockScroll:c=!0,scopeRef:r}){o(()=>{if(!e)return;const t=r?.current?.ownerDocument??document,n=u=>{u.key==="Escape"&&d()};return t.addEventListener("keydown",n),()=>t.removeEventListener("keydown",n)},[e,d,r]),o(()=>{if(!e||!c)return;const t=(r?.current?.ownerDocument??document).body,n=t.style.overflow;return t.style.overflow="hidden",()=>{t.style.overflow=n}},[e,c,r]),o(()=>{if(!e)return;const t=(r?.current?.ownerDocument??document).documentElement,n=u=>{const i=Number(t.getAttribute(s)||0)+u;i>0?t.setAttribute(s,String(i)):t.removeAttribute(s)};return n(1),()=>n(-1)},[e,r]),o(()=>{e&&m?.current?.focus()},[e,m])}const s="data-sf-overlay";export{l as useModalDismiss};
@@ -0,0 +1,12 @@
1
+ import { type NewsletterSignupFields, type NewsletterSource } from "../lib/newsletter-signup.js";
2
+ export type NewsletterSignupStatus = "idle" | "sending" | "sent" | "error" | "invalid";
3
+ export interface NewsletterSignup {
4
+ status: NewsletterSignupStatus;
5
+ error: unknown;
6
+ submit: (fields: NewsletterSignupFields) => Promise<void>;
7
+ reset: () => void;
8
+ }
9
+ export declare function useNewsletterSignup({ source, dryRun, }: {
10
+ source: NewsletterSource;
11
+ dryRun?: boolean;
12
+ }): NewsletterSignup;
@@ -0,0 +1 @@
1
+ "use client";import{useCallback as u,useRef as p,useState as l}from"react";import{products as d}from"../lib/api/index.js";import{isValidEmail as b}from"../lib/email-shape.js";import{newsletterSubscribeBody as S}from"../lib/newsletter-signup.js";function N({source:s,dryRun:n=!1}){const[o,e]=l("idle"),[a,t]=l(null),r=p(!1),c=u(()=>{r.current=!1,t(null),e("idle")},[]),f=u(async i=>{if(!r.current){if(!b(i.email)){e("invalid");return}r.current=!0,t(null),e("sending");try{n||await d.createNewsletterSubscription(S(i,s))}catch(m){r.current=!1,t(m),e("error");return}r.current=!1,e("sent")}},[s,n]);return{status:o,error:a,submit:f,reset:c}}export{N as useNewsletterSignup};
@@ -0,0 +1,14 @@
1
+ import { type PreOrderSize } from "../lib/wheels/pre-order-intent.js";
2
+ export type PreOrderStatus = "idle" | "sending" | "sent" | "error" | "invalid";
3
+ export interface PreOrderIntentInput {
4
+ productSlug: string;
5
+ size: PreOrderSize;
6
+ email: string;
7
+ dryRun?: boolean;
8
+ }
9
+ export interface PreOrderIntentSignup {
10
+ status: PreOrderStatus;
11
+ submit: (input: PreOrderIntentInput) => Promise<void>;
12
+ reset: () => void;
13
+ }
14
+ export declare function usePreOrderIntent(): PreOrderIntentSignup;
@@ -0,0 +1 @@
1
+ "use client";import{useCallback as n,useRef as f,useState as l}from"react";import{products as d}from"../lib/api/index.js";import{isValidEmail as m}from"../lib/email-shape.js";import{preOrderIntentBody as p}from"../lib/wheels/pre-order-intent.js";function g(){const[s,r]=l("idle"),e=f(!1),u=n(()=>{e.current=!1,r("idle")},[]),i=n(async({productSlug:a,size:c,email:t,dryRun:o=!1})=>{if(!e.current){if(!m(t)){r("invalid");return}e.current=!0,r("sending");try{o||await d.createPreOrderIntent(p(a,c,t))}catch{e.current=!1,r("error");return}e.current=!1,r("sent")}},[]);return{status:s,submit:i,reset:u}}export{g as usePreOrderIntent};
@@ -0,0 +1,54 @@
1
+ import { type ProductSummary, type WheelSummary } from "../lib/api/index.js";
2
+ export declare const loadUnifiedProductCatalog: (force?: boolean) => Promise<(({
3
+ name: string;
4
+ slug: string;
5
+ designCode?: string;
6
+ process: import("../lib/api/types.js").components["schemas"]["Process"];
7
+ categories?: string[];
8
+ brand?: string;
9
+ brandLogo?: string | null;
10
+ sizes: number[];
11
+ sizePairs?: import("../lib/api/types.js").components["schemas"]["SizePair"][];
12
+ setWheelCount?: number;
13
+ handed?: boolean;
14
+ prices: import("../lib/api/types.js").components["schemas"]["Prices"];
15
+ msrpPrices: import("../lib/api/types.js").components["schemas"]["MsrpPrices"];
16
+ spokes: number;
17
+ mesh: boolean;
18
+ badge: import("../lib/api/types.js").components["schemas"]["Badge"];
19
+ inStock?: boolean;
20
+ finishes: import("../lib/api/types.js").components["schemas"]["Finish"][];
21
+ spec: import("../lib/api/types.js").components["schemas"]["WheelSpec"] | null;
22
+ coverImage: string | null;
23
+ defaultFinish?: string | null;
24
+ defaultFinishRenderings?: string[];
25
+ description: string;
26
+ listable?: boolean;
27
+ } & {
28
+ kind: "alloy-wheel";
29
+ } & {
30
+ kind: "alloy-wheel";
31
+ }) | ({
32
+ name: string;
33
+ slug: string;
34
+ brand: string;
35
+ brandLogo?: string | null;
36
+ designCode: string;
37
+ description: string;
38
+ coverImage: string | null;
39
+ sizes: string[];
40
+ rimDiameters: number[];
41
+ variantCount: number;
42
+ prices: import("../lib/api/types.js").components["schemas"]["CompatibleTyrePrices"];
43
+ inStock: boolean;
44
+ treadPattern: string;
45
+ tyreTypes: string[];
46
+ speedRatings: string[];
47
+ } & {
48
+ kind: "tyre";
49
+ } & {
50
+ kind: "tyre";
51
+ }))[]>;
52
+ export declare const loadProductCatalog: (force?: boolean) => Promise<WheelSummary[]>;
53
+ export declare function useProductCatalog(): WheelSummary[] | null;
54
+ export declare function useUnifiedProductCatalog(enabled?: boolean): ProductSummary[] | null;
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as s,useState as f}from"react";import{storefrontAdmin as a}from"../lib/api/index.js";import{getEditorSiteId as c}from"efficient-web-builder/render/lib/editor-site";import{makeSessionLoader as d}from"efficient-web-builder/render/lib/editor-session-loader";const n=d({fetch:(t,e)=>a.listProducts(t,{siteId:e,kinds:["alloy-wheel","tyre"]}),keyBy:c}),m=(t=!1)=>n(t).then(e=>e.filter(o=>o.kind==="alloy-wheel"));function u(t,e=!0){const[o,i]=f(null);return s(()=>{if(!e)return;let r=!1;return t().then(l=>{r||i(l)}),()=>{r=!0}},[t,e]),e?o:null}function C(){return u(m)}function P(t=!0){return u(n,t)}export{m as loadProductCatalog,n as loadUnifiedProductCatalog,C as useProductCatalog,P as useUnifiedProductCatalog};
@@ -0,0 +1,39 @@
1
+ import { type VehicleFit } from "./fitment/useVehicleFit.js";
2
+ import { type OptionFact, type OptionRow } from "../lib/catalog/product-options.js";
3
+ import { type PurchaseOffer } from "../lib/catalog/purchase.js";
4
+ import type { StorePart, StoreProduct } from "../lib/catalog/store-product.js";
5
+ import type { PurchaseChoice } from "../lib/commerce.js";
6
+ import type { Currency } from "../lib/api/index.js";
7
+ import { type SelectionPriceDisplay } from "../lib/wheels/price-display.js";
8
+ export interface ProductSelection {
9
+ picked: Record<string, string>;
10
+ shown: Record<string, string>;
11
+ pick: (key: string, value: string) => void;
12
+ qty: number;
13
+ setQty: (n: number) => void;
14
+ choice: PurchaseChoice;
15
+ setChoice: (fn: (c: PurchaseChoice) => PurchaseChoice) => void;
16
+ angleIdx: number;
17
+ setAngleIdx: (i: number) => void;
18
+ showValidation: boolean;
19
+ setShowValidation: (b: boolean) => void;
20
+ manualMode: boolean;
21
+ setManualMode: (fn: (m: boolean) => boolean) => void;
22
+ vehicle: VehicleFit;
23
+ fitmentSet: boolean;
24
+ rows: OptionRow[];
25
+ facts: OptionFact[];
26
+ part: StorePart | null;
27
+ outOfStock: boolean;
28
+ offer: PurchaseOffer;
29
+ preOrder: boolean;
30
+ canAddToCart: boolean;
31
+ currency: Currency;
32
+ price: SelectionPriceDisplay;
33
+ unit: number;
34
+ set: number;
35
+ msrpLabel: string | null;
36
+ }
37
+ export declare function useProductSelection(product: StoreProduct, { editing, }?: {
38
+ editing?: boolean;
39
+ }): ProductSelection;
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as _,useState as c}from"react";import{useCurrency as j}from"./CurrencyContext.js";import{useVehicleFit as D}from"./fitment/useVehicleFit.js";import{askableOptions as G,resolvePart as H,shownOptions as N,staleOptions as R,statedOptions as z}from"../lib/catalog/product-options.js";import{wheelForVehicle as B}from"../lib/catalog/from-wheel.js";import{DEFAULT_PURCHASE_STATE as y,purchaseOffer as J,vehicleGate as K}from"../lib/catalog/purchase.js";import{formatSelectionWasPrice as X,resolveSelectionPrice as Y}from"../lib/wheels/price-display.js";import{isPreOrderWheel as Z}from"../lib/wheels/pre-order.js";function ae(t,{editing:P=!1}={}){const[o,d]=c({}),[l,v]=c(y.qty),[h,A]=c(y.choice),[O,T]=c(0),[x,C]=c(!1),[a,E]=c(!1),p=D({editing:P,autoApply:!0}),s=B(t,a?null:p.fit),S=G(s,o),M=z(s,o),V=N(s,o),e=H(s,o),q=e!=null&&!e.inStock,f=R(s,o).join("|");_(()=>{if(!f)return;const r=new Set(f.split("|"));d(m=>{const i={...m};for(const W of r)delete i[W];return i})},[f]);const{currency:u}=j(),k=J(s,e,{choice:h,qty:l}),n=Y({prices:t.anchorPrices,msrpPrices:t.anchorMsrpPrices},e?{components:k.components}:null,u,l),F=n.unit??0,Q=n.setTotal??0,b=X(n,u),w=a||p.appliedName!=="",g=K(t)==="required"?w:!0,I=S.every(r=>r.chosen!==null)&&g&&e!=null&&e.inStock&&n.priced,L=Z({variants:t.parts,inStock:t.inStock,priced:n.priced});function U(r,m){d(i=>({...i,[r]:m}))}return{picked:o,shown:V,pick:U,qty:l,setQty:v,choice:h,setChoice:A,angleIdx:O,setAngleIdx:T,showValidation:x,setShowValidation:C,manualMode:a,setManualMode:E,vehicle:p,fitmentSet:w,rows:S,facts:M,part:e,outOfStock:q,offer:k,preOrder:L,canAddToCart:I,currency:u,price:n,unit:F,set:Q,msrpLabel:b}}export{ae as useProductSelection};
@@ -0,0 +1,14 @@
1
+ export type StockAlertStatus = "idle" | "sending" | "sent" | "error" | "invalid";
2
+ export interface StockAlertSignupInput {
3
+ partNumbers: string[];
4
+ email: string;
5
+ productSlug: string;
6
+ subscribeToOffers?: boolean;
7
+ dryRun?: boolean;
8
+ }
9
+ export interface StockAlertSignup {
10
+ status: StockAlertStatus;
11
+ submit: (input: StockAlertSignupInput) => Promise<void>;
12
+ reset: () => void;
13
+ }
14
+ export declare function useStockAlertSignup(): StockAlertSignup;
@@ -0,0 +1 @@
1
+ "use client";import{useCallback as i,useRef as S,useState as d}from"react";import{products as c}from"../lib/api/index.js";import{isValidEmail as E}from"../lib/email-shape.js";import{NEWSLETTER_SOURCE as b}from"../lib/newsletter-signup.js";function N(){const[n,t]=d("idle"),e=S(!1),a=i(()=>{e.current=!1,t("idle")},[]),o=i(async({partNumbers:u,email:l,productSlug:f,subscribeToOffers:m=!1,dryRun:s=!1})=>{if(e.current)return;const r=l.trim();if(!E(r)){t("invalid");return}e.current=!0,t("sending");try{if(!s)for(const p of u)await c.createStockAlert({partNumber:p,email:r,productSlug:f})}catch{e.current=!1,t("error");return}if(m&&!s)try{await c.createNewsletterSubscription({email:r,source:b.stockAlertOptIn})}catch{}e.current=!1,t("sent")},[]);return{status:n,submit:o,reset:a}}export{N as useStockAlertSignup};
@@ -0,0 +1,2 @@
1
+ import { type Review } from "../lib/api/index.js";
2
+ export declare function useStorefrontReviews(limit?: number, designCode?: string): Review[] | null;
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as f,useState as l}from"react";import{products as o}from"../lib/api/index.js";function p(e,t){const[u,r]=l(null);return f(()=>{let s=!1;return r(null),o.listReviews({...e?{limit:e}:{},...t?{designCode:t}:{}}).then(n=>{s||r(n)}),()=>{s=!0}},[e,t]),u}export{p as useStorefrontReviews};
@@ -0,0 +1,2 @@
1
+ import { type TyreSummary } from "../lib/api/index.js";
2
+ export declare function useTyreCatalog(needed: boolean): ReadonlyMap<string, TyreSummary>;
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as o,useState as u}from"react";import{products as s}from"../lib/api/index.js";const c=new Map;function p(a){const[e,n]=u(null);return o(()=>{if(!a||e)return;let l=!0;return s.listCatalog(["tyre"]).then(t=>{l&&n(new Map(t.flatMap(r=>r.kind==="tyre"?[[r.slug,r]]:[])))}).catch(t=>{console.error("[useTyreCatalog] tyre catalog read failed",t)}),()=>{l=!1}},[a,e]),e??c}export{p as useTyreCatalog};
@@ -0,0 +1,6 @@
1
+ import { type Tyre } from "../lib/api/index.js";
2
+ export type TyreDetailState = "idle" | "loading" | "ready" | "error";
3
+ export declare function useTyreDetail(slug: string | null, enabled: boolean): {
4
+ state: TyreDetailState;
5
+ tyre: Tyre | null;
6
+ };
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as u,useState as a}from"react";import{products as d}from"../lib/api/index.js";const o=new Map;function h(e){const t=o.get(e);if(t)return t;const c=d.getTyre(e).catch(r=>{throw o.delete(e),r});return o.set(e,c),c}function p(e,t){const[c,r]=a("idle"),[i,f]=a(null);return u(()=>{if(!t||!e)return;let n=!1;return r("loading"),h(e).then(s=>{n||(f(s),r("ready"))}).catch(()=>{n||r("error")}),()=>{n=!0}},[e,t]),{state:c,tyre:i}}export{p as useTyreDetail};
@@ -0,0 +1,5 @@
1
+ import { type TyreFitAnswer, type TyreFitVehicleQuery } from "../lib/tyres/tyre-vehicle-fitment.js";
2
+ export declare function useTyreFitAnswer(slug: string, vehicle: TyreFitVehicleQuery | null): {
3
+ answer: TyreFitAnswer | null;
4
+ loading: boolean;
5
+ };
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as k,useState as m}from"react";import{loadTyreVehicleFitment as p}from"../lib/tyres/tyre-vehicle-fitment.js";function T(i,e){const[d,o]=m(null),[y,r]=m(!1),s=e?.make??"",l=e?.model??"",t=e?.year??null,a=e?.modification??"",u=e!==null;return k(()=>{if(!u||t===null){o(null),r(!1);return}let f=!0;return o(null),r(!0),p(i,{make:s,model:l,year:t,modification:a}).then(c=>{if(!f)return;const n=c.vehicle;n.make!==s||n.model!==l||n.year!==t||n.modification!==a||(o(c),r(!1))}),()=>{f=!1}},[i,s,l,t,a,u]),{answer:d,loading:y}}export{T as useTyreFitAnswer};
@@ -0,0 +1,6 @@
1
+ import { type Wheel } from "../lib/api/index.js";
2
+ export type WheelDetailState = "idle" | "loading" | "ready" | "error";
3
+ export declare function useWheelDetail(slug: string, enabled: boolean): {
4
+ state: WheelDetailState;
5
+ wheel: Wheel | null;
6
+ };
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as h,useState as a}from"react";import{products as s}from"../lib/api/index.js";const o=new Map;function u(e){const t=o.get(e);if(t)return t;const c=s.getWheel(e).catch(r=>{throw o.delete(e),r});return o.set(e,c),c}function m(e,t){const[c,r]=a("idle"),[i,l]=a(null);return h(()=>{if(!t)return;let n=!1;return r("loading"),u(e).then(f=>{n||(l(f),r("ready"))}).catch(()=>{n||r("error")}),()=>{n=!0}},[e,t]),{state:c,wheel:i}}export{m as useWheelDetail};
@@ -0,0 +1,42 @@
1
+ import { type CardImageBackground } from "efficient-web-builder/format/lib/content/card-image-background";
2
+ import { type CardIndexFormat, type CardOutline } from "efficient-web-builder/format/lib/sections/product-card-style";
3
+ import { type FieldUsageAnswer } from "../../lib/content/field-usage.js";
4
+ import type { ProductSummary, WheelSummary } from "../../lib/api/index.js";
5
+ import { type PlpColumns } from "../../lib/wheels/plp-grid.js";
6
+ import { type PlpFacetKey, type PlpSortKey } from "../../lib/wheels/plp-filters.js";
7
+ export interface AlloyWheelsListingProps {
8
+ titleLevel?: number;
9
+ heading?: string;
10
+ intro?: string;
11
+ askForCar?: boolean;
12
+ gateHeading?: string;
13
+ gateIntro?: string;
14
+ perPage?: number;
15
+ columns?: PlpColumns;
16
+ defaultSort?: PlpSortKey;
17
+ hiddenFacets?: PlpFacetKey[];
18
+ fieldUsage?: readonly FieldUsageAnswer[];
19
+ showPrice?: boolean;
20
+ showInStock?: boolean;
21
+ kinds?: string[];
22
+ products?: ProductSummary[];
23
+ wheels?: WheelSummary[];
24
+ editing?: boolean;
25
+ coverIndex?: number;
26
+ cardImage?: number | null;
27
+ spinOnHover?: boolean;
28
+ imageBackground?: CardImageBackground;
29
+ showBadge?: boolean;
30
+ showCardSizes?: boolean;
31
+ showCardBuy?: boolean;
32
+ showCardPage?: boolean;
33
+ showCardPrice?: boolean;
34
+ showCardFinishes?: boolean;
35
+ outline?: CardOutline;
36
+ indexBadge?: CardIndexFormat;
37
+ }
38
+ export declare const PLP_GATE_DEFAULTS: {
39
+ readonly heading: "Let's find wheels that fit your car.";
40
+ readonly intro: "Tell us what you drive and we'll show you every set that bolts straight on — bolt pattern, offset and hub bore checked for you.";
41
+ };
42
+ export default function AlloyWheelsListing({ heading, intro, askForCar, gateHeading, gateIntro, perPage, columns, defaultSort, hiddenFacets, fieldUsage, showPrice, showInStock, kinds, products, wheels, editing, coverIndex, cardImage, spinOnHover, imageBackground, showBadge, showCardSizes, showCardBuy, showCardPage, showCardPrice, showCardFinishes, outline, indexBadge, titleLevel, }: AlloyWheelsListingProps): import("react").JSX.Element | null;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as r,jsxs as s,Fragment as se}from"react/jsx-runtime";import{LISTING_CARD_SHOW as B}from"../../lib/sections/card-show-defaults.js";import{useCallback as d,useEffect as Je,useId as Qe,useMemo as l,useRef as Ze,useState as et}from"react";import{CARD_IMAGE_BG_OFF as tt,resolveCardImageBackground as ot}from"efficient-web-builder/format/lib/content/card-image-background";import{cardImageShapeTokens as rt}from"efficient-web-builder/format/lib/content/card-image-shape";import{cardIndexCss as nt,DEFAULT_CARD_INDEX_FORMAT as st,DEFAULT_CARD_OUTLINE as it}from"efficient-web-builder/format/lib/sections/product-card-style";import{answersForKind as ie}from"../../lib/content/field-usage.js";import{useCurrency as lt}from"../CurrencyContext.js";import at from"../NoCurrencyNote.js";import{usePreviewDevice as ct}from"efficient-easel/screen/components/PreviewDeviceContext";import{renderGold as pt,renderHeadline as dt}from"efficient-web-builder/render/components/goldPhrases";import{useUnifiedProductCatalog as mt}from"../useProductCatalog.js";import{scrollBehavior as ht}from"efficient-web-builder/render/components/useReducedMotion";import{normalizePlpColumns as ut,PLP_GRID_GAP_VAR as ft,plpGridVars as gt}from"../../lib/wheels/plp-grid.js";import{plpCardImageSizes as yt}from"../../lib/sections/card-image-sizes.js";import{CARD_ROWS_GRID_CLASS as xt,cardRowsGridStyle as St}from"../WheelCardFrame.js";import{applyPlpFilters as wt,asPlpSortKey as bt,buildPlpFacets as Ct,buildPlpTypeOptions as Nt,buildTyreSizeBoxes as vt,EMPTY_PLP_FILTERS as le,hasActivePlpFilters as Pt,paginatePlp as kt,pickTyreSize as _t,plpTyreSizeBoxesShown as Tt,plpInStockCount as At,plpOpeningSort as zt,plpPriceBounds as Ft,plpShownKinds as It,plpSortKeysFor as Ot,PLP_SORT_LABELS as Bt}from"../../lib/wheels/plp-filters.js";import{itemKind as z,itemSlug as L,itemTyreSizes as Lt,plpBrandVaries as Vt,plpProcessVaries as Rt,plpItemsOfKinds as Et,plpKindNoun as V,resolvePlpKinds as Dt}from"../../lib/catalog/plp-item.js";import{plpGateWords as Kt,plpVehicleCopy as jt}from"../../lib/catalog/plp-vehicle-copy.js";import{oemBadgeSize as Gt,oemTyreSizes as Mt}from"../../lib/tyres/tyre-vehicle-fitment.js";import $t from"../TyreSummaryCard.js";import{wheelsFittingVehicle as Wt}from"../../lib/wheels/plp-fitment-match.js";import Ht from"./PlpActiveChips.js";import{DEFAULT_COVER_INDEX as Ut}from"../../lib/wheels/cover-rendering.js";import Xt from"./PlpCard.js";import Yt from"./PlpPagination.js";import qt from"./PlpSidebar.js";import Jt from"./PlpVehicleBar.js";import Qt from"./PlpVehicleGate.js";import{useVehicleCatalog as Zt}from"./useVehicleCatalog.js";import{useVehicleFit as eo}from"../fitment/useVehicleFit.js";import{usePlpFiltersInUrl as to}from"./usePlpFiltersInUrl.js";import{say as R}from"efficient-web-builder/format/lib/editor-words";const Do={heading:"Let's find wheels that fit your car.",intro:"Tell us what you drive and we'll show you every set that bolts straight on — bolt pattern, offset and hub bore checked for you."};function oo({level:C,className:N,children:v}){return r(C===2?"h2":"h1",{className:N,children:v})}const ro=[];function no({heading:C="",intro:N="",askForCar:v=!0,gateHeading:E="",gateIntro:ae="",perPage:D=24,columns:ce,defaultSort:pe="recommended",hiddenFacets:de=[],fieldUsage:g=ro,showPrice:K=!0,showInStock:me=!0,kinds:he,products:ue,wheels:fe,editing:m=!1,coverIndex:ge=Ut,cardImage:ye,spinOnHover:xe=!1,imageBackground:Se,showBadge:we=!0,showCardSizes:be,showCardBuy:Ce,showCardPage:Ne,showCardPrice:ve,showCardFinishes:Pe,outline:ke=it,indexBadge:j=st,titleLevel:_e}){const{currency:a}=lt(),Te=ot(Se,tt),h=Dt(he),G=ct(),M=ut(ce),Ae=gt(M,m?G:null),ze=yt(M,m?G:null),$=`plp-${Qe().replace(/:/g,"")}`,F=nt($,j),Fe=mt(),W=ue??fe??Fe??[],H=l(()=>Et(W,h),[W,h.join(",")]),o=eo({editing:m,enabled:v,autoApply:!0}),[Ie,I]=et(!1),Oe=zt(pe,h),y=o.applied?.vehicle??null,[t,w]=to({editing:m,openingSort:Oe,appliedVehicle:y,vehicleRestored:o.restored}),p=It(h,t.kind),i=d(e=>w(e),[w]),U=d((e,u)=>{const c=t[e],Ye=c.map(String).includes(u)?c.filter(qe=>String(qe)!==u):[...c,e==="diameters"?Number(u):u];i({...t,[e]:Ye,page:1})},[t,i]),X=d(e=>i({...t,priceMax:e,page:1}),[t,i]),Y=d(e=>i({...t,inStockOnly:e,page:1}),[t,i]),q=d(e=>i({...le,kind:e,inStockOnly:t.inStockOnly,priceMax:t.priceMax,sort:t.sort}),[t.inStockOnly,t.priceMax,t.sort,i]),Be=d(e=>i({...t,sort:e,page:1}),[t,i]),Le=d(e=>{i({...t,page:e}),typeof window<"u"&&window.scrollTo({top:0,behavior:ht()})},[t,i]),J=d(()=>i({...le,sort:t.sort}),[t.sort,i]),{clear:k}=o,Q=d(()=>{k(),I(!0),w(e=>({...e,page:1}))},[k]),Ve=d(()=>{k(),I(!1),w(e=>({...e,page:1}))},[k]),_=y?[y.make,y.model,y.year,y.modification].join("|"):"",T=Ze(null);Je(()=>{if(o.restored){if(T.current===null){T.current=_;return}T.current!==_&&(T.current=_,w(e=>e.page===1?e:{...e,page:1}))}},[o.restored,_,w]);const A=Zt({catalog:H,shownKinds:h,vehicle:y,editing:m}),n=l(()=>{if(!o.fit)return A;const e=A.filter(c=>z(c)==="alloy-wheel"),u=new Set(Wt(e,o.fit).map(c=>c.slug));return A.filter(c=>z(c)!=="alloy-wheel"||u.has(L(c)))},[A,o.fit]),b=de.join(","),Re=l(()=>{const e=new Set(b?b.split(","):[]);return Ct(n,t,a,p,g).filter(u=>!e.has(u.key))},[n,t,a,b,p.join(","),g]),x=l(()=>wt(n,t,a),[n,t,a]),Z=p.length>1,Ee=l(()=>ie(g,"alloy-wheel"),[g]),De=l(()=>ie(g,"tyre"),[g]),ee=l(()=>Vt(x),[x]),Ke=l(()=>Rt(x),[x]),je=l(()=>K?Ft(n,a):null,[n,a,K]),Ge=l(()=>At(n,t,a),[n,t,a]),Me=l(()=>Nt(n,h,t,a),[n,h.join(","),t,a]),$e=d((e,u)=>{const c=_t(n.flatMap(Lt),t.tyreSizes[0]??"",e,u);i({...t,tyreSizes:c?[c]:[],page:1})},[n,t,i]),We=l(()=>{const e=new Set(b?b.split(","):[]);return!Tt(n,p)||e.has("tyreSizes")?null:vt(n,t,a)},[n,t,a,b,p.join(","),g]),f=l(()=>kt(x,t.page,D),[x,t.page,D]),S=V(p),O=jt(p),te=Kt(E,ae,p,h),oe=p.length===1&&p[0]==="tyre",re=o.applied?.stock??null,P=l(()=>Mt(re),[re]),He=l(()=>n.filter(e=>p.includes(z(e))).length,[n,p.join(",")]),ne=H.length===0,Ue=!ne&&n.length===0,Xe=v&&!m&&!o.applied&&!Ie;return h.length===0?null:s("section",{style:rt(ye),children:[v&&r(Jt,{cascade:o.cascade,appliedName:o.appliedName,fit:o.fit,fitSummary:oe&&P.length>0?`Takes ${P.join(" · ")}`:null,resolving:o.resolving,unresolved:oe?!!o.applied&&!o.resolving&&P.length===0:o.unresolved,matchCount:He,copy:O,onAmend:Ve,onClear:Q}),Xe&&r(Qt,{cascade:o.cascade,heading:te.heading,intro:te.intro,ready:o.restored,copy:O,onSkip:()=>I(!0)}),s("div",{className:"px-5 py-10 md:px-[max(2.5rem,calc((100%_-_var(--sf-content-cap,100%))/2_+_2.5rem))]",children:[(C||N)&&s("header",{className:"mb-6",children:[C&&r(oo,{level:_e,className:"font-display text-[clamp(28px,4vw,40px)] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] leading-[1.05] tracking-[-0.02em]",children:dt(C,!1)}),N&&r("p",{className:"mt-2 max-w-[60ch] text-[15px] text-fg-dim",children:pt(N)})]}),s("div",{className:"flex flex-col gap-8 lg:flex-row lg:items-start",children:[r(qt,{facets:Re,filters:t,typeOptions:Me,sizeBoxes:We,sizeMatches:t.tyreSizes.length>0?x.length:null,noun:S,priceBounds:je,inStockCount:me?Ge:null,onToggle:U,onPickType:q,onPickSize:$e,onPriceMax:X,onInStockOnly:Y,onClearAll:J}),s("div",{className:"min-w-0 flex-1",children:[s("div",{className:"mb-4 flex min-h-[34px] flex-wrap items-center justify-between gap-x-4 gap-y-2 border-b border-line pb-3",children:[s("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-x-4 gap-y-2",children:[r("p",{className:"font-mono text-[12px] tabular-nums tracking-[0.08em]",children:f.total===0?s("span",{className:"text-fg-dim",children:["No ",S.many]}):s(se,{children:[s("span",{children:[f.from,"–",f.to]}),s("span",{className:"text-fg-dim",children:[" of ",f.total," ",S.many]})]})}),r(Ht,{filters:t,onToggle:U,onPriceMax:X,onInStockOnly:Y,onPickType:q})]}),s("label",{className:"flex items-center gap-2 font-mono text-[11px] uppercase tracking-[0.16em] text-fg-dim",children:["Sort by",r("select",{value:t.sort,onChange:e=>Be(bt(e.target.value)),className:"cursor-pointer border border-line bg-transparent px-2 py-2 font-mono text-[12px] normal-case tracking-normal text-fg",children:Ot(h).map(e=>r("option",{value:e,children:Bt[e]},e))})]})]}),ne?r("div",{className:"border border-dashed border-line p-10",children:r("p",{className:"font-mono text-[12px] uppercase tracking-[0.16em] text-fg-dim",children:m?S.many==="wheels"?R("No wheels in this website's catalog yet — curate products to see them here."):S.many==="tyres"?R("No tyres in this website's catalog yet — curate products to see them here."):R("No products in this website's catalog yet — curate products to see them here."):"Our catalog is being updated. Please check back shortly."})}):Ue?s("div",{className:"border border-line p-10",children:[s("h3",{className:"font-display text-[22px] font-medium uppercase tracking-[-0.01em]",children:["No confirmed fit for your ",o.appliedName]}),r("p",{className:"mt-2 max-w-[52ch] text-[14px] text-fg-dim",children:O.nothingFits}),s("button",{type:"button",onClick:Q,className:"mt-4 cursor-pointer bg-btn px-4 py-3 font-mono text-[11px] font-bold uppercase tracking-[0.24em] text-btn-ink hover:bg-fg",children:["Show all ",S.many]})]}):f.total===0?s("div",{className:"border border-line p-10",children:[s("h3",{className:"font-display text-[22px] font-medium uppercase tracking-[-0.01em]",children:["No ",S.many," match those filters"]}),r("p",{className:"mt-2 max-w-[46ch] text-[14px] text-fg-dim",children:"Try widening the price range or clearing a filter."}),Pt(t)&&r("button",{type:"button",onClick:J,className:"mt-4 cursor-pointer bg-btn px-4 py-3 font-mono text-[11px] font-bold uppercase tracking-[0.24em] text-btn-ink hover:bg-fg",children:"Clear all filters"})]}):s(se,{children:[F&&r("style",{children:F}),r("div",{className:`${F?`${$} plp-card-grid`:"plp-card-grid"} ${xt}`,style:{...Ae,...St(`var(${ft})`)},children:f.items.map(e=>z(e)==="tyre"?r($t,{item:e,currency:a,fitSize:P.length>0?Gt(e.sizes,P):null,kindLabel:Z?V(["tyre"]).one:null,showBrand:ee,editing:m,fieldUsage:De},`tyre:${L(e)}`):r(Xt,{wheel:e,colours:t.finishes,fit:o.fit,editing:m,kindLabel:Z?V(["alloy-wheel"]).one:null,showBrand:ee,coverIndex:ge,fieldUsage:Ee,showProcess:Ke,spinOnHover:xe,imageBackgroundFill:Te,showBadge:we,outline:ke,indexBadge:j,showCardSizes:be??B.showCardSizes,showCardBuy:Ce??B.showCardBuy,showCardPage:Ne??B.showCardPage,showCardPrice:ve??!0,showCardFinishes:Pe??!0,imageSizes:ze},`wheel:${L(e)}`))})]}),r(Yt,{page:f.page,pageCount:f.pageCount,onPage:Le}),r(at,{editing:m})]})]})]})]})}export{Do as PLP_GATE_DEFAULTS,no as default};
@@ -0,0 +1,9 @@
1
+ import type { ProductKind } from "../../lib/api/index.js";
2
+ import { type PlpFacetKey, type PlpFilterState } from "../../lib/wheels/plp-filters.js";
3
+ export default function PlpActiveChips({ filters, onToggle, onPriceMax, onInStockOnly, onPickType, }: {
4
+ filters: PlpFilterState;
5
+ onToggle: (key: PlpFacetKey, value: string) => void;
6
+ onPriceMax: (value: number | null) => void;
7
+ onInStockOnly: (value: boolean) => void;
8
+ onPickType: (kind: ProductKind | null) => void;
9
+ }): import("react").JSX.Element | null;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as r,jsxs as u}from"react/jsx-runtime";import{useCurrency as c}from"../CurrencyContext.js";import{formatPrice as f}from"../../lib/commerce.js";import{plpActiveChips as m}from"../../lib/wheels/plp-filters.js";function p({filters:t,onToggle:l,onPriceMax:s,onInStockOnly:i,onPickType:o}){const{currency:a}=c(),n=m(t,a,f);return n.length===0?null:r("ul",{className:"flex list-none flex-wrap items-center gap-2",children:n.map(e=>r("li",{children:u("button",{type:"button",onClick:()=>e.key==="price"?s(null):e.key==="inStock"?i(!1):e.key==="kind"?o(null):l(e.key,e.value),className:`flex cursor-pointer items-center gap-2 px-2 py-1 font-mono text-[10px] uppercase tracking-[0.14em] text-bg hover:bg-fg ${e.key==="inStock"?"bg-green":"bg-accent"}`,children:[e.label,r("span",{"aria-hidden":"true",children:"✕"}),r("span",{className:"sr-only",children:"Remove filter"})]})},`${e.key}:${e.value}`))})}export{p as default};
@@ -0,0 +1,27 @@
1
+ import type { WheelSummary } from "../../lib/api/index.js";
2
+ import { type CardIndexFormat, type CardOutline } from "efficient-web-builder/format/lib/sections/product-card-style";
3
+ import { type FieldUsageAnswer } from "../../lib/content/field-usage.js";
4
+ import { type VehicleFitment } from "../../lib/wheels/plp-fitment-match.js";
5
+ export default function PlpCard({ wheel, colours, fit, editing, brandPlate, kindLabel, showBrand, showProcess, coverIndex, fieldUsage, spinOnHover, imageBackgroundFill, showBadge, outline, indexBadge, showCardSizes, showCardBuy, showCardPage, showCardPrice, showCardFinishes, imageSizes, }: {
6
+ wheel: WheelSummary;
7
+ colours?: readonly string[];
8
+ fit?: VehicleFitment | null;
9
+ editing?: boolean;
10
+ brandPlate?: boolean;
11
+ kindLabel?: string | null;
12
+ showBrand?: boolean;
13
+ showProcess?: boolean;
14
+ coverIndex?: number;
15
+ fieldUsage?: readonly FieldUsageAnswer[];
16
+ spinOnHover?: boolean;
17
+ imageBackgroundFill?: string;
18
+ showBadge?: boolean;
19
+ outline?: CardOutline;
20
+ indexBadge?: CardIndexFormat;
21
+ showCardSizes?: boolean;
22
+ showCardBuy?: boolean;
23
+ showCardPage?: boolean;
24
+ showCardPrice?: boolean;
25
+ showCardFinishes?: boolean;
26
+ imageSizes?: string;
27
+ }): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as t,Fragment as oe,jsxs as re}from"react/jsx-runtime";import{CARD_IMAGE_SIZES as te}from"../../lib/sections/card-image-sizes.js";import{LISTING_CARD_SHOW as p}from"../../lib/sections/card-show-defaults.js";import ne from"next/image";import{useState as se}from"react";import ae from"../BrandPlate.js";import{useCurrency as ie}from"../CurrencyContext.js";import le from"../FinishSwatches.js";import{wheelCardEyebrow as ce,wheelCardEyebrowShows as me}from"../ProductCardEyebrow.js";import{withRMark as h}from"efficient-web-builder/render/components/RMark";import de from"../WheelPlaceholder.js";import ue,{cardSpecFields as fe,WheelCardBadge as S,WheelCardCorners as pe}from"../WheelCardFrame.js";import{formatPrice as he}from"../../lib/commerce.js";import{CARD_IMAGE_BG_OFF as Se}from"efficient-web-builder/format/lib/content/card-image-background";import{itemBrand as be}from"../../lib/catalog/plp-item.js";import{CARD_INDEX_BADGE_CLASS as ge,CARD_INDEX_CLASS as Ce,DEFAULT_CARD_INDEX_FORMAT as _e,DEFAULT_CARD_OUTLINE as Ee}from"efficient-web-builder/format/lib/sections/product-card-style";import{applyCardAnswers as Ae}from"../../lib/content/field-usage.js";import{useWheelCardBottom as Ie}from"./useWheelCardBottom.js";import{setLabel as we}from"../../lib/wheels/variants.js";import{setBuildLabel as Fe,wheelCardPriceLine as Le,setIsWide as ye,setSecondSrc as Be,summarySetBuild as De}from"../../lib/wheels/set-mode.js";import{PLP_GRID_GAP_VAR as Pe}from"../../lib/wheels/plp-grid.js";import{FITMENT_FIELD_SEPARATOR as Re,wheelCardSpecFacts as ve}from"../../lib/wheels/plp-fitment-match.js";import{formatSelectionPrice as xe,formatSelectionWasPrice as Ne,resolveSelectionPrice as Te}from"../../lib/wheels/price-display.js";import{coverSrcForWheel as We,DEFAULT_COVER_INDEX as Ge,resolvePaintedSrc as $e}from"../../lib/wheels/cover-rendering.js";import{usePlpCardSelection as ke}from"./usePlpCardSelection.js";const Oe=[];function je({wheel:o,colours:B,fit:b=null,editing:D=!1,brandPlate:P=!1,kindLabel:g=null,showBrand:C=!0,showProcess:_=!1,coverIndex:R=Ge,fieldUsage:c=Oe,spinOnHover:v=!1,imageBackgroundFill:x=Se,showBadge:N=!0,outline:T=Ee,indexBadge:W=_e,showCardSizes:G=p.showCardSizes,showCardBuy:$=p.showCardBuy,showCardPage:k=p.showCardPage,showCardPrice:O=!0,showCardFinishes:E=!0,imageSizes:j=te}){const{currency:i}=ie(),e=ke(o,B),M=We(o,R,e.finish?.name,e.shownSrc,b?.holes),n=Te(o,e.selectedVariant,i,1),V=Ne(n,i),[A,z]=se(()=>new Set),X=r=>z(a=>a.has(r)?a:new Set(a).add(r)),m=$e({overrideSrc:M,hookSrc:e.shownSrc,failed:A}),d=be(o),I=Ie({wheel:o,sel:e,price:n,editing:D,show:{buy:$,page:k}}),Me=e.detailState==="ready",Ve=e.unsellable,H=v?"transition-transform duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)] group-hover:rotate-[72deg]":"",w=(r,a)=>t(ne,{src:r,alt:a,width:800,height:800,sizes:j,className:["block h-full w-full object-contain",H].filter(Boolean).join(" "),draggable:!1,onError:()=>X(r)},r),F=e.finish?`${o.name} — ${e.finish.name}`:o.name,U=m?w(m,F):t(de,{imageLabel:o.name}),L=De(o),s=ye(L),Z=Fe(L),u=s?Be(o.finishes?.find(r=>r.name===e.finish?.name),m):null,q=u&&!A.has(u)?w(u,`${F} — right`):void 0,y=W!=="off"?t("span",{"aria-hidden":!0,className:`${Ce} ${ge}`}):null,l=N?o.badge:null,f=s?Z:null,J=n.onSale||l||f||s?t(pe,{set:s,numbered:y!=null,right:[n.onSale?t(S,{tone:"solid",children:"Sale"}):null,f?t(S,{tone:"outline",children:f}):l?t(S,{tone:l==="new"?"solid":"outline",children:l==="new"?"New":"Bestseller"}):null]}):null,K=E&&e.finishes.length>0&&e.availability.some(Boolean)?t(le,{finishes:e.finishes,availability:e.availability,selectedIdx:e.selectedIdx,hoverIdx:e.hoverIdx,activeFinish:e.finish,onSelect:e.setSelectedIdx,onHover:e.setHoverIdx,showLabel:!1}):null,Q=Ae(ve(o,b,{sizes:G}),c).map(r=>r.text),Y=n.priced&&n.setTotal!=null&&e.selectedVariant?`${we(e.selectedVariant)} · ${he(n.setTotal,i)}`:null,ee=ce({kindLabel:g,brand:C&&d?h(d):null,process:_&&o.process?h(o.process):null},c);return re(oe,{children:[t(ue,{href:`/wheels/${o.slug}`,wide:s,setGridGap:`var(${Pe})`,identityLink:!0,containerProps:{onPointerEnter:e.arm,onTouchStart:e.arm,onFocusCapture:e.arm},probes:e.probes,outline:T,imageBackgroundFill:x,indexBadge:y,badges:J,image:U,imageSecond:q,plate:P?t(ae,{brand:d,logo:o.brandLogo}):null,eyebrow:ee,wholeCardLink:!0,reserveEyebrow:me({kind:!!g,brand:C,process:_},c),name:h(o.name),spec:fe(Q,Re),was:V,price:Le(xe(n,i),n.priced),metaLine:Y,swatches:K,reserveSwatches:E,showPrice:O,actions:I.actions}),I.dialog]})}export{je as default};
@@ -0,0 +1,6 @@
1
+ export default function PlpInStockToggle({ checked, count, noun, onChange, }: {
2
+ checked: boolean;
3
+ count: number;
4
+ noun: string;
5
+ onChange: (value: boolean) => void;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as t,jsxs as o}from"react/jsx-runtime";import r from"../SiteSwitch.js";function l({checked:n,count:e,noun:s,onChange:a}){return o(r,{checked:n,onChange:a,ariaLabel:`In stock only (${e} ${s})`,tone:"green",className:"flex cursor-pointer items-center gap-3 py-1 text-[13px]",children:[t("span",{className:"flex-1",children:"In stock only"}),t("span",{className:"font-mono text-[11px] tabular-nums text-fg-dim",children:e})]})}export{l as default};
@@ -0,0 +1,10 @@
1
+ import type { WheelVariant } from "../../lib/api/index.js";
2
+ export default function PlpNotifyMeDialog({ wheelName, productSlug, finishName, variants, initialSize, onClose, editing, }: {
3
+ wheelName: string;
4
+ productSlug: string;
5
+ finishName: string | null;
6
+ variants: WheelVariant[];
7
+ initialSize?: string;
8
+ onClose: () => void;
9
+ editing?: boolean;
10
+ }): import("react").JSX.Element | null;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useId as y,useRef as R,useState as d}from"react";import{useCurrency as _}from"../CurrencyContext.js";import{formatPrice as D}from"../../lib/commerce.js";import{withRMark as k}from"efficient-web-builder/render/components/RMark";import{useModalDismiss as I}from"../useModalDismiss.js";import{useStockAlertSignup as P}from"../useStockAlertSignup.js";import{UNPRICED_LABEL as E,resolveSetPrice as T}from"../../lib/wheels/price-display.js";function A({wheelName:m,productSlug:N,finishName:p,variants:i,initialSize:w,onClose:o,editing:z=!1}){const s=y(),h=y(),f=R(null),{currency:u}=_(),n=P(),[C,M]=d(()=>w??i[0]?.size??""),[l,j]=d(""),[x,W]=d(!1);I({active:!0,onDismiss:o,focusRef:f});const a=i.find(t=>t.size===C)??i[0];if(!a)return null;const B=n.status==="sent",c=n.status==="sending",g=n.status==="invalid"?"Please enter a valid email address.":n.status==="error"?"Couldn't save that — please try again.":null;function S(){a&&n.submit({partNumbers:a.components.map(t=>t.partNumber),email:l,productSlug:N,subscribeToOffers:x,dryRun:z})}return e("div",{role:"dialog","aria-modal":"true","aria-labelledby":s,onClick:t=>{t.target===t.currentTarget&&o()},className:"fixed inset-0 z-[90] flex items-center justify-center overflow-y-auto p-6 backdrop-blur-[6px]",style:{background:"color-mix(in oklab, var(--bg) 78%, transparent)"},children:r("div",{ref:f,tabIndex:-1,className:"relative w-[420px] max-w-full border-2 border-accent bg-surface text-left shadow-[0_24px_60px_rgba(0,0,0,0.55)] outline-none",children:[e("button",{type:"button",onClick:o,"aria-label":"Close",className:"absolute right-[10px] top-[10px] z-[2] flex h-9 w-9 cursor-pointer items-center justify-center text-fg-dim transition-colors hover:text-accent",children:e("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":!0,children:e("path",{d:"M6 6l12 12M18 6 6 18"})})}),B?r("div",{className:"px-6 py-8 text-center",children:[e("span",{className:"mx-auto mb-4 grid h-16 w-16 place-items-center rounded-full border-[1.5px] border-accent bg-accent/15",children:e("svg",{width:"30",height:"30",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2.5","aria-hidden":!0,children:e("path",{d:"M20 6 9 17l-5-5"})})}),e("h3",{id:s,className:"font-display text-[22px] font-medium uppercase leading-tight tracking-[-0.02em]",children:"You're on the list"}),r("p",{className:"mx-auto mt-2 max-w-[34ch] text-[13px] leading-[1.6] text-fg-dim",children:["We'll alert ",e("strong",{className:"font-normal text-fg",children:l.trim()})," as soon as the ",k(m)," in ",a.size," is back. Keep an eye on your inbox."]}),e("button",{type:"button",onClick:o,className:"mt-6 w-full cursor-pointer border border-line px-4 py-3 font-mono text-[11px] font-bold uppercase tracking-[0.24em] text-fg transition-colors hover:border-accent hover:text-accent",children:"Continue browsing"})]}):r("form",{className:"p-6",noValidate:!0,onSubmit:t=>{t.preventDefault(),S()},children:[r("div",{className:"mb-2 flex items-center gap-3",children:[e("span",{className:"grid h-11 w-11 flex-none place-items-center border-[1.5px] border-accent bg-accent/15",children:r("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2","aria-hidden":!0,children:[e("path",{d:"M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"}),e("path",{d:"M13.7 21a2 2 0 0 1-3.4 0"})]})}),r("div",{children:[e("div",{className:"font-mono text-[10px] uppercase tracking-[0.3em] text-accent",children:"Back-in-stock alert"}),e("h3",{id:s,className:"mt-0.5 font-display text-[22px] font-medium uppercase leading-tight tracking-[-0.02em]",children:"Notify me"})]})]}),r("p",{className:"mb-5 text-[13px] leading-[1.6] text-fg-dim",children:["We'll email you the moment the"," ",e("strong",{className:"font-normal text-fg",children:k(m)}),p?` in ${p}`:""," ","is back in stock. No spam — one alert, then we're done."]}),r("fieldset",{className:"mb-4 border-0 p-0",children:[e("legend",{className:"mb-2 font-mono text-[10px] uppercase tracking-[0.16em] text-fg-dim",children:"Which fitment?"}),e("div",{className:"flex flex-wrap gap-2",children:i.map(t=>{const b=t.size===a.size;return r("button",{type:"button","aria-pressed":b,onClick:()=>M(t.size),className:["flex min-w-[calc(50%-4px)] flex-1 cursor-pointer flex-col items-start gap-0.5 border-[1.5px] px-3 py-3 text-left transition-colors",b?"border-accent bg-accent/15":"border-line hover:border-accent/60"].join(" "),children:[e("span",{className:"font-mono text-[12px] font-bold tracking-[0.08em] text-fg",children:t.size}),e("span",{className:"font-mono text-[10px] tracking-[0.08em] text-fg-dim",children:(()=>{const v=T(t.components,u);return v.setTotal!=null?D(v.setTotal,u):E})()})]},t.size)})})]}),r("div",{className:"mb-4",children:[e("label",{htmlFor:h,className:"mb-2 block font-mono text-[10px] uppercase tracking-[0.16em] text-fg-dim",children:"Email address"}),e("input",{id:h,type:"email",value:l,onChange:t=>{j(t.target.value),(n.status==="invalid"||n.status==="error")&&n.reset()},placeholder:"you@example.com",disabled:c,className:"w-full border-2 border-line bg-bg px-4 py-3 font-display text-[15px] text-fg outline-none transition-colors placeholder:text-fg-dim hover:border-fg-dim focus:border-accent disabled:opacity-60"})]}),r("label",{className:"mb-5 flex cursor-pointer items-start gap-3 text-[12px] leading-[1.5] text-fg-dim",children:[e("input",{type:"checkbox",checked:x,onChange:t=>W(t.target.checked),className:"mt-0.5 h-[18px] w-[18px] flex-none cursor-pointer accent-[var(--accent)]"}),e("span",{children:"Also send me fitment tips and occasional offers for my vehicle."})]}),r("button",{type:"submit",disabled:c,className:"flex h-[50px] w-full cursor-pointer items-center justify-center gap-2 bg-btn px-4 font-mono text-[12px] font-bold uppercase tracking-[0.24em] text-btn-ink transition-colors hover:bg-fg disabled:cursor-not-allowed disabled:opacity-60 disabled:hover:bg-btn",children:[r("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":!0,children:[e("path",{d:"m22 2-7 20-4-9-9-4Z"}),e("path",{d:"M22 2 11 13"})]}),c?"Sending…":"Notify me when available"]}),g&&e("p",{role:"alert",className:"mt-3 text-[12px] leading-[1.5]",style:{color:"var(--alert)"},children:g}),r("div",{className:"mt-3 flex items-center justify-center gap-2 text-[11px] text-fg-dim",children:[r("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":!0,children:[e("rect",{x:"3",y:"11",width:"18",height:"11",rx:"1"}),e("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),"We never share your details."]})]})]})})}export{A as default};
@@ -0,0 +1,5 @@
1
+ export default function PlpPagination({ page, pageCount, onPage, }: {
2
+ page: number;
3
+ pageCount: number;
4
+ onPage: (page: number) => void;
5
+ }): import("react").JSX.Element | null;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as o,jsxs as l}from"react/jsx-runtime";import{plpPageSequence as c}from"../../lib/wheels/plp-filters.js";function d({page:t,pageCount:r,onPage:n}){if(r<=1)return null;const s=c(r,t),i="flex h-9 w-9 cursor-pointer items-center justify-center border border-line font-mono text-[13px] transition-colors hover:border-accent hover:text-accent disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:border-line disabled:hover:text-fg";return l("div",{className:"mt-8 flex flex-wrap items-center justify-between gap-4 border-t border-line pt-4",children:[l("div",{className:"flex items-center gap-2",children:[o("button",{type:"button",onClick:()=>n(t-1),disabled:t<=1,"aria-label":"Previous page",className:i,children:"‹"}),s.map((e,a)=>e===null?o("span",{className:"px-1 font-mono text-[13px] text-fg-dim",children:"…"},`gap-${a}`):o("button",{type:"button",onClick:()=>n(e),"aria-current":e===t?"page":void 0,className:["h-9 min-w-9 cursor-pointer border px-2 font-mono text-[13px] tabular-nums transition-colors",e===t?"border-accent bg-accent text-bg":"border-line hover:border-accent hover:text-accent"].join(" "),children:e},e)),o("button",{type:"button",onClick:()=>n(t+1),disabled:t>=r,"aria-label":"Next page",className:i,children:"›"})]}),l("label",{className:"flex items-center gap-2 font-mono text-[11px] uppercase tracking-[0.16em] text-fg-dim",children:["Jump to",o("select",{value:t,onChange:e=>n(Number(e.target.value)),className:"cursor-pointer border border-line bg-transparent px-2 py-2 font-mono text-[12px] text-fg",children:Array.from({length:r},(e,a)=>a+1).map(e=>l("option",{value:e,children:["Page ",e," of ",r]},e))})]})]})}export{d as default};
@@ -0,0 +1,25 @@
1
+ import type { ProductKind } from "../../lib/api/index.js";
2
+ import type { TyreSizePart } from "../../lib/tyres/tyre-size.js";
3
+ import { type PlpFacetGroup, type PlpFacetKey, type PlpFilterState, type PlpTypeOption, type PlpTyreSizeBox } from "../../lib/wheels/plp-filters.js";
4
+ export default function PlpSidebar({ facets, filters, typeOptions, sizeBoxes, sizeMatches, noun, priceBounds, inStockCount, onToggle, onPickType, onPickSize, onPriceMax, onInStockOnly, onClearAll, }: {
5
+ facets: PlpFacetGroup[];
6
+ filters: PlpFilterState;
7
+ typeOptions: PlpTypeOption[];
8
+ sizeBoxes: PlpTyreSizeBox[] | null;
9
+ sizeMatches: number | null;
10
+ noun: {
11
+ one: string;
12
+ many: string;
13
+ };
14
+ priceBounds: {
15
+ min: number;
16
+ max: number;
17
+ } | null;
18
+ inStockCount: number | null;
19
+ onToggle: (key: PlpFacetKey, value: string) => void;
20
+ onPickType: (kind: ProductKind | null) => void;
21
+ onPickSize: (part: TyreSizePart, value: number | null) => void;
22
+ onPriceMax: (value: number | null) => void;
23
+ onInStockOnly: (value: boolean) => void;
24
+ onClearAll: () => void;
25
+ }): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import{useState as C}from"react";import{useCurrency as _}from"../CurrencyContext.js";import{useEnglish as $}from"../EnglishVariant.js";import{formatPrice as b}from"../../lib/commerce.js";import{hasActivePlpFilters as j,PLP_FACET_LABELS as z}from"../../lib/wheels/plp-filters.js";import T from"./PlpInStockToggle.js";import E from"./PlpTypePicker.js";import F from"./PlpTyreSizeBoxes.js";function A({facets:i,filters:t,typeOptions:m,sizeBoxes:o,sizeMatches:g,noun:s,priceBounds:r,inStockCount:x,onToggle:v,onPickType:k,onPickSize:N,onPriceMax:w,onInStockOnly:P,onClearAll:S}){const{currency:f}=_(),p=$(),[d,h]=C({});return n("aside",{className:"w-full flex-none lg:sticky lg:[--sf-plp-rail-gap:16px] lg:[--sf-plp-rail-top:calc(var(--sf-header-h,88px)+var(--sf-plp-rail-gap))] lg:top-[var(--sf-plp-rail-top)] lg:max-h-[calc(100svh-var(--sf-plp-rail-top)-var(--sf-plp-rail-gap))] lg:w-[268px] lg:overflow-y-auto lg:overscroll-contain lg:pr-2.5",children:[n("div",{className:"flex items-center justify-between pb-2",children:[e("h2",{className:"font-display text-[18px] font-medium uppercase tracking-[-0.01em]",children:"Filter"}),j(t)&&e("button",{type:"button",onClick:S,className:"cursor-pointer font-mono text-[11px] uppercase tracking-[0.16em] text-accent hover:text-fg",children:"Clear all"})]}),m.length>0&&e("div",{className:"pb-1 pt-1",children:e(E,{options:m,noun:s.many,onPick:k})}),x!==null&&e("div",{className:"border-t border-line py-2",children:e(T,{checked:t.inStockOnly,count:x,noun:s.many,onChange:P})}),o&&e(y,{label:p(z.tyreSizes),open:!d.tyreSizes,onToggle:()=>h(a=>({...a,tyreSizes:!a.tyreSizes})),children:!d.tyreSizes&&e("div",{className:"pb-3",children:e(F,{boxes:o,composed:t.tyreSizes[0]??"",matches:g,noun:s.many,onPick:N})})}),i.map(a=>{if(a.options.length===0)return null;const c=!d[a.key];return e(y,{label:p(a.label),open:c,onToggle:()=>h(l=>({...l,[a.key]:!l[a.key]})),children:c&&e("ul",{className:"flex flex-col pb-3",children:a.options.map(l=>{const u=l.count===0&&!l.checked;return e("li",{children:n("label",{className:`flex items-center gap-2.5 py-1 text-[13px] ${u?"opacity-40":"cursor-pointer"}`,children:[e("input",{type:"checkbox",checked:l.checked,disabled:u,onChange:()=>v(a.key,l.value),"aria-label":`${p(a.label)}: ${l.label} (${l.count} ${s.many})`,className:"h-[16px] w-[16px] flex-none accent-[var(--accent)]"}),l.swatch&&e("span",{className:"inline-block h-[13px] w-[13px] flex-none rounded-full shadow-[inset_0_0_0_1px_var(--site-line)]",style:{background:l.swatch}}),e("span",{className:"flex-1 capitalize",children:l.label}),e("span",{className:"font-mono text-[11px] tabular-nums text-fg-dim",children:l.count})]})},l.value)})})},a.key)}),r&&n("div",{className:"border-t border-line py-3",children:[n("span",{className:"font-mono text-[11px] uppercase tracking-[0.2em]",children:["Price · per ",s.one]}),e("input",{type:"range",min:r.min,max:r.max,step:5,value:t.priceMax??r.max,onChange:a=>{const c=Number(a.target.value);w(c>=r.max?null:c)},className:"mt-2 w-full accent-[var(--accent)]","aria-label":`Maximum price per ${s.one}`}),n("div",{className:"mt-1.5 flex justify-between font-mono text-[11px] tabular-nums",children:[e("span",{className:"text-fg-dim",children:b(r.min,f)}),n("span",{children:["Up to ",b(t.priceMax??r.max,f)]})]})]})]})}function y({label:i,open:t,onToggle:m,children:o}){return n("div",{className:"border-t border-line",children:[n("button",{type:"button",onClick:m,"aria-expanded":t,"aria-label":`${t?"Collapse":"Expand"} ${i} filters`,className:"flex w-full cursor-pointer items-center justify-between py-3 text-left",children:[e("span",{className:"font-mono text-[11px] uppercase tracking-[0.2em]",children:i}),e("span",{"aria-hidden":"true",className:`font-mono text-[10px] text-fg-dim transition-transform ${t?"rotate-180":""}`,children:"▾"})]}),o]})}export{A as default};
@@ -0,0 +1,7 @@
1
+ import type { PlpTypeOption } from "../../lib/wheels/plp-filters.js";
2
+ import type { ProductKind } from "../../lib/api/index.js";
3
+ export default function PlpTypePicker({ options, noun, onPick, }: {
4
+ options: PlpTypeOption[];
5
+ noun: string;
6
+ onPick: (kind: ProductKind | null) => void;
7
+ }): import("react").JSX.Element | null;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as c,jsxs as t}from"react/jsx-runtime";import{useId as d}from"react";function x({options:a,noun:n,onPick:r}){const s=d();return a.length===0?null:t("fieldset",{className:"rounded-lg border border-accent/35 bg-accent/[0.05] px-3 pb-3 pt-3",children:[c("legend",{className:"px-0 font-mono text-[11px] uppercase tracking-[0.2em] text-accent",children:"Product type"}),c("div",{className:"flex flex-col pt-2",children:a.map(e=>{const l=e.count===0&&!e.checked;return t("label",{className:`flex items-center gap-3 py-1 text-[13.5px] ${l?"opacity-40":"cursor-pointer"}`,children:[c("input",{type:"radio",name:s,checked:e.checked,disabled:l,onChange:()=>r(e.kind),"aria-label":`${e.label} (${e.count} ${n})`,className:"h-[15px] w-[15px] flex-none accent-[var(--accent)]"}),c("span",{className:`flex-1 ${e.checked?"text-accent":""}`,children:e.label}),c("span",{className:"font-mono text-[11px] tabular-nums text-fg-dim",children:e.count})]},e.kind??"all")})})]})}export{x as default};