efficient-storefront-blocks 0.75.0 → 0.77.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 (278) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/chunks/EditorPreviewCheckout-GNQP4MQ4.js +4 -0
  3. package/dist/chunks/{SiteEditorProvider-N4T55FAV.js → SiteEditorProvider-R3HXJAPW.js} +1 -1
  4. package/dist/chunks/chunk-BOJGJXIU.js +311 -0
  5. package/dist/chunks/chunk-CAULWKXR.js +1 -0
  6. package/dist/chunks/chunk-GDR5GGVW.js +1 -0
  7. package/dist/chunks/chunk-OWYNZAAY.js +1 -0
  8. package/dist/chunks/chunk-ZIZWJZ5T.js +1 -0
  9. package/dist/chunks/{fitment-data-5ZSHENM3.js → fitment-data-JNQKYQIB.js} +1 -1
  10. package/dist/contract.js +2 -2
  11. package/dist/editor/components/BlogSource.js +1 -1
  12. package/dist/editor/components/CategoryProductFields.d.ts +22 -0
  13. package/dist/editor/components/CategoryProductFields.js +1 -0
  14. package/dist/editor/components/CategorySource.d.ts +12 -0
  15. package/dist/editor/components/CategorySource.js +1 -1
  16. package/dist/editor/components/CollectionPicker.js +1 -1
  17. package/dist/editor/components/CountryShowAsTiles.js +1 -1
  18. package/dist/editor/components/EditorPreviewChat.js +1 -11
  19. package/dist/editor/components/EditorPreviewSurface.js +1 -1
  20. package/dist/editor/components/GalleryProductBinding.js +1 -1
  21. package/dist/editor/components/GalleryShowcaseSource.js +1 -1
  22. package/dist/editor/components/HeaderSettingsPanel.d.ts +8 -4
  23. package/dist/editor/components/HeaderSettingsPanel.js +1 -1
  24. package/dist/editor/components/MenuPicker.js +1 -1
  25. package/dist/editor/components/PreviewProductPicker.js +1 -1
  26. package/dist/editor/components/ProductHeroSource.js +1 -1
  27. package/dist/editor/components/ProductPicker.js +1 -1
  28. package/dist/editor/components/SocialLinksDoor.js +1 -1
  29. package/dist/editor/components/SpecTableSource.js +1 -1
  30. package/dist/editor/lib/document/block-align-row.d.ts +2 -0
  31. package/dist/editor/lib/document/block-align-row.js +1 -0
  32. package/dist/editor/lib/document/blocks/commerce/AccountBlock/fields.js +1 -1
  33. package/dist/editor/lib/document/blocks/commerce/AlloyWheelsListing/fields.js +1 -1
  34. package/dist/editor/lib/document/blocks/commerce/BundleOffer/fields.js +1 -1
  35. package/dist/editor/lib/document/blocks/commerce/CartBlock/fields.js +1 -1
  36. package/dist/editor/lib/document/blocks/commerce/CatalogFilterBar/fields.js +1 -1
  37. package/dist/editor/lib/document/blocks/commerce/CheckoutCTA/fields.js +1 -1
  38. package/dist/editor/lib/document/blocks/commerce/CollectionCard/fields.js +1 -1
  39. package/dist/editor/lib/document/blocks/commerce/Collections/fields.js +1 -1
  40. package/dist/editor/lib/document/blocks/commerce/CompatibleTyres/fields.js +1 -1
  41. package/dist/editor/lib/document/blocks/commerce/CountrySwitchBlock/fields.js +1 -1
  42. package/dist/editor/lib/document/blocks/commerce/DeliveryOptions/fields.js +1 -1
  43. package/dist/editor/lib/document/blocks/commerce/DetailRows/fields.js +1 -1
  44. package/dist/editor/lib/document/blocks/commerce/EuTyreLabel/fields.js +1 -1
  45. package/dist/editor/lib/document/blocks/commerce/FitmentFinder/fields.js +1 -1
  46. package/dist/editor/lib/document/blocks/commerce/FitmentTable/fields.js +1 -1
  47. package/dist/editor/lib/document/blocks/commerce/Gallery/fields.js +1 -1
  48. package/dist/editor/lib/document/blocks/commerce/GalleryB/fields.js +1 -1
  49. package/dist/editor/lib/document/blocks/commerce/GalleryItem/fields.js +1 -1
  50. package/dist/editor/lib/document/blocks/commerce/ProductGallery/fields.d.ts +2 -2
  51. package/dist/editor/lib/document/blocks/commerce/ProductGallery/fields.js +1 -1
  52. package/dist/editor/lib/document/blocks/commerce/ProductGrid/fields.js +1 -1
  53. package/dist/editor/lib/document/blocks/commerce/ProductHero/fields.js +1 -1
  54. package/dist/editor/lib/document/blocks/commerce/RelatedProducts/fields.js +1 -1
  55. package/dist/editor/lib/document/blocks/commerce/SearchBlock/fields.js +1 -1
  56. package/dist/editor/lib/document/blocks/commerce/SpecTable/fields.js +1 -1
  57. package/dist/editor/lib/document/blocks/commerce/TyreFitment/fields.js +1 -1
  58. package/dist/editor/lib/document/blocks/commerce/TyreSizes/fields.js +1 -1
  59. package/dist/editor/lib/document/blocks/commerce/shared-fields.d.ts +1 -0
  60. package/dist/editor/lib/document/blocks/commerce/shared-fields.js +1 -1
  61. package/dist/editor/lib/document/blocks/service/AppointmentBooking/fields.js +1 -1
  62. package/dist/editor/lib/document/blocks/service/BookingBox/fields.js +1 -1
  63. package/dist/editor/lib/document/blocks/service/ContactCards/fields.js +1 -1
  64. package/dist/editor/lib/document/blocks/service/ContactRouting/fields.js +1 -1
  65. package/dist/editor/lib/document/blocks/service/Events/fields.js +1 -1
  66. package/dist/editor/lib/document/blocks/service/Footer/fields.js +1 -1
  67. package/dist/editor/lib/document/blocks/service/FooterDivider/fields.js +1 -1
  68. package/dist/editor/lib/document/blocks/service/FooterEmailSignup/fields.js +1 -1
  69. package/dist/editor/lib/document/blocks/service/FooterGroup/fields.js +1 -1
  70. package/dist/editor/lib/document/blocks/service/FooterLogo/fields.js +1 -1
  71. package/dist/editor/lib/document/blocks/service/FooterMenu/fields.js +1 -1
  72. package/dist/editor/lib/document/blocks/service/FooterMessaging/fields.js +1 -1
  73. package/dist/editor/lib/document/blocks/service/FooterPayment/fields.js +1 -1
  74. package/dist/editor/lib/document/blocks/service/FooterSocial/fields.js +1 -1
  75. package/dist/editor/lib/document/blocks/service/FooterText/fields.js +1 -1
  76. package/dist/editor/lib/document/blocks/service/Form/fields.js +1 -1
  77. package/dist/editor/lib/document/blocks/service/MessagingCards/fields.js +1 -1
  78. package/dist/editor/lib/document/blocks/service/OpeningHours/fields.js +1 -1
  79. package/dist/editor/lib/document/blocks/service/RateTable/fields.js +1 -1
  80. package/dist/editor/lib/document/blocks/service/RatingBlock/fields.js +1 -1
  81. package/dist/editor/lib/document/blocks/service/ReviewForm/fields.js +1 -1
  82. package/dist/editor/lib/document/blocks/service/Reviews/fields.js +1 -1
  83. package/dist/editor/lib/document/blocks/service/SiteHeader/fields.js +1 -1
  84. package/dist/editor/lib/document/blocks/service/SubmitBox/fields.js +1 -1
  85. package/dist/editor/lib/document/blocks/service/SubmitBuild/fields.js +1 -1
  86. package/dist/editor/lib/document/blocks/service/Subscribe/fields.js +1 -1
  87. package/dist/editor/lib/document/blocks/service/SubscribeBlogs/fields.js +1 -1
  88. package/dist/editor/lib/document/box-header.js +1 -1
  89. package/dist/editor/lib/document/config.d.ts +16 -16
  90. package/dist/editor/lib/document/config.js +1 -1
  91. package/dist/editor/lib/editor-currency-source.js +1 -1
  92. package/dist/editor/lib/storefront-editor-words.d.ts +10 -13
  93. package/dist/editor/lib/storefront-editor-words.js +1 -1
  94. package/dist/editor.css +1 -1
  95. package/dist/index.js +214 -724
  96. package/dist/links.js +1 -1
  97. package/dist/render/app/globals.css +45 -79
  98. package/dist/render/built-with.json +1 -1
  99. package/dist/render/components/BoxHeaderBar.js +1 -1
  100. package/dist/render/components/CartContext.d.ts +1 -0
  101. package/dist/render/components/CartContext.js +1 -1
  102. package/dist/render/components/CartDrawer.js +2 -2
  103. package/dist/render/components/CatalogFilterBarSection.d.ts +1 -1
  104. package/dist/render/components/CatalogFilterBarSection.js +1 -1
  105. package/dist/render/components/ChatWidget.js +1 -1
  106. package/dist/render/components/Collections.js +1 -1
  107. package/dist/render/components/CompatibleTyres.js +1 -1
  108. package/dist/render/components/ConsentPanel.js +1 -1
  109. package/dist/render/components/ContactRouting.js +1 -1
  110. package/dist/render/components/CouponField.js +1 -1
  111. package/dist/render/components/CurrencyContext.js +1 -1
  112. package/dist/render/components/Events.d.ts +2 -1
  113. package/dist/render/components/Events.js +1 -1
  114. package/dist/render/components/FitmentTable.js +1 -1
  115. package/dist/render/components/FooterGroup.d.ts +3 -2
  116. package/dist/render/components/FooterGroup.js +1 -1
  117. package/dist/render/components/FooterLogo.d.ts +2 -1
  118. package/dist/render/components/FooterMenu.js +1 -1
  119. package/dist/render/components/FooterPayment.d.ts +1 -2
  120. package/dist/render/components/FooterPayment.js +1 -1
  121. package/dist/render/components/FooterSocial.d.ts +1 -2
  122. package/dist/render/components/FooterSocial.js +1 -1
  123. package/dist/render/components/FormBlock.js +1 -1
  124. package/dist/render/components/GalleryGrid.d.ts +2 -1
  125. package/dist/render/components/GalleryGrid.js +1 -1
  126. package/dist/render/components/GalleryItem.js +1 -1
  127. package/dist/render/components/GalleryShowcase.js +1 -1
  128. package/dist/render/components/Header.js +1 -1
  129. package/dist/render/components/HeaderTools.js +1 -1
  130. package/dist/render/components/Lightbox.d.ts +2 -2
  131. package/dist/render/components/Lightbox.js +1 -1
  132. package/dist/render/components/LinkedProductHero.d.ts +2 -0
  133. package/dist/render/components/Notice.d.ts +6 -0
  134. package/dist/render/components/Notice.js +1 -0
  135. package/dist/render/components/PopupFrame.d.ts +17 -4
  136. package/dist/render/components/PopupFrame.js +1 -1
  137. package/dist/render/components/ProductGallery.js +1 -1
  138. package/dist/render/components/ProductGridSection.d.ts +2 -1
  139. package/dist/render/components/ProductGridSection.js +1 -1
  140. package/dist/render/components/ProductHeroPanel.d.ts +3 -1
  141. package/dist/render/components/ProductHeroPanel.js +1 -1
  142. package/dist/render/components/ProductLightbox.js +1 -1
  143. package/dist/render/components/ReviewForm.js +1 -1
  144. package/dist/render/components/SpecTable.d.ts +2 -1
  145. package/dist/render/components/SpecTable.js +1 -1
  146. package/dist/render/components/SubscribePopup.js +2 -2
  147. package/dist/render/components/TyreFitVerdicts.d.ts +2 -1
  148. package/dist/render/components/TyreFitVerdicts.js +1 -1
  149. package/dist/render/components/TyreRenderSvg.js +1 -1
  150. package/dist/render/components/TyreVehicleFitment.js +1 -1
  151. package/dist/render/components/WheelCardFrame.d.ts +3 -0
  152. package/dist/render/components/WheelCardFrame.js +1 -1
  153. package/dist/render/components/booking/BookingRegions.js +1 -1
  154. package/dist/render/components/catalog/CatalogFilterBar.d.ts +4 -4
  155. package/dist/render/components/catalog/CatalogFilterBar.js +1 -1
  156. package/dist/render/components/catalog/CatalogFilterContext.d.ts +5 -3
  157. package/dist/render/components/catalog/CatalogFilterContext.js +1 -1
  158. package/dist/render/components/catalog/FilterPill.d.ts +3 -1
  159. package/dist/render/components/catalog/FilterPill.js +1 -1
  160. package/dist/render/components/checkout/CheckoutPageClient.d.ts +4 -0
  161. package/dist/render/components/checkout/CheckoutPageClient.js +1 -1
  162. package/dist/render/components/checkout/checkout-parts.js +1 -1
  163. package/dist/render/components/checkout/checkout-state.d.ts +25 -1
  164. package/dist/render/components/checkout/checkout-state.js +3 -3
  165. package/dist/render/components/fitment/StockFitmentCard.js +1 -1
  166. package/dist/render/components/pdp-dynamic/DynamicProductGallery.js +1 -1
  167. package/dist/render/components/pdp-dynamic/DynamicProductHero.d.ts +2 -0
  168. package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.js +1 -1
  169. package/dist/render/components/pdp-dynamic/DynamicSpecTable.js +1 -1
  170. package/dist/render/components/pdp-dynamic/RecordPhotoGallery.js +1 -1
  171. package/dist/render/components/product-hero/TyreHeroFitment.d.ts +2 -1
  172. package/dist/render/components/product-hero/TyreHeroFitment.js +1 -1
  173. package/dist/render/components/product-hero/VehicleQuestion.d.ts +1 -6
  174. package/dist/render/components/product-hero/VehicleQuestion.js +1 -1
  175. package/dist/render/components/product-hero/WheelHeroFitment.js +1 -1
  176. package/dist/render/components/product-hero/trust-bullets.d.ts +5 -0
  177. package/dist/render/components/product-hero/trust-bullets.js +1 -0
  178. package/dist/render/components/useModalDismiss.d.ts +2 -1
  179. package/dist/render/components/useModalDismiss.js +1 -1
  180. package/dist/render/components/useTyreFitAnswer.d.ts +1 -0
  181. package/dist/render/components/useTyreFitAnswer.js +1 -1
  182. package/dist/render/components/wheels-plp/AlloyWheelsListing.js +1 -1
  183. package/dist/render/components/wheels-plp/PlpNotifyMeDialog.js +1 -1
  184. package/dist/render/lib/api/index.d.ts +6 -3
  185. package/dist/render/lib/api/index.js +1 -1
  186. package/dist/render/lib/api/types.d.ts +3 -0
  187. package/dist/render/lib/booking/appointment-time.d.ts +2 -0
  188. package/dist/render/lib/booking/appointment-time.js +1 -0
  189. package/dist/render/lib/catalog/from-wheel.js +1 -1
  190. package/dist/render/lib/catalog/plp-item.js +1 -1
  191. package/dist/render/lib/checkout/pay-first.d.ts +34 -0
  192. package/dist/render/lib/checkout/pay-first.js +1 -0
  193. package/dist/render/lib/checkout/stripe-appearance.d.ts +10 -0
  194. package/dist/render/lib/checkout/stripe-appearance.js +1 -0
  195. package/dist/render/lib/checkout/wallet-return.d.ts +1 -1
  196. package/dist/render/lib/commerce.d.ts +1 -0
  197. package/dist/render/lib/commerce.js +1 -1
  198. package/dist/render/lib/content/legacy-block-align.d.ts +2 -0
  199. package/dist/render/lib/content/legacy-block-align.js +1 -0
  200. package/dist/render/lib/content/menu-row.d.ts +0 -3
  201. package/dist/render/lib/content/menu-row.js +1 -1
  202. package/dist/render/lib/document/blocks/commerce/AlloyWheelsListing/meta.js +1 -1
  203. package/dist/render/lib/document/blocks/commerce/BundleOffer/meta.js +1 -1
  204. package/dist/render/lib/document/blocks/commerce/CheckoutCTA/meta.js +1 -1
  205. package/dist/render/lib/document/blocks/commerce/Collections/meta.js +1 -1
  206. package/dist/render/lib/document/blocks/commerce/CompatibleTyres/meta.js +1 -1
  207. package/dist/render/lib/document/blocks/commerce/DeliveryOptions/meta.js +1 -1
  208. package/dist/render/lib/document/blocks/commerce/DetailRows/meta.js +1 -1
  209. package/dist/render/lib/document/blocks/commerce/EuTyreLabel/meta.js +1 -1
  210. package/dist/render/lib/document/blocks/commerce/FitmentFinder/meta.js +1 -1
  211. package/dist/render/lib/document/blocks/commerce/FitmentTable/meta.js +1 -1
  212. package/dist/render/lib/document/blocks/commerce/GalleryB/render.js +1 -1
  213. package/dist/render/lib/document/blocks/commerce/ProductGrid/meta.js +1 -1
  214. package/dist/render/lib/document/blocks/commerce/ProductGrid/render.js +1 -1
  215. package/dist/render/lib/document/blocks/commerce/ProductHero/meta.d.ts +6 -0
  216. package/dist/render/lib/document/blocks/commerce/ProductHero/meta.js +1 -1
  217. package/dist/render/lib/document/blocks/commerce/ProductHero/render.js +1 -1
  218. package/dist/render/lib/document/blocks/commerce/RelatedProducts/meta.js +1 -1
  219. package/dist/render/lib/document/blocks/commerce/SpecTable/meta.js +1 -1
  220. package/dist/render/lib/document/blocks/commerce/SpecTable/render.js +1 -1
  221. package/dist/render/lib/document/blocks/commerce/TyreFitment/meta.js +1 -1
  222. package/dist/render/lib/document/blocks/commerce/TyreSizes/meta.js +1 -1
  223. package/dist/render/lib/document/blocks/service/ContactCards/meta.js +1 -1
  224. package/dist/render/lib/document/blocks/service/ContactRouting/meta.js +1 -1
  225. package/dist/render/lib/document/blocks/service/Events/render.js +1 -1
  226. package/dist/render/lib/document/blocks/service/FooterGroup/render.js +1 -1
  227. package/dist/render/lib/document/blocks/service/FooterPayment/meta.js +1 -1
  228. package/dist/render/lib/document/blocks/service/FooterSocial/meta.js +1 -1
  229. package/dist/render/lib/document/blocks/service/MessagingCards/meta.js +1 -1
  230. package/dist/render/lib/document/blocks/service/OpeningHours/meta.js +1 -1
  231. package/dist/render/lib/document/blocks/service/RateTable/meta.js +1 -1
  232. package/dist/render/lib/document/blocks/service/SubmitBuild/meta.js +1 -1
  233. package/dist/render/lib/document/blocks/service/Subscribe/meta.js +1 -1
  234. package/dist/render/lib/document/blocks/service/SubscribeBlogs/meta.js +1 -1
  235. package/dist/render/lib/document/lazy-draws.js +1 -1
  236. package/dist/render/lib/document/render-client.d.ts +8 -3
  237. package/dist/render/lib/document/render-client.js +1 -1
  238. package/dist/render/lib/document/section-to-box-rows-reviews.js +1 -1
  239. package/dist/render/lib/document/storefront-root.d.ts +0 -2
  240. package/dist/render/lib/document/storefront-root.js +1 -1
  241. package/dist/render/lib/field-input.d.ts +1 -0
  242. package/dist/render/lib/field-input.js +1 -0
  243. package/dist/render/lib/sections/content-cap-gutter.d.ts +1 -0
  244. package/dist/render/lib/sections/content-cap-gutter.js +1 -0
  245. package/dist/render/lib/sections/hero-trust-bullets.d.ts +2 -0
  246. package/dist/render/lib/sections/hero-trust-bullets.js +1 -0
  247. package/dist/render/lib/tyres/spec-sheet.d.ts +17 -0
  248. package/dist/render/lib/tyres/spec-sheet.js +1 -1
  249. package/dist/render/lib/tyres/tyre-fit-copy.js +1 -1
  250. package/dist/render/lib/tyres/tyre-vehicle-fitment.d.ts +3 -1
  251. package/dist/render/lib/tyres/tyre-vehicle-fitment.js +1 -1
  252. package/dist/render/lib/use-scope-class.d.ts +1 -0
  253. package/dist/render/lib/use-scope-class.js +1 -0
  254. package/dist/render/lib/wheels/catalog-default-layout.d.ts +3 -3
  255. package/dist/render/lib/wheels/catalog-default-layout.js +1 -1
  256. package/dist/render/lib/wheels/catalog-filters.d.ts +2 -2
  257. package/dist/render/lib/wheels/catalog-filters.js +1 -1
  258. package/dist/render/lib/wheels/grid-source.d.ts +7 -1
  259. package/dist/render/lib/wheels/grid-source.js +1 -1
  260. package/dist/render/lib/wheels/plp-hydrate.js +1 -1
  261. package/dist/words.d.ts +46 -50
  262. package/dist/words.js +6 -6
  263. package/package.json +4 -4
  264. package/dist/chunks/EditorPreviewCheckout-27GNLSNR.js +0 -4
  265. package/dist/chunks/chunk-3TBLX25X.js +0 -1
  266. package/dist/chunks/chunk-4V6BLJSG.js +0 -1
  267. package/dist/chunks/chunk-K26JUDGZ.js +0 -1
  268. package/dist/chunks/chunk-SJODSVWU.js +0 -1
  269. package/dist/chunks/chunk-WPHE7RI4.js +0 -246
  270. package/dist/render/components/product-hero/hero-content.d.ts +0 -7
  271. package/dist/render/components/product-hero/hero-content.js +0 -1
  272. package/dist/render/components/useIsLightTheme.d.ts +0 -1
  273. package/dist/render/components/useIsLightTheme.js +0 -1
  274. package/dist/render/lib/content/product-hero.d.ts +0 -14
  275. package/dist/render/lib/content/product-hero.js +0 -1
  276. package/dist/render/lib/wheels/collections.d.ts +0 -22
  277. package/dist/render/lib/wheels/collections.js +0 -1
  278. /package/dist/chunks/{chunk-WPHE7RI4.js.LEGAL.txt → chunk-BOJGJXIU.js.LEGAL.txt} +0 -0
