efficient-storefront-blocks 0.86.0 → 0.87.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.
- package/CHANGELOG.md +14 -0
- package/dist/chunks/{EditorPreviewCheckout-4LNXFNN7.js → EditorPreviewCheckout-GD4IJ4WK.js} +1 -1
- package/dist/chunks/{SiteEditorProvider-A2HMVDKS.js → SiteEditorProvider-2UVCJZXS.js} +1 -1
- package/dist/chunks/{chunk-TGBNREUJ.js → chunk-H4IHUSCU.js} +1 -1
- package/dist/chunks/chunk-QLR6IVWJ.js +369 -0
- package/dist/chunks/chunk-SYK5QPNV.js +1 -0
- package/dist/chunks/{chunk-SLRULFYY.js → chunk-XZ46W3NV.js} +1 -1
- package/dist/chunks/{fitment-data-TSYW6AFA.js → fitment-data-5GBUMO2O.js} +1 -1
- package/dist/contract.js +20 -2
- package/dist/editor/lib/document/blocks/commerce/ProductBuy/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/commerce/ProductBuy/fields.js +1 -0
- package/dist/editor/lib/document/blocks/commerce/ProductEyebrow/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/commerce/ProductEyebrow/fields.js +1 -0
- package/dist/editor/lib/document/blocks/commerce/ProductGrid/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/ProductName/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/commerce/ProductName/fields.js +1 -0
- package/dist/editor/lib/document/blocks/commerce/ProductPicture/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/commerce/ProductPicture/fields.js +1 -0
- package/dist/editor/lib/document/blocks/commerce/ProductSpecs/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/commerce/ProductSpecs/fields.js +1 -0
- package/dist/editor/lib/document/blocks/commerce/RelatedProducts/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
- package/dist/editor/lib/document/blocks/commerce/index.js +1 -1
- package/dist/editor/lib/document/config.js +1 -1
- package/dist/editor/lib/document/section-text-regions.js +1 -1
- package/dist/editor/lib/storefront-editor-words.d.ts +7 -8
- package/dist/editor/lib/storefront-editor-words.js +1 -1
- package/dist/fitment.js +1 -1
- package/dist/index.js +35 -35
- package/dist/links.js +1 -1
- package/dist/render/app/fonts/fallbacks.css +8 -0
- package/dist/render/app/fonts/jost/OFL.txt +93 -0
- package/dist/render/app/fonts/jost/cyrillic-italic.woff2 +0 -0
- package/dist/render/app/fonts/jost/cyrillic.woff2 +0 -0
- package/dist/render/app/fonts/jost/latin-ext-italic.woff2 +0 -0
- package/dist/render/app/fonts/jost/latin-ext.woff2 +0 -0
- package/dist/render/app/fonts/jost/latin-italic.woff2 +0 -0
- package/dist/render/app/fonts/jost/latin.woff2 +0 -0
- package/dist/render/app/globals.css +11 -11
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/Events.js +1 -1
- package/dist/render/components/FitmentTable.d.ts +1 -1
- package/dist/render/components/FitmentTable.js +1 -1
- package/dist/render/components/FooterMenu.d.ts +5 -1
- package/dist/render/components/FooterMenu.js +1 -1
- package/dist/render/components/GridCardTemplate.d.ts +34 -0
- package/dist/render/components/GridCardTemplate.js +1 -0
- package/dist/render/components/MenuLinkBlock.d.ts +5 -1
- package/dist/render/components/MenuLinkBlock.js +1 -1
- package/dist/render/components/ProductCardChrome.d.ts +1 -1
- package/dist/render/components/ProductCardChrome.js +1 -1
- package/dist/render/components/ProductGridSection.d.ts +5 -15
- package/dist/render/components/ProductGridSection.js +1 -1
- package/dist/render/components/ProductRef.js +1 -1
- package/dist/render/components/StorefrontProviders.d.ts +1 -1
- package/dist/render/components/StorefrontProviders.js +1 -1
- package/dist/render/components/TyreCard.js +1 -1
- package/dist/render/components/TyreFitVerdicts.d.ts +2 -1
- package/dist/render/components/TyreFitVerdicts.js +1 -1
- package/dist/render/components/TyrePlpCard.js +1 -1
- package/dist/render/components/card-pieces/CardEyebrow.d.ts +3 -1
- package/dist/render/components/card-pieces/CardEyebrow.js +1 -1
- package/dist/render/components/card-pieces/CardName.d.ts +3 -1
- package/dist/render/components/card-pieces/CardName.js +1 -1
- package/dist/render/components/card-pieces/CardPrice.d.ts +2 -6
- package/dist/render/components/card-pieces/CardPrice.js +1 -1
- package/dist/render/components/card-pieces/CardProductPicture.d.ts +8 -0
- package/dist/render/components/card-pieces/CardProductPicture.js +1 -0
- package/dist/render/components/card-pieces/card-text-region.d.ts +18 -0
- package/dist/render/components/card-pieces/card-text-region.js +1 -0
- package/dist/render/components/fitment/StockFitmentPart.d.ts +8 -1
- package/dist/render/components/fitment/StockFitmentPart.js +1 -1
- package/dist/render/components/fitment/fitment-answer-source.d.ts +12 -0
- package/dist/render/components/fitment/fitment-answer-source.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicFitmentTable.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.d.ts +10 -12
- package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicSpecTable.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicTyreSizes.js +1 -1
- package/dist/render/components/wheels-plp/AlloyWheelsListing.js +1 -1
- package/dist/render/components/wheels-plp/PlpCard.d.ts +1 -1
- package/dist/render/components/wheels-plp/PlpCard.js +1 -1
- package/dist/render/lib/content/field-usage.d.ts +1 -0
- package/dist/render/lib/content/field-usage.js +1 -1
- package/dist/render/lib/content/product-card-seed.d.ts +29 -0
- package/dist/render/lib/content/product-card-seed.js +1 -0
- package/dist/render/lib/content/tab-strip.d.ts +17 -0
- package/dist/render/lib/content/tab-strip.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductBuy/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductBuy/meta.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductBuy/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductBuy/render.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductEyebrow/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductEyebrow/meta.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductEyebrow/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductEyebrow/render.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductGrid/meta.d.ts +4 -0
- package/dist/render/lib/document/blocks/commerce/ProductGrid/meta.js +1 -1
- package/dist/render/lib/document/blocks/commerce/ProductGrid/render.js +1 -1
- package/dist/render/lib/document/blocks/commerce/ProductName/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductName/meta.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductName/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductName/render.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductPicture/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductPicture/meta.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductPicture/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductPicture/render.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductPrice/render.js +1 -1
- package/dist/render/lib/document/blocks/commerce/ProductSpecs/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductSpecs/meta.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductSpecs/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductSpecs/render.js +1 -0
- package/dist/render/lib/document/blocks/commerce/RelatedProducts/meta.d.ts +0 -4
- package/dist/render/lib/document/blocks/commerce/RelatedProducts/meta.js +1 -1
- package/dist/render/lib/document/blocks/commerce/RelatedProducts/render.js +1 -1
- package/dist/render/lib/document/blocks/commerce/StockFitment/meta.js +1 -1
- package/dist/render/lib/document/blocks/commerce/metas.d.ts +5 -0
- package/dist/render/lib/document/blocks/commerce/metas.js +1 -1
- package/dist/render/lib/document/blocks/commerce/renders.d.ts +5 -0
- package/dist/render/lib/document/blocks/commerce/renders.js +1 -1
- package/dist/render/lib/document/blocks/text-part-shapes.json +0 -16
- package/dist/render/lib/document/card-templates.js +1 -1
- package/dist/render/lib/document/footer-page-blocks.js +1 -1
- package/dist/render/lib/document/lazy-draws.js +1 -1
- package/dist/render/lib/font-table.json +209 -1
- package/dist/render/lib/menu-link.d.ts +2 -0
- package/dist/render/lib/menu-link.js +1 -1
- package/dist/render/lib/next-fonts.js +1 -1
- package/dist/render/lib/sections/grid-no-hole.d.ts +1 -0
- package/dist/render/lib/sections/grid-no-hole.js +1 -1
- package/dist/render/lib/sections/product-card-text-regions.d.ts +3 -0
- package/dist/render/lib/sections/product-card-text-regions.js +1 -0
- package/dist/render/lib/sections/product-grid-columns.d.ts +13 -1
- package/dist/render/lib/sections/product-grid-columns.js +1 -1
- package/dist/render/lib/sections/related-to-grid.d.ts +8 -0
- package/dist/render/lib/sections/related-to-grid.js +1 -0
- package/dist/render/lib/storefront-page-groups.d.ts +0 -4
- package/dist/render/lib/storefront-page-groups.js +1 -1
- package/dist/render/lib/tyres/tyre-vehicle-fitment.d.ts +1 -0
- package/dist/render/lib/tyres/tyre-vehicle-fitment.js +1 -1
- package/dist/render/lib/wheels/plp-filters.js +1 -1
- package/dist/words.d.ts +46 -9
- package/dist/words.js +6 -6
- package/package.json +2 -2
- package/dist/chunks/chunk-EUKK2IN6.js +0 -1
- package/dist/chunks/chunk-FJRKNPNN.js +0 -340
- /package/dist/chunks/{chunk-ALMIS7CK.js → chunk-DLWIDJS5.js} +0 -0
- /package/dist/chunks/{chunk-FJRKNPNN.js.LEGAL.txt → chunk-QLR6IVWJ.js.LEGAL.txt} +0 -0
package/dist/contract.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
var m=["general","commerce","service"],i=[{key:"openers",title:"Hero & intros",defaultExpanded:!0,templateable:!0,sections:[{type:"Hero",label:"Hero",set:"general"},{type:"HeroSingle",label:"Hero Single",set:"general"},{type:"IntroBleed",label:"Scroll-Over Text",set:"general"}]},{key:"shop",title:"Shop & galleries",templateable:!0,sections:[{type:"Collections",label:"Collections",set:"commerce"},{type:"AlloyWheelsListing",label:"List",set:"commerce"},{type:"CatalogFilterBar",label:"Catalog Filter Bar",set:"commerce"},{type:"ProductGrid",label:"Product Grid",set:"commerce"},{type:"FitmentFinder",label:"Fitment Form",set:"commerce"},{type:"Gallery",label:"Tabbed Gallery",set:"commerce"},{type:"GalleryB",label:"Customer Photo Grid",set:"commerce"}]},{key:"product",title:"Product page",templateable:!0,sections:[{type:"ProductHero",label:"Product Hero",set:"commerce"},{type:"SpecTable",label:"Spec Table",set:"commerce"},{type:"ProcessSteps",label:"Image & Text Columns",set:"general"},{type:"DetailRows",label:"Feature Rows",set:"commerce"},{type:"FitmentTable",label:"Fitment Table",set:"commerce"},{type:"TyreSizes",label:"Tyre Sizes",set:"commerce"},{type:"TyreFitment",label:"Tyre Fitment Form",set:"commerce"},{type:"EuTyreLabel",label:"EU Tyre Label",set:"commerce"},{type:"RelatedProducts",label:"Related Products",set:"commerce"},{type:"BundleOffer",label:"Bundle Products",set:"commerce"}]},{key:"checkout",title:"Checkout & ordering",templateable:!0,sections:[{type:"OrderSummary",label:"Order Table",set:"general"},{type:"PaymentBadges",label:"Payment Methods",set:"general"},{type:"CheckoutCTA",label:"Ready-to-Order Banner",set:"commerce"}]},{key:"about",title:"About & brand story",templateable:!0,sections:[{type:"Footprint",label:"Locations Map",set:"general"}]},{key:"content",title:"Text & content",templateable:!0,sections:[{type:"Prose",label:"Editorial Text",set:"general"},{type:"ParagraphsA",label:"Lead Text",set:"general"},{type:"Cards",label:"Cards",set:"general"}]},{key:"proof",title:"Stats & social proof",templateable:!0,sections:[{type:"Stats",label:"Stats",set:"general"},{type:"StatsParagraph",label:"Stats with Text",set:"general"},{type:"Chart",label:"Chart",set:"general"},{type:"Mockup",label:"Mockup Card",set:"general"},{type:"Testimonials",label:"Testimonials",set:"general"},{type:"Reviews",label:"Reviews",set:"service"},{type:"Logos",label:"Logos",set:"general"}]},{key:"promo",title:"Promotions & sign-ups",templateable:!0,sections:[{type:"Banner",label:"Banner",set:"general"},{type:"TitleWithButtons",label:"Call-to-Action Heading",set:"general"},{type:"Countdown",label:"Countdown",set:"general"}]},{key:"blog",title:"Blog & journal",templateable:!0,sections:[{type:"Masthead",label:"Issue Header",set:"general"},{type:"FeaturedCover",label:"Feature Banner",set:"general"},{type:"LongRead",label:"Article Text",set:"general"},{type:"Events",label:"Latest Posts",set:"service"}]},{key:"navigation",title:"Navigation & wayfinding",templateable:!0,sections:[{type:"Breadcrumb",label:"Breadcrumb",set:"general"},{type:"CategoryBar",label:"Category Bar",set:"general"},{type:"DocTabs",label:"Document Tabs",set:"general"}]},{key:"legal",title:"Legal & documents",templateable:!0,sections:[{type:"DocMasthead",label:"Document Header",set:"general"},{type:"DocBody",label:"Document Text",set:"general"}]},{key:"contact",title:"Contact, FAQ & forms",templateable:!0,sections:[{type:"FAQ",label:"Q&A",set:"general"},{type:"ContactRouting",label:"Contact Form",set:"service"},{type:"ContactLocations",label:"Contact / Locations",set:"general"},{type:"SubmitBuild",label:"Photo Submission Form",set:"service"},{type:"ReviewForm",label:"Review Form",set:"service"},{type:"Form",label:"Form",set:"service"},{type:"AppointmentBooking",label:"Booking Form",set:"service"}]},{key:"structure",title:"Layout, structure & embeds",templateable:!1,sections:[{type:"SectionHeader",label:"Section Header",set:"general"},{type:"Flex",label:"Box",set:"general"},{type:"Divider",label:"Divider",set:"general"},{type:"CustomHTML",label:"Custom HTML",set:"general"}]},{key:"layouts",title:"Layouts",templateable:!0,sections:[{type:"Manifesto",label:"Brand Text",set:"general"},{type:"Split",label:"Image & Text Split",set:"general"},{type:"Subscribe",label:"Signup Form",set:"service"},{type:"Ticker",label:"Scrolling Bar",set:"general"},{type:"SpecStrip",label:"Spec Strip",set:"general"},{type:"TimelineTrack",label:"Milestone Timeline",set:"general"},{type:"Timeline",label:"Story Timeline",set:"general"}]}];var b={Grid:'Lewis, 2026-09-14: Box and Grid duplicate each other and it feels confusing. 2026-09-15 he chose the order: give Box uneven widths FIRST, then merge Grid into Box. Shown three ways to pick the widths (mockup "Uneven Box Widths"), he chose A \u2014 shape pictures on the Box\'s `Block widths` row, the same "a row is a shape, pick a picture of it" rule he set for the photo wall on 2026-09-07.\n\nWHAT REPLACES IT: a Box set to One row, with `Block widths` at Equal or Custom, and its own `Columns` in the Phone view. Measured on PRODUCTION 2026-09-16 ~09:28 AEST (database `efficient-system`, all 10 tenant schemas, 128 storefront pages, both `layout` and `published_layout` \u2014 256 documents): 2 Grid nodes, and they are ONE Grid counted twice \u2014 the 9DIEM homepage on 9diem.com (`xtreme_mudder` schema), once as draft and once as published. It is top-level, holds three `ImageBlock`s at `columns` 3 \u2014 equal thirds \u2014 and NO block sets `Positions`. A Box draws that with `Block widths` at Equal.\n\n\u26A0\uFE0F THE COUNT MOVES; THE RULE MUST NOT DEPEND ON IT. This entry has already carried three different readings. A local-clone snapshot said no Grid used `Positions`. A PRODUCTION reading on 2026-09-15 ~13:15 AEST found 6 nodes on two sites, 4 of them spanned \u2014 hartesmetal.com.au homepage and about, 4 columns, spans 1 + 3. That one was TRUE when it was taken and stopped being true the same day: those two pages were rebuilt on Box (`Block widths: Bigger right`), and on 2026-09-16 they hold zero Grid nodes and are built from `Flex`. \u26D4 So the rule is NOT "there are still N spanned Grids". NEVER delete the Grid component or its `gridSpan` handling, whatever a census says \u2014 Grid still renders, still edits, still drags, and a merchant may rebuild a page either way on any day. Re-run the census on production before anyone PROPOSES deleting either, and read any number written here as the reading of its own day, not as the state of the world.\n\nWHAT A MERCHANT LOSES: a new Grid, and with it a fixed "N per row" that wraps by itself past three across, and the per-block `Positions` number. Box wraps with `Wrap`, but by content width, not by a fixed count.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Grid still renders through it and can still be edited, dragged and added to; no document is rewritten and NO MIGRATION RUNS \u2014 the owner redoes live sections himself.\n\n\u26A0\uFE0F AND IT STAYS DROPPABLE WHERE IT LIVES. The drop rule in lib/document/config.tsx read the nestable containers off the catalogue\'s `structure` row, so leaving the catalogue would have made every open slot \u2014 a Box included \u2014 refuse a Grid already stored inside one. `scripts/test-retired-grid-stays-editable.tsx` \xA73 pins it.',CompatibleTyres:'Lewis, 2026-09-09: "Do not bother counting. Delete Compatible Tyres and use the new one. The new one needs complete settings \u2014 it must have every setting our cards have." Shown three ways to finish it, he chose C: retire from the menu now, and take styling the card text as its own card.\n\nWHAT REPLACES IT: `RelatedProducts` with its `Show` dropdown set to "Tyres that fit this product". That block is the GENERIC relationship section from card 1128 \u2014 it knows nothing about wheels or tyres, it asks the registry for a relationship by name. The two have rendered through the SAME renderer (`DynamicRelatedProducts`) since that card; this one is the pre-registry one-off that was never removed.\n\n\u26A0\uFE0F THE SWAP WAS NOT SAFE UNTIL #1305, AND SAYING SO IS THE POINT. The first old-versus-new table put in front of the owner was WRONG. `DynamicRelatedProducts` returns EARLY on a tyre answer and draws this component, so the seven card settings, the head split and the Width control all stopped at that call \u2014 nine settings, measured NO EFFECT, on precisely the relationship that replaces this block. #1283 gave the new block the card settings, #1299 the head split and its own Width, #1305 carried all of it onto the tyre branch. Only then was the claim true.\n\nWHAT WAS MEASURED BEFORE RETIRING, four ways, because the premise decides the card:\n \u2022 settable text kinds (SECTION_TEXT_KINDS): both blocks ABSENT \u2014 the map holds only TimelineTrack and Footprint, both AUTHORED lists\n \u2022 read-only text regions: neither `components/CompatibleTyres` nor `components/TyreCard` stamps one\n \u2022 panel rows through resolveFields: this block 31, `RelatedProducts` 42. This block\'s only style-ish key is `_sStyle`, the bucket HEADER, not a control\n \u2022 head text (num/title/description) is authored on both, so `_partStyles` reaches it identically\nSo on the CARD runs the two are zero against zero \u2014 neither can style them \u2014 and everywhere else the new block is ahead. Styling those runs needs a section-level prop family and a paint path for DERIVED text, which no section has yet: a part is anchored by matching an AUTHORED prop\'s string against the DOM, and `lib/document/source-bound-parts` keeps hydrated copy unreachable on purpose so a merchant cannot type into a copy of a product name and lose it at the next sync. That is its own card, and `lib/sections/text-regions` is the read-only half that already ships.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT, the same contract Subscribe, Split and SubscribeBlogs have. Every page holding a `CompatibleTyres` still renders through it, no published document is rewritten, and NO MIGRATION RUNS \u2014 the owner\'s standing ruling of 2026-09-05: he redoes live sections himself and deletes the old ones when he does. He also said explicitly not to count them first.\n\n\u26A0\uFE0F AND THIS COMPONENT IS LOAD-BEARING FOR ITS OWN REPLACEMENT: `DynamicRelatedProducts` draws it for EVERY tyre answer. Deleting it would blank the block that replaces it, not just the pages still holding this one.',Spacer:`Lewis, 2026-10-10 (section-merges.md group 19, approved): one Divider holds space and lines. Style = None (was Spacer) / Line / Stripes; the space above and below as number boxes. Retired by card [MERGE] Spacer Into Divider (2026-10-26).
|
|
1
|
+
var y=["general","commerce","service"],i=[{key:"openers",title:"Hero & intros",defaultExpanded:!0,templateable:!0,sections:[{type:"Hero",label:"Hero",set:"general"},{type:"HeroSingle",label:"Hero Single",set:"general"},{type:"IntroBleed",label:"Scroll-Over Text",set:"general"}]},{key:"shop",title:"Shop & galleries",templateable:!0,sections:[{type:"Collections",label:"Collections",set:"commerce"},{type:"AlloyWheelsListing",label:"List",set:"commerce"},{type:"CatalogFilterBar",label:"Catalog Filter Bar",set:"commerce"},{type:"ProductGrid",label:"Product Grid",set:"commerce"},{type:"FitmentFinder",label:"Fitment Form",set:"commerce"},{type:"Gallery",label:"Tabbed Gallery",set:"commerce"},{type:"GalleryB",label:"Customer Photo Grid",set:"commerce"}]},{key:"product",title:"Product page",templateable:!0,sections:[{type:"ProductHero",label:"Product Hero",set:"commerce"},{type:"SpecTable",label:"Spec Table",set:"commerce"},{type:"ProcessSteps",label:"Image & Text Columns",set:"general"},{type:"DetailRows",label:"Feature Rows",set:"commerce"},{type:"FitmentTable",label:"Fitment Table",set:"commerce"},{type:"TyreSizes",label:"Tyre Sizes",set:"commerce"},{type:"TyreFitment",label:"Tyre Fitment Form",set:"commerce"},{type:"EuTyreLabel",label:"EU Tyre Label",set:"commerce"},{type:"BundleOffer",label:"Bundle Products",set:"commerce"}]},{key:"checkout",title:"Checkout & ordering",templateable:!0,sections:[{type:"OrderSummary",label:"Order Table",set:"general"},{type:"PaymentBadges",label:"Payment Methods",set:"general"},{type:"CheckoutCTA",label:"Ready-to-Order Banner",set:"commerce"}]},{key:"about",title:"About & brand story",templateable:!0,sections:[{type:"Footprint",label:"Locations Map",set:"general"}]},{key:"content",title:"Text & content",templateable:!0,sections:[{type:"Prose",label:"Editorial Text",set:"general"},{type:"ParagraphsA",label:"Lead Text",set:"general"},{type:"Cards",label:"Cards",set:"general"}]},{key:"proof",title:"Stats & social proof",templateable:!0,sections:[{type:"Stats",label:"Stats",set:"general"},{type:"Chart",label:"Chart",set:"general"},{type:"Mockup",label:"Mockup Card",set:"general"},{type:"Reviews",label:"Reviews",set:"service"}]},{key:"promo",title:"Promotions & sign-ups",templateable:!0,sections:[{type:"Banner",label:"Banner",set:"general"},{type:"TitleWithButtons",label:"Call-to-Action Heading",set:"general"},{type:"Countdown",label:"Countdown",set:"general"}]},{key:"blog",title:"Blog & journal",templateable:!0,sections:[{type:"FeaturedCover",label:"Feature Banner",set:"general"},{type:"LongRead",label:"Article Text",set:"general"},{type:"Events",label:"Latest Posts",set:"service"}]},{key:"navigation",title:"Navigation & wayfinding",templateable:!0,sections:[{type:"Breadcrumb",label:"Breadcrumb",set:"general"},{type:"CategoryBar",label:"Category Bar",set:"general"},{type:"DocTabs",label:"Document Tabs",set:"general"}]},{key:"legal",title:"Legal & documents",templateable:!0,sections:[{type:"DocBody",label:"Document Text",set:"general"}]},{key:"contact",title:"Contact, FAQ & forms",templateable:!0,sections:[{type:"FAQ",label:"Q&A",set:"general"},{type:"ContactRouting",label:"Contact Form",set:"service"},{type:"ContactLocations",label:"Contact / Locations",set:"general"},{type:"SubmitBuild",label:"Photo Submission Form",set:"service"},{type:"ReviewForm",label:"Review Form",set:"service"},{type:"Form",label:"Form",set:"service"},{type:"AppointmentBooking",label:"Booking Form",set:"service"}]},{key:"structure",title:"Layout, structure & embeds",templateable:!1,sections:[{type:"SectionHeader",label:"Section Header",set:"general"},{type:"Flex",label:"Box",set:"general"},{type:"Divider",label:"Divider",set:"general"},{type:"CustomHTML",label:"Custom HTML",set:"general"}]},{key:"layouts",title:"Layouts",templateable:!0,sections:[{type:"Manifesto",label:"Brand Text",set:"general"},{type:"Split",label:"Image & Text Split",set:"general"},{type:"Subscribe",label:"Signup Form",set:"service"},{type:"Ticker",label:"Scrolling Bar",set:"general"},{type:"SpecStrip",label:"Spec Strip",set:"general"},{type:"TimelineTrack",label:"Milestone Timeline",set:"general"},{type:"Timeline",label:"Story Timeline",set:"general"},{type:"Logos",label:"Logos",set:"general"},{type:"DocMasthead",label:"Page Header",set:"general"}]}];var b={Masthead:`Owner, 2026-10-10 (the page headers become ONE Layouts row): Issue Header and Document Header are one Page Header. Retired from the Add menu with no second preset (reviewer, 2026-11-06).
|
|
2
|
+
|
|
3
|
+
WHAT REPLACES IT: Page Header, a Box of Text blocks: a Header Box (the eyebrow, the title, a Details Box of one Text per line) over a Deck Box. Every Issue Header field is plain words with no data source, so the merchant makes the issue shape from Text blocks in that Box: the issue lines are Details lines, the lead is the Deck, and the "In this issue" panel is a Box of Texts beside it. Its converter row (\`section-to-box-rows-pageheader\` \`masthead\`, OFF) stays for a stored page that moves later.
|
|
4
|
+
|
|
5
|
+
WHAT A MERCHANT LOSES: a press that lays down the two-row issue shape with its "In this issue" panel; the merchant builds it from Boxes and Text blocks. No field is lost.
|
|
6
|
+
|
|
7
|
+
1 Issue Header is stored on the US sites (journal, draft and published; read only, 2026-11-07). Old sites stay as they are (owner, 2026-11-06).
|
|
8
|
+
|
|
9
|
+
THE TYPE KEY STAYS AND SO DOES THE COMPONENT. A page holding an Issue Header still renders through it and can still be edited; no document is rewritten.`,Grid:'Lewis, 2026-09-14: Box and Grid duplicate each other and it feels confusing. 2026-09-15 he chose the order: give Box uneven widths FIRST, then merge Grid into Box. Shown three ways to pick the widths (mockup "Uneven Box Widths"), he chose A \u2014 shape pictures on the Box\'s `Block widths` row, the same "a row is a shape, pick a picture of it" rule he set for the photo wall on 2026-09-07.\n\nWHAT REPLACES IT: a Box set to One row, with `Block widths` at Equal or Custom, and its own `Columns` in the Phone view. Measured on PRODUCTION 2026-09-16 ~09:28 AEST (database `efficient-system`, all 10 tenant schemas, 128 storefront pages, both `layout` and `published_layout` \u2014 256 documents): 2 Grid nodes, and they are ONE Grid counted twice \u2014 the 9DIEM homepage on 9diem.com (`xtreme_mudder` schema), once as draft and once as published. It is top-level, holds three `ImageBlock`s at `columns` 3 \u2014 equal thirds \u2014 and NO block sets `Positions`. A Box draws that with `Block widths` at Equal.\n\n\u26A0\uFE0F THE COUNT MOVES; THE RULE MUST NOT DEPEND ON IT. This entry has already carried three different readings. A local-clone snapshot said no Grid used `Positions`. A PRODUCTION reading on 2026-09-15 ~13:15 AEST found 6 nodes on two sites, 4 of them spanned \u2014 hartesmetal.com.au homepage and about, 4 columns, spans 1 + 3. That one was TRUE when it was taken and stopped being true the same day: those two pages were rebuilt on Box (`Block widths: Bigger right`), and on 2026-09-16 they hold zero Grid nodes and are built from `Flex`. \u26D4 So the rule is NOT "there are still N spanned Grids". NEVER delete the Grid component or its `gridSpan` handling, whatever a census says \u2014 Grid still renders, still edits, still drags, and a merchant may rebuild a page either way on any day. Re-run the census on production before anyone PROPOSES deleting either, and read any number written here as the reading of its own day, not as the state of the world.\n\nWHAT A MERCHANT LOSES: a new Grid, and with it a fixed "N per row" that wraps by itself past three across, and the per-block `Positions` number. Box wraps with `Wrap`, but by content width, not by a fixed count.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Grid still renders through it and can still be edited, dragged and added to; no document is rewritten and NO MIGRATION RUNS \u2014 the owner redoes live sections himself.\n\n\u26A0\uFE0F AND IT STAYS DROPPABLE WHERE IT LIVES. The drop rule in lib/document/config.tsx read the nestable containers off the catalogue\'s `structure` row, so leaving the catalogue would have made every open slot \u2014 a Box included \u2014 refuse a Grid already stored inside one. `scripts/test-retired-grid-stays-editable.tsx` \xA73 pins it.',CompatibleTyres:'Lewis, 2026-09-09: "Do not bother counting. Delete Compatible Tyres and use the new one. The new one needs complete settings \u2014 it must have every setting our cards have." Shown three ways to finish it, he chose C: retire from the menu now, and take styling the card text as its own card.\n\nWHAT REPLACES IT: `RelatedProducts` with its `Show` dropdown set to "Tyres that fit this product". That block is the GENERIC relationship section from card 1128 \u2014 it knows nothing about wheels or tyres, it asks the registry for a relationship by name. The two have rendered through the SAME renderer (`DynamicRelatedProducts`) since that card; this one is the pre-registry one-off that was never removed.\n\n\u26A0\uFE0F THE SWAP WAS NOT SAFE UNTIL #1305, AND SAYING SO IS THE POINT. The first old-versus-new table put in front of the owner was WRONG. `DynamicRelatedProducts` returns EARLY on a tyre answer and draws this component, so the seven card settings, the head split and the Width control all stopped at that call \u2014 nine settings, measured NO EFFECT, on precisely the relationship that replaces this block. #1283 gave the new block the card settings, #1299 the head split and its own Width, #1305 carried all of it onto the tyre branch. Only then was the claim true.\n\nWHAT WAS MEASURED BEFORE RETIRING, four ways, because the premise decides the card:\n \u2022 settable text kinds (SECTION_TEXT_KINDS): both blocks ABSENT \u2014 the map holds only TimelineTrack and Footprint, both AUTHORED lists\n \u2022 read-only text regions: neither `components/CompatibleTyres` nor `components/TyreCard` stamps one\n \u2022 panel rows through resolveFields: this block 31, `RelatedProducts` 42. This block\'s only style-ish key is `_sStyle`, the bucket HEADER, not a control\n \u2022 head text (num/title/description) is authored on both, so `_partStyles` reaches it identically\nSo on the CARD runs the two are zero against zero \u2014 neither can style them \u2014 and everywhere else the new block is ahead. Styling those runs needs a section-level prop family and a paint path for DERIVED text, which no section has yet: a part is anchored by matching an AUTHORED prop\'s string against the DOM, and `lib/document/source-bound-parts` keeps hydrated copy unreachable on purpose so a merchant cannot type into a copy of a product name and lose it at the next sync. That is its own card, and `lib/sections/text-regions` is the read-only half that already ships.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT, the same contract Subscribe, Split and SubscribeBlogs have. Every page holding a `CompatibleTyres` still renders through it, no published document is rewritten, and NO MIGRATION RUNS \u2014 the owner\'s standing ruling of 2026-09-05: he redoes live sections himself and deletes the old ones when he does. He also said explicitly not to count them first.\n\n\u26A0\uFE0F AND THIS COMPONENT IS LOAD-BEARING FOR ITS OWN REPLACEMENT: `DynamicRelatedProducts` draws it for EVERY tyre answer. Deleting it would blank the block that replaces it, not just the pages still holding this one.',Spacer:`Lewis, 2026-10-10 (section-merges.md group 19, approved): one Divider holds space and lines. Style = None (was Spacer) / Line / Stripes; the space above and below as number boxes. Retired by card [MERGE] Spacer Into Divider (2026-10-26).
|
|
2
10
|
|
|
3
11
|
WHAT REPLACES IT: a Divider with Style set to None. It draws no line, only its space, and that space is the Divider's Padding row (top and bottom, each with its phone value): the Spacer's 24 / 48 / 96 / 160 px are None with Padding 12 + 12, 24 + 24, 48 + 48, 80 + 80. \`scripts/test-divider-holds-the-spacer.tsx\` \xA75 holds it.
|
|
4
12
|
|
|
@@ -32,4 +40,14 @@ WHAT REPLACES IT: Cards drawn from its card template, each card a Label, a Value
|
|
|
32
40
|
|
|
33
41
|
WHAT A MERCHANT LOSES (the LOOK GAPS in that file): the grid takes the Cards block's own gaps and breakpoints, not the old 40 (16 on a phone).
|
|
34
42
|
|
|
35
|
-
THE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Document Detail Cards still renders through it and can still be edited; no document is rewritten.`,
|
|
43
|
+
THE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Document Detail Cards still renders through it and can still be edited; no document is rewritten.`,StatsParagraph:`Lewis, 2026-10-10 (approved): one Stats holds Stats and Stats with Text. Its head (eyebrow, heading, body) and each number's Prefix, Unit, Superscript, Label, "Use accent color" and text go into Stats; Card style Table (the old Stats with Text) or List (the old Stats). 2026-10-27: no Number block, the cards are Box + Text. Retired when the two became one Stats (2026-11-06).
|
|
44
|
+
|
|
45
|
+
WHAT REPLACES IT: a Stats press, a Box of real parts: three head Texts, then a Stats Box holding ONE Card list, Card style Table. Each number is a row of the Card list; its card is a figure Text (the prefix and number typed in it, the unit marked \`==_yr_==\`, which draws the section theme's Main colour; a whole number in that colour is \`==_8_==\`), a superscript Text beside it, a label Text and a body Text, each showing its row's field, and a row may link its own live number. The Stats Box's Card style row (Table / List) writes the Box's Gap and the card's own Border, Padding and Height.
|
|
46
|
+
|
|
47
|
+
WHAT A MERCHANT LOSES: the numbers do not count up (the Text block's Count up numbers setting is its own change, held); the figure has no tabular numbers; a unit is not a lighter weight than its number; rows of four stack below 800px, not two columns from 1100px.
|
|
48
|
+
|
|
49
|
+
THE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Stats with Text still renders through it and can still be edited; no document is rewritten (owner 2026-11-06: old sites stay as they are).`,Testimonials:"Lewis, 2026-10-10 (section-merges.md group 6, approved): Testimonials goes into Reviews, whose Review content is Manual (typed quotes) or Reviews (the store's approved reviews), with a product choice in place of the old Design code. Retired by card [MERGE] Remaining Section Merges (2026-11-06), after Reviews took typed quotes and a card template (efficient-storefront-blocks #242) and the product choice (#359).\n\nWHAT REPLACES IT: Reviews with Review content set to Manual. Every Testimonials key has the same key there: `eyebrow`, `eyebrowLook`, `title`, `items[]` (`quote`, `name`, `role`), `columns` 1-3 and `headPlacement` (both split their head). A typed review also has a `title` and a `rating`, empty for a quote that has none.\n\nWHAT A MERCHANT LOSES on a NEW quote list: nothing this section had. Reviews is in the service set where this section was general; no host narrows the sets (2026-11-06).\n\nNO CONVERTER ROW HERE: its Box row is efficient-storefront-blocks' (`section-to-box-rows-reviews`, OFF). 0 Testimonials nodes on the US sites, draft or published (read only, 2026-11-06). Old sites stay as they are (owner, 2026-11-06).\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT. A Testimonials anywhere still renders through it and can still be edited; no document is rewritten.",SubscribeBlogs:"card 66396 \u2014 folded into `Subscribe`, which now chooses its rail's content with a `Type` control (the newsletter's own issues, or live blog posts). The two shared 21 of their fields and rendered THE SAME BYTES from equivalent rows, so offering both asked a merchant to choose between two names for one section. The type key stays because it is stored on published pages, and the component stays because those pages still render through it.",RelatedProducts:`Owner, 2026-11-06 (plan productgrid-card-template-2026-11-06, inovit row 19): a Product Grid with "Show the current product's related" on IS the related grid, so offering both asked a merchant to choose between two names for one section.
|
|
50
|
+
|
|
51
|
+
WHAT REPLACES IT: Product Grid, bound to the current product. Both draw every card through the grid's ONE card template (efficient-storefront-blocks, lib/content/product-card-seed).
|
|
52
|
+
|
|
53
|
+
THE TYPE KEY STAYS AND SO DOES THE COMPONENT. A stored Related Products node is read as that grid by the host (\`relatedToGrid\`) and draws the same cards; no document is rewritten. Its footnote is the one value the grid has no home for.`};var O=Array.from(new Set([...i.flatMap(e=>e.sections.map(t=>t.type)),...Object.keys(b)])),A=Object.fromEntries(i.flatMap(e=>e.sections.map(t=>[t.type,t.label]))),g={Heading:"general",Text:"general",Eyebrow:"general",ImageBlock:"general",LogoBlock:"general",LocationMap:"general",Contents:"general",ButtonBlock:"general",CardList:"general",PostCard:"general",HeroSlide:"general",HeroGroup:"general",Integrations:"general",Grid:"general",KeyFeatures:"general",Spacer:"general",Series:"general",DocMetaCards:"general",StatsParagraph:"general",Testimonials:"general",Masthead:"general",CollectionCard:"commerce",GalleryItem:"commerce",ProductRef:"commerce",CompatibleTyres:"commerce",DeliveryOptions:"commerce",Header:"commerce",SearchBlock:"commerce",CartBlock:"commerce",CountrySwitchBlock:"commerce",AccountBlock:"commerce",ThemeSwitchBlock:"commerce",ProductGallery:"commerce",EuTyreLabelBlock:"commerce",SubmitBox:"service",BookingBox:"service",SubscribeBlogs:"service",RatingBlock:"service",Footer:"service",FooterLogo:"service",FooterMenu:"service",FooterDivider:"service",FooterGroup:"service",FooterText:"service",FooterEmailSignup:"service",FooterSocial:"service",FooterPayment:"service",MenuBlock:"service",MenuLinkBlock:"service",ArticleBody:"service",ProductPrice:"commerce",ProductSize:"commerce",ProductColour:"commerce",ProductPicture:"commerce",ProductEyebrow:"commerce",ProductName:"commerce",ProductSpecs:"commerce",ProductBuy:"commerce",FitmentPicker:"commerce",StockFitment:"commerce",RelatedProducts:"commerce",EmailFormBlock:"service",SocialLogosBlock:"service",PaymentLogosBlock:"service",LegalLineBlock:"service",SiteHeader:"service",SiteFooter:"service"},a={...g,...Object.fromEntries(i.flatMap(e=>e.sections.map(t=>[t.type,t.set])))};function T(e){return Object.prototype.hasOwnProperty.call(a,e)?a[e]:void 0}function l(e){return Object.keys(a).filter(t=>a[t]===e).sort()}var E=l("general"),w=l("commerce"),S=l("service");var f="Box",C=`${f}es`;var h=e=>!!e&&typeof e=="object"&&!Array.isArray(e),p=e=>h(e)&&typeof e.type=="string"&&h(e.props);var s=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),d=e=>p(e)&&e.type!=="";function u(e,t,o){if(Array.isArray(e))for(let r of e)d(r)?c(r,t,o):s(r)&&typeof r.type=="string"&&r.type!==""&&t.add(r.type)}function n(e,t,o){if(Array.isArray(e)){if(o.has(e))return;o.add(e);for(let r of e)d(r)?c(r,t,o):n(r,t,o)}else if(s(e)&&!o.has(e)){o.add(e);for(let r of Object.values(e))n(r,t,o)}}function c(e,t,o){if(!o.has(e)){o.add(e),t.add(e.type);for(let r of Object.values(e.props))n(r,t,o)}}function m(e){let t=new Set,o=new Set;if(d(e))c(e,t,o);else if(s(e)){if(u(e.content,t,o),s(e.zones))for(let r of Object.values(e.zones))u(r,t,o);s(e.root)&&n(e.root,t,o)}return[...t].sort()}export{y as BLOCK_SETS,w as COMMERCE_BLOCKS,E as GENERAL_BLOCKS,S as SERVICE_BLOCKS,T as blockSetOf,m as blockTypesIn};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{CartIcon as r,LinkIcon as e}from"efficient-easel/icons";import{toggle as t}from"efficient-web-builder/editor/lib/document/controls";const n={fields:{buy:t("Buy button",!0,o(r,{})),page:t("Product page link",!0,o(e,{}))}};export{n as ProductBuyFields};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={fields:{}};export{e as ProductEyebrowFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import F from"../../../../../components/CategorySource.js";import{headerKeysOfPlace as g,LAYOUT_FIELD_KEYS as y,SECTION_THEME_FIELD_KEYS as N,SECTION_SHAPE_FIELD_KEYS as G,SECTION_ANIM_FIELD_KEYS as k}from"efficient-web-builder/editor/lib/document/field-groups";import{TITLE_SIZES as w}from"../../../../../../render/components/ProductGridSection.js";import{DEFAULT_TITLE_SIZE as A}from"../../../../../../render/lib/sections/product-grid-title.js";import{ProductFieldIcon as U,TextSizeIcon as H,ColumnsIcon as l,ListIcon as b,HashIcon as x}from"efficient-easel/icons";import{toggle as c,text as d,textarea as a,sourceField as M,linkField as B,containerGapRows as p,spacingFields as K}from"efficient-web-builder/editor/lib/document/controls";import{VIEW_KEY_ACCESS as Y,group as t,phoneTwinFields as u}from"efficient-easel/screen/lib/document/box-fields";import{PRODUCT_GRID_COLUMNS as e,PRODUCT_GRID_PHONE_COLUMNS as i,PRODUCT_GRID_TABLET_COLUMNS as _,builtInTabletColumns as j}from"../../../../../../render/lib/sections/product-grid-columns.js";import{select as W,slider as n}from"efficient-web-builder/editor/lib/document/box-fields";import{isEditorOnDynamicPage as z}from"efficient-web-builder/format/lib/document/editor-page-context";import{productKindsField as Z}from"../shared-fields.js";import{ALL_PRODUCTS_SLUG as v}from"../../../../../../render/lib/wheels/grid-source.js";import{headFieldsForPlacement as V,SPLITTABLE_SECTIONS as q}from"efficient-web-builder/format/lib/sections/section-head-placement";import{PH as f}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{slotRowsField as J}from"efficient-web-builder/editor/lib/document/blocks/shared-fields";import{PRODUCTGRID_PH as T}from"../../../../../../render/lib/document/blocks/commerce/placeholders.js";import{truthy as m,withRowRules as E}from"efficient-web-builder/render/lib/document/show-when";import{BOUND_TO_THE_RECORD as Q,OFF_DYNAMIC_PAGE as O,ON_DYNAMIC_PAGE_ROW as X,PAGE_FACTS as $}from"../page-rules.js";import{ProductGridSlots as S}from"../../../../../../render/lib/document/blocks/commerce/ProductGrid/meta.js";const P=K({top:120,keys:{top:"padTop",bottom:"padBottom"},group:!1,only:"top"}),oo=new Set([...g("Content"),"_gDynamic","dynamic","_gHeader","num","title","titleSize","description","_gLayout","columns","columnsTablet","columnsPhone","limit",...Object.keys(p("ProductGrid")),"template",...Object.keys(P),...y,...N,...G,...k]),to={not:Q},C=n("Columns",o(l,{}),e.min,e.max,1,e.fallback),{columns:eo,columnsTablet:io}=u("columns",C,Y,{phoneRow:n("Columns",o(l,{}),_.min,_.max,1,e.fallback,"",{clear:{phoneFollows:!1,hint:r=>j(r.follows)}})}),{columnsPhone:no}=u("columns",C,void 0,{phoneRow:n("Columns",o(l,{}),i.min,i.max,1,i.min,"",{clear:{phoneFollows:!1,hint:i.min}})}),ro={columns:eo,columnsTablet:io,columnsPhone:no},go={fields:E({_gDynamic:t("Product page"),dynamic:c("Connect to product data",!1,o(U,{})),_gHeader:t("Header"),num:d("Number",T.num),title:a("Heading",f.sectionHeading),titleSize:W("Heading size",o(H,{}),w,A),description:a("Body",f.body),_gProducts:t("Products"),source:M(F),kinds:Z(),productList:J("ProductGrid"),products:S.products,template:S.template,_gLink:t("Link"),linkText:d("Button",T.link),linkHref:B("Link"),_gLayout:t("Grid"),...ro,showAll:c("Show all items",!1,o(b,{})),limit:n("Items to display",o(x,{}),1,12,1,8),...p("ProductGrid"),...P},[[["_gDynamic","dynamic"],X],[["kinds"],{field:"source.slug",is:v}],[["products","productList"],{not:m("source.slug")}],[["limit"],{any:[O,{not:m("showAll")}]}],[["linkHref"],{any:[O,{not:m("linkText.hidden")}]}]]),resolveFields:(r,{fields:I,parent:so})=>{const L=I,D=r.props,s=V(L,D.headPlacement,q.ProductGrid.headRows);if(!z())return s;const h=Object.keys(s).filter(R=>!oo.has(R));return E(s,[[h,to]])},showWhenFacts:$};export{go as ProductGridFields};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={fields:{}};export{e as ProductNameFields};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{cardMediaFields as d,cardStyleFields as e}from"efficient-web-builder/editor/lib/document/controls";const{indexBadge:i,showBadge:o}=e(),s={fields:{...d(),indexBadge:i,showBadge:o}};export{s as ProductPictureFields};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as s}from"react/jsx-runtime";import{HashIcon as o}from"efficient-easel/icons";import{toggle as e}from"efficient-web-builder/editor/lib/document/controls";const m={fields:{sizes:e("Sizes",!1,s(o,{}))}};export{m as ProductSpecsFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{RELATED_CARDS_MIN as a,RELATED_CARDS_MAX as l,RELATED_CARDS_DEFAULT as n}from"../../../../../../render/lib/catalog/related-cards.js";import{RELATIONSHIP_OPTIONS as p,DEFAULT_RELATIONSHIP as t,RELATIONSHIPS as R,CARD_ROWS_NOT_ON_A_TYRE as _}from"../../../../../../render/lib/catalog/relationships.js";import{EyeIcon as f,HashIcon as T,ColumnsIcon as A}from"efficient-easel/icons";import{text as E,textarea as r}from"efficient-web-builder/editor/lib/document/controls";import{group as m}from"efficient-easel/screen/lib/document/box-fields";import{select as S,slider as i}from"efficient-web-builder/editor/lib/document/box-fields";import{headFieldsForPlacement as c,SPLITTABLE_SECTIONS as I}from"efficient-web-builder/format/lib/sections/section-head-placement";import{PH as s}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{PRODUCTGRID_PH as u}from"../../../../../../render/lib/document/blocks/commerce/placeholders.js";import{withRowsShownWhen as P}from"efficient-web-builder/render/lib/document/show-when";import{ProductGridSlots as D}from"../../../../../../render/lib/document/blocks/commerce/ProductGrid/meta.js";const h={not:{field:"relationship",in:R.filter(o=>o.to==="tyre").map(o=>o.key),default:t}},j={fields:{_gHeader:m("Header"),num:E("Number",u.num),title:r("Heading",s.sectionHeading),description:r("Body",s.body),template:D.template,_gLayout:m("Grid"),relationship:S("Show",e(f,{}),p,t),cardCount:i("Cards to show",e(T,{}),a,l,1,n),columns:i("Columns",e(A,{}),2,4,1,3)},resolveFields:(o,{fields:d,parent:C})=>c(P(d,_,h),o.props.headPlacement,I.RelatedProducts.headRows)};export{j as RelatedProductsFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const commerceBlocks: Record<"AlloyWheelsListing" | "ProductGrid" | "CatalogFilterBar" | "StockFitment" | "ProductPrice" | "Gallery" | "GalleryB" | "Header" | "ProductHero" | "SpecTable" | "DetailRows" | "SearchBlock" | "CountrySwitchBlock" | "ThemeSwitchBlock" | "AccountBlock" | "CartBlock" | "Collections" | "CollectionCard" | "ProductRef" | "GalleryItem" | "BundleOffer" | "CompatibleTyres" | "DeliveryOptions" | "FitmentFinder" | "FitmentTable" | "
|
|
1
|
+
export declare const commerceBlocks: Record<"AlloyWheelsListing" | "ProductGrid" | "CatalogFilterBar" | "StockFitment" | "ProductPrice" | "ProductEyebrow" | "ProductName" | "Gallery" | "GalleryB" | "Header" | "ProductHero" | "ProductPicture" | "ProductSpecs" | "ProductBuy" | "ProductColour" | "ProductSize" | "SpecTable" | "DetailRows" | "RelatedProducts" | "SearchBlock" | "CountrySwitchBlock" | "ThemeSwitchBlock" | "AccountBlock" | "CartBlock" | "Collections" | "CollectionCard" | "ProductRef" | "GalleryItem" | "BundleOffer" | "CompatibleTyres" | "DeliveryOptions" | "FitmentFinder" | "FitmentTable" | "TyreFitment" | "TyreSizes" | "EuTyreLabel" | "CheckoutCTA" | "EuTyreLabelBlock" | "ProductGallery" | "FitmentPicker", import("efficient-easel/blocks").ComponentConfig<any, any, Omit<import("efficient-easel/blocks").ComponentData<any, string, Record<string, import("efficient-easel/blocks").DefaultComponentProps>>, "type">>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{assembleBlocks as
|
|
1
|
+
import{assembleBlocks as r}from"efficient-web-builder/format/lib/document/blocks/block-types";import{AccountBlockFields as o}from"./AccountBlock/fields.js";import{AlloyWheelsListingFields as e}from"./AlloyWheelsListing/fields.js";import{BundleOfferFields as i}from"./BundleOffer/fields.js";import{CartBlockFields as t}from"./CartBlock/fields.js";import{CatalogFilterBarFields as l}from"./CatalogFilterBar/fields.js";import{CheckoutCTAFields as m}from"./CheckoutCTA/fields.js";import{CollectionCardFields as d}from"./CollectionCard/fields.js";import{CollectionsFields as c}from"./Collections/fields.js";import{CompatibleTyresFields as s}from"./CompatibleTyres/fields.js";import{CountrySwitchBlockFields as F}from"./CountrySwitchBlock/fields.js";import{DeliveryOptionsFields as p}from"./DeliveryOptions/fields.js";import{DetailRowsFields as f}from"./DetailRows/fields.js";import{EuTyreLabelFields as u}from"./EuTyreLabel/fields.js";import{EuTyreLabelBlockFields as a}from"./EuTyreLabelBlock/fields.js";import{FitmentFinderFields as P}from"./FitmentFinder/fields.js";import{FitmentPickerFields as n}from"./FitmentPicker/fields.js";import{FitmentTableFields as y}from"./FitmentTable/fields.js";import{GalleryFields as C}from"./Gallery/fields.js";import{GalleryBFields as B}from"./GalleryB/fields.js";import{GalleryItemFields as k}from"./GalleryItem/fields.js";import{HeaderFields as S}from"./Header/fields.js";import{ProductGalleryFields as T}from"./ProductGallery/fields.js";import{ProductGridFields as b}from"./ProductGrid/fields.js";import{ProductHeroFields as E}from"./ProductHero/fields.js";import{ProductRefFields as h}from"./ProductRef/fields.js";import{RelatedProductsFields as G}from"./RelatedProducts/fields.js";import{SearchBlockFields as R}from"./SearchBlock/fields.js";import{SpecTableFields as w}from"./SpecTable/fields.js";import{ThemeSwitchBlockFields as L}from"./ThemeSwitchBlock/fields.js";import{TyreFitmentFields as A}from"./TyreFitment/fields.js";import{TyreSizesFields as D}from"./TyreSizes/fields.js";import{ProductSizeFields as O}from"./ProductSize/fields.js";import{ProductColourFields as g}from"./ProductColour/fields.js";import{ProductPriceFields as z}from"./ProductPrice/fields.js";import{StockFitmentFields as H}from"./StockFitment/fields.js";import{ProductPictureFields as M}from"./ProductPicture/fields.js";import{ProductSpecsFields as I}from"./ProductSpecs/fields.js";import{ProductBuyFields as N}from"./ProductBuy/fields.js";import{ProductEyebrowFields as v}from"./ProductEyebrow/fields.js";import{ProductNameFields as W}from"./ProductName/fields.js";import{COMMERCE_RENDERS as _}from"../../../../../render/lib/document/blocks/commerce/renders.js";const x={AccountBlock:o,AlloyWheelsListing:e,BundleOffer:i,CartBlock:t,CatalogFilterBar:l,CheckoutCTA:m,CollectionCard:d,Collections:c,CompatibleTyres:s,CountrySwitchBlock:F,DeliveryOptions:p,DetailRows:f,EuTyreLabel:u,EuTyreLabelBlock:a,FitmentFinder:P,FitmentTable:y,Gallery:C,GalleryB:B,GalleryItem:k,Header:S,ProductGallery:T,ProductGrid:b,ProductHero:E,ProductRef:h,RelatedProducts:G,SearchBlock:R,SpecTable:w,ThemeSwitchBlock:L,TyreFitment:A,TyreSizes:D,ProductSize:O,ProductColour:g,ProductPrice:z,FitmentPicker:n,StockFitment:H,ProductPicture:M,ProductSpecs:I,ProductBuy:N,ProductEyebrow:v,ProductName:W},Dr=r(_,x);export{Dr as commerceBlocks};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as l,Fragment as G,jsxs as U}from"react/jsx-runtime";import{assignSectionGroups as k,reseatBucketTabs as F}from"efficient-web-builder/editor/lib/document/field-groups";import{buildBlockCategories as K}from"efficient-web-builder/format/lib/document/section-catalog";import{FONT_ROLES as W,FONT_ROLE_LABELS as j}from"efficient-web-builder/format/lib/fonts";import{CONTAINER_DIRECTION_LABELS as E}from"efficient-web-builder/format/lib/content/container-direction";import{SITE_FOOTER_TYPE as Y,SITE_HEADER_TYPE as q}from"efficient-web-builder/format/lib/document/section-groups";import z from"../../components/MenuLinkRangeField.js";import V from"../../components/EditorPreviewChat.js";import X from"../../components/EditorPreviewSurface.js";import{isSystemPageSlug as Q,POPUP_DAYS_RANGE as O,POPUP_DELAY_RANGE as _,POPUP_HIDE_AFTER as J,POPUP_SCROLL_RANGE as L,POPUP_SHOW_ON as Z,POPUP_TRIGGERS as C,SUBSCRIBE_POPUP_DEFAULTS as $,SUBSCRIBE_POPUP_KIND as ee}from"efficient-web-builder/format/lib/content/subscribe";import{shownForOption as b,withRowRules as te}from"efficient-web-builder/render/lib/document/show-when";import{POPUP_KIND_PROP as oe,POPUP_TEXT_KIND_LABELS as v,POPUP_TEXT_KINDS as re}from"efficient-web-builder/format/lib/popup/text-kinds";import{loadPages as ie}from"efficient-web-builder/editor/components/StorefrontLinkField";import{pagePath as ae}from"../../../render/lib/links/link-rules.js";import{getEditorSiteId as le}from"efficient-web-builder/render/lib/editor-site";import{CART_DRAWER_DEFAULTS as ne,CART_DRAWER_KIND as f}from"efficient-web-builder/format/lib/content/cart-drawer";import{POPUP_PAGE_KIND as A}from"efficient-web-builder/format/lib/popup/look";import{popupLookFields as se}from"./popup-look-fields.js";import{CONSENT_BANNER_KIND as R}from"efficient-web-builder/format/lib/content/consent-banner";import{consentBannerLayoutField as ce}from"../../components/ConsentBannerLayoutTiles.js";import{CategoryIcon as me,CheckIcon as ue,ClockIcon as S,ColumnsIcon as de,DirectionIcon as pe,EyeIcon as ge,ListIcon as Pe,PageIcon as be,PlacementIcon as fe,ScrollPointIcon as Se,TriggerIcon as he}from"efficient-easel/icons";import{deviceField as D}from"efficient-easel/screen/lib/document/device-fields";import{FieldGlyph as Te}from"efficient-web-builder/editor/components/FieldGlyph";import{multiSelect as ye,panelNote as Be,plainText as a,plainTextarea as u,sectionShapeFields as ke,sectionThemeFields as Fe,textList as h,toggle as w}from"efficient-web-builder/editor/lib/document/controls";import{group as c}from"efficient-easel/screen/lib/document/box-fields";import{segmented as p,select as I,slider as T}from"efficient-web-builder/editor/lib/document/box-fields";import{blockAlignRow as Ee}from"./block-align-row.js";import{formPicker as Oe}from"./blocks/service/controls.js";import{SECTION_THEME_FOLLOW_LABEL as _e}from"efficient-web-builder/editor/components/SectionThemePicker";import{nestedAccentValue as Le}from"efficient-web-builder/format/lib/content/section-surface";import{isEditorOnDynamicPage as Ce}from"efficient-web-builder/format/lib/document/editor-page-context";import{TEMPLATE_PRODUCT_TYPE_PROP as ve}from"efficient-web-builder/format/lib/content/product-page";import{PRODUCT_KIND_OPTIONS as Ae}from"../../../render/lib/catalog/plp-item.js";import{PH as y}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{textKindGlyph as Re}from"efficient-web-builder/editor/lib/document/blocks/shared-fields";import"../efficient-backend.js";import"../../../render/lib/document/slot-seeds.js";import"../../../render/lib/document/card-templates.js";import"../../../render/lib/document/section-to-box-rows-reviews.js";import"../../../render/lib/document/section-to-box-rows-spec.js";import"../../../render/lib/document/section-to-box-rows-detail.js";import"./section-text-regions.js";import{generalBlocks as e}from"efficient-web-builder/editor/lib/document/blocks/general/index";import{commerceBlocks as r}from"./blocks/commerce/index.js";import{serviceBlocks as i}from"./blocks/service/index.js";import{EditorThemedBody as De,suppressPreviewNav as we}from"efficient-web-builder/editor/lib/document/page-root";import Ie from"../../components/HeaderSection.js";import{addPageBlocksFromFooter as xe,PAGE_MENU_DIRECTION_DEFAULT as Ne}from"../../../render/lib/document/footer-page-blocks.js";import{drawPopupPage as He,drawPublishedStorefrontRoot as Me,drawSystemPage as Ge,StorefrontPageProviders as Ue}from"../../../render/lib/document/storefront-root.js";import{GENERAL_ROOT_FIELDS as Ke}from"efficient-web-builder/editor/lib/document/page-root-fields";import{finishRegistry as We}from"efficient-web-builder/editor/lib/document/registry";const je="Newsletter (built in)",Zt=[{value:"00",label:y.label},{value:"00",label:y.label},{value:"00",label:y.label}],t=$,g={field:"autoOpen",is:!0},Ye={all:[b("hideAfter",J,t.hideAfter,["days"]),{not:{all:[{field:"hideAfter",is:null,default:null},{field:"oncePerSession",in:[!0,!1]}]}}]},qe=[[["trigger","showOn","hideAfter"],g],[["autoOpenDelaySec"],{all:[g,b("trigger",C,t.trigger,["delay","exit"])]}],[["scrollPercent"],{all:[g,b("trigger",C,t.trigger,["scroll"])]}],[["showOnPages"],{all:[g,b("showOn",Z,t.showOn,["chosen"])]}],[["hideDays"],{all:[g,Ye]}]],ze=te({formSlug:Oe(void 0,je),_gLeft:c("Left panel"),metaLabel:a("Meta label",t.metaLabel),issueLabel:a("Issue label",t.issueLabel),issueNumber:a("Issue number",t.issueNumber),kicker:a("Eyebrow",t.kicker),heading:u("Heading",t.heading),deck:u("Deck",t.deck),stats:{type:"array",label:"Stats",arrayFields:{label:a("Label"),value:a("Value")},getItemSummary:o=>o?.label||o?.value||"Stat"},_gForm:c("Right panel · form"),formLabel:a("Section label",t.formLabel),formHeading:a("Heading",t.formHeading),formIntro:u("Intro",t.formIntro),firstNameLabel:a("First-name label",t.firstNameLabel),firstNamePlaceholder:a("First-name placeholder",t.firstNamePlaceholder),emailLabel:a("Email label",t.emailLabel),emailPlaceholder:a("Email placeholder",t.emailPlaceholder),_gChoices:c("Right panel · choices"),interestsLabel:a("Interests label",t.interestsLabel),interests:h("Interest chips",l(Te,{noun:"tag"}),"Chip label","verbatim"),frequencyLabel:a("Frequency label",t.frequencyLabel),frequencies:h("Frequency options",l(Pe,{}),"Option label","verbatim"),_gActions:c("Right panel · actions"),submitText:a("Submit button",t.submitText),finePrint:a("Fine print",t.finePrint),dismissText:a("Dismiss link",t.dismissText),emailInvalidText:a("Invalid-email error",t.emailInvalidText),submitErrorText:a("Submit-failed error",t.submitErrorText),_gSuccess:c("Success state"),successHeading:a("Heading",t.successHeading),successBody:u("Message",t.successBody),keepBrowsingText:a("Dismiss button",t.keepBrowsingText),...Fe(Le,_e),...ke(),_gTextStyle:c("Text style"),...Object.fromEntries(re.map(o=>[oe[o],I(v[o],Re(v[o]),[{label:"Popup's own",value:""},...W.map(n=>({label:j[n],value:n}))],"")])),_gBehaviour:c("Behavior"),autoOpen:w("Show by itself",t.autoOpen,l(ge,{})),trigger:p("Trigger",l(he,{}),[{label:"Delay",value:"delay"},{label:"Scroll",value:"scroll"},{label:"Exit",value:"exit"}],t.trigger),autoOpenDelaySec:T("Delay",l(S,{}),_.min,_.max,1,t.autoOpenDelaySec,"s"),scrollPercent:T("Scroll",l(Se,{}),L.min,L.max,5,t.scrollPercent,"%"),showOn:p("Pages",l(be,{}),[{label:"All",value:"all"},{label:"Chosen",value:"chosen"}],t.showOn),showOnPages:ye("Chosen pages",[],"None"),hideAfter:p("After close",l(S,{}),[{label:"This visit",value:"visit"},{label:"Days",value:"days"},{label:"Never",value:"never"}],t.hideAfter),hideDays:T("Days",l(S,{}),O.min,O.max,1,t.hideDays),_gArrangement:c("Arrangement"),formSide:p("Form side",l(fe,{}),[{label:"Right",value:"right"},{label:"Left",value:"left"}],t.formSide),_gPhone:D("mobile",c("On a phone")),valuePanelOnPhone:D("mobile",w("Left panel",t.valuePanelOnPhone,l(de,{})))},qe),x=k(ze,"SubscribePopup");async function Ve(){return(await ie(le()??"")).filter(n=>!Q(n.slug)).map(n=>({label:n.label,value:ae(n.slug)}))}async function Xe(){return F({...x,showOnPages:{...x.showOnPages,options:await Ve().catch(()=>[])}})}const m=ne,Qe={_gHeader:c("Header"),kickerBadge:a("Eyebrow badge",m.kickerBadge),kickerText:a("Eyebrow text",m.kickerText),titleLead:a("Heading",m.titleLead),titleAccent:a("Heading accent",m.titleAccent),subtitleEmpty:u("Sub-line · empty",m.subtitleEmpty),subtitleOne:u("Sub-line · one set",m.subtitleOne),subtitleMany:u("Sub-line · several sets",m.subtitleMany,"{count} becomes the number of sets"),_gStatus:c("Status rail"),leadTimeValue:a("Lead time",m.leadTimeValue),shipsToFallback:a("Ships to · fallback",m.shipsToFallback,"Shown only while the site serves no countries — otherwise the site's default country is stated"),_gPromises:c("Promise row"),promises:h("Trust markers",l(ue,{}),"Marker","verbatim"),_gEmpty:c("Empty basket"),emptyKicker:a("Eyebrow",m.emptyKicker),emptyBody:u("Message",m.emptyBody)},N=(o,n,s)=>F({...o,...k(se(n),s)}),Je=N(Qe,f,"CartDrawer"),Ze={layout:ce,_nConsentWhere:Be("The banner's words follow each visitor's country. Turn consent on or off, and pick the privacy page, in Admin › Storefront › Marketing › Privacy.")};function $e({kind:o}){return l("div",{style:{padding:"14px 18px",fontFamily:"var(--font-mono, monospace)",fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:"var(--fg-dim)",borderBottom:"1px solid var(--site-line)"},children:o===f?"This is the cart drawer — edit its copy in the Settings panel →":o===R?"This is the cookie banner — pick its layout in the Settings panel →":"This is the site popup — edit it in the Settings panel →"})}const P={root:{fields:{...Ke},resolveFields:async(o,{fields:n})=>{if(o?.props?.kind===ee)return Xe();if(o?.props?.kind===A)return N(n,A,"PopupPage");if(o?.props?.kind===f)return Je;if(o?.props?.kind===R)return Ze;const s=n;return Ce()?{[ve]:I("Product type",l(me,{}),Ae,"alloy-wheel"),...s}:s},render:o=>{const{editor:n,pageBackground:s,theme:d,fonts:H}=o;if(!n?.isEditing)return Me(o);const B=Ge(o,l($e,{kind:o.kind}));if(B)return B;const M=He(o,!0);return l(De,{propsTheme:d,propsFonts:H,pageBackground:typeof s=="string"?s:void 0,suppressPreviewNav:we,overlay:U(G,{children:[l(V,{}),l(X,{})]}),children:M??l(Ue,{rootProps:o,children:o.children})})}},categories:K(),components:{Heading:e.Heading,Text:e.Text,Eyebrow:e.Eyebrow,ImageBlock:e.ImageBlock,LogoBlock:e.LogoBlock,ButtonBlock:e.ButtonBlock,Spacer:e.Spacer,Divider:e.Divider,Grid:e.Grid,Flex:e.Flex,Breadcrumb:e.Breadcrumb,Masthead:e.Masthead,CategoryBar:e.CategoryBar,FeaturedCover:e.FeaturedCover,LongRead:e.LongRead,Series:e.Series,Subscribe:i.Subscribe,SubscribeBlogs:i.SubscribeBlogs,Banner:e.Banner,ParagraphsA:e.ParagraphsA,StatsParagraph:e.StatsParagraph,Timeline:e.Timeline,Footprint:e.Footprint,TimelineTrack:e.TimelineTrack,TitleWithButtons:e.TitleWithButtons,Stats:e.Stats,Integrations:e.Integrations,Mockup:e.Mockup,Chart:e.Chart,KeyFeatures:e.KeyFeatures,Testimonials:e.Testimonials,Reviews:i.Reviews,RatingBlock:i.RatingBlock,Prose:e.Prose,Cards:e.Cards,Logos:e.Logos,Ticker:e.Ticker,ContactRouting:i.ContactRouting,ContactLocations:e.ContactLocations,HeroSingle:e.HeroSingle,Hero:e.Hero,HeroSlide:e.HeroSlide,HeroGroup:e.HeroGroup,Collections:r.Collections,CollectionCard:r.CollectionCard,Events:i.Events,RateTable:i.RateTable,MessagingCards:i.MessagingCards,ContactCards:i.ContactCards,OpeningHours:i.OpeningHours,PostCard:e.PostCard,DocMetaCards:e.DocMetaCards,DocTabs:e.DocTabs,DocMasthead:e.DocMasthead,DocBody:e.DocBody,Contents:e.Contents,FAQ:e.FAQ,Gallery:r.Gallery,GalleryB:r.GalleryB,SpecStrip:e.SpecStrip,GalleryItem:r.GalleryItem,Manifesto:e.Manifesto,SectionHeader:e.SectionHeader,IntroBleed:e.IntroBleed,Split:e.Split,SubmitBuild:i.SubmitBuild,SubmitBox:i.SubmitBox,ReviewForm:i.ReviewForm,Form:i.Form,AppointmentBooking:i.AppointmentBooking,BookingBox:i.BookingBox,CatalogFilterBar:r.CatalogFilterBar,AlloyWheelsListing:r.AlloyWheelsListing,ProductGrid:r.ProductGrid,ProductHero:r.ProductHero,ProductGallery:r.ProductGallery,SpecTable:r.SpecTable,ProcessSteps:e.ProcessSteps,DetailRows:r.DetailRows,FitmentTable:r.FitmentTable,RelatedProducts:r.RelatedProducts,BundleOffer:r.BundleOffer,CompatibleTyres:r.CompatibleTyres,TyreSizes:r.TyreSizes,TyreFitment:r.TyreFitment,EuTyreLabel:r.EuTyreLabel,EuTyreLabelBlock:r.EuTyreLabelBlock,ProductSize:r.ProductSize,ProductColour:r.ProductColour,ProductPrice:r.ProductPrice,FitmentFinder:r.FitmentFinder,FitmentPicker:r.FitmentPicker,StockFitment:r.StockFitment,OrderSummary:e.OrderSummary,DeliveryOptions:r.DeliveryOptions,PaymentBadges:e.PaymentBadges,CheckoutCTA:r.CheckoutCTA,ProductRef:r.ProductRef,CustomHTML:e.CustomHTML,Header:r.Header,Footer:i.Footer,FooterLogo:i.FooterLogo,FooterMenu:i.FooterMenu,ArticleBody:i.ArticleBody,MenuLinkBlock:i.MenuLinkBlock,FooterDivider:i.FooterDivider,FooterGroup:i.FooterGroup,FooterText:i.FooterText,FooterEmailSignup:i.FooterEmailSignup,FooterSocial:i.FooterSocial,FooterMessaging:i.FooterMessaging,FooterPayment:i.FooterPayment,LegalLineBlock:i.LegalLineBlock,SearchBlock:r.SearchBlock,CartBlock:r.CartBlock,CountrySwitchBlock:r.CountrySwitchBlock,AccountBlock:r.AccountBlock,ThemeSwitchBlock:r.ThemeSwitchBlock,[q]:i.SiteHeader,[Y]:i.SiteFooter}};xe(P.components);{const o=P.components.MenuBlock;o.fields={...o.fields,direction:p("Direction",l(pe,{}),[{label:E.column,value:"column"},{label:E.row,value:"row"}],Ne)};const n={type:"custom",render:({value:s,onChange:d})=>l(z,{value:s,onChange:d})};o.fields=Object.fromEntries(Object.entries(o.fields).flatMap(([s,d])=>s==="menu"?[[s,d],["linkRange",n]]:[[s,d]])),o.fields={...o.fields,linkAlign:Ee({label:"Link alignment"})}}{const o=P.components.Header,n=o.render;o.render=s=>s.editor?.isEditing?l(Ie,{editing:!0}):n(s)}const et=We(P),$t=et.sectionGroupAllow;var eo=P;export{$t as SECTION_GROUP_ALLOW,P as config,eo as default,ze as subscribePopupFields};
|
|
1
|
+
import{jsx as l,Fragment as Y,jsxs as j}from"react/jsx-runtime";import{assignSectionGroups as L,reseatBucketTabs as O}from"efficient-web-builder/editor/lib/document/field-groups";import{buildBlockCategories as q}from"efficient-web-builder/format/lib/document/section-catalog";import{FONT_ROLES as z,FONT_ROLE_LABELS as V}from"efficient-web-builder/format/lib/fonts";import{CONTAINER_DIRECTION_LABELS as C}from"efficient-web-builder/format/lib/content/container-direction";import{SITE_FOOTER_TYPE as X,SITE_HEADER_TYPE as Q}from"efficient-web-builder/format/lib/document/section-groups";import J from"../../components/MenuLinkRangeField.js";import Z from"../../components/EditorPreviewChat.js";import $ from"../../components/EditorPreviewSurface.js";import{isSystemPageSlug as ee,POPUP_DAYS_RANGE as R,POPUP_DELAY_RANGE as A,POPUP_HIDE_AFTER as te,POPUP_SCROLL_RANGE as v,POPUP_SHOW_ON as oe,POPUP_TRIGGERS as w,SUBSCRIBE_POPUP_DEFAULTS as re,SUBSCRIBE_POPUP_KIND as ie}from"efficient-web-builder/format/lib/content/subscribe";import{shownForOption as b,withRowRules as ae,withShowWhen as h}from"efficient-web-builder/render/lib/document/show-when";import{POPUP_KIND_PROP as le,POPUP_TEXT_KIND_LABELS as D,POPUP_TEXT_KINDS as ne}from"efficient-web-builder/format/lib/popup/text-kinds";import{loadPages as se}from"efficient-web-builder/editor/components/StorefrontLinkField";import{pagePath as ce}from"../../../render/lib/links/link-rules.js";import{getEditorSiteId as me}from"efficient-web-builder/render/lib/editor-site";import{CART_DRAWER_DEFAULTS as ue,CART_DRAWER_KIND as T}from"efficient-web-builder/format/lib/content/cart-drawer";import{POPUP_PAGE_KIND as I}from"efficient-web-builder/format/lib/popup/look";import{popupLookFields as de}from"./popup-look-fields.js";import{CONSENT_BANNER_KIND as N}from"efficient-web-builder/format/lib/content/consent-banner";import{consentBannerLayoutField as pe}from"../../components/ConsentBannerLayoutTiles.js";import{CategoryIcon as ge,CheckIcon as Pe,ClockIcon as B,ColumnsIcon as fe,DirectionIcon as be,EyeIcon as Se,ListIcon as ye,PageIcon as he,PlacementIcon as Te,ScrollPointIcon as Be,TabsIcon as ke,TriggerIcon as Ee}from"efficient-easel/icons";import{deviceField as x}from"efficient-easel/screen/lib/document/device-fields";import{FieldGlyph as _e}from"efficient-web-builder/editor/components/FieldGlyph";import{DisplayRow as Fe,multiSelect as Le,panelNote as Oe,plainText as a,plainTextarea as p,sectionShapeFields as Ce,sectionThemeFields as Re,textList as k,toggle as H}from"efficient-web-builder/editor/lib/document/controls";import{group as c}from"efficient-easel/screen/lib/document/box-fields";import{segmented as g,select as M,slider as E}from"efficient-web-builder/editor/lib/document/box-fields";import{blockAlignRow as Ae}from"./block-align-row.js";import{formPicker as ve}from"./blocks/service/controls.js";import{SECTION_THEME_FOLLOW_LABEL as we}from"efficient-web-builder/editor/components/SectionThemePicker";import{nestedAccentValue as De}from"efficient-web-builder/format/lib/content/section-surface";import{isEditorOnDynamicPage as Ie}from"efficient-web-builder/format/lib/document/editor-page-context";import{TEMPLATE_PRODUCT_TYPE_PROP as Ne}from"efficient-web-builder/format/lib/content/product-page";import{PRODUCT_KIND_OPTIONS as xe}from"../../../render/lib/catalog/plp-item.js";import{PH as _}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{textKindGlyph as He}from"efficient-web-builder/editor/lib/document/blocks/shared-fields";import"../efficient-backend.js";import"../../../render/lib/document/slot-seeds.js";import"../../../render/lib/document/card-templates.js";import"../../../render/lib/document/section-to-box-rows-reviews.js";import"../../../render/lib/document/section-to-box-rows-spec.js";import"../../../render/lib/document/section-to-box-rows-detail.js";import"./section-text-regions.js";import{generalBlocks as e}from"efficient-web-builder/editor/lib/document/blocks/general/index";import{commerceBlocks as t}from"./blocks/commerce/index.js";import{serviceBlocks as i}from"./blocks/service/index.js";import{EditorThemedBody as Me,suppressPreviewNav as Ge}from"efficient-web-builder/editor/lib/document/page-root";import Ue from"../../components/HeaderSection.js";import{addPageBlocksFromFooter as Ke,PAGE_MENU_DIRECTION_DEFAULT as F}from"../../../render/lib/document/footer-page-blocks.js";import{MENU_STYLE_PLAIN as G,MENU_STYLE_TABS as U}from"../../../render/components/FooterMenu.js";import{drawPopupPage as We,drawPublishedStorefrontRoot as Ye,drawSystemPage as je,StorefrontPageProviders as qe}from"../../../render/lib/document/storefront-root.js";import{GENERAL_ROOT_FIELDS as ze}from"efficient-web-builder/editor/lib/document/page-root-fields";import{finishRegistry as Ve}from"efficient-web-builder/editor/lib/document/registry";const Xe="Newsletter (built in)",Qe=[{id:"currentPage",label:"Current page"}],ao=[{value:"00",label:_.label},{value:"00",label:_.label},{value:"00",label:_.label}],r=re,P={field:"autoOpen",is:!0},Je={all:[b("hideAfter",te,r.hideAfter,["days"]),{not:{all:[{field:"hideAfter",is:null,default:null},{field:"oncePerSession",in:[!0,!1]}]}}]},Ze=[[["trigger","showOn","hideAfter"],P],[["autoOpenDelaySec"],{all:[P,b("trigger",w,r.trigger,["delay","exit"])]}],[["scrollPercent"],{all:[P,b("trigger",w,r.trigger,["scroll"])]}],[["showOnPages"],{all:[P,b("showOn",oe,r.showOn,["chosen"])]}],[["hideDays"],{all:[P,Je]}]],$e=ae({formSlug:ve(void 0,Xe),_gLeft:c("Left panel"),metaLabel:a("Meta label",r.metaLabel),issueLabel:a("Issue label",r.issueLabel),issueNumber:a("Issue number",r.issueNumber),kicker:a("Eyebrow",r.kicker),heading:p("Heading",r.heading),deck:p("Deck",r.deck),stats:{type:"array",label:"Stats",arrayFields:{label:a("Label"),value:a("Value")},getItemSummary:o=>o?.label||o?.value||"Stat"},_gForm:c("Right panel · form"),formLabel:a("Section label",r.formLabel),formHeading:a("Heading",r.formHeading),formIntro:p("Intro",r.formIntro),firstNameLabel:a("First-name label",r.firstNameLabel),firstNamePlaceholder:a("First-name placeholder",r.firstNamePlaceholder),emailLabel:a("Email label",r.emailLabel),emailPlaceholder:a("Email placeholder",r.emailPlaceholder),_gChoices:c("Right panel · choices"),interestsLabel:a("Interests label",r.interestsLabel),interests:k("Interest chips",l(_e,{noun:"tag"}),"Chip label","verbatim"),frequencyLabel:a("Frequency label",r.frequencyLabel),frequencies:k("Frequency options",l(ye,{}),"Option label","verbatim"),_gActions:c("Right panel · actions"),submitText:a("Submit button",r.submitText),finePrint:a("Fine print",r.finePrint),dismissText:a("Dismiss link",r.dismissText),emailInvalidText:a("Invalid-email error",r.emailInvalidText),submitErrorText:a("Submit-failed error",r.submitErrorText),_gSuccess:c("Success state"),successHeading:a("Heading",r.successHeading),successBody:p("Message",r.successBody),keepBrowsingText:a("Dismiss button",r.keepBrowsingText),...Re(De,we),...Ce(),_gTextStyle:c("Text style"),...Object.fromEntries(ne.map(o=>[le[o],M(D[o],He(D[o]),[{label:"Popup's own",value:""},...z.map(n=>({label:V[n],value:n}))],"")])),_gBehaviour:c("Behavior"),autoOpen:H("Show by itself",r.autoOpen,l(Se,{})),trigger:g("Trigger",l(Ee,{}),[{label:"Delay",value:"delay"},{label:"Scroll",value:"scroll"},{label:"Exit",value:"exit"}],r.trigger),autoOpenDelaySec:E("Delay",l(B,{}),A.min,A.max,1,r.autoOpenDelaySec,"s"),scrollPercent:E("Scroll",l(Be,{}),v.min,v.max,5,r.scrollPercent,"%"),showOn:g("Pages",l(he,{}),[{label:"All",value:"all"},{label:"Chosen",value:"chosen"}],r.showOn),showOnPages:Le("Chosen pages",[],"None"),hideAfter:g("After close",l(B,{}),[{label:"This visit",value:"visit"},{label:"Days",value:"days"},{label:"Never",value:"never"}],r.hideAfter),hideDays:E("Days",l(B,{}),R.min,R.max,1,r.hideDays),_gArrangement:c("Arrangement"),formSide:g("Form side",l(Te,{}),[{label:"Right",value:"right"},{label:"Left",value:"left"}],r.formSide),_gPhone:x("mobile",c("On a phone")),valuePanelOnPhone:x("mobile",H("Left panel",r.valuePanelOnPhone,l(fe,{})))},Ze),K=L($e,"SubscribePopup");async function et(){return(await se(me()??"")).filter(n=>!ee(n.slug)).map(n=>({label:n.label,value:ce(n.slug)}))}async function tt(){return O({...K,showOnPages:{...K.showOnPages,options:await et().catch(()=>[])}})}const u=ue,ot={_gHeader:c("Header"),kickerBadge:a("Eyebrow badge",u.kickerBadge),kickerText:a("Eyebrow text",u.kickerText),titleLead:a("Heading",u.titleLead),titleAccent:a("Heading accent",u.titleAccent),subtitleEmpty:p("Sub-line · empty",u.subtitleEmpty),subtitleOne:p("Sub-line · one set",u.subtitleOne),subtitleMany:p("Sub-line · several sets",u.subtitleMany,"{count} becomes the number of sets"),_gStatus:c("Status rail"),leadTimeValue:a("Lead time",u.leadTimeValue),shipsToFallback:a("Ships to · fallback",u.shipsToFallback,"Shown only while the site serves no countries — otherwise the site's default country is stated"),_gPromises:c("Promise row"),promises:k("Trust markers",l(Pe,{}),"Marker","verbatim"),_gEmpty:c("Empty basket"),emptyKicker:a("Eyebrow",u.emptyKicker),emptyBody:p("Message",u.emptyBody)},W=(o,n,m)=>O({...o,...L(de(n),m)}),rt=W(ot,T,"CartDrawer"),it={layout:pe,_nConsentWhere:Oe("The banner's words follow each visitor's country. Turn consent on or off, and pick the privacy page, in Admin › Storefront › Marketing › Privacy.")};function at({kind:o}){return l("div",{style:{padding:"14px 18px",fontFamily:"var(--font-mono, monospace)",fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:"var(--fg-dim)",borderBottom:"1px solid var(--site-line)"},children:o===T?"This is the cart drawer — edit its copy in the Settings panel →":o===N?"This is the cookie banner — pick its layout in the Settings panel →":"This is the site popup — edit it in the Settings panel →"})}const f={root:{fields:{...ze},resolveFields:async(o,{fields:n})=>{if(o?.props?.kind===ie)return tt();if(o?.props?.kind===I)return W(n,I,"PopupPage");if(o?.props?.kind===T)return rt;if(o?.props?.kind===N)return it;const m=n;return Ie()?{[Ne]:M("Product type",l(ge,{}),xe,"alloy-wheel"),...m}:m},render:o=>{const{editor:n,pageBackground:m,theme:s,fonts:d}=o;if(!n?.isEditing)return Ye(o);const S=je(o,l(at,{kind:o.kind}));if(S)return S;const y=We(o,!0);return l(Me,{propsTheme:s,propsFonts:d,pageBackground:typeof m=="string"?m:void 0,suppressPreviewNav:Ge,overlay:j(Y,{children:[l(Z,{}),l($,{})]}),children:y??l(qe,{rootProps:o,children:o.children})})}},categories:q(),components:{Heading:e.Heading,Text:e.Text,Eyebrow:e.Eyebrow,ImageBlock:e.ImageBlock,LogoBlock:e.LogoBlock,ButtonBlock:e.ButtonBlock,Spacer:e.Spacer,Divider:e.Divider,Grid:e.Grid,Flex:e.Flex,Breadcrumb:e.Breadcrumb,Masthead:e.Masthead,CategoryBar:e.CategoryBar,FeaturedCover:e.FeaturedCover,LongRead:e.LongRead,Series:e.Series,Subscribe:i.Subscribe,SubscribeBlogs:i.SubscribeBlogs,Banner:e.Banner,ParagraphsA:e.ParagraphsA,StatsParagraph:e.StatsParagraph,Timeline:e.Timeline,Footprint:e.Footprint,TimelineTrack:e.TimelineTrack,TitleWithButtons:e.TitleWithButtons,Stats:e.Stats,Integrations:e.Integrations,Mockup:e.Mockup,Chart:e.Chart,KeyFeatures:e.KeyFeatures,Testimonials:e.Testimonials,Reviews:i.Reviews,RatingBlock:i.RatingBlock,Prose:e.Prose,Cards:e.Cards,Logos:e.Logos,Ticker:e.Ticker,ContactRouting:i.ContactRouting,ContactLocations:e.ContactLocations,HeroSingle:e.HeroSingle,Hero:e.Hero,HeroSlide:e.HeroSlide,HeroGroup:e.HeroGroup,Collections:t.Collections,CollectionCard:t.CollectionCard,Events:i.Events,RateTable:i.RateTable,MessagingCards:i.MessagingCards,ContactCards:i.ContactCards,OpeningHours:i.OpeningHours,PostCard:e.PostCard,DocMetaCards:e.DocMetaCards,DocTabs:e.DocTabs,DocMasthead:e.DocMasthead,DocBody:e.DocBody,Contents:e.Contents,FAQ:e.FAQ,Gallery:t.Gallery,GalleryB:t.GalleryB,SpecStrip:e.SpecStrip,GalleryItem:t.GalleryItem,Manifesto:e.Manifesto,SectionHeader:e.SectionHeader,IntroBleed:e.IntroBleed,Split:e.Split,SubmitBuild:i.SubmitBuild,SubmitBox:i.SubmitBox,ReviewForm:i.ReviewForm,Form:i.Form,AppointmentBooking:i.AppointmentBooking,BookingBox:i.BookingBox,CatalogFilterBar:t.CatalogFilterBar,AlloyWheelsListing:t.AlloyWheelsListing,ProductGrid:t.ProductGrid,ProductHero:t.ProductHero,ProductGallery:t.ProductGallery,SpecTable:t.SpecTable,ProcessSteps:e.ProcessSteps,DetailRows:t.DetailRows,FitmentTable:t.FitmentTable,RelatedProducts:t.RelatedProducts,BundleOffer:t.BundleOffer,CompatibleTyres:t.CompatibleTyres,TyreSizes:t.TyreSizes,TyreFitment:t.TyreFitment,EuTyreLabel:t.EuTyreLabel,EuTyreLabelBlock:t.EuTyreLabelBlock,ProductSize:t.ProductSize,ProductColour:t.ProductColour,ProductPrice:t.ProductPrice,ProductPicture:t.ProductPicture,ProductSpecs:t.ProductSpecs,ProductBuy:t.ProductBuy,ProductEyebrow:t.ProductEyebrow,ProductName:t.ProductName,FitmentFinder:t.FitmentFinder,FitmentPicker:t.FitmentPicker,StockFitment:t.StockFitment,OrderSummary:e.OrderSummary,DeliveryOptions:t.DeliveryOptions,PaymentBadges:e.PaymentBadges,CheckoutCTA:t.CheckoutCTA,ProductRef:t.ProductRef,CustomHTML:e.CustomHTML,CardList:e.CardList,Header:t.Header,Footer:i.Footer,FooterLogo:i.FooterLogo,FooterMenu:i.FooterMenu,ArticleBody:i.ArticleBody,MenuLinkBlock:i.MenuLinkBlock,FooterDivider:i.FooterDivider,FooterGroup:i.FooterGroup,FooterText:i.FooterText,FooterEmailSignup:i.FooterEmailSignup,FooterSocial:i.FooterSocial,FooterMessaging:i.FooterMessaging,FooterPayment:i.FooterPayment,LegalLineBlock:i.LegalLineBlock,SearchBlock:t.SearchBlock,CartBlock:t.CartBlock,CountrySwitchBlock:t.CountrySwitchBlock,AccountBlock:t.AccountBlock,ThemeSwitchBlock:t.ThemeSwitchBlock,[Q]:i.SiteHeader,[X]:i.SiteFooter}};Ke(f.components);{const o=f.components.MenuBlock;o.fields={...o.fields,direction:g("Direction",l(be,{}),[{label:C.column,value:"column"},{label:C.row,value:"row"}],F)};const n={type:"custom",render:({value:s,onChange:d})=>l(J,{value:s,onChange:d})},m=h({type:"custom",render:({value:s,onChange:d})=>l(Fe,{parts:Qe,changed:s===!0,shown:()=>s===!0,onPress:(S,y)=>d(y),onReset:()=>d(void 0)})},{not:{field:"direction",is:"column",default:F}});o.fields=Object.fromEntries(Object.entries(o.fields).flatMap(([s,d])=>s==="menu"?[[s,d],["linkRange",n],["currentPage",m]]:[[s,d]])),o.fields={...o.fields,linkAlign:Ae({label:"Link alignment"}),menuStyle:h(g("Menu style",l(ke,{}),[{label:"Plain",value:G},{label:"Tabs",value:U}],G),{not:{field:"direction",is:"column",default:F}})};for(const s of["linkRange","linkAlign"])o.fields[s]=h(o.fields[s],{not:{field:"menuStyle",is:U}})}{const o=f.components.Header,n=o.render;o.render=m=>m.editor?.isEditing?l(Ue,{editing:!0}):n(m)}const lt=Ve(f),lo=lt.sectionGroupAllow;var no=f;export{lo as SECTION_GROUP_ALLOW,f as config,no as default,$e as subscribePopupFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{registerSectionTextRegions as r}from"efficient-web-builder/format/lib/sections/section-text-regions";import{PRODUCT_PRICE_TEXT_REGIONS as o}from"../../../render/lib/sections/product-price-text-regions.js";r({ProductPrice:o});
|
|
1
|
+
import{registerSectionTextRegions as r}from"efficient-web-builder/format/lib/sections/section-text-regions";import{PRODUCT_PRICE_TEXT_REGIONS as o}from"../../../render/lib/sections/product-price-text-regions.js";import{PRODUCT_EYEBROW_TEXT_REGIONS as E,PRODUCT_NAME_TEXT_REGIONS as T}from"../../../render/lib/sections/product-card-text-regions.js";r({ProductPrice:o,ProductEyebrow:E,ProductName:T});
|
|
@@ -12,8 +12,8 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
12
12
|
readonly "A detail of this record": "A detail of this record";
|
|
13
13
|
readonly "A few quick picks and we show the right option for you.": "A few quick picks and we show the right option for you.";
|
|
14
14
|
readonly "A line about it appears here.": "A line about it appears here.";
|
|
15
|
-
readonly "A note about how these are matched.": "A note about how these are matched.";
|
|
16
15
|
readonly "A number, @name or an ID": "A number, @name or an ID";
|
|
16
|
+
readonly "A sample. On the live page each size shows its own verdict for the shopper's car.": "A sample. On the live page each size shows its own verdict for the shopper's car.";
|
|
17
17
|
readonly "A short description of your newsletter or publication.": "A short description of your newsletter or publication.";
|
|
18
18
|
readonly "A short summary of the post appears here.": "A short summary of the post appears here.";
|
|
19
19
|
readonly "A subhead.": "A subhead.";
|
|
@@ -54,7 +54,6 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
54
54
|
readonly "Apps from": "Apps from";
|
|
55
55
|
readonly "Archive button": "Archive button";
|
|
56
56
|
readonly "Archive link": "Archive link";
|
|
57
|
-
readonly Arrangement: "Arrangement";
|
|
58
57
|
readonly "Article Body": "Article Body";
|
|
59
58
|
readonly "Ask for the car first": "Ask for the car first";
|
|
60
59
|
readonly "Authorization expired \u2014 try again in a moment.": "Authorization expired — try again in a moment.";
|
|
@@ -85,6 +84,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
85
84
|
readonly "Build it out of Boxes and blocks: the logo, menu, search, region and cart become blocks you can move. Your current header is kept.": "Build it out of Boxes and blocks: the logo, menu, search, region and cart become blocks you can move. Your current header is kept.";
|
|
86
85
|
readonly "Bump Profile": "Bump Profile";
|
|
87
86
|
readonly "Bundles containing this product appear here on a product page.": "Bundles containing this product appear here on a product page.";
|
|
87
|
+
readonly Buy: "Buy";
|
|
88
88
|
readonly CSV: "CSV";
|
|
89
89
|
readonly Call: "Call";
|
|
90
90
|
readonly "Call button": "Call button";
|
|
@@ -183,7 +183,6 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
183
183
|
readonly "Empty basket": "Empty basket";
|
|
184
184
|
readonly "Encrypted in transit": "Encrypted in transit";
|
|
185
185
|
readonly End: "End";
|
|
186
|
-
readonly Enquire: "Enquire";
|
|
187
186
|
readonly "Enquire about tyres": "Enquire about tyres";
|
|
188
187
|
readonly "Even columns": "Even columns";
|
|
189
188
|
readonly "Even grid": "Even grid";
|
|
@@ -221,6 +220,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
221
220
|
readonly "First room": "First room";
|
|
222
221
|
readonly "First-name label": "First-name label";
|
|
223
222
|
readonly "First-name placeholder": "First-name placeholder";
|
|
223
|
+
readonly "Fitment answer": "Fitment answer";
|
|
224
224
|
readonly "Fitment picker": "Fitment picker";
|
|
225
225
|
readonly Fits: "Fits";
|
|
226
226
|
readonly Flag: "Flag";
|
|
@@ -275,7 +275,6 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
275
275
|
readonly "Image gallery": "Image gallery";
|
|
276
276
|
readonly "Image shape": "Image shape";
|
|
277
277
|
readonly "Image source": "Image source";
|
|
278
|
-
readonly "Image tag": "Image tag";
|
|
279
278
|
readonly Images: "Images";
|
|
280
279
|
readonly "Images from": "Images from";
|
|
281
280
|
readonly "Images to show": "Images to show";
|
|
@@ -349,6 +348,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
349
348
|
readonly "Menu Item": "Menu Item";
|
|
350
349
|
readonly "Menu link": "Menu link";
|
|
351
350
|
readonly "Menu row": "Menu row";
|
|
351
|
+
readonly "Menu style": "Menu style";
|
|
352
352
|
readonly "Message form": "Message form";
|
|
353
353
|
readonly "Message us": "Message us";
|
|
354
354
|
readonly "Messaging Strip": "Messaging Strip";
|
|
@@ -443,6 +443,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
443
443
|
readonly "Pick a product\u2026": "Pick a product…";
|
|
444
444
|
readonly "Pick the products yourself below, or choose \u201CAll products\u201D or a category from {place}.": "Pick the products yourself below, or choose “All products” or a category from {place}.";
|
|
445
445
|
readonly Pickup: "Pickup";
|
|
446
|
+
readonly Picture: "Picture";
|
|
446
447
|
readonly Pills: "Pills";
|
|
447
448
|
readonly "Pinning one overrides the section\u2019s Cover image.": "Pinning one overrides the section’s Cover image.";
|
|
448
449
|
readonly "Pools every product\u2019s grouped media: each one\u2019s Relative / lifestyle photos feed Gallery A, its Product photos Gallery B and its Others the Others gallery. Every media group becomes a card, attributed to its own product (title, link and tag). Narrow the set with the Category filter above. Headings, intro copy and stats stay yours.": "Pools every product’s grouped media: each one’s Relative / lifestyle photos feed Gallery A, its Product photos Gallery B and its Others the Others gallery. Every media group becomes a card, attributed to its own product (title, link and tag). Narrow the set with the Category filter above. Headings, intro copy and stats stay yours.";
|
|
@@ -463,6 +464,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
463
464
|
readonly "Product Gallery": "Product Gallery";
|
|
464
465
|
readonly "Product content": "Product content";
|
|
465
466
|
readonly "Product link": "Product link";
|
|
467
|
+
readonly "Product page link": "Product page link";
|
|
466
468
|
readonly "Product photos": "Product photos";
|
|
467
469
|
readonly "Product story": "Product story";
|
|
468
470
|
readonly "Product type": "Product type";
|
|
@@ -500,10 +502,8 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
500
502
|
readonly Rim: "Rim";
|
|
501
503
|
readonly "Rim Profile": "Rim Profile";
|
|
502
504
|
readonly "Routing groups": "Routing groups";
|
|
503
|
-
readonly Row: "Row";
|
|
504
505
|
readonly "Row shape": "Row shape";
|
|
505
506
|
readonly "Row {n}": "Row {n}";
|
|
506
|
-
readonly Rows: "Rows";
|
|
507
507
|
readonly "Rows from": "Rows from";
|
|
508
508
|
readonly S: "S";
|
|
509
509
|
readonly "STP \u00B7 STEP \u00B7 DXF \u00B7 PDF": "STP · STEP · DXF · PDF";
|
|
@@ -579,13 +579,11 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
579
579
|
readonly "Space from the logo": "Space from the logo";
|
|
580
580
|
readonly "Spec table": "Spec table";
|
|
581
581
|
readonly "Specifications *table.*": "Specifications *table.*";
|
|
582
|
-
readonly Specs: "Specs";
|
|
583
582
|
readonly "Speed rating": "Speed rating";
|
|
584
583
|
readonly "Staggered spread": "Staggered spread";
|
|
585
584
|
readonly "Status rail": "Status rail";
|
|
586
585
|
readonly Step: "Step";
|
|
587
586
|
readonly "Sticky header": "Sticky header";
|
|
588
|
-
readonly "Stock fitment": "Stock fitment";
|
|
589
587
|
readonly "Storefront \u203A Settings \u203A Regions & currencies": "Storefront › Settings › Regions & currencies";
|
|
590
588
|
readonly "Storefront \u2192 Booking Services": "Storefront → Booking Services";
|
|
591
589
|
readonly "Storefront \u2192 Catalog": "Storefront → Catalog";
|
|
@@ -622,6 +620,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
622
620
|
readonly "That didn\u2019t come back \u2014 pick the form from the list, or try again.": "That didn’t come back — pick the form from the list, or try again.";
|
|
623
621
|
readonly "The EU label appears here for every size with an EPREL registration number. It is read live from the registry and never stored.": "The EU label appears here for every size with an EPREL registration number. It is read live from the registry and never stored.";
|
|
624
622
|
readonly "The banner's words follow each visitor's country. Turn consent on or off, and pick the privacy page, in Admin \u203A Storefront \u203A Marketing \u203A Privacy.": "The banner's words follow each visitor's country. Turn consent on or off, and pick the privacy page, in Admin › Storefront › Marketing › Privacy.";
|
|
623
|
+
readonly "The card is empty. Add parts to its card template in Layers.": "The card is empty. Add parts to its card template in Layers.";
|
|
625
624
|
readonly "The color the bar paints once it is solid \u2014 after any scroll, and on every product page from the first paint. Follow the site theme keeps it on whatever palette the site is on.": "The color the bar paints once it is solid — after any scroll, and on every product page from the first paint. Follow the site theme keeps it on whatever palette the site is on.";
|
|
626
625
|
readonly "The header settings could not be read. Try again.": "The header settings could not be read. Try again.";
|
|
627
626
|
readonly "The linked menu": "The linked menu";
|