efficient-storefront-blocks 0.66.3 → 0.70.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 (593) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +5 -5
  3. package/dist/chunks/{EditorPreviewCheckout-B43B3UMG.js → EditorPreviewCheckout-XI4VULPL.js} +1 -1
  4. package/dist/chunks/{SiteEditorProvider-KOPR3UDU.js → SiteEditorProvider-3GKJZDL5.js} +1 -1
  5. package/dist/chunks/{chunk-2YMPFJUY.js → chunk-QWHNN7GF.js} +1 -1
  6. package/dist/chunks/chunk-RPLNV3WM.js +1 -0
  7. package/dist/chunks/{chunk-IHYVLVY3.js → chunk-SQH6XBRG.js} +1 -1
  8. package/dist/chunks/{chunk-6TBRERLY.js → chunk-TXTTPEQA.js} +1 -1
  9. package/dist/chunks/chunk-XF2ZAVNU.js +262 -0
  10. package/dist/chunks/{fitment-data-SK4TTJRK.js → fitment-data-6GK7QQQI.js} +1 -1
  11. package/dist/contract.js +10 -2
  12. package/dist/editor/components/BlogSource.js +1 -1
  13. package/dist/editor/components/ConsentBannerLayoutTiles.d.ts +1 -1
  14. package/dist/editor/components/HeaderSection.js +1 -1
  15. package/dist/editor/components/HeaderSettingsPanel.d.ts +4 -7
  16. package/dist/editor/components/HeaderSettingsPanel.js +1 -1
  17. package/dist/editor/components/PreviewProductPicker.js +1 -1
  18. package/dist/editor/components/SocialLinksDoor.js +1 -1
  19. package/dist/editor/components/SwitchToBoxHeader.js +1 -1
  20. package/dist/editor/lib/api/section-templates.d.ts +1 -1
  21. package/dist/editor/lib/{puck → document}/blocks/commerce/AccountBlock/fields.d.ts +1 -1
  22. package/dist/editor/lib/document/blocks/commerce/AccountBlock/fields.js +1 -0
  23. package/dist/editor/lib/{puck → document}/blocks/commerce/AlloyWheelsListing/fields.d.ts +1 -1
  24. package/dist/editor/lib/document/blocks/commerce/AlloyWheelsListing/fields.js +1 -0
  25. package/dist/editor/lib/{puck → document}/blocks/commerce/BundleOffer/fields.d.ts +1 -1
  26. package/dist/editor/lib/document/blocks/commerce/BundleOffer/fields.js +1 -0
  27. package/dist/editor/lib/{puck → document}/blocks/commerce/CartBlock/fields.d.ts +1 -1
  28. package/dist/editor/lib/document/blocks/commerce/CartBlock/fields.js +1 -0
  29. package/dist/editor/lib/{puck → document}/blocks/commerce/CatalogFilterBar/fields.d.ts +1 -1
  30. package/dist/editor/lib/document/blocks/commerce/CatalogFilterBar/fields.js +1 -0
  31. package/dist/editor/lib/{puck → document}/blocks/commerce/CheckoutCTA/fields.d.ts +1 -1
  32. package/dist/editor/lib/document/blocks/commerce/CheckoutCTA/fields.js +1 -0
  33. package/dist/editor/lib/{puck → document}/blocks/commerce/CollectionCard/fields.d.ts +1 -1
  34. package/dist/editor/lib/document/blocks/commerce/CollectionCard/fields.js +1 -0
  35. package/dist/editor/lib/{puck → document}/blocks/commerce/Collections/fields.d.ts +1 -1
  36. package/dist/editor/lib/document/blocks/commerce/Collections/fields.js +1 -0
  37. package/dist/editor/lib/{puck → document}/blocks/commerce/CompatibleTyres/fields.d.ts +1 -1
  38. package/dist/editor/lib/document/blocks/commerce/CompatibleTyres/fields.js +1 -0
  39. package/dist/editor/lib/{puck → document}/blocks/commerce/CountrySwitchBlock/fields.d.ts +1 -1
  40. package/dist/editor/lib/document/blocks/commerce/CountrySwitchBlock/fields.js +1 -0
  41. package/dist/editor/lib/{puck → document}/blocks/commerce/DeliveryOptions/fields.d.ts +1 -1
  42. package/dist/editor/lib/document/blocks/commerce/DeliveryOptions/fields.js +1 -0
  43. package/dist/editor/lib/{puck → document}/blocks/commerce/DetailRows/fields.d.ts +1 -1
  44. package/dist/editor/lib/document/blocks/commerce/DetailRows/fields.js +1 -0
  45. package/dist/editor/lib/{puck → document}/blocks/commerce/EuTyreLabel/fields.d.ts +1 -1
  46. package/dist/editor/lib/document/blocks/commerce/EuTyreLabel/fields.js +1 -0
  47. package/dist/editor/lib/{puck → document}/blocks/commerce/EuTyreLabelBlock/fields.d.ts +1 -1
  48. package/dist/editor/lib/{puck → document}/blocks/commerce/FitmentFinder/fields.d.ts +1 -1
  49. package/dist/editor/lib/document/blocks/commerce/FitmentFinder/fields.js +1 -0
  50. package/dist/editor/lib/{puck → document}/blocks/commerce/FitmentTable/fields.d.ts +1 -1
  51. package/dist/editor/lib/document/blocks/commerce/FitmentTable/fields.js +1 -0
  52. package/dist/editor/lib/{puck → document}/blocks/commerce/Gallery/fields.d.ts +1 -1
  53. package/dist/editor/lib/document/blocks/commerce/Gallery/fields.js +1 -0
  54. package/dist/editor/lib/{puck → document}/blocks/commerce/GalleryB/fields.d.ts +1 -1
  55. package/dist/editor/lib/document/blocks/commerce/GalleryB/fields.js +1 -0
  56. package/dist/editor/lib/{puck → document}/blocks/commerce/GalleryItem/fields.d.ts +1 -1
  57. package/dist/editor/lib/document/blocks/commerce/GalleryItem/fields.js +1 -0
  58. package/dist/editor/lib/{puck → document}/blocks/commerce/Header/fields.d.ts +1 -1
  59. package/dist/editor/lib/document/blocks/commerce/ProductGallery/fields.d.ts +6 -0
  60. package/dist/editor/lib/document/blocks/commerce/ProductGallery/fields.js +1 -0
  61. package/dist/editor/lib/{puck → document}/blocks/commerce/ProductGrid/fields.d.ts +1 -1
  62. package/dist/editor/lib/document/blocks/commerce/ProductGrid/fields.js +1 -0
  63. package/dist/editor/lib/{puck → document}/blocks/commerce/ProductHero/fields.d.ts +1 -1
  64. package/dist/editor/lib/document/blocks/commerce/ProductHero/fields.js +1 -0
  65. package/dist/editor/lib/{puck → document}/blocks/commerce/ProductRef/fields.d.ts +1 -1
  66. package/dist/editor/lib/document/blocks/commerce/ProductRef/fields.js +1 -0
  67. package/dist/editor/lib/{puck → document}/blocks/commerce/RelatedProducts/fields.d.ts +1 -1
  68. package/dist/editor/lib/document/blocks/commerce/RelatedProducts/fields.js +1 -0
  69. package/dist/editor/lib/{puck → document}/blocks/commerce/SearchBlock/fields.d.ts +1 -1
  70. package/dist/editor/lib/document/blocks/commerce/SearchBlock/fields.js +1 -0
  71. package/dist/editor/lib/{puck → document}/blocks/commerce/SpecTable/fields.d.ts +1 -1
  72. package/dist/editor/lib/document/blocks/commerce/SpecTable/fields.js +1 -0
  73. package/dist/editor/lib/{puck → document}/blocks/commerce/ThemeSwitchBlock/fields.d.ts +1 -1
  74. package/dist/editor/lib/{puck → document}/blocks/commerce/TyreFitment/fields.d.ts +1 -1
  75. package/dist/editor/lib/document/blocks/commerce/TyreFitment/fields.js +1 -0
  76. package/dist/editor/lib/{puck → document}/blocks/commerce/TyreSizes/fields.d.ts +1 -1
  77. package/dist/editor/lib/document/blocks/commerce/TyreSizes/fields.js +1 -0
  78. package/dist/editor/lib/{puck → document}/blocks/commerce/controls.d.ts +1 -1
  79. package/dist/editor/lib/document/blocks/commerce/controls.js +1 -0
  80. package/dist/editor/lib/document/blocks/commerce/index.js +1 -0
  81. package/dist/editor/lib/{puck → document}/blocks/commerce/page-rules.d.ts +1 -1
  82. package/dist/editor/lib/document/blocks/commerce/page-rules.js +1 -0
  83. package/dist/editor/lib/{puck → document}/blocks/service/AppointmentBooking/fields.d.ts +1 -1
  84. package/dist/editor/lib/document/blocks/service/AppointmentBooking/fields.js +1 -0
  85. package/dist/editor/lib/{puck → document}/blocks/service/BookingBox/fields.d.ts +1 -1
  86. package/dist/editor/lib/document/blocks/service/BookingBox/fields.js +1 -0
  87. package/dist/editor/lib/{puck → document}/blocks/service/ContactRouting/fields.d.ts +1 -1
  88. package/dist/editor/lib/document/blocks/service/ContactRouting/fields.js +1 -0
  89. package/dist/editor/lib/{puck → document}/blocks/service/Events/fields.d.ts +1 -1
  90. package/dist/editor/lib/document/blocks/service/Events/fields.js +1 -0
  91. package/dist/editor/lib/{puck → document}/blocks/service/Footer/fields.d.ts +1 -1
  92. package/dist/editor/lib/document/blocks/service/Footer/fields.js +1 -0
  93. package/dist/editor/lib/{puck → document}/blocks/service/FooterDivider/fields.d.ts +1 -1
  94. package/dist/editor/lib/document/blocks/service/FooterDivider/fields.js +1 -0
  95. package/dist/editor/lib/{puck → document}/blocks/service/FooterEmailSignup/fields.d.ts +1 -1
  96. package/dist/editor/lib/document/blocks/service/FooterEmailSignup/fields.js +1 -0
  97. package/dist/editor/lib/{puck → document}/blocks/service/FooterGroup/fields.d.ts +1 -1
  98. package/dist/editor/lib/document/blocks/service/FooterGroup/fields.js +1 -0
  99. package/dist/editor/lib/{puck → document}/blocks/service/FooterLogo/fields.d.ts +1 -1
  100. package/dist/editor/lib/document/blocks/service/FooterLogo/fields.js +1 -0
  101. package/dist/editor/lib/{puck → document}/blocks/service/FooterMenu/fields.d.ts +1 -1
  102. package/dist/editor/lib/document/blocks/service/FooterMenu/fields.js +1 -0
  103. package/dist/editor/lib/{puck → document}/blocks/service/FooterSocial/fields.d.ts +1 -1
  104. package/dist/editor/lib/document/blocks/service/FooterSocial/fields.js +1 -0
  105. package/dist/editor/lib/{puck → document}/blocks/service/FooterText/fields.d.ts +1 -1
  106. package/dist/editor/lib/document/blocks/service/FooterText/fields.js +1 -0
  107. package/dist/editor/lib/{puck → document}/blocks/service/Form/fields.d.ts +1 -1
  108. package/dist/editor/lib/document/blocks/service/Form/fields.js +1 -0
  109. package/dist/editor/lib/{puck → document}/blocks/service/LegalLineBlock/fields.d.ts +1 -1
  110. package/dist/editor/lib/document/blocks/service/LegalLineBlock/fields.js +1 -0
  111. package/dist/editor/lib/document/blocks/service/OpeningHours/fields.d.ts +2 -0
  112. package/dist/editor/lib/document/blocks/service/OpeningHours/fields.js +1 -0
  113. package/dist/editor/lib/document/blocks/service/RateTable/fields.d.ts +2 -0
  114. package/dist/editor/lib/document/blocks/service/RateTable/fields.js +1 -0
  115. package/dist/editor/lib/{puck → document}/blocks/service/RatingBlock/fields.d.ts +1 -1
  116. package/dist/editor/lib/document/blocks/service/RatingBlock/fields.js +1 -0
  117. package/dist/editor/lib/{puck → document}/blocks/service/ReviewForm/fields.d.ts +1 -1
  118. package/dist/editor/lib/document/blocks/service/ReviewForm/fields.js +1 -0
  119. package/dist/editor/lib/{puck → document}/blocks/service/Reviews/fields.d.ts +1 -1
  120. package/dist/editor/lib/document/blocks/service/Reviews/fields.js +1 -0
  121. package/dist/editor/lib/{puck → document}/blocks/service/SiteFooter/fields.d.ts +1 -1
  122. package/dist/editor/lib/document/blocks/service/SiteFooter/fields.js +1 -0
  123. package/dist/editor/lib/{puck → document}/blocks/service/SiteHeader/fields.d.ts +1 -1
  124. package/dist/editor/lib/document/blocks/service/SiteHeader/fields.js +1 -0
  125. package/dist/editor/lib/{puck → document}/blocks/service/SubmitBox/fields.d.ts +1 -1
  126. package/dist/editor/lib/document/blocks/service/SubmitBox/fields.js +1 -0
  127. package/dist/editor/lib/{puck → document}/blocks/service/SubmitBuild/fields.d.ts +1 -1
  128. package/dist/editor/lib/document/blocks/service/SubmitBuild/fields.js +1 -0
  129. package/dist/editor/lib/{puck → document}/blocks/service/Subscribe/fields.d.ts +1 -1
  130. package/dist/editor/lib/document/blocks/service/Subscribe/fields.js +1 -0
  131. package/dist/editor/lib/{puck → document}/blocks/service/SubscribeBlogs/fields.d.ts +1 -1
  132. package/dist/editor/lib/document/blocks/service/SubscribeBlogs/fields.js +1 -0
  133. package/dist/editor/lib/{puck → document}/blocks/service/controls.d.ts +1 -1
  134. package/dist/editor/lib/document/blocks/service/index.d.ts +1 -0
  135. package/dist/editor/lib/document/blocks/service/index.js +1 -0
  136. package/dist/editor/lib/{puck → document}/box-header-for-site.d.ts +1 -1
  137. package/dist/editor/lib/{puck → document}/box-header.d.ts +1 -1
  138. package/dist/editor/lib/document/box-header.js +1 -0
  139. package/dist/editor/lib/document/config.d.ts +69 -0
  140. package/dist/editor/lib/document/config.js +1 -0
  141. package/dist/editor/lib/efficient-backend.js +1 -1
  142. package/dist/editor/lib/efficient-block-sources.js +1 -1
  143. package/dist/editor/lib/storefront-editor-words.d.ts +21 -5
  144. package/dist/editor/lib/storefront-editor-words.js +1 -1
  145. package/dist/editor/lib/storefront-editor.js +1 -1
  146. package/dist/editor.css +1 -1
  147. package/dist/index.d.ts +5 -3
  148. package/dist/index.js +223 -543
  149. package/dist/links.js +1 -1
  150. package/dist/render/app/globals.css +64 -36
  151. package/dist/render/built-with.json +1 -1
  152. package/dist/render/components/AppointmentBooking.js +1 -1
  153. package/dist/render/components/BoxHeaderBar.js +1 -1
  154. package/dist/render/components/ChatLauncher.js +1 -1
  155. package/dist/render/components/CollectionCard.d.ts +1 -1
  156. package/dist/render/components/Collections.d.ts +1 -1
  157. package/dist/render/components/Collections.js +1 -1
  158. package/dist/render/components/ContactRouting.js +1 -1
  159. package/dist/render/components/GalleryCard.js +1 -1
  160. package/dist/render/components/Header.js +1 -1
  161. package/dist/render/components/LegalLine.d.ts +1 -1
  162. package/dist/render/components/LegalLine.js +1 -1
  163. package/dist/render/components/OpeningHours.d.ts +12 -0
  164. package/dist/render/components/OpeningHours.js +1 -0
  165. package/dist/render/components/ProductGridSection.js +1 -1
  166. package/dist/render/components/PublishedFooter.js +1 -1
  167. package/dist/render/components/PublishedHeader.js +1 -1
  168. package/dist/render/components/RateTable.d.ts +10 -0
  169. package/dist/render/components/RateTable.js +1 -0
  170. package/dist/render/components/SpecTablePartBridge.js +1 -1
  171. package/dist/render/components/fitment/PickerField.js +1 -1
  172. package/dist/render/components/pdp-dynamic/DynamicBundleOffer.js +1 -1
  173. package/dist/render/components/pdp-dynamic/DynamicDetailRows.d.ts +1 -1
  174. package/dist/render/components/pdp-dynamic/DynamicDetailRows.js +1 -1
  175. package/dist/render/components/pdp-dynamic/DynamicEuTyreLabel.js +1 -1
  176. package/dist/render/components/pdp-dynamic/DynamicFitmentTable.js +1 -1
  177. package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.d.ts +6 -0
  178. package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.js +1 -1
  179. package/dist/render/components/pdp-dynamic/DynamicProductGallery.js +1 -1
  180. package/dist/render/components/pdp-dynamic/DynamicProductHero.js +1 -1
  181. package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.js +1 -1
  182. package/dist/render/components/pdp-dynamic/DynamicSpecTable.js +1 -1
  183. package/dist/render/components/pdp-dynamic/DynamicTyreFitment.js +1 -1
  184. package/dist/render/components/pdp-dynamic/DynamicTyreSizes.js +1 -1
  185. package/dist/render/components/pdp-dynamic/FitmentTableBlock.js +1 -1
  186. package/dist/render/components/pdp-dynamic/KindGate.js +1 -1
  187. package/dist/render/components/pdp-dynamic/RecordPhotoGallery.d.ts +3 -2
  188. package/dist/render/components/pdp-dynamic/RecordPhotoGallery.js +1 -1
  189. package/dist/render/components/pdp-dynamic/useSampleProduct.js +1 -1
  190. package/dist/render/components/useHeaderBar.js +1 -1
  191. package/dist/render/lib/api/index.js +1 -1
  192. package/dist/render/lib/booking/text-kinds.js +1 -1
  193. package/dist/render/lib/content/header-bar.js +1 -1
  194. package/dist/render/lib/{puck → document}/blocks/commerce/AccountBlock/meta.d.ts +1 -1
  195. package/dist/render/lib/{puck → document}/blocks/commerce/AccountBlock/render.d.ts +1 -1
  196. package/dist/render/lib/{puck → document}/blocks/commerce/AlloyWheelsListing/meta.d.ts +1 -1
  197. package/dist/render/lib/{puck → document}/blocks/commerce/AlloyWheelsListing/render.d.ts +1 -1
  198. package/dist/render/lib/document/blocks/commerce/AlloyWheelsListing/render.js +1 -0
  199. package/dist/render/lib/{puck → document}/blocks/commerce/BundleOffer/meta.d.ts +1 -1
  200. package/dist/render/lib/{puck → document}/blocks/commerce/BundleOffer/render.d.ts +1 -1
  201. package/dist/render/lib/document/blocks/commerce/BundleOffer/render.js +1 -0
  202. package/dist/render/lib/{puck → document}/blocks/commerce/CartBlock/meta.d.ts +1 -1
  203. package/dist/render/lib/{puck → document}/blocks/commerce/CartBlock/render.d.ts +1 -1
  204. package/dist/render/lib/document/blocks/commerce/CartBlock/render.js +1 -0
  205. package/dist/render/lib/{puck → document}/blocks/commerce/CatalogFilterBar/meta.d.ts +1 -1
  206. package/dist/render/lib/{puck → document}/blocks/commerce/CatalogFilterBar/render.d.ts +1 -1
  207. package/dist/render/lib/document/blocks/commerce/CatalogFilterBar/render.js +1 -0
  208. package/dist/render/lib/{puck → document}/blocks/commerce/CheckoutCTA/meta.d.ts +1 -1
  209. package/dist/render/lib/{puck → document}/blocks/commerce/CheckoutCTA/render.d.ts +1 -1
  210. package/dist/render/lib/document/blocks/commerce/CheckoutCTA/render.js +1 -0
  211. package/dist/render/lib/{puck → document}/blocks/commerce/CollectionCard/meta.d.ts +1 -1
  212. package/dist/render/lib/{puck → document}/blocks/commerce/CollectionCard/render.d.ts +1 -1
  213. package/dist/render/lib/document/blocks/commerce/CollectionCard/render.js +1 -0
  214. package/dist/render/lib/{puck → document}/blocks/commerce/Collections/meta.d.ts +1 -1
  215. package/dist/render/lib/{puck → document}/blocks/commerce/Collections/render.d.ts +1 -1
  216. package/dist/render/lib/document/blocks/commerce/Collections/render.js +1 -0
  217. package/dist/render/lib/{puck → document}/blocks/commerce/CompatibleTyres/meta.d.ts +1 -1
  218. package/dist/render/lib/document/blocks/commerce/CompatibleTyres/meta.js +1 -0
  219. package/dist/render/lib/{puck → document}/blocks/commerce/CompatibleTyres/render.d.ts +1 -1
  220. package/dist/render/lib/document/blocks/commerce/CompatibleTyres/render.js +1 -0
  221. package/dist/render/lib/{puck → document}/blocks/commerce/CountrySwitchBlock/meta.d.ts +1 -1
  222. package/dist/render/lib/{puck → document}/blocks/commerce/CountrySwitchBlock/render.d.ts +1 -1
  223. package/dist/render/lib/{puck → document}/blocks/commerce/CountrySwitchBlock/render.js +1 -1
  224. package/dist/render/lib/{puck → document}/blocks/commerce/DeliveryOptions/meta.d.ts +1 -1
  225. package/dist/render/lib/{puck → document}/blocks/commerce/DeliveryOptions/render.d.ts +1 -1
  226. package/dist/render/lib/document/blocks/commerce/DeliveryOptions/render.js +1 -0
  227. package/dist/render/lib/{puck → document}/blocks/commerce/DetailRows/meta.d.ts +1 -1
  228. package/dist/render/lib/{puck → document}/blocks/commerce/DetailRows/render.d.ts +1 -1
  229. package/dist/render/lib/document/blocks/commerce/DetailRows/render.js +1 -0
  230. package/dist/render/lib/{puck → document}/blocks/commerce/EuTyreLabel/meta.d.ts +1 -1
  231. package/dist/render/lib/{puck → document}/blocks/commerce/EuTyreLabel/render.d.ts +1 -1
  232. package/dist/render/lib/document/blocks/commerce/EuTyreLabel/render.js +1 -0
  233. package/dist/render/lib/{puck → document}/blocks/commerce/EuTyreLabelBlock/meta.d.ts +1 -1
  234. package/dist/render/lib/{puck → document}/blocks/commerce/EuTyreLabelBlock/render.d.ts +1 -1
  235. package/dist/render/lib/{puck → document}/blocks/commerce/EuTyreLabelBlock/render.js +1 -1
  236. package/dist/render/lib/{puck → document}/blocks/commerce/FitmentFinder/meta.d.ts +1 -1
  237. package/dist/render/lib/document/blocks/commerce/FitmentFinder/meta.js +1 -0
  238. package/dist/render/lib/{puck → document}/blocks/commerce/FitmentFinder/render.d.ts +1 -1
  239. package/dist/render/lib/document/blocks/commerce/FitmentFinder/render.js +1 -0
  240. package/dist/render/lib/{puck → document}/blocks/commerce/FitmentTable/meta.d.ts +1 -1
  241. package/dist/render/lib/document/blocks/commerce/FitmentTable/meta.js +1 -0
  242. package/dist/render/lib/{puck → document}/blocks/commerce/FitmentTable/render.d.ts +1 -1
  243. package/dist/render/lib/document/blocks/commerce/FitmentTable/render.js +1 -0
  244. package/dist/render/lib/{puck → document}/blocks/commerce/Gallery/meta.d.ts +1 -1
  245. package/dist/render/lib/document/blocks/commerce/Gallery/meta.js +1 -0
  246. package/dist/render/lib/{puck → document}/blocks/commerce/Gallery/render.d.ts +1 -1
  247. package/dist/render/lib/document/blocks/commerce/Gallery/render.js +1 -0
  248. package/dist/render/lib/{puck → document}/blocks/commerce/GalleryB/meta.d.ts +1 -1
  249. package/dist/render/lib/document/blocks/commerce/GalleryB/meta.js +1 -0
  250. package/dist/render/lib/{puck → document}/blocks/commerce/GalleryB/render.d.ts +1 -1
  251. package/dist/render/lib/document/blocks/commerce/GalleryB/render.js +1 -0
  252. package/dist/render/lib/{puck → document}/blocks/commerce/GalleryItem/meta.d.ts +1 -1
  253. package/dist/render/lib/{puck → document}/blocks/commerce/GalleryItem/render.d.ts +1 -1
  254. package/dist/render/lib/document/blocks/commerce/GalleryItem/render.js +1 -0
  255. package/dist/render/lib/{puck → document}/blocks/commerce/Header/meta.d.ts +1 -1
  256. package/dist/render/lib/{puck → document}/blocks/commerce/Header/render.d.ts +1 -1
  257. package/dist/render/lib/{puck → document}/blocks/commerce/ProductGallery/meta.d.ts +1 -1
  258. package/dist/render/lib/{puck → document}/blocks/commerce/ProductGallery/render.d.ts +1 -1
  259. package/dist/render/lib/{puck → document}/blocks/commerce/ProductGallery/render.js +1 -1
  260. package/dist/render/lib/{puck → document}/blocks/commerce/ProductGrid/meta.d.ts +1 -1
  261. package/dist/render/lib/{puck → document}/blocks/commerce/ProductGrid/render.d.ts +1 -1
  262. package/dist/render/lib/document/blocks/commerce/ProductGrid/render.js +1 -0
  263. package/dist/render/lib/{puck → document}/blocks/commerce/ProductHero/meta.d.ts +1 -1
  264. package/dist/render/lib/{puck → document}/blocks/commerce/ProductHero/render.d.ts +1 -1
  265. package/dist/render/lib/document/blocks/commerce/ProductHero/render.js +1 -0
  266. package/dist/render/lib/{puck → document}/blocks/commerce/ProductRef/meta.d.ts +1 -1
  267. package/dist/render/lib/{puck → document}/blocks/commerce/ProductRef/render.d.ts +1 -1
  268. package/dist/render/lib/{puck → document}/blocks/commerce/RelatedProducts/meta.d.ts +1 -1
  269. package/dist/render/lib/{puck → document}/blocks/commerce/RelatedProducts/render.d.ts +1 -1
  270. package/dist/render/lib/document/blocks/commerce/RelatedProducts/render.js +1 -0
  271. package/dist/render/lib/{puck → document}/blocks/commerce/SearchBlock/meta.d.ts +1 -1
  272. package/dist/render/lib/{puck → document}/blocks/commerce/SearchBlock/render.d.ts +1 -1
  273. package/dist/render/lib/document/blocks/commerce/SearchBlock/render.js +1 -0
  274. package/dist/render/lib/{puck → document}/blocks/commerce/SpecTable/meta.d.ts +1 -1
  275. package/dist/render/lib/document/blocks/commerce/SpecTable/meta.js +1 -0
  276. package/dist/render/lib/{puck → document}/blocks/commerce/SpecTable/render.d.ts +1 -1
  277. package/dist/render/lib/document/blocks/commerce/SpecTable/render.js +1 -0
  278. package/dist/render/lib/{puck → document}/blocks/commerce/ThemeSwitchBlock/meta.d.ts +1 -1
  279. package/dist/render/lib/{puck → document}/blocks/commerce/ThemeSwitchBlock/render.d.ts +1 -1
  280. package/dist/render/lib/{puck → document}/blocks/commerce/TyreFitment/meta.d.ts +1 -1
  281. package/dist/render/lib/{puck → document}/blocks/commerce/TyreFitment/render.d.ts +1 -1
  282. package/dist/render/lib/document/blocks/commerce/TyreFitment/render.js +1 -0
  283. package/dist/render/lib/{puck → document}/blocks/commerce/TyreSizes/meta.d.ts +1 -1
  284. package/dist/render/lib/{puck → document}/blocks/commerce/TyreSizes/render.d.ts +1 -1
  285. package/dist/render/lib/document/blocks/commerce/TyreSizes/render.js +1 -0
  286. package/dist/render/lib/{puck → document}/blocks/commerce/metas.d.ts +1 -1
  287. package/dist/render/lib/document/blocks/commerce/placeholders.js +1 -0
  288. package/dist/render/lib/{puck → document}/blocks/commerce/renders.d.ts +1 -1
  289. package/dist/render/lib/{puck → document}/blocks/service/AppointmentBooking/meta.d.ts +1 -1
  290. package/dist/render/lib/{puck → document}/blocks/service/AppointmentBooking/render.d.ts +1 -1
  291. package/dist/render/lib/document/blocks/service/AppointmentBooking/render.js +1 -0
  292. package/dist/render/lib/{puck → document}/blocks/service/BookingBox/meta.d.ts +1 -1
  293. package/dist/render/lib/{puck → document}/blocks/service/BookingBox/render.d.ts +1 -1
  294. package/dist/render/lib/document/blocks/service/BookingBox/render.js +1 -0
  295. package/dist/render/lib/{puck → document}/blocks/service/ContactRouting/meta.d.ts +1 -1
  296. package/dist/render/lib/{puck → document}/blocks/service/ContactRouting/render.d.ts +1 -1
  297. package/dist/render/lib/document/blocks/service/ContactRouting/render.js +1 -0
  298. package/dist/render/lib/{puck → document}/blocks/service/Events/meta.d.ts +1 -1
  299. package/dist/render/lib/document/blocks/service/Events/meta.js +1 -0
  300. package/dist/render/lib/{puck → document}/blocks/service/Events/render.d.ts +1 -1
  301. package/dist/render/lib/document/blocks/service/Events/render.js +1 -0
  302. package/dist/render/lib/{puck → document}/blocks/service/Footer/meta.d.ts +1 -1
  303. package/dist/render/lib/{puck → document}/blocks/service/Footer/render.d.ts +1 -1
  304. package/dist/render/lib/{puck → document}/blocks/service/Footer/render.js +1 -1
  305. package/dist/render/lib/{puck → document}/blocks/service/FooterDivider/meta.d.ts +1 -1
  306. package/dist/render/lib/{puck → document}/blocks/service/FooterDivider/render.d.ts +1 -1
  307. package/dist/render/lib/{puck → document}/blocks/service/FooterEmailSignup/meta.d.ts +1 -1
  308. package/dist/render/lib/{puck → document}/blocks/service/FooterEmailSignup/render.d.ts +1 -1
  309. package/dist/render/lib/document/blocks/service/FooterEmailSignup/render.js +1 -0
  310. package/dist/render/lib/{puck → document}/blocks/service/FooterGroup/meta.d.ts +1 -1
  311. package/dist/render/lib/{puck → document}/blocks/service/FooterGroup/render.d.ts +1 -1
  312. package/dist/render/lib/{puck → document}/blocks/service/FooterLogo/meta.d.ts +1 -1
  313. package/dist/render/lib/{puck → document}/blocks/service/FooterLogo/render.d.ts +1 -1
  314. package/dist/render/lib/{puck → document}/blocks/service/FooterLogo/render.js +1 -1
  315. package/dist/render/lib/{puck → document}/blocks/service/FooterMenu/meta.d.ts +1 -1
  316. package/dist/render/lib/{puck → document}/blocks/service/FooterMenu/render.d.ts +1 -1
  317. package/dist/render/lib/{puck → document}/blocks/service/FooterMenu/render.js +1 -1
  318. package/dist/render/lib/{puck → document}/blocks/service/FooterSocial/meta.d.ts +1 -1
  319. package/dist/render/lib/{puck → document}/blocks/service/FooterSocial/render.d.ts +1 -1
  320. package/dist/render/lib/{puck → document}/blocks/service/FooterSocial/render.js +1 -1
  321. package/dist/render/lib/{puck → document}/blocks/service/FooterText/meta.d.ts +1 -1
  322. package/dist/render/lib/{puck → document}/blocks/service/FooterText/render.d.ts +1 -1
  323. package/dist/render/lib/document/blocks/service/FooterText/render.js +1 -0
  324. package/dist/render/lib/{puck → document}/blocks/service/Form/meta.d.ts +1 -1
  325. package/dist/render/lib/{puck → document}/blocks/service/Form/render.d.ts +1 -1
  326. package/dist/render/lib/document/blocks/service/Form/render.js +1 -0
  327. package/dist/render/lib/{puck → document}/blocks/service/LegalLineBlock/meta.d.ts +1 -1
  328. package/dist/render/lib/{puck → document}/blocks/service/LegalLineBlock/render.d.ts +1 -1
  329. package/dist/render/lib/document/blocks/service/OpeningHours/meta.d.ts +11 -0
  330. package/dist/render/lib/document/blocks/service/OpeningHours/meta.js +1 -0
  331. package/dist/render/lib/document/blocks/service/OpeningHours/render.d.ts +4 -0
  332. package/dist/render/lib/document/blocks/service/OpeningHours/render.js +1 -0
  333. package/dist/render/lib/document/blocks/service/RateTable/meta.d.ts +3 -0
  334. package/dist/render/lib/document/blocks/service/RateTable/meta.js +1 -0
  335. package/dist/render/lib/document/blocks/service/RateTable/render.d.ts +4 -0
  336. package/dist/render/lib/document/blocks/service/RateTable/render.js +1 -0
  337. package/dist/render/lib/{puck → document}/blocks/service/RatingBlock/meta.d.ts +1 -1
  338. package/dist/render/lib/{puck → document}/blocks/service/RatingBlock/render.d.ts +1 -1
  339. package/dist/render/lib/document/blocks/service/RatingBlock/render.js +1 -0
  340. package/dist/render/lib/{puck → document}/blocks/service/ReviewForm/meta.d.ts +1 -1
  341. package/dist/render/lib/{puck → document}/blocks/service/ReviewForm/render.d.ts +1 -1
  342. package/dist/render/lib/document/blocks/service/ReviewForm/render.js +1 -0
  343. package/dist/render/lib/{puck → document}/blocks/service/Reviews/meta.d.ts +1 -1
  344. package/dist/render/lib/{puck → document}/blocks/service/Reviews/render.d.ts +1 -1
  345. package/dist/render/lib/document/blocks/service/Reviews/render.js +1 -0
  346. package/dist/render/lib/{puck → document}/blocks/service/SiteFooter/meta.d.ts +1 -1
  347. package/dist/render/lib/{puck → document}/blocks/service/SiteFooter/render.d.ts +1 -1
  348. package/dist/render/lib/document/blocks/service/SiteFooter/render.js +1 -0
  349. package/dist/render/lib/{puck → document}/blocks/service/SiteHeader/meta.d.ts +1 -1
  350. package/dist/render/lib/{puck → document}/blocks/service/SiteHeader/render.d.ts +1 -1
  351. package/dist/render/lib/document/blocks/service/SiteHeader/render.js +1 -0
  352. package/dist/render/lib/{puck → document}/blocks/service/SubmitBox/meta.d.ts +1 -1
  353. package/dist/render/lib/{puck → document}/blocks/service/SubmitBox/render.d.ts +1 -1
  354. package/dist/render/lib/document/blocks/service/SubmitBox/render.js +1 -0
  355. package/dist/render/lib/{puck → document}/blocks/service/SubmitBuild/meta.d.ts +1 -1
  356. package/dist/render/lib/{puck → document}/blocks/service/SubmitBuild/render.d.ts +1 -1
  357. package/dist/render/lib/document/blocks/service/SubmitBuild/render.js +1 -0
  358. package/dist/render/lib/{puck → document}/blocks/service/Subscribe/meta.d.ts +1 -1
  359. package/dist/render/lib/{puck → document}/blocks/service/Subscribe/render.d.ts +1 -1
  360. package/dist/render/lib/document/blocks/service/Subscribe/render.js +1 -0
  361. package/dist/render/lib/{puck → document}/blocks/service/SubscribeBlogs/meta.d.ts +1 -1
  362. package/dist/render/lib/{puck → document}/blocks/service/SubscribeBlogs/render.d.ts +1 -1
  363. package/dist/render/lib/document/blocks/service/SubscribeBlogs/render.js +1 -0
  364. package/dist/render/lib/{puck → document}/blocks/service/metas.d.ts +3 -1
  365. package/dist/render/lib/document/blocks/service/metas.js +1 -0
  366. package/dist/render/lib/{puck → document}/blocks/service/renders.d.ts +3 -1
  367. package/dist/render/lib/document/blocks/service/renders.js +1 -0
  368. package/dist/render/lib/{puck → document}/blocks/service/subscribe.d.ts +1 -1
  369. package/dist/render/lib/document/blocks/service/subscribe.js +1 -0
  370. package/dist/render/lib/{puck → document}/blocks/text-part-shapes.json +28 -0
  371. package/dist/render/lib/document/footer-page-blocks.js +1 -0
  372. package/dist/render/lib/{puck → document}/lazy-draws.d.ts +2 -2
  373. package/dist/render/lib/document/lazy-draws.js +1 -0
  374. package/dist/render/lib/document/preview-pick.js +1 -0
  375. package/dist/render/lib/document/render-client.js +1 -0
  376. package/dist/render/lib/document/render-config.js +1 -0
  377. package/dist/render/lib/{puck → document}/slot-seeds.d.ts +2 -2
  378. package/dist/render/lib/document/slot-seeds.js +1 -0
  379. package/dist/render/lib/{puck → document}/storefront-root.d.ts +1 -1
  380. package/dist/render/lib/document/storefront-root.js +1 -0
  381. package/dist/render/lib/document/subscribe-content-type.js +1 -0
  382. package/dist/render/lib/popup/text-kind-style.js +1 -1
  383. package/dist/render/lib/sections/opening-hours.d.ts +53 -0
  384. package/dist/render/lib/sections/opening-hours.js +1 -0
  385. package/dist/render/lib/sections/rate-table.d.ts +16 -0
  386. package/dist/render/lib/sections/rate-table.js +1 -0
  387. package/dist/render/lib/submit/text-kinds.js +1 -1
  388. package/dist/render/lib/wheels/catalog-default-layout.d.ts +1 -1
  389. package/dist/render/lib/wheels/catalog-default-layout.js +1 -1
  390. package/dist/words.d.ts +28 -10
  391. package/dist/words.js +5 -5
  392. package/package.json +4 -4
  393. package/dist/chunks/chunk-S66TL4Z3.js +0 -1
  394. package/dist/chunks/chunk-TAGGXC3A.js +0 -250
  395. package/dist/editor/lib/puck/blocks/commerce/AccountBlock/fields.js +0 -1
  396. package/dist/editor/lib/puck/blocks/commerce/AlloyWheelsListing/fields.js +0 -1
  397. package/dist/editor/lib/puck/blocks/commerce/BundleOffer/fields.js +0 -1
  398. package/dist/editor/lib/puck/blocks/commerce/CartBlock/fields.js +0 -1
  399. package/dist/editor/lib/puck/blocks/commerce/CatalogFilterBar/fields.js +0 -1
  400. package/dist/editor/lib/puck/blocks/commerce/CheckoutCTA/fields.js +0 -1
  401. package/dist/editor/lib/puck/blocks/commerce/CollectionCard/fields.js +0 -1
  402. package/dist/editor/lib/puck/blocks/commerce/Collections/fields.js +0 -1
  403. package/dist/editor/lib/puck/blocks/commerce/CompatibleTyres/fields.js +0 -1
  404. package/dist/editor/lib/puck/blocks/commerce/CountrySwitchBlock/fields.js +0 -1
  405. package/dist/editor/lib/puck/blocks/commerce/DeliveryOptions/fields.js +0 -1
  406. package/dist/editor/lib/puck/blocks/commerce/DetailRows/fields.js +0 -1
  407. package/dist/editor/lib/puck/blocks/commerce/EuTyreLabel/fields.js +0 -1
  408. package/dist/editor/lib/puck/blocks/commerce/FitmentFinder/fields.js +0 -1
  409. package/dist/editor/lib/puck/blocks/commerce/FitmentTable/fields.js +0 -1
  410. package/dist/editor/lib/puck/blocks/commerce/Gallery/fields.js +0 -1
  411. package/dist/editor/lib/puck/blocks/commerce/GalleryB/fields.js +0 -1
  412. package/dist/editor/lib/puck/blocks/commerce/GalleryItem/fields.js +0 -1
  413. package/dist/editor/lib/puck/blocks/commerce/ProductGallery/fields.d.ts +0 -6
  414. package/dist/editor/lib/puck/blocks/commerce/ProductGallery/fields.js +0 -1
  415. package/dist/editor/lib/puck/blocks/commerce/ProductGrid/fields.js +0 -1
  416. package/dist/editor/lib/puck/blocks/commerce/ProductHero/fields.js +0 -1
  417. package/dist/editor/lib/puck/blocks/commerce/ProductRef/fields.js +0 -1
  418. package/dist/editor/lib/puck/blocks/commerce/RelatedProducts/fields.js +0 -1
  419. package/dist/editor/lib/puck/blocks/commerce/SearchBlock/fields.js +0 -1
  420. package/dist/editor/lib/puck/blocks/commerce/SpecTable/fields.js +0 -1
  421. package/dist/editor/lib/puck/blocks/commerce/TyreFitment/fields.js +0 -1
  422. package/dist/editor/lib/puck/blocks/commerce/TyreSizes/fields.js +0 -1
  423. package/dist/editor/lib/puck/blocks/commerce/controls.js +0 -1
  424. package/dist/editor/lib/puck/blocks/commerce/index.js +0 -1
  425. package/dist/editor/lib/puck/blocks/commerce/page-rules.js +0 -1
  426. package/dist/editor/lib/puck/blocks/service/AppointmentBooking/fields.js +0 -1
  427. package/dist/editor/lib/puck/blocks/service/BookingBox/fields.js +0 -1
  428. package/dist/editor/lib/puck/blocks/service/ContactRouting/fields.js +0 -1
  429. package/dist/editor/lib/puck/blocks/service/Events/fields.js +0 -1
  430. package/dist/editor/lib/puck/blocks/service/Footer/fields.js +0 -1
  431. package/dist/editor/lib/puck/blocks/service/FooterDivider/fields.js +0 -1
  432. package/dist/editor/lib/puck/blocks/service/FooterEmailSignup/fields.js +0 -1
  433. package/dist/editor/lib/puck/blocks/service/FooterGroup/fields.js +0 -1
  434. package/dist/editor/lib/puck/blocks/service/FooterLogo/fields.js +0 -1
  435. package/dist/editor/lib/puck/blocks/service/FooterMenu/fields.js +0 -1
  436. package/dist/editor/lib/puck/blocks/service/FooterSocial/fields.js +0 -1
  437. package/dist/editor/lib/puck/blocks/service/FooterText/fields.js +0 -1
  438. package/dist/editor/lib/puck/blocks/service/Form/fields.js +0 -1
  439. package/dist/editor/lib/puck/blocks/service/LegalLineBlock/fields.js +0 -1
  440. package/dist/editor/lib/puck/blocks/service/RatingBlock/fields.js +0 -1
  441. package/dist/editor/lib/puck/blocks/service/ReviewForm/fields.js +0 -1
  442. package/dist/editor/lib/puck/blocks/service/Reviews/fields.js +0 -1
  443. package/dist/editor/lib/puck/blocks/service/SiteFooter/fields.js +0 -1
  444. package/dist/editor/lib/puck/blocks/service/SiteHeader/fields.js +0 -1
  445. package/dist/editor/lib/puck/blocks/service/SubmitBox/fields.js +0 -1
  446. package/dist/editor/lib/puck/blocks/service/SubmitBuild/fields.js +0 -1
  447. package/dist/editor/lib/puck/blocks/service/Subscribe/fields.js +0 -1
  448. package/dist/editor/lib/puck/blocks/service/SubscribeBlogs/fields.js +0 -1
  449. package/dist/editor/lib/puck/blocks/service/index.d.ts +0 -1
  450. package/dist/editor/lib/puck/blocks/service/index.js +0 -1
  451. package/dist/editor/lib/puck/box-header.js +0 -1
  452. package/dist/editor/lib/puck/config.d.ts +0 -69
  453. package/dist/editor/lib/puck/config.js +0 -1
  454. package/dist/render/lib/puck/blocks/commerce/AlloyWheelsListing/render.js +0 -1
  455. package/dist/render/lib/puck/blocks/commerce/BundleOffer/render.js +0 -1
  456. package/dist/render/lib/puck/blocks/commerce/CartBlock/render.js +0 -1
  457. package/dist/render/lib/puck/blocks/commerce/CatalogFilterBar/render.js +0 -1
  458. package/dist/render/lib/puck/blocks/commerce/CheckoutCTA/render.js +0 -1
  459. package/dist/render/lib/puck/blocks/commerce/CollectionCard/render.js +0 -1
  460. package/dist/render/lib/puck/blocks/commerce/Collections/render.js +0 -1
  461. package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/meta.js +0 -1
  462. package/dist/render/lib/puck/blocks/commerce/CompatibleTyres/render.js +0 -1
  463. package/dist/render/lib/puck/blocks/commerce/DeliveryOptions/render.js +0 -1
  464. package/dist/render/lib/puck/blocks/commerce/DetailRows/render.js +0 -1
  465. package/dist/render/lib/puck/blocks/commerce/EuTyreLabel/render.js +0 -1
  466. package/dist/render/lib/puck/blocks/commerce/FitmentFinder/meta.js +0 -1
  467. package/dist/render/lib/puck/blocks/commerce/FitmentFinder/render.js +0 -1
  468. package/dist/render/lib/puck/blocks/commerce/FitmentTable/meta.js +0 -1
  469. package/dist/render/lib/puck/blocks/commerce/FitmentTable/render.js +0 -1
  470. package/dist/render/lib/puck/blocks/commerce/Gallery/meta.js +0 -1
  471. package/dist/render/lib/puck/blocks/commerce/Gallery/render.js +0 -1
  472. package/dist/render/lib/puck/blocks/commerce/GalleryB/meta.js +0 -1
  473. package/dist/render/lib/puck/blocks/commerce/GalleryB/render.js +0 -1
  474. package/dist/render/lib/puck/blocks/commerce/GalleryItem/render.js +0 -1
  475. package/dist/render/lib/puck/blocks/commerce/ProductGrid/render.js +0 -1
  476. package/dist/render/lib/puck/blocks/commerce/ProductHero/render.js +0 -1
  477. package/dist/render/lib/puck/blocks/commerce/RelatedProducts/render.js +0 -1
  478. package/dist/render/lib/puck/blocks/commerce/SearchBlock/render.js +0 -1
  479. package/dist/render/lib/puck/blocks/commerce/SpecTable/meta.js +0 -1
  480. package/dist/render/lib/puck/blocks/commerce/SpecTable/render.js +0 -1
  481. package/dist/render/lib/puck/blocks/commerce/TyreFitment/render.js +0 -1
  482. package/dist/render/lib/puck/blocks/commerce/TyreSizes/render.js +0 -1
  483. package/dist/render/lib/puck/blocks/commerce/placeholders.js +0 -1
  484. package/dist/render/lib/puck/blocks/service/AppointmentBooking/render.js +0 -1
  485. package/dist/render/lib/puck/blocks/service/BookingBox/render.js +0 -1
  486. package/dist/render/lib/puck/blocks/service/ContactRouting/render.js +0 -1
  487. package/dist/render/lib/puck/blocks/service/Events/meta.js +0 -1
  488. package/dist/render/lib/puck/blocks/service/Events/render.js +0 -1
  489. package/dist/render/lib/puck/blocks/service/FooterEmailSignup/render.js +0 -1
  490. package/dist/render/lib/puck/blocks/service/FooterText/render.js +0 -1
  491. package/dist/render/lib/puck/blocks/service/Form/render.js +0 -1
  492. package/dist/render/lib/puck/blocks/service/RatingBlock/render.js +0 -1
  493. package/dist/render/lib/puck/blocks/service/ReviewForm/render.js +0 -1
  494. package/dist/render/lib/puck/blocks/service/Reviews/render.js +0 -1
  495. package/dist/render/lib/puck/blocks/service/SiteFooter/render.js +0 -1
  496. package/dist/render/lib/puck/blocks/service/SiteHeader/render.js +0 -1
  497. package/dist/render/lib/puck/blocks/service/SubmitBox/render.js +0 -1
  498. package/dist/render/lib/puck/blocks/service/SubmitBuild/render.js +0 -1
  499. package/dist/render/lib/puck/blocks/service/Subscribe/render.js +0 -1
  500. package/dist/render/lib/puck/blocks/service/SubscribeBlogs/render.js +0 -1
  501. package/dist/render/lib/puck/blocks/service/metas.js +0 -1
  502. package/dist/render/lib/puck/blocks/service/renders.js +0 -1
  503. package/dist/render/lib/puck/blocks/service/subscribe.js +0 -1
  504. package/dist/render/lib/puck/footer-page-blocks.js +0 -1
  505. package/dist/render/lib/puck/lazy-draws.js +0 -1
  506. package/dist/render/lib/puck/preview-pick.js +0 -1
  507. package/dist/render/lib/puck/render-client.js +0 -1
  508. package/dist/render/lib/puck/render-config.js +0 -1
  509. package/dist/render/lib/puck/slot-seeds.js +0 -1
  510. package/dist/render/lib/puck/storefront-root.js +0 -1
  511. package/dist/render/lib/puck/subscribe-content-type.js +0 -1
  512. /package/dist/chunks/{chunk-TAGGXC3A.js.LEGAL.txt → chunk-XF2ZAVNU.js.LEGAL.txt} +0 -0
  513. /package/dist/editor/lib/{puck → document}/blocks/commerce/EuTyreLabelBlock/fields.js +0 -0
  514. /package/dist/editor/lib/{puck → document}/blocks/commerce/Header/fields.js +0 -0
  515. /package/dist/editor/lib/{puck → document}/blocks/commerce/ThemeSwitchBlock/fields.js +0 -0
  516. /package/dist/editor/lib/{puck → document}/blocks/commerce/index.d.ts +0 -0
  517. /package/dist/editor/lib/{puck → document}/blocks/commerce/shared-fields.d.ts +0 -0
  518. /package/dist/editor/lib/{puck → document}/blocks/commerce/shared-fields.js +0 -0
  519. /package/dist/editor/lib/{puck → document}/blocks/service/controls.js +0 -0
  520. /package/dist/editor/lib/{puck → document}/blocks/service/placeholders.d.ts +0 -0
  521. /package/dist/editor/lib/{puck → document}/blocks/service/placeholders.js +0 -0
  522. /package/dist/editor/lib/{puck → document}/box-header-for-site.js +0 -0
  523. /package/dist/render/lib/{puck → document}/blocks/commerce/AccountBlock/meta.js +0 -0
  524. /package/dist/render/lib/{puck → document}/blocks/commerce/AccountBlock/render.js +0 -0
  525. /package/dist/render/lib/{puck → document}/blocks/commerce/AlloyWheelsListing/meta.js +0 -0
  526. /package/dist/render/lib/{puck → document}/blocks/commerce/BundleOffer/meta.js +0 -0
  527. /package/dist/render/lib/{puck → document}/blocks/commerce/CartBlock/meta.js +0 -0
  528. /package/dist/render/lib/{puck → document}/blocks/commerce/CatalogFilterBar/meta.js +0 -0
  529. /package/dist/render/lib/{puck → document}/blocks/commerce/CheckoutCTA/meta.js +0 -0
  530. /package/dist/render/lib/{puck → document}/blocks/commerce/CollectionCard/meta.js +0 -0
  531. /package/dist/render/lib/{puck → document}/blocks/commerce/Collections/meta.js +0 -0
  532. /package/dist/render/lib/{puck → document}/blocks/commerce/CountrySwitchBlock/meta.js +0 -0
  533. /package/dist/render/lib/{puck → document}/blocks/commerce/DeliveryOptions/meta.js +0 -0
  534. /package/dist/render/lib/{puck → document}/blocks/commerce/DetailRows/meta.js +0 -0
  535. /package/dist/render/lib/{puck → document}/blocks/commerce/EuTyreLabel/meta.js +0 -0
  536. /package/dist/render/lib/{puck → document}/blocks/commerce/EuTyreLabelBlock/meta.js +0 -0
  537. /package/dist/render/lib/{puck → document}/blocks/commerce/GalleryItem/meta.js +0 -0
  538. /package/dist/render/lib/{puck → document}/blocks/commerce/Header/meta.js +0 -0
  539. /package/dist/render/lib/{puck → document}/blocks/commerce/Header/render.js +0 -0
  540. /package/dist/render/lib/{puck → document}/blocks/commerce/ProductGallery/meta.js +0 -0
  541. /package/dist/render/lib/{puck → document}/blocks/commerce/ProductGrid/meta.js +0 -0
  542. /package/dist/render/lib/{puck → document}/blocks/commerce/ProductHero/meta.js +0 -0
  543. /package/dist/render/lib/{puck → document}/blocks/commerce/ProductRef/meta.js +0 -0
  544. /package/dist/render/lib/{puck → document}/blocks/commerce/ProductRef/render.js +0 -0
  545. /package/dist/render/lib/{puck → document}/blocks/commerce/RelatedProducts/meta.js +0 -0
  546. /package/dist/render/lib/{puck → document}/blocks/commerce/SearchBlock/meta.js +0 -0
  547. /package/dist/render/lib/{puck → document}/blocks/commerce/ThemeSwitchBlock/meta.js +0 -0
  548. /package/dist/render/lib/{puck → document}/blocks/commerce/ThemeSwitchBlock/render.js +0 -0
  549. /package/dist/render/lib/{puck → document}/blocks/commerce/TyreFitment/meta.js +0 -0
  550. /package/dist/render/lib/{puck → document}/blocks/commerce/TyreSizes/meta.js +0 -0
  551. /package/dist/render/lib/{puck → document}/blocks/commerce/metas.js +0 -0
  552. /package/dist/render/lib/{puck → document}/blocks/commerce/placeholders.d.ts +0 -0
  553. /package/dist/render/lib/{puck → document}/blocks/commerce/renders.js +0 -0
  554. /package/dist/render/lib/{puck → document}/blocks/service/AppointmentBooking/meta.js +0 -0
  555. /package/dist/render/lib/{puck → document}/blocks/service/BookingBox/meta.js +0 -0
  556. /package/dist/render/lib/{puck → document}/blocks/service/ContactRouting/meta.js +0 -0
  557. /package/dist/render/lib/{puck → document}/blocks/service/Footer/meta.js +0 -0
  558. /package/dist/render/lib/{puck → document}/blocks/service/FooterDivider/meta.js +0 -0
  559. /package/dist/render/lib/{puck → document}/blocks/service/FooterDivider/render.js +0 -0
  560. /package/dist/render/lib/{puck → document}/blocks/service/FooterEmailSignup/meta.js +0 -0
  561. /package/dist/render/lib/{puck → document}/blocks/service/FooterGroup/meta.js +0 -0
  562. /package/dist/render/lib/{puck → document}/blocks/service/FooterGroup/render.js +0 -0
  563. /package/dist/render/lib/{puck → document}/blocks/service/FooterLogo/meta.js +0 -0
  564. /package/dist/render/lib/{puck → document}/blocks/service/FooterMenu/meta.js +0 -0
  565. /package/dist/render/lib/{puck → document}/blocks/service/FooterSocial/meta.js +0 -0
  566. /package/dist/render/lib/{puck → document}/blocks/service/FooterText/meta.js +0 -0
  567. /package/dist/render/lib/{puck → document}/blocks/service/Form/meta.js +0 -0
  568. /package/dist/render/lib/{puck → document}/blocks/service/LegalLineBlock/meta.js +0 -0
  569. /package/dist/render/lib/{puck → document}/blocks/service/LegalLineBlock/render.js +0 -0
  570. /package/dist/render/lib/{puck → document}/blocks/service/RatingBlock/meta.js +0 -0
  571. /package/dist/render/lib/{puck → document}/blocks/service/ReviewForm/meta.js +0 -0
  572. /package/dist/render/lib/{puck → document}/blocks/service/Reviews/meta.js +0 -0
  573. /package/dist/render/lib/{puck → document}/blocks/service/SiteFooter/meta.js +0 -0
  574. /package/dist/render/lib/{puck → document}/blocks/service/SiteHeader/meta.js +0 -0
  575. /package/dist/render/lib/{puck → document}/blocks/service/SubmitBox/meta.js +0 -0
  576. /package/dist/render/lib/{puck → document}/blocks/service/SubmitBuild/meta.js +0 -0
  577. /package/dist/render/lib/{puck → document}/blocks/service/Subscribe/meta.js +0 -0
  578. /package/dist/render/lib/{puck → document}/blocks/service/SubscribeBlogs/meta.js +0 -0
  579. /package/dist/render/lib/{puck → document}/current-product.d.ts +0 -0
  580. /package/dist/render/lib/{puck → document}/current-product.js +0 -0
  581. /package/dist/render/lib/{puck → document}/current-record.d.ts +0 -0
  582. /package/dist/render/lib/{puck → document}/current-record.js +0 -0
  583. /package/dist/render/lib/{puck → document}/fitment-table-dynamic.d.ts +0 -0
  584. /package/dist/render/lib/{puck → document}/fitment-table-dynamic.js +0 -0
  585. /package/dist/render/lib/{puck → document}/footer-page-blocks.d.ts +0 -0
  586. /package/dist/render/lib/{puck → document}/preview-pick.d.ts +0 -0
  587. /package/dist/render/lib/{puck → document}/preview-product.d.ts +0 -0
  588. /package/dist/render/lib/{puck → document}/preview-product.js +0 -0
  589. /package/dist/render/lib/{puck → document}/render-client.d.ts +0 -0
  590. /package/dist/render/lib/{puck → document}/render-config.d.ts +0 -0
  591. /package/dist/render/lib/{puck → document}/subscribe-content-type.d.ts +0 -0
  592. /package/dist/render/lib/{puck → document}/template-product-kind.d.ts +0 -0
  593. /package/dist/render/lib/{puck → document}/template-product-kind.js +0 -0
