efficient-storefront-blocks 0.91.0 → 0.93.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 (117) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/chunks/{EditorPreviewCheckout-NFLTZCIQ.js → EditorPreviewCheckout-FSEFJZSO.js} +1 -1
  3. package/dist/chunks/{SiteEditorProvider-UWRLDKJS.js → SiteEditorProvider-N76XROIW.js} +1 -1
  4. package/dist/chunks/{chunk-HRTZ7SYX.js → chunk-ITIVEB2I.js} +1 -1
  5. package/dist/chunks/chunk-IZEIMAJI.js +1 -0
  6. package/dist/chunks/chunk-NSW5PCGW.js +1 -0
  7. package/dist/chunks/chunk-OERUEODX.js +388 -0
  8. package/dist/chunks/{fitment-data-6KHIA3AT.js → fitment-data-2SHEWSDK.js} +1 -1
  9. package/dist/contract.js +11 -11
  10. package/dist/editor/components/GalleryPicturesSource.d.ts +4 -16
  11. package/dist/editor/components/GalleryPicturesSource.js +1 -1
  12. package/dist/editor/components/GalleryProductBinding.js +1 -1
  13. package/dist/editor/lib/document/blocks/commerce/AlloyWheelsListing/fields.js +1 -1
  14. package/dist/editor/lib/document/blocks/commerce/ProductPicture/fields.js +1 -1
  15. package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
  16. package/dist/editor/lib/document/blocks/service/AppointmentBooking/fields.js +1 -1
  17. package/dist/editor/lib/document/blocks/service/ContactRouting/fields.js +1 -1
  18. package/dist/editor/lib/document/blocks/service/Events/fields.js +1 -1
  19. package/dist/editor/lib/document/blocks/service/index.d.ts +1 -1
  20. package/dist/editor/lib/document/config.d.ts +2 -0
  21. package/dist/editor/lib/document/config.js +1 -1
  22. package/dist/editor/lib/storefront-editor-words.d.ts +3 -14
  23. package/dist/editor/lib/storefront-editor-words.js +1 -1
  24. package/dist/editor.css +1 -1
  25. package/dist/index.js +93 -85
  26. package/dist/links.js +1 -1
  27. package/dist/render/app/globals.css +5 -2
  28. package/dist/render/built-with.json +1 -1
  29. package/dist/render/components/AppointmentBooking.d.ts +2 -1
  30. package/dist/render/components/AppointmentBooking.js +1 -1
  31. package/dist/render/components/ContactRouting.d.ts +2 -1
  32. package/dist/render/components/ContactRouting.js +1 -1
  33. package/dist/render/components/Events.d.ts +3 -1
  34. package/dist/render/components/Events.js +1 -1
  35. package/dist/render/components/GridCardTemplate.d.ts +33 -3
  36. package/dist/render/components/GridCardTemplate.js +1 -1
  37. package/dist/render/components/ProductGridSection.d.ts +2 -1
  38. package/dist/render/components/ProductGridSection.js +1 -1
  39. package/dist/render/components/PublishedFooter.js +1 -1
  40. package/dist/render/components/PublishedHeader.js +1 -1
  41. package/dist/render/components/RatingBlockView.d.ts +5 -0
  42. package/dist/render/components/RatingBlockView.js +1 -0
  43. package/dist/render/components/ReviewForm.js +1 -1
  44. package/dist/render/components/TyrePlpCard.d.ts +2 -1
  45. package/dist/render/components/TyrePlpCard.js +1 -1
  46. package/dist/render/components/TyreSummaryCard.d.ts +2 -1
  47. package/dist/render/components/TyreSummaryCard.js +1 -1
  48. package/dist/render/components/WheelCardFrame.d.ts +1 -2
  49. package/dist/render/components/WheelCardFrame.js +1 -1
  50. package/dist/render/components/card-pieces/CardPicture.d.ts +1 -1
  51. package/dist/render/components/card-pieces/CardProductPicture.d.ts +3 -0
  52. package/dist/render/components/card-pieces/CardProductPicture.js +1 -1
  53. package/dist/render/components/pdp-dynamic/DynamicGalleryGrid.js +1 -1
  54. package/dist/render/components/useProductCatalog.d.ts +1 -0
  55. package/dist/render/components/wheels-plp/AlloyWheelsListing.d.ts +5 -14
  56. package/dist/render/components/wheels-plp/AlloyWheelsListing.js +1 -1
  57. package/dist/render/lib/api/index.d.ts +3 -1
  58. package/dist/render/lib/api/index.js +1 -1
  59. package/dist/render/lib/api/types.d.ts +1 -0
  60. package/dist/render/lib/chrome-cache.d.ts +1 -0
  61. package/dist/render/lib/chrome-cache.js +1 -1
  62. package/dist/render/lib/content/events-featured-look.d.ts +3 -0
  63. package/dist/render/lib/content/events-featured-look.js +1 -0
  64. package/dist/render/lib/content/product-card-seed.d.ts +19 -0
  65. package/dist/render/lib/content/product-card-seed.js +1 -1
  66. package/dist/render/lib/content/rating.d.ts +1 -0
  67. package/dist/render/lib/content/rating.js +1 -0
  68. package/dist/render/lib/document/blocks/commerce/AlloyWheelsListing/meta.d.ts +6 -0
  69. package/dist/render/lib/document/blocks/commerce/AlloyWheelsListing/meta.js +1 -1
  70. package/dist/render/lib/document/blocks/commerce/AlloyWheelsListing/render.js +1 -1
  71. package/dist/render/lib/document/blocks/commerce/ProductColour/render.js +1 -1
  72. package/dist/render/lib/document/blocks/commerce/ProductEyebrow/render.js +1 -1
  73. package/dist/render/lib/document/blocks/commerce/ProductGrid/render.js +1 -1
  74. package/dist/render/lib/document/blocks/commerce/ProductPicture/render.js +1 -1
  75. package/dist/render/lib/document/blocks/commerce/ProductPrice/render.js +1 -1
  76. package/dist/render/lib/document/blocks/commerce/ProductSpecs/render.js +1 -1
  77. package/dist/render/lib/document/blocks/service/AppointmentBooking/render.js +1 -1
  78. package/dist/render/lib/document/blocks/service/ContactRouting/render.js +1 -1
  79. package/dist/render/lib/document/blocks/service/Events/meta.d.ts +6 -0
  80. package/dist/render/lib/document/blocks/service/Events/meta.js +1 -1
  81. package/dist/render/lib/document/blocks/service/Events/render.js +1 -1
  82. package/dist/render/lib/document/blocks/service/RatingBlock/meta.d.ts +2 -1
  83. package/dist/render/lib/document/blocks/service/RatingBlock/meta.js +1 -1
  84. package/dist/render/lib/document/blocks/service/RatingBlock/render.js +1 -1
  85. package/dist/render/lib/document/blocks/service/SiteHeader/render.js +1 -1
  86. package/dist/render/lib/document/card-templates.d.ts +3 -1
  87. package/dist/render/lib/document/card-templates.js +1 -1
  88. package/dist/render/lib/document/published-header-bar.d.ts +10 -0
  89. package/dist/render/lib/document/published-header-bar.js +1 -0
  90. package/dist/render/lib/document/render-config.d.ts +2 -0
  91. package/dist/render/lib/document/render-config.js +1 -1
  92. package/dist/render/lib/document/section-to-box-rows-detail.js +1 -1
  93. package/dist/render/lib/document/section-to-box-rows-events.d.ts +1 -0
  94. package/dist/render/lib/document/section-to-box-rows-events.js +1 -0
  95. package/dist/render/lib/document/section-to-box-rows-reviews.d.ts +2 -1
  96. package/dist/render/lib/document/section-to-box-rows-reviews.js +1 -1
  97. package/dist/render/lib/document/section-to-box-rows-service.d.ts +1 -0
  98. package/dist/render/lib/document/section-to-box-rows-service.js +1 -0
  99. package/dist/render/lib/document/section-to-box-rows-spec.js +1 -1
  100. package/dist/render/lib/logo/surface-is-light.js +1 -1
  101. package/dist/render/lib/sections/card-tone.d.ts +9 -0
  102. package/dist/render/lib/sections/card-tone.js +1 -0
  103. package/dist/render/lib/sections/grid-no-hole.d.ts +1 -1
  104. package/dist/render/lib/sections/product-pictures.d.ts +3 -0
  105. package/dist/render/lib/sections/product-pictures.js +1 -1
  106. package/dist/render/lib/wheels/plp-hydrate.d.ts +3 -0
  107. package/dist/render/lib/wheels/plp-hydrate.js +1 -1
  108. package/dist/words.d.ts +27 -14
  109. package/dist/words.js +5 -5
  110. package/package.json +6 -4
  111. package/dist/chunks/chunk-4VRLGKYU.js +0 -387
  112. package/dist/chunks/chunk-PHQQRGQZ.js +0 -1
  113. package/dist/chunks/chunk-YL2HPWVT.js +0 -1
  114. package/dist/render/components/wheels-plp/PlpCard.d.ts +0 -29
  115. package/dist/render/components/wheels-plp/PlpCard.js +0 -1
  116. /package/dist/chunks/{chunk-4VRLGKYU.js.LEGAL.txt → chunk-OERUEODX.js.LEGAL.txt} +0 -0
  117. /package/dist/chunks/{chunk-XMTQMRA3.js → chunk-XYG76Y4H.js} +0 -0
