efficient-storefront-blocks 0.57.0 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1111) hide show
  1. package/CHANGELOG.md +43 -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 +35 -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 @@
1
+ import{lugLabel as M}from"./lug-count.js";import{formatSizeRange as E}from"./size-range.js";import{etRangeLabel as L,inchRangeLabel as N}from"./spec-format.js";const f=5,m=.2;function g(e){if(!e)return{holes:null,circles:[]};const t=e.replace(/\([^)]*\)?/g," ").trim(),n=t.match(/^\s*(\d+)\s*[x×*]\s*(.+)$/i),r=n?Number(n[1]):null,o=(n?n[2]:t).split(/[-/,]/).map(l=>Number(l.trim().replace(/[^\d.]/g,""))).filter(l=>Number.isFinite(l)&&l>0);return{holes:r,circles:o}}function p(e){if(!e||e.length<2)return null;const[t,n]=e;return!Number.isFinite(t)||!Number.isFinite(n)?null:[Math.min(t,n),Math.max(t,n)]}function O(e){if(!e)return null;const t=g(e.pcd||e.boltPattern);if(t.holes===null||t.circles.length===0)return null;const n=t.circles[0],r=p(e.etRange),c=r?[r[0]-f,r[1]+f]:null;return{holes:t.holes,circle:n,centreBore:typeof e.centreBore=="number"&&e.centreBore>0?e.centreBore:null,etRange:c}}function K(e,t){return Math.abs(e-t)<=m}function h(e,t,n){const r=g(e);return(r.holes??t)!==n.holes?!1:r.circles.some(o=>K(o,n.circle))}function x(e,t){return t.centreBore===null?!0:e+m>=t.centreBore}function P(e,t){return e[0]<=t[1]&&e[1]>=t[0]}function u(e,t){const n=`${t.holes}×${t.circle}`;return e.pcds.length===0?{key:"unverifiable",wheel:"",vehicle:n}:e.pcds.some(r=>h(r,e.lugs,t))?t.etRange!==null&&e.etRange!==null&&!P(e.etRange,t.etRange)?{key:"et",wheel:s(e.etRange),vehicle:s(t.etRange)}:e.centreBores.length>0&&!e.centreBores.some(r=>x(r,t))?{key:"bore",wheel:`${e.centreBores.join(" / ")} mm`,vehicle:`${t.centreBore} mm`}:null:{key:"pcd",wheel:e.pcds.join(" / "),vehicle:n}}function F(e){return{pcds:e.spec?.pcds??[],lugs:e.spec?.lugs??null,etRange:p(e.spec?.etRange),centreBores:e.spec?.centreBores??[]}}function d(e){const t=e.et,n=e.rearEt??e.et;return{pcds:e.boltPattern?[e.boltPattern]:[],lugs:null,etRange:t==null||n==null?null:[Math.min(t,n),Math.max(t,n)],centreBores:e.centreBore==null?[]:[e.centreBore]}}function B(e,t){const n=u(e,t);return n===null||n.key!=="et"?n:u(e,{...t,etRange:null})}function V(e,t){return u(F(e),t)}function v(e,t){return u(d(e),t)}function T(e,t){return B(d(e),t)===null}function w(e,t){return t?e.filter(n=>T(n,t)):[...e]}function _(e,t){return B(F(e),t)===null}function D(e,t){return t?e.filter(n=>_(n,t)):e}const R=1;function S(e,t){const n=e.spec?.pcds??[],r=e.spec?.centreBores??[],c=p(e.spec?.etRange);if(!t)return{pcds:n,etRange:c,centreBores:r};const o=e.spec?.lugs??null,l=n.filter(a=>h(a,o,t)),i=r.filter(a=>x(a,t));return{pcds:l.length>0?l:n,etRange:c,centreBores:i.length>0?i:r}}function s(e){return L(e[0],e[1])}function b(e,t=""){const n=`${e.slice(0,R).join(" / ")}${t}`,r=e.length-R;return r>0?`${n} +${r} more`:n}const C="·";function j(e,t){return $(e,t).map(n=>n.text)}function H(e,t,{sizes:n}){const r=$(e,t);if(!n)return r.length>0?r:y(e);const c=[...new Set(e.sizes)].sort((l,i)=>l-i).map(l=>({fieldKey:"diameter",text:N(l,l)})),o=r.length>0?[]:y(e).filter(l=>l.fieldKey==="holes");return[...c,...r,...o]}function y(e){return[{fieldKey:"diameter",text:E(e.sizes)},{fieldKey:"holes",text:M(e.spec?.lugs)}].filter(t=>!!t.text)}function $(e,t){const{pcds:n,etRange:r,centreBores:c}=S(e,t),o=[];return n.length>0&&o.push({fieldKey:"pcd",text:`PCD ${b(n)}`}),r!==null&&o.push({fieldKey:"et",text:s(r)}),c.length>0&&o.push({fieldKey:"center_bore",text:`C/B ${b(c," mm")}`}),o}function X(e,t){return j(e,t).join(` ${C} `)}function k(e){return e?[{key:"pcd",name:"Bolt pattern",value:`${e.holes}×${e.circle}`},{key:"bore",name:"Hub bore",value:e.centreBore!==null?`${e.centreBore} mm bore`:null},{key:"et",name:"Offset",value:e.etRange!==null?s(e.etRange):null}]:[]}function q(e){return k(e).map(t=>t.value).filter(t=>t!==null).join(" · ")}export{f as ET_TOLERANCE_MM,C as FITMENT_FIELD_SEPARATOR,R as FITMENT_LINE_MAX,B as fitmentBlockingFailure,k as fitmentChecks,u as fitmentFitFailure,q as fitmentSummary,g as parseBoltPattern,p as parseMmRange,v as variantFitFailure,d as variantFitment,T as variantFitsVehicle,w as variantsFittingVehicle,O as vehicleFitmentFromStock,H as wheelCardSpecFacts,V as wheelFitFailure,F as wheelFitment,S as wheelFitmentFacts,j as wheelFitmentFields,$ as wheelFitmentKeyedFields,X as wheelFitmentLine,_ as wheelFitsVehicle,y as wheelSizeLugFacts,D as wheelsFittingVehicle};
@@ -0,0 +1,18 @@
1
+ import { type ViewTier } from "efficient-easel/screen/lib/content/view-tiers";
2
+ export declare const PLP_COLUMNS_AUTO = "auto";
3
+ export type PlpColumnCount = number | typeof PLP_COLUMNS_AUTO;
4
+ export type PlpColumns = Record<ViewTier, PlpColumnCount>;
5
+ export declare const PLP_COLUMNS_MIN = 1;
6
+ export declare const PLP_COLUMNS_MAX = 6;
7
+ export declare const PLP_COLUMNS_DEFAULT: PlpColumns;
8
+ export declare const PLP_COLUMN_STEPS: PlpColumnCount[];
9
+ export declare const PLP_GRID_GAP = "1rem";
10
+ export declare const PLP_GRID_GAP_TERM = "var(--sf-block-gap-rem, var(--sf-card-gap, 1rem))";
11
+ export declare const PLP_AUTO_MIN_CARD_PX = 248;
12
+ export declare const PLP_FIXED_MIN_CARD_PX = 150;
13
+ export declare const plpGridColsVar: (tier: ViewTier) => string;
14
+ export declare const PLP_GRID_GAP_VAR = "--plp-grid-gap";
15
+ export declare function formatPlpColumnCount(count: PlpColumnCount): string;
16
+ export declare function normalizePlpColumns(value: unknown): PlpColumns;
17
+ export declare function plpGridTracks(count: PlpColumnCount): string;
18
+ export declare function plpGridVars(columns: PlpColumns, tier?: ViewTier | null): Record<string, string>;
@@ -0,0 +1 @@
1
+ import{VIEW_TIERS as a}from"efficient-easel/screen/lib/content/view-tiers";const r="auto",e=1,P=6,i={desktop:r,tablet:r,mobile:r},C=[r,...Array.from({length:P-e+1},(t,o)=>e+o)],c="1rem",_=`var(--sf-block-gap-rem, var(--sf-card-gap, ${c}))`,l=248,f=150,m=.5,x=t=>`--plp-grid-cols-${t}`,u="--plp-grid-gap";function M(t){return t===r?"Auto":String(t)}function p(t){if(t===r)return r;const o=typeof t=="number"?t:NaN;return Number.isFinite(o)?Math.min(Math.max(Math.round(o),e),P):r}function N(t){if(!t||typeof t!="object")return{...i};const o=t;return{desktop:p(o.desktop),tablet:p(o.tablet),mobile:p(o.mobile)}}function L(t){if(t===r)return`repeat(auto-fill, minmax(${l}px, 1fr))`;const n=`calc((100% - ${`${t-1} * ${_}`}) / ${t} - ${m}px)`;return`repeat(auto-fill, minmax(max(${f}px, ${n}), 1fr))`}function d(t,o=null){const n={[u]:_};for(const s of a)n[x(s)]=L(t[o??s]);return n}export{l as PLP_AUTO_MIN_CARD_PX,r as PLP_COLUMNS_AUTO,i as PLP_COLUMNS_DEFAULT,P as PLP_COLUMNS_MAX,e as PLP_COLUMNS_MIN,C as PLP_COLUMN_STEPS,f as PLP_FIXED_MIN_CARD_PX,c as PLP_GRID_GAP,_ as PLP_GRID_GAP_TERM,u as PLP_GRID_GAP_VAR,M as formatPlpColumnCount,N as normalizePlpColumns,x as plpGridColsVar,L as plpGridTracks,d as plpGridVars};
@@ -0,0 +1,21 @@
1
+ import type { Data } from "efficient-easel/blocks";
2
+ import type { ProductKind, ProductSummary, WheelSummary } from "../api/index.js";
3
+ import type { FieldUsageAnswer } from "../content/field-usage.js";
4
+ export declare const ALLOY_WHEELS_LISTING_TYPE = "AlloyWheelsListing";
5
+ export declare const PRODUCT_GRID_TYPE = "ProductGrid";
6
+ export declare const GRID_CATALOG_PROP = "catalog";
7
+ export declare const CATALOG_FILTER_BAR_TYPE = "CatalogFilterBar";
8
+ export declare const FIELD_USAGE_PROP = "fieldUsage";
9
+ interface ContentNode {
10
+ type?: string;
11
+ props?: Record<string, unknown>;
12
+ }
13
+ export declare function pageHasWheelsListing(data: Data | null | undefined): boolean;
14
+ export declare function pageReadsFieldUsage(data: Data | null | undefined): boolean;
15
+ export declare function hydrateFieldUsage(data: Data, answers: readonly FieldUsageAnswer[]): Data;
16
+ export declare function listingCatalogKinds(data: Data | null | undefined): ProductKind[];
17
+ export declare function listingWantsWheelsOnly(kinds: readonly ProductKind[]): boolean;
18
+ export declare function hydrateWheelsListing(data: Data, products: ProductSummary[] | WheelSummary[]): Data;
19
+ export declare function dehydrateWheelsListing(data: Data): Data;
20
+ export declare function dehydrateWheelsListingNode<T extends ContentNode>(node: T): T;
21
+ export {};
@@ -0,0 +1 @@
1
+ import{resolvePlpKinds as y}from"../catalog/plp-item.js";import{isLinkedSource as m,rowsForGridSource as O}from"./grid-source.js";const p="AlloyWheelsListing",G="ProductGrid",L="catalog",W="CatalogFilterBar",c="fieldUsage";function x(t){return t.props?.source}function i(t){return t?.type===G&&m(x(t))}function l(t){return t?.type===W}function f(t){return t?.type===p||i(t)||l(t)}function a(t){const r=t.content??[],e=t.zones??{};return[...r,...Object.values(e).flat()]}function S(t){return t?a(t).some(r=>r?.type===p||i(r)):!1}function T(t){return t?a(t).some(f):!1}function U(t,r){return r.length===0?t:_(t,f,e=>({...e,props:{...e.props??{},[c]:r}}))}function k(t){if(!t)return[];const r=new Set;for(const e of a(t))if(!(e?.type!==p&&!i(e)))for(const n of y(e.props?.kinds))r.add(n);return[...r]}function C(t){return t.length===1&&t[0]==="alloy-wheel"}function I(t,r){return F(t,e=>i(e)?{...e,props:{...g(e).props,[L]:O(x(e)??{},E(r,y(e.props?.kinds)))}}:{...e,props:{...h(e).props,products:r}})}function z(t){return _(t,f,r=>l(r)?w(r):i(r)?g(r):h(r))}function w(t){if(!t.props||!(c in t.props))return t;const{[c]:r,...e}=t.props;return{...t,props:e}}function g(t){const{[L]:r,[c]:e,...n}=t.props??{},s=n.source;if(s&&"wheels"in s){const{wheels:u,...o}=s;n.source=o}return{...t,props:n}}function E(t,r){const e=new Set(r);return t.filter(n=>{const s=n.kind??"alloy-wheel";return e.has(s)})}function N(t){return i(t)?g(t):l(t)?w(t):t?.type===p?h(t):t}function h(t){const{wheels:r,products:e,[c]:n,...s}=t.props??{};return{...t,props:s}}function F(t,r){return _(t,e=>e?.type===p||i(e),r)}function _(t,r,e){const n=o=>r(o)?e(o):o,s=t,u={...t};return s.content&&(u.content=s.content.map(n)),s.zones&&(u.zones=Object.fromEntries(Object.entries(s.zones).map(([o,P])=>[o,P.map(n)]))),u}export{p as ALLOY_WHEELS_LISTING_TYPE,W as CATALOG_FILTER_BAR_TYPE,c as FIELD_USAGE_PROP,L as GRID_CATALOG_PROP,G as PRODUCT_GRID_TYPE,z as dehydrateWheelsListing,N as dehydrateWheelsListingNode,U as hydrateFieldUsage,I as hydrateWheelsListing,k as listingCatalogKinds,C as listingWantsWheelsOnly,S as pageHasWheelsListing,T as pageReadsFieldUsage};
@@ -0,0 +1,10 @@
1
+ import { type VehicleSelection } from "./fitment-options.js";
2
+ export declare const VEHICLE_PARAM: {
3
+ readonly make: "make";
4
+ readonly model: "model";
5
+ readonly year: "year";
6
+ readonly trim: "trim";
7
+ };
8
+ export declare function isCompleteVehicle(v: VehicleSelection): boolean;
9
+ export declare function vehicleFromParams(params: URLSearchParams): VehicleSelection | null;
10
+ export declare function appendVehicleParams(params: URLSearchParams, vehicle: VehicleSelection | null): URLSearchParams;
@@ -0,0 +1 @@
1
+ import{DEFAULT_VEHICLE as n}from"./fitment-options.js";const o={make:"make",model:"model",year:"year",trim:"trim"};function i(e){return!!e.make&&!!e.model&&e.year!==null&&!!e.modification}function l(e){const t=Number(e.get(o.year)),r={...n,make:e.get(o.make)??"",model:e.get(o.model)??"",year:Number.isFinite(t)&&t>0?Math.floor(t):null,modification:e.get(o.trim)??""};return i(r)?r:null}function u(e,t){return!t||!i(t)||(e.set(o.make,t.make),e.set(o.model,t.model),e.set(o.year,String(t.year)),e.set(o.trim,t.modification)),e}export{o as VEHICLE_PARAM,u as appendVehicleParams,i as isCompleteVehicle,l as vehicleFromParams};
@@ -0,0 +1,3 @@
1
+ import type { PreOrderIntentRequest, SizePair } from "../api/index.js";
2
+ export type PreOrderSize = SizePair | null;
3
+ export declare function preOrderIntentBody(productSlug: string, size: PreOrderSize, email: string): PreOrderIntentRequest;
@@ -0,0 +1 @@
1
+ import{sizePairLabel as i}from"./plp-filters.js";function o(e,r,t){return{productSlug:e,email:t.trim(),size:r?i(r):""}}export{o as preOrderIntentBody};
@@ -0,0 +1,7 @@
1
+ import type { WheelVariant } from "../api/index.js";
2
+ export interface PreOrderInputs {
3
+ variants: WheelVariant[] | undefined;
4
+ inStock: boolean | undefined;
5
+ priced: boolean;
6
+ }
7
+ export declare function isPreOrderWheel({ variants, inStock, priced }: PreOrderInputs): boolean;
@@ -0,0 +1 @@
1
+ function n({variants:e,inStock:r,priced:t}){return t&&r===!0&&(e??[]).length===0}export{n as isPreOrderWheel};
@@ -0,0 +1,47 @@
1
+ import { type SetComponent } from "../commerce.js";
2
+ import type { Currency } from "../api/index.js";
3
+ export declare const UNPRICED_LABEL = "Price on request";
4
+ export declare const SET_QUOTE_LABEL = "Request a quote";
5
+ export declare const FROM_PREFIX = "from ";
6
+ export declare const FROM_PREFIX_START = "From ";
7
+ export declare const EACH_UNIT = "each";
8
+ export declare const FREE_PRICE = "Free";
9
+ export declare function isPriced(amount: number | null | undefined): amount is number;
10
+ export declare function priceIn(prices: Record<string, number | null> | undefined, currency: string): number | null;
11
+ export declare function comparePrice(a: Record<string, number | null> | undefined, b: Record<string, number | null> | undefined, currency: string, direction: "asc" | "desc"): number;
12
+ export declare function withinPriceRange(prices: Record<string, number | null> | undefined, currency: string, min?: number | null, max?: number | null): boolean;
13
+ export interface WheelPriceDisplay {
14
+ priced: boolean;
15
+ unit: number | null;
16
+ was: number | null;
17
+ onSale: boolean;
18
+ setTotal: number | null;
19
+ }
20
+ export declare function resolveWheelPrice(unit: number | null | undefined, msrp: number | null | undefined, setQty?: number): WheelPriceDisplay;
21
+ export declare function formatWheelPrice(price: WheelPriceDisplay, currency: Currency, prefix?: string): string;
22
+ export declare function formatWheelWasPrice(price: WheelPriceDisplay, currency: Currency): string | null;
23
+ export interface SetPriceDisplay {
24
+ priced: boolean;
25
+ unit: number | null;
26
+ isFrom: boolean;
27
+ setTotal: number | null;
28
+ }
29
+ export declare function resolveSetPrice(components: SetComponent[], currency: string, sets?: number): SetPriceDisplay;
30
+ export interface SelectionPriceDisplay {
31
+ priced: boolean;
32
+ unit: number | null;
33
+ isFrom: boolean;
34
+ was: number | null;
35
+ onSale: boolean;
36
+ setTotal: number | null;
37
+ fromSetTotal: number | null;
38
+ }
39
+ export declare function resolveSelectionPrice(wheel: {
40
+ prices: Record<string, number | null>;
41
+ msrpPrices?: Record<string, number | null> | null;
42
+ }, variant: {
43
+ components: SetComponent[];
44
+ } | null | undefined, currency: string, sets?: number): SelectionPriceDisplay;
45
+ export declare function formatSelectionPrice(price: SelectionPriceDisplay, currency: Currency): string;
46
+ export declare function formatSelectionWasPrice(price: SelectionPriceDisplay, currency: Currency): string | null;
47
+ export declare function setPriceLabel(price: SelectionPriceDisplay, currency: Currency): string;
@@ -0,0 +1 @@
1
+ import{formatPrice as i,setPrice as p,WHEELS_PER_SET as P}from"../commerce.js";const c="Price on request",E="Request a quote",T="from ",w="From ",_="each",h="Free";function s(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function a(e,t){const n=e?.[t];return s(n)?n:null}function I(e,t,n,l){const r=a(e,n),o=a(t,n);return r===null&&o===null?0:r===null?1:o===null?-1:l==="asc"?r-o:o-r}function L(e,t,n,l){if(n==null&&l==null)return!0;const r=a(e,t);return!(r===null||n!=null&&r<n||l!=null&&r>l)}const S={priced:!1,unit:null,was:null,onSale:!1,setTotal:null};function m(e,t,n){if(!s(e))return S;const l=s(t)&&t>e?t:null;return{priced:!0,unit:e,was:l,onSale:l!==null,setTotal:n!=null?e*n:null}}function C(e,t,n=""){return!e.priced||e.unit==null?c:`${n}${i(e.unit,t)}`}function N(e,t){return e.was==null?null:i(e.was,t)}function x(e,t,n=1){const l=p(e,t);if(l===null)return{priced:!1,unit:null,isFrom:!1,setTotal:null};const r=e.reduce((u,f)=>u+f.wheels,0),o=Math.min(...e.map(u=>u.prices[t]));return{priced:!0,unit:o,isFrom:o*r!==l,setTotal:l*n}}const F={priced:!1,unit:null,isFrom:!1,was:null,onSale:!1,setTotal:null};function W(e,t,n,l=1){const r=m(e.prices[n],e.msrpPrices?.[n],P),o=r.setTotal==null?null:r.setTotal*l;if(!t)return{priced:r.priced,unit:r.unit,isFrom:!0,was:r.was,onSale:r.onSale,setTotal:null,fromSetTotal:o};const u=x(t.components,n,l);return u.priced?{priced:!0,unit:u.unit,isFrom:u.isFrom,was:null,onSale:!1,setTotal:u.setTotal,fromSetTotal:o}:{...F,fromSetTotal:o}}function d(e,t){return!e.priced||e.unit==null?c:`${e.isFrom?T:""}${i(e.unit,t)}`}function U(e,t){return e.was==null?null:i(e.was,t)}function A(e,t){return!e.priced||e.unit==null?E:d(e,t)}export{_ as EACH_UNIT,h as FREE_PRICE,T as FROM_PREFIX,w as FROM_PREFIX_START,E as SET_QUOTE_LABEL,c as UNPRICED_LABEL,I as comparePrice,d as formatSelectionPrice,U as formatSelectionWasPrice,C as formatWheelPrice,N as formatWheelWasPrice,s as isPriced,a as priceIn,W as resolveSelectionPrice,x as resolveSetPrice,m as resolveWheelPrice,A as setPriceLabel,L as withinPriceRange};
@@ -0,0 +1,3 @@
1
+ import type { Finish, WheelVariant } from "../api/index.js";
2
+ export declare const REFERENCE_NOTE = "Image for reference only. Actual product may vary.";
3
+ export declare function stageIsFallback(finish: Pick<Finish, "renderFits">, variant: Pick<WheelVariant, "diameter" | "width"> | null | undefined, studs: number | null, usedLugSet: boolean): boolean;
@@ -0,0 +1 @@
1
+ const f="Image for reference only. Actual product may vary.",u=l=>String(Number(l));function g(l,e,t,i){const s=l.renderFits;if(!s||!e||e.diameter==null||e.width==null)return!1;const n=i&&t!=null?s.lug?.[String(t)]:s.angles;if(!n)return!1;const r=u(e.diameter);if(!(n.sizes.length===0||n.sizes.includes(`${r}x${u(e.width)}`)||n.sizes.includes(r)))return!0;const c=n.lugs??[];return!i&&t!=null&&c.length>0&&!c.includes(t)}export{f as REFERENCE_NOTE,g as stageIsFallback};
@@ -0,0 +1,6 @@
1
+ import type { Finish, WheelSummary } from "../api/index.js";
2
+ export type RenderableFinish = Finish & {
3
+ src: string;
4
+ };
5
+ export declare function isRenderableFinish(f: Finish): f is RenderableFinish;
6
+ export declare function dropRenderlessFinishes<W extends WheelSummary>(wheel: W): W;
@@ -0,0 +1 @@
1
+ function e(n){return!!n.src}function r(n){const i=n.finishes.filter(e);if(i.length===n.finishes.length)return n;const s=n.defaultFinish&&i.some(t=>t.name===n.defaultFinish)?n.defaultFinish:null;return{...n,finishes:i,defaultFinish:s}}export{r as dropRenderlessFinishes,e as isRenderableFinish};
@@ -0,0 +1,9 @@
1
+ export declare function selectedStuds(selection: {
2
+ manualMode: boolean;
3
+ shown: Record<string, string>;
4
+ vehicle: {
5
+ fit?: {
6
+ holes: number;
7
+ } | null;
8
+ };
9
+ }): number | null;
@@ -0,0 +1 @@
1
+ import{parseBoltPattern as e}from"./plp-fitment-match.js";function o(t){return t.manualMode?e(t.shown.boltPattern).holes:t.vehicle.fit?.holes??null}export{o as selectedStuds};
@@ -0,0 +1,34 @@
1
+ import type { StoreProduct } from "../catalog/store-product.js";
2
+ import type { WheelSummary, WheelVariant } from "../api/index.js";
3
+ export declare function variantIsDually(variant: WheelVariant): boolean;
4
+ export declare function productIsDually(product: StoreProduct): boolean;
5
+ export interface WheelSetBuild {
6
+ readonly twoObjects: boolean;
7
+ readonly handed: boolean;
8
+ readonly staggered: boolean;
9
+ }
10
+ export declare const TWO_OBJECT_ET_SPREAD_MM = 150;
11
+ export declare const AXLE_WORDS = "Front + rear";
12
+ export declare const HAND_WORDS = "L/R pair";
13
+ export declare const NOT_HANDED_WORDS = "Not handed";
14
+ export declare const CARD_HAND_WORDS = "L/R";
15
+ export declare function variantEtSpread(variant: WheelVariant): number;
16
+ export declare function variantIsTwoObjects(variant: WheelVariant): boolean;
17
+ export declare function productIsTwoObjects(product: StoreProduct): boolean;
18
+ export declare function variantIsHanded(variant: WheelVariant): boolean;
19
+ export declare function variantIsStaggered(variant: WheelVariant): boolean;
20
+ export declare function variantHasDistinctRear(variant: WheelVariant): boolean;
21
+ export declare function variantSetBuild(variant: WheelVariant): WheelSetBuild;
22
+ export declare function summarySetBuild(summary: WheelSummary): WheelSetBuild;
23
+ export declare function setBuildLabel(build: WheelSetBuild): string | null;
24
+ export declare function setIsWide(build: WheelSetBuild): boolean;
25
+ export declare function variantHasComposedRender(variant: WheelVariant): boolean;
26
+ export declare function productHasComposedRender(product: StoreProduct): boolean;
27
+ export declare function summaryIsDually(summary: WheelSummary): boolean;
28
+ export declare function setSuppressesRow(isTwoObjects: boolean, key: string): boolean;
29
+ export declare function setSecondSrc(finish: {
30
+ src?: string;
31
+ srcRight?: string;
32
+ } | null | undefined, painted: string | null): string | null;
33
+ export declare const PER_WHEEL_UNIT = "per wheel";
34
+ export declare function wheelCardPriceLine(label: string, priced: boolean): string;
@@ -0,0 +1 @@
1
+ import{WHEELS_PER_SET as r}from"../commerce.js";function u(e){return(e.components??[]).reduce((o,s)=>o+s.wheels,0)>r}function R(e){return e.kind==="alloy-wheel"&&(e.source.variants??[]).some(u)}const a=150,c="Front + rear",w="L/R pair",_="Not handed",l="L/R";function i(e){return e.et==null||e.rearEt==null?0:Math.abs(e.rearEt-e.et)}function n(e){return i(e)>=a}function D(e){return e.kind==="alloy-wheel"&&(e.source.variants??[]).some(n)}function d(e){return e.directional===!0}function p(e){return e.kind==="staggered"}function m(e){return e.rearWidth!=null||e.rearEt!=null&&e.rearEt!==e.et}function O(e){return{twoObjects:n(e),handed:d(e),staggered:p(e)}}function g(e){return{twoObjects:f(e),handed:e.handed??!1,staggered:!1}}function W(e){const t=[e.twoObjects?c:"",e.handed?l:""].filter(Boolean);return t.length?t.join(" · "):null}function H(e){return e.handed}function x(e){return new Set((e.components??[]).map(t=>t.partNumber)).size>1}function I(e){return e.kind==="alloy-wheel"&&(e.source.variants??[]).some(x)}function f(e){return(e.setWheelCount??0)>r}const E=new Set(["boltPattern"]);function T(e,t){return e&&E.has(t)}function b(e,t){return!e?.srcRight||!t||t!==e.src?null:e.srcRight}const S="per wheel";function y(e,t){return t?`${e} ${S}`:e}export{c as AXLE_WORDS,l as CARD_HAND_WORDS,w as HAND_WORDS,_ as NOT_HANDED_WORDS,S as PER_WHEEL_UNIT,a as TWO_OBJECT_ET_SPREAD_MM,I as productHasComposedRender,R as productIsDually,D as productIsTwoObjects,W as setBuildLabel,H as setIsWide,b as setSecondSrc,T as setSuppressesRow,f as summaryIsDually,g as summarySetBuild,i as variantEtSpread,x as variantHasComposedRender,m as variantHasDistinctRear,u as variantIsDually,d as variantIsHanded,p as variantIsStaggered,n as variantIsTwoObjects,O as variantSetBuild,y as wheelCardPriceLine};
@@ -0,0 +1,10 @@
1
+ export declare function sizeRange(sizes: number[]): {
2
+ min: number;
3
+ max: number;
4
+ } | null;
5
+ export declare function formatSizeRange(sizes: number[]): string | null;
6
+ interface HasSizes {
7
+ sizes?: readonly number[] | null;
8
+ }
9
+ export declare function diametersOf(items: readonly HasSizes[]): number[];
10
+ export {};
@@ -0,0 +1 @@
1
+ import{inchRangeLabel as o}from"./spec-format.js";function i(n){return n.length===0?null:{min:Math.min(...n),max:Math.max(...n)}}function f(n){const t=i(n);return t?o(t.min,t.max):null}function m(n){const t=new Set;for(const r of n)for(const e of r.sizes??[])typeof e=="number"&&t.add(e);return[...t].sort((r,e)=>r-e)}export{m as diametersOf,f as formatSizeRange,i as sizeRange};
@@ -0,0 +1,7 @@
1
+ export declare function trimDecimal(value: number): string;
2
+ export declare function wheelSizeLabel(diameter: number, width: number, rearWidth?: number | null): string;
3
+ export declare const RANGE_SEPARATOR = " to ";
4
+ export declare function signedNumber(value: number): string;
5
+ export declare function etRangeLabel(lo: number, hi: number): string;
6
+ export declare function inchRangeLabel(lo: number, hi: number): string;
7
+ export declare function inchLabel(value: string): string;
@@ -0,0 +1 @@
1
+ function e(n){return Number.isInteger(n)?String(n):String(Number(n.toFixed(2)))}function c(n,t,$){const o=$!=null?`${e(t)}/${e($)}`:e(t);return`${n}" × ${o}`}const i=" to ";function r(n){return n<0?`−${e(-n)}`:e(n)}function u(n,t){return n===t?`ET ${r(n)}`:`ET ${r(n)}${i}${r(t)}`}function x(n,t){return n===t?`${e(n)}"`:`${e(n)}"${i}${e(t)}"`}function b(n){return n==="—"?n:`${n}"`}export{i as RANGE_SEPARATOR,u as etRangeLabel,b as inchLabel,x as inchRangeLabel,r as signedNumber,e as trimDecimal,c as wheelSizeLabel};
@@ -0,0 +1,58 @@
1
+ import type { Wheel, WheelSpec, WheelVariant } from "../api/index.js";
2
+ export interface SpecSheetRow {
3
+ label: string;
4
+ value: string;
5
+ accent?: boolean;
6
+ fieldKey?: string;
7
+ }
8
+ export interface SpecDiagram {
9
+ wheelName: string;
10
+ imageSrc: string | null;
11
+ diameter: string;
12
+ width: string;
13
+ offset: string;
14
+ holes: string;
15
+ pcd: string;
16
+ spokes: number;
17
+ mesh: boolean;
18
+ bore: string;
19
+ }
20
+ export interface SpecSheet {
21
+ rows: SpecSheetRow[];
22
+ diagram: SpecDiagram | null;
23
+ }
24
+ export interface SpecTableSourceValue {
25
+ slug: string;
26
+ name: string;
27
+ process: string;
28
+ spokes: number;
29
+ mesh: boolean;
30
+ spec: WheelSpec | null;
31
+ finishes: {
32
+ name: string;
33
+ image: string | null;
34
+ }[];
35
+ coverImage?: string | null;
36
+ variants?: WheelVariant[];
37
+ }
38
+ interface SpecLike {
39
+ lugs: number | null;
40
+ sizes: number[];
41
+ widths: number[];
42
+ pcds: string[];
43
+ centreBores: number[];
44
+ etRange: number[];
45
+ loadRating: string;
46
+ bumpProfile: string;
47
+ rimProfile: string;
48
+ cap: string;
49
+ }
50
+ export declare function dimensionCallouts(variant: WheelVariant | undefined, spec: Pick<SpecLike, "sizes" | "widths" | "etRange"> | null | undefined): {
51
+ diameter: string;
52
+ width: string;
53
+ offset: string;
54
+ };
55
+ export declare function sourceFromWheel(w: Wheel): SpecTableSourceValue;
56
+ export declare function buildSpecSheet(source: SpecTableSourceValue | null | undefined, finishName?: string, sizeProfile?: string): SpecSheet;
57
+ export declare function buildLegacySpecSheet(slug: string, finishName?: string, sizeProfile?: string): SpecSheet;
58
+ export {};
@@ -0,0 +1 @@
1
+ import{getWheelBySlug as v}from"./wheels.js";import{getWheelSpec as y}from"./wheel-specs.js";import{getFitments as K}from"./fitments.js";import{COLLECTION_FIELD_KEY as L}from"../content/field-usage.js";import{parseBoltPattern as R}from"./plp-fitment-match.js";import{etRangeLabel as B,trimDecimal as w}from"./spec-format.js";import{variantSpecLabel as C}from"./variant-spec.js";import{findVariant as P}from"./variants.js";import{lugDigits as d}from"./lug-count.js";function m(e){return e&&e.trim()?e:"—"}function h(e){return e[0]?.replace(/^\s*\d+\s*[×x]\s*/,"")||"—"}function p(e,t,i,n,l){const o=R(l?.boltPattern).holes,s=o!=null&&o>0?o:e.lugs,c=d(s),r=e.pcds.length?e.pcds.join(" · "):"—",a=e.centreBores.length?`${e.centreBores.join(" / ")} mm`:"—",u=e.etRange.length>=2?B(e.etRange[0],e.etRange[1]):"—",f=n??"",S=l?C(l):"—";return{rows:[{label:"Your Selection",value:"—",accent:!0},{label:"Finish",value:i,fieldKey:"wheel_finish_ref"},{label:"Size",value:f},{label:"Wheel Spec",value:S},{label:"Lug Count",value:m(c&&`${c}-lug`),fieldKey:"holes"},{label:"Bolt Pattern",value:r,fieldKey:"bolt_pattern"},{label:"Offset (ET)",value:u,fieldKey:"et"},{label:"Process",value:m(t),fieldKey:L},{label:"Centre Bore",value:a,fieldKey:"center_bore"},{label:"Load Rating",value:m(e.loadRating),fieldKey:"load_rating"},{label:"Bump Profile",value:m(e.bumpProfile),fieldKey:"hump"},{label:"Rim Profile",value:m(e.rimProfile),fieldKey:"flange"},{label:"Cap Code",value:m(e.cap),fieldKey:"cap_code"}],size:f}}function g(e){return e.length?e[Math.ceil(e.length/2)-1]:void 0}function _(e,t){const i=e?.diameter??g(t?.sizes??[]),n=e?.width??g(t?.widths??[]),l=t?.etRange??[],[o,s]=l,c=e?.et??(l.length>=2&&o===s?o:void 0),r=a=>m(a!=null?w(a):void 0);return{diameter:r(i),width:r(n),offset:r(c)}}function b(e,t){const i=e?.centreBore??g(t.centreBores);return{..._(e,t),bore:m(i!=null?`${i} mm`:void 0)}}function O(e){return{slug:e.slug,name:e.name,process:e.process,spokes:e.spokes,mesh:e.mesh,spec:e.spec??null,finishes:e.finishes.map(t=>({name:t.name,image:t.src||t.angles?.[0]||null})),coverImage:e.coverImage??null,variants:e.variants}}function T(e,t,i){const n=e?.spec;if(!e||!n)return{rows:[],diagram:null};const l=e.finishes.find(u=>u.name===t)??e.finishes[0],o=P(e.variants??[],l?.name,i),{rows:s,size:c}=p(n,e.process,l?.name??"—",i,o),r=b(o,n),a={wheelName:e.name,imageSrc:l?.image??e.coverImage??null,...r,holes:d(n.lugs),pcd:h(n.pcds),spokes:e.spokes,mesh:e.mesh};return{rows:s,diagram:a}}function $(e,t,i){const n=v(e),l=y(e);if(!n||!l)return{rows:[],diagram:null};const o=K(e),s=n.finishes.find(f=>f.name===t)??n.finishes[0],{rows:c,size:r}=p(l,n.process,s?.name??"—",i,void 0),a=b(void 0,l),u={wheelName:n.name,imageSrc:s?.angles?.[0]??s?.src??null,...a,holes:o[0]?.holes?.toString()??d(l.lugs),pcd:o[0]?.pcd??h(l.pcds),spokes:n.spokes,mesh:n.mesh};return{rows:c,diagram:u}}export{$ as buildLegacySpecSheet,T as buildSpecSheet,_ as dimensionCallouts,O as sourceFromWheel};
@@ -0,0 +1,34 @@
1
+ export declare const TYRE_VIEW_SIZE = 400;
2
+ export interface TyreProfile {
3
+ sectionWidth: number;
4
+ aspectRatio: number;
5
+ rimDiameter: number;
6
+ }
7
+ export declare const DEFAULT_TYRE_PROFILE: TyreProfile;
8
+ export declare function tyreProfileFromSize(label: string | null | undefined): TyreProfile;
9
+ export interface TyreGeometry {
10
+ cy: number;
11
+ rx: number;
12
+ ry: number;
13
+ cxf: number;
14
+ dx: number;
15
+ rimRx: number;
16
+ rimRy: number;
17
+ }
18
+ export declare function tyreGeometry(profile: TyreProfile): TyreGeometry;
19
+ export declare function tyreArcPath(g: TyreGeometry, f: number, sweep: 0 | 1, flip?: boolean): string;
20
+ export declare function tyreRingPath(g: TyreGeometry, f0: number, f1: number): string;
21
+ export declare function tyreBlockPath(g: TyreGeometry, f0: number, f1: number, t0: number, t1: number): string;
22
+ export interface TreadColumn {
23
+ f: readonly [number, number];
24
+ blocks?: {
25
+ count: number;
26
+ gap: number;
27
+ phase?: number;
28
+ };
29
+ }
30
+ export type TreadPattern = readonly TreadColumn[];
31
+ export declare const TREAD_GENERIC: TreadPattern;
32
+ export declare const TREAD_PATTERNS: Readonly<Record<string, TreadPattern>>;
33
+ export declare function resolveTreadPattern(tireType: string | null | undefined): TreadPattern;
34
+ export declare const TYRE_ILLUSTRATION_NOTE: string;
@@ -0,0 +1 @@
1
+ import{parseTyreSize as d}from"../tyres/tyre-size.js";const R=25.4,p=400,i=152,P=58,u=i*Math.cos(P*Math.PI/180),b=14,E=p/2,k={sectionWidth:225,aspectRatio:60,rimDiameter:17};function L(t){const c=d(t);return c?{sectionWidth:c.width,aspectRatio:c.profile,rimDiameter:c.rim}:k}function S(t){const c=t.rimDiameter*R/2,e=c+t.sectionWidth*t.aspectRatio/100,r=i*(t.sectionWidth/e),n=c/e;return{cy:E,rx:u,ry:i,cxf:p/2-r/2-b,dx:r,rimRx:u*n,rimRy:i*n}}const o=t=>t.toFixed(1);function I(t,c,e,r=!1){const n=t.cxf+c*t.dx,[s,a]=r?[t.cy+t.ry,t.cy-t.ry]:[t.cy-t.ry,t.cy+t.ry];return`M${o(n)} ${o(s)} A${o(t.rx)} ${o(t.ry)} 0 0 ${e} ${o(n)} ${o(a)}`}function U(t,c,e){const r=t.cxf+c*t.dx,n=t.cxf+e*t.dx,s=t.cy-t.ry,a=t.cy+t.ry;return`M${o(r)} ${o(s)} L${o(n)} ${o(s)} A${o(t.rx)} ${o(t.ry)} 0 0 1 ${o(n)} ${o(a)} L${o(r)} ${o(a)} A${o(t.rx)} ${o(t.ry)} 0 0 0 ${o(r)} ${o(s)} Z`}function f(t,c,e){const r=e*Math.PI;return[t.cxf+c*t.dx+t.rx*Math.sin(r),t.cy-t.ry*Math.cos(r)]}function O(t,c,e,r,n){const[s,a]=f(t,c,r),[y,$]=f(t,c,n),[h,l]=f(t,e,n),[T,m]=f(t,e,r);return`M${o(s)} ${o(a)} A${o(t.rx)} ${o(t.ry)} 0 0 1 ${o(y)} ${o($)} L${o(h)} ${o(l)} A${o(t.rx)} ${o(t.ry)} 0 0 0 ${o(T)} ${o(m)} L${o(s)} ${o(a)} Z`}const x=[{f:[0,.215]},{f:[.245,.485]},{f:[.515,.755]},{f:[.785,1]}],M={COM:[{f:[0,.115]},{f:[.145,.26]},{f:[.29,.405]},{f:[.435,.55]},{f:[.58,.695]},{f:[.725,.84]},{f:[.87,1]}],P:[{f:[0,.17],blocks:{count:9,gap:.34}},{f:[.2,.38]},{f:[.42,.58]},{f:[.62,.8]},{f:[.83,1],blocks:{count:9,gap:.34,phase:.5}}],HP:[{f:[0,.3]},{f:[.34,.52]},{f:[.56,.7]},{f:[.74,1],blocks:{count:16,gap:.18}}],UHP:[{f:[0,.34]},{f:[.4,.56]},{f:[.62,1]}],SUV:[{f:[0,.16],blocks:{count:7,gap:.4}},{f:[.2,.36],blocks:{count:11,gap:.26,phase:.5}},{f:[.4,.6]},{f:[.64,.8],blocks:{count:11,gap:.26,phase:.5}},{f:[.84,1],blocks:{count:7,gap:.4}}],LT:[{f:[0,.22],blocks:{count:11,gap:.26}},{f:[.26,.48],blocks:{count:11,gap:.26,phase:.5}},{f:[.52,.74],blocks:{count:11,gap:.26}},{f:[.78,1],blocks:{count:11,gap:.26,phase:.5}}],AT:[{f:[0,.23],blocks:{count:6,gap:.46}},{f:[.29,.5],blocks:{count:6,gap:.46,phase:.5}},{f:[.56,.77],blocks:{count:6,gap:.46}},{f:[.83,1],blocks:{count:6,gap:.46,phase:.5}}],MT:[{f:[0,.29],blocks:{count:4,gap:.58}},{f:[.36,.64],blocks:{count:4,gap:.58,phase:.5}},{f:[.71,1],blocks:{count:4,gap:.58}}]},A=[["ultra high performance","UHP"],["uhp","UHP"],["high performance","HP"],["hp","HP"],["performance","HP"],["sport","HP"],["mud terrain","MT"],["mud","MT"],["mt","MT"],["all terrain","AT"],["at","AT"],["light truck","LT"],["lt","LT"],["commercial","COM"],["com","COM"],["van","COM"],["cargo","COM"],["suv","SUV"],["4x4","SUV"],["crossover","SUV"],["cuv","SUV"],["passenger","P"],["touring","P"],["highway","P"],["p","P"]];function C(t){const c=` ${(t??"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim()} `;if(c.trim()==="")return x;for(const[e,r]of A)if(c.includes(` ${e} `))return M[r];return x}const H="Illustrations are drawn to each tyre's listed size and represent its category; supplier photography replaces them where available.";export{k as DEFAULT_TYRE_PROFILE,x as TREAD_GENERIC,M as TREAD_PATTERNS,H as TYRE_ILLUSTRATION_NOTE,p as TYRE_VIEW_SIZE,C as resolveTreadPattern,I as tyreArcPath,O as tyreBlockPath,S as tyreGeometry,L as tyreProfileFromSize,U as tyreRingPath};
@@ -0,0 +1,9 @@
1
+ import type { WheelVariant } from "../api/index.js";
2
+ export declare function variantSizeLabel(variant: WheelVariant): string;
3
+ export declare function variantFitmentLabel(variant: WheelVariant): string;
4
+ export declare function variantEtKey(variant: WheelVariant): string | null;
5
+ export declare function variantSizeGroupKey(variant: WheelVariant): string;
6
+ export declare function variantSizeGroupLabel(variant: WheelVariant): string;
7
+ export declare function variantSizeGroupNote(variant: WheelVariant): string;
8
+ export declare function variantSpecLabel(variant: WheelVariant): string;
9
+ export declare function variantsForFinish(variants: WheelVariant[], finishName: string | null | undefined): WheelVariant[];
@@ -0,0 +1 @@
1
+ import{trimDecimal as u,wheelSizeLabel as i}from"./spec-format.js";import{variantHasDistinctRear as o}from"./set-mode.js";function h(e){return e.diameter==null||e.width==null?e.size:i(e.diameter,e.width,e.rearWidth)}function p(e){const r=[];e.boltPattern&&r.push(e.boltPattern),e.centreBore!=null&&r.push(`${u(e.centreBore)} bore`);const t=n(e);return t!==null&&r.push(`ET ${t}`),e.directional&&r.push("L/R pair"),r.join(" · ")}function n(e){return e.et==null?null:e.rearEt!=null&&e.rearEt!==e.et?`${e.et}/${e.rearEt}`:String(e.et)}function c(e){return e.diameter==null||e.width==null?JSON.stringify([e.size]):JSON.stringify([e.kind,e.diameter,e.width,e.rearWidth??null])}function s(e){return e.diameter==null||e.width==null?e.size:`${e.diameter}" ${e.kind}`}function m(e){return e.diameter==null||e.width==null?"":e.rearWidth!=null?`${u(e.width)} front / ${u(e.rearWidth)} rear`:`${u(e.width)} all round`}function $(e){if(e.diameter==null||e.width==null)return e.size;const r=(t,l)=>`${e.diameter} × ${u(t)}${l!=null?` ET ${l}`:""}`;return o(e)?`${r(e.width,e.et)} front · ${r(e.rearWidth??e.width,e.rearEt)} rear`:r(e.width,e.et)}function w(e,r){return r?e.filter(t=>t.finishName===r):[]}export{n as variantEtKey,p as variantFitmentLabel,c as variantSizeGroupKey,s as variantSizeGroupLabel,m as variantSizeGroupNote,h as variantSizeLabel,$ as variantSpecLabel,w as variantsForFinish};
@@ -0,0 +1,8 @@
1
+ import type { WheelSummary, WheelVariant } from "../api/index.js";
2
+ export declare function setLabel(variant: WheelVariant): string;
3
+ export declare function sizesForFinish(variants: WheelVariant[], finishName: string | null): string[];
4
+ export declare function findVariant(variants: WheelVariant[], finishName: string | null | undefined, size: string | null | undefined): WheelVariant | undefined;
5
+ export declare function isVariantOutOfStock(variant: WheelVariant | undefined): boolean;
6
+ export declare function outOfStockVariantsForFinish(variants: WheelVariant[], finishName: string | null | undefined): WheelVariant[];
7
+ export declare function firstSellableFinishIndex(variants: WheelVariant[], finishNames: string[], availability: boolean[]): number;
8
+ export declare function isOneWheelDesign(wheel: WheelSummary): boolean;
@@ -0,0 +1 @@
1
+ import{WHEELS_PER_SET as s}from"../commerce.js";import{variantIsHanded as f}from"./set-mode.js";const c="dually";function p(e){const t=e.components.reduce((r,o)=>r+o.wheels,0)||s,n=e.kind,i=[n==="staggered"?"Staggered":n===c?"Dually":"",f(e)?"L/R":""].filter(Boolean);return i.length?`${i.join(" ")} set of ${t}`:`Set of ${t}`}function u(e,t){return[...new Set(e.filter(n=>!t||n.finishName===t).map(n=>n.size))]}function g(e,t,n){if(!(!t||!n))return e.find(i=>i.finishName===t&&i.size===n)}function l(e){return e!=null&&e.inStock===!1}function h(e,t){return t?e.filter(n=>n.finishName===t&&l(n)):[]}function x(e,t,n){return t.findIndex((i,r)=>n[r]!==!1&&u(e,i).length>0)}function S(e){const t=new Set((e.sizePairs??[]).map(r=>`${r.diameter}x${r.width}`)),n=e.spec?.pcds??[],i=e.spec?.etRange??[];return t.size===1&&n.length<=1&&(i.length===0||i[0]===i[i.length-1])}export{g as findVariant,x as firstSellableFinishIndex,S as isOneWheelDesign,l as isVariantOutOfStock,h as outOfStockVariantsForFinish,p as setLabel,u as sizesForFinish};
@@ -0,0 +1,7 @@
1
+ import type { VehicleSelection } from "./fitment-options.js";
2
+ export type VehicleField = "make" | "model" | "year" | "trim";
3
+ export declare const VEHICLE_FIELD_ORDER: readonly VehicleField[];
4
+ export declare const VEHICLE_FIELD_LABEL: Record<VehicleField, string>;
5
+ export declare function isVehicleFieldPicked(field: VehicleField, vehicle: VehicleSelection): boolean;
6
+ export declare function resolveVehicleFocus(clicked: VehicleField, vehicle: VehicleSelection): VehicleField;
7
+ export declare function firstUnansweredVehicleField(vehicle: VehicleSelection): VehicleField | null;
@@ -0,0 +1 @@
1
+ const n=["make","model","year","trim"],i={make:"Make",model:"Model",year:"Year",trim:"Trim"};function o(r,e){switch(r){case"make":return e.make!=="";case"model":return e.model!=="";case"year":return e.year!==null;case"trim":return e.modification!==""}}function a(r,e){for(const t of n){if(t===r)break;if(!o(t,e))return t}return r}function m(r){return n.find(e=>!o(e,r))??null}export{i as VEHICLE_FIELD_LABEL,n as VEHICLE_FIELD_ORDER,m as firstUnansweredVehicleField,o as isVehicleFieldPicked,a as resolveVehicleFocus};
@@ -0,0 +1,25 @@
1
+ import { type StorageLike } from "efficient-web-builder/format/lib/safe-storage";
2
+ import { type VehicleSelection } from "./fitment-options.js";
3
+ export declare const VEHICLE_STORAGE_KEY = "storefront-vehicle";
4
+ export interface RememberedVehicleLabels {
5
+ make: string;
6
+ model: string;
7
+ modification: string;
8
+ }
9
+ export interface RememberedVehicle {
10
+ vehicle: VehicleSelection;
11
+ labels: RememberedVehicleLabels;
12
+ }
13
+ export type VehicleStorage = StorageLike;
14
+ export declare function createVehicleMemory(getStorage: () => VehicleStorage | null): {
15
+ read: () => RememberedVehicle | null;
16
+ write: (value: RememberedVehicle) => void;
17
+ clear: () => void;
18
+ subscribe: (listener: () => void) => () => void;
19
+ };
20
+ export declare const storefrontVehicleMemory: {
21
+ read: () => RememberedVehicle | null;
22
+ write: (value: RememberedVehicle) => void;
23
+ clear: () => void;
24
+ subscribe: (listener: () => void) => () => void;
25
+ };
@@ -0,0 +1 @@
1
+ import{safeLocalStorage as l}from"efficient-web-builder/format/lib/safe-storage";import{DEFAULT_VEHICLE as c}from"./fitment-options.js";import{isCompleteVehicle as s}from"./plp-vehicle-params.js";const n="storefront-vehicle";function m(r){if(!r||typeof r!="object")return null;const e=r,o={...c,...e.vehicle??{}};return s(o)?{vehicle:o,labels:{make:e.labels?.make??o.make,model:e.labels?.model??o.model,modification:e.labels?.modification??o.modification}}:null}function a(r){let e;const o=new Set,i=()=>{for(const t of[...o])t()};return{read(){if(e!==void 0)return e;try{const t=r()?.getItem(n);e=t?m(JSON.parse(t)):null}catch{e=null}return e},write(t){e=t;try{r()?.setItem(n,JSON.stringify(t))}catch{}i()},clear(){e=null;try{r()?.removeItem(n)}catch{}i()},subscribe(t){return o.add(t),()=>{o.delete(t)}}}}const p=a(()=>l);export{n as VEHICLE_STORAGE_KEY,a as createVehicleMemory,p as storefrontVehicleMemory};
@@ -0,0 +1,4 @@
1
+ export declare function splitWheelName(name: string): {
2
+ lead: string;
3
+ accent: string;
4
+ };
@@ -0,0 +1 @@
1
+ function c(e){const t=e.lastIndexOf(" ");return t===-1?{lead:"",accent:e}:{lead:e.slice(0,t+1),accent:e.slice(t+1)}}export{c as splitWheelName};
@@ -0,0 +1,14 @@
1
+ export interface WheelSpec {
2
+ lugs: 5 | 6;
3
+ sizes: number[];
4
+ widths: number[];
5
+ pcds: string[];
6
+ etRange: [number, number];
7
+ centreBores: number[];
8
+ loadRating: string;
9
+ cap: string;
10
+ bumpProfile: string;
11
+ rimProfile: string;
12
+ }
13
+ export declare const SPECS_BY_SLUG: Record<string, WheelSpec>;
14
+ export declare function getWheelSpec(slug: string): WheelSpec | undefined;
@@ -0,0 +1 @@
1
+ const i={"haste-ii":{lugs:5,sizes:[18,19,20],widths:[8,8.5,9.5,10],pcds:["5×112-114.3","5×120"],etRange:[33,42],centreBores:[72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP595AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"force-6":{lugs:6,sizes:[20,22,24],widths:[9,9.5,10],pcds:["6×135","6×139.7","6×135-139.7"],etRange:[20,25],centreBores:[87.1],loadRating:"880 kg / 1,940 lbs",cap:"CP506AL82",bumpProfile:"H2",rimProfile:"34×16×60°"},"speed-ii":{lugs:5,sizes:[18,19,20],widths:[8,8.5,9.5,10],pcds:["5×112-114.3","5×120"],etRange:[33,42],centreBores:[72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP595AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"vortex-ii":{lugs:5,sizes:[18,19,20],widths:[8,8.5,9.5,10],pcds:["5×112-114.3","5×120"],etRange:[35,42],centreBores:[72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP595AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"vector-iii":{lugs:5,sizes:[18,19,20,22],widths:[8,8.5,9.5,10,10.5],pcds:["5×112-114.3","5×120"],etRange:[32,42],centreBores:[71.5,72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP595AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"blitz-ii":{lugs:5,sizes:[18,19,20,22],widths:[8,8.5,9.5,10,10.5],pcds:["5×112-114.3","5×120"],etRange:[38,42],centreBores:[71.5,72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP595AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"thrust-ii":{lugs:5,sizes:[18,19,20,22],widths:[8,8.5,9.5,10,10.5],pcds:["5×112-114.3","5×120"],etRange:[33,42],centreBores:[71.5,72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP595AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"torque-ii":{lugs:5,sizes:[18,19,20],widths:[8,8.5,9.5,10],pcds:["5×112-114.3","5×120"],etRange:[42,42],centreBores:[72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP506AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"turbine-ii":{lugs:5,sizes:[20,22],widths:[8.5,10,10.5],pcds:["5×112-114.3","5×120"],etRange:[35,42],centreBores:[71.5,72.6,73.1],loadRating:"880 kg / 1,940 lbs",cap:"CP506AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},blitz:{lugs:5,sizes:[18,19,20],widths:[8,8.5,9.5,10],pcds:["5×112-114.3","5×120"],etRange:[38,42],centreBores:[72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP595AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"frixion-5":{lugs:5,sizes:[18,19,20],widths:[8,8.5,9.5,10],pcds:["5×112-114.3","5×120"],etRange:[35,42],centreBores:[72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP595AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"frixion-6":{lugs:6,sizes:[20,22,24],widths:[9,9.5,10],pcds:["6×135","6×139.7","6×135-139.7"],etRange:[20,25],centreBores:[87.1],loadRating:"690–880 kg / 1,520–1,940 lbs",cap:"CP506AL82",bumpProfile:"EH2+",rimProfile:"34×16×60°"},rotor:{lugs:5,sizes:[20,22],widths:[8.5,9,10,10.5],pcds:["5×112-114.3","5×115","5×120","5×127"],etRange:[15,40],centreBores:[71.5,72.6,73.1],loadRating:"880 kg / 1,940 lbs",cap:"CP509PS73",bumpProfile:"EH2+",rimProfile:"32×15×60°"},"vector-ii":{lugs:5,sizes:[19,20],widths:[8.5,9.5,10],pcds:["5×112-114.3","5×120"],etRange:[38,42],centreBores:[72.6,73.1],loadRating:"880 kg / 1,940 lbs",cap:"CP506AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"},torque:{lugs:5,sizes:[18,19,20],widths:[8,8.5,9.5,10],pcds:["5×112-114.3","5×120"],etRange:[35,42],centreBores:[72.6,73.1],loadRating:"690 kg / 1,520 lbs",cap:"CP506AL68",bumpProfile:"EH2+",rimProfile:"32×15×60°"}};function s(e){return i[e]}export{i as SPECS_BY_SLUG,s as getWheelSpec};
@@ -0,0 +1,4 @@
1
+ import type { WheelSummary } from "../api/index.js";
2
+ import { type PlpItem } from "../catalog/plp-item.js";
3
+ export declare function normalizeWheelSummary(wheel: WheelSummary): WheelSummary;
4
+ export declare function normalizeCatalogRows<T extends PlpItem>(rows: readonly T[]): T[];
@@ -0,0 +1 @@
1
+ import{itemKind as s}from"../catalog/plp-item.js";function p(t){if(!t.includes("_"))return t;const r=t.replace(/^_+/,""),e=t.slice(0,t.length-r.length),[n,...c]=r.split("_");return e+n+c.map(o=>o.slice(0,1).toUpperCase()+o.slice(1)).join("")}function i(t){if(Array.isArray(t))return t.map(i);if(t&&typeof t=="object"){const r={};for(const[e,n]of Object.entries(t))r[p(e)]=i(n);return r}return t}function f(t){return i(t)}function a(t){return t.map(r=>s(r)==="tyre"?r:f(r))}export{a as normalizeCatalogRows,f as normalizeWheelSummary};
@@ -0,0 +1,38 @@
1
+ export type FinishFamily = "black" | "silver" | "bronze" | "graphite" | "red";
2
+ export type Process = "FusionForge®" | "Precision Forged" | "Monoblock Cast";
3
+ export type Badge = "new" | "bestseller" | null;
4
+ import type { Currency, Prices } from "../api/index.js";
5
+ export type { Currency, Prices };
6
+ export interface Finish {
7
+ name: string;
8
+ color: string;
9
+ family: FinishFamily;
10
+ src?: string;
11
+ angles?: string[];
12
+ }
13
+ export interface Wheel {
14
+ name: string;
15
+ slug: string;
16
+ process: Process;
17
+ sizes: number[];
18
+ prices: Prices;
19
+ spokes: number;
20
+ mesh: boolean;
21
+ badge: Badge;
22
+ finishes: Finish[];
23
+ description?: string;
24
+ }
25
+ export declare const HEX: {
26
+ readonly hyperBlack: "#1a1a1c";
27
+ readonly blackSatin: "#0d0d0d";
28
+ readonly blackMachined: "#2a2a2a";
29
+ readonly silverSatin: "#a8a8a8";
30
+ readonly silverMachined: "#b5b5b5";
31
+ readonly bronze: "#7a5a3a";
32
+ readonly anthracite: "#3a3a3a";
33
+ readonly candyRed: "#9a1f1f";
34
+ readonly gunmetal: "#4a4d52";
35
+ };
36
+ export declare const WHEELS: Wheel[];
37
+ export declare function getWheelBySlug(slug: string): Wheel | undefined;
38
+ export declare function getRelatedWheels(slug: string, count?: number): Wheel[];
@@ -0,0 +1 @@
1
+ const r={hyperBlack:"#1a1a1c",blackSatin:"#0d0d0d",blackMachined:"#2a2a2a",silverSatin:"#a8a8a8",silverMachined:"#b5b5b5",bronze:"#7a5a3a",anthracite:"#3a3a3a",candyRed:"#9a1f1f",gunmetal:"#4a4d52"},e="/media/images/products",c=["0","20-20","25","35"];function a(i,o,n){const s=`${e}/${i}/${n}${o}`,I=c.map(l=>`${s}${l}.png`);return{src:I[0],angles:I}}function t(i,o,n){const s=c.map((I,l)=>`${e}/${i}/${o}.${I}.${n[l]}.png`);return{src:s[0],angles:s}}import{media as u}from"efficient-web-builder/render/lib/media";const p=[{name:"HASTE II",slug:"haste-ii",process:"FusionForge®",sizes:[18,19,20],price:1450,spokes:5,mesh:!1,badge:"bestseller",finishes:[{name:"Silver Satin Lacquer",color:r.silverSatin,family:"silver",...a("Haste II",".","Haste II.Ssl")},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",...a("Haste II",".","Haste II.Ksl")}]},{name:"FORCE 6",slug:"force-6",process:"FusionForge®",sizes:[19,20,21],price:2950,spokes:6,mesh:!1,badge:null,finishes:[{name:"Silver Machined Carbon Satin Lacquer",color:r.silverMachined,family:"silver",...a("force 6",".","Froce6.Smfcbtm")},{name:"Black Machined Carbon Dark Tint Satin Lacquer",color:r.blackMachined,family:"black",...a("force 6",".","Froce6.Kmfcbtdtm")},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",...a("force 6",".","Froce6.Ktm")},{name:"Candy Red",color:r.candyRed,family:"red",...a("force 6",".","Froce6.R")}]},{name:"SPEED II",slug:"speed-ii",process:"FusionForge®",sizes:[18,19,20],price:3400,spokes:5,mesh:!1,badge:"new",finishes:[{name:"Silver Machined Face",color:r.silverMachined,family:"silver",...a("speed_II",".","Speed II.Smftm")},{name:"Black Machined Face Dark Tint Satin Lacquer",color:r.blackMachined,family:"black",...a("speed_II",".","Speed II.Kmftdtm")},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",...a("speed_II",".","Speed II.Ktm")},{name:"Candy Red",color:r.candyRed,family:"red",...a("speed_II",".","Speed II.R")}]},{name:"VORTEX II",slug:"vortex-ii",process:"FusionForge®",sizes:[19,20],price:3200,spokes:5,mesh:!0,badge:null,finishes:[{name:"Silver Machined Face",color:r.silverMachined,family:"silver",...a("Vortex II","-","Vortex II-SMFTM")},{name:"Black Machined Face Satin Lacquer Dark Tint",color:r.blackMachined,family:"black",...a("Vortex II","-","Vortex II-KMFTMTD")},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",...a("Vortex II","-","Vortex II-KTM")}]},{name:"VECTOR III",slug:"vector-iii",process:"Precision Forged",sizes:[18,19,20,21],price:4200,spokes:7,mesh:!1,badge:null,finishes:[{name:"Hyper Black",color:r.hyperBlack,family:"black",...a("vector_III","-","Vector III-H")},{name:"Anthracite",color:r.anthracite,family:"graphite",...a("vector_III","-","Vector III-ATM")},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",...a("vector_III","-","Vector III-KTM")},{name:"Silver Satin Lacquer",color:r.silverSatin,family:"silver",...a("vector_III","-","Vector III-STM")},{name:"Bronze",color:r.bronze,family:"bronze",...a("vector_III","-","Vector III- N")}]},{name:"BLITZ II",slug:"blitz-ii",process:"Precision Forged",sizes:[18,19,20,22],price:4400,spokes:8,mesh:!0,badge:null,finishes:[{name:"Hyper Black",color:r.hyperBlack,family:"black",src:`${e}/blitz_II/Blitz II.H.0.752 (3).png`,angles:[`${e}/blitz_II/Blitz II.H.0.752 (3).png`,`${e}/blitz_II/Blitz II.H.20-20752 (4).png`,`${e}/blitz_II/Blitz II.H.25.752 (2).png`,`${e}/blitz_II/Blitz II.H.35.752 (1).png`]},{name:"Anthracite",color:r.anthracite,family:"graphite",src:`${e}/blitz_II/Blitz II.A.0.756 (3).png`,angles:[`${e}/blitz_II/Blitz II.A.0.756 (3).png`,`${e}/blitz_II/Blitz II.A.20-20.756 (4).png`,`${e}/blitz_II/Blitz II.A.25.756 (2).png`,`${e}/blitz_II/Blitz II.A.35.756 (1).png`]},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",src:`${e}/blitz_II/Blitz II.Ktm.0.760 (3).png`,angles:[`${e}/blitz_II/Blitz II.Ktm.0.760 (3).png`,`${e}/blitz_II/Blitz II.Ktm.20-20760 (4).png`,`${e}/blitz_II/Blitz II.Ktm.25.760 (2).png`,`${e}/blitz_II/Blitz II.Ktm.35.760 (1).png`]},{name:"Silver Satin Lacquer",color:r.silverSatin,family:"silver",src:`${e}/blitz_II/Blitz II.Stm.0.748 (3).png`,angles:[`${e}/blitz_II/Blitz II.Stm.0.748 (3).png`,`${e}/blitz_II/Blitz II.Stm 20-20.748 (4).png`,`${e}/blitz_II/Blitz II.Stm.25.748 (2).png`,`${e}/blitz_II/Blitz II.Stm.35.748 (1).png`]},{name:"Bronze",color:r.bronze,family:"bronze",src:`${e}/blitz_II/Blitz II.n.0.764 (3).png`,angles:[`${e}/blitz_II/Blitz II.n.0.764 (3).png`,`${e}/blitz_II/Blitz II.n.20-20.764 (4).png`,`${e}/blitz_II/Blitz II.n.25.764 (2).png`,`${e}/blitz_II/Blitz II.n.35.764 (1).png`]}]},{name:"THRUST II",slug:"thrust-ii",process:"Precision Forged",sizes:[18,19,20,22],price:4500,spokes:7,mesh:!1,badge:"bestseller",finishes:[{name:"Hyper Black",color:r.hyperBlack,family:"black",src:`${e}/thrust_II/Thrust II v2 2010 H.0.719.png`,angles:[`${e}/thrust_II/Thrust II v2 2010 H.0.719.png`,`${e}/thrust_II/Thrust II v2 2010 H.30.720.png`,`${e}/thrust_II/Thrust II v2 2010 H.30-30.722.png`,`${e}/thrust_II/Thrust II v2 2010 H.45.721.png`]},{name:"Anthracite",color:r.anthracite,family:"graphite",src:`${e}/thrust_II/Thrust II v2 2010 A.0.735.png`,angles:[`${e}/thrust_II/Thrust II v2 2010 A.0.735.png`,`${e}/thrust_II/Thrust II v2 2010 A.30.736.png`,`${e}/thrust_II/Thrust II v2 2010 A.30-30.738.png`,`${e}/thrust_II/Thrust II v2 2010 A.45.737.png`]},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",src:`${e}/thrust_II/Thrust II v2 2010 K.0.730.png`,angles:[`${e}/thrust_II/Thrust II v2 2010 K.0.730.png`,`${e}/thrust_II/Thrust II v2 2010 K.30.731.png`,`${e}/thrust_II/Thrust II v2 2010 K.30-30.733.png`,`${e}/thrust_II/Thrust II v2 2010 K.45.732.png`]},{name:"Silver Satin Lacquer",color:r.silverSatin,family:"silver",src:`${e}/thrust_II/Thrust II v2 2010 S.0.725.png`,angles:[`${e}/thrust_II/Thrust II v2 2010 S.0.725.png`,`${e}/thrust_II/Thrust II v2 2010 S.30.726.png`,`${e}/thrust_II/Thrust II v2 2010 S.30-30.728.png`,`${e}/thrust_II/Thrust II v2 2010 S.45.727.png`]},{name:"Bronze",color:r.bronze,family:"bronze",src:`${e}/thrust_II/Thrust II v2 2010 N.0.740.png`,angles:[`${e}/thrust_II/Thrust II v2 2010 N.0.740.png`,`${e}/thrust_II/Thrust II v2 2010 N.30.741.png`,`${e}/thrust_II/Thrust II v2 2010 N.30-30.743.png`,`${e}/thrust_II/Thrust II v2 2010 N.45.742.png`]}]},{name:"TORQUE II",slug:"torque-ii",process:"Precision Forged",sizes:[18,19,20,22],price:4300,spokes:7,mesh:!1,badge:null,finishes:[{name:"Hyper Black",color:r.hyperBlack,family:"black",src:`${e}/torque_II/Torque II-H-0-2195.png`,angles:[`${e}/torque_II/Torque II-H-0-2195.png`,`${e}/torque_II/Torque II-H-20-20-2198.png`,`${e}/torque_II/Torque II-H-25-2196.png`,`${e}/torque_II/Torque II-H-35-2197.png`]},{name:"Anthracite",color:r.anthracite,family:"graphite",src:`${e}/torque_II/Torque II-A-0-2174.png`,angles:[`${e}/torque_II/Torque II-A-0-2174.png`,`${e}/torque_II/Torque II-A-20-20-2177.png`,`${e}/torque_II/Torque II-A-25-2175.png`,`${e}/torque_II/Torque II-A-35-2176.png`]},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",src:`${e}/torque_II/Torque II-Ktm-0-2202.png`,angles:[`${e}/torque_II/Torque II-Ktm-0-2202.png`,`${e}/torque_II/Torque II-Ktm-20-20-2205.png`,`${e}/torque_II/Torque II-Ktm-25-2203.png`,`${e}/torque_II/Torque II-Ktm-35-2204.png`]},{name:"Silver Satin Lacquer",color:r.silverSatin,family:"silver",src:`${e}/torque_II/Torque II-S-0-2181.png`,angles:[`${e}/torque_II/Torque II-S-0-2181.png`,`${e}/torque_II/Torque II-S-20-20-2184.png`,`${e}/torque_II/Torque II-S-25-2182.png`,`${e}/torque_II/Torque II-S-35-2183.png`]},{name:"Bronze",color:r.bronze,family:"bronze",src:`${e}/torque_II/Torque II-N-0-2188.png`,angles:[`${e}/torque_II/Torque II-N-0-2188.png`,`${e}/torque_II/Torque II-N-20-20-2191.png`,`${e}/torque_II/Torque II-N-25-2189.png`,`${e}/torque_II/Torque II-N-35-2190.png`]}]},{name:"TURBINE II",slug:"turbine-ii",process:"Monoblock Cast",sizes:[19,20,21],price:1650,spokes:9,mesh:!0,badge:null,finishes:[{name:"Silver Machined Face",color:r.silverMachined,family:"silver",src:`${e}/turbine II/Turbine II L S MF TM.0.png`,angles:[`${e}/turbine II/Turbine II L S MF TM.0.png`,`${e}/turbine II/Turbine II L S MF TM.25.png`,`${e}/turbine II/Turbine II L S MF TM.35.png`,`${e}/turbine II/Turbine II L S MF TM.45.png`]},{name:"Black Machined Face Dark Tint Satin Lacquer",color:r.blackMachined,family:"black",src:`${e}/turbine II/Turbine II L K MF TD TM.0.png`,angles:[`${e}/turbine II/Turbine II L K MF TD TM.0.png`,`${e}/turbine II/Turbine II L K MF TD TM.25.png`,`${e}/turbine II/Turbine II L K MF TD TM.35.png`,`${e}/turbine II/Turbine II L K MF TD TM.45.png`]}]},{name:"BLITZ",slug:"blitz",process:"Monoblock Cast",sizes:[18,19,20],price:1380,spokes:8,mesh:!0,badge:null,finishes:[{name:"Silver Satin Lacquer",color:r.silverSatin,family:"silver",...t("blitz","Blitz.Stm",["2167","2170","2168","2169"])},{name:"Silver Machined Face",color:r.silverMachined,family:"silver",...t("blitz","Blitz.Smftm",["2160","2163","2161","2162"])},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",...t("blitz","Blitz.Ktm",["2146","2149","2147","2148"])},{name:"Black Machined Face Dark Tint Satin Lacquer",color:r.blackMachined,family:"black",...t("blitz","Blitz.Kmftdtm",["2139","2142","2140","2141"])},{name:"Candy Red",color:r.candyRed,family:"red",...t("blitz","Blitz.Rmftr",["2153","2156","2154","2155"])}]},{name:"FRIXION 5",slug:"frixion-5",process:"Monoblock Cast",sizes:[18,19,20],price:1320,spokes:5,mesh:!1,badge:null,finishes:[{name:"Silver Machined Face",color:r.silverMachined,family:"silver",...t("frixion 5","Frixion5 S MF",["1969","1972","1970","1971"])},{name:"Black Machined Face",color:r.blackMachined,family:"black",...t("frixion 5","Frixion5 K TM",["1995","1998","1996","1997"])},{name:"Candy Red",color:r.candyRed,family:"red",...t("frixion 5","Frixion5 R ",["1973","1976","1974","1975"])}]},{name:"FRIXION 6",slug:"frixion-6",process:"Monoblock Cast",sizes:[18,19,20,22],price:1380,spokes:6,mesh:!1,badge:null,finishes:[{name:"Silver Machined Face",color:r.silverMachined,family:"silver",...t("frixion 6","Frixion6 S MF TM",["2044","2047","2045","2046"])},{name:"Black Machined Face Dark Tint",color:r.blackMachined,family:"black",src:`${e}/frixion 6/Frixion6 K MF TD.0.2030.png`,angles:[`${e}/frixion 6/Frixion6 K MF TD.0.2030.png`,`${e}/frixion 6/Frixion6 K MF TD.20-20.2033.png`,`${e}/frixion 6/Frixion6 K MF TD.25.png`,`${e}/frixion 6/Frixion6 K MF TD.35.2032.png`]},{name:"Candy Red",color:r.candyRed,family:"red",...t("frixion 6","Frixion6 R MF TR",["2037","2040","2038","2039"])}]},{name:"ROTOR",slug:"rotor",process:"Monoblock Cast",sizes:[18,19,20,22],price:1450,spokes:5,mesh:!1,badge:"bestseller",finishes:[{name:"Silver Machined Face",color:r.silverMachined,family:"silver",...a("rotor",".","Rotor.Smftm")},{name:"Black Machined Face Dark Tint",color:r.blackMachined,family:"black",...a("rotor",".","Rotor.Kmftdtm")},{name:"Candy Red",color:r.candyRed,family:"red",...a("rotor",".","Rotor.Rmftr")}]},{name:"VECTOR II",slug:"vector-ii",process:"Monoblock Cast",sizes:[18,19,20],price:1420,spokes:7,mesh:!1,badge:null,finishes:[{name:"Silver Machined Face",color:r.silverMachined,family:"silver",...a("vector II","-","Vector II-Smftm")},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",...a("vector II","-","Vector II-Ktm")},{name:"Candy Red",color:r.candyRed,family:"red",...a("vector II","-","Vector II-Rmftr")}]},{name:"TORQUE",slug:"torque",process:"Monoblock Cast",sizes:[18,19,20],price:1390,spokes:7,mesh:!1,badge:null,finishes:[{name:"Silver Machined Face",color:r.silverMachined,family:"silver",...a("torque","-","Torque-Smftm")},{name:"Black Machined Face Dark Tint Satin Lacquer",color:r.blackMachined,family:"black",...a("torque","-","Torque-Kmftdtm")},{name:"Black Satin Lacquer",color:r.blackSatin,family:"black",...a("torque","-","Torque-Ktm")},{name:"Anthracite",color:r.anthracite,family:"graphite",...a("torque","-","Torque-A")}]}];function h(i){return{GBP:i,USD:Math.round(i*1.28/10)*10,AUD:Math.round(i*1.92/10)*10}}const g={"haste-ii":"A featherweight FusionForge® 5-spoke built for the road — the HASTE II is our bestselling all-rounder, precise under load and unmistakable at the kerb.","force-6":"Six clean FusionForge® spokes carry the FORCE 6: a wide, planted stance engineered for big-brake clearance and effortless high-speed composure.","speed-ii":"New for the season, the SPEED II sharpens the FusionForge® silhouette into a taut, motorsport-inspired 5-spoke tuned for lightness and response.","vortex-ii":"The VORTEX II wraps a FusionForge® core in a split-mesh face — aggressive brake cooling and a deep, dimensional look that shifts with the light.","vector-iii":"Elevate your drive with the VECTOR III: a fully forged, race-inspired open 7-spoke that aids brake cooling and cuts unsprung mass — a commitment to performance and handling.","blitz-ii":"The BLITZ II fans eight Precision Forged spokes into a fine mesh — track-bred cooling and a technical face that reads fast even at a standstill.","thrust-ii":"Our Precision Forged bestseller, the THRUST II balances a rigid 7-spoke structure with real weight savings for confident turn-in and long-haul comfort.","torque-ii":"The TORQUE II is Precision Forged for strength where it counts — a muscular 7-spoke that stays composed under power without the weight penalty.","turbine-ii":"Nine turbine-like spokes give the Monoblock Cast TURBINE II its motion — an accessible, durable wheel with a mesh face that never sits still.",blitz:"The original BLITZ: a Monoblock Cast 8-spoke mesh that brings a technical, layered look to everyday miles at a keen price.","frixion-5":"Clean, honest and Monoblock Cast — the FRIXION 5's simple 5-spoke face suits daily driving and takes finishes beautifully.","frixion-6":"The FRIXION 6 adds a spoke and a wider fitment range to the Frixion line — a versatile Monoblock Cast wheel for road and light track use.",rotor:"Our Monoblock Cast bestseller, the ROTOR pairs a bold 5-spoke face with a broad fitment range — the easy, everyday upgrade.","vector-ii":"The VECTOR II brings the Vector line's open 7-spoke geometry to a Monoblock Cast build — a lighter look and a friendlier price.",torque:"The TORQUE keeps things purposeful: a sturdy Monoblock Cast 7-spoke tuned for a planted stance and dependable street manners."},m=p.map(({price:i,...o})=>({...o,prices:h(i),description:g[o.slug]??"",compatibleTyres:[],finishes:o.finishes.map(n=>({...n,src:n.src?u(n.src):n.src,angles:n.angles?.map(u)}))})),d=new Map(m.map(i=>[i.slug,i]));function b(i){return d.get(i)}function k(i,o=3){const n=b(i);return n?m.filter(s=>s.process===n.process&&s.slug!==i).slice(0,o):[]}export{r as HEX,m as WHEELS,k as getRelatedWheels,b as getWheelBySlug};