efficient-storefront-blocks 0.84.0 → 0.86.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 (146) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/chunks/{EditorPreviewCheckout-3NVDTH56.js → EditorPreviewCheckout-4LNXFNN7.js} +1 -1
  3. package/dist/chunks/{SiteEditorProvider-77K7CGYZ.js → SiteEditorProvider-A2HMVDKS.js} +1 -1
  4. package/dist/chunks/{chunk-F3MB7QCR.js → chunk-ALMIS7CK.js} +1 -1
  5. package/dist/chunks/{chunk-VYOK2XBF.js → chunk-EUKK2IN6.js} +1 -1
  6. package/dist/chunks/chunk-FJRKNPNN.js +340 -0
  7. package/dist/chunks/chunk-SLRULFYY.js +1 -0
  8. package/dist/chunks/{chunk-VJLQXB7I.js → chunk-TGBNREUJ.js} +1 -1
  9. package/dist/chunks/{fitment-data-PWXEDMOA.js → fitment-data-TSYW6AFA.js} +1 -1
  10. package/dist/contract.js +2 -2
  11. package/dist/editor/lib/document/blocks/commerce/DetailRows/fields.js +1 -1
  12. package/dist/editor/lib/document/blocks/commerce/FitmentPicker/fields.d.ts +2 -0
  13. package/dist/editor/lib/document/blocks/commerce/FitmentPicker/fields.js +1 -0
  14. package/dist/editor/lib/document/blocks/commerce/FitmentTable/fields.js +1 -1
  15. package/dist/editor/lib/document/blocks/commerce/ProductGrid/fields.js +1 -1
  16. package/dist/editor/lib/document/blocks/commerce/SpecTable/fields.js +1 -1
  17. package/dist/editor/lib/document/blocks/commerce/StockFitment/fields.d.ts +2 -0
  18. package/dist/editor/lib/document/blocks/commerce/StockFitment/fields.js +1 -0
  19. package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
  20. package/dist/editor/lib/document/blocks/commerce/index.js +1 -1
  21. package/dist/editor/lib/document/blocks/commerce/page-rules.d.ts +5 -0
  22. package/dist/editor/lib/document/blocks/commerce/page-rules.js +1 -1
  23. package/dist/editor/lib/document/blocks/service/ArticleBody/fields.d.ts +2 -0
  24. package/dist/editor/lib/document/blocks/service/ArticleBody/fields.js +1 -0
  25. package/dist/editor/lib/document/blocks/service/SiteFooter/fields.js +1 -1
  26. package/dist/editor/lib/document/blocks/service/SiteHeader/fields.js +1 -1
  27. package/dist/editor/lib/document/blocks/service/index.d.ts +1 -1
  28. package/dist/editor/lib/document/blocks/service/index.js +1 -1
  29. package/dist/editor/lib/document/box-header.d.ts +1 -1
  30. package/dist/editor/lib/document/box-header.js +1 -1
  31. package/dist/editor/lib/document/config.d.ts +1 -0
  32. package/dist/editor/lib/document/config.js +1 -1
  33. package/dist/editor/lib/document/popup-look-fields.d.ts +4 -0
  34. package/dist/editor/lib/document/popup-look-fields.js +1 -0
  35. package/dist/editor/lib/efficient-backend.js +1 -1
  36. package/dist/editor/lib/efficient-block-sources.js +1 -1
  37. package/dist/editor/lib/storefront-editor-words.d.ts +21 -1
  38. package/dist/editor/lib/storefront-editor-words.js +1 -1
  39. package/dist/editor.css +1 -1
  40. package/dist/index.js +134 -58
  41. package/dist/render/app/globals.css +156 -0
  42. package/dist/render/built-with.json +1 -1
  43. package/dist/render/components/ArticleBody.d.ts +7 -0
  44. package/dist/render/components/ArticleBody.js +1 -0
  45. package/dist/render/components/BoxHeaderBar.d.ts +2 -1
  46. package/dist/render/components/BoxHeaderBar.js +1 -1
  47. package/dist/render/components/CartContext.d.ts +1 -0
  48. package/dist/render/components/CartContext.js +1 -1
  49. package/dist/render/components/CartDrawer.d.ts +4 -3
  50. package/dist/render/components/CartDrawer.js +1 -4
  51. package/dist/render/components/DetailRows.d.ts +6 -1
  52. package/dist/render/components/DetailRows.js +1 -1
  53. package/dist/render/components/PopupFrame.d.ts +10 -1
  54. package/dist/render/components/PopupFrame.js +5 -1
  55. package/dist/render/components/ProductGridSection.d.ts +2 -1
  56. package/dist/render/components/ProductGridSection.js +1 -1
  57. package/dist/render/components/PublishedHeader.js +1 -1
  58. package/dist/render/components/Reviews.d.ts +1 -0
  59. package/dist/render/components/Reviews.js +1 -1
  60. package/dist/render/components/SectionBand.d.ts +2 -1
  61. package/dist/render/components/SectionBand.js +1 -1
  62. package/dist/render/components/SectionBandChoice.d.ts +2 -1
  63. package/dist/render/components/SectionBandChoice.js +1 -1
  64. package/dist/render/components/SectionGroupBody.d.ts +2 -2
  65. package/dist/render/components/SectionGroupBody.js +1 -1
  66. package/dist/render/components/SpecTable.d.ts +3 -1
  67. package/dist/render/components/SpecTable.js +1 -1
  68. package/dist/render/components/TyreSizeGrid.d.ts +17 -0
  69. package/dist/render/components/TyreSizeGrid.js +1 -0
  70. package/dist/render/components/fitment/FitmentPickerGrid.d.ts +5 -1
  71. package/dist/render/components/fitment/FitmentPickerGrid.js +1 -1
  72. package/dist/render/components/fitment/FitmentPickerPart.d.ts +8 -0
  73. package/dist/render/components/fitment/FitmentPickerPart.js +1 -0
  74. package/dist/render/components/fitment/StockFitmentPart.d.ts +4 -0
  75. package/dist/render/components/fitment/StockFitmentPart.js +1 -0
  76. package/dist/render/components/fitment/useVehicleFit.d.ts +2 -1
  77. package/dist/render/components/fitment/useVehicleFit.js +1 -1
  78. package/dist/render/components/pdp-dynamic/DynamicDetailRows.d.ts +2 -0
  79. package/dist/render/components/pdp-dynamic/DynamicDetailRows.js +1 -1
  80. package/dist/render/components/pdp-dynamic/DynamicFitmentTable.d.ts +5 -0
  81. package/dist/render/components/pdp-dynamic/DynamicFitmentTable.js +1 -1
  82. package/dist/render/components/pdp-dynamic/DynamicSpecTable.d.ts +1 -0
  83. package/dist/render/components/pdp-dynamic/DynamicSpecTable.js +1 -1
  84. package/dist/render/components/pdp-dynamic/DynamicTyreSizes.js +1 -1
  85. package/dist/render/components/pdp-dynamic/FitmentTableBlock.d.ts +3 -1
  86. package/dist/render/components/pdp-dynamic/FitmentTableBlock.js +1 -1
  87. package/dist/render/lib/content/article-body-seed.d.ts +9 -0
  88. package/dist/render/lib/content/article-body-seed.js +1 -0
  89. package/dist/render/lib/content/article-body.d.ts +8 -0
  90. package/dist/render/lib/content/article-body.js +5 -0
  91. package/dist/render/lib/content/article-page-seed.d.ts +12 -0
  92. package/dist/render/lib/content/article-page-seed.js +1 -0
  93. package/dist/render/lib/document/blocks/commerce/DetailRows/meta.d.ts +6 -0
  94. package/dist/render/lib/document/blocks/commerce/DetailRows/meta.js +1 -1
  95. package/dist/render/lib/document/blocks/commerce/DetailRows/render.js +1 -1
  96. package/dist/render/lib/document/blocks/commerce/FitmentPicker/meta.d.ts +2 -0
  97. package/dist/render/lib/document/blocks/commerce/FitmentPicker/meta.js +1 -0
  98. package/dist/render/lib/document/blocks/commerce/FitmentPicker/render.d.ts +2 -0
  99. package/dist/render/lib/document/blocks/commerce/FitmentPicker/render.js +1 -0
  100. package/dist/render/lib/document/blocks/commerce/FitmentTable/meta.js +1 -1
  101. package/dist/render/lib/document/blocks/commerce/FitmentTable/render.js +1 -1
  102. package/dist/render/lib/document/blocks/commerce/ProductGrid/render.js +1 -1
  103. package/dist/render/lib/document/blocks/commerce/SpecTable/render.js +1 -1
  104. package/dist/render/lib/document/blocks/commerce/StockFitment/meta.d.ts +2 -0
  105. package/dist/render/lib/document/blocks/commerce/StockFitment/meta.js +1 -0
  106. package/dist/render/lib/document/blocks/commerce/StockFitment/render.d.ts +2 -0
  107. package/dist/render/lib/document/blocks/commerce/StockFitment/render.js +1 -0
  108. package/dist/render/lib/document/blocks/commerce/metas.d.ts +2 -0
  109. package/dist/render/lib/document/blocks/commerce/metas.js +1 -1
  110. package/dist/render/lib/document/blocks/commerce/renders.d.ts +2 -0
  111. package/dist/render/lib/document/blocks/commerce/renders.js +1 -1
  112. package/dist/render/lib/document/blocks/service/ArticleBody/meta.d.ts +8 -0
  113. package/dist/render/lib/document/blocks/service/ArticleBody/meta.js +1 -0
  114. package/dist/render/lib/document/blocks/service/ArticleBody/render.d.ts +2 -0
  115. package/dist/render/lib/document/blocks/service/ArticleBody/render.js +1 -0
  116. package/dist/render/lib/document/blocks/service/SiteFooter/render.js +1 -1
  117. package/dist/render/lib/document/blocks/service/SiteHeader/render.js +1 -1
  118. package/dist/render/lib/document/blocks/service/metas.d.ts +1 -0
  119. package/dist/render/lib/document/blocks/service/metas.js +1 -1
  120. package/dist/render/lib/document/blocks/service/renders.d.ts +1 -0
  121. package/dist/render/lib/document/blocks/service/renders.js +1 -1
  122. package/dist/render/lib/document/card-templates.js +1 -1
  123. package/dist/render/lib/document/current-record.d.ts +4 -15
  124. package/dist/render/lib/document/current-record.js +1 -1
  125. package/dist/render/lib/document/lazy-draws.js +1 -1
  126. package/dist/render/lib/document/render-config.d.ts +1 -0
  127. package/dist/render/lib/document/render-config.js +1 -1
  128. package/dist/render/lib/document/section-to-box-rows-detail.d.ts +2 -0
  129. package/dist/render/lib/document/section-to-box-rows-detail.js +1 -0
  130. package/dist/render/lib/document/section-to-box-rows-reviews.js +1 -1
  131. package/dist/render/lib/document/section-to-box-rows-spec.js +1 -1
  132. package/dist/render/lib/document/storefront-root.js +1 -1
  133. package/dist/render/lib/sections/product-grid-columns.d.ts +5 -0
  134. package/dist/render/lib/sections/product-grid-columns.js +1 -0
  135. package/dist/render/lib/sections/section-band.d.ts +6 -0
  136. package/dist/render/lib/sections/section-band.js +1 -1
  137. package/dist/render/lib/sections/spec-table-band.d.ts +4 -0
  138. package/dist/render/lib/sections/spec-table-band.js +1 -0
  139. package/dist/render/lib/wheels/vehicle-memory.d.ts +13 -0
  140. package/dist/render/lib/wheels/vehicle-memory.js +1 -1
  141. package/dist/words.d.ts +58 -12
  142. package/dist/words.js +5 -5
  143. package/package.json +5 -4
  144. package/dist/chunks/chunk-5EQD5D3L.js +0 -340
  145. package/dist/chunks/chunk-DQFD2BJD.js +0 -1
  146. /package/dist/chunks/{chunk-5EQD5D3L.js.LEGAL.txt → chunk-FJRKNPNN.js.LEGAL.txt} +0 -0
@@ -1,3 +1,4 @@
1
+ import { type ReactNode } from "react";
1
2
  import type { SpecDiagram } from "../lib/wheels/spec-sheet.js";