@@ -1 +1 @@
1
- "use client";import{jsx as o}from"react/jsx-runtime";import{withRMark as s}from"efficient-web-builder/render/components/RMark";import l from"../../../../../components/card-pieces/CardEyebrow.js";import{readPartStyles as a}from"efficient-web-builder/render/lib/document/part-styles";import m from"../../../../../components/card-pieces/HostPart.js";import{useProductCardState as c}from"../../../../../components/card-pieces/ProductCardState.js";import{useGridCard as f}from"../../../../../components/GridCardTemplate.js";import{wheelCardEyebrow as u}from"../../../../../components/ProductCardEyebrow.js";import{ProductEyebrowMeta as t}from"./meta.js";function w({region:e}){const r=c(),{fieldUsage:i,reserveEyebrow:n}=f(),d=r.kind==="wheel"&&r.wheel.process?s(r.wheel.process):null;return o(l,{reserve:n,region:e,children:u({kindLabel:null,brand:null,process:d},i)})}const x={...t,render:e=>{const r=!!e.editor?.isEditing;return o(m,{label:t.label??"",editing:r,children:o(w,{region:{nodeId:typeof e.id=="string"?e.id:void 0,partStyles:a(e),editing:r}})})}};export{x as ProductEyebrowRender};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{withRMark as d}from"efficient-web-builder/render/components/RMark";import c from"../../../../../components/card-pieces/CardEyebrow.js";import{readPartStyles as u}from"efficient-web-builder/render/lib/document/part-styles";import b from"../../../../../components/card-pieces/HostPart.js";import{useProductCardState as f}from"../../../../../components/card-pieces/ProductCardState.js";import{useGridCard as w}from"../../../../../components/GridCardTemplate.js";import{itemBrand as p}from"../../../../catalog/plp-item.js";import{wheelCardEyebrow as y}from"../../../../../components/ProductCardEyebrow.js";import{ProductEyebrowMeta as s}from"./meta.js";function g({region:r}){const o=f(),{fieldUsage:l,reserveEyebrow:a,eyebrow:t}=w(),e=o.kind==="wheel"?o.wheel:null,i=e&&t.brand?p(e):null,m={kindLabel:e?t.kindLabel:null,brand:i?d(i):null,process:e&&t.process&&e.process?d(e.process):null};return n(c,{reserve:a,region:r,children:y(m,l)})}const L={...s,render:r=>{const o=!!r.editor?.isEditing;return n(b,{label:s.label??"",editing:o,children:n(g,{region:{nodeId:typeof r.id=="string"?r.id:void 0,partStyles:u(r),editing:o}})})}};export{L as ProductEyebrowRender};
@@ -1 +1 @@
1
- import{jsx as g}from"react/jsx-runtime";import{gridLimitOf as H}from"../../../../sections/product-grid-pages.js";import{FIRST_COUNT_IN_CHIPS_PROP as T}from"../../../../wheels/shopper-first-paint.js";import{phoneKey as d,tabletKey as P}from"efficient-easel/draw";import b from"../../../../../components/pdp-dynamic/DynamicRelatedProducts.js";import{DEFAULT_RELATIONSHIP as y}from"../../../../catalog/relationships.js";import{resolveWidth as C}from"efficient-web-builder/format/lib/content/section-width";import s from"../../../../../components/ProductGridSection.js";import{relatedCardCount as k}from"../../../../catalog/related-cards.js";import{hidableText as R}from"efficient-easel/screen/lib/document/hidable";import{cardHoverOf as h}from"efficient-web-builder/format/lib/animation/hover";import{parseSectionHeadPlacement as w}from"efficient-web-builder/format/lib/sections/section-head-placement";import{PH as o}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{phHide as t}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{PRODUCTGRID_PH as l}from"../placeholders.js";import{parseMoreProducts as S}from"../../../../sections/product-grid-pages.js";import{ProductGridMeta as _}from"./meta.js";const Q={..._,render:e=>{const a=typeof e.id=="string"?e.id:"",c=e.template;if(e.dynamic){const n=w(e.headPlacement)==="own-box",m=I=>n?void 0:I;return g(b,{num:m(t(e.num,l.num,e.editor)),title:m(t(e.title,o.sectionHeading,e.editor)),description:m(t(e.description,o.body,e.editor)),omitHead:n,columns:typeof e.columns=="number"?e.columns:3,columnsPhone:e[d("columns")],columnsTablet:e[P("columns")],gap:e.gap,gapPhone:e[d("gap")],cardCount:k(e.limit),relationship:typeof e.relationship=="string"?e.relationship:y,hover:h(e,"ProductGrid"),ownerId:a,template:c,cardImage:e.cardImage,outline:e.outline,indexBadge:e.indexBadge,editing:e.editor?.isEditing})}const r=t(e.linkText,l.link,e.editor),u=e.source,x=C(e,"full"),f=w(e.headPlacement)==="own-box",i=n=>f?void 0:n;return g(s,{gap:e.gap,gapPhone:e[d("gap")],contentCapped:x.mode==="page",num:i(t(e.num,l.num,e.editor)),title:i(t(e.title,o.sectionHeading,e.editor)),titleSize:e.titleSize,padTop:f?0:e.padTop,description:i(t(e.description,o.body,e.editor)),link:i(r?{text:r,href:R(e.linkHref)||"#"}:void 0),products:e.products,wheels:e.wheels,source:u?.slug?u:void 0,catalog:e.catalog,firstCountInChips:e[T]===!0,kinds:e.kinds,fieldUsage:e.fieldUsage,columns:e.columns,columnsPhone:e[d("columns")],columnsTablet:e[P("columns")],limit:H({limit:e.limit,showAll:e.showAll}),moreProducts:S(e.moreProducts),perPage:e.perPage,editing:e.editor?.isEditing,hover:h(e,"ProductGrid"),ownerId:a,template:c})}};export{Q as ProductGridRender};
1
+ import{jsx as g}from"react/jsx-runtime";import{gridLimitOf as I}from"../../../../sections/product-grid-pages.js";import{FIRST_COUNT_IN_CHIPS_PROP as H}from"../../../../wheels/shopper-first-paint.js";import{phoneKey as d,tabletKey as P}from"efficient-easel/draw";import b from"../../../../../components/pdp-dynamic/DynamicRelatedProducts.js";import{DEFAULT_RELATIONSHIP as y}from"../../../../catalog/relationships.js";import{resolveWidth as C}from"efficient-web-builder/format/lib/content/section-width";import k from"../../../../../components/ProductGridSection.js";import{relatedCardCount as s}from"../../../../catalog/related-cards.js";import{hidableText as R}from"efficient-easel/screen/lib/document/hidable";import{cardHoverOf as h}from"efficient-web-builder/format/lib/animation/hover";import{parseSectionHeadPlacement as T}from"efficient-web-builder/format/lib/sections/section-head-placement";import{PH as o}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{phHide as t}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{PRODUCTGRID_PH as a}from"../placeholders.js";import{parseMoreProducts as S}from"../../../../sections/product-grid-pages.js";import{ProductGridMeta as _}from"./meta.js";const Q={..._,render:e=>{const l=typeof e.id=="string"?e.id:"",c=e.template;if(e.dynamic){const n=T(e.headPlacement)==="own-box",m=x=>n?void 0:x;return g(b,{num:m(t(e.num,a.num,e.editor)),title:m(t(e.title,o.sectionHeading,e.editor)),description:m(t(e.description,o.body,e.editor)),omitHead:n,columns:typeof e.columns=="number"?e.columns:3,columnsPhone:e[d("columns")],columnsTablet:e[P("columns")],gap:e.gap,gapPhone:e[d("gap")],cardCount:s(e.limit),relationship:typeof e.relationship=="string"?e.relationship:y,hover:h(e,"ProductGrid"),ownerId:l,template:c,cardImage:e.cardImage,outline:e.outline,indexBadge:e.indexBadge,editing:e.editor?.isEditing})}const r=t(e.linkText,a.link,e.editor),u=e.source,w=C(e,"full"),f=T(e.headPlacement)==="own-box",i=n=>f?void 0:n;return g(k,{gap:e.gap,gapPhone:e[d("gap")],contentCapped:w.mode==="page",num:i(t(e.num,a.num,e.editor)),title:i(t(e.title,o.sectionHeading,e.editor)),titleSize:e.titleSize,padTop:f?0:e.padTop,description:i(t(e.description,o.body,e.editor)),link:i(r?{text:r,href:R(e.linkHref)||"#"}:void 0),products:e.products,wheels:e.wheels,source:u?.slug?u:void 0,catalog:e.catalog,catalogTotal:e.catalogTotal,firstCountInChips:e[H]===!0,kinds:e.kinds,fieldUsage:e.fieldUsage,columns:e.columns,columnsPhone:e[d("columns")],columnsTablet:e[P("columns")],limit:I({limit:e.limit,showAll:e.showAll}),moreProducts:S(e.moreProducts),perPage:e.perPage,editing:e.editor?.isEditing,hover:h(e,"ProductGrid"),ownerId:l,template:c})}};export{Q as ProductGridRender};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import t from"../../../../../components/card-pieces/CardProductPicture.js";import a from"../../../../../components/card-pieces/HostPart.js";import{ProductPictureMeta as d}from"./meta.js";const n={...d,render:e=>r(a,{label:d.label??"",editing:!!e.editor?.isEditing,children:r(t,{imageBackground:e.imageBackground,cardImage:e.cardImage,coverIndex:e.coverIndex,indexBadge:e.indexBadge,showBadge:e.showBadge,frame:e.frame,setPicture:e.setPicture})})};export{n as ProductPictureRender};
1
+ import{jsx as a}from"react/jsx-runtime";import r from"../../../../../components/card-pieces/CardProductPicture.js";import t from"../../../../../components/card-pieces/HostPart.js";import{ProductPictureMeta as d}from"./meta.js";const n={...d,render:e=>a(t,{label:d.label??"",editing:!!e.editor?.isEditing,children:a(r,{imageBackground:e.imageBackground,cardImage:e.cardImage,coverIndex:e.coverIndex,indexBadge:e.indexBadge,showBadge:e.showBadge,frame:e.frame,setPicture:e.setPicture,swatch:e.swatch,shadow:e.shadow,shadowColor:e.shadowColor})})};export{n as ProductPictureRender};
@@ -1 +1 @@
1
- import{jsx as e,Fragment as o}from"react/jsx-runtime";import n from"../../../../../components/card-pieces/CardPrice.js";import{useGridCard as d}from"../../../../../components/GridCardTemplate.js";import m from"../../../../../components/card-pieces/HostPart.js";import{readPartStyles as a}from"efficient-web-builder/render/lib/document/part-styles";import{HideTaker as c}from"efficient-web-builder/render/components/ViewHideRoot";import{ProductPriceMeta as i}from"./meta.js";function f({children:r}){return d().ownerId?e(c,{children:r}):e(o,{children:r})}const x={...i,render:r=>{const t=!!r.editor?.isEditing;return e(m,{label:i.label??"",editing:t,onHero:!0,children:e(f,{children:e(n,{quoteSets:!0,region:{nodeId:typeof r.id=="string"?r.id:void 0,partStyles:a(r),editing:t}})})})}};export{x as ProductPriceRender};
1
+ import{jsx as t,Fragment as n}from"react/jsx-runtime";import d from"../../../../../components/card-pieces/CardPrice.js";import{useGridCard as o}from"../../../../../components/GridCardTemplate.js";import a from"../../../../../components/card-pieces/HostPart.js";import{readPartStyles as s}from"efficient-web-builder/render/lib/document/part-styles";import{HideTaker as l}from"efficient-web-builder/render/components/ViewHideRoot";import{ProductPriceMeta as i}from"./meta.js";function m({children:e}){return o().ownerId?t(l,{children:e}):t(n,{children:e})}function c({region:e}){const{rules:r}=o();return t(d,{quoteSets:r.quoteSets,setTotal:r.setTotal,wasFollowsSize:r.wasFollowsSize,region:e})}const F={...i,render:e=>{const r=!!e.editor?.isEditing;return t(a,{label:i.label??"",editing:r,onHero:!0,children:t(m,{children:t(c,{region:{nodeId:typeof e.id=="string"?e.id:void 0,partStyles:s(e),editing:r}})})})}};export{F as ProductPriceRender};
@@ -1 +1 @@
1
- "use client";import{jsx as r}from"react/jsx-runtime";import s from"../../../../../components/card-pieces/HostPart.js";import{CardSpecFacts as o,CardSpecLine as d}from"../../../../../components/card-pieces/CardSpecs.js";import{useGridCard as c}from"../../../../../components/GridCardTemplate.js";import{ProductSpecsMeta as i}from"./meta.js";function n({sizes:e}){const{fieldUsage:t}=c();return r(d,{children:r(o,{sizes:e,fieldUsage:t})})}const u={...i,render:e=>r(s,{label:i.label??"",editing:!!e.editor?.isEditing,children:r(n,{sizes:e.sizes===!0})})};export{u as ProductSpecsRender};
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import o from"../../../../../components/card-pieces/HostPart.js";import{CardSpecFacts as c,CardSpecLine as d}from"../../../../../components/card-pieces/CardSpecs.js";import{useGridCard as n}from"../../../../../components/GridCardTemplate.js";import{ProductSpecsMeta as i}from"./meta.js";function a({sizes:e}){const{fieldUsage:t,fit:s}=n();return r(d,{children:r(c,{sizes:e,fieldUsage:t,car:s})})}const S={...i,render:e=>r(o,{label:i.label??"",editing:!!e.editor?.isEditing,children:r(a,{sizes:e.sizes===!0})})};export{S as ProductSpecsRender};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import n from"../../../../../components/AppointmentBooking.js";import{PH as i}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{phHide as t}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{AppointmentBookingMeta as d}from"./meta.js";const f={...d,render:e=>o(n,{eyebrow:t(e.eyebrow,i.eyebrow,e.editor),heading:t(e.heading,i.heading,e.editor),intro:t(e.intro,i.body,e.editor),buttonLabel:t(e.buttonLabel,i.button,e.editor),successMessage:t(e.successMessage,i.bookingConfirmation,e.editor),boxes:e.boxes,inBoxes:e.layout==="boxes",nodeId:typeof e.id=="string"?e.id:void 0,editing:e.editor?.isEditing})};export{f as AppointmentBookingRender};
1
+ import{jsx as m}from"react/jsx-runtime";import a from"../../../../../components/AppointmentBooking.js";import{PH as o}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{parseSectionHeadPlacement as r}from"efficient-web-builder/format/lib/sections/section-head-placement";import{phHide as t}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{AppointmentBookingMeta as b}from"./meta.js";const h={...b,render:e=>{const n=r(e.headPlacement)==="own-box",i=d=>n?void 0:d;return m(a,{eyebrow:i(t(e.eyebrow,o.eyebrow,e.editor)),heading:i(t(e.heading,o.heading,e.editor)),intro:i(t(e.intro,o.body,e.editor)),omitHead:n,buttonLabel:t(e.buttonLabel,o.button,e.editor),successMessage:t(e.successMessage,o.bookingConfirmation,e.editor),boxes:e.boxes,inBoxes:e.layout==="boxes",nodeId:typeof e.id=="string"?e.id:void 0,editing:e.editor?.isEditing})}};export{h as AppointmentBookingRender};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import m from"../../../../../components/ContactRouting.js";import{CONTACT_ROUTING_DEFAULTS as e}from"efficient-web-builder/format/lib/content/contact";import{hidableText as i}from"efficient-easel/screen/lib/document/hidable";import{phHide as o}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{ContactRoutingMeta as u}from"./meta.js";const N={...u,render:t=>r(m,{routingNumber:o(t.routingNumber,e.routingNumber,t.editor),routingTagline:o(t.routingTagline,e.routingTagline,t.editor),groups:t.groups??[],formNumber:o(t.formNumber,e.formNumber,t.editor),formHeading:o(t.formHeading,e.formHeading,t.editor),metaLines:(t.metaItems??[]).map(n=>n?.text??"").filter(Boolean),showOther:t.showOther,otherLabel:i(t.otherLabel)||e.otherLabel,otherNoteTitle:o(t.otherNoteTitle,e.otherNoteTitle,t.editor),otherNoteBody:o(t.otherNoteBody,e.otherNoteBody,t.editor),buttonText:i(t.buttonText)||e.buttonText,consent:o(t.consent,e.consent,t.editor),channels:t.channels??[],formSlug:i(t.formSlug)||void 0,form:t.form,editing:t.editor?.isEditing})};export{N as ContactRoutingRender};
1
+ import{jsx as a}from"react/jsx-runtime";import d from"../../../../../components/ContactRouting.js";import{CONTACT_ROUTING_DEFAULTS as t}from"efficient-web-builder/format/lib/content/contact";import{hidableText as i}from"efficient-easel/screen/lib/document/hidable";import{parseSectionHeadPlacement as u}from"efficient-web-builder/format/lib/sections/section-head-placement";import{phHide as o}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{ContactRoutingMeta as g}from"./meta.js";const x={...g,render:e=>{const r=u(e.headPlacement)==="own-box",m=n=>r?void 0:n;return a(d,{routingNumber:m(o(e.routingNumber,t.routingNumber,e.editor)),routingTagline:m(o(e.routingTagline,t.routingTagline,e.editor)),omitHead:r,groups:e.groups??[],formNumber:o(e.formNumber,t.formNumber,e.editor),formHeading:o(e.formHeading,t.formHeading,e.editor),metaLines:(e.metaItems??[]).map(n=>n?.text??"").filter(Boolean),showOther:e.showOther,otherLabel:i(e.otherLabel)||t.otherLabel,otherNoteTitle:o(e.otherNoteTitle,t.otherNoteTitle,e.editor),otherNoteBody:o(e.otherNoteBody,t.otherNoteBody,e.editor),buttonText:i(e.buttonText)||t.buttonText,consent:o(e.consent,t.consent,e.editor),channels:e.channels??[],formSlug:i(e.formSlug)||void 0,form:e.form,editing:e.editor?.isEditing})}};export{x as ContactRoutingRender};
@@ -4,4 +4,10 @@ export declare const EVENTS_PH: {
4
4
  title: string;
5
5
  link: string;
6
6
  };
