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.
- package/CHANGELOG.md +13 -0
- package/dist/chunks/{EditorPreviewCheckout-3NVDTH56.js → EditorPreviewCheckout-4XHYYAT2.js} +1 -1
- package/dist/chunks/{SiteEditorProvider-77K7CGYZ.js → SiteEditorProvider-X4YKBAJ4.js} +1 -1
- package/dist/chunks/{chunk-F3MB7QCR.js → chunk-KKKMX6LH.js} +1 -1
- package/dist/chunks/{chunk-VJLQXB7I.js → chunk-NFXV7HDB.js} +1 -1
- package/dist/chunks/chunk-NNBMZAW4.js +340 -0
- package/dist/chunks/chunk-VG4SUIRK.js +1 -0
- package/dist/chunks/{chunk-VYOK2XBF.js → chunk-Y5LB56KB.js} +1 -1
- package/dist/chunks/{fitment-data-PWXEDMOA.js → fitment-data-2I2FDPXW.js} +1 -1
- package/dist/contract.js +2 -2
- package/dist/editor/lib/document/blocks/commerce/DetailRows/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
- package/dist/editor/lib/document/config.d.ts +1 -0
- package/dist/editor/lib/document/config.js +1 -1
- package/dist/editor/lib/document/popup-look-fields.d.ts +4 -0
- package/dist/editor/lib/document/popup-look-fields.js +1 -0
- package/dist/editor/lib/efficient-backend.js +1 -1
- package/dist/editor/lib/storefront-editor-words.d.ts +8 -1
- package/dist/editor/lib/storefront-editor-words.js +1 -1
- package/dist/editor.css +1 -1
- package/dist/index.js +124 -52
- package/dist/render/app/globals.css +156 -0
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/CartContext.d.ts +1 -0
- package/dist/render/components/CartContext.js +1 -1
- package/dist/render/components/CartDrawer.d.ts +4 -3
- package/dist/render/components/CartDrawer.js +1 -4
- package/dist/render/components/DetailRows.d.ts +6 -1
- package/dist/render/components/DetailRows.js +1 -1
- package/dist/render/components/PopupFrame.d.ts +10 -1
- package/dist/render/components/PopupFrame.js +5 -1
- package/dist/render/components/Reviews.d.ts +1 -0
- package/dist/render/components/Reviews.js +1 -1
- package/dist/render/components/SpecTable.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicDetailRows.d.ts +2 -0
- package/dist/render/components/pdp-dynamic/DynamicDetailRows.js +1 -1
- package/dist/render/lib/document/blocks/commerce/DetailRows/meta.d.ts +6 -0
- package/dist/render/lib/document/blocks/commerce/DetailRows/meta.js +1 -1
- package/dist/render/lib/document/blocks/commerce/DetailRows/render.js +1 -1
- package/dist/render/lib/document/card-templates.js +1 -1
- package/dist/render/lib/document/current-record.d.ts +4 -15
- package/dist/render/lib/document/current-record.js +1 -1
- package/dist/render/lib/document/render-config.d.ts +1 -0
- package/dist/render/lib/document/render-config.js +1 -1
- package/dist/render/lib/document/section-to-box-rows-detail.d.ts +2 -0
- package/dist/render/lib/document/section-to-box-rows-detail.js +1 -0
- package/dist/render/lib/document/section-to-box-rows-reviews.js +1 -1
- package/dist/render/lib/document/section-to-box-rows-spec.js +1 -1
- package/dist/render/lib/document/storefront-root.js +1 -1
- package/dist/render/lib/sections/section-band.d.ts +6 -0
- package/dist/render/lib/sections/section-band.js +1 -1
- package/dist/render/lib/sections/spec-table-band.d.ts +4 -0
- package/dist/render/lib/sections/spec-table-band.js +1 -0
- package/dist/words.d.ts +34 -12
- package/dist/words.js +5 -5
- package/package.json +4 -3
- package/dist/chunks/chunk-5EQD5D3L.js +0 -340
- package/dist/chunks/chunk-DQFD2BJD.js +0 -1
- /package/dist/chunks/{chunk-5EQD5D3L.js.LEGAL.txt → chunk-NNBMZAW4.js.LEGAL.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as l,Fragment as x,jsxs as N}from"react/jsx-runtime";import{assignSectionGroups as H,reseatBucketTabs as M}from"efficient-web-builder/editor/lib/document/field-groups";import{buildBlockCategories as G}from"efficient-web-builder/format/lib/document/section-catalog";import{FONT_ROLES as U,FONT_ROLE_LABELS as K}from"efficient-web-builder/format/lib/fonts";import{CONTAINER_DIRECTION_LABELS as B}from"efficient-web-builder/format/lib/content/container-direction";import{SITE_FOOTER_TYPE as W,SITE_HEADER_TYPE as j}from"efficient-web-builder/format/lib/document/section-groups";import Y from"../../components/MenuLinkRangeField.js";import q from"../../components/EditorPreviewChat.js";import z from"../../components/EditorPreviewSurface.js";import{isSystemPageSlug as V,POPUP_DAYS_RANGE as k,POPUP_DELAY_RANGE as E,POPUP_HIDE_AFTER as X,POPUP_SCROLL_RANGE as F,POPUP_SHOW_ON as Q,POPUP_TRIGGERS as O,SUBSCRIBE_POPUP_DEFAULTS as J,SUBSCRIBE_POPUP_KIND as Z}from"efficient-web-builder/format/lib/content/subscribe";import{shownForOption as b,withRowRules as $}from"efficient-web-builder/render/lib/document/show-when";import{POPUP_KIND_PROP as ee,POPUP_TEXT_KIND_LABELS as _,POPUP_TEXT_KINDS as te}from"efficient-web-builder/format/lib/popup/text-kinds";import{loadPages as oe}from"efficient-web-builder/editor/components/StorefrontLinkField";import{pagePath as re}from"../../../render/lib/links/link-rules.js";import{getEditorSiteId as ie}from"efficient-web-builder/render/lib/editor-site";import{CART_DRAWER_DEFAULTS as ae,CART_DRAWER_KIND as L}from"efficient-web-builder/format/lib/content/cart-drawer";import{CONSENT_BANNER_KIND as C}from"efficient-web-builder/format/lib/content/consent-banner";import{consentBannerLayoutField as le}from"../../components/ConsentBannerLayoutTiles.js";import{CategoryIcon as ne,CheckIcon as se,ClockIcon as f,ColumnsIcon as ce,DirectionIcon as me,EyeIcon as ue,ListIcon as de,PageIcon as pe,PlacementIcon as ge,ScrollPointIcon as Pe,TriggerIcon as be}from"efficient-easel/icons";import{deviceField as v}from"efficient-easel/screen/lib/document/device-fields";import{FieldGlyph as fe}from"efficient-web-builder/editor/components/FieldGlyph";import{multiSelect as Se,panelNote as he,plainText as a,plainTextarea as u,sectionShapeFields as Te,sectionThemeFields as ye,textList as S,toggle as R}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 A,slider as h}from"efficient-web-builder/editor/lib/document/box-fields";import{blockAlignRow as Be}from"./block-align-row.js";import{formPicker as ke}from"./blocks/service/controls.js";import{SECTION_THEME_FOLLOW_LABEL as Ee}from"efficient-web-builder/editor/components/SectionThemePicker";import{nestedAccentValue as Fe}from"efficient-web-builder/format/lib/content/section-surface";import{isEditorOnDynamicPage as Oe}from"efficient-web-builder/format/lib/document/editor-page-context";import{TEMPLATE_PRODUCT_TYPE_PROP as _e}from"efficient-web-builder/format/lib/content/product-page";import{PRODUCT_KIND_OPTIONS as Le}from"../../../render/lib/catalog/plp-item.js";import{PH as T}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{textKindGlyph as Ce}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"./section-text-regions.js";import{generalBlocks as e}from"efficient-web-builder/editor/lib/document/blocks/general/index";import{commerceBlocks as o}from"./blocks/commerce/index.js";import{serviceBlocks as i}from"./blocks/service/index.js";import{EditorThemedBody as ve,suppressPreviewNav as Re}from"efficient-web-builder/editor/lib/document/page-root";import Ae from"../../components/HeaderSection.js";import{addPageBlocksFromFooter as De,PAGE_MENU_DIRECTION_DEFAULT as we}from"../../../render/lib/document/footer-page-blocks.js";import{drawPopupPage as Ie,drawPublishedStorefrontRoot as xe,drawSystemPage as Ne,StorefrontPageProviders as He}from"../../../render/lib/document/storefront-root.js";import{GENERAL_ROOT_FIELDS as Me}from"efficient-web-builder/editor/lib/document/page-root-fields";import{finishRegistry as Ge}from"efficient-web-builder/editor/lib/document/registry";const Ue="Newsletter (built in)",Yt=[{value:"00",label:T.label},{value:"00",label:T.label},{value:"00",label:T.label}],t=J,g={field:"autoOpen",is:!0},Ke={all:[b("hideAfter",X,t.hideAfter,["days"]),{not:{all:[{field:"hideAfter",is:null,default:null},{field:"oncePerSession",in:[!0,!1]}]}}]},We=[[["trigger","showOn","hideAfter"],g],[["autoOpenDelaySec"],{all:[g,b("trigger",O,t.trigger,["delay","exit"])]}],[["scrollPercent"],{all:[g,b("trigger",O,t.trigger,["scroll"])]}],[["showOnPages"],{all:[g,b("showOn",Q,t.showOn,["chosen"])]}],[["hideDays"],{all:[g,Ke]}]],je=$({formSlug:ke(void 0,Ue),_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:r=>r?.label||r?.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:S("Interest chips",l(fe,{noun:"tag"}),"Chip label","verbatim"),frequencyLabel:a("Frequency label",t.frequencyLabel),frequencies:S("Frequency options",l(de,{}),"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),...ye(Fe,Ee),...Te(),_gTextStyle:c("Text style"),...Object.fromEntries(te.map(r=>[ee[r],A(_[r],Ce(_[r]),[{label:"Popup's own",value:""},...U.map(n=>({label:K[n],value:n}))],"")])),_gBehaviour:c("Behavior"),autoOpen:R("Show by itself",t.autoOpen,l(ue,{})),trigger:p("Trigger",l(be,{}),[{label:"Delay",value:"delay"},{label:"Scroll",value:"scroll"},{label:"Exit",value:"exit"}],t.trigger),autoOpenDelaySec:h("Delay",l(f,{}),E.min,E.max,1,t.autoOpenDelaySec,"s"),scrollPercent:h("Scroll",l(Pe,{}),F.min,F.max,5,t.scrollPercent,"%"),showOn:p("Pages",l(pe,{}),[{label:"All",value:"all"},{label:"Chosen",value:"chosen"}],t.showOn),showOnPages:Se("Chosen pages",[],"None"),hideAfter:p("After close",l(f,{}),[{label:"This visit",value:"visit"},{label:"Days",value:"days"},{label:"Never",value:"never"}],t.hideAfter),hideDays:h("Days",l(f,{}),k.min,k.max,1,t.hideDays),_gArrangement:c("Arrangement"),formSide:p("Form side",l(ge,{}),[{label:"Right",value:"right"},{label:"Left",value:"left"}],t.formSide),_gPhone:v("mobile",c("On a phone")),valuePanelOnPhone:v("mobile",R("Left panel",t.valuePanelOnPhone,l(ce,{})))},We),D=H(je,"SubscribePopup");async function Ye(){return(await oe(ie()??"")).filter(n=>!V(n.slug)).map(n=>({label:n.label,value:re(n.slug)}))}async function qe(){return M({...D,showOnPages:{...D.showOnPages,options:await Ye().catch(()=>[])}})}const m=ae,ze={_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:S("Trust markers",l(se,{}),"Marker","verbatim"),_gEmpty:c("Empty basket"),emptyKicker:a("Eyebrow",m.emptyKicker),emptyBody:u("Message",m.emptyBody)},Ve={layout:le,_nConsentWhere:he("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 Xe({kind:r}){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:r===L?"This is the cart drawer — edit its copy in the Settings panel →":r===C?"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:{...Me},resolveFields:async(r,{fields:n})=>{if(r?.props?.kind===Z)return qe();if(r?.props?.kind===L)return ze;if(r?.props?.kind===C)return Ve;const s=n;return Oe()?{[_e]:A("Product type",l(ne,{}),Le,"alloy-wheel"),...s}:s},render:r=>{const{editor:n,pageBackground:s,theme:d,fonts:w}=r;if(!n?.isEditing)return xe(r);const y=Ne(r,l(Xe,{kind:r.kind}));if(y)return y;const I=Ie(r,!0);return l(ve,{propsTheme:d,propsFonts:w,pageBackground:typeof s=="string"?s:void 0,suppressPreviewNav:Re,overlay:N(x,{children:[l(q,{}),l(z,{})]}),children:I??l(He,{rootProps:r,children:r.children})})}},categories:G(),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:o.Collections,CollectionCard:o.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:o.Gallery,GalleryB:o.GalleryB,SpecStrip:e.SpecStrip,GalleryItem:o.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:o.CatalogFilterBar,AlloyWheelsListing:o.AlloyWheelsListing,ProductGrid:o.ProductGrid,ProductHero:o.ProductHero,ProductGallery:o.ProductGallery,SpecTable:o.SpecTable,ProcessSteps:e.ProcessSteps,DetailRows:o.DetailRows,FitmentTable:o.FitmentTable,RelatedProducts:o.RelatedProducts,BundleOffer:o.BundleOffer,CompatibleTyres:o.CompatibleTyres,TyreSizes:o.TyreSizes,TyreFitment:o.TyreFitment,EuTyreLabel:o.EuTyreLabel,EuTyreLabelBlock:o.EuTyreLabelBlock,ProductSize:o.ProductSize,ProductColour:o.ProductColour,ProductPrice:o.ProductPrice,FitmentFinder:o.FitmentFinder,OrderSummary:e.OrderSummary,DeliveryOptions:o.DeliveryOptions,PaymentBadges:e.PaymentBadges,CheckoutCTA:o.CheckoutCTA,ProductRef:o.ProductRef,CustomHTML:e.CustomHTML,Header:o.Header,Footer:i.Footer,FooterLogo:i.FooterLogo,FooterMenu:i.FooterMenu,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:o.SearchBlock,CartBlock:o.CartBlock,CountrySwitchBlock:o.CountrySwitchBlock,AccountBlock:o.AccountBlock,ThemeSwitchBlock:o.ThemeSwitchBlock,[j]:i.SiteHeader,[W]:i.SiteFooter}};De(P.components);{const r=P.components.MenuBlock;r.fields={...r.fields,direction:p("Direction",l(me,{}),[{label:B.column,value:"column"},{label:B.row,value:"row"}],we)};const n={type:"custom",render:({value:s,onChange:d})=>l(Y,{value:s,onChange:d})};r.fields=Object.fromEntries(Object.entries(r.fields).flatMap(([s,d])=>s==="menu"?[[s,d],["linkRange",n]]:[[s,d]])),r.fields={...r.fields,linkAlign:Be({label:"Link alignment"})}}{const r=P.components.Header,n=r.render;r.render=s=>s.editor?.isEditing?l(Ae,{editing:!0}):n(s)}const Qe=Ge(P),qt=Qe.sectionGroupAllow;var zt=P;export{qt as SECTION_GROUP_ALLOW,P as config,zt as default,je as subscribePopupFields};
|
|
1
|
+
import{jsx as l,Fragment as G,jsxs as U}from"react/jsx-runtime";import{assignSectionGroups as k,reseatBucketTabs as E}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 F}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 oe}from"efficient-web-builder/render/lib/document/show-when";import{POPUP_KIND_PROP as te,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 R}from"efficient-web-builder/format/lib/popup/look";import{popupLookFields as se}from"./popup-look-fields.js";import{CONSENT_BANNER_KIND as A}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 Ee,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 Fe}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 Re}from"../../../render/lib/catalog/plp-item.js";import{PH as y}from"efficient-web-builder/format/lib/document/blocks/placeholders";import{textKindGlyph as Ae}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)",$o=[{value:"00",label:y.label},{value:"00",label:y.label},{value:"00",label:y.label}],o=$,g={field:"autoOpen",is:!0},Ye={all:[b("hideAfter",J,o.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,o.trigger,["delay","exit"])]}],[["scrollPercent"],{all:[g,b("trigger",C,o.trigger,["scroll"])]}],[["showOnPages"],{all:[g,b("showOn",Z,o.showOn,["chosen"])]}],[["hideDays"],{all:[g,Ye]}]],ze=oe({formSlug:Oe(void 0,je),_gLeft:c("Left panel"),metaLabel:a("Meta label",o.metaLabel),issueLabel:a("Issue label",o.issueLabel),issueNumber:a("Issue number",o.issueNumber),kicker:a("Eyebrow",o.kicker),heading:u("Heading",o.heading),deck:u("Deck",o.deck),stats:{type:"array",label:"Stats",arrayFields:{label:a("Label"),value:a("Value")},getItemSummary:t=>t?.label||t?.value||"Stat"},_gForm:c("Right panel · form"),formLabel:a("Section label",o.formLabel),formHeading:a("Heading",o.formHeading),formIntro:u("Intro",o.formIntro),firstNameLabel:a("First-name label",o.firstNameLabel),firstNamePlaceholder:a("First-name placeholder",o.firstNamePlaceholder),emailLabel:a("Email label",o.emailLabel),emailPlaceholder:a("Email placeholder",o.emailPlaceholder),_gChoices:c("Right panel · choices"),interestsLabel:a("Interests label",o.interestsLabel),interests:h("Interest chips",l(Te,{noun:"tag"}),"Chip label","verbatim"),frequencyLabel:a("Frequency label",o.frequencyLabel),frequencies:h("Frequency options",l(Pe,{}),"Option label","verbatim"),_gActions:c("Right panel · actions"),submitText:a("Submit button",o.submitText),finePrint:a("Fine print",o.finePrint),dismissText:a("Dismiss link",o.dismissText),emailInvalidText:a("Invalid-email error",o.emailInvalidText),submitErrorText:a("Submit-failed error",o.submitErrorText),_gSuccess:c("Success state"),successHeading:a("Heading",o.successHeading),successBody:u("Message",o.successBody),keepBrowsingText:a("Dismiss button",o.keepBrowsingText),...Ee(Le,_e),...ke(),_gTextStyle:c("Text style"),...Object.fromEntries(re.map(t=>[te[t],I(v[t],Ae(v[t]),[{label:"Popup's own",value:""},...W.map(n=>({label:j[n],value:n}))],"")])),_gBehaviour:c("Behavior"),autoOpen:w("Show by itself",o.autoOpen,l(ge,{})),trigger:p("Trigger",l(he,{}),[{label:"Delay",value:"delay"},{label:"Scroll",value:"scroll"},{label:"Exit",value:"exit"}],o.trigger),autoOpenDelaySec:T("Delay",l(S,{}),_.min,_.max,1,o.autoOpenDelaySec,"s"),scrollPercent:T("Scroll",l(Se,{}),L.min,L.max,5,o.scrollPercent,"%"),showOn:p("Pages",l(be,{}),[{label:"All",value:"all"},{label:"Chosen",value:"chosen"}],o.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"}],o.hideAfter),hideDays:T("Days",l(S,{}),O.min,O.max,1,o.hideDays),_gArrangement:c("Arrangement"),formSide:p("Form side",l(fe,{}),[{label:"Right",value:"right"},{label:"Left",value:"left"}],o.formSide),_gPhone:D("mobile",c("On a phone")),valuePanelOnPhone:D("mobile",w("Left panel",o.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 E({...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=(t,n,s)=>E({...t,...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:t}){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:t===f?"This is the cart drawer — edit its copy in the Settings panel →":t===A?"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(t,{fields:n})=>{if(t?.props?.kind===ee)return Xe();if(t?.props?.kind===R)return N(n,R,"PopupPage");if(t?.props?.kind===f)return Je;if(t?.props?.kind===A)return Ze;const s=n;return Ce()?{[ve]:I("Product type",l(me,{}),Re,"alloy-wheel"),...s}:s},render:t=>{const{editor:n,pageBackground:s,theme:d,fonts:H}=t;if(!n?.isEditing)return Me(t);const B=Ge(t,l($e,{kind:t.kind}));if(B)return B;const M=He(t,!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:t,children:t.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,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,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 t=P.components.MenuBlock;t.fields={...t.fields,direction:p("Direction",l(pe,{}),[{label:F.column,value:"column"},{label:F.row,value:"row"}],Ne)};const n={type:"custom",render:({value:s,onChange:d})=>l(z,{value:s,onChange:d})};t.fields=Object.fromEntries(Object.entries(t.fields).flatMap(([s,d])=>s==="menu"?[[s,d],["linkRange",n]]:[[s,d]])),t.fields={...t.fields,linkAlign:Fe({label:"Link alignment"})}}{const t=P.components.Header,n=t.render;t.render=s=>s.editor?.isEditing?l(Ie,{editing:!0}):n(s)}const eo=We(P),et=eo.sectionGroupAllow;var ot=P;export{et as SECTION_GROUP_ALLOW,P as config,ot as default,ze as subscribePopupFields};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CART_DRAWER_KIND } from "efficient-web-builder/format/lib/content/cart-drawer";
|
|
2
|
+
import { POPUP_PAGE_KIND } from "efficient-web-builder/format/lib/popup/look";
|
|
3
|
+
export type FrameKind = typeof POPUP_PAGE_KIND | typeof CART_DRAWER_KIND;
|
|
4
|
+
export declare function popupLookFields(kind: FrameKind): Record<string, unknown>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{CloseIcon as h,CursorClickIcon as f,EyeIcon as _,FullWidthIcon as O,HeightIcon as C,OpacityIcon as I,PlacementIcon as P,WidthIcon as g}from"efficient-easel/icons";import{group as l}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as w}from"efficient-easel/screen/lib/document/device-fields";import{placementField as b,select as n,slider as c}from"efficient-web-builder/editor/lib/document/box-fields";import{colorInput as v,toggle as r}from"efficient-web-builder/editor/lib/document/controls";import{CART_DRAWER_KIND as E,resolveCartDrawerLook as R}from"efficient-web-builder/format/lib/content/cart-drawer";import{POPUP_LOOK_DEFAULTS as T,POPUP_TINT_OPACITY_RANGE as u,POPUP_WIDTH_RANGE as a}from"efficient-web-builder/format/lib/popup/look";import{withRowRules as k}from"efficient-web-builder/render/lib/document/show-when";const N={label:"Inside",value:"inside"},W={label:"None",value:"none"};function s(o){return Object.fromEntries(Object.entries(o).map(([t,e])=>[t,w("desktop",e)]))}function m(o,t){return{_gDesign:l("Color"),tintColor:v("Tint color",o),tintOpacity:c("Tint opacity",i(I,{}),u.min,u.max,5,t,"%")}}function d(o,t){return{_gBehavior:l("Behavior"),outsideClick:r("Outside click",o,i(f,{})),...t}}const A=[["outsideClick"],{not:{field:"closeButton",is:"none"}}];function p(o){return c("Width",i(g,{}),a.min,a.max,4,o,"px")}function H(o){if(o===E){const e=R(void 0);return s({_gSize:l("Width"),width:p(e.width),_gPosition:l("Placement"),placement:n("Placement",i(P,{}),[{label:"Right",value:"right"},{label:"Left",value:"left"}],e.placement),...m(e.tintColor,e.tintOpacity),...d(e.outsideClick,{autoOpen:r("Auto open",e.autoOpen,i(_,{}))})})}const t=T;return k(s({_gSize:l("Width"),width:p(t.width),height:n("Height",i(C,{}),[{label:"Auto",value:"auto"},{label:"Full",value:"full"}],t.height),_gPosition:l("Placement"),placement:b("Placement",{fallback:t.placement}),fullWidth:r("Full width",t.fullWidth,i(O,{})),...m(t.tintColor,t.tintOpacity),...d(t.outsideClick,{closeButton:n("Close button",i(h,{}),[N,{label:"Outside",value:"outside"},W],t.closeButton)})}),[[["width"],{not:{field:"fullWidth",is:!0}}],A])}export{H as popupLookFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{readLockHolder as M}from"efficient-easel/edit-lock";import{AmbiguousPageSlugError as U,ApiError as k,SERVER_UNREACHABLE_MESSAGE as x,STATUS_NETWORK_ERROR as F,setEditorLanguage as H,setEditorPortalAudience as K,storefrontAdmin as o}from"../../render/lib/api/index.js";import{AdminSectionTemplateStore as N}from"./api/section-templates.js";import{registerServedBlockSources as D}from"./efficient-block-sources.js";import{registerRecordTypes as G}from"efficient-web-builder/format/lib/content/record-types";import{uploadLimits as z}from"../../render/lib/api/upload-limits.js";import{SITE_FOOTER_SLUG as $}from"efficient-web-builder/format/lib/content/footer";import{SOCIAL_PLATFORMS as _,socialUrlField as E}from"efficient-web-builder/format/lib/content/social-links";import{EFFICIENT_BACKEND as V,currentEaselSession as P,provideDefaultBackend as W}from"efficient-easel/screen/lib/session";import{loadEditorSiteSlug as Y}from"efficient-web-builder/editor/lib/editor-site-slug";import{editorPreviewHref as q,originIsSiteAmbiguous as J}from"efficient-web-builder/format/lib/editor/preview-href";import{postPath as Q}from"../../render/lib/links/link-rules.js";import{absolutizeApiUrl as X,efficientMediaResolve as Z}from"efficient-web-builder/render/lib/media";import{HOME_PAGE_SLUG as ee}from"efficient-web-builder/format/lib/document/home-page";import{groupPagesForMenu as te,pageMenuLabel as T}from"../../render/lib/storefront-page-groups.js";import{PAGE_CONFLICT_CODE as L}from"efficient-easel/screen/lib/failure";import{shopRouteBase as ne}from"efficient-web-builder/format/lib/web-runtime";import{WebsiteBackendError as f,provideHostFailures as ae}from"efficient-easel/screen/lib/backend-error";const A=n=>n.layout_updated_at??n.updated_at??null,ie=["live","changed","never"],R=n=>ie.includes(n.live_state)?{live:n.live_state}:{};function se(n){if(!n||typeof n!="object")return null;const s=n;return s.code!==L?null:{savedBy:typeof s.saved_by=="string"?s.saved_by:"",savedByYou:s.saved_by_you===!0,secondsAgo:typeof s.seconds_ago=="number"?s.seconds_ago:0}}function oe(n){return n===401||n===403?"unauthorized":n===404?"not-found":n===F||n>=500?"unavailable":"invalid"}function re(n){if(!(n instanceof k))return n;if(n.status===409){const s=se(n.data);if(s)return new f("changed-elsewhere",n.message,{conflict:s,cause:n});const r=M(n.data);if(r)return new f("lock-taken",n.message,{holder:r,cause:n})}return new f(oe(n.status),n.message,{cause:n})}function le(n){if(!n||typeof n!="object"||Array.isArray(n))return null;const s=r=>{if(typeof r=="string")return r.trim()||null;const d=Array.isArray(r)?r:r&&typeof r=="object"?Object.values(r):[];for(const c of d){const m=s(c);if(m)return m}return null};for(const[r,d]of Object.entries(n)){if(r==="detail")continue;const c=s(d);if(c)return`${r}: ${c}`}return null}const I=new WeakMap;function ce(n,s){const r=ne(),d=r?new URL(r).hostname:typeof window<"u"?window.location?.hostname??null:null;let c=null;const m=s.siteId(),w=s.token();if(J(d)&&m&&w){const p=Y(w,m);I.has(p)?c=I.get(p)??null:p.then(S=>I.set(p,S))}const y=q({pageSlug:n,siteSlug:c,hostname:d});return r?`${r}${y}`:y}const ue={group:"Template pages",groupKey:"template"},B=n=>({id:n.id,slug:n.slug,label:n.title||n.slug,...ue,draft:!1});function j(n){const s=async t=>{const e=n.token();if(!e)throw new f("unauthorized","The editor has no sign-in yet.");try{return await t(e)}catch(a){throw re(a)}},r={list:t=>s(async e=>{const a=await o.listPages(e,t?.siteId);return te(a.filter(i=>i.slug!==$)).flatMap(i=>i.pages.map(l=>({id:l.id,slug:l.slug,label:T(l),group:i.group,groupKey:i.key,draft:!l.is_published,kind:l.kind??null})))}),load:t=>s(async e=>{const a="id"in t?t.id:(await o.findPageBySlug(t.slug,e,t.siteId))?.id,i=a?await o.getPageById(a,e):null;return i?{id:i.id,layout:i.layout,kind:i.kind,version:A(i),...R(i)}:null}),save:(t,e,a)=>{const{version:i}=a;return i?s(async l=>{const g=await o.saveLayout(t,e.layout,l,i,a.clientId||void 0);return{version:A(g),...R(g)}}):Promise.reject(new Error("Refusing to save this page: the editor does not know which version it is replacing. Reload the page and try again."))},version:t=>s(e=>o.getPageById(t,e).then(A)),linkTargets:t=>s(async e=>(await o.listPages(e,t?.siteId)).map(a=>({id:a.id,slug:a.slug,label:T(a),layout:a.layout??null}))),duplicate:(t,e)=>s(async a=>{const i=await o.duplicatePage(t,{title:e.title,slug:e.slug},a);return{id:i.id,slug:i.slug,label:T(i),group:i.group||null,draft:!i.is_published,kind:i.kind??null}})},d=t=>({list:()=>s(async e=>(await o.listTemplatePages(t,e)).map(B)),load:e=>s(async a=>{const i=u=>"id"in e?u.id===e.id:u.slug===e.slug,l=u=>({id:u.id,layout:u.layout,version:null}),g=await o.listTemplatePages(t,a);if(g.length)return l(g.find(i)??g[0]);const b=await o.getTemplate(t,a).catch(()=>null);try{return l(await o.createTemplatePage(t,{slug:ee,title:"Home",layout:b?.layout??{}},a))}catch{const u=await o.listTemplatePages(t,a),h=u.find(i)??u[0];return h?l(h):null}}),save:(e,a)=>s(async i=>(await o.saveTemplatePageLayout(e,a.layout,i),{version:null})),create:e=>s(async a=>B(await o.createTemplatePage(t,{slug:e.slug,title:e.title,layout:e.layout},a))),remove:(e,a)=>s(i=>o.deleteTemplatePage(e,i,a))}),c=t=>{const e=t?.siteId??n.siteId();if(!e)throw new f("not-found","This editor is not connected to a website.");return e},m=t=>({name:t.name,slug:t.slug}),w=t=>Object.fromEntries(_.map(e=>[e,t[E(e)]??""])),y={launcherColor:"launcher_color",launcherIcon:"launcher_icon",launcherPosition:"launcher_position",launcherLabel:"launcher_label",showOnPhones:"show_on_phones"},p=Object.keys(y),S=t=>{const e={enabled:t.enabled,title:t.title,subtitle:t.subtitle,greeting:t.greeting};for(const a of p){const i=t[y[a]];i!==void 0&&Object.assign(e,{[a]:i})}return e},C=t=>{const e={};for(const[a,i]of Object.entries(t))e[y[a]??a]=i;return e},O={pages:r,lock:{claim:(t,e,a)=>s(async i=>({heartbeatSeconds:(await o.claimPageEditLock(t,i,e,a)).heartbeat_seconds})),release:t=>s(e=>o.releasePageEditLock(t,e))},site:{get:t=>s(async e=>m(await o.getSite(c(t),e))),publish:t=>s(async e=>{try{const{state:a,published:i}=await o.publishSite(c(t),e);return{state:a,published:i}}catch(a){const i=a instanceof k&&a.status===400?le(a.data):null;throw i?new f("invalid",i,{cause:a}):a}}),liveState:t=>s(async e=>{const{state:a,changes:i}=await o.getSiteLiveState(c(t),e);return{state:a,changes:i}})},media:{resolve:Z,maxUploadBytes:z("POST /api/storefront/media/","file").maxSizeBytes},sectionTemplates:new N(n.token),social:{get:t=>s(async e=>w(await o.getSocialSettings(e,c(t)))),update:(t,e)=>s(async a=>{const i=Object.fromEntries(_.filter(l=>l in t).map(l=>[E(l),t[l]]));try{return w(await o.updateSocialSettings(i,a,c(e)))}catch(l){if(l instanceof k&&l.status===400){const g=l.data??{},b={};for(const u of _){const h=g[E(u)],v=Array.isArray(h)?h[0]:h;typeof v=="string"&&v.trim()&&(b[u]=v)}if(Object.keys(b).length>0)throw new f("invalid",l.message,{fields:b,cause:l})}throw l}})},theme:{get:t=>s(e=>o.getThemeSettings(e,t?.siteId)),update:(t,e)=>s(a=>o.updateThemeSettings(t,a,e?.siteId))},geocode:{locate:(t,e)=>s(async a=>{const i=await o.geocode(t,a,e?.country);if(i.status==="not_found")return null;if(i.status!=="found"||i.lat===null||i.lng===null)throw new f("unavailable","The geocoder could not answer just now.");return{lat:i.lat,lng:i.lng,label:i.label}})},chat:{get:t=>s(async e=>S(await o.getChatSettings(e,t?.siteId))),update:(t,e)=>s(async a=>S(await o.updateChatSettings(C(t),a,e?.siteId)))},blog:{posts:t=>s(async e=>(await o.listBlogPosts(e,{visibleOnly:!0,siteId:t?.siteId})).map(a=>({slug:a.slug,title:a.title,excerpt:a.excerpt,category:a.category,coverImage:a.cover_image?X(a.cover_image)??"":"",publishedAt:a.published_at,href:Q(a.slug)})))},templates:{get:t=>s(async e=>{const a=await o.getTemplate(t,e);return{id:a.id,name:a.name}}),pages:d},preview:{href:t=>ce(t,n),draftLink:t=>s(async e=>({url:(await o.createPagePreviewLink(t,e)).url??null}))}};return O[V]=!0,O}const de=["text","date"],ge=n=>n.replace(/_([a-z0-9])/g,(s,r)=>r.toUpperCase());function fe(n){if(Array.isArray(n))for(const s of n){const d=(Array.isArray(s?.fields)?s.fields:[]).filter(c=>de.includes(c.kind)).map(c=>({key:ge(c.key),label:c.label,kind:c.kind}));try{G([{key:s.key,label:s.label,fields:d}])}catch{}}}function Be(n){return P().cache("efficient:editor-offerings",()=>Promise.all([o.listBlockSources(n).then(D).catch(()=>{}),o.listRecordTypes(n).then(fe).catch(()=>{})]).then(()=>{}))}ae({read:n=>n instanceof k?{status:n.status,data:n.data,message:n.message}:null,unreachableMessage:x,loadRefusal:(n,{slug:s})=>n instanceof U?`“${s}” exists on more than one website. Open it from the site you want to edit.`:null}),W(n=>j({token:()=>n.auth.token,siteId:()=>n.siteId()}));function je(n={}){return n.portalAudience!==void 0&&K(n.portalAudience),n.language!==void 0&&H(n.language),j({token:()=>P().auth.token,siteId:()=>n.siteId??P().siteId()})}export{L as PAGE_CONFLICT_CODE,je as createEfficientBackend,R as liveOf,Be as loadEditorOfferings,A as pageVersion,le as publishRefusal,fe as registerServedRecordTypes,re as toBackendError};
|
|
1
|
+
import{readLockHolder as M}from"efficient-easel/edit-lock";import{AmbiguousPageSlugError as U,ApiError as k,SERVER_UNREACHABLE_MESSAGE as x,STATUS_NETWORK_ERROR as F,setEditorLanguage as H,setEditorPortalAudience as K,storefrontAdmin as o}from"../../render/lib/api/index.js";import{AdminSectionTemplateStore as N}from"./api/section-templates.js";import{registerServedBlockSources as D}from"./efficient-block-sources.js";import{registerRecordTypes as G}from"efficient-web-builder/format/lib/content/record-types";import{uploadLimits as z}from"../../render/lib/api/upload-limits.js";import{SITE_FOOTER_SLUG as $}from"efficient-web-builder/format/lib/content/footer";import{SOCIAL_PLATFORMS as _,socialUrlField as E}from"efficient-web-builder/format/lib/content/social-links";import{EFFICIENT_BACKEND as V,currentEaselSession as P,provideDefaultBackend as W}from"efficient-easel/screen/lib/session";import{loadEditorSiteSlug as Y}from"efficient-web-builder/editor/lib/editor-site-slug";import{editorPreviewHref as q,originIsSiteAmbiguous as J}from"efficient-web-builder/format/lib/editor/preview-href";import{postPath as Q}from"../../render/lib/links/link-rules.js";import{absolutizeApiUrl as X,efficientMediaResolve as Z}from"efficient-web-builder/render/lib/media";import{HOME_PAGE_SLUG as ee}from"efficient-web-builder/format/lib/document/home-page";import{groupPagesForMenu as te,pageMenuLabel as T}from"../../render/lib/storefront-page-groups.js";import{PAGE_CONFLICT_CODE as L}from"efficient-easel/screen/lib/failure";import{shopRouteBase as ne}from"efficient-web-builder/format/lib/web-runtime";import{WebsiteBackendError as f,provideHostFailures as ae}from"efficient-easel/screen/lib/backend-error";const A=n=>n.layout_updated_at??n.updated_at??null,ie=["live","changed","never"],R=n=>ie.includes(n.live_state)?{live:n.live_state}:{};function se(n){if(!n||typeof n!="object")return null;const s=n;return s.code!==L?null:{savedBy:typeof s.saved_by=="string"?s.saved_by:"",savedByYou:s.saved_by_you===!0,secondsAgo:typeof s.seconds_ago=="number"?s.seconds_ago:0}}function oe(n){return n===401||n===403?"unauthorized":n===404?"not-found":n===F||n>=500?"unavailable":"invalid"}function re(n){if(!(n instanceof k))return n;if(n.status===409){const s=se(n.data);if(s)return new f("changed-elsewhere",n.message,{conflict:s,cause:n});const r=M(n.data);if(r)return new f("lock-taken",n.message,{holder:r,cause:n})}return new f(oe(n.status),n.message,{cause:n})}function le(n){if(!n||typeof n!="object"||Array.isArray(n))return null;const s=r=>{if(typeof r=="string")return r.trim()||null;const d=Array.isArray(r)?r:r&&typeof r=="object"?Object.values(r):[];for(const c of d){const m=s(c);if(m)return m}return null};for(const[r,d]of Object.entries(n)){if(r==="detail")continue;const c=s(d);if(c)return`${r}: ${c}`}return null}const I=new WeakMap;function ce(n,s){const r=ne(),d=r?new URL(r).hostname:typeof window<"u"?window.location?.hostname??null:null;let c=null;const m=s.siteId(),w=s.token();if(J(d)&&m&&w){const p=Y(w,m);I.has(p)?c=I.get(p)??null:p.then(S=>I.set(p,S))}const y=q({pageSlug:n,siteSlug:c,hostname:d});return r?`${r}${y}`:y}const ue={group:"Template pages",groupKey:"template"},B=n=>({id:n.id,slug:n.slug,label:n.title||n.slug,...ue,draft:!1});function j(n){const s=async t=>{const e=n.token();if(!e)throw new f("unauthorized","The editor has no sign-in yet.");try{return await t(e)}catch(a){throw re(a)}},r={list:t=>s(async e=>{const a=await o.listPages(e,t?.siteId);return te(a.filter(i=>i.slug!==$)).flatMap(i=>i.pages.map(l=>({id:l.id,slug:l.slug,label:T(l),group:i.group,groupKey:i.key,draft:!l.is_published,kind:l.kind??null})))}),load:t=>s(async e=>{const a="id"in t?t.id:(await o.findPageBySlug(t.slug,e,t.siteId))?.id,i=a?await o.getPageById(a,e):null;return i?{id:i.id,layout:i.layout,kind:i.kind,version:A(i),...R(i)}:null}),save:(t,e,a)=>{const{version:i}=a;return i?s(async l=>{const g=await o.saveLayout(t,e.layout,l,i,a.clientId||void 0);return{version:A(g),...R(g)}}):Promise.reject(new Error("Refusing to save this page: the editor does not know which version it is replacing. Reload the page and try again."))},version:t=>s(e=>o.getPageById(t,e).then(A)),linkTargets:t=>s(async e=>(await o.listPages(e,t?.siteId)).map(a=>({id:a.id,slug:a.slug,label:T(a),layout:a.layout??null}))),duplicate:(t,e)=>s(async a=>{const i=await o.duplicatePage(t,{title:e.title,slug:e.slug},a);return{id:i.id,slug:i.slug,label:T(i),group:i.group||null,draft:!i.is_published,kind:i.kind??null}})},d=t=>({list:()=>s(async e=>(await o.listTemplatePages(t,e)).map(B)),load:e=>s(async a=>{const i=u=>"id"in e?u.id===e.id:u.slug===e.slug,l=u=>({id:u.id,layout:u.layout,version:null}),g=await o.listTemplatePages(t,a);if(g.length)return l(g.find(i)??g[0]);const b=await o.getTemplate(t,a).catch(()=>null);try{return l(await o.createTemplatePage(t,{slug:ee,title:"Home",layout:b?.layout??{}},a))}catch{const u=await o.listTemplatePages(t,a),h=u.find(i)??u[0];return h?l(h):null}}),save:(e,a)=>s(async i=>(await o.saveTemplatePageLayout(e,a.layout,i),{version:null})),create:e=>s(async a=>B(await o.createTemplatePage(t,{slug:e.slug,title:e.title,layout:e.layout},a))),remove:(e,a)=>s(i=>o.deleteTemplatePage(e,i,a))}),c=t=>{const e=t?.siteId??n.siteId();if(!e)throw new f("not-found","This editor is not connected to a website.");return e},m=t=>({name:t.name,slug:t.slug}),w=t=>Object.fromEntries(_.map(e=>[e,t[E(e)]??""])),y={launcherColor:"launcher_color",launcherIcon:"launcher_icon",launcherPosition:"launcher_position",launcherLabel:"launcher_label",showOnPhones:"show_on_phones"},p=Object.keys(y),S=t=>{const e={enabled:t.enabled,title:t.title,subtitle:t.subtitle,greeting:t.greeting};for(const a of p){const i=t[y[a]];i!==void 0&&Object.assign(e,{[a]:i})}return e},C=t=>{const e={};for(const[a,i]of Object.entries(t))e[y[a]??a]=i;return e},O={pages:r,lock:{claim:(t,e,a)=>s(async i=>({heartbeatSeconds:(await o.claimPageEditLock(t,i,e,a)).heartbeat_seconds})),release:t=>s(e=>o.releasePageEditLock(t,e))},site:{get:t=>s(async e=>m(await o.getSite(c(t),e))),publish:t=>s(async e=>{try{const{state:a,published:i}=await o.publishSite(c(t),e);return{state:a,published:i}}catch(a){const i=a instanceof k&&a.status===400?le(a.data):null;throw i?new f("invalid",i,{cause:a}):a}}),liveState:t=>s(async e=>{const{state:a,changes:i}=await o.getSiteLiveState(c(t),e);return{state:a,changes:i}})},media:{resolve:Z,maxUploadBytes:z("POST /api/storefront/media/","file").maxSizeBytes},sectionTemplates:new N(n.token),social:{get:t=>s(async e=>w(await o.getSocialSettings(e,c(t)))),update:(t,e)=>s(async a=>{const i=Object.fromEntries(_.filter(l=>l in t).map(l=>[E(l),t[l]]));try{return w(await o.updateSocialSettings(i,a,c(e)))}catch(l){if(l instanceof k&&l.status===400){const g=l.data??{},b={};for(const u of _){const h=g[E(u)],v=Array.isArray(h)?h[0]:h;typeof v=="string"&&v.trim()&&(b[u]=v)}if(Object.keys(b).length>0)throw new f("invalid",l.message,{fields:b,cause:l})}throw l}})},theme:{get:t=>s(e=>o.getThemeSettings(e,t?.siteId)),update:(t,e)=>s(a=>o.updateThemeSettings(t,a,e?.siteId))},geocode:{locate:(t,e)=>s(async a=>{const i=await o.geocode(t,a,e?.country);if(i.status==="not_found")return null;if(i.status!=="found"||i.lat===null||i.lng===null)throw new f("unavailable","The geocoder could not answer just now.");return{lat:i.lat,lng:i.lng,label:i.label}})},chat:{get:t=>s(async e=>S(await o.getChatSettings(e,t?.siteId))),update:(t,e)=>s(async a=>S(await o.updateChatSettings(C(t),a,e?.siteId)))},blog:{posts:t=>s(async e=>(await o.listBlogPosts(e,{visibleOnly:!0,siteId:t?.siteId})).map(a=>({slug:a.slug,title:a.title,excerpt:a.excerpt,category:a.category,coverImage:a.cover_image?X(a.cover_image)??"":"",publishedAt:a.published_at,href:Q(a.slug)})))},templates:{get:t=>s(async e=>{const a=await o.getTemplate(t,e);return{id:a.id,name:a.name}}),pages:d},preview:{href:t=>ce(t,n),draftLink:t=>s(async e=>({url:(await o.createPagePreviewLink(t,e)).url??null}))}};return O[V]=!0,O}const de=["text","date","images"],ge=n=>n.replace(/_([a-z0-9])/g,(s,r)=>r.toUpperCase());function fe(n){if(Array.isArray(n))for(const s of n){const d=(Array.isArray(s?.fields)?s.fields:[]).filter(c=>de.includes(c.kind)).map(c=>({key:ge(c.key),label:c.label,kind:c.kind}));try{G([{key:s.key,label:s.label,fields:d}])}catch{}}}function Be(n){return P().cache("efficient:editor-offerings",()=>Promise.all([o.listBlockSources(n).then(D).catch(()=>{}),o.listRecordTypes(n).then(fe).catch(()=>{})]).then(()=>{}))}ae({read:n=>n instanceof k?{status:n.status,data:n.data,message:n.message}:null,unreachableMessage:x,loadRefusal:(n,{slug:s})=>n instanceof U?`“${s}” exists on more than one website. Open it from the site you want to edit.`:null}),W(n=>j({token:()=>n.auth.token,siteId:()=>n.siteId()}));function je(n={}){return n.portalAudience!==void 0&&K(n.portalAudience),n.language!==void 0&&H(n.language),j({token:()=>P().auth.token,siteId:()=>n.siteId??P().siteId()})}export{L as PAGE_CONFLICT_CODE,je as createEfficientBackend,R as liveOf,Be as loadEditorOfferings,A as pageVersion,le as publishRefusal,fe as registerServedRecordTypes,re as toBackendError};
|
|
@@ -56,6 +56,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
56
56
|
readonly "Ask for the car first": "Ask for the car first";
|
|
57
57
|
readonly "Authorization expired \u2014 try again in a moment.": "Authorization expired — try again in a moment.";
|
|
58
58
|
readonly "Auto (covers if 4+ groups)": "Auto (covers if 4+ groups)";
|
|
59
|
+
readonly "Auto open": "Auto open";
|
|
59
60
|
readonly "Auto reads what the first section on each page says it is \u2014 dark, light or accent \u2014 and picks the text that can be read on it. Set Light or Dark to decide it yourself when Auto reads a page wrong.": "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.";
|
|
60
61
|
readonly "Auto-refreshes from the most-recent visible posts each time you open the editor. Set how many appear with \u201CPosts to display\u201D.": "Auto-refreshes from the most-recent visible posts each time you open the editor. Set how many appear with “Posts to display”.";
|
|
61
62
|
readonly "Auto-synced from {place} \u00B7 {n} post": "Auto-synced from {place} · {n} post";
|
|
@@ -103,6 +104,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
103
104
|
readonly "Choose a form in the inspector, under Message form \u2014 until then this column is hidden on the live page and no message can be sent.": "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.";
|
|
104
105
|
readonly Chosen: "Chosen";
|
|
105
106
|
readonly "Chosen pages": "Chosen pages";
|
|
107
|
+
readonly "Close button": "Close button";
|
|
106
108
|
readonly "Close popup": "Close popup";
|
|
107
109
|
readonly "Code and currency": "Code and currency";
|
|
108
110
|
readonly "Collect from the warehouse.": "Collect from the warehouse.";
|
|
@@ -271,6 +273,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
271
273
|
readonly "Images typed here": "Images typed here";
|
|
272
274
|
readonly "In stock": "In stock";
|
|
273
275
|
readonly "In-house": "In-house";
|
|
276
|
+
readonly Inside: "Inside";
|
|
274
277
|
readonly "Interest chips": "Interest chips";
|
|
275
278
|
readonly "Interests label": "Interests label";
|
|
276
279
|
readonly "Intro text": "Intro text";
|
|
@@ -291,6 +294,7 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
291
294
|
readonly "Keeps the logo readable on any header \u2014 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.": "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.";
|
|
292
295
|
readonly "Know your size? Pick it below": "Know your size? Pick it below";
|
|
293
296
|
readonly L: "L";
|
|
297
|
+
readonly "Landscape (4:3)": "Landscape (4:3)";
|
|
294
298
|
readonly "Last name": "Last name";
|
|
295
299
|
readonly "Lead time": "Lead time";
|
|
296
300
|
readonly "Leave a *review.*": "Leave a *review.*";
|
|
@@ -406,6 +410,8 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
406
410
|
readonly Options: "Options";
|
|
407
411
|
readonly Others: "Others";
|
|
408
412
|
readonly "Others gallery": "Others gallery";
|
|
413
|
+
readonly Outside: "Outside";
|
|
414
|
+
readonly "Outside click": "Outside click";
|
|
409
415
|
readonly "Own row": "Own row";
|
|
410
416
|
readonly PCD: "PCD";
|
|
411
417
|
readonly "PCD \u00B7 fitment": "PCD · fitment";
|
|
@@ -565,7 +571,6 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
565
571
|
readonly "Specifications *table.*": "Specifications *table.*";
|
|
566
572
|
readonly Specs: "Specs";
|
|
567
573
|
readonly "Speed rating": "Speed rating";
|
|
568
|
-
readonly Split: "Split";
|
|
569
574
|
readonly "Staggered spread": "Staggered spread";
|
|
570
575
|
readonly "Status rail": "Status rail";
|
|
571
576
|
readonly Step: "Step";
|
|
@@ -691,10 +696,12 @@ export declare const STOREFRONT_BLOCKS_WORDS: {
|
|
|
691
696
|
readonly "Will it fit *your car?*": "Will it fit *your car?*";
|
|
692
697
|
readonly Window: "Window";
|
|
693
698
|
readonly "Your Selection": "Your Selection";
|
|
699
|
+
readonly "Your cart": "Your cart";
|
|
694
700
|
readonly "Your turn": "Your turn";
|
|
695
701
|
readonly columns: "columns";
|
|
696
702
|
readonly "e.g. D00123 \u00B7 blank = the whole store": "e.g. D00123 · blank = the whole store";
|
|
697
703
|
readonly "items per row": "items per row";
|
|
704
|
+
readonly paypal: "paypal";
|
|
698
705
|
readonly "the linked menu": "the linked menu";
|
|
699
706
|
readonly "your@email.com": "your@email.com";
|
|
700
707
|
readonly "{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.": "{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.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e={"(auto)":"(auto)","(from media group)":"(from media group)","01 · Detail":"01 · Detail","02 · Detail":"02 · Detail","03 · Detail":"03 · Detail","2–3 business days":"2–3 business days","5–7 business days":"5–7 business days","A Booking Form is these three boxes. They cannot be added to or removed.":"A Booking Form is these three boxes. They cannot be added to or removed.","A Submit-a-build section is these two boxes. They cannot be added to or removed.":"A Submit-a-build section is these two boxes. They cannot be added to or removed.","A card's opening picture — picking another color opens that color's first picture.":"A card's opening picture — picking another color opens that color's first picture.","A detail of this record":"A detail of this record","A few quick picks and we show the right option for you.":"A few quick picks and we show the right option for you.","A line about it appears here.":"A line about it appears here.","A note about how these are matched.":"A note about how these are matched.","A number, @name or an ID":"A number, @name or an ID","A short description of your newsletter or publication.":"A short description of your newsletter or publication.","A short summary of the post appears here.":"A short summary of the post appears here.","A third":"A third",Accessories:"Accessories","Account and cart":"Account and cart","Add a line of footer text.":"Add a line of footer text.","Add a second, shorter line if you need one.":"Add a second, shorter line if you need one.","Add a short brand tagline →":"Add a short brand tagline →","Add a short footnote here.":"Add a short footnote here.","Add an active service in {place}.":"Add an active service in {place}.","Add box":"Add box","Add card":"Add card","Add image":"Add image","Add product":"Add product","Add the ways you take payment":"Add the ways you take payment","Add your social links":"Add your social links","Address label":"Address label","Address line 1":"Address line 1","Address line 2":"Address line 2","After close":"After close",Alignment:"Alignment","All brands":"All brands","All categories":"All categories","All media groups":"All media groups","All product types":"All product types","All products":"All products","All wheel categories":"All wheel categories","Alloy wheels":"Alloy wheels","Alt name":"Alt name",Always:"Always",Analytics:"Analytics","Another detail":"Another detail","Another sample":"Another sample","Approved customer reviews appear here automatically — this card is only a preview of the section's shape.":"Approved customer reviews appear here automatically — this card is only a preview of the section's shape.","Approx. 1 email per week · Unsubscribe in one click":"Approx. 1 email per week · Unsubscribe in one click","Apps from":"Apps from","Archive button":"Archive button","Archive link":"Archive link",Arrangement:"Arrangement","Ask for the car first":"Ask for the car first","Authorization expired — try again in a moment.":"Authorization expired — try again in a moment.","Auto (covers if 4+ groups)":"Auto (covers if 4+ groups)","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.":"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.","Auto-refreshes from the most-recent visible posts each time you open the editor. Set how many appear with “Posts to display”.":"Auto-refreshes from the most-recent visible posts each time you open the editor. Set how many appear with “Posts to display”.","Auto-synced from {place} · {n} post":"Auto-synced from {place} · {n} post","Auto-synced from {place} · {n} posts":"Auto-synced from {place} · {n} posts",Away:"Away",Behavior:"Behavior","Below the photo":"Below the photo","Below the specs":"Below the specs","Beside logo":"Beside logo",Blocks:"Blocks","Blog post title":"Blog post title","Blog posts":"Blog posts","Bolt Pattern":"Bolt Pattern","Bolt pattern":"Bolt pattern","Booking box":"Booking box","Border thickness":"Border thickness",Both:"Both",Brand:"Brand","Brand, Color, Size and PCD follow the product type. Set them in Product types.":"Brand, Color, Size and PCD follow the product type. Set them in Product types.","Breadcrumb label":"Breadcrumb label","Browse all products":"Browse all products","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.","Bump Profile":"Bump Profile","Bundles containing this product appear here on a product page.":"Bundles containing this product appear here on a product page.",CSV:"CSV",Call:"Call","Call button":"Call button","Call to action":"Call to action","Calls the phone of the location this website shows, as its Set-up keeps it. With no phone there, the button is not shown.":"Calls the phone of the location this website shows, as its Set-up keeps it. With no phone there, the button is not shown.","Cap Code":"Cap Code",Capitalised:"Capitalised","Car prompt":"Car prompt","Card text":"Card text","Cards from":"Cards from","Cards to show":"Cards to show","Cart, checkout, your country and currency, sign-in, and this choice. The site cannot work without them.":"Cart, checkout, your country and currency, sign-in, and this choice. The site cannot work without them.","Category — wheels only":"Category — wheels only",Centered:"Centered","Centre Bore":"Centre Bore",Channel:"Channel",Channels:"Channels",Checkout:"Checkout","Choose a form in the inspector, under Form — until then this form is hidden on the live page and nothing can be submitted.":"Choose a form in the inspector, under Form — until then this form is hidden on the live page and nothing can be submitted.","Choose a form in the inspector, under Form.":"Choose a form in the inspector, under Form.","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.":"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.",Chosen:"Chosen","Chosen pages":"Chosen pages","Close popup":"Close popup","Code and currency":"Code and currency","Collect from the warehouse.":"Collect from the warehouse.",Collection:"Collection","Collection Card":"Collection Card","Collections to display":"Collections to display",Colour:"Colour","Column heading":"Column heading","Columns per line":"Columns per line","Compatible *tyres.*":"Compatible *tyres.*","Compatible Tyres":"Compatible Tyres","Confirmation message":"Confirmation message","Connect to product data":"Connect to product data","Consent line":"Consent line","Contact cards":"Contact cards","Contact info":"Contact info","Contact us":"Contact us",Contacts:"Contacts","Content source":"Content source",Controls:"Controls",Copyright:"Copyright","Could not load header settings.":"Could not load header settings.","Could not save. Please retry.":"Could not save. Please retry.","Couldn’t reach the product catalog.":"Couldn’t reach the product catalog.","Country name":"Country name","Country selector":"Country selector","Counts visits and pages so we can improve the site. Google Analytics and our own visit count.":"Counts visits and pages so we can improve the site. Google Analytics and our own visit count.","Cover image only":"Cover image only","Cover image only (no media groups)":"Cover image only (no media groups)","Create a new form":"Create a new form","Create menus in {place}, then pick one here.":"Create menus in {place}, then pick one here.","Creates a retail account":"Creates a retail account","Creates a wholesale account":"Creates a wholesale account",Currency:"Currency","Custom SVG logo uploaded for this store.":"Custom SVG logo uploaded for this store.",Days:"Days",Deck:"Deck","Default (first finish)":"Default (first finish)","Default (the product's default finish)":"Default (the product's default finish)","Default (the product’s default finish)":"Default (the product’s default finish)","Default links":"Default links","Delivery Options":"Delivery Options","Delivery options":"Delivery options","Delivery, your way":"Delivery, your way","Describe this feature in a sentence or two.":"Describe this feature in a sentence or two.",Description:"Description","Design code":"Design code","Detail shots":"Detail shots","Detail tooltip on by default":"Detail tooltip on by default",Diagram:"Diagram","Dimension diagram":"Dimension diagram",Dimensions:"Dimensions","Disabled because this grid’s {source} is set to “{name}”. The grid fills itself from that source automatically. To pick wheels here, set {source} back to “Manual”.":"Disabled because this grid’s {source} is set to “{name}”. The grid fills itself from that source automatically. To pick wheels here, set {source} back to “Manual”.","Dismiss button":"Dismiss button","Display mode":"Display mode","Dividers between links":"Dividers between links","ET -10":"ET -10","ET range":"ET range","Edit category ✎":"Edit category ✎","Edit form ✎":"Edit form ✎","Edit in Reviews →":"Edit in Reviews →","Edit menu →":"Edit menu →","Edit product ✎":"Edit product ✎","Edit social links →":"Edit social links →","Email label":"Email label","Email placeholder":"Email placeholder","Email — never shown publicly":"Email — never shown publicly","Emails a copy to {email}":"Emails a copy to {email}","Empty basket":"Empty basket","Encrypted in transit":"Encrypted in transit",End:"End",Enquire:"Enquire","Enquire about tyres":"Enquire about tyres","Even columns":"Even columns","Even grid":"Even grid","Every fitment column is hidden in Product Types — show one to draw this table.":"Every fitment column is hidden in Product Types — show one to draw this table.","Every photo":"Every photo","Every spec row (lug count, bolt pattern, offset, center bore, load rating, bump profile…) comes from the product record — edit its part numbers in the Products database and this table updates to match. You still choose which finish to picture and an optional size.":"Every spec row (lug count, bolt pattern, offset, center bore, load rating, bump profile…) comes from the product record — edit its part numbers in the Products database and this table updates to match. You still choose which finish to picture and an optional size.","Example form — add an active service in {place}.":"Example form — add an active service in {place}.",Exit:"Exit",Express:"Express","Eyebrow badge":"Eyebrow badge","Eyebrow text":"Eyebrow text","Feature *one.*":"Feature *one.*","Feature *three.*":"Feature *three.*","Feature *two.*":"Feature *two.*","Feature eyebrow":"Feature eyebrow","Featured first":"Featured first","Featured width":"Featured width","Fewer {unit} on {view}":"Fewer {unit} on {view}","Field placeholder":"Field placeholder","Fill from a product":"Fill from a product","Filter by brand, colour, size and fitment to find your set.":"Filter by brand, colour, size and fitment to find your set.","Filter by name":"Filter by name",Filters:"Filters","Filters shown":"Filters shown","Find by name":"Find by name","Find your *match.*":"Find your *match.*",Finish:"Finish","First card":"First card","First detail":"First detail","First image on the left":"First image on the left","First name":"First name","First place":"First place","First rate":"First rate","First room":"First room","First-name label":"First-name label","First-name placeholder":"First-name placeholder",Fits:"Fits",Flag:"Flag","Flag and code":"Flag and code","Follow the site theme":"Follow the site theme","Follows the page":"Follows the page",Footer:"Footer","Footer text":"Footer text","Footnote button":"Footnote button","Footnote link":"Footnote link","Form rows":"Form rows","Form side":"Form side","Forms aren’t available in this editor, so there is nothing to choose here.":"Forms aren’t available in this editor, so there is nothing to choose here.","Forms couldn’t be loaded":"Forms couldn’t be loaded","Fourth card":"Fourth card",Free:"Free","Frequency label":"Frequency label","Frequency options":"Frequency options","From our *customers.*":"From our *customers.*",Gallery:"Gallery","Gallery A":"Gallery A","Gallery A comes from the product’s Relative / lifestyle photos, Gallery B from its Product photos and the Others gallery from its Others — edit those in the product’s Media tab and refresh. Each media group is a card: its name is the eyebrow, its finish the meta line; the card’s title is the product name and its tag the category. Headings, intro copy and stats stay yours.":"Gallery A comes from the product’s Relative / lifestyle photos, Gallery B from its Product photos and the Others gallery from its Others — edit those in the product’s Media tab and refresh. Each media group is a card: its name is the eyebrow, its finish the meta line; the card’s title is the product name and its tag the category. Headings, intro copy and stats stay yours.","Gallery B":"Gallery B","Gallery Item":"Gallery Item","Gallery link":"Gallery link","Generic placeholder":"Generic placeholder","Get it in the *inbox.*":"Get it in the *inbox.*","Globe and code":"Globe and code","Goes to {place}":"Goes to {place}","Google Ads and Meta (Facebook, Instagram) tags, and the order details we send to them to measure our ads.":"Google Ads and Meta (Facebook, Instagram) tags, and the order details we send to them to measure our ads.","Google Ads and Meta (Facebook, Instagram) tags, which measure our ads.":"Google Ads and Meta (Facebook, Instagram) tags, which measure our ads.","Group covers":"Group covers","Group {n}":"Group {n}",Groups:"Groups","Header button":"Header button","Header link":"Header link","Header settings":"Header settings","Header shows “{name}” — {n} link.":"Header shows “{name}” — {n} link.","Header shows “{name}” — {n} links.":"Header shows “{name}” — {n} links.","Heading accent":"Heading accent","Heading override":"Heading override","Heading size":"Heading size",Hidden:"Hidden","Hide on the card":"Hide on the card",Horizontal:"Horizontal","Hours from":"Hours from","How much room the menu leaves the logo. Only the logo moves away; the space between the menu words stays as it is.":"How much room the menu leaves the logo. Only the logo moves away; the space between the menu words stays as it is.","Hub bore":"Hub bore","Icon size":"Icon size","Icon style":"Icon style","Image / buy ratio":"Image / buy ratio","Image gallery":"Image gallery","Image shape":"Image shape","Image source":"Image source","Image tag":"Image tag",Images:"Images","Images from":"Images from","Images to show":"Images to show","Images typed here":"Images typed here","In stock":"In stock","In-house":"In-house","Interest chips":"Interest chips","Interests label":"Interests label","Intro text":"Intro text",Introduction:"Introduction","Invalid-email error":"Invalid-email error",Issue:"Issue","Issue label":"Issue label","Issue number":"Issue number","Issue title":"Issue title",Issues:"Issues","Item name":"Item name","Items to display":"Items to display","Its photos become the card cover and lightbox, and its car fills the Vehicle below. No group → the product’s cover image.":"Its photos become the card cover and lightbox, and its car fills the Vehicle below. No group → the product’s cover image.","Joins the “{audience}” audience":"Joins the “{audience}” audience","Joins the “{audience}” audience, but only when the consent box is ticked":"Joins the “{audience}” audience, but only when the consent box is ticked",Journal:"Journal","Just one":"Just one","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.":"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.","Know your size? Pick it below":"Know your size? Pick it below",L:"L","Last name":"Last name","Lead time":"Lead time","Leave a *review.*":"Leave a *review.*","Leave it empty to show the company name and the year it started.":"Leave it empty to show the company name and the year it started.","Left items":"Left items","Left panel":"Left panel",Letters:"Letters",Lifestyle:"Lifestyle","Lifestyle photos":"Lifestyle photos","Link a menu in the inspector →":"Link a menu in the inspector →","Link alignment":"Link alignment","Link to group":"Link to group","Linked to “{name}” · every spec row follows the product.":"Linked to “{name}” · every spec row follows the product.","Linked to “{name}” · title, description, category, price & image follow the product.":"Linked to “{name}” · title, description, category, price & image follow the product.","Linked to “{name}” · {n} card from all products’ media groups.":"Linked to “{name}” · {n} card from all products’ media groups.","Linked to “{name}” · {n} card from its media groups.":"Linked to “{name}” · {n} card from its media groups.","Linked to “{name}” · {n} cards from all products’ media groups.":"Linked to “{name}” · {n} cards from all products’ media groups.","Linked to “{name}” · {n} cards from its media groups.":"Linked to “{name}” · {n} cards from its media groups.","Linked to “{name}” — no longer in the catalog.":"Linked to “{name}” — no longer in the catalog.","Linked to “{name}” — this product has no spec data yet.":"Linked to “{name}” — this product has no spec data yet.","Linked to “{name}” — {n} link. Re-pull after editing the menu:":"Linked to “{name}” — {n} link. Re-pull after editing the menu:","Linked to “{name}” — {n} links. Re-pull after editing the menu:":"Linked to “{name}” — {n} links. Re-pull after editing the menu:","Linking to {place}…":"Linking to {place}…","Load Rating":"Load Rating","Loading form…":"Loading form…","Loading menus…":"Loading menus…","Loading sample product…":"Loading sample product…","Logo (SVG)":"Logo (SVG)","Logo fills its column":"Logo fills its column","Logo fills its column on {view}":"Logo fills its column on {view}","Logo fills its row":"Logo fills its row","Logo fills its row on {view}":"Logo fills its row on {view}","Lug Count":"Lug Count",Lugs:"Lugs",M:"M","Main + thumbs":"Main + thumbs","Main only":"Main only",Make:"Make","Manage menus →":"Manage menus →",Marker:"Marker",Max:"Max","Media group":"Media group","Menu Item":"Menu Item","Menu link":"Menu link","Menu row":"Menu row","Message form":"Message form","Message us":"Message us","Messaging Strip":"Messaging Strip","Messaging cards":"Messaging cards",Meta:"Meta","Meta label":"Meta label","Meta lines":"Meta lines","Methods from":"Methods from",Min:"Min",Model:"Model","Month YYYY":"Month YYYY","More images":"More images","More like this":"More like this","More {unit} on {view}":"More {unit} on {view}","My Car":"My Car","Name A–Z":"Name A–Z","Name, description and image come from {place}. Edit them there — this card updates to match.":"Name, description and image come from {place}. Edit them there — this card updates to match.","Narrow image":"Narrow image",Necessary:"Necessary",Never:"Never","New form +":"New form +",Newest:"Newest","Newsletter (built in)":"Newsletter (built in)","Newsletter panel":"Newsletter panel","No categories on this product":"No categories on this product","No company logo on file — upload an SVG or the wordmark is used.":"No company logo on file — upload an SVG or the wordmark is used.","No compatible tyres found for this wheel’s sizes yet — tyres appear automatically when a matching size is active and priced in the catalog.":"No compatible tyres found for this wheel’s sizes yet — tyres appear automatically when a matching size is active and priced in the catalog.","No description yet":"No description yet","No detail shots on this finish yet. Tick a close-up on the design's renderings and give it a title. This section is hidden on the live page until then.":"No detail shots on this finish yet. Tick a close-up on the design's renderings and give it a title. This section is hidden on the live page until then.","No finishes on this product":"No finishes on this product","No fitment data for this wheel — pick a wheel with fitment specs.":"No fitment data for this wheel — pick a wheel with fitment specs.","No form yet":"No form yet","No image yet":"No image yet","No logo — “{name}” wordmark shown":"No logo — “{name}” wordmark shown","No menus":"No menus","No menus found":"No menus found","No menus yet. Create one in {place}, then pick it here.":"No menus yet. Create one in {place}, then pick it here.","No models listed":"No models listed","No product chosen yet, so reviews of every product show.":"No product chosen yet, so reviews of every product show.","No products in this category":"No products in this category","No products in this website's catalog yet — curate products to see them here.":"No products in this website's catalog yet — curate products to see them here.","No products in “{name}” yet":"No products in “{name}” yet","No trims listed":"No trims listed","No tyres in this website's catalog yet — curate products to see them here.":"No tyres in this website's catalog yet — curate products to see them here.","No wheels in this website's catalog yet — curate products to see them here.":"No wheels in this website's catalog yet — curate products to see them here.","No years listed":"No years listed","None (write the cards yourself)":"None (write the cards yourself)","None (write the rows yourself)":"None (write the rows yourself)","None of this product’s finishes has an image, so none can be shown on the card. Add an image to a finish on the product record to pick it here.":"None of this product’s finishes has an image, so none can be shown on the card. Add an image to a finish on the product record to pick it here.","None — this section will be empty":"None — this section will be empty","Not authorized yet — reopen once the editor has loaded.":"Not authorized yet — reopen once the editor has loaded.","Not your size":"Not your size","Number or ID":"Number or ID","OEM front":"OEM front","OEM front tyres":"OEM front tyres","OEM rear":"OEM rear","OEM rear tyres":"OEM rear tyres",Offset:"Offset","Offset (ET)":"Offset (ET)","On scroll up":"On scroll up","On the photo":"On the photo","Only for looking at while you design. Shoppers always see the product they opened.":"Only for looking at while you design. Shoppers always see the product they opened.","Open chat":"Open chat","Open live":"Open live","Open now badge":"Open now badge","Opening sort":"Opening sort","Option label":"Option label",Options:"Options",Others:"Others","Others gallery":"Others gallery","Own row":"Own row",PCD:"PCD","PCD · fitment":"PCD · fitment",PDF:"PDF","PDF · DOC · DOCX · TXT":"PDF · DOC · DOCX · TXT","PDF · JPG · PNG":"PDF · JPG · PNG","PNG · ICO · SVG":"PNG · ICO · SVG","PNG · JPG":"PNG · JPG","PNG · JPG · MP4":"PNG · JPG · MP4","PNG · JPG · SVG · WEBP · MP4":"PNG · JPG · SVG · WEBP · MP4","PNG · JPG · WEBP":"PNG · JPG · WEBP","Photo cards":"Photo cards",Photos:"Photos","Pick a category from {place} to fill this card’s name, description and image. That content is edited in the category.":"Pick a category from {place} to fill this card’s name, description and image. That content is edited in the category.","Pick a form to show here, or build a new one. Forms are made once in {place} and can be shown on any number of pages.":"Pick a form to show here, or build a new one. Forms are made once in {place} and can be shown on any number of pages.","Pick a menu to drive the header links, or keep the built-in default links.":"Pick a menu to drive the header links, or keep the built-in default links.","Pick a product in the panel to fill this hero.":"Pick a product in the panel to fill this hero.","Pick a product to fill the spec table from the catalog, or keep “None” to write the rows yourself.":"Pick a product to fill the spec table from the catalog, or keep “None” to write the rows yourself.","Pick a product — or All products — to build the galleries from media groups, or keep “None” to author the cards yourself.":"Pick a product — or All products — to build the galleries from media groups, or keep “None” to author the cards yourself.","Pick a product…":"Pick a product…","Pick the products yourself below, or choose “All products” or a category from {place}.":"Pick the products yourself below, or choose “All products” or a category from {place}.",Pickup:"Pickup",Pills:"Pills","Pinning one overrides the section’s Cover image.":"Pinning one overrides the section’s Cover image.","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.":"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.","Popup's own":"Popup's own",Popups:"Popups","Portrait (4:5)":"Portrait (4:5)","Posts to display":"Posts to display","Price / quote":"Price / quote","Price and details come from the product record — edit them in the Products database and this block updates to match. The name follows the product’s design name unless it’s overridden per storefront in {place}.":"Price and details come from the product record — edit them in the Products database and this block updates to match. The name follows the product’s design name unless it’s overridden per storefront in {place}.","Price on request":"Price on request","Price position":"Price position","Price · High":"Price · High","Price · Low":"Price · Low","Price · high to low":"Price · high to low","Price · low to high":"Price · low to high","Priority handling.":"Priority handling.",Process:"Process","Product Gallery":"Product Gallery","Product content":"Product content","Product link":"Product link","Product photos":"Product photos","Product story":"Product story","Product type":"Product type","Product types":"Product types",Products:"Products","Products per page":"Products per page",Profile:"Profile","Promise row":"Promise row","Questions? Talk to us":"Questions? Talk to us","Rate table":"Rate table",Rates:"Rates","Rates from":"Rates from","Reach by":"Reach by","Read all posts →":"Read all posts →","Ready when *you are.*":"Ready when *you are.*","Recent issues":"Recent issues","Recent posts":"Recent posts",Recommended:"Recommended","Record title":"Record title","Related products appear here on a product page.":"Related products appear here on a product page.","Replace SVG logo":"Replace SVG logo","Request a quote":"Request a quote","Response time":"Response time","Result count":"Result count","Results button":"Results button","Results link":"Results link",Retry:"Retry","Reverse the Logo":"Reverse the Logo","Review content":"Review content","Review title (optional)":"Review title (optional)","Reviews are collected by the Review Form section and wait for your approval before they show.":"Reviews are collected by the Review Form section and wait for your approval before they show.","Right panel · actions":"Right panel · actions","Right panel · choices":"Right panel · choices","Right panel · form":"Right panel · form",Rim:"Rim","Rim Profile":"Rim Profile","Routing groups":"Routing groups",Row:"Row","Row shape":"Row shape","Row {n}":"Row {n}",Rows:"Rows","Rows from":"Rows from",S:"S","STP · STEP · DXF · PDF":"STP · STEP · DXF · PDF","Same day":"Same day","Same row":"Same row","Sample review title":"Sample review title","Sample reviewer":"Sample reviewer","Save this address to my account":"Save this address to my account","Saving…":"Saving…","Search forms…":"Search forms…","Search your catalog…":"Search your catalog…","Second card":"Second card","Second detail":"Second detail","Second place":"Second place","Second rate":"Second rate","Second room":"Second room","Secondary button":"Secondary button","Secondary link":"Secondary link","Section label":"Section label","Section shape":"Section shape","Section title":"Section title","Section's own":"Section's own","See all results":"See all results","Select a menu…":"Select a menu…","Select a product…":"Select a product…","Session · 60 min":"Session · 60 min","Session · 60 min · Night":"Session · 60 min · Night","Set a design code":"Set a design code","Set a product design code on this section to show one product's reviews; leave it blank for the whole store.":"Set a product design code on this section to show one product's reviews; leave it blank for the whole store.","Set the default Light / Dark / Auto mode and show or hide the light↔dark switch in Appearance.":"Set the default Light / Dark / Auto mode and show or hide the light↔dark switch in Appearance.","Set up display mode →":"Set up display mode →","Sets how tall the header bar is; the content below it shifts down to match.":"Sets how tall the header bar is; the content below it shifts down to match.","Sets the logo’s height; the width follows the logo’s own proportions.":"Sets the logo’s height; the width follows the logo’s own proportions.","Sets the {view} view — switch views in the top bar to set each one.":"Sets the {view} view — switch views in the top bar to set each one.",Settings:"Settings",Setup:"Setup",Shipping:"Shipping","Shipping cannot be calculated right now. Please try again.":"Shipping cannot be calculated right now. Please try again.","Ships to":"Ships to","Ships to · fallback":"Ships to · fallback",Shop:"Shop","Short brand tagline":"Short brand tagline","Short description":"Short description","Show / hide elements":"Show / hide elements","Show all blog posts":"Show all blog posts","Show all items":"Show all items","Show as":"Show as","Show as accordion":"Show as accordion","Show by itself":"Show by itself","Show cover image on the smaller cards":"Show cover image on the smaller cards","Show in the buy box":"Show in the buy box","Show links":"Show links","Show links from":"Show links from","Show links to":"Show links to","Show on the card":"Show on the card","Show selector":"Show selector","Show tab":"Show tab","Show “Other” reason":"Show “Other” reason","Shown only while the site serves no countries — otherwise the site's default country is stated":"Shown only while the site serves no countries — otherwise the site's default country is stated","Shows this source’s products as they are now, here and on the live page. Set how many appear with “Items to display”.":"Shows this source’s products as they are now, here and on the live page. Set how many appear with “Items to display”.","Signup form":"Signup form",Site:"Site","Site Footer":"Site Footer","Site Header":"Site Header","Size (blank = none selected)":"Size (blank = none selected)","Size · diameter":"Size · diameter","Size-filter chips":"Size-filter chips","Sort + Clear all":"Sort + Clear all","Sort control":"Sort control","Sort · Featured":"Sort · Featured","Source product":"Source product","Space from the logo":"Space from the logo","Spec table":"Spec table","Specifications *table.*":"Specifications *table.*",Specs:"Specs","Speed rating":"Speed rating",Split:"Split","Staggered spread":"Staggered spread","Status rail":"Status rail",Step:"Step","Sticky header":"Sticky header","Storefront › Settings › Regions & currencies":"Storefront › Settings › Regions & currencies","Storefront → Booking Services":"Storefront → Booking Services","Storefront → Catalog":"Storefront → Catalog","Storefront → Categories":"Storefront → Categories","Storefront → Forms":"Storefront → Forms","Storefront → Menus":"Storefront → Menus","Sub line":"Sub line","Sub-line":"Sub-line","Sub-line · empty":"Sub-line · empty","Sub-line · one set":"Sub-line · one set","Sub-line · several sets":"Sub-line · several sets","Submit box":"Submit box","Submit button":"Submit button","Submit-failed error":"Submit-failed error","Subscribe Form":"Subscribe Form","Subscribe with Posts":"Subscribe with Posts","Subscribe →":"Subscribe →","Subscribed button":"Subscribed button","Subscribed ✓":"Subscribed ✓","Success state":"Success state","Switch to Box header":"Switch to Box header","Switching…":"Switching…","Syncing from the catalog…":"Syncing from the catalog…","Syncing media from the catalog…":"Syncing media from the catalog…","Tab switcher":"Tab switcher",Tag:"Tag","Tag filters":"Tag filters","Tell readers what they get and how often. One email, straight to the inbox. We will never sell your address.":"Tell readers what they get and how often. One email, straight to the inbox. We will never sell your address.","Template pages":"Template pages","Text color at the top":"Text color at the top","Text from":"Text from","Thank-you message":"Thank-you message","That didn’t come back — pick the form from the list, or try again.":"That didn’t come back — pick the form from the list, or try again.","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.","The banner's words follow each visitor's country. Turn consent on or off, and pick the privacy page, in Admin › Storefront › Marketing › 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.","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.":"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.","The header settings could not be read. Try again.":"The header settings could not be read. Try again.","The linked menu":"The linked menu","The links are typed once for the whole website, in Site settings.":"The links are typed once for the whole website, in Site settings.","The links this menu shows on a computer. Empty To means to the end.":"The links this menu shows on a computer. Empty To means to the end.","The menu linked here no longer exists in {place}, so the header shows placeholder links. Pick another menu.":"The menu linked here no longer exists in {place}, so the header shows placeholder links. Pick another menu.","The photo's own shape":"The photo's own shape","The questions, the button text and the thank-you message all come from {place}. Edit them there — this section updates to match.":"The questions, the button text and the thank-you message all come from {place}. Edit them there — this section updates to match.","The vehicle question appears here on a tyre product page, with one verdict per size.":"The vehicle question appears here on a tyre product page, with one verdict per size.","The website’s pictures appear here, in the order they are put in. A website with no pictures draws nothing.":"The website’s pictures appear here, in the order they are put in. A website with no pictures draws nothing.","The week":"The week","The whole hero comes from the product record — title, price, pictures, options and Add to Cart. Edit the product in the Products database and this hero updates to match.":"The whole hero comes from the product record — title, price, pictures, options and Add to Cart. Edit the product in the Products database and this hero updates to match.","Third card":"Third card","Third detail":"Third detail","Third room":"Third room","This column isn't linked to a menu, so the preview shows placeholder links. Pick a menu above.":"This column isn't linked to a menu, so the preview shows placeholder links. Pick a menu above.","This form has no fields yet, so there is nothing for a visitor to fill in.":"This form has no fields yet, so there is nothing for a visitor to fill in.","This form is switched off, so it won’t appear on the published page. Turn it back on in {place}.":"This form is switched off, so it won’t appear on the published page. Turn it back on in {place}.","This header uses the old layout":"This header uses the old layout","This hero always shows a real product. Pick one to fill the title, price, pictures, options and Add to Cart from the catalog.":"This hero always shows a real product. Pick one to fill the title, price, pictures, options and Add to Cart from the catalog.","This menu draws no links: its card template is empty. Undo the delete, or delete this Menu and add it again.":"This menu draws no links: its card template is empty. Undo the delete, or delete this Menu and add it again.","This menu has no links yet — add them in {place}.":"This menu has no links yet — add them in {place}.","This product":"This product","This product has no finishes yet, so its card falls back to the product image — or an empty placeholder when it has none. Add finishes to the product record, then give each one an image.":"This product has no finishes yet, so its card falls back to the product image — or an empty placeholder when it has none. Add finishes to the product record, then give each one an image.","This product’s photos appear here on a product page. Add media groups in the product’s Media tab.":"This product’s photos appear here on a product page. Add media groups in the product’s Media tab.","This product’s sizes appear here on a product page.":"This product’s sizes appear here on a product page.","This record’s pictures appear here on its page. A record with no pictures draws nothing.":"This record’s pictures appear here on its page. A record with no pictures draws nothing.","This section points at “{slug}”, and this website has no form with that name. Pick one from the list above, or leave it — nothing has been changed.":"This section points at “{slug}”, and this website has no form with that name. Pick one from the list above, or leave it — nothing has been changed.","This section still points at “{slug}”, and that is unchanged.":"This section still points at “{slug}”, and that is unchanged.","This shop does not take payment online yet. Please contact the shop to order.":"This shop does not take payment online yet. Please contact the shop to order.","This visit":"This visit","This website has no currency yet. Add one in {place} and these cards will price. Only you can see this line.":"This website has no currency yet. Add one in {place} and these cards will price. Only you can see this line.","This website’s forms couldn’t be loaded, so there is nothing to choose from yet.":"This website’s forms couldn’t be loaded, so there is nothing to choose from yet.","Tick label":"Tick label",Tiled:"Tiled","Title / product":"Title / product",To:"To",Tools:"Tools","Tracked to your door.":"Tracked to your door.",Trigger:"Trigger",Trim:"Trim","Trust markers":"Trust markers","Typed reviews":"Typed reviews","Tyre type":"Tyre type",Tyres:"Tyres","Tyres shown are fitment-matched companions.":"Tyres shown are fitment-matched companions.","Tyres that fit this product":"Tyres that fit this product","Under the title":"Under the title",Unknown:"Unknown","Update links":"Update links","Updating…":"Updating…","Upload SVG logo":"Upload SVG logo",Uppercase:"Uppercase","Use company default":"Use company default","Use my real delivery options":"Use my real delivery options","Using your company logo from the database.":"Using your company logo from the database.",VIP:"VIP",Vehicle:"Vehicle","Vehicle catalog unavailable in this preview — the picker fills from the live fitment API on the published site.":"Vehicle catalog unavailable in this preview — the picker fills from the live fitment API on the published site.","Vehicle fitment":"Vehicle fitment","Vehicle list unavailable":"Vehicle list unavailable",Vertical:"Vertical",Videos:"Videos","View the full archive →":"View the full archive →","View tyre":"View tyre",Visibility:"Visibility","Waiting for editor authorization…":"Waiting for editor authorization…","Welcome heading":"Welcome heading","Welcome intro":"Welcome intro","What a visit costs.":"What a visit costs.","What the site needs to work, such as remembering this choice. The site cannot work without them.":"What the site needs to work, such as remembering this choice. The site cannot work without them.","What this room has.":"What this room has.","What would you like to cover?":"What would you like to cover?",Wheel:"Wheel","Wheel Spec":"Wheel Spec",Wheels:"Wheels","Wheels this product fits":"Wheels this product fits","Where the answers go":"Where the answers go","Whether the footer's blocks sit on the page's column, or run edge to edge. The background always spans the screen.":"Whether the footer's blocks sit on the page's column, or run edge to edge. The background always spans the screen.","Which countries this website serves — and each region's own URL — is set in the admin console under {place}. Whether the picker is SHOWN stays here: that is header chrome, but the served-country list has tax consequences and belongs with commerce configuration.":"Which countries this website serves — and each region's own URL — is set in the admin console under {place}. Whether the picker is SHOWN stays here: that is header chrome, but the served-country list has tax consequences and belongs with commerce configuration.","Who to ask":"Who to ask","Who to ask for":"Who to ask for",Wide:"Wide","Will it fit *your car?*":"Will it fit *your car?*",Window:"Window","Your Selection":"Your Selection","Your turn":"Your turn",columns:"columns","e.g. D00123 · blank = the whole store":"e.g. D00123 · blank = the whole store","items per row":"items per row","the linked menu":"the linked menu","your@email.com":"your@email.com","{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.":"{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.","{count} becomes the number of sets":"{count} becomes the number of sets","{list} and {last}":"{list} and {last}","{name} · hidden":"{name} · hidden","{name} · preview only":"{name} · preview only","{name} — no image":"{name} — no image","{name} — no render":"{name} — no render","{n} field":"{n} field","{n} fields":"{n} fields","{n} photos":"{n} photos","{n} pixels":"{n} pixels","{n} size":"{n} size","{n} sizes":"{n} sizes","{n} {many}":"{n} {many}","{n} {one}":"{n} {one}","{section} does not apply to {kind}. It is hidden on the live page.":"{section} does not apply to {kind}. It is hidden on the live page.","{slug} (not in this list)":"{slug} (not in this list)","{slug} — no form with this name":"{slug} — no form with this name","{text} draws the words — Search, Account, Bag — instead of the little pictures. It changes how they look, not whether they are shown: that stays with the switches below.":"{text} draws the words — Search, Account, Bag — instead of the little pictures. It changes how they look, not whether they are shown: that stays with the switches below.","{title} (switched off)":"{title} (switched off)","{uppercase} draws SEARCH and BAG; {capitalised} draws Search and Bag. It covers the menu links and the Tools words together, and it leaves a name like FusionForge exactly as you typed it.":"{uppercase} draws SEARCH and BAG; {capitalised} draws Search and Bag. It covers the menu links and the Tools words together, and it leaves a name like FusionForge exactly as you typed it.","© Your company":"© Your company","— Not linked —":"— Not linked —","“Other” chip label":"“Other” chip label","“Other” note body":"“Other” note body","“Other” note title":"“Other” note title","“Other” reason":"“Other” reason","“See gallery” link":"“See gallery” link","“{name}” no longer exists in {place}, so the preview shows placeholder links. Pick another menu.":"“{name}” no longer exists in {place}, so the preview shows placeholder links. Pick another menu.","“{relationship}” does not apply to this product. It is hidden on the live page.":"“{relationship}” does not apply to this product. It is hidden on the live page.","→ Newsletter":"→ Newsletter"};export{e as STOREFRONT_BLOCKS_WORDS};
|
|
1
|
+
const e={"(auto)":"(auto)","(from media group)":"(from media group)","01 · Detail":"01 · Detail","02 · Detail":"02 · Detail","03 · Detail":"03 · Detail","2–3 business days":"2–3 business days","5–7 business days":"5–7 business days","A Booking Form is these three boxes. They cannot be added to or removed.":"A Booking Form is these three boxes. They cannot be added to or removed.","A Submit-a-build section is these two boxes. They cannot be added to or removed.":"A Submit-a-build section is these two boxes. They cannot be added to or removed.","A card's opening picture — picking another color opens that color's first picture.":"A card's opening picture — picking another color opens that color's first picture.","A detail of this record":"A detail of this record","A few quick picks and we show the right option for you.":"A few quick picks and we show the right option for you.","A line about it appears here.":"A line about it appears here.","A note about how these are matched.":"A note about how these are matched.","A number, @name or an ID":"A number, @name or an ID","A short description of your newsletter or publication.":"A short description of your newsletter or publication.","A short summary of the post appears here.":"A short summary of the post appears here.","A third":"A third",Accessories:"Accessories","Account and cart":"Account and cart","Add a line of footer text.":"Add a line of footer text.","Add a second, shorter line if you need one.":"Add a second, shorter line if you need one.","Add a short brand tagline →":"Add a short brand tagline →","Add a short footnote here.":"Add a short footnote here.","Add an active service in {place}.":"Add an active service in {place}.","Add box":"Add box","Add card":"Add card","Add image":"Add image","Add product":"Add product","Add the ways you take payment":"Add the ways you take payment","Add your social links":"Add your social links","Address label":"Address label","Address line 1":"Address line 1","Address line 2":"Address line 2","After close":"After close",Alignment:"Alignment","All brands":"All brands","All categories":"All categories","All media groups":"All media groups","All product types":"All product types","All products":"All products","All wheel categories":"All wheel categories","Alloy wheels":"Alloy wheels","Alt name":"Alt name",Always:"Always",Analytics:"Analytics","Another detail":"Another detail","Another sample":"Another sample","Approved customer reviews appear here automatically — this card is only a preview of the section's shape.":"Approved customer reviews appear here automatically — this card is only a preview of the section's shape.","Approx. 1 email per week · Unsubscribe in one click":"Approx. 1 email per week · Unsubscribe in one click","Apps from":"Apps from","Archive button":"Archive button","Archive link":"Archive link",Arrangement:"Arrangement","Ask for the car first":"Ask for the car first","Authorization expired — try again in a moment.":"Authorization expired — try again in a moment.","Auto (covers if 4+ groups)":"Auto (covers if 4+ groups)","Auto open":"Auto open","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.":"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.","Auto-refreshes from the most-recent visible posts each time you open the editor. Set how many appear with “Posts to display”.":"Auto-refreshes from the most-recent visible posts each time you open the editor. Set how many appear with “Posts to display”.","Auto-synced from {place} · {n} post":"Auto-synced from {place} · {n} post","Auto-synced from {place} · {n} posts":"Auto-synced from {place} · {n} posts",Away:"Away",Behavior:"Behavior","Below the photo":"Below the photo","Below the specs":"Below the specs","Beside logo":"Beside logo",Blocks:"Blocks","Blog post title":"Blog post title","Blog posts":"Blog posts","Bolt Pattern":"Bolt Pattern","Bolt pattern":"Bolt pattern","Booking box":"Booking box","Border thickness":"Border thickness",Both:"Both",Brand:"Brand","Brand, Color, Size and PCD follow the product type. Set them in Product types.":"Brand, Color, Size and PCD follow the product type. Set them in Product types.","Breadcrumb label":"Breadcrumb label","Browse all products":"Browse all products","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.","Bump Profile":"Bump Profile","Bundles containing this product appear here on a product page.":"Bundles containing this product appear here on a product page.",CSV:"CSV",Call:"Call","Call button":"Call button","Call to action":"Call to action","Calls the phone of the location this website shows, as its Set-up keeps it. With no phone there, the button is not shown.":"Calls the phone of the location this website shows, as its Set-up keeps it. With no phone there, the button is not shown.","Cap Code":"Cap Code",Capitalised:"Capitalised","Car prompt":"Car prompt","Card text":"Card text","Cards from":"Cards from","Cards to show":"Cards to show","Cart, checkout, your country and currency, sign-in, and this choice. The site cannot work without them.":"Cart, checkout, your country and currency, sign-in, and this choice. The site cannot work without them.","Category — wheels only":"Category — wheels only",Centered:"Centered","Centre Bore":"Centre Bore",Channel:"Channel",Channels:"Channels",Checkout:"Checkout","Choose a form in the inspector, under Form — until then this form is hidden on the live page and nothing can be submitted.":"Choose a form in the inspector, under Form — until then this form is hidden on the live page and nothing can be submitted.","Choose a form in the inspector, under Form.":"Choose a form in the inspector, under Form.","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.":"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.",Chosen:"Chosen","Chosen pages":"Chosen pages","Close button":"Close button","Close popup":"Close popup","Code and currency":"Code and currency","Collect from the warehouse.":"Collect from the warehouse.",Collection:"Collection","Collection Card":"Collection Card","Collections to display":"Collections to display",Colour:"Colour","Column heading":"Column heading","Columns per line":"Columns per line","Compatible *tyres.*":"Compatible *tyres.*","Compatible Tyres":"Compatible Tyres","Confirmation message":"Confirmation message","Connect to product data":"Connect to product data","Consent line":"Consent line","Contact cards":"Contact cards","Contact info":"Contact info","Contact us":"Contact us",Contacts:"Contacts","Content source":"Content source",Controls:"Controls",Copyright:"Copyright","Could not load header settings.":"Could not load header settings.","Could not save. Please retry.":"Could not save. Please retry.","Couldn’t reach the product catalog.":"Couldn’t reach the product catalog.","Country name":"Country name","Country selector":"Country selector","Counts visits and pages so we can improve the site. Google Analytics and our own visit count.":"Counts visits and pages so we can improve the site. Google Analytics and our own visit count.","Cover image only":"Cover image only","Cover image only (no media groups)":"Cover image only (no media groups)","Create a new form":"Create a new form","Create menus in {place}, then pick one here.":"Create menus in {place}, then pick one here.","Creates a retail account":"Creates a retail account","Creates a wholesale account":"Creates a wholesale account",Currency:"Currency","Custom SVG logo uploaded for this store.":"Custom SVG logo uploaded for this store.",Days:"Days",Deck:"Deck","Default (first finish)":"Default (first finish)","Default (the product's default finish)":"Default (the product's default finish)","Default (the product’s default finish)":"Default (the product’s default finish)","Default links":"Default links","Delivery Options":"Delivery Options","Delivery options":"Delivery options","Delivery, your way":"Delivery, your way","Describe this feature in a sentence or two.":"Describe this feature in a sentence or two.",Description:"Description","Design code":"Design code","Detail shots":"Detail shots","Detail tooltip on by default":"Detail tooltip on by default",Diagram:"Diagram","Dimension diagram":"Dimension diagram",Dimensions:"Dimensions","Disabled because this grid’s {source} is set to “{name}”. The grid fills itself from that source automatically. To pick wheels here, set {source} back to “Manual”.":"Disabled because this grid’s {source} is set to “{name}”. The grid fills itself from that source automatically. To pick wheels here, set {source} back to “Manual”.","Dismiss button":"Dismiss button","Display mode":"Display mode","Dividers between links":"Dividers between links","ET -10":"ET -10","ET range":"ET range","Edit category ✎":"Edit category ✎","Edit form ✎":"Edit form ✎","Edit in Reviews →":"Edit in Reviews →","Edit menu →":"Edit menu →","Edit product ✎":"Edit product ✎","Edit social links →":"Edit social links →","Email label":"Email label","Email placeholder":"Email placeholder","Email — never shown publicly":"Email — never shown publicly","Emails a copy to {email}":"Emails a copy to {email}","Empty basket":"Empty basket","Encrypted in transit":"Encrypted in transit",End:"End",Enquire:"Enquire","Enquire about tyres":"Enquire about tyres","Even columns":"Even columns","Even grid":"Even grid","Every fitment column is hidden in Product Types — show one to draw this table.":"Every fitment column is hidden in Product Types — show one to draw this table.","Every photo":"Every photo","Every spec row (lug count, bolt pattern, offset, center bore, load rating, bump profile…) comes from the product record — edit its part numbers in the Products database and this table updates to match. You still choose which finish to picture and an optional size.":"Every spec row (lug count, bolt pattern, offset, center bore, load rating, bump profile…) comes from the product record — edit its part numbers in the Products database and this table updates to match. You still choose which finish to picture and an optional size.","Example form — add an active service in {place}.":"Example form — add an active service in {place}.",Exit:"Exit",Express:"Express","Eyebrow badge":"Eyebrow badge","Eyebrow text":"Eyebrow text","Feature *one.*":"Feature *one.*","Feature *three.*":"Feature *three.*","Feature *two.*":"Feature *two.*","Feature eyebrow":"Feature eyebrow","Featured first":"Featured first","Featured width":"Featured width","Fewer {unit} on {view}":"Fewer {unit} on {view}","Field placeholder":"Field placeholder","Fill from a product":"Fill from a product","Filter by brand, colour, size and fitment to find your set.":"Filter by brand, colour, size and fitment to find your set.","Filter by name":"Filter by name",Filters:"Filters","Filters shown":"Filters shown","Find by name":"Find by name","Find your *match.*":"Find your *match.*",Finish:"Finish","First card":"First card","First detail":"First detail","First image on the left":"First image on the left","First name":"First name","First place":"First place","First rate":"First rate","First room":"First room","First-name label":"First-name label","First-name placeholder":"First-name placeholder",Fits:"Fits",Flag:"Flag","Flag and code":"Flag and code","Follow the site theme":"Follow the site theme","Follows the page":"Follows the page",Footer:"Footer","Footer text":"Footer text","Footnote button":"Footnote button","Footnote link":"Footnote link","Form rows":"Form rows","Form side":"Form side","Forms aren’t available in this editor, so there is nothing to choose here.":"Forms aren’t available in this editor, so there is nothing to choose here.","Forms couldn’t be loaded":"Forms couldn’t be loaded","Fourth card":"Fourth card",Free:"Free","Frequency label":"Frequency label","Frequency options":"Frequency options","From our *customers.*":"From our *customers.*",Gallery:"Gallery","Gallery A":"Gallery A","Gallery A comes from the product’s Relative / lifestyle photos, Gallery B from its Product photos and the Others gallery from its Others — edit those in the product’s Media tab and refresh. Each media group is a card: its name is the eyebrow, its finish the meta line; the card’s title is the product name and its tag the category. Headings, intro copy and stats stay yours.":"Gallery A comes from the product’s Relative / lifestyle photos, Gallery B from its Product photos and the Others gallery from its Others — edit those in the product’s Media tab and refresh. Each media group is a card: its name is the eyebrow, its finish the meta line; the card’s title is the product name and its tag the category. Headings, intro copy and stats stay yours.","Gallery B":"Gallery B","Gallery Item":"Gallery Item","Gallery link":"Gallery link","Generic placeholder":"Generic placeholder","Get it in the *inbox.*":"Get it in the *inbox.*","Globe and code":"Globe and code","Goes to {place}":"Goes to {place}","Google Ads and Meta (Facebook, Instagram) tags, and the order details we send to them to measure our ads.":"Google Ads and Meta (Facebook, Instagram) tags, and the order details we send to them to measure our ads.","Google Ads and Meta (Facebook, Instagram) tags, which measure our ads.":"Google Ads and Meta (Facebook, Instagram) tags, which measure our ads.","Group covers":"Group covers","Group {n}":"Group {n}",Groups:"Groups","Header button":"Header button","Header link":"Header link","Header settings":"Header settings","Header shows “{name}” — {n} link.":"Header shows “{name}” — {n} link.","Header shows “{name}” — {n} links.":"Header shows “{name}” — {n} links.","Heading accent":"Heading accent","Heading override":"Heading override","Heading size":"Heading size",Hidden:"Hidden","Hide on the card":"Hide on the card",Horizontal:"Horizontal","Hours from":"Hours from","How much room the menu leaves the logo. Only the logo moves away; the space between the menu words stays as it is.":"How much room the menu leaves the logo. Only the logo moves away; the space between the menu words stays as it is.","Hub bore":"Hub bore","Icon size":"Icon size","Icon style":"Icon style","Image / buy ratio":"Image / buy ratio","Image gallery":"Image gallery","Image shape":"Image shape","Image source":"Image source","Image tag":"Image tag",Images:"Images","Images from":"Images from","Images to show":"Images to show","Images typed here":"Images typed here","In stock":"In stock","In-house":"In-house",Inside:"Inside","Interest chips":"Interest chips","Interests label":"Interests label","Intro text":"Intro text",Introduction:"Introduction","Invalid-email error":"Invalid-email error",Issue:"Issue","Issue label":"Issue label","Issue number":"Issue number","Issue title":"Issue title",Issues:"Issues","Item name":"Item name","Items to display":"Items to display","Its photos become the card cover and lightbox, and its car fills the Vehicle below. No group → the product’s cover image.":"Its photos become the card cover and lightbox, and its car fills the Vehicle below. No group → the product’s cover image.","Joins the “{audience}” audience":"Joins the “{audience}” audience","Joins the “{audience}” audience, but only when the consent box is ticked":"Joins the “{audience}” audience, but only when the consent box is ticked",Journal:"Journal","Just one":"Just one","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.":"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.","Know your size? Pick it below":"Know your size? Pick it below",L:"L","Landscape (4:3)":"Landscape (4:3)","Last name":"Last name","Lead time":"Lead time","Leave a *review.*":"Leave a *review.*","Leave it empty to show the company name and the year it started.":"Leave it empty to show the company name and the year it started.","Left items":"Left items","Left panel":"Left panel",Letters:"Letters",Lifestyle:"Lifestyle","Lifestyle photos":"Lifestyle photos","Link a menu in the inspector →":"Link a menu in the inspector →","Link alignment":"Link alignment","Link to group":"Link to group","Linked to “{name}” · every spec row follows the product.":"Linked to “{name}” · every spec row follows the product.","Linked to “{name}” · title, description, category, price & image follow the product.":"Linked to “{name}” · title, description, category, price & image follow the product.","Linked to “{name}” · {n} card from all products’ media groups.":"Linked to “{name}” · {n} card from all products’ media groups.","Linked to “{name}” · {n} card from its media groups.":"Linked to “{name}” · {n} card from its media groups.","Linked to “{name}” · {n} cards from all products’ media groups.":"Linked to “{name}” · {n} cards from all products’ media groups.","Linked to “{name}” · {n} cards from its media groups.":"Linked to “{name}” · {n} cards from its media groups.","Linked to “{name}” — no longer in the catalog.":"Linked to “{name}” — no longer in the catalog.","Linked to “{name}” — this product has no spec data yet.":"Linked to “{name}” — this product has no spec data yet.","Linked to “{name}” — {n} link. Re-pull after editing the menu:":"Linked to “{name}” — {n} link. Re-pull after editing the menu:","Linked to “{name}” — {n} links. Re-pull after editing the menu:":"Linked to “{name}” — {n} links. Re-pull after editing the menu:","Linking to {place}…":"Linking to {place}…","Load Rating":"Load Rating","Loading form…":"Loading form…","Loading menus…":"Loading menus…","Loading sample product…":"Loading sample product…","Logo (SVG)":"Logo (SVG)","Logo fills its column":"Logo fills its column","Logo fills its column on {view}":"Logo fills its column on {view}","Logo fills its row":"Logo fills its row","Logo fills its row on {view}":"Logo fills its row on {view}","Lug Count":"Lug Count",Lugs:"Lugs",M:"M","Main + thumbs":"Main + thumbs","Main only":"Main only",Make:"Make","Manage menus →":"Manage menus →",Marker:"Marker",Max:"Max","Media group":"Media group","Menu Item":"Menu Item","Menu link":"Menu link","Menu row":"Menu row","Message form":"Message form","Message us":"Message us","Messaging Strip":"Messaging Strip","Messaging cards":"Messaging cards",Meta:"Meta","Meta label":"Meta label","Meta lines":"Meta lines","Methods from":"Methods from",Min:"Min",Model:"Model","Month YYYY":"Month YYYY","More images":"More images","More like this":"More like this","More {unit} on {view}":"More {unit} on {view}","My Car":"My Car","Name A–Z":"Name A–Z","Name, description and image come from {place}. Edit them there — this card updates to match.":"Name, description and image come from {place}. Edit them there — this card updates to match.","Narrow image":"Narrow image",Necessary:"Necessary",Never:"Never","New form +":"New form +",Newest:"Newest","Newsletter (built in)":"Newsletter (built in)","Newsletter panel":"Newsletter panel","No categories on this product":"No categories on this product","No company logo on file — upload an SVG or the wordmark is used.":"No company logo on file — upload an SVG or the wordmark is used.","No compatible tyres found for this wheel’s sizes yet — tyres appear automatically when a matching size is active and priced in the catalog.":"No compatible tyres found for this wheel’s sizes yet — tyres appear automatically when a matching size is active and priced in the catalog.","No description yet":"No description yet","No detail shots on this finish yet. Tick a close-up on the design's renderings and give it a title. This section is hidden on the live page until then.":"No detail shots on this finish yet. Tick a close-up on the design's renderings and give it a title. This section is hidden on the live page until then.","No finishes on this product":"No finishes on this product","No fitment data for this wheel — pick a wheel with fitment specs.":"No fitment data for this wheel — pick a wheel with fitment specs.","No form yet":"No form yet","No image yet":"No image yet","No logo — “{name}” wordmark shown":"No logo — “{name}” wordmark shown","No menus":"No menus","No menus found":"No menus found","No menus yet. Create one in {place}, then pick it here.":"No menus yet. Create one in {place}, then pick it here.","No models listed":"No models listed","No product chosen yet, so reviews of every product show.":"No product chosen yet, so reviews of every product show.","No products in this category":"No products in this category","No products in this website's catalog yet — curate products to see them here.":"No products in this website's catalog yet — curate products to see them here.","No products in “{name}” yet":"No products in “{name}” yet","No trims listed":"No trims listed","No tyres in this website's catalog yet — curate products to see them here.":"No tyres in this website's catalog yet — curate products to see them here.","No wheels in this website's catalog yet — curate products to see them here.":"No wheels in this website's catalog yet — curate products to see them here.","No years listed":"No years listed","None (write the cards yourself)":"None (write the cards yourself)","None (write the rows yourself)":"None (write the rows yourself)","None of this product’s finishes has an image, so none can be shown on the card. Add an image to a finish on the product record to pick it here.":"None of this product’s finishes has an image, so none can be shown on the card. Add an image to a finish on the product record to pick it here.","None — this section will be empty":"None — this section will be empty","Not authorized yet — reopen once the editor has loaded.":"Not authorized yet — reopen once the editor has loaded.","Not your size":"Not your size","Number or ID":"Number or ID","OEM front":"OEM front","OEM front tyres":"OEM front tyres","OEM rear":"OEM rear","OEM rear tyres":"OEM rear tyres",Offset:"Offset","Offset (ET)":"Offset (ET)","On scroll up":"On scroll up","On the photo":"On the photo","Only for looking at while you design. Shoppers always see the product they opened.":"Only for looking at while you design. Shoppers always see the product they opened.","Open chat":"Open chat","Open live":"Open live","Open now badge":"Open now badge","Opening sort":"Opening sort","Option label":"Option label",Options:"Options",Others:"Others","Others gallery":"Others gallery",Outside:"Outside","Outside click":"Outside click","Own row":"Own row",PCD:"PCD","PCD · fitment":"PCD · fitment",PDF:"PDF","PDF · DOC · DOCX · TXT":"PDF · DOC · DOCX · TXT","PDF · JPG · PNG":"PDF · JPG · PNG","PNG · ICO · SVG":"PNG · ICO · SVG","PNG · JPG":"PNG · JPG","PNG · JPG · MP4":"PNG · JPG · MP4","PNG · JPG · SVG · WEBP · MP4":"PNG · JPG · SVG · WEBP · MP4","PNG · JPG · WEBP":"PNG · JPG · WEBP","Photo cards":"Photo cards",Photos:"Photos","Pick a category from {place} to fill this card’s name, description and image. That content is edited in the category.":"Pick a category from {place} to fill this card’s name, description and image. That content is edited in the category.","Pick a form to show here, or build a new one. Forms are made once in {place} and can be shown on any number of pages.":"Pick a form to show here, or build a new one. Forms are made once in {place} and can be shown on any number of pages.","Pick a menu to drive the header links, or keep the built-in default links.":"Pick a menu to drive the header links, or keep the built-in default links.","Pick a product in the panel to fill this hero.":"Pick a product in the panel to fill this hero.","Pick a product to fill the spec table from the catalog, or keep “None” to write the rows yourself.":"Pick a product to fill the spec table from the catalog, or keep “None” to write the rows yourself.","Pick a product — or All products — to build the galleries from media groups, or keep “None” to author the cards yourself.":"Pick a product — or All products — to build the galleries from media groups, or keep “None” to author the cards yourself.","Pick a product…":"Pick a product…","Pick the products yourself below, or choose “All products” or a category from {place}.":"Pick the products yourself below, or choose “All products” or a category from {place}.",Pickup:"Pickup",Pills:"Pills","Pinning one overrides the section’s Cover image.":"Pinning one overrides the section’s Cover image.","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.":"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.","Popup's own":"Popup's own",Popups:"Popups","Portrait (4:5)":"Portrait (4:5)","Posts to display":"Posts to display","Price / quote":"Price / quote","Price and details come from the product record — edit them in the Products database and this block updates to match. The name follows the product’s design name unless it’s overridden per storefront in {place}.":"Price and details come from the product record — edit them in the Products database and this block updates to match. The name follows the product’s design name unless it’s overridden per storefront in {place}.","Price on request":"Price on request","Price position":"Price position","Price · High":"Price · High","Price · Low":"Price · Low","Price · high to low":"Price · high to low","Price · low to high":"Price · low to high","Priority handling.":"Priority handling.",Process:"Process","Product Gallery":"Product Gallery","Product content":"Product content","Product link":"Product link","Product photos":"Product photos","Product story":"Product story","Product type":"Product type","Product types":"Product types",Products:"Products","Products per page":"Products per page",Profile:"Profile","Promise row":"Promise row","Questions? Talk to us":"Questions? Talk to us","Rate table":"Rate table",Rates:"Rates","Rates from":"Rates from","Reach by":"Reach by","Read all posts →":"Read all posts →","Ready when *you are.*":"Ready when *you are.*","Recent issues":"Recent issues","Recent posts":"Recent posts",Recommended:"Recommended","Record title":"Record title","Related products appear here on a product page.":"Related products appear here on a product page.","Replace SVG logo":"Replace SVG logo","Request a quote":"Request a quote","Response time":"Response time","Result count":"Result count","Results button":"Results button","Results link":"Results link",Retry:"Retry","Reverse the Logo":"Reverse the Logo","Review content":"Review content","Review title (optional)":"Review title (optional)","Reviews are collected by the Review Form section and wait for your approval before they show.":"Reviews are collected by the Review Form section and wait for your approval before they show.","Right panel · actions":"Right panel · actions","Right panel · choices":"Right panel · choices","Right panel · form":"Right panel · form",Rim:"Rim","Rim Profile":"Rim Profile","Routing groups":"Routing groups",Row:"Row","Row shape":"Row shape","Row {n}":"Row {n}",Rows:"Rows","Rows from":"Rows from",S:"S","STP · STEP · DXF · PDF":"STP · STEP · DXF · PDF","Same day":"Same day","Same row":"Same row","Sample review title":"Sample review title","Sample reviewer":"Sample reviewer","Save this address to my account":"Save this address to my account","Saving…":"Saving…","Search forms…":"Search forms…","Search your catalog…":"Search your catalog…","Second card":"Second card","Second detail":"Second detail","Second place":"Second place","Second rate":"Second rate","Second room":"Second room","Secondary button":"Secondary button","Secondary link":"Secondary link","Section label":"Section label","Section shape":"Section shape","Section title":"Section title","Section's own":"Section's own","See all results":"See all results","Select a menu…":"Select a menu…","Select a product…":"Select a product…","Session · 60 min":"Session · 60 min","Session · 60 min · Night":"Session · 60 min · Night","Set a design code":"Set a design code","Set a product design code on this section to show one product's reviews; leave it blank for the whole store.":"Set a product design code on this section to show one product's reviews; leave it blank for the whole store.","Set the default Light / Dark / Auto mode and show or hide the light↔dark switch in Appearance.":"Set the default Light / Dark / Auto mode and show or hide the light↔dark switch in Appearance.","Set up display mode →":"Set up display mode →","Sets how tall the header bar is; the content below it shifts down to match.":"Sets how tall the header bar is; the content below it shifts down to match.","Sets the logo’s height; the width follows the logo’s own proportions.":"Sets the logo’s height; the width follows the logo’s own proportions.","Sets the {view} view — switch views in the top bar to set each one.":"Sets the {view} view — switch views in the top bar to set each one.",Settings:"Settings",Setup:"Setup",Shipping:"Shipping","Shipping cannot be calculated right now. Please try again.":"Shipping cannot be calculated right now. Please try again.","Ships to":"Ships to","Ships to · fallback":"Ships to · fallback",Shop:"Shop","Short brand tagline":"Short brand tagline","Short description":"Short description","Show / hide elements":"Show / hide elements","Show all blog posts":"Show all blog posts","Show all items":"Show all items","Show as":"Show as","Show as accordion":"Show as accordion","Show by itself":"Show by itself","Show cover image on the smaller cards":"Show cover image on the smaller cards","Show in the buy box":"Show in the buy box","Show links":"Show links","Show links from":"Show links from","Show links to":"Show links to","Show on the card":"Show on the card","Show selector":"Show selector","Show tab":"Show tab","Show “Other” reason":"Show “Other” reason","Shown only while the site serves no countries — otherwise the site's default country is stated":"Shown only while the site serves no countries — otherwise the site's default country is stated","Shows this source’s products as they are now, here and on the live page. Set how many appear with “Items to display”.":"Shows this source’s products as they are now, here and on the live page. Set how many appear with “Items to display”.","Signup form":"Signup form",Site:"Site","Site Footer":"Site Footer","Site Header":"Site Header","Size (blank = none selected)":"Size (blank = none selected)","Size · diameter":"Size · diameter","Size-filter chips":"Size-filter chips","Sort + Clear all":"Sort + Clear all","Sort control":"Sort control","Sort · Featured":"Sort · Featured","Source product":"Source product","Space from the logo":"Space from the logo","Spec table":"Spec table","Specifications *table.*":"Specifications *table.*",Specs:"Specs","Speed rating":"Speed rating","Staggered spread":"Staggered spread","Status rail":"Status rail",Step:"Step","Sticky header":"Sticky header","Storefront › Settings › Regions & currencies":"Storefront › Settings › Regions & currencies","Storefront → Booking Services":"Storefront → Booking Services","Storefront → Catalog":"Storefront → Catalog","Storefront → Categories":"Storefront → Categories","Storefront → Forms":"Storefront → Forms","Storefront → Menus":"Storefront → Menus","Sub line":"Sub line","Sub-line":"Sub-line","Sub-line · empty":"Sub-line · empty","Sub-line · one set":"Sub-line · one set","Sub-line · several sets":"Sub-line · several sets","Submit box":"Submit box","Submit button":"Submit button","Submit-failed error":"Submit-failed error","Subscribe Form":"Subscribe Form","Subscribe with Posts":"Subscribe with Posts","Subscribe →":"Subscribe →","Subscribed button":"Subscribed button","Subscribed ✓":"Subscribed ✓","Success state":"Success state","Switch to Box header":"Switch to Box header","Switching…":"Switching…","Syncing from the catalog…":"Syncing from the catalog…","Syncing media from the catalog…":"Syncing media from the catalog…","Tab switcher":"Tab switcher",Tag:"Tag","Tag filters":"Tag filters","Tell readers what they get and how often. One email, straight to the inbox. We will never sell your address.":"Tell readers what they get and how often. One email, straight to the inbox. We will never sell your address.","Template pages":"Template pages","Text color at the top":"Text color at the top","Text from":"Text from","Thank-you message":"Thank-you message","That didn’t come back — pick the form from the list, or try again.":"That didn’t come back — pick the form from the list, or try again.","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.","The banner's words follow each visitor's country. Turn consent on or off, and pick the privacy page, in Admin › Storefront › Marketing › 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.","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.":"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.","The header settings could not be read. Try again.":"The header settings could not be read. Try again.","The linked menu":"The linked menu","The links are typed once for the whole website, in Site settings.":"The links are typed once for the whole website, in Site settings.","The links this menu shows on a computer. Empty To means to the end.":"The links this menu shows on a computer. Empty To means to the end.","The menu linked here no longer exists in {place}, so the header shows placeholder links. Pick another menu.":"The menu linked here no longer exists in {place}, so the header shows placeholder links. Pick another menu.","The photo's own shape":"The photo's own shape","The questions, the button text and the thank-you message all come from {place}. Edit them there — this section updates to match.":"The questions, the button text and the thank-you message all come from {place}. Edit them there — this section updates to match.","The vehicle question appears here on a tyre product page, with one verdict per size.":"The vehicle question appears here on a tyre product page, with one verdict per size.","The website’s pictures appear here, in the order they are put in. A website with no pictures draws nothing.":"The website’s pictures appear here, in the order they are put in. A website with no pictures draws nothing.","The week":"The week","The whole hero comes from the product record — title, price, pictures, options and Add to Cart. Edit the product in the Products database and this hero updates to match.":"The whole hero comes from the product record — title, price, pictures, options and Add to Cart. Edit the product in the Products database and this hero updates to match.","Third card":"Third card","Third detail":"Third detail","Third room":"Third room","This column isn't linked to a menu, so the preview shows placeholder links. Pick a menu above.":"This column isn't linked to a menu, so the preview shows placeholder links. Pick a menu above.","This form has no fields yet, so there is nothing for a visitor to fill in.":"This form has no fields yet, so there is nothing for a visitor to fill in.","This form is switched off, so it won’t appear on the published page. Turn it back on in {place}.":"This form is switched off, so it won’t appear on the published page. Turn it back on in {place}.","This header uses the old layout":"This header uses the old layout","This hero always shows a real product. Pick one to fill the title, price, pictures, options and Add to Cart from the catalog.":"This hero always shows a real product. Pick one to fill the title, price, pictures, options and Add to Cart from the catalog.","This menu draws no links: its card template is empty. Undo the delete, or delete this Menu and add it again.":"This menu draws no links: its card template is empty. Undo the delete, or delete this Menu and add it again.","This menu has no links yet — add them in {place}.":"This menu has no links yet — add them in {place}.","This product":"This product","This product has no finishes yet, so its card falls back to the product image — or an empty placeholder when it has none. Add finishes to the product record, then give each one an image.":"This product has no finishes yet, so its card falls back to the product image — or an empty placeholder when it has none. Add finishes to the product record, then give each one an image.","This product’s photos appear here on a product page. Add media groups in the product’s Media tab.":"This product’s photos appear here on a product page. Add media groups in the product’s Media tab.","This product’s sizes appear here on a product page.":"This product’s sizes appear here on a product page.","This record’s pictures appear here on its page. A record with no pictures draws nothing.":"This record’s pictures appear here on its page. A record with no pictures draws nothing.","This section points at “{slug}”, and this website has no form with that name. Pick one from the list above, or leave it — nothing has been changed.":"This section points at “{slug}”, and this website has no form with that name. Pick one from the list above, or leave it — nothing has been changed.","This section still points at “{slug}”, and that is unchanged.":"This section still points at “{slug}”, and that is unchanged.","This shop does not take payment online yet. Please contact the shop to order.":"This shop does not take payment online yet. Please contact the shop to order.","This visit":"This visit","This website has no currency yet. Add one in {place} and these cards will price. Only you can see this line.":"This website has no currency yet. Add one in {place} and these cards will price. Only you can see this line.","This website’s forms couldn’t be loaded, so there is nothing to choose from yet.":"This website’s forms couldn’t be loaded, so there is nothing to choose from yet.","Tick label":"Tick label",Tiled:"Tiled","Title / product":"Title / product",To:"To",Tools:"Tools","Tracked to your door.":"Tracked to your door.",Trigger:"Trigger",Trim:"Trim","Trust markers":"Trust markers","Typed reviews":"Typed reviews","Tyre type":"Tyre type",Tyres:"Tyres","Tyres shown are fitment-matched companions.":"Tyres shown are fitment-matched companions.","Tyres that fit this product":"Tyres that fit this product","Under the title":"Under the title",Unknown:"Unknown","Update links":"Update links","Updating…":"Updating…","Upload SVG logo":"Upload SVG logo",Uppercase:"Uppercase","Use company default":"Use company default","Use my real delivery options":"Use my real delivery options","Using your company logo from the database.":"Using your company logo from the database.",VIP:"VIP",Vehicle:"Vehicle","Vehicle catalog unavailable in this preview — the picker fills from the live fitment API on the published site.":"Vehicle catalog unavailable in this preview — the picker fills from the live fitment API on the published site.","Vehicle fitment":"Vehicle fitment","Vehicle list unavailable":"Vehicle list unavailable",Vertical:"Vertical",Videos:"Videos","View the full archive →":"View the full archive →","View tyre":"View tyre",Visibility:"Visibility","Waiting for editor authorization…":"Waiting for editor authorization…","Welcome heading":"Welcome heading","Welcome intro":"Welcome intro","What a visit costs.":"What a visit costs.","What the site needs to work, such as remembering this choice. The site cannot work without them.":"What the site needs to work, such as remembering this choice. The site cannot work without them.","What this room has.":"What this room has.","What would you like to cover?":"What would you like to cover?",Wheel:"Wheel","Wheel Spec":"Wheel Spec",Wheels:"Wheels","Wheels this product fits":"Wheels this product fits","Where the answers go":"Where the answers go","Whether the footer's blocks sit on the page's column, or run edge to edge. The background always spans the screen.":"Whether the footer's blocks sit on the page's column, or run edge to edge. The background always spans the screen.","Which countries this website serves — and each region's own URL — is set in the admin console under {place}. Whether the picker is SHOWN stays here: that is header chrome, but the served-country list has tax consequences and belongs with commerce configuration.":"Which countries this website serves — and each region's own URL — is set in the admin console under {place}. Whether the picker is SHOWN stays here: that is header chrome, but the served-country list has tax consequences and belongs with commerce configuration.","Who to ask":"Who to ask","Who to ask for":"Who to ask for",Wide:"Wide","Will it fit *your car?*":"Will it fit *your car?*",Window:"Window","Your Selection":"Your Selection","Your cart":"Your cart","Your turn":"Your turn",columns:"columns","e.g. D00123 · blank = the whole store":"e.g. D00123 · blank = the whole store","items per row":"items per row",paypal:"paypal","the linked menu":"the linked menu","your@email.com":"your@email.com","{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.":"{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.","{count} becomes the number of sets":"{count} becomes the number of sets","{list} and {last}":"{list} and {last}","{name} · hidden":"{name} · hidden","{name} · preview only":"{name} · preview only","{name} — no image":"{name} — no image","{name} — no render":"{name} — no render","{n} field":"{n} field","{n} fields":"{n} fields","{n} photos":"{n} photos","{n} pixels":"{n} pixels","{n} size":"{n} size","{n} sizes":"{n} sizes","{n} {many}":"{n} {many}","{n} {one}":"{n} {one}","{section} does not apply to {kind}. It is hidden on the live page.":"{section} does not apply to {kind}. It is hidden on the live page.","{slug} (not in this list)":"{slug} (not in this list)","{slug} — no form with this name":"{slug} — no form with this name","{text} draws the words — Search, Account, Bag — instead of the little pictures. It changes how they look, not whether they are shown: that stays with the switches below.":"{text} draws the words — Search, Account, Bag — instead of the little pictures. It changes how they look, not whether they are shown: that stays with the switches below.","{title} (switched off)":"{title} (switched off)","{uppercase} draws SEARCH and BAG; {capitalised} draws Search and Bag. It covers the menu links and the Tools words together, and it leaves a name like FusionForge exactly as you typed it.":"{uppercase} draws SEARCH and BAG; {capitalised} draws Search and Bag. It covers the menu links and the Tools words together, and it leaves a name like FusionForge exactly as you typed it.","© Your company":"© Your company","— Not linked —":"— Not linked —","“Other” chip label":"“Other” chip label","“Other” note body":"“Other” note body","“Other” note title":"“Other” note title","“Other” reason":"“Other” reason","“See gallery” link":"“See gallery” link","“{name}” no longer exists in {place}, so the preview shows placeholder links. Pick another menu.":"“{name}” no longer exists in {place}, so the preview shows placeholder links. Pick another menu.","“{relationship}” does not apply to this product. It is hidden on the live page.":"“{relationship}” does not apply to this product. It is hidden on the live page.","→ Newsletter":"→ Newsletter"};export{e as STOREFRONT_BLOCKS_WORDS};
|