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
package/dist/links.js CHANGED
@@ -1 +1 @@
1
- var h={bold:{open:"**",close:"**",placeholder:"bold text"},italic:{open:"_",close:"_",placeholder:"italic text"},strike:{open:"~~",close:"~~",placeholder:"struck out"},code:{open:"`",close:"`",placeholder:"code"},highlight:{open:"==",close:"==",placeholder:"highlighted text"},quiet:{open:"^^",close:"^^",placeholder:"quiet text"},underline:{open:"[",close:"]{underline}",placeholder:"underlined text"},sup:{open:"[",close:"]{sup}",placeholder:"superscript"},sub:{open:"[",close:"]{sub}",placeholder:"subscript"}};var ze={bold:h.bold.placeholder,italic:h.italic.placeholder,strike:h.strike.placeholder,code:h.code.placeholder,highlight:h.highlight.placeholder,quiet:h.quiet.placeholder,link:"link text",underline:h.underline.placeholder,sup:h.sup.placeholder,sub:h.sub.placeholder,color:"colored text"};var Q=[{style:"bold",label:"B",name:"Strong",title:"Strong \xB7 **words** \xB7 \u2318B",shortcut:"b"},{style:"italic",label:"I",name:"Italic",title:"Italic \xB7 _words_ \xB7 \u2318I",shortcut:"i"},{style:"strike",label:"S",name:"Strikethrough",title:"Strikethrough \xB7 ~~words~~"},{style:"highlight",label:"\u25C6",name:"Emphasis",title:"Emphasis \xB7 ==words=="},{style:"quiet",label:"a",name:"Quiet",title:"Quiet \xB7 ^^words^^"},{style:"code",label:"\u2039\u203A",name:"Code",title:"Code"},{style:"link",label:"\u{1F517}",name:"Link",title:"Link \xB7 [words](https://\u2026) \xB7 \u2318K",shortcut:"k"},{style:"bullet",label:"\u2022",name:"Bulleted list",title:"Bulleted list"},{style:"number",label:"1.",name:"Numbered list",title:"Numbered list"},{style:"quote",label:"\u275D",name:"Quote",title:"Quote"},{style:"clear",label:"T\xD7",name:"Clear marks",title:"Clear marks \xB7 \u2318\u21E7X",shortcut:"shift+x"}];var x=[{open:"**",close:"**",kind:"bold"},{open:"==",close:"==",kind:"highlight"},{open:"~~",close:"~~",kind:"strike"},{open:"_",close:"_",kind:"italic",wordBoundary:!0},{open:"^^",close:"^^",kind:"quiet"},{open:"@@",close:"@@",kind:"highlight"},{open:"++",close:"++",kind:"bold",wordStart:!0}],X=["highlight","quiet"],Ue=Q.map(e=>e.style).filter(e=>x.some(n=>n.kind===e)).filter(e=>!X.includes(e)),De=[...x,{open:"*",close:"*",kind:"accent"}],$e=[...x,{open:"*",close:"*",kind:"accent"},{open:"#",close:"#",kind:"bold",notBefore:"0123456789"},{open:"[",close:"]",kind:"italic",notBefore:"(",notBeforeBlock:!0}];var Be=["http","https","mailto","tel"];function v(e){if(e===""||/[\s\u0000-\u001f\u007f]/.test(e))return!1;let n=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(e);return!n||Be.includes(n[1].toLowerCase())}var J=["width","profile","rim"];var We=/^\s*(\d{2,3})\s*\/\s*(\d{2,3})\s*[A-Za-z]*\s*(\d{2}(?:\.\d+)?)\s*$/,Ge={width:[100,500],profile:[20,100],rim:[10,30]};function M(e){let n=We.exec(e??"");if(!n)return null;let t={width:Number(n[1]),profile:Number(n[2]),rim:Number(n[3])};return J.every(i=>{let[a,u]=Ge[i];return t[i]>=a&&t[i]<=u})?t:null}function L(e){if(e.width==null)return"";if(e.profile==null)return String(e.width);let n=`${e.width}/${e.profile}`;return e.rim==null?n:`${n} R${e.rim}`}function ee(e){return[L({width:e.width}),L({width:e.width,profile:e.profile}),L(e)]}var k=["alloy-wheel","tyre"],ne=["alloy-wheel"],w={"alloy-wheel":"Alloy wheels",tyre:"Tyres"};var Hn=k.map(e=>({value:e,label:w[e]}));function z(e){return e==null?[...ne]:Array.isArray(e)?k.filter(n=>e.includes(n)):[...ne]}var m=e=>e;function f(e){return m(e).kind==="tyre"?"tyre":"alloy-wheel"}function U(e){return m(e).brand??""}function te(e){return m(e).prices??void 0}function re(e){return m(e).inStock!==!1}function ie(e){let n=m(e),t=f(e)==="tyre"?n.rimDiameters:n.sizes;return Array.isArray(t)?t.filter(r=>typeof r=="number"&&Number.isFinite(r)):[]}function D(e){return f(e)==="tyre"?[]:(m(e).finishes??[]).filter(n=>typeof n?.family=="string").map(n=>({family:n.family,color:n.color??null}))}function oe(e){return D(e).map(n=>n.family)}function le(e){if(f(e)==="tyre")return[];let n=m(e),t=n.categories;return t&&t.length>0?t:n.process?[n.process]:[]}function se(e){return f(e)==="tyre"?[]:m(e).spec?.pcds??[]}function ae(e){return f(e)!=="tyre"?[]:m(e).tyreTypes??[]}function ue(e){return f(e)!=="tyre"?[]:m(e).speedRatings??[]}function ce(e){if(f(e)!=="tyre")return[];let n=m(e).sizes;return Array.isArray(n)?n.map(t=>M(typeof t=="string"?t:null)).filter(t=>t!==null):[]}var pe=null;function de(e,n){return n?e.replace(/\{([A-Za-z][A-Za-z0-9_]*)\}/g,(t,r)=>Object.prototype.hasOwnProperty.call(n,r)?String(n[r]):t):e}function y(e,n){let t=pe?pe[e]:void 0;if(typeof t=="function"){try{let r=t(n??{});if(typeof r=="string"&&r)return r}catch{}return de(e,n)}return de(typeof t=="string"&&t?t:e,n)}var fe="homepage";function me(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}var F=[{value:"page",label:"Page"},{value:"anchor",label:"Anchor"},{value:"blog",label:"Blog post",needs:"service"},{value:"product",label:"Product",needs:"commerce"},{value:"popup",label:"Popup"},{value:"custom",label:"Custom URL"}];function T(e){return e.offersCommerce&&e.offersService?F:F.filter(n=>!n.needs||(n.needs==="commerce"?e.offersCommerce:e.offersService))}var $="#popup:";function ge(e){return`${$}${e}`}function he(e){return e.startsWith($)&&e.slice($.length).trim()||null}function P(e){return e===fe?"/":`/${e}`}function _(e){return`/journal/${e}`}function A(e){return`/wheels/${e}`}function R(e,n){return`${P(e)}#${n}`}function B(e){return me(e)}function Ye(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}function E(...e){let n=new Set,t=[];for(let r of e)for(let i of r?.content??[]){let a=Ye(i?.props?.anchor);if(!a)continue;let u=B(a);!u||n.has(u)||(n.add(u),t.push({slug:u,name:a}))}return t}function ye(e){return/^\/wheels\/[^/?#]+(?:[?#].*)?$/.test(e)}var qe=()=>({choosePage:y("Choose a page"),chooseSection:y("Choose a section"),noSections:y("No section anchors yet"),sectionHint:y("Jumps to a section on that page."),choosePost:y("Choose a post"),chooseProduct:y("Choose a product"),choosePopup:y("Choose a popup")});function I(e,n,t){if(!e)return"page";if(he(e))return"popup";if(e.startsWith("/journal/"))return"blog";if(ye(e))return"product";if(e.includes("#")){let r=e.slice(0,e.indexOf("#"));if(r===""||r==="/"||n.includes(r))return"anchor"}return e==="/"||n.includes(e)||t&&t.listingPaths.includes(t.targetOf(e))?"page":"custom"}function Pe(e,n){let t=qe(),r=e.pages.map(l=>({value:P(l.slug),label:l.title})),i=n?.pageOptions?n.pageOptions(r):r,a=i.map(l=>l.value),u=e.pages.map(l=>({label:l.title,options:E(...l.docs).map(c=>({value:R(l.slug,c.slug),label:c.name}))})).filter(l=>l.options.length>0),p=l=>{switch(l){case"page":return{type:"select",options:i,placeholder:t.choosePage};case"anchor":return{type:"groups",groups:u,placeholder:u.length?t.chooseSection:t.noSections};case"blog":return{type:"select",options:e.posts.map(c=>({value:_(c.slug),label:c.title||c.slug})),placeholder:t.choosePost};case"product":return{type:"select",options:e.products.map(c=>({value:c.href,label:c.name||c.href})),placeholder:t.chooseProduct};case"popup":return{type:"select",options:(e.popups??[]).map(c=>({value:ge(c.slug),label:c.title||c.slug})),placeholder:t.choosePopup};case"custom":return{type:"text"}}},s=T(e.offers).map(l=>({value:l.value,label:y(l.label),target:p(l.value),...l.value==="anchor"?{hint:t.sectionHint}:{},...l.value==="blog"||l.value==="product"||l.value==="popup"?{hideWhenEmpty:!0}:{}}));if(!n)return{kinds:s,rules:{kindOf:l=>I(l,a),targetOf:l=>l,readFilter:()=>null,withFilter:l=>l}};let o=l=>{let c=n.withFilter(l,null);return n.listingPaths.includes(c)?c:l};return{kinds:s,rules:{kindOf:l=>I(l,a,{listingPaths:n.listingPaths,targetOf:o}),targetOf:o,readFilter:n.readFilter,withFilter:n.withFilter},filtersFor:l=>n.listingPaths.includes(l)?n.filtersFor(l):null}}function W(e,n){return e.length===0?e:e.filter(t=>t.kind===void 0||t.kind===n)}function be(e,n){let t=n==="filter"?"filterOrder":"cardOrder",r=new Map;for(let i of e){let a=i[t];if(typeof a!="number"||!Number.isFinite(a))continue;let u=r.get(i.fieldKey);(u===void 0||a<u)&&r.set(i.fieldKey,a)}return i=>i?r.get(i):void 0}function ke(e,n,t,r){let i=new Map;for(let s of t){let o=s[r];typeof o=="number"&&i.set(s.fieldKey,o)}if(i.size===0)return e;let a=[],u=[];e.forEach((s,o)=>{let l=n(s);l&&(a.push(o),u.push({item:s,index:o,order:i.get(l)}))}),u.sort((s,o)=>s.order!==void 0&&o.order!==void 0?s.order-o.order||s.index-o.index:s.order!==void 0?-1:o.order!==void 0?1:s.index-o.index);let p=[...e];return a.forEach((s,o)=>{p[s]=u[o].item}),p.every((s,o)=>s===e[o])?e:p}function Se(e){return je(e,"filter")}var He="collection";function G(e,n){return{tyreSizes:{},brands:{"alloy-wheel":"brand",tyre:"brand"},finishes:{"alloy-wheel":"wheel_finish_ref"},diameters:{"alloy-wheel":"diameter",tyre:"rim_diameter"},collections:{"alloy-wheel":He},pcds:{"alloy-wheel":"pcd"},tyreTypes:{tyre:"tire_type"},speedRatings:{tyre:"speed_rating"}}[e]?.[n]}function je(e,n){let t=new Set(e.filter(r=>r[n]===!1).map(r=>r.fieldKey));return r=>!r||!t.has(r)}function Ze(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function xe(e,n){let t=e?.[n];return Ze(t)?t:null}function Le(e,n,t,r){if(t==null&&r==null)return!0;let i=xe(e,n);return!(i===null||t!=null&&i<t||r!=null&&i>r)}var Ve={recommended:"Recommended","price-asc":"Price \xB7 low to high","price-desc":"Price \xB7 high to low",new:"Newest",name:"Name A\u2013Z"},_t=Object.keys(Ve);var we=["tyreSizes","brands","finishes","diameters","collections","pcds","tyreTypes","speedRatings"],Qe={tyreSizes:["tyre"],brands:["alloy-wheel","tyre"],finishes:["alloy-wheel"],diameters:["alloy-wheel","tyre"],collections:["alloy-wheel"],pcds:["alloy-wheel"],tyreTypes:["tyre"],speedRatings:["tyre"]},Xe={diameters:"tyreSizes"};function Je(e){if(e.length===0)return[];let n=we.filter(t=>e.every(r=>Qe[t].includes(r)));return n.filter(t=>{let r=Xe[t];return!r||!n.includes(r)})}function en(e){let n=new Set;for(let t of e)n.add(f(t));return[...n]}var Fe={tyreSizes:[],brands:[],finishes:[],diameters:[],collections:[],pcds:[],tyreTypes:[],speedRatings:[],priceMax:null,inStockOnly:!1,kind:null,sort:"recommended",page:1};function nn(e,n,t,r=null){if(r!=="kind"&&n.kind&&f(e)!==n.kind)return!1;for(let i of we){if(r===i)continue;let a=n[i];if(a.length===0)continue;let u=a.map(String);if(!Te(e,i).some(p=>u.includes(p)))return!1}return!(r!=="price"&&!Le(te(e),t,null,n.priceMax)||r!=="inStock"&&n.inStockOnly&&!re(e))}var tn={tyreSizes:"Size",brands:"Brand",finishes:"Colour",diameters:"Size \xB7 diameter",collections:"Collection",pcds:"PCD \xB7 fitment",tyreTypes:"Tyre type",speedRatings:"Speed rating"};function Te(e,n){switch(n){case"tyreSizes":return[...new Set(ce(e).flatMap(ee))];case"brands":return U(e)?[U(e)]:[];case"finishes":return oe(e);case"diameters":return ie(e).map(String);case"collections":return le(e);case"pcds":return se(e);case"tyreTypes":return ae(e);case"speedRatings":return ue(e)}}function rn(e){let n=new Map;for(let t of e)for(let r of D(t))r.color&&!n.has(r.family)&&n.set(r.family,r.color);return n}function _e(e,n,t,r=en(e),i=[]){let a=o=>ln(o,r,i),u=rn(e),p=Je(r).filter(o=>o!=="tyreSizes").filter(a).map(o=>{let l=n[o].map(String),c=new Set,N=new Map,S=new Map;for(let d of e){let b=Te(d,o);for(let g of b)c.add(g);for(let g of new Set(b))S.set(g,(S.get(g)??0)+1);if(nn(d,n,t,o))for(let g of new Set(b))N.set(g,(N.get(g)??0)+1)}let Me=[...c].map(d=>({value:d,label:o==="diameters"?`${d}\u2033`:d,count:N.get(d)??0,checked:l.includes(d),swatch:o==="finishes"?u.get(d)??null:null})).sort((d,b)=>{if(o==="diameters")return Number(d.value)-Number(b.value);let g=(S.get(b.value)??0)-(S.get(d.value)??0);return g!==0?g:d.value.localeCompare(b.value)});return{key:o,label:tn[o],options:Me}}).filter(o=>o.options.length>on),s=[];for(let o of p){let l=sn(o.key,r,i);l!==void 0&&s.push({fieldKey:o.key,filterOrder:l})}return[...ke(p,o=>o.key,s,"filterOrder")]}var on=1;function Ae(e){return e.showCollection===!1?["collections"]:[]}function ln(e,n,t){return n.length===0||t.length===0?!0:n.some(r=>Se(W(t,r))(G(e,r)))}function sn(e,n,t){if(t.length===0)return;let r;for(let i of n){let a=be(W(t,i),"filter")(G(e,i));a!==void 0&&(r===void 0||a<r)&&(r=a)}return r}var Y={tyreSizes:"tyreSize",brands:"brand",finishes:"colour",diameters:"size",collections:"collection",pcds:"pcd",tyreTypes:"tyreType",speedRatings:"speed"},q="type";var Re="AlloyWheelsListing";function Ee(e){return v(e.trim())}var C="/wheels",K="Products";function Ie(e,n){return n>1?`${K} \xB7 ${e}`:K}function H(...e){for(let n of e){let t=(n?.content??[]).find(r=>r?.type===Re);if(t)return t.props??{}}return null}function O(...e){return H(...e)!==null}function Ce(e,n){let t=e.filter(r=>O(...r.docs)).map(r=>P(r.slug));return t.length===0&&n.fallback?[C]:t}var j=[q,...Object.entries(Y).filter(([e])=>e!=="tyreSizes").map(([,e])=>e)];function Ke(e){let n=e.indexOf("#"),t=n===-1?"":e.slice(n),r=n===-1?e:e.slice(0,n),i=r.indexOf("?");return{path:i===-1?r:r.slice(0,i),query:i===-1?"":r.slice(i+1),hash:t}}function an(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return e}}function Oe(e){let n=new URLSearchParams(Ke(e).query);for(let t of j){let r=n.get(t);if(r)return{param:t,value:r}}return null}function Z(e,n){let{path:t,query:r,hash:i}=Ke(e),a=r.split("&").filter(u=>u&&!j.includes(an(u.split("=")[0])));return n?.value&&a.push(`${encodeURIComponent(n.param)}=${encodeURIComponent(n.value)}`),`${t}${a.length?`?${a.join("&")}`:""}${i}`}function Ne(e,n){let t=Z(e,null);return n.includes(t)?t:e}function un(e,n,t=[]){return I(e,n,{listingPaths:t,targetOf:r=>Ne(r,t)})}function cn(e){return Array.isArray(e)?e.filter(n=>typeof n?.kind=="string"&&typeof n.field_key=="string").map(n=>({kind:n.kind,fieldKey:n.field_key,...typeof n.filter=="boolean"?{filter:n.filter}:{},filterOrder:n.filter_order??null})):[]}var ve="Product type",pn="AUD";function V(e,n){let t=n.listing??{},r=z(t.kinds),i=e.filter(s=>r.includes(f(s))),a=Ae(t),u=_e(i,Fe,pn,r,n.fieldUsage).filter(s=>!a.includes(s.key)).map(s=>({param:Y[s.key],label:s.label,values:s.options.filter(o=>!o.value.includes(",")).map(o=>({value:o.value,label:o.label}))})).filter(s=>s.values.length>0),p=k.filter(s=>r.includes(s)&&i.some(o=>f(o)===s));return p.length>1&&u.unshift({param:q,label:ve,values:p.map(s=>({value:s,label:w[s]}))}),u}function dn(e){return n=>{let t=Ce(n,{fallback:e.offersCommerce}),r=n.filter(i=>O(...i.docs)).length;return{listingPaths:t,pageOptions:i=>{let a=i.map(u=>{let p=n.find(s=>P(s.slug)===u.value);return p&&O(...p.docs)?{...u,label:Ie(p.title,r)}:u});return r===0&&e.offersCommerce&&!a.some(u=>u.value===C)&&a.push({value:C,label:K}),a},filtersFor:i=>{if(!t.includes(i))return null;let a=n.find(u=>P(u.slug)===i);return V(e.catalogue,{listing:a?H(...a.docs):null,fieldUsage:e.fieldUsage})},readFilter:Oe,withFilter:Z}}}function fn(e){let n=dn({catalogue:e.catalogue,fieldUsage:e.fieldUsage,offersCommerce:e.offers.offersCommerce})(e.pages),t=Pe({pages:e.pages,posts:e.posts,products:e.products.map(r=>({href:A(r.slug),name:r.name||r.slug})),offers:e.offers},n);return{...t,rules:{...t.rules,isSafe:Ee},filtersFor:t.filtersFor??(()=>null)}}function Yt(e,n){return V(e,n)}export{C as BUILT_IN_LISTING_PATH,F as LINK_KINDS,j as LISTING_FILTER_PARAMS,K as LISTING_PAGE_LABEL,ve as PRODUCT_TYPE_FILTER_LABEL,R as anchorPath,cn as fieldUsageFromAdminRows,un as inferLinkKind,O as isProductListingPage,Ee as isSafeLink,T as linkKindsFor,fn as linkPickerSetup,Yt as listingFilterFields,H as listingNode,Ie as listingPageLabel,Ne as listingTarget,E as pageAnchors,P as pagePath,_ as postPath,Ce as productListingPaths,Oe as readListingFilter,B as slugifyAnchor,A as wheelPath,Z as withListingFilter};
1
+ var h={bold:{open:"**",close:"**",placeholder:"bold text"},italic:{open:"_",close:"_",placeholder:"italic text"},strike:{open:"~~",close:"~~",placeholder:"struck out"},code:{open:"`",close:"`",placeholder:"code"},highlight:{open:"==",close:"==",placeholder:"highlighted text"},quiet:{open:"^^",close:"^^",placeholder:"quiet text"},underline:{open:"[",close:"]{underline}",placeholder:"underlined text"},sup:{open:"[",close:"]{sup}",placeholder:"superscript"},sub:{open:"[",close:"]{sub}",placeholder:"subscript"}};var ze={bold:h.bold.placeholder,italic:h.italic.placeholder,strike:h.strike.placeholder,code:h.code.placeholder,highlight:h.highlight.placeholder,quiet:h.quiet.placeholder,link:"link text",underline:h.underline.placeholder,sup:h.sup.placeholder,sub:h.sub.placeholder,color:"colored text"};var Q=[{style:"bold",label:"B",name:"Strong",title:"Strong \xB7 **words** \xB7 \u2318B",shortcut:"b"},{style:"italic",label:"I",name:"Italic",title:"Italic \xB7 _words_ \xB7 \u2318I",shortcut:"i"},{style:"strike",label:"S",name:"Strikethrough",title:"Strikethrough \xB7 ~~words~~"},{style:"highlight",label:"\u25C6",name:"Emphasis",title:"Emphasis \xB7 ==words=="},{style:"quiet",label:"a",name:"Quiet",title:"Quiet \xB7 ^^words^^"},{style:"code",label:"\u2039\u203A",name:"Code",title:"Code"},{style:"link",label:"\u{1F517}",name:"Link",title:"Link \xB7 [words](https://\u2026) \xB7 \u2318K",shortcut:"k"},{style:"bullet",label:"\u2022",name:"Bulleted list",title:"Bulleted list"},{style:"number",label:"1.",name:"Numbered list",title:"Numbered list"},{style:"quote",label:"\u275D",name:"Quote",title:"Quote"},{style:"clear",label:"T\xD7",name:"Clear marks",title:"Clear marks \xB7 \u2318\u21E7X",shortcut:"shift+x"}];var x=[{open:"**",close:"**",kind:"bold"},{open:"==",close:"==",kind:"highlight"},{open:"~~",close:"~~",kind:"strike"},{open:"_",close:"_",kind:"italic",wordBoundary:!0},{open:"^^",close:"^^",kind:"quiet"},{open:"@@",close:"@@",kind:"highlight"},{open:"++",close:"++",kind:"bold",wordStart:!0}],X=["highlight","quiet"],Ue=Q.map(e=>e.style).filter(e=>x.some(n=>n.kind===e)).filter(e=>!X.includes(e)),De=[...x,{open:"*",close:"*",kind:"accent"}],$e=[...x,{open:"*",close:"*",kind:"accent"},{open:"#",close:"#",kind:"bold",notBefore:"0123456789"},{open:"[",close:"]",kind:"italic",notBefore:"(",notBeforeBlock:!0}];var Be=["http","https","mailto","tel"];function v(e){if(e===""||/[\s\u0000-\u001f\u007f]/.test(e))return!1;let n=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(e);return!n||Be.includes(n[1].toLowerCase())}var J=["width","profile","rim"];var We=/^\s*(\d{2,3})\s*\/\s*(\d{2,3})\s*[A-Za-z]*\s*(\d{2}(?:\.\d+)?)\s*$/,Ge={width:[100,500],profile:[20,100],rim:[10,30]};function M(e){let n=We.exec(e??"");if(!n)return null;let t={width:Number(n[1]),profile:Number(n[2]),rim:Number(n[3])};return J.every(i=>{let[a,u]=Ge[i];return t[i]>=a&&t[i]<=u})?t:null}function L(e){if(e.width==null)return"";if(e.profile==null)return String(e.width);let n=`${e.width}/${e.profile}`;return e.rim==null?n:`${n} R${e.rim}`}function ee(e){return[L({width:e.width}),L({width:e.width,profile:e.profile}),L(e)]}var S=["alloy-wheel","tyre"],ne=["alloy-wheel"],w={"alloy-wheel":"Alloy wheels",tyre:"Tyres"};var Hn=S.map(e=>({value:e,label:w[e]}));function z(e){return e==null?[...ne]:Array.isArray(e)?S.filter(n=>e.includes(n)):[...ne]}var m=e=>e;function f(e){return m(e).kind==="tyre"?"tyre":"alloy-wheel"}function U(e){return m(e).brand??""}function te(e){return m(e).prices??void 0}function re(e){return m(e).inStock!==!1}function ie(e){let n=m(e),t=f(e)==="tyre"?n.rimDiameters:n.sizes;return Array.isArray(t)?t.filter(r=>typeof r=="number"&&Number.isFinite(r)):[]}function D(e){return f(e)==="tyre"?[]:(m(e).finishes??[]).filter(n=>typeof n?.family=="string").map(n=>({family:n.family,color:n.color??null}))}function oe(e){return D(e).map(n=>n.family)}function le(e){if(f(e)==="tyre")return[];let n=m(e),t=n.categories;return t&&t.length>0?t:n.process?[n.process]:[]}function se(e){return f(e)==="tyre"?[]:m(e).spec?.pcds??[]}function ae(e){return f(e)!=="tyre"?[]:m(e).tyreTypes??[]}function ue(e){return f(e)!=="tyre"?[]:m(e).speedRatings??[]}function ce(e){if(f(e)!=="tyre")return[];let n=m(e).sizes;return Array.isArray(n)?n.map(t=>M(typeof t=="string"?t:null)).filter(t=>t!==null):[]}var pe=null;function de(e,n){return n?e.replace(/\{([A-Za-z][A-Za-z0-9_]*)\}/g,(t,r)=>Object.prototype.hasOwnProperty.call(n,r)?String(n[r]):t):e}function y(e,n){let t=pe?pe[e]:void 0;if(typeof t=="function"){try{let r=t(n??{});if(typeof r=="string"&&r)return r}catch{}return de(e,n)}return de(typeof t=="string"&&t?t:e,n)}var fe="homepage";function me(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}var F=[{value:"page",label:"Page"},{value:"anchor",label:"Anchor"},{value:"blog",label:"Blog post",needs:"service"},{value:"product",label:"Product",needs:"commerce"},{value:"popup",label:"Popup"},{value:"custom",label:"Custom URL"}];function T(e){return e.offersCommerce&&e.offersService?F:F.filter(n=>!n.needs||(n.needs==="commerce"?e.offersCommerce:e.offersService))}var $="#popup:";function ge(e){return`${$}${e}`}function he(e){return e.startsWith($)&&e.slice($.length).trim()||null}function P(e){return e===fe?"/":`/${e}`}function _(e){return`/journal/${e}`}function A(e){return`/wheels/${e}`}function R(e,n){return`${P(e)}#${n}`}function B(e){return me(e)}function Ye(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}function E(...e){let n=new Set,t=[];for(let r of e)for(let i of r?.content??[]){let a=Ye(i?.props?.anchor);if(!a)continue;let u=B(a);!u||n.has(u)||(n.add(u),t.push({slug:u,name:a}))}return t}function ye(e){return/^\/wheels\/[^/?#]+(?:[?#].*)?$/.test(e)}var qe=()=>({choosePage:y("Choose a page"),chooseSection:y("Choose a section"),noSections:y("No section anchors yet"),sectionHint:y("Jumps to a section on that page."),choosePost:y("Choose a post"),chooseProduct:y("Choose a product"),choosePopup:y("Choose a popup")});function I(e,n,t){if(!e)return"page";if(he(e))return"popup";if(e.startsWith("/journal/"))return"blog";if(ye(e))return"product";if(e.includes("#")){let r=e.slice(0,e.indexOf("#"));if(r===""||r==="/"||n.includes(r))return"anchor"}return e==="/"||n.includes(e)||t&&t.listingPaths.includes(t.targetOf(e))?"page":"custom"}function Pe(e,n){let t=qe(),r=e.pages.map(l=>({value:P(l.slug),label:l.title})),i=n?.pageOptions?n.pageOptions(r):r,a=i.map(l=>l.value),u=e.pages.map(l=>({label:l.title,options:E(...l.docs).map(c=>({value:R(l.slug,c.slug),label:c.name}))})).filter(l=>l.options.length>0),p=l=>{switch(l){case"page":return{type:"select",options:i,placeholder:t.choosePage};case"anchor":return{type:"groups",groups:u,placeholder:u.length?t.chooseSection:t.noSections};case"blog":return{type:"select",options:e.posts.map(c=>({value:_(c.slug),label:c.title||c.slug})),placeholder:t.choosePost};case"product":return{type:"select",options:e.products.map(c=>({value:c.href,label:c.name||c.href})),placeholder:t.chooseProduct};case"popup":return{type:"select",options:(e.popups??[]).map(c=>({value:ge(c.slug),label:c.title||c.slug})),placeholder:t.choosePopup};case"custom":return{type:"text"}}},s=T(e.offers).map(l=>({value:l.value,label:y(l.label),target:p(l.value),...l.value==="anchor"?{hint:t.sectionHint}:{},...l.value==="blog"||l.value==="product"||l.value==="popup"?{hideWhenEmpty:!0}:{}}));if(!n)return{kinds:s,rules:{kindOf:l=>I(l,a),targetOf:l=>l,readFilter:()=>null,withFilter:l=>l}};let o=l=>{let c=n.withFilter(l,null);return n.listingPaths.includes(c)?c:l};return{kinds:s,rules:{kindOf:l=>I(l,a,{listingPaths:n.listingPaths,targetOf:o}),targetOf:o,readFilter:n.readFilter,withFilter:n.withFilter},filtersFor:l=>n.listingPaths.includes(l)?n.filtersFor(l):null}}function W(e,n){return e.length===0?e:e.filter(t=>t.kind===void 0||t.kind===n)}function be(e,n){let t=n==="filter"?"filterOrder":"cardOrder",r=new Map;for(let i of e){let a=i[t];if(typeof a!="number"||!Number.isFinite(a))continue;let u=r.get(i.fieldKey);(u===void 0||a<u)&&r.set(i.fieldKey,a)}return i=>i?r.get(i):void 0}function Se(e,n,t,r){let i=new Map;for(let s of t){let o=s[r];typeof o=="number"&&i.set(s.fieldKey,o)}if(i.size===0)return e;let a=[],u=[];e.forEach((s,o)=>{let l=n(s);l&&(a.push(o),u.push({item:s,index:o,order:i.get(l)}))}),u.sort((s,o)=>s.order!==void 0&&o.order!==void 0?s.order-o.order||s.index-o.index:s.order!==void 0?-1:o.order!==void 0?1:s.index-o.index);let p=[...e];return a.forEach((s,o)=>{p[s]=u[o].item}),p.every((s,o)=>s===e[o])?e:p}function ke(e){return je(e,"filter")}var He="collection";function G(e,n){return{tyreSizes:{},brands:{"alloy-wheel":"brand",tyre:"brand"},finishes:{"alloy-wheel":"wheel_finish_ref"},diameters:{"alloy-wheel":"diameter",tyre:"rim_diameter"},collections:{"alloy-wheel":He},pcds:{"alloy-wheel":"pcd"},tyreTypes:{tyre:"tire_type"},speedRatings:{tyre:"speed_rating"}}[e]?.[n]}function je(e,n){let t=new Set(e.filter(r=>r[n]===!1).map(r=>r.fieldKey));return r=>!r||!t.has(r)}function Ze(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function xe(e,n){let t=e?.[n];return Ze(t)?t:null}function Le(e,n,t,r){if(t==null&&r==null)return!0;let i=xe(e,n);return!(i===null||t!=null&&i<t||r!=null&&i>r)}var Ve={recommended:"Recommended","price-asc":"Price \xB7 low to high","price-desc":"Price \xB7 high to low",new:"Newest",name:"Name A\u2013Z"},_t=Object.keys(Ve);var we=["tyreSizes","brands","finishes","diameters","collections","pcds","tyreTypes","speedRatings"],Qe={tyreSizes:["tyre"],brands:["alloy-wheel","tyre"],finishes:["alloy-wheel"],diameters:["alloy-wheel","tyre"],collections:["alloy-wheel"],pcds:["alloy-wheel"],tyreTypes:["tyre"],speedRatings:["tyre"]},Xe={diameters:"tyreSizes"};function Je(e){if(e.length===0)return[];let n=we.filter(t=>e.every(r=>Qe[t].includes(r)));return n.filter(t=>{let r=Xe[t];return!r||!n.includes(r)})}function en(e){let n=new Set;for(let t of e)n.add(f(t));return[...n]}var Fe={tyreSizes:[],brands:[],finishes:[],diameters:[],collections:[],pcds:[],tyreTypes:[],speedRatings:[],priceMax:null,inStockOnly:!1,kind:null,sort:"recommended",page:1};function nn(e,n,t,r=null){if(r!=="kind"&&n.kind&&f(e)!==n.kind)return!1;for(let i of we){if(r===i)continue;let a=n[i];if(a.length===0)continue;let u=a.map(String);if(!Te(e,i).some(p=>u.includes(p)))return!1}return!(r!=="price"&&!Le(te(e),t,null,n.priceMax)||r!=="inStock"&&n.inStockOnly&&!re(e))}var tn={tyreSizes:"Size",brands:"Brand",finishes:"Colour",diameters:"Size \xB7 diameter",collections:"Collection",pcds:"PCD \xB7 fitment",tyreTypes:"Tyre type",speedRatings:"Speed rating"};function Te(e,n){switch(n){case"tyreSizes":return[...new Set(ce(e).flatMap(ee))];case"brands":return U(e)?[U(e)]:[];case"finishes":return oe(e);case"diameters":return ie(e).map(String);case"collections":return le(e);case"pcds":return se(e);case"tyreTypes":return ae(e);case"speedRatings":return ue(e)}}function rn(e){let n=new Map;for(let t of e)for(let r of D(t))r.color&&!n.has(r.family)&&n.set(r.family,r.color);return n}function _e(e,n,t,r=en(e),i=[]){let a=o=>ln(o,r,i),u=rn(e),p=Je(r).filter(o=>o!=="tyreSizes").filter(a).map(o=>{let l=n[o].map(String),c=new Set,N=new Map,k=new Map;for(let d of e){let b=Te(d,o);for(let g of b)c.add(g);for(let g of new Set(b))k.set(g,(k.get(g)??0)+1);if(nn(d,n,t,o))for(let g of new Set(b))N.set(g,(N.get(g)??0)+1)}let Me=[...c].map(d=>({value:d,label:o==="diameters"?`${d}\u2033`:d,count:N.get(d)??0,checked:l.includes(d),swatch:o==="finishes"?u.get(d)??null:null})).sort((d,b)=>{if(o==="diameters")return Number(d.value)-Number(b.value);let g=(k.get(b.value)??0)-(k.get(d.value)??0);return g!==0?g:d.value.localeCompare(b.value)});return{key:o,label:tn[o],options:Me}}).filter(o=>o.options.length>on),s=[];for(let o of p){let l=sn(o.key,r,i);l!==void 0&&s.push({fieldKey:o.key,filterOrder:l})}return[...Se(p,o=>o.key,s,"filterOrder")]}var on=1;function Ae(e){return e.showCollection===!1?["collections"]:[]}function ln(e,n,t){return n.length===0||t.length===0?!0:n.some(r=>ke(W(t,r))(G(e,r)))}function sn(e,n,t){if(t.length===0)return;let r;for(let i of n){let a=be(W(t,i),"filter")(G(e,i));a!==void 0&&(r===void 0||a<r)&&(r=a)}return r}var Y={tyreSizes:"tyreSize",brands:"brand",finishes:"colour",diameters:"size",collections:"collection",pcds:"pcd",tyreTypes:"tyreType",speedRatings:"speed"},q="type";var Re="AlloyWheelsListing";function Ee(e){return v(e.trim())}var C="/wheels",K="Products";function Ie(e,n){return n>1?`${K} \xB7 ${e}`:K}function H(...e){for(let n of e){let t=(n?.content??[]).find(r=>r?.type===Re);if(t)return t.props??{}}return null}function O(...e){return H(...e)!==null}function Ce(e,n){let t=e.filter(r=>O(...r.docs)).map(r=>P(r.slug));return t.length===0&&n.fallback?[C]:t}var j=[q,...Object.entries(Y).filter(([e])=>e!=="tyreSizes").map(([,e])=>e)];function Ke(e){let n=e.indexOf("#"),t=n===-1?"":e.slice(n),r=n===-1?e:e.slice(0,n),i=r.indexOf("?");return{path:i===-1?r:r.slice(0,i),query:i===-1?"":r.slice(i+1),hash:t}}function an(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return e}}function Oe(e){let n=new URLSearchParams(Ke(e).query);for(let t of j){let r=n.get(t);if(r)return{param:t,value:r}}return null}function Z(e,n){let{path:t,query:r,hash:i}=Ke(e),a=r.split("&").filter(u=>u&&!j.includes(an(u.split("=")[0])));return n?.value&&a.push(`${encodeURIComponent(n.param)}=${encodeURIComponent(n.value)}`),`${t}${a.length?`?${a.join("&")}`:""}${i}`}function Ne(e,n){let t=Z(e,null);return n.includes(t)?t:e}function un(e,n,t=[]){return I(e,n,{listingPaths:t,targetOf:r=>Ne(r,t)})}function cn(e){return Array.isArray(e)?e.filter(n=>typeof n?.kind=="string"&&typeof n.field_key=="string").map(n=>({kind:n.kind,fieldKey:n.field_key,...typeof n.filter=="boolean"?{filter:n.filter}:{},filterOrder:n.filter_order??null})):[]}var ve="Product type",pn="AUD";function V(e,n){let t=n.listing??{},r=z(t.kinds),i=e.filter(s=>r.includes(f(s))),a=Ae(t),u=_e(i,Fe,pn,r,n.fieldUsage).filter(s=>!a.includes(s.key)).map(s=>({param:Y[s.key],label:s.label,values:s.options.filter(o=>!o.value.includes(",")).map(o=>({value:o.value,label:o.label}))})).filter(s=>s.values.length>0),p=S.filter(s=>r.includes(s)&&i.some(o=>f(o)===s));return p.length>1&&u.unshift({param:q,label:ve,values:p.map(s=>({value:s,label:w[s]}))}),u}function dn(e){return n=>{let t=Ce(n,{fallback:e.offersCommerce}),r=n.filter(i=>O(...i.docs)).length;return{listingPaths:t,pageOptions:i=>{let a=i.map(u=>{let p=n.find(s=>P(s.slug)===u.value);return p&&O(...p.docs)?{...u,label:Ie(p.title,r)}:u});return r===0&&e.offersCommerce&&!a.some(u=>u.value===C)&&a.push({value:C,label:K}),a},filtersFor:i=>{if(!t.includes(i))return null;let a=n.find(u=>P(u.slug)===i);return V(e.catalogue,{listing:a?H(...a.docs):null,fieldUsage:e.fieldUsage})},readFilter:Oe,withFilter:Z}}}function fn(e){let n=dn({catalogue:e.catalogue,fieldUsage:e.fieldUsage,offersCommerce:e.offers.offersCommerce})(e.pages),t=Pe({pages:e.pages,posts:e.posts,products:e.products.map(r=>({href:A(r.slug),name:r.name||r.slug})),offers:e.offers},n);return{...t,rules:{...t.rules,isSafe:Ee},filtersFor:t.filtersFor??(()=>null)}}function Yt(e,n){return V(e,n)}export{C as BUILT_IN_LISTING_PATH,F as LINK_KINDS,j as LISTING_FILTER_PARAMS,K as LISTING_PAGE_LABEL,ve as PRODUCT_TYPE_FILTER_LABEL,R as anchorPath,cn as fieldUsageFromAdminRows,un as inferLinkKind,O as isProductListingPage,Ee as isSafeLink,T as linkKindsFor,fn as linkPickerSetup,Yt as listingFilterFields,H as listingNode,Ie as listingPageLabel,Ne as listingTarget,E as pageAnchors,P as pagePath,_ as postPath,Ce as productListingPaths,Oe as readListingFilter,B as slugifyAnchor,A as wheelPath,Z as withListingFilter};
@@ -197,7 +197,7 @@
197
197
  to the site's built-in next/font face, so an un-themed page is
198
198
  unchanged. The editor's "Fonts" control (Website settings)
199
199
  overrides these tokens on the SITE-WIDE accent carrier — see
200
- fontRoleStyle() in lib/fonts.ts and root.render in lib/puck/config
200
+ fontRoleStyle() in lib/fonts.ts and root.render in lib/document/config
201
201
  — so picking a font re-sets every section AND the header/footer
202
202
  chrome around them without touching the loaded @font-face vars.
203
203
  Published on <main> alone until card 8824, which is why a themed
@@ -336,7 +336,7 @@
336
336
 
337
337
  /* Colour-Theme content text. themeColorStyle() sets --theme-fg on the page
338
338
  CONTENT wrapper (the live <main> in LayoutChrome, the editor preview body in
339
- lib/puck/config) — the merchant's per-site text colour. Mapped onto --fg in
339
+ lib/document/config) — the merchant's per-site text colour. Mapped onto --fg in
340
340
  EVERY mode: a theme is one flat palette (66238), so the preset states one ink
341
341
  and it paints wherever the theme paints.
342
342
 
@@ -743,7 +743,7 @@
743
743
  Corners`): this card's own answer, then the section's, then the site's, then
744
744
  square. `--sf-card-box-radius` is published ONLY by a card that has been given
745
745
  a number of its own, on a `display: contents` carrier the injection pass in
746
- lib/puck/config.tsx wraps it in — so a card nobody has touched declares
746
+ lib/document/config.tsx wraps it in — so a card nobody has touched declares
747
747
  nothing, falls straight through to `--sf-card-radius` and renders exactly as
748
748
  it did before this rule grew a level. lib/content/card-corners.ts says why the
749
749
  card tier needs a name of its own rather than overriding the inherited token.
@@ -900,7 +900,7 @@
900
900
  inline style cannot reach the part's line breaks, so these rules do. The gap
901
901
  goes after each line except the last, list rows too; a blank line keeps its
902
902
  height. The published page gets the same three rules from `paragraphRules`
903
- in lib/puck/part-styles.ts — keep the two the same. A part without the flag
903
+ in lib/document/part-styles.ts — keep the two the same. A part without the flag
904
904
  is untouched. */
905
905
  [data-sf-part-para] br:not(br + br) {
906
906
  display: block;
@@ -931,7 +931,7 @@
931
931
  `--overlay-fg`). `scripts/test-chrome-theme-pair.ts` §6 holds it.
932
932
 
933
933
  AUTO. A page publishes the ink its FIRST section DECLARES it needs, as
934
- `data-lead-ink` on the page body (lib/puck/header-ink, read by both
934
+ `data-lead-ink` on the page body (lib/document/header-ink, read by both
935
935
  StorefrontPageView and the editor preview). Cream over a band the section
936
936
  itself paints cream on — a `dark` or `accent` surface, or a full-bleed hero
937
937
  with its own dark legibility gradient — and nothing at all otherwise, so a
@@ -1022,7 +1022,7 @@ body .sf-site-header[data-header-ink="dark"] {
1022
1022
  @media not all and (min-width: 720px) {
1023
1023
  /* The row, and the rows inside it: one line, each block its own width. A
1024
1024
  block is the row's own child on the site and sits inside the editor's
1025
- frame (`[data-puck-component]`) in the editor, so each rule reads both. */
1025
+ frame (`[data-easel-block]`) in the editor, so each rule reads both. */
1026
1026
  [data-section-group="header"] .flex-row:has([data-menu-row]),
1027
1027
  [data-section-group="header"] .flex-row:has([data-menu-row]) .flex-row {
1028
1028
  flex-direction: row;
@@ -1051,7 +1051,7 @@ body .sf-site-header[data-header-ink="dark"] {
1051
1051
  and in the editor the frame around it, so no gap is left. Only the frame
1052
1052
  whose block IS the tool, never a Box frame that merely holds one. */
1053
1053
  [data-section-group="header"]:has([data-menu-row]) [data-phone-menu-tool],
1054
- [data-section-group="header"]:has([data-menu-row]) [data-puck-component]:has(> * > [data-phone-menu-tool]) {
1054
+ [data-section-group="header"]:has([data-menu-row]) [data-easel-block]:has(> * > [data-phone-menu-tool]) {
1055
1055
  display: none;
1056
1056
  }
1057
1057
  }
@@ -1209,7 +1209,7 @@ body .sf-site-header[data-header-ink="dark"] {
1209
1209
  ever applied to the one-row bar. The logo stays ahead of it where a
1210
1210
  centred logo's Box is opened below. */
1211
1211
  [data-section-group="header"]:not([data-header-menu-row="inline"]) [data-phone-menu-tool="search"] > *,
1212
- [data-section-group="header"]:not([data-header-menu-row="inline"]) [data-puck-component]:has(> * > [data-phone-menu-tool="search"]) {
1212
+ [data-section-group="header"]:not([data-header-menu-row="inline"]) [data-easel-block]:has(> * > [data-phone-menu-tool="search"]) {
1213
1213
  order: -1;
1214
1214
  }
1215
1215
  [data-section-group="header"]:not([data-header-menu-row="inline"]) .flex-row > :is([data-menu-part="lead"], :has([data-menu-part="lead"])) + * {
@@ -1223,7 +1223,7 @@ body .sf-site-header[data-header-ink="dark"] {
1223
1223
 
1224
1224
  /* ─── Header TOP SPACE ────────────────────────────────────────────────
1225
1225
  The page's own "Top space" (Page settings → `Top space`; the resolver is
1226
- lib/puck/header-clearance). A page that takes its own space publishes
1226
+ lib/document/header-clearance). A page that takes its own space publishes
1227
1227
  `data-top-space="own"` on its body, and the bar above it paints a real
1228
1228
  background from the first pixel instead of being see-through.
1229
1229
 
@@ -1295,7 +1295,7 @@ body:has([data-page-width="full"]) footer {
1295
1295
  phone / tablet / desktop split. A class names the tier, never a number:
1296
1296
  `view-tablet:flex` is width ≥ 720, `max-view-tablet:flex` is width < 720, so
1297
1297
  the two halves of a pair always meet. Hand-typed pairs did not: the header's
1298
- `max-[800px]` / `min-[801px]` left exactly 800px — the editor's Tablet view —
1298
+ `max-[800px]` / `min-[801px]` left exactly 800px — The editor's Tablet view —
1299
1299
  with no header at all (duplicate audit 2026-10-23, D01). CSS cannot import
1300
1300
  the constants, so scripts/test-view-tier-breakpoints.ts fails if these two
1301
1301
  lines and easel ever disagree. */
@@ -1418,11 +1418,11 @@ body:has([data-page-width="full"]) footer {
1418
1418
  own min-height may read it. The two were one var until 2026-09-16, and a bar
1419
1419
  that had grown past the slider (a tall logo, or the stacked two-row layout
1420
1420
  between 801px and 1500px) hid the top of the page under itself by the
1421
- difference. See lib/puck/header-clearance.ts.
1421
+ difference. See lib/document/header-clearance.ts.
1422
1422
 
1423
1423
  Default = the historical fixed header height, so the first paint of a site
1424
1424
  whose content fits is byte-identical to what it has always been. Keep it in
1425
- step with HEADER_HEIGHT_PX.default (lib/puck/header-clearance.ts). */
1425
+ step with HEADER_HEIGHT_PX.default (lib/document/header-clearance.ts). */
1426
1426
  :root {
1427
1427
  --sf-header-h: 88px;
1428
1428
  }
@@ -1521,7 +1521,7 @@ body:has([data-page-width="full"]) footer {
1521
1521
  }
1522
1522
  }
1523
1523
 
1524
- /* Section height — the "Height" field on any Puck section (card 66215). The
1524
+ /* Section height — the "Height" field on any the editor section (card 66215). The
1525
1525
  injected pass wraps a section that sets one in this class and publishes the
1526
1526
  length as a custom property; the property is what varies per section, so the
1527
1527
  rule itself lives here once.
@@ -1550,9 +1550,9 @@ body:has([data-page-width="full"]) footer {
1550
1550
  }
1551
1551
  }
1552
1552
 
1553
- /* Section anchors — the "Anchor" field on any Puck section. When set,
1553
+ /* Section anchors — the "Anchor" field on any the editor section. When set,
1554
1554
  the section renders an invisible, zero-height <span id> as its first child
1555
- (see SectionAnchor in lib/puck/config.tsx). `display:block; height:0` makes it
1555
+ (see SectionAnchor in lib/document/config.tsx). `display:block; height:0` makes it
1556
1556
  a real scroll target that adds no layout box; `scroll-margin-top` clears the
1557
1557
  fixed header — now the live --sf-header-h (fallback 88px) — so a
1558
1558
  /<page>#<anchor> deep-link lands with the section below the header, not under
@@ -1564,7 +1564,7 @@ body:has([data-page-width="full"]) footer {
1564
1564
  }
1565
1565
 
1566
1566
  /* Hero slider — never show the horizontal scroll-snap scrollbar. Covers the
1567
- track itself AND any descendant, because in the page-builder Puck wraps the
1567
+ track itself AND any descendant, because in the page-builder the editor wraps the
1568
1568
  slot children, so the actual scroll container can be a nested element the
1569
1569
  utility classes on `.hero-track` don't reach. */
1570
1570
  .hero-track,
@@ -1645,7 +1645,7 @@ body:has([data-page-width="full"]) footer {
1645
1645
  fixed-size boxes squash under pressure they currently resist. A run that is
1646
1646
  NOT a heading is reached by the other half of this fix, which is keyed to
1647
1647
  the thing that actually makes it big: `partStyleDeclarations` in
1648
- `lib/puck/part-styles.ts` writes the same two properties whenever it states
1648
+ `lib/document/part-styles.ts` writes the same two properties whenever it states
1649
1649
  a size. Together they cover both ways a run can outgrow its box.
1650
1650
 
1651
1651
  Layered, like every bare-element rule in this file — so a section that
@@ -2016,7 +2016,7 @@ em.text-accent {
2016
2016
  the design: the hero's height is the merchant's, a phone breaks every stored
2017
2017
  coordinate, and "bottom left" means the same thing at any size.
2018
2018
 
2019
- ⚠️ WHY THIS IS A GRID AND NOT NINE ABSOLUTE CORNERS. Puck 0.20 hands a slot's
2019
+ ⚠️ WHY THIS IS A GRID AND NOT NINE ABSOLUTE CORNERS. The editor engine 0.20 hands a slot's
2020
2020
  children to ONE container as a flat list — there is no per-child wrapper — so
2021
2021
  `HeroSlide` cannot sort its groups into nine corner boxes, and nine absolute
2022
2022
  siblings cannot stack by content height without measuring in JS (which means
@@ -2074,13 +2074,13 @@ em.text-accent {
2074
2074
  surface on top of the merchant's own heading. */
2075
2075
  .sf-hero-group-layer-edit .sf-hero-group-zone { pointer-events: auto; }
2076
2076
 
2077
- /* Puck's own drop zone, laid over the SAME rows as the copy beside it (card
2077
+ /* The editor's own drop zone, laid over the SAME rows as the copy beside it (card
2078
2078
  66213). This is the one layer, and this element is what makes it one:
2079
2079
  `subgrid` means a group's `--sf-hg-row` counts the layer's tracks, not a
2080
2080
  private set of its own, so a group and the copy on one square STACK instead of
2081
2081
  overlapping — which two stacked layers can never do.
2082
2082
 
2083
- ⚠️ A REAL BOX, DELIBERATELY, AND NOT `display: contents`. Puck measures this
2083
+ ⚠️ A REAL BOX, DELIBERATELY, AND NOT `display: contents`. The editor measures this
2084
2084
  element to decide where a drag lands; `display: contents` removes the box and
2085
2085
  takes the measurement with it. Spanning every row costs nothing because the
2086
2086
  zone is not a hit target (above) and its rows are the layer's own.
@@ -2227,10 +2227,10 @@ em.text-accent {
2227
2227
  a hero is a server component, so there is no React context to read either.
2228
2228
  `components/HeroGroup.tsx` makes the identical call one tier up for
2229
2229
  `--sf-hg-w` and states the reason there in full — CSS already knows, so the
2230
- answer is asked where it is free. `lib/puck/config.tsx`'s cell-width pass is
2230
+ answer is asked where it is free. `lib/document/config.tsx`'s cell-width pass is
2231
2231
  the same shape for the EDITOR half of a position question.
2232
2232
 
2233
- ⚠️ TWO SELECTORS, BECAUSE THE EDITOR ADDS A LAYER. Puck 0.20 wraps every slot
2233
+ ⚠️ TWO SELECTORS, BECAUSE THE EDITOR ADDS A LAYER. The editor engine 0.20 wraps every slot
2234
2234
  child in a drag element unless the component declares `inline`; the published
2235
2235
  page has no wrapper (HeroGroup's own docblock carries that measurement, card
2236
2236
  66290). So the first line is the page and the second is the canvas.
@@ -2621,13 +2621,13 @@ em.text-accent {
2621
2621
  How many of a Grid row's positions ONE block takes.
2622
2622
 
2623
2623
  ⚠️ THE RULE IS WRITTEN TWICE ON PURPOSE, AND DELETING EITHER HALF BREAKS
2624
- EXACTLY ONE OF THE TWO PLACES THIS RUNS. Puck 0.20 wraps every slot child in
2624
+ EXACTLY ONE OF THE TWO PLACES THIS RUNS. The editor engine 0.20 wraps every slot child in
2625
2625
  a drag element of its own unless the component declares `inline`
2626
2626
  (components/HeroGroup.tsx carries the measurement, card 66290). So:
2627
2627
 
2628
2628
  published page .sf-grid-zone > [data-sf-span] the block itself is
2629
2629
  the grid item
2630
- editor canvas .sf-grid-zone > *:has(> [data-sf-span]) Puck's wrapper is
2630
+ editor canvas .sf-grid-zone > *:has(> [data-sf-span]) the editor's wrapper is
2631
2631
  the grid item, and
2632
2632
  the attribute is one
2633
2633
  level inside it
@@ -2640,7 +2640,7 @@ em.text-accent {
2640
2640
  the overlay rules in storefront-editor.css).
2641
2641
 
2642
2642
  NOT `display: contents` on the wrapper, which is the other way to make the
2643
- block the grid item: Puck MEASURES that element to place a drop and to draw
2643
+ block the grid item: The editor MEASURES that element to place a drop and to draw
2644
2644
  its selection overlay, and `display: contents` removes the box and takes the
2645
2645
  measurement with it. The same warning is written out at .sf-hero-group-zone.
2646
2646
 
@@ -2696,7 +2696,7 @@ em.text-accent {
2696
2696
  makes it the row height.
2697
2697
  No rule: there is
2698
2698
  nothing to add.
2699
- editor canvas .sf-grid-zone > [data-puck-component] the editor's drag
2699
+ editor canvas .sf-grid-zone > [data-easel-block] the editor's drag
2700
2700
  wrapper is the grid
2701
2701
  item. IT stretches;
2702
2702
  the block inside it
@@ -2720,8 +2720,8 @@ em.text-accent {
2720
2720
  droppable into a Grid, and scripts/test-cell-stretch.ts holds that.
2721
2721
 
2722
2722
  Still NOT `display: contents` on the wrapper — see the warning on the span
2723
- rules above: the editor measures that element for drops and the outline. */
2724
- .sf-grid-zone > [data-puck-component] {
2723
+ rules above: The editor measures that element for drops and the outline. */
2724
+ .sf-grid-zone > [data-easel-block] {
2725
2725
  display: grid;
2726
2726
  grid-template-columns: minmax(0, 1fr);
2727
2727
  }
@@ -2734,7 +2734,7 @@ em.text-accent {
2734
2734
  item, and the row's
2735
2735
  stretch makes it the
2736
2736
  row height. No rule.
2737
- editor canvas row > [data-puck-component] the drag wrapper is
2737
+ editor canvas row > [data-easel-block] the drag wrapper is
2738
2738
  the flex item. IT
2739
2739
  stretches; the block
2740
2740
  inside it is as tall
@@ -2792,7 +2792,7 @@ em.text-accent {
2792
2792
  browser reads both spellings the same; §4 holds the reader too.
2793
2793
 
2794
2794
  Still NOT `display: contents` on the wrapper, for the reason above. */
2795
- .flex-row:not(.items-start):not(.items-center):not(.items-end) > [data-puck-component]:not([class]) {
2795
+ .flex-row:not(.items-start):not(.items-center):not(.items-end) > [data-easel-block]:not([class]) {
2796
2796
  display: grid;
2797
2797
  grid-template-columns: 100%;
2798
2798
  }
@@ -2880,7 +2880,7 @@ em.text-accent {
2880
2880
 
2881
2881
  ⚠️ THE CARRIER STAYS `display: contents`, AND THIS IS WHY IT CAN. The obvious
2882
2882
  fix — make the carrier a real box and put the radius on it — is the one thing
2883
- `lib/puck/config.tsx` says not to do: a block box between a section and its
2883
+ `lib/document/config.tsx` says not to do: a block box between a section and its
2884
2884
  parent breaks a full-viewport cover's `absolute inset-0` and any sticky child.
2885
2885
  A `display: contents` element generates no box but IS still in the DOM for
2886
2886
  selectors, and its child is the section's own root — measured 2026-09-05 by
@@ -2955,7 +2955,7 @@ em.text-accent {
2955
2955
  ACTUALLY RENDERS EDGE TO EDGE. Such a section has no visible edges, so its
2956
2956
  corner is off the page and passing that number down would round the cards by
2957
2957
  a value whose source the merchant cannot see. The class is put on the section's
2958
- own corners carrier by the injection pass in lib/puck/config.tsx, off
2958
+ own corners carrier by the injection pass in lib/document/config.tsx, off
2959
2959
  `sectionRunsFullWidth` — NEVER off a bare `mode === "full"`, which reads every
2960
2960
  untouched section as full. lib/content/card-corners.ts carries the whole
2961
2961
  ruling, including why the site's Hero image switch does not enter it.
@@ -3011,6 +3011,34 @@ em.text-accent {
3011
3011
  .sf-section-corners > .sf-ticker-join { border-radius: 0; overflow: visible; }
3012
3012
  .sf-section-corners > .sf-ticker-join > * { border-radius: var(--sf-section-radius, 0); overflow: clip; }
3013
3013
 
3014
+ /* ── A padding's TABLET value (three-views plan 2026-10-23, PR 3a) ───────────
3015
+ The same split as the phone block below: the desktop padding is INLINE, and
3016
+ efficient-web-builder (lib/content/section-padding, `sectionPadAttrs`) adds
3017
+ `.sf-pad-<side>-tablet` and its variable only for a side whose tablet value
3018
+ is drawn (stored, or worked out by the page's rule version). A node with no
3019
+ tablet value carries no class, matches nothing here, and draws the bytes it
3020
+ drew before this block existed.
3021
+
3022
+ The widths are the Tablet view's: efficient-easel's VIEW_TABLET_MIN (720) up
3023
+ to, not including, VIEW_DESKTOP_MIN (1100) — the builder's
3024
+ lib/content/view-values `TABLET_MEDIA`, the same string. `!important` and no
3025
+ `var()` fallback, for the reasons the phone block gives.
3026
+ scripts/test-tablet-padding-css.ts holds all of it. */
3027
+ @media (min-width: 720px) and (max-width: 1099.98px) {
3028
+ .sf-pad-top-tablet {
3029
+ padding-top: var(--sf-pad-t-tablet) !important;
3030
+ }
3031
+ .sf-pad-bottom-tablet {
3032
+ padding-bottom: var(--sf-pad-b-tablet) !important;
3033
+ }
3034
+ .sf-pad-left-tablet {
3035
+ padding-left: var(--sf-pad-l-tablet) !important;
3036
+ }
3037
+ .sf-pad-right-tablet {
3038
+ padding-right: var(--sf-pad-r-tablet) !important;
3039
+ }
3040
+ }
3041
+
3014
3042
  /* ── A section's phone padding ────────────────────────────────────────────────
3015
3043
  The phone half of the override ruled by the owner on 2026-09-07: ONE value
3016
3044
  used on both screens, and a setting MAY also carry a phone value. Set, the
@@ -3141,14 +3169,14 @@ em.text-accent {
3141
3169
 
3142
3170
  ONE RULE FOR THE PAGE AND THE EDITOR'S CANVAS (GG 2026-10-23, the hartesmetal
3143
3171
  Home name Box: apart on the canvas, on top of each other live). On the canvas
3144
- two elements stand between the Box and each block: the editor's item
3145
- (`[data-puck-component]`) and the builder's part host (`[data-sf-part-host]`,
3172
+ two elements stand between the Box and each block: The editor's item
3173
+ (`[data-easel-block]`) and the builder's part host (`[data-sf-part-host]`,
3146
3174
  `display: contents`). Each rule names both shapes of "the Box's blocks", so
3147
3175
  the canvas reads THIS rule from this sheet and no copy of it can lag behind
3148
3176
  (the builder's canvas copy, efficient-web-builder 37 and later, goes).
3149
3177
  scripts/test-gap-only-one-rule.tsx draws both. */
3150
3178
  .sf-box-gap-only > *,
3151
- .sf-box-gap-only > [data-puck-component] > [data-sf-part-host] > * {
3179
+ .sf-box-gap-only > [data-easel-block] > [data-sf-part-host] > * {
3152
3180
  padding-block: 0;
3153
3181
  }
3154
3182
 
@@ -3161,7 +3189,7 @@ em.text-accent {
3161
3189
  wrapper's own padding is an INLINE style, which this never beats, so what the
3162
3190
  merchant typed still draws. Unlayered, like the rule above, for its reason. */
3163
3191
  .sf-box-gap-only > .sf-section-pad > *,
3164
- .sf-box-gap-only > [data-puck-component] > [data-sf-part-host] > .sf-section-pad > * {
3192
+ .sf-box-gap-only > [data-easel-block] > [data-sf-part-host] > .sf-section-pad > * {
3165
3193
  padding-block: 0;
3166
3194
  }
3167
3195
 
@@ -1,3 +1,3 @@
1
1
  {
2
- "efficient-web-builder": "40.1.1"
2
+ "efficient-web-builder": "42.0.0"
3
3
  }
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as i}from"react/jsx-runtime";import{BookingFormProvider as S,useBookingForm as b}from"./booking/BookingFormState.js";import{useBookingPreview as k}from"efficient-web-builder/render/lib/puck/booking-preview";import{say as n}from"efficient-web-builder/format/lib/editor-words";import{BookingChoose as N,BookingConfirmed as B,BookingDetails as y,BookingHead as w}from"./booking/BookingRegions.js";function A(t={}){const o=k();return e(S,{editing:t.editing,previewConfirmation:!!t.nodeId&&o===t.nodeId,children:e(C,{...t})})}const p="mx-auto max-w-[var(--sf-site-width,1600px)] px-[min(24px,var(--sf-site-gutter,40px))] py-16 min-[800px]:px-[var(--sf-site-gutter,40px)] min-[800px]:py-[88px]",s="grid gap-8 min-[960px]:grid-cols-[minmax(0,1fr)_minmax(360px,0.8fr)] min-[960px]:gap-12";function C({eyebrow:t,heading:o,intro:g,buttonLabel:f,successMessage:u,boxes:r,inBoxes:x=!1}){const{fieldPrefix:_,editing:v,services:m,currency:D,serviceId:I,setServiceId:L,requiresPayment:P,date:j,earliestDate:z,setDate:E,setDateTouched:F,availability:M,loadingSlots:T,noSlotsMessage:R,selectedStart:$,setSelectedStart:q,customerTimezone:G,name:H,setName:O,email:J,setEmail:K,phone:Q,setPhone:U,notes:V,setNotes:W,confirmation:c,submitting:X,error:Y,canSubmit:Z,handleSubmit:l,sample:h}=b(),d=h?e("p",{className:"mb-6 font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",role:"status",children:n("Example form — add an active service in {place}.",{place:n("Storefront → Booking Services")})}):null,a=m===void 0?e("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:"Loading appointments…"}):m?.length===0?e("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",role:"status",children:v?n("Add an active service in {place}.",{place:n("Storefront → Booking Services")}):"Appointments are not available right now."}):null;return x&&r?e("section",{className:"relative z-[2] border-t border-line bg-surface",children:i("div",{className:p,children:[d,c?e(r,{className:`${s} items-start`}):i("form",{onSubmit:l,children:[e(r,{className:`${s} items-start`}),a]})]})}):e("section",{className:"relative z-[2] border-t border-line bg-surface",children:i("div",{className:p,children:[d,e(w,{eyebrow:t,heading:o,intro:g}),c?e(B,{successMessage:u}):a||i("form",{onSubmit:l,className:s,children:[e(N,{}),e(y,{buttonLabel:f})]})]})})}export{C as AppointmentBookingBody,A as default};
1
+ "use client";import{jsx as e,jsxs as i}from"react/jsx-runtime";import{BookingFormProvider as S,useBookingForm as b}from"./booking/BookingFormState.js";import{useBookingPreview as k}from"efficient-web-builder/render/lib/document/booking-preview";import{say as n}from"efficient-web-builder/format/lib/editor-words";import{BookingChoose as N,BookingConfirmed as B,BookingDetails as y,BookingHead as w}from"./booking/BookingRegions.js";function A(t={}){const o=k();return e(S,{editing:t.editing,previewConfirmation:!!t.nodeId&&o===t.nodeId,children:e(C,{...t})})}const p="mx-auto max-w-[var(--sf-site-width,1600px)] px-[min(24px,var(--sf-site-gutter,40px))] py-16 min-[800px]:px-[var(--sf-site-gutter,40px)] min-[800px]:py-[88px]",s="grid gap-8 min-[960px]:grid-cols-[minmax(0,1fr)_minmax(360px,0.8fr)] min-[960px]:gap-12";function C({eyebrow:t,heading:o,intro:g,buttonLabel:f,successMessage:u,boxes:r,inBoxes:x=!1}){const{fieldPrefix:_,editing:v,services:m,currency:D,serviceId:I,setServiceId:L,requiresPayment:P,date:j,earliestDate:z,setDate:E,setDateTouched:F,availability:M,loadingSlots:T,noSlotsMessage:R,selectedStart:$,setSelectedStart:q,customerTimezone:G,name:H,setName:O,email:J,setEmail:K,phone:Q,setPhone:U,notes:V,setNotes:W,confirmation:c,submitting:X,error:Y,canSubmit:Z,handleSubmit:l,sample:h}=b(),d=h?e("p",{className:"mb-6 font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",role:"status",children:n("Example form — add an active service in {place}.",{place:n("Storefront → Booking Services")})}):null,a=m===void 0?e("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",children:"Loading appointments…"}):m?.length===0?e("p",{className:"font-mono text-[12px] uppercase tracking-[0.2em] text-fg-dim",role:"status",children:v?n("Add an active service in {place}.",{place:n("Storefront → Booking Services")}):"Appointments are not available right now."}):null;return x&&r?e("section",{className:"relative z-[2] border-t border-line bg-surface",children:i("div",{className:p,children:[d,c?e(r,{className:`${s} items-start`}):i("form",{onSubmit:l,children:[e(r,{className:`${s} items-start`}),a]})]})}):e("section",{className:"relative z-[2] border-t border-line bg-surface",children:i("div",{className:p,children:[d,e(w,{eyebrow:t,heading:o,intro:g}),c?e(B,{successMessage:u}):a||i("form",{onSubmit:l,className:s,children:[e(N,{}),e(y,{buttonLabel:f})]})]})})}export{C as AppointmentBookingBody,A as default};
@@ -1 +1 @@
1
- "use client";import{jsx as H}from"react/jsx-runtime";import{useEffect as k,useState as _}from"react";import{usePathname as y}from"next/navigation";import{useHeaderBar as R}from"./useHeaderBar.js";import{headerSolidBackground as A,isProductPage as I,resolveHeaderHeightPx as P}from"../lib/content/header-bar.js";import{headerThemeWrap as S}from"../lib/content/header-theme.js";import{HEADER_SET_HEIGHT_VAR as T}from"efficient-web-builder/render/lib/puck/header-clearance";import{HEADER_INK_OVERRIDE_ATTR as B,resolveHeaderInkMode as D}from"efficient-web-builder/render/lib/puck/header-ink";const M=["none","always","on_scroll_up"],j=e=>M.includes(e)?e:"always";function w({sticky:e,topTextColor:f,heightPx:h,theme:b,children:g}){const o=j(e),n=P(h),{headerRef:t,scrolled:a,navHidden:p}=R({stickyMode:o,heightPx:n}),s=D(f),x=s==="auto"?null:{[B]:s},r=S(b),d=I(y()),[v,E]=_(!1);k(()=>{const l=t.current?.ownerDocument??document,u=()=>E(l.documentElement.getAttribute("data-theme")==="light");u();const m=new MutationObserver(u);return m.observe(l.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>m.disconnect()},[t]);const c=a||d,i=A(v,d);return H("header",{ref:t,"data-scrolled":a||void 0,"data-box-header":"",...x,className:["sf-site-header",...r?[r.className]:[],"flex flex-col justify-center",o==="none"?"absolute":"fixed","inset-x-0 top-0 z-50",c?"border-b border-line backdrop-blur-md":"border-b border-transparent","transition-[background,border-color,transform] duration-300 ease-out"].join(" "),style:{...r?r.style:null,minHeight:`var(${T}, ${n}px)`,...p?{transform:"translateY(-100%)"}:null,...c?{background:i,color:"var(--fg)","--sf-header-ground":i}:{color:"var(--sf-header-overlay-fg)","--sf-header-ground":"var(--sf-header-overlay-ground)"}},children:g})}export{w as default,j as resolveStickyMode};
1
+ "use client";import{jsx as H}from"react/jsx-runtime";import{useEffect as k,useState as _}from"react";import{usePathname as y}from"next/navigation";import{useHeaderBar as R}from"./useHeaderBar.js";import{headerSolidBackground as A,isProductPage as I,resolveHeaderHeightPx as P}from"../lib/content/header-bar.js";import{headerThemeWrap as S}from"../lib/content/header-theme.js";import{HEADER_SET_HEIGHT_VAR as T}from"efficient-web-builder/render/lib/document/header-clearance";import{HEADER_INK_OVERRIDE_ATTR as B,resolveHeaderInkMode as D}from"efficient-web-builder/render/lib/document/header-ink";const M=["none","always","on_scroll_up"],j=e=>M.includes(e)?e:"always";function w({sticky:e,topTextColor:f,heightPx:h,theme:b,children:g}){const o=j(e),n=P(h),{headerRef:t,scrolled:a,navHidden:p}=R({stickyMode:o,heightPx:n}),s=D(f),x=s==="auto"?null:{[B]:s},r=S(b),d=I(y()),[v,E]=_(!1);k(()=>{const l=t.current?.ownerDocument??document,u=()=>E(l.documentElement.getAttribute("data-theme")==="light");u();const m=new MutationObserver(u);return m.observe(l.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>m.disconnect()},[t]);const c=a||d,i=A(v,d);return H("header",{ref:t,"data-scrolled":a||void 0,"data-box-header":"",...x,className:["sf-site-header",...r?[r.className]:[],"flex flex-col justify-center",o==="none"?"absolute":"fixed","inset-x-0 top-0 z-50",c?"border-b border-line backdrop-blur-md":"border-b border-transparent","transition-[background,border-color,transform] duration-300 ease-out"].join(" "),style:{...r?r.style:null,minHeight:`var(${T}, ${n}px)`,...p?{transform:"translateY(-100%)"}:null,...c?{background:i,color:"var(--fg)","--sf-header-ground":i}:{color:"var(--sf-header-overlay-fg)","--sf-header-ground":"var(--sf-header-overlay-ground)"}},children:g})}export{w as default,j as resolveStickyMode};
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as l,Fragment as b}from"react/jsx-runtime";import{ChatBubbleLeftRightIcon as f,ChatBubbleOvalLeftEllipsisIcon as m,ChatIcon as g,MegaphoneIcon as x,PhoneIcon as L,SparklesIcon as C}from"efficient-shell/icons/efficient-glyphs";import{chatLauncherColor as I,chatLauncherIcon as _,chatLauncherPosition as S}from"efficient-web-builder/format/lib/content/chat-launcher";import{accentInk as v}from"efficient-web-builder/format/lib/theme";import{PART_PHONE_MAX_CSS as w}from"efficient-web-builder/render/lib/puck/part-styles";const y={"chat-bubble-left-right":f,"chat-bubble-oval-left-ellipsis":m,chat:g,megaphone:x,phone:L,sparkles:C};function E(a){const t=I(a?.launcherColor)||"var(--btn)";return{"--assistant-launcher-bg":t,"--assistant-launcher-ink":t==="var(--btn)"?"var(--btn-ink)":v(t),"--assistant-launcher-bg-hover":`color-mix(in oklab, ${t} 85%, black)`}}function O(a){return a?.launcherLabel?.trim()??""}function P(a){return S(a?.launcherPosition)==="left"}const k={position:"fixed",bottom:16,minWidth:48,height:48,padding:0,display:"flex",alignItems:"center",border:0,borderRadius:9999,cursor:"pointer",background:"var(--assistant-launcher-bg)",color:"var(--assistant-launcher-ink)",boxShadow:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)"},N={width:48,height:48,flex:"none",display:"flex",alignItems:"center",justifyContent:"center"},j="[data-chat-launcher-label]{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-size:14px;font-weight:500;line-height:1;transition:max-width 120ms ease-out,opacity 120ms ease-out,padding 120ms ease-out}[data-chat-launcher]:hover [data-chat-launcher-label],[data-chat-launcher]:focus-visible [data-chat-launcher-label]{max-width:16em;opacity:1;padding-inline-end:16px}@media (prefers-reduced-motion:reduce){[data-chat-launcher-label]{transition:none}}",A=`@media ${w}{[data-chat-launcher][data-hide-on-phones]{display:none!important}}`;function H({label:a,onOpen:t,onWarm:c,zIndex:d=1e3,badge:u,look:n}){const r=_(n?.launcherIcon),p=y[r],o=O(n),i=P(n),s=n?.showOnPhones===!1,h=(o?j:"")+(s?A:"");return l(b,{children:[h&&e("style",{children:h}),l("button",{type:"button","aria-label":a,onClick:t,onPointerEnter:c,onFocus:c,"data-sf-floating":"","data-chat-launcher":"","data-side":i?"left":"right","data-hide-on-phones":s?"":void 0,style:{...E(n),...k,...i?{left:16}:{right:16},zIndex:d},children:[e("span",{style:N,children:e(p,{size:22,"data-icon":r})}),o&&e("span",{"data-chat-launcher-label":"",children:o}),u]})]})}export{P as chatLauncherOnLeft,E as chatLauncherTokens,H as default};
1
+ "use client";import{jsx as e,jsxs as l,Fragment as b}from"react/jsx-runtime";import{ChatBubbleLeftRightIcon as f,ChatBubbleOvalLeftEllipsisIcon as m,ChatIcon as g,MegaphoneIcon as x,PhoneIcon as L,SparklesIcon as C}from"efficient-shell/icons/efficient-glyphs";import{chatLauncherColor as I,chatLauncherIcon as _,chatLauncherPosition as S}from"efficient-web-builder/format/lib/content/chat-launcher";import{accentInk as v}from"efficient-web-builder/format/lib/theme";import{PART_PHONE_MAX_CSS as w}from"efficient-web-builder/render/lib/document/part-styles";const y={"chat-bubble-left-right":f,"chat-bubble-oval-left-ellipsis":m,chat:g,megaphone:x,phone:L,sparkles:C};function E(a){const t=I(a?.launcherColor)||"var(--btn)";return{"--assistant-launcher-bg":t,"--assistant-launcher-ink":t==="var(--btn)"?"var(--btn-ink)":v(t),"--assistant-launcher-bg-hover":`color-mix(in oklab, ${t} 85%, black)`}}function O(a){return a?.launcherLabel?.trim()??""}function P(a){return S(a?.launcherPosition)==="left"}const k={position:"fixed",bottom:16,minWidth:48,height:48,padding:0,display:"flex",alignItems:"center",border:0,borderRadius:9999,cursor:"pointer",background:"var(--assistant-launcher-bg)",color:"var(--assistant-launcher-ink)",boxShadow:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)"},N={width:48,height:48,flex:"none",display:"flex",alignItems:"center",justifyContent:"center"},j="[data-chat-launcher-label]{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-size:14px;font-weight:500;line-height:1;transition:max-width 120ms ease-out,opacity 120ms ease-out,padding 120ms ease-out}[data-chat-launcher]:hover [data-chat-launcher-label],[data-chat-launcher]:focus-visible [data-chat-launcher-label]{max-width:16em;opacity:1;padding-inline-end:16px}@media (prefers-reduced-motion:reduce){[data-chat-launcher-label]{transition:none}}",A=`@media ${w}{[data-chat-launcher][data-hide-on-phones]{display:none!important}}`;function H({label:a,onOpen:t,onWarm:c,zIndex:d=1e3,badge:u,look:n}){const r=_(n?.launcherIcon),p=y[r],o=O(n),i=P(n),s=n?.showOnPhones===!1,h=(o?j:"")+(s?A:"");return l(b,{children:[h&&e("style",{children:h}),l("button",{type:"button","aria-label":a,onClick:t,onPointerEnter:c,onFocus:c,"data-sf-floating":"","data-chat-launcher":"","data-side":i?"left":"right","data-hide-on-phones":s?"":void 0,style:{...E(n),...k,...i?{left:16}:{right:16},zIndex:d},children:[e("span",{style:N,children:e(p,{size:22,"data-icon":r})}),o&&e("span",{"data-chat-launcher-label":"",children:o}),u]})]})}export{P as chatLauncherOnLeft,E as chatLauncherTokens,H as default};
@@ -1,4 +1,4 @@
1
- import type { PartStyles } from "efficient-web-builder/render/lib/puck/part-styles";
1
+ import type { PartStyles } from "efficient-web-builder/render/lib/document/part-styles";
2
2
  export declare function resolveCategoryImage(src?: string): string | undefined;
3
3
  export interface CollectionCardStyle {
4
4
  showPrice?: boolean;
@@ -1,5 +1,5 @@
1
1
  import type { SlotComponent } from "efficient-easel/blocks";
2
- import type { PartStyles } from "efficient-web-builder/render/lib/puck/part-styles";
2
+ import type { PartStyles } from "efficient-web-builder/render/lib/document/part-styles";
3
3
  export interface CollectionsProps {
4
4
  eyebrow?: string;
5
5
  heading?: string;
@@ -1 +1 @@
1
- "use client";import{Fragment as d,jsx as e,jsxs as i}from"react/jsx-runtime";import{useId as v}from"react";import y from"efficient-web-builder/render/components/SectionHeader";import{SectionTextParts as N}from"efficient-web-builder/render/lib/puck/editing-bridges";import{CollectionCardStyleContext as M}from"./CollectionCard.js";import{fillRowCss as S}from"../lib/sections/fill-row.js";import{renderHeadline as $}from"efficient-web-builder/render/components/goldPhrases";function j({editing:r,nodeId:t,children:s}){return!r||!t?e(d,{children:s}):e(N,{nodeId:t,sectionType:"Collections",children:s})}const E="px-[max(var(--sf-site-gutter,40px),calc((100%_-_var(--sf-content-cap,100%))/2_+_var(--sf-site-gutter,40px)))] py-[120px] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:py-[70px]",F="px-[max(var(--sf-site-gutter,40px),calc((100%_-_var(--sf-content-cap,100%))/2_+_var(--sf-site-gutter,40px)))] pt-0 pb-[120px] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:pt-0 max-[800px]:pb-[70px]",I={2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4",5:"grid-cols-5"};function R({eyebrow:r,heading:t,columns:s,showPrice:m,cardStyle:f,layout:g,limit:n,cards:l,omitHead:a=!1,nodeId:u,partStyles:h,editing:c=!1}={}){const o=`cg-${v().replace(/:/g,"")}`,_=typeof n=="number"&&n>0,C=g==="list"?"grid-cols-1":s===void 0?"grid-cols-3":I[Math.min(5,Math.max(2,Math.round(s)))]??"grid-cols-3",p=`${o} grid ${C} gap-4 max-[800px]:grid-cols-1 max-[800px]:gap-3`,x=S(o,p,{limit:n});return i("section",{className:a?F:E,children:[a?null:e(y,{num:r!==void 0?r:"01 / Collections",accentNum:!0,title:t!==void 0?$(t,!1):i(d,{children:["Three ranges,",e("br",{}),"one standard."]}),link:{text:"View all",href:"/wheels"}}),l&&e(j,{editing:c,nodeId:u,children:i(M.Provider,{value:{showPrice:m,cardStyle:f,partStyles:h,editing:c},children:[_&&e("style",{children:`.${o} > *:nth-child(n+${n+1}){display:none}`}),x&&e("style",{children:x}),e(l,{className:p,minEmptyHeight:260})]})})]})}export{R as default};
1
+ "use client";import{Fragment as d,jsx as e,jsxs as i}from"react/jsx-runtime";import{useId as v}from"react";import y from"efficient-web-builder/render/components/SectionHeader";import{SectionTextParts as N}from"efficient-web-builder/render/lib/document/editing-bridges";import{CollectionCardStyleContext as M}from"./CollectionCard.js";import{fillRowCss as S}from"../lib/sections/fill-row.js";import{renderHeadline as $}from"efficient-web-builder/render/components/goldPhrases";function j({editing:r,nodeId:t,children:s}){return!r||!t?e(d,{children:s}):e(N,{nodeId:t,sectionType:"Collections",children:s})}const E="px-[max(var(--sf-site-gutter,40px),calc((100%_-_var(--sf-content-cap,100%))/2_+_var(--sf-site-gutter,40px)))] py-[120px] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:py-[70px]",F="px-[max(var(--sf-site-gutter,40px),calc((100%_-_var(--sf-content-cap,100%))/2_+_var(--sf-site-gutter,40px)))] pt-0 pb-[120px] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[800px]:pt-0 max-[800px]:pb-[70px]",I={2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4",5:"grid-cols-5"};function R({eyebrow:r,heading:t,columns:s,showPrice:m,cardStyle:f,layout:g,limit:n,cards:l,omitHead:a=!1,nodeId:u,partStyles:h,editing:c=!1}={}){const o=`cg-${v().replace(/:/g,"")}`,_=typeof n=="number"&&n>0,C=g==="list"?"grid-cols-1":s===void 0?"grid-cols-3":I[Math.min(5,Math.max(2,Math.round(s)))]??"grid-cols-3",p=`${o} grid ${C} gap-4 max-[800px]:grid-cols-1 max-[800px]:gap-3`,x=S(o,p,{limit:n});return i("section",{className:a?F:E,children:[a?null:e(y,{num:r!==void 0?r:"01 / Collections",accentNum:!0,title:t!==void 0?$(t,!1):i(d,{children:["Three ranges,",e("br",{}),"one standard."]}),link:{text:"View all",href:"/wheels"}}),l&&e(j,{editing:c,nodeId:u,children:i(M.Provider,{value:{showPrice:m,cardStyle:f,partStyles:h,editing:c},children:[_&&e("style",{children:`.${o} > *:nth-child(n+${n+1}){display:none}`}),x&&e("style",{children:x}),e(l,{className:p,minEmptyHeight:260})]})})]})}export{R as default};
@@ -1 +1 @@
1
- "use client";import{jsx as n,jsxs as s,Fragment as ee}from"react/jsx-runtime";import ne from"./SectionBand.js";import{useEffect as z,useState as _}from"react";import{OTHER_REASON_ID as v}from"efficient-web-builder/format/lib/content/contact";import{FormFieldInput as te,FormHoneypot as ae,successMessageFor as le,useBoundForm as re,useFormSubmission as oe}from"./formSubmission.js";import se from"efficient-web-builder/render/components/SectionEyebrow";import ie,{FieldCaption as ce}from"./WebFormField.js";import{scrollBehavior as de}from"efficient-web-builder/render/components/useReducedMotion";import{renderChrome as q,renderGold as w,renderHeadline as me,splitParagraphs as pe}from"efficient-web-builder/render/components/goldPhrases";import{say as j}from"efficient-web-builder/format/lib/editor-words";import{phoneHref as fe}from"efficient-web-builder/format/lib/links/phone-href";import{PART_ROW_ATTR as ue,encodePartRow as xe}from"efficient-web-builder/render/lib/puck/text-parts";const t={bodySmall:"text-[length:var(--size-body,14px)]",body:"text-[length:var(--size-body,15px)]",bodyLarge:"text-[length:var(--size-body,18px)]",headingSmall1:"text-[length:var(--size-headingSmall,24px)]",headingSmall2:"text-[length:var(--size-headingSmall,26px)]",labelXs:"text-[length:var(--size-label,10px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]",labelXl:"text-[length:var(--size-label,14px)]"},M={label:"Label",value:"Value",sub:"Sub line"};function be(i,l){return i.map((r,a)=>l?{...r,at:a,label:r.label||j(M.label),value:r.value||j(M.value),sub:r.sub||j(M.sub)}:{...r,at:a}).filter(r=>!r.hidden)}function A(i,l){return l?{[ue]:xe("channels",i.at)}:{}}function T(i){if(i.href)return i.href;const l=(i.value??"").trim();if(l.includes("@"))return`mailto:${l}`;if(/^\+?[\d\s().-]{6,}$/.test(l))return fe(l)}function ge(i){const l=[],r=new Map;for(const a of i){if(!a.groupId){l.push(a);continue}const p=a.value.trim().toLowerCase(),x=r.get(p);if(x)x.label=`${x.label} · ${a.label}`;else{const b={...a};r.set(p,b),l.push(b)}}return l}function he(i,l,r){const a=p=>String(p??"").trim().toLowerCase();for(const p of i?.fields??[]){if(p.type!=="select"||!Array.isArray(p.options))continue;const x=p.options.map(String);if(!l.some(d=>x.some(f=>a(f)===a(d.title))))continue;const b=d=>a(d===v?r:l.find(f=>f.id===d)?.title);return{key:p.key,optionFor:d=>x.find(f=>a(f)===b(d)&&b(d)!==""),idFor:d=>{const f=l.find($=>a($.title)===a(d));return f?f.id:r&&a(d)===a(r)?v:void 0}}}return null}const V=`border-b border-line bg-transparent py-4 font-display ${t.bodyLarge} tracking-[0.01em] text-fg outline-none transition-colors focus:border-accent`;function ve({routingNumber:i,routingTagline:l,groups:r,formNumber:a,formHeading:p,metaLines:x,showOther:b=!0,otherLabel:d="Other",otherNoteTitle:f,otherNoteBody:$,buttonText:O,consent:H,channels:B,formSlug:L,form:W,editing:y,initialActiveId:k,onActiveChange:P,reasonExtras:D}){const N=[...r.map(e=>e.id),...b?[v]:[]],G=k&&N.includes(k)?k:N[0]??v,[g,C]=_(G);z(()=>{N.includes(g)||C(N[0]??v)},[N.join("|")]),z(()=>{k&&N.includes(k)&&C(k)},[k]);const h=re(L,W),m=oe({form:h,formSlug:L,editing:y}),u=he(h,r,b?d:void 0),I=e=>{C(e),R(null);const o=u?.optionFor(e);u&&o!==void 0&&m.set(u.key,o),P?.(e)};z(()=>{if(!u||m.valueOf(u.key))return;const e=u.optionFor(g);e!==void 0&&m.set(u.key,e)},[u?.key]);const[X,R]=_(null),S=be(B??[],!!y),Z=e=>X!==null?!e.groupId&&e.value===X:e.groupId===g,J=h===void 0,E=!!h||!!y,[K,Q]=_(!1);z(()=>{const e=()=>Q(document.documentElement.getAttribute("data-theme")==="light");e();const o=new MutationObserver(e);return o.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>o.disconnect()},[]);const U=r.length>0||!!y;return s(ee,{children:[U&&s(ne,{className:"border-b border-line py-[60px]",style:K?void 0:{background:"var(--section-bg)"},children:[(i||l)&&s("div",{className:"mb-6 flex items-center gap-6 border-b border-line pb-6",children:[i&&n(se,{text:i}),l&&n("span",{className:`font-display ${t.bodySmall} uppercase tracking-[0.04em] text-fg-dim`,children:w(l)})]}),n("div",{className:"sf-card grid grid-cols-4 gap-[2px] border border-line bg-line max-[1100px]:grid-cols-2 max-[700px]:grid-cols-1",children:r.map(e=>{const o=g===e.id;return s("button",{type:"button",onClick:()=>{I(e.id),typeof window<"u"&&window.matchMedia("(max-width: 1100px)").matches&&document.getElementById("contact-form")?.scrollIntoView({behavior:de(),block:"start"})},className:["flex min-h-[240px] cursor-pointer flex-col gap-4 px-8 py-10 text-left transition-colors",o?"bg-surface outline outline-2 -outline-offset-2 outline-accent":"bg-bg hover:bg-surface"].join(" "),children:[e.eyebrow&&n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.24em] text-accent`,children:e.eyebrow}),n("h3",{className:`whitespace-pre-line font-heading3 ${t.headingSmall2} font-medium uppercase leading-[1.05] tracking-[-0.02em]`,children:e.title}),e.copy&&n("p",{className:`mt-auto font-display ${t.bodySmall} leading-[1.5] text-fg-dim`,children:e.copy}),e.response&&s("div",{className:`mt-2 flex justify-between border-t border-line pt-4 font-mono ${t.labelSmall} uppercase tracking-[0.22em] text-fg-dim`,children:[n("span",{children:"Response"}),n("strong",{className:"font-normal text-fg",children:e.response})]})]},e.id)})})]}),(E||S.length>0)&&n("section",{id:"contact-form",className:"scroll-mt-[80px] border-b border-line py-20 max-[1100px]:py-[60px]",children:s("div",{className:["mx-auto grid max-w-[var(--sf-site-width,1600px)] gap-20 px-[var(--sf-site-gutter,40px)] max-[1100px]:grid-cols-1 max-[1100px]:gap-[60px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",E&&S.length>0?"grid-cols-[1.3fr_1fr]":"grid-cols-1"].join(" "),children:[E&&s("div",{children:[s("div",{className:"mb-8 flex items-end justify-between gap-6 border-b border-line pb-6",children:[s("div",{children:[a&&n("div",{className:`pb-2 font-mono ${t.labelLarge} uppercase tracking-[0.3em] text-accent`,children:w(a)}),p&&n("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(36px,4vw,56px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:me(p,!0)})]}),!!(x&&x.length)&&n("div",{className:`text-right font-mono ${t.labelSmall} uppercase leading-[1.8] tracking-[0.22em] text-fg-dim max-[700px]:text-left`,children:x.map((e,o)=>n("div",{children:e},o))})]}),h?m.done?n("div",{className:`border border-accent bg-accent/[0.08] p-8 font-display ${t.body} leading-[1.6] text-fg-dim`,children:le(h,"Thanks — we've received your message.")}):s("form",{className:"grid grid-cols-2 gap-5 max-[700px]:grid-cols-1",onSubmit:m.handleSubmit,children:[h.fields.map(e=>n(ie,{label:e.label,required:e.required,className:e.type==="textarea"||e.type==="checkbox"?"col-span-2 max-[700px]:col-span-1":void 0,children:n(te,{field:e,value:m.valueOf(e.key),onChange:o=>{m.set(e.key,o);const c=u&&e.key===u.key?u.idFor(o):void 0;c!==void 0&&(C(c),R(null),P?.(c))},className:e.type==="textarea"?`${V} min-h-[140px] resize-y leading-[1.5]`:e.type==="checkbox"?"size-4 self-start accent-accent":V})},e.key)),s("div",{className:"col-span-2 flex flex-col gap-2 max-[700px]:col-span-1",children:[n(ce,{required:!0,children:"Reason"}),s("div",{className:"mt-1 flex flex-wrap gap-2",children:[r.map(e=>{const o=g===e.id;return n("button",{type:"button",onClick:()=>I(e.id),className:[`cursor-pointer border px-4 py-3 font-mono ${t.labelSmall} uppercase tracking-[0.2em] transition-colors`,o?"border-accent bg-accent text-bg":"border-line text-fg-dim hover:text-fg"].join(" "),children:e.title},e.id)}),b&&n("button",{type:"button",onClick:()=>I(v),className:[`cursor-pointer border px-4 py-3 font-mono ${t.labelSmall} uppercase tracking-[0.2em] transition-colors`,g===v?"border-accent bg-accent text-bg":"border-line text-fg-dim hover:text-fg"].join(" "),children:q(d)})]})]}),D?.(g),g===v&&(f||$)&&s("div",{className:"sf-card col-span-2 flex flex-col gap-2 border border-line bg-bg/40 p-5 max-[700px]:col-span-1",children:[f&&n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.24em] text-accent`,children:w(f)}),$&&pe($).map((e,o)=>n("p",{className:`font-display ${t.body} leading-[1.55] text-fg-dim`,children:w(e)},o))]}),n(ae,{value:m.honeypot,onChange:m.setHoneypot}),m.error&&n("p",{role:"alert",className:`col-span-2 font-mono ${t.labelSmall} uppercase tracking-[0.18em] text-alert max-[700px]:col-span-1`,children:m.error}),s("div",{className:"col-span-2 mt-5 flex flex-wrap items-center justify-between gap-6 border-t border-line pt-6 max-[700px]:col-span-1 max-[700px]:flex-col max-[700px]:items-stretch",children:[H&&n("span",{className:`max-w-[380px] font-mono ${t.labelSmall} uppercase leading-[1.6] tracking-[0.18em] text-fg-dim`,children:w(H)}),n("button",{type:y?"button":"submit",disabled:m.submitting,className:`cursor-pointer bg-btn px-8 py-5 font-mono ${t.labelXl} uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg disabled:cursor-wait disabled:opacity-60 max-[700px]:w-full`,children:m.submitting?"Sending…":O?q(O):"Send Message →"})]})]}):n("p",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.22em] text-fg-dim`,children:J?j("Loading form…"):j("Choose a form in the inspector, under Message form — until then this column is hidden on the live page and no message can be sent.")})]}),S.length>0&&n("aside",{className:"flex flex-col gap-0 max-[1100px]:hidden",children:S.map((e,o)=>{const c=Z(e),F=!!!e.groupId;return s("div",{...A(e,y),onClick:F?()=>R(e.value):void 0,className:["relative flex flex-col gap-3 border-b border-line border-l-2 px-5 py-8 transition-all",F?"cursor-pointer border-t-2 border-t-accent":"",c?"border-l-accent pl-6":F?"border-l-transparent hover:bg-accent/[0.04]":"border-l-transparent"].join(" "),style:c?{background:"color-mix(in oklab, var(--accent) 8%, transparent)"}:void 0,children:[c&&!!h&&s("span",{className:"absolute right-[18px] top-6 flex flex-col items-end gap-0.5 text-right",children:[n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.24em] text-accent`,children:"→ Message routes here"}),n("span",{className:`font-mono ${t.labelXs} uppercase tracking-[0.18em] text-fg-dim`,children:"Other inboxes filter as spam"})]}),n("span",{className:[`font-mono ${t.labelSmall} uppercase tracking-[0.3em] transition-colors`,c?"text-fg":"text-accent"].join(" "),children:e.label}),F?n("a",{href:e.href,onClick:Y=>Y.stopPropagation(),className:[`font-heading3 ${t.headingSmall1} font-medium leading-[1.2] tracking-[-0.02em] transition-colors hover:text-accent`,c?"text-accent":"text-fg"].join(" "),children:e.value}):n("a",{href:T(e),className:[`font-heading3 ${t.headingSmall1} font-medium leading-[1.2] tracking-[-0.02em]`,c?"text-accent":"text-fg"].join(" "),children:e.value}),e.sub&&n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,children:e.sub})]},`${e.value}-${o}`)})}),S.length>0&&n("div",{"data-contact-phone-list":!0,className:"hidden flex-col gap-0 max-[1100px]:flex",children:ge(S).map((e,o)=>{const c=!!e.groupId;return s("div",{...A(e,y),className:["flex flex-col gap-3 border-b border-line px-5 py-5",c?"":"border-t-2 border-t-accent"].join(" "),children:[n("span",{className:[`font-mono ${t.labelSmall} uppercase tracking-[0.3em]`,c?"text-fg":"text-accent"].join(" "),children:e.label}),n("a",{href:T(e),className:[`font-heading3 ${t.headingSmall1} font-medium leading-[1.2] tracking-[-0.02em] [overflow-wrap:anywhere]`,c?"text-accent":"text-fg"].join(" "),children:e.value}),e.sub&&n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,children:e.sub})]},`${e.value}-${o}`)})})]})})]})}export{M as CHANNEL_HINTS,T as channelHref,ve as default,be as drawnChannels,V as fieldClass,ge as mergeChannelsForPhone,he as topicFieldOf};
1
+ "use client";import{jsx as n,jsxs as s,Fragment as ee}from"react/jsx-runtime";import ne from"./SectionBand.js";import{useEffect as z,useState as _}from"react";import{OTHER_REASON_ID as v}from"efficient-web-builder/format/lib/content/contact";import{FormFieldInput as te,FormHoneypot as ae,successMessageFor as le,useBoundForm as re,useFormSubmission as oe}from"./formSubmission.js";import se from"efficient-web-builder/render/components/SectionEyebrow";import ie,{FieldCaption as ce}from"./WebFormField.js";import{scrollBehavior as de}from"efficient-web-builder/render/components/useReducedMotion";import{renderChrome as q,renderGold as w,renderHeadline as me,splitParagraphs as pe}from"efficient-web-builder/render/components/goldPhrases";import{say as j}from"efficient-web-builder/format/lib/editor-words";import{phoneHref as fe}from"efficient-web-builder/format/lib/links/phone-href";import{PART_ROW_ATTR as ue,encodePartRow as xe}from"efficient-web-builder/render/lib/document/text-parts";const t={bodySmall:"text-[length:var(--size-body,14px)]",body:"text-[length:var(--size-body,15px)]",bodyLarge:"text-[length:var(--size-body,18px)]",headingSmall1:"text-[length:var(--size-headingSmall,24px)]",headingSmall2:"text-[length:var(--size-headingSmall,26px)]",labelXs:"text-[length:var(--size-label,10px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]",labelXl:"text-[length:var(--size-label,14px)]"},M={label:"Label",value:"Value",sub:"Sub line"};function be(i,l){return i.map((r,a)=>l?{...r,at:a,label:r.label||j(M.label),value:r.value||j(M.value),sub:r.sub||j(M.sub)}:{...r,at:a}).filter(r=>!r.hidden)}function A(i,l){return l?{[ue]:xe("channels",i.at)}:{}}function T(i){if(i.href)return i.href;const l=(i.value??"").trim();if(l.includes("@"))return`mailto:${l}`;if(/^\+?[\d\s().-]{6,}$/.test(l))return fe(l)}function ge(i){const l=[],r=new Map;for(const a of i){if(!a.groupId){l.push(a);continue}const p=a.value.trim().toLowerCase(),x=r.get(p);if(x)x.label=`${x.label} · ${a.label}`;else{const b={...a};r.set(p,b),l.push(b)}}return l}function he(i,l,r){const a=p=>String(p??"").trim().toLowerCase();for(const p of i?.fields??[]){if(p.type!=="select"||!Array.isArray(p.options))continue;const x=p.options.map(String);if(!l.some(d=>x.some(f=>a(f)===a(d.title))))continue;const b=d=>a(d===v?r:l.find(f=>f.id===d)?.title);return{key:p.key,optionFor:d=>x.find(f=>a(f)===b(d)&&b(d)!==""),idFor:d=>{const f=l.find($=>a($.title)===a(d));return f?f.id:r&&a(d)===a(r)?v:void 0}}}return null}const V=`border-b border-line bg-transparent py-4 font-display ${t.bodyLarge} tracking-[0.01em] text-fg outline-none transition-colors focus:border-accent`;function ve({routingNumber:i,routingTagline:l,groups:r,formNumber:a,formHeading:p,metaLines:x,showOther:b=!0,otherLabel:d="Other",otherNoteTitle:f,otherNoteBody:$,buttonText:O,consent:H,channels:B,formSlug:L,form:W,editing:y,initialActiveId:k,onActiveChange:P,reasonExtras:D}){const N=[...r.map(e=>e.id),...b?[v]:[]],G=k&&N.includes(k)?k:N[0]??v,[g,C]=_(G);z(()=>{N.includes(g)||C(N[0]??v)},[N.join("|")]),z(()=>{k&&N.includes(k)&&C(k)},[k]);const h=re(L,W),m=oe({form:h,formSlug:L,editing:y}),u=he(h,r,b?d:void 0),I=e=>{C(e),R(null);const o=u?.optionFor(e);u&&o!==void 0&&m.set(u.key,o),P?.(e)};z(()=>{if(!u||m.valueOf(u.key))return;const e=u.optionFor(g);e!==void 0&&m.set(u.key,e)},[u?.key]);const[X,R]=_(null),S=be(B??[],!!y),Z=e=>X!==null?!e.groupId&&e.value===X:e.groupId===g,J=h===void 0,E=!!h||!!y,[K,Q]=_(!1);z(()=>{const e=()=>Q(document.documentElement.getAttribute("data-theme")==="light");e();const o=new MutationObserver(e);return o.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>o.disconnect()},[]);const U=r.length>0||!!y;return s(ee,{children:[U&&s(ne,{className:"border-b border-line py-[60px]",style:K?void 0:{background:"var(--section-bg)"},children:[(i||l)&&s("div",{className:"mb-6 flex items-center gap-6 border-b border-line pb-6",children:[i&&n(se,{text:i}),l&&n("span",{className:`font-display ${t.bodySmall} uppercase tracking-[0.04em] text-fg-dim`,children:w(l)})]}),n("div",{className:"sf-card grid grid-cols-4 gap-[2px] border border-line bg-line max-[1100px]:grid-cols-2 max-[700px]:grid-cols-1",children:r.map(e=>{const o=g===e.id;return s("button",{type:"button",onClick:()=>{I(e.id),typeof window<"u"&&window.matchMedia("(max-width: 1100px)").matches&&document.getElementById("contact-form")?.scrollIntoView({behavior:de(),block:"start"})},className:["flex min-h-[240px] cursor-pointer flex-col gap-4 px-8 py-10 text-left transition-colors",o?"bg-surface outline outline-2 -outline-offset-2 outline-accent":"bg-bg hover:bg-surface"].join(" "),children:[e.eyebrow&&n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.24em] text-accent`,children:e.eyebrow}),n("h3",{className:`whitespace-pre-line font-heading3 ${t.headingSmall2} font-medium uppercase leading-[1.05] tracking-[-0.02em]`,children:e.title}),e.copy&&n("p",{className:`mt-auto font-display ${t.bodySmall} leading-[1.5] text-fg-dim`,children:e.copy}),e.response&&s("div",{className:`mt-2 flex justify-between border-t border-line pt-4 font-mono ${t.labelSmall} uppercase tracking-[0.22em] text-fg-dim`,children:[n("span",{children:"Response"}),n("strong",{className:"font-normal text-fg",children:e.response})]})]},e.id)})})]}),(E||S.length>0)&&n("section",{id:"contact-form",className:"scroll-mt-[80px] border-b border-line py-20 max-[1100px]:py-[60px]",children:s("div",{className:["mx-auto grid max-w-[var(--sf-site-width,1600px)] gap-20 px-[var(--sf-site-gutter,40px)] max-[1100px]:grid-cols-1 max-[1100px]:gap-[60px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",E&&S.length>0?"grid-cols-[1.3fr_1fr]":"grid-cols-1"].join(" "),children:[E&&s("div",{children:[s("div",{className:"mb-8 flex items-end justify-between gap-6 border-b border-line pb-6",children:[s("div",{children:[a&&n("div",{className:`pb-2 font-mono ${t.labelLarge} uppercase tracking-[0.3em] text-accent`,children:w(a)}),p&&n("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(36px,4vw,56px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:me(p,!0)})]}),!!(x&&x.length)&&n("div",{className:`text-right font-mono ${t.labelSmall} uppercase leading-[1.8] tracking-[0.22em] text-fg-dim max-[700px]:text-left`,children:x.map((e,o)=>n("div",{children:e},o))})]}),h?m.done?n("div",{className:`border border-accent bg-accent/[0.08] p-8 font-display ${t.body} leading-[1.6] text-fg-dim`,children:le(h,"Thanks — we've received your message.")}):s("form",{className:"grid grid-cols-2 gap-5 max-[700px]:grid-cols-1",onSubmit:m.handleSubmit,children:[h.fields.map(e=>n(ie,{label:e.label,required:e.required,className:e.type==="textarea"||e.type==="checkbox"?"col-span-2 max-[700px]:col-span-1":void 0,children:n(te,{field:e,value:m.valueOf(e.key),onChange:o=>{m.set(e.key,o);const c=u&&e.key===u.key?u.idFor(o):void 0;c!==void 0&&(C(c),R(null),P?.(c))},className:e.type==="textarea"?`${V} min-h-[140px] resize-y leading-[1.5]`:e.type==="checkbox"?"size-4 self-start accent-accent":V})},e.key)),s("div",{className:"col-span-2 flex flex-col gap-2 max-[700px]:col-span-1",children:[n(ce,{required:!0,children:"Reason"}),s("div",{className:"mt-1 flex flex-wrap gap-2",children:[r.map(e=>{const o=g===e.id;return n("button",{type:"button",onClick:()=>I(e.id),className:[`cursor-pointer border px-4 py-3 font-mono ${t.labelSmall} uppercase tracking-[0.2em] transition-colors`,o?"border-accent bg-accent text-bg":"border-line text-fg-dim hover:text-fg"].join(" "),children:e.title},e.id)}),b&&n("button",{type:"button",onClick:()=>I(v),className:[`cursor-pointer border px-4 py-3 font-mono ${t.labelSmall} uppercase tracking-[0.2em] transition-colors`,g===v?"border-accent bg-accent text-bg":"border-line text-fg-dim hover:text-fg"].join(" "),children:q(d)})]})]}),D?.(g),g===v&&(f||$)&&s("div",{className:"sf-card col-span-2 flex flex-col gap-2 border border-line bg-bg/40 p-5 max-[700px]:col-span-1",children:[f&&n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.24em] text-accent`,children:w(f)}),$&&pe($).map((e,o)=>n("p",{className:`font-display ${t.body} leading-[1.55] text-fg-dim`,children:w(e)},o))]}),n(ae,{value:m.honeypot,onChange:m.setHoneypot}),m.error&&n("p",{role:"alert",className:`col-span-2 font-mono ${t.labelSmall} uppercase tracking-[0.18em] text-alert max-[700px]:col-span-1`,children:m.error}),s("div",{className:"col-span-2 mt-5 flex flex-wrap items-center justify-between gap-6 border-t border-line pt-6 max-[700px]:col-span-1 max-[700px]:flex-col max-[700px]:items-stretch",children:[H&&n("span",{className:`max-w-[380px] font-mono ${t.labelSmall} uppercase leading-[1.6] tracking-[0.18em] text-fg-dim`,children:w(H)}),n("button",{type:y?"button":"submit",disabled:m.submitting,className:`cursor-pointer bg-btn px-8 py-5 font-mono ${t.labelXl} uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg disabled:cursor-wait disabled:opacity-60 max-[700px]:w-full`,children:m.submitting?"Sending…":O?q(O):"Send Message →"})]})]}):n("p",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.22em] text-fg-dim`,children:J?j("Loading form…"):j("Choose a form in the inspector, under Message form — until then this column is hidden on the live page and no message can be sent.")})]}),S.length>0&&n("aside",{className:"flex flex-col gap-0 max-[1100px]:hidden",children:S.map((e,o)=>{const c=Z(e),F=!!!e.groupId;return s("div",{...A(e,y),onClick:F?()=>R(e.value):void 0,className:["relative flex flex-col gap-3 border-b border-line border-l-2 px-5 py-8 transition-all",F?"cursor-pointer border-t-2 border-t-accent":"",c?"border-l-accent pl-6":F?"border-l-transparent hover:bg-accent/[0.04]":"border-l-transparent"].join(" "),style:c?{background:"color-mix(in oklab, var(--accent) 8%, transparent)"}:void 0,children:[c&&!!h&&s("span",{className:"absolute right-[18px] top-6 flex flex-col items-end gap-0.5 text-right",children:[n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.24em] text-accent`,children:"→ Message routes here"}),n("span",{className:`font-mono ${t.labelXs} uppercase tracking-[0.18em] text-fg-dim`,children:"Other inboxes filter as spam"})]}),n("span",{className:[`font-mono ${t.labelSmall} uppercase tracking-[0.3em] transition-colors`,c?"text-fg":"text-accent"].join(" "),children:e.label}),F?n("a",{href:e.href,onClick:Y=>Y.stopPropagation(),className:[`font-heading3 ${t.headingSmall1} font-medium leading-[1.2] tracking-[-0.02em] transition-colors hover:text-accent`,c?"text-accent":"text-fg"].join(" "),children:e.value}):n("a",{href:T(e),className:[`font-heading3 ${t.headingSmall1} font-medium leading-[1.2] tracking-[-0.02em]`,c?"text-accent":"text-fg"].join(" "),children:e.value}),e.sub&&n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,children:e.sub})]},`${e.value}-${o}`)})}),S.length>0&&n("div",{"data-contact-phone-list":!0,className:"hidden flex-col gap-0 max-[1100px]:flex",children:ge(S).map((e,o)=>{const c=!!e.groupId;return s("div",{...A(e,y),className:["flex flex-col gap-3 border-b border-line px-5 py-5",c?"":"border-t-2 border-t-accent"].join(" "),children:[n("span",{className:[`font-mono ${t.labelSmall} uppercase tracking-[0.3em]`,c?"text-fg":"text-accent"].join(" "),children:e.label}),n("a",{href:T(e),className:[`font-heading3 ${t.headingSmall1} font-medium leading-[1.2] tracking-[-0.02em] [overflow-wrap:anywhere]`,c?"text-accent":"text-fg"].join(" "),children:e.value}),e.sub&&n("span",{className:`font-mono ${t.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,children:e.sub})]},`${e.value}-${o}`)})})]})})]})}export{M as CHANNEL_HINTS,T as channelHref,ve as default,be as drawnChannels,V as fieldClass,ge as mergeChannelsForPhone,he as topicFieldOf};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useState as w}from"react";import j from"next/image";import S from"efficient-web-builder/render/components/Placeholder";import{withRMark as m}from"efficient-web-builder/render/components/RMark";import{galleryCaptionIsBelow as $,galleryCardRatioClass as T}from"efficient-web-builder/format/lib/content/gallery-card-layout";import{partDisplayClass as _}from"efficient-web-builder/format/lib/content/part-display";import{PART_STYLE_KIND_ATTR as R,PART_STYLE_OWNER_ATTR as A}from"efficient-web-builder/render/lib/puck/text-parts";import C from"efficient-web-builder/render/components/PartStyledKind";function E({build:e,hiddenMobile:g,alwaysShowOverlay:h,forceHover:o,index:l,total:c,ratio:y,captionPlace:u,display:v,displayPhone:b,styleOwner:p,editing:x=!1}){const a=s=>_(v,b,s),r=s=>x&&p?{[A]:p,[R]:`@${s}`}:{},i=(s,d)=>!x&&p?t(C,{kind:`@${s}`,shared:!0,children:d}):d,[N,z]=w(!1),k=$(u),f=n("div",{className:["sf-card group relative overflow-hidden bg-surface-2",T(y),g?"max-[800px]:hidden":""].join(" "),children:[n("div",{className:["absolute inset-0 z-[1] flex items-center justify-center transition-[transform,filter,opacity] duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",o?"scale-[1.06] opacity-0 [filter:brightness(0.5)]":"group-hover:scale-[1.06] group-hover:opacity-0 group-hover:[filter:brightness(0.5)]"].join(" "),children:[t(S,{label:e.imageLabel,src:e.imageSrc}),t("div",{className:"absolute inset-0",style:{background:"rgba(0,0,0,0.35)"}})]}),t("div",{className:["absolute inset-0 z-[1] flex items-center justify-center transition-[transform,filter,opacity] duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",o?"opacity-100 scale-[1.06] [filter:brightness(0.5)]":"opacity-0 group-hover:scale-[1.06] group-hover:opacity-100 group-hover:[filter:brightness(0.5)]"].join(" "),style:{background:"var(--site-surface)"},children:e.detailSrc&&t(j,{src:e.detailSrc,alt:"",fill:!0,sizes:"(max-width: 800px) 100vw, (max-width: 1500px) 33vw, 25vw",loading:"lazy",className:"absolute inset-0 z-[3] object-cover",style:{display:N?"none":"block"},onError:()=>z(!0)})}),(e.process||l!=null&&c!=null)&&n("div",{className:"pointer-events-none absolute top-3 left-3 right-3 z-[3] flex items-baseline gap-2 max-[800px]:top-2.5 max-[800px]:left-2.5 max-[800px]:right-2.5",children:[e.process&&t("span",{...r("tag"),className:["min-w-0 truncate font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] text-accent",a("tag"),"transition-opacity duration-300 ease-out",h||o?"opacity-100":"opacity-0 group-hover:opacity-100 max-[800px]:opacity-100"].join(" "),children:i("tag",m(e.process))}),l!=null&&c!=null&&t("span",{...r("number"),className:`ml-auto shrink-0 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] ${a("number")}`.trim(),style:{color:"rgba(245,241,232,0.7)"},children:i("number",`${String(l).padStart(2,"0")} / ${String(c).padStart(2,"0")}`)})]}),t("div",{className:["absolute inset-0 z-[2]","transition-[opacity,transform] duration-300 ease-out",h||o?"opacity-100 translate-y-0":"opacity-0 translate-y-2 group-hover:opacity-100 group-hover:translate-y-0 max-[800px]:opacity-100 max-[800px]:translate-y-0"].join(" "),style:{color:"var(--overlay-fg)",background:"linear-gradient(180deg, transparent 40%, rgba(10,10,10,.85) 100%)"},children:n("div",{className:"absolute inset-x-0 bottom-0 top-9 flex flex-col justify-end gap-1 overflow-hidden p-6 max-[800px]:top-8 max-[800px]:p-3.5",children:[e.car&&t("div",{...r("eyebrow"),className:`truncate font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.2em] text-accent max-[800px]:text-[length:var(--size-label,11px)] max-[800px]:tracking-[0.15em] ${a("eyebrow")}`.trim(),children:i("eyebrow",e.car)}),e.wheel&&t("div",{...r("title"),className:`font-heading3 text-[length:var(--size-headingSmall,22px)] font-medium leading-[1.05] tracking-[-0.02em] max-[800px]:text-[length:var(--size-body,16px)] ${a("title")}`.trim(),children:i("title",e.wheel)}),e.finish&&t("div",{...r("meta"),className:`mt-1.5 flex gap-3.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.12em] ${a("meta")}`.trim(),style:{color:"rgba(245,241,232,0.7)"},children:t("span",{children:i("meta",m(e.finish))})})]})})]});return k?n("div",{className:g?"max-[800px]:hidden":"",children:[f,n("div",{className:"bg-surface px-3.5 pt-3 pb-3.5",children:[e.wheel&&t("div",{...r("title"),className:`font-display text-[length:var(--size-body,15px)] font-medium leading-[1.25] tracking-[-0.01em] text-fg ${a("title")}`.trim(),children:i("title",e.wheel)}),(e.finish||e.car)&&t("div",{...r(e.finish?"meta":"eyebrow"),className:`mt-0.5 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] text-fg-dim ${a(e.finish?"meta":"eyebrow")}`.trim(),children:i(e.finish?"meta":"eyebrow",m(e.finish||e.car))})]})]}):f}export{E as default};
1
+ "use client";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useState as w}from"react";import j from"next/image";import S from"efficient-web-builder/render/components/Placeholder";import{withRMark as m}from"efficient-web-builder/render/components/RMark";import{galleryCaptionIsBelow as $,galleryCardRatioClass as T}from"efficient-web-builder/format/lib/content/gallery-card-layout";import{partDisplayClass as _}from"efficient-web-builder/format/lib/content/part-display";import{PART_STYLE_KIND_ATTR as R,PART_STYLE_OWNER_ATTR as A}from"efficient-web-builder/render/lib/document/text-parts";import C from"efficient-web-builder/render/components/PartStyledKind";function E({build:e,hiddenMobile:g,alwaysShowOverlay:h,forceHover:o,index:l,total:c,ratio:y,captionPlace:u,display:v,displayPhone:b,styleOwner:p,editing:x=!1}){const a=s=>_(v,b,s),r=s=>x&&p?{[A]:p,[R]:`@${s}`}:{},i=(s,d)=>!x&&p?t(C,{kind:`@${s}`,shared:!0,children:d}):d,[N,z]=w(!1),k=$(u),f=n("div",{className:["sf-card group relative overflow-hidden bg-surface-2",T(y),g?"max-[800px]:hidden":""].join(" "),children:[n("div",{className:["absolute inset-0 z-[1] flex items-center justify-center transition-[transform,filter,opacity] duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",o?"scale-[1.06] opacity-0 [filter:brightness(0.5)]":"group-hover:scale-[1.06] group-hover:opacity-0 group-hover:[filter:brightness(0.5)]"].join(" "),children:[t(S,{label:e.imageLabel,src:e.imageSrc}),t("div",{className:"absolute inset-0",style:{background:"rgba(0,0,0,0.35)"}})]}),t("div",{className:["absolute inset-0 z-[1] flex items-center justify-center transition-[transform,filter,opacity] duration-700 [transition-timing-function:cubic-bezier(.2,.6,.2,1)]",o?"opacity-100 scale-[1.06] [filter:brightness(0.5)]":"opacity-0 group-hover:scale-[1.06] group-hover:opacity-100 group-hover:[filter:brightness(0.5)]"].join(" "),style:{background:"var(--site-surface)"},children:e.detailSrc&&t(j,{src:e.detailSrc,alt:"",fill:!0,sizes:"(max-width: 800px) 100vw, (max-width: 1500px) 33vw, 25vw",loading:"lazy",className:"absolute inset-0 z-[3] object-cover",style:{display:N?"none":"block"},onError:()=>z(!0)})}),(e.process||l!=null&&c!=null)&&n("div",{className:"pointer-events-none absolute top-3 left-3 right-3 z-[3] flex items-baseline gap-2 max-[800px]:top-2.5 max-[800px]:left-2.5 max-[800px]:right-2.5",children:[e.process&&t("span",{...r("tag"),className:["min-w-0 truncate font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] text-accent",a("tag"),"transition-opacity duration-300 ease-out",h||o?"opacity-100":"opacity-0 group-hover:opacity-100 max-[800px]:opacity-100"].join(" "),children:i("tag",m(e.process))}),l!=null&&c!=null&&t("span",{...r("number"),className:`ml-auto shrink-0 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] ${a("number")}`.trim(),style:{color:"rgba(245,241,232,0.7)"},children:i("number",`${String(l).padStart(2,"0")} / ${String(c).padStart(2,"0")}`)})]}),t("div",{className:["absolute inset-0 z-[2]","transition-[opacity,transform] duration-300 ease-out",h||o?"opacity-100 translate-y-0":"opacity-0 translate-y-2 group-hover:opacity-100 group-hover:translate-y-0 max-[800px]:opacity-100 max-[800px]:translate-y-0"].join(" "),style:{color:"var(--overlay-fg)",background:"linear-gradient(180deg, transparent 40%, rgba(10,10,10,.85) 100%)"},children:n("div",{className:"absolute inset-x-0 bottom-0 top-9 flex flex-col justify-end gap-1 overflow-hidden p-6 max-[800px]:top-8 max-[800px]:p-3.5",children:[e.car&&t("div",{...r("eyebrow"),className:`truncate font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.2em] text-accent max-[800px]:text-[length:var(--size-label,11px)] max-[800px]:tracking-[0.15em] ${a("eyebrow")}`.trim(),children:i("eyebrow",e.car)}),e.wheel&&t("div",{...r("title"),className:`font-heading3 text-[length:var(--size-headingSmall,22px)] font-medium leading-[1.05] tracking-[-0.02em] max-[800px]:text-[length:var(--size-body,16px)] ${a("title")}`.trim(),children:i("title",e.wheel)}),e.finish&&t("div",{...r("meta"),className:`mt-1.5 flex gap-3.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.12em] ${a("meta")}`.trim(),style:{color:"rgba(245,241,232,0.7)"},children:t("span",{children:i("meta",m(e.finish))})})]})})]});return k?n("div",{className:g?"max-[800px]:hidden":"",children:[f,n("div",{className:"bg-surface px-3.5 pt-3 pb-3.5",children:[e.wheel&&t("div",{...r("title"),className:`font-display text-[length:var(--size-body,15px)] font-medium leading-[1.25] tracking-[-0.01em] text-fg ${a("title")}`.trim(),children:i("title",e.wheel)}),(e.finish||e.car)&&t("div",{...r(e.finish?"meta":"eyebrow"),className:`mt-0.5 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] text-fg-dim ${a(e.finish?"meta":"eyebrow")}`.trim(),children:i(e.finish?"meta":"eyebrow",m(e.finish||e.car))})]})]}):f}export{E as default};