efficient-storefront-blocks 0.58.0 → 0.59.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 +18 -0
- package/dist/chunks/{EditorPreviewCheckout-4NGRJA3T.js → EditorPreviewCheckout-RH4YMFWR.js} +1 -1
- package/dist/chunks/{SiteEditorProvider-V5FE5UD6.js → SiteEditorProvider-CDMOH46L.js} +1 -1
- package/dist/chunks/{chunk-SJQTKWV3.js → chunk-76GXRMJK.js} +1 -1
- package/dist/chunks/chunk-U72V3KUB.js +261 -0
- package/dist/chunks/chunk-UZYSAKGR.js +1 -0
- package/dist/chunks/{fitment-data-OIWU6HGJ.js → fitment-data-NSCUVNS2.js} +1 -1
- package/dist/contract.js +7 -1
- package/dist/editor/lib/puck/config.js +1 -1
- package/dist/editor/lib/storefront-editor-words.d.ts +1 -1
- package/dist/editor/lib/storefront-editor-words.js +1 -1
- package/dist/index.js +79 -87
- package/dist/render/app/globals.css +2 -2
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/GalleryItem.d.ts +6 -0
- package/dist/render/components/GalleryItem.js +1 -1
- package/dist/render/lib/content/site.d.ts +0 -2
- package/dist/render/lib/content/site.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/GalleryItem/render.js +1 -1
- package/dist/words.d.ts +7 -6
- package/dist/words.js +4 -4
- package/package.json +4 -4
- package/dist/chunks/chunk-4AKN63X5.js +0 -1
- package/dist/chunks/chunk-PHH7L5FJ.js +0 -255
- package/dist/render/components/LiveSiteMapsProvider.d.ts +0 -6
- package/dist/render/components/LiveSiteMapsProvider.js +0 -1
- /package/dist/chunks/{chunk-K4AZ5SUU.js → chunk-2PHMIP2S.js} +0 -0
- /package/dist/chunks/{chunk-76HTJBKU.js → chunk-GHD5CTVU.js} +0 -0
- /package/dist/chunks/{chunk-PHH7L5FJ.js.LEGAL.txt → chunk-U72V3KUB.js.LEGAL.txt} +0 -0
|
@@ -1090,13 +1090,13 @@ body .sf-site-header[data-header-ink="dark"] {
|
|
|
1090
1090
|
}
|
|
1091
1091
|
|
|
1092
1092
|
/* ─── THE BOX HEADER'S MENU ALIGNMENT ─────────────────────────────────
|
|
1093
|
-
Where the old header put its menu, as the page Menu's `
|
|
1093
|
+
Where the old header put its menu, as the page Menu's `Link alignment` and
|
|
1094
1094
|
`Show links` (lib/content/menu-row; Lewis 2026-10-12, Q2 and Q4 option B).
|
|
1095
1095
|
The bar stays ONE FLAT ROW — Logo, Menu, tools — so the phone and mid-width
|
|
1096
1096
|
rules above keep working; these only place the menu where the bar is one
|
|
1097
1097
|
row, and step aside where it stacks.
|
|
1098
1098
|
|
|
1099
|
-
One row (801px up): a Menu with `
|
|
1099
|
+
One row (801px up): a Menu with `Link alignment` takes the bar's free space
|
|
1100
1100
|
and puts its links at its start, centre or end. `Center` gives the cells
|
|
1101
1101
|
either side equal shares, so the links sit on the bar's centre (the old
|
|
1102
1102
|
1fr auto 1fr). A link outside a Menu's `Show links` range is hidden.
|
|
@@ -25,6 +25,12 @@ export declare const GALLERY_TILE_PARTS: readonly [{
|
|
|
25
25
|
}];
|
|
26
26
|
export declare const GALLERY_GRID_ATTR = "data-gallery-grid";
|
|
27
27
|
export declare const GALLERY_TILE_ATTR = "data-gallery-tile";
|
|
28
|
+
export declare const GALLERY_ITEM_HINTS: {
|
|
29
|
+
readonly process: "Category";
|
|
30
|
+
readonly eyebrow: "Subtitle";
|
|
31
|
+
readonly name: "Item name";
|
|
32
|
+
readonly meta: "Detail";
|
|
33
|
+
};
|
|
28
34
|
export declare const GALLERY_ITEM_SEEDS: GalleryShowcaseCard[];
|
|
29
35
|
export interface GalleryItemProps extends GalleryShowcaseCard {
|
|
30
36
|
ratio?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as t,jsxs as
|
|
1
|
+
"use client";import{jsx as t,jsxs as n,Fragment as d}from"react/jsx-runtime";import{createContext as R,useCallback as $,useContext as A,useEffect as I,useRef as G,useState as N}from"react";import k from"next/link";import H from"./GalleryCard.js";import O,{LightboxClose as M}from"./Lightbox.js";import{renderGold as p,renderHeadline as Y}from"efficient-web-builder/render/components/goldPhrases";import{sizedImage as D}from"efficient-web-builder/format/lib/sized-image";const F="(max-width: 1100px) 100vw, min(59vw, 1050px)",B=R({}),oe=[{id:"tag",label:"Tag"},{id:"eyebrow",label:"Eyebrow"},{id:"title",label:"Title"},{id:"meta",label:"Meta"},{id:"number",label:"Card number"}],V="data-gallery-grid",L="data-gallery-tile";function W(r,l){const[s,m]=N(null);return I(()=>{const i=r.current,o=i?.closest(`[${V}]`);if(!i||!o)return;const h=()=>{const u=Array.from(o.querySelectorAll(`[${L}]`)),g=u.indexOf(i),x=g>=0?{index:g+1,total:u.length}:null;m(e=>e?.index===x?.index&&e?.total===x?.total?e:x)};if(h(),!l)return;const b=new MutationObserver(h);return b.observe(o,{childList:!0,subtree:!0}),()=>b.disconnect()},[r,l]),s}const le={process:"Category",eyebrow:"Subtitle",name:"Item name",meta:"Detail"},q=()=>({image:"",href:"#",process:"",eyebrow:"",name:"",meta:""}),ae=Array.from({length:6},q);function U(r,l){return(r??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||l}function Z(r){const l=(r.photos??[]).map(o=>o?.src).filter(o=>!!o),s=r.image||l[0]||"",m=[s,...l].filter(o=>!!o),i=U(r.name,"gallery-item");return{car:r.eyebrow??"",wheel:r.name??"",process:r.process??"",finish:r.meta??"",imageLabel:`${i}.jpg`,detailLabel:`${i}-detail.jpg`,imageSrc:s||void 0,detailSrc:l[0]||s||void 0,photos:m,href:r.href}}function J({editing:r=!1,previewHover:l,ratio:s,captionPlace:m,...i}){const{galleryHref:o="/gallery",submitHref:h="/contact",previewHover:b,display:u,displayPhone:g,styleOwner:x}=A(B),e=Z(i),a=e.photos??(e.imageSrc?[e.imageSrc]:[]),C=G(null),S=$(c=>{C.current=c},[]),_=W(C,r),E=r&&(!!l||!!b),[T,f]=N(!1),[v,y]=N(0),j=()=>y(c=>(c-1+a.length)%a.length),z=()=>y(c=>(c+1)%a.length),w=a[v]??e.imageSrc??"",P=t(H,{build:e,forceHover:E,index:_?.index,total:_?.total,ratio:s,captionPlace:m,display:u,displayPhone:g,styleOwner:x,editing:r});return n(d,{children:[r?t("div",{ref:S,[L]:"",className:"block w-full text-left",children:P}):t("button",{ref:S,[L]:"",type:"button","aria-label":`Open ${e.car||"build"} on ${e.wheel||"wheel"}`,onClick:()=>{y(0),f(!0)},className:"block w-full cursor-pointer text-left focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",children:P}),t(O,{open:T,onClose:()=>f(!1),label:`${e.car} on ${e.wheel}`,onPrev:a.length>1?j:void 0,onNext:a.length>1?z:void 0,className:"flex items-center justify-center p-6 backdrop-blur-[8px] max-[700px]:p-3",style:{background:"color-mix(in oklab, var(--bg) 78%, transparent)"},children:n("div",{onClick:c=>c.stopPropagation(),className:"relative grid w-[min(1800px,100%)] max-h-[calc(100vh-48px)] grid-cols-[1.4fr_1fr] overflow-hidden border border-line bg-bg max-[1100px]:grid-cols-1 max-[1100px]:overflow-auto",style:{boxShadow:"0 60px 120px -20px rgba(0,0,0,0.7)"},children:[t(M,{label:"Close popup",className:"absolute right-[24px] top-[24px] z-[5] flex h-[56px] w-[56px] items-center justify-center border border-line font-mono text-[length:var(--size-label,21px)] text-fg-dim transition-colors hover:border-accent hover:text-fg",style:{background:"color-mix(in oklab, var(--bg) 70%, transparent)"},children:"✕"}),n("div",{className:"relative flex min-h-[690px] items-center justify-center overflow-hidden bg-surface-2 max-[1100px]:min-h-[450px]",children:[w&&t("img",{...D(w,{fallbackWidth:1280}),sizes:F,alt:`${e.car} — ${v+1} of ${a.length}`,className:"block h-full max-h-[88vh] w-full object-cover"},w),a.length>1&&n(d,{children:[t("button",{type:"button","aria-label":"Previous photo",onClick:j,className:"absolute left-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"◁"}),t("button",{type:"button","aria-label":"Next photo",onClick:z,className:"absolute right-4 top-1/2 flex h-16 w-16 -translate-y-1/2 cursor-pointer items-center justify-center border border-fg-dim/40 bg-overlay-scrim/40 font-mono text-[length:var(--size-label,24px)] text-fg-dim transition-colors hover:border-accent hover:text-accent",children:"▷"}),n("span",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 border border-fg-dim/30 bg-overlay-scrim/50 px-4 py-1.5 font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em] text-fg-dim backdrop-blur-[4px]",children:[v+1," / ",a.length]})]})]}),n("div",{className:"flex flex-col gap-[30px] px-[60px] py-[72px] max-[1100px]:px-9 max-[1100px]:py-[54px]",children:[e.process&&t("span",{className:"font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.3em] text-accent",children:p(e.process)}),e.wheel&&t("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(42px,4.5vw,60px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.025em]",children:Y(e.wheel,!1)}),e.car&&n("div",{className:"font-heading3 text-[length:var(--size-headingSmall,27px)] leading-[1.4] text-fg",children:["on ",t("em",{className:"font-serif font-normal italic text-accent tracking-[-0.01em]",children:p(e.car,!0)})]}),n("dl",{className:"mt-3 grid grid-cols-[auto_1fr] gap-x-7 gap-y-[18px] border-y border-line py-[30px] font-mono text-[length:var(--size-label,15px)] uppercase tracking-[0.22em]",children:[e.wheel&&n(d,{children:[t("dt",{className:"text-fg-dim",children:"Wheel"}),t("dd",{className:"text-fg",children:p(e.wheel)})]}),e.process&&n(d,{children:[t("dt",{className:"text-fg-dim",children:"Process"}),t("dd",{className:"text-fg",children:p(e.process)})]}),e.finish&&n(d,{children:[t("dt",{className:"text-fg-dim",children:"Finish"}),t("dd",{className:"text-fg",children:p(e.finish)})]}),e.car&&n(d,{children:[t("dt",{className:"text-fg-dim",children:"Vehicle"}),t("dd",{className:"text-fg",children:p(e.car)})]})]}),n("div",{className:"mt-auto flex flex-col gap-3.5 pt-6",children:[n(k,{href:e.href||"/wheels",onClick:()=>f(!1),className:"group flex items-center justify-between gap-6 border border-btn bg-btn px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-btn-ink transition-colors hover:border-fg hover:bg-fg",children:[t("span",{children:"View product"}),t("span",{className:"transition-transform group-hover:translate-x-[6px]",children:"→"})]}),n(k,{href:o,onClick:()=>f(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[t("span",{children:"See more builds"}),t("span",{children:"→"})]}),n(k,{href:h,onClick:()=>f(!1),className:"flex items-center justify-between gap-6 border border-line px-9 py-6 font-mono text-[length:var(--size-label,16px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[t("span",{children:"Submit your build"}),t("span",{children:"→"})]})]})]})]})})]})}export{V as GALLERY_GRID_ATTR,le as GALLERY_ITEM_HINTS,ae as GALLERY_ITEM_SEEDS,L as GALLERY_TILE_ATTR,oe as GALLERY_TILE_PARTS,B as GalleryLinksContext,J as default};
|
|
@@ -51,8 +51,6 @@ export interface SiteIdentity {
|
|
|
51
51
|
consentEnabled: boolean;
|
|
52
52
|
consentPrivacyPage: string | null;
|
|
53
53
|
consentNoticeOptOut: boolean;
|
|
54
|
-
mapsApiKey: string | null;
|
|
55
|
-
mapsMapId: string | null;
|
|
56
54
|
socialLinks: SocialLinks;
|
|
57
55
|
}
|
|
58
56
|
export declare const NEUTRAL_SITE_IDENTITY: SiteIdentity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{cache as s}from"react";import{products as i}from"../api/index.js";import{cachedChrome as c}from"../chrome-cache.js";import{loadChrome as d}from"../chrome-load.js";import{NEUTRAL_SITE_NAME as a,resolveSiteName as t}from"efficient-web-builder/format/lib/content/site-name";import{EMPTY_SOCIAL_LINKS as o,normalizeSocialLinks as m}from"efficient-web-builder/format/lib/content/social-links";function p(e,n){return e?.trim()||n}function
|
|
1
|
+
import{cache as s}from"react";import{products as i}from"../api/index.js";import{cachedChrome as c}from"../chrome-cache.js";import{loadChrome as d}from"../chrome-load.js";import{NEUTRAL_SITE_NAME as a,resolveSiteName as t}from"efficient-web-builder/format/lib/content/site-name";import{EMPTY_SOCIAL_LINKS as o,normalizeSocialLinks as m}from"efficient-web-builder/format/lib/content/social-links";function p(e,n){return e?.trim()||n}function A({legalName:e,foundedYear:n,siteName:r},l=new Date().getFullYear()){const u=p(e,r);return`© ${n&&n<l?`${n}–${l}`:`${l}`} ${u}`}const y={name:a,legalName:null,foundedYear:null,faviconUrl:null,currencies:[],defaultCurrency:null,countries:[],defaultCountry:null,commerceEnabled:!0,cardPayments:!1,paymentMethods:[],paypalClientId:null,paypalEnvironment:null,squareApplicationId:null,squareLocationId:null,squareEnvironment:null,ga4MeasurementId:null,googleAdsId:null,googleAdsConversionLabel:null,metaPixelId:null,consentEnabled:!1,consentPrivacyPage:null,consentNoticeOptOut:!1,socialLinks:o},I=s(async()=>c("site",()=>d("site",async()=>{const e=await i.getSite();return{name:t(e.name),legalName:e.legalName?.trim()||null,foundedYear:e.foundedYear??null,faviconUrl:e.faviconUrl??null,currencies:e.currencies??[],defaultCurrency:e.defaultCurrency??null,countries:e.countries??[],defaultCountry:e.defaultCountry??null,commerceEnabled:e.commerceEnabled??!0,cardPayments:e.cardPayments??!1,paymentMethods:e.paymentMethods??(e.cardPayments?["card"]:[]),paypalClientId:e.paypalClientId??null,paypalEnvironment:e.paypalEnvironment??null,squareApplicationId:e.squareApplicationId??null,squareLocationId:e.squareLocationId??null,squareEnvironment:e.squareEnvironment??null,ga4MeasurementId:e.ga4MeasurementId??null,googleAdsId:e.googleAdsId??null,googleAdsConversionLabel:(e.googleAdsId?e.googleAdsConversionLabel:null)??null,metaPixelId:e.metaPixelId??null,consentEnabled:e.consentEnabled??!1,consentPrivacyPage:e.consentPrivacyPage??null,consentNoticeOptOut:e.consentNoticeOptOut??!1,socialLinks:m(e.socialLinks)}},y))),g=async()=>(await I()).value,S=async()=>(await g()).name,x={name:a,legalName:null,foundedYear:null,faviconUrl:null,currencies:[{code:"USD",symbol:"$",decimalPlaces:2,isDefault:!0}],defaultCurrency:"USD",countries:[{code:"US",name:"United States",currency:"USD",url:"",isDefault:!0,chargeTax:!1,taxDisplay:"none",taxName:"",taxRate:null,postalLabel:"Zip Code"}],defaultCountry:"US",commerceEnabled:!0,cardPayments:!0,paymentMethods:["card"],paypalClientId:null,paypalEnvironment:null,squareApplicationId:null,squareLocationId:null,squareEnvironment:null,ga4MeasurementId:null,googleAdsId:null,googleAdsConversionLabel:null,metaPixelId:null,consentEnabled:!1,consentPrivacyPage:null,consentNoticeOptOut:!1,socialLinks:o};export{y as NEUTRAL_SITE_IDENTITY,a as NEUTRAL_SITE_NAME,x as PREVIEW_SITE_IDENTITY,g as loadSiteIdentity,I as loadSiteIdentityResult,S as loadSiteName,A as resolveCopyright,p as resolveCopyrightName,t as resolveSiteName};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as c}from"react/jsx-runtime";import a,{GALLERY_ITEM_HINTS as i}from"../../../../../components/GalleryItem.js";import{phHide as o}from"efficient-web-builder/render/lib/puck/blocks/scaffold";function n(e,t){if(typeof e=="string")return e.trim()===t?"":e;if(e&&typeof e=="object"){const r=e;if(typeof r.text=="string"&&r.text.trim()===t)return{...r,text:""}}return e}const h={label:"Gallery Item",defaultProps:{image:"",href:"",process:"",eyebrow:"",name:"",meta:"",fromProduct:!1,product:{},previewHover:!1},render:e=>{const t=e.product??{},r=e.fromProduct===!0&&!!t.code;return c(a,{image:r?t.cover:e.image,photos:r?(t.photos??[]).map(m=>({src:m})):e.photos,href:r?t.href:e.href,process:r?t.hideProcess?void 0:t.category:o(n(e.process,i.process),i.process,e.puck),eyebrow:r?t.hideEyebrow?void 0:t.eyebrow:o(n(e.eyebrow,i.eyebrow),i.eyebrow,e.puck),name:r?t.hideName?void 0:t.name:o(n(e.name,i.name),i.name,e.puck),meta:r?t.hideFinish?void 0:t.finish:o(n(e.meta,i.meta),i.meta,e.puck),previewHover:e.previewHover,ratio:e.ratio,captionPlace:e.captionPlace,editing:e.puck?.isEditing})}};export{h as GalleryItemRender};
|
package/dist/words.d.ts
CHANGED
|
@@ -115,6 +115,7 @@ export type WebBuilderPhrase =
|
|
|
115
115
|
| "Add city"
|
|
116
116
|
| "Add group"
|
|
117
117
|
| "Add new theme"
|
|
118
|
+
| "Add office coordinates to plot the map"
|
|
118
119
|
| "Add page"
|
|
119
120
|
| "Add slide"
|
|
120
121
|
| "Add this section's copy here."
|
|
@@ -253,6 +254,7 @@ export type WebBuilderPhrase =
|
|
|
253
254
|
| "Card number"
|
|
254
255
|
| "Card outline"
|
|
255
256
|
| "Card shadow"
|
|
257
|
+
| "Card style"
|
|
256
258
|
| "Card subtitle"
|
|
257
259
|
| "Card title"
|
|
258
260
|
| "Card title one"
|
|
@@ -440,7 +442,6 @@ export type WebBuilderPhrase =
|
|
|
440
442
|
| "Essay"
|
|
441
443
|
| "Even"
|
|
442
444
|
| "Every Publish keeps a copy of the whole website: pages, menus and site styles."
|
|
443
|
-
| "Every page"
|
|
444
445
|
| "Every text on the site that follows {style} changes to look like this one. This text’s own changes are cleared, and it keeps following {style}."
|
|
445
446
|
| "Every {part} in this section follows it. The face and the size change; the letter case is the section’s own and stays as it is."
|
|
446
447
|
| "Everything else on this block comes from the linked post. Unlink it to edit by hand."
|
|
@@ -492,8 +493,6 @@ export type WebBuilderPhrase =
|
|
|
492
493
|
| "Follows the site"
|
|
493
494
|
| "Follows the style"
|
|
494
495
|
| "Footer Box"
|
|
495
|
-
| "Footer · on every page"
|
|
496
|
-
| "Footer · on every page · old style"
|
|
497
496
|
| "Footnote"
|
|
498
497
|
| "Form"
|
|
499
498
|
| "Form eyebrow"
|
|
@@ -542,8 +541,6 @@ export type WebBuilderPhrase =
|
|
|
542
541
|
| "Header and footer not live yet"
|
|
543
542
|
| "Header badge"
|
|
544
543
|
| "Header settings belong to a website."
|
|
545
|
-
| "Header · on every page"
|
|
546
|
-
| "Header · on every page · old style"
|
|
547
544
|
| "Heading"
|
|
548
545
|
| "Heading 1"
|
|
549
546
|
| "Heading 2"
|
|
@@ -629,6 +626,7 @@ export type WebBuilderPhrase =
|
|
|
629
626
|
| "LIVE"
|
|
630
627
|
| "Label"
|
|
631
628
|
| "Label color"
|
|
629
|
+
| "Label only"
|
|
632
630
|
| "Labels"
|
|
633
631
|
| "Ladder"
|
|
634
632
|
| "Large"
|
|
@@ -770,6 +768,8 @@ export type WebBuilderPhrase =
|
|
|
770
768
|
| "Offset tall"
|
|
771
769
|
| "On a phone"
|
|
772
770
|
| "On every blog post."
|
|
771
|
+
| "On every page"
|
|
772
|
+
| "On every page · old style"
|
|
773
773
|
| "On phones, content always fills the screen."
|
|
774
774
|
| "On picture"
|
|
775
775
|
| "On this page"
|
|
@@ -1161,6 +1161,7 @@ export type WebBuilderPhrase =
|
|
|
1161
1161
|
| "Total amount"
|
|
1162
1162
|
| "Total label"
|
|
1163
1163
|
| "Total line"
|
|
1164
|
+
| "Track (year rail)"
|
|
1164
1165
|
| "Trailing note"
|
|
1165
1166
|
| "Triangle ▼"
|
|
1166
1167
|
| "Trusted by *teams worldwide*"
|
|
@@ -1340,7 +1341,6 @@ export type StorefrontBlocksPhrase =
|
|
|
1340
1341
|
| "Address line 1"
|
|
1341
1342
|
| "Address line 2"
|
|
1342
1343
|
| "After close"
|
|
1343
|
-
| "Align links"
|
|
1344
1344
|
| "All brands"
|
|
1345
1345
|
| "All media groups"
|
|
1346
1346
|
| "All product types"
|
|
@@ -1595,6 +1595,7 @@ export type StorefrontBlocksPhrase =
|
|
|
1595
1595
|
| "Lifestyle"
|
|
1596
1596
|
| "Lifestyle photos"
|
|
1597
1597
|
| "Link a menu in the inspector →"
|
|
1598
|
+
| "Link alignment"
|
|
1598
1599
|
| "Link to group"
|
|
1599
1600
|
| "Linked to “{name}” · every spec row follows the product."
|
|
1600
1601
|
| "Linked to “{name}” · title, description, category, price & image follow the product."
|