efficient-storefront-blocks 0.70.0 → 0.74.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 (126) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/chunks/EditorPreviewCheckout-YQ3F5MSG.js +4 -0
  3. package/dist/chunks/{SiteEditorProvider-3GKJZDL5.js → SiteEditorProvider-Z33JB5BA.js} +1 -1
  4. package/dist/chunks/chunk-5OFEWRWI.js +1 -0
  5. package/dist/chunks/{chunk-TXTTPEQA.js → chunk-BZDVZUF4.js} +1 -1
  6. package/dist/chunks/{chunk-QWHNN7GF.js → chunk-QJDTP7K6.js} +1 -1
  7. package/dist/chunks/chunk-UGXNUQRA.js +246 -0
  8. package/dist/chunks/chunk-UJW4B64R.js +1 -0
  9. package/dist/chunks/{fitment-data-6GK7QQQI.js → fitment-data-DHKRLKNI.js} +1 -1
  10. package/dist/contract.js +2 -2
  11. package/dist/editor/components/CategorySource.js +1 -1
  12. package/dist/editor/components/HeaderSettingsPanel.js +1 -1
  13. package/dist/editor/components/PreviewHeader.d.ts +0 -1
  14. package/dist/editor/components/PreviewHeader.js +1 -11
  15. package/dist/editor/lib/document/blocks/service/ContactCards/fields.d.ts +2 -0
  16. package/dist/editor/lib/document/blocks/service/ContactCards/fields.js +1 -0
  17. package/dist/editor/lib/document/blocks/service/ContactRouting/fields.js +1 -1
  18. package/dist/editor/lib/document/blocks/service/FooterMessaging/fields.d.ts +2 -0
  19. package/dist/editor/lib/document/blocks/service/FooterMessaging/fields.js +1 -0
  20. package/dist/editor/lib/document/blocks/service/FooterPayment/fields.d.ts +2 -0
  21. package/dist/editor/lib/document/blocks/service/FooterPayment/fields.js +1 -0
  22. package/dist/editor/lib/document/blocks/service/MessagingCards/fields.d.ts +2 -0
  23. package/dist/editor/lib/document/blocks/service/MessagingCards/fields.js +1 -0
  24. package/dist/editor/lib/document/blocks/service/Reviews/fields.js +1 -1
  25. package/dist/editor/lib/document/blocks/service/index.d.ts +1 -1
  26. package/dist/editor/lib/document/blocks/service/index.js +1 -1
  27. package/dist/editor/lib/document/config.d.ts +2 -0
  28. package/dist/editor/lib/document/config.js +1 -1
  29. package/dist/editor/lib/efficient-block-sources.js +1 -1
  30. package/dist/editor/lib/header-settings-source.d.ts +2 -1
  31. package/dist/editor/lib/header-settings-source.js +1 -1
  32. package/dist/editor/lib/storefront-editor-words.d.ts +17 -2
  33. package/dist/editor/lib/storefront-editor-words.js +1 -1
  34. package/dist/editor.css +1 -1
  35. package/dist/index.d.ts +0 -2
  36. package/dist/index.js +97 -200
  37. package/dist/links.d.ts +0 -2
  38. package/dist/links.js +1 -1
  39. package/dist/render/built-with.json +1 -1
  40. package/dist/render/components/ChatLauncher.js +1 -1
  41. package/dist/render/components/ContactCards.d.ts +13 -0
  42. package/dist/render/components/ContactCards.js +1 -0
  43. package/dist/render/components/CopyText.d.ts +4 -0
  44. package/dist/render/components/CopyText.js +1 -0
  45. package/dist/render/components/Events.d.ts +3 -0
  46. package/dist/render/components/Events.js +1 -1
  47. package/dist/render/components/FooterMessaging.d.ts +5 -0
  48. package/dist/render/components/FooterMessaging.js +1 -0
  49. package/dist/render/components/FooterPayment.d.ts +11 -0
  50. package/dist/render/components/FooterPayment.js +1 -0
  51. package/dist/render/components/GalleryItem.js +1 -1
  52. package/dist/render/components/GalleryShowcase.js +1 -1
  53. package/dist/render/components/Header.d.ts +2 -1
  54. package/dist/render/components/Header.js +1 -1
  55. package/dist/render/components/HeaderCallButton.d.ts +9 -0
  56. package/dist/render/components/HeaderCallButton.js +1 -0
  57. package/dist/render/components/MessagingCards.d.ts +9 -0
  58. package/dist/render/components/MessagingCards.js +1 -0
  59. package/dist/render/components/QrCode.d.ts +5 -0
  60. package/dist/render/components/QrCode.js +1 -0
  61. package/dist/render/components/Reviews.d.ts +14 -4
  62. package/dist/render/components/Reviews.js +1 -1
  63. package/dist/render/components/checkout/CheckoutPageClient.d.ts +2 -25
  64. package/dist/render/components/checkout/CheckoutPageClient.js +1 -3
  65. package/dist/render/components/checkout/checkout-parts.d.ts +5 -0
  66. package/dist/render/components/checkout/checkout-parts.js +1 -0
  67. package/dist/render/components/checkout/checkout-state.d.ts +169 -0
  68. package/dist/render/components/checkout/checkout-state.js +3 -0
  69. package/dist/render/lib/api/index.d.ts +1 -0
  70. package/dist/render/lib/api/types.d.ts +3 -0
  71. package/dist/render/lib/document/blocks/service/ContactCards/meta.d.ts +7 -0
  72. package/dist/render/lib/document/blocks/service/ContactCards/meta.js +1 -0
  73. package/dist/render/lib/document/blocks/service/ContactCards/render.d.ts +4 -0
  74. package/dist/render/lib/document/blocks/service/ContactCards/render.js +1 -0
  75. package/dist/render/lib/document/blocks/service/Events/render.js +1 -1
  76. package/dist/render/lib/document/blocks/service/Footer/meta.js +1 -1
  77. package/dist/render/lib/document/blocks/service/FooterGroup/meta.js +1 -1
  78. package/dist/render/lib/document/blocks/service/FooterMessaging/meta.d.ts +2 -0
  79. package/dist/render/lib/document/blocks/service/FooterMessaging/meta.js +1 -0
  80. package/dist/render/lib/document/blocks/service/FooterMessaging/render.d.ts +2 -0
  81. package/dist/render/lib/document/blocks/service/FooterMessaging/render.js +1 -0
  82. package/dist/render/lib/document/blocks/service/FooterPayment/meta.d.ts +3 -0
  83. package/dist/render/lib/document/blocks/service/FooterPayment/meta.js +1 -0
  84. package/dist/render/lib/document/blocks/service/FooterPayment/render.d.ts +2 -0
  85. package/dist/render/lib/document/blocks/service/FooterPayment/render.js +1 -0
  86. package/dist/render/lib/document/blocks/service/MessagingCards/meta.d.ts +2 -0
  87. package/dist/render/lib/document/blocks/service/MessagingCards/meta.js +1 -0
  88. package/dist/render/lib/document/blocks/service/MessagingCards/render.d.ts +4 -0
  89. package/dist/render/lib/document/blocks/service/MessagingCards/render.js +1 -0
  90. package/dist/render/lib/document/blocks/service/Reviews/meta.d.ts +6 -0
  91. package/dist/render/lib/document/blocks/service/Reviews/meta.js +1 -1
  92. package/dist/render/lib/document/blocks/service/Reviews/render.js +1 -1
  93. package/dist/render/lib/document/blocks/service/metas.d.ts +4 -0
  94. package/dist/render/lib/document/blocks/service/metas.js +1 -1
  95. package/dist/render/lib/document/blocks/service/renders.d.ts +4 -0
  96. package/dist/render/lib/document/blocks/service/renders.js +1 -1
  97. package/dist/render/lib/document/blocks/text-part-shapes.json +137 -6
  98. package/dist/render/lib/document/card-templates.d.ts +2 -0
  99. package/dist/render/lib/document/card-templates.js +1 -0
  100. package/dist/render/lib/document/footer-page-blocks.d.ts +1 -0
  101. package/dist/render/lib/document/footer-page-blocks.js +1 -1
  102. package/dist/render/lib/document/lazy-draws.js +1 -1
  103. package/dist/render/lib/document/render-config.d.ts +2 -0
  104. package/dist/render/lib/document/render-config.js +1 -1
  105. package/dist/render/lib/document/section-to-box-rows-reviews.d.ts +1 -0
  106. package/dist/render/lib/document/section-to-box-rows-reviews.js +1 -0
  107. package/dist/render/lib/links/link-rules.d.ts +1 -1
  108. package/dist/render/lib/links/link-rules.js +1 -1
  109. package/dist/render/lib/qr.d.ts +5 -0
  110. package/dist/render/lib/qr.js +1 -0
  111. package/dist/render/lib/sections/messaging.d.ts +45 -0
  112. package/dist/render/lib/sections/messaging.js +1 -0
  113. package/dist/render/lib/sections/reviews.d.ts +1 -0
  114. package/dist/render/lib/sections/reviews.js +1 -0
  115. package/dist/render/lib/wheels/catalog-default-layout.js +1 -1
  116. package/dist/render/lib/wheels/collections.js +1 -1
  117. package/dist/words.d.ts +40 -7
  118. package/dist/words.js +4 -4
  119. package/package.json +4 -4
  120. package/dist/chunks/EditorPreviewCheckout-XI4VULPL.js +0 -4
  121. package/dist/chunks/chunk-RPLNV3WM.js +0 -1
  122. package/dist/chunks/chunk-SQH6XBRG.js +0 -1
  123. package/dist/chunks/chunk-XF2ZAVNU.js +0 -262
  124. package/dist/render/components/useStorefrontReviews.d.ts +0 -2
  125. package/dist/render/components/useStorefrontReviews.js +0 -1
  126. /package/dist/chunks/{chunk-XF2ZAVNU.js.LEGAL.txt → chunk-UGXNUQRA.js.LEGAL.txt} +0 -0