7
+ export declare const EventsSlots: {
8
+ template: {
9
+ type: "slot";
10
+ allow: string[];
11
+ };
12
+ };
7
13
  export declare const EventsMeta: Omit<BlockRender, "render">;
@@ -1 +1 @@
1
- import{PH as t}from"efficient-web-builder/format/lib/document/blocks/placeholders";const l={num:t.sectionNumber,title:"Section title",link:t.viewAll},o={label:"Latest Posts",defaultProps:{num:"",title:"",linkText:"",linkHref:"/journal",columns:3,limit:3,showAll:!1}};export{l as EVENTS_PH,o as EventsMeta};
1
+ import{PH as t}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{cardTemplateSlot as e}from"efficient-web-builder/format/lib/content/card-template";const i={num:t.sectionNumber,title:"Section title",link:t.viewAll},l={template:e()},n={label:"Latest Posts",fields:l,defaultProps:{num:"",title:"",linkText:"",linkHref:"/journal",columns:3,limit:3,showAll:!1}};export{i as EVENTS_PH,n as EventsMeta,l as EventsSlots};
@@ -1 +1 @@
1
- import{jsx as f}from"react/jsx-runtime";import{phoneKey as h}from"efficient-easel/draw";import g,{readFacets as x,readTags as k}from"../../../../../components/Events.js";import{declaredBlockSource as y,sourcedRows as b}from"efficient-web-builder/format/lib/content/block-sources";import{servedListOf as v,servedRowLists as T}from"../../../../content/served-lists.js";import{hidableText as E}from"efficient-easel/screen/lib/document/hidable";import{parseSectionHeadPlacement as A}from"efficient-web-builder/format/lib/sections/section-head-placement";import{phHide as o}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{say as a}from"efficient-web-builder/format/lib/editor-words";import{EventsMeta as B,EVENTS_PH as r}from"./meta.js";const S=()=>[{key:"sample-1",title:a("First card"),excerpt:a("A line about it appears here.")},{key:"sample-2",title:a("Second card"),excerpt:a("A line about it appears here.")},{key:"sample-3",title:a("Third card"),excerpt:a("A line about it appears here.")},{key:"sample-4",title:a("Fourth card"),excerpt:a("A line about it appears here.")}],s=(e,i,t)=>({slug:e.key||`card-${i}`,title:e.title??"",excerpt:e.excerpt??"",cover:e.cover??"",meta:e.meta||void 0,dateLabel:e.dateLabel||void 0,href:e.href||"#",...t?.facets?{facets:t.facets}:{},...t?.tags?{tags:t.tags}:{}}),F=e=>T(e,i=>({facets:x(i.facets),tags:k(i.tags)})),K={...B,render:e=>{const i=A(e.headPlacement)==="own-box",t=d=>i?void 0:d,m=o(e.linkText,r.link,e.editor),n=y(e)!==""?b(e,!!e.editor?.isEditing,S()):null,c=n&&!n.sample?F(e):null,u=n?n.sample?[]:n.rows.map((d,l)=>s(d,l,v(c,d,l))):e.posts;return f(g,{num:t(o(e.num,r.num,e.editor)),title:t(o(e.title,r.title,e.editor)),link:t(m?{text:m,href:E(e.linkHref)||"/journal"}:void 0),omitHead:i,posts:u,sample:n?.sample?n.rows.map((d,l)=>s(d,l)):void 0,columns:e.columns,limit:e.limit,showAll:e.showAll,layout:e.layout,featuredWidth:e.featuredWidth,listCover:e.listCover,featuredDarken:e.featuredDarken,cardImage:e.cardImage,gap:e.gap,gapPhone:e[h("gap")],nameFilter:e.nameFilter===!0,padTop:typeof e.padTop=="number"?e.padTop:void 0,padBottom:typeof e.padBottom=="number"?e.padBottom:void 0,editing:e.editor?.isEditing})}};export{K as EventsRender};
1
+ import{jsx as f}from"react/jsx-runtime";import{phoneKey as h}from"efficient-easel/draw";import g,{readFacets as x,readTags as k}from"../../../../../components/Events.js";import{declaredBlockSource as y,sourcedRows as b}from"efficient-web-builder/format/lib/content/block-sources";import{servedListOf as v,servedRowLists as T}from"../../../../content/served-lists.js";import{hidableText as E}from"efficient-easel/screen/lib/document/hidable";import{parseSectionHeadPlacement as S}from"efficient-web-builder/format/lib/sections/section-head-placement";import{phHide as m}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{say as a}from"efficient-web-builder/format/lib/editor-words";import{EventsMeta as A,EVENTS_PH as r}from"./meta.js";const B=()=>[{key:"sample-1",title:a("First card"),excerpt:a("A line about it appears here.")},{key:"sample-2",title:a("Second card"),excerpt:a("A line about it appears here.")},{key:"sample-3",title:a("Third card"),excerpt:a("A line about it appears here.")},{key:"sample-4",title:a("Fourth card"),excerpt:a("A line about it appears here.")}],c=(e,i,t)=>({slug:e.key||`card-${i}`,title:e.title??"",excerpt:e.excerpt??"",cover:e.cover??"",meta:e.meta||void 0,dateLabel:e.dateLabel||void 0,href:e.href||"#",...t?.facets?{facets:t.facets}:{},...t?.tags?{tags:t.tags}:{}}),F=e=>T(e,i=>({facets:x(i.facets),tags:k(i.tags)})),K={...A,render:e=>{const i=S(e.headPlacement)==="own-box",t=d=>i?void 0:d,o=m(e.linkText,r.link,e.editor),n=y(e)!==""?b(e,!!e.editor?.isEditing,B()):null,s=n&&!n.sample?F(e):null,u=n?n.sample?[]:n.rows.map((d,l)=>c(d,l,v(s,d,l))):e.posts;return f(g,{num:t(m(e.num,r.num,e.editor)),title:t(m(e.title,r.title,e.editor)),link:t(o?{text:o,href:E(e.linkHref)||"/journal"}:void 0),omitHead:i,posts:u,sample:n?.sample?n.rows.map((d,l)=>c(d,l)):void 0,columns:e.columns,limit:e.limit,showAll:e.showAll,layout:e.layout,featuredWidth:e.featuredWidth,listCover:e.listCover,featuredDarken:e.featuredDarken,cardImage:e.cardImage,gap:e.gap,gapPhone:e[h("gap")],nameFilter:e.nameFilter===!0,padTop:typeof e.padTop=="number"?e.padTop:void 0,padBottom:typeof e.padBottom=="number"?e.padBottom:void 0,editing:e.editor?.isEditing,template:e.template,ownerId:String(e.id??"")})}};export{K as EventsRender};
@@ -1,3 +1,4 @@
1
1
  import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
2
- export declare const RATING_NONE = 0;
2
+ import { RATING_NONE } from "../../../../content/rating.js";
3
+ export { RATING_NONE };
3
4
  export declare const RatingBlockMeta: Omit<BlockRender, "render">;