2
3
  export interface SpecRow {
3
4
  label?: string;
@@ -16,5 +17,6 @@ export interface SpecTableProps {
16
17
  omitHead?: boolean;
17
18
  template?: unknown;
18
19
  capped?: boolean;
20
+ footer?: ReactNode;
19
21
  }
20
- export default function SpecTable({ num, title, description, rows, builtInLabels, diagram, editing, omitHead, nodeId, capped, template, }: SpecTableProps): import("react").JSX.Element;
22
+ export default function SpecTable({ num, title, description, rows, builtInLabels, diagram, editing, omitHead, nodeId, capped, template, footer, }: SpecTableProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use client";import{Fragment as E,jsx as e,jsxs as l}from"react/jsx-runtime";import z from"./SectionBand.js";import{useScopeClass as I}from"../lib/use-scope-class.js";import{useState as C}from"react";import R from"efficient-web-builder/render/components/SectionHeader";import{CardTemplateRows as D}from"efficient-web-builder/render/components/CardRowContext";import j from"./WheelSvg.js";import{renderGold as w,renderHeadline as V}from"efficient-web-builder/render/components/goldPhrases";import{inchLabel as y}from"../lib/wheels/spec-format.js";import W from"./DimensionArrowMarkers.js";import B from"./SpecTablePartBridge.js";import{SPEC_REGION_ATTR as A}from"efficient-web-builder/format/lib/sections/spec-table-regions";import{say as _}from"efficient-web-builder/format/lib/editor-words";import{applyShopMark as M}from"efficient-web-builder/format/lib/markup";import{useEnglish as P}from"./EnglishVariant.js";import{sizedImage as G}from"efficient-web-builder/format/lib/sized-image";const $={between:"[&>*+*]:border-t [&>*+*]:border-line",every:"[&>*]:border-t [&>*]:border-line"},T="[&_sup.text-accent.tracking-normal]:static [&_sup.text-accent.tracking-normal]:align-baseline [&_sup.text-accent.tracking-normal]:[font-size:inherit] [&_sup.text-accent.tracking-normal]:text-current [&_sup.text-accent.tracking-normal]:tracking-[inherit]",H="(max-width: 1100px) 80vw, 290px",d={labelSmall:"text-[length:var(--size-label,11px)]",label:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,14px)]"};function r(i,a){return i?{[A]:a}:{}}function O({editing:i,nodeId:a,children:s}){return!i||!a?e(E,{children:s}):e(B,{nodeId:a,children:s})}function L({row:i,topBorder:a,editing:s}){return l("div",{className:`flex items-baseline justify-between gap-6 py-4 font-mono ${d.labelLarge} tracking-[0.05em] ${a?"border-t border-line":""}`,children:[e("span",{...r(s,"rowLabel"),className:"uppercase text-fg-dim",children:i.label}),e("span",{...r(s,"rowValue"),className:`text-right ${i.accent?"text-accent":"text-fg"}`,children:i.value})]})}function F({diagram:i,editing:a}){const[s,b]=C(!1),c=I("spec"),{wheelName:p,imageSrc:n,diameter:f,width:g,offset:h,holes:v,pcd:k,spokes:m,mesh:o,bore:S}=i,u=!!n&&!s;return l("div",{className:"sf-card bg-surface p-6 max-view-desktop:mt-8",children:[e("div",{...r(a,"diagramTitle"),className:`mb-3 font-mono ${d.label} uppercase tracking-[0.25em] text-fg-dim`,children:"Wheel Dimension Diagram"}),l("div",{className:"relative flex aspect-square items-center justify-center",children:[l("svg",{viewBox:"0 0 320 320",className:"absolute inset-0 h-full w-full text-fg-dim",fill:"none",stroke:"currentColor",children:[e("line",{x1:40,y1:20,x2:280,y2:20,strokeWidth:1,markerStart:`url(#${c}-L)`,markerEnd:`url(#${c}-R)`}),e("line",{x1:40,y1:15,x2:40,y2:25,strokeWidth:1}),e("line",{x1:280,y1:15,x2:280,y2:25,strokeWidth:1}),e(W,{id:c})]}),u?e("img",{...G(n,{fallbackWidth:960}),sizes:H,alt:`${p} — face`,onError:()=>b(!0),loading:"lazy",className:"relative z-[1] block h-[80%] w-[80%] object-contain"}):e(j,{spokes:m,mesh:o,className:"relative z-[1] block h-[72%] w-[72%] text-accent"}),l("span",{...r(a,"diagramCallout"),className:`absolute top-1.5 left-1/2 z-20 -translate-x-1/2 bg-surface px-2 font-mono ${d.label} tracking-[0.2em] text-accent`,children:["⌀ ",y(f)]}),l("span",{...r(a,"diagramCallout"),className:`absolute bottom-1.5 left-1/2 z-20 -translate-x-1/2 bg-surface px-2 font-mono ${d.label} tracking-[0.2em] text-fg`,children:["WIDTH ",y(g)]})]}),l("div",{className:`mt-4 grid grid-cols-5 gap-3 font-mono ${d.labelSmall} uppercase tracking-[0.2em] text-fg-dim max-[480px]:grid-cols-3`,children:[l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"Holes"}),e("div",{...r(a,"diagramStatValue"),className:"mt-1 text-fg",children:v})]}),l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"PCD"}),e("div",{...r(a,"diagramStatValue"),className:"mt-1 text-fg",children:k})]}),l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"Spokes"}),l("div",{...r(a,"diagramStatValue"),className:"mt-1 text-fg",children:[m,o?" + Mesh":""]})]}),l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"Bore"}),e("div",{...r(a,"diagramStatValue"),className:"mt-1 text-fg",children:S})]}),l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"ET"}),e("div",{...r(a,"diagramStatValue"),className:"mt-1 text-accent",children:h})]})]})]})}function Y({num:i,title:a,description:s,rows:b,builtInLabels:c=!1,diagram:p,editing:n=!1,omitHead:f=!1,nodeId:g,capped:h=!0,template:v}){const k=P(),m=(b??[]).filter(t=>(t?.label??"").trim()||(t?.value??"").trim()).map(t=>c&&t.label?{...t,label:k(t.label)}:t),o=m.length>0?m:n?[{label:_("Label"),value:_("Value")}]:[],S=o.map(t=>({label:t.label??"",value:t.accent&&t.value?M(t.value,0,t.value.length,"highlight").text:t.value??""})),u=t=>p?l("div",{className:"grid grid-cols-[1fr_400px] gap-12 max-view-desktop:grid-cols-1",children:[e("div",{className:t?`${$.between} ${T}`:void 0,children:t??o.map((N,x)=>e(L,{row:N,topBorder:x>0,editing:n},x))}),e(F,{diagram:p,editing:n})]}):e("div",{className:`grid grid-cols-2 gap-x-16 max-[900px]:grid-cols-1${t?` ${$.every} ${T}`:""}`,children:t??o.map((N,x)=>e(L,{row:N,topBorder:!0,editing:n},x))});return e(z,{className:f?"border-b border-line pt-0 pb-[120px] max-view-desktop:pt-0 max-view-desktop:pb-20":"border-b border-line py-[120px] max-view-desktop:py-20",capped:h,children:l(O,{editing:n,nodeId:g,children:[f?null:e(R,{num:i?w(i):void 0,title:a?V(a,!1):void 0,description:s?w(s):void 0,accent:!0}),e(D,{ownerId:g??"",ownerType:"SpecTable",Template:v,rows:S,fallback:u(),children:t=>u(t)})]})})}export{Y as default};
1
+ "use client";import{Fragment as C,jsx as e,jsxs as l}from"react/jsx-runtime";import I from"./SectionBand.js";import{SPEC_TABLE_BAND as y}from"../lib/sections/spec-table-band.js";import{useScopeClass as B}from"../lib/use-scope-class.js";import{useState as D}from"react";import R from"efficient-web-builder/render/components/SectionHeader";import{CardTemplateRows as j}from"efficient-web-builder/render/components/CardRowContext";import A from"./WheelSvg.js";import{renderGold as _,renderHeadline as V}from"efficient-web-builder/render/components/goldPhrases";import{inchLabel as T}from"../lib/wheels/spec-format.js";import W from"./DimensionArrowMarkers.js";import P from"./SpecTablePartBridge.js";import{SPEC_REGION_ATTR as M}from"efficient-web-builder/format/lib/sections/spec-table-regions";import{say as $}from"efficient-web-builder/format/lib/editor-words";import{applyShopMark as G}from"efficient-web-builder/format/lib/markup";import{useEnglish as H}from"./EnglishVariant.js";import{sizedImage as O}from"efficient-web-builder/format/lib/sized-image";const E={between:"[&>*+*]:border-t [&>*+*]:border-line",every:"[&>*]:border-t [&>*]:border-line"},L="[&_sup.text-accent.tracking-normal]:static [&_sup.text-accent.tracking-normal]:align-baseline [&_sup.text-accent.tracking-normal]:[font-size:inherit] [&_sup.text-accent.tracking-normal]:text-current [&_sup.text-accent.tracking-normal]:tracking-[inherit]",F="(max-width: 1100px) 80vw, 290px",d={labelSmall:"text-[length:var(--size-label,11px)]",label:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,14px)]"};function r(i,a){return i?{[M]:a}:{}}function Y({editing:i,nodeId:a,children:n}){return!i||!a?e(C,{children:n}):e(P,{nodeId:a,children:n})}function z({row:i,topBorder:a,editing:n}){return l("div",{className:`flex items-baseline justify-between gap-6 py-4 font-mono ${d.labelLarge} tracking-[0.05em] ${a?"border-t border-line":""}`,children:[e("span",{...r(n,"rowLabel"),className:"uppercase text-fg-dim",children:i.label}),e("span",{...r(n,"rowValue"),className:`text-right ${i.accent?"text-accent":"text-fg"}`,children:i.value})]})}function Z({diagram:i,editing:a}){const[n,b]=D(!1),c=B("spec"),{wheelName:p,imageSrc:s,diameter:f,width:g,offset:v,holes:N,pcd:u,spokes:h,mesh:o,bore:m}=i,S=!!s&&!n;return l("div",{className:"sf-card bg-surface p-6 max-view-desktop:mt-8",children:[e("div",{...r(a,"diagramTitle"),className:`mb-3 font-mono ${d.label} uppercase tracking-[0.25em] text-fg-dim`,children:"Wheel Dimension Diagram"}),l("div",{className:"relative flex aspect-square items-center justify-center",children:[l("svg",{viewBox:"0 0 320 320",className:"absolute inset-0 h-full w-full text-fg-dim",fill:"none",stroke:"currentColor",children:[e("line",{x1:40,y1:20,x2:280,y2:20,strokeWidth:1,markerStart:`url(#${c}-L)`,markerEnd:`url(#${c}-R)`}),e("line",{x1:40,y1:15,x2:40,y2:25,strokeWidth:1}),e("line",{x1:280,y1:15,x2:280,y2:25,strokeWidth:1}),e(W,{id:c})]}),S?e("img",{...O(s,{fallbackWidth:960}),sizes:F,alt:`${p} — face`,onError:()=>b(!0),loading:"lazy",className:"relative z-[1] block h-[80%] w-[80%] object-contain"}):e(A,{spokes:h,mesh:o,className:"relative z-[1] block h-[72%] w-[72%] text-accent"}),l("span",{...r(a,"diagramCallout"),className:`absolute top-1.5 left-1/2 z-20 -translate-x-1/2 bg-surface px-2 font-mono ${d.label} tracking-[0.2em] text-accent`,children:["⌀ ",T(f)]}),l("span",{...r(a,"diagramCallout"),className:`absolute bottom-1.5 left-1/2 z-20 -translate-x-1/2 bg-surface px-2 font-mono ${d.label} tracking-[0.2em] text-fg`,children:["WIDTH ",T(g)]})]}),l("div",{className:`mt-4 grid grid-cols-5 gap-3 font-mono ${d.labelSmall} uppercase tracking-[0.2em] text-fg-dim max-[480px]:grid-cols-3`,children:[l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"Holes"}),e("div",{...r(a,"diagramStatValue"),className:"mt-1 text-fg",children:N})]}),l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"PCD"}),e("div",{...r(a,"diagramStatValue"),className:"mt-1 text-fg",children:u})]}),l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"Spokes"}),l("div",{...r(a,"diagramStatValue"),className:"mt-1 text-fg",children:[h,o?" + Mesh":""]})]}),l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"Bore"}),e("div",{...r(a,"diagramStatValue"),className:"mt-1 text-fg",children:m})]}),l("div",{children:[e("div",{...r(a,"diagramStatLabel"),className:"text-fg-dim/60",children:"ET"}),e("div",{...r(a,"diagramStatValue"),className:"mt-1 text-accent",children:v})]})]})]})}function q({num:i,title:a,description:n,rows:b,builtInLabels:c=!1,diagram:p,editing:s=!1,omitHead:f=!1,nodeId:g,capped:v=!0,template:N,footer:u}){const h=H(),o=(b??[]).filter(t=>(t?.label??"").trim()||(t?.value??"").trim()).map(t=>c&&t.label?{...t,label:h(t.label)}:t),m=o.length>0?o:s?[{label:$("Label"),value:$("Value")}]:[],S=m.map(t=>({label:t.label??"",value:t.accent&&t.value?G(t.value,0,t.value.length,"highlight").text:t.value??""})),w=t=>p?l("div",{className:"grid grid-cols-[1fr_400px] gap-12 max-view-desktop:grid-cols-1",children:[e("div",{className:t?`${E.between} ${L}`:void 0,children:t??m.map((k,x)=>e(z,{row:k,topBorder:x>0,editing:s},x))}),e(Z,{diagram:p,editing:s})]}):e("div",{className:`grid grid-cols-2 gap-x-16 max-[900px]:grid-cols-1${t?` ${E.every} ${L}`:""}`,children:t??m.map((k,x)=>e(z,{row:k,topBorder:!0,editing:s},x))});return e(I,{className:f?y.ownBox:y.inline,capped:v,children:l(Y,{editing:s,nodeId:g,children:[f?null:e(R,{num:i?_(i):void 0,title:a?V(a,!1):void 0,description:n?_(n):void 0,accent:!0}),e(j,{ownerId:g??"",ownerType:"SpecTable",Template:N,rows:S,fallback:w(),children:t=>w(t)}),u===void 0?null:e("div",{className:"mt-12 empty:hidden",children:u})]})})}export{q as default};
@@ -0,0 +1,17 @@
1
+ import type { FieldUsageAnswer } from "../lib/content/field-usage.js";
2
+ import type { TyreVariant } from "../lib/api/index.js";
3
+ export declare const TYRE_SIZES_HEAD: {
4
+ readonly title: "Available *sizes.*";
5
+ readonly description: "Every size this tyre is made in, with its own price and stock.";
6
+ };
7
+ export interface TyreSizesContentProps {
8
+ variants: readonly TyreVariant[];
9
+ fieldUsage: readonly FieldUsageAnswer[];
10
+ num?: string;
11
+ title?: string;
12
+ description?: string;
13
+ editing?: boolean;
14
+ omitHead?: boolean;
15
+ keepHiddenHead?: boolean;
16
+ }
17
+ export declare function TyreSizesContent({ variants, fieldUsage, num, title, description, editing, omitHead, keepHiddenHead, }: TyreSizesContentProps): import("react").JSX.Element | null;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as r,jsxs as f}from"react/jsx-runtime";import u from"./SectionBand.js";import w from"./SectionFootnote.js";import T from"efficient-web-builder/render/components/SectionHeader";import _ from"./TyreCard.js";import{useCurrency as k}from"./CurrencyContext.js";import{renderGold as x,renderHeadline as z}from"efficient-web-builder/render/components/goldPhrases";import{TYRE_ILLUSTRATION_NOTE as E}from"../lib/wheels/tyre-render.js";import{say as A}from"efficient-web-builder/format/lib/editor-words";const g="border-b border-line py-[120px] max-view-desktop:py-20",h="border-b border-line pt-0 pb-[120px] max-view-desktop:pt-0 max-view-desktop:pb-20",b={title:"Available *sizes.*",description:"Every size this tyre is made in, with its own price and stock."};function P({variants:i,fieldUsage:s,num:o,title:n,description:e,editing:y=!1,omitHead:c=!1,keepHiddenHead:N=!1}){const d=(t,a)=>N?t===""?void 0:t??a:t||a,p=d(n,b.title),l=d(e,b.description),m=c?null:r(T,{num:o?x(o):void 0,title:p!=null?z(p,!1):void 0,description:l!=null?x(l):void 0,accent:!0});if(i.length===0)return y?f(u,{className:c?h:g,children:[m,r("p",{className:"border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:A("This product’s sizes appear here on a product page.")})]}):null;const S=i.some(t=>!t.image);return f(u,{className:c?h:g,children:[m,r(D,{variants:i,fieldUsage:s}),r(w,{text:S?E:""})]})}function D({variants:i,fieldUsage:s}){const{currency:o,formatPrice:n}=k();return r("div",{className:"grid grid-cols-3 gap-2 max-view-desktop:grid-cols-2 max-view-tablet:grid-cols-1",children:i.map(e=>r(_,{fieldUsage:s,size:e.size,specs:e.specs,prices:e.prices,image:e.image,inStock:e.inStock,currency:o,formatPrice:n},e.sku))})}export{b as TYRE_SIZES_HEAD,P as TyreSizesContent};
@@ -1,6 +1,10 @@
1
1
  import type { FitmentCascade } from "./useFitmentCascade.js";
2
- export default function FitmentPickerGrid({ cascade, compact, editing, }: {
2
+ export type PickerColumns = 1 | 2 | 3 | 4;
3
+ export declare function pickerGridColumns(compact: boolean, columns?: unknown, columnsPhone?: unknown): string;
4
+ export default function FitmentPickerGrid({ cascade, compact, editing, columns, columnsPhone, }: {
3
5
  cascade: FitmentCascade;
4
6
  compact?: boolean;
5
7
  editing?: boolean;
8
+ columns?: unknown;
9
+ columnsPhone?: unknown;
6
10
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as t}from"react/jsx-runtime";import{PickerField as a}from"./PickerField.js";import{vehicleLevelStates as m}from"./vehicle-level-state.js";import{VEHICLE_FIELD_LABEL as n}from"../../lib/wheels/vehicle-field-focus.js";function p({cascade:e,compact:i=!1,editing:d=!1}){const{vehicle:o}=e,l=m(e),s=t("div",{className:["grid gap-[2px] border border-line bg-line",i?"grid-cols-1 @min-[20rem]:grid-cols-2 @min-[39rem]:grid-cols-4":"grid-cols-4 max-view-desktop:grid-cols-2 max-[700px]:grid-cols-1"].join(" "),children:[r(a,{label:n.make,placeholder:l.make.placeholder,disabled:l.make.disabled,value:o.make,options:e.makeOptions,onChange:e.setMake,compact:i,editing:d}),r(a,{label:n.model,placeholder:l.model.placeholder,disabled:l.model.disabled,value:o.model,options:e.modelOptions,onChange:e.setModel,compact:i,editing:d}),r(a,{label:n.year,placeholder:l.year.placeholder,disabled:l.year.disabled,value:o.year!==null?String(o.year):"",options:e.yearOptions,onChange:e.setYear,compact:i,editing:d}),r(a,{label:n.trim,placeholder:l.trim.placeholder,disabled:l.trim.disabled,value:o.modification,options:e.modOptions,onChange:e.setModification,compact:i,editing:d})]});return i?r("div",{className:"@container",children:s}):s}export{p as default};
1
+ "use client";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{PickerField as t}from"./PickerField.js";import{vehicleLevelStates as p}from"./vehicle-level-state.js";import{VEHICLE_FIELD_LABEL as a}from"../../lib/wheels/vehicle-field-focus.js";const b={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"},u={1:"max-view-tablet:grid-cols-1",2:"max-view-tablet:grid-cols-2",3:"max-view-tablet:grid-cols-3",4:"max-view-tablet:grid-cols-4"},g=e=>e===1||e===2||e===3||e===4?e:void 0;function f(e,i,r){const d=g(i),n=g(r);if(d===void 0&&n===void 0)return e?"grid-cols-1 @min-[20rem]:grid-cols-2 @min-[39rem]:grid-cols-4":"grid-cols-4 max-view-desktop:grid-cols-2 max-[700px]:grid-cols-1";const l=d!==void 0?b[d]:e?"grid-cols-1 @min-[20rem]:grid-cols-2 @min-[39rem]:grid-cols-4":"grid-cols-4 max-view-desktop:grid-cols-2";return n!==void 0?`${l} ${u[n]}`:l}function h({cascade:e,compact:i=!1,editing:r=!1,columns:d,columnsPhone:n}){const{vehicle:l}=e,o=p(e),m=c("div",{className:["grid gap-[2px] border border-line bg-line",f(i,d,n)].join(" "),children:[s(t,{label:a.make,placeholder:o.make.placeholder,disabled:o.make.disabled,value:l.make,options:e.makeOptions,onChange:e.setMake,compact:i,editing:r}),s(t,{label:a.model,placeholder:o.model.placeholder,disabled:o.model.disabled,value:l.model,options:e.modelOptions,onChange:e.setModel,compact:i,editing:r}),s(t,{label:a.year,placeholder:o.year.placeholder,disabled:o.year.disabled,value:l.year!==null?String(l.year):"",options:e.yearOptions,onChange:e.setYear,compact:i,editing:r}),s(t,{label:a.trim,placeholder:o.trim.placeholder,disabled:o.trim.disabled,value:l.modification,options:e.modOptions,onChange:e.setModification,compact:i,editing:r})]});return i?s("div",{className:"@container",children:m}):m}export{h as default,f as pickerGridColumns};
@@ -0,0 +1,8 @@
1
+ export type FitmentPickerLayout = "tall" | "short";
2
+ export interface FitmentPickerPartProps {
3
+ layout?: FitmentPickerLayout;
4
+ pickerColumns?: unknown;
5
+ pickerColumnsPhone?: unknown;
6
+ editing?: boolean;
7
+ }
8
+ export default function FitmentPickerPart({ layout, pickerColumns, pickerColumnsPhone, editing, }: FitmentPickerPartProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as s}from"react/jsx-runtime";import i from"./FitmentPickerGrid.js";import{useVehicleFit as a}from"./useVehicleFit.js";function m({layout:e,pickerColumns:r,pickerColumnsPhone:o,editing:t=!1}){const{cascade:c}=a({editing:t,autoApply:!0,shareStock:!0});return s(i,{cascade:c,compact:e==="short",editing:t,columns:r,columnsPhone:o})}export{m as default};
@@ -0,0 +1,4 @@
1
+ export default function StockFitmentPart({ editing, label, }: {
2
+ editing?: boolean;
3
+ label?: string;
4
+ }): import("react").JSX.Element | null;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import{useSyncExternalStore as i}from"react";import{say as n}from"efficient-web-builder/format/lib/editor-words";import s from"./StockFitmentCard.js";import{storefrontVehicleMemory as o}from"../../lib/wheels/vehicle-memory.js";const c=()=>null;function m({editing:e=!1,label:a="Stock fitment"}){const t=i(o.subscribeStock,o.readStock,c);return t?r(s,{loading:t.loading,error:t.error,data:t.stock}):e?r("div",{"data-host-part-sample":"",className:"opacity-60",children:n(a)}):null}export{m as default};
@@ -21,9 +21,10 @@ export interface VehicleFit {
21
21
  appliedName: string;
22
22
  restored: boolean;
23
23
  }
24
- export declare function useVehicleFit({ initialMakes, editing, enabled, autoApply, }?: {
24
+ export declare function useVehicleFit({ initialMakes, editing, enabled, autoApply, shareStock, }?: {
25
25
  initialMakes?: FitmentMake[];
26
26
  editing?: boolean;
27
27
  enabled?: boolean;
28
28
  autoApply?: boolean;
29
+ shareStock?: boolean;
29
30
  }): VehicleFit;
@@ -1 +1 @@
1
- "use client";import{useCallback as d,useEffect as f,useMemo as A,useRef as R,useState as F}from"react";import{useFitmentCascade as U}from"./useFitmentCascade.js";import{DEFAULT_VEHICLE as w}from"../../lib/wheels/fitment-options.js";import{vehicleFitmentFromStock as x}from"../../lib/wheels/plp-fitment-match.js";import{clearAppliedVehicle as M}from"../../lib/wheels/applied-vehicle.js";import{isCompleteVehicle as k,vehicleFromParams as P}from"../../lib/wheels/plp-vehicle-params.js";import{storefrontVehicleMemory as h}from"../../lib/wheels/vehicle-memory.js";function p(t,o,s){return t!==o?t:s||o}function j(t,o){return t.make===o.make&&t.model===o.model&&t.modification===o.modification}function n(t,o){return t.make===o.make&&t.model===o.model&&t.year===o.year&&t.modification===o.modification}function _({initialMakes:t=[],editing:o=!1,enabled:s=!0,autoApply:b=!1}={}){const e=U(t,s),{setVehicle:a}=e,[l,m]=F(null),[L,N]=F(!1),u=d(()=>({make:e.makeName,model:e.modelName,modification:e.modName}),[e.makeName,e.modelName,e.modName]);f(()=>{if(o||!s){N(!0);return}const c=P(new URLSearchParams(window.location.search)),r=c?null:h.read(),i=c??r?.vehicle??null;i&&(a(i),m({vehicle:i,labels:r?.labels??{make:i.make,model:i.model,modification:i.modification},stock:null})),N(!0)},[o,s,a]),f(()=>{if(!(o||!s))return h.subscribe(()=>{const c=h.read();m(i=>c?i&&n(i.vehicle,c.vehicle)?j(i.labels,c.labels)?i:{...i,labels:c.labels}:{vehicle:c.vehicle,labels:c.labels,stock:null}:null);const r=c?.vehicle??w;a(i=>n(i,r)?i:r)})},[o,s,a]),f(()=>{!b||!k(e.vehicle)||l&&n(l.vehicle,e.vehicle)||m({vehicle:e.vehicle,labels:u(),stock:e.stock})},[b,l,e.vehicle,e.stock,u]),f(()=>{if(!l||!n(e.vehicle,l.vehicle))return;const c={make:p(e.makeName,e.vehicle.make,l.labels.make),model:p(e.modelName,e.vehicle.model,l.labels.model),modification:p(e.modName,e.vehicle.modification,l.labels.modification)};(l.stock!==e.stock||l.labels.make!==c.make||l.labels.model!==c.model||l.labels.modification!==c.modification)&&m(i=>i&&n(e.vehicle,i.vehicle)?{...i,stock:e.stock,labels:c}:i)},[l,e.vehicle,e.stock,e.makeName,e.modelName,e.modName]);const v=R("");f(()=>{if(!(o||!s))try{if(!l){v.current!==""&&(h.clear(),v.current="");return}const c=JSON.stringify({vehicle:l.vehicle,labels:l.labels});if(c===v.current)return;h.write({vehicle:l.vehicle,labels:l.labels}),v.current=c}catch{}},[l,o,s]);const C=d(()=>{k(e.vehicle)&&m({vehicle:e.vehicle,labels:u(),stock:e.stock})},[e.vehicle,e.stock,u]),E=d(()=>{m(null),a(w),!o&&s&&M()},[o,s,a]),y=A(()=>x(l?.stock),[l?.stock]),V=!!l&&n(e.vehicle,l.vehicle)&&e.loading.stock!==!1,S=l?[l.vehicle.year,l.labels.make,l.labels.model,l.labels.modification].filter(Boolean).join(" "):"";return{cascade:e,applied:l,fit:y,resolving:V,unresolved:!!l&&y===null&&!V,apply:C,clear:E,canApply:k(e.vehicle),appliedName:S,restored:L}}export{_ as useVehicleFit};
1
+ "use client";import{useCallback as k,useEffect as h,useMemo as x,useRef as F,useState as S}from"react";import{useFitmentCascade as M}from"./useFitmentCascade.js";import{DEFAULT_VEHICLE as L}from"../../lib/wheels/fitment-options.js";import{vehicleFitmentFromStock as P}from"../../lib/wheels/plp-fitment-match.js";import{clearAppliedVehicle as j}from"../../lib/wheels/applied-vehicle.js";import{isCompleteVehicle as p,vehicleFromParams as B}from"../../lib/wheels/plp-vehicle-params.js";import{storefrontVehicleMemory as a}from"../../lib/wheels/vehicle-memory.js";function b(t,c,r){return t!==c?t:r||c}function D(t,c){return t.make===c.make&&t.model===c.model&&t.modification===c.modification}function m(t,c){return t.make===c.make&&t.model===c.model&&t.year===c.year&&t.modification===c.modification}function z({initialMakes:t=[],editing:c=!1,enabled:r=!0,autoApply:N=!1,shareStock:y=!1}={}){const e=M(t,r),{setVehicle:n}=e,[l,f]=S(null),[C,w]=S(!1),u=k(()=>({make:e.makeName,model:e.modelName,modification:e.modName}),[e.makeName,e.modelName,e.modName]);h(()=>{if(c||!r){w(!0);return}const o=B(new URLSearchParams(window.location.search)),s=o?null:a.read(),i=o??s?.vehicle??null;i&&(n(i),f({vehicle:i,labels:s?.labels??{make:i.make,model:i.model,modification:i.modification},stock:null})),w(!0)},[c,r,n]),h(()=>{if(!(c||!r))return a.subscribe(()=>{const o=a.read();f(i=>o?i&&m(i.vehicle,o.vehicle)?D(i.labels,o.labels)?i:{...i,labels:o.labels}:{vehicle:o.vehicle,labels:o.labels,stock:null}:null);const s=o?.vehicle??L;n(i=>m(i,s)?i:s)})},[c,r,n]),h(()=>{!N||!p(e.vehicle)||l&&m(l.vehicle,e.vehicle)||f({vehicle:e.vehicle,labels:u(),stock:e.stock})},[N,l,e.vehicle,e.stock,u]),h(()=>{if(!l||!m(e.vehicle,l.vehicle))return;const o={make:b(e.makeName,e.vehicle.make,l.labels.make),model:b(e.modelName,e.vehicle.model,l.labels.model),modification:b(e.modName,e.vehicle.modification,l.labels.modification)};(l.stock!==e.stock||l.labels.make!==o.make||l.labels.model!==o.model||l.labels.modification!==o.modification)&&f(i=>i&&m(e.vehicle,i.vehicle)?{...i,stock:e.stock,labels:o}:i)},[l,e.vehicle,e.stock,e.makeName,e.modelName,e.modName]);const d=F("");h(()=>{if(!(c||!r))try{if(!l){d.current!==""&&(a.clear(),d.current="");return}const o=JSON.stringify({vehicle:l.vehicle,labels:l.labels});if(o===d.current)return;a.write({vehicle:l.vehicle,labels:l.labels}),d.current=o}catch{}},[l,c,r]);const v=F(!1);h(()=>{if(!y||!r)return;if(!l){v.current&&a.writeStock(null),v.current=!1;return}if(!m(e.vehicle,l.vehicle))return;const o=e.loading.stock!==!1,s=a.readStock();s&&m(s.vehicle,l.vehicle)&&s.stock===e.stock&&s.loading===o&&s.error===e.cascadeError||(a.writeStock({vehicle:l.vehicle,stock:e.stock,loading:o,error:e.cascadeError}),v.current=!0)},[y,r,l,e.vehicle,e.stock,e.loading.stock,e.cascadeError]);const A=k(()=>{p(e.vehicle)&&f({vehicle:e.vehicle,labels:u(),stock:e.stock})},[e.vehicle,e.stock,u]),R=k(()=>{f(null),n(L),!c&&r&&j()},[c,r,n]),E=x(()=>P(l?.stock),[l?.stock]),V=!!l&&m(e.vehicle,l.vehicle)&&e.loading.stock!==!1,U=l?[l.vehicle.year,l.labels.make,l.labels.model,l.labels.modification].filter(Boolean).join(" "):"";return{cascade:e,applied:l,fit:E,resolving:V,unresolved:!!l&&E===null&&!V,apply:A,clear:R,canApply:p(e.vehicle),appliedName:U,restored:C}}export{z as useVehicleFit};
@@ -8,6 +8,8 @@ interface Props {
8
8
  padTop?: number;
9
9
  padBottom?: number;
10
10
  editing?: boolean;
11
+ template?: unknown;
12
+ nodeId?: string;
11
13
  }
12
14
  export default function DynamicDetailRows(props: Props): import("react").JSX.Element;
13
15
  export declare function recordDetailRows(record: CurrentRecord): DetailRow[];
@@ -1 +1 @@
1
- "use client";import{jsx as s}from"react/jsx-runtime";import y from"../SectionBand.js";import f from"../DetailRows.js";import R from"./KindGate.js";import D from"./RecordPhotoGallery.js";import{useCurrentProduct as x}from"../../lib/document/current-product.js";import{SAMPLE_RECORD as b,recordFacts as k,recordPictures as p,useCurrentRecord as S,useDrawsOtherRecord as B}from"../../lib/document/current-record.js";import{detailShotTag as P,pickDetailShots as T}from"../../lib/wheels/detail-shots.js";import{selectedStuds as v}from"../../lib/wheels/selected-studs.js";import{useSampleProduct as N}from"./useSampleProduct.js";import{say as C}from"efficient-web-builder/format/lib/editor-words";const F=["alloy-wheel"];function h(e,o){return e.finishes.find(t=>t.name===o)??e.finishes[0]}function L(e,o){return(h(e,o)?.features??[]).map(t=>({eyebrow:t.eyebrow,title:t.heading,copy:t.description,tag:t.mark,image:t.image||void 0}))}function j(e,o,t){const r=T(h(e,o),t);return r.rows.map(i=>({eyebrow:i.eyebrow?.trim()||void 0,title:i.title,copy:i.line||void 0,image:i.url,tag:P(i,r,t),imageShape:"square"}))}function E(e){return B(!!e.editing)?s(G,{...e}):s(R,{kinds:F,type:"DetailRows",editing:e.editing,children:s(K,{...e})})}function w(e){const o=k(e),t=p(e)[0];return!o.length&&!t&&!e.title.trim()?[]:[{title:e.title,specs:o,image:t?.url||void 0}]}function G({startLeft:e,padTop:o,padBottom:t,editing:r=!1}){const i=S(),n=i?w(i):r?w(b):[];if(n.length===0)return null;const a=i?p(i,{firstField:!0}):[];return a.length&&(n[0]={...n[0],media:s(D,{pictures:a,name:i?.title??"",editing:r,fit:"column"})}),s(f,{rows:n,startLeft:e,padTop:o,padBottom:t,editing:r})}function K({rowsFrom:e,startLeft:o,padTop:t,padBottom:r,editing:i=!1}){const n=x(),a=N(i&&!n),c=n?.product??a,l=c?.kind==="alloy-wheel"?c.source:null,d=n?n.selection.shown.finish:void 0,g=n?v(n.selection):null,u=e==="details",m=l?u?j(l,d,g):L(l,d):[];return u&&m.length===0?i?s(y,{className:"border-b border-line py-14 max-view-desktop:py-10",children:s("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:C("No detail shots on this finish yet. Tick a close-up on the design's renderings and give it a title. This section is hidden on the live page until then.")})}):null:s(f,{rows:m,startLeft:o,padTop:t,padBottom:r,editing:i})}export{E as default,w as recordDetailRows,F as supportedKinds};
1
+ "use client";import{jsx as s}from"react/jsx-runtime";import D from"../SectionBand.js";import h from"../DetailRows.js";import x from"./KindGate.js";import b from"./RecordPhotoGallery.js";import{useCurrentProduct as k}from"../../lib/document/current-product.js";import{SAMPLE_RECORD as S,recordFacts as B,recordPictures as w,useCurrentRecord as P,useDrawsOtherRecord as T}from"../../lib/document/current-record.js";import{detailShotTag as v,pickDetailShots as N}from"../../lib/wheels/detail-shots.js";import{selectedStuds as C}from"../../lib/wheels/selected-studs.js";import{useSampleProduct as F}from"./useSampleProduct.js";import{say as L}from"efficient-web-builder/format/lib/editor-words";const j=["alloy-wheel"];function g(e,i){return e.finishes.find(t=>t.name===i)??e.finishes[0]}function E(e,i){return(g(e,i)?.features??[]).map(t=>({eyebrow:t.eyebrow,title:t.heading,copy:t.description,tag:t.mark,image:t.image||void 0}))}function G(e,i,t){const r=N(g(e,i),t);return r.rows.map(o=>({eyebrow:o.eyebrow?.trim()||void 0,title:o.title,copy:o.line||void 0,image:o.url,tag:v(o,r,t),imageShape:"square"}))}function I(e){return T(!!e.editing)?s(K,{...e}):s(x,{kinds:j,type:"DetailRows",editing:e.editing,children:s(O,{...e})})}function y(e){const i=B(e),t=w(e)[0];return!i.length&&!t&&!e.title.trim()?[]:[{title:e.title,specs:i,image:t?.url||void 0}]}function K({startLeft:e,padTop:i,padBottom:t,editing:r=!1,template:o,nodeId:c}){const a=P(),n=a?y(a):r?y(S):[];if(n.length===0)return null;const l=a?w(a,{firstField:!0}):[];return l.length&&(n[0]={...n[0],media:s(b,{pictures:l,name:a?.title??"",editing:r,fit:"column"})}),s(h,{rows:n,startLeft:e,padTop:i,padBottom:t,editing:r,template:o,nodeId:c})}function O({rowsFrom:e,startLeft:i,padTop:t,padBottom:r,editing:o=!1,template:c,nodeId:a}){const n=k(),l=F(o&&!n),u=n?.product??l,d=u?.kind==="alloy-wheel"?u.source:null,m=n?n.selection.shown.finish:void 0,R=n?C(n.selection):null,p=e==="details",f=d?p?G(d,m,R):E(d,m):[];return p&&f.length===0?o?s(D,{className:"border-b border-line py-14 max-view-desktop:py-10",children:s("p",{className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:L("No detail shots on this finish yet. Tick a close-up on the design's renderings and give it a title. This section is hidden on the live page until then.")})}):null:s(h,{rows:f,startLeft:i,padTop:t,padBottom:r,editing:o,template:c,nodeId:a})}export{I as default,y as recordDetailRows,j as supportedKinds};
@@ -1,6 +1,11 @@
1
1
  import type { ProductKind } from "../../lib/api/index.js";
2
2
  export declare const supportedKinds: readonly ProductKind[];
3
+ export interface TyreHead {
4
+ title?: string;
5
+ description?: string;
6
+ }
3
7
  interface Props {
8
+ tyreHead?: TyreHead;
4
9
  num?: string;
5
10
  title?: string;
6
11
  description?: string;
@@ -1 +1 @@
1
- "use client";import{jsx as o}from"react/jsx-runtime";import x from"../FitmentTable.js";import w from"./KindGate.js";import{useCurrentProduct as y}from"../../lib/document/current-product.js";import{useSampleProduct as F}from"./useSampleProduct.js";const T=["alloy-wheel"];function b(t){return o(w,{kinds:T,type:"FitmentTable",editing:t.editing,children:o(g,{...t})})}function g({num:t,title:r,description:s,showFilter:l,tooltipDefaultOn:m,footnote:a,footnoteLinkText:d,footnoteLinkHref:f,editing:n=!1,omitHead:c=!1}){const e=y(),u=F(n&&!e),i=e?.product??u,p=i?.kind==="alloy-wheel"?i.source.fitments??[]:[];return o(x,{num:t,title:r,description:s,rows:p,showFilter:l,tooltipDefaultOn:m,footnote:a,footnoteLinkText:d,footnoteLinkHref:f,editing:n,omitHead:c,fieldUsage:e?.fieldUsage})}export{b as default,T as supportedKinds};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import g from"../FitmentTable.js";import k from"./KindGate.js";import{TyreSizesContent as x}from"../TyreSizeGrid.js";import{useCurrentProduct as w}from"../../lib/document/current-product.js";import{useSampleProduct as F}from"./useSampleProduct.js";const U=["alloy-wheel","tyre"],b=[];function h(t){return n(k,{kinds:U,type:"FitmentTable",editing:t.editing,children:n(y,{...t})})}function y({num:t,title:s,description:l,showFilter:m,tooltipDefaultOn:a,footnote:d,footnoteLinkText:c,footnoteLinkHref:u,editing:r=!1,omitHead:f=!1,tyreHead:e}){const o=w(),p=F(r&&!o),i=o?.product??p;if(i?.kind==="tyre")return n(x,{variants:i.source.variants,fieldUsage:o?.fieldUsage??b,num:t,title:e?e.title:s,description:e?e.description:l,editing:r,omitHead:f,keepHiddenHead:e!=null});const T=i?.kind==="alloy-wheel"?i.source.fitments??[]:[];return n(g,{num:t,title:s,description:l,rows:T,showFilter:m,tooltipDefaultOn:a,footnote:d,footnoteLinkText:c,footnoteLinkHref:u,editing:r,omitHead:f,fieldUsage:o?.fieldUsage})}export{h as default,U as supportedKinds};
@@ -9,6 +9,7 @@ interface Props {
9
9
  editing?: boolean;
10
10
  omitHead?: boolean;
11
11
  template?: unknown;
12
+ showEuLabel?: boolean;
12
13
  }
13
14
  export default function DynamicSpecTable(props: Props): import("react").JSX.Element;
14
15
  export {};
@@ -1 +1 @@
1
- "use client";import{jsx as l}from"react/jsx-runtime";import h from"../SpecTable.js";import x from"./KindGate.js";import{buildSpecSheet as k,sourceFromWheel as v}from"../../lib/wheels/spec-sheet.js";import{buildTyreSpecSheet as z}from"../../lib/tyres/spec-sheet.js";import{partVariant as I}from"../../lib/catalog/from-wheel.js";import{useCurrentProduct as P}from"../../lib/document/current-product.js";import{applySpecAnswers as b}from"../../lib/content/field-usage.js";import{useSampleProduct as j}from"./useSampleProduct.js";const A=["alloy-wheel","tyre"],E=[];function G(t,r,i){const o=t.variants??[];return(r?o.find(n=>n.sku===r):void 0)??(i?o.find(n=>n.size===i):void 0)??o[0]??null}function K(t){return l(x,{kinds:A,type:"SpecTable",editing:t.editing,children:l(L,{...t})})}function L({num:t,title:r,description:i,showDiagram:o=!0,editing:n=!1,nodeId:d,omitHead:u=!1,template:p}){const e=P(),w=j(n&&!e),a=e?.product??w,c=a?.kind==="tyre"?a.source:null,m=e?.fieldUsage??E;if(c){const g=G(c,e?.selection.part?.id,e?.selection.shown.size),T=z({brand:c.brand,variant:g});return l(h,{capped:!1,builtInLabels:!0,num:t,title:r,description:i,rows:b(T.rows,m),diagram:null,editing:n,nodeId:d,omitHead:u,template:p})}const s=a?.kind==="alloy-wheel"?a.source:null,y=e?e.selection.shown.finish:s?.finishes[0]?.name,S=e&&s?I(s,e.selection.part)?.size??void 0:void 0,f=s?k(v(s),y,S):{rows:[],diagram:null};return l(h,{capped:!1,builtInLabels:!0,num:t,title:r,description:i,rows:b(f.rows,m),diagram:o?f.diagram:null,editing:n,nodeId:d,omitHead:u,template:p})}export{K as default,A as supportedKinds};
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import b from"../SpecTable.js";import k from"./KindGate.js";import{DynamicEuTyreLabelBlock as v}from"./DynamicEuTyreLabel.js";import{buildSpecSheet as z,sourceFromWheel as E}from"../../lib/wheels/spec-sheet.js";import{buildTyreSpecSheet as I}from"../../lib/tyres/spec-sheet.js";import{partVariant as L}from"../../lib/catalog/from-wheel.js";import{useCurrentProduct as P}from"../../lib/document/current-product.js";import{applySpecAnswers as h}from"../../lib/content/field-usage.js";import{useSampleProduct as j}from"./useSampleProduct.js";const A=["alloy-wheel","tyre"],B=[];function D(t,r,i){const o=t.variants??[];return(r?o.find(n=>n.sku===r):void 0)??(i?o.find(n=>n.size===i):void 0)??o[0]??null}function G(t){return a(k,{kinds:A,type:"SpecTable",editing:t.editing,children:a(K,{...t})})}function K({num:t,title:r,description:i,showDiagram:o=!0,editing:n=!1,nodeId:d,omitHead:u=!1,template:p,showEuLabel:y=!1}){const e=P(),w=j(n&&!e),l=e?.product??w,c=l?.kind==="tyre"?l.source:null,m=e?.fieldUsage??B;if(c){const T=D(c,e?.selection.part?.id,e?.selection.shown.size),x=I({brand:c.brand,variant:T});return a(b,{capped:!1,builtInLabels:!0,num:t,title:r,description:i,rows:h(x.rows,m),diagram:null,editing:n,nodeId:d,omitHead:u,template:p,footer:y?a(v,{editing:n}):void 0})}const s=l?.kind==="alloy-wheel"?l.source:null,S=e?e.selection.shown.finish:s?.finishes[0]?.name,g=e&&s?L(s,e.selection.part)?.size??void 0:void 0,f=s?z(E(s),S,g):{rows:[],diagram:null};return a(b,{capped:!1,builtInLabels:!0,num:t,title:r,description:i,rows:h(f.rows,m),diagram:o?f.diagram:null,editing:n,nodeId:d,omitHead:u,template:p})}export{G as default,A as supportedKinds};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as p}from"react/jsx-runtime";import m from"../SectionBand.js";import b from"../SectionFootnote.js";import h from"efficient-web-builder/render/components/SectionHeader";import S from"../TyreCard.js";import{useCurrency as k}from"../CurrencyContext.js";import{renderGold as l,renderHeadline as N}from"efficient-web-builder/render/components/goldPhrases";import z from"./KindGate.js";import{useCurrentProduct as T}from"../../lib/document/current-product.js";import{TYRE_ILLUSTRATION_NOTE as w}from"../../lib/wheels/tyre-render.js";import{useSampleProduct as _}from"./useSampleProduct.js";import{say as v}from"efficient-web-builder/format/lib/editor-words";const u="border-b border-line py-[120px] max-view-desktop:py-20",f="border-b border-line pt-0 pb-[120px] max-view-desktop:pt-0 max-view-desktop:pb-20",E=[],A=["tyre"];function B(t){return r(z,{kinds:A,type:"TyreSizes",editing:t.editing,children:r(P,{...t})})}function P({num:t,title:s,description:o,editing:i=!1,omitHead:e=!1}){const n=T(),y=_(i&&!n),d=n?.product??y,c=d?.kind==="tyre"?d.source.variants:[],a=e?null:r(h,{num:t?l(t):void 0,title:N(s||"Available *sizes.*",!1),description:l(o||"Every size this tyre is made in, with its own price and stock."),accent:!0});if(c.length===0)return i?p(m,{className:e?f:u,children:[a,r("p",{className:"border-t border-line py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim",children:v("This product’s sizes appear here on a product page.")})]}):null;const x=c.some(g=>!g.image);return p(m,{className:e?f:u,children:[a,r(U,{variants:c,fieldUsage:n?.fieldUsage??E}),r(b,{text:x?w:""})]})}function U({variants:t,fieldUsage:s}){const{currency:o,formatPrice:i}=k();return r("div",{className:"grid grid-cols-3 gap-2 max-view-desktop:grid-cols-2 max-view-tablet:grid-cols-1",children:t.map(e=>r(S,{fieldUsage:s,size:e.size,specs:e.specs,prices:e.prices,image:e.image,inStock:e.inStock,currency:o,formatPrice:i},e.sku))})}export{B as default,A as supportedKinds};
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import u from"./KindGate.js";import{TyreSizesContent as m}from"../TyreSizeGrid.js";import{useCurrentProduct as p}from"../../lib/document/current-product.js";import{useSampleProduct as f}from"./useSampleProduct.js";const l=[],y=["tyre"];function S(t){return r(u,{kinds:y,type:"TyreSizes",editing:t.editing,children:r(x,{...t})})}function x({num:t,title:o,description:s,editing:i=!1,omitHead:c=!1}){const e=p(),d=f(i&&!e),n=e?.product??d,a=n?.kind==="tyre"?n.source.variants:[];return r(m,{variants:a,fieldUsage:e?.fieldUsage??l,num:t,title:o,description:s,editing:i,omitHead:c})}export{S as default,y as supportedKinds};
@@ -1,7 +1,9 @@
1
+ import { type TyreHead } from "./DynamicFitmentTable.js";
1
2
  import { type FitmentTableProps } from "../FitmentTable.js";
2
3
  interface Props extends Omit<FitmentTableProps, "rows"> {
3
4
  dynamic?: unknown;
4
5
  wheel?: unknown;
6
+ tyreHead?: TyreHead;
5
7
  }
6
- export default function FitmentTableBlock({ dynamic, wheel, omitHead, ...rest }: Props): import("react").JSX.Element;
8
+ export default function FitmentTableBlock({ dynamic, wheel, omitHead, tyreHead, ...rest }: Props): import("react").JSX.Element;
7
9
  export {};
@@ -1 +1 @@
1
- "use client";import{jsx as m}from"react/jsx-runtime";import e from"./DynamicFitmentTable.js";import a from"../FitmentTable.js";import{useCurrentProduct as f}from"../../lib/document/current-product.js";import{isEditorOnDynamicPage as s}from"efficient-web-builder/format/lib/document/editor-page-context";import{fitmentTableIsDynamic as c}from"../../lib/document/fitment-table-dynamic.js";import{getFitments as l}from"../../lib/wheels/fitments.js";function p({dynamic:r,wheel:t,omitHead:i=!1,...o}){const n=f()!==null||!!o.editing&&s();return c({dynamic:r,wheel:t},n)?m(e,{...o,omitHead:i}):m(a,{...o,omitHead:i,rows:l(typeof t=="string"?t:"")})}export{p as default};
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import a from"./DynamicFitmentTable.js";import f from"../FitmentTable.js";import{useCurrentProduct as s}from"../../lib/document/current-product.js";import{isEditorOnDynamicPage as c}from"efficient-web-builder/format/lib/document/editor-page-context";import{fitmentTableIsDynamic as l}from"../../lib/document/fitment-table-dynamic.js";import{getFitments as p}from"../../lib/wheels/fitments.js";function u({dynamic:r,wheel:t,omitHead:i=!1,tyreHead:n,...o}){const e=s()!==null||!!o.editing&&c();return l({dynamic:r,wheel:t},e)?m(a,{...o,omitHead:i,tyreHead:n}):m(f,{...o,omitHead:i,rows:p(typeof t=="string"?t:"")})}export{u as default};
@@ -0,0 +1,9 @@
1
+ import { type SeededNode } from "efficient-web-builder/format/lib/document/seed-parts";
2
+ type Props = Record<string, unknown>;
3
+ export declare const ARTICLE_BODY_BLOCK = "ArticleBody";
4
+ export declare const ARTICLE_HEADING_LOOK: Props;
5
+ export declare const ARTICLE_PARAGRAPH_LOOK: Props;
6
+ export declare const ARTICLE_MEASURE = 640;
7
+ export declare function articleBodySeed(nodeId: string): SeededNode[];
8
+ export declare function withArticleBodyTemplate(props: Props): Props;
9
+ export {};
@@ -0,0 +1 @@
1
+ import{CARDS_BODY_LOOK as a,rowFieldTextSeed as n}from"efficient-web-builder/format/lib/document/blocks/general/Cards/card-seed";import{DIM as o,TEXT as d,seedNodes as c,token as g}from"efficient-web-builder/format/lib/document/seed-parts";const l="ArticleBody",h={textStyle:"heading-3",...g("headingSmall",20),weight:500,lineHeight:1.4,align:"center"},A={...a,align:"center"},i=640,m=[n("heading",{...d,tag:"h2",align:"center",maxWidth:i},h),n("paragraph",{...o,tag:"p",align:"center",maxWidth:i},A)];function x(e){return c(m,(t,r)=>`${e}~${r==="0"?"heading":"paragraph"}`)}function O(e){if(e.template!==void 0)return e;const t=typeof e.id=="string"&&e.id.trim()?e.id:l;return{...e,template:x(t)}}export{l as ARTICLE_BODY_BLOCK,h as ARTICLE_HEADING_LOOK,i as ARTICLE_MEASURE,A as ARTICLE_PARAGRAPH_LOOK,x as articleBodySeed,O as withArticleBodyTemplate};
@@ -0,0 +1,8 @@
1
+ export declare const BLOG_POST_RECORD_TYPE = "blog-post";
2
+ export declare const ARTICLE_BODY_FIELD = "body";
3
+ export type ArticleRow = {
4
+ heading: string;
5
+ paragraph: string;
6
+ };
7
+ export declare function articleRows(body: unknown): ArticleRow[];
8
+ export declare function sampleArticleRows(): ArticleRow[];
@@ -0,0 +1,5 @@
1
+ import{say as t}from"efficient-web-builder/format/lib/editor-words";import{sanitizeHtml as o}from"efficient-web-builder/render/lib/document/sanitize";const g="blog-post",l="body",p={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&apos;":"'","&nbsp;":" ","&rsquo;":"’","&lsquo;":"‘","&ldquo;":"“","&rdquo;":"”","&mdash;":"—","&ndash;":"–","&hellip;":"…"};function n(r){return r.replace(/&[a-z]+;|&#\d+;/gi,a=>p[a.toLowerCase()]??a)}function i(r){return r?(/<[a-z][\s\S]*?>/i.test(r)?r.replace(/<\/(p|div|h[1-6]|li|blockquote|section|article|ul|ol)>/gi,`
2
+
3
+ `).replace(/<br\s*\/?>/gi,`
4
+
5
+ `).replace(/<[^>]+>/g,""):r).split(/\n{2,}/).map(e=>n(e).replace(/[ \t]+/g," ").trim()).filter(Boolean):[]}function s(r){return r.length<60&&/^[A-Z][^.]*\.$/.test(r.trim())}function u(r){return typeof r!="string"||!r.trim()?[]:i(o(r)).map(a=>s(a)?{heading:a,paragraph:""}:{heading:"",paragraph:a})}function d(){return[{heading:t("A subhead."),paragraph:""},{heading:"",paragraph:t("Each paragraph of the post's body is drawn by the card template.")},{heading:"",paragraph:t("Another paragraph.")}]}export{l as ARTICLE_BODY_FIELD,g as BLOG_POST_RECORD_TYPE,u as articleRows,d as sampleArticleRows};
@@ -0,0 +1,12 @@
1
+ type Props = Record<string, unknown>;
2
+ export declare function articlePageDocument(): {
3
+ root: {
4
+ props: Props;
5
+ };
6
+ content: {
7
+ type: string;
8
+ props: Props;
9
+ }[];
10
+ zones: Props;
11
+ };
12
+ export {};
@@ -0,0 +1 @@
1
+ import{CARD_ROW_FIELD_PROP as s}from"efficient-web-builder/format/lib/content/card-template";import{RECORD_TITLE_FIELD as m}from"efficient-web-builder/format/lib/content/record-row";import{TEMPLATE_RECORD_TYPE_PROP as _}from"efficient-web-builder/format/lib/content/record-types";import{BOX_TYPE as n,CONTAINER_BLOCKS_SLOT as r}from"efficient-web-builder/format/lib/document/container-blocks";import{BOX as g,DIM as c,TEXT as E,boxPadding as p,seedNodes as O,token as d}from"efficient-web-builder/format/lib/document/seed-parts";import{BLOG_POST_RECORD_TYPE as P}from"./article-body.js";import{ARTICLE_BODY_BLOCK as l,ARTICLE_HEADING_LOOK as T,ARTICLE_MEASURE as y,ARTICLE_PARAGRAPH_LOOK as R,articleBodySeed as B}from"./article-body-seed.js";const a={...g,direction:"column",align:"center"},i=(e,o,t)=>({type:"Text",props:{...o,text:"",[s]:e,align:"center",maxWidth:y,_partStyles:{text:{...t,align:"center"}}}}),L=[{type:n,props:{...a,name:"Title",gap:16,...p(64,32,40,20),sectionPaddingBottom:16,sectionPaddingBottomPhone:16},slots:{[r]:[i("category",{...c,tag:"p"},{textStyle:"body-1",...d("label",13),case:"upper",letterSpacing:.2}),i(m,{...E,tag:"h1"},T),i("excerpt",{...c,tag:"p"},R)]}},{type:n,props:{...a,align:"stretch",name:"Cover",...p(0,0,0,0)},slots:{[r]:[{type:"ImageBlock",props:{[s]:"cover",aspect:"16/9",contained:!0,widthMode:"page",...p(0,32,0,20)}}]}},{type:n,props:{...a,name:"Body",...p(0,32,0,20),sectionPaddingBottom:64,sectionPaddingBottomPhone:40},slots:{[r]:[{type:l,props:{}}]}},{type:n,props:{...a,align:"stretch",name:"Breadcrumb",...p(0,0,0,0)},slots:{[r]:[{type:"Breadcrumb",props:{items:[{label:"Home",href:"/"},{label:"Journal",href:"/journal"}],meta:"",[s]:m}}]}}];function x(){const e=O(L,(o,t)=>`article-${o}-${t.replace(/\./g,"-")}`).map(u);return{root:{props:{[_]:P}},content:e,zones:{}}}function u(e){const o=e.props[r];return Array.isArray(o)?{...e,props:{...e.props,[r]:o.map(t=>t.type===l?{...t,props:{...t.props,template:B(String(t.props.id))}}:t)}}:e}export{x as articlePageDocument};
@@ -1,4 +1,10 @@
1
1
  import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
2
+ export declare const DetailRowsSlots: {
3
+ template: {
4
+ type: "slot";
5
+ allow: string[];
6
+ };
7
+ };
2
8
  export declare const DETAILROWS_SCAFFOLD_ROWS: {
3
9
  image: string;
4
10
  eyebrow: string;
@@ -1 +1 @@
1
- const e=[{image:"",eyebrow:"Feature eyebrow",title:"Feature *one.*",copy:"Describe this feature in a sentence or two.",tag:"01 · Detail"},{image:"",eyebrow:"Feature eyebrow",title:"Feature *two.*",copy:"Describe this feature in a sentence or two.",tag:"02 · Detail"},{image:"",eyebrow:"Feature eyebrow",title:"Feature *three.*",copy:"Describe this feature in a sentence or two.",tag:"03 · Detail"}],t={label:"Feature Rows",defaultProps:{dynamic:!1,rows:[],startLeft:!1,layout:"even",padTop:100,padBottom:100}};export{e as DETAILROWS_SCAFFOLD_ROWS,t as DetailRowsMeta};
1
+ import{cardTemplateSlot as e}from"efficient-web-builder/format/lib/content/card-template";const t={template:e()},o=[{image:"",eyebrow:"Feature eyebrow",title:"Feature *one.*",copy:"Describe this feature in a sentence or two.",tag:"01 · Detail"},{image:"",eyebrow:"Feature eyebrow",title:"Feature *two.*",copy:"Describe this feature in a sentence or two.",tag:"02 · Detail"},{image:"",eyebrow:"Feature eyebrow",title:"Feature *three.*",copy:"Describe this feature in a sentence or two.",tag:"03 · Detail"}],r={label:"Feature Rows",fields:t,defaultProps:{dynamic:!1,rows:[],startLeft:!1,layout:"even",padTop:100,padBottom:100}};export{o as DETAILROWS_SCAFFOLD_ROWS,r as DetailRowsMeta,t as DetailRowsSlots};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import o from"../../../../../components/pdp-dynamic/DynamicDetailRows.js";import d from"../../../../../components/DetailRows.js";import{phRows as i}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{DetailRowsMeta as a,DETAILROWS_SCAFFOLD_ROWS as m}from"./meta.js";const y={...a,render:t=>t.dynamic?e(o,{rowsFrom:t.rowsFrom==="details"?"details":"story",startLeft:t.startLeft,padTop:typeof t.padTop=="number"?t.padTop:void 0,padBottom:typeof t.padBottom=="number"?t.padBottom:void 0,editing:t.editor?.isEditing}):e(d,{rows:i(t.rows,m,t.editor),startLeft:t.startLeft,layout:t.layout,padTop:typeof t.padTop=="number"?t.padTop:void 0,padBottom:typeof t.padBottom=="number"?t.padBottom:void 0,editing:t.editor?.isEditing})};export{y as DetailRowsRender};
1
+ import{jsx as e}from"react/jsx-runtime";import d from"../../../../../components/pdp-dynamic/DynamicDetailRows.js";import i from"../../../../../components/DetailRows.js";import{phRows as o}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{DetailRowsMeta as a,DETAILROWS_SCAFFOLD_ROWS as n}from"./meta.js";const y={...a,render:t=>t.dynamic?e(d,{rowsFrom:t.rowsFrom==="details"?"details":"story",startLeft:t.startLeft,padTop:typeof t.padTop=="number"?t.padTop:void 0,padBottom:typeof t.padBottom=="number"?t.padBottom:void 0,editing:t.editor?.isEditing,template:t.template,nodeId:typeof t.id=="string"?t.id:void 0}):e(i,{rows:o(t.rows,n,t.editor),startLeft:t.startLeft,layout:t.layout,padTop:typeof t.padTop=="number"?t.padTop:void 0,padBottom:typeof t.padBottom=="number"?t.padBottom:void 0,editing:t.editor?.isEditing,template:t.template,nodeId:typeof t.id=="string"?t.id:void 0})};export{y as DetailRowsRender};
@@ -0,0 +1,2 @@
1
+ import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
2
+ export declare const FitmentPickerMeta: Omit<BlockRender, "render">;
@@ -0,0 +1 @@
1
+ const e={label:"Fitment picker",defaultProps:{}};export{e as FitmentPickerMeta};
@@ -0,0 +1,2 @@
1
+ import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
2
+ export declare const FitmentPickerRender: BlockRender;
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import i from"../../../../../components/fitment/FitmentPickerPart.js";import{phoneKey as o}from"efficient-easel/draw";import{FitmentPickerMeta as r}from"./meta.js";const s={...r,render:e=>t(i,{layout:e.layout==="short"?"short":"tall",pickerColumns:e.pickerColumns,pickerColumnsPhone:e[o("pickerColumns")],editing:!!e.editor?.isEditing})};export{s as FitmentPickerRender};
@@ -1 +1 @@
1
- import{PH as t}from"efficient-web-builder/format/lib/document/blocks/placeholders";const o={num:t.sectionNumber,title:"Specifications *table.*",description:t.body,footnote:"Add a short footnote here.",footnoteLinkText:"Contact us"},n={label:"Fitment Table",defaultProps:{dynamic:!1,num:"",title:"",description:"",wheel:"",showFilter:!0,tooltipDefaultOn:!0,footnote:"",footnoteLinkText:"",footnoteLinkHref:""}};export{o as FITMENTTABLE_PH,n as FitmentTableMeta};
1
+ import{PH as t}from"efficient-web-builder/format/lib/document/blocks/placeholders";const e={num:t.sectionNumber,title:"Specifications *table.*",description:t.body,footnote:"Add a short footnote here.",footnoteLinkText:"Contact us"},n={label:"Sizes",defaultProps:{dynamic:!1,num:"",title:"",description:"",wheel:"",showFilter:!0,tooltipDefaultOn:!0,footnote:"",footnoteLinkText:"",footnoteLinkHref:""}};export{e as FITMENTTABLE_PH,n as FitmentTableMeta};
@@ -1 +1 @@
1
- import{jsx as m}from"react/jsx-runtime";import f from"../../../../../components/pdp-dynamic/FitmentTableBlock.js";import{hidableText as l}from"efficient-easel/screen/lib/document/hidable";import{parseSectionHeadPlacement as a}from"efficient-web-builder/format/lib/sections/section-head-placement";import{phHide as e}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{FitmentTableMeta as r,FITMENTTABLE_PH as o}from"./meta.js";const w={...r,render:t=>{const n=a(t.headPlacement)==="own-box",i=d=>n?void 0:d;return m(f,{dynamic:t.dynamic,wheel:t.wheel,num:i(e(t.num,o.num,t.editor)),title:i(e(t.title,o.title,t.editor)),description:i(e(t.description,o.description,t.editor)),omitHead:n,showFilter:t.showFilter,tooltipDefaultOn:t.tooltipDefaultOn,footnote:e(t.footnote,o.footnote,t.editor),footnoteLinkText:e(t.footnoteLinkText,o.footnoteLinkText,t.editor),footnoteLinkHref:l(t.footnoteLinkHref),editing:t.editor?.isEditing})}};export{w as FitmentTableRender};
1
+ import{jsx as l}from"react/jsx-runtime";import r from"../../../../../components/pdp-dynamic/FitmentTableBlock.js";import{TYRE_SIZES_HEAD as d}from"../../../../../components/TyreSizeGrid.js";import{hidableText as a}from"efficient-easel/screen/lib/document/hidable";import{parseSectionHeadPlacement as c}from"efficient-web-builder/format/lib/sections/section-head-placement";import{phHide as e,phHideDefault as m}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{FitmentTableMeta as T,FITMENTTABLE_PH as i}from"./meta.js";const F={...T,render:t=>{const o=c(t.headPlacement)==="own-box",n=f=>o?void 0:f;return l(r,{dynamic:t.dynamic,wheel:t.wheel,num:n(e(t.num,i.num,t.editor)),title:n(e(t.title,i.title,t.editor)),description:n(e(t.description,i.description,t.editor)),tyreHead:o?void 0:{title:m(t.title,d.title,t.editor),description:m(t.description,d.description,t.editor)},omitHead:o,showFilter:t.showFilter,tooltipDefaultOn:t.tooltipDefaultOn,footnote:e(t.footnote,i.footnote,t.editor),footnoteLinkText:e(t.footnoteLinkText,i.footnoteLinkText,t.editor),footnoteLinkHref:a(t.footnoteLinkHref),editing:t.editor?.isEditing})}};export{F as FitmentTableRender};
@@ -1 +1 @@
1
- import{jsx as m}from"react/jsx-runtime";import{phoneKey as w}from"efficient-easel/draw";import f from"../../../../../components/pdp-dynamic/DynamicRelatedProducts.js";import{DEFAULT_RELATIONSHIP as C}from"../../../../catalog/relationships.js";import{resolveWidth as s}from"efficient-web-builder/format/lib/content/section-width";import P from"../../../../../components/ProductGridSection.js";import{resolveBoundCardImageBackground as B}from"efficient-web-builder/format/lib/content/card-image-background";import{hidableText as x}from"efficient-easel/screen/lib/document/hidable";import{parseCoverIndex as k}from"../../../../wheels/cover-rendering.js";import{cardHoverOf as c}from"efficient-web-builder/format/lib/animation/hover";import{parseSectionHeadPlacement as I}from"efficient-web-builder/format/lib/sections/section-head-placement";import{parseCardOutline as u,parseCardIndexFormat as g}from"efficient-web-builder/format/lib/sections/product-card-style";import{PH as t}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{phHide as i}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{PRODUCTGRID_PH as a}from"../placeholders.js";import{ProductGridMeta as y}from"./meta.js";const K={...y,render:e=>{if(e.dynamic)return m(f,{num:i(e.num,a.num,e.editor),title:i(e.title,t.sectionHeading,e.editor),description:i(e.description,t.body,e.editor),columns:typeof e.columns=="number"?e.columns:3,relationship:C,cardImage:e.cardImage,outline:u(e.outline),indexBadge:g(e.indexBadge),showBadge:e.showBadge??!0,hover:c(e,"ProductGrid"),imageBackground:B(e.imageBackground),showCardPrice:e.showCardPrice,showCardFinishes:e.showCardFinishes,showCardSizes:e.showCardSizes,showCardBuy:e.showCardBuy,showCardPage:e.showCardPage,editing:e.editor?.isEditing});const n=i(e.linkText,a.link,e.editor),o=e.source,h=s(e,"full"),r=I(e.headPlacement)==="own-box",d=l=>r?void 0:l;return m(P,{gap:e.gap,gapPhone:e[w("gap")],contentCapped:h.mode==="page",num:d(i(e.num,a.num,e.editor)),title:d(i(e.title,t.sectionHeading,e.editor)),titleSize:e.titleSize,padTop:r?0:e.padTop,description:d(i(e.description,t.body,e.editor)),link:d(n?{text:n,href:x(e.linkHref)||"#"}:void 0),products:e.products,wheels:e.wheels,source:o?.slug?o:void 0,catalog:e.catalog,kinds:e.kinds,fieldUsage:e.fieldUsage,columns:e.columns,limit:e.showAll?void 0:e.limit,editing:e.editor?.isEditing,imageBackground:e.imageBackground,cardImage:e.cardImage,hover:c(e,"ProductGrid"),coverIndex:k(e.coverIndex),outline:u(e.outline),indexBadge:g(e.indexBadge),showBadge:e.showBadge??!0,showCardPrice:e.showCardPrice,showCardFinishes:e.showCardFinishes,showCardSizes:e.showCardSizes,showCardBuy:e.showCardBuy,showCardPage:e.showCardPage})}};export{K as ProductGridRender};
1
+ import{jsx as m}from"react/jsx-runtime";import{phoneKey as c}from"efficient-easel/draw";import f from"../../../../../components/pdp-dynamic/DynamicRelatedProducts.js";import{DEFAULT_RELATIONSHIP as C}from"../../../../catalog/relationships.js";import{resolveWidth as s}from"efficient-web-builder/format/lib/content/section-width";import P from"../../../../../components/ProductGridSection.js";import{resolveBoundCardImageBackground as B}from"efficient-web-builder/format/lib/content/card-image-background";import{hidableText as x}from"efficient-easel/screen/lib/document/hidable";import{parseCoverIndex as k}from"../../../../wheels/cover-rendering.js";import{cardHoverOf as u}from"efficient-web-builder/format/lib/animation/hover";import{parseSectionHeadPlacement as I}from"efficient-web-builder/format/lib/sections/section-head-placement";import{parseCardOutline as g,parseCardIndexFormat as h}from"efficient-web-builder/format/lib/sections/product-card-style";import{PH as t}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{phHide as i}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{PRODUCTGRID_PH as n}from"../placeholders.js";import{ProductGridMeta as y}from"./meta.js";const K={...y,render:e=>{if(e.dynamic)return m(f,{num:i(e.num,n.num,e.editor),title:i(e.title,t.sectionHeading,e.editor),description:i(e.description,t.body,e.editor),columns:typeof e.columns=="number"?e.columns:3,relationship:C,cardImage:e.cardImage,outline:g(e.outline),indexBadge:h(e.indexBadge),showBadge:e.showBadge??!0,hover:u(e,"ProductGrid"),imageBackground:B(e.imageBackground),showCardPrice:e.showCardPrice,showCardFinishes:e.showCardFinishes,showCardSizes:e.showCardSizes,showCardBuy:e.showCardBuy,showCardPage:e.showCardPage,editing:e.editor?.isEditing});const a=i(e.linkText,n.link,e.editor),o=e.source,l=s(e,"full"),r=I(e.headPlacement)==="own-box",d=w=>r?void 0:w;return m(P,{gap:e.gap,gapPhone:e[c("gap")],contentCapped:l.mode==="page",num:d(i(e.num,n.num,e.editor)),title:d(i(e.title,t.sectionHeading,e.editor)),titleSize:e.titleSize,padTop:r?0:e.padTop,description:d(i(e.description,t.body,e.editor)),link:d(a?{text:a,href:x(e.linkHref)||"#"}:void 0),products:e.products,wheels:e.wheels,source:o?.slug?o:void 0,catalog:e.catalog,kinds:e.kinds,fieldUsage:e.fieldUsage,columns:e.columns,columnsPhone:e[c("columns")],limit:e.showAll?void 0:e.limit,editing:e.editor?.isEditing,imageBackground:e.imageBackground,cardImage:e.cardImage,hover:u(e,"ProductGrid"),coverIndex:k(e.coverIndex),outline:g(e.outline),indexBadge:h(e.indexBadge),showBadge:e.showBadge??!0,showCardPrice:e.showCardPrice,showCardFinishes:e.showCardFinishes,showCardSizes:e.showCardSizes,showCardBuy:e.showCardBuy,showCardPage:e.showCardPage})}};export{K as ProductGridRender};
@@ -1 +1 @@
1
- import{jsx as g}from"react/jsx-runtime";import h from"../../../../../components/pdp-dynamic/DynamicSpecTable.js";import w from"../../../../../components/SpecTable.js";import{buildSpecSheet as b,buildLegacySpecSheet as y}from"../../../../wheels/spec-sheet.js";import{parseSectionHeadPlacement as S}from"efficient-web-builder/format/lib/sections/section-head-placement";import{phHide as n}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{SpecTableMeta as x,SPECTABLE_PH as a}from"./meta.js";const z={...x,render:e=>{const m=S(e.headPlacement)==="own-box",t=i=>m?void 0:i;if(e.dynamic)return g(h,{nodeId:typeof e.id=="string"?e.id:void 0,num:t(n(e.num,a.num,e.editor)),title:t(n(e.title,a.title,e.editor)),description:t(n(e.description,a.description,e.editor)),showDiagram:e.showDiagram!==!1,omitHead:m,editing:e.editor?.isEditing,template:e.template});const d=e.source??null,o=e.wheel,r=!d?.slug&&typeof o=="string"?o:"",s=typeof e.finish=="string"?e.finish:"",f=typeof e.size=="string"?e.size:"";let l,u=!0,c=null;if(d?.slug&&d.spec){const i=b(d,s,f);l=i.rows,c=e.showDiagram===!1?null:i.diagram}else if(r){const i=y(r,s,f);l=i.rows,c=e.showDiagram===!1?null:i.diagram}else l=e.rows??[],u=!1;return g(w,{capped:!1,nodeId:typeof e.id=="string"?e.id:void 0,num:t(n(e.num,a.num,e.editor)),title:t(n(e.title,a.title,e.editor)),description:t(n(e.description,a.description,e.editor)),rows:l,builtInLabels:u,diagram:c,omitHead:m,editing:e.editor?.isEditing,template:e.template})}};export{z as SpecTableRender};
1
+ import{jsx as g}from"react/jsx-runtime";import h from"../../../../../components/pdp-dynamic/DynamicSpecTable.js";import w from"../../../../../components/SpecTable.js";import{buildSpecSheet as b,buildLegacySpecSheet as y}from"../../../../wheels/spec-sheet.js";import{parseSectionHeadPlacement as S}from"efficient-web-builder/format/lib/sections/section-head-placement";import{phHide as n}from"efficient-web-builder/render/lib/document/blocks/scaffold";import{SpecTableMeta as E,SPECTABLE_PH as a}from"./meta.js";const z={...E,render:e=>{const m=S(e.headPlacement)==="own-box",t=i=>m?void 0:i;if(e.dynamic)return g(h,{nodeId:typeof e.id=="string"?e.id:void 0,num:t(n(e.num,a.num,e.editor)),title:t(n(e.title,a.title,e.editor)),description:t(n(e.description,a.description,e.editor)),showDiagram:e.showDiagram!==!1,omitHead:m,editing:e.editor?.isEditing,template:e.template,showEuLabel:e.showEuLabel===!0});const l=e.source??null,o=e.wheel,s=!l?.slug&&typeof o=="string"?o:"",r=typeof e.finish=="string"?e.finish:"",u=typeof e.size=="string"?e.size:"";let d,f=!0,c=null;if(l?.slug&&l.spec){const i=b(l,r,u);d=i.rows,c=e.showDiagram===!1?null:i.diagram}else if(s){const i=y(s,r,u);d=i.rows,c=e.showDiagram===!1?null:i.diagram}else d=e.rows??[],f=!1;return g(w,{capped:!1,nodeId:typeof e.id=="string"?e.id:void 0,num:t(n(e.num,a.num,e.editor)),title:t(n(e.title,a.title,e.editor)),description:t(n(e.description,a.description,e.editor)),rows:d,builtInLabels:f,diagram:c,omitHead:m,editing:e.editor?.isEditing,template:e.template})}};export{z as SpecTableRender};
@@ -0,0 +1,2 @@
1
+ import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
2
+ export declare const StockFitmentMeta: Omit<BlockRender, "render">;
@@ -0,0 +1 @@
1
+ const t={label:"Stock fitment",defaultProps:{}};export{t as StockFitmentMeta};
@@ -0,0 +1,2 @@
1
+ import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
2
+ export declare const StockFitmentRender: BlockRender;
@@ -0,0 +1 @@
1
+ import{jsx as o}from"react/jsx-runtime";import i from"../../../../../components/fitment/StockFitmentPart.js";import{StockFitmentMeta as t}from"./meta.js";const a={...t,render:e=>o(i,{label:t.label??"",editing:!!e.editor?.isEditing})};export{a as StockFitmentRender};
@@ -33,4 +33,6 @@ export declare const COMMERCE_METAS: {
33
33
  ProductSize: Omit<BlockRender, "render">;
34
34
  ProductColour: Omit<BlockRender, "render">;
35
35
  ProductPrice: Omit<BlockRender, "render">;
36
+ FitmentPicker: Omit<BlockRender, "render">;
37
+ StockFitment: Omit<BlockRender, "render">;
36
38
  };
@@ -1 +1 @@
1
- import{AccountBlockMeta as r}from"./AccountBlock/meta.js";import{AlloyWheelsListingMeta as t}from"./AlloyWheelsListing/meta.js";import{BundleOfferMeta as o}from"./BundleOffer/meta.js";import{CartBlockMeta as e}from"./CartBlock/meta.js";import{CatalogFilterBarMeta as m}from"./CatalogFilterBar/meta.js";import{CheckoutCTAMeta as i}from"./CheckoutCTA/meta.js";import{CollectionCardMeta as a}from"./CollectionCard/meta.js";import{CollectionsMeta as l}from"./Collections/meta.js";import{CompatibleTyresMeta as c}from"./CompatibleTyres/meta.js";import{CountrySwitchBlockMeta as p}from"./CountrySwitchBlock/meta.js";import{DeliveryOptionsMeta as f}from"./DeliveryOptions/meta.js";import{DetailRowsMeta as M}from"./DetailRows/meta.js";import{EuTyreLabelMeta as u}from"./EuTyreLabel/meta.js";import{EuTyreLabelBlockMeta as d}from"./EuTyreLabelBlock/meta.js";import{FitmentFinderMeta as y}from"./FitmentFinder/meta.js";import{FitmentTableMeta as n}from"./FitmentTable/meta.js";import{GalleryBMeta as C}from"./GalleryB/meta.js";import{GalleryItemMeta as T}from"./GalleryItem/meta.js";import{GalleryMeta as B}from"./Gallery/meta.js";import{HeaderMeta as P}from"./Header/meta.js";import{ProductGalleryMeta as s}from"./ProductGallery/meta.js";import{ProductGridMeta as k}from"./ProductGrid/meta.js";import{ProductHeroMeta as S}from"./ProductHero/meta.js";import{ProductRefMeta as h}from"./ProductRef/meta.js";import{RelatedProductsMeta as b}from"./RelatedProducts/meta.js";import{SearchBlockMeta as F}from"./SearchBlock/meta.js";import{SpecTableMeta as G}from"./SpecTable/meta.js";import{ThemeSwitchBlockMeta as A}from"./ThemeSwitchBlock/meta.js";import{TyreFitmentMeta as E}from"./TyreFitment/meta.js";import{TyreSizesMeta as R}from"./TyreSizes/meta.js";import{ProductSizeMeta as w}from"./ProductSize/meta.js";import{ProductColourMeta as L}from"./ProductColour/meta.js";import{ProductPriceMeta as O}from"./ProductPrice/meta.js";const ur={AccountBlock:r,AlloyWheelsListing:t,BundleOffer:o,CartBlock:e,CatalogFilterBar:m,CheckoutCTA:i,CollectionCard:a,Collections:l,CompatibleTyres:c,CountrySwitchBlock:p,DeliveryOptions:f,DetailRows:M,EuTyreLabel:u,EuTyreLabelBlock:d,FitmentFinder:y,FitmentTable:n,Gallery:B,GalleryB:C,GalleryItem:T,Header:P,ProductGallery:s,ProductGrid:k,ProductHero:S,ProductRef:h,RelatedProducts:b,SearchBlock:F,SpecTable:G,ThemeSwitchBlock:A,TyreFitment:E,TyreSizes:R,ProductSize:w,ProductColour:L,ProductPrice:O};export{ur as COMMERCE_METAS};
1
+ import{AccountBlockMeta as t}from"./AccountBlock/meta.js";import{AlloyWheelsListingMeta as r}from"./AlloyWheelsListing/meta.js";import{BundleOfferMeta as o}from"./BundleOffer/meta.js";import{CartBlockMeta as e}from"./CartBlock/meta.js";import{CatalogFilterBarMeta as m}from"./CatalogFilterBar/meta.js";import{CheckoutCTAMeta as i}from"./CheckoutCTA/meta.js";import{CollectionCardMeta as a}from"./CollectionCard/meta.js";import{CollectionsMeta as l}from"./Collections/meta.js";import{CompatibleTyresMeta as c}from"./CompatibleTyres/meta.js";import{CountrySwitchBlockMeta as p}from"./CountrySwitchBlock/meta.js";import{DeliveryOptionsMeta as f}from"./DeliveryOptions/meta.js";import{DetailRowsMeta as M}from"./DetailRows/meta.js";import{EuTyreLabelMeta as u}from"./EuTyreLabel/meta.js";import{EuTyreLabelBlockMeta as d}from"./EuTyreLabelBlock/meta.js";import{FitmentFinderMeta as n}from"./FitmentFinder/meta.js";import{FitmentPickerMeta as y}from"./FitmentPicker/meta.js";import{FitmentTableMeta as C}from"./FitmentTable/meta.js";import{GalleryBMeta as P}from"./GalleryB/meta.js";import{GalleryItemMeta as T}from"./GalleryItem/meta.js";import{GalleryMeta as k}from"./Gallery/meta.js";import{HeaderMeta as B}from"./Header/meta.js";import{ProductGalleryMeta as s}from"./ProductGallery/meta.js";import{ProductGridMeta as S}from"./ProductGrid/meta.js";import{ProductHeroMeta as F}from"./ProductHero/meta.js";import{ProductRefMeta as h}from"./ProductRef/meta.js";import{RelatedProductsMeta as b}from"./RelatedProducts/meta.js";import{SearchBlockMeta as G}from"./SearchBlock/meta.js";import{SpecTableMeta as A}from"./SpecTable/meta.js";import{ThemeSwitchBlockMeta as E}from"./ThemeSwitchBlock/meta.js";import{TyreFitmentMeta as R}from"./TyreFitment/meta.js";import{TyreSizesMeta as w}from"./TyreSizes/meta.js";import{ProductSizeMeta as L}from"./ProductSize/meta.js";import{ProductColourMeta as O}from"./ProductColour/meta.js";import{ProductPriceMeta as g}from"./ProductPrice/meta.js";import{StockFitmentMeta as z}from"./StockFitment/meta.js";const Ct={AccountBlock:t,AlloyWheelsListing:r,BundleOffer:o,CartBlock:e,CatalogFilterBar:m,CheckoutCTA:i,CollectionCard:a,Collections:l,CompatibleTyres:c,CountrySwitchBlock:p,DeliveryOptions:f,DetailRows:M,EuTyreLabel:u,EuTyreLabelBlock:d,FitmentFinder:n,FitmentTable:C,Gallery:k,GalleryB:P,GalleryItem:T,Header:B,ProductGallery:s,ProductGrid:S,ProductHero:F,ProductRef:h,RelatedProducts:b,SearchBlock:G,SpecTable:A,ThemeSwitchBlock:E,TyreFitment:R,TyreSizes:w,ProductSize:L,ProductColour:O,ProductPrice:g,FitmentPicker:y,StockFitment:z};export{Ct as COMMERCE_METAS};
@@ -33,5 +33,7 @@ export declare const COMMERCE_RENDERS: {
33
33
  ProductSize: BlockRender;
34
34
  ProductColour: BlockRender;
35
35
  ProductPrice: BlockRender;
36
+ FitmentPicker: BlockRender;
37
+ StockFitment: BlockRender;
36
38
  };
37
39
  export type CommerceBlockType = keyof typeof COMMERCE_RENDERS;
@@ -1 +1 @@
1
- import{AccountBlockRender as r}from"./AccountBlock/render.js";import{AlloyWheelsListingRender as e}from"./AlloyWheelsListing/render.js";import{BundleOfferRender as o}from"./BundleOffer/render.js";import{CartBlockRender as t}from"./CartBlock/render.js";import{CatalogFilterBarRender as m}from"./CatalogFilterBar/render.js";import{CheckoutCTARender as i}from"./CheckoutCTA/render.js";import{CollectionCardRender as l}from"./CollectionCard/render.js";import{CollectionsRender as d}from"./Collections/render.js";import{CompatibleTyresRender as n}from"./CompatibleTyres/render.js";import{CountrySwitchBlockRender as c}from"./CountrySwitchBlock/render.js";import{DeliveryOptionsRender as R}from"./DeliveryOptions/render.js";import{DetailRowsRender as p}from"./DetailRows/render.js";import{EuTyreLabelRender as f}from"./EuTyreLabel/render.js";import{EuTyreLabelBlockRender as a}from"./EuTyreLabelBlock/render.js";import{FitmentFinderRender as u}from"./FitmentFinder/render.js";import{FitmentTableRender as y}from"./FitmentTable/render.js";import{GalleryRender as C}from"./Gallery/render.js";import{GalleryBRender as B}from"./GalleryB/render.js";import{GalleryItemRender as P}from"./GalleryItem/render.js";import{HeaderRender as T}from"./Header/render.js";import{ProductGalleryRender as s}from"./ProductGallery/render.js";import{ProductGridRender as k}from"./ProductGrid/render.js";import{ProductHeroRender as S}from"./ProductHero/render.js";import{ProductRefRender as h}from"./ProductRef/render.js";import{RelatedProductsRender as b}from"./RelatedProducts/render.js";import{SearchBlockRender as F}from"./SearchBlock/render.js";import{SpecTableRender as G}from"./SpecTable/render.js";import{ThemeSwitchBlockRender as E}from"./ThemeSwitchBlock/render.js";import{TyreFitmentRender as w}from"./TyreFitment/render.js";import{TyreSizesRender as A}from"./TyreSizes/render.js";import{ProductSizeRender as L}from"./ProductSize/render.js";import{ProductColourRender as D}from"./ProductColour/render.js";import{ProductPriceRender as O}from"./ProductPrice/render.js";const fr={AccountBlock:r,AlloyWheelsListing:e,BundleOffer:o,CartBlock:t,CatalogFilterBar:m,CheckoutCTA:i,CollectionCard:l,Collections:d,CompatibleTyres:n,CountrySwitchBlock:c,DeliveryOptions:R,DetailRows:p,EuTyreLabel:f,EuTyreLabelBlock:a,FitmentFinder:u,FitmentTable:y,Gallery:C,GalleryB:B,GalleryItem:P,Header:T,ProductGallery:s,ProductGrid:k,ProductHero:S,ProductRef:h,RelatedProducts:b,SearchBlock:F,SpecTable:G,ThemeSwitchBlock:E,TyreFitment:w,TyreSizes:A,ProductSize:L,ProductColour:D,ProductPrice:O};export{fr as COMMERCE_RENDERS};
1
+ import{AccountBlockRender as r}from"./AccountBlock/render.js";import{AlloyWheelsListingRender as e}from"./AlloyWheelsListing/render.js";import{BundleOfferRender as o}from"./BundleOffer/render.js";import{CartBlockRender as t}from"./CartBlock/render.js";import{CatalogFilterBarRender as m}from"./CatalogFilterBar/render.js";import{CheckoutCTARender as i}from"./CheckoutCTA/render.js";import{CollectionCardRender as l}from"./CollectionCard/render.js";import{CollectionsRender as d}from"./Collections/render.js";import{CompatibleTyresRender as n}from"./CompatibleTyres/render.js";import{CountrySwitchBlockRender as c}from"./CountrySwitchBlock/render.js";import{DeliveryOptionsRender as R}from"./DeliveryOptions/render.js";import{DetailRowsRender as p}from"./DetailRows/render.js";import{EuTyreLabelRender as f}from"./EuTyreLabel/render.js";import{EuTyreLabelBlockRender as a}from"./EuTyreLabelBlock/render.js";import{FitmentFinderRender as u}from"./FitmentFinder/render.js";import{FitmentPickerRender as y}from"./FitmentPicker/render.js";import{FitmentTableRender as C}from"./FitmentTable/render.js";import{GalleryRender as P}from"./Gallery/render.js";import{GalleryBRender as k}from"./GalleryB/render.js";import{GalleryItemRender as B}from"./GalleryItem/render.js";import{HeaderRender as T}from"./Header/render.js";import{ProductGalleryRender as s}from"./ProductGallery/render.js";import{ProductGridRender as S}from"./ProductGrid/render.js";import{ProductHeroRender as F}from"./ProductHero/render.js";import{ProductRefRender as h}from"./ProductRef/render.js";import{RelatedProductsRender as b}from"./RelatedProducts/render.js";import{SearchBlockRender as G}from"./SearchBlock/render.js";import{SpecTableRender as E}from"./SpecTable/render.js";import{ThemeSwitchBlockRender as w}from"./ThemeSwitchBlock/render.js";import{TyreFitmentRender as A}from"./TyreFitment/render.js";import{TyreSizesRender as L}from"./TyreSizes/render.js";import{ProductSizeRender as D}from"./ProductSize/render.js";import{ProductColourRender as O}from"./ProductColour/render.js";import{ProductPriceRender as g}from"./ProductPrice/render.js";import{StockFitmentRender as z}from"./StockFitment/render.js";const Cr={AccountBlock:r,AlloyWheelsListing:e,BundleOffer:o,CartBlock:t,CatalogFilterBar:m,CheckoutCTA:i,CollectionCard:l,Collections:d,CompatibleTyres:n,CountrySwitchBlock:c,DeliveryOptions:R,DetailRows:p,EuTyreLabel:f,EuTyreLabelBlock:a,FitmentFinder:u,FitmentTable:C,Gallery:P,GalleryB:k,GalleryItem:B,Header:T,ProductGallery:s,ProductGrid:S,ProductHero:F,ProductRef:h,RelatedProducts:b,SearchBlock:G,SpecTable:E,ThemeSwitchBlock:w,TyreFitment:A,TyreSizes:L,ProductSize:D,ProductColour:O,ProductPrice:g,FitmentPicker:y,StockFitment:z};export{Cr as COMMERCE_RENDERS};
@@ -0,0 +1,8 @@
1
+ import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
2
+ export declare const ArticleBodySlots: {
3
+ template: {
4
+ type: "slot";
5
+ allow: string[];
6
+ };
7
+ };
8
+ export declare const ArticleBodyMeta: Omit<BlockRender, "render">;
@@ -0,0 +1 @@
1
+ import{cardTemplateSlot as t}from"efficient-web-builder/format/lib/content/card-template";const e={template:t()},l={label:"Article Body",fields:e,defaultProps:{}};export{l as ArticleBodyMeta,e as ArticleBodySlots};
@@ -0,0 +1,2 @@
1
+ import type { BlockRender } from "efficient-web-builder/format/lib/document/blocks/block-types";
2
+ export declare const ArticleBodyRender: BlockRender;
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import o from"../../../../../components/ArticleBody.js";import{ArticleBodyMeta as d}from"./meta.js";const s={...d,render:({id:r,template:t,editor:i})=>e(o,{id:String(r??""),template:t,editing:i?.isEditing})};export{s as ArticleBodyRender};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import i from"../../../../../components/SectionGroupBody.js";import{SiteFooterMeta as n}from"./meta.js";const p={...n,render:({sections:o,fullWidth:t,editor:e})=>r(i,{place:"footer",sections:o,fullWidth:t,editing:e?.isEditing})};export{p as SiteFooterRender};
1
+ import{jsx as r}from"react/jsx-runtime";import i from"../../../../../components/SectionGroupBody.js";import{SiteFooterMeta as s}from"./meta.js";const p={...s,render:({sections:o,editor:t,...e})=>r(i,{place:"footer",sections:o,widths:e,editing:t?.isEditing})};export{p as SiteFooterRender};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import c from"../../../../../components/BoxHeaderBar.js";import x from"../../../../../components/SectionGroupBody.js";import{SiteHeaderMeta as f}from"./meta.js";const y={...f,render:({sections:i,fullWidth:o,navTextCase:n,menuRow:d,sticky:s,topTextColor:a,heightPx:m,sectionAccent:p,editor:e})=>{const r=t(x,{place:"header",sections:i,fullWidth:o,navTextCase:n,menuRow:d,editing:e?.isEditing});return e?.isEditing?t(c,{sticky:s,topTextColor:a,heightPx:m,theme:p,children:r}):r}};export{y as SiteHeaderRender};
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};
@@ -10,6 +10,7 @@ export declare const SERVICE_METAS: {
10
10
  FooterGroup: Omit<BlockRender, "render">;
11
11
  FooterLogo: Omit<BlockRender, "render">;
12
12
  FooterMenu: Omit<BlockRender, "render">;
13
+ ArticleBody: Omit<BlockRender, "render">;
13
14
  FooterSocial: Omit<BlockRender, "render">;
14
15
  FooterPayment: Omit<BlockRender, "render">;
15
16
  FooterText: 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 n}from"./FooterGroup/meta.js";import{FooterLogoMeta as M}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 l}from"./Form/meta.js";import{LegalLineBlockMeta as B}from"./LegalLineBlock/meta.js";import{MenuLinkBlockMeta as S}from"./MenuLinkBlock/meta.js";import{OpeningHoursMeta as c}from"./OpeningHours/meta.js";import{RateTableMeta as b}from"./RateTable/meta.js";import{MessagingCardsMeta as E}from"./MessagingCards/meta.js";import{FooterMessagingMeta as R}from"./FooterMessaging/meta.js";import{ContactCardsMeta as k}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 v}from"./SiteFooter/meta.js";import{SiteHeaderMeta as L}from"./SiteHeader/meta.js";import{SubmitBoxMeta as x}from"./SubmitBox/meta.js";import{SubmitBuildMeta as _}from"./SubmitBuild/meta.js";import{SubscribeBlogsMeta as w}from"./SubscribeBlogs/meta.js";import{SubscribeMeta as A}from"./Subscribe/meta.js";const Mo={AppointmentBooking:r,BookingBox:e,ContactRouting:i,Events:m,Footer:g,FooterDivider:a,FooterEmailSignup:p,FooterGroup:n,FooterLogo:M,FooterMenu:f,FooterSocial:F,FooterPayment:s,FooterText:u,Form:l,LegalLineBlock:B,MenuLinkBlock:S,OpeningHours:c,RateTable:b,MessagingCards:E,FooterMessaging:R,ContactCards:k,RatingBlock:T,ReviewForm:d,Reviews:C,[o]:v,[t]:L,SubmitBox:x,SubmitBuild:_,Subscribe:A,SubscribeBlogs:w};export{Mo 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{ArticleBodyMeta as g}from"./ArticleBody/meta.js";import{FooterMeta as F}from"./Footer/meta.js";import{FooterSocialMeta as s}from"./FooterSocial/meta.js";import{FooterPaymentMeta as u}from"./FooterPayment/meta.js";import{FooterTextMeta as l}from"./FooterText/meta.js";import{FormMeta as B}from"./Form/meta.js";import{LegalLineBlockMeta as c}from"./LegalLineBlock/meta.js";import{MenuLinkBlockMeta as S}from"./MenuLinkBlock/meta.js";import{OpeningHoursMeta as b}from"./OpeningHours/meta.js";import{RateTableMeta as E}from"./RateTable/meta.js";import{MessagingCardsMeta as R}from"./MessagingCards/meta.js";import{FooterMessagingMeta as k}from"./FooterMessaging/meta.js";import{ContactCardsMeta as d}from"./ContactCards/meta.js";import{RatingBlockMeta as T}from"./RatingBlock/meta.js";import{ReviewFormMeta as C}from"./ReviewForm/meta.js";import{ReviewsMeta as v}from"./Reviews/meta.js";import{SiteFooterMeta as L}from"./SiteFooter/meta.js";import{SiteHeaderMeta as x}from"./SiteHeader/meta.js";import{SubmitBoxMeta as A}from"./SubmitBox/meta.js";import{SubmitBuildMeta as _}from"./SubmitBuild/meta.js";import{SubscribeBlogsMeta as w}from"./SubscribeBlogs/meta.js";import{SubscribeMeta as y}from"./Subscribe/meta.js";const go={AppointmentBooking:r,BookingBox:e,ContactRouting:i,Events:m,Footer:F,FooterDivider:a,FooterEmailSignup:p,FooterGroup:M,FooterLogo:n,FooterMenu:f,ArticleBody:g,FooterSocial:s,FooterPayment:u,FooterText:l,Form:B,LegalLineBlock:c,MenuLinkBlock:S,OpeningHours:b,RateTable:E,MessagingCards:R,FooterMessaging:k,ContactCards:d,RatingBlock:T,ReviewForm:C,Reviews:v,[o]:L,[t]:x,SubmitBox:A,SubmitBuild:_,Subscribe:y,SubscribeBlogs:w};export{go as SERVICE_METAS};