@@ -1 +1 @@
1
- "use client";import{jsx as o,Fragment as I,jsxs as s}from"react/jsx-runtime";import te from"next/link";import{usePathname as Ke}from"next/navigation";import{useCallback as Ve,useEffect as O,useState as p}from"react";import{useCart as qe}from"./CartContext.js";import{useSearch as Ye}from"./SearchContext.js";import Je,{useCountrySelectShows as Xe}from"./CountrySelect.js";import{resolveCountryShowAs as Qe}from"../lib/content/country-show-as.js";import ne from"./HeaderNavItem.js";import Ze from"efficient-web-builder/render/components/Logo";import et from"./MenuPlaceholderLabel.js";import{withRMark as re}from"efficient-web-builder/render/components/RMark";import{AccountButton as tt,CartButton as nt,SearchButton as rt}from"./HeaderTools.js";import{useHeaderBar as ot}from"./useHeaderBar.js";import{useModalDismiss as st}from"./useModalDismiss.js";import at from"./ThemeToggle.js";import{products as lt}from"../lib/api/index.js";import{shouldFetchPublicHeaderSettings as it}from"../lib/header-settings-fetch.js";import{HEADER_MENU_PLACEHOLDER_COUNT as ct}from"../lib/content/menu-placeholder.js";import{DEFAULT_SWITCH_SHOWN as dt}from"efficient-web-builder/format/lib/theme";import{chromeWidthStyle as mt,resolveChromeWidth as ut}from"efficient-web-builder/format/lib/content/page-width";import{headerThemeWrap as ht}from"../lib/content/header-theme.js";import{headerSolidBackground as ft,isProductPage as pt}from"../lib/content/header-bar.js";import{surfaceIsLight as gt}from"../lib/logo/surface-is-light.js";import{HEADER_HEIGHT_PX as bt,HEADER_SET_HEIGHT_CSS as xt}from"efficient-web-builder/render/lib/puck/header-clearance";import{HEADER_INK_ATTR as vt,HEADER_INK_OVERRIDE_ATTR as yt,resolveHeaderInkMode as wt}from"efficient-web-builder/render/lib/puck/header-ink";const oe={stacked:{grid:"hidden min-[1501px]:grid",flex:"hidden min-[1501px]:flex"},inline:{grid:"hidden view-tablet:grid",flex:"hidden view-tablet:flex"}},St=Array.from({length:ct},()=>({href:"#",label:o(et,{})}));function kt({previewSettings:g,initialSettings:$,editorPreview:T,showThemeToggle:se,wordmark:ae,hideLogo:le,hideMenu:ie,siteName:L,commerceEnabled:b=!0}={}){const M=Ke(),[ce,de]=p(!1);O(()=>{const e=v.current?.ownerDocument??document,t=()=>de(e.querySelector(`[${vt}="light"]`)!=null);t();const f=requestAnimationFrame(t);return()=>cancelAnimationFrame(f)},[M]);const z=pt(M),[c,w]=p(!1),{open:me,totals:ue}=qe(),{open:he}=Ye(),[C,fe]=p(!1),[pe,ge]=p(null),[be,xe]=p(null),[n,ve]=p($??null),r=g??(n?{logoUrl:n.logoUrl,reverseLogo:n.reverseLogo,logoReversed:n.logoReversed,logoInkIsDark:n.logoInkIsDark,logoPosition:n.logoPosition,logoSize:n.logoSize,logoSizePx:n.logoSizePx,menuItems:(n.menuItems??[]).map(e=>({label:e.label,url:e.url,dropdown_menu:null,dropdown_items:e.dropdownItems??[]})),menuSplit:n.menuSplit??3,menuPosition:n.menuPosition,menuRow:n.menuRow,menuGapPx:n.menuGapPx??null,searchEnabled:n.searchEnabled,searchPosition:n.searchPosition,searchRow:n.searchRow,countrySelectorEnabled:n.countrySelectorEnabled,countrySelectorShowAs:n.countrySelectorShowAs,countryUrls:n.countryUrls,accountEnabled:n.accountEnabled,cartEnabled:n.cartEnabled,utilStyle:n.utilStyle,navTextCase:n.navTextCase,lightReverseText:n.lightReverseText,topTextColor:n.topTextColor,transparentTop:n.transparentTop,surface:n.surface,theme:n.theme,width:n.width,heightPx:n.heightPx,sticky:n.sticky}:null),ye=le?null:r?.logoUrl??null,we=r?.reverseLogo??!1,Se=r?.logoReversed??null,ke=r?.logoInkIsDark??null,i=r?.logoPosition??"center",Ne=r?.logoSize??"medium",Pe=r?.logoSizePx??null,B=Math.min(Math.max(r?.menuSplit??3,1),4),Ee=(r?.menuPosition??"left")==="center",Ie=(r?.menuPosition??"left")==="beside",U=(r?.menuRow??"top")==="inline",F=r?.menuGapPx??null,$e=F!=null?{gap:`${F}px`}:void 0,S=U?oe.inline:oe.stacked,Te=r?.searchEnabled??!1,G=r?.searchPosition??"right",Le=r?.countrySelectorEnabled??!0,Ce=Qe(r?.countrySelectorShowAs),_=r?.accountEnabled??!0,_e=r?.cartEnabled??!0,A=(r?.utilStyle??"icon")==="text",a=`mono-eyebrow${(r?.navTextCase??"uppercase")==="capitalised"?" mono-eyebrow-plain":""}`,W=r?.countryUrls??{},Ae=ut(r?.width),De=mt(Ae)??void 0,Re=r?.heightPx??bt.default,K=r?.sticky??"always",k=wt(r?.topTextColor),m=ht(r?.theme),N=Object.keys(W),V=Xe(N.length?N:void 0),x=Le?o(Je,{countries:N.length?N:void 0,urls:g?void 0:W,showAs:Ce}):null,{headerRef:v,scrolled:q,navHidden:He}=ot({stickyMode:K,heightPx:Re}),je=m?JSON.stringify(m.style):null;O(()=>{const e=v.current?.ownerDocument??document,t=e.defaultView??window,f=ee=>ee?gt(t.getComputedStyle(ee).getPropertyValue("--bg")):null,Z=()=>{fe(e.documentElement.getAttribute("data-theme")==="light"),ge(f(e.body)),xe(f(v.current))};Z();const j=new MutationObserver(Z);return j.observe(e.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),e.body&&j.observe(e.body,{attributes:!0,attributeFilter:["style"]}),()=>j.disconnect()},[v,je]);const y=se??dt?o(at,{}):null;O(()=>{if(!it({editorPreview:!!T,hasPreviewSettings:!!g,hasInitialSettings:!!$}))return;let e=!1;return lt.getHeaderSettings().then(t=>!e&&ve(t)).catch(t=>{console.warn("[header] settings fetch failed; using built-in defaults",t)}),()=>{e=!0}},[T,g,$]);const P=q||z,Y=ft(C,z),J=k==="auto"?ce:k==="light",Oe=P||!J,Me=P?be??C:(pe??C)&&!J,ze=k==="auto"?null:{[yt]:k},Be=Ve(()=>w(!1),[]);st({active:c,onDismiss:Be});const d=(e,t,f="start")=>o(ne,{item:e,dropdownAlign:f},t),Ue=!ie&&(r?.menuItems?.length??0)>0,X=!!T||!!g,l=Ue?r.menuItems.map(e=>({href:e.url||"",label:re(e.label),plainLabel:e.label,dropdownItems:(e.dropdown_items??[]).map(t=>({href:t.url||"",label:re(t.label),plainLabel:t.label}))})):X?St.map(e=>({...e,plainLabel:"Menu item",dropdownItems:[]})):[],Fe=l.length>0||b&&_||!!x&&V||!!y,Ge=i==="center"?l.slice(0,B):i==="right"?l:[],We=i==="center"?l.slice(B):i==="left"?l:[],E=Te&&b?o(rt,{onClick:X?void 0:he,asText:A}):null,D=b&&_?o(tt,{asText:A}):null,R=e=>b&&_e?o(nt,{onClick:me,count:ue.sets,asText:A,className:e}):null,u=s(I,{children:[G==="left"?E:null,x,y,D,R(),G==="right"?E:null]}),H=(e,t=!1)=>o(te,{href:"/","aria-label":L?`${L} home`:"Home",className:e,children:o(Ze,{variant:"header",scrolled:Oe,src:ye,reverse:we,onLightSurface:Me,reversedSrc:Se,inkIsDark:ke,size:Ne,sizePx:Pe,wordmark:ae,siteName:L,fitToContainer:t})}),h=H("inline-flex shrink-0 items-center justify-center"),Q="flex min-w-0 flex-1 items-center overflow-x-clip [container-type:inline-size]";return s(I,{children:[o("header",{ref:v,"data-scrolled":q||void 0,...ze,className:["sf-site-header",...m?[m.className]:[],K==="none"?"absolute":"fixed","inset-x-0 top-0 z-50","flex items-center","px-[var(--sf-site-gutter,40px)] max-view-tablet:px-[min(20px,var(--sf-site-gutter,40px))]",P?"border-b border-line backdrop-blur-md":"border-b border-transparent","transition-[background,border-color,transform] duration-300 ease-out"].join(" "),style:{...m?m.style:null,minHeight:xt,...He?{transform:"translateY(-100%)"}:null,...P?{background:Y,color:"var(--fg)","--sf-header-ground":Y}:{color:"var(--sf-header-overlay-fg)","--sf-header-ground":"var(--sf-header-overlay-ground)"}},children:s("div",{className:"w-full",style:De,children:[Ee?s("div",{"data-header-band":"",className:`${S.grid} grid-cols-[1fr_auto_1fr] items-center gap-8`,children:[i==="right"?o("nav",{className:`${a} flex items-center gap-8`,children:u}):o("div",{className:"flex items-center",children:h}),o("nav",{className:`${a} flex items-center justify-center gap-8`,children:l.map((e,t)=>d(e,`${e.href}-${t}`,"center"))}),i==="right"?o("div",{className:"flex items-center justify-end",children:h}):o("nav",{className:`${a} flex items-center justify-end gap-8`,children:u})]}):i==="center"?s("div",{"data-header-band":"",className:`${S.grid} grid-cols-[1fr_auto_1fr] items-center gap-8`,children:[o("nav",{className:`${a} flex items-center gap-8`,children:Ge.map((e,t)=>d(e,`${e.href}-${t}`))}),h,s("nav",{className:`${a} flex items-center justify-end gap-8`,children:[We.map((e,t)=>d(e,`${e.href}-${t}`,"end")),u]})]}):Ie?s("div",{"data-header-band":"",className:`${S.flex} items-center justify-between gap-8`,children:[s("div",{className:"flex items-center gap-8",style:$e,children:[h,o("nav",{className:`${a} flex items-center gap-8`,children:l.map((e,t)=>d(e,`${e.href}-${t}`))})]}),o("nav",{className:`${a} flex items-center justify-end gap-8`,children:u})]}):o("div",{"data-header-band":"",className:`${S.flex} items-center justify-between gap-8`,children:i==="right"?s(I,{children:[s("nav",{className:`${a} flex items-center gap-8`,children:[l.map((e,t)=>d(e,`${e.href}-${t}`)),u]}),h]}):s(I,{children:[h,s("nav",{className:`${a} flex items-center gap-8`,children:[l.map((e,t)=>d(e,`${e.href}-${t}`)),u]})]})}),!U&&s("div",{"data-header-band":"",className:"hidden view-tablet:max-[1501px]:flex flex-col gap-3",children:[s("div",{className:"flex items-center justify-between",children:[H(Q,!0),s("div",{className:`${a} flex shrink-0 items-center gap-5`,children:[E,x,y,D,R()]})]}),o("nav",{className:`${a} flex items-center gap-6 border-t border-line/60 pt-3`,children:l.map((e,t)=>d(e,`${e.href}-${t}`))})]}),s("div",{"data-header-phone":"",className:"hidden max-view-tablet:flex items-center justify-between",children:[H(Q,!0),s("div",{className:"flex shrink-0 items-center gap-4",children:[E,D,R(a),Fe&&s("button",{type:"button","aria-label":c?"Close menu":"Open menu","aria-expanded":c,onClick:()=>w(e=>!e),className:"flex h-11 w-11 flex-col items-center justify-center gap-2",children:[o("span",{className:`block h-px w-5 bg-current transition-transform ${c?"translate-y-[3px] rotate-45":""}`}),o("span",{className:`block h-px w-5 bg-current transition-transform ${c?"opacity-0":""}`}),o("span",{className:`block h-px w-5 bg-current transition-transform ${c?"-translate-y-[3px] -rotate-45":""}`})]})]})]})]})}),c&&s("div",{"data-header-phone-menu":"",className:"fixed inset-x-0 top-0 bottom-0 z-40 hidden flex-col gap-8 overflow-y-auto bg-bg px-6 pt-24 pb-10 max-view-tablet:flex",children:[l.map((e,t)=>o(ne,{item:e,mobile:!0,onNavigate:()=>w(!1)},`${e.href}-${t}`)),s("div",{className:"mt-auto flex flex-col gap-4 border-t border-line pt-6",children:[b&&_&&s("div",{className:"flex items-center justify-between",children:[o("span",{className:"mono-eyebrow text-fg-dim",children:"Account"}),o(te,{href:"/account",onClick:()=>w(!1),className:"mono-eyebrow underline",children:"Your account"})]}),x&&V&&s("div",{className:"flex items-center justify-between",children:[o("span",{className:"mono-eyebrow text-fg-dim",children:"Region"}),x]}),y&&s("div",{className:"flex items-center justify-between",children:[o("span",{className:"mono-eyebrow text-fg-dim",children:"Theme"}),y]})]})]})]})}export{kt as default};
1
+ "use client";import{jsx as o,Fragment as I,jsxs as s}from"react/jsx-runtime";import te from"next/link";import{usePathname as Ke}from"next/navigation";import{useCallback as Ve,useEffect as O,useState as p}from"react";import{useCart as qe}from"./CartContext.js";import{useSearch as Ye}from"./SearchContext.js";import Je,{useCountrySelectShows as Xe}from"./CountrySelect.js";import{resolveCountryShowAs as Qe}from"../lib/content/country-show-as.js";import ne from"./HeaderNavItem.js";import Ze from"efficient-web-builder/render/components/Logo";import et from"./MenuPlaceholderLabel.js";import{withRMark as re}from"efficient-web-builder/render/components/RMark";import{AccountButton as tt,CartButton as nt,SearchButton as rt}from"./HeaderTools.js";import{useHeaderBar as ot}from"./useHeaderBar.js";import{useModalDismiss as st}from"./useModalDismiss.js";import at from"./ThemeToggle.js";import{products as lt}from"../lib/api/index.js";import{shouldFetchPublicHeaderSettings as it}from"../lib/header-settings-fetch.js";import{HEADER_MENU_PLACEHOLDER_COUNT as ct}from"../lib/content/menu-placeholder.js";import{DEFAULT_SWITCH_SHOWN as dt}from"efficient-web-builder/format/lib/theme";import{chromeWidthStyle as mt,resolveChromeWidth as ut}from"efficient-web-builder/format/lib/content/page-width";import{headerThemeWrap as ht}from"../lib/content/header-theme.js";import{headerSolidBackground as ft,isProductPage as pt}from"../lib/content/header-bar.js";import{surfaceIsLight as gt}from"../lib/logo/surface-is-light.js";import{HEADER_HEIGHT_PX as bt,HEADER_SET_HEIGHT_CSS as xt}from"efficient-web-builder/render/lib/document/header-clearance";import{HEADER_INK_ATTR as vt,HEADER_INK_OVERRIDE_ATTR as yt,resolveHeaderInkMode as wt}from"efficient-web-builder/render/lib/document/header-ink";const oe={stacked:{grid:"hidden min-[1501px]:grid",flex:"hidden min-[1501px]:flex"},inline:{grid:"hidden view-tablet:grid",flex:"hidden view-tablet:flex"}},St=Array.from({length:ct},()=>({href:"#",label:o(et,{})}));function kt({previewSettings:g,initialSettings:$,editorPreview:T,showThemeToggle:se,wordmark:ae,hideLogo:le,hideMenu:ie,siteName:L,commerceEnabled:b=!0}={}){const M=Ke(),[ce,de]=p(!1);O(()=>{const e=v.current?.ownerDocument??document,t=()=>de(e.querySelector(`[${vt}="light"]`)!=null);t();const f=requestAnimationFrame(t);return()=>cancelAnimationFrame(f)},[M]);const z=pt(M),[c,w]=p(!1),{open:me,totals:ue}=qe(),{open:he}=Ye(),[C,fe]=p(!1),[pe,ge]=p(null),[be,xe]=p(null),[n,ve]=p($??null),r=g??(n?{logoUrl:n.logoUrl,reverseLogo:n.reverseLogo,logoReversed:n.logoReversed,logoInkIsDark:n.logoInkIsDark,logoPosition:n.logoPosition,logoSize:n.logoSize,logoSizePx:n.logoSizePx,menuItems:(n.menuItems??[]).map(e=>({label:e.label,url:e.url,dropdown_menu:null,dropdown_items:e.dropdownItems??[]})),menuSplit:n.menuSplit??3,menuPosition:n.menuPosition,menuRow:n.menuRow,menuGapPx:n.menuGapPx??null,searchEnabled:n.searchEnabled,searchPosition:n.searchPosition,searchRow:n.searchRow,countrySelectorEnabled:n.countrySelectorEnabled,countrySelectorShowAs:n.countrySelectorShowAs,countryUrls:n.countryUrls,accountEnabled:n.accountEnabled,cartEnabled:n.cartEnabled,utilStyle:n.utilStyle,navTextCase:n.navTextCase,lightReverseText:n.lightReverseText,topTextColor:n.topTextColor,transparentTop:n.transparentTop,surface:n.surface,theme:n.theme,width:n.width,heightPx:n.heightPx,sticky:n.sticky}:null),ye=le?null:r?.logoUrl??null,we=r?.reverseLogo??!1,Se=r?.logoReversed??null,ke=r?.logoInkIsDark??null,i=r?.logoPosition??"center",Ne=r?.logoSize??"medium",Pe=r?.logoSizePx??null,B=Math.min(Math.max(r?.menuSplit??3,1),4),Ee=(r?.menuPosition??"left")==="center",Ie=(r?.menuPosition??"left")==="beside",U=(r?.menuRow??"top")==="inline",F=r?.menuGapPx??null,$e=F!=null?{gap:`${F}px`}:void 0,S=U?oe.inline:oe.stacked,Te=r?.searchEnabled??!1,G=r?.searchPosition??"right",Le=r?.countrySelectorEnabled??!0,Ce=Qe(r?.countrySelectorShowAs),_=r?.accountEnabled??!0,_e=r?.cartEnabled??!0,A=(r?.utilStyle??"icon")==="text",a=`mono-eyebrow${(r?.navTextCase??"uppercase")==="capitalised"?" mono-eyebrow-plain":""}`,W=r?.countryUrls??{},Ae=ut(r?.width),De=mt(Ae)??void 0,Re=r?.heightPx??bt.default,K=r?.sticky??"always",k=wt(r?.topTextColor),m=ht(r?.theme),N=Object.keys(W),V=Xe(N.length?N:void 0),x=Le?o(Je,{countries:N.length?N:void 0,urls:g?void 0:W,showAs:Ce}):null,{headerRef:v,scrolled:q,navHidden:He}=ot({stickyMode:K,heightPx:Re}),je=m?JSON.stringify(m.style):null;O(()=>{const e=v.current?.ownerDocument??document,t=e.defaultView??window,f=ee=>ee?gt(t.getComputedStyle(ee).getPropertyValue("--bg")):null,Z=()=>{fe(e.documentElement.getAttribute("data-theme")==="light"),ge(f(e.body)),xe(f(v.current))};Z();const j=new MutationObserver(Z);return j.observe(e.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),e.body&&j.observe(e.body,{attributes:!0,attributeFilter:["style"]}),()=>j.disconnect()},[v,je]);const y=se??dt?o(at,{}):null;O(()=>{if(!it({editorPreview:!!T,hasPreviewSettings:!!g,hasInitialSettings:!!$}))return;let e=!1;return lt.getHeaderSettings().then(t=>!e&&ve(t)).catch(t=>{console.warn("[header] settings fetch failed; using built-in defaults",t)}),()=>{e=!0}},[T,g,$]);const P=q||z,Y=ft(C,z),J=k==="auto"?ce:k==="light",Oe=P||!J,Me=P?be??C:(pe??C)&&!J,ze=k==="auto"?null:{[yt]:k},Be=Ve(()=>w(!1),[]);st({active:c,onDismiss:Be});const d=(e,t,f="start")=>o(ne,{item:e,dropdownAlign:f},t),Ue=!ie&&(r?.menuItems?.length??0)>0,X=!!T||!!g,l=Ue?r.menuItems.map(e=>({href:e.url||"",label:re(e.label),plainLabel:e.label,dropdownItems:(e.dropdown_items??[]).map(t=>({href:t.url||"",label:re(t.label),plainLabel:t.label}))})):X?St.map(e=>({...e,plainLabel:"Menu item",dropdownItems:[]})):[],Fe=l.length>0||b&&_||!!x&&V||!!y,Ge=i==="center"?l.slice(0,B):i==="right"?l:[],We=i==="center"?l.slice(B):i==="left"?l:[],E=Te&&b?o(rt,{onClick:X?void 0:he,asText:A}):null,D=b&&_?o(tt,{asText:A}):null,R=e=>b&&_e?o(nt,{onClick:me,count:ue.sets,asText:A,className:e}):null,u=s(I,{children:[G==="left"?E:null,x,y,D,R(),G==="right"?E:null]}),H=(e,t=!1)=>o(te,{href:"/","aria-label":L?`${L} home`:"Home",className:e,children:o(Ze,{variant:"header",scrolled:Oe,src:ye,reverse:we,onLightSurface:Me,reversedSrc:Se,inkIsDark:ke,size:Ne,sizePx:Pe,wordmark:ae,siteName:L,fitToContainer:t})}),h=H("inline-flex shrink-0 items-center justify-center"),Q="flex min-w-0 flex-1 items-center overflow-x-clip [container-type:inline-size]";return s(I,{children:[o("header",{ref:v,"data-scrolled":q||void 0,...ze,className:["sf-site-header",...m?[m.className]:[],K==="none"?"absolute":"fixed","inset-x-0 top-0 z-50","flex items-center","px-[var(--sf-site-gutter,40px)] max-view-tablet:px-[min(20px,var(--sf-site-gutter,40px))]",P?"border-b border-line backdrop-blur-md":"border-b border-transparent","transition-[background,border-color,transform] duration-300 ease-out"].join(" "),style:{...m?m.style:null,minHeight:xt,...He?{transform:"translateY(-100%)"}:null,...P?{background:Y,color:"var(--fg)","--sf-header-ground":Y}:{color:"var(--sf-header-overlay-fg)","--sf-header-ground":"var(--sf-header-overlay-ground)"}},children:s("div",{className:"w-full",style:De,children:[Ee?s("div",{"data-header-band":"",className:`${S.grid} grid-cols-[1fr_auto_1fr] items-center gap-8`,children:[i==="right"?o("nav",{className:`${a} flex items-center gap-8`,children:u}):o("div",{className:"flex items-center",children:h}),o("nav",{className:`${a} flex items-center justify-center gap-8`,children:l.map((e,t)=>d(e,`${e.href}-${t}`,"center"))}),i==="right"?o("div",{className:"flex items-center justify-end",children:h}):o("nav",{className:`${a} flex items-center justify-end gap-8`,children:u})]}):i==="center"?s("div",{"data-header-band":"",className:`${S.grid} grid-cols-[1fr_auto_1fr] items-center gap-8`,children:[o("nav",{className:`${a} flex items-center gap-8`,children:Ge.map((e,t)=>d(e,`${e.href}-${t}`))}),h,s("nav",{className:`${a} flex items-center justify-end gap-8`,children:[We.map((e,t)=>d(e,`${e.href}-${t}`,"end")),u]})]}):Ie?s("div",{"data-header-band":"",className:`${S.flex} items-center justify-between gap-8`,children:[s("div",{className:"flex items-center gap-8",style:$e,children:[h,o("nav",{className:`${a} flex items-center gap-8`,children:l.map((e,t)=>d(e,`${e.href}-${t}`))})]}),o("nav",{className:`${a} flex items-center justify-end gap-8`,children:u})]}):o("div",{"data-header-band":"",className:`${S.flex} items-center justify-between gap-8`,children:i==="right"?s(I,{children:[s("nav",{className:`${a} flex items-center gap-8`,children:[l.map((e,t)=>d(e,`${e.href}-${t}`)),u]}),h]}):s(I,{children:[h,s("nav",{className:`${a} flex items-center gap-8`,children:[l.map((e,t)=>d(e,`${e.href}-${t}`)),u]})]})}),!U&&s("div",{"data-header-band":"",className:"hidden view-tablet:max-[1501px]:flex flex-col gap-3",children:[s("div",{className:"flex items-center justify-between",children:[H(Q,!0),s("div",{className:`${a} flex shrink-0 items-center gap-5`,children:[E,x,y,D,R()]})]}),o("nav",{className:`${a} flex items-center gap-6 border-t border-line/60 pt-3`,children:l.map((e,t)=>d(e,`${e.href}-${t}`))})]}),s("div",{"data-header-phone":"",className:"hidden max-view-tablet:flex items-center justify-between",children:[H(Q,!0),s("div",{className:"flex shrink-0 items-center gap-4",children:[E,D,R(a),Fe&&s("button",{type:"button","aria-label":c?"Close menu":"Open menu","aria-expanded":c,onClick:()=>w(e=>!e),className:"flex h-11 w-11 flex-col items-center justify-center gap-2",children:[o("span",{className:`block h-px w-5 bg-current transition-transform ${c?"translate-y-[3px] rotate-45":""}`}),o("span",{className:`block h-px w-5 bg-current transition-transform ${c?"opacity-0":""}`}),o("span",{className:`block h-px w-5 bg-current transition-transform ${c?"-translate-y-[3px] -rotate-45":""}`})]})]})]})]})}),c&&s("div",{"data-header-phone-menu":"",className:"fixed inset-x-0 top-0 bottom-0 z-40 hidden flex-col gap-8 overflow-y-auto bg-bg px-6 pt-24 pb-10 max-view-tablet:flex",children:[l.map((e,t)=>o(ne,{item:e,mobile:!0,onNavigate:()=>w(!1)},`${e.href}-${t}`)),s("div",{className:"mt-auto flex flex-col gap-4 border-t border-line pt-6",children:[b&&_&&s("div",{className:"flex items-center justify-between",children:[o("span",{className:"mono-eyebrow text-fg-dim",children:"Account"}),o(te,{href:"/account",onClick:()=>w(!1),className:"mono-eyebrow underline",children:"Your account"})]}),x&&V&&s("div",{className:"flex items-center justify-between",children:[o("span",{className:"mono-eyebrow text-fg-dim",children:"Region"}),x]}),y&&s("div",{className:"flex items-center justify-between",children:[o("span",{className:"mono-eyebrow text-fg-dim",children:"Theme"}),y]})]})]})]})}export{kt as default};
@@ -1,4 +1,4 @@
1
- import { type HidableValue } from "efficient-easel/screen/lib/puck/hidable";
1
+ import { type HidableValue } from "efficient-easel/screen/lib/document/hidable";
2
2
  export default function LegalLine({ copyright: stored }?: {
3
3
  copyright?: HidableValue;
4
4
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use client";import{jsx as e,Fragment as l,jsxs as n}from"react/jsx-runtime";import{readHidable as s}from"efficient-easel/screen/lib/puck/hidable";import{useSiteCopyright as p}from"./SiteRecordContext.js";import{useConsentControls as c}from"./ConsentContext.js";import{CONSENT_TEXT_BUTTON as d}from"./ConsentBanner.js";function m({copyright:i}={}){const o=p(),r=s(i),a=r.hidden?null:r.text.trim()||o,t=c();return n("div",{className:"flex flex-wrap justify-between gap-x-6 gap-y-3 border-t border-line pt-6 font-mono text-[13px] uppercase tracking-[0.15em] text-fg-dim max-view-tablet:flex-col max-view-tablet:gap-3",children:[a!==null&&e("span",{children:a}),n("span",{className:"flex flex-wrap items-center gap-3 view-tablet:ml-auto",children:[e("span",{children:"Privacy"}),e("span",{"aria-hidden":!0,children:"·"}),e("span",{children:"Terms"}),e("span",{"aria-hidden":!0,children:"·"}),e("span",{children:"Cookies"}),t?.ready&&n(l,{children:[e("span",{"aria-hidden":!0,children:"·"}),e("button",{type:"button",className:`${d} text-left`,onClick:t.openPanel,children:t.rule.footerLink})]})]})]})}export{m as default};
1
+ "use client";import{jsx as e,Fragment as l,jsxs as n}from"react/jsx-runtime";import{readHidable as s}from"efficient-easel/screen/lib/document/hidable";import{useSiteCopyright as p}from"./SiteRecordContext.js";import{useConsentControls as c}from"./ConsentContext.js";import{CONSENT_TEXT_BUTTON as d}from"./ConsentBanner.js";function m({copyright:i}={}){const o=p(),r=s(i),a=r.hidden?null:r.text.trim()||o,t=c();return n("div",{className:"flex flex-wrap justify-between gap-x-6 gap-y-3 border-t border-line pt-6 font-mono text-[13px] uppercase tracking-[0.15em] text-fg-dim max-view-tablet:flex-col max-view-tablet:gap-3",children:[a!==null&&e("span",{children:a}),n("span",{className:"flex flex-wrap items-center gap-3 view-tablet:ml-auto",children:[e("span",{children:"Privacy"}),e("span",{"aria-hidden":!0,children:"·"}),e("span",{children:"Terms"}),e("span",{"aria-hidden":!0,children:"·"}),e("span",{children:"Cookies"}),t?.ready&&n(l,{children:[e("span",{"aria-hidden":!0,children:"·"}),e("button",{type:"button",className:`${d} text-left`,onClick:t.openPanel,children:t.rule.footerLink})]})]})]})}export{m as default};
@@ -0,0 +1,12 @@
1
+ import { type OpeningMoment, type OpeningRow } from "../lib/sections/opening-hours.js";
2
+ export type OpeningHoursShow = "badge" | "week";
3
+ export declare const OPENING_TICK_MS = 30000;
4
+ interface OpeningHoursProps {
5
+ show: OpeningHoursShow;
6
+ title?: string;
7
+ row: OpeningRow | null;
8
+ contained: boolean;
9
+ now?: OpeningMoment;
10
+ }
11
+ export default function OpeningHours({ show, title, row, contained, now }: OpeningHoursProps): import("react").JSX.Element | null;
12
+ export {};
@@ -0,0 +1 @@
1
+ "use client";import{jsx as n,jsxs as s}from"react/jsx-runtime";import{useEffect as x,useState as h}from"react";import f from"efficient-web-builder/render/components/BlockFrame";import{renderHeadline as g}from"efficient-web-builder/render/components/goldPhrases";import{OPENING_WORDS as c,badgeLabel as b,momentIn as k,openingStatus as N,weekLines as y}from"../lib/sections/opening-hours.js";const v=3e4;function I({show:t,title:r,row:a,contained:o,now:i}){const[d,u]=h(i??null),m=a?.zone??"",p=!!a?.week;if(x(()=>{if(i){u(i);return}if(!p)return;const e=()=>u(k(m,Date.now()));e();const l=setInterval(e,v);return()=>clearInterval(l)},[i,m,p]),!a)return null;if(t==="badge"){if(!a.week)return null;const e=d?N(a.week,d):null;return n(f,{contained:o,className:"py-6",children:n(_,{label:e?b(e):null,open:e?.open??!1})})}return!a.week&&!a.hours.length?null:n(f,{contained:o,className:"py-6",children:s("div",{className:"flex max-w-[560px] flex-col gap-4",children:[r&&n("h2",{className:"font-heading3 text-[length:min(var(--size-headingSmall,28px),var(--sf-heading-max,9999px))] font-medium leading-[1.1] tracking-[-0.02em]",children:g(r,!1)}),a.week?n("ul",{className:"flex flex-col text-[15px]",children:y(a.week).map(e=>{const l=d!==null&&d.day===e.day;return s("li",{"aria-current":l?"date":void 0,className:"flex flex-wrap items-baseline justify-between gap-x-4 gap-y-1 rounded-sm border-b border-line px-3 py-2.5 last:border-b-0",style:l?{background:"color-mix(in oklab, var(--accent) 12%, transparent)"}:void 0,children:[s("span",{className:l?"font-medium":void 0,children:[e.name,l&&n("span",{className:"opacity-70",children:` · ${c.today}`})]}),n("span",{className:e.closed?"tabular-nums opacity-60":"tabular-nums",children:e.closed?c.closed:e.periods})]},e.day)})}):n("div",{className:"flex flex-col gap-1 text-[15px] leading-[1.6]",children:a.hours.map((e,l)=>n("p",{children:e},l))})]})})}function _({label:t,open:r}){return t===null?s("span",{"aria-hidden":!0,className:"invisible inline-flex items-center gap-2 rounded-md px-3 py-1.5 text-[14px]",children:[n("span",{className:"h-2 w-2 rounded-full"}),c.openNow]}):s("span",{className:"inline-flex items-center gap-2 rounded-md px-3 py-1.5 text-[14px] tabular-nums",style:{background:r?"color-mix(in oklab, var(--green) 16%, transparent)":"color-mix(in oklab, var(--fg) 8%, transparent)"},children:[n("span",{"aria-hidden":!0,className:r?"h-2 w-2 shrink-0 rounded-full bg-green":"h-2 w-2 shrink-0 rounded-full bg-current opacity-50"}),t]})}export{v as OPENING_TICK_MS,I as default};
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as x,Fragment as He}from"react/jsx-runtime";import{GRID_CARD_SHOW as k}from"../lib/sections/card-show-defaults.js";import{useEffect as B,useId as Oe,useMemo as d,useState as ke}from"react";import{CARD_IMAGE_BG_OFF as Be,resolveCardImageBackground as De}from"efficient-web-builder/format/lib/content/card-image-background";import{cardImageShapeTokens as Ge}from"efficient-web-builder/format/lib/content/card-image-shape";import{containerGapProps as Ue,GAP_LENGTH_VAR as je,GAP_ZONE_CLASS as We}from"efficient-web-builder/format/lib/content/container-gap";import Ke from"next/link";import Xe from"./ProductCard.js";import{CARD_ROWS_GRID_CLASS as Ze,cardRowsGridStyle as Ve}from"./WheelCardFrame.js";import{ProductCardChromeProvider as qe}from"./ProductCardChrome.js";import{gridClassImageSizes as Ye}from"../lib/sections/card-image-sizes.js";import{fillRowCss as Je}from"../lib/sections/fill-row.js";import{noHoleBands as ee,noHoleCss as re,showsASetCard as te}from"../lib/sections/grid-no-hole.js";import{setIsWide as Qe,summarySetBuild as er}from"../lib/wheels/set-mode.js";import{answersForKind as se}from"../lib/content/field-usage.js";import{wheelCardEyebrowShows as rr}from"./ProductCardEyebrow.js";import tr from"./NoCurrencyNote.js";import{DEFAULT_CARD_OUTLINE as sr,cardIndexCss as nr,parseCardIndexFormat as or}from"efficient-web-builder/format/lib/sections/product-card-style";import{DEFAULT_COVER_INDEX as ar}from"../lib/wheels/cover-rendering.js";import{SITE_WIDTH_CAP as ir,centredCap as lr}from"efficient-web-builder/format/lib/content/page-width";import{ProductCatalogProvider as mr,SectionWheelsProvider as dr}from"./ProductRef.js";import{useCurrency as pr}from"./CurrencyContext.js";import{COLLECTION_ATTR as cr,useCatalogFilter as gr}from"./catalog/CatalogFilterContext.js";import{renderGold as D,renderHeadline as ur}from"efficient-web-builder/render/components/goldPhrases";import{applyCatalogFilters as xr}from"../lib/wheels/catalog-filters.js";import{normalizeCatalogRows as hr}from"../lib/wheels/wheel-summary-casing.js";import fr from"./TyreSummaryCard.js";import{itemKind as G,plpItemsOfKinds as yr,plpKindNoun as Cr,resolvePlpKinds as ne}from"../lib/catalog/plp-item.js";import{rowsForGridSource as vr}from"../lib/wheels/grid-source.js";import{useUnifiedProductCatalog as br}from"./useProductCatalog.js";import{STICKY_UNDERHEADER_CLASS as wr}from"efficient-web-builder/render/lib/puck/header-clearance";import{finishFamiliesOf as Sr}from"../lib/wheels/finish-defaults.js";import{lugCountsOf as $r}from"../lib/wheels/lug-count.js";import{diametersOf as Mr}from"../lib/wheels/size-range.js";import{say as Nr}from"efficient-web-builder/format/lib/editor-words";import{DEFAULT_TITLE_SIZE as _r}from"../lib/sections/product-grid-title.js";const n={headingMediumUpTo800Xs:"max-[800px]:text-[length:var(--size-headingMedium,28px)]",headingMediumUpTo800Small:"max-[800px]:text-[length:var(--size-headingMedium,32px)]",headingMediumUpTo800Large:"max-[800px]:text-[length:var(--size-headingMedium,36px)]",headingMediumUpTo800Xl:"max-[800px]:text-[length:var(--size-headingMedium,40px)]",body:"text-[length:var(--size-body,13px)]",headingMedium1:"text-[length:var(--size-headingMedium,40px)]",headingMedium2:"text-[length:var(--size-headingMedium,48px)]",headingMedium3:"text-[length:var(--size-headingMedium,56px)]",headingMedium4:"text-[length:var(--size-headingMedium,64px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"},oe={1:"grid-cols-1",2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[800px]:grid-cols-1",4:"grid-cols-4 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1",5:"grid-cols-5 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1",6:"grid-cols-6 max-[1100px]:grid-cols-3 max-[800px]:grid-cols-1"},ae=[{value:"para",label:"Paragraph size — 13px",cls:`font-mono font-normal uppercase tracking-[0.22em] ${n.labelLarge}`},{value:"sm",label:"Small — 40px",cls:`font-heading2 font-medium tracking-[-0.03em] ${n.headingMedium1} ${n.headingMediumUpTo800Xs}`},{value:"md",label:"Medium — 48px",cls:`font-heading2 font-medium tracking-[-0.03em] ${n.headingMedium2} ${n.headingMediumUpTo800Small}`},{value:"lg",label:"Large — 56px",cls:`font-heading2 font-medium tracking-[-0.03em] ${n.headingMedium3} ${n.headingMediumUpTo800Large}`},{value:"xl",label:"Extra large — 64px",cls:`font-heading2 font-medium tracking-[-0.03em] ${n.headingMedium4} ${n.headingMediumUpTo800Xl}`}];function Er(h){return(ae.find(p=>p.value===h)??ae.find(p=>p.value===_r)).cls}function Tr({num:h,catalog:p,kinds:N,title:_,titleSize:ie,padTop:U,description:v,link:f,products:le,wheels:me,source:c,columns:de,limit:o,editing:y,contentCapped:pe=!1,imageBackground:ce,spinOnHover:ge,coverIndex:ue,indexBadge:xe,outline:he,showBadge:fe,fieldUsage:g,showCardPrice:ye,showCardFinishes:Ce,showCardSizes:ve,showCardBuy:be,showCardPage:we,cardImage:Se,gap:$e}){const E=d(()=>g?se(g,"alloy-wheel"):void 0,[g]),Me=d(()=>g?se(g,"tyre"):void 0,[g]),t=`pg-${Oe().replace(/:/g,"")}`,m=oe[Math.min(6,Math.max(1,de??4))]??oe[4],j=typeof o=="number"&&o>0,W=pe,K=br(y===!0&&!!c),i=d(()=>c?hr(vr(c,yr(K??p??[],ne(N)))):null,[p,K,c,N]),T=c?.process,u=!!T,{filters:b,reportCount:L,reportLugs:z,reportSizes:I,reportFinishes:P,vehicle:X}=gr(),{currency:A}=pr(),F=u&&!!b.process&&b.process!==T,r=d(()=>i?u?xr(i,b,A,X.fit):i:null,[i,u,b,A,X.fit]);B(()=>{if(u)return L(t,F?0:r?.length??0),()=>L(t,0)},[u,F,r,L,t]);const Ne=d(()=>{const s=(r??[]).filter(l=>G(l)!=="tyre");if(s.length===0)return!1;const a=s.some(l=>!!l.process);return s.some(l=>!!l.setWords)||rr({kind:!1,brand:!1,process:a},E??[])},[r,E]),w=d(()=>({lugs:$r(i??[]),sizes:Mr(i??[]),finishes:Sr(i??[])}),[i]);B(()=>(z(t,w.lugs),I(t,w.sizes),P(t,w.finishes),()=>{z(t,[]),I(t,[]),P(t,[])}),[w,z,I,P,t]);const C=Ue("ProductGrid",$e,"both"),Z=C.className.includes(We),R=`${t} grid${C.className} bg-[var(--catalog-grid-bg)] ${m}`,_e=Z?`${R} ${Ze}`:R,Ee=Z?{...C.style,...Ve(`var(${je})`)}:C.style,Te=r?r.length>0?e("div",{className:_e,style:Ee,children:r.map((s,a)=>G(s)==="tyre"?e(fr,{item:s,currency:A,editing:y,fieldUsage:Me},`tyre:${s.slug}-${a}`):e(Xe,{wheel:s,variant:"catalog"},`${s.slug}-${a}`))}):y?e("div",{className:"flex min-h-[320px] items-center justify-center rounded bg-surface-2 p-4 text-center",children:e("span",{className:`font-mono ${n.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,children:Nr("No products in “{name}” yet",{name:c?.name??""})})}):null:e(le,{className:R,style:C.style,minEmptyHeight:320}),S=r?r.length:null,V=Cr(ne(N)),Le=h||_||v||f?x("div",{className:`${wr} sticky top-[var(--sf-header-h,88px)] z-30 mb-5 flex items-center justify-between gap-4 max-[800px]:flex-wrap max-[800px]:gap-y-2 border-b border-line bg-bg/95 py-3 backdrop-blur-md ${W?"":"-mx-[var(--sf-site-gutter,40px)] px-[var(--sf-site-gutter,40px)] max-[800px]:-mx-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]"}`,children:[x("div",{className:"flex min-w-0 items-end gap-6 max-[800px]:flex-col max-[800px]:items-stretch max-[800px]:gap-3",children:[h&&e("span",{className:`font-mono ${n.labelLarge} leading-none uppercase tracking-[0.22em] text-fg-dim`,children:D(h)}),_&&e("h2",{className:`${Er(ie)} leading-none text-fg max-[800px]:leading-[1] [&>span]:block`,children:ur(_,!1)})]}),(v||f||S!==null)&&x("div",{className:"flex items-center gap-5 max-[800px]:gap-3 min-[800px]:grow min-[800px]:justify-end",children:[v&&e("span",{className:`max-w-[340px] truncate font-display ${n.body} leading-[1.4] text-fg-dim max-[800px]:hidden min-[800px]:w-0 min-[800px]:grow min-[800px]:text-right`,children:D(v)}),f&&x(Ke,{href:f.href,className:`inline-flex items-center gap-2 whitespace-nowrap font-mono ${n.labelLarge} uppercase tracking-[0.2em] text-fg-dim transition-colors hover:text-fg`,children:[D(f.text),e("span",{"aria-hidden":!0,children:"→"})]}),S!==null&&x("span",{className:`whitespace-nowrap font-mono ${n.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,children:[S," ",S===1?V.one:V.many]})]})]}):null,ze=typeof U=="number"?U:120,q=or(xe),$=d(()=>{if(!r)return null;const s=r.map(a=>G(a)!=="tyre"&&Qe(er(a))?2:1);return te(s,o)?ee(m,s,o):null},[r,m,o]),[Ie,Pe]=ke("");B(()=>{if(r)return;const s=document.querySelector(`.${t}`);if(!s)return;const a=()=>{const l=[...s.children].map(Re=>Re.classList.contains("col-span-2")?2:1);Pe(te(l,o)?re(t,ee(m,l,o,!1),l.length):"")};a();const O=new MutationObserver(a);return O.observe(s,{childList:!0}),()=>O.disconnect()},[r,t,m,o]);const Ae=$?$[0].tracks:r?j?Math.min(r.length,o):r.length:void 0,M=$?re(t,$,r.length):Ie,Y=M?"":Je(t,m,{limit:o,cards:r?.length}),J=nr(t,q),Q=x(He,{children:[j&&!M&&e("style",{children:`.${t} > *:nth-child(n+${o+1}){display:none}`}),M&&e("style",{children:M}),Y&&e("style",{children:Y}),J&&e("style",{children:J}),Le,Te,e(tr,{editing:y})]});if(F)return null;const H=e("section",{...u?{[cr]:T}:{},className:"relative z-[2] bg-bg px-[var(--sf-site-gutter,40px)] pt-[var(--pg-pt)] pb-[120px] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:pt-[70px] max-[800px]:pb-[70px]",style:{"--pg-pt":`${ze}px`,...Ge(Se)},children:W?e("div",{style:lr(ir),children:Q}):Q}),Fe=i?H:y?e(mr,{children:H}):e(dr,{wheels:me,children:H});return e(qe,{imageSizes:Ye(m,Ae),imageBackgroundFill:De(ce,Be),spinOnHover:ge??!0,coverIndex:ue??ar,indexBadge:q,outline:he??sr,showBadge:fe??!0,fieldUsage:E,reserveEyebrow:Ne,showCardPrice:ye??!0,showCardFinishes:Ce??!0,showCardSizes:ve??k.showCardSizes,showCardBuy:be??k.showCardBuy,showCardPage:we??k.showCardPage,children:Fe})}export{ae as TITLE_SIZES,Tr as default};
1
+ "use client";import{jsx as e,jsxs as x,Fragment as He}from"react/jsx-runtime";import{GRID_CARD_SHOW as k}from"../lib/sections/card-show-defaults.js";import{useEffect as B,useId as Oe,useMemo as d,useState as ke}from"react";import{CARD_IMAGE_BG_OFF as Be,resolveCardImageBackground as De}from"efficient-web-builder/format/lib/content/card-image-background";import{cardImageShapeTokens as Ge}from"efficient-web-builder/format/lib/content/card-image-shape";import{containerGapProps as Ue,GAP_LENGTH_VAR as je,GAP_ZONE_CLASS as We}from"efficient-web-builder/format/lib/content/container-gap";import Ke from"next/link";import Xe from"./ProductCard.js";import{CARD_ROWS_GRID_CLASS as Ze,cardRowsGridStyle as Ve}from"./WheelCardFrame.js";import{ProductCardChromeProvider as qe}from"./ProductCardChrome.js";import{gridClassImageSizes as Ye}from"../lib/sections/card-image-sizes.js";import{fillRowCss as Je}from"../lib/sections/fill-row.js";import{noHoleBands as ee,noHoleCss as re,showsASetCard as te}from"../lib/sections/grid-no-hole.js";import{setIsWide as Qe,summarySetBuild as er}from"../lib/wheels/set-mode.js";import{answersForKind as se}from"../lib/content/field-usage.js";import{wheelCardEyebrowShows as rr}from"./ProductCardEyebrow.js";import tr from"./NoCurrencyNote.js";import{DEFAULT_CARD_OUTLINE as sr,cardIndexCss as nr,parseCardIndexFormat as or}from"efficient-web-builder/format/lib/sections/product-card-style";import{DEFAULT_COVER_INDEX as ar}from"../lib/wheels/cover-rendering.js";import{SITE_WIDTH_CAP as ir,centredCap as lr}from"efficient-web-builder/format/lib/content/page-width";import{ProductCatalogProvider as mr,SectionWheelsProvider as dr}from"./ProductRef.js";import{useCurrency as pr}from"./CurrencyContext.js";import{COLLECTION_ATTR as cr,useCatalogFilter as gr}from"./catalog/CatalogFilterContext.js";import{renderGold as D,renderHeadline as ur}from"efficient-web-builder/render/components/goldPhrases";import{applyCatalogFilters as xr}from"../lib/wheels/catalog-filters.js";import{normalizeCatalogRows as hr}from"../lib/wheels/wheel-summary-casing.js";import fr from"./TyreSummaryCard.js";import{itemKind as G,plpItemsOfKinds as yr,plpKindNoun as Cr,resolvePlpKinds as ne}from"../lib/catalog/plp-item.js";import{rowsForGridSource as vr}from"../lib/wheels/grid-source.js";import{useUnifiedProductCatalog as br}from"./useProductCatalog.js";import{STICKY_UNDERHEADER_CLASS as wr}from"efficient-web-builder/render/lib/document/header-clearance";import{finishFamiliesOf as Sr}from"../lib/wheels/finish-defaults.js";import{lugCountsOf as $r}from"../lib/wheels/lug-count.js";import{diametersOf as Mr}from"../lib/wheels/size-range.js";import{say as Nr}from"efficient-web-builder/format/lib/editor-words";import{DEFAULT_TITLE_SIZE as _r}from"../lib/sections/product-grid-title.js";const n={headingMediumUpTo800Xs:"max-[800px]:text-[length:var(--size-headingMedium,28px)]",headingMediumUpTo800Small:"max-[800px]:text-[length:var(--size-headingMedium,32px)]",headingMediumUpTo800Large:"max-[800px]:text-[length:var(--size-headingMedium,36px)]",headingMediumUpTo800Xl:"max-[800px]:text-[length:var(--size-headingMedium,40px)]",body:"text-[length:var(--size-body,13px)]",headingMedium1:"text-[length:var(--size-headingMedium,40px)]",headingMedium2:"text-[length:var(--size-headingMedium,48px)]",headingMedium3:"text-[length:var(--size-headingMedium,56px)]",headingMedium4:"text-[length:var(--size-headingMedium,64px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"},oe={1:"grid-cols-1",2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[800px]:grid-cols-1",4:"grid-cols-4 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1",5:"grid-cols-5 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1",6:"grid-cols-6 max-[1100px]:grid-cols-3 max-[800px]:grid-cols-1"},ae=[{value:"para",label:"Paragraph size — 13px",cls:`font-mono font-normal uppercase tracking-[0.22em] ${n.labelLarge}`},{value:"sm",label:"Small — 40px",cls:`font-heading2 font-medium tracking-[-0.03em] ${n.headingMedium1} ${n.headingMediumUpTo800Xs}`},{value:"md",label:"Medium — 48px",cls:`font-heading2 font-medium tracking-[-0.03em] ${n.headingMedium2} ${n.headingMediumUpTo800Small}`},{value:"lg",label:"Large — 56px",cls:`font-heading2 font-medium tracking-[-0.03em] ${n.headingMedium3} ${n.headingMediumUpTo800Large}`},{value:"xl",label:"Extra large — 64px",cls:`font-heading2 font-medium tracking-[-0.03em] ${n.headingMedium4} ${n.headingMediumUpTo800Xl}`}];function Er(h){return(ae.find(p=>p.value===h)??ae.find(p=>p.value===_r)).cls}function Tr({num:h,catalog:p,kinds:N,title:_,titleSize:ie,padTop:U,description:v,link:f,products:le,wheels:me,source:c,columns:de,limit:o,editing:y,contentCapped:pe=!1,imageBackground:ce,spinOnHover:ge,coverIndex:ue,indexBadge:xe,outline:he,showBadge:fe,fieldUsage:g,showCardPrice:ye,showCardFinishes:Ce,showCardSizes:ve,showCardBuy:be,showCardPage:we,cardImage:Se,gap:$e}){const E=d(()=>g?se(g,"alloy-wheel"):void 0,[g]),Me=d(()=>g?se(g,"tyre"):void 0,[g]),t=`pg-${Oe().replace(/:/g,"")}`,m=oe[Math.min(6,Math.max(1,de??4))]??oe[4],j=typeof o=="number"&&o>0,W=pe,K=br(y===!0&&!!c),i=d(()=>c?hr(vr(c,yr(K??p??[],ne(N)))):null,[p,K,c,N]),T=c?.process,u=!!T,{filters:b,reportCount:L,reportLugs:z,reportSizes:I,reportFinishes:P,vehicle:X}=gr(),{currency:A}=pr(),F=u&&!!b.process&&b.process!==T,r=d(()=>i?u?xr(i,b,A,X.fit):i:null,[i,u,b,A,X.fit]);B(()=>{if(u)return L(t,F?0:r?.length??0),()=>L(t,0)},[u,F,r,L,t]);const Ne=d(()=>{const s=(r??[]).filter(l=>G(l)!=="tyre");if(s.length===0)return!1;const a=s.some(l=>!!l.process);return s.some(l=>!!l.setWords)||rr({kind:!1,brand:!1,process:a},E??[])},[r,E]),w=d(()=>({lugs:$r(i??[]),sizes:Mr(i??[]),finishes:Sr(i??[])}),[i]);B(()=>(z(t,w.lugs),I(t,w.sizes),P(t,w.finishes),()=>{z(t,[]),I(t,[]),P(t,[])}),[w,z,I,P,t]);const C=Ue("ProductGrid",$e,"both"),Z=C.className.includes(We),R=`${t} grid${C.className} bg-[var(--catalog-grid-bg)] ${m}`,_e=Z?`${R} ${Ze}`:R,Ee=Z?{...C.style,...Ve(`var(${je})`)}:C.style,Te=r?r.length>0?e("div",{className:_e,style:Ee,children:r.map((s,a)=>G(s)==="tyre"?e(fr,{item:s,currency:A,editing:y,fieldUsage:Me},`tyre:${s.slug}-${a}`):e(Xe,{wheel:s,variant:"catalog"},`${s.slug}-${a}`))}):y?e("div",{className:"flex min-h-[320px] items-center justify-center rounded bg-surface-2 p-4 text-center",children:e("span",{className:`font-mono ${n.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,children:Nr("No products in “{name}” yet",{name:c?.name??""})})}):null:e(le,{className:R,style:C.style,minEmptyHeight:320}),S=r?r.length:null,V=Cr(ne(N)),Le=h||_||v||f?x("div",{className:`${wr} sticky top-[var(--sf-header-h,88px)] z-30 mb-5 flex items-center justify-between gap-4 max-[800px]:flex-wrap max-[800px]:gap-y-2 border-b border-line bg-bg/95 py-3 backdrop-blur-md ${W?"":"-mx-[var(--sf-site-gutter,40px)] px-[var(--sf-site-gutter,40px)] max-[800px]:-mx-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]"}`,children:[x("div",{className:"flex min-w-0 items-end gap-6 max-[800px]:flex-col max-[800px]:items-stretch max-[800px]:gap-3",children:[h&&e("span",{className:`font-mono ${n.labelLarge} leading-none uppercase tracking-[0.22em] text-fg-dim`,children:D(h)}),_&&e("h2",{className:`${Er(ie)} leading-none text-fg max-[800px]:leading-[1] [&>span]:block`,children:ur(_,!1)})]}),(v||f||S!==null)&&x("div",{className:"flex items-center gap-5 max-[800px]:gap-3 min-[800px]:grow min-[800px]:justify-end",children:[v&&e("span",{className:`max-w-[340px] truncate font-display ${n.body} leading-[1.4] text-fg-dim max-[800px]:hidden min-[800px]:w-0 min-[800px]:grow min-[800px]:text-right`,children:D(v)}),f&&x(Ke,{href:f.href,className:`inline-flex items-center gap-2 whitespace-nowrap font-mono ${n.labelLarge} uppercase tracking-[0.2em] text-fg-dim transition-colors hover:text-fg`,children:[D(f.text),e("span",{"aria-hidden":!0,children:"→"})]}),S!==null&&x("span",{className:`whitespace-nowrap font-mono ${n.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,children:[S," ",S===1?V.one:V.many]})]})]}):null,ze=typeof U=="number"?U:120,q=or(xe),$=d(()=>{if(!r)return null;const s=r.map(a=>G(a)!=="tyre"&&Qe(er(a))?2:1);return te(s,o)?ee(m,s,o):null},[r,m,o]),[Ie,Pe]=ke("");B(()=>{if(r)return;const s=document.querySelector(`.${t}`);if(!s)return;const a=()=>{const l=[...s.children].map(Re=>Re.classList.contains("col-span-2")?2:1);Pe(te(l,o)?re(t,ee(m,l,o,!1),l.length):"")};a();const O=new MutationObserver(a);return O.observe(s,{childList:!0}),()=>O.disconnect()},[r,t,m,o]);const Ae=$?$[0].tracks:r?j?Math.min(r.length,o):r.length:void 0,M=$?re(t,$,r.length):Ie,Y=M?"":Je(t,m,{limit:o,cards:r?.length}),J=nr(t,q),Q=x(He,{children:[j&&!M&&e("style",{children:`.${t} > *:nth-child(n+${o+1}){display:none}`}),M&&e("style",{children:M}),Y&&e("style",{children:Y}),J&&e("style",{children:J}),Le,Te,e(tr,{editing:y})]});if(F)return null;const H=e("section",{...u?{[cr]:T}:{},className:"relative z-[2] bg-bg px-[var(--sf-site-gutter,40px)] pt-[var(--pg-pt)] pb-[120px] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:pt-[70px] max-[800px]:pb-[70px]",style:{"--pg-pt":`${ze}px`,...Ge(Se)},children:W?e("div",{style:lr(ir),children:Q}):Q}),Fe=i?H:y?e(mr,{children:H}):e(dr,{wheels:me,children:H});return e(qe,{imageSizes:Ye(m,Ae),imageBackgroundFill:De(ce,Be),spinOnHover:ge??!0,coverIndex:ue??ar,indexBadge:q,outline:he??sr,showBadge:fe??!0,fieldUsage:E,reserveEyebrow:Ne,showCardPrice:ye??!0,showCardFinishes:Ce??!0,showCardSizes:ve??k.showCardSizes,showCardBuy:be??k.showCardBuy,showCardPage:we??k.showCardPage,children:Fe})}export{ae as TITLE_SIZES,Tr as default};
@@ -1 +1 @@
1
- "use client";import{jsx as r}from"react/jsx-runtime";import{Render as a}from"efficient-easel/render";import{renderConfig as d}from"../lib/puck/render-config.js";import{migrateRenamedProps as u}from"efficient-web-builder/format/lib/puck/renamed-props";import{SITE_FOOTER_KIND as f}from"efficient-web-builder/format/lib/content/footer";import{PublishedFooterContext as p}from"efficient-web-builder/render/components/PublishedFooterContext";import{EMPTY_SOCIAL_LINKS as g}from"efficient-web-builder/format/lib/content/social-links";function I({footerBlock:l,rootProps:e,headerSettings:o,siteName:n,legalName:t,foundedYear:i,socialLinks:m}){const s=u({root:{props:{...e??{},kind:f}},content:[l],zones:{}});return r(p.Provider,{value:{logoUrl:o?.logoUrl??null,logoReversed:o?.logoReversed??null,logoInkIsDark:o?.logoInkIsDark??null,siteName:n,legalName:t??null,foundedYear:i??null,socialLinks:m??g},children:r(a,{config:d(),data:s})})}export{I as default};
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import{Render as a}from"efficient-easel/render";import{renderConfig as d}from"../lib/document/render-config.js";import{migrateRenamedProps as u}from"efficient-web-builder/format/lib/document/renamed-props";import{SITE_FOOTER_KIND as f}from"efficient-web-builder/format/lib/content/footer";import{PublishedFooterContext as p}from"efficient-web-builder/render/components/PublishedFooterContext";import{EMPTY_SOCIAL_LINKS as g}from"efficient-web-builder/format/lib/content/social-links";function I({footerBlock:l,rootProps:e,headerSettings:o,siteName:n,legalName:t,foundedYear:i,socialLinks:m}){const s=u({root:{props:{...e??{},kind:f}},content:[l],zones:{}});return r(p.Provider,{value:{logoUrl:o?.logoUrl??null,logoReversed:o?.logoReversed??null,logoInkIsDark:o?.logoInkIsDark??null,siteName:n,legalName:t??null,foundedYear:i??null,socialLinks:m??g},children:r(a,{config:d(),data:s})})}export{I as default};
@@ -1 +1 @@
1
- "use client";import{jsx as t}from"react/jsx-runtime";import{Render as i}from"efficient-easel/render";import n from"./BoxHeaderBar.js";import{headerRenderConfig as s}from"../lib/puck/render-config.js";import{migrateRenamedProps as p}from"efficient-web-builder/format/lib/puck/renamed-props";function m({group:e}){const r=p({root:{props:{}},content:[e],zones:{}}),o=e.props??{};return t(n,{sticky:o.sticky,topTextColor:o.topTextColor,heightPx:o.heightPx,theme:o.sectionAccent,children:t(i,{config:s(),data:r})})}export{m as default};
1
+ "use client";import{jsx as t}from"react/jsx-runtime";import{Render as i}from"efficient-easel/render";import n from"./BoxHeaderBar.js";import{headerRenderConfig as s}from"../lib/document/render-config.js";import{migrateRenamedProps as p}from"efficient-web-builder/format/lib/document/renamed-props";function m({group:e}){const r=p({root:{props:{}},content:[e],zones:{}}),o=e.props??{};return t(n,{sticky:o.sticky,topTextColor:o.topTextColor,heightPx:o.heightPx,theme:o.sectionAccent,children:t(i,{config:s(),data:r})})}export{m as default};
@@ -0,0 +1,10 @@
1
+ import { type RateGroup } from "../lib/sections/rate-table.js";
2
+ export declare const RATE_NONE = "\u2013";
3
+ interface RateTableProps {
4
+ title?: string;
5
+ description?: string;
6
+ groups: readonly RateGroup[];
7
+ contained: boolean;
8
+ }
9
+ export default function RateTable({ title, description, groups, contained }: RateTableProps): import("react").JSX.Element | null;
10
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import c from"efficient-web-builder/render/components/BlockFrame";import{renderGold as m,renderHeadline as o,splitParagraphs as d}from"efficient-web-builder/render/components/goldPhrases";import{RATE_TABLE_SCROLL_AFTER as p}from"../lib/sections/rate-table.js";const x="–";function h({title:a,description:r,groups:n,contained:s}){return n.length?e(c,{contained:s,className:"py-6",children:t("div",{className:"flex flex-col gap-10",children:[(a||r)&&t("div",{className:"flex max-w-[680px] flex-col gap-3",children:[a&&e("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium leading-[1.05] tracking-[-0.03em] max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:o(a,!1)}),r&&d(r).map((l,i)=>e("p",{className:"text-[15px] leading-[1.6] opacity-85",children:m(l)},i))]}),n.map((l,i)=>e(f,{group:l},`${l.name}-${i}`))]})}):null}function f({group:a}){const r=a.columns.length>p;return t("div",{className:"flex flex-col gap-3",children:[a.name&&e("h3",{className:"font-mono text-[12px] uppercase tracking-[0.18em]",children:m(a.name)}),e("div",{className:r?"overflow-x-auto":void 0,children:t("table",{className:r?"w-full min-w-[560px] border-collapse text-[15px] tabular-nums":"w-full border-collapse text-[15px] tabular-nums",children:[e("caption",{className:"sr-only",children:a.name}),e("thead",{children:t("tr",{className:"border-b border-line",children:[e("td",{className:"py-2"}),a.columns.map((n,s)=>e("th",{scope:"col",className:"py-2 pl-4 text-right align-bottom text-[12px] font-normal opacity-60",children:n},s))]})}),e("tbody",{children:a.rows.map((n,s)=>t("tr",{className:"border-b border-line last:border-b-0",children:[e("th",{scope:"row",className:"py-3 pr-2 text-left align-baseline font-normal",children:m(n.label)}),n.cells.map((l,i)=>e("td",{className:`whitespace-nowrap py-3 pl-4 text-right align-baseline${l.standard||!l.amount?" opacity-60":""}`,children:l.amount||x},i))]},s))})]})})]})}export{x as RATE_NONE,h as default};
@@ -1 +1 @@
1
- "use client";import{jsx as r}from"react/jsx-runtime";import{SectionTextParts as o}from"efficient-web-builder/render/lib/puck/editing-bridges";function i({nodeId:e,children:t}){return r(o,{nodeId:e,sectionType:"SpecTable",children:t})}export{i as default};
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import{SectionTextParts as o}from"efficient-web-builder/render/lib/document/editing-bridges";function i({nodeId:e,children:t}){return r(o,{nodeId:e,sectionType:"SpecTable",children:t})}export{i as default};
@@ -1 +1 @@
1
- "use client";import{jsx as a,jsxs as f}from"react/jsx-runtime";import g from"efficient-web-builder/render/components/PartStyledKind";import{ThemedSelectList as y,useThemedSelect as I}from"../ThemedSelect.js";import{PART_KIND_ATTR as u}from"efficient-web-builder/render/lib/puck/text-parts";import{TEXT_KIND_BODY as b,TEXT_KIND_NAME as h}from"efficient-web-builder/format/lib/sections/section-text-kinds";const n={body:"text-[length:var(--size-body,15px)]",headingSmall:"text-[length:var(--size-headingSmall,24px)]",labelXs:"text-[length:var(--size-label,10px)]",labelSmall:"text-[length:var(--size-label,11px)]",labelLarge:"text-[length:var(--size-label,12px)]",labelXl:"text-[length:var(--size-label,14px)]"};function T(o,l){return[{value:"",label:l??"—"},...o.map(i=>({value:i.value,label:i.label}))]}function z({label:o,value:l,options:i,onChange:v,placeholder:p,disabled:t,compact:s=!1,editing:d=!1}){const m=(i.find(r=>r.value===l)?.label??l)||p||"—",x=T(i,p),e=I({items:x,value:l,onPick:v}),c=e.open;return f("div",{ref:e.wrapRef,className:"relative min-w-0",children:[f("div",{ref:r=>{e.triggerRef.current=r},role:"button",tabIndex:t?-1:0,"aria-haspopup":"listbox","aria-expanded":c,"aria-controls":c?e.listId:void 0,"aria-activedescendant":e.activeId,"aria-label":o,"aria-disabled":t||void 0,onClick:()=>!t&&e.toggle(),onKeyDown:r=>!t&&e.onTriggerKeyDown(r),className:["relative flex h-full flex-col bg-bg transition-colors",s?"gap-1 px-3 py-3":"min-h-[160px] gap-4 px-6 py-8",t?"opacity-50":"cursor-pointer hover:bg-surface"].join(" "),children:[a("span",{...d?{[u]:h}:{},className:["font-mono uppercase text-accent",s?`${n.labelXs} tracking-[0.2em]`:`${n.labelLarge} tracking-[0.3em]`].join(" "),children:a(g,{kind:h,children:o})}),a("span",{title:m,className:["truncate font-display font-medium tracking-[-0.02em]",s?`${n.body} leading-[1.2]`:`mt-auto ${n.headingSmall} leading-[1.1]`,l?"text-fg":"text-fg-dim"].join(" "),...d?{[u]:b}:{},children:a(g,{kind:b,children:m})}),a("span",{className:["pointer-events-none absolute font-mono text-accent",s?`right-3 top-3 ${n.labelSmall}`:`right-[22px] top-[22px] ${n.labelXl}`].join(" "),children:"▾"})]}),c&&!t&&a(y,{id:e.listId,tone:"cell",items:x,value:l,focusIdx:e.focusIdx,onFocus:e.setFocusIdx,onPick:e.pick,listRef:e.listRef})]})}export{z as PickerField,T as pickerItems};
1
+ "use client";import{jsx as a,jsxs as f}from"react/jsx-runtime";import g from"efficient-web-builder/render/components/PartStyledKind";import{ThemedSelectList as y,useThemedSelect as I}from"../ThemedSelect.js";import{PART_KIND_ATTR as u}from"efficient-web-builder/render/lib/document/text-parts";import{TEXT_KIND_BODY as b,TEXT_KIND_NAME as h}from"efficient-web-builder/format/lib/sections/section-text-kinds";const n={body:"text-[length:var(--size-body,15px)]",headingSmall:"text-[length:var(--size-headingSmall,24px)]",labelXs:"text-[length:var(--size-label,10px)]",labelSmall:"text-[length:var(--size-label,11px)]",labelLarge:"text-[length:var(--size-label,12px)]",labelXl:"text-[length:var(--size-label,14px)]"};function T(o,l){return[{value:"",label:l??"—"},...o.map(i=>({value:i.value,label:i.label}))]}function z({label:o,value:l,options:i,onChange:v,placeholder:p,disabled:t,compact:s=!1,editing:d=!1}){const m=(i.find(r=>r.value===l)?.label??l)||p||"—",x=T(i,p),e=I({items:x,value:l,onPick:v}),c=e.open;return f("div",{ref:e.wrapRef,className:"relative min-w-0",children:[f("div",{ref:r=>{e.triggerRef.current=r},role:"button",tabIndex:t?-1:0,"aria-haspopup":"listbox","aria-expanded":c,"aria-controls":c?e.listId:void 0,"aria-activedescendant":e.activeId,"aria-label":o,"aria-disabled":t||void 0,onClick:()=>!t&&e.toggle(),onKeyDown:r=>!t&&e.onTriggerKeyDown(r),className:["relative flex h-full flex-col bg-bg transition-colors",s?"gap-1 px-3 py-3":"min-h-[160px] gap-4 px-6 py-8",t?"opacity-50":"cursor-pointer hover:bg-surface"].join(" "),children:[a("span",{...d?{[u]:h}:{},className:["font-mono uppercase text-accent",s?`${n.labelXs} tracking-[0.2em]`:`${n.labelLarge} tracking-[0.3em]`].join(" "),children:a(g,{kind:h,children:o})}),a("span",{title:m,className:["truncate font-display font-medium tracking-[-0.02em]",s?`${n.body} leading-[1.2]`:`mt-auto ${n.headingSmall} leading-[1.1]`,l?"text-fg":"text-fg-dim"].join(" "),...d?{[u]:b}:{},children:a(g,{kind:b,children:m})}),a("span",{className:["pointer-events-none absolute font-mono text-accent",s?`right-3 top-3 ${n.labelSmall}`:`right-[22px] top-[22px] ${n.labelXl}`].join(" "),children:"▾"})]}),c&&!t&&a(y,{id:e.listId,tone:"cell",items:x,value:l,focusIdx:e.focusIdx,onFocus:e.setFocusIdx,onPick:e.pick,listRef:e.listRef})]})}export{z as PickerField,T as pickerItems};
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import u from"../SectionBand.js";import B from"../BundleCard.js";import{cardImageShapeTokens as m}from"efficient-web-builder/format/lib/content/card-image-shape";import N from"efficient-web-builder/render/components/SectionHeader";import O from"./KindGate.js";import{useCurrency as _}from"../CurrencyContext.js";import{renderGold as f,renderHeadline as j}from"efficient-web-builder/render/components/goldPhrases";import{useCurrentProduct as k}from"../../lib/puck/current-product.js";import{say as C}from"efficient-web-builder/format/lib/editor-words";const x="border-b border-line py-[120px] max-[1100px]:py-20",g="border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20",S=["alloy-wheel"],y={2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1"};function D(r){return e(O,{kinds:S,type:"BundleOffer",editing:r.editing,children:e(v,{...r})})}function v({num:r,title:o,description:t,columns:d=3,editing:b=!1,omitHead:n=!1,cardImage:i}){const l=k(),{currency:h}=_(),s=l?.product.kind==="alloy-wheel"?l.product.source.bundles??[]:[],c=n?null:e(N,{num:r?f(r):void 0,title:o?j(o,!1):void 0,description:t?f(t):void 0,accent:!0});return s.length===0?b?a(u,{className:n?g:x,style:m(i),children:[c,e("p",{className:"border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:C("Bundles containing this product appear here on a product page.")})]}):null:a(u,{className:n?g:x,style:m(i),children:[c,e("div",{className:`mt-10 grid gap-6 ${y[d]??y[3]}`,children:s.slice(0,d).map(p=>e(B,{bundle:p,currency:h},p.slug))})]})}export{D as default,S as supportedKinds};
1
+ "use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import u from"../SectionBand.js";import B from"../BundleCard.js";import{cardImageShapeTokens as m}from"efficient-web-builder/format/lib/content/card-image-shape";import N from"efficient-web-builder/render/components/SectionHeader";import O from"./KindGate.js";import{useCurrency as _}from"../CurrencyContext.js";import{renderGold as f,renderHeadline as j}from"efficient-web-builder/render/components/goldPhrases";import{useCurrentProduct as k}from"../../lib/document/current-product.js";import{say as C}from"efficient-web-builder/format/lib/editor-words";const x="border-b border-line py-[120px] max-[1100px]:py-20",g="border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20",S=["alloy-wheel"],y={2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1"};function D(r){return e(O,{kinds:S,type:"BundleOffer",editing:r.editing,children:e(v,{...r})})}function v({num:r,title:o,description:t,columns:d=3,editing:b=!1,omitHead:n=!1,cardImage:i}){const l=k(),{currency:h}=_(),s=l?.product.kind==="alloy-wheel"?l.product.source.bundles??[]:[],c=n?null:e(N,{num:r?f(r):void 0,title:o?j(o,!1):void 0,description:t?f(t):void 0,accent:!0});return s.length===0?b?a(u,{className:n?g:x,style:m(i),children:[c,e("p",{className:"border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:C("Bundles containing this product appear here on a product page.")})]}):null:a(u,{className:n?g:x,style:m(i),children:[c,e("div",{className:`mt-10 grid gap-6 ${y[d]??y[3]}`,children:s.slice(0,d).map(p=>e(B,{bundle:p,currency:h},p.slug))})]})}export{D as default,S as supportedKinds};
@@ -1,5 +1,5 @@
1
1
  import { type DetailRow } from "../DetailRows.js";
2
- import { type CurrentRecord } from "../../lib/puck/current-record.js";
2
+ import { type CurrentRecord } from "../../lib/document/current-record.js";
3
3
  import type { ProductKind } from "../../lib/api/index.js";
4
4
  export declare const supportedKinds: readonly ProductKind[];
5
5
  interface Props {
@@ -1 +1 @@
1
- "use client";import{jsx as s}from"react/jsx-runtime";import y from"../SectionBand.js";import f from"../DetailRows.js";import R from"./KindGate.js";import x from"./RecordPhotoGallery.js";import{useCurrentProduct as D}from"../../lib/puck/current-product.js";import{SAMPLE_RECORD as b,recordFacts as k,recordPictures as p,useCurrentRecord as S,useDrawsOtherRecord as B}from"../../lib/puck/current-record.js";import{detailShotTag as P,pickDetailShots as T}from"../../lib/wheels/detail-shots.js";import{selectedStuds as N}from"../../lib/wheels/selected-studs.js";import{useSampleProduct as v}from"./useSampleProduct.js";import{say as C}from"efficient-web-builder/format/lib/editor-words";const F=["alloy-wheel"];function h(e,n){return e.finishes.find(t=>t.name===n)??e.finishes[0]}function L(e,n){return(h(e,n)?.features??[]).map(t=>({eyebrow:t.eyebrow,title:t.heading,copy:t.description,tag:t.mark,image:t.image||void 0}))}function j(e,n,t){const r=T(h(e,n),t);return r.rows.map(i=>({eyebrow:i.eyebrow?.trim()||void 0,title:i.title,copy:i.line||void 0,image:i.url,tag:P(i,r,t),imageShape:"square"}))}function E(e){return B(!!e.editing)?s(G,{...e}):s(R,{kinds:F,type:"DetailRows",editing:e.editing,children:s(K,{...e})})}function w(e){const n=k(e),t=p(e)[0];return!n.length&&!t&&!e.title.trim()?[]:[{title:e.title,specs:n,image:t?.url||void 0}]}function G({startLeft:e,padTop:n,padBottom:t,editing:r=!1}){const i=S(),o=i?w(i):r?w(b):[];if(o.length===0)return null;const a=i?p(i,{firstField:!0}):[];return a.length&&(o[0]={...o[0],media:s(x,{pictures:a,name:i?.title??"",editing:r,fit:"column"})}),s(f,{rows:o,startLeft:e,padTop:n,padBottom:t,editing:r})}function K({rowsFrom:e,startLeft:n,padTop:t,padBottom:r,editing:i=!1}){const o=D(),a=v(i&&!o),c=o?.product??a,l=c?.kind==="alloy-wheel"?c.source:null,u=o?o.selection.shown.finish:void 0,g=o?N(o.selection):null,d=e==="details",m=l?d?j(l,u,g):L(l,u):[];return d&&m.length===0?i?s(y,{className:"border-b border-line py-14 max-[1100px]:py-10",children:s("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:C("No detail shots on this finish yet. Tick a close-up on the design's renderings and give it a title. This section is hidden on the live page until then.")})}):null:s(f,{rows:m,startLeft:n,padTop:t,padBottom:r,editing:i})}export{E as default,w as recordDetailRows,F as supportedKinds};
1
+ "use client";import{jsx as s}from"react/jsx-runtime";import y from"../SectionBand.js";import f from"../DetailRows.js";import R from"./KindGate.js";import x from"./RecordPhotoGallery.js";import{useCurrentProduct as D}from"../../lib/document/current-product.js";import{SAMPLE_RECORD as b,recordFacts as k,recordPictures as p,useCurrentRecord as S,useDrawsOtherRecord as B}from"../../lib/document/current-record.js";import{detailShotTag as P,pickDetailShots as T}from"../../lib/wheels/detail-shots.js";import{selectedStuds as N}from"../../lib/wheels/selected-studs.js";import{useSampleProduct as v}from"./useSampleProduct.js";import{say as C}from"efficient-web-builder/format/lib/editor-words";const F=["alloy-wheel"];function h(e,n){return e.finishes.find(t=>t.name===n)??e.finishes[0]}function L(e,n){return(h(e,n)?.features??[]).map(t=>({eyebrow:t.eyebrow,title:t.heading,copy:t.description,tag:t.mark,image:t.image||void 0}))}function j(e,n,t){const r=T(h(e,n),t);return r.rows.map(i=>({eyebrow:i.eyebrow?.trim()||void 0,title:i.title,copy:i.line||void 0,image:i.url,tag:P(i,r,t),imageShape:"square"}))}function E(e){return B(!!e.editing)?s(G,{...e}):s(R,{kinds:F,type:"DetailRows",editing:e.editing,children:s(K,{...e})})}function w(e){const n=k(e),t=p(e)[0];return!n.length&&!t&&!e.title.trim()?[]:[{title:e.title,specs:n,image:t?.url||void 0}]}function G({startLeft:e,padTop:n,padBottom:t,editing:r=!1}){const i=S(),o=i?w(i):r?w(b):[];if(o.length===0)return null;const a=i?p(i,{firstField:!0}):[];return a.length&&(o[0]={...o[0],media:s(x,{pictures:a,name:i?.title??"",editing:r,fit:"column"})}),s(f,{rows:o,startLeft:e,padTop:n,padBottom:t,editing:r})}function K({rowsFrom:e,startLeft:n,padTop:t,padBottom:r,editing:i=!1}){const o=D(),a=v(i&&!o),c=o?.product??a,l=c?.kind==="alloy-wheel"?c.source:null,u=o?o.selection.shown.finish:void 0,g=o?N(o.selection):null,d=e==="details",m=l?d?j(l,u,g):L(l,u):[];return d&&m.length===0?i?s(y,{className:"border-b border-line py-14 max-[1100px]:py-10",children:s("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:C("No detail shots on this finish yet. Tick a close-up on the design's renderings and give it a title. This section is hidden on the live page until then.")})}):null:s(f,{rows:m,startLeft:n,padTop:t,padBottom:r,editing:i})}export{E as default,w as recordDetailRows,F as supportedKinds};
@@ -1 +1 @@
1
- "use client";import{jsx as r}from"react/jsx-runtime";import c,{EU_LABEL_BAND as m,EuTyreLabelGrades as d}from"../EuTyreLabels.js";import p from"../SectionBand.js";import a from"./KindGate.js";import{useEuTyreLabels as f}from"../useEuTyreLabels.js";import{useCurrentProduct as y}from"../../lib/puck/current-product.js";import{useSampleProduct as b}from"./useSampleProduct.js";import{say as E}from"efficient-web-builder/format/lib/editor-words";const s=["tyre"];function L(e){return r(a,{kinds:s,type:"EuTyreLabel",editing:e.editing,children:r(T,{...e})})}function T({num:e,editing:t=!1}){const n=l(t);return n.length===0&&t?r(p,{className:m,children:r(i,{})}):r(c,{labels:n,num:e??"",capped:!1})}function _({editing:e=!1}){return r(a,{kinds:s,type:"EuTyreLabel",editing:e,children:r(h,{editing:e})})}function h({editing:e}){const t=l(e);return t.length===0?e?r(i,{}):null:r(d,{labels:t})}function l(e){const t=y(),n=b(e&&!t),o=t?.product??n,u=o?.kind==="tyre"?o.source.variants:[];return f(u)}function i(){return r("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:E("The EU label appears here for every size with an EPREL registration number. It is read live from the registry and never stored.")})}export{_ as DynamicEuTyreLabelBlock,L as default,s as supportedKinds};
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import c,{EU_LABEL_BAND as m,EuTyreLabelGrades as d}from"../EuTyreLabels.js";import p from"../SectionBand.js";import a from"./KindGate.js";import{useEuTyreLabels as f}from"../useEuTyreLabels.js";import{useCurrentProduct as y}from"../../lib/document/current-product.js";import{useSampleProduct as b}from"./useSampleProduct.js";import{say as E}from"efficient-web-builder/format/lib/editor-words";const s=["tyre"];function L(e){return r(a,{kinds:s,type:"EuTyreLabel",editing:e.editing,children:r(T,{...e})})}function T({num:e,editing:t=!1}){const n=l(t);return n.length===0&&t?r(p,{className:m,children:r(i,{})}):r(c,{labels:n,num:e??"",capped:!1})}function _({editing:e=!1}){return r(a,{kinds:s,type:"EuTyreLabel",editing:e,children:r(h,{editing:e})})}function h({editing:e}){const t=l(e);return t.length===0?e?r(i,{}):null:r(d,{labels:t})}function l(e){const t=y(),n=b(e&&!t),o=t?.product??n,u=o?.kind==="tyre"?o.source.variants:[];return f(u)}function i(){return r("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:E("The EU label appears here for every size with an EPREL registration number. It is read live from the registry and never stored.")})}export{_ as DynamicEuTyreLabelBlock,L as default,s as supportedKinds};
@@ -1 +1 @@
1
- "use client";import{jsx as o}from"react/jsx-runtime";import x from"../FitmentTable.js";import w from"./KindGate.js";import{useCurrentProduct as y}from"../../lib/puck/current-product.js";import{useSampleProduct as F}from"./useSampleProduct.js";const T=["alloy-wheel"];function b(t){return o(w,{kinds:T,type:"FitmentTable",editing:t.editing,children:o(g,{...t})})}function g({num:t,title:r,description:s,showFilter:l,tooltipDefaultOn:m,footnote:a,footnoteLinkText:d,footnoteLinkHref:f,editing:n=!1,omitHead:c=!1}){const e=y(),u=F(n&&!e),i=e?.product??u,p=i?.kind==="alloy-wheel"?i.source.fitments??[]:[];return o(x,{num:t,title:r,description:s,rows:p,showFilter:l,tooltipDefaultOn:m,footnote:a,footnoteLinkText:d,footnoteLinkHref:f,editing:n,omitHead:c,fieldUsage:e?.fieldUsage})}export{b as default,T as supportedKinds};
1
+ "use client";import{jsx as o}from"react/jsx-runtime";import x from"../FitmentTable.js";import w from"./KindGate.js";import{useCurrentProduct as y}from"../../lib/document/current-product.js";import{useSampleProduct as F}from"./useSampleProduct.js";const T=["alloy-wheel"];function b(t){return o(w,{kinds:T,type:"FitmentTable",editing:t.editing,children:o(g,{...t})})}function g({num:t,title:r,description:s,showFilter:l,tooltipDefaultOn:m,footnote:a,footnoteLinkText:d,footnoteLinkHref:f,editing:n=!1,omitHead:c=!1}){const e=y(),u=F(n&&!e),i=e?.product??u,p=i?.kind==="alloy-wheel"?i.source.fitments??[]:[];return o(x,{num:t,title:r,description:s,rows:p,showFilter:l,tooltipDefaultOn:m,footnote:a,footnoteLinkText:d,footnoteLinkHref:f,editing:n,omitHead:c,fieldUsage:e?.fieldUsage})}export{b as default,T as supportedKinds};
@@ -1,3 +1,4 @@
1
+ import type { SourceRow } from "efficient-web-builder/format/lib/content/block-sources";
1
2
  export declare const supportedKinds: readonly ("alloy-wheel" | "tyre")[];
2
3
  export interface DynamicGalleryGridProps {
3
4
  num?: string;
@@ -18,3 +19,8 @@ export interface DynamicGalleryGridProps {
18
19
  padBottom?: number;
19
20
  }
20
21
  export default function DynamicGalleryGrid(props: DynamicGalleryGridProps): import("react").JSX.Element;
22
+ export declare function SourcedGalleryGrid(props: DynamicGalleryGridProps & {
23
+ rows: readonly SourceRow[];
24
+ limit?: number;
25
+ layout?: string;
26
+ }): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as _}from"react/jsx-runtime";import L from"efficient-web-builder/render/components/Btn";import M,{GALLERY_GRID_ATTR as B,GalleryLinksContext as C}from"../GalleryItem.js";import{SharedPartKinds as H}from"efficient-web-builder/render/components/PublishedPartStylesContext";import{renderHeadline as j}from"efficient-web-builder/render/components/goldPhrases";import D from"efficient-web-builder/render/components/SectionHeader";import F from"./KindGate.js";import K from"./RecordPhotoGallery.js";import{headIsEmpty as U,ownPadding as Z}from"../../lib/sections/own-padding.js";import{PLP_KINDS as $}from"../../lib/catalog/plp-item.js";import{useCurrentProduct as z}from"../../lib/puck/current-product.js";import{SAMPLE_PICTURE_COUNT as V,SAMPLE_RECORD as W,recordPictures as X,useCurrentRecord as Y,useDrawsOtherRecord as q}from"../../lib/puck/current-record.js";import{mediaGroupVehicle as J}from"../../lib/content/source-values.js";import{useSampleProduct as Q}from"./useSampleProduct.js";import{say as R}from"efficient-web-builder/format/lib/editor-words";const ee=$,E=["photos","lifestyle","accessories","others"];function re(e,o){if(!e)return[];if(o==="all")return E.flatMap(n=>e[n]??[]);const a=E.includes(o)?o:null;return a?e[a]??[]:[]}const S="relative z-[2] bg-bg py-[120px] max-[800px]:py-[70px]",A="relative z-[2] bg-bg pt-0 pb-[120px] max-[800px]:pt-0 max-[800px]:pb-[70px]",O="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]";function te(e){return q(!!e.editing)?t(ie,{...e}):t(F,{kinds:ee,type:"GalleryB",editing:e.editing,children:t(ae,{...e})})}function ie(e){const{editing:o=!1}=e,a=Y(),n=a?X(a,{firstField:!0}).map(s=>({images:[s.url],eyebrow:s.alt&&s.alt!==a.title?s.alt:void 0,...s.video?{video:s.video}:{}})):o?Array.from({length:V},()=>({images:[""]})):[];return t(T,{...e,tiles:n,owner:{name:(a??W).title},photosOnly:!0,emptyHint:R("This record’s pictures appear here on its page. A record with no pictures draws nothing.")})}function ae({omitHead:e=!1,num:o,title:a,linkText:n,linkHref:s,galleryHref:u="/gallery",submitHref:y="/contact",zone:v="all",photoDisplay:h="covers",previewHover:b,display:N,displayPhone:d,styleOwner:c,editing:m=!1,padTop:w,padBottom:p}){const g=z(),G=Q(m&&!g),l=g?.product??G,f=re(l?.mediaGroups,v).map(r=>({images:(r.items??[]).filter(i=>i.kind==="image").map(i=>i.url),vehicle:J(r),finish:r.finish})).filter(r=>r.images.length>0),x=(h==="auto"?f.length>=4?"covers":"all":h)==="all"?f.flatMap(r=>r.images.map(i=>({images:[i],vehicle:r.vehicle,finish:r.finish}))):f;return t(T,{omitHead:e,num:o,title:a,linkText:n,linkHref:s,galleryHref:u,submitHref:y,previewHover:b,display:N,displayPhone:d,styleOwner:c,editing:m,padTop:w,padBottom:p,tiles:l?x.map(r=>({images:r.images,eyebrow:r.vehicle||void 0,meta:r.finish})):[],owner:{name:l?.name??"",href:l?.href,process:l?.eyebrow},emptyHint:R("This product’s photos appear here on a product page. Add media groups in the product’s Media tab.")})}function T({omitHead:e=!1,num:o,title:a,linkText:n,linkHref:s,galleryHref:u="/gallery",submitHref:y="/contact",previewHover:v,display:h,displayPhone:b,styleOwner:N,editing:d=!1,tiles:c,owner:m,emptyHint:w,photosOnly:p=!1,padTop:g,padBottom:G}){const l=n?{text:n,href:s||"#"}:void 0,f=a?j(a,!1):void 0,P=e?null:t(D,{num:o,title:f,link:l}),x=!d&&U(o,a,l?.text)?null:P,r=Z(g,G);return c.length===0?d?t("section",{className:e?A:S,style:r,children:_("div",{className:O,children:[x,t("p",{className:"mt-8 border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:w})]})}):null:t("section",{className:e?A:S,style:r,children:_("div",{className:O,children:[x,p?t(K,{pictures:c.map(i=>({url:i.images[0]??"",alt:i.eyebrow,video:i.video})),name:m.name,editing:d}):t(C.Provider,{value:{galleryHref:u,submitHref:y,previewHover:v,display:h,displayPhone:b,styleOwner:N,photosOnly:p},children:t(H,{children:t("div",{[B]:"",className:"grid grid-cols-4 gap-2 max-[1500px]:grid-cols-3 max-[800px]:grid-cols-1 max-[800px]:gap-1",children:c.map((i,k)=>t(M,{image:i.images[0],photos:i.images.slice(1).map(I=>({src:I})),href:m.href,process:m.process,eyebrow:i.eyebrow,name:m.name,meta:i.meta,editing:d},`${i.eyebrow}-${k}`))})})}),!p&&t("div",{className:"mt-12 flex flex-col items-center gap-3",children:t(L,{href:u,variant:"ghost",children:"See Gallery"})})]})})}export{te as default,ee as supportedKinds};
1
+ "use client";import{jsx as t,jsxs as E}from"react/jsx-runtime";import I from"efficient-web-builder/render/components/Btn";import B,{GALLERY_GRID_ATTR as C,GalleryLinksContext as j}from"../GalleryItem.js";import{SharedPartKinds as D}from"efficient-web-builder/render/components/PublishedPartStylesContext";import{renderHeadline as F}from"efficient-web-builder/render/components/goldPhrases";import K from"efficient-web-builder/render/components/SectionHeader";import U from"./KindGate.js";import Z from"./RecordPhotoGallery.js";import{headIsEmpty as $,ownPadding as z}from"../../lib/sections/own-padding.js";import{PLP_KINDS as V}from"../../lib/catalog/plp-item.js";import{useCurrentProduct as W}from"../../lib/document/current-product.js";import{SAMPLE_PICTURE_COUNT as S,SAMPLE_RECORD as X,recordPictures as Y,useCurrentRecord as q,useDrawsOtherRecord as J}from"../../lib/document/current-record.js";import{mediaGroupVehicle as Q}from"../../lib/content/source-values.js";import{useSampleProduct as ee}from"./useSampleProduct.js";import{say as _}from"efficient-web-builder/format/lib/editor-words";import{resolveGalleryLayout as re}from"efficient-web-builder/format/lib/content/gallery-layout";const te=V,O=["photos","lifestyle","accessories","others"];function ie(e,o){if(!e)return[];if(o==="all")return O.flatMap(s=>e[s]??[]);const r=O.includes(o)?o:null;return r?e[r]??[]:[]}const T="relative z-[2] bg-bg py-[120px] max-[800px]:py-[70px]",L="relative z-[2] bg-bg pt-0 pb-[120px] max-[800px]:pt-0 max-[800px]:pb-[70px]",M="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]";function oe(e){return J(!!e.editing)?t(ae,{...e}):t(U,{kinds:te,type:"GalleryB",editing:e.editing,children:t(se,{...e})})}function ae(e){const{editing:o=!1}=e,r=q(),s=r?Y(r,{firstField:!0}).map(a=>({images:[a.url],eyebrow:a.alt&&a.alt!==r.title?a.alt:void 0,...a.video?{video:a.video}:{}})):o?Array.from({length:S},()=>({images:[""]})):[];return t(R,{...e,tiles:s,owner:{name:(r??X).title},photosOnly:!0,emptyHint:_("This record’s pictures appear here on its page. A record with no pictures draws nothing.")})}function Ne(e){const{rows:o,limit:r,layout:s,editing:a=!1,title:u}=e,c=typeof r=="number"&&r>0?Math.floor(r):void 0,h=o.filter(n=>typeof n.cover=="string"&&n.cover).map(n=>({images:[n.cover],...n.video?{video:n.video}:{}})),d=a&&h.length===0?Array.from({length:c??S},()=>({images:[""]})):h;return t(R,{...e,tiles:c?d.slice(0,c):d,owner:{name:(u??"").replace(/==/g,"").trim()},photosOnly:!0,tilesAcross:re(s)?.across===3?3:4,emptyHint:_("The website’s pictures appear here, in the order they are put in. A website with no pictures draws nothing.")})}function se({omitHead:e=!1,num:o,title:r,linkText:s,linkHref:a,galleryHref:u="/gallery",submitHref:c="/contact",zone:h="all",photoDisplay:d="covers",previewHover:n,display:w,displayPhone:g,styleOwner:x,editing:p=!1,padTop:G,padBottom:v}){const b=W(),N=ee(p&&!b),f=b?.product??N,y=ie(f?.mediaGroups,h).map(i=>({images:(i.items??[]).filter(m=>m.kind==="image").map(m=>m.url),vehicle:Q(i),finish:i.finish})).filter(i=>i.images.length>0),P=(d==="auto"?y.length>=4?"covers":"all":d)==="all"?y.flatMap(i=>i.images.map(m=>({images:[m],vehicle:i.vehicle,finish:i.finish}))):y;return t(R,{omitHead:e,num:o,title:r,linkText:s,linkHref:a,galleryHref:u,submitHref:c,previewHover:n,display:w,displayPhone:g,styleOwner:x,editing:p,padTop:G,padBottom:v,tiles:f?P.map(i=>({images:i.images,eyebrow:i.vehicle||void 0,meta:i.finish})):[],owner:{name:f?.name??"",href:f?.href,process:f?.eyebrow},emptyHint:_("This product’s photos appear here on a product page. Add media groups in the product’s Media tab.")})}function R({omitHead:e=!1,num:o,title:r,linkText:s,linkHref:a,galleryHref:u="/gallery",submitHref:c="/contact",previewHover:h,display:d,displayPhone:n,styleOwner:w,editing:g=!1,tiles:x,owner:p,emptyHint:G,photosOnly:v=!1,tilesAcross:b,padTop:N,padBottom:f}){const y=s?{text:s,href:a||"#"}:void 0,A=r?F(r,!1):void 0,P=e?null:t(K,{num:o,title:A,link:y}),i=!g&&$(o,r,y?.text)?null:P,m=z(N,f);return x.length===0?g?t("section",{className:e?L:T,style:m,children:E("div",{className:M,children:[i,t("p",{className:"mt-8 border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:G})]})}):null:t("section",{className:e?L:T,style:m,children:E("div",{className:M,children:[i,v?t(Z,{pictures:x.map(l=>({url:l.images[0]??"",alt:l.eyebrow,video:l.video})),name:p.name,editing:g,...b?{fit:"tiles",across:b}:{}}):t(j.Provider,{value:{galleryHref:u,submitHref:c,previewHover:h,display:d,displayPhone:n,styleOwner:w,photosOnly:v},children:t(D,{children:t("div",{[C]:"",className:"grid grid-cols-4 gap-2 max-[1500px]:grid-cols-3 max-[800px]:grid-cols-1 max-[800px]:gap-1",children:x.map((l,k)=>t(B,{image:l.images[0],photos:l.images.slice(1).map(H=>({src:H})),href:p.href,process:p.process,eyebrow:l.eyebrow,name:p.name,meta:l.meta,editing:g},`${l.eyebrow}-${k}`))})})}),!v&&t("div",{className:"mt-12 flex flex-col items-center gap-3",children:t(I,{href:u,variant:"ghost",children:"See Gallery"})})]})})}export{Ne as SourcedGalleryGrid,oe as default,te as supportedKinds};
@@ -1 +1 @@
1
- "use client";import{jsx as e,Fragment as s,jsxs as c}from"react/jsx-runtime";import l from"../ProductGallery.js";import a from"../ProductLightbox.js";import{SECTION_NOTICE_TEXT_CLASS as p}from"../SectionNotice.js";import{heroView as d}from"../product-hero/hero-view.js";import{useIsLightTheme as f}from"../useIsLightTheme.js";import{useLightbox as g}from"../useLightbox.js";import{useProductSelection as x}from"../useProductSelection.js";import{useCurrentProduct as h}from"../../lib/puck/current-product.js";import{say as L}from"efficient-web-builder/format/lib/editor-words";import{useSampleProduct as S}from"./useSampleProduct.js";function b({editing:o=!1,...t}){const r=h();return r?e(n,{product:r.product,selection:r.selection,onLightbox:r.openLightbox,editing:o,...t}):o?e(y,{...t}):null}function n({product:o,selection:t,onLightbox:r,editing:i,...u}){const m=f();return e(l,{product:o,view:d(o,t,i),angleIdx:t.angleIdx,onSelect:t.setAngleIdx,isLight:m,onLightbox:r,...u})}function y(o){const t=S(!0);return t?e(I,{product:t,...o}):e("p",{className:p,children:L("Loading sample product…")})}function I({product:o,...t}){const r=x(o,{editing:!0}),i=g();return c(s,{children:[e(n,{product:o,selection:r,onLightbox:i.open,editing:!0,...t}),e(a,{item:i.item,onClose:i.close})]})}export{b as default};
1
+ "use client";import{jsx as e,Fragment as s,jsxs as c}from"react/jsx-runtime";import l from"../ProductGallery.js";import a from"../ProductLightbox.js";import{SECTION_NOTICE_TEXT_CLASS as p}from"../SectionNotice.js";import{heroView as d}from"../product-hero/hero-view.js";import{useIsLightTheme as f}from"../useIsLightTheme.js";import{useLightbox as g}from"../useLightbox.js";import{useProductSelection as x}from"../useProductSelection.js";import{useCurrentProduct as h}from"../../lib/document/current-product.js";import{say as L}from"efficient-web-builder/format/lib/editor-words";import{useSampleProduct as S}from"./useSampleProduct.js";function b({editing:o=!1,...t}){const r=h();return r?e(n,{product:r.product,selection:r.selection,onLightbox:r.openLightbox,editing:o,...t}):o?e(y,{...t}):null}function n({product:o,selection:t,onLightbox:r,editing:i,...u}){const m=f();return e(l,{product:o,view:d(o,t,i),angleIdx:t.angleIdx,onSelect:t.setAngleIdx,isLight:m,onLightbox:r,...u})}function y(o){const t=S(!0);return t?e(I,{product:t,...o}):e("p",{className:p,children:L("Loading sample product…")})}function I({product:o,...t}){const r=x(o,{editing:!0}),i=g();return c(s,{children:[e(n,{product:o,selection:r,onLightbox:i.open,editing:!0,...t}),e(a,{item:i.item,onClose:i.close})]})}export{b as default};
@@ -1 +1 @@
1
- "use client";import{jsx as t,Fragment as s,jsxs as p}from"react/jsx-runtime";import u from"../ProductHeroPanel.js";import l from"../ProductLightbox.js";import m from"../SectionNotice.js";import d from"./KindGate.js";import{useLightbox as a}from"../useLightbox.js";import{useProductSelection as f}from"../useProductSelection.js";import{PLP_KINDS as h}from"../../lib/catalog/plp-item.js";import{useCurrentProduct as x}from"../../lib/puck/current-product.js";import{useSampleProduct as P}from"./useSampleProduct.js";import{say as g}from"efficient-web-builder/format/lib/editor-words";const L=h;function b({editing:e=!1,pricePlacement:r,showVehicleFitment:i=!0,...o}){const n=x();return t(d,{kinds:L,type:"ProductHero",editing:e,children:n?t(u,{product:n.product,selection:n.selection,onLightbox:n.openLightbox,editing:e,pricePlacement:r,showVehicleFitment:i,...o}):e?t(S,{pricePlacement:r,showVehicleFitment:i,...o}):t(m,{size:"tall",children:"Bound to the current product — preview on a product page."})})}function S({pricePlacement:e,showVehicleFitment:r,...i}){const o=P(!0);return o?t(F,{product:o,pricePlacement:e,showVehicleFitment:r,...i}):t(m,{size:"tall",children:g("Loading sample product…")})}function F({product:e,pricePlacement:r,showVehicleFitment:i,...o}){const n=f(e,{editing:!0}),c=a();return p(s,{children:[t(u,{product:e,selection:n,onLightbox:c.open,editing:!0,pricePlacement:r,showVehicleFitment:i,...o}),t(l,{item:c.item,onClose:c.close})]})}export{F as SampleHeroLoaded,b as default,L as supportedKinds};
1
+ "use client";import{jsx as t,Fragment as s,jsxs as p}from"react/jsx-runtime";import u from"../ProductHeroPanel.js";import l from"../ProductLightbox.js";import m from"../SectionNotice.js";import d from"./KindGate.js";import{useLightbox as a}from"../useLightbox.js";import{useProductSelection as f}from"../useProductSelection.js";import{PLP_KINDS as h}from"../../lib/catalog/plp-item.js";import{useCurrentProduct as x}from"../../lib/document/current-product.js";import{useSampleProduct as P}from"./useSampleProduct.js";import{say as g}from"efficient-web-builder/format/lib/editor-words";const L=h;function b({editing:e=!1,pricePlacement:r,showVehicleFitment:i=!0,...o}){const n=x();return t(d,{kinds:L,type:"ProductHero",editing:e,children:n?t(u,{product:n.product,selection:n.selection,onLightbox:n.openLightbox,editing:e,pricePlacement:r,showVehicleFitment:i,...o}):e?t(S,{pricePlacement:r,showVehicleFitment:i,...o}):t(m,{size:"tall",children:"Bound to the current product — preview on a product page."})})}function S({pricePlacement:e,showVehicleFitment:r,...i}){const o=P(!0);return o?t(F,{product:o,pricePlacement:e,showVehicleFitment:r,...i}):t(m,{size:"tall",children:g("Loading sample product…")})}function F({product:e,pricePlacement:r,showVehicleFitment:i,...o}){const n=f(e,{editing:!0}),c=a();return p(s,{children:[t(u,{product:e,selection:n,onLightbox:c.open,editing:!0,pricePlacement:r,showVehicleFitment:i,...o}),t(l,{item:c.item,onClose:c.close})]})}export{F as SampleHeroLoaded,b as default,L as supportedKinds};
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as O}from"react/jsx-runtime";import A from"../SectionBand.js";import{GRID_CARD_SHOW as k}from"../../lib/sections/card-show-defaults.js";import{useEffect as W,useId as V,useState as X}from"react";import{resolveCardImageBackground as Z,THEME_CARD_IMAGE_BG as q}from"efficient-web-builder/format/lib/content/card-image-background";import{cardImageShapeTokens as B}from"efficient-web-builder/format/lib/content/card-image-shape";import{DEFAULT_COVER_INDEX as J}from"../../lib/wheels/cover-rendering.js";import{DEFAULT_CARD_INDEX_FORMAT as Q,DEFAULT_CARD_OUTLINE as Y,cardIndexCss as ee}from"efficient-web-builder/format/lib/sections/product-card-style";import re from"../CompatibleTyres.js";import oe from"../ProductCard.js";import{CARD_ROWS_GRID_CLASS as te,cardRowsGridStyle as ie}from"../WheelCardFrame.js";import{ProductCardChromeProvider as se}from"../ProductCardChrome.js";import{gridClassImageSizes as ne}from"../../lib/sections/card-image-sizes.js";import{fillRowCss as ae}from"../../lib/sections/fill-row.js";import le from"efficient-web-builder/render/components/SectionHeader";import de from"../ViewMoreLink.js";import{useSiteMenuLinks as ce}from"../catalog/SiteMenuLinks.js";import{renderGold as F,renderHeadline as me}from"efficient-web-builder/render/components/goldPhrases";import pe from"./KindGate.js";import{loadProductCatalog as ue}from"../useProductCatalog.js";import{PLP_KINDS as fe}from"../../lib/catalog/plp-item.js";import{relatedCardCount as he,relatedViewMore as ge}from"../../lib/catalog/related-cards.js";import{DEFAULT_RELATIONSHIP as xe,relationshipApplies as Ce,relationshipByKey as ye}from"../../lib/catalog/relationships.js";import{useCurrentProduct as we}from"../../lib/puck/current-product.js";import{PLACEHOLDER_RELATED as H}from"../../lib/wheels/placeholder-wheel.js";import{say as T}from"efficient-web-builder/format/lib/editor-words";const G={label:"text-[length:var(--size-label,13px)]"},be=fe,$={2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1",4:"grid-cols-4 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1"};function _e(r){return e(pe,{kinds:be,type:"RelatedProducts",editing:r.editing,children:e(Se,{...r})})}function Se({num:r,title:t,description:c,columns:n=3,cardCount:_,relationship:S=xe,footnote:E,footnoteLinkText:R,footnoteLinkHref:D,editing:o=!1,omitHead:x=!1,cardImage:i,outline:m,indexBadge:p,showBadge:C,showCardPrice:y,showCardFinishes:a,showCardSizes:l,showCardBuy:u,showCardPage:f,coverIndex:h,imageBackground:g,spinOnHover:w}){const d=we(),U=ce(),I=he(_),[j,N]=X([]);W(()=>{if(d||!o)return;let v=!1;return ue().then(M=>{const K=M.length>0?M:H;v||N(K)}).catch(()=>{v||N(H)}),()=>{v=!0}},[d,o]);const s=ye(S);if(!s)return null;const L=ge(s,U),P=x?null:e(le,{num:r?F(r):void 0,title:me(t||s.heading,!1),description:c?F(c):void 0,accent:!0});if(!d)return o?e(z,{header:P,wheels:j.slice(0,I),columns:n,viewMore:L,cardImage:i,outline:m,indexBadge:p,showBadge:C,showCardPrice:y,showCardFinishes:a,showCardSizes:l,showCardBuy:u,showCardPage:f,coverIndex:h,imageBackground:g,spinOnHover:w}):null;if(!Ce(s,d.product.kind))return o?e(A,{className:"border-b border-line py-14 max-[1100px]:py-10",style:B(i),children:e("p",{className:`font-mono ${G.label} uppercase tracking-[0.18em] text-fg-dim`,children:T("“{relationship}” does not apply to this product. It is hidden on the live page.",{relationship:T(s.label)})})}):null;const b=s.resolve(d.product,d.relatedWheels);return b.kind==="tyre"?e(re,{omitHead:x,columns:n,cardImage:i,outline:m,indexBadge:p,num:r,title:t||s.heading,description:c,tyres:[...b.tyres].slice(0,I),footnote:E,footnoteLinkText:R,footnoteLinkHref:D,viewMore:L,editing:o}):b.wheels.length===0?o?O(A,{className:"border-b border-line py-[120px] max-[1100px]:py-20",style:B(i),children:[P,e("p",{className:`border-t border-line py-6 font-mono ${G.label} uppercase tracking-[0.18em] text-fg-dim`,children:T("Related products appear here on a product page.")})]}):null:e(z,{header:P,wheels:[...b.wheels].slice(0,I),columns:n,viewMore:L,cardImage:i,outline:m,indexBadge:p,showBadge:C,showCardPrice:y,showCardFinishes:a,showCardSizes:l,showCardBuy:u,showCardPage:f,coverIndex:h,imageBackground:g,spinOnHover:w})}function z({header:r,wheels:t,columns:c,viewMore:n,cardImage:_,outline:S,indexBadge:E,showBadge:R,showCardPrice:D,showCardFinishes:o,showCardSizes:x,showCardBuy:i,showCardPage:m,coverIndex:p,imageBackground:C,spinOnHover:y}){const a=`rp-${V().replace(/:/g,"")}`;if(t.length===0)return null;const l=$[Math.min(4,Math.max(2,c))]??$[3],u=E??Q,f=ee(a,u),h=ae(a,l,{cards:t.length});return O(A,{className:"border-b border-line py-[120px] max-[1100px]:py-20",style:B(_),children:[f&&e("style",{children:f}),h&&e("style",{children:h}),r,e(se,{imageSizes:ne(l,t.length),imageBackgroundFill:Z(C,q),spinOnHover:y??!0,coverIndex:p??J,outline:S??Y,indexBadge:u,showBadge:R??!0,showCardPrice:D??!0,showCardFinishes:o??!0,showCardSizes:x??k.showCardSizes,showCardBuy:i??k.showCardBuy,showCardPage:m??k.showCardPage,children:e("div",{className:`${a} grid gap-[2px] ${te} bg-[var(--catalog-grid-bg)] ${l}`,style:ie("2px"),children:t.map((g,w)=>e(oe,{wheel:g,variant:"catalog"},`${g.slug}-${w}`))})}),e("div",{className:"mt-10 flex",children:e(de,{href:n.href,label:n.label})})]})}export{Se as RelatedProductsBody,_e as default,be as supportedKinds};
1
+ "use client";import{jsx as e,jsxs as O}from"react/jsx-runtime";import A from"../SectionBand.js";import{GRID_CARD_SHOW as k}from"../../lib/sections/card-show-defaults.js";import{useEffect as W,useId as V,useState as X}from"react";import{resolveCardImageBackground as Z,THEME_CARD_IMAGE_BG as q}from"efficient-web-builder/format/lib/content/card-image-background";import{cardImageShapeTokens as B}from"efficient-web-builder/format/lib/content/card-image-shape";import{DEFAULT_COVER_INDEX as J}from"../../lib/wheels/cover-rendering.js";import{DEFAULT_CARD_INDEX_FORMAT as Q,DEFAULT_CARD_OUTLINE as Y,cardIndexCss as ee}from"efficient-web-builder/format/lib/sections/product-card-style";import re from"../CompatibleTyres.js";import oe from"../ProductCard.js";import{CARD_ROWS_GRID_CLASS as te,cardRowsGridStyle as ie}from"../WheelCardFrame.js";import{ProductCardChromeProvider as se}from"../ProductCardChrome.js";import{gridClassImageSizes as ne}from"../../lib/sections/card-image-sizes.js";import{fillRowCss as ae}from"../../lib/sections/fill-row.js";import le from"efficient-web-builder/render/components/SectionHeader";import de from"../ViewMoreLink.js";import{useSiteMenuLinks as ce}from"../catalog/SiteMenuLinks.js";import{renderGold as F,renderHeadline as me}from"efficient-web-builder/render/components/goldPhrases";import pe from"./KindGate.js";import{loadProductCatalog as ue}from"../useProductCatalog.js";import{PLP_KINDS as fe}from"../../lib/catalog/plp-item.js";import{relatedCardCount as he,relatedViewMore as ge}from"../../lib/catalog/related-cards.js";import{DEFAULT_RELATIONSHIP as xe,relationshipApplies as Ce,relationshipByKey as ye}from"../../lib/catalog/relationships.js";import{useCurrentProduct as we}from"../../lib/document/current-product.js";import{PLACEHOLDER_RELATED as H}from"../../lib/wheels/placeholder-wheel.js";import{say as T}from"efficient-web-builder/format/lib/editor-words";const G={label:"text-[length:var(--size-label,13px)]"},be=fe,$={2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1",4:"grid-cols-4 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1"};function _e(r){return e(pe,{kinds:be,type:"RelatedProducts",editing:r.editing,children:e(Se,{...r})})}function Se({num:r,title:t,description:c,columns:n=3,cardCount:_,relationship:S=xe,footnote:E,footnoteLinkText:R,footnoteLinkHref:D,editing:o=!1,omitHead:x=!1,cardImage:i,outline:m,indexBadge:p,showBadge:C,showCardPrice:y,showCardFinishes:a,showCardSizes:l,showCardBuy:u,showCardPage:f,coverIndex:h,imageBackground:g,spinOnHover:w}){const d=we(),U=ce(),I=he(_),[j,N]=X([]);W(()=>{if(d||!o)return;let v=!1;return ue().then(M=>{const K=M.length>0?M:H;v||N(K)}).catch(()=>{v||N(H)}),()=>{v=!0}},[d,o]);const s=ye(S);if(!s)return null;const L=ge(s,U),P=x?null:e(le,{num:r?F(r):void 0,title:me(t||s.heading,!1),description:c?F(c):void 0,accent:!0});if(!d)return o?e(z,{header:P,wheels:j.slice(0,I),columns:n,viewMore:L,cardImage:i,outline:m,indexBadge:p,showBadge:C,showCardPrice:y,showCardFinishes:a,showCardSizes:l,showCardBuy:u,showCardPage:f,coverIndex:h,imageBackground:g,spinOnHover:w}):null;if(!Ce(s,d.product.kind))return o?e(A,{className:"border-b border-line py-14 max-[1100px]:py-10",style:B(i),children:e("p",{className:`font-mono ${G.label} uppercase tracking-[0.18em] text-fg-dim`,children:T("“{relationship}” does not apply to this product. It is hidden on the live page.",{relationship:T(s.label)})})}):null;const b=s.resolve(d.product,d.relatedWheels);return b.kind==="tyre"?e(re,{omitHead:x,columns:n,cardImage:i,outline:m,indexBadge:p,num:r,title:t||s.heading,description:c,tyres:[...b.tyres].slice(0,I),footnote:E,footnoteLinkText:R,footnoteLinkHref:D,viewMore:L,editing:o}):b.wheels.length===0?o?O(A,{className:"border-b border-line py-[120px] max-[1100px]:py-20",style:B(i),children:[P,e("p",{className:`border-t border-line py-6 font-mono ${G.label} uppercase tracking-[0.18em] text-fg-dim`,children:T("Related products appear here on a product page.")})]}):null:e(z,{header:P,wheels:[...b.wheels].slice(0,I),columns:n,viewMore:L,cardImage:i,outline:m,indexBadge:p,showBadge:C,showCardPrice:y,showCardFinishes:a,showCardSizes:l,showCardBuy:u,showCardPage:f,coverIndex:h,imageBackground:g,spinOnHover:w})}function z({header:r,wheels:t,columns:c,viewMore:n,cardImage:_,outline:S,indexBadge:E,showBadge:R,showCardPrice:D,showCardFinishes:o,showCardSizes:x,showCardBuy:i,showCardPage:m,coverIndex:p,imageBackground:C,spinOnHover:y}){const a=`rp-${V().replace(/:/g,"")}`;if(t.length===0)return null;const l=$[Math.min(4,Math.max(2,c))]??$[3],u=E??Q,f=ee(a,u),h=ae(a,l,{cards:t.length});return O(A,{className:"border-b border-line py-[120px] max-[1100px]:py-20",style:B(_),children:[f&&e("style",{children:f}),h&&e("style",{children:h}),r,e(se,{imageSizes:ne(l,t.length),imageBackgroundFill:Z(C,q),spinOnHover:y??!0,coverIndex:p??J,outline:S??Y,indexBadge:u,showBadge:R??!0,showCardPrice:D??!0,showCardFinishes:o??!0,showCardSizes:x??k.showCardSizes,showCardBuy:i??k.showCardBuy,showCardPage:m??k.showCardPage,children:e("div",{className:`${a} grid gap-[2px] ${te} bg-[var(--catalog-grid-bg)] ${l}`,style:ie("2px"),children:t.map((g,w)=>e(oe,{wheel:g,variant:"catalog"},`${g.slug}-${w}`))})}),e("div",{className:"mt-10 flex",children:e(de,{href:n.href,label:n.label})})]})}export{Se as RelatedProductsBody,_e as default,be as supportedKinds};
@@ -1 +1 @@
1
- "use client";import{jsx as c}from"react/jsx-runtime";import h from"../SpecTable.js";import v from"./KindGate.js";import{useEuTyreLabels as A}from"../useEuTyreLabels.js";import{buildSpecSheet as E,sourceFromWheel as P}from"../../lib/wheels/spec-sheet.js";import{buildTyreSpecSheet as k}from"../../lib/tyres/spec-sheet.js";import{partVariant as L}from"../../lib/catalog/from-wheel.js";import{useCurrentProduct as V}from"../../lib/puck/current-product.js";import{applySpecAnswers as b}from"../../lib/content/field-usage.js";import{useSampleProduct as _}from"./useSampleProduct.js";const j=["alloy-wheel","tyre"],G=[],I=[];function K(n,r,s){const i=n.variants??[];return(r?i.find(t=>t.sku===r):void 0)??(s?i.find(t=>t.size===s):void 0)??i[0]??null}function M(n){return c(v,{kinds:j,type:"SpecTable",editing:n.editing,children:c(N,{...n})})}function N({num:n,title:r,description:s,showDiagram:i=!0,editing:t=!1,nodeId:d,omitHead:u=!1}){const e=V(),w=_(t&&!e),a=e?.product??w,l=a?.kind==="tyre"?a.source:null,y=A(l?.variants??G),p=e?.fieldUsage??I;if(l){const f=K(l,e?.selection.part?.id,e?.selection.shown.size),g=y.find(z=>z.size===f?.size)??null,x=k({brand:l.brand,variant:f,euLabel:g});return c(h,{capped:!1,num:n,title:r,description:s,rows:b(x.rows,p),diagram:null,editing:t,nodeId:d,omitHead:u})}const o=a?.kind==="alloy-wheel"?a.source:null,S=e?e.selection.shown.finish:o?.finishes[0]?.name,T=e&&o?L(o,e.selection.part)?.size??void 0:void 0,m=o?E(P(o),S,T):{rows:[],diagram:null};return c(h,{capped:!1,num:n,title:r,description:s,rows:b(m.rows,p),diagram:i?m.diagram:null,editing:t,nodeId:d,omitHead:u})}export{M as default,j as supportedKinds};
1
+ "use client";import{jsx as c}from"react/jsx-runtime";import h from"../SpecTable.js";import v from"./KindGate.js";import{useEuTyreLabels as A}from"../useEuTyreLabels.js";import{buildSpecSheet as E,sourceFromWheel as P}from"../../lib/wheels/spec-sheet.js";import{buildTyreSpecSheet as k}from"../../lib/tyres/spec-sheet.js";import{partVariant as L}from"../../lib/catalog/from-wheel.js";import{useCurrentProduct as V}from"../../lib/document/current-product.js";import{applySpecAnswers as b}from"../../lib/content/field-usage.js";import{useSampleProduct as _}from"./useSampleProduct.js";const j=["alloy-wheel","tyre"],G=[],I=[];function K(n,r,s){const i=n.variants??[];return(r?i.find(t=>t.sku===r):void 0)??(s?i.find(t=>t.size===s):void 0)??i[0]??null}function M(n){return c(v,{kinds:j,type:"SpecTable",editing:n.editing,children:c(N,{...n})})}function N({num:n,title:r,description:s,showDiagram:i=!0,editing:t=!1,nodeId:d,omitHead:u=!1}){const e=V(),w=_(t&&!e),a=e?.product??w,l=a?.kind==="tyre"?a.source:null,y=A(l?.variants??G),p=e?.fieldUsage??I;if(l){const f=K(l,e?.selection.part?.id,e?.selection.shown.size),g=y.find(z=>z.size===f?.size)??null,x=k({brand:l.brand,variant:f,euLabel:g});return c(h,{capped:!1,num:n,title:r,description:s,rows:b(x.rows,p),diagram:null,editing:t,nodeId:d,omitHead:u})}const o=a?.kind==="alloy-wheel"?a.source:null,S=e?e.selection.shown.finish:o?.finishes[0]?.name,T=e&&o?L(o,e.selection.part)?.size??void 0:void 0,m=o?E(P(o),S,T):{rows:[],diagram:null};return c(h,{capped:!1,num:n,title:r,description:s,rows:b(m.rows,p),diagram:i?m.diagram:null,editing:t,nodeId:d,omitHead:u})}export{M as default,j as supportedKinds};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as l}from"react/jsx-runtime";import d from"../SectionBand.js";import f from"efficient-web-builder/render/components/SectionHeader";import T,{BAND_INLINE as y,BAND_OWN_BOX as x,TYRE_FITMENT_DESCRIPTION as h,TYRE_FITMENT_TITLE as N}from"../TyreVehicleFitment.js";import _ from"./KindGate.js";import{useCurrentProduct as g}from"../../lib/puck/current-product.js";import{useSampleProduct as E}from"./useSampleProduct.js";import{say as I}from"efficient-web-builder/format/lib/editor-words";const v=["tyre"];function F(e){return t(_,{kinds:v,type:"TyreFitment",editing:e.editing,children:t(B,{...e})})}function B({num:e,title:i,description:s,escapeText:p,escapeHref:u,omitHead:n=!1,editing:o=!1}){const a=g(),m=E(o&&!a),c=a?.product??m,r=c?.kind==="tyre"?c.source:null;return!r||r.variants.length===0?o?l(d,{className:n?x:y,children:[n?null:t(f,{num:e,title:i||N,description:s||h,accent:!0}),t("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:I("The vehicle question appears here on a tyre product page, with one verdict per size.")})]}):null:t(T,{num:e,title:i||void 0,description:s||void 0,escapeText:p,escapeHref:u,omitHead:n,capped:!1,slug:r.slug,variants:r.variants})}export{F as default,v as supportedKinds};
1
+ "use client";import{jsx as t,jsxs as l}from"react/jsx-runtime";import d from"../SectionBand.js";import f from"efficient-web-builder/render/components/SectionHeader";import T,{BAND_INLINE as y,BAND_OWN_BOX as x,TYRE_FITMENT_DESCRIPTION as h,TYRE_FITMENT_TITLE as N}from"../TyreVehicleFitment.js";import _ from"./KindGate.js";import{useCurrentProduct as g}from"../../lib/document/current-product.js";import{useSampleProduct as E}from"./useSampleProduct.js";import{say as I}from"efficient-web-builder/format/lib/editor-words";const v=["tyre"];function F(e){return t(_,{kinds:v,type:"TyreFitment",editing:e.editing,children:t(B,{...e})})}function B({num:e,title:i,description:s,escapeText:p,escapeHref:u,omitHead:n=!1,editing:o=!1}){const a=g(),m=E(o&&!a),c=a?.product??m,r=c?.kind==="tyre"?c.source:null;return!r||r.variants.length===0?o?l(d,{className:n?x:y,children:[n?null:t(f,{num:e,title:i||N,description:s||h,accent:!0}),t("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:I("The vehicle question appears here on a tyre product page, with one verdict per size.")})]}):null:t(T,{num:e,title:i||void 0,description:s||void 0,escapeText:p,escapeHref:u,omitHead:n,capped:!1,slug:r.slug,variants:r.variants})}export{F as default,v as supportedKinds};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as d}from"react/jsx-runtime";import m from"../SectionBand.js";import b from"../SectionFootnote.js";import h from"efficient-web-builder/render/components/SectionHeader";import S from"../TyreCard.js";import{useCurrency as N}from"../CurrencyContext.js";import{renderGold as l,renderHeadline as z}from"efficient-web-builder/render/components/goldPhrases";import T from"./KindGate.js";import{useCurrentProduct as _}from"../../lib/puck/current-product.js";import{TYRE_ILLUSTRATION_NOTE as k}from"../../lib/wheels/tyre-render.js";import{useSampleProduct as E}from"./useSampleProduct.js";import{say as A}from"efficient-web-builder/format/lib/editor-words";const u="border-b border-line py-[120px] max-[1100px]:py-20",f="border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20",B=[],P=["tyre"];function U(t){return r(T,{kinds:P,type:"TyreSizes",editing:t.editing,children:r(j,{...t})})}function j({num:t,title:s,description:o,editing:i=!1,omitHead:e=!1}){const n=_(),x=E(i&&!n),p=n?.product??x,c=p?.kind==="tyre"?p.source.variants:[],a=e?null:r(h,{num:t?l(t):void 0,title:z(s||"Available *sizes.*",!1),description:l(o||"Every size this tyre is made in, with its own price and stock."),accent:!0});if(c.length===0)return i?d(m,{className:e?f:u,children:[a,r("p",{className:"border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:A("This product’s sizes appear here on a product page.")})]}):null;const y=c.some(g=>!g.image);return d(m,{className:e?f:u,children:[a,r(D,{variants:c,fieldUsage:n?.fieldUsage??B}),r(b,{text:y?k:""})]})}function D({variants:t,fieldUsage:s}){const{currency:o,formatPrice:i}=N();return r("div",{className:"grid grid-cols-3 gap-2 max-[1100px]:grid-cols-2 max-[720px]:grid-cols-1",children:t.map(e=>r(S,{fieldUsage:s,size:e.size,specs:e.specs,prices:e.prices,image:e.image,inStock:e.inStock,currency:o,formatPrice:i},e.sku))})}export{U as default,P as supportedKinds};
1
+ "use client";import{jsx as r,jsxs as d}from"react/jsx-runtime";import m from"../SectionBand.js";import b from"../SectionFootnote.js";import h from"efficient-web-builder/render/components/SectionHeader";import S from"../TyreCard.js";import{useCurrency as N}from"../CurrencyContext.js";import{renderGold as l,renderHeadline as z}from"efficient-web-builder/render/components/goldPhrases";import T from"./KindGate.js";import{useCurrentProduct as _}from"../../lib/document/current-product.js";import{TYRE_ILLUSTRATION_NOTE as k}from"../../lib/wheels/tyre-render.js";import{useSampleProduct as E}from"./useSampleProduct.js";import{say as A}from"efficient-web-builder/format/lib/editor-words";const u="border-b border-line py-[120px] max-[1100px]:py-20",f="border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20",B=[],P=["tyre"];function U(t){return r(T,{kinds:P,type:"TyreSizes",editing:t.editing,children:r(j,{...t})})}function j({num:t,title:s,description:o,editing:i=!1,omitHead:e=!1}){const n=_(),x=E(i&&!n),p=n?.product??x,c=p?.kind==="tyre"?p.source.variants:[],a=e?null:r(h,{num:t?l(t):void 0,title:z(s||"Available *sizes.*",!1),description:l(o||"Every size this tyre is made in, with its own price and stock."),accent:!0});if(c.length===0)return i?d(m,{className:e?f:u,children:[a,r("p",{className:"border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:A("This product’s sizes appear here on a product page.")})]}):null;const y=c.some(g=>!g.image);return d(m,{className:e?f:u,children:[a,r(D,{variants:c,fieldUsage:n?.fieldUsage??B}),r(b,{text:y?k:""})]})}function D({variants:t,fieldUsage:s}){const{currency:o,formatPrice:i}=N();return r("div",{className:"grid grid-cols-3 gap-2 max-[1100px]:grid-cols-2 max-[720px]:grid-cols-1",children:t.map(e=>r(S,{fieldUsage:s,size:e.size,specs:e.specs,prices:e.prices,image:e.image,inStock:e.inStock,currency:o,formatPrice:i},e.sku))})}export{U as default,P as supportedKinds};
@@ -1 +1 @@
1
- "use client";import{jsx as m}from"react/jsx-runtime";import e from"./DynamicFitmentTable.js";import a from"../FitmentTable.js";import{useCurrentProduct as f}from"../../lib/puck/current-product.js";import{isEditorOnDynamicPage as s}from"efficient-web-builder/format/lib/puck/editor-page-context";import{fitmentTableIsDynamic as c}from"../../lib/puck/fitment-table-dynamic.js";import{getFitments as l}from"../../lib/wheels/fitments.js";function p({dynamic:r,wheel:t,omitHead:i=!1,...o}){const n=f()!==null||!!o.editing&&s();return c({dynamic:r,wheel:t},n)?m(e,{...o,omitHead:i}):m(a,{...o,omitHead:i,rows:l(typeof t=="string"?t:"")})}export{p as default};
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import e from"./DynamicFitmentTable.js";import a from"../FitmentTable.js";import{useCurrentProduct as f}from"../../lib/document/current-product.js";import{isEditorOnDynamicPage as s}from"efficient-web-builder/format/lib/document/editor-page-context";import{fitmentTableIsDynamic as c}from"../../lib/document/fitment-table-dynamic.js";import{getFitments as l}from"../../lib/wheels/fitments.js";function p({dynamic:r,wheel:t,omitHead:i=!1,...o}){const n=f()!==null||!!o.editing&&s();return c({dynamic:r,wheel:t},n)?m(e,{...o,omitHead:i}):m(a,{...o,omitHead:i,rows:l(typeof t=="string"?t:"")})}export{p as default};
@@ -1 +1 @@
1
- "use client";import{Fragment as a,jsx as n}from"react/jsx-runtime";import l from"../SectionBand.js";import{SECTION_LABELS as c}from"efficient-web-builder/format/lib/puck/section-catalog";import{useCurrentProduct as d}from"../../lib/puck/current-product.js";import{PLP_KIND_LABELS as m}from"../../lib/catalog/plp-item.js";import{say as r}from"efficient-web-builder/format/lib/editor-words";function u({kinds:e,type:o,editing:i=!1,children:s}){const t=d();return!t||e.includes(t.product.kind)?n(a,{children:s}):i?n(l,{className:"border-b border-line py-14 max-[1100px]:py-10",children:n("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:r("{section} does not apply to {kind}. It is hidden on the live page.",{section:r(c[o]??o),kind:p(t.product.kind)})})}):null}function p(e){switch(e){case"alloy-wheel":return r("Alloy wheels");case"tyre":return r("Tyres");default:return m[e]}}export{u as default};
1
+ "use client";import{Fragment as a,jsx as n}from"react/jsx-runtime";import l from"../SectionBand.js";import{SECTION_LABELS as c}from"efficient-web-builder/format/lib/document/section-catalog";import{useCurrentProduct as d}from"../../lib/document/current-product.js";import{PLP_KIND_LABELS as m}from"../../lib/catalog/plp-item.js";import{say as r}from"efficient-web-builder/format/lib/editor-words";function u({kinds:e,type:o,editing:i=!1,children:s}){const t=d();return!t||e.includes(t.product.kind)?n(a,{children:s}):i?n(l,{className:"border-b border-line py-14 max-[1100px]:py-10",children:n("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:r("{section} does not apply to {kind}. It is hidden on the live page.",{section:r(c[o]??o),kind:p(t.product.kind)})})}):null}function p(e){switch(e){case"alloy-wheel":return r("Alloy wheels");case"tyre":return r("Tyres");default:return m[e]}}export{u as default};
@@ -4,9 +4,10 @@ export interface GalleryPicture {
4
4
  video?: string;
5
5
  }
6
6
  export declare function pictureLabel(picture: GalleryPicture, name: string): string;
7
- export default function RecordPhotoGallery({ pictures, name, editing, fit, }: {
7
+ export default function RecordPhotoGallery({ pictures, name, editing, fit, across, }: {
8
8
  pictures: readonly GalleryPicture[];
9
- fit?: "section" | "column";
9
+ fit?: "section" | "column" | "tiles";
10
+ across?: 3 | 4;
10
11
  name: string;
11
12
  editing?: boolean;
12
13
  }): import("react").JSX.Element | null;
@@ -1 +1 @@
1
- "use client";import{jsx as t,Fragment as b,jsxs as c}from"react/jsx-runtime";import{useCallback as C,useRef as I,useState as N}from"react";import{sizedImage as M}from"efficient-web-builder/format/lib/sized-image";import P from"efficient-web-builder/render/components/Placeholder";import S,{LightboxClose as A}from"../Lightbox.js";import{GALLERY_GRID_ATTR as B}from"../GalleryItem.js";const O="(max-width: 1600px) 100vw, 1600px",U="(max-width: 1100px) 100vw, 50vw",z="(max-width: 800px) 30vw, 200px",R="100vw";function h(r,o){return r.video?o?`Play video of ${o}`:"Play video":o?`Open photo of ${o}`:"Open photo"}function T({small:r=!1}){return t("span",{"aria-hidden":!0,"data-play-badge":"",className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:t("span",{className:`flex items-center justify-center rounded-full bg-bg/75 text-fg ${r?"h-8 w-8 text-[length:12px]":"h-16 w-16 text-[length:22px]"}`,children:"▶"})})}const D="relative block w-full overflow-hidden bg-surface-2",G="block h-[min(78vh,820px)] w-full object-cover max-[800px]:h-[min(70vh,560px)]",H="block aspect-[4/5] max-h-[80vh] w-full object-cover",F="grid grid-cols-4 gap-2",Z="relative block aspect-square w-full overflow-hidden bg-surface-2",W="block h-full w-full object-cover",X="grid grid-cols-6 gap-2 max-[800px]:grid-cols-4",q="cursor-pointer text-left focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",_="absolute top-1/2 z-[2] flex h-14 w-14 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,22px)] text-fg-dim transition-colors hover:border-accent hover:text-accent max-[700px]:h-11 max-[700px]:w-11";function Y({pictures:r,name:o,editing:p=!1,fit:$="section"}){const[j,m]=N(!1),[i,u]=N(0),d=I(null),E=C(e=>{e?d.current=e:(d.current?.pause(),d.current=null)},[]),l=r.length,v=$==="column";if(l===0)return null;const g=()=>u(e=>(e-1+l)%l),w=()=>u(e=>(e+1)%l),L=e=>{u(e),m(!0)},n=r[Math.min(i,l-1)],f=(e,a,s,x)=>e.url?t("span",{className:`${s} relative`,children:t(P,{label:e.alt||o||"photo",src:e.url,alt:e.alt||o,sizes:a,objectFit:"cover",showBackground:!1})}):t("span",{"aria-hidden":!0,className:`${s} bg-surface-2`}),y=(e,a,s)=>{const x=c(b,{children:[s?v?f(e,U,H,1200):f(e,O,G,1600):f(e,z,W,400),e.video&&t(T,{small:!s})]}),k=s?D:Z;return p?t("div",{className:k,children:x}):t("button",{type:"button","aria-label":h(e,o),onClick:()=>L(a),className:`${k} ${q}`,children:x})};return c(b,{children:[c("div",{[B]:"","data-record-gallery":"",className:"flex flex-col gap-2",children:[y(r[0],0,!0),l>1&&t("ul",{className:v?F:X,children:r.slice(1).map((e,a)=>t("li",{children:y(e,a+1,!1)},`${e.url}-${a+1}`))})]}),!p&&t(S,{open:j,onClose:()=>m(!1),label:h(n,o),onPrev:l>1?g:void 0,onNext:l>1?w:void 0,className:"flex items-center justify-center p-6 backdrop-blur-[8px] max-[700px]:p-3",style:{background:"color-mix(in oklab, var(--bg) 86%, transparent)"},children:c("div",{onClick:e=>e.stopPropagation(),className:"relative flex h-full w-full items-center justify-center",children:[t(A,{className:"absolute right-0 top-0 z-[3] flex h-12 w-12 cursor-pointer items-center justify-center border border-line font-mono text-[length:var(--size-label,18px)] text-fg-dim transition-colors hover:border-accent hover:text-fg",style:{background:"color-mix(in oklab, var(--bg) 70%, transparent)"},children:"✕"}),n.video?t("video",{ref:E,controls:!0,playsInline:!0,preload:"metadata",poster:n.url,src:n.video,"aria-label":h(n,o),className:"block max-h-[calc(100vh-120px)] max-w-full bg-bg"},`video-${i}`):t("img",{...M(n.url,{fallbackWidth:1600}),sizes:R,alt:`${n.alt||o||"Photo"} — ${i+1} of ${l}`,className:"block max-h-[calc(100vh-120px)] max-w-full object-contain"},`photo-${i}`),l>1&&c(b,{children:[t("button",{type:"button","aria-label":"Previous photo",onClick:g,className:`${_} left-0`,children:"◁"}),t("button",{type:"button","aria-label":"Next photo",onClick:w,className:`${_} right-0`,children:"▷"}),c("span",{"data-gallery-counter":"",className:"absolute bottom-0 left-1/2 -translate-x-1/2 border border-fg-dim/30 bg-overlay-scrim/50 px-4 py-1.5 font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.22em] text-fg-dim backdrop-blur-[4px]",children:[i+1," / ",l]})]})]})})]})}export{Y as default,h as pictureLabel};
1
+ "use client";import{jsx as t,Fragment as p,jsxs as c}from"react/jsx-runtime";import{useCallback as M,useRef as O,useState as E}from"react";import{sizedImage as P}from"efficient-web-builder/format/lib/sized-image";import A from"efficient-web-builder/render/components/Placeholder";import T,{LightboxClose as U}from"../Lightbox.js";import{GALLERY_GRID_ATTR as $}from"../GalleryItem.js";const z="(max-width: 1600px) 100vw, 1600px",R="(max-width: 1100px) 100vw, 50vw",D="(max-width: 800px) 30vw, 200px",G="100vw";function m(r,l){return r.video?l?`Play video of ${l}`:"Play video":l?`Open photo of ${l}`:"Open photo"}function H({small:r=!1}){return t("span",{"aria-hidden":!0,"data-play-badge":"",className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:t("span",{className:`flex items-center justify-center rounded-full bg-bg/75 text-fg ${r?"h-8 w-8 text-[length:12px]":"h-16 w-16 text-[length:22px]"}`,children:"▶"})})}const Z="relative block w-full overflow-hidden bg-surface-2",F="block h-[min(78vh,820px)] w-full object-cover max-[800px]:h-[min(70vh,560px)]",W="block aspect-[4/5] max-h-[80vh] w-full object-cover",X="grid grid-cols-4 gap-2",q="relative block aspect-square w-full overflow-hidden bg-surface-2",L="block h-full w-full object-cover",Y="grid grid-cols-6 gap-2 max-[800px]:grid-cols-4",J={3:"grid grid-cols-3 gap-2 max-[800px]:grid-cols-2",4:"grid grid-cols-4 gap-2 max-[800px]:grid-cols-2"},K="relative block aspect-[4/5] w-full overflow-hidden bg-surface-2",Q="(max-width: 800px) 50vw, 25vw",V="cursor-pointer text-left focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",I="absolute top-1/2 z-[2] flex h-14 w-14 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,22px)] text-fg-dim transition-colors hover:border-accent hover:text-accent max-[700px]:h-11 max-[700px]:w-11";function ee({pictures:r,name:l,editing:g=!1,fit:v="section",across:j=4}){const[S,w]=E(!1),[i,f]=E(0),x=O(null),B=M(e=>{e?x.current=e:(x.current?.pause(),x.current=null)},[]),o=r.length,y=v==="column";if(o===0)return null;const k=()=>f(e=>(e-1+o)%o),N=()=>f(e=>(e+1)%o),C=e=>{f(e),w(!0)},n=r[Math.min(i,o-1)],d=(e,a,s,h)=>e.url?t("span",{className:`${s} relative`,children:t(A,{label:e.alt||l||"photo",src:e.url,alt:e.alt||l,sizes:a,objectFit:"cover",showBackground:!1})}):t("span",{"aria-hidden":!0,className:`${s} bg-surface-2`}),u=v==="tiles",b=(e,a,s)=>{const h=c(p,{children:[u?d(e,Q,L,800):s?y?d(e,R,W,1200):d(e,z,F,1600):d(e,D,L,400),e.video&&t(H,{small:!s&&!u})]}),_=u?K:s?Z:q;return g?t("div",{className:_,children:h}):t("button",{type:"button","aria-label":m(e,l),onClick:()=>C(a),className:`${_} ${V}`,children:h})};return c(p,{children:[u?t("ul",{[$]:"","data-record-gallery":"tiles",className:J[j===3?3:4],children:r.map((e,a)=>t("li",{children:b(e,a,!1)},`${e.url}-${a}`))}):c("div",{[$]:"","data-record-gallery":"",className:"flex flex-col gap-2",children:[b(r[0],0,!0),o>1&&t("ul",{className:y?X:Y,children:r.slice(1).map((e,a)=>t("li",{children:b(e,a+1,!1)},`${e.url}-${a+1}`))})]}),!g&&t(T,{open:S,onClose:()=>w(!1),label:m(n,l),onPrev:o>1?k:void 0,onNext:o>1?N:void 0,className:"flex items-center justify-center p-6 backdrop-blur-[8px] max-[700px]:p-3",style:{background:"color-mix(in oklab, var(--bg) 86%, transparent)"},children:c("div",{onClick:e=>e.stopPropagation(),className:"relative flex h-full w-full items-center justify-center",children:[t(U,{className:"absolute right-0 top-0 z-[3] flex h-12 w-12 cursor-pointer items-center justify-center border border-line font-mono text-[length:var(--size-label,18px)] text-fg-dim transition-colors hover:border-accent hover:text-fg",style:{background:"color-mix(in oklab, var(--bg) 70%, transparent)"},children:"✕"}),n.video?t("video",{ref:B,controls:!0,playsInline:!0,preload:"metadata",poster:n.url,src:n.video,"aria-label":m(n,l),className:"block max-h-[calc(100vh-120px)] max-w-full bg-bg"},`video-${i}`):t("img",{...P(n.url,{fallbackWidth:1600}),sizes:G,alt:`${n.alt||l||"Photo"} — ${i+1} of ${o}`,className:"block max-h-[calc(100vh-120px)] max-w-full object-contain"},`photo-${i}`),o>1&&c(p,{children:[t("button",{type:"button","aria-label":"Previous photo",onClick:k,className:`${I} left-0`,children:"◁"}),t("button",{type:"button","aria-label":"Next photo",onClick:N,className:`${I} right-0`,children:"▷"}),c("span",{"data-gallery-counter":"",className:"absolute bottom-0 left-1/2 -translate-x-1/2 border border-fg-dim/30 bg-overlay-scrim/50 px-4 py-1.5 font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.22em] text-fg-dim backdrop-blur-[4px]",children:[i+1," / ",o]})]})]})})]})}export{ee as default,m as pictureLabel};
@@ -1 +1 @@
1
- "use client";import{useEffect as s,useState as p}from"react";import{fromTyre as a}from"../../lib/catalog/from-tyre.js";import{fromWheel as u}from"../../lib/catalog/from-wheel.js";import{storefrontAdmin as d}from"../../lib/api/index.js";import{getEditorToken as E}from"efficient-web-builder/render/lib/editor-auth";import{getEditorSiteId as P}from"efficient-web-builder/render/lib/editor-site";import{usePreviewProductSlug as h}from"../../lib/puck/preview-product.js";import{previewSlugFor as S,useCurrentPreviewPick as k}from"../../lib/puck/preview-pick.js";import{useTemplateProductKind as w}from"../../lib/puck/template-product-kind.js";import{PLACEHOLDER_TYRE as L}from"../../lib/tyres/placeholder-tyre.js";import{PLACEHOLDER_WHEEL as g}from"../../lib/wheels/placeholder-wheel.js";let c=null,m=null;const i=new Map;function v(e){const r=E(),t=P();(r!==c||t!==m)&&(c=r,m=t,i.clear());let o=i.get(e);return o||(o=r?d.getWheelDetail(r,e,{siteId:t}).catch(()=>null):Promise.resolve(null),i.set(e,o)),o}function T(e){return e==="tyre"?a(L):u(g)}const W=["alloy-wheel"];function A(e,r){return e?u(e):T(r)}function B(e){const r=S(k(),h()),t=w(),[o,n]=p(null);return s(()=>{if(!e||!r||!W.includes(t)){n(null);return}let l=!1;return v(r).then(f=>{l||n(f)}),()=>{l=!0}},[e,r,t]),e?A(o,t):null}export{W as PREVIEWABLE_KINDS,A as sampleProductFor,B as useSampleProduct};
1
+ "use client";import{useEffect as s,useState as p}from"react";import{fromTyre as a}from"../../lib/catalog/from-tyre.js";import{fromWheel as u}from"../../lib/catalog/from-wheel.js";import{storefrontAdmin as d}from"../../lib/api/index.js";import{getEditorToken as E}from"efficient-web-builder/render/lib/editor-auth";import{getEditorSiteId as P}from"efficient-web-builder/render/lib/editor-site";import{usePreviewProductSlug as h}from"../../lib/document/preview-product.js";import{previewSlugFor as S,useCurrentPreviewPick as k}from"../../lib/document/preview-pick.js";import{useTemplateProductKind as w}from"../../lib/document/template-product-kind.js";import{PLACEHOLDER_TYRE as L}from"../../lib/tyres/placeholder-tyre.js";import{PLACEHOLDER_WHEEL as g}from"../../lib/wheels/placeholder-wheel.js";let c=null,m=null;const i=new Map;function v(e){const r=E(),t=P();(r!==c||t!==m)&&(c=r,m=t,i.clear());let o=i.get(e);return o||(o=r?d.getWheelDetail(r,e,{siteId:t}).catch(()=>null):Promise.resolve(null),i.set(e,o)),o}function T(e){return e==="tyre"?a(L):u(g)}const W=["alloy-wheel"];function A(e,r){return e?u(e):T(r)}function B(e){const r=S(k(),h()),t=w(),[o,n]=p(null);return s(()=>{if(!e||!r||!W.includes(t)){n(null);return}let l=!1;return v(r).then(f=>{l||n(f)}),()=>{l=!0}},[e,r,t]),e?A(o,t):null}export{W as PREVIEWABLE_KINDS,A as sampleProductFor,B as useSampleProduct};
@@ -1 +1 @@
1
- "use client";import{useEffect as l,useLayoutEffect as R,useRef as H,useState as m}from"react";import{HEADER_DRAWN_HEIGHT_VAR as v,HEADER_SET_HEIGHT_VAR as _}from"efficient-web-builder/render/lib/puck/header-clearance";import{fitHeaderToRow as w}from"../lib/header-fit.js";function z({stickyMode:u,heightPx:f}){const s=H(null),[E,b]=m(!1),[p,a]=m(!1);return l(()=>{const e=s.current?.ownerDocument?.defaultView??window,r=f;let n=e.scrollY;function o(){const t=e.scrollY;b(t>10),u==="on_scroll_up"&&(t<=r?a(!1):t>n+4?a(!0):t<n-4&&a(!1)),n=t}return o(),e.addEventListener("scroll",o,{passive:!0}),()=>e.removeEventListener("scroll",o)},[u,f]),l(()=>{u!=="on_scroll_up"&&a(!1)},[u]),l(()=>{const e=s.current?.ownerDocument?.documentElement;e&&e.style.setProperty(_,`${f}px`)},[f]),l(()=>{const e=s.current,r=e?.ownerDocument,n=r?.defaultView;if(!e||!r||!n)return;let o="";const t=d=>{const c=`${Math.round(d)}px`;c!==o&&(o=c,r.documentElement.style.setProperty(v,c),r.body?.style.setProperty(v,c))};if(typeof n.ResizeObserver!="function"){t(e.getBoundingClientRect().height);return}const i=new n.ResizeObserver(d=>{const c=d[0]?.borderBoxSize?.[0];t(c?c.blockSize:e.getBoundingClientRect().height)});return i.observe(e),()=>i.disconnect()},[]),l(()=>{const e=s.current?.ownerDocument?.documentElement;e&&e.setAttribute("data-header-sticky",u)},[u]),R(()=>{s.current&&w(s.current)}),l(()=>{const e=s.current,r=e?.ownerDocument,n=r?.defaultView;if(!e||!r||!n)return;let o=!0;const t=()=>{o&&w(e)};e.addEventListener("load",t,!0),r.fonts?.ready.then(t,()=>{});const i=typeof n.ResizeObserver=="function"?new n.ResizeObserver(t):null;return i?.observe(e),()=>{o=!1,e.removeEventListener("load",t,!0),i?.disconnect()}},[]),{headerRef:s,scrolled:E,navHidden:p}}export{z as useHeaderBar};
1
+ "use client";import{useEffect as l,useLayoutEffect as R,useRef as H,useState as m}from"react";import{HEADER_DRAWN_HEIGHT_VAR as v,HEADER_SET_HEIGHT_VAR as _}from"efficient-web-builder/render/lib/document/header-clearance";import{fitHeaderToRow as w}from"../lib/header-fit.js";function z({stickyMode:u,heightPx:f}){const s=H(null),[E,b]=m(!1),[p,a]=m(!1);return l(()=>{const e=s.current?.ownerDocument?.defaultView??window,r=f;let n=e.scrollY;function o(){const t=e.scrollY;b(t>10),u==="on_scroll_up"&&(t<=r?a(!1):t>n+4?a(!0):t<n-4&&a(!1)),n=t}return o(),e.addEventListener("scroll",o,{passive:!0}),()=>e.removeEventListener("scroll",o)},[u,f]),l(()=>{u!=="on_scroll_up"&&a(!1)},[u]),l(()=>{const e=s.current?.ownerDocument?.documentElement;e&&e.style.setProperty(_,`${f}px`)},[f]),l(()=>{const e=s.current,r=e?.ownerDocument,n=r?.defaultView;if(!e||!r||!n)return;let o="";const t=d=>{const c=`${Math.round(d)}px`;c!==o&&(o=c,r.documentElement.style.setProperty(v,c),r.body?.style.setProperty(v,c))};if(typeof n.ResizeObserver!="function"){t(e.getBoundingClientRect().height);return}const i=new n.ResizeObserver(d=>{const c=d[0]?.borderBoxSize?.[0];t(c?c.blockSize:e.getBoundingClientRect().height)});return i.observe(e),()=>i.disconnect()},[]),l(()=>{const e=s.current?.ownerDocument?.documentElement;e&&e.setAttribute("data-header-sticky",u)},[u]),R(()=>{s.current&&w(s.current)}),l(()=>{const e=s.current,r=e?.ownerDocument,n=r?.defaultView;if(!e||!r||!n)return;let o=!0;const t=()=>{o&&w(e)};e.addEventListener("load",t,!0),r.fonts?.ready.then(t,()=>{});const i=typeof n.ResizeObserver=="function"?new n.ResizeObserver(t):null;return i?.observe(e),()=>{o=!1,e.removeEventListener("load",t,!0),i?.disconnect()}},[]),{headerRef:s,scrolled:E,navHidden:p}}export{z as useHeaderBar};