efficient-web-builder 42.0.0 → 43.0.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 +164 -0
- package/dist/editor/components/AnchorField.js +1 -1
- package/dist/editor/components/DuplicatePageDialog.js +1 -1
- package/dist/editor/components/MediaUploadField.d.ts +3 -1
- package/dist/editor/components/MediaUploadField.js +1 -1
- package/dist/editor/components/PagesPanel.js +1 -1
- package/dist/editor/components/SectionEditor.d.ts +5 -1
- package/dist/editor/components/SectionEditor.js +1 -1
- package/dist/editor/components/SectionIcon.js +1 -1
- package/dist/editor/components/SectionThumbnail.js +1 -1
- package/dist/editor/components/SiteFields.d.ts +2 -1
- package/dist/editor/components/SiteFields.js +1 -1
- package/dist/editor/components/StorefrontEditor.js +1 -1
- package/dist/editor/components/StylesPanel.d.ts +3 -1
- package/dist/editor/components/StylesPanel.js +1 -1
- package/dist/editor/components/WebsiteScreenParts.js +1 -1
- package/dist/editor/components/WebsiteSettingsPanel.d.ts +6 -1
- package/dist/editor/components/WebsiteSettingsPanel.js +1 -1
- package/dist/editor/components/useHostDocumentBridge.js +1 -1
- package/dist/editor/components/useLocationsTree.js +1 -1
- package/dist/editor/components/useSectionToBoxPass.js +1 -1
- package/dist/editor/components/useSocialSettings.d.ts +2 -2
- package/dist/editor/lib/document/ColourControl.d.ts +7 -2
- package/dist/editor/lib/document/ColourControl.js +1 -1
- package/dist/editor/lib/document/blocks/general/ButtonBlock/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Flex/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/HeroSlide/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Logos/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Text/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/index.d.ts +2 -2
- package/dist/editor/lib/document/canvas-typing.js +1 -1
- package/dist/editor/lib/document/consent-words-field.d.ts +6 -0
- package/dist/editor/lib/document/consent-words-field.js +1 -0
- package/dist/editor/lib/document/controls.d.ts +13 -2
- package/dist/editor/lib/document/controls.js +1 -1
- package/dist/editor/lib/document/field-groups.js +1 -1
- package/dist/editor/lib/document/footer-blocks.js +1 -1
- package/dist/editor/lib/document/locked-blocks.d.ts +3 -0
- package/dist/editor/lib/document/locked-blocks.js +1 -1
- package/dist/editor/lib/document/overrides.js +1 -1
- package/dist/editor/lib/document/page-root-fields.d.ts +1 -0
- package/dist/editor/lib/document/page-root-fields.js +1 -1
- package/dist/editor/lib/document/section-width-fields.js +1 -1
- package/dist/editor/lib/document/selected-host.d.ts +2 -0
- package/dist/editor/lib/document/selected-host.js +1 -0
- package/dist/editor/lib/page-copy.js +1 -1
- package/dist/editor/lib/sections/section-dry-run.d.ts +2 -9
- package/dist/editor/lib/sections/section-dry-run.js +2 -2
- package/dist/format/lib/content/authored-props.js +1 -1
- package/dist/format/lib/content/block-sources.js +1 -1
- package/dist/format/lib/content/box-layout.d.ts +1 -0
- package/dist/format/lib/content/box-layout.js +1 -1
- package/dist/format/lib/content/box-shadow.d.ts +3 -0
- package/dist/format/lib/content/box-shadow.js +1 -0
- package/dist/format/lib/content/button-icon.d.ts +2 -1
- package/dist/format/lib/content/button-icon.js +1 -1
- package/dist/format/lib/content/button-look.d.ts +46 -0
- package/dist/format/lib/content/button-look.js +1 -0
- package/dist/format/lib/content/consent-banner.d.ts +21 -0
- package/dist/format/lib/content/consent-banner.js +1 -1
- package/dist/format/lib/content/contact.js +1 -1
- package/dist/format/lib/content/footer.d.ts +10 -0
- package/dist/format/lib/content/footer.js +1 -1
- package/dist/format/lib/content/gallery-layout.d.ts +12 -0
- package/dist/format/lib/content/gallery-layout.js +1 -1
- package/dist/format/lib/content/section-padding.d.ts +10 -0
- package/dist/format/lib/content/section-padding.js +1 -1
- package/dist/format/lib/content/section-width.d.ts +0 -4
- package/dist/format/lib/content/section-width.js +1 -1
- package/dist/format/lib/document/blocks/general/Logos/meta.d.ts +6 -0
- package/dist/format/lib/document/blocks/general/Logos/meta.js +1 -1
- package/dist/format/lib/document/blocks/general/SectionHeader/meta.js +1 -1
- package/dist/format/lib/document/box-footer.js +1 -1
- package/dist/format/lib/document/container-blocks.js +1 -1
- package/dist/format/lib/document/media-manifest.json +3 -2
- package/dist/format/lib/document/nestable-content-sections.js +1 -1
- package/dist/format/lib/document/passes/settings-groups.js +1 -1
- package/dist/format/lib/document/root-panel.d.ts +8 -0
- package/dist/format/lib/document/root-panel.js +1 -0
- package/dist/format/lib/document/section-catalog.js +1 -1
- package/dist/format/lib/document/source-bound-parts.js +1 -1
- package/dist/format/lib/editor-words-catalogue.d.ts +23 -4
- package/dist/format/lib/editor-words-catalogue.js +4 -4
- package/dist/format/lib/editor-words.js +1 -1
- package/dist/format/lib/hero-texture.js +1 -1
- package/dist/format/lib/hero-video.d.ts +7 -0
- package/dist/format/lib/hero-video.js +1 -1
- package/dist/format/lib/links/page-link-rules.js +1 -1
- package/dist/format/lib/non-empty-string.d.ts +1 -0
- package/dist/format/lib/non-empty-string.js +1 -0
- package/dist/format/lib/popup/look.d.ts +1 -1
- package/dist/format/lib/popup/look.js +1 -1
- package/dist/format/lib/reel.d.ts +2 -1
- package/dist/format/lib/reel.js +1 -1
- package/dist/format/lib/sections/hero-overlay.js +1 -1
- package/dist/format/lib/sections/logo-look.d.ts +7 -0
- package/dist/format/lib/sections/logo-look.js +1 -0
- package/dist/format/lib/sections/section-head-placement.d.ts +1 -0
- package/dist/format/lib/sections/section-head-placement.js +1 -1
- package/dist/format/lib/site-theme-row.d.ts +0 -1
- package/dist/format/lib/slugify.d.ts +1 -1
- package/dist/format/lib/slugify.js +1 -1
- package/dist/format/lib/theme.d.ts +2 -1
- package/dist/format/lib/theme.js +4 -4
- package/dist/render/components/BoxTabs.d.ts +2 -1
- package/dist/render/components/BoxTabs.js +1 -1
- package/dist/render/components/Btn.d.ts +1 -0
- package/dist/render/components/Btn.js +1 -1
- package/dist/render/components/ButtonBlock.d.ts +12 -1
- package/dist/render/components/ButtonBlock.js +1 -1
- package/dist/render/components/DocBody.js +5 -5
- package/dist/render/components/Flex.d.ts +3 -1
- package/dist/render/components/Flex.js +1 -1
- package/dist/render/components/LogoBlock.d.ts +1 -1
- package/dist/render/components/LogoBlock.js +1 -1
- package/dist/render/components/LogoWallContext.d.ts +12 -0
- package/dist/render/components/LogoWallContext.js +1 -0
- package/dist/render/components/Logos.d.ts +16 -1
- package/dist/render/components/Logos.js +1 -1
- package/dist/render/components/PaymentBadges.d.ts +3 -1
- package/dist/render/components/PaymentBadges.js +1 -1
- package/dist/render/components/PreviewHeaderContext.d.ts +1 -3
- package/dist/render/components/PreviewHeaderContext.js +1 -1
- package/dist/render/components/Reel.js +1 -1
- package/dist/render/components/SiteGutterFrame.d.ts +2 -1
- package/dist/render/components/SiteGutterFrame.js +1 -1
- package/dist/render/lib/document/blocks/general/ButtonBlock/render.js +1 -1
- package/dist/render/lib/document/blocks/general/Flex/render.js +1 -1
- package/dist/render/lib/document/blocks/general/HeroSlide/render.js +1 -1
- package/dist/render/lib/document/blocks/general/Logos/render.js +1 -1
- package/dist/render/lib/document/blocks/general/PaymentBadges/render.js +1 -1
- package/dist/render/lib/document/blocks/general/section-to-box-row-parts.d.ts +4 -1
- package/dist/render/lib/document/blocks/general/section-to-box-row-parts.js +1 -1
- package/dist/render/lib/document/blocks/general/section-to-box-rows-logos.d.ts +2 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-logos.js +1 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-stats.d.ts +5 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-stats.js +1 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows.d.ts +0 -4
- package/dist/render/lib/document/blocks/general/section-to-box-rows.js +1 -1
- package/dist/render/lib/document/page-render.js +1 -1
- package/dist/render/lib/document/part-rows.js +1 -1
- package/dist/render/lib/document/passes/section-anchor.js +1 -1
- package/dist/render/lib/document/text-parts.js +1 -1
- package/dist/render/lib/sections/section-to-box.d.ts +2 -11
- package/dist/render/lib/sections/section-to-box.js +1 -1
- package/dist/render/lib/text-styles/site-text-styles.js +2 -2
- package/package.json +5 -5
|
@@ -68,6 +68,7 @@ export declare const BOX_SHARE_POINTS: readonly [{
|
|
|
68
68
|
}];
|
|
69
69
|
export type BoxShare = (typeof BOX_SHARE_POINTS)[number]["value"];
|
|
70
70
|
export declare function boxShareClasses(share: unknown): string;
|
|
71
|
+
export declare function boxFitContentClass(share: unknown): string;
|
|
71
72
|
export declare const BOX_PHONE_ROW_LABEL = "Columns";
|
|
72
73
|
export declare const BOX_PHONE_ROW_MIN = 1;
|
|
73
74
|
export declare const BOX_PHONE_ROW_MAX = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _=[{label:"Start",value:"start"},{label:"Center",value:"center"},{label:"Space between",value:"between"},{label:"End",value:"end"}],g=[{label:"Start",value:"start"},{label:"Center",value:"center"},{label:"End",value:"end"},{label:"Stretch",value:"stretch"}],b={sectionPaddingTop:0,sectionPaddingBottom:0},u="Wrap",S=[{label:"Wrap",value:"wrap"},{label:"No wrap",value:"nowrap"}],a={start:"justify-start",center:"justify-center",between:"justify-between",end:"justify-end"},l={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"};function O(e,t){const o=typeof e=="string"&&e in a?a[e]:"",r=typeof t=="string"&&t in l?l[t]:"";return[o,r].filter(Boolean).join(" ")}function f(e){return e===!0||e==="wrap"?"flex-wrap":""}const B="Block widths",L=[{label:"Fit content",value:"content",weights:null},{label:"Equal",value:"equal",weights:[1,1]},{label:"Big left",value:"bigLeft",weights:[2,1]},{label:"Big right",value:"bigRight",weights:[1,2]},{label:"Bigger left",value:"biggerLeft",weights:[3,1]},{label:"Bigger right",value:"biggerRight",weights:[1,3]}],n="[&>*]:min-w-0 [&>*]:flex-1 [&>*]:basis-0",s={equal:n,bigLeft:`${n} [&>*:first-child]:min-[800px]:grow-[2]`,bigRight:`${n} [&>*:last-child]:min-[800px]:grow-[2]`,biggerLeft:`${n} [&>*:first-child]:min-[800px]:grow-[3]`,biggerRight:`${n} [&>*:last-child]:min-[800px]:grow-[3]`};function i(e){return typeof e=="string"?s[e]??"":""}const c="[&>*]:min-[800px]:basis-[content]";function w(e){return i(e)===""?c:""}const h="Columns",A=1,m=3,p={2:"max-[800px]:flex-wrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:basis-[calc((100%_-_var(--sf-gap-len,0px))/2)]",3:"max-[800px]:flex-wrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_2)/3)]"};function C(e){const t=Number(e);return p[t]??"max-[800px]:flex-col"}const N="Block spacing",v=[{label:"Each block",value:"each"},{label:"Gap only",value:"gap"}],x="sf-box-gap-only";function E(e){return e==="gap"?x:""}export{g as BOX_ALIGN_POINTS,N as BOX_BLOCK_SPACING_LABEL,v as BOX_BLOCK_SPACING_POINTS,x as BOX_GAP_ONLY_CLASS,_ as BOX_JUSTIFY_POINTS,h as BOX_PHONE_ROW_LABEL,m as BOX_PHONE_ROW_MAX,A as BOX_PHONE_ROW_MIN,B as BOX_SHARE_LABEL,L as BOX_SHARE_POINTS,u as BOX_WRAP_LABEL,S as BOX_WRAP_POINTS,b as NESTED_BOX_PADDING,E as boxBlockSpacingClass,w as boxFitContentClass,O as boxLayoutClasses,C as boxPhoneRowClasses,i as boxShareClasses,f as boxWrapClass};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const t="data-sf-box-shadow";function r(o){return o===!0}function n(o){return r(o)?{[t]:""}:{}}export{t as BOX_SHADOW_ATTR,n as boxShadowAttrs,r as boxShadowOn};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export declare const BUTTON_ICONS: readonly ["none", "arrow-right", "arrow-long-right", "arrow-up-right", "chevron-right", "external", "cart", "bag", "tag", "email", "location", "play", "download", "search", "car"];
|
|
2
2
|
export type ButtonIconChoice = (typeof BUTTON_ICONS)[number];
|
|
3
3
|
export type ButtonIconGlyph = Exclude<ButtonIconChoice, "none">;
|
|
4
|
-
export type ButtonIconSide = "before" | "after";
|
|
4
|
+
export type ButtonIconSide = "before" | "after" | "end";
|
|
5
5
|
export type ButtonWidth = "fit" | "fill";
|
|
6
6
|
export declare function storedButtonIcon(value: unknown): ButtonIconChoice | undefined;
|
|
7
7
|
export declare function buttonIconChoice(icon: unknown, arrow: unknown): ButtonIconChoice;
|
|
8
8
|
export declare function buttonIconSide(value: unknown): ButtonIconSide;
|
|
9
|
+
export declare function buttonIconAtEnd(side: unknown, width: unknown): boolean;
|
|
9
10
|
export declare function buttonWidth(value: unknown): ButtonWidth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{buttonArrowShown as o}from"./button-arrow.js";const
|
|
1
|
+
import{buttonArrowShown as o}from"./button-arrow.js";const r=["none","arrow-right","arrow-long-right","arrow-up-right","chevron-right","external","cart","bag","tag","email","location","play","download","search","car"];function e(t){return typeof t=="string"&&r.includes(t)?t:void 0}function f(t,n){return e(t)??(o(n)?"arrow-right":"none")}function i(t){return t==="before"?"before":t==="end"?"end":"after"}function a(t,n){return i(t)==="end"&&c(n)==="fill"}function c(t){return t==="fill"?"fill":"fit"}export{r as BUTTON_ICONS,a as buttonIconAtEnd,f as buttonIconChoice,i as buttonIconSide,c as buttonWidth,e as storedButtonIcon};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { CSSProperties } from "react";
|
|
2
|
+
export declare const BUTTON_PAD_KEYS: {
|
|
3
|
+
readonly top: "buttonPaddingTop";
|
|
4
|
+
readonly right: "buttonPaddingRight";
|
|
5
|
+
readonly bottom: "buttonPaddingBottom";
|
|
6
|
+
readonly left: "buttonPaddingLeft";
|
|
7
|
+
};
|
|
8
|
+
export declare const BUTTON_PAD_CLASSES = "px-6 py-4";
|
|
9
|
+
export declare const BUTTON_PAD_BUILT_IN: {
|
|
10
|
+
readonly top: number;
|
|
11
|
+
readonly right: number;
|
|
12
|
+
readonly bottom: number;
|
|
13
|
+
readonly left: number;
|
|
14
|
+
};
|
|
15
|
+
export declare const SITE_BUTTON_FILL = "var(--btn)";
|
|
16
|
+
export type ButtonLookProps = {
|
|
17
|
+
variant?: unknown;
|
|
18
|
+
buttonColor?: unknown;
|
|
19
|
+
buttonFillOpacity?: unknown;
|
|
20
|
+
buttonBorder?: unknown;
|
|
21
|
+
};
|
|
22
|
+
export declare function buttonLook(p: ButtonLookProps): {
|
|
23
|
+
fillOpacity: number;
|
|
24
|
+
border: {
|
|
25
|
+
width: number;
|
|
26
|
+
color: string;
|
|
27
|
+
};
|
|
28
|
+
changed: boolean;
|
|
29
|
+
};
|
|
30
|
+
export declare function buttonPaint(p: ButtonLookProps): CSSProperties | null;
|
|
31
|
+
export declare function buttonPadAttrs(p: Record<string, unknown>): {
|
|
32
|
+
className: string;
|
|
33
|
+
style: CSSProperties;
|
|
34
|
+
} | null;
|
|
35
|
+
export declare const BUTTON_WORDS_BUILT_IN_CASE = "upper";
|
|
36
|
+
export declare function buttonWordsSummary(style: unknown, siteStyles: readonly {
|
|
37
|
+
id?: unknown;
|
|
38
|
+
name?: unknown;
|
|
39
|
+
}[] | null | undefined, words: {
|
|
40
|
+
noStyle: string;
|
|
41
|
+
styleName: (v: {
|
|
42
|
+
kind: "heading" | "body";
|
|
43
|
+
n: number;
|
|
44
|
+
}) => string;
|
|
45
|
+
cases: Record<"none" | "upper" | "capitalize" | "lower", string>;
|
|
46
|
+
}): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{finiteNumber as s}from"../finite-number.js";import{nonEmptyString as c}from"../non-empty-string.js";import{padSideAttrs as g}from"./section-padding.js";const i={top:"buttonPaddingTop",right:"buttonPaddingRight",bottom:"buttonPaddingBottom",left:"buttonPaddingLeft"},y="px-6 py-4",x=4,d=t=>{const o=new RegExp(`\\bp${t}-(?:\\[(\\d+)px\\]|(\\d+))`).exec(y);if(!o)throw new Error(`BUTTON_PAD_CLASSES has no p${t}`);return o[1]!==void 0?Number(o[1]):Number(o[2])*x},B={top:d("y"),right:d("x"),bottom:d("y"),left:d("x")},b="var(--btn)",T=t=>t&&typeof t=="object"&&(s(t.width)!==void 0||c(t.color))?t:void 0,P=t=>Math.round(Math.min(Math.max(t,0),100));function S(t){const o=t.variant==="ghost",n=s(t.buttonFillOpacity),r=T(t.buttonBorder),e=c(t.buttonColor);return{fillOpacity:n!==void 0?P(n):o?0:100,border:{width:s(r?.width)??1,color:c(r?.color)??e??(o?"currentColor":b)},changed:n!==void 0||r!==void 0}}function $(t){const o=S(t);if(!o.changed)return null;const n=c(t.buttonColor)??b;return{background:o.fillOpacity===0?"transparent":o.fillOpacity===100?n:`color-mix(in srgb, ${n} ${o.fillOpacity}%, transparent)`,borderWidth:o.border.width,borderStyle:"solid",borderColor:o.border.color}}function A(t){const o={top:t[i.top],right:t[i.right],bottom:t[i.bottom],left:t[i.left]},n={top:t[`${i.top}Phone`],right:t[`${i.right}Phone`],bottom:t[`${i.bottom}Phone`],left:t[`${i.left}Phone`]},{classes:r,style:e}=g(o,n);return Object.keys(e).length?{className:r.join(" "),style:e}:null}const f="upper";function I(t,o,n){const r=t&&typeof t=="object"?t:{},e=c(r.textStyle),u=e?c(o?.find(h=>h?.id===e)?.name):void 0,l=e?/^(heading|body)-(\d+)$/.exec(e):null,p=e?u||(l?n.styleName({kind:l[1],n:Number(l[2])}):e):n.noStyle,{cases:a}=n,m=c(r.case)??f;return`${p} · ${a[m]??a[f]}`}export{B as BUTTON_PAD_BUILT_IN,y as BUTTON_PAD_CLASSES,i as BUTTON_PAD_KEYS,f as BUTTON_WORDS_BUILT_IN_CASE,b as SITE_BUTTON_FILL,S as buttonLook,A as buttonPadAttrs,$ as buttonPaint,I as buttonWordsSummary};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type PopupLook } from "../popup/look.js";
|
|
1
2
|
export declare const CONSENT_BANNER_SLUG = "consent-banner";
|
|
2
3
|
export declare const CONSENT_BANNER_KIND = "consent-banner";
|
|
3
4
|
export declare const CONSENT_BANNER_PAGE_TITLE = "Overlay - ConsentBanner";
|
|
@@ -15,3 +16,23 @@ export interface ConsentBannerContent {
|
|
|
15
16
|
}
|
|
16
17
|
export declare const CONSENT_BANNER_DEFAULTS: ConsentBannerContent;
|
|
17
18
|
export declare function resolveConsentBannerContent(rootProps: Record<string, unknown> | undefined | null): ConsentBannerContent;
|
|
19
|
+
export declare function resolveConsentBannerLook(rootProps: Record<string, unknown> | undefined | null): PopupLook;
|
|
20
|
+
export declare const CONSENT_WORDS_PROP = "consentWords";
|
|
21
|
+
export declare const CONSENT_WORD_KEYS: readonly ["eyebrow", "notice", "accept", "reject", "choose"];
|
|
22
|
+
export type ConsentWordKey = (typeof CONSENT_WORD_KEYS)[number];
|
|
23
|
+
export declare function consentWordsOf(props: Record<string, unknown> | undefined | null): ConsentWordKey | null;
|
|
24
|
+
export declare function isConsentLocked(node: {
|
|
25
|
+
type?: string;
|
|
26
|
+
props?: Record<string, unknown>;
|
|
27
|
+
} | null | undefined): boolean;
|
|
28
|
+
interface BannerNode {
|
|
29
|
+
type: string;
|
|
30
|
+
props: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
export declare function consentBannerDocument(): BannerNode[];
|
|
33
|
+
export declare function withConsentBannerDocument<D extends {
|
|
34
|
+
content?: unknown[];
|
|
35
|
+
}>(doc: D): D & {
|
|
36
|
+
content: unknown[];
|
|
37
|
+
};
|
|
38
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{authoredString as
|
|
1
|
+
import{authoredString as u}from"./authored-props.js";import{POPUP_LOOK_DEFAULTS as l,resolvePopupLook as p}from"../popup/look.js";const T="consent-banner",C="consent-banner",L="Overlay - ConsentBanner",i=[{value:"bar",label:"Bar"},{value:"card",label:"Card"}],S="Layout",s={layout:"bar"},N=t=>i.some(n=>n.value===t);function O(t){const n=u((t??{}).layout,s.layout);return{layout:N(n)?n:s.layout}}const b={...l,placement:"bottom-center",fullWidth:!0,width:440,tintOpacity:0,outsideClick:!1,closeButton:"none"},y={bar:{placement:"bottom-center",fullWidth:!0},card:{placement:"bottom-left",fullWidth:!1,width:440}};function m(t){const{layout:n}=O(t);return{...p(t,{...b,...y[n]}),height:"auto",tintOpacity:0,outsideClick:!1,closeButton:"none"}}const r="consentWords",_=["eyebrow","notice","accept","reject","choose"];function f(t){const n=(t??{})[r];return typeof n=="string"&&_.includes(n)?n:null}function E(t){const n=t?.props;return n?f(n)!==null?!0:Object.values(n).some(o=>Array.isArray(o)&&o.some(e=>e&&typeof e=="object"&&"props"in e&&E(e))):!1}function a(t,n){return{type:"Text",props:{id:t,text:"",[r]:n}}}function c(t,n){return{type:"ButtonBlock",props:{id:t,label:"",href:"",[r]:n}}}function B(){return[{type:"Flex",props:{id:"consent-banner",label:"Banner",direction:"column",content:[a("consent-banner-eyebrow","eyebrow"),a("consent-banner-notice","notice"),{type:"Flex",props:{id:"consent-banner-buttons",label:"Buttons",direction:"row",content:[c("consent-banner-accept","accept"),c("consent-banner-reject","reject"),c("consent-banner-choose","choose")]}}]}}]}function d(t){return Array.isArray(t.content)&&t.content.length>0?t:{...t,content:B()}}export{s as CONSENT_BANNER_DEFAULTS,C as CONSENT_BANNER_KIND,i as CONSENT_BANNER_LAYOUTS,S as CONSENT_BANNER_LAYOUT_LABEL,L as CONSENT_BANNER_PAGE_TITLE,T as CONSENT_BANNER_SLUG,r as CONSENT_WORDS_PROP,_ as CONSENT_WORD_KEYS,B as consentBannerDocument,f as consentWordsOf,E as isConsentLocked,O as resolveConsentBannerContent,m as resolveConsentBannerLook,d as withConsentBannerDocument};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{slugify as r}from"
|
|
1
|
+
import{slugify as r}from"efficient-shell/format";import{mapCoordOfText as o}from"../map-styles.js";const a=["tall","square","wide"],n="tall";function u(e){return a.includes(String(e??""))?String(e):n}const p={sectionNumber:"· Locations",heading:"Our *locations.*",tagline:"Visit us in person — find your nearest studio below.",galleryKicker:"Gallery",galleryHint:"Hover to see in colour · click to jump",mapTheme:"auto"},m=[{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT · UTC +0",address:`Address line one
|
|
2
2
|
Address line two`,phone:"+00 000 0000",hours:"Mon–Fri 9:00–18:00",lat:0,lng:0,mapsUrl:""},{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT · UTC +0",address:`Address line one
|
|
3
3
|
Address line two`,phone:"+00 000 0000",hours:"Mon–Fri 9:00–18:00",lat:0,lng:0,mapsUrl:""}],i=/^https?:\/\//i;function c(e){const t=(e.mapsUrl??"").trim();return{photo:"",group:"",groupName:"",name:e.name??"",state:e.state??"",country:e.country??"",timezone:"",address:e.address??"",phone:e.phone??"",hours:e.hours??"",lat:o(e.lat),lng:o(e.lng),mapsUrl:i.test(t)?t:""}}function h(e){const t=String(e??"").split(" · ");return{state:(t[0]??"").trim(),country:(t[1]??"").trim()}}const d="other",g={routingNumber:"02 · Routing",routingTagline:"What can we help you with?",groups:[{id:"fitment",eyebrow:"A · Label",title:"Group one",copy:"Short description of this routing group.",response:"< 48h"},{id:"trade",eyebrow:"B · Label",title:"Group two",copy:"Short description of this routing group.",response:"< 24h"},{id:"press",eyebrow:"C · Label",title:"Group three",copy:"Short description of this routing group.",response:"< 48h"},{id:"order",eyebrow:"D · Label",title:"Group four",copy:"Short description of this routing group.",response:"< 24h"}],formNumber:"03 · Message",formHeading:"Send *a note.*",metaLines:["Encrypted in transit","Stored 12 months"],showOther:!0,otherLabel:"Other",otherNoteTitle:"No matching team",otherNoteBody:"Tell us what you need in the message field below — we'll route it to whoever can help.",buttonText:"Send Message →",consent:"By submitting, you agree to our privacy policy. We never share contact details with third parties.",channels:[{label:"Team one",value:"team-one@email.com",href:"mailto:team-one@email.com",sub:"Detail · Detail",groupId:"fitment"},{label:"Team two",value:"team-two@email.com",href:"mailto:team-two@email.com",sub:"Detail · Detail",groupId:"trade"},{label:"Team three",value:"team-three@email.com",href:"mailto:team-three@email.com",sub:"Detail · Detail",groupId:"press"},{label:"Team four",value:"team-four@email.com",href:"mailto:team-four@email.com",sub:"Detail · Detail",groupId:"order"},{label:"Phone",value:"+1 (000) 000-0000",href:"tel:+10000000000",sub:"Mon–Fri · 9:00–18:00"}]};function y(e){return r(e)}export{m as CONTACT_LOCATIONS_CARDS_PLACEHOLDER,p as CONTACT_LOCATIONS_DEFAULTS,g as CONTACT_ROUTING_DEFAULTS,a as LOCATION_TILE_SHAPES,n as LOCATION_TILE_SHAPE_DEFAULT,d as OTHER_REASON_ID,c as contactLocationCardOfRow,u as parseLocationTileShape,y as slugifyGroupId,h as splitLegacyRegion};
|
|
@@ -4,6 +4,16 @@ export declare const EMAIL_SIGNUP_PH: {
|
|
|
4
4
|
readonly placeholder: "Email address";
|
|
5
5
|
readonly buttonLabel: "Subscribe";
|
|
6
6
|
};
|
|
7
|
+
export declare const FOOTER_PAYMENT_PH: {
|
|
8
|
+
readonly lead: "We accept";
|
|
9
|
+
};
|
|
10
|
+
export declare const FOOTER_PAYMENT_SEED: {
|
|
11
|
+
readonly methods: readonly [];
|
|
12
|
+
readonly size: "sm";
|
|
13
|
+
readonly align: "start";
|
|
14
|
+
readonly dataSource: "shop-payment-methods";
|
|
15
|
+
readonly lead: "We accept";
|
|
16
|
+
};
|
|
7
17
|
export declare const SITE_FOOTER_SLUG = "site-footer";
|
|
8
18
|
export declare const FOOTER_SOURCE_SLUG = "site-footer";
|
|
9
19
|
export declare const SITE_FOOTER_KIND = "site-footer";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const E={heading:"Join our email list",placeholder:"Email address",buttonLabel:"Subscribe"},a={lead:"We accept"},u={...a,methods:[],size:"sm",align:"start",dataSource:"shop-payment-methods"},c="site-footer",d=c,m=c,f={desktop:!0,tablet:!0,mobile:!0},x={desktop:!1,tablet:!1,mobile:!1},s=1,l=6,T=Array.from({length:l-s+1},(t,o)=>s+o),n={desktop:6,tablet:3,mobile:2},i={2:{desktop:2,tablet:2,mobile:1},3:{desktop:3,tablet:3,mobile:1},4:{desktop:4,tablet:2,mobile:2},5:{desktop:5,tablet:3,mobile:2},6:{desktop:6,tablet:3,mobile:2}},r=t=>Math.min(Math.max(Math.round(t),s),l);function F(t){if(typeof t=="number")return i[r(t)]??{desktop:r(t),tablet:r(t),mobile:r(t)};if(t&&typeof t=="object"){const o=t;return{desktop:r(o.desktop??n.desktop),tablet:r(o.tablet??n.tablet),mobile:r(o.mobile??n.mobile)}}return{...n}}function b(t){const o=t?.content;return Array.isArray(o)?o.find(e=>!!e&&typeof e=="object"&&e.type==="Footer")??null:null}function A(t){const o=t?.content;return Array.isArray(o)?o.find(e=>!!e&&typeof e=="object"&&e.type===O)??b(t):null}const O="SiteFooter",_="SiteHeader";function L(t){const o=t?.content;return Array.isArray(o)?o.find(e=>!!e&&typeof e=="object"&&e.type===_)??null:null}function S(t){const o=t?.root?.props;return o&&typeof o=="object"&&!Array.isArray(o)?o:null}export{E as EMAIL_SIGNUP_PH,n as FOOTER_COLUMNS_DEFAULT,l as FOOTER_COLUMNS_MAX,s as FOOTER_COLUMNS_MIN,T as FOOTER_COLUMN_STEPS,a as FOOTER_PAYMENT_PH,u as FOOTER_PAYMENT_SEED,d as FOOTER_SOURCE_SLUG,f as LOGO_FILL_DEFAULT,x as LOGO_ROW_FILL_DEFAULT,O as SITE_FOOTER_GROUP_TYPE,m as SITE_FOOTER_KIND,c as SITE_FOOTER_SLUG,_ as SITE_HEADER_GROUP_TYPE,A as extractDrawnFooter,b as extractFooterBlock,S as extractFooterRootProps,L as extractHeaderGroup,F as normalizeFooterColumns};
|
|
@@ -8,6 +8,8 @@ export interface GalleryLayout {
|
|
|
8
8
|
readonly phone: readonly GalleryCell[];
|
|
9
9
|
readonly across: 2 | 3 | 4 | 6;
|
|
10
10
|
readonly acrossPhone: 2 | 3 | 6;
|
|
11
|
+
readonly lead?: readonly GalleryCell[];
|
|
12
|
+
readonly leadPhone?: readonly GalleryCell[];
|
|
11
13
|
}
|
|
12
14
|
export declare const GALLERY_LAYOUTS: {
|
|
13
15
|
readonly twoAcross: {
|
|
@@ -143,12 +145,22 @@ export declare const GALLERY_LAYOUTS: {
|
|
|
143
145
|
readonly desktop: readonly [readonly [3, 1], readonly [2, 1], readonly [1, 1], readonly [2, 1], readonly [1, 1], readonly [3, 1], readonly [1, 1], readonly [3, 1], readonly [2, 1], readonly [2, 1], readonly [1, 1], readonly [3, 1]];
|
|
144
146
|
readonly phone: readonly [readonly [1, 1], readonly [1, 1], readonly [1, 1], readonly [1, 1], readonly [1, 1], readonly [1, 1]];
|
|
145
147
|
};
|
|
148
|
+
readonly twoThenThrees: {
|
|
149
|
+
readonly label: "Two, then threes";
|
|
150
|
+
readonly across: 3;
|
|
151
|
+
readonly acrossPhone: 3;
|
|
152
|
+
readonly lead: readonly [readonly [6, 1], readonly [6, 1]];
|
|
153
|
+
readonly desktop: readonly [readonly [4, 1], readonly [4, 1], readonly [4, 1]];
|
|
154
|
+
readonly leadPhone: readonly [readonly [3, 1], readonly [3, 1]];
|
|
155
|
+
readonly phone: readonly [readonly [2, 1], readonly [2, 1], readonly [2, 1]];
|
|
156
|
+
};
|
|
146
157
|
};
|
|
147
158
|
export type GalleryLayoutKey = keyof typeof GALLERY_LAYOUTS;
|
|
148
159
|
export declare const GALLERY_LAYOUT_KEYS: GalleryLayoutKey[];
|
|
149
160
|
export declare const GALLERY_ACROSS_BUCKETS: readonly (2 | 3 | 4 | 6)[];
|
|
150
161
|
export declare function resolveGalleryLayout(value: unknown): GalleryLayout | null;
|
|
151
162
|
export declare function galleryTailSpan(layout: GalleryLayout, phone: boolean): number;
|
|
163
|
+
export declare function galleryPictureCells(layout: GalleryLayout): readonly GalleryCell[];
|
|
152
164
|
export declare const GALLERY_LAYOUT_CLASS_PREFIX = "sf-wall--";
|
|
153
165
|
export declare function galleryLayoutClass(key: GalleryLayoutKey): string;
|
|
154
166
|
export declare function galleryLayoutCss(key: GalleryLayoutKey): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const f=12,k=6,E=800,h={twoAcross:{label:"Two across",across:2,acrossPhone:2,desktop:[[6,1],[6,1]],phone:[[3,1],[3,1]]},zigzag:{label:"Zigzag",across:2,acrossPhone:2,desktop:[[8,1],[4,1],[4,1],[8,1]],phone:[[4,1],[2,1],[2,1],[4,1]]},brick:{label:"Brick",across:2,acrossPhone:2,desktop:[[5,1],[7,1],[7,1],[5,1]],phone:[[2,1],[4,1],[4,1],[2,1]]},twoTall:{label:"Two tall",across:2,acrossPhone:2,desktop:[[6,2],[6,2]],phone:[[3,2],[3,2]]},offsetTall:{label:"Offset tall",across:2,acrossPhone:2,desktop:[[5,2],[7,1],[3,1],[4,1]],phone:[[3,2],[3,1],[3,1]]},ladder:{label:"Ladder",across:2,acrossPhone:2,desktop:[[3,2],[9,1],[5,1],[4,1]],phone:[[2,2],[4,1],[2,1],[2,1]]},threeAcross:{label:"Three across",across:3,acrossPhone:3,desktop:[[4,1],[4,1],[4,1]],phone:[[2,1],[2,1],[2,1]]},bigLeft:{label:"Big left",across:3,acrossPhone:3,desktop:[[6,1],[3,1],[3,1]],phone:[[4,1],[1,1],[1,1]]},bigRight:{label:"Big right",across:3,acrossPhone:3,desktop:[[3,1],[3,1],[6,1]],phone:[[1,1],[1,1],[4,1]]},threeStagger:{label:"Three stagger",across:3,acrossPhone:3,desktop:[[5,1],[4,1],[3,1],[3,1],[4,1],[5,1]],phone:[[3,1],[2,1],[1,1],[1,1],[2,1],[3,1]]},threeLadder:{label:"Three ladder",across:3,acrossPhone:3,desktop:[[3,1],[4,1],[5,1],[5,1],[4,1],[3,1]],phone:[[1,1],[2,1],[3,1],[3,1],[2,1],[1,1]]},tallMiddle:{label:"Tall middle",across:3,acrossPhone:3,desktop:[[4,1],[4,2],[4,1],[4,1],[4,1]],phone:[[2,1],[2,2],[2,1],[2,1],[2,1]]},fourAcross:{label:"Four across",across:4,acrossPhone:2,desktop:[[3,1],[3,1],[3,1],[3,1]],phone:[[3,1],[3,1]]},bigFirst:{label:"Big first",across:4,acrossPhone:2,desktop:[[6,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1]],phone:[[6,1],[3,1],[3,1]]},fourStagger:{label:"Four stagger",across:4,acrossPhone:2,desktop:[[4,1],[3,1],[2,1],[3,1],[2,1],[3,1],[4,1],[3,1]],phone:[[4,1],[2,1],[2,1],[4,1]]},tallFirst:{label:"Tall first",across:4,acrossPhone:2,desktop:[[3,2],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1]],phone:[[3,2],[3,1],[3,1]]},oneThenFour:{label:"One then four",across:4,acrossPhone:2,desktop:[[12,1],[3,1],[3,1],[3,1],[3,1]],phone:[[6,1],[3,1],[3,1]]},sixAcross:{label:"Six across",across:6,acrossPhone:3,desktop:[[2,1],[2,1],[2,1],[2,1],[2,1],[2,1]],phone:[[2,1],[2,1],[2,1]]},sixStagger:{label:"Six stagger",across:6,acrossPhone:6,desktop:[[3,1],[2,1],[1,1],[2,1],[1,1],[3,1],[1,1],[3,1],[2,1],[2,1],[1,1],[3,1]],phone:[[1,1],[1,1],[1,1],[1,1],[1,1],[1,1]]},twoThenThrees:{label:"Two, then threes",across:3,acrossPhone:3,lead:[[6,1],[6,1]],desktop:[[4,1],[4,1],[4,1]],leadPhone:[[3,1],[3,1]],phone:[[2,1],[2,1],[2,1]]}},A=Object.keys(h),$=[2,3,4,6];function _(s){return typeof s!="string"||s===""?null:h[s]??null}function g(s,o){return o?6/s.acrossPhone:12/s.across}function x(s){return[...s.lead??[],...s.desktop]}const P="sf-wall--";function b(s){return`${P}${s}`}function O(s){const o=h[s],a=`.${b(s)}`,r=[],p=(d,u,i=[])=>{const t=[],n=d.length,L=i.length;i.forEach(([e,l],c)=>{t.push(`${a} > :nth-child(${c+1}){grid-column:span ${e};grid-row:span ${l}}`)}),d.forEach(([e,l],c)=>{t.push(`${a} > :nth-child(${n}n+${L+c+1}){grid-column:span ${e};grid-row:span ${l}}`)});for(let e=1;e<n;e+=1)t.push(`${a}:has(> :nth-child(${n}n+${L+e}):last-child) > :nth-last-child(-n+${e}){grid-column:span ${u};grid-row:span 1}`);return t};return r.push(`${a}{grid-template-columns:repeat(12,minmax(0,1fr))}`),r.push(...p(o.desktop,g(o,!1),o.lead)),r.push("@media (max-width:800px){"),r.push(`${a}{grid-template-columns:repeat(6,minmax(0,1fr))}`),r.push(...p(o.phone,g(o,!0),o.leadPhone)),r.push("}"),r.join("")}export{$ as GALLERY_ACROSS_BUCKETS,f as GALLERY_COLUMNS,k as GALLERY_COLUMNS_PHONE,h as GALLERY_LAYOUTS,P as GALLERY_LAYOUT_CLASS_PREFIX,A as GALLERY_LAYOUT_KEYS,E as GALLERY_PHONE_BREAKPOINT,b as galleryLayoutClass,O as galleryLayoutCss,x as galleryPictureCells,g as galleryTailSpan,_ as resolveGalleryLayout};
|
|
@@ -17,6 +17,16 @@ export declare function sectionPadAttrs(pt: unknown, pb: unknown, ptPhone: unkno
|
|
|
17
17
|
className: string;
|
|
18
18
|
style: CSSProperties;
|
|
19
19
|
} | null;
|
|
20
|
+
export type PadSides = {
|
|
21
|
+
top?: unknown;
|
|
22
|
+
right?: unknown;
|
|
23
|
+
bottom?: unknown;
|
|
24
|
+
left?: unknown;
|
|
25
|
+
};
|
|
26
|
+
export declare function padSideAttrs(inline: PadSides, phone: PadSides): {
|
|
27
|
+
classes: string[];
|
|
28
|
+
style: CSSProperties;
|
|
29
|
+
};
|
|
20
30
|
export interface SectionPaddingProps {
|
|
21
31
|
padTop?: unknown;
|
|
22
32
|
padBottom?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{finiteNumber as
|
|
1
|
+
import{finiteNumber as s}from"../finite-number.js";const E={min:10,max:200,step:10};function u(t,e){const o=s(t),n=s(e);if(!(o===void 0&&n===void 0))return{paddingTop:o,paddingBottom:n}}const g="sf-pad-top-phone",l="sf-pad-bottom-phone",_="--sf-pad-t-phone",m="--sf-pad-b-phone",A="sf-pad-left-phone",x="sf-pad-right-phone",O="--sf-pad-l-phone",T="--sf-pad-r-phone";function a(t,e,o,n,i,r,P,c){const p=u(t,e),d=S({left:i,right:r},{top:o,bottom:n,left:P,right:c});return p===void 0&&!d.classes.length&&!Object.keys(d.style).length?null:{className:["sf-section-pad",...d.classes].join(" "),style:{...p,...d.style}}}const b=[["top","paddingTop",g,_],["bottom","paddingBottom",l,m],["left","paddingLeft",A,O],["right","paddingRight",x,T]];function S(t,e){const o={},n={},i=[];for(const[r,P,c,p]of b){const d=s(t[r]);d!==void 0&&(o[P]=d);const f=s(e[r]);f!==void 0&&(i.push(c),n[p]=`${f}px`)}return{classes:i,style:{...o,...n}}}function h(t,e,o){const n=s(t)??o,i=s(e);return n===void 0?i:i===void 0?n:n+i}function N(t,e={}){return{top:h(t.padTop,t.sectionPaddingTop,e.top),bottom:h(t.padBottom,t.sectionPaddingBottom,e.bottom)}}function H(t){return{top:t.sectionPaddingTop,bottom:t.sectionPaddingBottom,topPhone:t.sectionPaddingTopPhone,bottomPhone:t.sectionPaddingBottomPhone,left:t.sectionPaddingLeft,right:t.sectionPaddingRight,leftPhone:t.sectionPaddingLeftPhone,rightPhone:t.sectionPaddingRightPhone}}function L(t){return a(t.top,t.bottom,t.topPhone,t.bottomPhone,t.left,t.right,t.leftPhone,t.rightPhone)}function R(t,e){const o=n=>typeof n=="number"?n+e:void 0;return a(o(t.top),o(t.bottom),o(t.topPhone),o(t.bottomPhone),t.left,t.right,t.leftPhone,t.rightPhone)}export{l as PAD_BOTTOM_PHONE_CLASS,m as PAD_BOTTOM_PHONE_VAR,A as PAD_LEFT_PHONE_CLASS,O as PAD_LEFT_PHONE_VAR,x as PAD_RIGHT_PHONE_CLASS,T as PAD_RIGHT_PHONE_VAR,g as PAD_TOP_PHONE_CLASS,_ as PAD_TOP_PHONE_VAR,E as SECTION_PADDING,S as padSideAttrs,H as padValuesOf,N as resolveSectionPadding,R as rootPadAttrs,a as sectionPadAttrs,u as sectionPadStyle,L as wrapperPadAttrs};
|
|
@@ -41,7 +41,3 @@ export interface SiteWidths {
|
|
|
41
41
|
export declare function normalizeSiteBackground(v: unknown): WidthAnswer | null;
|
|
42
42
|
export declare function siteWidthsMetadata(background: unknown, content?: unknown): Record<string, SiteWidths>;
|
|
43
43
|
export declare function siteWidthsOf(props: Readonly<Record<string, unknown>>): SiteWidths;
|
|
44
|
-
export declare const SITE_CARD_THEME_KEY = "siteCardTheme";
|
|
45
|
-
export declare function normalizeCardThemeIndex(v: unknown): number | null;
|
|
46
|
-
export declare function siteCardThemeMetadata(index: unknown): Record<string, number>;
|
|
47
|
-
export declare function siteCardThemeOf(metadata: Readonly<Record<string, unknown>> | undefined): number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PAGE_WIDTH as
|
|
1
|
+
import{PAGE_WIDTH as b}from"./page-width.js";const p=["contained","page","full"],C=["full","page"],w={full:"Full width",page:"Content width"},k="inherit",m=e=>typeof e=="string"&&p.includes(e),u=e=>e===k;function c(e,n){const t=typeof e.pageWidth=="number"?e.pageWidth:b.default;return u(e.widthMode)?{mode:"full",pageWidth:t,inherited:!0}:e.widthMode==="contained"?{mode:"page",pageWidth:t,inherited:!1}:m(e.widthMode)?{mode:e.widthMode,pageWidth:t,inherited:!1}:e.contained===!0?{mode:"page",pageWidth:t,inherited:!1}:typeof e.fullWidth=="boolean"?{mode:e.fullWidth?"full":"page",pageWidth:t,inherited:!1}:e.contained===!1?{mode:"full",pageWidth:t,inherited:!1}:{mode:n,pageWidth:t,inherited:n==="full"}}function F(e){return c(e,"page").mode==="full"}const s="site",f={Hero:"hero",HeroSingle:"hero",IntroBleed:"scrollOver",SpecStrip:"background",Timeline:"background",Footprint:"background",Prose:"background",ParagraphsA:"background",Cards:"background",KeyFeatures:"background",Chart:"background",Mockup:"background",Testimonials:"background",TitleWithButtons:"background",Countdown:"background",DocMasthead:"background",DocBody:"background",DocMetaCards:"background",Gallery:"background",GalleryB:"background",Reviews:"background",ReviewForm:"background",Form:"background",AppointmentBooking:"background",FAQ:"background",Events:"background",Split:"both",Breadcrumb:"both",Collections:"both",CatalogFilterBar:"both",AlloyWheelsListing:"both",Banner:"contained",Stats:"contained",Logos:"contained",Divider:"contained",OrderSummary:"contained",DeliveryOptions:"contained",PaymentBadges:"contained",CheckoutCTA:"contained",Flex:"contained",Grid:"contained",Manifesto:"contentColumn",SectionHeader:"contentFull",ProductHero:"contentFull",ProductGrid:"productGrid",TimelineTrack:"capped",DetailRows:"capped",FitmentTable:"capped",TyreSizes:"capped",TyreFitment:"capped",EuTyreLabel:"capped",BundleOffer:"capped",CompatibleTyres:"capped",RelatedProducts:"capped",ProcessSteps:"capped",StatsParagraph:"capped",Masthead:"capped",FeaturedCover:"capped",LongRead:"capped",Series:"capped",ContactLocations:"capped",FitmentFinder:"capped",SpecTable:"capped",Subscribe:"capped",SubscribeBlogs:"capped",ContactRouting:"capped",SubmitBuild:"capped"};function W(e){return Object.prototype.hasOwnProperty.call(f,e)}const l=e=>e==="full"||e==="content",g=e=>typeof e=="number"&&Number.isFinite(e)&&e>0,i=({widthMode:e,fullWidth:n,pageWidth:t})=>({widthMode:e,fullWidth:n,pageWidth:t}),x=["widthMode","contained","fullWidth","pageWidth"];function M(e,n){if(e==="scrollOver")return n.fullWidth!==void 0&&n.fullWidth!==null;if(u(n.widthMode))return!1;const t=e==="contentColumn"||e==="contentFull"?i(n):n;return x.some(o=>t[o]!==void 0&&t[o]!==null)}function S(e,n){const t={background:null,content:null,contentMax:null};if(!M(e,n))return t;switch(e){case"hero":return u(n.widthMode)||n.widthMode!=="full"?t:{...t,background:"full"};case"scrollOver":return n.fullWidth===!1?t:{...t,content:"full"};case"background":return c(n,"full").mode==="full"?t:{...t,background:"content"};case"both":return c(n,"full").mode==="full"?{...t,content:"full"}:{...t,background:"content"};case"contained":return c(n,"page").mode==="full"?{...t,content:"full"}:{...t,background:"content"};case"contentColumn":return c(i(n),"page").mode==="full"?{...t,content:"full"}:t;case"contentFull":return c(i(n),"full").mode==="full"?{...t,content:"full"}:t;case"productGrid":return c(n,"full").mode==="full"?{...t,content:"full"}:{background:"content",content:"content",contentMax:g(n.pageWidth)?n.pageWidth:null};case"capped":return t}}function I(e,n){if(!W(e))return{background:null,content:null,contentMax:null};const t=f[e],o=n,a=S(t,o),r=o.backgroundWidth===s?null:l(o.backgroundWidth)?o.backgroundWidth:a.background;return o.contentWidth===s?{background:r,content:null,contentMax:null}:l(o.contentWidth)?{background:r,content:o.contentWidth,contentMax:o.contentWidth==="content"&&g(o.contentMax)?o.contentMax:null}:{background:r,content:a.content,contentMax:a.contentMax}}const h="siteWidths";function d(e){return l(e)?e:null}function O(e,n){return{[h]:{background:d(e),content:d(n)}}}function y(e){const t=e.editor?.metadata?.[h];return{background:d(t?.background),content:d(t?.content)}}export{s as FOLLOW_SITE,C as SECTION_WIDTH_CHOICES,f as SECTION_WIDTH_FAMILY,h as SITE_WIDTHS_KEY,w as WIDTH_CHOICE_LABEL,k as WIDTH_INHERIT,p as WIDTH_MODES,u as isInheritValue,d as normalizeSiteBackground,I as resolveSectionWidth,c as resolveWidth,W as sectionHasWidthRows,F as sectionRunsFullWidth,O as siteWidthsMetadata,y as siteWidthsOf};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const o={label:"Logos",defaultProps:{items:[],contained:!0}};export{o as
|
|
1
|
+
const o={logos:{type:"slot",allow:["LogoBlock"]}},t={label:"Logos",fields:o,defaultProps:{items:[],contained:!0}};export{t as LogosMeta,o as LogosSlots};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{DEFAULT_SECTION_NUMBER_STYLE as e}from"../../../../sections/section-number-style.js";import{DEFAULT_SECTION_HEAD_STYLE as t}from"../../../../sections/section-head-style.js";const l={label:"Section Header",defaultProps:{headStyle:t,num:"01 / Section",numStyle:e,title:"Section *title*",description:"",logoSrc:"",logoAlt:"",linkText:"",linkHref:""}};export{l as SectionHeaderMeta};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{FOOTER_LOGO_PX as
|
|
1
|
+
import{FOOTER_LOGO_PX as T}from"../logo/logo-size.js";import{resolveContainerGap as E}from"../content/container-gap.js";import{NESTED_BOX_PADDING as a}from"../content/box-layout.js";import{finiteNumber as p}from"../finite-number.js";import{buildSectionGroup as _,SITE_FOOTER_TYPE as O}from"./section-groups.js";const u="Flex",P={FooterMenu:"MenuBlock",FooterEmailSignup:"EmailFormBlock",FooterSocial:"SocialLogosBlock",FooterPayment:"PaymentLogosBlock"},x=o=>{const{id:e,...t}=o;return t},d=o=>typeof o=="string"?o:"",f={sm:12,md:13,lg:15},y="md",h=1.5,L={size:13,lineHeight:h,width:280},A=14,B=40,b=o=>o==="center"||o==="right"?o:"left";function G(o){const e={},t=[["padTop","sectionPaddingTop"],["padRight","sectionPaddingRight"],["padBottom","sectionPaddingBottom"],["padLeft","sectionPaddingLeft"]];for(const[s,r]of t){const n=p(o[s]);n&&(e[r]=n)}return e}function F(o,e){const t=o.props??{},s=P[o.type];if(s)return[e(s,x(t))];switch(o.type){case"FooterLogo":{const r=b(t.align),n=e("LogoBlock",{...t.reverse?{reverse:t.reverse}:{},...typeof t.customColor=="string"&&t.customColor?{customColor:t.customColor}:{},heightPx:Math.round(T*((p(t.widthPct)??100)/100)),href:"/",align:r,...G(t)}),i=d(t.tagline).trim();return i?[n,e("Text",{text:i,tone:"dim",align:r,_partStyles:{text:{...L}}})]:[n]}case"FooterText":{const r=typeof t.size=="string"&&t.size in f?t.size:y;return[e("Text",{text:d(t.text),tone:typeof t.tone=="string"?t.tone:"default",_partStyles:{text:{size:f[r],lineHeight:h}}})]}case"FooterDivider":{const r=p(t.thickness),n=p(t.lengthPct);return[e("Divider",{...r!==void 0?{thickness:r}:{},...n!==void 0?{lengthPct:n}:{},...t.hideOnMobile===!0?{hideOnMobile:!0}:{}})]}case"FooterGroup":{const r=Array.isArray(t.blocks)?t.blocks:[];return[e(u,{direction:t.direction==="horizontal"?"row":"column",gap:E("FooterGroup",t.gap),align:t.align==="center"||t.align==="end"?t.align:"start",...a,content:r.flatMap(n=>F(n,e))})]}default:return[]}}function M(o,e,t){const s=o&&Array.isArray(o.props?.blocks)?o.props.blocks:[],r=c=>e(u,{direction:"row",wrap:!0,share:"equal",gap:B,content:c}),n=[];let i=[];for(const c of s){const l=F(c,e);if(c.type==="FooterDivider"){i.length&&n.push(r(i)),i=[],n.push(...l);continue}l.length<=1?i.push(...l):i.push(e(u,{direction:"column",gap:A,align:"stretch",...a,content:l}))}(i.length||!n.length)&&n.push(r(i));const m=e(u,{direction:"column",content:[e("LegalLineBlock")]}),g=_(O,t,[...n,m]);return{...g,props:{...g.props,...o?.props?.width==="full"?{fullWidth:!0}:{}}}}export{M as boxFooterFromFooter,F as pageBlocksFromFooterBlock};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{BOX_LABEL as
|
|
1
|
+
import{BOX_LABEL as r,SECTION_CATALOG as n}from"./section-catalog.js";const o="content",C="Flex",p="Text & media",y="Layout & structure",s=[{type:"Eyebrow",label:"Eyebrow",retired:!0},{type:"Heading",label:"Heading",retired:!0},{type:"Text",label:"Text"},{type:"ImageBlock",label:"Image"},{type:"LogoBlock",label:"Logo"},{type:"ButtonBlock",label:"Button"},{type:"Form",label:"Form"},{type:"PostCard",label:"Post Card"},{type:"Stats",label:"Stats"},{type:"MenuBlock",label:"Menu"},{type:"EmailFormBlock",label:"Email Form"},{type:"SocialLogosBlock",label:"Social Logos"},{type:"PaymentLogosBlock",label:"Payment Logos"},{type:"LegalLineBlock",label:"Legal Line"},{type:"SearchBlock",label:"Search"},{type:"CartBlock",label:"Cart"},{type:"CountrySwitchBlock",label:"Country Switch"},{type:"AccountBlock",label:"Account"},{type:"ThemeSwitchBlock",label:"Theme Switch"}].map(e=>({...e,group:p})),i=(n.find(e=>e.key==="structure")?.sections??[]).map(e=>({type:e.type,label:e.label,group:y})),c=[...s,...i],l=[{type:"Eyebrow",label:"Eyebrow",retired:!0},{type:"Heading",label:"Heading",retired:!0},{type:"Text",label:"Text"},{type:"ImageBlock",label:"Image"},{type:"LogoBlock",label:"Logo"},{type:"ButtonBlock",label:"Button"},{type:"HeroGroup",label:r}],T=l.map(e=>e.type),b=1,u=l.filter(e=>e.type!=="HeroGroup");function B(e){return e<b?l:u}const E={Flex:{slot:o,choices:()=>c},Grid:{slot:o,choices:()=>c},HeroGroup:{slot:o,choices:B}};function L(e,a=0){const t=E[e];return t?{slot:t.slot,choices:t.choices(a)}:null}export{C as BOX_TYPE,o as CONTAINER_BLOCKS_SLOT,c as CONTAINER_BLOCK_CHOICES,T as HERO_GROUP_BLOCK_TYPES,b as HERO_GROUP_NEST_DEPTH,L as containerBlocksFor};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"contentHash": "
|
|
2
|
+
"contentHash": "f94be8c390bc1b18",
|
|
3
3
|
"schema": 1,
|
|
4
4
|
"mediaFields": {
|
|
5
5
|
"ImageBlock": [
|
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
"HeroSlide": [
|
|
41
41
|
"mediaImage",
|
|
42
42
|
"mediaVideo",
|
|
43
|
-
"poster"
|
|
43
|
+
"poster",
|
|
44
|
+
"videoFrame"
|
|
44
45
|
],
|
|
45
46
|
"PostCard": [
|
|
46
47
|
"image"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=new Set(["Form","Stats"]);function o(){return[...e]}function s(n){for(const t of n){if(typeof t!="string"||t.length===0)throw new Error("lib/document/nestable-content-sections: a section type must be a non-empty string");e.add(t)}}export{o as nestableContentSections,s as registerNestableContentSections};
|
|
1
|
+
const e=new Set(["Form","Stats","Logos"]);function o(){return[...e]}function s(n){for(const t of n){if(typeof t!="string"||t.length===0)throw new Error("lib/document/nestable-content-sections: a section type must be a non-empty string");e.add(t)}}export{o as nestableContentSections,s as registerNestableContentSections};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const i=new Set(["Reviews","Cards","FAQ","Prose","ProductHero","SpecTable","ProductGrid","ParagraphsA","KeyFeatures","Stats","StatsParagraph","Chart","Mockup","Testimonials","Logos","ContactRouting","ContactLocations","SubmitBuild","ReviewForm","Form","AppointmentBooking","OrderSummary","DeliveryOptions","PaymentBadges","CheckoutCTA","Collections","AlloyWheelsListing","CatalogFilterBar","FitmentFinder","GalleryB","DocMasthead","DocBody","DocMetaCards","Masthead","FeaturedCover","LongRead","Series","Events","SectionHeader","Grid","Flex","Spacer","Divider","CustomHTML","Breadcrumb","CategoryBar","DocTabs","Hero","HeroSingle","IntroBleed","Manifesto","Timeline","TimelineTrack","Footprint","Banner","TitleWithButtons","Ticker","SubscribeBlogs","TyreSizes","TyreFitment","EuTyreLabel","SpecStrip","ProcessSteps","DetailRows","FitmentTable","CompatibleTyres","RelatedProducts","BundleOffer","Split","Gallery","Subscribe","Countdown"]),a={name:"sectionGroups",applies:(e,o)=>o.isSection(e)&&(i.has(e)||o.isHostBlock(e)),panel(e,o,t){const r=t.assignSectionGroups;e?.fields&&(e.fields=r(e.fields,o))}},s=new Set(["HeroSlide","Heading","Text","ImageBlock","ButtonBlock","HeroGroup","GalleryItem","Footer","FooterLogo","FooterMenu","FooterGroup","FooterText","PostCard","LogoBlock","CollectionCard","Eyebrow","BookingBox","SubmitBox","FooterSocial","MenuBlock","SocialLogosBlock","EmailFormBlock","SearchBlock","CartBlock","CountrySwitchBlock","AccountBlock","LegalLineBlock"]),n={name:"blockGroups",applies:e=>s.has(e),panel(e,o,t){const r=t.assignSectionGroups;e?.fields&&(e.fields=r(e.fields,o))}};export{n as blockGroups,a as sectionGroups};
|
|
1
|
+
const i=new Set(["Reviews","Cards","FAQ","Prose","ProductHero","SpecTable","ProductGrid","ParagraphsA","KeyFeatures","Stats","StatsParagraph","Chart","Mockup","Testimonials","Logos","ContactRouting","ContactLocations","SubmitBuild","ReviewForm","Form","AppointmentBooking","OrderSummary","DeliveryOptions","PaymentBadges","CheckoutCTA","Collections","AlloyWheelsListing","CatalogFilterBar","FitmentFinder","GalleryB","DocMasthead","DocBody","DocMetaCards","Masthead","FeaturedCover","LongRead","Series","Events","SectionHeader","Grid","Flex","Spacer","Divider","CustomHTML","Breadcrumb","CategoryBar","DocTabs","Hero","HeroSingle","IntroBleed","Manifesto","Timeline","TimelineTrack","Footprint","Banner","TitleWithButtons","Ticker","SubscribeBlogs","TyreSizes","TyreFitment","EuTyreLabel","SpecStrip","ProcessSteps","DetailRows","FitmentTable","CompatibleTyres","RelatedProducts","BundleOffer","Split","Gallery","Subscribe","Countdown"]),a={name:"sectionGroups",applies:(e,o)=>o.isSection(e)&&(i.has(e)||o.isHostBlock(e)),panel(e,o,t){const r=t.assignSectionGroups;e?.fields&&(e.fields=r(e.fields,o))}},s=new Set(["HeroSlide","Heading","Text","ImageBlock","ButtonBlock","HeroGroup","GalleryItem","Footer","FooterLogo","FooterMenu","FooterGroup","FooterText","PostCard","LogoBlock","CollectionCard","Eyebrow","BookingBox","SubmitBox","FooterSocial","FooterPayment","MenuBlock","SocialLogosBlock","PaymentLogosBlock","EmailFormBlock","SearchBlock","CartBlock","CountrySwitchBlock","AccountBlock","LegalLineBlock"]),n={name:"blockGroups",applies:e=>s.has(e),panel(e,o,t){const r=t.assignSectionGroups;e?.fields&&(e.fields=r(e.fields,o))}};export{n as blockGroups,a as sectionGroups};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{say as e}from"../editor-words.js";import{isDynamicPageRow as r}from"../editor-page-rows.js";function t({kind:a,pageName:o}){return{name:o?.trim()||e("This page"),kindLabel:r({kind:a})?e("Template"):e("Page")}}export{t as rootPanelHead};
|
|
@@ -12,4 +12,4 @@ WHAT REPLACES IT: a Cards section with Card style set to Label only. It draws th
|
|
|
12
12
|
|
|
13
13
|
WHAT A MERCHANT LOSES on a NEW Label only section: nothing this section had. It GAINS the Cards head split (its head can move into a box of its own), which Key Features never had: that head draws the shared \`simple\` head, eyebrow ABOVE the heading, where Key Features drew it beside.
|
|
14
14
|
|
|
15
|
-
THE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Key Features still renders through it and can still be edited; no document is rewritten and NO MIGRATION RUNS.`,SubscribeBlogs:"card 66396 — folded into `Subscribe`, which now chooses its rail's content with a `Type` control (the newsletter's own issues, or live blog posts). The two shared 21 of their fields and rendered THE SAME BYTES from equivalent rows, so offering both asked a merchant to choose between two names for one section. The type key stays because it is stored on published pages, and the component stays because those pages still render through it."},m=["Grid","Spacer"],y=Array.from(new Set([...o.flatMap(e=>e.sections.map(t=>t.type)),...Object.keys(l)])),u=Object.fromEntries(o.flatMap(e=>e.sections.map(t=>[t.type,t.label]))),i={Heading:"general",Text:"general",Eyebrow:"general",ImageBlock:"general",LogoBlock:"general",ButtonBlock:"general",PostCard:"general",HeroSlide:"general",HeroGroup:"general",Integrations:"general",Grid:"general",TimelineTrack:"general",KeyFeatures:"general",Spacer:"general",CollectionCard:"commerce",GalleryItem:"commerce",ProductRef:"commerce",CompatibleTyres:"commerce",Header:"commerce",SearchBlock:"commerce",CartBlock:"commerce",CountrySwitchBlock:"commerce",AccountBlock:"commerce",ThemeSwitchBlock:"commerce",ProductGallery:"commerce",EuTyreLabelBlock:"commerce",SubmitBox:"service",BookingBox:"service",SubscribeBlogs:"service",RatingBlock:"service",Footer:"service",FooterLogo:"service",FooterMenu:"service",FooterDivider:"service",FooterGroup:"service",FooterText:"service",FooterEmailSignup:"service",FooterSocial:"service",MenuBlock:"service",EmailFormBlock:"service",SocialLogosBlock:"service",LegalLineBlock:"service",SiteHeader:"service",SiteFooter:"service"},a={...i,...Object.fromEntries(o.flatMap(e=>e.sections.map(t=>[t.type,t.set])))};function b(e){return Object.prototype.hasOwnProperty.call(a,e)?a[e]:void 0}function r(e){return Object.keys(a).filter(t=>a[t]===e).sort()}const g=r("general"),T=r("commerce"),E=r("service"),c="Flex",s="Box",S=`${s}es`;function d(e){return e==="section"?"Blank section":s}function w(e,t,n){return e===c?d(t):n}export{y as ALL_SECTION_TYPES,h as BLOCK_SETS,s as BOX_LABEL,S as BOX_LABEL_PLURAL,T as COMMERCE_BLOCKS,g as GENERAL_BLOCKS,c as LEVEL_NAMED_TYPE,m as RETIRED_NESTABLE_SECTIONS,l as RETIRED_SECTIONS,o as SECTION_CATALOG,u as SECTION_LABELS,E as SERVICE_BLOCKS,i as UNLISTED_BLOCK_SETS,b as blockSetOf,r as blocksInSet,p as buildBlockCategories,w as labelAtLevel,d as labelForFlex};
|
|
15
|
+
THE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Key Features still renders through it and can still be edited; no document is rewritten and NO MIGRATION RUNS.`,SubscribeBlogs:"card 66396 — folded into `Subscribe`, which now chooses its rail's content with a `Type` control (the newsletter's own issues, or live blog posts). The two shared 21 of their fields and rendered THE SAME BYTES from equivalent rows, so offering both asked a merchant to choose between two names for one section. The type key stays because it is stored on published pages, and the component stays because those pages still render through it."},m=["Grid","Spacer"],y=Array.from(new Set([...o.flatMap(e=>e.sections.map(t=>t.type)),...Object.keys(l)])),u=Object.fromEntries(o.flatMap(e=>e.sections.map(t=>[t.type,t.label]))),i={Heading:"general",Text:"general",Eyebrow:"general",ImageBlock:"general",LogoBlock:"general",ButtonBlock:"general",PostCard:"general",HeroSlide:"general",HeroGroup:"general",Integrations:"general",Grid:"general",TimelineTrack:"general",KeyFeatures:"general",Spacer:"general",CollectionCard:"commerce",GalleryItem:"commerce",ProductRef:"commerce",CompatibleTyres:"commerce",Header:"commerce",SearchBlock:"commerce",CartBlock:"commerce",CountrySwitchBlock:"commerce",AccountBlock:"commerce",ThemeSwitchBlock:"commerce",ProductGallery:"commerce",EuTyreLabelBlock:"commerce",SubmitBox:"service",BookingBox:"service",SubscribeBlogs:"service",RatingBlock:"service",Footer:"service",FooterLogo:"service",FooterMenu:"service",FooterDivider:"service",FooterGroup:"service",FooterText:"service",FooterEmailSignup:"service",FooterSocial:"service",FooterPayment:"service",MenuBlock:"service",EmailFormBlock:"service",SocialLogosBlock:"service",PaymentLogosBlock:"service",LegalLineBlock:"service",SiteHeader:"service",SiteFooter:"service"},a={...i,...Object.fromEntries(o.flatMap(e=>e.sections.map(t=>[t.type,t.set])))};function b(e){return Object.prototype.hasOwnProperty.call(a,e)?a[e]:void 0}function r(e){return Object.keys(a).filter(t=>a[t]===e).sort()}const g=r("general"),T=r("commerce"),E=r("service"),c="Flex",s="Box",S=`${s}es`;function d(e){return e==="section"?"Blank section":s}function w(e,t,n){return e===c?d(t):n}export{y as ALL_SECTION_TYPES,h as BLOCK_SETS,s as BOX_LABEL,S as BOX_LABEL_PLURAL,T as COMMERCE_BLOCKS,g as GENERAL_BLOCKS,c as LEVEL_NAMED_TYPE,m as RETIRED_NESTABLE_SECTIONS,l as RETIRED_SECTIONS,o as SECTION_CATALOG,u as SECTION_LABELS,E as SERVICE_BLOCKS,i as UNLISTED_BLOCK_SETS,b as blockSetOf,r as blocksInSet,p as buildBlockCategories,w as labelAtLevel,d as labelForFlex};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{CUSTOM_FIELD_VALUES as n}from"./neutralization-contracts.js";import{HYDRATED_LISTS as u,SNAPSHOT_OBJECTS as
|
|
1
|
+
import{CUSTOM_FIELD_VALUES as n}from"./neutralization-contracts.js";import{HYDRATED_LISTS as u,SNAPSHOT_OBJECTS as c}from"./snapshot-contracts.js";import{nonEmptyString as s}from"../non-empty-string.js";function O(){const o=new Set([...Object.keys(c),...Object.keys(u)]);for(const[t,e]of Object.entries(n))for(const r of Object.values(e))r.verb==="snapshot"&&o.add(t);return[...o].sort()}function p(o){const t=new Set([...Object.keys(c[o]??{}),...u[o]??[]]);for(const[e,r]of Object.entries(n[o]??{}))r.verb==="snapshot"&&t.add(e);return[...t].sort()}const d={CollectionCard:"product",FooterMenu:"menu",Gallery:"product",GalleryItem:"product",ProductGrid:"product",ProductHero:"product",SpecTable:"product",Events:"blog",FeaturedCover:"blog",LongRead:"blog",SubscribeBlogs:"blog"},m={product:"Synced from the product.",blog:"Synced from the blog post.",menu:"Synced from the site menu."},b="Open",g={product:{type:"storefront-editor:open-product",needsSlug:!0},blog:{type:"storefront-editor:open-post",needsSlug:!0},menu:{type:"storefront-editor:open-menus",needsSlug:!1}};function a(o){const e=o?.source?.slug;return s(e)}function l(o){return d[o]??null}function y(o,t){const e=l(o);return e&&p(o).includes(t)?e:null}function E(o){const e=o?.menu?.id;return s(e)}export{d as PART_SOURCES,g as SOURCE_ACTIONS,b as SOURCE_ACTION_LABEL,m as SOURCE_LINES,p as hydratedPropsOf,y as partSourceNoteFor,l as partSourceOf,O as sourceBoundBlocks,E as sourceMenuIdOf,a as sourceSlugOf};
|