efficient-web-builder 14.0.0 → 14.0.1
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 +21 -0
- package/dist/components/storefront-editor.css +38 -34
- package/dist/lib/puck/controls.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 14.0.1 - 2026-10-15
|
|
4
|
+
|
|
5
|
+
**The shell's fields in the settings panel look as the shell draws them** (card [MERGE] Settings Tabs Into Design And Animation, director GG; harness UI-24). A patch: one CSS rule is narrowed and two roll-backs go.
|
|
6
|
+
|
|
7
|
+
### Changed for merchants
|
|
8
|
+
|
|
9
|
+
- **Button ▸ Button**: the text box is the same size as its link line (12px type, 8px inset). It was 14px with an 11px inset, with a notch where the two halves meet.
|
|
10
|
+
- **The Link window's address box** (Custom URL) on every link row, the Button's window and FAQ ▸ Link included, and **Custom HTML ▸ HTML**: the shell's own size and inset, not the old 8px 11px box.
|
|
11
|
+
- A number box with a unit or arrows (the shell's `InputNumber`) no longer puts the number on top of "px" or its arrows.
|
|
12
|
+
- Nothing else moves: over all 54 general panels at 320px, 340 boxes, only these boxes changed.
|
|
13
|
+
|
|
14
|
+
### Changed for hosts
|
|
15
|
+
|
|
16
|
+
- `components/storefront-editor.css`: the old `.sf-insp-body input` / `textarea` rule (with its placeholder, textarea and `:focus` parts) skips any element with `rosh-focus-ring`, the class every efficient-shell field carries. Same specificity (`:where()`), so `aria-invalid` and `.sf-copybox` still win. A plain `<input>` or `<textarea>` keeps the old look.
|
|
17
|
+
- The `all: revert-layer` roll-backs under `.sf-slider`, `.sf-colour` and `.sf-corners` are gone, and the Corners row's `CornersInput` no longer carries the `sf-corners` class.
|
|
18
|
+
|
|
19
|
+
### Guards
|
|
20
|
+
|
|
21
|
+
- New `test-shell-fields-keep-their-look`: mounts the shell's `TextLinkField` (with its Link window open), the builder's `StorefrontLinkPicker`, `Textarea`, `Input`, `InputNumber`, `HexInput` and `CornersInput` in `.sf-insp-body`, and fails if any old selector matches one of their boxes (at rest, on focus or by placeholder). A plain field must still match, so the check cannot pass on a rule that went.
|
|
22
|
+
- `test-one-colour-control` §7 and `test-corners-and-grid-from-the-shell` §1 / §2 read the skip and the marker instead of the roll-backs.
|
|
23
|
+
|
|
3
24
|
## 14.0.0 - 2026-10-15
|
|
4
25
|
|
|
5
26
|
**The Button panel Lewis approved: one Button box, the button's own Width, Style, and ONE Icon row** (Lewis 2026-10-15, "the Button panel is OK now", Button panel v4c; card [MOVE] Every Panel Part Into The Shell). A major: the efficient-shell peer range narrows to `^7.36.0`.
|
|
@@ -944,11 +944,31 @@
|
|
|
944
944
|
}
|
|
945
945
|
}
|
|
946
946
|
|
|
947
|
-
/* Floating-styled form controls for Puck's native fields
|
|
948
|
-
|
|
949
|
-
.
|
|
950
|
-
|
|
951
|
-
|
|
947
|
+
/* Floating-styled form controls for Puck's native fields — and ONLY those.
|
|
948
|
+
|
|
949
|
+
⚠️ A FIELD THE SHELL DRAWS IS SKIPPED: `:not(:where(.rosh-focus-ring))` on
|
|
950
|
+
every selector of this rule, its placeholder, its textarea and its focus
|
|
951
|
+
(harness UI-24: a shell field looks as the shell draws it). This sheet is
|
|
952
|
+
unlayered, so without the skip it beats every shell utility whatever the
|
|
953
|
+
specificity: the Button's text box (`TextLinkField`) came out 14px with an
|
|
954
|
+
11px inset over a 12px / 8px link line, the Link window's address box and
|
|
955
|
+
Custom HTML's box (`Textarea`) wore this padding, and an `InputNumber` put
|
|
956
|
+
"px" on top of its number.
|
|
957
|
+
|
|
958
|
+
WHY THAT CLASS. efficient-shell has no attribute that says "a kit field".
|
|
959
|
+
`rosh-focus-ring` is the nearest documented thing: it is in `INPUT_BASE`
|
|
960
|
+
and `inputClasses` (efficient-shell src/forms/styles.ts, strings the shell
|
|
961
|
+
pins as contract), so every kit text field carries it, and the shell's
|
|
962
|
+
ui.css calls it "the marker", the class "where a selector can stop
|
|
963
|
+
matching". It is also on the kit's buttons and checkboxes, which this rule
|
|
964
|
+
never selected. `:where()` adds no specificity, so this rule weighs what it
|
|
965
|
+
weighed before and the `aria-invalid` and `.sf-copybox` overrides below
|
|
966
|
+
still win over it. `scripts/test-shell-fields-keep-their-look.tsx` mounts
|
|
967
|
+
the shell's fields and fails if any selector here matches one. */
|
|
968
|
+
.sf-insp-body input[type="text"]:not(:where(.rosh-focus-ring)),
|
|
969
|
+
.sf-insp-body input[type="number"]:not(:where(.rosh-focus-ring)),
|
|
970
|
+
.sf-insp-body input:not([type]):not(:where(.rosh-focus-ring)),
|
|
971
|
+
.sf-insp-body textarea:not(:where(.rosh-focus-ring)) {
|
|
952
972
|
width: 100%;
|
|
953
973
|
border: 1px solid var(--sf-input-border);
|
|
954
974
|
background: var(--sf-field-bg);
|
|
@@ -958,19 +978,19 @@
|
|
|
958
978
|
color: var(--sf-field-text);
|
|
959
979
|
font-family: var(--sf-font);
|
|
960
980
|
}
|
|
961
|
-
.sf-insp-body input::placeholder,
|
|
962
|
-
.sf-insp-body textarea::placeholder {
|
|
981
|
+
.sf-insp-body input:not(:where(.rosh-focus-ring))::placeholder,
|
|
982
|
+
.sf-insp-body textarea:not(:where(.rosh-focus-ring))::placeholder {
|
|
963
983
|
color: var(--sf-field-placeholder);
|
|
964
984
|
opacity: 1; /* Firefox dims placeholders by default; keep our grey exact */
|
|
965
985
|
}
|
|
966
|
-
.sf-insp-body textarea {
|
|
986
|
+
.sf-insp-body textarea:not(:where(.rosh-focus-ring)) {
|
|
967
987
|
min-height: 74px;
|
|
968
988
|
line-height: 1.45;
|
|
969
989
|
resize: vertical;
|
|
970
990
|
}
|
|
971
|
-
.sf-insp-body input[type="text"]:focus,
|
|
972
|
-
.sf-insp-body input:not([type]):focus,
|
|
973
|
-
.sf-insp-body textarea:focus {
|
|
991
|
+
.sf-insp-body input[type="text"]:not(:where(.rosh-focus-ring)):focus,
|
|
992
|
+
.sf-insp-body input:not([type]):not(:where(.rosh-focus-ring)):focus,
|
|
993
|
+
.sf-insp-body textarea:not(:where(.rosh-focus-ring)):focus {
|
|
974
994
|
outline: none;
|
|
975
995
|
border-color: var(--sf-accent);
|
|
976
996
|
box-shadow: 0 0 0 3px var(--sf-accent-ring);
|
|
@@ -2251,29 +2271,12 @@
|
|
|
2251
2271
|
white-space: nowrap;
|
|
2252
2272
|
}
|
|
2253
2273
|
|
|
2254
|
-
/* ⚠️ THE SHELL'S FIELDS MUST NOT WEAR THE INSPECTOR'S OLD INPUT RULE.
|
|
2255
|
-
`.sf-insp-body input[type="text"]` (0,2,1, below the shell in no layer) is
|
|
2256
|
-
`width: 100%`, `padding: 8px 11px`, `font-size: 13px` — the box Puck's native
|
|
2257
|
-
fields were given — and an unlayered rule beats every shell utility whatever
|
|
2258
|
-
its specificity. Inside the shell's own controls it is rolled back to the
|
|
2259
|
-
shell's layer, so the hex box and the slider's number look as the shell
|
|
2260
|
-
draws them everywhere else. */
|
|
2261
|
-
.sf-editor .sf-insp-body :is(.sf-slider, .sf-colour) input[type="text"],
|
|
2262
|
-
.sf-editor .sf-insp-body :is(.sf-slider, .sf-colour) input[type="text"]:focus,
|
|
2263
|
-
.sf-editor .sf-insp-body :is(.sf-slider, .sf-colour) input::placeholder {
|
|
2264
|
-
all: revert-layer;
|
|
2265
|
-
}
|
|
2266
|
-
/* The same roll-back for the Corners row's radius box (`.sf-corners`, the
|
|
2267
|
-
shell's CornersInput, plan W2): without it the old rule's padding put the
|
|
2268
|
-
number on top of "px". */
|
|
2269
|
-
.sf-editor .sf-insp-body .sf-corners input[type="text"],
|
|
2270
|
-
.sf-editor .sf-insp-body .sf-corners input[type="text"]:focus,
|
|
2271
|
-
.sf-editor .sf-insp-body .sf-corners input::placeholder {
|
|
2272
|
-
all: revert-layer;
|
|
2273
|
-
}
|
|
2274
2274
|
/* The colour a row FOLLOWS, shown in its box in grey (option E): the grey is
|
|
2275
|
-
what says the setting has no colour of its own.
|
|
2276
|
-
|
|
2275
|
+
what says the setting has no colour of its own. The hex box is the shell's
|
|
2276
|
+
`HexInput`, which the inspector's old input rule skips (the
|
|
2277
|
+
`:not(:where(.rosh-focus-ring))` near the top of this file), so it needs no
|
|
2278
|
+
roll-back of its own any more, and neither does the slider's number box or
|
|
2279
|
+
the Corners row's radius box. */
|
|
2277
2280
|
.sf-editor .sf-colour input.sf-colour-hex.is-inherited,
|
|
2278
2281
|
.sf-editor .sf-insp-body .sf-colour input[type="text"].sf-colour-hex.is-inherited {
|
|
2279
2282
|
color: var(--sf-muted);
|
|
@@ -3209,7 +3212,8 @@
|
|
|
3209
3212
|
}
|
|
3210
3213
|
/* The text list's × and "+ Add item" (card 22118) are efficient-easel's since
|
|
3211
3214
|
2026-10-06 and ring themselves (fields.css). Its row input keeps the shared
|
|
3212
|
-
`.sf-insp-body input[type="text"]:focus` cue every
|
|
3215
|
+
`.sf-insp-body input[type="text"]:focus` cue every plain (not the shell's)
|
|
3216
|
+
text input draws. */
|
|
3213
3217
|
|
|
3214
3218
|
/* Segmented */
|
|
3215
3219
|
.sf-seg2 {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as r,jsxs as L,Fragment as R}from"react/jsx-runtime";import{cloneElement as ae,useId as tt,useRef as Z,useState as se}from"react";import{useEasel as F,useSelectedFields as nt}from"efficient-easel/easel";import{say as l,editorEaselWords as S}from"../editor-words.js";import{readHidable as ce,hidableText as ue}from"./hidable.js";import{FOLD_FIELD_MARKER as U,LINK_FIELD_MARKER as de,MEDIA_FIELD_MARKER as pe,SCAFFOLD_FIELD_MARKER as fe,TEXT_FIELD_MARKER as y,foldMetaOf as X,textFieldIdentifier as ot}from"./field-markers.js";import rt from"../../components/ApplyCornersToSiblings.js";import{CARD_IMAGE_RADIUS_STEP as it,CORNER_RADIUS_MAX as me,CORNER_RADIUS_MIN as v}from"../content/card-image-shape.js";import{IMAGE_CORNER_STEP as lt,IMAGE_CORNERS_LABEL as at}from"../content/image-corners.js";import{GRID_MAX_COLUMNS as st}from"../content/grid-span.js";import{GALLERY_ACROSS_BUCKETS as ct,GALLERY_LAYOUTS as w,GALLERY_LAYOUT_KEYS as he}from"../content/gallery-layout.js";import{anchorSiblingsOf as ut,HERO_GROUP_PLACEMENTS as dt,HERO_GROUP_PLACEMENT_DEFAULT as pt,normalisePlacement as ft,placementPoints as ge}from"../hero-group-placement.js";import mt from"../../components/KeepHint.js";import{AdjustIcon as ht,AlignLeftIcon as gt,AlignSeparateIcon as bt,AnimationIcon as be,BackgroundIcon as xt,BlockSectionIcon as St,CartIcon as Ct,ColumnWidthsIcon as xe,ColumnsIcon as It,CornerIcon as _t,DirectionDownIcon as yt,DirectionLeftIcon as Et,DirectionRightIcon as Tt,DirectionUpIcon as Rt,DollarIcon as Ot,FinishIcon as Nt,GapIcon as Se,GridIcon as At,GroundIcon as Lt,HashIcon as Ce,HeightIcon as Ft,ImageIcon as vt,ListIcon as wt,LocationIcon as Q,PaddingBottomIcon as Ie,PaddingLeftIcon as _e,PaddingRightIcon as ye,PaddingTopIcon as Ee,PageIcon as Te,PhoneIcon as Pt,PlacementIcon as kt,ProductSizeIcon as Dt,RotateIcon as Bt,SquareIcon as Ht,TypeIcon as Gt,WidthIcon as Mt,WrapIcon as Wt}from"efficient-easel/icons";import{FieldGlyph as Re}from"../../components/FieldGlyph.js";import{resolvePageBackground as Kt}from"../content/page-background.js";import{CORNER_SIDES as Oe,CORNER_SIDE_POINTS as Ut,hasOwnSectionCorners as Xt,normalizeCornerSides as Ne}from"../content/section-corners.js";import{SECTION_MOTION_NONE as $t,SECTION_MOTION_OPTIONS as zt}from"../content/section-animation.js";import{enclosingSectionProps as Ae}from"./enclosing-section.js";import{SettingsDefaultReset as C,SettingsField as h,SettingsGroupHead as Vt,SettingsGroupSub as jt,SettingsSegmented as Yt,SettingsSwitch as qt}from"efficient-easel/panel";import{FieldSelect as Jt,ListField as Zt}from"efficient-easel/fields";import{AlignmentGrid as Qt,Checkbox as en,CornersInput as tn,DateTimePicker as nn,FOCAL_DEFAULT as Le,Slider as on,Tooltip as $}from"efficient-shell/ui";import{ColourControl as Fe}from"./ColourControl.js";import ve from"./MarkupToolbar.js";import{deviceField as O}from"./device-fields.js";import{NO_CONTROL_FIELD as rn,NoControlMark as ln,noControlField as we}from"./panel-no-control-mark.js";import{OWN_BOX_FIELD as an}from"./own-box.js";import{phoneKey as z,resolvePhoneValue as ee}from"./phone-override.js";import{SuppressibleText as sn}from"./section-text-suppress.js";import{CARD_INDEX_OPTIONS as cn,CARD_OUTLINE_OPTIONS as un,DEFAULT_CARD_INDEX_FORMAT as dn,DEFAULT_CARD_OUTLINE as pn}from"../sections/product-card-style.js";import{COVER_INDEX_OPTIONS as fn,DEFAULT_COVER_INDEX as mn}from"../sections/card-cover-index.js";import{SCALAR_TEXT_CONTROLS as hn}from"./text-control-kinds.js";import gn from"../../components/ImageFocusRow.js";import bn from"../../components/MediaUploadField.js";import xn from"../../components/MultiSelectField.js";import Sn from"../../components/SectionThemePicker.js";import Cn from"../../components/SearchSelectField.js";import In from"../../components/StorefrontLinkField.js";import Pe from"../../components/UiIcon.js";import{SECTION_PADDING as _}from"../content/section-padding.js";import{hasPhoneHeight as _n,resolveSectionMinHeight as yn}from"../content/section-min-height.js";import{SECTION_MIN_HEIGHT as En,SECTION_MIN_HEIGHT_GROUP_LABEL as G,SECTION_SCREEN_PCT as Tn}from"../content/section-min-height.js";import{CONTAINER_DIRECTION_LABEL as Rn,containerDirectionPoints as On,resolveContainerDirection as ke}from"../content/container-direction.js";import{BOX_ALIGN_POINTS as Nn,BOX_BLOCK_SPACING_LABEL as An,BOX_BLOCK_SPACING_POINTS as De,BOX_JUSTIFY_POINTS as Be,BOX_PHONE_ROW_LABEL as Ln,BOX_PHONE_ROW_MAX as Fn,BOX_PHONE_ROW_MIN as He,BOX_SHARE_LABEL as Ge,BOX_SHARE_POINTS as te,BOX_WRAP_LABEL as vn,BOX_WRAP_POINTS as Me}from"../content/box-layout.js";import{usePreviewHeader as V}from"../../components/PreviewHeaderContext.js";import{CONTAINER_GAP as ne,CONTAINER_GAP_BUILT_IN as wn,GAP_FIELD_CONTAINER as Pn,hasOwnContainerGap as kn,resolveContainerGap as Dn}from"../content/container-gap.js";import{CARD_IMAGE_BG_INHERIT as Bn,CARD_IMAGE_BG_OFF as Hn,CARD_IMAGE_BG_SWATCH_NAMES as Gn,CARD_IMAGE_BG_SWATCHES as Mn,isCardImageBackgroundInheriting as Wn,cardImageBackgroundChoice as Kn,THEME_CARD_IMAGE_BG as Un}from"../content/card-image-background.js";import{SECTION_BG_INHERIT as Xn,SECTION_BG_SWATCHES as $n,SECTION_BG_SWATCH_NAMES as zn,THEME_SECTION_BG as Vn,isSectionBackgroundInheriting as jn}from"../content/section-background.js";import{SECTION_THEME_GROUP_LABEL as Yn}from"../content/section-surface.js";import{TYPE_SIZE_FIXED as qn,TYPE_SIZE_INHERIT as Jn,isTypeSizeInheriting as Zn}from"../content/section-type-size.js";import{SECTION_WIDTH_CHOICES as Qn,WIDTH_CHOICE_LABEL as eo,WIDTH_INHERIT as to,resolveWidth as no,sectionRunsFullWidth as We}from"../content/section-width.js";import{useFoldHeadingLevel as Ke}from"./panel-heading-scope.js";import{withStyleKind as oo}from"efficient-easel/style-clipboard";function M(e){for(const[t,n]of Object.entries(e))n&&typeof n=="object"&&!X(n)&&oo(n,`section:${t}`);return e}function Qr({children:e}){return r("div",{className:"sf-field-label",children:typeof e=="string"?l(e):e})}function Ue(){return null}function ro(e){if(!e.trim())throw new Error("noGlyph() needs a reason naming the ruling that decided it.");return r(Ue,{},e)}function io(e){return e.type===Ue}function P(e){return io(e)?void 0:e}function k(e,t){return l("{value} from {from}",{value:e,from:t})}function lo(){const{appState:e}=F(i=>i),t=e.data.root?.props??{},{mode:n,pageWidth:o}=no(t,"full");return n==="page"?k(`${o}px`,l("the page")):n==="contained"?k(l("Contained"),l("the page")):k(l("Full"),l("the page"))}function ao(){const{blockGap:e}=V();return e===null?l("this container's own spacing"):k(`${e}px`,l("Site styles"))}function so({inherited:e,onReset:t,label:n}){return r(C,{words:S()?.panel,label:l(n),changed:!e,detail:ao(),onReset:t})}function co({inherited:e,onReset:t,label:n}){return r(C,{words:S()?.panel,label:l(n),changed:!e,detail:lo(),onReset:t})}function D({value:e,onChange:t,label:n,placeholder:o,hint:i,multiline:a,hideable:c=!0,markup:s=!0}){const{text:u,hidden:p}=ce(e),m=Z(null),d=Z(null),f=T=>t(c?{text:T,hidden:p}:T),g=()=>t({text:u,hidden:!p}),b=c&&p,E=tt(),x=i?ho(i)?r("span",{className:"sf-hint-keep sf-hint-while-typing",children:l(i)}):r(mt,{children:l(i)}):void 0,K=p?l("Show {label} on the slide",{label:l(n)}):l("Hide {label} on the slide",{label:l(n)});return r(h,{label:l(n),icon:r(Gt,{}),htmlFor:E,className:b?"is-hidden":void 0,hint:x,action:c?r($,{content:K,children:r("button",{type:"button",className:"sf-field-eye","aria-pressed":p,"aria-label":K,onClick:g,children:p?r(Pe,{name:"eye-off",size:14}):r(Pe,{name:"eye",size:14})})}):void 0,children:L("div",{className:"sf-copybox",children:[s&&r(ve,{target:a?d:m,value:u,onChange:f}),a?r("textarea",{id:E,ref:d,value:u,placeholder:o===void 0?void 0:l(o),onChange:T=>f(T.target.value)}):r("input",{id:E,ref:m,type:"text",value:u,placeholder:o===void 0?void 0:l(o),onChange:T=>f(T.target.value)})]})})}function ei(e,t){return{...e,[fe]:t}}function ti(e){const t=e[y];if(!t)throw new Error("withOffPage: the field holds no authored text");return{...e,[y]:{...t,offPage:!0}}}function ni(e){return!e||typeof e!="object"?!1:e[y]?.offPage===!0}function oi(e){const t=e[y];if(!t)throw new Error("withIdentifier: the field holds no authored text");return{...e,[y]:{...t,identifier:!0}}}import{TEXT_CONTROL_KINDS as pl,SCALAR_TEXT_CONTROLS as fl}from"./text-control-kinds.js";function ri(e,t){if(!e[y])throw new Error("inOwnBox: the field holds no authored text");const{[rn]:o,...i}=e;return{...i,[an]:!0,render:t}}const uo=new Set(hn),B=(e,t)=>{const n={...t,[y]:e};if(!uo.has(e.control))return n;const o=t.render;return{...we(n,"authored-copy"),render:i=>r(sn,{name:i.name,children:o(i)})}},ii="Everything else on this block comes from the linked post. Unlink it to edit by hand.",po="Select a word, then press the highlighter.",fo="A short name so a link can jump straight to this section, like yoursite.com/page#about.",mo=new Set([po]),ho=e=>mo.has(e);function li(e,t,n){return B({control:"text",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n})})}function ai(e,t,n){return B({control:"textarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0})})}function go(e,t,n){return B({control:"plainText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1,markup:!1})})}function si(e,t,n){return B({control:"copyText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1})})}function ci(e){return{type:"custom",[de]:{label:e},render:({value:t,onChange:n})=>r(In,{value:ue(t),onChange:n,label:e})}}function ui(e,t,n){return B({control:"plainTextarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0,hideable:!1})})}const di={Design:ht,Animation:be};function pi(e,t){return e.includes("Design")?t!=="Design":null}function bo({label:e}){return r(Vt,{title:l(e),level:Ke(1)})}function xo({level:e,label:t}){return e===1?r(bo,{label:t}):r(Io,{label:t})}function Xe(e,t){return{type:"custom",[U]:{label:e,level:t},render:()=>r(xo,{level:t,label:e})}}function I(e){return Xe(e,2)}function fi(e){return{type:"custom",render:()=>r(So,{text:e})}}function So({text:e}){return r("p",{className:"sf-note",children:l(e)})}function mi(e){return Xe(e,1)}function hi(e){return X(e)!==null&&e?.tabs!==void 0}const $e=new Map;function gi(e,t){const n=`${e}\0${t?t.join(""):""}`,o=$e.get(n)??{type:"custom",tabs:t,[U]:{label:e,level:1},bucket:e,marker:!0,render:()=>r(R,{})};return $e.set(n,o),o}function bi(e){return X(e)!==null&&e?.designGroup!==void 0}const ze=new Map;function xi(e){const t=ze.get(e)??{type:"custom",[U]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>r(R,{})};return ze.set(e,t),t}function Co(e){const t=e;return t?.marker===!0&&typeof t.fold=="string"?t.fold:null}function Si(e,t){return Co(e)===t?e:{...e,marker:!0,fold:t,render:()=>r(R,{})}}function Ci(e){const t=e;if(t.marker===!0&&t.fold===void 0)return e;const{fold:n,...o}=e;return{...o,marker:!0,render:()=>r(R,{})}}function Io({label:e}){return r(jt,{title:l(e),level:Ke(2)})}function Ve({swatches:e,current:t,onPick:n,names:o}){const i=e.find(s=>s.toLowerCase()===t.toLowerCase()),a=i?o?.[i]:void 0,c=a?l(a):t;return L("div",{className:"sf-swatches",children:[e.map(s=>{const u=o?.[s]?l(o[s]):s;return r($,{content:u,children:r("button",{type:"button","aria-pressed":t.toLowerCase()===s.toLowerCase(),className:`sf-swatch ${t.toLowerCase()===s.toLowerCase()?"is-active":""}`,style:{background:s},onClick:()=>n(s),"aria-label":u})},s)}),r("span",{className:"sf-swatch-hex",children:c})]})}function Ii(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=jn(n,t);return r(h,{label:l(e),icon:r(xt,{}),changed:!i,action:r(C,{words:S()?.panel,label:l(e),changed:!i,detail:l("the theme's section background"),onReset:()=>o(Xn)}),children:Ve({swatches:$n,current:i?Vn:n??t??"",onPick:o,names:zn})})}}}function _o(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=n,a=Wn(i,t);return r(h,{label:l(e),icon:r(Lt,{}),changed:!a,action:r(C,{words:S()?.panel,label:l(e),changed:!a,detail:l("the theme's image stage"),onReset:()=>o(Bn)}),children:Ve({swatches:Mn,current:a?Un:Kn(i,t),onPick:o,names:Gn})})}}}function _i(e=n=>n,t){return M({_gSectionTheme:I(Yn),sectionAccent:{type:"custom",render:({value:n,onChange:o})=>r(Sn,{value:e(n),onChange:o,followLabel:t})}})}function W({min:e,max:t,step:n,value:o,onChange:i,suffix:a="",readout:c=!0,notch:s,ariaLabel:u,disabled:p=!1}){const m=s!==void 0&&Number.isFinite(s)&&s>=e&&s<=t;return r("div",{className:m?"sf-slider has-notch":"sf-slider",style:m?{"--sf-notch":(s-e)/(t-e)}:void 0,children:r(on,{min:e,max:t,step:n,value:o,suffix:a||void 0,showInput:c,label:u===void 0?void 0:l(u),disabled:p,size:"sm",className:"sf-slider-track",onChange:d=>{d!==null&&d!==o&&i(d)}})})}function H(e,t,n,o,i,a,c="",s){return{type:"custom",render:u=>r(h,{label:l(e),icon:P(t),action:s?s("storedValue"in u?u.storedValue:u.value,u.onChange):void 0,children:W({min:n,max:o,step:i,value:typeof u.value=="number"?u.value:a,suffix:c,ariaLabel:e,onChange:u.onChange})})}}function je(e,t){const{min:n,max:o,step:i=1,unsetLabel:a,hint:c,restTrack:s,unsetMark:u,icon:p}=t;return{type:"custom",render:({value:m,onChange:d})=>{const f=typeof m=="number"?m:null,g=f===null;return r(h,{label:l(e),icon:p?P(p):void 0,value:g?u||a===void 0?void 0:l(a):`${f}px`,changed:!g,action:u?ae(u,{changed:!g,onReset:()=>d(null)}):r(C,{words:S()?.panel,label:l(e),changed:!g,onReset:()=>d(null)}),hint:typeof c=="string"?l(c):c,children:s?s({min:n,max:o,step:i,px:f,label:e,onChange:d}):W({min:n,max:o,step:i,value:f??n,readout:!1,ariaLabel:e,onChange:d})})}}}function yi(e){const t=H("Gap",r(Se,{}),ne.min,ne.max,ne.step,wn[e],"px",(n,o)=>r(so,{inherited:!kn(e,n),onReset:()=>o(void 0),label:"Gap"}));return{type:"custom",[Pn]:e,render:n=>t.render({...n,value:Dn(e,n.value,n.field?.siteGap),storedValue:n.value,onChange:o=>n.onChange(o)})}}const j="Corners";function oe(e){return{type:"custom",render:({value:t,onChange:n})=>{const o=typeof t=="number"&&Number.isFinite(t)?t:null,i=o!==null;return r(h,{label:l(j),icon:r(_t,{}),changed:i,action:ae(e.mark,{changed:i,onReset:()=>n(null)}),hint:e.hint,children:r(Eo,{tier:e,px:o,onRadius:n})})}}}function yo(e){let t=null;try{t=nt()}catch{t=null}return[t?.values?.[e],n=>t?.onChange(e,n)]}function Eo({tier:e,px:t,onRadius:n}){const o=e.useFollowed(),i=e.useClosedReason?e.useClosedReason():null,[a,c]=yo(e.sidesKey),s=Ne(a)??[...Oe];return r(tn,{className:"sf-corners",label:l(j),value:s,corners:Ut,onChange:u=>{const p=Ne(u)??[];c(p.length===Oe.length?null:p)},radius:t,onRadiusChange:n,radiusMin:v,radiusMax:me,radiusStep:e.step??1,radiusPlaceholder:String(o),disabled:i!==null,disabledReason:i??void 0})}function Ye(){return we({type:"custom",render:()=>r(ln,{})},"always")}function To({label:e,changed:t=!1,onReset:n=()=>{}}){const{cornerRadiusPx:o}=V(),i=typeof o=="number"?`${o}px`:l("not set");return r(C,{words:S()?.panel,label:l(e),changed:t,detail:o==null?l("the built-in corners"):k(i,l("Site styles")),onReset:n})}function Ro(){const{cornerRadiusPx:e}=V();return typeof e=="number"?e:v}function Oo(){return oe({sidesKey:"sectionCornerSides",useFollowed:Ro,useClosedReason:()=>Je()?l(qe):null,mark:r(To,{label:j}),hint:r(No,{})})}const qe="This section runs edge to edge, so its corners sit off the page. Set Width to Content width to use them.";function Je(){return We(Y())}function No(){return r(R,{children:Je()?qe:"Follows Site styles ▸ Basics ▸ Corners until you set a number here."})}function Ei(){return M({_gShape:I("Shape"),sectionCorners:Oo(),sectionCornerSides:Ye()})}function Ti(){return{_gMotion:I("Motion"),sectionAnimation:le("Entrance",r(be,{}),[...zt],$t)}}function re(){let e=null;try{const{appState:t,selectedItem:n}=F(i=>i),o=n?.props?.id?String(n.props.id):void 0;e=o?Ae(t?.data,o):null}catch{e=null}return e!==null&&We(e)}function Ze(e){const{cornerRadiusPx:t}=V(),n=re(),o=typeof t=="number"?t:e;let i=null;try{const{appState:c,selectedItem:s}=F(p=>p),u=s?.props?.id?String(s.props.id):void 0;i=u?Ae(c?.data,u):null}catch{i=null}if(n||!i)return o;const a=i.sectionCorners;return Xt(a)?a:o}function Ao({label:e,changed:t=!1,onReset:n=()=>{}}){const o=re(),i=Ze(v),a=o?"Site":"Section";return r(C,{words:S()?.panel,label:l(e),changed:t,detail:k(`${i}px`,o?l("Site styles"):l("the section")),onReset:n})}function Lo(){return r(R,{children:re()?l("The section is full width, so this card follows Site styles ▸ Basics ▸ Corners."):l("Follows the section's Corners until you set a number here.")})}function Fo(){return oe({sidesKey:"cardCornerSides",useFollowed:()=>Ze(v),mark:r(Ao,{label:j}),hint:r(Lo,{})})}function vo(){return{type:"custom",render:()=>r(rt,{})}}function Ri(){return{_gShape:I("Shape"),cardCorners:Fo(),cardCornerSides:Ye(),cardCornersApplyAll:vo()}}function Oi(){return N("Justify",r(bt,{}),Be,Be[0].value)}function Ni(){return N("Item alignment",r(gt,{}),Nn,"stretch")}function Ai(){return N(vn,r(Wt,{}),Me,Me[0].value)}function Li(){return{type:"custom",render:({value:e,onChange:t})=>{const n=te.find(o=>o.value===e)??te[0];return r(h,{label:l(Ge),icon:r(xe,{}),value:l(n.label),children:r("div",{className:"sf-gallery-layouts",role:"group","aria-label":l(Ge),children:te.map(o=>r($,{content:l(o.label),className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":n.value===o.value,"aria-label":l(o.label),onClick:()=>t(o.value),children:r("span",{className:"sf-gallery-pic",children:wo(o.weights).map((i,a)=>r("i",{style:{gridColumn:`span ${i}`}},a))})})},o.value))})})}}}function wo(e){if(!e)return[3,4];const t=e.reduce((n,o)=>n+o,0);return e.map(n=>Math.round(n/t*12))}function Fi(){return N(An,r(Se,{}),De,De[0].value)}function vi(){return H(Ln,r(Pt,{}),He,Fn,1,He)}function wi(e){const t=le(Rn,ro("`Direction` names how a container's children run — a MODIFIER, not a thing. doc/naming.md N10.1 gives the idea a dash in its Glyph column; editor-shell's own `direction` meaning says the bare row is CORRECT and not an omission (SS seat, 2026-09-11)."),On(e),ke(e,void 0));return{type:"custom",render:n=>t.render({...n,value:ke(e,n.value),onChange:o=>n.onChange(o)})}}function Pi(e,t,n,o,i,a){return{type:"custom",render:({value:c,onChange:s})=>r(h,{label:l(e),icon:r(Re,{noun:a}),action:r(C,{words:S()?.panel,label:l(e),changed:!Zn(c),detail:l("the Text style in Site styles"),onReset:()=>s(Jn),defaultAction:{onPress:()=>s(qn),title:l("Keep this section's own built-in size"),icon:r(St,{})}}),children:W({min:t,max:n,step:o,value:typeof c=="number"?c:i,suffix:"px",ariaLabel:e,onChange:s})})}}function ki(){return{_gCellWidth:I("Cell width"),gridSpan:N("Positions",r(xe,{}),[{label:"Auto",value:""},...Array.from({length:st},(e,t)=>({label:t===0?"1 position":`${t+1} positions`,value:String(t+1)}))],"")}}function Y(){let e=null;try{e=F(t=>t).selectedItem}catch{e=null}return e?.props??{}}function Po({min:e,max:t,step:n,px:o,label:i,onChange:a,desktopKey:c,fallback:s}){const u=Y()[c],p=ee(void 0,u,s);return r(R,{children:W({min:e,max:t,step:n,value:ee(o,u,s),readout:!1,ariaLabel:i,notch:p,onChange:a})})}function ko({label:e,desktopKey:t,fallback:n,changed:o=!1,onReset:i=()=>{}}){const a=Y()[t],c=ee(void 0,a,n);return r(C,{words:S()?.panel,label:l(e),changed:o,detail:l("{value} on desktop",{value:`${c}px`}),onReset:i})}function Do(e){return je(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unsetLabel:"Follows Desktop",unsetMark:r(ko,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback}),restTrack:t=>r(Po,{...t,desktopKey:e.desktopKey,fallback:e.fallback})})}const Bo={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},Ho={Top:Ee,Bottom:Ie,Left:_e,Right:ye},Go=e=>{const t=Ho[e];return r(t,{})};function Di(e={}){const t=e.keys?.top??"sectionPaddingTop",n=e.keys?.bottom??"sectionPaddingBottom",o=e.group!==!1,i=x=>Bo[x],a=x=>H(i("Top"),r(Ee,{}),_.min,_.max,_.step,x,"px"),c=(x,K,T,J=_)=>O("mobile",Do({label:i(x),icon:Go(x),desktopKey:K,min:J.min,max:J.max,step:J.step,fallback:T})),s=e.top??_.min,u=e.bottom??_.min,p="sectionPaddingLeft",m="sectionPaddingRight",d=e.sideBounds??_,f=e.side??d.min,g=e.sidePhone??f,b=e.phone===!0,E=x=>b?O("desktop",x):x;return M({...o?{_gSpacing:I("Padding")}:{},[t]:E(a(s)),...b?{[z(t)]:c("Top",t,s)}:{},...e.only==="top"?{}:{[n]:E(H(i("Bottom"),r(Ie,{}),_.min,_.max,_.step,u,"px")),...b?{[z(n)]:c("Bottom",n,u)}:{}},...e.sides?{[p]:E(H(i("Left"),r(_e,{}),d.min,d.max,d.step,f,"px")),...b?{[z(p)]:c("Left",p,g,d)}:{},[m]:E(H(i("Right"),r(ye,{}),d.min,d.max,d.step,f,"px")),...b?{[z(m)]:c("Right",m,g,d)}:{}}:{}})}const Mo={contained:"Contained",page:"Page",full:"Full"},q="Width";function Bi(e,t=Qn,n=!0){const o=t.map(i=>({label:eo[i]??Mo[i],value:i}));return M({...n?{_gWidth:I(q)}:{},widthMode:{type:"custom",render:({onChange:i,field:a})=>r(h,{label:l(q),icon:r(Mt,{}),action:n?r(co,{inherited:a?.inherited??!1,onReset:()=>i(to),label:q}):void 0,children:ie({options:o,value:a?.currentValue||e,onChange:i,ariaLabel:q})})}})}function Hi(){const e=o=>({type:"custom",render:({value:i,onChange:a})=>r(h,{label:G,icon:P(r(Ft,{})),action:o?o(a):void 0,children:ie({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(i)?i:"auto",onChange:a,ariaLabel:G})})}),t=()=>({type:"custom",render:({value:o,onChange:i,field:a})=>{const c=a?.unit==="%"?"%":"px",s=c==="%"?Tn:En;return r("div",{className:"sf-field",children:W({min:s.min,max:s.max,step:s.step,value:typeof o=="number"?o:s.fallback,suffix:c,ariaLabel:G,onChange:i})})}}),n=()=>le("Unit",r(Ce,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return M({_gHeight:I(G),sectionHeightMode:O("desktop",e()),sectionHeightValue:O("desktop",t()),sectionHeightUnit:O("desktop",n()),sectionHeightModePhone:O("mobile",e(o=>r(Wo,{onClear:()=>o(void 0)}))),sectionHeightValuePhone:O("mobile",t()),sectionHeightUnitPhone:O("mobile",n())})}function Wo({onClear:e}){const t=Y(),n=_n(t),o=yn(t),i=l("{value} on desktop",{value:o.mode==="auto"?l("Auto"):`${o.value}${o.unit}`});return r(C,{words:S()?.panel,label:l(G),changed:n,detail:i,onReset:e})}function Gi(){return{_gAnchor:I("Anchor"),anchor:go("Anchor name","e.g. about",fo)}}function Mi(e,t,n){return{type:"custom",render:({value:o,onChange:i,id:a,name:c})=>{const s=`${a??c??e}-datetime`,u=Date.parse(typeof o=="string"?o:"");return r(h,{label:l(e),icon:t,htmlFor:s,hint:n===void 0?void 0:l(n),children:r(nn,{id:s,value:Number.isFinite(u)?new Date(u):null,onChange:p=>i(p?p.toISOString():"")})})}}}function A(e,t,n){return{type:"custom",render:({value:o,onChange:i,id:a,name:c})=>{const s=typeof o=="boolean"?o:t,u=`${a??c??e}-label`;return r(h,{label:l(e),labelId:u,icon:n,action:r(qt,{checked:s,onChange:i,ariaLabelledBy:u})})}}}function Wi(){return{type:"custom",render:({value:e,onChange:t,id:n,name:o})=>{const i=`${String(n??o??"pageBackground")}-colour`;return r(h,{label:l("Background"),icon:r(Te,{}),htmlFor:i,action:r(Fe,{id:i,label:"Background",value:Kt(e),onChange:t})})}}}function Ki(e,t){return{type:"custom",render:({value:n,onChange:o,id:i})=>{const a=typeof n=="boolean"?n:t,c=`${i??e}-checkbox`;return r(h,{label:l(e),htmlFor:c,className:"sf-checkbox",action:r(en,{id:c,checked:a,onChange:o})})}}}function Ui(e,t){return{type:"custom",render:({value:n,onChange:o})=>r(h,{label:l(e),action:Fe({value:n||t,onChange:o,label:e})})}}const Ko=[{value:"0% 0%",label:"Top left"},{value:"50% 0%",label:"Top"},{value:"100% 0%",label:"Top right"},{value:"0% 50%",label:"Left"},{value:"50% 50%",label:"Center"},{value:"100% 50%",label:"Right"},{value:"0% 100%",label:"Bottom left"},{value:"50% 100%",label:"Bottom"},{value:"100% 100%",label:"Bottom right"}];function Qe({label:e,value:t,onChange:n,points:o=Ko}){const i=o.map(a=>({...a,label:l(a.label),...a.title?{title:l(a.title)}:null}));return r(Qt,{label:l(e),value:t,points:i,onChange:n})}function Xi(e,t=Le,n="mediaImage"){return{type:"custom",render:({value:o,onChange:i})=>r("div",{className:"sf-focal-row",children:r(Uo,{label:e,value:o||t,onChange:i,imageProp:n})})}}function Uo({label:e,value:t,onChange:n,imageProp:o}){const{selectedItem:i}=F(c=>c),a=i?.props?.[o];return r(gn,{label:e,value:t,onChange:n,image:typeof a=="string"?a:void 0})}const Xo=ge([]);function $i(e,{stacking:t,fallback:n=pt}){return{type:"custom",render:({value:o,onChange:i})=>{const a=dt.includes(o)?o:n;return t?r($o,{label:e,value:a,onChange:i}):et({label:e,value:a,onChange:i,points:Xo})}}}function $o({label:e,value:t,onChange:n}){const{appState:o,selectedItem:i}=F(s=>s),a=i?.props?.id?String(i.props.id):void 0,c=a?ut(o?.data,a):[];return et({label:e,value:t,onChange:n,points:ge(c,a)})}function et({label:e,value:t,onChange:n,points:o}){const i=o.find(a=>a.disabled);return r(h,{label:l(e),icon:r(kt,{}),hint:i?.title?l(i.title):void 0,children:Qe({label:e,value:ft(t),onChange:n,points:o})})}const zi={top:r(Rt,{}),right:r(Tt,{}),bottom:r(yt,{}),left:r(Et,{})};function Vi(e,t,n,o,i,a){const c=m=>t.find(d=>d.value===m),s=m=>({value:m,label:"",disabled:!0,title:o}),u=m=>{const d=t.find(g=>g.cell===m);if(!d)return s(`missing-${m}`);const f=a?.[m];return f?{value:d.value,label:d.label,icon:f}:{value:d.value,label:d.label}},p=[s("corner-top-left"),u("top"),s("corner-top-right"),u("left"),s("centre"),u("right"),s("corner-bottom-left"),u("bottom"),s("corner-bottom-right")];return{type:"custom",render:({value:m,onChange:d})=>{const f=t.some(g=>g.value===m)?m:n;return r(h,{label:l(e),icon:i,value:c(f)?.label?l(c(f).label):"",children:Qe({label:e,value:f,onChange:d,points:p})})}}}const zo="\0note";function N(e,t,n,o,i){return{type:"custom",options:n,fallback:o,...i?{note:i}:{},render:({value:a,onChange:c,field:s})=>{const u=s.options??n,p=s.fallback??o,m=u.some(d=>d.value===a)?a:p;return r(h,{label:l(e),icon:P(t),children:r(Jt,{value:m,ariaLabel:l(e),onChange:c,options:[...i?[{label:l(i),value:zo,disabled:!0}]:[],...u.map(d=>({label:l(d.label),value:d.value}))]})})}}}function ji(e,t,n){return{type:"custom",options:t,render:({value:o,onChange:i,field:a})=>r(xn,{label:e,options:(a.options??t).map(c=>({...c,label:l(c.label)})),value:Array.isArray(o)?o:[],onChange:i,...n?{emptyLabel:l(n)}:{}})}}function Yi(e,t,n,o){return{type:"custom",options:t,fallback:n,render:({value:i,onChange:a,field:c})=>r(Cn,{label:e,options:(c.options??t).map(s=>({...s,label:l(s.label)})),fallback:c.fallback??n,value:i,onChange:a,placeholder:o===void 0?void 0:l(o)})}}function qi(e,t={}){return{type:"custom",render:({value:n,onChange:o})=>{const i={value:n,onChange:o,...t};return r(e,{...i})}}}function ie({options:e,value:t,onChange:n,ariaLabel:o,disabled:i=!1}){return r(Yt,{options:e.map(a=>a.picture?{id:a.value,label:a.picture,title:l(a.title??a.label)}:{id:a.value,label:l(a.label),title:a.title===void 0?void 0:l(a.title)}),value:t,onChange:n,ariaLabel:l(o),disabled:i})}const Ji=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function le(e,t,n,o){const i=n.map(a=>typeof a=="string"?{label:a,value:a}:a);return{type:"custom",render:({value:a,onChange:c,field:s})=>r(h,{label:l(e),icon:P(t),children:ie({options:i,value:i.some(u=>u.value===a)?a:a||s?.currentValue||o,onChange:c,ariaLabel:e})})}}function Zi(e,t,n){return{type:"custom",[pe]:!0,render:({value:o,onChange:i})=>r(bn,{value:o||"",onChange:i,label:e,accept:t,placeholder:n})}}const Qi={HeroSingle:["imageFocal"],ContactLocations:["locations[].photo"],ProcessSteps:["steps[].image"]};function el({value:e,onChange:t,label:n}){const o=e||{},i=!!o.pending,a=i?"var(--fg-dim, #888)":o.ok?"#1d9e75":"#d85a30",c=(s,u)=>t({...o,[s]:u===""?void 0:Number(u)});return L(h,{label:l(n),icon:r(Q,{}),children:[r("button",{type:"button",disabled:i,onClick:()=>t({...o,pending:!0,ok:!1,status:"Finding…"}),style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"8px 10px",fontSize:13,cursor:i?"default":"pointer",opacity:i?.6:1,border:"1px solid var(--border-strong, #ccc)",borderRadius:6,background:"transparent",color:"inherit"},children:i?l("Finding…"):l("Find coordinates")}),o.status&&r("div",{style:{marginTop:6,fontSize:12,lineHeight:1.4,color:a},children:l(o.status)}),r("div",{style:{marginTop:6,fontSize:11,color:"var(--fg-dim, #999)"},children:l("Coordinates from OpenStreetMap")}),r("button",{type:"button",onClick:()=>t({...o,manual:!o.manual}),style:{marginTop:8,padding:0,border:"none",background:"none",font:"inherit",fontSize:12,color:"var(--sf-accent, #2563eb)",cursor:"pointer",textDecoration:"underline"},children:o.manual?l("Hide manual coordinates"):l("Enter coordinates manually")}),o.manual&&L("div",{style:{marginTop:8,display:"grid",gap:8},children:[r(h,{label:l("Latitude"),icon:r(Q,{}),children:r("input",{type:"number",step:"any",placeholder:l("e.g. {example}",{example:"34.0990198"}),value:typeof o.lat=="number"?o.lat:"",onChange:s=>c("lat",s.target.value)})}),r(h,{label:l("Longitude"),icon:r(Q,{}),children:r("input",{type:"number",step:"any",placeholder:l("e.g. {example}",{example:"-117.9842833"}),value:typeof o.lng=="number"?o.lng:"",onChange:s=>c("lng",s.target.value)})})]})]})}function Vo(e,t){return t===null||t<0||t>=e.length?"":e[t]?.text??""}function jo(e,t,n){const o=e.map(i=>({text:i?.text??""}));return t===null||t<0||t>=e.length?o:o.map((i,a)=>a===t?{text:n}:i)}function tl(e,t){return e===null?null:t>e?e:null}function Yo(e,t,n){if(n===null||n>=t.length)return null;for(let o=0;o<n;o+=1)if(e[o]!==t[o])return null;return e[n]!==t[n]&&t.includes(e[n])||e[n]!==t[n]&&t.length!==e.length?null:n}const nl={label:"Ticker items",icon:r(wt,{})};function ol(e,t,n,o){return{type:"custom",[y]:{control:"textList",label:e,placeholder:n,itemKey:"text",rendering:o},render:({value:i,onChange:a})=>r(qo,{label:e,icon:P(t),items:Array.isArray(i)?i:[],placeholder:n,onChange:a,markup:o==="markup"})}}function qo({label:e,icon:t,items:n,placeholder:o,onChange:i,markup:a=!1}){const c=Z(null),[s,u]=se(null),p=d=>d.map(f=>({text:f?.text??""})),m=d=>{const f=Yo(n,d,s);f===null&&(c.current=null),u(f),i(p(d))};return r(Zt,{label:l(e),icon:t,noun:l("item"),items:n,onChange:m,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:a?r(ve,{target:c,value:Vo(n,s),onChange:d=>i(jo(n,s??-1,d)),disabled:s===null,label:s===null?l("Formatting — click a row first"):l("Formatting — row {n}",{n:s+1})}):void 0,renderRow:(d,f,g)=>r("input",{type:"text",className:a&&s===f?"sf-list-marking":void 0,value:d?.text??"",placeholder:l(o),"aria-label":l("{label} {n}",{label:l(e),n:f+1}),onChange:b=>g({text:b.target.value}),onFocus:b=>{c.current=b.currentTarget,u(f)}})})}function rl(e,t){const n=`${e.label} — row ${t+1}`;return B({control:"plainText",label:n,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:l("{label} — row {n}",{label:l(e.label),n:t+1}),placeholder:e.placeholder,hideable:!1,markup:e.rendering==="markup"})})}function il(e){return{_gCards:I("Cards"),coverIndex:N("Cover image",r(vt,{}),fn,String(mn),e?.coverHint??"A card's opening picture — a card pinned to a finish keeps its own."),imageBackground:_o("Image background",Hn),cardImage:Jo(),spinOnHover:A("Rotate on hover",e?.spinDefault??!0,r(Bt,{}))}}function ll(){return{outline:N("Card outline",r(Ht,{}),un,pn),indexBadge:N("Card number",r(Ce,{}),cn,dn),showBadge:A("Product badge",!0,r(Re,{noun:"tag"}))}}function al(e){const t=e?.bottomDefault??!0;return{_gShowOnCard:I("Show on a card"),showCardPrice:A("Price",!0,r(Ot,{})),showCardFinishes:A("Finish swatches",!0,r(Nt,{})),showCardSizes:A("Sizes",t,r(Dt,{})),showCardBuy:A("Buy button",t,r(Ct,{})),showCardPage:A("Page button",t,r(Te,{}))}}function Jo(){return je("Card image",{min:v,max:me,step:it,hint:"Rounds the picture. The card's own corner is in Site styles."})}function sl(){return oe({sidesKey:"cornerSides",step:lt,useFollowed:()=>v,mark:r(Zo,{label:at}),hint:l("Rounds the picture. Left alone it stays square.")})}function Zo({label:e,changed:t=!1,onReset:n=()=>{}}){return r(C,{words:S()?.panel,label:l(e),changed:t,onReset:n})}function cl(){return{type:"custom",render:({value:e,onChange:t})=>r(Qo,{value:typeof e=="string"?e:"",onChange:t})}}function Qo({value:e,onChange:t}){const[n,o]=se(null),i=he.filter(c=>n===null||w[c].across===n),a=e&&e in w?w[e]:null;return L(R,{children:[r(h,{label:l("Photos in a row"),icon:r(It,{}),children:L("div",{className:"sf-gallery-filter",children:[r("button",{type:"button","aria-pressed":n===null,onClick:()=>o(null),children:l("All")}),ct.map(c=>r("button",{type:"button","aria-pressed":n===c,onClick:()=>o(c),children:c},c))]})}),r(h,{label:l("Layout"),icon:r(At,{}),value:a?l(a.label):l("Not chosen"),hint:l("{n} of {total} layouts",{n:i.length,total:he.length}),children:r("div",{className:"sf-gallery-layouts",children:i.map(c=>r($,{content:l(w[c].label),className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":e===c,"aria-label":l(w[c].label),onClick:()=>t(e===c?"":c),children:r("span",{className:"sf-gallery-pic",children:w[c].desktop.map(([s,u],p)=>r("i",{style:{gridColumn:`span ${s}`,gridRow:`span ${u}`}},p))})})},c))})})]})}export{fo as ANCHOR_HINT,ii as BOUND_TO_POST_NOTE,di as BUCKET_ICONS,Qi as CUSTOM_FIELD_MEDIA,el as CoordsField,zi as EDGE_ARROWS,Le as FOCAL_DEFAULT,Ko as FOCAL_POINTS,U as FOLD_FIELD_MARKER,Qe as FocalPicker,Io as GroupLabel,po as HIGHLIGHT_HINT,D as HidableTextField,de as LINK_FIELD_MARKER,Qr as Label,pe as MEDIA_FIELD_MARKER,Ji as MEDIA_TYPE_OPTIONS,So as PanelNoteLine,et as PlacementGridView,fe as SCAFFOLD_FIELD_MARKER,fl as SCALAR_TEXT_CONTROLS,qe as SECTION_BLEEDS_HINT,bo as SectionHeading,ie as Segmented,so as SiteGapDefaultReset,W as Slider,Ve as Swatches,pl as TEXT_CONTROL_KINDS,y as TEXT_FIELD_MARKER,nl as TICKER_ITEMS_ROW,qo as TextListField,co as WidthDefaultReset,Yo as aimAfterListChange,Gi as anchorFields,k as backTo,Ii as backgroundField,Ni as boxAlignField,Fi as boxBlockSpacingField,Oi as boxJustifyField,vi as boxPhoneRowField,Li as boxShareField,Ai as boxWrapField,gi as bucketHeader,Fo as cardCornersField,_o as cardImageBackgroundField,Jo as cardImageField,il as cardMediaFields,Ri as cardShapeFields,al as cardShowFields,ll as cardStyleFields,ki as cellWidthFields,Ki as checkbox,Ui as colorInput,si as copyText,Ye as cornerSidesField,oe as cornersRowField,Mi as dateTime,xi as designGroupHeader,wi as directionField,Vi as edgePad,pi as entriesHiddenForTab,Xi as focalPicker,tl as focusAfterRemove,Si as foldMarker,X as foldMetaOf,Co as foldTitleOf,cl as galleryLayoutField,yi as gapField,I as group,Hi as heightFields,ue as hidableText,ho as hintIsWhileTyping,P as iconOf,sl as imageCornersField,ri as inOwnBox,hi as isBucketHeader,bi as isDesignGroupHeader,io as isNoGlyph,ci as linkField,ji as multiSelect,ro as noGlyph,Wi as pageBackgroundField,fi as panelNote,Do as phoneOverrideField,$i as placementField,go as plainText,ui as plainTextarea,je as pxField,Ci as quietMarker,ce as readHidable,Vo as rowText,Yi as searchSelect,mi as section,Ti as sectionAnimationFields,Oo as sectionCornersField,Ei as sectionShapeFields,_i as sectionThemeFields,le as segmented,N as select,jo as setRowText,Pi as sizeField,H as slider,qi as sourceField,Di as spacingFields,li as text,ot as textFieldIdentifier,ni as textFieldOffPage,ol as textList,rl as textListRowField,ai as textarea,A as toggle,Zi as upload,lo as usePageWidthDetail,ao as useSiteGapDetail,Bi as widthField,oi as withIdentifier,ti as withOffPage,ei as withScaffold};
|
|
1
|
+
"use client";import{jsx as r,jsxs as L,Fragment as R}from"react/jsx-runtime";import{cloneElement as ae,useId as tt,useRef as Z,useState as se}from"react";import{useEasel as F,useSelectedFields as nt}from"efficient-easel/easel";import{say as l,editorEaselWords as S}from"../editor-words.js";import{readHidable as ce,hidableText as ue}from"./hidable.js";import{FOLD_FIELD_MARKER as U,LINK_FIELD_MARKER as de,MEDIA_FIELD_MARKER as pe,SCAFFOLD_FIELD_MARKER as fe,TEXT_FIELD_MARKER as y,foldMetaOf as X,textFieldIdentifier as ot}from"./field-markers.js";import rt from"../../components/ApplyCornersToSiblings.js";import{CARD_IMAGE_RADIUS_STEP as it,CORNER_RADIUS_MAX as me,CORNER_RADIUS_MIN as v}from"../content/card-image-shape.js";import{IMAGE_CORNER_STEP as lt,IMAGE_CORNERS_LABEL as at}from"../content/image-corners.js";import{GRID_MAX_COLUMNS as st}from"../content/grid-span.js";import{GALLERY_ACROSS_BUCKETS as ct,GALLERY_LAYOUTS as w,GALLERY_LAYOUT_KEYS as he}from"../content/gallery-layout.js";import{anchorSiblingsOf as ut,HERO_GROUP_PLACEMENTS as dt,HERO_GROUP_PLACEMENT_DEFAULT as pt,normalisePlacement as ft,placementPoints as ge}from"../hero-group-placement.js";import mt from"../../components/KeepHint.js";import{AdjustIcon as ht,AlignLeftIcon as gt,AlignSeparateIcon as bt,AnimationIcon as be,BackgroundIcon as xt,BlockSectionIcon as St,CartIcon as Ct,ColumnWidthsIcon as xe,ColumnsIcon as It,CornerIcon as _t,DirectionDownIcon as yt,DirectionLeftIcon as Et,DirectionRightIcon as Tt,DirectionUpIcon as Rt,DollarIcon as Ot,FinishIcon as Nt,GapIcon as Se,GridIcon as At,GroundIcon as Lt,HashIcon as Ce,HeightIcon as Ft,ImageIcon as vt,ListIcon as wt,LocationIcon as Q,PaddingBottomIcon as Ie,PaddingLeftIcon as _e,PaddingRightIcon as ye,PaddingTopIcon as Ee,PageIcon as Te,PhoneIcon as Pt,PlacementIcon as kt,ProductSizeIcon as Dt,RotateIcon as Bt,SquareIcon as Ht,TypeIcon as Gt,WidthIcon as Mt,WrapIcon as Wt}from"efficient-easel/icons";import{FieldGlyph as Re}from"../../components/FieldGlyph.js";import{resolvePageBackground as Kt}from"../content/page-background.js";import{CORNER_SIDES as Oe,CORNER_SIDE_POINTS as Ut,hasOwnSectionCorners as Xt,normalizeCornerSides as Ne}from"../content/section-corners.js";import{SECTION_MOTION_NONE as $t,SECTION_MOTION_OPTIONS as zt}from"../content/section-animation.js";import{enclosingSectionProps as Ae}from"./enclosing-section.js";import{SettingsDefaultReset as C,SettingsField as h,SettingsGroupHead as Vt,SettingsGroupSub as jt,SettingsSegmented as Yt,SettingsSwitch as qt}from"efficient-easel/panel";import{FieldSelect as Jt,ListField as Zt}from"efficient-easel/fields";import{AlignmentGrid as Qt,Checkbox as en,CornersInput as tn,DateTimePicker as nn,FOCAL_DEFAULT as Le,Slider as on,Tooltip as $}from"efficient-shell/ui";import{ColourControl as Fe}from"./ColourControl.js";import ve from"./MarkupToolbar.js";import{deviceField as O}from"./device-fields.js";import{NO_CONTROL_FIELD as rn,NoControlMark as ln,noControlField as we}from"./panel-no-control-mark.js";import{OWN_BOX_FIELD as an}from"./own-box.js";import{phoneKey as z,resolvePhoneValue as ee}from"./phone-override.js";import{SuppressibleText as sn}from"./section-text-suppress.js";import{CARD_INDEX_OPTIONS as cn,CARD_OUTLINE_OPTIONS as un,DEFAULT_CARD_INDEX_FORMAT as dn,DEFAULT_CARD_OUTLINE as pn}from"../sections/product-card-style.js";import{COVER_INDEX_OPTIONS as fn,DEFAULT_COVER_INDEX as mn}from"../sections/card-cover-index.js";import{SCALAR_TEXT_CONTROLS as hn}from"./text-control-kinds.js";import gn from"../../components/ImageFocusRow.js";import bn from"../../components/MediaUploadField.js";import xn from"../../components/MultiSelectField.js";import Sn from"../../components/SectionThemePicker.js";import Cn from"../../components/SearchSelectField.js";import In from"../../components/StorefrontLinkField.js";import Pe from"../../components/UiIcon.js";import{SECTION_PADDING as _}from"../content/section-padding.js";import{hasPhoneHeight as _n,resolveSectionMinHeight as yn}from"../content/section-min-height.js";import{SECTION_MIN_HEIGHT as En,SECTION_MIN_HEIGHT_GROUP_LABEL as G,SECTION_SCREEN_PCT as Tn}from"../content/section-min-height.js";import{CONTAINER_DIRECTION_LABEL as Rn,containerDirectionPoints as On,resolveContainerDirection as ke}from"../content/container-direction.js";import{BOX_ALIGN_POINTS as Nn,BOX_BLOCK_SPACING_LABEL as An,BOX_BLOCK_SPACING_POINTS as De,BOX_JUSTIFY_POINTS as Be,BOX_PHONE_ROW_LABEL as Ln,BOX_PHONE_ROW_MAX as Fn,BOX_PHONE_ROW_MIN as He,BOX_SHARE_LABEL as Ge,BOX_SHARE_POINTS as te,BOX_WRAP_LABEL as vn,BOX_WRAP_POINTS as Me}from"../content/box-layout.js";import{usePreviewHeader as V}from"../../components/PreviewHeaderContext.js";import{CONTAINER_GAP as ne,CONTAINER_GAP_BUILT_IN as wn,GAP_FIELD_CONTAINER as Pn,hasOwnContainerGap as kn,resolveContainerGap as Dn}from"../content/container-gap.js";import{CARD_IMAGE_BG_INHERIT as Bn,CARD_IMAGE_BG_OFF as Hn,CARD_IMAGE_BG_SWATCH_NAMES as Gn,CARD_IMAGE_BG_SWATCHES as Mn,isCardImageBackgroundInheriting as Wn,cardImageBackgroundChoice as Kn,THEME_CARD_IMAGE_BG as Un}from"../content/card-image-background.js";import{SECTION_BG_INHERIT as Xn,SECTION_BG_SWATCHES as $n,SECTION_BG_SWATCH_NAMES as zn,THEME_SECTION_BG as Vn,isSectionBackgroundInheriting as jn}from"../content/section-background.js";import{SECTION_THEME_GROUP_LABEL as Yn}from"../content/section-surface.js";import{TYPE_SIZE_FIXED as qn,TYPE_SIZE_INHERIT as Jn,isTypeSizeInheriting as Zn}from"../content/section-type-size.js";import{SECTION_WIDTH_CHOICES as Qn,WIDTH_CHOICE_LABEL as eo,WIDTH_INHERIT as to,resolveWidth as no,sectionRunsFullWidth as We}from"../content/section-width.js";import{useFoldHeadingLevel as Ke}from"./panel-heading-scope.js";import{withStyleKind as oo}from"efficient-easel/style-clipboard";function M(e){for(const[t,n]of Object.entries(e))n&&typeof n=="object"&&!X(n)&&oo(n,`section:${t}`);return e}function Qr({children:e}){return r("div",{className:"sf-field-label",children:typeof e=="string"?l(e):e})}function Ue(){return null}function ro(e){if(!e.trim())throw new Error("noGlyph() needs a reason naming the ruling that decided it.");return r(Ue,{},e)}function io(e){return e.type===Ue}function P(e){return io(e)?void 0:e}function k(e,t){return l("{value} from {from}",{value:e,from:t})}function lo(){const{appState:e}=F(i=>i),t=e.data.root?.props??{},{mode:n,pageWidth:o}=no(t,"full");return n==="page"?k(`${o}px`,l("the page")):n==="contained"?k(l("Contained"),l("the page")):k(l("Full"),l("the page"))}function ao(){const{blockGap:e}=V();return e===null?l("this container's own spacing"):k(`${e}px`,l("Site styles"))}function so({inherited:e,onReset:t,label:n}){return r(C,{words:S()?.panel,label:l(n),changed:!e,detail:ao(),onReset:t})}function co({inherited:e,onReset:t,label:n}){return r(C,{words:S()?.panel,label:l(n),changed:!e,detail:lo(),onReset:t})}function D({value:e,onChange:t,label:n,placeholder:o,hint:i,multiline:a,hideable:c=!0,markup:s=!0}){const{text:u,hidden:p}=ce(e),m=Z(null),d=Z(null),f=T=>t(c?{text:T,hidden:p}:T),g=()=>t({text:u,hidden:!p}),b=c&&p,E=tt(),x=i?ho(i)?r("span",{className:"sf-hint-keep sf-hint-while-typing",children:l(i)}):r(mt,{children:l(i)}):void 0,K=p?l("Show {label} on the slide",{label:l(n)}):l("Hide {label} on the slide",{label:l(n)});return r(h,{label:l(n),icon:r(Gt,{}),htmlFor:E,className:b?"is-hidden":void 0,hint:x,action:c?r($,{content:K,children:r("button",{type:"button",className:"sf-field-eye","aria-pressed":p,"aria-label":K,onClick:g,children:p?r(Pe,{name:"eye-off",size:14}):r(Pe,{name:"eye",size:14})})}):void 0,children:L("div",{className:"sf-copybox",children:[s&&r(ve,{target:a?d:m,value:u,onChange:f}),a?r("textarea",{id:E,ref:d,value:u,placeholder:o===void 0?void 0:l(o),onChange:T=>f(T.target.value)}):r("input",{id:E,ref:m,type:"text",value:u,placeholder:o===void 0?void 0:l(o),onChange:T=>f(T.target.value)})]})})}function ei(e,t){return{...e,[fe]:t}}function ti(e){const t=e[y];if(!t)throw new Error("withOffPage: the field holds no authored text");return{...e,[y]:{...t,offPage:!0}}}function ni(e){return!e||typeof e!="object"?!1:e[y]?.offPage===!0}function oi(e){const t=e[y];if(!t)throw new Error("withIdentifier: the field holds no authored text");return{...e,[y]:{...t,identifier:!0}}}import{TEXT_CONTROL_KINDS as pl,SCALAR_TEXT_CONTROLS as fl}from"./text-control-kinds.js";function ri(e,t){if(!e[y])throw new Error("inOwnBox: the field holds no authored text");const{[rn]:o,...i}=e;return{...i,[an]:!0,render:t}}const uo=new Set(hn),B=(e,t)=>{const n={...t,[y]:e};if(!uo.has(e.control))return n;const o=t.render;return{...we(n,"authored-copy"),render:i=>r(sn,{name:i.name,children:o(i)})}},ii="Everything else on this block comes from the linked post. Unlink it to edit by hand.",po="Select a word, then press the highlighter.",fo="A short name so a link can jump straight to this section, like yoursite.com/page#about.",mo=new Set([po]),ho=e=>mo.has(e);function li(e,t,n){return B({control:"text",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n})})}function ai(e,t,n){return B({control:"textarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0})})}function go(e,t,n){return B({control:"plainText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1,markup:!1})})}function si(e,t,n){return B({control:"copyText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1})})}function ci(e){return{type:"custom",[de]:{label:e},render:({value:t,onChange:n})=>r(In,{value:ue(t),onChange:n,label:e})}}function ui(e,t,n){return B({control:"plainTextarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0,hideable:!1})})}const di={Design:ht,Animation:be};function pi(e,t){return e.includes("Design")?t!=="Design":null}function bo({label:e}){return r(Vt,{title:l(e),level:Ke(1)})}function xo({level:e,label:t}){return e===1?r(bo,{label:t}):r(Io,{label:t})}function Xe(e,t){return{type:"custom",[U]:{label:e,level:t},render:()=>r(xo,{level:t,label:e})}}function I(e){return Xe(e,2)}function fi(e){return{type:"custom",render:()=>r(So,{text:e})}}function So({text:e}){return r("p",{className:"sf-note",children:l(e)})}function mi(e){return Xe(e,1)}function hi(e){return X(e)!==null&&e?.tabs!==void 0}const $e=new Map;function gi(e,t){const n=`${e}\0${t?t.join(""):""}`,o=$e.get(n)??{type:"custom",tabs:t,[U]:{label:e,level:1},bucket:e,marker:!0,render:()=>r(R,{})};return $e.set(n,o),o}function bi(e){return X(e)!==null&&e?.designGroup!==void 0}const ze=new Map;function xi(e){const t=ze.get(e)??{type:"custom",[U]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>r(R,{})};return ze.set(e,t),t}function Co(e){const t=e;return t?.marker===!0&&typeof t.fold=="string"?t.fold:null}function Si(e,t){return Co(e)===t?e:{...e,marker:!0,fold:t,render:()=>r(R,{})}}function Ci(e){const t=e;if(t.marker===!0&&t.fold===void 0)return e;const{fold:n,...o}=e;return{...o,marker:!0,render:()=>r(R,{})}}function Io({label:e}){return r(jt,{title:l(e),level:Ke(2)})}function Ve({swatches:e,current:t,onPick:n,names:o}){const i=e.find(s=>s.toLowerCase()===t.toLowerCase()),a=i?o?.[i]:void 0,c=a?l(a):t;return L("div",{className:"sf-swatches",children:[e.map(s=>{const u=o?.[s]?l(o[s]):s;return r($,{content:u,children:r("button",{type:"button","aria-pressed":t.toLowerCase()===s.toLowerCase(),className:`sf-swatch ${t.toLowerCase()===s.toLowerCase()?"is-active":""}`,style:{background:s},onClick:()=>n(s),"aria-label":u})},s)}),r("span",{className:"sf-swatch-hex",children:c})]})}function Ii(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=jn(n,t);return r(h,{label:l(e),icon:r(xt,{}),changed:!i,action:r(C,{words:S()?.panel,label:l(e),changed:!i,detail:l("the theme's section background"),onReset:()=>o(Xn)}),children:Ve({swatches:$n,current:i?Vn:n??t??"",onPick:o,names:zn})})}}}function _o(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=n,a=Wn(i,t);return r(h,{label:l(e),icon:r(Lt,{}),changed:!a,action:r(C,{words:S()?.panel,label:l(e),changed:!a,detail:l("the theme's image stage"),onReset:()=>o(Bn)}),children:Ve({swatches:Mn,current:a?Un:Kn(i,t),onPick:o,names:Gn})})}}}function _i(e=n=>n,t){return M({_gSectionTheme:I(Yn),sectionAccent:{type:"custom",render:({value:n,onChange:o})=>r(Sn,{value:e(n),onChange:o,followLabel:t})}})}function W({min:e,max:t,step:n,value:o,onChange:i,suffix:a="",readout:c=!0,notch:s,ariaLabel:u,disabled:p=!1}){const m=s!==void 0&&Number.isFinite(s)&&s>=e&&s<=t;return r("div",{className:m?"sf-slider has-notch":"sf-slider",style:m?{"--sf-notch":(s-e)/(t-e)}:void 0,children:r(on,{min:e,max:t,step:n,value:o,suffix:a||void 0,showInput:c,label:u===void 0?void 0:l(u),disabled:p,size:"sm",className:"sf-slider-track",onChange:d=>{d!==null&&d!==o&&i(d)}})})}function H(e,t,n,o,i,a,c="",s){return{type:"custom",render:u=>r(h,{label:l(e),icon:P(t),action:s?s("storedValue"in u?u.storedValue:u.value,u.onChange):void 0,children:W({min:n,max:o,step:i,value:typeof u.value=="number"?u.value:a,suffix:c,ariaLabel:e,onChange:u.onChange})})}}function je(e,t){const{min:n,max:o,step:i=1,unsetLabel:a,hint:c,restTrack:s,unsetMark:u,icon:p}=t;return{type:"custom",render:({value:m,onChange:d})=>{const f=typeof m=="number"?m:null,g=f===null;return r(h,{label:l(e),icon:p?P(p):void 0,value:g?u||a===void 0?void 0:l(a):`${f}px`,changed:!g,action:u?ae(u,{changed:!g,onReset:()=>d(null)}):r(C,{words:S()?.panel,label:l(e),changed:!g,onReset:()=>d(null)}),hint:typeof c=="string"?l(c):c,children:s?s({min:n,max:o,step:i,px:f,label:e,onChange:d}):W({min:n,max:o,step:i,value:f??n,readout:!1,ariaLabel:e,onChange:d})})}}}function yi(e){const t=H("Gap",r(Se,{}),ne.min,ne.max,ne.step,wn[e],"px",(n,o)=>r(so,{inherited:!kn(e,n),onReset:()=>o(void 0),label:"Gap"}));return{type:"custom",[Pn]:e,render:n=>t.render({...n,value:Dn(e,n.value,n.field?.siteGap),storedValue:n.value,onChange:o=>n.onChange(o)})}}const j="Corners";function oe(e){return{type:"custom",render:({value:t,onChange:n})=>{const o=typeof t=="number"&&Number.isFinite(t)?t:null,i=o!==null;return r(h,{label:l(j),icon:r(_t,{}),changed:i,action:ae(e.mark,{changed:i,onReset:()=>n(null)}),hint:e.hint,children:r(Eo,{tier:e,px:o,onRadius:n})})}}}function yo(e){let t=null;try{t=nt()}catch{t=null}return[t?.values?.[e],n=>t?.onChange(e,n)]}function Eo({tier:e,px:t,onRadius:n}){const o=e.useFollowed(),i=e.useClosedReason?e.useClosedReason():null,[a,c]=yo(e.sidesKey),s=Ne(a)??[...Oe];return r(tn,{label:l(j),value:s,corners:Ut,onChange:u=>{const p=Ne(u)??[];c(p.length===Oe.length?null:p)},radius:t,onRadiusChange:n,radiusMin:v,radiusMax:me,radiusStep:e.step??1,radiusPlaceholder:String(o),disabled:i!==null,disabledReason:i??void 0})}function Ye(){return we({type:"custom",render:()=>r(ln,{})},"always")}function To({label:e,changed:t=!1,onReset:n=()=>{}}){const{cornerRadiusPx:o}=V(),i=typeof o=="number"?`${o}px`:l("not set");return r(C,{words:S()?.panel,label:l(e),changed:t,detail:o==null?l("the built-in corners"):k(i,l("Site styles")),onReset:n})}function Ro(){const{cornerRadiusPx:e}=V();return typeof e=="number"?e:v}function Oo(){return oe({sidesKey:"sectionCornerSides",useFollowed:Ro,useClosedReason:()=>Je()?l(qe):null,mark:r(To,{label:j}),hint:r(No,{})})}const qe="This section runs edge to edge, so its corners sit off the page. Set Width to Content width to use them.";function Je(){return We(Y())}function No(){return r(R,{children:Je()?qe:"Follows Site styles ▸ Basics ▸ Corners until you set a number here."})}function Ei(){return M({_gShape:I("Shape"),sectionCorners:Oo(),sectionCornerSides:Ye()})}function Ti(){return{_gMotion:I("Motion"),sectionAnimation:le("Entrance",r(be,{}),[...zt],$t)}}function re(){let e=null;try{const{appState:t,selectedItem:n}=F(i=>i),o=n?.props?.id?String(n.props.id):void 0;e=o?Ae(t?.data,o):null}catch{e=null}return e!==null&&We(e)}function Ze(e){const{cornerRadiusPx:t}=V(),n=re(),o=typeof t=="number"?t:e;let i=null;try{const{appState:c,selectedItem:s}=F(p=>p),u=s?.props?.id?String(s.props.id):void 0;i=u?Ae(c?.data,u):null}catch{i=null}if(n||!i)return o;const a=i.sectionCorners;return Xt(a)?a:o}function Ao({label:e,changed:t=!1,onReset:n=()=>{}}){const o=re(),i=Ze(v),a=o?"Site":"Section";return r(C,{words:S()?.panel,label:l(e),changed:t,detail:k(`${i}px`,o?l("Site styles"):l("the section")),onReset:n})}function Lo(){return r(R,{children:re()?l("The section is full width, so this card follows Site styles ▸ Basics ▸ Corners."):l("Follows the section's Corners until you set a number here.")})}function Fo(){return oe({sidesKey:"cardCornerSides",useFollowed:()=>Ze(v),mark:r(Ao,{label:j}),hint:r(Lo,{})})}function vo(){return{type:"custom",render:()=>r(rt,{})}}function Ri(){return{_gShape:I("Shape"),cardCorners:Fo(),cardCornerSides:Ye(),cardCornersApplyAll:vo()}}function Oi(){return N("Justify",r(bt,{}),Be,Be[0].value)}function Ni(){return N("Item alignment",r(gt,{}),Nn,"stretch")}function Ai(){return N(vn,r(Wt,{}),Me,Me[0].value)}function Li(){return{type:"custom",render:({value:e,onChange:t})=>{const n=te.find(o=>o.value===e)??te[0];return r(h,{label:l(Ge),icon:r(xe,{}),value:l(n.label),children:r("div",{className:"sf-gallery-layouts",role:"group","aria-label":l(Ge),children:te.map(o=>r($,{content:l(o.label),className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":n.value===o.value,"aria-label":l(o.label),onClick:()=>t(o.value),children:r("span",{className:"sf-gallery-pic",children:wo(o.weights).map((i,a)=>r("i",{style:{gridColumn:`span ${i}`}},a))})})},o.value))})})}}}function wo(e){if(!e)return[3,4];const t=e.reduce((n,o)=>n+o,0);return e.map(n=>Math.round(n/t*12))}function Fi(){return N(An,r(Se,{}),De,De[0].value)}function vi(){return H(Ln,r(Pt,{}),He,Fn,1,He)}function wi(e){const t=le(Rn,ro("`Direction` names how a container's children run — a MODIFIER, not a thing. doc/naming.md N10.1 gives the idea a dash in its Glyph column; editor-shell's own `direction` meaning says the bare row is CORRECT and not an omission (SS seat, 2026-09-11)."),On(e),ke(e,void 0));return{type:"custom",render:n=>t.render({...n,value:ke(e,n.value),onChange:o=>n.onChange(o)})}}function Pi(e,t,n,o,i,a){return{type:"custom",render:({value:c,onChange:s})=>r(h,{label:l(e),icon:r(Re,{noun:a}),action:r(C,{words:S()?.panel,label:l(e),changed:!Zn(c),detail:l("the Text style in Site styles"),onReset:()=>s(Jn),defaultAction:{onPress:()=>s(qn),title:l("Keep this section's own built-in size"),icon:r(St,{})}}),children:W({min:t,max:n,step:o,value:typeof c=="number"?c:i,suffix:"px",ariaLabel:e,onChange:s})})}}function ki(){return{_gCellWidth:I("Cell width"),gridSpan:N("Positions",r(xe,{}),[{label:"Auto",value:""},...Array.from({length:st},(e,t)=>({label:t===0?"1 position":`${t+1} positions`,value:String(t+1)}))],"")}}function Y(){let e=null;try{e=F(t=>t).selectedItem}catch{e=null}return e?.props??{}}function Po({min:e,max:t,step:n,px:o,label:i,onChange:a,desktopKey:c,fallback:s}){const u=Y()[c],p=ee(void 0,u,s);return r(R,{children:W({min:e,max:t,step:n,value:ee(o,u,s),readout:!1,ariaLabel:i,notch:p,onChange:a})})}function ko({label:e,desktopKey:t,fallback:n,changed:o=!1,onReset:i=()=>{}}){const a=Y()[t],c=ee(void 0,a,n);return r(C,{words:S()?.panel,label:l(e),changed:o,detail:l("{value} on desktop",{value:`${c}px`}),onReset:i})}function Do(e){return je(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unsetLabel:"Follows Desktop",unsetMark:r(ko,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback}),restTrack:t=>r(Po,{...t,desktopKey:e.desktopKey,fallback:e.fallback})})}const Bo={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},Ho={Top:Ee,Bottom:Ie,Left:_e,Right:ye},Go=e=>{const t=Ho[e];return r(t,{})};function Di(e={}){const t=e.keys?.top??"sectionPaddingTop",n=e.keys?.bottom??"sectionPaddingBottom",o=e.group!==!1,i=x=>Bo[x],a=x=>H(i("Top"),r(Ee,{}),_.min,_.max,_.step,x,"px"),c=(x,K,T,J=_)=>O("mobile",Do({label:i(x),icon:Go(x),desktopKey:K,min:J.min,max:J.max,step:J.step,fallback:T})),s=e.top??_.min,u=e.bottom??_.min,p="sectionPaddingLeft",m="sectionPaddingRight",d=e.sideBounds??_,f=e.side??d.min,g=e.sidePhone??f,b=e.phone===!0,E=x=>b?O("desktop",x):x;return M({...o?{_gSpacing:I("Padding")}:{},[t]:E(a(s)),...b?{[z(t)]:c("Top",t,s)}:{},...e.only==="top"?{}:{[n]:E(H(i("Bottom"),r(Ie,{}),_.min,_.max,_.step,u,"px")),...b?{[z(n)]:c("Bottom",n,u)}:{}},...e.sides?{[p]:E(H(i("Left"),r(_e,{}),d.min,d.max,d.step,f,"px")),...b?{[z(p)]:c("Left",p,g,d)}:{},[m]:E(H(i("Right"),r(ye,{}),d.min,d.max,d.step,f,"px")),...b?{[z(m)]:c("Right",m,g,d)}:{}}:{}})}const Mo={contained:"Contained",page:"Page",full:"Full"},q="Width";function Bi(e,t=Qn,n=!0){const o=t.map(i=>({label:eo[i]??Mo[i],value:i}));return M({...n?{_gWidth:I(q)}:{},widthMode:{type:"custom",render:({onChange:i,field:a})=>r(h,{label:l(q),icon:r(Mt,{}),action:n?r(co,{inherited:a?.inherited??!1,onReset:()=>i(to),label:q}):void 0,children:ie({options:o,value:a?.currentValue||e,onChange:i,ariaLabel:q})})}})}function Hi(){const e=o=>({type:"custom",render:({value:i,onChange:a})=>r(h,{label:G,icon:P(r(Ft,{})),action:o?o(a):void 0,children:ie({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(i)?i:"auto",onChange:a,ariaLabel:G})})}),t=()=>({type:"custom",render:({value:o,onChange:i,field:a})=>{const c=a?.unit==="%"?"%":"px",s=c==="%"?Tn:En;return r("div",{className:"sf-field",children:W({min:s.min,max:s.max,step:s.step,value:typeof o=="number"?o:s.fallback,suffix:c,ariaLabel:G,onChange:i})})}}),n=()=>le("Unit",r(Ce,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return M({_gHeight:I(G),sectionHeightMode:O("desktop",e()),sectionHeightValue:O("desktop",t()),sectionHeightUnit:O("desktop",n()),sectionHeightModePhone:O("mobile",e(o=>r(Wo,{onClear:()=>o(void 0)}))),sectionHeightValuePhone:O("mobile",t()),sectionHeightUnitPhone:O("mobile",n())})}function Wo({onClear:e}){const t=Y(),n=_n(t),o=yn(t),i=l("{value} on desktop",{value:o.mode==="auto"?l("Auto"):`${o.value}${o.unit}`});return r(C,{words:S()?.panel,label:l(G),changed:n,detail:i,onReset:e})}function Gi(){return{_gAnchor:I("Anchor"),anchor:go("Anchor name","e.g. about",fo)}}function Mi(e,t,n){return{type:"custom",render:({value:o,onChange:i,id:a,name:c})=>{const s=`${a??c??e}-datetime`,u=Date.parse(typeof o=="string"?o:"");return r(h,{label:l(e),icon:t,htmlFor:s,hint:n===void 0?void 0:l(n),children:r(nn,{id:s,value:Number.isFinite(u)?new Date(u):null,onChange:p=>i(p?p.toISOString():"")})})}}}function A(e,t,n){return{type:"custom",render:({value:o,onChange:i,id:a,name:c})=>{const s=typeof o=="boolean"?o:t,u=`${a??c??e}-label`;return r(h,{label:l(e),labelId:u,icon:n,action:r(qt,{checked:s,onChange:i,ariaLabelledBy:u})})}}}function Wi(){return{type:"custom",render:({value:e,onChange:t,id:n,name:o})=>{const i=`${String(n??o??"pageBackground")}-colour`;return r(h,{label:l("Background"),icon:r(Te,{}),htmlFor:i,action:r(Fe,{id:i,label:"Background",value:Kt(e),onChange:t})})}}}function Ki(e,t){return{type:"custom",render:({value:n,onChange:o,id:i})=>{const a=typeof n=="boolean"?n:t,c=`${i??e}-checkbox`;return r(h,{label:l(e),htmlFor:c,className:"sf-checkbox",action:r(en,{id:c,checked:a,onChange:o})})}}}function Ui(e,t){return{type:"custom",render:({value:n,onChange:o})=>r(h,{label:l(e),action:Fe({value:n||t,onChange:o,label:e})})}}const Ko=[{value:"0% 0%",label:"Top left"},{value:"50% 0%",label:"Top"},{value:"100% 0%",label:"Top right"},{value:"0% 50%",label:"Left"},{value:"50% 50%",label:"Center"},{value:"100% 50%",label:"Right"},{value:"0% 100%",label:"Bottom left"},{value:"50% 100%",label:"Bottom"},{value:"100% 100%",label:"Bottom right"}];function Qe({label:e,value:t,onChange:n,points:o=Ko}){const i=o.map(a=>({...a,label:l(a.label),...a.title?{title:l(a.title)}:null}));return r(Qt,{label:l(e),value:t,points:i,onChange:n})}function Xi(e,t=Le,n="mediaImage"){return{type:"custom",render:({value:o,onChange:i})=>r("div",{className:"sf-focal-row",children:r(Uo,{label:e,value:o||t,onChange:i,imageProp:n})})}}function Uo({label:e,value:t,onChange:n,imageProp:o}){const{selectedItem:i}=F(c=>c),a=i?.props?.[o];return r(gn,{label:e,value:t,onChange:n,image:typeof a=="string"?a:void 0})}const Xo=ge([]);function $i(e,{stacking:t,fallback:n=pt}){return{type:"custom",render:({value:o,onChange:i})=>{const a=dt.includes(o)?o:n;return t?r($o,{label:e,value:a,onChange:i}):et({label:e,value:a,onChange:i,points:Xo})}}}function $o({label:e,value:t,onChange:n}){const{appState:o,selectedItem:i}=F(s=>s),a=i?.props?.id?String(i.props.id):void 0,c=a?ut(o?.data,a):[];return et({label:e,value:t,onChange:n,points:ge(c,a)})}function et({label:e,value:t,onChange:n,points:o}){const i=o.find(a=>a.disabled);return r(h,{label:l(e),icon:r(kt,{}),hint:i?.title?l(i.title):void 0,children:Qe({label:e,value:ft(t),onChange:n,points:o})})}const zi={top:r(Rt,{}),right:r(Tt,{}),bottom:r(yt,{}),left:r(Et,{})};function Vi(e,t,n,o,i,a){const c=m=>t.find(d=>d.value===m),s=m=>({value:m,label:"",disabled:!0,title:o}),u=m=>{const d=t.find(g=>g.cell===m);if(!d)return s(`missing-${m}`);const f=a?.[m];return f?{value:d.value,label:d.label,icon:f}:{value:d.value,label:d.label}},p=[s("corner-top-left"),u("top"),s("corner-top-right"),u("left"),s("centre"),u("right"),s("corner-bottom-left"),u("bottom"),s("corner-bottom-right")];return{type:"custom",render:({value:m,onChange:d})=>{const f=t.some(g=>g.value===m)?m:n;return r(h,{label:l(e),icon:i,value:c(f)?.label?l(c(f).label):"",children:Qe({label:e,value:f,onChange:d,points:p})})}}}const zo="\0note";function N(e,t,n,o,i){return{type:"custom",options:n,fallback:o,...i?{note:i}:{},render:({value:a,onChange:c,field:s})=>{const u=s.options??n,p=s.fallback??o,m=u.some(d=>d.value===a)?a:p;return r(h,{label:l(e),icon:P(t),children:r(Jt,{value:m,ariaLabel:l(e),onChange:c,options:[...i?[{label:l(i),value:zo,disabled:!0}]:[],...u.map(d=>({label:l(d.label),value:d.value}))]})})}}}function ji(e,t,n){return{type:"custom",options:t,render:({value:o,onChange:i,field:a})=>r(xn,{label:e,options:(a.options??t).map(c=>({...c,label:l(c.label)})),value:Array.isArray(o)?o:[],onChange:i,...n?{emptyLabel:l(n)}:{}})}}function Yi(e,t,n,o){return{type:"custom",options:t,fallback:n,render:({value:i,onChange:a,field:c})=>r(Cn,{label:e,options:(c.options??t).map(s=>({...s,label:l(s.label)})),fallback:c.fallback??n,value:i,onChange:a,placeholder:o===void 0?void 0:l(o)})}}function qi(e,t={}){return{type:"custom",render:({value:n,onChange:o})=>{const i={value:n,onChange:o,...t};return r(e,{...i})}}}function ie({options:e,value:t,onChange:n,ariaLabel:o,disabled:i=!1}){return r(Yt,{options:e.map(a=>a.picture?{id:a.value,label:a.picture,title:l(a.title??a.label)}:{id:a.value,label:l(a.label),title:a.title===void 0?void 0:l(a.title)}),value:t,onChange:n,ariaLabel:l(o),disabled:i})}const Ji=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function le(e,t,n,o){const i=n.map(a=>typeof a=="string"?{label:a,value:a}:a);return{type:"custom",render:({value:a,onChange:c,field:s})=>r(h,{label:l(e),icon:P(t),children:ie({options:i,value:i.some(u=>u.value===a)?a:a||s?.currentValue||o,onChange:c,ariaLabel:e})})}}function Zi(e,t,n){return{type:"custom",[pe]:!0,render:({value:o,onChange:i})=>r(bn,{value:o||"",onChange:i,label:e,accept:t,placeholder:n})}}const Qi={HeroSingle:["imageFocal"],ContactLocations:["locations[].photo"],ProcessSteps:["steps[].image"]};function el({value:e,onChange:t,label:n}){const o=e||{},i=!!o.pending,a=i?"var(--fg-dim, #888)":o.ok?"#1d9e75":"#d85a30",c=(s,u)=>t({...o,[s]:u===""?void 0:Number(u)});return L(h,{label:l(n),icon:r(Q,{}),children:[r("button",{type:"button",disabled:i,onClick:()=>t({...o,pending:!0,ok:!1,status:"Finding…"}),style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"8px 10px",fontSize:13,cursor:i?"default":"pointer",opacity:i?.6:1,border:"1px solid var(--border-strong, #ccc)",borderRadius:6,background:"transparent",color:"inherit"},children:i?l("Finding…"):l("Find coordinates")}),o.status&&r("div",{style:{marginTop:6,fontSize:12,lineHeight:1.4,color:a},children:l(o.status)}),r("div",{style:{marginTop:6,fontSize:11,color:"var(--fg-dim, #999)"},children:l("Coordinates from OpenStreetMap")}),r("button",{type:"button",onClick:()=>t({...o,manual:!o.manual}),style:{marginTop:8,padding:0,border:"none",background:"none",font:"inherit",fontSize:12,color:"var(--sf-accent, #2563eb)",cursor:"pointer",textDecoration:"underline"},children:o.manual?l("Hide manual coordinates"):l("Enter coordinates manually")}),o.manual&&L("div",{style:{marginTop:8,display:"grid",gap:8},children:[r(h,{label:l("Latitude"),icon:r(Q,{}),children:r("input",{type:"number",step:"any",placeholder:l("e.g. {example}",{example:"34.0990198"}),value:typeof o.lat=="number"?o.lat:"",onChange:s=>c("lat",s.target.value)})}),r(h,{label:l("Longitude"),icon:r(Q,{}),children:r("input",{type:"number",step:"any",placeholder:l("e.g. {example}",{example:"-117.9842833"}),value:typeof o.lng=="number"?o.lng:"",onChange:s=>c("lng",s.target.value)})})]})]})}function Vo(e,t){return t===null||t<0||t>=e.length?"":e[t]?.text??""}function jo(e,t,n){const o=e.map(i=>({text:i?.text??""}));return t===null||t<0||t>=e.length?o:o.map((i,a)=>a===t?{text:n}:i)}function tl(e,t){return e===null?null:t>e?e:null}function Yo(e,t,n){if(n===null||n>=t.length)return null;for(let o=0;o<n;o+=1)if(e[o]!==t[o])return null;return e[n]!==t[n]&&t.includes(e[n])||e[n]!==t[n]&&t.length!==e.length?null:n}const nl={label:"Ticker items",icon:r(wt,{})};function ol(e,t,n,o){return{type:"custom",[y]:{control:"textList",label:e,placeholder:n,itemKey:"text",rendering:o},render:({value:i,onChange:a})=>r(qo,{label:e,icon:P(t),items:Array.isArray(i)?i:[],placeholder:n,onChange:a,markup:o==="markup"})}}function qo({label:e,icon:t,items:n,placeholder:o,onChange:i,markup:a=!1}){const c=Z(null),[s,u]=se(null),p=d=>d.map(f=>({text:f?.text??""})),m=d=>{const f=Yo(n,d,s);f===null&&(c.current=null),u(f),i(p(d))};return r(Zt,{label:l(e),icon:t,noun:l("item"),items:n,onChange:m,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:a?r(ve,{target:c,value:Vo(n,s),onChange:d=>i(jo(n,s??-1,d)),disabled:s===null,label:s===null?l("Formatting — click a row first"):l("Formatting — row {n}",{n:s+1})}):void 0,renderRow:(d,f,g)=>r("input",{type:"text",className:a&&s===f?"sf-list-marking":void 0,value:d?.text??"",placeholder:l(o),"aria-label":l("{label} {n}",{label:l(e),n:f+1}),onChange:b=>g({text:b.target.value}),onFocus:b=>{c.current=b.currentTarget,u(f)}})})}function rl(e,t){const n=`${e.label} — row ${t+1}`;return B({control:"plainText",label:n,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:o,onChange:i})=>r(D,{value:o,onChange:i,label:l("{label} — row {n}",{label:l(e.label),n:t+1}),placeholder:e.placeholder,hideable:!1,markup:e.rendering==="markup"})})}function il(e){return{_gCards:I("Cards"),coverIndex:N("Cover image",r(vt,{}),fn,String(mn),e?.coverHint??"A card's opening picture — a card pinned to a finish keeps its own."),imageBackground:_o("Image background",Hn),cardImage:Jo(),spinOnHover:A("Rotate on hover",e?.spinDefault??!0,r(Bt,{}))}}function ll(){return{outline:N("Card outline",r(Ht,{}),un,pn),indexBadge:N("Card number",r(Ce,{}),cn,dn),showBadge:A("Product badge",!0,r(Re,{noun:"tag"}))}}function al(e){const t=e?.bottomDefault??!0;return{_gShowOnCard:I("Show on a card"),showCardPrice:A("Price",!0,r(Ot,{})),showCardFinishes:A("Finish swatches",!0,r(Nt,{})),showCardSizes:A("Sizes",t,r(Dt,{})),showCardBuy:A("Buy button",t,r(Ct,{})),showCardPage:A("Page button",t,r(Te,{}))}}function Jo(){return je("Card image",{min:v,max:me,step:it,hint:"Rounds the picture. The card's own corner is in Site styles."})}function sl(){return oe({sidesKey:"cornerSides",step:lt,useFollowed:()=>v,mark:r(Zo,{label:at}),hint:l("Rounds the picture. Left alone it stays square.")})}function Zo({label:e,changed:t=!1,onReset:n=()=>{}}){return r(C,{words:S()?.panel,label:l(e),changed:t,onReset:n})}function cl(){return{type:"custom",render:({value:e,onChange:t})=>r(Qo,{value:typeof e=="string"?e:"",onChange:t})}}function Qo({value:e,onChange:t}){const[n,o]=se(null),i=he.filter(c=>n===null||w[c].across===n),a=e&&e in w?w[e]:null;return L(R,{children:[r(h,{label:l("Photos in a row"),icon:r(It,{}),children:L("div",{className:"sf-gallery-filter",children:[r("button",{type:"button","aria-pressed":n===null,onClick:()=>o(null),children:l("All")}),ct.map(c=>r("button",{type:"button","aria-pressed":n===c,onClick:()=>o(c),children:c},c))]})}),r(h,{label:l("Layout"),icon:r(At,{}),value:a?l(a.label):l("Not chosen"),hint:l("{n} of {total} layouts",{n:i.length,total:he.length}),children:r("div",{className:"sf-gallery-layouts",children:i.map(c=>r($,{content:l(w[c].label),className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":e===c,"aria-label":l(w[c].label),onClick:()=>t(e===c?"":c),children:r("span",{className:"sf-gallery-pic",children:w[c].desktop.map(([s,u],p)=>r("i",{style:{gridColumn:`span ${s}`,gridRow:`span ${u}`}},p))})})},c))})})]})}export{fo as ANCHOR_HINT,ii as BOUND_TO_POST_NOTE,di as BUCKET_ICONS,Qi as CUSTOM_FIELD_MEDIA,el as CoordsField,zi as EDGE_ARROWS,Le as FOCAL_DEFAULT,Ko as FOCAL_POINTS,U as FOLD_FIELD_MARKER,Qe as FocalPicker,Io as GroupLabel,po as HIGHLIGHT_HINT,D as HidableTextField,de as LINK_FIELD_MARKER,Qr as Label,pe as MEDIA_FIELD_MARKER,Ji as MEDIA_TYPE_OPTIONS,So as PanelNoteLine,et as PlacementGridView,fe as SCAFFOLD_FIELD_MARKER,fl as SCALAR_TEXT_CONTROLS,qe as SECTION_BLEEDS_HINT,bo as SectionHeading,ie as Segmented,so as SiteGapDefaultReset,W as Slider,Ve as Swatches,pl as TEXT_CONTROL_KINDS,y as TEXT_FIELD_MARKER,nl as TICKER_ITEMS_ROW,qo as TextListField,co as WidthDefaultReset,Yo as aimAfterListChange,Gi as anchorFields,k as backTo,Ii as backgroundField,Ni as boxAlignField,Fi as boxBlockSpacingField,Oi as boxJustifyField,vi as boxPhoneRowField,Li as boxShareField,Ai as boxWrapField,gi as bucketHeader,Fo as cardCornersField,_o as cardImageBackgroundField,Jo as cardImageField,il as cardMediaFields,Ri as cardShapeFields,al as cardShowFields,ll as cardStyleFields,ki as cellWidthFields,Ki as checkbox,Ui as colorInput,si as copyText,Ye as cornerSidesField,oe as cornersRowField,Mi as dateTime,xi as designGroupHeader,wi as directionField,Vi as edgePad,pi as entriesHiddenForTab,Xi as focalPicker,tl as focusAfterRemove,Si as foldMarker,X as foldMetaOf,Co as foldTitleOf,cl as galleryLayoutField,yi as gapField,I as group,Hi as heightFields,ue as hidableText,ho as hintIsWhileTyping,P as iconOf,sl as imageCornersField,ri as inOwnBox,hi as isBucketHeader,bi as isDesignGroupHeader,io as isNoGlyph,ci as linkField,ji as multiSelect,ro as noGlyph,Wi as pageBackgroundField,fi as panelNote,Do as phoneOverrideField,$i as placementField,go as plainText,ui as plainTextarea,je as pxField,Ci as quietMarker,ce as readHidable,Vo as rowText,Yi as searchSelect,mi as section,Ti as sectionAnimationFields,Oo as sectionCornersField,Ei as sectionShapeFields,_i as sectionThemeFields,le as segmented,N as select,jo as setRowText,Pi as sizeField,H as slider,qi as sourceField,Di as spacingFields,li as text,ot as textFieldIdentifier,ni as textFieldOffPage,ol as textList,rl as textListRowField,ai as textarea,A as toggle,Zi as upload,lo as usePageWidthDetail,ao as useSiteGapDetail,Bi as widthField,oi as withIdentifier,ti as withOffPage,ei as withScaffold};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "efficient-web-builder",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.0.1",
|
|
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",
|