@@ -1 +1 @@
1
- const t=0,a={label:"Rating",defaultProps:{rating:0}};export{t as RATING_NONE,a as RatingBlockMeta};
1
+ import{RATING_NONE as t}from"../../../../content/rating.js";const a={label:"Rating",defaultProps:{rating:t}};export{t as RATING_NONE,a as RatingBlockMeta};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import n,{RATING_STARS as o}from"../../../../../components/RatingStars.js";import{HideTaker as a}from"efficient-web-builder/render/components/ViewHideRoot";import{RATING_NONE as t,RatingBlockMeta as m}from"./meta.js";function f(i){return typeof i=="number"&&Number.isFinite(i)&&i>t?i:t}function g({rating:i,editing:e}){return i>t?r(n,{rating:i}):e?r(a,{className:"opacity-60",children:r(n,{rating:o})}):null}const R={...m,render:i=>r(g,{rating:f(i.rating),editing:!!i.editor?.isEditing})};export{R as RatingBlockRender};
1
+ import{jsx as e}from"react/jsx-runtime";import n from"../../../../../components/RatingBlockView.js";import{namedRowField as r}from"efficient-web-builder/format/lib/content/card-template";import{RATING_NONE as t,RatingBlockMeta as o}from"./meta.js";function m(i){return typeof i=="number"&&Number.isFinite(i)&&i>t?i:t}const l={...o,render:i=>e(n,{rating:m(i.rating),field:r(i),editing:!!i.editor?.isEditing})};export{l as RatingBlockRender};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import c from"../../../../../components/BoxHeaderBar.js";import h from"../../../../../components/SectionGroupBody.js";import{chromeOwnWidth as x}from"efficient-web-builder/format/lib/content/section-width";import{SiteHeaderMeta as f}from"./meta.js";const B={...f,render:({sections:i,navTextCase:n,menuRow:d,sticky:a,topTextColor:m,heightPx:p,sectionAccent:s,editor:e,...r})=>{const t=o(h,{place:"header",sections:i,widths:r,navTextCase:n,menuRow:d,editing:e?.isEditing});return e?.isEditing?o(c,{sticky:a,topTextColor:m,heightPx:p,theme:s,bandCapped:x(r).background==="content",children:t}):t}};export{B as SiteHeaderRender};
1
+ import{jsx as i}from"react/jsx-runtime";import h from"../../../../../components/BoxHeaderBar.js";import x from"../../../../../components/SectionGroupBody.js";import{headerBarFromProps as f}from"../../../published-header-bar.js";import{SiteHeaderMeta as g}from"./meta.js";const B={...g,render:({sections:a,navTextCase:n,menuRow:d,sticky:p,topTextColor:m,heightPx:s,sectionAccent:c,editor:r,...t})=>{const o=i(x,{place:"header",sections:a,widths:t,navTextCase:n,menuRow:d,editing:r?.isEditing});if(!r?.isEditing)return o;const e=f({sticky:p,topTextColor:m,heightPx:s,sectionAccent:c,...t});return i(h,{sticky:e.sticky,topTextColor:e.topTextColor,heightPx:e.heightPx,theme:e.theme,bandCapped:e.bandCapped,children:o})}};export{B as SiteHeaderRender};
@@ -1,5 +1,7 @@
1
1
  import { type CardTemplateSpec } from "efficient-web-builder/format/lib/content/card-template";
2
- import type { BlockSeed } from "efficient-web-builder/format/lib/document/seed-parts";
2
+ import { type BlockSeed } from "efficient-web-builder/format/lib/document/seed-parts";
3
+ export declare const eventsCardSeeds: () => BlockSeed[];
4
+ export declare function withEventsTemplate(props: Record<string, unknown>): Record<string, unknown>;
3
5
  export declare const drawsKits: (props: Record<string, unknown>) => boolean;
4
6
  export declare const productGridCardSeed: (props?: Record<string, unknown>) => BlockSeed;
5
7
  export declare const STOREFRONT_CARD_TEMPLATES: readonly CardTemplateSpec[];