@@ -1 +1 @@
1
- import{jsx as m}from"react/jsx-runtime";import r from"../../../../../components/Reviews.js";import{hidableText as a}from"efficient-easel/screen/lib/document/hidable";import{parseSectionHeadPlacement as l}from"efficient-web-builder/format/lib/sections/section-head-placement";import{parseSectionEyebrowLook as w}from"efficient-web-builder/format/lib/sections/section-eyebrow-look";import{phHide as t}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{ReviewsMeta as c,REVIEWS_PH as n}from"./meta.js";const g={...c,render:e=>{const i=l(e.headPlacement)==="own-box",o=d=>i?void 0:d;return m(r,{look:w(e.eyebrowLook,"Reviews"),eyebrow:o(t(e.eyebrow,n.eyebrow,e.editor)),title:o(t(e.title,n.title,e.editor)),omitHead:i,columns:e.columns,limit:e.limit,designCode:a(e.designCode)||void 0,editing:e.editor?.isEditing})}};export{g as ReviewsRender};
1
+ import{jsx as s}from"react/jsx-runtime";import f from"../../../../../components/Reviews.js";import{CardTemplateRows as y}from"efficient-web-builder/render/components/CardRowContext";import{cardRow as h}from"efficient-web-builder/format/lib/content/card-template";import{declaredBlockSource as p,sourcedRows as b}from"efficient-web-builder/format/lib/content/block-sources";import{parseSectionHeadPlacement as R}from"efficient-web-builder/format/lib/sections/section-head-placement";import{parseSectionEyebrowLook as g}from"efficient-web-builder/format/lib/sections/section-eyebrow-look";import{phHide as c}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{say as i}from"efficient-web-builder/format/lib/editor-words";import{ReviewsMeta as k,REVIEWS_PH as d}from"./meta.js";const w=()=>[{key:"sample-review-1",name:i("Sample reviewer"),rating:"5",title:i("Sample review title"),quote:i("Approved customer reviews appear here automatically — this card is only a preview of the section's shape.")},{key:"sample-review-2",name:i("Sample reviewer"),rating:"4",title:"",quote:i("Reviews are collected by the Review Form section and wait for your approval before they show.")},{key:"sample-review-3",name:i("Sample reviewer"),rating:"5",title:i("Another sample"),quote:i("Set a product design code on this section to show one product's reviews; leave it blank for the whole store.")}],S=(e,o)=>{const a=Number.parseFloat(e.rating??"");return{key:e.key||`review-${o}`,quote:e.quote??"",title:e.title??"",name:e.name??"",meta:e.dateLabel||e.role||"",...Number.isFinite(a)?{rating:a}:{}}},q=e=>(Array.isArray(e)?e:[]).map(h).filter(o=>(o.quote??"").trim()),I={...k,render:e=>{const o=R(e.headPlacement)==="own-box",a=t=>o?void 0:t,m=!!e.editor?.isEditing;let r,l=!1;if(p(e)!==""){const t=b(e,m,w()),u=typeof e.limit=="number"&&e.limit>0?e.limit:6;r=t.sample?t.rows:t.rows.slice(0,u),l=t.sample}else r=q(e.items),!r.length&&m&&(r=w(),l=!0);const v=r.map(S),n=t=>s(f,{look:g(e.eyebrowLook,"Reviews"),eyebrow:a(c(e.eyebrow,d.eyebrow,e.editor)),title:a(c(e.title,d.title,e.editor)),omitHead:o,columns:e.columns,rows:v,sample:l,editing:m,cards:t});return s(y,{ownerId:String(e.id??""),ownerType:"Reviews",Template:e.template,rows:r,fallback:n(),children:t=>n(t)})}};export{I as ReviewsRender};
@@ -11,11 +11,15 @@ export declare const SERVICE_METAS: {
11
11
  FooterLogo: Omit<BlockRender, "render">;
12
12
  FooterMenu: Omit<BlockRender, "render">;
13
13
  FooterSocial: Omit<BlockRender, "render">;
14
+ FooterPayment: Omit<BlockRender, "render">;
14
15
  FooterText: Omit<BlockRender, "render">;
15
16
  Form: Omit<BlockRender, "render">;
16
17
  LegalLineBlock: Omit<BlockRender, "render">;
17
18
  OpeningHours: Omit<BlockRender, "render">;
18
19
  RateTable: Omit<BlockRender, "render">;
20
+ MessagingCards: Omit<BlockRender, "render">;
21
+ FooterMessaging: Omit<BlockRender, "render">;
22
+ ContactCards: Omit<BlockRender, "render">;
19
23
  RatingBlock: Omit<BlockRender, "render">;
20
24
  ReviewForm: Omit<BlockRender, "render">;
21
25
  Reviews: Omit<BlockRender, "render">;
@@ -1 +1 @@
1
- import{SITE_FOOTER_TYPE as o,SITE_HEADER_TYPE as t}from"efficient-web-builder/format/lib/document/section-groups";import{AppointmentBookingMeta as r}from"./AppointmentBooking/meta.js";import{BookingBoxMeta as e}from"./BookingBox/meta.js";import{ContactRoutingMeta as i}from"./ContactRouting/meta.js";import{EventsMeta as m}from"./Events/meta.js";import{FooterDividerMeta as a}from"./FooterDivider/meta.js";import{FooterEmailSignupMeta as p}from"./FooterEmailSignup/meta.js";import{FooterGroupMeta as M}from"./FooterGroup/meta.js";import{FooterLogoMeta as n}from"./FooterLogo/meta.js";import{FooterMenuMeta as f}from"./FooterMenu/meta.js";import{FooterMeta as F}from"./Footer/meta.js";import{FooterSocialMeta as u}from"./FooterSocial/meta.js";import{FooterTextMeta as g}from"./FooterText/meta.js";import{FormMeta as S}from"./Form/meta.js";import{LegalLineBlockMeta as l}from"./LegalLineBlock/meta.js";import{OpeningHoursMeta as B}from"./OpeningHours/meta.js";import{RateTableMeta as b}from"./RateTable/meta.js";import{RatingBlockMeta as E}from"./RatingBlock/meta.js";import{ReviewFormMeta as c}from"./ReviewForm/meta.js";import{ReviewsMeta as s}from"./Reviews/meta.js";import{SiteFooterMeta as R}from"./SiteFooter/meta.js";import{SiteHeaderMeta as T}from"./SiteHeader/meta.js";import{SubmitBoxMeta as k}from"./SubmitBox/meta.js";import{SubmitBuildMeta as v}from"./SubmitBuild/meta.js";import{SubscribeBlogsMeta as x}from"./SubscribeBlogs/meta.js";import{SubscribeMeta as L}from"./Subscribe/meta.js";const $={AppointmentBooking:r,BookingBox:e,ContactRouting:i,Events:m,Footer:F,FooterDivider:a,FooterEmailSignup:p,FooterGroup:M,FooterLogo:n,FooterMenu:f,FooterSocial:u,FooterText:g,Form:S,LegalLineBlock:l,OpeningHours:B,RateTable:b,RatingBlock:E,ReviewForm:c,Reviews:s,[o]:R,[t]:T,SubmitBox:k,SubmitBuild:v,Subscribe:L,SubscribeBlogs:x};export{$ as SERVICE_METAS};
1
+ import{SITE_FOOTER_TYPE as o,SITE_HEADER_TYPE as t}from"efficient-web-builder/format/lib/document/section-groups";import{AppointmentBookingMeta as r}from"./AppointmentBooking/meta.js";import{BookingBoxMeta as e}from"./BookingBox/meta.js";import{ContactRoutingMeta as i}from"./ContactRouting/meta.js";import{EventsMeta as m}from"./Events/meta.js";import{FooterDividerMeta as a}from"./FooterDivider/meta.js";import{FooterEmailSignupMeta as p}from"./FooterEmailSignup/meta.js";import{FooterGroupMeta as M}from"./FooterGroup/meta.js";import{FooterLogoMeta as n}from"./FooterLogo/meta.js";import{FooterMenuMeta as f}from"./FooterMenu/meta.js";import{FooterMeta as g}from"./Footer/meta.js";import{FooterSocialMeta as F}from"./FooterSocial/meta.js";import{FooterPaymentMeta as s}from"./FooterPayment/meta.js";import{FooterTextMeta as u}from"./FooterText/meta.js";import{FormMeta as S}from"./Form/meta.js";import{LegalLineBlockMeta as l}from"./LegalLineBlock/meta.js";import{OpeningHoursMeta as B}from"./OpeningHours/meta.js";import{RateTableMeta as c}from"./RateTable/meta.js";import{MessagingCardsMeta as b}from"./MessagingCards/meta.js";import{FooterMessagingMeta as E}from"./FooterMessaging/meta.js";import{ContactCardsMeta as R}from"./ContactCards/meta.js";import{RatingBlockMeta as T}from"./RatingBlock/meta.js";import{ReviewFormMeta as d}from"./ReviewForm/meta.js";import{ReviewsMeta as C}from"./Reviews/meta.js";import{SiteFooterMeta as k}from"./SiteFooter/meta.js";import{SiteHeaderMeta as v}from"./SiteHeader/meta.js";import{SubmitBoxMeta as x}from"./SubmitBox/meta.js";import{SubmitBuildMeta as L}from"./SubmitBuild/meta.js";import{SubscribeBlogsMeta as _}from"./SubscribeBlogs/meta.js";import{SubscribeMeta as w}from"./Subscribe/meta.js";const po={AppointmentBooking:r,BookingBox:e,ContactRouting:i,Events:m,Footer:g,FooterDivider:a,FooterEmailSignup:p,FooterGroup:M,FooterLogo:n,FooterMenu:f,FooterSocial:F,FooterPayment:s,FooterText:u,Form:S,LegalLineBlock:l,OpeningHours:B,RateTable:c,MessagingCards:b,FooterMessaging:E,ContactCards:R,RatingBlock:T,ReviewForm:d,Reviews:C,[o]:k,[t]:v,SubmitBox:x,SubmitBuild:L,Subscribe:w,SubscribeBlogs:_};export{po as SERVICE_METAS};
@@ -11,11 +11,15 @@ export declare const SERVICE_RENDERS: {
11
11
  FooterLogo: BlockRender;
12
12
  FooterMenu: BlockRender;
13
13
  FooterSocial: BlockRender;
14
+ FooterPayment: BlockRender;
14
15
  FooterText: BlockRender;
15
16
  Form: BlockRender;
16
17
  LegalLineBlock: BlockRender;
17
18
  OpeningHours: BlockRender;
18
19
  RateTable: BlockRender;
20
+ MessagingCards: BlockRender;
21
+ FooterMessaging: BlockRender;
22
+ ContactCards: BlockRender;
19
23
  RatingBlock: BlockRender;
20
24
  ReviewForm: BlockRender;
21
25
  Reviews: BlockRender;
@@ -1 +1 @@
1
- import{SITE_FOOTER_TYPE as o,SITE_HEADER_TYPE as r}from"efficient-web-builder/format/lib/document/section-groups";import{AppointmentBookingRender as e}from"./AppointmentBooking/render.js";import{BookingBoxRender as t}from"./BookingBox/render.js";import{ContactRoutingRender as i}from"./ContactRouting/render.js";import{EventsRender as m}from"./Events/render.js";import{FooterRender as n}from"./Footer/render.js";import{FooterDividerRender as R}from"./FooterDivider/render.js";import{FooterEmailSignupRender as p}from"./FooterEmailSignup/render.js";import{FooterGroupRender as d}from"./FooterGroup/render.js";import{FooterLogoRender as f}from"./FooterLogo/render.js";import{FooterMenuRender as F}from"./FooterMenu/render.js";import{FooterSocialRender as u}from"./FooterSocial/render.js";import{FooterTextRender as g}from"./FooterText/render.js";import{FormRender as S}from"./Form/render.js";import{LegalLineBlockRender as l}from"./LegalLineBlock/render.js";import{OpeningHoursRender as B}from"./OpeningHours/render.js";import{RateTableRender as a}from"./RateTable/render.js";import{RatingBlockRender as E}from"./RatingBlock/render.js";import{ReviewFormRender as b}from"./ReviewForm/render.js";import{ReviewsRender as c}from"./Reviews/render.js";import{SiteFooterRender as s}from"./SiteFooter/render.js";import{SiteHeaderRender as T}from"./SiteHeader/render.js";import{SubmitBoxRender as k}from"./SubmitBox/render.js";import{SubmitBuildRender as v}from"./SubmitBuild/render.js";import{SubscribeRender as x}from"./Subscribe/render.js";import{SubscribeBlogsRender as L}from"./SubscribeBlogs/render.js";const $={AppointmentBooking:e,BookingBox:t,ContactRouting:i,Events:m,Footer:n,FooterDivider:R,FooterEmailSignup:p,FooterGroup:d,FooterLogo:f,FooterMenu:F,FooterSocial:u,FooterText:g,Form:S,LegalLineBlock:l,OpeningHours:B,RateTable:a,RatingBlock:E,ReviewForm:b,Reviews:c,[o]:s,[r]:T,SubmitBox:k,SubmitBuild:v,Subscribe:x,SubscribeBlogs:L};export{$ as SERVICE_RENDERS};
1
+ import{SITE_FOOTER_TYPE as o,SITE_HEADER_TYPE as r}from"efficient-web-builder/format/lib/document/section-groups";import{AppointmentBookingRender as e}from"./AppointmentBooking/render.js";import{BookingBoxRender as t}from"./BookingBox/render.js";import{ContactRoutingRender as i}from"./ContactRouting/render.js";import{EventsRender as m}from"./Events/render.js";import{FooterRender as n}from"./Footer/render.js";import{FooterDividerRender as R}from"./FooterDivider/render.js";import{FooterEmailSignupRender as p}from"./FooterEmailSignup/render.js";import{FooterGroupRender as d}from"./FooterGroup/render.js";import{FooterLogoRender as f}from"./FooterLogo/render.js";import{FooterMenuRender as a}from"./FooterMenu/render.js";import{FooterSocialRender as g}from"./FooterSocial/render.js";import{FooterPaymentRender as F}from"./FooterPayment/render.js";import{FooterTextRender as s}from"./FooterText/render.js";import{FormRender as u}from"./Form/render.js";import{LegalLineBlockRender as S}from"./LegalLineBlock/render.js";import{OpeningHoursRender as l}from"./OpeningHours/render.js";import{RateTableRender as B}from"./RateTable/render.js";import{MessagingCardsRender as c}from"./MessagingCards/render.js";import{FooterMessagingRender as E}from"./FooterMessaging/render.js";import{ContactCardsRender as b}from"./ContactCards/render.js";import{RatingBlockRender as C}from"./RatingBlock/render.js";import{ReviewFormRender as T}from"./ReviewForm/render.js";import{ReviewsRender as k}from"./Reviews/render.js";import{SiteFooterRender as v}from"./SiteFooter/render.js";import{SiteHeaderRender as x}from"./SiteHeader/render.js";import{SubmitBoxRender as L}from"./SubmitBox/render.js";import{SubmitBuildRender as M}from"./SubmitBuild/render.js";import{SubscribeRender as _}from"./Subscribe/render.js";import{SubscribeBlogsRender as w}from"./SubscribeBlogs/render.js";const Ro={AppointmentBooking:e,BookingBox:t,ContactRouting:i,Events:m,Footer:n,FooterDivider:R,FooterEmailSignup:p,FooterGroup:d,FooterLogo:f,FooterMenu:a,FooterSocial:g,FooterPayment:F,FooterText:s,Form:u,LegalLineBlock:S,OpeningHours:l,RateTable:B,MessagingCards:c,FooterMessaging:E,ContactCards:b,RatingBlock:C,ReviewForm:T,Reviews:k,[o]:v,[r]:x,SubmitBox:L,SubmitBuild:M,Subscribe:_,SubscribeBlogs:w};export{Ro as SERVICE_RENDERS};
@@ -1233,6 +1233,29 @@
1233
1233
  }
1234
1234
  }
