efficient-web-builder 30.0.0 → 30.1.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 +34 -0
- package/dist/editor/lib/puck/blocks/general/SectionHeader/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/general/Series/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/general/Stats/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/general/StatsParagraph/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/general/TimelineTrack/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/shared-fields.js +1 -1
- package/dist/editor/lib/puck/field-groups.js +1 -1
- package/dist/editor/lib/puck/section-width-fields.d.ts +1 -0
- package/dist/editor/lib/puck/section-width-fields.js +1 -1
- package/dist/format/lib/content/page-width.d.ts +1 -0
- package/dist/format/lib/content/page-width.js +1 -1
- package/dist/format/lib/content/section-width.js +1 -1
- package/dist/format/lib/content/site-gutter.js +1 -1
- package/dist/format/lib/editor-words-catalogue.d.ts +1 -0
- package/dist/format/lib/editor-words-catalogue.js +1 -1
- package/dist/format/lib/puck/blocks/block-types.d.ts +1 -0
- package/dist/render/components/BlockFrame.js +1 -1
- package/dist/render/components/Breadcrumb.js +1 -1
- package/dist/render/components/ContactLocations.d.ts +1 -1
- package/dist/render/components/ContactLocations.js +2 -2
- package/dist/render/components/FeaturedCover.d.ts +1 -1
- package/dist/render/components/FeaturedCover.js +1 -1
- package/dist/render/components/Flex.js +1 -1
- package/dist/render/components/Grid.js +1 -1
- package/dist/render/components/LongRead.d.ts +1 -1
- package/dist/render/components/LongRead.js +1 -1
- package/dist/render/components/Masthead.d.ts +1 -1
- package/dist/render/components/Masthead.js +1 -1
- package/dist/render/components/ProcessSteps.d.ts +1 -1
- package/dist/render/components/ProcessSteps.js +1 -1
- package/dist/render/components/Series.d.ts +1 -1
- package/dist/render/components/Series.js +1 -1
- package/dist/render/components/SiteGutterFrame.d.ts +5 -1
- package/dist/render/components/SiteGutterFrame.js +1 -1
- package/dist/render/components/Split.js +1 -1
- package/dist/render/components/StatsParagraph.d.ts +1 -1
- package/dist/render/components/StatsParagraph.js +1 -1
- package/dist/render/components/TimelineTrack.js +1 -1
- package/dist/render/lib/puck/passes/section-width.d.ts +3 -1
- package/dist/render/lib/puck/passes/section-width.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 30.1.0 - 2026-10-21
|
|
6
|
+
|
|
7
|
+
**Every web-builder section draws the two Width rows** (Background, Content — 30.0.0's rows, mockup v6). 30.0.0 moved the heroes, Scroll-Over Text and the band sections; this moves the rest.
|
|
8
|
+
|
|
9
|
+
### Changed for merchants
|
|
10
|
+
|
|
11
|
+
- **Image & Text Split and Breadcrumb**: Content caps the columns (Split) and the trail (Breadcrumb) when set; unset they run edge to edge as before.
|
|
12
|
+
- **Banner, Stats, Logos, Divider, Order Summary, Payment Badges, Box and Grid**: Background at Full width with Content at Content width now draws the band edge to edge and keeps the content on the column (before, the one row moved both together). A Box or Grid inside another frame hides the rows, as it hid the one row.
|
|
13
|
+
- **Image & Text Columns, Recurring Columns, Stats with Text, Issue Header, Feature Banner, Article Text, Locations and Milestone Timeline**: Background now reaches the band (their old row did nothing), and Content reaches the words.
|
|
14
|
+
- **Brand Text** and **Section Header**: Content is the words' row; Background is the band.
|
|
15
|
+
- **Q&A** is a band section (its words always sat on the site column), not a band-and-content one.
|
|
16
|
+
- The colour row of Stats, Recurring Columns, Stats with Text and Milestone Timeline is now `Background color`, so `Background` means one thing in the panel.
|
|
17
|
+
- **No published page moves.** Checked by rendering 21 sections × 6 stored widths on 30.0.0 and on this release: every text box and band box lands on the same pixels at 1920, 1280 and 390 px (126 cases, 1704 text boxes).
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- `components/SiteGutterFrame`: `SplitBandAndColumn`, and the frame's `columnClass` (the column when band and content split).
|
|
22
|
+
- `lib/content/page-width`: `EDITORIAL_COLUMN` (the site column with the editorial sections' 24px phone step).
|
|
23
|
+
- `lib/puck/passes/section-width`: `SECTION_CONTENT_CAP_VAR`, `SECTION_CONTENT_CAP_CLASS` (`--sf-content-cap`, for a section whose content runs edge to edge on its own).
|
|
24
|
+
- `BlockRender.widthRows: "two"` (`lib/puck/blocks/block-types`): a host section whose render draws band and content apart opts in to the two rows. So a storefront-blocks release can move its sections without a builder release, and no mix of versions gives a section rows its render cannot draw.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- The eight editorial sections above draw their root as the band and their words in `EDITORIAL_COLUMN`; they no longer read `sectionRunsFullWidth`. `Breadcrumb` wraps its trail in one `div`.
|
|
29
|
+
- Section Header's own `Width` row is gone; the pass draws its two rows.
|
|
30
|
+
- Inside a Box, a section hides its whole Width group (both rows), as it hid the one row. `WIDTH_ROW_KEYS` (`lib/puck/blocks/shared-fields`) and `LAYOUT_FIELD_KEYS` (`lib/puck/field-groups`) now include the two rows, read off `SECTION_WIDTH_FIELD_KEYS` (`lib/puck/section-width-fields`). 30.0.0 left Background and Content showing in a Box for every splittable section.
|
|
31
|
+
- The storefront-blocks sections whose render must change (`AWAITING_BLOCKS` in the pass) keep their one row until their render says `widthRows: "two"`.
|
|
32
|
+
|
|
33
|
+
### Guards
|
|
34
|
+
|
|
35
|
+
- `scripts/test-section-width-draw.tsx` §7–§13 (red first): every web-builder family draws both rows, Split/Breadcrumb cap, the capped band, Brand Text, Section Header, the framed split.
|
|
36
|
+
- `scripts/test-section-width-mapping.ts`: Q&A's rows, and a stray `contained` on Brand Text or Section Header (red first, found by the pixel check).
|
|
37
|
+
- `scripts/test-full-width-means-full.ts` no longer lists the seven converted sections; `scripts/test-site-width.ts`'s cap floor is 20.
|
|
38
|
+
|
|
5
39
|
## 30.0.0 - 2026-10-21
|
|
6
40
|
|
|
7
41
|
A MAJOR: two editor components a host could import are gone (`components/SiteWidthField`, `components/HeroImageField`), and `PageRender` takes the site's Width defaults as `metadata`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{HashIcon as r,StylesIcon as o}from"efficient-easel/icons";import{group as t,linkField as S,plainText as E,segmented as _,select as i,text as l,textarea as n,upload as m,withPanelOnly as O}from"../../../controls.js";import{DEFAULT_SECTION_NUMBER_STYLE as T,SECTION_NUMBER_STYLE_OPTIONS as s}from"../../../../../../format/lib/sections/section-number-style.js";import{DEFAULT_SECTION_HEAD_STYLE as L,SECTION_HEAD_STYLE_OPTIONS as a,withHeadStyleRules as g}from"../../../../../../format/lib/sections/section-head-style.js";import{SECTION_EYEBROW_LOOK_OPTIONS as p,DEFAULT_SECTION_EYEBROW_LOOK as N}from"../../../../../../format/lib/sections/section-eyebrow-look.js";const x={fields:g({_gContent:t("Content"),headStyle:i("Style",e(o,{}),[...a],L),num:l("Number","01 / Section"),eyebrowLook:i("Eyebrow style",e(o,{}),[...p],N),numStyle:_("Number style",e(r,{}),[...s],T),title:n("Heading","Section *title*"),description:n("Body","Short supporting line"),linkText:l("Button","View all"),linkHref:S("Link"),_gLogo:t("Logo"),logoSrc:m("Logo image","image/*"),logoAlt:O(E("Logo alt text","Logo description"))})};export{x as SectionHeaderFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{backgroundField as n,copyText as r,group as t,plainTextarea as d,text as i,textarea as o}from"../../../controls.js";import{SPLITTABLE_SECTIONS as m,headFieldsForPlacement as u,widthFieldsForParent as c}from"../../../../../../format/lib/sections/section-head-placement.js";import{WIDTH_ROW_KEYS as S}from"../../shared-fields.js";import{SECTION_BG_BUILT_IN as T}from"../../../../../../format/lib/puck/blocks/general/section-bg-built-in.js";import{SERIES_PH as a}from"../../../../../../render/lib/puck/blocks/general/Series/render.js";const y={fields:{_gHead:t("Section header"),headNum:i("Number",a.headNum),headTitle:o("Heading",a.headTitle),headDesc:o("Body",a.headDesc),_gCards:t("Cards"),cards:{type:"array",label:"Cards",arrayFields:{num:r("Number"),since:r("Right Top Text"),title:d("Title"),desc:d("Body"),entries:r("Entries count"),entriesLabel:r("Button Right Text")},getItemSummary:e=>e?.title||(e?.num?`Column ${e.num}`:"Column")},_gViewLabel:t("Card link"),viewLabel:i("Card button",a.viewLabel),_gStyle:t("Style"),background:n("Background",T.Series)},resolveFields:(e,{fields:l,parent:s})=>u(c(l,s,S),e.props.headPlacement,m.Series.headRows)};export{y as SeriesFields};
|
|
1
|
+
import{backgroundField as n,copyText as r,group as t,plainTextarea as d,text as i,textarea as o}from"../../../controls.js";import{SPLITTABLE_SECTIONS as m,headFieldsForPlacement as u,widthFieldsForParent as c}from"../../../../../../format/lib/sections/section-head-placement.js";import{WIDTH_ROW_KEYS as S}from"../../shared-fields.js";import{SECTION_BG_BUILT_IN as T}from"../../../../../../format/lib/puck/blocks/general/section-bg-built-in.js";import{SERIES_PH as a}from"../../../../../../render/lib/puck/blocks/general/Series/render.js";const y={fields:{_gHead:t("Section header"),headNum:i("Number",a.headNum),headTitle:o("Heading",a.headTitle),headDesc:o("Body",a.headDesc),_gCards:t("Cards"),cards:{type:"array",label:"Cards",arrayFields:{num:r("Number"),since:r("Right Top Text"),title:d("Title"),desc:d("Body"),entries:r("Entries count"),entriesLabel:r("Button Right Text")},getItemSummary:e=>e?.title||(e?.num?`Column ${e.num}`:"Column")},_gViewLabel:t("Card link"),viewLabel:i("Card button",a.viewLabel),_gStyle:t("Style"),background:n("Background color",T.Series)},resolveFields:(e,{fields:l,parent:s})=>u(c(l,s,S),e.props.headPlacement,m.Series.headRows)};export{y as SeriesFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as a}from"react/jsx-runtime";import{ColumnsIcon as l}from"efficient-easel/icons";import{backgroundField as r,copyText as e,group as o,slider as s,text as m}from"../../../controls.js";import{SECTION_BG_BUILT_IN as n}from"../../../../../../format/lib/puck/blocks/general/section-bg-built-in.js";const c={fields:{_gContent:o("Content"),heading:m("Heading","By the *numbers*"),items:{type:"array",label:"Stats",arrayFields:{value:e("Value"),label:e("Label")},getItemSummary:t=>t.label||t.value||"stat"},columns:s("Columns",a(l,{}),2,4,1,4),_gStyle:o("Style"),background:r("Background color",n.Stats)}};export{c as StatsFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as i}from"react/jsx-runtime";import{AccentIcon as p}from"efficient-easel/icons";import{backgroundField as m,group as t,plainText as e,plainTextarea as f,text as d,textarea as l,toggle as n}from"../../../controls.js";import{SPLITTABLE_SECTIONS as u,headFieldsForPlacement as S,widthFieldsForParent as g}from"../../../../../../format/lib/sections/section-head-placement.js";import{innerSpacingFields as b,WIDTH_ROW_KEYS as
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{AccentIcon as p}from"efficient-easel/icons";import{backgroundField as m,group as t,plainText as e,plainTextarea as f,text as d,textarea as l,toggle as n}from"../../../controls.js";import{SPLITTABLE_SECTIONS as u,headFieldsForPlacement as S,widthFieldsForParent as g}from"../../../../../../format/lib/sections/section-head-placement.js";import{innerSpacingFields as b,WIDTH_ROW_KEYS as c}from"../../shared-fields.js";import{SECTION_BG_BUILT_IN as x}from"../../../../../../format/lib/puck/blocks/general/section-bg-built-in.js";import{STATS_PARAGRAPH_PH as r}from"../../../../../../render/lib/puck/blocks/general/StatsParagraph/render.js";const A={fields:{_gContent:t("Content"),eyebrow:d("Eyebrow",r.eyebrow),title:l("Heading",r.title),desc:l("Body",r.desc),stats:{type:"array",label:"Stats",arrayFields:{value:e("Number"),prefix:e("Prefix"),suffix:e("Unit"),supSuffix:e("Superscript"),emphasizeAll:n("Whole number Theme Color",!1,i(p,{})),label:e("Label"),sub:f("Body")},defaultItemProps:{value:"",prefix:"",suffix:"",supSuffix:"",emphasizeAll:!1,label:"",sub:""},getItemSummary:a=>a.label||a.value||"Stat"},_gStyle:t("Style"),background:m("Background color",x.StatsParagraph),...b("StatsParagraph")},resolveFields:(a,{fields:o,parent:s})=>S(g(o,s,c),a.props.headPlacement,u.StatsParagraph.headRows)};export{A as StatsParagraphFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as n}from"react/jsx-runtime";import{ClockIcon as s}from"efficient-easel/icons";import{backgroundField as d,plainText as m,plainTextarea as i,section as e,text as T,textarea as o,toggle as c}from"../../../controls.js";import{SPLITTABLE_SECTIONS as p,headFieldsForPlacement as u,widthFieldsForParent as f}from"../../../../../../format/lib/sections/section-head-placement.js";import{ctaField as _,innerSpacingFields as g,WIDTH_ROW_KEYS as y}from"../../shared-fields.js";import{SECTION_BG_BUILT_IN as I}from"../../../../../../format/lib/puck/blocks/general/section-bg-built-in.js";import{TIMELINE_TRACK_PH as r}from"../../../../../../render/lib/puck/blocks/general/TimelineTrack/render.js";const L={fields:{_sHeader:e("Header"),eyebrow:T("Eyebrow",r.eyebrow),title:o("Heading",r.title),intro:o("Body",r.intro),_sEntries:e("Milestones"),entries:{type:"array",label:"Milestones",arrayFields:{date:m("Year"),title:i("Title"),blurb:i("Body"),future:c("Upcoming",!1,n(s,{}))},defaultItemProps:{date:"",title:"",blurb:"",future:!1},getItemSummary:t=>t?.date||t?.title||"Milestone"},_sButton:e("Button"),..._,_dDesign:e("Design"),background:d("Background",I.TimelineTrack),_dLayout:e("Layout"),...g("TimelineTrack")},resolveFields:(t,{fields:a,parent:l})=>u(f(a,l,y),t.props.headPlacement,p.TimelineTrack.headRows)};export{L as TimelineTrackFields};
|
|
1
|
+
import{jsx as n}from"react/jsx-runtime";import{ClockIcon as s}from"efficient-easel/icons";import{backgroundField as d,plainText as m,plainTextarea as i,section as e,text as T,textarea as o,toggle as c}from"../../../controls.js";import{SPLITTABLE_SECTIONS as p,headFieldsForPlacement as u,widthFieldsForParent as f}from"../../../../../../format/lib/sections/section-head-placement.js";import{ctaField as _,innerSpacingFields as g,WIDTH_ROW_KEYS as y}from"../../shared-fields.js";import{SECTION_BG_BUILT_IN as I}from"../../../../../../format/lib/puck/blocks/general/section-bg-built-in.js";import{TIMELINE_TRACK_PH as r}from"../../../../../../render/lib/puck/blocks/general/TimelineTrack/render.js";const L={fields:{_sHeader:e("Header"),eyebrow:T("Eyebrow",r.eyebrow),title:o("Heading",r.title),intro:o("Body",r.intro),_sEntries:e("Milestones"),entries:{type:"array",label:"Milestones",arrayFields:{date:m("Year"),title:i("Title"),blurb:i("Body"),future:c("Upcoming",!1,n(s,{}))},defaultItemProps:{date:"",title:"",blurb:"",future:!1},getItemSummary:t=>t?.date||t?.title||"Milestone"},_sButton:e("Button"),..._,_dDesign:e("Design"),background:d("Background color",I.TimelineTrack),_dLayout:e("Layout"),...g("TimelineTrack")},resolveFields:(t,{fields:a,parent:l})=>u(f(a,l,y),t.props.headPlacement,p.TimelineTrack.headRows)};export{L as TimelineTrackFields};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{SECTION_WIDTH_FIELD_KEYS as n}from"../section-width-fields.js";import{SECTION_PAD_INNER_DEFAULTS as i}from"../../../../render/lib/puck/passes/section-padding.js";import p,{SlotNoticeField as a}from"../../../components/SlotChildRows.js";import{SECTION_HEIGHT as r}from"../../../../format/lib/content/section-height.js";import{usePreviewHeader as m}from"../../../../render/components/PreviewHeaderContext.js";import{IMAGE_GRAYSCALE_LABEL as c}from"../../../../format/lib/content/image-treatment.js";import{AlignLeftIcon as d,BlackAndWhiteIcon as s,ContrastIcon as f,HeightIcon as u,TypeIcon as g}from"efficient-easel/icons";import{linkField as h,segmented as l,slider as x,spacingFields as F,text as T,toggle as y,widthField as I}from"../controls.js";import{deviceField as _}from"../device-fields.js";import{FieldGlyph as E}from"../../../components/FieldGlyph.js";import{fieldNoun as S}from"../../../../format/lib/puck/field-noun.js";import{CTA_PH as A}from"../../../../format/lib/puck/blocks/placeholders.js";const W=e=>_(e,x("Height",t(u,{}),r.min,r.max,r.step,r.fallback,r.unit)),j={ctaText:T("Button",A.text),ctaHref:h("Button link")},K=()=>l("Alignment",t(d,{}),[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}],"left"),Y=()=>l("Tone",t(f,{}),[{label:"Default",value:"default"},{label:"Muted",value:"dim"}],"default"),M=e=>F({...i[e],keys:{top:"padTop",bottom:"padBottom"},group:!1}),U=(e,o)=>({type:"custom",render:()=>t(p,{parentType:e,label:o})}),q=e=>({type:"custom",render:()=>t(a,{parentType:e})});function b(e){const{photographyGrayscale:o}=m();return y(c,o===!0,t(s,{})).render(e)}function z(){return{type:"custom",render:e=>t(b,{...e})}}const J=[...new Set([...Object.keys(I("full")),...n])];function Q(e){const o=S(e);return o?t(E,{noun:o}):t(g,{})}export{J as WIDTH_ROW_KEYS,K as alignField,j as ctaField,W as heightField,M as innerSpacingFields,z as photographyToggle,q as slotNoticeField,U as slotRowsField,Q as textKindGlyph,Y as toneField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{anchorFields as m,bucketHeader as L,cardMediaFields as Y,cardShowFields as U,cardStyleFields as W,designGroupHeader as F,foldMarker as z,foldMetaOf as h,group as q,quietMarker as J,heightFields as E,sectionAnimationFields as w,sectionShapeFields as O,sectionThemeFields as D,sidesPaddingFields as B,stickFields as x,widthField as T}from"./controls.js";import{deviceField as Q,deviceMetaOf as P}from"./device-fields.js";import{DESIGN_GROUPS as k,SETTINGS_BUCKETS as V}from"efficient-easel/panel";import{BUCKET_KEY as d,DESIGN_GROUP_KEY as b}from"./field-buckets.js";const A=V;function X(e){return e==="Animation"?"Animation":"Design"}const Z="Editor only — not shown live",I={"Archive link":"Content",Article:"Content",Blocks:"Content","Blog posts":"Content","Browser mock":"Content",Button:"Content","Call to action":"Content","Car prompt":"Content","Card link":"Content",Cards:"Content","Claims bars":"Content","Contact info":"Content",Content:"Content","Content source":"Content",Contents:"Content",Filters:"Content","Show on a card":"Content",Footnote:"Content",Form:"Content",Founders:"Content","Gallery A":"Content","Gallery B":"Content","Gallery link":"Content",Header:"Content","Header link":"Content","Image caption":"Content","In this issue":"Content",Items:"Content","Kanban columns":"Content",Lead:"Content","Left panel":"Content",Link:"Content",Links:"Content",List:"Content","Message form":"Content",Metadata:"Content",Milestones:"Content","Mockup card":"Content","Newsletter panel":"Content",Offices:"Content",Options:"Content","Others gallery":"Content","Overlay button":"Content",Product:"Content","Product page":"Content",Products:"Content","Pull quote":"Content",Questions:"Content","Recent issues":"Content","Recent posts":"Content",Reviews:"Content","Right panel · actions":"Content","Right panel · choices":"Content","Right panel · form":"Content","Routing groups":"Content",Rows:"Content",Search:"Content",Section:"Content","Section header":"Content",Sections:"Content","Signup form":"Content","Source product":"Content","Stat & note":"Content",Stats:"Content","Submit button":"Content","Success state":"Content",Wheel:"Content",Terminal:"Content",Text:"Content","Text column":"Content","Timeline entries":"Content","Top row":"Content",Total:"Content","Trailing note":"Content","“Other” reason":"Content","Background images":"Design",Gallery:"Content",Image:"Content","Image column":"Content",Images:"Content",Logo:"Content",Media:"Content","Background image":"Design",Color:"Design","Image tint":"Design",Style:"Design",Shape:"Design",Texture:"Design","Text style":"Design",Motion:"Animation",Anchor:"Anchor",Arrangement:"Layout","Auto-slide":"Layout",Bar:"Layout","Cell width":"Size",Behavior:"Layout",Controls:"Layout",Diagram:"Layout",[Z]:"Layout","Filters shown":"Layout","Slide picker":"Layout",Arrows:"Layout","On a phone":"Layout",Nudge:"Position","Stick to top":"Position","Image gallery":"Layout",Grid:"Layout",Layout:"Layout",Padding:"Layout",Price:"Layout",Preview:"Layout",Setup:"Layout","Show / hide elements":"Layout","Show in the buy box":"Layout",Visibility:"Layout",Width:"Size",Height:"Size"},$={"AlloyWheelsListing._gCards":"Design","ProductGrid._gCards":"Design"},G={"Text._gSpacing":"Size","Heading._gSpacing":"Size"};function _(e,t,o){const a=`${e}.${t}`;return G[a]??$[a]??I[o]}function he(e,t,o){const a=_(e,t,o);return a?X(a):void 0}function H(e){return e==="Animation"?[d.Animation]:[d.Design,b[e]]}function S(...e){const t=[];for(const o of e)for(const a of Object.values(o)){const C=P(a),p=h(C?C.inner:a),u=p?I[p.label]:void 0;if(u)for(const g of H(u))t.includes(g)||t.push(g)}return t}const be=[...S(B(),T("full"),E(),m(),x()),...Object.keys(B()),...Object.keys(T("full")),...Object.keys(E()),...Object.keys(m()),...Object.keys(x())],Ce=[...S(D()),...Object.keys(D())],pe=[...S(O()),...Object.keys(O())],ge=[...S(w()),...Object.keys(w())],ee=Object.keys(Y()),te=new Set(["cardImage","imageBackground"]),ye=[...H(_("ProductGrid","_gCards","Cards")??"Design"),...ee.filter(e=>e.startsWith("_g")||te.has(e))],ke=Object.keys(W()),_e=Object.keys(U({bottomDefault:!0})),ne={"ImageBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","ButtonBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","HeroGroup._gContent":"duplicated the Content bucket header above it (2026-09-04)","HeroGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","Footer._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterLogo._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterLogo._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterMenu._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterMenu._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterText._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterText._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterSocial._gStyle":"duplicated the Style bucket header above it (born tabbed, 2026-09-17)","FooterSocial._gLayout":"duplicated the Layout bucket header above it (born tabbed, 2026-09-17)","MenuBlock._gContent":"duplicated the Content bucket header above it (born tabbed, H.1)","MenuBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","EmailFormBlock._gContent":"duplicated the Content bucket header above it (born tabbed, H.1)","SocialLogosBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","SocialLogosBlock._gLayout":"duplicated the Layout bucket header above it (born tabbed, H.1)","SearchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CartBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CountrySwitchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed with its Show as, 2026-10-17)","Split._gContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gVehicleContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gWheelContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gOthersContent":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gHeadCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gLeftCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gRightCopy":"duplicated the Content bucket header above it (2026-09-04)","CollectionCard._gContent":"duplicated the Content bucket header above it (A Card Sets Its Own Corners)","HeroSlide._gContent":"duplicated the Content bucket header above it (Hero Slide Tabs And Theme)","BrandStrip._gContent":"duplicated the Content bucket header above it (66338)","BrandStrip._gStyle":"duplicated the Style bucket header above it (66338)","BrandStrip._gLayout":"duplicated the Layout bucket header above it (66338)","KeyFeatures._gContent":"duplicated the Content bucket header above it (66049)","KeyFeatures._gStyle":"duplicated the Style bucket header above it (66049)","ParagraphsA._gContent":"duplicated the Content bucket header above it (66049)","ParagraphsA._gStyle":"duplicated the Style bucket header above it (66049)","Chart._gContent":"duplicated the Content bucket header above it (66049)","Chart._gStyle":"duplicated the Style bucket header above it (66049)","Logos._gContent":"duplicated the Content bucket header above it (66049)","Logos._gStyle":"duplicated the Style bucket header above it (66049)","Mockup._gContent":"duplicated the Content bucket header above it (66049)","Mockup._gStyle":"duplicated the Style bucket header above it (66049)","Stats._gContent":"duplicated the Content bucket header above it (66049)","Stats._gStyle":"duplicated the Style bucket header above it (66049)","StatsParagraph._gContent":"duplicated the Content bucket header above it (66049)","StatsParagraph._gStyle":"duplicated the Style bucket header above it (66049)","Testimonials._gContent":"duplicated the Content bucket header above it (66049)","Testimonials._gStyle":"duplicated the Style bucket header above it (66049)","AppointmentBooking._gContent":"duplicated the Content bucket header above it (66050)","BookingBox._gContent":"duplicated the Content bucket header above it ([SPLIT] Booking Form Into Three Boxes) — the same fault its own section retired in 66050, one level down","FAQ._gContent":"duplicated the Content bucket header above it (66050, family sweep)","FAQ._gLayout":"duplicated the Layout bucket header above it (66050, family sweep)","Form._gContent":"duplicated the Content bucket header above it (66050)","ReviewForm._gContent":"duplicated the Content bucket header above it (66050)","SubmitBuild._gContent":"duplicated the Content bucket header above it (66050)","SubmitBox._gContent":"duplicated the Content bucket header above it ([SPLIT] SubmitBuild Keeps Its Two Columns) — the same fault its own section retired in 66050, one level down","CheckoutCTA._gContent":"duplicated the Content bucket header above it (66051)","CheckoutCTA._gLayout":"duplicated the Layout bucket header above it (66051)","DeliveryOptions._gContent":"duplicated the Content bucket header above it (66051)","DeliveryOptions._gLayout":"duplicated the Layout bucket header above it (66051)","OrderSummary._gContent":"duplicated the Content bucket header above it (66051)","OrderSummary._gLayout":"duplicated the Layout bucket header above it (66051)","PaymentBadges._gContent":"duplicated the Content bucket header above it (66051)","PaymentBadges._gLayout":"duplicated the Layout bucket header above it (66051)","Collections._gContent":"duplicated the Content bucket header above it (66052)","Collections._gLayout":"duplicated the Layout bucket header above it (66052)","DocMasthead._gContent":"duplicated the Content bucket header above it (66053)","Events._gContent":"duplicated the Content bucket header above it (66054)","Events._gLayout":"duplicated the Layout bucket header above it (66054)","FeaturedCover._gContent":"duplicated the Content bucket header above it (66054)","Series._gStyle":"duplicated the Style bucket header above it (66054)","Flex._gContent":"duplicated the Content bucket header above it (66055)","Flex._gLayout":"duplicated the Layout bucket header above it (66055)","SectionHeader._gContent":"duplicated the Content bucket header above it (66055)","Breadcrumb._gContent":"duplicated the Content bucket header above it (66056)","CategoryBar._gStyle":"duplicated the Style bucket header above it (66056)","Hero._gContent":"duplicated the Content bucket header above it (66056)","Hero._gStyle":"duplicated the Style bucket header above it (66056)","HeroSingle._gStyle":"duplicated the Style bucket header above it (66056)","IntroBleed._gContent":"duplicated the Content bucket header above it (66056)","IntroBleed._gLayout":"duplicated the Layout bucket header above it (66056)","BundleOffer._gLayout":"duplicated the Layout bucket header above it (66059)","ProcessSteps._gContent":"duplicated the Content bucket header above it (66059)","Banner._gContent":"duplicated the Content bucket header above it (66060.1)","Banner._gLayout":"duplicated the Layout bucket header above it, and governed no controls (66060.1)","Manifesto._gContent":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gHeadCopy":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gLeftCopy":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gRightCopy":"duplicated the Content bucket header above it (66060.1)","Ticker._gContent":"duplicated the Content bucket header above it (66060.1)","Ticker._gStyle":"duplicated the Style bucket header above it (66060.1)","Timeline._gContent":"duplicated the Content bucket header above it (66060.1)","TitleWithButtons._gContent":"duplicated the Content bucket header above it (66060.1)","TitleWithButtons._gStyle":"duplicated the Style bucket header above it (66060.1)","Cards._gContent":"duplicated the Content bucket header above it (66218)","Cards._gStyle":"duplicated the Style bucket header above it (66218)","Prose._gContent":"duplicated the Content bucket header above it (66218)","Reviews._gContent":"duplicated the Content bucket header above it (66218)","Reviews._gStyle":"duplicated the Style bucket header above it (66218)"},K={Content:["Content"],Size:["Size"],Design:["Design","Style"],Layout:["Layout"],Position:["Position"],Anchor:["Anchor"],Animation:["Animation"]},M={_gAnchor:"repeated the Anchor group heading above it (two tabs, 11.0.0)"};{const e={...B(),...T("full"),...E(),...m(),...D(),...O(),...w()};for(const t of Object.keys(M)){const o=h(e[t]),a=o?I[o.label]:void 0;if(!o||o.level!==2||!a||!K[a].includes(o.label))throw new Error(`INJECTED_RETIRED (lib/puck/field-groups.ts) lists "${t}", but no uniform builder makes a level-2 heading by that key whose label repeats its place's word. The heading was renamed, moved or removed and the row is stale — a list that quietly matches nothing is worse than no list.`)}}const oe=new Set(["_sContent","_sStyle","_sLayout","_sMedia"]),ae=new Map([[d.Design,"Content"],[d.Animation,"Animation"],...k.map(e=>[b[e],e])]);function Se(e){const t=new Set([...Object.values(d),b.Content]);for(const[o,a]of Object.entries(e))if(!t.has(o)&&h(a)?.level===1)return 1;return 2}function ie(e){const t=`${e}.`;return Object.keys(ne).filter(o=>o.startsWith(t)).map(o=>o.slice(t.length))}function re(e,t){const o=P(e),a=q(t);return o?Q(o.tier,a):a}function de(e,t){const o=h(t);return o?e==="Content"||e==="Animation"?z(t,o.label):J(t):t}function j(e){return e==="Design"?k:["Animation"]}function ve(e,t){const o=[],a=new Set(ie(t)),C=new Set;let p=!1,u=null;for(const[n,r]of Object.entries(e)){const i=h(r);if(oe.has(n))throw new Error(`${t}.${n}: that key was a tab header until efficient-web-builder 11.0.0, when the panel moved to two tabs (Design · Animation). Its tab is gone, so the key may not come back. Give the heading a key of the section's own (\`_g…\`), or open a Design group with its own key (\`_dDesign: section("Design")\`, \`_dLayout: section("Layout")\`).`);const c=ae.get(n);if(c!==void 0){if(i?.level!==1)throw new Error(`${t}.${n}: that key is reserved for the ${c} heading of the settings panel, but this field is ${i?`a level-${i.level} "${i.label}" header`:"not a header"}, so it cannot serve as one. Rename the section's own field.`);(n===d.Design||n===d.Animation)&&(p=!0),o.push(u={place:c,entries:[],adopted:!0});continue}if(!i){u||o.push(u={place:"Content",entries:[]}),u.entries.push([n,r]);continue}if(a.has(n)||n in M){const s=_(t,n,i.label);if(i.level!==2||!s||!K[s].includes(i.label))throw new Error(`${t}.${n}: ${a.has(n)?"RETIRED":"INJECTED_RETIRED"} (lib/puck/field-groups.ts) lists this sub-heading as one whose name repeats the place it sits in, but it is a level-${i.level} "${i.label}" header in the ${s??"(unclassified)"} place. Only a level-2 header whose label is one of its place's words (PLACE_WORDS) may be retired — anything else is a heading a merchant reads for its own sake. Fix the row or drop it.`);a.has(n)&&C.add(n),o.push(u={place:s,entries:[]});continue}const l=_(t,n,i.label);if(!l)throw new Error(`${t}.${n}: the inspector group "${i.label}" is not classified in LABEL_GROUP (lib/puck/field-groups.ts), so there is no way to say which of ${[...k,"Animation"].join(" / ")} its controls belong under. Classify it — an unclassified group silently lands wherever it was declared, which is the whole bug.`);o.push(u={place:l,entries:[[n,i.level===2?r:re(r,i.label)]]})}const g=new Set(Object.entries(e).filter(([,n])=>h(n)).map(([n])=>n));for(const[n,r]of[["BLOCK_KEY_GROUP",G],["KEY_GROUP",$]]){const i=Object.keys(r).filter(c=>c.startsWith(`${t}.`)).filter(c=>!g.has(c.slice(t.length+1)));if(i.length)throw new Error(`${t}: ${n} (lib/puck/field-groups.ts) lists ${JSON.stringify(i)}, but no fold header by that key is in this section's panel. Either the heading was renamed or removed and the row is stale, or the row names the wrong key — an override that quietly matches nothing is worse than no override.`)}const v=p?[]:[...a].filter(n=>!C.has(n));if(v.length)throw new Error(`${t}: RETIRED (lib/puck/field-groups.ts) lists ${JSON.stringify(v)}, but this section has no such fold header${v.length>1?"s":""}. Either the heading was renamed or removed and the row is stale, or the row names the wrong section — a list that quietly matches nothing is worse than no list.`);const R=new Set(o.filter(n=>n.entries.length>0).map(n=>n.place)),f=A.filter(n=>j(n).some(r=>R.has(r))),y={};for(const n of f){y[d[n]]=L(n,n===f[0]?f:null);for(const r of j(n)){if(!R.has(r))continue;const i=o.filter(l=>l.place===r),c=i.findIndex(l=>l.adopted);c>0&&i.unshift(...i.splice(c,1)),n==="Design"&&(y[b[r]]=F(r));for(const l of i)for(const[s,N]of l.entries)y[s]=de(r,N)}}return y}function fe(e){return d.Design in e?e:{[d.Design]:L("Design",null),[b.Content]:F("Content"),...e}}function me(e){return A.some(t=>d[t]in e)}function Le(e){const t=A.filter(a=>d[a]in e);if(t.length===0)return e;const o={...e};for(const a of t)o[d[a]]=L(a,a===t[0]?t:null);return o}export{G as BLOCK_KEY_GROUP,ye as BOUND_CARD_MEDIA_FIELD_KEYS,A as BUCKETS,d as BUCKET_KEY,ee as CARD_MEDIA_FIELD_KEYS,_e as CARD_SHOW_FIELD_KEYS,ke as CARD_STYLE_FIELD_KEYS,k as DESIGN_GROUPS,b as DESIGN_GROUP_KEY,Z as EDITOR_ONLY_GROUP,M as INJECTED_RETIRED,$ as KEY_GROUP,I as LABEL_GROUP,be as LAYOUT_FIELD_KEYS,K as PLACE_WORDS,ne as RETIRED,ge as SECTION_ANIM_FIELD_KEYS,pe as SECTION_SHAPE_FIELD_KEYS,Ce as SECTION_THEME_FIELD_KEYS,ve as assignSectionGroups,he as bucketOf,X as bucketOfPlace,Se as foldTopTier,me as hasBucketTabs,S as headerKeysOf,H as headerKeysOfPlace,_ as placeOf,Le as reseatBucketTabs,ie as retiredHeadings,fe as seatDesignBucket};
|
|
1
|
+
import{SECTION_WIDTH_FIELD_KEYS as Y}from"./section-width-fields.js";import{anchorFields as m,bucketHeader as L,cardMediaFields as U,cardShowFields as W,cardStyleFields as z,designGroupHeader as R,foldMarker as q,foldMetaOf as h,group as J,quietMarker as Q,heightFields as E,sectionAnimationFields as w,sectionShapeFields as O,sectionThemeFields as D,sidesPaddingFields as B,stickFields as x,widthField as T}from"./controls.js";import{deviceField as V,deviceMetaOf as P}from"./device-fields.js";import{DESIGN_GROUPS as k,SETTINGS_BUCKETS as X}from"efficient-easel/panel";import{BUCKET_KEY as d,DESIGN_GROUP_KEY as b}from"./field-buckets.js";const A=X;function Z(e){return e==="Animation"?"Animation":"Design"}const ee="Editor only — not shown live",I={"Archive link":"Content",Article:"Content",Blocks:"Content","Blog posts":"Content","Browser mock":"Content",Button:"Content","Call to action":"Content","Car prompt":"Content","Card link":"Content",Cards:"Content","Claims bars":"Content","Contact info":"Content",Content:"Content","Content source":"Content",Contents:"Content",Filters:"Content","Show on a card":"Content",Footnote:"Content",Form:"Content",Founders:"Content","Gallery A":"Content","Gallery B":"Content","Gallery link":"Content",Header:"Content","Header link":"Content","Image caption":"Content","In this issue":"Content",Items:"Content","Kanban columns":"Content",Lead:"Content","Left panel":"Content",Link:"Content",Links:"Content",List:"Content","Message form":"Content",Metadata:"Content",Milestones:"Content","Mockup card":"Content","Newsletter panel":"Content",Offices:"Content",Options:"Content","Others gallery":"Content","Overlay button":"Content",Product:"Content","Product page":"Content",Products:"Content","Pull quote":"Content",Questions:"Content","Recent issues":"Content","Recent posts":"Content",Reviews:"Content","Right panel · actions":"Content","Right panel · choices":"Content","Right panel · form":"Content","Routing groups":"Content",Rows:"Content",Search:"Content",Section:"Content","Section header":"Content",Sections:"Content","Signup form":"Content","Source product":"Content","Stat & note":"Content",Stats:"Content","Submit button":"Content","Success state":"Content",Wheel:"Content",Terminal:"Content",Text:"Content","Text column":"Content","Timeline entries":"Content","Top row":"Content",Total:"Content","Trailing note":"Content","“Other” reason":"Content","Background images":"Design",Gallery:"Content",Image:"Content","Image column":"Content",Images:"Content",Logo:"Content",Media:"Content","Background image":"Design",Color:"Design","Image tint":"Design",Style:"Design",Shape:"Design",Texture:"Design","Text style":"Design",Motion:"Animation",Anchor:"Anchor",Arrangement:"Layout","Auto-slide":"Layout",Bar:"Layout","Cell width":"Size",Behavior:"Layout",Controls:"Layout",Diagram:"Layout",[ee]:"Layout","Filters shown":"Layout","Slide picker":"Layout",Arrows:"Layout","On a phone":"Layout",Nudge:"Position","Stick to top":"Position","Image gallery":"Layout",Grid:"Layout",Layout:"Layout",Padding:"Layout",Price:"Layout",Preview:"Layout",Setup:"Layout","Show / hide elements":"Layout","Show in the buy box":"Layout",Visibility:"Layout",Width:"Size",Height:"Size"},H={"AlloyWheelsListing._gCards":"Design","ProductGrid._gCards":"Design"},$={"Text._gSpacing":"Size","Heading._gSpacing":"Size"};function _(e,t,n){const a=`${e}.${t}`;return $[a]??H[a]??I[n]}function Ce(e,t,n){const a=_(e,t,n);return a?Z(a):void 0}function G(e){return e==="Animation"?[d.Animation]:[d.Design,b[e]]}function S(...e){const t=[];for(const n of e)for(const a of Object.values(n)){const C=P(a),p=h(C?C.inner:a),u=p?I[p.label]:void 0;if(u)for(const g of G(u))t.includes(g)||t.push(g)}return t}const pe=[...S(B(),T("full"),E(),m(),x()),...Object.keys(B()),...Object.keys(T("full")),...Object.keys(E()),...Object.keys(m()),...Object.keys(x()),...Y],ge=[...S(D()),...Object.keys(D())],ye=[...S(O()),...Object.keys(O())],ke=[...S(w()),...Object.keys(w())],te=Object.keys(U()),oe=new Set(["cardImage","imageBackground"]),_e=[...G(_("ProductGrid","_gCards","Cards")??"Design"),...te.filter(e=>e.startsWith("_g")||oe.has(e))],Se=Object.keys(z()),ve=Object.keys(W({bottomDefault:!0})),ne={"ImageBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","ButtonBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","HeroGroup._gContent":"duplicated the Content bucket header above it (2026-09-04)","HeroGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","Footer._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterLogo._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterLogo._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterMenu._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterMenu._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterText._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterText._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterSocial._gStyle":"duplicated the Style bucket header above it (born tabbed, 2026-09-17)","FooterSocial._gLayout":"duplicated the Layout bucket header above it (born tabbed, 2026-09-17)","MenuBlock._gContent":"duplicated the Content bucket header above it (born tabbed, H.1)","MenuBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","EmailFormBlock._gContent":"duplicated the Content bucket header above it (born tabbed, H.1)","SocialLogosBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","SocialLogosBlock._gLayout":"duplicated the Layout bucket header above it (born tabbed, H.1)","SearchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CartBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CountrySwitchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed with its Show as, 2026-10-17)","Split._gContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gVehicleContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gWheelContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gOthersContent":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gHeadCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gLeftCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gRightCopy":"duplicated the Content bucket header above it (2026-09-04)","CollectionCard._gContent":"duplicated the Content bucket header above it (A Card Sets Its Own Corners)","HeroSlide._gContent":"duplicated the Content bucket header above it (Hero Slide Tabs And Theme)","BrandStrip._gContent":"duplicated the Content bucket header above it (66338)","BrandStrip._gStyle":"duplicated the Style bucket header above it (66338)","BrandStrip._gLayout":"duplicated the Layout bucket header above it (66338)","KeyFeatures._gContent":"duplicated the Content bucket header above it (66049)","KeyFeatures._gStyle":"duplicated the Style bucket header above it (66049)","ParagraphsA._gContent":"duplicated the Content bucket header above it (66049)","ParagraphsA._gStyle":"duplicated the Style bucket header above it (66049)","Chart._gContent":"duplicated the Content bucket header above it (66049)","Chart._gStyle":"duplicated the Style bucket header above it (66049)","Logos._gContent":"duplicated the Content bucket header above it (66049)","Logos._gStyle":"duplicated the Style bucket header above it (66049)","Mockup._gContent":"duplicated the Content bucket header above it (66049)","Mockup._gStyle":"duplicated the Style bucket header above it (66049)","Stats._gContent":"duplicated the Content bucket header above it (66049)","Stats._gStyle":"duplicated the Style bucket header above it (66049)","StatsParagraph._gContent":"duplicated the Content bucket header above it (66049)","StatsParagraph._gStyle":"duplicated the Style bucket header above it (66049)","Testimonials._gContent":"duplicated the Content bucket header above it (66049)","Testimonials._gStyle":"duplicated the Style bucket header above it (66049)","AppointmentBooking._gContent":"duplicated the Content bucket header above it (66050)","BookingBox._gContent":"duplicated the Content bucket header above it ([SPLIT] Booking Form Into Three Boxes) — the same fault its own section retired in 66050, one level down","FAQ._gContent":"duplicated the Content bucket header above it (66050, family sweep)","FAQ._gLayout":"duplicated the Layout bucket header above it (66050, family sweep)","Form._gContent":"duplicated the Content bucket header above it (66050)","ReviewForm._gContent":"duplicated the Content bucket header above it (66050)","SubmitBuild._gContent":"duplicated the Content bucket header above it (66050)","SubmitBox._gContent":"duplicated the Content bucket header above it ([SPLIT] SubmitBuild Keeps Its Two Columns) — the same fault its own section retired in 66050, one level down","CheckoutCTA._gContent":"duplicated the Content bucket header above it (66051)","CheckoutCTA._gLayout":"duplicated the Layout bucket header above it (66051)","DeliveryOptions._gContent":"duplicated the Content bucket header above it (66051)","DeliveryOptions._gLayout":"duplicated the Layout bucket header above it (66051)","OrderSummary._gContent":"duplicated the Content bucket header above it (66051)","OrderSummary._gLayout":"duplicated the Layout bucket header above it (66051)","PaymentBadges._gContent":"duplicated the Content bucket header above it (66051)","PaymentBadges._gLayout":"duplicated the Layout bucket header above it (66051)","Collections._gContent":"duplicated the Content bucket header above it (66052)","Collections._gLayout":"duplicated the Layout bucket header above it (66052)","DocMasthead._gContent":"duplicated the Content bucket header above it (66053)","Events._gContent":"duplicated the Content bucket header above it (66054)","Events._gLayout":"duplicated the Layout bucket header above it (66054)","FeaturedCover._gContent":"duplicated the Content bucket header above it (66054)","Series._gStyle":"duplicated the Style bucket header above it (66054)","Flex._gContent":"duplicated the Content bucket header above it (66055)","Flex._gLayout":"duplicated the Layout bucket header above it (66055)","SectionHeader._gContent":"duplicated the Content bucket header above it (66055)","Breadcrumb._gContent":"duplicated the Content bucket header above it (66056)","CategoryBar._gStyle":"duplicated the Style bucket header above it (66056)","Hero._gContent":"duplicated the Content bucket header above it (66056)","Hero._gStyle":"duplicated the Style bucket header above it (66056)","HeroSingle._gStyle":"duplicated the Style bucket header above it (66056)","IntroBleed._gContent":"duplicated the Content bucket header above it (66056)","IntroBleed._gLayout":"duplicated the Layout bucket header above it (66056)","BundleOffer._gLayout":"duplicated the Layout bucket header above it (66059)","ProcessSteps._gContent":"duplicated the Content bucket header above it (66059)","Banner._gContent":"duplicated the Content bucket header above it (66060.1)","Banner._gLayout":"duplicated the Layout bucket header above it, and governed no controls (66060.1)","Manifesto._gContent":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gHeadCopy":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gLeftCopy":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gRightCopy":"duplicated the Content bucket header above it (66060.1)","Ticker._gContent":"duplicated the Content bucket header above it (66060.1)","Ticker._gStyle":"duplicated the Style bucket header above it (66060.1)","Timeline._gContent":"duplicated the Content bucket header above it (66060.1)","TitleWithButtons._gContent":"duplicated the Content bucket header above it (66060.1)","TitleWithButtons._gStyle":"duplicated the Style bucket header above it (66060.1)","Cards._gContent":"duplicated the Content bucket header above it (66218)","Cards._gStyle":"duplicated the Style bucket header above it (66218)","Prose._gContent":"duplicated the Content bucket header above it (66218)","Reviews._gContent":"duplicated the Content bucket header above it (66218)","Reviews._gStyle":"duplicated the Style bucket header above it (66218)"},K={Content:["Content"],Size:["Size"],Design:["Design","Style"],Layout:["Layout"],Position:["Position"],Anchor:["Anchor"],Animation:["Animation"]},M={_gAnchor:"repeated the Anchor group heading above it (two tabs, 11.0.0)"};{const e={...B(),...T("full"),...E(),...m(),...D(),...O(),...w()};for(const t of Object.keys(M)){const n=h(e[t]),a=n?I[n.label]:void 0;if(!n||n.level!==2||!a||!K[a].includes(n.label))throw new Error(`INJECTED_RETIRED (lib/puck/field-groups.ts) lists "${t}", but no uniform builder makes a level-2 heading by that key whose label repeats its place's word. The heading was renamed, moved or removed and the row is stale — a list that quietly matches nothing is worse than no list.`)}}const ae=new Set(["_sContent","_sStyle","_sLayout","_sMedia"]),ie=new Map([[d.Design,"Content"],[d.Animation,"Animation"],...k.map(e=>[b[e],e])]);function fe(e){const t=new Set([...Object.values(d),b.Content]);for(const[n,a]of Object.entries(e))if(!t.has(n)&&h(a)?.level===1)return 1;return 2}function re(e){const t=`${e}.`;return Object.keys(ne).filter(n=>n.startsWith(t)).map(n=>n.slice(t.length))}function de(e,t){const n=P(e),a=J(t);return n?V(n.tier,a):a}function ce(e,t){const n=h(t);return n?e==="Content"||e==="Animation"?q(t,n.label):Q(t):t}function j(e){return e==="Design"?k:["Animation"]}function me(e,t){const n=[],a=new Set(re(t)),C=new Set;let p=!1,u=null;for(const[o,r]of Object.entries(e)){const i=h(r);if(ae.has(o))throw new Error(`${t}.${o}: that key was a tab header until efficient-web-builder 11.0.0, when the panel moved to two tabs (Design · Animation). Its tab is gone, so the key may not come back. Give the heading a key of the section's own (\`_g…\`), or open a Design group with its own key (\`_dDesign: section("Design")\`, \`_dLayout: section("Layout")\`).`);const c=ie.get(o);if(c!==void 0){if(i?.level!==1)throw new Error(`${t}.${o}: that key is reserved for the ${c} heading of the settings panel, but this field is ${i?`a level-${i.level} "${i.label}" header`:"not a header"}, so it cannot serve as one. Rename the section's own field.`);(o===d.Design||o===d.Animation)&&(p=!0),n.push(u={place:c,entries:[],adopted:!0});continue}if(!i){u||n.push(u={place:"Content",entries:[]}),u.entries.push([o,r]);continue}if(a.has(o)||o in M){const s=_(t,o,i.label);if(i.level!==2||!s||!K[s].includes(i.label))throw new Error(`${t}.${o}: ${a.has(o)?"RETIRED":"INJECTED_RETIRED"} (lib/puck/field-groups.ts) lists this sub-heading as one whose name repeats the place it sits in, but it is a level-${i.level} "${i.label}" header in the ${s??"(unclassified)"} place. Only a level-2 header whose label is one of its place's words (PLACE_WORDS) may be retired — anything else is a heading a merchant reads for its own sake. Fix the row or drop it.`);a.has(o)&&C.add(o),n.push(u={place:s,entries:[]});continue}const l=_(t,o,i.label);if(!l)throw new Error(`${t}.${o}: the inspector group "${i.label}" is not classified in LABEL_GROUP (lib/puck/field-groups.ts), so there is no way to say which of ${[...k,"Animation"].join(" / ")} its controls belong under. Classify it — an unclassified group silently lands wherever it was declared, which is the whole bug.`);n.push(u={place:l,entries:[[o,i.level===2?r:de(r,i.label)]]})}const g=new Set(Object.entries(e).filter(([,o])=>h(o)).map(([o])=>o));for(const[o,r]of[["BLOCK_KEY_GROUP",$],["KEY_GROUP",H]]){const i=Object.keys(r).filter(c=>c.startsWith(`${t}.`)).filter(c=>!g.has(c.slice(t.length+1)));if(i.length)throw new Error(`${t}: ${o} (lib/puck/field-groups.ts) lists ${JSON.stringify(i)}, but no fold header by that key is in this section's panel. Either the heading was renamed or removed and the row is stale, or the row names the wrong key — an override that quietly matches nothing is worse than no override.`)}const v=p?[]:[...a].filter(o=>!C.has(o));if(v.length)throw new Error(`${t}: RETIRED (lib/puck/field-groups.ts) lists ${JSON.stringify(v)}, but this section has no such fold header${v.length>1?"s":""}. Either the heading was renamed or removed and the row is stale, or the row names the wrong section — a list that quietly matches nothing is worse than no list.`);const F=new Set(n.filter(o=>o.entries.length>0).map(o=>o.place)),f=A.filter(o=>j(o).some(r=>F.has(r))),y={};for(const o of f){y[d[o]]=L(o,o===f[0]?f:null);for(const r of j(o)){if(!F.has(r))continue;const i=n.filter(l=>l.place===r),c=i.findIndex(l=>l.adopted);c>0&&i.unshift(...i.splice(c,1)),o==="Design"&&(y[b[r]]=R(r));for(const l of i)for(const[s,N]of l.entries)y[s]=ce(r,N)}}return y}function Le(e){return d.Design in e?e:{[d.Design]:L("Design",null),[b.Content]:R("Content"),...e}}function Ee(e){return A.some(t=>d[t]in e)}function we(e){const t=A.filter(a=>d[a]in e);if(t.length===0)return e;const n={...e};for(const a of t)n[d[a]]=L(a,a===t[0]?t:null);return n}export{$ as BLOCK_KEY_GROUP,_e as BOUND_CARD_MEDIA_FIELD_KEYS,A as BUCKETS,d as BUCKET_KEY,te as CARD_MEDIA_FIELD_KEYS,ve as CARD_SHOW_FIELD_KEYS,Se as CARD_STYLE_FIELD_KEYS,k as DESIGN_GROUPS,b as DESIGN_GROUP_KEY,ee as EDITOR_ONLY_GROUP,M as INJECTED_RETIRED,H as KEY_GROUP,I as LABEL_GROUP,pe as LAYOUT_FIELD_KEYS,K as PLACE_WORDS,ne as RETIRED,ke as SECTION_ANIM_FIELD_KEYS,ye as SECTION_SHAPE_FIELD_KEYS,ge as SECTION_THEME_FIELD_KEYS,me as assignSectionGroups,Ce as bucketOf,Z as bucketOfPlace,fe as foldTopTier,Ee as hasBucketTabs,S as headerKeysOf,G as headerKeysOfPlace,_ as placeOf,we as reseatBucketTabs,re as retiredHeadings,Le as seatDesignBucket};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as c}from"react/jsx-runtime";import{usePreviewDevice as y}from"efficient-easel/draw/client";import{usePreviewHeader as
|
|
1
|
+
"use client";import{jsx as c}from"react/jsx-runtime";import{usePreviewDevice as y}from"efficient-easel/draw/client";import{usePreviewHeader as w}from"../../../render/components/PreviewHeaderContext.js";import{BackgroundWidthRow as S,CONTENT_INSIDE_BACKGROUND_HINT as I,ContentWidthRow as C,WIDTH_GROUP_LABEL as E,WIDTH_PHONE_HINT as T}from"../../components/SectionWidthRows.js";import{PAGE_WIDTH as p}from"../../../format/lib/content/page-width.js";import{FOLLOW_SITE as m,WIDTH_CHOICE_LABEL as H,resolveSectionWidth as f}from"../../../format/lib/content/section-width.js";import{say as h}from"../../../format/lib/editor-words.js";import{group as D,sharedStyleKinds as N,useSelectedProps as W,useSelectedSibling as O}from"./controls.js";import{NoControlMark as g,noControlField as b}from"./panel-no-control-mark.js";const l=t=>h(H[t==="content"?"page":"full"]),x=t=>`${t} ${h("from Site styles")}`;function _(){const{siteWidth:t,sectionBackgroundWidth:n,sectionContentWidth:i}=w();return{px:typeof t=="number"?t:p.default,background:n??"full",content:i??"content"}}function k(){try{return y()==="mobile"}catch{return!1}}function B({type:t,onChange:n}){const i=W(),o=_(),e=k(),d=f(t,i).background;return c(S,{value:d??o.background,changed:d!==null,detail:x(l(o.background)),onChange:r=>n(r),onReset:()=>n(m),disabled:e})}function P({type:t,onChange:n}){const i=W(),[,o]=O("contentMax"),e=_(),d=k(),r=f(t,i),u=(r.background??e.background)==="content",a=r.content??e.content;return c(C,{mode:u&&a==="full"?"content":a,px:r.contentMax??e.px,max:u?e.px:p.max,changed:r.content!==null,detail:x(e.content==="full"?l("full"):`${l("content")} ${e.px}px`),fullClosed:u,disabled:d,hint:d?T:u?I:void 0,onMode:s=>{n(s),s==="full"&&o(null)},onPx:s=>{n("content"),o(s===e.px?null:s)},onReset:()=>{n(m),o(null)}})}function R(t){return N({_gWidth:D(E),backgroundWidth:{type:"custom",render:({onChange:n})=>c(B,{type:t,onChange:n})},contentWidth:{type:"custom",render:({onChange:n})=>c(P,{type:t,onChange:n})},contentMax:{...b({type:"custom",render:()=>c(g,{})},"always"),reachedBy:"contentWidth"},widthMode:{...b({type:"custom",render:()=>c(g,{})},"always"),reachedBy:"backgroundWidth"}})}const V=Object.keys(R(""));export{V as SECTION_WIDTH_FIELD_KEYS,R as sectionWidthFields};
|
|
@@ -32,6 +32,7 @@ export declare const SITE_GUTTER_NARROW: {
|
|
|
32
32
|
export declare const SITE_GUTTER_SUBSTITUTIONS: ReadonlyArray<readonly [string, string]>;
|
|
33
33
|
export declare function asMainGutters(html: string): string;
|
|
34
34
|
export declare const SITE_COLUMN = "mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]";
|
|
35
|
+
export declare const EDITORIAL_COLUMN = "mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]";
|
|
35
36
|
export declare function normalizeSiteGutter(v?: number | null): number;
|
|
36
37
|
export declare function siteGutterTokens(v?: number | null): Record<string, string>;
|
|
37
38
|
export declare function siteHalfColumnCap(dividerPx?: number): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const p={min:1e3,max:2e3,step:50,default:1600};function m(t){return{maxWidth:t,marginInline:"auto",width:"100%"}}function D(t,e){if(t!==!1)return null;const a=typeof e=="number"?e:p.default;return m(a)}const _="--sf-site-width",o=`var(${_},${p.default}px)`,T=`max-w-[${o}]`,w=`max-w-[${p.default}px]`;function A(t){return typeof t!="number"||!Number.isFinite(t)?p.default:Math.round(Math.min(Math.max(t,p.min),p.max))}function P(t){const e=A(t);return e===p.default?{}:{[_]:`${e}px`}}const n={min:0,max:80,step:4,default:40},c="--sf-site-gutter",x=`var(${c},${n.default}px)`,C=`px-[${x}]`,L=["px-10","px-[60px]"],r={md:`min(24px,${x})`,sm:`min(20px,${x})`,frame:`min(24px,${x})`,tabs:`min(16px,${x})`},S=[[`max-[1100px]:px-[${r.md}]`,"max-[1100px]:px-6"],[`max-[1100px]:px-[${r.tabs}]`,"max-[1100px]:px-4"],[`max-[960px]:px-[${r.frame}]`,"max-[960px]:px-6"],[`max-[900px]:px-[${r.md}]`,"max-[900px]:px-6"],[`max-[800px]:px-[${r.md}]`,"max-[800px]:px-6"],[`max-[720px]:px-[${r.sm}]`,"max-[720px]:px-5"],[`max-[800px]:px-[${r.sm}]`,"max-[800px]:px-5"],[`max-[640px]:px-[${r.sm}]`,"max-[640px]:px-5"],[`min-[800px]:px-[${x}]`,"min-[800px]:px-10"],[`max-[720px]:px-[min(24px,${x})]`,"max-[720px]:px-6"],[`max-[800px]:-mx-[min(20px,${x})]`,"max-[800px]:-mx-5"],[`max-[720px]:-mx-[min(20px,${x})]`,"max-[720px]:-mx-5"],[`-mx-[${x}]`,"-mx-10"],[C,"px-10"]];function M(t){return S.reduce((e,[a,R])=>e.split(a).join(R),t)}const W="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",G="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]";function $(t){return typeof t!="number"||!Number.isFinite(t)?n.default:Math.round(Math.min(Math.max(t,n.min),n.max))}function v(t){const e=$(t);return e===n.default?{}:{[c]:`${e}px`}}function d(t=0){return`calc(${o}/2 - ${x}*2 - ${t}px)`}function g(t=0){return`max-w-[${d(t).replace(/ /g,"_")}]`}const f=o,U=`max-w-[${f}]`,N=`max-w-[min(var(--sf-page-cap,${p.default}px),${p.default}px)]`,E="--sf-hero-cap",H=`var(${E},none)`,B=`max-w-[${H}]`,s="--sf-hero-bleed-m",u="--sf-hero-bleed-w",b=`var(${s},calc(50% - 50vw))`,V=`var(${u},100vw)`,y=`mx-[var(${s},calc(50%_-_50vw))]`,k=`w-[var(${u},100vw)]`,I="--sf-hero-chrome-x",h="--sf-hero-chrome-cap";function K(t){return t===!0?{[E]:f,[s]:"auto",[u]:"100%",[I]:"24px",[h]:"none"}:{}}const i=`calc(${o} - ${x}*2)`,z=`max-w-[${i.replace(/ /g,"_")}]`,F=T;function j(t){return t!==!1?null:m(l)}const O="--sf-chrome-cap",l=`var(${O},${i})`,q="data-page-width";function J(t){return t==="full"?"full":null}function Q(t){return t==="full"?null:m(t==="content"?i:l)}function X(t){if(t==="full")return"full";if(t==="content")return"content"}export{l as CHROME_CAP_READ,O as CHROME_CAP_VAR,i as CHROME_WIDTH_CAP,z as CHROME_WIDTH_CAP_CLASS,G as EDITORIAL_COLUMN,H as HERO_BACKGROUND_CAP,B as HERO_BACKGROUND_CAP_CLASS,E as HERO_BACKGROUND_VAR,b as HERO_BLEED_MARGIN,y as HERO_BLEED_MARGIN_CLASS,s as HERO_BLEED_MARGIN_VAR,V as HERO_BLEED_WIDTH,k as HERO_BLEED_WIDTH_CLASS,u as HERO_BLEED_WIDTH_VAR,f as HERO_CAP,U as HERO_CAP_CLASS,h as HERO_CHROME_CAP_VAR,I as HERO_CHROME_INSET_VAR,p as PAGE_WIDTH,q as PAGE_WIDTH_ATTR,F as PRE_CHROME_WIDTH_CAP_CLASS,N as PRE_HERO_CAP_CLASS,L as PRE_SITE_GUTTER_CLASSES,w as PRE_SITE_WIDTH_CAP_CLASS,W as SITE_COLUMN,n as SITE_GUTTER,x as SITE_GUTTER_CAP,C as SITE_GUTTER_CLASS,r as SITE_GUTTER_NARROW,S as SITE_GUTTER_SUBSTITUTIONS,c as SITE_GUTTER_VAR,o as SITE_WIDTH_CAP,T as SITE_WIDTH_CAP_CLASS,_ as SITE_WIDTH_VAR,M as asMainGutters,m as centredCap,Q as chromeWidthStyle,K as heroBackgroundTokens,$ as normalizeSiteGutter,A as normalizeSiteWidth,J as pageWidthMarker,D as pageWidthStyle,X as resolveChromeWidth,v as siteGutterTokens,d as siteHalfColumnCap,g as siteHalfColumnCapClass,j as siteWidthCapStyle,P as siteWidthTokens};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PAGE_WIDTH as
|
|
1
|
+
import{PAGE_WIDTH as p}from"./page-width.js";const b=["contained","page","full"],T=["full","page"],M={full:"Full width",page:"Content width"},h="inherit",k=t=>typeof t=="string"&&b.includes(t),i=t=>t===h;function c(t,n){const e=typeof t.pageWidth=="number"?t.pageWidth:p.default;return i(t.widthMode)?{mode:"full",pageWidth:e,inherited:!0}:t.widthMode==="contained"?{mode:"page",pageWidth:e,inherited:!1}:k(t.widthMode)?{mode:t.widthMode,pageWidth:e,inherited:!1}:t.contained===!0?{mode:"page",pageWidth:e,inherited:!1}:typeof t.fullWidth=="boolean"?{mode:t.fullWidth?"full":"page",pageWidth:e,inherited:!1}:t.contained===!1?{mode:"full",pageWidth:e,inherited:!1}:{mode:n,pageWidth:e,inherited:n==="full"}}function C(t){return c(t,"page").mode==="full"}const l="site",s={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",Split:"both",Breadcrumb:"both",Collections:"both",Events:"both",BrandStrip:"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 m(t){return Object.prototype.hasOwnProperty.call(s,t)}const u=t=>t==="full"||t==="content",W=t=>typeof t=="number"&&Number.isFinite(t)&&t>0,g=({widthMode:t,fullWidth:n,pageWidth:e})=>({widthMode:t,fullWidth:n,pageWidth:e});function x(t,n){const e={background:null,content:null,contentMax:null};switch(t){case"hero":return i(n.widthMode)||n.widthMode!=="full"?e:{...e,background:"full"};case"scrollOver":return n.fullWidth===!1?e:{...e,content:"full"};case"background":return c(n,"full").mode==="full"?e:{...e,background:"content"};case"both":return c(n,"full").mode==="full"?{...e,content:"full"}:{...e,background:"content"};case"contained":return c(n,"page").mode==="full"?{...e,content:"full"}:{...e,background:"content"};case"contentColumn":return c(g(n),"page").mode==="full"?{...e,content:"full"}:e;case"contentFull":return c(g(n),"full").mode==="full"?{...e,content:"full"}:e;case"productGrid":{const o=c(n,"full");return o.mode==="full"?{...e,content:"full"}:{...e,content:"content",contentMax:o.pageWidth}}case"capped":return{...e,background:"content"}}}function y(t,n){if(!m(t))return{background:null,content:null,contentMax:null};const e=s[t],o=n,r=x(e,o),d=o.backgroundWidth===l?null:u(o.backgroundWidth)?o.backgroundWidth:r.background;return o.contentWidth===l?{background:d,content:null,contentMax:null}:u(o.contentWidth)?{background:d,content:o.contentWidth,contentMax:o.contentWidth==="content"&&W(o.contentMax)?o.contentMax:null}:{background:d,content:r.content,contentMax:r.contentMax}}const f="siteWidths";function a(t){return u(t)?t:null}function F(t,n){return{[f]:{background:a(t),content:a(n)}}}function w(t){const e=t.puck?.metadata?.[f];return{background:a(e?.background),content:a(e?.content)}}export{l as FOLLOW_SITE,T as SECTION_WIDTH_CHOICES,s as SECTION_WIDTH_FAMILY,f as SITE_WIDTHS_KEY,M as WIDTH_CHOICE_LABEL,h as WIDTH_INHERIT,b as WIDTH_MODES,i as isInheritValue,a as normalizeSiteBackground,y as resolveSectionWidth,c as resolveWidth,m as sectionHasWidthRows,C as sectionRunsFullWidth,F as siteWidthsMetadata,w as siteWidthsOf};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{resolveSectionWidth as p}from"./section-width.js";const a=new Set(["Flex","Grid"]);function l(t,e){return t&&!e}const y=t=>Array.isArray(t)&&t.length>0&&typeof t[0]=="object"&&t[0]!==null&&"type"in t[0];function S(t,e){if(!Array.isArray(t)||typeof e!="string")return;const o=(c,r)=>{for(const s of c){const n=s?.props??{};if(n.id===e)return r;const i=String(s?.type??""),d=a.has(i)&&l(p(i,n).content!=="full",r);for(const f of Object.values(n)){if(!y(f))continue;const u=o(f,r||d);if(u!==void 0)return u}}};return o(t,!1)}export{l as drawsSiteGutter,S as isInsideSiteGutter};
|
|
@@ -148,6 +148,7 @@ export declare const WEB_BUILDER_WORDS: {
|
|
|
148
148
|
readonly "Auto-slide": "Auto-slide";
|
|
149
149
|
readonly "Avg rating": "Avg rating";
|
|
150
150
|
readonly Background: "Background";
|
|
151
|
+
readonly "Background color": "Background color";
|
|
151
152
|
readonly "Background image": "Background image";
|
|
152
153
|
readonly "Background images": "Background images";
|
|
153
154
|
readonly Badge: "Badge";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const e={"$ efficient …":"$ efficient …","0 min":"0 min","0 min read":"0 min read","01 / Section":"01 / Section","100s":"100s","1st rendering":"1st rendering","2nd rendering":"2nd rendering","30-day returns":"30-day returns","3rd rendering":"3rd rendering","4th rendering":"4th rendering","5th rendering":"5th rendering","A 'Show us yours.' headline with a photo-submission form.":"A 'Show us yours.' headline with a photo-submission form.","A big headline beside a stack of call-to-action buttons.":"A big headline beside a stack of call-to-action buttons.","A bold brand statement beside a full-height image, with a stat strip.":"A bold brand statement beside a full-height image, with a stat strip.","A call-to-action button.":"A call-to-action button.","A card's opening picture — a card pinned to a finish keeps its own.":"A card's opening picture — a card pinned to a finish keeps its own.","A centered 'ready to order?' headline with the checkout button.":"A centered 'ready to order?' headline with the checkout button.","A change waiting to go live could not be saved.":"A change waiting to go live could not be saved.","A chat bubble on every page":"A chat bubble on every page","A corner would need a diagonal ramp, which this overlay does not draw.":"A corner would need a diagonal ramp, which this overlay does not draw.","A detail line":"A detail line","A display order-summary panel — items, totals and a note.":"A display order-summary panel — items, totals and a note.","A document header — headline, metadata and standfirst.":"A document header — headline, metadata and standfirst.","A featured article — big cover image beside a headline and dek.":"A featured article — big cover image beside a headline and dek.","A fitment table — per-size bolt patterns, offsets and load ratings, filterable by diameter.":"A fitment table — per-size bolt patterns, offsets and load ratings, filterable by diameter.","A frequently-asked-questions accordion with a header.":"A frequently-asked-questions accordion with a header.","A full product-listing page: filter rail, sortable card grid and pagination, from the live catalog. Choose which product types it shows.":"A full product-listing page: filter rail, sortable card grid and pagination, from the live catalog. Choose which product types it shows.","A heading over a grid of free-text title-and-blurb cards.":"A heading over a grid of free-text title-and-blurb cards.","A heading over columns of image, title, blurb and specs.":"A heading over columns of image, title, blurb and specs.","A headline beside a stylized product-UI mockup card — spec sheet, fitment, portal, kanban and more.":"A headline beside a stylized product-UI mockup card — spec sheet, fitment, portal, kanban and more.","A horizontal year track of milestones — company history or roadmap.":"A horizontal year track of milestones — company history or roadmap.","A journal issue header with a lead statement and contents.":"A journal issue header with a lead statement and contents.","A line or two of supporting copy.":"A line or two of supporting copy.","A long-form article spread with a pull-quote and cover image.":"A long-form article spread with a pull-quote and cover image.","A marquee cannot run diagonally, so the corners are not answers.":"A marquee cannot run diagonally, so the corners are not answers.","A milestone still to come.":"A milestone still to come.","A newsletter signup beside a list of recent issues.":"A newsletter signup beside a list of recent issues.","A newsletter signup beside your latest blog posts, pulled live.":"A newsletter signup beside your latest blog posts, pulled live.","A numbered section title with optional link.":"A numbered section title with optional link.","A paragraph of body copy.":"A paragraph of body copy.","A payment-methods trust strip with reassurance lines.":"A payment-methods trust strip with reassurance lines.","A picture worth\n*a thousand rows.*":`A picture worth
|
|
2
|
-
*a thousand rows.*`,"A plain editorial text section — eyebrow, heading and body copy.":"A plain editorial text section — eyebrow, heading and body copy.","A product hero — image beside price, bullets and a buy button.":"A product hero — image beside price, bullets and a buy button.","A row of partner or brand logos.":"A row of partner or brand logos.","A scrolling marquee of short phrases, full width.":"A scrolling marquee of short phrases, full width.","A second customer quote — what they loved, in a sentence or two.":"A second customer quote — what they loved, in a sentence or two.","A section heading over a grid of column cards.":"A section heading over a grid of column cards.","A sentence or two of supporting copy.":"A sentence or two of supporting copy.","A short customer quote goes here — replace it with a real testimonial from your customers.":"A short customer quote goes here — replace it with a real testimonial from your customers.","A short customer quote goes here.":"A short customer quote goes here.","A short description of this recurring column.":"A short description of this recurring column.","A short lead paragraph introducing this section — a sentence or two about its theme.":"A short lead paragraph introducing this section — a sentence or two about its theme.","A short line about this card.":"A short line about this card.","A short line about this milestone.":"A short line about this milestone.","A short name so a link can jump straight to this section, like yoursite.com/page#about.":"A short name so a link can jump straight to this section, like yoursite.com/page#about.","A short pull quote.":"A short pull quote.","A short reassurance note under the total.":"A short reassurance note under the total.","A short summary of the article goes here.":"A short summary of the article goes here.","A short summary of the featured article — one or two sentences that draw the reader in.":"A short summary of the featured article — one or two sentences that draw the reader in.","A short summary of the post — one or two sentences.":"A short summary of the post — one or two sentences.","A single heading line.":"A single heading line.","A slim trail showing where the reader is (Home / Journal…).":"A slim trail showing where the reader is (Home / Journal…).","A spec sheet — labeled rows of product specifications.":"A spec sheet — labeled rows of product specifications.","A standalone image, at the width you set.":"A standalone image, at the width you set.","A sticky row of category tabs with counts and links.":"A sticky row of category tabs with counts and links.","A sticky tab bar to switch between documents.":"A sticky tab bar to switch between documents.","A template is a blueprint — it has no website of its own, so there is nothing here to change.":"A template is a blueprint — it has no website of its own, so there is nothing here to change.","A theme-color chip and heading over a grid of short feature labels.":"A theme-color chip and heading over a grid of short feature labels.","A thin horizontal rule between sections.":"A thin horizontal rule between sections.","A thin one-line spec strip — small-caps items spread across the width, as a dark band or a bare hairline row.":"A thin one-line spec strip — small-caps items spread across the width, as a dark band or a bare hairline row.","A third short quote to round out the row.":"A third short quote to round out the row.","A three-up meta strip for the foot of a document.":"A three-up meta strip for the foot of a document.","A titled chart — bars, line or donut — drawn from your own labeled data points.":"A titled chart — bars, line or donut — drawn from your own labeled data points.","A vehicle picker — make, model, year and trim resolve the OEM stock fitment live.":"A vehicle picker — make, model, year and trim resolve the OEM stock fitment live.","A world map of your locations with a legend — designed here, sold worldwide.":"A world map of your locations with a legend — designed here, sold worldwide.","A write-a-review form — submissions wait for your approval before they show.":"A write-a-review form — submissions wait for your approval before they show.","About & brand story":"About & brand story",Accent:"Accent","Accent button":"Accent button","Accent footnote":"Accent footnote","Active tab":"Active tab","Add a *headline* for this post.":"Add a *headline* for this post.","Add a *headline* for this story.":"Add a *headline* for this story.","Add a page":"Add a page","Add a sentence or two introducing this document.":"Add a sentence or two introducing this document.","Add a sentence or two of supporting copy.":"Add a sentence or two of supporting copy.","Add a short heading.":"Add a short heading.","Add a short statement here — a sentence or two is plenty.":"Add a short statement here — a sentence or two is plenty.","Add an office in the inspector":"Add an office in the inspector","Add another question":"Add another question","Add city":"Add city","Add group":"Add group","Add new theme":"Add new theme","Add page":"Add page","Add slide":"Add slide","Add this section's copy here.":"Add this section's copy here.","Add this section's copy here. A blank line starts a new paragraph.":"Add this section's copy here. A blank line starts a new paragraph.","Add your answer here — a sentence or two is plenty.":"Add your answer here — a sentence or two is plenty.","Add your answer here.":"Add your answer here.","Add your answer here. Keep it clear and concise so it stays easy to scan.":"Add your answer here. Keep it clear and concise so it stays easy to scan.","Add your first question":"Add your first question","Add your numbers.":"Add your numbers.",Address:"Address",After:"After",Alignment:"Alignment",All:"All","Alt text":"Alt text","Alternating (zig-zag)":"Alternating (zig-zag)",Amount:"Amount","An editorial aside beside a rail-marked timeline of dated entries.":"An editorial aside beside a rail-marked timeline of dated entries.","An editorial heading and paragraph over a row of theme-color-accented stat cards.":"An editorial heading and paragraph over a row of theme-color-accented stat cards.","An editorial text panel with a stat strip and founders' note.":"An editorial text panel with a stat strip and founders' note.","An empty section. Add whatever you want inside.":"An empty section. Add whatever you want inside.",Anchor:"Anchor","Anchor name":"Anchor name",Animation:"Animation","Another group already uses this heading — pick a different one.":"Another group already uses this heading — pick a different one.",Answer:"Answer","Any color":"Any color",App:"App","App chips":"App chips","App name":"App name",Appearance:"Appearance","Appearance settings belong to a website.":"Appearance settings belong to a website.","Applied to {n} card":"Applied to {n} card","Applied to {n} cards":"Applied to {n} cards","Apply to all cards":"Apply to all cards","Approved customer reviews in a star-rated card grid, pulled live.":"Approved customer reviews in a star-rated card grid, pulled live.",Arrows:"Arrows","Arrows placement":"Arrows placement","Arrows shape":"Arrows shape",Article:"Article","Article *headline* goes here.":"Article *headline* goes here.","Article Text":"Article Text","Article headline":"Article headline","Article title":"Article title","As shot":"As shot","As uploaded":"As uploaded","Aspect ratio":"Aspect ratio","At zero":"At zero",Attribution:"Attribution",Auto:"Auto","Auto contrast":"Auto contrast","Auto-advance slides":"Auto-advance slides","Auto-fills the cover image, headline, dek, date and link from this post each time you open the editor. Those fields are hidden while a post is linked; the remaining fields stay yours to set.":"Auto-fills the cover image, headline, dek, date and link from this post each time you open the editor. Those fields are hidden while a post is linked; the remaining fields stay yours to set.","Auto-slide":"Auto-slide","Avg rating":"Avg rating",Background:"Background","Background image":"Background image","Background images":"Background images",Badge:"Badge",Banner:"Banner","Banner headline":"Banner headline",Bar:"Bar",Bare:"Bare",Bars:"Bars","Bars (comparison / funnel)":"Bars (comparison / funnel)","Bars heading":"Bars heading",Basics:"Basics",Before:"Before","Begin reading":"Begin reading",Below:"Below","Below picture":"Below picture","Big first":"Big first","Big left":"Big left","Big right":"Big right","Big stat":"Big stat","Bigger left":"Bigger left","Bigger right":"Bigger right","Black and white":"Black and white","Black and white logos":"Black and white logos",Block:"Block","Block gap":"Block gap","Block spacing":"Block spacing","Block widths":"Block widths","Blog & journal":"Blog & journal","Blog post":"Blog post","Blog post source":"Blog post source",Body:"Body",Bold:"Bold","Bold word":"Bold word","Booking Form":"Booking Form",Border:"Border","Border bottom":"Border bottom","Border color":"Border color","Border left":"Border left","Border right":"Border right","Border style":"Border style","Border top":"Border top","Border width":"Border width",Borders:"Borders",Bottom:"Bottom","Bottom center":"Bottom center","Bottom left":"Bottom left","Bottom right":"Bottom right",Box:"Box","Box name":"Box name","Brand Strip":"Brand Strip","Brand Text":"Brand Text","Brand name":"Brand name",Breadcrumb:"Breadcrumb",Brick:"Brick","Browser mock":"Browser mock","Browser storefront (hero + tiles)":"Browser storefront (hero + tiles)","Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.":"Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.","Bundle Products":"Bundle Products",Button:"Button","Button Right Text":"Button Right Text","Button color":"Button color","Button label":"Button label","Button link":"Button link","Button text color":"Button text color",Buttons:"Buttons","Buy button":"Buy button","By the *numbers*":"By the *numbers*","By the numbers":"By the numbers","Call-to-Action Heading":"Call-to-Action Heading",Cancel:"Cancel",Caption:"Caption",Card:"Card","Card body":"Card body","Card button":"Card button","Card header strip":"Card header strip","Card height":"Card height","Card image":"Card image","Card layout":"Card layout","Card link":"Card link","Card number":"Card number","Card outline":"Card outline","Card shadow":"Card shadow","Card subtitle":"Card subtitle","Card title":"Card title","Card title one":"Card title one","Card title three":"Card title three","Card title two":"Card title two","Card type":"Card type",Cards:"Cards",Cart:"Cart","Catalog Filter Bar":"Catalog Filter Bar",Category:"Category","Category Bar":"Category Bar","Category bar":"Category bar","Cell width":"Cell width",Center:"Center","Changed on every page":"Changed on every page","Changes not live yet":"Changes not live yet",Chart:"Chart","Chart style":"Chart style","Chat with us":"Chat with us","Checkout & ordering":"Checkout & ordering","Chip label":"Chip label","Choose a page":"Choose a page","Choose a post":"Choose a post","Choose a product":"Choose a product","Choose a section":"Choose a section","Cities in this group":"Cities in this group",City:"City","City strip":"City strip","Claims bars":"Claims bars","Claims panel (rows + defect bars)":"Claims panel (rows + defect bars)","Clear change":"Clear change","Clear change: {label}":"Clear change: {label}","Clear colors":"Clear colors","Clear formatting":"Clear formatting","Clear override":"Clear override","Clear override: {label}":"Clear override: {label}","Clear this site’s colors?":"Clear this site’s colors?","Clear {what}":"Clear {what}","Clear {what}: {label}":"Clear {what}: {label}","Click to play":"Click to play",Collections:"Collections",Color:"Color","Column *title.*":"Column *title.*","Column 1 cards":"Column 1 cards","Column 1 title":"Column 1 title","Column 2 cards":"Column 2 cards","Column 2 title":"Column 2 title","Column 3 cards":"Column 3 cards","Column 3 title":"Column 3 title","Column 4 cards":"Column 4 cards","Column 4 title":"Column 4 title","Column {n}":"Column {n}",Columns:"Columns","Columns on phone":"Columns on phone","Contact / Locations":"Contact / Locations","Contact Form":"Contact Form","Contact, FAQ & forms":"Contact, FAQ & forms",Contain:"Contain",Contained:"Contained",Content:"Content","Content cannot be wider than the background.":"Content cannot be wider than the background.","Content position":"Content position","Content width":"Content width",Contents:"Contents","Contents heading":"Contents heading","Contents label":"Contents label",Coordinates:"Coordinates","Coordinates from OpenStreetMap":"Coordinates from OpenStreetMap","Copy above image":"Copy above image","Copy over image":"Copy over image","Copying…":"Copying…",Corners:"Corners","Couldn’t add the page — please retry.":"Couldn’t add the page — please retry.","Couldn’t delete the page — please retry.":"Couldn’t delete the page — please retry.","Couldn’t duplicate the section — please retry":"Couldn’t duplicate the section — please retry","Couldn’t load pages":"Couldn’t load pages","Couldn’t open this section.":"Couldn’t open this section.","Couldn’t reach {place}.":"Couldn’t reach {place}.",Count:"Count",Countdown:"Countdown",Country:"Country","Country Switch":"Country Switch",Cover:"Cover","Cover image":"Cover image","Cross ✕":"Cross ✕",Crumbs:"Crumbs","Current page":"Current page","Custom HTML":"Custom HTML","Custom URL":"Custom URL","Custom color":"Custom color","Customer Photo Grid":"Customer Photo Grid","Customer name":"Customer name","Customer photos in a card grid with a click-to-open lightbox.":"Customer photos in a card grid with a click-to-open lightbox.","Customer quotes in a grid — the quote, a name and a role.":"Customer quotes in a grid — the quote, a name and a role.",Dark:"Dark","Dark band":"Dark band",Darken:"Darken","Darken style":"Darken style",Dashed:"Dashed","Data points":"Data points",Date:"Date",Dealers:"Dealers","Dealers are not available on this website":"Dealers are not available on this website","Deck / standfirst":"Deck / standfirst",Default:"Default","Defect rate by product":"Defect rate by product",Dek:"Dek","Delete city":"Delete city","Delete group ({n} cities)":"Delete group ({n} cities)","Delete group ({n} city)":"Delete group ({n} city)","Delete {label} group ({n} cities)":"Delete {label} group ({n} cities)","Delete {label} group ({n} city)":"Delete {label} group ({n} city)","Delete {name}":"Delete {name}","Delete “{name}”":"Delete “{name}”","Deleted “{name}”":"Deleted “{name}”",Delivery:"Delivery","Delivery Options":"Delivery Options","Delivery tiers as cards — name, window and price, one highlighted.":"Delivery tiers as cards — name, window and price, one highlighted.","Describe this section in a sentence or two.":"Describe this section in a sentence or two.","Describe this step in a sentence or two.":"Describe this step in a sentence or two.","Describe what happened, in a sentence or two.":"Describe what happened, in a sentence or two.",Design:"Design",Detail:"Detail","Detail line":"Detail line",Direction:"Direction","Directions link":"Directions link","Dismiss link":"Dismiss link",Display:"Display",Distance:"Distance","Distance from top":"Distance from top",Divider:"Divider","Document Detail Cards":"Document Detail Cards","Document Header":"Document Header","Document Tabs":"Document Tabs","Document Text":"Document Text","Document body":"Document body","Document masthead":"Document masthead","Document tabs":"Document tabs",Done:"Done","Done {name}":"Done {name}","Donut (split of a whole)":"Donut (split of a whole)","Dot ●":"Dot ●",Dots:"Dots",Dotted:"Dotted",Down:"Down","Drop in your own sanitized HTML.":"Drop in your own sanitized HTML.","Duplicate section":"Duplicate section","Duplicate to another page":"Duplicate to another page","Duplicate to page":"Duplicate to page","Duplicated to “{name}”":"Duplicated to “{name}”",Dynamic:"Dynamic","Dynamic Pages":"Dynamic Pages","EU Tyre Label":"EU Tyre Label","Each block":"Each block","Each side":"Each side","Each website created from this template sets its own appearance afterwards.":"Each website created from this template sets its own appearance afterwards.","Each website created from this template sets its own header afterwards.":"Each website created from this template sets its own header afterwards.","Each website created from this template sets its own live chat afterwards.":"Each website created from this template sets its own live chat afterwards.","Each website created from this template sets its own social link afterwards.":"Each website created from this template sets its own social link afterwards.","Each website created from this template sets its own {what} afterwards.":"Each website created from this template sets its own {what} afterwards.","Easy to read":"Easy to read",Edit:"Edit","Edit {name}":"Edit {name}","Edit “{name}” in {place}":"Edit “{name}” in {place}","Editing {name} changes it everywhere.":"Editing {name} changes it everywhere.","Editor only — not shown live":"Editor only — not shown live",Editorial:"Editorial","Editorial Text":"Editorial Text",Email:"Email","Email Form":"Email Form","Email signup":"Email signup",Empty:"Empty",End:"End",Ends:"Ends","Enter coordinates manually":"Enter coordinates manually",Entrance:"Entrance",Entries:"Entries","Entries count":"Entries count",Equal:"Equal",Essay:"Essay",Even:"Even","Every page":"Every page","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}.":"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}.","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.":"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.","Everything else on this block comes from the linked post. Unlink it to edit by hand.":"Everything else on this block comes from the linked post. Unlink it to edit by hand.","Everything is live":"Everything is live",Excerpt:"Excerpt",Eyebrow:"Eyebrow","Eyebrow style":"Eyebrow style",Facebook:"Facebook",Fade:"Fade",Feature:"Feature","Feature Banner":"Feature Banner","Feature Rows":"Feature Rows","Feature label":"Feature label","Feature label five":"Feature label five","Feature label four":"Feature label four","Feature label one":"Feature label one","Feature label six":"Feature label six","Feature label three":"Feature label three","Feature label two":"Feature label two","Feature story":"Feature story",Featured:"Featured","Featured *image*":"Featured *image*","Featured cover":"Featured cover",Features:"Features",Feedback:"Feedback","Field label":"Field label","Field notes":"Field notes",Fill:"Fill","Fill color":"Fill color",Filled:"Filled","Filters the collection grids below it — a sticky row of Pills (the default), or Columns, one per filter you switch on.":"Filters the collection grids below it — a sticky row of Pills (the default), or Columns, one per filter you switch on.","Find coordinates":"Find coordinates","Finding…":"Finding…","Fine print":"Fine print","Finish swatches":"Finish swatches","Finish · Size · ×1":"Finish · Size · ×1","First item":"First item","First section":"First section","Fit content":"Fit content","Fitment Form":"Fitment Form","Fitment Table":"Fitment Table",Fixed:"Fixed","Fixed size — the site’s Text setting doesn’t resize this.":"Fixed size — the site’s Text setting doesn’t resize this.","Follow the page":"Follow the page","Follow the slideshow":"Follow the slideshow","Follows Desktop":"Follows Desktop","Follows the section's Corners until you set a number here.":"Follows the section's Corners until you set a number here.","Follows the site":"Follows the site","Follows the style":"Follows the style","Footer Box":"Footer Box","Footer · on every page":"Footer · on every page","Footer · on every page · old style":"Footer · on every page · old style",Footnote:"Footnote",Form:"Form","Form eyebrow":"Form eyebrow","Form heading":"Form heading","Form intro":"Form intro","Formatting — click a row first":"Formatting — click a row first","Formatting — row {n}":"Formatting — row {n}",Founders:"Founders","Founders heading":"Founders heading","Founders statement":"Founders statement","Four across":"Four across","Four stagger":"Four stagger",Frequency:"Frequency","Frequently *asked.*":"Frequently *asked.*","From the bottom":"From the bottom",Full:"Full","Full width":"Full width","Full-bleed intro image the next section scrolls over.":"Full-bleed intro image the next section scrolls over.","Full-screen image or video with a headline.":"Full-screen image or video with a headline.","Full-screen opener with rotating slides.":"Full-screen opener with rotating slides.",Gap:"Gap","Gap only":"Gap only","Give the new template page a name. It starts blank — add sections once it opens.":"Give the new template page a name. It starts blank — add sections once it opens.","Gives the other card this card's Corners.":"Gives the other card this card's Corners.","Gives the other {n} cards this card's Corners.":"Gives the other {n} cards this card's Corners.",Good:"Good","Greeting message":"Greeting message",Grid:"Grid",Group:"Group","Group heading":"Group heading","Group name":"Group name",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",HQ:"HQ",HTML:"HTML",Hairline:"Hairline","Hairline borders":"Hairline borders","Hand-picked products in a tidy grid.":"Hand-picked products in a tidy grid.","Hard to read":"Hard to read",Header:"Header","Header and footer not live yet":"Header and footer not live yet","Header badge":"Header badge","Header settings belong to a website.":"Header settings belong to a website.","Header · on every page":"Header · on every page","Header · on every page · old style":"Header · on every page · old style",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading font size":"Heading font size",Headings:"Headings",Headquarters:"Headquarters",Height:"Height",Hero:"Hero","Hero & intros":"Hero & intros","Hero Slide":"Hero Slide","Hero Slideshow":"Hero Slideshow","Hero button":"Hero button","Hero line":"Hero line","Hidden on the page":"Hidden on the page","Hide manual coordinates":"Hide manual coordinates","Hide on phone":"Hide on phone","Hide {label} on the slide":"Hide {label} on the slide",Highlight:"Highlight","Highlight key numbers — years, designs.":"Highlight key numbers — years, designs.","Highlight line":"Highlight line",Hint:"Hint","Hold video":"Hold video",Home:"Home","Hours, minutes and seconds to a set date and time, then one line.":"Hours, minutes and seconds to a set date and time, then one line.","Hover effect":"Hover effect",Icon:"Icon","Icon after text":"Icon after text","Icon before text":"Icon before text","Icon only":"Icon only","Icon position":"Icon position","Illustrative example":"Illustrative example",Image:"Image","Image & Text Columns":"Image & Text Columns","Image & Text Split":"Image & Text Split","Image 2":"Image 2","Image background":"Image background","Image caption":"Image caption","Image column":"Image column","Image date":"Image date","Image fit":"Image fit","Image focus":"Image focus","Image label":"Image label","Image left":"Image left","Image meta":"Image meta","Image right":"Image right","Image side":"Image side","Image stage":"Image stage","Image tint":"Image tint","Image width":"Image width","In its own box":"In its own box","In progress (accent)":"In progress (accent)","In the product":"In the product","In this issue":"In this issue","In this section":"In this section","In your own time zone. Every visitor counts down to the same moment.":"In your own time zone. Every visitor counts down to the same moment.",Instagram:"Instagram",Integrations:"Integrations","Integrations Grid":"Integrations Grid",Interview:"Interview",Intro:"Intro","Introduce your company in a paragraph or two.":"Introduce your company in a paragraph or two.","Issue Header":"Issue Header","Issue lines":"Issue lines","Issue meta lines":"Issue meta lines",Item:"Item","Item alignment":"Item alignment",Items:"Items","Items from":"Items from","Its own":"Its own","Its size follows Site styles ▸ {follows} — {px}px right now.":"Its size follows Site styles ▸ {follows} — {px}px right now.","Its size follows Site styles ▸ {follows}.":"Its size follows Site styles ▸ {follows}.","Job card label":"Job card label",Join:"Join","Jumps to a section on that page.":"Jumps to a section on that page.",Justify:"Justify","Kanban board (job columns)":"Kanban board (job columns)","Kanban columns":"Kanban columns","Keep this section's own built-in size":"Keep this section's own built-in size","Key *features.*":"Key *features.*","Key Features":"Key Features",LINE:"LINE",LIVE:"LIVE",Label:"Label","Label color":"Label color",Labels:"Labels",Ladder:"Ladder",Large:"Large","Large text only":"Large text only","Latest Posts":"Latest Posts","Latest journal posts in a three-card row.":"Latest journal posts in a three-card row.",Latitude:"Latitude",Layout:"Layout","Layout & structure":"Layout & structure","Layout, structure & embeds":"Layout, structure & embeds",Lead:"Lead","Lead Text":"Lead Text","Learn more":"Learn more","Leave a blank line between paragraphs to start a new one.":"Leave a blank line between paragraphs to start a new one.","Leave a field blank to use the built-in wording.":"Leave a field blank to use the built-in wording.",Left:"Left","Left and right":"Left and right","Left of the copy":"Left of the copy","Legal & documents":"Legal & documents","Legal Line":"Legal Line",Length:"Length",Level:"Level",Lift:"Lift",Lifted:"Lifted",Light:"Light",Lightbox:"Lightbox","Limited release":"Limited release",Line:"Line","Line (trend)":"Line (trend)",Link:"Link","Linked to a blog post. This editor has no blog to pick another from; choose “None (manual)” to author the section yourself.":"Linked to a blog post. This editor has no blog to pick another from; choose “None (manual)” to author the section yourself.","Linked to “{name}”":"Linked to “{name}”",LinkedIn:"LinkedIn",Links:"Links","Links to":"Links to",List:"List","Live chat":"Live chat","Live chat settings belong to a website.":"Live chat settings belong to a website.","Loading…":"Loading…","Location name":"Location name",Locations:"Locations","Locations Map":"Locations Map",Logo:"Logo","Logo alt text":"Logo alt text","Logo color":"Logo color","Logo description":"Logo description","Logo five":"Logo five","Logo four":"Logo four","Logo height":"Logo height","Logo image":"Logo image","Logo one":"Logo one","Logo three":"Logo three","Logo two":"Logo two",Logos:"Logos","Long read":"Long read","Long-form document body with an 'On this page' contents list.":"Long-form document body with an 'On this page' contents list.",Longitude:"Longitude",Look:"Look",Main:"Main","Main Pages":"Main Pages","Main color":"Main color","Main heading":"Main heading","Main heading\n*Highlight line*":`Main heading
|
|
2
|
+
*a thousand rows.*`,"A plain editorial text section — eyebrow, heading and body copy.":"A plain editorial text section — eyebrow, heading and body copy.","A product hero — image beside price, bullets and a buy button.":"A product hero — image beside price, bullets and a buy button.","A row of partner or brand logos.":"A row of partner or brand logos.","A scrolling marquee of short phrases, full width.":"A scrolling marquee of short phrases, full width.","A second customer quote — what they loved, in a sentence or two.":"A second customer quote — what they loved, in a sentence or two.","A section heading over a grid of column cards.":"A section heading over a grid of column cards.","A sentence or two of supporting copy.":"A sentence or two of supporting copy.","A short customer quote goes here — replace it with a real testimonial from your customers.":"A short customer quote goes here — replace it with a real testimonial from your customers.","A short customer quote goes here.":"A short customer quote goes here.","A short description of this recurring column.":"A short description of this recurring column.","A short lead paragraph introducing this section — a sentence or two about its theme.":"A short lead paragraph introducing this section — a sentence or two about its theme.","A short line about this card.":"A short line about this card.","A short line about this milestone.":"A short line about this milestone.","A short name so a link can jump straight to this section, like yoursite.com/page#about.":"A short name so a link can jump straight to this section, like yoursite.com/page#about.","A short pull quote.":"A short pull quote.","A short reassurance note under the total.":"A short reassurance note under the total.","A short summary of the article goes here.":"A short summary of the article goes here.","A short summary of the featured article — one or two sentences that draw the reader in.":"A short summary of the featured article — one or two sentences that draw the reader in.","A short summary of the post — one or two sentences.":"A short summary of the post — one or two sentences.","A single heading line.":"A single heading line.","A slim trail showing where the reader is (Home / Journal…).":"A slim trail showing where the reader is (Home / Journal…).","A spec sheet — labeled rows of product specifications.":"A spec sheet — labeled rows of product specifications.","A standalone image, at the width you set.":"A standalone image, at the width you set.","A sticky row of category tabs with counts and links.":"A sticky row of category tabs with counts and links.","A sticky tab bar to switch between documents.":"A sticky tab bar to switch between documents.","A template is a blueprint — it has no website of its own, so there is nothing here to change.":"A template is a blueprint — it has no website of its own, so there is nothing here to change.","A theme-color chip and heading over a grid of short feature labels.":"A theme-color chip and heading over a grid of short feature labels.","A thin horizontal rule between sections.":"A thin horizontal rule between sections.","A thin one-line spec strip — small-caps items spread across the width, as a dark band or a bare hairline row.":"A thin one-line spec strip — small-caps items spread across the width, as a dark band or a bare hairline row.","A third short quote to round out the row.":"A third short quote to round out the row.","A three-up meta strip for the foot of a document.":"A three-up meta strip for the foot of a document.","A titled chart — bars, line or donut — drawn from your own labeled data points.":"A titled chart — bars, line or donut — drawn from your own labeled data points.","A vehicle picker — make, model, year and trim resolve the OEM stock fitment live.":"A vehicle picker — make, model, year and trim resolve the OEM stock fitment live.","A world map of your locations with a legend — designed here, sold worldwide.":"A world map of your locations with a legend — designed here, sold worldwide.","A write-a-review form — submissions wait for your approval before they show.":"A write-a-review form — submissions wait for your approval before they show.","About & brand story":"About & brand story",Accent:"Accent","Accent button":"Accent button","Accent footnote":"Accent footnote","Active tab":"Active tab","Add a *headline* for this post.":"Add a *headline* for this post.","Add a *headline* for this story.":"Add a *headline* for this story.","Add a page":"Add a page","Add a sentence or two introducing this document.":"Add a sentence or two introducing this document.","Add a sentence or two of supporting copy.":"Add a sentence or two of supporting copy.","Add a short heading.":"Add a short heading.","Add a short statement here — a sentence or two is plenty.":"Add a short statement here — a sentence or two is plenty.","Add an office in the inspector":"Add an office in the inspector","Add another question":"Add another question","Add city":"Add city","Add group":"Add group","Add new theme":"Add new theme","Add page":"Add page","Add slide":"Add slide","Add this section's copy here.":"Add this section's copy here.","Add this section's copy here. A blank line starts a new paragraph.":"Add this section's copy here. A blank line starts a new paragraph.","Add your answer here — a sentence or two is plenty.":"Add your answer here — a sentence or two is plenty.","Add your answer here.":"Add your answer here.","Add your answer here. Keep it clear and concise so it stays easy to scan.":"Add your answer here. Keep it clear and concise so it stays easy to scan.","Add your first question":"Add your first question","Add your numbers.":"Add your numbers.",Address:"Address",After:"After",Alignment:"Alignment",All:"All","Alt text":"Alt text","Alternating (zig-zag)":"Alternating (zig-zag)",Amount:"Amount","An editorial aside beside a rail-marked timeline of dated entries.":"An editorial aside beside a rail-marked timeline of dated entries.","An editorial heading and paragraph over a row of theme-color-accented stat cards.":"An editorial heading and paragraph over a row of theme-color-accented stat cards.","An editorial text panel with a stat strip and founders' note.":"An editorial text panel with a stat strip and founders' note.","An empty section. Add whatever you want inside.":"An empty section. Add whatever you want inside.",Anchor:"Anchor","Anchor name":"Anchor name",Animation:"Animation","Another group already uses this heading — pick a different one.":"Another group already uses this heading — pick a different one.",Answer:"Answer","Any color":"Any color",App:"App","App chips":"App chips","App name":"App name",Appearance:"Appearance","Appearance settings belong to a website.":"Appearance settings belong to a website.","Applied to {n} card":"Applied to {n} card","Applied to {n} cards":"Applied to {n} cards","Apply to all cards":"Apply to all cards","Approved customer reviews in a star-rated card grid, pulled live.":"Approved customer reviews in a star-rated card grid, pulled live.",Arrows:"Arrows","Arrows placement":"Arrows placement","Arrows shape":"Arrows shape",Article:"Article","Article *headline* goes here.":"Article *headline* goes here.","Article Text":"Article Text","Article headline":"Article headline","Article title":"Article title","As shot":"As shot","As uploaded":"As uploaded","Aspect ratio":"Aspect ratio","At zero":"At zero",Attribution:"Attribution",Auto:"Auto","Auto contrast":"Auto contrast","Auto-advance slides":"Auto-advance slides","Auto-fills the cover image, headline, dek, date and link from this post each time you open the editor. Those fields are hidden while a post is linked; the remaining fields stay yours to set.":"Auto-fills the cover image, headline, dek, date and link from this post each time you open the editor. Those fields are hidden while a post is linked; the remaining fields stay yours to set.","Auto-slide":"Auto-slide","Avg rating":"Avg rating",Background:"Background","Background color":"Background color","Background image":"Background image","Background images":"Background images",Badge:"Badge",Banner:"Banner","Banner headline":"Banner headline",Bar:"Bar",Bare:"Bare",Bars:"Bars","Bars (comparison / funnel)":"Bars (comparison / funnel)","Bars heading":"Bars heading",Basics:"Basics",Before:"Before","Begin reading":"Begin reading",Below:"Below","Below picture":"Below picture","Big first":"Big first","Big left":"Big left","Big right":"Big right","Big stat":"Big stat","Bigger left":"Bigger left","Bigger right":"Bigger right","Black and white":"Black and white","Black and white logos":"Black and white logos",Block:"Block","Block gap":"Block gap","Block spacing":"Block spacing","Block widths":"Block widths","Blog & journal":"Blog & journal","Blog post":"Blog post","Blog post source":"Blog post source",Body:"Body",Bold:"Bold","Bold word":"Bold word","Booking Form":"Booking Form",Border:"Border","Border bottom":"Border bottom","Border color":"Border color","Border left":"Border left","Border right":"Border right","Border style":"Border style","Border top":"Border top","Border width":"Border width",Borders:"Borders",Bottom:"Bottom","Bottom center":"Bottom center","Bottom left":"Bottom left","Bottom right":"Bottom right",Box:"Box","Box name":"Box name","Brand Strip":"Brand Strip","Brand Text":"Brand Text","Brand name":"Brand name",Breadcrumb:"Breadcrumb",Brick:"Brick","Browser mock":"Browser mock","Browser storefront (hero + tiles)":"Browser storefront (hero + tiles)","Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.":"Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.","Bundle Products":"Bundle Products",Button:"Button","Button Right Text":"Button Right Text","Button color":"Button color","Button label":"Button label","Button link":"Button link","Button text color":"Button text color",Buttons:"Buttons","Buy button":"Buy button","By the *numbers*":"By the *numbers*","By the numbers":"By the numbers","Call-to-Action Heading":"Call-to-Action Heading",Cancel:"Cancel",Caption:"Caption",Card:"Card","Card body":"Card body","Card button":"Card button","Card header strip":"Card header strip","Card height":"Card height","Card image":"Card image","Card layout":"Card layout","Card link":"Card link","Card number":"Card number","Card outline":"Card outline","Card shadow":"Card shadow","Card subtitle":"Card subtitle","Card title":"Card title","Card title one":"Card title one","Card title three":"Card title three","Card title two":"Card title two","Card type":"Card type",Cards:"Cards",Cart:"Cart","Catalog Filter Bar":"Catalog Filter Bar",Category:"Category","Category Bar":"Category Bar","Category bar":"Category bar","Cell width":"Cell width",Center:"Center","Changed on every page":"Changed on every page","Changes not live yet":"Changes not live yet",Chart:"Chart","Chart style":"Chart style","Chat with us":"Chat with us","Checkout & ordering":"Checkout & ordering","Chip label":"Chip label","Choose a page":"Choose a page","Choose a post":"Choose a post","Choose a product":"Choose a product","Choose a section":"Choose a section","Cities in this group":"Cities in this group",City:"City","City strip":"City strip","Claims bars":"Claims bars","Claims panel (rows + defect bars)":"Claims panel (rows + defect bars)","Clear change":"Clear change","Clear change: {label}":"Clear change: {label}","Clear colors":"Clear colors","Clear formatting":"Clear formatting","Clear override":"Clear override","Clear override: {label}":"Clear override: {label}","Clear this site’s colors?":"Clear this site’s colors?","Clear {what}":"Clear {what}","Clear {what}: {label}":"Clear {what}: {label}","Click to play":"Click to play",Collections:"Collections",Color:"Color","Column *title.*":"Column *title.*","Column 1 cards":"Column 1 cards","Column 1 title":"Column 1 title","Column 2 cards":"Column 2 cards","Column 2 title":"Column 2 title","Column 3 cards":"Column 3 cards","Column 3 title":"Column 3 title","Column 4 cards":"Column 4 cards","Column 4 title":"Column 4 title","Column {n}":"Column {n}",Columns:"Columns","Columns on phone":"Columns on phone","Contact / Locations":"Contact / Locations","Contact Form":"Contact Form","Contact, FAQ & forms":"Contact, FAQ & forms",Contain:"Contain",Contained:"Contained",Content:"Content","Content cannot be wider than the background.":"Content cannot be wider than the background.","Content position":"Content position","Content width":"Content width",Contents:"Contents","Contents heading":"Contents heading","Contents label":"Contents label",Coordinates:"Coordinates","Coordinates from OpenStreetMap":"Coordinates from OpenStreetMap","Copy above image":"Copy above image","Copy over image":"Copy over image","Copying…":"Copying…",Corners:"Corners","Couldn’t add the page — please retry.":"Couldn’t add the page — please retry.","Couldn’t delete the page — please retry.":"Couldn’t delete the page — please retry.","Couldn’t duplicate the section — please retry":"Couldn’t duplicate the section — please retry","Couldn’t load pages":"Couldn’t load pages","Couldn’t open this section.":"Couldn’t open this section.","Couldn’t reach {place}.":"Couldn’t reach {place}.",Count:"Count",Countdown:"Countdown",Country:"Country","Country Switch":"Country Switch",Cover:"Cover","Cover image":"Cover image","Cross ✕":"Cross ✕",Crumbs:"Crumbs","Current page":"Current page","Custom HTML":"Custom HTML","Custom URL":"Custom URL","Custom color":"Custom color","Customer Photo Grid":"Customer Photo Grid","Customer name":"Customer name","Customer photos in a card grid with a click-to-open lightbox.":"Customer photos in a card grid with a click-to-open lightbox.","Customer quotes in a grid — the quote, a name and a role.":"Customer quotes in a grid — the quote, a name and a role.",Dark:"Dark","Dark band":"Dark band",Darken:"Darken","Darken style":"Darken style",Dashed:"Dashed","Data points":"Data points",Date:"Date",Dealers:"Dealers","Dealers are not available on this website":"Dealers are not available on this website","Deck / standfirst":"Deck / standfirst",Default:"Default","Defect rate by product":"Defect rate by product",Dek:"Dek","Delete city":"Delete city","Delete group ({n} cities)":"Delete group ({n} cities)","Delete group ({n} city)":"Delete group ({n} city)","Delete {label} group ({n} cities)":"Delete {label} group ({n} cities)","Delete {label} group ({n} city)":"Delete {label} group ({n} city)","Delete {name}":"Delete {name}","Delete “{name}”":"Delete “{name}”","Deleted “{name}”":"Deleted “{name}”",Delivery:"Delivery","Delivery Options":"Delivery Options","Delivery tiers as cards — name, window and price, one highlighted.":"Delivery tiers as cards — name, window and price, one highlighted.","Describe this section in a sentence or two.":"Describe this section in a sentence or two.","Describe this step in a sentence or two.":"Describe this step in a sentence or two.","Describe what happened, in a sentence or two.":"Describe what happened, in a sentence or two.",Design:"Design",Detail:"Detail","Detail line":"Detail line",Direction:"Direction","Directions link":"Directions link","Dismiss link":"Dismiss link",Display:"Display",Distance:"Distance","Distance from top":"Distance from top",Divider:"Divider","Document Detail Cards":"Document Detail Cards","Document Header":"Document Header","Document Tabs":"Document Tabs","Document Text":"Document Text","Document body":"Document body","Document masthead":"Document masthead","Document tabs":"Document tabs",Done:"Done","Done {name}":"Done {name}","Donut (split of a whole)":"Donut (split of a whole)","Dot ●":"Dot ●",Dots:"Dots",Dotted:"Dotted",Down:"Down","Drop in your own sanitized HTML.":"Drop in your own sanitized HTML.","Duplicate section":"Duplicate section","Duplicate to another page":"Duplicate to another page","Duplicate to page":"Duplicate to page","Duplicated to “{name}”":"Duplicated to “{name}”",Dynamic:"Dynamic","Dynamic Pages":"Dynamic Pages","EU Tyre Label":"EU Tyre Label","Each block":"Each block","Each side":"Each side","Each website created from this template sets its own appearance afterwards.":"Each website created from this template sets its own appearance afterwards.","Each website created from this template sets its own header afterwards.":"Each website created from this template sets its own header afterwards.","Each website created from this template sets its own live chat afterwards.":"Each website created from this template sets its own live chat afterwards.","Each website created from this template sets its own social link afterwards.":"Each website created from this template sets its own social link afterwards.","Each website created from this template sets its own {what} afterwards.":"Each website created from this template sets its own {what} afterwards.","Easy to read":"Easy to read",Edit:"Edit","Edit {name}":"Edit {name}","Edit “{name}” in {place}":"Edit “{name}” in {place}","Editing {name} changes it everywhere.":"Editing {name} changes it everywhere.","Editor only — not shown live":"Editor only — not shown live",Editorial:"Editorial","Editorial Text":"Editorial Text",Email:"Email","Email Form":"Email Form","Email signup":"Email signup",Empty:"Empty",End:"End",Ends:"Ends","Enter coordinates manually":"Enter coordinates manually",Entrance:"Entrance",Entries:"Entries","Entries count":"Entries count",Equal:"Equal",Essay:"Essay",Even:"Even","Every page":"Every page","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}.":"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}.","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.":"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.","Everything else on this block comes from the linked post. Unlink it to edit by hand.":"Everything else on this block comes from the linked post. Unlink it to edit by hand.","Everything is live":"Everything is live",Excerpt:"Excerpt",Eyebrow:"Eyebrow","Eyebrow style":"Eyebrow style",Facebook:"Facebook",Fade:"Fade",Feature:"Feature","Feature Banner":"Feature Banner","Feature Rows":"Feature Rows","Feature label":"Feature label","Feature label five":"Feature label five","Feature label four":"Feature label four","Feature label one":"Feature label one","Feature label six":"Feature label six","Feature label three":"Feature label three","Feature label two":"Feature label two","Feature story":"Feature story",Featured:"Featured","Featured *image*":"Featured *image*","Featured cover":"Featured cover",Features:"Features",Feedback:"Feedback","Field label":"Field label","Field notes":"Field notes",Fill:"Fill","Fill color":"Fill color",Filled:"Filled","Filters the collection grids below it — a sticky row of Pills (the default), or Columns, one per filter you switch on.":"Filters the collection grids below it — a sticky row of Pills (the default), or Columns, one per filter you switch on.","Find coordinates":"Find coordinates","Finding…":"Finding…","Fine print":"Fine print","Finish swatches":"Finish swatches","Finish · Size · ×1":"Finish · Size · ×1","First item":"First item","First section":"First section","Fit content":"Fit content","Fitment Form":"Fitment Form","Fitment Table":"Fitment Table",Fixed:"Fixed","Fixed size — the site’s Text setting doesn’t resize this.":"Fixed size — the site’s Text setting doesn’t resize this.","Follow the page":"Follow the page","Follow the slideshow":"Follow the slideshow","Follows Desktop":"Follows Desktop","Follows the section's Corners until you set a number here.":"Follows the section's Corners until you set a number here.","Follows the site":"Follows the site","Follows the style":"Follows the style","Footer Box":"Footer Box","Footer · on every page":"Footer · on every page","Footer · on every page · old style":"Footer · on every page · old style",Footnote:"Footnote",Form:"Form","Form eyebrow":"Form eyebrow","Form heading":"Form heading","Form intro":"Form intro","Formatting — click a row first":"Formatting — click a row first","Formatting — row {n}":"Formatting — row {n}",Founders:"Founders","Founders heading":"Founders heading","Founders statement":"Founders statement","Four across":"Four across","Four stagger":"Four stagger",Frequency:"Frequency","Frequently *asked.*":"Frequently *asked.*","From the bottom":"From the bottom",Full:"Full","Full width":"Full width","Full-bleed intro image the next section scrolls over.":"Full-bleed intro image the next section scrolls over.","Full-screen image or video with a headline.":"Full-screen image or video with a headline.","Full-screen opener with rotating slides.":"Full-screen opener with rotating slides.",Gap:"Gap","Gap only":"Gap only","Give the new template page a name. It starts blank — add sections once it opens.":"Give the new template page a name. It starts blank — add sections once it opens.","Gives the other card this card's Corners.":"Gives the other card this card's Corners.","Gives the other {n} cards this card's Corners.":"Gives the other {n} cards this card's Corners.",Good:"Good","Greeting message":"Greeting message",Grid:"Grid",Group:"Group","Group heading":"Group heading","Group name":"Group name",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",HQ:"HQ",HTML:"HTML",Hairline:"Hairline","Hairline borders":"Hairline borders","Hand-picked products in a tidy grid.":"Hand-picked products in a tidy grid.","Hard to read":"Hard to read",Header:"Header","Header and footer not live yet":"Header and footer not live yet","Header badge":"Header badge","Header settings belong to a website.":"Header settings belong to a website.","Header · on every page":"Header · on every page","Header · on every page · old style":"Header · on every page · old style",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading font size":"Heading font size",Headings:"Headings",Headquarters:"Headquarters",Height:"Height",Hero:"Hero","Hero & intros":"Hero & intros","Hero Slide":"Hero Slide","Hero Slideshow":"Hero Slideshow","Hero button":"Hero button","Hero line":"Hero line","Hidden on the page":"Hidden on the page","Hide manual coordinates":"Hide manual coordinates","Hide on phone":"Hide on phone","Hide {label} on the slide":"Hide {label} on the slide",Highlight:"Highlight","Highlight key numbers — years, designs.":"Highlight key numbers — years, designs.","Highlight line":"Highlight line",Hint:"Hint","Hold video":"Hold video",Home:"Home","Hours, minutes and seconds to a set date and time, then one line.":"Hours, minutes and seconds to a set date and time, then one line.","Hover effect":"Hover effect",Icon:"Icon","Icon after text":"Icon after text","Icon before text":"Icon before text","Icon only":"Icon only","Icon position":"Icon position","Illustrative example":"Illustrative example",Image:"Image","Image & Text Columns":"Image & Text Columns","Image & Text Split":"Image & Text Split","Image 2":"Image 2","Image background":"Image background","Image caption":"Image caption","Image column":"Image column","Image date":"Image date","Image fit":"Image fit","Image focus":"Image focus","Image label":"Image label","Image left":"Image left","Image meta":"Image meta","Image right":"Image right","Image side":"Image side","Image stage":"Image stage","Image tint":"Image tint","Image width":"Image width","In its own box":"In its own box","In progress (accent)":"In progress (accent)","In the product":"In the product","In this issue":"In this issue","In this section":"In this section","In your own time zone. Every visitor counts down to the same moment.":"In your own time zone. Every visitor counts down to the same moment.",Instagram:"Instagram",Integrations:"Integrations","Integrations Grid":"Integrations Grid",Interview:"Interview",Intro:"Intro","Introduce your company in a paragraph or two.":"Introduce your company in a paragraph or two.","Issue Header":"Issue Header","Issue lines":"Issue lines","Issue meta lines":"Issue meta lines",Item:"Item","Item alignment":"Item alignment",Items:"Items","Items from":"Items from","Its own":"Its own","Its size follows Site styles ▸ {follows} — {px}px right now.":"Its size follows Site styles ▸ {follows} — {px}px right now.","Its size follows Site styles ▸ {follows}.":"Its size follows Site styles ▸ {follows}.","Job card label":"Job card label",Join:"Join","Jumps to a section on that page.":"Jumps to a section on that page.",Justify:"Justify","Kanban board (job columns)":"Kanban board (job columns)","Kanban columns":"Kanban columns","Keep this section's own built-in size":"Keep this section's own built-in size","Key *features.*":"Key *features.*","Key Features":"Key Features",LINE:"LINE",LIVE:"LIVE",Label:"Label","Label color":"Label color",Labels:"Labels",Ladder:"Ladder",Large:"Large","Large text only":"Large text only","Latest Posts":"Latest Posts","Latest journal posts in a three-card row.":"Latest journal posts in a three-card row.",Latitude:"Latitude",Layout:"Layout","Layout & structure":"Layout & structure","Layout, structure & embeds":"Layout, structure & embeds",Lead:"Lead","Lead Text":"Lead Text","Learn more":"Learn more","Leave a blank line between paragraphs to start a new one.":"Leave a blank line between paragraphs to start a new one.","Leave a field blank to use the built-in wording.":"Leave a field blank to use the built-in wording.",Left:"Left","Left and right":"Left and right","Left of the copy":"Left of the copy","Legal & documents":"Legal & documents","Legal Line":"Legal Line",Length:"Length",Level:"Level",Lift:"Lift",Lifted:"Lifted",Light:"Light",Lightbox:"Lightbox","Limited release":"Limited release",Line:"Line","Line (trend)":"Line (trend)",Link:"Link","Linked to a blog post. This editor has no blog to pick another from; choose “None (manual)” to author the section yourself.":"Linked to a blog post. This editor has no blog to pick another from; choose “None (manual)” to author the section yourself.","Linked to “{name}”":"Linked to “{name}”",LinkedIn:"LinkedIn",Links:"Links","Links to":"Links to",List:"List","Live chat":"Live chat","Live chat settings belong to a website.":"Live chat settings belong to a website.","Loading…":"Loading…","Location name":"Location name",Locations:"Locations","Locations Map":"Locations Map",Logo:"Logo","Logo alt text":"Logo alt text","Logo color":"Logo color","Logo description":"Logo description","Logo five":"Logo five","Logo four":"Logo four","Logo height":"Logo height","Logo image":"Logo image","Logo one":"Logo one","Logo three":"Logo three","Logo two":"Logo two",Logos:"Logos","Long read":"Long read","Long-form document body with an 'On this page' contents list.":"Long-form document body with an 'On this page' contents list.",Longitude:"Longitude",Look:"Look",Main:"Main","Main Pages":"Main Pages","Main color":"Main color","Main heading":"Main heading","Main heading\n*Highlight line*":`Main heading
|
|
3
3
|
*Highlight line*`,Map:"Map","Map & Theme":"Map & Theme","Map theme":"Map theme","Match / done (green)":"Match / done (green)",Media:"Media",Medium:"Medium",Menu:"Menu",Message:"Message","Meta line":"Meta line",Metadata:"Metadata","Metadata rows":"Metadata rows",Middle:"Middle","Middle meta":"Middle meta",Milestone:"Milestone","Milestone Timeline":"Milestone Timeline","Milestone title.":"Milestone title.",Milestones:"Milestones",Mixed:"Mixed","Mockup Card":"Mockup Card","Mockup card":"Mockup card","Mockup position":"Mockup position",Mono:"Mono","Month DD, YYYY":"Month DD, YYYY",Motion:"Motion","Multi-column container for blocks.":"Multi-column container for blocks.",Muted:"Muted",Name:"Name","Name / alt":"Name / alt",Natural:"Natural","Navigation & wayfinding":"Navigation & wayfinding","Never published":"Never published","New page":"New page","Next slide":"Next slide","No fill":"No fill","No locations yet.":"No locations yet.","No match":"No match","No match (gray ✕)":"No match (gray ✕)","No other pages":"No other pages","No pages match your search":"No pages match your search","No pages yet. Add one with + above.":"No pages yet. Add one with + above.","No place found. Try another postcode.":"No place found. Try another postcode.","No section anchors yet":"No section anchors yet","No style":"No style","No wrap":"No wrap","No. 1":"No. 1",None:"None","None (manual)":"None (manual)",Normal:"Normal","Not changed":"Not changed","Not chosen":"Not chosen","Not saved. Reload the page.":"Not saved. Reload the page.","Not saved. Try again.":"Not saved. Try again.","Not set":"Not set","Not shown on the page":"Not shown on the page",Note:"Note","Note label":"Note label","Note value":"Note value",Nothing:"Nothing",Nudge:"Nudge",Number:"Number","Number style":"Number style",Numbers:"Numbers","N°01, N°02":"N°01, N°02",Off:"Off",Office:"Office",Offices:"Offices","Offset tall":"Offset tall","On a phone":"On a phone","On every blog post.":"On every blog post.","On phones, content always fills the screen.":"On phones, content always fills the screen.","On picture":"On picture","On this page":"On this page",One:"One","One row":"One row","One then four":"One then four","Only the size follows a site style. This section sets its own font, weight and letter case.":"Only the size follows a site style. This section sets its own font, weight and letter case.",Open:"Open","Open first answer":"Open first answer","Open the {name} in a new tab":"Open the {name} in a new tab","Open your saved draft in a new tab. Visitors don't see it.":"Open your saved draft in a new tab. Visitors don't see it.","Opening hours":"Opening hours",Option:"Option","Order Table":"Order Table","Order summary":"Order summary",Outline:"Outline",Outlined:"Outlined",Overlay:"Overlay","Overlay - CartDrawer":"Overlay - CartDrawer","Overlay - ConsentBanner":"Overlay - ConsentBanner","Overlay button":"Overlay button","Overlay button link":"Overlay button link","Overlay color":"Overlay color","Overlay position":"Overlay position",Padding:"Padding","Padding bottom":"Padding bottom","Padding left":"Padding left","Padding right":"Padding right","Padding top":"Padding top",Page:"Page","Page button":"Page button","Page name":"Page name","Page settings":"Page settings",Pages:"Pages","Panel heading":"Panel heading","Panels & cards":"Panels & cards","Panels and cards":"Panels and cards","Part of {name}":"Part of {name}","Paste a link to each profile. A platform left empty shows nothing on the site.":"Paste a link to each profile. A platform left empty shows nothing on the site.","Payment Methods":"Payment Methods","Payment methods":"Payment methods",Phone:"Phone","Photo Submission Form":"Photo Submission Form","Photo behind the words":"Photo behind the words",Photography:"Photography","Photos in a row":"Photos in a row","Pick a color to see how it reads.":"Pick a color to see how it reads.","Pick a post from {place} to auto-fill this section, or keep “None (manual)” to author it yourself below.":"Pick a post from {place} to auto-fill this section, or keep “None (manual)” to author it yourself below.","Pick who to reach, then a form that routes the message.":"Pick who to reach, then a form that routes the message.",Pinterest:"Pinterest",Placement:"Placement",Plain:"Plain","Play video":"Play video",Playback:"Playback","Playback speed":"Playback speed","Plays well with\n*your favourite apps.*":`Plays well with
|
|
4
4
|
*your favourite apps.*`,"Pop up - SubscribePopup":"Pop up - SubscribePopup","Portal card (stock + button + orders)":"Portal card (stock + button + orders)",Position:"Position",Positions:"Positions","Post Card":"Post Card",Prefix:"Prefix",Preview:"Preview","Preview hover state":"Preview hover state","Preview the live site (opens in a new tab)":"Preview the live site (opens in a new tab)","Preview the live site in a new tab":"Preview the live site in a new tab","Preview your saved draft in a new tab":"Preview your saved draft in a new tab","Previous slide":"Previous slide",Price:"Price",Product:"Product","Product Grid":"Product Grid","Product Hero":"Product Hero","Product badge":"Product badge","Product collections in a tidy grid.":"Product collections in a tidy grid.","Product name":"Product name","Product page":"Product page","Product record":"Product record","Product record (spec tiles)":"Product record (spec tiles)","Product tiles":"Product tiles","Promotions & sign-ups":"Promotions & sign-ups",Publish:"Publish",Published:"Published","Pull quote":"Pull quote","Put this page on your site":"Put this page on your site","Put your changes on your site":"Put your changes on your site","Q&A":"Q&A",Question:"Question",Questions:"Questions",Quiet:"Quiet",Quote:"Quote",Quotes:"Quotes",Rating:"Rating","Read out in place of the picture, and shown if it can’t load.":"Read out in place of the picture, and shown if it can’t load.","Read the story":"Read the story","Read time":"Read time","Reads in":"Reads in","Ready-to-Order Banner":"Ready-to-Order Banner","Reassurance lines":"Reassurance lines","Record type":"Record type","Recurring Columns":"Recurring Columns","Reel label":"Reel label","Refresh now":"Refresh now","Region · country":"Region · country","Related Products":"Related Products","Remove section":"Remove section","Repeating full-width rows — eyebrow, title and copy beside a numbered close-up image, alternating sides each row.":"Repeating full-width rows — eyebrow, title and copy beside a numbered close-up image, alternating sides each row.","Reset color":"Reset color","Reset {name} to the preset":"Reset {name} to the preset",Rest:"Rest","Result / order rows":"Result / order rows","Review Form":"Review Form",Reviews:"Reviews",Right:"Right","Right Top Text":"Right Top Text","Right links":"Right links","Right of the copy":"Right of the copy",Rigs:"Rigs","Rigs fitted":"Rigs fitted",Rise:"Rise",Role:"Role","Role · Location":"Role · Location","Role · location":"Role · location","Rotate on hover":"Rotate on hover","Rounds the picture. Left alone it stays square.":"Rounds the picture. Left alone it stays square.","Rounds the picture. The card's own corner is in Site styles.":"Rounds the picture. The card's own corner is in Site styles.",Sans:"Sans","Save as Template":"Save as Template","Save this website as a platform template":"Save this website as a platform template","Save your page changes first":"Save your page changes first",Scale:"Scale",Screen:"Screen","Scroll direction":"Scroll direction","Scroll duration":"Scroll duration","Scroll-Over Text":"Scroll-Over Text","Scrolling Bar":"Scrolling Bar",Search:"Search","Search all pages":"Search all pages","Search all pages…":"Search all pages…",Season:"Season","Second item":"Second item","Second section":"Second section","Second surface":"Second surface",Section:"Section","Section *heading.*":"Section *heading.*","Section *title*":"Section *title*","Section Header":"Section Header","Section above":"Section above","Section band":"Section band","Section below":"Section below","Section header":"Section header","Section heading":"Section heading","Section heading\n*Highlight line*":`Section heading
|
|
5
5
|
*Highlight line*`,"Section heading *here.*":"Section heading *here.*","Section headline\n*Highlight line*":`Section headline
|
|
@@ -8,6 +8,7 @@ export type BlockSlots = Record<string, {
|
|
|
8
8
|
}>;
|
|
9
9
|
export type BlockRender = Pick<Block, "label" | "defaultProps" | "render" | "inline"> & {
|
|
10
10
|
fields?: BlockSlots;
|
|
11
|
+
widthRows?: "two";
|
|
11
12
|
};
|
|
12
13
|
export type BlockFields = Pick<Block, "fields" | "resolveFields" | "resolveData"> & {
|
|
13
14
|
showWhenFacts?: BlockShowWhenFacts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as s}from"react/jsx-runtime";import a from"./SiteGutterFrame.js";const l="mx-auto w-full max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)]",m="max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",x=`${l} ${m}`,n="mx-auto w-full max-w-[1280px] px-[60px]",E="max-[960px]:px-6",R=`${n} ${E}`;function f({contained:o,className:t="",style:r,pad:p,children:e}){return s(a,{contained:o,framedClass:`${x} ${t}`,fillClass:`w-full ${t}`,columnClass:x,style:r,pad:p,children:e})}export{x as FRAME,l as FRAME_BASE,m as FRAME_GUTTER,R as PRE_FRAME,n as PRE_FRAME_BASE,E as PRE_FRAME_GUTTER,f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as r,jsxs as s,Fragment as c}from"react/jsx-runtime";import{Fragment as f}from"react";import{SiteLink as x}from"../lib/site-runtime.js";import{renderChrome as m,renderGold as d}from"./goldPhrases.js";import{say as h}from"../../format/lib/editor-words.js";function
|
|
1
|
+
import{jsx as r,jsxs as s,Fragment as c}from"react/jsx-runtime";import{Fragment as f}from"react";import{SiteLink as x}from"../lib/site-runtime.js";import{renderChrome as m,renderGold as d}from"./goldPhrases.js";import{say as h}from"../../format/lib/editor-words.js";function u({items:o,meta:a,editing:p=!1}){const l=(o??[]).filter(e=>e?.label?.trim()),n=l.length>0?l:p?[{label:h("Breadcrumb")}]:[];return n.length===0&&!a?null:r("nav",{className:"border-b border-line px-[var(--sf-site-gutter,40px)] py-6 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.2em] text-fg-dim max-[720px]:px-[min(20px,var(--sf-site-gutter,40px))] max-[720px]:py-4",children:s("div",{className:"mx-auto flex max-w-[var(--sf-content-cap,none)] items-center gap-4",children:[n.map((e,t)=>{const i=t===n.length-1;return s(f,{children:[t>0&&r("span",{className:"opacity-40",children:"/"}),e.href&&!i?r(x,{href:e.href,className:"hover:text-fg",children:m(e.label)}):r("span",{className:i?"text-fg":void 0,children:m(e.label)})]},t)}),a&&s(c,{children:[r("span",{className:"opacity-40",children:"·"}),r("span",{children:d(a)})]})]})})}export{u as default};
|
|
@@ -14,4 +14,4 @@ export interface ContactLocationsProps {
|
|
|
14
14
|
editing?: boolean;
|
|
15
15
|
nodeId?: string;
|
|
16
16
|
}
|
|
17
|
-
export default function ContactLocations({ sectionNumber, heading, tagline, galleryKicker, galleryHint, locations, apiKey, mapId, mapTheme, imageShape, editing, nodeId,
|
|
17
|
+
export default function ContactLocations({ sectionNumber, heading, tagline, galleryKicker, galleryHint, locations, apiKey, mapId, mapTheme, imageShape, editing, nodeId, }: ContactLocationsProps): import("react").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";import{jsx as t,jsxs as
|
|
1
|
+
"use client";import{jsx as t,jsxs as r,Fragment as W}from"react/jsx-runtime";import{EDITORIAL_COLUMN as ne}from"../../format/lib/content/page-width.js";import{SiteImage as re}from"../lib/site-runtime.js";import{markOverlayPortal as ie}from"../../format/lib/puck/overlay-portal.js";import{useEffect as z,useRef as K,useState as $}from"react";import{stripMarkup as se}from"../../format/lib/markup.js";import ce from"./EditorialSectionHead.js";import le from"./SectionEyebrow.js";import{scrollBehavior as V}from"./useReducedMotion.js";import{renderGold as X,renderHeadline as de}from"./goldPhrases.js";import{CONTACT_LOCATIONS_CARDS_PLACEHOLDER as pe,CONTACT_LOCATIONS_DEFAULTS as P,parseLocationTileShape as ue,splitLegacyRegion as me}from"../../format/lib/content/contact.js";import{galleryCardRatioClass as ge}from"../../format/lib/content/gallery-card-layout.js";import{MAP_PALETTE as fe,mapBackgroundFor as T,mapMarkerColorFor as Y,mapPaletteFor as he,mapStylesFor as J,watchMapTheme as be}from"../../format/lib/map-styles.js";import{hasMapCoords as ve,loadGoogleMaps as xe,watchMapLoad as ye}from"../../format/lib/maps-loader.js";import{resolveMapId as ke,resolveMapsKey as we,useSiteMapId as Ne,useSiteMapsKey as Se}from"../lib/maps-config.js";import{bucketByGroup as Ce,groupColsClass as Z}from"../../format/lib/locations-grid.js";import{encodeLocationPartId as Q,usePreviewLocationPart as Ie}from"./PreviewLocationPartContext.js";import{LocationGroupHeader as Le}from"./LocationGroupHeader.js";import{tk as ee}from"../../format/components/floating-editor/tokens.js";import{phoneHref as Ae}from"../../format/lib/links/phone-href.js";const Me=`
|
|
2
2
|
.studio-map .gmap-canvas img[src*="google"] {
|
|
3
3
|
filter: grayscale(1) brightness(0.55) contrast(0.9);
|
|
4
4
|
opacity: 0.7;
|
|
@@ -70,4 +70,4 @@
|
|
|
70
70
|
.loc-part-pick::after { transition: none; }
|
|
71
71
|
}
|
|
72
72
|
`;function te({value:p}){if(typeof p=="string"){const a=p.split(`
|
|
73
|
-
`);return t(W,{children:a.map((y,s)=>i("span",{children:[y,s<a.length-1?t("br",{}):null]},s))})}return t(W,{children:p})}function Ee(){return t("div",{className:"absolute inset-0 flex items-center justify-center",style:{background:"repeating-linear-gradient(45deg, rgba(201,164,97,.05) 0 1px, transparent 1px 14px), linear-gradient(135deg, var(--site-surface-2), var(--site-surface))"},children:i("svg",{width:"34",height:"34",viewBox:"0 0 24 24",fill:"none",stroke:"var(--fg-dim)",strokeWidth:1.4,"aria-hidden":"true",style:{opacity:.4},children:[t("rect",{x:"3",y:"4",width:"18",height:"16",rx:"1.5"}),t("circle",{cx:"8.5",cy:"9.5",r:"1.6"}),t("path",{d:"M21 16l-5-5-4 4-2-2-7 7"})]})})}function _e({sectionNumber:p=R.sectionNumber,heading:a=R.heading,tagline:y=R.tagline,galleryKicker:s=R.galleryKicker,galleryHint:f=R.galleryHint,locations:w=pe,apiKey:O="",mapId:E="",mapTheme:o="auto",imageShape:N,editing:c,nodeId:l,...b}){const[x,F]=T(!1);P(()=>{const e=()=>F(document.documentElement.getAttribute("data-theme")==="light");e();const r=new MutationObserver(e);return r.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>r.disconnect()},[]);const[_,j]=T(null),A=e=>`loc-${e}`,z=e=>{j(e),typeof document<"u"&&document.getElementById(e)?.scrollIntoView({behavior:V(),block:"start"}),!c&&typeof window<"u"&&window.history?.replaceState&&window.history.replaceState(null,"",`#${e}`)};P(()=>{if(typeof window>"u")return;const e=window.location.hash.replace(/^#/,"");!e||!document.getElementById(e)||(j(e),requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({behavior:V(),block:"start"})}))},[]);const H=ge(ue(N)),{select:D,selectedLocationPartId:I}=Ae(),U=(e,r)=>l?Q(l,e,r):"",$=(e,r)=>!!(c&&l&&I===U(e,r)),L=(e,r)=>c&&l?`${e}:${r}`:void 0,d=K(null);P(()=>{if(!c||!l)return;const e=d.current;if(!e)return;const k=Array.from(e.querySelectorAll("[data-loc-pick]")).map(n=>{const m=ie(n),g=S=>{const h=n.getAttribute("data-loc-pick")??"",[M,C]=h.split(":");C!=="image"&&C!=="map"||(S.stopPropagation(),S.preventDefault(),D(Q(l,Number(M),C)))};return n.addEventListener("click",g,{capture:!0}),()=>{m?.(),n.removeEventListener("click",g,{capture:!0})}});return()=>k.forEach(n=>n())},[c,l,D,w.length]);const u=Ce(w,e=>String(e.group??""),e=>String(e.groupName??""));return i("section",{id:"studios",ref:d,className:ne(b)?"scroll-mt-24 border-b border-line px-[var(--sf-site-gutter,40px)] py-[100px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]":"mx-auto max-w-[var(--sf-site-width,1600px)] scroll-mt-24 border-b border-line px-[var(--sf-site-gutter,40px)] py-[100px] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[1100px]:py-[60px]",style:x?void 0:{background:"var(--section-bg)"},children:[t("style",{dangerouslySetInnerHTML:{__html:Me}}),c&&l&&t("style",{dangerouslySetInnerHTML:{__html:Oe}}),(p||a||y)&&t(ce,{num:p,title:a?de(a,!0):void 0,desc:y?X(y):void 0,spaceBelow:"mb-10"}),w.length>0&&i("div",{className:"mb-12",children:[(s||f)&&i("div",{className:"mb-5 flex items-baseline justify-between gap-6 border-b border-line pb-4",children:[s&&t(le,{text:s,size:12}),f&&t("span",{className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.22em] text-fg-dim",children:X(f)})]}),t("div",{className:"flex flex-col gap-6",children:u.map((e,r)=>{const k=e.items.length===1;return i("div",{children:[e.key&&t("div",{className:"mb-2.5 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.3em] text-accent",children:e.key}),t("div",{className:["grid gap-[2px] border border-line bg-line",Z(e.items.length),e.items.length>1?"max-[700px]:grid-cols-2":""].join(" "),children:e.items.map(({item:n,index:m})=>{const g=String(n?.name??""),S=String(n?.photo??""),h=A(m);return i("a",{href:`#${h}`,"aria-label":`Jump to ${g||"location"} map`,onClick:M=>{M.preventDefault(),z(h)},"data-loc-pick":L(m,"image"),className:["group relative block",H,"overflow-hidden bg-bg outline-none focus-visible:ring-2 focus-visible:ring-accent",k?"max-h-[440px]":"",...L(m,"image")?["loc-part-pick"]:[]].join(" "),"data-selected":$(m,"image")?"":void 0,children:[S?t(re,{src:S,alt:se(g||"Location"),fill:!0,sizes:k?"100vw":"(max-width: 700px) 50vw, 33vw",className:"object-cover grayscale transition-[filter] duration-500 group-hover:grayscale-0"}):t(Ee,{}),t("div",{className:"pointer-events-none absolute inset-0",style:{background:"linear-gradient(180deg, transparent 50%, rgba(10,10,10,0.85) 100%)"}}),t("figcaption",{className:"absolute inset-x-0 bottom-0 z-[1] flex items-center justify-start gap-2 px-3 py-3 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.22em] text-overlay-fg/85",children:t("span",{children:g})})]},m)})})]},e.key?`g:${e.key}`:`ungrouped:${r}`)})})]}),u.map((e,r)=>i("div",{className:r===0?"":"mt-10",children:[e.key&&t(Ie,{groupKey:e.key,name:e.name,count:e.items.length}),t("div",{className:["grid gap-[2px] border border-line bg-line",Z(e.items.length),e.items.length>1?"max-[1100px]:grid-cols-1":""].join(" "),children:e.items.map(({item:k,index:n})=>t(je,{id:A(n),card:k,active:_===A(n),apiKey:O,mapId:E,mapTheme:o,mapPick:L(n,"map"),mapSelected:$(n,"map"),editing:c},n))})]},e.key?`g:${e.key}`:`ungrouped:${r}`)),w.length>0&&i("p",{className:"mt-8 text-right font-mono text-[10px] uppercase tracking-[0.25em] text-fg-dim/50",children:["Location coordinates ©"," ",t("a",{href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer",className:"hover:text-accent",children:"OpenStreetMap contributors"})]})]})}function je({id:p,card:a,active:y,apiKey:s,mapId:f,mapTheme:w,mapPick:O,mapSelected:E,editing:o}){const N=Le(a.phone),c=me(a.region),l=String(a.state??"").trim()||c.state,b=String(a.country??"").trim()||c.country,x=[l,b].filter(Boolean).join(" · ");return i("article",{id:p,"data-active":y?"true":void 0,className:"contact-loc grid min-h-[840px] scroll-mt-[120px] grid-rows-[auto_1fr] bg-bg max-[1100px]:min-h-0",children:[i("div",{className:"flex min-h-[280px] flex-col gap-3 border-b border-line px-7 py-7",children:[i("div",{className:"flex items-start justify-between gap-3.5",children:[i("div",{children:[a.name&&t("div",{className:"font-heading3 text-[length:var(--size-headingSmall,30px)] font-medium uppercase leading-none tracking-[-0.02em]",children:a.name}),x&&t("div",{className:"mt-1.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-accent",children:x})]}),a.timezone&&t("span",{className:"whitespace-nowrap border border-line px-2.5 py-1.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.22em] text-fg-dim",children:a.timezone})]}),a.address!=null&&a.address!==""&&t("div",{className:"mt-1.5 font-display text-[length:var(--size-body,14px)] leading-[1.5] text-fg-dim",children:t(te,{value:a.address})}),a.phone&&t("div",{children:t("a",{href:N,className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg hover:text-accent",children:a.phone})}),a.hours!=null&&a.hours!==""&&t("div",{className:"font-mono text-[length:var(--size-label,12px)] uppercase leading-[1.7] tracking-[0.18em] text-fg-dim",children:t(te,{value:a.hours})})]}),t($e,{name:String(a.name??""),state:l,country:b,lat:Number(a.lat),lng:Number(a.lng),mapsUrl:String(a.mapsUrl??""),apiKey:s,mapId:f,mapTheme:w,pick:O,selected:E,editing:o})]})}const ze=13;function $e({name:p,state:a,country:y,lat:s,lng:f,mapsUrl:w,apiKey:O,mapId:E,mapTheme:o="auto",pick:N,selected:c,editing:l}){const b=we(O,Se()),x=ke(E,Ne()),F=xe(s,f),_=!!b&&F,j=a,A=K(null),z=K(null),[H,D]=T(!1),I=`${b}|${s}|${f}|${x}|${o}`,[U,$]=T(null),L=U===I,d=o!=="auto",u=he(o),[e,r]=T(o==="auto"?fe.dark.background:B(o));P(()=>{r(B(o))},[o]),P(()=>{if(!_)return;const m=A.current;if(!m)return;let g=null,S=null,h=!1,M=null,C=null;const q=v=>({path:v.SymbolPath.CIRCLE,scale:7,fillColor:Y(o),fillOpacity:1,strokeColor:Y(o),strokeOpacity:.25,strokeWeight:10}),ae=async()=>{C=ye(()=>{h||$(I)});try{const v=await ve(b);if(h||!z.current)return;g=new v.Map(z.current,{center:{lat:s,lng:f},zoom:ze,disableDefaultUI:!0,gestureHandling:"cooperative",keyboardShortcuts:!1,clickableIcons:!1,backgroundColor:B(o),...x?{mapId:x}:{styles:J(o)}}),S=new v.Marker({map:g,position:{lat:s,lng:f},icon:q(v)}),g.addListener("tilesloaded",()=>{C?.ready(),h||D(!0)}),o==="auto"&&!x&&(M=be(()=>{h||!g||(g.setOptions({styles:J(o),backgroundColor:B(o)}),S?.setIcon(q(v)),r(B(o)))}))}catch(v){console.error("[StudioMap] Maps SDK failed:",v),C?.stop(),h||$(I)}},G=new IntersectionObserver(v=>{for(const oe of v)if(oe.isIntersecting){G.disconnect(),ae();break}},{rootMargin:"200px"});return G.observe(m),()=>{h=!0,G.disconnect(),C?.stop(),M?.()}},[_,b,s,f,x,o,I]);const k=w||(p?`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent([p,a,y].filter(Boolean).join(" "))}`:""),n=i("div",{className:["absolute left-5 top-5 z-10 flex max-w-[64%] flex-col gap-1.5 border p-3.5",d?"":"border-line bg-bg shadow-[0_8px_24px_rgba(0,0,0,.4)]"].join(" "),style:d?{backgroundColor:u.info.bg,borderColor:`color-mix(in oklab, ${u.info.fgDim} 35%, transparent)`,boxShadow:u.info.shadow}:void 0,children:[i("span",{className:"font-display text-[length:var(--size-body,14px)] font-medium tracking-[-0.01em]",style:d?{color:u.info.fg}:void 0,children:[p||"Location",j?`, ${j}`:""]}),k&&t("a",{href:k,target:"_blank",rel:"noopener noreferrer",className:["font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] transition-colors",d?"":"text-accent hover:text-fg"].join(" "),style:d?{color:u.info.accent}:void 0,children:"Get Directions ↗"})]});if(!_||L){const m=d?`linear-gradient(135deg, ${u.background}, ${u.info.bg})`:"linear-gradient(135deg, var(--site-surface-2), var(--site-surface))";return i("div",{"data-loc-pick":N,className:["relative overflow-hidden max-[1100px]:aspect-square",d?"":"bg-bg",...N?["loc-part-pick"]:[]].join(" "),"data-selected":c?"":void 0,style:{...d?{backgroundColor:u.background}:null,backgroundImage:`repeating-linear-gradient(45deg, rgba(201,164,97,.04) 0 1px, transparent 1px 14px), repeating-linear-gradient(-45deg, rgba(201,164,97,.04) 0 1px, transparent 1px 14px), ${m}`},children:[n,l&&t("div",{className:["absolute inset-0 flex items-center justify-center px-6 text-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em]",d?"":"text-fg-dim/40"].join(" "),style:d?{color:u.info.fgDim,opacity:.4}:void 0,children:b?L?"The map could not load. Check the key":"Add latitude & longitude":"Add a Google Maps API key"})]})}return i("div",{ref:A,"data-loc-pick":N,className:["studio-map relative overflow-hidden max-[1100px]:aspect-square",...N?["loc-part-pick"]:[]].join(" "),"data-selected":c?"":void 0,style:{backgroundColor:e},children:[t("div",{ref:z,className:"gmap-canvas absolute inset-0"}),t("div",{className:["pointer-events-none absolute inset-0 flex items-center justify-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-fg-dim transition-opacity duration-500",H?"opacity-0":"opacity-100"].join(" "),children:"Loading map…"}),n]})}export{_e as default};
|
|
73
|
+
`);return t(W,{children:a.map((y,s)=>r("span",{children:[y,s<a.length-1?t("br",{}):null]},s))})}return t(W,{children:p})}function Ee(){return t("div",{className:"absolute inset-0 flex items-center justify-center",style:{background:"repeating-linear-gradient(45deg, rgba(201,164,97,.05) 0 1px, transparent 1px 14px), linear-gradient(135deg, var(--site-surface-2), var(--site-surface))"},children:r("svg",{width:"34",height:"34",viewBox:"0 0 24 24",fill:"none",stroke:"var(--fg-dim)",strokeWidth:1.4,"aria-hidden":"true",style:{opacity:.4},children:[t("rect",{x:"3",y:"4",width:"18",height:"16",rx:"1.5"}),t("circle",{cx:"8.5",cy:"9.5",r:"1.6"}),t("path",{d:"M21 16l-5-5-4 4-2-2-7 7"})]})})}function _e({sectionNumber:p=P.sectionNumber,heading:a=P.heading,tagline:y=P.tagline,galleryKicker:s=P.galleryKicker,galleryHint:u=P.galleryHint,locations:w=pe,apiKey:O="",mapId:E="",mapTheme:o="auto",imageShape:N,editing:c,nodeId:l}){const[f,h]=$(!1);z(()=>{const e=()=>h(document.documentElement.getAttribute("data-theme")==="light");e();const i=new MutationObserver(e);return i.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>i.disconnect()},[]);const[H,C]=$(null),I=e=>`loc-${e}`,R=e=>{C(e),typeof document<"u"&&document.getElementById(e)?.scrollIntoView({behavior:V(),block:"start"}),!c&&typeof window<"u"&&window.history?.replaceState&&window.history.replaceState(null,"",`#${e}`)};z(()=>{if(typeof window>"u")return;const e=window.location.hash.replace(/^#/,"");!e||!document.getElementById(e)||(C(e),requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({behavior:V(),block:"start"})}))},[]);const _=ge(ue(N)),{select:B,selectedLocationPartId:U}=Ie(),L=(e,i)=>l?Q(l,e,i):"",D=(e,i)=>!!(c&&l&&U===L(e,i)),A=(e,i)=>c&&l?`${e}:${i}`:void 0,j=K(null);z(()=>{if(!c||!l)return;const e=j.current;if(!e)return;const k=Array.from(e.querySelectorAll("[data-loc-pick]")).map(n=>{const b=ie(n),m=g=>{const S=n.getAttribute("data-loc-pick")??"",[v,M]=S.split(":");M!=="image"&&M!=="map"||(g.stopPropagation(),g.preventDefault(),B(Q(l,Number(v),M)))};return n.addEventListener("click",m,{capture:!0}),()=>{b?.(),n.removeEventListener("click",m,{capture:!0})}});return()=>k.forEach(n=>n())},[c,l,B,w.length]);const d=Ce(w,e=>String(e.group??""),e=>String(e.groupName??""));return t("section",{id:"studios",ref:j,className:"scroll-mt-24 border-b border-line py-[100px] max-[1100px]:py-[60px]",style:f?void 0:{background:"var(--section-bg)"},children:r("div",{className:ne,children:[t("style",{dangerouslySetInnerHTML:{__html:Me}}),c&&l&&t("style",{dangerouslySetInnerHTML:{__html:Oe}}),(p||a||y)&&t(ce,{num:p,title:a?de(a,!0):void 0,desc:y?X(y):void 0,spaceBelow:"mb-10"}),w.length>0&&r("div",{className:"mb-12",children:[(s||u)&&r("div",{className:"mb-5 flex items-baseline justify-between gap-6 border-b border-line pb-4",children:[s&&t(le,{text:s,size:12}),u&&t("span",{className:"font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.22em] text-fg-dim",children:X(u)})]}),t("div",{className:"flex flex-col gap-6",children:d.map((e,i)=>{const k=e.items.length===1;return r("div",{children:[e.key&&t("div",{className:"mb-2.5 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.3em] text-accent",children:e.key}),t("div",{className:["grid gap-[2px] border border-line bg-line",Z(e.items.length),e.items.length>1?"max-[700px]:grid-cols-2":""].join(" "),children:e.items.map(({item:n,index:b})=>{const m=String(n?.name??""),g=String(n?.photo??""),S=I(b);return r("a",{href:`#${S}`,"aria-label":`Jump to ${m||"location"} map`,onClick:v=>{v.preventDefault(),R(S)},"data-loc-pick":A(b,"image"),className:["group relative block",_,"overflow-hidden bg-bg outline-none focus-visible:ring-2 focus-visible:ring-accent",k?"max-h-[440px]":"",...A(b,"image")?["loc-part-pick"]:[]].join(" "),"data-selected":D(b,"image")?"":void 0,children:[g?t(re,{src:g,alt:se(m||"Location"),fill:!0,sizes:k?"100vw":"(max-width: 700px) 50vw, 33vw",className:"object-cover grayscale transition-[filter] duration-500 group-hover:grayscale-0"}):t(Ee,{}),t("div",{className:"pointer-events-none absolute inset-0",style:{background:"linear-gradient(180deg, transparent 50%, rgba(10,10,10,0.85) 100%)"}}),t("figcaption",{className:"absolute inset-x-0 bottom-0 z-[1] flex items-center justify-start gap-2 px-3 py-3 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.22em] text-overlay-fg/85",children:t("span",{children:m})})]},b)})})]},e.key?`g:${e.key}`:`ungrouped:${i}`)})})]}),d.map((e,i)=>r("div",{className:i===0?"":"mt-10",children:[e.key&&t(Le,{groupKey:e.key,name:e.name,count:e.items.length}),t("div",{className:["grid gap-[2px] border border-line bg-line",Z(e.items.length),e.items.length>1?"max-[1100px]:grid-cols-1":""].join(" "),children:e.items.map(({item:k,index:n})=>t(je,{id:I(n),card:k,active:H===I(n),apiKey:O,mapId:E,mapTheme:o,mapPick:A(n,"map"),mapSelected:D(n,"map"),editing:c},n))})]},e.key?`g:${e.key}`:`ungrouped:${i}`)),w.length>0&&r("p",{className:"mt-8 text-right font-mono text-[10px] uppercase tracking-[0.25em] text-fg-dim/50",children:["Location coordinates ©"," ",t("a",{href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer",className:"hover:text-accent",children:"OpenStreetMap contributors"})]})]})})}function je({id:p,card:a,active:y,apiKey:s,mapId:u,mapTheme:w,mapPick:O,mapSelected:E,editing:o}){const N=Ae(a.phone),c=me(a.region),l=String(a.state??"").trim()||c.state,f=String(a.country??"").trim()||c.country,h=[l,f].filter(Boolean).join(" · ");return r("article",{id:p,"data-active":y?"true":void 0,className:"contact-loc grid min-h-[840px] scroll-mt-[120px] grid-rows-[auto_1fr] bg-bg max-[1100px]:min-h-0",children:[r("div",{className:"flex min-h-[280px] flex-col gap-3 border-b border-line px-7 py-7",children:[r("div",{className:"flex items-start justify-between gap-3.5",children:[r("div",{children:[a.name&&t("div",{className:"font-heading3 text-[length:var(--size-headingSmall,30px)] font-medium uppercase leading-none tracking-[-0.02em]",children:a.name}),h&&t("div",{className:"mt-1.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] text-accent",children:h})]}),a.timezone&&t("span",{className:"whitespace-nowrap border border-line px-2.5 py-1.5 font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.22em] text-fg-dim",children:a.timezone})]}),a.address!=null&&a.address!==""&&t("div",{className:"mt-1.5 font-display text-[length:var(--size-body,14px)] leading-[1.5] text-fg-dim",children:t(te,{value:a.address})}),a.phone&&t("div",{children:t("a",{href:N,className:"font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg hover:text-accent",children:a.phone})}),a.hours!=null&&a.hours!==""&&t("div",{className:"font-mono text-[length:var(--size-label,12px)] uppercase leading-[1.7] tracking-[0.18em] text-fg-dim",children:t(te,{value:a.hours})})]}),t($e,{name:String(a.name??""),state:l,country:f,lat:Number(a.lat),lng:Number(a.lng),mapsUrl:String(a.mapsUrl??""),apiKey:s,mapId:u,mapTheme:w,pick:O,selected:E,editing:o})]})}const ze=13;function $e({name:p,state:a,country:y,lat:s,lng:u,mapsUrl:w,apiKey:O,mapId:E,mapTheme:o="auto",pick:N,selected:c,editing:l}){const f=we(O,Se()),h=ke(E,Ne()),H=ve(s,u),C=!!f&&H,I=a,R=K(null),_=K(null),[B,U]=$(!1),L=`${f}|${s}|${u}|${h}|${o}`,[D,A]=$(null),j=D===L,d=o!=="auto",e=he(o),[i,k]=$(o==="auto"?fe.dark.background:T(o));z(()=>{k(T(o))},[o]),z(()=>{if(!C)return;const m=R.current;if(!m)return;let g=null,S=null,v=!1,M=null,F=null;const q=x=>({path:x.SymbolPath.CIRCLE,scale:7,fillColor:Y(o),fillOpacity:1,strokeColor:Y(o),strokeOpacity:.25,strokeWeight:10}),ae=async()=>{F=ye(()=>{v||A(L)});try{const x=await xe(f);if(v||!_.current)return;g=new x.Map(_.current,{center:{lat:s,lng:u},zoom:ze,disableDefaultUI:!0,gestureHandling:"cooperative",keyboardShortcuts:!1,clickableIcons:!1,backgroundColor:T(o),...h?{mapId:h}:{styles:J(o)}}),S=new x.Marker({map:g,position:{lat:s,lng:u},icon:q(x)}),g.addListener("tilesloaded",()=>{F?.ready(),v||U(!0)}),o==="auto"&&!h&&(M=be(()=>{v||!g||(g.setOptions({styles:J(o),backgroundColor:T(o)}),S?.setIcon(q(x)),k(T(o)))}))}catch(x){console.error("[StudioMap] Maps SDK failed:",x),F?.stop(),v||A(L)}},G=new IntersectionObserver(x=>{for(const oe of x)if(oe.isIntersecting){G.disconnect(),ae();break}},{rootMargin:"200px"});return G.observe(m),()=>{v=!0,G.disconnect(),F?.stop(),M?.()}},[C,f,s,u,h,o,L]);const n=w||(p?`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent([p,a,y].filter(Boolean).join(" "))}`:""),b=r("div",{className:["absolute left-5 top-5 z-10 flex max-w-[64%] flex-col gap-1.5 border p-3.5",d?"":"border-line bg-bg shadow-[0_8px_24px_rgba(0,0,0,.4)]"].join(" "),style:d?{backgroundColor:e.info.bg,borderColor:`color-mix(in oklab, ${e.info.fgDim} 35%, transparent)`,boxShadow:e.info.shadow}:void 0,children:[r("span",{className:"font-display text-[length:var(--size-body,14px)] font-medium tracking-[-0.01em]",style:d?{color:e.info.fg}:void 0,children:[p||"Location",I?`, ${I}`:""]}),n&&t("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:["font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.24em] transition-colors",d?"":"text-accent hover:text-fg"].join(" "),style:d?{color:e.info.accent}:void 0,children:"Get Directions ↗"})]});if(!C||j){const m=d?`linear-gradient(135deg, ${e.background}, ${e.info.bg})`:"linear-gradient(135deg, var(--site-surface-2), var(--site-surface))";return r("div",{"data-loc-pick":N,className:["relative overflow-hidden max-[1100px]:aspect-square",d?"":"bg-bg",...N?["loc-part-pick"]:[]].join(" "),"data-selected":c?"":void 0,style:{...d?{backgroundColor:e.background}:null,backgroundImage:`repeating-linear-gradient(45deg, rgba(201,164,97,.04) 0 1px, transparent 1px 14px), repeating-linear-gradient(-45deg, rgba(201,164,97,.04) 0 1px, transparent 1px 14px), ${m}`},children:[b,l&&t("div",{className:["absolute inset-0 flex items-center justify-center px-6 text-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em]",d?"":"text-fg-dim/40"].join(" "),style:d?{color:e.info.fgDim,opacity:.4}:void 0,children:f?j?"The map could not load. Check the key":"Add latitude & longitude":"Add a Google Maps API key"})]})}return r("div",{ref:R,"data-loc-pick":N,className:["studio-map relative overflow-hidden max-[1100px]:aspect-square",...N?["loc-part-pick"]:[]].join(" "),"data-selected":c?"":void 0,style:{backgroundColor:i},children:[t("div",{ref:_,className:"gmap-canvas absolute inset-0"}),t("div",{className:["pointer-events-none absolute inset-0 flex items-center justify-center font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-fg-dim transition-opacity duration-500",B?"opacity-0":"opacity-100"].join(" "),children:"Loading map…"}),b]})}export{_e as default};
|
|
@@ -10,4 +10,4 @@ export interface FeaturedCoverProps {
|
|
|
10
10
|
ctaText?: string;
|
|
11
11
|
ctaHref?: string;
|
|
12
12
|
}
|
|
13
|
-
export default function FeaturedCover({ image, badge, imageDate, category, readLabel, date, title, dek, ctaText, ctaHref,
|
|
13
|
+
export default function FeaturedCover({ image, badge, imageDate, category, readLabel, date, title, dek, ctaText, ctaHref, }: FeaturedCoverProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{EDITORIAL_COLUMN as b}from"../../format/lib/content/page-width.js";import{Fragment as u}from"react";import{SiteLink as v}from"../lib/site-runtime.js";import{stripMarkup as N}from"../../format/lib/markup.js";import y from"./Placeholder.js";import{renderGold as a,renderHeadline as k,splitParagraphs as z}from"./goldPhrases.js";const l={body:"text-[length:var(--size-body,20px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"};function w({image:f,badge:i,imageDate:o,category:p,readLabel:c,date:m,title:t,dek:d,ctaText:x,ctaHref:h}){const g=[p?e("span",{className:"text-accent",children:a(p)}):null,c?e("span",{children:a(c)}):null,m?e("span",{children:a(m)}):null].filter(Boolean);return e("section",{className:"border-b border-line py-20 max-[1100px]:py-[60px]",children:e("div",{className:b,children:r("article",{className:"sf-card relative grid grid-cols-[1.3fr_1fr] border border-line bg-[var(--card-bg)] max-[1100px]:grid-cols-1",children:[r("div",{className:"relative aspect-[5/4] overflow-hidden border-r border-line bg-surface-2 max-[1100px]:border-r-0 max-[1100px]:border-b",children:[e(y,{label:"featured-cover",src:f||void 0,alt:N(t||"Cover"),sizes:"(max-width: 1100px) 100vw, 56vw"}),e("div",{className:"pointer-events-none absolute inset-0 z-[1]",style:{background:"linear-gradient(180deg, rgba(10,10,10,0.45) 0%, transparent 30%, transparent 70%, rgba(10,10,10,0.55) 100%)"}}),i&&e("span",{className:`absolute left-6 top-6 z-[2] bg-accent px-3 py-2 font-mono ${l.labelSmall} uppercase tracking-[0.3em] text-bg`,children:a(i)}),o&&e("span",{className:`absolute right-6 bottom-6 z-[2] font-mono ${l.labelSmall} uppercase tracking-[0.24em] text-overlay-fg`,children:a(o)})]}),r("div",{className:"flex flex-col justify-between gap-6 px-12 py-14 max-[1100px]:px-7 max-[1100px]:py-9",children:[g.length>0&&e("div",{className:`flex items-center gap-4 font-mono ${l.labelSmall} uppercase tracking-[0.28em] text-fg-dim`,children:g.map((s,n)=>r(u,{children:[n>0&&e("span",{className:"opacity-40",children:"·"}),s]},n))}),t&&e("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(34px,3.5vw,58px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-none tracking-[-0.03em]",children:k(t,!0)}),d&&z(d).map((s,n)=>e("p",{className:`max-w-[520px] font-serif ${l.body} italic leading-[1.5] text-fg-dim`,children:a(s,!0)},n)),x&&e("div",{children:r(v,{href:h||"#",className:`group inline-flex items-center gap-3.5 py-3.5 font-mono ${l.labelLarge} uppercase tracking-[0.3em] text-accent`,children:[a(x)," ",e("span",{className:"transition-transform group-hover:translate-x-[6px]",children:"→"})]})})]})]})})})}export{w as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as te,Fragment as ne}from"react/jsx-runtime";import le from"./BoxTabs.js";import ae from"./SiteGutterFrame.js";import{BoxSurfaceProvider as ie}from"./BoxSurfaceContext.js";import{BoxCellWidthContext as ce}from"./BoxCellWidthContext.js";import{useInSiteHeader as me}from"./PhoneMenuTools.js";import{FRAME_BASE as O,FRAME_GUTTER as j}from"./BlockFrame.js";import{containerGapProps as fe}from"../../format/lib/content/container-gap.js";import{boxLayoutClasses as ue,boxBlockSpacingClass as be,boxPhoneRowClasses as _,boxShareClasses as H,boxWrapClass as de}from"../../format/lib/content/box-layout.js";import{BOX_CARD_PAD as s,BOX_OWNS_SIDES_CLASS as xe,boxDarkenStyle as $e,boxPlacementClasses as pe,CARD_SHADOW_CLASS as ye,isBackgroundBox as W}from"../../format/lib/content/box-background.js";import{sectionBorderStyle as Ce}from"../../format/lib/content/borders.js";import{sectionPadAttrs as Se}from"../../format/lib/content/section-padding.js";import{ON_MEDIA_INK_STYLE as _e}from"../../format/lib/content/ink.js";import{sizedBackground as h}from"../../format/lib/sized-image.js";const R={"--sf-site-gutter":"0px"},he="bg-cover bg-center bg-[image:var(--sf-box-bg)] max-[720px]:bg-[image:var(--sf-box-bg-p)]";function ge({direction:r,label:z,gap:G,justify:I,align:i,wrap:L,share:g,phoneRow:v,blockSpacing:M,bgImage:c,bgImagePhone:A,darken:T,darkenStyle:U,placement:X,padV2:K=!1,border:Y,borderPhone:q,padTop:m,padBottom:f,padTopPhone:u,padBottomPhone:b,padLeft:d,padRight:x,padLeftPhone:$,padRightPhone:p,contained:J=!0,fillHeight:E=!1,content:Q}){const t=W(c),N=me(),P=[H(g),be(M)].filter(Boolean).join(" "),V=P?` ${P}`:"",k=["flex",r==="row"?`flex-row ${_(v)}`:"flex-col",de(L),t?pe(X??"center",r):ue(I,i)].join(" ")+V,o=E||t?" h-full":"",y=t||N||K?"":" py-6",Z=`${O}${y} ${j}${o}`,ee=N?o.trim():`w-full${y}${o}`,n=fe("Flex",G,r==="row"?"inline":"block"),B=e(Q,{className:`${k}${n.className}${o}`,style:n.style,minEmptyHeight:120}),C=r==="tabs"?e(le,{className:`${k}${n.className}${o}`,style:n.style,children:B}):B,se=z?.trim()||void 0,oe={values:{top:m,bottom:f,topPhone:u,bottomPhone:b,left:d,right:x,leftPhone:$,rightPhone:p},frame:y?24:0},w=a=>e(ae,{contained:J,framedClass:Z,fillClass:ee,columnClass:`${O} ${j}${o}`,tabLabel:se,pad:t?void 0:oe,border:Ce(Y,q),children:a});if(!t){const a=i===void 0||i==="stretch",re=H(g)!==""&&(a||_(v)!==_(void 0));return w((r==="row"?re:r==="column"&&a)?e(ce.Provider,{value:!0,children:C}):C)}const l=$e(T,U),D=W(A),S=Se(typeof m=="number"?m:s.desktop,typeof f=="number"?f:s.desktop,typeof u=="number"?u:s.phone,typeof b=="number"?b:s.phone,typeof d=="number"?d:s.side,typeof x=="number"?x:s.side,typeof $=="number"?$:s.sidePhone,typeof p=="number"?p:s.sidePhone),F=e("div",{className:`relative z-[1] ${xe} ${S?.className??""}${E?" h-full":""}`.trimEnd(),style:l?{...S?.style,...R,..._e}:{...S?.style,...R},children:C});return w(e(ne,{children:te("div",{className:`relative isolate overflow-hidden ${ye}${o}${D?` ${he}`:""}`,style:D?{"--sf-box-bg":h(c??""),"--sf-box-bg-p":h(A??"")}:{backgroundImage:h(c??""),backgroundSize:"cover",backgroundPosition:"center"},children:[l&&e("div",{className:"absolute inset-0 z-0",style:l,"aria-hidden":!0}),l?e(ie,{children:F}):F]})}))}export{ge as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as l}from"react/jsx-runtime";import{FRAME_BASE as t,FRAME_GUTTER as e}from"./BlockFrame.js";import $ from"./SiteGutterFrame.js";import{containerGapProps as g}from"../../format/lib/content/container-gap.js";import{resolveGridColumns as C,resolveGridMobileColumns as G}from"../../format/lib/content/grid-span.js";function h({columns:o,mobileColumns:i,gap:n,contained:a=!0,fillHeight:m=!1,content:f}){const s=m?" h-full":"",c=`${t} py-6 ${e}${s}`,p=`w-full py-6${s}`,d=C(o),u=G(i,o),r=g("Grid",n,"both");return l($,{contained:a,framedClass:c,fillClass:p,columnClass:`${t} ${e}${s}`,children:l(f,{className:`sf-grid-zone grid${r.className}${s}`,style:{...r.style,"--sf-grid-cols":String(d),"--sf-grid-cols-phone":String(u)},minEmptyHeight:120})})}export{h as default};
|
|
@@ -17,4 +17,4 @@ export interface LongReadProps {
|
|
|
17
17
|
metaPublished?: string;
|
|
18
18
|
metaReads?: string;
|
|
19
19
|
}
|
|
20
|
-
export default function LongRead({ headNum, headTitle, headDesc, category, metaMiddle, readLabel, title, dek, quote, quoteAttribution, ctaText, ctaHref, image, imageLabel, metaPublished, metaReads, omitHead,
|
|
20
|
+
export default function LongRead({ headNum, headTitle, headDesc, category, metaMiddle, readLabel, title, dek, quote, quoteAttribution, ctaText, ctaHref, image, imageLabel, metaPublished, metaReads, omitHead, }: LongReadProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as r,Fragment as
|
|
1
|
+
import{jsx as e,jsxs as r,Fragment as p}from"react/jsx-runtime";import{EDITORIAL_COLUMN as $}from"../../format/lib/content/page-width.js";import{Fragment as k}from"react";import{SiteLink as j}from"../lib/site-runtime.js";import{stripMarkup as E}from"../../format/lib/markup.js";import B from"./EditorialSectionHead.js";import F from"./Placeholder.js";import I from"./SectionEyebrow.js";import{renderGold as a,renderHeadline as z}from"./goldPhrases.js";const n={bodySmall:"text-[length:var(--size-body,14px)]",body:"text-[length:var(--size-body,17px)]",bodyLarge:"text-[length:var(--size-body,22px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"};function O({headNum:S,headTitle:m,headDesc:x,category:f,metaMiddle:g,readLabel:b,title:t,dek:h,quote:i,quoteAttribution:o,ctaText:u,ctaHref:L,image:w,imageLabel:v,metaPublished:s,metaReads:c,omitHead:y=!1}){const N=[f?e("span",{className:"text-accent",children:a(f)}):null,g?e("span",{children:a(g)}):null,b?e("span",{children:a(b)}):null].filter(Boolean),_=!!s||!!c;return e("section",{className:y?"border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20":"border-b border-line py-[120px] max-[1100px]:py-20",children:r("div",{className:$,children:[y?null:e(B,{num:S,title:m?z(m,!0):void 0,desc:x?a(x):void 0}),r("article",{className:"sf-card grid min-h-[640px] grid-cols-[1fr_1.2fr] border border-line max-[1100px]:grid-cols-1",children:[r("div",{className:"flex flex-col justify-center gap-7 border-r border-line bg-surface px-14 py-16 max-[1100px]:border-r-0 max-[1100px]:border-b max-[1100px]:px-7 max-[1100px]:py-12",children:[N.length>0&&e("div",{className:`flex items-center gap-3.5 font-mono ${n.labelSmall} uppercase tracking-[0.3em] text-fg-dim`,children:N.map((d,l)=>r(k,{children:[l>0&&e("span",{className:"opacity-40",children:"·"}),d]},l))}),t&&e("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(36px,4.2vw,68px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.95] tracking-[-0.035em]",children:z(t,!0)}),h&&e("p",{className:`font-serif ${n.bodyLarge} italic leading-[1.45] text-fg`,children:a(h)}),(i||o)&&r("blockquote",{className:`max-w-[520px] border-l-2 border-accent py-1.5 pl-[22px] font-serif ${n.body} italic leading-[1.6] text-fg-dim`,children:[i&&r(p,{children:["“",a(i),"”"]}),o&&e("strong",{className:`mt-2.5 block font-display ${n.bodySmall} font-normal not-italic uppercase tracking-[0.22em] text-fg`,children:a(o)})]}),u&&r(j,{href:L||"#",className:`inline-flex items-center gap-3.5 self-start border border-btn px-7 py-4 font-mono ${n.labelLarge} uppercase tracking-[0.3em] text-btn transition-colors hover:bg-btn hover:text-btn-ink`,children:[a(u)," ",e("span",{children:"→"})]})]}),r("div",{className:"relative overflow-hidden bg-surface-2 max-[1100px]:aspect-[4/3]",children:[e(F,{label:"long-read",src:w||void 0,alt:E(t||"Long read"),sizes:"(max-width: 1100px) 100vw, 56vw"}),e("div",{className:"pointer-events-none absolute inset-0 z-[1]",style:{background:"linear-gradient(180deg, rgba(10,10,10,0.55) 0%, transparent 25%, transparent 60%, rgba(10,10,10,0.7) 100%)"}}),v&&e(I,{text:v,size:12,className:"absolute right-6 top-6 z-[2]"}),_&&e("div",{className:`absolute bottom-6 left-6 z-[2] font-mono ${n.labelSmall} uppercase leading-[1.8] tracking-[0.22em] text-overlay-fg`,children:[s?r(p,{children:[e("strong",{className:"font-normal text-accent",children:"Published"})," ",a(s)]}):null,c?r(p,{children:[e("strong",{className:"font-normal text-accent",children:"Reads in"})," ",a(c)]}):null].filter(Boolean).map((d,l)=>r(k,{children:[l>0&&e("br",{}),d]},l))})]})]})]})})}export{O as default};
|
|
@@ -13,4 +13,4 @@ export interface MastheadProps {
|
|
|
13
13
|
issueTotal?: string;
|
|
14
14
|
editing?: boolean;
|
|
15
15
|
}
|
|
16
|
-
export default function Masthead({ eyebrow, issueMeta, lead, issueHeading, issueList, issueTotal,
|
|
16
|
+
export default function Masthead({ eyebrow, issueMeta, lead, issueHeading, issueList, issueTotal, }: MastheadProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as t,Fragment as N,jsxs as a}from"react/jsx-runtime";import{EDITORIAL_COLUMN as v}from"../../format/lib/content/page-width.js";import u from"./SectionEyebrow.js";import{renderGold as r,renderHeadline as _,splitParagraphs as j}from"./goldPhrases.js";const n={body:"text-[length:var(--size-body,18px)]",headingSmall:"text-[length:var(--size-headingSmall,20px)]",label:"text-[length:var(--size-label,13px)]"};function k({eyebrow:s,issueMeta:x,lead:g,issueHeading:i,issueList:h,issueTotal:m}){const c=(x??[]).filter(e=>(e?.lead??"").trim()||(e?.rest??"").trim()),o=(h??[]).map(e=>e?.text??"").filter(e=>e.trim()),d=j(g??""),f=!!s||c.length>0,p=!!i||o.length>0||!!m,b=d.length>0||p;return t("section",{className:"border-b border-line pt-20 pb-10 max-[1100px]:pt-[60px] max-[1100px]:pb-8",children:a("div",{className:v,children:[f&&a("div",{className:"flex items-end justify-between gap-[60px] pb-8 max-[1100px]:flex-col max-[1100px]:items-start max-[1100px]:gap-4",children:[s&&t(u,{text:s,size:14,className:"pb-3.5"}),c.length>0&&t("div",{className:`pb-3.5 text-right font-mono ${n.label} uppercase leading-[1.8] tracking-[0.18em] text-fg-dim max-[1100px]:text-left`,children:c.map((e,l)=>a("div",{children:[t("strong",{className:"font-normal text-fg",children:r(e.lead??"")}),e.rest?.trim()?a(N,{children:[" ",r(e.rest)]}):null]},l))})]}),b&&a("div",{className:"grid grid-cols-[1fr_auto] items-start gap-[60px] border-t border-line pt-8 max-[1100px]:grid-cols-1 max-[1100px]:gap-4",children:[d.length>0&&t("div",{className:"max-w-[720px]",children:d.map((e,l)=>t("p",{className:`font-heading3 ${n.headingSmall} leading-[1.5] tracking-[-0.005em] text-fg [&:not(:first-child)]:mt-4`,children:r(e,!0)},l))}),p&&a("div",{className:`min-w-[240px] text-right font-mono ${n.label} uppercase leading-[1.9] tracking-[0.22em] text-fg-dim max-[1100px]:text-left`,children:[i&&t("strong",{className:`mb-1.5 block font-display ${n.body} font-normal tracking-[-0.01em] normal-case text-fg`,children:_(i,!1)}),o.map((e,l)=>a("span",{children:[r(e),t("br",{})]},l)),m&&t("span",{className:"text-accent",children:r(m)})]})]})]})})}export{k as default};
|
|
@@ -29,4 +29,4 @@ export interface ProcessStepsProps {
|
|
|
29
29
|
cardText?: "below" | "on-image";
|
|
30
30
|
omitHead?: boolean;
|
|
31
31
|
}
|
|
32
|
-
export default function ProcessSteps({ num, title, description, boxes: Boxes, steps, columns, cta, padTop, padBottom, editing, omitHead, cardImage, cardText,
|
|
32
|
+
export default function ProcessSteps({ num, title, description, boxes: Boxes, steps, columns, cta, padTop, padBottom, editing, omitHead, cardImage, cardText, }: ProcessStepsProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as a,Fragment as
|
|
1
|
+
import{jsx as a,Fragment as C,jsxs as r}from"react/jsx-runtime";import{EDITORIAL_COLUMN as E}from"../../format/lib/content/page-width.js";import{cardImageShapeTokens as U}from"../../format/lib/content/card-image-shape.js";import{SiteLink as A}from"../lib/site-runtime.js";import G from"./EditorialSectionHead.js";import O from"./Placeholder.js";import{withRMark as i}from"./RMark.js";import{renderGold as m}from"./goldPhrases.js";import{say as R}from"../../format/lib/editor-words.js";const l={headingSmallUpTo700Small:"max-[700px]:text-[length:var(--size-headingSmall,26px)]",headingSmallUpTo700Large:"max-[700px]:text-[length:var(--size-headingSmall,28px)]",bodySmall:"text-[length:var(--size-body,15px)]",bodyLarge:"text-[length:var(--size-body,18px)]",headingSmall1:"text-[length:var(--size-headingSmall,28px)]",headingSmall2:"text-[length:var(--size-headingSmall,34px)]",labelSmall:"text-[length:var(--size-label,11px)]",label:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"},S={2:"grid-cols-2 max-[900px]:grid-cols-1",3:"grid-cols-3 max-[1100px]:grid-cols-1",4:"grid-cols-4 max-[1100px]:grid-cols-2 max-[700px]:grid-cols-1"},g="sf-itc-boxes",N="sf-itc-steps";function D({num:$,title:x,description:f,boxes:d,steps:z,columns:k=3,cta:c,padTop:b,padBottom:h,editing:L=!1,omitHead:T=!1,cardImage:_,cardText:w}){const I=typeof b=="number"?b:120,j=typeof h=="number"?h:120,u=(z??[]).filter(e=>(e?.tag??"").trim()||(e?.meta??"").trim()||(e?.title??"").trim()||(e?.copy??"").trim()||(e?.image??"").trim()||(e?.specs??[]).some(o=>(o?.label??"").trim()||(o?.value??"").trim())),v=u.length>0?u:L&&!d?[1,2,3].map(e=>({tag:R("Column {n}",{n:e})})):[],y=S[k]??S[3],n=w==="on-image";return a("section",{className:"relative z-[2] border-b border-line bg-bg",style:{paddingTop:I,paddingBottom:j,...U(_)},children:r("div",{className:E,children:[T?null:a(G,{num:$,title:x?.trim()?m(x,!0):void 0,desc:f?.trim()?m(f,!1):void 0}),d?r(C,{children:[a("style",{children:`.${g}:empty{display:none}.${g}:not(:empty)~.${N}{display:none}`}),a(d,{className:`${g} sf-card grid ${y} gap-[2px] border border-line bg-line [&>*]:min-h-[560px] [&>*]:bg-bg`,minEmptyHeight:260})]}):null,v.length>0&&a("div",{className:`${N} sf-card grid ${y} gap-[2px] border border-line bg-line`,children:v.map((e,o)=>{const s=(e.specs??[]).filter(t=>(t?.label??"").trim()||(t?.value??"").trim());return r("article",{className:n?"flex flex-col bg-bg":"flex min-h-[560px] flex-col bg-bg",children:[r("div",{className:n?"sf-card-image relative aspect-[5/3] overflow-hidden bg-surface max-[700px]:aspect-[4/3]":"sf-card-image relative aspect-[5/3] overflow-hidden border-b border-line bg-surface",children:[a(O,{label:e.tag?.trim()||e.title?.trim()||`column-${o+1}`,src:e.image||void 0,sizes:"(max-width: 1100px) 100vw, 33vw",...d?{deferFetch:!0}:{}}),a("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 z-[1]",style:{background:"linear-gradient(180deg, rgba(10,10,10,0.55) 0%, transparent 30%, transparent 70%, rgba(10,10,10,0.65) 100%)"}}),n&&a("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 bottom-0 z-[1] h-[78%]",style:{background:"linear-gradient(180deg, transparent 0%, rgba(10,10,10,0.73) 55%, rgba(10,10,10,0.92) 100%)"}}),e.tag?.trim()&&a("span",{className:`absolute left-5 top-[18px] z-[2] font-mono ${l.label} uppercase tracking-[0.3em] text-accent`,children:i(e.tag)}),e.meta?.trim()&&a("span",{className:n?`absolute right-5 top-[18px] z-[2] font-mono ${l.label} uppercase tracking-[0.24em] text-overlay-fg/80`:`absolute right-5 bottom-[18px] z-[2] font-mono ${l.label} uppercase tracking-[0.24em] text-overlay-fg/80`,children:i(e.meta)}),n&&(e.title?.trim()||e.copy?.trim())&&r("div",{className:"absolute inset-x-0 bottom-0 z-[2] flex flex-col gap-2.5 px-8 pb-7 pt-14 max-[700px]:px-6 max-[700px]:pb-6",children:[e.title?.trim()&&a("h3",{className:`flex min-h-[2em] flex-col justify-end font-heading3 ${l.headingSmall1} font-medium uppercase leading-none tracking-[-0.02em] text-overlay-fg ${l.headingSmallUpTo700Small}`,children:m(e.title,!0)}),e.copy?.trim()&&a("p",{className:`min-h-[3em] font-display ${l.bodySmall} leading-[1.5] text-overlay-fg/85`,children:m(e.copy,!1)})]})]}),n?s.length>0&&a("div",{className:"grid grid-cols-2 gap-2 border-t border-line px-8 py-7 max-[700px]:px-6 max-[700px]:py-6",children:s.map((t,p)=>r("div",{className:"flex flex-col gap-1",children:[t.label?.trim()&&a("span",{className:`font-mono ${l.labelSmall} uppercase tracking-[0.24em] text-fg-dim`,children:i(t.label)}),t.value?.trim()&&a("span",{className:`font-display ${l.bodyLarge} font-medium tracking-[-0.01em] text-fg`,children:i(t.value)})]},p))}):r("div",{className:"flex flex-1 flex-col gap-4 px-8 py-9 max-[700px]:px-6 max-[700px]:py-7",children:[e.title?.trim()&&a("h3",{className:`font-heading3 ${l.headingSmall2} font-medium uppercase leading-none tracking-[-0.02em] ${l.headingSmallUpTo700Large}`,children:m(e.title,!0)}),e.copy?.trim()&&a("p",{className:`font-display ${l.bodySmall} leading-[1.55] text-fg-dim`,children:m(e.copy,!1)}),s.length>0&&a("div",{className:"mt-auto grid grid-cols-2 gap-2 border-t border-line pt-4",children:s.map((t,p)=>r("div",{className:"flex flex-col gap-1",children:[t.label?.trim()&&a("span",{className:`font-mono ${l.labelSmall} uppercase tracking-[0.24em] text-fg-dim`,children:i(t.label)}),t.value?.trim()&&a("span",{className:`font-display ${l.bodyLarge} font-medium tracking-[-0.01em] text-fg`,children:i(t.value)})]},p))})]})]},o)})}),c?.text&&a("div",{className:"mt-12 flex justify-end border-t border-line pt-8",children:r(A,{href:c.href,className:`group inline-flex items-center gap-3.5 border border-line px-6 py-4 font-mono ${l.labelLarge} uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent`,children:[i(c.text),a("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"→"})]})})]})})}export{D as default};
|
|
@@ -16,4 +16,4 @@ export interface SeriesProps {
|
|
|
16
16
|
editing?: boolean;
|
|
17
17
|
omitHead?: boolean;
|
|
18
18
|
}
|
|
19
|
-
export default function Series({ headNum, headTitle, headDesc, cards, viewLabel, background, editing, omitHead,
|
|
19
|
+
export default function Series({ headNum, headTitle, headDesc, cards, viewLabel, background, editing, omitHead, }: SeriesProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t,jsxs as
|
|
1
|
+
import{jsx as t,jsxs as n,Fragment as S}from"react/jsx-runtime";import{EDITORIAL_COLUMN as j}from"../../format/lib/content/page-width.js";import v from"./EditorialSectionHead.js";import{renderGold as r,renderHeadline as o}from"./goldPhrases.js";import{say as E}from"../../format/lib/editor-words.js";const l={body:"text-[length:var(--size-body,14px)]",headingSmall:"text-[length:var(--size-headingSmall,28px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"};function L({headNum:p,headTitle:s,headDesc:x,cards:g,viewLabel:i,background:a,editing:h=!1,omitHead:m=!1}){const c=(g??[]).filter(e=>(e?.title??"").trim()||(e?.desc??"").trim()||(e?.num??"").trim()),b=c.length>0?c:h?[{title:E("Series title")}]:[],d=!!(a&&a!=="transparent");return t("section",{className:m?"border-b border-line pt-0 pb-[120px] max-[1100px]:pt-0 max-[1100px]:pb-20":"border-b border-line py-[120px] max-[1100px]:py-20",style:d?{backgroundColor:a}:void 0,children:n("div",{className:j,children:[m?null:t(v,{num:p,title:s?o(s):void 0,desc:x}),t("div",{className:`grid grid-cols-4 max-[1100px]:grid-cols-2 max-[700px]:grid-cols-1 ${d?"gap-[1px]":"gap-[2px] bg-bg"}`,children:b.map((e,f)=>{const u=!!(e.num?.trim()||e.since?.trim()),y=!!e.title?.trim(),N=!!(e.entries?.trim()||e.entriesLabel?.trim()||i);return n("article",{className:"flex min-h-[340px] flex-col gap-4 bg-bg px-7 pt-9 pb-8",children:[u&&n("div",{className:`flex items-baseline justify-between gap-3 font-mono ${l.labelLarge} uppercase tracking-[0.3em] text-accent`,children:[t("span",{children:e.num?r(e.num):null}),e.since?.trim()?t("span",{children:r(e.since)}):null]}),y&&t("h3",{className:`font-heading3 ${l.headingSmall} font-medium uppercase leading-[1.04] tracking-[-0.02em]`,children:o(e.title??"")}),e.desc?.trim()&&t("p",{className:`font-display ${l.body} leading-[1.6] text-fg-dim`,children:r(e.desc)}),N&&n("div",{className:`mt-auto flex items-center justify-between border-t border-line pt-4 font-mono ${l.labelSmall} uppercase tracking-[0.22em] text-fg-dim`,children:[n("span",{children:[e.entries?.trim()?t("strong",{className:"font-normal text-fg",children:r(e.entries)}):null,e.entriesLabel?.trim()?n(S,{children:[e.entries?.trim()?" ":"",r(e.entriesLabel)]}):null]}),i&&t("span",{className:"text-accent",children:r(i)})]})]},f)})})]})})}export{L as default};
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { type CSSProperties, type ReactNode } from "react";
|
|
2
2
|
import { type PadValues } from "../../format/lib/content/section-padding.js";
|
|
3
|
-
export
|
|
3
|
+
export declare function SplitBandAndColumn({ children }: {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
}): import("react").JSX.Element;
|
|
6
|
+
export default function SiteGutterFrame({ contained, framedClass, fillClass, columnClass, style, tabLabel, pad, border, children, }: {
|
|
4
7
|
contained: boolean;
|
|
5
8
|
framedClass: string;
|
|
6
9
|
fillClass: string;
|
|
10
|
+
columnClass: string;
|
|
7
11
|
style?: CSSProperties;
|
|
8
12
|
tabLabel?: string;
|
|
9
13
|
pad?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as t}from"react/jsx-runtime";import{createContext as p,useContext as C}from"react";import{rootPadAttrs as E,wrapperPadAttrs as O}from"../../format/lib/content/section-padding.js";import{SECTION_BORDER_CLASS as P,SECTION_BORDER_SELF_CLASS as I}from"../../format/lib/content/borders.js";import{drawsSiteGutter as j}from"../../format/lib/content/site-gutter.js";const N=p(!1),u=p(!1);function g({children:o}){return t(u.Provider,{value:!0,children:o})}function w({contained:o,framedClass:h,fillClass:x,columnClass:y,style:d,tabLabel:R,pad:e,border:n,children:m}){const _=C(N),f=C(u),l=j(o,_),s=l&&!f,r=e&&!s?E(e.values,e.frame):null,a=n&&!s?n:null,A=[s?h:x,r?.className,a?I:null].filter(Boolean).join(" "),B=r||a?{...d,...r?.style,...a}:d,i=l?t(N.Provider,{value:!0,children:m}):m,v=t("div",{className:A,style:B,"data-tab-label":R,children:f?t(u.Provider,{value:!1,children:l?t("div",{className:y,children:i}):i}):i}),c=e&&s?O(e.values):null,S=c?t("div",{className:c.className,style:c.style,children:v}):v;return n&&s?t("div",{className:P,style:{display:"contents",...n},children:S}):S}export{g as SplitBandAndColumn,w as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{SiteLink as v}from"../lib/site-runtime.js";import
|
|
1
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{SiteLink as v}from"../lib/site-runtime.js";import _ from"./Btn.js";import{resolveImageTreatment as E}from"../../format/lib/content/image-treatment.js";import y from"./Placeholder.js";import{useSitePhotography as I}from"./SitePhotographyContext.js";import L from"./SectionEyebrow.js";import{renderGold as i,renderHeadline as P,splitParagraphs as U}from"./goldPhrases.js";import{ON_MEDIA_INK_STYLE as S}from"../../format/lib/content/ink.js";const t={headingMediumUpTo800:"max-[800px]:text-[length:var(--size-headingMedium,36px)]",labelUpTo800:"max-[800px]:text-[length:var(--size-label,12px)]",headingMedium:"text-[length:min(var(--size-headingMedium,56px),var(--sf-heading-max,9999px))]",body:"text-[length:var(--size-body,16px)]",label:"text-[length:var(--size-label,13px)]"};function A({imageLabel:d,imageSrc:p,imageTint:c=.4,imageObjectPosition:N,eyebrow:x,title:m,body:h,cta:l,reverse:f=!1,uppercase:j=!1,textAlign:k="left",textBgSrc:s,textBgLabel:$,textBgTint:b=.6,textBgObjectPosition:z,featureBar:a,imageButton:n,grayscale:w}){const g=E(w,I()),u={left:{items:"",text:"",cta:"self-start"},center:{items:"items-center",text:"text-center",cta:"self-center"},right:{items:"items-end",text:"text-right",cta:"self-end"}},o=u[k]??u.left;return e("section",{className:"relative z-[2] bg-bg p-0",children:r("div",{className:["grid min-h-[72vh] grid-cols-2 border-t border-b border-line","mx-auto w-full max-w-[var(--sf-content-cap,none)]","max-[960px]:grid-cols-1","max-[960px]:min-h-0",f?"min-[961px]:[direction:rtl]":""].join(" "),children:[r("div",{className:"sf-card relative flex items-center justify-center overflow-hidden bg-surface [direction:ltr] max-[960px]:aspect-[4/3] max-[960px]:order-2",style:f?{borderLeft:"1px solid var(--site-line)"}:{borderRight:"1px solid var(--site-line)"},children:[e(y,{label:d,src:p,objectPosition:N,treatment:g}),p&&c>0&&e("div",{className:"absolute inset-0",style:{background:`rgba(0,0,0,${c})`}}),(a||n)&&r("div",{className:"pointer-events-none absolute inset-0 z-[3] flex flex-col items-center justify-center gap-4 px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",children:[a&&r(v,{href:a.href,className:`pointer-events-auto inline-flex items-center justify-center gap-3 border px-7 py-4 font-mono ${t.label} uppercase tracking-[0.18em] backdrop-blur-sm transition-colors max-[800px]:gap-2 max-[800px]:px-5 max-[800px]:py-3 ${t.labelUpTo800}`,style:{borderColor:"rgba(245,241,232,0.3)",color:"rgba(245,241,232,0.85)",background:"rgba(0,0,0,0.45)"},children:[e("span",{children:i(a.wheel)}),e("span",{"aria-hidden":!0,style:{opacity:.55},children:"·"}),e("span",{children:i(a.category)}),e("span",{"aria-hidden":!0,children:"→"}),e("span",{children:i(a.cta??"Shop now")})]}),n&&r(v,{href:n.href,className:`pointer-events-auto inline-flex items-center justify-center gap-2 border px-7 py-4 font-mono ${t.label} uppercase tracking-[0.18em] backdrop-blur-sm transition-colors hover:bg-[rgba(245,241,232,0.1)] max-[800px]:gap-2 max-[800px]:px-5 max-[800px]:py-3 ${t.labelUpTo800}`,style:{borderColor:"rgba(245,241,232,0.5)",color:"rgba(245,241,232,0.95)",background:"transparent"},children:[e("span",{children:i(n.text??"Learn more")}),e("span",{"aria-hidden":!0,children:"→"})]})]})]}),r("div",{className:"relative overflow-hidden [direction:ltr] max-[960px]:order-1",children:[s&&r("div",{className:"absolute inset-0","aria-hidden":!0,children:[e(y,{label:$??d,src:s,objectPosition:z,treatment:g}),b>0&&e("div",{className:"absolute inset-0",style:{background:`rgba(0,0,0,${b})`}})]}),e("div",{className:"relative z-[2] flex h-full min-h-full flex-col px-[60px] py-[100px] max-[960px]:px-6 max-[960px]:py-[60px]",style:s?S:void 0,children:r("div",{className:["flex flex-1 flex-col justify-center gap-6",o.items,o.text].join(" "),children:[x&&e(L,{text:x,size:14}),m&&e("h2",{className:[`font-heading2 ${t.headingMedium} font-normal leading-[1.05] tracking-[-0.03em]`,`${t.headingMediumUpTo800} max-[800px]:leading-[1]`,j?"uppercase":""].join(" "),children:P(m,!1)}),h&&U(h).map((M,T)=>e("p",{className:[`max-w-[520px] ${t.body} leading-[1.7]`,"text-fg-dim"].join(" "),children:i(M)},T)),l.text&&e("div",{className:`mt-2 ${o.cta}`,children:e(_,{href:l.href,variant:"primary",children:i(l.text)})})]})})]})]})})}export{A as default};
|
|
@@ -18,4 +18,4 @@ export interface StatsParagraphProps {
|
|
|
18
18
|
editing?: boolean;
|
|
19
19
|
omitHead?: boolean;
|
|
20
20
|
}
|
|
21
|
-
export default function StatsParagraph({ eyebrow, title, desc, stats, background, padTop, padBottom, editing, omitHead,
|
|
21
|
+
export default function StatsParagraph({ eyebrow, title, desc, stats, background, padTop, padBottom, editing, omitHead, }?: StatsParagraphProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsxs as
|
|
1
|
+
"use client";import{jsxs as l,jsx as n,Fragment as y}from"react/jsx-runtime";import{EDITORIAL_COLUMN as S}from"../../format/lib/content/page-width.js";import C from"./EditorialSectionHead.js";import{renderGold as h,renderHeadline as E}from"./goldPhrases.js";import{useCountUp as _}from"./useCountUp.js";import{say as b}from"../../format/lib/editor-words.js";const x={body:"text-[length:var(--size-body,16px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,13px)]"},v="font-normal italic text-accent";function k({value:g,prefix:c,suffix:r,supSuffix:d,emphasizeAll:i,label:t,sub:a}){const o=(g??"").trim(),p=/^\d+$/.test(o),{ref:f,value:u}=_(p?parseInt(o,10):0),s=p?String(u):o,m=c??"";return l("div",{className:"flex min-h-[240px] flex-col gap-3 bg-bg px-8 py-12",children:[l("div",{ref:f,className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(56px,7vw,96px)),var(--sf-heading-max,9999px))] font-medium leading-[0.9] tracking-[-0.04em] tabular-nums",children:[i?l("em",{className:v,children:[m,s]}):l(y,{children:[m,s,r?n("em",{className:v,children:r}):null]}),d?n("sup",{className:`ml-8 inline-block pt-[18px] align-top font-mono ${x.labelLarge} leading-none tracking-[0.18em] text-accent`,children:d}):null]}),(t||a)&&l("div",{className:`mt-auto font-mono ${x.labelSmall} uppercase tracking-[0.24em] text-fg-dim`,children:[t?n("strong",{className:`mb-1 block font-display ${x.body} font-normal normal-case tracking-[-0.01em] text-fg`,children:t}):null,a?h(a):null]})]})}function j({eyebrow:g,title:c,desc:r,stats:d,background:i,padTop:t,padBottom:a,editing:o=!1,omitHead:p=!1}={}){const f=typeof t=="number"?t:120,u=typeof a=="number"?a:120,s=(d??[]).filter(e=>(e.value??"").trim()!==""||(e.label??"").trim()!==""||(e.sub??"").trim()!==""||(e.suffix??"").trim()!==""||(e.supSuffix??"").trim()!==""),m=s.length>0?s:o?[{value:"0",label:b("Stat"),sub:b("Add your numbers.")}]:[];return n("section",{className:"border-b border-line",style:{paddingTop:f,paddingBottom:u,...!!(i&&i!=="transparent")?{backgroundColor:i}:{}},children:l("div",{className:S,children:[p?null:n(C,{num:g,title:c?E(c):void 0,desc:r?h(r):void 0}),m.length>0&&n("div",{className:"sf-card grid grid-cols-4 gap-[2px] border border-line bg-line max-[1100px]:grid-cols-2 max-[700px]:grid-cols-1",children:m.map((e,N)=>n(k,{...e},N))})]})})}export{j as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t,jsxs as a}from"react/jsx-runtime";import{SiteLink as S}from"../lib/site-runtime.js";import T from"./EditorialSectionHead.js";import f from"./PartStyledText.js";import{withRMark as o}from"./RMark.js";import{renderGold as b,renderHeadline as $}from"./goldPhrases.js";const n={body:"text-[length:var(--size-body,13px)]",headingSmall:"text-[length:var(--size-headingSmall,20px)]",label:"text-[length:var(--size-label,13px)]"};function z({eyebrow:g,title:p,intro:
|
|
1
|
+
import{jsx as t,jsxs as a}from"react/jsx-runtime";import{SiteLink as S}from"../lib/site-runtime.js";import T from"./EditorialSectionHead.js";import f from"./PartStyledText.js";import{withRMark as o}from"./RMark.js";import{renderGold as b,renderHeadline as $}from"./goldPhrases.js";const n={body:"text-[length:var(--size-body,13px)]",headingSmall:"text-[length:var(--size-headingSmall,20px)]",label:"text-[length:var(--size-label,13px)]"};function z({eyebrow:g,title:p,intro:s,entries:u,cta:l,padTop:x,padBottom:d,background:h,editing:v,omitHead:m=!1}={}){const N=typeof x=="number"?x:120,y=typeof d=="number"?d:120,c=h??"var(--section-bg)",j=c!=="transparent",r=(u??[]).filter(e=>(e.date??"").trim()||(e.title??"").trim()||(e.blurb??"").trim());if(r.length===0&&!v)return null;const k=r.filter(e=>!e.future).length,w=r.length?k/r.length*100:0;return t("section",{className:"relative z-[2]",children:t("div",{className:"border-b border-line",style:{paddingTop:N,paddingBottom:y,...j?{backgroundColor:c}:{}},children:a("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",children:[m?null:t(T,{num:g,title:p?$(p):void 0,desc:s?b(s,!0):void 0,spaceBelow:"",className:"text-fg"}),a("div",{className:m?"relative mt-0 grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-0 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0":"relative mt-[60px] grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-9 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0",style:{"--cols":r.length},children:[t("div",{className:"pointer-events-none absolute inset-x-0 top-0 h-px bg-line max-[1100px]:hidden",children:t("div",{className:"absolute -top-px left-0 h-[3px] bg-gradient-to-r from-accent to-transparent",style:{width:`${w}%`}})}),r.map((e,i)=>a("div",{className:["relative flex min-h-[280px] flex-col gap-3.5 px-3.5","border-l",e.future?"border-line":"max-[1100px]:border-accent border-line",i===0?"min-[1101px]:border-l-0":"","max-[1100px]:min-h-0 max-[1100px]:border-t-0 max-[1100px]:py-6 max-[1100px]:pl-7 max-[1100px]:ml-1.5"].join(" "),children:[t("span",{className:["pointer-events-none absolute h-2.5 w-2.5 rounded-full border-2 border-bg",e.future?"border-line bg-surface-2":"bg-accent",i===0?"-top-[66px] left-[-1px]":"-top-[66px] left-[-5px]","max-[1100px]:left-[-5px] max-[1100px]:top-7"].join(" ")}),t("span",{className:[`font-mono ${n.label} tracking-[0.22em]`,e.future?"text-fg-dim":"text-accent"].join(" "),children:e.date?t(f,{value:e.date,children:o(e.date)}):""}),e.title&&t("h3",{className:`whitespace-pre-line font-heading3 ${n.headingSmall} font-medium uppercase leading-[1.1] tracking-[-0.02em] text-fg`,children:t(f,{value:e.title,children:o(e.title)})}),e.blurb&&t("p",{className:`mt-auto font-display ${n.body} leading-[1.55] text-fg-dim`,children:b(e.blurb,!0)})]},i))]}),l?.text&&t("div",{className:"mt-12 flex justify-end border-t border-line pt-8",children:a(S,{href:l.href,className:`group inline-flex items-center gap-3.5 border border-line px-6 py-4 font-mono ${n.label} uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent`,children:[o(l.text),t("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"→"})]})})]})})})}export{z as default};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { type SectionWidths, type WidthAnswer, type WidthMode } from "../../../../format/lib/content/section-width.js";
|
|
2
2
|
import type { BlockPass } from "../../../../format/lib/puck/passes/types.js";
|
|
3
|
-
export declare function drawsTwoWidthRows(key: string): boolean;
|
|
3
|
+
export declare function drawsTwoWidthRows(key: string, comp?: object): boolean;
|
|
4
4
|
export declare const SITE_CONTENT_VAR = "--sf-sw-site";
|
|
5
5
|
export declare const SECTION_CONTENT_VAR = "--sf-sw-content";
|
|
6
6
|
export declare const SECTION_BACKGROUND_VAR = "--sf-bg-cap";
|
|
7
7
|
export declare const SECTION_CONTENT_CLASS = "contents [--sf-site-width:var(--sf-sw-content)] max-[800px]:[--sf-site-width:var(--sf-sw-site)]";
|
|
8
8
|
export declare function contentOverride(w: SectionWidths, background: WidthAnswer | null): string | null;
|
|
9
|
+
export declare const SECTION_CONTENT_CAP_VAR = "--sf-content-cap";
|
|
10
|
+
export declare const SECTION_CONTENT_CAP_CLASS = "contents max-[800px]:[--sf-content-cap:none]";
|
|
9
11
|
export declare const sectionWidth: BlockPass;
|
|
10
12
|
export declare function widthModeFields<T extends Record<string, unknown>>(fields: T, w: {
|
|
11
13
|
mode: WidthMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as u}from"react/jsx-runtime";import{resolveContainerDirection as m}from"../../../../format/lib/content/container-direction.js";import{IMAGE_WIDTH as p}from"../../../../format/lib/content/image-width.js";import{HERO_BACKGROUND_VAR as A,HERO_CHROME_CAP_VAR as W,HERO_CHROME_INSET_VAR as b,SITE_WIDTH_CAP as h,centredCap as R,heroBackgroundTokens as B}from"../../../../format/lib/content/page-width.js";import{SECTION_WIDTH_FAMILY as I,resolveSectionWidth as g,resolveWidth as N,sectionHasWidthRows as y,siteWidthsOf as F}from"../../../../format/lib/content/section-width.js";import{isInsideSiteGutter as H}from"../../../../format/lib/content/site-gutter.js";import{SplitBandAndColumn as D}from"../../../components/SiteGutterFrame.js";import{parentCapsWidth as P}from"../../../../format/lib/sections/section-head-placement.js";import{addShowWhenFacts as E,withRowsShownWhen as O}from"../../../../format/lib/puck/show-when-attach.js";import{findParentNode as M,isNestedNode as G}from"../../../../format/lib/puck/passes/document-position.js";const k=new Set(["ProductGrid","RelatedProducts","DeliveryOptions","CheckoutCTA","Ticker","CategoryBar","DocTabs","CustomHTML","Spacer"]),L=new Set(["ProductHero"]),V=new Set(["Collections","Events","BrandStrip","CatalogFilterBar","AlloyWheelsListing","DeliveryOptions","CheckoutCTA","ProductHero","ProductGrid","DetailRows","FitmentTable","TyreSizes","TyreFitment","EuTyreLabel","BundleOffer","CompatibleTyres","RelatedProducts","FitmentFinder","SpecTable","Subscribe","SubscribeBlogs","ContactRouting","SubmitBuild"]);function S(t,n){return y(t)?!V.has(t)||n?.widthRows==="two":!1}const T="--sf-sw-site",j="--sf-sw-content",$="--sf-bg-cap",U="contents [--sf-site-width:var(--sf-sw-content)] max-[800px]:[--sf-site-width:var(--sf-sw-site)]";function C(t,n){const e=n==="content";return t.content==="full"?e?null:"100vw":t.content==="content"&&t.contentMax!==null?e?`min(${t.contentMax}px,var(${T}))`:`${t.contentMax}px`:null}function w(t,n){return n===null?t:u("div",{className:"contents",style:{[T]:h},children:u("div",{className:U,style:{[j]:n},children:t})})}const K="--sf-content-cap",Y="contents max-[800px]:[--sf-content-cap:none]";function z(t,n){if((t.content??"content")==="full")return null;const e=n==="content";return t.contentMax!==null?e?`min(${t.contentMax}px,var(${T}))`:`${t.contentMax}px`:e?null:`var(${T})`}function X(t,n){return n===null?t:u("div",{className:"contents",style:{[T]:h},children:u("div",{className:Y,style:{[K]:n},children:t})})}const _=(t,n)=>t==="content"?u("div",{style:R(h),children:n}):n;function q(t,n){const e=I[n],i=t.render;t.render=o=>{const s=F(o),l=g(n,o),r={...l,content:l.content??s.content};if(e==="hero"){const d=r.background??s.background,f=w(i(o),C(r,d));return d==="full"?u("div",{style:{[A]:"none",[b]:"initial",[W]:"initial"},children:f}):d==="content"?u("div",{style:B(!0),children:f}):f}const c=r.background??s.background??"full";if(e==="scrollOver"){const d=(r.content??"content")==="full",f=w(i({...o,fullWidth:d}),d?null:C(r,c));return c==="content"?u("div",{className:"contents",style:{[$]:h},children:f}):f}const a=r.content??"content";switch(e){case"both":return _(c,X(i(o),z(r,c)));case"contained":{if(a==="full")return _(c,i({...o,contained:!1}));const d=C(r,c);if(c==="content"&&d===null)return i({...o,contained:!0});const f=u(D,{children:i({...o,contained:!0})});return _(c,w(f,d))}case"contentColumn":case"contentFull":{const f={...o,widthMode:a==="full"?"full":"page",fullWidth:void 0,contained:void 0};return _(c,w(i(f),a==="full"?null:C(r,c)))}default:return _(c,w(i(o),C(r,c)))}}}const ht={name:"sectionWidth",applies:(t,n,e)=>(n.isSection(t)&&!k.has(t)||S(t,e))&&!!e&&typeof e.render=="function",panel(t,n,e){if(S(n,t)){const s=e.sectionWidthFields(n),l={...t.fields,...s};t.fields=I[n]==="contained"?v(n,t,l,Object.keys(s)):l;return}const i=e.widthField;t.fields={...t.fields,...i("full")};const o=t.resolveFields;t.resolveFields=(s,l)=>{const r=o?o(s,l):l.fields,c=N(s?.props??{},"full");return r&&typeof r.then=="function"?r.then(a=>x(a,c)):x(r,c)}},draw(t,n){if(S(n,t)){q(t,n);return}const e=L.has(n),i=t.render;t.render=o=>{const{mode:s}=N(o,"full"),l=i(o);if(s==="full")return l;const r=R(h);return e?u("div",{style:{"--sf-page-cap":h},children:l}):u("div",{style:r,children:l})}}};function x(t,n){if(!t||!("widthMode"in t))return t;const e={...t},i=e.widthMode;return i&&(e.widthMode={...i,currentValue:n.mode,inherited:n.inherited}),e}const J=new Set(["Heading","Text","ImageBlock","ButtonBlock","Banner","Stats","Logos","Divider","Flex","Grid","OrderSummary","DeliveryOptions","PaymentBadges","CheckoutCTA"]),pt={name:"containedWidth",applies:(t,n,e)=>J.has(t)&&!S(t,e)&&!!e&&typeof e.render=="function",panel(t,n,e){const i=e.widthField;t.fields=v(n,t,{...t.fields,...i("page")});const o=t.resolveFields;t.resolveFields=(s,l)=>{const r=o?o(s,l):l.fields,c=N(s?.props??{},"page"),a=d=>x(d,c);return r&&typeof r.then=="function"?r.then(a):a(r)}},draw(t){const n=t.render;t.render=e=>{const{mode:i}=N(e,"page");return n({...e,contained:i!=="full"})}}},Q={not:{context:"inHeroGroupRow",is:!0}},Tt={name:"buttonAlignInRow",applies:t=>t==="ButtonBlock",panel(t){const n=t;n.fields=O(n.fields??{},["align"],Q),E(n,{inHeroGroupRow:(e,i)=>{const o=M(i.appState,e.props?.id);return!!o&&o.type==="HeroGroup"&&m("HeroGroup",o.props?.direction)==="row"}})}};function Z(t){return Object.values(t).some(n=>!!n&&typeof n=="object"&&n.type==="slot")}const tt={any:[]},nt={not:{context:"insideSiteGutter",is:!0}},et={not:{context:"widthCappedByParent",is:!0}};function v(t,n,e,i=["widthMode","pageWidth"]){return t==="ButtonBlock"?O(e,["_gWidth",...i],tt):Z(e)?(E(n,{insideSiteGutter:(o,s)=>H(s.appState?.data?.content,o.props?.id)}),O(e,i,nt)):(E(n,{widthCappedByParent:(o,s)=>"parent"in s?P(s.parent):G({props:o.props??{}},s)}),O(e,i,et))}const Ct={name:"imageWidth",applies:t=>t==="ImageBlock",panel(t,n,e){const{slider:i,WidthIcon:o}=e;if(t?.fields){const s=i("Image width",u(o,{}),p.min,p.max,p.step,p.fallback,p.unit),l="focal",r=Object.entries(t.fields),c=r.findIndex(([a])=>a===l);t.fields=Object.fromEntries(c===-1?[...r,["width",s]]:[...r.slice(0,c+1),["width",s],...r.slice(c+1)])}}};export{$ as SECTION_BACKGROUND_VAR,Y as SECTION_CONTENT_CAP_CLASS,K as SECTION_CONTENT_CAP_VAR,U as SECTION_CONTENT_CLASS,j as SECTION_CONTENT_VAR,T as SITE_CONTENT_VAR,Tt as buttonAlignInRow,pt as containedWidth,C as contentOverride,S as drawsTwoWidthRows,Ct as imageWidth,ht as sectionWidth,x as widthModeFields};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "efficient-web-builder",
|
|
3
|
-
"version": "30.
|
|
3
|
+
"version": "30.1.0",
|
|
4
4
|
"description": "The EFFICIENT website builder: the website editor, the general sections and the renderer that draws them, compiled. Hostable by any EFFICIENT product; nothing here imports a host.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Efficient Pty Ltd",
|