@@ -60,6 +60,7 @@ export interface EventsProps {
60
60
  limit?: number;
61
61
  showAll?: boolean;
62
62
  gap?: number | string;
63
+ gapPhone?: unknown;
63
64
  layout?: string;
64
65
  featuredWidth?: number;
65
66
  listCover?: boolean;
@@ -72,4 +73,4 @@ export interface EventsProps {
72
73
  padBottom?: number;
73
74
  }
74
75
  export declare function matchesName(title: string, typed: string): boolean;
75
- export default function Events({ num, title, link, posts, columns, limit, showAll, editing, cardImage, gap: gapProp, layout, featuredWidth, listCover, featuredDarken, omitHead, sample, nameFilter, padTop, padBottom, }: EventsProps): import("react").JSX.Element | null;
76
+ export default function Events({ num, title, link, posts, columns, limit, showAll, editing, cardImage, gap: gapProp, gapPhone, layout, featuredWidth, listCover, featuredDarken, omitHead, sample, nameFilter, padTop, padBottom, }: EventsProps): import("react").JSX.Element | null;
@@ -1 +1 @@
1
- import{jsx as n,jsxs as o}from"react/jsx-runtime";import{useId as ge,useState as G}from"react";import{containerGapProps as ue}from"efficient-web-builder/format/lib/content/container-gap";import he from"efficient-web-builder/render/components/SectionHeader";import v from"efficient-web-builder/render/components/PostCard";import be from"efficient-web-builder/render/components/Placeholder";import{SiteLink as z}from"efficient-web-builder/render/lib/site-runtime";import{renderGold as x,renderHeadline as N}from"efficient-web-builder/render/components/goldPhrases";import{say as y}from"efficient-web-builder/format/lib/editor-words";import{cardImageShapeTokens as ve}from"efficient-web-builder/format/lib/content/card-image-shape";import{SITE_COLUMN as K}from"efficient-web-builder/format/lib/content/page-width";import{fillRowCss as Ne}from"../lib/sections/fill-row.js";import{headIsEmpty as ye,ownPadding as Ee}from"../lib/sections/own-padding.js";const Te=4;function at(t){if(!Array.isArray(t))return;const a=t.filter(e=>typeof e=="string"&&!!e.trim()).map(e=>e.trim()).slice(0,Te);return a.length?a:void 0}function rt(t){if(!t||typeof t!="object"||Array.isArray(t))return;const a={};for(const[e,r]of Object.entries(t))if(e.trim()){if(typeof r=="string")r.trim()&&(a[e]=r.trim());else if(Array.isArray(r)){const l=r.filter(c=>typeof c=="string"&&!!c.trim()).map(c=>c.trim());l.length&&(a[e]=l)}}return Object.keys(a).length?a:void 0}function H(t,a){const e=t.facets?.[a];return e===void 0?[]:typeof e=="string"?[e]:e}const Ae=new Intl.Collator("en",{numeric:!0,sensitivity:"base"});function _e(t){const a=[],e=new Map;for(const r of t)for(const l of Object.keys(r.facets??{})){e.has(l)||(a.push(l),e.set(l,new Set));for(const c of H(r,l))e.get(l).add(c)}return a.map(r=>({label:r,values:[...e.get(r)].sort(Ae.compare)}))}function Le(t,a){return Object.entries(a).every(([e,r])=>r===""||H(t,e).includes(r))}const W=3,X="featured",J="tabs",q="portrait",u="spread",Q="count",st=[{label:"Even grid",value:"even"},{label:"Featured first",value:X},{label:"Tabs",value:J},{label:"Photo cards",value:q},{label:"Staggered spread",value:u},{label:"Count",value:Q}],Ce=[q,u],lt="even",k={min:2,max:11,step:1,fallback:7,unit:"of 12"},$e="bottom-left",Oe=55,Se="bottom";function we(t){const a=typeof t=="number"?t:Number.parseFloat(String(t??"")),e=Number.isFinite(a)?Math.min(k.max,Math.max(k.min,Math.round(a))):k.fallback;return`${e}fr ${12-e}fr`}const Z={1:"grid-cols-1",2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[800px]:grid-cols-1",4:"grid-cols-4 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1"},ee={2:"grid-cols-2",3:"grid-cols-3 max-[800px]:grid-cols-2",4:"grid-cols-4 max-[1100px]:grid-cols-3 max-[800px]:grid-cols-2"},Fe="Find by name",ze="Nobody by that name.",ke="Nobody matches.",Re="Any";function Ie(t,a){const e=l=>l.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLocaleLowerCase().trim(),r=e(a);return r===""||e(t).includes(r)}function te({typed:t,onType:a,wide:e=!1}){return o("label",{className:`flex max-w-[360px] flex-col gap-1.5${e?" w-full":""}`,children:[n("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em] text-fg-dim",children:Fe}),n("input",{type:"search",value:t,onChange:r=>a(r.target.value),autoComplete:"off",className:"rounded-[var(--sf-button-radius,6px)] border border-line bg-bg px-4 py-2.5 text-[length:var(--size-body,15px)] text-fg outline-none focus:border-accent"})]})}function ne({tags:t}){return n("ul",{"aria-label":"Details",className:"flex gap-1.5 overflow-hidden",children:t.map((a,e)=>n("li",{className:"shrink-0 rounded-[var(--sf-button-radius,4px)] border border-line px-2 py-0.5 text-[length:var(--size-label,12px)] text-fg-dim",children:a},`${a}-${e}`))})}function Me({card:t,scaffold:a,lower:e=!1}){return o(z,{href:t.href||"#",className:`sf-card group relative isolate flex aspect-[3/4] overflow-hidden bg-surface${e?" min-[801px]:mt-16":""}`,"aria-disabled":a||void 0,tabIndex:a?-1:void 0,children:[n("div",{className:"absolute inset-0 transition-transform duration-700 group-hover:scale-[1.03] motion-reduce:transition-none motion-reduce:group-hover:scale-100",children:n(be,{label:`card-${t.slug}`,src:t.cover||void 0,sizes:"(max-width: 800px) 50vw, 25vw"})}),n("div",{"aria-hidden":!0,className:"absolute inset-0 z-0",style:{background:"linear-gradient(180deg, transparent 45%, color-mix(in srgb, var(--bg) 88%, transparent) 100%)"}}),t.meta&&n("span",{className:"absolute left-3 top-3 z-[1] rounded-[var(--sf-button-radius,999px)] bg-bg/85 px-2.5 py-1 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.16em] text-accent",children:x(t.meta)}),o("div",{className:"relative z-[1] mt-auto flex w-full flex-col gap-1 p-4 max-[800px]:p-3",children:[n("h3",{className:"font-heading3 text-[length:var(--size-headingSmall,24px)] leading-[1.1] tracking-[-0.01em] text-fg",children:N(t.title,!1)}),t.dateLabel&&n("p",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.16em] text-accent",children:x(t.dateLabel)}),t.tags&&t.tags.length>0&&n(ne,{tags:t.tags}),t.excerpt&&n("p",{className:"line-clamp-2 text-[length:var(--size-body,14px)] leading-[1.45] text-fg-dim",children:x(t.excerpt)})]})]})}function Ue({cards:t,scaffold:a}){return n("nav",{"aria-label":"Days",className:"-mx-1 [scrollbar-width:none] max-[800px]:overflow-x-auto [&::-webkit-scrollbar]:hidden",children:n("ul",{className:"flex flex-wrap gap-2 px-1 pb-1 max-[800px]:min-w-max max-[800px]:flex-nowrap",children:t.map((e,r)=>{const l=!!e.meta;return n("li",{children:o(z,{href:e.href||"#","aria-current":l?"page":void 0,"aria-disabled":a||void 0,tabIndex:a?-1:void 0,className:`flex flex-col gap-0.5 rounded-[var(--sf-button-radius,999px)] border px-5 py-2.5 transition-colors ${l?"border-accent bg-accent text-accent-ink":"border-line text-fg hover:border-accent hover:text-accent"}`,children:[n("span",{className:"font-heading3 text-[length:var(--size-body,15px)] leading-[1.2]",children:N(e.title,!1)}),e.excerpt&&n("span",{className:`font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] ${l?"opacity-80":"text-fg-dim"}`,children:x(e.excerpt)})]})},`${e.slug}-${r}`)})})})}function De({count:t,words:a,href:e}){const r=o("span",{className:"inline-flex items-baseline gap-3",children:[n("span",{className:"font-heading text-[length:var(--size-headingLarge,64px)] leading-none text-accent",children:t}),a!==void 0&&n("span",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg",children:a})]});return e?n(z,{href:e,className:"inline-flex hover:opacity-85",children:r}):r}const Pe="relative z-[2] bg-bg py-[120px] max-[800px]:py-[70px]",je="relative z-[2] bg-bg pt-0 pb-[120px] max-[800px]:pt-0 max-[800px]:pb-[70px]",Ve="relative z-[2] bg-bg py-[32px] max-[800px]:py-[24px]";function Ye({num:t,title:a,link:e,posts:r,columns:l,limit:c,showAll:E=!1,editing:T=!1,cardImage:ae,gap:re,layout:f,featuredWidth:se,listCover:le=!0,featuredDarken:oe,omitHead:h=!1,sample:A,nameFilter:ie=!1,padTop:ce,padBottom:de}){const[_,R]=G(""),[I,pe]=G({}),L=`ev-${ge().replace(/:/g,"")}`,M=r??[],U=E?M.length:typeof c=="number"&&c>0?c:W,C=M.slice(0,U),m=T&&C.length===0;if(C.length===0&&!T)return null;const D=E?W:U,d=m?A?.length?A.slice(0,E?A.length:D):Array.from({length:D},(s,i)=>({slug:`placeholder-${i}`,title:y("Blog post title"),excerpt:y("A short summary of the post appears here."),cover:"",meta:y("Journal"),dateLabel:y("Date")})):C,p=ue("Events",re,"both"),$=f===X&&d.length>1,fe=we(se),O=f===J,P=f===Q,j=Ce.includes(f??""),S=ie&&!O&&!P&&!$,w=S?_e(d):[],b=S?d.filter(s=>Ie(s.title,_)&&Le(s,I)):d,F=Ee(ce,de),me=!T&&ye(t,a,e?.text),V=f===u?"grid-cols-3 max-[800px]:grid-cols-2":ee[Math.min(4,Math.max(2,l??3))]??ee[3],Y=Z[Math.min(4,Math.max(1,l??3))]??Z[3],B=O||$||f===u?"":Ne(L,j?V:Y,{cards:b.length});return P?n("section",{className:Ve,style:Object.keys(F).length?F:void 0,children:n("div",{className:K,children:n(De,{count:d.length,words:h||a===void 0?void 0:N(a,!1),href:h?void 0:e?.href})})}):n("section",{className:h?je:Pe,style:{...ve(ae),...F},children:o("div",{className:K,children:[h||me?null:n(he,{num:t!==void 0?x(t):void 0,title:a!==void 0?N(a,!1):void 0,link:e?{text:x(e.text),href:e.href}:void 0}),S&&o("div",{className:"mb-6 flex flex-col gap-2",children:[w.length===0?n(te,{typed:_,onType:R}):o("div",{className:"flex flex-wrap items-end gap-3",children:[n(te,{typed:_,onType:R,wide:!0}),w.map(({label:s,values:i})=>o("label",{className:"flex min-w-[140px] flex-col gap-1.5 max-[800px]:flex-1",children:[n("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em] text-fg-dim",children:s}),o("select",{value:I[s]??"",onChange:g=>pe(xe=>({...xe,[s]:g.target.value})),className:"rounded-[var(--sf-button-radius,6px)] border border-line bg-bg px-4 py-2.5 text-[length:var(--size-body,15px)] text-fg outline-none focus:border-accent",children:[n("option",{value:"",children:Re}),i.map(g=>n("option",{value:g,children:g},g))]})]},s))]}),b.length===0&&n("p",{role:"status",className:"text-[length:var(--size-body,14px)] text-fg-dim",children:w.length===0?ze:ke})]}),B&&n("style",{children:B}),O?n(Ue,{cards:d,scaffold:m}):j?n("div",{className:`${L} sf-card-grid grid${p.className} ${V}`,style:p.style,children:b.map((s,i)=>n(Me,{card:s,scaffold:m,lower:f===u&&i%3===1},`${s.slug}-${i}`))}):$?o("div",{className:`sf-card-grid grid grid-cols-[var(--sf-events-split)] max-[800px]:grid-cols-1${p.className}`,style:{...p.style,"--sf-events-split":fe},children:[n(v,{post:d[0],href:d[0].href,scaffold:m,layout:"cover",darken:oe??Oe,darkenStyle:Se,placement:$e},`${d[0].slug}-0`),n("div",{className:`grid auto-rows-min${p.className}`,style:p.style,children:d.slice(1).map((s,i)=>n(v,{post:s,href:s.href,scaffold:m,showCover:le},`${s.slug}-${i+1}`))})]}):n("div",{className:`${L} sf-card-grid grid${p.className} ${Y}`,style:p.style,children:b.map((s,i)=>s.tags&&s.tags.length>0?o("div",{className:"flex flex-col gap-2",children:[n(v,{post:s,href:s.href,scaffold:m}),n(ne,{tags:s.tags})]},`${s.slug}-${i}`):n(v,{post:s,href:s.href,scaffold:m},`${s.slug}-${i}`))})]})})}export{k as EVENTS_FEATURED_WIDTH,st as EVENTS_LAYOUTS,Q as EVENTS_LAYOUT_COUNT,lt as EVENTS_LAYOUT_FALLBACK,X as EVENTS_LAYOUT_FEATURED,q as EVENTS_LAYOUT_PORTRAIT,u as EVENTS_LAYOUT_SPREAD,J as EVENTS_LAYOUT_TABS,Ce as EVENTS_PHOTO_LAYOUTS,Te as MAX_CARD_TAGS,Ye as default,_e as facetChoices,Le as matchesFacets,Ie as matchesName,rt as readFacets,at as readTags};
1
+ import{jsx as n,jsxs as l}from"react/jsx-runtime";import{useState as G}from"react";import{useScopeClass as ue}from"../lib/use-scope-class.js";import{containerGapProps as he}from"efficient-web-builder/format/lib/content/container-gap";import be from"efficient-web-builder/render/components/SectionHeader";import v from"efficient-web-builder/render/components/PostCard";import ve from"efficient-web-builder/render/components/Placeholder";import{SiteLink as z}from"efficient-web-builder/render/lib/site-runtime";import{renderGold as x,renderHeadline as N}from"efficient-web-builder/render/components/goldPhrases";import{say as y}from"efficient-web-builder/format/lib/editor-words";import{cardImageShapeTokens as Ne}from"efficient-web-builder/format/lib/content/card-image-shape";import{SITE_COLUMN as K}from"efficient-web-builder/format/lib/content/page-width";import{fillRowCss as ye}from"../lib/sections/fill-row.js";import{headIsEmpty as Ee,ownPadding as Te}from"../lib/sections/own-padding.js";const Ae=4;function st(t){if(!Array.isArray(t))return;const a=t.filter(e=>typeof e=="string"&&!!e.trim()).map(e=>e.trim()).slice(0,Ae);return a.length?a:void 0}function ot(t){if(!t||typeof t!="object"||Array.isArray(t))return;const a={};for(const[e,r]of Object.entries(t))if(e.trim()){if(typeof r=="string")r.trim()&&(a[e]=r.trim());else if(Array.isArray(r)){const o=r.filter(c=>typeof c=="string"&&!!c.trim()).map(c=>c.trim());o.length&&(a[e]=o)}}return Object.keys(a).length?a:void 0}function H(t,a){const e=t.facets?.[a];return e===void 0?[]:typeof e=="string"?[e]:e}const _e=new Intl.Collator("en",{numeric:!0,sensitivity:"base"});function Ce(t){const a=[],e=new Map;for(const r of t)for(const o of Object.keys(r.facets??{})){e.has(o)||(a.push(o),e.set(o,new Set));for(const c of H(r,o))e.get(o).add(c)}return a.map(r=>({label:r,values:[...e.get(r)].sort(_e.compare)}))}function Le(t,a){return Object.entries(a).every(([e,r])=>r===""||H(t,e).includes(r))}const W=3,X="featured",J="tabs",q="portrait",u="spread",Q="count",lt=[{label:"Even grid",value:"even"},{label:"Featured first",value:X},{label:"Tabs",value:J},{label:"Photo cards",value:q},{label:"Staggered spread",value:u},{label:"Count",value:Q}],Se=[q,u],it="even",k={min:2,max:11,step:1,fallback:7,unit:"of 12"},$e="bottom-left",Oe=55,we="bottom";function Fe(t){const a=typeof t=="number"?t:Number.parseFloat(String(t??"")),e=Number.isFinite(a)?Math.min(k.max,Math.max(k.min,Math.round(a))):k.fallback;return`${e}fr ${12-e}fr`}const Z={1:"grid-cols-1",2:"grid-cols-2 max-[800px]:grid-cols-1",3:"grid-cols-3 max-[800px]:grid-cols-1",4:"grid-cols-4 max-[1100px]:grid-cols-2 max-[800px]:grid-cols-1"},ee={2:"grid-cols-2",3:"grid-cols-3 max-[800px]:grid-cols-2",4:"grid-cols-4 max-[1100px]:grid-cols-3 max-[800px]:grid-cols-2"},ze="Find by name",ke="Nobody by that name.",Re="Nobody matches.",Me="Any";function Ue(t,a){const e=o=>o.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLocaleLowerCase().trim(),r=e(a);return r===""||e(t).includes(r)}function te({typed:t,onType:a,wide:e=!1}){return l("label",{className:`flex max-w-[360px] flex-col gap-1.5${e?" w-full":""}`,children:[n("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em] text-fg-dim",children:ze}),n("input",{type:"search",value:t,onChange:r=>a(r.target.value),autoComplete:"off",className:"rounded-[var(--sf-button-radius,6px)] border border-line bg-bg px-4 py-2.5 text-[length:var(--size-body,15px)] text-fg outline-none focus:border-accent"})]})}function ne({tags:t}){return n("ul",{"aria-label":"Details",className:"flex gap-1.5 overflow-hidden",children:t.map((a,e)=>n("li",{className:"shrink-0 rounded-[var(--sf-button-radius,4px)] border border-line px-2 py-0.5 text-[length:var(--size-label,12px)] text-fg-dim",children:a},`${a}-${e}`))})}function De({card:t,scaffold:a,lower:e=!1}){return l(z,{href:t.href||"#",className:`sf-card group relative isolate flex aspect-[3/4] overflow-hidden bg-surface${e?" min-[801px]:mt-16":""}`,"aria-disabled":a||void 0,tabIndex:a?-1:void 0,children:[n("div",{className:"absolute inset-0 transition-transform duration-700 group-hover:scale-[1.03] motion-reduce:transition-none motion-reduce:group-hover:scale-100",children:n(ve,{label:`card-${t.slug}`,src:t.cover||void 0,sizes:"(max-width: 800px) 50vw, 25vw"})}),n("div",{"aria-hidden":!0,className:"absolute inset-0 z-0",style:{background:"linear-gradient(180deg, transparent 45%, color-mix(in srgb, var(--bg) 88%, transparent) 100%)"}}),t.meta&&n("span",{className:"absolute left-3 top-3 z-[1] rounded-[var(--sf-button-radius,999px)] bg-bg/85 px-2.5 py-1 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.16em] text-accent",children:x(t.meta)}),l("div",{className:"relative z-[1] mt-auto flex w-full flex-col gap-1 p-4 max-[800px]:p-3",children:[n("h3",{className:"font-heading3 text-[length:var(--size-headingSmall,24px)] leading-[1.1] tracking-[-0.01em] text-fg",children:N(t.title,!1)}),t.dateLabel&&n("p",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.16em] text-accent",children:x(t.dateLabel)}),t.tags&&t.tags.length>0&&n(ne,{tags:t.tags}),t.excerpt&&n("p",{className:"line-clamp-2 text-[length:var(--size-body,14px)] leading-[1.45] text-fg-dim",children:x(t.excerpt)})]})]})}function Ie({cards:t,scaffold:a}){return n("nav",{"aria-label":"Days",className:"-mx-1 [scrollbar-width:none] max-[800px]:overflow-x-auto [&::-webkit-scrollbar]:hidden",children:n("ul",{className:"flex flex-wrap gap-2 px-1 pb-1 max-[800px]:min-w-max max-[800px]:flex-nowrap",children:t.map((e,r)=>{const o=!!e.meta;return n("li",{children:l(z,{href:e.href||"#","aria-current":o?"page":void 0,"aria-disabled":a||void 0,tabIndex:a?-1:void 0,className:`flex flex-col gap-0.5 rounded-[var(--sf-button-radius,999px)] border px-5 py-2.5 transition-colors ${o?"border-accent bg-accent text-accent-ink":"border-line text-fg hover:border-accent hover:text-accent"}`,children:[n("span",{className:"font-heading3 text-[length:var(--size-body,15px)] leading-[1.2]",children:N(e.title,!1)}),e.excerpt&&n("span",{className:`font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.14em] ${o?"opacity-80":"text-fg-dim"}`,children:x(e.excerpt)})]})},`${e.slug}-${r}`)})})})}function Pe({count:t,words:a,href:e}){const r=l("span",{className:"inline-flex items-baseline gap-3",children:[n("span",{className:"font-heading text-[length:var(--size-headingLarge,64px)] leading-none text-accent",children:t}),a!==void 0&&n("span",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg",children:a})]});return e?n(z,{href:e,className:"inline-flex hover:opacity-85",children:r}):r}const je="relative z-[2] bg-bg py-[120px] max-[800px]:py-[70px]",Ve="relative z-[2] bg-bg pt-0 pb-[120px] max-[800px]:pt-0 max-[800px]:pb-[70px]",Ye="relative z-[2] bg-bg py-[32px] max-[800px]:py-[24px]";function Be({num:t,title:a,link:e,posts:r,columns:o,limit:c,showAll:E=!1,editing:T=!1,cardImage:ae,gap:re,gapPhone:se,layout:f,featuredWidth:oe,listCover:le=!0,featuredDarken:ie,omitHead:h=!1,sample:A,nameFilter:ce=!1,padTop:de,padBottom:pe}){const[_,R]=G(""),[M,fe]=G({}),C=ue("ev"),U=r??[],D=E?U.length:typeof c=="number"&&c>0?c:W,L=U.slice(0,D),m=T&&L.length===0;if(L.length===0&&!T)return null;const I=E?W:D,d=m?A?.length?A.slice(0,E?A.length:I):Array.from({length:I},(s,i)=>({slug:`placeholder-${i}`,title:y("Blog post title"),excerpt:y("A short summary of the post appears here."),cover:"",meta:y("Journal"),dateLabel:y("Date")})):L,p=he("Events",re,"both",se),S=f===X&&d.length>1,me=Fe(oe),$=f===J,P=f===Q,j=Se.includes(f??""),O=ce&&!$&&!P&&!S,w=O?Ce(d):[],b=O?d.filter(s=>Ue(s.title,_)&&Le(s,M)):d,F=Te(de,pe),xe=!T&&Ee(t,a,e?.text),V=f===u?"grid-cols-3 max-[800px]:grid-cols-2":ee[Math.min(4,Math.max(2,o??3))]??ee[3],Y=Z[Math.min(4,Math.max(1,o??3))]??Z[3],B=$||S||f===u?"":ye(C,j?V:Y,{cards:b.length});return P?n("section",{className:Ye,style:Object.keys(F).length?F:void 0,children:n("div",{className:K,children:n(Pe,{count:d.length,words:h||a===void 0?void 0:N(a,!1),href:h?void 0:e?.href})})}):n("section",{className:h?Ve:je,style:{...Ne(ae),...F},children:l("div",{className:K,children:[h||xe?null:n(be,{num:t!==void 0?x(t):void 0,title:a!==void 0?N(a,!1):void 0,link:e?{text:x(e.text),href:e.href}:void 0}),O&&l("div",{className:"mb-6 flex flex-col gap-2",children:[w.length===0?n(te,{typed:_,onType:R}):l("div",{className:"flex flex-wrap items-end gap-3",children:[n(te,{typed:_,onType:R,wide:!0}),w.map(({label:s,values:i})=>l("label",{className:"flex min-w-[140px] flex-col gap-1.5 max-[800px]:flex-1",children:[n("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.18em] text-fg-dim",children:s}),l("select",{value:M[s]??"",onChange:g=>fe(ge=>({...ge,[s]:g.target.value})),className:"rounded-[var(--sf-button-radius,6px)] border border-line bg-bg px-4 py-2.5 text-[length:var(--size-body,15px)] text-fg outline-none focus:border-accent",children:[n("option",{value:"",children:Me}),i.map(g=>n("option",{value:g,children:g},g))]})]},s))]}),b.length===0&&n("p",{role:"status",className:"text-[length:var(--size-body,14px)] text-fg-dim",children:w.length===0?ke:Re})]}),B&&n("style",{children:B}),$?n(Ie,{cards:d,scaffold:m}):j?n("div",{className:`${C} sf-card-grid grid${p.className} ${V}`,style:p.style,children:b.map((s,i)=>n(De,{card:s,scaffold:m,lower:f===u&&i%3===1},`${s.slug}-${i}`))}):S?l("div",{className:`sf-card-grid grid grid-cols-[var(--sf-events-split)] max-[800px]:grid-cols-1${p.className}`,style:{...p.style,"--sf-events-split":me},children:[n(v,{post:d[0],href:d[0].href,scaffold:m,layout:"cover",darken:ie??Oe,darkenStyle:we,placement:$e},`${d[0].slug}-0`),n("div",{className:`grid auto-rows-min${p.className}`,style:p.style,children:d.slice(1).map((s,i)=>n(v,{post:s,href:s.href,scaffold:m,showCover:le},`${s.slug}-${i+1}`))})]}):n("div",{className:`${C} sf-card-grid grid${p.className} ${Y}`,style:p.style,children:b.map((s,i)=>s.tags&&s.tags.length>0?l("div",{className:"flex flex-col gap-2",children:[n(v,{post:s,href:s.href,scaffold:m}),n(ne,{tags:s.tags})]},`${s.slug}-${i}`):n(v,{post:s,href:s.href,scaffold:m},`${s.slug}-${i}`))})]})})}export{k as EVENTS_FEATURED_WIDTH,lt as EVENTS_LAYOUTS,Q as EVENTS_LAYOUT_COUNT,it as EVENTS_LAYOUT_FALLBACK,X as EVENTS_LAYOUT_FEATURED,q as EVENTS_LAYOUT_PORTRAIT,u as EVENTS_LAYOUT_SPREAD,J as EVENTS_LAYOUT_TABS,Se as EVENTS_PHOTO_LAYOUTS,Ae as MAX_CARD_TAGS,Be as default,Ce as facetChoices,Le as matchesFacets,Ue as matchesName,ot as readFacets,st as readTags};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as r,Fragment as q}from"react/jsx-runtime";import F from"./SectionBand.js";import{useEffect as D,useState as A}from"react";import _ from"efficient-web-builder/render/components/SectionHeader";import J from"./SectionFootnote.js";import{renderGold as u,renderHeadline as E}from"efficient-web-builder/render/components/goldPhrases";import M from"./fitment/FitmentRowFit.js";import{useVehicleFit as Q}from"./fitment/useVehicleFit.js";import{fitmentRowAnswer as Y}from"../lib/wheels/fitment-row-fit.js";import{fitmentColumns as ee,loadUnitFor as te}from"../lib/wheels/fitment-columns.js";import{useActiveCountry as ne}from"./CurrencyContext.js";import{say as T}from"efficient-web-builder/format/lib/editor-words";const o={body:"text-[length:var(--size-body,12px)]",labelXs:"text-[length:var(--size-label,11px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]",labelXl:"text-[length:var(--size-label,14px)]"},re=[],le="whitespace-nowrap border-b border-line px-4 py-4",X=`relative cursor-pointer border-2 px-4 py-2 font-mono ${o.labelSmall} font-semibold uppercase tracking-[0.18em] text-fg transition-colors`,j="border-b border-line py-[120px] max-[1100px]:py-20",L="border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20",R={background:"color-mix(in oklab, var(--accent) 14%, transparent)"},B=(a,i,s)=>i.map(f=>f.cell(a,s)).join("|");function oe({num:a,title:i,description:s,rows:f,showFilter:I=!0,tooltipDefaultOn:b=!0,footnote:H,footnoteLinkText:O,footnoteLinkHref:W,editing:y=!1,omitHead:p=!1,fieldUsage:G=re}){const N=f??[],c=ee(G),h=te(ne()),[x,k]=A(null),[l,S]=A(b);D(()=>S(b),[b]);const K=Q({editing:y}),$=c.length===0;if(N.length===0||$)return y?r(F,{className:p?L:j,children:[p?null:t(_,{num:a!=null?u(a):void 0,title:i!=null?E(i,!1):void 0,description:s!=null?u(s):void 0,accent:!0}),t("p",{className:`border-t border-line py-6 font-mono ${o.labelLarge} uppercase tracking-[0.18em] text-fg-dim`,children:$?T("Every fitment column is hidden in Product Types — show one to draw this table."):T("No fitment data for this wheel — pick a wheel with fitment specs.")})]}):null;const z=new Set,g=N.filter(e=>{const n=B(e,c,h);return z.has(n)?!1:(z.add(n),!0)}),w=Array.from(new Set(g.map(e=>e.diameter))).sort((e,n)=>e-n),d=x!==null&&w.includes(x)?x:null,v=d===null?g:g.filter(e=>e.diameter===d),P=I&&w.length>1,V=e=>{if(e===0)return!1;const n=v[e-1],m=v[e];return n.diameter!==m.diameter||n.width!==m.width};return r(F,{className:p?L:j,children:[p?null:t(_,{num:a!=null?u(a):void 0,title:i!=null?E(i,!1):void 0,description:s!=null?u(s):void 0,accent:!0}),r("div",{className:"mb-6 flex flex-wrap items-center gap-x-2 gap-y-3",children:[P&&r(q,{children:[t("span",{className:`mr-2 font-mono ${o.labelSmall} uppercase tracking-[0.24em] text-fg-dim max-[720px]:mr-0 max-[720px]:mb-1 max-[720px]:w-full`,children:"Filter by size:"}),r("button",{type:"button",onClick:()=>k(null),className:`${X} ${d===null?"border-accent outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 hover:border-accent"}`,style:d===null?R:void 0,children:[d===null&&t("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),"All"]}),w.map(e=>{const n=e===d;return r("button",{type:"button",onClick:()=>k(n?null:e),className:`${X} ${n?"border-accent outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 hover:border-accent"}`,style:n?R:void 0,children:[n&&t("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),e,'"']},e)})]}),r("button",{type:"button",onClick:()=>S(e=>!e),"aria-pressed":l,"aria-label":l?"Hide vehicle tooltip":"Show vehicle tooltip",className:`ml-auto inline-flex items-center gap-3 font-mono ${o.labelSmall} uppercase tracking-[0.24em] text-fg-dim transition-colors hover:text-fg max-[720px]:hidden`,children:[t("span",{children:"Vehicle tooltip"}),t("span",{className:`relative inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 transition-colors ${l?"border-accent":"border-fg-dim/50"}`,style:l?{background:"color-mix(in oklab, var(--accent) 30%, transparent)"}:void 0,"aria-hidden":!0,children:t("span",{className:`block h-3 w-3 rounded-full transition-transform ${l?"translate-x-[18px] bg-accent":"translate-x-[2px] bg-fg-dim"}`})}),t("span",{className:l?"text-accent":"text-fg-dim",children:l?"On":"Off"})]})]}),t("div",{className:"-mx-1 overflow-x-auto",children:r("table",{className:`w-full border-collapse font-mono ${o.labelXl} tracking-[0.06em] text-fg`,children:[t("thead",{children:t("tr",{children:c.map(({header:e},n)=>t("th",{className:`whitespace-nowrap border-b border-line bg-surface px-4 py-4 text-left ${o.body} font-normal uppercase tracking-[0.22em] text-fg-dim`,children:e},n))})}),t("tbody",{children:v.map((e,n)=>t("tr",{className:`group transition-colors hover:[&>td]:bg-surface ${V(n)?"[&>td]:border-t [&>td]:border-line":""}`,children:c.map((m,U)=>{const C=U===c.length-1,Z=m.fieldKey==="diameter";return r("td",{className:`${C?"relative ":""}${le}${Z?" text-accent":""}`,children:[m.cell(e,h),C&&l&&t("span",{role:"tooltip",className:`pointer-events-none absolute top-1/2 right-0 z-20 hidden w-[520px] -translate-y-1/2 whitespace-normal bg-[var(--tooltip-bg)] px-3 py-2 text-right font-mono ${o.labelXs} normal-case tracking-[0.12em] text-fg shadow-lg group-hover:block max-[720px]:!hidden`,children:t(M,{answer:Y(e,K)})})]},m.fieldKey)})},B(e,c,h)))})]})}),t(J,{text:H,linkText:O,linkHref:W})]})}export{oe as default};
1
+ "use client";import{jsx as t,jsxs as r,Fragment as D}from"react/jsx-runtime";import F from"./SectionBand.js";import{useEffect as J,useState as A}from"react";import E from"efficient-web-builder/render/components/SectionHeader";import M from"./SectionFootnote.js";import{renderGold as u,renderHeadline as _}from"efficient-web-builder/render/components/goldPhrases";import Q from"./fitment/FitmentRowFit.js";import{useVehicleFit as Y}from"./fitment/useVehicleFit.js";import{fitmentRowAnswer as ee}from"../lib/wheels/fitment-row-fit.js";import{fitmentColumns as te,loadUnitFor as ne}from"../lib/wheels/fitment-columns.js";import{useActiveCountry as re}from"./CurrencyContext.js";import{say as T}from"efficient-web-builder/format/lib/editor-words";import{useEnglish as le}from"./EnglishVariant.js";const o={body:"text-[length:var(--size-body,12px)]",labelXs:"text-[length:var(--size-label,11px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]",labelXl:"text-[length:var(--size-label,14px)]"},oe=[],ae="whitespace-nowrap border-b border-line px-4 py-4",X=`relative cursor-pointer border-2 px-4 py-2 font-mono ${o.labelSmall} font-semibold uppercase tracking-[0.18em] text-fg transition-colors`,j="border-b border-line py-[120px] max-[1100px]:py-20",L="border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20",R={background:"color-mix(in oklab, var(--accent) 14%, transparent)"},B=(a,i,s)=>i.map(f=>f.cell(a,s)).join("|");function ie({num:a,title:i,description:s,rows:f,showFilter:I=!0,tooltipDefaultOn:b=!0,footnote:H,footnoteLinkText:O,footnoteLinkHref:W,editing:y=!1,omitHead:p=!1,fieldUsage:G=oe}){const N=f??[],c=te(G),K=le(),h=ne(re()),[x,k]=A(null),[l,S]=A(b);J(()=>S(b),[b]);const P=Y({editing:y}),$=c.length===0;if(N.length===0||$)return y?r(F,{className:p?L:j,children:[p?null:t(E,{num:a!=null?u(a):void 0,title:i!=null?_(i,!1):void 0,description:s!=null?u(s):void 0,accent:!0}),t("p",{className:`border-t border-line py-6 font-mono ${o.labelLarge} uppercase tracking-[0.18em] text-fg-dim`,children:$?T("Every fitment column is hidden in Product Types — show one to draw this table."):T("No fitment data for this wheel — pick a wheel with fitment specs.")})]}):null;const z=new Set,g=N.filter(e=>{const n=B(e,c,h);return z.has(n)?!1:(z.add(n),!0)}),w=Array.from(new Set(g.map(e=>e.diameter))).sort((e,n)=>e-n),d=x!==null&&w.includes(x)?x:null,v=d===null?g:g.filter(e=>e.diameter===d),V=I&&w.length>1,U=e=>{if(e===0)return!1;const n=v[e-1],m=v[e];return n.diameter!==m.diameter||n.width!==m.width};return r(F,{className:p?L:j,children:[p?null:t(E,{num:a!=null?u(a):void 0,title:i!=null?_(i,!1):void 0,description:s!=null?u(s):void 0,accent:!0}),r("div",{className:"mb-6 flex flex-wrap items-center gap-x-2 gap-y-3",children:[V&&r(D,{children:[t("span",{className:`mr-2 font-mono ${o.labelSmall} uppercase tracking-[0.24em] text-fg-dim max-[720px]:mr-0 max-[720px]:mb-1 max-[720px]:w-full`,children:"Filter by size:"}),r("button",{type:"button",onClick:()=>k(null),className:`${X} ${d===null?"border-accent outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 hover:border-accent"}`,style:d===null?R:void 0,children:[d===null&&t("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),"All"]}),w.map(e=>{const n=e===d;return r("button",{type:"button",onClick:()=>k(n?null:e),className:`${X} ${n?"border-accent outline outline-1 outline-accent -outline-offset-1":"border-fg-dim/50 hover:border-accent"}`,style:n?R:void 0,children:[n&&t("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-accent"}),e,'"']},e)})]}),r("button",{type:"button",onClick:()=>S(e=>!e),"aria-pressed":l,"aria-label":l?"Hide vehicle tooltip":"Show vehicle tooltip",className:`ml-auto inline-flex items-center gap-3 font-mono ${o.labelSmall} uppercase tracking-[0.24em] text-fg-dim transition-colors hover:text-fg max-[720px]:hidden`,children:[t("span",{children:"Vehicle tooltip"}),t("span",{className:`relative inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 transition-colors ${l?"border-accent":"border-fg-dim/50"}`,style:l?{background:"color-mix(in oklab, var(--accent) 30%, transparent)"}:void 0,"aria-hidden":!0,children:t("span",{className:`block h-3 w-3 rounded-full transition-transform ${l?"translate-x-[18px] bg-accent":"translate-x-[2px] bg-fg-dim"}`})}),t("span",{className:l?"text-accent":"text-fg-dim",children:l?"On":"Off"})]})]}),t("div",{className:"-mx-1 overflow-x-auto",children:r("table",{className:`w-full border-collapse font-mono ${o.labelXl} tracking-[0.06em] text-fg`,children:[t("thead",{children:t("tr",{children:c.map(({header:e},n)=>t("th",{className:`whitespace-nowrap border-b border-line bg-surface px-4 py-4 text-left ${o.body} font-normal uppercase tracking-[0.22em] text-fg-dim`,children:K(e)},n))})}),t("tbody",{children:v.map((e,n)=>t("tr",{className:`group transition-colors hover:[&>td]:bg-surface ${U(n)?"[&>td]:border-t [&>td]:border-line":""}`,children:c.map((m,Z)=>{const C=Z===c.length-1,q=m.fieldKey==="diameter";return r("td",{className:`${C?"relative ":""}${ae}${q?" text-accent":""}`,children:[m.cell(e,h),C&&l&&t("span",{role:"tooltip",className:`pointer-events-none absolute top-1/2 right-0 z-20 hidden w-[520px] -translate-y-1/2 whitespace-normal bg-[var(--tooltip-bg)] px-3 py-2 text-right font-mono ${o.labelXs} normal-case tracking-[0.12em] text-fg shadow-lg group-hover:block max-[720px]:!hidden`,children:t(Q,{answer:ee(e,P)})})]},m.fieldKey)})},B(e,c,h)))})]})}),t(M,{text:H,linkText:O,linkHref:W})]})}export{ie as default};
@@ -2,7 +2,8 @@ import type { SlotComponent } from "efficient-easel/blocks";
2
2
  export interface FooterGroupProps {
3
3
  direction?: "vertical" | "horizontal";
4
4
  gap?: number | string;
5
- align?: "start" | "center" | "end";
5
+ gapPhone?: unknown;
6
+ align?: "start" | "center" | "end" | "stretch";
6
7
  content: SlotComponent;
7
8
  }
8
- export default function FooterGroup({ direction, gap, align, content: Content, }: FooterGroupProps): import("react").JSX.Element;
9
+ export default function FooterGroup({ direction, gap, gapPhone, align, content: Content, }: FooterGroupProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{containerGapProps as a}from"efficient-web-builder/format/lib/content/container-gap";const l={start:"items-start",center:"items-center",end:"items-end"};function i({direction:t="vertical",gap:r,align:s="start",content:n}){const e=a("FooterGroup",r,t==="horizontal"?"inline":"block");return o("div",{className:"min-w-0",children:o(n,{className:`flex ${t==="horizontal"?"flex-row flex-wrap":"flex-col"} ${l[s]}${e.className}`,style:e.style,minEmptyHeight:80})})}export{i as default};
1
+ import{jsx as r}from"react/jsx-runtime";import{containerGapProps as l}from"efficient-web-builder/format/lib/content/container-gap";const i={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"};function c({direction:t="vertical",gap:o,gapPhone:s,align:n="start",content:a}){const e=l("FooterGroup",o,t==="horizontal"?"inline":"block",s);return r("div",{className:"min-w-0",children:r(a,{className:`flex ${t==="horizontal"?"flex-row flex-wrap":"flex-col"} ${i[n]}${e.className}`,style:e.style,minEmptyHeight:80})})}export{c as default};
@@ -1,7 +1,8 @@
1
+ import type { BlockAlign } from "efficient-web-builder/format/lib/content/block-align";
1
2
  export interface FooterLogoProps {
2
3
  tagline?: string;
3
4
  widthPct?: number;
4
- align?: "left" | "center" | "right";
5
+ align?: BlockAlign;
5
6
  reverse?: boolean;
6
7
  color?: string | null;
7
8
  padTop?: number;
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import{useCallback as P,useEffect as F,useRef as W,useState as O}from"react";import S from"next/link";import G from"./CountrySelect.js";import z from"./HeaderNavItem.js";import B from"./ThemeToggle.js";import{renderChrome as _,renderGold as v}from"efficient-web-builder/render/components/goldPhrases";import{UTIL_WORDS as q}from"./HeaderTools.js";import A from"./MenuPlaceholderLabel.js";import{usePhoneMenuTools as K}from"efficient-web-builder/render/components/PhoneMenuTools";import{useSearch as Y}from"./SearchContext.js";import{useModalDismiss as J}from"./useModalDismiss.js";import Q from"efficient-easel/screen/components/UiIcon";import{usePreviewMenus as V}from"./PreviewMenusContext.js";import{FOOTER_MENU_PLACEHOLDER_COUNT as T,FOOTER_MENU_PLACEHOLDER_HEADING as X,FOOTER_MENU_PLACEHOLDER_HINT as Z}from"../lib/content/menu-placeholder.js";import{say as M}from"efficient-web-builder/format/lib/editor-words";import{UNDER_HEADER_SHEET_CLASS as ee}from"../lib/content/header-bar.js";import{isLabelOnlyMenuUrl as ne}from"../lib/menu-link.js";import{isMenuOrphaned as le}from"../lib/menu-source.js";import{menuLinkInRange as te,resolveMenuLinkAlign as re,resolveMenuLinkRange as ae}from"../lib/content/menu-row.js";const oe=n=>/^https?:\/\//i.test(n),I="flex list-none flex-col gap-3 text-[13px]",R="mb-4 font-mono text-[13px] uppercase tracking-[0.2em] text-fg-dim",D="text-[12px] italic text-fg-dim/70",H=(n,r)=>n&&r>0?"border-t border-line pt-3":"";function ie({showDividers:n}){return e("ul",{className:I,children:Array.from({length:T},(r,t)=>e("li",{className:`text-fg ${H(n,t)}`,children:e(A,{})},t))})}function k({item:n,label:r,link:t,onNavigate:o}){return ne(n.url)?e("span",{className:r,children:v(n.label)}):oe(n.url)?e("a",{href:n.url,target:"_blank",rel:"noopener noreferrer",className:t,onClick:o,children:v(n.label)}):e(S,{href:n.url,className:t,onClick:o,children:v(n.label)})}function j({items:n,showDividers:r}){return e("ul",{className:I,children:n.map((t,o)=>e("li",{className:H(r,o),children:e(k,{item:t,label:"text-fg",link:"text-fg transition-colors hover:text-accent"})},`${t.label}-${o}`))})}const $="opacity-80 transition-opacity hover:opacity-100";function se({items:n,label:r,editing:t,linkAlign:o,linkRange:N}){const y=re(o),u=ae(N),C=!!u&&n!==null&&u.to!==void 0&&u.to<n.length,[h,L]=O(!1),p=W(null),i=K(),{open:c}=Y(),E=r||"Menu",m=P(()=>L(!1),[]);J({active:h,onDismiss:m,scopeRef:p});const b=(l,s,x)=>n===null?Array.from({length:T},(d,f)=>e("li",{className:s,children:e(A,{})},f)):n.map((d,f)=>e("li",{className:s,children:e(k,{item:d,label:l,link:`${l} ${$}`,onNavigate:x})},`${d.label}-${f}`)),g=n===null?b("",""):n.map((l,s)=>{const x=l.dropdown_items??[],d=u&&!te(u,s+1)?{"data-menu-out":""}:null;return x.length?e("li",{className:"",...d,children:e(z,{item:{href:l.url,label:v(l.label),plainLabel:l.label,dropdownItems:x.map(f=>({href:f.url,label:v(f.label),plainLabel:f.label}))}})},`${l.label}-${s}`):e("li",{className:"",...d,children:e(k,{item:l,label:"",link:` ${$}`})},`${l.label}-${s}`)}),U=n===null?b("","flex min-h-14 items-center border-b border-line",m):n.flatMap((l,s)=>[e("li",{className:"flex min-h-14 items-center border-b border-line",children:e(k,{item:l,label:"",link:` ${$}`,onNavigate:m})},`${l.label}-${s}`),...(l.dropdown_items??[]).map((x,d)=>e("li",{className:"flex min-h-12 items-center border-b border-line pl-5 text-[14px]",children:e(k,{item:x,label:"",link:` ${$}`,onNavigate:m})},`${l.label}-${s}-${d}`))]),w=i&&(i.search||i.region||i.account||i.theme)?i:null;return a("nav",{ref:p,"aria-label":E,"data-menu-row":"",...y?{"data-menu-align":y}:null,...C?{"data-menu-part":"lead"}:null,className:"min-w-0",children:[e("ul",{className:"m-0 hidden list-none flex-wrap items-center gap-x-8 gap-y-2 p-0 font-mono text-[13px] uppercase tracking-[0.18em] view-tablet:flex",children:g}),e("button",{type:"button",className:"flex h-11 w-11 items-center justify-center view-tablet:hidden","aria-expanded":h,"aria-label":h?"Close the menu":"Open the menu",onClick:()=>L(l=>!l),children:e("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round","aria-hidden":"true",children:h?e("path",{d:"M6 6l12 12M18 6L6 18"}):e("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),h?a("div",{role:"dialog","aria-label":E,className:`${ee} z-[60] flex flex-col overflow-y-auto bg-bg text-fg view-tablet:hidden`,children:[e("ul",{className:"m-0 flex list-none flex-col px-5 py-3 font-mono text-[16px] uppercase tracking-[0.18em]",children:U}),w?a("div",{className:"mt-auto flex flex-col gap-4 border-t border-line bg-surface p-5",children:[w.search?a("button",{type:"button",className:"flex h-12 items-center gap-3 border border-line bg-bg px-4 text-left text-[15px]",onClick:t?void 0:()=>{m(),c()},children:[e(Q,{name:"search",size:18,strokeWidth:1.6,rounded:!0}),q.search]}):null,w.account?a("div",{className:"flex items-center justify-between",children:[e("span",{className:"mono-eyebrow text-fg-dim",children:"Account"}),e(S,{href:"/account",onClick:m,className:"mono-eyebrow underline",children:"Your account"})]}):null,w.region?a("div",{className:"flex items-center justify-between",children:[e("span",{className:"mono-eyebrow text-fg-dim",children:"Region"}),e(G,{})]}):null,w.theme?a("div",{className:"flex items-center justify-between",children:[e("span",{className:"mono-eyebrow text-fg-dim",children:"Theme"}),e(B,{})]}):null]}):null]}):null]})}function ce({menu:n,heading:r,accordionMobile:t=!1,showDividers:o=!1,editing:N=!1,layout:y="column",linkAlign:u,linkRange:C}){const{live:h,ready:L}=V(),p=le({id:n?.id,handle:n?.handle,editing:N,ready:L,live:h}),i=p?[]:n?.items??[],c=r||n?.name||"",[E,m]=O(!1);return F(()=>{if(!t)return;const b=window.matchMedia("(max-width: 800px)"),g=()=>m(b.matches);return g(),b.addEventListener("change",g),()=>b.removeEventListener("change",g)},[t]),y==="row"?e(se,{items:p?null:i,label:c,editing:N,linkAlign:u,linkRange:C}):p?a("div",{className:"min-w-0",children:[e("h4",{className:R,children:r?_(r):M(X)}),e(ie,{showDividers:o}),e("p",{className:`mt-3 ${D}`,children:M(Z)})]}):i.length===0?a("div",{className:"min-w-0",children:[c?e("h4",{className:R,children:_(c)}):null,N?e("p",{className:D,children:M("This menu has no links yet — add them in {place}.",{place:M("Storefront → Menus")})}):null]}):t&&E?a("details",{className:"min-w-0 border-b border-line",children:[a("summary",{className:"flex cursor-pointer list-none items-center justify-between py-3 font-mono text-[13px] uppercase tracking-[0.2em] text-fg-dim",children:[_(c),e("span",{"aria-hidden":!0,children:"+"})]}),e("div",{className:"pb-3",children:e(j,{items:i,showDividers:o})})]}):a("div",{className:"min-w-0",children:[c?e("h4",{className:R,children:_(c)}):null,e(j,{items:i,showDividers:o})]})}export{ce as default};
1
+ "use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import{useCallback as P,useEffect as F,useRef as W,useState as O}from"react";import S from"next/link";import B from"./CountrySelect.js";import G from"./HeaderNavItem.js";import z from"./ThemeToggle.js";import{renderChrome as _,renderGold as v}from"efficient-web-builder/render/components/goldPhrases";import{UTIL_WORDS as q}from"./HeaderTools.js";import A from"./MenuPlaceholderLabel.js";import{usePhoneMenuTools as K}from"efficient-web-builder/render/components/PhoneMenuTools";import{useSearch as Y}from"./SearchContext.js";import{useModalDismiss as J}from"./useModalDismiss.js";import Q from"efficient-easel/screen/components/UiIcon";import{usePreviewMenus as V}from"./PreviewMenusContext.js";import{FOOTER_MENU_PLACEHOLDER_COUNT as T,FOOTER_MENU_PLACEHOLDER_HEADING as X,FOOTER_MENU_PLACEHOLDER_HINT as Z}from"../lib/content/menu-placeholder.js";import{say as M}from"efficient-web-builder/format/lib/editor-words";import{UNDER_HEADER_SHEET_CLASS as ee}from"../lib/content/header-bar.js";import{isLabelOnlyMenuUrl as ne}from"../lib/menu-link.js";import{isMenuOrphaned as le}from"../lib/menu-source.js";import{legacyBlockAlignOf as te}from"../lib/content/legacy-block-align.js";import{menuLinkInRange as re,resolveMenuLinkRange as ae}from"../lib/content/menu-row.js";const oe=n=>/^https?:\/\//i.test(n),I="flex list-none flex-col gap-3 text-[13px]",R="mb-4 font-mono text-[13px] uppercase tracking-[0.2em] text-fg-dim",D="text-[12px] italic text-fg-dim/70",H=(n,r)=>n&&r>0?"border-t border-line pt-3":"";function ie({showDividers:n}){return e("ul",{className:I,children:Array.from({length:T},(r,t)=>e("li",{className:`text-fg ${H(n,t)}`,children:e(A,{})},t))})}function k({item:n,label:r,link:t,onNavigate:o}){return ne(n.url)?e("span",{className:r,children:v(n.label)}):oe(n.url)?e("a",{href:n.url,target:"_blank",rel:"noopener noreferrer",className:t,onClick:o,children:v(n.label)}):e(S,{href:n.url,className:t,onClick:o,children:v(n.label)})}function j({items:n,showDividers:r}){return e("ul",{className:I,children:n.map((t,o)=>e("li",{className:H(r,o),children:e(k,{item:t,label:"text-fg",link:"text-fg transition-colors hover:text-accent"})},`${t.label}-${o}`))})}const $="opacity-80 transition-opacity hover:opacity-100";function se({items:n,label:r,editing:t,linkAlign:o,linkRange:N}){const y=te(o),u=ae(N),C=!!u&&n!==null&&u.to!==void 0&&u.to<n.length,[h,E]=O(!1),p=W(null),i=K(),{open:c}=Y(),L=r||"Menu",m=P(()=>E(!1),[]);J({active:h,onDismiss:m,scopeRef:p});const b=(l,s,x)=>n===null?Array.from({length:T},(d,f)=>e("li",{className:s,children:e(A,{})},f)):n.map((d,f)=>e("li",{className:s,children:e(k,{item:d,label:l,link:`${l} ${$}`,onNavigate:x})},`${d.label}-${f}`)),g=n===null?b("",""):n.map((l,s)=>{const x=l.dropdown_items??[],d=u&&!re(u,s+1)?{"data-menu-out":""}:null;return x.length?e("li",{className:"",...d,children:e(G,{item:{href:l.url,label:v(l.label),plainLabel:l.label,dropdownItems:x.map(f=>({href:f.url,label:v(f.label),plainLabel:f.label}))}})},`${l.label}-${s}`):e("li",{className:"",...d,children:e(k,{item:l,label:"",link:` ${$}`})},`${l.label}-${s}`)}),U=n===null?b("","flex min-h-14 items-center border-b border-line",m):n.flatMap((l,s)=>[e("li",{className:"flex min-h-14 items-center border-b border-line",children:e(k,{item:l,label:"",link:` ${$}`,onNavigate:m})},`${l.label}-${s}`),...(l.dropdown_items??[]).map((x,d)=>e("li",{className:"flex min-h-12 items-center border-b border-line pl-5 text-[14px]",children:e(k,{item:x,label:"",link:` ${$}`,onNavigate:m})},`${l.label}-${s}-${d}`))]),w=i&&(i.search||i.region||i.account||i.theme)?i:null;return a("nav",{ref:p,"aria-label":L,"data-menu-row":"",...y?{"data-menu-align":y}:null,...C?{"data-menu-part":"lead"}:null,className:"min-w-0",children:[e("ul",{className:"m-0 hidden list-none flex-wrap items-center gap-x-8 gap-y-2 p-0 font-mono text-[13px] uppercase tracking-[0.18em] view-tablet:flex",children:g}),e("button",{type:"button",className:"flex h-11 w-11 items-center justify-center view-tablet:hidden","aria-expanded":h,"aria-label":h?"Close the menu":"Open the menu",onClick:()=>E(l=>!l),children:e("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round","aria-hidden":"true",children:h?e("path",{d:"M6 6l12 12M18 6L6 18"}):e("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),h?a("div",{role:"dialog","aria-label":L,className:`${ee} z-[60] flex flex-col overflow-y-auto bg-bg text-fg view-tablet:hidden`,children:[e("ul",{className:"m-0 flex list-none flex-col px-5 py-3 font-mono text-[16px] uppercase tracking-[0.18em]",children:U}),w?a("div",{className:"mt-auto flex flex-col gap-4 border-t border-line bg-surface p-5",children:[w.search?a("button",{type:"button",className:"flex h-12 items-center gap-3 border border-line bg-bg px-4 text-left text-[15px]",onClick:t?void 0:()=>{m(),c()},children:[e(Q,{name:"search",size:18,strokeWidth:1.6,rounded:!0}),q.search]}):null,w.account?a("div",{className:"flex items-center justify-between",children:[e("span",{className:"mono-eyebrow text-fg-dim",children:"Account"}),e(S,{href:"/account",onClick:m,className:"mono-eyebrow underline",children:"Your account"})]}):null,w.region?a("div",{className:"flex items-center justify-between",children:[e("span",{className:"mono-eyebrow text-fg-dim",children:"Region"}),e(B,{})]}):null,w.theme?a("div",{className:"flex items-center justify-between",children:[e("span",{className:"mono-eyebrow text-fg-dim",children:"Theme"}),e(z,{})]}):null]}):null]}):null]})}function ce({menu:n,heading:r,accordionMobile:t=!1,showDividers:o=!1,editing:N=!1,layout:y="column",linkAlign:u,linkRange:C}){const{live:h,ready:E}=V(),p=le({id:n?.id,handle:n?.handle,editing:N,ready:E,live:h}),i=p?[]:n?.items??[],c=r||n?.name||"",[L,m]=O(!1);return F(()=>{if(!t)return;const b=window.matchMedia("(max-width: 800px)"),g=()=>m(b.matches);return g(),b.addEventListener("change",g),()=>b.removeEventListener("change",g)},[t]),y==="row"?e(se,{items:p?null:i,label:c,editing:N,linkAlign:u,linkRange:C}):p?a("div",{className:"min-w-0",children:[e("h4",{className:R,children:r?_(r):M(X)}),e(ie,{showDividers:o}),e("p",{className:`mt-3 ${D}`,children:M(Z)})]}):i.length===0?a("div",{className:"min-w-0",children:[c?e("h4",{className:R,children:_(c)}):null,N?e("p",{className:D,children:M("This menu has no links yet — add them in {place}.",{place:M("Storefront → Menus")})}):null]}):t&&L?a("details",{className:"min-w-0 border-b border-line",children:[a("summary",{className:"flex cursor-pointer list-none items-center justify-between py-3 font-mono text-[13px] uppercase tracking-[0.2em] text-fg-dim",children:[_(c),e("span",{"aria-hidden":!0,children:"+"})]}),e("div",{className:"pb-3",children:e(j,{items:i,showDividers:o})})]}):a("div",{className:"min-w-0",children:[c?e("h4",{className:R,children:_(c)}):null,e(j,{items:i,showDividers:o})]})}export{ce as default};
@@ -1,11 +1,10 @@
1
1
  import { type PaymentMethodLike } from "efficient-shell/icons/payment";
2
2
  export type FooterPaymentSize = "sm" | "md";
3
- export type FooterPaymentAlign = "start" | "center" | "end";
4
3
  export interface FooterPaymentProps {
5
4
  lead?: string;
6
5
  methods: readonly PaymentMethodLike[];
7
6
  size?: FooterPaymentSize;
8
- align?: FooterPaymentAlign;
7
+ align?: string;
9
8
  editing?: boolean;
10
9
  }
11
10
  export default function FooterPayment({ lead, methods, size, align, editing }: FooterPaymentProps): import("react").JSX.Element | null;
@@ -1 +1 @@
1
- import{jsx as e,jsxs as c}from"react/jsx-runtime";import{PaymentMark as y,paymentMarks as u}from"efficient-shell/icons/payment";import{say as r}from"efficient-web-builder/format/lib/editor-words";const s={sm:{mark:16,text:"text-[12px]"},md:{mark:20,text:"text-[13px]"}},n={start:"justify-start",center:"justify-center",end:"justify-end"};function h({lead:t,methods:i,size:m="sm",align:d="start",editing:l=!1}){const a=u(i);if(!a.length)return l?e("div",{"data-payment-placeholder":"",className:"rounded border border-dashed border-line px-3 py-2 text-[13px] text-fg-dim",children:r("Add the ways you take payment")}):null;const{mark:x,text:o}=s[m]??s.sm;return c("div",{"data-footer-payment":"",className:`flex flex-wrap items-center gap-x-3 gap-y-1.5 leading-[1.5] text-fg-dim ${o} ${n[d]??n.start}`,children:[t&&e("span",{"aria-hidden":!0,children:t}),e("ul",{"aria-label":t||r("Ways to pay"),className:"flex list-none flex-wrap items-center gap-x-3 gap-y-1.5 p-0 text-fg",children:a.map((p,f)=>e("li",{className:"flex",children:e(y,{item:p,size:x})},f))})]})}export{h as default};
1
+ import{jsx as e,jsxs as f}from"react/jsx-runtime";import{PaymentMark as c,paymentMarks as y}from"efficient-shell/icons/payment";import{say as r}from"efficient-web-builder/format/lib/editor-words";import{BLOCK_ALIGN_JUSTIFY as g}from"efficient-web-builder/format/lib/content/block-align";import{legacyBlockAlignOf as h}from"../lib/content/legacy-block-align.js";const m={sm:{mark:16,text:"text-[12px]"},md:{mark:20,text:"text-[13px]"}};function u({lead:t,methods:s,size:n="sm",align:i,editing:l=!1}){const a=y(s);if(!a.length)return l?e("div",{"data-payment-placeholder":"",className:"rounded border border-dashed border-line px-3 py-2 text-[13px] text-fg-dim",children:r("Add the ways you take payment")}):null;const{mark:o,text:p}=m[n]??m.sm;return f("div",{"data-footer-payment":"",className:`flex flex-wrap items-center gap-x-3 gap-y-1.5 leading-[1.5] text-fg-dim ${p} ${g[h(i)??"left"]}`,children:[t&&e("span",{"aria-hidden":!0,children:t}),e("ul",{"aria-label":t||r("Ways to pay"),className:"flex list-none flex-wrap items-center gap-x-3 gap-y-1.5 p-0 text-fg",children:a.map((x,d)=>e("li",{className:"flex",children:e(c,{item:x,size:o})},d))})]})}export{u as default};
@@ -1,11 +1,10 @@
1
1
  import { type SocialIconStyle } from "efficient-web-builder/render/components/socialIcons";
2
2
  export type SocialIconSize = "small" | "medium" | "large";
3
- export type SocialAlign = "start" | "center" | "end";
4
3
  export declare const SOCIAL_ICON_PX: Record<SocialIconSize, number>;
5
4
  export interface FooterSocialProps {
6
5
  iconStyle?: SocialIconStyle;
7
6
  iconSize?: SocialIconSize;
8
- align?: SocialAlign;
7
+ align?: string;
9
8
  gap?: number;
10
9
  editing?: boolean;
11
10
  }
@@ -1 +1 @@
1
- "use client";import{jsx as e}from"react/jsx-runtime";import{useSiteSocialLinks as x}from"./SiteRecordContext.js";import{SOCIAL_GAP_DEFAULT as S,SOCIAL_GAP_MAX as b,SOCIAL_GAP_MIN as h}from"../lib/sections/footer-social-gap.js";import{DEFAULT_SOCIAL_ICON_STYLE as _,SocialMark as A}from"efficient-web-builder/render/components/socialIcons";import{normalizeSocialLinks as k,socialLinksToDraw as L}from"efficient-web-builder/format/lib/content/social-links";import{say as y}from"efficient-web-builder/format/lib/editor-words";const o={small:16,medium:20,large:24},s={start:"justify-start",center:"justify-center",end:"justify-end"};function I({iconStyle:l=_,iconSize:n="medium",align:c="start",gap:i=S,editing:m=!1}){const d=x(),a=L(k(d));if(a.length===0)return m?e("div",{"data-social-placeholder":"",className:"rounded border border-dashed border-line px-3 py-2 text-[13px] text-fg-dim",children:y("Add your social links")}):null;const r=o[n]??o.medium,u={gap:Math.min(b,Math.max(h,Number.isFinite(i)?i:0)),"--social-mark":`${r}px`};return e("ul",{"data-social-block":"","aria-label":"Social media",className:`flex list-none flex-wrap p-0 [margin:calc((44px-var(--social-mark))/-2)] max-[800px]:[margin:calc((40px-var(--social-mark))/-2)] ${s[c]??s.start}`,style:u,children:a.map(({platform:t,href:f,label:p})=>e("li",{children:e("a",{href:f,target:"_blank",rel:"noopener noreferrer","aria-label":`${p} (opens in a new tab)`,className:"grid h-11 w-11 place-items-center rounded text-fg transition-colors hover:text-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-4px] focus-visible:outline-current motion-reduce:transition-none max-[800px]:h-10 max-[800px]:w-10",children:e(A,{platform:t,iconStyle:l,size:r})})},t))})}export{o as SOCIAL_ICON_PX,I as default};
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import{useSiteSocialLinks as u}from"./SiteRecordContext.js";import{SOCIAL_GAP_DEFAULT as x,SOCIAL_GAP_MAX as _,SOCIAL_GAP_MIN as A}from"../lib/sections/footer-social-gap.js";import{DEFAULT_SOCIAL_ICON_STYLE as S,SocialMark as b}from"efficient-web-builder/render/components/socialIcons";import{normalizeSocialLinks as h,socialLinksToDraw as L}from"efficient-web-builder/format/lib/content/social-links";import{say as k}from"efficient-web-builder/format/lib/editor-words";import{BLOCK_ALIGN_JUSTIFY as g}from"efficient-web-builder/format/lib/content/block-align";import{legacyBlockAlignOf as I}from"../lib/content/legacy-block-align.js";const l={small:16,medium:20,large:24};function O({iconStyle:t=S,iconSize:n="medium",align:s,gap:i=x,editing:c=!1}){const m=u(),o=L(h(m));if(o.length===0)return c?e("div",{"data-social-placeholder":"",className:"rounded border border-dashed border-line px-3 py-2 text-[13px] text-fg-dim",children:k("Add your social links")}):null;const a=l[n]??l.medium,p={gap:Math.min(_,Math.max(A,Number.isFinite(i)?i:0)),"--social-mark":`${a}px`};return e("ul",{"data-social-block":"","aria-label":"Social media",className:`flex list-none flex-wrap p-0 [margin:calc((44px-var(--social-mark))/-2)] max-[800px]:[margin:calc((40px-var(--social-mark))/-2)] ${g[I(s)??"left"]}`,style:p,children:o.map(({platform:r,href:f,label:d})=>e("li",{children:e("a",{href:f,target:"_blank",rel:"noopener noreferrer","aria-label":`${d} (opens in a new tab)`,className:"grid h-11 w-11 place-items-center rounded text-fg transition-colors hover:text-accent focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-4px] focus-visible:outline-current motion-reduce:transition-none max-[800px]:h-10 max-[800px]:w-10",children:e(b,{platform:r,iconStyle:t,size:a})})},r))})}export{l as SOCIAL_ICON_PX,O as default};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as c}from"react/jsx-runtime";import{useEffect as F}from"react";import{FormFieldInput as g,FormHoneypot as S,successMessageFor as w,useBoundForm as z,useFormSubmission as T}from"./formSubmission.js";import h from"./SectionNotice.js";import{say as b}from"efficient-web-builder/format/lib/editor-words";import C from"./WebFormField.js";import{usePopupScope as j}from"./PopupHost.js";const y="w-full border-2 border-line bg-bg px-4 py-4 font-display text-[17px] tracking-[-0.005em] text-fg outline-none transition-colors placeholder:text-fg-dim hover:border-fg-dim focus:border-accent";function B({field:e,value:o,onChange:n}){const r={field:e,value:o,onChange:n};return e.type==="checkbox"?c("label",{className:"flex items-start gap-3",children:[t(g,{...r,className:"mt-1 size-4 accent-accent"}),c("span",{className:"font-mono text-[12px] font-semibold uppercase tracking-[0.16em] text-fg",children:[e.label,e.required?t("span",{className:"text-accent",children:" *"}):null]})]}):t(C,{label:e.label,required:e.required,children:t(g,{...r,className:e.type==="textarea"?y+" resize-y":y})})}function q({formSlug:e,heading:o,intro:n,submitText:r,finePrint:s,form:p,editing:i=!1}={}){const a=z(e,p),x=j();if(a===void 0)return t(h,{size:"short",children:b("Loading form…")});if(a===null)return t(h,{size:"short",children:i?b("Choose a form in the inspector, under Form."):"This form is unavailable."});const m=(o??"").trim()||a.title;return t("section",{className:"relative z-[2] border-t border-line bg-surface",children:c("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] py-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[m&&t("h2",{className:"mb-4 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:m}),(n??"").trim()&&t("p",{className:"mb-12 max-w-[640px] font-display text-[16px] leading-[1.6] text-fg-dim",children:n}),t(L,{form:a,formSlug:e,submitText:r,finePrint:s,editing:i,onSent:x?.markSent})]})})}function L({form:e,formSlug:o,submitText:n,finePrint:r,editing:s=!1,onSent:p}){const{valueOf:i,set:a,honeypot:x,setHoneypot:m,submitting:u,done:d,error:f,handleSubmit:N}=T({form:e,formSlug:o,editing:s});F(()=>{d&&p?.()},[d]);const v=(n??"").trim()||e.submitButtonText?.trim()||"Submit";return d?t("p",{role:"status",className:"max-w-[560px] font-serif text-[19px] italic leading-[1.6] text-fg-dim",children:w(e)}):c("form",{className:"flex max-w-[720px] flex-col gap-5",onSubmit:N,children:[e.fields.map(l=>t(B,{field:l,value:i(l.key),onChange:k=>a(l.key,k)},l.key)),t(S,{value:x,onChange:m}),f&&t("p",{role:"alert",className:"font-mono text-[12px] uppercase tracking-[0.18em] text-alert",children:f}),t("button",{type:s?"button":"submit",disabled:u,className:"cursor-pointer self-start bg-btn px-8 py-4 font-mono text-[14px] uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg hover:text-bg disabled:cursor-wait disabled:opacity-60",children:u?"Sending…":v}),e.consentText?.trim()&&t("span",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim/70",children:e.consentText}),(r??"").trim()&&t("span",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim/70",children:r})]})}export{L as FormBody,q as default};
1
+ "use client";import{jsx as t,jsxs as c}from"react/jsx-runtime";import{useEffect as F}from"react";import{FormFieldInput as h,FormHoneypot as S,successMessageFor as z,useBoundForm as w,useFormSubmission as T}from"./formSubmission.js";import g from"./SectionNotice.js";import{say as b}from"efficient-web-builder/format/lib/editor-words";import C from"./WebFormField.js";import{usePopupScope as j}from"./PopupHost.js";import{FIELD_INPUT_CLASS as N}from"../lib/field-input.js";function B({field:e,value:s,onChange:n}){const r={field:e,value:s,onChange:n};return e.type==="checkbox"?c("label",{className:"flex items-start gap-3",children:[t(h,{...r,className:"mt-1 size-4 accent-accent"}),c("span",{className:"font-mono text-[12px] font-semibold uppercase tracking-[0.16em] text-fg",children:[e.label,e.required?t("span",{className:"text-accent",children:" *"}):null]})]}):t(C,{label:e.label,required:e.required,children:t(h,{...r,className:e.type==="textarea"?N+" resize-y":N})})}function L({formSlug:e,heading:s,intro:n,submitText:r,finePrint:i,form:p,editing:o=!1}={}){const a=w(e,p),x=j();if(a===void 0)return t(g,{size:"short",children:b("Loading form…")});if(a===null)return t(g,{size:"short",children:o?b("Choose a form in the inspector, under Form."):"This form is unavailable."});const m=(s??"").trim()||a.title;return t("section",{className:"relative z-[2] border-t border-line bg-surface",children:c("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] py-[84px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[m&&t("h2",{className:"mb-4 font-heading2 text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",children:m}),(n??"").trim()&&t("p",{className:"mb-12 max-w-[640px] font-display text-[16px] leading-[1.6] text-fg-dim",children:n}),t(_,{form:a,formSlug:e,submitText:r,finePrint:i,editing:o,onSent:x?.markSent})]})})}function _({form:e,formSlug:s,submitText:n,finePrint:r,editing:i=!1,onSent:p}){const{valueOf:o,set:a,honeypot:x,setHoneypot:m,submitting:d,done:u,error:f,handleSubmit:y}=T({form:e,formSlug:s,editing:i});F(()=>{u&&p?.()},[u]);const v=(n??"").trim()||e.submitButtonText?.trim()||"Submit";return u?t("p",{role:"status",className:"max-w-[560px] font-serif text-[19px] italic leading-[1.6] text-fg-dim",children:z(e)}):c("form",{className:"flex max-w-[720px] flex-col gap-5",onSubmit:y,children:[e.fields.map(l=>t(B,{field:l,value:o(l.key),onChange:k=>a(l.key,k)},l.key)),t(S,{value:x,onChange:m}),f&&t("p",{role:"alert",className:"font-mono text-[12px] uppercase tracking-[0.18em] text-alert",children:f}),t("button",{type:i?"button":"submit",disabled:d,className:"cursor-pointer self-start bg-btn px-8 py-4 font-mono text-[14px] uppercase tracking-[0.32em] text-btn-ink transition-colors hover:bg-fg hover:text-bg disabled:cursor-wait disabled:opacity-60",children:d?"Sending…":v}),e.consentText?.trim()&&t("span",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim/70",children:e.consentText}),(r??"").trim()&&t("span",{className:"font-mono text-[12px] uppercase tracking-[0.18em] text-fg-dim/70",children:r})]})}export{_ as FormBody,L as default};
@@ -19,5 +19,6 @@ export interface GalleryGridProps {
19
19
  columnsMobile?: number | string;
20
20
  layout?: string;
21
21
  gap?: number | string;
22
+ gapPhone?: unknown;
22
23
  }
23
- export default function GalleryGrid({ items: Items, num, title, linkText, linkHref, galleryHref, submitHref, previewHover, display, displayPhone, styleOwner, layout, columns, columnsMobile, gap: gapProp, omitHead, padTop, padBottom, editing, }: GalleryGridProps): import("react").JSX.Element;
24
+ export default function GalleryGrid({ items: Items, num, title, linkText, linkHref, galleryHref, submitHref, previewHover, display, displayPhone, styleOwner, layout, columns, columnsMobile, gap: gapProp, gapPhone, omitHead, padTop, padBottom, editing, }: GalleryGridProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as I}from"react/jsx-runtime";import{usePathname as M}from"next/navigation";import{containerGapProps as R}from"efficient-web-builder/format/lib/content/container-gap";import j from"efficient-web-builder/render/components/Btn";import{GALLERY_GRID_ATTR as z,GalleryLinksContext as A}from"./GalleryItem.js";import{useSiteSells as $}from"./SiteRecordContext.js";import{SharedPartKinds as k}from"efficient-web-builder/render/components/PublishedPartStylesContext";import{renderHeadline as B}from"efficient-web-builder/render/components/goldPhrases";import O from"efficient-web-builder/render/components/SectionHeader";import{headIsEmpty as T,ownPadding as F}from"../lib/sections/own-padding.js";import{resolveGridColumns as K,resolveGridMobileColumns as D}from"efficient-web-builder/format/lib/content/grid-span";import{galleryLayoutClass as U,galleryLayoutCss as W,resolveGalleryLayout as X}from"efficient-web-builder/format/lib/content/gallery-layout";const Y="relative z-[2] bg-bg py-[120px] max-[800px]:py-[70px]",q="relative z-[2] bg-bg pt-0 pb-[120px] max-[800px]:pt-0 max-[800px]:pb-[70px]",H="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]";function J({items:i,num:o,title:a,linkText:n,linkHref:x,galleryHref:r="/gallery",submitHref:g="/contact",previewHover:f,display:y,displayPhone:h,styleOwner:u,layout:d,columns:t,columnsMobile:v,gap:N,omitHead:m=!1,padTop:G,padBottom:L,editing:S=!1}){const _=M(),b=$(),E=r!==_&&(b||r!=="/gallery"),p=X(d),l=p?d:null,w=!p&&t!=null&&t!=="",s=R("GalleryB",N,"both"),C=l?{className:`sf-card-grid sf-gallery-zone ${U(l)} grid${s.className}`,style:s.style}:w?{className:`sf-card-grid sf-grid-zone grid${s.className}`,style:{...s.style,"--sf-grid-cols":String(K(t)),"--sf-grid-cols-phone":String(D(v,t))}}:{className:`sf-card-grid grid grid-cols-4${s.className} max-[1500px]:grid-cols-3 max-[800px]:grid-cols-1`,style:s.style},c=n?{text:n,href:x||"#"}:void 0,P=a?B(a,!1):void 0;return e("section",{className:m?q:Y,style:F(G,L),children:I("div",{className:H,children:[m||!S&&T(o,a,c?.text)?null:e(O,{num:o,title:P,link:c}),l&&e("style",{dangerouslySetInnerHTML:{__html:W(l)}}),i&&e(A.Provider,{value:{galleryHref:r,submitHref:g,previewHover:f,display:y,displayPhone:h,styleOwner:u},children:e(k,{children:e("div",{[z]:"",style:{display:"contents"},children:e(i,{...C,minEmptyHeight:320})})})}),E&&e("div",{className:"mt-12 flex flex-col items-center gap-3",children:e(j,{href:r,variant:"ghost",children:"See Gallery"})})]})})}export{J as default};
1
+ "use client";import{jsx as e,jsxs as M}from"react/jsx-runtime";import{usePathname as R}from"next/navigation";import{containerGapProps as j}from"efficient-web-builder/format/lib/content/container-gap";import z from"efficient-web-builder/render/components/Btn";import{GALLERY_GRID_ATTR as A,GalleryLinksContext as $}from"./GalleryItem.js";import{useSiteSells as k}from"./SiteRecordContext.js";import{SharedPartKinds as B}from"efficient-web-builder/render/components/PublishedPartStylesContext";import{renderHeadline as O}from"efficient-web-builder/render/components/goldPhrases";import T from"efficient-web-builder/render/components/SectionHeader";import{headIsEmpty as F,ownPadding as K}from"../lib/sections/own-padding.js";import{resolveGridColumns as D,resolveGridMobileColumns as U}from"efficient-web-builder/format/lib/content/grid-span";import{galleryLayoutClass as W,galleryLayoutCss as X,resolveGalleryLayout as Y}from"efficient-web-builder/format/lib/content/gallery-layout";const q="relative z-[2] bg-bg py-[120px] max-[800px]:py-[70px]",H="relative z-[2] bg-bg pt-0 pb-[120px] max-[800px]:pt-0 max-[800px]:pb-[70px]",J="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]";function Q({items:i,num:o,title:a,linkText:n,linkHref:x,galleryHref:r="/gallery",submitHref:g="/contact",previewHover:f,display:y,displayPhone:h,styleOwner:u,layout:d,columns:t,columnsMobile:v,gap:N,gapPhone:G,omitHead:m=!1,padTop:L,padBottom:S,editing:_=!1}){const b=R(),E=k(),w=r!==b&&(E||r!=="/gallery"),p=Y(d),l=p?d:null,C=!p&&t!=null&&t!=="",s=j("GalleryB",N,"both",G),P=l?{className:`sf-card-grid sf-gallery-zone ${W(l)} grid${s.className}`,style:s.style}:C?{className:`sf-card-grid sf-grid-zone grid${s.className}`,style:{...s.style,"--sf-grid-cols":String(D(t)),"--sf-grid-cols-phone":String(U(v,t))}}:{className:`sf-card-grid grid grid-cols-4${s.className} max-[1500px]:grid-cols-3 max-[800px]:grid-cols-1`,style:s.style},c=n?{text:n,href:x||"#"}:void 0,I=a?O(a,!1):void 0;return e("section",{className:m?H:q,style:K(L,S),children:M("div",{className:J,children:[m||!_&&F(o,a,c?.text)?null:e(T,{num:o,title:I,link:c}),l&&e("style",{dangerouslySetInnerHTML:{__html:X(l)}}),i&&e($.Provider,{value:{galleryHref:r,submitHref:g,previewHover:f,display:y,displayPhone:h,styleOwner:u},children:e(B,{children:e("div",{[A]:"",style:{display:"contents"},children:e(i,{...P,minEmptyHeight:320})})})}),w&&e("div",{className:"mt-12 flex flex-col items-center gap-3",children:e(z,{href:r,variant:"ghost",children:"See Gallery"})})]})})}export{Q as default};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as n,Fragment as m}from"react/jsx-runtime";import{createContext as G,useCallback as M,useContext as Y,useEffect as W,useRef as B,useState as L}from"react";import S from"next/link";import{slugify as D}from"efficient-shell/format";import F from"./GalleryCard.js";import V,{LightboxClose as q}from"./Lightbox.js";import{useSiteSells as U}from"./SiteRecordContext.js";import{renderGold as d,renderHeadline as $}from"efficient-web-builder/render/components/goldPhrases";import{sizedImage as Z}from"efficient-web-builder/format/lib/sized-image";const J="(max-width: 1100px) 100vw, min(59vw, 1050px)",K=G({}),fe=[{id:"tag",label:"Tag"},{id:"eyebrow",label:"Eyebrow"},{id:"title",label:"Title"},{id:"meta",label:"Meta"},{id:"number",label:"Card number"}],Q="data-gallery-grid",C="data-gallery-tile";function X(t,o){const[l,s]=L(null);return W(()=>{const c=t.current,a=c?.closest(`[${Q}]`);if(!c||!a)return;const u=()=>{const v=Array.from(a.querySelectorAll(`[${C}]`)),y=v.indexOf(c),x=y>=0?{index:y+1,total:v.length}:null;s(h=>h?.index===x?.index&&h?.total===x?.total?h:x)};if(u(),!o)return;const b=new MutationObserver(u);return b.observe(a,{childList:!0,subtree:!0}),()=>b.disconnect()},[t,o]),l}const ge={process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},ee=()=>({image:"",href:"#",process:"",eyebrow:"",name:"",meta:""}),ue=Array.from({length:6},ee);function te(t){const o=(t.photos??[]).map(a=>a?.src).filter(a=>!!a),l=t.image||o[0]||"",s=[l,...o].filter(a=>!!a),c=D(t.name)||"gallery-item";return{car:t.eyebrow??"",wheel:t.name??"",process:t.process??"",finish:t.meta??"",imageLabel:`${c}.jpg`,detailLabel:`${c}-detail.jpg`,imageSrc:l||void 0,detailSrc:o[0]||l||void 0,photos:s,href:t.href}}function re({editing:t=!1,previewHover:o,ratio:l,captionPlace:s,...c}){const{galleryHref:a="/gallery",submitHref:u="/contact",previewHover:b,display:v,displayPhone:y,styleOwner:x,photosOnly:h=!1}=Y(K),e=te(c),f=U()&&!h,P=!f&&!oe(e),i=e.photos??(e.imageSrc?[e.imageSrc]:[]),_=B(null),z=M(p=>{_.current=p},[]),j=X(_,t),H=t&&(!!o||!!b),[I,g]=L(!1),[w,N]=L(0),E=()=>N(p=>(p-1+i.length)%i.length),T=()=>N(p=>(p+1)%i.length),k=i[w]??e.imageSrc??"",O=r(F,{build:e,forceHover:H,index:j?.index,total:j?.total,ratio:l,captionPlace:s,display:v,displayPhone:y,styleOwner:x,editing:t});return n(m,{children:[t?r("div",{ref:z,[C]:"",className:"block w-full text-left",children:O}):r("button",{ref:z,[C]:"",type:"button","aria-label":f?`Open ${e.car||"build"} on ${e.wheel||"wheel"}`:R(e),onClick:()=>{N(0),g(!0)},className:"block w-full cursor-pointer text-left focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",children:O}),r(V,{open:I,onClose:()=>g(!1),label:f?`${e.car} on ${e.wheel}`:R(e),onPrev:i.length>1?E:void 0,onNext:i.length>1?T:void 0,className:"flex items-center justify-center p-6 backdrop-blur-[8px] max-[700px]:p-3",style:{background:"color-mix(in oklab, var(--bg) 78%, transparent)"},children:n("div",{onClick:p=>p.stopPropagation(),className:`relative grid w-[min(1800px,100%)] max-h-[calc(100vh-48px)] ${P?"grid-cols-1":"grid-cols-[1.4fr_1fr]"} overflow-hidden border border-line bg-bg max-[1100px]:grid-cols-1 max-[1100px]:overflow-auto`,style:{boxShadow:"0 60px 120px -20px color-mix(in srgb, var(--sf-shadow-color, #141416) 70%, transparent)"},children:[r(q,{label:"Close popup",className:"absolute right-[24px] top-[24px] z-[5] flex h-[56px] w-[56px] items-center justify-center border border-line font-mono text-[length:var(--size-label,21px)] text-fg-dim transition-colors hover:border-accent hover:text-fg",style:{background:"color-mix(in oklab, var(--bg) 70%, transparent)"},children:"✕"}),n("div",{className:"relative flex min-h-[690px] items-center justify-center overflow-hidden bg-surface-2 max-[1100px]:min-h-[450px]",children:[k&&r("img",{...Z(k,{fallbackWidth:1280}),sizes:J,alt:`${(f?e.car:e.wheel||e.car)||"Photo"} — ${w+1} of ${i.length}`,className:"block h-full max-h-[88vh] w-full object-cover"},k),i.length>1&&n(m,{children:[r("button",{type:"button","aria-label":"Previous photo",onClick:E,className:"absolute left-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"◁"}),r("button",{type:"button","aria-label":"Next photo",onClick:T,className:"absolute right-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"▷"}),n("span",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 border border-fg-dim/30 bg-overlay-scrim/50 px-4 py-1.5 font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em] text-fg-dim backdrop-blur-[4px]",children:[w+1," / ",i.length]})]})]}),f?n("div",{className:"flex flex-col gap-[30px] px-[60px] py-[72px] max-[1100px]:px-9 max-[1100px]:py-[54px]",children:[e.process&&r("span",{className:"font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.3em] text-accent",children:d(e.process)}),e.wheel&&r("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(42px,4.5vw,60px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.025em]",children:$(e.wheel,!1)}),e.car&&n("div",{className:"font-heading3 text-[length:var(--size-headingSmall,27px)] leading-[1.4] text-fg",children:["on ",r("em",{className:"font-serif font-normal italic text-accent tracking-[-0.01em]",children:d(e.car,!0)})]}),n("dl",{className:"mt-3 grid grid-cols-[auto_1fr] gap-x-7 gap-y-[18px] border-y border-line py-[30px] font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em]",children:[e.wheel&&n(m,{children:[r("dt",{className:"text-fg-dim",children:"Wheel"}),r("dd",{className:"text-fg",children:d(e.wheel)})]}),e.process&&n(m,{children:[r("dt",{className:"text-fg-dim",children:"Process"}),r("dd",{className:"text-fg",children:d(e.process)})]}),e.finish&&n(m,{children:[r("dt",{className:"text-fg-dim",children:"Finish"}),r("dd",{className:"text-fg",children:d(e.finish)})]}),e.car&&n(m,{children:[r("dt",{className:"text-fg-dim",children:"Vehicle"}),r("dd",{className:"text-fg",children:d(e.car)})]})]}),n("div",{className:"mt-auto flex flex-col gap-3.5 pt-6",children:[n(S,{href:e.href||"/wheels",onClick:()=>g(!1),className:"group flex items-center justify-between gap-6 border border-btn bg-btn px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-btn-ink transition-colors hover:border-fg hover:bg-fg",children:[r("span",{children:"View product"}),r("span",{className:"transition-transform group-hover:translate-x-[6px]",children:"→"})]}),n(S,{href:a,onClick:()=>g(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[r("span",{children:"See more builds"}),r("span",{children:"→"})]}),n(S,{href:u,onClick:()=>g(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[r("span",{children:"Submit your build"}),r("span",{children:"→"})]})]})]}):!P&&r(ne,{build:e})]})})]})}function A(t){return[t.process,t.car,t.finish].filter((o,l,s)=>!!o&&o!==t.wheel&&s.indexOf(o)===l)}function oe(t){return!!t.wheel||A(t).length>0}function R(t){const o=t.wheel||t.car;return o?`Open photo of ${o}`:"Open photo"}function ne({build:t}){const o=t.wheel,l=A(t);return n("div",{className:"flex flex-col gap-[24px] px-[60px] py-[72px] max-[1100px]:px-9 max-[1100px]:py-[54px]",children:[o&&r("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(42px,4.5vw,60px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.025em]",children:$(o,!1)}),l.map(s=>r("p",{className:"text-[length:var(--size-body,18px)] leading-[1.5] text-fg",children:d(s)},s))]})}export{Q as GALLERY_GRID_ATTR,ge as GALLERY_ITEM_HINTS,ue as GALLERY_ITEM_SEEDS,C as GALLERY_TILE_ATTR,fe as GALLERY_TILE_PARTS,K as GalleryLinksContext,re as default};
1
+ "use client";import{jsx as r,jsxs as n,Fragment as m}from"react/jsx-runtime";import{createContext as G,useCallback as M,useContext as Y,useEffect as B,useRef as W,useState as L}from"react";import S from"next/link";import{slugify as D}from"efficient-shell/format";import F from"./GalleryCard.js";import V,{LightboxClose as q,LIGHTBOX_CLOSE_TINT as U}from"./Lightbox.js";import{useSiteSells as X}from"./SiteRecordContext.js";import{renderGold as d,renderHeadline as I}from"efficient-web-builder/render/components/goldPhrases";import{sizedImage as Z}from"efficient-web-builder/format/lib/sized-image";const J="(max-width: 1100px) 100vw, min(59vw, 1050px)",K=G({}),ge=[{id:"tag",label:"Tag"},{id:"eyebrow",label:"Eyebrow"},{id:"title",label:"Title"},{id:"meta",label:"Meta"},{id:"number",label:"Card number"}],Q="data-gallery-grid",C="data-gallery-tile";function ee(t,o){const[l,s]=L(null);return B(()=>{const c=t.current,a=c?.closest(`[${Q}]`);if(!c||!a)return;const u=()=>{const v=Array.from(a.querySelectorAll(`[${C}]`)),y=v.indexOf(c),x=y>=0?{index:y+1,total:v.length}:null;s(h=>h?.index===x?.index&&h?.total===x?.total?h:x)};if(u(),!o)return;const b=new MutationObserver(u);return b.observe(a,{childList:!0,subtree:!0}),()=>b.disconnect()},[t,o]),l}const ue={process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},te=()=>({image:"",href:"#",process:"",eyebrow:"",name:"",meta:""}),be=Array.from({length:6},te);function re(t){const o=(t.photos??[]).map(a=>a?.src).filter(a=>!!a),l=t.image||o[0]||"",s=[l,...o].filter(a=>!!a),c=D(t.name)||"gallery-item";return{car:t.eyebrow??"",wheel:t.name??"",process:t.process??"",finish:t.meta??"",imageLabel:`${c}.jpg`,detailLabel:`${c}-detail.jpg`,imageSrc:l||void 0,detailSrc:o[0]||l||void 0,photos:s,href:t.href}}function oe({editing:t=!1,previewHover:o,ratio:l,captionPlace:s,...c}){const{galleryHref:a="/gallery",submitHref:u="/contact",previewHover:b,display:v,displayPhone:y,styleOwner:x,photosOnly:h=!1}=Y(K),e=re(c),f=X()&&!h,_=!f&&!ne(e),i=e.photos??(e.imageSrc?[e.imageSrc]:[]),P=W(null),T=M(p=>{P.current=p},[]),z=ee(P,t),H=t&&(!!o||!!b),[R,g]=L(!1),[w,N]=L(0),j=()=>N(p=>(p-1+i.length)%i.length),E=()=>N(p=>(p+1)%i.length),k=i[w]??e.imageSrc??"",O=r(F,{build:e,forceHover:H,index:z?.index,total:z?.total,ratio:l,captionPlace:s,display:v,displayPhone:y,styleOwner:x,editing:t});return n(m,{children:[t?r("div",{ref:T,[C]:"",className:"block w-full text-left",children:O}):r("button",{ref:T,[C]:"",type:"button","aria-label":f?`Open ${e.car||"build"} on ${e.wheel||"wheel"}`:A(e),onClick:()=>{N(0),g(!0)},className:"block w-full cursor-pointer text-left focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",children:O}),r(V,{open:R,onClose:()=>g(!1),label:f?`${e.car} on ${e.wheel}`:A(e),onPrev:i.length>1?j:void 0,onNext:i.length>1?E:void 0,className:"flex items-center justify-center p-6 max-[700px]:p-3",children:n("div",{onClick:p=>p.stopPropagation(),className:`relative grid w-[min(1800px,100%)] max-h-[calc(100vh-48px)] ${_?"grid-cols-1":"grid-cols-[1.4fr_1fr]"} overflow-hidden border border-line bg-bg max-[1100px]:grid-cols-1 max-[1100px]:overflow-auto`,style:{boxShadow:"0 60px 120px -20px color-mix(in srgb, var(--sf-shadow-color, #141416) 70%, transparent)"},children:[r(q,{label:"Close popup",className:"absolute right-[24px] top-[24px] z-[5] flex h-[56px] w-[56px] items-center justify-center border border-line font-mono text-[length:var(--size-label,21px)] text-fg-dim transition-colors hover:border-accent hover:text-fg",style:{background:U},children:"✕"}),n("div",{className:"relative flex min-h-[690px] items-center justify-center overflow-hidden bg-surface-2 max-[1100px]:min-h-[450px]",children:[k&&r("img",{...Z(k,{fallbackWidth:1280}),sizes:J,alt:`${(f?e.car:e.wheel||e.car)||"Photo"} — ${w+1} of ${i.length}`,className:"block h-full max-h-[88vh] w-full object-cover"},k),i.length>1&&n(m,{children:[r("button",{type:"button","aria-label":"Previous photo",onClick:j,className:"absolute left-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"◁"}),r("button",{type:"button","aria-label":"Next photo",onClick:E,className:"absolute right-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"▷"}),n("span",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 border border-fg-dim/30 bg-overlay-scrim/50 px-4 py-1.5 font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em] text-fg-dim backdrop-blur-[4px]",children:[w+1," / ",i.length]})]})]}),f?n("div",{className:"flex flex-col gap-[30px] px-[60px] py-[72px] max-[1100px]:px-9 max-[1100px]:py-[54px]",children:[e.process&&r("span",{className:"font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.3em] text-accent",children:d(e.process)}),e.wheel&&r("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(42px,4.5vw,60px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.025em]",children:I(e.wheel,!1)}),e.car&&n("div",{className:"font-heading3 text-[length:var(--size-headingSmall,27px)] leading-[1.4] text-fg",children:["on ",r("em",{className:"font-serif font-normal italic text-accent tracking-[-0.01em]",children:d(e.car,!0)})]}),n("dl",{className:"mt-3 grid grid-cols-[auto_1fr] gap-x-7 gap-y-[18px] border-y border-line py-[30px] font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em]",children:[e.wheel&&n(m,{children:[r("dt",{className:"text-fg-dim",children:"Wheel"}),r("dd",{className:"text-fg",children:d(e.wheel)})]}),e.process&&n(m,{children:[r("dt",{className:"text-fg-dim",children:"Process"}),r("dd",{className:"text-fg",children:d(e.process)})]}),e.finish&&n(m,{children:[r("dt",{className:"text-fg-dim",children:"Finish"}),r("dd",{className:"text-fg",children:d(e.finish)})]}),e.car&&n(m,{children:[r("dt",{className:"text-fg-dim",children:"Vehicle"}),r("dd",{className:"text-fg",children:d(e.car)})]})]}),n("div",{className:"mt-auto flex flex-col gap-3.5 pt-6",children:[n(S,{href:e.href||"/wheels",onClick:()=>g(!1),className:"group flex items-center justify-between gap-6 border border-btn bg-btn px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-btn-ink transition-colors hover:border-fg hover:bg-fg",children:[r("span",{children:"View product"}),r("span",{className:"transition-transform group-hover:translate-x-[6px]",children:"→"})]}),n(S,{href:a,onClick:()=>g(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[r("span",{children:"See more builds"}),r("span",{children:"→"})]}),n(S,{href:u,onClick:()=>g(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[r("span",{children:"Submit your build"}),r("span",{children:"→"})]})]})]}):!_&&r(le,{build:e})]})})]})}function $(t){return[t.process,t.car,t.finish].filter((o,l,s)=>!!o&&o!==t.wheel&&s.indexOf(o)===l)}function ne(t){return!!t.wheel||$(t).length>0}function A(t){const o=t.wheel||t.car;return o?`Open photo of ${o}`:"Open photo"}function le({build:t}){const o=t.wheel,l=$(t);return n("div",{className:"flex flex-col gap-[24px] px-[60px] py-[72px] max-[1100px]:px-9 max-[1100px]:py-[54px]",children:[o&&r("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(42px,4.5vw,60px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.025em]",children:I(o,!1)}),l.map(s=>r("p",{className:"text-[length:var(--size-body,18px)] leading-[1.5] text-fg",children:d(s)},s))]})}export{Q as GALLERY_GRID_ATTR,ue as GALLERY_ITEM_HINTS,be as GALLERY_ITEM_SEEDS,C as GALLERY_TILE_ATTR,ge as GALLERY_TILE_PARTS,K as GalleryLinksContext,oe as default};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as r,Fragment as N}from"react/jsx-runtime";import $e from"next/link";import{useMemo as W,useState as w}from"react";import{slugify as F}from"efficient-shell/format";import{stripMarkup as T}from"efficient-web-builder/format/lib/markup";import{renderChrome as k,renderGold as i,renderHeadline as Ce}from"efficient-web-builder/render/components/goldPhrases";import G from"efficient-web-builder/render/components/Placeholder";import je,{LightboxClose as Se}from"./Lightbox.js";import ze from"./ThemedSelect.js";import{say as $}from"efficient-web-builder/format/lib/editor-words";const n={bodyUpTo720:"max-[720px]:text-[length:var(--size-body,15px)]",labelUpTo720:"max-[720px]:text-[length:var(--size-label,11px)]",body:"text-[length:var(--size-body,17px)]",labelXs:"text-[length:var(--size-label,11px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]",labelXl:"text-[length:var(--size-label,14px)]"};function Y(x){const g=[x.image,...(x.photos??[]).map(u=>u?.src)].filter(u=>!!u);return g.length?g:[""]}const O=6,Le=()=>Array.from({length:O},(x,g)=>({image:"",process:$("Tag"),eyebrow:$("Category"),name:$("Item name"),meta:$("{n} photos",{n:`0${g+1}`})}));function _e({mode:x="both",kicker:g,breadcrumbLabel:u,vehicleTabLabel:X="Gallery A",vehicleTitle:ee,vehicleBody1:te,vehicleBody2:ae,vehicleStats:re,vehicleCards:B,wheelTabLabel:U="Gallery B",wheelTitle:ne,wheelBody1:le,wheelBody2:se,wheelStats:oe,wheelCards:E,othersTitle:ie,othersBody1:ce,othersBody2:pe,othersStats:me,othersCards:de,showBreadcrumb:xe=!0,showStats:ge=!0,showIntro:ue=!0,showTabs:fe=!0,showFilters:H=!0,showCount:M=!0,showSort:I=!0,previewTab:C,previewHover:he=!1,editing:b=!1}){const j=x==="both",v=j?["vehicles","wheels"]:x==="wheels"?["wheels"]:x==="others"?["others"]:["vehicles"],[Z,be]=w(v[0]),y=(b&&j&&C&&v.includes(C)?C:null)??(v.includes(Z)?Z:v[0]),ve=b&&he,[S,D]=w("all"),[z,ye]=w("newest"),[L,h]=w(null),l=y==="vehicles"?{title:ee,body1:te,body2:ae,stats:re??[],cards:B??[],unit:"items",word:X}:y==="others"?{title:ie,body1:ce,body2:pe,stats:me??[],cards:de??[],unit:"items",word:"Others"}:{title:ne,body1:le,body2:se,stats:oe??[],cards:E??[],unit:"items",word:U},V=W(()=>{const e=[];for(const a of l.cards)a.process&&!e.includes(a.process)&&e.push(a.process);return e},[l.cards]),_=S!=="all"&&V.includes(S)?S:"all",q=_==="all"?l.cards:l.cards.filter(e=>e.process===_),J=W(()=>{const e=[...q];return z==="name"&&e.sort((a,o)=>(a.name??"").localeCompare(o.name??"")),e},[q,z]),K=l.cards.length===0,A=b&&K,P=A?Le():J,Ne=A?O:l.cards.length,we=A?O:J.length,Q=g?`${g} · ${T(l.word)}`:void 0;function ke(e){e!==y&&(be(e),D("all"))}return r("section",{className:"relative z-[2] bg-bg",children:[xe&&r("nav",{className:`mx-auto flex max-w-[var(--sf-site-width,1600px)] items-center gap-4 border-b border-line px-[var(--sf-site-gutter,40px)] py-6 font-mono ${n.labelLarge} uppercase tracking-[0.2em] text-fg-dim max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-4`,children:[t("span",{className:"hover:text-fg",children:"Home"}),t("span",{className:"opacity-40",children:"/"}),t("span",{className:"text-fg",children:u?k(u):"Gallery"})]}),r("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[auto_1fr_auto] items-end gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] pt-[100px] pb-[60px] max-[1100px]:grid-cols-1 max-[1100px]:gap-5 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:pt-[60px]",children:[t("span",{className:`pb-4 font-mono ${n.labelXl} uppercase tracking-[0.3em] text-accent`,children:Q?i(Q):null}),t("h2",{className:"font-display text-[length:min(var(--size-headingLarge,clamp(64px,9vw,140px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.9] tracking-[-0.04em]",children:l.title?Ce(l.title,!0):null}),t("div",{className:`pb-4 text-right font-mono ${n.labelLarge} uppercase leading-[1.8] tracking-[0.18em] text-fg-dim max-[1100px]:text-left`,children:ge&&l.stats.map((e,a)=>r("div",{children:[e.value?t("strong",{className:"font-normal text-fg",children:i(e.value)}):null," ",e.label?i(e.label):null]},a))})]}),ue&&(l.body1||l.body2)&&r("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-2 gap-[60px] px-[var(--sf-site-gutter,40px)] pt-8 max-[1100px]:grid-cols-1 max-[1100px]:gap-4 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[l.body1&&t("p",{className:`max-w-[540px] font-display ${n.body} leading-[1.6] text-fg-dim`,children:i(l.body1)}),l.body2&&t("p",{className:`max-w-[540px] font-display ${n.body} leading-[1.6] text-fg-dim`,children:i(l.body2)})]}),j&&fe&&t("div",{className:"mx-auto mt-10 flex max-w-[var(--sf-site-width,1600px)] items-stretch border-y border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[720px]:px-3",children:["vehicles","wheels"].map((e,a)=>{const o=y===e,c=e==="vehicles"?X:U,f=e==="vehicles"?(B??[]).length:(E??[]).length,p=(c||"").trim().split(/\s+/),m=p.slice(0,-1).join(" "),s=p.slice(-1)[0]??"";return r("button",{type:"button",onClick:()=>ke(e),className:["group relative grid flex-1 cursor-pointer grid-cols-[auto_1fr_auto] items-end gap-5 px-6 py-8 text-left transition-colors",a===0?"border-r border-line":"","max-[720px]:grid-cols-[auto_1fr] max-[720px]:items-center max-[720px]:gap-2 max-[720px]:px-3 max-[720px]:py-3",o?"bg-surface":"hover:bg-fg/[0.04]"].join(" "),children:[t("span",{className:[`pb-2 font-mono ${n.labelLarge} tracking-[0.3em] max-[720px]:pb-0 ${n.labelUpTo720} max-[720px]:tracking-[0.24em]`,o?"text-accent":"text-fg-dim group-hover:text-accent"].join(" "),children:a===0?"A":"B"}),r("span",{className:`font-heading2 text-[length:min(var(--size-headingMedium,clamp(28px,3.6vw,48px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] ${n.bodyUpTo720}`,children:[m?r(N,{children:[k(m)," "]}):null,t("em",{className:"font-normal italic text-accent",children:k(s)})]}),r("span",{className:`pb-2 text-right font-mono ${n.labelSmall} uppercase leading-[1.7] tracking-[0.24em] text-fg-dim max-[720px]:hidden`,children:[t("strong",{className:"font-normal text-fg",children:f})," ","items",t("br",{}),e==="vehicles"?"Community photos":"Featured photos"]}),o&&t("span",{className:"pointer-events-none absolute inset-x-0 -bottom-px h-0.5 bg-accent"})]},e)})}),(H||M||I)&&r("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[auto_1fr_auto] items-center gap-8 border-b border-line px-[var(--sf-site-gutter,40px)] py-5 max-[720px]:grid-cols-1 max-[720px]:gap-4 max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-3",style:{background:"color-mix(in oklab, var(--bg) 92%, transparent)"},children:[t("div",{className:"flex flex-wrap gap-1",children:H&&["all",...V].map(e=>{const a=_===e,o=e==="all"?"All":e;return t("button",{type:"button",onClick:()=>D(e),className:[`cursor-pointer border px-4 py-3 font-mono ${n.labelLarge} uppercase tracking-[0.2em] transition-colors`,a?"border-fg bg-fg text-bg":"border-transparent text-fg-dim hover:text-fg"].join(" "),children:k(o)},e)})}),M?r("div",{className:`text-center font-mono ${n.labelLarge} uppercase tracking-[0.2em] text-fg-dim`,children:[t("strong",{className:"font-normal text-accent",children:we})," / ",Ne," ",l.unit]}):t("div",{}),I?r("div",{className:`flex items-center gap-3 font-mono ${n.labelLarge} uppercase tracking-[0.18em] text-fg-dim`,children:[t("span",{children:"Sort"}),r(ze,{value:z,onChange:e=>ye(e.target.value),className:`cursor-pointer border border-line bg-bg px-3 py-2 font-mono ${n.labelLarge} uppercase tracking-[0.18em] text-fg`,children:[t("option",{value:"newest",children:"Newest"}),t("option",{value:"featured",children:"Featured"}),t("option",{value:"name",children:"Name A–Z"})]})]}):t("div",{})]}),t("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-5 pb-20 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))]",children:P.length>0?t("div",{className:"grid grid-cols-6 gap-2 max-[1100px]:grid-cols-2 max-[720px]:grid-cols-1",children:P.map((e,a)=>{const o=Y(e)[0],f=`group relative block aspect-[4/3] w-full overflow-hidden bg-surface-2 text-left ${a<2?"col-span-3 max-[1100px]:col-span-1":"col-span-2 max-[1100px]:col-span-1"}`,p=`${e.name??"card"}-${a}`,m=r(N,{children:[t(G,{label:F(e.name)||`gallery-card-${a+1}`,src:o||void 0,alt:T(e.name??""),sizes:"(max-width: 720px) 100vw, (max-width: 1100px) 50vw, 33vw",className:`transition-transform duration-700 ${ve?"scale-[1.04]":"group-hover:scale-[1.04]"}`}),r("div",{className:"pointer-events-none absolute inset-0 z-10 flex flex-col justify-between p-6 max-[720px]:p-3",style:{background:"linear-gradient(180deg, rgba(10,10,10,.55) 0%, transparent 35%, transparent 55%, rgba(10,10,10,.92) 100%)"},children:[r("div",{className:`flex items-start justify-between font-mono ${n.labelSmall} uppercase tracking-[0.24em]`,children:[e.process?t("span",{className:"text-accent",children:i(e.process)}):t("span",{}),r("span",{className:"text-overlay-fg/70",children:[String(a+1).padStart(2,"0")," / ",String(P.length).padStart(2,"0")]})]}),r("div",{className:"flex flex-col gap-2",children:[e.eyebrow&&t("div",{className:`font-mono ${n.labelSmall} uppercase tracking-[0.24em] text-accent`,children:i(e.eyebrow)}),e.name&&t("div",{className:"font-heading3 text-[length:var(--size-headingSmall,clamp(22px,2.4vw,32px))] font-medium uppercase leading-none tracking-[-0.02em] text-overlay-fg",children:i(e.name)}),e.meta&&t("div",{className:`flex flex-wrap gap-3 pt-1 font-mono ${n.labelXs} uppercase tracking-[0.2em] text-overlay-fg/70`,children:t("span",{children:i(e.meta)})})]})]})]});return b?t("div",{className:f,children:m},p):t("button",{type:"button",onClick:()=>h({card:e,index:0}),"aria-label":`Open ${e.name??"gallery item"}`,className:`${f} cursor-pointer focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2`,children:m},p)})}):t("div",{className:`py-20 text-center font-mono ${n.labelXl} uppercase tracking-[0.2em] text-fg-dim`,children:K?"No items in this gallery yet.":"No items match this filter."})}),L&&(()=>{const e=Y(L.card),{card:a,index:o}=L,c=e.length,f=e[o]??e[0]??"",p=s=>h(d=>d&&{...d,index:(d.index+s+c)%c}),m=[a.process,a.meta].filter(Boolean).join(" · ");return r(je,{open:!0,onClose:()=>h(null),label:a.name??"Gallery item",onPrev:c>1?()=>p(-1):void 0,onNext:c>1?()=>p(1):void 0,className:"flex cursor-zoom-out flex-col items-center justify-center bg-overlay-scrim/92 p-6 backdrop-blur-sm max-[720px]:p-3",children:[r("div",{className:"relative flex w-full flex-1 items-center justify-center",children:[t("div",{className:"relative h-full max-h-[72vh] w-full max-w-[92vw]",children:t(G,{label:F(a.name)||"gallery-photo",src:f||void 0,alt:T(a.name??""),objectFit:"contain",sizes:"92vw"})}),c>1&&r(N,{children:[t("button",{type:"button","aria-label":"Previous photo",onClick:s=>{s.stopPropagation(),p(-1)},className:"absolute left-2 top-1/2 flex h-12 w-12 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"◁"}),t("button",{type:"button","aria-label":"Next photo",onClick:s=>{s.stopPropagation(),p(1)},className:"absolute right-2 top-1/2 flex h-12 w-12 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"▷"})]})]}),r("div",{className:`mt-5 flex flex-col items-center gap-3 text-center font-mono ${n.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,onClick:s=>s.stopPropagation(),children:[r("div",{className:"flex flex-col items-center gap-1",children:[a.name&&t("span",{className:"text-accent",children:i(a.name)}),a.eyebrow&&t("span",{children:i(a.eyebrow)}),r("span",{className:"text-fg-dim/70",children:[m?r(N,{children:[i(m)," · "]}):null,o+1," / ",c]})]}),a.href&&t($e,{href:a.href,onClick:()=>h(null),className:`cursor-pointer border border-btn bg-btn/[0.08] px-5 py-3 font-mono ${n.labelLarge} uppercase tracking-[0.28em] text-btn transition-colors hover:bg-btn hover:text-btn-ink`,children:"View Product →"})]}),c>1&&t("div",{onClick:s=>s.stopPropagation(),className:"mt-5 flex max-w-[92vw] gap-2 overflow-x-auto pb-1",children:e.map((s,d)=>t("button",{type:"button","aria-label":`Photo ${d+1}`,onClick:()=>h(R=>R&&{...R,index:d}),className:["relative h-16 w-24 shrink-0 cursor-pointer overflow-hidden border transition-colors max-[720px]:h-12 max-[720px]:w-16",d===o?"border-accent":"border-line opacity-60 hover:border-fg-dim hover:opacity-100"].join(" "),children:t(G,{label:F(a.name)||"gallery-photo",src:s||void 0,alt:"",sizes:"120px"})},`${s}-${d}`))}),t(Se,{})]})})()]})}export{_e as default};
1
+ "use client";import{jsx as t,jsxs as r,Fragment as N}from"react/jsx-runtime";import $e from"next/link";import{useMemo as W,useState as w}from"react";import{slugify as F}from"efficient-shell/format";import{stripMarkup as T}from"efficient-web-builder/format/lib/markup";import{renderChrome as k,renderGold as i,renderHeadline as Ce}from"efficient-web-builder/render/components/goldPhrases";import G from"efficient-web-builder/render/components/Placeholder";import je,{LightboxClose as Se}from"./Lightbox.js";import ze from"./ThemedSelect.js";import{say as $}from"efficient-web-builder/format/lib/editor-words";const n={bodyUpTo720:"max-[720px]:text-[length:var(--size-body,15px)]",labelUpTo720:"max-[720px]:text-[length:var(--size-label,11px)]",body:"text-[length:var(--size-body,17px)]",labelXs:"text-[length:var(--size-label,11px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]",labelXl:"text-[length:var(--size-label,14px)]"};function Y(x){const g=[x.image,...(x.photos??[]).map(u=>u?.src)].filter(u=>!!u);return g.length?g:[""]}const O=6,Le=()=>Array.from({length:O},(x,g)=>({image:"",process:$("Tag"),eyebrow:$("Category"),name:$("Item name"),meta:$("{n} photos",{n:`0${g+1}`})}));function _e({mode:x="both",kicker:g,breadcrumbLabel:u,vehicleTabLabel:X="Gallery A",vehicleTitle:ee,vehicleBody1:te,vehicleBody2:ae,vehicleStats:re,vehicleCards:B,wheelTabLabel:U="Gallery B",wheelTitle:ne,wheelBody1:le,wheelBody2:se,wheelStats:oe,wheelCards:E,othersTitle:ie,othersBody1:ce,othersBody2:pe,othersStats:me,othersCards:de,showBreadcrumb:xe=!0,showStats:ge=!0,showIntro:ue=!0,showTabs:fe=!0,showFilters:H=!0,showCount:M=!0,showSort:I=!0,previewTab:C,previewHover:he=!1,editing:b=!1}){const j=x==="both",v=j?["vehicles","wheels"]:x==="wheels"?["wheels"]:x==="others"?["others"]:["vehicles"],[Z,be]=w(v[0]),y=(b&&j&&C&&v.includes(C)?C:null)??(v.includes(Z)?Z:v[0]),ve=b&&he,[S,D]=w("all"),[z,ye]=w("newest"),[L,h]=w(null),l=y==="vehicles"?{title:ee,body1:te,body2:ae,stats:re??[],cards:B??[],unit:"items",word:X}:y==="others"?{title:ie,body1:ce,body2:pe,stats:me??[],cards:de??[],unit:"items",word:"Others"}:{title:ne,body1:le,body2:se,stats:oe??[],cards:E??[],unit:"items",word:U},V=W(()=>{const e=[];for(const a of l.cards)a.process&&!e.includes(a.process)&&e.push(a.process);return e},[l.cards]),_=S!=="all"&&V.includes(S)?S:"all",q=_==="all"?l.cards:l.cards.filter(e=>e.process===_),J=W(()=>{const e=[...q];return z==="name"&&e.sort((a,o)=>(a.name??"").localeCompare(o.name??"")),e},[q,z]),K=l.cards.length===0,A=b&&K,P=A?Le():J,Ne=A?O:l.cards.length,we=A?O:J.length,Q=g?`${g} · ${T(l.word)}`:void 0;function ke(e){e!==y&&(be(e),D("all"))}return r("section",{className:"relative z-[2] bg-bg",children:[xe&&r("nav",{className:`mx-auto flex max-w-[var(--sf-site-width,1600px)] items-center gap-4 border-b border-line px-[var(--sf-site-gutter,40px)] py-6 font-mono ${n.labelLarge} uppercase tracking-[0.2em] text-fg-dim max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-4`,children:[t("span",{className:"hover:text-fg",children:"Home"}),t("span",{className:"opacity-40",children:"/"}),t("span",{className:"text-fg",children:u?k(u):"Gallery"})]}),r("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[auto_1fr_auto] items-end gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] pt-[100px] pb-[60px] max-[1100px]:grid-cols-1 max-[1100px]:gap-5 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:pt-[60px]",children:[t("span",{className:`pb-4 font-mono ${n.labelXl} uppercase tracking-[0.3em] text-accent`,children:Q?i(Q):null}),t("h2",{className:"font-display text-[length:min(var(--size-headingLarge,clamp(64px,9vw,140px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.9] tracking-[-0.04em]",children:l.title?Ce(l.title,!0):null}),t("div",{className:`pb-4 text-right font-mono ${n.labelLarge} uppercase leading-[1.8] tracking-[0.18em] text-fg-dim max-[1100px]:text-left`,children:ge&&l.stats.map((e,a)=>r("div",{children:[e.value?t("strong",{className:"font-normal text-fg",children:i(e.value)}):null," ",e.label?i(e.label):null]},a))})]}),ue&&(l.body1||l.body2)&&r("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-2 gap-[60px] px-[var(--sf-site-gutter,40px)] pt-8 max-[1100px]:grid-cols-1 max-[1100px]:gap-4 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",children:[l.body1&&t("p",{className:`max-w-[540px] font-display ${n.body} leading-[1.6] text-fg-dim`,children:i(l.body1)}),l.body2&&t("p",{className:`max-w-[540px] font-display ${n.body} leading-[1.6] text-fg-dim`,children:i(l.body2)})]}),j&&fe&&t("div",{className:"mx-auto mt-10 flex max-w-[var(--sf-site-width,1600px)] items-stretch border-y border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[720px]:px-3",children:["vehicles","wheels"].map((e,a)=>{const o=y===e,c=e==="vehicles"?X:U,f=e==="vehicles"?(B??[]).length:(E??[]).length,p=(c||"").trim().split(/\s+/),m=p.slice(0,-1).join(" "),s=p.slice(-1)[0]??"";return r("button",{type:"button",onClick:()=>ke(e),className:["group relative grid flex-1 cursor-pointer grid-cols-[auto_1fr_auto] items-end gap-5 px-6 py-8 text-left transition-colors",a===0?"border-r border-line":"","max-[720px]:grid-cols-[auto_1fr] max-[720px]:items-center max-[720px]:gap-2 max-[720px]:px-3 max-[720px]:py-3",o?"bg-surface":"hover:bg-fg/[0.04]"].join(" "),children:[t("span",{className:[`pb-2 font-mono ${n.labelLarge} tracking-[0.3em] max-[720px]:pb-0 ${n.labelUpTo720} max-[720px]:tracking-[0.24em]`,o?"text-accent":"text-fg-dim group-hover:text-accent"].join(" "),children:a===0?"A":"B"}),r("span",{className:`font-heading2 text-[length:min(var(--size-headingMedium,clamp(28px,3.6vw,48px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.02em] ${n.bodyUpTo720}`,children:[m?r(N,{children:[k(m)," "]}):null,t("em",{className:"font-normal italic text-accent",children:k(s)})]}),r("span",{className:`pb-2 text-right font-mono ${n.labelSmall} uppercase leading-[1.7] tracking-[0.24em] text-fg-dim max-[720px]:hidden`,children:[t("strong",{className:"font-normal text-fg",children:f})," ","items",t("br",{}),e==="vehicles"?"Community photos":"Featured photos"]}),o&&t("span",{className:"pointer-events-none absolute inset-x-0 -bottom-px h-0.5 bg-accent"})]},e)})}),(H||M||I)&&r("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[auto_1fr_auto] items-center gap-8 border-b border-line px-[var(--sf-site-gutter,40px)] py-5 max-[720px]:grid-cols-1 max-[720px]:gap-4 max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-3",style:{background:"color-mix(in oklab, var(--bg) 92%, transparent)"},children:[t("div",{className:"flex flex-wrap gap-1",children:H&&["all",...V].map(e=>{const a=_===e,o=e==="all"?"All":e;return t("button",{type:"button",onClick:()=>D(e),className:[`cursor-pointer border px-4 py-3 font-mono ${n.labelLarge} uppercase tracking-[0.2em] transition-colors`,a?"border-fg bg-fg text-bg":"border-transparent text-fg-dim hover:text-fg"].join(" "),children:k(o)},e)})}),M?r("div",{className:`text-center font-mono ${n.labelLarge} uppercase tracking-[0.2em] text-fg-dim`,children:[t("strong",{className:"font-normal text-accent",children:we})," / ",Ne," ",l.unit]}):t("div",{}),I?r("div",{className:`flex items-center gap-3 font-mono ${n.labelLarge} uppercase tracking-[0.18em] text-fg-dim`,children:[t("span",{children:"Sort"}),r(ze,{value:z,onChange:e=>ye(e.target.value),className:`cursor-pointer border border-line bg-bg px-3 py-2 font-mono ${n.labelLarge} uppercase tracking-[0.18em] text-fg`,children:[t("option",{value:"newest",children:"Newest"}),t("option",{value:"featured",children:"Featured"}),t("option",{value:"name",children:"Name A–Z"})]})]}):t("div",{})]}),t("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-5 pb-20 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))]",children:P.length>0?t("div",{className:"grid grid-cols-6 gap-2 max-[1100px]:grid-cols-2 max-[720px]:grid-cols-1",children:P.map((e,a)=>{const o=Y(e)[0],f=`group relative block aspect-[4/3] w-full overflow-hidden bg-surface-2 text-left ${a<2?"col-span-3 max-[1100px]:col-span-1":"col-span-2 max-[1100px]:col-span-1"}`,p=`${e.name??"card"}-${a}`,m=r(N,{children:[t(G,{label:F(e.name)||`gallery-card-${a+1}`,src:o||void 0,alt:T(e.name??""),sizes:"(max-width: 720px) 100vw, (max-width: 1100px) 50vw, 33vw",className:`transition-transform duration-700 ${ve?"scale-[1.04]":"group-hover:scale-[1.04]"}`}),r("div",{className:"pointer-events-none absolute inset-0 z-10 flex flex-col justify-between p-6 max-[720px]:p-3",style:{background:"linear-gradient(180deg, rgba(10,10,10,.55) 0%, transparent 35%, transparent 55%, rgba(10,10,10,.92) 100%)"},children:[r("div",{className:`flex items-start justify-between font-mono ${n.labelSmall} uppercase tracking-[0.24em]`,children:[e.process?t("span",{className:"text-accent",children:i(e.process)}):t("span",{}),r("span",{className:"text-overlay-fg/70",children:[String(a+1).padStart(2,"0")," / ",String(P.length).padStart(2,"0")]})]}),r("div",{className:"flex flex-col gap-2",children:[e.eyebrow&&t("div",{className:`font-mono ${n.labelSmall} uppercase tracking-[0.24em] text-accent`,children:i(e.eyebrow)}),e.name&&t("div",{className:"font-heading3 text-[length:var(--size-headingSmall,clamp(22px,2.4vw,32px))] font-medium uppercase leading-none tracking-[-0.02em] text-overlay-fg",children:i(e.name)}),e.meta&&t("div",{className:`flex flex-wrap gap-3 pt-1 font-mono ${n.labelXs} uppercase tracking-[0.2em] text-overlay-fg/70`,children:t("span",{children:i(e.meta)})})]})]})]});return b?t("div",{className:f,children:m},p):t("button",{type:"button",onClick:()=>h({card:e,index:0}),"aria-label":`Open ${e.name??"gallery item"}`,className:`${f} cursor-pointer focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2`,children:m},p)})}):t("div",{className:`py-20 text-center font-mono ${n.labelXl} uppercase tracking-[0.2em] text-fg-dim`,children:K?"No items in this gallery yet.":"No items match this filter."})}),L&&(()=>{const e=Y(L.card),{card:a,index:o}=L,c=e.length,f=e[o]??e[0]??"",p=s=>h(d=>d&&{...d,index:(d.index+s+c)%c}),m=[a.process,a.meta].filter(Boolean).join(" · ");return r(je,{open:!0,onClose:()=>h(null),label:a.name??"Gallery item",onPrev:c>1?()=>p(-1):void 0,onNext:c>1?()=>p(1):void 0,className:"flex cursor-zoom-out flex-col items-center justify-center p-6 max-[720px]:p-3",children:[r("div",{className:"relative flex w-full flex-1 items-center justify-center",children:[t("div",{className:"relative h-full max-h-[72vh] w-full max-w-[92vw]",children:t(G,{label:F(a.name)||"gallery-photo",src:f||void 0,alt:T(a.name??""),objectFit:"contain",sizes:"92vw"})}),c>1&&r(N,{children:[t("button",{type:"button","aria-label":"Previous photo",onClick:s=>{s.stopPropagation(),p(-1)},className:"absolute left-2 top-1/2 flex h-12 w-12 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"◁"}),t("button",{type:"button","aria-label":"Next photo",onClick:s=>{s.stopPropagation(),p(1)},className:"absolute right-2 top-1/2 flex h-12 w-12 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"▷"})]})]}),r("div",{className:`mt-5 flex flex-col items-center gap-3 text-center font-mono ${n.labelSmall} uppercase tracking-[0.2em] text-fg-dim`,onClick:s=>s.stopPropagation(),children:[r("div",{className:"flex flex-col items-center gap-1",children:[a.name&&t("span",{className:"text-accent",children:i(a.name)}),a.eyebrow&&t("span",{children:i(a.eyebrow)}),r("span",{className:"text-fg-dim/70",children:[m?r(N,{children:[i(m)," · "]}):null,o+1," / ",c]})]}),a.href&&t($e,{href:a.href,onClick:()=>h(null),className:`cursor-pointer border border-btn bg-btn/[0.08] px-5 py-3 font-mono ${n.labelLarge} uppercase tracking-[0.28em] text-btn transition-colors hover:bg-btn hover:text-btn-ink`,children:"View Product →"})]}),c>1&&t("div",{onClick:s=>s.stopPropagation(),className:"mt-5 flex max-w-[92vw] gap-2 overflow-x-auto pb-1",children:e.map((s,d)=>t("button",{type:"button","aria-label":`Photo ${d+1}`,onClick:()=>h(R=>R&&{...R,index:d}),className:["relative h-16 w-24 shrink-0 cursor-pointer overflow-hidden border transition-colors max-[720px]:h-12 max-[720px]:w-16",d===o?"border-accent":"border-line opacity-60 hover:border-fg-dim hover:opacity-100"].join(" "),children:t(G,{label:F(a.name)||"gallery-photo",src:s||void 0,alt:"",sizes:"120px"})},`${s}-${d}`))}),t(Se,{})]})})()]})}export{_e as default};
@@ -1 +1 @@
1
- "use client";import{jsx as r,Fragment as $,jsxs as a}from"react/jsx-runtime";import oe from"next/link";import{usePathname as Ye}from"next/navigation";import{useCallback as Je,useEffect as M,useState as p}from"react";import{useCart as Xe}from"./CartContext.js";import{useSearch as Qe}from"./SearchContext.js";import Ze,{useCountrySelectShows as et}from"./CountrySelect.js";import{resolveCountryShowAs as tt}from"../lib/content/country-show-as.js";import re from"./HeaderNavItem.js";import nt from"efficient-web-builder/render/components/Logo";import ot from"./MenuPlaceholderLabel.js";import{withRMark as ae}from"efficient-web-builder/render/components/RMark";import{AccountButton as rt,CartButton as at,SearchButton as lt}from"./HeaderTools.js";import st from"./HeaderCallButton.js";import{useHeaderBar as ct}from"./useHeaderBar.js";import{useModalDismiss as it}from"./useModalDismiss.js";import dt from"./ThemeToggle.js";import{products as mt}from"../lib/api/index.js";import{shouldFetchPublicHeaderSettings as ut}from"../lib/header-settings-fetch.js";import{HEADER_MENU_PLACEHOLDER_COUNT as ht}from"../lib/content/menu-placeholder.js";import{DEFAULT_SWITCH_SHOWN as ft}from"efficient-web-builder/format/lib/theme";import{chromeWidthStyle as pt,resolveChromeWidth as gt}from"efficient-web-builder/format/lib/content/page-width";import{headerThemeWrap as bt}from"../lib/content/header-theme.js";import{headerSolidBackground as xt,isProductPage as vt}from"../lib/content/header-bar.js";import{surfaceIsLight as yt}from"../lib/logo/surface-is-light.js";import{HEADER_HEIGHT_PX as wt,HEADER_SET_HEIGHT_CSS as St}from"efficient-web-builder/render/lib/document/header-clearance";import{HEADER_INK_ATTR as kt,HEADER_INK_OVERRIDE_ATTR as Nt,resolveHeaderInkMode as Pt}from"efficient-web-builder/render/lib/document/header-ink";const le={stacked:{grid:"hidden min-[1501px]:grid",flex:"hidden min-[1501px]:flex"},inline:{grid:"hidden view-tablet:grid",flex:"hidden view-tablet:flex"}},Et=Array.from({length:ht},()=>({href:"#",label:r(ot,{})}));function It({previewSettings:g,initialSettings:T,editorPreview:L,showThemeToggle:se,wordmark:ce,hideLogo:ie,hideMenu:de,siteName:C,commerceEnabled:b=!0}={}){const z=Ye(),[me,ue]=p(!1);M(()=>{const e=v.current?.ownerDocument??document,n=()=>ue(e.querySelector(`[${kt}="light"]`)!=null);n();const f=requestAnimationFrame(n);return()=>cancelAnimationFrame(f)},[z]);const U=vt(z),[i,w]=p(!1),{open:he,totals:fe}=Xe(),{open:pe}=Qe(),[_,ge]=p(!1),[be,xe]=p(null),[ve,ye]=p(null),[t,we]=p(T??null),o=g??(t?{logoUrl:t.logoUrl,reverseLogo:t.reverseLogo,logoReversed:t.logoReversed,logoInkIsDark:t.logoInkIsDark,logoPosition:t.logoPosition,logoSize:t.logoSize,logoSizePx:t.logoSizePx,menuItems:(t.menuItems??[]).map(e=>({label:e.label,url:e.url,dropdown_menu:null,dropdown_items:e.dropdownItems??[]})),menuSplit:t.menuSplit??3,menuPosition:t.menuPosition,menuRow:t.menuRow,menuGapPx:t.menuGapPx??null,searchEnabled:t.searchEnabled,searchPosition:t.searchPosition,searchRow:t.searchRow,countrySelectorEnabled:t.countrySelectorEnabled,countrySelectorShowAs:t.countrySelectorShowAs,countryUrls:t.countryUrls,accountEnabled:t.accountEnabled,cartEnabled:t.cartEnabled,utilStyle:t.utilStyle,navTextCase:t.navTextCase,lightReverseText:t.lightReverseText,topTextColor:t.topTextColor,transparentTop:t.transparentTop,surface:t.surface,theme:t.theme,width:t.width,heightPx:t.heightPx,sticky:t.sticky,callButton:t.callButton,callPhone:t.callPhone,callHref:t.callHref}:null),Se=ie?null:o?.logoUrl??null,ke=o?.reverseLogo??!1,Ne=o?.logoReversed??null,Pe=o?.logoInkIsDark??null,c=o?.logoPosition??"center",Ee=o?.logoSize??"medium",Ie=o?.logoSizePx??null,F=Math.min(Math.max(o?.menuSplit??3,1),4),$e=(o?.menuPosition??"left")==="center",Te=(o?.menuPosition??"left")==="beside",G=(o?.menuRow??"top")==="inline",W=o?.menuGapPx??null,Le=W!=null?{gap:`${W}px`}:void 0,S=G?le.inline:le.stacked,Ce=o?.searchEnabled??!1,K=o?.searchPosition??"right",_e=o?.countrySelectorEnabled??!0,He=tt(o?.countrySelectorShowAs),H=o?.accountEnabled??!0,Ae=o?.cartEnabled??!0,A=(o?.utilStyle??"icon")==="text",l=`mono-eyebrow${(o?.navTextCase??"uppercase")==="capitalised"?" mono-eyebrow-plain":""}`,V=o?.countryUrls??{},De=gt(o?.width),Re=pt(De)??void 0,je=o?.heightPx??wt.default,q=o?.sticky??"always",k=Pt(o?.topTextColor),m=bt(o?.theme),N=Object.keys(V),Y=et(N.length?N:void 0),x=_e?r(Ze,{countries:N.length?N:void 0,urls:g?void 0:V,showAs:He}):null,{headerRef:v,scrolled:J,navHidden:Oe}=ct({stickyMode:q,heightPx:je}),Be=m?JSON.stringify(m.style):null;M(()=>{const e=v.current?.ownerDocument??document,n=e.defaultView??window,f=ne=>ne?yt(n.getComputedStyle(ne).getPropertyValue("--bg")):null,te=()=>{ge(e.documentElement.getAttribute("data-theme")==="light"),xe(f(e.body)),ye(f(v.current))};te();const B=new MutationObserver(te);return B.observe(e.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),e.body&&B.observe(e.body,{attributes:!0,attributeFilter:["style"]}),()=>B.disconnect()},[v,Be]);const y=se??ft?r(dt,{}):null;M(()=>{if(!ut({editorPreview:!!L,hasPreviewSettings:!!g,hasInitialSettings:!!T}))return;let e=!1;return mt.getHeaderSettings().then(n=>!e&&we(n)).catch(n=>{console.warn("[header] settings fetch failed; using built-in defaults",n)}),()=>{e=!0}},[L,g,T]);const P=J||U,X=xt(_,U),Q=k==="auto"?me:k==="light",Me=P||!Q,ze=P?ve??_:(be??_)&&!Q,Ue=k==="auto"?null:{[Nt]:k},Fe=Je(()=>w(!1),[]);it({active:i,onDismiss:Fe});const d=(e,n,f="start")=>r(re,{item:e,dropdownAlign:f},n),Ge=!de&&(o?.menuItems?.length??0)>0,E=!!L||!!g,s=Ge?o.menuItems.map(e=>({href:e.url||"",label:ae(e.label),plainLabel:e.label,dropdownItems:(e.dropdown_items??[]).map(n=>({href:n.url||"",label:ae(n.label),plainLabel:n.label}))})):E?Et.map(e=>({...e,plainLabel:"Menu item",dropdownItems:[]})):[],We=s.length>0||b&&H||!!x&&Y||!!y,Ke=c==="center"?s.slice(0,F):c==="right"?s:[],Ve=c==="center"?s.slice(F):c==="left"?s:[],I=Ce&&b?r(lt,{onClick:E?void 0:pe,asText:A}):null,D=b&&H?r(rt,{asText:A}):null,R=e=>b&&Ae?r(at,{onClick:he,count:fe.sets,asText:A,className:e}):null,qe=o?.callPhone??"",Z=o?.callHref??"",j=e=>o?.callButton&&(Z||E)?r(st,{href:E?"":Z,label:e?"Call":qe||"Call"}):null,u=a($,{children:[K==="left"?I:null,x,y,D,R(),K==="right"?I:null,j(!1)]}),O=(e,n=!1)=>r(oe,{href:"/","aria-label":C?`${C} home`:"Home",className:e,children:r(nt,{variant:"header",scrolled:Me,src:Se,reverse:ke,onLightSurface:ze,reversedSrc:Ne,inkIsDark:Pe,size:Ee,sizePx:Ie,wordmark:ce,siteName:C,fitToContainer:n})}),h=O("inline-flex shrink-0 items-center justify-center"),ee="flex min-w-0 flex-1 items-center overflow-x-clip [container-type:inline-size]";return a($,{children:[r("header",{ref:v,"data-scrolled":J||void 0,...Ue,className:["sf-site-header",...m?[m.className]:[],q==="none"?"absolute":"fixed","inset-x-0 top-0 z-50","flex items-center","px-[var(--sf-site-gutter,40px)] max-view-tablet:px-[min(20px,var(--sf-site-gutter,40px))]",P?"border-b border-line backdrop-blur-md":"border-b border-transparent","transition-[background,border-color,transform] duration-300 ease-out"].join(" "),style:{...m?m.style:null,minHeight:St,...Oe?{transform:"translateY(-100%)"}:null,...P?{background:X,color:"var(--fg)","--sf-header-ground":X}:{color:"var(--sf-header-overlay-fg)","--sf-header-ground":"var(--sf-header-overlay-ground)"}},children:a("div",{className:"w-full",style:Re,children:[$e?a("div",{"data-header-band":"",className:`${S.grid} grid-cols-[1fr_auto_1fr] items-center gap-8`,children:[c==="right"?r("nav",{className:`${l} flex items-center gap-8`,children:u}):r("div",{className:"flex items-center",children:h}),r("nav",{className:`${l} flex items-center justify-center gap-8`,children:s.map((e,n)=>d(e,`${e.href}-${n}`,"center"))}),c==="right"?r("div",{className:"flex items-center justify-end",children:h}):r("nav",{className:`${l} flex items-center justify-end gap-8`,children:u})]}):c==="center"?a("div",{"data-header-band":"",className:`${S.grid} grid-cols-[1fr_auto_1fr] items-center gap-8`,children:[r("nav",{className:`${l} flex items-center gap-8`,children:Ke.map((e,n)=>d(e,`${e.href}-${n}`))}),h,a("nav",{className:`${l} flex items-center justify-end gap-8`,children:[Ve.map((e,n)=>d(e,`${e.href}-${n}`,"end")),u]})]}):Te?a("div",{"data-header-band":"",className:`${S.flex} items-center justify-between gap-8`,children:[a("div",{className:"flex items-center gap-8",style:Le,children:[h,r("nav",{className:`${l} flex items-center gap-8`,children:s.map((e,n)=>d(e,`${e.href}-${n}`))})]}),r("nav",{className:`${l} flex items-center justify-end gap-8`,children:u})]}):r("div",{"data-header-band":"",className:`${S.flex} items-center justify-between gap-8`,children:c==="right"?a($,{children:[a("nav",{className:`${l} flex items-center gap-8`,children:[s.map((e,n)=>d(e,`${e.href}-${n}`)),u]}),h]}):a($,{children:[h,a("nav",{className:`${l} flex items-center gap-8`,children:[s.map((e,n)=>d(e,`${e.href}-${n}`)),u]})]})}),!G&&a("div",{"data-header-band":"",className:"hidden view-tablet:max-[1501px]:flex flex-col gap-3",children:[a("div",{className:"flex items-center justify-between",children:[O(ee,!0),a("div",{className:`${l} flex shrink-0 items-center gap-5`,children:[I,x,y,D,R(),j(!1)]})]}),r("nav",{className:`${l} flex items-center gap-6 border-t border-line/60 pt-3`,children:s.map((e,n)=>d(e,`${e.href}-${n}`))})]}),a("div",{"data-header-phone":"",className:"hidden max-view-tablet:flex items-center justify-between",children:[O(ee,!0),a("div",{className:"flex shrink-0 items-center gap-4",children:[I,D,R(l),j(!0),We&&a("button",{type:"button","aria-label":i?"Close menu":"Open menu","aria-expanded":i,onClick:()=>w(e=>!e),className:"flex h-11 w-11 flex-col items-center justify-center gap-2",children:[r("span",{className:`block h-px w-5 bg-current transition-transform ${i?"translate-y-[3px] rotate-45":""}`}),r("span",{className:`block h-px w-5 bg-current transition-transform ${i?"opacity-0":""}`}),r("span",{className:`block h-px w-5 bg-current transition-transform ${i?"-translate-y-[3px] -rotate-45":""}`})]})]})]})]})}),i&&a("div",{"data-header-phone-menu":"",className:"fixed inset-x-0 top-0 bottom-0 z-40 hidden flex-col gap-8 overflow-y-auto bg-bg px-6 pt-24 pb-10 max-view-tablet:flex",children:[s.map((e,n)=>r(re,{item:e,mobile:!0,onNavigate:()=>w(!1)},`${e.href}-${n}`)),a("div",{className:"mt-auto flex flex-col gap-4 border-t border-line pt-6",children:[b&&H&&a("div",{className:"flex items-center justify-between",children:[r("span",{className:"mono-eyebrow text-fg-dim",children:"Account"}),r(oe,{href:"/account",onClick:()=>w(!1),className:"mono-eyebrow underline",children:"Your account"})]}),x&&Y&&a("div",{className:"flex items-center justify-between",children:[r("span",{className:"mono-eyebrow text-fg-dim",children:"Region"}),x]}),y&&a("div",{className:"flex items-center justify-between",children:[r("span",{className:"mono-eyebrow text-fg-dim",children:"Theme"}),y]})]})]})]})}export{It as default};
1
+ "use client";import{jsx as r,Fragment as T,jsxs as a}from"react/jsx-runtime";import oe from"next/link";import{usePathname as Je}from"next/navigation";import{useCallback as Xe,useEffect as M,useState as p}from"react";import{rootIsDark as Qe,watchRootTheme as Ze}from"efficient-shell/format";import{useCart as et}from"./CartContext.js";import{useSearch as tt}from"./SearchContext.js";import nt,{useCountrySelectShows as ot}from"./CountrySelect.js";import{resolveCountryShowAs as rt}from"../lib/content/country-show-as.js";import re from"./HeaderNavItem.js";import at from"efficient-web-builder/render/components/Logo";import st from"./MenuPlaceholderLabel.js";import{withRMark as ae}from"efficient-web-builder/render/components/RMark";import{AccountButton as lt,CartButton as ct,SearchButton as it}from"./HeaderTools.js";import dt from"./HeaderCallButton.js";import{useHeaderBar as mt}from"./useHeaderBar.js";import{useModalDismiss as ut}from"./useModalDismiss.js";import ht from"./ThemeToggle.js";import{products as ft}from"../lib/api/index.js";import{shouldFetchPublicHeaderSettings as pt}from"../lib/header-settings-fetch.js";import{HEADER_MENU_PLACEHOLDER_COUNT as gt}from"../lib/content/menu-placeholder.js";import{DEFAULT_SWITCH_SHOWN as bt}from"efficient-web-builder/format/lib/theme";import{chromeWidthStyle as xt,resolveChromeWidth as yt}from"efficient-web-builder/format/lib/content/page-width";import{headerThemeWrap as vt}from"../lib/content/header-theme.js";import{headerSolidBackground as wt,isProductPage as kt}from"../lib/content/header-bar.js";import{surfaceIsLight as St}from"../lib/logo/surface-is-light.js";import{HEADER_HEIGHT_PX as Nt,HEADER_SET_HEIGHT_CSS as Pt}from"efficient-web-builder/render/lib/document/header-clearance";import{HEADER_INK_ATTR as It,HEADER_INK_OVERRIDE_ATTR as Et,resolveHeaderInkMode as Tt}from"efficient-web-builder/render/lib/document/header-ink";const se={stacked:{grid:"hidden min-[1501px]:grid",flex:"hidden min-[1501px]:flex"},inline:{grid:"hidden view-tablet:grid",flex:"hidden view-tablet:flex"}},$t=Array.from({length:gt},()=>({href:"#",label:r(st,{})}));function Lt({previewSettings:g,initialSettings:$,editorPreview:L,showThemeToggle:le,wordmark:ce,hideLogo:ie,hideMenu:de,siteName:C,commerceEnabled:b=!0}={}){const z=Je(),[me,ue]=p(!1);M(()=>{const e=y.current?.ownerDocument??document,n=()=>ue(e.querySelector(`[${It}="light"]`)!=null);n();const f=requestAnimationFrame(n);return()=>cancelAnimationFrame(f)},[z]);const U=kt(z),[i,w]=p(!1),{open:he,totals:fe}=et(),{open:pe}=tt(),[_,ge]=p(!1),[be,xe]=p(null),[ye,ve]=p(null),[t,we]=p($??null),o=g??(t?{logoUrl:t.logoUrl,reverseLogo:t.reverseLogo,logoReversed:t.logoReversed,logoInkIsDark:t.logoInkIsDark,logoPosition:t.logoPosition,logoSize:t.logoSize,logoSizePx:t.logoSizePx,menuItems:(t.menuItems??[]).map(e=>({label:e.label,url:e.url,dropdown_menu:null,dropdown_items:e.dropdownItems??[]})),menuSplit:t.menuSplit??3,menuPosition:t.menuPosition,menuRow:t.menuRow,menuGapPx:t.menuGapPx??null,searchEnabled:t.searchEnabled,searchPosition:t.searchPosition,searchRow:t.searchRow,countrySelectorEnabled:t.countrySelectorEnabled,countrySelectorShowAs:t.countrySelectorShowAs,countryUrls:t.countryUrls,accountEnabled:t.accountEnabled,cartEnabled:t.cartEnabled,utilStyle:t.utilStyle,navTextCase:t.navTextCase,lightReverseText:t.lightReverseText,topTextColor:t.topTextColor,transparentTop:t.transparentTop,surface:t.surface,theme:t.theme,width:t.width,heightPx:t.heightPx,sticky:t.sticky,callButton:t.callButton,callPhone:t.callPhone,callHref:t.callHref}:null),ke=ie?null:o?.logoUrl??null,Se=o?.reverseLogo??!1,Ne=o?.logoReversed??null,Pe=o?.logoInkIsDark??null,c=o?.logoPosition??"center",Ie=o?.logoSize??"medium",Ee=o?.logoSizePx??null,F=Math.min(Math.max(o?.menuSplit??3,1),4),Te=(o?.menuPosition??"left")==="center",$e=(o?.menuPosition??"left")==="beside",G=(o?.menuRow??"top")==="inline",W=o?.menuGapPx??null,Le=W!=null?{gap:`${W}px`}:void 0,k=G?se.inline:se.stacked,Ce=o?.searchEnabled??!1,K=o?.searchPosition??"right",_e=o?.countrySelectorEnabled??!0,He=rt(o?.countrySelectorShowAs),H=o?.accountEnabled??!0,De=o?.cartEnabled??!0,D=(o?.utilStyle??"icon")==="text",s=`mono-eyebrow${(o?.navTextCase??"uppercase")==="capitalised"?" mono-eyebrow-plain":""}`,V=o?.countryUrls??{},Re=yt(o?.width),Ae=xt(Re)??void 0,je=o?.heightPx??Nt.default,q=o?.sticky??"always",S=Tt(o?.topTextColor),m=vt(o?.theme),N=Object.keys(V),Y=ot(N.length?N:void 0),x=_e?r(nt,{countries:N.length?N:void 0,urls:g?void 0:V,showAs:He}):null,{headerRef:y,scrolled:J,navHidden:Oe}=mt({stickyMode:q,heightPx:je}),Be=m?JSON.stringify(m.style):null;M(()=>{const e=y.current?.ownerDocument??document,n=e.defaultView??window,f=ne=>ne?St(n.getComputedStyle(ne).getPropertyValue("--bg")):null,B=()=>{ge(!Qe({doc:e,whenUnset:!0})),xe(f(e.body)),ve(f(y.current))};B();const Ye=Ze(B,{doc:e}),te=new MutationObserver(B);return e.body&&te.observe(e.body,{attributes:!0,attributeFilter:["style"]}),()=>{Ye(),te.disconnect()}},[y,Be]);const v=le??bt?r(ht,{}):null;M(()=>{if(!pt({editorPreview:!!L,hasPreviewSettings:!!g,hasInitialSettings:!!$}))return;let e=!1;return ft.getHeaderSettings().then(n=>!e&&we(n)).catch(n=>{console.warn("[header] settings fetch failed; using built-in defaults",n)}),()=>{e=!0}},[L,g,$]);const P=J||U,X=wt(_,U),Q=S==="auto"?me:S==="light",Me=P||!Q,ze=P?ye??_:(be??_)&&!Q,Ue=S==="auto"?null:{[Et]:S},Fe=Xe(()=>w(!1),[]);ut({active:i,onDismiss:Fe});const d=(e,n,f="start")=>r(re,{item:e,dropdownAlign:f},n),Ge=!de&&(o?.menuItems?.length??0)>0,I=!!L||!!g,l=Ge?o.menuItems.map(e=>({href:e.url||"",label:ae(e.label),plainLabel:e.label,dropdownItems:(e.dropdown_items??[]).map(n=>({href:n.url||"",label:ae(n.label),plainLabel:n.label}))})):I?$t.map(e=>({...e,plainLabel:"Menu item",dropdownItems:[]})):[],We=l.length>0||b&&H||!!x&&Y||!!v,Ke=c==="center"?l.slice(0,F):c==="right"?l:[],Ve=c==="center"?l.slice(F):c==="left"?l:[],E=Ce&&b?r(it,{onClick:I?void 0:pe,asText:D}):null,R=b&&H?r(lt,{asText:D}):null,A=e=>b&&De?r(ct,{onClick:he,count:fe.sets,asText:D,className:e}):null,qe=o?.callPhone??"",Z=o?.callHref??"",j=e=>o?.callButton&&(Z||I)?r(dt,{href:I?"":Z,label:e?"Call":qe||"Call"}):null,u=a(T,{children:[K==="left"?E:null,x,v,R,A(),K==="right"?E:null,j(!1)]}),O=(e,n=!1)=>r(oe,{href:"/","aria-label":C?`${C} home`:"Home",className:e,children:r(at,{variant:"header",scrolled:Me,src:ke,reverse:Se,onLightSurface:ze,reversedSrc:Ne,inkIsDark:Pe,size:Ie,sizePx:Ee,wordmark:ce,siteName:C,fitToContainer:n})}),h=O("inline-flex shrink-0 items-center justify-center"),ee="flex min-w-0 flex-1 items-center overflow-x-clip [container-type:inline-size]";return a(T,{children:[r("header",{ref:y,"data-scrolled":J||void 0,...Ue,className:["sf-site-header",...m?[m.className]:[],q==="none"?"absolute":"fixed","inset-x-0 top-0 z-50","flex items-center","px-[var(--sf-site-gutter,40px)] max-view-tablet:px-[min(20px,var(--sf-site-gutter,40px))]",P?"border-b border-line backdrop-blur-md":"border-b border-transparent","transition-[background,border-color,transform] duration-300 ease-out"].join(" "),style:{...m?m.style:null,minHeight:Pt,...Oe?{transform:"translateY(-100%)"}:null,...P?{background:X,color:"var(--fg)","--sf-header-ground":X}:{color:"var(--sf-header-overlay-fg)","--sf-header-ground":"var(--sf-header-overlay-ground)"}},children:a("div",{className:"w-full",style:Ae,children:[Te?a("div",{"data-header-band":"",className:`${k.grid} grid-cols-[1fr_auto_1fr] items-center gap-8`,children:[c==="right"?r("nav",{className:`${s} flex items-center gap-8`,children:u}):r("div",{className:"flex items-center",children:h}),r("nav",{className:`${s} flex items-center justify-center gap-8`,children:l.map((e,n)=>d(e,`${e.href}-${n}`,"center"))}),c==="right"?r("div",{className:"flex items-center justify-end",children:h}):r("nav",{className:`${s} flex items-center justify-end gap-8`,children:u})]}):c==="center"?a("div",{"data-header-band":"",className:`${k.grid} grid-cols-[1fr_auto_1fr] items-center gap-8`,children:[r("nav",{className:`${s} flex items-center gap-8`,children:Ke.map((e,n)=>d(e,`${e.href}-${n}`))}),h,a("nav",{className:`${s} flex items-center justify-end gap-8`,children:[Ve.map((e,n)=>d(e,`${e.href}-${n}`,"end")),u]})]}):$e?a("div",{"data-header-band":"",className:`${k.flex} items-center justify-between gap-8`,children:[a("div",{className:"flex items-center gap-8",style:Le,children:[h,r("nav",{className:`${s} flex items-center gap-8`,children:l.map((e,n)=>d(e,`${e.href}-${n}`))})]}),r("nav",{className:`${s} flex items-center justify-end gap-8`,children:u})]}):r("div",{"data-header-band":"",className:`${k.flex} items-center justify-between gap-8`,children:c==="right"?a(T,{children:[a("nav",{className:`${s} flex items-center gap-8`,children:[l.map((e,n)=>d(e,`${e.href}-${n}`)),u]}),h]}):a(T,{children:[h,a("nav",{className:`${s} flex items-center gap-8`,children:[l.map((e,n)=>d(e,`${e.href}-${n}`)),u]})]})}),!G&&a("div",{"data-header-band":"",className:"hidden view-tablet:max-[1501px]:flex flex-col gap-3",children:[a("div",{className:"flex items-center justify-between",children:[O(ee,!0),a("div",{className:`${s} flex shrink-0 items-center gap-5`,children:[E,x,v,R,A(),j(!1)]})]}),r("nav",{className:`${s} flex items-center gap-6 border-t border-line/60 pt-3`,children:l.map((e,n)=>d(e,`${e.href}-${n}`))})]}),a("div",{"data-header-phone":"",className:"hidden max-view-tablet:flex items-center justify-between",children:[O(ee,!0),a("div",{className:"flex shrink-0 items-center gap-4",children:[E,R,A(s),j(!0),We&&a("button",{type:"button","aria-label":i?"Close menu":"Open menu","aria-expanded":i,onClick:()=>w(e=>!e),className:"flex h-11 w-11 flex-col items-center justify-center gap-2",children:[r("span",{className:`block h-px w-5 bg-current transition-transform ${i?"translate-y-[3px] rotate-45":""}`}),r("span",{className:`block h-px w-5 bg-current transition-transform ${i?"opacity-0":""}`}),r("span",{className:`block h-px w-5 bg-current transition-transform ${i?"-translate-y-[3px] -rotate-45":""}`})]})]})]})]})}),i&&a("div",{"data-header-phone-menu":"",className:"fixed inset-x-0 top-0 bottom-0 z-40 hidden flex-col gap-8 overflow-y-auto bg-bg px-6 pt-24 pb-10 max-view-tablet:flex",children:[l.map((e,n)=>r(re,{item:e,mobile:!0,onNavigate:()=>w(!1)},`${e.href}-${n}`)),a("div",{className:"mt-auto flex flex-col gap-4 border-t border-line pt-6",children:[b&&H&&a("div",{className:"flex items-center justify-between",children:[r("span",{className:"mono-eyebrow text-fg-dim",children:"Account"}),r(oe,{href:"/account",onClick:()=>w(!1),className:"mono-eyebrow underline",children:"Your account"})]}),x&&Y&&a("div",{className:"flex items-center justify-between",children:[r("span",{className:"mono-eyebrow text-fg-dim",children:"Region"}),x]}),v&&a("div",{className:"flex items-center justify-between",children:[r("span",{className:"mono-eyebrow text-fg-dim",children:"Theme"}),v]})]})]})]})}export{Lt as default};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as a}from"react/jsx-runtime";import d from"next/link";import{useEffect as h,useRef as l}from"react";import{CART_GLYPH as p}from"efficient-web-builder/render/components/cartGlyph";import m from"efficient-easel/screen/components/UiIcon";const i={search:"Search",account:"Account",cart:"Bag"},o="whitespace-nowrap";function f(t){return t>99?"99+":String(t)}function x({count:t,ref:e}){return r("span",{ref:e,"data-cart-badge":"","aria-hidden":"true",className:"pointer-events-none absolute -top-[7px] -right-[9px] inline-flex h-4 min-w-4 items-center justify-center rounded-full bg-current px-1 text-[10px] leading-none font-semibold tabular-nums",style:{letterSpacing:0},children:r("span",{style:{color:"var(--sf-header-ground, var(--bg))"},children:f(t)})})}function v({onClick:t,count:e,asText:n,className:u}){const c=l(null),s=l(e);return h(()=>{s.current!==e&&(s.current=e,!window.matchMedia("(prefers-reduced-motion: reduce)").matches&&c.current?.animate([{transform:"scale(0.6)"},{transform:"scale(1)"}],{duration:180,easing:"ease-out"}))},[e]),r("button",{type:"button",onClick:t,"aria-label":`Open cart, ${e} item${e===1?"":"s"}`,className:`mono-eyebrow-ctl inline-flex items-center gap-2 opacity-80 transition-opacity hover:opacity-100 ${u??""}`,children:n?a("span",{className:o,children:[i.cart,e>0?` ${e}`:""]}):a("span",{className:"relative inline-flex",children:[r("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:p}),e>0?r(x,{count:e,ref:c}):null]})})}function L({asText:t,className:e}){return r(d,{href:"/account","aria-label":"Account",className:`mono-eyebrow-ctl inline-flex items-center opacity-80 transition-opacity hover:opacity-100 ${e??""}`,children:t?r("span",{className:o,children:i.account}):a("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r("circle",{cx:"12",cy:"8",r:"3.4"}),r("path",{d:"M5 20a7 7 0 0 1 14 0"})]})})}function S({onClick:t,asText:e,className:n}){return r("button",{type:"button",onClick:t,"aria-label":"Search",title:"Search (⌘K)",className:`mono-eyebrow-ctl inline-flex items-center opacity-80 transition-opacity hover:opacity-100 ${n??""}`,children:e?r("span",{className:o,children:i.search}):r(m,{name:"search",size:18,strokeWidth:1.6,rounded:!0})})}export{L as AccountButton,v as CartButton,S as SearchButton,i as UTIL_WORDS,o as UTIL_WORD_CLASS};
1
+ "use client";import{jsx as r,jsxs as i}from"react/jsx-runtime";import d from"next/link";import{useEffect as p,useRef as l}from"react";import{CART_GLYPH as h}from"efficient-web-builder/render/components/cartGlyph";import m from"efficient-easel/screen/components/UiIcon";import{prefersReducedMotion as f}from"efficient-web-builder/render/components/useReducedMotion";const a={search:"Search",account:"Account",cart:"Bag"},o="whitespace-nowrap";function x(t){return t>99?"99+":String(t)}function b({count:t,ref:e}){return r("span",{ref:e,"data-cart-badge":"","aria-hidden":"true",className:"pointer-events-none absolute -top-[7px] -right-[9px] inline-flex h-4 min-w-4 items-center justify-center rounded-full bg-current px-1 text-[10px] leading-none font-semibold tabular-nums",style:{letterSpacing:0},children:r("span",{style:{color:"var(--sf-header-ground, var(--bg))"},children:x(t)})})}function S({onClick:t,count:e,asText:n,className:u}){const c=l(null),s=l(e);return p(()=>{s.current!==e&&(s.current=e,!f()&&c.current?.animate([{transform:"scale(0.6)"},{transform:"scale(1)"}],{duration:180,easing:"ease-out"}))},[e]),r("button",{type:"button",onClick:t,"aria-label":`Open cart, ${e} item${e===1?"":"s"}`,className:`mono-eyebrow-ctl inline-flex items-center gap-2 opacity-80 transition-opacity hover:opacity-100 ${u??""}`,children:n?i("span",{className:o,children:[a.cart,e>0?` ${e}`:""]}):i("span",{className:"relative inline-flex",children:[r("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:h}),e>0?r(b,{count:e,ref:c}):null]})})}function C({asText:t,className:e}){return r(d,{href:"/account","aria-label":"Account",className:`mono-eyebrow-ctl inline-flex items-center opacity-80 transition-opacity hover:opacity-100 ${e??""}`,children:t?r("span",{className:o,children:a.account}):i("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r("circle",{cx:"12",cy:"8",r:"3.4"}),r("path",{d:"M5 20a7 7 0 0 1 14 0"})]})})}function N({onClick:t,asText:e,className:n}){return r("button",{type:"button",onClick:t,"aria-label":"Search",title:"Search (⌘K)",className:`mono-eyebrow-ctl inline-flex items-center opacity-80 transition-opacity hover:opacity-100 ${n??""}`,children:e?r("span",{className:o,children:a.search}):r(m,{name:"search",size:18,strokeWidth:1.6,rounded:!0})})}export{C as AccountButton,S as CartButton,N as SearchButton,a as UTIL_WORDS,o as UTIL_WORD_CLASS};
@@ -7,10 +7,10 @@ export interface LightboxProps {
7
7
  onPrev?: () => void;
8
8
  onNext?: () => void;
9
9
  className?: string;
10
- style?: CSSProperties;
11
10
  children: ReactNode;
12
11
  }
13
- export default function Lightbox({ open, onClose, label, onPrev, onNext, className, style, children }: LightboxProps): import("react").JSX.Element | null;
12
+ export default function Lightbox({ open, onClose, label, onPrev, onNext, className, children }: LightboxProps): import("react").JSX.Element | null;
13
+ export declare const LIGHTBOX_CLOSE_TINT = "color-mix(in oklab, var(--bg) 70%, transparent)";
14
14
  export declare function LightboxClose({ className, style, label, children, }: {
15
15
  className?: string;
16
16
  style?: CSSProperties;
@@ -1 +1 @@
1
- "use client";import{jsx as y,Fragment as N,jsxs as O}from"react/jsx-runtime";import{createContext as j,useContext as R,useEffect as K,useLayoutEffect as P,useRef as x,useState as H}from"react";import{createPortal as I}from"react-dom";const F=".sf-themed-content",S="sf-section-accent";function V(o,r){const s={};let c=!1;const l=[];for(let e=o;e&&e!==r;e=e.parentElement)l.push(e);for(const e of l.reverse()){e.classList.contains(S)&&(c=!0);const a=e.style;if(a)for(let h=0;h<a.length;h+=1){const f=a.item(h);f.startsWith("--")&&(s[f]=a.getPropertyValue(f))}}return{className:c?`contents ${S}`:"contents",style:s}}function $(o){const r=o.querySelectorAll("a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex='-1'])");return Array.from(r).filter(s=>!s.hasAttribute("hidden")&&s.getAttribute("aria-hidden")!=="true")}const _=j(()=>{});function q({open:o,onClose:r,label:s,onPrev:c,onNext:l,className:e="",style:a,children:h}){const f=x(null),p=x(null),[m,g]=H(null);P(()=>{if(!o){g(null);return}const t=f.current;if(!t)return;const i=t.closest(F)??t.ownerDocument.body;g({host:i,theme:V(t,i)})},[o]);const b=x({onClose:r,onPrev:c,onNext:l});b.current={onClose:r,onPrev:c,onNext:l};const w=o&&m!==null;return K(()=>{if(!w)return;const t=p.current,i=t?.ownerDocument??document,v=i.activeElement;t?.focus();const E=n=>{if(n.key==="Escape")b.current.onClose();else if(n.key==="ArrowLeft")b.current.onPrev?.();else if(n.key==="ArrowRight")b.current.onNext?.();else if(n.key==="Tab"&&t){const u=$(t);if(u.length===0){n.preventDefault(),t.focus();return}const C=u[0],L=u[u.length-1],d=i.activeElement,T=!!d&&t.contains(d)&&d!==t;if(n.shiftKey&&(!T||d===C))n.preventDefault(),L.focus();else if(!n.shiftKey&&(!T||d===L))n.preventDefault(),C.focus();else{n.preventDefault();const A=u.indexOf(d);u[n.shiftKey?A-1:A+1]?.focus()}}},k=i.defaultView??window;k.addEventListener("keydown",E);const D=i.body.style.overflow;return i.body.style.overflow="hidden",()=>{k.removeEventListener("keydown",E),i.body.style.overflow=D,v&&v.isConnected&&v.focus()}},[w]),o?O(N,{children:[y("span",{ref:f,hidden:!0}),m&&I(y("div",{className:m.theme.className,style:m.theme.style,children:y("div",{ref:p,role:"dialog","aria-modal":"true","aria-label":s,tabIndex:-1,onClick:r,className:`fixed inset-0 z-(--sf-layer-lightbox) outline-none ${e}`,style:a,children:y(_.Provider,{value:r,children:h})})}),m.host)]}):null}function M({className:o="absolute right-5 top-5 flex h-10 w-10 cursor-pointer items-center justify-center border border-fg-dim/40 text-fg-dim transition-colors hover:border-accent hover:text-accent",style:r,label:s="Close",children:c="×"}){const l=R(_);return y("button",{type:"button","aria-label":s,onClick:e=>{e.stopPropagation(),l()},className:o,style:r,children:c})}export{F as LIGHTBOX_HOST_SELECTOR,M as LightboxClose,q as default};
1
+ "use client";import{jsx as b,Fragment as I,jsxs as N}from"react/jsx-runtime";import{createContext as A,useCallback as O,useContext as R,useEffect as j,useLayoutEffect as H,useRef as g,useState as K}from"react";import{createPortal as P}from"react-dom";import{SITE_BLUR as B,SITE_TINT as $}from"./PopupFrame.js";import{useModalDismiss as F}from"./useModalDismiss.js";const G=".sf-themed-content",_="sf-section-accent";function M(n,o){const s={};let i=!1;const c=[];for(let e=n;e&&e!==o;e=e.parentElement)c.push(e);for(const e of c.reverse()){e.classList.contains(_)&&(i=!0);const l=e.style;if(l)for(let u=0;u<l.length;u+=1){const a=l.item(u);a.startsWith("--")&&(s[a]=l.getPropertyValue(a))}}return{className:i?`contents ${_}`:"contents",style:s}}function V(n){const o=n.querySelectorAll("a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex='-1'])");return Array.from(o).filter(s=>!s.hasAttribute("hidden")&&s.getAttribute("aria-hidden")!=="true")}const S=A(()=>{});function X({open:n,onClose:o,label:s,onPrev:i,onNext:c,className:e="",children:l}){const u=g(null),a=g(null),[h,v]=K(null);H(()=>{if(!n){v(null);return}const t=u.current;if(!t)return;const f=t.closest(G)??t.ownerDocument.body;v({host:f,theme:M(t,f)})},[n]);const p=g({onClose:o,onPrev:i,onNext:c});p.current={onClose:o,onPrev:i,onNext:c};const x=n&&h!==null,D=O(()=>p.current.onClose(),[]);return F({active:x,onDismiss:D,scopeRef:a}),j(()=>{if(!x)return;const t=a.current,f=t?.ownerDocument??document,y=f.activeElement;t?.focus();const E=r=>{if(r.key==="ArrowLeft")p.current.onPrev?.();else if(r.key==="ArrowRight")p.current.onNext?.();else if(r.key==="Tab"&&t){const d=V(t);if(d.length===0){r.preventDefault(),t.focus();return}const L=d[0],k=d[d.length-1],m=f.activeElement,w=!!m&&t.contains(m)&&m!==t;if(r.shiftKey&&(!w||m===L))r.preventDefault(),k.focus();else if(!r.shiftKey&&(!w||m===k))r.preventDefault(),L.focus();else{r.preventDefault();const C=d.indexOf(m);d[r.shiftKey?C-1:C+1]?.focus()}}},T=f.defaultView??window;return T.addEventListener("keydown",E),()=>{T.removeEventListener("keydown",E),y&&y.isConnected&&y.focus()}},[x]),n?N(I,{children:[b("span",{ref:u,hidden:!0}),h&&P(b("div",{className:h.theme.className,style:h.theme.style,children:b("div",{ref:a,role:"dialog","aria-modal":"true","aria-label":s,tabIndex:-1,onClick:o,className:`fixed inset-0 z-(--sf-layer-lightbox) outline-none ${B[8]} ${e}`,style:{background:$},children:b(S.Provider,{value:o,children:l})})}),h.host)]}):null}const Q="color-mix(in oklab, var(--bg) 70%, transparent)";function Y({className:n="absolute right-5 top-5 flex h-10 w-10 cursor-pointer items-center justify-center border border-fg-dim/40 text-fg-dim transition-colors hover:border-accent hover:text-accent",style:o,label:s="Close",children:i="×"}){const c=R(S);return b("button",{type:"button","aria-label":s,onClick:e=>{e.stopPropagation(),c()},className:n,style:o,children:i})}export{Q as LIGHTBOX_CLOSE_TINT,G as LIGHTBOX_HOST_SELECTOR,Y as LightboxClose,X as default};
@@ -1,3 +1,4 @@
1
+ import { type ReactNode } from "react";
1
2
  import type { HeroPricePlacement } from "../lib/sections/hero-price-placement.js";
2
3
  import type { HeroLayout, HeroTextAlign } from "../lib/sections/hero-arrangement.js";
3
4
  import type { HeroGalleryMode, HeroImageFit } from "../lib/sections/hero-gallery.js";
@@ -17,6 +18,7 @@ interface HeroArrangement {
17
18
  showPriceQuote?: boolean;
18
19
  galleryMode?: HeroGalleryMode;
19
20
  imageFit?: HeroImageFit;
21
+ trustBullets?: ReactNode;
20
22
  }
21
23
  export default function LinkedProductHero({ slug, kind, editing, pricePlacement, showVehicleFitment, ...arrangement }: {
22
24
  slug: string;
@@ -0,0 +1,6 @@
1
+ import type { AriaRole, ReactNode } from "react";
2
+ export declare function Notice({ tone, role, children, }: {
3
+ tone?: "good" | "bad" | "quiet";
4
+ role?: AriaRole;
5
+ children: ReactNode;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as d}from"react/jsx-runtime";function t({tone:e="bad",role:r,children:o}){return d("div",{role:r,className:["border bg-surface px-4 py-3 text-[14px] leading-relaxed text-fg",e==="good"?"border-accent":e==="bad"?"border-alert":"border-line"].join(" "),children:o})}export{t as Notice};