1235
1235
  },
1236
+ "FooterPayment": {
1237
+ "lead": {
1238
+ "type": "custom",
1239
+ "__text": {
1240
+ "control": "text",
1241
+ "label": "Lead",
1242
+ "placeholder": "We accept"
1243
+ }
1244
+ },
1245
+ "methods": {
1246
+ "type": "array",
1247
+ "label": "Payment methods",
1248
+ "arrayFields": {
1249
+ "label": {
1250
+ "type": "custom",
1251
+ "__text": {
1252
+ "control": "copyText",
1253
+ "label": "Name"
1254
+ }
1255
+ }
1256
+ }
1257
+ }
1258
+ },
1236
1259
  "FooterText": {
1237
1260
  "text": {
1238
1261
  "type": "custom",
@@ -1311,6 +1334,74 @@
1311
1334
  }
1312
1335
  }
1313
1336
  },
1337
+ "MessagingCards": {
1338
+ "title": {
1339
+ "type": "custom",
1340
+ "__text": {
1341
+ "control": "textarea",
1342
+ "label": "Heading",
1343
+ "placeholder": "Message us"
1344
+ }
1345
+ },
1346
+ "description": {
1347
+ "type": "custom",
1348
+ "__text": {
1349
+ "control": "textarea",
1350
+ "label": "Body",
1351
+ "placeholder": ""
1352
+ }
1353
+ }
1354
+ },
1355
+ "FooterMessaging": {
1356
+ "heading": {
1357
+ "type": "custom",
1358
+ "__text": {
1359
+ "control": "text",
1360
+ "label": "Heading",
1361
+ "placeholder": "Message us"
1362
+ }
1363
+ }
1364
+ },
1365
+ "ContactCards": {
1366
+ "title": {
1367
+ "type": "custom",
1368
+ "__text": {
1369
+ "control": "textarea",
1370
+ "label": "Heading",
1371
+ "placeholder": "Who to ask"
1372
+ }
1373
+ },
1374
+ "description": {
1375
+ "type": "custom",
1376
+ "__text": {
1377
+ "control": "textarea",
1378
+ "label": "Body",
1379
+ "placeholder": ""
1380
+ }
1381
+ },
1382
+ "contacts": {
1383
+ "type": "array",
1384
+ "label": "Contacts",
1385
+ "arrayFields": {
1386
+ "name": {
1387
+ "type": "custom",
1388
+ "__text": {
1389
+ "control": "copyText",
1390
+ "label": "Name",
1391
+ "placeholder": "Who to ask for"
1392
+ }
1393
+ },
1394
+ "value": {
1395
+ "type": "custom",
1396
+ "__text": {
1397
+ "control": "copyText",
1398
+ "label": "Number or ID",
1399
+ "placeholder": "A number, @name or an ID"
1400
+ }
1401
+ }
1402
+ }
1403
+ }
1404
+ },
1314
1405
  "ReviewForm": {
1315
1406
  "eyebrow": {
1316
1407
  "type": "custom",
@@ -1354,12 +1445,52 @@
1354
1445
  "placeholder": "From our *customers.*"
1355
1446
  }
1356
1447
  },
