efficient-web-builder 17.0.1 → 17.0.2

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 17.0.2 - 2026-10-16
4
+
5
+ **Every kept key of the four-side Padding row names the row that edits it** (GG 2026-10-16; it blocked the storefront's move to 17.0.x). A patch.
6
+
7
+ ### Fixed
8
+
9
+ - `sidesPaddingFields` draws its row on the top key and keeps the other three (`sectionPaddingRight`, `sectionPaddingBottom`, `sectionPaddingLeft`, or the caller's own keys) as fields with no control of their own. They now carry `reachedBy` = the row's top key, as ButtonBlock's kept keys do, so the storefront's `test-panel-no-empty-rows` no longer counts them as unreachable ("183 unreachable"). Their phone twins already passed (phone-only fields). Nothing a merchant sees changes.
10
+
11
+ ### Guards
12
+
13
+ - `scripts/test-padding-phone-twins-and-hero-group.tsx` §4: each kept key is reached by the top key, with the default keys and with a caller's own. Failed before the fix.
14
+
3
15
  ## 17.0.1 - 2026-10-16
4
16
 
5
17
  **On a phone, the hero's words are as wide as the hero, so a long word is fitted instead of cut** (card [FIX] Hero Grows On Phone, GG 2026-10-16). A patch.
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as P,Fragment as O}from"react/jsx-runtime";import{cloneElement as ue,useId as ct,useRef as ee,useState as $}from"react";import{useEasel as w,useSelectedFields as de}from"efficient-easel/easel";import{say as l,editorEaselWords as y}from"../editor-words.js";import{readHidable as pe,hidableText as fe}from"./hidable.js";import{FOLD_FIELD_MARKER as z,LINK_FIELD_MARKER as me,MEDIA_FIELD_MARKER as he,SCAFFOLD_FIELD_MARKER as ge,TEXT_FIELD_MARKER as I,foldMetaOf as V,textFieldIdentifier as ut}from"./field-markers.js";import dt from"../../components/ApplyCornersToSiblings.js";import{CARD_IMAGE_RADIUS_STEP as pt,CORNER_RADIUS_MAX as be,CORNER_RADIUS_MIN as L}from"../content/card-image-shape.js";import{IMAGE_CORNER_STEP as ft,IMAGE_CORNERS_LABEL as mt}from"../content/image-corners.js";import{GRID_MAX_COLUMNS as ht}from"../content/grid-span.js";import{GALLERY_ACROSS_BUCKETS as gt,GALLERY_LAYOUTS as F,GALLERY_LAYOUT_KEYS as xe}from"../content/gallery-layout.js";import{anchorSiblingsOf as bt,HERO_GROUP_PLACEMENTS as xt,HERO_GROUP_PLACEMENT_DEFAULT as St,normalisePlacement as yt,placementPoints as Se}from"../hero-group-placement.js";import Ct from"../../components/KeepHint.js";import{AdjustIcon as _t,AlignLeftIcon as It,AlignSeparateIcon as Et,AnimationIcon as ye,BackgroundIcon as Rt,BorderAllIcon as Tt,BlockSectionIcon as Ot,CartIcon as At,ColumnWidthsIcon as Ce,ColumnsIcon as Nt,CornerIcon as Pt,DirectionDownIcon as wt,DirectionLeftIcon as Lt,DirectionRightIcon as Ft,DirectionUpIcon as vt,DollarIcon as kt,FinishIcon as Dt,GapIcon as _e,GridIcon as Bt,GroundIcon as Ht,HashIcon as Ie,HeightIcon as Gt,ImageIcon as Mt,ListIcon as Kt,LocationIcon as te,PaddingAllIcon as Wt,PaddingBottomIcon as Ee,PaddingLeftIcon as Re,PaddingRightIcon as Te,PaddingTopIcon as Oe,PageIcon as Ae,PhoneIcon as Ut,PlacementIcon as Xt,ProductSizeIcon as jt,RotateIcon as $t,SquareIcon as zt,TypeIcon as Vt,WidthIcon as Yt,WrapIcon as qt}from"efficient-easel/icons";import{FieldGlyph as Ne}from"../../components/FieldGlyph.js";import{resolvePageBackground as Jt}from"../content/page-background.js";import{CORNER_SIDES as Pe,CORNER_SIDE_POINTS as Zt,hasOwnSectionCorners as Qt,normalizeCornerSides as we}from"../content/section-corners.js";import{SECTION_MOTION_NONE as en,SECTION_MOTION_OPTIONS as tn}from"../content/section-animation.js";import{enclosingSectionProps as Le}from"./enclosing-section.js";import{SettingsDefaultReset as C,SettingsField as h,SettingsGroupHead as nn,SettingsGroupSub as on,SettingsBorder as rn,SettingsSegmented as ln,SettingsSides as an,SettingsSidesEach as Fe,sidesStartEach as sn,SettingsSwitch as cn,borderSides as un,borderStartEach as dn}from"efficient-easel/panel";import{FieldSelect as pn,ListField as fn}from"efficient-easel/fields";import{AlignmentGrid as mn,Checkbox as hn,CornersInput as gn,DateTimePicker as bn,FOCAL_DEFAULT as ve,Slider as xn,Tooltip as Y}from"efficient-shell/ui";import{ColourControl as ke}from"./ColourControl.js";import De from"./MarkupToolbar.js";import{deviceField as _}from"./device-fields.js";import{NO_CONTROL_FIELD as Sn,NoControlMark as Be,noControlField as ne}from"./panel-no-control-mark.js";import{OWN_BOX_FIELD as yn}from"./own-box.js";import{phoneKey as M,resolvePhoneValue as oe}from"./phone-override.js";import{SuppressibleText as Cn}from"./section-text-suppress.js";import{CARD_INDEX_OPTIONS as _n,CARD_OUTLINE_OPTIONS as In,DEFAULT_CARD_INDEX_FORMAT as En,DEFAULT_CARD_OUTLINE as Rn}from"../sections/product-card-style.js";import{COVER_INDEX_OPTIONS as Tn,DEFAULT_COVER_INDEX as On}from"../sections/card-cover-index.js";import{SCALAR_TEXT_CONTROLS as An}from"./text-control-kinds.js";import Nn from"../../components/ImageFocusRow.js";import Pn from"../../components/MediaUploadField.js";import wn from"../../components/MultiSelectField.js";import Ln from"../../components/SectionThemePicker.js";import Fn from"../../components/SearchSelectField.js";import vn from"../../components/StorefrontLinkField.js";import He from"../../components/UiIcon.js";import{SECTION_PADDING as E}from"../content/section-padding.js";import{hasPhoneHeight as kn,resolveSectionMinHeight as Dn}from"../content/section-min-height.js";import{SECTION_MIN_HEIGHT as Bn,SECTION_MIN_HEIGHT_GROUP_LABEL as K,SECTION_SCREEN_PCT as Hn}from"../content/section-min-height.js";import{CONTAINER_DIRECTION_LABEL as Gn,containerDirectionPoints as Mn,resolveContainerDirection as Ge}from"../content/container-direction.js";import{BOX_ALIGN_POINTS as Kn,BOX_BLOCK_SPACING_LABEL as Wn,BOX_BLOCK_SPACING_POINTS as Me,BOX_JUSTIFY_POINTS as Ke,BOX_PHONE_ROW_LABEL as Un,BOX_PHONE_ROW_MAX as Xn,BOX_PHONE_ROW_MIN as We,BOX_SHARE_LABEL as Ue,BOX_SHARE_POINTS as re,BOX_WRAP_LABEL as jn,BOX_WRAP_POINTS as Xe}from"../content/box-layout.js";import{usePreviewHeader as W}from"../../components/PreviewHeaderContext.js";import{BORDER_MAX as $n}from"../content/borders.js";import{DEFAULT_SURFACES as zn,normalizeTheme as Vn}from"../theme.js";import{CONTAINER_GAP as ie,CONTAINER_GAP_BUILT_IN as Yn,GAP_FIELD_CONTAINER as qn,hasOwnContainerGap as Jn,resolveContainerGap as Zn}from"../content/container-gap.js";import{CARD_IMAGE_BG_INHERIT as Qn,CARD_IMAGE_BG_OFF as eo,CARD_IMAGE_BG_SWATCH_NAMES as to,CARD_IMAGE_BG_SWATCHES as no,isCardImageBackgroundInheriting as oo,cardImageBackgroundChoice as ro,THEME_CARD_IMAGE_BG as io}from"../content/card-image-background.js";import{SECTION_BG_INHERIT as lo,SECTION_BG_SWATCHES as ao,SECTION_BG_SWATCH_NAMES as so,THEME_SECTION_BG as co,isSectionBackgroundInheriting as uo}from"../content/section-background.js";import{SECTION_THEME_GROUP_LABEL as po}from"../content/section-surface.js";import{TYPE_SIZE_FIXED as fo,TYPE_SIZE_INHERIT as mo,isTypeSizeInheriting as ho}from"../content/section-type-size.js";import{SECTION_WIDTH_CHOICES as go,WIDTH_CHOICE_LABEL as bo,WIDTH_INHERIT as xo,resolveWidth as So,sectionRunsFullWidth as je}from"../content/section-width.js";import{useFoldHeadingLevel as $e}from"./panel-heading-scope.js";import{withStyleKind as yo}from"efficient-easel/style-clipboard";function v(e){for(const[t,n]of Object.entries(e))n&&typeof n=="object"&&!V(n)&&yo(n,`section:${t}`);return e}function Ii({children:e}){return r("div",{className:"sf-field-label",children:typeof e=="string"?l(e):e})}function ze(){return null}function Co(e){if(!e.trim())throw new Error("noGlyph() needs a reason naming the ruling that decided it.");return r(ze,{},e)}function _o(e){return e.type===ze}function k(e){return _o(e)?void 0:e}function D(e,t){return l("{value} from {from}",{value:e,from:t})}function Io(){const{appState:e}=w(i=>i),t=e.data.root?.props??{},{mode:n,pageWidth:o}=So(t,"full");return n==="page"?D(`${o}px`,l("the page")):n==="contained"?D(l("Contained"),l("the page")):D(l("Full"),l("the page"))}function Eo(){const{blockGap:e}=W();return e===null?l("this container's own spacing"):D(`${e}px`,l("Site styles"))}function Ro({inherited:e,onReset:t,label:n}){return r(C,{words:y()?.panel,label:l(n),changed:!e,detail:Eo(),onReset:t})}function To({inherited:e,onReset:t,label:n}){return r(C,{words:y()?.panel,label:l(n),changed:!e,detail:Io(),onReset:t})}function B({value:e,onChange:t,label:n,placeholder:o,hint:i,multiline:a,hideable:c=!0,markup:s=!0}){const{text:u,hidden:d}=pe(e),f=ee(null),p=ee(null),m=T=>t(c?{text:T,hidden:d}:T),g=()=>t({text:u,hidden:!d}),x=c&&d,R=ct(),S=i?wo(i)?r("span",{className:"sf-hint-keep sf-hint-while-typing",children:l(i)}):r(Ct,{children:l(i)}):void 0,j=d?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(Vt,{}),htmlFor:R,className:x?"is-hidden":void 0,hint:S,action:c?r(Y,{content:j,children:r("button",{type:"button",className:"sf-field-eye","aria-pressed":d,"aria-label":j,onClick:g,children:d?r(He,{name:"eye-off",size:14}):r(He,{name:"eye",size:14})})}):void 0,children:P("div",{className:"sf-copybox",children:[s&&r(De,{target:a?p:f,value:u,onChange:m}),a?r("textarea",{id:R,ref:p,value:u,placeholder:o===void 0?void 0:l(o),onChange:T=>m(T.target.value)}):r("input",{id:R,ref:f,type:"text",value:u,placeholder:o===void 0?void 0:l(o),onChange:T=>m(T.target.value)})]})})}function Ei(e,t){return{...e,[ge]:t}}function Ri(e){const t=e[I];if(!t)throw new Error("withOffPage: the field holds no authored text");return{...e,[I]:{...t,offPage:!0}}}function Ti(e){return!e||typeof e!="object"?!1:e[I]?.offPage===!0}const Ve="sfPanelOnly";function Oi(e){if(!e[I])throw new Error("withPanelOnly: the field holds no authored text");return{...e,[Ve]:!0}}function Ai(e){return!!e&&typeof e=="object"&&e[Ve]===!0}function Ni(e){const t=e[I];if(!t)throw new Error("withIdentifier: the field holds no authored text");return{...e,[I]:{...t,identifier:!0}}}import{TEXT_CONTROL_KINDS as Gl,SCALAR_TEXT_CONTROLS as Ml}from"./text-control-kinds.js";function Pi(e,t){if(!e[I])throw new Error("inOwnBox: the field holds no authored text");const{[Sn]:o,...i}=e;return{...i,[yn]:!0,render:t}}const Oo=new Set(An),H=(e,t)=>{const n={...t,[I]:e};if(!Oo.has(e.control))return n;const o=t.render;return{...ne(n,"authored-copy"),render:i=>r(Cn,{name:i.name,children:o(i)})}},wi="Everything else on this block comes from the linked post. Unlink it to edit by hand.",Ao="Select a word, then press the highlighter.",No="A short name so a link can jump straight to this section, like yoursite.com/page#about.",Po=new Set([Ao]),wo=e=>Po.has(e);function Li(e,t,n){return H({control:"text",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n})})}function Fi(e,t,n){return H({control:"textarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0})})}function Lo(e,t,n){return H({control:"plainText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1,markup:!1})})}function vi(e,t,n){return H({control:"copyText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1})})}function ki(e){return{type:"custom",[me]:{label:e},render:({value:t,onChange:n})=>r(vn,{value:fe(t),onChange:n,label:e})}}function Di(e,t,n){return H({control:"plainTextarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0,hideable:!1})})}const Bi={Design:_t,Animation:ye};function Hi(e,t){return e.includes("Design")?t!=="Design":null}function Fo({label:e}){return r(nn,{title:l(e),level:$e(1)})}function vo({level:e,label:t}){return e===1?r(Fo,{label:t}):r(Bo,{label:t})}function Ye(e,t){return{type:"custom",[z]:{label:e,level:t},render:()=>r(vo,{level:t,label:e})}}function b(e){return Ye(e,2)}function Gi(e){return{type:"custom",render:()=>r(ko,{text:e})}}function ko({text:e}){return r("p",{className:"sf-note",children:l(e)})}function Mi(e){return Ye(e,1)}function Ki(e){return V(e)!==null&&e?.tabs!==void 0}const qe=new Map;function Wi(e,t){const n=`${e}\0${t?t.join(""):""}`,o=qe.get(n)??{type:"custom",tabs:t,[z]:{label:e,level:1},bucket:e,marker:!0,render:()=>r(O,{})};return qe.set(n,o),o}function Ui(e){return V(e)!==null&&e?.designGroup!==void 0}const Je=new Map;function Xi(e){const t=Je.get(e)??{type:"custom",[z]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>r(O,{})};return Je.set(e,t),t}function Do(e){const t=e;return t?.marker===!0&&typeof t.fold=="string"?t.fold:null}function ji(e,t){return Do(e)===t?e:{...e,marker:!0,fold:t,render:()=>r(O,{})}}function $i(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(O,{})}}function Bo({label:e}){return r(on,{title:l(e),level:$e(2)})}function Ze({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 P("div",{className:"sf-swatches",children:[e.map(s=>{const u=o?.[s]?l(o[s]):s;return r(Y,{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 zi(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=uo(n,t);return r(h,{label:l(e),icon:r(Rt,{}),changed:!i,action:r(C,{words:y()?.panel,label:l(e),changed:!i,detail:l("the theme's section background"),onReset:()=>o(lo)}),children:Ze({swatches:ao,current:i?co:n??t??"",onPick:o,names:so})})}}}function Ho(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=n,a=oo(i,t);return r(h,{label:l(e),icon:r(Ht,{}),changed:!a,action:r(C,{words:y()?.panel,label:l(e),changed:!a,detail:l("the theme's image stage"),onReset:()=>o(Qn)}),children:Ze({swatches:no,current:a?io:ro(i,t),onPick:o,names:to})})}}}function Vi(e=n=>n,t){return v({_gSectionTheme:b(po),sectionAccent:{type:"custom",render:({value:n,onChange:o})=>r(Ln,{value:e(n),onChange:o,followLabel:t})}})}function U({min:e,max:t,step:n,value:o,onChange:i,suffix:a="",readout:c=!0,notch:s,ariaLabel:u,disabled:d=!1}){const f=s!==void 0&&Number.isFinite(s)&&s>=e&&s<=t;return r("div",{className:f?"sf-slider has-notch":"sf-slider",style:f?{"--sf-notch":(s-e)/(t-e)}:void 0,children:r(xn,{min:e,max:t,step:n,value:o,suffix:a||void 0,showInput:c,label:u===void 0?void 0:l(u),disabled:d,size:"sm",className:"sf-slider-track",onChange:p=>{p!==null&&p!==o&&i(p)}})})}function G(e,t,n,o,i,a,c="",s){return{type:"custom",render:u=>r(h,{label:l(e),icon:k(t),action:s?s("storedValue"in u?u.storedValue:u.value,u.onChange):void 0,children:U({min:n,max:o,step:i,value:typeof u.value=="number"?u.value:a,suffix:c,ariaLabel:e,onChange:u.onChange})})}}function Qe(e,t){const{min:n,max:o,step:i=1,unsetLabel:a,hint:c,restTrack:s,unsetMark:u,icon:d}=t;return{type:"custom",render:({value:f,onChange:p})=>{const m=typeof f=="number"?f:null,g=m===null;return r(h,{label:l(e),icon:d?k(d):void 0,value:g?u||a===void 0?void 0:l(a):`${m}px`,changed:!g,action:u?ue(u,{changed:!g,onReset:()=>p(null)}):r(C,{words:y()?.panel,label:l(e),changed:!g,onReset:()=>p(null)}),hint:typeof c=="string"?l(c):c,children:s?s({min:n,max:o,step:i,px:m,label:e,onChange:p}):U({min:n,max:o,step:i,value:m??n,readout:!1,ariaLabel:e,onChange:p})})}}}function Yi(e){const t=G("Gap",r(_e,{}),ie.min,ie.max,ie.step,Yn[e],"px",(n,o)=>r(Ro,{inherited:!Jn(e,n),onReset:()=>o(void 0),label:"Gap"}));return{type:"custom",[qn]:e,render:n=>t.render({...n,value:Zn(e,n.value,n.field?.siteGap),storedValue:n.value,onChange:o=>n.onChange(o)})}}const q="Corners";function le(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(q),icon:r(Pt,{}),changed:i,action:ue(e.mark,{changed:i,onReset:()=>n(null)}),hint:e.hint,children:r(Go,{tier:e,px:o,onRadius:n})})}}}function et(e){let t=null;try{t=de()}catch{t=null}return[t?.values?.[e],n=>t?.onChange(e,n)]}function Go({tier:e,px:t,onRadius:n}){const o=e.useFollowed(),i=e.useClosedReason?e.useClosedReason():null,[a,c]=et(e.sidesKey),s=we(a)??[...Pe];return r(gn,{label:l(q),value:s,corners:Zt,onChange:u=>{const d=we(u)??[];c(d.length===Pe.length?null:d)},radius:t,onRadiusChange:n,radiusMin:L,radiusMax:be,radiusStep:e.step??1,radiusPlaceholder:String(o),disabled:i!==null,disabledReason:i??void 0})}function tt(){return ne({type:"custom",render:()=>r(Be,{})},"always")}function Mo({label:e,changed:t=!1,onReset:n=()=>{}}){const{cornerRadiusPx:o}=W(),i=typeof o=="number"?`${o}px`:l("not set");return r(C,{words:y()?.panel,label:l(e),changed:t,detail:o==null?l("the built-in corners"):D(i,l("Site styles")),onReset:n})}function Ko(){const{cornerRadiusPx:e}=W();return typeof e=="number"?e:L}function Wo(){return le({sidesKey:"sectionCornerSides",useFollowed:Ko,useClosedReason:()=>ot()?l(nt):null,mark:r(Mo,{label:q}),hint:r(Uo,{})})}const nt="This section runs edge to edge, so its corners sit off the page. Set Width to Content width to use them.";function ot(){return je(J())}function Uo(){return r(O,{children:ot()?nt:"Follows Site styles ▸ Basics ▸ Corners until you set a number here."})}function qi(){return v({_gShape:b("Shape"),sectionCorners:Wo(),sectionCornerSides:tt(),sectionBorder:rt("desktop"),sectionBorderPhone:rt("mobile")})}const Xo=()=>({width:l("Border width"),sides:{top:l("Border top"),right:l("Border right"),bottom:l("Border bottom"),left:l("Border left")},style:l("Border style"),styles:{solid:l("Solid"),dashed:l("Dashed"),dotted:l("Dotted")},color:l("Border color"),unit:"px"});function jo(e){const t=Object.fromEntries(Object.entries(e).filter(([,n])=>n!=null&&n!==""));return Object.keys(t).length?t:void 0}function $o(){let e;try{const t=Vn(W().theme);e=t.themes[t.selected]?.line}catch{e=void 0}return e||zn.line}function zo({value:e,onChange:t,tier:n}){const[o]=et("sectionBorder"),i=$o(),a=e&&typeof e=="object"?e:{},c=n==="mobile"?o&&typeof o=="object"?o:{}:{},[s,u]=$(()=>dn(a,c)),d=Xo();return r(h,{label:l("Border"),icon:r(Tt,{}),action:r(Fe,{each:s,label:l("Each side"),onChange:u}),children:r(rn,{label:l("Border"),value:a,each:s,onChange:f=>t(jo(f)),placeholder:{sides:un(c),style:c.style??"solid",color:c.color||i},presets:[i],words:d,max:$n})})}function rt(e){return _(e,{type:"custom",render:({value:t,onChange:n})=>r(zo,{value:t,onChange:n,tier:e})})}function Ji(){return{_gMotion:b("Motion"),sectionAnimation:ce("Entrance",r(ye,{}),[...tn],en)}}function ae(){let e=null;try{const{appState:t,selectedItem:n}=w(i=>i),o=n?.props?.id?String(n.props.id):void 0;e=o?Le(t?.data,o):null}catch{e=null}return e!==null&&je(e)}function it(e){const{cornerRadiusPx:t}=W(),n=ae(),o=typeof t=="number"?t:e;let i=null;try{const{appState:c,selectedItem:s}=w(d=>d),u=s?.props?.id?String(s.props.id):void 0;i=u?Le(c?.data,u):null}catch{i=null}if(n||!i)return o;const a=i.sectionCorners;return Qt(a)?a:o}function Vo({label:e,changed:t=!1,onReset:n=()=>{}}){const o=ae(),i=it(L),a=o?"Site":"Section";return r(C,{words:y()?.panel,label:l(e),changed:t,detail:D(`${i}px`,o?l("Site styles"):l("the section")),onReset:n})}function Yo(){return r(O,{children:ae()?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 qo(){return le({sidesKey:"cardCornerSides",useFollowed:()=>it(L),mark:r(Vo,{label:q}),hint:r(Yo,{})})}function Jo(){return{type:"custom",render:()=>r(dt,{})}}function Zi(){return{_gShape:b("Shape"),cardCorners:qo(),cardCornerSides:tt(),cardCornersApplyAll:Jo()}}function Qi(){return A("Justify",r(Et,{}),Ke,Ke[0].value)}function el(){return A("Item alignment",r(It,{}),Kn,"stretch")}function tl(){return A(jn,r(qt,{}),Xe,Xe[0].value)}function nl(){return{type:"custom",render:({value:e,onChange:t})=>{const n=re.find(o=>o.value===e)??re[0];return r(h,{label:l(Ue),icon:r(Ce,{}),value:l(n.label),children:r("div",{className:"sf-gallery-layouts",role:"group","aria-label":l(Ue),children:re.map(o=>r(Y,{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:Zo(o.weights).map((i,a)=>r("i",{style:{gridColumn:`span ${i}`}},a))})})},o.value))})})}}}function Zo(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 ol(){return A(Wn,r(_e,{}),Me,Me[0].value)}function rl(){return G(Un,r(Ut,{}),We,Xn,1,We)}function il(e){const t=ce(Gn,Co("`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)."),Mn(e),Ge(e,void 0));return{type:"custom",render:n=>t.render({...n,value:Ge(e,n.value),onChange:o=>n.onChange(o)})}}function ll(e,t,n,o,i,a){return{type:"custom",render:({value:c,onChange:s})=>r(h,{label:l(e),icon:r(Ne,{noun:a}),action:r(C,{words:y()?.panel,label:l(e),changed:!ho(c),detail:l("the Text style in Site styles"),onReset:()=>s(mo),defaultAction:{onPress:()=>s(fo),title:l("Keep this section's own built-in size"),icon:r(Ot,{})}}),children:U({min:t,max:n,step:o,value:typeof c=="number"?c:i,suffix:"px",ariaLabel:e,onChange:s})})}}function al(){return{_gCellWidth:b("Cell width"),gridSpan:A("Positions",r(Ce,{}),[{label:"Auto",value:""},...Array.from({length:ht},(e,t)=>({label:t===0?"1 position":`${t+1} positions`,value:String(t+1)}))],"")}}function J(){let e=null;try{e=w(t=>t).selectedItem}catch{e=null}return e?.props??{}}function Qo({min:e,max:t,step:n,px:o,label:i,onChange:a,desktopKey:c,fallback:s}){const u=J()[c],d=oe(void 0,u,s);return r(O,{children:U({min:e,max:t,step:n,value:oe(o,u,s),readout:!1,ariaLabel:i,notch:d,onChange:a})})}function er({label:e,desktopKey:t,fallback:n,changed:o=!1,onReset:i=()=>{}}){const a=J()[t],c=oe(void 0,a,n);return r(C,{words:y()?.panel,label:l(e),changed:o,detail:l("{value} on desktop",{value:`${c}px`}),onReset:i})}function tr(e){return Qe(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unsetLabel:"Follows Desktop",unsetMark:r(er,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback}),restTrack:t=>r(Qo,{...t,desktopKey:e.desktopKey,fallback:e.fallback})})}const nr={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},or={Top:Oe,Bottom:Ee,Left:Re,Right:Te},rr=e=>{const t=or[e];return r(t,{})};function sl(e={}){const t=e.keys?.top??"sectionPaddingTop",n=e.keys?.bottom??"sectionPaddingBottom",o=e.group!==!1,i=S=>nr[S],a=S=>G(i("Top"),r(Oe,{}),E.min,E.max,E.step,S,"px"),c=(S,j,T,Q=E)=>_("mobile",tr({label:i(S),icon:rr(S),desktopKey:j,min:Q.min,max:Q.max,step:Q.step,fallback:T})),s=e.top??E.min,u=e.bottom??E.min,d="sectionPaddingLeft",f="sectionPaddingRight",p=e.sideBounds??E,m=e.side??p.min,g=e.sidePhone??m,x=e.phone===!0,R=S=>x?_("desktop",S):S;return v({...o?{_gSpacing:b("Padding")}:{},[t]:R(a(s)),...x?{[M(t)]:c("Top",t,s)}:{},...e.only==="top"?{}:{[n]:R(G(i("Bottom"),r(Ee,{}),E.min,E.max,E.step,u,"px")),...x?{[M(n)]:c("Bottom",n,u)}:{}},...e.sides?{[d]:R(G(i("Left"),r(Re,{}),p.min,p.max,p.step,m,"px")),...x?{[M(d)]:c("Left",d,g,p)}:{},[f]:R(G(i("Right"),r(Te,{}),p.min,p.max,p.step,m,"px")),...x?{[M(f)]:c("Right",f,g,p)}:{}}:{}})}const X=["top","right","bottom","left"],ir={top:"sectionPaddingTop",right:"sectionPaddingRight",bottom:"sectionPaddingBottom",left:"sectionPaddingLeft"},lt=e=>typeof e=="number"?e:null;function lr(e,t,n){const o={};for(const i of X)n[i]!==t[i]&&(o[e[i]]=n[i]??void 0);return o}function ar({tier:e,o:t}){let n=null;try{n=de()}catch{n=null}const o=n?.values??{},i=e==="mobile"?t.phoneKeys:t.keys,a=Object.fromEntries(X.map(d=>[d,lt(o[i[d]])])),c=Object.fromEntries(X.map(d=>[d,String(e==="mobile"?lt(o[t.keys[d]])??t.fallback[d]:t.fallback[d])])),[s,u]=$(()=>sn(a,c));return r(h,{label:l("Padding"),icon:r(Wt,{}),action:r(Fe,{each:s,label:l("Each side"),onChange:u}),children:r(an,{label:l("Padding"),each:s,value:a,placeholder:c,min:t.min,max:t.max,step:t.step,onChange:d=>{const f=lr(i,a,d);Object.keys(f).length&&n?.onChangeMany(f)},words:{sides:{top:l("Padding top"),right:l("Padding right"),bottom:l("Padding bottom"),left:l("Padding left")},vertical:l("Top and bottom"),horizontal:l("Left and right"),unit:"px"}})})}function cl(e={}){const t={...ir,...e.keys},n={keys:t,phoneKeys:Object.fromEntries(X.map(s=>[s,M(t[s])])),fallback:{top:0,right:0,bottom:0,left:0,...e.fallback},min:e.min??0,max:e.max??200,step:e.step??4},o=e.phone!==!1,i=s=>{const u={type:"custom",render:()=>r(ar,{tier:s,o:n})};return o?_(s,u):u},a=()=>ne({type:"custom",render:()=>r(Be,{})},"always"),c=X.filter(s=>s!=="top");return v({...e.group===!1?{}:{_gSpacing:b("Padding")},[n.keys.top]:i("desktop"),...o?{[n.phoneKeys.top]:i("mobile")}:{},...Object.fromEntries(c.map(s=>[n.keys[s],a()])),...o?Object.fromEntries(c.map(s=>[n.phoneKeys[s],_("mobile",a())])):{}})}const sr={contained:"Contained",page:"Page",full:"Full"},Z="Width";function ul(e,t=go,n=!0){const o=t.map(i=>({label:bo[i]??sr[i],value:i}));return v({...n?{_gWidth:b(Z)}:{},widthMode:{type:"custom",render:({onChange:i,field:a})=>r(h,{label:l(Z),icon:r(Yt,{}),action:n?r(To,{inherited:a?.inherited??!1,onReset:()=>i(xo),label:Z}):void 0,children:se({options:o,value:a?.currentValue||e,onChange:i,ariaLabel:Z})})}})}function dl(){const e=o=>({type:"custom",render:({value:i,onChange:a})=>r(h,{label:K,icon:k(r(Gt,{})),action:o?o(a):void 0,children:se({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(i)?i:"auto",onChange:a,ariaLabel:K})})}),t=()=>({type:"custom",render:({value:o,onChange:i,field:a})=>{const c=a?.unit==="%"?"%":"px",s=c==="%"?Hn:Bn;return r("div",{className:"sf-field",children:U({min:s.min,max:s.max,step:s.step,value:typeof o=="number"?o:s.fallback,suffix:c,ariaLabel:K,onChange:i})})}}),n=()=>ce("Unit",r(Ie,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return v({_gHeight:b(K),sectionHeightMode:_("desktop",e()),sectionHeightValue:_("desktop",t()),sectionHeightUnit:_("desktop",n()),sectionHeightModePhone:_("mobile",e(o=>r(cr,{onClear:()=>o(void 0)}))),sectionHeightValuePhone:_("mobile",t()),sectionHeightUnitPhone:_("mobile",n())})}function cr({onClear:e}){const t=J(),n=kn(t),o=Dn(t),i=l("{value} on desktop",{value:o.mode==="auto"?l("Auto"):`${o.value}${o.unit}`});return r(C,{words:y()?.panel,label:l(K),changed:n,detail:i,onReset:e})}function pl(){return{_gAnchor:b("Anchor"),anchor:Lo("Anchor name","e.g. about",No)}}function fl(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(bn,{id:s,value:Number.isFinite(u)?new Date(u):null,onChange:d=>i(d?d.toISOString():"")})})}}}function N(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(cn,{checked:s,onChange:i,ariaLabelledBy:u})})}}}function ml(){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(Ae,{}),htmlFor:i,action:r(ke,{id:i,label:"Background",value:Jt(e),onChange:t})})}}}function hl(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(hn,{id:c,checked:a,onChange:o})})}}}function gl(e,t){return{type:"custom",render:({value:n,onChange:o})=>r(h,{label:l(e),action:ke({value:n||t,onChange:o,label:e})})}}const ur=[{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 at({label:e,value:t,onChange:n,points:o=ur}){const i=o.map(a=>({...a,label:l(a.label),...a.title?{title:l(a.title)}:null}));return r(mn,{label:l(e),value:t,points:i,onChange:n})}function bl(e,t=ve,n="mediaImage"){return{type:"custom",render:({value:o,onChange:i})=>r("div",{className:"sf-focal-row",children:r(dr,{label:e,value:o||t,onChange:i,imageProp:n})})}}function dr({label:e,value:t,onChange:n,imageProp:o}){const{selectedItem:i}=w(c=>c),a=i?.props?.[o];return r(Nn,{label:e,value:t,onChange:n,image:typeof a=="string"?a:void 0})}const pr=Se([]);function xl(e,{stacking:t,fallback:n=St}){return{type:"custom",render:({value:o,onChange:i})=>{const a=xt.includes(o)?o:n;return t?r(fr,{label:e,value:a,onChange:i}):st({label:e,value:a,onChange:i,points:pr})}}}function fr({label:e,value:t,onChange:n}){const{appState:o,selectedItem:i}=w(s=>s),a=i?.props?.id?String(i.props.id):void 0,c=a?bt(o?.data,a):[];return st({label:e,value:t,onChange:n,points:Se(c,a)})}function st({label:e,value:t,onChange:n,points:o}){const i=o.find(a=>a.disabled);return r(h,{label:l(e),icon:r(Xt,{}),hint:i?.title?l(i.title):void 0,children:at({label:e,value:yt(t),onChange:n,points:o})})}const Sl={top:r(vt,{}),right:r(Ft,{}),bottom:r(wt,{}),left:r(Lt,{})};function yl(e,t,n,o,i,a){const c=f=>t.find(p=>p.value===f),s=f=>({value:f,label:"",disabled:!0,title:o}),u=f=>{const p=t.find(g=>g.cell===f);if(!p)return s(`missing-${f}`);const m=a?.[f];return m?{value:p.value,label:p.label,icon:m}:{value:p.value,label:p.label}},d=[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:f,onChange:p})=>{const m=t.some(g=>g.value===f)?f:n;return r(h,{label:l(e),icon:i,value:c(m)?.label?l(c(m).label):"",children:at({label:e,value:m,onChange:p,points:d})})}}}const mr="\0note";function A(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,d=s.fallback??o,f=u.some(p=>p.value===a)?a:d;return r(h,{label:l(e),icon:k(t),children:r(pn,{value:f,ariaLabel:l(e),onChange:c,options:[...i?[{label:l(i),value:mr,disabled:!0}]:[],...u.map(p=>({label:l(p.label),value:p.value}))]})})}}}function Cl(e,t,n){return{type:"custom",options:t,render:({value:o,onChange:i,field:a})=>r(wn,{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 _l(e,t,n,o){return{type:"custom",options:t,fallback:n,render:({value:i,onChange:a,field:c})=>r(Fn,{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 Il(e,t={}){return{type:"custom",render:({value:n,onChange:o})=>{const i={value:n,onChange:o,...t};return r(e,{...i})}}}function se({options:e,value:t,onChange:n,ariaLabel:o,disabled:i=!1}){return r(ln,{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 El=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function ce(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:k(t),children:se({options:i,value:i.some(u=>u.value===a)?a:a||s?.currentValue||o,onChange:c,ariaLabel:e})})}}function Rl(e,t,n){return{type:"custom",[he]:!0,render:({value:o,onChange:i})=>r(Pn,{value:o||"",onChange:i,label:e,accept:t,placeholder:n})}}const Tl={HeroSingle:["imageFocal"],ContactLocations:["locations[].photo"],ProcessSteps:["steps[].image"]};function Ol({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 P(h,{label:l(n),icon:r(te,{}),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&&P("div",{style:{marginTop:8,display:"grid",gap:8},children:[r(h,{label:l("Latitude"),icon:r(te,{}),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(te,{}),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 hr(e,t){return t===null||t<0||t>=e.length?"":e[t]?.text??""}function gr(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 Al(e,t){return e===null?null:t>e?e:null}function br(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(Kt,{})};function Pl(e,t,n,o){return{type:"custom",[I]:{control:"textList",label:e,placeholder:n,itemKey:"text",rendering:o},render:({value:i,onChange:a})=>r(xr,{label:e,icon:k(t),items:Array.isArray(i)?i:[],placeholder:n,onChange:a,markup:o==="markup"})}}function xr({label:e,icon:t,items:n,placeholder:o,onChange:i,markup:a=!1}){const c=ee(null),[s,u]=$(null),d=p=>p.map(m=>({text:m?.text??""})),f=p=>{const m=br(n,p,s);m===null&&(c.current=null),u(m),i(d(p))};return r(fn,{label:l(e),icon:t,noun:l("item"),items:n,onChange:f,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:a?r(De,{target:c,value:hr(n,s),onChange:p=>i(gr(n,s??-1,p)),disabled:s===null,label:s===null?l("Formatting — click a row first"):l("Formatting — row {n}",{n:s+1})}):void 0,renderRow:(p,m,g)=>r("input",{type:"text",className:a&&s===m?"sf-list-marking":void 0,value:p?.text??"",placeholder:l(o),"aria-label":l("{label} {n}",{label:l(e),n:m+1}),onChange:x=>g({text:x.target.value}),onFocus:x=>{c.current=x.currentTarget,u(m)}})})}function wl(e,t){const n=`${e.label} — row ${t+1}`;return H({control:"plainText",label:n,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:o,onChange:i})=>r(B,{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 Ll(e){return{_gCards:b("Cards"),coverIndex:A("Cover image",r(Mt,{}),Tn,String(On),e?.coverHint??"A card's opening picture — a card pinned to a finish keeps its own."),imageBackground:Ho("Image background",eo),cardImage:Sr(),spinOnHover:N("Rotate on hover",e?.spinDefault??!0,r($t,{}))}}function Fl(){return{outline:A("Card outline",r(zt,{}),In,Rn),indexBadge:A("Card number",r(Ie,{}),_n,En),showBadge:N("Product badge",!0,r(Ne,{noun:"tag"}))}}function vl(e){const t=e?.bottomDefault??!0;return{_gShowOnCard:b("Show on a card"),showCardPrice:N("Price",!0,r(kt,{})),showCardFinishes:N("Finish swatches",!0,r(Dt,{})),showCardSizes:N("Sizes",t,r(jt,{})),showCardBuy:N("Buy button",t,r(At,{})),showCardPage:N("Page button",t,r(Ae,{}))}}function Sr(){return Qe("Card image",{min:L,max:be,step:pt,hint:"Rounds the picture. The card's own corner is in Site styles."})}function kl(){return le({sidesKey:"cornerSides",step:ft,useFollowed:()=>L,mark:r(yr,{label:mt}),hint:l("Rounds the picture. Left alone it stays square.")})}function yr({label:e,changed:t=!1,onReset:n=()=>{}}){return r(C,{words:y()?.panel,label:l(e),changed:t,onReset:n})}function Dl(){return{type:"custom",render:({value:e,onChange:t})=>r(Cr,{value:typeof e=="string"?e:"",onChange:t})}}function Cr({value:e,onChange:t}){const[n,o]=$(null),i=xe.filter(c=>n===null||F[c].across===n),a=e&&e in F?F[e]:null;return P(O,{children:[r(h,{label:l("Photos in a row"),icon:r(Nt,{}),children:P("div",{className:"sf-gallery-filter",children:[r("button",{type:"button","aria-pressed":n===null,onClick:()=>o(null),children:l("All")}),gt.map(c=>r("button",{type:"button","aria-pressed":n===c,onClick:()=>o(c),children:c},c))]})}),r(h,{label:l("Layout"),icon:r(Bt,{}),value:a?l(a.label):l("Not chosen"),hint:l("{n} of {total} layouts",{n:i.length,total:xe.length}),children:r("div",{className:"sf-gallery-layouts",children:i.map(c=>r(Y,{content:l(F[c].label),className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":e===c,"aria-label":l(F[c].label),onClick:()=>t(e===c?"":c),children:r("span",{className:"sf-gallery-pic",children:F[c].desktop.map(([s,u],d)=>r("i",{style:{gridColumn:`span ${s}`,gridRow:`span ${u}`}},d))})})},c))})})]})}export{No as ANCHOR_HINT,wi as BOUND_TO_POST_NOTE,Bi as BUCKET_ICONS,Tl as CUSTOM_FIELD_MEDIA,Ol as CoordsField,Sl as EDGE_ARROWS,ve as FOCAL_DEFAULT,ur as FOCAL_POINTS,z as FOLD_FIELD_MARKER,at as FocalPicker,Bo as GroupLabel,Ao as HIGHLIGHT_HINT,B as HidableTextField,me as LINK_FIELD_MARKER,Ii as Label,he as MEDIA_FIELD_MARKER,El as MEDIA_TYPE_OPTIONS,ko as PanelNoteLine,st as PlacementGridView,ge as SCAFFOLD_FIELD_MARKER,Ml as SCALAR_TEXT_CONTROLS,nt as SECTION_BLEEDS_HINT,ir as SIDE_PAD_KEYS,Fo as SectionHeading,se as Segmented,Ro as SiteGapDefaultReset,U as Slider,Ze as Swatches,Gl as TEXT_CONTROL_KINDS,I as TEXT_FIELD_MARKER,Nl as TICKER_ITEMS_ROW,xr as TextListField,To as WidthDefaultReset,br as aimAfterListChange,pl as anchorFields,D as backTo,zi as backgroundField,el as boxAlignField,ol as boxBlockSpacingField,Qi as boxJustifyField,rl as boxPhoneRowField,nl as boxShareField,tl as boxWrapField,Wi as bucketHeader,qo as cardCornersField,Ho as cardImageBackgroundField,Sr as cardImageField,Ll as cardMediaFields,Zi as cardShapeFields,vl as cardShowFields,Fl as cardStyleFields,al as cellWidthFields,hl as checkbox,gl as colorInput,vi as copyText,tt as cornerSidesField,le as cornersRowField,fl as dateTime,Xi as designGroupHeader,il as directionField,yl as edgePad,Hi as entriesHiddenForTab,bl as focalPicker,Al as focusAfterRemove,ji as foldMarker,V as foldMetaOf,Do as foldTitleOf,Dl as galleryLayoutField,Yi as gapField,b as group,dl as heightFields,fe as hidableText,wo as hintIsWhileTyping,k as iconOf,kl as imageCornersField,Pi as inOwnBox,Ki as isBucketHeader,Ui as isDesignGroupHeader,_o as isNoGlyph,ki as linkField,Cl as multiSelect,Co as noGlyph,ml as pageBackgroundField,Gi as panelNote,tr as phoneOverrideField,xl as placementField,Lo as plainText,Di as plainTextarea,Qe as pxField,$i as quietMarker,pe as readHidable,hr as rowText,_l as searchSelect,Mi as section,Ji as sectionAnimationFields,rt as sectionBorderField,Wo as sectionCornersField,qi as sectionShapeFields,Vi as sectionThemeFields,ce as segmented,A as select,gr as setRowText,cl as sidesPaddingFields,lr as sidesPaddingPatch,ll as sizeField,G as slider,Il as sourceField,sl as spacingFields,Li as text,ut as textFieldIdentifier,Ti as textFieldOffPage,Ai as textFieldPanelOnly,Pl as textList,wl as textListRowField,Fi as textarea,N as toggle,Rl as upload,Io as usePageWidthDetail,Eo as useSiteGapDetail,ul as widthField,Ni as withIdentifier,Ri as withOffPage,Oi as withPanelOnly,Ei as withScaffold};
1
+ "use client";import{jsx as r,jsxs as P,Fragment as O}from"react/jsx-runtime";import{cloneElement as ue,useId as ct,useRef as ee,useState as $}from"react";import{useEasel as w,useSelectedFields as de}from"efficient-easel/easel";import{say as l,editorEaselWords as y}from"../editor-words.js";import{readHidable as pe,hidableText as fe}from"./hidable.js";import{FOLD_FIELD_MARKER as z,LINK_FIELD_MARKER as me,MEDIA_FIELD_MARKER as he,SCAFFOLD_FIELD_MARKER as ge,TEXT_FIELD_MARKER as I,foldMetaOf as V,textFieldIdentifier as ut}from"./field-markers.js";import dt from"../../components/ApplyCornersToSiblings.js";import{CARD_IMAGE_RADIUS_STEP as pt,CORNER_RADIUS_MAX as be,CORNER_RADIUS_MIN as L}from"../content/card-image-shape.js";import{IMAGE_CORNER_STEP as ft,IMAGE_CORNERS_LABEL as mt}from"../content/image-corners.js";import{GRID_MAX_COLUMNS as ht}from"../content/grid-span.js";import{GALLERY_ACROSS_BUCKETS as gt,GALLERY_LAYOUTS as F,GALLERY_LAYOUT_KEYS as xe}from"../content/gallery-layout.js";import{anchorSiblingsOf as bt,HERO_GROUP_PLACEMENTS as xt,HERO_GROUP_PLACEMENT_DEFAULT as St,normalisePlacement as yt,placementPoints as Se}from"../hero-group-placement.js";import Ct from"../../components/KeepHint.js";import{AdjustIcon as _t,AlignLeftIcon as It,AlignSeparateIcon as Et,AnimationIcon as ye,BackgroundIcon as Rt,BorderAllIcon as Tt,BlockSectionIcon as Ot,CartIcon as At,ColumnWidthsIcon as Ce,ColumnsIcon as Nt,CornerIcon as Pt,DirectionDownIcon as wt,DirectionLeftIcon as Lt,DirectionRightIcon as Ft,DirectionUpIcon as vt,DollarIcon as kt,FinishIcon as Dt,GapIcon as _e,GridIcon as Bt,GroundIcon as Ht,HashIcon as Ie,HeightIcon as Gt,ImageIcon as Mt,ListIcon as Kt,LocationIcon as te,PaddingAllIcon as Wt,PaddingBottomIcon as Ee,PaddingLeftIcon as Re,PaddingRightIcon as Te,PaddingTopIcon as Oe,PageIcon as Ae,PhoneIcon as Ut,PlacementIcon as Xt,ProductSizeIcon as jt,RotateIcon as $t,SquareIcon as zt,TypeIcon as Vt,WidthIcon as Yt,WrapIcon as qt}from"efficient-easel/icons";import{FieldGlyph as Ne}from"../../components/FieldGlyph.js";import{resolvePageBackground as Jt}from"../content/page-background.js";import{CORNER_SIDES as Pe,CORNER_SIDE_POINTS as Zt,hasOwnSectionCorners as Qt,normalizeCornerSides as we}from"../content/section-corners.js";import{SECTION_MOTION_NONE as en,SECTION_MOTION_OPTIONS as tn}from"../content/section-animation.js";import{enclosingSectionProps as Le}from"./enclosing-section.js";import{SettingsDefaultReset as C,SettingsField as h,SettingsGroupHead as nn,SettingsGroupSub as on,SettingsBorder as rn,SettingsSegmented as ln,SettingsSides as an,SettingsSidesEach as Fe,sidesStartEach as sn,SettingsSwitch as cn,borderSides as un,borderStartEach as dn}from"efficient-easel/panel";import{FieldSelect as pn,ListField as fn}from"efficient-easel/fields";import{AlignmentGrid as mn,Checkbox as hn,CornersInput as gn,DateTimePicker as bn,FOCAL_DEFAULT as ve,Slider as xn,Tooltip as Y}from"efficient-shell/ui";import{ColourControl as ke}from"./ColourControl.js";import De from"./MarkupToolbar.js";import{deviceField as _}from"./device-fields.js";import{NO_CONTROL_FIELD as Sn,NoControlMark as Be,noControlField as ne}from"./panel-no-control-mark.js";import{OWN_BOX_FIELD as yn}from"./own-box.js";import{phoneKey as M,resolvePhoneValue as oe}from"./phone-override.js";import{SuppressibleText as Cn}from"./section-text-suppress.js";import{CARD_INDEX_OPTIONS as _n,CARD_OUTLINE_OPTIONS as In,DEFAULT_CARD_INDEX_FORMAT as En,DEFAULT_CARD_OUTLINE as Rn}from"../sections/product-card-style.js";import{COVER_INDEX_OPTIONS as Tn,DEFAULT_COVER_INDEX as On}from"../sections/card-cover-index.js";import{SCALAR_TEXT_CONTROLS as An}from"./text-control-kinds.js";import Nn from"../../components/ImageFocusRow.js";import Pn from"../../components/MediaUploadField.js";import wn from"../../components/MultiSelectField.js";import Ln from"../../components/SectionThemePicker.js";import Fn from"../../components/SearchSelectField.js";import vn from"../../components/StorefrontLinkField.js";import He from"../../components/UiIcon.js";import{SECTION_PADDING as E}from"../content/section-padding.js";import{hasPhoneHeight as kn,resolveSectionMinHeight as Dn}from"../content/section-min-height.js";import{SECTION_MIN_HEIGHT as Bn,SECTION_MIN_HEIGHT_GROUP_LABEL as K,SECTION_SCREEN_PCT as Hn}from"../content/section-min-height.js";import{CONTAINER_DIRECTION_LABEL as Gn,containerDirectionPoints as Mn,resolveContainerDirection as Ge}from"../content/container-direction.js";import{BOX_ALIGN_POINTS as Kn,BOX_BLOCK_SPACING_LABEL as Wn,BOX_BLOCK_SPACING_POINTS as Me,BOX_JUSTIFY_POINTS as Ke,BOX_PHONE_ROW_LABEL as Un,BOX_PHONE_ROW_MAX as Xn,BOX_PHONE_ROW_MIN as We,BOX_SHARE_LABEL as Ue,BOX_SHARE_POINTS as re,BOX_WRAP_LABEL as jn,BOX_WRAP_POINTS as Xe}from"../content/box-layout.js";import{usePreviewHeader as W}from"../../components/PreviewHeaderContext.js";import{BORDER_MAX as $n}from"../content/borders.js";import{DEFAULT_SURFACES as zn,normalizeTheme as Vn}from"../theme.js";import{CONTAINER_GAP as ie,CONTAINER_GAP_BUILT_IN as Yn,GAP_FIELD_CONTAINER as qn,hasOwnContainerGap as Jn,resolveContainerGap as Zn}from"../content/container-gap.js";import{CARD_IMAGE_BG_INHERIT as Qn,CARD_IMAGE_BG_OFF as eo,CARD_IMAGE_BG_SWATCH_NAMES as to,CARD_IMAGE_BG_SWATCHES as no,isCardImageBackgroundInheriting as oo,cardImageBackgroundChoice as ro,THEME_CARD_IMAGE_BG as io}from"../content/card-image-background.js";import{SECTION_BG_INHERIT as lo,SECTION_BG_SWATCHES as ao,SECTION_BG_SWATCH_NAMES as so,THEME_SECTION_BG as co,isSectionBackgroundInheriting as uo}from"../content/section-background.js";import{SECTION_THEME_GROUP_LABEL as po}from"../content/section-surface.js";import{TYPE_SIZE_FIXED as fo,TYPE_SIZE_INHERIT as mo,isTypeSizeInheriting as ho}from"../content/section-type-size.js";import{SECTION_WIDTH_CHOICES as go,WIDTH_CHOICE_LABEL as bo,WIDTH_INHERIT as xo,resolveWidth as So,sectionRunsFullWidth as je}from"../content/section-width.js";import{useFoldHeadingLevel as $e}from"./panel-heading-scope.js";import{withStyleKind as yo}from"efficient-easel/style-clipboard";function v(e){for(const[t,n]of Object.entries(e))n&&typeof n=="object"&&!V(n)&&yo(n,`section:${t}`);return e}function Ii({children:e}){return r("div",{className:"sf-field-label",children:typeof e=="string"?l(e):e})}function ze(){return null}function Co(e){if(!e.trim())throw new Error("noGlyph() needs a reason naming the ruling that decided it.");return r(ze,{},e)}function _o(e){return e.type===ze}function k(e){return _o(e)?void 0:e}function D(e,t){return l("{value} from {from}",{value:e,from:t})}function Io(){const{appState:e}=w(i=>i),t=e.data.root?.props??{},{mode:n,pageWidth:o}=So(t,"full");return n==="page"?D(`${o}px`,l("the page")):n==="contained"?D(l("Contained"),l("the page")):D(l("Full"),l("the page"))}function Eo(){const{blockGap:e}=W();return e===null?l("this container's own spacing"):D(`${e}px`,l("Site styles"))}function Ro({inherited:e,onReset:t,label:n}){return r(C,{words:y()?.panel,label:l(n),changed:!e,detail:Eo(),onReset:t})}function To({inherited:e,onReset:t,label:n}){return r(C,{words:y()?.panel,label:l(n),changed:!e,detail:Io(),onReset:t})}function B({value:e,onChange:t,label:n,placeholder:o,hint:i,multiline:a,hideable:c=!0,markup:s=!0}){const{text:u,hidden:d}=pe(e),f=ee(null),p=ee(null),m=T=>t(c?{text:T,hidden:d}:T),g=()=>t({text:u,hidden:!d}),x=c&&d,R=ct(),S=i?wo(i)?r("span",{className:"sf-hint-keep sf-hint-while-typing",children:l(i)}):r(Ct,{children:l(i)}):void 0,j=d?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(Vt,{}),htmlFor:R,className:x?"is-hidden":void 0,hint:S,action:c?r(Y,{content:j,children:r("button",{type:"button",className:"sf-field-eye","aria-pressed":d,"aria-label":j,onClick:g,children:d?r(He,{name:"eye-off",size:14}):r(He,{name:"eye",size:14})})}):void 0,children:P("div",{className:"sf-copybox",children:[s&&r(De,{target:a?p:f,value:u,onChange:m}),a?r("textarea",{id:R,ref:p,value:u,placeholder:o===void 0?void 0:l(o),onChange:T=>m(T.target.value)}):r("input",{id:R,ref:f,type:"text",value:u,placeholder:o===void 0?void 0:l(o),onChange:T=>m(T.target.value)})]})})}function Ei(e,t){return{...e,[ge]:t}}function Ri(e){const t=e[I];if(!t)throw new Error("withOffPage: the field holds no authored text");return{...e,[I]:{...t,offPage:!0}}}function Ti(e){return!e||typeof e!="object"?!1:e[I]?.offPage===!0}const Ve="sfPanelOnly";function Oi(e){if(!e[I])throw new Error("withPanelOnly: the field holds no authored text");return{...e,[Ve]:!0}}function Ai(e){return!!e&&typeof e=="object"&&e[Ve]===!0}function Ni(e){const t=e[I];if(!t)throw new Error("withIdentifier: the field holds no authored text");return{...e,[I]:{...t,identifier:!0}}}import{TEXT_CONTROL_KINDS as Gl,SCALAR_TEXT_CONTROLS as Ml}from"./text-control-kinds.js";function Pi(e,t){if(!e[I])throw new Error("inOwnBox: the field holds no authored text");const{[Sn]:o,...i}=e;return{...i,[yn]:!0,render:t}}const Oo=new Set(An),H=(e,t)=>{const n={...t,[I]:e};if(!Oo.has(e.control))return n;const o=t.render;return{...ne(n,"authored-copy"),render:i=>r(Cn,{name:i.name,children:o(i)})}},wi="Everything else on this block comes from the linked post. Unlink it to edit by hand.",Ao="Select a word, then press the highlighter.",No="A short name so a link can jump straight to this section, like yoursite.com/page#about.",Po=new Set([Ao]),wo=e=>Po.has(e);function Li(e,t,n){return H({control:"text",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n})})}function Fi(e,t,n){return H({control:"textarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0})})}function Lo(e,t,n){return H({control:"plainText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1,markup:!1})})}function vi(e,t,n){return H({control:"copyText",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n,hideable:!1})})}function ki(e){return{type:"custom",[me]:{label:e},render:({value:t,onChange:n})=>r(vn,{value:fe(t),onChange:n,label:e})}}function Di(e,t,n){return H({control:"plainTextarea",label:e,placeholder:t,hint:n},{type:"custom",render:({value:o,onChange:i})=>r(B,{value:o,onChange:i,label:e,placeholder:t,hint:n,multiline:!0,hideable:!1})})}const Bi={Design:_t,Animation:ye};function Hi(e,t){return e.includes("Design")?t!=="Design":null}function Fo({label:e}){return r(nn,{title:l(e),level:$e(1)})}function vo({level:e,label:t}){return e===1?r(Fo,{label:t}):r(Bo,{label:t})}function Ye(e,t){return{type:"custom",[z]:{label:e,level:t},render:()=>r(vo,{level:t,label:e})}}function b(e){return Ye(e,2)}function Gi(e){return{type:"custom",render:()=>r(ko,{text:e})}}function ko({text:e}){return r("p",{className:"sf-note",children:l(e)})}function Mi(e){return Ye(e,1)}function Ki(e){return V(e)!==null&&e?.tabs!==void 0}const qe=new Map;function Wi(e,t){const n=`${e}\0${t?t.join(""):""}`,o=qe.get(n)??{type:"custom",tabs:t,[z]:{label:e,level:1},bucket:e,marker:!0,render:()=>r(O,{})};return qe.set(n,o),o}function Ui(e){return V(e)!==null&&e?.designGroup!==void 0}const Je=new Map;function Xi(e){const t=Je.get(e)??{type:"custom",[z]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>r(O,{})};return Je.set(e,t),t}function Do(e){const t=e;return t?.marker===!0&&typeof t.fold=="string"?t.fold:null}function ji(e,t){return Do(e)===t?e:{...e,marker:!0,fold:t,render:()=>r(O,{})}}function $i(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(O,{})}}function Bo({label:e}){return r(on,{title:l(e),level:$e(2)})}function Ze({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 P("div",{className:"sf-swatches",children:[e.map(s=>{const u=o?.[s]?l(o[s]):s;return r(Y,{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 zi(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=uo(n,t);return r(h,{label:l(e),icon:r(Rt,{}),changed:!i,action:r(C,{words:y()?.panel,label:l(e),changed:!i,detail:l("the theme's section background"),onReset:()=>o(lo)}),children:Ze({swatches:ao,current:i?co:n??t??"",onPick:o,names:so})})}}}function Ho(e,t){return{type:"custom",render:({value:n,onChange:o})=>{const i=n,a=oo(i,t);return r(h,{label:l(e),icon:r(Ht,{}),changed:!a,action:r(C,{words:y()?.panel,label:l(e),changed:!a,detail:l("the theme's image stage"),onReset:()=>o(Qn)}),children:Ze({swatches:no,current:a?io:ro(i,t),onPick:o,names:to})})}}}function Vi(e=n=>n,t){return v({_gSectionTheme:b(po),sectionAccent:{type:"custom",render:({value:n,onChange:o})=>r(Ln,{value:e(n),onChange:o,followLabel:t})}})}function U({min:e,max:t,step:n,value:o,onChange:i,suffix:a="",readout:c=!0,notch:s,ariaLabel:u,disabled:d=!1}){const f=s!==void 0&&Number.isFinite(s)&&s>=e&&s<=t;return r("div",{className:f?"sf-slider has-notch":"sf-slider",style:f?{"--sf-notch":(s-e)/(t-e)}:void 0,children:r(xn,{min:e,max:t,step:n,value:o,suffix:a||void 0,showInput:c,label:u===void 0?void 0:l(u),disabled:d,size:"sm",className:"sf-slider-track",onChange:p=>{p!==null&&p!==o&&i(p)}})})}function G(e,t,n,o,i,a,c="",s){return{type:"custom",render:u=>r(h,{label:l(e),icon:k(t),action:s?s("storedValue"in u?u.storedValue:u.value,u.onChange):void 0,children:U({min:n,max:o,step:i,value:typeof u.value=="number"?u.value:a,suffix:c,ariaLabel:e,onChange:u.onChange})})}}function Qe(e,t){const{min:n,max:o,step:i=1,unsetLabel:a,hint:c,restTrack:s,unsetMark:u,icon:d}=t;return{type:"custom",render:({value:f,onChange:p})=>{const m=typeof f=="number"?f:null,g=m===null;return r(h,{label:l(e),icon:d?k(d):void 0,value:g?u||a===void 0?void 0:l(a):`${m}px`,changed:!g,action:u?ue(u,{changed:!g,onReset:()=>p(null)}):r(C,{words:y()?.panel,label:l(e),changed:!g,onReset:()=>p(null)}),hint:typeof c=="string"?l(c):c,children:s?s({min:n,max:o,step:i,px:m,label:e,onChange:p}):U({min:n,max:o,step:i,value:m??n,readout:!1,ariaLabel:e,onChange:p})})}}}function Yi(e){const t=G("Gap",r(_e,{}),ie.min,ie.max,ie.step,Yn[e],"px",(n,o)=>r(Ro,{inherited:!Jn(e,n),onReset:()=>o(void 0),label:"Gap"}));return{type:"custom",[qn]:e,render:n=>t.render({...n,value:Zn(e,n.value,n.field?.siteGap),storedValue:n.value,onChange:o=>n.onChange(o)})}}const q="Corners";function le(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(q),icon:r(Pt,{}),changed:i,action:ue(e.mark,{changed:i,onReset:()=>n(null)}),hint:e.hint,children:r(Go,{tier:e,px:o,onRadius:n})})}}}function et(e){let t=null;try{t=de()}catch{t=null}return[t?.values?.[e],n=>t?.onChange(e,n)]}function Go({tier:e,px:t,onRadius:n}){const o=e.useFollowed(),i=e.useClosedReason?e.useClosedReason():null,[a,c]=et(e.sidesKey),s=we(a)??[...Pe];return r(gn,{label:l(q),value:s,corners:Zt,onChange:u=>{const d=we(u)??[];c(d.length===Pe.length?null:d)},radius:t,onRadiusChange:n,radiusMin:L,radiusMax:be,radiusStep:e.step??1,radiusPlaceholder:String(o),disabled:i!==null,disabledReason:i??void 0})}function tt(){return ne({type:"custom",render:()=>r(Be,{})},"always")}function Mo({label:e,changed:t=!1,onReset:n=()=>{}}){const{cornerRadiusPx:o}=W(),i=typeof o=="number"?`${o}px`:l("not set");return r(C,{words:y()?.panel,label:l(e),changed:t,detail:o==null?l("the built-in corners"):D(i,l("Site styles")),onReset:n})}function Ko(){const{cornerRadiusPx:e}=W();return typeof e=="number"?e:L}function Wo(){return le({sidesKey:"sectionCornerSides",useFollowed:Ko,useClosedReason:()=>ot()?l(nt):null,mark:r(Mo,{label:q}),hint:r(Uo,{})})}const nt="This section runs edge to edge, so its corners sit off the page. Set Width to Content width to use them.";function ot(){return je(J())}function Uo(){return r(O,{children:ot()?nt:"Follows Site styles ▸ Basics ▸ Corners until you set a number here."})}function qi(){return v({_gShape:b("Shape"),sectionCorners:Wo(),sectionCornerSides:tt(),sectionBorder:rt("desktop"),sectionBorderPhone:rt("mobile")})}const Xo=()=>({width:l("Border width"),sides:{top:l("Border top"),right:l("Border right"),bottom:l("Border bottom"),left:l("Border left")},style:l("Border style"),styles:{solid:l("Solid"),dashed:l("Dashed"),dotted:l("Dotted")},color:l("Border color"),unit:"px"});function jo(e){const t=Object.fromEntries(Object.entries(e).filter(([,n])=>n!=null&&n!==""));return Object.keys(t).length?t:void 0}function $o(){let e;try{const t=Vn(W().theme);e=t.themes[t.selected]?.line}catch{e=void 0}return e||zn.line}function zo({value:e,onChange:t,tier:n}){const[o]=et("sectionBorder"),i=$o(),a=e&&typeof e=="object"?e:{},c=n==="mobile"?o&&typeof o=="object"?o:{}:{},[s,u]=$(()=>dn(a,c)),d=Xo();return r(h,{label:l("Border"),icon:r(Tt,{}),action:r(Fe,{each:s,label:l("Each side"),onChange:u}),children:r(rn,{label:l("Border"),value:a,each:s,onChange:f=>t(jo(f)),placeholder:{sides:un(c),style:c.style??"solid",color:c.color||i},presets:[i],words:d,max:$n})})}function rt(e){return _(e,{type:"custom",render:({value:t,onChange:n})=>r(zo,{value:t,onChange:n,tier:e})})}function Ji(){return{_gMotion:b("Motion"),sectionAnimation:ce("Entrance",r(ye,{}),[...tn],en)}}function ae(){let e=null;try{const{appState:t,selectedItem:n}=w(i=>i),o=n?.props?.id?String(n.props.id):void 0;e=o?Le(t?.data,o):null}catch{e=null}return e!==null&&je(e)}function it(e){const{cornerRadiusPx:t}=W(),n=ae(),o=typeof t=="number"?t:e;let i=null;try{const{appState:c,selectedItem:s}=w(d=>d),u=s?.props?.id?String(s.props.id):void 0;i=u?Le(c?.data,u):null}catch{i=null}if(n||!i)return o;const a=i.sectionCorners;return Qt(a)?a:o}function Vo({label:e,changed:t=!1,onReset:n=()=>{}}){const o=ae(),i=it(L),a=o?"Site":"Section";return r(C,{words:y()?.panel,label:l(e),changed:t,detail:D(`${i}px`,o?l("Site styles"):l("the section")),onReset:n})}function Yo(){return r(O,{children:ae()?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 qo(){return le({sidesKey:"cardCornerSides",useFollowed:()=>it(L),mark:r(Vo,{label:q}),hint:r(Yo,{})})}function Jo(){return{type:"custom",render:()=>r(dt,{})}}function Zi(){return{_gShape:b("Shape"),cardCorners:qo(),cardCornerSides:tt(),cardCornersApplyAll:Jo()}}function Qi(){return A("Justify",r(Et,{}),Ke,Ke[0].value)}function el(){return A("Item alignment",r(It,{}),Kn,"stretch")}function tl(){return A(jn,r(qt,{}),Xe,Xe[0].value)}function nl(){return{type:"custom",render:({value:e,onChange:t})=>{const n=re.find(o=>o.value===e)??re[0];return r(h,{label:l(Ue),icon:r(Ce,{}),value:l(n.label),children:r("div",{className:"sf-gallery-layouts",role:"group","aria-label":l(Ue),children:re.map(o=>r(Y,{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:Zo(o.weights).map((i,a)=>r("i",{style:{gridColumn:`span ${i}`}},a))})})},o.value))})})}}}function Zo(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 ol(){return A(Wn,r(_e,{}),Me,Me[0].value)}function rl(){return G(Un,r(Ut,{}),We,Xn,1,We)}function il(e){const t=ce(Gn,Co("`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)."),Mn(e),Ge(e,void 0));return{type:"custom",render:n=>t.render({...n,value:Ge(e,n.value),onChange:o=>n.onChange(o)})}}function ll(e,t,n,o,i,a){return{type:"custom",render:({value:c,onChange:s})=>r(h,{label:l(e),icon:r(Ne,{noun:a}),action:r(C,{words:y()?.panel,label:l(e),changed:!ho(c),detail:l("the Text style in Site styles"),onReset:()=>s(mo),defaultAction:{onPress:()=>s(fo),title:l("Keep this section's own built-in size"),icon:r(Ot,{})}}),children:U({min:t,max:n,step:o,value:typeof c=="number"?c:i,suffix:"px",ariaLabel:e,onChange:s})})}}function al(){return{_gCellWidth:b("Cell width"),gridSpan:A("Positions",r(Ce,{}),[{label:"Auto",value:""},...Array.from({length:ht},(e,t)=>({label:t===0?"1 position":`${t+1} positions`,value:String(t+1)}))],"")}}function J(){let e=null;try{e=w(t=>t).selectedItem}catch{e=null}return e?.props??{}}function Qo({min:e,max:t,step:n,px:o,label:i,onChange:a,desktopKey:c,fallback:s}){const u=J()[c],d=oe(void 0,u,s);return r(O,{children:U({min:e,max:t,step:n,value:oe(o,u,s),readout:!1,ariaLabel:i,notch:d,onChange:a})})}function er({label:e,desktopKey:t,fallback:n,changed:o=!1,onReset:i=()=>{}}){const a=J()[t],c=oe(void 0,a,n);return r(C,{words:y()?.panel,label:l(e),changed:o,detail:l("{value} on desktop",{value:`${c}px`}),onReset:i})}function tr(e){return Qe(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unsetLabel:"Follows Desktop",unsetMark:r(er,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback}),restTrack:t=>r(Qo,{...t,desktopKey:e.desktopKey,fallback:e.fallback})})}const nr={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},or={Top:Oe,Bottom:Ee,Left:Re,Right:Te},rr=e=>{const t=or[e];return r(t,{})};function sl(e={}){const t=e.keys?.top??"sectionPaddingTop",n=e.keys?.bottom??"sectionPaddingBottom",o=e.group!==!1,i=S=>nr[S],a=S=>G(i("Top"),r(Oe,{}),E.min,E.max,E.step,S,"px"),c=(S,j,T,Q=E)=>_("mobile",tr({label:i(S),icon:rr(S),desktopKey:j,min:Q.min,max:Q.max,step:Q.step,fallback:T})),s=e.top??E.min,u=e.bottom??E.min,d="sectionPaddingLeft",f="sectionPaddingRight",p=e.sideBounds??E,m=e.side??p.min,g=e.sidePhone??m,x=e.phone===!0,R=S=>x?_("desktop",S):S;return v({...o?{_gSpacing:b("Padding")}:{},[t]:R(a(s)),...x?{[M(t)]:c("Top",t,s)}:{},...e.only==="top"?{}:{[n]:R(G(i("Bottom"),r(Ee,{}),E.min,E.max,E.step,u,"px")),...x?{[M(n)]:c("Bottom",n,u)}:{}},...e.sides?{[d]:R(G(i("Left"),r(Re,{}),p.min,p.max,p.step,m,"px")),...x?{[M(d)]:c("Left",d,g,p)}:{},[f]:R(G(i("Right"),r(Te,{}),p.min,p.max,p.step,m,"px")),...x?{[M(f)]:c("Right",f,g,p)}:{}}:{}})}const X=["top","right","bottom","left"],ir={top:"sectionPaddingTop",right:"sectionPaddingRight",bottom:"sectionPaddingBottom",left:"sectionPaddingLeft"},lt=e=>typeof e=="number"?e:null;function lr(e,t,n){const o={};for(const i of X)n[i]!==t[i]&&(o[e[i]]=n[i]??void 0);return o}function ar({tier:e,o:t}){let n=null;try{n=de()}catch{n=null}const o=n?.values??{},i=e==="mobile"?t.phoneKeys:t.keys,a=Object.fromEntries(X.map(d=>[d,lt(o[i[d]])])),c=Object.fromEntries(X.map(d=>[d,String(e==="mobile"?lt(o[t.keys[d]])??t.fallback[d]:t.fallback[d])])),[s,u]=$(()=>sn(a,c));return r(h,{label:l("Padding"),icon:r(Wt,{}),action:r(Fe,{each:s,label:l("Each side"),onChange:u}),children:r(an,{label:l("Padding"),each:s,value:a,placeholder:c,min:t.min,max:t.max,step:t.step,onChange:d=>{const f=lr(i,a,d);Object.keys(f).length&&n?.onChangeMany(f)},words:{sides:{top:l("Padding top"),right:l("Padding right"),bottom:l("Padding bottom"),left:l("Padding left")},vertical:l("Top and bottom"),horizontal:l("Left and right"),unit:"px"}})})}function cl(e={}){const t={...ir,...e.keys},n={keys:t,phoneKeys:Object.fromEntries(X.map(s=>[s,M(t[s])])),fallback:{top:0,right:0,bottom:0,left:0,...e.fallback},min:e.min??0,max:e.max??200,step:e.step??4},o=e.phone!==!1,i=s=>{const u={type:"custom",render:()=>r(ar,{tier:s,o:n})};return o?_(s,u):u},a=()=>ne({type:"custom",render:()=>r(Be,{})},"always"),c=X.filter(s=>s!=="top");return v({...e.group===!1?{}:{_gSpacing:b("Padding")},[n.keys.top]:i("desktop"),...o?{[n.phoneKeys.top]:i("mobile")}:{},...Object.fromEntries(c.map(s=>[n.keys[s],{...a(),reachedBy:n.keys.top}])),...o?Object.fromEntries(c.map(s=>[n.phoneKeys[s],_("mobile",a())])):{}})}const sr={contained:"Contained",page:"Page",full:"Full"},Z="Width";function ul(e,t=go,n=!0){const o=t.map(i=>({label:bo[i]??sr[i],value:i}));return v({...n?{_gWidth:b(Z)}:{},widthMode:{type:"custom",render:({onChange:i,field:a})=>r(h,{label:l(Z),icon:r(Yt,{}),action:n?r(To,{inherited:a?.inherited??!1,onReset:()=>i(xo),label:Z}):void 0,children:se({options:o,value:a?.currentValue||e,onChange:i,ariaLabel:Z})})}})}function dl(){const e=o=>({type:"custom",render:({value:i,onChange:a})=>r(h,{label:K,icon:k(r(Gt,{})),action:o?o(a):void 0,children:se({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(i)?i:"auto",onChange:a,ariaLabel:K})})}),t=()=>({type:"custom",render:({value:o,onChange:i,field:a})=>{const c=a?.unit==="%"?"%":"px",s=c==="%"?Hn:Bn;return r("div",{className:"sf-field",children:U({min:s.min,max:s.max,step:s.step,value:typeof o=="number"?o:s.fallback,suffix:c,ariaLabel:K,onChange:i})})}}),n=()=>ce("Unit",r(Ie,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return v({_gHeight:b(K),sectionHeightMode:_("desktop",e()),sectionHeightValue:_("desktop",t()),sectionHeightUnit:_("desktop",n()),sectionHeightModePhone:_("mobile",e(o=>r(cr,{onClear:()=>o(void 0)}))),sectionHeightValuePhone:_("mobile",t()),sectionHeightUnitPhone:_("mobile",n())})}function cr({onClear:e}){const t=J(),n=kn(t),o=Dn(t),i=l("{value} on desktop",{value:o.mode==="auto"?l("Auto"):`${o.value}${o.unit}`});return r(C,{words:y()?.panel,label:l(K),changed:n,detail:i,onReset:e})}function pl(){return{_gAnchor:b("Anchor"),anchor:Lo("Anchor name","e.g. about",No)}}function fl(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(bn,{id:s,value:Number.isFinite(u)?new Date(u):null,onChange:d=>i(d?d.toISOString():"")})})}}}function N(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(cn,{checked:s,onChange:i,ariaLabelledBy:u})})}}}function ml(){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(Ae,{}),htmlFor:i,action:r(ke,{id:i,label:"Background",value:Jt(e),onChange:t})})}}}function hl(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(hn,{id:c,checked:a,onChange:o})})}}}function gl(e,t){return{type:"custom",render:({value:n,onChange:o})=>r(h,{label:l(e),action:ke({value:n||t,onChange:o,label:e})})}}const ur=[{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 at({label:e,value:t,onChange:n,points:o=ur}){const i=o.map(a=>({...a,label:l(a.label),...a.title?{title:l(a.title)}:null}));return r(mn,{label:l(e),value:t,points:i,onChange:n})}function bl(e,t=ve,n="mediaImage"){return{type:"custom",render:({value:o,onChange:i})=>r("div",{className:"sf-focal-row",children:r(dr,{label:e,value:o||t,onChange:i,imageProp:n})})}}function dr({label:e,value:t,onChange:n,imageProp:o}){const{selectedItem:i}=w(c=>c),a=i?.props?.[o];return r(Nn,{label:e,value:t,onChange:n,image:typeof a=="string"?a:void 0})}const pr=Se([]);function xl(e,{stacking:t,fallback:n=St}){return{type:"custom",render:({value:o,onChange:i})=>{const a=xt.includes(o)?o:n;return t?r(fr,{label:e,value:a,onChange:i}):st({label:e,value:a,onChange:i,points:pr})}}}function fr({label:e,value:t,onChange:n}){const{appState:o,selectedItem:i}=w(s=>s),a=i?.props?.id?String(i.props.id):void 0,c=a?bt(o?.data,a):[];return st({label:e,value:t,onChange:n,points:Se(c,a)})}function st({label:e,value:t,onChange:n,points:o}){const i=o.find(a=>a.disabled);return r(h,{label:l(e),icon:r(Xt,{}),hint:i?.title?l(i.title):void 0,children:at({label:e,value:yt(t),onChange:n,points:o})})}const Sl={top:r(vt,{}),right:r(Ft,{}),bottom:r(wt,{}),left:r(Lt,{})};function yl(e,t,n,o,i,a){const c=f=>t.find(p=>p.value===f),s=f=>({value:f,label:"",disabled:!0,title:o}),u=f=>{const p=t.find(g=>g.cell===f);if(!p)return s(`missing-${f}`);const m=a?.[f];return m?{value:p.value,label:p.label,icon:m}:{value:p.value,label:p.label}},d=[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:f,onChange:p})=>{const m=t.some(g=>g.value===f)?f:n;return r(h,{label:l(e),icon:i,value:c(m)?.label?l(c(m).label):"",children:at({label:e,value:m,onChange:p,points:d})})}}}const mr="\0note";function A(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,d=s.fallback??o,f=u.some(p=>p.value===a)?a:d;return r(h,{label:l(e),icon:k(t),children:r(pn,{value:f,ariaLabel:l(e),onChange:c,options:[...i?[{label:l(i),value:mr,disabled:!0}]:[],...u.map(p=>({label:l(p.label),value:p.value}))]})})}}}function Cl(e,t,n){return{type:"custom",options:t,render:({value:o,onChange:i,field:a})=>r(wn,{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 _l(e,t,n,o){return{type:"custom",options:t,fallback:n,render:({value:i,onChange:a,field:c})=>r(Fn,{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 Il(e,t={}){return{type:"custom",render:({value:n,onChange:o})=>{const i={value:n,onChange:o,...t};return r(e,{...i})}}}function se({options:e,value:t,onChange:n,ariaLabel:o,disabled:i=!1}){return r(ln,{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 El=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function ce(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:k(t),children:se({options:i,value:i.some(u=>u.value===a)?a:a||s?.currentValue||o,onChange:c,ariaLabel:e})})}}function Rl(e,t,n){return{type:"custom",[he]:!0,render:({value:o,onChange:i})=>r(Pn,{value:o||"",onChange:i,label:e,accept:t,placeholder:n})}}const Tl={HeroSingle:["imageFocal"],ContactLocations:["locations[].photo"],ProcessSteps:["steps[].image"]};function Ol({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 P(h,{label:l(n),icon:r(te,{}),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&&P("div",{style:{marginTop:8,display:"grid",gap:8},children:[r(h,{label:l("Latitude"),icon:r(te,{}),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(te,{}),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 hr(e,t){return t===null||t<0||t>=e.length?"":e[t]?.text??""}function gr(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 Al(e,t){return e===null?null:t>e?e:null}function br(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(Kt,{})};function Pl(e,t,n,o){return{type:"custom",[I]:{control:"textList",label:e,placeholder:n,itemKey:"text",rendering:o},render:({value:i,onChange:a})=>r(xr,{label:e,icon:k(t),items:Array.isArray(i)?i:[],placeholder:n,onChange:a,markup:o==="markup"})}}function xr({label:e,icon:t,items:n,placeholder:o,onChange:i,markup:a=!1}){const c=ee(null),[s,u]=$(null),d=p=>p.map(m=>({text:m?.text??""})),f=p=>{const m=br(n,p,s);m===null&&(c.current=null),u(m),i(d(p))};return r(fn,{label:l(e),icon:t,noun:l("item"),items:n,onChange:f,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:a?r(De,{target:c,value:hr(n,s),onChange:p=>i(gr(n,s??-1,p)),disabled:s===null,label:s===null?l("Formatting — click a row first"):l("Formatting — row {n}",{n:s+1})}):void 0,renderRow:(p,m,g)=>r("input",{type:"text",className:a&&s===m?"sf-list-marking":void 0,value:p?.text??"",placeholder:l(o),"aria-label":l("{label} {n}",{label:l(e),n:m+1}),onChange:x=>g({text:x.target.value}),onFocus:x=>{c.current=x.currentTarget,u(m)}})})}function wl(e,t){const n=`${e.label} — row ${t+1}`;return H({control:"plainText",label:n,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:o,onChange:i})=>r(B,{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 Ll(e){return{_gCards:b("Cards"),coverIndex:A("Cover image",r(Mt,{}),Tn,String(On),e?.coverHint??"A card's opening picture — a card pinned to a finish keeps its own."),imageBackground:Ho("Image background",eo),cardImage:Sr(),spinOnHover:N("Rotate on hover",e?.spinDefault??!0,r($t,{}))}}function Fl(){return{outline:A("Card outline",r(zt,{}),In,Rn),indexBadge:A("Card number",r(Ie,{}),_n,En),showBadge:N("Product badge",!0,r(Ne,{noun:"tag"}))}}function vl(e){const t=e?.bottomDefault??!0;return{_gShowOnCard:b("Show on a card"),showCardPrice:N("Price",!0,r(kt,{})),showCardFinishes:N("Finish swatches",!0,r(Dt,{})),showCardSizes:N("Sizes",t,r(jt,{})),showCardBuy:N("Buy button",t,r(At,{})),showCardPage:N("Page button",t,r(Ae,{}))}}function Sr(){return Qe("Card image",{min:L,max:be,step:pt,hint:"Rounds the picture. The card's own corner is in Site styles."})}function kl(){return le({sidesKey:"cornerSides",step:ft,useFollowed:()=>L,mark:r(yr,{label:mt}),hint:l("Rounds the picture. Left alone it stays square.")})}function yr({label:e,changed:t=!1,onReset:n=()=>{}}){return r(C,{words:y()?.panel,label:l(e),changed:t,onReset:n})}function Dl(){return{type:"custom",render:({value:e,onChange:t})=>r(Cr,{value:typeof e=="string"?e:"",onChange:t})}}function Cr({value:e,onChange:t}){const[n,o]=$(null),i=xe.filter(c=>n===null||F[c].across===n),a=e&&e in F?F[e]:null;return P(O,{children:[r(h,{label:l("Photos in a row"),icon:r(Nt,{}),children:P("div",{className:"sf-gallery-filter",children:[r("button",{type:"button","aria-pressed":n===null,onClick:()=>o(null),children:l("All")}),gt.map(c=>r("button",{type:"button","aria-pressed":n===c,onClick:()=>o(c),children:c},c))]})}),r(h,{label:l("Layout"),icon:r(Bt,{}),value:a?l(a.label):l("Not chosen"),hint:l("{n} of {total} layouts",{n:i.length,total:xe.length}),children:r("div",{className:"sf-gallery-layouts",children:i.map(c=>r(Y,{content:l(F[c].label),className:"sf-tile-tip",children:r("button",{type:"button","aria-pressed":e===c,"aria-label":l(F[c].label),onClick:()=>t(e===c?"":c),children:r("span",{className:"sf-gallery-pic",children:F[c].desktop.map(([s,u],d)=>r("i",{style:{gridColumn:`span ${s}`,gridRow:`span ${u}`}},d))})})},c))})})]})}export{No as ANCHOR_HINT,wi as BOUND_TO_POST_NOTE,Bi as BUCKET_ICONS,Tl as CUSTOM_FIELD_MEDIA,Ol as CoordsField,Sl as EDGE_ARROWS,ve as FOCAL_DEFAULT,ur as FOCAL_POINTS,z as FOLD_FIELD_MARKER,at as FocalPicker,Bo as GroupLabel,Ao as HIGHLIGHT_HINT,B as HidableTextField,me as LINK_FIELD_MARKER,Ii as Label,he as MEDIA_FIELD_MARKER,El as MEDIA_TYPE_OPTIONS,ko as PanelNoteLine,st as PlacementGridView,ge as SCAFFOLD_FIELD_MARKER,Ml as SCALAR_TEXT_CONTROLS,nt as SECTION_BLEEDS_HINT,ir as SIDE_PAD_KEYS,Fo as SectionHeading,se as Segmented,Ro as SiteGapDefaultReset,U as Slider,Ze as Swatches,Gl as TEXT_CONTROL_KINDS,I as TEXT_FIELD_MARKER,Nl as TICKER_ITEMS_ROW,xr as TextListField,To as WidthDefaultReset,br as aimAfterListChange,pl as anchorFields,D as backTo,zi as backgroundField,el as boxAlignField,ol as boxBlockSpacingField,Qi as boxJustifyField,rl as boxPhoneRowField,nl as boxShareField,tl as boxWrapField,Wi as bucketHeader,qo as cardCornersField,Ho as cardImageBackgroundField,Sr as cardImageField,Ll as cardMediaFields,Zi as cardShapeFields,vl as cardShowFields,Fl as cardStyleFields,al as cellWidthFields,hl as checkbox,gl as colorInput,vi as copyText,tt as cornerSidesField,le as cornersRowField,fl as dateTime,Xi as designGroupHeader,il as directionField,yl as edgePad,Hi as entriesHiddenForTab,bl as focalPicker,Al as focusAfterRemove,ji as foldMarker,V as foldMetaOf,Do as foldTitleOf,Dl as galleryLayoutField,Yi as gapField,b as group,dl as heightFields,fe as hidableText,wo as hintIsWhileTyping,k as iconOf,kl as imageCornersField,Pi as inOwnBox,Ki as isBucketHeader,Ui as isDesignGroupHeader,_o as isNoGlyph,ki as linkField,Cl as multiSelect,Co as noGlyph,ml as pageBackgroundField,Gi as panelNote,tr as phoneOverrideField,xl as placementField,Lo as plainText,Di as plainTextarea,Qe as pxField,$i as quietMarker,pe as readHidable,hr as rowText,_l as searchSelect,Mi as section,Ji as sectionAnimationFields,rt as sectionBorderField,Wo as sectionCornersField,qi as sectionShapeFields,Vi as sectionThemeFields,ce as segmented,A as select,gr as setRowText,cl as sidesPaddingFields,lr as sidesPaddingPatch,ll as sizeField,G as slider,Il as sourceField,sl as spacingFields,Li as text,ut as textFieldIdentifier,Ti as textFieldOffPage,Ai as textFieldPanelOnly,Pl as textList,wl as textListRowField,Fi as textarea,N as toggle,Rl as upload,Io as usePageWidthDetail,Eo as useSiteGapDetail,ul as widthField,Ni as withIdentifier,Ri as withOffPage,Oi as withPanelOnly,Ei as withScaffold};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-web-builder",
3
- "version": "17.0.1",
3
+ "version": "17.0.2",
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",