efficient-storefront-blocks 0.84.0 → 0.85.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 (59) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/chunks/{EditorPreviewCheckout-3NVDTH56.js → EditorPreviewCheckout-4XHYYAT2.js} +1 -1
  3. package/dist/chunks/{SiteEditorProvider-77K7CGYZ.js → SiteEditorProvider-X4YKBAJ4.js} +1 -1
  4. package/dist/chunks/{chunk-F3MB7QCR.js → chunk-KKKMX6LH.js} +1 -1
  5. package/dist/chunks/{chunk-VJLQXB7I.js → chunk-NFXV7HDB.js} +1 -1
  6. package/dist/chunks/chunk-NNBMZAW4.js +340 -0
  7. package/dist/chunks/chunk-VG4SUIRK.js +1 -0
  8. package/dist/chunks/{chunk-VYOK2XBF.js → chunk-Y5LB56KB.js} +1 -1
  9. package/dist/chunks/{fitment-data-PWXEDMOA.js → fitment-data-2I2FDPXW.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/index.d.ts +1 -1
  13. package/dist/editor/lib/document/config.d.ts +1 -0
  14. package/dist/editor/lib/document/config.js +1 -1
  15. package/dist/editor/lib/document/popup-look-fields.d.ts +4 -0
  16. package/dist/editor/lib/document/popup-look-fields.js +1 -0
  17. package/dist/editor/lib/efficient-backend.js +1 -1
  18. package/dist/editor/lib/storefront-editor-words.d.ts +8 -1
  19. package/dist/editor/lib/storefront-editor-words.js +1 -1
  20. package/dist/editor.css +1 -1
  21. package/dist/index.js +124 -52
  22. package/dist/render/app/globals.css +156 -0
  23. package/dist/render/built-with.json +1 -1
  24. package/dist/render/components/CartContext.d.ts +1 -0
  25. package/dist/render/components/CartContext.js +1 -1
  26. package/dist/render/components/CartDrawer.d.ts +4 -3
  27. package/dist/render/components/CartDrawer.js +1 -4
  28. package/dist/render/components/DetailRows.d.ts +6 -1
  29. package/dist/render/components/DetailRows.js +1 -1
  30. package/dist/render/components/PopupFrame.d.ts +10 -1
  31. package/dist/render/components/PopupFrame.js +5 -1
  32. package/dist/render/components/Reviews.d.ts +1 -0
  33. package/dist/render/components/Reviews.js +1 -1
  34. package/dist/render/components/SpecTable.js +1 -1
  35. package/dist/render/components/pdp-dynamic/DynamicDetailRows.d.ts +2 -0
  36. package/dist/render/components/pdp-dynamic/DynamicDetailRows.js +1 -1
  37. package/dist/render/lib/document/blocks/commerce/DetailRows/meta.d.ts +6 -0
  38. package/dist/render/lib/document/blocks/commerce/DetailRows/meta.js +1 -1
  39. package/dist/render/lib/document/blocks/commerce/DetailRows/render.js +1 -1
  40. package/dist/render/lib/document/card-templates.js +1 -1
  41. package/dist/render/lib/document/current-record.d.ts +4 -15
  42. package/dist/render/lib/document/current-record.js +1 -1
  43. package/dist/render/lib/document/render-config.d.ts +1 -0
  44. package/dist/render/lib/document/render-config.js +1 -1
  45. package/dist/render/lib/document/section-to-box-rows-detail.d.ts +2 -0
  46. package/dist/render/lib/document/section-to-box-rows-detail.js +1 -0
  47. package/dist/render/lib/document/section-to-box-rows-reviews.js +1 -1
  48. package/dist/render/lib/document/section-to-box-rows-spec.js +1 -1
  49. package/dist/render/lib/document/storefront-root.js +1 -1
  50. package/dist/render/lib/sections/section-band.d.ts +6 -0
  51. package/dist/render/lib/sections/section-band.js +1 -1
  52. package/dist/render/lib/sections/spec-table-band.d.ts +4 -0
  53. package/dist/render/lib/sections/spec-table-band.js +1 -0
  54. package/dist/words.d.ts +34 -12
  55. package/dist/words.js +5 -5
  56. package/package.json +4 -3
  57. package/dist/chunks/chunk-5EQD5D3L.js +0 -340
  58. package/dist/chunks/chunk-DQFD2BJD.js +0 -1
  59. /package/dist/chunks/{chunk-5EQD5D3L.js.LEGAL.txt → chunk-NNBMZAW4.js.LEGAL.txt} +0 -0
@@ -1 +1 @@
1
- import{SECTION_BOX_SLOT as i,SECTION_BOX_TYPE as n,headParts as l,registerSectionToBox as c}from"efficient-web-builder/render/lib/sections/section-to-box";import{DIM as a,DROP_COMMON as g,DROP_SIDE_PADDING as h,INNER_BOX as o,SAME_KEYS as P,SECTION_BOX as m,TEXT as e,headingCaseOf as T,wrapperPad as y,wrapperPadKeys as S}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{CARD_ROW_FIELD_PROP as O}from"efficient-web-builder/format/lib/content/card-template";const p={top:84,bottom:0,topPhone:84,bottomPhone:0},[x,_]=l("Testimonials"),s=(t,r,d)=>({type:"Text",props:{...r,[O]:t,_partStyles:{text:d}}}),b={type:n,props:{...o,name:"Card",gap:20,sectionPaddingTop:36,sectionPaddingBottom:36,sectionPaddingLeft:36,sectionPaddingRight:36,sectionPaddingTopPhone:28,sectionPaddingBottomPhone:28,sectionPaddingLeftPhone:28,sectionPaddingRightPhone:28,sectionAccent:0},slots:{[i]:[{type:"Text",props:{...e,text:"“",_partStyles:{text:{textStyle:"heading-2",color:"accent",lineHeight:1}}}},s("quote",a,{size:16,lineHeight:1.6}),{type:n,props:{...o,name:"Name",gap:4,sectionPaddingTop:20,sectionBorder:{top:1}},slots:{[i]:[s("name",e,{textStyle:"body-5",weight:500,case:"upper",letterSpacing:.04}),s("role",a,{textStyle:"body-5"})]}}]}},w={name:"Testimonials",boxProps:t=>({...m,direction:"column",gap:44,sectionBorder:{top:1},...y(t,p)}),box:[...P,...S(p)],parts:[{kind:"group",name:"Heading",props:{...o,gap:16},parts:[{...x,props:e},{..._,props:e,style:{textStyle:"heading-2",lineHeight:1,letterSpacing:-.02}}]},{kind:"core",as:"Reviews",keep:["items","columns"],slots:{template:[b]}}],site:T("title"),drop:{...g,...h,eyebrowLook:"the eyebrow Text wears the plain eyebrow's start look (Testimonials' default); a stored `filled` look needs a filled Text look",headPlacement:"the head is the Text blocks above the Reviews block, which is always own-box here"}};c({Testimonials:w});
1
+ import{SECTION_BOX_SLOT as s,SECTION_BOX_TYPE as n,headParts as c,registerSectionToBox as m}from"efficient-web-builder/render/lib/sections/section-to-box";import{DIM as a,DROP_COMMON as h,DROP_SIDE_PADDING as g,INNER_BOX as o,SAME_KEYS as P,SECTION_BOX as T,TEXT as e,headingCaseOf as O,wrapperPad as y,wrapperPadKeys as S}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{CARD_ROW_FIELD_PROP as _}from"efficient-web-builder/format/lib/content/card-template";import{FRAME_OWN_BOX as b}from"../../components/Reviews.js";import{bandRoomBelow as x}from"../sections/section-band.js";const p=x(b),r={top:84,bottom:p.bottom,topPhone:84,bottomPhone:p.bottomPhone},[w,E]=c("Testimonials"),i=(t,d,l)=>({type:"Text",props:{...d,[_]:t,_partStyles:{text:l}}}),R={type:n,props:{...o,name:"Card",gap:20,sectionPaddingTop:36,sectionPaddingBottom:36,sectionPaddingLeft:36,sectionPaddingRight:36,sectionPaddingTopPhone:28,sectionPaddingBottomPhone:28,sectionPaddingLeftPhone:28,sectionPaddingRightPhone:28,sectionAccent:0},slots:{[s]:[{type:"Text",props:{...e,text:"“",_partStyles:{text:{textStyle:"heading-2",color:"accent",lineHeight:1}}}},i("quote",a,{size:16,lineHeight:1.6}),{type:n,props:{...o,name:"Name",gap:4,sectionPaddingTop:20,sectionBorder:{top:1}},slots:{[s]:[i("name",e,{textStyle:"body-5",weight:500,case:"upper",letterSpacing:.04}),i("role",a,{textStyle:"body-5"})]}}]}},B={name:"Testimonials",boxProps:t=>({...T,direction:"column",gap:44,sectionBorder:{top:1},...y(t,r)}),box:[...P,...S(r)],parts:[{kind:"group",name:"Heading",props:{...o,gap:16},parts:[{...w,props:e},{...E,props:e,style:{textStyle:"heading-2",lineHeight:1,letterSpacing:-.02}}]},{kind:"core",as:"Reviews",keep:["items","columns"],slots:{template:[R]}}],site:O("title"),drop:{...h,...g,eyebrowLook:"the eyebrow Text wears the plain eyebrow's start look (Testimonials' default); a stored `filled` look needs a filled Text look",headPlacement:"the head is the Text blocks above the Reviews block, which is always own-box here"}};m({Testimonials:B});
@@ -1 +1 @@
1
- import{SECTION_BOX_SLOT as p,SECTION_BOX_TYPE as a,registerSectionToBox as s}from"efficient-web-builder/render/lib/sections/section-to-box";import{headOnlyRow as l}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-rows-head";import{DIM as c,INNER_BOX as m,TEXT as g}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{token as T}from"efficient-web-builder/render/lib/document/blocks/general/section-head-looks";import{CARD_ROW_FIELD_PROP as S}from"efficient-web-builder/format/lib/content/card-template";import{phoneKey as t}from"efficient-easel/draw";const o={textStyle:"body-5",...T("label",14),letterSpacing:.05,lineHeight:1.5},e=(n,i,r)=>({type:"Text",props:{...i,[S]:n,_partStyles:{text:r}}}),_={type:a,props:{...m,name:"Row",direction:"row",justify:"between",align:"start",share:"content",phoneRow:2,[t("share")]:"content",[t("wrap")]:!1,gap:24,sectionPaddingTop:16,sectionPaddingBottom:16,sectionPaddingTopPhone:16,sectionPaddingBottomPhone:16},slots:{[p]:[e("label",c,{...o,case:"upper"}),e("value",{...g,align:"right"},{...o,align:"right"})]}},d=l("SpecTable",{slots:{template:[_]}});s({SpecTable:d});
1
+ import{SECTION_BOX_SLOT as a,SECTION_BOX_TYPE as m,registerSectionToBox as c}from"efficient-web-builder/render/lib/sections/section-to-box";import{headOnlyRow as l}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-rows-head";import{DIM as P,INNER_BOX as d,TEXT as g,lineSides as B}from"efficient-web-builder/render/lib/document/blocks/general/section-to-box-row-parts";import{bandRoomBelow as E}from"../sections/section-band.js";import{SPEC_TABLE_BAND as _}from"../sections/spec-table-band.js";import{token as b}from"efficient-web-builder/render/lib/document/blocks/general/section-head-looks";import{CARD_ROW_FIELD_PROP as S}from"efficient-web-builder/format/lib/content/card-template";import{phoneKey as i}from"efficient-easel/draw";const r={textStyle:"body-5",...b("label",14),letterSpacing:.05,lineHeight:1.5},s=(t,e,p)=>({type:"Text",props:{...e,[S]:t,_partStyles:{text:p}}}),T={type:m,props:{...d,name:"Row",direction:"row",justify:"between",align:"start",share:"content",phoneRow:2,[i("share")]:"content",[i("wrap")]:!1,gap:24,sectionPaddingTop:16,sectionPaddingBottom:16,sectionPaddingTopPhone:16,sectionPaddingBottomPhone:16},slots:{[a]:[s("label",P,{...r,case:"upper"}),s("value",{...g,align:"right"},{...r,align:"right"})]}},o=l("SpecTable",{slots:{template:[T]}}),n=E(_.ownBox),h={...o,boxProps:(t,e)=>({...typeof o.boxProps=="function"?o.boxProps(t,e):o.boxProps,sectionPaddingBottom:n.bottom,sectionPaddingBottomPhone:n.bottomPhone,...n.line?{sectionBorder:B({bottom:1})}:{}})};c({SpecTable:h});
@@ -1 +1 @@
1
- import{jsx as e,jsxs as l}from"react/jsx-runtime";import{CatalogFilterProvider as u}from"../../components/catalog/CatalogFilterContext.js";import a from"../../components/CartDrawer.js";import{CartProvider as p}from"../../components/CartContext.js";import{CurrencyProvider as f}from"../../components/CurrencyContext.js";import{SubscribePopupView as s}from"../../components/SubscribePopup.js";import{ConsentBannerPreview as g}from"../../components/ConsentBanner.js";import{CART_DRAWER_KIND as h,resolveCartDrawerContent as v}from"efficient-web-builder/format/lib/content/cart-drawer";import{CONSENT_BANNER_KIND as P,resolveConsentBannerContent as b}from"efficient-web-builder/format/lib/content/consent-banner";import{SITE_FOOTER_KIND as k}from"efficient-web-builder/format/lib/content/footer";import{isPageBackgroundAuthored as y}from"efficient-web-builder/format/lib/content/page-background";import{templateProductKind as C}from"efficient-web-builder/format/lib/content/product-page";import{resolveSubscribeContent as _,SUBSCRIBE_POPUP_KIND as w}from"efficient-web-builder/format/lib/content/subscribe";import{DeclaredRecordTypeProvider as B}from"./current-record.js";import{declaredRecordType as D}from"efficient-web-builder/format/lib/content/record-types";import{PublishedPageFrame as N}from"efficient-web-builder/render/lib/document/page-frame";import{POPUP_PAGE_KIND as R,resolvePopupLook as S}from"efficient-web-builder/format/lib/popup/look";import x from"../../components/PopupFrame.js";import{PreviewProductProvider as E}from"./preview-product.js";import{TemplateProductKindProvider as K}from"./template-product-kind.js";function I(r,n){const{kind:t}=r;if(t===w){const i=_(r);return l("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[n??null,e(s,{inline:!0,content:i})]})}if(t===h){const i=v(r);return l("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[n??null,e(f,{children:e(p,{preview:!0,children:e(a,{content:i})})})]})}return t===P?l("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[n??null,e(g,{layout:b(r).layout})]}):null}function T(r,n){if(r.kind!==R)return null;const t=e(c,{rootProps:r,children:r.children});if(!n)return t;const i=typeof r.title=="string"&&r.title.trim()?r.title:"Popup";return e(x,{inline:!0,look:S(r),label:i,children:t})}function c({rootProps:r,children:n}){const{kind:t,editor:i,previewProduct:o}=r,d=!!i?.isEditing,m=C(typeof t=="string"?t:"",r);return e(B,{type:D(r),children:e(K,{kind:m,children:e(E,{slug:d?o:null,children:e(u,{children:n})})})})}function er(r){const n=T(r,!1);if(n)return n;const t=I(r);if(t)return t;const{children:i,pageBackground:o,kind:d}=r;return e(N,{pageBackground:o,inheritBackground:d===k&&!y(o),children:e(c,{rootProps:r,children:i})})}export{c as StorefrontPageProviders,T as drawPopupPage,er as drawPublishedStorefrontRoot,I as drawSystemPage};
1
+ import{jsx as e,jsxs as l}from"react/jsx-runtime";import{CatalogFilterProvider as u}from"../../components/catalog/CatalogFilterContext.js";import a from"../../components/CartDrawer.js";import{CartProvider as f}from"../../components/CartContext.js";import{CurrencyProvider as p}from"../../components/CurrencyContext.js";import{SubscribePopupView as s}from"../../components/SubscribePopup.js";import{ConsentBannerPreview as g}from"../../components/ConsentBanner.js";import{CART_DRAWER_KIND as h,resolveCartDrawerContent as v,resolveCartDrawerLook as P}from"efficient-web-builder/format/lib/content/cart-drawer";import{CONSENT_BANNER_KIND as k,resolveConsentBannerContent as b}from"efficient-web-builder/format/lib/content/consent-banner";import{SITE_FOOTER_KIND as y}from"efficient-web-builder/format/lib/content/footer";import{isPageBackgroundAuthored as C}from"efficient-web-builder/format/lib/content/page-background";import{templateProductKind as _}from"efficient-web-builder/format/lib/content/product-page";import{resolveSubscribeContent as w,SUBSCRIBE_POPUP_KIND as D}from"efficient-web-builder/format/lib/content/subscribe";import{DeclaredRecordTypeProvider as B}from"./current-record.js";import{declaredRecordType as N}from"efficient-web-builder/format/lib/content/record-types";import{PublishedPageFrame as R}from"efficient-web-builder/render/lib/document/page-frame";import{POPUP_PAGE_KIND as S,resolvePopupLook as x}from"efficient-web-builder/format/lib/popup/look";import E from"../../components/PopupFrame.js";import{PreviewProductProvider as K}from"./preview-product.js";import{TemplateProductKindProvider as I}from"./template-product-kind.js";function T(r,n){const{kind:t}=r;if(t===D){const i=w(r);return l("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[n??null,e(s,{inline:!0,content:i})]})}if(t===h){const i=v(r);return l("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[n??null,e(p,{children:e(f,{preview:!0,children:e(a,{content:i,look:P(r)})})})]})}return t===k?l("div",{style:{background:"var(--bg)",minHeight:"100%"},children:[n??null,e(g,{layout:b(r).layout})]}):null}function A(r,n){if(r.kind!==S)return null;const t=e(c,{rootProps:r,children:r.children});if(!n)return t;const i=typeof r.title=="string"&&r.title.trim()?r.title:"Popup";return e(E,{inline:!0,look:x(r),label:i,children:t})}function c({rootProps:r,children:n}){const{kind:t,editor:i,previewProduct:o}=r,d=!!i?.isEditing,m=_(typeof t=="string"?t:"",r);return e(B,{type:N(r),children:e(I,{kind:m,children:e(K,{slug:d?o:null,children:e(u,{children:n})})})})}function tr(r){const n=A(r,!1);if(n)return n;const t=T(r);if(t)return t;const{children:i,pageBackground:o,kind:d}=r;return e(R,{pageBackground:o,inheritBackground:d===y&&!C(o),children:e(c,{rootProps:r,children:i})})}export{c as StorefrontPageProviders,A as drawPopupPage,tr as drawPublishedStorefrontRoot,T as drawSystemPage};
@@ -1,2 +1,8 @@
1
1
  export declare const BAND_CAP = "mx-auto max-w-[var(--sf-site-width,1600px)]";
2
2
  export declare function bandClassesInBox(classes: string): string;
3
+ export type BandRoomBelow = {
4
+ bottom: number;
5
+ bottomPhone: number;
6
+ line: boolean;
7
+ };
8
+ export declare function bandRoomBelow(classes: string): BandRoomBelow;
@@ -1 +1 @@
1
- const i="mx-auto max-w-[var(--sf-site-width,1600px)]",e=[/^border(-[tblrxy])?$/,/^border-line$/,/^bg-/,/^mx-auto$/,/^max-w-\[var\(--sf-site-width/,/--sf-site-gutter/,/^p[xytblr]?-(\d+(\.\d+)?|px|\[\d+(\.\d+)?px\])$/];function x(t){const s=t.lastIndexOf(":");return s<0?t:t.slice(s+1)}function a(t){return t.split(/\s+/).filter(s=>s&&!e.some(r=>r.test(x(s)))).join(" ")}export{i as BAND_CAP,a as bandClassesInBox};
1
+ const b="mx-auto max-w-[var(--sf-site-width,1600px)]",l=[/^border(-[tblrxy])?$/,/^border-line$/,/^bg-/,/^mx-auto$/,/^max-w-\[var\(--sf-site-width/,/--sf-site-gutter/,/^p[xytblr]?-(\d+(\.\d+)?|px|\[\d+(\.\d+)?px\])$/];function c(t){const e=t.lastIndexOf(":");return e<0?t:t.slice(e+1)}function p(t){return t.split(/\s+/).filter(e=>e&&!l.some(n=>n.test(c(e)))).join(" ")}const u=new Set(["max-view-desktop","max-view-wide"]);function a(t){const e=/^\[(\d+(?:\.\d+)?)px\]$/.exec(t);return e?Number(e[1]):t==="px"?1:/^\d+(\.\d+)?$/.test(t)?Number(t)*4:void 0}function m(t){let e=0,n,i=!1;for(const o of t.split(/\s+/)){if(!o)continue;const d=o.lastIndexOf(":"),s=d<0?"":o.slice(0,d),f=c(o);!s&&/^border-[by]$/.test(f)&&(i=!0);const x=/^p[by]-(.+)$/.exec(f),r=x?a(x[1]):void 0;r!==void 0&&(s?u.has(s)&&(n=r):e=r)}return{bottom:e,bottomPhone:n??e,line:i}}export{b as BAND_CAP,p as bandClassesInBox,m as bandRoomBelow};
@@ -0,0 +1,4 @@
1
+ export declare const SPEC_TABLE_BAND: {
2
+ readonly inline: "border-b border-line py-[120px] max-view-desktop:py-20";
3
+ readonly ownBox: "border-b border-line pt-0 pb-[120px] max-view-desktop:pt-0 max-view-desktop:pb-20";
4
+ };
@@ -0,0 +1 @@
1
+ const e={inline:"border-b border-line py-[120px] max-view-desktop:py-20",ownBox:"border-b border-line pt-0 pb-[120px] max-view-desktop:pt-0 max-view-desktop:pb-20"};export{e as SPEC_TABLE_BAND};
package/dist/words.d.ts CHANGED
@@ -101,9 +101,6 @@ export type WebBuilderPhrase =
101
101
  | "A world map of your locations with a legend — designed here, sold worldwide."
102
102
  | "A write-a-review form — submissions wait for your approval before they show."
103
103
  | "About & brand story"
104
- | "Accent"
105
- | "Accent button"
106
- | "Accent footnote"
107
104
  | "Account"
108
105
  | "Active tab"
109
106
  | "Add"
@@ -134,10 +131,11 @@ export type WebBuilderPhrase =
134
131
  | "After"
135
132
  | "All"
136
133
  | "Alt text"
134
+ | "Alternating"
137
135
  | "Alternating (zig-zag)"
138
136
  | "Amount"
139
137
  | "An editorial aside beside a rail-marked timeline of dated entries."
140
- | "An editorial heading and paragraph over a row of theme-color-accented stat cards."
138
+ | "An editorial heading and paragraph over a row of stat cards whose units and small labels take the main color."
141
139
  | "An editorial text panel with a stat strip and founders' note."
142
140
  | "An empty section. Add whatever you want inside."
143
141
  | "Anchor"
@@ -196,8 +194,6 @@ export type WebBuilderPhrase =
196
194
  | "Big left"
197
195
  | "Big right"
198
196
  | "Big stat"
199
- | "Bigger left"
200
- | "Bigger right"
201
197
  | "Black and white"
202
198
  | "Black and white logos"
203
199
  | "Block"
@@ -233,6 +229,7 @@ export type WebBuilderPhrase =
233
229
  | "Breadcrumb"
234
230
  | "Brick"
235
231
  | "Browser mock"
232
+ | "Browser shop"
236
233
  | "Browser storefront (hero + tiles)"
237
234
  | "Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept."
238
235
  | "Bundle Products"
@@ -244,7 +241,6 @@ export type WebBuilderPhrase =
244
241
  | "Button text color"
245
242
  | "Buttons"
246
243
  | "Buy button"
247
- | "By spokes"
248
244
  | "By the *numbers*"
249
245
  | "By the numbers"
250
246
  | "Call-to-Action Heading"
@@ -302,6 +298,7 @@ export type WebBuilderPhrase =
302
298
  | "City pictures"
303
299
  | "City strip"
304
300
  | "Claims bars"
301
+ | "Claims panel"
305
302
  | "Claims panel (rows + defect bars)"
306
303
  | "Clear colors"
307
304
  | "Clear this site’s colors?"
@@ -354,9 +351,11 @@ export type WebBuilderPhrase =
354
351
  | "Cross ✕"
355
352
  | "Crumbs"
356
353
  | "Current page"
354
+ | "Custom"
357
355
  | "Custom HTML"
358
356
  | "Custom URL"
359
357
  | "Custom color"
358
+ | "Custom: the width of each block in %, the last block left out"
360
359
  | "Customer Photo Grid"
361
360
  | "Customer name"
362
361
  | "Customer photos in a card grid with a click-to-open lightbox."
@@ -408,6 +407,7 @@ export type WebBuilderPhrase =
408
407
  | "Document masthead"
409
408
  | "Document tabs"
410
409
  | "Done"
410
+ | "Donut"
411
411
  | "Donut (split of a whole)"
412
412
  | "Dot ●"
413
413
  | "Dots"
@@ -446,6 +446,7 @@ export type WebBuilderPhrase =
446
446
  | "Email Form"
447
447
  | "Email address"
448
448
  | "Email signup"
449
+ | "Emphasis"
449
450
  | "Empty"
450
451
  | "Ends"
451
452
  | "Enter by hand"
@@ -487,6 +488,7 @@ export type WebBuilderPhrase =
487
488
  | "Field notes"
488
489
  | "Fill"
489
490
  | "Fill color"
491
+ | "Fill row"
490
492
  | "Filled"
491
493
  | "Filters the collection grids below it — a sticky row of Pills (the default), or Columns, one per filter you switch on."
492
494
  | "Find from the address"
@@ -616,7 +618,7 @@ export type WebBuilderPhrase =
616
618
  | "Image tint"
617
619
  | "Image — set a path"
618
620
  | "In its own box"
619
- | "In progress (accent)"
621
+ | "In progress (main)"
620
622
  | "In the card"
621
623
  | "In the product"
622
624
  | "In this issue"
@@ -640,6 +642,7 @@ export type WebBuilderPhrase =
640
642
  | "Join"
641
643
  | "Join our email list"
642
644
  | "Jumps to a section on that page."
645
+ | "Kanban board"
643
646
  | "Kanban board (job columns)"
644
647
  | "Kanban columns"
645
648
  | "Keep this section's own built-in size"
@@ -652,7 +655,7 @@ export type WebBuilderPhrase =
652
655
  | "Label only"
653
656
  | "Labels"
654
657
  | "Ladder"
655
- | "Landscape (4:3)"
658
+ | "Landscape 4:3"
656
659
  | "Large"
657
660
  | "Large tabs"
658
661
  | "Large text only"
@@ -846,6 +849,7 @@ export type WebBuilderPhrase =
846
849
  | "Panel heading"
847
850
  | "Panels & cards"
848
851
  | "Panels and cards"
852
+ | "Panorama 21:9"
849
853
  | "Paragraph"
850
854
  | "Paragraph size — 13px"
851
855
  | "Part of {name}"
@@ -871,6 +875,7 @@ export type WebBuilderPhrase =
871
875
  | "Playback speed"
872
876
  | "Plays well with\n*your favourite apps.*"
873
877
  | "Popup"
878
+ | "Portal card"
874
879
  | "Portal card (stock + button + orders)"
875
880
  | "Position"
876
881
  | "Positions"
@@ -989,6 +994,7 @@ export type WebBuilderPhrase =
989
994
  | "Seen from\n*the counter.*"
990
995
  | "Select a section or block to edit it."
991
996
  | "Select a word, then press the highlighter."
997
+ | "Selector guide"
992
998
  | "Selector guide (pills + results)"
993
999
  | "Selector pills"
994
1000
  | "Separator"
@@ -1009,6 +1015,7 @@ export type WebBuilderPhrase =
1009
1015
  | "Show"
1010
1016
  | "Show arrows"
1011
1017
  | "Show cover image"
1018
+ | "Show for"
1012
1019
  | "Show hints"
1013
1020
  | "Show next image"
1014
1021
  | "Show on a card"
@@ -1057,10 +1064,12 @@ export type WebBuilderPhrase =
1057
1064
  | "Spec tiles"
1058
1065
  | "Spec value"
1059
1066
  | "Spin"
1067
+ | "Spine"
1060
1068
  | "Spine (single rail)"
1069
+ | "Split"
1061
1070
  | "Split (editorial aside)"
1062
1071
  | "Square"
1063
- | "Square (1:1)"
1072
+ | "Square 1:1"
1064
1073
  | "Squares"
1065
1074
  | "Stacked"
1066
1075
  | "Standard"
@@ -1115,6 +1124,7 @@ export type WebBuilderPhrase =
1115
1124
  | "Tabbed Gallery"
1116
1125
  | "Tabs"
1117
1126
  | "Tall (3:4)"
1127
+ | "Tall 3:4"
1118
1128
  | "Tall first"
1119
1129
  | "Tall middle"
1120
1130
  | "Team four"
@@ -1157,12 +1167,14 @@ export type WebBuilderPhrase =
1157
1167
  | "The header holds at most 3 sections"
1158
1168
  | "The name was not saved. Try again."
1159
1169
  | "The newest 30 are kept. Named versions are always kept."
1170
+ | "The order the blocks stack in on a phone. Only the look moves: the Tab key and screen readers keep the desktop order."
1160
1171
  | "The preview did not open. Try again."
1161
1172
  | "The room left at the left and right edge of every page."
1162
1173
  | "The section it belonged to has been changed or removed."
1163
1174
  | "The version was not restored. Nothing changed. Try again."
1164
1175
  | "The whole website goes back to version {n} as a draft."
1165
1176
  | "The whole website goes back to version {n} as a draft: {what}."
1177
+ | "The width bar works for 2 to {count} blocks."
1166
1178
  | "The width of every section's background."
1167
1179
  | "The width of every section's content."
1168
1180
  | "The words are still on your page and nothing has been lost. The editor could not work out which control belongs to them, which is a fault on our side. Go back and click the section to open its settings instead."
@@ -1216,6 +1228,7 @@ export type WebBuilderPhrase =
1216
1228
  | "Total amount"
1217
1229
  | "Total label"
1218
1230
  | "Total line"
1231
+ | "Track"
1219
1232
  | "Track (year rail)"
1220
1233
  | "Trailing note"
1221
1234
  | "Triangle ▼"
@@ -1258,6 +1271,7 @@ export type WebBuilderPhrase =
1258
1271
  | "Versions"
1259
1272
  | "Vertical breathing room between sections."
1260
1273
  | "Video"
1274
+ | "Video 16:9"
1261
1275
  | "Video file"
1262
1276
  | "Video frame"
1263
1277
  | "Video poster"
@@ -1274,12 +1288,13 @@ export type WebBuilderPhrase =
1274
1288
  | "What this picture does when a shopper points at it. Black and white shows it in grey until then. A phone shows its colour."
1275
1289
  | "What this picture does when a shopper points at the card. Show next image fades to the card's next photo. Black and white shows it in grey until then. A phone shows the first photo in colour."
1276
1290
  | "WhatsApp"
1277
- | "When a link lands on this Box's anchor, the Box gets an accent outline and its first block turns accent."
1291
+ | "When a link lands on this Box's anchor, the Box gets a main color outline and its first block turns the main color."
1278
1292
  | "When the text does not fit"
1279
1293
  | "Where this content is edited."
1280
1294
  | "Whether this page sits on the site's content column, or runs edge to edge."
1281
1295
  | "Whole number Theme Color"
1282
1296
  | "Wide (2:1)"
1297
+ | "Wide 2:1"
1283
1298
  | "Wide promo strip with background image."
1284
1299
  | "Width"
1285
1300
  | "With us"
@@ -1439,6 +1454,7 @@ export type StorefrontBlocksPhrase =
1439
1454
  | "Ask for the car first"
1440
1455
  | "Authorization expired — try again in a moment."
1441
1456
  | "Auto (covers if 4+ groups)"
1457
+ | "Auto open"
1442
1458
  | "Auto reads what the first section on each page says it is — dark, light or accent — and picks the text that can be read on it. Set Light or Dark to decide it yourself when Auto reads a page wrong."
1443
1459
  | "Auto-refreshes from the most-recent visible posts each time you open the editor. Set how many appear with “Posts to display”."
1444
1460
  | "Auto-synced from {place} · {n} post"
@@ -1486,6 +1502,7 @@ export type StorefrontBlocksPhrase =
1486
1502
  | "Choose a form in the inspector, under Message form — until then this column is hidden on the live page and no message can be sent."
1487
1503
  | "Chosen"
1488
1504
  | "Chosen pages"
1505
+ | "Close button"
1489
1506
  | "Close popup"
1490
1507
  | "Code and currency"
1491
1508
  | "Collect from the warehouse."
@@ -1654,6 +1671,7 @@ export type StorefrontBlocksPhrase =
1654
1671
  | "Images typed here"
1655
1672
  | "In stock"
1656
1673
  | "In-house"
1674
+ | "Inside"
1657
1675
  | "Interest chips"
1658
1676
  | "Interests label"
1659
1677
  | "Intro text"
@@ -1674,6 +1692,7 @@ export type StorefrontBlocksPhrase =
1674
1692
  | "Keeps the logo readable on any header — flips just its black & white parts to contrast the bar behind it (in both light and dark themes). Any other colors are kept as-is."
1675
1693
  | "Know your size? Pick it below"
1676
1694
  | "L"
1695
+ | "Landscape (4:3)"
1677
1696
  | "Last name"
1678
1697
  | "Lead time"
1679
1698
  | "Leave a *review.*"
@@ -1789,6 +1808,8 @@ export type StorefrontBlocksPhrase =
1789
1808
  | "Options"
1790
1809
  | "Others"
1791
1810
  | "Others gallery"
1811
+ | "Outside"
1812
+ | "Outside click"
1792
1813
  | "Own row"
1793
1814
  | "PCD"
1794
1815
  | "PCD · fitment"
@@ -1948,7 +1969,6 @@ export type StorefrontBlocksPhrase =
1948
1969
  | "Specifications *table.*"
1949
1970
  | "Specs"
1950
1971
  | "Speed rating"
1951
- | "Split"
1952
1972
  | "Staggered spread"
1953
1973
  | "Status rail"
1954
1974
  | "Step"
@@ -2074,10 +2094,12 @@ export type StorefrontBlocksPhrase =
2074
2094
  | "Will it fit *your car?*"
2075
2095
  | "Window"
2076
2096
  | "Your Selection"
2097
+ | "Your cart"
2077
2098
  | "Your turn"
2078
2099
  | "columns"
2079
2100
  | "e.g. D00123 · blank = the whole store"
2080
2101
  | "items per row"
2102
+ | "paypal"
2081
2103
  | "the linked menu"
2082
2104
  | "your@email.com"
2083
2105
  | "{auto} fits as many {px}px-wide cards as the width allows. A number is a maximum: where it would squeeze cards under {min}px the row shows fewer."