1357
- "designCode": {
1358
- "type": "custom",
1359
- "__text": {
1360
- "control": "plainText",
1361
- "label": "Design code",
1362
- "placeholder": "e.g. D00123 · blank = the whole store"
1448
+ "items": {
1449
+ "type": "array",
1450
+ "label": "Typed reviews",
1451
+ "arrayFields": {
1452
+ "quote": {
1453
+ "type": "custom",
1454
+ "__text": {
1455
+ "control": "plainTextarea",
1456
+ "label": "Quote"
1457
+ }
1458
+ },
1459
+ "title": {
1460
+ "type": "custom",
1461
+ "__text": {
1462
+ "control": "plainText",
1463
+ "label": "Title"
1464
+ }
1465
+ },
1466
+ "name": {
1467
+ "type": "custom",
1468
+ "__text": {
1469
+ "control": "plainText",
1470
+ "label": "Name"
1471
+ }
1472
+ },
1473
+ "role": {
1474
+ "type": "custom",
1475
+ "__text": {
1476
+ "control": "plainText",
1477
+ "label": "Role · location"
1478
+ }
1479
+ }
1480
+ }
1481
+ },
1482
+ "dataSourceOptions": {
1483
+ "type": "object",
1484
+ "label": "Product",
1485
+ "objectFields": {
1486
+ "designCode": {
1487
+ "type": "custom",
1488
+ "__text": {
1489
+ "control": "plainText",
1490
+ "label": "Design code",
1491
+ "placeholder": "e.g. D00123 · blank = the whole store"
1492
+ }
1493
+ }
1363
1494
  }
1364
1495
  }
1365
1496
  },
@@ -0,0 +1,2 @@
1
+ import { type CardTemplateSpec } from "efficient-web-builder/format/lib/content/card-template";
2
+ export declare const STOREFRONT_CARD_TEMPLATES: readonly CardTemplateSpec[];
@@ -0,0 +1 @@
1
+ import{registerCardTemplates as e}from"efficient-web-builder/format/lib/content/card-template";const l=[{block:"Reviews",fields:[{key:"quote",label:"Quote"},{key:"title",label:"Title"},{key:"name",label:"Name"},{key:"role",label:"Role · location"},{key:"rating",label:"Rating"},{key:"dateLabel",label:"Date"}]}];e(l);export{l as STOREFRONT_CARD_TEMPLATES};
@@ -2,6 +2,7 @@ export declare const PAGE_BLOCKS_FROM_FOOTER: {
2
2
  readonly MenuBlock: "FooterMenu";
3
3
  readonly EmailFormBlock: "FooterEmailSignup";
4
4
  readonly SocialLogosBlock: "FooterSocial";
5
+ readonly PaymentLogosBlock: "FooterPayment";
5
6
  };
6
7
  export declare const PAGE_MENU_DIRECTION_DEFAULT = "column";
7
8
  export declare function addPageBlocksFromFooter(components: Record<string, object>): void;
@@ -1 +1 @@
1
- import{jsx as u}from"react/jsx-runtime";import a from"../../components/FooterMenu.js";const d={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial"},s="column";function f({menu:o,heading:e,accordionMobile:r,showDividers:n,direction:i,linkAlign:t,linkRange:l,editor:c}){return u(a,{menu:o,heading:e||void 0,accordionMobile:r,showDividers:n,layout:i==="row"?"row":"column",linkAlign:t,linkRange:l,editing:c?.isEditing})}function F(o){for(const[r,n]of Object.entries(d))o[r]={...o[n]};const e=o.MenuBlock;e.defaultProps={...e.defaultProps,direction:s},e.render=f}export{d as PAGE_BLOCKS_FROM_FOOTER,s as PAGE_MENU_DIRECTION_DEFAULT,F as addPageBlocksFromFooter};
1
+ import{jsx as a}from"react/jsx-runtime";import u from"../../components/FooterMenu.js";const d={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial",PaymentLogosBlock:"FooterPayment"},s="column";function m({menu:o,heading:e,accordionMobile:n,showDividers:r,direction:t,linkAlign:i,linkRange:l,editor:c}){return a(u,{menu:o,heading:e||void 0,accordionMobile:n,showDividers:r,layout:t==="row"?"row":"column",linkAlign:i,linkRange:l,editing:c?.isEditing})}function f(o){for(const[n,r]of Object.entries(d))o[n]={...o[r]};const e=o.MenuBlock;e.defaultProps={...e.defaultProps,direction:s},e.render=m}export{d as PAGE_BLOCKS_FROM_FOOTER,s as PAGE_MENU_DIRECTION_DEFAULT,f as addPageBlocksFromFooter};
@@ -1 +1 @@
1
- import{jsx as i}from"react/jsx-runtime";import t from"next/dynamic";import{SITE_FOOTER_TYPE as d,SITE_HEADER_TYPE as m}from"efficient-web-builder/format/lib/document/section-groups";function r(e){return function(o){return e.render(o)}}const p={Banner:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Banner/render").then(e=>r(e.BannerRender))),Breadcrumb:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Breadcrumb/render").then(e=>r(e.BreadcrumbRender))),ButtonBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ButtonBlock/render").then(e=>r(e.ButtonBlockRender))),Cards:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Cards/render").then(e=>r(e.CardsRender))),CategoryBar:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/CategoryBar/render").then(e=>r(e.CategoryBarRender))),Chart:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Chart/render").then(e=>r(e.ChartRender))),ContactLocations:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ContactLocations/render").then(e=>r(e.ContactLocationsRender))),CustomHTML:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/CustomHTML/render").then(e=>r(e.CustomHTMLRender))),Divider:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Divider/render").then(e=>r(e.DividerRender))),DocBody:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocBody/render").then(e=>r(e.DocBodyRender))),DocMasthead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocMasthead/render").then(e=>r(e.DocMastheadRender))),DocMetaCards:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocMetaCards/render").then(e=>r(e.DocMetaCardsRender))),DocTabs:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocTabs/render").then(e=>r(e.DocTabsRender))),Eyebrow:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Eyebrow/render").then(e=>r(e.EyebrowRender))),FAQ:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/FAQ/render").then(e=>r(e.FAQRender))),FeaturedCover:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/FeaturedCover/render").then(e=>r(e.FeaturedCoverRender))),Flex:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Flex/render").then(e=>r(e.FlexRender))),Footprint:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Footprint/render").then(e=>r(e.FootprintRender))),Grid:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Grid/render").then(e=>r(e.GridRender))),Heading:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Heading/render").then(e=>r(e.HeadingRender))),Hero:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Hero/render").then(e=>r(e.HeroRender))),HeroGroup:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroGroup/render").then(e=>r(e.HeroGroupRender))),HeroSingle:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroSingle/render").then(e=>r(e.HeroSingleRender))),HeroSlide:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroSlide/render").then(e=>r(e.HeroSlideRender))),ImageBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ImageBlock/render").then(e=>r(e.ImageBlockRender))),Integrations:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Integrations/render").then(e=>r(e.IntegrationsRender))),IntroBleed:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/IntroBleed/render").then(e=>r(e.IntroBleedRender))),Countdown:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Countdown/render").then(e=>r(e.CountdownRender))),KeyFeatures:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/KeyFeatures/render").then(e=>r(e.KeyFeaturesRender))),LogoBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/LogoBlock/render").then(e=>r(e.LogoBlockRender))),Logos:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Logos/render").then(e=>r(e.LogosRender))),LongRead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/LongRead/render").then(e=>r(e.LongReadRender))),Manifesto:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Manifesto/render").then(e=>r(e.ManifestoRender))),Masthead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Masthead/render").then(e=>r(e.MastheadRender))),Mockup:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Mockup/render").then(e=>r(e.MockupRender))),OrderSummary:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/OrderSummary/render").then(e=>r(e.OrderSummaryRender))),ParagraphsA:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ParagraphsA/render").then(e=>r(e.ParagraphsARender))),PaymentBadges:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/PaymentBadges/render").then(e=>r(e.PaymentBadgesRender))),PostCard:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/PostCard/render").then(e=>r(e.PostCardRender))),ProcessSteps:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ProcessSteps/render").then(e=>r(e.ProcessStepsRender))),Prose:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Prose/render").then(e=>r(e.ProseRender))),SectionHeader:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/SectionHeader/render").then(e=>r(e.SectionHeaderRender))),Series:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Series/render").then(e=>r(e.SeriesRender))),Spacer:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Spacer/render").then(e=>r(e.SpacerRender))),SpecStrip:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/SpecStrip/render").then(e=>r(e.SpecStripRender))),Split:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Split/render").then(e=>r(e.SplitRender))),Stats:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Stats/render").then(e=>r(e.StatsRender))),StatsParagraph:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/StatsParagraph/render").then(e=>r(e.StatsParagraphRender))),Testimonials:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Testimonials/render").then(e=>r(e.TestimonialsRender))),Text:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Text/render").then(e=>r(e.TextRender))),Ticker:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Ticker/render").then(e=>r(e.TickerRender))),Timeline:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Timeline/render").then(e=>r(e.TimelineRender))),TimelineTrack:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/TimelineTrack/render").then(e=>r(e.TimelineTrackRender))),TitleWithButtons:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/TitleWithButtons/render").then(e=>r(e.TitleWithButtonsRender))),AccountBlock:t(()=>import("./blocks/commerce/AccountBlock/render.js").then(e=>r(e.AccountBlockRender))),AlloyWheelsListing:t(()=>import("./blocks/commerce/AlloyWheelsListing/render.js").then(e=>r(e.AlloyWheelsListingRender))),BundleOffer:t(()=>import("./blocks/commerce/BundleOffer/render.js").then(e=>r(e.BundleOfferRender))),CartBlock:t(()=>import("./blocks/commerce/CartBlock/render.js").then(e=>r(e.CartBlockRender))),CatalogFilterBar:t(()=>import("./blocks/commerce/CatalogFilterBar/render.js").then(e=>r(e.CatalogFilterBarRender))),CheckoutCTA:t(()=>import("./blocks/commerce/CheckoutCTA/render.js").then(e=>r(e.CheckoutCTARender))),CollectionCard:t(()=>import("./blocks/commerce/CollectionCard/render.js").then(e=>r(e.CollectionCardRender))),Collections:t(()=>import("./blocks/commerce/Collections/render.js").then(e=>r(e.CollectionsRender))),CompatibleTyres:t(()=>import("./blocks/commerce/CompatibleTyres/render.js").then(e=>r(e.CompatibleTyresRender))),CountrySwitchBlock:t(()=>import("./blocks/commerce/CountrySwitchBlock/render.js").then(e=>r(e.CountrySwitchBlockRender))),DeliveryOptions:t(()=>import("./blocks/commerce/DeliveryOptions/render.js").then(e=>r(e.DeliveryOptionsRender))),DetailRows:t(()=>import("./blocks/commerce/DetailRows/render.js").then(e=>r(e.DetailRowsRender))),EuTyreLabel:t(()=>import("./blocks/commerce/EuTyreLabel/render.js").then(e=>r(e.EuTyreLabelRender))),EuTyreLabelBlock:t(()=>import("./blocks/commerce/EuTyreLabelBlock/render.js").then(e=>r(e.EuTyreLabelBlockRender))),FitmentFinder:t(()=>import("./blocks/commerce/FitmentFinder/render.js").then(e=>r(e.FitmentFinderRender))),FitmentTable:t(()=>import("./blocks/commerce/FitmentTable/render.js").then(e=>r(e.FitmentTableRender))),Gallery:t(()=>import("./blocks/commerce/Gallery/render.js").then(e=>r(e.GalleryRender))),GalleryB:t(()=>import("./blocks/commerce/GalleryB/render.js").then(e=>r(e.GalleryBRender))),GalleryItem:t(()=>import("./blocks/commerce/GalleryItem/render.js").then(e=>r(e.GalleryItemRender))),Header:t(()=>import("./blocks/commerce/Header/render.js").then(e=>r(e.HeaderRender))),ProductGrid:t(()=>import("./blocks/commerce/ProductGrid/render.js").then(e=>r(e.ProductGridRender))),ProductGallery:t(()=>import("./blocks/commerce/ProductGallery/render.js").then(e=>r(e.ProductGalleryRender))),ProductHero:t(()=>import("./blocks/commerce/ProductHero/render.js").then(e=>r(e.ProductHeroRender))),ProductRef:t(()=>import("./blocks/commerce/ProductRef/render.js").then(e=>r(e.ProductRefRender))),RelatedProducts:t(()=>import("./blocks/commerce/RelatedProducts/render.js").then(e=>r(e.RelatedProductsRender))),SearchBlock:t(()=>import("./blocks/commerce/SearchBlock/render.js").then(e=>r(e.SearchBlockRender))),SpecTable:t(()=>import("./blocks/commerce/SpecTable/render.js").then(e=>r(e.SpecTableRender))),ThemeSwitchBlock:t(()=>import("./blocks/commerce/ThemeSwitchBlock/render.js").then(e=>r(e.ThemeSwitchBlockRender))),TyreFitment:t(()=>import("./blocks/commerce/TyreFitment/render.js").then(e=>r(e.TyreFitmentRender))),TyreSizes:t(()=>import("./blocks/commerce/TyreSizes/render.js").then(e=>r(e.TyreSizesRender))),AppointmentBooking:t(()=>import("./blocks/service/AppointmentBooking/render.js").then(e=>r(e.AppointmentBookingRender))),BookingBox:t(()=>import("./blocks/service/BookingBox/render.js").then(e=>r(e.BookingBoxRender))),ContactRouting:t(()=>import("./blocks/service/ContactRouting/render.js").then(e=>r(e.ContactRoutingRender))),Events:t(()=>import("./blocks/service/Events/render.js").then(e=>r(e.EventsRender))),Footer:t(()=>import("./blocks/service/Footer/render.js").then(e=>r(e.FooterRender))),FooterDivider:t(()=>import("./blocks/service/FooterDivider/render.js").then(e=>r(e.FooterDividerRender))),FooterEmailSignup:t(()=>import("./blocks/service/FooterEmailSignup/render.js").then(e=>r(e.FooterEmailSignupRender))),FooterGroup:t(()=>import("./blocks/service/FooterGroup/render.js").then(e=>r(e.FooterGroupRender))),FooterLogo:t(()=>import("./blocks/service/FooterLogo/render.js").then(e=>r(e.FooterLogoRender))),FooterMenu:t(()=>import("./blocks/service/FooterMenu/render.js").then(e=>r(e.FooterMenuRender))),FooterSocial:t(()=>import("./blocks/service/FooterSocial/render.js").then(e=>r(e.FooterSocialRender))),FooterText:t(()=>import("./blocks/service/FooterText/render.js").then(e=>r(e.FooterTextRender))),Form:t(()=>import("./blocks/service/Form/render.js").then(e=>r(e.FormRender))),LegalLineBlock:t(()=>import("./blocks/service/LegalLineBlock/render.js").then(e=>r(e.LegalLineBlockRender))),OpeningHours:t(()=>import("./blocks/service/OpeningHours/render.js").then(e=>r(e.OpeningHoursRender))),RateTable:t(()=>import("./blocks/service/RateTable/render.js").then(e=>r(e.RateTableRender))),RatingBlock:t(()=>import("./blocks/service/RatingBlock/render.js").then(e=>r(e.RatingBlockRender))),ReviewForm:t(()=>import("./blocks/service/ReviewForm/render.js").then(e=>r(e.ReviewFormRender))),Reviews:t(()=>import("./blocks/service/Reviews/render.js").then(e=>r(e.ReviewsRender))),[d]:t(()=>import("./blocks/service/SiteFooter/render.js").then(e=>r(e.SiteFooterRender))),[m]:t(()=>import("./blocks/service/SiteHeader/render.js").then(e=>r(e.SiteHeaderRender))),SubmitBox:t(()=>import("./blocks/service/SubmitBox/render.js").then(e=>r(e.SubmitBoxRender))),SubmitBuild:t(()=>import("./blocks/service/SubmitBuild/render.js").then(e=>r(e.SubmitBuildRender))),Subscribe:t(()=>import("./blocks/service/Subscribe/render.js").then(e=>r(e.SubscribeRender))),SubscribeBlogs:t(()=>import("./blocks/service/SubscribeBlogs/render.js").then(e=>r(e.SubscribeBlogsRender)))},l=Object.fromEntries(Object.entries(p).map(([e,n])=>[e,o=>i(n,{...o})]));export{l as LAZY_DRAWS};
1
+ import{jsx as i}from"react/jsx-runtime";import t from"next/dynamic";import{SITE_FOOTER_TYPE as d,SITE_HEADER_TYPE as m}from"efficient-web-builder/format/lib/document/section-groups";function r(e){return function(n){return e.render(n)}}const p={Banner:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Banner/render").then(e=>r(e.BannerRender))),Breadcrumb:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Breadcrumb/render").then(e=>r(e.BreadcrumbRender))),ButtonBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ButtonBlock/render").then(e=>r(e.ButtonBlockRender))),Cards:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Cards/render").then(e=>r(e.CardsRender))),CategoryBar:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/CategoryBar/render").then(e=>r(e.CategoryBarRender))),Chart:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Chart/render").then(e=>r(e.ChartRender))),ContactLocations:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ContactLocations/render").then(e=>r(e.ContactLocationsRender))),CustomHTML:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/CustomHTML/render").then(e=>r(e.CustomHTMLRender))),Divider:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Divider/render").then(e=>r(e.DividerRender))),DocBody:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocBody/render").then(e=>r(e.DocBodyRender))),DocMasthead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocMasthead/render").then(e=>r(e.DocMastheadRender))),DocMetaCards:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocMetaCards/render").then(e=>r(e.DocMetaCardsRender))),DocTabs:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/DocTabs/render").then(e=>r(e.DocTabsRender))),Eyebrow:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Eyebrow/render").then(e=>r(e.EyebrowRender))),FAQ:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/FAQ/render").then(e=>r(e.FAQRender))),FeaturedCover:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/FeaturedCover/render").then(e=>r(e.FeaturedCoverRender))),Flex:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Flex/render").then(e=>r(e.FlexRender))),Footprint:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Footprint/render").then(e=>r(e.FootprintRender))),Grid:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Grid/render").then(e=>r(e.GridRender))),Heading:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Heading/render").then(e=>r(e.HeadingRender))),Hero:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Hero/render").then(e=>r(e.HeroRender))),HeroGroup:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroGroup/render").then(e=>r(e.HeroGroupRender))),HeroSingle:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroSingle/render").then(e=>r(e.HeroSingleRender))),HeroSlide:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/HeroSlide/render").then(e=>r(e.HeroSlideRender))),ImageBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ImageBlock/render").then(e=>r(e.ImageBlockRender))),Integrations:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Integrations/render").then(e=>r(e.IntegrationsRender))),IntroBleed:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/IntroBleed/render").then(e=>r(e.IntroBleedRender))),Countdown:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Countdown/render").then(e=>r(e.CountdownRender))),KeyFeatures:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/KeyFeatures/render").then(e=>r(e.KeyFeaturesRender))),LogoBlock:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/LogoBlock/render").then(e=>r(e.LogoBlockRender))),Logos:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Logos/render").then(e=>r(e.LogosRender))),LongRead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/LongRead/render").then(e=>r(e.LongReadRender))),Manifesto:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Manifesto/render").then(e=>r(e.ManifestoRender))),Masthead:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Masthead/render").then(e=>r(e.MastheadRender))),Mockup:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Mockup/render").then(e=>r(e.MockupRender))),OrderSummary:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/OrderSummary/render").then(e=>r(e.OrderSummaryRender))),ParagraphsA:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ParagraphsA/render").then(e=>r(e.ParagraphsARender))),PaymentBadges:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/PaymentBadges/render").then(e=>r(e.PaymentBadgesRender))),PostCard:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/PostCard/render").then(e=>r(e.PostCardRender))),ProcessSteps:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/ProcessSteps/render").then(e=>r(e.ProcessStepsRender))),Prose:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Prose/render").then(e=>r(e.ProseRender))),SectionHeader:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/SectionHeader/render").then(e=>r(e.SectionHeaderRender))),Series:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Series/render").then(e=>r(e.SeriesRender))),Spacer:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Spacer/render").then(e=>r(e.SpacerRender))),SpecStrip:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/SpecStrip/render").then(e=>r(e.SpecStripRender))),Split:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Split/render").then(e=>r(e.SplitRender))),Stats:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Stats/render").then(e=>r(e.StatsRender))),StatsParagraph:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/StatsParagraph/render").then(e=>r(e.StatsParagraphRender))),Testimonials:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Testimonials/render").then(e=>r(e.TestimonialsRender))),Text:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Text/render").then(e=>r(e.TextRender))),Ticker:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Ticker/render").then(e=>r(e.TickerRender))),Timeline:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/Timeline/render").then(e=>r(e.TimelineRender))),TimelineTrack:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/TimelineTrack/render").then(e=>r(e.TimelineTrackRender))),TitleWithButtons:t(()=>import("efficient-web-builder/render/lib/document/blocks/general/TitleWithButtons/render").then(e=>r(e.TitleWithButtonsRender))),AccountBlock:t(()=>import("./blocks/commerce/AccountBlock/render.js").then(e=>r(e.AccountBlockRender))),AlloyWheelsListing:t(()=>import("./blocks/commerce/AlloyWheelsListing/render.js").then(e=>r(e.AlloyWheelsListingRender))),BundleOffer:t(()=>import("./blocks/commerce/BundleOffer/render.js").then(e=>r(e.BundleOfferRender))),CartBlock:t(()=>import("./blocks/commerce/CartBlock/render.js").then(e=>r(e.CartBlockRender))),CatalogFilterBar:t(()=>import("./blocks/commerce/CatalogFilterBar/render.js").then(e=>r(e.CatalogFilterBarRender))),CheckoutCTA:t(()=>import("./blocks/commerce/CheckoutCTA/render.js").then(e=>r(e.CheckoutCTARender))),CollectionCard:t(()=>import("./blocks/commerce/CollectionCard/render.js").then(e=>r(e.CollectionCardRender))),Collections:t(()=>import("./blocks/commerce/Collections/render.js").then(e=>r(e.CollectionsRender))),CompatibleTyres:t(()=>import("./blocks/commerce/CompatibleTyres/render.js").then(e=>r(e.CompatibleTyresRender))),CountrySwitchBlock:t(()=>import("./blocks/commerce/CountrySwitchBlock/render.js").then(e=>r(e.CountrySwitchBlockRender))),DeliveryOptions:t(()=>import("./blocks/commerce/DeliveryOptions/render.js").then(e=>r(e.DeliveryOptionsRender))),DetailRows:t(()=>import("./blocks/commerce/DetailRows/render.js").then(e=>r(e.DetailRowsRender))),EuTyreLabel:t(()=>import("./blocks/commerce/EuTyreLabel/render.js").then(e=>r(e.EuTyreLabelRender))),EuTyreLabelBlock:t(()=>import("./blocks/commerce/EuTyreLabelBlock/render.js").then(e=>r(e.EuTyreLabelBlockRender))),FitmentFinder:t(()=>import("./blocks/commerce/FitmentFinder/render.js").then(e=>r(e.FitmentFinderRender))),FitmentTable:t(()=>import("./blocks/commerce/FitmentTable/render.js").then(e=>r(e.FitmentTableRender))),Gallery:t(()=>import("./blocks/commerce/Gallery/render.js").then(e=>r(e.GalleryRender))),GalleryB:t(()=>import("./blocks/commerce/GalleryB/render.js").then(e=>r(e.GalleryBRender))),GalleryItem:t(()=>import("./blocks/commerce/GalleryItem/render.js").then(e=>r(e.GalleryItemRender))),Header:t(()=>import("./blocks/commerce/Header/render.js").then(e=>r(e.HeaderRender))),ProductGrid:t(()=>import("./blocks/commerce/ProductGrid/render.js").then(e=>r(e.ProductGridRender))),ProductGallery:t(()=>import("./blocks/commerce/ProductGallery/render.js").then(e=>r(e.ProductGalleryRender))),ProductHero:t(()=>import("./blocks/commerce/ProductHero/render.js").then(e=>r(e.ProductHeroRender))),ProductRef:t(()=>import("./blocks/commerce/ProductRef/render.js").then(e=>r(e.ProductRefRender))),RelatedProducts:t(()=>import("./blocks/commerce/RelatedProducts/render.js").then(e=>r(e.RelatedProductsRender))),SearchBlock:t(()=>import("./blocks/commerce/SearchBlock/render.js").then(e=>r(e.SearchBlockRender))),SpecTable:t(()=>import("./blocks/commerce/SpecTable/render.js").then(e=>r(e.SpecTableRender))),ThemeSwitchBlock:t(()=>import("./blocks/commerce/ThemeSwitchBlock/render.js").then(e=>r(e.ThemeSwitchBlockRender))),TyreFitment:t(()=>import("./blocks/commerce/TyreFitment/render.js").then(e=>r(e.TyreFitmentRender))),TyreSizes:t(()=>import("./blocks/commerce/TyreSizes/render.js").then(e=>r(e.TyreSizesRender))),AppointmentBooking:t(()=>import("./blocks/service/AppointmentBooking/render.js").then(e=>r(e.AppointmentBookingRender))),BookingBox:t(()=>import("./blocks/service/BookingBox/render.js").then(e=>r(e.BookingBoxRender))),ContactRouting:t(()=>import("./blocks/service/ContactRouting/render.js").then(e=>r(e.ContactRoutingRender))),Events:t(()=>import("./blocks/service/Events/render.js").then(e=>r(e.EventsRender))),Footer:t(()=>import("./blocks/service/Footer/render.js").then(e=>r(e.FooterRender))),FooterDivider:t(()=>import("./blocks/service/FooterDivider/render.js").then(e=>r(e.FooterDividerRender))),FooterEmailSignup:t(()=>import("./blocks/service/FooterEmailSignup/render.js").then(e=>r(e.FooterEmailSignupRender))),FooterGroup:t(()=>import("./blocks/service/FooterGroup/render.js").then(e=>r(e.FooterGroupRender))),FooterLogo:t(()=>import("./blocks/service/FooterLogo/render.js").then(e=>r(e.FooterLogoRender))),FooterMenu:t(()=>import("./blocks/service/FooterMenu/render.js").then(e=>r(e.FooterMenuRender))),FooterSocial:t(()=>import("./blocks/service/FooterSocial/render.js").then(e=>r(e.FooterSocialRender))),FooterPayment:t(()=>import("./blocks/service/FooterPayment/render.js").then(e=>r(e.FooterPaymentRender))),FooterText:t(()=>import("./blocks/service/FooterText/render.js").then(e=>r(e.FooterTextRender))),Form:t(()=>import("./blocks/service/Form/render.js").then(e=>r(e.FormRender))),LegalLineBlock:t(()=>import("./blocks/service/LegalLineBlock/render.js").then(e=>r(e.LegalLineBlockRender))),OpeningHours:t(()=>import("./blocks/service/OpeningHours/render.js").then(e=>r(e.OpeningHoursRender))),RateTable:t(()=>import("./blocks/service/RateTable/render.js").then(e=>r(e.RateTableRender))),MessagingCards:t(()=>import("./blocks/service/MessagingCards/render.js").then(e=>r(e.MessagingCardsRender))),FooterMessaging:t(()=>import("./blocks/service/FooterMessaging/render.js").then(e=>r(e.FooterMessagingRender))),ContactCards:t(()=>import("./blocks/service/ContactCards/render.js").then(e=>r(e.ContactCardsRender))),RatingBlock:t(()=>import("./blocks/service/RatingBlock/render.js").then(e=>r(e.RatingBlockRender))),ReviewForm:t(()=>import("./blocks/service/ReviewForm/render.js").then(e=>r(e.ReviewFormRender))),Reviews:t(()=>import("./blocks/service/Reviews/render.js").then(e=>r(e.ReviewsRender))),[d]:t(()=>import("./blocks/service/SiteFooter/render.js").then(e=>r(e.SiteFooterRender))),[m]:t(()=>import("./blocks/service/SiteHeader/render.js").then(e=>r(e.SiteHeaderRender))),SubmitBox:t(()=>import("./blocks/service/SubmitBox/render.js").then(e=>r(e.SubmitBoxRender))),SubmitBuild:t(()=>import("./blocks/service/SubmitBuild/render.js").then(e=>r(e.SubmitBuildRender))),Subscribe:t(()=>import("./blocks/service/Subscribe/render.js").then(e=>r(e.SubscribeRender))),SubscribeBlogs:t(()=>import("./blocks/service/SubscribeBlogs/render.js").then(e=>r(e.SubscribeBlogsRender)))},l=Object.fromEntries(Object.entries(p).map(([e,o])=>[e,n=>i(o,{...n})]));export{l as LAZY_DRAWS};
@@ -1,4 +1,6 @@
1
1
  import type { Config } from "efficient-easel/blocks";
