efficient-storefront-blocks 0.78.0 → 0.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/chunks/EditorPreviewCheckout-PSONSVRR.js +4 -0
- package/dist/chunks/{SiteEditorProvider-YTZPWUDV.js → SiteEditorProvider-PWHW2UA6.js} +1 -1
- package/dist/chunks/{chunk-4O66UMLS.js → chunk-3Q66B5NU.js} +1 -1
- package/dist/chunks/chunk-6MHGEO3D.js +320 -0
- package/dist/chunks/chunk-MCCDGDRW.js +1 -0
- package/dist/chunks/chunk-X5W6GJLI.js +1 -0
- package/dist/chunks/{fitment-data-VU5A7VKV.js → fitment-data-Q2TJ6FBU.js} +1 -1
- package/dist/contract.js +2 -2
- package/dist/editor/lib/document/blocks/commerce/ProductColour/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/commerce/ProductColour/fields.js +1 -0
- package/dist/editor/lib/document/blocks/commerce/ProductPrice/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/commerce/ProductPrice/fields.js +1 -0
- package/dist/editor/lib/document/blocks/commerce/ProductSize/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/commerce/ProductSize/fields.js +1 -0
- package/dist/editor/lib/document/blocks/commerce/SpecTable/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
- package/dist/editor/lib/document/blocks/commerce/index.js +1 -1
- package/dist/editor/lib/document/blocks/service/ContactCards/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/FooterEmailSignup/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/FooterMessaging/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/MessagingCards/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/OpeningHours/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/RateTable/fields.js +1 -1
- package/dist/editor/lib/document/box-header.d.ts +1 -1
- package/dist/editor/lib/document/config.d.ts +1 -0
- package/dist/editor/lib/document/config.js +1 -1
- package/dist/editor/lib/storefront-editor-words.d.ts +0 -1
- package/dist/editor/lib/storefront-editor-words.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +28 -34
- package/dist/links.js +1 -1
- package/dist/render/app/globals.css +46 -1
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/EuTyreLabelCard.js +1 -1
- package/dist/render/components/ProductCard.js +1 -1
- package/dist/render/components/SpecTable.d.ts +2 -1
- package/dist/render/components/SpecTable.js +1 -1
- package/dist/render/components/WheelCardFrame.d.ts +3 -15
- package/dist/render/components/WheelCardFrame.js +1 -1
- package/dist/render/components/card-pieces/CardEyebrow.d.ts +6 -0
- package/dist/render/components/card-pieces/CardEyebrow.js +1 -0
- package/dist/render/components/card-pieces/CardName.d.ts +4 -0
- package/dist/render/components/card-pieces/CardName.js +1 -0
- package/dist/render/components/card-pieces/CardPicture.d.ts +18 -0
- package/dist/render/components/card-pieces/CardPicture.js +1 -0
- package/dist/render/components/card-pieces/CardSpecs.d.ts +20 -0
- package/dist/render/components/card-pieces/CardSpecs.js +1 -0
- package/dist/render/components/card-pieces/HostPart.d.ts +6 -0
- package/dist/render/components/card-pieces/HostPart.js +1 -0
- package/dist/render/components/card-pieces/ProductCardState.d.ts +1 -0
- package/dist/render/components/card-pieces/ProductCardState.js +1 -1
- package/dist/render/components/checkout/checkout-state.js +3 -3
- package/dist/render/components/pdp-dynamic/DynamicSpecTable.d.ts +1 -0
- package/dist/render/components/pdp-dynamic/DynamicSpecTable.js +1 -1
- package/dist/render/components/wheels-plp/PlpCard.d.ts +1 -1
- package/dist/render/components/wheels-plp/PlpCard.js +1 -1
- package/dist/render/lib/api/index.d.ts +3 -0
- package/dist/render/lib/api/index.js +1 -1
- package/dist/render/lib/api/types.d.ts +46 -0
- package/dist/render/lib/checkout/pay-first.d.ts +5 -1
- package/dist/render/lib/checkout/pay-first.js +1 -1
- package/dist/render/lib/document/blocks/commerce/ProductColour/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductColour/meta.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductColour/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductColour/render.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductPrice/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductPrice/meta.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductPrice/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductPrice/render.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductSize/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductSize/meta.js +1 -0
- package/dist/render/lib/document/blocks/commerce/ProductSize/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/commerce/ProductSize/render.js +1 -0
- package/dist/render/lib/document/blocks/commerce/SpecTable/meta.d.ts +6 -0
- package/dist/render/lib/document/blocks/commerce/SpecTable/meta.js +1 -1
- package/dist/render/lib/document/blocks/commerce/SpecTable/render.js +1 -1
- package/dist/render/lib/document/blocks/commerce/metas.d.ts +3 -0
- package/dist/render/lib/document/blocks/commerce/metas.js +1 -1
- package/dist/render/lib/document/blocks/commerce/renders.d.ts +3 -0
- package/dist/render/lib/document/blocks/commerce/renders.js +1 -1
- package/dist/render/lib/document/card-templates.js +1 -1
- package/dist/render/lib/document/lazy-draws.js +1 -1
- package/dist/render/lib/document/render-config.d.ts +1 -0
- package/dist/render/lib/document/render-config.js +1 -1
- package/dist/render/lib/document/section-to-box-rows-spec.d.ts +1 -0
- package/dist/render/lib/document/section-to-box-rows-spec.js +1 -0
- package/dist/render/lib/tyres/spec-sheet.d.ts +0 -2
- package/dist/render/lib/tyres/spec-sheet.js +1 -1
- package/dist/words.d.ts +12 -1
- package/dist/words.js +4 -4
- package/package.json +9 -4
- package/dist/chunks/EditorPreviewCheckout-IEFQC4T3.js +0 -4
- package/dist/chunks/chunk-LZTJCQ4A.js +0 -311
- package/dist/chunks/chunk-MZPZ4B7Y.js +0 -1
- package/dist/chunks/chunk-WC4XIVX3.js +0 -1
- /package/dist/chunks/{chunk-LZTJCQ4A.js.LEGAL.txt → chunk-6MHGEO3D.js.LEGAL.txt} +0 -0
- /package/dist/chunks/{chunk-TI4ZGDSG.js → chunk-JUGY3EKR.js} +0 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import{$ as sI,B as Qx,C as eI,D as oI,Da as se,F as tI,G as Ud,Ha as xI,I as rI,Ia as II,J as wo,K as tr,Ka as rl,L as aI,La as gI,M as Jo,Ma as bI,N as ol,Q as nI,R as $d,Ra as yI,U as tl,V as jd,X as Kd,a as _t,b as Hd,fa as rr,h as Vx,ha as lI,i as Wd,j as Gd,ja as iI,k as oo,l as Yx,la as cI,m as Xx,ma as Fo,n as Qr,na as ta,o as Zo,oa as dI,p as ea,pa as dt,q as oa,qa as qd,ra as nn,s as Zx,v as an,va as sn,x as Jx,xa as fI,y as zd,za as uI}from"./chunk-X5W6GJLI.js";import{d as pI,e as ln,f as mI,g as hI,j as ra,n as Vd}from"./chunk-JUGY3EKR.js";var ke=e=>typeof e=="string"&&e?e:void 0;var CI="en",al=null,wI=CI,kI=null;function HY(e,o,t){al=e??null,wI=o||CI,kI=t??null}function Q(){return kI}function Yd(){return wI}function vI(){return al}function SI(e,o){return o?e.replace(/\{([A-Za-z][A-Za-z0-9_]*)\}/g,(t,r)=>Object.prototype.hasOwnProperty.call(o,r)?String(o[r]):t):e}function i(e,o){let t=al?al[e]:void 0;if(typeof t=="function"){try{let r=ke(t(o??{}));if(r)return r}catch{}return SI(e,o)}return SI(ke(t)??e,o)}function co(e,o,t,r){return i(t===1?e:o,{...r,n:t})}import{jsx as Xd,Fragment as dF,jsxs as fF}from"react/jsx-runtime";import{createContext as uF,useContext as pF}from"react";var mF={mirrorHostStyles:!0,css:null,fontHrefs:[]},TI=uF(mF);function UY({value:e,children:o}){return Xd(TI.Provider,{value:e,children:o})}function Zd(){return pF(TI)}function PI(){let{css:e,fontHrefs:o}=Zd();return fF(dF,{children:[o.map(t=>Xd("link",{rel:"stylesheet",href:t},t)),e?Xd("style",{"data-sf-canvas-css":"",children:e}):null]})}import{jsx as hF}from"react/jsx-runtime";import{createContext as xF,useContext as IF}from"react";var EI=xF(void 0);function qY({metadata:e,children:o}){return hF(EI.Provider,{value:e,children:o})}var OI=()=>IF(EI);import{jsx as Qe,Fragment as Y_,jsxs as Zs}from"react/jsx-runtime";import{useCallback as Js,useEffect as ct,useRef as uY,useState as j_}from"react";import{SettingsSwitch as pY}from"efficient-easel/panel";import{PagesIcon as mY,StylesIcon as hY}from"efficient-easel/rail";import{PaletteIcon as xY}from"efficient-shell/icons/efficient";import{Subtree as IY,TreeRow as X_}from"efficient-easel/tree";import{useEasel as Z_}from"efficient-easel/easel";import{useEaselStrings as J_}from"efficient-easel/strings";import{createContext as gF,useContext as bF}from"react";var Jd=gF(!1),XY=()=>bF(Jd);import{jsx as he,Fragment as ww,jsxs as Wn}from"react/jsx-runtime";import{Fragment as K3,useEffect as q3,useId as V3,useMemo as kw,useRef as Y3,useState as $t}from"react";import{useScreenDocument as Aw}from"efficient-easel/screen/components/ScreenDocumentContext";import{UiIcon as Rp}from"efficient-easel/draw/client";import X3 from"efficient-easel/screen/components/SidePanelHead";import{jsx as oe,Fragment as Er,jsxs as Pr}from"react/jsx-runtime";import{useEasel as mw,useRootFields as V4}from"efficient-easel/easel";import{Inspector as Y4}from"efficient-easel/fields";import{SettingsGroup as X4}from"efficient-easel/panel";import{useEffect as Z4,useRef as J4,useState as ji}from"react";import{jsx as nr,Fragment as QF,jsxs as eA}from"react/jsx-runtime";import{useState as GI}from"react";import{SettingsDefaultReset as oA,SettingsField as tA}from"efficient-easel/panel";import{useEaselStrings as rA}from"efficient-easel/strings";import{AddIcon as aA}from"efficient-easel/icons";import{Button as nA}from"efficient-shell/ui";import{iconOf as sA,noGlyph as lA}from"efficient-easel/screen/lib/document/box-fields";import{jsx as ee,jsxs as At,Fragment as DF}from"react/jsx-runtime";import{parseHexColor as NF}from"efficient-shell/format";import{Button as of,IconButton as MF,Tooltip as HF}from"efficient-shell/ui";import{jsx as Ft,jsxs as EF}from"react/jsx-runtime";import{AccentIcon as OF}from"efficient-easel/icons";import{Button as _F,Tooltip as FF}from"efficient-shell/ui";import{jsx as ar,jsxs as AI}from"react/jsx-runtime";import{ColorPicker as SF,HexInput as CF}from"efficient-shell/ui";import{SettingsDefaultReset as wF,SettingsField as kF}from"efficient-easel/panel";import{typedHex as Qd}from"efficient-easel/pick";import{typedHex as yF}from"efficient-easel/pick";function _I(e){let o=new Set,t=[];return oo(e).themes.forEach((r,a)=>{let n=[[i("Theme {n} main color",{n:a+1}),r.accent],[i("Theme {n} text color",{n:a+1}),r.text],[i("Theme {n} background",{n:a+1}),r.background]];for(let[s,l]of n){let c=l?yF(l):null;!c||o.has(c)||(o.add(c),t.push({name:s,value:c}))}}),t}var FI="Not set";function vF({value:e,onChange:o,label:t,id:r,caption:a,inherited:n,ariaLabel:s}){return ar(PF,{value:e,onChange:o,label:i(s??t),id:r,caption:a,inherited:n})}function TF(){let{theme:e}=se();return _I(e).map(o=>({value:o.value,label:o.name}))}function PF({value:e,onChange:o,label:t,id:r,caption:a,inherited:n}){let s=TF(),l=e?null:Qd(n??""),c=a!==void 0&&(!e||Qd(a)!==Qd(e))?a:null,d=u=>{u!==e&&o(u)};return AI("div",{className:"sf-colour",children:[ar(SF,{id:r,value:e,onChange:d,label:t,presets:s,fallback:l??void 0,size:"md",align:"start"}),c!==null?ar("span",{className:"sf-colour-caption",children:c}):ar("span",{className:"sf-colour-hexwrap",children:ar(CF,{value:e||l||"",onChange:d,label:i("{label} hex code",{label:t}),placeholder:e||l?void 0:i(FI),className:l?"sf-colour-hex is-inherited":"sf-colour-hex",size:"md"})})]})}function ko({label:e,icon:o,changed:t,hint:r,onReset:a,resetTo:n,children:s,...l}){return AI(kF,{label:e,icon:o,htmlFor:l.id,changed:t,hint:r,action:a?ar(wF,{words:Q()?.panel,label:e,changed:!!t,detail:n,onReset:a}):void 0,children:[vF({...l,label:e}),s]})}function nl({label:e,icon:o,value:t,inherited:r,resetTo:a,onChange:n,onReset:s,hint:l}){let c=!!t;return ar(ko,{label:e,icon:o,value:t,inherited:c?void 0:r,onChange:n,changed:c,onReset:s,resetTo:a,hint:l})}function ef(e){return Zo(e).background}function AF(e){let o=_t(e.accent,ef(e));return o===null?null:{ratio:o,grade:oa(o)}}function RF(e){let o=ef(e),t=_t(e.accent,o);return t===null?[]:Zx(e.accent).filter(r=>{let a=_t(r,o);return a!==null&&a>t&&oa(a)==="good"})}var LF={good:"Easy to read","large-only":ea["large-only"],hard:ea.hard};function RI({value:e,onChange:o}){let t=AF(e),r=t?.grade,a=t&&t.grade!=="good"?RF(e):[];return Ft(ko,{label:i("Main color"),icon:Ft(OF,{}),hint:t?i(LF[t.grade]):void 0,value:e.accent,onChange:n=>o({...e,accent:n}),children:a.length>0?Ft("div",{className:"w-full min-w-0",children:EF("div",{className:"sf-readability",children:[Ft("p",{className:"sf-readability-advice",children:BF(r,!0)}),Ft("div",{className:"sf-readability-suggestions",children:a.map(n=>{let s=_t(n,ef(e));return Ft(FF,{content:i("Use {colour}",{colour:n.toUpperCase()}),children:Ft(_F,{variant:"secondary",className:"sf-readability-suggestion",leftIcon:Ft("span",{className:"sf-readability-chip",style:{background:n},"aria-hidden":!0}),onClick:()=>o({...e,accent:n}),children:s?`${s.toFixed(1)}:1`:n.toUpperCase()})},n)})})]})}):null})}function BF(e,o){return e?e==="good"?i("This color reads clearly on your pages."):o?i("This color is hard to read on this theme's page. The buttons below are the same hue, darkened."):i("This color is hard to read on your page background. Pick one further from it \u2014 lighter if your pages are dark, deeper if they are light."):i("Pick a color to see how it reads.")}import{ButtonIcon as WF,ChevronDownIcon as BI,ChevronUpIcon as GF,GroundIcon as zF,LayoutIcon as UF,SquareIcon as $F,TextSmallIcon as jF,TypeIcon as LI}from"efficient-easel/icons";var cn=e=>i("Theme {n}",{n:e+1});function DI({colors:e}){let o=Zo(e),t=an(e)??o.accent;return At("span",{className:"sf-theme-page",style:{background:o.background,color:o.text},"aria-hidden":!0,children:[ee("span",{className:"sf-theme-eyebrow",style:{color:o.muted},children:i("label")}),At("span",{className:"sf-theme-headline",children:[i("Heading")," ",ee("span",{style:{color:o.accent},children:i("accent")})]}),ee("span",{className:"sf-theme-body",children:i("body text")}),At("span",{className:"sf-theme-row",children:[ee("span",{className:"sf-theme-btn",style:{background:t,color:zd(e,o.accent)},children:i("button")}),ee("span",{className:"sf-theme-mini",style:{background:o.surface,borderColor:o.line},children:i("card")})]})]})}var tf={"Text color":ee(LI,{}),"Label color":ee(jF,{}),Background:ee(zF,{}),"Panels & cards":ee(UF,{}),Borders:ee($F,{}),"Button color":ee(WF,{}),"Button text color":ee(LI,{})};function KF({label:e,colorKey:o,value:t,onChange:r,idPrefix:a="sf-theme-ink"}){let n=`${a}-${o}`;return ee(ko,{label:i(e),icon:tf[e],id:n,value:t,onChange:s=>r(o,s)})}function qF({value:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button`,n=e!==void 0&&NF(e)===e.toLowerCase(),s=n?e:o;return ee(ko,{label:i("Button color"),icon:tf["Button color"],id:a,value:s,caption:n?s:i("Main"),onChange:t})}function VF({colors:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button-ink`,n=Jx(e),s=zd(e,o),l=an(e)??o,c=oa(_t(s,l)??0);return ee(ko,{label:i("Button text color"),icon:tf["Button text color"],hint:n&&c!=="good"?i("{grade} on the button",{grade:i(ea[c])}):void 0,id:a,value:s,caption:n?s:i("Auto"),onChange:t})}var YF=[{colour:!0},{label:"Text color",key:"text"},{label:"Label color",key:"muted"},{button:!0},{buttonInk:!0},{moduleBreak:!0},{label:"Background",key:"background"},{label:"Panels & cards",key:"surface"},{label:"Borders",key:"line"}];function rf({colors:e,onChange:o,idPrefix:t}){let r=Zo(e);return ee(DF,{children:YF.map(a=>"colour"in a?ee(RI,{value:e,onChange:o},"colour"):"moduleBreak"in a?ee("div",{className:"sf-theme-module-break","aria-hidden":"true"},"module-break"):"button"in a?ee(qF,{value:e.button,accent:r.accent,onChange:n=>o({...e,button:n}),idPrefix:t},"button"):"buttonInk"in a?ee(VF,{colors:e,accent:r.accent,onChange:n=>o({...e,buttonInk:n}),idPrefix:t},"buttonInk"):ee(KF,{label:a.label,colorKey:a.key,value:r[a.key],onChange:(n,s)=>o({...e,[n]:s}),idPrefix:t},a.key))})}function sl({index:e,colors:o,selected:t,role:r="radio",open:a,editable:n=!0,onPick:s,onEdit:l,onChangeColors:c}){let d=Zo(o),u=cn(e),h=e<Gd.length&&!o.brandInk?Gd[e]:null,p=oa(_t(d.text,d.background)??0),x=h?JSON.stringify(o)!==JSON.stringify(h):!1,g=a!==void 0;return At("div",{className:`sf-theme-card${t?" is-selected":""}`,children:[ee("button",{type:"button",role:r,"aria-checked":r==="radio"?t:void 0,"aria-selected":r==="option"?t:void 0,"aria-label":u,className:"sf-theme-pick",onClick:s,children:ee(DI,{colors:o})}),At("div",{className:"sf-theme-foot",children:[ee("span",{className:"sf-theme-name",children:u}),p!=="good"&&ee("span",{className:"sf-theme-warn",children:i(ea[p])}),n&&l&&g&&ee("span",{className:"sf-theme-edit",children:ee(HF,{content:a?i("Collapse"):i("Edit colors"),children:ee(MF,{size:"sm","aria-expanded":a,"aria-controls":`sf-theme-colours-${e}`,"aria-label":a?i("Collapse {name}",{name:u}):i("Edit colors for {name}",{name:u}),onClick:l,children:a?ee(GF,{size:14}):ee(BI,{size:14})})})}),n&&l&&!g&&ee(of,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":i("Edit {name}",{name:u}),onClick:l,children:i("Edit")})]}),a&&At("div",{id:`sf-theme-colours-${e}`,className:"sf-theme-colours",children:[ee(rf,{colors:o,onChange:y=>c?.(y)}),h&&ee(of,{variant:"link",size:"sm",className:"sf-theme-reset",disabled:!x,onClick:()=>c?.({...h}),children:x?i("Reset {name} to the preset",{name:u}):i("Not changed")})]})]})}function NI({colors:e,name:o,nameId:t,open:r,menuId:a,labelId:n,buttonRef:s,onClick:l,onKeyDown:c,onEdit:d}){return At("div",{className:"sf-secttheme-btn",children:[ee("button",{ref:s,type:"button",className:"sf-theme-pick","aria-expanded":r,"aria-controls":a,"aria-labelledby":`${n} ${t}`,onClick:l,onKeyDown:c,children:e?ee(DI,{colors:e}):ee("span",{className:"sf-secttheme-nopreview","aria-hidden":"true"})}),At("div",{className:"sf-theme-foot",children:[ee("span",{id:t,className:"sf-theme-name",children:o}),d&&ee(of,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":i("Edit {name}",{name:o}),onClick:d,children:i("Edit")}),ee("button",{type:"button",className:"sf-secttheme-caret","aria-hidden":"true",tabIndex:-1,onClick:l,children:ee(BI,{size:12,className:"sf-multi-caret","aria-hidden":"true"})})]})]})}import{jsx as ll,Fragment as XF,jsxs as MI}from"react/jsx-runtime";import{Button as HI,Dialog as ZF}from"efficient-shell/ui";function JF(e){return co("This site has {n} color theme of its own. Clearing takes them away and puts back the four the shop supplies.","This site has {n} color themes of its own. Clearing takes them away and puts back the four the shop supplies.",e)}function WI({count:e,onCancel:o,onConfirm:t}){return MI(ZF,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Clear this site\u2019s colors?"),footer:MI(XF,{children:[ll(HI,{variant:"secondary",onClick:o,children:i("Cancel")}),ll(HI,{variant:"danger",onClick:t,children:i("Clear colors")})]}),children:[ll("p",{children:JF(e)}),ll("p",{className:"mt-2 font-medium",children:i("This cannot be undone.")})]})}var iA=lA("the row's whole content is an action; the gutter names a subject and this row has none \u2014 the button's label is the name GG, 2026-09-23"),cA="Reset color",dA={selected:0,themes:[]};function fA(e){e(dA)}function zI({value:e,onChange:o}){let t=e?.themes??[],r=t.length===0,a=oo(e),[n,s]=GI(!1),l=rA(),[c,d]=GI(null),u=(O,C)=>{o({...a,themes:a.themes.map((I,w)=>w===O?C:I)})},h=Qr(a).accent,p=new Set(a.themes.map(O=>O.brandInk).filter(Boolean)),x=Yx.filter(O=>!p.has(O)).map(O=>Xx(h,O)),g=[...a.themes,...x],y=O=>{if(O<a.themes.length)return o({...a,selected:O});let C=[...a.themes,g[O]];o({...a,themes:C,selected:C.length-1})},E=()=>{let O=[...a.themes,{...Zo(a.themes[a.selected])}];o({...a,themes:O,selected:O.length-1}),d(O.length-1)};return eA(QF,{children:[r?null:nr(tA,{label:i(cA),icon:sA(iA),labelId:"sf-theme-reset",action:nr(oA,{label:i("all theme colors"),words:l.panel,changed:!0,onReset:()=>s(!0)})}),n&&nr(WI,{count:t.length,onCancel:()=>s(!1),onConfirm:()=>{s(!1),fA(o)}}),nr("div",{className:"sf-theme-list",role:"radiogroup","aria-label":i("Theme"),children:g.map((O,C)=>nr(sl,{index:C,colors:O,selected:C===a.selected,open:c===C&&C<a.themes.length,editable:C<a.themes.length,onPick:()=>y(C),onEdit:()=>d(I=>I===C?null:C),onChangeColors:I=>u(C,I)},C))}),nr(nA,{variant:"secondary",leftIcon:nr(aA,{}),onClick:E,className:"sf-theme-add",children:i("Add new theme")})]})}import{jsx as bi}from"react/jsx-runtime";import{SettingsDefaultReset as nH,SettingsField as sH}from"efficient-easel/panel";import{SquareIcon as lH}from"efficient-easel/icons";import{jsx as S,jsxs as ya,Fragment as Wt}from"react/jsx-runtime";import{cloneElement as cS,createContext as YN,useContext as XN,useEffect as ZN,useId as dS,useRef as si,useState as vn}from"react";import{useEasel as Eu,useSelectedHost as ci}from"efficient-easel/easel";import{toDateKey as cae,fromDateKey as dae}from"efficient-shell/format";function uA(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.src=="string"}function Rt(e){return typeof e=="string"?e:uA(e)?e.src:""}function $X(e,o,t){return af(e,o.split("."),t)}function af(e,o,t){if(o.length===0)return t(e);let[r,...a]=o,n=r.endsWith("[]"),s=n?r.slice(0,-2):r;if(!e||typeof e!="object"||Array.isArray(e))return e;let l=e;if(!(s in l))return e;let c=l[s];if(n){if(!Array.isArray(c))return e;let u=!1,h=c.map(p=>{let x=af(p,a,t);return x!==p&&(u=!0),x});return u?{...l,[s]:h}:e}let d=af(c,a,t);return d===c?e:{...l,[s]:d}}var pA=["upload","youtube"],mA="upload",qX={upload:"Upload",youtube:"YouTube"},hA=["background","click"],xA="background",VX={background:"Background",click:"Click to play"};function YX(e){return pA.includes(e)?e:mA}function XX(e){return hA.includes(e)?e:xA}var UI=/^[A-Za-z0-9_-]{11}$/,IA=/^(?:www\.|m\.|music\.)?(?:youtube\.com|youtube-nocookie\.com|youtu\.be)$/;function ZX(e){let o=typeof e=="string"?e.trim():"";if(!o)return null;if(UI.test(o))return o;let t;try{t=new URL(/^[a-z]+:\/\//i.test(o)?o:`https://${o}`)}catch{return null}if(t.protocol!=="https:"&&t.protocol!=="http:"||!IA.test(t.hostname))return null;let r=t.pathname.split("/").filter(Boolean),a=t.hostname.endsWith("youtu.be")?r[0]:r[0]==="watch"?t.searchParams.get("v"):r[0]==="embed"||r[0]==="shorts"||r[0]==="live"||r[0]==="v"?r[1]:null;return a&&UI.test(a)?a:null}function JX(e,o){let t=o==="click"?"autoplay=1&playsinline=1&rel=0":`autoplay=1&mute=1&loop=1&playlist=${e}&controls=0&playsinline=1&rel=0&disablekb=1`;return`https://www.youtube-nocookie.com/embed/${e}?${t}`}function QX(e){return`https://i.ytimg.com/vi/${e}/maxresdefault.jpg`}function eZ(e){return`https://i.ytimg.com/vi/${e}/hqdefault.jpg`}var oZ="Play video";var nf={frame:"Video frame",image:"Image"},tZ={any:[{field:"loadingShows",is:"image"},{all:[{not:{field:"loadingShows",set:!0}},{field:"poster",set:!0}]}]};function sf(e){let o=e.loadingShows;return o==="image"?"image":o!=null&&o!==""?"frame":Rt(e.poster)?"image":"frame"}function rZ(e){return Rt(sf(e)==="image"?e.poster:e.videoFrame)||void 0}import{readHidable as Gt,hidableText as JN}from"efficient-easel/draw";import{FOLD_FIELD_MARKER as fS,LINK_FIELD_MARKER as QN,MEDIA_FIELD_MARKER as e2,SCAFFOLD_FIELD_MARKER as o2,TEXT_FIELD_MARKER as ht,foldMetaOf as xt,textFieldIdentifier as xae}from"efficient-easel/draw";import{jsx as XI}from"react/jsx-runtime";import{useCallback as SA}from"react";import{useEasel as CA}from"efficient-easel/easel";import{SettingsAction as wA}from"efficient-easel/panel";import{CORNER_SIDES as il,hasCornerSubset as dn,normalizeCornerSides as Qo}from"efficient-easel/screen/lib/content/style-keys";function lf(e){return typeof e=="number"&&Number.isFinite(e)}function lZ(e,o){if(!lf(e))return;let t=ol(Jo(e));if(Object.keys(t).length===0)return;let r=t[cf];if(typeof r!="string")return t;let a=dn(o)?sr(r,Qo(o)??[]):r;return{...t,[gA]:a}}var gA="--sf-section-radius",cf="--sf-card-radius";function sr(e,o){return il.map(t=>o.includes(t)?e:"0").join(" ")}var $I=[{value:"tl",label:"Top left"},{value:"tr",label:"Top right"},{value:"bl",label:"Bottom left"},{value:"br",label:"Bottom right"}];var bA="--sf-card-box-radius";function df(e){return typeof e=="number"&&Number.isFinite(e)}function fZ(e,o){if(!df(e))return;let t=ol(Jo(e))[cf];if(typeof t!="string")return;let r=dn(o)?sr(t,Qo(o)??[]):t;return{[bA]:r}}function jI(e,o){let t=e.find(n=>n?.props?.id===o);if(!t)return[...e];let r=t.props?.cardCorners,a=t.props?.cardCornerSides;return e.map(n=>n?.props?.id===o?n:{...n,props:{...n.props,cardCorners:r,cardCornerSides:a}})}import{locateNode as yA}from"efficient-easel/draw";function fn(e){if(!e)return null;let o=e.lastIndexOf(":");return o>0?{ownerId:e.slice(0,o),slot:e.slice(o+1)}:null}function cl(e,o,t){let r=fn(t?.zone),a=r?yA(e,o,r.ownerId):null;return a&&r?{...a,slot:r.slot}:null}function KI(e,o,t){let r=cl(e,o,t),a=r?.slot??"",n=r&&Array.isArray(r.item.props[a])?r.item.props[a]:[],s=t?.index??-1,l=s>=0?n[s]:void 0,c=l?.props?.id?String(l.props.id):"",d=Math.max(n.length-1,0);return!r||!c?{can:!1,reason:"unreachable",others:0}:n.length<=1?{can:!1,reason:"alone",others:d}:df(l?.props?.cardCorners)?{can:!0,others:d,zone:r.zone,index:r.index,data:{...r.item,props:{...r.item.props,[a]:jI(n,c)}}}:{can:!1,reason:"unset",others:d}}function qI(e){return e.can?co("Gives the other card this card's Corners.","Gives the other {n} cards this card's Corners.",e.others):e.reason==="alone"?i("This is the only card in the section."):e.reason==="unset"?i("Set this card's corners first."):i("This card is not in a section that can share corners.")}function VI(e){return co("Applied to {n} card","Applied to {n} cards",e)}function YI(e,o){e.can&&o(e.zone,e.index,e.data)}import{useSectionOps as kA}from"efficient-easel/screen/lib/document/use-section-ops";var vA="apply-corners-to-siblings",TA="Apply to all cards";function PA({plan:e,onPress:o}){return XI(wA,{id:vA,label:i(TA),note:qI(e),disabled:!e.can,doneLabel:VI(e.others),onPress:o})}function ZI(){let{appState:e,config:o}=CA(n=>n),t=kA(),r=KI(o,e.data.content??[],e.ui.itemSelector),a=SA(()=>{YI(r,t.replaceComponent)},[r,t]);return XI(PA,{plan:r,onPress:a})}import{isShown as zA,lazyShowWhenContext as UA}from"efficient-shell/format";var lr="product",dl="recordType",EA={key:lr,label:"Product",fields:[]},OA=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,_A=/^[a-z][A-Za-z0-9]*$/,FA=["text","date"],JI=new Map,QI=0;function AA(e){if(typeof e.key!="string"||!OA.test(e.key))throw new Error(`A record type key is lower-case words joined by hyphens, not ${JSON.stringify(e.key)}.`);if(e.key===lr)throw new Error("The product record type is the builder's own and is not declared by a host.");if(typeof e.label!="string"||!e.label.trim())throw new Error(`The record type ${e.key} has no label.`);let o=new Set;for(let t of e.fields){if(typeof t.key!="string"||!_A.test(t.key)||o.has(t.key))throw new Error(`The record type ${e.key} has a field key it cannot use: ${JSON.stringify(t.key)}.`);if(!FA.includes(t.kind))throw new Error(`The field ${t.key} of ${e.key} has no kind ${JSON.stringify(t.kind)}.`);o.add(t.key)}return{key:e.key,label:e.label.trim(),fields:e.fields.map(t=>({...t}))}}function PZ(e){let o=e.map(AA);for(let t of o)JI.set(t.key,t);o.length&&(QI+=1)}function ff(){return[EA,...JI.values()]}function uf(){return QI}function pf(e){let o=e?.[dl];return typeof o!="string"?lr:o.trim()||lr}function mf(e){return pf(e)===lr}var hf="product",RA="tyre";var LA="productType",BA={[hf]:"alloy-wheel",[RA]:"tyre"},DA=["alloy-wheel","tyre"];function eg(e,o){return mf(o)?NA(o)??BA[e]??null:null}function NA(e){if(!mf(e))return null;let o=e?.[LA];return typeof o=="string"&&DA.includes(o)?o:null}var fl=null,og=null;function MA(e,o){fl=e,og=o}function AZ(e){MA(e,null)}function RZ(){return fl}function ul(){return og==="dynamic"||fl===hf}function LZ(e){return eg(fl??"",e)??"alloy-wheel"}import{addShowWhenFacts as HA}from"efficient-shell/format";import{showWhenOf as xf,shownForOption as WA,truthy as GA,withRowRules as If,withRowsShownWhen as gf,withShowWhen as Ao}from"efficient-shell/format";var MZ=HA;function bf(e,o,t){let r=!1,a={};for(let[n,s]of Object.entries(e))zA(xf(s),o??{},t)?a[n]=s:r=!0;return r?a:e}function rg(e,o,t,r){let a=cl(o,t,r);return{device:e,parentType:a?.item.type,parent:a?.item.props}}function tg(e,o){if(!e||typeof e!="object")return!1;let t=e;if(typeof t.context=="string"&&(t.context===o||t.context.startsWith(`${o}.`)))return!0;if("not"in t)return tg(t.not,o);for(let r of[t.all,t.any])if(Array.isArray(r)&&r.some(a=>tg(a,o)))return!0;return!1}function jZ(e,o={}){return UA({parentType:()=>e.parent?.type??void 0,parent:()=>e.parent?.props??void 0,dynamicPage:()=>ul(),root:()=>e.appState?.data?.root?.props,...o})}var ag=1;function $A(e){return Jo(e)}function VZ(e){let o=$A(e);return o===null?{}:{"--sf-card-image-radius":`${o}px`}}var ng=1,sg="Corners";function jA(e){return Jo(e)}function JZ(e,o){let t=jA(e);if(t===null)return null;let r=`${t}px`;return{borderRadius:dn(o)?sr(r,Qo(o)??[]):r}}var ft={twoAcross:{label:"Two across",across:2,acrossPhone:2,desktop:[[6,1],[6,1]],phone:[[3,1],[3,1]]},zigzag:{label:"Zigzag",across:2,acrossPhone:2,desktop:[[8,1],[4,1],[4,1],[8,1]],phone:[[4,1],[2,1],[2,1],[4,1]]},brick:{label:"Brick",across:2,acrossPhone:2,desktop:[[5,1],[7,1],[7,1],[5,1]],phone:[[2,1],[4,1],[4,1],[2,1]]},twoTall:{label:"Two tall",across:2,acrossPhone:2,desktop:[[6,2],[6,2]],phone:[[3,2],[3,2]]},offsetTall:{label:"Offset tall",across:2,acrossPhone:2,desktop:[[5,2],[7,1],[3,1],[4,1]],phone:[[3,2],[3,1],[3,1]]},ladder:{label:"Ladder",across:2,acrossPhone:2,desktop:[[3,2],[9,1],[5,1],[4,1]],phone:[[2,2],[4,1],[2,1],[2,1]]},threeAcross:{label:"Three across",across:3,acrossPhone:3,desktop:[[4,1],[4,1],[4,1]],phone:[[2,1],[2,1],[2,1]]},bigLeft:{label:"Big left",across:3,acrossPhone:3,desktop:[[6,1],[3,1],[3,1]],phone:[[4,1],[1,1],[1,1]]},bigRight:{label:"Big right",across:3,acrossPhone:3,desktop:[[3,1],[3,1],[6,1]],phone:[[1,1],[1,1],[4,1]]},threeStagger:{label:"Three stagger",across:3,acrossPhone:3,desktop:[[5,1],[4,1],[3,1],[3,1],[4,1],[5,1]],phone:[[3,1],[2,1],[1,1],[1,1],[2,1],[3,1]]},threeLadder:{label:"Three ladder",across:3,acrossPhone:3,desktop:[[3,1],[4,1],[5,1],[5,1],[4,1],[3,1]],phone:[[1,1],[2,1],[3,1],[3,1],[2,1],[1,1]]},tallMiddle:{label:"Tall middle",across:3,acrossPhone:3,desktop:[[4,1],[4,2],[4,1],[4,1],[4,1]],phone:[[2,1],[2,2],[2,1],[2,1],[2,1]]},fourAcross:{label:"Four across",across:4,acrossPhone:2,desktop:[[3,1],[3,1],[3,1],[3,1]],phone:[[3,1],[3,1]]},bigFirst:{label:"Big first",across:4,acrossPhone:2,desktop:[[6,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1]],phone:[[6,1],[3,1],[3,1]]},fourStagger:{label:"Four stagger",across:4,acrossPhone:2,desktop:[[4,1],[3,1],[2,1],[3,1],[2,1],[3,1],[4,1],[3,1]],phone:[[4,1],[2,1],[2,1],[4,1]]},tallFirst:{label:"Tall first",across:4,acrossPhone:2,desktop:[[3,2],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1]],phone:[[3,2],[3,1],[3,1]]},oneThenFour:{label:"One then four",across:4,acrossPhone:2,desktop:[[12,1],[3,1],[3,1],[3,1],[3,1]],phone:[[6,1],[3,1],[3,1]]},sixAcross:{label:"Six across",across:6,acrossPhone:3,desktop:[[2,1],[2,1],[2,1],[2,1],[2,1],[2,1]],phone:[[2,1],[2,1],[2,1]]},sixStagger:{label:"Six stagger",across:6,acrossPhone:6,desktop:[[3,1],[2,1],[1,1],[2,1],[1,1],[3,1],[1,1],[3,1],[2,1],[2,1],[1,1],[3,1]],phone:[[1,1],[1,1],[1,1],[1,1],[1,1],[1,1]]},twoThenThrees:{label:"Two, then threes",across:3,acrossPhone:3,lead:[[6,1],[6,1]],desktop:[[4,1],[4,1],[4,1]],leadPhone:[[3,1],[3,1]],phone:[[2,1],[2,1],[2,1]]}},yf=Object.keys(ft),ig=[2,3,4,6];function Sf(e,o){return yf.filter(t=>t===o||e===null||ft[t].across===e)}function cg(e){return typeof e!="string"||e===""?null:ft[e]??null}function lg(e,o){return o?6/e.acrossPhone:12/e.across}function dg(e){return[...e.lead??[],...e.desktop]}var KA="sf-wall--";function qA(e){return`${KA}${e}`}function eJ(e){let o=ft[e],t=`.${qA(e)}`,r=[],a=(n,s,l=[])=>{let c=[],d=n.length,u=l.length;l.forEach(([h,p],x)=>{c.push(`${t} > :nth-child(${x+1}){grid-column:span ${h};grid-row:span ${p}}`)}),n.forEach(([h,p],x)=>{c.push(`${t} > :nth-child(${d}n+${u+x+1}){grid-column:span ${h};grid-row:span ${p}}`)});for(let h=1;h<d;h+=1)c.push(`${t}:has(> :nth-child(${d}n+${u+h}):last-child) > :nth-last-child(-n+${h}){grid-column:span ${s};grid-row:span 1}`);return c};return r.push(`${t}{grid-template-columns:repeat(12,minmax(0,1fr))}`),r.push(...a(o.desktop,lg(o,!1),o.lead)),r.push("@media (max-width:800px){"),r.push(`${t}{grid-template-columns:repeat(6,minmax(0,1fr))}`),r.push(...a(o.phone,lg(o,!0),o.leadPhone)),r.push("}"),r.join("")}var pl=12,fg=1,VA=3;var YA=3;function Cf(e,o,t){let r=typeof e=="number"?e:Number.parseInt(String(e??""),10);return Number.isFinite(r)?Math.min(t,Math.max(o,Math.trunc(r))):null}function XA(e){return Cf(e,1,pl)??YA}function rJ(e,o){return Cf(e,fg,VA)??(XA(o)===4?2:fg)}function aJ(e){return e==null||e===""?null:Cf(e,1,pl)}var nJ="data-sf-span";function sJ(e){if(!e)return!1;if(e.type==="Grid")return!0;if(e.type==="GalleryB"){if(cg(e.props?.layout))return!1;let o=e.props?.columns;return o!=null&&o!==""}return!1}import{jsx as ZA}from"react/jsx-runtime";import*as JA from"efficient-easel/icons";function ml(e){let o=e.replace(/(^|-)([a-z])/g,(r,a,n)=>n.toUpperCase()),t=JA[`${o}Icon`];return t?ZA(t,{size:16}):null}import{isNodeList as QA}from"efficient-easel/data";var aa=["top-left","top-center","top-right","left","center","right","bottom-left","bottom-center","bottom-right"],pg="bottom-left",na=4,eR=na+1,ug=40,oR=30,tR=100,rR=60,fJ=100;var wf={"top-left":"Top left","top-center":"Top center","top-right":"Top right",left:"Left",center:"Center",right:"Right","bottom-left":"Bottom left","bottom-center":"Bottom center","bottom-right":"Bottom right"};function aR(e){let o=aa.indexOf(un(e));return{band:Math.floor(o/3),column:["start","center","end"][o%3]}}function nR(e){return 1+aR(e).band*(eR+1)}function uJ(e){return nR(e)+1}function un(e){return aa.includes(e)?e:pg}function pJ(e){let o=typeof e=="number"&&Number.isFinite(e)?e:0;return Math.max(-ug,Math.min(ug,Math.round(o)))}function mJ(e,o=rR){let t=typeof e=="number"&&Number.isFinite(e)?e:o;return Math.max(oR,Math.min(tR,Math.round(t)))}function kf(e,o){let t=un(o);return e.filter(r=>un(r?.props?.placement)===t).length}function mg(e){return`${wf[un(e)]} already holds ${na} boxes. Move one somewhere else first.`}function hg(e,o){let t=e.filter(r=>r?.props?.id!==o);return aa.map(r=>{let a=kf(t,r)>=na,n=wf[r];return a?{value:r,label:n,disabled:!0,title:mg(r)}:{value:r,label:n}})}function hl(e,o){let t=o===void 0?pg:un(o?.props?.placement);return kf(e,t)>=na?mg(t):null}var xl="HeroGroup";function sR(e){return aa.map(o=>{let t=kf(e,o);return{anchor:o,total:t,hidden:t-na}}).filter(o=>o.hidden>0)}function vf(e){let o=sR(e);return o.length===0?null:o.map(({anchor:t,total:r,hidden:a})=>{let n=wf[t],s=a===1?"1 is not shown":`${a} are not shown`;return`${n} holds ${r} boxes. The published page draws the first ${na}, so ${s}. ${a===1?"Move it":"Move them"} somewhere else.`}).join(" ")}function xg(e,o){let t=o;if(t?.type!==xl)return null;let r=t.props?.id===void 0?"":String(t.props.id);return r?hl(Tf(e,r),t):null}function Tf(e,o){let t=gg(e,o);return t&&t.ownerType===iR?t.siblings:[]}function Ig(e,o){let t=gg(e,o);return t?t.ancestorTypes.filter(r=>r===xl).length:lR}var lR=1,iR="HeroSlide";function gg(e,o){let t=(r,a,n)=>{if(a>12||!r||typeof r!="object")return null;if(QA(r)){if(r.some(s=>s?.props?.id===o))return{siblings:r,ownerType:n.at(-1)??null,ancestorTypes:n};for(let s of r){let l=s.type,c=t(s,a+1,[...n,String(l)]);if(c)return c}return null}for(let s of Object.values(r)){let l=t(s,a+1,n);if(l)return l}return null};return t(e,0,[])}import{jsx as cR}from"react/jsx-runtime";var Pf="sf-hint-keep";function bg({children:e}){return cR("span",{className:Pf,children:e})}import{jsx as Lt,Fragment as uR,jsxs as Eg}from"react/jsx-runtime";import{useContext as pR,useEffect as mR,useId as hR,useState as Og}from"react";import{SettingsField as xR,SettingsSwitch as IR}from"efficient-easel/panel";import{AnchorIcon as gR}from"efficient-easel/icons";import{ScreenDocumentContext as bR}from"efficient-easel/screen/components/ScreenDocumentContext";import{Snippet as yR}from"efficient-shell/ui";import{slugify as SR}from"efficient-shell/format";import{slugify as dR}from"efficient-shell/format";function pn(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}var yg=e=>dR(pn(e));var Il="homepage";import{slugify as fR}from"efficient-shell/format";var Sg=[{value:"page",label:"Page"},{value:"anchor",label:"Anchor"},{value:"blog",label:"Blog post",needs:"service"},{value:"product",label:"Product",needs:"commerce"},{value:"popup",label:"Popup"},{value:"custom",label:"Custom URL"}];function Cg(e){return e.offersCommerce&&e.offersService?Sg:Sg.filter(o=>!o.needs||(o.needs==="commerce"?e.offersCommerce:e.offersService))}var Ef="#popup:";function wg(e){return`${Ef}${e}`}function kg(e){return e.startsWith(Ef)&&e.slice(Ef.length).trim()||null}function mn(e){return e===Il?"/":`/${e}`}function vg(e){return`/journal/${e}`}function kJ(e){return`/wheels/${e}`}function gl(e,o){return`${mn(e)}#${o}`}function Tg(...e){let o=new Set,t=[];for(let r of e)for(let a of r?.content??[]){let n=pn(a?.props?.anchor);if(!n)continue;let s=fR(n);!s||o.has(s)||(o.add(s),t.push({slug:s,name:n}))}return t}function vJ(e){let o=e.indexOf("#"),t=o===-1?e:e.slice(0,o),r=t.indexOf("?");return r===-1?t:t.slice(0,r)}function Pg(e){return/^\/wheels\/[^/?#]+(?:[?#].*)?$/.test(e)}import{readHidable as CR}from"efficient-easel/draw";function _g({value:e,onChange:o,nameBox:t}){let r=CR(e).text,[a,n]=Og(!1),s=a||r.trim()!=="",l=hR();return Eg(uR,{children:[Lt(xR,{label:i("Add an anchor"),labelId:l,icon:Lt(gR,{}),action:Lt(IR,{checked:s,ariaLabelledBy:l,onChange:c=>{n(c),!c&&r!==""&&o("")}})}),s&&t(e,o),s&&Lt(wR,{name:r})]})}function wR({name:e}){let o=pR(bR),t=o?.templateId?"":o?.currentSlug??"",[r,a]=Og("");mR(()=>a(ra()||window.location.origin),[]);let n=SR(e);if(!n||!t)return null;let s=`${r}${gl(t,n)}`,l=s.replace(/^https?:\/\//,""),c=l.lastIndexOf("#");return Lt("div",{className:"sf-anchor-link",children:Lt(yR,{value:s,label:i("link"),size:"sm",children:Eg("span",{className:"sf-anchor-link-text",children:[Lt("span",{className:"sf-anchor-link-path",children:l.slice(0,c)}),Lt("span",{className:"sf-anchor-link-hash",children:l.slice(c)})]})})})}import{AdjustIcon as t2,EyeIcon as r2,AnimationIcon as a2,BackgroundIcon as n2,BorderAllIcon as s2,BlockSectionIcon as l2,ColumnWidthsIcon as uS,ColumnsIcon as pS,CornerIcon as i2,DirectionDownIcon as c2,DirectionLeftIcon as d2,DirectionRightIcon as f2,DirectionUpIcon as u2,EditIcon as p2,GapIcon as m2,GridIcon as h2,GroundIcon as mS,HashIcon as hS,HeightIcon as x2,ImageIcon as I2,ListIcon as g2,LocationIcon as eS,PaddingBottomIcon as xS,PaddingLeftIcon as IS,PaddingRightIcon as gS,PaddingTopIcon as bS,PageIcon as b2,StickyIcon as y2,RotateIcon as S2,SearchIcon as C2,SquareIcon as w2,TypeIcon as k2,WidthIcon as v2}from"efficient-easel/icons";import{jsx as Re,Fragment as ir,jsxs as cr}from"react/jsx-runtime";import{CaptionIcon as kR,DateIcon as vR,FlagIcon as TR,TitleIcon as PR,ButtonIcon as ER,DollarIcon as OR,HashIcon as _R,LinkIcon as FR,NoteIcon as AR,TagIcon as RR,TextLinesIcon as LR}from"efficient-easel/icons";var Fg={body:LR,button:ER,link:FR,label:RR,number:_R,price:OR,note:AR,name:TR,date:vR,caption:kR,title:PR},Ag={eyebrow:cr(ir,{children:[Re("path",{d:"M5 6.5h5"}),Re("path",{d:"M5 12.5h14"}),Re("path",{d:"M5 18h11"})]}),heading:cr(ir,{children:[Re("path",{d:"M6.5 5v14"}),Re("path",{d:"M17.5 5v14"}),Re("path",{d:"M6.5 12h11"})]}),intro:cr(ir,{children:[Re("path",{d:"M4 5.5v13"}),Re("path",{d:"M8 7.5h12"}),Re("path",{d:"M8 12h12"}),Re("path",{d:"M8 16.5h8"})]}),value:cr(ir,{children:[Re("rect",{x:"2.5",y:"7",width:"19",height:"10",rx:"2"}),Re("path",{d:"M6.5 12h7"})]}),quote:cr(ir,{children:[Re("path",{d:"M9.5 5.5C7 7.2 5.5 9.7 5.5 12.8h4v5.7h-5v-5.7"}),Re("path",{d:"M19.5 5.5c-2.5 1.7-4 4.2-4 7.3h4v5.7h-5v-5.7"})]}),tag:cr(ir,{children:[Re("rect",{x:"3",y:"5.5",width:"18",height:"13",rx:"2.5"}),Re("path",{d:"M8 9.5h8"}),Re("path",{d:"M12 9.5v5"})]}),meta:cr(ir,{children:[Re("path",{d:"M4 7h16"}),Re("path",{d:"M4 14h3.5"}),Re("path",{d:"M10.5 14h3"}),Re("path",{d:"M17 14h3"})]})};function Of({noun:e,size:o=14,strokeWidth:t=1.8,className:r,style:a}){let n=Fg[e];return n?Re("span",{className:r,style:{display:"inline-flex",...a},"aria-hidden":"true",children:Re(n,{size:o})}):Re("svg",{className:r,style:a,width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:Ag[e]})}var GJ=Object.keys(Fg);var zJ=Object.keys(Ag);import{parseHexColor as BR}from"efficient-shell/format";var DR="#ffffff";function _f(e){return NR(e)?e:DR}function NR(e){return typeof e=="string"&&BR(e)===e.toLowerCase()}function jJ(e){return{"--bg":_f(e)}}function Rg(e,o){let t=e?.content;if(!Array.isArray(t))return null;for(let r of t){if(!r||typeof r!="object")continue;let{type:a,props:n}=r;if(n?.id===o)return null;if(Ff(r,o,0))return{type:typeof a=="string"?a:"",props:n??{}}}return null}function Ff(e,o,t){if(t>12||!e||typeof e!="object")return!1;if(Array.isArray(e))return e.some(a=>Ff(a,o,t+1));let r=e.props;return r&&typeof r=="object"&&r.id===o?!0:Object.values(e).some(a=>Ff(a,o,t+1))}function Lg(e,o){let t=e?.content;return Array.isArray(t)?bl(t,o,0)??[]:[]}function bl(e,o,t){if(t>12||!e||typeof e!="object")return null;if(Array.isArray(e)){for(let a of e){let n=bl(a,o,t+1);if(n)return n}return null}let r=e.props;if(r&&typeof r=="object"){if(r.id===o)return[];for(let a of Object.values(r)){let n=bl(a,o,t+1);if(n)return[r,...n]}return null}for(let a of Object.values(e)){let n=bl(a,o,t+1);if(n)return n}return null}import{SettingsDefaultReset as fo,SettingsDrill as T2,SettingsField as Ke,SettingsGroup as P2,SettingsGroupSub as Rae,SettingsSegmented as E2,SettingsBorder as O2,SettingsSidesEach as _2,SettingsSwitch as Ou,borderSides as F2,borderStartEach as A2}from"efficient-easel/panel";import{ListField as R2}from"efficient-easel/fields";import{DisplayChips as L2}from"efficient-shell/ui";function sa(e){if(!e||typeof e!="object"||Array.isArray(e))return{};let o={};for(let[t,r]of Object.entries(e))typeof r=="boolean"&&(o[t]=r);return o}function yl(e,o){return sa(e)[o]!==!1}function Af(e,o,t){let r=sa(o)[t];return typeof r=="boolean"?r:yl(e,t)}function Bg(e){return Object.values(sa(e)).some(o=>o===!1)}function Dg(e){return Object.keys(sa(e)).length>0}function Ng(e,o,t){let r={...sa(e)};return t?delete r[o]:r[o]=!1,Object.keys(r).length?r:void 0}function Mg(e,o,t){return{...sa(e),[o]:t}}function VJ(e,o,t){let r=yl(e,t),a=Af(e,o,t);return r&&a?"":!r&&!a?"hidden":r?"max-[720px]:hidden":"min-[720px]:hidden"}import{AlignmentGrid as B2,Checkbox as Mae,ColorSwatch as D2,CornersInput as N2,DatePicker as Hae,DateTimePicker as M2,FOCAL_DEFAULT as Wae,PictureTiles as H2,IconPicker as W2,IconButton as yS,InputNumber as oS,Slider as G2,Tooltip as li}from"efficient-shell/ui";import{backendOf as MR}from"efficient-easel/screen/lib/session";var Me=MR,Sl=e=>e.blocks;async function Hg(e){let o=e.trim();if(!o)return null;let t=Me().geocode;if(!t)throw new Error("geocode_unavailable");return t.locate(o)}var Rf="Lookup busy \u2014 try again in a moment.",Cl=e=>typeof e=="number"&&Number.isFinite(e);function oQ(e){return e.some(o=>{let t=o?.geocode;return t?t.pending||t.manual&&t.lat===void 0&&t.lng===void 0?!0:Cl(t.lat)&&t.lat!==o.lat||Cl(t.lng)&&t.lng!==o.lng:!1})}async function tQ(e,o,{geocode:t=Hg,courtesyGapMs:r=1100}={}){let a=s=>new Promise(l=>setTimeout(l,s)),n=e.slice();if(e.some(s=>s?.geocode?.pending)){let s=[],l=!1;for(let c of e){if(!c?.geocode?.pending){s.push(c);continue}l&&r>0&&await a(r),l=!0;try{let d=await t(o(c));s.push(d?{...c,lat:d.lat,lng:d.lng,geocode:{...c.geocode,pending:!1,ok:!0,status:`Found \u2014 ${d.label.split(",").slice(0,3).join(",").trim()}`,lat:d.lat,lng:d.lng}}:{...c,geocode:{...c.geocode,pending:!1,ok:!1,status:"No match \u2014 check the address and try again."}})}catch{s.push({...c,geocode:{...c.geocode,pending:!1,ok:!1,status:Rf}})}}n=s}return n.map(s=>{let l=s?.geocode;if(!l)return s;if(l.manual&&l.lat===void 0&&l.lng===void 0)return{...s,geocode:{...l,lat:s.lat,lng:s.lng}};let c=Cl(l.lat)&&l.lat!==s.lat?l.lat:s.lat,d=Cl(l.lng)&&l.lng!==s.lng?l.lng:s.lng;return c!==s.lat||d!==s.lng?{...s,lat:c,lng:d}:s})}import{keptByRow as z2}from"efficient-easel/screen/lib/document/style-fields";import{jsx as lL}from"react/jsx-runtime";import{useEffect as iL,useState as cL}from"react";import{clearRangeOf as dL,markSelection as fL,useCaretEdit as uL}from"efficient-easel/copy";import{TextToolbar as pL}from"efficient-shell/ui";import{applyMark as cQ,markupTools as dQ,MARKUP_TOOLS as fQ,COPY_FIELD_TOOLS as uQ,STOREFRONT_MARKUP as pQ,tokenizeInline as mQ,stripInline as hQ,isSafeLinkHref as xQ}from"efficient-shell/markup";import{applyMark as XR,clearStyle as ZR,markedAt as JR,markupTools as QR,MARKUP_TOOLS as eL,parseMarkup as oL,RETIRED_MARKS as tL,STOREFRONT_MARKUP as rL,tokenizeInline as gQ}from"efficient-shell/markup";var dr=["highlight","strong","quiet"],fr={highlight:"Highlight",strong:"Bold",quiet:"Quiet"},et={highlight:{kind:"wordHighlight",delimiter:"@@"},strong:{kind:"wordStrong",delimiter:"++"},quiet:{kind:"wordQuiet",delimiter:"^^"}},Ug=Object.fromEntries(dr.map(e=>[et[e].kind,e])),$g="data-sf-ws",wl=["accent","text","labels"],jg={accent:"Accent",text:"Text",labels:"Labels"},ut={accent:"var(--accent)",text:"var(--fg)",labels:"var(--fg-dim)"},HR=80,WR=120,GR=100,zR=900,UR=.5,$R=3,jR=-.1,KR=.5,qR=3,Lf={font:null,size:null,weight:null,bold:null,italic:null,lineGap:null,textGap:null,colour:null},VR={highlight:{...Lf},strong:{...Lf},quiet:{...Lf}};function Wg(e,o,t){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,o),t))}function Gg(e,o,t){if(typeof e!="number"||!Number.isFinite(e))return null;let r=10**qR;return Math.round(Math.min(Math.max(e,o),t)*r)/r}function zg(e){return typeof e=="boolean"?e:null}function YR(e){let o=typeof e?.font=="string"&&Fo.some(r=>r.key===e.font)?e.font:null,t=typeof e?.colour=="string"&&wl.includes(e.colour)?e.colour:null;return{font:o,size:Wg(e?.size,HR,WR),weight:Wg(e?.weight,GR,zR),bold:zg(e?.bold),italic:zg(e?.italic),lineGap:Gg(e?.lineGap,UR,$R),textGap:Gg(e?.textGap,jR,KR),colour:t}}function Kg(e){let o={};for(let t of dr)o[t]=e&&t in e&&e[t]?YR(e[t]):{...VR[t]};return o}function nQ(e){let o=Kg(e),t={};for(let r of dr){let a=o[r],n=`--sf-ws-${r}`;if(a.font){let s=Fo.find(l=>l.key===a.font);s&&(t[`${n}-font`]=`var(${s.cssVar})`)}a.size!==null&&(t[`${n}-size`]=`${a.size/100}em`),a.weight!==null&&(t[`${n}-weight`]=String(a.weight)),a.bold!==null&&(t[`${n}-weight-bold`]=a.bold?"700":"400"),a.italic!==null&&(t[`${n}-style`]=a.italic?"italic":"normal"),a.lineGap!==null&&(t[`${n}-line`]=String(a.lineGap)),a.textGap!==null&&(t[`${n}-track`]=`${a.textGap}em`),a.colour!==null&&(t[`${n}-color`]=ut[a.colour])}return t}function sQ(e){let o=e?.word_styles??void 0,t={};for(let r of dr)o&&r in o&&(t[r]=o[r]??null);return Kg(t)}var aL=new Set(["strong"]),qg=dr.map(e=>({open:et[e].delimiter,close:et[e].delimiter,kind:et[e].kind,...aL.has(e)?{wordStart:!0}:{}})),yQ=[{style:et.highlight.kind,label:fr.highlight,title:`${fr.highlight} word style`},{style:et.strong.kind,label:fr.strong,title:`${fr.strong} word style`},{style:et.quiet.kind,label:fr.quiet,title:`${fr.quiet} word style`}],nL=new Set(qg.map(e=>e.open)),ur=[...rL.filter(e=>!nL.has(e.open)),...qg];function Bf(e){return e.bullet?"- ":e.number!=null?`${e.number}. `:""}function hn(e){return oL(typeof e=="string"?e:"",ur)}var sL=eL.map(e=>e.style).filter(e=>!tL.includes(e)).filter(e=>ur.some(o=>o.kind===e));function Vg(){return QR(sL)}var Yg=Object.fromEntries(dr.map(e=>[et[e].kind,et[e].delimiter]));function Xg(e,o,t,r){let a=Yg[r];if(!a)return XR(e,o,t,r);let n=e.slice(o,t),s=e.slice(Math.max(0,o-a.length),o),l=e.slice(t,t+a.length);if(s===a&&l===a)return{text:e.slice(0,o-a.length)+n+e.slice(t+a.length),selectionStart:o-a.length,selectionEnd:o-a.length+n.length};let c=n||"styled text";return{text:e.slice(0,o)+a+c+a+e.slice(t),selectionStart:o+a.length,selectionEnd:o+a.length+c.length}}function Zg(e,o,t,r){let a=Yg[r];return a?o>=a.length&&e.slice(o-a.length,o)===a&&e.slice(t,t+a.length)===a:JR(e,o,t,r)}function pr(e){return hn(e).map(o=>Bf(o)+Qg(o.children)).join(`
|
|
2
|
+
`)}function Jg(e,o,t){return ZR(e,o,t,ur)}function Qg(e){return e.map(o=>o.kind==="text"?o.text:Qg(o.children)).join("")}function mL(e,o,t){return fL(e,o,t,Xg)}function eb(e,o){let t=dL(o,e.length),r=Jg(e,t.start,t.end);return r.text===e?null:r}function hL(e){let[o,t]=cL(null);return iL(()=>{let r=e.current?.ownerDocument??(typeof document>"u"?null:document);if(!r)return;let a=()=>{let n=e.current;if(!n||r.activeElement!==n)return;let s=n.selectionStart??n.value.length,l=n.selectionEnd??s;t(c=>c&&c.start===s&&c.end===l?c:{start:s,end:l})};return r.addEventListener("selectionchange",a),()=>r.removeEventListener("selectionchange",a)},[e]),[o,t]}function xL({target:e,value:o,onChange:t,disabled:r=!1,label:a="Formatting"}){let n=uL({target:e,onChange:t}),[s,l]=hL(e),c=p=>n(x=>{let g=mL(o,p,x);return l({start:g.selectionStart,end:g.selectionEnd}),g}),d=Vg(),u={};if(s)for(let p of d)u[p.style]=Zg(o,s.start,s.end,p.style);let h=r?null:eb(o,s);return lL(pL,{offered:new Set(d.map(p=>p.style)),onMark:p=>c(p),pressed:u,disabled:r,"aria-label":i(a),className:"sf-markup-bar",clear:h?{onClear:()=>n(()=>{let p=e.current,x=p&&p.ownerDocument.activeElement===p?{start:p.selectionStart??0,end:p.selectionEnd??0}:null,g=eb(o,x)??{text:o,selectionStart:x?.start??0,selectionEnd:x?.end??0};return l({start:g.selectionStart,end:g.selectionEnd}),g})}:void 0})}var Df=xL;import{deviceField as je}from"efficient-easel/screen/lib/document/device-fields";import{NO_CONTROL_FIELD as U2,NoControlMark as $2,noControlField as SS}from"efficient-easel/screen/lib/document/panel-no-control-mark";var Nf="__ownBox";function ob(e){return!!e&&typeof e=="object"&&e[Nf]===!0}function kl(e,o,t){return typeof e=="number"?e:typeof o=="number"?o:t}var vl=void 0;import{phoneKey as ba,tabletKey as j2}from"efficient-easel/draw";import{jsx as Hf,Fragment as bL}from"react/jsx-runtime";import{createContext as yL,useContext as SL}from"react";var Tl={ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},Pl={Events:["posts"],SubscribeBlogs:["posts"]};var IL=["anchor"],gL=/^href$|Href$|^url$|Url$|^link$|^mailto$|^tel$/;function xn(e){return IL.includes(e)||gL.test(e)}var Mf={Gallery:{source:{verb:"snapshot",keep:[]}},ProductHero:{source:{verb:"snapshot",keep:[]}},SpecTable:{source:{verb:"snapshot",keep:[]},wheel:{verb:"reference"},finish:{verb:"reference"},size:{verb:"reference"}},CollectionCard:{collection:{verb:"snapshot",keep:[]}},FooterMenu:{menu:{verb:"snapshot",keep:[]}},MenuBlock:{menu:{verb:"snapshot",keep:[]}},ProductGrid:{design_codes:{verb:"reference"}},ProductRef:{code:{verb:"reference"},finish:{verb:"reference"}},FitmentTable:{wheel:{verb:"reference"}},GalleryItem:{fromProduct:{verb:"reference"}},Footprint:{"offices[].group":{verb:"groupKey"},"offices[].lat":{verb:"pii"},"offices[].lng":{verb:"pii"},"offices[].geocode":{verb:"pii"}}};Mf.ContactLocations={"locations[].lat":{verb:"pii"},"locations[].lng":{verb:"pii"},"locations[].mapsUrl":{verb:"pii"},"locations[].geocode":{verb:"pii"}};var RQ=Object.fromEntries(Object.entries(Tl).map(([e,o])=>[e,Object.keys(o)])),LQ=Object.fromEntries(Object.entries(Pl).map(([e,o])=>[e,[...o]]));import{NoControlMark as CL}from"efficient-easel/screen/lib/document/panel-no-control-mark";var tb=yL(!1);function rb({children:e}){return Hf(tb.Provider,{value:!0,children:e})}function wL(){return SL(tb)}function ab({name:e,children:o}){return!wL()||!e||!kL(e)||xn(e)?Hf(bL,{children:o}):Hf(CL,{})}function kL(e){return/^[A-Za-z0-9_$]+$/u.test(e)}function io(e,o,t){return e.some(r=>(typeof r=="object"?r.value:r)===t)?t:o}var Wf="off",Gf="none",zf=[{label:"None",value:"off"},{label:"1, 2, 3",value:"plain"},{label:"01, 02, 03",value:"padded"},{label:"N\xB001, N\xB002",value:"numero"}],Uf=[{label:"None",value:"none"},{label:"Hairline",value:"hairline"}];function UQ(e){return io(zf,Wf,e)}function $Q(e){return io(Uf,Gf,e)}var nb="sf-card-index",In="sf-card-index",jQ="pointer-events-none absolute left-[18px] top-[18px] z-10 border border-line bg-bg/70 px-2 py-1 font-mono text-[length:var(--size-label,10px)] uppercase tracking-[0.16em] text-fg-dim",vL={plain:`counter(${In})`,padded:`counter(${In}, decimal-leading-zero)`,numero:`"N\xB0" counter(${In}, decimal-leading-zero)`};function KQ(e,o){return o==="off"?"":`.${e}{counter-reset:${In}}.${e} .${nb}{counter-increment:${In}}.${e} .${nb}::before{content:${vL[o]}}`}function qQ(e){return e==="hairline"?"border border-line hover:border-accent":""}var sb=[{value:"1",label:"1st rendering"},{value:"2",label:"2nd rendering"},{value:"3",label:"3rd rendering"},{value:"4",label:"4th rendering"},{value:"5",label:"5th rendering"}];import{SCALAR_TEXT_CONTROLS as K2}from"efficient-easel/draw";import{jsx as ot}from"react/jsx-runtime";import{SettingsDefaultReset as TL,SettingsField as lb}from"efficient-easel/panel";import{useSelectedHost as PL}from"efficient-easel/easel";import{FOCAL_DEFAULT as EL}from"efficient-shell/format";import{ImageIcon as ib,PlayIcon as cb}from"efficient-easel/icons";import{MediaUploadField as OL}from"efficient-shell/ui";import{useContext as _L}from"react";import{ScreenDocumentContext as FL}from"efficient-easel/screen/components/ScreenDocumentContext";import{phoneKey as AL}from"efficient-easel/draw";import{usePreviewDevice as RL}from"efficient-easel/draw/client";import{shownTier as db}from"efficient-easel/screen/lib/document/device-fields";import{requestMediaPick as LL}from"efficient-easel/screen/lib/media-picker";import{useEaselHost as BL}from"efficient-easel/screen/lib/host";import{useEaselSession as DL}from"efficient-easel/screen/lib/session-context";function NL(e,o,t){if(db(t)==="tablet")return null;let r=db(t)==="mobile",a=typeof e[o]=="string"&&e[o]?String(e[o]):EL,n=AL(o),s=typeof e[n]=="string"&&e[n]?String(e[n]):void 0;return{phone:r,desktop:a,own:s,focus:r?s??a:a,key:r?n:o,twin:n}}function ML(e,o){let t=PL(),r=RL();if(!e||!t)return null;let a=t.values??{};if(o&&!o(a))return null;let n=NL(a,e,r);if(!n)return null;let s=t.onChange;return{phone:n.phone,desktop:n.desktop,own:n.own,focus:n.focus,set:l=>s(n.key,l),clear:()=>s(n.twin,vl)}}function fb({value:e,onChange:o,label:t,accept:r,placeholder:a,focusKey:n,focusWhen:s,frameKey:l,fieldKey:c}){let d=BL(),u=DL(),h=i(t),p=r.startsWith("video"),x=ML(p?void 0:n,s),g=_L(FL),y=$f(),E=l&&c?{video:c,frame:l}:null,O=v=>LL(d,{accept:r,title:h,...v?{file:v}:{}}).then(k=>!k||!E?k?.url??null:(y({[E.video]:k.url,[E.frame]:k.posterUrl??""}),null)),C=E?v=>v?o(v):y({[E.video]:"",[E.frame]:""}):o;if(g&&!g.capabilities.mediaEditing)return ot(lb,{label:h,icon:p?ot(cb,{}):ot(ib,{}),children:ot("div",{className:"sf-image-slot-inert",children:p?i("Templates don\u2019t store videos \u2014 this slot stays a placeholder. Each website picks its own after it\u2019s created."):i("Templates don\u2019t store images \u2014 this slot stays a placeholder. Each website picks its own after it\u2019s created.")})});let I=Rt(e),w=x?.phone&&I?ot(TL,{words:Q()?.panel,label:i("Image focus"),changed:!!x.own,detail:i("{value} on desktop",{value:x.desktop}),onReset:x.clear}):void 0;return ot(lb,{label:h,icon:p?ot(cb,{}):ot(ib,{}),action:w,children:ot("div",{style:{flex:"1 1 auto",minWidth:0},children:ot(OL,{value:I,onChange:C,onPick:O,accept:p?"video/*":"image/*",kind:p?"video":"image",placeholder:a===void 0?void 0:i(a),maxSizeBytes:Me(u).media.maxUploadBytes,...x?{focus:x.focus,onFocusChange:x.set}:{}})})})}import{jsx as ub}from"react/jsx-runtime";import{useId as HL}from"react";import{FieldSelect as WL}from"efficient-easel/fields";import{SettingsField as GL}from"efficient-easel/panel";function zL(e){return e.map(({value:o,label:t,note:r})=>({value:o,label:t,...r?{meta:r}:{}}))}function pb({label:e,options:o,value:t,onChange:r,emptyLabel:a,icon:n,hint:s}){let l=HL(),c=`${l}-label`,d=`${l}-button`,u=Array.isArray(t)?t:[];return ub(GL,{label:i(e),labelId:c,icon:n,hint:s,children:ub(WL,{id:d,multiple:!0,value:u,options:zL(o),onChange:r,placeholder:a===void 0?i("None"):i(a),ariaLabelledBy:`${c} ${d}`,inline:!0})})}import{jsx as Ve,jsxs as hr,Fragment as eB}from"react/jsx-runtime";import{useCallback as kb,useContext as oB,useId as Pb,useRef as vb,useState as Tb}from"react";import{ThemeIcon as tB}from"efficient-easel/icons";import{Button as rB,useClickOutside as aB}from"efficient-shell/ui";import{SettingsField as nB}from"efficient-easel/panel";import{ScreenDocumentContext as sB}from"efficient-easel/screen/components/ScreenDocumentContext";import{useCallback as Xf,useEffect as gb,useRef as Fl}from"react";import{currentEaselSession as jL}from"efficient-easel/screen/lib/session";import{useEaselSession as KL}from"efficient-easel/screen/lib/session-context";import{useSyncExternalStore as UL}from"react";var hb,jf=null,mr=null,El=0,Kf=new Set;function qf(e){hb=e;for(let o of Kf)o()}function Vf(e){jf=e,El+=1,mr&&clearTimeout(mr),mr=null,qf(void 0)}function Ol(e){El+=1,qf(e)}function pt(e=250){jf&&(mr&&clearTimeout(mr),mr=setTimeout(()=>{mr=null;let o=jf;if(!o)return;let t=++El;o().then(r=>{t===El&&qf(r)}).catch(()=>{})},e))}function mb(){return hb}function $L(e){return Kf.add(e),()=>{Kf.delete(e)}}function _l(){return UL($L,mb,mb)}var Yf=new Set;function xb(e){return Yf.add(e),()=>{Yf.delete(e)}}async function Ib(){let e=(await Promise.allSettled([...Yf].map(async o=>o()))).find(o=>o.status==="rejected");if(e)throw e.reason}import{WebsiteBackendError as qL}from"efficient-easel/screen/lib/backend-error";function bb(e=jL()){return(o,t,r)=>{let a=Me(e).theme;return a?a.update(o,r?{siteId:r}:void 0):Promise.reject(new qL("invalid","This backend stores no site theme."))}}function yb(e){return e.themeFromDocument?{status:"skipped",reason:"template"}:e.token?null:{status:"skipped",reason:"no-token"}}async function VL(e,o=bb()){let{themeFromDocument:t,token:r,siteId:a,patch:n}=e,s=yb({themeFromDocument:t,token:r});if(s)return s;if(Object.keys(n).length===0)return{status:"skipped",reason:"empty"};try{return await o(n,r,a??void 0),{status:"saved"}}catch(l){return{status:"failed",error:l}}}function la({themeFromDocument:e,tokenRef:o,siteId:t,onResult:r}){let a=Fl(null),n=Fl({}),s=KL(),l=Fl(r);l.current=r;let c=Fl(null),d=Xf(p=>{if(p.status==="skipped"){let x=`skipped:${p.reason}`;if(c.current===x)return;c.current=x}else c.current=null;l.current?.(p)},[]),u=Xf(async()=>{a.current&&(clearTimeout(a.current),a.current=null);let p=n.current;n.current={};let x=await VL({themeFromDocument:e,token:o?.current,siteId:t,patch:p},bb(s));return d(x),x.status==="saved"&&pt(),x.status==="failed"&&(n.current={...p,...n.current}),x},[e,o,t,d,s]),h=Xf((p,x=!1)=>{let g=yb({themeFromDocument:e,token:o?.current});if(g){d(g);return}n.current={...n.current,...p},a.current&&clearTimeout(a.current),x?u():a.current=setTimeout(()=>{u()},500)},[e,o,u,d]);return gb(()=>()=>{u()},[u]),gb(()=>xb(async()=>{if(!a.current&&Object.keys(n.current).length===0)return;let p=await u();if(p.status==="failed")throw p.error}),[u]),{persist:h,flush:u}}var Zf=[{role:"bg",token:"--bg",ink:!1},{role:"fg",token:"--fg",ink:!0},{role:"surface",token:"--site-surface",ink:!1},{role:"surface-2",token:"--site-surface-2",ink:!1},{role:"line",token:"--site-line",ink:!0},{role:"muted",token:"--fg-dim",ink:!0}],YL=Zf.filter(e=>e.ink);function XL(e){let o={color:e.fg};for(let{role:t,token:r}of YL)o[r]=e[t];return o}var ZL={fg:"var(--overlay-fg)",line:"color-mix(in srgb, var(--overlay-fg) 24%, transparent)",muted:"color-mix(in srgb, var(--overlay-fg) 76%, transparent)"},Sb=Object.freeze(XL(ZL));var ia=-1,JL="sf-section-accent",Cb="Color",wb=new Set(["CategoryBar","DocTabs"]),Bee=new Set(["Flex"]),Jf=0;function Ro(e){return e===ia?null:typeof e=="number"&&Number.isInteger(e)&&e>=0?e:Jf}function Qf(e){return e??ia}function QL(e){let o=`--theme-preset-${e}`,t={"--sf-sec-accent":`var(${o}-accent)`,"--sf-sec-accent-2":`var(${o}-accent-2)`,"--sf-sec-accent-ink":`var(${o}-accent-ink)`};for(let{role:r}of Zf)t[`--sf-sec-${r}`]=`var(${o}-${r}, var(--theme-${r}))`;return t}function Dee(e){let o=Ro(e.sectionAccent);return o===null?null:{className:JL,style:QL(o)}}var lB="Follow the page",Xee="Follow the slideshow",iB=e=>i("Editing {name} changes it everywhere.",{name:e});function cB({colors:e}){if(!e)return Ve("span",{className:"sf-secttheme-chip sf-secttheme-chip--none","aria-hidden":"true"});let o=Zo(e);return hr("span",{className:"sf-secttheme-chip","aria-hidden":"true",children:[Ve("i",{style:{background:o.background}}),Ve("i",{className:"sf-secttheme-chip-accent",style:{background:o.accent}})]})}function dB({themes:e,value:o,onPick:t,onEdit:r,menuId:a,followLabel:n}){return hr("div",{className:"sf-multi-menu sf-secttheme-menu",id:a,role:"listbox",children:[n!==void 0&&hr(eB,{children:[hr("button",{type:"button",role:"option","aria-selected":o===null,className:`sf-secttheme-item${o===null?" is-active":""}`,onClick:()=>t(ia),children:[Ve(cB,{}),Ve("span",{className:"sf-secttheme-name",children:i(n)})]}),Ve("div",{className:"sf-secttheme-sep",role:"presentation"})]}),o!==null&&e[o]&&Ve("p",{className:"sf-secttheme-oncard",role:"presentation",children:i("{name} is on this section",{name:cn(o)})}),e.map((s,l)=>l===o?null:Ve(sl,{role:"option",index:l,colors:s,selected:!1,onPick:()=>t(l),onEdit:()=>r(l)},l))]})}function fB({index:e,colors:o,onChange:t,onDone:r}){let a=cn(e),n=Pb();return hr("div",{className:"sf-secttheme-sheet",children:[hr("div",{className:"sf-secttheme-sheet-head",children:[Ve("span",{children:a}),Ve(rB,{variant:"secondary",className:"sf-secttheme-done",onClick:r,children:i("Done")})]}),Ve("div",{className:"sf-secttheme-rows",children:Ve(rf,{colors:o,onChange:t,idPrefix:n})}),Ve("p",{className:"sf-secttheme-warn",children:iB(a)})]})}function Eb({value:e,onChange:o,followLabel:t,hint:r}){let{theme:a,setTheme:n}=se(),s=oo(a),l=oB(sB),c=l?.tokenRef,d=l?.siteId??null,u=!l?.capabilities?.hasSiteTheme,{persist:h,flush:p}=la({themeFromDocument:u,tokenRef:c,siteId:d}),x=oo(s),g=x.themes,y=Ro(e),E=y!==null?g[y]:void 0,O=E??(g.length?Qr(x):void 0),[C,I]=Tb(!1),[w,v]=Tb(null),k=vb(null),A=vb(null),D=Pb(),P=kb(()=>{I(!1),v(null)},[]),F=kb(()=>{!C&&w===null||(p(),P())},[C,w,P,p]);aB(k,F);let N=_=>{o(_),P()},b=_=>{if(w===null)return;let R=g.map((U,Z)=>Z===w?_:U),H={...x,themes:R};n(H),h({selected_preset:H.selected,theme_presets:H.themes})};return hr("div",{className:"sf-secttheme",ref:k,children:[Ve(nB,{label:i("Theme"),icon:Ve(tB,{}),labelId:`${D}-label`,hint:r,children:Ve(NI,{colors:O,onEdit:y!==null?()=>{v(y),I(!1)}:void 0,name:E?cn(y):i(t??lB),nameId:`${D}-value`,labelId:`${D}-label`,open:C,menuId:D,buttonRef:A,onClick:()=>{v(null),I(_=>!_)},onKeyDown:_=>{_.key==="Escape"&&(C||w!==null)&&(_.preventDefault(),P())}})}),C&&w===null&&Ve("div",{onKeyDown:_=>{_.key==="Escape"&&(_.preventDefault(),P(),A.current?.focus())},children:Ve(dB,{themes:g,value:y,onPick:N,onEdit:_=>{v(_),I(!1)},menuId:D,followLabel:t})}),w!==null&&g[w]&&Ve(fB,{index:w,colors:g[w],onChange:b,onDone:()=>{p(),P(),A.current?.focus()}})]})}import{jsx as Ob}from"react/jsx-runtime";import{useId as uB}from"react";import{FieldSelect as pB}from"efficient-easel/fields";import{SettingsField as mB}from"efficient-easel/panel";function hB(e){return e.map(({value:o,label:t,group:r,thumb:a,meta:n})=>({value:o,label:t,...r!==void 0?{group:r}:{},...a!==void 0?{thumb:a}:{},...n!==void 0?{meta:n}:{}}))}function roe({label:e,options:o,fallback:t,value:r,onChange:a,placeholder:n,bare:s=!1,icon:l}){let c=uB(),d=`${c}-label`,u=`${c}-button`,h=r??"",p=o.some(E=>E.value===h)?h:t,x=i(e),g=n===void 0?void 0:i(n),y=Ob(pB,{id:u,value:p,options:hB(o),onChange:a,placeholder:g,searchPlaceholder:g,...s?{ariaLabel:x}:{ariaLabelledBy:`${d} ${u}`},searchable:!0,groupCount:!0,inline:!0});return s?y:Ob(mB,{label:x,labelId:d,icon:l,children:y})}import{jsx as Ir,jsxs as KB}from"react/jsx-runtime";import{SettingsField as ey}from"efficient-easel/panel";import{LinkIcon as qB}from"efficient-easel/icons";import{LinkPicker as VB,TextLinkField as YB}from"efficient-shell/ui";import{useEffect as Qb,useMemo as Bl,useRef as XB,useState as Ll}from"react";import{currentEaselSession as xB}from"efficient-easel/screen/lib/session";function _b(){return xB().auth.token}import{currentEaselSession as ZB}from"efficient-easel/screen/lib/session";import{useScreenDocument as JB}from"efficient-easel/screen/components/ScreenDocumentContext";var IB=()=>({choosePage:i("Choose a page"),chooseSection:i("Choose a section"),noSections:i("No section anchors yet"),sectionHint:i("Jumps to a section on that page."),choosePost:i("Choose a post"),chooseProduct:i("Choose a product"),choosePopup:i("Choose a popup")});function Fb(e,o,t){if(!e)return"page";if(kg(e))return"popup";if(e.startsWith("/journal/"))return"blog";if(Pg(e))return"product";if(e.includes("#")){let r=e.slice(0,e.indexOf("#"));if(r===""||r==="/"||o.includes(r))return"anchor"}return e==="/"||o.includes(e)||t&&t.listingPaths.includes(t.targetOf(e))?"page":"custom"}function eu(e,o){let t=IB(),r=e.pages.map(u=>({value:mn(u.slug),label:u.title})),a=o?.pageOptions?o.pageOptions(r):r,n=a.map(u=>u.value),s=e.pages.map(u=>({label:u.title,options:Tg(...u.docs).map(h=>({value:gl(u.slug,h.slug),label:h.name}))})).filter(u=>u.options.length>0),l=u=>{switch(u){case"page":return{type:"select",options:a,placeholder:t.choosePage};case"anchor":return{type:"groups",groups:s,placeholder:s.length?t.chooseSection:t.noSections};case"blog":return{type:"select",options:e.posts.map(h=>({value:vg(h.slug),label:h.title||h.slug})),placeholder:t.choosePost};case"product":return{type:"select",options:e.products.map(h=>({value:h.href,label:h.name||h.href})),placeholder:t.chooseProduct};case"popup":return{type:"select",options:(e.popups??[]).map(h=>({value:wg(h.slug),label:h.title||h.slug})),placeholder:t.choosePopup};case"custom":return{type:"text"}}},c=Cg(e.offers).map(u=>({value:u.value,label:i(u.label),target:l(u.value),...u.value==="anchor"?{hint:t.sectionHint}:{},...u.value==="blog"||u.value==="product"||u.value==="popup"?{hideWhenEmpty:!0}:{}}));if(!o)return{kinds:c,rules:{kindOf:u=>Fb(u,n),targetOf:u=>u,readFilter:()=>null,withFilter:u=>u}};let d=u=>{let h=o.withFilter(u,null);return o.listingPaths.includes(h)?h:u};return{kinds:c,rules:{kindOf:u=>Fb(u,n,{listingPaths:o.listingPaths,targetOf:d}),targetOf:d,readFilter:o.readFilter,withFilter:o.withFilter},filtersFor:u=>o.listingPaths.includes(u)?o.filtersFor(u):null}}import{useEaselSession as QB}from"efficient-easel/screen/lib/session-context";var j=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function to(e,o){if(typeof e=="string")return e||o;if(e&&typeof e=="object"&&"text"in e){let t=e.text;return ke(t)??o}return o}function Ab(e,o){return j(e)??o}function Bt(e,o){return typeof e=="boolean"?e:o}function Al(e,o){if(!Array.isArray(e))return o;let t=e.map(r=>typeof r=="string"?r:to(r?.text,"")).map(r=>r.trim()).filter(Boolean);return t.length?t:o}var Lb=["delay","scroll","exit"],Bb=["all","chosen","except"],Db=["visit","days","never","once"],gB=["all","desktop","phone"],bB=["stop","continue"],Nb={min:0,max:60},Mb={min:10,max:90},Hb={min:1,max:90},Bo={autoOpen:!1,trigger:"delay",autoOpenDelaySec:15,scrollPercent:50,showOn:"all",showOnPages:[],devices:"all",hideAfter:"days",hideDays:7,afterSubmit:"stop",startDate:null,endDate:null};function Lo(e,o,t){return typeof o=="string"&&e.includes(o)?o:t}function ca(e,o,t){let r=Ab(e,t);return Math.min(o.max,Math.max(o.min,Math.round(r)))}function yB(e){return typeof e.hideAfter=="string"?Lo(Db,e.hideAfter,Bo.hideAfter):e.oncePerSession===!0?"visit":e.oncePerSession===!1?"never":Bo.hideAfter}function SB(e){return Array.isArray(e)?e.map(o=>typeof o=="string"?o.trim():"").filter(Boolean).map(o=>o.startsWith("/")?o:`/${o}`):[]}function Rb(e){if(typeof e!="string")return null;let o=e.trim();return/^\d{4}-\d{2}-\d{2}$/.test(o)?o:null}function Wb(e){let o=e??{},t=Bo;return{autoOpen:Bt(o.autoOpen,t.autoOpen),trigger:Lo(Lb,o.trigger,t.trigger),autoOpenDelaySec:ca(o.autoOpenDelaySec,Nb,t.autoOpenDelaySec),scrollPercent:ca(o.scrollPercent,Mb,t.scrollPercent),showOn:Lo(Bb,o.showOn,t.showOn),showOnPages:SB(o.showOnPages),devices:Lo(gB,o.devices,t.devices),hideAfter:yB(o),hideDays:ca(o.hideDays,Hb,t.hideDays),afterSubmit:Lo(bB,o.afterSubmit,t.afterSubmit),startDate:Rb(o.startDate),endDate:Rb(o.endDate)}}import{parseHexColor as CB}from"efficient-shell/format";var da="#000000";var ou="popup",wB=aa,kB=["auto","full"],vB=["inside","outside","none"],TB={min:240,max:1440},PB={min:0,max:100},gn={placement:"center",fullWidth:!1,width:720,height:"auto",tintColor:da,tintOpacity:60,outsideClick:!0,closeButton:"inside"};function EB(e,o){let t=typeof e=="string"?e.trim():"";return t&&CB(t)===t.toLowerCase()?t:o}function Gb(e,o=gn){let t=e??{},r=o;return{placement:Lo(wB,t.placement,r.placement),fullWidth:Bt(t.fullWidth,r.fullWidth),width:ca(t.width,TB,r.width),height:Lo(kB,t.height,r.height),tintColor:EB(t.tintColor,r.tintColor),tintOpacity:ca(t.tintOpacity,PB,r.tintOpacity),outsideClick:Bt(t.outsideClick,r.outsideClick),closeButton:Lo(vB,t.closeButton,r.closeButton)}}var zb="cart-drawer",voe="cart-drawer",OB={kickerBadge:"",kickerText:"Your order",titleLead:"Your",titleAccent:"cart.",subtitleEmpty:"Empty for now.",subtitleOne:"One set in your cart.",subtitleMany:"{count} sets in your cart.",leadTimeValue:"",shipsToFallback:"",promises:[],emptyKicker:"No wheels yet",emptyBody:"Your cart is empty. Pick a wheel to get started."};function Toe(e,o){return o===0?e.subtitleEmpty:o===1?e.subtitleOne:e.subtitleMany.replace("{count}",String(o))}function Poe(e){let o=e??{},t=OB;return{kickerBadge:to(o.kickerBadge,t.kickerBadge),kickerText:to(o.kickerText,t.kickerText),titleLead:to(o.titleLead,t.titleLead),titleAccent:to(o.titleAccent,t.titleAccent),subtitleEmpty:to(o.subtitleEmpty,t.subtitleEmpty),subtitleOne:to(o.subtitleOne,t.subtitleOne),subtitleMany:to(o.subtitleMany,t.subtitleMany),leadTimeValue:to(o.leadTimeValue,t.leadTimeValue),shipsToFallback:to(o.shipsToFallback,t.shipsToFallback),promises:Al(o.promises,t.promises),emptyKicker:to(o.emptyKicker,t.emptyKicker),emptyBody:to(o.emptyBody,t.emptyBody)}}var Eoe={...gn,width:520,tintOpacity:68};var $b="consent-banner",Aoe="consent-banner";var _B=[{value:"bar",label:"Bar"},{value:"card",label:"Card"}],Roe="Layout",Ub={layout:"bar"},FB=e=>_B.some(o=>o.value===e);function Loe(e){let o=to((e??{}).layout,Ub.layout);return{layout:FB(o)?o:Ub.layout}}var Boe={...gn,placement:"bottom-center",fullWidth:!0,width:440,tintOpacity:0,outsideClick:!1,closeButton:"none"};var AB="consentWords",RB=["eyebrow","notice","accept","reject","choose"];function tu(e){let o=(e??{})[AB];return typeof o=="string"&&RB.includes(o)?o:null}function ru(e){let o=e?.props;return o?tu(o)!==null?!0:Object.values(o).some(t=>Array.isArray(t)&&t.some(r=>r&&typeof r=="object"&&"props"in r&&ru(r))):!1}var LB=["meta","eyebrow","heading","body","statName","statValue","formEyebrow","formHeading","formIntro","fieldLabel","option","finePrint","dismiss","doneHeading","doneBody"],Moe={meta:"Meta line",eyebrow:"Eyebrow",heading:"Heading",body:"Body",statName:"Stat name",statValue:"Stat value",formEyebrow:"Form eyebrow",formHeading:"Form heading",formIntro:"Form intro",fieldLabel:"Field label",option:"Option",finePrint:"Fine print",dismiss:"Dismiss link",doneHeading:"Success heading",doneBody:"Success message"},BB={meta:"styleMeta",eyebrow:"styleEyebrow",heading:"styleHeading",body:"styleBody",statName:"styleStatName",statValue:"styleStatValue",formEyebrow:"styleFormEyebrow",formHeading:"styleFormHeading",formIntro:"styleFormIntro",fieldLabel:"styleFieldLabel",option:"styleOption",finePrint:"styleFinePrint",dismiss:"styleDismiss",doneHeading:"styleDoneHeading",doneBody:"styleDoneBody"},Hoe={meta:{font:"--pp-meta-font",size:"--pp-meta-size"},eyebrow:{font:"--pp-eyebrow-font",size:"--pp-eyebrow-size"},heading:{font:"--pp-heading-font",size:"--pp-heading-size"},body:{font:"--pp-body-font",size:"--pp-body-size"},statName:{font:"--pp-statname-font",size:"--pp-statname-size"},statValue:{font:"--pp-statvalue-font",size:"--pp-statvalue-size"},formEyebrow:{font:"--pp-formeyebrow-font",size:"--pp-formeyebrow-size"},formHeading:{font:"--pp-formheading-font",size:"--pp-formheading-size"},formIntro:{font:"--pp-formintro-font",size:"--pp-formintro-size"},fieldLabel:{font:"--pp-fieldlabel-font",size:"--pp-fieldlabel-size"},option:{font:"--pp-option-font",size:"--pp-option-size"},finePrint:{font:"--pp-fineprint-font",size:"--pp-fineprint-size"},dismiss:{font:"--pp-dismiss-font",size:"--pp-dismiss-size"},doneHeading:{font:"--pp-doneheading-font",size:"--pp-doneheading-size"},doneBody:{font:"--pp-donebody-font",size:"--pp-donebody-size"}};function jb(e){let o={};for(let t of LB){let r=dt(e[BB[t]]);r&&(o[t]=r)}return o}var Kb={heading:"Join our email list",placeholder:"Email address",buttonLabel:"Subscribe"},DB={lead:"We accept"},qb={...DB,methods:[],size:"sm",align:"start",dataSource:"shop-payment-methods"},Do="site-footer";var Goe=Do,zoe={desktop:!0,tablet:!0,mobile:!0},Uoe={desktop:!1,tablet:!1,mobile:!1},au=1,Vb=6,$oe=Array.from({length:Vb-au+1},(e,o)=>au+o),Rl={desktop:6,tablet:3,mobile:2},NB={2:{desktop:2,tablet:2,mobile:1},3:{desktop:3,tablet:3,mobile:1},4:{desktop:4,tablet:2,mobile:2},5:{desktop:5,tablet:3,mobile:2},6:{desktop:6,tablet:3,mobile:2}},xr=e=>Math.min(Math.max(Math.round(e),au),Vb);function joe(e){if(typeof e=="number")return NB[xr(e)]??{desktop:xr(e),tablet:xr(e),mobile:xr(e)};if(e&&typeof e=="object"){let o=e;return{desktop:xr(o.desktop??Rl.desktop),tablet:xr(o.tablet??Rl.tablet),mobile:xr(o.mobile??Rl.mobile)}}return{...Rl}}var nu="subscribe-popup",Qoe="subscribe-popup",MB=[nu,Do,zb,$b];function Xb(e){return MB.includes(e)}var HB=["right","left"],WB={metaLabel:"Meta label",issueLabel:"Label",issueNumber:"00",kicker:"Kicker",heading:`Main heading
|
|
3
|
+
*Highlight line*`,deck:"Add a sentence or two of supporting copy.",stats:[{label:"Label",value:"Value"},{label:"Label",value:"Value"},{label:"Label",value:"Value"},{label:"Label",value:"Value"}],formLabel:"Section label",formHeading:"Main heading *highlight*",formIntro:"Add a sentence or two of supporting copy.",firstNameLabel:"Field label",firstNamePlaceholder:"Placeholder",emailLabel:"Field label",emailPlaceholder:"Placeholder",interestsLabel:"Field label",interests:["Option one","Option two","Option three"],frequencyLabel:"Field label",frequencies:["Option one","Option two","Option three"],submitText:"Button label",finePrint:"Fine print",dismissText:"Dismiss link",emailInvalidText:"Enter a valid email address.",submitErrorText:"Could not subscribe right now. Please try again.",successHeading:"Main heading *highlight*",successBody:"Add a sentence or two of supporting copy \u2014 the {email} and {issue} tokens are substituted here.",keepBrowsingText:"Button label",autoOpen:Bo.autoOpen,autoOpenDelaySec:Bo.autoOpenDelaySec,formSlug:"",trigger:Bo.trigger,scrollPercent:Bo.scrollPercent,showOn:Bo.showOn,showOnPages:[],hideAfter:Bo.hideAfter,hideDays:Bo.hideDays,formSide:"right",valuePanelOnPhone:!1,sectionAccent:void 0,sectionCorners:void 0,sectionCornerSides:void 0,textStyles:{}},He=to,GB=Bt,Zb=Al;function Yb(e,o){if(e==null)return o;let t=r=>r.trim()?r:"";if(typeof e=="string")return t(e);if(typeof e=="object"&&"text"in e){let r=e.text;return typeof r=="string"?t(r):""}return o}function zB(e,o){return Array.isArray(e)?Zb(e,[]):o}function UB(e,o){return Array.isArray(e)?e.map(t=>{let r=t??{};return{label:He(r.label,""),value:He(r.value,"")}}).filter(t=>t.label||t.value):o}function ote(e){let o=e??{},t=WB,r=Wb(o);return{metaLabel:He(o.metaLabel,t.metaLabel),issueLabel:Yb(o.issueLabel,t.issueLabel),issueNumber:Yb(o.issueNumber,t.issueNumber),kicker:He(o.kicker,t.kicker),heading:He(o.heading,t.heading),deck:He(o.deck,t.deck),stats:UB(o.stats,t.stats),formLabel:He(o.formLabel,t.formLabel),formHeading:He(o.formHeading,t.formHeading),formIntro:He(o.formIntro,t.formIntro),firstNameLabel:He(o.firstNameLabel,t.firstNameLabel),firstNamePlaceholder:He(o.firstNamePlaceholder,t.firstNamePlaceholder),emailLabel:He(o.emailLabel,t.emailLabel),emailPlaceholder:He(o.emailPlaceholder,t.emailPlaceholder),interestsLabel:He(o.interestsLabel,t.interestsLabel),interests:Zb(o.interests,t.interests),frequencyLabel:He(o.frequencyLabel,t.frequencyLabel),frequencies:zB(o.frequencies,t.frequencies),submitText:He(o.submitText,t.submitText),finePrint:He(o.finePrint,t.finePrint),dismissText:He(o.dismissText,t.dismissText),emailInvalidText:He(o.emailInvalidText,t.emailInvalidText),submitErrorText:He(o.submitErrorText,t.submitErrorText),successHeading:He(o.successHeading,t.successHeading),successBody:He(o.successBody,t.successBody),keepBrowsingText:He(o.keepBrowsingText,t.keepBrowsingText),formSlug:typeof o.formSlug=="string"?o.formSlug.trim():t.formSlug,autoOpen:r.autoOpen,autoOpenDelaySec:r.autoOpenDelaySec,trigger:r.trigger,scrollPercent:r.scrollPercent,showOn:r.showOn,showOnPages:r.showOnPages,hideAfter:r.hideAfter,hideDays:r.hideDays,formSide:Lo(HB,o.formSide,t.formSide),valuePanelOnPhone:GB(o.valuePanelOnPhone,t.valuePanelOnPhone),sectionAccent:o.sectionAccent,sectionCorners:o.sectionCorners,sectionCornerSides:o.sectionCornerSides,textStyles:jb(o)}}function $B(e,o=Math.random){for(;;){let t=`popup-${Math.floor(o()*2176782336).toString(36).padStart(6,"0")}`;if(!e.has(t))return t}}function jB(e){return{root:{props:{title:e,kind:ou}},content:[],zones:{}}}function Jb(e,o,t){return{slug:$B(o,t),title:e,kind:"lightbox",layout:jB(e)}}function bn(e){return e?.root?.props?.kind===ou}function oy(e){let o=new Map;return(t="")=>{let r=_b(),a=o.get(t);if(!a||a.token===null&&r!==null){let n=r||!ZB().usesBridgedToken?e(r??"",t).catch(()=>[]):Promise.resolve([]);return o.set(t,{promise:n,token:r}),n}return a.promise}}var eD=oy(async(e,o)=>{let t=o?{siteId:o}:void 0,{pages:r}=Me();return r.linkTargets?r.linkTargets(t):(await r.list(t)).map(a=>({id:a.id,slug:a.slug,label:a.label,layout:null}))}),oD=oy(async(e,o)=>await Me().blog?.posts(o?{siteId:o}:void 0)??[]);function tD({value:e,onChange:o,label:t="Link",data:r,filters:a}){let n=Bl(()=>eu(r,a),[r,a]),s=i(t);return Ir(ey,{label:s,icon:Ir(qB,{}),children:Ir(VB,{value:e,onChange:l=>o(l),kinds:n.kinds,rules:n.rules,filtersFor:n.filtersFor,label:s})})}function ty(){let{siteId:e,capabilities:o}=JB(),{offersCommerce:t,hasBlog:r}=o,[a,n]=Ll([]),[s,l]=Ll([]),[c,d]=Ll([]),[u,h]=Ll(null),p=QB().chrome,x=p?.products?.list,g=p?.linkFilters,y=g?void 0:p?.linkRow,E=XB(!0);Qb(()=>(E.current=!0,()=>{E.current=!1}),[]),Qb(()=>{let I=!0;return eD(e??void 0).then(w=>I&&E.current&&n(w)),r&&oD(e??void 0).then(w=>I&&E.current&&l(w)),t&&x?.().then(w=>I&&E.current&&d(w)),t&&g?g.load(e).catch(()=>null).then(w=>I&&E.current&&h(()=>w)):h(null),()=>{I=!1}},[e,t,r,x,g]);let O=Bl(()=>({pages:a.filter(I=>!Xb(I.slug)&&!bn(I.layout)).map(I=>({slug:I.slug,title:I.label,docs:[I.layout]})),popups:a.filter(I=>I.slug===nu||bn(I.layout)).map(I=>({slug:I.slug,title:I.label})),posts:r?s.map(I=>({slug:I.slug,title:I.title})):[],products:t?c.map(I=>({href:I.href,name:I.name})):[],offers:{offersCommerce:t,offersService:r}}),[a,s,c,t,r]),C=Bl(()=>u?u(O.pages):null,[u,O]);return{data:O,filters:C,pages:a,offersCommerce:t,HostLinkRow:y}}function yte({label:e,icon:o,text:t,onTextChange:r,link:a,onLinkChange:n}){let{data:s,filters:l}=ty(),c=Bl(()=>eu(s,l),[s,l]),d=i(e);return Ir(ey,{label:d,icon:o,children:Ir(YB,{label:d,text:t,onTextChange:r,link:a,onLinkChange:u=>n(u),kinds:c.kinds,rules:c.rules,filtersFor:c.filtersFor})})}function ry({value:e,onChange:o,label:t="Link"}){let r=typeof e=="string"?e:"",{data:a,filters:n,pages:s,offersCommerce:l,HostLinkRow:c}=ty(),d=a.pages.map(h=>mn(h.slug)),u=l&&c&&(r==="/"||d.includes(r))?c:void 0;return KB("div",{children:[Ir(tD,{value:r,onChange:o,label:t,data:a,filters:n}),u&&Ir(u,{value:r,onChange:o,pages:s})]})}import{UiIcon as tS}from"efficient-easel/draw/client";import{phoneKey as cD,tabletKey as dD}from"efficient-easel/draw";import{AUTO_RULES as rD,FOLLOW_RULES as aD,VIEW_DESKTOP_MIN as nD,VIEW_TABLET_MIN as ay,isAuto as sD,resolveViewValue as lD}from"efficient-easel/draw";var iD="v1";function Dl(){return iD==="v2"?rD:aD}var ny=.02,sy=`(min-width: ${ay}px) and (max-width: ${nD-ny}px)`,fa=`(max-width: ${ay-ny}px)`;function Dt(e,o,t,r,a=Dl()){let n=lD(e,o,t,r,a),s={},l=(c,d)=>!sD(c)||d!=null&&d!==o;return l(t,n.tablet)&&(s.tablet=n.tablet),l(r,n.phone)&&(s.phone=n.phone),s}var No={min:10,max:200,step:10};function fD(e,o){let t=j(e),r=j(o);if(!(t===void 0&&r===void 0))return{paddingTop:t,paddingBottom:r}}var uD="sf-pad-top-phone",pD="sf-pad-bottom-phone",mD="--sf-pad-t-phone",hD="--sf-pad-b-phone",xD="sf-pad-left-phone",ID="sf-pad-right-phone",gD="--sf-pad-l-phone",bD="--sf-pad-r-phone",yD="sf-pad-top-tablet",SD="sf-pad-bottom-tablet",CD="sf-pad-left-tablet",wD="sf-pad-right-tablet",kD="--sf-pad-t-tablet",vD="--sf-pad-b-tablet",TD="--sf-pad-l-tablet",PD="--sf-pad-r-tablet";function Nl(e){let o=fD(e.top,e.bottom),t=su({left:e.left,right:e.right},{top:e.topPhone,bottom:e.bottomPhone,left:e.leftPhone,right:e.rightPhone},{top:e.topTablet,bottom:e.bottomTablet,left:e.leftTablet,right:e.rightTablet},{top:e.top,bottom:e.bottom,left:e.left,right:e.right});return o===void 0&&!t.classes.length&&!Object.keys(t.style).length?null:{className:["sf-section-pad",...t.classes].join(" "),style:{...o,...t.style}}}var ED=[["top","paddingTop",[yD,kD],[uD,mD]],["bottom","paddingBottom",[SD,vD],[pD,hD]],["left","paddingLeft",[CD,TD],[xD,gD]],["right","paddingRight",[wD,PD],[ID,bD]]];function su(e,o,t={},r=e){let a={},n={},s=[];for(let[l,c,...d]of ED){let u=j(e[l]);u!==void 0&&(a[c]=u);let h=Dt("spacing",j(r[l]),j(t[l]),j(o[l]));for(let[p,[x,g]]of[["tablet",d[0]],["phone",d[1]]]){let y=h[p];typeof y=="number"&&(s.push(x),n[g]=`${y}px`)}}return{classes:s,style:{...a,...n}}}function ly(e,o,t){let r=j(e)??t,a=j(o);return r===void 0?a:a===void 0?r:r+a}function Ml(e,o={}){return{top:ly(e.padTop,e.sectionPaddingTop,o.top),bottom:ly(e.padBottom,e.sectionPaddingBottom,o.bottom)}}var lu={top:"sectionPaddingTop",bottom:"sectionPaddingBottom",left:"sectionPaddingLeft",right:"sectionPaddingRight"};function iy(e,o=lu,t=!0){let r={};for(let a of t?["top","bottom","left","right"]:["top","bottom"])r[a]=e[o[a]],r[`${a}Tablet`]=e[dD(o[a])],r[`${a}Phone`]=e[cD(o[a])];return r}function Pte(e){return Nl(e)}function Ete(e,o){let t=r=>typeof r=="number"?r+o:void 0;return Nl({...e,top:t(e.top),bottom:t(e.bottom),topTablet:t(e.topTablet),bottomTablet:t(e.bottomTablet),topPhone:t(e.topPhone),bottomPhone:t(e.bottomPhone)})}import{BUTTON_PAD_KEYS as Hl,buttonBorderOf as OD,buttonFillOpacityOf as _D,buttonPadSidesOf as FD}from"efficient-easel/draw";var AD="px-6 py-4",RD=4,Wl=e=>{let o=new RegExp(`\\bp${e}-(?:\\[(\\d+)px\\]|(\\d+))`).exec(AD);if(!o)throw new Error(`BUTTON_PAD_CLASSES has no p${e}`);return o[1]!==void 0?Number(o[1]):Number(o[2])*RD},Bte={top:Wl("y"),right:Wl("x"),bottom:Wl("y"),left:Wl("x")},dy="var(--btn)";function LD(e){let o=e.variant==="ghost",t=_D(e.buttonFillOpacity),r=OD(e.buttonBorder),a=ke(e.buttonColor);return{fillOpacity:t??(o?0:100),border:{width:r?.width??1,color:r?.color??a??(o?"currentColor":dy)},changed:t!==void 0||r!==void 0}}function Dte(e){let o=LD(e);if(!o.changed)return null;let t=ke(e.buttonColor)??dy;return{background:o.fillOpacity===0?"transparent":o.fillOpacity===100?t:`color-mix(in srgb, ${t} ${o.fillOpacity}%, transparent)`,borderWidth:o.border.width,borderStyle:"solid",borderColor:o.border.color}}var BD="var(--sf-button-radius, 0)";function Nte(e){let o=j(e.buttonCorners),t=Qo(e.buttonCornerSides);if(o===void 0&&t===null)return null;let r=o===void 0?BD:`${Math.max(0,o)}px`;return{borderRadius:t===null?r:sr(r,t)}}function Mte(e){let o=a=>FD({top:e[`${Hl.top}${a}`],right:e[`${Hl.right}${a}`],bottom:e[`${Hl.bottom}${a}`],left:e[`${Hl.left}${a}`]})??{},{classes:t,style:r}=su(o(""),o("Phone"),o("Tablet"));return Object.keys(r).length?{className:t.join(" "),style:r}:null}var cy="upper";function fy(e,o,t){let r=e&&typeof e=="object"?e:{},a=ke(r.textStyle),n=a?ke(o?.find(u=>u?.id===a)?.name):void 0,s=a?/^(heading|body)-(\d+)$/.exec(a):null,l=a?n||(s?t.styleName({kind:s[1],n:Number(s[2])}):a):t.noStyle,{cases:c}=t,d=ke(r.case)??cy;return`${l} \xB7 ${c[d]??c[cy]}`}import{usePreviewParts as q2}from"efficient-easel/draw/client";import{encodePartId as V2}from"efficient-easel/draw";import{DEFAULT_EASEL_STRINGS as Y2,useEaselStrings as X2}from"efficient-easel/strings";var DD=["auto","fixed","screen"],ND=["px","%"];var MD="var(--sf-header-h, 88px)",iu={min:40,max:2e3,step:10,fallback:600},cu={min:10,max:200,step:5,fallback:100},HD="sf-section-minh",du="grid-cols-[minmax(0,1fr)]",uy={base:"--sf-section-minh",small:"--sf-section-minh-s"},my=e=>typeof e=="string"&&DD.includes(e),WD=e=>typeof e=="string"&&ND.includes(e);function Gl(e){let o=my(e.sectionHeightMode)?e.sectionHeightMode:"auto",t=o==="screen"?"%":WD(e.sectionHeightUnit)?e.sectionHeightUnit:"px",r=o==="screen"?cu.fallback:iu.fallback,a=typeof e.sectionHeightValue=="number"?e.sectionHeightValue:r;return{mode:o,value:a,unit:t}}function hy(e){let{mode:o,value:t,unit:r}=Gl(e);if(o==="auto")return;if(o==="fixed"&&r==="px")return[`${t}px`,null];let a=t/100,n=s=>o==="screen"?`(100${s} - ${MD})`:`100${s}`;return[`calc(${n("vh")} * ${a})`,`calc(${n("svh")} * ${a})`]}function xy(e){let o=hy(e);if(!o)return;let[t,r]=o;return{display:"grid",[uy.base]:t,...r?{[uy.small]:r}:{}}}var Wte=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),ua="Height",GD="sf-section-minh-phone",py={base:"--sf-section-minh-p",small:"--sf-section-minh-ps"};function fu(e){return my(e.sectionHeightModePhone)}function Gte(e){return Gl({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})}function zD(e){let o=xy(e),t=fu(e)?hy({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})??(o?["auto",null]:void 0):void 0;if(!o&&!t)return null;let r=[HD,du],a={...o??{}};return t&&(r.push(GD),a[py.base]=t[0],t[1]&&(a[py.small]=t[1])),{className:r.join(" "),style:a}}function UD(e){return zD(e)!==null}var $D=`grid ${du}`,Iy="h-full",jD=`max-[720px]:grid ${du}`;function gy(e){return UD(e)?xy(e)?$D:jD:""}var zl="Stick to top",Nt={min:0,max:200,step:4,fallback:0},KD="sf-section-stick",$te="sf-scroll-over",qD="sf-section-stick-phone-on",VD="sf-section-stick-phone-off",by={desktop:"--sf-stick-distance",phone:"--sf-stick-distance-phone"},jte=new Set(["CategoryBar","DocTabs","IntroBleed","Contents"]);function yy(e){let o=j(e)??Nt.fallback;return Math.min(Nt.max,Math.max(Nt.min,Math.round(o)))}function uu(e){return typeof e.stickTopPhone=="boolean"}function pu(e){let o=e.stickTop===!0,t=yy(e.stickTopDistance),r=uu(e),a=r?e.stickTopPhone===!0:o,n=r?yy(e.stickTopDistancePhone):t;return{desktop:o,desktopDistance:t,phone:a,phoneDistance:n,ownPhone:r}}function Kte(e){let o=pu(e);if(!o.desktop&&!o.phone)return null;let t=[KD],r={};return o.desktop&&(r[by.desktop]=`${o.desktopDistance}px`),(o.ownPhone||o.phone!==o.desktop)&&(t.push(o.phone?qD:VD),o.phone&&(r[by.phone]=`${o.phoneDistance}px`)),o.desktop||t.push("sf-section-stick-desktop-off"),{className:t.join(" "),style:r}}var YD=["column","row","tabs"];var XD={column:"Stacked",row:"One row",tabs:"Tabs"},Sy={Flex:YD,HeroGroup:["column","row"]},ZD={Flex:"row",HeroGroup:"column"},JD={column:"flex-col",row:"flex-row",tabs:"flex-col"};function Ul(e,o){return Sy[e].includes(o)?o:ZD[e]}function Vte(e,o){return JD[Ul(e,o)]}function Cy(e){return Sy[e].map(o=>({label:XD[o],value:o}))}var mu="small",hu="dot",QD=[{label:"Small",value:"small"},{label:"Display",value:"display"}],xu=[{label:"Dot \u25CF",value:"dot"},{label:"Cross \u2715",value:"cross"},{label:"Slash /",value:"slash"},{label:"Triangle \u25BC",value:"triangle"},{label:"None",value:"none"}],$l={dot:"\u25CF",cross:"\u2715",slash:"/",triangle:"\u25BC",none:""},eN={small:"font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.25em] max-[800px]:text-[length:var(--size-label,12px)]",display:"font-display font-medium text-[length:var(--size-headingMedium,44px)] uppercase leading-none tracking-[0.005em] max-[800px]:text-[length:var(--size-headingMedium,28px)]"},oN={small:{dot:"",cross:"text-[0.77em]",slash:"text-[0.77em]",triangle:"",none:""},display:{dot:"text-[0.3em]",cross:"text-[0.64em]",slash:"text-[0.64em]",triangle:"text-[0.3em]",none:""}};function Zte(e){return io(QD,mu,e)}function yn(e){return io(xu,hu,e)}function Jte(e){return eN[e]}function wy(e,o){return oN[e][o]}var ore=[{value:"none"},{value:"dot"},{value:"cross"},{value:"slash"},{value:"triangle"}];function ky(e){return xu.some(o=>o.value===e)?yn(e):void 0}var tN="overflow-x-clip [&>*]:shrink-0 [&>*]:max-[800px]:basis-[content] [&>*_:is(p,h1,h2,h3,h4,h5,h6)]:max-w-none [&>*_:is(.sf-button-block>div)]:font-mono [&>*_:is(.sf-button-block>div)]:text-[length:var(--size-label,14px)] [&>*_:is(.sf-button-block>div)]:tracking-[0.2em] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:inline-flex [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:items-center [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:align-top [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:h-[calc(1lh/var(--sf-sep-k,1))] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:mr-[var(--sf-gap-len,0px)] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:max-[800px]:before:mr-[var(--sf-gap-len-phone,calc(var(--sf-gap-len,0px)/2))] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:text-accent [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:text-[length:calc(var(--sf-sep-k,1)*1em)] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:content-[var(--sf-sep-mark)]";function pa(e,o){return e==="row"&&ky(o)!==void 0}function tre(e,o){return pa(e,o)?tN:""}var rN="[&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:inline-flex [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:items-center [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:align-top [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:h-[calc(1lh/var(--sf-sep-k,1))] [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:ml-[var(--sf-gap-len,0px)] [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:max-[800px]:after:ml-[var(--sf-gap-len-phone,calc(var(--sf-gap-len,0px)/2))] [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:text-accent [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:text-[length:calc(var(--sf-sep-k,1)*1em)] [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:content-[var(--sf-sep-mark)]";function rre(e,o){return pa(e,o)?rN:""}function are(e,o){if(!pa(e,o))return{};let t=ky(o),r=/^text-\[([\d.]+)em\]$/.exec(wy("small",t))?.[1],a=$l[t];return{"--sf-sep-mark":a===""?"none":JSON.stringify(a),...r?{"--sf-sep-k":r}:{}}}var Sn={sectionPaddingTop:0,sectionPaddingBottom:0},vy={start:"justify-start",center:"justify-center",between:"justify-between",end:"justify-end"},Ty={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"};function lre(e,o){let t=typeof e=="string"&&e in vy?vy[e]:"",r=typeof o=="string"&&o in Ty?Ty[o]:"";return[t,r].filter(Boolean).join(" ")}function ire(e){return e===!0||e==="wrap"?"flex-wrap":""}var jl="Block widths",Iu=[{label:"Fit content",value:"content",weights:null},{label:"Equal",value:"equal",weights:[1,1]},{label:"Big left",value:"bigLeft",weights:[2,1]},{label:"Big right",value:"bigRight",weights:[1,2]},{label:"Bigger left",value:"biggerLeft",weights:[3,1]},{label:"Bigger right",value:"biggerRight",weights:[1,3]},{label:"2 : 3",value:"twoThree",weights:[2,3]}],ma="[&>*]:min-w-0 [&>*]:flex-1 [&>*]:basis-0",aN={equal:ma,bigLeft:`${ma} [&>*:first-child]:min-[800px]:grow-[2]`,bigRight:`${ma} [&>*:last-child]:min-[800px]:grow-[2]`,biggerLeft:`${ma} [&>*:first-child]:min-[800px]:grow-[3]`,biggerRight:`${ma} [&>*:last-child]:min-[800px]:grow-[3]`,twoThree:`${ma} [&>*:first-child]:min-[800px]:grow-[2] [&>*:last-child]:min-[800px]:grow-[3]`};function nN(e){return typeof e=="string"?aN[e]??"":""}var sN="[&>*]:min-[800px]:basis-[content]";function cre(e){return nN(e)===""?sN:""}var gu="Columns",Kl=1,Py=3,Ey={2:"max-[800px]:flex-wrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px)))/2)]",3:"max-[800px]:flex-wrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px))_*_2)/3)]"},Oy=Iu.filter(e=>e.value==="content"||e.value==="equal"),_y="equal",bu=1,Fy=6,ha="min-[800px]:flex-wrap [&>*]:min-[800px]:min-w-0 [&>*]:min-[800px]:grow-0!",lN={1:`${ha} [&>*]:min-[800px]:basis-[calc(100%/1)]!`,2:`${ha} [&>*]:min-[800px]:basis-[calc((100%_-_var(--sf-gap-len,0px))/2)]!`,3:`${ha} [&>*]:min-[800px]:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_2)/3)]!`,4:`${ha} [&>*]:min-[800px]:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_3)/4)]!`,5:`${ha} [&>*]:min-[800px]:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_4)/5)]!`,6:`${ha} [&>*]:min-[800px]:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_5)/6)]!`};function iN(e){return typeof e=="number"?lN[e]??"":""}var cN={1:"min-[720px]:max-[1100px]:flex-row! min-[720px]:max-[1100px]:flex-wrap! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:min-w-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:grow-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:basis-[calc(100%/1)]!",2:"min-[720px]:max-[1100px]:flex-row! min-[720px]:max-[1100px]:flex-wrap! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:min-w-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:grow-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px)))/2)]!",3:"min-[720px]:max-[1100px]:flex-row! min-[720px]:max-[1100px]:flex-wrap! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:min-w-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:grow-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_2)/3)]!",4:"min-[720px]:max-[1100px]:flex-row! min-[720px]:max-[1100px]:flex-wrap! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:min-w-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:grow-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_3)/4)]!",5:"min-[720px]:max-[1100px]:flex-row! min-[720px]:max-[1100px]:flex-wrap! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:min-w-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:grow-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_4)/5)]!",6:"min-[720px]:max-[1100px]:flex-row! min-[720px]:max-[1100px]:flex-wrap! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:min-w-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:grow-0! [&>*:nth-child(n)]:min-[720px]:max-[1100px]:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_5)/6)]!"};function dN(e){return typeof e=="number"?cN[e]??"":""}function dre(e){return e.direction!=="row"||pa(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":dN(e.columnsTablet)}function fre(e){return e.direction!=="row"||pa(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":iN(e.columns)}var fN="max-[800px]:flex-wrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:grow-0 [&>*]:max-[800px]:basis-[content]",uN={2:"max-[800px]:flex-nowrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px)))/2)]",3:"max-[800px]:flex-nowrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px))_*_2)/3)]"},pN="max-[800px]:flex-nowrap [&>*]:max-[800px]:grow-0 [&>*]:max-[800px]:basis-[content]";function mN(e){return e===!1||e==="nowrap"}function ure(e,o,t){let r=Ey[Number(e)];if(!r)return"max-[800px]:flex-col";let a=mN(t);return hN(e,o)?a?pN:fN:a?uN[Number(e)]:r}function hN(e,o){return Number(e)in Ey&&o==="content"}var Ay="Block spacing",yu=[{label:"Each block",value:"each"},{label:"Gap only",value:"gap"}],xN="sf-box-gap-only";function pre(e){return e==="gap"?xN:""}var IN=["solid","dashed","dotted"],gN=["top","right","bottom","left"],hre="sf-section-border",xre="sf-section-border-self",bN=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,Ry=e=>typeof e=="number"&&Number.isFinite(e)?`${Math.min(20,Math.max(0,Math.round(e)))}px`:void 0;function Ly(e,{phone:o=!1}={}){if(!e||typeof e!="object")return;let t=o?"-phone":"",r={};for(let a of gN){let n=Ry(e[a])??Ry(e.width);n!==void 0&&(r[`--sf-border-${a}-width${t}`]=n)}return typeof e.style=="string"&&IN.includes(e.style)&&(r[`--sf-border-style${t}`]=e.style),typeof e.color=="string"&&bN.test(e.color)&&(r[`--sf-border-color${t}`]=e.color.toLowerCase()),Object.keys(r).length?r:void 0}function Ire(e,o){let t=Ly(e),r=Ly(o,{phone:!0});return t||r?{...t,...r}:void 0}var ql="sf.gapContainer",mt={min:-32,max:64,step:2},My={Grid:{sm:12,md:24,lg:40},Flex:{sm:12,md:24,lg:40},FooterGroup:{sm:8,md:16,lg:32},HeroGroup:null,Events:null,GalleryB:null,ProductGrid:null},xa={Grid:24,Flex:24,FooterGroup:16,HeroGroup:0,Events:24,GalleryB:8,ProductGrid:2},yN=new Set(["Events","GalleryB"]);function br(e,o,t){if(typeof o=="number"&&Number.isFinite(o)&&o>=mt.min)return o;if(typeof o=="string"){let r=My[e]?.[o];if(typeof r=="number")return r}return typeof t=="number"&&Number.isFinite(t)?t:xa[e]}var SN="sf-gap-overlap",CN="--sf-gap-overlap",Hy="--sf-block-gap",wN="--sf-block-gap-rem",gr={min:0,max:mt.max,step:mt.step};function Cn(e){if(typeof e!="number"||!Number.isFinite(e))return null;let o=Math.min(Math.max(Math.round(e),gr.min),gr.max);return o-o%gr.step}function bre(e){let o=Cn(e);return o===null?{}:{[Hy]:`${o}px`,[wN]:`${o/16}rem`}}var kN="--sf-block-gap-phone",vN="--sf-block-gap-phone-rem",TN="--sf-block-gap-on-phone",PN="max-[720px]:[--sf-block-gap-on-phone:var(--sf-block-gap-phone)]";function yre(e){let o=Cn(e);return o===null?{}:{[kN]:`${o}px`,[vN]:`${o/16}rem`}}function Sre(e){return Cn(e)===null?"":PN}var By="sf-gap-zone",Dy="--sf-gap-len";function Vl(e,o){return typeof o=="number"&&Number.isFinite(o)&&o>=mt.min?!0:typeof o=="string"&&typeof My[e]?.[o]=="number"}var Ny="--sf-gap-len-phone",EN="--sf-gap-len-tablet",wn={min:0,max:mt.max,step:mt.step};function Mt(e){return typeof e=="number"&&Number.isFinite(e)&&e>=wn.min}function Su(e){return e/2}function Cu(e,o,t){return Mt(t)&&!Vl(e,o)}function wu(e,o,t,r,a){return Mt(o)?o:Cu(e,t,a)?a:Su(br(e,t,r))}var ON={block:"sf-gap-overlap-block",inline:"sf-gap-overlap-inline",both:"sf-gap-overlap-both"};function Cre(e,o,t,r,a){let n={...Mt(r)?{[Ny]:`${r}px`}:null,...Mt(a)?{[EN]:`${a}px`}:null};if(!Vl(e,o)){let l=`${xa[e]}px`,c=yN.has(e)?`var(--sf-card-gap, ${l})`:l;return{className:` ${By}`,style:{[Dy]:`var(${Hy}, ${c})`,[Ny]:`var(${TN})`,...n}}}let s=br(e,o);return s>=0?{className:` ${By}`,style:{[Dy]:`${s}px`,...n}}:{className:` ${SN} ${ON[t]}`,style:{gap:"0px",[CN]:`${-s/2}px`}}}var Wy=["transparent","var(--section-bg)","var(--surface)","var(--surface-2)"],Gy={transparent:"No fill","var(--section-bg)":"Section band","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},Mo="var(--section-bg)",Yl="inherit";function Xl(e,o){return e===Yl?Mo:e===void 0?o:Zl(e)}var _N=/var\(\s*--(surface-2|surface|line)\s*(?=[,)])/g;function Zl(e){return e.replace(_N,"var(--site-$1")}function zy(e,o){return e===Yl?!0:e===void 0&&o===Mo}var Uy=["transparent","var(--wheel-stage)","var(--surface)","var(--surface-2)"],$y={transparent:"No fill","var(--wheel-stage)":"Image stage","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},Ia="var(--wheel-stage)",Jl="transparent",kn="inherit";function Tre(e,o){return Zl(ku(e,o))}function ku(e,o){return e===kn?Ia:e==null?o:e===!0?Ia:e===!1?Jl:e}function Pre(e){return typeof e=="string"&&e!==kn?Zl(e):Ia}function Ere(e){return e!==Jl&&e!=="none"&&e!==""}function jy(e,o){return e===kn||e===!0?!0:e==null?o===Ia:!1}var Ky="inherit",Ql="fixed",qy=e=>typeof e!="number"&&e!==Ql,FN="var(--sf-heading-max, 9999px)";function _re(e,o,t,r){if(typeof e=="number")return`${e}px`;if(e===Ql)return o;let a=r?`var(--size-${r}, ${o})`:o;return t==="heading"?`min(${a}, ${FN})`:a}var AN=["page","full"],Vy=["full","page"],yr={full:"Full width",page:"Content width"},vu="inherit",RN=e=>typeof e=="string"&&AN.includes(e),LN=e=>e===vu;function BN(e,o){return LN(e.widthMode)?{mode:"full",inherited:!0}:RN(e.widthMode)?{mode:e.widthMode,inherited:!1}:{mode:o,inherited:o==="full"}}function Are(e){return BN(e,"page").mode==="full"}var DN={Hero:"hero",HeroSingle:"hero",IntroBleed:"scrollOver",SpecStrip:"background",Timeline:"background",Footprint:"background",Prose:"background",ParagraphsA:"background",Cards:"background",KeyFeatures:"background",Chart:"background",Mockup:"background",Testimonials:"background",TitleWithButtons:"background",Countdown:"background",DocMasthead:"background",DocBody:"background",DocMetaCards:"background",Gallery:"background",GalleryB:"background",Reviews:"background",ReviewForm:"background",Form:"background",AppointmentBooking:"background",FAQ:"background",Events:"background",Split:"both",Breadcrumb:"both",Collections:"both",CatalogFilterBar:"both",AlloyWheelsListing:"both",Banner:"contained",Stats:"contained",Logos:"contained",Divider:"contained",OrderSummary:"contained",DeliveryOptions:"contained",PaymentBadges:"contained",CheckoutCTA:"contained",Flex:"contained",Grid:"contained",ContactCards:"contained",MessagingCards:"contained",OpeningHours:"contained",RateTable:"contained",Manifesto:"contentColumn",SectionHeader:"contentFull",ProductHero:"contentFull",ProductGrid:"productGrid",TimelineTrack:"capped",DetailRows:"capped",FitmentTable:"capped",TyreSizes:"capped",TyreFitment:"capped",EuTyreLabel:"capped",BundleOffer:"capped",CompatibleTyres:"capped",RelatedProducts:"capped",ProcessSteps:"capped",StatsParagraph:"capped",Masthead:"capped",FeaturedCover:"capped",LongRead:"capped",Series:"capped",ContactLocations:"capped",FitmentFinder:"capped",SpecTable:"capped",Subscribe:"capped",SubscribeBlogs:"capped",ContactRouting:"capped",SubmitBuild:"capped"};function Rre(e){return Object.prototype.hasOwnProperty.call(DN,e)}var Yy="siteWidths",NN=e=>e==="full"||e==="content";function ei(e){return NN(e)?e:null}function Xy(e,o){return{[Yy]:{background:ei(e),content:ei(o)}}}function Lre(e){let o=e.editor?.metadata?.[Yy];return{background:ei(o?.background),content:ei(o?.content)}}import{jsx as MN}from"react/jsx-runtime";import{createContext as HN,useContext as Mre}from"react";var WN=2,Hre=WN+1,GN=HN(2);function Zy({tier:e,children:o}){return MN(GN.Provider,{value:e,children:o})}import{useEaselSession as Z2}from"efficient-easel/screen/lib/session-context";import{BOX_GAP as J2,describedAs as Ht,group as Wo,iconOf as Tn,sharedStyleKinds as Pn}from"efficient-easel/screen/lib/document/box-fields";import{VIEW_KEY_ACCESS as Q2,phoneTwinFields as rS}from"efficient-easel/screen/lib/document/box-fields";import{createElement as Jy}from"react";import{SettingsField as zN}from"efficient-easel/panel";import{boxFieldBuilders as UN,describedAs as $N,iconOf as jN}from"efficient-easel/screen/lib/document/box-fields";import{IconPicker as KN}from"efficient-shell/ui";var qN=e=>i(e),ro=UN(qN),tt=ro.slider,Ho=ro.select,oi=ro.Segmented,ga=ro.segmented,Kre=ro.alignmentField,qre=ro.alignmentFields,Vre=ro.blockAlignmentField,Yre=ro.blockAlignmentFields,Xre=ro.boxJustifyField,Zre=ro.boxAlignField,Jre=ro.boxWrapField,Qy=ro.directionField,ti=ro.gapField,Qre=ro.placementField,eae=ro.PlacementGridView,oae=ro.positionFields,ri=ro.sidesPaddingFields;function tae(e,o,t,r,a={}){let n=s=>t.some(l=>l.value===s);return{type:"custom",...$N({},{type:"radio",label:e,options:t.map(s=>s.label===void 0?{value:s.value}:{value:s.value,label:s.label})}),render:({value:s,onChange:l,field:c})=>{let d=t.map(p=>({value:p.value,...p.label===void 0?{}:{label:i(p.label)},icon:p.picture})),u=c?.currentValue,h=a.resolve?a.resolve(s)??r:n(s)?s:n(u)?u:r;return Jy(zN,{label:i(e),icon:jN(o)},Jy(KN,{label:i(e),value:h,options:d,onChange:l,emptyValue:a.emptyValue}))}}}import{TEXT_CONTROL_KINDS as Dne,SCALAR_TEXT_CONTROLS as Nne}from"efficient-easel/draw";function Cr(e,o){return i("{value} from {from}",{value:e,from:o})}function eM(){let{blockGap:e}=se();return e===null?i("this container's own spacing"):Cr(`${e}px`,i("Styles"))}function oM({inherited:e,onReset:o,label:t}){return S(fo,{words:Q()?.panel,label:i(t),changed:!e,detail:eM(),onReset:o})}function tM(e){return ti({...J2,builtIn:xa[e],resolve:(o,t)=>br(e,o,t?.siteGap),action:(o,t)=>S(oM,{inherited:!Vl(e,o),onReset:()=>t(void 0),label:"Gap"}),mark:{[ql]:e}})}function rM(e){return Ao(je("mobile",{[ql]:e,type:"custom",render:o=>S(sM,{container:e,...o})}),CS)}function aM(e){return Ao(je("tablet",{[ql]:e,type:"custom",render:o=>S(nM,{container:e,...o})}),CS)}var CS={not:{field:"gap",in:Array.from({length:-mt.min},(e,o)=>mt.min+o)}};function Ene(e){return{gap:je("desktop",tM(e)),[j2("gap")]:aM(e),[ba("gap")]:rM(e)}}function nM({container:e,...o}){let[t]=Sr("gap"),{siteGap:r}=o.field??{},a=Math.max(wn.min,br(e,t,r));return ti({...wn,builtIn:a,resolve:n=>Mt(n)?n:a,action:(n,s)=>S(fo,{words:Q()?.panel,label:i("Gap"),changed:Mt(n),detail:Cr(`${a}px`,i("Desktop")),onReset:()=>s(void 0)})}).render(o)}function sM({container:e,...o}){let[t]=Sr("gap"),{siteGap:r,siteGapPhone:a}=o.field??{},n=wu(e,void 0,t,r,a);return ti({...wn,builtIn:n,resolve:s=>wu(e,s,t,r,a),action:(s,l)=>S(fo,{words:Q()?.panel,label:i("Gap"),changed:Mt(s),detail:Cr(`${n}px`,Cu(e,t,a)?i("Styles"):i("Desktop")),onReset:()=>l(void 0)})}).render(o)}function One(e){return Qy({offered:Cy(e),fallback:Ul(e,void 0),resolve:o=>Ul(e,o)})}function _ne(e,o){return hg(o?Tf(e,o):[],o)}function lM({inherited:e,onReset:o,label:t}){return S(fo,{words:Q()?.panel,label:i(t),changed:!e,detail:Cr(i("Full"),i("the page")),onReset:o})}function wr({value:e,onChange:o,label:t,placeholder:r,hint:a,multiline:n,hideable:s=!0,markup:l=!0}){let{text:c,hidden:d}=Gt(e),u=si(null),h=si(null),p=C=>o(s?{text:C,hidden:d}:C),x=()=>o({text:c,hidden:!d}),g=s&&d,y=dS(),E=a?uM(a)?S("span",{className:"sf-hint-keep sf-hint-while-typing",children:i(a)}):S(bg,{children:i(a)}):void 0,O=d?i("Show {label} on the slide",{label:i(t)}):i("Hide {label} on the slide",{label:i(t)});return S(Ke,{label:i(t),icon:S(k2,{}),htmlFor:y,className:g?"is-hidden":void 0,hint:E,action:s?S(li,{content:O,children:S(yS,{"aria-pressed":d,"aria-label":O,onClick:x,children:d?S(tS,{name:"eye-off",size:14}):S(tS,{name:"eye",size:14})})}):void 0,children:ya("div",{className:"sf-copybox",children:[l&&S(Df,{target:n?h:u,value:c,onChange:p}),n?S("textarea",{id:y,ref:h,value:c,placeholder:r===void 0?void 0:i(r),onChange:C=>p(C.target.value)}):S("input",{id:y,ref:u,type:"text",value:c,placeholder:r===void 0?void 0:i(r),onChange:C=>p(C.target.value)})]})})}function Fne(e,o){return{...e,[o2]:o}}function Ane(e){let o=e[ht];if(!o)throw new Error("withOffPage: the field holds no authored text");return{...e,[ht]:{...o,offPage:!0}}}function di(e){return!e||typeof e!="object"?!1:e[ht]?.offPage===!0}var wS="sfPanelOnly";function Rne(e){if(!e[ht])throw new Error("withPanelOnly: the field holds no authored text");return{...e,[wS]:!0}}function kS(e){return!!e&&typeof e=="object"&&e[wS]===!0}function Lne(e){let o=e[ht];if(!o)throw new Error("withIdentifier: the field holds no authored text");return{...e,[ht]:{...o,identifier:!0}}}function Mne(e,o){if(!e[ht])throw new Error("inOwnBox: the field holds no authored text");let{[U2]:t,...r}=e;return{...r,[Nf]:!0,render:o}}var iM=new Set(K2),ii={type:"radio",options:[{value:!0},{value:!1}]},vS={text:{type:"object",objectFields:{text:{type:"text"},hidden:ii}},textarea:{type:"object",objectFields:{text:{type:"textarea"},hidden:ii}},plainText:{type:"text"},copyText:{type:"text"},plainTextarea:{type:"textarea"},textList:{type:"array",arrayFields:{text:{type:"text"}}}},kr=(e,o)=>{let t=Ht({...o,[ht]:e},{...vS[e.control],label:e.label});if(!iM.has(e.control))return t;let r=o.render;return{...SS(t,"authored-copy"),render:a=>S(ab,{name:a.name,children:r(a)})}},Hne="Everything else on this block comes from the linked post. Unlink it to edit by hand.",cM={field:"source.slug",set:!0},Wne={not:cM},dM="Select a word, then press the highlighter.",fM=new Set([dM]),uM=e=>fM.has(e);function Gne(e,o,t){return kr({control:"text",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(wr,{value:r,onChange:a,label:e,placeholder:o,hint:t})})}function zne(e,o,t){return kr({control:"textarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(wr,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0})})}function Une(e,o,t){return kr({control:"plainText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(wr,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1,markup:!1})})}function $ne(e,o,t){return kr({control:"copyText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(wr,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1})})}function jne(e){return{type:"custom",[QN]:{label:e},...Ht({},{type:"text",label:e}),render:({value:o,onChange:t})=>S(ry,{value:JN(o),onChange:t,label:e})}}function Kne(e,o,t){return kr({control:"plainTextarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(wr,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0,hideable:!1})})}var TS={Design:t2,Animation:a2};function qne(e){return{type:"custom",render:()=>S(pM,{text:e})}}function pM({text:e}){return S("p",{className:"sf-note",children:i(e)})}function Vne(e){return xt(e)!==null&&e?.tabs!==void 0}var aS=new Map;function fi(e,o){let t=`${e}\0${o?o.join(""):""}`,r=aS.get(t)??{type:"custom",tabs:o,[fS]:{label:e,level:1},bucket:e,marker:!0,render:()=>S(Wt,{})};return aS.set(t,r),r}var nS=new Map;function _u(e){let o=nS.get(e)??{type:"custom",[fS]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>S(Wt,{})};return nS.set(e,o),o}function mM(e){let o=e;return o?.marker===!0&&typeof o.fold=="string"?o.fold:null}function PS(e,o){return mM(e)===o?e:{...e,marker:!0,fold:o,render:()=>S(Wt,{})}}function ES(e){let o=e;if(o.marker===!0&&o.fold===void 0)return e;let{fold:t,...r}=e;return{...r,marker:!0,render:()=>S(Wt,{})}}function Fu({title:e,children:o}){let[t,r]=vn(()=>!Tu.has(e));return S(P2,{title:e,open:t,onToggle:a=>{r(a),a?Tu.delete(e):Tu.add(e)},children:o})}var Tu=new Set;function OS({swatches:e,current:o,onPick:t,names:r}){let a=e.find(l=>l.toLowerCase()===o.toLowerCase()),n=a?r?.[a]:void 0,s=n?i(n):o;return ya("div",{className:"sf-swatches",children:[e.map(l=>{let c=r?.[l]?i(r[l]):l;return S(li,{content:c,children:S(D2,{color:l,selected:o.toLowerCase()===l.toLowerCase(),onClick:()=>t(l),"aria-label":c})},l)}),S("span",{className:"sf-swatch-hex",children:s})]})}function Yne(e,o){return{type:"custom",render:({value:t,onChange:r})=>{let a=zy(t,o);return S(Ke,{label:i(e),icon:S(n2,{}),changed:!a,action:S(fo,{words:Q()?.panel,label:i(e),changed:!a,detail:i("the theme's section background"),onReset:()=>r(Yl)}),children:OS({swatches:Wy,current:a?Mo:t??o??"",onPick:r,names:Gy})})}}}function hM(e,o){return{type:"custom",render:({value:t,onChange:r})=>{let a=t,n=jy(a,o);return S(Ke,{label:i(e),icon:S(mS,{}),changed:!n,action:S(fo,{words:Q()?.panel,label:i(e),changed:!n,detail:i("the theme's image stage"),onReset:()=>r(kn)}),children:OS({swatches:Uy,current:n?Ia:ku(a,o),onPick:r,names:$y})})}}}function ui(e=t=>t,o){return Pn({_gSectionTheme:Wo(Cb),sectionAccent:{type:"custom",render:({value:t,onChange:r})=>S(Eb,{value:e(t),onChange:r,followLabel:o})}})}function bo({min:e,max:o,step:t,value:r,onChange:a,suffix:n="",readout:s=!0,notch:l,ariaLabel:c,disabled:d=!1}){let u=l!==void 0&&Number.isFinite(l)&&l>=e&&l<=o;return S("div",{className:u?"sf-slider has-notch":"sf-slider",style:u?{"--sf-notch":(l-e)/(o-e)}:void 0,children:S(G2,{min:e,max:o,step:t,value:r,suffix:n||void 0,showInput:s,label:c===void 0?void 0:i(c),disabled:d,size:"sm",boxSize:"md",className:"sf-slider-track",onChange:h=>{h!==null&&h!==r&&a(h)}})})}function _S(e,o){let{min:t,max:r,step:a=1,unsetLabel:n,hint:s,restTrack:l,unsetMark:c,icon:d,unit:u="px"}=o;return{type:"custom",render:({value:h,onChange:p})=>{let x=typeof h=="number"?h:null,g=x===null;return S(Ke,{label:i(e),icon:d?Tn(d):void 0,value:g?c||n===void 0?void 0:i(n):`${x}${u}`,changed:!g,action:c?cS(c,{changed:!g,onReset:()=>p(null)}):S(fo,{words:Q()?.panel,label:i(e),changed:!g,onReset:()=>p(null)}),hint:typeof s=="string"?i(s):s,children:l?l({min:t,max:r,step:a,px:x,label:e,onChange:p}):bo({min:t,max:r,step:a,value:x??t,readout:!1,ariaLabel:e,onChange:p})})}}}var pi="Corners";function Au(e){return{type:"custom",render:({value:o,onChange:t})=>{let r=typeof o=="number"&&Number.isFinite(o)?o:null,a=r!==null;return S(Ke,{label:i(pi),icon:S(i2,{}),changed:a,action:cS(e.mark,{changed:a,onReset:()=>t(null)}),hint:e.hint,children:S(xM,{tier:e,px:r,onRadius:t})})}}}function Sr(e){let o=ci();return[o?.values?.[e],t=>o?.onChange(e,t)]}function FS(){return SS({type:"custom",render:()=>S($2,{})},"always")}function $f(){let e=ci();return o=>e?.onChangeMany(o)}function xM({tier:e,px:o,onRadius:t}){let r=e.useFollowed(),[a,n]=Sr(e.sidesKey),s=Qo(a)??[...il];return S(N2,{label:i(pi),value:s,corners:$I,onChange:l=>{let c=Qo(l)??[];n(c.length===il.length?null:c)},radius:o,onRadiusChange:t,radiusMin:wo,radiusMax:tr,radiusStep:e.step??1,radiusPlaceholder:String(r)})}function AS(){return FS()}function IM({label:e,changed:o=!1,onReset:t=()=>{}}){let{cornerRadiusPx:r}=se(),a=typeof r=="number"?`${r}px`:i("not set");return S(fo,{words:Q()?.panel,label:i(e),changed:o,detail:r==null?i("the built-in corners"):Cr(a,i("Styles")),onReset:t})}function gM(){let{cornerRadiusPx:e}=se();return typeof e=="number"?e:wo}function bM(){return Au({sidesKey:"sectionCornerSides",useFollowed:gM,mark:S(IM,{label:pi}),hint:yM})}var yM="Follows Styles \u25B8 Basics \u25B8 Corners until you set a number here.";function mi(){return Pn({_gShape:Wo("Shape"),sectionCorners:bM(),sectionCornerSides:AS(),sectionBorder:sS("desktop"),sectionBorderPhone:sS("mobile")})}var SM=()=>({width:i("Border width"),sides:{top:i("Border top"),right:i("Border right"),bottom:i("Border bottom"),left:i("Border left")},style:i("Border style"),styles:{solid:i("Solid"),dashed:i("Dashed"),dotted:i("Dotted")},color:i("Border color"),unit:"px"});function CM(e){let o=Object.fromEntries(Object.entries(e).filter(([,t])=>t!=null&&t!==""));return Object.keys(o).length?o:void 0}function wM(){let e;try{let o=oo(se().theme);e=o.themes[o.selected]?.line}catch{e=void 0}return e||Wd.line}function kM({value:e,onChange:o,placeholder:t,presets:r,sides:a=!0,styles:n=!0,above:s={}}){let l=e&&typeof e=="object"?e:{},[c,d]=vn(()=>a?A2(l,s):!1),u=SM(),h=p=>CM(a&&n?p:{width:p.width,color:p.color,...n?{style:p.style}:{}});return S(Ke,{label:i("Border"),icon:S(s2,{}),action:a?S(_2,{each:c,label:i("Each side"),onChange:d}):void 0,children:S(O2,{label:i("Border"),value:l,each:c,onChange:p=>o(h(p)),placeholder:t,presets:r,words:u,styles:n,max:20})})}function vM({value:e,onChange:o,tier:t}){let[r]=Sr("sectionBorder"),a=wM(),n=t==="mobile"?r&&typeof r=="object"?r:{}:{};return S(kM,{value:e,onChange:o,placeholder:{sides:F2(n),style:n.style??"solid",color:n.color||a},presets:[a],above:n})}function sS(e){return je(e,{type:"custom",render:({value:o,onChange:t})=>S(vM,{value:o,onChange:t,tier:e})})}function Xne(e){return{type:"custom",render:()=>S(TM,{partKey:e})}}function TM({partKey:e}){let[o]=Sr("id"),[t]=Sr("_partStyles"),{textStyles:r}=se(),a=X2(),n=null;try{n=q2().select}catch{n=null}let s=t&&typeof t=="object"?t[e]:void 0,l=Array.isArray(r)?r:null;return S(T2,{name:i("Text"),preview:fy(s,l,{noStyle:i("No style"),styleName:a.textStyles.styleName,cases:(a.copy.panel??Y2.copy.panel).cases}),onOpen:()=>{n&&typeof o=="string"&&n(V2(o,e))}})}function RS(e){let{cornerRadiusPx:o}=se(),t=typeof o=="number"?o:e,r=null;try{let{appState:n,selectedItem:s}=Eu(c=>c),l=s?.props?.id?String(s.props.id):void 0;r=l?Rg(n?.data,l)?.props??null:null}catch{r=null}if(!r)return t;let a=r.sectionCorners;return lf(a)?a:t}function PM({label:e,changed:o=!1,onReset:t=()=>{}}){let r=RS(wo);return S(fo,{words:Q()?.panel,label:i(e),changed:o,detail:Cr(`${r}px`,i("the section")),onReset:t})}function EM(){return S(Wt,{children:i("Follows the section's Corners until you set a number here.")})}function OM(){return Au({sidesKey:"cardCornerSides",useFollowed:()=>RS(wo),mark:S(PM,{label:pi}),hint:S(EM,{})})}function _M(){return{type:"custom",render:()=>S(ZI,{})}}function Zne(){return{_gShape:Wo("Shape"),cardCorners:OM(),cardCornerSides:AS(),cardCornersApplyAll:_M()}}function FM(e=Iu,o=e[0].value){return Ht({type:"custom",render:({value:t,onChange:r})=>{let a=e.find(n=>n.value===t)??e.find(n=>n.value===o)??e[0];return S(Ke,{label:i(jl),icon:S(uS,{}),value:i(a.label),children:S(H2,{className:"sf-gallery-layouts",label:i(jl),value:a.value,onChange:r,options:e.map(n=>({value:n.value,label:i(n.label),picture:S("span",{className:"sf-gallery-pic",children:AM(n.weights).map((s,l)=>S("i",{style:{gridColumn:`span ${s}`}},l))})}))})})}},{type:"select",label:jl,options:e.map(t=>({value:t.value,label:t.label}))})}function AM(e){if(!e)return[3,4];let o=e.reduce((t,r)=>t+r,0);return e.map(t=>Math.round(t/o*12))}function Jne(){return Ho(Ay,S(m2,{}),yu,yu[0].value)}function Qne(){return je("mobile",FM(Oy,_y))}function RM(){return je("mobile",tt(gu,S(pS,{}),Kl,Py,1,Kl,"",{clear:{phoneFollows:!1,hint:Kl}}))}var lS={read:e=>e.phoneRow,write:(e,o,t)=>({phoneRow:t}),fieldKey:()=>"phoneRow",ownField:!0};function ese(){let e=tt(gu,S(pS,{}),bu,Fy,1,bu,"",{clear:{emptyLabel:"Auto"}}),o=rS("columns",e,{...lS,tablet:Q2.tablet}),t=rS("columns",e,lS,{phoneRow:RM()});return{...o,phoneRow:t.phoneRow}}function ose(e,o,t,r,a,n){return{type:"custom",render:({value:s,onChange:l})=>S(Ke,{label:i(e),icon:S(Of,{noun:n}),action:S(fo,{words:Q()?.panel,label:i(e),changed:!qy(s),detail:i("the Text style in Styles"),onReset:()=>l(Ky),defaultAction:{onPress:()=>l(Ql),title:i("Keep this section's own built-in size"),icon:S(l2,{})}}),children:bo({min:o,max:t,step:r,value:typeof s=="number"?s:a,suffix:"px",ariaLabel:e,onChange:l})})}}function tse(){return{_gCellWidth:Wo("Cell width"),gridSpan:Ho("Positions",S(uS,{}),[{label:"Auto",value:""},...Array.from({length:pl},(e,o)=>({label:o===0?"1 position":`${o+1} positions`,value:String(o+1)}))],"")}}function It(){let e=null,o=null;try{e=XN(Ru),o=Eu(t=>t).selectedItem}catch{o=null}return e??o?.props??{}}var Ru=YN(null);function LM({min:e,max:o,step:t,px:r,label:a,onChange:n,desktopKey:s,fallback:l}){let c=It()[s],d=kl(void 0,c,l);return S(Wt,{children:bo({min:e,max:o,step:t,value:kl(r,c,l),readout:!1,ariaLabel:a,notch:d,onChange:n})})}function BM({label:e,desktopKey:o,fallback:t,unit:r="px",changed:a=!1,onReset:n=()=>{}}){let s=It()[o],l=kl(void 0,s,t);return S(fo,{words:Q()?.panel,label:i(e),changed:a,detail:i("{value} on desktop",{value:`${l}${r}`}),onReset:n})}function hi(e){return _S(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unit:e.unit,unsetLabel:"Follows Desktop",unsetMark:S(BM,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback,unit:e.unit}),restTrack:o=>S(LM,{...o,desktopKey:e.desktopKey,fallback:e.fallback})})}var DM={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},NM={Top:bS,Bottom:xS,Left:IS,Right:gS},MM=e=>{let o=NM[e];return S(o,{})};function rse(e={}){let o=e.keys?.top??"sectionPaddingTop",t=e.keys?.bottom??"sectionPaddingBottom",r=e.group!==!1,a=E=>DM[E],n=E=>tt(a("Top"),S(bS,{}),No.min,No.max,No.step,E,"px"),s=(E,O,C,I=No)=>je("mobile",hi({label:a(E),icon:MM(E),desktopKey:O,min:I.min,max:I.max,step:I.step,fallback:C})),l=e.top??No.min,c=e.bottom??No.min,d="sectionPaddingLeft",u="sectionPaddingRight",h=e.sideBounds??No,p=e.side??h.min,x=e.sidePhone??p,g=e.phone===!0,y=E=>g?je("desktop",E):E;return Pn({...r?{_gSpacing:Wo("Padding")}:{},[o]:y(n(l)),...g?{[ba(o)]:s("Top",o,l)}:{},...e.only==="top"?{}:{[t]:y(tt(a("Bottom"),S(xS,{}),No.min,No.max,No.step,c,"px")),...g?{[ba(t)]:s("Bottom",t,c)}:{}},...e.sides?{[d]:y(tt(a("Left"),S(IS,{}),h.min,h.max,h.step,p,"px")),...g?{[ba(d)]:s("Left",d,x,h)}:{},[u]:y(tt(a("Right"),S(gS,{}),h.min,h.max,h.step,p,"px")),...g?{[ba(u)]:s("Right",u,x,h)}:{}}:{}})}function ase(e,o){let t=Object.fromEntries(Object.entries(o).map(([n,s])=>[n,n in e&&xt(s)?e[n]:s])),r={},a=!1;for(let[n,s]of Object.entries(e)){if(n in o){a||Object.assign(r,t),a=!0;continue}r[n]=s}return a||Object.assign(r,t),r}var ai="Width";function xi(e,o=Vy,t=!0){let r=o.map(a=>({label:yr[a],value:a}));return Pn({...t?{_gWidth:Wo(ai)}:{},widthMode:{type:"custom",render:({onChange:a,field:n})=>S(Ke,{label:i(ai),icon:S(v2,{}),action:t?S(lM,{inherited:n?.inherited??!1,onReset:()=>a(vu),label:ai}):void 0,children:oi({options:r,value:n?.currentValue||e,onChange:a,ariaLabel:ai})})}})}function Ii(){let e=r=>({type:"custom",render:({value:a,onChange:n})=>S(Ke,{label:ua,icon:Tn(S(x2,{})),action:r?r(n):void 0,children:oi({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(a)?a:"auto",onChange:n,ariaLabel:ua})})}),o=()=>({type:"custom",render:({value:r,onChange:a,field:n})=>{let s=n?.unit==="%"?"%":"px",l=s==="%"?cu:iu;return S("div",{className:"sf-field",children:bo({min:l.min,max:l.max,step:l.step,value:typeof r=="number"?r:l.fallback,suffix:s,ariaLabel:ua,onChange:a})})}}),t=()=>ga("Unit",S(hS,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return Pn({_gHeight:Wo(ua),sectionHeightMode:je("desktop",e()),sectionHeightValue:je("desktop",o()),sectionHeightUnit:je("desktop",t()),sectionHeightModePhone:je("mobile",e(r=>S(HM,{onClear:()=>r(void 0)}))),sectionHeightValuePhone:je("mobile",o()),sectionHeightUnitPhone:je("mobile",t())})}function HM({onClear:e}){let o=It(),t=fu(o),r=Gl(o),a=i("{value} on desktop",{value:r.mode==="auto"?i("Auto"):`${r.value}${r.unit}`});return S(fo,{words:Q()?.panel,label:i(ua),changed:t,detail:a,onReset:e})}function Lu(){let e=t=>({type:"custom",render:({value:r,onChange:a,id:n,name:s})=>S(WM,{value:r,onChange:a,labelId:`${n??s??"stickTop"}-label`,phone:t})}),o=()=>({type:"custom",render:({value:t,onChange:r})=>S("div",{className:"sf-field",children:bo({min:Nt.min,max:Nt.max,step:Nt.step,value:typeof t=="number"?t:Nt.fallback,suffix:"px",ariaLabel:i("Distance from top"),onChange:r})})});return{_gStick:Wo(zl),stickTop:je("desktop",e(!1)),stickTopDistance:je("desktop",o()),stickTopPhone:je("mobile",e(!0)),stickTopDistancePhone:je("mobile",o())}}function WM({value:e,onChange:o,labelId:t,phone:r}){let a=It(),n=pu(a),s=r?n.phone:e===!0;return S(Ke,{label:i(zl),labelId:t,icon:Tn(S(y2,{})),action:ya(Wt,{children:[r?S(fo,{words:Q()?.panel,label:i(zl),changed:uu(a),detail:i("{value} on desktop",{value:n.desktop?`${n.desktopDistance}px`:i("Off")}),onReset:()=>o(void 0)}):null,S(Ou,{checked:s,onChange:o,ariaLabelledBy:t})]})})}var iS="e.g. about";function gi(){return{_gAnchor:Wo("Anchor"),anchor:kr({control:"plainText",label:"Name",placeholder:iS},{type:"custom",render:({value:e,onChange:o})=>S(_g,{value:e,onChange:o,nameBox:(t,r)=>S(wr,{value:t,onChange:r,label:"Name",placeholder:iS,hideable:!1,markup:!1})})})}}function nse(e,o,t){return{type:"custom",render:({value:r,onChange:a,id:n,name:s})=>{let l=`${n??s??e}-datetime`,c=Date.parse(typeof r=="string"?r:"");return S(Ke,{label:i(e),icon:o,htmlFor:l,hint:t===void 0?void 0:i(t),children:S(M2,{id:l,value:Number.isFinite(c)?new Date(c):null,onChange:d=>a(d?d.toISOString():"")})})}}}function LS(e,o,t,r){return{type:"custom",...Ht({},{...ii,label:e}),render:({value:a,onChange:n,id:s,name:l})=>{let c=typeof a=="boolean"?a:o,d=`${s??l??e}-label`;return S(Ke,{label:i(e),labelId:d,icon:t,hint:r===void 0?void 0:i(r),action:S(Ou,{checked:c,onChange:n,ariaLabelledBy:d})})}}}function BS(){return{type:"custom",render:({value:e,onChange:o,id:t,name:r})=>{let a=`${String(t??r??"pageBackground")}-colour`;return S(ko,{label:i("Background"),icon:S(b2,{}),id:a,value:_f(e),onChange:o})}}}function sse(e,o,t){return{type:"custom",render:({value:r,onChange:a})=>S(ko,{label:i(e),icon:t,value:r||o,onChange:a})}}function lse(){return{type:"custom",render:({value:e,onChange:o})=>S(GM,{value:typeof e=="string"?e:"",onChange:o})}}function GM({value:e,onChange:o}){let{hex:t,n:r}=UM();return S(nl,{label:i("Fill"),icon:S(mS,{}),value:e,inherited:t,resetTo:Cr(t.toUpperCase(),i("Theme {n} background",{n:r})),onChange:o,onReset:()=>o("")})}function zM(e,o,t){if((e?.content??[]).some(n=>n?.props?.id===o))return Ro(t);let r=Lg(e,o);if(r.length===0)return null;let a=Ro(Qf(t));if(a!==null)return a;for(let n=r.length-1;n>0;n-=1){let s=Ro(Qf(r[n].sectionAccent));if(s!==null)return s}return Ro(r[0].sectionAccent)}function UM(){let e=oo(se().theme),[o]=Sr("sectionAccent"),t=null;try{let{appState:a,selectedItem:n}=Eu(l=>l),s=n?.props?.id?String(n.props.id):void 0;t=s?zM(a?.data,s,o):null}catch{t=null}let r=t!==null&&e.themes[t]?t:e.selected;return{hex:e.themes[r].background??Wd.background,n:r+1}}var $M=[{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 jM({label:e,value:o,onChange:t,points:r=$M}){let a=r.map(n=>({...n,label:i(n.label),...n.title?{title:i(n.title)}:null}));return S(B2,{label:i(e),value:o,points:a,onChange:t})}function ise(){return FS()}var DS={top:S(u2,{}),right:S(f2,{}),bottom:S(c2,{}),left:S(d2,{})};function NS(e,o,t,r,a,n){let s=u=>o.find(h=>h.value===u),l=u=>({value:u,label:"",disabled:!0,title:r}),c=u=>{let h=o.find(x=>x.cell===u);if(!h)return l(`missing-${u}`);let p=n?.[u];return p?{value:h.value,label:h.label,icon:p}:{value:h.value,label:h.label}},d=[l("corner-top-left"),c("top"),l("corner-top-right"),c("left"),l("centre"),c("right"),l("corner-bottom-left"),c("bottom"),l("corner-bottom-right")];return{type:"custom",render:({value:u,onChange:h})=>{let p=o.some(x=>x.value===u)?u:t;return S(Ke,{label:i(e),icon:a,value:s(p)?.label?i(s(p).label):"",children:jM({label:e,value:p,onChange:h,points:d})})}}}function cse(e,o,t){return{type:"custom",options:o,render:({value:r,onChange:a,field:n})=>S(pb,{label:e,options:(n.options??o).map(s=>({...s,label:i(s.label)})),value:Array.isArray(r)?r:[],onChange:a,...t?{emptyLabel:i(t)}:{}})}}function dse(e,o={}){return{type:"custom",render:({value:t,onChange:r})=>{let a={value:t,onChange:r,...o};return S(e,{...a})}}}var fse=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function use(e,o,t){let r=Object.keys(nf).map(a=>({label:nf[a],value:a,picture:t[a]}));return{type:"custom",...Ht({},{type:"radio",label:e,options:r.map(a=>({value:a.value,label:a.label}))}),render:({onChange:a})=>S(KM,{label:e,icon:o,options:r,onChange:a})}}function KM({label:e,icon:o,options:t,onChange:r}){let a=ci()?.values??{},n=sf(a),s=n==="frame"&&!!Rt(a.mediaVideo)&&!Rt(a.videoFrame);return S(Ke,{label:i(e),icon:Tn(o),hint:s?i("This video has no frame yet. The slide shows its background colour until one is made."):void 0,children:oi({options:t,value:n,onChange:r,ariaLabel:e})})}function pse(e,o,t,r={}){return{type:"custom",[e2]:!0,render:({value:a,onChange:n,name:s})=>S(fb,{value:a||"",onChange:n,fieldKey:s,label:e,accept:o,placeholder:t,focusKey:r.focus,focusWhen:r.focusWhen,frameKey:r.frame})}}function qM(e){let o=i(e.status??"");return e.ok&&typeof e.lat=="number"&&typeof e.lng=="number"?`${o} \xB7 ${e.lat.toFixed(4)}, ${e.lng.toFixed(4)}`:o}function mse({value:e,onChange:o,label:t}){let r=e||{},a=ci(),n=a?a.values!==a.node.props:!0,s=!!r.pending&&n,l=!!r.pending&&!n,c=s?"var(--ink-faint)":r.ok&&!l?"var(--status-success-soft-ink)":"var(--status-danger-soft-ink)",d=!!Me(Z2()).geocode,u=dS(),h=(p,x)=>o({...r,[p]:x??void 0});return ya(Wt,{children:[S(Ke,{label:i(t),icon:S(eS,{}),action:d?S(li,{content:i("Find from the address (OpenStreetMap)"),children:S(yS,{"aria-label":i("Find from the address"),"aria-busy":s||void 0,disabled:s,onClick:()=>o({...r,pending:!0,ok:!1,status:"Finding\u2026"}),children:S(C2,{})})}):void 0,children:d&&r.status?S(li,{content:qM(r),className:"sf-name-tip",children:S("div",{className:`es-field-hint ${Pf}`,style:{margin:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:c},children:s?i("Finding\u2026"):l?i(Rf):i(r.status)})}):null}),S(Ke,{label:i("Enter by hand"),labelId:u,icon:S(p2,{}),action:S(Ou,{checked:!!r.manual,onChange:p=>o({...r,manual:p}),ariaLabelledBy:u})}),r.manual&&S(Ke,{label:i("Latitude, longitude"),icon:S(eS,{}),children:ya("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8,width:"100%",minWidth:0},children:[S(oS,{value:typeof r.lat=="number"?r.lat:null,onChange:p=>h("lat",p),min:-90,max:90,step:1e-4,placeholder:i("Latitude")}),S(oS,{value:typeof r.lng=="number"?r.lng:null,onChange:p=>h("lng",p),min:-180,max:180,step:1e-4,placeholder:i("Longitude")})]})})]})}function VM(e,o){return o===null||o<0||o>=e.length?"":e[o]?.text??""}function YM(e,o,t){let r=e.map(a=>({text:a?.text??""}));return o===null||o<0||o>=e.length?r:r.map((a,n)=>n===o?{text:t}:a)}function XM(e,o,t){if(t===null||t>=o.length)return null;for(let r=0;r<t;r+=1)if(e[r]!==o[r])return null;return e[t]!==o[t]&&o.includes(e[t])||e[t]!==o[t]&&o.length!==e.length?null:t}var Bu={label:"Ticker items",icon:S(g2,{})};function hse(e,o,t,r){return{type:"custom",[ht]:{control:"textList",label:e,placeholder:t,itemKey:"text",rendering:r},...Ht({},{...vS.textList,label:e}),render:({value:a,onChange:n})=>S(Du,{label:e,icon:Tn(o),items:Array.isArray(a)?a:[],placeholder:t,onChange:n,markup:r==="markup"})}}function Du({label:e,icon:o,items:t,placeholder:r,onChange:a,markup:n=!1}){let s=si(null),[l,c]=vn(null),d=h=>h.map(p=>({text:p?.text??""})),u=h=>{let p=XM(t,h,l);p===null&&(s.current=null),c(p),a(d(h))};return S(R2,{label:i(e),icon:o,noun:i("item"),items:t,onChange:u,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:n?S(Df,{target:s,value:VM(t,l),onChange:h=>a(YM(t,l??-1,h)),disabled:l===null,label:l===null?i("Formatting \u2014 click a row first"):i("Formatting \u2014 row {n}",{n:l+1})}):void 0,renderRow:(h,p,x)=>S("input",{type:"text",className:n&&l===p?"sf-list-marking":void 0,value:h?.text??"",placeholder:i(r),"aria-label":i("{label} {n}",{label:i(e),n:p+1}),onChange:g=>x({text:g.target.value}),onFocus:g=>{s.current=g.currentTarget,c(p)}})})}function MS(e,o){let t=`${e.label} \u2014 row ${o+1}`;return kr({control:"plainText",label:t,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:r,onChange:a})=>S(wr,{value:r,onChange:a,label:i("{label} \u2014 row {n}",{label:i(e.label),n:o+1}),placeholder:e.placeholder,hideable:!1,markup:e.rendering==="markup"})})}function HS(e){return{_gCards:Wo("Cards"),coverIndex:Ho("Cover image",S(I2,{}),sb,String(1),e?.coverHint??"A card's opening picture \u2014 a card pinned to a finish keeps its own."),imageBackground:hM("Image background",Jl),cardImage:QM(),spinOnHover:LS("Rotate on hover",e?.spinDefault??!0,S(S2,{}))}}function WS(){return{outline:Ho("Card outline",S(w2,{}),Uf,Gf),indexBadge:Ho("Card number",S(hS,{}),zf,Wf),showBadge:LS("Product badge",!0,S(Of,{noun:"tag"}))}}function GS(e){let o=e?.defaults??{showCardSizes:!0,showCardBuy:!0,showCardPage:!0},t=a=>({...ii,label:ni.find(n=>n.id===a).label}),r=a=>Ht(z2(Pu),t(a));return{_gShowOnCard:Wo("Show on a card"),[Pu]:Ht({type:"custom",render:()=>S(ZM,{rest:{showCardPrice:!0,showCardFinishes:!0,...o}})},t(Pu)),showCardFinishes:r("showCardFinishes"),showCardSizes:r("showCardSizes"),showCardBuy:r("showCardBuy"),showCardPage:r("showCardPage")}}var Pu="showCardPrice",ni=[{id:"showCardPrice",label:"Price"},{id:"showCardFinishes",label:"Finish swatches"},{id:"showCardSizes",label:"Sizes"},{id:"showCardBuy",label:"Buy button"},{id:"showCardPage",label:"Page button"}];function ZM({rest:e}){let o=It(),t=$f(),r=s=>typeof o[s]=="boolean"?o[s]:void 0,a=s=>r(s)??e[s],n=ni.some(({id:s})=>r(s)!==void 0&&r(s)!==e[s]);return S(Nu,{parts:ni,changed:n,shown:a,onPress:(s,l)=>t({[s]:l}),onReset:()=>t(Object.fromEntries(ni.map(({id:s})=>[s,void 0])))})}function xse(e,o="display"){let t=ba(o);return{[o]:je("desktop",{type:"custom",render:({value:r,onChange:a})=>S(Nu,{parts:e,changed:Bg(r),shown:n=>yl(r,n),onPress:(n,s)=>a(Ng(r,n,s)),onReset:()=>a(void 0)})}),[t]:je("mobile",{type:"custom",render:({value:r,onChange:a})=>S(JM,{parts:e,desktopKey:o,value:r,onChange:a})})}}function Nu({parts:e,changed:o,shown:t,onPress:r,onReset:a,detail:n,disabledReason:s}){let l=i("Display");return S(Ke,{label:l,icon:S(r2,{}),changed:o,action:S(fo,{words:Q()?.panel,label:l,changed:o,detail:n,onReset:a}),children:S(L2,{label:l,items:e.map(c=>({id:c.id,label:i(c.label),shown:t(c.id),...s?{disabled:!0,disabledReason:i(s)}:{}})),onChange:r})})}function JM({parts:e,desktopKey:o,value:t,onChange:r}){let a=It()[o];return S(Nu,{parts:e,changed:Dg(t),shown:n=>Af(a,t,n),onPress:(n,s)=>r(Mg(t,n,s)),onReset:()=>r(vl),detail:i("the same as Desktop")})}function QM(){return _S("Card image",{min:wo,max:tr,step:ag,hint:"Rounds the picture. The card's own corner is in Styles."})}function Ise(){return Au({sidesKey:"cornerSides",step:ng,useFollowed:()=>wo,mark:S(eH,{label:sg}),hint:i("Rounds the picture. Left alone it stays square.")})}function eH({label:e,changed:o=!1,onReset:t=()=>{}}){return S(fo,{words:Q()?.panel,label:i(e),changed:o,onReset:t})}function gse(){return{type:"custom",render:({value:e,onChange:o})=>S(aH,{value:typeof e=="string"?e:"",onChange:o})}}function oH({layout:e,width:o}){return S("span",{"aria-hidden":"true",style:{display:"grid",width:o,gridTemplateColumns:"repeat(12, minmax(0, 1fr))",gridAutoRows:6,gridAutoFlow:"row dense",gap:2},children:dg(e).map(([t,r],a)=>S("i",{className:"block rounded-xs bg-current opacity-60",style:{gridColumn:`span ${t}`,gridRow:`span ${r}`}},a))})}var tH={width:"3.5rem",height:"2.5rem"},rH=200;function aH({value:e,onChange:o}){let[t,r]=vn(null),[a,n]=vn(4),s=si(null);ZN(()=>{let p=s.current;if(!p||typeof ResizeObserver!="function")return;let x=()=>n(p.getBoundingClientRect().width>=rH?4:3);x();let g=new ResizeObserver(x);return g.observe(p),()=>g.disconnect()},[]);let l=e&&e in ft?e:"",c=Sf(t,l),d=Sf(t,"").length,u=ml("no-symbol"),h=[{value:"",label:i("Not chosen"),icon:u},...c.map(p=>({value:p,label:i(ft[p].label),icon:S(oH,{layout:ft[p],width:40})}))];return S(Ke,{label:i("Layout"),icon:S(h2,{}),value:l?i(ft[l].label):void 0,children:S("div",{ref:s,style:{flex:"1 1 auto",minWidth:0},children:S(W2,{label:i("Layout"),value:l,emptyValue:"",options:h,onChange:o,columns:a,cell:tH,header:ya("div",{className:"mb-2 flex flex-col gap-1",style:{minWidth:"11rem"},children:[S("span",{className:"text-2xs text-ink-faint",children:i("Photos in a row")}),S(E2,{options:[{id:"all",label:i("All")},...ig.map(p=>({id:String(p),label:String(p)}))],value:t===null?"all":String(t),ariaLabel:i("Photos in a row"),onChange:p=>r(p==="all"?null:Number(p))}),S("span",{className:"text-2xs text-ink-faint",children:i("{n} of {total} layouts",{n:d,total:yf.length})})]})})})})}var iH="Applies to panels, cards, inputs and buttons. Round things \u2014 color swatches, switches, status dots \u2014 stay round.",Mu="Corners";function zS({value:e,onChange:o,showHint:t=!0}){let r=e===null;return bi(sH,{label:i(Mu),icon:bi(lH,{}),value:r?i("Default"):`${e}px`,changed:!r,action:bi(nH,{words:Q()?.panel,label:i(Mu),changed:!r,detail:i("the built-in corners"),onReset:()=>o(null)}),hint:t?i(iH):void 0,children:bi(bo,{min:wo,max:tr,step:1,value:e??wo,readout:!1,ariaLabel:i(Mu),onChange:o})})}import{jsx as En}from"react/jsx-runtime";import{SettingsDefaultReset as cH,SettingsField as dH}from"efficient-easel/panel";import{IconPicker as fH}from"efficient-shell/ui";import{ShadowIcon as uH}from"efficient-easel/icons";var Hu={none:"None",soft:"Soft",lifted:"Lifted"},pH="Applies to cards \u2014 products, brands, journal entries and filter cells. Round things like swatches and status dots are never shadowed.",mH={none:"none",soft:"0 1px 1px rgba(20, 20, 22, 0.10), 0 2px 4px -1px rgba(20, 20, 22, 0.14)",lifted:"0 1px 2px rgba(20, 20, 22, 0.10), 0 4px 7px -2px rgba(20, 20, 22, 0.30)"};function US({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??$d;return En(dH,{label:i("Card shadow"),icon:En(uH,{}),value:i(Hu[a]),changed:!r,action:En(cH,{words:Q()?.panel,label:i("Card shadow"),changed:!r,detail:i(Hu[$d]),onReset:()=>o(null)}),hint:t?i(pH):void 0,children:En(fH,{label:i("Card shadow"),value:a,options:nI.map(n=>({value:n,label:i(Hu[n]),icon:En("span",{className:"sf-shadow-chip border border-line bg-surface",style:{boxShadow:mH[n]}})})),onChange:o})})}import{jsx as $S}from"react/jsx-runtime";import{ShadowIcon as hH}from"efficient-easel/icons";var xH="Most useful on a dark theme, where a black shadow cannot be seen. Also used by the Lift hover, even with the card shadow off.";function jS({value:e,onChange:o,showHint:t=!0}){let r=e===null;return $S(nl,{label:i("Shadow color"),icon:$S(hH,{}),value:e??"",inherited:Kd,resetTo:Kd,onChange:o,onReset:()=>o(null),hint:t?i(xH):void 0})}import{jsx as Si}from"react/jsx-runtime";import{SettingsDefaultReset as IH,SettingsField as gH}from"efficient-easel/panel";import{AlignSeparateIcon as bH}from"efficient-easel/icons";function yi(e,o){return e==="tablet"?null:e==="mobile"?o.phone:o.desktop}var yH="The space between the blocks inside a row, a grid or a box. Default means each one keeps the spacing it already has.",SH="The space between the blocks inside a row, a grid or a box, on a phone. Until you set it, a phone uses half the desktop gap.",Wu="Block gap",KS=xa.Grid;function qS(e,o){return yi(e,{desktop:{key:"block_gap",value:o.gap,followsPx:null},phone:{key:"block_gap_phone",value:o.phone,followsPx:o.gap===null?null:Su(o.gap)}})}function VS({value:e,onChange:o,showHint:t=!0,followsPx:r=null}){let a=e===null,n=r===null?null:`${r}px`;return Si(gH,{label:i(Wu),labelId:"sf-block-gap",icon:Si(bH,{}),value:a?n??i("Default"):`${e}px`,changed:!a,action:Si(IH,{words:Q()?.panel,label:i(Wu),changed:!a,detail:n??i("each block's own spacing"),onReset:()=>o(null)}),hint:t?i(n===null?yH:SH):void 0,children:Si(bo,{min:gr.min,max:gr.max,step:gr.step,value:e??(r===null?KS:Cn(r)??KS),readout:!1,ariaLabel:i(Wu),onChange:o})})}import{jsx as Ci}from"react/jsx-runtime";import{SettingsDefaultReset as CH,SettingsField as wH,SettingsSegmented as kH}from"efficient-easel/panel";import{HoverIcon as vH}from"efficient-easel/icons";var On={none:"None",lift:"Lift",highlight:"Highlight"},TH="What a card does when a shopper points at it \u2014 or taps it, on a phone. Highlight is the effect your cards already use.";function YS({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??jd;return Ci(wH,{label:i("Hover effect"),icon:Ci(vH,{}),value:i(On[a]),changed:!r,action:Ci(CH,{words:Q()?.panel,label:i("Hover effect"),changed:!r,detail:i(On[jd]),onReset:()=>o(null)}),hint:t?i(TH):void 0,children:Ci(kH,{options:tl.map(n=>({id:n,label:i(On[n])})),value:a,ariaLabel:i("Hover effect"),onChange:o})})}import{jsx as wi}from"react/jsx-runtime";import{SettingsDefaultReset as PH,SettingsField as EH,SettingsSegmented as OH}from"efficient-easel/panel";import{DropIcon as _H}from"efficient-easel/icons";var Gu="Photography",XS={shot:"As shot",mono:"Black and white"},zu=[{grayscale:!1,label:XS.shot},{grayscale:!0,label:XS.mono}],FH="Black and white photographs return to color on hover. Wheels and tyres keep their real finish either way.";function ZS({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??!1;return wi(EH,{label:i(Gu),icon:wi(_H,{}),value:i(zu.find(n=>n.grayscale===a).label),changed:!r,action:wi(PH,{words:Q()?.panel,label:i(Gu),changed:!r,detail:i(zu.find(n=>!n.grayscale).label),onReset:()=>o(null)}),hint:t?i(FH):void 0,children:wi(OH,{options:zu.map(n=>({id:n.grayscale,label:i(n.label)})),value:a,ariaLabel:i(Gu),onChange:o})})}import{jsx as Uu}from"react/jsx-runtime";import{useId as AH}from"react";import{SettingsField as RH,SettingsSwitch as LH}from"efficient-easel/panel";import{ShareIcon as BH}from"efficient-easel/icons";var DH="Share button",NH="On every blog post.";function JS({value:e,onChange:o,showHint:t=!0}){let r=AH();return Uu(RH,{label:i(DH),labelId:r,icon:Uu(BH,{}),action:Uu(LH,{checked:e===!0,onChange:o,ariaLabelledBy:r}),hint:t?i(NH):void 0})}import{usePreviewDevice as Pp}from"efficient-easel/draw/client";import{jsx as Pi}from"react/jsx-runtime";import{SettingsDefaultReset as XH,SettingsField as ZH}from"efficient-easel/panel";import{PaddingXIcon as JH}from"efficient-easel/icons";var ao={min:1e3,max:2e3,step:50,default:1600};function MH(e){return{maxWidth:e,marginInline:"auto",width:"100%"}}var QS="--sf-site-width",$u=`var(${QS},${ao.default}px)`,ule=`max-w-[${$u}]`,ple=`max-w-[${ao.default}px]`;function HH(e){return typeof e!="number"||!Number.isFinite(e)?ao.default:Math.round(Math.min(Math.max(e,ao.min),ao.max))}function mle(e){let o=HH(e);return o===ao.default?{}:{[QS]:`${o}px`}}var gt={min:0,max:80,step:4,default:40},eC="--sf-site-gutter",_n={min:0,max:24,step:4},WH="--sf-site-gutter-phone",GH="max-[720px]:[--sf-site-gutter:var(--sf-site-gutter-phone)]!",Go=`var(${eC},${gt.default}px)`,zH=`px-[${Go}]`;var zt={md:`min(24px,${Go})`,sm:`min(20px,${Go})`,frame:`min(24px,${Go})`,tabs:`min(16px,${Go})`},hle=[[`max-[1100px]:px-[${zt.md}]`,"max-[1100px]:px-6"],[`max-[1100px]:px-[${zt.tabs}]`,"max-[1100px]:px-4"],[`max-[960px]:px-[${zt.frame}]`,"max-[960px]:px-6"],[`max-[900px]:px-[${zt.md}]`,"max-[900px]:px-6"],[`max-[800px]:px-[${zt.md}]`,"max-[800px]:px-6"],[`max-[720px]:px-[${zt.sm}]`,"max-[720px]:px-5"],[`max-[800px]:px-[${zt.sm}]`,"max-[800px]:px-5"],[`max-[640px]:px-[${zt.sm}]`,"max-[640px]:px-5"],[`min-[800px]:px-[${Go}]`,"min-[800px]:px-10"],[`max-[720px]:px-[min(24px,${Go})]`,"max-[720px]:px-6"],[`max-[800px]:-mx-[min(20px,${Go})]`,"max-[800px]:-mx-5"],[`max-[720px]:-mx-[min(20px,${Go})]`,"max-[720px]:-mx-5"],[`-mx-[${Go}]`,"-mx-10"],[zH,"px-10"]];var xle="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",Ile="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]";function ki(e){return typeof e!="number"||!Number.isFinite(e)?gt.default:Math.round(Math.min(Math.max(e,gt.min),gt.max))}function gle(e){let o=ki(e);return o===gt.default?{}:{[eC]:`${o}px`}}function vi(e){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,_n.min),_n.max))}function ble(e){let o=vi(e);return o===null?{}:{[WH]:`${o}px`}}function yle(e){return vi(e)===null?"":GH}function Ti(e){return Math.min(_n.max,ki(e))}var oC=$u,Sle=`max-w-[${oC}]`,Cle=`max-w-[min(var(--sf-page-cap,${ao.default}px),${ao.default}px)]`,tC="--sf-hero-cap",UH=`var(${tC},none)`,wle=`max-w-[${UH}]`,$H="--sf-hero-bleed-m",jH="--sf-hero-bleed-w",KH="--sf-hero-chrome-x",qH="--sf-hero-chrome-cap";function kle(e){return e===!0?{[tC]:oC,[$H]:"auto",[jH]:"100%",[KH]:"24px",[qH]:"none"}:{}}var ju=`calc(${$u} - ${Go}*2)`,vle=`max-w-[${ju.replace(/ /g,"_")}]`;var VH="--sf-chrome-cap",YH=`var(${VH},${ju})`,Tle="data-page-width";function Ple(e){return e==="full"?"full":null}function Ele(e){return e==="full"?null:MH(e==="content"?ju:YH)}function Ole(e){if(e==="full")return"full";if(e==="content")return"content"}var Ku="Side space",rC=gt.default,QH="The room left at the left and right edge of every page.";function aC(e,o){return yi(e,{desktop:{key:"site_gutter",value:o.gutter,unsetPx:rC,bounds:gt},phone:{key:"site_gutter_phone",value:o.phone,unsetPx:Ti(o.gutter),bounds:_n}})}function nC({value:e,onChange:o,showHint:t=!0,unsetPx:r=rC,bounds:a=gt}){let n=e===null;return Pi(ZH,{label:i(Ku),labelId:"sf-side-space",icon:Pi(JH,{}),value:`${e??r}px`,changed:!n,action:Pi(XH,{words:Q()?.panel,label:i(Ku),changed:!n,detail:`${r}px`,onReset:()=>o(null)}),hint:t?i(QH):void 0,children:Pi(bo,{min:a.min,max:a.max,step:a.step,value:e??r,readout:!1,ariaLabel:i(Ku),onChange:o})})}import{jsx as qu}from"react/jsx-runtime";import{BACKGROUND_WIDTHS as Gle,SettingsBackgroundWidth as e5,SettingsContentWidth as o5}from"efficient-easel/panel";var t5="Background width",r5="Content width";var Ei=e=>i(yr[e==="content"?"page":"full"]),sC="The width of every section's background.",lC="The width of every section's content.";function iC({value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n,labelId:s}){return qu(e5,{value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n?i(n):void 0,labelId:s,words:{label:i(t5),full:Ei("full"),content:Ei("content")},resetWords:Q()?.panel})}function cC({mode:e,px:o,max:t=ao.max,min:r=ao.min,changed:a,detail:n,onMode:s,onPx:l,onReset:c,hint:d,labelId:u}){let h=i(r5),p=e!=="full"?qu(bo,{min:r,max:t,step:ao.step,value:Math.min(Math.max(o,r),t),onChange:l,suffix:"px",ariaLabel:h}):null;return qu(o5,{mode:e,onMode:s,number:p,changed:a,detail:n,onReset:c,hint:d?i(d):void 0,labelId:u,words:{label:h,full:Ei("full"),content:Ei("content")},resetWords:Q()?.panel})}import{jsx as aw}from"react/jsx-runtime";import{TextStyleItem as k4,TextStylesGroup as v4}from"efficient-easel/text-styles";import{jsx as I4}from"react/jsx-runtime";import{useState as g4}from"react";import{TextStylesList as b4}from"efficient-easel/text-styles";import{usePreviewDevice as y4}from"efficient-easel/draw/client";import{defaultTextStyles as $C,textStyleCaseCss as s4,textStyleViewKey as l4}from"efficient-easel/text-styles/model";import{phoneKey as i4,resolveViewValue as jC,tabletKey as c4}from"efficient-easel/draw";import{parseHexColor as d4}from"efficient-shell/format";import{textStyleCaseCss as m5,textStyleCaseOfCss as h5}from"efficient-easel/draw";import{parseHexColor as x5}from"efficient-shell/format";function Vu(e,o){return o?`${e}[${o.index}].${o.rowKey}`:e}function zo(e){let o=/^([A-Za-z0-9_$]+)\[(\d+)\]\.([A-Za-z0-9_$]+)$/u.exec(e);return o?{key:o[1],row:{index:Number(o[2]),rowKey:o[3]}}:{key:e,row:null}}import{decodePartId as Ju,encodePartId as Ri}from"efficient-easel/draw";import{LINK_FIELD_MARKER as bC,SCAFFOLD_FIELD_MARKER as IC,TEXT_FIELD_MARKER as Li}from"efficient-easel/draw";import{readHidable as yC}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as d5}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as c5}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as dC}from"efficient-easel/draw";import{readHidable as fC}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as a5}from"efficient-easel/draw";var n5=a5,s5=["text","textarea"],l5=["textarea","plainTextarea"];function i5(e){return!e||typeof e!="object"?null:e[dC]?.control??null}function Sa(e){let o=i5(e);return o&&n5.includes(o)?o:null}function Oi(e){return l5.includes(e)}function uC(e){return!e||typeof e!="object"?void 0:e[dC]?.placeholder}function _i(e){return fC(e).text}function Yu(e,o,t){return s5.includes(e)?{text:t,hidden:fC(o).hidden}:t}function pC(e,o,t,r){return _i(e[o])===r?null:{...e,[o]:Yu(t,e[o],r)}}function Fi(e){if(!(!e||typeof e!="object"))return e[c5]}function Xu(e){if(!e||typeof e!="object")return null;let o=e.arrayFields;return o&&typeof o=="object"?o:null}function mC(e,o){if(!Array.isArray(o))return[];let t=Fi(e),r=[];if(t?.control==="textList"){let n=t.itemKey??"text";return o.forEach((s,l)=>{let c=ke(s?.[n]);c&&r.push({row:{index:l,rowKey:n},text:c})}),r}let a=Xu(e);return a?(o.forEach((n,s)=>{for(let[l,c]of Object.entries(a)){if(!Sa(c))continue;let d=_i(n?.[l])||Fi(c)?.placeholder||"";d&&r.push({row:{index:s,rowKey:l},text:d})}}),r):[]}function Fn(e,o){if(Array.isArray(e))return e[o.index]?.[o.rowKey]}function Zu(e,o,t,r){let a=e[o];return!Array.isArray(a)||t.index<0||t.index>=a.length?null:{...e,[o]:a.map((n,s)=>s===t.index?{...n,[t.rowKey]:r}:n)}}function hC(e,o,t,r,a){let n=Fn(e[o],t);return _i(n)===a?null:Zu(e,o,t,Yu(r,n,a))}function xC(e,o){return o?`${e} \xB7 row ${o.index+1}`:e}var Uo="data-sf-part",uie="data-sf-region-part",pie="data-sf-part-row";function mie(e,o){return`${e}[${o}]`}var hie="data-sf-part-kind",f5="data-sf-part-style-owner",u5="data-sf-part-style-kind";function xie(e){for(let o=e;o;o=o.parentElement){let t=o.getAttribute(f5),r=o.getAttribute(u5);if(t&&r)return{owner:t,kind:r};if(o.getAttribute("data-easel-block"))return null}return null}var gC=2;function Ca(e){return pr(e).replace(/\s+/gu,"")}function Ai(e,o,t){let r=e[Li];if(r){if(r.control==="textList"){let n=r.itemKey??"text";if(!Array.isArray(o))return;for(let s of o){let l=s?.[n];typeof l=="string"&&t.push(l)}return}let{text:a}=yC(o);a?t.push(a):r.placeholder&&t.push(r.placeholder);return}if(!e[bC]){if(e.type==="text"||e.type==="textarea"){let a=ke(o);a&&t.push(a);return}if(e.arrayFields&&Array.isArray(o)){for(let a of o)for(let[n,s]of Object.entries(e.arrayFields))Ai(s,a?.[n],t);return}if(e.objectFields&&o&&typeof o=="object")for(let[a,n]of Object.entries(e.objectFields))Ai(n,o[a],t)}}function SC(e){if(!e||typeof e!="object")return!1;let o=e;return o[bC]?!1:!!o[Li]||o.type==="text"||o.type==="textarea"}function Bi(e,o){let t=e[Li];return t?.label?t.label:typeof e.label=="string"?e.label:o}function Qu(e){let o=e.indexOf(" (");return(o>0?e.slice(0,o):e).trim()}function Iie(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){if(!a||typeof a!="object"||xn(r))continue;let n=a,s=[];Ai(n,o?.[r],s),!s.length&&n[IC]!==void 0&&Ai(n,n[IC],s);let l=Bi(n,r),c=new Set;for(let{row:h,text:p}of mC(n,o?.[r])){let x=Ca(p);x.length<gC||(c.add(x),t.push({key:r,label:l,texts:[x],row:h}))}let d=new Set(c),u=[];for(let h of s){let p=Ca(h);p.length<gC||d.has(p)||(d.add(p),u.push(p))}u.length&&t.push({key:r,label:l,texts:u})}return t}function ep(e){return!e.offPage&&!e.hidden}var p5=d5;function CC(e,o){if(!o||typeof o!="object"||xn(e)||ob(o))return null;let t=o[Li];return!t||!p5.includes(t.control)?null:t}function gie(e,o){let t=CC(e,o);return t!==null&&t.identifier!==!0}function wC(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){let n=CC(r,a);if(!n)continue;let{text:s,hidden:l}=yC(o?.[r]);if(ep({offPage:n.offPage===!0,hidden:!!l}))continue;let c=s||n.placeholder||"",d=pr(c).replace(/\s+/gu," ").trim();t.push({key:r,label:Qu(Bi(a,r)),preview:d,offPage:n.offPage===!0,identifier:n.identifier===!0,hidden:!!l})}return t}function wa(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function ka(e,o){return wa(e?.[o])??{}}function Di(e,o,t){let r=ka(e,o);return Object.hasOwn(r,t)?wa(r[t])??{}:{}}function Ni(e,o,t,r){let{[t]:a,...n}=ka(e,o),s=r?{...n,[t]:r}:n,{[o]:l,...c}=e;return Object.keys(s).length?{...c,[o]:s}:c}var rp="_partStyles",ap="data-sf-part-styled",va="data-sf-text-style",I5=/^(heading|body)-[1-7]$/;function Rn(e){return typeof e=="string"&&I5.test(e)}var Wi={heading:"heading-1",heading2:"heading-2",heading3:"heading-3",body:"body-1",label:"body-5"};function g5(e){if(!e)return null;for(let[o,t]of Object.entries(Wi))if(t===e)return o;return null}function AC(e){if(Rn(e.textStyle))return e.textStyle;let o=dt(e.role);return o?Wi[o]:void 0}var b5=[400,500,600,700],Mi=["left","center","right","justify"],kC=5,vC=1e3,y5=-5,S5=10,np=0,sp=64,lp=2,TC={size:{min:kC,max:vC,step:1},sizePhone:{min:kC,max:vC,step:1},padding:{min:np,max:sp,step:lp}},C5=.05,w5=.01,k5=["line","letter"],v5=.5,T5=2.5,P5=-1,E5=1,O5=0,_5=400,F5=[...new Set(Object.values(nn))];function RC(e){return[`${e} { transition: translate var(--page-motion-hover-duration) var(--page-ease-media) var(--page-motion-hover-delay) }`,`${e}:hover, ${e}:active { translate: 0 calc(-1 * var(--page-hover-lift)) }`]}function Oie(e){return ka(e,rp)}function Gi(e,o){return Di(e,rp,o)}function LC(e,o,t){return Ni(e,rp,o,A5(t).length?t:null)}function A5(e){return Object.entries(e).filter(([,o])=>o!==void 0)}function R5(e){return k5.includes(e)}var An=(e,o,t)=>Math.min(t,Math.max(o,e));function L5(e,o){if(R5(e)){let t=Math.round(Number(o));return!Number.isFinite(t)||t===0?null:An(t,y5,S5)}if(e==="lineHeight"){let t=Number(o);return Number.isFinite(t)?Ta(An(t,v5,T5),3):null}if(e==="letterSpacing"){let t=Number(o);return Number.isFinite(t)?Ta(An(t,P5,E5),4):null}if(e==="paragraphSpacing"){let t=Math.round(Number(o));return!Number.isFinite(t)||t<=0?null:An(t,O5,_5)}if(Object.hasOwn(TC,e)){let{min:t,max:r}=TC[e],a=Math.round(Number(o));return Number.isFinite(a)?An(a,t,r):null}return e==="italic"?typeof o=="boolean"?o:null:e==="role"||e==="fontRole"?dt(o)?o:null:e==="sizeToken"?cp(o)?o:null:e==="textStyle"?Rn(o)?o:null:e==="alignPhone"?Mi.includes(o)?o:null:o}var B5=["weight","size","sizePhone","line","letter","lineHeight","letterSpacing","paragraphSpacing","padding"];function ip(e){let o=null,t=r=>{o??={...e},delete o[r]};for(let r of B5){let a=e[r];a!==void 0&&!(typeof a=="number"&&Number.isFinite(a))&&t(r)}return e.align!==void 0&&!Mi.includes(e.align)&&t("align"),e.alignPhone!==void 0&&!Mi.includes(e.alignPhone)&&t("alignPhone"),e.textStyle!==void 0&&!Rn(e.textStyle)&&t("textStyle"),e.sizeToken!==void 0&&!cp(e.sizeToken)&&t("sizeToken"),e.fontRole!==void 0&&!dt(e.fontRole)&&t("fontRole"),o??e}function cp(e){if(!e||typeof e!="object")return!1;let{step:o,px:t,stepPhone:r,pxPhone:a,fluid:n}=e,s=c=>typeof c=="number"&&Number.isFinite(c)&&c>0,l=c=>typeof c=="string"&&F5.includes(c);return l(o)&&s(t)&&(r===void 0||l(r))&&(a===void 0||s(a))&&(n===void 0||D5(n,t))}function D5(e,o){if(!e||typeof e!="object"||Array.isArray(e))return!1;let{minPx:t,vw:r,...a}=e;return Object.keys(a).length===0&&typeof t=="number"&&Number.isFinite(t)&&t>0&&t<o&&typeof r=="number"&&Number.isFinite(r)&&r>0&&r<=100}function BC(e){return e?.pxPhone&&cp(e)?{step:e.stepPhone??e.step,px:e.pxPhone}:null}function DC({step:e,px:o,fluid:t}){let r=t?`clamp(${t.minPx}px, ${t.vw}vw, ${o}px)`:`${o}px`,a=`var(--size-${e}, ${r})`;return e.startsWith("heading")?`min(${a}, var(--sf-heading-max,9999px))`:a}var N5=[["font","role"],["font","fontRole"],["role","textStyle"],["line","lineHeight"],["letter","letterSpacing"]];function M5(e){let o=[];for(let[t,r]of N5)t===e?o.push(r):r===e&&o.push(t);return o}function Pa(e,o,t,r){let a={...Gi(e,o)},n=r==null?null:L5(t,r);if(n===null)delete a[t];else{a[t]=n;for(let s of M5(t))delete a[s]}return LC(e,o,a)}function NC(e,o){return LC(e,o,{})}function H5(e){return h5(e)??"none"}function W5(e){return m5(e)??""}var PC={heading:"--font-role-heading",heading2:"--font-role-heading2",heading3:"--font-role-heading3",body:"--font-role-body",accent:"--font-role-accent",label:"--font-role-label"};function G5(e,o){return dt(e.role)||(o?.blockDrawsStyle?null:g5(e.textStyle))}function MC(e,o){return e==="Text"&&o==="text"}var z5={headingLarge:"min(clamp(64px,9vw,144px), var(--sf-heading-max,9999px))",headingMedium:"min(32px, var(--sf-heading-max,9999px))",headingSmall:"min(24px, var(--sf-heading-max,9999px))",accent:"32px",body:"14px",label:"12px"};function U5(e){let o=nn[e],t=z5[o];return t?`var(--size-${o}, ${t})`:`var(--size-${o})`}function Ln(e){let o={};return typeof e.lineHeight=="number"?o.lineHeight=e.lineHeight:e.line&&(o.lineHeight=Ta($5+e.line*C5,3)),typeof e.letterSpacing=="number"?o.letterSpacingEm=e.letterSpacing:e.letter&&(o.letterSpacingEm=Ta(e.letter*w5,4)),o}var $5=1,vr="--sf-part-para";function j5(e){e=ip(e);let o={};if(typeof e.sizePhone=="number"&&e.sizePhone>0)o.fontSize=`${e.sizePhone}px`;else{let t=BC(e.sizeToken);t&&(o.fontSize=DC(t))}return e.alignPhone&&(o.textAlign=e.alignPhone),o}function K5(e,o){if(!o)return e;let t=ip(e),r=e;if(typeof t.sizePhone=="number"&&t.sizePhone>0)r={...r,size:t.sizePhone};else{let a=BC(t.sizeToken);a&&(r={...r,size:void 0,sizeToken:a})}return t.alignPhone&&(r={...r,align:t.alignPhone}),r}function dp(e,o,t){e=ip(e);let r=G5(e,t),a=Ln(e),n=e.size?`${e.size}px`:e.sizeToken?DC(e.sizeToken):r?U5(r):"";return{fontFamily:e.font?X5(e.font):e.fontRole?`var(${PC[e.fontRole]})`:r?`var(${PC[r]})`:"",fontWeight:e.weight?String(e.weight):"",fontSize:n,minWidth:n?"0":"",overflowWrap:n?"break-word":"",lineHeight:a.lineHeight!==void 0?String(a.lineHeight):"",letterSpacing:a.letterSpacingEm!==void 0?`${a.letterSpacingEm}em`:"",[vr]:e.paragraphSpacing?`${e.paragraphSpacing}px`:"",textTransform:W5(e.case),textAlign:e.align??"",paddingTop:EC(e.padding),paddingBottom:EC(e.padding),color:q5(e.color),fontStyle:e.italic===!0?"italic":e.italic===!1?"normal":""}}var q5=e=>e===void 0||e===""?"":Object.hasOwn(ut,e)?ut[e]:x5(e)===e.toLowerCase()?e:"",EC=e=>e===void 0?"":`${e}px`,Ta=(e,o)=>Number(e.toFixed(o));function _ie(e,o){let t=Number.parseFloat(e.fontSize)||16,r=Number.parseFloat(e.lineHeight),a=Number.parseFloat(e.letterSpacing),n=Number.parseFloat(e.paddingTop);return{fontKey:o,sizePx:t,weight:V5(Number.parseInt(e.fontWeight,10)),lineRatio:Number.isFinite(r)?Ta(r/t,3):1.2,letterEm:Number.isFinite(a)?Ta(a/t,4):0,align:Y5(e.textAlign),case:H5(e.textTransform),paddingPx:Number.isFinite(n)?Math.round(n):0}}function V5(e){return Number.isFinite(e)?b5.reduce((o,t)=>Math.abs(t-e)<Math.abs(o-e)?t:o):400}function Y5(e){for(let o of Mi)if(o===e)return o;return e==="end"?"right":"left"}function Fie(e,o){let t=OC(e);if(!t)return"";for(let r of Fo)if(OC(o(r.cssVar))===t)return r.key;return""}var OC=e=>(e.split(",")[0]??"").replace(/["']/g,"").replace(/\s+/g," ").trim().toLowerCase();function X5(e){let o=ta(e);return o?`var(${o.cssVar})`:""}function Aie(e,o,t,r){return!o||Ju(o)?.nodeId!==e?null:t.find(a=>r(a.getAttribute("class")))??t[0]??null}function Rie(e,o,t=()=>Hi,r=l=>l,a=Q5,n=!1,s=()=>!1){let l=0;for(let{element:c,partId:d}of e){let u=Ju(d)?.propKey;if(!u)continue;let h=r(u),p=Object.hasOwn(o,h)?wa(o[h])??{}:{},x=dp(K5(p,n),Hi,{blockDrawsStyle:s(u)});Rn(p.textStyle)?c.setAttribute?.(va,p.textStyle):c.removeAttribute?.(va);let g=op.some(E=>c.style[E]),y=!1;for(let[E,O]of Object.entries(x))e4(c,E,O),O&&(y=!0);if(g||op.some(E=>x[E]))for(let E of Z5(c,a))for(let O of op)E.style[O]=x[O]??"";y&&(l+=1)}return l}function Z5(e,o){let t=Ca(e.textContent??""),r=[],a=e;for(let n=0;n<J5&&o(a);n+=1){let s=a.parentElement;if(!s||Ca(s.textContent??"")!==t)break;r.push(s),a=s}return r}var J5=8;function Q5(e){let o=e;return typeof window>"u"||!o?.ownerDocument?!1:window.getComputedStyle(o).display==="inline"}var Hi={fontKey:"",sizePx:16,weight:400,lineRatio:1,letterEm:0,align:"left",case:"none",paddingPx:0};function e4(e,o,t){if(!o.startsWith("--")){e.style[o]=t;return}let r=e.style;typeof r.setProperty=="function"?t?r.setProperty(o,t):r.removeProperty?.(o):r[o]=t;let a=e;o===vr&&(t?a.setAttribute?.(_C,""):a.removeAttribute?.(_C))}var _C="data-sf-part-para",o4=Object.keys(dp({},Hi)),tp=new Set(["color","overflowWrap",vr,"fontStyle"]),op=o4.filter(e=>!tp.has(e));function HC(e,o,t,r=l=>l,a=()=>!1,n=()=>null,s=[]){let l=new Map;for(let u of e){let h=Vu(u.key,u.row);for(let p of u.texts){let x=l.get(p);x?(x.keys.add(u.key),x.partKeys.add(h)):l.set(p,{keys:new Set([u.key]),partKeys:new Set([h])})}}let c=new Map;for(let u of new Set([...Object.keys(o),...s])){if(!t4(u))continue;let h=FC(t,u,wa(o[u])??{},!1,n(u));h&&c.set(u,h)}let d=new Map;for(let[u,{keys:h,partKeys:p}]of l){let x=p.size===1?[...p][0]:h.size===1?[...h][0]:null;if(!x)continue;let g=r(x),y=n(g);if(!Object.hasOwn(o,g)&&!y)continue;let E=wa(o[g])??{},O=FC(t,x,E,a(x),y);O&&d.set(u,O)}return d.size||c.size?{rules:d,kindRules:c,drawn:new Set(l.keys())}:null}function FC(e,o,t,r,a){let n=dp(t,Hi,{blockDrawsStyle:r}),s=j5(t),l=Rn(t.textStyle)?t.textStyle:void 0;return!Object.values(n).some(Boolean)&&!Object.keys(s).length&&!l&&!a?null:{stamp:r4(e,o),declarations:n,...Object.keys(s).length?{phone:s}:{},...l?{textStyle:l}:{},...a?{motion:a}:{}}}function t4(e){return e.startsWith("@")}function fp(e,o){return e?.kindRules.get(o)??null}function r4(e,o){let t=r=>r.replace(/[^A-Za-z0-9_-]+/g,"-");return`${t(e)}~${t(o)}`}function WC(e){let o=[],t=new Set,r=a=>{let{stamp:n,declarations:s}=a;if(t.has(n))return;t.add(n);let l=Object.entries(s).filter(([,x])=>x!==""),c=x=>x.map(([g,y])=>`${a4(g)}: ${y}`).join("; "),d=`[${ap}="${n}"]`,u=l.filter(([x])=>!tp.has(x)),h=l.filter(([x])=>tp.has(x));u.length&&o.push(`${d}, *:has(> ${d}) { ${c(u)} }`),h.length&&o.push(`${d} { ${c(h)} }`),s[vr]&&(o.push(`*:has(> ${d}) { ${vr}: ${s[vr]} }`),o.push(...zi(d,`*:has(> ${d})`)));let p=Object.entries(a.phone??{}).filter(([,x])=>x!=="");p.length&&o.push(`@media ${fa} { ${d}, *:has(> ${d}) { ${c(p)} } }`)};for(let a of e.rules.values())r(a);for(let a of e.kindRules.values())r(a);return o.join(`
|
|
4
|
+
`)}function zi(e,o){let t=`var(${vr})`,r=":is([data-sf-bullet], [data-sf-number])";return[`${e} br:not(br + br) { display: block; content: ""; margin-top: ${t} }`,`${e} ${r}:not(:first-child) { margin-top: ${t} }`,`${e} ${r}:not(:last-child) { margin-bottom: ${t} }`,`:is(${o}) + :is(${o}) { margin-top: ${t} }`]}var a4=e=>e.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`);function GC(e,o){if(!e)return null;let t=Ca(o),r=e.rules.get(t);if(r)return r;if(t.length<n4||e.drawn.has(t))return null;let a=null;for(let[n,s]of e.rules)if(n.includes(t)){if(a&&a.stamp!==s.stamp)return null;a=s}return a}var n4=8;function zC(e){switch(e.id){case"heading-1":return"font-display";case"heading-2":return"font-heading2";case"heading-3":return"font-heading3";case"body-1":return"font-body";case"body-5":return"font-mono";default:return`font-${e.id}`}}var up=e=>e==="sentence"?"none":void 0,KC=["font","color","size","sizeTablet","sizePhone","weight","italic","lineHeight","lineHeightTablet","lineHeightPhone","letterSpacing","letterSpacingTablet","letterSpacingPhone","paragraphSpacing","paragraphSpacingTablet","paragraphSpacingPhone","letterCase","largestSize","largestSizeTablet","largestSizePhone"],Ea=["desktop","tablet","phone"],Bn=(e,o)=>o==="desktop"?e:o==="tablet"?c4(e):i4(e),Tr=(e,o)=>o==="desktop"?e:l4(e,o);function hp(e,o,t,r=Dl()){return jC("textSize",o,e.sizeTablet,e.sizePhone,r)[t]}var f4=[["lineSpacing","lineHeight","line"],["letterSpacing","letterSpacing","letter"]];function pp(e){for(let[o,t,r]of f4)for(let a of Ea)if(e===Tr(o,a))return{key:Bn(t,a),view:a,spacing:r};return{key:e,view:"desktop",spacing:null}}function rt(e){let o={};for(let t of KC)e[t]!==void 0&&(o[t]=e[t]);return o}function xp(e,o){let{auto:t,...r}=e,a=new Set(o??[]),n=KC.filter(s=>a.has(s)&&e.values[s]===void 0);return n.length?{...r,auto:n}:r}function qC(e){let o=e.fonts,t=e.sizes,r=e.typography,a=lI(e.compression),n={"heading-1":{font:ke(o.heading),size:j(t.headingLarge),weight:j(r.weight),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:up(r.case),largestSize:j(r.maxPx)},"heading-2":{font:ke(o.heading2),size:j(t.headingMedium),weight:j(r.weight2),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:up(r.case2)},"heading-3":{font:ke(o.heading3),size:j(t.headingSmall),weight:j(r.weight3),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:up(r.case3)},"body-1":{font:ke(o.body),size:j(t.body)},"body-5":{font:ke(o.label),size:j(t.label)}};return $C().map(({id:s,kind:l,name:c})=>({id:s,kind:l,name:c,values:rt(n[s]??{})}))}function Ip(e){return Array.isArray(e)&&e.every(o=>o&&typeof o=="object"&&typeof o.id=="string"&&(o.kind==="heading"||o.kind==="body")&&typeof o.name=="string")?e.map(o=>xp({...o,values:rt(o.values??{})},Array.isArray(o.auto)?o.auto:void 0)):null}function Kie(e){return Ip(e)??[]}function VC(e){return Ip(e)??$C().map(({id:o,kind:t,name:r})=>({id:o,kind:t,name:r,values:{}}))}function Ut(e,o){let t=qC(o),r=Ip(e);return r?r.map(a=>{let n={...mp(t,a.id)};for(let s of a.auto??[])delete n[s];return{...a,values:rt({...n,...a.values})}}):t}var mp=(e,o)=>e.find(t=>t.id===o)?.values??{},UC=["heading-1","heading-2","heading-3"];function YC({saved:e,old:o,cur:t,next:r,sizeOf:a,panelView:n="desktop"}){let s=qC(o),l=VC(e),c=Ut(l,o),d=[],u=r.map(p=>{let x=t.find(v=>v.id===p.id),g=l.find(v=>v.id===p.id);if(!x||!g)return u4([p],a,n)[0];let y={...g.values},E=new Set(g.auto??[]),O=p.values,C=x.values,I=[...new Set([...Object.keys(O),...Object.keys(C)])].filter(v=>JSON.stringify(O[v])!==JSON.stringify(C[v])),w=v=>pp(v).spacing==="letter";I.sort((v,k)=>Number(w(v))-Number(w(k)));for(let v of I){let{key:k,view:A,spacing:D}=pp(v),P=k,F=O[v];if(F===void 0){delete y[P],mp(s,p.id)[P]!==void 0&&(d.push([p.id,P]),E.add(P));continue}if(E.delete(P),D==="line")y[P]=Oa(F/100,3);else if(D==="letter"){let N={...c.find(R=>R.id===p.id)?.values??{}};for(let R of I)O[R]===void 0&&delete N[pp(R).key];let b=rt({...N,...y}),_=hp(b,a({...p,values:b}),A);y[P]=_?Oa(F/_,4):0}else y[P]=F}return xp({id:p.id,kind:p.kind,name:p.name,values:rt(y)},E)}),h=o.compression;if(d.some(([p,x])=>(x==="lineHeight"||x==="letterSpacing")&&UC.includes(p))&&rr(h)!=="normal"){for(let p of UC){let x=u.find(y=>y.id===p);if(!x)continue;let g={...x.values};for(let y of["lineHeight","letterSpacing"])d.some(([E,O])=>E===p&&O===y)||g[y]===void 0&&!(x.auto??[]).includes(y)&&(g[y]=mp(s,p)[y]);x.values=rt(g)}h="normal"}return{saved:u,old:{...o,compression:h}}}function XC(e,o){let t={text_styles:e.saved};return e.old.compression!==o.compression&&(t.heading_compression=rr(e.old.compression)),t}var Oa=(e,o)=>Number(e.toFixed(o)),ZC=(e,o)=>Ea.indexOf(e)<Ea.indexOf(o)?o:e;function JC(e,o,t="desktop"){return e.map(r=>{let a={...r.values},n=o(r);for(let s of Ea){let l=Bn("lineHeight",s),c=r.values[l],d=r.values[Bn("letterSpacing",s)];delete a[l],c!==void 0&&(a[Tr("lineSpacing",s)]=Oa(c*100,1));let u=ZC(s,t);d!==void 0&&(a[Tr("letterSpacing",s)]=Oa(d*hp(r.values,n,u),u===s?2:4))}return{id:r.id,kind:r.kind,name:r.name,values:a}})}function u4(e,o,t="desktop"){return e.map(r=>{let a=r.values,n={...a};for(let d of Ea)delete n[Tr("lineSpacing",d)],delete n[Tr("letterSpacing",d)];let s={id:r.id,kind:r.kind,name:r.name,values:rt(n)},l={...s.values},c=o({...s,values:{...s.values}});for(let d of Ea){let u=a[Tr("lineSpacing",d)],h=a[Tr("letterSpacing",d)];if(typeof u=="number"&&(l[Bn("lineHeight",d)]=Oa(u/100,3)),typeof h=="number"){let p=hp(s.values,c,ZC(d,t));l[Bn("letterSpacing",d)]=p?Oa(h/p,4):0}}return{...s,values:rt(l)}})}function qie(e){let o={fonts:sn({heading:e.heading_font??void 0,heading2:e.heading_2_font??void 0,heading3:e.heading_3_font??void 0,body:e.body_font??void 0,accent:e.accent_font??void 0,label:e.label_font??void 0}),sizes:Ud({headingLarge:e.heading_size_large_px,headingMedium:e.heading_size_medium_px,headingSmall:e.heading_size_small_px,accent:e.accent_size_px,body:e.body_size_px,label:e.label_size_px}),compression:rr(e.heading_compression),typography:cI(e)},t=e.text_styles??null,r=Array.isArray(t)?gp(Ut(t,o),o):o;return{fonts:sn(r.fonts),sizes:Ud(r.sizes),compression:rr(r.compression),typography:r.typography,textStyles:t}}function gp(e,o){let t=p=>e.find(x=>x.id===p)?.values??{},r=t("heading-1"),a=t("heading-2"),n=t("heading-3"),s=t("body-1"),l=t("body-5"),c=o.fonts,d=o.sizes,u=o.typography,h=p=>p==="none"?"sentence":"authored";return{fonts:{...c,heading:r.font??c.heading,heading2:a.font??r.font??c.heading2,heading3:n.font??r.font??c.heading3,body:s.font??c.body,label:l.font??c.label},sizes:{...d,headingLarge:r.size??null,headingMedium:a.size??null,headingSmall:n.size??null,body:s.size??null,label:l.size??null},compression:o.compression,typography:{...u,case:h(r.letterCase),weight:r.weight??null,maxPx:r.largestSize??null,weight2:a.weight??null,weight3:n.weight??null,case2:h(a.letterCase),case3:h(n.letterCase)}}}function p4(e){return e==="accent"?"var(--accent)":e==="text"?"var(--fg)":e==="labels"?"var(--fg-dim)":d4(e)===e.toLowerCase()?e:null}function Vie(e){let o=[];for(let t of e){let r=t.values,a=`.${zC(t)}`,n=`[${va}="${t.id}"]`,s=`${a}, ${n}`,l=[],c=r.font!==void 0?Fo.find(p=>p.key===r.font)?.cssVar:void 0;if(c&&l.push(`font-family: var(${c})`),r.size!==void 0){let p=r.largestSize!==void 0?Math.min(r.size,r.largestSize):r.size;l.push(`font-size: ${p}px`)}let d=r.color!==void 0?p4(r.color):null;d&&l.push(`color: ${d}`),r.italic===!0&&l.push("font-style: italic"),r.weight!==void 0&&l.push(`font-weight: ${r.weight}`);let u=[];r.lineHeight!==void 0&&u.push(`line-height: ${r.lineHeight}`),r.letterSpacing!==void 0&&u.push(`letter-spacing: ${r.letterSpacing}em`),t.kind==="body"&&l.push(...u);let h=s4(r.letterCase);h&&t.kind==="body"&&l.push(`text-transform: ${h}`),r.paragraphSpacing&&l.push(`--sf-part-para: ${r.paragraphSpacing}px`),l.length&&o.push(`${s} { ${l.join("; ")} }`),t.kind==="heading"&&u.length&&o.push(`${s}, ${a}:is(h1, h2, h3, h4), ${n}:is(h1, h2, h3, h4) { ${u.join("; ")} }`),t.kind==="heading"&&h&&o.push(`${n}, ${a}:is(h1, h2, h3, h4) { text-transform: ${h} }`),r.paragraphSpacing&&(o.push(`*:has(> ${n}) { --sf-part-para: ${r.paragraphSpacing}px }`),o.push(...zi(`:is(${s})`,`*:has(> ${n})`))),o.push(...m4(t,s,a,n))}return o.join(`
|
|
5
|
+
`)}function m4(e,o,t,r){let a=e.values,n=Dt("textSize",a.size,a.sizeTablet,a.sizePhone),s=Dt("textSize",a.largestSize,a.largestSizeTablet,a.largestSizePhone),l=Dt("same",a.lineHeight,a.lineHeightTablet,a.lineHeightPhone),c=Dt("same",a.letterSpacing,a.letterSpacingTablet,a.letterSpacingPhone),d=Dt("spacing",a.paragraphSpacing,a.paragraphSpacingTablet,a.paragraphSpacingPhone),u=jC("textSize",a.size,a.sizeTablet,a.sizePhone,Dl()),h=h4[e.id],p=[];for(let[x,g]of[["tablet",sy],["phone",fa]]){let y=[],E=[],O=u[x],C=s[x],I=n[x]===void 0&&C===void 0||O===void 0?void 0:C===void 0?O:Math.min(O,C);I!==void 0&&E.push(`font-size: ${I}px`);let w=[];l[x]!==void 0&&w.push(`line-height: ${l[x]}`),c[x]!==void 0&&w.push(`letter-spacing: ${c[x]}em`),e.kind==="body"&&E.push(...w),d[x]!==void 0&&E.push(`--sf-part-para: ${d[x]}px`),E.length&&y.push(`${o} { ${E.join("; ")} }`),e.kind==="heading"&&w.length&&y.push(`${o}, ${t}:is(h1, h2, h3, h4), ${r}:is(h1, h2, h3, h4) { ${w.join("; ")} }`),d[x]!==void 0&&y.push(`*:has(> ${r}) { --sf-part-para: ${d[x]}px }`),d[x]!==void 0&&!a.paragraphSpacing&&y.push(...zi(`:is(${o})`,`*:has(> ${r})`)),I!==void 0&&h&&y.push(`.sf-themed-content { --size-${h}: ${I}px !important }`),y.length&&p.push(`@media ${g} { ${y.join(" ")} }`)}return p}var h4={"heading-1":"headingLarge","heading-2":"headingMedium","heading-3":"headingSmall","body-1":"body","body-5":"label"};function Yie(e){return e!==!0&&e!==!1?"":`em.text-accent { font-style: ${e?"italic":"normal"} }`}function QC(e){return e?Wi[e]:void 0}function bp(e){let o=Ln(e);return rt({font:e.font,color:e.color,size:e.size,weight:e.weight,italic:e.italic,lineHeight:o.lineHeight,letterSpacing:o.letterSpacingEm,paragraphSpacing:e.paragraphSpacing,letterCase:e.case})}function ew(e){return Object.keys(bp(e)).length>0}function ow({saved:e,old:o,styleId:t,values:r}){let a=VC(e);return{saved:x4(a,t,r),old:o}}function x4(e,o,t){return e.map(r=>r.id===o?xp({...r,values:rt({...r.values,...t})},r.auto):r)}var S4={desktop:"desktop",tablet:"tablet",mobile:"phone"},tw=["font","color","size","weight","emphasis","lineSpacing","letterSpacing","paragraphSpacing","letterCase","largestSize"],C4=["size","lineSpacing","letterSpacing","letterCase"],w4=500,yp=Fo.map(e=>({value:e.key,label:e.label,family:`var(${e.cssVar})`,italic:e.italicLoaded}));function rw({saved:e,old:o,colours:t,sizeOf:r,onChange:a,openId:n,onOpenChange:s,readOnly:l=!1,withoutSize:c=!1}){let d=y4(),[u,h]=g4(null),p=Ut(e,o),x=S4[d],g=JC(p,r,x);return I4(b4,{styles:g,onChange:y=>a(YC({saved:e,old:o,cur:g,next:y,sizeOf:r,panelView:x})),fonts:yp,colours:t,settings:c?tw.filter(y=>y!=="size"):tw,auto:C4,openId:n===void 0?u:n,onOpenChange:s??h,readOnly:l,device:x,fallback:y=>{let E=p.find(C=>C.id===(y.kind==="heading"?"heading-1":"body-1")),O={};return E?.values.font&&y.id!==E.id&&(O.font=E.values.font),y.kind==="heading"&&(O.weight=w4),O}})}var nw=["font","size","weight","emphasis"],T4=500;function P4({font:e,size:o,weight:t,italic:r}){let a={font:e};return o!==null&&(a.size=o),t!==null&&(a.weight=t),r!==null&&(a.italic=r),{id:"accent",kind:"heading",name:i("Accent"),values:a}}function E4(e,o){let t=[],r=e.values,a=o.values;return a.font!==r.font&&a.font!==void 0&&t.push({key:"font",value:a.font}),a.size!==r.size&&t.push({key:"size",value:a.size??null}),a.weight!==r.weight&&t.push({key:"weight",value:a.weight??null}),a.italic!==r.italic&&t.push({key:"italic",value:a.italic??null}),t}function sw(e){let{headingWeight:o,open:t,onOpenChange:r,onChange:a,withoutSize:n=!1}=e,s=P4(e);return aw(v4,{label:i("Accent"),children:aw(k4,{style:s,fonts:yp,settings:n?nw.filter(l=>l!=="size"):nw,auto:["size"],fallback:()=>({weight:o??T4}),open:t,onOpenChange:r,onChange:l=>E4(s,l).forEach(a)})})}import{Button as Q4,EmptyState as e3,Tabs as o3,Tooltip as mde,tabButtonId as t3,tabPanelId as r3}from"efficient-shell/ui";import{ContrastIcon as a3,NoteIcon as n3,SettingsIcon as s3,TypeIcon as l3}from"efficient-easel/icons";function lw(e){switch(e.status){case"saved":return null;case"failed":return{msg:i("Not saved. Try again."),tone:"error"};case"skipped":switch(e.reason){case"empty":return null;case"no-token":return{msg:i("Not saved. Reload the page."),tone:"error"};case"template":return{msg:i("Templates keep their look. Press Done."),tone:"success"}}}}import{jsx as kp}from"react/jsx-runtime";import{ListIcon as G4,PaddingTopIcon as z4}from"efficient-easel/icons";import{jsx as Ui}from"react/jsx-runtime";import{SettingsDefaultReset as O4,SettingsField as _4,SettingsSegmented as F4}from"efficient-easel/panel";import{WidthIcon as A4}from"efficient-easel/icons";function iw({value:e,resolved:o,onChange:t,label:r="Width",labelId:a,followsLabel:n,hint:s}){let l=e===void 0,c=l?o:e,d=i(r);return Ui(_4,{label:d,labelId:a,icon:Ui(A4,{}),value:l?n:void 0,changed:!l,action:Ui(O4,{words:Q()?.panel,label:d,changed:!l,onReset:()=>t(void 0)}),hint:s,children:Ui(F4,{options:[{label:i(yr.full),id:"full"},{label:i(yr.page),id:"content"}],value:c,ariaLabel:d,onChange:t})})}import{HEADER_TYPE as Sp,FOOTER_TYPE as R4}from"efficient-easel/draw";var L4=new Set(["Hero","HeroSingle","IntroBleed"]),cw={min:56,max:140,default:88},gce={min:0,max:120,step:2,default:32},bce=`var(--sf-header-h, ${cw.default}px)`,B4="--sf-header-set-h",yce="--sf-header-h",Sce=`var(${B4}, ${cw.default}px)`,Cce="sf-header-clearance",wce="sf-sticky-underheader";function D4(e){return e?.find(o=>o?.type&&o.type!==Sp)??null}function dw(e){let o=D4(e)?.type;return!o||!L4.has(o)}function kce(e){return!dw(e)}function vce(e){return!!e?.some(o=>o?.type===Sp)}function Tce(e){return!e||e.length===0?!1:!e.some(o=>o?.type===Sp||o?.type===R4)}var N4=["auto","shared","own"],Cp="auto",M4="topSpace",Pce="data-top-space";function H4(e){return N4.includes(e)?e:Cp}function W4(e,o){let t=H4(e?.props?.[M4]);return t==="own"?!0:t==="shared"?!1:dw(o)}function Ece(e,o){return W4(e,o)?"own":null}function U4(){return{type:"custom",render:({value:e,onChange:o})=>kp(iw,{value:e==="full"?"full":e==="content"?"content":void 0,resolved:"content",label:"Page width",followsLabel:i("Follows the site"),hint:i("Whether this page sits on the site's content column, or runs edge to edge."),onChange:t=>o(t)})}}var $4=[{label:"Auto",value:"auto"},{label:"Shared",value:"shared"},{label:"Its own",value:"own"}],Hce={pageBackground:BS(),topSpace:Ho("Top space",kp(z4,{}),$4,Cp),widthChoice:U4()},Dn=["pageBackground","topSpace","widthChoice"],j4="Record type",wp=new Map,fw=-1;function K4(e){fw!==uf()&&(wp.clear(),fw=uf());let o=ff(),t=o.some(a=>a.key===e)?"":e,r=wp.get(t);return r||(r=Ho(j4,kp(G4,{}),[...o.map(a=>({label:a.label,value:a.key})),...t?[{label:t,value:t}]:[]],lr),wp.set(t,r)),r}var uw=new WeakMap;function Wce(e,o){if(!ul()||ff().length<2||dl in e)return e;let t=K4(pf(o)),r=uw.get(e);if(r&&r.row===t)return r.fields;let a={[dl]:t,...e};return uw.set(e,{row:t,fields:a}),a}import{previewFrame as i3}from"efficient-easel/screen/lib/document/preview-dom";import{useEasel as q4}from"efficient-easel/easel";function $i({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=q4(A=>A),{fonts:a,setFonts:n,sizes:s,setSizes:l,headingCompression:c,setHeadingCompression:d,headingTypography:u,setHeadingTypography:h,textStyles:p,setTextStyles:x}=se(),g=t.data,y=g.root?.props??{},E=e?sn(y.fonts):a,O=e?tI:s,C=e?rr(y.headingCompression):c,I=e?iI(y.headingTypography):u,w={fonts:E,sizes:O,compression:C,typography:I},v=e?y.textStyles:p,k=A=>r({type:"replaceRoot",root:{...g.root,props:{...y,...A}},recordHistory:!0});return{fonts:E,sizes:O,compression:C,typography:I,old:w,saved:v,write:(A,D)=>{let P=gp(Ut(A.saved,A.old),A.old);e?k({textStyles:A.saved,fonts:P.fonts,headingCompression:P.compression,headingTypography:P.typography}):(x(A.saved),n(P.fonts),l(P.sizes),d(P.compression),h(P.typography)),o(XC(A,w),D)},writeRoot:k}}var Tp="sf-site-styles",c3="sf-site-styles-tabpanel",Ep=!1,d3="Show hints";function Op({shown:e,onChange:o}){return oe("div",{className:"sf-hints",children:oe(Q4,{type:"button",variant:"ghost","aria-pressed":e,leftIcon:oe(n3,{size:13}),onClick:()=>o(!e),children:i(d3)})})}var hw="text",Fa="basics",pw="this-page-group",_a=[{id:Fa,label:"Basics",icon:oe(s3,{})},{id:"theme",label:"Theme",icon:oe(a3,{})},{id:"text",label:"Text",icon:oe(l3,{})}];function f3({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=mw(d=>d),{theme:a,setTheme:n}=se(),s=t.data,l=s.root?.props??{},c=d=>{if(e){let u={...l,theme:d};r({type:"replaceRoot",root:{...s.root,props:u},recordHistory:!0})}else n(d);o({selected_preset:d.selected,theme_presets:d.themes})};return oe(zI,{value:e?l.theme:a,onChange:c})}function u3({themeFromDocument:e,persist:o}){let[t,r]=ji(null),{theme:a,setFonts:n,setSizes:s,setHeadingTypography:l}=se(),c=$i({themeFromDocument:e,persist:o}),{old:d,saved:u,writeRoot:h}=c,p=c.fonts,x=c.sizes,g=c.typography,y=k=>k.values.size??I3(m3[k.id]??"body")??h3[k.kind],E=k=>c.write(k),O=p3(a),C=k=>{let A={...p,accent:k};e?h({fonts:A}):n(A),o({accent_font:k})},I=k=>{s({...x,accent:k}),o({accent_size_px:k})},w=k=>{let A={...g,weightStrong:k};e?h({headingTypography:A}):l(A),o({heading_weight_strong:k})},v=k=>{let A={...g,italicStrong:k};e?h({headingTypography:A}):l(A),o({accent_italic:k})};return Pr(Er,{children:[oe(rw,{saved:u,old:d,colours:O,sizeOf:y,onChange:E,openId:t===vp?null:t,onOpenChange:r,withoutSize:e}),oe(sw,{font:p.accent,size:x.accent,weight:g.weightStrong,italic:g.italicStrong,headingWeight:g.weight,open:t===vp,onOpenChange:k=>r(k?vp:null),onChange:k=>{k.key==="font"?C(k.value):k.key==="size"?I(k.value):k.key==="weight"?w(k.value):v(k.value)},withoutSize:e})]})}var vp="accent";function p3(e){let o=Qr(e);return[{key:"accent",name:i("Accent"),value:o.accent},{key:"text",name:i("Text"),value:o.text},{key:"labels",name:i("Labels"),value:o.muted??o.text}]}var m3={"heading-1":"heading","heading-2":"heading2","heading-3":"heading3","body-1":"body","body-5":"label"},h3={heading:32,body:14},x3={heading:"main h1, main h2",heading2:"main h1, main h2",heading3:"main h1, main h2",accent:"main h1 em, main h2 em",body:"main p",label:"main .mono-eyebrow"};function I3(e){if(typeof document>"u")return null;let o=(i3()?.contentDocument??document).querySelector(x3[e]);if(!o)return null;let t=parseFloat(getComputedStyle(o).fontSize);return Number.isFinite(t)?t:null}function g3({themeFromDocument:e,persist:o,showHint:t}){let{appState:r,dispatch:a}=mw(p=>p),{cornerRadiusPx:n,setCornerRadiusPx:s}=se(),l=r.data,c=l.root?.props??{},d=c.cornerRadiusPx===void 0?aI[rI(c.cornerStyle)]:Jo(c.cornerRadiusPx),u=e?d:n,h=p=>a({type:"replaceRoot",root:{...l.root,props:{...c,...p}},recordHistory:!0});return oe(zS,{value:u,onChange:p=>{e?h({cornerRadiusPx:p}):s(p),o({corner_radius_px:p})},showHint:t})}function b3(e){return{site_width:e}}function y3({persist:e,showHint:o}){let{siteWidth:t,setSiteWidth:r,sectionBackgroundWidth:a,setSectionBackgroundWidth:n,sectionContentWidth:s,setSectionContentWidth:l}=se();if(Pp()!=="desktop")return null;let c=typeof t=="number"?t:ao.default,d=p=>{r(p),e(b3(p),p===null)},u=p=>{n(p),e({section_background_width:p},!0)},h=p=>{l(p),e({section_content_width:p},!0)};return Pr(Er,{children:[oe(iC,{value:a??"full",changed:a!==null,detail:i("Full width"),onChange:u,onReset:()=>u(null),hint:o?sC:void 0}),oe(cC,{mode:s??"content",px:c,min:ao.min,max:ao.max,changed:typeof t=="number"||s!==null,detail:`${i("Content width")} ${ao.default}px`,onMode:h,onPx:p=>d(p),onReset:()=>{h(null),d(null)},hint:o?lC:void 0})]})}function S3(e){return{block_gap:e}}function C3(e){return{block_gap_phone:e}}function w3(e){return{site_gutter:e}}function k3(e){return{site_gutter_phone:e}}function xw(e,[o,t],r){o(e),r(t(e),e===null)}function v3({persist:e,showHint:o}){let{siteGutter:t,siteGutterPhone:r,setSiteGutter:a,setSiteGutterPhone:n}=se(),s=aC(Pp(),{gutter:t,phone:r});if(!s)return null;let l=s.key==="site_gutter_phone"?[n,k3]:[a,w3];return oe(nC,{value:s.value,onChange:c=>xw(c,l,e),showHint:o,unsetPx:s.unsetPx,bounds:s.bounds})}function T3({persist:e,showHint:o}){let{blockGap:t,blockGapPhone:r,setBlockGap:a,setBlockGapPhone:n}=se(),s=qS(Pp(),{gap:t,phone:r});if(!s)return null;let l=s.key==="block_gap_phone"?[n,C3]:[a,S3];return oe(VS,{value:s.value,onChange:c=>xw(c,l,e),showHint:o,followsPx:s.followsPx})}function P3({persist:e,showHint:o=!0}){return Pr(Er,{children:[oe(y3,{persist:e,showHint:o}),oe(v3,{persist:e,showHint:o}),oe(T3,{persist:e,showHint:o})]})}function E3(e){return{card_shadow:e}}function O3(e){return e===null?{shadow_color:null}:{shadow_color:sI(e)}}function _3(e){return{hover_effect:e}}function F3({persist:e,showHint:o=!0}){let{cardShadow:t,setCardShadow:r,shadowColor:a,setShadowColor:n,hoverEffect:s,setHoverEffect:l}=se();return Pr(Er,{children:[oe(US,{value:t,onChange:c=>{r(c),e(E3(c),!0)},showHint:o}),oe(jS,{value:a,onChange:c=>{n(c),e(O3(c),c===null)},showHint:o}),oe(YS,{value:s,onChange:c=>{l(c),e(_3(c),!0)},showHint:o})]})}function A3(e){return{photography_grayscale:e}}function R3({persist:e,showHint:o}){let{photographyGrayscale:t,setPhotographyGrayscale:r}=se();return oe(ZS,{value:t,onChange:a=>{r(a),e(A3(a),!0)},showHint:o})}function L3({persist:e,showHint:o=!0}){return oe(Er,{children:oe(R3,{persist:e,showHint:o})})}function B3(e){return{share_button_on_posts:e}}function D3({persist:e,showHint:o=!0}){let{shareButtonOnPosts:t,setShareButtonOnPosts:r}=se();return oe(JS,{value:t,onChange:a=>{r(a),e(B3(a),!0)},showHint:o})}function Aa(){let{websiteName:e}=se();return e?.trim()||II}function Ki({themeFromDocument:e=!1,tokenRef:o,siteId:t,onNotify:r,tab:a,onTabChange:n,initialTab:s,revealPageGroup:l=!1,onPageGroupRevealed:c}){let{persist:d}=la({themeFromDocument:e,tokenRef:o,siteId:t,onResult:C=>{let I=lw(C);I&&r?.(I.msg,I.tone)}}),[u,h]=ji(s??_a[0].id),p=a!==void 0,x=p?a:u,g=p?n??(()=>{}):h,y=_a.find(C=>C.id===x)??_a[0],[E,O]=ji(Ep);return Pr(Er,{children:[oe(H3,{activeId:y.id,onSelect:g}),Pr("div",{id:r3(Tp,y.id),className:c3,role:"tabpanel","aria-labelledby":t3(Tp,y.id),children:[x===Fa&&Pr(Er,{children:[oe(g3,{themeFromDocument:e,persist:d,showHint:E}),!e&&oe(F3,{persist:d,showHint:E}),!e&&oe(P3,{persist:d,showHint:E}),!e&&oe(L3,{persist:d,showHint:E}),!e&&oe(D3,{persist:d,showHint:E}),oe(N3,{reveal:l,onRevealed:c}),oe(Op,{shown:E,onChange:O})]}),x==="theme"&&oe(f3,{themeFromDocument:e,persist:d}),x==="text"&&oe(u3,{themeFromDocument:e,persist:d})]})]})}function N3({reveal:e,onRevealed:o}){let[t,r]=ji(!0),a=J4(o);return a.current=o,Z4(()=>{if(!e)return;r(!0);let n=requestAnimationFrame(()=>{document.getElementById(pw)?.scrollIntoView({block:"start"}),a.current?.()});return()=>cancelAnimationFrame(n)},[e]),oe(X4,{title:i("This page"),open:t,onToggle:r,id:pw,children:oe(M3,{})})}function M3(){let{fields:e,values:o,readOnly:t,onChange:r}=V4(),a=Object.fromEntries(Dn.filter(n=>n in e).map(n=>[n,e[n]]));return Object.keys(a).length===0?oe(e3,{variant:"none",icon:!1,message:i("This page has no look of its own to set.")}):oe(Y4,{fields:a,values:o,onChange:r,readOnly:t,tabs:!1,idPrefix:"this-page",ariaLabel:i("This page")})}function H3({activeId:e,onSelect:o}){return oe("div",{className:"es-insp-tabs",children:oe(o3,{variant:"underline",block:!0,labelsFit:!0,"aria-label":i("Styles"),idPrefix:Tp,value:e,onChange:o,items:_a.map(t=>{let r=i(t.label);return{id:t.id,icon:t.icon,label:r}})})})}import{InspectorIconButton as Z3}from"efficient-easel/chrome";import{Button as vw,Dialog as J3,FormField as Q3,Input as Tw,PopupMenu as e6,PopupMenuItem as Pw,toast as Ew}from"efficient-shell/ui";import{LayersTree as o6,TreeGroupLabel as t6,TreeRow as Ow,TreeRowAction as Xi}from"efficient-easel/tree";import{AddIcon as r6,DuplicateIcon as a6,PageIcon as n6,SettingsIcon as s6}from"efficient-easel/icons";import{PagesIcon as l6}from"efficient-easel/rail";import{useEaselHost as i6}from"efficient-easel/screen/lib/host";var _p="Main Pages",W3="Dynamic Pages",Fp="dynamic",G3="dynamic";function Nn(e){return e.kind===G3}function Iw(e){let o=[],t=[];for(let r of e){if(Nn(r)){t.push(r);continue}let a=r.groupKey??(r.group?`folder:${r.group}`:"top"),n=o[o.length-1];n&&n.key===a?n.rows.push(r):o.push({key:a,label:r.group??_p,rows:[r]})}if(t.length){let r=o.findIndex(a=>a.key.startsWith("system:"));o.splice(r===-1?o.length:r,0,{key:Fp,label:W3,rows:t})}return o}import{useEaselSession as Rw}from"efficient-easel/screen/lib/session-context";import{useCallback as qi,useEffect as z3,useSyncExternalStore as U3}from"react";import{useScreenDocument as Sw}from"efficient-easel/screen/components/ScreenDocumentContext";var gw=new WeakMap;function Mn(e){let o=gw.get(e);return o||(o={rows:null,loading:null,listeners:new Set},gw.set(e,o)),o}function Ap(e,o){e.rows=o;for(let t of e.listeners)t()}var Vi=new Set;function Yi(e,o){o?Vi.add(e):Vi.delete(e)}function bw(e){let o=Mn(e),t=e.listPages().then(r=>Ap(o,Vi.size?r.filter(a=>!Vi.has(a.id)):r),()=>Ap(o,[])).finally(()=>{o.loading===t&&(o.loading=null)});return o.loading=t,t}var yw=()=>null,$3=()=>()=>{};function Hn(){let{adapter:e,ready:o}=Sw(),t=qi(l=>{let{listeners:c}=Mn(e);return c.add(l),()=>c.delete(l)},[e]),r=qi(()=>Mn(e).rows,[e]),a=U3(o?t:$3,o?r:yw,yw);z3(()=>{if(!o)return;let l=Mn(e);l.rows===null&&!l.loading&&bw(e)},[e,o]);let n=qi(()=>o?bw(e):Promise.resolve(),[e,o]),s=qi(l=>Ap(Mn(e),l),[e]);return{rows:a,reload:n,setRows:s,getRows:r}}function j3(e,o){return e?.find(t=>t.slug===o)?.label?.trim()||`/${o}`}function Cw(){let{currentSlug:e}=Sw(),{rows:o}=Hn();return j3(o,e)}import{canDuplicatePage as c6,DuplicatePageDialog as d6,uniqueSlug as _w}from"efficient-easel/page-copy";var Fw="sf-editor-pages-collapsed-groups";function f6(){let e=Rw(),{siteId:o,templateId:t}=Aw(),r=Me(e).pages;if(!(!r.duplicate||t))return(a,n)=>r.duplicate(a.id,{...n,...o?{siteId:o}:{}})}function u6(){try{let e=ra()||(typeof window>"u"?"":window.location.origin);return e?new URL(e).host:""}catch{return""}}function Lw({onNavigate:e,onClose:o,activeSurface:t,onPreviewSurface:r}){let a=Rw().chrome?.pageRows,n=i6(),{adapter:s,capabilities:l,ready:c,currentSlug:d}=Aw(),u=Aa(),{rows:h,reload:p,setRows:x,getRows:g}=Hn(),[y,E]=$t(""),[O,C]=$t(!1),[I,w]=$t(null),[v,k]=$t(!1),[A,D]=$t(""),P=V3(),F=f6(),[N,b]=$t(null),[_,R]=$t(()=>{if(typeof window>"u")return new Set;try{let M=window.localStorage.getItem(Fw);return new Set(M?JSON.parse(M):[])}catch{return new Set}});q3(()=>{try{window.localStorage.setItem(Fw,JSON.stringify([..._]))}catch{}},[_]);let H=M=>R(de=>{let ge=new Set(de);return ge.has(M)?ge.delete(M):ge.add(M),ge}),U=kw(()=>Iw(h??[]),[h]),Z=y.trim().toLowerCase(),K=M=>!Z||M.toLowerCase().includes(Z),Le=M=>Z?!0:!_.has(M),be=kw(()=>new Set((h??[]).map(M=>M.slug)),[h]),Xe=()=>{if(l.pageCreationInAdminForm){n.send("storefront-editor:new-page");return}D(""),w(null),k(!0)},Ge=async()=>{let M=A.trim();if(!(!M||!c||O||!s.createPage)){C(!0),w(null);try{let de=await s.createPage({slug:_w(M,be),title:M,layout:{}});await p(),k(!1),D(""),e(de.slug)}catch{w(i("Couldn\u2019t add the page \u2014 please retry."))}finally{C(!1)}}},Pe=l.hasSiteSettings&&!!s.createPage,Ie=async()=>{if(!(!c||O||!s.createPage)){C(!0),w(null);try{let M=await s.createPage(Jb(i("New popup"),be));await p(),e(M.slug)}catch{w(i("Couldn\u2019t add the popup \u2014 please retry."))}finally{C(!1)}}},we=Y3(null),[eo,lo]=$t(null),ie=()=>{if(!Pe)return Xe();if(eo)return lo(null);let M=we.current?.getBoundingClientRect();M&&lo({top:M.bottom+6,right:Math.max(8,window.innerWidth-M.right)})},Be=M=>{let de=h??[],ge=s.deletePage;if(!c||O||!ge||de.length<=1)return;let De=de.findIndex(Ze=>Ze.id===M.id),Ne=de.filter(Ze=>Ze.id!==M.id),Et=M.slug===d;Yi(M.id,!0),x(Ne),w(null),Et&&Ne[0]&&e(Ne[0].slug);let Zr=()=>{Yi(M.id,!1);let Ze=g()??[];if(Ze.some(rn=>rn.id===M.id))return;let er=[...Ze];er.splice(Math.max(0,Math.min(De,er.length)),0,M),x(er)};Ew.undoable(i("Deleted \u201C{name}\u201D",{name:M.label}),{actionLabel:i("Undo"),commit:async Ze=>{await ge(M.id,Ze),Yi(M.id,!1)},undo:()=>{Zr(),Et&&e(M.slug)},onFail:()=>{Zr(),Ew.error(i("Couldn\u2019t delete the page \u2014 please retry."))}})},ho=M=>n.send("storefront-editor:open-page",{slug:M}),Ae=M=>{if(!K(M.label))return null;let de=!t&&M.slug===d,ge=l.canDeletePagesInline&&(h??[]).length>1,De=Nn(M),Ne=M.kind==="lightbox",Et=[...De?[{label:i("Dynamic"),tone:"info"}]:[],...Ne?[{label:i("Lightbox"),tone:"success"}]:[],...M.draft?[{label:i("draft"),tone:"draft"}]:[]],Zr=Et.length>0?Et:void 0,Ze=!!F&&c6(M),er=Ze||l.pageCreationInAdminForm||ge?Wn(ww,{children:[Ze&&he(Xi,{kind:"plain",label:i("Duplicate \u201C{name}\u201D",{name:M.label}),disabled:O,onClick:()=>b(M),children:he(a6,{size:13})}),l.pageCreationInAdminForm&&he(Xi,{kind:"plain",label:i("Page settings for \u201C{name}\u201D",{name:M.label}),onClick:()=>ho(M.slug),children:he(s6,{size:13})}),ge&&he(Xi,{kind:"delete",label:i("Delete \u201C{name}\u201D",{name:M.label}),disabled:O,onClick:()=>Be(M),children:he(Rp,{name:"trash",size:13,strokeWidth:1.7,rounded:!0})})]}):void 0;return he(Ow,{icon:he(n6,{size:14}),name:M.label,selected:de,onSelect:()=>e(M.slug),badge:Zr,actions:er,rowProps:{"data-page-slug":M.slug}},M.id)},ze=(M,de,ge)=>{let De=ge.filter(Boolean);if(De.length===0)return null;let Ne=Le(M);return Wn(K3,{children:[he(t6,{count:De.length,countLabel:co("{n} page","{n} pages",De.length),expanded:Ne,onToggle:()=>H(M),children:de}),Ne&&De]},M)},Vo=(a?.rows??[]).filter(M=>K(M.label)).map(M=>{let de=t===M.key;return he(Ow,{icon:M.icon,name:M.label,selected:de,onSelect:()=>r(M.key),badge:{label:i("Preview"),tone:"warning"},actions:he(Xi,{kind:"plain",label:i("Open the {name} in a new tab",{name:M.label}),onClick:()=>window.open(M.href,"_blank","noopener,noreferrer"),children:he(Rp,{name:"external-link",size:13,strokeWidth:1.7,rounded:!0})}),rowProps:{"data-shop-surface":M.key}},M.key)}),Pt=l.hasSiteSettings&&!!a,Yo=(()=>{if(h===null)return null;let M=[],de=!1;for(let ge of U){Pt&&!de&&ge.key.startsWith("system:")&&(M.push(ze("shop",a.title,Vo)),de=!0);let De=ge.key===Fp||ge.label===_p?i(ge.label):ge.label;M.push(ze(ge.key,De,ge.rows.map(Ae)))}return Pt&&!de&&M.push(ze("shop",a.title,Vo)),M})();return Wn("div",{className:"sf-pages",children:[he(X3,{icon:he(l6,{}),title:i("Pages"),context:u,actions:he(Z3,{buttonRef:we,label:Pe?i("Add"):i("New page"),hasPopup:Pe?"menu":void 0,expanded:Pe?eo!==null:void 0,onClick:ie,children:he(r6,{size:15})})}),eo&&he(e6,{portal:!0,style:{top:eo.top,right:eo.right},onClose:()=>lo(null),children:Wn("div",{role:"menu","aria-label":i("Add"),children:[he(Pw,{role:"menuitem",onClick:()=>{lo(null),Xe()},children:i("Page")}),he(Pw,{role:"menuitem",disabled:O,onClick:()=>{lo(null),Ie()},children:i("Popup")})]})}),he("div",{className:"sf-pages-find",children:he(Tw,{type:"search",leftIcon:he(Rp,{name:"search",size:14,rounded:!0}),placeholder:i("Search all pages\u2026"),value:y,onChange:M=>E(M.target.value),"aria-label":i("Search all pages")})}),I&&!v&&he("div",{className:"sf-note sf-note--error",role:"alert",children:I}),Yo===null?he("div",{className:"sf-note",children:i("Loading\u2026")}):Yo.some(Boolean)?he(o6,{ariaLabel:i("Pages"),className:"sf-scroll",children:Yo}):he("div",{className:"sf-note",children:y.trim()?i("No pages match your search"):i("No pages yet. Add one with + above.")}),F&&N&&he(d6,{source:{title:N.label,slug:N.slug},taken:be,host:u6(),duplicate:M=>F(N,M),onClose:()=>b(null),onDuplicated:M=>{b(null),p(),e(M.slug)}},N.id),he(J3,{open:v,onClose:()=>k(!1),size:"sm",title:i("Add a page"),description:i("Give the new template page a name. It starts blank \u2014 add sections once it opens."),footer:Wn(ww,{children:[he(vw,{variant:"secondary",onClick:()=>k(!1),children:i("Cancel")}),he(vw,{onClick:()=>{Ge()},disabled:O||!A.trim(),loading:O,children:i("Add page")})]}),children:he(Q3,{label:i("Page name"),htmlFor:P,hint:A.trim()?i("URL: /{slug}",{slug:_w(A,be)}):void 0,error:I??void 0,children:he(Tw,{id:P,value:A,invalid:!!I,onChange:M=>D(M.target.value),onKeyDown:M=>{M.key==="Enter"&&Ge()},placeholder:i("e.g. About")})})})]})}import{jsx as Nw}from"react/jsx-runtime";import{createContext as m6,useCallback as h6,useContext as x6,useMemo as I6,useState as g6}from"react";import{CanvasChromeContext as b6}from"efficient-easel/easel";import{useSelectHandler as y6}from"efficient-easel/draw/client";import{parseHexColor as p6}from"efficient-shell/format";var Zi=["chat-bubble-left-right","chat-bubble-oval-left-ellipsis","chat","megaphone","phone","sparkles"],Ra=Zi[0];var Or="right";function Ji(e){return Zi.includes(e??"")?e:Ra}function Bw(e){return e==="left"?"left":Or}function Dw(e){return e&&p6(e)===e.toLowerCase()?e.toLowerCase():""}var Mw="chat",Qi={enabled:!0,title:"",subtitle:"",greeting:"",launcherColor:"",launcherIcon:"",launcherPosition:Or,launcherLabel:"",showOnPhones:!0};function afe(e){return{enabled:e.enabled,title:e.title,subtitle:e.subtitle,greeting:e.greeting,launcherColor:Dw(e.launcherColor),launcherIcon:e.launcherIcon?Ji(e.launcherIcon):"",launcherPosition:Bw(e.launcherPosition),launcherLabel:e.launcherLabel??"",showOnPhones:e.showOnPhones!==!1}}var Hw=m6({chat:Qi,setChat:()=>{},setSelected:()=>{},setSelectHandler:()=>{}});function nfe({children:e,chat:o=Qi,onChatChange:t}){let[r,a]=g6(!1),n=h6(d=>t?.(d),[t]),{select:s,setSelectHandler:l}=y6(),c=I6(()=>({selected:()=>r?Mw:null,select:d=>d===Mw&&s()}),[r,s]);return Nw(Hw.Provider,{value:{chat:o,setChat:n,setSelected:a,setSelectHandler:l},children:Nw(b6.Provider,{value:c,children:e})})}var ec=()=>x6(Hw);import{jsx as Lp}from"react/jsx-runtime";import{DesktopIcon as S6,PhoneIcon as C6,TabletIcon as w6}from"efficient-easel/icons";import{VIEW_TIERS as k6,VIEW_TIER_LABEL as v6}from"efficient-easel/draw";var T6={desktop:Lp(S6,{}),tablet:Lp(w6,{}),mobile:Lp(C6,{})},Ww=k6.map(e=>({id:e,get label(){return i(v6[e])},icon:T6[e]}));import{PreviewDeviceContext as gY}from"efficient-easel/draw/client";import{jsx as P6}from"react/jsx-runtime";import{createContext as E6,useCallback as Gw,useContext as O6,useMemo as _6,useRef as F6}from"react";var A6=Object.fromEntries(rl.map(e=>[e,{value:"",error:null}])),zw=E6({links:bI,rows:A6,canSave:!1,saveLink:async()=>({ok:!1,error:"There is no website to save to."}),openPanel:()=>{},setOpenHandler:()=>{}});function hfe({children:e,value:o}){let t=F6(()=>{}),r=Gw(()=>t.current(),[]),a=Gw(s=>{t.current=s},[]),n=_6(()=>({...o,openPanel:r,setOpenHandler:a}),[o,r,a]);return P6(zw.Provider,{value:n,children:e})}var Gn=()=>O6(zw);import{jsx as R6}from"react/jsx-runtime";import{createContext as L6,useContext as B6,useMemo as D6,useState as N6}from"react";var Uw=L6(null);function bfe({children:e}){let[o,t]=N6(null),r=D6(()=>({surface:o,setSurface:t}),[o]);return R6(Uw.Provider,{value:r,children:e})}function $w(){return B6(Uw)??{surface:null,setSurface:()=>{}}}import{createPreviewSelectionContext as M6}from"efficient-easel/draw/client";var zn="Scrolling Bar",{Provider:Cfe,useSelection:jw}=M6("selectedHeroId"),wfe="data-sf-hero-ticker";function kfe(e){return`${e}::ticker`}function vfe(e){return!e||!e.endsWith("::ticker")?null:e.slice(0,-8)||null}import{createPreviewSelectionContext as H6}from"efficient-easel/draw/client";var{Provider:Efe,useSelection:oc}=H6("selectedHeroPart");var qw=["one","side","stacked"];var _fe={one:"One",side:"Side by side",stacked:"Stacked"};function Vw(e){return qw.includes(e)?e:"one"}function Kw(e){return e==="one"?1:2}function W6(e,o){if(qw.includes(e))return e;let t=Vw(o);return t==="side"?"stacked":t}function Bp(e){let o=Vw(e.mediaLayout);return Math.max(Kw(o),Kw(W6(e.mediaLayoutPhone,o)))}var Un=["media","image","image2"],La={media:"Media",image:"Image",image2:"Image 2"},$n={media:"heroMedia",image:"heroImage",image2:"heroImage2"};function tc(e,o){return e==="image"&&Bp(o)>1?"Image 1":La[e]}var Lfe="Video file",Bfe="Upload a video file";function G6(e,o){return{field:"mediaType",is:e,default:o}}var z6=new Set(["HeroSingle"]),Yw="heroPart";function U6(e,o){return{...o,[Yw]:e}}function Dfe(e,{parts:o={},onlyFor:t,fallback:r,rules:a}){let n={...e};for(let s of["image","video"])for(let l of t[s])n[l]=Ao(n[l],G6(s,r));for(let[s,l]of Object.entries(a??{}))l&&(n[s]=Ao(n[s],l));for(let s of Un)for(let l of o[s]??[])n[l]=U6(s,n[l]);return n}function $6(e){let o=e?.[Yw];return Un.includes(o)?o:null}function Xw(e,o){let t={};for(let[r,a]of Object.entries(e))$6(a)===o&&(t[r]=a);return t}function Zw(e){if(!z6.has(e.type))return[];let o=[{part:"media",label:La.media,depth:0}];return(e.props.mediaType??"image")!=="video"&&(o.push({part:"image",label:tc("image",e.props),depth:1}),Bp(e.props)>1&&o.push({part:"image2",label:tc("image2",e.props),depth:1})),o}function jn(e,o){return`${e}::${o}`}function Jw(e){if(!e)return null;let o=e.lastIndexOf("::");if(o<=0)return null;let t=e.slice(o+2);return Un.includes(t)?{nodeId:e.slice(0,o),part:t}:null}var Nfe="data-sf-hero-part";import{jsx as pe,jsxs as Wr,Fragment as rT}from"react/jsx-runtime";import{useState as w8}from"react";import{useEasel as k8,useRootFields as v8}from"efficient-easel/easel";import{Button as T8,EmptyState as P8}from"efficient-shell/ui";function Qw({kind:e,pageName:o}){return{name:o?.trim()||i("This page"),kindLabel:Nn({kind:e})?i("Template"):i("Page")}}import{headWords as lT,InspectorHead as E8,InspectorIconButton as aT}from"efficient-easel/chrome";import{DuplicateIcon as O8,TrashIcon as _8}from"efficient-easel/icons";import{panelFieldsOf as F8}from"efficient-easel/screen/lib/document/panel-fields";import{jsx as L,Fragment as ae,jsxs as le}from"react/jsx-runtime";import{BlockBannerIcon as q6,BlockBoxIcon as V6,BlockButtonIcon as Y6,BlockDividerIcon as ok,BlockFooterIcon as tk,BlockHeadingIcon as X6,BlockProductIcon as Z6,BlockSocialIcon as J6,BlockTextIcon as Q6,CardPaymentIcon as eW,ChatIcon as oW,AccountIcon as tW,GlobeIcon as rW,GridIcon as aW,ImageIcon as Np,MapIcon as nW,MediaIcon as sW,PageIcon as lW}from"efficient-easel/icons";import{jsx as Dp,Fragment as j6,jsxs as K6}from"react/jsx-runtime";var ek=K6(j6,{children:[Dp("circle",{cx:"9",cy:"20",r:"1.3"}),Dp("circle",{cx:"18",cy:"20",r:"1.3"}),Dp("path",{d:"M2.5 3.5h3l2.3 11.3a1.6 1.6 0 0 0 1.6 1.3h8.1a1.6 1.6 0 0 0 1.6-1.2L21 7H6"})]});var iW={header:le(ae,{children:[L("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),L("path",{d:"M3 9.5h18"})]}),social:le(ae,{children:[L("circle",{cx:"6",cy:"12",r:"2.5"}),L("circle",{cx:"18",cy:"6",r:"2.5"}),L("circle",{cx:"18",cy:"18",r:"2.5"}),L("path",{d:"M8.2 10.8l7.6-3.6M8.2 13.2l7.6 3.6"})]}),ticker:le(ae,{children:[L("rect",{x:"3",y:"8.5",width:"18",height:"7",rx:"2"}),L("path",{d:"M6 12h3.5M11.5 12h2M15.5 12h2.5"})]}),FooterLogo:le(ae,{children:[L("path",{d:"M4 15.5h6M4 18h4"}),L("path",{d:"M14 8.5l3 7 3-7"})]}),FooterMenu:L("path",{d:"M6 7h12M6 11h12M6 15h8M6 19h8"}),FooterGroup:le(ae,{children:[L("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",strokeDasharray:"3 2.5"}),L("path",{d:"M8 9h8M8 13h8M8 16h5"})]}),FooterText:L("path",{d:"M5 7h14M5 12h14M5 17h9"}),FooterEmailSignup:le(ae,{children:[L("rect",{x:"3",y:"6",width:"18",height:"12",rx:"2"}),L("path",{d:"M3.5 7l8.5 6 8.5-6"})]}),SearchBlock:le(ae,{children:[L("circle",{cx:"11",cy:"11",r:"6"}),L("path",{d:"M20 20l-4.2-4.2"})]}),CartBlock:ek,CountrySwitchBlock:le(ae,{children:[L("circle",{cx:"12",cy:"12",r:"8.5"}),L("path",{d:"M3.5 12h17M12 3.5c2.6 2.4 3.6 5.2 3.6 8.5s-1 6.1-3.6 8.5M12 3.5c-2.6 2.4-3.6 5.2-3.6 8.5s1 6.1 3.6 8.5"})]}),ThemeSwitchBlock:le(ae,{children:[L("circle",{cx:"12",cy:"12",r:"8.5"}),L("path",{d:"M12 3.5v17M12 5.5l6 6M12 10.5l5.2 5.2M12 15.5l2.8 2.8"})]}),LegalLineBlock:le(ae,{children:[L("path",{d:"M3 9h18"}),L("path",{d:"M3 14h8M14 14h2M18 14h3"})]}),Hero:le(ae,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M7 13.5h7M7 16.5h10"})]}),HeroSlide:le(ae,{children:[L("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),L("path",{d:"M7 15h6M16 9.5h.01M9.5 12l-2.5 3"})]}),HeroSingle:le(ae,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M10.5 8.5l4 2.5-4 2.5z"}),L("path",{d:"M7 17h7"})]}),Collections:le(ae,{children:[L("rect",{x:"3",y:"5",width:"4.6",height:"14",rx:"1.3"}),L("rect",{x:"9.7",y:"5",width:"4.6",height:"14",rx:"1.3"}),L("rect",{x:"16.4",y:"5",width:"4.6",height:"14",rx:"1.3"})]}),CollectionCard:le(ae,{children:[L("rect",{x:"6",y:"4",width:"12",height:"16",rx:"2"}),L("path",{d:"M9 15h6M9 17.5h4"})]}),AlloyWheelsListing:le(ae,{children:[L("path",{d:"M3 5h5M3 9h5M3 13h5M3 17h5"}),L("rect",{x:"11.5",y:"5",width:"4.2",height:"5",rx:"1"}),L("rect",{x:"17.3",y:"5",width:"4.2",height:"5",rx:"1"}),L("rect",{x:"11.5",y:"12",width:"4.2",height:"5",rx:"1"}),L("rect",{x:"17.3",y:"12",width:"4.2",height:"5",rx:"1"})]}),CatalogFilterBar:le(ae,{children:[L("path",{d:"M3 7h9M15.5 7H21"}),L("circle",{cx:"13.5",cy:"7",r:"1.7"}),L("path",{d:"M3 12h4M10.5 12H21"}),L("circle",{cx:"8.5",cy:"12",r:"1.7"}),L("path",{d:"M3 17h9M15.5 17H21"}),L("circle",{cx:"13.5",cy:"17",r:"1.7"})]}),ProductGrid:le(ae,{children:[L("rect",{x:"3",y:"5",width:"4.8",height:"6",rx:"1"}),L("rect",{x:"9.6",y:"5",width:"4.8",height:"6",rx:"1"}),L("rect",{x:"16.2",y:"5",width:"4.8",height:"6",rx:"1"}),L("rect",{x:"3",y:"13",width:"4.8",height:"6",rx:"1"}),L("rect",{x:"9.6",y:"13",width:"4.8",height:"6",rx:"1"}),L("rect",{x:"16.2",y:"13",width:"4.8",height:"6",rx:"1"})]}),RelatedProducts:le(ae,{children:[L("path",{d:"M3 5h10"}),L("rect",{x:"3",y:"9.5",width:"5",height:"9",rx:"1"}),L("rect",{x:"9.5",y:"9.5",width:"5",height:"9",rx:"1"}),L("rect",{x:"16",y:"9.5",width:"5",height:"9",rx:"1"})]}),Gallery:le(ae,{children:[L("rect",{x:"3",y:"4",width:"11",height:"16",rx:"2"}),L("rect",{x:"15.5",y:"4",width:"5.5",height:"7.5",rx:"1.5"}),L("rect",{x:"15.5",y:"12.5",width:"5.5",height:"7.5",rx:"1.5"})]}),GalleryB:le(ae,{children:[L("rect",{x:"3.5",y:"4",width:"7.5",height:"7.5",rx:"1.5"}),L("rect",{x:"13",y:"4",width:"7.5",height:"7.5",rx:"1.5"}),L("rect",{x:"3.5",y:"12.5",width:"7.5",height:"7.5",rx:"1.5"}),L("rect",{x:"13",y:"12.5",width:"7.5",height:"7.5",rx:"1.5"})]}),GalleryItem:le(ae,{children:[L("rect",{x:"4",y:"5",width:"16",height:"14",rx:"2"}),L("circle",{cx:"9",cy:"10",r:"1.6"}),L("path",{d:"M20 15.5l-4.5-4L7 19"})]}),Events:le(ae,{children:[L("rect",{x:"4",y:"5",width:"16",height:"15",rx:"2"}),L("path",{d:"M4 9.5h16M8.5 3v4M15.5 3v4M8 14h2M14 14h2"})]}),PostCard:le(ae,{children:[L("rect",{x:"4",y:"3.5",width:"16",height:"17",rx:"2"}),L("rect",{x:"6.5",y:"6",width:"11",height:"6",rx:"1"}),L("path",{d:"M6.5 14.5h11M6.5 17.5h7"})]}),Manifesto:le(ae,{children:[L("path",{d:"M7 8h3.2v4c0 1.6-1 2.6-3 3.2"}),L("path",{d:"M14 8h3.2v4c0 1.6-1 2.6-3 3.2"})]}),Stats:le(ae,{children:[L("path",{d:"M3.5 20h17"}),L("path",{d:"M6 20v-7M11 20V7M16 20v-5M20.5 20v-9"})]}),Logos:le(ae,{children:[L("circle",{cx:"6",cy:"12",r:"2.6"}),L("rect",{x:"10",y:"9.4",width:"5.2",height:"5.2",rx:"1.2"}),L("path",{d:"M19 9.2l2.4 5h-4.8z"})]}),Ticker:le(ae,{children:[L("rect",{x:"3",y:"8.5",width:"18",height:"7",rx:"2"}),L("path",{d:"M6 12h3.5M11.5 12h2M15.5 12h2.5"})]}),SectionHeader:le(ae,{children:[L("rect",{x:"3.5",y:"6",width:"5",height:"5",rx:"1.2"}),L("path",{d:"M11 8.5h9M3.5 15.5h17"})]}),IntroBleed:le(ae,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M3 13.5h18M7 16.8h6"})]}),Split:le(ae,{children:[L("rect",{x:"3",y:"5",width:"8",height:"14",rx:"1.5"}),L("path",{d:"M14 8.5h6M14 12h6M14 15.5h4"})]}),Eyebrow:le(ae,{children:[L("path",{d:"M4 8.5h4.5M11 8.5h9"}),L("path",{d:"M4 14.5h16"})]}),HeroGroup:le(ae,{children:[L("rect",{x:"3.5",y:"4.5",width:"17",height:"15",rx:"2"}),L("path",{d:"M7 9h8M7 12.5h10M7 16h6"})]}),Form:le(ae,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M6.5 9h11M6.5 12.5h11"}),L("rect",{x:"6.5",y:"15",width:"6.5",height:"2.6",rx:"1.3"})]}),LogoBlock:L(ae,{children:L("path",{d:"M12 3.5l7.5 3.2v5.1c0 4.2-3.2 7.1-7.5 8.7-4.3-1.6-7.5-4.5-7.5-8.7V6.7z"})}),Spacer:le(ae,{children:[L("path",{d:"M12 4v6M9.5 6.5L12 4l2.5 2.5M12 20v-6M9.5 17.5L12 20l2.5-2.5"}),L("path",{d:"M5 13h14",strokeDasharray:"2 2.5"})]}),ContactRouting:le(ae,{children:[L("rect",{x:"3",y:"4",width:"5",height:"5",rx:"1"}),L("rect",{x:"9.5",y:"4",width:"5",height:"5",rx:"1"}),L("rect",{x:"16",y:"4",width:"5",height:"5",rx:"1"}),L("path",{d:"M4 13.5h11M4 17.5h7"}),L("path",{d:"M17 15l3 2-3 2"})]}),Contents:le(ae,{children:[L("path",{d:"M4 7h2M4 12h2M4 17h2"}),L("path",{d:"M9 7h11M9 12h9M9 17h10"})]}),CustomHTML:L("path",{d:"M9 8l-4 4 4 4M15 8l4 4-4 4"})},cW=L("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2.5"}),dW={footer:tk,Footer:tk,Divider:ok,FooterDivider:ok,Banner:q6,Flex:V6,FooterSocial:J6,FooterPayment:eW,page:lW,website:rW,AccountBlock:tW,chat:oW,Heading:X6,Text:Q6,ImageBlock:Np,ButtonBlock:Y6,LocationMap:nW,Grid:aW,ProductRef:Z6,heroMedia:sW,heroImage:Np,heroImage2:Np},fW={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial",PaymentLogosBlock:"FooterPayment",SiteHeader:"header",SiteFooter:"footer"};function _r({type:e,size:o=16,className:t}){let r=fW[e]??e,a=dW[r];return a?L(a,{size:o,className:t}):L("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round",className:t,"aria-hidden":"true",children:iW[r]??cW})}import{PanelHideButton as nT}from"efficient-easel/screen/components/SidePanelHead";import{useEaselSession as A8}from"efficient-easel/screen/lib/session-context";import{jsx as ye,jsxs as Kn,Fragment as uW}from"react/jsx-runtime";import{useEffect as pW,useId as rk,useState as mW}from"react";import{IconPicker as hW}from"efficient-shell/ui";import{SettingsDefaultReset as xW,SettingsField as qn,SettingsSegmented as IW,SettingsSwitch as ak}from"efficient-easel/panel";import{ButtonIcon as gW,ButtonIconIcon as bW,EyeIcon as yW,PhoneIcon as SW,PlacementIcon as CW,TypeIcon as wW}from"efficient-easel/icons";var kW="Chat with us",vW="We usually reply within a few minutes",TW="Hi! Ask us anything \u2014 about a wheel, an order, or fitment. Leave your details and we\u2019ll reply.";function rc({label:e,value:o,placeholder:t,onCommit:r,multiline:a=!1,hint:n}){let[s,l]=mW(o);pW(()=>l(o),[o]);let c=()=>{s!==o&&r(s)};return ye(qn,{label:e,icon:ye(wW,{}),changed:o!=="",action:ye(Vn,{label:e,changed:o!=="",onReset:()=>r("")}),hint:n,children:a?ye("textarea",{value:s,placeholder:t,rows:3,onChange:d=>l(d.target.value),onBlur:c,"aria-label":e}):ye("input",{type:"text",value:s,placeholder:t,onChange:d=>l(d.target.value),onBlur:c,onKeyDown:d=>{d.key==="Enter"&&d.currentTarget.blur()},"aria-label":e,autoComplete:"off"})})}function Vn({label:e,changed:o,onReset:t}){return ye(xW,{words:Q()?.panel,label:e,changed:o,onReset:t})}function PW({label:e,icon:o,checked:t,fallback:r,onChange:a,hint:n}){let s=rk();return ye(qn,{label:e,labelId:s,icon:o,changed:t!==r,action:Kn("span",{className:"inline-flex items-center gap-2",children:[ye(ak,{checked:t,onChange:a,ariaLabelledBy:s}),ye(Vn,{label:e,changed:t!==r,onReset:()=>a(r)})]}),hint:n})}var EW=Zi.map(e=>({value:e,icon:ml(e)}));function OW(){let{theme:e}=se(),o=oo(e).themes[0];return an(o)??o?.accent??""}function nk(){let{chat:e,setChat:o}=ec(),t=rk(),r=OW(),a=e.launcherIcon?Ji(e.launcherIcon):Ra;return Kn(uW,{children:[ye(qn,{label:i("Show the chat bubble"),labelId:t,icon:ye(yW,{}),changed:!e.enabled,action:Kn("span",{className:"inline-flex items-center gap-2",children:[ye(ak,{checked:e.enabled,onChange:n=>o({enabled:n}),ariaLabelledBy:t}),ye(Vn,{label:i("Show the chat bubble"),changed:!e.enabled,onReset:()=>o({enabled:!0})})]}),hint:e.enabled?i("The floating chat bubble shows in the corner of every page."):i("The chat bubble is hidden across the whole site.")}),Kn(Fu,{title:i("Look"),children:[ye(ko,{label:i("Button color"),icon:ye(gW,{}),changed:e.launcherColor!=="",value:e.launcherColor,inherited:r,caption:e.launcherColor?void 0:i("Site button color"),onChange:n=>o({launcherColor:n}),onReset:()=>o({launcherColor:""})}),ye(qn,{label:i("Icon"),icon:ye(bW,{}),changed:a!==Ra,action:ye(Vn,{label:i("Icon"),changed:a!==Ra,onReset:()=>o({launcherIcon:""})}),children:ye(hW,{label:i("Icon"),value:a,options:EW,onChange:n=>o({launcherIcon:n===Ra?"":n})})}),ye(qn,{label:i("Position"),icon:ye(CW,{}),changed:e.launcherPosition!==Or,action:ye(Vn,{label:i("Position"),changed:e.launcherPosition!==Or,onReset:()=>o({launcherPosition:Or})}),children:ye(IW,{options:[{label:i("Right"),id:"right"},{label:i("Left"),id:"left"}],value:e.launcherPosition,ariaLabel:i("Position"),onChange:n=>o({launcherPosition:n})})}),ye(rc,{label:i("Label"),value:e.launcherLabel,placeholder:i("Icon only"),onCommit:n=>o({launcherLabel:n}),hint:i("Shows when a visitor points at the button")}),ye(PW,{label:i("Show on phones"),icon:ye(SW,{}),checked:e.showOnPhones,fallback:Qi.showOnPhones,onChange:n=>o({showOnPhones:n})})]}),Kn(Fu,{title:i("Wording"),children:[ye(rc,{label:i("Title"),value:e.title,placeholder:kW,onCommit:n=>o({title:n})}),ye(rc,{label:i("Subtitle"),value:e.subtitle,placeholder:vW,onCommit:n=>o({subtitle:n})}),ye(rc,{label:i("Greeting message"),value:e.greeting,placeholder:TW,onCommit:n=>o({greeting:n}),multiline:!0}),ye("p",{className:"es-field-hint sf-hint-keep",children:i("Leave a field blank to use the built-in wording.")})]})]})}import{jsx as Fr,Fragment as nm,jsxs as dk}from"react/jsx-runtime";import{useEffect as nG,useId as ik,useState as ck}from"react";import{SettingsField as sG}from"efficient-easel/panel";import{jsx as XW}from"react/jsx-runtime";import{forwardRef as _W,createElement as Mp}from"react";var sk={outline:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},filled:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"}};var J=(e,o,t,r)=>{let a=_W(({color:n="currentColor",size:s=24,stroke:l=2,title:c,className:d,children:u,...h},p)=>Mp("svg",{ref:p,...sk[e],width:s,height:s,className:["tabler-icon",`tabler-icon-${o}`,d].filter(Boolean).join(" "),...e==="filled"?{fill:n}:{strokeWidth:l,stroke:n},...h},[c&&Mp("title",{key:"svg-title"},c),...r.map(([x,g])=>Mp(x,g)),...Array.isArray(u)?u:[u]]));return a.displayName=`${t}`,a};var FW=[["path",{d:"M7 10v4h3v7h4v-7h3l1 -4h-4v-2a1 1 0 0 1 1 -1h3v-4h-3a5 5 0 0 0 -5 5v2h-3",key:"svg-0"}]],Hp=J("outline","brand-facebook","BrandFacebook",FW);var AW=[["path",{d:"M3 7a4 4 0 0 1 4 -4h10a4 4 0 0 1 4 4v10a4 4 0 0 1 -4 4h-10a4 4 0 0 1 -4 -4l0 -10",key:"svg-0"}],["path",{d:"M8.5 12a3.5 3.5 0 1 0 7 0a3.5 3.5 0 0 0 -7 0",key:"svg-1"}],["path",{d:"M17 7v.01",key:"svg-2"}]],Wp=J("outline","brand-instagram","BrandInstagram",AW);var RW=[["path",{d:"M21 10.663c0 -4.224 -4.041 -7.663 -9 -7.663s-9 3.439 -9 7.663c0 3.783 3.201 6.958 7.527 7.56c1.053 .239 .932 .644 .696 2.133c-.039 .238 -.184 .932 .777 .512c.96 -.42 5.18 -3.201 7.073 -5.48c1.304 -1.504 1.927 -3.029 1.927 -4.715v-.01",key:"svg-0"}]],Gp=J("outline","brand-line","BrandLine",RW);var LW=[["path",{d:"M8 11v5",key:"svg-0"}],["path",{d:"M8 8v.01",key:"svg-1"}],["path",{d:"M12 16v-5",key:"svg-2"}],["path",{d:"M16 16v-3a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M3 7a4 4 0 0 1 4 -4h10a4 4 0 0 1 4 4v10a4 4 0 0 1 -4 4h-10a4 4 0 0 1 -4 -4l0 -10",key:"svg-4"}]],zp=J("outline","brand-linkedin","BrandLinkedin",LW);var BW=[["path",{d:"M8 20l4 -9",key:"svg-0"}],["path",{d:"M10.7 14c.437 1.263 1.43 2 2.55 2c2.071 0 3.75 -1.554 3.75 -4a5 5 0 1 0 -9.7 1.7",key:"svg-1"}],["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-2"}]],Up=J("outline","brand-pinterest","BrandPinterest",BW);var DW=[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]],$p=J("outline","brand-telegram","BrandTelegram",DW);var NW=[["path",{d:"M21 7.917v4.034a9.948 9.948 0 0 1 -5 -1.951v4.5a6.5 6.5 0 1 1 -8 -6.326v4.326a2.5 2.5 0 1 0 4 2v-11.5h4.083a6.005 6.005 0 0 0 4.917 4.917",key:"svg-0"}]],jp=J("outline","brand-tiktok","BrandTiktok",NW);var MW=[["path",{d:"M16.5 10c3.038 0 5.5 2.015 5.5 4.5c0 1.397 -.778 2.645 -2 3.47l0 2.03l-1.964 -1.178a6.649 6.649 0 0 1 -1.536 .178c-3.038 0 -5.5 -2.015 -5.5 -4.5s2.462 -4.5 5.5 -4.5",key:"svg-0"}],["path",{d:"M11.197 15.698c-.69 .196 -1.43 .302 -2.197 .302a8.008 8.008 0 0 1 -2.612 -.432l-2.388 1.432v-2.801c-1.237 -1.082 -2 -2.564 -2 -4.199c0 -3.314 3.134 -6 7 -6c3.782 0 6.863 2.57 7 5.785l0 .233",key:"svg-1"}],["path",{d:"M10 8h.01",key:"svg-2"}],["path",{d:"M7 8h.01",key:"svg-3"}],["path",{d:"M15 14h.01",key:"svg-4"}],["path",{d:"M18 14h.01",key:"svg-5"}]],Kp=J("outline","brand-wechat","BrandWechat",MW);var HW=[["path",{d:"M3 21l1.65 -3.8a9 9 0 1 1 3.4 2.9l-5.05 .9",key:"svg-0"}],["path",{d:"M9 10a.5 .5 0 0 0 1 0v-1a.5 .5 0 0 0 -1 0v1a5 5 0 0 0 5 5h1a.5 .5 0 0 0 0 -1h-1a.5 .5 0 0 0 0 1",key:"svg-1"}]],qp=J("outline","brand-whatsapp","BrandWhatsapp",HW);var WW=[["path",{d:"M4 4l11.733 16h4.267l-11.733 -16l-4.267 0",key:"svg-0"}],["path",{d:"M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772",key:"svg-1"}]],Vp=J("outline","brand-x","BrandX",WW);var GW=[["path",{d:"M2 8a4 4 0 0 1 4 -4h12a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-8",key:"svg-0"}],["path",{d:"M10 9l5 3l-5 3l0 -6",key:"svg-1"}]],Yp=J("outline","brand-youtube","BrandYoutube",GW);var zW=[["path",{d:"M18 2a1 1 0 0 1 .993 .883l.007 .117v4a1 1 0 0 1 -.883 .993l-.117 .007h-3v1h3a1 1 0 0 1 .991 1.131l-.02 .112l-1 4a1 1 0 0 1 -.858 .75l-.113 .007h-2v6a1 1 0 0 1 -.883 .993l-.117 .007h-4a1 1 0 0 1 -.993 -.883l-.007 -.117v-6h-2a1 1 0 0 1 -.993 -.883l-.007 -.117v-4a1 1 0 0 1 .883 -.993l.117 -.007h2v-1a6 6 0 0 1 5.775 -5.996l.225 -.004h3z",key:"svg-0"}]],Xp=J("filled","brand-facebook-filled","BrandFacebookFilled",zW);var UW=[["path",{d:"M16 3a5 5 0 0 1 5 5v8a5 5 0 0 1 -5 5h-8a5 5 0 0 1 -5 -5v-8a5 5 0 0 1 5 -5zm-4 5a4 4 0 0 0 -3.995 3.8l-.005 .2a4 4 0 1 0 4 -4m4.5 -1.5a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1",key:"svg-0"}]],Zp=J("filled","brand-instagram-filled","BrandInstagramFilled",UW);var $W=[["path",{d:"M17 2a5 5 0 0 1 5 5v10a5 5 0 0 1 -5 5h-10a5 5 0 0 1 -5 -5v-10a5 5 0 0 1 5 -5zm-9 8a1 1 0 0 0 -1 1v5a1 1 0 0 0 2 0v-5a1 1 0 0 0 -1 -1m6 0a3 3 0 0 0 -1.168 .236l-.125 .057a1 1 0 0 0 -1.707 .707v5a1 1 0 0 0 2 0v-3a1 1 0 0 1 2 0v3a1 1 0 0 0 2 0v-3a3 3 0 0 0 -3 -3m-6 -3a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1",key:"svg-0"}]],Jp=J("filled","brand-linkedin-filled","BrandLinkedinFilled",$W);var jW=[["path",{d:"M17 3.34a10 10 0 0 1 -8.512 18.023l2.364 -5.315a3.5 3.5 0 0 0 2.398 .952c2.708 0 4.75 -2.089 4.75 -5a6 6 0 1 0 -11.64 2.041a1 1 0 1 0 1.88 -.682a4 4 0 1 1 7.76 -1.36c0 1.818 -1.156 3.001 -2.75 3.001c-.609 0 -1.153 -.361 -1.478 -1.022l1.142 -2.572a1 1 0 0 0 -1.828 -.812l-4.392 9.882a10 10 0 0 1 -4.694 -8.476l.005 -.324a10 10 0 0 1 14.995 -8.336",key:"svg-0"}]],Qp=J("filled","brand-pinterest-filled","BrandPinterestFilled",jW);var KW=[["path",{d:"M16.083 2h-4.083a1 1 0 0 0 -1 1v11.5a1.5 1.5 0 1 1 -2.519 -1.1l.12 -.1a1 1 0 0 0 .399 -.8v-4.326a1 1 0 0 0 -1.23 -.974a7.5 7.5 0 0 0 1.73 14.8l.243 -.005a7.5 7.5 0 0 0 7.257 -7.495v-2.7l.311 .153c1.122 .53 2.333 .868 3.59 .993a1 1 0 0 0 1.099 -.996v-4.033a1 1 0 0 0 -.834 -.986a5.005 5.005 0 0 1 -4.097 -4.096a1 1 0 0 0 -.986 -.835z",key:"svg-0"}]],em=J("filled","brand-tiktok-filled","BrandTiktokFilled",KW);var qW=[["path",{d:"M18.497 4.409a10 10 0 0 1 -10.36 16.828l-.223 -.098l-4.759 .849l-.11 .011a1 1 0 0 1 -.11 0l-.102 -.013l-.108 -.024l-.105 -.037l-.099 -.047l-.093 -.058l-.014 -.011l-.012 -.007l-.086 -.073l-.077 -.08l-.067 -.088l-.056 -.094l-.034 -.07l-.04 -.108l-.028 -.128l-.012 -.102a1 1 0 0 1 0 -.125l.012 -.1l.024 -.11l.045 -.122l1.433 -3.304l-.009 -.014a10 10 0 0 1 1.549 -12.454l.215 -.203a10 10 0 0 1 13.226 -.217m-8.997 3.09a1.5 1.5 0 0 0 -1.5 1.5v1a6 6 0 0 0 6 6h1a1.5 1.5 0 0 0 0 -3h-1l-.144 .007a1.5 1.5 0 0 0 -1.128 .697l-.042 .074l-.022 -.007a4.01 4.01 0 0 1 -2.435 -2.435l-.008 -.023l.075 -.041a1.5 1.5 0 0 0 .704 -1.272v-1a1.5 1.5 0 0 0 -1.5 -1.5",key:"svg-0"}]],om=J("filled","brand-whatsapp-filled","BrandWhatsappFilled",qW);var VW=[["path",{d:"M8.267 3a1 1 0 0 1 .73 .317l.076 .092l4.274 5.828l5.946 -5.944a1 1 0 0 1 1.497 1.32l-.083 .094l-6.163 6.162l6.262 8.54a1 1 0 0 1 -.697 1.585l-.109 .006h-4.267a1 1 0 0 1 -.73 -.317l-.076 -.092l-4.276 -5.829l-5.944 5.945a1 1 0 0 1 -1.497 -1.32l.083 -.094l6.161 -6.163l-6.26 -8.539a1 1 0 0 1 .697 -1.585l.109 -.006h4.267z",key:"svg-0"}]],tm=J("filled","brand-x-filled","BrandXFilled",VW);var YW=[["path",{d:"M18 3a5 5 0 0 1 5 5v8a5 5 0 0 1 -5 5h-12a5 5 0 0 1 -5 -5v-8a5 5 0 0 1 5 -5zm-9 6v6a1 1 0 0 0 1.514 .857l5 -3a1 1 0 0 0 0 -1.714l-5 -3a1 1 0 0 0 -1.514 .857z",key:"svg-0"}]],rm=J("filled","brand-youtube-filled","BrandYoutubeFilled",YW);var bpe="outline",ac={fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ZW={},am={fillRule:"evenodd"},JW=[["path",{...ac,d:"M21 4L3 11L7 13L9 19L12 15L17 20z"}],["path",{...am,d:"M21 4L3 11L7 13L9 19L12 15L17 20zM15.212 8.939 10.576 13.576 11.424 14.424 16.061 9.788z"}]],QW=[["path",{...ac,d:["M21 10.663c0 -4.224 -4.041 -7.663 -9 -7.663s-9 3.439 -9 7.663","c0 3.783 3.201 6.958 7.527 7.56c1.053 .239 .932 .644 .696 2.133","c-.039 .238 -.184 .932 .777 .512c.96 -.42 5.18 -3.201 7.073 -5.48","c1.304 -1.504 1.927 -3.029 1.927 -4.715v-.01z"].join("")}],["path",{...ZW,d:["M21 10.663c0 -4.224 -4.041 -7.663 -9 -7.663s-9 3.439 -9 7.663","c0 3.783 3.201 6.958 7.527 7.56c1.053 .239 .932 .644 .696 2.133","c-.039 .238 -.184 .932 .777 .512c.96 -.42 5.18 -3.201 7.073 -5.48","c1.304 -1.504 1.927 -3.029 1.927 -4.715v-.01z"].join("")}]],eG=[["path",{...ac,d:["M16.5 10c3.038 0 5.5 2.015 5.5 4.5c0 1.397 -.778 2.645 -2 3.47l0 2.03l-1.964 -1.178","a6.649 6.649 0 0 1 -1.536 .178c-3.038 0 -5.5 -2.015 -5.5 -4.5s2.462 -4.5 5.5 -4.5z"].join("")}],["path",{...ac,d:["M8.319 15.972L7.84 15.918L7.349 15.832L6.865 15.715L6.388 15.568L4 17L4 14.199","L3.559 13.775L3.197 13.356L2.877 12.91L2.603 12.439L2.376 11.946L2.201 11.433","L2.079 10.902L2.016 10.405L2.001 9.897L2.036 9.386L2.12 8.889L2.25 8.405L2.425 7.937","L2.642 7.486L2.9 7.055L3.195 6.645L3.459 6.333L3.744 6.037L4.05 5.757L4.377 5.495","L4.723 5.25L5.086 5.025L5.467 4.819L5.864 4.634L6.275 4.471L6.701 4.331L7.139 4.214","L7.589 4.122L8.05 4.055L8.521 4.014L9.352 4.007L9.815 4.04L10.269 4.098L10.713 4.181","L11.146 4.287L11.567 4.416L11.975 4.567L12.369 4.739L12.748 4.932L13.112 5.143","L13.459 5.374L13.788 5.622L14.172 5.956L14.458 6.241L14.722 6.542L14.965 6.856","L15.217 7.237A8.35 7.35 0 0 0 8.319 15.972z"].join("")}],["path",{...am,d:["M8.319 15.972L7.84 15.918L7.349 15.832L6.865 15.715L6.388 15.568L4 17L4 14.199","L3.559 13.775L3.197 13.356L2.877 12.91L2.603 12.439L2.376 11.946L2.201 11.433","L2.079 10.902L2.016 10.405L2.001 9.897L2.036 9.386L2.12 8.889L2.25 8.405L2.425 7.937","L2.642 7.486L2.9 7.055L3.195 6.645L3.459 6.333L3.744 6.037L4.05 5.757L4.377 5.495","L4.723 5.25L5.086 5.025L5.467 4.819L5.864 4.634L6.275 4.471L6.701 4.331L7.139 4.214","L7.589 4.122L8.05 4.055L8.521 4.014L9.352 4.007L9.815 4.04L10.269 4.098L10.713 4.181","L11.146 4.287L11.567 4.416L11.975 4.567L12.369 4.739L12.748 4.932L13.112 5.143","L13.459 5.374L13.788 5.622L14.172 5.956L14.458 6.241L14.722 6.542L14.965 6.856","L15.217 7.237A8.35 7.35 0 0 0 8.319 15.972zM5.25 7.9a0.85 0.85 0 1 0 1.7 0","a0.85 0.85 0 1 0 -1.7 0zM8.25 7.9a0.85 0.85 0 1 0 1.7 0a0.85 0.85 0 1 0 -1.7 0z"].join("")}],["path",{...am,d:["M16.5 10c3.038 0 5.5 2.015 5.5 4.5c0 1.397 -.778 2.645 -2 3.47l0 2.03l-1.964 -1.178","a6.649 6.649 0 0 1 -1.536 .178c-3.038 0 -5.5 -2.015 -5.5 -4.5s2.462 -4.5 5.5 -4.5z","M14.15 14a0.85 0.85 0 1 0 1.7 0a0.85 0.85 0 1 0 -1.7 0zM17.15 14","a0.85 0.85 0 1 0 1.7 0a0.85 0.85 0 1 0 -1.7 0z"].join("")}]],oG=J("filled","brand-telegram-filled","BrandTelegramFilled",JW),tG=J("filled","brand-line-filled","BrandLineFilled",QW),rG=J("filled","brand-wechat-filled","BrandWechatFilled",eG),aG={instagram:{outline:Wp,solid:Zp},facebook:{outline:Hp,solid:Xp},tiktok:{outline:jp,solid:em},youtube:{outline:Yp,solid:rm},x:{outline:Vp,solid:tm},linkedin:{outline:zp,solid:Jp},pinterest:{outline:Up,solid:Qp},whatsapp:{outline:qp,solid:om},telegram:{outline:$p,solid:oG},line:{outline:Gp,solid:tG},wechat:{outline:Kp,solid:rG}};function lk({platform:e,iconStyle:o,size:t}){let r=aG[e][o];return XW(r,{size:t,stroke:1.75,"aria-hidden":"true",focusable:"false"})}var lG={instagram:"instagram.com/yourshop",facebook:"facebook.com/yourshop",tiktok:"tiktok.com/@yourshop",youtube:"youtube.com/@yourshop",x:"x.com/yourshop",linkedin:"linkedin.com/company/yourshop",pinterest:"pinterest.com/yourshop",whatsapp:"wa.me/61400000000",telegram:"t.me/yourshop",line:"line.me/ti/p/~yourshop",wechat:"u.wechat.com/your-qr-code-link"};function iG({platform:e}){let{rows:o,saveLink:t}=Gn(),{value:r,error:a}=o[e],[n,s]=ck(r),[l,c]=ck(!1),d=ik(),u=ik();nG(()=>s(r),[r]);let h=async()=>{if(n.trim()===r){n!==r&&s(r);return}c(!0),await t(e,n),c(!1)},p=gI[e];return dk(nm,{children:[Fr(sG,{label:i(p),htmlFor:d,icon:Fr(lk,{platform:e,iconStyle:"outline",size:18}),children:Fr("input",{id:d,type:"text",inputMode:"url",value:n,placeholder:lG[e],onChange:x=>s(x.target.value),onBlur:()=>{h()},onKeyDown:x=>{x.key==="Enter"&&x.currentTarget.blur(),x.key==="Escape"&&(s(r),x.currentTarget.blur())},"aria-invalid":a?!0:void 0,"aria-describedby":a?u:void 0,"aria-busy":l||void 0,autoComplete:"off",spellCheck:!1})}),a&&Fr("p",{id:u,className:"sf-note sf-note--error",role:"alert",children:a})]})}function fk({unavailable:e}){let{canSave:o}=Gn();return!o&&e?Fr(nm,{children:e}):dk(nm,{children:[Fr("p",{className:"es-field-hint sf-hint-keep",children:i("Paste a link to each profile. A platform left empty shows nothing on the site.")}),rl.map(t=>Fr(iG,{platform:t},t))]})}import{jsx as Lr,Fragment as Gz,jsxs as zz}from"react/jsx-runtime";import{useId as Uz,useMemo as $z}from"react";import{useEasel as jz}from"efficient-easel/easel";import{SettingsField as Kz,SettingsSwitch as qz}from"efficient-easel/panel";import{EyeIcon as Vz}from"efficient-easel/icons";import{fieldShownInView as Yz}from"efficient-easel/fields";import{usePreviewDevice as Xz}from"efficient-easel/draw/client";var uk=["","","","","",""],pk="#ticker";import{jsx as Rr,Fragment as cz,jsxs as dz}from"react/jsx-runtime";import{createContext as fz,useContext as uz,useLayoutEffect as Yk,useMemo as mc,useRef as Xk,useState as gm}from"react";import{useEasel as Zk,useSelectedFields as pz}from"efficient-easel/easel";import{fieldShownInView as mz,Inspector as hz,planFields as bm}from"efficient-easel/fields";function mk({allTabs:e,remembered:o,inherited:t,buckets:r,hasText:a}){return o&&(e||r.includes(o))?o:t&&r.includes(t)?t:a?"Design":r[0]??"Design"}import{group as YG}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as XG,deviceMetaOf as Dk}from"efficient-easel/screen/lib/document/device-fields";import{jsx as X,jsxs as yt}from"react/jsx-runtime";import{phoneKey as jt}from"efficient-easel/draw";import{SettingsDefaultReset as bG,SettingsField as Ek}from"efficient-easel/panel";import{AnimationIcon as Ok,ClockIcon as yG,DirectionDownIcon as SG,DirectionIcon as CG,DirectionLeftIcon as wG,DirectionRightIcon as kG,DirectionUpIcon as vG,DurationIcon as TG}from"efficient-easel/icons";import{deviceField as Ba}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as PG,noControlField as EG}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{describedAs as _k,group as OG,phoneTwinFields as _G}from"efficient-easel/screen/lib/document/box-fields";import{ENTRANCE_FROM as FG,ENTRANCE_FROM_DEFAULT as Fk,ENTRANCE_KINDS as fc,ENTRANCE_KINDS_WITH_FROM as vk,MOTION_TIMING as AG,entranceAttrs as RG,playEntrance as LG,readEntrance as BG}from"efficient-shell/format";import{IconPicker as DG}from"efficient-shell/ui";import{jsx as cm}from"react/jsx-runtime";import{ClockIcon as uG,DurationIcon as pG}from"efficient-easel/icons";import{MOTION_TIMING as yk}from"efficient-shell/format";import{useSelectedHost as mG}from"efficient-easel/easel";import{MOTION_EASING as cG,MOTION_TIMING as hk,motionSeconds as xk}from"efficient-shell/format";var sm="none",lm=[{label:"None",value:"none"},{label:"Scroll",value:"scroll"}];function Rpe(e){return io(lm,sm,e)}var nc={field:"loop",is:"scroll"},Yn="left",im=[{label:"Left",value:"left",cell:"left"},{label:"Right",value:"right",cell:"right"},{label:"Up",value:"up",cell:"top"},{label:"Down",value:"down",cell:"bottom"}],dG={left:"storefront-ticker",right:"storefront-ticker-right",up:"storefront-ticker-up",down:"storefront-ticker-down"};function Ik(e){return io(im,Yn,e)}function Lpe(e){return e==="up"||e==="down"}function gk(e){return xk("loop","duration",e.loopDuration!=null?e.loopDuration:e.speed)}var Bpe=hk.loop.duration.default,fG=hk.loop.delay.default;function bk(e){return xk("loop","delay",e.loopDelay)}function Dpe(e,o,t=fG){return`${dG[e]} ${o}s ${cG.loop}${t?` ${t}s`:""} infinite`}function dm(e){let{min:o,max:t,step:r,default:a}=yk[e].duration;return tt("Duration",cm(pG,{}),o,t,r,a,"s")}function fm(e){let{min:o,max:t,step:r,default:a}=yk[e].delay;return tt("Delay",cm(uG,{}),o,t,r,a,"s")}function Sk(e,o){let t=e.render,r=a=>{let n=mG();return t({...a,value:o(a.value,n?.values)})};return{...e,render:a=>cm(r,{...a})}}function sc({readsSpeed:e}){return Sk(dm("loop"),(o,t)=>gk({loopDuration:o,speed:e?t?.speed:void 0}))}function lc(){return Sk(fm("loop"),e=>bk({loopDelay:e}))}import{phoneKey as hG}from"efficient-easel/draw";import{readEntrance as xG}from"efficient-shell/format";var cc="sf-entrance",ve={kind:"entrance",from:"entranceFrom",duration:"entranceDuration",delay:"entranceDelay"},dc="sectionAnimation",Ck=e=>e!=null&&e!=="";function IG(e,o){let t=e[ve[o]];return o==="kind"&&!Ck(t)?e[dc]:t}function ic(e,o,t){if(t==="phone"){let r=e[hG(ve[o])];if(Ck(r))return r}return IG(e,o)}function Xn(e,o){return xG(ic(e,"kind",o),ic(e,"from",o),ic(e,"duration",o),ic(e,"delay",o))}function wk(e){let o=Xn(e,"desktop"),t=Xn(e,"phone");return o.kind==="none"&&t.kind==="none"?null:{desktop:o,phone:t}}var gG={...Object.fromEntries([...wb].map(e=>[e,"a root position: sticky bar; an outer box becomes its sticky containing block and the pin collapses (the same fact every wrapper pass excludes it for, lib/content/section-surface)"])),HeroSlide:"a slide is a direct child of the Hero's transform track ([&>*]:basis-full); a wrapper would take its width, and the Hero already moves one slide in at a time",HeroGroup:"a slide box is placed by grid-item properties on its own root (--sf-hg-row, justify-self); a wrapper becomes the grid item and the box loses its anchor (lib/document/blocks/general/HeroGroup/meta)"},Vpe=new Set(Object.keys(gG));var kk="_gEntrance";var Zn={none:"None",fade:"Fade",rise:"Rise",scale:"Scale",glide:"Glide",bounce:"Bounce",flip:"Flip",reveal:"Reveal",spin:"Spin"},NG={top:"Top",bottom:"Bottom",left:"Left",right:"Right"},MG={top:()=>X(SG,{}),bottom:()=>X(vG,{}),left:()=>X(kG,{}),right:()=>X(wG,{})},mm="Entrance",Tk=fc.filter(e=>e!=="none"),um=e=>({any:[{field:ve.kind,in:e},{all:[{field:ve.kind,set:!1},{field:dc,in:e}]}]}),Pk=e=>({any:[{field:jt(ve.kind),in:e},{all:[{field:jt(ve.kind),set:!1},um(e)]}]}),HG=[[[ve.from],um(vk)],[[jt(ve.from)],Pk(vk)],[[ve.duration,ve.delay],um(Tk)],[[jt(ve.duration),jt(ve.delay)],Pk(Tk)]],bt=({children:e})=>X("svg",{viewBox:"0 0 40 40",width:"40",height:"40",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:e}),$o=({x:e=12,y:o=12,o:t=1})=>X("rect",{x:e,y:o,width:"16",height:"16",rx:"2",opacity:t}),WG={none:X(bt,{children:X($o,{})}),fade:yt(bt,{children:[X($o,{x:6,o:.3}),X($o,{x:18})]}),rise:yt(bt,{children:[X($o,{y:20,o:.3}),X($o,{y:8}),X("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),scale:yt(bt,{children:[X("rect",{x:"16",y:"16",width:"8",height:"8",rx:"1",opacity:".35"}),X($o,{}),X("path",{d:"M6 6l4 4M34 34l-4-4"})]}),glide:yt(bt,{children:[X($o,{x:2,o:.3}),X($o,{x:20}),X("path",{d:"M4 33h12m-2-2 2 2-2 2"})]}),bounce:yt(bt,{children:[X($o,{y:6}),X("path",{d:"M8 34c3-6 5-6 8 0s5 6 8 0 5-6 8 0"})]}),flip:yt(bt,{children:[X("path",{d:"M12 12l16 4v8l-16 4z",opacity:".35"}),X($o,{}),X("path",{d:"M20 4v32",strokeDasharray:"2 2"})]}),reveal:yt(bt,{children:[X("rect",{x:"12",y:"12",width:"16",height:"16",rx:"2",strokeDasharray:"2 2",opacity:".5"}),X("path",{d:"M12 22h16v4a2 2 0 0 1-2 2H14a2 2 0 0 1-2-2z",fill:"currentColor",opacity:".35"}),X("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),spin:yt(bt,{children:[X($o,{}),X("path",{d:"M33 14a14 14 0 0 1 0 12m0 0-3-1m3 1 1-3"})]})};function GG({kind:e}){let{attrs:o}=RG(BG(e,Fk));return yt("span",{className:"sf-entrance-pic",children:[X("span",{className:"sf-entrance-stage",children:X("i",{...o,children:WG[e]})}),X("span",{className:"sf-entrance-cap",children:i(Zn[e])})]})}var zG=(e,o)=>{let t=o.querySelector(".sf-entrance-stage > i");t&&LG(t)},UG={width:"3.5rem",height:"4.25rem"};function Ak({value:e,onChange:o}){return X(DG,{label:i(mm),value:e,emptyValue:"none",columns:3,cell:UG,onChange:o,onPreview:zG,tooltips:!1,options:fc.map(t=>({value:t,label:i(Zn[t]),icon:X(GG,{kind:t})}))})}var pm="Effect",Rk=e=>e==="none"?void 0:i(Zn[e]);function $G({value:e,onChange:o}){let t=It(),r=Xn({...t,[ve.kind]:e},"desktop").kind;return X(Ek,{label:i(pm),icon:X(Ok,{}),value:Rk(r),children:X(Ak,{value:r,onChange:o})})}function jG({value:e,onChange:o}){let t=It(),r=typeof e=="string"&&fc.includes(e),a=Xn(t,"desktop").kind;return X(Ek,{label:i(pm),icon:X(Ok,{}),value:Rk(r?e:a),changed:r,action:X(bG,{words:Q()?.panel,label:i(pm),changed:r,detail:i("{value} on desktop",{value:i(Zn[a])}),onReset:()=>o(void 0)}),children:X(Ak,{value:r?e:a,onChange:o})})}var Lk={type:"select",label:mm,options:fc.map(e=>({value:e,label:Zn[e]}))},KG=()=>_k({type:"custom",render:({value:e,onChange:o})=>X($G,{value:e,onChange:o})},Lk),qG=()=>_k({type:"custom",render:({value:e,onChange:o})=>X(jG,{value:e,onChange:o})},Lk),VG=FG.map(e=>({label:NG[e],value:e,picture:MG[e]()}));function St(){let{duration:e,delay:o}=AG.entrance,t={[kk]:OG(mm),[ve.kind]:Ba("desktop",KG()),[dc]:EG({type:"custom",render:()=>X(PG,{})},"always"),[jt(ve.kind)]:Ba("mobile",qG()),..._G(ve.from,ga("From",X(CG,{}),VG,Fk)),[ve.duration]:Ba("desktop",dm("entrance")),[jt(ve.duration)]:Ba("mobile",hi({label:"Duration",desktopKey:ve.duration,icon:X(TG,{}),min:e.min,max:e.max,step:e.step,fallback:e.default,unit:"s"})),[ve.delay]:Ba("desktop",fm("entrance")),[jt(ve.delay)]:Ba("mobile",hi({label:"Delay",desktopKey:ve.delay,icon:X(yG,{}),min:o.min,max:o.max,step:o.step,fallback:o.default,unit:"s"}))};return If(t,HG)}import{DESIGN_GROUPS as xm,SETTINGS_BUCKETS as ZG}from"efficient-easel/panel";import{BUCKET_KEY as yo,DESIGN_GROUP_KEY as Jn}from"efficient-easel/screen/lib/document/field-buckets";var Qn=ZG;var JG="Editor only \u2014 not shown live",Im={"Archive link":"Content",Article:"Content",Blocks:"Content","Blog posts":"Content","Browser mock":"Content",Button:"Content","Call to action":"Content","Car prompt":"Content","Card link":"Content",Cards:"Content","Claims bars":"Content","Contact info":"Content",Content:"Content",Display:"Content","Content source":"Content",Contents:"Content",Filters:"Content","Show on a card":"Content",Footnote:"Content",Form:"Content",Founders:"Content","Gallery A":"Content","Gallery B":"Content","Gallery link":"Content",Header:"Content","Header link":"Content","Image caption":"Content","In this issue":"Content",Items:"Content","Kanban columns":"Content",Lead:"Content","Left panel":"Content",Link:"Content",Links:"Content",List:"Content","Message form":"Content",Metadata:"Content",Milestones:"Content","Mockup card":"Content","Newsletter panel":"Content",Offices:"Content",Options:"Content","Others gallery":"Content","Overlay button":"Content",Product:"Content","Product page":"Content",Products:"Content","Pull quote":"Content",Questions:"Content","Recent issues":"Content","Recent posts":"Content",Reviews:"Content","Right panel \xB7 actions":"Content","Right panel \xB7 choices":"Content","Right panel \xB7 form":"Content","Routing groups":"Content",Rows:"Content",Search:"Content",Section:"Content","Section header":"Content",Sections:"Content","Signup form":"Content","Source product":"Content","Stat & note":"Content",Stats:"Content","Submit button":"Content","Success state":"Content",Wheel:"Content",Terminal:"Content",Text:"Content","Text column":"Content","Timeline entries":"Content","Top row":"Content",Total:"Content","Trailing note":"Content","\u201COther\u201D reason":"Content","Background images":"Design",Gallery:"Content",Image:"Content","Image column":"Content",Images:"Content",Logo:"Content",Map:"Content",Media:"Content","Background image":"Design",Color:"Design","Image tint":"Design",Style:"Design",Shape:"Design",Shadow:"Design",Texture:"Design","Text style":"Design",Entrance:"Animation",Hover:"Animation",Anchor:"Anchor",Arrangement:"Layout","Auto-slide":"Layout",Bar:"Layout","Cell width":"Size",Behavior:"Layout",Schedule:"Layout",Controls:"Layout",Diagram:"Layout",[JG]:"Layout","Filters shown":"Layout","Slide picker":"Layout",Arrows:"Layout","On a phone":"Layout",Placement:"Position",Nudge:"Position","Stick to top":"Position","Image gallery":"Layout",Grid:"Layout",Layout:"Layout",Padding:"Layout",Price:"Layout",Preview:"Layout",Setup:"Layout","Show / hide elements":"Layout","Show in the buy box":"Layout",Visibility:"Layout",Width:"Size",Size:"Size",Height:"Size"},Nk={"AlloyWheelsListing._gCards":"Design","ProductGrid._gCards":"Design"},Mk={"Text._gSpacing":"Size","Heading._gSpacing":"Size"};function hm(e,o,t){let r=`${e}.${o}`;return Mk[r]??Nk[r]??Im[t]}function Hk(e){return e==="Animation"?[yo.Animation]:[yo.Design,Jn[e]]}function uc(...e){let o=[];for(let t of e)for(let r of Object.values(t)){let a=Dk(r),n=xt(a?a.inner:r),s=n?Im[n.label]:void 0;if(s)for(let l of Hk(s))o.includes(l)||o.push(l)}return o}var Cme=[...uc(ri({tablet:!0}),xi("full"),Ii(),gi(),Lu()),...Object.keys(ri({tablet:!0})),...Object.keys(xi("full")),...Object.keys(Ii()),...Object.keys(gi()),...Object.keys(Lu())],wme=[...uc(ui()),...Object.keys(ui())],kme=[...uc(mi()),...Object.keys(mi())],vme=[...uc(St()),...Object.keys(St())],QG=Object.keys(HS()),ez=new Set(["cardImage","imageBackground"]),Tme=[...Hk(hm("ProductGrid","_gCards","Cards")??"Design"),...QG.filter(e=>e.startsWith("_g")||ez.has(e))],Pme=Object.keys(WS()),Eme=Object.keys(GS()),oz={"ImageBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","ButtonBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","HeroGroup._gContent":"duplicated the Content bucket header above it (2026-09-04)","HeroGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","Footer._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterLogo._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterLogo._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterMenu._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterMenu._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterText._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterText._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterSocial._gStyle":"duplicated the Style bucket header above it (born tabbed, 2026-09-17)","FooterSocial._gLayout":"duplicated the Layout bucket header above it (born tabbed, 2026-09-17)","MenuBlock._gContent":"duplicated the Content bucket header above it (born tabbed, H.1)","MenuBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","SocialLogosBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","SocialLogosBlock._gLayout":"duplicated the Layout bucket header above it (born tabbed, H.1)","SearchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CartBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CountrySwitchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed with its Show as, 2026-10-17)","Split._gContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gVehicleContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gWheelContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gOthersContent":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gHeadCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gLeftCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gRightCopy":"duplicated the Content bucket header above it (2026-09-04)","CollectionCard._gContent":"duplicated the Content bucket header above it (A Card Sets Its Own Corners)","HeroSlide._gContent":"duplicated the Content bucket header above it (Hero Slide Tabs And Theme)","KeyFeatures._gContent":"duplicated the Content bucket header above it (66049)","KeyFeatures._gStyle":"duplicated the Style bucket header above it (66049)","ParagraphsA._gContent":"duplicated the Content bucket header above it (66049)","ParagraphsA._gStyle":"duplicated the Style bucket header above it (66049)","Chart._gContent":"duplicated the Content bucket header above it (66049)","Chart._gStyle":"duplicated the Style bucket header above it (66049)","Logos._gContent":"duplicated the Content bucket header above it (66049)","Logos._gStyle":"duplicated the Style bucket header above it (66049)","Mockup._gContent":"duplicated the Content bucket header above it (66049)","Mockup._gStyle":"duplicated the Style bucket header above it (66049)","Stats._gContent":"duplicated the Content bucket header above it (66049)","Stats._gStyle":"duplicated the Style bucket header above it (66049)","StatsParagraph._gContent":"duplicated the Content bucket header above it (66049)","StatsParagraph._gStyle":"duplicated the Style bucket header above it (66049)","Testimonials._gContent":"duplicated the Content bucket header above it (66049)","Testimonials._gStyle":"duplicated the Style bucket header above it (66049)","AppointmentBooking._gContent":"duplicated the Content bucket header above it (66050)","BookingBox._gContent":"duplicated the Content bucket header above it ([SPLIT] Booking Form Into Three Boxes) \u2014 the same fault its own section retired in 66050, one level down","FAQ._gContent":"duplicated the Content bucket header above it (66050, family sweep)","FAQ._gLayout":"duplicated the Layout bucket header above it (66050, family sweep)","Form._gContent":"duplicated the Content bucket header above it (66050)","ReviewForm._gContent":"duplicated the Content bucket header above it (66050)","SubmitBuild._gContent":"duplicated the Content bucket header above it (66050)","SubmitBox._gContent":"duplicated the Content bucket header above it ([SPLIT] SubmitBuild Keeps Its Two Columns) \u2014 the same fault its own section retired in 66050, one level down","CheckoutCTA._gContent":"duplicated the Content bucket header above it (66051)","CheckoutCTA._gLayout":"duplicated the Layout bucket header above it (66051)","DeliveryOptions._gContent":"duplicated the Content bucket header above it (66051)","DeliveryOptions._gLayout":"duplicated the Layout bucket header above it (66051)","OrderSummary._gContent":"duplicated the Content bucket header above it (66051)","OrderSummary._gLayout":"duplicated the Layout bucket header above it (66051)","PaymentBadges._gContent":"duplicated the Content bucket header above it (66051)","PaymentBadges._gLayout":"duplicated the Layout bucket header above it (66051)","Collections._gContent":"duplicated the Content bucket header above it (66052)","Collections._gLayout":"duplicated the Layout bucket header above it (66052)","DocMasthead._gContent":"duplicated the Content bucket header above it (66053)","Events._gContent":"duplicated the Content bucket header above it (66054)","Events._gLayout":"duplicated the Layout bucket header above it (66054)","FeaturedCover._gContent":"duplicated the Content bucket header above it (66054)","Series._gStyle":"duplicated the Style bucket header above it (66054)","Flex._gContent":"duplicated the Content bucket header above it (66055)","Flex._gLayout":"duplicated the Layout bucket header above it (66055)","SectionHeader._gContent":"duplicated the Content bucket header above it (66055)","Breadcrumb._gContent":"duplicated the Content bucket header above it (66056)","CategoryBar._gStyle":"duplicated the Style bucket header above it (66056)","Hero._gContent":"duplicated the Content bucket header above it (66056)","Hero._gStyle":"duplicated the Style bucket header above it (66056)","HeroSingle._gStyle":"duplicated the Style bucket header above it (66056)","IntroBleed._gContent":"duplicated the Content bucket header above it (66056)","IntroBleed._gLayout":"duplicated the Layout bucket header above it (66056)","BundleOffer._gLayout":"duplicated the Layout bucket header above it (66059)","ProcessSteps._gContent":"duplicated the Content bucket header above it (66059)","Banner._gContent":"duplicated the Content bucket header above it (66060.1)","Banner._gLayout":"duplicated the Layout bucket header above it, and governed no controls (66060.1)","Manifesto._gContent":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gHeadCopy":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gLeftCopy":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gRightCopy":"duplicated the Content bucket header above it (66060.1)","Ticker._gContent":"duplicated the Content bucket header above it (66060.1)","Ticker._gStyle":"duplicated the Style bucket header above it (66060.1)","Timeline._gContent":"duplicated the Content bucket header above it (66060.1)","TitleWithButtons._gContent":"duplicated the Content bucket header above it (66060.1)","TitleWithButtons._gStyle":"duplicated the Style bucket header above it (66060.1)","Cards._gContent":"duplicated the Content bucket header above it (66218)","Cards._gStyle":"duplicated the Style bucket header above it (66218)","Prose._gContent":"duplicated the Content bucket header above it (66218)","Reviews._gContent":"duplicated the Content bucket header above it (66218)","Reviews._gStyle":"duplicated the Style bucket header above it (66218)"},Wk={Content:["Content"],Size:["Size"],Design:["Design","Style"],Layout:["Layout"],Position:["Position"],Anchor:["Anchor"],Animation:["Animation"]},Gk={_gAnchor:"repeated the Anchor group heading above it (two tabs, 11.0.0)"};{let e={...ri({tablet:!0}),...xi("full"),...Ii(),...gi(),...ui(),...mi(),...St()};for(let o of Object.keys(Gk)){let t=xt(e[o]),r=t?Im[t.label]:void 0;if(!t||t.level!==2||!r||!Wk[r].includes(t.label))throw new Error(`INJECTED_RETIRED (lib/document/field-groups.ts) lists "${o}", but no uniform builder makes a level-2 heading by that key whose label repeats its place's word. The heading was renamed, moved or removed and the row is stale \u2014 a list that quietly matches nothing is worse than no list.`)}}var tz=new Set(["_sContent","_sStyle","_sLayout","_sMedia"]),rz=new Map([[yo.Design,"Content"],[yo.Animation,"Animation"],...xm.map(e=>[Jn[e],e])]);function zk(e){let o=new Set([...Object.values(yo),Jn.Content]);for(let[t,r]of Object.entries(e))if(!o.has(t)&&xt(r)?.level===1)return 1;return 2}function az(e){let o=`${e}.`;return Object.keys(oz).filter(t=>t.startsWith(o)).map(t=>t.slice(o.length))}function nz(e,o){let t=Dk(e),r=YG(o);return t?XG(t.tier,r):r}function sz(e,o){let t=xt(o);return t?e==="Content"||e==="Animation"?PS(o,t.label):ES(o):o}function Bk(e){return e==="Design"?xm:["Animation"]}function Uk(e,o){let t=[],r=new Set(az(o)),a=new Set,n=!1,s=null;for(let[p,x]of Object.entries(e)){let g=xt(x);if(tz.has(p))throw new Error(`${o}.${p}: that key was a tab header until efficient-web-builder 11.0.0, when the panel moved to two tabs (Design \xB7 Animation). Its tab is gone, so the key may not come back. Give the heading a key of the section's own (\`_g\u2026\`), or open a Design group with its own key (\`_dDesign: section("Design")\`, \`_dLayout: section("Layout")\`).`);let y=rz.get(p);if(y!==void 0){if(g?.level!==1)throw new Error(`${o}.${p}: that key is reserved for the ${y} heading of the settings panel, but this field is ${g?`a level-${g.level} "${g.label}" header`:"not a header"}, so it cannot serve as one. Rename the section's own field.`);(p===yo.Design||p===yo.Animation)&&(n=!0),t.push(s={place:y,entries:[],adopted:!0});continue}if(!g){s||t.push(s={place:"Content",entries:[]}),s.entries.push([p,x]);continue}if(r.has(p)||p in Gk){let O=hm(o,p,g.label);if(g.level!==2||!O||!Wk[O].includes(g.label))throw new Error(`${o}.${p}: ${r.has(p)?"RETIRED":"INJECTED_RETIRED"} (lib/document/field-groups.ts) lists this sub-heading as one whose name repeats the place it sits in, but it is a level-${g.level} "${g.label}" header in the ${O??"(unclassified)"} place. Only a level-2 header whose label is one of its place's words (PLACE_WORDS) may be retired \u2014 anything else is a heading a merchant reads for its own sake. Fix the row or drop it.`);r.has(p)&&a.add(p),t.push(s={place:O,entries:[]});continue}let E=hm(o,p,g.label);if(!E)throw new Error(`${o}.${p}: the inspector group "${g.label}" is not classified in LABEL_GROUP (lib/document/field-groups.ts), so there is no way to say which of ${[...xm,"Animation"].join(" / ")} its controls belong under. Classify it \u2014 an unclassified group silently lands wherever it was declared, which is the whole bug.`);t.push(s={place:E,entries:[[p,g.level===2?x:nz(x,g.label)]]})}let l=new Set(Object.entries(e).filter(([,p])=>xt(p)).map(([p])=>p));for(let[p,x]of[["BLOCK_KEY_GROUP",Mk],["KEY_GROUP",Nk]]){let g=Object.keys(x).filter(y=>y.startsWith(`${o}.`)).filter(y=>!l.has(y.slice(o.length+1)));if(g.length)throw new Error(`${o}: ${p} (lib/document/field-groups.ts) lists ${JSON.stringify(g)}, but no fold header by that key is in this section's panel. Either the heading was renamed or removed and the row is stale, or the row names the wrong key \u2014 an override that quietly matches nothing is worse than no override.`)}let c=n?[]:[...r].filter(p=>!a.has(p));if(c.length)throw new Error(`${o}: RETIRED (lib/document/field-groups.ts) lists ${JSON.stringify(c)}, but this section has no such fold header${c.length>1?"s":""}. Either the heading was renamed or removed and the row is stale, or the row names the wrong section \u2014 a list that quietly matches nothing is worse than no list.`);let d=new Set(t.filter(p=>p.entries.length>0).map(p=>p.place)),u=Qn.filter(p=>Bk(p).some(x=>d.has(x))),h={};for(let p of u){h[yo[p]]=fi(p,p===u[0]?u:null);for(let x of Bk(p)){if(!d.has(x))continue;let g=t.filter(E=>E.place===x),y=g.findIndex(E=>E.adopted);y>0&&g.unshift(...g.splice(y,1)),p==="Design"&&(h[Jn[x]]=_u(x));for(let E of g)for(let[O,C]of E.entries)h[O]=sz(x,C)}}return h}function Ome(e){return yo.Design in e?e:{[yo.Design]:fi("Design",null),[Jn.Content]:_u("Content"),...e}}function _me(e){return Qn.some(o=>yo[o]in e)}function Fme(e){let o=Qn.filter(r=>yo[r]in e);if(o.length===0)return e;let t={...e};for(let r of o)t[yo[r]]=fi(r,r===o[0]?o:null);return t}import{jsx as lz}from"react/jsx-runtime";import{EmptyState as iz}from"efficient-shell/ui";function Ar(){return lz(iz,{variant:"none",icon:!1,message:i("These settings apply to every view.")})}import{usePreviewDevice as xz}from"efficient-easel/draw/client";import{deviceField as Iz}from"efficient-easel/screen/lib/document/device-fields";var pc=" text",$k="Text";function es(e){let o=e.rows.filter(t=>t.shown);return o.length===0||o.length===1&&o[0].labelled}function jk(e){return e.filter(es).map(o=>o.key)}function Kk(e,o){let t=e.filter(a=>!es(a));if(t.length!==1)return null;let r=e.filter(es).flatMap(a=>a.rows);return[...o,...r].some(a=>a.shown)?null:t[0].rows.filter(a=>a.shown).length>1?t[0].key:null}function qk(e,o){let t=null;for(let r of o){let a=e[r];!a||a.marker!==!0||typeof a.fold!="string"||(t??={...e},t[r]={...a,fold:!1})}return t??e}function Vk(e,o){if(e.size!==o.size)return!1;for(let t of e)if(!o.has(t))return!1;return!0}var ym=new Map,hc=new Set;function Jk(e,o){let t=new Map;for(let a of e.querySelectorAll(".es-insp-row[data-field]"))t.set(a.getAttribute("data-field")??"",a);let r=[];for(let[a,n]of o)r.push({key:a,rows:n.map(s=>{let l=t.get(s),c=!!l&&[...l.children].some(u=>!u.hidden),d=l?.querySelector(".es-field-label, .es-list-label")?.textContent?.trim();return{shown:c,labelled:c&&!!d}})});return r}var gz=Object.fromEntries(Qn.map(e=>{let o=TS[e];return[e,Rr(o,{},e)]})),Qk=fz(null),bz={_partBody:Iz("each",{type:"custom",render:()=>Rr(yz,{})})};function yz(){return Rr(cz,{children:uz(Qk)})}function at({entries:e,entryCount:o=0,part:t=null,omit:r,motion:a,body:n}){let{id:s,fields:l,values:c,readOnly:d,onChange:u}=pz(),h=mc(()=>a?{...c,...a.values}:c,[c,a?.values]),p=(ie,Be)=>a?.keys.has(ie)?a.onChange(ie,Be):u(ie,Be),x=xz(),{appState:g,config:y}=Zk(ie=>ie),E=rg(x,y,g.data.content??[],g.ui.itemSelector),O=n===void 0?Xw(l,t):bz,C=mc(()=>{let ie=r?.length?Object.fromEntries(Object.entries(O).filter(([Be])=>!r.includes(Be))):O;return a?{...ie,...a.fields}:ie},[O,r,a?.fields]),I=bf(C,h,E),[w,v]=gm(()=>new Set(hc)),[k,A]=gm(()=>new Set),D=Xk(null),{bandRows:P,designBands:F,looseRows:N}=mc(()=>{let ie=new Map,Be=new Set,ho=[];for(let Ae of bm(I).rows){if(!Ae.fold){Ae.bucket==="Design"&&ho.push(Ae.name);continue}let ze=ie.get(Ae.fold.key)??[];ze.push(Ae.name),ie.set(Ae.fold.key,ze),Ae.bucket==="Design"&&Be.add(Ae.fold.key)}return{bandRows:ie,designBands:Be,looseRows:new Map([["",ho]])}},[I]),b=mz({},x),_={key:pc,rows:Array.from({length:b?o:0},()=>({shown:!0,labelled:!0}))};Yk(()=>{let ie=D.current?.parentElement;if(!ie)return;let Be=Jk(ie,P),ho=new Set(jk(Be)),Ae=Kk([_,...Be.filter(ze=>F.has(ze.key))],Jk(ie,N)[0].rows);Ae&&ho.add(Ae),A(ze=>Vk(ze,ho)?ze:ho)});let R=mc(()=>qk(I,k),[I,k]),H=!es(_)&&!k.has(pc)?{key:pc,title:$k}:void 0,U=Zk(ie=>ie.selectedItem)!==null,Z=a?.part??t??"",K=`${s}:${Z}:${String(x)}`,[Le,be]=gm(()=>({tab:ym.get(K)})),Xe=`${s}:${Z}`,Ge=Xk(null),Pe={...E,node:h},Ie=bm(I,{values:h,context:Pe}).buckets,we=mk({allTabs:U,remembered:ym.get(K),inherited:Ge.current?.panel===Xe?Ge.current.tab:Le.tab,buckets:Ie,hasText:b&&o>0}),eo=!b&&!Ie.includes(we)&&(bm(bf(C,h,{...E,device:"desktop"}),{values:h,context:{...Pe,device:"desktop"}}).buckets.includes(we)||we==="Design"&&o>0);Yk(()=>{Ge.current={panel:Xe,tab:we}});let lo=we==="Design";return Rr(Qk.Provider,{value:n??null,children:Rr(Ru.Provider,{value:a?h:null,children:dz(hz,{fields:R,values:h,onChange:p,readOnly:d,allTabs:U,showWhenContext:Pe,tab:we,onTab:ie=>{ym.set(K,ie),be({tab:ie})},tabIcons:gz,idPrefix:s,ariaLabel:i("Section settings"),lead:lo?e:null,leadFold:H,closedFolds:w,onFold:(ie,Be)=>{Be?hc.delete(ie):hc.add(ie),v(new Set(hc))},children:[Rr("span",{ref:D,hidden:!0}),eo&&Rr(Ar,{})]})})})}import{useMemo as Lz}from"react";import{useEasel as Bz}from"efficient-easel/easel";import{useSectionOps as Dz}from"efficient-easel/screen/lib/document/use-section-ops";import{jsx as Sz}from"react/jsx-runtime";import{HoverIcon as Cz}from"efficient-easel/icons";import{group as wz}from"efficient-easel/screen/lib/document/box-fields";var Da="hover",Sm=tl.filter(e=>e==="none"||e==="lift");function ev(e){let o=e[Da];return Sm.includes(o)?o:"none"}var kz="_gHover",vz="What this does when a shopper points at it, or taps it on a phone.";function ov(){return{[kz]:wz("Hover"),[Da]:{...ga("Hover effect",Sz(Cz,{}),Sm.map(e=>({label:On[e],value:e})),"none"),description:vz}}}import{jsx as tv}from"react/jsx-runtime";import{DirectionIcon as Tz,LoopIcon as Pz}from"efficient-easel/icons";function Cm(){return NS("Scroll direction",im,Yn,"A marquee cannot run diagonally, so the corners are not answers.",tv(Tz,{}),DS)}function rv(){return{loop:Ho("Loop",tv(Pz,{}),lm,sm),scrollDirection:Ao(Cm(),nc),loopDuration:Ao(sc({readsSpeed:!1}),nc),loopDelay:Ao(lc(),nc)}}function av(e){switch(e){case"section":case"block":return St();case"box":return{...St(),...rv()};case"textPart":return{...St(),...ov()};case"marquee":return{...St(),scrollDirection:Cm(),loopDuration:sc({readsSpeed:!0}),loopDelay:lc()}}}import{phoneKey as Ez}from"efficient-easel/draw";import{ENTRANCE_STATE_ATTR as Oz,entranceAttrs as _z}from"efficient-shell/format";var sv={},wm="_partMotion",km=[...Object.values(ve).flatMap(e=>[e,Ez(e)]),Da];function Phe(e){return ka(e,wm)}function vm(e,o){return Di(e,wm,o)}var Fz=new Set([ve.kind,Da]);function lv(e,o,t,r){let{[t]:a,...n}=vm(e,o),s=r==null||r===""||r==="none"&&Fz.has(t)?n:{...n,[t]:r};return Ni(e,wm,o,Object.keys(s).length?s:null)}function Tm(e){return{entrance:wk(e),hover:ev(e)}}function iv(e){let o=Tm(e);return o.entrance!==null||o.hover!=="none"}function cv(e,o){let{attrs:t,style:r}=_z(o),a=Object.keys(t).filter(n=>t[n]!==void 0);for(let n of a)e.setAttribute(n,String(t[n]));for(let[n,s]of Object.entries(r))e.style.setProperty(n,String(s));return()=>{for(let n of a)e.removeAttribute(n);for(let n of Object.keys(r))e.style.removeProperty(n);e.removeAttribute(Oz)}}var Az=4;function dv(e){let o;for(let t of e)(!o||t.element.compareDocumentPosition(o.element)&Az)&&(o=t);return o}var Rz="data-sf-part-host";function fv(e){let o=e?.ownerDocument.defaultView,t=e;for(;t&&!t.hasAttribute(Rz)&&!t.classList.contains(cc);){let r=o?.getComputedStyle(t).display??"";if(r==="contents")return null;if(r!=="inline")return t;t=t.parentElement}return null}var xc="data-sf-part-lift",nv="sf-part-lift";function uv(e){if(e.getElementById(nv))return;let o=e.createElement("style");o.id=nv,o.textContent=RC(`[${xc}]`).join(`
|
|
6
|
+
`),e.head.appendChild(o)}var pv=new Map,Nz=e=>{let o=pv.get(e);return o||pv.set(e,o=Uk(av(e),`part:${e}`)),o},Mz=new Set(km);function Na(e,o,t){let{getItemById:r,getSelectorForId:a}=Bz(u=>u),n=Dz(),s=r(e)?.props??{},l=vm(s,o),c=JSON.stringify(l),d=Lz(()=>Object.fromEntries(km.map(u=>[u,l[u]])),[c]);return{part:o,fields:Nz(t),values:d,keys:Mz,onChange:(u,h)=>{let p=a(e),x=r(e);if(!p||!x)return;let g=lv(x.props??{},o,u,h);n.replaceComponent(p.zone,p.index,{...x,props:g})}}}import{Fragment as Hz,createElement as Wz}from"react";import{deviceField as Pm}from"efficient-easel/screen/lib/document/device-fields";var no=()=>({type:"custom",render:()=>Wz(Hz)});var Em={words:no(),sourceNote:no(),style:no(),font:no(),italic:no(),fontSize:Pm("each",no()),lineHeight:no(),letterSpacing:no(),paragraphSpacing:no(),padding:no(),align:Pm("each",no()),letterCase:no(),fixedSizeHint:Pm("each",no()),regionNote:no(),regionStyle:no()},mv={showTicker:no(),items:no()};var Zz="root:default-zone";function hv({heroId:e}){let{appState:o,dispatch:t}=jz(x=>x),r=o.data.content??[],a=r.findIndex(x=>x.props.id===e),n=a>=0?r[a]:null,s=n?n.props.showTicker??!0:!0,l=$z(()=>{let x=n?.props.tickerItems;return Array.isArray(x)?x:uk.map(g=>({text:g}))},[n]),c=Uz(),d=Xz(),u=x=>Yz(mv[x],d),h=Na(e,pk,"block");if(!n)return Lr("p",{className:"sf-note",children:i("This ticker\u2019s hero is no longer on the page.")});let p=x=>t({type:"replace",destinationZone:Zz,destinationIndex:a,data:{...n,props:{...n.props,...x}}});return Lr(at,{motion:h,body:zz(Gz,{children:[!u("showTicker")&&!u("items")&&Lr(Ar,{}),u("showTicker")&&Lr(Kz,{label:i("Show ticker"),labelId:c,icon:Lr(Vz,{}),action:Lr(qz,{checked:s,onChange:x=>p({showTicker:x}),ariaLabelledBy:c})}),u("items")&&Lr(Du,{label:Bu.label,icon:Bu.icon,items:l,placeholder:"item",onChange:x=>p({tickerItems:x}),markup:!0})]})})}import{jsx as Y,Fragment as ds,jsxs as vo}from"react/jsx-runtime";import{useContext as YU,useEffect as Wm,useRef as XU,useState as c0}from"react";import{FieldSelect as ZU,InspectorField as JU,fieldShownInView as QU}from"efficient-easel/fields";import{SettingsField as e$}from"efficient-easel/panel";import{InspectorUpLevel as Pc}from"efficient-easel/chrome";import{StylesIcon as o$,TypeIcon as t$}from"efficient-easel/icons";import{useEasel as r$}from"efficient-easel/easel";import{TextPartPanel as a$}from"efficient-easel/copy";import{Button as n$,IconButton as s$,Tooltip as l$}from"efficient-shell/ui";import{jsx as Uv,jsxs as TU}from"react/jsx-runtime";import{COPY_CELLS as as,CopyBox as PU}from"efficient-easel/copy";import{PaddingYIcon as EU}from"efficient-easel/icons";import{useSyncExternalStore as gU}from"react";import{isNodeList as Jz}from"efficient-easel/data";var Om="template",Iv="Card template",Qz=["Text","ImageBlock","ButtonBlock","Flex"],Ic="rowField",eU="rowLinkField";function txe(){return{type:"slot",allow:[...Qz]}}var oU=[{block:"OrderSummary",fields:[{key:"label",label:"Item"},{key:"meta",label:"Meta line"},{key:"amount",label:"Amount"}]}],xv=Symbol.for("efficient.card-templates");function Br(){let e=globalThis,o=e[xv];return o||(o=new Map(oU.map(t=>[t.block,t])),e[xv]=o),o}function rxe(e){for(let o of e){if(typeof o.block!="string"||!o.block)throw new Error("A card template names no block.");let t=[];for(let r of o.blocks??[]){if(typeof r?.type!="string"||!r.type)throw new Error(`The card template of ${o.block} names an empty block.`);t.some(a=>a.type===r.type)||t.push({type:r.type,label:r.label||r.type})}Br().set(o.block,{block:o.block,fields:o.fields.map(r=>({...r})),blocks:t})}}function gv(){for(let e of Br().values())if(e.blocks?.length)return!0;return!1}function bv(e){return Br().get(e)?.blocks??[]}function axe(e){for(let o of Br().values())if(o.blocks?.some(t=>t.type===e))return!0;return!1}function _m(e){return typeof e=="string"&&Br().has(e)}function nxe(e,o){let t=Br().get(e)?.fields??[];return o?t.filter(r=>(r.kind??"text")===o):t}function sxe(e,o){return e?Br().get(e)?.fields.find(t=>t.key===o)??null:null}function Ma(e,o=Ic){let t=e?.[o];return typeof t=="string"?t.trim():""}function lxe(e){let o={};if(e&&typeof e=="object"&&!Array.isArray(e))for(let[t,r]of Object.entries(e))typeof r=="string"&&(o[t]=r);return o}var yv={Text:{text:Ic},ImageBlock:{src:Ic},ButtonBlock:{label:Ic,href:eU}};function Sv(e,o,t){let r=yv[e]?.[t];return!!(r&&Ma(o,r))}function tU(e,o){return!o||!e?null:e[o]??""}function ixe(e,o,t){if(!t)return o;let r=null;for(let[a,n]of Object.entries(yv[e]??{})){let s=tU(t,Ma(o,n));s!==null&&(r??={...o},r[a]=s)}return r??o}function Cv(e,o){let t=e?.data?.content;if(!Array.isArray(t)||typeof o!="string")return;let r=(n,s)=>{for(let l of n){if(l?.props?.id===o)return s;for(let[c,d]of Object.entries(l?.props??{})){if(!Jz(d))continue;let u=c===Om&&_m(l.type)?{owner:l,direct:!0}:s&&{owner:s.owner,direct:!1},h=r(d,u);if(h!==void 0)return h}}},a=r(t,null);return a===void 0?null:a}function wv(e,o){let t=Cv(e,o);return t&&t.owner}function cxe(e,o){let t=Cv(e,o);return t&&(t.direct?t.owner:null)}import{isNodeList as bc}from"efficient-easel/data";var gc="dataSource";var rU="dataRows",Dr="countKey",os="counts",aU=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,nU=Symbol.for("efficient.block-sources");function ts(){let e=globalThis;return e[nU]??={sources:new Map,revision:0}}var sU=e=>[e?.key,e?.label,e?.value].every(o=>typeof o=="string"&&o.trim()!=="");function lU(e){if(typeof e.key!="string"||!aU.test(e.key))throw new Error(`A block source key is lower-case words joined by hyphens, not ${JSON.stringify(e.key)}.`);if(typeof e.label!="string"||!e.label.trim())throw new Error(`The block source ${e.key} has no label.`);if(!Array.isArray(e.blocks)||!e.blocks.length||e.blocks.some(o=>typeof o!="string"||!o))throw new Error(`The block source ${e.key} names no block it can fill.`);return{key:e.key,label:e.label.trim(),blocks:[...e.blocks],...e.sample?{sample:e.sample.map(o=>vv(o)).filter(o=>o!==null)}:{},...Array.isArray(e.choices)?{choices:e.choices.filter(sU)}:{}}}function uxe(e){let o=e.map(lU),t=ts();for(let r of o)t.sources.set(r.key,r);o.length&&(t.revision+=1)}function pxe(e){let o=[...ts().sources.values()];return e===void 0?o:o.filter(t=>t.blocks.includes(e))}function iU(e){return ts().sources.get(e)??null}function kv(e){return ts().sources.get(e)?.choices??[]}function mxe(){return ts().revision}function Nr(e){let o=e?.[gc];return typeof o=="string"?o.trim():""}function vv(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let o={};for(let[t,r]of Object.entries(e)){let a=ke(r);a&&(o[t]=a)}return Object.keys(o).length?o:null}function cU(e){let o=e?.[rU];return Array.isArray(o)?o.map(vv).filter(t=>t!==null):null}function hxe(e,o,t=[]){let r=cU(e);if(r!==null&&(r.length||!o))return{rows:r,sample:!1};if(!o)return{rows:[],sample:!1};let a=iU(Nr(e))?.sample;return{rows:a?.length?a:t,sample:!0}}var Tv="Flex";function rs(e){if(Ma(e))return"";let o=e?.[Dr];return typeof o=="string"?o.trim():""}var dU=new Intl.NumberFormat("en-US");function fU(e){return/^\d+$/.test(e)?dU.format(Number(e)):e}function yxe(e,o){let t=o?o.find(r=>r.key===e)?.value:kv(os).find(r=>r.key===e)?.value;return t===void 0?null:fU(t)}function Fm(e){let o=e.props;if(!o)return{node:e,names:!1};let t=e.type==="Text"&&rs(o)!=="",r=o;for(let[n,s]of Object.entries(o)){if(!bc(s))continue;let l=s.map(Fm);l.some(c=>c.names)&&(t=!0),l.some((c,d)=>c.node!==s[d])&&(r={...r,[n]:l.map(c=>c.node)})}if(e.type!==Tv)return{node:r===o?e:{...e,props:r},names:t};let a=Nr(r);if(t&&!a&&(r={...r,[gc]:os}),!t&&a===os){let{[gc]:n,...s}=r;r=s}return{node:r===o?e:{...e,props:r},names:!1}}function Pv(e,o,t){for(let r of e){if(r?.props?.id===o)return t;for(let a of Object.values(r?.props??{})){if(!bc(a))continue;let n=Pv(a,o,r.type===Tv?r:t);if(n!==void 0)return n}}}function Sxe(e,o){if(!bc(e))return!0;let t=Pv(e,o,null);if(t===void 0)return!0;if(t===null)return!1;let r=Nr(t.props);return!r||r===os}function Ev(e){let o=e?.content;if(!bc(o))return e;let t=o.map(Fm);return t.every((r,a)=>r.node===o[a])?e:{...e,content:t.map(r=>r.node)}}function Ov(e){return Fm(e).node}import{decodePartId as bU}from"efficient-easel/draw";function Ha(e,o){let t=Fi(e);return t?.control==="textList"?o.rowKey===(t.itemKey??"text")?MS(t,o.index):null:Xu(e)?.[o.rowKey]??null}function yc(e,o,t){let r=e.node.props,{key:a,row:n}=zo(e.propKey),s=n?hC(r,a,n,e.kind,o):pC(r,a,e.kind,o);return s?(t(e.zone,e.index,{...e.node,props:s}),!0):!1}import{readHidable as Av}from"efficient-easel/draw";import{isNodeList as uU}from"efficient-easel/data";var Wa=e=>String(e+1).padStart(2,"0");var Rv="Contents",pU="Flex",_v="Text",Nxe="_contentsEntries",Mxe="_kickerNumber",Lv="data-sf-kicker-number",mU=e=>Av(e).text.trim(),Bv=e=>yg(e?.anchor),Fv=e=>String(e.props?.id??""),hU=e=>!Av(e.props?.text).hidden&&!rs(e.props)&&!Ma(e.props);function Am(e){return Object.values(e.props??{}).filter(uU)}function Dv(e){for(let o of Am(e))for(let t of o){if(t.props?._hidden)continue;if(t.type===_v&&hU(t))return t;if(t.type===_v)continue;let r=Dv(t);if(r)return r}}function Nv(e){return Am(e).some(o=>o.some(t=>t&&!t.props?._hidden&&(t.type===Rv||Nv(t))))}function xU(e){let o=[],t=r=>{for(let a of r)if(!(!a||a.props?._hidden)){if(a.type===Rv){o.push({contents:a,sections:[]});continue}if(a.type===pU&&Bv(a.props)&&o.length&&!Nv(a)){o[o.length-1].sections.push({box:a,kicker:Dv(a)});continue}for(let n of Am(a))t(n)}};return t(e),o}function IU(e){return e.map(o=>({label:o.kicker?pr(mU(o.kicker.props?.text)):"",anchor:Bv(o.box.props)}))}function Hxe(e){let o=e?.length?xU(e):[];if(!o.length)return null;let t=new Map,r=new Map;for(let a of o){let n=Fv(a.contents);n&&t.set(n,IU(a.sections)),a.sections.forEach((s,l)=>{let c=s.kicker?Fv(s.kicker):"";c&&r.set(c,Wa(l))})}return{entries:t,numbers:r}}var Wxe=e=>`${e} \xB7 `;var yU=`[${Lv}]`,SU=["bold","italic","underline","strike","link","sup","sub"],CU=["bullet","number"];function Bm(e,o){return e?[...SU,...o?CU:[]]:[]}function Mv(e,o){let t=bU(e);if(!t?.propKey)return null;let{nodeId:r,propKey:a}=t,n=o.getItemById(r),s=o.getSelectorForId(r);if(!n||!s)return null;let{key:l,row:c}=zo(a),d=o.components[n.type]?.fields?.[l],u=c?Ha(d,c):d,h=Sa(u);if(!h)return null;let p=n.props??{};if(tu(p)!==null||!c&&Sv(n.type,p,l)||n.type==="Text"&&l==="text"&&rs(p)||c&&!(Array.isArray(p[l])&&c.index<p[l].length))return null;let x=c?Fn(p[l],c):p[l];return{node:n,selector:s,propKey:a,kind:h,stored:x,offPage:di(u)}}function Hv(e,o){let t=Mv(e,o);if(!t)return null;let{text:r,hidden:a}=Gt(t.stored);if(!ep({offPage:t.offPage,hidden:!!a}))return null;let n=Oi(t.kind);return{partId:e,value:r,rules:ur,multiline:n,skip:yU,offered:Bm(t.kind!=="plainText",n),write:s=>{let l=Mv(e,o);l&&yc({node:l.node,propKey:l.propKey,kind:l.kind,zone:l.selector.zone,index:l.selector.index},s,o.replace)}}}function Wv(e,o,t){return e?.isConnected&&e.getAttribute(Uo)===t?e:o?.querySelector(`[${Uo}="${wU(t)}"]`)??null}function wU(e){return e.replace(/["\\]/g,"\\$&")}function Gv(e){let o=e.activeElement;return o?o.tagName==="IFRAME"||!!o.closest(".es-canvas"):!1}var Rm=null,Lm=new Set;function kU(){return Rm}function Dm(e){if(e!==Rm){Rm=e;for(let o of Lm)o()}}function vU(e){return Lm.add(e),()=>{Lm.delete(e)}}function zv(){return gU(vU,kU,()=>null)}var OU=["left","center","right","justify"];function Nm(e,o,t,r="desktop"){let a=Ln(e),n=r==="mobile",s=(n?e.sizePhone:void 0)??e.size??o.sizePx;return[n?{...as.fontSize,key:"fontSize",value:e.sizePhone,styleValue:Math.round(o.sizePx),onChange:l=>t({sizePhone:l??null})}:{...as.fontSize,key:"fontSize",value:e.size,styleValue:Math.round(o.sizePx),onChange:l=>t({size:l??null})},{...as.lineHeight,key:"lineHeight",value:a.lineHeight,styleValue:o.lineRatio,onChange:l=>t(l===void 0?{lineHeight:null,line:null}:{lineHeight:l})},{...as.letterSpacing,key:"letterSpacing",scale:s,value:a.letterSpacingEm,styleValue:o.letterEm,onChange:l=>t(l===void 0?{letterSpacing:null,letter:null}:{letterSpacing:l})},{...as.paragraphSpacing,key:"paragraphSpacing",value:e.paragraphSpacing,styleValue:0,onChange:l=>t({paragraphSpacing:l??null})},{key:"padding",name:i("Padding"),icon:Uv(EU,{}),unit:"px",step:lp,shiftStep:10,min:np,max:sp,value:e.padding,styleValue:o.paddingPx,onChange:l=>t({padding:l??null})}]}function $v({text:e,onTextChange:o,multiline:t,markup:r=!0,styled:a=!0,style:n,base:s,setValue:l,colors:c,placeholder:d,ariaLabel:u,head:h,typedOnCanvas:p=!1}){let x=Nm(n,s,l),g=Bm(r,t);return TU("div",{className:"sf-part-textbox",children:[h,Uv(PU,{value:e,onChange:o,multiline:t,placeholder:d,ariaLabel:u,rules:ur,tools:g,barShows:p?"focus":"always",colors:r?c:[],align:a?{value:n.align??s.align,allow:OU,onChange:y=>l({align:y})}:void 0,letterCase:a?{value:n.case==="capitalize"?"":n.case??"",onChange:y=>l({case:y||null})}:void 0,cells:a?x:void 0})]})}import{UiIcon as d0}from"efficient-easel/draw/client";import{jsx as Sc,Fragment as _U,jsxs as FU}from"react/jsx-runtime";import{Button as jv,Dialog as AU}from"efficient-shell/ui";function Kv({styleName:e,onCancel:o,onConfirm:t}){return Sc(AU,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Update {style}?",{style:e}),footer:FU(_U,{children:[Sc(jv,{variant:"secondary",onClick:o,children:i("Cancel")}),Sc(jv,{variant:"primary",onClick:t,children:i("Update style")})]}),children:Sc("p",{children:i("Every text on the site that follows {style} changes to look like this one. This text\u2019s own changes are cleared, and it keeps following {style}.",{style:e})})})}import{ScreenDocumentContext as i$}from"efficient-easel/screen/components/ScreenDocumentContext";import{usePreviewDevice as c$}from"efficient-easel/draw/client";import{shownTier as Gm}from"efficient-easel/screen/lib/document/device-fields";import{jsx as RU}from"react/jsx-runtime";import{createContext as LU,useContext as BU,useMemo as DU,useState as NU}from"react";var MU={partStyle:null,setPartStyle:()=>{}},qv=LU(MU);function xIe({children:e}){let[o,t]=NU(null),r=DU(()=>({partStyle:o,setPartStyle:t}),[o]);return RU(qv.Provider,{value:r,children:e})}function Vv(){return BU(qv)}import{TEXT_FIELD_MARKER as d$}from"efficient-easel/draw";import{useSectionOps as f$}from"efficient-easel/screen/lib/document/use-section-ops";import{parseHexColor as HU}from"efficient-shell/format";var WU="#9ca3af";function GU(e){return wl.map(o=>({key:o,name:jg[o],value:e?.[o]||WU}))}function Cc(e){return GU(e).map(o=>({name:o.key,label:i(o.name),value:o.value}))}function Xv(e){let o={},t=e.ownerDocument,r=t?.defaultView;if(!t||!r)return o;let a=r.getComputedStyle(e),n=t.createElement("canvas").getContext("2d");for(let s of wl){let l=ut[s].replace(/^var\((--[\w-]+)\)$/,"$1"),c=a.getPropertyValue(l).trim();if(!c)continue;let d=Yv(c);!d&&n&&(n.fillStyle="#000000",n.fillStyle=c,d=Yv(String(n.fillStyle))),d&&(o[s]=d)}return o}function Yv(e){let o=e.trim().toLowerCase();if(o.startsWith("#"))return HU(o);let t=o.match(/^rgba?\(\s*(\d+)[\s,]+(\d+)[\s,]+(\d+)/);return t?`#${t.slice(1,4).map(r=>Math.min(255,Number(r)).toString(16).padStart(2,"0")).join("")}`:null}var ns="@name",Zv="@body",Jv="@value",wIe={[ns]:"Name",[Zv]:"Body",[Jv]:"Value"},zU={TimelineTrack:{"entries.date":ns,"entries.title":ns,"entries.blurb":Zv},Footprint:{"offices.city":ns},Stats:{"items.label":ns,"items.value":Jv}};function UU(e){let{key:o,row:t}=zo(e);return t?`${o}.${t.rowKey}`:null}function ss(e,o){if(!e)return o;let t=UU(o);return t?zU[e]?.[t]??o:o}import{useEaselHost as u$}from"efficient-easel/screen/lib/host";function $U(e){let o=new Set([...Object.keys(Tl[e]??{}),...Pl[e]??[]]);for(let[t,r]of Object.entries(Mf[e]??{}))r.verb==="snapshot"&&o.add(t);return[...o].sort()}var jU={CollectionCard:"product",FooterMenu:"menu",Gallery:"product",GalleryItem:"product",ProductGrid:"product",ProductHero:"product",SpecTable:"product",Events:"blog",FeaturedCover:"blog",LongRead:"blog",SubscribeBlogs:"blog"},Qv={product:"Synced from the product.",blog:"Synced from the blog post.",menu:"Synced from the site menu."},e0="Open",o0={product:{type:"storefront-editor:open-product",needsSlug:!0},blog:{type:"storefront-editor:open-post",needsSlug:!0},menu:{type:"storefront-editor:open-menus",needsSlug:!1}};function ls(e){let o=e?.source?.slug;return ke(o)}function is(e){return jU[e]??null}function t0(e,o){let t=is(e);return t&&$U(e).includes(o)?t:null}function wc(e){let o=e?.menu?.id;return ke(o)}var kc="data-sf-spec-region";function r0(e,o,t){if(!e)return;let r=t[e];if(r)return{fontFamily:`var(--font-role-${e})`,fontSize:`var(--size-${r}, ${o.builtIn})`}}function Ga(e){let o=/var\(--size-[A-Za-z]+, ?([0-9.]+px)\)/.exec(e);if(!o)throw new Error(`builtInOf: no --size-* fallback in ${e}`);return o[1]}function Mm(e){return`@${e}`}function Hm(e,o){if(!o.startsWith("@"))return null;let t=o.slice(1);return t in e?t:null}function KU(e,o){return o&&o in e?o:null}var cs={tag:"text-[length:var(--size-label,13px)]",name:"text-[length:min(var(--size-headingMedium,48px),var(--sf-heading-max,9999px))]",namePhone:"max-[800px]:text-[length:min(var(--size-headingMedium,36px),var(--sf-heading-max,9999px))]",body:"text-[length:var(--size-body,14px)]",price:"text-[length:var(--size-label,15px)]",link:"text-[length:var(--size-label,14px)]"},qU={tag:{label:"Tag",follows:"Labels",builtIn:Ga(cs.tag),writable:!0},name:{label:"Name",follows:"Heading 2",builtIn:Ga(cs.name),writable:!0},body:{label:"Body",follows:"Body",builtIn:Ga(cs.body),writable:!0},price:{label:"Price",follows:"Labels",builtIn:Ga(cs.price),writable:!0},link:{label:"Link",follows:"Labels",builtIn:Ga(cs.link),writable:!0}},a0=qU;var VU={number:{label:"Number",follows:"Labels",builtIn:"14px",writable:!0},question:{label:"Question",follows:"Body",builtIn:"18px",writable:!0},answer:{label:"Answer",follows:"Body",builtIn:"15px",writable:!0}},n0=VU;var vc={entry:{label:"Entry",follows:"Labels",builtIn:"13px",writable:!0},number:{label:"Entry number",follows:"Labels",builtIn:"13px",writable:!0}};var DIe=kc,s0={rowLabel:{label:"Spec row name",follows:"Labels",builtIn:"14px"},rowValue:{label:"Spec row value",follows:"Labels",builtIn:"14px"},diagramTitle:{label:"Diagram title",follows:"Labels",builtIn:"12px"},diagramCallout:{label:"Diagram measurement",follows:"Labels",builtIn:"12px"},diagramStatLabel:{label:"Diagram stat name",follows:"Labels",builtIn:"11px"},diagramStatValue:{label:"Diagram stat value",follows:"Labels",builtIn:"11px"}};var l0={SpecTable:s0,FAQ:n0,Collections:a0,Contents:vc};function i0(e){return e&&Object.hasOwn(l0,e)?l0[e]:null}function Um(e){return e?i(e):null}function f0(e){return e.kind==="role"?qd[e.role]:e.kind==="custom"?"Custom":null}function p$(e){let o=dt(e.role);return o?{kind:"role",role:o}:null}function m$(e,o){if(!e)return{kind:"unread"};let{faceRole:t,base:r}=e;if(o[t]===r.fontKey)return{kind:"role",role:t};let a=Object.keys(o).filter(n=>o[n]===r.fontKey);return a.length===1?{kind:"role",role:a[0]}:{kind:"custom"}}function zm(e,o,t,r){return p$(Gi(e,o))??m$(t,r)}function h$(e,o){if(!e.length)return null;let t=o(e[0]);return e.every(r=>o(r)===t)?t:null}var Tc="";function x$({face:e,base:o,onPick:t}){let r=e.kind==="role"?e.role:Tc,a=[{label:i("No style"),value:Tc},...dI.map(n=>({label:i(qd[n]),value:n}))];return Y(ZU,{ariaLabel:i("Style"),value:r,options:a,inline:!0,onChange:n=>t(n===Tc?null:n),renderOption:n=>n.value===Tc?vo(ds,{children:[Y("span",{className:"es-fsel-label sf-part-style-keep",children:n.label}),Y("span",{className:"sf-part-style-aside","aria-hidden":"true",children:i("Section\u2019s own")})]}):Y("span",{className:"es-fsel-label",style:{fontFamily:`var(--font-role-${n.value})`},children:n.label}),renderValue:()=>Y("span",{style:{fontFamily:o?.fontKey?`var(${ta(o.fontKey)?.cssVar})`:void 0,fontWeight:o?.weight},children:Um(f0(e))}),valueText:n=>Um(f0(e))??n?.label??""})}var p0=["regionNote","regionStyle"],I$=Object.keys(Em).filter(e=>!p0.includes(e));function m0(e,o){return!e.some(o)}function g$({sectionName:e,onBack:o,textEditor:t,styleRow:r,children:a,tabs:n}){let s=vo(ds,{children:[t,r,a]});return vo("div",{className:"sf-part-panel",children:[Y(Pc,{inline:!0,name:i(e),onSelect:o}),n?n(s):s]})}function Ec({source:e,slug:o,menuId:t}){let r=u$(),a=o0[e],n=!a.needsSlug||!!o;return Y("div",{className:"sf-note sf-note--source",children:vo("p",{className:"es-field-hint sf-hint-keep",children:[i(Qv[e]),n?vo(ds,{children:[" ",Y(n$,{type:"button",variant:"link",size:"sm",onClick:()=>{a.type==="storefront-editor:open-menus"?r.send(a.type,{menuId:t??null}):o&&r.send(a.type,{slug:o})},children:i(e0)})]}):null]})})}var u0=4,b$=120;function y$({region:e,sizePx:o,face:t,base:r,onFollowStyle:a,source:n,slug:s,onBack:l,shows:c}){let d=e.follows;return vo("div",{className:"sf-note",children:[c("regionNote")&&vo(ds,{children:[Y("p",{children:Y("strong",{children:i(e.label)})}),Y("p",{children:o?i("Its size follows Styles \u25B8 {follows} \u2014 {px}px right now.",{follows:i(d),px:Math.round(o)}):i("Its size follows Styles \u25B8 {follows}.",{follows:i(d)})})]}),a?c("regionStyle")?Y(ds,{children:Y(e$,{label:i("Style"),icon:Y(o$,{}),hint:i("Every {part} in this section follows it. The face and the size change; the letter case is the section\u2019s own and stays as it is.",{part:i(e.label).toLowerCase()}),children:Y(x$,{face:t,base:r,onPick:a})})}):null:c("regionNote")&&Y("p",{className:"es-field-hint sf-hint-keep",children:i("Only the size follows a site style. This section sets its own font, weight and letter case.")}),n&&c("sourceNote")?Y(Ec,{source:n,slug:s}):null,m0([...p0,"sourceNote"],u=>c(u)&&(u!=="sourceNote"||!!n))&&Y(Ar,{}),Y(Pc,{inline:!0,name:i("Page"),onSelect:l})]})}function S$({onBack:e}){return vo("div",{className:"sf-note",children:[Y("p",{children:Y("strong",{children:i("This part is no longer here.")})}),Y("p",{children:i("The section it belonged to has been changed or removed.")}),Y(Pc,{inline:!0,name:i("Page"),onSelect:e})]})}function C$({onBack:e,partId:o,why:t}){return vo("div",{className:"sf-note",children:[Y("p",{children:Y("strong",{children:i("This part's settings did not open.")})}),Y("p",{children:i("The words are still on your page and nothing has been lost. The editor could not work out which control belongs to them, which is a fault on our side. Go back and click the section to open its settings instead.")}),Y("p",{className:"sf-note-detail",children:vo("code",{children:[o," \u2014 ",t]})}),Y(Pc,{inline:!0,name:i("Page"),onSelect:e})]})}function h0({nodeId:e,propKey:o,onBack:t,onEditStyle:r}){let{getItemById:a,getSelectorForId:n,config:s}=r$(G=>G),l=f$(),c=zv(),{partStyle:d}=Vv(),{fonts:u,textStyles:h}=se(),p=YU(i$),x=!p?.capabilities?.hasSiteTheme,{persist:g}=la({themeFromDocument:x,tokenRef:p?.tokenRef,siteId:p?.siteId??null}),y=$i({themeFromDocument:x,persist:g}),[E,O]=c0(!1),C=c$(),I=G=>Gm(C)!=="tablet"&&QU(Em[G],C),w=XU(null),v=a(e),k=n(e),A=v?s.components[v.type]:void 0,{key:D,row:P}=zo(o),F=A?.fields?.[D],N=P?Ha(F,P):F,b=Ri(e,o),_=v?.props??{},R=Sa(N),H=di(N),U=SC(N),Z=v?is(v.type):null,K=v?t0(v.type,D):null,Le=P?Fn(_[D],P):_[D],be=!!P&&!(Array.isArray(_[D])&&P.index<_[D].length);Wm(()=>{Gv(document)||w.current?.querySelector(".es-copy [contenteditable='true'], .es-copy textarea, .sf-copybox textarea, .sf-copybox input")?.focus()},[b]);let[Xe,Ge]=c0(0);Wm(()=>Ge(0),[b]);let Pe=!!v&&!be&&(!k||!N);Wm(()=>{if(!Pe||Xe>=u0)return;let G=setTimeout(()=>Ge($e=>$e+1),b$);return()=>clearTimeout(G)},[Pe,Xe]);let Ie=Pe&&Xe<u0,we=Na(e,ss(v?.type,o),"textPart");if(!v||be)return Y(S$,{onBack:t});let eo=i0(v.type),lo=eo?Hm(eo,o):null;if(eo&&lo){let G=d?.partId===b?d:null,$e=eo[lo],Xo=$e.writable===!0&&!!k,Ot=Md=>{k&&l.replaceComponent(k.zone,k.index,{...v,props:Pa(_,o,"role",Md)})};return Y(at,{motion:we,body:Y(y$,{region:$e,sizePx:G?.base.sizePx??null,face:zm(_,o,G,u),base:G?.base??null,onFollowStyle:Xo?Ot:void 0,source:Z,slug:ls(_),onBack:t,shows:I})})}if(!k||!N)return Ie?Y("div",{className:"sf-note","aria-busy":"true"}):Y(C$,{onBack:t,partId:b,why:k?"no field":"no selector"});let ie=G=>{l.replaceComponent(k.zone,k.index,{...v,props:G})},Be=G=>{if(Gt(G).hidden!==Gt(Le).hidden||!R){let $e=P?Zu(_,D,P,G):{..._,[D]:G};$e&&ie($e);return}yc({node:v,propKey:o,kind:R,zone:k.zone,index:k.index},Gt(G).text,l.replaceComponent)},ho=Le,Ae=d?.partId===b?d:null,ze=Ae?.styleOwner,Vo=ze?a(ze.owner):null,Pt=ze&&Vo?n(ze.owner):null,Yo=!!(ze&&Vo&&Pt),M=Yo?Vo.props??{}:_,de=Yo?G=>l.replaceComponent(Pt.zone,Pt.index,{...Vo,props:G}):ie,ge=Yo?ze.kind:ss(v?.type,o),De=Gi(M,ge),Ne=[{partKey:ge,face:zm(M,ge,Ae,u),sizeGroup:Ae?.sizeGroup??null,base:Ae?.base??k$,style:De}],Et=h$(Ne,G=>G.sizeGroup),Zr=Cc(Ae?.inks),Ze=(G,$e)=>{let Xo=M;for(let Ot of Ne)Xo=Pa(Xo,Ot.partKey,G,$e);de(Xo)},er=G=>G?Ze("textStyle",G):rn({textStyle:null,role:null}),rn=G=>{let $e=M;for(let Xo of Ne)for(let[Ot,Md]of Object.entries(G))$e=Pa($e,Xo.partKey,Ot,Md??null);de($e)},Dd=R==="text"||R==="textarea",{text:Ux,hidden:Jr}=Gt(Le),Qs=N?.[d$]?.label??o,$x=Jr?i("Show {label} on the slide",{label:i(Qs)}):i("Hide {label} on the slide",{label:i(Qs)}),jx=vo("div",{className:"sf-field-head",children:[Y(t$,{}),Y("span",{className:"sf-field-label sf-field-label--inline",children:i(Qs)}),Dd&&Y(l$,{content:$x,children:Y(s$,{"aria-pressed":Jr,"aria-label":$x,onClick:()=>Be({text:Ux,hidden:!Jr}),children:Jr?Y(d0,{name:"eye-off",size:14}):Y(d0,{name:"eye",size:14})})})]}),el=!H&&U,rF=!!R&&(kS(N)||H||Jr||!U),Kx=zm(M,ge,Ae,u),aF=Kx.kind==="role"?Kx.role:null,Nd=AC(De)??QC(aF),qx=Ut(y.saved,y.old),nF=Object.entries(De).filter(([G,$e])=>G!=="role"&&G!=="textStyle"&&$e!==void 0).length,sF=()=>{let G=M;for(let $e of Ne){let{role:Xo,textStyle:Ot}=$e.style;G=NC(G,$e.partKey),Xo&&(G=Pa(G,$e.partKey,"role",Xo)),Ot&&(G=Pa(G,$e.partKey,"textStyle",Ot))}de(G)},or=Nd,lF=ew(Ne[0].style),iF=or?qx.find(G=>G.id===or)?.name??or:"",cF=()=>{O(!1),or&&(y.write(ow({saved:y.saved,old:y.old,styleId:or,values:bp(Ne[0].style)}),!0),sF())};return vo(g$,{sectionName:A?.label??v.type,onBack:t,tabs:G=>Y(at,{motion:we,body:G}),textEditor:I("words")?Y("div",{ref:w,className:"sf-part-text",children:rF?Y($v,{text:Ux,onTextChange:G=>Be(Dd?{text:G,hidden:Jr}:G),multiline:Oi(R),markup:R!=="plainText",styled:!1,style:Ne[0].style,base:Ne[0].base,setValue:rn,colors:Zr,placeholder:Um(uC(N))??void 0,ariaLabel:i(Qs),head:jx,typedOnCanvas:c===b}):R?Dd?jx:null:Y(JU,{field:N,name:o,value:ho,onChange:Be,id:`sf-part-${e}-${o}`})}):void 0,children:[K&&I("sourceNote")&&Y(Ec,{source:K,slug:ls(_),menuId:wc(_)}),el&&Y(a$,{style:I("style")?{value:Nd??"",options:[{value:"",label:i("No style"),description:i("Section\u2019s own")},...qx.map(G=>({value:G.id,label:G.name,description:G.values.font?ta(G.values.font)?.label:void 0}))],onChange:G=>er(G||null),changed:nF>0,onEditStyles:r,onUpdateStyle:or&&lF?()=>O(!0):void 0}:void 0,font:I("font")?{value:De.font??"",styleValue:ta(Ne[0].base.fontKey)?.label,options:Fo.map(G=>({label:G.label,value:G.key})),onChange:G=>Ze("font",G||null)}:void 0,italic:I("italic")?{value:De.italic,styleValue:w$(h,Nd),onChange:G=>Ze("italic",G??null)}:void 0,cells:Nm(Ne[0].style,Ne[0].base,rn,Gm(C)).filter(G=>I(G.key)),align:I("align")?Gm(C)==="mobile"?{value:De.alignPhone??"",styleValue:De.align??Ne[0].base.align,onChange:G=>Ze("alignPhone",G||null)}:{value:De.align??"",styleValue:Ne[0].base.align,onChange:G=>Ze("align",G||null)}:void 0,letterCase:I("letterCase")?{value:De.case??"",styleValue:Ne[0].base.case,onChange:G=>Ze("case",G||null)}:void 0}),E&&or&&Y(Kv,{styleName:iF,onCancel:()=>O(!1),onConfirm:cF}),el&&Et===null&&I("fixedSizeHint")&&Y("p",{className:"es-field-hint sf-hint-keep",children:i("Fixed size \u2014 the site\u2019s Text setting doesn\u2019t resize this.")}),m0(I$,G=>I(G)&&(G==="words"||(G==="sourceNote"?!!K:G==="fixedSizeHint"?el&&Et===null:el)))&&Y(Ar,{})]})}function w$(e,o){return!o||!Array.isArray(e)?!1:e.find(t=>t?.id===o)?.values?.italic===!0}var k$={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0};import{jsx as jo,jsxs as ih,Fragment as G$}from"react/jsx-runtime";import{useCallback as z$,useRef as U$,useState as ms}from"react";import{InspectorIconButton as $$}from"efficient-easel/chrome";import{PopupMenu as j$,PopupMenuItem as K$,PopupMenuLabel as Mc}from"efficient-shell/ui";import{CopyToPageIcon as q$}from"efficient-easel/icons";import{useEaselSession as V$}from"efficient-easel/screen/lib/session-context";import{cloneNodeWithFreshIds as Y$}from"efficient-easel/screen/lib/document/section-doc";import{FOOTER_TYPE as X$}from"efficient-easel/draw";import{currentEaselSession as E$}from"efficient-easel/screen/lib/session";var x0=["general","commerce","service"],Kt=[{key:"openers",title:"Hero & intros",defaultExpanded:!0,templateable:!0,sections:[{type:"Hero",label:"Hero Slideshow",set:"general"},{type:"HeroSingle",label:"Hero",set:"general"},{type:"IntroBleed",label:"Scroll-Over Text",set:"general"}]},{key:"shop",title:"Shop & galleries",templateable:!0,sections:[{type:"Collections",label:"Collections",set:"commerce"},{type:"AlloyWheelsListing",label:"List",set:"commerce"},{type:"CatalogFilterBar",label:"Catalog Filter Bar",set:"commerce"},{type:"ProductGrid",label:"Product Grid",set:"commerce"},{type:"FitmentFinder",label:"Fitment Form",set:"commerce"},{type:"Gallery",label:"Tabbed Gallery",set:"commerce"},{type:"GalleryB",label:"Customer Photo Grid",set:"commerce"}]},{key:"product",title:"Product page",templateable:!0,sections:[{type:"ProductHero",label:"Product Hero",set:"commerce"},{type:"SpecTable",label:"Spec Table",set:"commerce"},{type:"ProcessSteps",label:"Image & Text Columns",set:"general"},{type:"DetailRows",label:"Feature Rows",set:"commerce"},{type:"FitmentTable",label:"Fitment Table",set:"commerce"},{type:"TyreSizes",label:"Tyre Sizes",set:"commerce"},{type:"TyreFitment",label:"Tyre Fitment Form",set:"commerce"},{type:"EuTyreLabel",label:"EU Tyre Label",set:"commerce"},{type:"RelatedProducts",label:"Related Products",set:"commerce"},{type:"BundleOffer",label:"Bundle Products",set:"commerce"}]},{key:"checkout",title:"Checkout & ordering",templateable:!0,sections:[{type:"OrderSummary",label:"Order Table",set:"general"},{type:"DeliveryOptions",label:"Delivery Options",set:"commerce"},{type:"PaymentBadges",label:"Payment Methods",set:"general"},{type:"CheckoutCTA",label:"Ready-to-Order Banner",set:"commerce"}]},{key:"about",title:"About & brand story",templateable:!0,sections:[{type:"Footprint",label:"Locations Map",set:"general"}]},{key:"content",title:"Text & content",templateable:!0,sections:[{type:"Prose",label:"Editorial Text",set:"general"},{type:"ParagraphsA",label:"Lead Text",set:"general"},{type:"Cards",label:"Cards",set:"general"}]},{key:"proof",title:"Stats & social proof",templateable:!0,sections:[{type:"Stats",label:"Stats",set:"general"},{type:"StatsParagraph",label:"Stats with Text",set:"general"},{type:"Chart",label:"Chart",set:"general"},{type:"Mockup",label:"Mockup Card",set:"general"},{type:"Testimonials",label:"Testimonials",set:"general"},{type:"Reviews",label:"Reviews",set:"service"},{type:"Logos",label:"Logos",set:"general"}]},{key:"promo",title:"Promotions & sign-ups",templateable:!0,sections:[{type:"Banner",label:"Banner",set:"general"},{type:"TitleWithButtons",label:"Call-to-Action Heading",set:"general"},{type:"Countdown",label:"Countdown",set:"general"}]},{key:"blog",title:"Blog & journal",templateable:!0,sections:[{type:"Masthead",label:"Issue Header",set:"general"},{type:"FeaturedCover",label:"Feature Banner",set:"general"},{type:"LongRead",label:"Article Text",set:"general"},{type:"Series",label:"Recurring Columns",set:"general"},{type:"Events",label:"Latest Posts",set:"service"}]},{key:"navigation",title:"Navigation & wayfinding",templateable:!0,sections:[{type:"Breadcrumb",label:"Breadcrumb",set:"general"},{type:"CategoryBar",label:"Category Bar",set:"general"},{type:"DocTabs",label:"Document Tabs",set:"general"}]},{key:"legal",title:"Legal & documents",templateable:!0,sections:[{type:"DocMasthead",label:"Document Header",set:"general"},{type:"DocBody",label:"Document Text",set:"general"},{type:"DocMetaCards",label:"Document Detail Cards",set:"general"}]},{key:"contact",title:"Contact, FAQ & forms",templateable:!0,sections:[{type:"FAQ",label:"Q&A",set:"general"},{type:"ContactRouting",label:"Contact Form",set:"service"},{type:"ContactLocations",label:"Contact / Locations",set:"general"},{type:"SubmitBuild",label:"Photo Submission Form",set:"service"},{type:"ReviewForm",label:"Review Form",set:"service"},{type:"Form",label:"Form",set:"service"},{type:"AppointmentBooking",label:"Booking Form",set:"service"}]},{key:"structure",title:"Layout, structure & embeds",templateable:!1,sections:[{type:"SectionHeader",label:"Section Header",set:"general"},{type:"Flex",label:"Box",set:"general"},{type:"Divider",label:"Divider",set:"general"},{type:"CustomHTML",label:"Custom HTML",set:"general"}]},{key:"layouts",title:"Layouts",templateable:!0,sections:[{type:"Manifesto",label:"Brand Text",set:"general"},{type:"Split",label:"Image & Text Split",set:"general"},{type:"Subscribe",label:"Signup Form",set:"service"},{type:"Ticker",label:"Scrolling Bar",set:"general"},{type:"SpecStrip",label:"Spec Strip",set:"general"},{type:"TimelineTrack",label:"Milestone Timeline",set:"general"},{type:"Timeline",label:"Story Timeline",set:"general"}]}];function Age(){return Object.fromEntries(Kt.map(e=>[e.key,{title:e.title,components:e.sections.map(o=>o.type),...e.defaultExpanded?{defaultExpanded:!0}:{}}]))}var v$={Grid:'Lewis, 2026-09-14: Box and Grid duplicate each other and it feels confusing. 2026-09-15 he chose the order: give Box uneven widths FIRST, then merge Grid into Box. Shown three ways to pick the widths (mockup "Uneven Box Widths"), he chose A \u2014 shape pictures on the Box\'s `Block widths` row, the same "a row is a shape, pick a picture of it" rule he set for the photo wall on 2026-09-07.\n\nWHAT REPLACES IT: a Box set to One row, with `Block widths` at Equal or a shape (Big left, Big right, Bigger left, Bigger right) and its own `Columns` in the Phone view. Measured on PRODUCTION 2026-09-16 ~09:28 AEST (database `efficient-system`, all 10 tenant schemas, 128 storefront pages, both `layout` and `published_layout` \u2014 256 documents): 2 Grid nodes, and they are ONE Grid counted twice \u2014 the 9DIEM homepage on 9diem.com (`xtreme_mudder` schema), once as draft and once as published. It is top-level, holds three `ImageBlock`s at `columns` 3 \u2014 equal thirds \u2014 and NO block sets `Positions`. A Box draws that with `Block widths` at Equal.\n\n\u26A0\uFE0F THE COUNT MOVES; THE RULE MUST NOT DEPEND ON IT. This entry has already carried three different readings. A local-clone snapshot said no Grid used `Positions`. A PRODUCTION reading on 2026-09-15 ~13:15 AEST found 6 nodes on two sites, 4 of them spanned \u2014 hartesmetal.com.au homepage and about, 4 columns, spans 1 + 3. That one was TRUE when it was taken and stopped being true the same day: those two pages were rebuilt on Box (`Block widths: Bigger right`), and on 2026-09-16 they hold zero Grid nodes and are built from `Flex`. \u26D4 So the rule is NOT "there are still N spanned Grids". NEVER delete the Grid component or its `gridSpan` handling, whatever a census says \u2014 Grid still renders, still edits, still drags, and a merchant may rebuild a page either way on any day. Re-run the census on production before anyone PROPOSES deleting either, and read any number written here as the reading of its own day, not as the state of the world.\n\nWHAT A MERCHANT LOSES: a new Grid, and with it a fixed "N per row" that wraps by itself past three across, and the per-block `Positions` number. Box wraps with `Wrap`, but by content width, not by a fixed count.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Grid still renders through it and can still be edited, dragged and added to; no document is rewritten and NO MIGRATION RUNS \u2014 the owner redoes live sections himself.\n\n\u26A0\uFE0F AND IT STAYS DROPPABLE WHERE IT LIVES. The drop rule in lib/document/config.tsx read the nestable containers off the catalogue\'s `structure` row, so leaving the catalogue would have made every open slot \u2014 a Box included \u2014 refuse a Grid already stored inside one. `scripts/test-retired-grid-stays-editable.tsx` \xA73 pins it.',CompatibleTyres:'Lewis, 2026-09-09: "Do not bother counting. Delete Compatible Tyres and use the new one. The new one needs complete settings \u2014 it must have every setting our cards have." Shown three ways to finish it, he chose C: retire from the menu now, and take styling the card text as its own card.\n\nWHAT REPLACES IT: `RelatedProducts` with its `Show` dropdown set to "Tyres that fit this product". That block is the GENERIC relationship section from card 1128 \u2014 it knows nothing about wheels or tyres, it asks the registry for a relationship by name. The two have rendered through the SAME renderer (`DynamicRelatedProducts`) since that card; this one is the pre-registry one-off that was never removed.\n\n\u26A0\uFE0F THE SWAP WAS NOT SAFE UNTIL #1305, AND SAYING SO IS THE POINT. The first old-versus-new table put in front of the owner was WRONG. `DynamicRelatedProducts` returns EARLY on a tyre answer and draws this component, so the seven card settings, the head split and the Width control all stopped at that call \u2014 nine settings, measured NO EFFECT, on precisely the relationship that replaces this block. #1283 gave the new block the card settings, #1299 the head split and its own Width, #1305 carried all of it onto the tyre branch. Only then was the claim true.\n\nWHAT WAS MEASURED BEFORE RETIRING, four ways, because the premise decides the card:\n \u2022 settable text kinds (SECTION_TEXT_KINDS): both blocks ABSENT \u2014 the map holds only TimelineTrack and Footprint, both AUTHORED lists\n \u2022 read-only text regions: neither `components/CompatibleTyres` nor `components/TyreCard` stamps one\n \u2022 panel rows through resolveFields: this block 31, `RelatedProducts` 42. This block\'s only style-ish key is `_sStyle`, the bucket HEADER, not a control\n \u2022 head text (num/title/description) is authored on both, so `_partStyles` reaches it identically\nSo on the CARD runs the two are zero against zero \u2014 neither can style them \u2014 and everywhere else the new block is ahead. Styling those runs needs a section-level prop family and a paint path for DERIVED text, which no section has yet: a part is anchored by matching an AUTHORED prop\'s string against the DOM, and `lib/document/source-bound-parts` keeps hydrated copy unreachable on purpose so a merchant cannot type into a copy of a product name and lose it at the next sync. That is its own card, and `lib/sections/text-regions` is the read-only half that already ships.\n\nTHE TYPE KEY STAYS AND SO DOES THE COMPONENT, the same contract Subscribe, Split and SubscribeBlogs have. Every page holding a `CompatibleTyres` still renders through it, no published document is rewritten, and NO MIGRATION RUNS \u2014 the owner\'s standing ruling of 2026-09-05: he redoes live sections himself and deletes the old ones when he does. He also said explicitly not to count them first.\n\n\u26A0\uFE0F AND THIS COMPONENT IS LOAD-BEARING FOR ITS OWN REPLACEMENT: `DynamicRelatedProducts` draws it for EVERY tyre answer. Deleting it would blank the block that replaces it, not just the pages still holding this one.',Spacer:`Lewis, 2026-10-10 (section-merges.md group 19, approved): one Divider holds space and lines. Style = None (was Spacer) / Line / Stripes; the space above and below as number boxes. Retired by card [MERGE] Spacer Into Divider (2026-10-26).
|
|
7
|
+
|
|
8
|
+
WHAT REPLACES IT: a Divider with Style set to None. It draws no line, only its space, and that space is the Divider's Padding row (top and bottom, each with its phone value): the Spacer's 24 / 48 / 96 / 160 px are None with Padding 12 + 12, 24 + 24, 48 + 48, 80 + 80. \`scripts/test-divider-holds-the-spacer.tsx\` \xA75 holds it.
|
|
9
|
+
|
|
10
|
+
WHAT A MERCHANT LOSES on a NEW space: nothing the Spacer had. Four fixed sizes become any number on the 4px grid, top and bottom apart, and a phone value.
|
|
11
|
+
|
|
12
|
+
NO CONVERTER ROW: 0 Spacer nodes on any page, draft or published, in any schema of the local production clone (read-only count, 2026-10-26), and none in the backend's seed files. This entry is its reason in the guard (\`scripts/test-section-to-box.tsx\` \xA75: a retired type is accounted for).
|
|
13
|
+
|
|
14
|
+
THE TYPE KEY STAYS AND SO DOES THE COMPONENT. A Spacer anywhere still renders through it and can still be edited; no document is rewritten.`,KeyFeatures:`Lewis, 2026-10-10 (section-merges.md group 4, approved): one Cards section holds Cards and Key Features; Key Features' diamond cells are the card style "Label only". Retired by card [MERGE] One Text Block And Click Through Parts (2026-10-22).
|
|
15
|
+
|
|
16
|
+
WHAT REPLACES IT: a Cards section with Card style set to Label only. It draws this section's own component (\`components/KeyFeatures\`), so for the same words it draws the same bytes: the pill eyebrow when no look is stored, the columns, each cell's link. A cell's words are the card's \`title\` (row "Feature label"), its link the card's \`href\` (row "Link"), both shown under Label only. \`scripts/test-cards-label-only.tsx\` \xA72 holds the bytes.
|
|
17
|
+
|
|
18
|
+
WHAT A MERCHANT LOSES on a NEW Label only section: nothing this section had. It GAINS the Cards head split (its head can move into a box of its own), which Key Features never had: that head draws the shared \`simple\` head, eyebrow ABOVE the heading, where Key Features drew it beside.
|
|
19
|
+
|
|
20
|
+
THE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Key Features still renders through it and can still be edited; no document is rewritten and NO MIGRATION RUNS.`,SubscribeBlogs:"card 66396 \u2014 folded into `Subscribe`, which now chooses its rail's content with a `Type` control (the newsletter's own issues, or live blog posts). The two shared 21 of their fields and rendered THE SAME BYTES from equivalent rows, so offering both asked a merchant to choose between two names for one section. The type key stays because it is stored on published pages, and the component stays because those pages still render through it."},Rge=["Grid","Spacer"],Lge=Array.from(new Set([...Kt.flatMap(e=>e.sections.map(o=>o.type)),...Object.keys(v$)])),I0=Object.fromEntries(Kt.flatMap(e=>e.sections.map(o=>[o.type,o.label]))),T$={Heading:"general",Text:"general",Eyebrow:"general",ImageBlock:"general",LogoBlock:"general",LocationMap:"general",Contents:"general",ButtonBlock:"general",PostCard:"general",HeroSlide:"general",HeroGroup:"general",Integrations:"general",Grid:"general",KeyFeatures:"general",Spacer:"general",CollectionCard:"commerce",GalleryItem:"commerce",ProductRef:"commerce",CompatibleTyres:"commerce",Header:"commerce",SearchBlock:"commerce",CartBlock:"commerce",CountrySwitchBlock:"commerce",AccountBlock:"commerce",ThemeSwitchBlock:"commerce",ProductGallery:"commerce",EuTyreLabelBlock:"commerce",SubmitBox:"service",BookingBox:"service",SubscribeBlogs:"service",RatingBlock:"service",Footer:"service",FooterLogo:"service",FooterMenu:"service",FooterDivider:"service",FooterGroup:"service",FooterText:"service",FooterEmailSignup:"service",FooterSocial:"service",FooterPayment:"service",MenuBlock:"service",EmailFormBlock:"service",SocialLogosBlock:"service",PaymentLogosBlock:"service",LegalLineBlock:"service",SiteHeader:"service",SiteFooter:"service"},Oc={...T$,...Object.fromEntries(Kt.flatMap(e=>e.sections.map(o=>[o.type,o.set])))};function g0(e){return Object.prototype.hasOwnProperty.call(Oc,e)?Oc[e]:void 0}function $m(e){return Object.keys(Oc).filter(o=>Oc[o]===e).sort()}var Bge=$m("general"),Dge=$m("commerce"),Nge=$m("service"),jm="Flex",qt="Box",Mge=`${qt}es`;function P$(e){return e==="section"?"Blank section":qt}function Km(e,o,t){return e===jm?P$(o):t}var O$={general:!0,commerce:!0,service:!0};function qm(e){let o=e?.sets;return o?Object.fromEntries(x0.map(t=>[t,o.includes(t)])):O$}function Vm(e=E$()){return qm(e.blocks)}import{isBackendError as Ka}from"efficient-easel/screen/lib/backend-error";import{isEfficientBackend as G0}from"efficient-easel/screen/lib/session";import{useSyncExternalStore as _$}from"react";var za=new Map,Ym=new Set;function Xm(e,o){if(!(za.has(e)&&za.get(e)===o)){za.set(e,o);for(let t of Ym)t()}}function _c(e,o){Xm(e,o)}function Fc(e,o){let t=za.get(e);Xm(e,o??(t==="live"?"changed":t))}function Ac(e,o){Xm(e,o??"live")}function b0(e){return za.get(e)}function F$(e){return Ym.add(e),()=>{Ym.delete(e)}}function y0(e){let o=()=>e?za.get(e):void 0;return _$(F$,o,o)}function S0(e,o){return e==="live"&&o?"changed":e}function Zm({live:e,onPress:o,busy:t=!1,pinnedUnpublished:r=!1,goingLive:a}){let n=e==="live"&&!r,s=e==="changed"?i("Changes not live yet"):e==="never"?i("Never published"):r?i("Header and footer not live yet"):e==="live"?i("Everything is live"):null;return{label:i("Publish"),tooltip:e==="never"?i("Put this page on your site"):i("Put your changes on your site"),status:s,quiet:n?{label:i("Published"),reason:i("Everything is live")}:null,...a&&a.length?{goingLive:a}:{},onPress:o,busy:t}}function C0(e){return e.map(o=>o.change==="take_down"?i("{name} (taken down)",{name:o.name}):o.name)}var _e="SiteHeader",Te="SiteFooter",Jm="sections",Kge=[_e,Te],Ua=e=>e===_e||e===Te,w0=e=>`${e}:${Jm}`;function k0(e,o,t=[]){return{type:e,props:{id:o,[Jm]:t}}}var A$=new Set(["Footer",_e,Te]);function $a(e){let o=new Set,t=!1,r=e.filter(a=>{let n=a?.type??"";return n==="Header"?(t=!0,!1):A$.has(n)?o.has(n)?(t=!0,!1):(o.add(n),!0):!0});return t?r:e}function Rc(e,o){return e.some(t=>t?.type===o.type)?e:o.type===_e?[o,...e]:[...e,o]}var v0={[_e]:{max:3,takes:["Flex","Ticker"]},[Te]:{max:6,takes:["Flex","Prose","Logos","Divider"]}};function T0(e,o,t){if(!Ua(e))return!0;let r=v0[e];return t<r.max&&r.takes.includes(o)}function P0(e,o){let t=o,r=t?.props?.id;if(r==null)return null;let a=e?.content;if(!Array.isArray(a))return null;for(let n of a){if(!Ua(n?.type))continue;let s=n.props?.[Jm];if(!Array.isArray(s)||!s.some(c=>c?.props?.id===r))continue;let l=v0[n.type];return l.takes.includes(t?.type??"")?s.length>=l.max?{group:n.type,why:"full"}:null:{group:n.type,why:"type"}}return null}import{isNode as R$}from"efficient-easel/data";var E0="Footer",L$=[_e,E0,Te],ja=e=>{let o=e?.content;return Array.isArray(o)?o:[]},Mr=e=>{let o=e?.zones;return o&&typeof o=="object"&&!Array.isArray(o)?o:null},fs=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0},O0=e=>fn(e)?.ownerId??"";function _0(e){let o=$a(ja(e)),t=o.some(r=>r?.type===Te);return o.filter(r=>r?.type===_e||r?.type===Te||r?.type===E0&&!t)}function Qm(e,o){let t=new Set,r=a=>{if(Array.isArray(a)){for(let n of a)r(n);return}if(!(!a||typeof a!="object")){if(R$(a)){let n=fs(a);n&&t.add(n)}for(let n of Object.values(a))r(n)}};if(r(e),o){let a=!0,n=new Set;for(;a;){a=!1;for(let[s,l]of Object.entries(o))n.has(s)||!t.has(O0(s))||(n.add(s),r(l),a=!0)}}return t}function eh(e,o){let t={},r={};for(let[a,n]of Object.entries(e??{}))(o.has(O0(a))?t:r)[a]=n;return{owned:t,rest:r}}function F0(e,o){if(!o)return e;let t=_0(o);if(!t.length)return e;let r=t.filter(l=>l.type===_e),a=t.filter(l=>l.type!==_e),n={...e,content:[...r,...ja(e),...a]},{owned:s}=eh(Mr(o),Qm(t,Mr(o)));return Object.keys(s).length&&(n.zones={...Mr(e)??{},...s}),n}function oh(e,o){if(!o)return{page:e,chrome:null};let t=_0(o),r=new Set(t.map(fs).filter(C=>!!C)),a=[],n=[];for(let C of ja(e)){let I=fs(C);I&&r.has(I)||Ua(C?.type)?n.push(C):a.push(C)}let s=new Map(n.map(C=>[fs(C),C])),l=new Set,c=$a(ja(o)).flatMap(C=>{let I=fs(C);if(!I||!r.has(I))return[C];let w=s.get(I);return w?(l.add(w),[w]):[]});for(let C of n)l.has(C)||c.some(I=>I?.type===C.type)||(c=C.type===_e?[C,...c]:[...c,C]);c=$a(c);let d=c.length===ja(o).length&&c.every((C,I)=>C===ja(o)[I]),u=Mr(e),h=Qm(c,u),{owned:p,rest:x}=eh(u,h),g=eh(Mr(o),Qm(t,Mr(o))).owned,y={...o,content:d?o.content:[...c]},E=Mr(o);if(E||Object.keys(p).length){let C={};for(let[I,w]of Object.entries(E??{}))I in g?I in p&&(C[I]=p[I]):C[I]=w;for(let[I,w]of Object.entries(p))I in C||(C[I]=w);y.zones=C,E&&B$(y.zones,E)&&(y.zones=E)}let O={...e,content:a};return u&&(Object.keys(x).length||!Object.keys(g).length?O.zones=x:delete O.zones),{page:O,chrome:y}}function B$(e,o){let t=Object.keys(e),r=Object.keys(o);return t.length===r.length&&t.every((a,n)=>a===r[n]&&e[a]===o[a])}function A0(e,o){return t=>e(t)||t!==void 0&&L$.includes(t)&&o()}var R0="SharedSection",D$=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,us=e=>{let o=e?.content;return Array.isArray(o)?o:[]},ps=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0};function L0(e){if(e?.type!==R0)return null;let o=e.props?.section;return typeof o=="string"&&D$.test(o)?o.toLowerCase():null}function B0(e){let o=[];for(let t of us(e)){let r=L0(t),a=ps(t);r&&a&&o.push({refId:a,section:r})}return o}function Lc(e){let o=us(e)[0];return o&&typeof o=="object"&&ps(o)?o:null}function N$(e,o){return{type:R0,props:{id:e,section:o}}}function D0(e,o){let t=new Map,r=new Set,a=!1,n=us(e).map(s=>{let l=L0(s),c=ps(s);if(!l||!c||r.has(l))return s;let d=Lc(o.get(l)),u=ps(d??void 0);return!d||!u||t.has(u)?s:(r.add(l),t.set(u,{section:l,refId:c,reference:s}),a=!0,d)});return{working:a?{...e,content:n}:e,held:t}}function N0(e,o,t){let r=new Map,a=!1,n=us(e).map(s=>{let l=ps(s),c=l?o.get(l):void 0,d=c?t.get(c.section):void 0;if(!c||!d||r.has(c.section))return s;let u=us(d).slice(1),h=Lc(d);return r.set(c.section,h===s?d:{...d,content:[s,...u]}),a=!0,c.reference??N$(c.refId,c.section)});return{page:a?{...e,content:n}:e,docs:r}}var M0=null;function th(e){M0=e}function Ct(){return M0}var H0=null;function rh(e){H0=e}function Bc(){return H0}var Dc=null;function ah(e){Dc=e}function W0(){return!!(Dc&&Dc.state().lockHolder)}function Hr(){return Dc!==null}function lh(e){return!!(e?.publish&&e.liveState)}function M$(e,o){if(!lh(e))return;let{versions:t,nameVersion:r,restoreVersion:a,previewVersion:n}=e;if(!(!t||!r||!a||!n))return{list:()=>t.call(e,o),name:(s,l)=>r.call(e,s,l,o),restore:(s,l)=>a.call(e,s,l??{},o),preview:s=>n.call(e,s,o)}}function H$(e,o){return async(t,r)=>{try{await Ib()}catch(a){throw new Error(i("A change waiting to go live could not be saved."),{cause:a})}return(await e.publish(o)).state==="live"?Ol({state:"live",changes:[]}):pt(0),{version:r??null}}}function sh(e,o,t){let r=o?{siteId:o}:void 0;return{resolve:a=>e.load({slug:a,...r}).then(n=>(n&&_c(n.id,n.live),n)),saveLayout:(a,n,s,l)=>e.save(a,{layout:n},{version:s,clientId:l??""}).then(c=>(Fc(a,c.live),pt(),c)),rereadVersion:e.version?a=>e.version(a):void 0,publish:lh(t)?H$(t,r):e.publish?(a,n)=>e.publish(a,n?{version:n}:void 0).then(s=>(Ac(a,s.live),s)):void 0,listPages:()=>e.list(r),createPage:e.create?a=>e.create({...a,...r}):void 0,deletePage:e.remove?(a,n)=>e.remove(a,n):void 0}}function W$(e,o,t,r,a=!1){let n=null,s=new Set,l=!1,c=new Map,d=new Map,u=new Map,h=new Map,p={docId:null,lockHolder:null,conflict:null,saveFailed:!1,unpublished:!1,loadFailed:!1,sections:[]},x=new Set,g=()=>{if(!n)return!1;let P=b0(n.id);return P==="changed"||P==="never"||P===void 0&&l},y=P=>{p={...p,...P,docId:n?.id??null,unpublished:g(),sections:[...u.values()]};for(let F of x)F()},E=(P,F,N)=>{F?u.set(P,{section:P,title:c.get(P)?.title??"",problem:F,holder:N}):u.delete(P)},O=P=>P&&typeof P=="object"&&!Array.isArray(P)?P:{},C=P=>s.has(P),I=()=>new Map([...c].map(([P,F])=>[P,F.layout])),w=()=>`SharedSection-${typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2)}`,v=(P,F,N,b)=>{let _=O(F);c.set(P,{layout:_,version:N,savedJson:JSON.stringify(_),title:b})},k={state:()=>p,subscribe:P=>(x.add(P),()=>{x.delete(P)})},A={sectionOf:P=>d.get(P)?.section??null,heldElsewhere:P=>{let F=d.get(P)?.section;return!!(F&&u.get(F)?.problem==="lock")},adopt:(P,F)=>{v(F.id,F.layout,F.layout_updated_at,F.title),d.set(P,{section:F.id,refId:w()}),h.set(F.id,F.used_on),y({})},place:P=>{if([...d.values()].some(b=>b.section===P.id))return null;let F=Lc(O(P.layout)),N=typeof F?.props?.id=="string"?F.props.id:null;return!F||!N||!F.type?null:(v(P.id,P.layout,P.layout_updated_at,P.title),d.set(N,{section:P.id,refId:w()}),h.set(P.id,P.used_on),F)},usedOn:P=>h.get(P)??null,learn:P=>{for(let F of P){h.set(F.id,F.used_on);let N=c.get(F.id);N&&(N.title=F.title);let b=u.get(F.id);b&&u.set(F.id,{...b,title:F.title})}y({})}},D=async(P,F)=>{for(let[N,b]of P){let _=c.get(N),R=JSON.stringify(b);if(!(!_||R===_.savedJson||u.get(N)?.problem==="lock"))try{let H=await e.save(N,{layout:b},{version:_.version,clientId:F??""});Fc(N,H.live),_.layout=b,_.version=H.version,_.savedJson=R,E(N,null)}catch(H){Ka(H,"changed-elsewhere")?E(N,"conflict"):Ka(H,"lock-taken")?E(N,"lock",H.holder??void 0):E(N,"save")}}P.size&&pt(),y({})};return{resolve:async P=>{if(ah(P===Do?null:k),th(P===Do?null:A),c=new Map,d=new Map,u=new Map,h=new Map,P===Do)return t.resolve(P);let F=!1,[N,b]=await Promise.all([t.resolve(P),e.load({slug:Do,...o}).catch(()=>(F=!0,null))]);if(b&&!bn(N?.layout)){_c(b.id,b.live);let K=O(b.layout);n={id:b.id,layout:K,version:b.version,savedJson:""}}else n=null;if(l=!1,!N)return y({conflict:null,saveFailed:!1,loadFailed:F}),N;let _=O(N.layout),R=B0(_),H=await Promise.all(R.map(K=>e.load({id:K.section,...o}).catch(()=>null)));R.forEach((K,Le)=>{let be=H[Le];be?(_c(be.id,be.live),v(K.section,be.layout,be.version,"")):(c.delete(K.section),u.set(K.section,{section:K.section,title:"",problem:"load"}))});let U=D0(_,I());if(d=U.held,!n)return d.size&&s.add(N.id),y({conflict:null,saveFailed:!1,loadFailed:F}),d.size?{...N,layout:U.working}:N;let Z=F0(U.working,n.layout);return n.savedJson=JSON.stringify(oh(Z,n.layout).chrome),s.add(N.id),y({conflict:null,saveFailed:!1,loadFailed:!1}),{...N,layout:Z}},saveLayout:async(P,F,N,b)=>{if(!C(P))return t.saveLayout(P,F,N,b);let _=n,R=_?oh(F,_.layout):{page:F,chrome:null},H=N0(R.page,d,I()),U=await t.saveLayout(P,H.page,N,b);if(await D(H.docs,b),!_)return U;let Z=JSON.stringify(R.chrome);if(!R.chrome||Z===_.savedJson||p.lockHolder)return U;try{let K=await e.save(_.id,{layout:R.chrome},{version:_.version,clientId:b??""});Fc(_.id,K.live),pt(),_.layout=R.chrome,_.version=K.version,_.savedJson=Z,l=!0,y({conflict:null,saveFailed:!1})}catch(K){Ka(K,"changed-elsewhere")?y({conflict:K.conflict??{savedBy:"",savedByYou:!1,secondsAgo:0}}):Ka(K,"lock-taken")?y({lockHolder:K.holder??{name:"",secondsSinceSeen:0,secondsSinceHeld:0}}):y({saveFailed:!0})}return U},publish:t.publish?async(P,F)=>{let N=await t.publish(P,F),b=n;if(b&&C(P)&&!a&&e.publish&&g()&&!p.lockHolder){let _=await e.publish(b.id,b.version?{version:b.version}:void 0);Ac(b.id,_.live),_.version!==null&&(b.version=_.version),l=!1,y({})}if(C(P)&&!a&&e.publish)for(let[_,R]of c){if(u.get(_)?.problem==="lock")continue;let H=await e.publish(_,R.version?{version:R.version}:void 0);Ac(_,H.live),H.version!==null&&(R.version=H.version)}return N}:void 0,lock:r?{claim:async(P,F,N)=>{let b=await r.claim(P,F,N);if(!C(P))return b;let _=n;if(_)try{await r.claim(_.id,F,!1),p.lockHolder&&y({lockHolder:null})}catch(R){Ka(R,"lock-taken")&&y({lockHolder:R.holder??{name:"",secondsSinceSeen:0,secondsSinceHeld:0}})}for(let R of c.keys())try{await r.claim(R,F,!1),u.get(R)?.problem==="lock"&&E(R,null)}catch(H){Ka(H,"lock-taken")&&E(R,"lock",H.holder??void 0)}return c.size&&y({}),b},release:async(P,F)=>{if(await r.release(P,F),!C(P))return;let N=n;N&&!p.lockHolder&&await r.release(N.id,F).catch(()=>{});for(let b of c.keys())u.get(b)?.problem!=="lock"&&await r.release(b,F).catch(()=>{})}}:void 0,pinnedChrome:k}}function Nc(e){let o=(t,r,a)=>e.save(t,r.layout?{...r,layout:Ev(r.layout)}:r,a);return new Proxy(e,{get(t,r){if(r==="save")return o;let a=Reflect.get(t,r,t);return typeof a=="function"?a.bind(t):a}})}function xbe(e,o,t){return e.update(o,Ov(t))}function Ibe(e,o=Me(),t=Vm(),r={}){let a=G0(o),n=e?{siteId:e}:void 0,s=a?!!e:!0,l=o.site.update,c=a&&t.commerce&&t.service,d=!!r.editsPinnedInPlace&&c,u=lh(o.site)?o.site:void 0,h=Nc(o.pages),p=sh(h,e,u),x=d?W$(h,n,p,o.lock,!!u):null;return{capabilities:{canPublish:!!u||!!o.pages.publish,hasSiteSettings:a,hasSiteTheme:!!o.theme,placeholderFrames:!1,mediaEditing:!0,pageCreationInAdminForm:!o.pages.create,canDeletePagesInline:!!o.pages.remove,hasEditLock:!!o.lock,hasEditGuard:!0,hasPinnedChrome:c,editsPinnedInPlace:d,explainsSiteSettings:!1,hasSiteRecord:s,canEditSiteRecord:s&&!!l,hasPreviewLink:a||!!o.preview,hasCatalog:a&&t.commerce,hasForms:a&&t.service,hasBlog:!!o.blog&&t.service,offersCommerce:t.commerce,offersService:t.service},...p,...z0(p.resolve),lock:o.lock,...x,site:s?()=>o.site.get(n):void 0,siteLiveState:u?()=>u.liveState(n):void 0,siteVersions:M$(u,n),updateSite:s&&l?g=>l(g,n):void 0,previewHref:o.preview?g=>o.preview.href(g):void 0}}function gbe(e,o=Me(),t=Vm()){let r=G0(o),a=o.templates,n=a?Nc(a.pages(e)):{list:()=>Promise.reject(new Error(nh)),load:()=>Promise.reject(new Error(nh)),save:()=>Promise.reject(new Error(nh))};return{capabilities:{canPublish:!1,hasSiteSettings:!1,hasSiteTheme:!1,placeholderFrames:!0,mediaEditing:!1,pageCreationInAdminForm:!n.create,canDeletePagesInline:!!n.remove,hasEditLock:!1,hasEditGuard:!1,hasPinnedChrome:r&&t.commerce&&t.service,editsPinnedInPlace:!1,explainsSiteSettings:r,hasSiteRecord:!1,canEditSiteRecord:!1,hasPreviewLink:!1,hasCatalog:r&&t.commerce,hasForms:r&&t.service,hasBlog:!!o.blog&&t.service,offersCommerce:t.commerce,offersService:t.service},...sh(n,void 0),...z0(sh(n,void 0).resolve),publish:void 0,templateName:a?()=>a.get(e).then(s=>s.name):void 0}}function z0(e){return{resolve:o=>(ah(null),th(null),e(o))}}var nh="This editor's backend has no website templates.";function U0({node:e,currentSlug:o,siteId:t,tokenRef:r,runAuthed:a,onNotify:n}){let[s,l]=ms(!1),[c,d]=ms(null),u=V$(),[h,p]=ms(!1),[x,g]=ms(null),y=U$(null),[E,O]=ms(null),C=z$(async()=>{if(u.usesBridgedToken&&!r.current){p(!0);return}try{d(await Me(u).pages.list(t?{siteId:t}:void 0))}catch{p(!0)}},[r,t,u]),I=()=>{if(s){l(!1);return}let k=y.current?.getBoundingClientRect();k&&O({top:k.bottom+6,right:Math.max(8,window.innerWidth-k.right)}),d(null),p(!1),C(),l(!0)},w=(c??[]).filter(k=>k.slug!==o),v=async k=>{if(x)return;g(k.slug);let A=Y$(e),D=u.documentHooks?.storedNode?.(A)??A,P=await a(()=>Z$(Me(u).pages,k,D));g(null),l(!1),n?.(P?i("Duplicated to \u201C{name}\u201D",{name:k.label}):i("Couldn\u2019t duplicate the section \u2014 please retry"),P?"success":"error")};return ih(G$,{children:[jo("span",{"data-menu-toggle":!0,style:{display:"contents"},children:jo($$,{buttonRef:y,label:i("Duplicate to another page"),hasPopup:"menu",expanded:s,onClick:I,children:jo(q$,{size:15})})}),s&&E&&jo(j$,{portal:!0,style:{top:E.top,right:E.right},onClose:()=>l(!1),children:ih("div",{role:"menu","aria-label":i("Duplicate to page"),children:[jo(Mc,{children:i("Duplicate to page")}),h?jo(Mc,{children:i("Couldn\u2019t load pages")}):c===null?jo(Mc,{children:i("Loading\u2026")}):w.length===0?jo(Mc,{children:i("No other pages")}):w.map(k=>ih(K$,{role:"menuitem",disabled:x!==null,onClick:()=>{v(k)},children:[jo("span",{className:"min-w-0 flex-1 truncate",children:k.label}),x===k.slug?jo("span",{className:"shrink-0 text-xs",children:i("Copying\u2026")}):k.draft&&jo("span",{className:"shrink-0 text-xs",children:i("draft")})]},k.id))]})})]})}async function Z$(e,o,t){let r=Nc(e),a=await r.load({id:o.id});if(!a)throw new Error(`Page "${o.slug}" no longer exists.`);let n=a.layout??{},s=Array.isArray(n.content)?[...n.content]:[],l=s.findIndex(c=>c?.type===X$);s.splice(l===-1?s.length:l,0,t),await r.save(o.id,{layout:{root:{},zones:{},...n,content:s}},{version:a.version,clientId:""})}import{useScreenDocument as R8}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSectionOps as L8}from"efficient-easel/screen/lib/document/use-section-ops";import{SELECTION_MODE as Gye,isSelectionMode as ph}from"efficient-easel/screen/lib/screen-parts";import{usePreviewParts as B8}from"efficient-easel/draw/client";import{jsx as hs,jsxs as J$}from"react/jsx-runtime";import{SettingsDrill as Q$}from"efficient-easel/panel";import{UiIcon as e8}from"efficient-easel/draw/client";var o8="Not shown on the page";function t8({part:e,onOpen:o}){return hs(Q$,{name:i(e.label),preview:e.offPage?i(o8):e.preview||i("Empty"),offPage:e.offPage,status:e.hidden?hs("span",{className:"sf-entry-eye",role:"img","aria-label":i("Hidden on the page"),children:hs(e8,{name:"eye-off",size:14})}):void 0,onOpen:()=>o(e.key)})}function ch(e){return e.filter(o=>!o.identifier)}function $0({parts:e,onOpen:o,heading:t=!0}){let r=ch(e);return r.length?J$("div",{className:"sf-entries",children:[t?hs("h3",{className:"sf-entries-head",children:i("Text")}):null,r.map(a=>hs(t8,{part:a,onOpen:o},a.key))]}):null}import{HEADER_TYPE as D8,ROOT_ZONE as sT}from"efficient-easel/draw";import{HEADER_TYPE as xo,FOOTER_TYPE as Fe,newNodeId as r8}from"efficient-easel/draw";function Hc(){return{type:xo,props:{id:r8(xo)}}}var j0=[{type:"FooterLogo",label:"Logo"},{type:"FooterMenu",label:"Menu"},{type:"FooterText",label:"Text"},{type:"FooterEmailSignup",label:"Email Form"},{type:"FooterSocial",label:"Social Logos"},{type:"FooterPayment",label:"Payment Logos"},{type:"FooterGroup",label:"Footer Box"}],a8=j0.filter(e=>e.type!=="FooterLogo"&&e.type!=="FooterGroup"),n8="FooterGroup",K0="blocks";function q0(e){return e===Fe?j0:e===n8?a8:null}function Wc(){let e=(o,t)=>({type:o,props:{id:`${o}-${crypto.randomUUID()}`,...t}});return[e("FooterLogo",{widthPct:100,align:"left",tagline:""}),e("FooterEmailSignup",{...Kb}),e("FooterPayment",{...qb})]}function dh(e){switch(e?.type){case _e:case Te:return i("On every page");case xo:case Fe:return i("On every page \xB7 old style");default:return null}}var V0=()=>null,Y0=()=>i("Changed on every page");function Gc(e,o){let t=xg(e,o);if(t)return t;let r=P0(e,o);if(!r)return null;let a=r.group===_e;return r.why==="type"?a?i("The header cannot take another one of these"):i("The footer cannot take another one of these"):a?i("The header holds at most 3 sections"):i("The footer holds at most 6 sections")}import{jsx as Uc,Fragment as m8,jsxs as h8}from"react/jsx-runtime";import{useState as x8}from"react";import{createNode as I8,newId as g8}from"efficient-easel/data";import{useEasel as b8}from"efficient-easel/easel";import{Banner as y8,Button as fh}from"efficient-shell/ui";import{useScreenDocument as S8}from"efficient-easel/screen/components/ScreenDocumentContext";var zc="Flex",s8={FooterMenu:"MenuBlock",FooterEmailSignup:"EmailFormBlock",FooterSocial:"SocialLogosBlock",FooterPayment:"PaymentLogosBlock"},l8=e=>{let{id:o,...t}=e;return t},X0=e=>typeof e=="string"?e:"",Z0={sm:12,md:13,lg:15},i8="md",J0=1.5,c8={size:13,lineHeight:J0,width:280},d8=14,f8=40,u8=e=>e==="center"||e==="right"?e:"left";function p8(e){let o={},t=[["padTop","sectionPaddingTop"],["padRight","sectionPaddingRight"],["padBottom","sectionPaddingBottom"],["padLeft","sectionPaddingLeft"]];for(let[r,a]of t){let n=j(e[r]);n&&(o[a]=n)}return o}function Q0(e,o){let t=e.props??{},r=s8[e.type];if(r)return[o(r,l8(t))];switch(e.type){case"FooterLogo":{let a=u8(t.align),n=o("LogoBlock",{...t.reverse?{reverse:t.reverse}:{},...typeof t.customColor=="string"&&t.customColor?{customColor:t.customColor}:{},heightPx:Math.round(yI*((j(t.widthPct)??100)/100)),href:"/",align:a,...p8(t)}),s=X0(t.tagline).trim();return s?[n,o("Text",{text:s,tone:"dim",align:a,_partStyles:{text:{...c8}}})]:[n]}case"FooterText":{let a=typeof t.size=="string"&&t.size in Z0?t.size:i8;return[o("Text",{text:X0(t.text),tone:typeof t.tone=="string"?t.tone:"default",_partStyles:{text:{size:Z0[a],lineHeight:J0}}})]}case"FooterDivider":{let a=j(t.thickness),n=j(t.lengthPct);return[o("Divider",{...a!==void 0?{thickness:a}:{},...n!==void 0?{lengthPct:n}:{},...t.hideOnMobile===!0?{hideOnMobile:!0}:{}})]}case"FooterGroup":{let a=Array.isArray(t.blocks)?t.blocks:[];return[o(zc,{direction:t.direction==="horizontal"?"row":"column",gap:br("FooterGroup",t.gap),align:t.align==="center"||t.align==="end"||t.align==="stretch"?t.align:"start",...Sn,content:a.flatMap(n=>Q0(n,o))})]}default:return[]}}function xs(e,o,t){let r=e&&Array.isArray(e.props?.blocks)?e.props.blocks:[],a=d=>o(zc,{direction:"row",wrap:!0,share:"equal",gap:f8,content:d}),n=[],s=[];for(let d of r){let u=Q0(d,o);if(d.type==="FooterDivider"){s.length&&n.push(a(s)),s=[],n.push(...u);continue}u.length<=1?s.push(...u):s.push(o(zc,{direction:"column",gap:d8,align:"stretch",...Sn,content:u}))}(s.length||!n.length)&&n.push(a(s));let l=o(zc,{direction:"column",content:[o("LegalLineBlock")]}),c=k0(Te,t,[...n,l]);return{...c,props:{...c.props,...e?.props?.width==="full"?{fullWidth:!0}:{}}}}function eT(){let{appState:e,dispatch:o,config:t}=b8(u=>u),{readOnly:r}=S8(),[a,n]=x8(!1),s=e.data.content;if(r||s.some(u=>u.type===Te))return null;let l=s.find(u=>u.type===Fe)??null,c=(u,h)=>I8(t,u,h),d=()=>{let u=xs(l,c,g8(Te));o({type:"setData",data:h=>({...h,content:[...Rc(h.content,u)]}),recordHistory:!0}),n(!1)};return Uc(y8,{tone:"info",title:i("This footer uses the old layout"),action:a?h8(m8,{children:[Uc(fh,{variant:"primary",size:"sm",onClick:d,children:i("Switch now")}),Uc(fh,{variant:"secondary",size:"sm",onClick:()=>n(!1),children:i("Cancel")})]}):Uc(fh,{variant:"secondary",size:"sm",onClick:()=>n(!0),children:i("Switch to Box footer")}),children:i("Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.")})}import{jsx as uh,jsxs as C8}from"react/jsx-runtime";import{InspectorUpLevel as oT}from"efficient-easel/chrome";function tT({nodeId:e,part:o,sectionName:t,onUpToSection:r}){let{select:a}=oc(),n=Na(e,o,"block");return C8("div",{children:[o!=="media"?uh(oT,{inline:!0,name:i(La.media),onSelect:()=>a(jn(e,"media"))}):uh(oT,{inline:!0,name:i(t),onSelect:r}),uh(at,{part:o,motion:n})]})}import{SettingsSwitch as N8}from"efficient-easel/panel";var iT={kind:"header"},hh={kind:"website"},cT={kind:"website",tab:Fa,revealPageGroup:!0},dT={kind:"chat"},fT={kind:"social"},Is="Part";function M8(e){return i("Part of {name}",{name:i(e)})}function H8(e,o,t){let r=e.describeNode(o);return{name:t,kindLabel:r?M8(r.label):i(Is)}}function W8(e){switch(e){case"Header":return{title:i("Header settings belong to a website."),own:i("Each website created from this template sets its own header afterwards.")};case"Appearance":return{title:i("Appearance settings belong to a website."),own:i("Each website created from this template sets its own appearance afterwards.")};case"Live chat":return{title:i("Live chat settings belong to a website."),own:i("Each website created from this template sets its own live chat afterwards.")};case"Social link":return{title:i("Social link settings belong to a website."),own:i("Each website created from this template sets its own social link afterwards.")};default:return{title:i("{what} settings belong to a website.",{what:e}),own:i("Each website created from this template sets its own {what} afterwards.",{what:e.toLowerCase()})}}}function uT({what:e}){let o=W8(e);return Wr("div",{className:"sf-note",children:[pe("p",{children:pe("strong",{children:o.title})}),Wr("p",{children:[i("A template is a blueprint \u2014 it has no website of its own, so there is nothing here to change.")," ",o.own]})]})}function mh(e){let o=$n[e];return{name:La[e],kindLabel:Is,icon:o,head:(t,r)=>{if(t.kind!==o)return null;let a=r.describeNode(t.nodeId);if(!a)return null;let n=lT({name:i(tc(e,a.props)),tier:"part",of:i(a.label)},{partOf:({name:s})=>i("Part of {name}",{name:s})});return{name:n.name,kindLabel:n.kind}},render:(t,r)=>t.kind===o?pe(tT,{nodeId:t.nodeId,part:e,sectionName:r.describeNode(t.nodeId)?.label??"Hero",onUpToSection:()=>r.onSelectNode(t.nodeId)}):null}}var G8={header:{name:"Header",kindLabel:"Site settings",icon:"header",render:(e,o)=>{let t=o.hostPanels?.header;return t?pe(t,{placeholderMode:o.capabilities.placeholderFrames,tokenRef:o.tokenRef,siteId:o.siteId,websiteName:o.websiteName,onOpenWebsiteSettings:o.onOpenWebsiteSettings,onAuthExpired:()=>o.notifyParent("storefront-editor:auth-expired")}):null}},website:{name:"Appearance",kindLabel:"Site settings",icon:"website",render:(e,o)=>pe(Ki,{initialTab:e.tab,revealPageGroup:e.revealPageGroup,themeFromDocument:!o.capabilities.hasSiteTheme,tokenRef:o.tokenRef,siteId:o.siteId,onNotify:o.onNotify},e.tab??"")},chat:{name:"Live chat",kindLabel:"Site settings",icon:"chat",render:()=>pe(nk,{})},social:{name:"Social links",kindLabel:"Site settings",icon:"social",render:()=>pe(fk,{unavailable:pe(uT,{what:"Social link"})})},ticker:{name:zn,kindLabel:Is,icon:"ticker",head:(e,o)=>e.kind==="ticker"?H8(o,e.heroId,i(zn)):null,render:e=>pe(hv,{heroId:e.kind==="ticker"?e.heroId:""})},heroMedia:mh("media"),heroImage:mh("image"),heroImage2:mh("image2"),part:{name:Is,kindLabel:Is,icon:"Text",head:(e,o)=>{if(e.kind!=="part")return null;let t=o.describeNode(e.nodeId);if(!t)return null;let{key:r,row:a}=zo(e.propKey),n=a?Ha(t.fields[r],a):t.fields[r],s=xC(i(Qu(Bi(n??{},r))),a),l=lT({name:s,tier:"part",of:i(t.label)},{partOf:({name:c})=>i("Part of {name}",{name:c})});return{name:l.name,kindLabel:l.kind}},render:(e,o)=>e.kind==="part"?pe(h0,{nodeId:e.nodeId,propKey:e.propKey,onBack:()=>o.onSelectNode(e.nodeId),onEditStyle:o.onOpenSiteStyles}):null}},z8=new Set(["header","website","chat"]);function U8(e,o){if(e==="selection")return null;let t=G8[e];return z8.has(e)&&!o.hasSiteSettings?{...t,kindLabel:"Not part of a template",render:()=>pe(uT,{what:t.name})}:t}function pT({mode:e,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onOpenPageStyles:r,onSelectNode:a,hideNodeActions:n=!1,onNotify:s,onHidePanel:l}){let{capabilities:c,tokenRef:d,notifyParent:u,currentSlug:h,siteId:p,runAuthed:x,readOnly:g,navigate:y}=R8(),{rows:E}=Hn(),O=E?.find(de=>de.slug===h)??null,C=v8(),I=Object.keys(C.fields).some(de=>!de.startsWith("_")&&!Dn.includes(de)),{websiteName:w}=se(),v=L8({readOnly:g}),{select:k}=B8(),{selectedItem:A,getItemById:D,getSelectorForId:P,config:F,appState:N}=k8(de=>de),b=F8(F,A?{type:A.type,props:A.props}:null),_=A?wC(b??F.components[A.type]?.fields,A.props):[],R=de=>F.components[de]?.label??de,H=A?P(A.props.id):void 0,U=U8(e.kind,c),Z=A8(),K={capabilities:c,tokenRef:d,hostPanels:Z.chrome?.panels,describeNode:de=>{let ge=D(de);if(!ge)return null;let De=F.components[ge.type];return{type:ge.type,label:De?.label??ge.type,fields:De?.fields??{},props:ge.props??{}}},siteId:p,websiteName:w??null,notifyParent:u,onNotify:s,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onSelectNode:a},Le=U?.head?.(e,K)??null,be=Qw({kind:O?.kind,pageName:O?.label}),Xe=Le?.name??(U?i(U.name):A?i(R(A.type)):be.name),Ge=Le?.kindLabel??(U?i(U.kindLabel):A?H&&H.zone!==sT?i("Block"):i("Section"):be.kindLabel),Pe=U?U.icon:A?A.type:"page",Ie=U?null:A?F.components[A.type]?.fields??null:F.root?.fields??null,we=Ie?zk(Ie):2,eo=ph(e)&&A?is(A.type):null,lo=!!A&&!!H&&H.zone===sT&&A.type!==Fe&&A.type!==D8,ie=Gc(N?.data,A),Be=()=>{ie||H&&v.duplicateComponent(H.zone,H.index)},ho=()=>{H&&(v.removeComponent(H.zone,H.index),v.select(null))},Ae=A?F.components[A.type]?.defaultProps?.previewHover:void 0,ze=ph(e)&&!!A&&!!H&&Ae!==void 0,Vo=ze&&A.props.previewHover===!0,Pt=()=>{!A||!H||v.replaceComponent(H.zone,H.index,{...A,props:{...A.props,previewHover:!Vo}})},[Yo,M]=w8(Ep);return Wr("div",{className:`es-sidepanel es-sidepanel--right sf-panel sf-panel--right${Yo||!(!U&&A)?"":" sf-hints-folded"}`,children:[pe(E8,{icon:pe(_r,{type:Pe,size:15}),name:Xe,kind:Ge,actions:!n&&ph(e)&&A&&A.type!==Fe?Wr(rT,{children:[pe(aT,{label:i("Duplicate section"),title:ie??void 0,disabled:ie!==null,onClick:Be,children:pe(O8,{size:15})}),lo&&c.hasSiteSettings&&pe(U0,{node:A,currentSlug:h,siteId:p??void 0,tokenRef:d,runAuthed:x,onNotify:s}),pe(aT,{label:i("Remove section"),danger:!0,onClick:ho,children:pe(_8,{size:15})}),l?pe(nT,{side:"right",onHide:l,divider:!0}):null]}):l?pe(nT,{side:"right",onHide:l}):void 0}),ze&&Wr("div",{className:"sf-preview-pin",children:[Wr("div",{className:"sf-preview-pin-text",children:[pe("span",{className:"sf-preview-pin-label",children:i("Preview hover state")}),pe("span",{className:"sf-preview-pin-hint",children:i("not shown live")})]}),pe(N8,{checked:Vo,onChange:Pt,ariaLabel:i("Preview hover state")})]}),pe(Zy,{tier:we,children:pe("div",{className:"sf-insp-body es-insp-body sf-scroll",children:U?U.render(e,K):A?Wr(rT,{children:[A.type===Fe&&c.hasSiteSettings&&pe(eT,{}),pe(rb,{children:pe(at,{entries:pe($0,{parts:_,heading:!1,onOpen:de=>k(Ri(A.props.id,de))}),entryCount:ch(_).length})}),eo&&pe(Ec,{source:eo,slug:ls(A?.props),menuId:wc(A?.props)}),pe(Op,{shown:Yo,onChange:M})]}):I?pe(at,{omit:Dn}):pe(P8,{variant:"none",icon:!1,message:i("Select a section or block to edit it."),children:r&&pe(T8,{variant:"secondary",onClick:r,children:i("This page")})})})})]})}import{jsx as f,jsxs as T,Fragment as gT}from"react/jsx-runtime";var Ye={dark:"var(--sf-thumb-bar-dark)",soft:"var(--sf-thumb-bar-light)",accent:"var(--sf-thumb-accent)",tint:"var(--sf-thumb-accent-tint)",block:"var(--sf-thumb-block)",line:"var(--sf-thumb-border)",card:"var(--sf-thumb-card)"},xh="repeating-linear-gradient(135deg,var(--sf-thumb-hatch1) 0,var(--sf-thumb-hatch1) 5px,var(--sf-thumb-hatch2) 5px,var(--sf-thumb-hatch2) 10px)";function W({w:e,h:o,tone:t="dark",r=2,style:a}){return f("div",{style:{width:e,height:o,borderRadius:r,background:Ye[t],flex:"none",...a}})}var $8={Hero:"hero",HeroSingle:"herosingle",IntroBleed:"intro",Collections:"collections",AlloyWheelsListing:"wheelslisting",CatalogFilterBar:"catalogfilterbar",ProductGrid:"productgrid",FitmentFinder:"fitmentfinder",Gallery:"gallery",GalleryB:"gallerygrid",SpecStrip:"specstrip",ProductHero:"producthero",SpecTable:"spectable",ProcessSteps:"processsteps",DetailRows:"detailrows",FitmentTable:"fitmenttable",CompatibleTyres:"compatibletyres",TyreSizes:"tyresizes",TyreFitment:"tyrefitment",EuTyreLabel:"eutyrelabel",RelatedProducts:"productgrid",BundleOffer:"bundleoffer",OrderSummary:"ordersummary",DeliveryOptions:"deliveryoptions",PaymentBadges:"paymentbadges",CheckoutCTA:"checkoutcta",Manifesto:"manifesto",ParagraphsA:"paragraphs",Prose:"prose",StatsParagraph:"statsparagraph",Chart:"chart",Mockup:"mockup",Footprint:"footprint",Timeline:"timeline",TimelineTrack:"timelinetrack",TitleWithButtons:"titlewithbuttons",Split:"split",Cards:"cards",FAQ:"faq",Testimonials:"testimonials",Masthead:"masthead",Breadcrumb:"breadcrumb",CategoryBar:"categorybar",FeaturedCover:"featuredcover",LongRead:"longread",Series:"series",Subscribe:"subscribe",SubscribeBlogs:"subscribe",Events:"events",DocMasthead:"docmasthead",DocTabs:"doctabs",DocBody:"docbody",DocMetaCards:"docmetacards",Banner:"banner",Stats:"stats",KeyFeatures:"keyfeatures",Logos:"logos",Ticker:"ticker",Countdown:"countdown",Reviews:"reviews",SubmitBuild:"submitbuild",ReviewForm:"reviewform",Form:"form",AppointmentBooking:"appointmentbooking",ContactRouting:"contact",ContactLocations:"contactlocations",CityPictures:"citypictures",CityMaps:"citymaps",Header:"header",Footer:"footer",SectionHeader:"sectionheader",Grid:"grid",Flex:"blanksection",Spacer:"spacer",Divider:"divider",CustomHTML:"customhtml",Heading:"heading",Text:"text",ImageBlock:"image",ButtonBlock:"button",MenuBlock:"menu",EmailFormBlock:"emailform",SocialLogosBlock:"sociallogos",PaymentLogosBlock:"paymentlogos",LegalLineBlock:"legalline",SearchBlock:"search",CartBlock:"cart",CountrySwitchBlock:"countryswitch"},$={position:"absolute",inset:0},m={ink:"var(--sf-thumb-ink)",ink2:"var(--sf-thumb-ink-2)",inkSoft:"var(--sf-thumb-ink-soft)",inkSoft2:"var(--sf-thumb-ink-soft-2)",paper:"var(--sf-thumb-paper)",paper2:"var(--sf-thumb-paper-2)",warm:"var(--sf-thumb-warm)",rust:"var(--sf-thumb-rust)",onInk:"var(--sf-thumb-on-ink)",text:"var(--sf-thumb-scene-text)",muted:"var(--sf-thumb-scene-muted)",rule:"var(--sf-thumb-scene-rule)",mark1:"var(--sf-thumb-mark-1)",mark2:"var(--sf-thumb-mark-2)",card:"var(--sf-thumb-card)",scrim:"var(--sf-thumb-scrim)"},Ee=(e,o,t=160)=>({background:`linear-gradient(${t}deg,${e},${o})`});function kt({size:e,style:o}){let t=Math.max(2,Math.round(e*.13)),r=(a,n,s)=>({position:"absolute",inset:a,background:n,borderRadius:t,...s?{mixBlendMode:s}:null});return T("span",{style:{position:"absolute",display:"block",width:e,height:e,...o},children:[f("span",{style:r("8% 26% 30% 6%",m.mark1)}),f("span",{style:r("26% 6% 8% 30%",m.mark2,"multiply")})]})}function jc({children:e}){return f("span",{style:{fontSize:"4.64cqw",fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:m.muted},children:e})}function mT({over:e,overTone:o,head:t,headSize:r=11.5,cta:a,ctaBg:n,ctaFg:s,tone:l}){return T(gT,{children:[e&&f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:o},children:e}),f("span",{style:{fontSize:r,lineHeight:1.15,fontWeight:700,maxWidth:"78%",color:l},children:t}),a&&f("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,marginTop:2,background:n,color:s},children:a})]})}function Ih({name:e,price:o}){return T("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[f("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",...Ee(m.paper,m.paper2,150)},children:f(kt,{size:34,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),f("span",{style:{fontSize:"3.65cqw",fontWeight:600,color:m.text},children:e}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:o})]})}function wt({k:e,v:o,ok:t}){return T("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,padding:"3.5px 2px",borderBottom:`1px solid ${m.rule}`,fontSize:"3.98cqw",color:m.muted},children:[f("span",{children:e}),T("span",{style:{display:"flex",gap:6,alignItems:"center"},children:[f("b",{style:{color:m.text,fontWeight:700},children:o}),t&&f("span",{style:{color:m.rust,fontWeight:700},children:"\u2713"})]})]})}function Ce({title:e,children:o}){return T("div",{style:{...$,background:m.card,padding:"9px 10px",display:"flex",flexDirection:"column",gap:6},children:[f(jc,{children:e}),o]})}function hT({size:e=14}){return f("span",{style:{width:e,height:e,borderRadius:"50%",flex:"none",display:"block",background:`linear-gradient(150deg,${m.mark1},${m.mark2})`}})}function gh({filled:e=5,size:o=6}){return T("span",{style:{fontSize:o,letterSpacing:"0.06em",color:m.rust,lineHeight:1},children:["\u2605".repeat(e),f("span",{style:{color:m.mark1},children:"\u2605".repeat(5-e)})]})}function gs({n:e,label:o,tone:t=m.text}){return T("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[f("b",{style:{fontSize:"8.16cqw",lineHeight:1,color:t},children:e}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",opacity:.62,color:t},children:o})]})}function so({children:e,w:o}){return f("span",{style:{fontSize:"3.98cqw",lineHeight:1.45,color:m.muted,width:o,display:"block"},children:e})}function $c({label:e,w:o="100%",filled:t}){return T("div",{style:{width:o,display:"flex",flexDirection:"column",gap:2},children:[f("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:m.muted},children:e}),f("span",{style:{height:9,borderRadius:3,border:`1px solid ${m.rule}`,background:t?m.paper:m.card}})]})}function xT({children:e}){return f("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:m.text,color:m.onInk},children:e})}var j8={wheelslisting:f(Ce,{title:"All wheels",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Ridge 19","20\xD79 +12","$365"],["Ridge 29","18\xD79 +20","$410"],["Ridge 39","17\xD78 \u221210","$455"]].map(([e,o,t])=>T("div",{style:{display:"flex",alignItems:"center",gap:6},children:[f("span",{style:{width:20,height:15,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",...Ee(m.paper,m.paper2,150)},children:f(kt,{size:12,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),f("b",{style:{flex:1,fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:o}),f("b",{style:{fontSize:"4.31cqw",color:m.text,width:26,textAlign:"right"},children:t})]},e))})}),catalogfilterbar:T("div",{style:{...$,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[T("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[["20 inch","6\xD7139.7","Black"].map(e=>T("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"4px 7px",borderRadius:99,background:m.text,color:m.onInk,display:"flex",gap:4,alignItems:"center"},children:[e,f("span",{style:{opacity:.6},children:"\u2715"})]},e)),f("span",{style:{fontSize:"3.65cqw",color:m.rust,fontWeight:700},children:"Clear"})]}),T("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"128 results"}),f("span",{style:{fontSize:"3.65cqw",color:m.muted,border:`1px solid ${m.rule}`,borderRadius:3,padding:"3px 6px"},children:"Sort: Price \u25BE"})]})]}),fitmentfinder:T("div",{style:{...$,padding:"10px 12px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center",...Ee(m.ink,m.inkSoft)},children:[f("span",{style:{fontSize:"5.31cqw",fontWeight:700,color:m.onInk},children:"Will it fit your rig?"}),T("div",{style:{display:"flex",gap:4},children:[["2021","Toyota","Hilux"].map(e=>T("span",{style:{flex:1,fontSize:"3.65cqw",color:m.text,background:m.card,borderRadius:3,padding:"5px 6px",display:"flex",justifyContent:"space-between"},children:[e," ",f("span",{style:{color:m.muted},children:"\u25BE"})]},e)),f("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.08em",background:m.warm,color:m.ink,borderRadius:3,padding:"5px 7px"},children:"GO"})]})]}),compatibletyres:f(Ce,{title:"Tyres that suit",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Ridge Grappler","$489"],["Trail Grappler","$525"],["Terra Grappler","$438"]].map(([e,o])=>T("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[f("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",background:m.ink},children:f("span",{style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%,-50%)",width:26,height:26,borderRadius:"50%",border:`5px solid ${m.mark2}`,boxSizing:"border-box"}})}),f("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:m.text,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:e}),f("span",{style:{fontSize:"3.32cqw",color:m.muted},children:o})]},e))})}),tyresizes:f(Ce,{title:"Available sizes",children:f("div",{style:{flex:1,display:"flex",flexWrap:"wrap",gap:4,alignContent:"center"},children:["265/65R17","285/70R17","265/60R18","275/55R20"].map((e,o)=>f("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"5px 7px",borderRadius:3,border:`1px solid ${o===0?m.rust:m.rule}`,color:o===0?m.rust:m.text,background:o===0?m.paper:m.card},children:e},e))})}),tyrefitment:T(Ce,{title:"Will it fit your car?",children:[f("div",{style:{display:"flex",gap:3},children:["Make","Model","Year","Trim"].map(e=>T("span",{style:{flex:1,minWidth:0,fontSize:"3.32cqw",color:m.muted,background:m.paper,border:`1px solid ${m.rule}`,borderRadius:3,padding:"4px 5px",display:"flex",justifyContent:"space-between",gap:2,overflow:"hidden",whiteSpace:"nowrap"},children:[e," ",f("span",{style:{color:m.muted},children:"\u25BE"})]},e))}),f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2,justifyContent:"center",minHeight:0},children:[["265/65R17","Fits",!0],["285/70R17","Not your size",!1]].map(([e,o,t])=>T("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:6,borderTop:`1px solid ${m.rule}`,paddingTop:3},children:[f("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:m.text},children:e}),f("span",{style:{fontSize:"3.32cqw",fontWeight:t?700:400,letterSpacing:"0.06em",color:t?m.warm:m.muted},children:o})]},e))})]}),eutyrelabel:T("div",{style:{...$,background:m.card,padding:"9px 11px",display:"flex",gap:8,alignItems:"center"},children:[f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1.5},children:[["A","42%"],["B","56%"],["C","70%"],["D","84%"]].map(([e,o],t)=>T("div",{style:{display:"flex",alignItems:"center",gap:3},children:[f("span",{style:{width:o,height:6,borderRadius:"0 2px 2px 0",background:t===1?m.rust:m.mark1}}),f("span",{style:{fontSize:"3.32cqw",fontWeight:700,color:t===1?m.rust:m.muted},children:e})]},e))}),T("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:3,alignItems:"center"},children:[f("b",{style:{fontSize:"6.63cqw",lineHeight:1,color:m.text},children:"72"}),f("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",color:m.muted},children:"dB"})]})]}),bundleoffer:T("div",{style:{...$,background:m.paper,padding:"9px 11px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[f(jc,{children:"Buy it with"}),T("div",{style:{display:"flex",alignItems:"center",gap:5},children:[[0,1].map(e=>f("span",{style:{width:26,height:22,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",background:m.card},children:f(kt,{size:17,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})},e)),f("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:m.muted},children:"+"}),T("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1},children:[f("span",{style:{fontSize:"3.65cqw",color:m.muted,textDecoration:"line-through"},children:"$1,024"}),f("b",{style:{fontSize:"6.02cqw",color:m.rust,lineHeight:1},children:"$899"})]})]})]}),checkoutcta:T("div",{style:{...$,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,...Ee(m.ink,m.ink2)},children:[T("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",color:m.warm,fontWeight:700},children:"READY TO ORDER"}),f("b",{style:{fontSize:"6.63cqw",color:m.onInk,lineHeight:1},children:"$1,956"}),f("span",{style:{fontSize:"3.65cqw",color:m.onInk,opacity:.65},children:"4 items \xB7 fitted free"})]}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"6px 10px",borderRadius:2,background:m.warm,color:m.ink,flex:"none"},children:"CHECKOUT"})]}),contact:f(Ce,{title:"Who do you need?",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Fitment help","the workshop"],["Order status","the front desk"],["Trade accounts","sales"]].map(([e,o])=>T("div",{style:{display:"flex",alignItems:"center",gap:5},children:[f("b",{style:{flex:1,fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:o}),f("span",{style:{fontSize:"4.64cqw",color:m.rust,lineHeight:1},children:"\u203A"})]},e))})}),contactlocations:f(Ce,{title:"Find us",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["Brisbane","7 Kerry Rd","Mon\u2013Sat"],["Townsville","12 Enterprise","Mon\u2013Fri"]].map(([e,o,t])=>T("div",{style:{border:`1px solid ${m.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[f("b",{style:{fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.32cqw",color:m.muted},children:o}),f("span",{style:{fontSize:"3.32cqw",color:m.rust,fontWeight:700},children:t})]},e))})}),citypictures:f(Ce,{title:"Our studios",children:T("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3,minHeight:0},children:[f("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.12em",fontWeight:700,color:m.muted},children:"A \xB7 AMERICAS"}),f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:["Los Angeles","Miami","Toronto"].map(e=>T("div",{style:{position:"relative",minHeight:0},children:[f(W,{r:3,style:{...$,background:`linear-gradient(transparent 45%,${m.scrim} 45%),${Ee(m.ink,m.inkSoft2).background}`}}),f("b",{style:{position:"absolute",left:5,bottom:4,fontSize:"3.65cqw",color:m.onInk},children:e})]},e))})]})}),citymaps:f(Ce,{title:"Find us",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["Brisbane","7 Kerry Rd"],["Townsville","12 Enterprise"]].map(([e,o])=>T("div",{style:{position:"relative",padding:"4px 5px",display:"flex",flexDirection:"column",gap:2,minHeight:0},children:[f(W,{r:4,style:{...$,background:"none",border:`1px solid ${m.rule}`}}),f("b",{style:{position:"relative",fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{position:"relative",fontSize:"3.32cqw",color:m.muted},children:o}),T("div",{style:{flex:1,minHeight:0,position:"relative"},children:[f(W,{r:3,style:{...$,...Ee(m.paper,m.paper2,150)}}),f(W,{w:"60%",h:"60%",r:8,style:{position:"absolute",left:"12%",top:"20%",background:m.mark1,opacity:.75}}),f(W,{w:6,h:6,r:3,style:{position:"absolute",left:"44%",top:"34%",background:m.rust}})]})]},e))})}),form:f(Ce,{title:"Send us a message",children:T("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[T("div",{style:{display:"flex",gap:5},children:[f($c,{label:"Name"}),f($c,{label:"Email"})]}),f($c,{label:"Message",filled:!0}),f(xT,{children:"SEND"})]})}),appointmentbooking:f(Ce,{title:"Book a fitting",children:T("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[f("div",{style:{display:"flex",gap:3},children:["Mon","Tue","Wed","Thu"].map((e,o)=>f("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",fontWeight:o===2?700:500,padding:"4px 0",borderRadius:3,background:o===2?m.text:m.paper,color:o===2?m.onInk:m.muted},children:e},e))}),f("div",{style:{display:"flex",gap:3},children:["8:00","10:30","13:00","15:30"].map((e,o)=>f("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",padding:"4px 0",borderRadius:3,border:`1px solid ${o===1?m.rust:m.rule}`,color:o===1?m.rust:m.muted,background:o===3?m.paper:m.card,textDecoration:o===3?"line-through":"none"},children:e},e))})]})}),reviewform:f(Ce,{title:"Leave a review",children:T("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[f(gh,{filled:4,size:14}),f($c,{label:"Your review",filled:!0}),f(xT,{children:"POST"})]})}),submitbuild:f(Ce,{title:"Show us your build",children:T("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:3,border:`1px dashed ${m.mark1}`,borderRadius:5,background:m.paper},children:[f("span",{style:{fontSize:"6.63cqw",lineHeight:1,color:m.rust,fontWeight:300},children:"+"}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"Drop a photo of your rig"})]})}),masthead:T("div",{style:{...$,background:m.paper,display:"flex",flexDirection:"column",justifyContent:"center",padding:"0 13px",gap:5},children:[f("span",{style:{height:1.5,background:m.text}}),f("span",{style:{fontSize:"7.65cqw",fontWeight:800,letterSpacing:"0.02em",color:m.text,lineHeight:1},children:"THE TRACK"}),T("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"3.65cqw",letterSpacing:"0.1em",textTransform:"uppercase",color:m.muted},children:[f("span",{children:"Issue 14"}),f("span",{children:"Spring 2026"})]}),f("span",{style:{height:1,background:m.rule}})]}),featuredcover:T("div",{style:{...$,overflow:"hidden",...Ee(m.ink,m.inkSoft2)},children:[f(kt,{size:92,style:{right:-18,top:-14}}),f("div",{style:{position:"absolute",inset:0,background:`linear-gradient(0deg,${m.scrim},transparent 62%)`}}),T("div",{style:{position:"absolute",left:12,right:12,bottom:11,display:"flex",flexDirection:"column",gap:3},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:m.warm},children:"FEATURE"}),f("span",{style:{fontSize:"6.16cqw",lineHeight:1.15,fontWeight:700,color:m.onInk},children:"Four days on the Madigan Line"})]})]}),longread:T("div",{style:{...$,background:m.card,padding:"10px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.14em",fontWeight:700,color:m.rust},children:"12 MIN READ"}),f("span",{style:{fontSize:"6.02cqw",lineHeight:1.15,fontWeight:700,color:m.text},children:"What breaks first, and why"}),f(so,{children:"Every failure starts in the same place \u2014 not the rim, not"}),f(so,{w:"62%",children:"the tyre, but the bolt nobody re-torqued."})]}),series:f(Ce,{title:"Recurring columns",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Shed Notes","Monthly"],["Track Tested","Fortnightly"],["Reader Rigs","Weekly"]].map(([e,o])=>T("div",{style:{display:"flex",alignItems:"center",gap:6},children:[f("span",{style:{width:3,height:12,borderRadius:2,background:m.rust,flex:"none"}}),f("b",{style:{flex:1,fontSize:"4.64cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:m.muted},children:o})]},e))})}),events:f(Ce,{title:"Latest posts",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[[m.inkSoft,m.inkSoft2,"Madigan Line, four days"],[m.rust,m.warm,"Why offset beats width"]].map(([e,o,t])=>T("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[f("span",{style:{width:24,height:18,borderRadius:3,flex:"none",...Ee(e,o,150)}}),T("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[f("b",{style:{fontSize:"4.31cqw",color:m.text},children:t}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"4 Sep \xB7 Shed Notes"})]})]},t))})}),docmasthead:T("div",{style:{...$,background:m.card,padding:"12px 14px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:m.muted},children:"POLICY"}),f("span",{style:{fontSize:"6.49cqw",fontWeight:700,color:m.text,lineHeight:1.1},children:"Returns & refunds"}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"Version 3 \xB7 Updated 4 Sep 2026"}),f("span",{style:{height:2,width:26,background:m.rust,borderRadius:1}})]}),docbody:f("div",{style:{...$,background:m.card,padding:"9px 13px",display:"flex",flexDirection:"column",gap:3,justifyContent:"center"},children:[["1.","You may return an unfitted wheel within 30 days."],["2.","Fitted wheels are covered by the structural warranty."],["3.","Freight on a change of mind is yours."]].map(([e,o])=>T("div",{style:{display:"flex",gap:5},children:[f("b",{style:{fontSize:"3.98cqw",color:m.rust,flex:"none"},children:e}),f(so,{children:o})]},e))}),docmetacards:f(Ce,{title:"At a glance",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["30 days","To return"],["5 years","Structural"],["Free","Fitting"],["48 hrs","Dispatch"]].map(([e,o])=>T("div",{style:{border:`1px solid ${m.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[f("b",{style:{fontSize:"5.31cqw",color:m.text,lineHeight:1},children:e}),f("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:m.muted},children:o})]},o))})}),doctabs:T("div",{style:{...$,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:0,padding:"0 11px"},children:[f("div",{style:{display:"flex",gap:0},children:["Returns","Warranty","Shipping"].map((e,o)=>f("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"5px 8px",color:o===0?m.text:m.muted,background:o===0?m.paper:"transparent",borderRadius:"4px 4px 0 0",border:`1px solid ${o===0?m.rule:"transparent"}`,borderBottom:"none"},children:e},e))}),f("span",{style:{height:1,background:m.rule}}),T("div",{style:{paddingTop:6,display:"flex",flexDirection:"column",gap:2},children:[f(so,{children:"Unfitted wheels come back within 30 days, no questions."}),f(so,{w:"58%",children:"Freight on a change of mind is yours."})]})]}),paragraphs:T("div",{style:{...$,background:m.card,padding:"11px 14px",display:"flex",gap:10,alignItems:"center"},children:[f("span",{style:{flex:1,fontSize:"5.86cqw",lineHeight:1.2,fontWeight:700,color:m.text},children:"The right wheel is the boring one."}),T("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[f(so,{children:"Forged, correctly offset, rated for what you actually"}),f(so,{children:"carry. Everything else is a photograph."})]})]}),keyfeatures:f(Ce,{title:"Key features",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:["Flow-formed barrel","1250 kg per corner","Hub-centric fit"].map(e=>T("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[f("span",{style:{fontSize:"4.64cqw",color:m.rust,fontWeight:700,lineHeight:1},children:"\u2713"}),f("span",{style:{fontSize:"4.31cqw",color:m.text},children:e})]},e))})}),statsparagraph:T("div",{style:{...$,background:m.paper,padding:"10px 12px",display:"flex",gap:10,alignItems:"center"},children:[T("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:5},children:[f(gs,{n:"27k",label:"Rigs"}),f(gs,{n:"4.9",label:"Rating"})]}),T("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[f(so,{children:"Twelve years of fitting the same three questions, and the"}),f(so,{children:"answer has not moved: load rating, offset, then looks."})]})]}),chart:T(Ce,{title:"Load vs weight",children:[f("div",{style:{flex:1,display:"flex",alignItems:"flex-end",gap:5,paddingBottom:2},children:[38,62,84,71,96].map((e,o)=>f("span",{style:{flex:1,height:`${e}%`,borderRadius:"2px 2px 0 0",background:o===4?m.rust:m.mark1}},o))}),f("span",{style:{height:1,background:m.rule,marginTop:-4}})]}),mockup:f("div",{style:{...$,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",...Ee(m.inkSoft,m.ink)},children:T("div",{style:{width:"72%",height:"74%",borderRadius:4,overflow:"hidden",background:m.card,boxShadow:`0 6px 14px ${m.scrim}`},children:[f("div",{style:{height:9,background:m.paper,display:"flex",alignItems:"center",gap:2,padding:"0 4px"},children:[0,1,2].map(e=>f("span",{style:{width:2.5,height:2.5,borderRadius:"50%",background:m.mark1}},e))}),T("div",{style:{padding:5,display:"flex",flexDirection:"column",gap:3},children:[f("span",{style:{height:4,width:"56%",borderRadius:1,background:m.mark2}}),f("span",{style:{height:14,borderRadius:2,...Ee(m.paper,m.paper2,150)}}),f("span",{style:{height:3,width:"38%",borderRadius:1,background:m.rust}})]})]})}),manifesto:f("div",{style:{...$,overflow:"hidden",display:"flex",alignItems:"center",padding:"0 16px",...Ee(m.ink,m.ink2)},children:T("span",{style:{fontSize:"6.63cqw",lineHeight:1.2,fontWeight:700,color:m.onInk},children:["We build for the ",f("span",{style:{color:m.warm},children:"last"})," ten percent of the track."]})}),timeline:f(Ce,{title:"Our story",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center",gap:6,paddingLeft:4},children:[["1998","One shed, one lathe."],["2009","First forged rim."],["2024","27,000 rigs on."]].map(([e,o],t)=>T("div",{style:{display:"flex",gap:7,alignItems:"flex-start",position:"relative"},children:[t<2&&f("span",{style:{position:"absolute",left:3,top:8,bottom:-8,width:1,background:m.rule}}),f("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",marginTop:1,background:m.rust,zIndex:1}}),T("div",{style:{display:"flex",flexDirection:"column",gap:0,minWidth:0},children:[f("b",{style:{fontSize:"4.64cqw",color:m.text},children:e}),f(so,{children:o})]})]},e))})}),timelinetrack:T("div",{style:{...$,padding:"0 12px",display:"flex",flexDirection:"column",gap:10,justifyContent:"center",...Ee(m.ink,m.inkSoft)},children:[f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"Milestones"}),T("div",{style:{position:"relative",display:"flex",justifyContent:"space-between",paddingTop:7},children:[f("span",{style:{position:"absolute",left:0,right:0,top:3,height:1,background:m.mark2,opacity:.55}}),["1998","2009","2016","2024"].map((e,o)=>T("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:3,position:"relative"},children:[f("span",{style:{position:"absolute",top:-7,width:6,height:6,borderRadius:"50%",background:o===3?m.warm:m.mark1}}),f("span",{style:{fontSize:"4.31cqw",fontWeight:700,color:o===3?m.warm:m.onInk,opacity:o===3?1:.75},children:e})]},e))]})]}),footprint:T("div",{style:{...$,overflow:"hidden",...Ee(m.paper,m.paper2,150)},children:[f("span",{style:{position:"absolute",left:"8%",top:"18%",width:"62%",height:"64%",borderRadius:"48% 52% 40% 60% / 55% 45% 55% 45%",background:m.mark1,opacity:.75}}),f("span",{style:{position:"absolute",left:"52%",top:"52%",width:"34%",height:"34%",borderRadius:"58% 42% 55% 45% / 45% 58% 42% 55%",background:m.mark2,opacity:.55}}),[["26%","38%"],["44%","58%"],["62%","34%"]].map(([e,o])=>f("span",{style:{position:"absolute",left:e,top:o,width:7,height:7,borderRadius:"50% 50% 50% 0",transform:"rotate(-45deg)",background:m.rust}},e)),f("span",{style:{position:"absolute",left:11,bottom:9,fontSize:"4.64cqw",fontWeight:700,color:m.text},children:"3 fitting bays"})]}),banner:T("div",{style:{...$,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,background:m.rust},children:[T("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[f("b",{style:{fontSize:"6.02cqw",color:m.onInk},children:"End of season \xB7 20% off"}),f("span",{style:{fontSize:"3.98cqw",color:m.onInk,opacity:.8},children:"Fitted free, this month only."})]}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:m.onInk,color:m.text,flex:"none"},children:"SHOP"})]}),titlewithbuttons:T("div",{style:{...$,background:m.paper,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:7,padding:"0 14px",textAlign:"center"},children:[f("span",{style:{fontSize:"6.49cqw",lineHeight:1.15,fontWeight:700,color:m.text},children:"Not sure what fits?"}),T("div",{style:{display:"flex",gap:5},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:m.text,color:m.onInk},children:"FIND MY FIT"}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,border:`1px solid ${m.text}`,color:m.text},children:"CALL US"})]})]}),ticker:f("div",{style:{...$,overflow:"hidden",background:m.ink,display:"flex",alignItems:"center"},children:f("span",{style:{whiteSpace:"nowrap",fontSize:"6.29cqw",fontWeight:800,letterSpacing:"0.06em",color:m.warm,marginLeft:-14},children:"FREE FITTING \xB7 48HR DISPATCH \xB7 FREE FITTING \xB7 48HR DISPATCH"})}),countdown:T("div",{style:{...$,padding:"10px 12px",display:"flex",flexDirection:"column",alignItems:"center",gap:6,justifyContent:"center",...Ee(m.ink,m.ink2)},children:[f("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.16em",textTransform:"uppercase",color:m.muted},children:"Back online in"}),f("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[["23","Hours"],["59","Minutes"],["48","Seconds"]].map(([e,o],t)=>T("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[t>0&&f("b",{style:{fontSize:"9.5cqw",lineHeight:1,color:m.warm},children:":"}),T("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:[f("b",{style:{fontSize:"11.5cqw",lineHeight:1,color:m.onInk,fontVariantNumeric:"tabular-nums"},children:e}),f("span",{style:{fontSize:"3.2cqw",letterSpacing:"0.1em",textTransform:"uppercase",opacity:.62,color:m.onInk},children:o})]})]},o))})]}),breadcrumb:f("div",{style:{...$,background:m.card,display:"flex",alignItems:"center",padding:"0 13px"},children:T("span",{style:{fontSize:"4.64cqw",color:m.muted},children:["Home ",f("span",{style:{opacity:.5},children:"/"})," Wheels ",f("span",{style:{opacity:.5},children:"/"})," ",f("span",{style:{color:m.text,fontWeight:700},children:"20 inch"})]})}),categorybar:T("div",{style:{...$,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[f("div",{style:{display:"flex",gap:5},children:["All","Wheels","Tyres","Lift"].map((e,o)=>f("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"4px 7px",borderRadius:99,background:o===0?m.text:m.paper,color:o===0?m.onInk:m.muted},children:e},e))}),f("span",{style:{height:1,background:m.rule}})]}),intro:T("div",{style:{...$,overflow:"hidden",background:m.card},children:[f("div",{style:{position:"absolute",inset:0,...Ee(m.ink,m.inkSoft2)}}),f(kt,{size:64,style:{right:8,top:6}}),T("div",{style:{position:"absolute",left:16,right:16,bottom:8,top:"46%",background:m.paper,borderRadius:6,padding:"8px 11px",display:"flex",flexDirection:"column",gap:2,boxShadow:`0 -4px 10px ${m.scrim}`},children:[f("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:m.text},children:"Since 1998"}),f(so,{children:"One shed, one lathe, one idea."}),f(so,{w:"66%",children:"It turned out to be right."})]})]}),gallerygrid:f(Ce,{title:"From our customers",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gridTemplateRows:"repeat(2,1fr)",gap:4,minHeight:0},children:[[m.rust,m.warm],[m.inkSoft,m.ink],[m.paper2,m.mark2],[m.ink,m.inkSoft2],[m.warm,m.paper2],[m.mark2,m.inkSoft]].map(([e,o],t)=>f("div",{style:{borderRadius:3,...Ee(e,o,140+t*22)}},t))})}),gallery:T(Ce,{title:"Gallery",children:[f("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:-2},children:["On the truck","Studio","Close-ups"].map((e,o)=>f("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,color:o===0?m.text:m.muted,borderBottom:`1.5px solid ${o===0?m.rust:"transparent"}`,paddingBottom:2},children:e},e))}),f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:[[m.rust,m.warm],[m.ink,m.inkSoft],[m.paper2,m.mark2]].map(([e,o],t)=>f("div",{style:{borderRadius:3,...Ee(e,o,150+t*20)}},t))})]}),ordersummary:T(Ce,{title:"Order summary",children:[T("div",{style:{display:"flex",gap:6,alignItems:"center",paddingBottom:4},children:[f("span",{style:{width:26,height:26,borderRadius:4,position:"relative",overflow:"hidden",flex:"none",...Ee(m.paper,m.paper2,150)},children:f(kt,{size:18,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),T("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[f("b",{style:{fontSize:"4.31cqw",color:m.text},children:"Ridge Grappler"}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"20\xD79 +12 \xB7 qty 4"})]})]}),T("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",justifyContent:"center"},children:[f(wt,{k:"Subtotal",v:"$1,956"}),f(wt,{k:"Fitting",v:"Free"}),T("div",{style:{display:"flex",justifyContent:"space-between",paddingTop:5,fontSize:"4.64cqw"},children:[f("b",{style:{color:m.text},children:"Total"}),f("b",{style:{color:m.text,fontSize:"6.02cqw"},children:"$1,956"})]})]})]}),deliveryoptions:f(Ce,{title:"Delivery",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Standard","3\u20135 days","Free",!0],["Express","Next day","$19",!1]].map(([e,o,t,r])=>T("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 6px",borderRadius:4,border:`1px solid ${r?m.rust:m.rule}`,background:r?m.paper:m.card},children:[f("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",border:`1.5px solid ${r?m.rust:m.mark1}`,background:r?m.rust:"transparent"}}),f("span",{style:{flex:1,fontSize:"4.31cqw",fontWeight:600,color:m.text},children:e}),f("span",{style:{fontSize:"3.98cqw",color:m.muted},children:o}),f("b",{style:{fontSize:"4.31cqw",color:m.text},children:t})]},e))})}),paymentbadges:T("div",{style:{...$,background:m.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[f(jc,{children:"Ways to pay"}),f("div",{style:{display:"flex",gap:5},children:[["VISA",m.ink],["MC",m.rust],["AMEX",m.inkSoft],["PayPal",m.ink2]].map(([e,o])=>f("span",{style:{flex:1,textAlign:"center",fontSize:"3.65cqw",fontWeight:800,letterSpacing:"0.06em",color:m.onInk,borderRadius:3,padding:"6px 0",background:o},children:e},e))})]}),stats:T("div",{style:{...$,padding:"10px 12px",display:"flex",flexDirection:"column",gap:9,justifyContent:"center",...Ee(m.ink,m.ink2)},children:[f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"By the numbers"}),T("div",{style:{display:"flex",gap:8},children:[f(gs,{n:"27k",label:"Rigs fitted",tone:m.onInk}),f(gs,{n:"12",label:"Years",tone:m.onInk}),f(gs,{n:"4.9",label:"Avg rating",tone:m.warm})]})]}),testimonials:T("div",{style:{...$,overflow:"hidden",background:m.paper,padding:"10px 11px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center"},children:[f("span",{style:{position:"absolute",right:10,top:2,fontSize:"22.4cqw",lineHeight:1,fontWeight:800,color:m.rust,opacity:.16},children:"\u201D"}),f(gh,{filled:5,size:7}),f("span",{style:{position:"relative",fontSize:"5.31cqw",lineHeight:1.35,color:m.text,fontWeight:600},children:"\u201CTook them out to the Simpson and back. Not one chip.\u201D"}),T("div",{style:{display:"flex",alignItems:"center",gap:5},children:[f(hT,{}),f("span",{style:{fontSize:"3.98cqw",color:m.muted},children:"Dave M. \xB7 Hilux N80"})]})]}),reviews:T(Ce,{title:"Reviews",children:[f("div",{style:{display:"flex",gap:4,height:22},children:[[m.inkSoft,m.inkSoft2],[m.rust,m.warm],[m.ink,m.inkSoft],[m.mark2,m.mark1]].map(([e,o],t)=>f("div",{style:{flex:1,borderRadius:3,...Ee(e,o,140+t*15)}},t))}),f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Dave M.",5,"Not one chip after the Simpson."],["Sara K.",4,"Fitted in an hour, no fuss."]].map(([e,o,t])=>T("div",{style:{display:"flex",gap:5,alignItems:"flex-start"},children:[f(hT,{size:12}),T("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[T("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[f("b",{style:{fontSize:"3.98cqw",color:m.text},children:e}),f(gh,{filled:o})]}),f(so,{children:t})]})]},e))})]}),logos:T("div",{style:{...$,display:"flex",flexDirection:"column",gap:9,justifyContent:"center",padding:"0 12px",...Ee(m.ink,m.inkSoft)},children:[f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"As fitted by"}),f("div",{style:{display:"grid",gridTemplateColumns:"repeat(4,1fr)",gap:8},children:["ARB","TJM","IRONMAN","OPPOSITE"].map(e=>f("span",{style:{textAlign:"center",fontSize:"4.31cqw",fontWeight:800,letterSpacing:"0.08em",color:m.onInk,opacity:.82},children:e},e))})]}),prose:T("div",{style:{...$,background:m.paper,padding:"11px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[f("span",{style:{fontSize:"5.86cqw",fontWeight:700,color:m.text},children:"Why offset matters"}),T("div",{style:{display:"flex",gap:6},children:[f("span",{style:{fontSize:"15.3cqw",lineHeight:.78,fontWeight:800,color:m.rust,marginTop:1},children:"T"}),T("div",{style:{display:"flex",flexDirection:"column"},children:[f(so,{children:"he number on the back of your wheel decides whether the"}),f(so,{w:"76%",children:"tyre sits under the guard or an inch outside it."})]})]})]}),cards:f(Ce,{title:"What you get",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Fitted free","In store, same day."],["5 yr cover","Structural, no fine print."],["Swap it","30 days, any reason."]].map(([e,o])=>T("div",{style:{border:`1px solid ${m.rule}`,borderRadius:4,padding:6,display:"flex",flexDirection:"column",gap:2},children:[f("span",{style:{width:11,height:11,borderRadius:3,background:m.rust,opacity:.9}}),f("b",{style:{fontSize:"3.98cqw",color:m.text},children:e}),f(so,{children:o})]},e))})}),faq:f(Ce,{title:"Questions",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[["Will these fit my Hilux?",!0],["Do you fit them for me?",!1],["What if I pick wrong?",!1]].map(([e,o])=>T("div",{style:{borderBottom:`1px solid ${m.rule}`,padding:"4px 2px"},children:[T("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6},children:[f("b",{style:{fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{fontSize:"4.64cqw",color:m.muted,lineHeight:1},children:o?"\u2212":"+"})]}),o&&f(so,{w:"90%",children:"Use the fitment finder \u2014 it reads your build, not just the model."})]},e))})}),hero:T("div",{style:{...$,overflow:"hidden",...Ee(m.ink,m.ink2)},children:[f("div",{style:{...$,background:`linear-gradient(90deg,${m.scrim},transparent 70%)`}}),f("div",{style:{position:"relative",height:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",padding:"12px 14px",gap:5},children:f(mT,{over:"NEW \xB7 SUMMER",overTone:m.warm,head:"Built for the worst road you own",cta:"SHOP ALL",ctaBg:m.warm,ctaFg:m.ink,tone:m.onInk})}),f(kt,{size:104,style:{right:-24,bottom:-30}})]}),herosingle:T("div",{style:{...$,display:"flex",background:m.paper,overflow:"hidden"},children:[f("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:f(mT,{over:"ALL-TERRAIN",overTone:m.rust,head:"Grip that does not ask",headSize:12,cta:"EXPLORE",ctaBg:m.text,ctaFg:m.onInk,tone:m.text})}),f("div",{style:{flex:1,position:"relative",...Ee(m.inkSoft,m.inkSoft2)},children:f(kt,{size:74,style:{right:-14,top:16}})})]}),productgrid:f(Ce,{title:"Best sellers",children:T("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[f(Ih,{name:"Ridge 19",price:"$365"}),f(Ih,{name:"Ridge 29",price:"$410"}),f(Ih,{name:"Ridge 39",price:"$455"})]})}),collections:f(Ce,{title:"Shop by category",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Wheels",m.inkSoft,m.inkSoft2],["Tyres",m.rust,m.warm],["Lift kits",m.ink,m.inkSoft]].map(([e,o,t])=>f("div",{style:{borderRadius:4,display:"flex",alignItems:"flex-end",padding:5,color:m.onInk,...Ee(o,t)},children:f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.04em"},children:e})},e))})}),producthero:T("div",{style:{...$,display:"flex",background:m.card,overflow:"hidden"},children:[f("div",{style:{flex:1.1,position:"relative",...Ee(m.paper,m.paper2,150)},children:f(kt,{size:78,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),T("div",{style:{flex:1,padding:"10px 10px 10px 8px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:m.rust},children:"NITTO"}),f("b",{style:{fontSize:"6.29cqw",color:m.text},children:"Ridge Grappler"}),f("span",{style:{fontSize:"6.63cqw",fontWeight:700,color:m.text},children:"$489"}),f("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,background:m.text,color:m.onInk},children:"ADD TO CART"})]})]}),spectable:f(Ce,{title:"Specifications",children:T("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[f(wt,{k:"Diameter",v:'20"'}),f(wt,{k:"Width",v:"9.0J"}),f(wt,{k:"Offset",v:"+12"}),f(wt,{k:"Load",v:"1250 kg"})]})}),fitmenttable:f(Ce,{title:"Will it fit?",children:T("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[f(wt,{k:"Hilux N80",v:"20\xD79 +12",ok:!0}),f(wt,{k:"Ranger PX3",v:"20\xD79 +12",ok:!0}),f(wt,{k:"LC79",v:"17\xD78 \u221210",ok:!0})]})}),processsteps:T("div",{style:{...$,background:m.paper,padding:10,display:"flex",flexDirection:"column",gap:7,justifyContent:"center"},children:[f(jc,{children:"How it works"}),f("div",{style:{display:"flex",gap:6},children:["Pick your rig","Match the fit","We fit it"].map((e,o)=>T("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2},children:[f("span",{style:{width:11,height:11,borderRadius:"50%",background:m.text,color:m.onInk,fontSize:"3.98cqw",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700},children:o+1}),f("span",{style:{fontSize:"3.98cqw",color:m.text,fontWeight:600},children:e})]},e))})]}),detailrows:f("div",{style:{...$,background:m.card,display:"flex",flexDirection:"column",overflow:"hidden"},children:[["Forged, not cast","Half the weight, twice the road.",!1],["Fits your load","Rated to 1250 kg a corner.",!0]].map(([e,o,t])=>{let r=f("div",{style:{flex:1,...Ee(t?m.rust:m.inkSoft,t?m.warm:m.inkSoft2)}},"art"),a=T("div",{style:{flex:1.1,padding:8,display:"flex",flexDirection:"column",gap:2,justifyContent:"center"},children:[f("b",{style:{fontSize:"4.64cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.98cqw",color:m.muted,lineHeight:1.3},children:o})]},"tx");return f("div",{style:{flex:1,display:"flex",minHeight:0},children:t?[a,r]:[r,a]},e)})}),specstrip:f("div",{style:{...$,background:m.ink,color:m.onInk,display:"flex",alignItems:"center",justifyContent:"space-around",padding:"0 8px"},children:[["5 yr","Warranty"],["Free","Fitting"],["48 hr","Dispatch"]].map(([e,o])=>T("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[f("b",{style:{fontSize:"5.69cqw",letterSpacing:"0.02em"},children:e}),f("span",{style:{fontSize:"3.65cqw",color:m.mark2,letterSpacing:"0.1em",textTransform:"uppercase"},children:o})]},o))})},IT={subscribe:T("div",{style:{...$,padding:13,display:"flex",flexDirection:"column"},children:[T("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[T("div",{style:{display:"flex",alignItems:"center",gap:6},children:[f(W,{w:8,h:8,r:2,tone:"accent"}),f(W,{w:38,h:7,r:3,tone:"dark"}),f(W,{w:16,h:7,r:3,tone:"accent"})]}),f(W,{w:38,h:4,r:2,tone:"soft"})]}),f("div",{style:{height:1,background:Ye.line,marginBottom:10}}),T("div",{style:{flex:1,display:"flex",gap:10,border:`1px solid ${Ye.line}`,borderRadius:7,padding:10},children:[T("div",{style:{flex:1.1,display:"flex",flexDirection:"column",justifyContent:"center",gap:5},children:[f(W,{w:"46%",h:3,r:2,tone:"accent"}),f(W,{w:"84%",h:8,r:4,tone:"dark"}),f(W,{w:"56%",h:8,r:4,tone:"accent"}),f(W,{w:"96%",h:3,r:2,tone:"soft",style:{marginTop:2}}),T("div",{style:{display:"flex",gap:5,marginTop:4},children:[f("div",{style:{flex:1,height:13,borderRadius:5,border:`1px solid ${Ye.line}`,background:Ye.block}}),f(W,{w:34,h:13,r:5,tone:"accent"})]})]}),T("div",{style:{flex:1,background:Ye.block,borderRadius:6,padding:8,display:"flex",flexDirection:"column",gap:6},children:[f(W,{w:"52%",h:4,r:2,tone:"accent"}),Array.from({length:3}).map((e,o)=>T("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,borderTop:o?`1px solid ${Ye.line}`:"none",paddingTop:o?4:0},children:[f(W,{w:34,h:4,r:2,tone:"dark"}),f(W,{w:16,h:3,r:2,tone:"soft"})]},o))]})]})]}),split:T("div",{style:{...$,display:"flex"},children:[f("div",{style:{width:"44%",background:xh}}),T("div",{style:{flex:1,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[f(W,{w:"44%",h:5,r:3,tone:"accent"}),f(W,{w:"88%",h:8,r:4,tone:"dark"}),f(W,{w:"70%",h:8,r:4,tone:"dark"}),f(W,{w:"94%",h:5,r:2,tone:"soft",style:{marginTop:2}}),f(W,{w:"80%",h:5,r:2,tone:"soft"}),f(W,{w:"40%",h:13,r:6,tone:"accent",style:{marginTop:5}})]})]}),sectionheader:T(gT,{children:[f(W,{w:"18%",h:6,r:3,tone:"accent",style:{position:"absolute",top:15,right:16}}),T("div",{style:{...$,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:10},children:[T("div",{style:{display:"flex",alignItems:"center",gap:9},children:[f(W,{w:16,h:16,r:4,tone:"accent"}),f(W,{w:"20%",h:9,r:4,tone:"dark"})]}),f(W,{w:"62%",h:10,r:5,tone:"dark"}),f(W,{w:"42%",h:6,r:3,tone:"soft"})]})]}),header:f("div",{style:{...$,padding:14,display:"flex",flexDirection:"column",justifyContent:"center"},children:T("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[f(W,{w:"22%",h:12,r:4,tone:"dark"}),T("div",{style:{display:"flex",gap:9,alignItems:"center"},children:[f(W,{w:26,h:6,r:3,tone:"soft"}),f(W,{w:26,h:6,r:3,tone:"soft"}),f(W,{w:26,h:6,r:3,tone:"soft"}),f(W,{w:18,h:14,r:5,tone:"accent"})]})]})}),footer:T("div",{style:{...$,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:12},children:[T("div",{style:{display:"flex",gap:14},children:[T("div",{style:{flex:1.4,display:"flex",flexDirection:"column",gap:6},children:[f(W,{w:"60%",h:9,r:4,tone:"dark"}),f(W,{w:"90%",h:5,r:2,tone:"soft"}),f(W,{w:"70%",h:5,r:2,tone:"soft"})]}),[0,1].map(e=>T("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[f(W,{w:"50%",h:6,r:3,tone:"dark"}),f(W,{w:"80%",h:5,r:2,tone:"soft"}),f(W,{w:"66%",h:5,r:2,tone:"soft"})]},e))]}),f("div",{style:{height:1,background:Ye.line}}),T("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[f(W,{w:"30%",h:5,r:2,tone:"soft"}),f(W,{w:"16%",h:5,r:2,tone:"soft"})]})]}),grid:f("div",{style:{...$,padding:14,display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr 1fr",gap:9},children:Array.from({length:4}).map((e,o)=>f("div",{style:{borderRadius:6,background:Ye.block}},o))}),blanksection:f("div",{style:{...$,padding:14,display:"flex"},children:T("div",{style:{flex:1,border:`1px dashed ${Ye.line}`,borderRadius:7,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[f(W,{w:14,h:2,r:1,tone:"tint"}),f(W,{w:2,h:14,r:1,tone:"tint",style:{position:"absolute"}})]})}),spacer:T("div",{style:{...$,padding:14,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[f(W,{w:"100%",h:6,r:3,tone:"soft"}),f(W,{w:16,h:22,r:3,tone:"block",style:{alignSelf:"center"}}),f(W,{w:"100%",h:6,r:3,tone:"soft"})]}),divider:f("div",{style:{...$,padding:14,display:"flex",alignItems:"center"},children:f(W,{w:"100%",h:3,r:2,tone:"dark"})}),customhtml:T("div",{style:{...$,display:"flex",alignItems:"center",justifyContent:"center",gap:8,background:xh},children:[f(W,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(-14deg)"}}),f(W,{w:16,h:10,r:3,tone:"accent"}),f(W,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(14deg)"}})]}),heading:f("div",{style:{...$,padding:14,display:"flex",alignItems:"center"},children:f(W,{w:"64%",h:13,r:4,tone:"dark"})}),text:T("div",{style:{...$,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[f(W,{w:"100%",h:6,r:3,tone:"soft"}),f(W,{w:"96%",h:6,r:3,tone:"soft"}),f(W,{w:"100%",h:6,r:3,tone:"soft"}),f(W,{w:"58%",h:6,r:3,tone:"soft"})]}),image:f("div",{style:{position:"absolute",inset:14,borderRadius:7,background:xh}}),button:f("div",{style:{...$,display:"flex",alignItems:"center",justifyContent:"center"},children:f(W,{w:"34%",h:16,r:8,tone:"accent"})}),menu:T("div",{style:{...$,padding:"14px 22%",display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[f(W,{w:"48%",h:7,r:3,tone:"dark"}),f(W,{w:"82%",h:5,r:2,tone:"soft"}),f(W,{w:"66%",h:5,r:2,tone:"soft"}),f(W,{w:"74%",h:5,r:2,tone:"soft"}),f(W,{w:"58%",h:5,r:2,tone:"soft"})]}),emailform:T("div",{style:{...$,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[f(W,{w:"56%",h:8,r:3,tone:"dark"}),T("div",{style:{display:"flex",gap:6},children:[f("div",{style:{flex:1,height:16,borderRadius:5,border:`1px solid ${Ye.line}`}}),f(W,{w:"30%",h:16,r:5,tone:"accent"})]})]}),sociallogos:f("div",{style:{...$,display:"flex",alignItems:"center",justifyContent:"center",gap:9},children:[0,1,2,3].map(e=>f(W,{w:16,h:16,r:8,tone:"dark"},e))}),paymentlogos:T("div",{style:{...$,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[f(W,{w:22,h:6,r:2,tone:"soft"}),[0,1,2,3].map(e=>f(W,{w:20,h:13,r:3,tone:"dark"},e))]}),search:f("div",{style:{...$,padding:"0 18%",display:"flex",alignItems:"center"},children:T("div",{style:{flex:1,height:22,borderRadius:11,border:`1px solid ${Ye.line}`,display:"flex",alignItems:"center",gap:7,padding:"0 9px"},children:[f("div",{style:{width:9,height:9,borderRadius:5,border:`2px solid ${Ye.dark}`}}),f(W,{w:"46%",h:5,r:2,tone:"soft"})]})}),cart:T("div",{style:{...$,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[f("div",{style:{width:22,height:18,borderRadius:"3px 3px 6px 6px",border:`2px solid ${Ye.dark}`}}),f("div",{style:{padding:"2px 6px",borderRadius:6,border:`1.5px solid ${Ye.dark}`},children:f(W,{w:7,h:7,r:2,tone:"dark"})})]}),countryswitch:T("div",{style:{...$,padding:14,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:5},children:[T("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",border:`1px solid ${Ye.line}`},children:[f(W,{w:22,h:6,r:2,tone:"dark"}),f(W,{w:6,h:4,r:1,tone:"soft"})]}),T("div",{style:{width:"46%",display:"flex",flexDirection:"column",gap:4,padding:6,border:`1px solid ${Ye.line}`},children:[f(W,{w:"80%",h:4,r:2,tone:"accent"}),f(W,{w:"64%",h:4,r:2,tone:"soft"}),f(W,{w:"72%",h:4,r:2,tone:"soft"})]})]}),legalline:T("div",{style:{...$,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[f("div",{style:{height:1,background:Ye.line}}),T("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[f(W,{w:"38%",h:5,r:2,tone:"soft"}),T("div",{style:{display:"flex",gap:5},children:[f(W,{w:14,h:5,r:2,tone:"soft"}),f(W,{w:14,h:5,r:2,tone:"soft"}),f(W,{w:14,h:5,r:2,tone:"soft"})]})]})]}),fallback:f("div",{style:{position:"absolute",inset:14,borderRadius:8,background:Ye.block}})};function bT({type:e}){let o=$8[e]??"",t=j8[o]??IT[o]??IT.fallback;return f("div",{className:"sf-thumb","aria-hidden":"true",style:{position:"absolute",inset:0,background:"var(--sf-thumb-thumb-bg)",pointerEvents:"none",containerType:"inline-size"},children:t})}import{useScreenDocument as Bd}from"efficient-easel/screen/components/ScreenDocumentContext";import{jsx as qa,jsxs as K8}from"react/jsx-runtime";import q8 from"efficient-easel/screen/components/SidePanelHead";import{StylesIcon as V8}from"efficient-easel/rail";import{Tooltip as Y8}from"efficient-shell/ui";function yT({tokenRef:e,siteId:o,onClose:t,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l}){let c=Aa();return K8("div",{className:"sf-styles",children:[qa(q8,{icon:qa(V8,{}),title:i("Styles"),context:qa(Y8,{content:i("{name} \u2014 renamed in the Console: {place}.",{name:c,place:i("Storefront \u25B8 Sites \u25B8 Settings")}),className:"sf-name-tip",children:qa("span",{className:"sf-name-text",children:c})})}),qa("div",{className:"sf-insp-body es-insp-body sf-scroll",children:qa(Ki,{tokenRef:e,siteId:o,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l})})]})}import{jsx as Je,jsxs as zr,Fragment as tj}from"react/jsx-runtime";import{Fragment as LT,useEffect as BT,useRef as kh}from"react";import{useTreeDrag as DT}from"efficient-easel/drag";import{GlobeIcon as rj,ImageIcon as aj,LocationIcon as nj,MapIcon as sj,TextLinesIcon as lj,TrashIcon as NT}from"efficient-easel/icons";import{Subtree as MT,TreeRow as Ss,TreeRowAction as HT,TreeSeam as WT}from"efficient-easel/tree";import{useEaselStrings as ij}from"efficient-easel/strings";import{createPreviewSelectionContext as X8}from"efficient-easel/draw/client";var{Provider:xSe,useSelection:ST}=X8("selectedLocationPartId");function CT(e,o,t){return`${e}::${o}::${t}`}function wT(e){if(!e)return null;let o=e.split("::");if(o.length<3)return null;let t=o[o.length-1];if(t!=="image"&&t!=="map"&&t!=="city")return null;let r=Number(o[o.length-2]);if(!Number.isInteger(r)||r<0)return null;let a=o.slice(0,-2).join("::");return a?{nodeId:a,index:r,part:t}:null}import{isSelectionMode as cj}from"efficient-easel/screen/lib/screen-parts";import{useSyncExternalStore as Z8}from"react";var J8={level:"groups"},vT=J8,bh=new Set;function Ko(e){vT=e;for(let o of bh)o()}function Q8(e){return bh.add(e),()=>{bh.delete(e)}}var kT=()=>vT;function TT(){return Z8(Q8,kT,kT)}function Kc(e,o,t){let r=[];return e.forEach((a,n)=>{let s=o(a),l=r.find(c=>c.key===s);l||(l={key:s,name:t(a),items:[]},r.push(l)),l.items.push({item:a,index:n})}),r}function ySe(e){return ej[bs(e)]}var ej={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"};function bs(e){if(e<=1)return 1;if(e<=4)return e;let o=t=>e%t||t;return o(4)>=o(3)?4:3}var ys=e=>String(e?.group??""),yh=new WeakMap,oj=0;function qc(e){let o=yh.get(e);return o||(o=`loc${++oj}`,yh.set(e,o)),o}var PT=(e,o)=>o||e||"Ungrouped",ET={photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
|
|
21
|
+
Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""};function Gr(e){return Kc(e,ys,o=>String(o?.groupName??"")).map(o=>({key:o.key,name:o.name,cards:o.items.map(t=>t.item)}))}var Sh=e=>e.flatMap(o=>o.cards),OT=(e,o,t)=>Math.min(Math.max(e,o),t);function Vc(e,o,t){let r=0;for(let a=0;a<e.length;a++)if(ys(e[a])===o){if(r===t)return a;r++}return-1}function Ch(e,o,t){let r=Gr(e);if(o<0||o>=r.length)return e;let[a]=r.splice(o,1),n=OT(o<t?t-1:t,0,r.length);return r.splice(n,0,a),Sh(r)}function wh(e,o,t,r,a){let n=Gr(e),s=n.find(h=>h.key===o),l=n.find(h=>h.key===r);if(!s||!l||t<0||t>=s.cards.length)return e;let[c]=s.cards.splice(t,1),d=o===r?c:{...c,group:l.key,groupName:l.name};d!==c&&yh.set(d,qc(c));let u=OT(s===l&&t<a?a-1:a,0,l.cards.length);return l.cards.splice(u,0,d),Sh(n)}function _T(e,o){let t=Gr(e),r=t.find(n=>n.key===o),a={...ET,group:o,groupName:r?.name??""};return r?(r.cards.push(a),Sh(t)):[...e,a]}function FT(e){let o=new Set(Gr(e).map(a=>a.key)),t=o.size+1,r=`Group ${t}`;for(;o.has(r);)r=`Group ${++t}`;return{cards:[...e,{...ET,group:r,groupName:""}],key:r}}function AT(e,o){return e.filter(t=>ys(t)!==o)}function RT(e,o,t){let r=Vc(e,o,t);return r<0?e:e.filter((a,n)=>n!==r)}function wSe(e,o,t){let r=e.flatMap((s,l)=>ys(s)===o?[l]:[]),a=e.slice();r.forEach((s,l)=>{a[s]=t[l]});let n=t.slice(r.length);return[...a.filter(s=>s!==void 0),...n]}function kSe(e,o,t){return o.flatMap(r=>{let a=e.filter(n=>ys(n)===r);return a.length?a:t(r)})}var Xc="ContactLocations",Yc=e=>({parentId:`locations-${e}`,slot:"groups"}),vh=(e,o)=>({parentId:`locations-${e}`,slot:`cities:${o}`});function GT(e,o){let{readOnly:t,selected:r}=o,a=ij().tree,n=o.data?.content??[],s=cj(e),l=kh(null);BT(()=>{let I=r?.type===Xc?String(r.props.id):null;I&&I!==l.current&&Ko({level:"groups"}),l.current=I},[r?.props.id]);let{selectedLocationPartId:c,setSelectedLocationPartId:d,setSelectHandler:u}=ST(),h=TT(),p=(I,w)=>{let v=n[I];v&&o.replace(I,{type:v.type,props:{...v.props,locations:w}})},x=I=>{let w=n[I]?.props?.locations;return Array.isArray(w)?w:[]},g=DT({keyOf:I=>`group:${I.si}:${I.index}`,readOnly:!!t,canDrop:(I,w)=>w.parentId===Yc(I.si).parentId&&w.slot==="groups",onDrop:(I,w)=>{p(I.si,Ch(x(I.si),I.index,w.index)),h.level==="city"&&Ko({level:"groups"})},onStep:(I,w)=>{p(I.si,Ch(x(I.si),I.index,w<0?I.index-1:I.index+2)),h.level==="city"&&Ko({level:"groups"})}}),y=DT({keyOf:I=>`city:${I.si}:${I.group}:${I.index}`,readOnly:!!t,canDrop:(I,w)=>w.parentId===Yc(I.si).parentId&&w.slot.startsWith("cities:"),onDrop:(I,w)=>{let v=w.slot.slice(7);p(I.si,wh(x(I.si),I.group,I.index,v,w.index)),Ko({level:"group",key:v})},onStep:(I,w)=>{p(I.si,wh(x(I.si),I.group,I.index,I.group,w<0?I.index-1:I.index+2)),h.level==="city"&&Ko({level:"group",key:I.group})}}),E=kh(n);E.current=n;let O=kh(()=>{});BT(()=>{u(I=>{let w=wT(I);if(!w)return;let v=E.current.findIndex(k=>k.props?.id===w.nodeId);v<0||O.current(v,{level:w.part,index:w.index})})},[u]);let C=(I,w)=>{l.current=n[I]?.props?.id??null,o.select(I),Ko(w),e.reveal();let v=n[I]?.props?.id;typeof v=="string"&&(w.level==="city"||w.level==="image"||w.level==="map")?d(CT(v,w.index,w.level)):d(null),typeof v=="string"&&o.scrollTo(v)};return O.current=C,{renderLocationTree:(I,w,{rowClick:v,isCollapsed:k,toggleCollapse:A})=>{let D=x(w),P=Gr(D),F=String(I.props.id),N=s&&r?.props.id===F,b=R=>Je(WT,{...t?{}:g.seam({place:{...Yc(w),index:R}})},`seam:${F}:groups:${R}`),_=(R,H)=>Je(WT,{...t?{}:y.seam({place:{...vh(w,R),index:H}})},`seam:${F}:cities:${R}:${H}`);return zr(tj,{children:[Je(Ss,{icon:Je(lj,{size:13}),name:i("Texts"),words:a,onSelect:()=>C(w,{level:"texts"}),selected:N&&h.level==="texts",rowProps:{onClick:v(()=>C(w,{level:"texts"}))}}),P.map((R,H)=>{let U=`${F}::grp::${R.key}`,Z=k(U),K=N&&h.level==="group"&&h.key===R.key,Le=R.name||R.key?PT(R.key,R.name):i("Ungrouped"),be={...vh(w,R.key),index:R.cards.length},Xe=y.row({item:{si:w,group:R.key,index:-1},place:be,into:be,canDrag:!1},{onClick:v(()=>C(w,{level:"group",key:R.key}))}),Ge=g.row({item:{si:w,index:H},place:{...Yc(w),index:H}},Xe.rowProps);return zr(LT,{children:[H===0&&b(0),Je(Ss,{icon:Je(rj,{size:13}),name:Le,words:a,onSelect:()=>C(w,{level:"group",key:R.key}),selected:K,draggable:Ge.draggable,dragging:Ge.dragging,drop:Ge.drop??Xe.drop,fold:{open:!Z,label:i("group"),onToggle:()=>A(U)},actions:Je(HT,{kind:"delete",label:co("Delete {label} group ({n} city)","Delete {label} group ({n} cities)",R.cards.length,{label:Le}),onClick:()=>{p(w,AT(D,R.key)),Ko({level:"groups"})},children:Je(NT,{size:15})}),rowProps:Ge.rowProps,count:R.cards.length,countLabel:co("{n} city","{n} cities",R.cards.length)}),!Z&&zr(MT,{children:[R.cards.map((Pe,Ie)=>{let we=Vc(D,R.key,Ie),eo=N&&h.level==="city"&&h.index===we,lo=String(Pe?.name??"")||i("City"),ie=`${F}::city::${qc(Pe)}`,Be=k(ie),{rowProps:ho,...Ae}=y.row({item:{si:w,group:R.key,index:Ie},place:{...vh(w,R.key),index:Ie}},{onClick:v(()=>C(w,{level:"city",index:we}))});return zr(LT,{children:[Ie===0&&_(R.key,0),Je(Ss,{icon:Je(nj,{size:13}),name:lo,words:a,onSelect:()=>C(w,{level:"city",index:we}),selected:eo,...Ae,fold:{open:!Be,label:lo,onToggle:()=>A(ie)},actions:Je(HT,{kind:"delete",label:i("Delete {name}",{name:lo}),onClick:()=>{p(w,RT(D,R.key,Ie)),Ko({level:"group",key:R.key})},children:Je(NT,{size:15})}),rowProps:ho}),!Be&&zr(MT,{children:[Je(Ss,{icon:Je(aj,{size:13}),name:i("Image"),words:a,onSelect:()=>C(w,{level:"image",index:we}),selected:N&&h.level==="image"&&h.index===we,rowProps:{onClick:v(()=>C(w,{level:"image",index:we}))}}),Je(Ss,{icon:Je(sj,{size:13}),name:i("Map"),words:a,onSelect:()=>C(w,{level:"map",index:we}),selected:N&&h.level==="map"&&h.index===we,rowProps:{onClick:v(()=>C(w,{level:"map",index:we}))}})]}),_(R.key,Ie+1)]},qc(Pe))}),zr("button",{type:"button",className:"sf-add-card",onClick:()=>{let Pe=_T(D,R.key);p(w,Pe);let Ie=Gr(Pe).find(we=>we.key===R.key);Ko(Ie&&Ie.cards.length?{level:"city",index:Vc(Pe,R.key,Ie.cards.length-1)}:{level:"group",key:R.key})},children:[Je("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add city")]})]}),b(H+1)]},U)}),zr("button",{type:"button",className:"sf-add-card",onClick:()=>{let{cards:R,key:H}=FT(D);p(w,R),C(w,{level:"group",key:H})},children:[Je("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add group")]})]})},sectionPressed:I=>{I?.type===Xc&&Ko({level:"groups"})}}}import{useEffect as Bj,useRef as Dj}from"react";import{createNode as _h,newId as Fh}from"efficient-easel/data";import{useEaselApi as Nj}from"efficient-easel/easel";import{useScreenDocument as Mj}from"efficient-easel/screen/components/ScreenDocumentContext";import{useEaselSession as Hj}from"efficient-easel/screen/lib/session-context";import{useEffect as _j,useRef as Fj}from"react";import{useEasel as Aj}from"efficient-easel/easel";import{ROOT_ZONE as Oh}from"efficient-easel/draw";import{readHidable as Sj}from"efficient-easel/draw";var Vt="content",re="Flex",dj="Text & media",fj="Layout & structure",UT=[{type:"Eyebrow",label:"Eyebrow",retired:!0},{type:"Heading",label:"Heading",retired:!0},{type:"Text",label:"Text"},{type:"ImageBlock",label:"Image"},{type:"LogoBlock",label:"Logo"},{type:"LocationMap",label:"Map"},{type:"ButtonBlock",label:"Button"},{type:"Contents",label:"Contents"}],uj=[...UT,{type:"Form",label:"Form"},{type:"PostCard",label:"Post Card"},{type:"Stats",label:"Stats"},{type:"MenuBlock",label:"Menu"},{type:"EmailFormBlock",label:"Email Form"},{type:"SocialLogosBlock",label:"Social Logos"},{type:"PaymentLogosBlock",label:"Payment Logos"},{type:"LegalLineBlock",label:"Legal Line"},{type:"SearchBlock",label:"Search"},{type:"CartBlock",label:"Cart"},{type:"CountrySwitchBlock",label:"Country Switch"},{type:"AccountBlock",label:"Account"},{type:"ThemeSwitchBlock",label:"Theme Switch"}].map(e=>({...e,group:dj})),pj=(Kt.find(e=>e.key==="structure")?.sections??[]).map(e=>({type:e.type,label:e.label,group:fj})),zT=[...uj,...pj],Th=[...UT,{type:"HeroGroup",label:qt}],HSe=Th.map(e=>e.type),mj=1,hj=Th.filter(e=>e.type!=="HeroGroup");function xj(e){return e<mj?Th:hj}var Ij={Flex:{slot:Vt,choices:()=>zT},Grid:{slot:Vt,choices:()=>zT},HeroGroup:{slot:Vt,choices:xj}};function $T(e,o=0){let t=Ij[e];return t?{slot:t.slot,choices:t.choices(o)}:null}var To=()=>({tag:"h2",_partStyles:{text:{textStyle:"heading-2"}}}),So=()=>({_partStyles:{text:{textStyle:"body-5",color:"accent",letterSpacing:.3,case:"upper",lineHeight:1.5}}});var gj="inline",bj=[{label:"In this section",value:"inline"},{label:"In its own box",value:"own-box"}];var uo={ProductGrid:{num:"num",title:"title",description:"description",headRows:["num","title","titleSize","description","linkText","linkHref"],renderer:"ProductGridSection",padKey:"padTop",linkProp:"link"},TyreSizes:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicTyreSizes"},FitmentFinder:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"FitmentFinder"},TyreFitment:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicTyreFitment"},BundleOffer:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicBundleOffer"},CompatibleTyres:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicRelatedProducts"},RelatedProducts:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicRelatedProducts"},SpecTable:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"SpecTable"},FAQ:{num:"num",title:"title",linkProp:"link",headRows:["num","title","linkText","linkHref"],renderer:"FAQ"},GalleryB:{num:"num",title:"title",headRows:["num","title","linkText","linkHref"],renderer:"GalleryGrid"},FitmentTable:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"FitmentTable"},Events:{num:"num",title:"title",linkProp:"link",headRows:["num","title","linkText","linkHref"],renderer:"Events"},ProcessSteps:{num:"num",title:"title",description:"description",headRows:["num","title","description"],headStyle:"editorial",renderer:"ProcessSteps",padKey:"padTop"},LongRead:{num:"headNum",title:"headTitle",description:"headDesc",headRows:["headNum","headTitle","headDesc"],headStyle:"editorial",renderer:"LongRead"},Series:{num:"headNum",title:"headTitle",description:"headDesc",headRows:["headNum","headTitle","headDesc"],headStyle:"editorial",renderer:"Series"},TimelineTrack:{num:"eyebrow",title:"title",description:"intro",headRows:["eyebrow","title","intro"],headStyle:"editorial",renderer:"TimelineTrack",padKey:"padTop"},StatsParagraph:{num:"eyebrow",title:"title",description:"desc",headRows:["eyebrow","title","desc"],headStyle:"editorial",renderer:"StatsParagraph"},Footprint:{num:"sectionNumber",title:"heading",description:"tagline",headRows:["sectionNumber","heading","tagline"],headStyle:"editorial",renderer:"Footprint",padKey:"padTop"},Collections:{num:"eyebrow",title:"heading",headRows:["eyebrow","heading"],renderer:"Collections"},Cards:{num:"eyebrow",title:"title",headRows:["eyebrow","eyebrowLook","title"],headStyle:"simple",renderer:"Cards"},Testimonials:{num:"eyebrow",title:"title",headRows:["eyebrow","eyebrowLook","title"],headStyle:"simple",renderer:"Testimonials"},Reviews:{num:"eyebrow",title:"title",headRows:["eyebrow","eyebrowLook","title"],headStyle:"simple",renderer:"Reviews"},Prose:{num:"eyebrow",title:"title",headRows:["eyebrow","title"],headStyle:"essay",renderer:"Prose"},ReviewForm:{num:"eyebrow",title:"title",headRows:["eyebrow","title"],headStyle:"simple",renderer:"ReviewForm"},DeliveryOptions:{num:"eyebrow",title:"title",description:"body",headRows:["eyebrow","title","body"],headStyle:"natural",headRowGap:"gap-3",headDescriptionSize:"text-[15px]",renderer:"DeliveryOptions"}},Va="SectionHeader";function jT(e){return e in uo}function KT(e){return io(bj,gj,e)}var yj=new Set(["Flex"]);function $Se(e){return!!e?.type&&yj.has(e.type)}var qT={not:{field:"headPlacement",is:"own-box"}},jSe={not:qT};function KSe(e,o,t){return gf(e,t,qT)}var nt=re,st=Vt;function Zc(e){if(e.theme)return oo(e.theme);let o=e.site?.themePresets;return o?oo({selected:e.site?.selectedPreset??0,themes:[...o]}):void 0}function Cj(e,o){return o===0?`${e}~box`:`${e}~box-${o+1}`}var YT=new Set(["id"]),Ur={},XT=[],Cs=[];function Po(e){for(let[o,t]of Object.entries(e)){if(o in Ur&&Ur[o]!==t)throw new Error(`lib/sections/section-to-box: "${o}" already has a row`);Ur[o]=t}}function Jc(e){return Ur[e]}function wj(e){return e in Ur&&XT.includes(e)}function ZT(e,o=Cs){return e in Ur&&(o.includes(e)||wj(e))}function oCe(e){let o=uo[e];if(!o)throw new Error(`lib/sections/section-to-box: "${e}" has no head row in SPLITTABLE_SECTIONS`);let t=[{kind:"text",key:o.num,role:"eyebrow"},{kind:"text",key:o.title,role:"heading"}];return o.description&&t.push({kind:"text",key:o.description,role:"body"}),o.headRows.includes("linkText")&&o.headRows.includes("linkHref")&&t.push({kind:"button",key:"linkText",href:"linkHref"}),t}var Ph=e=>Sj(e),Ue=e=>Ph(e).text.trim()!=="";function kj(e){return e.replace(/==(.+?)==/g,(o,t)=>t.startsWith("_")&&t.endsWith("_")?o:`==_${t}_==`)}function vj(e){if(e.includes("=="))return e;let o=e.indexOf("/"),t=o===-1?e:e.slice(0,o),r=t.trim();if(!r)return e;let a=t.indexOf(r);return`${t.slice(0,a)}==${r}==${t.slice(a+r.length)}${o===-1?"":e.slice(o)}`}var Tj=e=>e==="heading"?To():e==="eyebrow"?So():{};function Pj(e,o,t,r){let a={...e._partStyles?.text??{},...o??{},...t??{}};return(r==="center"||r==="right")&&a.align===void 0&&(a.align=r),Object.keys(a).length?{_partStyles:{text:a}}:{}}function Ej(e,o){if(e===void 0)return{};if(typeof e=="string")return{variant:e};let t=o[e.key];return{variant:typeof t=="string"&&Object.hasOwn(e.map,t)?e.map[t]:e.fallback}}function VT(e,o,t,r,a={}){let n={...o};for(let s of e){let[l,c,d]=typeof s=="string"?[s,s,void 0]:s;if(t[l]===void 0)continue;let u=d?d(t[l],t,a):t[l];u===void 0?delete n[c]:n[c]=u,r(l,c,u===void 0)}return n}function Oj(e){let o=new Set([...YT,"headPlacement","_partStyles",...Object.keys(e.drop??{}),...Object.keys(e.reads??{})]),t=a=>{for(let n of a??[])o.add(typeof n=="string"?n:n[0])},r=a=>{for(let n of a)switch(n.kind){case"text":case"image":o.add(n.key),n.kind==="image"&&n.alt&&o.add(n.alt);break;case"button":o.add(n.key),o.add(n.href),typeof n.variant=="object"&&o.add(n.variant.key);break;case"list":o.add(n.key);break;case"group":case"block":t(n.box),r(n.parts??[]);break;case"core":n.keep!=="rest"&&n.keep.forEach(s=>o.add(s)),Object.keys(n.rename??{}).forEach(s=>o.add(s));for(let s of Object.values(n.slots??{}))for(let l of s)"kind"in l&&o.add(l.key);break}};for(let a of[e,...e.also??[]])t(a.box),r(a.parts);return o}function Eh(e,o,t={}){let r=e.props,a=o.skip?.(r);if(a!==void 0)return{node:e,nodes:[e],carried:[],dropped:[],siteWrites:[],restyled:[],skipped:a};let n=String(r.id??e.type),s=[],l=[],c=[],d=new Set,u=(v,k)=>{s.push({key:v,home:k}),d.add(v)},h=r._partStyles??{},p=Oj(o),x=0,g=(v,k)=>({type:v,props:{...k,id:`${n}~${v}-${++x}`}}),y=(v,k,A,D,P,F,N)=>{if(P){for(let _ of v??[]){let R=typeof _=="string"?_:_[0];A[R]!==void 0&&N(R,`nothing \u2014 the ${D} has no parts, so it is not drawn`)}return}let b=typeof k=="function"?k(r,t):k??{};return VT(v??[],b,A,(_,R,H)=>N(_,H?`nothing \u2014 the old value draws nothing (${D}: no ${R})`:`${F}${D}: ${R}`),t)},E=v=>v.map(k=>{let A={...k.props??{}};for(let[D,P]of Object.entries(k.slots??{}))A[D]=E(P);return g(k.type,A)}),O=(v,k,A)=>{let D=v.of?v.of(k):Array.isArray(k[v.key])?k[v.key]:[],P=typeof v.props=="function"?v.props(r,t):v.props??{},F=D.map((H,U)=>{let Z=H??{},K=v.item?.(Z,U,r)??{},Le=C(K.reverse?[...v.parts].reverse():v.parts,Z,!1,`item ${U+1}: `);return v.flat?K.props?Le.map(be=>({...be,props:{...be.props,...K.props,id:be.props.id}})):Le:[g(nt,{name:`${v.name} ${U+1}`,...P,...K.props??{},[st]:Le})]});if(v.groups){let H=v.groups;return A(v.key,D.length?`one Box per item (${D.length}), in a Box per group`:"nothing \u2014 the list is empty"),Kc(D.map(U=>U??{}),H.of,H.of).map((U,Z)=>{let K=U.items.map(Ie=>Ie.item),Le=H.parts?C(H.parts,H.head?.(K,r)??{},!1,`group ${Z+1}: `):[],be=U.items.map(Ie=>F[Ie.index]),Xe=H.perRow?.(K.length,r),Ge=Number.isInteger(Xe)&&Xe>=1?Xe:1,Pe=[];if(H.perRow&&Ge<be.length)for(let Ie=0;Ie*Ge<be.length;Ie++)Pe.push(be.slice(Ie*Ge,(Ie+1)*Ge).flat());return g(nt,{name:`${H.name} ${Z+1}`,...H.props??{},[st]:[...Le,g(nt,{name:`${H.itemsName} ${Z+1}`,...H.itemsProps?.(K.length,r)??{},[st]:Pe.length?Pe.map((Ie,we)=>g(nt,{name:`${H.rowName??`${H.itemsName} row`} ${we+1}`,...H.rowProps??{},[st]:Ie})):be.flat()})]})})}let N=v.perRow?.(r),b=v.perRow?Number.isInteger(N)&&N>=1?N:1:0;if(A(v.key,(D.length?v.flat?`each item's parts (${D.length} items), in order`:`one Box per item (${D.length}), its parts inside`:"nothing \u2014 the list is empty")+(b&&D.length?`, in rows of ${b}`:"")),!b)return F.flat();let _=typeof v.rowProps=="function"?v.rowProps(r,t):v.rowProps??{},R=[];for(let H=0;H*b<F.length;H++){let U=F.slice(H*b,(H+1)*b).flat(),Z=v.rowFiller?b-F.slice(H*b,(H+1)*b).length:0;R.push(g(nt,{name:`${v.rowName??`${v.name} row`} ${H+1}`,..._,[st]:[...U,...Array.from({length:Z},(K,Le)=>g(nt,{name:`Empty ${Le+1}`,...v.rowFiller,[st]:[]}))]}))}return R},C=(v,k,A,D)=>{let P=[],F=(b,_)=>A?u(b,_):void 0,N=b=>A?h[b]:void 0;for(let b of v)if(!(b.when&&!b.when(r,A?void 0:k)))switch(b.kind){case"text":{let _=Ph(k[b.key]);if(!_.text.trim()){F(b.key,"nothing \u2014 empty words draw nothing, so no block");break}let R=Tj(b.role??"body"),{_partStyles:H,...U}=R,Z=Pj(R,b.styleFrom?{...b.style,...b.styleFrom(r,t)}:b.style,N(b.key),b.props?.align);if(b.was&&A){let K=Z._partStyles?.text??{};c.push({key:b.key,was:b.was,...typeof K.textStyle=="string"?{textStyle:K.textStyle}:{},...j(K.size)!==void 0?{size:j(K.size)}:{},...j(K.sizePhone)!==void 0?{sizePhone:j(K.sizePhone)}:{}})}P.push(g("Text",{text:b.mark==="accentLead"?vj(_.text):b.mark==="accentItalic"?kj(_.text):_.text,...U,...b.props??{},...Z,..._.hidden?{_hidden:!0}:{}})),F(b.key,`${D}Text block: its words${_.hidden?", hidden":""}`);break}case"button":{let _=Ph(k[b.key]);if(!_.text.trim()){F(b.key,"nothing \u2014 no words, no button"),F(b.href,"nothing \u2014 no button to link"),typeof b.variant=="object"&&F(b.variant.key,"nothing \u2014 no button to style");break}let R=typeof k[b.href]=="string"&&k[b.href]?k[b.href]:"#",H={...b.style??{},...N(b.key)??{}};P.push(g("ButtonBlock",{label:_.text,href:R,...typeof b.props=="function"?b.props(k,t):b.props??{},...Ej(b.variant,k),...Object.keys(H).length?{_partStyles:{label:H}}:{},..._.hidden?{_hidden:!0}:{}})),F(b.key,`${D}Button block: its words`),F(b.href,`${D}Button block: its link`),typeof b.variant=="object"&&F(b.variant.key,`${D}Button block: its Style`);break}case"image":{let _=k[b.key];if(typeof _!="string"||!_){F(b.key,"nothing \u2014 no picture, no block"),b.alt&&F(b.alt,"nothing \u2014 no picture to describe");break}let R=b.alt&&typeof k[b.alt]=="string"?k[b.alt]:"";P.push(g("ImageBlock",{src:_,alt:R,...b.props??{}})),F(b.key,`${D}Image block: its picture`),b.alt&&F(b.alt,`${D}Image block: its alt text`);break}case"list":{P.push(...O(b,k,F));break}case"group":{let _=C(b.parts,k,A,D),R=y(b.box,b.props,k,`${b.name} Box`,!_.length&&!b.keepEmpty,D,F);R&&P.push(g(nt,{name:b.name,...R,[st]:_}));break}case"block":{let _=b.parts?C(b.parts,k,A,D):[],R=y(b.box,b.props,k,`${b.type} block`,!!b.parts&&!_.length&&!b.keepEmpty,D,F);R&&P.push(g(b.type,{...R,...b.slot?{[b.slot]:_}:{}}));break}case"core":{let _=b.as??e.type,R={headPlacement:"own-box",...b.props??{}},H=b.keep==="rest"?Object.keys(k).filter(U=>!p.has(U)&&!(U in R)):b.keep;for(let U of H)k[U]!==void 0&&(R[U]=k[U],F(U,`the ${_} block inside the Box`));if(b.keep==="rest"){for(let Z of Object.keys(b.props??{}))k[Z]!==void 0&&!p.has(Z)&&F(Z,`nothing \u2014 the ${_} block inside the Box has the row's own value`);k.headPlacement!==void 0&&F("headPlacement",`the ${_} block inside the Box: own-box`);let U=Object.fromEntries(Object.entries(h).filter(([Z])=>!p.has(Z)));Object.keys(U).length&&(R._partStyles=U)}for(let[U,Z]of Object.entries(b.rename??{}))k[U]!==void 0&&(R[Z]=k[U],F(U,`the ${_} block inside the Box: ${Z}`));for(let[U,Z]of Object.entries(b.slots??{}))R[U]=Z.flatMap(K=>"kind"in K?O(K,k,F):E([K]));P.push(g(_,R));break}}return P},I=(v,k)=>{let A=k===0?"Box":`${v.name} Box`,D=C(v.parts,r,!0,k===0?"":`${A}: `),P=typeof v.boxProps=="function"?v.boxProps(r,t):v.boxProps??{},F=VT(v.box??[],P,r,(N,b,_)=>u(N,_?`nothing \u2014 the old value draws nothing (${A}: no ${b})`:`${A}: ${b}`),t);return{type:nt,props:{name:v.name,...F,[st]:D,id:Cj(n,k)}}},w=[o,...o.also??[]].map(I);r._partStyles!==void 0&&u("_partStyles","each old part's style moved to its new part");for(let[v,k]of Object.entries(o.reads??{}))r[v]!==void 0&&u(v,k);for(let[v,k]of Object.entries(o.drop??{}))v in r&&(l.push({key:v,why:k}),d.add(v));for(let v of Object.keys(r))YT.has(v)||d.has(v)||l.push({key:v,why:"not in the row \u2014 not carried"});return{node:w[0],nodes:w,carried:s,dropped:l,siteWrites:[...o.site?.(e,t)??[]],restyled:c}}function JT(e,o=XT,t={}){if(!Array.isArray(e))return[];let r=[];return e.forEach((a,n)=>{let s=a&&typeof a.type=="string"&&o.includes(a.type)?Ur[a.type]:void 0;if(!s)return;let l=Eh(a,s,t);l.skipped===void 0&&r.push({index:n,node:l.node,nodes:l.nodes})}),r}function QT(e){let o=Aj(s=>s.appState.data.content),{theme:t,themeRow:r,themeFromDocument:a}=se(),n=Fj(new Set);_j(()=>{let s=Rj({theme:t,themeRow:r,themeFromDocument:a});s&&Lj(JT(o,void 0,s),e,n.current)},[o,e,t,r,a])}function Rj(e){return e.themeFromDocument||e.themeRow==="none"?{}:e.themeRow==="read"?{theme:e.theme}:null}function Lj(e,o,t){for(let{index:r,nodes:a}of[...e].sort((n,s)=>s.index-n.index)){let n=String(a[0].props.id);t.has(n)||(t.add(n),o.replaceComponent(Oh,r,a[0]),a.slice(1).forEach((s,l)=>{o.insertNode(Oh,r+1+l,s),o.replaceComponent(Oh,r+1+l,s)}))}}import{ROOT_ZONE as Ya,missingPinnedTypes as Wj,pinnedDuplicateIds as Ah}from"efficient-easel/draw";function eP(e){return!e.docId||e.saveStatus==="saving"?!1:e.seededDocId!==e.docId}function oP(e,o){let t=e.some(l=>l?.type===Te),r=e[e.length-1],a=!t&&r?.type===Fe?r:null,n=e.filter(l=>l?.type===Fe&&l!==a).map(l=>String(l.props?.id??"")).filter(Boolean),s=o.hasChromeDoc&&!t&&!a;return{remove:n,seedHeader:!e.some(l=>l?.type===xo),seedFooter:s,seedSiteHeader:s&&!e.some(l=>l?.type===_e)}}async function tP(e){let o=e.blocks?.seeds?.siteHeader;if(!o)return!1;let t;try{t=await o({make:e.make,id:e.id,siteId:e.siteId,token:e.token})}catch{return!1}if(!t||t.type!==_e||!e.stillOpen())return!1;let r=e.latest();return r.some(a=>a?.type===_e)?!1:(e.write(Rc(r,t)),!0)}function rP(e,o){let{adapter:t,capabilities:r,currentSlug:a,docId:n,data:s,saveStatus:l,siteId:c,tokenRef:d}=Mj(),u=Hj(),{hasSiteSettings:h,hasPinnedChrome:p}=r;QT(e);let x=!!r.editsPinnedInPlace&&a!==Do,g=a===Do,y=Nj().getState,E=Dj(null);Bj(()=>{if(!eP({docId:n,saveStatus:l,seededDocId:E.current})||(E.current=n,!p))return;let O=y().appState.data,C=O.content,I=s?.content??[],w=(D,P)=>D.some(F=>F?.type===P);if(!h){let D=new Set(Ah(C)),P=D.size?C.filter(N=>!D.has(N.props.id)):C;if(D.size&&e.setDocument({...O,content:P}),g)return;let F=Wj(P,I);if(F.includes(Fe)){let N=P.length,b=e.insertSection(Fe,N);e.replaceComponent(Ya,N,{type:Fe,props:{id:b,blocks:Wc()}})}F.includes(xo)&&e.insertNode(Ya,0,Hc());return}if(g){let D=$a(C);if(D!==C&&e.setDocument({...O,content:[...D]}),!D.find(P=>P.type===Fe)&&!w(I,Fe)&&!w(D,Te)&&!w(I,Te)){let P=(N,b)=>_h(o,N,b),F={type:Fe,props:{blocks:Wc()}};e.insertNode(Ya,D.length,xs(F,P,Fh(Te)))}return}if(x){let D=!!t?.pinnedChrome?.state().docId,P=oP(C,{hasChromeDoc:D}),F=new Set([...P.remove,...Ah(C.filter(b=>!P.remove.includes(String(b.props.id))))]),N=F.size?C.filter(b=>!F.has(String(b.props.id))):C;if(N.length!==C.length&&e.setDocument({...O,content:N}),P.seedFooter&&!w(I,Fe)&&!w(I,Te)){let b=(R,H)=>_h(o,R,H),_={type:Fe,props:{blocks:Wc()}};e.insertNode(Ya,N.length,xs(_,b,Fh(Te)))}if(P.seedHeader&&!w(I,xo)){let b=N[0]?.type===_e?1:0;e.insertNode(Ya,b,Hc())}if(P.seedSiteHeader&&!w(I,_e)&&!w(I,Fe)&&!w(I,Te)){let b=n;tP({blocks:Sl(u),make:(_,R)=>_h(o,_,R),id:Fh(_e),siteId:c??null,token:d.current,latest:()=>y().appState.data.content,stillOpen:()=>E.current===b,write:_=>{let R=y().appState.data;e.setDocument({...R,content:[..._]})}})}return}let v=C.filter(D=>D.type!==Fe),k=new Set(Ah(v)),A=k.size?v.filter(D=>!k.has(D.props.id)):v;A.length!==C.length&&e.setDocument({...O,content:A}),!w(A,xo)&&!w(I,xo)&&e.insertNode(Ya,0,Hc())},[n,l,s,y,e,h,p,g,x,t,u,c,d])}import{useEffect as dP,useMemo as qj,useRef as fP}from"react";import{useEasel as Vj}from"efficient-easel/easel";import{useEaselHost as Yj}from"efficient-easel/screen/lib/host";import{FIELD_DESCRIPTION_MARKER as Gj}from"efficient-easel/screen/lib/host";import{isNode as Rh}from"efficient-easel/data";function Lh(e,o){let t=e.components[o]?.label;return typeof t=="string"&&t.trim()?t.trim():o}function zj(e){return e.length>3&&e.endsWith("s")?e.slice(0,-1):e}function Bh(e,o,t,r){e.forEach((a,n)=>{if(Rh(a)){r.push({node:a,list:e,index:n,parent:o,slot:t});for(let[s,l]of Object.entries(a.props))Array.isArray(l)&&l.some(Rh)&&Bh(l,a,s,r)}})}function Uj(e){let o=[];Bh(Array.isArray(e.content)?e.content:[],null,"",o);for(let t of Object.values(e.zones??{}))Array.isArray(t)&&Bh(t,null,"",o);return o}function nP(e,o){return Uj(e).find(t=>String(t.node.props.id)===o)}function sP(e,o,t){if(!t)return null;let r=nP(o,t);if(!r)return null;let a=Lh(e,r.node.type),n=r.parent?`${Lh(e,r.parent.type)} \xB7 ${zj(r.slot)} ${r.index+1}`:a;return{blockId:t,type:r.node.type,label:n,path:""}}var $j=e=>e.filter(o=>!!o&&typeof o=="object"&&"value"in o).map(o=>typeof o.label=="string"?{value:o.value,label:o.label}:{value:o.value});function jj(e){if(!e||typeof e!="object")return null;let o=e;if(typeof o.type!="string")return null;let t=o.type==="custom"?o[Gj]:void 0,r={type:t?.type??o.type},a=t?.label??o.label;typeof a=="string"&&(r.label=a);let n=t?.options??o.options;Array.isArray(n)&&(r.options=$j(n));for(let s of["arrayFields","objectFields"]){let l=t?.[s]??o[s];l&&typeof l=="object"&&(r[s]=lP(l))}return r}function lP(e){let o={};for(let[t,r]of Object.entries(e??{})){let a=jj(r);a&&(o[t]=a)}return o}function iP(e){let o={};for(let[t,r]of Object.entries(e.components))r&&(o[t]={label:Lh(e,t),fields:lP(r.fields)});return o}function Kj(e,o){let t=e;for(let r of o?o.split("."):[]){let a=/^([A-Za-z_][A-Za-z0-9_]*)(?:\[(\d+)\])?$/.exec(r);if(!a||!t||typeof t!="object")return null;t=t[a[1]],a[2]!==void 0&&(t=Array.isArray(t)?t[Number(a[2])]:void 0)}return t&&typeof t=="object"&&!Array.isArray(t)?t:null}function Dh(e,o){return e.findIndex(t=>Rh(t)&&String(t.props.id)===o)}function aP(e,o,t){let r=o||t;if(!r)return e.length;let a=Dh(e,r);if(a<0)throw new Error(`there is no top-level block ${r}`);return o?a+1:a}function cP(e,o,t,r){let a=structuredClone(o),n=Array.isArray(a.content)?a.content:a.content=[];try{t.forEach((s,l)=>{let c=d=>{throw new Error(`change ${l+1}: ${d}`)};switch(s.op){case"set_props":{let d=nP(a,s.block_id)??c(`there is no block ${s.block_id}`);"id"in s.props&&c("a block's id is never changed");let u=Kj(d.node.props,s.path)??c(`there is no ${s.path} in that block`);Object.assign(u,structuredClone(s.props));break}case"insert_block":{let d=e.components[s.type]??c(`there is no block type ${s.type}`),u=d.defaultProps&&typeof d.defaultProps=="object"?d.defaultProps:{},h={type:s.type,props:{...structuredClone(u),...structuredClone(s.props),id:r(s.type)}};n.splice(aP(n,s.after,s.before),0,h);break}case"remove_block":{let d=Dh(n,s.block_id);d<0&&c(`there is no top-level block ${s.block_id}`),n.splice(d,1);break}case"move_block":{let d=Dh(n,s.block_id);d<0&&c(`there is no top-level block ${s.block_id}`);let[u]=n.splice(d,1);n.splice(aP(n,s.after,s.before),0,u);break}default:c(`"${s.op}" is not a change this editor makes`)}})}catch(s){return{ok:!1,reason:s instanceof Error?s.message:String(s)}}return{ok:!0,document:a}}var Nh=e=>ke(e.requestId)??null;function uP(){let e=Yj(),{appState:o,selectedItem:t,dispatch:r,history:a,config:n}=Vj(p=>p),s=n,l=fP({appState:o,dispatch:r,history:a,blockConfig:s});l.current={appState:o,dispatch:r,history:a,blockConfig:s};let c=fP(new Map),d=t?.props?.id,u=qj(()=>sP(s,o.data,d),[s,o.data,d]),h=u?JSON.stringify(u):"";dP(()=>{e.connected&&e.send("storefront-editor:selection",{selection:u})},[e,h]),dP(()=>e.subscribe(p=>{let{appState:x,dispatch:g,history:y,blockConfig:E}=l.current;switch(p.type){case"storefront-editor:request-document":{let O=Nh(p);if(!O)return;e.send("storefront-editor:document",{requestId:O,document:x.data,blocks:iP(E)});return}case"storefront-editor:apply-page-edits":{let O=Nh(p);if(!O)return;let C=Array.isArray(p.ops)?p.ops:[],I=C.length?cP(E,x.data,C,w=>`${w}-${crypto.randomUUID()}`):{ok:!1,reason:"no changes"};I.ok&&(g({type:"setData",data:I.document,recordHistory:!0}),c.current.set(O,JSON.stringify(I.document.content??[]))),e.send("storefront-editor:page-edits-result",{requestId:O,applied:I.ok,reason:I.ok?null:I.reason});return}case"storefront-editor:undo-page-edits":{let O=Nh(p);if(!O)return;let C=c.current.get(O),I=C!==void 0&&C===JSON.stringify(x.data.content??[]);I&&y.hasPast&&(y.back(),c.current.delete(O)),e.send("storefront-editor:page-edits-result",{requestId:O,applied:I&&y.hasPast,reason:I?null:"the page has changed since"});return}case"storefront-editor:set-right-panel":typeof p.shown=="boolean"&&g({type:"setUi",ui:{rightSideBarVisible:p.shown}});return;default:return}}),[e])}import{useEffect as hP,useState as xP}from"react";var Qc=new Map;async function Xj(e,o){try{return(await Me().site.get({siteId:o})).slug?.trim()||null}catch(t){return console.warn("[editor-site-slug] could not resolve the site slug",t),null}}function pP(e,o){let t=Qc.get(o);return t||(t=Xj(e,o),Qc.set(o,t),t.catch(()=>{Qc.get(o)===t&&Qc.delete(o)})),t}var Zj=/^(localhost|(?:[a-z0-9-]+\.)+localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|::1)$/i;function Mh(e){return!!e&&Zj.test(e)}function mP(e){let{pageSlug:o,siteSlug:t,hostname:r}=e,a=o===Il?"/":`/${encodeURIComponent(o)}`;if(!Mh(r))return a;let n=t?.trim();return n?`${a}?site=${encodeURIComponent(n)}`:a}function IP(e){let{pageSlug:o,siteId:t,token:r}=e,[a,n]=xP(null),[s,l]=xP(null),c=ra();hP(()=>l(c?new URL(c).hostname:window.location.hostname),[c]),hP(()=>{if(!Mh(s)||!t||!r){n(null);return}let u=!1;return pP(r,t).then(h=>{u||n(h)}),()=>{u=!0}},[s,t,r]);let d=mP({pageSlug:o,siteSlug:a,hostname:s});return c?`${c}${d}`:d}import{jsx as ws}from"react/jsx-runtime";import{useEffect as Jj,useRef as gP,useState as Qj}from"react";import{ExternalIcon as bP}from"efficient-easel/icons";import{EaselIconButton as e7}from"efficient-easel/chrome";import{Tooltip as o7,iconButtonClasses as t7}from"efficient-shell/ui";import{useSettledPress as r7}from"efficient-easel/easel";import{useScreenDocument as a7}from"efficient-easel/screen/components/ScreenDocumentContext";async function n7({pageId:e,liveHref:o,draftLink:t,ready:r=async()=>!0,win:a=window}){let n=a.open("","_blank");if(n)try{n.opener=null}catch{}let s=l=>{n&&!n.closed?n.location.href=l:a.open(l,"_blank","noopener,noreferrer")};try{await r()}catch{}return t(e).then(l=>s(l.url??o),()=>s(o))}function yP({liveHref:e,pageId:o,draftLink:t}){let{flushSave:r}=a7(),a=gP(r);a.current=r;let n=r7(),[s,l]=Qj(!1),c=gP(null);if(Jj(()=>()=>c.current?.(),[]),t&&o){let d=()=>new Promise((h,p)=>{c.current=()=>h(!1),n.run(()=>{c.current=null,a.current().then(h,p)})}),u=()=>{s||n.waiting||(l(!0),n7({pageId:o,liveHref:e,draftLink:t,ready:d}).finally(()=>l(!1)))};return ws(e7,{label:i("Preview your saved draft in a new tab"),tip:i("Open your saved draft in a new tab. Visitors don't see it."),disabled:s||n.waiting,onClick:u,children:ws(bP,{})})}return ws(o7,{content:i("Preview the live site (opens in a new tab)"),side:"bottom",children:ws("a",{className:t7({className:"es-iconbtn"}),href:e,target:"_blank",rel:"noopener noreferrer","aria-label":i("Preview the live site in a new tab"),children:ws(bP,{})})})}import{createElement as d7,useCallback as f7,useEffect as NP,useRef as MP,useState as u7}from"react";import{ClockIcon as p7}from"efficient-shell/icons/efficient";import{useScreenDocument as m7}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSyncExternalStore as s7}from"react";import{useScreenDocument as l7}from"efficient-easel/screen/components/ScreenDocumentContext";var i7=()=>()=>{},SP=()=>null;function ed(e){return s7(e?e.subscribe:i7,e?e.state:SP,e?e.state:SP)}function od(){let{adapter:e}=l7();return e?.pinnedChrome}import{useSyncExternalStore as kP}from"react";var ks=!1,Xa=null,Hh=new Set;function Ts(){for(let e of Hh)e()}function vP(e){return Hh.add(e),()=>{Hh.delete(e)}}function TP(){ks||(ks=!0,Ts())}function PP(){ks&&(ks=!1,Ts())}function CP(){return ks}function EP(){return kP(vP,CP,CP)}function wP(){return Xa}function td(){Xa&&(Xa=null,Ts())}function OP(){return kP(vP,wP,wP)}var vs=class extends Error{constructor(){super("The editor's last changes could not be saved, so nothing was restored."),this.name="HeldEditsNotSaved"}};async function _P(e,o,t,{flushSave:r,reload:a}){if(!await r())throw new vs;let n=await e.restore(o,t);return Ol(n.liveState),a(),n}async function FP({access:e,version:o,page:t,...r}){let a=await _P(e,o.id,t?{page:t.id}:{},r);Xa={title:c7(o,t??null),undo:a.undo},Ts()}async function AP({access:e,...o}){let t=Xa?.undo;t&&(await _P(e,t,{},o),Xa=null,Ts())}function RP(e){return e.name?e.name:e.kind==="draft_before_restore"?i("Draft before restore"):i("Version {n}",{n:e.number})}function c7(e,o){return e.kind==="draft_before_restore"?i("Your drafts from before the restore are back"):o?i("{page} from version {n} is now your draft",{page:o.name,n:e.number}):i("Version {n} is now your draft",{n:e.number})}function LP(e){let o=e.changes.filter(r=>r.kind==="page").length,t=[...o?[co("{n} page","{n} pages",o)]:[],...e.changes.filter(r=>r.kind!=="page").map(r=>r.name)];if(!t.length)return"";try{return new Intl.ListFormat(Yd(),{type:"conjunction"}).format(t)}catch{return t.join(", ")}}function BP(e){return e.change==="take_down"?i("{name} (taken down)",{name:e.name}):e.name}function DP(e,o=new Date){let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let r=Yd(),a=new Intl.DateTimeFormat(r,{hour:"numeric",minute:"2-digit"}).format(t);if(t.toDateString()===o.toDateString())return i("Today, {time}",{time:a});let n=new Intl.DateTimeFormat(r,{day:"numeric",month:"short",...t.getFullYear()===o.getFullYear()?{}:{year:"numeric"}}).format(t);return i("{day}, {time}",{day:n,time:a})}function HP(e){let{docId:o,capabilities:t,hasUnsavedEdits:r,onPublish:a,adapter:n}=m7(),s=S0(y0(o??null),r),l=ed(od()),c=n.siteLiveState;NP(()=>{if(c)return Vf(c),pt(0),()=>Vf(null)},[c]);let d=_l(),[u,h]=u7(!1),p=MP(e);p.current=e;let x=MP(!0);NP(()=>(x.current=!0,()=>{x.current=!1}),[]);let g=f7(()=>{h(!0),a(p.current).then(()=>{td()}).finally(()=>{x.current&&h(!1)})},[a]);if(t.canPublish){if(c){let y=d===void 0?void 0:r||d.state==="changed"?"changed":"live",E=Zm({live:y,onPress:g,busy:u,goingLive:C0(d?.changes??[])});return n.siteVersions?{...E,menuItems:h7()}:E}return Zm({live:s,onPress:g,busy:u,pinnedUnpublished:l?.unpublished??!1})}}function h7(){return[{key:"version-history",label:i("Version history"),icon:d7(p7),onSelect:TP}]}import{jsx as q,jsxs as Co,Fragment as Os}from"react/jsx-runtime";import{useCallback as x7,useEffect as I7,useId as zP,useRef as g7,useState as Eo}from"react";import{useSettledAction as b7}from"efficient-easel/easel";import{Avatar as y7,Banner as Ps,Button as $r,ColoredBadge as Wh,Dialog as UP,Drawer as S7,DropdownMenu as C7,FormField as $P,iconButtonClasses as w7,Inline as Gh,Input as k7,ListRow as v7,Select as T7,SortableList as P7,Stack as Es}from"efficient-shell/ui";import{EditIcon as E7,EyeIcon as WP,MenuIcon as O7,MoreIcon as _7,PageIcon as jP,RevertIcon as GP,StylesIcon as F7}from"efficient-shell/icons/efficient";import{useScreenDocument as KP}from"efficient-easel/screen/components/ScreenDocumentContext";var A7={page:jP,menu:O7};function R7(e,o){return e.pages.find(t=>t.id===o)??e.pages[0]??null}function L7(e,o){let t=window.open("","_blank");if(t)try{t.opener=null}catch{}return e.preview(o).then(({url:r})=>{t&&!t.closed?t.location.href=r:window.open(r,"_blank","noopener,noreferrer")},r=>{throw t?.close(),r})}function B7({version:e,page:o,waiting:t,busy:r,error:a,onCancel:n,onConfirm:s,onPage:l}){let c=zP();if(!e)return null;let d=e.kind==="draft_before_restore",u=e.number,h=LP(e),p=d?i("Put your drafts back?"):o?i("Restore {page} from version {n}?",{page:o.name,n:u}):i("Restore version {n}?",{n:u}),x=d?i("Your drafts go back to how they were before the restore."):o?i("{page} goes back to version {n} as a draft. Nothing else on your website changes.",{page:o.name,n:u}):h?i("The whole website goes back to version {n} as a draft: {what}.",{n:u,what:h}):i("The whole website goes back to version {n} as a draft.",{n:u}),g=e.deletedPictures??0;return q(UP,{open:!0,onClose:()=>{r||n()},size:"sm",title:p,footer:Co(Os,{children:[q($r,{variant:"secondary",onClick:n,disabled:r,children:i("Cancel")}),q($r,{onClick:s,loading:r,disabled:r,children:i("Restore as draft")})]}),children:Co(Es,{gap:4,children:[o&&e.pages.length>1?q($P,{label:i("Page"),htmlFor:c,children:q(T7,{id:c,value:o.id,options:e.pages.map(y=>({value:y.id,label:y.name})),onChange:l,disabled:r})}):null,q("p",{children:x}),q("p",{children:i("Your live website does not change until you press Publish.")}),g>0?q(Ps,{tone:"warning",children:co("{n} picture in this version was deleted from the media library. It stays empty.","{n} pictures in this version were deleted from the media library. They stay empty.",g)}):null,t?q(Ps,{tone:"info",title:i("Your unpublished changes are kept"),children:i("They are saved in Version history as \u201CDraft before restore\u201D, so you can get them back.")}):null,a?q(Ps,{tone:"danger",children:a}):null]})})}function D7({version:e,onCancel:o,onSave:t}){let r=zP(),[a,n]=Eo(null),[s,l]=Eo(""),[c,d]=Eo(!1),[u,h]=Eo(null);if(e!==a&&(n(e),l(e?.name??""),h(null)),!e)return null;let p=s.trim()===e.name,x=async()=>{if(!(c||p)){d(!0),h(null);try{await t(s.trim())}catch{h(i("The name was not saved. Try again."))}finally{d(!1)}}};return q(UP,{open:!0,onClose:()=>{c||o()},size:"sm",title:i("Name this version"),footer:Co(Os,{children:[q($r,{variant:"secondary",onClick:o,disabled:c,children:i("Cancel")}),q($r,{onClick:()=>{x()},loading:c,disabled:c||p,children:i("Save")})]}),children:q($P,{label:i("Name"),htmlFor:r,hint:i("Named versions are always kept. Leave it empty to take the name away."),error:u??void 0,children:q(k7,{id:r,value:s,invalid:!!u,onChange:g=>l(g.target.value),onKeyDown:g=>{g.key==="Enter"&&x()}})})})}function N7({version:e,expanded:o,onToggle:t,onPreview:r,onRestore:a,onRestorePage:n,onName:s}){let l=e.kind==="draft_before_restore",c=!e.live,d=e.changes.length,u=[...l?[]:[{key:"preview",label:i("Preview"),icon:q(WP,{}),onSelect:r}],...c?[{key:"restore",label:l?i("Put these drafts back"):i("Restore whole website"),icon:q(GP,{}),onSelect:a}]:[],...c&&!l&&e.pages.length?[{key:"restore-page",label:i("Restore one page only"),icon:q(jP,{}),onSelect:n}]:[],...l?[]:[{type:"divider",key:"divider"},{key:"name",label:i("Name this version"),icon:q(E7,{}),onSelect:s}]];return q(v7,{title:Co("span",{className:"sf-version-title",children:[q("span",{children:RP(e)}),e.live?q(Wh,{tone:"success",size:"xs",children:i("Live")}):null,e.name?q(Wh,{tone:"neutral",size:"xs",children:i("Version {n}",{n:e.number})}):null,l?q(Wh,{tone:"warning",size:"xs",children:i("Not published")}):null]}),expanded:o,onToggle:t,actions:q(C7,{align:"end","aria-label":i("More"),items:u,triggerClassName:w7({variant:"ghost",size:"sm"}),trigger:q(_7,{})}),below:Co(Es,{gap:3,children:[Co(Gh,{gap:2,align:"center",wrap:!0,className:"sf-version-meta",children:[q(y7,{name:e.createdBy,size:"xs"}),q("span",{children:e.createdBy}),q("span",{"aria-hidden":"true",children:"\xB7"}),q("span",{children:DP(e.createdAt)}),d?Co(Os,{children:[q("span",{"aria-hidden":"true",children:"\xB7"}),q("span",{children:co("{n} change","{n} changes",d)})]}):null]}),o?Co(Es,{gap:3,children:[d?q(Es,{gap:2,children:e.changes.map(h=>{let p=A7[h.kind]??F7;return Co(Gh,{gap:2,align:"center",children:[q(p,{size:16}),q("span",{children:BP(h)})]},`${h.kind}:${h.id}`)})}):null,Co(Gh,{gap:2,children:[l?null:q($r,{variant:"secondary",size:"sm",leftIcon:q(WP,{}),onClick:r,children:i("Preview")}),c?q($r,{variant:"secondary",size:"sm",leftIcon:q(GP,{}),onClick:a,children:i("Restore")}):null]})]}):null]})})}function M7({open:e,onClose:o,access:t,waiting:r}){let{flushSave:a,reloadFromServer:n,docId:s}=KP(),[l,c]=Eo(null),[d,u]=Eo(!1),[h,p]=Eo(null),[x,g]=Eo(null),[y,E]=Eo(!1),[O,C]=Eo(null),[I,w]=Eo(null),[v,k]=Eo(!1),A=g7(0),D=x7(()=>{let b=++A.current;u(!1),t.list().then(_=>{b===A.current&&c(_)},()=>{b===A.current&&u(!0)})},[t]);I7(()=>{e&&D()},[e,D]);let P=b=>{k(!1),L7(t,b.id).catch(()=>k(!0))},F=async()=>{if(!(!x||y)){E(!0),C(null);try{await FP({access:t,version:x.version,page:x.page,flushSave:a,reload:n}),g(null),o()}catch(b){C(b instanceof vs?i("Your last changes did not save, so nothing was restored. Try again."):i("The version was not restored. Nothing changed. Try again."))}finally{E(!1)}}},N=b7({onPress:()=>{F()},busy:y});return Co(Os,{children:[q(S7,{open:e,onClose:o,side:"right",size:"md",title:i("Version history"),description:Co(Os,{children:[i("Every Publish keeps a copy of the whole website: pages, menus and site styles.")," ",i("Products, prices and forms always show as they are now.")]}),footer:q("span",{className:"sf-version-foot",children:i("The newest 30 are kept. Named versions are always kept.")}),children:Co(Es,{gap:3,children:[v?q(Ps,{tone:"danger",onDismiss:()=>k(!1),children:i("The preview did not open. Try again.")}):null,d?q(Ps,{tone:"danger",action:q($r,{variant:"secondary",size:"sm",onClick:D,children:i("Try again")}),children:i("Version history did not load.")}):l===null?q("p",{className:"sf-version-foot",children:i("Loading versions")}):l.length===0?q("p",{className:"sf-version-foot",children:i("No versions yet. Every Publish from now on keeps one.")}):q(P7,{"aria-label":i("Versions"),spacing:"comfortable",children:l.map(b=>q(N7,{version:b,expanded:h===b.id,onToggle:()=>p(_=>_===b.id?null:b.id),onPreview:()=>P(b),onRestore:()=>{C(null),g({version:b,page:null})},onRestorePage:()=>{C(null),g({version:b,page:R7(b,s)})},onName:()=>w(b)},b.id))})]})}),q(B7,{version:x?.version??null,page:x?.page??null,waiting:r,busy:N.busy===!0,error:O,onCancel:()=>g(null),onConfirm:N.onPress,onPage:b=>g(_=>_&&{..._,page:_.version.pages.find(R=>R.id===b)??_.page})}),q(D7,{version:I,onCancel:()=>w(null),onSave:async b=>{await t.name(I.id,b),w(null),D()}})]})}function qP(){let{adapter:e,hasUnsavedEdits:o}=KP(),t=e.siteVersions,r=EP(),a=_l();return t?q(M7,{open:r,onClose:PP,access:t,waiting:o||a?.state==="changed"}):null}import{useEaselSession as Q_}from"efficient-easel/screen/lib/session-context";import{buildPaletteSections as Awe,categoryLabel as Rwe,paletteWithoutPinned as Lwe,pinnedSection as Bwe}from"efficient-easel/screen/lib/document/palette-sections";var H7={openers:{label:"Hero & intros",icon:"image"},shop:{label:"Shop & galleries",icon:"bag"},product:{label:"Product page",icon:"box"},checkout:{label:"Checkout & ordering",icon:"bag"},about:{label:"About & brand story",icon:"book"},content:{label:"Text & content",icon:"type"},proof:{label:"Stats & social proof",icon:"star"},promo:{label:"Promotions & sign-ups",icon:"sparkles"},blog:{label:"Blog & journal",icon:"newspaper"},navigation:{label:"Navigation & wayfinding",icon:"bookmark"},legal:{label:"Legal & documents",icon:"file"},contact:{label:"Contact, FAQ & forms",icon:"mail"},structure:{label:"Layout, structure & embeds",icon:"grid"},layouts:{label:"Layouts",icon:"layers"}};function VP(e){return H7[e]?.label}var YP=jm;import{currentEaselSession as r_}from"efficient-easel/screen/lib/session";var XP=[{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"}],Wwe={label:"Scrolling Bar",defaultProps:{items:[],tone:"scrim",borders:!0,size:mu,separator:hu,scrollDirection:Yn}};var ZP=()=>[{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"},{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"}],Uwe={label:"Spec Strip",defaultProps:{cells:[{text:"",tone:"normal"},{text:"",tone:"normal"}],fill:"dark"}};var rd={direction:"column",justify:"between",gap:14,sectionPaddingLeft:14,sectionPaddingRight:14,sectionPaddingLeftPhone:0,sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},_s={name:"Year and title",direction:"column",gap:14};var jr={direction:"row",share:"content",align:"center"},Fs={top:14,bottom:14,topPhone:12,bottomPhone:12},ad={wrap:"nowrap",loop:"scroll",sectionAccent:Jf,gap:60,gapPhone:32,separator:"dot",sectionBorder:{top:1,bottom:1}},JP={gap:120,gapPhone:64},nd={textStyle:"body-5",sizeToken:{step:"label",px:14,pxPhone:12},letterSpacing:.25,case:"upper",lineHeight:1.5},QP={textStyle:"heading-3",letterSpacing:.005,case:"upper",lineHeight:1},As={top:16,bottom:16,topPhone:12,bottomPhone:12},sd={justify:"between",wrap:"wrap",gap:32,separator:"none"},Rs={textStyle:"body-5",letterSpacing:.1,case:"upper",lineHeight:1.5};function te(e,o,t,r={}){return{type:e,props:{...o(e),id:t(e),...r}}}function e1(e,o,t){return te(re,e,o,{...t,sectionPaddingTop:void 0,sectionPaddingBottom:void 0})}var t1={Manifesto:(e,o)=>({type:re,props:{...e(re),id:o(re),direction:"row",share:"equal",sectionHeightMode:"screen",name:"Brand Text",content:[te(re,e,o,{direction:"column",justify:"center",blockSpacing:"gap",name:"Text",sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingLeft:40,sectionPaddingRight:40,content:[te("Text",e,o,So()),te("Text",e,o,To()),te("Text",e,o),te("Stats",e,o)]}),e1(e,o,{direction:"column",name:"Picture",content:[]})]}}),Split:(e,o)=>({type:re,props:{...e(re),id:o(re),direction:"row",share:"equal",sectionHeightMode:"screen",sectionHeightValue:70,name:"Image & Text Split",content:[te(re,e,o,{direction:"column",justify:"center",blockSpacing:"gap",name:"Text",sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingLeft:60,sectionPaddingRight:60,content:[te("Text",e,o,So()),te("Text",e,o,To()),te("Text",e,o),te("ButtonBlock",e,o)]}),e1(e,o,{direction:"column",name:"Image",content:[te("ImageBlock",e,o)]})]}}),Subscribe:(e,o)=>({type:re,props:{...e(re),id:o(re),direction:"column",name:"Subscribe",content:[te("Text",e,o,To()),te("Text",e,o),te("Form",e,o)]}}),Ticker:(e,o)=>o1("Scrolling Bar",ad,Fs,XP.map(t=>({text:t.text,style:nd,muted:!0})),e,o),SpecStrip:(e,o)=>o1("Spec Strip",{...sd,sectionBorder:{top:1}},As,ZP().map(t=>({text:t.text??"",style:Rs,muted:t.tone==="muted"})),e,o),TimelineTrack:(e,o)=>{let t=r=>te(re,e,o,{...rd,name:"Year",sectionPaddingTop:0,sectionPaddingBottom:0,...r?{upcoming:!0}:{},content:[te(re,e,o,{..._s,sectionPaddingTop:0,sectionPaddingBottom:0,content:[te("Text",e,o,So()),te("Text",e,o,To())]}),te("Text",e,o)]});return{type:re,props:{...e(re),id:o(re),direction:"column",gap:48,name:"Milestone Timeline",content:[te(re,e,o,{direction:"row",align:"end",justify:"between",share:"content",name:"Heading",content:[te("Text",e,o,So()),te("Text",e,o,To()),te("Text",e,o)]}),te(re,e,o,{direction:"row",share:"equal",gap:0,line:!0,name:"Years",content:[t(!1),t(!1),t(!0)]}),te("ButtonBlock",e,o)]}}},Timeline:(e,o)=>{let t=()=>te(re,e,o,{direction:"row",share:"biggerRight",gap:24,name:"Chapter",content:[te("Text",e,o,So()),te(re,e,o,{direction:"column",gap:12,name:"Words",content:[te("Text",e,o,To()),te("Text",e,o)]})]});return{type:re,props:{...e(re),id:o(re),direction:"row",share:"bigRight",gap:48,name:"Story Timeline",content:[te(re,e,o,{direction:"column",gap:24,name:"Heading",content:[te("Text",e,o,So()),te("Text",e,o,To()),te("Text",e,o),te("ImageBlock",e,o),te("ButtonBlock",e,o)]}),te(re,e,o,{direction:"column",gap:48,line:!1,name:"Chapters",content:[t(),t(),t()]})]}}}};function o1(e,o,t,r,a,n){return te(re,a,n,{...jr,...o,blockSpacing:"gap",padV2:!0,name:e,sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom,sectionPaddingTopPhone:t.topPhone,sectionPaddingBottomPhone:t.bottomPhone,content:r.map(s=>te("Text",a,n,{text:s.text,...s.muted?{tone:"dim"}:{},_partStyles:{text:s.style}}))})}function r1(e){return t1[e]??null}import{phoneKey as K7}from"efficient-easel/draw";var a1={label:"Button",defaultProps:{label:"",href:"#",variant:"primary",align:"left",contained:!0}};var n1={label:"Text",defaultProps:{text:"",align:"left",tone:"default",tag:"p",contained:!0}};import{jsx as G7}from"react/jsx-runtime";function ld(e){return`color-mix(in srgb, var(--overlay-scrim) ${Math.round(Math.min(1,Math.max(0,e))*1e3)/10}%, transparent)`}var nke="sf-card",s1={min:0,max:100,step:5,fallback:0,unit:"%"},ske=[{label:"Even",value:"even"},{label:"From the bottom",value:"bottom"}],W7="68%",lke={desktop:20,phone:20,side:40,sidePhone:24},ike="sf-box-sides";function l1(e){return typeof e=="string"&&e.trim()!==""}function cke(e,o){let t=typeof e=="number"?e:Number.parseFloat(String(e??""));if(!Number.isFinite(t)||t<=0)return null;let r=(Math.min(s1.max,Math.max(s1.min,t))/100).toFixed(2);return o!=="bottom"?{background:ld(Number(r))}:{background:`linear-gradient(0deg, ${ld(Number(r))} 0%, ${ld(0)} ${W7})`}}function dke(e,o){let t={"top-left":["start","start"],"top-center":["center","start"],"top-right":["end","start"],left:["start","center"],center:["center","center"],right:["end","center"],"bottom-left":["start","end"],"bottom-center":["center","end"],"bottom-right":["end","end"]},[r,a]=t[e]??t.center,[n,s]=o==="column"?[a,r]:[r,a],l={start:"justify-start",center:"justify-center",end:"justify-end"},c={start:"items-start",center:"items-center",end:"items-end"};return`${l[n]} ${c[s]}`}var id={ParagraphsA:{top:60,bottom:80},StatsParagraph:{top:120,bottom:120},Timeline:{top:120,bottom:120},Footprint:{top:120,bottom:120},TimelineTrack:{top:120,bottom:120},TitleWithButtons:{top:140,bottom:140},ProcessSteps:{top:120,bottom:120},DetailRows:{top:100,bottom:100}},i1=new Set(Object.keys(id)),d1=new Set(["Flex","Text","Heading","ImageBlock"]),z7=new Set(["Divider"]),U7=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),c1=new Set(["ProductGrid"]);function zh(e,o,t=!1){let r=e.render;e.render=a=>{if(o?.(a))return r(a);let n=Nl(iy(a,lu,t)),s=r(a),l=gy(a);return n?G7("div",{className:l?`${n.className} ${l}`:n.className,style:n.style,children:s}):s}}var xke={name:"sectionPadding",applies:(e,o,t)=>o.isSection(e)&&!U7.has(e)&&!!t&&typeof t.render=="function",panel(e,o,t){i1.has(o)||c1.has(o)||(e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})})},draw(e,o){if(i1.has(o)){let t=e.render,r=id[o];e.render=a=>{let n=Ml(a,r);return t({...a,padTop:n.top,padBottom:n.bottom})};return}if(c1.has(o)){zh(e);return}d1.has(o)||z7.has(o)||zh(e,o==="Flex"?t=>l1(t.bgImage):void 0,!0)}},$7=["Heading","Text","ImageBlock"],j7=["LogoBlock"],Ike={name:"blockPadding",applies:(e,o,t)=>($7.includes(e)||j7.includes(e))&&!!t&&typeof t.render=="function",panel(e,o,t){e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})}},draw(e,o){d1.has(o)||zh(e,void 0,!0)}};var{text:Fke,tag:Ake,...q7}=n1.defaultProps,V=q7,Ja={...V,[Dr]:""},me={...V,tone:"dim"},{label:Rke,href:Lke,...V7}=a1.defaultProps,qe=V7,vt={buttonFillOpacity:0,buttonBorder:{width:0},buttonPaddingTop:0,buttonPaddingRight:0,buttonPaddingBottom:0,buttonPaddingLeft:0},f1={justify:"start",align:"stretch",wrap:!1,blockSpacing:"gap",padV2:!0},B={...f1,direction:"column",...Sn},ne={...f1,sectionAccent:0},fe=["gridSpan","sectionHeightMode","sectionHeightValue","sectionHeightUnit","sectionHeightModePhone","sectionHeightValuePhone","sectionHeightUnitPhone","sectionCorners","sectionCornerSides","sectionBorder","sectionBorderPhone","sectionAccent","stickTop","stickTopDistance","stickTopPhone","stickTopDistancePhone","anchor","sectionAnimation","_hidden",...Object.values(ve).flatMap(e=>[e,K7(e)]),"widthFit","widthFitPhone","width","widthPhone","minWidth","minWidthPhone","maxWidth","maxWidthPhone"],Za="a section width key, ignored since efficient-web-builder 45 (every section, and a section's root Box, follows Site styles only; Lewis 2026-10-29), so dropping it changes nothing",ue={sectionSurface:"read by nothing in src/ (searched 2026-10-24): a retired theme key that draws nothing today, so dropping it changes nothing",widthMode:Za,fullWidth:Za,pageWidth:Za,backgroundWidth:Za,contentWidth:Za,contentMax:Za},Se=Object.fromEntries(["sectionPaddingLeft","sectionPaddingRight","sectionPaddingLeftTablet","sectionPaddingRightTablet","sectionPaddingLeftPhone","sectionPaddingRightPhone"].map(e=>[e,"needs Box side padding outside its gutter: the old section added it outside its frame, a Box's side padding replaces the gutter. 0 live nodes store it (JJ's read-only export, 2026-10-24)"]));function xe(e,o){let t=j(e.sectionPaddingTop)??0,r=j(e.sectionPaddingBottom)??0,a=j(e.sectionPaddingTopTablet),n=j(e.sectionPaddingBottomTablet);return{sectionPaddingTop:t+o.top,sectionPaddingBottom:r+o.bottom,...a===void 0?{}:{sectionPaddingTopTablet:a+o.top},...n===void 0?{}:{sectionPaddingBottomTablet:n+o.bottom},sectionPaddingTopPhone:(j(e.sectionPaddingTopPhone)??a??t)+o.topPhone,sectionPaddingBottomPhone:(j(e.sectionPaddingBottomPhone)??n??r)+o.bottomPhone}}var Oe=e=>["sectionPaddingTop","sectionPaddingBottom","sectionPaddingTopTablet","sectionPaddingBottomTablet","sectionPaddingTopPhone","sectionPaddingBottomPhone"].map(o=>[o,o,(t,r)=>xe(r,typeof e=="function"?e(r):e)[o]]);function Io(e,o){let t=Ml(e,id[o]);return{sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom}}var Yt=e=>[["padTop","sectionPaddingTop",(o,t)=>Io(t,e).sectionPaddingTop],["padBottom","sectionPaddingBottom",(o,t)=>Io(t,e).sectionPaddingBottom],["sectionPaddingTop","sectionPaddingTop",(o,t)=>Io(t,e).sectionPaddingTop],["sectionPaddingBottom","sectionPaddingBottom",(o,t)=>Io(t,e).sectionPaddingBottom]],Y7={kind:"heading-case-upper",styles:["heading-1","heading-2","heading-3"]},Bke=e=>o=>Ue(o.props[e])?[Y7]:[],ce=(e,o)=>({kind:"text",key:e,role:"eyebrow",props:V,...o?{style:o}:{}}),u1=e=>e.background!=="transparent",X7=(e,o)=>{let[t,r]=[e,o].map(a=>typeof a=="string"?a.trim():"");return t?r?`[${t} ]{color=text}${r}`:`[${t}]{color=text}`:r},Ls={align:"right",alignPhone:"left"},Uh=(e,o,t)=>{let r=a=>X7(a[e],a[o]);return{kind:"block",type:"Text",when:(a,n)=>n!==void 0&&r(n)!=="",box:[[e,"text",(a,n)=>r(n)],[o,"text",(a,n)=>r(n)]],props:t}},Bs=(e,o,t,r={})=>Uh(e,o,{...Ja,...Ls,...r,_partStyles:{text:{textStyle:"body-5",color:"labels",...t,case:"upper",...Ls}}}),Ds=(e,o)=>typeof e=="number"&&Number.isInteger(e)&&e>=0?e:Zc(o)?.selected??0,cd=(e,o)=>Zc(o)?.themes[Ds(e.sectionAccent??0,o)],po=e=>(o,t)=>{let r=cd(o,t)?.[e];return r?{fillColor:r}:{}},Ns=(e,o)=>{let t=cd(e,o)?.line;return t?{buttonBorder:{width:1,color:t}}:{}},Kr=(e,o)=>{let t=Zc(o)?.themes;return t&&u1(e)?Qx(t,Ds(e.sectionAccent,o)):-1},Xt=(e,o,t)=>{let r=Kr(o,t);return r>=0?r:e},qr=(e,o)=>{let t=Kr(e,o);return t>=0?{sectionAccent:t}:{}},Zt=(e,o)=>u1(e.props)&&Kr(e.props,o)<0?[{kind:"band-preset",page:Ds(e.props.sectionAccent,o)}]:[],Qa=e=>ki(e.site?.siteGutter),Ms=Object.fromEntries(["Top","Right","Bottom","Left","TopPhone","RightPhone","BottomPhone","LeftPhone"].map(e=>[`sectionPadding${e}`,0])),Hs=e=>({top:0,right:0,bottom:0,left:0,...e}),$h=(e,o,t,r=[])=>({kind:"group",name:e,keepEmpty:!0,props:(a,n)=>({...B,...Ms,...po("surface")(a,n),...typeof t=="function"?t(a,n):t}),box:[[o,"bgImage"]],parts:r});import{phoneKey as HK,readHidable as Z1}from"efficient-easel/draw";import{parseHexColor as WK}from"efficient-shell/format";import{jsx as en,Fragment as EK,jsxs as ex}from"react/jsx-runtime";import{jsx as Jh,jsxs as kK}from"react/jsx-runtime";import{jsx as Z7}from"react/jsx-runtime";function p1(){return Z7("span",{className:"block h-px w-[30px] bg-current"})}import{jsxs as $s,jsx as We}from"react/jsx-runtime";import{Fragment as E1}from"react";import{parseHexColor as hK}from"efficient-shell/format";import{Fragment as pK,jsx as Xh}from"react/jsx-runtime";import{Fragment as g1,jsx as Gs,jsxs as nK}from"react/jsx-runtime";import{createContext as Yh,useContext as zs,useEffect as sK,useId as lK,useMemo as iK,useRef as cK}from"react";import{armEntrance as dK}from"efficient-shell/format";import{jsx as eK}from"react/jsx-runtime";import{useEffect as I1,useRef as x1,useState as oK}from"react";import{armEntrance as tK,entranceAttrs as rK,playEntrance as aK}from"efficient-shell/format";import{jsx as Ws}from"react/jsx-runtime";import{createContext as h1,useContext as Vr}from"react";var m1={stretchedRow:!1,fillingColumn:!1},Yr=h1(null),zke=()=>Vr(Yr)!==null,Uke=()=>Vr(Yr);var dd=h1(!1);function J7(){let e=Vr(Yr)?.stretchedRow===!0,o=Vr(dd);return e&&!o}var Q7=()=>Vr(dd);function jh(){let e=Vr(Yr),o=J7(),t=Q7();return{fill:t?` ${Iy}`:"",inner:r=>{let a=o||t?Ws(dd.Provider,{value:!0,children:r}):r;return e?.columnsRow?Ws(Yr.Provider,{value:{...e,columnsRow:!1},children:a}):a}}}function $ke({className:e,style:o,attrs:t,children:r}){let{fill:a,inner:n}=jh();return Ws("div",{className:`${e}${a}`,...o?{style:o}:{},...t,children:n(r)})}function jke({children:e}){let o=Vr(Yr),t=o===null?null:o.id===void 0?m1:{...m1,id:o.id};return Ws(Yr.Provider,{value:t,children:Ws(dd.Provider,{value:!1,children:e})})}function Qke({desktop:e,phone:o,editing:t,boxClass:r,boxAttrs:a,boxStyle:n,children:s}){let l=x1(null),c=jh(),d=qh(l),u=d?o:e,{attrs:h,style:p}=rK(u),x=x1(Kh.seed(e,o)),g=JSON.stringify(e),y=JSON.stringify(o);return I1(()=>{let E=l.current;if(E){if(t){let O=Kh.next(x.current,e,o,d);x.current=O.seen,O.play&&aK(E);return}return tK(E)}},[g,y,d,t]),eK("div",{ref:l,className:`${cc}${c.fill}${r?` ${r}`:""}`,...a,...h,...Object.keys(p).length||n?{style:{...n,...p}}:{},children:c.inner(s)})}var Kh={seed(e,o){return{desktop:JSON.stringify(e),phone:JSON.stringify(o)}},next(e,o,t,r){let a=Kh.seed(o,t);return{play:r?a.phone!==e.phone:a.desktop!==e.desktop,seen:a}}};function qh(e,o=!0){let[t,r]=oK(!1);return I1(()=>{if(!o)return;let a=e.current?.ownerDocument?.defaultView??(typeof window>"u"?null:window);if(!a?.matchMedia)return;let n=a.matchMedia(fa),s=()=>r(n.matches);return s(),n.addEventListener("change",s),()=>n.removeEventListener("change",s)},[e,o]),t}var fd=Yh(null),y1=Yh(null),S1=Yh(null);function ive({needles:e,styles:o,motions:t=sv,type:r,children:a}){let n=lK(),s=JSON.stringify([n,e,o,t,r]),l=iK(()=>{let d=Object.keys(t).filter(u=>iv(t[u]));return HC(e,o,n,u=>ss(r,u),u=>MC(r,u),u=>d.includes(u)?Tm(t[u]):null,d)},[s]);if(!l)return Gs(g1,{children:a});let c=WC(l);return nK(g1,{children:[c&&Gs("style",{href:`${fK}${n}-${uK(c)}`,precedence:w1,dangerouslySetInnerHTML:{__html:c.replace(/</g,"\\3c ")}}),Gs(fd.Provider,{value:l,children:a})]})}var Vh=new WeakMap;function b1(e,o){let t=dv(o.filter(r=>r.arm));for(let r of o)r===t||!r.undo||(r.undo(),r.undo=void 0);t?.arm&&!t.undo&&(t.undo=t.arm()),o.some(r=>r.lift)?(uv(e.ownerDocument),e.setAttribute(xc,"")):e.removeAttribute(xc)}function C1(e){let o=cK(null),t=e?.motion?.entrance??null,r=e?.motion?.hover==="lift",a=qh(o,t!==null),n=JSON.stringify(t);return sK(()=>{let s=o.current,l=fv(s?.parentElement??null);if(!t&&!r||!s||!l)return;let c=t?()=>{let h=cv(l,a?t.phone:t.desktop),p=dK(l);return()=>{p?.(),h()}}:null,d=Vh.get(l)??[];Vh.set(l,d);let u={element:s,arm:c,lift:r};return d.push(u),b1(l,d),()=>{let h=d.indexOf(u);h<0||(d.splice(h,1),u.undo?.(),u.undo=void 0,b1(l,d),d.length||Vh.delete(l))}},[n,r,a]),o}var w1="sf-part-styles",fK=`${w1}-`;function uK(e){let o=2166136261;for(let t=0;t<e.length;t+=1)o^=e.charCodeAt(t),o=Math.imul(o,16777619);return(o>>>0).toString(36)}function k1(e){let o=zs(fd),t=zs(y1),r=GC(o,e);return r&&r.stamp!==t?r:null}function cve(e){return fp(zs(fd),e)}function v1({stamp:e,children:o}){return Gs(y1.Provider,{value:e,children:o})}function dve({children:e}){let o=zs(fd);return Gs(S1.Provider,{value:o,children:e})}function fve(e){return fp(zs(S1),e)}function Us({value:e,children:o}){let t=k1(e),r=C1(t);return t?Xh(v1,{stamp:t.stamp,children:Xh("span",{ref:r,[ap]:t.stamp,...t.textStyle?{[va]:t.textStyle}:{},children:o})}):Xh(pK,{children:o})}import{jsx as Zh,Fragment as mK}from"react/jsx-runtime";function T1({className:e=""}){return Zh("sup",{className:`text-accent tracking-normal text-[length:min(1em,max(0.75em,11px))] ${e}`,children:"\xAE"})}function ud(e){if(!e.includes("\xAE"))return e;let o=e.split("\xAE"),t=[];return o.forEach((r,a)=>{r&&t.push(r),a<o.length-1&&t.push(Zh(T1,{},`r${a}`))}),Zh(mK,{children:t})}var gve=T1;function mo(e,o=!1,t){let r=wK(o),a=hn(e);if(a.length===1){let[s]=a,l=Bf(s),c=l?SK(l,s.children):s.children;return $s(Us,{value:e,children:[t,pd(c,r)]})}let n=[];return a.forEach((s,l)=>{if(s.bullet){n.push(We("span",{"data-sf-bullet":"",className:xK,children:pd(s.children,r)},l));return}if(s.number!=null){n.push($s("span",{"data-sf-number":s.number,className:IK,children:[$s("span",{className:gK,children:[s.number,"."]}),pd(s.children,r)]},l));return}l>0&&!bK(a[l-1])&&n.push(We("br",{},`br${l}`)),n.push(We(E1,{children:pd(s.children,r)},l))}),$s(Us,{value:e,children:[t,n]})}var xK="relative block pl-6 before:absolute before:left-1.5 before:font-bold before:text-accent before:content-['\xB7']",IK="relative block pl-[2em]",gK="absolute left-0 w-[1.6em] text-right tabular-nums";function bK(e){return e.bullet||e.number!=null}var yK="text-accent underline underline-offset-[0.18em]";function SK(e,o){let[t,...r]=o;return t?.kind==="text"?[{kind:"text",text:`${e}${t.text}`},...r]:[{kind:"text",text:e},...o]}function CK(e){if(e)return hK(e)===e.toLowerCase()?e:Object.hasOwn(ut,e)?ut[e]:void 0}function pd(e,o){let t=[],r=!1;return e.forEach((a,n)=>{if(a.kind==="text"){t.push(We("span",{children:ud(a.text)},n)),r=!0;return}r||t.push(We("span",{},`e${n}`)),t.push(O1(a,n,o)),r=!1}),r||t.push(We("span",{},"end")),t}function P1(e,o){return e.length===1&&e[0].kind==="text"?ud(e[0].text):e.map((t,r)=>t.kind==="text"?We(E1,{children:ud(t.text)},r):O1(t,r,o))}function wK(e){return e?"font-normal italic text-accent":"not-italic text-accent"}function Pve(e){return We(Us,{value:e,children:We("span",{children:e})})}function O1(e,o,t){if(e.kind==="link")return We("a",{href:e.href,className:yK,children:P1(e.children,t)},o);let r=P1(e.children,t),a=Ug[e.kind];if(a)return We("span",{[$g]:a,children:r},o);switch(e.kind){case"underline":return We("u",{children:r},o);case"sup":return We("sup",{children:r},o);case"sub":return We("sub",{children:r},o);case"color":{let n=CK(e.color);return n?We("span",{style:{color:n},children:r},o):We("span",{children:r},o)}case"accent":case"highlight":return We("em",{className:t,children:r},o);case"bold":return We("strong",{className:"font-semibold",children:r},o);case"italic":return We("em",{className:"italic",children:r},o);case"strike":return We("s",{className:"line-through",children:r},o);default:return We("span",{children:r},o)}}function _1(e,o=!0){let t=e.split(`
|
|
22
|
+
`);return We(Us,{value:e,children:t.map((r,a)=>$s("span",{children:[mo(r,o),a<t.length-1?We("br",{}):null]},a))})}function F1(e){return e.split(/\n\s*\n/).map(o=>o.trim()).filter(Boolean)}var Qh={labelUpTo800:"max-[800px]:text-[length:var(--size-label,12px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,14px)]"};function vK(e,o){return`font-mono text-[length:var(--size-label,${e}px)] uppercase tracking-[0.3em] text-accent`}var TK=`inline-block w-fit bg-accent px-3.5 py-1.5 font-mono ${Qh.labelSmall} font-semibold uppercase tracking-[0.16em] text-bg`,PK=`flex items-center gap-3.5 font-mono ${Qh.labelLarge} uppercase tracking-[0.3em] opacity-80 ${Qh.labelUpTo800} max-[800px]:tracking-[0.25em]`;function A1({text:e,look:o="plain",size:t=13,scaled:r=!0,className:a="",classNameAfter:n=""}){if(o==="line")return kK("div",{className:[a,PK,n].filter(Boolean).join(" "),children:[Jh(p1,{}),Jh("span",{children:mo(e)})]});let s=o==="filled"?TK:vK(t,r);return Jh("span",{className:[a,s,n].filter(Boolean).join(" "),children:mo(e)})}var md={headingMediumUpTo800:"max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",headingMedium:"text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))]",body:"text-[length:var(--size-body,15px)]",headingSmall:"text-[length:var(--size-headingSmall,20px)]"},OK="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] py-[72px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]",_K="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-0 pb-[72px] max-[960px]:px-[min(24px,var(--sf-site-gutter,40px))]";function ox(e){return Math.min(4,Math.max(2,e??3))}function Nve({look:e,eyebrow:o,title:t,items:r,columns:a,omitHead:n=!1,editing:s=!1}={}){let l=ox(a),c=(r??[]).filter(u=>s||(u.title??"").trim()||(u.body??"").trim()),d=!!(o??"").trim()||!!(t??"").trim();return!s&&!d&&c.length===0?null:en("section",{className:"relative z-[2] bg-surface",children:ex("div",{className:n?_K:OK,children:[n?null:ex(EK,{children:[(o??"").trim()&&en(A1,{text:o??"",look:e,className:"mb-4 block"}),(t??"").trim()&&en("h2",{className:`mb-9 font-heading2 ${md.headingMedium} font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:mb-7 ${md.headingMediumUpTo800}`,children:_1(t??"",!1)})]}),c.length>0&&en("div",{className:"sf-card grid grid-cols-1 gap-px border border-line bg-line min-[700px]:[grid-template-columns:repeat(var(--cd-cols),minmax(0,1fr))]",style:{"--cd-cols":String(l)},children:c.map((u,h)=>{let p=(u.title??"").trim()||(s?i("Card title"):""),x=(u.body??"").trim()||(s?i("A short line about this card."):"");return ex("div",{className:"bg-bg p-8 max-[800px]:p-7",children:[p&&en("div",{className:`mb-3 font-heading3 ${md.headingSmall} font-medium uppercase tracking-[0.02em] text-fg`,children:mo(p)}),x&&en("p",{className:`${md.body} leading-[1.6] text-fg-dim`,children:mo(x)})]},h)})})]})})}var Hve={eyebrow:"Label",title:"Section *heading.*"},R1={label:"Cards",defaultProps:{eyebrow:"",title:"",items:[],columns:3}};var zve={eyebrow:"Highlight",title:"Key *features.*"},Uve=()=>[{label:i("Feature label one")},{label:i("Feature label two")},{label:i("Feature label three")},{label:i("Feature label four")},{label:i("Feature label five")},{label:i("Feature label six")}],L1={label:"Key Features",defaultProps:{eyebrow:"",title:"",items:[],columns:3}};import{readHidable as FK}from"efficient-easel/draw";function rx(e){if(e==="ProductGrid")return"shelf";let o=uo[e]?.headStyle;return o==="editorial"||o==="simple"||o==="essay"?o:"standard"}var N1={standard:64,editorial:60,simple:36,essay:28,shelf:20},AK={SectionHeader:"accent",FAQ:"accent",FitmentFinder:"accent",FitmentTable:"accent",SpecTable:"accent",RelatedProducts:"accent",Collections:"accentNum"};function RK(e){if(e==="SectionHeader")return{num:"num",title:"title",description:"description",link:!0};let o=uo[e];if(!o)throw new Error(`section-head-looks: "${e}" has no head row in SPLITTABLE_SECTIONS`);return{num:o.num,title:o.title,description:o.description,link:o.headRows.includes("linkText")&&o.headRows.includes("linkHref")}}function M1(e,o,t){let r=`editorial:${e}|${o}|${t}`,a=xd.get(r);if(a)return a;let n=W1({num:e,title:o,description:t,link:!1});return xd.set(r,n),n}var ax={top:0,right:0,bottom:1,left:0},z=(e,o,t,r)=>({sizeToken:{step:e,px:o,...r?{stepPhone:r}:{},...t?{pxPhone:t}:{}}}),Oo=(e,o,t,r)=>({sizeToken:{step:e,px:r,fluid:{minPx:o,vw:t}}}),Id=(e,o,t={})=>ce(e,{...z("label",o),...t}),LK=(e,o)=>{let t=FK(e).text.trim();return/\s/.test(t)?{minWidth:Math.ceil(t.length*o*.9),minWidthPhone:0,widthFitPhone:"fill"}:{}},gd=(e,o)=>({kind:"text",key:e,role:"heading",props:V,style:{textStyle:"heading-2",...o}}),nx=800,sx=(e,o,t,r)=>({kind:"text",key:e,props:{...me,align:"right",alignPhone:"left",...t?{maxWidth:t,maxWidthPhone:nx}:{}},style:{textStyle:"body-5",fontRole:"heading",alignPhone:"left",...z("body",o),...r}}),H1={...qe,align:"right",alignPhone:"left",...vt,icon:"arrow-right",iconPosition:"after"},tx=e=>({kind:"button",key:"linkText",href:"linkHref",variant:"ghost",props:H1,style:{textStyle:"body-5",color:"labels",...z("label",e),letterSpacing:.2,case:"upper"}}),B1=(e,o,t)=>{let r=t.role==="heading"?{tag:"h2"}:{};return{kind:"block",type:"Text",when:a=>a[e]===void 0,props:{...V,...r,...t.props,text:o,_partStyles:{text:{...t.role==="eyebrow"?BK(So()):{},...t.style}}}}},BK=e=>e._partStyles.text??{},hd={widthFitPhone:"fill"};function DK(e,o){let t=AK[e],r=t==="accent",a=Id(o.num,14,{color:r?"accent":"labels"}),n=t==="accentNum"&&a.kind==="text"?{...a,mark:"accentLead"}:a,s=gd(o.title,r?{...Oo("headingMedium",36,5,64),case:"upper",lineHeight:.95,letterSpacing:-.025}:{...z("headingMedium",56,36),case:"none",lineHeight:1,letterSpacing:-.03}),l=e==="Collections";return{kind:"group",name:"Header",props:{...B,direction:"row",align:"end",justify:"between",gap:40,gapPhone:12,share:"content",sectionBorder:ax,sectionPaddingBottom:24,sectionPaddingBottomPhone:20},parts:[{kind:"group",name:"Title",props:{...B,...hd,direction:"row",align:"end",gap:40,gapPhone:12,share:"content"},parts:[{kind:"group",name:"Number",props:{...B,...hd,align:"start",gap:12},parts:[{kind:"image",key:"logoSrc",alt:"logoAlt",props:{aspect:"auto",contained:!1}},n,...l?[B1(o.num,"==01== / Collections",n)]:[]]},{kind:"group",name:"Heading",props:{...B,...hd},parts:[s,...l?[B1(o.title,`Three ranges,
|
|
23
|
+
one standard.`,s)]:[]]}]},{kind:"group",name:"Words",props:{...B,...hd,gap:12,maxWidth:340,maxWidthPhone:nx},parts:[...o.description?[sx(o.description,14,void 0,{lineHeight:1.5})]:[],...o.link?[tx(14)]:[],...l?[{kind:"block",type:"ButtonBlock",props:{...H1,variant:"ghost",label:"View all",href:"/wheels",_partStyles:{label:tx(14).style}}}]:[]]}]}}function W1(e){return{kind:"group",name:"Header",props:{...B,direction:"row",align:"end",justify:"between",gap:40,gapPhone:14,share:"content",sectionBorder:ax,sectionPaddingBottom:32},parts:[{kind:"group",name:"Title",props:{...B,direction:"row",align:"end",gap:40,gapPhone:14,share:"content"},parts:[{kind:"group",name:"Number",props:o=>({...B,sectionPaddingBottom:8,...LK(o[e.num],13)}),parts:[Id(e.num,13)]},gd(e.title,{...Oo("headingMedium",40,5.5,80),case:"upper",weight:500,lineHeight:1,letterSpacing:-.03})]},{kind:"group",name:"Words",props:{...B,sectionPaddingBottom:4,maxWidth:360,maxWidthPhone:nx},parts:e.description?[sx(e.description,14,void 0,{lineHeight:1.5})]:[]}]}}function D1(e,o){return{kind:"group",name:"Header",props:{...B,gap:16,gapPhone:16},parts:[Id(e.num,13),gd(e.title,o)]}}var G1=[["para",{textStyle:"body-5",...z("label",13),case:"upper",weight:400,lineHeight:1,letterSpacing:.22}],["sm",{...z("headingMedium",40,28),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["md",{...z("headingMedium",48,32),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["lg",{...z("headingMedium",56,36),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["xl",{...z("headingMedium",64,40),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}]],NK=e=>G1.some(([o])=>o===e.titleSize)?e.titleSize:"lg";function MK(e){return{kind:"group",name:"Header",props:{...B,direction:"row",align:"center",justify:"between",gap:16,share:"content",stickTop:!0,sectionBorder:ax,sectionPaddingTop:12,sectionPaddingBottom:12},parts:[{kind:"group",name:"Title",props:{...B,direction:"row",align:"end",gap:24,share:"content"},parts:[Id(e.num,13,{color:"labels",letterSpacing:.22,lineHeight:1}),...G1.map(([o,t])=>({...gd(e.title,t),when:r=>NK(r)===o}))]},{kind:"group",name:"Words",props:{...B,direction:"row",align:"center",justify:"end",gap:20,share:"content"},parts:[...e.description?[sx(e.description,13,340,{lineHeight:1.4})]:[],...e.link?[tx(13)]:[]]}]}}var xd=new Map;function lt(e){let o=xd.get(e);if(o)return o;let t=RK(e),r=rx(e),a=r==="editorial"?W1(t):r==="simple"?D1(t,{...z("headingMedium",44,32),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}):r==="essay"?D1(t,{...z("headingMedium",38,28,"headingSmall"),case:"upper",lineHeight:1,letterSpacing:-.02}):r==="shelf"?MK(t):DK(e,t);return xd.set(e,a),a}var bd={Series:"transparent",StatsParagraph:"transparent",TimelineTrack:Mo,Stats:void 0};var Jt=(e,o,t,r)=>({sectionBorder:{top:e,right:o,bottom:t,left:r}}),J1=(e,o=e)=>({sectionPaddingTop:e,sectionPaddingRight:e,sectionPaddingBottom:e,sectionPaddingLeft:e,sectionPaddingTopPhone:o,sectionPaddingRightPhone:o,sectionPaddingBottomPhone:o,sectionPaddingLeftPhone:o}),Q1=e=>o=>ox(j(o.columns)??j(e.columns)),eE=e=>({kind:"group",name:"Grid",props:{...B,gap:0,...Jt(1,0,0,1)},parts:[e]}),yd={...B,direction:"row",gap:0,share:"equal"},oE="its head sits in a Box of its own above it (own-box): the row draws the head inline",tE=e=>KT(e.headPlacement)==="own-box",rE="inline is the head the row draws; an own-box node is skipped (`skip`)",GK=e=>({kind:"group",name:"Heading",props:e,parts:[ce("eyebrow"),{kind:"text",key:"title",role:"heading",props:V,style:{textStyle:"heading-3",case:"upper"},was:{size:44}}]}),z1={top:72,bottom:72,topPhone:72,bottomPhone:72},zK={...B,gap:12,gapPhone:12,...J1(32,28),...Jt(0,1,1,0)},UK={name:"Cards",boxProps:(e,o)=>({...ne,direction:"column",gap:36,gapPhone:28,...po("surface")(e,o),...xe(e,z1)}),box:[...fe,...Oe(z1)],skip:e=>tE(e)?oE:typeof e.dataSource=="string"&&e.dataSource?"its cards come from a source: a data list, which waits for the card template on Cards":e.cardStyle==="label-only"?"Label only is Key Features' look: no live node holds it, so it has no row of its own yet":void 0,parts:[lt("Cards"),eE({kind:"list",key:"items",name:"Card",perRow:Q1(R1.defaultProps),rowName:"Row",rowProps:yd,props:(e,o)=>({...zK,...po("background")(e,o)}),parts:[{kind:"text",key:"title",props:V,style:{textStyle:"heading-3",...z("headingSmall",20),weight:500,case:"upper",lineHeight:1.5,letterSpacing:.02}},{kind:"text",key:"body",props:me,style:{textStyle:"body-1",...z("body",15),lineHeight:1.6}}]})],drop:{...ue,...Se,columns:"the rows of N: one Row Box per `columns` cards, which the Box draws as N equal blocks",cardStyle:"the standard card is what the row draws; a Label only node is skipped (0 live nodes)",dataSource:"an empty source is typed cards, what the row draws; a sourced node is skipped (0 live nodes)",dataSourceOptions:"read only with a source; a sourced node is skipped (0 live nodes)",headPlacement:rE,eyebrowLook:"needs the eyebrow's Filled look on a Text block: Plain is the eyebrow start look the row draws; 2 of 62 live nodes store it (JJ's export, 2026-10-24)"}},U1={top:76,bottom:76,topPhone:76,bottomPhone:76},$K={...B,direction:"row",align:"center",gap:16,sectionPaddingTop:32,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,...Jt(0,1,1,0)},$1={textStyle:"body-1",color:"text"},j1=(e,o)=>typeof o?.href=="string"&&o.href.trim()!=="",jK={name:"Key Features",boxProps:e=>({...ne,direction:"column",gap:44,...Jt(1,0,1,0),...xe(e,U1)}),box:[...fe,...Oe(U1)],parts:[GK({...B,direction:"row",align:"end",gap:20,wrap:!0,share:"content"}),eE({kind:"list",key:"items",name:"Feature",perRow:Q1(L1.defaultProps),rowName:"Row",rowProps:yd,props:$K,parts:[{kind:"button",key:"label",href:"href",when:j1,variant:"ghost",props:{...qe,...vt,icon:"none"},style:$1},{kind:"text",key:"label",when:(e,o)=>!j1(e,o),props:V,style:$1,was:{size:17}}]})],drop:{...ue,...Se,columns:"the rows of N: one Row Box per `columns` cells, which the Box draws as N equal blocks",eyebrowLook:"needs the eyebrow's Filled look on a Text block: Filled is Key Features' own default (lib/sections/section-eyebrow-look), so 20 of 21 published nodes draw it with nothing stored; the row draws the Plain start look (JJ's export, 2026-10-24)"}},K1={top:120,bottom:120,topPhone:80,bottomPhone:80},Sd=e=>{let o=Xl(typeof e.background=="string"?e.background:void 0,bd.Series);return o&&o!=="transparent"?o:void 0},lx=e=>Sd(e)===Mo,KK=(e,o)=>{let t=Sd(e);return!t||t===Mo?{}:t==="var(--site-surface)"?po("surface")(e,o):WK(t.trim())?{fillColor:t.trim()}:{}},q1=e=>{let o=Sd(e)?1:2;return{gap:o,gapPhone:o}},qK={...B,justify:"between",gap:16,gapPhone:16,sectionHeightMode:"fixed",sectionHeightValue:340,sectionHeightUnit:"px",sectionPaddingTop:36,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,sectionPaddingTopPhone:36,sectionPaddingRightPhone:28,sectionPaddingBottomPhone:32,sectionPaddingLeftPhone:28},V1={...B,direction:"row",justify:"between",gap:12,share:"content",phoneRow:2,[HK("share")]:"content"},Y1={textStyle:"body-5",...z("label",12),letterSpacing:.22,case:"upper",lineHeight:1.5},VK=e=>Ue(e.viewLabel)&&!Z1(e.viewLabel).hidden,YK={name:"Recurring Columns",boxProps:(e,o)=>({...ne,direction:"column",gap:60,gapPhone:60,...Jt(0,0,1,0),...lx(e)?qr(e,o):{},...KK(e,o),...xe(e,K1)}),box:[...fe.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>lx(o)?Xt(e,o,t):e],...Oe(K1)],skip:e=>tE(e)?oE:void 0,site:(e,o)=>lx(e.props)?Zt(e,o):[],parts:[lt("Series"),{kind:"group",name:"Grid",props:(e,o)=>({...B,...q1(e),...Sd(e)?{}:po("background")(e,o)}),parts:[{kind:"list",key:"cards",name:"Column",perRow:()=>4,rowName:"Row",rowProps:e=>({...yd,...q1(e)}),rowFiller:B,props:(e,o)=>({...qK,...po("background")(e,o)}),parts:[{kind:"group",name:"Words",props:{...B,gap:16,gapPhone:16},parts:[{kind:"group",name:"Top",props:V1,parts:[ce("num",z("label",13)),ce("since",z("label",13))]},{kind:"text",key:"title",props:{...V,tag:"h3"},style:{textStyle:"heading-3",...z("headingSmall",28),weight:500,case:"upper",lineHeight:1.04,letterSpacing:-.02}},{kind:"text",key:"desc",props:me,style:{textStyle:"body-5",fontRole:"heading",...z("body",14),lineHeight:1.6}}]},{kind:"group",name:"Footer",when:(e,o)=>Ue(o?.entries)||Ue(o?.entriesLabel)||VK(e),props:{...V1,align:"center",gap:0,gapPhone:0,sectionPaddingTop:16,sectionPaddingTopPhone:16,...Jt(1,0,0,0)},parts:[Uh("entries","entriesLabel",{...me,_partStyles:{text:Y1}}),{kind:"group",name:"View",props:{...B,maxWidthPhone:266},parts:[{kind:"block",type:"Text",when:e=>Ue(e.viewLabel),props:e=>{let o=Z1(e.viewLabel),t=So()._partStyles,r=e._partStyles?.viewLabel;return{...V,text:o.text,_partStyles:{text:{...t.text,...Y1,...r}},...o.hidden?{_hidden:!0}:{}}}}]}]}]}]}],reads:{viewLabel:"a Text at the far end of every card's footer",background:"the Box's theme (the band preset) or its Fill; the grid's gap"},drop:{...ue,...Se,headPlacement:rE}},X1={top:60,bottom:60,topPhone:40,bottomPhone:40},XK={...B,gap:8,gapPhone:8,...J1(24),...Jt(1,1,1,1)},ZK={name:"Document Detail Cards",boxProps:e=>({...ne,direction:"column",gap:40,gapPhone:16,...Jt(0,0,1,0),...xe(e,X1)}),box:[...fe,...Oe(X1)],parts:[{kind:"list",key:"cards",name:"Card",perRow:()=>3,rowName:"Row",rowProps:{...yd,gap:40,gapPhone:16},props:(e,o)=>({...XK,...po("surface")(e,o)}),parts:[ce("label",{...z("label",12),lineHeight:1.5}),{kind:"group",name:"Words",props:{...B,gap:14,gapPhone:14},parts:[{kind:"text",key:"value",props:V,style:{textStyle:"heading-3",...z("headingSmall",20),weight:500,letterSpacing:-.015,lineHeight:1.5}},{kind:"text",key:"desc",props:me,style:{textStyle:"body-5",fontRole:"accent",...z("body",14),italic:!0,lineHeight:1.5}}]}]}],drop:{...ue,...Se}},aE={Cards:UK,KeyFeatures:jK,Series:YK,DocMetaCards:ZK};import{phoneKey as nE}from"efficient-easel/draw";var ix=e=>typeof e=="string"?e.trim():"";function sE(e){let o=`${ix(e.prefix)}${ix(e.value)}`,t=ix(e.suffix);return e.emphasizeAll===!0?o?`==_${o}_==`:"":`${o}${t?`==_${t}_==`:""}`}var cx={kind:"block",type:"Text",props:{...Ja,_partStyles:{text:{textStyle:"heading-2",...Oo("headingMedium",56,7,96),weight:500,case:"none",lineHeight:.9,letterSpacing:-.04}}},box:[["value","text",(e,o)=>sE(o)]],when:(e,o)=>o!==void 0&&typeof o.value=="string"&&sE(o)!==""},lE=e=>Ue(e?.supSuffix),fx=e=>Xl(e.background,bd.StatsParagraph),js=e=>fx(e)===Mo,dx=e=>({...e,sectionAccent:e.sectionAccent??0}),JK=(e,o)=>js(e)?po("background")(e,o):{},QK={name:"Stats with Text",skip:e=>fx(e)&&fx(e)!=="transparent"&&!js(e)?"it paints a colour of its own, not the section band":void 0,boxProps:(e,o)=>({...ne,direction:"column",gap:60,gapPhone:60,sectionBorder:{bottom:1},...Io(e,"StatsParagraph"),...js(e)?qr(dx(e),o):{}}),box:[...fe.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>js(o)?Xt(e,dx(o),t):e],...Yt("StatsParagraph")],site:(e,o)=>js(e.props)?Zt({props:dx(e.props)},o):[],parts:[lt("StatsParagraph"),{kind:"group",name:"Stats",props:{...B,gap:0},parts:[{kind:"list",key:"stats",name:"Stat",perRow:()=>4,rowName:"Stats row",rowProps:{...B,direction:"row",gap:0,share:"equal",phoneRow:2,[nE("share")]:"content"},props:(e,o)=>({...B,justify:"between",gap:12,gapPhone:12,sectionHeightMode:"fixed",sectionHeightValue:242,sectionHeightUnit:"px",widthFitPhone:"fixed",widthPhone:800,sectionPaddingTop:48,sectionPaddingBottom:48,sectionPaddingLeft:32,sectionPaddingRight:32,sectionBorder:{top:1,right:1,bottom:1,left:1},...JK(e,o)}),parts:[{...cx,when:(e,o)=>!lE(o)&&cx.when(e,o)},{kind:"group",name:"Figure",props:{...B,direction:"row",align:"start",gap:32,gapPhone:32,share:"content",phoneRow:2,[nE("share")]:"content"},when:(e,o)=>lE(o),parts:[cx,{kind:"text",key:"supSuffix",props:V,style:{textStyle:"body-5",...z("label",13),weight:500,color:"accent",letterSpacing:.18,lineHeight:1,padding:12}}]},{kind:"group",name:"Words",props:{...B,gap:4,gapPhone:4},parts:[{kind:"text",key:"label",props:V,style:{textStyle:"body-1",fontRole:"heading",...z("body",16),lineHeight:1.5,letterSpacing:-.01}},ce("sub",{color:"labels",...z("label",12),lineHeight:1.5,letterSpacing:.24})]}]}]}],drop:{...ue,...Se,background:"the band is the Box's theme: the site's band preset (`sectionAccent`), or a declared band-preset write; none paints nothing, and any other colour is skipped",headPlacement:"needs a row per head placement: an own-box Stats with Text draws no head (its words sit in a Section Header above it), the row always draws the head"}},eq=new Set(["value","label",Dr]),iE={top:48,bottom:48,topPhone:48,bottomPhone:48},oq={name:"Stats",skip:e=>Ue(e.dataSource)?"its figures come from a source":Array.isArray(e.items)&&e.items.some(o=>Ue(o?.[Dr]))?"a figure names a count, and each figure Text here is typed by hand until it is linked":Array.isArray(e.items)&&e.items.some(o=>Object.keys(o??{}).some(t=>!eq.has(t)))?"a figure has a key no part here reads":Object.keys(e._partStyles??{}).some(o=>o!=="heading")?"a figure or a name has a style of its own, kept by kind, which no part here reads":void 0,boxProps:e=>({...ne,direction:"column",gap:24,gapPhone:24,...xe(e,iE)}),box:[...fe,...Oe(iE)],parts:[ce("heading",{color:"labels",...z("label",12),letterSpacing:.2}),{kind:"group",name:"Stats",props:{...B,gap:32,gapPhone:32},parts:[{kind:"list",key:"items",name:"Stat",perRow:e=>j(e.columns)??4,rowName:"Stats row",rowProps:{...B,direction:"row",gap:32,gapPhone:32,share:"equal",phoneRow:2},props:{...B,gap:8,gapPhone:8,sectionBorder:{top:1},sectionPaddingTop:20},parts:[{kind:"text",key:"value",props:Ja,style:{textStyle:"heading-2",...z("headingMedium",48,36),weight:500,case:"none",lineHeight:1,letterSpacing:-.03}},ce("label",{color:"labels",...z("label",12),letterSpacing:.2})]}]}],drop:{...ue,...Se,columns:"the rows of N: one row Box per `columns` figures, which the Box draws",dataSource:"an empty source is typed figures, what the row draws; a sourced node is skipped (0 Hartes nodes)",dataSourceOptions:"read only with a source; a sourced node is skipped (0 Hartes nodes)",contained:"the Box draws the site frame now; each figure fills the Box's column",background:"needs a Box fill: a Box paints only its theme's page colour. 0 Hartes nodes store it (read-only, 2026-11-02)"}},cE={StatsParagraph:QK,Stats:oq};var fE={contained:!1},uE=(e,o)=>({logos:[{kind:"list",key:e,name:"Logo",flat:!0,parts:[{kind:"block",type:"LogoBlock",box:["src",[o,"alt"]],when:(t,r)=>Ue(r?.src)||Ue(r?.[o])}]}]}),ux=e=>{let o=j(e.bandPadding)??40;return{top:o,bottom:o,topPhone:o,bottomPhone:o}},tq={...ce("heading",{color:"labels",letterSpacing:.2}),props:{...V,align:"center"}},rq={name:"Logos",boxProps:e=>({...ne,direction:"column",gap:32,...xe(e,ux(e))}),box:[...fe,...Oe(ux),["bandPadding","sectionPaddingTop",(e,o)=>xe(o,ux(o)).sectionPaddingTop]],parts:[tq,{kind:"core",keep:["columns","logoHeight","grayscale"],rename:{logosPerRow:"columns"},props:fE,slots:uE("items","alt")}],drop:{...ue,...Se,contained:"the Box draws the site frame now; the Logos block inside it fills the Box's column (`contained: false`)",headPlacement:"a Logos band has no split head (not in SPLITTABLE_SECTIONS): no stored node can hold one, and the converted block stores own-box"}},dE={top:24,bottom:24,topPhone:24,bottomPhone:24},aq={name:"Payment Methods",boxProps:e=>({...ne,direction:"column",...xe(e,dE)}),box:[...fe,...Oe(dE)],skip:e=>Ue(e.dataSource)?"its payment methods come from a data source (a venue's Setup): a sourced list needs the card template (plan \xA73.2), not built yet":void 0,parts:[{kind:"group",name:"Methods",props:{...B,align:"center",gap:20,sectionBorder:{top:1,bottom:1},sectionPaddingTop:32,sectionPaddingBottom:32},parts:[{...ce("heading",{color:"labels"}),props:{...V,align:"center"}},{kind:"core",keep:[],as:"Logos",props:{...fE,look:"cards",grayscale:!1},slots:uE("badges","label")},{kind:"group",name:"Reassurance",props:{...B,direction:"row",wrap:!0,justify:"center",gap:24},parts:[{kind:"list",key:"assurances",name:"Line",flat:!0,parts:[{kind:"text",key:"text",props:{...V,align:"center"},style:{size:13,color:"labels"}}]}]}]}],drop:{...ue,...Se,contained:"the Box draws the site frame now; the Logos block inside it fills the Box's column (`contained: false`)",dataSource:"empty: no source, so the authored badges above are the list (a node that names a source is skipped, see `skip`)"}},pE={Logos:rq,PaymentBadges:aq};import{mixHex as nq}from"efficient-shell/format";var mE=e=>e.size==="display",sq=(e,o)=>{let t=cd(e,o),r=e.tone!=="plain"&&t?.text&&t.background?nq(t.text,t.background,.3):null;return r?{color:r}:{}},lq=(e,o)=>e.tone!=="plain"&&Ro(e.sectionAccent)===null?po("background")(e,o):{},hE=(e,o)=>({kind:"list",key:"items",name:"Item",flat:!0,when:o,parts:[{kind:"text",key:"text",props:me,style:e,styleFrom:sq}]}),iq={name:"Scrolling Bar",boxProps:(e,o)=>({...ne,...jr,...ad,...$l[yn(e.separator)]===""?JP:{},...xe(e,Fs),...lq(e,o)}),box:[["scrollDirection","scrollDirection",e=>Ik(e)],["speed","loopDuration",(e,o)=>o.loopDuration!=null?o.loopDuration:e],["loopDuration","loopDuration",(e,o)=>e??o.speed],["loopDelay","loopDelay",e=>e],["separator","separator",e=>yn(e)],["borders","sectionBorder",e=>e===!1?void 0:{top:1,bottom:1}],...fe,["tone","sectionAccent",(e,o)=>Ro(o.sectionAccent)??ia],...Oe(Fs)],parts:[hE(nd,e=>!mE(e)),hE(QP,mE)],drop:{...ue,...Se,join:"the band sitting inside its neighbour: absent on all 18 live Tickers (JJ 2026-10-27), and not the separator",size:"each item's Text style: Small \u2192 Body 5, Display \u2192 Heading 3"}},xE=e=>e?.tone==="muted",cq={name:"Spec Strip",boxProps:e=>({...ne,...jr,...sd,...e.fill==="none"?{sectionBorder:{top:1}}:{},...xe(e,As)}),box:[...fe,...Oe(As)],parts:[{kind:"list",key:"cells",name:"Cell",flat:!0,parts:[{kind:"text",key:"text",props:V,style:Rs,when:(e,o)=>!xE(o)},{kind:"text",key:"text",props:me,style:Rs,when:(e,o)=>xE(o)}]}],drop:{...ue,...Se,fill:"None \u2192 no fill and a line on top. Dark band \u2192 the Box follows its theme: the old fixed `plate-band` colour has no home (no site write adds a theme preset since 8622589f); the merchant picks a dark theme on the Box"}},IE={Ticker:iq,SpecStrip:cq};var dq="jetbrains-mono",bE="space-grotesk",Tt=(e,o,t={})=>({textStyle:"body-5",font:dq,size:e,sizePhone:e,letterSpacing:o,lineHeight:1.5,weight:400,...t}),wd=(e,o,t,r)=>({font:bE,size:e,sizePhone:o,case:"upper",weight:500,letterSpacing:t,lineHeight:r}),Ks=(e,o,t,r={})=>({textStyle:"body-1",font:bE,size:e,sizePhone:o,weight:400,case:"none",lineHeight:t,...r}),go=(e,o,t={})=>({kind:"text",key:e,props:V,style:o,...t}),gE=(e,o)=>o?.future===!0,Cd=e=>F1(typeof e?.body=="string"?e.body:""),fq={name:"Milestone Timeline",boxProps:(e,o)=>{let t=Kr(e,o);return{...ne,direction:"column",gap:60,sectionBorder:{bottom:1},...Io(e,"TimelineTrack"),...t>=0?{sectionAccent:t}:{}}},box:[...fe.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",Xt],...Yt("TimelineTrack")],parts:[{kind:"group",name:"Heading",props:{...B,direction:"row",align:"end",justify:"between",gap:40,share:"content",sectionPaddingBottom:32,sectionBorder:{bottom:1}},parts:[{kind:"group",name:"Title",props:{...B,direction:"row",align:"end",gap:40,share:"content"},parts:[go("eyebrow",Tt(13,.3,{case:"upper",color:"accent",padding:8}),{role:"eyebrow"}),go("title",{textStyle:"heading-2",...wd(79,40,-.03,1)},{role:"heading"})]},go("intro",Ks(14,14,1.5),{props:{...me,align:"right",maxWidth:360}})]},{kind:"group",name:"Years",props:{...B,direction:"row",share:"equal",gap:0,line:!0},parts:[{kind:"list",key:"entries",name:"Year",props:{...B,...rd},item:e=>({props:e.future===!0?{upcoming:!0}:{}}),parts:[{kind:"group",name:_s.name,props:{...B,..._s},parts:[go("date",Tt(13,.22,{color:"accent"}),{when:(e,o)=>!gE(e,o)}),go("date",Tt(13,.22,{color:"labels"}),{when:gE}),go("title",{textStyle:"heading-3",...wd(20,20,-.02,1.1)},{role:"heading"})]},go("blurb",Ks(13,13,1.55),{props:me})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...qe,align:"right",...Ns(e,o)}),style:Tt(13,.3,{case:"upper"})}],site:Zt,drop:{...ue,...Se,background:"the band is the Box's theme: the site's band preset (`sectionAccent`), or a declared band-preset write (`lib/theme` `bandPresetIndex`)",headPlacement:"needs a row per head placement: an own-box Milestone Timeline draws no head (its words sit in a Section Header above it), the row always draws the head"}},uq={name:"Story Timeline",skip:e=>{let o=typeof e.layout=="string"?e.layout:"split";return o==="split"?void 0:`display "${o}": not converted (0 live pages; Spine and Alternating are not offered, a Track story is not stored anywhere)`},boxProps:e=>({...ne,direction:"row",share:"twoThree",gap:80,align:"start",...Io(e,"Timeline")}),box:[...fe,...Yt("Timeline")],parts:[{kind:"group",name:"Heading",props:{...B,gap:24},parts:[go("eyebrow",Tt(12,.3,{case:"upper",color:"accent"}),{role:"eyebrow"}),go("title",{textStyle:"heading-2",...wd(72,40,-.03,.94)},{role:"heading"}),go("intro",Ks(14,14,1.6),{props:{...me,maxWidth:360}}),{kind:"group",name:"Picture",keepEmpty:!0,box:[["imageSrc","bgImage"]],props:{...B,sectionBorder:{top:1,right:1,bottom:1,left:1},darken:75,darkenStyle:"bottom",placement:"bottom-center",sectionHeightMode:"fixed",sectionHeightValue:667,sectionHeightUnit:"px",sectionHeightModePhone:"fixed",sectionHeightValuePhone:419,sectionHeightUnitPhone:"px",sectionPaddingTop:12,sectionPaddingBottom:12,sectionPaddingLeft:16,sectionPaddingRight:16,sectionPaddingTopPhone:12,sectionPaddingBottomPhone:12,sectionPaddingLeftPhone:16,sectionPaddingRightPhone:16},when:e=>typeof e.imageSrc=="string"&&e.imageSrc.trim()!=="",parts:[{kind:"group",name:"Caption",props:{...B,direction:"row",justify:"between",align:"center",gap:12,share:"content",phoneRow:2},parts:[go("imageCaption",Tt(11,.24,{case:"upper",color:"text"})),go("imageMeta",Tt(11,.24,{case:"upper",color:"accent"}),{props:{...V,align:"right"}})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...qe,...Ns(e,o)}),style:Tt(13,.3,{case:"upper"})}]},{kind:"group",name:"Chapters",props:{...B,gap:48,line:!1},parts:[{kind:"list",key:"entries",name:"Chapter",props:{...B,direction:"row",gap:24,share:"biggerRight",align:"start"},parts:[go("date",Tt(13,.24,{color:"accent"})),{kind:"group",name:"Words",props:{...B,gap:14},parts:[go("title",{textStyle:"heading-3",...wd(24,20,-.02,1.5)},{role:"heading"}),{kind:"block",type:"Text",props:{...V,_partStyles:{text:Ks(17,16,1.6)}},box:[["body","text",(e,o)=>Cd(o)[0]??""]],when:(e,o)=>Cd(o).length>0},{kind:"block",type:"Text",props:{...me,_partStyles:{text:Ks(17,16,1.6,{paragraphSpacing:14})}},box:[["body","text",(e,o)=>Cd(o).slice(1).join(`
|
|
24
|
+
|
|
25
|
+
`)]],when:(e,o)=>Cd(o).length>1}]}]}]}],drop:{...ue,...Se,layout:"Split is the only display converted (see skip); the Box's own arrangement replaces it"}},yE={TimelineTrack:fq,Timeline:uq};import{tabletKey as Iq}from"efficient-easel/draw";import{slugify as W0e}from"efficient-shell/format";import{rootIsDark as pq}from"efficient-shell/format";function N0e(e="auto"){return e==="light"?!0:e==="dark"?!1:!pq({whenUnset:!0})}function SE(e,o){return Number.isFinite(e)&&Number.isFinite(o)&&!(e===0&&o===0)}function px(e){let o=Number.parseFloat(e??"");return Number.isFinite(o)?o:0}var mq=["tall","square","wide"],hq="tall";function CE(e){return mq.includes(String(e??""))?String(e):hq}var z0e={sectionNumber:"\xB7 Locations",heading:"Our *locations.*",tagline:"Visit us in person \u2014 find your nearest studio below.",galleryKicker:"Gallery",galleryHint:"Hover to see in colour \xB7 click to jump",mapTheme:"auto"},U0e=[{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
|
|
26
|
+
Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""},{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
|
|
27
|
+
Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""}],xq=/^https?:\/\//i;function $0e(e){let o=(e.mapsUrl??"").trim();return{photo:"",group:"",groupName:"",name:e.name??"",state:e.state??"",country:e.country??"",timezone:"",address:e.address??"",phone:e.phone??"",hours:e.hours??"",lat:px(e.lat),lng:px(e.lng),mapsUrl:xq.test(o)?o:""}}function mx(e){let o=String(e??"").split(" \xB7 ");return{state:(o[0]??"").trim(),country:(o[1]??"").trim()}}var j0e="other",K0e={routingNumber:"02 \xB7 Routing",routingTagline:"What can we help you with?",groups:[{id:"fitment",eyebrow:"A \xB7 Label",title:"Group one",copy:"Short description of this routing group.",response:"< 48h"},{id:"trade",eyebrow:"B \xB7 Label",title:"Group two",copy:"Short description of this routing group.",response:"< 24h"},{id:"press",eyebrow:"C \xB7 Label",title:"Group three",copy:"Short description of this routing group.",response:"< 48h"},{id:"order",eyebrow:"D \xB7 Label",title:"Group four",copy:"Short description of this routing group.",response:"< 24h"}],formNumber:"03 \xB7 Message",formHeading:"Send *a note.*",metaLines:["Encrypted in transit","Stored 12 months"],showOther:!0,otherLabel:"Other",otherNoteTitle:"No matching team",otherNoteBody:"Tell us what you need in the message field below \u2014 we'll route it to whoever can help.",buttonText:"Send Message \u2192",consent:"By submitting, you agree to our privacy policy. We never share contact details with third parties.",channels:[{label:"Team one",value:"team-one@email.com",href:"mailto:team-one@email.com",sub:"Detail \xB7 Detail",groupId:"fitment"},{label:"Team two",value:"team-two@email.com",href:"mailto:team-two@email.com",sub:"Detail \xB7 Detail",groupId:"trade"},{label:"Team three",value:"team-three@email.com",href:"mailto:team-three@email.com",sub:"Detail \xB7 Detail",groupId:"press"},{label:"Team four",value:"team-four@email.com",href:"mailto:team-four@email.com",sub:"Detail \xB7 Detail",groupId:"order"},{label:"Phone",value:"+1 (000) 000-0000",href:"tel:+10000000000",sub:"Mon\u2013Fri \xB7 9:00\u201318:00"}]};function wE(e){let o=String(e??"").replace(/[^+\d]/g,"");return o?`tel:${o}`:void 0}var _o=e=>typeof e=="string"?e:e==null?"":String(e),Ix=e=>Array.isArray(e.locations)?e.locations.map(o=>o??{}):[],on=e=>_o(e.group),AE=e=>`loc-${e}`,RE=e=>_o(e.state).trim()||mx(_o(e.region)).state,LE=e=>_o(e.country).trim()||mx(_o(e.region)).country,kE=e=>[RE(e),LE(e)].filter(Boolean).join(" \xB7 "),gq=e=>Ix(e).some(o=>_o(o.photo).trim()!==""),bq=e=>Ix(e).some(o=>SE(Number(o.lat),Number(o.lng))),yq=(e,o)=>Ix(e).filter(t=>on(t)===on(o)).length,Sq=(e,o)=>yq(e,o)===1?"wide":CE(e.imageShape),hx={top:100,bottom:100,topPhone:60,bottomPhone:60},vE=48,qo=(e,o={})=>({textStyle:"body-5",...z("label",e),case:"upper",...o}),gx={top:1,right:1,bottom:1,left:1},xx=(e,o)=>({sectionPaddingTop:e,sectionPaddingBottom:e,sectionPaddingLeft:o,sectionPaddingRight:o,sectionPaddingTopPhone:e,sectionPaddingBottomPhone:e,sectionPaddingLeftPhone:o,sectionPaddingRightPhone:o}),bx={...B,direction:"row",share:"equal",gap:0},Cq=e=>o=>o>bs(o)?{...B,gap:0}:{...bx,...o>1?{phoneRow:e}:{}},wq={kind:"group",name:"Gallery",props:{...B,gap:20,_hidden:!0},when:gq,parts:[{kind:"group",name:"Gallery head",props:{...B,direction:"row",justify:"between",align:"end",gap:24,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:16},parts:[ce("galleryKicker",qo(12,{color:"accent",letterSpacing:.3})),{kind:"text",key:"galleryHint",props:{...me,align:"right",alignPhone:"left"},style:qo(11,{letterSpacing:.22,alignPhone:"left"})}]},{kind:"group",name:"Groups",props:{...B,gap:24},parts:[{kind:"list",key:"locations",name:"City picture",props:{...B,darken:85,darkenStyle:"bottom",placement:"bottom-left",sectionBorder:gx,...xx(12,12)},item:(e,o,t)=>({props:{..._o(e.photo).trim()?{bgImage:_o(e.photo)}:{},link:`#${AE(o)}`,boxShape:Sq(t,e)}}),parts:[{kind:"text",key:"name",props:V,style:qo(11,{letterSpacing:.22,color:"text"})}],groups:{of:on,name:"Group",props:{...B,gap:10},head:e=>({label:on(e[0]??{})}),parts:[ce("label",qo(11,{color:"accent",letterSpacing:.3}))],itemsName:"Cities",itemsProps:Cq(2),perRow:bs,rowName:"Row",rowProps:{...bx,phoneRow:2}}}]}]},kq={kind:"group",name:"Words",props:{...B,gap:12,gapPhone:12,...xx(28,28),sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},parts:[{kind:"group",name:"Name row",props:{...B,direction:"row",justify:"between",align:"start",gap:14,share:"content",phoneRow:2,sharePhone:"content",wrapPhone:"wrap",sectionPaddingBottom:6,sectionPaddingBottomPhone:6},parts:[{kind:"group",name:"Name",props:{...B,gap:6,gapPhone:6},parts:[{kind:"text",key:"name",role:"heading",props:V,style:{textStyle:"heading-3",...z("headingSmall",30),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}},{kind:"block",type:"Text",props:{...V,_partStyles:{text:qo(12,{color:"accent",letterSpacing:.24,lineHeight:1.5})}},box:["region","state","country"].map(e=>[e,"text",(o,t)=>kE(t)]),when:(e,o)=>kE(o??{})!==""}]},{kind:"group",name:"Time zone",props:{...B,sectionBorder:gx,...xx(6,10)},parts:[{kind:"text",key:"timezone",props:{...me,textFit:"line"},style:qo(12,{letterSpacing:.22,lineHeight:1.5})}]}]},{kind:"text",key:"address",props:me,style:{textStyle:"body-5",fontRole:"heading",...z("body",14),lineHeight:1.5}},{kind:"block",type:"ButtonBlock",props:{...qe,...vt,variant:"ghost",arrow:!1,_partStyles:{label:qo(13,{letterSpacing:.18,color:"text",lineHeight:24/13})}},box:[["phone","label"],["phone","href",e=>wE(_o(e))??"#"]],when:(e,o)=>_o(o?.phone).trim()!==""},{kind:"text",key:"hours",props:me,style:qo(12,{letterSpacing:.18,lineHeight:1.7})}]},vq={kind:"block",type:"LocationMap",props:e=>({mapTheme:typeof e.mapTheme=="string"?e.mapTheme:"auto"}),box:["name","lat","lng","mapsUrl","geocode",...["region","state"].map(e=>[e,"state",(o,t)=>RE(t)]),...["region","country"].map(e=>[e,"country",(o,t)=>LE(t)])]},Tq={kind:"group",name:"Map",props:{...B,sectionBorder:{top:1,right:0,bottom:0,left:0}},parts:[vq]},Pq={kind:"list",key:"locations",name:"City",props:(e,o)=>({...B,gap:0,justify:"between",sectionBorder:gx,jumpHighlight:!0,sectionAccent:Kr(e,o)>=0?Ds(e.sectionAccent,o):-1}),item:(e,o)=>({props:{anchor:AE(o)}}),parts:[kq,Tq],groups:{of:on,name:"Group",props:{...B,gap:20},head:e=>{let o=e[0]??{};return{key:on(o),groupName:_o(o.groupName),count:`${e.length} location${e.length===1?"":"s"}`}},parts:[{kind:"group",name:"Group head",props:{...B,direction:"row",justify:"between",align:"end",gap:16,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:16},when:(e,o)=>_o(o?.key).trim()!=="",parts:[ce("key",qo(13,{color:"accent",letterSpacing:.3})),{kind:"text",key:"groupName",role:"heading",props:V,style:{textStyle:"heading-3",...z("headingSmall",24),case:"upper",weight:500,letterSpacing:-.01}},{kind:"text",key:"count",props:me,style:qo(12,{letterSpacing:.22})}]}],itemsName:"Cities",itemsProps:e=>({...bx,columns:bs(e),[Iq("columns")]:1})}},TE=qo(10,{letterSpacing:.25}),Eq={kind:"block",type:nt,props:{...B,name:"Credit",direction:"row",justify:"end",align:"center",gap:6,share:"content",wrap:!0},when:bq,slot:st,keepEmpty:!0,parts:[{kind:"block",type:"Text",props:{...me,text:"Location coordinates \xA9",_partStyles:{text:TE}}},{kind:"block",type:"ButtonBlock",props:{...qe,...vt,variant:"ghost",arrow:!1,label:"OpenStreetMap contributors",href:"https://www.openstreetmap.org/copyright",_partStyles:{label:{...TE,color:"labels"}}}}]},PE=(e,o)=>Object.fromEntries(o.filter(t=>e[t]!==void 0).map(t=>[t,e[t]])),EE=["sectionPaddingTop","sectionPaddingTopTablet","sectionPaddingTopPhone"],OE=["sectionPaddingBottom","sectionPaddingBottomTablet","sectionPaddingBottomPhone"],_E=e=>e.map(o=>[o,o,(t,r)=>xe(r,hx)[o]]),FE=["sectionAccent","sectionAccent",Xt],Oq=["gridSpan","_hidden"],_q={name:"City pictures",skip:e=>Nr(e)?`fed by the data source "${Nr(e)}": its cities are read as the page is served, not stored on the node`:void 0,boxProps:(e,o)=>({...ne,direction:"column",gap:40,anchor:"studios",...PE(xe(e,hx),EE),sectionPaddingBottom:vE,sectionPaddingBottomPhone:vE,...qr(e,o)}),box:[...fe.filter(e=>e!=="sectionAccent"&&e!=="anchor"),FE,["anchor","anchor",e=>pn(e).trim()?e:"studios"],..._E(EE)],parts:[M1("sectionNumber","heading","tagline"),wq],also:[{name:"City maps",boxProps:(e,o)=>({...ne,direction:"column",gap:40,sectionBorder:{bottom:1},sectionPaddingTop:0,sectionPaddingTopPhone:0,...PE(xe(e,hx),OE),...qr(e,o)}),box:[...Oq,FE,..._E(OE)],parts:[Pq,Eq]}],reads:{mapTheme:"City maps Box: each Map block's Map theme",imageShape:"City pictures Box: each picture Box's Box shape"},site:Zt,drop:{...ue,...Se,apiKey:"a stored Google Maps key from before the map needed none: the website's one map (components/SiteMap) takes no key, and a key is a credential, never page content",mapId:"a Google Maps style id from the same retired map: nothing in src/ reads it",gallery:"the retired separate tile list: the wall is derived from the cities (`components/ContactLocations`), nothing in src/ reads it",dataSource:"always empty here: a node fed by a source is skipped (see skip)"}},BE={ContactLocations:_q};var Fq=["Collections","Events","FAQ","Footprint","GalleryB","LongRead","ProcessSteps","ProductGrid","RelatedProducts"];var Qt=(e,o)=>()=>({top:e,topPhone:o}),DE=e=>o=>{let t=Io(o,e).sectionPaddingTop;return{top:t,topPhone:t}},Aq={Collections:Qt(120,70),Events:Qt(120,70),FAQ:Qt(120,70),GalleryB:Qt(120,70),FitmentTable:Qt(120,80),SpecTable:Qt(120,80),LongRead:Qt(120,80),FitmentFinder:e=>e.layout==="bar"?{top:32,topPhone:20}:{top:80,topPhone:60},RelatedProducts:Qt(0,0),Footprint:DE("Footprint"),ProcessSteps:DE("ProcessSteps"),ProductGrid:e=>({top:j(e.padTop)??120,topPhone:0})};function Rq(e,o={}){let t=uo[e],r=Aq[e];if(!t||!r)throw new Error(`section-to-box-rows-head: "${e}" has no head row or no head room`);let a=t.padKey,n=lt(e),s=t.headRows.filter(c=>![t.num,t.title,t.description,"linkText","linkHref"].includes(c)),l={...Object.fromEntries(s.map(c=>[c,"a head setting: the Header Box's Text parts draw it (lib/document/blocks/general/section-head-looks)"])),...o.drop};return{name:I0[e]??e,boxProps:c=>{let d=r(c);return{...ne,direction:"column",gap:N1[rx(e)],sectionPaddingTop:d.top,sectionPaddingTopPhone:d.topPhone}},box:[...fe,...a?[[a,"sectionPaddingTop",(c,d)=>r(d).top]]:[]],parts:[n,{kind:"core",keep:"rest",...a?{props:{[a]:0}}:{},...o.slots?{slots:o.slots}:{}},...o.partsAfter??[]],...Object.keys(l).length?{drop:l}:{}}}var NE=Object.fromEntries(Fq.map(e=>[e,Rq(e)]));import{BLOCK_WIDTH_LIMIT as Lq}from"efficient-easel/draw";var kd={textFit:"line",textFitPhone:"wrap"},KE={minWidth:Lq.min},ME=(e,o,t)=>({...ce(e,{...o,...Ls}),props:{...V,align:"right",...kd,...t}}),qE={top:1,bottom:0},Sx=(e,o,t,r)=>({kind:"group",name:e,props:{...B,sectionPaddingBottom:o,sectionPaddingBottomPhone:t},parts:[r]}),HE={widthFit:"fill",...KE},WE={top:100,bottom:60,topPhone:60,bottomPhone:40},Bq={...z("label",13),letterSpacing:.22,lineHeight:1.8},GE={textStyle:"heading-1",...Oo("headingLarge",56,8,128),case:"upper",weight:500,lineHeight:.88,letterSpacing:-.04},zE=e=>e.titleLevel===2,Dq=()=>({name:"Document Header",boxProps:e=>({...ne,direction:"column",gap:0,sectionBorder:{bottom:1},...xe(e,WE)}),box:[...fe,...Oe(WE)],parts:[{kind:"group",name:"Header",props:{...B,direction:"row",align:"end",justify:"between",gap:40,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[Sx("Eyebrow",12,0,{...ce("eyebrow",z("label",13)),props:{...V,...kd}}),{kind:"text",key:"title",role:"heading",props:{...V,tag:"h1",...HE},style:GE,when:e=>!zE(e)},{kind:"text",key:"title",role:"heading",props:{...V,tag:"h2",...HE},style:GE,when:zE},{kind:"group",name:"Details",props:{...B,align:"stretch",gap:0,gapPhone:0,sectionPaddingBottom:12,sectionPaddingBottomPhone:0},parts:[{kind:"list",key:"meta",name:"Detail",flat:!0,parts:[Bs("label","value",Bq,kd)]}]}]},{kind:"group",name:"Deck",props:{...B,sectionBorder:qE,sectionPaddingTop:32},parts:[{kind:"text",key:"deck",props:{...me,maxWidth:760},style:{textStyle:"body-1",fontRole:"accent",...z("body",22,19),italic:!0,lineHeight:1.5}}]}],drop:{...ue,...Se,titleLevel:"read by the title part's `when`: 2 (set by lib/document/one-h1 on a later opener) makes the Text an h2, anything else an h1"}}),UE={top:80,bottom:40,topPhone:60,bottomPhone:32},Nq={...z("label",13),letterSpacing:.18,lineHeight:1.8},$E={...z("label",13),letterSpacing:.22,lineHeight:1.9},Mq=()=>({name:"Issue Header",boxProps:e=>({...ne,direction:"column",gap:0,sectionBorder:{bottom:1},...xe(e,UE)}),box:[...fe,...Oe(UE)],parts:[{kind:"group",name:"Top",props:{...B,direction:"row",align:"end",justify:"between",gap:60,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[Sx("Eyebrow",14,14,ce("eyebrow",z("label",14))),{kind:"group",name:"Issue",props:{...B,align:"end",gap:0,gapPhone:0,sectionPaddingBottom:14},parts:[{kind:"list",key:"issueMeta",name:"Issue line",flat:!0,parts:[Bs("lead","rest",Nq)]}]}]},{kind:"group",name:"Bottom",props:{...B,direction:"row",align:"start",justify:"between",gap:60,gapPhone:16,share:"content",sectionBorder:qE,sectionPaddingTop:32},parts:[{kind:"text",key:"lead",props:{...V,maxWidth:720,...KE},style:{textStyle:"body-1",fontRole:"heading3",...z("headingSmall",20),lineHeight:1.5,letterSpacing:-.005,paragraphSpacing:16}},{kind:"group",name:"In this issue",props:{...B,align:"stretch",gap:0},parts:[Sx("Heading",6,6,{kind:"text",key:"issueHeading",props:{...V,align:"right",...kd},style:{textStyle:"body-1",fontRole:"heading",...z("body",18),weight:400,letterSpacing:-.01,lineHeight:1.9,...Ls}}),{kind:"group",name:"Lines",props:{...B,align:"stretch",gap:0},parts:[{kind:"list",key:"issueList",name:"Line",flat:!0,parts:[ME("text",{color:"labels",...$E})]}]},ME("issueTotal",$E)]}]}],drop:{...ue,...Se}}),jE={top:24,bottom:24,topPhone:16,bottomPhone:16},yx={color:"labels",...z("label",13),letterSpacing:.2},VE=e=>(Array.isArray(e.items)?e.items:[]).filter(o=>o&&typeof o.label=="string"&&o.label.trim()!==""),Cx=(e,o)=>o!==void 0&&VE(e).at(-1)===o,YE=(e,o)=>o!==void 0&&VE(e).includes(o),Hq=(e,o)=>YE(e,o)&&!Cx(e,o)&&Ue(o?.href),Wq=()=>({name:"Breadcrumb",skip:e=>Ue(e.meta)?'a trailing note after "\xB7" needs a second mark; none live':void 0,boxProps:e=>({...ne,...jr,gap:16,gapPhone:16,separator:"slash",sectionBorder:{bottom:1},...xe(e,jE)}),box:[...fe,...Oe(jE)],parts:[{kind:"list",key:"items",name:"Crumb",flat:!0,parts:[{kind:"button",key:"label",href:"href",variant:"ghost",when:Hq,props:{...qe,...vt,icon:"none"},style:yx},{...ce("label",yx),when:(e,o)=>YE(e,o)&&!Cx(e,o)&&!Ue(o?.href)},{...ce("label",{...yx,color:"text"}),when:Cx}]}],drop:{...ue,...Se,meta:"a node that stores a note is skipped (`skip`); an empty one draws nothing"}}),XE={DocMasthead:Dq(),Masthead:Mq(),Breadcrumb:Wq()};import{jsx as Xr,jsxs as kx}from"react/jsx-runtime";import{slugify as Gq}from"efficient-shell/format";import{jsx as wx,jsxs as ZE}from"react/jsx-runtime";var gTe="sticky top-[120px]";var JE=(e,o)=>e?{[kc]:o}:{},QE=(e,o)=>r0(e?.[Mm(o)]?.role,vc[o],nn),eO=120;function oO({title:e,entries:o,stickyTop:t,sticky:r=!0,editing:a=!1,partStyles:n}){return ZE("aside",{className:`${r?"sticky ":""}flex flex-col self-start max-[900px]:static`,style:r?{top:t}:void 0,children:[e&&wx("h4",{className:"mb-[18px] font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:mo(e)}),o.map((s,l)=>ZE("a",{href:`#${s.anchor}`,className:`flex items-center justify-between gap-3 border-b border-line py-2.5 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim transition-colors hover:text-fg${l===0?" border-t":""}`,children:[wx("span",{...JE(a,"entry"),style:QE(n,"entry"),children:mo(s.label||"Section")}),wx("span",{...JE(a,"number"),style:QE(n,"number"),className:"text-accent",children:Wa(l)})]},`${l}-${s.anchor}`))]})}function zq(e,o){return Gq(e)||`section-${o+1}`}var vx=e=>typeof e=="string"&&e.trim()!=="";function Tx(e){return(e??[]).filter(o=>vx(o.heading)||vx(o.label)||vx(o.body))}function Px(e){let o=new Set;return e.map((t,r)=>{let a=zq(t.label||t.heading||"",r),n=a,s=2;for(;o.has(n);)n=`${a}-${s++}`;return o.add(n),n})}function Ex(e){let o=[];for(let t of e.replace(/\r\n?/g,`
|
|
28
|
+
`).split(/\n[ \t]*\n/))t.split(`
|
|
29
|
+
`).map(r=>r.replace(/\s+$/,"")).filter(r=>r.trim()!=="").forEach((r,a)=>{let n=hn(r)[0].bullet,s=o.at(-1),l=a===0||!s||s.type==="ul"!==n;if(n){let c=r.slice(2);!l&&s?.type==="ul"?s.items.push(c):o.push({type:"ul",items:[c]})}else!l&&s?.type==="p"?s.text+=`
|
|
30
|
+
${r}`:o.push({type:"p",text:r})});return o}var Uq=()=>[{label:i("First section"),heading:i("Your *first* section."),body:i(`Write the opening paragraph here.
|
|
31
|
+
|
|
32
|
+
- Start a line with a dash for a bullet.
|
|
33
|
+
- Add as many as you like.`)},{label:i("Second section"),heading:i("Your *second* section."),body:i("Leave a blank line between paragraphs to start a new one.")}],$q=eO;function BTe({tocTitle:e,sections:o,editing:t=!1,stickyTop:r=$q}){let a=Tx(o);if(a.length===0&&!t)return null;let n=a.length===0&&t?Uq():a,s=Px(n);return Xr("section",{className:"relative z-[2] bg-bg",children:kx("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[240px_1fr] items-start gap-20 border-b border-line px-[var(--sf-site-gutter,40px)] py-20 max-[900px]:grid-cols-1 max-[900px]:gap-10 max-[900px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[900px]:py-[60px]",children:[Xr(oO,{title:e,entries:n.map((l,c)=>({label:l.label||"Section",anchor:s[c]})),stickyTop:r}),Xr("div",{className:"flex flex-col gap-16",children:n.map((l,c)=>kx("article",{id:s[c],className:"flex flex-col gap-[18px]",style:{scrollMarginTop:r},children:[kx("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:[Wa(c)," \xB7 ",mo(l.label||"Section")]}),l.heading&&Xr("h2",{className:"mb-2 border-b border-line pb-[18px] font-heading2 text-[length:min(var(--size-headingMedium,clamp(28px,3.5vw,44px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[1.04] tracking-[-0.025em]",children:mo(l.heading)}),Ex(l.body??"").map((d,u)=>d.type==="ul"?Xr("ul",{className:"flex max-w-[680px] list-none flex-col gap-2.5 pl-0",children:d.items.map((h,p)=>Xr("li",{className:"relative pl-6 font-serif text-[length:var(--size-body,17px)] leading-[1.65] text-fg-dim before:absolute before:-top-0.5 before:left-1.5 before:text-[length:var(--size-body,24px)] before:leading-none before:text-accent before:content-['\xB7']",children:mo(h)},p))},u):Xr("p",{className:"max-w-[680px] font-serif text-[length:var(--size-body,17px)] leading-[1.7] text-fg-dim",children:mo(d.text)},u))]},s[c]))})]})})}var tO={top:80,bottom:80,topPhone:60,bottomPhone:60},rO=18,aO=18,nO=8,jq=10,Ox=e=>typeof e=="string"&&e.trim()!=="",sO=e=>Tx(e.sections),Kq=e=>Ex(typeof e.body=="string"?e.body:"").map(o=>o.type==="ul"?{kind:"ul",text:o.items.map(t=>`- ${t}`).join(`
|
|
34
|
+
`)}:{kind:"p",text:o.text}),_x={textStyle:"body-5",...z("label",12),case:"upper",letterSpacing:.3,color:"accent",lineHeight:1.5},lO={textStyle:"body-1",fontRole:"accent",...z("body",17)},qq=[ce("label",_x),{...ce("title",_x),when:(e,o)=>!Ox(o?.label)},{kind:"block",type:"Text",when:(e,o)=>!Ox(o?.label)&&!Ox(o?.title),props:{...V,text:"Section",_partStyles:{text:_x}}},{kind:"group",name:"Heading",props:{...B,sectionPaddingBottom:nO,sectionPaddingBottomPhone:nO},parts:[{kind:"group",name:"Heading line",props:{...B,sectionBorder:{bottom:1},sectionPaddingBottom:aO,sectionPaddingBottomPhone:aO},parts:[{kind:"text",key:"heading",role:"heading",props:V,style:{textStyle:"heading-2",...Oo("headingMedium",28,3.5,44),case:"upper",weight:500,lineHeight:1.04,letterSpacing:-.025}}]}]},{kind:"list",key:"body",name:"Body",flat:!0,of:Kq,parts:[{kind:"text",key:"text",props:me,style:{...lO,lineHeight:1.7},when:(e,o)=>o?.kind==="p"},{kind:"text",key:"text",props:me,style:{...lO,lineHeight:1.65,paragraphSpacing:jq},when:(e,o)=>o?.kind==="ul"}]}],Vq={name:"Document Text",boxProps:e=>({...ne,direction:"row",gap:80,gapPhone:40,sectionBorder:{bottom:1},...xe(e,tO)}),box:["anchor","sectionAccent","_hidden",...Oe(tO)],parts:[{kind:"block",type:"Contents",props:e=>({title:e.tocTitle??"",sticky:!0,widthFit:"fixed",width:240,widthFitPhone:"fill"})},{kind:"group",name:"Sections",props:{...B,gap:64,gapPhone:64,widthFit:"fill"},parts:[{kind:"list",key:"sections",name:"Section",of:e=>sO(e),props:{...B,gap:rO,gapPhone:rO},item:(e,o,t)=>({props:{anchor:Px(sO(t))[o]??`section-${o+1}`}}),parts:qq}]}],reads:{tocTitle:"the Contents block's Heading"},drop:{...ue,stickyTop:"the Contents block draws DocBody's default (120px); 0 live nodes store it"}},iO={DocBody:Vq};var Yq="overlay",Xq=[{label:"Copy over image",value:"overlay"},{label:"Copy above image",value:"stacked"}];function cO(e){return io(Xq,Yq,e)}var zTe={desktop:40,mobile:45,min:20,max:80,step:5};function UTe(e,o){return`${typeof e=="number"?e:o}%`}var dO=(e,o)=>{let t=j(e),r=j(o);return{...t===void 0?{}:{size:t},...r===void 0?{}:{sizePhone:r}}},Zq=e=>cO(e.layout)==="stacked",fO=e=>Math.min(Math.max(j(e.overlay)??60,0),100),vd=e=>j(e)??100,Jq={textStyle:"heading-1",sizeToken:{...Oo("headingLarge",48,7,96).sizeToken,pxPhone:36},weight:500,lineHeight:.95,letterSpacing:-.03},Qq=[ce("eyebrow",z("label",14)),...[!0,!1].map(e=>({kind:"text",key:"title",role:"heading",props:V,style:{...Jq,case:e?"upper":"none"},styleFrom:o=>dO(o.titleSizeDesktop,o.titleSizeMobile),when:o=>o.uppercase===!0===e})),{kind:"text",key:"body",props:{...me,maxWidth:560},style:{textStyle:"body-1",...z("body",17,16),lineHeight:1.6,paragraphSpacing:24},styleFrom:e=>dO(e.bodySizeDesktop,e.bodySizeMobile)},{kind:"group",name:"Button",props:{...B,align:"start",sectionPaddingTop:8,sectionPaddingTopPhone:8},parts:[{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:qe}]}],uO=e=>`${e}: a Button block has no colour of its own (it follows the site Button colour, as the old fallback did); 0 of 3 live US nodes store one (CLI read, 2026-11-03)`,e9=()=>({name:"Scroll-Over Text",skip:e=>Zq(e)?"the stacked layout: its words row's height floor (`copyShare*`) and the header subtraction have no Box setting; 0 live US nodes":void 0,boxProps:e=>({...ne,direction:"column",justify:"center",align:"start",gap:24,gapPhone:24,share:"content",...Ms,placement:"left",darken:fO(e),darkenStyle:"even",sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:vd(e.heightDesktop),sectionHeightModePhone:"fixed",sectionHeightUnitPhone:"%",sectionHeightValuePhone:vd(e.heightMobile)}),box:[...fe.filter(e=>!String(typeof e=="string"?e:e[0]).startsWith("sectionHeight")),["imageSrc","bgImage"],["imageSrcMobile","bgImagePhone"],["overlay","darken",(e,o)=>fO(o)],["heightDesktop","sectionHeightValue",e=>vd(e)],["heightMobile","sectionHeightValuePhone",e=>vd(e)]],parts:Qq,drop:{uppercase:"not a value of its own: it picks the heading part \u2014 Case Upper when on, None (as typed) when off",layout:"not a value of its own: the overlay layout is this tree; a stacked node is skipped (`skip`)",copyShareDesktop:"the stacked layout's words-row floor, read only there; a stacked node is skipped",copyShareMobile:"the stacked layout's words-row floor, read only there; a stacked node is skipped",sticky:"the old pin never held on a live page (its theme wrapper is as tall as the section; decision 3, 2026-10-14), so the Box does not pin",titleSizeDesktop:"read by the heading part's `styleFrom`: a number is its Size, `inherit` and unset follow the token",titleSizeMobile:"read by the heading part's `styleFrom`: a number is its phone Size, `inherit` and unset follow the token",bodySizeDesktop:"read by the words part's `styleFrom`: a number is its Size, `inherit` and unset follow the token",bodySizeMobile:"read by the words part's `styleFrom`: a number is its phone Size, `inherit` and unset follow the token",buttonColor:uO("Button color"),buttonTextColor:uO("Button text color"),...ue}}),hO={textStyle:"heading-2",...z("headingMedium",56,36),weight:400,lineHeight:1.05,letterSpacing:-.03},o9={textStyle:"body-1",...z("body",16),lineHeight:1.7},xO=e=>({kind:"text",key:"body",props:{...me,maxWidth:520},style:{...o9,paragraphSpacing:e}}),Pd={top:0,bottom:0,topPhone:0,bottomPhone:0},Fx=(e,o)=>typeof e.sectionHeightMode=="string"&&e.sectionHeightMode!=="auto"?{}:{sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:o,sectionHeightModePhone:"auto"},t9=(e,o)=>{let t=Fx(e,o);return Object.keys(t).length?t:{sectionHeightMode:e.sectionHeightMode,...e.sectionHeightValue===void 0?{}:{sectionHeightValue:e.sectionHeightValue},...e.sectionHeightUnit===void 0?{}:{sectionHeightUnit:e.sectionHeightUnit},sectionHeightModePhone:"auto"}},IO={boxShapePhone:"landscape"},gO="needs a black-and-white setting on a Box picture (the old photograph followed it, else the site's Photography); 0 live US nodes store it (CLI read, 2026-11-03)",r9=(e,o)=>({[e]:o,[`${e}Phone`]:o}),a9={textStyle:"heading-2",...z("headingMedium",40),weight:500,case:"none",lineHeight:1,letterSpacing:-.02},pO=e=>(Array.isArray(e.stats)?e.stats:[]).filter(o=>o&&(String(o.value??"").trim()!==""||String(o.label??"").trim()!=="")),n9=()=>({name:"Brand Text",boxProps:(e,o)=>({...ne,...po("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...xe(e,Pd),...Fx(e,100)}),box:[...fe,...Oe(Pd)],parts:[{kind:"group",name:"Words",props:(e,o)=>({...B,justify:"center",gap:28,gapPhone:28,sectionBorder:Hs({right:1}),sectionBorderPhone:Hs({}),...Ms,sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60,sectionPaddingRight:Qa(o)}),parts:[ce("eyebrow",z("label",14)),{kind:"text",key:"heading",role:"heading",props:V,style:{...hO,case:"none"},mark:"accentItalic"},xO(28),{kind:"group",name:"Stats",props:{...B,sectionPaddingTop:16,sectionPaddingTopPhone:16},parts:[{kind:"group",name:"Figures",props:e=>({...B,direction:"row",share:"equal",gap:24,gapPhone:24,maxWidth:520,phoneRow:Math.min(Math.max(pO(e).length,1),3),...r9("sectionBorder",Hs({top:1})),sectionPaddingTop:28,sectionPaddingTopPhone:28}),parts:[{kind:"list",key:"stats",name:"Stat",of:pO,props:{...B,gap:4,gapPhone:4},parts:[{kind:"text",key:"value",props:Ja,style:a9},ce("label",{...z("label",13),color:"labels",letterSpacing:.2})]}]}]}]},$h("Picture","imageSrc",IO)],drop:{...ue,grayscale:gO,...Se}}),Td=e=>{let o=e.textAlign==="center"||e.textAlign==="right"?{align:e.textAlign}:{},t=e.textAlignPhone==="left"||e.textAlignPhone==="center"||e.textAlignPhone==="right"?{alignPhone:e.textAlignPhone}:{};return{...o,...t}},s9=e=>e.textAlign==="center"?"center":e.textAlign==="right"?"end":"stretch",l9=e=>Math.min(Math.max(j(e.overlay)??60,0),100),bO=e=>typeof e=="string"&&e.trim()!=="",i9={...qe,align:"center",alignPhone:"center",buttonFillOpacity:0,buttonBorder:{width:1},buttonPaddingTop:16,buttonPaddingRight:28,buttonPaddingBottom:16,buttonPaddingLeft:28,buttonPaddingTopPhone:12,buttonPaddingRightPhone:20,buttonPaddingBottomPhone:12,buttonPaddingLeftPhone:20},mO=e=>({...$h("Picture","imageSrc",(o,t)=>({...bO(o.imageSrc)?{darken:40,darkenStyle:"even"}:{},placement:"center",...IO,sectionBorder:Hs(e?{left:1}:{right:1}),...yO(e?"left":"right",Qa(t))}),[{kind:"button",key:"imageBtnText",href:"imageBtnHref",variant:"ghost",props:i9,style:{textStyle:"body-5",...z("label",13,12),case:"upper",letterSpacing:.18}}]),when:o=>o.reverse===!0===e}),yO=(e,o)=>{let t=Math.max(60-o,0);return{sectionPaddingLeft:e==="left"?60:t,sectionPaddingRight:e==="right"?60:t}},c9={kind:"group",name:"Words",props:(e,o)=>{let t=e.reverse===!0;return{...B,justify:"center",align:s9(e),placement:e.textAlign==="center"?"center":e.textAlign==="right"?"right":"left",...t9(e,72),gap:24,gapPhone:24,...bO(e.textBgSrc)?{darken:l9(e),darkenStyle:"even"}:{},...Ms,sectionPaddingTop:100,sectionPaddingBottom:100,...yO(t?"right":"left",Qa(o)),sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60}},box:[["textBgSrc","bgImage"]],parts:[{...ce("eyebrow",z("label",14)),styleFrom:Td},{kind:"text",key:"title",role:"heading",props:V,style:hO,styleFrom:e=>({case:e.uppercase===!0?"upper":"none",...Td(e)})},{...xO(24),styleFrom:Td},{kind:"group",name:"Button",props:{...B,sectionPaddingTop:8,sectionPaddingTopPhone:8},parts:[{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:e=>{let o=Td(e);return{...qe,...o.align?{align:o.align}:{},...o.alignPhone?{alignPhone:o.alignPhone}:{}}}}]}]},d9=()=>({name:"Image & Text Split",boxProps:(e,o)=>({...ne,...po("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...xe(e,Pd),...Fx(e,72)}),box:[...fe,...Oe(Pd)],parts:[mO(!1),c9,mO(!0)],drop:{reverse:"not a value of its own: it picks the order \u2014 the Picture Box first, or after the Words",uppercase:"not a value of its own: the heading part's Case \u2014 Upper when on, None (as typed) when off",textAlign:"read by each words part (its Align) and the Words Box (its Align); left writes nothing, as the old emitted no class",textAlignPhone:"read by each words part as its phone Align",overlay:"read by the Words Box: its Darken over the words picture (60 when unset); no picture, no wash",grayscale:gO,...ue,...Se}}),SO={IntroBleed:e9(),Manifesto:n9(),Split:d9()};var CO={top:72,bottom:72,topPhone:72,bottomPhone:72},f9={name:"Editorial Text",boxProps:e=>({...ne,direction:"column",gap:28,gapPhone:28,sectionBorder:{top:1},...xe(e,CO)}),box:[["topBorder","sectionBorder",e=>e===!1?void 0:{top:1}],...fe,...Oe(CO)],parts:[lt("Prose"),{kind:"text",key:"body",props:me,style:{textStyle:"body-1",...z("body",16),lineHeight:1.7,paragraphSpacing:18}}],drop:{...ue,...Se,headPlacement:"needs a row per head placement: an own-box Prose draws no head (its words sit in a Section Header above it), the row always draws the head. 0 of 123 live nodes store it (the live export, 2026-10-24)"}},wO={buttonPaddingTop:20,buttonPaddingBottom:20,buttonPaddingLeft:28,buttonPaddingRight:28},kO=(e,o)=>o?.variant==="primary",vO=(e,o)=>({kind:"list",key:"buttons",name:"Button",flat:!0,when:e,parts:[{kind:"button",key:"label",href:"href",when:kO,variant:"primary",style:{letterSpacing:.3},props:{...qe,...wO,...o}},{kind:"button",key:"label",href:"href",when:(t,r)=>!kO(t,r),variant:"ghost",style:{letterSpacing:.3},props:(t,r)=>({...qe,...wO,...o,...Ns(t,r)})}]}),Ed=e=>Ue(e.title),u9={name:"Call-to-Action Heading",boxProps:e=>({...ne,direction:"row",align:"center",justify:Ed(e)?"between":"end",gap:60,gapPhone:60,share:"content",sectionBorder:{bottom:1},...Io(e,"TitleWithButtons")}),box:[...fe,...Yt("TitleWithButtons")],parts:[{kind:"group",name:"Title",props:{...B,maxWidth:1e3,widthFitPhone:"fill"},parts:[{kind:"text",key:"title",role:"heading",props:V,style:{textStyle:"heading-1",...Oo("headingLarge",48,7,108),case:"upper",lineHeight:.94,letterSpacing:-.035}}]},{kind:"group",name:"Buttons",props:e=>({...B,gap:14,gapPhone:14,widthFitPhone:"fill",...Ed(e)?{minWidth:280,minWidthPhone:0}:{}}),parts:[vO(Ed,{widthFit:"fill",iconPosition:"end"}),vO(e=>!Ed(e),{})]}],drop:{...ue,buttonsAlign:"moves the buttons only when there is no heading (4 of 128 live nodes), where the Box puts them at the end. 0 of 128 live nodes store it (the live export, 2026-10-24)",buttonsAlignPhone:"the phone's own side of `buttonsAlign`, read only with no heading; no old node stores it (it is new with the Phone view's Block alignment row), so nothing moves"}};function p9(e){let{siteGutter:o,siteGutterPhone:t}=e.site??{},r=Qa(e),a=Math.min(20,vi(t)??Ti(o));return{sectionPaddingLeft:r,sectionPaddingRight:r,sectionPaddingLeftPhone:a,sectionPaddingRightPhone:a}}var TO={top:40,bottom:64,topPhone:24,bottomPhone:36},m9={name:"Section Header",boxProps:(e,o)=>({...ne,direction:"column",gap:0,...xe(e,TO),...p9(o)}),box:[...fe,...Oe(TO)],parts:[lt("SectionHeader")],drop:{...ue,...Se,headStyle:"needs a row per head look: the row draws the standard look; the editorial, simple, statement, natural and essay looks are other layouts. 0 of 69 live nodes store it (the live export, 2026-10-24)",eyebrowLook:"read only by the simple, statement, natural and essay looks, which this row does not draw. 0 of 69 live nodes store it",rowGap:"read only by the natural look, which this row does not draw. 0 of 69 live nodes store it",descriptionSize:"read only by the natural look, which this row does not draw. 0 of 69 live nodes store it",numStyle:"Solid (the default; 4 of 69 live nodes store it) IS the eyebrow Text the row draws; Outlined (0 live) needs an outlined-number text look"}},PO={...B,direction:"row",share:"bigLeft",gap:30},EO={...B,sectionPaddingLeft:30,sectionPaddingLeftPhone:0},OO=(e,o,t)=>({kind:"group",name:e,props:o,parts:[t]}),h9={name:"Lead Text",boxProps:e=>({...ne,direction:"column",gap:40,gapPhone:40,sectionBorder:{bottom:1},...Io(e,"ParagraphsA")}),box:[...fe,...Yt("ParagraphsA")],parts:[{kind:"group",name:"Numbers",props:{...PO,gapPhone:24,sectionBorder:{bottom:1},sectionPaddingBottom:40,sectionPaddingBottomPhone:40},parts:[{kind:"group",name:"Eyebrow",props:{...B,sectionPaddingTop:5,sectionPaddingBottom:1,sectionPaddingTopPhone:5,sectionPaddingBottomPhone:1},parts:[ce("eyebrow",{color:"labels",...z("label",12),letterSpacing:.24})]},OO("Stats column",B,{kind:"group",name:"Stats",props:{...EO,gap:0,gapPhone:0},parts:[{kind:"list",key:"stats",name:"Stat",flat:!0,parts:[Bs("value","label",{...z("label",13),letterSpacing:.18,lineHeight:1.8})]}]})]},{kind:"group",name:"Words",props:{...PO,gapPhone:28},parts:[{kind:"group",name:"Lead",props:B,parts:[{kind:"group",name:"Measure",props:{...B,maxWidth:780},parts:[{kind:"text",key:"lead",props:V,style:{textStyle:"heading-3",...z("headingSmall",22,20),weight:400,case:"none",lineHeight:1.45,letterSpacing:-.005}}]}]},OO("Note column",{...B,justify:"end",widthFit:"fill"},{kind:"group",name:"Founders",props:{...EO,gap:8,gapPhone:8},parts:[{kind:"group",name:"Note",props:{...B,gap:6,gapPhone:6},parts:[{kind:"text",key:"foundersHeading",props:V,style:{textStyle:"body-1",fontRole:"heading",...z("body",18,16),weight:500,letterSpacing:-.01,lineHeight:1.7}},{kind:"text",key:"foundersBody",props:me,style:{textStyle:"body-5",fontRole:"heading",...z("body",14,12),lineHeight:1.7}}]},ce("attribution",{...z("label",12,10),letterSpacing:.24,lineHeight:1.7})]})]}],drop:{...ue}},_O={top:24,bottom:24,topPhone:24,bottomPhone:24},x9={name:"Banner",boxProps:e=>({...ne,direction:"column",gap:0,...xe(e,_O)}),box:[...fe,"contained",...Oe(_O)],parts:[{kind:"group",name:"Card",keepEmpty:!0,props:{...B,gap:28,placement:"top-left",darken:60,darkenStyle:"even",sectionBorder:{width:1},sectionPaddingTop:64,sectionPaddingBottom:64,sectionPaddingTopPhone:40,sectionPaddingBottomPhone:40,sectionPaddingLeft:40,sectionPaddingRight:40,sectionPaddingLeftPhone:24,sectionPaddingRightPhone:24},box:[["imageSrc","bgImage"],["overlay","darken",e=>Math.min(Math.max(j(e)??60,0),100)]],parts:[{kind:"group",name:"Words",props:{...B,gap:20},parts:[ce("eyebrow"),{kind:"text",key:"title",role:"heading",props:{...V,maxWidth:680},style:{weight:500,lineHeight:1.05,letterSpacing:-.03,case:"none"}},{kind:"text",key:"body",props:{...me,maxWidth:680},style:{textStyle:"body-1",lineHeight:1.6},was:{size:16}}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:qe}]}],drop:{...ue,...Se}},Ax={Prose:f9,TitleWithButtons:u9,SectionHeader:m9,ParagraphsA:h9,Banner:x9};function fPe(){Po(Ax),Po(cE),Po(pE),Po(aE),Po(IE),Po(yE),Po(BE),Po(NE),Po(XE),Po(iO),Po(SO)}import{isNodeList as I9}from"efficient-easel/data";var IPe=Object.keys(Ax);function FO(e,o,t){let r={};for(let a of Object.keys(o(e.type)))r[a]=void 0;for(let[a,n]of Object.entries(e.props))r[a]=I9(n)?n.map(s=>FO(s,o,t)):n;return r.id=t(e.type),{type:e.type,props:r}}function Rx(e,o,t=0){return(r,a)=>{let{nodes:n}=Eh({type:e,props:{...r(e),id:a(e)}},o);return FO(n[t],r,a)}}function g9(e,o){if(!ZT(e,o))return null;let t=Jc(e);return t?Rx(e,t):null}function Od(e,o=Cs){return r1(e)??g9(e,o)}import{blockTypesIn as e_}from"efficient-easel/screen/lib/document/block-types-in";import{jsx as Vs,jsxs as V9}from"react/jsx-runtime";import{createContext as Y9,useContext as X9}from"react";import{jsx as tn,jsxs as zO}from"react/jsx-runtime";import{useEffect as Bx,useRef as B9,useState as qs}from"react";import{jsx as AO}from"react/jsx-runtime";import{createContext as b9,lazy as wPe,Suspense as kPe,useContext as y9}from"react";var S9={Link:uI,Image:fI},C9=b9(S9);function RO(){return y9(C9)}function vPe(e){let{Link:o}=RO();return AO(o,{...e})}function LO(e){let{Image:o}=RO();return AO(o,{...e})}import{jsx as BO,Fragment as w9,jsxs as k9}from"react/jsx-runtime";import{useEffect as v9,useRef as DO,useState as T9}from"react";var P9="#t=0.001",E9=2;function O9(e,o){if(e.readyState<E9||!e.videoWidth||!e.videoHeight)return!1;let t=o.getContext("2d");return t?(o.width=e.videoWidth,o.height=e.videoHeight,t.drawImage(e,0,0,o.width,o.height),!0):!1}function NO({src:e,objectPosition:o="50% 50%",onError:t}){let r=DO(null),a=DO(null),[n,s]=T9(!1);return v9(()=>{let l=r.current,c=a.current;if(n||!l||!c)return;let d=()=>{O9(l,c)&&s(!0)};return d(),l.addEventListener("loadeddata",d),l.addEventListener("seeked",d),()=>{l.removeEventListener("loadeddata",d),l.removeEventListener("seeked",d)}},[n]),k9(w9,{children:[BO("canvas",{ref:a,"aria-hidden":!0,className:"absolute inset-0 z-[3] h-full w-full object-cover",style:{objectPosition:o,visibility:n?"visible":"hidden"}}),!n&&BO("video",{ref:r,src:`${e}${P9}`,muted:!0,playsInline:!0,preload:"auto",className:"hidden",onError:t})]})}import{imageCopyUrl as HO,imageSrcSet as _9}from"efficient-shell/image-copies";var MO;function Lx(){return MO===void 0?{}:{host:MO}}var FPe="(max-width: 800px) 100vw, min(100vw, 1600px)";function WO(e,{fallbackWidth:o=1280,maxWidth:t}={}){let r=_9(e,{...Lx(),...t===void 0?{}:{maxWidth:t}});return r?{src:HO(e,o,Lx()),srcSet:r}:{src:e}}function APe(e){let o=HO(e,1920,Lx());return o===e?`url(${e})`:`url("${o}")`}import{formatFocal as F9,parseFocal as A9}from"efficient-shell/format";var R9="sf-focus-phone",L9="--sf-focus-phone";function GO(e){if(typeof e!="string"||!/^\s*-?\d+(\.\d+)?%\s+-?\d+(\.\d+)?%\s*$/.test(e))return{className:"",style:{}};let{x:o,y:t}=A9(e);return{className:R9,style:{[L9]:F9(o,t)}}}var D9=.5;function UO({videoSrc:e,posterSrc:o,showVideo:t=!0,playbackRate:r=D9,objectPosition:a="50% 50%",objectPositionPhone:n,quiet:s=!1}){let l=GO(n),c=o||"",d=e||"",[u,h]=qs(!1),[p,x]=qs(!1),[g,y]=qs(!1),[E,O]=qs(!1),[C,I]=qs(!1),w=B9(null);Bx(()=>{h(!1),x(!1),y(!1),O(!1)},[e,o]),Bx(()=>{if(typeof window>"u")return;let A=()=>{let D=window;D.requestIdleCallback?D.requestIdleCallback(()=>I(!0),{timeout:2e3}):setTimeout(()=>I(!0),800)};if(document.readyState==="complete"){A();return}return window.addEventListener("load",A,{once:!0}),()=>window.removeEventListener("load",A)},[]),Bx(()=>{let A=w.current;if(!A)return;let D=()=>{A.playbackRate=r};return D(),A.addEventListener("loadedmetadata",D),()=>A.removeEventListener("loadedmetadata",D)},[e,r]);let v=pI(c),k=c&&v&&!p?WO(c):{src:c};return zO("div",{className:"absolute inset-0 z-[1]",children:[tn("div",{className:"absolute inset-0",style:{background:"var(--site-surface)"}}),c&&(v?tn("img",{src:k.src,...k.srcSet?{srcSet:k.srcSet,sizes:"100vw"}:{},alt:"",className:`absolute inset-0 z-[2] h-full w-full object-cover ${l.className}`.trim(),style:{display:u?"none":"block",objectPosition:a,...l.style},onError:()=>k.srcSet?x(!0):h(!0)},c):tn(LO,{src:c,alt:"",fill:!0,priority:!0,sizes:"100vw",className:`z-[2] object-cover ${l.className}`.trim(),style:{display:u?"none":"block",objectPosition:a,...l.style},onError:()=>h(!0)},c)),t&&!s&&d&&C&&!g&&zO("video",{ref:w,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,preload:"metadata",className:"absolute inset-0 z-[3] h-full w-full object-cover",style:{objectPosition:a},onError:()=>y(!0),children:[mI(d)&&tn("source",{src:d.replace(/\.mp4$/,".av1.mp4"),type:'video/mp4; codecs="av01.0.08M.10"'}),tn("source",{src:d,type:"video/mp4"})]},d),t&&s&&d&&C&&!E&&(!c||u)&&tn(NO,{src:d,objectPosition:a,onError:()=>O(!0)},d)]})}var $O=["top","middle","bottom"],jO=["left","center","right"],KO="bottom",qO="left",N9={top:"Top",middle:"Middle",bottom:"Bottom"},M9={left:"Left",center:"Center",right:"Right"},$Pe="Up and down",jPe="Sideways",H9={top:"flex-start",middle:"center",bottom:"flex-end"},W9={left:"flex-start",center:"center",right:"flex-end"},G9="--sf-hero-phone-y",z9="--sf-hero-phone-x";function U9(e){return $O.includes(e)?e:KO}function $9(e){return jO.includes(e)?e:qO}function VO(e,o){let t=U9(e),r=$9(o),a={};return t!==KO&&(a[G9]=H9[t]),r!==qO&&(a[z9]=W9[r]),a}function KPe(){return $O.map(e=>({label:N9[e],value:e}))}function qPe(){return jO.map(e=>({label:M9[e],value:e}))}import{hexToRgb as j9}from"efficient-shell/format";var K9=!0;var q9=[[0,".5"],[30,".1"],[60,".1"],[100,".85"]];function YO(e){let o=j9(e);return o?`${o.r},${o.g},${o.b}`:null}function XO(e){return e==null?K9:e!==!1}function ZO(e){let o=(e?YO(e):null)??YO(da);return`linear-gradient(180deg, ${q9.map(([t,r])=>`rgba(${o},${r}) ${t}%`).join(", ")})`}var Z9=Y9({});function s1e({name:e,process:o,mediaType:t="video",mediaSrc:r,videoSpeed:a,poster:n,objectPosition:s,objectPositionPhone:l,tintColor:c=da,tintOpacity:d=0,groups:u,editing:h=!1,themeClassName:p,themeStyle:x}){let{alignment:g="left",textureOpacity:y,textureOn:E,textureColor:O,quietVideo:C,phoneUpDown:I,phoneSideways:w}=X9(Z9),v=t==="video",k=v?ln(r):void 0,A=v?ln(n):ln(r)??ln(n),D=typeof a=="number"?a/100:1;return V9("section",{className:p?`relative h-full w-full overflow-hidden ${p}`:"relative h-full w-full overflow-hidden",style:x,"data-slide-name":e??"","data-slide-process":o??"","data-slide-media":k?"video":"still",children:[Vs(UO,{videoSrc:k,posterSrc:A,showVideo:v,playbackRate:D,objectPosition:s,objectPositionPhone:v?void 0:l,quiet:C}),d>0&&Vs("div",{className:"absolute inset-0 z-[2]",style:{background:c,opacity:Math.min(Math.max(d,0),100)/100}}),XO(E)&&Vs("div",{className:"absolute inset-0 z-[2]",style:{background:ZO(O),...y!==void 0?{opacity:y/100}:null}}),Vs("div",{className:["sf-hero-group-layer absolute inset-0 z-[3] mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-[140px] pb-14",h?"sf-hero-group-layer-edit":""].filter(Boolean).join(" "),style:{...Sb,...VO(I,w)},children:u&&Vs(u,{className:"sf-hero-group-zone",minEmptyHeight:160})})]})}var JO=Array.from({length:3},(e,o)=>({name:`Slide ${o+1}`,process:"Category",mediaType:"image",mediaVideo:"",poster:""}));import{newNodeId as QO}from"efficient-easel/draw";var J9="ImageBlock",Q9=3,_d=(e,o,t={})=>({type:e,props:{...o?.(e)??{},id:QO(e),...t}}),eV=e=>({...e?.(re)??{},direction:"column",[Vt]:[_d(J9,e),_d(re,e,{direction:"column",[Vt]:[_d("Text",e,To()),_d("Text",e)]})]}),it={Hero:{slot:"slides",childType:"HeroSlide",addLabel:"Add slide",slider:!0,seeds:()=>JO.map(e=>({...e}))},HeroSlide:{slot:"groups",childType:"HeroGroup",addLabel:`Add ${qt.toLowerCase()}`,seeds:()=>[],addBlocked:hl,notice:vf},HeroSingle:{slot:"boxes",childType:"HeroGroup",addLabel:`Add ${qt.toLowerCase()}`,seeds:()=>[],addBlocked:hl,notice:vf},ProcessSteps:{slot:"boxes",childType:re,addLabel:`Add ${qt.toLowerCase()}`,seeds:e=>Array.from({length:Q9},()=>eV(e)),skipSeed:e=>Array.isArray(e.steps)&&e.steps.length>0}};function m1e(e){for(let[o,t]of Object.entries(e)){if(o in it&&it[o]!==t)throw new Error(`lib/document/slot-specs: "${o}" already has a slot spec`);it[o]=t}}function h1e(e,o){let t=it[e];return t?{slot:t.slot,children:t.seeds(o).map(r=>({type:t.childType,props:{id:QO(t.childType),...r}}))}:null}var o_=()=>({}),t_=new Map;function oV(e){let o=t_.get(e);if(o)return o;let t=new Set,r=it[e];if(r)for(let s of r.seeds(o_))for(let l of e_({type:r.childType,props:s}))t.add(l);let a=Od(e);if(a){let s=0;for(let l of e_(a(o_,c=>`${c}-${s+=1}`)))t.add(l)}t.delete(e);let n=[...t].sort();return t_.set(e,n),n}function tV(e){if(!e||!e.sets&&!e.allow&&!e.deny?.length)return null;let o=qm(e),t=e.allow?new Set(e.allow):null,r=new Set(e.deny??[]),a=new Set(Object.keys(e.host??{})),n=c=>{if(r.has(c))return!1;if(a.has(c))return!0;let d=g0(c);return!d||!o[d]?!1:t?t.has(c):!0},s=new Map,l=c=>{let d=s.get(c);if(d!==void 0)return d;s.set(c,!1);let u=n(c)&&oV(c).every(l);return s.set(c,u),u};return{sets:o,offers:l}}var rV="block-offer";function Dx(e=r_()){return e.cache(rV,()=>tV(Sl(e)))}function a_(e,o=r_()){let t=Dx(o);return t?t.offers(e):!0}function n_(e,o=0,t){let r=nV(sV(e,o),t),a=r?Dx():null;return r&&a?aV(r,a):r}function aV(e,o){if(e.spec)return o.offers(e.spec.childType)?e:null;let t=e.choices??[],r=t.filter(a=>o.offers(a.type));return r.length===t.length?e:r.length>0?{...e,choices:r}:null}function nV(e,o){if(!e||e.source!=="container"||!o||!gv())return e;let t=wv({data:o.data},o.id),r=typeof t?.type=="string"?bv(t.type):[],a=e.choices??[],n=r.filter(s=>!a.some(l=>l.type===s.type));return n.length?{...e,choices:[...a,...n.map(s=>({type:s.type,label:s.label}))]}:e}function sV(e,o){let t=it[e];if(t)return{source:"section",slot:t.slot,choices:null,spec:t};let r=$T(e,o);if(r)return{source:"container",slot:r.slot,choices:r.choices,spec:null};let a=q0(e);return a?{source:"footer",slot:K0,choices:a,spec:null}:null}function s_(e){return _m(e.type)?[{slot:Om,label:i(Iv),rung:!0}]:null}import{useSyncExternalStore as lV}from"react";var Nx=null,Mx=new Set;function l_(e){if(Nx!==e){Nx=e;for(let o of Mx)o()}}function iV(e){return Mx.add(e),()=>{Mx.delete(e)}}function D1e(){return lV(iV,()=>Nx,()=>null)}function i_(e){return fn(e)?.ownerId??null}function c_(e,o){let t=e.props;if(e.type==="FooterMenu"){let r=t.menu;return t.heading||r?.name||i("Menu")}if(e.type==="FooterText"){let r=typeof t.text=="string"?t.text.trim():"";return r?r.length>28?`${r.slice(0,28)}\u2026`:r:i("Text")}return e.type==="FooterEmailSignup"?t.heading||i("Email signup"):o(e.type)}var d_=(e,o,t)=>{if(o!=="block"||e.props?.fromProduct!==!0)return t;let r=e.props.product;return!r?.code||typeof r.name!="string"?t:r.name.trim()||t};var f_="sf-editor-left-view";function u_(){if(typeof window>"u")return"pages";try{let e=window.localStorage.getItem(f_);return e==="sections"||e==="styles"?e:"pages"}catch{return"pages"}}function p_(e){if(!(typeof window>"u"))try{window.localStorage.setItem(f_,e)}catch{}}function m_(e,o){return e==="styles"&&!o?"sections":e}function h_(e,o){return e?"sections":o}var cV=new Set(["BookingBox","SubmitBox"]);function dV(e){return typeof e=="string"&&cV.has(e)}var fV=A0(dV,W0);function x_(e,o){return fV(e)||ru(o)}import{copyNode as uV}from"efficient-easel/data";function I_(e){let o=typeof e?.props?.id=="string"?e.props.id:null,t=Ct(),r=o&&t?t.sectionOf(o):null;if(!t||!r)return null;let a=t.usedOn(r);return a?a.length===1?i("On 1 page"):i("On {count} pages",{count:a.length}):i("On other pages")}var g_={usedOn:e=>{let o=Ct(),t=o?.sectionOf(e.props.id)??null;return!o||!t?null:o.usedOn(t)??[]},openPage:e=>Bc()?.openPage(e),adopt:(e,o)=>Ct()?.adopt(e.props.id,o),nodeOf:e=>Ct()?.place(e)??null,detach:e=>{let o=Bc()?.config;return o?uV(e,o):e},removed:()=>Bc()?.reload()};import{sharedSectionsOf as bY}from"efficient-easel/screen/lib/shared-sections";import{scrollPreviewToSection as yY,scrollPreviewToTop as K_}from"efficient-easel/screen/lib/document/preview-dom";import{jsx as Gx,Fragment as WV,jsxs as GV}from"react/jsx-runtime";import{useEffect as zV,useMemo as __,useRef as F_}from"react";import{EaselCanvas as UV,useEaselApi as $V}from"efficient-easel/easel";import{jsx as w_,Fragment as SV,jsxs as CV}from"react/jsx-runtime";import{useEffect as k_,useLayoutEffect as wV}from"react";var Fd="data-theme",b_="light";function pV(e){return e.getAttribute(Fd)===b_?"light":"dark"}function mV(e,o){return pV(e)===o?!1:(o==="light"?e.setAttribute(Fd,b_):e.removeAttribute(Fd),!0)}function hV(e){return Vd(e).getItem(Hd)}function J1e(e,o){Vd(e).setItem(Hd,o)}function xV(e,o,t=new Date().getHours()){return Vx({mode:o.mode,override:hV(e),switchShown:o.switchShown,hour:t})}function y_(e,o){let t=e.documentElement;if(!t)return()=>{};let r=()=>mV(t,xV(e,o));r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[Fd]}),()=>n.disconnect()}var IV="style";function gV(e,o){let t=oI(o),r=!1;for(let a of eI){let n=t[a]??"";e.style.getPropertyValue(a)!==n&&(n?e.style.setProperty(a,n):e.style.removeProperty(a),r=!0)}return r}function S_(e,o){let t=e.body;if(!t)return()=>{};let r=()=>gV(t,o);r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[IV]}),()=>n.disconnect()}var bV=String.raw`(function (doc) {
|
|
35
|
+
if (doc.__sfFitWords) return;
|
|
36
|
+
var win = doc.defaultView;
|
|
37
|
+
var SELECTOR = "h1,h2,h3,h4,h5,h6,[class*='font-heading'],[class*='font-display']";
|
|
38
|
+
// Body text a block asked to shrink (its Text group's Shrink to fit), beside
|
|
39
|
+
// the headings: what this script may fit at all. modeOf() decides each one.
|
|
40
|
+
var SHRINK_BODY = "[data-fit] p,[data-fit] li,[data-fit-phone] p,[data-fit-phone] li";
|
|
41
|
+
var CANDIDATES = SELECTOR + "," + SHRINK_BODY;
|
|
42
|
+
var MIN_SCALE = 0.3, MIN_PX = 16, SLACK = 1, PHONE_BELOW = 800;
|
|
43
|
+
|
|
44
|
+
// A block's own answer (lib/content/block-size, the wrapper's attributes):
|
|
45
|
+
// data-fit "wrap" | "shrink" | "line" and data-fit-min, each with its phone twin read
|
|
46
|
+
// under 800px. With none, a heading shrinks and body text wraps, as always.
|
|
47
|
+
function phone() { return win.innerWidth < PHONE_BELOW; }
|
|
48
|
+
function own(el, attr) {
|
|
49
|
+
var holder = el.closest("[" + attr + "],[" + attr + "-phone]");
|
|
50
|
+
if (!holder) return null;
|
|
51
|
+
return (phone() && holder.getAttribute(attr + "-phone")) || holder.getAttribute(attr);
|
|
52
|
+
}
|
|
53
|
+
function modeOf(el) {
|
|
54
|
+
var mode = own(el, "data-fit");
|
|
55
|
+
if (mode === "wrap" || mode === "shrink") return mode;
|
|
56
|
+
if (mode === "line") return "wrap"; // One line: the block keeps its words whole, nothing shrinks
|
|
57
|
+
return el.matches(SELECTOR) ? "shrink" : "wrap";
|
|
58
|
+
}
|
|
59
|
+
function floorOf(el, set) {
|
|
60
|
+
var min = parseFloat(own(el, "data-fit-min"));
|
|
61
|
+
return min >= 0 ? min : Math.max(set * MIN_SCALE, MIN_PX);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function measure(el) {
|
|
65
|
+
var widest = 0, current = 0, last = null, split = false, lastBlock = null;
|
|
66
|
+
function blockOf(n) {
|
|
67
|
+
for (var p = n.parentElement; p && p !== el; p = p.parentElement) {
|
|
68
|
+
var d = win.getComputedStyle(p).display;
|
|
69
|
+
if (d.indexOf("inline") !== 0 && d !== "contents") return p;
|
|
70
|
+
}
|
|
71
|
+
return el;
|
|
72
|
+
}
|
|
73
|
+
function close() { if (current > widest) widest = current; current = 0; last = null; }
|
|
74
|
+
var walker = doc.createTreeWalker(el, 5), range = doc.createRange(), node;
|
|
75
|
+
while ((node = walker.nextNode())) {
|
|
76
|
+
if (node.nodeType === 1) {
|
|
77
|
+
if (node.tagName === "BR" || node.tagName === "WBR") close();
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
var block = blockOf(node);
|
|
81
|
+
if (block !== lastBlock) close();
|
|
82
|
+
lastBlock = block;
|
|
83
|
+
var re = /(\S+)|(\s+)/g, m;
|
|
84
|
+
while ((m = re.exec(node.data))) {
|
|
85
|
+
if (m[2]) { close(); continue; }
|
|
86
|
+
range.setStart(node, m.index);
|
|
87
|
+
range.setEnd(node, m.index + m[0].length);
|
|
88
|
+
var rects = range.getClientRects();
|
|
89
|
+
for (var i = 0; i < rects.length; i++) {
|
|
90
|
+
var r = rects[i];
|
|
91
|
+
if (r.width <= 0) continue;
|
|
92
|
+
current += r.width;
|
|
93
|
+
if (last && r.top > last.top + last.height / 2) split = true;
|
|
94
|
+
last = r;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
close();
|
|
99
|
+
return { widest: widest, split: split };
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function lineWidth(el) {
|
|
103
|
+
var cs = win.getComputedStyle(el);
|
|
104
|
+
return el.getBoundingClientRect().width - parseFloat(cs.paddingLeft) - parseFloat(cs.paddingRight)
|
|
105
|
+
- parseFloat(cs.borderLeftWidth) - parseFloat(cs.borderRightWidth);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// ⚠️ THE HEADING ELEMENT IS NEVER TOUCHED — no style="", no data-*. This
|
|
109
|
+
// runs before React hydrates, and React 19 in development reports ANY
|
|
110
|
+
// attribute that differs from what it rendered ("a tree hydrated but some
|
|
111
|
+
// attributes didn't match"): first our inline font-size on the hero (which
|
|
112
|
+
// React owns via --heading-size), then, when that moved to a data-sf-fit
|
|
113
|
+
// attribute, the attribute itself. So the fitted size lives only in this
|
|
114
|
+
// script's own stylesheet, in <head>, addressed to each heading by its
|
|
115
|
+
// POSITION (":root>*:nth-child(2)>…"). A position goes stale when the page's
|
|
116
|
+
// structure changes, so the rules are rewritten in the MutationObserver
|
|
117
|
+
// callback, which runs before the next paint. !important so the size also
|
|
118
|
+
// beats a part's own inline size.
|
|
119
|
+
var head = doc.head || doc.documentElement;
|
|
120
|
+
var fitEl = doc.createElement("style");
|
|
121
|
+
fitEl.id = "storefront-fit-words-sizes";
|
|
122
|
+
head.appendChild(fitEl);
|
|
123
|
+
// heading -> [[element, fitted size]]: the heading and each Text part inside
|
|
124
|
+
// it that holds its own size (a span [data-sf-part-styled]), e.g.
|
|
125
|
+
// [[h2, "43.8px"], [span, "43.8px"]]. Sizing the heading alone leaves such
|
|
126
|
+
// a part at its own size, and the word still breaks (card C25, Spec Table).
|
|
127
|
+
var fitted = new Map();
|
|
128
|
+
|
|
129
|
+
function pathOf(el) {
|
|
130
|
+
var parts = [];
|
|
131
|
+
for (var e = el; e && e.parentElement; e = e.parentElement) {
|
|
132
|
+
var i = 1, s = e;
|
|
133
|
+
while ((s = s.previousElementSibling)) i++;
|
|
134
|
+
parts.unshift("*:nth-child(" + i + ")");
|
|
135
|
+
}
|
|
136
|
+
return ":root>" + parts.join(">");
|
|
137
|
+
}
|
|
138
|
+
function writeRules() {
|
|
139
|
+
var css = "";
|
|
140
|
+
fitted.forEach(function (sizes, el) {
|
|
141
|
+
if (!el.isConnected) { fitted.delete(el); return; }
|
|
142
|
+
for (var i = 0; i < sizes.length; i++) css += pathOf(sizes[i][0]) + "{font-size:" + sizes[i][1] + " !important}";
|
|
143
|
+
});
|
|
144
|
+
if (fitEl.textContent !== css) fitEl.textContent = css;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function unfit(el) {
|
|
148
|
+
if (fitted.delete(el)) writeRules();
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
function fits(el) {
|
|
152
|
+
var m = measure(el);
|
|
153
|
+
return !m.split && m.widest <= lineWidth(el) + SLACK;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function fit(el) {
|
|
157
|
+
unfit(el);
|
|
158
|
+
if (modeOf(el) !== "shrink") return; // the block's own Wrap
|
|
159
|
+
if (lineWidth(el) <= 0) return; // hidden, or not laid out yet
|
|
160
|
+
if (fits(el)) return;
|
|
161
|
+
var set = parseFloat(win.getComputedStyle(el).fontSize);
|
|
162
|
+
if (!set) return;
|
|
163
|
+
var floor = floorOf(el, set);
|
|
164
|
+
if (floor >= set) return;
|
|
165
|
+
function size(px) { return Math.floor(px * 10) / 10 + "px"; }
|
|
166
|
+
// The SEARCH tries sizes on the element's own style and then puts that
|
|
167
|
+
// attribute back byte for byte (or removes it, if it had none), so nothing
|
|
168
|
+
// is left for React to see. A trial in a stylesheet instead restyles the
|
|
169
|
+
// whole page per step: a full pass on the Hartes home took 75–160ms at 4x
|
|
170
|
+
// CPU that way.
|
|
171
|
+
// Every trial scales the heading AND each part inside it that holds its
|
|
172
|
+
// own size, by the same ratio, so a part keeps its proportion to the
|
|
173
|
+
// heading.
|
|
174
|
+
var carriers = [el].concat(Array.prototype.slice.call(el.querySelectorAll("[data-sf-part-styled]")));
|
|
175
|
+
var base = carriers.map(function (c) { return parseFloat(win.getComputedStyle(c).fontSize) || set; });
|
|
176
|
+
var saved = carriers.map(function (c) { return c.hasAttribute("style") ? c.getAttribute("style") : null; });
|
|
177
|
+
function attempt(px) {
|
|
178
|
+
for (var i = 0; i < carriers.length; i++) carriers[i].style.setProperty("font-size", size(base[i] * px / set), "important");
|
|
179
|
+
}
|
|
180
|
+
function done() {
|
|
181
|
+
for (var i = 0; i < carriers.length; i++) {
|
|
182
|
+
if (saved[i] !== null) carriers[i].setAttribute("style", saved[i]); else carriers[i].removeAttribute("style");
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
attempt(floor);
|
|
186
|
+
if (!fits(el)) { done(); return; } // even the floor does not fit: leave it as set
|
|
187
|
+
var lo = floor, hi = set;
|
|
188
|
+
for (var i = 0; i < 8; i++) {
|
|
189
|
+
var mid = (lo + hi) / 2;
|
|
190
|
+
attempt(mid);
|
|
191
|
+
if (fits(el)) lo = mid; else hi = mid;
|
|
192
|
+
}
|
|
193
|
+
done();
|
|
194
|
+
fitted.set(el, carriers.map(function (c, i) { return [c, size(base[i] * lo / set)]; }));
|
|
195
|
+
writeRules();
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// What each heading measured right after we last fitted it, so the
|
|
199
|
+
// ResizeObserver below can tell a real change (a font swap, a rotate, a
|
|
200
|
+
// container that moved) from the size change our own write just caused.
|
|
201
|
+
var seen = new WeakMap();
|
|
202
|
+
function remember(el) {
|
|
203
|
+
var b = el.getBoundingClientRect();
|
|
204
|
+
seen.set(el, b.width + "x" + b.height);
|
|
205
|
+
}
|
|
206
|
+
function fitAndRemember(el) { fit(el); remember(el); }
|
|
207
|
+
|
|
208
|
+
// ⚠️ A ResizeObserver, NOT fonts.ready or a resize event, and the reason is
|
|
209
|
+
// WHEN it runs: after layout, BEFORE paint. The web font arriving re-wraps a
|
|
210
|
+
// fitted heading, and fonts.ready resolves only after that frame is painted —
|
|
211
|
+
// measured on the Hartes hero: a 42px jump in 2 of 3 loads. A size change
|
|
212
|
+
// reported here is fitted in the same frame, so the broken state is never
|
|
213
|
+
// drawn. It also covers a container that resizes.
|
|
214
|
+
var ro = new win.ResizeObserver(function (entries) {
|
|
215
|
+
for (var i = 0; i < entries.length; i++) {
|
|
216
|
+
var el = entries[i].target;
|
|
217
|
+
var b = el.getBoundingClientRect();
|
|
218
|
+
if (seen.get(el) === b.width + "x" + b.height) continue; // our own write
|
|
219
|
+
fitAndRemember(el);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
// Its own set, not seen: fitAndRemember has written seen by the
|
|
223
|
+
// time watch runs, so a seen test observed no heading at all, and a
|
|
224
|
+
// heading fitted in the fallback face was never fitted again when the web
|
|
225
|
+
// font arrived (hartesmetal.com.au, "FusionForge." with its "." alone).
|
|
226
|
+
var watched = new WeakSet();
|
|
227
|
+
function watch(el) { if (!watched.has(el)) { watched.add(el); ro.observe(el); } }
|
|
228
|
+
|
|
229
|
+
function fitAll() {
|
|
230
|
+
var els = doc.querySelectorAll(CANDIDATES);
|
|
231
|
+
for (var i = 0; i < els.length; i++) {
|
|
232
|
+
if (modeOf(els[i]) === "shrink") { fitAndRemember(els[i]); watch(els[i]); }
|
|
233
|
+
else unfit(els[i]); // Wrap here (a phone value may differ from the desktop's)
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
var queued = 0, all = false, touched = new Set();
|
|
238
|
+
function run() {
|
|
239
|
+
queued = 0;
|
|
240
|
+
if (all) { all = false; touched.clear(); fitAll(); return; }
|
|
241
|
+
var els = Array.from(touched);
|
|
242
|
+
touched.clear();
|
|
243
|
+
for (var i = 0; i < els.length; i++) {
|
|
244
|
+
if (!els[i].isConnected) continue;
|
|
245
|
+
if (modeOf(els[i]) === "shrink") { fitAndRemember(els[i]); watch(els[i]); }
|
|
246
|
+
else unfit(els[i]);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
function schedule() { if (!queued) queued = win.requestAnimationFrame(run); }
|
|
250
|
+
function scheduleAll() { all = true; schedule(); }
|
|
251
|
+
|
|
252
|
+
fitAll();
|
|
253
|
+
// A backstop only: a font that changes widths without changing any
|
|
254
|
+
// heading's box is not seen by the ResizeObserver.
|
|
255
|
+
if (doc.fonts && doc.fonts.ready) doc.fonts.ready.then(scheduleAll, function () {});
|
|
256
|
+
|
|
257
|
+
// …and the viewport WIDTH, which the ResizeObserver cannot stand in for: a
|
|
258
|
+
// heading sized to its own text (fit-content, a flex item) keeps the SAME box
|
|
259
|
+
// when the phone turns to 844, so nothing reports a change and it would stay
|
|
260
|
+
// shrunk. The probe's rotate check caught exactly that.
|
|
261
|
+
var lastWidth = win.innerWidth;
|
|
262
|
+
function onResize() {
|
|
263
|
+
if (win.innerWidth === lastWidth) return; // a phone's toolbar changing HEIGHT is not our business
|
|
264
|
+
lastWidth = win.innerWidth;
|
|
265
|
+
scheduleAll();
|
|
266
|
+
}
|
|
267
|
+
win.addEventListener("resize", onResize);
|
|
268
|
+
|
|
269
|
+
var mo = new win.MutationObserver(function (records) {
|
|
270
|
+
// Positions first: a node added or removed anywhere can shift the
|
|
271
|
+
// nth-child path of a fitted heading, and this callback runs before paint.
|
|
272
|
+
if (fitted.size) {
|
|
273
|
+
for (var q = 0; q < records.length; q++) if (records[q].type === "childList") { writeRules(); break; }
|
|
274
|
+
}
|
|
275
|
+
for (var i = 0; i < records.length; i++) {
|
|
276
|
+
var r = records[i];
|
|
277
|
+
// A block's text fit (Wrap / Shrink to fit / One line) or Min font size changed in the editor:
|
|
278
|
+
// only a data-fit attribute moved, so every heading is measured again.
|
|
279
|
+
if (r.type === "attributes") { scheduleAll(); continue; }
|
|
280
|
+
var target = r.target.nodeType === 1 ? r.target : r.target.parentElement;
|
|
281
|
+
var owner = target && target.closest(CANDIDATES);
|
|
282
|
+
if (owner) touched.add(owner);
|
|
283
|
+
for (var j = 0; j < r.addedNodes.length; j++) {
|
|
284
|
+
var n = r.addedNodes[j];
|
|
285
|
+
if (n.nodeType !== 1) continue;
|
|
286
|
+
if (n.matches(CANDIDATES)) touched.add(n);
|
|
287
|
+
var inner = n.querySelectorAll(CANDIDATES);
|
|
288
|
+
for (var k = 0; k < inner.length; k++) touched.add(inner[k]);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (touched.size) schedule();
|
|
292
|
+
});
|
|
293
|
+
mo.observe(doc.body, {
|
|
294
|
+
childList: true,
|
|
295
|
+
subtree: true,
|
|
296
|
+
characterData: true,
|
|
297
|
+
attributes: true,
|
|
298
|
+
attributeFilter: ["data-fit", "data-fit-phone", "data-fit-min", "data-fit-min-phone"],
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
doc.__sfFitWords = function stop() {
|
|
302
|
+
win.removeEventListener("resize", onResize);
|
|
303
|
+
ro.disconnect();
|
|
304
|
+
mo.disconnect();
|
|
305
|
+
if (queued) win.cancelAnimationFrame(queued);
|
|
306
|
+
fitted.clear();
|
|
307
|
+
fitEl.remove();
|
|
308
|
+
delete doc.__sfFitWords;
|
|
309
|
+
};
|
|
310
|
+
// For the probe and for debugging: which headings are fitted, at what size,
|
|
311
|
+
// and the sheet that holds it (disable it to read a heading's set size).
|
|
312
|
+
doc.__sfFitWords.fitted = fitted;
|
|
313
|
+
doc.__sfFitWords.sheet = fitEl;
|
|
314
|
+
// …and the two questions a block's own answer changes, for the guard
|
|
315
|
+
// (scripts/test-block-size.tsx §5): which mode an element is in, and its floor.
|
|
316
|
+
doc.__sfFitWords.modeOf = modeOf;
|
|
317
|
+
doc.__sfFitWords.floorOf = floorOf;
|
|
318
|
+
})(document);`,yV="storefront-fit-words";function C_(e){let o=e.createElement("script");return o.id=yV,o.textContent=bV,(e.head??e.documentElement).appendChild(o),()=>{e.__sfFitWords?.(),o.remove()}}var kV=`
|
|
319
|
+
[${Uo}][${Uo}] { cursor: text; }
|
|
320
|
+
`;function v_({children:e,document:o}){let{theme:t,themeMode:r,themeSwitchShown:a}=se(),n=oo(t);return k_(()=>{if(o)return y_(o,{mode:r,switchShown:a})},[o,r,a]),k_(()=>{if(o)return S_(o,n)},[o,n]),wV(()=>{if(o)return C_(o)},[o]),CV(SV,{children:[w_(PI,{}),w_("style",{children:kV}),e]})}import{jsx as Hx}from"react/jsx-runtime";import{useEffect as vV,useState as TV}from"react";import{Banner as PV}from"efficient-shell/ui";var Ad={load:"The header and footer could not load. They are hidden for now and nothing in them is saved. Reload to try again.",lock:"{name} is editing the header and footer. Nothing you change in them here is saved.",conflict:"The header and footer were changed somewhere else. Nothing you change in them here is saved. Reload to get the latest.",save:"The header and footer did not save. They are sent again with your next change."},EV={load:"{section} could not load. It stays on the page as it was. Reload to try again.",lock:"{name} is editing {section}. Nothing you change in it here is saved.",conflict:"{section} was changed somewhere else. Nothing you change in it here is saved. Reload to get the latest.",save:"{section} did not save. It is sent again with your next change."},OV=Ad.load,_V=Ad.lock,FV=Ad.conflict,AV=Ad.save;function RV(e){if(!e)return null;if(e.loadFailed)return i(OV);if(e.lockHolder)return i(_V,{name:e.lockHolder.name||i("Somebody else")});if(e.conflict)return i(FV);if(e.saveFailed)return i(AV);let o=e.sections?.[0];if(!o)return null;let t=o.title||i("A shared section"),r=o.holder?.name||i("Somebody else");return i(EV[o.problem],{section:t,name:r})}function LV({report:e}){let o=RV(ed(e)),[t,r]=TV(null);return vV(()=>{o||r(null)},[o]),!o||t===o?null:Hx("aside",{className:"sf-canvas-notice",children:Hx(PV,{tone:"warning",onDismiss:()=>r(o),children:o})})}function T_(){return Hx(LV,{report:od()})}import{jsx as Rd}from"react/jsx-runtime";import{useState as P_}from"react";import{Banner as BV,Button as DV}from"efficient-shell/ui";import{UndoIcon as NV}from"efficient-shell/icons/efficient";import{useScreenDocument as MV}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSettledAction as HV}from"efficient-easel/easel";function E_(){let e=OP(),{adapter:o,flushSave:t,reloadFromServer:r}=MV(),a=o.siteVersions,[n,s]=P_(!1),[l,c]=P_(!1),d=async()=>{if(!(!a||n)){s(!0),c(!1);try{await AP({access:a,flushSave:t,reload:r})}catch{c(!0)}finally{s(!1)}}},u=HV({onPress:()=>{d()},busy:n});return e?Rd("aside",{className:"sf-canvas-notice",children:Rd(BV,{tone:l?"danger":"info",title:e.title,onDismiss:td,action:a&&e.undo?Rd(DV,{variant:"secondary",size:"sm",leftIcon:Rd(NV,{}),loading:u.busy,disabled:u.busy,onClick:u.onPress,children:i("Undo")}):void 0,children:l?i("Undo did not work. Nothing changed. Try again."):i("Check it with Preview. Press Publish to put it live.")})}):null}import{usePreviewParts as jV}from"efficient-easel/draw/client";import{useSectionOps as KV}from"efficient-easel/screen/lib/document/use-section-ops";var O_=null;function Wx(e){O_=e}function vEe(){return O_}function A_(e){let{mirrorHostStyles:o}=Zd(),t=OI(),{sectionBackgroundWidth:r,themeFromDocument:a}=se(),n=xI(),s=__(()=>({...e.metadata??t??{},...Xy(a?null:r,n)}),[e.metadata,t,r,n,a]);zV(()=>(Wx(n),()=>Wx(null)),[n]);let l=F_(null),c=qV(l),{onDocument:d}=e,u=h=>{l.current=h,d?.(h)};return GV(WV,{children:[Gx(E_,{}),Gx(T_,{}),Gx(UV,{...e,onDocument:u,typing:c,metadata:s,height:"fill",mirrorStyles:o,frameWrapper:v_})]})}function qV(e){let o=$V(),t=KV(),r=jV(),a=F_({ops:t,parts:r});return a.current={ops:t,parts:r},__(()=>{let n={getItemById:l=>o.getState().getItemById(l),getSelectorForId:l=>o.getState().getSelectorForId(l),get components(){return o.getState().config.components},replace:(l,c,d)=>a.current.ops.replaceComponent(l,c,d)},s=(l,c)=>{let d=Hv(l,n);if(!d)return null;let u=c,h=()=>(u=Wv(u,u?.ownerDocument??e.current,l),u),p=h();return p?{element:h,value:d.value,rules:d.rules,multiline:d.multiline,skip:d.skip,write:d.write,toolbar:{offered:d.offered,colors:d.offered.length>0?Cc(Xv(p)):void 0}}:null};return{at:l=>{let c=l.closest(`[${Uo}]`),d=c?.getAttribute(Uo);return c&&d?s(d,c):null},atSelection:()=>{let l=a.current.parts.selectedPartId;return l?s(l,null):null},onChange:l=>{if(!l.typing){Dm(null);return}let c=l.element.closest(`[${Uo}]`)?.getAttribute(Uo)??null;Dm(c),c&&a.current.parts.selectedPartId!==c&&a.current.parts.select(c)}}},[o,e])}var VV=hI.mediaFields,YV=/video|poster|focal|phone/i;function R_(e){return(VV[e]??[]).find(o=>!o.includes("[]")&&!YV.test(o))??null}var L_={adds:{kind:"block",type:"ImageBlock"},takes:e=>R_(e.type)!==null,replace:(e,o)=>{let t=R_(e.type);return t?{...e.props,[t]:o.url}:{...e.props}},create:(e,o)=>({type:"ImageBlock",props:{...o.nodeDefaults("ImageBlock"),id:o.newNodeId("ImageBlock"),src:e.url}})};var B_={Hero:"Full-screen opener with rotating slides.",HeroSingle:"Full-screen image or video with a headline.",IntroBleed:"Full-bleed intro image the next section scrolls over.",Collections:"Product collections in a tidy grid.",AlloyWheelsListing:"A full product-listing page: filter rail, sortable card grid and pagination, from the live catalog. Choose which product types it shows.",CatalogFilterBar:"Filters the collection grids below it \u2014 a sticky row of Pills (the default), or Columns, one per filter you switch on.",ProductGrid:"Hand-picked products in a tidy grid.",FitmentFinder:"A vehicle picker \u2014 make, model, year and trim resolve the OEM stock fitment live.",Gallery:"Two image galleries with tabs and filters.",GalleryB:"Customer photos in a card grid with a click-to-open lightbox.",SpecStrip:"A thin one-line spec strip \u2014 small-caps items spread across the width, as a dark band or a bare hairline row.",ProductHero:"A product hero \u2014 image beside price, bullets and a buy button.",SpecTable:"A spec sheet \u2014 labeled rows of product specifications.",ProcessSteps:"A heading over columns of image, title, blurb and specs.",DetailRows:"Repeating full-width rows \u2014 eyebrow, title and copy beside a numbered close-up image, alternating sides each row.",FitmentTable:"A fitment table \u2014 per-size bolt patterns, offsets and load ratings, filterable by diameter.",CompatibleTyres:"The current product's compatible tyres \u2014 image, size, key specs and price per tyre, with an inquiry link. Display only.",RelatedProducts:"The current product's related items in a tidy row \u2014 the product page's built-in 'Pair with' cross-sell.",OrderSummary:"A display order-summary panel \u2014 items, totals and a note.",DeliveryOptions:"Delivery tiers as cards \u2014 name, window and price, one highlighted.",PaymentBadges:"A payment-methods trust strip with reassurance lines.",CheckoutCTA:"A centered 'ready to order?' headline with the checkout button.",Manifesto:"A bold brand statement beside a full-height image, with a stat strip.",ParagraphsA:"An editorial text panel with a stat strip and founders' note.",StatsParagraph:"An editorial heading and paragraph over a row of theme-color-accented stat cards.",Chart:"A titled chart \u2014 bars, line or donut \u2014 drawn from your own labeled data points.",Mockup:"A headline beside a stylized product-UI mockup card \u2014 spec sheet, fitment, portal, kanban and more.",Prose:"A plain editorial text section \u2014 eyebrow, heading and body copy.",Timeline:"An editorial aside beside a rail-marked timeline of dated entries.",TimelineTrack:"A horizontal year track of milestones \u2014 company history or roadmap.",Footprint:"A world map of your locations with a legend \u2014 designed here, sold worldwide.",TitleWithButtons:"A big headline beside a stack of call-to-action buttons.",Split:"Side-by-side image and text in two columns.",Cards:"A heading over a grid of free-text title-and-blurb cards.",FAQ:"A frequently-asked-questions accordion with a header.",Testimonials:"Customer quotes in a grid \u2014 the quote, a name and a role.",Masthead:"A journal issue header with a lead statement and contents.",Breadcrumb:"A slim trail showing where the reader is (Home / Journal\u2026).",CategoryBar:"A sticky row of category tabs with counts and links.",FeaturedCover:"A featured article \u2014 big cover image beside a headline and dek.",LongRead:"A long-form article spread with a pull-quote and cover image.",Series:"A section heading over a grid of column cards.",Subscribe:"A newsletter signup beside a list of recent issues.",SubscribeBlogs:"A newsletter signup beside your latest blog posts, pulled live.",Events:"Latest journal posts in a three-card row.",DocMasthead:"A document header \u2014 headline, metadata and standfirst.",DocTabs:"A sticky tab bar to switch between documents.",DocBody:"Long-form document body with an 'On this page' contents list.",DocMetaCards:"A three-up meta strip for the foot of a document.",Banner:"Wide promo strip with background image.",Stats:"Highlight key numbers \u2014 years, designs.",Countdown:"Hours, minutes and seconds to a set date and time, then one line.",KeyFeatures:"A theme-color chip and heading over a grid of short feature labels.",Logos:"A row of partner or brand logos.",Ticker:"A scrolling marquee of short phrases, full width.",Reviews:"Approved customer reviews in a star-rated card grid, pulled live.",SubmitBuild:"A 'Show us yours.' headline with a photo-submission form.",ReviewForm:"A write-a-review form \u2014 submissions wait for your approval before they show.",ContactRouting:"Pick who to reach, then a form that routes the message.",ContactLocations:"Your locations as a city gallery plus address and map cards.",SectionHeader:"A numbered section title with optional link.",Grid:"Multi-column container for blocks.",Flex:"An empty section. Add whatever you want inside.",Spacer:"Vertical breathing room between sections.",Divider:"A thin horizontal rule between sections.",CustomHTML:"Drop in your own sanitized HTML.",Heading:"A single heading line.",Text:"A paragraph of body copy.",ImageBlock:"A standalone image, at the width you set.",ButtonBlock:"A call-to-action button."};import{jsx as Ld}from"react/jsx-runtime";import{useState as XV}from"react";import{Button as ZV,Tooltip as JV,toast as D_}from"efficient-shell/ui";import{TemplateIcon as QV}from"efficient-easel/icons";import{useSettledAction as eY}from"efficient-easel/easel";import{useScreenDocument as oY}from"efficient-easel/screen/components/ScreenDocumentContext";function M_({enabled:e,reason:o,onSaved:t}){let{flushSave:r}=oY(),[a,n]=XV(!1),s=async()=>{if(!a){n(!0);try{await r()?t():D_.error(i(N_))}catch{D_.error(i(N_))}finally{n(!1)}}},l=eY({onPress:()=>{s()},busy:a});return Ld(JV,{side:"bottom",content:e?i("Save this website as a platform template"):i(o),children:Ld("span",{className:"sf-tip-disabled",tabIndex:e?void 0:0,children:Ld(ZV,{variant:"secondary",disabled:!e||l.busy,loading:l.busy,onClick:l.onPress,rightIcon:Ld(QV,{size:15}),children:i("Save as Template")})})})}var N_="Your last changes did not save, so the template was not made. Try again.";var tY="Save your page changes first";function H_(e){return e.hasTrustedConsole?e.canCreatePlatformTemplate?!e.capabilities.canPublish||!e.capabilities.hasSiteSettings?{visible:!1,hiddenReason:"not-a-site-page"}:e.siteId?e.hasUnsavedEdits?{visible:!0,enabled:!1,disabledReason:tY}:{visible:!0,enabled:!0}:{visible:!1,hiddenReason:"no-site"}:{visible:!1,hiddenReason:"not-operator"}:{visible:!1,hiddenReason:"no-console"}}var W_="storefront-editor:save-as-template";var Ys="ContactLocations",rY="CityPictures",aY="CityMaps",nY=[{key:rY,label:"City pictures",desc:"A wall of city photos, grouped by region. Each photo links to its city's card."},{key:aY,label:"City maps",desc:"A card per city, grouped by region: address, phone, hours and a map."}];function G_(e=Cs){let o=Kt.find(t=>t.sections.some(r=>r.type===Ys))?.key;return!e.includes(Ys)||!o?[]:nY.map(({key:t,label:r,desc:a},n)=>({key:t,label:r,cat:o,after:Ys,desc:a,alias:"locations offices stores branches",insert:s=>{let l=Jc(Ys);return l?Rx(Ys,l,n)(s.nodeDefaults,s.newNodeId):null}}))}var sY="plain",z_=[{label:"Plain",value:"plain"},{label:"Filled",value:"filled"},{label:"Line",value:"line"}],lY="line",iY={KeyFeatures:"filled"};function Xs(e){return iY[e]??sY}function lOe(e,o){return io(z_,Xs(o),e)}function iOe(e){return io(z_,lY,e)}function U_(e,{nodeDefaults:o,newNodeId:t,sectionLabel:r,blockIsOffered:a}){let n=Od(e);return n?n(o,t):jT(e)&&a(re)&&a(Va)?{type:re,props:{...o(re),id:t(re),direction:"column",name:`${r(e)} section`,content:[{type:Va,props:{...o(Va),id:t(Va),...uo[e]?.headStyle?{headStyle:uo[e].headStyle}:{},...uo[e]?.headRowGap?{rowGap:uo[e].headRowGap}:{},...uo[e]?.headDescriptionSize?{descriptionSize:uo[e].headDescriptionSize}:{},...Xs(e)!==Xs(Va)?{eyebrowLook:Xs(e)}:{}}},{type:e,props:{...o(e),id:t(e),headPlacement:"own-box"}}]}}:it[e]?.fixed===!0?{type:e,props:{...o(e),id:t(e),layout:"boxes"}}:null}import{useEffect as cY,useState as dY}from"react";import{useEaselSession as fY}from"efficient-easel/screen/lib/session-context";function $_(){let e=fY().chrome?.products?.list,[o,t]=dY(null);return cY(()=>{if(!e)return;let r=!1;return e().then(a=>{r||t(a)}),()=>{r=!0}},[e]),o}function eF({mode:e,open:o}){let{setSelectedHeroId:t,setSelectHandler:r}=jw(),a=J_().tree,n=e,s=n.kind==="ticker"?n.heroId:null,l=Js(c=>{c&&(o({kind:"ticker",heroId:c}),yY(c))},[o]);return ct(()=>{t(s)},[s,t]),ct(()=>{r(l)},[r,l]),{partRows:(c,{rowClick:d})=>{let u=String(c.props.id);return c.type==="Hero"&&Qe(X_,{icon:Qe(_r,{type:"ticker",size:13}),name:i(zn),onSelect:()=>l(u),selected:s===u,rowProps:{onClick:d(()=>l(u))},words:a})}}}function oF({mode:e,select:o}){let{setSelectedHeroPart:t,setSelectHandler:r}=oc(),a=J_().tree,{appState:n}=Z_(p=>p),s=n.data.content??[],l=uY(s);l.current=s;let c=e,d=Un.find(p=>$n[p]===c.kind),u=d&&"nodeId"in c?jn(String(c.nodeId),d):null,h=Js(p=>{let x=Jw(p);if(!x)return;let g=l.current.findIndex(E=>String(E.props.id)===x.nodeId);if(g<0)return;let y={kind:$n[x.part],nodeId:x.nodeId};o({index:g},y)},[o]);return ct(()=>{t(u)},[u,t]),ct(()=>{r(h)},[r,h]),{partRows:(p,{rowClick:x})=>{let g=String(p.props.id),y=Zw(p);if(y.length===0)return null;let E=I=>{let w=jn(g,I.part);return Qe(X_,{icon:Qe(_r,{type:I.part==="media"?"heroMedia":"heroImage",size:13}),name:i(I.label),onSelect:()=>h(w),selected:u===w,rowProps:{onClick:x(()=>h(w))},words:a},w)},[O,...C]=y;return Zs(Y_,{children:[E(O),C.length>0&&Qe(IY,{children:C.map(E)})]})}}}function tF(e,o){return{partRows:(t,r)=>Zs(Y_,{children:[e.partRows?.(t,r),o.partRows?.(t,r)]})}}function SY(e){let{adapter:o,capabilities:t,currentSlug:r,siteId:a,docId:n,hasUnsavedEdits:s,bridgeCapabilities:l,notifyParent:c,token:d}=Bd(),{hasPreviewLink:u}=t,h=Me(Q_()).preview?.draftLink,p=HP(e.data),x=H_({hasTrustedConsole:!!d,canCreatePlatformTemplate:l.canCreatePlatformTemplate,capabilities:t,siteId:a,hasUnsavedEdits:s}),g=Js(()=>{!a||!r||c(W_,{siteId:a,slug:r})},[c,a,r]),y=IP({pageSlug:r,siteId:a,token:d}),E=o.previewHref?.(r)??y;return{barLead:()=>x.visible&&Qe(M_,{enabled:x.enabled,reason:x.enabled?"":x.disabledReason,onSaved:g}),barView:()=>u&&r&&Qe(yP,{liveHref:E,pageId:n??null,draftLink:h}),mainAction:p}}function CY(e,o){let{capabilities:t,templateId:r,siteId:a,tokenRef:n,navigate:s}=Bd(),{hasSiteTheme:l,explainsSiteSettings:c}=t,d=I=>o.setView(I),[u,h]=j_(_a[0].id),[p,x]=j_(!1),{surface:g,setSurface:y}=$w(),E=()=>{if(l){d("styles"),o.reveal(),K_();return}e.show(hh),e.reveal(),K_()},O={id:"pages",label:i("Pages"),icon:Qe(mY,{}),panel:({onHide:I})=>Qe(Lw,{activeSurface:g,onPreviewSurface:y,onNavigate:w=>{y(null),s(r?{kind:"template",id:r,pageSlug:w}:{kind:"page",slug:w,siteId:a??void 0})},onClose:I})},C=[];return!l&&c&&C.push({id:"appearance",label:i("Appearance"),icon:Qe(xY,{}),active:e.kind==="website",onSelect:E}),l&&C.push({id:"styles",label:i("Styles"),icon:Qe(hY,{}),panel:({onHide:I,notify:w})=>Qe(yT,{tokenRef:n,siteId:a??void 0,onClose:I,onNotify:w,tab:u,onTabChange:h,revealPageGroup:p,onPageGroupRevealed:()=>x(!1)})}),{railLead:[O],railTrail:C,resolveLeftView:I=>m_(I,l),openSettings:E,openStyles:()=>{h(hw),d("styles")},openPageStyles:l?()=>{h(Fa),x(!0),d("styles"),o.reveal()}:c?()=>{e.show(cT),e.reveal()}:void 0}}function wY(){let{navigate:e,siteId:o,reloadFromServer:t,docId:r}=Bd(),a=Z_(s=>s.config),n=Q_();ct(()=>(rh({openPage:s=>e({kind:"page",slug:s.slug,siteId:o??void 0}),reload:()=>{t()},config:a}),()=>rh(null)),[e,o,t,a]),ct(()=>{let s=Ct();if(!s||!r)return;let l=!1;return bY(n).list().then(c=>{l||s.learn(c)}).catch(()=>{}),()=>{l=!0}},[r,n])}function kY(e,o,t,r){let{kind:a,open:n}=e,{selected:s,zoneOf:l}=o;ct(()=>{l_(s?.type==="BookingBox"&&s.props.region==="confirm"?i_(l(String(s.props.id))):null)},[s?.props.id]);let c=GT(e,o),{capabilities:{hasSiteSettings:d}}=Bd();wY();let{chat:u,setChat:h,setSelected:p,setSelectHandler:x}=ec(),g=Js(()=>n(dT),[n]),y=a==="chat";ct(()=>{p(y)},[y,p]),ct(()=>{x(g)},[x,g]);let{setOpenHandler:E}=Gn(),O=Js(()=>n(fT),[n]);ct(()=>{E(O)},[E,O]);let C=tF(eF(e),oF(e)),I=SY(o),w=CY(e,r),v=t.device;return{...C,...I,...w,hasOwnRows:k=>k.type===Xc,ownRows:c.renderLocationTree,sectionPressed:c.sectionPressed,wrap:k=>Qe(Jd.Provider,{value:!0,children:Zs(gY.Provider,{value:v,children:[k,Qe(qP,{})]})}),addPanelRow:k=>d?Zs("div",{className:"sf-addside-sitewide",children:[Qe("span",{className:"sf-addside-sitewide-glyph","aria-hidden":"true",children:Qe(_r,{type:"chat",size:16})}),Zs("button",{type:"button",className:"sf-addside-sitewide-name",onClick:()=>{k(),g()},children:[i("Live chat"),Qe("span",{className:"sf-addside-sitewide-desc",children:i("A chat bubble on every page")})]}),Qe(pY,{checked:u.enabled,onChange:A=>h({enabled:A}),ariaLabel:i("Show the chat bubble on the whole site")})]}):void 0}}var q_=null,zx=new WeakMap;function vY(e){let o=vI();if(!e||!o)return e;q_!==o&&(q_=o,zx=new WeakMap);let t=zx.get(e);return t||(t={...e,choices:e.choices?e.choices.map(r=>({...r,label:i(r.label)})):null,spec:e.spec?{...e.spec,addLabel:i(e.spec.addLabel)}:null},zx.set(e,t)),t}var TY={isLockedBlock:(e,o)=>x_(e,o)||!!(o&&Ct()?.heldElsewhere(o.props.id)),duplicateBlocked:Gc,nestDepth:(e,o,t)=>o===xl?Ig(e,t):0,newSectionNode:U_,canAddTo:(e,o,t,r)=>vY(n_(e,o,r)),blockIsOffered:a_,slotsOf:s_},PY=new Proxy(B_,{get:(e,o)=>{let t=Reflect.get(e,o);return typeof t=="string"?i(t):t}}),EY={labelAtLevel:(e,o,t)=>i(Km(e,o,t)),descriptions:PY,categoryLabel:e=>{let o=VP(e);return o===void 0?void 0:i(o)},firstSection:YP,blockRowName:c_,rowName:d_,plainText:pr,Icon:_r,Thumbnail:bT,useProducts:$_,presets:G_()},OY={desktop:2e3,tablet:800,mobile:390},V_="desktop",_Y={options:Ww,initial:V_,fluid:V_,widths:OY},FY={read:u_,write:e=>p_(e),forSelection:(e,o)=>h_(e,o)},AY={first:xo,last:Fe,firstGroup:_e,lastGroup:Te,isSectionGroup:Ua,sectionGroupZone:w0,panelOf:e=>e===xo?iT:null,get sharedReach(){return Hr()?LY:void 0},get shared(){return Ct()?g_:void 0},get groupTab(){return Hr()?V0:void 0},get groupBadge(){return Hr()?dh({type:Te})??void 0:void 0},get changeNotice(){return Hr()?Y0():void 0},get band(){return Hr()?RY:void 0},get groupAccepts(){return Hr()?T0:void 0}},RY={foldable:!0},LY=e=>dh(e)??I_(e);function BY(e){return{...tF(eF(e),oF(e)),openSettings:()=>e.show(hh)}}function DY(e,o){rP(e,o),uP()}var E_e={useOwnerName:Aa,useDocumentLabel:Cw,useBridges:kY,useStandaloneBridges:BY,useDocumentPass:DY,blockRules:TY,blockLook:EY,devices:_Y,leftView:FY,pinned:AY,Canvas:A_,canvasDrag:{media:L_},Inspector:pT};export{Om as a,Ic as b,eU as c,txe as d,rxe as e,bv as f,axe as g,_m as h,nxe as i,sxe as j,Ma as k,lxe as l,tU as m,ixe as n,wv as o,cxe as p,Age as q,Rge as r,Lge as s,I0 as t,qt as u,qm as v,Me as w,Sl as x,re as y,zT as z,HSe as A,$T as B,io as C,xf as D,WA as E,GA as F,If as G,gf as H,Ao as I,MZ as J,ke as K,uo as L,KT as M,$Se as N,qT as O,jSe as P,KSe as Q,j as R,Kc as S,ySe as T,nt as U,st as V,Po as W,oCe as X,mu as Y,hu as Z,QD as _,$l as $,Zte as aa,yn as ba,Jte as ca,wy as da,Rpe as ea,nc as fa,Yn as ga,Ik as ha,Lpe as ia,gk as ja,Bpe as ka,fG as la,bk as ma,Dpe as na,kk as oa,XP as pa,Wwe as qa,HY as ra,i as sa,co as ta,ZP as ua,Uwe as va,Sb as wa,ia as xa,wb as ya,Bee as za,Qf as Aa,QL as Ba,Dee as Ca,Xn as Da,wk as Ea,Vpe as Fa,gc as Ga,rU as Ha,Dr as Ia,os as Ja,uxe as Ka,pxe as La,kv as Ma,mxe as Na,Nr as Oa,cU as Pa,hxe as Qa,ore as Ra,ky as Sa,pa as Ta,tre as Ua,rre as Va,are as Wa,lre as Xa,ire as Ya,nN as Za,cre as _a,bu as $a,Fy as ab,dre as bb,fre as cb,mN as db,ure as eb,hN as fb,pre as gb,MH as hb,$u as ib,HH as jb,mle as kb,Go as lb,xle as mb,Ile as nb,ki as ob,gle as pb,vi as qb,ble as rb,yle as sb,oC as tb,tC as ub,KH as vb,qH as wb,kle as xb,Tle as yb,Ple as zb,Ele as Ab,Ole as Bb,fa as Cb,Dt as Db,Nl as Eb,iy as Fb,Pte as Gb,Ete as Hb,a1 as Ib,n1 as Jb,ld as Kb,nke as Lb,s1 as Mb,ske as Nb,lke as Ob,ike as Pb,l1 as Qb,cke as Rb,dke as Sb,DD as Tb,Gl as Ub,Wte as Vb,fu as Wb,Gte as Xb,zD as Yb,UD as Zb,Iy as _b,gy as $b,id as ac,d1 as bc,xke as cc,Ike as dc,V as ec,me as fc,B as gc,ne as hc,fe as ic,ue as jc,Se as kc,xe as lc,Oe as mc,Bke as nc,nQ as oc,sQ as pc,Xg as qc,pr as rc,Vu as sc,xn as tc,Yu as uc,Ju as vc,Ri as wc,Uo as xc,uie as yc,pie as zc,mie as Ac,hie as Bc,f5 as Cc,u5 as Dc,xie as Ec,Ca as Fc,Qu as Gc,Iie as Hc,gie as Ic,ap as Jc,va as Kc,Rn as Lc,Oie as Mc,Gi as Nc,MC as Oc,dp as Pc,_ie as Qc,Fie as Rc,Aie as Sc,Rie as Tc,o4 as Uc,Yr as Vc,zke as Wc,Uke as Xc,dd as Yc,J7 as Zc,Q7 as _c,$ke as $c,jke as ad,Qke as bd,Kh as cd,ns as dd,Zv as ed,Jv as fd,ss as gd,sv as hd,Phe as id,vm as jd,Tm as kd,cv as ld,dv as md,Rz as nd,fv as od,xc as pd,uv as qd,ive as rd,C1 as sd,cve as td,dve as ud,fve as vd,Us as wd,ud as xd,gve as yd,mo as zd,Pve as Ad,_1 as Bd,F1 as Cd,A1 as Dd,ox as Ed,Nve as Fd,Yl as Gd,Xl as Hd,Hve as Id,R1 as Jd,zve as Kd,Uve as Ld,L1 as Md,z as Nd,bd as Od,yg as Pd,N0e as Qd,SE as Rd,px as Sd,CE as Td,z0e as Ud,U0e as Vd,$0e as Wd,mx as Xd,j0e as Yd,K0e as Zd,wE as _d,Rq as $d,Wa as ae,gTe as be,kc as ce,r0 as de,Mm as ee,KU as fe,eO as ge,oO as he,BTe as ie,Yq as je,Xq as ke,cO as le,zTe as me,UTe as ne,fPe as oe,vPe as pe,LO as qe,FPe as re,WO as se,APe as te,GO as ue,UO as ve,KO as we,qO as xe,$Pe as ye,jPe as ze,KPe as Ae,qPe as Be,da as Ce,K9 as De,Z9 as Ee,s1e as Fe,aa as Ge,pg as He,ug as Ie,oR as Je,tR as Ke,rR as Le,fJ as Me,aR as Ne,uJ as Oe,un as Pe,pJ as Qe,mJ as Re,xl as Se,Ig as Te,m1e as Ue,h1e as Ve,tV as We,XD as Xe,Ul as Ye,Vte as Ze,cg as _e,qA as $e,eJ as af,pl as bf,fg as cf,VA as df,YA as ef,XA as ff,rJ as gf,aJ as hf,nJ as if,sJ as jf,_e as kf,Te as lf,Kge as mf,k0 as nf,Rc as of,lZ as pf,fZ as qf,uA as rf,$X as sf,zl as tf,$te as uf,jte as vf,Kte as wf,hre as xf,xre as yf,Ire as zf,Vy as Af,yr as Bf,BN as Cf,Are as Df,DN as Ef,Rre as Ff,ei as Gf,Lre as Hf,vEe as If,Xv as Jf,xIe as Kf,Vv as Lf,lr as Mf,PZ as Nf,pf as Of,LA as Pf,eg as Qf,MA as Rf,AZ as Sf,RZ as Tf,ul as Uf,LZ as Vf,bf as Wf,tg as Xf,jZ as Yf,qw as Zf,_fe as _f,Vw as $f,W6 as ag,Bp as bg,La as cg,Lfe as dg,Bfe as eg,G6 as fg,Dfe as gg,jn as hg,Jw as ig,Nfe as jg,zn as kg,Cfe as lg,jw as mg,wfe as ng,kfe as og,vfe as pg,xSe as qg,ST as rg,CT as sg,wT as tg,qN as ug,tt as vg,Ho as wg,oi as xg,ga as yg,Kre as zg,qre as Ag,Yre as Bg,Xre as Cg,Zre as Dg,Jre as Eg,Qre as Fg,oae as Gg,ri as Hg,tae as Ig,pA as Jg,mA as Kg,qX as Lg,hA as Mg,xA as Ng,VX as Og,YX as Pg,XX as Qg,ZX as Rg,JX as Sg,QX as Tg,eZ as Ug,oZ as Vg,tZ as Wg,rZ as Xg,VZ as Yg,JZ as Zg,ml as _g,Il as $g,mn as ah,vg as bh,kJ as ch,vJ as dh,Of as eh,NR as fh,jJ as gh,VJ as hh,oQ as ih,tQ as jh,TF as kh,Wf as lh,Gf as mh,UQ as nh,$Q as oh,nb as ph,jQ as qh,KQ as rh,qQ as sh,fb as th,pb as uh,pt as vh,xb as wh,lB as xh,Xee as yh,Eb as zh,roe as Ah,_b as Bh,Lb as Ch,Bb as Dh,Db as Eh,Nb as Fh,Mb as Gh,Hb as Hh,ou as Ih,Gb as Jh,zb as Kh,voe as Lh,OB as Mh,Toe as Nh,Poe as Oh,$b as Ph,Aoe as Qh,_B as Rh,Roe as Sh,Loe as Th,AB as Uh,tu as Vh,LB as Wh,Moe as Xh,BB as Yh,Hoe as Zh,DB as _h,Do as $h,Goe as ai,zoe as bi,Uoe as ci,$oe as di,Rl as ei,joe as fi,nu as gi,Qoe as hi,Xb as ii,WB as ji,ote as ki,eD as li,yte as mi,AD as ni,Bte as oi,LD as pi,Dte as qi,Nte as ri,Mte as si,ql as ti,Cn as ui,bre as vi,yre as wi,Sre as xi,By as yi,Dy as zi,Ny as Ai,Cre as Bi,Ia as Ci,Jl as Di,Tre as Ei,Pre as Fi,Ere as Gi,Ky as Hi,_re as Ii,Gt as Ji,xt as Ki,Cr as Li,Ene as Mi,One as Ni,_ne as Oi,Fne as Pi,Ane as Qi,Rne as Ri,Lne as Si,Mne as Ti,Hne as Ui,cM as Vi,Wne as Wi,Gne as Xi,zne as Yi,Une as Zi,$ne as _i,jne as $i,Kne as aj,qne as bj,pM as cj,Vne as dj,Fu as ej,Yne as fj,ui as gj,Sr as hj,$f as ij,AS as jj,mi as kj,Xne as lj,Zne as mj,FM as nj,Jne as oj,Qne as pj,ese as qj,ose as rj,tse as sj,rse as tj,ase as uj,ai as vj,xi as wj,Ii as xj,Lu as yj,gi as zj,nse as Aj,LS as Bj,sse as Cj,lse as Dj,ise as Ej,NS as Fj,cse as Gj,dse as Hj,fse as Ij,use as Jj,pse as Kj,mse as Lj,Bu as Mj,hse as Nj,HS as Oj,WS as Pj,GS as Qj,xse as Rj,Nu as Sj,QM as Tj,Ise as Uj,gse as Vj,av as Wj,yo as Xj,Jn as Yj,JG as Zj,Hk as _j,Cme as $j,wme as ak,kme as bk,vme as ck,Tme as dk,Pme as ek,Eme as fk,Uk as gk,Ome as hk,_me as ik,Fme as jk,Ji as kk,Bw as lk,Dw as mk,Mw as nk,Qi as ok,afe as pk,nfe as qk,ec as rk,A6 as sk,hfe as tk,Gn as uk,bfe as vk,$w as wk,rs as xk,fU as yk,yxe as zk,Sxe as Ak,xbe as Bk,Ibe as Ck,gbe as Dk,Efe as Ek,oc as Fk,XY as Gk,zC as Hk,Kie as Ik,qie as Jk,Vie as Kk,Yie as Lk,iw as Mk,cw as Nk,gce as Ok,bce as Pk,B4 as Qk,yce as Rk,Sce as Sk,Cce as Tk,wce as Uk,D4 as Vk,kce as Wk,vce as Xk,Tce as Yk,Pce as Zk,W4 as _k,Ece as $k,Hce as al,Wce as bl,Ep as cl,Op as dl,ek as el,bpe as fl,lk as gl,uk as hl,pk as il,Nxe as jl,Mxe as kl,Lv as ll,Hxe as ml,Wxe as nl,cs as ol,qU as pl,VU as ql,DIe as rl,i0 as sl,Fe as tl,Wc as ul,Ko as vl,TT as wl,ys as xl,PT as yl,ET as zl,wSe as Al,kSe as Bl,pP as Cl,Mh as Dl,mP as El,n_ as Fl,D1e as Gl,d_ as Hl,x_ as Il,Fd as Jl,pV as Kl,mV as Ll,J1e as Ml,UY as Nl,qY as Ol,sY as Pl,z_ as Ql,lY as Rl,Xs as Sl,lOe as Tl,iOe as Ul,E_e as Vl};
|