@@ -1 +1 @@
1
- import{registerCardTemplates as d}from"efficient-web-builder/format/lib/content/card-template";import{withRelatedTabletColumns as t}from"../sections/product-grid-columns.js";import{bundleColumns as s}from"../sections/bundle-to-grid.js";import{HERO_PRICE_BLOCK as c,withHeroPriceTemplate as k}from"../content/hero-price-seed.js";import{CARD_LIST_TYPE as n}from"efficient-web-builder/format/lib/content/card-template";import{FILTER_OPTIONS_FIELD as C,withFilterChipsTemplate as m,withFilterTemplate as y}from"../content/filter-card-seed.js";import{MENU_LINK_BLOCK as u,withMenuTemplate as O}from"../content/menu-card-seed.js";import{ARTICLE_BODY_BLOCK as T,withArticleBodyTemplate as p}from"../content/article-body-seed.js";import{PRODUCT_BUY_BLOCK as _,PRODUCT_CARD_FIELDS as P,PRODUCT_COLOUR_BLOCK as R,PRODUCT_EYEBROW_BLOCK as E,PRODUCT_NAME_BLOCK as L,PRODUCT_PICTURE_BLOCK as f,PRODUCT_PRICE_BLOCK as h,PRODUCT_SIZE_BLOCK as B,PRODUCT_SPECS_BLOCK as w,productCardSeed as D,withKitCardTemplate as a,withProductCardTemplate as i}from"../content/product-card-seed.js";const S=["showCardPrice","showCardFinishes","showCardSizes","showCardBuy","showCardPage"],g=e=>Object.fromEntries(Object.entries(e).filter(([l])=>!S.includes(l))),r={fields:[{key:"label",label:"Label"},{key:"href",label:"Link",kind:"link"}],blocks:[{type:u,label:"Menu link"}],seed:O},b=e=>e.dynamic===!0&&e.relationship==="bundles",x=(e={})=>D(e),o={fields:P,blocks:[{type:f,label:"Picture"},{type:E,label:"Eyebrow"},{type:L,label:"Name"},{type:w,label:"Specs"},{type:h,label:"Price"},{type:R,label:"Colour"},{type:B,label:"Size"},{type:_,label:"Buy"}],seed:e=>{if(e.dynamic!==!0)return i(e);const l=t(e);return b(e)?a(l):i(l)}},U=[{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"}]},{block:"SpecTable",fields:[{key:"label",label:"Label"},{key:"value",label:"Value"}]},{block:"DetailRows",fields:[{key:"eyebrow",label:"Eyebrow"},{key:"title",label:"Title"},{key:"copy",label:"Body",multiline:!0},{key:"image",label:"Image",kind:"image",alt:"title"},{key:"tag",label:"Image tag"}]},{block:"FooterMenu",...r},{block:"MenuBlock",...r},{block:"ProductGrid",...o},{block:"RelatedProducts",...o,seed:e=>{const l=t({...g(e),dynamic:!0});return b(l)?a(l):i(l,{legacyWellHonoured:!0})}},{block:"BundleOffer",...o,seed:e=>a(t({...e,columns:s(e),dynamic:!0}))},{block:"ProductHero",fields:[],blocks:[{type:c,label:"Price"}],seed:k},{block:"FilterBlock",fields:[{key:"label",label:"Filter name"},{key:C,label:"Options",kind:"list",fields:[{key:"label",label:"Option"},{key:"count",label:"Count"}]}],blocks:[{type:n,label:"Card list"}],seed:y},{block:"FilterChipsBlock",fields:[{key:"label",label:"Pick"},{key:"mark",label:"Remove mark"}],seed:m},{block:T,fields:[{key:"heading",label:"Subhead"},{key:"paragraph",label:"Paragraph",multiline:!0}],seed:p}];d(U);export{U as STOREFRONT_CARD_TEMPLATES,b as drawsKits,x as productGridCardSeed};
1
+ import{CARD_ROW_FIELD_PROP as h,CARD_ROW_LINK_PROP as g,registerCardTemplates as D}from"efficient-web-builder/format/lib/content/card-template";import{DIM as o,INNER_BOX as a,TEXT as s,boxPadding as d,fillSlot as w,labelLook as N,labelStyle as B,seedNodes as A,token as p}from"efficient-web-builder/format/lib/document/seed-parts";import{BOX_TYPE as i,CONTAINER_BLOCKS_SLOT as n}from"efficient-web-builder/format/lib/document/container-blocks";import{BOX_ROW_IMAGE_PROP as F}from"efficient-web-builder/format/lib/content/box-card-rule";import{POST_CARD_HEIGHT as I}from"efficient-web-builder/format/lib/post-card-layout";import{EVENTS_FEATURED_DARKEN as K,EVENTS_FEATURED_DARKEN_STYLE as P,EVENTS_FEATURED_PLACEMENT as U}from"../content/events-featured-look.js";import{SH_LINK as H}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{rowFieldTextSeed as l}from"efficient-web-builder/format/lib/document/blocks/general/Cards/card-seed";import{withRelatedTabletColumns as b}from"../sections/product-grid-columns.js";import{bundleColumns as x}from"../sections/bundle-to-grid.js";import{HERO_PRICE_BLOCK as M,withHeroPriceTemplate as V}from"../content/hero-price-seed.js";import{CARD_LIST_TYPE as E}from"efficient-web-builder/format/lib/content/card-template";import{FILTER_OPTIONS_FIELD as v,withFilterChipsTemplate as W,withFilterTemplate as G}from"../content/filter-card-seed.js";import{MENU_LINK_BLOCK as Y,withMenuTemplate as $}from"../content/menu-card-seed.js";import{ARTICLE_BODY_BLOCK as X,withArticleBodyTemplate as j}from"../content/article-body-seed.js";import{PRODUCT_BUY_BLOCK as z,PRODUCT_CARD_FIELDS as q,PRODUCT_COLOUR_BLOCK as Q,PRODUCT_EYEBROW_BLOCK as Z,PRODUCT_NAME_BLOCK as J,PRODUCT_PICTURE_BLOCK as ee,PRODUCT_PRICE_BLOCK as te,PRODUCT_SIZE_BLOCK as le,PRODUCT_SPECS_BLOCK as oe,productCardSeed as ae,withKitCardTemplate as m,withListingCardTemplate as ie,withProductCardTemplate as T}from"../content/product-card-seed.js";const u="tags",r=N(12),O={textStyle:"heading-3",...p("headingSmall",20),weight:500,lineHeight:1.2,letterSpacing:-.02},C={textStyle:"body-1",...p("body",14),lineHeight:1.55},ne={...O,...p("headingSmall",30)},re={sectionPaddingTop:24,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,sectionPaddingTopPhone:24,sectionPaddingRightPhone:28,sectionPaddingBottomPhone:32,sectionPaddingLeftPhone:28},se=I.fallback,de=480,ce=70,pe=()=>({type:i,props:{...a,name:"Featured",[F]:"cover",darken:K,darkenStyle:P,darkenPhone:ce,darkenStylePhone:P,placement:U,direction:"column",gap:8,gapPhone:8,...d(32,32,20,20),sectionHeightMode:"fixed",sectionHeightValue:se,sectionHeightUnit:"px",sectionHeightModePhone:"fixed",sectionHeightValuePhone:de,sectionHeightUnitPhone:"px",[g]:"href"},slots:{[n]:[l("meta",{...s,tag:"p"},r,!0),l("title",{...s,tag:"h3",widthFit:"fill"},ne),l("excerpt",{...o,tag:"p",widthFit:"fill",maxWidth:384},C),l("dateLabel",{...o,tag:"p"},{...r,color:"muted"})]}}),be=()=>({type:i,props:{...a,name:"Post",gap:0,gapPhone:0,...d(0,0,0,0),...w("surface"),shadow:!0},slots:{[n]:[{type:"ImageBlock",props:{[h]:"cover",aspect:"16/10",contained:!1}},{type:i,props:{...a,name:"Words",gap:12,gapPhone:12,...re},slots:{[n]:[{type:i,props:{...a,name:"Meta",direction:"row",wrap:!0,share:"content",sharePhone:"content",phoneRow:2,gap:12,gapPhone:12,...d(0,0,0,0)},slots:{[n]:[l("meta",{...s,tag:"p"},r,!0),l("dateLabel",{...o,tag:"p"},{...r,color:"muted"},!0)]}},l("title",{...s,tag:"h3",widthFit:"fill"},O),l("excerpt",{...o,tag:"p",widthFit:"fill"},C),{type:E,props:{[h]:u},slots:{template:[{type:i,props:{...a,name:"Chip",...d(4,8,4,8),sectionBorder:{width:1}},slots:{[n]:[l("label",{...o,tag:"p"},r)]}}]}},{type:"ButtonBlock",props:{variant:"ghost",label:"Read more",href:"",[g]:"href",...H,icon:"arrow-right",iconPosition:"after",_partStyles:{label:B(12)}}}]}}]}}),Ee=()=>[pe(),be()];function me(e){if(e.template!==void 0)return e;const t=typeof e.id=="string"&&e.id.trim()?e.id:"Events",L=["featured","post"];return{...e,template:A(Ee(),(he,S)=>{const[_,...k]=S.split("."),y=L[Number(_)]??`card${_}`;return k.length?`${t}~${y}.${k.join(".")}`:`${t}~${y}`})}}const Te={fields:[{key:"cover",label:"Cover",kind:"image",alt:"title"},{key:"meta",label:"Eyebrow"},{key:"dateLabel",label:"Date"},{key:"title",label:"Title"},{key:"excerpt",label:"Excerpt",multiline:!0},{key:"href",label:"Link",kind:"link"},{key:u,label:"Tags",kind:"list",fields:[{key:"label",label:"Tag"}]}],blocks:[{type:E,label:"Card list"}],seedOnInsert:me},_e=["showCardPrice","showCardFinishes","showCardSizes","showCardBuy","showCardPage"],ke=e=>Object.fromEntries(Object.entries(e).filter(([t])=>!_e.includes(t))),R={fields:[{key:"label",label:"Label"},{key:"href",label:"Link",kind:"link"}],blocks:[{type:Y,label:"Menu link"}],seed:$},f=e=>e.dynamic===!0&&e.relationship==="bundles",Ke=(e={})=>ae(e),c={fields:q,blocks:[{type:ee,label:"Picture"},{type:Z,label:"Eyebrow"},{type:J,label:"Name"},{type:oe,label:"Specs"},{type:te,label:"Price"},{type:Q,label:"Colour"},{type:le,label:"Size"},{type:z,label:"Buy"}],seed:e=>{if(e.dynamic!==!0)return T(e);const t=b(e);return f(e)?m(t):T(t)}},ye=[{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"}],blocks:[{type:"RatingBlock",label:"Rating"}]},{block:"SpecTable",fields:[{key:"label",label:"Label"},{key:"value",label:"Value"}]},{block:"DetailRows",fields:[{key:"eyebrow",label:"Eyebrow"},{key:"title",label:"Title"},{key:"copy",label:"Body",multiline:!0},{key:"image",label:"Image",kind:"image",alt:"title"},{key:"tag",label:"Image tag"}]},{block:"FooterMenu",...R},{block:"MenuBlock",...R},{block:"ProductGrid",...c},{block:"AlloyWheelsListing",...c,seed:ie},{block:"RelatedProducts",...c,seed:e=>{const t=b({...ke(e),dynamic:!0});return f(t)?m(t):T(t,{legacyWellHonoured:!0})}},{block:"BundleOffer",...c,seed:e=>m(b({...e,columns:x(e),dynamic:!0}))},{block:"ProductHero",fields:[],blocks:[{type:M,label:"Price"}],seed:V},{block:"FilterBlock",fields:[{key:"label",label:"Filter name"},{key:v,label:"Options",kind:"list",fields:[{key:"label",label:"Option"},{key:"count",label:"Count"}]}],blocks:[{type:E,label:"Card list"}],seed:G},{block:"FilterChipsBlock",fields:[{key:"label",label:"Pick"},{key:"mark",label:"Remove mark"}],seed:W},{block:X,fields:[{key:"heading",label:"Subhead"},{key:"paragraph",label:"Paragraph",multiline:!0}],seed:j},{block:"Events",...Te}];D(ye);export{ye as STOREFRONT_CARD_TEMPLATES,f as drawsKits,Ee as eventsCardSeeds,Ke as productGridCardSeed,me as withEventsTemplate};
@@ -0,0 +1,10 @@
1
+ import type { Data } from "efficient-easel/blocks";
2
+ export type HeaderBarSettings = {
3
+ readonly sticky: unknown;
4
+ readonly topTextColor: unknown;
5
+ readonly heightPx: unknown;
6
+ readonly theme: unknown;
7
+ readonly bandCapped: boolean;
8
+ };
9
+ export declare function headerBarFromProps(props: Readonly<Record<string, unknown>>): HeaderBarSettings;
10
+ export declare function headerBarOf(data: Data): HeaderBarSettings;
@@ -0,0 +1 @@
1
+ import{chromeOwnWidth as e}from"efficient-web-builder/format/lib/content/section-width";function o(t){return{sticky:t.sticky,topTextColor:t.topTextColor,heightPx:t.heightPx,theme:t.sectionAccent,bandCapped:e(t).background==="content"}}function r(t){return o(t.content[0]?.props??{})}export{o as headerBarFromProps,r as headerBarOf};
@@ -4,6 +4,8 @@ import "./card-templates.js";
4
4
  import "./section-to-box-rows-reviews.js";
5
5
  import "./section-to-box-rows-spec.js";
6
6
  import "./section-to-box-rows-productgrid.js";
7
+ import "./section-to-box-rows-events.js";
7
8
  import "./section-to-box-rows-detail.js";
9
+ import "./section-to-box-rows-service.js";
8
10
  export declare function renderConfig(): Config;
9
11
  export declare function headerRenderConfig(): Config;
@@ -1 +1 @@
1
- import{Fragment as u,jsx as E}from"react/jsx-runtime";import{generalRenderMetas as h}from"efficient-web-builder/format/lib/document/blocks/general/metas";import{finishRenderRegistry as g}from"efficient-web-builder/render/lib/document/render-registry";import{buildBlockCategories as S}from"efficient-web-builder/format/lib/document/section-catalog";import{SITE_HEADER_TYPE as a}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"./section-to-box-rows-spec.js";import"./section-to-box-rows-productgrid.js";import"./section-to-box-rows-detail.js";import{COMMERCE_METAS as R}from"./blocks/commerce/metas.js";import{SERVICE_METAS as _}from"./blocks/service/metas.js";import P from"./blocks/text-part-shapes.json";import{addPageBlocksFromFooter as y}from"./footer-page-blocks.js";import{LAZY_DRAWS as f}from"./lazy-draws.js";import{drawPublishedStorefrontRoot as T}from"./storefront-root.js";import{withShopperAddressMark as b}from"../../components/catalog/ShopperScope.js";import{SHOPPER_BLOCK_TYPES as k}from"../wheels/shopper-first-paint.js";const A=P,O=(t,e)=>{const r=A[t];return{...e,...r?{textParts:r}:null}};let p=null;function l(){if(p)return p;const t={},e=h();for(const o of Object.keys(e))t[o]={...e[o],render:f[o]};const r={...R,..._};for(const o of Object.keys(r)){const c=k.has(o)?b(f[o]):f[o];t[o]=O(o,{...r[o],render:c})}y(t);const n={root:{render:T},categories:S(),components:t};return g(n),p=n,n}function j(t=l()){const e=t.components,r=Object.keys(e),n=new Set([a]),o=[a];for(;o.length;){const c=o.shift();for(const m of Object.values(e[c]?.fields??{})){if(m?.type!=="slot")continue;const d=m.allow??r.filter(s=>!m.disallow?.includes(s));for(const s of d)n.has(s)||!(s in e)||(n.add(s),o.push(s))}}return[...n]}let i=null;function G(){if(i)return i;const t=l(),e=t.components;return i={...t,root:{render:({children:r})=>E(u,{children:r})},components:Object.fromEntries(j(t).map(r=>[r,e[r]]))},i}export{G as headerRenderConfig,l as renderConfig};
1
+ import{Fragment as u,jsx as E}from"react/jsx-runtime";import{generalRenderMetas as h}from"efficient-web-builder/format/lib/document/blocks/general/metas";import{finishRenderRegistry as g}from"efficient-web-builder/render/lib/document/render-registry";import{buildBlockCategories as S}from"efficient-web-builder/format/lib/document/section-catalog";import{SITE_HEADER_TYPE as a}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"./section-to-box-rows-spec.js";import"./section-to-box-rows-productgrid.js";import"./section-to-box-rows-events.js";import"./section-to-box-rows-detail.js";import"./section-to-box-rows-service.js";import{COMMERCE_METAS as R}from"./blocks/commerce/metas.js";import{SERVICE_METAS as _}from"./blocks/service/metas.js";import P from"./blocks/text-part-shapes.json";import{addPageBlocksFromFooter as y}from"./footer-page-blocks.js";import{LAZY_DRAWS as f}from"./lazy-draws.js";import{drawPublishedStorefrontRoot as T}from"./storefront-root.js";import{withShopperAddressMark as b}from"../../components/catalog/ShopperScope.js";import{SHOPPER_BLOCK_TYPES as k}from"../wheels/shopper-first-paint.js";const A=P,O=(t,e)=>{const r=A[t];return{...e,...r?{textParts:r}:null}};let p=null;function l(){if(p)return p;const t={},e=h();for(const o of Object.keys(e))t[o]={...e[o],render:f[o]};const r={...R,..._};for(const o of Object.keys(r)){const m=k.has(o)?b(f[o]):f[o];t[o]=O(o,{...r[o],render:m})}y(t);const n={root:{render:T},categories:S(),components:t};return g(n),p=n,n}function j(t=l()){const e=t.components,r=Object.keys(e),n=new Set([a]),o=[a];for(;o.length;){const m=o.shift();for(const c of Object.values(e[m]?.fields??{})){if(c?.type!=="slot")continue;const d=c.allow??r.filter(s=>!c.disallow?.includes(s));for(const s of d)n.has(s)||!(s in e)||(n.add(s),o.push(s))}}return[...n]}let i=null;function N(){if(i)return i;const t=l(),e=t.components;return i={...t,root:{render:({children:r})=>E(u,{children:r})},components:Object.fromEntries(j(t).map(r=>[r,e[r]]))},i}export{N as headerRenderConfig,l as renderConfig};
@@ -1 +1 @@
1
- import{SECTION_BOX_SLOT as o,SECTION_BOX_TYPE as i,registerSectionToBox as g}from"efficient-web-builder/render/lib/sections/section-to-box";import{DIM as a,INNER_BOX as r,NO_PAD as m,SAME_KEYS as y,SECTION_BOX as S,TEXT as p}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{token as n}from"efficient-web-builder/render/lib/document/blocks/general/section-head-looks";import{CARD_ROW_FIELD_PROP as s}from"efficient-web-builder/format/lib/content/card-template";const c=e=>({textStyle:"body-5",...n("label",e),letterSpacing:.2,case:"upper"}),t=(e,l,d)=>({type:"Text",props:{...l,[s]:e,_partStyles:{text:d}}}),P=e=>({type:i,props:{...r,name:"Row",mirrorCards:e?"odd":"even",direction:"row",share:"equal",align:"center",gap:48,sectionPaddingTop:60,sectionPaddingBottom:60,sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60},slots:{[o]:[{type:i,props:{...r,name:"Words",direction:"column",gap:16},slots:{[o]:[t("eyebrow",p,{...c(13),color:"accent"}),t("title",p,{textStyle:"heading-2",...n("headingMedium",42,28),lineHeight:1.1,letterSpacing:-.02}),t("copy",a,{textStyle:"body-1",...n("body",15),lineHeight:1.6})]}},{type:i,props:{...r,name:"Picture",direction:"column",gap:12},slots:{[o]:[{type:"ImageBlock",props:{[s]:"image",aspect:"1/1",fit:"contain"}},t("tag",{...a,align:"right"},{...c(11),align:"right"})]}}]}}),_={name:"Feature Rows",boxProps:{...S,...m,direction:"column",gap:0},box:y,parts:[{kind:"core",keep:"rest",slots:e=>({template:[P(e.startLeft===!0)]})}]};g({DetailRows:_});export{P as detailRowSeed};
1
+ import{SECTION_BOX_SLOT as o,SECTION_BOX_TYPE as i,registerSectionToBox as c}from"efficient-web-builder/render/lib/sections/section-to-box";import{DIM as a,INNER_BOX as r,NO_PAD as d,SAME_KEYS as l,SECTION_BOX as m,TEXT as p}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{token as n}from"efficient-web-builder/render/lib/document/blocks/general/section-head-looks";import{CARD_ROW_FIELD_PROP as g}from"efficient-web-builder/format/lib/content/card-template";import{rowFieldTextSeed as t}from"efficient-web-builder/format/lib/document/blocks/general/Cards/card-seed";const s=e=>({textStyle:"body-5",...n("label",e),letterSpacing:.2,case:"upper"}),S=e=>({type:i,props:{...r,name:"Row",mirrorCards:e?"odd":"even",direction:"row",share:"equal",align:"center",gap:48,sectionPaddingTop:60,sectionPaddingBottom:60,sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60},slots:{[o]:[{type:i,props:{...r,name:"Words",direction:"column",gap:16},slots:{[o]:[t("eyebrow",p,{...s(13),color:"accent"}),t("title",p,{textStyle:"heading-2",...n("headingMedium",42,28),lineHeight:1.1,letterSpacing:-.02}),t("copy",a,{textStyle:"body-1",...n("body",15),lineHeight:1.6})]}},{type:i,props:{...r,name:"Picture",direction:"column",gap:12},slots:{[o]:[{type:"ImageBlock",props:{[g]:"image",aspect:"1/1",fit:"contain"}},t("tag",{...a,align:"right"},{...s(11),align:"right"})]}}]}}),y={name:"Feature Rows",boxProps:{...m,...d,direction:"column",gap:0},box:l,parts:[{kind:"core",keep:"rest",slots:e=>({template:[S(e.startLeft===!0)]})}]};c({DetailRows:y});export{S as detailRowSeed};
@@ -0,0 +1 @@
1
+ import{registerSectionToBox as o}from"efficient-web-builder/render/lib/sections/section-to-box";import{headOnlyRow as e}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-rows-head";import{CARD_TEMPLATE_SLOT as r}from"efficient-web-builder/format/lib/content/card-template";import{SECTION_ACCENT_INHERIT as t}from"efficient-web-builder/format/lib/content/section-surface";import{eventsCardSeeds as m}from"./card-templates.js";o({Events:e("Events",{slots:{[r]:m()},coreProps:{sectionAccent:t},roomBelow:{bottom:120,bottomPhone:70},pressHeading:!0})});
@@ -1 +1,2 @@
1
- export {};
1
+ import { type OwnPad } from "efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";
2
+ export declare const REVIEWS_BAND_OWN: OwnPad;
@@ -1 +1 @@
1
- import{SECTION_BOX_SLOT as s,SECTION_BOX_TYPE as n,headParts as c,registerSectionToBox as m}from"efficient-web-builder/render/lib/sections/section-to-box";import{DIM as a,DROP_COMMON as h,DROP_SIDE_PADDING as g,INNER_BOX as o,SAME_KEYS as P,SECTION_BOX as T,TEXT as e,headingCaseOf as O,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 _}from"efficient-web-builder/format/lib/content/card-template";import{FRAME_OWN_BOX as b}from"../../components/Reviews.js";import{bandRoomBelow as x}from"../sections/section-band.js";const p=x(b),r={top:84,bottom:p.bottom,topPhone:84,bottomPhone:p.bottomPhone},[w,E]=c("Testimonials"),i=(t,d,l)=>({type:"Text",props:{...d,[_]:t,_partStyles:{text:l}}}),R={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:{[s]:[{type:"Text",props:{...e,text:"“",_partStyles:{text:{textStyle:"heading-2",color:"accent",lineHeight:1}}}},i("quote",a,{size:16,lineHeight:1.6}),{type:n,props:{...o,name:"Name",gap:4,sectionPaddingTop:20,sectionBorder:{top:1}},slots:{[s]:[i("name",e,{textStyle:"body-5",weight:500,case:"upper",letterSpacing:.04}),i("role",a,{textStyle:"body-5"})]}}]}},B={name:"Testimonials",boxProps:t=>({...T,direction:"column",gap:44,sectionBorder:{top:1},...y(t,r)}),box:[...P,...S(r)],parts:[{kind:"group",name:"Heading",props:{...o,gap:16},parts:[{...w,props:e},{...E,props:e,style:{textStyle:"heading-2",lineHeight:1,letterSpacing:-.02}}]},{kind:"core",as:"Reviews",keep:["items","columns"],slots:{template:[R]}}],site:O("title"),drop:{...h,...g,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"}};m({Testimonials:B});
1
+ import{SECTION_BOX_SLOT as i,SECTION_BOX_TYPE as n,headParts as d,registerSectionToBox as l}from"efficient-web-builder/render/lib/sections/section-to-box";import{DIM as s,DROP_COMMON as c,DROP_SIDE_PADDING as m,INNER_BOX as t,SAME_KEYS as g,SECTION_BOX as h,TEXT as e,headingCaseOf as P,wrapperPad as T,wrapperPadKeys as O}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{rowFieldTextSeed as o}from"efficient-web-builder/format/lib/document/blocks/general/Cards/card-seed";import{FRAME_OWN_BOX as S}from"../../components/Reviews.js";import{bandRoomBelow as b}from"../sections/section-band.js";const a=b(S),y={top:84,bottom:a.bottom,topPhone:84,bottomPhone:a.bottomPhone},r=y,[x,_]=d("Testimonials"),w={type:n,props:{...t,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}}}},o("quote",s,{size:16,lineHeight:1.6}),{type:n,props:{...t,name:"Name",gap:4,sectionPaddingTop:20,sectionBorder:{top:1}},slots:{[i]:[o("name",e,{textStyle:"body-5",weight:500,case:"upper",letterSpacing:.04}),o("role",s,{textStyle:"body-5"})]}}]}},E={name:"Testimonials",boxProps:p=>({...h,direction:"column",gap:44,sectionBorder:{top:1},...T(p,r)}),box:[...g,...O(r)],parts:[{kind:"group",name:"Heading",props:{...t,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:[w]}}],site:P("title"),drop:{...c,...m,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"}};l({Testimonials:E});export{y as REVIEWS_BAND_OWN};
@@ -0,0 +1 @@
1
+ import{SECTION_BOX_SLOT as O,SECTION_BOX_TYPE as f,headParts as _,registerSectionToBox as v}from"efficient-web-builder/render/lib/sections/section-to-box";import{BUTTON as C,DIM as i,DROP_COMMON as a,DROP_SIDE_PADDING as s,FOLLOW_THE_BOX as H,INNER_BOX as c,SAME_KEYS as E,SECTION_BOX as h,SH_LINK as W,TEXT as n,bandPage as I,smallText as m,surfaceAccent as y,wrapperPad as b,wrapperPadKeys as R}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{boxPadding as D,token as o}from"efficient-web-builder/format/lib/document/seed-parts";import{CARD_ROW_FIELD_PROP as F}from"efficient-web-builder/format/lib/content/card-template";import{phoneKey as w}from"efficient-easel/draw";import{REVIEWS_BAND_OWN as K}from"./section-to-box-rows-reviews.js";import{rowFieldTextSeed as p}from"efficient-web-builder/format/lib/document/blocks/general/Cards/card-seed";const l=e=>[...E.filter(t=>t!=="sectionAccent"),["sectionAccent","sectionAccent",(t,r,d)=>y(t,d)],...R(e)],x=(e,t,r)=>(d,N)=>({...h,sectionAccent:y(d.sectionAccent??0,N),direction:"column",gap:t,gapPhone:r,sectionBorder:{top:1},...b(d,e)}),P=(e,t,r)=>({kind:"text",key:e,role:"heading",props:n,style:{textStyle:"heading-2",...o("headingMedium",44,32),weight:500,case:"upper",lineHeight:t,letterSpacing:r}}),u=(e,t,r={})=>({kind:"group",name:"Heading",props:{...c,gap:e,gapPhone:e,...r},parts:t}),k=(e={})=>({kind:"core",keep:"rest",props:H,...e}),g=K,[L]=_("ReviewForm"),M=()=>({name:"Review Form",boxProps:x(g,48,32),box:l(g),parts:[u(16,[{...L,props:n},P("title",1,-.02)]),k()],pressKeepsEmpty:["eyebrow","title"],drop:{...a,...s,headPlacement:"the head is the Text blocks above the form, which is always own-box here"}}),[X]=_("Reviews"),T=e=>({textStyle:"body-5",...o("label",12),case:"upper",letterSpacing:e}),G={type:f,props:{...c,name:"Card",gap:16,...D(40,40,32,32),sectionAccent:0},slots:{[O]:[{type:"RatingBlock",props:{[F]:"rating"}},p("title",n,{textStyle:"heading-1",...o("body",19),weight:500,case:"upper",lineHeight:1.2,letterSpacing:-.01}),p("quote",i,{textStyle:"body-1",...o("body",15),lineHeight:1.65}),{type:f,props:{...c,name:"Byline",direction:"row",justify:"between",align:"start",share:"content",phoneRow:2,[w("share")]:"content",gap:16,sectionPaddingTop:20,sectionPaddingTopPhone:20,sectionBorder:{top:1}},slots:{[O]:[p("name",n,T(.22)),p("dateLabel",{...i,align:"right"},{...T(.18),align:"right"}),p("role",{...i,align:"right"},{...T(.18),align:"right"})]}}]}},V=()=>({name:"Reviews",boxProps:x(g,48,32),box:l(g),parts:[u(16,[{...X,props:n},P("title",1,-.02)]),k({slots:{template:[G]}})],pressKeepsEmpty:["eyebrow","title"],drop:{...a,...s,eyebrowLook:"the eyebrow Text wears the plain eyebrow's start look (Reviews' default); a stored `filled` look needs a filled Text look",headPlacement:"the head is the Text blocks above the reviews, which are always own-box here"}}),S={top:88,bottom:88,topTablet:88,bottomTablet:88,topPhone:64,bottomPhone:64},j=()=>({name:"Booking Form",boxProps:x(S,40,40),box:l(S),parts:[u(16,[m("eyebrow",{...o("label",12),weight:600,letterSpacing:.24,color:"accent"}),P("heading",.98,-.025),{kind:"text",key:"intro",props:{...i,maxWidth:660},style:{textStyle:"heading-1",...o("body",17),weight:400,case:"none",lineHeight:1.65,color:"muted"}}],{maxWidth:760}),k()],pressKeepsEmpty:["eyebrow","heading","intro"],drop:{...a,...s}}),B={top:88,bottom:88,topPhone:64,bottomPhone:64},Y=()=>({name:"Ready-to-Order Banner",boxProps:e=>({...h,direction:"column",align:"center",gap:20,gapPhone:20,...b(e,B)}),box:[...E,...R(B)],parts:[{...m("eyebrow"),props:{...n,align:"center"}},{kind:"text",key:"title",role:"heading",props:{...n,align:"center",maxWidth:720},style:{textStyle:"heading-1",...o("headingMedium",44,30),weight:500,case:"none",lineHeight:1.05,letterSpacing:-.03,align:"center"}},{kind:"text",key:"body",props:{...n,align:"center",maxWidth:560},style:{textStyle:"body-1",...o("body",16),lineHeight:1.6,align:"center"}},{kind:"group",name:"Buttons",props:{...c,direction:"row",align:"center",justify:"center",share:"content",phoneRow:2,[w("share")]:"content",gap:24,gapPhone:24,sectionPaddingTop:8,sectionPaddingTopPhone:8},parts:[{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:e=>({...C,align:"center",href:typeof e.ctaHref=="string"&&e.ctaHref?e.ctaHref:"/checkout"})},{kind:"button",key:"secondaryText",href:"secondaryHref",variant:"ghost",props:{...W,align:"center",icon:"none"},style:{...o("label",13),case:"upper",letterSpacing:.2,color:"muted"}}]}],pressKeepsEmpty:["eyebrow","title","body"],drop:{...a,...s}}),A={top:60,bottom:0,topPhone:60,bottomPhone:0},q=()=>({name:"Contact Form",boxProps:(e,t)=>({...h,sectionAccent:y(e.sectionAccent??0,t),direction:"column",gap:0,gapPhone:0,...b(e,A)}),box:l(A),parts:[{kind:"group",name:"Header",props:{...c,direction:"row",align:"center",share:"content",phoneRow:2,[w("share")]:"content",gap:24,gapPhone:24,sectionPaddingBottom:24,sectionPaddingBottomPhone:24,sectionBorder:{bottom:1}},parts:[m("routingNumber"),{kind:"text",key:"routingTagline",props:i,style:{textStyle:"heading-1",...o("body",14),weight:400,case:"upper",letterSpacing:.04,color:"muted"}}]},{kind:"core",keep:"rest",derive:{reads:["sectionAccent"],props:(e,t)=>({sectionAccent:I(e.sectionAccent??0,t)})}}],drop:{...a,...s}});v({ContactRouting:q(),ReviewForm:M(),AppointmentBooking:j(),Reviews:V(),CheckoutCTA:Y()});
@@ -1 +1 @@
1
- import{SECTION_BOX_SLOT as a,SECTION_BOX_TYPE as m,registerSectionToBox as c}from"efficient-web-builder/render/lib/sections/section-to-box";import{headOnlyRow as l}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-rows-head";import{DIM as P,INNER_BOX as d,TEXT as g,lineSides as B}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{bandRoomBelow as E}from"../sections/section-band.js";import{SPEC_TABLE_BAND as _}from"../sections/spec-table-band.js";import{token as b}from"efficient-web-builder/render/lib/document/blocks/general/section-head-looks";import{CARD_ROW_FIELD_PROP as S}from"efficient-web-builder/format/lib/content/card-template";import{phoneKey as i}from"efficient-easel/draw";const r={textStyle:"body-5",...b("label",14),letterSpacing:.05,lineHeight:1.5},s=(t,e,p)=>({type:"Text",props:{...e,[S]:t,_partStyles:{text:p}}}),T={type:m,props:{...d,name:"Row",direction:"row",justify:"between",align:"start",share:"content",phoneRow:2,[i("share")]:"content",[i("wrap")]:!1,gap:24,sectionPaddingTop:16,sectionPaddingBottom:16,sectionPaddingTopPhone:16,sectionPaddingBottomPhone:16},slots:{[a]:[s("label",P,{...r,case:"upper"}),s("value",{...g,align:"right"},{...r,align:"right"})]}},o=l("SpecTable",{slots:{template:[T]}}),n=E(_.ownBox),h={...o,boxProps:(t,e)=>({...typeof o.boxProps=="function"?o.boxProps(t,e):o.boxProps,sectionPaddingBottom:n.bottom,sectionPaddingBottomPhone:n.bottomPhone,...n.line?{sectionBorder:B({bottom:1})}:{}})};c({SpecTable:h});
1
+ import{SECTION_BOX_SLOT as p,SECTION_BOX_TYPE as a,registerSectionToBox as m}from"efficient-web-builder/render/lib/sections/section-to-box";import{headOnlyRow as l}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-rows-head";import{DIM as c,INNER_BOX as d,TEXT as P,lineSides as g}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{bandRoomBelow as B}from"../sections/section-band.js";import{SPEC_TABLE_BAND as b}from"../sections/spec-table-band.js";import{token as E}from"efficient-web-builder/render/lib/document/blocks/general/section-head-looks";import{rowFieldTextSeed as e}from"efficient-web-builder/format/lib/document/blocks/general/Cards/card-seed";import{phoneKey as n}from"efficient-easel/draw";const i={textStyle:"body-5",...E("label",14),letterSpacing:.05,lineHeight:1.5},S={type:a,props:{...d,name:"Row",direction:"row",justify:"between",align:"start",share:"content",phoneRow:2,[n("share")]:"content",[n("wrap")]:!1,gap:24,sectionPaddingTop:16,sectionPaddingBottom:16,sectionPaddingTopPhone:16,sectionPaddingBottomPhone:16},slots:{[p]:[e("label",c,{...i,case:"upper"}),e("value",{...P,align:"right"},{...i,align:"right"})]}},o=l("SpecTable",{slots:{template:[S]}}),t=B(b.ownBox),T={...o,boxProps:(r,s)=>({...typeof o.boxProps=="function"?o.boxProps(r,s):o.boxProps,sectionPaddingBottom:t.bottom,sectionPaddingBottomPhone:t.bottomPhone,...t.line?{sectionBorder:g({bottom:1})}:{}})};m({SpecTable:T});
@@ -1 +1 @@
1
- import{accentInk as n,contrastRatio as o}from"efficient-web-builder/format/lib/theme";function u(r){const t=(r??"").trim();return o(t,"#000000")===null?null:n(t)==="#000000"}export{u as surfaceIsLight};
1
+ import{contrastRatio as o,fillIsDark as n}from"efficient-web-builder/format/lib/theme";function l(t){const r=(t??"").trim();return o(r,"#000000")===null?null:!n(r)}export{l as surfaceIsLight};
@@ -0,0 +1,9 @@
1
+ export declare const CARD_TONES: {
2
+ readonly light: readonly ["#dcdde0", "#e2e0db", "#d7dadd", "#dddbd8"];
3
+ readonly dark: readonly ["#35373b", "#3a3b38", "#33363b", "#3b393b"];
4
+ };
5
+ export declare const CARD_RANDOM_COLOURS: readonly ["#ccd5df", "#e2dace", "#d2dbd1", "#dbd3df"];
6
+ export declare function cardHash(key: string): number;
7
+ export declare function productTone(colour: unknown): string;
8
+ export declare function productToneVaried(colour: unknown, key: string): string;
9
+ export declare function randomCardColour(key: string): string;
@@ -0,0 +1 @@
1
+ import{hexToRgb as l,parseHexColor as c}from"efficient-shell/format";import{fillIsDark as u}from"efficient-web-builder/format/lib/theme";const d={light:["#dcdde0","#e2e0db","#d7dadd","#dddbd8"],dark:["#35373b","#3a3b38","#33363b","#3b393b"]},e=["#ccd5df","#e2dace","#d2dbd1","#dbd3df"];function o(t){let r=2166136261;for(let n=0;n<t.length;n++)r^=t.charCodeAt(n),r=Math.imul(r,16777619)>>>0;return r}const a=t=>typeof t=="string"&&l(t.trim())!==null?c(t):null;function i(t){const r=a(t);return r===null?null:u(r)?d.light:d.dark}function p(t){return i(t)?.[0]??""}function x(t,r){const n=i(t);return n?n[o(r)%n.length]:""}function b(t){return t?e[o(t)%e.length]:""}export{e as CARD_RANDOM_COLOURS,d as CARD_TONES,o as cardHash,p as productTone,x as productToneVaried,b as randomCardColour};
@@ -1,5 +1,5 @@
1
1
  import { type GridBand } from "./fill-row.js";
2
- export declare const SET_CARD_SINGLE_BELOW: 800 | 720;
2
+ export declare const SET_CARD_SINGLE_BELOW: 800;
3
3
  export declare function packsFull(spans: readonly number[], columns: number): boolean;
4
4
  export declare function cardsWithoutHole(spans: readonly number[], columns: number, limit: number | undefined, topUp?: boolean): number;
5
5
  export interface NoHoleBand {
@@ -1,7 +1,10 @@
1
1
  import { type GalleryLayoutKey } from "efficient-web-builder/format/lib/content/gallery-layout";
2
+ import { type HoverMediaKind } from "efficient-web-builder/format/lib/animation/hover";
2
3
  import type { ProductSourceOptions } from "./product-source.js";
3
4
  export declare const PRODUCT_PICTURES_SOURCE = "product-pictures";
4
5
  export declare const EVERY_IMAGE_ZONE = "all";
6
+ export type ImageZone = Exclude<HoverMediaKind, "renderings">;
7
+ export declare const IMAGE_ZONES: readonly ImageZone[];
5
8
  export interface ProductPicturesOptions extends ProductSourceOptions {
6
9
  mediaZone?: string;
7
10
  }
@@ -1 +1 @@
1
- import{sourcedRows as E}from"efficient-web-builder/format/lib/content/block-sources";import{say as r}from"efficient-web-builder/format/lib/editor-words";import{resolveGalleryLayout as P}from"efficient-web-builder/format/lib/content/gallery-layout";import{servedListOf as T,servedRowLists as R,servedWords as _}from"../content/served-lists.js";const A="product-pictures",b="all",O="twoThenThreesPhoto";function I(t){const o=typeof t.layout=="string"&&t.layout?t.layout:void 0;return o&&P(o)||t.columns!=null&&t.columns!==""?o:O}const L=12,S=4,v=t=>Array.from({length:t},(o,n)=>({key:`sample-${n+1}`,process:r("Category"),eyebrow:r("Vehicle"),name:r("Product name"),meta:r("Finish")}));function M(t,o,n){const c=typeof n=="number"&&n>0?Math.floor(n):void 0,{rows:p,sample:f}=E(t,o,v(c??S)),y=f?null:R(t,e=>_(e.photos,L)),l=new Set,u=[];return p.forEach((e,m)=>{const s=e.cover??"";if(!f&&!s)return;const a=e.key||`row-${m+1}`;if(l.has(a))return;l.add(a);const i=T(y,e,m)??[],h=i[0]===s?i.slice(1):i.filter(d=>d!==s);u.push({image:s,photos:h.map(d=>({src:d})),href:e.href||void 0,process:e.process||void 0,eyebrow:e.eyebrow||void 0,name:e.name||void 0,meta:e.meta||void 0,tile:{id:a,tag:e.process??"",name:e.name??""}})}),c?u.slice(0,c):u}export{b as EVERY_IMAGE_ZONE,O as PRODUCT_PICTURES_LAYOUT,A as PRODUCT_PICTURES_SOURCE,M as productPictureTiles,I as productPicturesLayout};
1
+ import{sourcedRows as E}from"efficient-web-builder/format/lib/content/block-sources";import{say as s}from"efficient-web-builder/format/lib/editor-words";import{resolveGalleryLayout as _}from"efficient-web-builder/format/lib/content/gallery-layout";import{HOVER_MEDIA_KINDS as O}from"efficient-web-builder/format/lib/animation/hover";import{servedListOf as P,servedRowLists as R,servedWords as T}from"../content/served-lists.js";const U="product-pictures",b="all",D=O.filter(e=>e!=="renderings"),S="twoThenThreesPhoto";function G(e){const o=typeof e.layout=="string"&&e.layout?e.layout:void 0;return o&&_(o)||e.columns!=null&&e.columns!==""?o:S}const x=12,A=4,I=e=>Array.from({length:e},(o,n)=>({key:`sample-${n+1}`,process:s("Category"),eyebrow:s("Vehicle"),name:s("Product name"),meta:s("Finish")}));function N(e,o,n){const c=typeof n=="number"&&n>0?Math.floor(n):void 0,{rows:p,sample:f}=E(e,o,I(c??A)),y=f?null:R(e,t=>T(t.photos,x)),l=new Set,u=[];return p.forEach((t,m)=>{const r=t.cover??"";if(!f&&!r)return;const a=t.key||`row-${m+1}`;if(l.has(a))return;l.add(a);const i=P(y,t,m)??[],h=i[0]===r?i.slice(1):i.filter(d=>d!==r);u.push({image:r,photos:h.map(d=>({src:d})),href:t.href||void 0,process:t.process||void 0,eyebrow:t.eyebrow||void 0,name:t.name||void 0,meta:t.meta||void 0,tile:{id:a,tag:t.process??"",name:t.name??""}})}),c?u.slice(0,c):u}export{b as EVERY_IMAGE_ZONE,D as IMAGE_ZONES,S as PRODUCT_PICTURES_LAYOUT,U as PRODUCT_PICTURES_SOURCE,N as productPictureTiles,G as productPicturesLayout};
@@ -5,6 +5,8 @@ import { FILTER_BLOCK_TYPE, PRODUCT_GRID_TYPE } from "../document/document-nodes
5
5
  export declare const ALLOY_WHEELS_LISTING_TYPE = "AlloyWheelsListing";
6
6
  export { PRODUCT_GRID_TYPE };
7
7
  export declare const GRID_CATALOG_PROP = "catalog";
8
+ export declare const GRID_CATALOG_TOTAL_PROP = "catalogTotal";
9
+ export declare const GRID_TOP_UP_SPARE = 12;
8
10
  export declare const CATALOG_FILTER_BAR_TYPE = "CatalogFilterBar";
9
11
  export declare const FIELD_USAGE_PROP = "fieldUsage";
10
12
  export declare const LISTING_QUERY_PROP = "requestQuery";
@@ -18,6 +20,7 @@ export declare function pageHasHydratedValues(data: Data | null | undefined): bo
18
20
  export declare function pageReadsFieldUsage(data: Data | null | undefined): boolean;
19
21
  export declare function hydrateFieldUsage(data: Data, answers: readonly FieldUsageAnswer[]): Data;
20
22
  export declare function listingCatalogKinds(data: Data | null | undefined): ProductKind[];
23
+ export declare function listingCatalogBound(data: Data | null | undefined): number | undefined;
21
24
  export declare function listingWantsWheelsOnly(kinds: readonly ProductKind[]): boolean;
22
25
  export declare function hydrateWheelsListing(data: Data, products: ProductSummary[] | WheelSummary[]): Data;
23
26
  export declare function stampListingQuery(data: Data, query: string): Data;
@@ -1 +1 @@
1
- import{resolvePlpKinds as O}from"../catalog/plp-item.js";import{gridKindsOf as E,gridRowsOf as S,isLinkedSource as T}from"./grid-source.js";import{FILTER_BLOCK_TYPE as y,PRODUCT_GRID_TYPE as L,documentNodes as W,mapDocumentNodes as G}from"../document/document-nodes.js";import{selectedRangesOf as I,stripSelectedRanges as f}from"./selected-ranges.js";import{withShopperFirstPaint as N,withoutShopperFirstPaint as A,withoutShopperFirstPaintNode as P}from"./shopper-first-paint.js";const p="AlloyWheelsListing",x="catalog",U="CatalogFilterBar",i="fieldUsage",R="requestQuery";function l(r){return r.props?.source}function o(r){return r?.type===L&&T(l(r))}function a(r){return r?.type===U||r?.type===y}function g(r){return r?.type===p||o(r)||a(r)}const u=r=>W(r);function d(r){return r?u(r).some(t=>t?.type===p||o(t)):!1}function K(r){return r?d(r)||u(r).some(t=>P(t)!==t)||f(r)!==r:!1}function Q(r){return r?u(r).some(g):!1}function q(r,t){return t.length===0?r:c(r,g,e=>({...e,props:{...e.props??{},[i]:t}}))}function v(r){if(!r)return[];const t=new Set;for(const e of u(r)){if(e?.type!==p&&!o(e))continue;const s=e.props?.kinds;for(const n of o(e)?E(l(e),s):O(s))t.add(n)}return[...t]}function V(r){return r.length===1&&r[0]==="alloy-wheel"}function b(r,t){const e=I(r.root?.props);return N(C(r,s=>o(s)?{...s,props:{...h(s).props,[x]:S(l(s),s.props?.kinds,t)}}:{...s,props:{..._(s).props,products:t}}),e)}function j(r,t){const e=t.replace(/^\?/,"");return e?c(r,s=>s?.type===p,s=>({...s,props:{...s.props??{},[R]:e}})):r}function z(r){return A(c(f(r),g,t=>a(t)?w(t):o(t)?h(t):_(t)))}function w(r){if(!r.props||!(i in r.props))return r;const{[i]:t,...e}=r.props;return{...r,props:e}}function h(r){const{[x]:t,[i]:e,...s}=r.props??{},n=s.source;if(n&&"wheels"in n){const{wheels:m,...F}=n;s.source=F}return{...r,props:s}}function J(r){const t=f({content:[r]}).content[0],e=P(t);return o(e)?h(e):a(e)?w(e):e?.type===p?_(e):e}function _(r){const{wheels:t,products:e,[i]:s,[R]:n,...m}=r.props??{};return{...r,props:m}}function C(r,t){return c(r,e=>e?.type===p||o(e),t)}function c(r,t,e){return G(r,s=>t(s)?e(s):s)}export{p as ALLOY_WHEELS_LISTING_TYPE,U as CATALOG_FILTER_BAR_TYPE,i as FIELD_USAGE_PROP,y as FILTER_BLOCK_TYPE,x as GRID_CATALOG_PROP,R as LISTING_QUERY_PROP,L as PRODUCT_GRID_TYPE,z as dehydrateWheelsListing,J as dehydrateWheelsListingNode,q as hydrateFieldUsage,b as hydrateWheelsListing,v as listingCatalogKinds,V as listingWantsWheelsOnly,K as pageHasHydratedValues,d as pageHasWheelsListing,Q as pageReadsFieldUsage,j as stampListingQuery};
1
+ import{cardHoverOf as I}from"efficient-web-builder/format/lib/animation/hover";import{resolvePlpKinds as k}from"../catalog/plp-item.js";import{gridPagingOf as W}from"../sections/product-grid-pages.js";import{gridKindsOf as L,gridRowsOf as C,isAllProductsSource as N,isLinkedSource as U}from"./grid-source.js";import{FILTER_BLOCK_TYPE as O,PRODUCT_GRID_TYPE as R,documentNodes as v,mapDocumentNodes as D}from"../document/document-nodes.js";import{selectedRangesOf as H,stripSelectedRanges as h}from"./selected-ranges.js";import{withShopperFirstPaint as Y,withoutShopperFirstPaint as B,withoutShopperFirstPaintNode as T}from"./shopper-first-paint.js";const u="AlloyWheelsListing",m="catalog",w="catalogTotal",K=12,M="CatalogFilterBar",f="fieldUsage",S="requestQuery";function l(e){return e.props?.source}function i(e){return e?.type===R&&U(l(e))}function a(e){return e?.type===M||e?.type===O}function A(e,r){if(r)return;const{limit:t,cap:n}=W(e.props??{});return n?Math.ceil(t)+K:void 0}function _(e){return e?.type===u||i(e)||a(e)}const c=e=>v(e);function Q(e){return e?c(e).some(r=>r?.type===u||i(r)):!1}function te(e){return e?Q(e)||c(e).some(r=>T(r)!==r)||h(e)!==e:!1}function re(e){return e?c(e).some(_):!1}function ne(e,r){return r.length===0?e:g(e,_,t=>({...t,props:{...t.props??{},[f]:r}}))}function q(e){if(!e)return[];const r=new Set;for(const t of c(e)){if(t?.type!==u&&!i(t))continue;const n=t.props?.kinds;for(const o of i(t)?L(l(t),n):k(n))r.add(o)}return[...r]}function oe(e){if(!e)return;const r=c(e);if(r.some(a))return;const t=q(e).length;let n;for(const o of r){if(o?.type===u)return;if(!i(o))continue;const s=A(o,!1),p=o.props??{},d=new Set(L(l(o),p.kinds)),E=["num","title","description","linkText"].some(x=>typeof p[x]=="string"&&p[x]!=="");if(s===void 0||!N(l(o))||d.size!==t||E)return;n=Math.max(n??0,s)}return n}function se(e){return e.length===1&&e[0]==="alloy-wheel"}function ie(e,r){const t=H(e.root?.props),n=c(e).some(a);return Y(b(e,o=>i(o)?z(o,r,A(o,n)):{...o,props:{...y(o).props,products:F(o,r)}}),t)}function F(e,r){const t=I(e.props??{},e.type??""),n=t.kind==="nextImage"&&t.media&&t.media.kind!=="renderings"?t.media.kind:null;return r.map(o=>{const{hoverMedia:s,...p}=o;return s===void 0?o:n&&s?.[n]?{...p,hoverMedia:{[n]:s[n]}}:p})}function z(e,r,t){const n=F(e,C(l(e),e.props?.kinds,r)),o={...P(e).props};return t!==void 0&&n.length>t?(o[m]=n.slice(0,t),o[w]=n.length):o[m]=n,{...e,props:o}}function pe(e,r){const t=r.replace(/^\?/,"");return t?g(e,n=>n?.type===u,n=>({...n,props:{...n.props??{},[S]:t}})):e}function ue(e){return B(g(h(e),_,r=>a(r)?G(r):i(r)?P(r):y(r)))}function G(e){if(!e.props||!(f in e.props))return e;const{[f]:r,...t}=e.props;return{...e,props:t}}function P(e){const{[m]:r,[w]:t,[f]:n,...o}=e.props??{},s=o.source;if(s&&"wheels"in s){const{wheels:p,...d}=s;o.source=d}return{...e,props:o}}function ce(e){const r=h({content:[e]}).content[0],t=T(r);return i(t)?P(t):a(t)?G(t):t?.type===u?y(t):t}function y(e){const{wheels:r,products:t,[f]:n,[S]:o,...s}=e.props??{};return{...e,props:s}}function b(e,r){return g(e,t=>t?.type===u||i(t),r)}function g(e,r,t){return D(e,n=>r(n)?t(n):n)}export{u as ALLOY_WHEELS_LISTING_TYPE,M as CATALOG_FILTER_BAR_TYPE,f as FIELD_USAGE_PROP,O as FILTER_BLOCK_TYPE,m as GRID_CATALOG_PROP,w as GRID_CATALOG_TOTAL_PROP,K as GRID_TOP_UP_SPARE,S as LISTING_QUERY_PROP,R as PRODUCT_GRID_TYPE,ue as dehydrateWheelsListing,ce as dehydrateWheelsListingNode,ne as hydrateFieldUsage,ie as hydrateWheelsListing,oe as listingCatalogBound,q as listingCatalogKinds,se as listingWantsWheelsOnly,te as pageHasHydratedValues,Q as pageHasWheelsListing,re as pageReadsFieldUsage,pe as stampListingQuery};