2
2
  import "./slot-seeds.js";
3
+ import "./card-templates.js";
4
+ import "./section-to-box-rows-reviews.js";
3
5
  export declare function renderConfig(): Config;
4
6
  export declare function headerRenderConfig(): Config;
@@ -1 +1 @@
1
- import{Fragment as u,jsx as g}from"react/jsx-runtime";import{generalRenderMetas as E}from"efficient-web-builder/format/lib/document/blocks/general/metas";import{finishRenderRegistry as h}from"efficient-web-builder/render/lib/document/render-registry";import{buildBlockCategories as R}from"efficient-web-builder/format/lib/document/section-catalog";import{SITE_HEADER_TYPE as m}from"efficient-web-builder/format/lib/document/section-groups";import"./slot-seeds.js";import{COMMERCE_METAS as y}from"./blocks/commerce/metas.js";import{SERVICE_METAS as S}from"./blocks/service/metas.js";import _ from"./blocks/text-part-shapes.json";import{addPageBlocksFromFooter as b}from"./footer-page-blocks.js";import{LAZY_DRAWS as l}from"./lazy-draws.js";import{drawPublishedStorefrontRoot as T}from"./storefront-root.js";const j=_,k=(o,r)=>{const t=j[o];return{...r,...t?{textParts:t}:null}};let f=null;function a(){if(f)return f;const o={},r=E();for(const e of Object.keys(r))o[e]={...r[e],render:l[e]};const t={...y,...S};for(const e of Object.keys(t))o[e]=k(e,{...t[e],render:l[e]});b(o);const n={root:{render:T},categories:R(),components:o};return h(n),f=n,n}function x(o=a()){const r=o.components,t=Object.keys(r),n=new Set([m]),e=[m];for(;e.length;){const p=e.shift();for(const i of Object.values(r[p]?.fields??{})){if(i?.type!=="slot")continue;const d=i.allow??t.filter(s=>!i.disallow?.includes(s));for(const s of d)n.has(s)||!(s in r)||(n.add(s),e.push(s))}}return[...n]}let c=null;function Y(){if(c)return c;const o=a(),r=o.components;return c={...o,root:{render:({children:t})=>g(u,{children:t})},components:Object.fromEntries(x(o).map(t=>[t,r[t]]))},c}export{Y as headerRenderConfig,a as renderConfig};
1
+ import{Fragment as u,jsx as g}from"react/jsx-runtime";import{generalRenderMetas as E}from"efficient-web-builder/format/lib/document/blocks/general/metas";import{finishRenderRegistry as h}from"efficient-web-builder/render/lib/document/render-registry";import{buildBlockCategories as R}from"efficient-web-builder/format/lib/document/section-catalog";import{SITE_HEADER_TYPE as m}from"efficient-web-builder/format/lib/document/section-groups";import"./slot-seeds.js";import"./card-templates.js";import"./section-to-box-rows-reviews.js";import{COMMERCE_METAS as y}from"./blocks/commerce/metas.js";import{SERVICE_METAS as S}from"./blocks/service/metas.js";import _ from"./blocks/text-part-shapes.json";import{addPageBlocksFromFooter as b}from"./footer-page-blocks.js";import{LAZY_DRAWS as l}from"./lazy-draws.js";import{drawPublishedStorefrontRoot as T}from"./storefront-root.js";const j=_,k=(o,r)=>{const t=j[o];return{...r,...t?{textParts:t}:null}};let f=null;function p(){if(f)return f;const o={},r=E();for(const e of Object.keys(r))o[e]={...r[e],render:l[e]};const t={...y,...S};for(const e of Object.keys(t))o[e]=k(e,{...t[e],render:l[e]});b(o);const n={root:{render:T},categories:R(),components:o};return h(n),f=n,n}function x(o=p()){const r=o.components,t=Object.keys(r),n=new Set([m]),e=[m];for(;e.length;){const a=e.shift();for(const c of Object.values(r[a]?.fields??{})){if(c?.type!=="slot")continue;const d=c.allow??t.filter(s=>!c.disallow?.includes(s));for(const s of d)n.has(s)||!(s in r)||(n.add(s),e.push(s))}}return[...n]}let i=null;function L(){if(i)return i;const o=p(),r=o.components;return i={...o,root:{render:({children:t})=>g(u,{children:t})},components:Object.fromEntries(x(o).map(t=>[t,r[t]]))},i}export{L as headerRenderConfig,p as renderConfig};
@@ -0,0 +1 @@
1
+ import{SECTION_BOX_SLOT as i,SECTION_BOX_TYPE as n,headParts as l,registerSectionToBox as c}from"efficient-web-builder/render/lib/sections/section-to-box";import{DIM as a,DROP_COMMON as g,DROP_SIDE_PADDING as h,INNER_BOX as o,SAME_KEYS as P,SECTION_BOX as m,TEXT as e,headingCaseOf as T,wrapperPad as y,wrapperPadKeys as S}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{CARD_ROW_FIELD_PROP as O}from"efficient-web-builder/format/lib/content/card-template";const p={top:84,bottom:0,topPhone:84,bottomPhone:0},[x,_]=l("Testimonials"),s=(t,r,d)=>({type:"Text",props:{...r,[O]:t,_partStyles:{text:d}}}),b={type:n,props:{...o,name:"Card",gap:20,sectionPaddingTop:36,sectionPaddingBottom:36,sectionPaddingLeft:36,sectionPaddingRight:36,sectionPaddingTopPhone:28,sectionPaddingBottomPhone:28,sectionPaddingLeftPhone:28,sectionPaddingRightPhone:28,sectionAccent:0},slots:{[i]:[{type:"Text",props:{...e,text:"“",_partStyles:{text:{textStyle:"heading-2",color:"accent",lineHeight:1}}}},s("quote",a,{size:16,lineHeight:1.6}),{type:n,props:{...o,name:"Name",gap:4,sectionPaddingTop:20,sectionBorder:{top:1}},slots:{[i]:[s("name",e,{textStyle:"body-5",weight:500,case:"upper",letterSpacing:.04}),s("role",a,{textStyle:"body-5"})]}}]}},w={name:"Testimonials",on:!1,boxProps:t=>({...m,direction:"column",gap:44,sectionBorder:{top:1},...y(t,p)}),box:[...P,...S(p)],parts:[{kind:"group",name:"Heading",props:{...o,gap:16},parts:[{...x,props:e},{..._,props:e,style:{textStyle:"heading-2",lineHeight:1,letterSpacing:-.02}}]},{kind:"core",as:"Reviews",keep:["items","columns"],slots:{template:[b]}}],site:T("title"),drop:{...g,...h,eyebrowLook:"the eyebrow Text wears the plain eyebrow's start look (Testimonials' default); a stored `filled` look needs a filled Text look",headPlacement:"the head is the Text blocks above the Reviews block, which is always own-box here"}};c({Testimonials:w});
@@ -1,7 +1,7 @@
1
1
  import { type PlpItem } from "../catalog/plp-item.js";
2
2
  import { type LinkFilters, type LinkPickerPage, type LinkPickerSetup as BuilderLinkPickerSetup } from "efficient-web-builder/format/lib/links/link-picker-setup";
3
3
  import { type LinkKind } from "efficient-web-builder/format/lib/links/page-link-rules";
4
- export { LINK_KINDS, anchorPath, linkPagePath, linkKindsFor, pageAnchors, pagePath, postPath, slugifyAnchor, wheelPath, type LinkKind, } from "efficient-web-builder/format/lib/links/page-link-rules";
4
+ export { LINK_KINDS, anchorPath, linkPagePath, linkKindsFor, pageAnchors, pagePath, postPath, wheelPath, type LinkKind, } from "efficient-web-builder/format/lib/links/page-link-rules";
5
5
  export declare function isSafeLink(url: string): boolean;
6
6
  export declare const BUILT_IN_LISTING_PATH = "/wheels";
7
7
  export declare const LISTING_PAGE_LABEL = "Products";
@@ -1 +1 @@
1
- import{isSafeLinkHref as A}from"efficient-shell/markup";import{itemKind as m,PLP_KIND_LABELS as x,PLP_KINDS as I,resolvePlpKinds as y}from"../catalog/plp-item.js";import{inferLinkKind as S,linkPickerSetup as F}from"efficient-web-builder/format/lib/links/link-picker-setup";import{pagePath as c,wheelPath as b}from"efficient-web-builder/format/lib/links/page-link-rules";import{buildPlpFacets as E,EMPTY_PLP_FILTERS as R,listingHiddenFacets as T,PLP_PARAM as g,PLP_TYPE_PARAM as P}from"../wheels/plp-filters.js";import{ALLOY_WHEELS_LISTING_TYPE as U}from"../wheels/plp-hydrate.js";import{LINK_KINDS as Z,anchorPath as ee,linkPagePath as te,linkKindsFor as ne,pageAnchors as re,pagePath as ie,postPath as se,slugifyAnchor as oe,wheelPath as le}from"efficient-web-builder/format/lib/links/page-link-rules";function v(e){return A(e.trim())}const u="/wheels",p="Products";function N(e,t){return t>1?`${p} · ${e}`:p}function h(...e){for(const t of e){const n=(t?.content??[]).find(r=>r?.type===U);if(n)return n.props??{}}return null}function d(...e){return h(...e)!==null}function C(e,t){const n=e.filter(r=>d(...r.docs)).map(r=>c(r.slug));return n.length===0&&t.fallback?[u]:n}const L=[P,...Object.entries(g).filter(([e])=>e!=="tyreSizes").map(([,e])=>e)];function k(e){const t=e.indexOf("#"),n=t===-1?"":e.slice(t),r=t===-1?e:e.slice(0,t),s=r.indexOf("?");return{path:s===-1?r:r.slice(0,s),query:s===-1?"":r.slice(s+1),hash:n}}function K(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return e}}function O(e){const t=new URLSearchParams(k(e).query);for(const n of L){const r=t.get(n);if(r)return{param:n,value:r}}return null}function _(e,t){const{path:n,query:r,hash:s}=k(e),l=r.split("&").filter(o=>o&&!L.includes(K(o.split("=")[0])));return t?.value&&l.push(`${encodeURIComponent(t.param)}=${encodeURIComponent(t.value)}`),`${n}${l.length?`?${l.join("&")}`:""}${s}`}function $(e,t){const n=_(e,null);return t.includes(n)?n:e}function w(e,t,n=[]){return S(e,t,{listingPaths:n,targetOf:r=>$(r,n)})}function J(e){return Array.isArray(e)?e.filter(t=>typeof t?.kind=="string"&&typeof t.field_key=="string").map(t=>({kind:t.kind,fieldKey:t.field_key,...typeof t.filter=="boolean"?{filter:t.filter}:{},filterOrder:t.filter_order??null})):[]}const D="Product type",Y="AUD";function G(e,t){const n=t.listing??{},r=y(n.kinds),s=e.filter(i=>r.includes(m(i))),l=T(n),o=E(s,R,Y,r,t.fieldUsage).filter(i=>!l.includes(i.key)).map(i=>({param:g[i.key],label:i.label,values:i.options.filter(f=>!f.value.includes(",")).map(f=>({value:f.value,label:f.label}))})).filter(i=>i.values.length>0),a=I.filter(i=>r.includes(i)&&s.some(f=>m(f)===i));return a.length>1&&o.unshift({param:P,label:D,values:a.map(i=>({value:i,label:x[i]}))}),o}function q(e){return t=>{const n=C(t,{fallback:e.offersCommerce}),r=t.filter(s=>d(...s.docs)).length;return{listingPaths:n,pageOptions:s=>{const l=s.map(o=>{const a=t.find(i=>c(i.slug)===o.value);return a&&d(...a.docs)?{...o,label:N(a.title,r)}:o});return r===0&&e.offersCommerce&&!l.some(o=>o.value===u)&&l.push({value:u,label:p}),l},filtersFor:s=>{if(!n.includes(s))return null;const l=t.find(o=>c(o.slug)===s);return G(e.catalogue,{listing:l?h(...l.docs):null,fieldUsage:e.fieldUsage})},readFilter:O,withFilter:_}}}function Q(e){const t=q({catalogue:e.catalogue,fieldUsage:e.fieldUsage,offersCommerce:e.offers.offersCommerce})(e.pages),n=F({pages:e.pages,posts:e.posts,products:e.products.map(r=>({href:b(r.slug),name:r.name||r.slug})),offers:e.offers},t);return{...n,rules:{...n.rules,isSafe:v},filtersFor:n.filtersFor??(()=>null)}}export{u as BUILT_IN_LISTING_PATH,Z as LINK_KINDS,L as LISTING_FILTER_PARAMS,p as LISTING_PAGE_LABEL,D as PRODUCT_TYPE_FILTER_LABEL,ee as anchorPath,J as fieldUsageFromAdminRows,w as inferLinkKind,d as isProductListingPage,v as isSafeLink,ne as linkKindsFor,te as linkPagePath,Q as linkPickerSetup,G as listingFilterFields,h as listingNode,N as listingPageLabel,$ as listingTarget,re as pageAnchors,ie as pagePath,se as postPath,C as productListingPaths,O as readListingFilter,oe as slugifyAnchor,q as storefrontLinkFilters,le as wheelPath,_ as withListingFilter};
1
+ import{isSafeLinkHref as x}from"efficient-shell/markup";import{itemKind as m,PLP_KIND_LABELS as A,PLP_KINDS as I,resolvePlpKinds as y}from"../catalog/plp-item.js";import{inferLinkKind as S,linkPickerSetup as F}from"efficient-web-builder/format/lib/links/link-picker-setup";import{pagePath as c,wheelPath as b}from"efficient-web-builder/format/lib/links/page-link-rules";import{buildPlpFacets as E,EMPTY_PLP_FILTERS as R,listingHiddenFacets as T,PLP_PARAM as g,PLP_TYPE_PARAM as P}from"../wheels/plp-filters.js";import{ALLOY_WHEELS_LISTING_TYPE as U}from"../wheels/plp-hydrate.js";import{LINK_KINDS as Z,anchorPath as ee,linkPagePath as te,linkKindsFor as ne,pageAnchors as re,pagePath as ie,postPath as se,wheelPath as oe}from"efficient-web-builder/format/lib/links/page-link-rules";function v(e){return x(e.trim())}const u="/wheels",p="Products";function N(e,t){return t>1?`${p} · ${e}`:p}function h(...e){for(const t of e){const n=(t?.content??[]).find(r=>r?.type===U);if(n)return n.props??{}}return null}function d(...e){return h(...e)!==null}function C(e,t){const n=e.filter(r=>d(...r.docs)).map(r=>c(r.slug));return n.length===0&&t.fallback?[u]:n}const L=[P,...Object.entries(g).filter(([e])=>e!=="tyreSizes").map(([,e])=>e)];function k(e){const t=e.indexOf("#"),n=t===-1?"":e.slice(t),r=t===-1?e:e.slice(0,t),s=r.indexOf("?");return{path:s===-1?r:r.slice(0,s),query:s===-1?"":r.slice(s+1),hash:n}}function K(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return e}}function O(e){const t=new URLSearchParams(k(e).query);for(const n of L){const r=t.get(n);if(r)return{param:n,value:r}}return null}function _(e,t){const{path:n,query:r,hash:s}=k(e),l=r.split("&").filter(o=>o&&!L.includes(K(o.split("=")[0])));return t?.value&&l.push(`${encodeURIComponent(t.param)}=${encodeURIComponent(t.value)}`),`${n}${l.length?`?${l.join("&")}`:""}${s}`}function $(e,t){const n=_(e,null);return t.includes(n)?n:e}function w(e,t,n=[]){return S(e,t,{listingPaths:n,targetOf:r=>$(r,n)})}function J(e){return Array.isArray(e)?e.filter(t=>typeof t?.kind=="string"&&typeof t.field_key=="string").map(t=>({kind:t.kind,fieldKey:t.field_key,...typeof t.filter=="boolean"?{filter:t.filter}:{},filterOrder:t.filter_order??null})):[]}const D="Product type",Y="AUD";function G(e,t){const n=t.listing??{},r=y(n.kinds),s=e.filter(i=>r.includes(m(i))),l=T(n),o=E(s,R,Y,r,t.fieldUsage).filter(i=>!l.includes(i.key)).map(i=>({param:g[i.key],label:i.label,values:i.options.filter(f=>!f.value.includes(",")).map(f=>({value:f.value,label:f.label}))})).filter(i=>i.values.length>0),a=I.filter(i=>r.includes(i)&&s.some(f=>m(f)===i));return a.length>1&&o.unshift({param:P,label:D,values:a.map(i=>({value:i,label:A[i]}))}),o}function q(e){return t=>{const n=C(t,{fallback:e.offersCommerce}),r=t.filter(s=>d(...s.docs)).length;return{listingPaths:n,pageOptions:s=>{const l=s.map(o=>{const a=t.find(i=>c(i.slug)===o.value);return a&&d(...a.docs)?{...o,label:N(a.title,r)}:o});return r===0&&e.offersCommerce&&!l.some(o=>o.value===u)&&l.push({value:u,label:p}),l},filtersFor:s=>{if(!n.includes(s))return null;const l=t.find(o=>c(o.slug)===s);return G(e.catalogue,{listing:l?h(...l.docs):null,fieldUsage:e.fieldUsage})},readFilter:O,withFilter:_}}}function Q(e){const t=q({catalogue:e.catalogue,fieldUsage:e.fieldUsage,offersCommerce:e.offers.offersCommerce})(e.pages),n=F({pages:e.pages,posts:e.posts,products:e.products.map(r=>({href:b(r.slug),name:r.name||r.slug})),offers:e.offers},t);return{...n,rules:{...n.rules,isSafe:v},filtersFor:n.filtersFor??(()=>null)}}export{u as BUILT_IN_LISTING_PATH,Z as LINK_KINDS,L as LISTING_FILTER_PARAMS,p as LISTING_PAGE_LABEL,D as PRODUCT_TYPE_FILTER_LABEL,ee as anchorPath,J as fieldUsageFromAdminRows,w as inferLinkKind,d as isProductListingPage,v as isSafeLink,ne as linkKindsFor,te as linkPagePath,Q as linkPickerSetup,G as listingFilterFields,h as listingNode,N as listingPageLabel,$ as listingTarget,re as pageAnchors,ie as pagePath,se as postPath,C as productListingPaths,O as readListingFilter,q as storefrontLinkFilters,oe as wheelPath,_ as withListingFilter};
@@ -0,0 +1,5 @@
1
+ export declare const QR_QUIET = 4;
2
+ export declare function qrPath(text: string): {
3
+ path: string;
4
+ size: number;
5
+ } | null;
@@ -0,0 +1 @@
1
+ import{create as c}from"qrcode/lib/core/qrcode";const s=4;function h(l){if(!l)return null;let r;try{({modules:r}=c(l,{errorCorrectionLevel:"M"}))}catch{return null}const o=r.size;let i="";for(let e=0;e<o;e++){let t=0;for(;t<o;){if(!r.get(e,t)){t++;continue}const n=t;for(;t<o&&r.get(e,t);)t++;i+=`M${n} ${e}h${t-n}v1H${n}z`}}return{path:i,size:o}}export{s as QR_QUIET,h as qrPath};
@@ -0,0 +1,45 @@
1
+ import type { SourceRow } from "efficient-web-builder/format/lib/content/block-sources";
2
+ export declare const MESSAGING_SOURCE = "site-messaging";
3
+ export declare const MESSAGING_APPS: readonly ["wechat", "telegram", "whatsapp", "line"];
4
+ export type MessagingApp = (typeof MESSAGING_APPS)[number];
5
+ export interface MessagingChannel {
6
+ app: MessagingApp;
7
+ name: string;
8
+ handle: string;
9
+ href: string;
10
+ qr: string;
11
+ }
12
+ export declare const MESSAGING_WORDS: {
13
+ open: (name: string) => string;
14
+ opensApp: string;
15
+ copyId: string;
16
+ copied: string;
17
+ scanWith: (name: string) => string;
18
+ searchFor: (name: string) => string;
19
+ qrLabel: (name: string, handle: string) => string;
20
+ };
21
+ export declare const MESSAGING_ACTION = "inline-flex items-center gap-1.5 text-[14px] font-medium text-accent underline-offset-4 hover:underline";
22
+ export declare function messagingChannels(rows: readonly SourceRow[]): MessagingChannel[];
23
+ export declare const CONTACTS_MAX = 8;
24
+ export declare const CONTACT_KINDS: readonly ["phone", "email", "whatsapp", "line", "telegram", "wechat", "kakaotalk"];
25
+ export type ContactKind = (typeof CONTACT_KINDS)[number];
26
+ export declare const CONTACT_KIND_NAMES: Record<ContactKind, string>;
27
+ export interface ContactEntry {
28
+ name?: unknown;
29
+ kind?: unknown;
30
+ value?: unknown;
31
+ }
32
+ export interface ContactView {
33
+ name: string;
34
+ kind: ContactKind;
35
+ way: string;
36
+ handle: string;
37
+ href: string;
38
+ qr: string;
39
+ }
40
+ export declare function readTelegram(typed: string): string | null;
41
+ export declare function readWhatsApp(typed: string): string | null;
42
+ export declare function readLine(typed: string): string | null;
43
+ export declare function formatPhone(value: string): string;
44
+ export declare function contactView(entry: ContactEntry): ContactView | null;
45
+ export declare function contactViews(raw: unknown): ContactView[];
@@ -0,0 +1 @@
1
+ import{phoneHref as l}from"efficient-web-builder/format/lib/links/phone-href";const G="site-messaging",p=["wechat","telegram","whatsapp","line"],D={open:t=>`Open ${t}`,opensApp:"(opens the app)",copyId:"Copy ID",copied:"Copied",scanWith:t=>`Scan with ${t}`,searchFor:t=>`Search for this ID in ${t}`,qrLabel:(t,e)=>e?`${t} QR code, ${e}`:`${t} QR code`},L="inline-flex items-center gap-1.5 text-[14px] font-medium text-accent underline-offset-4 hover:underline",h=t=>typeof t=="string"&&p.includes(t),a=t=>typeof t=="string"&&/^https?:\/\/\S+$/i.test(t.trim())?t.trim():"",o=t=>typeof t=="string"?t.trim():"";function R(t){const e=new Set,s=[];for(const n of t){if(!h(n.app)||e.has(n.app))continue;const r={app:n.app,name:o(n.name)||f[n.app],handle:o(n.handle),href:n.app==="wechat"?"":a(n.href),qr:a(n.qr)};!r.handle&&!r.qr||(e.add(n.app),s.push(r))}return s}const f={wechat:"WeChat",telegram:"Telegram",whatsapp:"WhatsApp",line:"LINE"},m=8,u=["phone","email","whatsapp","line","telegram","wechat","kakaotalk"],d={phone:"Phone",email:"Email",whatsapp:"WhatsApp",line:"LINE",telegram:"Telegram",wechat:"WeChat",kakaotalk:"KakaoTalk"},$=200,A=40,g=/^[A-Za-z][A-Za-z0-9_]{3,31}$/,w=/^\+[1-9][0-9]{7,14}$/,S=/^@?[a-z0-9._-]{3,20}$/,x=/^[A-Za-z0-9_-]{2,40}$/,E=/^[A-Za-z0-9._-]{2,40}$/,N=/^[^\s@<>()",;:]+@[^\s@<>()",;:]+\.[^\s@<>()",;:]{2,}$/;function _(t){const e=t.trim().replace(/^(?:https?:\/\/)?(?:www\.)?(?:t\.me|telegram\.me|telegram\.dog)\//i,"").replace(/^@/,"").replace(/\/+$/,"");return g.test(e)?e:null}function I(t){const e=t.trim(),s=e.match(/^(?:https?:\/\/)?(?:www\.)?wa\.me\/(\d+)\/?$/i);let n=s?`+${s[1]}`:e.replace(/[\s().\-/]/g,"");return n.startsWith("00")&&(n=`+${n.slice(2)}`),n=n.replace(/^\+610/,"+61"),/^0[2-478]\d{8}$/.test(n)?n=`+61${n.slice(1)}`:/^61[2-478]\d{8}$/.test(n)&&(n=`+${n}`),w.test(n)?n:null}function k(t){const e=t.trim(),s=e.match(/^(?:https?:\/\/)?line\.me\/(?:R\/)?ti\/p\/(.+?)\/?$/i);let n=e;if(s){const r=s[1];if(r.startsWith("~"))n=r.slice(1);else if(/^(?:@|%40)/i.test(r))n=`@${r.replace(/^(?:@|%40)/i,"")}`;else return null}return n=n.toLowerCase(),S.test(n)?n:null}function M(t){const e=t.trim().replace(/\s+/g," ");if(e.length>40||!/^\+?[\d\s().-]+$/.test(e))return null;const s=e.replace(/\D/g,"").length;return s>=8&&s<=15?e:null}function c(t){let e=t.replace(/\D/g,"");if(t.trim().startsWith("+")){if(!e.startsWith("61"))return t.trim();e=`0${e.slice(2)}`}return/^04\d{8}$/.test(e)?`${e.slice(0,4)} ${e.slice(4,7)} ${e.slice(7)}`:/^0[2378]\d{8}$/.test(e)?`(${e.slice(0,2)}) ${e.slice(2,6)} ${e.slice(6)}`:t.trim()}const T=t=>t.startsWith("@")?`https://line.me/R/ti/p/%40${t.slice(1)}`:`https://line.me/ti/p/~${t}`,C=t=>typeof t=="string"&&u.includes(t);function W(t){if(!C(t.kind)||typeof t.value!="string")return null;const e=t.value;if(!e.trim()||e.length>$)return null;const s=t.kind,n={name:typeof t.name=="string"?t.name.trim().slice(0,A):"",kind:s,way:d[s]};switch(s){case"phone":{const r=M(e);return r?{...n,handle:c(r),href:l(r)??"",qr:""}:null}case"email":{const r=e.trim();return r.length<=120&&N.test(r)?{...n,handle:r,href:`mailto:${r}`,qr:""}:null}case"whatsapp":{const r=I(e);if(!r)return null;const i=`https://wa.me/${r.slice(1)}`;return{...n,handle:c(r),href:i,qr:i}}case"telegram":{const r=_(e);if(!r)return null;const i=`https://t.me/${r}`;return{...n,handle:`@${r}`,href:i,qr:i}}case"line":{const r=k(e);if(!r)return null;const i=T(r);return{...n,handle:r,href:i,qr:i}}case"wechat":{const r=e.trim();return x.test(r)?{...n,handle:r,href:"",qr:""}:null}case"kakaotalk":{const r=e.trim().replace(/^@/,"");return E.test(r)?{...n,handle:r,href:"",qr:""}:null}}}function O(t){return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!="object")return[];const s=W(e);return s?[s]:[]}).slice(0,m):[]}export{m as CONTACTS_MAX,u as CONTACT_KINDS,d as CONTACT_KIND_NAMES,L as MESSAGING_ACTION,p as MESSAGING_APPS,G as MESSAGING_SOURCE,D as MESSAGING_WORDS,W as contactView,O as contactViews,c as formatPhone,R as messagingChannels,k as readLine,_ as readTelegram,I as readWhatsApp};
@@ -0,0 +1 @@
1
+ export declare const PRODUCT_REVIEWS_SOURCE = "product-reviews";
@@ -0,0 +1 @@
1
+ const e="product-reviews";export{e as PRODUCT_REVIEWS_SOURCE};
@@ -1 +1 @@
1
- import{COLLECTIONS as u,collectionsForCatalog as p,siteProcesses as f,slugifyProcess as a}from"./collections.js";import{FOOTER_TYPE as i,HEADER_TYPE as m}from"efficient-easel/screen/lib/document/content-tree";import{CARD_IMAGE_BG_OFF as E}from"efficient-web-builder/format/lib/content/card-image-background";import{PAGE_WIDTH as C}from"efficient-web-builder/format/lib/content/page-width";import{DEFAULT_TITLE_SIZE as d}from"../sections/product-grid-title.js";const h="wheels",P="collection:",O={content:[],root:{},zones:{}};function T(){return{type:"CatalogFilterBar",props:{id:"CatalogFilterBar-wheels-seed",showProcess:!0,showLugs:!0,showPrice:!0,showCount:!0,showSort:!0}}}function g(t,e){const r=a(t);return{type:"ProductGrid",props:{id:`ProductGrid-wheels-${r}`,dynamic:!1,num:e,title:t,titleSize:d,padTop:100,description:"",linkText:"Explore the collection",linkHref:`/wheels/collections/${r}`,columns:4,showAll:!0,limit:8,imageBackground:E,spinOnHover:!0,source:{slug:`${P}${r}`,name:t,process:t},fullWidth:!0,pageWidth:C.default,products:[]}}}function _(t){const e=t?p(t):u;return[T(),...e.map(r=>g(r.key,r.num))]}function y(t){return t.every(e=>e?.type===m||e?.type===i)}function F(t,e,r){if(t!==h)return e;const n=e?.content??[];if(!y(n))return e;const s=_(r),o=n.findIndex(l=>l?.type===i),c=o===-1?[...n,...s]:[...n.slice(0,o),...s,...n.slice(o)];return{...e,content:c}}function I(t,e){const r=t?.content??[],n=f(e),s=r.map(o=>{const c=o?.props?.source;return o?.type==="CatalogFilterBar"?{...o,props:{...o.props,processOptions:n}}:o?.type!=="ProductGrid"||!c?.process||n.includes(c.process)?o:null}).filter(o=>o!==null);return{...t,content:s}}export{O as EMPTY_CATALOG_DATA,h as WHEELS_PAGE_SLUG,_ as buildCatalogSections,F as ensureWheelsCatalogSections,I as scopeCatalogSections};
1
+ import{slugify as u}from"efficient-shell/format";import{COLLECTIONS as p,collectionsForCatalog as f,siteProcesses as m}from"./collections.js";import{FOOTER_TYPE as c,HEADER_TYPE as a}from"efficient-easel/screen/lib/document/content-tree";import{CARD_IMAGE_BG_OFF as E}from"efficient-web-builder/format/lib/content/card-image-background";import{PAGE_WIDTH as C}from"efficient-web-builder/format/lib/content/page-width";import{DEFAULT_TITLE_SIZE as d}from"../sections/product-grid-title.js";const h="wheels",T="collection:",F={content:[],root:{},zones:{}};function g(){return{type:"CatalogFilterBar",props:{id:"CatalogFilterBar-wheels-seed",showProcess:!0,showLugs:!0,showPrice:!0,showCount:!0,showSort:!0}}}function P(t,e){const r=u(t);return{type:"ProductGrid",props:{id:`ProductGrid-wheels-${r}`,dynamic:!1,num:e,title:t,titleSize:d,padTop:100,description:"",linkText:"Explore the collection",linkHref:`/wheels/collections/${r}`,columns:4,showAll:!0,limit:8,imageBackground:E,spinOnHover:!0,source:{slug:`${T}${r}`,name:t,process:t},fullWidth:!0,pageWidth:C.default,products:[]}}}function _(t){const e=t?f(t):p;return[g(),...e.map(r=>P(r.key,r.num))]}function y(t){return t.every(e=>e?.type===a||e?.type===c)}function I(t,e,r){if(t!==h)return e;const n=e?.content??[];if(!y(n))return e;const s=_(r),o=n.findIndex(l=>l?.type===c),i=o===-1?[...n,...s]:[...n.slice(0,o),...s,...n.slice(o)];return{...e,content:i}}function S(t,e){const r=t?.content??[],n=m(e),s=r.map(o=>{const i=o?.props?.source;return o?.type==="CatalogFilterBar"?{...o,props:{...o.props,processOptions:n}}:o?.type!=="ProductGrid"||!i?.process||n.includes(i.process)?o:null}).filter(o=>o!==null);return{...t,content:s}}export{F as EMPTY_CATALOG_DATA,h as WHEELS_PAGE_SLUG,_ as buildCatalogSections,I as ensureWheelsCatalogSections,S as scopeCatalogSections};
@@ -1 +1 @@
1
- import{jsx as a,jsxs as f}from"react/jsx-runtime";import{Fragment as m}from"react";import g from"efficient-web-builder/render/components/RMark";import{slugify as S}from"efficient-web-builder/format/lib/slugify";const s=["FusionForge®","Precision Forged","Monoblock Cast"];function p(t){return S(t)}function u(t){const n=t.split("®");return n.length===1?t:n.map((e,o)=>f(m,{children:[e,o<n.length-1&&a(g,{})]},o))}const O=s.map((t,n)=>({key:t,num:String(n+1).padStart(2,"0"),title:u(t)}));function l(t){if(t.length===0)return[...s];const n=new Set(t.map(e=>e.process));return s.filter(e=>n.has(e))}function j(t){return l(t).map((n,e)=>({key:n,num:String(e+1).padStart(2,"0"),title:u(n)}))}function k(t){const n=l(t),e=t.map(r=>r.process).filter(r=>!!r&&!s.includes(r)),o=new Set,c=[];for(const r of[...n,...e]){const i=p(r);!i||o.has(i)||(o.add(i),c.push({key:r,slug:i,num:String(c.length+1).padStart(2,"0"),title:u(r)}))}return c}const y=Object.fromEntries(s.map(t=>[t,p(t)]));export{O as COLLECTIONS,y as COLLECTION_ANCHORS,j as collectionsForCatalog,k as siteCollections,l as siteProcesses,p as slugifyProcess};
1
+ import{jsx as a,jsxs as f}from"react/jsx-runtime";import{Fragment as m}from"react";import g from"efficient-web-builder/render/components/RMark";import{slugify as u}from"efficient-shell/format";const s=["FusionForge®","Precision Forged","Monoblock Cast"];function C(t){return u(t)}function p(t){const n=t.split("®");return n.length===1?t:n.map((e,o)=>f(m,{children:[e,o<n.length-1&&a(g,{})]},o))}const O=s.map((t,n)=>({key:t,num:String(n+1).padStart(2,"0"),title:p(t)}));function l(t){if(t.length===0)return[...s];const n=new Set(t.map(e=>e.process));return s.filter(e=>n.has(e))}function j(t){return l(t).map((n,e)=>({key:n,num:String(e+1).padStart(2,"0"),title:p(n)}))}function k(t){const n=l(t),e=t.map(r=>r.process).filter(r=>!!r&&!s.includes(r)),o=new Set,c=[];for(const r of[...n,...e]){const i=u(r);!i||o.has(i)||(o.add(i),c.push({key:r,slug:i,num:String(c.length+1).padStart(2,"0"),title:p(r)}))}return c}const y=Object.fromEntries(s.map(t=>[t,u(t)]));export{O as COLLECTIONS,y as COLLECTION_ANCHORS,j as collectionsForCatalog,k as siteCollections,l as siteProcesses,C as slugifyProcess};