efficient-storefront-blocks 0.82.0 → 0.83.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 +12 -0
- package/dist/chunks/EditorPreviewCheckout-RI5SBSCE.js +4 -0
- package/dist/chunks/{SiteEditorProvider-5YHSOW4Y.js → SiteEditorProvider-OQXY7YGK.js} +1 -1
- package/dist/chunks/{chunk-47L7KHRW.js → chunk-AUYTGAOU.js} +1 -1
- package/dist/chunks/chunk-LMOEQBT7.js +340 -0
- package/dist/chunks/{chunk-NSBGNY7R.js → chunk-QOM2OL54.js} +1 -1
- package/dist/chunks/{fitment-data-SZWTO4WT.js → fitment-data-64LXUHOU.js} +1 -1
- package/dist/contract.js +22 -2
- package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
- package/dist/editor/lib/document/blocks/service/FooterMenu/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/MenuLinkBlock/fields.d.ts +2 -0
- package/dist/editor/lib/document/blocks/service/MenuLinkBlock/fields.js +1 -0
- package/dist/editor/lib/document/blocks/service/index.d.ts +1 -1
- package/dist/editor/lib/document/blocks/service/index.js +1 -1
- package/dist/editor/lib/document/box-header.d.ts +1 -0
- package/dist/editor/lib/document/box-header.js +1 -1
- package/dist/editor/lib/document/config.js +1 -1
- package/dist/editor/lib/storefront-editor-words.d.ts +5 -1
- package/dist/editor/lib/storefront-editor-words.js +1 -1
- package/dist/index.js +29 -29
- package/dist/render/app/globals.css +15 -6
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/FooterMenu.d.ts +9 -9
- package/dist/render/components/FooterMenu.js +1 -1
- package/dist/render/components/MenuLinkBlock.d.ts +7 -0
- package/dist/render/components/MenuLinkBlock.js +1 -0
- package/dist/render/components/ProductCard.js +1 -1
- package/dist/render/components/checkout/CheckoutPageClient.d.ts +2 -1
- package/dist/render/components/checkout/CheckoutPageClient.js +1 -1
- package/dist/render/components/checkout/checkout-state.d.ts +1 -0
- package/dist/render/components/checkout/checkout-state.js +3 -3
- package/dist/render/components/wheels-plp/PlpCard.js +1 -1
- package/dist/render/lib/catalog/relationships.js +1 -1
- package/dist/render/lib/checkout/pay-first.d.ts +19 -0
- package/dist/render/lib/checkout/pay-first.js +1 -1
- package/dist/render/lib/content/menu-card-seed.d.ts +6 -0
- package/dist/render/lib/content/menu-card-seed.js +1 -0
- package/dist/render/lib/document/blocks/service/FooterMenu/meta.d.ts +6 -0
- package/dist/render/lib/document/blocks/service/FooterMenu/meta.js +1 -1
- package/dist/render/lib/document/blocks/service/FooterMenu/render.js +1 -1
- package/dist/render/lib/document/blocks/service/MenuLinkBlock/meta.d.ts +2 -0
- package/dist/render/lib/document/blocks/service/MenuLinkBlock/meta.js +1 -0
- package/dist/render/lib/document/blocks/service/MenuLinkBlock/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/service/MenuLinkBlock/render.js +1 -0
- package/dist/render/lib/document/blocks/service/metas.d.ts +1 -0
- package/dist/render/lib/document/blocks/service/metas.js +1 -1
- package/dist/render/lib/document/blocks/service/renders.d.ts +1 -0
- package/dist/render/lib/document/blocks/service/renders.js +1 -1
- package/dist/render/lib/document/card-templates.js +1 -1
- package/dist/render/lib/document/footer-page-blocks.js +1 -1
- package/dist/render/lib/document/lazy-draws.js +1 -1
- package/dist/render/lib/menu-link.d.ts +8 -0
- package/dist/words.d.ts +26 -7
- package/dist/words.js +4 -4
- package/package.json +3 -3
- package/dist/chunks/EditorPreviewCheckout-XM22X3CX.js +0 -4
- package/dist/chunks/chunk-VIPMT34C.js +0 -320
- /package/dist/chunks/{chunk-T2R5CZ2F.js → chunk-CRXKVHUQ.js} +0 -0
- /package/dist/chunks/{chunk-VVWX2P2N.js → chunk-DX6JADLE.js} +0 -0
- /package/dist/chunks/{chunk-VIPMT34C.js.LEGAL.txt → chunk-LMOEQBT7.js.LEGAL.txt} +0 -0
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
import{$ as jI,B as NI,C as MI,D as HI,Da as ie,F as zI,G as hf,Ha as og,I as WI,Ia as tg,J as To,K as dr,Ka as Sl,L as GI,La as rg,M as rt,Ma as ag,N as yl,Q as UI,R as xf,Ra as ng,U as $I,V as If,X as gf,a as Dt,b as ff,fa as fr,h as FI,ha as KI,i as uf,j as pf,ja as qI,k as ao,l as AI,la as VI,m as LI,ma as Mo,n as fa,na as ma,o as tt,oa as YI,p as ua,pa as mt,q as pa,qa as bf,ra as ha,s as BI,v as bn,va as yn,x as DI,xa as XI,y as mf,za as ZI}from"./chunk-T2R5CZ2F.js";import{d as JI,e as Nt,f as QI,g as eg,j as xa,n as yf}from"./chunk-VVWX2P2N.js";var he=e=>typeof e=="string"&&e?e:void 0;var lg="en",wl=null,ig=lg,cg=null;function EZ(e,o,t){wl=e??null,ig=o||lg,cg=t??null}function ee(){return cg}function Sf(){return ig}function dg(){return wl}function sg(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=wl?wl[e]:void 0;if(typeof t=="function"){try{let r=he(t(o??{}));if(r)return r}catch{}return sg(e,o)}return sg(he(t)??e,o)}function fo(e,o,t,r){return i(t===1?e:o,{...r,n:t})}import{jsx as wf,Fragment as OF,jsxs as _F}from"react/jsx-runtime";import{createContext as RF,useContext as FF}from"react";var AF={mirrorHostStyles:!0,css:null,fontHrefs:[]},fg=RF(AF);function FZ({value:e,children:o}){return wf(fg.Provider,{value:e,children:o})}function Cf(){return FF(fg)}function ug(){let{css:e,fontHrefs:o}=Cf();return _F(OF,{children:[o.map(t=>wf("link",{rel:"stylesheet",href:t},t)),e?wf("style",{"data-sf-canvas-css":"",children:e}):null]})}import{jsx as LF}from"react/jsx-runtime";import{createContext as BF,useContext as DF}from"react";var pg=BF(void 0);function DZ({metadata:e,children:o}){return LF(pg.Provider,{value:e,children:o})}var mg=()=>DF(pg);import{jsx as to,Fragment as cF,jsxs as xl}from"react/jsx-runtime";import{useCallback as Il,useEffect as pt,useRef as oZ,useState as nF}from"react";import{SettingsSwitch as tZ}from"efficient-easel/panel";import{PagesIcon as rZ,StylesIcon as aZ}from"efficient-easel/rail";import{PaletteIcon as nZ}from"efficient-shell/icons/efficient";import{Subtree as sZ,TreeRow as dF}from"efficient-easel/tree";import{useEasel as fF}from"efficient-easel/easel";import{useEaselStrings as uF}from"efficient-easel/strings";import{createContext as NF,useContext as MF}from"react";var vf=NF(!1),HZ=()=>MF(vf);import{jsx as be,Fragment as wv,jsxs as Qn}from"react/jsx-runtime";import{Fragment as gz,useEffect as bz,useId as yz,useMemo as Cv,useRef as Sz,useState as Xt}from"react";import{useScreenDocument as Rv}from"efficient-easel/screen/components/ScreenDocumentContext";import{UiIcon as Im}from"efficient-easel/draw/client";import wz from"efficient-easel/screen/components/SidePanelHead";import{jsx as te,Fragment as Hr,jsxs as Mr}from"react/jsx-runtime";import{useEasel as pv,useRootFields as y6}from"efficient-easel/easel";import{Inspector as S6}from"efficient-easel/fields";import{SettingsGroup as w6}from"efficient-easel/panel";import{useEffect as C6,useRef as v6,useState as fc}from"react";import{jsx as pr,Fragment as gA,jsxs as bA}from"react/jsx-runtime";import{useState as Pg}from"react";import{SettingsDefaultReset as yA,SettingsField as SA}from"efficient-easel/panel";import{useEaselStrings as wA}from"efficient-easel/strings";import{AddIcon as CA}from"efficient-easel/icons";import{Button as vA}from"efficient-shell/ui";import{iconOf as kA,noGlyph as PA}from"efficient-easel/screen/lib/document/box-fields";import{jsx as oe,jsxs as Ht,Fragment as oA}from"react/jsx-runtime";import{parseHexColor as tA}from"efficient-shell/format";import{Button as Tf,IconButton as rA,Tooltip as aA}from"efficient-shell/ui";import{jsx as Mt,jsxs as qF}from"react/jsx-runtime";import{AccentIcon as VF}from"efficient-easel/icons";import{Button as YF,Tooltip as XF}from"efficient-shell/ui";import{jsx as ur,jsxs as Ig}from"react/jsx-runtime";import{ColorPicker as zF,HexInput as WF}from"efficient-shell/ui";import{SettingsDefaultReset as GF,SettingsField as UF}from"efficient-easel/panel";import{typedHex as kf}from"efficient-easel/pick";import{typedHex as HF}from"efficient-easel/pick";function hg(e){let o=new Set,t=[];return ao(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?HF(l):null;!c||o.has(c)||(o.add(c),t.push({name:s,value:c}))}}),t}var xg="Not set";function $F({value:e,onChange:o,label:t,id:r,caption:a,inherited:n,ariaLabel:s}){return ur(KF,{value:e,onChange:o,label:i(s??t),id:r,caption:a,inherited:n})}function jF(){let{theme:e}=ie();return hg(e).map(o=>({value:o.value,label:o.name}))}function KF({value:e,onChange:o,label:t,id:r,caption:a,inherited:n}){let s=jF(),l=e?null:kf(n??""),c=a!==void 0&&(!e||kf(a)!==kf(e))?a:null,d=u=>{u!==e&&o(u)};return Ig("div",{className:"sf-colour",children:[ur(zF,{id:r,value:e,onChange:d,label:t,presets:s,fallback:l??void 0,size:"md",align:"start"}),c!==null?ur("span",{className:"sf-colour-caption",children:c}):ur("span",{className:"sf-colour-hexwrap",children:ur(WF,{value:e||l||"",onChange:d,label:i("{label} hex code",{label:t}),placeholder:e||l?void 0:i(xg),className:l?"sf-colour-hex is-inherited":"sf-colour-hex",size:"md"})})]})}function Eo({label:e,icon:o,changed:t,hint:r,onReset:a,resetTo:n,children:s,...l}){return Ig(UF,{label:e,icon:o,htmlFor:l.id,changed:t,hint:r,action:a?ur(GF,{words:ee()?.panel,label:e,changed:!!t,detail:n,onReset:a}):void 0,children:[$F({...l,label:e}),s]})}function Cl({label:e,icon:o,value:t,inherited:r,resetTo:a,onChange:n,onReset:s,hint:l}){let c=!!t;return ur(Eo,{label:e,icon:o,value:t,inherited:c?void 0:r,onChange:n,changed:c,onReset:s,resetTo:a,hint:l})}function Pf(e){return tt(e).background}function ZF(e){let o=Dt(e.accent,Pf(e));return o===null?null:{ratio:o,grade:pa(o)}}function JF(e){let o=Pf(e),t=Dt(e.accent,o);return t===null?[]:BI(e.accent).filter(r=>{let a=Dt(r,o);return a!==null&&a>t&&pa(a)==="good"})}var QF={good:"Easy to read","large-only":ua["large-only"],hard:ua.hard};function gg({value:e,onChange:o}){let t=ZF(e),r=t?.grade,a=t&&t.grade!=="good"?JF(e):[];return Mt(Eo,{label:i("Main color"),icon:Mt(VF,{}),hint:t?i(QF[t.grade]):void 0,value:e.accent,onChange:n=>o({...e,accent:n}),children:a.length>0?Mt("div",{className:"w-full min-w-0",children:qF("div",{className:"sf-readability",children:[Mt("p",{className:"sf-readability-advice",children:eA(r,!0)}),Mt("div",{className:"sf-readability-suggestions",children:a.map(n=>{let s=Dt(n,Pf(e));return Mt(XF,{content:i("Use {colour}",{colour:n.toUpperCase()}),children:Mt(YF,{variant:"secondary",className:"sf-readability-suggestion",leftIcon:Mt("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 eA(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 nA,ChevronDownIcon as yg,ChevronUpIcon as sA,GroundIcon as lA,LayoutIcon as iA,SquareIcon as cA,TextSmallIcon as dA,TypeIcon as bg}from"efficient-easel/icons";var Sn=e=>i("Theme {n}",{n:e+1});function Sg({colors:e}){let o=tt(e),t=bn(e)??o.accent;return Ht("span",{className:"sf-theme-page",style:{background:o.background,color:o.text},"aria-hidden":!0,children:[oe("span",{className:"sf-theme-eyebrow",style:{color:o.muted},children:i("label")}),Ht("span",{className:"sf-theme-headline",children:[i("Heading")," ",oe("span",{style:{color:o.accent},children:i("accent")})]}),oe("span",{className:"sf-theme-body",children:i("body text")}),Ht("span",{className:"sf-theme-row",children:[oe("span",{className:"sf-theme-btn",style:{background:t,color:mf(e,o.accent)},children:i("button")}),oe("span",{className:"sf-theme-mini",style:{background:o.surface,borderColor:o.line},children:i("card")})]})]})}var Ef={"Text color":oe(bg,{}),"Label color":oe(dA,{}),Background:oe(lA,{}),"Panels & cards":oe(iA,{}),Borders:oe(cA,{}),"Button color":oe(nA,{}),"Button text color":oe(bg,{})};function fA({label:e,colorKey:o,value:t,onChange:r,idPrefix:a="sf-theme-ink"}){let n=`${a}-${o}`;return oe(Eo,{label:i(e),icon:Ef[e],id:n,value:t,onChange:s=>r(o,s)})}function uA({value:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button`,n=e!==void 0&&tA(e)===e.toLowerCase(),s=n?e:o;return oe(Eo,{label:i("Button color"),icon:Ef["Button color"],id:a,value:s,caption:n?s:i("Main"),onChange:t})}function pA({colors:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button-ink`,n=DI(e),s=mf(e,o),l=bn(e)??o,c=pa(Dt(s,l)??0);return oe(Eo,{label:i("Button text color"),icon:Ef["Button text color"],hint:n&&c!=="good"?i("{grade} on the button",{grade:i(ua[c])}):void 0,id:a,value:s,caption:n?s:i("Auto"),onChange:t})}var mA=[{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 Of({colors:e,onChange:o,idPrefix:t}){let r=tt(e);return oe(oA,{children:mA.map(a=>"colour"in a?oe(gg,{value:e,onChange:o},"colour"):"moduleBreak"in a?oe("div",{className:"sf-theme-module-break","aria-hidden":"true"},"module-break"):"button"in a?oe(uA,{value:e.button,accent:r.accent,onChange:n=>o({...e,button:n}),idPrefix:t},"button"):"buttonInk"in a?oe(pA,{colors:e,accent:r.accent,onChange:n=>o({...e,buttonInk:n}),idPrefix:t},"buttonInk"):oe(fA,{label:a.label,colorKey:a.key,value:r[a.key],onChange:(n,s)=>o({...e,[n]:s}),idPrefix:t},a.key))})}function vl({index:e,colors:o,selected:t,role:r="radio",open:a,editable:n=!0,onPick:s,onEdit:l,onChangeColors:c}){let d=tt(o),u=Sn(e),h=e<pf.length&&!o.brandInk?pf[e]:null,p=pa(Dt(d.text,d.background)??0),x=h?JSON.stringify(o)!==JSON.stringify(h):!1,g=a!==void 0;return Ht("div",{className:`sf-theme-card${t?" is-selected":""}`,children:[oe("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:oe(Sg,{colors:o})}),Ht("div",{className:"sf-theme-foot",children:[oe("span",{className:"sf-theme-name",children:u}),p!=="good"&&oe("span",{className:"sf-theme-warn",children:i(ua[p])}),n&&l&&g&&oe("span",{className:"sf-theme-edit",children:oe(aA,{content:a?i("Collapse"):i("Edit colors"),children:oe(rA,{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?oe(sA,{size:14}):oe(yg,{size:14})})})}),n&&l&&!g&&oe(Tf,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":i("Edit {name}",{name:u}),onClick:l,children:i("Edit")})]}),a&&Ht("div",{id:`sf-theme-colours-${e}`,className:"sf-theme-colours",children:[oe(Of,{colors:o,onChange:y=>c?.(y)}),h&&oe(Tf,{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 wg({colors:e,name:o,nameId:t,open:r,menuId:a,labelId:n,buttonRef:s,onClick:l,onKeyDown:c,onEdit:d}){return Ht("div",{className:"sf-secttheme-btn",children:[oe("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?oe(Sg,{colors:e}):oe("span",{className:"sf-secttheme-nopreview","aria-hidden":"true"})}),Ht("div",{className:"sf-theme-foot",children:[oe("span",{id:t,className:"sf-theme-name",children:o}),d&&oe(Tf,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":i("Edit {name}",{name:o}),onClick:d,children:i("Edit")}),oe("button",{type:"button",className:"sf-secttheme-caret","aria-hidden":"true",tabIndex:-1,onClick:l,children:oe(yg,{size:12,className:"sf-multi-caret","aria-hidden":"true"})})]})]})}import{jsx as kl,Fragment as hA,jsxs as Cg}from"react/jsx-runtime";import{Button as vg,Dialog as xA}from"efficient-shell/ui";function IA(e){return fo("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 kg({count:e,onCancel:o,onConfirm:t}){return Cg(xA,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Clear this site\u2019s colors?"),footer:Cg(hA,{children:[kl(vg,{variant:"secondary",onClick:o,children:i("Cancel")}),kl(vg,{variant:"danger",onClick:t,children:i("Clear colors")})]}),children:[kl("p",{children:IA(e)}),kl("p",{className:"mt-2 font-medium",children:i("This cannot be undone.")})]})}var TA=PA("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"),EA="Reset color",OA={selected:0,themes:[]};function _A(e){e(OA)}function Tg({value:e,onChange:o}){let t=e?.themes??[],r=t.length===0,a=ao(e),[n,s]=Pg(!1),l=wA(),[c,d]=Pg(null),u=(_,w)=>{o({...a,themes:a.themes.map((I,v)=>v===_?w:I)})},h=fa(a).accent,p=new Set(a.themes.map(_=>_.brandInk).filter(Boolean)),x=AI.filter(_=>!p.has(_)).map(_=>LI(h,_)),g=[...a.themes,...x],y=_=>{if(_<a.themes.length)return o({...a,selected:_});let w=[...a.themes,g[_]];o({...a,themes:w,selected:w.length-1})},E=()=>{let _=[...a.themes,{...tt(a.themes[a.selected])}];o({...a,themes:_,selected:_.length-1}),d(_.length-1)};return bA(gA,{children:[r?null:pr(SA,{label:i(EA),icon:kA(TA),labelId:"sf-theme-reset",action:pr(yA,{label:i("all theme colors"),words:l.panel,changed:!0,onReset:()=>s(!0)})}),n&&pr(kg,{count:t.length,onCancel:()=>s(!1),onConfirm:()=>{s(!1),_A(o)}}),pr("div",{className:"sf-theme-list",role:"radiogroup","aria-label":i("Theme"),children:g.map((_,w)=>pr(vl,{index:w,colors:_,selected:w===a.selected,open:c===w&&w<a.themes.length,editable:w<a.themes.length,onPick:()=>y(w),onEdit:()=>d(I=>I===w?null:w),onChangeColors:I=>u(w,I)},w))}),pr(vA,{variant:"secondary",leftIcon:pr(CA,{}),onClick:E,className:"sf-theme-add",children:i("Add new theme")})]})}import{jsx as Ni}from"react/jsx-runtime";import{SettingsDefaultReset as k5,SettingsField as P5}from"efficient-easel/panel";import{SquareIcon as T5}from"efficient-easel/icons";import{jsx as S,jsxs as Fa,Fragment as qt}from"react/jsx-runtime";import{cloneElement as tw,createContext as hM,useContext as xM,useEffect as IM,useId as rw,useRef as vi,useState as Nn}from"react";import{useEasel as tp,useSelectedHost as Ti}from"efficient-easel/easel";import{toDateKey as Vne,fromDateKey as Yne}from"efficient-shell/format";function RA(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.src=="string"}function zt(e){return typeof e=="string"?e:RA(e)?e.src:""}function AJ(e,o,t){return _f(e,o.split("."),t)}function _f(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=_f(p,a,t);return x!==p&&(u=!0),x});return u?{...l,[s]:h}:e}let d=_f(c,a,t);return d===c?e:{...l,[s]:d}}var FA=["upload","youtube"],AA="upload",DJ={upload:"Upload",youtube:"YouTube"},LA=["background","click"],BA="background",NJ={background:"Background",click:"Click to play"};function Og(e){return FA.includes(e)?e:AA}function _g(e){return LA.includes(e)?e:BA}var Eg=/^[A-Za-z0-9_-]{11}$/,DA=/^(?:www\.|m\.|music\.)?(?:youtube\.com|youtube-nocookie\.com|youtu\.be)$/;function Rg(e){let o=typeof e=="string"?e.trim():"";if(!o)return null;if(Eg.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:"||!DA.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&&Eg.test(a)?a:null}function Rf(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 Fg(e){return`https://i.ytimg.com/vi/${e}/maxresdefault.jpg`}function Ag(e){return`https://i.ytimg.com/vi/${e}/hqdefault.jpg`}var Ff="Play video";var Af={frame:"Video frame",image:"Image"},MJ={any:[{field:"loadingShows",is:"image"},{all:[{not:{field:"loadingShows",set:!0}},{field:"poster",set:!0}]}]};function Lf(e){let o=e.loadingShows;return o==="image"?"image":o!=null&&o!==""?"frame":zt(e.poster)?"image":"frame"}function HJ(e){return zt(Lf(e)==="image"?e.poster:e.videoFrame)||void 0}import{readHidable as Vt,hidableText as gM}from"efficient-easel/draw";import{FOLD_FIELD_MARKER as aw,LINK_FIELD_MARKER as bM,MEDIA_FIELD_MARKER as yM,SCAFFOLD_FIELD_MARKER as SM,TEXT_FIELD_MARKER as bt,foldMetaOf as yt,textFieldIdentifier as ose}from"efficient-easel/draw";import{jsx as zg}from"react/jsx-runtime";import{useCallback as zA}from"react";import{useEasel as WA}from"efficient-easel/easel";import{SettingsAction as GA}from"efficient-easel/panel";import{CORNER_SIDES as Pl,hasCornerSubset as wn,normalizeCornerSides as at}from"efficient-easel/screen/lib/content/style-keys";function Bf(e){return typeof e=="number"&&Number.isFinite(e)}function UJ(e,o){if(!Bf(e))return;let t=yl(rt(e));if(Object.keys(t).length===0)return;let r=t[Df];if(typeof r!="string")return t;let a=wn(o)?mr(r,at(o)??[]):r;return{...t,[NA]:a}}var NA="--sf-section-radius",Df="--sf-card-radius";function mr(e,o){return Pl.map(t=>o.includes(t)?e:"0").join(" ")}var Lg=[{value:"tl",label:"Top left"},{value:"tr",label:"Top right"},{value:"bl",label:"Bottom left"},{value:"br",label:"Bottom right"}];var MA="--sf-card-box-radius";function Nf(e){return typeof e=="number"&&Number.isFinite(e)}function qJ(e,o){if(!Nf(e))return;let t=yl(rt(e))[Df];if(typeof t!="string")return;let r=wn(o)?mr(t,at(o)??[]):t;return{[MA]:r}}function Bg(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 HA}from"efficient-easel/draw";function Cn(e){if(!e)return null;let o=e.lastIndexOf(":");return o>0?{ownerId:e.slice(0,o),slot:e.slice(o+1)}:null}function Tl(e,o,t){let r=Cn(t?.zone),a=r?HA(e,o,r.ownerId):null;return a&&r?{...a,slot:r.slot}:null}function Dg(e,o,t){let r=Tl(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}:Nf(l?.props?.cardCorners)?{can:!0,others:d,zone:r.zone,index:r.index,data:{...r.item,props:{...r.item.props,[a]:Bg(n,c)}}}:{can:!1,reason:"unset",others:d}}function Ng(e){return e.can?fo("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 Mg(e){return fo("Applied to {n} card","Applied to {n} cards",e)}function Hg(e,o){e.can&&o(e.zone,e.index,e.data)}import{useSectionOps as UA}from"efficient-easel/screen/lib/document/use-section-ops";var $A="apply-corners-to-siblings",jA="Apply to all cards";function KA({plan:e,onPress:o}){return zg(GA,{id:$A,label:i(jA),note:Ng(e),disabled:!e.can,doneLabel:Mg(e.others),onPress:o})}function Wg(){let{appState:e,config:o}=WA(n=>n),t=UA(),r=Dg(o,e.data.content??[],e.ui.itemSelector),a=zA(()=>{Hg(r,t.replaceComponent)},[r,t]);return zg(KA,{plan:r,onPress:a})}import{isShown as lL,lazyShowWhenContext as iL}from"efficient-shell/format";var hr="product",El="recordType",qA={key:hr,label:"Product",fields:[]},VA=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,YA=/^[a-z][A-Za-z0-9]*$/,XA=["text","date"],Gg=new Map,Ug=0;function ZA(e){if(typeof e.key!="string"||!VA.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===hr)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"||!YA.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(!XA.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 cQ(e){let o=e.map(ZA);for(let t of o)Gg.set(t.key,t);o.length&&(Ug+=1)}function Mf(){return[qA,...Gg.values()]}function Hf(){return Ug}function zf(e){let o=e?.[El];return typeof o!="string"?hr:o.trim()||hr}function Wf(e){return zf(e)===hr}var Gf="product",JA="tyre";var QA="productType",eL={[Gf]:"alloy-wheel",[JA]:"tyre"},oL=["alloy-wheel","tyre"];function $g(e,o){return Wf(o)?tL(o)??eL[e]??null:null}function tL(e){if(!Wf(e))return null;let o=e?.[QA];return typeof o=="string"&&oL.includes(o)?o:null}var Ol=null,jg=null;function rL(e,o){Ol=e,jg=o}function mQ(e){rL(e,null)}function hQ(){return Ol}function _l(){return jg==="dynamic"||Ol===Gf}function xQ(e){return $g(Ol??"",e)??"alloy-wheel"}import{addShowWhenFacts as aL}from"efficient-shell/format";import{showWhenOf as Uf,shownForOption as nL,truthy as sL,withRowRules as $f,withRowsShownWhen as jf,withShowWhen as uo}from"efficient-shell/format";var yQ=aL;function Kf(e,o,t){let r=!1,a={};for(let[n,s]of Object.entries(e))lL(Uf(s),o??{},t)?a[n]=s:r=!0;return r?a:e}function qg(e,o,t,r){let a=Tl(o,t,r);return{device:e,parentType:a?.item.type,parent:a?.item.props}}function Kg(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 Kg(t.not,o);for(let r of[t.all,t.any])if(Array.isArray(r)&&r.some(a=>Kg(a,o)))return!0;return!1}function TQ(e,o={}){return iL({parentType:()=>e.parent?.type??void 0,parent:()=>e.parent?.props??void 0,dynamicPage:()=>_l(),root:()=>e.appState?.data?.root?.props,...o})}var Vg=1;function cL(e){return rt(e)}function _Q(e){let o=cL(e);return o===null?{}:{"--sf-card-image-radius":`${o}px`}}var Yg=1,Xg="Corners";function dL(e){return rt(e)}function LQ(e,o){let t=dL(e);if(t===null)return null;let r=`${t}px`;return{borderRadius:wn(o)?mr(r,at(o)??[]):r}}var ht={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]]}},qf=Object.keys(ht),Jg=[2,3,4,6];function Vf(e,o){return qf.filter(t=>t===o||e===null||ht[t].across===e)}function Qg(e){return typeof e!="string"||e===""?null:ht[e]??null}function Zg(e,o){return o?6/e.acrossPhone:12/e.across}function eb(e){return[...e.lead??[],...e.desktop]}var fL="sf-wall--";function uL(e){return`${fL}${e}`}function DQ(e){let o=ht[e],t=`.${uL(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,Zg(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,Zg(o,!0),o.leadPhone)),r.push("}"),r.join("")}var Rl=12,ob=1,pL=3;var mL=3;function Yf(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 hL(e){return Yf(e,1,Rl)??mL}function HQ(e,o){return Yf(e,ob,pL)??(hL(o)===4?2:ob)}function zQ(e){return e==null||e===""?null:Yf(e,1,Rl)}var WQ="data-sf-span";function GQ(e){if(!e)return!1;if(e.type==="Grid")return!0;if(e.type==="GalleryB"){if(Qg(e.props?.layout))return!1;let o=e.props?.columns;return o!=null&&o!==""}return!1}import{jsx as xL}from"react/jsx-runtime";import*as IL from"efficient-easel/icons";function Fl(e){let o=e.replace(/(^|-)([a-z])/g,(r,a,n)=>n.toUpperCase()),t=IL[`${o}Icon`];return t?xL(t,{size:16}):null}import{isNodeList as gL}from"efficient-easel/data";var Ia=["top-left","top-center","top-right","left","center","right","bottom-left","bottom-center","bottom-right"],rb="bottom-left",ga=4,bL=ga+1,tb=40,yL=30,SL=100,wL=60,qQ=100;var Xf={"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 CL(e){let o=Ia.indexOf(vn(e));return{band:Math.floor(o/3),column:["start","center","end"][o%3]}}function vL(e){return 1+CL(e).band*(bL+1)}function VQ(e){return vL(e)+1}function vn(e){return Ia.includes(e)?e:rb}function YQ(e){let o=typeof e=="number"&&Number.isFinite(e)?e:0;return Math.max(-tb,Math.min(tb,Math.round(o)))}function XQ(e,o=wL){let t=typeof e=="number"&&Number.isFinite(e)?e:o;return Math.max(yL,Math.min(SL,Math.round(t)))}function Zf(e,o){let t=vn(o);return e.filter(r=>vn(r?.props?.placement)===t).length}function ab(e){return`${Xf[vn(e)]} already holds ${ga} boxes. Move one somewhere else first.`}function nb(e,o){let t=e.filter(r=>r?.props?.id!==o);return Ia.map(r=>{let a=Zf(t,r)>=ga,n=Xf[r];return a?{value:r,label:n,disabled:!0,title:ab(r)}:{value:r,label:n}})}function Al(e,o){let t=o===void 0?rb:vn(o?.props?.placement);return Zf(e,t)>=ga?ab(t):null}var Ll="HeroGroup";function kL(e){return Ia.map(o=>{let t=Zf(e,o);return{anchor:o,total:t,hidden:t-ga}}).filter(o=>o.hidden>0)}function Jf(e){let o=kL(e);return o.length===0?null:o.map(({anchor:t,total:r,hidden:a})=>{let n=Xf[t],s=a===1?"1 is not shown":`${a} are not shown`;return`${n} holds ${r} boxes. The published page draws the first ${ga}, so ${s}. ${a===1?"Move it":"Move them"} somewhere else.`}).join(" ")}function sb(e,o){let t=o;if(t?.type!==Ll)return null;let r=t.props?.id===void 0?"":String(t.props.id);return r?Al(Qf(e,r),t):null}function Qf(e,o){let t=ib(e,o);return t&&t.ownerType===TL?t.siblings:[]}function lb(e,o){let t=ib(e,o);return t?t.ancestorTypes.filter(r=>r===Ll).length:PL}var PL=1,TL="HeroSlide";function ib(e,o){let t=(r,a,n)=>{if(a>12||!r||typeof r!="object")return null;if(gL(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 EL}from"react/jsx-runtime";var eu="sf-hint-keep";function cb({children:e}){return EL("span",{className:eu,children:e})}import{jsx as Wt,Fragment as RL,jsxs as gb}from"react/jsx-runtime";import{useContext as FL,useEffect as AL,useId as LL,useState as bb}from"react";import{SettingsField as BL,SettingsSwitch as DL}from"efficient-easel/panel";import{AnchorIcon as NL}from"efficient-easel/icons";import{ScreenDocumentContext as ML}from"efficient-easel/screen/components/ScreenDocumentContext";import{Snippet as HL}from"efficient-shell/ui";import{slugify as zL}from"efficient-shell/format";import{slugify as OL}from"efficient-shell/format";function kn(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}var db=e=>OL(kn(e));var Bl="homepage";import{slugify as _L}from"efficient-shell/format";var fb=[{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 ub(e){return e.offersCommerce&&e.offersService?fb:fb.filter(o=>!o.needs||(o.needs==="commerce"?e.offersCommerce:e.offersService))}var ou="#popup:";function pb(e){return`${ou}${e}`}function mb(e){return e.startsWith(ou)&&e.slice(ou.length).trim()||null}function Pn(e){return e===Bl?"/":`/${e}`}function hb(e){return`/journal/${e}`}function see(e){return`/wheels/${e}`}function Dl(e,o){return`${Pn(e)}#${o}`}function xb(...e){let o=new Set,t=[];for(let r of e)for(let a of r?.content??[]){let n=kn(a?.props?.anchor);if(!n)continue;let s=_L(n);!s||o.has(s)||(o.add(s),t.push({slug:s,name:n}))}return t}function lee(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 Ib(e){return/^\/wheels\/[^/?#]+(?:[?#].*)?$/.test(e)}import{readHidable as WL}from"efficient-easel/draw";function yb({value:e,onChange:o,nameBox:t}){let r=WL(e).text,[a,n]=bb(!1),s=a||r.trim()!=="",l=LL();return gb(RL,{children:[Wt(BL,{label:i("Add an anchor"),labelId:l,icon:Wt(NL,{}),action:Wt(DL,{checked:s,ariaLabelledBy:l,onChange:c=>{n(c),!c&&r!==""&&o("")}})}),s&&t(e,o),s&&Wt(GL,{name:r})]})}function GL({name:e}){let o=FL(ML),t=o?.templateId?"":o?.currentSlug??"",[r,a]=bb("");AL(()=>a(xa()||window.location.origin),[]);let n=zL(e);if(!n||!t)return null;let s=`${r}${Dl(t,n)}`,l=s.replace(/^https?:\/\//,""),c=l.lastIndexOf("#");return Wt("div",{className:"sf-anchor-link",children:Wt(HL,{value:s,label:i("link"),size:"sm",children:gb("span",{className:"sf-anchor-link-text",children:[Wt("span",{className:"sf-anchor-link-path",children:l.slice(0,c)}),Wt("span",{className:"sf-anchor-link-hash",children:l.slice(c)})]})})})}import{AdjustIcon as wM,EyeIcon as CM,AnimationIcon as vM,BackgroundIcon as kM,BorderAllIcon as PM,BlockSectionIcon as TM,ColumnWidthsIcon as nw,ColumnsIcon as sw,CornerIcon as EM,DirectionDownIcon as OM,DirectionLeftIcon as _M,DirectionRightIcon as RM,DirectionUpIcon as FM,EditIcon as AM,GapIcon as LM,GridIcon as BM,GroundIcon as lw,HashIcon as iw,HeightIcon as DM,ImageIcon as NM,ListIcon as MM,LocationIcon as qS,PaddingBottomIcon as cw,PaddingLeftIcon as dw,PaddingRightIcon as fw,PaddingTopIcon as uw,PageIcon as HM,StickyIcon as zM,SearchIcon as WM,SquareIcon as GM,TypeIcon as UM,WidthIcon as $M}from"efficient-easel/icons";import{jsx as Ne,Fragment as xr,jsxs as Ir}from"react/jsx-runtime";import{CaptionIcon as UL,DateIcon as $L,FlagIcon as jL,TitleIcon as KL,ButtonIcon as qL,DollarIcon as VL,HashIcon as YL,LinkIcon as XL,NoteIcon as ZL,TagIcon as JL,TextLinesIcon as QL}from"efficient-easel/icons";var Sb={body:QL,button:qL,link:XL,label:JL,number:YL,price:VL,note:ZL,name:jL,date:$L,caption:UL,title:KL},wb={eyebrow:Ir(xr,{children:[Ne("path",{d:"M5 6.5h5"}),Ne("path",{d:"M5 12.5h14"}),Ne("path",{d:"M5 18h11"})]}),heading:Ir(xr,{children:[Ne("path",{d:"M6.5 5v14"}),Ne("path",{d:"M17.5 5v14"}),Ne("path",{d:"M6.5 12h11"})]}),intro:Ir(xr,{children:[Ne("path",{d:"M4 5.5v13"}),Ne("path",{d:"M8 7.5h12"}),Ne("path",{d:"M8 12h12"}),Ne("path",{d:"M8 16.5h8"})]}),value:Ir(xr,{children:[Ne("rect",{x:"2.5",y:"7",width:"19",height:"10",rx:"2"}),Ne("path",{d:"M6.5 12h7"})]}),quote:Ir(xr,{children:[Ne("path",{d:"M9.5 5.5C7 7.2 5.5 9.7 5.5 12.8h4v5.7h-5v-5.7"}),Ne("path",{d:"M19.5 5.5c-2.5 1.7-4 4.2-4 7.3h4v5.7h-5v-5.7"})]}),tag:Ir(xr,{children:[Ne("rect",{x:"3",y:"5.5",width:"18",height:"13",rx:"2.5"}),Ne("path",{d:"M8 9.5h8"}),Ne("path",{d:"M12 9.5v5"})]}),meta:Ir(xr,{children:[Ne("path",{d:"M4 7h16"}),Ne("path",{d:"M4 14h3.5"}),Ne("path",{d:"M10.5 14h3"}),Ne("path",{d:"M17 14h3"})]})};function tu({noun:e,size:o=14,strokeWidth:t=1.8,className:r,style:a}){let n=Sb[e];return n?Ne("span",{className:r,style:{display:"inline-flex",...a},"aria-hidden":"true",children:Ne(n,{size:o})}):Ne("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:wb[e]})}var Cee=Object.keys(Sb);var vee=Object.keys(wb);import{parseHexColor as eB}from"efficient-shell/format";var oB="#ffffff";function ru(e){return tB(e)?e:oB}function tB(e){return typeof e=="string"&&eB(e)===e.toLowerCase()}function Tee(e){return{"--bg":ru(e)}}function Cb(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(au(r,o,0))return{type:typeof a=="string"?a:"",props:n??{}}}return null}function au(e,o,t){if(t>12||!e||typeof e!="object")return!1;if(Array.isArray(e))return e.some(a=>au(a,o,t+1));let r=e.props;return r&&typeof r=="object"&&r.id===o?!0:Object.values(e).some(a=>au(a,o,t+1))}function vb(e,o){let t=e?.content;return Array.isArray(t)?Nl(t,o,0)??[]:[]}function Nl(e,o,t){if(t>12||!e||typeof e!="object")return null;if(Array.isArray(e)){for(let a of e){let n=Nl(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=Nl(a,o,t+1);if(n)return[r,...n]}return null}for(let a of Object.values(e)){let n=Nl(a,o,t+1);if(n)return n}return null}import{SettingsDefaultReset as po,SettingsDrill as jM,SettingsField as Ye,SettingsGroup as KM,SettingsGroupSub as gse,SettingsSegmented as qM,SettingsBorder as VM,SettingsSidesEach as YM,SettingsSwitch as rp,borderSides as XM,borderStartEach as ZM}from"efficient-easel/panel";import{ListField as JM}from"efficient-easel/fields";import{DisplayChips as QM}from"efficient-shell/ui";function ba(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 Ml(e,o){return ba(e)[o]!==!1}function nu(e,o,t){let r=ba(o)[t];return typeof r=="boolean"?r:Ml(e,t)}function kb(e){return Object.values(ba(e)).some(o=>o===!1)}function Pb(e){return Object.keys(ba(e)).length>0}function Tb(e,o,t){let r={...ba(e)};return t?delete r[o]:r[o]=!1,Object.keys(r).length?r:void 0}function Eb(e,o,t){return{...ba(e),[o]:t}}function _ee(e,o,t){let r=Ml(e,t),a=nu(e,o,t);return r&&a?"":!r&&!a?"hidden":r?"max-view-tablet:hidden":"view-tablet:hidden"}import{AlignmentGrid as eH,Checkbox as Cse,ColorSwatch as oH,CornersInput as tH,DatePicker as vse,DateTimePicker as rH,FOCAL_DEFAULT as kse,PictureTiles as aH,IconPicker as nH,IconButton as pw,InputNumber as VS,Slider as sH,Tooltip as ki}from"efficient-shell/ui";import{backendOf as rB}from"efficient-easel/screen/lib/session";var ze=rB,Hl=e=>e.blocks;async function Ob(e){let o=e.trim();if(!o)return null;let t=ze().geocode;if(!t)throw new Error("geocode_unavailable");return t.locate(o)}var su="Lookup busy \u2014 try again in a moment.",zl=e=>typeof e=="number"&&Number.isFinite(e);function Nee(e){return e.some(o=>{let t=o?.geocode;return t?t.pending||t.manual&&t.lat===void 0&&t.lng===void 0?!0:zl(t.lat)&&t.lat!==o.lat||zl(t.lng)&&t.lng!==o.lng:!1})}async function Mee(e,o,{geocode:t=Ob,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:su}})}}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=zl(l.lat)&&l.lat!==s.lat?l.lat:s.lat,d=zl(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 lH}from"efficient-easel/screen/lib/document/style-fields";import{jsx as PB}from"react/jsx-runtime";import{useEffect as TB,useState as EB}from"react";import{clearRangeOf as OB,markSelection as _B,useCaretEdit as RB}from"efficient-easel/copy";import{TextToolbar as FB}from"efficient-shell/ui";import{applyMark as jee,markupTools as Kee,MARKUP_TOOLS as qee,COPY_FIELD_TOOLS as Vee,STOREFRONT_MARKUP as Yee,tokenizeInline as Xee,stripInline as Zee,isSafeLinkHref as Nb}from"efficient-shell/markup";import{applyMark as hB,clearStyle as xB,markedAt as IB,markupTools as gB,MARKUP_TOOLS as bB,parseMarkup as yB,RETIRED_MARKS as SB,STOREFRONT_MARKUP as wB,tokenizeInline as Qee}from"efficient-shell/markup";var gr=["highlight","strong","quiet"],br={highlight:"Highlight",strong:"Bold",quiet:"Quiet"},nt={highlight:{kind:"wordHighlight",delimiter:"@@"},strong:{kind:"wordStrong",delimiter:"++"},quiet:{kind:"wordQuiet",delimiter:"^^"}},Ab=Object.fromEntries(gr.map(e=>[nt[e].kind,e])),Lb="data-sf-ws",Wl=["accent","text","labels"],Bb={accent:"Accent",text:"Text",labels:"Labels"},xt={accent:"var(--accent)",text:"var(--fg)",labels:"var(--fg-dim)"},aB=80,nB=120,sB=100,lB=900,iB=.5,cB=3,dB=-.1,fB=.5,uB=3,lu={font:null,size:null,weight:null,bold:null,italic:null,lineGap:null,textGap:null,colour:null},pB={highlight:{...lu},strong:{...lu},quiet:{...lu}};function _b(e,o,t){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,o),t))}function Rb(e,o,t){if(typeof e!="number"||!Number.isFinite(e))return null;let r=10**uB;return Math.round(Math.min(Math.max(e,o),t)*r)/r}function Fb(e){return typeof e=="boolean"?e:null}function mB(e){let o=typeof e?.font=="string"&&Mo.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:_b(e?.size,aB,nB),weight:_b(e?.weight,sB,lB),bold:Fb(e?.bold),italic:Fb(e?.italic),lineGap:Rb(e?.lineGap,iB,cB),textGap:Rb(e?.textGap,dB,fB),colour:t}}function Db(e){let o={};for(let t of gr)o[t]=e&&t in e&&e[t]?mB(e[t]):{...pB[t]};return o}function Wee(e){let o=Db(e),t={};for(let r of gr){let a=o[r],n=`--sf-ws-${r}`;if(a.font){let s=Mo.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`]=xt[a.colour])}return t}function Gee(e){let o=e?.word_styles??void 0,t={};for(let r of gr)o&&r in o&&(t[r]=o[r]??null);return Db(t)}var CB=new Set(["strong"]),Mb=gr.map(e=>({open:nt[e].delimiter,close:nt[e].delimiter,kind:nt[e].kind,...CB.has(e)?{wordStart:!0}:{}})),ooe=[{style:nt.highlight.kind,label:br.highlight,title:`${br.highlight} word style`},{style:nt.strong.kind,label:br.strong,title:`${br.strong} word style`},{style:nt.quiet.kind,label:br.quiet,title:`${br.quiet} word style`}],vB=new Set(Mb.map(e=>e.open)),yr=[...wB.filter(e=>!vB.has(e.open)),...Mb];function iu(e){return e.bullet?"- ":e.number!=null?`${e.number}. `:""}function Tn(e){return yB(typeof e=="string"?e:"",yr)}var kB=bB.map(e=>e.style).filter(e=>!SB.includes(e)).filter(e=>yr.some(o=>o.kind===e));function Hb(){return gB(kB)}var zb=Object.fromEntries(gr.map(e=>[nt[e].kind,nt[e].delimiter]));function Wb(e,o,t,r){let a=zb[r];if(!a)return hB(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 Gb(e,o,t,r){let a=zb[r];return a?o>=a.length&&e.slice(o-a.length,o)===a&&e.slice(t,t+a.length)===a:IB(e,o,t,r)}function Sr(e){return Tn(e).map(o=>iu(o)+$b(o.children)).join(`
|
|
2
|
-
`)}function Ub(e,o,t){return xB(e,o,t,yr)}function $b(e){return e.map(o=>o.kind==="text"?o.text:$b(o.children)).join("")}function AB(e,o,t){return _B(e,o,t,Wb)}function jb(e,o){let t=OB(o,e.length),r=Ub(e,t.start,t.end);return r.text===e?null:r}function LB(e){let[o,t]=EB(null);return TB(()=>{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 BB({target:e,value:o,onChange:t,disabled:r=!1,label:a="Formatting"}){let n=RB({target:e,onChange:t}),[s,l]=LB(e),c=p=>n(x=>{let g=AB(o,p,x);return l({start:g.selectionStart,end:g.selectionEnd}),g}),d=Hb(),u={};if(s)for(let p of d)u[p.style]=Gb(o,s.start,s.end,p.style);let h=r?null:jb(o,s);return PB(FB,{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=jb(o,x)??{text:o,selectionStart:x?.start??0,selectionEnd:x?.end??0};return l({start:g.selectionStart,end:g.selectionEnd}),g})}:void 0})}var cu=BB;import{deviceField as Ve}from"efficient-easel/screen/lib/document/device-fields";import{NO_CONTROL_FIELD as iH,NoControlMark as cH,noControlField as mw}from"efficient-easel/screen/lib/document/panel-no-control-mark";var du="__ownBox";function Kb(e){return!!e&&typeof e=="object"&&e[du]===!0}function Gl(e,o,t){return typeof e=="number"?e:typeof o=="number"?o:t}var Ul=void 0;import{phoneKey as Ra,tabletKey as dH}from"efficient-easel/draw";import{jsx as uu,Fragment as MB}from"react/jsx-runtime";import{createContext as HB,useContext as zB}from"react";var $l={ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},jl={Events:["posts"],SubscribeBlogs:["posts"]};var DB=["anchor"],NB=/^href$|Href$|^url$|Url$|^link$|^mailto$|^tel$/;function En(e){return DB.includes(e)||NB.test(e)}var fu={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"}}};fu.ContactLocations={"locations[].lat":{verb:"pii"},"locations[].lng":{verb:"pii"},"locations[].mapsUrl":{verb:"pii"},"locations[].geocode":{verb:"pii"}};var moe=Object.fromEntries(Object.entries($l).map(([e,o])=>[e,Object.keys(o)])),hoe=Object.fromEntries(Object.entries(jl).map(([e,o])=>[e,[...o]]));import{NoControlMark as WB}from"efficient-easel/screen/lib/document/panel-no-control-mark";var qb=HB(!1);function Vb({children:e}){return uu(qb.Provider,{value:!0,children:e})}function GB(){return zB(qb)}function Yb({name:e,children:o}){return!GB()||!e||!UB(e)||En(e)?uu(MB,{children:o}):uu(WB,{})}function UB(e){return/^[A-Za-z0-9_$]+$/u.test(e)}function eo(e,o,t){return e.some(r=>(typeof r=="object"?r.value:r)===t)?t:o}var pu="off",mu="none",hu=[{label:"None",value:"off"},{label:"1, 2, 3",value:"plain"},{label:"01, 02, 03",value:"padded"},{label:"N\xB001, N\xB002",value:"numero"}],xu=[{label:"None",value:"none"},{label:"Hairline",value:"hairline"}];function voe(e){return eo(hu,pu,e)}function koe(e){return eo(xu,mu,e)}var Xb="sf-card-index",On="sf-card-index",Poe="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",$B={plain:`counter(${On})`,padded:`counter(${On}, decimal-leading-zero)`,numero:`"N\xB0" counter(${On}, decimal-leading-zero)`};function Toe(e,o){return o==="off"?"":`.${e}{counter-reset:${On}}.${e} .${Xb}{counter-increment:${On}}.${e} .${Xb}::before{content:${$B[o]}}`}function Eoe(e){return e==="hairline"?"border border-line hover:border-accent":""}var Zb=[{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 fH}from"efficient-easel/draw";import{jsx as st}from"react/jsx-runtime";import{SettingsDefaultReset as jB,SettingsField as Jb}from"efficient-easel/panel";import{useSelectedHost as KB}from"efficient-easel/easel";import{FOCAL_DEFAULT as qB}from"efficient-shell/format";import{ImageIcon as Qb,PlayIcon as ey}from"efficient-easel/icons";import{MediaUploadField as VB}from"efficient-shell/ui";import{useContext as YB}from"react";import{ScreenDocumentContext as XB}from"efficient-easel/screen/components/ScreenDocumentContext";import{phoneKey as ZB}from"efficient-easel/draw";import{usePreviewDevice as JB}from"efficient-easel/draw/client";import{shownTier as oy}from"efficient-easel/screen/lib/document/device-fields";import{requestMediaPick as QB}from"efficient-easel/screen/lib/media-picker";import{useEaselHost as eD}from"efficient-easel/screen/lib/host";import{useEaselSession as oD}from"efficient-easel/screen/lib/session-context";function tD(e,o,t){if(oy(t)==="tablet")return null;let r=oy(t)==="mobile",a=typeof e[o]=="string"&&e[o]?String(e[o]):qB,n=ZB(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 rD(e,o){let t=KB(),r=JB();if(!e||!t)return null;let a=t.values??{};if(o&&!o(a))return null;let n=tD(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,Ul)}}function ty({value:e,onChange:o,label:t,accept:r,placeholder:a,focusKey:n,focusWhen:s,frameKey:l,fieldKey:c}){let d=eD(),u=oD(),h=i(t),p=r.startsWith("video"),x=rD(p?void 0:n,s),g=YB(XB),y=Iu(),E=l&&c?{video:c,frame:l}:null,_=k=>QB(d,{accept:r,title:h,...k?{file:k}:{}}).then(C=>!C||!E?C?.url??null:(y({[E.video]:C.url,[E.frame]:C.posterUrl??""}),null)),w=E?k=>k?o(k):y({[E.video]:"",[E.frame]:""}):o;if(g&&!g.capabilities.mediaEditing)return st(Jb,{label:h,icon:p?st(ey,{}):st(Qb,{}),children:st("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=zt(e),v=x?.phone&&I?st(jB,{words:ee()?.panel,label:i("Image focus"),changed:!!x.own,detail:i("{value} on desktop",{value:x.desktop}),onReset:x.clear}):void 0;return st(Jb,{label:h,icon:p?st(ey,{}):st(Qb,{}),action:v,children:st("div",{style:{flex:"1 1 auto",minWidth:0},children:st(VB,{value:I,onChange:w,onPick:_,accept:p?"video/*":"image/*",kind:p?"video":"image",placeholder:a===void 0?void 0:i(a),maxSizeBytes:ze(u).media.maxUploadBytes,...x?{focus:x.focus,onFocusChange:x.set}:{}})})})}import{jsx as ry}from"react/jsx-runtime";import{useId as aD}from"react";import{FieldSelect as nD}from"efficient-easel/fields";import{SettingsField as sD}from"efficient-easel/panel";function lD(e){return e.map(({value:o,label:t,note:r})=>({value:o,label:t,...r?{meta:r}:{}}))}function ay({label:e,options:o,value:t,onChange:r,emptyLabel:a,icon:n,hint:s}){let l=aD(),c=`${l}-label`,d=`${l}-button`,u=Array.isArray(t)?t:[];return ry(sD,{label:i(e),labelId:c,icon:n,hint:s,children:ry(nD,{id:d,multiple:!0,value:u,options:lD(o),onChange:r,placeholder:a===void 0?i("None"):i(a),ariaLabelledBy:`${c} ${d}`,inline:!0})})}import{jsx as Ze,jsxs as Cr,Fragment as bD}from"react/jsx-runtime";import{useCallback as hy,useContext as yD,useId as gy,useRef as xy,useState as Iy}from"react";import{ThemeIcon as SD}from"efficient-easel/icons";import{Button as wD,useClickOutside as CD}from"efficient-shell/ui";import{SettingsField as vD}from"efficient-easel/panel";import{ScreenDocumentContext as kD}from"efficient-easel/screen/components/ScreenDocumentContext";import{useCallback as Cu,useEffect as cy,useRef as Yl}from"react";import{currentEaselSession as dD}from"efficient-easel/screen/lib/session";import{useEaselSession as fD}from"efficient-easel/screen/lib/session-context";import{useSyncExternalStore as iD}from"react";var sy,gu=null,wr=null,Kl=0,bu=new Set;function yu(e){sy=e;for(let o of bu)o()}function Su(e){gu=e,Kl+=1,wr&&clearTimeout(wr),wr=null,yu(void 0)}function ql(e){Kl+=1,yu(e)}function It(e=250){gu&&(wr&&clearTimeout(wr),wr=setTimeout(()=>{wr=null;let o=gu;if(!o)return;let t=++Kl;o().then(r=>{t===Kl&&yu(r)}).catch(()=>{})},e))}function ny(){return sy}function cD(e){return bu.add(e),()=>{bu.delete(e)}}function Vl(){return iD(cD,ny,ny)}var wu=new Set;function ly(e){return wu.add(e),()=>{wu.delete(e)}}async function iy(){let e=(await Promise.allSettled([...wu].map(async o=>o()))).find(o=>o.status==="rejected");if(e)throw e.reason}import{WebsiteBackendError as uD}from"efficient-easel/screen/lib/backend-error";function dy(e=dD()){return(o,t,r)=>{let a=ze(e).theme;return a?a.update(o,r?{siteId:r}:void 0):Promise.reject(new uD("invalid","This backend stores no site theme."))}}function fy(e){return e.themeFromDocument?{status:"skipped",reason:"template"}:e.token?null:{status:"skipped",reason:"no-token"}}async function pD(e,o=dy()){let{themeFromDocument:t,token:r,siteId:a,patch:n}=e,s=fy({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 ya({themeFromDocument:e,tokenRef:o,siteId:t,onResult:r}){let a=Yl(null),n=Yl({}),s=fD(),l=Yl(r);l.current=r;let c=Yl(null),d=Cu(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=Cu(async()=>{a.current&&(clearTimeout(a.current),a.current=null);let p=n.current;n.current={};let x=await pD({themeFromDocument:e,token:o?.current,siteId:t,patch:p},dy(s));return d(x),x.status==="saved"&&It(),x.status==="failed"&&(n.current={...p,...n.current}),x},[e,o,t,d,s]),h=Cu((p,x=!1)=>{let g=fy({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 cy(()=>()=>{u()},[u]),cy(()=>ly(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 vu=[{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}],mD=vu.filter(e=>e.ink);function hD(e){let o={color:e.fg};for(let{role:t,token:r}of mD)o[r]=e[t];return o}var xD={fg:"var(--overlay-fg)",line:"color-mix(in srgb, var(--overlay-fg) 24%, transparent)",muted:"color-mix(in srgb, var(--overlay-fg) 76%, transparent)"},uy=Object.freeze(hD(xD));var Sa=-1,ID="sf-section-accent",py="Color",my=new Set(["CategoryBar","DocTabs"]),xte=new Set(["Flex"]),ku=0;function Ho(e){return e===Sa?null:typeof e=="number"&&Number.isInteger(e)&&e>=0?e:ku}function Pu(e){return e??Sa}function gD(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 vu)t[`--sf-sec-${r}`]=`var(${o}-${r}, var(--theme-${r}))`;return t}function Ite(e){let o=Ho(e.sectionAccent);return o===null?null:{className:ID,style:gD(o)}}var PD="Follow the page",Rte="Follow the slideshow",TD=e=>i("Editing {name} changes it everywhere.",{name:e});function ED({colors:e}){if(!e)return Ze("span",{className:"sf-secttheme-chip sf-secttheme-chip--none","aria-hidden":"true"});let o=tt(e);return Cr("span",{className:"sf-secttheme-chip","aria-hidden":"true",children:[Ze("i",{style:{background:o.background}}),Ze("i",{className:"sf-secttheme-chip-accent",style:{background:o.accent}})]})}function OD({themes:e,value:o,onPick:t,onEdit:r,menuId:a,followLabel:n}){return Cr("div",{className:"sf-multi-menu sf-secttheme-menu",id:a,role:"listbox",children:[n!==void 0&&Cr(bD,{children:[Cr("button",{type:"button",role:"option","aria-selected":o===null,className:`sf-secttheme-item${o===null?" is-active":""}`,onClick:()=>t(Sa),children:[Ze(ED,{}),Ze("span",{className:"sf-secttheme-name",children:i(n)})]}),Ze("div",{className:"sf-secttheme-sep",role:"presentation"})]}),o!==null&&e[o]&&Ze("p",{className:"sf-secttheme-oncard",role:"presentation",children:i("{name} is on this section",{name:Sn(o)})}),e.map((s,l)=>l===o?null:Ze(vl,{role:"option",index:l,colors:s,selected:!1,onPick:()=>t(l),onEdit:()=>r(l)},l))]})}function _D({index:e,colors:o,onChange:t,onDone:r}){let a=Sn(e),n=gy();return Cr("div",{className:"sf-secttheme-sheet",children:[Cr("div",{className:"sf-secttheme-sheet-head",children:[Ze("span",{children:a}),Ze(wD,{variant:"secondary",className:"sf-secttheme-done",onClick:r,children:i("Done")})]}),Ze("div",{className:"sf-secttheme-rows",children:Ze(Of,{colors:o,onChange:t,idPrefix:n})}),Ze("p",{className:"sf-secttheme-warn",children:TD(a)})]})}function by({value:e,onChange:o,followLabel:t,hint:r}){let{theme:a,setTheme:n}=ie(),s=ao(a),l=yD(kD),c=l?.tokenRef,d=l?.siteId??null,u=!l?.capabilities?.hasSiteTheme,{persist:h,flush:p}=ya({themeFromDocument:u,tokenRef:c,siteId:d}),x=ao(s),g=x.themes,y=Ho(e),E=y!==null?g[y]:void 0,_=E??(g.length?fa(x):void 0),[w,I]=Iy(!1),[v,k]=Iy(null),C=xy(null),F=xy(null),D=gy(),T=hy(()=>{I(!1),k(null)},[]),R=hy(()=>{!w&&v===null||(p(),T())},[w,v,T,p]);CD(C,R);let N=O=>{o(O),T()},b=O=>{if(v===null)return;let A=g.map((G,X)=>X===v?O:G),H={...x,themes:A};n(H),h({selected_preset:H.selected,theme_presets:H.themes})};return Cr("div",{className:"sf-secttheme",ref:C,children:[Ze(vD,{label:i("Theme"),icon:Ze(SD,{}),labelId:`${D}-label`,hint:r,children:Ze(wg,{colors:_,onEdit:y!==null?()=>{k(y),I(!1)}:void 0,name:E?Sn(y):i(t??PD),nameId:`${D}-value`,labelId:`${D}-label`,open:w,menuId:D,buttonRef:F,onClick:()=>{k(null),I(O=>!O)},onKeyDown:O=>{O.key==="Escape"&&(w||v!==null)&&(O.preventDefault(),T())}})}),w&&v===null&&Ze("div",{onKeyDown:O=>{O.key==="Escape"&&(O.preventDefault(),T(),F.current?.focus())},children:Ze(OD,{themes:g,value:y,onPick:N,onEdit:O=>{k(O),I(!1)},menuId:D,followLabel:t})}),v!==null&&g[v]&&Ze(_D,{index:v,colors:g[v],onChange:b,onDone:()=>{p(),T(),F.current?.focus()}})]})}import{jsx as yy}from"react/jsx-runtime";import{useId as RD}from"react";import{FieldSelect as FD}from"efficient-easel/fields";import{SettingsField as AD}from"efficient-easel/panel";function LD(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 Mte({label:e,options:o,fallback:t,value:r,onChange:a,placeholder:n,bare:s=!1,icon:l}){let c=RD(),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=yy(FD,{id:u,value:p,options:LD(o),onChange:a,placeholder:g,searchPlaceholder:g,...s?{ariaLabel:x}:{ariaLabelledBy:`${d} ${u}`},searchable:!0,groupCount:!0,inline:!0});return s?y:yy(AD,{label:x,labelId:d,icon:l,children:y})}import{jsx as kr,jsxs as fN}from"react/jsx-runtime";import{SettingsField as jy}from"efficient-easel/panel";import{LinkIcon as uN}from"efficient-easel/icons";import{LinkPicker as pN,TextLinkField as mN}from"efficient-shell/ui";import{useEffect as $y,useMemo as Ql,useRef as hN,useState as Jl}from"react";import{currentEaselSession as BD}from"efficient-easel/screen/lib/session";function Sy(){return BD().auth.token}import{currentEaselSession as xN}from"efficient-easel/screen/lib/session";import{useScreenDocument as IN}from"efficient-easel/screen/components/ScreenDocumentContext";var DD=()=>({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 wy(e,o,t){if(!e)return"page";if(mb(e))return"popup";if(e.startsWith("/journal/"))return"blog";if(Ib(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 Tu(e,o){let t=DD(),r=e.pages.map(u=>({value:Pn(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:xb(...u.docs).map(h=>({value:Dl(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:hb(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:pb(h.slug),label:h.title||h.slug})),placeholder:t.choosePopup};case"custom":return{type:"text"}}},c=ub(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=>wy(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=>wy(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 gN}from"efficient-easel/screen/lib/session-context";var $=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function no(e,o){if(typeof e=="string")return e||o;if(e&&typeof e=="object"&&"text"in e){let t=e.text;return he(t)??o}return o}function Cy(e,o){return $(e)??o}function Gt(e,o){return typeof e=="boolean"?e:o}function Xl(e,o){if(!Array.isArray(e))return o;let t=e.map(r=>typeof r=="string"?r:no(r?.text,"")).map(r=>r.trim()).filter(Boolean);return t.length?t:o}var ky=["delay","scroll","exit"],Py=["all","chosen","except"],Ty=["visit","days","never","once"],ND=["all","desktop","phone"],MD=["stop","continue"],Ey={min:0,max:60},Oy={min:10,max:90},_y={min:1,max:90},Wo={autoOpen:!1,trigger:"delay",autoOpenDelaySec:15,scrollPercent:50,showOn:"all",showOnPages:[],devices:"all",hideAfter:"days",hideDays:7,afterSubmit:"stop",startDate:null,endDate:null};function zo(e,o,t){return typeof o=="string"&&e.includes(o)?o:t}function wa(e,o,t){let r=Cy(e,t);return Math.min(o.max,Math.max(o.min,Math.round(r)))}function HD(e){return typeof e.hideAfter=="string"?zo(Ty,e.hideAfter,Wo.hideAfter):e.oncePerSession===!0?"visit":e.oncePerSession===!1?"never":Wo.hideAfter}function zD(e){return Array.isArray(e)?e.map(o=>typeof o=="string"?o.trim():"").filter(Boolean).map(o=>o.startsWith("/")?o:`/${o}`):[]}function vy(e){if(typeof e!="string")return null;let o=e.trim();return/^\d{4}-\d{2}-\d{2}$/.test(o)?o:null}function Ry(e){let o=e??{},t=Wo;return{autoOpen:Gt(o.autoOpen,t.autoOpen),trigger:zo(ky,o.trigger,t.trigger),autoOpenDelaySec:wa(o.autoOpenDelaySec,Ey,t.autoOpenDelaySec),scrollPercent:wa(o.scrollPercent,Oy,t.scrollPercent),showOn:zo(Py,o.showOn,t.showOn),showOnPages:zD(o.showOnPages),devices:zo(ND,o.devices,t.devices),hideAfter:HD(o),hideDays:wa(o.hideDays,_y,t.hideDays),afterSubmit:zo(MD,o.afterSubmit,t.afterSubmit),startDate:vy(o.startDate),endDate:vy(o.endDate)}}import{parseHexColor as WD}from"efficient-shell/format";var Oo="#000000";var Eu="popup",GD=Ia,UD=["auto","full"],$D=["inside","outside","none"],jD={min:240,max:1440},KD={min:0,max:100},_n={placement:"center",fullWidth:!1,width:720,height:"auto",tintColor:Oo,tintOpacity:60,outsideClick:!0,closeButton:"inside"};function qD(e,o){let t=typeof e=="string"?e.trim():"";return t&&WD(t)===t.toLowerCase()?t:o}function Fy(e,o=_n){let t=e??{},r=o;return{placement:zo(GD,t.placement,r.placement),fullWidth:Gt(t.fullWidth,r.fullWidth),width:wa(t.width,jD,r.width),height:zo(UD,t.height,r.height),tintColor:qD(t.tintColor,r.tintColor),tintOpacity:wa(t.tintOpacity,KD,r.tintOpacity),outsideClick:Gt(t.outsideClick,r.outsideClick),closeButton:zo($D,t.closeButton,r.closeButton)}}var Ay="cart-drawer",sre="cart-drawer",VD={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 lre(e,o){return o===0?e.subtitleEmpty:o===1?e.subtitleOne:e.subtitleMany.replace("{count}",String(o))}function ire(e){let o=e??{},t=VD;return{kickerBadge:no(o.kickerBadge,t.kickerBadge),kickerText:no(o.kickerText,t.kickerText),titleLead:no(o.titleLead,t.titleLead),titleAccent:no(o.titleAccent,t.titleAccent),subtitleEmpty:no(o.subtitleEmpty,t.subtitleEmpty),subtitleOne:no(o.subtitleOne,t.subtitleOne),subtitleMany:no(o.subtitleMany,t.subtitleMany),leadTimeValue:no(o.leadTimeValue,t.leadTimeValue),shipsToFallback:no(o.shipsToFallback,t.shipsToFallback),promises:Xl(o.promises,t.promises),emptyKicker:no(o.emptyKicker,t.emptyKicker),emptyBody:no(o.emptyBody,t.emptyBody)}}var cre={..._n,width:520,tintOpacity:68};var By="consent-banner",pre="consent-banner";var YD=[{value:"bar",label:"Bar"},{value:"card",label:"Card"}],mre="Layout",Ly={layout:"bar"},XD=e=>YD.some(o=>o.value===e);function hre(e){let o=no((e??{}).layout,Ly.layout);return{layout:XD(o)?o:Ly.layout}}var xre={..._n,placement:"bottom-center",fullWidth:!0,width:440,tintOpacity:0,outsideClick:!1,closeButton:"none"};var ZD="consentWords",JD=["eyebrow","notice","accept","reject","choose"];function Ou(e){let o=(e??{})[ZD];return typeof o=="string"&&JD.includes(o)?o:null}function _u(e){let o=e?.props;return o?Ou(o)!==null?!0:Object.values(o).some(t=>Array.isArray(t)&&t.some(r=>r&&typeof r=="object"&&"props"in r&&_u(r))):!1}var QD=["meta","eyebrow","heading","body","statName","statValue","formEyebrow","formHeading","formIntro","fieldLabel","option","finePrint","dismiss","doneHeading","doneBody"],bre={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"},eN={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"},yre={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 Dy(e){let o={};for(let t of QD){let r=mt(e[eN[t]]);r&&(o[t]=r)}return o}var Ny={heading:"Join our email list",placeholder:"Email address",buttonLabel:"Subscribe"},oN={lead:"We accept"},My={...oN,methods:[],size:"sm",align:"start",dataSource:"shop-payment-methods"},Go="site-footer";var wre=Go,Cre={desktop:!0,tablet:!0,mobile:!0},vre={desktop:!1,tablet:!1,mobile:!1},Ru=1,Hy=6,kre=Array.from({length:Hy-Ru+1},(e,o)=>Ru+o),Zl={desktop:6,tablet:3,mobile:2},tN={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}},vr=e=>Math.min(Math.max(Math.round(e),Ru),Hy);function Pre(e){if(typeof e=="number")return tN[vr(e)]??{desktop:vr(e),tablet:vr(e),mobile:vr(e)};if(e&&typeof e=="object"){let o=e;return{desktop:vr(o.desktop??Zl.desktop),tablet:vr(o.tablet??Zl.tablet),mobile:vr(o.mobile??Zl.mobile)}}return{...Zl}}var Fu="subscribe-popup",Lre="subscribe-popup",rN=[Fu,Go,Ay,By];function Wy(e){return rN.includes(e)}var aN=["right","left"],nN={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:Wo.autoOpen,autoOpenDelaySec:Wo.autoOpenDelaySec,formSlug:"",trigger:Wo.trigger,scrollPercent:Wo.scrollPercent,showOn:Wo.showOn,showOnPages:[],hideAfter:Wo.hideAfter,hideDays:Wo.hideDays,formSide:"right",valuePanelOnPhone:!1,sectionAccent:void 0,sectionCorners:void 0,sectionCornerSides:void 0,textStyles:{}},We=no,sN=Gt,Gy=Xl;function zy(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 lN(e,o){return Array.isArray(e)?Gy(e,[]):o}function iN(e,o){return Array.isArray(e)?e.map(t=>{let r=t??{};return{label:We(r.label,""),value:We(r.value,"")}}).filter(t=>t.label||t.value):o}function Dre(e){let o=e??{},t=nN,r=Ry(o);return{metaLabel:We(o.metaLabel,t.metaLabel),issueLabel:zy(o.issueLabel,t.issueLabel),issueNumber:zy(o.issueNumber,t.issueNumber),kicker:We(o.kicker,t.kicker),heading:We(o.heading,t.heading),deck:We(o.deck,t.deck),stats:iN(o.stats,t.stats),formLabel:We(o.formLabel,t.formLabel),formHeading:We(o.formHeading,t.formHeading),formIntro:We(o.formIntro,t.formIntro),firstNameLabel:We(o.firstNameLabel,t.firstNameLabel),firstNamePlaceholder:We(o.firstNamePlaceholder,t.firstNamePlaceholder),emailLabel:We(o.emailLabel,t.emailLabel),emailPlaceholder:We(o.emailPlaceholder,t.emailPlaceholder),interestsLabel:We(o.interestsLabel,t.interestsLabel),interests:Gy(o.interests,t.interests),frequencyLabel:We(o.frequencyLabel,t.frequencyLabel),frequencies:lN(o.frequencies,t.frequencies),submitText:We(o.submitText,t.submitText),finePrint:We(o.finePrint,t.finePrint),dismissText:We(o.dismissText,t.dismissText),emailInvalidText:We(o.emailInvalidText,t.emailInvalidText),submitErrorText:We(o.submitErrorText,t.submitErrorText),successHeading:We(o.successHeading,t.successHeading),successBody:We(o.successBody,t.successBody),keepBrowsingText:We(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:zo(aN,o.formSide,t.formSide),valuePanelOnPhone:sN(o.valuePanelOnPhone,t.valuePanelOnPhone),sectionAccent:o.sectionAccent,sectionCorners:o.sectionCorners,sectionCornerSides:o.sectionCornerSides,textStyles:Dy(o)}}function cN(e,o=Math.random){for(;;){let t=`popup-${Math.floor(o()*2176782336).toString(36).padStart(6,"0")}`;if(!e.has(t))return t}}function dN(e){return{root:{props:{title:e,kind:Eu}},content:[],zones:{}}}function Uy(e,o,t){return{slug:cN(o,t),title:e,kind:"lightbox",layout:dN(e)}}function Rn(e){return e?.root?.props?.kind===Eu}function Ky(e){let o=new Map;return(t="")=>{let r=Sy(),a=o.get(t);if(!a||a.token===null&&r!==null){let n=r||!xN().usesBridgedToken?e(r??"",t).catch(()=>[]):Promise.resolve([]);return o.set(t,{promise:n,token:r}),n}return a.promise}}var bN=Ky(async(e,o)=>{let t=o?{siteId:o}:void 0,{pages:r}=ze();return r.linkTargets?r.linkTargets(t):(await r.list(t)).map(a=>({id:a.id,slug:a.slug,label:a.label,layout:null}))}),yN=Ky(async(e,o)=>await ze().blog?.posts(o?{siteId:o}:void 0)??[]);function SN({value:e,onChange:o,label:t="Link",data:r,filters:a}){let n=Ql(()=>Tu(r,a),[r,a]),s=i(t);return kr(jy,{label:s,icon:kr(uN,{}),children:kr(pN,{value:e,onChange:l=>o(l),kinds:n.kinds,rules:n.rules,filtersFor:n.filtersFor,label:s})})}function qy(){let{siteId:e,capabilities:o}=IN(),{offersCommerce:t,hasBlog:r}=o,[a,n]=Jl([]),[s,l]=Jl([]),[c,d]=Jl([]),[u,h]=Jl(null),p=gN().chrome,x=p?.products?.list,g=p?.linkFilters,y=g?void 0:p?.linkRow,E=hN(!0);$y(()=>(E.current=!0,()=>{E.current=!1}),[]),$y(()=>{let I=!0;return bN(e??void 0).then(v=>I&&E.current&&n(v)),r&&yN(e??void 0).then(v=>I&&E.current&&l(v)),t&&x?.().then(v=>I&&E.current&&d(v)),t&&g?g.load(e).catch(()=>null).then(v=>I&&E.current&&h(()=>v)):h(null),()=>{I=!1}},[e,t,r,x,g]);let _=Ql(()=>({pages:a.filter(I=>!Wy(I.slug)&&!Rn(I.layout)).map(I=>({slug:I.slug,title:I.label,docs:[I.layout]})),popups:a.filter(I=>I.slug===Fu||Rn(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]),w=Ql(()=>u?u(_.pages):null,[u,_]);return{data:_,filters:w,pages:a,offersCommerce:t,HostLinkRow:y}}function oae({label:e,icon:o,text:t,onTextChange:r,link:a,onLinkChange:n}){let{data:s,filters:l}=qy(),c=Ql(()=>Tu(s,l),[s,l]),d=i(e);return kr(jy,{label:d,icon:o,children:kr(mN,{label:d,text:t,onTextChange:r,link:a,onLinkChange:u=>n(u),kinds:c.kinds,rules:c.rules,filtersFor:c.filtersFor})})}function Vy({value:e,onChange:o,label:t="Link"}){let r=typeof e=="string"?e:"",{data:a,filters:n,pages:s,offersCommerce:l,HostLinkRow:c}=qy(),d=a.pages.map(h=>Pn(h.slug)),u=l&&c&&(r==="/"||d.includes(r))?c:void 0;return fN("div",{children:[kr(SN,{value:r,onChange:o,label:t,data:a,filters:n}),u&&kr(u,{value:r,onChange:o,pages:s})]})}import{UiIcon as YS}from"efficient-easel/draw/client";import{phoneKey as ON,tabletKey as _N}from"efficient-easel/draw";import{AUTO_RULES as vN,FOLLOW_RULES as kN,VIEW_DESKTOP_MIN as PN,VIEW_TABLET_MIN as Zy,isAuto as TN,resolveViewValue as EN}from"efficient-easel/draw";import{VIEW_DESKTOP_MIN as wN,VIEW_TABLET_MIN as Xy}from"efficient-easel/screen/lib/content/view-tiers";var Au="v1",CN=e=>e==="v2"?Xy:800,Yy={"view-tablet":Xy,"view-desktop":wN,"view-wide":CN(Au)};function aae(e){let o=e.startsWith("max-"),t=o?e.slice(4):e;if(t in Yy)return{px:Yy[t],max:o};let r=/^(max|min)-\[(\d+)px\]$/.exec(e);return r?{px:Number(r[2]),max:r[1]==="max"}:void 0}function ei(){return Au==="v2"?vN:kN}var Jy=.02,Qy=`(min-width: ${Zy}px) and (max-width: ${PN-Jy}px)`,Ca=`(max-width: ${Zy-Jy}px)`;function Ut(e,o,t,r,a=ei()){let n=EN(e,o,t,r,a),s={},l=(c,d)=>!TN(c)||d!=null&&d!==o;return l(t,n.tablet)&&(s.tablet=n.tablet),l(r,n.phone)&&(s.phone=n.phone),s}var Uo={min:10,max:200,step:10};function RN(e,o){let t=$(e),r=$(o);if(!(t===void 0&&r===void 0))return{paddingTop:t,paddingBottom:r}}var FN="sf-pad-top-phone",AN="sf-pad-bottom-phone",LN="--sf-pad-t-phone",BN="--sf-pad-b-phone",DN="sf-pad-left-phone",NN="sf-pad-right-phone",MN="--sf-pad-l-phone",HN="--sf-pad-r-phone",zN="sf-pad-top-tablet",WN="sf-pad-bottom-tablet",GN="sf-pad-left-tablet",UN="sf-pad-right-tablet",$N="--sf-pad-t-tablet",jN="--sf-pad-b-tablet",KN="--sf-pad-l-tablet",qN="--sf-pad-r-tablet";function oi(e){let o=RN(e.top,e.bottom),t=Lu({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 VN=[["top","paddingTop",[zN,$N],[FN,LN]],["bottom","paddingBottom",[WN,jN],[AN,BN]],["left","paddingLeft",[GN,KN],[DN,MN]],["right","paddingRight",[UN,qN],[NN,HN]]];function Lu(e,o,t={},r=e){let a={},n={},s=[];for(let[l,c,...d]of VN){let u=$(e[l]);u!==void 0&&(a[c]=u);let h=Ut("spacing",$(r[l]),$(t[l]),$(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 eS(e,o,t){let r=$(e)??t,a=$(o);return r===void 0?a:a===void 0?r:r+a}function ti(e,o={}){return{top:eS(e.padTop,e.sectionPaddingTop,o.top),bottom:eS(e.padBottom,e.sectionPaddingBottom,o.bottom)}}var Bu={top:"sectionPaddingTop",bottom:"sectionPaddingBottom",left:"sectionPaddingLeft",right:"sectionPaddingRight"};function oS(e,o=Bu,t=!0){let r={};for(let a of t?["top","bottom","left","right"]:["top","bottom"])r[a]=e[o[a]],r[`${a}Tablet`]=e[_N(o[a])],r[`${a}Phone`]=e[ON(o[a])];return r}function uae(e){return oi(e)}function pae(e,o){let t=r=>typeof r=="number"?r+o:void 0;return oi({...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 ri,buttonBorderOf as YN,buttonFillOpacityOf as XN,buttonPadSidesOf as ZN}from"efficient-easel/draw";var JN="px-6 py-4",QN=4,ai=e=>{let o=new RegExp(`\\bp${e}-(?:\\[(\\d+)px\\]|(\\d+))`).exec(JN);if(!o)throw new Error(`BUTTON_PAD_CLASSES has no p${e}`);return o[1]!==void 0?Number(o[1]):Number(o[2])*QN},yae={top:ai("y"),right:ai("x"),bottom:ai("y"),left:ai("x")},rS="var(--btn)";function e2(e){let o=e.variant==="ghost",t=XN(e.buttonFillOpacity),r=YN(e.buttonBorder),a=he(e.buttonColor);return{fillOpacity:t??(o?0:100),border:{width:r?.width??1,color:r?.color??a??(o?"currentColor":rS)},changed:t!==void 0||r!==void 0}}function Sae(e){let o=e2(e);if(!o.changed)return null;let t=he(e.buttonColor)??rS;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 o2="var(--sf-button-radius, 0)";function wae(e){let o=$(e.buttonCorners),t=at(e.buttonCornerSides);if(o===void 0&&t===null)return null;let r=o===void 0?o2:`${Math.max(0,o)}px`;return{borderRadius:t===null?r:mr(r,t)}}function Cae(e){let o=a=>ZN({top:e[`${ri.top}${a}`],right:e[`${ri.right}${a}`],bottom:e[`${ri.bottom}${a}`],left:e[`${ri.left}${a}`]})??{},{classes:t,style:r}=Lu(o(""),o("Phone"),o("Tablet"));return Object.keys(r).length?{className:t.join(" "),style:r}:null}var tS="upper";function aS(e,o,t){let r=e&&typeof e=="object"?e:{},a=he(r.textStyle),n=a?he(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=he(r.case)??tS;return`${l} \xB7 ${c[d]??c[tS]}`}import{usePreviewParts as uH}from"efficient-easel/draw/client";import{encodePartId as pH}from"efficient-easel/draw";import{DEFAULT_EASEL_STRINGS as mH,useEaselStrings as hH}from"efficient-easel/strings";var t2=["auto","fixed","screen"],r2=["px","%"];var a2="var(--sf-header-h, 88px)",Du={min:40,max:2e3,step:10,fallback:600},Nu={min:10,max:200,step:5,fallback:100},n2="sf-section-minh",Mu="grid-cols-[minmax(0,1fr)]",nS={base:"--sf-section-minh",small:"--sf-section-minh-s"},lS=e=>typeof e=="string"&&t2.includes(e),s2=e=>typeof e=="string"&&r2.includes(e);function ni(e){let o=lS(e.sectionHeightMode)?e.sectionHeightMode:"auto",t=o==="screen"?"%":s2(e.sectionHeightUnit)?e.sectionHeightUnit:"px",r=o==="screen"?Nu.fallback:Du.fallback,a=typeof e.sectionHeightValue=="number"?e.sectionHeightValue:r;return{mode:o,value:a,unit:t}}function iS(e){let{mode:o,value:t,unit:r}=ni(e);if(o==="auto")return;if(o==="fixed"&&r==="px")return[`${t}px`,null];let a=t/100,n=s=>o==="screen"?`(100${s} - ${a2})`:`100${s}`;return[`calc(${n("vh")} * ${a})`,`calc(${n("svh")} * ${a})`]}function cS(e){let o=iS(e);if(!o)return;let[t,r]=o;return{display:"grid",[nS.base]:t,...r?{[nS.small]:r}:{}}}var kae=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),va="Height",l2="sf-section-minh-phone",sS={base:"--sf-section-minh-p",small:"--sf-section-minh-ps"};function Hu(e){return lS(e.sectionHeightModePhone)}function Pae(e){return ni({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})}function i2(e){let o=cS(e),t=Hu(e)?iS({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})??(o?["auto",null]:void 0):void 0;if(!o&&!t)return null;let r=[n2,Mu],a={...o??{}};return t&&(r.push(l2),a[sS.base]=t[0],t[1]&&(a[sS.small]=t[1])),{className:r.join(" "),style:a}}function c2(e){return i2(e)!==null}var d2=`grid ${Mu}`,dS="h-full",f2=`max-view-tablet:grid ${Mu}`;function fS(e){return c2(e)?cS(e)?d2:f2:""}var si="Stick to top",$t={min:0,max:200,step:4,fallback:0},u2="sf-section-stick",Oae="sf-scroll-over",p2="sf-section-stick-phone-on",m2="sf-section-stick-phone-off",uS={desktop:"--sf-stick-distance",phone:"--sf-stick-distance-phone"},_ae=new Set(["CategoryBar","DocTabs","IntroBleed","Contents"]);function pS(e){let o=$(e)??$t.fallback;return Math.min($t.max,Math.max($t.min,Math.round(o)))}function zu(e){return typeof e.stickTopPhone=="boolean"}function Wu(e){let o=e.stickTop===!0,t=pS(e.stickTopDistance),r=zu(e),a=r?e.stickTopPhone===!0:o,n=r?pS(e.stickTopDistancePhone):t;return{desktop:o,desktopDistance:t,phone:a,phoneDistance:n,ownPhone:r}}function Rae(e){let o=Wu(e);if(!o.desktop&&!o.phone)return null;let t=[u2],r={};return o.desktop&&(r[uS.desktop]=`${o.desktopDistance}px`),(o.ownPhone||o.phone!==o.desktop)&&(t.push(o.phone?p2:m2),o.phone&&(r[uS.phone]=`${o.phoneDistance}px`)),o.desktop||t.push("sf-section-stick-desktop-off"),{className:t.join(" "),style:r}}var h2=["column","row","tabs"];var x2={column:"Stacked",row:"One row",tabs:"Tabs"},mS={Flex:h2,HeroGroup:["column","row"]},I2={Flex:"row",HeroGroup:"column"},g2={column:"flex-col",row:"flex-row",tabs:"flex-col"};function li(e,o){return mS[e].includes(o)?o:I2[e]}function Aae(e,o){return g2[li(e,o)]}function hS(e){return mS[e].map(o=>({label:x2[o],value:o}))}var Gu="small",Uu="dot",b2=[{label:"Small",value:"small"},{label:"Display",value:"display"}],$u=[{label:"Dot \u25CF",value:"dot"},{label:"Cross \u2715",value:"cross"},{label:"Slash /",value:"slash"},{label:"Triangle \u25BC",value:"triangle"},{label:"None",value:"none"}],ii={dot:"\u25CF",cross:"\u2715",slash:"/",triangle:"\u25BC",none:""},y2={small:"font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.25em] max-view-wide:text-[length:var(--size-label,12px)]",display:"font-display font-medium text-[length:var(--size-headingMedium,44px)] uppercase leading-none tracking-[0.005em] max-view-wide:text-[length:var(--size-headingMedium,28px)]"},S2={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 Dae(e){return eo(b2,Gu,e)}function Fn(e){return eo($u,Uu,e)}function Nae(e){return y2[e]}function xS(e,o){return S2[e][o]}var zae=[{value:"none"},{value:"dot"},{value:"cross"},{value:"slash"},{value:"triangle"}];function IS(e){return $u.some(o=>o.value===e)?Fn(e):void 0}var w2="overflow-x-clip [&>*]:shrink-0 [&>*]:max-view-wide: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-view-wide: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 ka(e,o){return e==="row"&&IS(o)!==void 0}function Wae(e,o){return ka(e,o)?w2:""}var C2="[&>*: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-view-wide: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 Gae(e,o){return ka(e,o)?C2:""}function Uae(e,o){if(!ka(e,o))return{};let t=IS(o),r=/^text-\[([\d.]+)em\]$/.exec(xS("small",t))?.[1],a=ii[t];return{"--sf-sep-mark":a===""?"none":JSON.stringify(a),...r?{"--sf-sep-k":r}:{}}}var An={sectionPaddingTop:0,sectionPaddingBottom:0},gS={start:"justify-start",center:"justify-center",between:"justify-between",end:"justify-end"},bS={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"};function Kae(e,o){let t=typeof e=="string"&&e in gS?gS[e]:"",r=typeof o=="string"&&o in bS?bS[o]:"";return[t,r].filter(Boolean).join(" ")}function qae(e){return e===!0||e==="wrap"?"flex-wrap":""}var ci="Block widths",ju=[{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]}],Pa="[&>*]:min-w-0 [&>*]:flex-1 [&>*]:basis-0",v2={equal:Pa,bigLeft:`${Pa} [&>*:first-child]:view-wide:grow-[2]`,bigRight:`${Pa} [&>*:last-child]:view-wide:grow-[2]`,biggerLeft:`${Pa} [&>*:first-child]:view-wide:grow-[3]`,biggerRight:`${Pa} [&>*:last-child]:view-wide:grow-[3]`,twoThree:`${Pa} [&>*:first-child]:view-wide:grow-[2] [&>*:last-child]:view-wide:grow-[3]`};function k2(e){return typeof e=="string"?v2[e]??"":""}var P2="[&>*]:view-wide:basis-[content]";function Vae(e){return k2(e)===""?P2:""}var Ku="Columns",di=1,yS=3,SS={2:"max-view-wide:flex-wrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px)))/2)]",3:"max-view-wide:flex-wrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px))_*_2)/3)]"},wS=ju.filter(e=>e.value==="content"||e.value==="equal"),CS="equal",qu=1,vS=6,Ta="view-wide:flex-wrap [&>*]:view-wide:min-w-0 [&>*]:view-wide:grow-0!",T2={1:`${Ta} [&>*]:view-wide:basis-[calc(100%/1)]!`,2:`${Ta} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px))/2)]!`,3:`${Ta} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_2)/3)]!`,4:`${Ta} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_3)/4)]!`,5:`${Ta} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_4)/5)]!`,6:`${Ta} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_5)/6)]!`};function E2(e){return typeof e=="number"?T2[e]??"":""}var O2={1:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc(100%/1)]!",2:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px)))/2)]!",3:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_2)/3)]!",4:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_3)/4)]!",5:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_4)/5)]!",6:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_5)/6)]!"};function _2(e){return typeof e=="number"?O2[e]??"":""}function Yae(e){return e.direction!=="row"||ka(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":_2(e.columnsTablet)}function Xae(e){return e.direction!=="row"||ka(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":E2(e.columns)}var R2="max-view-wide:flex-wrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:grow-0 [&>*]:max-view-wide:basis-[content]",F2={2:"max-view-wide:flex-nowrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px)))/2)]",3:"max-view-wide:flex-nowrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px))_*_2)/3)]"},A2="max-view-wide:flex-nowrap [&>*]:max-view-wide:grow-0 [&>*]:max-view-wide:basis-[content]";function L2(e){return e===!1||e==="nowrap"}function Zae(e,o,t){let r=SS[Number(e)];if(!r)return"max-view-wide:flex-col";let a=L2(t);return B2(e,o)?a?A2:R2:a?F2[Number(e)]:r}function B2(e,o){return Number(e)in SS&&o==="content"}var kS="Block spacing",Vu=[{label:"Each block",value:"each"},{label:"Gap only",value:"gap"}],D2="sf-box-gap-only";function Jae(e){return e==="gap"?D2:""}var N2=["solid","dashed","dotted"],M2=["top","right","bottom","left"],ene="sf-section-border",one="sf-section-border-self",H2=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,PS=e=>typeof e=="number"&&Number.isFinite(e)?`${Math.min(20,Math.max(0,Math.round(e)))}px`:void 0;function TS(e,{phone:o=!1}={}){if(!e||typeof e!="object")return;let t=o?"-phone":"",r={};for(let a of M2){let n=PS(e[a])??PS(e.width);n!==void 0&&(r[`--sf-border-${a}-width${t}`]=n)}return typeof e.style=="string"&&N2.includes(e.style)&&(r[`--sf-border-style${t}`]=e.style),typeof e.color=="string"&&H2.test(e.color)&&(r[`--sf-border-color${t}`]=e.color.toLowerCase()),Object.keys(r).length?r:void 0}function tne(e,o){let t=TS(e),r=TS(o,{phone:!0});return t||r?{...t,...r}:void 0}var fi="sf.gapContainer",gt={min:-32,max:64,step:2},RS={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},Ea={Grid:24,Flex:24,FooterGroup:16,HeroGroup:0,Events:24,GalleryB:8,ProductGrid:2},z2=new Set(["Events","GalleryB"]);function Tr(e,o,t){if(typeof o=="number"&&Number.isFinite(o)&&o>=gt.min)return o;if(typeof o=="string"){let r=RS[e]?.[o];if(typeof r=="number")return r}return typeof t=="number"&&Number.isFinite(t)?t:Ea[e]}var W2="sf-gap-overlap",G2="--sf-gap-overlap",FS="--sf-block-gap",U2="--sf-block-gap-rem",Pr={min:0,max:gt.max,step:gt.step};function Ln(e){if(typeof e!="number"||!Number.isFinite(e))return null;let o=Math.min(Math.max(Math.round(e),Pr.min),Pr.max);return o-o%Pr.step}function ane(e){let o=Ln(e);return o===null?{}:{[FS]:`${o}px`,[U2]:`${o/16}rem`}}var $2="--sf-block-gap-phone",j2="--sf-block-gap-phone-rem",K2="--sf-block-gap-on-phone",q2="max-view-tablet:[--sf-block-gap-on-phone:var(--sf-block-gap-phone)]";function nne(e){let o=Ln(e);return o===null?{}:{[$2]:`${o}px`,[j2]:`${o/16}rem`}}function sne(e){return Ln(e)===null?"":q2}var ES="sf-gap-zone",OS="--sf-gap-len";function ui(e,o){return typeof o=="number"&&Number.isFinite(o)&&o>=gt.min?!0:typeof o=="string"&&typeof RS[e]?.[o]=="number"}var _S="--sf-gap-len-phone",V2="--sf-gap-len-tablet",Bn={min:0,max:gt.max,step:gt.step};function jt(e){return typeof e=="number"&&Number.isFinite(e)&&e>=Bn.min}function Yu(e){return e/2}function Xu(e,o,t){return jt(t)&&!ui(e,o)}function Zu(e,o,t,r,a){return jt(o)?o:Xu(e,t,a)?a:Yu(Tr(e,t,r))}var Y2={block:"sf-gap-overlap-block",inline:"sf-gap-overlap-inline",both:"sf-gap-overlap-both"};function lne(e,o,t,r,a){let n={...jt(r)?{[_S]:`${r}px`}:null,...jt(a)?{[V2]:`${a}px`}:null};if(!ui(e,o)){let l=`${Ea[e]}px`,c=z2.has(e)?`var(--sf-card-gap, ${l})`:l;return{className:` ${ES}`,style:{[OS]:`var(${FS}, ${c})`,[_S]:`var(${K2})`,...n}}}let s=Tr(e,o);return s>=0?{className:` ${ES}`,style:{[OS]:`${s}px`,...n}}:{className:` ${W2} ${Y2[t]}`,style:{gap:"0px",[G2]:`${-s/2}px`}}}var AS=["transparent","var(--section-bg)","var(--surface)","var(--surface-2)"],LS={transparent:"No fill","var(--section-bg)":"Section band","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},$o="var(--section-bg)",pi="inherit";function mi(e,o){return e===pi?$o:e===void 0?o:hi(e)}var X2=/var\(\s*--(surface-2|surface|line)\s*(?=[,)])/g;function hi(e){return e.replace(X2,"var(--site-$1")}function BS(e,o){return e===pi?!0:e===void 0&&o===$o}var DS=["transparent","var(--wheel-stage)","var(--surface)","var(--surface-2)"],NS={transparent:"No fill","var(--wheel-stage)":"Image stage","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},Oa="var(--wheel-stage)",xi="transparent",Dn="inherit";function fne(e,o){return hi(Ju(e,o))}function Ju(e,o){return e===Dn?Oa:e==null?o:e===!0?Oa:e===!1?xi:e}function une(e){return typeof e=="string"&&e!==Dn?hi(e):Oa}function pne(e){return e!==xi&&e!=="none"&&e!==""}function MS(e,o){return e===Dn||e===!0?!0:e==null?o===Oa:!1}var HS="inherit",Ii="fixed",zS=e=>typeof e!="number"&&e!==Ii,Z2="var(--sf-heading-max, 9999px)";function hne(e,o,t,r){if(typeof e=="number")return`${e}px`;if(e===Ii)return o;let a=r?`var(--size-${r}, ${o})`:o;return t==="heading"?`min(${a}, ${Z2})`:a}var J2=["page","full"],WS=["full","page"],Er={full:"Full width",page:"Content width"},Qu="inherit",Q2=e=>typeof e=="string"&&J2.includes(e),eM=e=>e===Qu;function oM(e,o){return eM(e.widthMode)?{mode:"full",inherited:!0}:Q2(e.widthMode)?{mode:e.widthMode,inherited:!1}:{mode:o,inherited:o==="full"}}function Ine(e){return oM(e,"page").mode==="full"}var tM={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 gne(e){return Object.prototype.hasOwnProperty.call(tM,e)}var GS="siteWidths",rM=e=>e==="full"||e==="content";function gi(e){return rM(e)?e:null}function US(e,o){return{[GS]:{background:gi(e),content:gi(o)}}}function bne(e){let o=e.editor?.metadata?.[GS];return{background:gi(o?.background),content:gi(o?.content)}}import{jsx as aM}from"react/jsx-runtime";import{createContext as nM,useContext as Cne}from"react";var sM=2,vne=sM+1,lM=nM(2);function $S({tier:e,children:o}){return aM(lM.Provider,{value:e,children:o})}import{useEaselSession as xH}from"efficient-easel/screen/lib/session-context";import{BOX_GAP as IH,describedAs as Kt,group as Ko,iconOf as Mn,sharedStyleKinds as Hn}from"efficient-easel/screen/lib/document/box-fields";import{VIEW_KEY_ACCESS as gH,phoneTwinFields as XS}from"efficient-easel/screen/lib/document/box-fields";import{createElement as jS}from"react";import{SettingsField as iM}from"efficient-easel/panel";import{boxFieldBuilders as cM,describedAs as dM,iconOf as fM}from"efficient-easel/screen/lib/document/box-fields";import{IconPicker as uM}from"efficient-shell/ui";var pM=e=>i(e),so=cM(pM),_o=so.slider,jo=so.select,bi=so.Segmented,_a=so.segmented,Rne=so.alignmentField,Fne=so.alignmentFields,Ane=so.blockAlignmentField,Lne=so.blockAlignmentFields,Bne=so.boxJustifyField,Dne=so.boxAlignField,Nne=so.boxWrapField,KS=so.directionField,yi=so.gapField,Mne=so.placementField,Hne=so.PlacementGridView,zne=so.positionFields,Si=so.sidesPaddingFields;function Wne(e,o,t,r,a={}){let n=s=>t.some(l=>l.value===s);return{type:"custom",...dM({},{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 jS(iM,{label:i(e),icon:fM(o)},jS(uM,{label:i(e),value:h,options:d,onChange:l,emptyValue:a.emptyValue}))}}}import{TEXT_CONTROL_KINDS as Sle,SCALAR_TEXT_CONTROLS as wle}from"efficient-easel/draw";function _r(e,o){return i("{value} from {from}",{value:e,from:o})}function bH(){let{blockGap:e}=ie();return e===null?i("this container's own spacing"):_r(`${e}px`,i("Styles"))}function yH({inherited:e,onReset:o,label:t}){return S(po,{words:ee()?.panel,label:i(t),changed:!e,detail:bH(),onReset:o})}function SH(e){return yi({...IH,builtIn:Ea[e],resolve:(o,t)=>Tr(e,o,t?.siteGap),action:(o,t)=>S(yH,{inherited:!ui(e,o),onReset:()=>t(void 0),label:"Gap"}),mark:{[fi]:e}})}function wH(e){return uo(Ve("mobile",{[fi]:e,type:"custom",render:o=>S(kH,{container:e,...o})}),hw)}function CH(e){return uo(Ve("tablet",{[fi]:e,type:"custom",render:o=>S(vH,{container:e,...o})}),hw)}var hw={not:{field:"gap",in:Array.from({length:-gt.min},(e,o)=>gt.min+o)}};function ple(e){return{gap:Ve("desktop",SH(e)),[dH("gap")]:CH(e),[Ra("gap")]:wH(e)}}function vH({container:e,...o}){let[t]=Or("gap"),{siteGap:r}=o.field??{},a=Math.max(Bn.min,Tr(e,t,r));return yi({...Bn,builtIn:a,resolve:n=>jt(n)?n:a,action:(n,s)=>S(po,{words:ee()?.panel,label:i("Gap"),changed:jt(n),detail:_r(`${a}px`,i("Desktop")),onReset:()=>s(void 0)})}).render(o)}function kH({container:e,...o}){let[t]=Or("gap"),{siteGap:r,siteGapPhone:a}=o.field??{},n=Zu(e,void 0,t,r,a);return yi({...Bn,builtIn:n,resolve:s=>Zu(e,s,t,r,a),action:(s,l)=>S(po,{words:ee()?.panel,label:i("Gap"),changed:jt(s),detail:_r(`${n}px`,Xu(e,t,a)?i("Styles"):i("Desktop")),onReset:()=>l(void 0)})}).render(o)}function mle(e){return KS({offered:hS(e),fallback:li(e,void 0),resolve:o=>li(e,o)})}function hle(e,o){return nb(o?Qf(e,o):[],o)}function PH({inherited:e,onReset:o,label:t}){return S(po,{words:ee()?.panel,label:i(t),changed:!e,detail:_r(i("Full"),i("the page")),onReset:o})}function Rr({value:e,onChange:o,label:t,placeholder:r,hint:a,multiline:n,hideable:s=!0,markup:l=!0}){let{text:c,hidden:d}=Vt(e),u=vi(null),h=vi(null),p=w=>o(s?{text:w,hidden:d}:w),x=()=>o({text:c,hidden:!d}),g=s&&d,y=rw(),E=a?RH(a)?S("span",{className:"sf-hint-keep sf-hint-while-typing",children:i(a)}):S(cb,{children:i(a)}):void 0,_=d?i("Show {label} on the slide",{label:i(t)}):i("Hide {label} on the slide",{label:i(t)});return S(Ye,{label:i(t),icon:S(UM,{}),htmlFor:y,className:g?"is-hidden":void 0,hint:E,action:s?S(ki,{content:_,children:S(pw,{"aria-pressed":d,"aria-label":_,onClick:x,children:d?S(YS,{name:"eye-off",size:14}):S(YS,{name:"eye",size:14})})}):void 0,children:Fa("div",{className:"sf-copybox",children:[l&&S(cu,{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:w=>p(w.target.value)}):S("input",{id:y,ref:u,type:"text",value:c,placeholder:r===void 0?void 0:i(r),onChange:w=>p(w.target.value)})]})})}function xle(e,o){return{...e,[SM]:o}}function Ile(e){let o=e[bt];if(!o)throw new Error("withOffPage: the field holds no authored text");return{...e,[bt]:{...o,offPage:!0}}}function Ei(e){return!e||typeof e!="object"?!1:e[bt]?.offPage===!0}var xw="sfPanelOnly";function gle(e){if(!e[bt])throw new Error("withPanelOnly: the field holds no authored text");return{...e,[xw]:!0}}function Iw(e){return!!e&&typeof e=="object"&&e[xw]===!0}function ble(e){let o=e[bt];if(!o)throw new Error("withIdentifier: the field holds no authored text");return{...e,[bt]:{...o,identifier:!0}}}function Cle(e,o){if(!e[bt])throw new Error("inOwnBox: the field holds no authored text");let{[iH]:t,...r}=e;return{...r,[du]:!0,render:o}}var TH=new Set(fH),Pi={type:"radio",options:[{value:!0},{value:!1}]},gw={text:{type:"object",objectFields:{text:{type:"text"},hidden:Pi}},textarea:{type:"object",objectFields:{text:{type:"textarea"},hidden:Pi}},plainText:{type:"text"},copyText:{type:"text"},plainTextarea:{type:"textarea"},textList:{type:"array",arrayFields:{text:{type:"text"}}}},Fr=(e,o)=>{let t=Kt({...o,[bt]:e},{...gw[e.control],label:e.label});if(!TH.has(e.control))return t;let r=o.render;return{...mw(t,"authored-copy"),render:a=>S(Yb,{name:a.name,children:r(a)})}},vle="Everything else on this block comes from the linked post. Unlink it to edit by hand.",EH={field:"source.slug",set:!0},kle={not:EH},OH="Select a word, then press the highlighter.",_H=new Set([OH]),RH=e=>_H.has(e);function Ple(e,o,t){return Fr({control:"text",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Rr,{value:r,onChange:a,label:e,placeholder:o,hint:t})})}function Tle(e,o,t){return Fr({control:"textarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Rr,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0})})}function Ele(e,o,t){return Fr({control:"plainText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Rr,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1,markup:!1})})}function Ole(e,o,t){return Fr({control:"copyText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Rr,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1})})}function _le(e){return{type:"custom",[bM]:{label:e},...Kt({},{type:"text",label:e}),render:({value:o,onChange:t})=>S(Vy,{value:gM(o),onChange:t,label:e})}}function Rle(e,o,t){return Fr({control:"plainTextarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Rr,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0,hideable:!1})})}var bw={Design:wM,Animation:vM};function Fle(e){return{type:"custom",render:()=>S(FH,{text:e})}}function FH({text:e}){return S("p",{className:"sf-note",children:i(e)})}function Ale(e){return yt(e)!==null&&e?.tabs!==void 0}var ZS=new Map;function Oi(e,o){let t=`${e}\0${o?o.join(""):""}`,r=ZS.get(t)??{type:"custom",tabs:o,[aw]:{label:e,level:1},bucket:e,marker:!0,render:()=>S(qt,{})};return ZS.set(t,r),r}var JS=new Map;function ap(e){let o=JS.get(e)??{type:"custom",[aw]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>S(qt,{})};return JS.set(e,o),o}function AH(e){let o=e;return o?.marker===!0&&typeof o.fold=="string"?o.fold:null}function yw(e,o){return AH(e)===o?e:{...e,marker:!0,fold:o,render:()=>S(qt,{})}}function Sw(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(qt,{})}}function np({title:e,children:o}){let[t,r]=Nn(()=>!ep.has(e));return S(KM,{title:e,open:t,onToggle:a=>{r(a),a?ep.delete(e):ep.add(e)},children:o})}var ep=new Set;function ww({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 Fa("div",{className:"sf-swatches",children:[e.map(l=>{let c=r?.[l]?i(r[l]):l;return S(ki,{content:c,children:S(oH,{color:l,selected:o.toLowerCase()===l.toLowerCase(),onClick:()=>t(l),"aria-label":c})},l)}),S("span",{className:"sf-swatch-hex",children:s})]})}function Lle(e,o){return{type:"custom",render:({value:t,onChange:r})=>{let a=BS(t,o);return S(Ye,{label:i(e),icon:S(kM,{}),changed:!a,action:S(po,{words:ee()?.panel,label:i(e),changed:!a,detail:i("the theme's section background"),onReset:()=>r(pi)}),children:ww({swatches:AS,current:a?$o:t??o??"",onPick:r,names:LS})})}}}function LH(e,o){return{type:"custom",render:({value:t,onChange:r})=>{let a=t,n=MS(a,o);return S(Ye,{label:i(e),icon:S(lw,{}),changed:!n,action:S(po,{words:ee()?.panel,label:i(e),changed:!n,detail:i("the theme's image stage"),onReset:()=>r(Dn)}),children:ww({swatches:DS,current:n?Oa:Ju(a,o),onPick:r,names:NS})})}}}function _i(e=t=>t,o){return Hn({_gSectionTheme:Ko(py),sectionAccent:{type:"custom",render:({value:t,onChange:r})=>S(by,{value:e(t),onChange:r,followLabel:o})}})}function Co({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(sH,{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 Cw(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(Ye,{label:i(e),icon:d?Mn(d):void 0,value:g?c||n===void 0?void 0:i(n):`${x}${u}`,changed:!g,action:c?tw(c,{changed:!g,onReset:()=>p(null)}):S(po,{words:ee()?.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}):Co({min:t,max:r,step:a,value:x??t,readout:!1,ariaLabel:e,onChange:p})})}}}var Ri="Corners";function sp(e){return{type:"custom",render:({value:o,onChange:t})=>{let r=typeof o=="number"&&Number.isFinite(o)?o:null,a=r!==null;return S(Ye,{label:i(Ri),icon:S(EM,{}),changed:a,action:tw(e.mark,{changed:a,onReset:()=>t(null)}),hint:e.hint,children:S(BH,{tier:e,px:r,onRadius:t})})}}}function Or(e){let o=Ti();return[o?.values?.[e],t=>o?.onChange(e,t)]}function vw(){return mw({type:"custom",render:()=>S(cH,{})},"always")}function Iu(){let e=Ti();return o=>e?.onChangeMany(o)}function BH({tier:e,px:o,onRadius:t}){let r=e.useFollowed(),[a,n]=Or(e.sidesKey),s=at(a)??[...Pl];return S(tH,{label:i(Ri),value:s,corners:Lg,onChange:l=>{let c=at(l)??[];n(c.length===Pl.length?null:c)},radius:o,onRadiusChange:t,radiusMin:To,radiusMax:dr,radiusStep:e.step??1,radiusPlaceholder:String(r)})}function kw(){return vw()}function DH({label:e,changed:o=!1,onReset:t=()=>{}}){let{cornerRadiusPx:r}=ie(),a=typeof r=="number"?`${r}px`:i("not set");return S(po,{words:ee()?.panel,label:i(e),changed:o,detail:r==null?i("the built-in corners"):_r(a,i("Styles")),onReset:t})}function NH(){let{cornerRadiusPx:e}=ie();return typeof e=="number"?e:To}function MH(){return sp({sidesKey:"sectionCornerSides",useFollowed:NH,mark:S(DH,{label:Ri}),hint:HH})}var HH="Follows Styles \u25B8 Basics \u25B8 Corners until you set a number here.";function Fi(){return Hn({_gShape:Ko("Shape"),sectionCorners:MH(),sectionCornerSides:kw(),sectionBorder:QS("desktop"),sectionBorderPhone:QS("mobile")})}var zH=()=>({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 WH(e){let o=Object.fromEntries(Object.entries(e).filter(([,t])=>t!=null&&t!==""));return Object.keys(o).length?o:void 0}function GH(){let e;try{let o=ao(ie().theme);e=o.themes[o.selected]?.line}catch{e=void 0}return e||uf.line}function UH({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]=Nn(()=>a?ZM(l,s):!1),u=zH(),h=p=>WH(a&&n?p:{width:p.width,color:p.color,...n?{style:p.style}:{}});return S(Ye,{label:i("Border"),icon:S(PM,{}),action:a?S(YM,{each:c,label:i("Each side"),onChange:d}):void 0,children:S(VM,{label:i("Border"),value:l,each:c,onChange:p=>o(h(p)),placeholder:t,presets:r,words:u,styles:n,max:20})})}function $H({value:e,onChange:o,tier:t}){let[r]=Or("sectionBorder"),a=GH(),n=t==="mobile"?r&&typeof r=="object"?r:{}:{};return S(UH,{value:e,onChange:o,placeholder:{sides:XM(n),style:n.style??"solid",color:n.color||a},presets:[a],above:n})}function QS(e){return Ve(e,{type:"custom",render:({value:o,onChange:t})=>S($H,{value:o,onChange:t,tier:e})})}function Ble(e){return{type:"custom",render:()=>S(jH,{partKey:e})}}function jH({partKey:e}){let[o]=Or("id"),[t]=Or("_partStyles"),{textStyles:r}=ie(),a=hH(),n=null;try{n=uH().select}catch{n=null}let s=t&&typeof t=="object"?t[e]:void 0,l=Array.isArray(r)?r:null;return S(jM,{name:i("Text"),preview:aS(s,l,{noStyle:i("No style"),styleName:a.textStyles.styleName,cases:(a.copy.panel??mH.copy.panel).cases}),onOpen:()=>{n&&typeof o=="string"&&n(pH(o,e))}})}function Pw(e){let{cornerRadiusPx:o}=ie(),t=typeof o=="number"?o:e,r=null;try{let{appState:n,selectedItem:s}=tp(c=>c),l=s?.props?.id?String(s.props.id):void 0;r=l?Cb(n?.data,l)?.props??null:null}catch{r=null}if(!r)return t;let a=r.sectionCorners;return Bf(a)?a:t}function KH({label:e,changed:o=!1,onReset:t=()=>{}}){let r=Pw(To);return S(po,{words:ee()?.panel,label:i(e),changed:o,detail:_r(`${r}px`,i("the section")),onReset:t})}function qH(){return S(qt,{children:i("Follows the section's Corners until you set a number here.")})}function VH(){return sp({sidesKey:"cardCornerSides",useFollowed:()=>Pw(To),mark:S(KH,{label:Ri}),hint:S(qH,{})})}function YH(){return{type:"custom",render:()=>S(Wg,{})}}function Dle(){return{_gShape:Ko("Shape"),cardCorners:VH(),cardCornerSides:kw(),cardCornersApplyAll:YH()}}function XH(e=ju,o=e[0].value){return Kt({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(Ye,{label:i(ci),icon:S(nw,{}),value:i(a.label),children:S(aH,{className:"sf-gallery-layouts",label:i(ci),value:a.value,onChange:r,options:e.map(n=>({value:n.value,label:i(n.label),picture:S("span",{className:"sf-gallery-pic",children:ZH(n.weights).map((s,l)=>S("i",{style:{gridColumn:`span ${s}`}},l))})}))})})}},{type:"select",label:ci,options:e.map(t=>({value:t.value,label:t.label}))})}function ZH(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 Nle(){return jo(kS,S(LM,{}),Vu,Vu[0].value)}function Mle(){return Ve("mobile",XH(wS,CS))}function JH(){return Ve("mobile",_o(Ku,S(sw,{}),di,yS,1,di,"",{clear:{phoneFollows:!1,hint:di}}))}var ew={read:e=>e.phoneRow,write:(e,o,t)=>({phoneRow:t}),fieldKey:()=>"phoneRow",ownField:!0};function Hle(){let e=_o(Ku,S(sw,{}),qu,vS,1,qu,"",{clear:{emptyLabel:"Auto"}}),o=XS("columns",e,{...ew,tablet:gH.tablet}),t=XS("columns",e,ew,{phoneRow:JH()});return{...o,phoneRow:t.phoneRow}}function zle(e,o,t,r,a,n){return{type:"custom",render:({value:s,onChange:l})=>S(Ye,{label:i(e),icon:S(tu,{noun:n}),action:S(po,{words:ee()?.panel,label:i(e),changed:!zS(s),detail:i("the Text style in Styles"),onReset:()=>l(HS),defaultAction:{onPress:()=>l(Ii),title:i("Keep this section's own built-in size"),icon:S(TM,{})}}),children:Co({min:o,max:t,step:r,value:typeof s=="number"?s:a,suffix:"px",ariaLabel:e,onChange:l})})}}function Wle(){return{_gCellWidth:Ko("Cell width"),gridSpan:jo("Positions",S(nw,{}),[{label:"Auto",value:""},...Array.from({length:Rl},(e,o)=>({label:o===0?"1 position":`${o+1} positions`,value:String(o+1)}))],"")}}function St(){let e=null,o=null;try{e=xM(lp),o=tp(t=>t).selectedItem}catch{o=null}return e??o?.props??{}}var lp=hM(null);function QH({min:e,max:o,step:t,px:r,label:a,onChange:n,desktopKey:s,fallback:l}){let c=St()[s],d=Gl(void 0,c,l);return S(qt,{children:Co({min:e,max:o,step:t,value:Gl(r,c,l),readout:!1,ariaLabel:a,notch:d,onChange:n})})}function e5({label:e,desktopKey:o,fallback:t,unit:r="px",changed:a=!1,onReset:n=()=>{}}){let s=St()[o],l=Gl(void 0,s,t);return S(po,{words:ee()?.panel,label:i(e),changed:a,detail:i("{value} on desktop",{value:`${l}${r}`}),onReset:n})}function Ai(e){return Cw(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unit:e.unit,unsetLabel:"Follows Desktop",unsetMark:S(e5,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback,unit:e.unit}),restTrack:o=>S(QH,{...o,desktopKey:e.desktopKey,fallback:e.fallback})})}var o5={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},t5={Top:uw,Bottom:cw,Left:dw,Right:fw},r5=e=>{let o=t5[e];return S(o,{})};function Gle(e={}){let o=e.keys?.top??"sectionPaddingTop",t=e.keys?.bottom??"sectionPaddingBottom",r=e.group!==!1,a=E=>o5[E],n=E=>_o(a("Top"),S(uw,{}),Uo.min,Uo.max,Uo.step,E,"px"),s=(E,_,w,I=Uo)=>Ve("mobile",Ai({label:a(E),icon:r5(E),desktopKey:_,min:I.min,max:I.max,step:I.step,fallback:w})),l=e.top??Uo.min,c=e.bottom??Uo.min,d="sectionPaddingLeft",u="sectionPaddingRight",h=e.sideBounds??Uo,p=e.side??h.min,x=e.sidePhone??p,g=e.phone===!0,y=E=>g?Ve("desktop",E):E;return Hn({...r?{_gSpacing:Ko("Padding")}:{},[o]:y(n(l)),...g?{[Ra(o)]:s("Top",o,l)}:{},...e.only==="top"?{}:{[t]:y(_o(a("Bottom"),S(cw,{}),Uo.min,Uo.max,Uo.step,c,"px")),...g?{[Ra(t)]:s("Bottom",t,c)}:{}},...e.sides?{[d]:y(_o(a("Left"),S(dw,{}),h.min,h.max,h.step,p,"px")),...g?{[Ra(d)]:s("Left",d,x,h)}:{},[u]:y(_o(a("Right"),S(fw,{}),h.min,h.max,h.step,p,"px")),...g?{[Ra(u)]:s("Right",u,x,h)}:{}}:{}})}function Ule(e,o){let t=Object.fromEntries(Object.entries(o).map(([n,s])=>[n,n in e&&yt(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 wi="Width";function Li(e,o=WS,t=!0){let r=o.map(a=>({label:Er[a],value:a}));return Hn({...t?{_gWidth:Ko(wi)}:{},widthMode:{type:"custom",render:({onChange:a,field:n})=>S(Ye,{label:i(wi),icon:S($M,{}),action:t?S(PH,{inherited:n?.inherited??!1,onReset:()=>a(Qu),label:wi}):void 0,children:bi({options:r,value:n?.currentValue||e,onChange:a,ariaLabel:wi})})}})}function Bi(){let e=r=>({type:"custom",render:({value:a,onChange:n})=>S(Ye,{label:va,icon:Mn(S(DM,{})),action:r?r(n):void 0,children:bi({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(a)?a:"auto",onChange:n,ariaLabel:va})})}),o=()=>({type:"custom",render:({value:r,onChange:a,field:n})=>{let s=n?.unit==="%"?"%":"px",l=s==="%"?Nu:Du;return S("div",{className:"sf-field",children:Co({min:l.min,max:l.max,step:l.step,value:typeof r=="number"?r:l.fallback,suffix:s,ariaLabel:va,onChange:a})})}}),t=()=>_a("Unit",S(iw,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return Hn({_gHeight:Ko(va),sectionHeightMode:Ve("desktop",e()),sectionHeightValue:Ve("desktop",o()),sectionHeightUnit:Ve("desktop",t()),sectionHeightModePhone:Ve("mobile",e(r=>S(a5,{onClear:()=>r(void 0)}))),sectionHeightValuePhone:Ve("mobile",o()),sectionHeightUnitPhone:Ve("mobile",t())})}function a5({onClear:e}){let o=St(),t=Hu(o),r=ni(o),a=i("{value} on desktop",{value:r.mode==="auto"?i("Auto"):`${r.value}${r.unit}`});return S(po,{words:ee()?.panel,label:i(va),changed:t,detail:a,onReset:e})}function ip(){let e=t=>({type:"custom",render:({value:r,onChange:a,id:n,name:s})=>S(n5,{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:Co({min:$t.min,max:$t.max,step:$t.step,value:typeof t=="number"?t:$t.fallback,suffix:"px",ariaLabel:i("Distance from top"),onChange:r})})});return{_gStick:Ko(si),stickTop:Ve("desktop",e(!1)),stickTopDistance:Ve("desktop",o()),stickTopPhone:Ve("mobile",e(!0)),stickTopDistancePhone:Ve("mobile",o())}}function n5({value:e,onChange:o,labelId:t,phone:r}){let a=St(),n=Wu(a),s=r?n.phone:e===!0;return S(Ye,{label:i(si),labelId:t,icon:Mn(S(zM,{})),action:Fa(qt,{children:[r?S(po,{words:ee()?.panel,label:i(si),changed:zu(a),detail:i("{value} on desktop",{value:n.desktop?`${n.desktopDistance}px`:i("Off")}),onReset:()=>o(void 0)}):null,S(rp,{checked:s,onChange:o,ariaLabelledBy:t})]})})}var ow="e.g. about";function Di(){return{_gAnchor:Ko("Anchor"),anchor:Fr({control:"plainText",label:"Name",placeholder:ow},{type:"custom",render:({value:e,onChange:o})=>S(yb,{value:e,onChange:o,nameBox:(t,r)=>S(Rr,{value:t,onChange:r,label:"Name",placeholder:ow,hideable:!1,markup:!1})})})}}function $le(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(Ye,{label:i(e),icon:o,htmlFor:l,hint:t===void 0?void 0:i(t),children:S(rH,{id:l,value:Number.isFinite(c)?new Date(c):null,onChange:d=>a(d?d.toISOString():"")})})}}}function s5(e,o,t,r){return{type:"custom",...Kt({},{...Pi,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(Ye,{label:i(e),labelId:d,icon:t,hint:r===void 0?void 0:i(r),action:S(rp,{checked:c,onChange:n,ariaLabelledBy:d})})}}}function Tw(){return{type:"custom",render:({value:e,onChange:o,id:t,name:r})=>{let a=`${String(t??r??"pageBackground")}-colour`;return S(Eo,{label:i("Background"),icon:S(HM,{}),id:a,value:ru(e),onChange:o})}}}function jle(e,o,t){return{type:"custom",render:({value:r,onChange:a})=>S(Eo,{label:i(e),icon:t,value:r||o,onChange:a})}}function Kle(){return{type:"custom",render:({value:e,onChange:o})=>S(l5,{value:typeof e=="string"?e:"",onChange:o})}}function l5({value:e,onChange:o}){let{hex:t,n:r}=c5();return S(Cl,{label:i("Fill"),icon:S(lw,{}),value:e,inherited:t,resetTo:_r(t.toUpperCase(),i("Theme {n} background",{n:r})),onChange:o,onReset:()=>o("")})}function i5(e,o,t){if((e?.content??[]).some(n=>n?.props?.id===o))return Ho(t);let r=vb(e,o);if(r.length===0)return null;let a=Ho(Pu(t));if(a!==null)return a;for(let n=r.length-1;n>0;n-=1){let s=Ho(Pu(r[n].sectionAccent));if(s!==null)return s}return Ho(r[0].sectionAccent)}function c5(){let e=ao(ie().theme),[o]=Or("sectionAccent"),t=null;try{let{appState:a,selectedItem:n}=tp(l=>l),s=n?.props?.id?String(n.props.id):void 0;t=s?i5(a?.data,s,o):null}catch{t=null}let r=t!==null&&e.themes[t]?t:e.selected;return{hex:e.themes[r].background??uf.background,n:r+1}}var d5=[{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 f5({label:e,value:o,onChange:t,points:r=d5}){let a=r.map(n=>({...n,label:i(n.label),...n.title?{title:i(n.title)}:null}));return S(eH,{label:i(e),value:o,points:a,onChange:t})}function qle(){return vw()}var Ew={top:S(FM,{}),right:S(RM,{}),bottom:S(OM,{}),left:S(_M,{})};function Ow(e,o,t,r,a,n,s){let l=h=>o.find(p=>p.value===h),c=h=>({value:h,label:"",disabled:!0,title:r}),d=h=>{let p=o.find(g=>g.cell===h);if(!p)return c(`missing-${h}`);let x=n?.[h];return x?{value:p.value,label:p.label,icon:x}:{value:p.value,label:p.label}},u=[c("corner-top-left"),d("top"),c("corner-top-right"),d("left"),c("centre"),d("right"),c("corner-bottom-left"),d("bottom"),c("corner-bottom-right")];return{type:"custom",render:({value:h,onChange:p})=>{let x=o.some(g=>g.value===h)?h:t;return S(Ye,{label:i(e),icon:a,value:l(x)?.label?i(l(x).label):s?i(s):"",children:f5({label:e,value:x,onChange:p,points:u})})}}}function Vle(e,o,t){return{type:"custom",options:o,render:({value:r,onChange:a,field:n})=>S(ay,{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 Yle(e,o={}){return{type:"custom",render:({value:t,onChange:r})=>{let a={value:t,onChange:r,...o};return S(e,{...a})}}}var Xle=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function Zle(e,o,t){let r=Object.keys(Af).map(a=>({label:Af[a],value:a,picture:t[a]}));return{type:"custom",...Kt({},{type:"radio",label:e,options:r.map(a=>({value:a.value,label:a.label}))}),render:({onChange:a})=>S(u5,{label:e,icon:o,options:r,onChange:a})}}function u5({label:e,icon:o,options:t,onChange:r}){let a=Ti()?.values??{},n=Lf(a),s=n==="frame"&&!!zt(a.mediaVideo)&&!zt(a.videoFrame);return S(Ye,{label:i(e),icon:Mn(o),hint:s?i("This video has no frame yet. The slide shows its background colour until one is made."):void 0,children:bi({options:t,value:n,onChange:r,ariaLabel:e})})}function Jle(e,o,t,r={}){return{type:"custom",[yM]:!0,render:({value:a,onChange:n,name:s})=>S(ty,{value:a||"",onChange:n,fieldKey:s,label:e,accept:o,placeholder:t,focusKey:r.focus,focusWhen:r.focusWhen,frameKey:r.frame})}}function p5(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 Qle({value:e,onChange:o,label:t}){let r=e||{},a=Ti(),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=!!ze(xH()).geocode,u=rw(),h=(p,x)=>o({...r,[p]:x??void 0});return Fa(qt,{children:[S(Ye,{label:i(t),icon:S(qS,{}),action:d?S(ki,{content:i("Find from the address (OpenStreetMap)"),children:S(pw,{"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(WM,{})})}):void 0,children:d&&r.status?S(ki,{content:p5(r),className:"sf-name-tip",children:S("div",{className:`es-field-hint ${eu}`,style:{margin:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:c},children:s?i("Finding\u2026"):l?i(su):i(r.status)})}):null}),S(Ye,{label:i("Enter by hand"),labelId:u,icon:S(AM,{}),action:S(rp,{checked:!!r.manual,onChange:p=>o({...r,manual:p}),ariaLabelledBy:u})}),r.manual&&S(Ye,{label:i("Latitude, longitude"),icon:S(qS,{}),children:Fa("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8,width:"100%",minWidth:0},children:[S(VS,{value:typeof r.lat=="number"?r.lat:null,onChange:p=>h("lat",p),min:-90,max:90,step:1e-4,placeholder:i("Latitude")}),S(VS,{value:typeof r.lng=="number"?r.lng:null,onChange:p=>h("lng",p),min:-180,max:180,step:1e-4,placeholder:i("Longitude")})]})})]})}function m5(e,o){return o===null||o<0||o>=e.length?"":e[o]?.text??""}function h5(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 x5(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 cp={label:"Ticker items",icon:S(MM,{})};function eie(e,o,t,r){return{type:"custom",[bt]:{control:"textList",label:e,placeholder:t,itemKey:"text",rendering:r},...Kt({},{...gw.textList,label:e}),render:({value:a,onChange:n})=>S(dp,{label:e,icon:Mn(o),items:Array.isArray(a)?a:[],placeholder:t,onChange:n,markup:r==="markup"})}}function dp({label:e,icon:o,items:t,placeholder:r,onChange:a,markup:n=!1}){let s=vi(null),[l,c]=Nn(null),d=h=>h.map(p=>({text:p?.text??""})),u=h=>{let p=x5(t,h,l);p===null&&(s.current=null),c(p),a(d(h))};return S(JM,{label:i(e),icon:o,noun:i("item"),items:t,onChange:u,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:n?S(cu,{target:s,value:m5(t,l),onChange:h=>a(h5(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 _w(e,o){let t=`${e.label} \u2014 row ${o+1}`;return Fr({control:"plainText",label:t,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:r,onChange:a})=>S(Rr,{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 Rw(e){return{_gCards:Ko("Cards"),coverIndex:jo("Cover image",S(NM,{}),Zb,String(1),e?.coverHint??"A card's opening picture \u2014 a card pinned to a finish keeps its own."),imageBackground:LH("Image background",xi),cardImage:b5()}}function Fw(){return{outline:jo("Card outline",S(GM,{}),xu,mu),indexBadge:jo("Card number",S(iw,{}),hu,pu),showBadge:s5("Product badge",!0,S(tu,{noun:"tag"}))}}function Aw(e){let o=e?.defaults??{showCardSizes:!0,showCardBuy:!0,showCardPage:!0},t=a=>({...Pi,label:Ci.find(n=>n.id===a).label}),r=a=>Kt(lH(op),t(a));return{_gShowOnCard:Ko("Show on a card"),[op]:Kt({type:"custom",render:()=>S(I5,{rest:{showCardPrice:!0,showCardFinishes:!0,...o}})},t(op)),showCardFinishes:r("showCardFinishes"),showCardSizes:r("showCardSizes"),showCardBuy:r("showCardBuy"),showCardPage:r("showCardPage")}}var op="showCardPrice",Ci=[{id:"showCardPrice",label:"Price"},{id:"showCardFinishes",label:"Finish swatches"},{id:"showCardSizes",label:"Sizes"},{id:"showCardBuy",label:"Buy button"},{id:"showCardPage",label:"Page button"}];function I5({rest:e}){let o=St(),t=Iu(),r=s=>typeof o[s]=="boolean"?o[s]:void 0,a=s=>r(s)??e[s],n=Ci.some(({id:s})=>r(s)!==void 0&&r(s)!==e[s]);return S(fp,{parts:Ci,changed:n,shown:a,onPress:(s,l)=>t({[s]:l}),onReset:()=>t(Object.fromEntries(Ci.map(({id:s})=>[s,void 0])))})}function oie(e,o="display"){let t=Ra(o);return{[o]:Ve("desktop",{type:"custom",render:({value:r,onChange:a})=>S(fp,{parts:e,changed:kb(r),shown:n=>Ml(r,n),onPress:(n,s)=>a(Tb(r,n,s)),onReset:()=>a(void 0)})}),[t]:Ve("mobile",{type:"custom",render:({value:r,onChange:a})=>S(g5,{parts:e,desktopKey:o,value:r,onChange:a})})}}function fp({parts:e,changed:o,shown:t,onPress:r,onReset:a,detail:n,disabledReason:s}){let l=i("Display");return S(Ye,{label:l,icon:S(CM,{}),changed:o,action:S(po,{words:ee()?.panel,label:l,changed:o,detail:n,onReset:a}),children:S(QM,{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 g5({parts:e,desktopKey:o,value:t,onChange:r}){let a=St()[o];return S(fp,{parts:e,changed:Pb(t),shown:n=>nu(a,t,n),onPress:(n,s)=>r(Eb(t,n,s)),onReset:()=>r(Ul),detail:i("the same as Desktop")})}function b5(){return Cw("Card image",{min:To,max:dr,step:Vg,hint:"Rounds the picture. The card's own corner is in Styles."})}function tie(){return sp({sidesKey:"cornerSides",step:Yg,useFollowed:()=>To,mark:S(y5,{label:Xg}),hint:i("Rounds the picture. Left alone it stays square.")})}function y5({label:e,changed:o=!1,onReset:t=()=>{}}){return S(po,{words:ee()?.panel,label:i(e),changed:o,onReset:t})}function rie(){return{type:"custom",render:({value:e,onChange:o})=>S(v5,{value:typeof e=="string"?e:"",onChange:o})}}function S5({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:eb(e).map(([t,r],a)=>S("i",{className:"block rounded-xs bg-current opacity-60",style:{gridColumn:`span ${t}`,gridRow:`span ${r}`}},a))})}var w5={width:"3.5rem",height:"2.5rem"},C5=200;function v5({value:e,onChange:o}){let[t,r]=Nn(null),[a,n]=Nn(4),s=vi(null);IM(()=>{let p=s.current;if(!p||typeof ResizeObserver!="function")return;let x=()=>n(p.getBoundingClientRect().width>=C5?4:3);x();let g=new ResizeObserver(x);return g.observe(p),()=>g.disconnect()},[]);let l=e&&e in ht?e:"",c=Vf(t,l),d=Vf(t,"").length,u=Fl("no-symbol"),h=[{value:"",label:i("Not chosen"),icon:u},...c.map(p=>({value:p,label:i(ht[p].label),icon:S(S5,{layout:ht[p],width:40})}))];return S(Ye,{label:i("Layout"),icon:S(BM,{}),value:l?i(ht[l].label):void 0,children:S("div",{ref:s,style:{flex:"1 1 auto",minWidth:0},children:S(nH,{label:i("Layout"),value:l,emptyValue:"",options:h,onChange:o,columns:a,cell:w5,header:Fa("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(qM,{options:[{id:"all",label:i("All")},...Jg.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:qf.length})})]})})})})}var E5="Applies to panels, cards, inputs and buttons. Round things \u2014 color swatches, switches, status dots \u2014 stay round.",up="Corners";function Lw({value:e,onChange:o,showHint:t=!0}){let r=e===null;return Ni(P5,{label:i(up),icon:Ni(T5,{}),value:r?i("Default"):`${e}px`,changed:!r,action:Ni(k5,{words:ee()?.panel,label:i(up),changed:!r,detail:i("the built-in corners"),onReset:()=>o(null)}),hint:t?i(E5):void 0,children:Ni(Co,{min:To,max:dr,step:1,value:e??To,readout:!1,ariaLabel:i(up),onChange:o})})}import{jsx as zn}from"react/jsx-runtime";import{SettingsDefaultReset as O5,SettingsField as _5}from"efficient-easel/panel";import{IconPicker as R5}from"efficient-shell/ui";import{ShadowIcon as F5}from"efficient-easel/icons";var pp={none:"None",soft:"Soft",lifted:"Lifted"},A5="Applies to cards \u2014 products, brands, journal entries and filter cells. Round things like swatches and status dots are never shadowed.",L5={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 Bw({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??xf;return zn(_5,{label:i("Card shadow"),icon:zn(F5,{}),value:i(pp[a]),changed:!r,action:zn(O5,{words:ee()?.panel,label:i("Card shadow"),changed:!r,detail:i(pp[xf]),onReset:()=>o(null)}),hint:t?i(A5):void 0,children:zn(R5,{label:i("Card shadow"),value:a,options:UI.map(n=>({value:n,label:i(pp[n]),icon:zn("span",{className:"sf-shadow-chip border border-line bg-surface",style:{boxShadow:L5[n]}})})),onChange:o})})}import{jsx as Dw}from"react/jsx-runtime";import{ShadowIcon as B5}from"efficient-easel/icons";var D5="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 Nw({value:e,onChange:o,showHint:t=!0}){let r=e===null;return Dw(Cl,{label:i("Shadow color"),icon:Dw(B5,{}),value:e??"",inherited:gf,resetTo:gf,onChange:o,onReset:()=>o(null),hint:t?i(D5):void 0})}import{jsx as Hi}from"react/jsx-runtime";import{SettingsDefaultReset as N5,SettingsField as M5}from"efficient-easel/panel";import{AlignSeparateIcon as H5}from"efficient-easel/icons";function Mi(e,o){return e==="tablet"?null:e==="mobile"?o.phone:o.desktop}var z5="The space between the blocks inside a row, a grid or a box. Default means each one keeps the spacing it already has.",W5="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.",mp="Block gap",Mw=Ea.Grid;function Hw(e,o){return Mi(e,{desktop:{key:"block_gap",value:o.gap,followsPx:null},phone:{key:"block_gap_phone",value:o.phone,followsPx:o.gap===null?null:Yu(o.gap)}})}function zw({value:e,onChange:o,showHint:t=!0,followsPx:r=null}){let a=e===null,n=r===null?null:`${r}px`;return Hi(M5,{label:i(mp),labelId:"sf-block-gap",icon:Hi(H5,{}),value:a?n??i("Default"):`${e}px`,changed:!a,action:Hi(N5,{words:ee()?.panel,label:i(mp),changed:!a,detail:n??i("each block's own spacing"),onReset:()=>o(null)}),hint:t?i(n===null?z5:W5):void 0,children:Hi(Co,{min:Pr.min,max:Pr.max,step:Pr.step,value:e??(r===null?Mw:Ln(r)??Mw),readout:!1,ariaLabel:i(mp),onChange:o})})}import{jsx as Wi}from"react/jsx-runtime";import{SettingsDefaultReset as $5,SettingsField as j5,SettingsSegmented as K5}from"efficient-easel/panel";import{HoverIcon as q5}from"efficient-easel/icons";import{HOVER_MOTION as G5,motionSeconds as Ww}from"efficient-shell/format";var Ar="hover",U5=["none","nextImage","rotate","zoom","lift"],Gn={none:"None",nextImage:"Show next image",rotate:"Rotate",zoom:"Zoom",lift:"Lift"};function Gw(e){return U5.filter(o=>e.includes(o))}var hp=Gw(["none","lift"]);function Uw(e){let o=e[Ar];return hp.includes(o)?o:"none"}var zi=Gw(["none","rotate"]),qo={kind:Ar,angle:"hoverAngle",duration:"hoverDuration",delay:"hoverDelay"},Wn="spinOnHover",Aa={min:0,max:360,step:1},$w={ProductGrid:"rotate",RelatedProducts:"rotate",AlloyWheelsListing:"none"},Die=Object.keys($w);function xp(e){return $w[e]??"none"}var Ip=G5.rotateFallbackDeg;function gp(e,o){let t=e[qo.kind];if(zi.includes(t))return t;let r=e[Wn];return typeof r=="boolean"?r?"rotate":"none":o}function bp(e){let o=$(e);return o===void 0?Ip:Math.min(Aa.max,Math.max(Aa.min,o))}function Nie(e,o){let t=xp(o),r=gp(e,t);return{kind:r,angle:r==="rotate"?bp(e[qo.angle]):null,duration:Ww("hover","duration",r==="rotate"?e[qo.duration]:void 0),delay:Ww("hover","delay",r==="rotate"?e[qo.delay]:void 0)}}function jw(e){let o={field:qo.kind,in:[...zi]};return{any:[{field:qo.kind,is:"rotate"},{all:[{not:o},e==="rotate"?{not:{field:Wn,is:!1}}:{field:Wn,is:!0}]}]}}var yp={none:Gn.none,lift:Gn.lift,highlight:"Highlight"},V5="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 Kw({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??If;return Wi(j5,{label:i("Hover effect"),icon:Wi(q5,{}),value:i(yp[a]),changed:!r,action:Wi($5,{words:ee()?.panel,label:i("Hover effect"),changed:!r,detail:i(yp[If]),onReset:()=>o(null)}),hint:t?i(V5):void 0,children:Wi(K5,{options:$I.map(n=>({id:n,label:i(yp[n])})),value:a,ariaLabel:i("Hover effect"),onChange:o})})}import{jsx as Gi}from"react/jsx-runtime";import{SettingsDefaultReset as Y5,SettingsField as X5,SettingsSegmented as Z5}from"efficient-easel/panel";import{DropIcon as J5}from"efficient-easel/icons";var Sp="Photography",qw={shot:"As shot",mono:"Black and white"},wp=[{grayscale:!1,label:qw.shot},{grayscale:!0,label:qw.mono}],Q5="Black and white photographs return to color on hover. Wheels and tyres keep their real finish either way.";function Vw({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??!1;return Gi(X5,{label:i(Sp),icon:Gi(J5,{}),value:i(wp.find(n=>n.grayscale===a).label),changed:!r,action:Gi(Y5,{words:ee()?.panel,label:i(Sp),changed:!r,detail:i(wp.find(n=>!n.grayscale).label),onReset:()=>o(null)}),hint:t?i(Q5):void 0,children:Gi(Z5,{options:wp.map(n=>({id:n.grayscale,label:i(n.label)})),value:a,ariaLabel:i(Sp),onChange:o})})}import{jsx as Cp}from"react/jsx-runtime";import{useId as e4}from"react";import{SettingsField as o4,SettingsSwitch as t4}from"efficient-easel/panel";import{ShareIcon as r4}from"efficient-easel/icons";var a4="Share button",n4="On every blog post.";function Yw({value:e,onChange:o,showHint:t=!0}){let r=e4();return Cp(o4,{label:i(a4),labelId:r,icon:Cp(r4,{}),action:Cp(t4,{checked:e===!0,onChange:o,ariaLabelledBy:r}),hint:t?i(n4):void 0})}import{usePreviewDevice as fm}from"efficient-easel/draw/client";import{jsx as Ki}from"react/jsx-runtime";import{SettingsDefaultReset as g4,SettingsField as b4}from"efficient-easel/panel";import{PaddingXIcon as y4}from"efficient-easel/icons";var lo={min:1e3,max:2e3,step:50,default:1600};function s4(e){return{maxWidth:e,marginInline:"auto",width:"100%"}}var Xw="--sf-site-width",vp=`var(${Xw},${lo.default}px)`,rce=`max-w-[${vp}]`,ace=`max-w-[${lo.default}px]`;function l4(e){return typeof e!="number"||!Number.isFinite(e)?lo.default:Math.round(Math.min(Math.max(e,lo.min),lo.max))}function nce(e){let o=l4(e);return o===lo.default?{}:{[Xw]:`${o}px`}}var wt={min:0,max:80,step:4,default:40},Zw="--sf-site-gutter",Un={min:0,max:24,step:4},i4="--sf-site-gutter-phone",c4="max-view-tablet:[--sf-site-gutter:var(--sf-site-gutter-phone)]!",Vo=`var(${Zw},${wt.default}px)`,d4=`px-[${Vo}]`;var Yt={md:`min(24px,${Vo})`,sm:`min(20px,${Vo})`,frame:`min(24px,${Vo})`,tabs:`min(16px,${Vo})`},sce=[[`max-view-desktop:px-[${Yt.md}]`,"max-view-desktop:px-6"],[`max-view-desktop:px-[${Yt.tabs}]`,"max-view-desktop:px-4"],[`max-[960px]:px-[${Yt.frame}]`,"max-[960px]:px-6"],[`max-[900px]:px-[${Yt.md}]`,"max-[900px]:px-6"],[`max-view-wide:px-[${Yt.md}]`,"max-view-wide:px-6"],[`max-view-tablet:px-[${Yt.sm}]`,"max-view-tablet:px-5"],[`max-view-wide:px-[${Yt.sm}]`,"max-view-wide:px-5"],[`max-[640px]:px-[${Yt.sm}]`,"max-[640px]:px-5"],[`view-wide:px-[${Vo}]`,"view-wide:px-10"],[`max-view-tablet:px-[min(24px,${Vo})]`,"max-view-tablet:px-6"],[`max-view-wide:-mx-[min(20px,${Vo})]`,"max-view-wide:-mx-5"],[`max-view-tablet:-mx-[min(20px,${Vo})]`,"max-view-tablet:-mx-5"],[`-mx-[${Vo}]`,"-mx-10"],[d4,"px-10"]];var lce="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-view-wide:px-[min(20px,var(--sf-site-gutter,40px))]",ice="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-view-desktop:px-[min(24px,var(--sf-site-gutter,40px))]";function Ui(e){return typeof e!="number"||!Number.isFinite(e)?wt.default:Math.round(Math.min(Math.max(e,wt.min),wt.max))}function cce(e){let o=Ui(e);return o===wt.default?{}:{[Zw]:`${o}px`}}function $i(e){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,Un.min),Un.max))}function dce(e){let o=$i(e);return o===null?{}:{[i4]:`${o}px`}}function fce(e){return $i(e)===null?"":c4}function ji(e){return Math.min(Un.max,Ui(e))}var Jw=vp,uce=`max-w-[${Jw}]`,pce=`max-w-[min(var(--sf-page-cap,${lo.default}px),${lo.default}px)]`,Qw="--sf-hero-cap",f4=`var(${Qw},none)`,mce=`max-w-[${f4}]`,u4="--sf-hero-bleed-m",p4="--sf-hero-bleed-w",m4="--sf-hero-chrome-x",h4="--sf-hero-chrome-cap";function hce(e){return e===!0?{[Qw]:Jw,[u4]:"auto",[p4]:"100%",[m4]:"24px",[h4]:"none"}:{}}var kp=`calc(${vp} - ${Vo}*2)`,xce=`max-w-[${kp.replace(/ /g,"_")}]`;var x4="--sf-chrome-cap",I4=`var(${x4},${kp})`,Ice="data-page-width";function gce(e){return e==="full"?"full":null}function bce(e){return e==="full"?null:s4(e==="content"?kp:I4)}function yce(e){if(e==="full")return"full";if(e==="content")return"content"}var Pp="Side space",eC=wt.default,S4="The room left at the left and right edge of every page.";function oC(e,o){return Mi(e,{desktop:{key:"site_gutter",value:o.gutter,unsetPx:eC,bounds:wt},phone:{key:"site_gutter_phone",value:o.phone,unsetPx:ji(o.gutter),bounds:Un}})}function tC({value:e,onChange:o,showHint:t=!0,unsetPx:r=eC,bounds:a=wt}){let n=e===null;return Ki(b4,{label:i(Pp),labelId:"sf-side-space",icon:Ki(y4,{}),value:`${e??r}px`,changed:!n,action:Ki(g4,{words:ee()?.panel,label:i(Pp),changed:!n,detail:`${r}px`,onReset:()=>o(null)}),hint:t?i(S4):void 0,children:Ki(Co,{min:a.min,max:a.max,step:a.step,value:e??r,readout:!1,ariaLabel:i(Pp),onChange:o})})}import{jsx as Tp}from"react/jsx-runtime";import{BACKGROUND_WIDTHS as Fce,SettingsBackgroundWidth as w4,SettingsContentWidth as C4}from"efficient-easel/panel";var v4="Background width",k4="Content width";var qi=e=>i(Er[e==="content"?"page":"full"]),rC="The width of every section's background.",aC="The width of every section's content.";function nC({value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n,labelId:s}){return Tp(w4,{value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n?i(n):void 0,labelId:s,words:{label:i(v4),full:qi("full"),content:qi("content")},resetWords:ee()?.panel})}function sC({mode:e,px:o,max:t=lo.max,min:r=lo.min,changed:a,detail:n,onMode:s,onPx:l,onReset:c,hint:d,labelId:u}){let h=i(k4),p=e!=="full"?Tp(Co,{min:r,max:t,step:lo.step,value:Math.min(Math.max(o,r),t),onChange:l,suffix:"px",ariaLabel:h}):null;return Tp(C4,{mode:e,onMode:s,number:p,changed:a,detail:n,onReset:c,hint:d?i(d):void 0,labelId:u,words:{label:h,full:qi("full"),content:qi("content")},resetWords:ee()?.panel})}import{jsx as rv}from"react/jsx-runtime";import{TextStyleItem as X3,TextStylesGroup as Z3}from"efficient-easel/text-styles";import{jsx as U3}from"react/jsx-runtime";import{useState as $3}from"react";import{TextStylesList as j3}from"efficient-easel/text-styles";import{usePreviewDevice as K3}from"efficient-easel/draw/client";import{defaultTextStyles as UC,textStyleCaseCss as F3,textStyleViewKey as A3}from"efficient-easel/text-styles/model";import{phoneKey as L3,resolveViewValue as $C,tabletKey as B3}from"efficient-easel/draw";import{parseHexColor as D3}from"efficient-shell/format";import{textStyleCaseCss as N4,textStyleCaseOfCss as M4}from"efficient-easel/draw";import{parseHexColor as H4}from"efficient-shell/format";function Ep(e,o){return o?`${e}[${o.index}].${o.rowKey}`:e}function Yo(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 Fp,encodePartId as Ji}from"efficient-easel/draw";import{LINK_FIELD_MARKER as xC,SCAFFOLD_FIELD_MARKER as mC,TEXT_FIELD_MARKER as Qi}from"efficient-easel/draw";import{readHidable as IC}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as F4}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as R4}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as lC}from"efficient-easel/draw";import{readHidable as iC}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as P4}from"efficient-easel/draw";var T4=P4,E4=["text","textarea"],O4=["textarea","plainTextarea"];function _4(e){return!e||typeof e!="object"?null:e[lC]?.control??null}function La(e){let o=_4(e);return o&&T4.includes(o)?o:null}function Vi(e){return O4.includes(e)}function cC(e){return!e||typeof e!="object"?void 0:e[lC]?.placeholder}function Yi(e){return iC(e).text}function Op(e,o,t){return E4.includes(e)?{text:t,hidden:iC(o).hidden}:t}function dC(e,o,t,r){return Yi(e[o])===r?null:{...e,[o]:Op(t,e[o],r)}}function Xi(e){if(!(!e||typeof e!="object"))return e[R4]}function _p(e){if(!e||typeof e!="object")return null;let o=e.arrayFields;return o&&typeof o=="object"?o:null}function fC(e,o){if(!Array.isArray(o))return[];let t=Xi(e),r=[];if(t?.control==="textList"){let n=t.itemKey??"text";return o.forEach((s,l)=>{let c=he(s?.[n]);c&&r.push({row:{index:l,rowKey:n},text:c})}),r}let a=_p(e);return a?(o.forEach((n,s)=>{for(let[l,c]of Object.entries(a)){if(!La(c))continue;let d=Yi(n?.[l])||Xi(c)?.placeholder||"";d&&r.push({row:{index:s,rowKey:l},text:d})}}),r):[]}function $n(e,o){if(Array.isArray(e))return e[o.index]?.[o.rowKey]}function Rp(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 uC(e,o,t,r,a){let n=$n(e[o],t);return Yi(n)===a?null:Rp(e,o,t,Op(r,n,a))}function pC(e,o){return o?`${e} \xB7 row ${o.index+1}`:e}var Xo="data-sf-part",rde="data-sf-region-part",ade="data-sf-part-row";function nde(e,o){return`${e}[${o}]`}var sde="data-sf-part-kind",A4="data-sf-part-style-owner",L4="data-sf-part-style-kind";function lde(e){for(let o=e;o;o=o.parentElement){let t=o.getAttribute(A4),r=o.getAttribute(L4);if(t&&r)return{owner:t,kind:r};if(o.getAttribute("data-easel-block"))return null}return null}var hC=2;function Ba(e){return Sr(e).replace(/\s+/gu,"")}function Zi(e,o,t){let r=e[Qi];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}=IC(o);a?t.push(a):r.placeholder&&t.push(r.placeholder);return}if(!e[xC]){if(e.type==="text"||e.type==="textarea"){let a=he(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))Zi(s,a?.[n],t);return}if(e.objectFields&&o&&typeof o=="object")for(let[a,n]of Object.entries(e.objectFields))Zi(n,o[a],t)}}function gC(e){if(!e||typeof e!="object")return!1;let o=e;return o[xC]?!1:!!o[Qi]||o.type==="text"||o.type==="textarea"}function ec(e,o){let t=e[Qi];return t?.label?t.label:typeof e.label=="string"?e.label:o}function Ap(e){let o=e.indexOf(" (");return(o>0?e.slice(0,o):e).trim()}function ide(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){if(!a||typeof a!="object"||En(r))continue;let n=a,s=[];Zi(n,o?.[r],s),!s.length&&n[mC]!==void 0&&Zi(n,n[mC],s);let l=ec(n,r),c=new Set;for(let{row:h,text:p}of fC(n,o?.[r])){let x=Ba(p);x.length<hC||(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=Ba(h);p.length<hC||d.has(p)||(d.add(p),u.push(p))}u.length&&t.push({key:r,label:l,texts:u})}return t}function Lp(e){return!e.offPage&&!e.hidden}var B4=F4;function bC(e,o){if(!o||typeof o!="object"||En(e)||Kb(o))return null;let t=o[Qi];return!t||!B4.includes(t.control)?null:t}function cde(e,o){let t=bC(e,o);return t!==null&&t.identifier!==!0}function yC(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){let n=bC(r,a);if(!n)continue;let{text:s,hidden:l}=IC(o?.[r]);if(Lp({offPage:n.offPage===!0,hidden:!!l}))continue;let c=s||n.placeholder||"",d=Sr(c).replace(/\s+/gu," ").trim();t.push({key:r,label:Ap(ec(a,r)),preview:d,offPage:n.offPage===!0,identifier:n.identifier===!0,hidden:!!l})}return t}var oc="data-sf-spec-region";function SC(e){return e.writable===!0&&e.sized===!0}function tc(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 Da(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 Bp(e){return`@${e}`}function Dp(e,o){if(!o.startsWith("@"))return null;let t=o.slice(1);return t in e?t:null}function D4(e,o){return o&&o in e?o:null}function Na(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Ma(e,o){return Na(e?.[o])??{}}function rc(e,o,t){let r=Ma(e,o);return Object.hasOwn(r,t)?Na(r[t])??{}:{}}function ac(e,o,t,r){let{[t]:a,...n}=Ma(e,o),s=r?{...n,[t]:r}:n,{[o]:l,...c}=e;return Object.keys(s).length?{...c,[o]:s}:c}var Hp="_partStyles",zp="data-sf-part-styled",Ha="data-sf-text-style",z4=/^(heading|body)-[1-7]$/;function Br(e){return typeof e=="string"&&z4.test(e)}var sc={heading:"heading-1",heading2:"heading-2",heading3:"heading-3",body:"body-1",label:"body-5"};function W4(e){if(!e)return null;for(let[o,t]of Object.entries(sc))if(t===e)return o;return null}function Wp(e){if(Br(e.textStyle))return e.textStyle;let o=mt(e.role);return o?sc[o]:void 0}var G4=[400,500,600,700],nc=["left","center","right","justify"],wC=5,CC=1e3,U4=-5,$4=10,Gp=0,Up=64,$p=2,vC={size:{min:wC,max:CC,step:1},sizePhone:{min:wC,max:CC,step:1},padding:{min:Gp,max:Up,step:$p}},j4=.05,K4=.01,q4=["line","letter"],V4=.5,Y4=2.5,X4=-1,Z4=1,J4=0,Q4=400,e3=[...new Set(Object.values(ha))];function _C(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 wde(e){return Ma(e,Hp)}function Kn(e,o){return rc(e,Hp,o)}function RC(e,o,t){return ac(e,Hp,o,o3(t).length?t:null)}function o3(e){return Object.entries(e).filter(([,o])=>o!==void 0)}function t3(e){return q4.includes(e)}var jn=(e,o,t)=>Math.min(t,Math.max(o,e));function r3(e,o){if(t3(e)){let t=Math.round(Number(o));return!Number.isFinite(t)||t===0?null:jn(t,U4,$4)}if(e==="lineHeight"){let t=Number(o);return Number.isFinite(t)?za(jn(t,V4,Y4),3):null}if(e==="letterSpacing"){let t=Number(o);return Number.isFinite(t)?za(jn(t,X4,Z4),4):null}if(e==="paragraphSpacing"){let t=Math.round(Number(o));return!Number.isFinite(t)||t<=0?null:jn(t,J4,Q4)}if(Object.hasOwn(vC,e)){let{min:t,max:r}=vC[e],a=Math.round(Number(o));return Number.isFinite(a)?jn(a,t,r):null}return e==="italic"?typeof o=="boolean"?o:null:e==="role"||e==="fontRole"?mt(o)?o:null:e==="sizeToken"?Kp(o)?o:null:e==="textStyle"?Br(o)?o:null:e==="alignPhone"?nc.includes(o)?o:null:o}var a3=["weight","size","sizePhone","line","letter","lineHeight","letterSpacing","paragraphSpacing","padding"];function jp(e){let o=null,t=r=>{o??={...e},delete o[r]};for(let r of a3){let a=e[r];a!==void 0&&!(typeof a=="number"&&Number.isFinite(a))&&t(r)}return e.align!==void 0&&!nc.includes(e.align)&&t("align"),e.alignPhone!==void 0&&!nc.includes(e.alignPhone)&&t("alignPhone"),e.textStyle!==void 0&&!Br(e.textStyle)&&t("textStyle"),e.sizeToken!==void 0&&!Kp(e.sizeToken)&&t("sizeToken"),e.fontRole!==void 0&&!mt(e.fontRole)&&t("fontRole"),o??e}function Kp(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"&&e3.includes(c);return l(o)&&s(t)&&(r===void 0||l(r))&&(a===void 0||s(a))&&(n===void 0||n3(n,t))}function n3(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 FC(e){return e?.pxPhone&&Kp(e)?{step:e.stepPhone??e.step,px:e.pxPhone}:null}function AC({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 s3=[["font","role"],["font","fontRole"],["role","textStyle"],["line","lineHeight"],["letter","letterSpacing"]];function l3(e){let o=[];for(let[t,r]of s3)t===e?o.push(r):r===e&&o.push(t);return o}function Dr(e,o,t,r){let a={...Kn(e,o)},n=r==null?null:r3(t,r);if(n===null)delete a[t];else{a[t]=n;for(let s of l3(t))delete a[s]}return RC(e,o,a)}function LC(e,o){return RC(e,o,{})}function i3(e){return M4(e)??"none"}function c3(e){return N4(e)??""}var kC={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 d3(e,o){return mt(e.role)||(o?.blockDrawsStyle?null:W4(e.textStyle))}function BC(e,o){return e==="Text"&&o==="text"}var f3={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 u3(e){let o=ha[e],t=f3[o];return t?`var(--size-${o}, ${t})`:`var(--size-${o})`}function qn(e){let o={};return typeof e.lineHeight=="number"?o.lineHeight=e.lineHeight:e.line&&(o.lineHeight=za(p3+e.line*j4,3)),typeof e.letterSpacing=="number"?o.letterSpacingEm=e.letterSpacing:e.letter&&(o.letterSpacingEm=za(e.letter*K4,4)),o}var p3=1,Lr="--sf-part-para";function m3(e){e=jp(e);let o={};if(typeof e.sizePhone=="number"&&e.sizePhone>0)o.fontSize=`${e.sizePhone}px`;else{let t=FC(e.sizeToken);t&&(o.fontSize=AC(t))}return e.alignPhone&&(o.textAlign=e.alignPhone),o}function h3(e,o){if(!o)return e;let t=jp(e),r=e;if(typeof t.sizePhone=="number"&&t.sizePhone>0)r={...r,size:t.sizePhone};else{let a=FC(t.sizeToken);a&&(r={...r,size:void 0,sizeToken:a})}return t.alignPhone&&(r={...r,align:t.alignPhone}),r}function qp(e,o,t){return Vp(h3(e,o),lc,t)}function DC(e,o){let t=o?"sizePhone":"size";if(!Object.hasOwn(e,t))return e;let r={...e};return delete r[t],r}function Cde(e,o,t){let r=qp(DC(e,o),o,t);return{fontFamily:r.fontFamily,fontSize:r.fontSize}}function Vp(e,o,t){e=jp(e);let r=d3(e,t),a=qn(e),n=e.size?`${e.size}px`:e.sizeToken?AC(e.sizeToken):r?u3(r):"";return{fontFamily:e.font?b3(e.font):e.fontRole?`var(${kC[e.fontRole]})`:r?`var(${kC[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`:"",[Lr]:e.paragraphSpacing?`${e.paragraphSpacing}px`:"",textTransform:c3(e.case),textAlign:e.align??"",paddingTop:PC(e.padding),paddingBottom:PC(e.padding),color:x3(e.color),fontStyle:e.italic===!0?"italic":e.italic===!1?"normal":""}}var x3=e=>e===void 0||e===""?"":Object.hasOwn(xt,e)?xt[e]:H4(e)===e.toLowerCase()?e:"",PC=e=>e===void 0?"":`${e}px`,za=(e,o)=>Number(e.toFixed(o));function vde(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:I3(Number.parseInt(e.fontWeight,10)),lineRatio:Number.isFinite(r)?za(r/t,3):1.2,letterEm:Number.isFinite(a)?za(a/t,4):0,align:g3(e.textAlign),case:i3(e.textTransform),paddingPx:Number.isFinite(n)?Math.round(n):0}}function I3(e){return Number.isFinite(e)?G4.reduce((o,t)=>Math.abs(t-e)<Math.abs(o-e)?t:o):400}function g3(e){for(let o of nc)if(o===e)return o;return e==="end"?"right":"left"}function kde(e,o){let t=TC(e);if(!t)return"";for(let r of Mo)if(TC(o(r.cssVar))===t)return r.key;return""}var TC=e=>(e.split(",")[0]??"").replace(/["']/g,"").replace(/\s+/g," ").trim().toLowerCase();function b3(e){let o=ma(e);return o?`var(${o.cssVar})`:""}function Pde(e,o,t,r){return!o||Fp(o)?.nodeId!==e?null:t.find(a=>r(a.getAttribute("class")))??t[0]??null}function y3(e,o){return Object.hasOwn(e,o)?Na(e[o])??{}:{}}function Tde(e,o,t=()=>lc,r=l=>l,a=C3,n=!1,s=()=>!1){let l=0;for(let{element:c,partId:d}of e){let u=Fp(d)?.propKey;if(!u)continue;let h=y3(o,r(u)),p=qp(h,n,{blockDrawsStyle:s(u)});Br(h.textStyle)?c.setAttribute?.(Ha,h.textStyle):c.removeAttribute?.(Ha);let x=Np.some(y=>c.style[y]),g=!1;for(let[y,E]of Object.entries(p))P3(c,y,E),E&&(g=!0);if(x||Np.some(y=>p[y]))for(let y of S3(c,a))for(let E of Np)y.style[E]=p[E]??"";g&&(l+=1)}return l}function S3(e,o){let t=Ba(e.textContent??""),r=[],a=e;for(let n=0;n<w3&&o(a);n+=1){let s=a.parentElement;if(!s||Ba(s.textContent??"")!==t)break;r.push(s),a=s}return r}var w3=8;function C3(e){let o=e;return typeof window>"u"||!o?.ownerDocument?!1:window.getComputedStyle(o).display==="inline"}var lc={fontKey:"",sizePx:16,weight:400,lineRatio:1,letterEm:0,align:"left",case:"none",paddingPx:0};function v3(e){if(!e||typeof e!="object")return null;let o={};return Br(e.textStyle)&&(o.textStyle=e.textStyle),typeof e.size=="number"&&e.size>0&&(o.size=e.size),typeof e.sizePhone=="number"&&e.sizePhone>0&&(o.sizePhone=e.sizePhone),Object.keys(o).length?o:null}function k3(e,o){let t=v3(e);if(!t)return{};let r=qp(t,o);return{...r.fontFamily?{fontFamily:r.fontFamily}:{},...r.fontSize?{fontSize:r.fontSize}:{}}}function NC(e){return Br(e?.textStyle)||!!e?.role||typeof e?.size=="number"&&e.size>0}function Ede(e,o,t){if(!e||typeof e!="object")return{};let r=tc(e.role,o,ha)??{},a=o.sized?k3(DC(e,t),t):{};return{...r,...a}}function Ode(e,o,t){t.fontFamily&&e.fontFamily===t.fontFamily&&(e.fontFamily=o.fontFamily),t.fontSize&&e.fontSize===t.fontSize&&(e.fontSize=o.fontSize)}function P3(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===Lr&&(t?a.setAttribute?.(EC,""):a.removeAttribute?.(EC))}var EC="data-sf-part-para",T3=Object.keys(Vp({},lc)),Mp=new Set(["color","overflowWrap",Lr,"fontStyle"]),Np=T3.filter(e=>!Mp.has(e));function MC(e,o,t,r=l=>l,a=()=>!1,n=()=>null,s=[]){let l=new Map;for(let u of e){let h=Ep(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(!E3(u))continue;let h=OC(t,u,Na(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=Na(o[g])??{},_=OC(t,x,E,a(x),y);_&&d.set(u,_)}return d.size||c.size?{rules:d,kindRules:c,drawn:new Set(l.keys())}:null}function OC(e,o,t,r,a){let n=Vp(t,lc,{blockDrawsStyle:r}),s=m3(t),l=Br(t.textStyle)?t.textStyle:void 0;return!Object.values(n).some(Boolean)&&!Object.keys(s).length&&!l&&!a?null:{stamp:O3(e,o),declarations:n,...Object.keys(s).length?{phone:s}:{},...l?{textStyle:l}:{},...a?{motion:a}:{}}}function E3(e){return e.startsWith("@")}function Yp(e,o){return e?.kindRules.get(o)??null}function O3(e,o){let t=r=>r.replace(/[^A-Za-z0-9_-]+/g,"-");return`${t(e)}~${t(o)}`}function HC(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])=>`${_3(g)}: ${y}`).join("; "),d=`[${zp}="${n}"]`,u=l.filter(([x])=>!Mp.has(x)),h=l.filter(([x])=>Mp.has(x));u.length&&o.push(`${d}, *:has(> ${d}) { ${c(u)} }`),h.length&&o.push(`${d} { ${c(h)} }`),s[Lr]&&(o.push(`*:has(> ${d}) { ${Lr}: ${s[Lr]} }`),o.push(...ic(d,`*:has(> ${d})`)));let p=Object.entries(a.phone??{}).filter(([,x])=>x!=="");p.length&&o.push(`@media ${Ca} { ${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 ic(e,o){let t=`var(${Lr})`,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 _3=e=>e.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`);function zC(e,o){if(!e)return null;let t=Ba(o),r=e.rules.get(t);if(r)return r;if(t.length<R3||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 R3=8;function WC(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 Xp=e=>e==="sentence"?"none":void 0,jC=["font","color","size","sizeTablet","sizePhone","weight","italic","lineHeight","lineHeightTablet","lineHeightPhone","letterSpacing","letterSpacingTablet","letterSpacingPhone","paragraphSpacing","paragraphSpacingTablet","paragraphSpacingPhone","letterCase","largestSize","largestSizeTablet","largestSizePhone"],Wa=["desktop","tablet","phone"],Vn=(e,o)=>o==="desktop"?e:o==="tablet"?B3(e):L3(e),Nr=(e,o)=>o==="desktop"?e:A3(e,o);function Qp(e,o,t,r=ei()){return $C("textSize",o,e.sizeTablet,e.sizePhone,r)[t]}var N3=[["lineSpacing","lineHeight","line"],["letterSpacing","letterSpacing","letter"]];function Zp(e){for(let[o,t,r]of N3)for(let a of Wa)if(e===Nr(o,a))return{key:Vn(t,a),view:a,spacing:r};return{key:e,view:"desktop",spacing:null}}function lt(e){let o={};for(let t of jC)e[t]!==void 0&&(o[t]=e[t]);return o}function em(e,o){let{auto:t,...r}=e,a=new Set(o??[]),n=jC.filter(s=>a.has(s)&&e.values[s]===void 0);return n.length?{...r,auto:n}:r}function KC(e){let o=e.fonts,t=e.sizes,r=e.typography,a=KI(e.compression),n={"heading-1":{font:he(o.heading),size:$(t.headingLarge),weight:$(r.weight),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:Xp(r.case),largestSize:$(r.maxPx)},"heading-2":{font:he(o.heading2),size:$(t.headingMedium),weight:$(r.weight2),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:Xp(r.case2)},"heading-3":{font:he(o.heading3),size:$(t.headingSmall),weight:$(r.weight3),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:Xp(r.case3)},"body-1":{font:he(o.body),size:$(t.body)},"body-5":{font:he(o.label),size:$(t.label)}};return UC().map(({id:s,kind:l,name:c})=>({id:s,kind:l,name:c,values:lt(n[s]??{})}))}function om(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=>em({...o,values:lt(o.values??{})},Array.isArray(o.auto)?o.auto:void 0)):null}function Gde(e){return om(e)??[]}function qC(e){return om(e)??UC().map(({id:o,kind:t,name:r})=>({id:o,kind:t,name:r,values:{}}))}function Ct(e,o){let t=KC(o),r=om(e);return r?r.map(a=>{let n={...Jp(t,a.id)};for(let s of a.auto??[])delete n[s];return{...a,values:lt({...n,...a.values})}}):t}var Jp=(e,o)=>e.find(t=>t.id===o)?.values??{},GC=["heading-1","heading-2","heading-3"];function VC({saved:e,old:o,cur:t,next:r,sizeOf:a,panelView:n="desktop"}){let s=KC(o),l=qC(e),c=Ct(l,o),d=[],u=r.map(p=>{let x=t.find(k=>k.id===p.id),g=l.find(k=>k.id===p.id);if(!x||!g)return M3([p],a,n)[0];let y={...g.values},E=new Set(g.auto??[]),_=p.values,w=x.values,I=[...new Set([...Object.keys(_),...Object.keys(w)])].filter(k=>JSON.stringify(_[k])!==JSON.stringify(w[k])),v=k=>Zp(k).spacing==="letter";I.sort((k,C)=>Number(v(k))-Number(v(C)));for(let k of I){let{key:C,view:F,spacing:D}=Zp(k),T=C,R=_[k];if(R===void 0){delete y[T],Jp(s,p.id)[T]!==void 0&&(d.push([p.id,T]),E.add(T));continue}if(E.delete(T),D==="line")y[T]=Ga(R/100,3);else if(D==="letter"){let N={...c.find(A=>A.id===p.id)?.values??{}};for(let A of I)_[A]===void 0&&delete N[Zp(A).key];let b=lt({...N,...y}),O=Qp(b,a({...p,values:b}),F);y[T]=O?Ga(R/O,4):0}else y[T]=R}return em({id:p.id,kind:p.kind,name:p.name,values:lt(y)},E)}),h=o.compression;if(d.some(([p,x])=>(x==="lineHeight"||x==="letterSpacing")&&GC.includes(p))&&fr(h)!=="normal"){for(let p of GC){let x=u.find(y=>y.id===p);if(!x)continue;let g={...x.values};for(let y of["lineHeight","letterSpacing"])d.some(([E,_])=>E===p&&_===y)||g[y]===void 0&&!(x.auto??[]).includes(y)&&(g[y]=Jp(s,p)[y]);x.values=lt(g)}h="normal"}return{saved:u,old:{...o,compression:h}}}function YC(e,o){let t={text_styles:e.saved};return e.old.compression!==o.compression&&(t.heading_compression=fr(e.old.compression)),t}var Ga=(e,o)=>Number(e.toFixed(o)),XC=(e,o)=>Wa.indexOf(e)<Wa.indexOf(o)?o:e;function ZC(e,o,t="desktop"){return e.map(r=>{let a={...r.values},n=o(r);for(let s of Wa){let l=Vn("lineHeight",s),c=r.values[l],d=r.values[Vn("letterSpacing",s)];delete a[l],c!==void 0&&(a[Nr("lineSpacing",s)]=Ga(c*100,1));let u=XC(s,t);d!==void 0&&(a[Nr("letterSpacing",s)]=Ga(d*Qp(r.values,n,u),u===s?2:4))}return{id:r.id,kind:r.kind,name:r.name,values:a}})}function M3(e,o,t="desktop"){return e.map(r=>{let a=r.values,n={...a};for(let d of Wa)delete n[Nr("lineSpacing",d)],delete n[Nr("letterSpacing",d)];let s={id:r.id,kind:r.kind,name:r.name,values:lt(n)},l={...s.values},c=o({...s,values:{...s.values}});for(let d of Wa){let u=a[Nr("lineSpacing",d)],h=a[Nr("letterSpacing",d)];if(typeof u=="number"&&(l[Vn("lineHeight",d)]=Ga(u/100,3)),typeof h=="number"){let p=Qp(s.values,c,XC(d,t));l[Vn("letterSpacing",d)]=p?Ga(h/p,4):0}}return{...s,values:lt(l)}})}function Ude(e){let o={fonts:yn({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:hf({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:fr(e.heading_compression),typography:VI(e)},t=e.text_styles??null,r=Array.isArray(t)?tm(Ct(t,o),o):o;return{fonts:yn(r.fonts),sizes:hf(r.sizes),compression:fr(r.compression),typography:r.typography,textStyles:t}}function tm(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 H3(e){return e==="accent"?"var(--accent)":e==="text"?"var(--fg)":e==="labels"?"var(--fg-dim)":D3(e)===e.toLowerCase()?e:null}function $de(e){let o=[];for(let t of e){let r=t.values,a=`.${WC(t)}`,n=`[${Ha}="${t.id}"]`,s=`${a}, ${n}`,l=[],c=r.font!==void 0?Mo.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?H3(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=F3(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(...ic(`:is(${s})`,`*:has(> ${n})`))),o.push(...z3(t,s,a,n))}return o.join(`
|
|
5
|
-
`)}function z3(e,o,t,r){let a=e.values,n=Ut("textSize",a.size,a.sizeTablet,a.sizePhone),s=Ut("textSize",a.largestSize,a.largestSizeTablet,a.largestSizePhone),l=Ut("same",a.lineHeight,a.lineHeightTablet,a.lineHeightPhone),c=Ut("same",a.letterSpacing,a.letterSpacingTablet,a.letterSpacingPhone),d=Ut("spacing",a.paragraphSpacing,a.paragraphSpacingTablet,a.paragraphSpacingPhone),u=$C("textSize",a.size,a.sizeTablet,a.sizePhone,ei()),h=W3[e.id],p=[];for(let[x,g]of[["tablet",Qy],["phone",Ca]]){let y=[],E=[],_=u[x],w=s[x],I=n[x]===void 0&&w===void 0||_===void 0?void 0:w===void 0?_:Math.min(_,w);I!==void 0&&E.push(`font-size: ${I}px`);let v=[];l[x]!==void 0&&v.push(`line-height: ${l[x]}`),c[x]!==void 0&&v.push(`letter-spacing: ${c[x]}em`),e.kind==="body"&&E.push(...v),d[x]!==void 0&&E.push(`--sf-part-para: ${d[x]}px`),E.length&&y.push(`${o} { ${E.join("; ")} }`),e.kind==="heading"&&v.length&&y.push(`${o}, ${t}:is(h1, h2, h3, h4), ${r}:is(h1, h2, h3, h4) { ${v.join("; ")} }`),d[x]!==void 0&&y.push(`*:has(> ${r}) { --sf-part-para: ${d[x]}px }`),d[x]!==void 0&&!a.paragraphSpacing&&y.push(...ic(`: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 W3={"heading-1":"headingLarge","heading-2":"headingMedium","heading-3":"headingSmall","body-1":"body","body-5":"label"};function jde(e){return e!==!0&&e!==!1?"":`em.text-accent { font-style: ${e?"italic":"normal"} }`}function JC(e){return e?sc[e]:void 0}function rm(e){let o=qn(e);return lt({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 QC(e){return Object.keys(rm(e)).length>0}function ev({saved:e,old:o,styleId:t,values:r}){let a=qC(e);return{saved:G3(a,t,r),old:o}}function G3(e,o,t){return e.map(r=>r.id===o?em({...r,values:lt({...r.values,...t})},r.auto):r)}var q3={desktop:"desktop",tablet:"tablet",mobile:"phone"},ov=["font","color","size","weight","emphasis","lineSpacing","letterSpacing","paragraphSpacing","letterCase","largestSize"],V3=["size","lineSpacing","letterSpacing","letterCase"],Y3=500,am=Mo.map(e=>({value:e.key,label:e.label,family:`var(${e.cssVar})`,italic:e.italicLoaded}));function tv({saved:e,old:o,colours:t,sizeOf:r,onChange:a,openId:n,onOpenChange:s,readOnly:l=!1,withoutSize:c=!1}){let d=K3(),[u,h]=$3(null),p=Ct(e,o),x=q3[d],g=ZC(p,r,x);return U3(j3,{styles:g,onChange:y=>a(VC({saved:e,old:o,cur:g,next:y,sizeOf:r,panelView:x})),fonts:am,colours:t,settings:c?ov.filter(y=>y!=="size"):ov,auto:V3,openId:n===void 0?u:n,onOpenChange:s??h,readOnly:l,device:x,fallback:y=>{let E=p.find(w=>w.id===(y.kind==="heading"?"heading-1":"body-1")),_={};return E?.values.font&&y.id!==E.id&&(_.font=E.values.font),y.kind==="heading"&&(_.weight=Y3),_}})}var av=["font","size","weight","emphasis"],J3=500;function Q3({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 e6(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 nv(e){let{headingWeight:o,open:t,onOpenChange:r,onChange:a,withoutSize:n=!1}=e,s=Q3(e);return rv(Z3,{label:i("Accent"),children:rv(X3,{style:s,fonts:am,settings:n?av.filter(l=>l!=="size"):av,auto:["size"],fallback:()=>({weight:o??J3}),open:t,onOpenChange:r,onChange:l=>e6(s,l).forEach(a)})})}import{Button as k6,EmptyState as P6,Tabs as T6,Tooltip as due,tabButtonId as E6,tabPanelId as O6}from"efficient-shell/ui";import{ContrastIcon as _6,NoteIcon as R6,SettingsIcon as F6,TypeIcon as A6}from"efficient-easel/icons";function sv(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 im}from"react/jsx-runtime";import{ListIcon as p6,PaddingTopIcon as m6}from"efficient-easel/icons";import{jsx as cc}from"react/jsx-runtime";import{SettingsDefaultReset as o6,SettingsField as t6,SettingsSegmented as r6}from"efficient-easel/panel";import{WidthIcon as a6}from"efficient-easel/icons";function lv({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 cc(t6,{label:d,labelId:a,icon:cc(a6,{}),value:l?n:void 0,changed:!l,action:cc(o6,{words:ee()?.panel,label:d,changed:!l,onReset:()=>t(void 0)}),hint:s,children:cc(r6,{options:[{label:i(Er.full),id:"full"},{label:i(Er.page),id:"content"}],value:c,ariaLabel:d,onChange:t})})}import{HEADER_TYPE as nm,FOOTER_TYPE as n6}from"efficient-easel/draw";var s6=new Set(["Hero","HeroSingle","IntroBleed"]),iv={min:56,max:140,default:88},mfe={min:0,max:120,step:2,default:32},hfe=`var(--sf-header-h, ${iv.default}px)`,l6="--sf-header-set-h",xfe="--sf-header-h",Ife=`var(${l6}, ${iv.default}px)`,gfe="sf-header-clearance",bfe="sf-sticky-underheader";function i6(e){return e?.find(o=>o?.type&&o.type!==nm)??null}function cv(e){let o=i6(e)?.type;return!o||!s6.has(o)}function yfe(e){return!cv(e)}function Sfe(e){return!!e?.some(o=>o?.type===nm)}function wfe(e){return!e||e.length===0?!1:!e.some(o=>o?.type===nm||o?.type===n6)}var c6=["auto","shared","own"],sm="auto",d6="topSpace",Cfe="data-top-space";function f6(e){return c6.includes(e)?e:sm}function u6(e,o){let t=f6(e?.props?.[d6]);return t==="own"?!0:t==="shared"?!1:cv(o)}function vfe(e,o){return u6(e,o)?"own":null}function h6(){return{type:"custom",render:({value:e,onChange:o})=>im(lv,{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 x6=[{label:"Auto",value:"auto"},{label:"Shared",value:"shared"},{label:"Its own",value:"own"}],Bfe={pageBackground:Tw(),topSpace:jo("Top space",im(m6,{}),x6,sm),widthChoice:h6()},Yn=["pageBackground","topSpace","widthChoice"],I6="Record type",lm=new Map,dv=-1;function g6(e){dv!==Hf()&&(lm.clear(),dv=Hf());let o=Mf(),t=o.some(a=>a.key===e)?"":e,r=lm.get(t);return r||(r=jo(I6,im(p6,{}),[...o.map(a=>({label:a.label,value:a.key})),...t?[{label:t,value:t}]:[]],hr),lm.set(t,r)),r}var fv=new WeakMap;function Dfe(e,o){if(!_l()||Mf().length<2||El in e)return e;let t=g6(zf(o)),r=fv.get(e);if(r&&r.row===t)return r.fields;let a={[El]:t,...e};return fv.set(e,{row:t,fields:a}),a}import{previewFrame as L6}from"efficient-easel/screen/lib/document/preview-dom";import{useEasel as b6}from"efficient-easel/easel";function dc({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=b6(F=>F),{fonts:a,setFonts:n,sizes:s,setSizes:l,headingCompression:c,setHeadingCompression:d,headingTypography:u,setHeadingTypography:h,textStyles:p,setTextStyles:x}=ie(),g=t.data,y=g.root?.props??{},E=e?yn(y.fonts):a,_=e?zI:s,w=e?fr(y.headingCompression):c,I=e?qI(y.headingTypography):u,v={fonts:E,sizes:_,compression:w,typography:I},k=e?y.textStyles:p,C=F=>r({type:"replaceRoot",root:{...g.root,props:{...y,...F}},recordHistory:!0});return{fonts:E,sizes:_,compression:w,typography:I,old:v,saved:k,write:(F,D)=>{let T=tm(Ct(F.saved,F.old),F.old);e?C({textStyles:F.saved,fonts:T.fonts,headingCompression:T.compression,headingTypography:T.typography}):(x(F.saved),n(T.fonts),l(T.sizes),d(T.compression),h(T.typography)),o(YC(F,v),D)},writeRoot:C}}var dm="sf-site-styles",B6="sf-site-styles-tabpanel",um=!1,D6="Show hints";function pm({shown:e,onChange:o}){return te("div",{className:"sf-hints",children:te(k6,{type:"button",variant:"ghost","aria-pressed":e,leftIcon:te(R6,{size:13}),onClick:()=>o(!e),children:i(D6)})})}var mv="text",$a="basics",uv="this-page-group",Ua=[{id:$a,label:"Basics",icon:te(F6,{})},{id:"theme",label:"Theme",icon:te(_6,{})},{id:"text",label:"Text",icon:te(A6,{})}];function N6({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=pv(d=>d),{theme:a,setTheme:n}=ie(),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 te(Tg,{value:e?l.theme:a,onChange:c})}function M6({themeFromDocument:e,persist:o}){let[t,r]=fc(null),{theme:a,setFonts:n,setSizes:s,setHeadingTypography:l}=ie(),c=dc({themeFromDocument:e,persist:o}),{old:d,saved:u,writeRoot:h}=c,p=c.fonts,x=c.sizes,g=c.typography,y=C=>C.values.size??U6(z6[C.id]??"body")??W6[C.kind],E=C=>c.write(C),_=H6(a),w=C=>{let F={...p,accent:C};e?h({fonts:F}):n(F),o({accent_font:C})},I=C=>{s({...x,accent:C}),o({accent_size_px:C})},v=C=>{let F={...g,weightStrong:C};e?h({headingTypography:F}):l(F),o({heading_weight_strong:C})},k=C=>{let F={...g,italicStrong:C};e?h({headingTypography:F}):l(F),o({accent_italic:C})};return Mr(Hr,{children:[te(tv,{saved:u,old:d,colours:_,sizeOf:y,onChange:E,openId:t===cm?null:t,onOpenChange:r,withoutSize:e}),te(nv,{font:p.accent,size:x.accent,weight:g.weightStrong,italic:g.italicStrong,headingWeight:g.weight,open:t===cm,onOpenChange:C=>r(C?cm:null),onChange:C=>{C.key==="font"?w(C.value):C.key==="size"?I(C.value):C.key==="weight"?v(C.value):k(C.value)},withoutSize:e})]})}var cm="accent";function H6(e){let o=fa(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 z6={"heading-1":"heading","heading-2":"heading2","heading-3":"heading3","body-1":"body","body-5":"label"},W6={heading:32,body:14},G6={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 U6(e){if(typeof document>"u")return null;let o=(L6()?.contentDocument??document).querySelector(G6[e]);if(!o)return null;let t=parseFloat(getComputedStyle(o).fontSize);return Number.isFinite(t)?t:null}function $6({themeFromDocument:e,persist:o,showHint:t}){let{appState:r,dispatch:a}=pv(p=>p),{cornerRadiusPx:n,setCornerRadiusPx:s}=ie(),l=r.data,c=l.root?.props??{},d=c.cornerRadiusPx===void 0?GI[WI(c.cornerStyle)]:rt(c.cornerRadiusPx),u=e?d:n,h=p=>a({type:"replaceRoot",root:{...l.root,props:{...c,...p}},recordHistory:!0});return te(Lw,{value:u,onChange:p=>{e?h({cornerRadiusPx:p}):s(p),o({corner_radius_px:p})},showHint:t})}function j6(e){return{site_width:e}}function K6({persist:e,showHint:o}){let{siteWidth:t,setSiteWidth:r,sectionBackgroundWidth:a,setSectionBackgroundWidth:n,sectionContentWidth:s,setSectionContentWidth:l}=ie();if(fm()!=="desktop")return null;let c=typeof t=="number"?t:lo.default,d=p=>{r(p),e(j6(p),p===null)},u=p=>{n(p),e({section_background_width:p},!0)},h=p=>{l(p),e({section_content_width:p},!0)};return Mr(Hr,{children:[te(nC,{value:a??"full",changed:a!==null,detail:i("Full width"),onChange:u,onReset:()=>u(null),hint:o?rC:void 0}),te(sC,{mode:s??"content",px:c,min:lo.min,max:lo.max,changed:typeof t=="number"||s!==null,detail:`${i("Content width")} ${lo.default}px`,onMode:h,onPx:p=>d(p),onReset:()=>{h(null),d(null)},hint:o?aC:void 0})]})}function q6(e){return{block_gap:e}}function V6(e){return{block_gap_phone:e}}function Y6(e){return{site_gutter:e}}function X6(e){return{site_gutter_phone:e}}function hv(e,[o,t],r){o(e),r(t(e),e===null)}function Z6({persist:e,showHint:o}){let{siteGutter:t,siteGutterPhone:r,setSiteGutter:a,setSiteGutterPhone:n}=ie(),s=oC(fm(),{gutter:t,phone:r});if(!s)return null;let l=s.key==="site_gutter_phone"?[n,X6]:[a,Y6];return te(tC,{value:s.value,onChange:c=>hv(c,l,e),showHint:o,unsetPx:s.unsetPx,bounds:s.bounds})}function J6({persist:e,showHint:o}){let{blockGap:t,blockGapPhone:r,setBlockGap:a,setBlockGapPhone:n}=ie(),s=Hw(fm(),{gap:t,phone:r});if(!s)return null;let l=s.key==="block_gap_phone"?[n,V6]:[a,q6];return te(zw,{value:s.value,onChange:c=>hv(c,l,e),showHint:o,followsPx:s.followsPx})}function Q6({persist:e,showHint:o=!0}){return Mr(Hr,{children:[te(K6,{persist:e,showHint:o}),te(Z6,{persist:e,showHint:o}),te(J6,{persist:e,showHint:o})]})}function ez(e){return{card_shadow:e}}function oz(e){return e===null?{shadow_color:null}:{shadow_color:jI(e)}}function tz(e){return{hover_effect:e}}function rz({persist:e,showHint:o=!0}){let{cardShadow:t,setCardShadow:r,shadowColor:a,setShadowColor:n,hoverEffect:s,setHoverEffect:l}=ie();return Mr(Hr,{children:[te(Bw,{value:t,onChange:c=>{r(c),e(ez(c),!0)},showHint:o}),te(Nw,{value:a,onChange:c=>{n(c),e(oz(c),c===null)},showHint:o}),te(Kw,{value:s,onChange:c=>{l(c),e(tz(c),!0)},showHint:o})]})}function az(e){return{photography_grayscale:e}}function nz({persist:e,showHint:o}){let{photographyGrayscale:t,setPhotographyGrayscale:r}=ie();return te(Vw,{value:t,onChange:a=>{r(a),e(az(a),!0)},showHint:o})}function sz({persist:e,showHint:o=!0}){return te(Hr,{children:te(nz,{persist:e,showHint:o})})}function lz(e){return{share_button_on_posts:e}}function iz({persist:e,showHint:o=!0}){let{shareButtonOnPosts:t,setShareButtonOnPosts:r}=ie();return te(Yw,{value:t,onChange:a=>{r(a),e(lz(a),!0)},showHint:o})}function ja(){let{websiteName:e}=ie();return e?.trim()||tg}function uc({themeFromDocument:e=!1,tokenRef:o,siteId:t,onNotify:r,tab:a,onTabChange:n,initialTab:s,revealPageGroup:l=!1,onPageGroupRevealed:c}){let{persist:d}=ya({themeFromDocument:e,tokenRef:o,siteId:t,onResult:w=>{let I=sv(w);I&&r?.(I.msg,I.tone)}}),[u,h]=fc(s??Ua[0].id),p=a!==void 0,x=p?a:u,g=p?n??(()=>{}):h,y=Ua.find(w=>w.id===x)??Ua[0],[E,_]=fc(um);return Mr(Hr,{children:[te(fz,{activeId:y.id,onSelect:g}),Mr("div",{id:O6(dm,y.id),className:B6,role:"tabpanel","aria-labelledby":E6(dm,y.id),children:[x===$a&&Mr(Hr,{children:[te($6,{themeFromDocument:e,persist:d,showHint:E}),!e&&te(rz,{persist:d,showHint:E}),!e&&te(Q6,{persist:d,showHint:E}),!e&&te(sz,{persist:d,showHint:E}),!e&&te(iz,{persist:d,showHint:E}),te(cz,{reveal:l,onRevealed:c}),te(pm,{shown:E,onChange:_})]}),x==="theme"&&te(N6,{themeFromDocument:e,persist:d}),x==="text"&&te(M6,{themeFromDocument:e,persist:d})]})]})}function cz({reveal:e,onRevealed:o}){let[t,r]=fc(!0),a=v6(o);return a.current=o,C6(()=>{if(!e)return;r(!0);let n=requestAnimationFrame(()=>{document.getElementById(uv)?.scrollIntoView({block:"start"}),a.current?.()});return()=>cancelAnimationFrame(n)},[e]),te(w6,{title:i("This page"),open:t,onToggle:r,id:uv,children:te(dz,{})})}function dz(){let{fields:e,values:o,readOnly:t,onChange:r}=y6(),a=Object.fromEntries(Yn.filter(n=>n in e).map(n=>[n,e[n]]));return Object.keys(a).length===0?te(P6,{variant:"none",icon:!1,message:i("This page has no look of its own to set.")}):te(S6,{fields:a,values:o,onChange:r,readOnly:t,tabs:!1,idPrefix:"this-page",ariaLabel:i("This page")})}function fz({activeId:e,onSelect:o}){return te("div",{className:"es-insp-tabs",children:te(T6,{variant:"underline",block:!0,labelsFit:!0,"aria-label":i("Styles"),idPrefix:dm,value:e,onChange:o,items:Ua.map(t=>{let r=i(t.label);return{id:t.id,icon:t.icon,label:r}})})})}import{InspectorIconButton as Cz}from"efficient-easel/chrome";import{Button as vv,Dialog as vz,FormField as kz,Input as kv,PopupMenu as Pz,PopupMenuItem as Pv,toast as Tv}from"efficient-shell/ui";import{LayersTree as Tz,TreeGroupLabel as Ez,TreeRow as Ev,TreeRowAction as xc}from"efficient-easel/tree";import{AddIcon as Oz,DuplicateIcon as _z,PageIcon as Rz,SettingsIcon as Fz}from"efficient-easel/icons";import{PagesIcon as Az}from"efficient-easel/rail";import{useEaselHost as Lz}from"efficient-easel/screen/lib/host";var mm="Main Pages",uz="Dynamic Pages",hm="dynamic",pz="dynamic";function Xn(e){return e.kind===pz}function xv(e){let o=[],t=[];for(let r of e){if(Xn(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??mm,rows:[r]})}if(t.length){let r=o.findIndex(a=>a.key.startsWith("system:"));o.splice(r===-1?o.length:r,0,{key:hm,label:uz,rows:t})}return o}import{useEaselSession as Fv}from"efficient-easel/screen/lib/session-context";import{useCallback as pc,useEffect as mz,useSyncExternalStore as hz}from"react";import{useScreenDocument as yv}from"efficient-easel/screen/components/ScreenDocumentContext";var Iv=new WeakMap;function Zn(e){let o=Iv.get(e);return o||(o={rows:null,loading:null,listeners:new Set},Iv.set(e,o)),o}function xm(e,o){e.rows=o;for(let t of e.listeners)t()}var mc=new Set;function hc(e,o){o?mc.add(e):mc.delete(e)}function gv(e){let o=Zn(e),t=e.listPages().then(r=>xm(o,mc.size?r.filter(a=>!mc.has(a.id)):r),()=>xm(o,[])).finally(()=>{o.loading===t&&(o.loading=null)});return o.loading=t,t}var bv=()=>null,xz=()=>()=>{};function Jn(){let{adapter:e,ready:o}=yv(),t=pc(l=>{let{listeners:c}=Zn(e);return c.add(l),()=>c.delete(l)},[e]),r=pc(()=>Zn(e).rows,[e]),a=hz(o?t:xz,o?r:bv,bv);mz(()=>{if(!o)return;let l=Zn(e);l.rows===null&&!l.loading&&gv(e)},[e,o]);let n=pc(()=>o?gv(e):Promise.resolve(),[e,o]),s=pc(l=>xm(Zn(e),l),[e]);return{rows:a,reload:n,setRows:s,getRows:r}}function Iz(e,o){return e?.find(t=>t.slug===o)?.label?.trim()||`/${o}`}function Sv(){let{currentSlug:e}=yv(),{rows:o}=Jn();return Iz(o,e)}import{canDuplicatePage as Bz,DuplicatePageDialog as Dz,uniqueSlug as Ov}from"efficient-easel/page-copy";var _v="sf-editor-pages-collapsed-groups";function Nz(){let e=Fv(),{siteId:o,templateId:t}=Rv(),r=ze(e).pages;if(!(!r.duplicate||t))return(a,n)=>r.duplicate(a.id,{...n,...o?{siteId:o}:{}})}function Mz(){try{let e=xa()||(typeof window>"u"?"":window.location.origin);return e?new URL(e).host:""}catch{return""}}function Av({onNavigate:e,onClose:o,activeSurface:t,onPreviewSurface:r}){let a=Fv().chrome?.pageRows,n=Lz(),{adapter:s,capabilities:l,ready:c,currentSlug:d}=Rv(),u=ja(),{rows:h,reload:p,setRows:x,getRows:g}=Jn(),[y,E]=Xt(""),[_,w]=Xt(!1),[I,v]=Xt(null),[k,C]=Xt(!1),[F,D]=Xt(""),T=yz(),R=Nz(),[N,b]=Xt(null),[O,A]=Xt(()=>{if(typeof window>"u")return new Set;try{let M=window.localStorage.getItem(_v);return new Set(M?JSON.parse(M):[])}catch{return new Set}});bz(()=>{try{window.localStorage.setItem(_v,JSON.stringify([...O]))}catch{}},[O]);let H=M=>A(ue=>{let Se=new Set(ue);return Se.has(M)?Se.delete(M):Se.add(M),Se}),G=Cv(()=>xv(h??[]),[h]),X=y.trim().toLowerCase(),K=M=>!X||M.toLowerCase().includes(X),Re=M=>X?!0:!O.has(M),le=Cv(()=>new Set((h??[]).map(M=>M.slug)),[h]),Ue=()=>{if(l.pageCreationInAdminForm){n.send("storefront-editor:new-page");return}D(""),v(null),C(!0)},Be=async()=>{let M=F.trim();if(!(!M||!c||_||!s.createPage)){w(!0),v(null);try{let ue=await s.createPage({slug:Ov(M,le),title:M,layout:{}});await p(),C(!1),D(""),e(ue.slug)}catch{v(i("Couldn\u2019t add the page \u2014 please retry."))}finally{w(!1)}}},ke=l.hasSiteSettings&&!!s.createPage,fe=async()=>{if(!(!c||_||!s.createPage)){w(!0),v(null);try{let M=await s.createPage(Uy(i("New popup"),le));await p(),e(M.slug)}catch{v(i("Couldn\u2019t add the popup \u2014 please retry."))}finally{w(!1)}}},ge=Sz(null),[Ke,qe]=Xt(null),ae=()=>{if(!ke)return Ue();if(Ke)return qe(null);let M=ge.current?.getBoundingClientRect();M&&qe({top:M.bottom+6,right:Math.max(8,window.innerWidth-M.right)})},Fe=M=>{let ue=h??[],Se=s.deletePage;if(!c||_||!Se||ue.length<=1)return;let Me=ue.findIndex(Qe=>Qe.id===M.id),He=ue.filter(Qe=>Qe.id!==M.id),Lt=M.slug===d;hc(M.id,!0),x(He),v(null),Lt&&He[0]&&e(He[0].slug);let ca=()=>{hc(M.id,!1);let Qe=g()??[];if(Qe.some(gn=>gn.id===M.id))return;let sr=[...Qe];sr.splice(Math.max(0,Math.min(Me,sr.length)),0,M),x(sr)};Tv.undoable(i("Deleted \u201C{name}\u201D",{name:M.label}),{actionLabel:i("Undo"),commit:async Qe=>{await Se(M.id,Qe),hc(M.id,!1)},undo:()=>{ca(),Lt&&e(M.slug)},onFail:()=>{ca(),Tv.error(i("Couldn\u2019t delete the page \u2014 please retry."))}})},ro=M=>n.send("storefront-editor:open-page",{slug:M}),Pe=M=>{if(!K(M.label))return null;let ue=!t&&M.slug===d,Se=l.canDeletePagesInline&&(h??[]).length>1,Me=Xn(M),He=M.kind==="lightbox",Lt=[...Me?[{label:i("Dynamic"),tone:"info"}]:[],...He?[{label:i("Lightbox"),tone:"success"}]:[],...M.draft?[{label:i("draft"),tone:"draft"}]:[]],ca=Lt.length>0?Lt:void 0,Qe=!!R&&Bz(M),sr=Qe||l.pageCreationInAdminForm||Se?Qn(wv,{children:[Qe&&be(xc,{kind:"plain",label:i("Duplicate \u201C{name}\u201D",{name:M.label}),disabled:_,onClick:()=>b(M),children:be(_z,{size:13})}),l.pageCreationInAdminForm&&be(xc,{kind:"plain",label:i("Page settings for \u201C{name}\u201D",{name:M.label}),onClick:()=>ro(M.slug),children:be(Fz,{size:13})}),Se&&be(xc,{kind:"delete",label:i("Delete \u201C{name}\u201D",{name:M.label}),disabled:_,onClick:()=>Fe(M),children:be(Im,{name:"trash",size:13,strokeWidth:1.7,rounded:!0})})]}):void 0;return be(Ev,{icon:be(Rz,{size:14}),name:M.label,selected:ue,onSelect:()=>e(M.slug),badge:ca,actions:sr,rowProps:{"data-page-slug":M.slug}},M.id)},De=(M,ue,Se)=>{let Me=Se.filter(Boolean);if(Me.length===0)return null;let He=Re(M);return Qn(gz,{children:[be(Ez,{count:Me.length,countLabel:fo("{n} page","{n} pages",Me.length),expanded:He,onToggle:()=>H(M),children:ue}),He&&Me]},M)},Io=(a?.rows??[]).filter(M=>K(M.label)).map(M=>{let ue=t===M.key;return be(Ev,{icon:M.icon,name:M.label,selected:ue,onSelect:()=>r(M.key),badge:{label:i("Preview"),tone:"warning"},actions:be(xc,{kind:"plain",label:i("Open the {name} in a new tab",{name:M.label}),onClick:()=>window.open(M.href,"_blank","noopener,noreferrer"),children:be(Im,{name:"external-link",size:13,strokeWidth:1.7,rounded:!0})}),rowProps:{"data-shop-surface":M.key}},M.key)}),So=l.hasSiteSettings&&!!a,wo=(()=>{if(h===null)return null;let M=[],ue=!1;for(let Se of G){So&&!ue&&Se.key.startsWith("system:")&&(M.push(De("shop",a.title,Io)),ue=!0);let Me=Se.key===hm||Se.label===mm?i(Se.label):Se.label;M.push(De(Se.key,Me,Se.rows.map(Pe)))}return So&&!ue&&M.push(De("shop",a.title,Io)),M})();return Qn("div",{className:"sf-pages",children:[be(wz,{icon:be(Az,{}),title:i("Pages"),context:u,actions:be(Cz,{buttonRef:ge,label:ke?i("Add"):i("New page"),hasPopup:ke?"menu":void 0,expanded:ke?Ke!==null:void 0,onClick:ae,children:be(Oz,{size:15})})}),Ke&&be(Pz,{portal:!0,style:{top:Ke.top,right:Ke.right},onClose:()=>qe(null),children:Qn("div",{role:"menu","aria-label":i("Add"),children:[be(Pv,{role:"menuitem",onClick:()=>{qe(null),Ue()},children:i("Page")}),be(Pv,{role:"menuitem",disabled:_,onClick:()=>{qe(null),fe()},children:i("Popup")})]})}),be("div",{className:"sf-pages-find",children:be(kv,{type:"search",leftIcon:be(Im,{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&&!k&&be("div",{className:"sf-note sf-note--error",role:"alert",children:I}),wo===null?be("div",{className:"sf-note",children:i("Loading\u2026")}):wo.some(Boolean)?be(Tz,{ariaLabel:i("Pages"),className:"sf-scroll",children:wo}):be("div",{className:"sf-note",children:y.trim()?i("No pages match your search"):i("No pages yet. Add one with + above.")}),R&&N&&be(Dz,{source:{title:N.label,slug:N.slug},taken:le,host:Mz(),duplicate:M=>R(N,M),onClose:()=>b(null),onDuplicated:M=>{b(null),p(),e(M.slug)}},N.id),be(vz,{open:k,onClose:()=>C(!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:Qn(wv,{children:[be(vv,{variant:"secondary",onClick:()=>C(!1),children:i("Cancel")}),be(vv,{onClick:()=>{Be()},disabled:_||!F.trim(),loading:_,children:i("Add page")})]}),children:be(kz,{label:i("Page name"),htmlFor:T,hint:F.trim()?i("URL: /{slug}",{slug:Ov(F,le)}):void 0,error:I??void 0,children:be(kv,{id:T,value:F,invalid:!!I,onChange:M=>D(M.target.value),onKeyDown:M=>{M.key==="Enter"&&Be()},placeholder:i("e.g. About")})})})]})}import{jsx as Dv}from"react/jsx-runtime";import{createContext as zz,useCallback as Wz,useContext as Gz,useMemo as Uz,useState as $z}from"react";import{CanvasChromeContext as jz}from"efficient-easel/easel";import{useSelectHandler as Kz}from"efficient-easel/draw/client";import{parseHexColor as Hz}from"efficient-shell/format";var Ic=["chat-bubble-left-right","chat-bubble-oval-left-ellipsis","chat","megaphone","phone","sparkles"],Ka=Ic[0];var zr="right";function gc(e){return Ic.includes(e??"")?e:Ka}function Lv(e){return e==="left"?"left":zr}function Bv(e){return e&&Hz(e)===e.toLowerCase()?e.toLowerCase():""}var Nv="chat",bc={enabled:!0,title:"",subtitle:"",greeting:"",launcherColor:"",launcherIcon:"",launcherPosition:zr,launcherLabel:"",showOnPhones:!0};function epe(e){return{enabled:e.enabled,title:e.title,subtitle:e.subtitle,greeting:e.greeting,launcherColor:Bv(e.launcherColor),launcherIcon:e.launcherIcon?gc(e.launcherIcon):"",launcherPosition:Lv(e.launcherPosition),launcherLabel:e.launcherLabel??"",showOnPhones:e.showOnPhones!==!1}}var Mv=zz({chat:bc,setChat:()=>{},setSelected:()=>{},setSelectHandler:()=>{}});function ope({children:e,chat:o=bc,onChatChange:t}){let[r,a]=$z(!1),n=Wz(d=>t?.(d),[t]),{select:s,setSelectHandler:l}=Kz(),c=Uz(()=>({selected:()=>r?Nv:null,select:d=>d===Nv&&s()}),[r,s]);return Dv(Mv.Provider,{value:{chat:o,setChat:n,setSelected:a,setSelectHandler:l},children:Dv(jz.Provider,{value:c,children:e})})}var yc=()=>Gz(Mv);import{jsx as gm}from"react/jsx-runtime";import{DesktopIcon as qz,PhoneIcon as Vz,TabletIcon as Yz}from"efficient-easel/icons";import{VIEW_TIERS as Xz,VIEW_TIER_LABEL as Zz}from"efficient-easel/draw";var Jz={desktop:gm(qz,{}),tablet:gm(Yz,{}),mobile:gm(Vz,{})},Hv=Xz.map(e=>({id:e,get label(){return i(Zz[e])},icon:Jz[e]}));import{PreviewDeviceContext as lZ}from"efficient-easel/draw/client";import{jsx as Qz}from"react/jsx-runtime";import{createContext as eW,useCallback as zv,useContext as oW,useMemo as tW,useRef as rW}from"react";var aW=Object.fromEntries(Sl.map(e=>[e,{value:"",error:null}])),Wv=eW({links:ag,rows:aW,canSave:!1,saveLink:async()=>({ok:!1,error:"There is no website to save to."}),openPanel:()=>{},setOpenHandler:()=>{}});function fpe({children:e,value:o}){let t=rW(()=>{}),r=zv(()=>t.current(),[]),a=zv(s=>{t.current=s},[]),n=tW(()=>({...o,openPanel:r,setOpenHandler:a}),[o,r,a]);return Qz(Wv.Provider,{value:n,children:e})}var es=()=>oW(Wv);import{jsx as nW}from"react/jsx-runtime";import{createContext as sW,useContext as lW,useMemo as iW,useState as cW}from"react";var Gv=sW(null);function hpe({children:e}){let[o,t]=cW(null),r=iW(()=>({surface:o,setSurface:t}),[o]);return nW(Gv.Provider,{value:r,children:e})}function Uv(){return lW(Gv)??{surface:null,setSurface:()=>{}}}import{createPreviewSelectionContext as dW}from"efficient-easel/draw/client";var os="Scrolling Bar",{Provider:gpe,useSelection:$v}=dW("selectedHeroId"),bpe="data-sf-hero-ticker";function ype(e){return`${e}::ticker`}function Spe(e){return!e||!e.endsWith("::ticker")?null:e.slice(0,-8)||null}var jv=["","","","","",""],Kv="#ticker",bm="strip";function fW(e){return(Array.isArray(e.tickerItems)?e.tickerItems:[]).map(o=>typeof o?.text=="string"?o.text:"").filter(o=>o.trim()!=="")}function ym(e){return fW(e).length>0}function Cpe(e){return e.showTicker!==!1&&ym(e)}import{createPreviewSelectionContext as uW}from"efficient-easel/draw/client";var{Provider:Ppe,useSelection:Sc}=uW("selectedHeroPart");var Vv=["one","side","stacked"];var Epe={one:"One",side:"Side by side",stacked:"Stacked"};function wc(e){return Vv.includes(e)?e:"one"}function qv(e){return e==="one"?1:2}function Sm(e,o){if(Vv.includes(e))return e;let t=wc(o);return t==="side"?"stacked":t}function ts(e){let o=wc(e.mediaLayout);return Math.max(qv(o),qv(Sm(e.mediaLayoutPhone,o)))}var rs=["media","image","image2"],qa={media:"Media",image:"Image",image2:"Image 2"},as={media:"heroMedia",image:"heroImage",image2:"heroImage2"};function Cc(e,o){return e==="image"&&ts(o)>1?"Image 1":qa[e]}var Fpe="Video file",Ape="Upload a video file";function pW(e,o){return{field:"mediaType",is:e,default:o}}var mW=new Set(["HeroSingle"]),Yv="heroPart";function hW(e,o){return{...o,[Yv]:e}}function Lpe(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]=uo(n[l],pW(s,r));for(let[s,l]of Object.entries(a??{}))l&&(n[s]=uo(n[s],l));for(let s of rs)for(let l of o[s]??[])n[l]=hW(s,n[l]);return n}function xW(e){let o=e?.[Yv];return rs.includes(o)?o:null}function Xv(e,o){let t={};for(let[r,a]of Object.entries(e))xW(a)===o&&(t[r]=a);return t}function Zv(e){if(!mW.has(e.type))return[];let o=[{part:"media",label:qa.media,depth:0}];return(e.props.mediaType??"image")!=="video"&&(o.push({part:"image",label:Cc("image",e.props),depth:1}),ts(e.props)>1&&o.push({part:"image2",label:Cc("image2",e.props),depth:1})),o}function ns(e,o){return`${e}::${o}`}function Jv(e){if(!e)return null;let o=e.lastIndexOf("::");if(o<=0)return null;let t=e.slice(o+2);return rs.includes(t)?{nodeId:e.slice(0,o),part:t}:null}var Qv="data-sf-hero-part";import{jsx as xe,jsxs as Zr,Fragment as i0}from"react/jsx-runtime";import{useState as e7}from"react";import{useEasel as o7,useRootFields as t7}from"efficient-easel/easel";import{Button as r7,EmptyState as a7}from"efficient-shell/ui";function ek({kind:e,pageName:o}){return{name:o?.trim()||i("This page"),kindLabel:Xn({kind:e})?i("Template"):i("Page")}}import{headWords as u0,InspectorHead as n7,InspectorIconButton as c0}from"efficient-easel/chrome";import{DuplicateIcon as s7,TrashIcon as l7}from"efficient-easel/icons";import{panelFieldsOf as i7}from"efficient-easel/screen/lib/document/panel-fields";import{jsx as L,Fragment as ne,jsxs as ce}from"react/jsx-runtime";import{BlockBannerIcon as bW,BlockBoxIcon as yW,BlockButtonIcon as SW,BlockDividerIcon as tk,BlockFooterIcon as rk,BlockHeadingIcon as wW,BlockProductIcon as CW,BlockSocialIcon as vW,BlockTextIcon as kW,CardPaymentIcon as PW,ChatIcon as TW,AccountIcon as EW,GlobeIcon as OW,GridIcon as _W,ImageIcon as Cm,MapIcon as RW,MediaIcon as FW,PageIcon as AW}from"efficient-easel/icons";import{jsx as wm,Fragment as IW,jsxs as gW}from"react/jsx-runtime";var ok=gW(IW,{children:[wm("circle",{cx:"9",cy:"20",r:"1.3"}),wm("circle",{cx:"18",cy:"20",r:"1.3"}),wm("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 LW={header:ce(ne,{children:[L("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),L("path",{d:"M3 9.5h18"})]}),social:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{children:[L("circle",{cx:"11",cy:"11",r:"6"}),L("path",{d:"M20 20l-4.2-4.2"})]}),CartBlock:ok,CountrySwitchBlock:ce(ne,{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:ce(ne,{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:ce(ne,{children:[L("path",{d:"M3 9h18"}),L("path",{d:"M3 14h8M14 14h2M18 14h3"})]}),Hero:ce(ne,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M7 13.5h7M7 16.5h10"})]}),HeroSlide:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{children:[L("rect",{x:"6",y:"4",width:"12",height:"16",rx:"2"}),L("path",{d:"M9 15h6M9 17.5h4"})]}),AlloyWheelsListing:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{children:[L("path",{d:"M3.5 20h17"}),L("path",{d:"M6 20v-7M11 20V7M16 20v-5M20.5 20v-9"})]}),Logos:ce(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M3 13.5h18M7 16.8h6"})]}),Split:ce(ne,{children:[L("rect",{x:"3",y:"5",width:"8",height:"14",rx:"1.5"}),L("path",{d:"M14 8.5h6M14 12h6M14 15.5h4"})]}),Eyebrow:ce(ne,{children:[L("path",{d:"M4 8.5h4.5M11 8.5h9"}),L("path",{d:"M4 14.5h16"})]}),HeroGroup:ce(ne,{children:[L("rect",{x:"3.5",y:"4.5",width:"17",height:"15",rx:"2"}),L("path",{d:"M7 9h8M7 12.5h10M7 16h6"})]}),Form:ce(ne,{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(ne,{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:ce(ne,{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:ce(ne,{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:ce(ne,{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"})},BW=L("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2.5"}),DW={footer:rk,Footer:rk,Divider:tk,FooterDivider:tk,Banner:bW,Flex:yW,FooterSocial:vW,FooterPayment:PW,page:AW,website:OW,AccountBlock:EW,chat:TW,Heading:wW,Text:kW,ImageBlock:Cm,ButtonBlock:SW,LocationMap:RW,Grid:_W,ProductRef:CW,heroMedia:FW,heroImage:Cm,heroImage2:Cm},NW={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial",PaymentLogosBlock:"FooterPayment",SiteHeader:"header",SiteFooter:"footer"};function Wr({type:e,size:o=16,className:t}){let r=NW[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:LW[r]??BW})}import{PanelHideButton as d0}from"efficient-easel/screen/components/SidePanelHead";import{useEaselSession as c7}from"efficient-easel/screen/lib/session-context";import{jsx as we,jsxs as ss,Fragment as MW}from"react/jsx-runtime";import{useEffect as HW,useId as ak,useState as zW}from"react";import{IconPicker as WW}from"efficient-shell/ui";import{SettingsDefaultReset as GW,SettingsField as ls,SettingsSegmented as UW,SettingsSwitch as nk}from"efficient-easel/panel";import{ButtonIcon as $W,ButtonIconIcon as jW,EyeIcon as KW,PhoneIcon as qW,PlacementIcon as VW,TypeIcon as YW}from"efficient-easel/icons";var XW="Chat with us",ZW="We usually reply within a few minutes",JW="Hi! Ask us anything \u2014 about a wheel, an order, or fitment. Leave your details and we\u2019ll reply.";function vc({label:e,value:o,placeholder:t,onCommit:r,multiline:a=!1,hint:n}){let[s,l]=zW(o);HW(()=>l(o),[o]);let c=()=>{s!==o&&r(s)};return we(ls,{label:e,icon:we(YW,{}),changed:o!=="",action:we(is,{label:e,changed:o!=="",onReset:()=>r("")}),hint:n,children:a?we("textarea",{value:s,placeholder:t,rows:3,onChange:d=>l(d.target.value),onBlur:c,"aria-label":e}):we("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 is({label:e,changed:o,onReset:t}){return we(GW,{words:ee()?.panel,label:e,changed:o,onReset:t})}function QW({label:e,icon:o,checked:t,fallback:r,onChange:a,hint:n}){let s=ak();return we(ls,{label:e,labelId:s,icon:o,changed:t!==r,action:ss("span",{className:"inline-flex items-center gap-2",children:[we(nk,{checked:t,onChange:a,ariaLabelledBy:s}),we(is,{label:e,changed:t!==r,onReset:()=>a(r)})]}),hint:n})}var eG=Ic.map(e=>({value:e,icon:Fl(e)}));function oG(){let{theme:e}=ie(),o=ao(e).themes[0];return bn(o)??o?.accent??""}function sk(){let{chat:e,setChat:o}=yc(),t=ak(),r=oG(),a=e.launcherIcon?gc(e.launcherIcon):Ka;return ss(MW,{children:[we(ls,{label:i("Show the chat bubble"),labelId:t,icon:we(KW,{}),changed:!e.enabled,action:ss("span",{className:"inline-flex items-center gap-2",children:[we(nk,{checked:e.enabled,onChange:n=>o({enabled:n}),ariaLabelledBy:t}),we(is,{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.")}),ss(np,{title:i("Look"),children:[we(Eo,{label:i("Button color"),icon:we($W,{}),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:""})}),we(ls,{label:i("Icon"),icon:we(jW,{}),changed:a!==Ka,action:we(is,{label:i("Icon"),changed:a!==Ka,onReset:()=>o({launcherIcon:""})}),children:we(WW,{label:i("Icon"),value:a,options:eG,onChange:n=>o({launcherIcon:n===Ka?"":n})})}),we(ls,{label:i("Position"),icon:we(VW,{}),changed:e.launcherPosition!==zr,action:we(is,{label:i("Position"),changed:e.launcherPosition!==zr,onReset:()=>o({launcherPosition:zr})}),children:we(UW,{options:[{label:i("Right"),id:"right"},{label:i("Left"),id:"left"}],value:e.launcherPosition,ariaLabel:i("Position"),onChange:n=>o({launcherPosition:n})})}),we(vc,{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")}),we(QW,{label:i("Show on phones"),icon:we(qW,{}),checked:e.showOnPhones,fallback:bc.showOnPhones,onChange:n=>o({showOnPhones:n})})]}),ss(np,{title:i("Wording"),children:[we(vc,{label:i("Title"),value:e.title,placeholder:XW,onCommit:n=>o({title:n})}),we(vc,{label:i("Subtitle"),value:e.subtitle,placeholder:ZW,onCommit:n=>o({subtitle:n})}),we(vc,{label:i("Greeting message"),value:e.greeting,placeholder:JW,onCommit:n=>o({greeting:n}),multiline:!0}),we("p",{className:"es-field-hint sf-hint-keep",children:i("Leave a field blank to use the built-in wording.")})]})]})}import{jsx as Gr,Fragment as jm,jsxs as fk}from"react/jsx-runtime";import{useEffect as RG,useId as ck,useState as dk}from"react";import{SettingsField as FG}from"efficient-easel/panel";import{jsx as wG}from"react/jsx-runtime";import{forwardRef as tG,createElement as vm}from"react";var lk={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=tG(({color:n="currentColor",size:s=24,stroke:l=2,title:c,className:d,children:u,...h},p)=>vm("svg",{ref:p,...lk[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&&vm("title",{key:"svg-title"},c),...r.map(([x,g])=>vm(x,g)),...Array.isArray(u)?u:[u]]));return a.displayName=`${t}`,a};var rG=[["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"}]],km=J("outline","brand-facebook","BrandFacebook",rG);var aG=[["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"}]],Pm=J("outline","brand-instagram","BrandInstagram",aG);var nG=[["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"}]],Tm=J("outline","brand-line","BrandLine",nG);var sG=[["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"}]],Em=J("outline","brand-linkedin","BrandLinkedin",sG);var lG=[["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"}]],Om=J("outline","brand-pinterest","BrandPinterest",lG);var iG=[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]],_m=J("outline","brand-telegram","BrandTelegram",iG);var cG=[["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"}]],Rm=J("outline","brand-tiktok","BrandTiktok",cG);var dG=[["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"}]],Fm=J("outline","brand-wechat","BrandWechat",dG);var fG=[["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"}]],Am=J("outline","brand-whatsapp","BrandWhatsapp",fG);var uG=[["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"}]],Lm=J("outline","brand-x","BrandX",uG);var pG=[["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"}]],Bm=J("outline","brand-youtube","BrandYoutube",pG);var mG=[["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"}]],Dm=J("filled","brand-facebook-filled","BrandFacebookFilled",mG);var hG=[["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"}]],Nm=J("filled","brand-instagram-filled","BrandInstagramFilled",hG);var xG=[["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"}]],Mm=J("filled","brand-linkedin-filled","BrandLinkedinFilled",xG);var IG=[["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"}]],Hm=J("filled","brand-pinterest-filled","BrandPinterestFilled",IG);var gG=[["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"}]],zm=J("filled","brand-tiktok-filled","BrandTiktokFilled",gG);var bG=[["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"}]],Wm=J("filled","brand-whatsapp-filled","BrandWhatsappFilled",bG);var yG=[["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"}]],Gm=J("filled","brand-x-filled","BrandXFilled",yG);var SG=[["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"}]],Um=J("filled","brand-youtube-filled","BrandYoutubeFilled",SG);var xhe="outline",kc={fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},CG={},$m={fillRule:"evenodd"},vG=[["path",{...kc,d:"M21 4L3 11L7 13L9 19L12 15L17 20z"}],["path",{...$m,d:"M21 4L3 11L7 13L9 19L12 15L17 20zM15.212 8.939 10.576 13.576 11.424 14.424 16.061 9.788z"}]],kG=[["path",{...kc,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",{...CG,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("")}]],PG=[["path",{...kc,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",{...kc,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",{...$m,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",{...$m,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("")}]],TG=J("filled","brand-telegram-filled","BrandTelegramFilled",vG),EG=J("filled","brand-line-filled","BrandLineFilled",kG),OG=J("filled","brand-wechat-filled","BrandWechatFilled",PG),_G={instagram:{outline:Pm,solid:Nm},facebook:{outline:km,solid:Dm},tiktok:{outline:Rm,solid:zm},youtube:{outline:Bm,solid:Um},x:{outline:Lm,solid:Gm},linkedin:{outline:Em,solid:Mm},pinterest:{outline:Om,solid:Hm},whatsapp:{outline:Am,solid:Wm},telegram:{outline:_m,solid:TG},line:{outline:Tm,solid:EG},wechat:{outline:Fm,solid:OG}};function ik({platform:e,iconStyle:o,size:t}){let r=_G[e][o];return wG(r,{size:t,stroke:1.75,"aria-hidden":"true",focusable:"false"})}var AG={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 LG({platform:e}){let{rows:o,saveLink:t}=es(),{value:r,error:a}=o[e],[n,s]=dk(r),[l,c]=dk(!1),d=ck(),u=ck();RG(()=>s(r),[r]);let h=async()=>{if(n.trim()===r){n!==r&&s(r);return}c(!0),await t(e,n),c(!1)},p=rg[e];return fk(jm,{children:[Gr(FG,{label:i(p),htmlFor:d,icon:Gr(ik,{platform:e,iconStyle:"outline",size:18}),children:Gr("input",{id:d,type:"text",inputMode:"url",value:n,placeholder:AG[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&&Gr("p",{id:u,className:"sf-note sf-note--error",role:"alert",children:a})]})}function uk({unavailable:e}){let{canSave:o}=es();return!o&&e?Gr(jm,{children:e}):fk(jm,{children:[Gr("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.")}),Sl.map(t=>Gr(LG,{platform:t},t))]})}import{jsx as jr,Fragment as h$,jsxs as x$}from"react/jsx-runtime";import{useId as I$,useMemo as g$}from"react";import{useEasel as b$}from"efficient-easel/easel";import{SettingsField as y$,SettingsSwitch as S$}from"efficient-easel/panel";import{EyeIcon as w$}from"efficient-easel/icons";import{fieldShownInView as C$}from"efficient-easel/fields";import{usePreviewDevice as v$}from"efficient-easel/draw/client";import{jsx as $r,Fragment as BU,jsxs as DU}from"react/jsx-runtime";import{createContext as NU,useContext as MU,useLayoutEffect as Kk,useMemo as Dc,useRef as qk,useState as th}from"react";import{useEasel as Vk,useSelectedFields as HU}from"efficient-easel/easel";import{fieldShownInView as zU,Inspector as WU,planFields as rh}from"efficient-easel/fields";function pk({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 SU}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as wU,deviceMetaOf as Ak}from"efficient-easel/screen/lib/document/device-fields";import{jsx as Z,jsxs as kt}from"react/jsx-runtime";import{phoneKey as Zt}from"efficient-easel/draw";import{SettingsDefaultReset as jG,SettingsField as kk}from"efficient-easel/panel";import{AnimationIcon as Pk,ClockIcon as KG,DirectionDownIcon as qG,DirectionIcon as VG,DirectionLeftIcon as YG,DirectionRightIcon as XG,DirectionUpIcon as ZG,DurationIcon as JG}from"efficient-easel/icons";import{deviceField as Va}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as QG,noControlField as eU}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{describedAs as Tk,group as oU,phoneTwinFields as tU}from"efficient-easel/screen/lib/document/box-fields";import{ENTRANCE_FROM as rU,ENTRANCE_FROM_DEFAULT as Ek,ENTRANCE_KINDS as Ac,ENTRANCE_KINDS_WITH_FROM as wk,MOTION_TIMING as aU,entranceAttrs as nU,playEntrance as sU,readEntrance as lU}from"efficient-shell/format";import{IconPicker as iU}from"efficient-shell/ui";import{jsx as Ym}from"react/jsx-runtime";import{ClockIcon as MG,DurationIcon as HG}from"efficient-easel/icons";import{MOTION_TIMING as bk}from"efficient-shell/format";import{useSelectedHost as zG}from"efficient-easel/easel";import{MOTION_EASING as BG,MOTION_TIMING as mk,motionSeconds as hk}from"efficient-shell/format";var Km="none",qm=[{label:"None",value:"none"},{label:"Scroll",value:"scroll"}];function Ohe(e){return eo(qm,Km,e)}var Pc={field:"loop",is:"scroll"},cs="left",Vm=[{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 xk(e){return eo(Vm,cs,e)}function _he(e){return e==="up"||e==="down"}function Ik(e){return hk("loop","duration",e.loopDuration!=null?e.loopDuration:e.speed)}var Rhe=mk.loop.duration.default,NG=mk.loop.delay.default;function gk(e){return hk("loop","delay",e.loopDelay)}function Fhe(e,o,t=NG){return`${DG[e]} ${o}s ${BG.loop}${t?` ${t}s`:""} infinite`}function ds(e){let{min:o,max:t,step:r,default:a}=bk[e].duration;return _o("Duration",Ym(HG,{}),o,t,r,a,"s")}function fs(e){let{min:o,max:t,step:r,default:a}=bk[e].delay;return _o("Delay",Ym(MG,{}),o,t,r,a,"s")}function us(e,o){let t=e.render,r=a=>{let n=zG();return t({...a,value:o(a.value,n?.values)})};return{...e,render:a=>Ym(r,{...a})}}function Tc({readsSpeed:e}){return us(ds("loop"),(o,t)=>Ik({loopDuration:o,speed:e?t?.speed:void 0}))}function Ec(){return us(fs("loop"),e=>gk({loopDelay:e}))}import{phoneKey as WG}from"efficient-easel/draw";import{readEntrance as GG}from"efficient-shell/format";var _c="sf-entrance",Te={kind:"entrance",from:"entranceFrom",duration:"entranceDuration",delay:"entranceDelay"},Rc="sectionAnimation",yk=e=>e!=null&&e!=="";function UG(e,o){let t=e[Te[o]];return o==="kind"&&!yk(t)?e[Rc]:t}function Oc(e,o,t){if(t==="phone"){let r=e[WG(Te[o])];if(yk(r))return r}return UG(e,o)}function ps(e,o){return GG(Oc(e,"kind",o),Oc(e,"from",o),Oc(e,"duration",o),Oc(e,"delay",o))}function Fc(e){let o=ps(e,"desktop"),t=ps(e,"phone");return o.kind==="none"&&t.kind==="none"?null:{desktop:o,phone:t}}var $G={...Object.fromEntries([...my].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)"},$he=new Set(Object.keys($G));var Sk="_gEntrance";var ms={none:"None",fade:"Fade",rise:"Rise",scale:"Scale",glide:"Glide",bounce:"Bounce",flip:"Flip",reveal:"Reveal",spin:"Spin"},cU={top:"Top",bottom:"Bottom",left:"Left",right:"Right"},dU={top:()=>Z(qG,{}),bottom:()=>Z(ZG,{}),left:()=>Z(XG,{}),right:()=>Z(YG,{})},Jm="Entrance",Ck=Ac.filter(e=>e!=="none"),Xm=e=>({any:[{field:Te.kind,in:e},{all:[{field:Te.kind,set:!1},{field:Rc,in:e}]}]}),vk=e=>({any:[{field:Zt(Te.kind),in:e},{all:[{field:Zt(Te.kind),set:!1},Xm(e)]}]}),fU=[[[Te.from],Xm(wk)],[[Zt(Te.from)],vk(wk)],[[Te.duration,Te.delay],Xm(Ck)],[[Zt(Te.duration),Zt(Te.delay)],vk(Ck)]],vt=({children:e})=>Z("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}),Zo=({x:e=12,y:o=12,o:t=1})=>Z("rect",{x:e,y:o,width:"16",height:"16",rx:"2",opacity:t}),uU={none:Z(vt,{children:Z(Zo,{})}),fade:kt(vt,{children:[Z(Zo,{x:6,o:.3}),Z(Zo,{x:18})]}),rise:kt(vt,{children:[Z(Zo,{y:20,o:.3}),Z(Zo,{y:8}),Z("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),scale:kt(vt,{children:[Z("rect",{x:"16",y:"16",width:"8",height:"8",rx:"1",opacity:".35"}),Z(Zo,{}),Z("path",{d:"M6 6l4 4M34 34l-4-4"})]}),glide:kt(vt,{children:[Z(Zo,{x:2,o:.3}),Z(Zo,{x:20}),Z("path",{d:"M4 33h12m-2-2 2 2-2 2"})]}),bounce:kt(vt,{children:[Z(Zo,{y:6}),Z("path",{d:"M8 34c3-6 5-6 8 0s5 6 8 0 5-6 8 0"})]}),flip:kt(vt,{children:[Z("path",{d:"M12 12l16 4v8l-16 4z",opacity:".35"}),Z(Zo,{}),Z("path",{d:"M20 4v32",strokeDasharray:"2 2"})]}),reveal:kt(vt,{children:[Z("rect",{x:"12",y:"12",width:"16",height:"16",rx:"2",strokeDasharray:"2 2",opacity:".5"}),Z("path",{d:"M12 22h16v4a2 2 0 0 1-2 2H14a2 2 0 0 1-2-2z",fill:"currentColor",opacity:".35"}),Z("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),spin:kt(vt,{children:[Z(Zo,{}),Z("path",{d:"M33 14a14 14 0 0 1 0 12m0 0-3-1m3 1 1-3"})]})};function pU({kind:e}){let{attrs:o}=nU(lU(e,Ek));return kt("span",{className:"sf-entrance-pic",children:[Z("span",{className:"sf-entrance-stage",children:Z("i",{...o,children:uU[e]})}),Z("span",{className:"sf-entrance-cap",children:i(ms[e])})]})}var mU=(e,o)=>{let t=o.querySelector(".sf-entrance-stage > i");t&&sU(t)},hU={width:"3.5rem",height:"4.25rem"};function Ok({value:e,onChange:o}){return Z(iU,{label:i(Jm),value:e,emptyValue:"none",columns:3,cell:hU,onChange:o,onPreview:mU,tooltips:!1,options:Ac.map(t=>({value:t,label:i(ms[t]),icon:Z(pU,{kind:t})}))})}var Zm="Effect",_k=e=>e==="none"?void 0:i(ms[e]);function xU({value:e,onChange:o}){let t=St(),r=ps({...t,[Te.kind]:e},"desktop").kind;return Z(kk,{label:i(Zm),icon:Z(Pk,{}),value:_k(r),children:Z(Ok,{value:r,onChange:o})})}function IU({value:e,onChange:o}){let t=St(),r=typeof e=="string"&&Ac.includes(e),a=ps(t,"desktop").kind;return Z(kk,{label:i(Zm),icon:Z(Pk,{}),value:_k(r?e:a),changed:r,action:Z(jG,{words:ee()?.panel,label:i(Zm),changed:r,detail:i("{value} on desktop",{value:i(ms[a])}),onReset:()=>o(void 0)}),children:Z(Ok,{value:r?e:a,onChange:o})})}var Rk={type:"select",label:Jm,options:Ac.map(e=>({value:e,label:ms[e]}))},gU=()=>Tk({type:"custom",render:({value:e,onChange:o})=>Z(xU,{value:e,onChange:o})},Rk),bU=()=>Tk({type:"custom",render:({value:e,onChange:o})=>Z(IU,{value:e,onChange:o})},Rk),yU=rU.map(e=>({label:cU[e],value:e,picture:dU[e]()}));function it(){let{duration:e,delay:o}=aU.entrance,t={[Sk]:oU(Jm),[Te.kind]:Va("desktop",gU()),[Rc]:eU({type:"custom",render:()=>Z(QG,{})},"always"),[Zt(Te.kind)]:Va("mobile",bU()),...tU(Te.from,_a("From",Z(VG,{}),yU,Ek)),[Te.duration]:Va("desktop",ds("entrance")),[Zt(Te.duration)]:Va("mobile",Ai({label:"Duration",desktopKey:Te.duration,icon:Z(JG,{}),min:e.min,max:e.max,step:e.step,fallback:e.default,unit:"s"})),[Te.delay]:Va("desktop",fs("entrance")),[Zt(Te.delay)]:Va("mobile",Ai({label:"Delay",desktopKey:Te.delay,icon:Z(KG,{}),min:o.min,max:o.max,step:o.step,fallback:o.default,unit:"s"}))};return $f(t,fU)}import{DESIGN_GROUPS as eh,SETTINGS_BUCKETS as CU}from"efficient-easel/panel";import{BUCKET_KEY as vo,DESIGN_GROUP_KEY as hs}from"efficient-easel/screen/lib/document/field-buckets";var xs=CU;var vU="Editor only \u2014 not shown live",oh={"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",Overlay:"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",[vU]:"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"},Lk={"AlloyWheelsListing._gCards":"Design","ProductGrid._gCards":"Design"},Bk={"Text._gSpacing":"Size","Heading._gSpacing":"Size"};function Qm(e,o,t){let r=`${e}.${o}`;return Bk[r]??Lk[r]??oh[t]}function Dk(e){return e==="Animation"?[vo.Animation]:[vo.Design,hs[e]]}function Lc(...e){let o=[];for(let t of e)for(let r of Object.values(t)){let a=Ak(r),n=yt(a?a.inner:r),s=n?oh[n.label]:void 0;if(s)for(let l of Dk(s))o.includes(l)||o.push(l)}return o}var gxe=[...Lc(Si({tablet:!0}),Li("full"),Bi(),Di(),ip()),...Object.keys(Si({tablet:!0})),...Object.keys(Li("full")),...Object.keys(Bi()),...Object.keys(Di()),...Object.keys(ip())],bxe=[...Lc(_i()),...Object.keys(_i())],yxe=[...Lc(Fi()),...Object.keys(Fi())],Sxe=[...Lc(it()),...Object.keys(it())],kU=Object.keys(Rw()),PU=new Set(["cardImage","imageBackground"]),wxe=[...Dk(Qm("ProductGrid","_gCards","Cards")??"Design"),...kU.filter(e=>e.startsWith("_g")||PU.has(e))],Cxe=Object.keys(Fw()),vxe=Object.keys(Aw()),TU={"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)"},Nk={Content:["Content"],Size:["Size"],Design:["Design","Style"],Layout:["Layout"],Position:["Position"],Anchor:["Anchor"],Animation:["Animation"]},Mk={_gAnchor:"repeated the Anchor group heading above it (two tabs, 11.0.0)"};{let e={...Si({tablet:!0}),...Li("full"),...Bi(),...Di(),..._i(),...Fi(),...it()};for(let o of Object.keys(Mk)){let t=yt(e[o]),r=t?oh[t.label]:void 0;if(!t||t.level!==2||!r||!Nk[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 EU=new Set(["_sContent","_sStyle","_sLayout","_sMedia"]),OU=new Map([[vo.Design,"Content"],[vo.Animation,"Animation"],...eh.map(e=>[hs[e],e])]);function Hk(e){let o=new Set([...Object.values(vo),hs.Content]);for(let[t,r]of Object.entries(e))if(!o.has(t)&&yt(r)?.level===1)return 1;return 2}function _U(e){let o=`${e}.`;return Object.keys(TU).filter(t=>t.startsWith(o)).map(t=>t.slice(o.length))}function RU(e,o){let t=Ak(e),r=SU(o);return t?wU(t.tier,r):r}function FU(e,o){let t=yt(o);return t?e==="Content"||e==="Animation"?yw(o,t.label):Sw(o):o}function Fk(e){return e==="Design"?eh:["Animation"]}function zk(e,o){let t=[],r=new Set(_U(o)),a=new Set,n=!1,s=null;for(let[p,x]of Object.entries(e)){let g=yt(x);if(EU.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=OU.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===vo.Design||p===vo.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 Mk){let _=Qm(o,p,g.label);if(g.level!==2||!_||!Nk[_].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 ${_??"(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:_,entries:[]});continue}let E=Qm(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 ${[...eh,"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:RU(x,g.label)]]})}let l=new Set(Object.entries(e).filter(([,p])=>yt(p)).map(([p])=>p));for(let[p,x]of[["BLOCK_KEY_GROUP",Bk],["KEY_GROUP",Lk]]){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=xs.filter(p=>Fk(p).some(x=>d.has(x))),h={};for(let p of u){h[vo[p]]=Oi(p,p===u[0]?u:null);for(let x of Fk(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[hs[x]]=ap(x));for(let E of g)for(let[_,w]of E.entries)h[_]=FU(x,w)}}return h}function kxe(e){return vo.Design in e?e:{[vo.Design]:Oi("Design",null),[hs.Content]:ap("Content"),...e}}function Pxe(e){return xs.some(o=>vo[o]in e)}function Txe(e){let o=xs.filter(r=>vo[r]in e);if(o.length===0)return e;let t={...e};for(let r of o)t[vo[r]]=Oi(r,r===o[0]?o:null);return t}import{jsx as AU}from"react/jsx-runtime";import{EmptyState as LU}from"efficient-shell/ui";function Ur(){return AU(LU,{variant:"none",icon:!1,message:i("These settings apply to every view.")})}import{usePreviewDevice as GU}from"efficient-easel/draw/client";import{deviceField as UU}from"efficient-easel/screen/lib/document/device-fields";var Bc=" text",Wk="Text";function Is(e){let o=e.rows.filter(t=>t.shown);return o.length===0||o.length===1&&o[0].labelled}function Gk(e){return e.filter(Is).map(o=>o.key)}function Uk(e,o){let t=e.filter(a=>!Is(a));if(t.length!==1)return null;let r=e.filter(Is).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 $k(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 jk(e,o){if(e.size!==o.size)return!1;for(let t of e)if(!o.has(t))return!1;return!0}var ah=new Map,Nc=new Set;function Yk(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 $U=Object.fromEntries(xs.map(e=>{let o=bw[e];return[e,$r(o,{},e)]})),Xk=NU(null),jU={_partBody:UU("each",{type:"custom",render:()=>$r(KU,{})})};function KU(){return $r(BU,{children:MU(Xk)})}function Jo({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}=HU(),h=Dc(()=>a?{...c,...a.values}:c,[c,a?.values]),p=(ae,Fe)=>a?.keys.has(ae)?a.onChange(ae,Fe):u(ae,Fe),x=GU(),{appState:g,config:y}=Vk(ae=>ae),E=qg(x,y,g.data.content??[],g.ui.itemSelector),_=n===void 0?Xv(l,t):jU,w=Dc(()=>{let ae=r?.length?Object.fromEntries(Object.entries(_).filter(([Fe])=>!r.includes(Fe))):_;return a?{...ae,...a.fields}:ae},[_,r,a?.fields]),I=Kf(w,h,E),[v,k]=th(()=>new Set(Nc)),[C,F]=th(()=>new Set),D=qk(null),{bandRows:T,designBands:R,looseRows:N}=Dc(()=>{let ae=new Map,Fe=new Set,ro=[];for(let Pe of rh(I).rows){if(!Pe.fold){Pe.bucket==="Design"&&ro.push(Pe.name);continue}let De=ae.get(Pe.fold.key)??[];De.push(Pe.name),ae.set(Pe.fold.key,De),Pe.bucket==="Design"&&Fe.add(Pe.fold.key)}return{bandRows:ae,designBands:Fe,looseRows:new Map([["",ro]])}},[I]),b=zU({},x),O={key:Bc,rows:Array.from({length:b?o:0},()=>({shown:!0,labelled:!0}))};Kk(()=>{let ae=D.current?.parentElement;if(!ae)return;let Fe=Yk(ae,T),ro=new Set(Gk(Fe)),Pe=Uk([O,...Fe.filter(De=>R.has(De.key))],Yk(ae,N)[0].rows);Pe&&ro.add(Pe),F(De=>jk(De,ro)?De:ro)});let A=Dc(()=>$k(I,C),[I,C]),H=!Is(O)&&!C.has(Bc)?{key:Bc,title:Wk}:void 0,G=Vk(ae=>ae.selectedItem)!==null,X=a?.part??t??"",K=`${s}:${X}:${String(x)}`,[Re,le]=th(()=>({tab:ah.get(K)})),Ue=`${s}:${X}`,Be=qk(null),ke={...E,node:h},fe=rh(I,{values:h,context:ke}).buckets,ge=pk({allTabs:G,remembered:ah.get(K),inherited:Be.current?.panel===Ue?Be.current.tab:Re.tab,buckets:fe,hasText:b&&o>0}),Ke=!b&&!fe.includes(ge)&&(rh(Kf(w,h,{...E,device:"desktop"}),{values:h,context:{...ke,device:"desktop"}}).buckets.includes(ge)||ge==="Design"&&o>0);Kk(()=>{Be.current={panel:Ue,tab:ge}});let qe=ge==="Design";return $r(Xk.Provider,{value:n??null,children:$r(lp.Provider,{value:a?h:null,children:DU(WU,{fields:A,values:h,onChange:p,readOnly:d,allTabs:G,showWhenContext:ke,tab:ge,onTab:ae=>{ah.set(K,ae),le({tab:ae})},tabIcons:$U,idPrefix:s,ariaLabel:i("Section settings"),lead:qe?e:null,leadFold:H,closedFolds:v,onFold:(ae,Fe)=>{Fe?Nc.delete(ae):Nc.add(ae),k(new Set(Nc))},children:[$r("span",{ref:D,hidden:!0}),Ke&&$r(Ur,{})]})})})}import{useMemo as i$}from"react";import{useEasel as c$}from"efficient-easel/easel";import{useSectionOps as d$}from"efficient-easel/screen/lib/document/use-section-ops";import{jsx as nh}from"react/jsx-runtime";import{HoverIcon as qU,RotateIcon as VU}from"efficient-easel/icons";import{group as YU}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as Ya}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as XU,noControlField as ZU}from"efficient-easel/screen/lib/document/panel-no-control-mark";var Zk="_gHover",Jk=()=>Ya("desktop",YU("Hover")),JU="What this does when a shopper points at it, or taps it on a phone.",QU="What each card does when a shopper points at it, or taps it on a phone. Rotate turns the wheel picture.";function Qk(e,o){return _a("Hover effect",nh(qU,{}),e.map(t=>({label:Gn[t],value:t})),o)}function eP(){return{[Zk]:Jk(),[Ar]:Ya("desktop",{...Qk(hp,"none"),description:JU})}}function oP(e){let o=jw(e),t=_o("Angle",nh(VU,{}),Aa.min,Aa.max,Aa.step,Ip,"\xB0");return{[Zk]:Jk(),[qo.kind]:Ya("desktop",{...us(Qk(zi,e),(r,a)=>gp(a??{},e)),description:QU}),[Wn]:ZU({type:"custom",render:()=>nh(XU,{})},"always"),[qo.angle]:Ya("desktop",uo(us(t,r=>bp(r)),o)),[qo.duration]:Ya("desktop",uo(ds("hover"),o)),[qo.delay]:Ya("desktop",uo(fs("hover"),o))}}import{jsx as tP}from"react/jsx-runtime";import{DirectionIcon as e$,LoopIcon as o$}from"efficient-easel/icons";function sh(){return Ow("Scroll direction",Vm,cs,"A marquee cannot run diagonally, so the corners are not answers.",tP(e$,{}),Ew)}function rP(){return{loop:jo("Loop",tP(o$,{}),qm,Km),scrollDirection:uo(sh(),Pc),loopDuration:uo(Tc({readsSpeed:!1}),Pc),loopDelay:uo(Ec(),Pc)}}function aP(e,o=""){switch(e){case"section":case"block":return it();case"box":return{...it(),...rP()};case"textPart":return{...it(),...eP()};case"cards":return{...it(),...oP(xp(o))};case"marquee":return{...it(),scrollDirection:sh(),loopDuration:Tc({readsSpeed:!0}),loopDelay:Ec()}}}import{phoneKey as t$}from"efficient-easel/draw";import{ENTRANCE_STATE_ATTR as r$,entranceAttrs as a$}from"efficient-shell/format";var sP={},lh="_partMotion",ih=[...Object.values(Te).flatMap(e=>[e,t$(e)]),Ar];function kIe(e){return Ma(e,lh)}function gs(e,o){return rc(e,lh,o)}var n$=new Set([Te.kind,Ar]);function lP(e,o,t,r){let{[t]:a,...n}=gs(e,o),s=r==null||r===""||r==="none"&&n$.has(t)?n:{...n,[t]:r};return ac(e,lh,o,Object.keys(s).length?s:null)}function ch(e){return{entrance:Fc(e),hover:Uw(e)}}function iP(e){let o=ch(e);return o.entrance!==null||o.hover!=="none"}function cP(e,o){let{attrs:t,style:r}=a$(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(r$)}}var s$=4;function dP(e){let o;for(let t of e)(!o||t.element.compareDocumentPosition(o.element)&s$)&&(o=t);return o}var l$="data-sf-part-host";function fP(e){let o=e?.ownerDocument.defaultView,t=e;for(;t&&!t.hasAttribute(l$)&&!t.classList.contains(_c);){let r=o?.getComputedStyle(t).display??"";if(r==="contents")return null;if(r!=="inline")return t;t=t.parentElement}return null}var Mc="data-sf-part-lift",nP="sf-part-lift";function uP(e){if(e.getElementById(nP))return;let o=e.createElement("style");o.id=nP,o.textContent=_C(`[${Mc}]`).join(`
|
|
6
|
-
`),e.head.appendChild(o)}var pP=new Map,f$=e=>{let o=pP.get(e);return o||pP.set(e,o=zk(aP(e),`part:${e}`)),o},u$=new Set(ih);function Xa(e,o,t){let{getItemById:r,getSelectorForId:a}=c$(u=>u),n=d$(),s=r(e)?.props??{},l=gs(s,o),c=JSON.stringify(l),d=i$(()=>Object.fromEntries(ih.map(u=>[u,l[u]])),[c]);return{part:o,fields:f$(t),values:d,keys:u$,onChange:(u,h)=>{let p=a(e),x=r(e);if(!p||!x)return;let g=lP(x.props??{},o,u,h);n.replaceComponent(p.zone,p.index,{...x,props:g})}}}import{Fragment as p$,createElement as m$}from"react";import{deviceField as dh}from"efficient-easel/screen/lib/document/device-fields";var io=()=>({type:"custom",render:()=>m$(p$)});var fh={words:io(),sourceNote:io(),style:io(),font:io(),italic:io(),fontSize:dh("each",io()),lineHeight:io(),letterSpacing:io(),paragraphSpacing:io(),padding:io(),align:dh("each",io()),letterCase:io(),fixedSizeHint:dh("each",io()),regionNote:io(),regionStyle:io()},mP={showTicker:io(),items:io()};var k$="root:default-zone";function hP({heroId:e}){let{appState:o,dispatch:t}=b$(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=g$(()=>{let x=n?.props.tickerItems;return Array.isArray(x)?x:jv.map(g=>({text:g}))},[n]),c=I$(),d=v$(),u=x=>C$(mP[x],d),h=Xa(e,Kv,"block");if(!n)return jr("p",{className:"sf-note",children:i("This ticker\u2019s hero is no longer on the page.")});let p=x=>t({type:"replace",destinationZone:k$,destinationIndex:a,data:{...n,props:{...n.props,...x}}});return jr(Jo,{motion:h,body:x$(h$,{children:[!u("showTicker")&&!u("items")&&jr(Ur,{}),u("showTicker")&&jr(y$,{label:i("Show ticker"),labelId:c,icon:jr(w$,{}),action:jr(S$,{checked:s,onChange:x=>p({showTicker:x}),ariaLabelledBy:c})}),u("items")&&jr(dp,{label:cp.label,icon:cp.icon,items:l,placeholder:"item",onChange:x=>p({tickerItems:x}),markup:!0})]})})}import{jsx as q,Fragment as Es,jsxs as Ro}from"react/jsx-runtime";import{useContext as Fj,useEffect as Ph,useRef as Aj,useState as uT}from"react";import{FieldSelect as Lj,InspectorField as Bj,fieldShownInView as Dj}from"efficient-easel/fields";import{SettingsField as Nj}from"efficient-easel/panel";import{InspectorUpLevel as Zc}from"efficient-easel/chrome";import{StylesIcon as Mj,TypeIcon as Hj}from"efficient-easel/icons";import{useEasel as zj}from"efficient-easel/easel";import{TextPartPanel as pT}from"efficient-easel/copy";import{Button as Wj,IconButton as Gj,Tooltip as Uj}from"efficient-shell/ui";import{jsx as qP,jsxs as dj}from"react/jsx-runtime";import{COPY_CELLS as ws,CopyBox as fj}from"efficient-easel/copy";import{PaddingYIcon as uj}from"efficient-easel/icons";import{useSyncExternalStore as tj}from"react";import{isNodeList as N$}from"efficient-easel/data";var xP=["general","commerce","service"],Jt=[{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 QIe(){return Object.fromEntries(Jt.map(e=>[e.key,{title:e.title,components:e.sections.map(o=>o.type),...e.defaultExpanded?{defaultExpanded:!0}:{}}]))}var P$={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."},ege=["Grid","Spacer"],oge=Array.from(new Set([...Jt.flatMap(e=>e.sections.map(o=>o.type)),...Object.keys(P$)])),IP=Object.fromEntries(Jt.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"},Hc={...T$,...Object.fromEntries(Jt.flatMap(e=>e.sections.map(o=>[o.type,o.set])))};function gP(e){return Object.prototype.hasOwnProperty.call(Hc,e)?Hc[e]:void 0}function uh(e){return Object.keys(Hc).filter(o=>Hc[o]===e).sort()}var tge=uh("general"),rge=uh("commerce"),age=uh("service"),ph="Flex",Pt="Box",nge=`${Pt}es`;function E$(e){return e==="section"?"Blank section":Pt}function mh(e,o,t){return e===ph?E$(o):t}var Qt="content",Q="Flex",O$="Text & media",_$="Layout & structure",yP=[{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"}],R$=[...yP,{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:O$})),F$=(Jt.find(e=>e.key==="structure")?.sections??[]).map(e=>({type:e.type,label:e.label,group:_$})),bP=[...R$,...F$],hh=[...yP,{type:"HeroGroup",label:Pt}],ige=hh.map(e=>e.type),A$=1,L$=hh.filter(e=>e.type!=="HeroGroup");function B$(e){return e<A$?hh:L$}var D$={Flex:{slot:Qt,choices:()=>bP},Grid:{slot:Qt,choices:()=>bP},HeroGroup:{slot:Qt,choices:B$}};function SP(e,o=0){let t=D$[e];return t?{slot:t.slot,choices:t.choices(o)}:null}function er(e,o){let t=globalThis,r=Symbol.for(e),a=t[r];return a===void 0&&(a=o(),t[r]=a),a}var xh="template",wP="Card template",M$=["Text","ImageBlock","ButtonBlock","Flex"],zc="rowField",H$="rowLinkField";function mge(){return{type:"slot",allow:[...M$]}}var z$=[{block:"OrderSummary",fields:[{key:"label",label:"Item"},{key:"meta",label:"Meta line"},{key:"amount",label:"Amount"}]}];function Kr(){return er("efficient.card-templates",()=>new Map(z$.map(e=>[e.block,e])))}function hge(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})}Kr().set(o.block,{block:o.block,fields:o.fields.map(r=>({...r})),blocks:t})}}function CP(){for(let e of Kr().values())if(e.blocks?.length)return!0;return!1}function vP(e){return Kr().get(e)?.blocks??[]}function xge(e){for(let o of Kr().values())if(o.blocks?.some(t=>t.type===e))return!0;return!1}function Ih(e){return typeof e=="string"&&Kr().has(e)}function Ige(e,o){let t=Kr().get(e)?.fields??[];return o?t.filter(r=>(r.kind??"text")===o):t}function gge(e,o){return e?Kr().get(e)?.fields.find(t=>t.key===o)??null:null}function Za(e,o=zc){let t=e?.[o];return typeof t=="string"?t.trim():""}function bge(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 kP={Text:{text:zc},ImageBlock:{src:zc},ButtonBlock:{label:zc,href:H$}};function PP(e,o,t){let r=kP[e]?.[t];return!!(r&&Za(o,r))}function W$(e,o){return!o||!e?null:e[o]??""}function yge(e,o,t){if(!t)return o;let r=null;for(let[a,n]of Object.entries(kP[e]??{})){let s=W$(t,Za(o,n));s!==null&&(r??={...o},r[a]=s)}return r??o}function gh(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(!N$(d))continue;let u=c===xh&&Ih(l.type)?{owner:l,direct:!0,nested:s!==null,underBox:!1}:s&&{owner:s.owner,direct:!1,nested:s.nested,underBox:s.underBox||l.type===Q},h=r(d,u);if(h!==void 0)return h}}},a=r(t,null);return a===void 0?null:a}function TP(e,o){let t=gh(e,o);return t&&t.owner}function Sge(e,o){let t=gh(e,o);return t&&(t.direct?t.owner:null)}function wge(e,o){let t=gh(e,o);if(t!==void 0)return t===null?{inCopy:!1,nestedCopy:!1,underBox:!1}:{inCopy:!0,nestedCopy:t.nested,underBox:t.underBox}}import{isNodeList as Gc}from"efficient-easel/data";var Wc="dataSource";var G$="dataRows",qr="countKey",bs="counts",U$=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;function ys(){return er("efficient.block-sources",()=>({sources:new Map,revision:0}))}var $$=e=>[e?.key,e?.label,e?.value].every(o=>typeof o=="string"&&o.trim()!=="");function j$(e){if(typeof e.key!="string"||!U$.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=>OP(o)).filter(o=>o!==null)}:{},...Array.isArray(e.choices)?{choices:e.choices.filter($$)}:{}}}function Pge(e){let o=e.map(j$),t=ys();for(let r of o)t.sources.set(r.key,r);o.length&&(t.revision+=1)}function Tge(e){let o=[...ys().sources.values()];return e===void 0?o:o.filter(t=>t.blocks.includes(e))}function K$(e){return ys().sources.get(e)??null}function EP(e){return ys().sources.get(e)?.choices??[]}function Ege(){return ys().revision}function Vr(e){let o=e?.[Wc];return typeof o=="string"?o.trim():""}function OP(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let o={};for(let[t,r]of Object.entries(e)){let a=he(r);a&&(o[t]=a)}return Object.keys(o).length?o:null}function q$(e){let o=e?.[G$];return Array.isArray(o)?o.map(OP).filter(t=>t!==null):null}function Oge(e,o,t=[]){let r=q$(e);if(r!==null&&(r.length||!o))return{rows:r,sample:!1};if(!o)return{rows:[],sample:!1};let a=K$(Vr(e))?.sample;return{rows:a?.length?a:t,sample:!0}}var _P="Flex";function Ss(e){if(Za(e))return"";let o=e?.[qr];return typeof o=="string"?o.trim():""}var V$=new Intl.NumberFormat("en-US");function Y$(e){return/^\d+$/.test(e)?V$.format(Number(e)):e}function Lge(e,o){let t=o?o.find(r=>r.key===e)?.value:EP(bs).find(r=>r.key===e)?.value;return t===void 0?null:Y$(t)}function bh(e){let o=e.props;if(!o)return{node:e,names:!1};let t=e.type==="Text"&&Ss(o)!=="",r=o;for(let[n,s]of Object.entries(o)){if(!Gc(s))continue;let l=s.map(bh);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!==_P)return{node:r===o?e:{...e,props:r},names:t};let a=Vr(r);if(t&&!a&&(r={...r,[Wc]:bs}),!t&&a===bs){let{[Wc]:n,...s}=r;r=s}return{node:r===o?e:{...e,props:r},names:!1}}function RP(e,o,t){for(let r of e){if(r?.props?.id===o)return t;for(let a of Object.values(r?.props??{})){if(!Gc(a))continue;let n=RP(a,o,r.type===_P?r:t);if(n!==void 0)return n}}}function Bge(e,o){if(!Gc(e))return!0;let t=RP(e,o,null);if(t===void 0)return!0;if(t===null)return!1;let r=Vr(t.props);return!r||r===bs}function FP(e){let o=e?.content;if(!Gc(o))return e;let t=o.map(bh);return t.every((r,a)=>r.node===o[a])?e:{...e,content:t.map(r=>r.node)}}function AP(e){return bh(e).node}import{decodePartId as rj}from"efficient-easel/draw";function Ja(e,o){let t=Xi(e);return t?.control==="textList"?o.rowKey===(t.itemKey??"text")?_w(t,o.index):null:_p(e)?.[o.rowKey]??null}function Uc(e,o,t){let r=e.node.props,{key:a,row:n}=Yo(e.propKey),s=n?uC(r,a,n,e.kind,o):dC(r,a,e.kind,o);return s?(t(e.zone,e.index,{...e.node,props:s}),!0):!1}import{readHidable as DP}from"efficient-easel/draw";import{isNodeList as X$}from"efficient-easel/data";var Qa=e=>String(e+1).padStart(2,"0");var NP="Contents",Z$="Flex",LP="Text",Zge="_contentsEntries",Jge="_kickerNumber",MP="data-sf-kicker-number",J$=e=>DP(e).text.trim(),HP=e=>db(e?.anchor),BP=e=>String(e.props?.id??""),Q$=e=>!DP(e.props?.text).hidden&&!Ss(e.props)&&!Za(e.props);function yh(e){return Object.values(e.props??{}).filter(X$)}function zP(e){for(let o of yh(e))for(let t of o){if(t.props?._hidden)continue;if(t.type===LP&&Q$(t))return t;if(t.type===LP)continue;let r=zP(t);if(r)return r}}function WP(e){return yh(e).some(o=>o.some(t=>t&&!t.props?._hidden&&(t.type===NP||WP(t))))}function ej(e){let o=[],t=r=>{for(let a of r)if(!(!a||a.props?._hidden)){if(a.type===NP){o.push({contents:a,sections:[]});continue}if(a.type===Z$&&HP(a.props)&&o.length&&!WP(a)){o[o.length-1].sections.push({box:a,kicker:zP(a)});continue}for(let n of yh(a))t(n)}};return t(e),o}function oj(e){return e.map(o=>({label:o.kicker?Sr(J$(o.kicker.props?.text)):"",anchor:HP(o.box.props)}))}function Qge(e){let o=e?.length?ej(e):[];if(!o.length)return null;let t=new Map,r=new Map;for(let a of o){let n=BP(a.contents);n&&t.set(n,oj(a.sections)),a.sections.forEach((s,l)=>{let c=s.kicker?BP(s.kicker):"";c&&r.set(c,Qa(l))})}return{entries:t,numbers:r}}var ebe=e=>`${e} \xB7 `;var aj=`[${MP}]`,nj=["bold","italic","underline","strike","link","sup","sub"],sj=["bullet","number"];function Ch(e,o){return e?[...nj,...o?sj:[]]:[]}function GP(e,o){let t=rj(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}=Yo(a),d=o.components[n.type]?.fields?.[l],u=c?Ja(d,c):d,h=La(u);if(!h)return null;let p=n.props??{};if(Ou(p)!==null||!c&&PP(n.type,p,l)||n.type==="Text"&&l==="text"&&Ss(p)||c&&!(Array.isArray(p[l])&&c.index<p[l].length))return null;let x=c?$n(p[l],c):p[l];return{node:n,selector:s,propKey:a,kind:h,stored:x,offPage:Ei(u)}}function UP(e,o){let t=GP(e,o);if(!t)return null;let{text:r,hidden:a}=Vt(t.stored);if(!Lp({offPage:t.offPage,hidden:!!a}))return null;let n=Vi(t.kind);return{partId:e,value:r,rules:yr,multiline:n,skip:aj,offered:Ch(t.kind!=="plainText",n),write:s=>{let l=GP(e,o);l&&Uc({node:l.node,propKey:l.propKey,kind:l.kind,zone:l.selector.zone,index:l.selector.index},s,o.replace)}}}function $P(e,o,t){return e?.isConnected&&e.getAttribute(Xo)===t?e:o?.querySelector(`[${Xo}="${lj(t)}"]`)??null}function lj(e){return e.replace(/["\\]/g,"\\$&")}function jP(e){let o=e.activeElement;return o?o.tagName==="IFRAME"||!!o.closest(".es-canvas"):!1}var Sh=null,wh=new Set;function ij(){return Sh}function vh(e){if(e!==Sh){Sh=e;for(let o of wh)o()}}function cj(e){return wh.add(e),()=>{wh.delete(e)}}function KP(){return tj(cj,ij,()=>null)}var pj=["left","center","right","justify"];function $c(e,o,t,r="desktop"){let a=qn(e),n=r==="mobile",s=(n?e.sizePhone:void 0)??e.size??o.sizePx;return[n?{...ws.fontSize,key:"fontSize",value:e.sizePhone,styleValue:Math.round(o.sizePx),onChange:l=>t({sizePhone:l??null})}:{...ws.fontSize,key:"fontSize",value:e.size,styleValue:Math.round(o.sizePx),onChange:l=>t({size:l??null})},{...ws.lineHeight,key:"lineHeight",value:a.lineHeight,styleValue:o.lineRatio,onChange:l=>t(l===void 0?{lineHeight:null,line:null}:{lineHeight:l})},{...ws.letterSpacing,key:"letterSpacing",scale:s,value:a.letterSpacingEm,styleValue:o.letterEm,onChange:l=>t(l===void 0?{letterSpacing:null,letter:null}:{letterSpacing:l})},{...ws.paragraphSpacing,key:"paragraphSpacing",value:e.paragraphSpacing,styleValue:0,onChange:l=>t({paragraphSpacing:l??null})},{key:"padding",name:i("Padding"),icon:qP(uj,{}),unit:"px",step:$p,shiftStep:10,min:Gp,max:Up,value:e.padding,styleValue:o.paddingPx,onChange:l=>t({padding:l??null})}]}function VP({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=$c(n,s,l),g=Ch(r,t);return dj("div",{className:"sf-part-textbox",children:[h,qP(fj,{value:e,onChange:o,multiline:t,placeholder:d,ariaLabel:u,rules:yr,tools:g,barShows:p?"focus":"always",colors:r?c:[],align:a?{value:n.align??s.align,allow:pj,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 mT}from"efficient-easel/draw/client";import{jsx as jc,Fragment as mj,jsxs as hj}from"react/jsx-runtime";import{Button as YP,Dialog as xj}from"efficient-shell/ui";function XP({styleName:e,onCancel:o,onConfirm:t}){return jc(xj,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Update {style}?",{style:e}),footer:hj(mj,{children:[jc(YP,{variant:"secondary",onClick:o,children:i("Cancel")}),jc(YP,{variant:"primary",onClick:t,children:i("Update style")})]}),children:jc("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 $j}from"efficient-easel/screen/components/ScreenDocumentContext";import{usePreviewDevice as jj}from"efficient-easel/draw/client";import{shownTier as Yc}from"efficient-easel/screen/lib/document/device-fields";import{jsx as Ij}from"react/jsx-runtime";import{createContext as gj,useContext as bj,useMemo as yj,useState as Sj}from"react";var wj={partStyle:null,setPartStyle:()=>{}},ZP=gj(wj);function _be({children:e}){let[o,t]=Sj(null),r=yj(()=>({partStyle:o,setPartStyle:t}),[o]);return Ij(ZP.Provider,{value:r,children:e})}function JP(){return bj(ZP)}import{TEXT_FIELD_MARKER as Kj}from"efficient-easel/draw";import{useSectionOps as qj}from"efficient-easel/screen/lib/document/use-section-ops";import{parseHexColor as Cj}from"efficient-shell/format";var vj="#9ca3af";function kj(e){return Wl.map(o=>({key:o,name:Bb[o],value:e?.[o]||vj}))}function Kc(e){return kj(e).map(o=>({name:o.key,label:i(o.name),value:o.value}))}function eT(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=xt[s].replace(/^var\((--[\w-]+)\)$/,"$1"),c=a.getPropertyValue(l).trim();if(!c)continue;let d=QP(c);!d&&n&&(n.fillStyle="#000000",n.fillStyle=c,d=QP(String(n.fillStyle))),d&&(o[s]=d)}return o}function QP(e){let o=e.trim().toLowerCase();if(o.startsWith("#"))return Cj(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 Cs="@name",oT="@body",tT="@value",Nbe={[Cs]:"Name",[oT]:"Body",[tT]:"Value"},Pj={TimelineTrack:{"entries.date":Cs,"entries.title":Cs,"entries.blurb":oT},Footprint:{"offices.city":Cs},Stats:{"items.label":Cs,"items.value":tT}};function Tj(e){let{key:o,row:t}=Yo(e);return t?`${o}.${t.rowKey}`:null}function vs(e,o){if(!e)return o;let t=Tj(o);return t?Pj[e]?.[t]??o:o}import{useEaselHost as Vj}from"efficient-easel/screen/lib/host";function Ej(e){let o=new Set([...Object.keys($l[e]??{}),...jl[e]??[]]);for(let[t,r]of Object.entries(fu[e]??{}))r.verb==="snapshot"&&o.add(t);return[...o].sort()}var Oj={CollectionCard:"product",FooterMenu:"menu",Gallery:"product",GalleryItem:"product",ProductGrid:"product",ProductHero:"product",SpecTable:"product",Events:"blog",FeaturedCover:"blog",LongRead:"blog",SubscribeBlogs:"blog"},rT={product:"Synced from the product.",blog:"Synced from the blog post.",menu:"Synced from the site menu."},aT="Open",nT={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 en(e){let o=e?.source?.slug;return he(o)}function ks(e){return Oj[e]??null}function sT(e,o){let t=ks(e);return t&&Ej(e).includes(o)?t:null}function qc(e){let o=e?.menu?.id;return he(o)}var Ps={tag:"text-[length:var(--size-label,13px)]",name:"text-[length:min(var(--size-headingMedium,48px),var(--sf-heading-max,9999px))]",namePhone:"max-view-wide: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)]"},_j={tag:{label:"Tag",follows:"Labels",builtIn:Da(Ps.tag),writable:!0},name:{label:"Name",follows:"Heading 2",builtIn:Da(Ps.name),writable:!0},body:{label:"Body",follows:"Body",builtIn:Da(Ps.body),writable:!0},price:{label:"Price",follows:"Labels",builtIn:Da(Ps.price),writable:!0},link:{label:"Link",follows:"Labels",builtIn:Da(Ps.link),writable:!0}},lT=_j;var Rj={number:{label:"Number",follows:"Labels",builtIn:"14px",writable:!0,sized:!0},question:{label:"Question",follows:"Body",builtIn:"18px",writable:!0,sized:!0},answer:{label:"Answer",follows:"Body",builtIn:"15px",writable:!0,sized:!0}},iT=Rj;var Vc={entry:{label:"Entry",follows:"Labels",builtIn:"13px",writable:!0},number:{label:"Entry number",follows:"Labels",builtIn:"13px",writable:!0}};var Ybe=oc,cT={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 kh={SpecTable:cT,FAQ:iT,Collections:lT,Contents:Vc};function dT(){return er("efficient.section-text-regions",()=>new Map)}function tye(e){let o=dT();for(let[t,r]of Object.entries(e)){if(Object.hasOwn(kh,t))throw new Error(`lib/sections/section-text-regions: "${t}" is a builder section; its table is the builder's`);let a=o.get(t);if(a&&a!==r)throw new Error(`lib/sections/section-text-regions: "${t}" already has a table`);o.set(t,r)}}function fT(e){return e?Object.hasOwn(kh,e)?kh[e]:dT().get(e)??null:null}function Th(e){return e?i(e):null}function hT(e){return e.kind==="role"?bf[e.role]:e.kind==="custom"?"Custom":null}function Yj(e){let o=mt(e.role);return o?{kind:"role",role:o}:null}function Xj(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 Xc(e,o,t,r){return Yj(Kn(e,o))??Xj(t,r)}function Zj(e,o){if(!e.length)return null;let t=o(e[0]);return e.every(r=>o(r)===t)?t:null}function xT(e){return[{value:Ts,label:i("No style"),description:i("Section\u2019s own")},...e.map(o=>({value:o.id,label:o.name,description:o.values.font?ma(o.values.font)?.label:void 0}))]}var Ts="";function Jj({face:e,base:o,onPick:t}){let r=e.kind==="role"?e.role:Ts,a=[{label:i("No style"),value:Ts},...YI.map(n=>({label:i(bf[n]),value:n}))];return q(Lj,{ariaLabel:i("Style"),value:r,options:a,inline:!0,onChange:n=>t(n===Ts?null:n),renderOption:n=>n.value===Ts?Ro(Es,{children:[q("span",{className:"es-fsel-label sf-part-style-keep",children:n.label}),q("span",{className:"sf-part-style-aside","aria-hidden":"true",children:i("Section\u2019s own")})]}):q("span",{className:"es-fsel-label",style:{fontFamily:`var(--font-role-${n.value})`},children:n.label}),renderValue:()=>q("span",{style:{fontFamily:o?.fontKey?`var(${ma(o.fontKey)?.cssVar})`:void 0,fontWeight:o?.weight},children:Th(hT(e))}),valueText:n=>Th(hT(e))??n?.label??""})}var ST=["regionNote","regionStyle"],Qj=Object.keys(fh).filter(e=>!ST.includes(e));function wT(e,o){return!e.some(o)}function e8({sectionName:e,onBack:o,textEditor:t,styleRow:r,children:a,tabs:n}){let s=Ro(Es,{children:[t,r,a]});return Ro("div",{className:"sf-part-panel",children:[q(Zc,{inline:!0,name:i(e),onSelect:o}),n?n(s):s]})}function Jc({source:e,slug:o,menuId:t}){let r=Vj(),a=nT[e],n=!a.needsSlug||!!o;return q("div",{className:"sf-note sf-note--source",children:Ro("p",{className:"es-field-hint sf-hint-keep",children:[i(rT[e]),n?Ro(Es,{children:[" ",q(Wj,{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(aT)})]}):null]})})}var IT=4,o8=120;function gT(e){return 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()})}function bT({region:e,sizePx:o,face:t,base:r,onFollowStyle:a,source:n,slug:s,onBack:l,shows:c,sizedStyle:d,ownLook:u}){let h=e.follows;return Ro("div",{className:"sf-note",children:[q("p",{children:q("strong",{children:i(e.label)})}),c("regionNote")&&!u&&q("p",{children:o?i("Its size follows Styles \u25B8 {follows} \u2014 {px}px right now.",{follows:i(h),px:Math.round(o)}):i("Its size follows Styles \u25B8 {follows}.",{follows:i(h)})}),d?Ro(Es,{children:[d,c("regionStyle")&&q("p",{className:"es-field-hint sf-hint-keep",children:gT(e)})]}):a?c("regionStyle")?q(Es,{children:q(Nj,{label:i("Style"),icon:q(Mj,{}),hint:gT(e),children:q(Jj,{face:t,base:r,onPick:a})})}):null:c("regionNote")&&q("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")?q(Jc,{source:n,slug:s}):null,wT([...ST,"sourceNote",...d?["fontSize"]:[]],p=>c(p)&&(p!=="sourceNote"||!!n))&&q(Ur,{}),q(Zc,{inline:!0,name:i("Page"),onSelect:l})]})}function t8({onBack:e}){return Ro("div",{className:"sf-note",children:[q("p",{children:q("strong",{children:i("This part is no longer here.")})}),q("p",{children:i("The section it belonged to has been changed or removed.")}),q(Zc,{inline:!0,name:i("Page"),onSelect:e})]})}function r8({onBack:e,partId:o,why:t}){return Ro("div",{className:"sf-note",children:[q("p",{children:q("strong",{children:i("This part's settings did not open.")})}),q("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.")}),q("p",{className:"sf-note-detail",children:Ro("code",{children:[o," \u2014 ",t]})}),q(Zc,{inline:!0,name:i("Page"),onSelect:e})]})}function CT({nodeId:e,propKey:o,onBack:t,onEditStyle:r}){let{getItemById:a,getSelectorForId:n,config:s}=zj(W=>W),l=qj(),c=KP(),{partStyle:d}=JP(),{fonts:u,textStyles:h}=ie(),p=Fj($j),x=!p?.capabilities?.hasSiteTheme,{persist:g}=ya({themeFromDocument:x,tokenRef:p?.tokenRef,siteId:p?.siteId??null}),y=dc({themeFromDocument:x,persist:g}),[E,_]=uT(!1),w=jj(),I=W=>Yc(w)!=="tablet"&&Dj(fh[W],w),v=Aj(null),k=a(e),C=n(e),F=k?s.components[k.type]:void 0,{key:D,row:T}=Yo(o),R=F?.fields?.[D],N=T?Ja(R,T):R,b=Ji(e,o),O=k?.props??{},A=La(N),H=Ei(N),G=gC(N),X=k?ks(k.type):null,K=k?sT(k.type,D):null,Re=T?$n(O[D],T):O[D],le=!!T&&!(Array.isArray(O[D])&&T.index<O[D].length);Ph(()=>{jP(document)||v.current?.querySelector(".es-copy [contenteditable='true'], .es-copy textarea, .sf-copybox textarea, .sf-copybox input")?.focus()},[b]);let[Ue,Be]=uT(0);Ph(()=>Be(0),[b]);let ke=!!k&&!le&&(!C||!N);Ph(()=>{if(!ke||Ue>=IT)return;let W=setTimeout(()=>Be($e=>$e+1),o8);return()=>clearTimeout(W)},[ke,Ue]);let fe=ke&&Ue<IT,ge=Xa(e,vs(k?.type,o),"textPart");if(!k||le)return q(t8,{onBack:t});let Ke=fT(k.type),qe=Ke?Dp(Ke,o):null;if(Ke&&qe){let W=d?.partId===b?d:null,$e=Ke[qe],No=$e.writable===!0&&!!C,Bt=ir=>{C&&l.replaceComponent(C.zone,C.index,{...k,props:Dr(O,o,"role",ir)})};if(No&&SC($e)){let ir=Kn(O,o),RI=cr=>{if(!C)return;let df=O;for(let[TF,EF]of Object.entries(cr))df=Dr(df,o,TF,EF??null);l.replaceComponent(C.zone,C.index,{...k,props:df})},vF=Ct(y.saved,y.old),kF=Wp(ir)??"",PF=$c(ir,W?.base??yT,RI,Yc(w)).filter(cr=>cr.key==="fontSize"&&I(cr.key));return q(Jo,{motion:ge,body:q(bT,{region:$e,sizePx:W?.base.sizePx??null,face:Xc(O,o,W,u),base:W?.base??null,source:X,slug:en(O),onBack:t,shows:I,ownLook:NC(ir),sizedStyle:q(pT,{style:I("style")?{value:kF,options:xT(vF),onChange:cr=>RI(cr?{textStyle:cr}:{textStyle:null,role:null}),onEditStyles:r}:void 0,cells:PF})})})}return q(Jo,{motion:ge,body:q(bT,{region:$e,sizePx:W?.base.sizePx??null,face:Xc(O,o,W,u),base:W?.base??null,onFollowStyle:No?Bt:void 0,source:X,slug:en(O),onBack:t,shows:I})})}if(!C||!N)return fe?q("div",{className:"sf-note","aria-busy":"true"}):q(r8,{onBack:t,partId:b,why:C?"no field":"no selector"});let ae=W=>{l.replaceComponent(C.zone,C.index,{...k,props:W})},Fe=W=>{if(Vt(W).hidden!==Vt(Re).hidden||!A){let $e=T?Rp(O,D,T,W):{...O,[D]:W};$e&&ae($e);return}Uc({node:k,propKey:o,kind:A,zone:C.zone,index:C.index},Vt(W).text,l.replaceComponent)},ro=Re,Pe=d?.partId===b?d:null,De=Pe?.styleOwner,Io=De?a(De.owner):null,So=De&&Io?n(De.owner):null,wo=!!(De&&Io&&So),M=wo?Io.props??{}:O,ue=wo?W=>l.replaceComponent(So.zone,So.index,{...Io,props:W}):ae,Se=wo?De.kind:vs(k?.type,o),Me=Kn(M,Se),He=[{partKey:Se,face:Xc(M,Se,Pe,u),sizeGroup:Pe?.sizeGroup??null,base:Pe?.base??yT,style:Me}],Lt=Zj(He,W=>W.sizeGroup),ca=Kc(Pe?.inks),Qe=(W,$e)=>{let No=M;for(let Bt of He)No=Dr(No,Bt.partKey,W,$e);ue(No)},sr=W=>W?Qe("textStyle",W):gn({textStyle:null,role:null}),gn=W=>{let $e=M;for(let No of He)for(let[Bt,ir]of Object.entries(W))$e=Dr($e,No.partKey,Bt,ir??null);ue($e)},lf=A==="text"||A==="textarea",{text:PI,hidden:da}=Vt(Re),gl=N?.[Kj]?.label??o,TI=da?i("Show {label} on the slide",{label:i(gl)}):i("Hide {label} on the slide",{label:i(gl)}),EI=Ro("div",{className:"sf-field-head",children:[q(Hj,{}),q("span",{className:"sf-field-label sf-field-label--inline",children:i(gl)}),lf&&q(Uj,{content:TI,children:q(Gj,{"aria-pressed":da,"aria-label":TI,onClick:()=>Fe({text:PI,hidden:!da}),children:da?q(mT,{name:"eye-off",size:14}):q(mT,{name:"eye",size:14})})})]}),bl=!H&&G,IF=!!A&&(Iw(N)||H||da||!G),OI=Xc(M,Se,Pe,u),gF=OI.kind==="role"?OI.role:null,cf=Wp(Me)??JC(gF),_I=Ct(y.saved,y.old),bF=Object.entries(Me).filter(([W,$e])=>W!=="role"&&W!=="textStyle"&&$e!==void 0).length,yF=()=>{let W=M;for(let $e of He){let{role:No,textStyle:Bt}=$e.style;W=LC(W,$e.partKey),No&&(W=Dr(W,$e.partKey,"role",No)),Bt&&(W=Dr(W,$e.partKey,"textStyle",Bt))}ue(W)},lr=cf,SF=QC(He[0].style),wF=lr?_I.find(W=>W.id===lr)?.name??lr:"",CF=()=>{_(!1),lr&&(y.write(ev({saved:y.saved,old:y.old,styleId:lr,values:rm(He[0].style)}),!0),yF())};return Ro(e8,{sectionName:F?.label??k.type,onBack:t,tabs:W=>q(Jo,{motion:ge,body:W}),textEditor:I("words")?q("div",{ref:v,className:"sf-part-text",children:IF?q(VP,{text:PI,onTextChange:W=>Fe(lf?{text:W,hidden:da}:W),multiline:Vi(A),markup:A!=="plainText",styled:!1,style:He[0].style,base:He[0].base,setValue:gn,colors:ca,placeholder:Th(cC(N))??void 0,ariaLabel:i(gl),head:EI,typedOnCanvas:c===b}):A?lf?EI:null:q(Bj,{field:N,name:o,value:ro,onChange:Fe,id:`sf-part-${e}-${o}`})}):void 0,children:[K&&I("sourceNote")&&q(Jc,{source:K,slug:en(O),menuId:qc(O)}),bl&&q(pT,{style:I("style")?{value:cf??"",options:xT(_I),onChange:W=>sr(W||null),changed:bF>0,onEditStyles:r,onUpdateStyle:lr&&SF?()=>_(!0):void 0}:void 0,font:I("font")?{value:Me.font??"",styleValue:ma(He[0].base.fontKey)?.label,options:Mo.map(W=>({label:W.label,value:W.key})),onChange:W=>Qe("font",W||null)}:void 0,italic:I("italic")?{value:Me.italic,styleValue:a8(h,cf),onChange:W=>Qe("italic",W??null)}:void 0,cells:$c(He[0].style,He[0].base,gn,Yc(w)).filter(W=>I(W.key)),align:I("align")?Yc(w)==="mobile"?{value:Me.alignPhone??"",styleValue:Me.align??He[0].base.align,onChange:W=>Qe("alignPhone",W||null)}:{value:Me.align??"",styleValue:He[0].base.align,onChange:W=>Qe("align",W||null)}:void 0,letterCase:I("letterCase")?{value:Me.case??"",styleValue:He[0].base.case,onChange:W=>Qe("case",W||null)}:void 0}),E&&lr&&q(XP,{styleName:wF,onCancel:()=>_(!1),onConfirm:CF}),bl&&Lt===null&&I("fixedSizeHint")&&q("p",{className:"es-field-hint sf-hint-keep",children:i("Fixed size \u2014 the site\u2019s Text setting doesn\u2019t resize this.")}),wT(Qj,W=>I(W)&&(W==="words"||(W==="sourceNote"?!!K:W==="fixedSizeHint"?bl&&Lt===null:bl)))&&q(Ur,{})]})}function a8(e,o){return!o||!Array.isArray(e)?!1:e.find(t=>t?.id===o)?.values?.italic===!0}var yT={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0};import{jsx as Qo,jsxs as Uh,Fragment as g8}from"react/jsx-runtime";import{useCallback as b8,useRef as y8,useState as Fs}from"react";import{InspectorIconButton as S8}from"efficient-easel/chrome";import{PopupMenu as w8,PopupMenuItem as C8,PopupMenuLabel as ld}from"efficient-shell/ui";import{CopyToPageIcon as v8}from"efficient-easel/icons";import{useEaselSession as k8}from"efficient-easel/screen/lib/session-context";import{cloneNodeWithFreshIds as P8}from"efficient-easel/screen/lib/document/section-doc";import{FOOTER_TYPE as T8}from"efficient-easel/draw";import{currentEaselSession as n8}from"efficient-easel/screen/lib/session";var s8={general:!0,commerce:!0,service:!0};function Eh(e){let o=e?.sets;return o?Object.fromEntries(xP.map(t=>[t,o.includes(t)])):s8}function Oh(e=n8()){return Eh(e.blocks)}import{isBackendError as nn}from"efficient-easel/screen/lib/backend-error";import{isEfficientBackend as KT}from"efficient-easel/screen/lib/session";import{useSyncExternalStore as l8}from"react";var on=new Map,_h=new Set;function Rh(e,o){if(!(on.has(e)&&on.get(e)===o)){on.set(e,o);for(let t of _h)t()}}function Qc(e,o){Rh(e,o)}function ed(e,o){let t=on.get(e);Rh(e,o??(t==="live"?"changed":t))}function od(e,o){Rh(e,o??"live")}function vT(e){return on.get(e)}function i8(e){return _h.add(e),()=>{_h.delete(e)}}function kT(e){let o=()=>e?on.get(e):void 0;return l8(i8,o,o)}function PT(e,o){return e==="live"&&o?"changed":e}function Fh({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 TT(e){return e.map(o=>o.change==="take_down"?i("{name} (taken down)",{name:o.name}):o.name)}var Ae="SiteHeader",Ee="SiteFooter",Ah="sections",Qye=[Ae,Ee],tn=e=>e===Ae||e===Ee,ET=e=>`${e}:${Ah}`;function OT(e,o,t=[]){return{type:e,props:{id:o,[Ah]:t}}}var c8=new Set(["Footer",Ae,Ee]);function rn(e){let o=new Set,t=!1,r=e.filter(a=>{let n=a?.type??"";return n==="Header"?(t=!0,!1):c8.has(n)?o.has(n)?(t=!0,!1):(o.add(n),!0):!0});return t?r:e}function td(e,o){return e.some(t=>t?.type===o.type)?e:o.type===Ae?[o,...e]:[...e,o]}var _T={[Ae]:{max:3,takes:["Flex","Ticker"]},[Ee]:{max:6,takes:["Flex","Prose","Logos","Divider"]}};function RT(e,o,t){if(!tn(e))return!0;let r=_T[e];return t<r.max&&r.takes.includes(o)}function FT(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(!tn(n?.type))continue;let s=n.props?.[Ah];if(!Array.isArray(s)||!s.some(c=>c?.props?.id===r))continue;let l=_T[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 d8}from"efficient-easel/data";var AT="Footer",f8=[Ae,AT,Ee],an=e=>{let o=e?.content;return Array.isArray(o)?o:[]},Yr=e=>{let o=e?.zones;return o&&typeof o=="object"&&!Array.isArray(o)?o:null},Os=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0},LT=e=>Cn(e)?.ownerId??"";function BT(e){let o=rn(an(e)),t=o.some(r=>r?.type===Ee);return o.filter(r=>r?.type===Ae||r?.type===Ee||r?.type===AT&&!t)}function Lh(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(d8(a)){let n=Os(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(LT(s))||(n.add(s),r(l),a=!0)}}return t}function Bh(e,o){let t={},r={};for(let[a,n]of Object.entries(e??{}))(o.has(LT(a))?t:r)[a]=n;return{owned:t,rest:r}}function DT(e,o){if(!o)return e;let t=BT(o);if(!t.length)return e;let r=t.filter(l=>l.type===Ae),a=t.filter(l=>l.type!==Ae),n={...e,content:[...r,...an(e),...a]},{owned:s}=Bh(Yr(o),Lh(t,Yr(o)));return Object.keys(s).length&&(n.zones={...Yr(e)??{},...s}),n}function Dh(e,o){if(!o)return{page:e,chrome:null};let t=BT(o),r=new Set(t.map(Os).filter(w=>!!w)),a=[],n=[];for(let w of an(e)){let I=Os(w);I&&r.has(I)||tn(w?.type)?n.push(w):a.push(w)}let s=new Map(n.map(w=>[Os(w),w])),l=new Set,c=rn(an(o)).flatMap(w=>{let I=Os(w);if(!I||!r.has(I))return[w];let v=s.get(I);return v?(l.add(v),[v]):[]});for(let w of n)l.has(w)||c.some(I=>I?.type===w.type)||(c=w.type===Ae?[w,...c]:[...c,w]);c=rn(c);let d=c.length===an(o).length&&c.every((w,I)=>w===an(o)[I]),u=Yr(e),h=Lh(c,u),{owned:p,rest:x}=Bh(u,h),g=Bh(Yr(o),Lh(t,Yr(o))).owned,y={...o,content:d?o.content:[...c]},E=Yr(o);if(E||Object.keys(p).length){let w={};for(let[I,v]of Object.entries(E??{}))I in g?I in p&&(w[I]=p[I]):w[I]=v;for(let[I,v]of Object.entries(p))I in w||(w[I]=v);y.zones=w,E&&u8(y.zones,E)&&(y.zones=E)}let _={...e,content:a};return u&&(Object.keys(x).length||!Object.keys(g).length?_.zones=x:delete _.zones),{page:_,chrome:y}}function u8(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 NT(e,o){return t=>e(t)||t!==void 0&&f8.includes(t)&&o()}var MT="SharedSection",p8=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,_s=e=>{let o=e?.content;return Array.isArray(o)?o:[]},Rs=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0};function HT(e){if(e?.type!==MT)return null;let o=e.props?.section;return typeof o=="string"&&p8.test(o)?o.toLowerCase():null}function zT(e){let o=[];for(let t of _s(e)){let r=HT(t),a=Rs(t);r&&a&&o.push({refId:a,section:r})}return o}function rd(e){let o=_s(e)[0];return o&&typeof o=="object"&&Rs(o)?o:null}function m8(e,o){return{type:MT,props:{id:e,section:o}}}function WT(e,o){let t=new Map,r=new Set,a=!1,n=_s(e).map(s=>{let l=HT(s),c=Rs(s);if(!l||!c||r.has(l))return s;let d=rd(o.get(l)),u=Rs(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 GT(e,o,t){let r=new Map,a=!1,n=_s(e).map(s=>{let l=Rs(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=_s(d).slice(1),h=rd(d);return r.set(c.section,h===s?d:{...d,content:[s,...u]}),a=!0,c.reference??m8(c.refId,c.section)});return{page:a?{...e,content:n}:e,docs:r}}var UT=null;function Nh(e){UT=e}function Tt(){return UT}var $T=null;function Mh(e){$T=e}function ad(){return $T}var nd=null;function Hh(e){nd=e}function jT(){return!!(nd&&nd.state().lockHolder)}function Xr(){return nd!==null}function Gh(e){return!!(e?.publish&&e.liveState)}function h8(e,o){if(!Gh(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 x8(e,o){return async(t,r)=>{try{await iy()}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"?ql({state:"live",changes:[]}):It(0),{version:r??null}}}function Wh(e,o,t){let r=o?{siteId:o}:void 0;return{resolve:a=>e.load({slug:a,...r}).then(n=>(n&&Qc(n.id,n.live),n)),saveLayout:(a,n,s,l)=>e.save(a,{layout:n},{version:s,clientId:l??""}).then(c=>(ed(a,c.live),It(),c)),rereadVersion:e.version?a=>e.version(a):void 0,publish:Gh(t)?x8(t,r):e.publish?(a,n)=>e.publish(a,n?{version:n}:void 0).then(s=>(od(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 I8(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 T=vT(n.id);return T==="changed"||T==="never"||T===void 0&&l},y=T=>{p={...p,...T,docId:n?.id??null,unpublished:g(),sections:[...u.values()]};for(let R of x)R()},E=(T,R,N)=>{R?u.set(T,{section:T,title:c.get(T)?.title??"",problem:R,holder:N}):u.delete(T)},_=T=>T&&typeof T=="object"&&!Array.isArray(T)?T:{},w=T=>s.has(T),I=()=>new Map([...c].map(([T,R])=>[T,R.layout])),v=()=>`SharedSection-${typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2)}`,k=(T,R,N,b)=>{let O=_(R);c.set(T,{layout:O,version:N,savedJson:JSON.stringify(O),title:b})},C={state:()=>p,subscribe:T=>(x.add(T),()=>{x.delete(T)})},F={sectionOf:T=>d.get(T)?.section??null,heldElsewhere:T=>{let R=d.get(T)?.section;return!!(R&&u.get(R)?.problem==="lock")},adopt:(T,R)=>{k(R.id,R.layout,R.layout_updated_at,R.title),d.set(T,{section:R.id,refId:v()}),h.set(R.id,R.used_on),y({})},place:T=>{if([...d.values()].some(b=>b.section===T.id))return null;let R=rd(_(T.layout)),N=typeof R?.props?.id=="string"?R.props.id:null;return!R||!N||!R.type?null:(k(T.id,T.layout,T.layout_updated_at,T.title),d.set(N,{section:T.id,refId:v()}),h.set(T.id,T.used_on),R)},usedOn:T=>h.get(T)??null,learn:T=>{for(let R of T){h.set(R.id,R.used_on);let N=c.get(R.id);N&&(N.title=R.title);let b=u.get(R.id);b&&u.set(R.id,{...b,title:R.title})}y({})}},D=async(T,R)=>{for(let[N,b]of T){let O=c.get(N),A=JSON.stringify(b);if(!(!O||A===O.savedJson||u.get(N)?.problem==="lock"))try{let H=await e.save(N,{layout:b},{version:O.version,clientId:R??""});ed(N,H.live),O.layout=b,O.version=H.version,O.savedJson=A,E(N,null)}catch(H){nn(H,"changed-elsewhere")?E(N,"conflict"):nn(H,"lock-taken")?E(N,"lock",H.holder??void 0):E(N,"save")}}T.size&&It(),y({})};return{resolve:async T=>{if(Hh(T===Go?null:C),Nh(T===Go?null:F),c=new Map,d=new Map,u=new Map,h=new Map,T===Go)return t.resolve(T);let R=!1,[N,b]=await Promise.all([t.resolve(T),e.load({slug:Go,...o}).catch(()=>(R=!0,null))]);if(b&&!Rn(N?.layout)){Qc(b.id,b.live);let K=_(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:R}),N;let O=_(N.layout),A=zT(O),H=await Promise.all(A.map(K=>e.load({id:K.section,...o}).catch(()=>null)));A.forEach((K,Re)=>{let le=H[Re];le?(Qc(le.id,le.live),k(K.section,le.layout,le.version,"")):(c.delete(K.section),u.set(K.section,{section:K.section,title:"",problem:"load"}))});let G=WT(O,I());if(d=G.held,!n)return d.size&&s.add(N.id),y({conflict:null,saveFailed:!1,loadFailed:R}),d.size?{...N,layout:G.working}:N;let X=DT(G.working,n.layout);return n.savedJson=JSON.stringify(Dh(X,n.layout).chrome),s.add(N.id),y({conflict:null,saveFailed:!1,loadFailed:!1}),{...N,layout:X}},saveLayout:async(T,R,N,b)=>{if(!w(T))return t.saveLayout(T,R,N,b);let O=n,A=O?Dh(R,O.layout):{page:R,chrome:null},H=GT(A.page,d,I()),G=await t.saveLayout(T,H.page,N,b);if(await D(H.docs,b),!O)return G;let X=JSON.stringify(A.chrome);if(!A.chrome||X===O.savedJson||p.lockHolder)return G;try{let K=await e.save(O.id,{layout:A.chrome},{version:O.version,clientId:b??""});ed(O.id,K.live),It(),O.layout=A.chrome,O.version=K.version,O.savedJson=X,l=!0,y({conflict:null,saveFailed:!1})}catch(K){nn(K,"changed-elsewhere")?y({conflict:K.conflict??{savedBy:"",savedByYou:!1,secondsAgo:0}}):nn(K,"lock-taken")?y({lockHolder:K.holder??{name:"",secondsSinceSeen:0,secondsSinceHeld:0}}):y({saveFailed:!0})}return G},publish:t.publish?async(T,R)=>{let N=await t.publish(T,R),b=n;if(b&&w(T)&&!a&&e.publish&&g()&&!p.lockHolder){let O=await e.publish(b.id,b.version?{version:b.version}:void 0);od(b.id,O.live),O.version!==null&&(b.version=O.version),l=!1,y({})}if(w(T)&&!a&&e.publish)for(let[O,A]of c){if(u.get(O)?.problem==="lock")continue;let H=await e.publish(O,A.version?{version:A.version}:void 0);od(O,H.live),H.version!==null&&(A.version=H.version)}return N}:void 0,lock:r?{claim:async(T,R,N)=>{let b=await r.claim(T,R,N);if(!w(T))return b;let O=n;if(O)try{await r.claim(O.id,R,!1),p.lockHolder&&y({lockHolder:null})}catch(A){nn(A,"lock-taken")&&y({lockHolder:A.holder??{name:"",secondsSinceSeen:0,secondsSinceHeld:0}})}for(let A of c.keys())try{await r.claim(A,R,!1),u.get(A)?.problem==="lock"&&E(A,null)}catch(H){nn(H,"lock-taken")&&E(A,"lock",H.holder??void 0)}return c.size&&y({}),b},release:async(T,R)=>{if(await r.release(T,R),!w(T))return;let N=n;N&&!p.lockHolder&&await r.release(N.id,R).catch(()=>{});for(let b of c.keys())u.get(b)?.problem!=="lock"&&await r.release(b,R).catch(()=>{})}}:void 0,pinnedChrome:C}}function sd(e){let o=(t,r,a)=>e.save(t,r.layout?{...r,layout:FP(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 CSe(e,o,t){return e.update(o,AP(t))}function vSe(e,o=ze(),t=Oh(),r={}){let a=KT(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=Gh(o.site)?o.site:void 0,h=sd(o.pages),p=Wh(h,e,u),x=d?I8(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,...qT(p.resolve),lock:o.lock,...x,site:s?()=>o.site.get(n):void 0,siteLiveState:u?()=>u.liveState(n):void 0,siteVersions:h8(u,n),updateSite:s&&l?g=>l(g,n):void 0,previewHref:o.preview?g=>o.preview.href(g):void 0}}function kSe(e,o=ze(),t=Oh()){let r=KT(o),a=o.templates,n=a?sd(a.pages(e)):{list:()=>Promise.reject(new Error(zh)),load:()=>Promise.reject(new Error(zh)),save:()=>Promise.reject(new Error(zh))};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},...Wh(n,void 0),...qT(Wh(n,void 0).resolve),publish:void 0,templateName:a?()=>a.get(e).then(s=>s.name):void 0}}function qT(e){return{resolve:o=>(Hh(null),Nh(null),e(o))}}var zh="This editor's backend has no website templates.";function VT({node:e,currentSlug:o,siteId:t,tokenRef:r,runAuthed:a,onNotify:n}){let[s,l]=Fs(!1),[c,d]=Fs(null),u=k8(),[h,p]=Fs(!1),[x,g]=Fs(null),y=y8(null),[E,_]=Fs(null),w=b8(async()=>{if(u.usesBridgedToken&&!r.current){p(!0);return}try{d(await ze(u).pages.list(t?{siteId:t}:void 0))}catch{p(!0)}},[r,t,u]),I=()=>{if(s){l(!1);return}let C=y.current?.getBoundingClientRect();C&&_({top:C.bottom+6,right:Math.max(8,window.innerWidth-C.right)}),d(null),p(!1),w(),l(!0)},v=(c??[]).filter(C=>C.slug!==o),k=async C=>{if(x)return;g(C.slug);let F=P8(e),D=u.documentHooks?.storedNode?.(F)??F,T=await a(()=>E8(ze(u).pages,C,D));g(null),l(!1),n?.(T?i("Duplicated to \u201C{name}\u201D",{name:C.label}):i("Couldn\u2019t duplicate the section \u2014 please retry"),T?"success":"error")};return Uh(g8,{children:[Qo("span",{"data-menu-toggle":!0,style:{display:"contents"},children:Qo(S8,{buttonRef:y,label:i("Duplicate to another page"),hasPopup:"menu",expanded:s,onClick:I,children:Qo(v8,{size:15})})}),s&&E&&Qo(w8,{portal:!0,style:{top:E.top,right:E.right},onClose:()=>l(!1),children:Uh("div",{role:"menu","aria-label":i("Duplicate to page"),children:[Qo(ld,{children:i("Duplicate to page")}),h?Qo(ld,{children:i("Couldn\u2019t load pages")}):c===null?Qo(ld,{children:i("Loading\u2026")}):v.length===0?Qo(ld,{children:i("No other pages")}):v.map(C=>Uh(C8,{role:"menuitem",disabled:x!==null,onClick:()=>{k(C)},children:[Qo("span",{className:"min-w-0 flex-1 truncate",children:C.label}),x===C.slug?Qo("span",{className:"shrink-0 text-xs",children:i("Copying\u2026")}):C.draft&&Qo("span",{className:"shrink-0 text-xs",children:i("draft")})]},C.id))]})})]})}async function E8(e,o,t){let r=sd(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===T8);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 d7}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSectionOps as f7}from"efficient-easel/screen/lib/document/use-section-ops";import{SELECTION_MODE as Vwe,isSelectionMode as Vh}from"efficient-easel/screen/lib/screen-parts";import{usePreviewParts as u7}from"efficient-easel/draw/client";import{jsx as As,jsxs as O8}from"react/jsx-runtime";import{SettingsDrill as _8}from"efficient-easel/panel";import{UiIcon as R8}from"efficient-easel/draw/client";var F8="Not shown on the page";function A8({part:e,onOpen:o}){return As(_8,{name:i(e.label),preview:e.offPage?i(F8):e.preview||i("Empty"),offPage:e.offPage,status:e.hidden?As("span",{className:"sf-entry-eye",role:"img","aria-label":i("Hidden on the page"),children:As(R8,{name:"eye-off",size:14})}):void 0,onOpen:()=>o(e.key)})}function $h(e){return e.filter(o=>!o.identifier)}function YT({parts:e,onOpen:o,heading:t=!0}){let r=$h(e);return r.length?O8("div",{className:"sf-entries",children:[t?As("h3",{className:"sf-entries-head",children:i("Text")}):null,r.map(a=>As(A8,{part:a,onOpen:o},a.key))]}):null}import{HEADER_TYPE as p7,ROOT_ZONE as f0}from"efficient-easel/draw";import{HEADER_TYPE as go,FOOTER_TYPE as Le,newNodeId as L8}from"efficient-easel/draw";function id(){return{type:go,props:{id:L8(go)}}}var XT=[{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"}],B8=XT.filter(e=>e.type!=="FooterLogo"&&e.type!=="FooterGroup"),D8="FooterGroup",ZT="blocks";function JT(e){return e===Le?XT:e===D8?B8:null}function cd(){let e=(o,t)=>({type:o,props:{id:`${o}-${crypto.randomUUID()}`,...t}});return[e("FooterLogo",{widthPct:100,align:"left",tagline:""}),e("FooterEmailSignup",{...Ny}),e("FooterPayment",{...My})]}function jh(e){switch(e?.type){case Ae:case Ee:return i("On every page");case go:case Le:return i("On every page \xB7 old style");default:return null}}var QT=()=>null,e0=()=>i("Changed on every page");function dd(e,o){let t=sb(e,o);if(t)return t;let r=FT(e,o);if(!r)return null;let a=r.group===Ae;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 ud,Fragment as j8,jsxs as K8}from"react/jsx-runtime";import{useState as q8}from"react";import{createNode as V8,newId as Y8}from"efficient-easel/data";import{useEasel as X8}from"efficient-easel/easel";import{Banner as Z8,Button as Kh}from"efficient-shell/ui";import{useScreenDocument as J8}from"efficient-easel/screen/components/ScreenDocumentContext";var fd="Flex",N8={FooterMenu:"MenuBlock",FooterEmailSignup:"EmailFormBlock",FooterSocial:"SocialLogosBlock",FooterPayment:"PaymentLogosBlock"},M8=e=>{let{id:o,...t}=e;return t},o0=e=>typeof e=="string"?e:"",t0={sm:12,md:13,lg:15},H8="md",r0=1.5,z8={size:13,lineHeight:r0,width:280},W8=14,G8=40,U8=e=>e==="center"||e==="right"?e:"left";function $8(e){let o={},t=[["padTop","sectionPaddingTop"],["padRight","sectionPaddingRight"],["padBottom","sectionPaddingBottom"],["padLeft","sectionPaddingLeft"]];for(let[r,a]of t){let n=$(e[r]);n&&(o[a]=n)}return o}function a0(e,o){let t=e.props??{},r=N8[e.type];if(r)return[o(r,M8(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(ng*(($(t.widthPct)??100)/100)),href:"/",align:a,...$8(t)}),s=o0(t.tagline).trim();return s?[n,o("Text",{text:s,tone:"dim",align:a,_partStyles:{text:{...z8}}})]:[n]}case"FooterText":{let a=typeof t.size=="string"&&t.size in t0?t.size:H8;return[o("Text",{text:o0(t.text),tone:typeof t.tone=="string"?t.tone:"default",_partStyles:{text:{size:t0[a],lineHeight:r0}}})]}case"FooterDivider":{let a=$(t.thickness),n=$(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(fd,{direction:t.direction==="horizontal"?"row":"column",gap:Tr("FooterGroup",t.gap),align:t.align==="center"||t.align==="end"||t.align==="stretch"?t.align:"start",...An,content:a.flatMap(n=>a0(n,o))})]}default:return[]}}function Ls(e,o,t){let r=e&&Array.isArray(e.props?.blocks)?e.props.blocks:[],a=d=>o(fd,{direction:"row",wrap:!0,share:"equal",gap:G8,content:d}),n=[],s=[];for(let d of r){let u=a0(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(fd,{direction:"column",gap:W8,align:"stretch",...An,content:u}))}(s.length||!n.length)&&n.push(a(s));let l=o(fd,{direction:"column",content:[o("LegalLineBlock")]}),c=OT(Ee,t,[...n,l]);return{...c,props:{...c.props,...e?.props?.width==="full"?{fullWidth:!0}:{}}}}function n0(){let{appState:e,dispatch:o,config:t}=X8(u=>u),{readOnly:r}=J8(),[a,n]=q8(!1),s=e.data.content;if(r||s.some(u=>u.type===Ee))return null;let l=s.find(u=>u.type===Le)??null,c=(u,h)=>V8(t,u,h),d=()=>{let u=Ls(l,c,Y8(Ee));o({type:"setData",data:h=>({...h,content:[...td(h.content,u)]}),recordHistory:!0}),n(!1)};return ud(Z8,{tone:"info",title:i("This footer uses the old layout"),action:a?K8(j8,{children:[ud(Kh,{variant:"primary",size:"sm",onClick:d,children:i("Switch now")}),ud(Kh,{variant:"secondary",size:"sm",onClick:()=>n(!1),children:i("Cancel")})]}):ud(Kh,{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 qh,jsxs as Q8}from"react/jsx-runtime";import{InspectorUpLevel as s0}from"efficient-easel/chrome";function l0({nodeId:e,part:o,sectionName:t,onUpToSection:r}){let{select:a}=Sc(),n=Xa(e,o,"block");return Q8("div",{children:[o!=="media"?qh(s0,{inline:!0,name:i(qa.media),onSelect:()=>a(ns(e,"media"))}):qh(s0,{inline:!0,name:i(t),onSelect:r}),qh(Jo,{part:o,motion:n})]})}import{SettingsSwitch as m7}from"efficient-easel/panel";var p0={kind:"header"},Xh={kind:"website"},m0={kind:"website",tab:$a,revealPageGroup:!0},h0={kind:"chat"},x0={kind:"social"},Bs="Part";function h7(e){return i("Part of {name}",{name:i(e)})}function x7(e,o,t){let r=e.describeNode(o);return{name:t,kindLabel:r?h7(r.label):i(Bs)}}function I7(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 I0({what:e}){let o=I7(e);return Zr("div",{className:"sf-note",children:[xe("p",{children:xe("strong",{children:o.title})}),Zr("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 Yh(e){let o=as[e];return{name:qa[e],kindLabel:Bs,icon:o,head:(t,r)=>{if(t.kind!==o)return null;let a=r.describeNode(t.nodeId);if(!a)return null;let n=u0({name:i(Cc(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?xe(l0,{nodeId:t.nodeId,part:e,sectionName:r.describeNode(t.nodeId)?.label??"Hero",onUpToSection:()=>r.onSelectNode(t.nodeId)}):null}}var g7={header:{name:"Header",kindLabel:"Site settings",icon:"header",render:(e,o)=>{let t=o.hostPanels?.header;return t?xe(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)=>xe(uc,{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:()=>xe(sk,{})},social:{name:"Social links",kindLabel:"Site settings",icon:"social",render:()=>xe(uk,{unavailable:xe(I0,{what:"Social link"})})},ticker:{name:os,kindLabel:Bs,icon:"ticker",head:(e,o)=>e.kind==="ticker"?x7(o,e.heroId,i(os)):null,render:e=>xe(hP,{heroId:e.kind==="ticker"?e.heroId:""})},heroMedia:Yh("media"),heroImage:Yh("image"),heroImage2:Yh("image2"),part:{name:Bs,kindLabel:Bs,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}=Yo(e.propKey),n=a?Ja(t.fields[r],a):t.fields[r],s=pC(i(Ap(ec(n??{},r))),a),l=u0({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"?xe(CT,{nodeId:e.nodeId,propKey:e.propKey,onBack:()=>o.onSelectNode(e.nodeId),onEditStyle:o.onOpenSiteStyles}):null}},b7=new Set(["header","website","chat"]);function y7(e,o){if(e==="selection")return null;let t=g7[e];return b7.has(e)&&!o.hasSiteSettings?{...t,kindLabel:"Not part of a template",render:()=>xe(I0,{what:t.name})}:t}function g0({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}=d7(),{rows:E}=Jn(),_=E?.find(ue=>ue.slug===h)??null,w=t7(),I=Object.keys(w.fields).some(ue=>!ue.startsWith("_")&&!Yn.includes(ue)),{websiteName:v}=ie(),k=f7({readOnly:g}),{select:C}=u7(),{selectedItem:F,getItemById:D,getSelectorForId:T,config:R,appState:N}=o7(ue=>ue),b=i7(R,F?{type:F.type,props:F.props}:null),O=F?yC(b??R.components[F.type]?.fields,F.props):[],A=ue=>R.components[ue]?.label??ue,H=F?T(F.props.id):void 0,G=y7(e.kind,c),X=c7(),K={capabilities:c,tokenRef:d,hostPanels:X.chrome?.panels,describeNode:ue=>{let Se=D(ue);if(!Se)return null;let Me=R.components[Se.type];return{type:Se.type,label:Me?.label??Se.type,fields:Me?.fields??{},props:Se.props??{}}},siteId:p,websiteName:v??null,notifyParent:u,onNotify:s,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onSelectNode:a},Re=G?.head?.(e,K)??null,le=ek({kind:_?.kind,pageName:_?.label}),Ue=Re?.name??(G?i(G.name):F?i(A(F.type)):le.name),Be=Re?.kindLabel??(G?i(G.kindLabel):F?H&&H.zone!==f0?i("Block"):i("Section"):le.kindLabel),ke=G?G.icon:F?F.type:"page",fe=G?null:F?R.components[F.type]?.fields??null:R.root?.fields??null,ge=fe?Hk(fe):2,Ke=Vh(e)&&F?ks(F.type):null,qe=!!F&&!!H&&H.zone===f0&&F.type!==Le&&F.type!==p7,ae=dd(N?.data,F),Fe=()=>{ae||H&&k.duplicateComponent(H.zone,H.index)},ro=()=>{H&&(k.removeComponent(H.zone,H.index),k.select(null))},Pe=F?R.components[F.type]?.defaultProps?.previewHover:void 0,De=Vh(e)&&!!F&&!!H&&Pe!==void 0,Io=De&&F.props.previewHover===!0,So=()=>{!F||!H||k.replaceComponent(H.zone,H.index,{...F,props:{...F.props,previewHover:!Io}})},[wo,M]=e7(um);return Zr("div",{className:`es-sidepanel es-sidepanel--right sf-panel sf-panel--right${wo||!(!G&&F)?"":" sf-hints-folded"}`,children:[xe(n7,{icon:xe(Wr,{type:ke,size:15}),name:Ue,kind:Be,actions:!n&&Vh(e)&&F&&F.type!==Le?Zr(i0,{children:[xe(c0,{label:i("Duplicate section"),title:ae??void 0,disabled:ae!==null,onClick:Fe,children:xe(s7,{size:15})}),qe&&c.hasSiteSettings&&xe(VT,{node:F,currentSlug:h,siteId:p??void 0,tokenRef:d,runAuthed:x,onNotify:s}),xe(c0,{label:i("Remove section"),danger:!0,onClick:ro,children:xe(l7,{size:15})}),l?xe(d0,{side:"right",onHide:l,divider:!0}):null]}):l?xe(d0,{side:"right",onHide:l}):void 0}),De&&Zr("div",{className:"sf-preview-pin",children:[Zr("div",{className:"sf-preview-pin-text",children:[xe("span",{className:"sf-preview-pin-label",children:i("Preview hover state")}),xe("span",{className:"sf-preview-pin-hint",children:i("not shown live")})]}),xe(m7,{checked:Io,onChange:So,ariaLabel:i("Preview hover state")})]}),xe($S,{tier:ge,children:xe("div",{className:"sf-insp-body es-insp-body sf-scroll",children:G?G.render(e,K):F?Zr(i0,{children:[F.type===Le&&c.hasSiteSettings&&xe(n0,{}),xe(Vb,{children:xe(Jo,{entries:xe(YT,{parts:O,heading:!1,onOpen:ue=>C(Ji(F.props.id,ue))}),entryCount:$h(O).length})}),Ke&&xe(Jc,{source:Ke,slug:en(F?.props),menuId:qc(F?.props)}),xe(pm,{shown:wo,onChange:M})]}):I?xe(Jo,{omit:Yn}):xe(a7,{variant:"none",icon:!1,message:i("Select a section or block to edit it."),children:r&&xe(r7,{variant:"secondary",onClick:r,children:i("This page")})})})})]})}import{jsx as f,jsxs as P,Fragment as C0}from"react/jsx-runtime";var Je={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)"},Zh="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 z({w:e,h:o,tone:t="dark",r=2,style:a}){return f("div",{style:{width:e,height:o,borderRadius:r,background:Je[t],flex:"none",...a}})}var S7={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"},j={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)"},Oe=(e,o,t=160)=>({background:`linear-gradient(${t}deg,${e},${o})`});function Ot({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 P("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 md({children:e}){return f("span",{style:{fontSize:"4.64cqw",fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:m.muted},children:e})}function b0({over:e,overTone:o,head:t,headSize:r=11.5,cta:a,ctaBg:n,ctaFg:s,tone:l}){return P(C0,{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 Jh({name:e,price:o}){return P("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[f("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",...Oe(m.paper,m.paper2,150)},children:f(Ot,{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 Et({k:e,v:o,ok:t}){return P("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}),P("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 ve({title:e,children:o}){return P("div",{style:{...j,background:m.card,padding:"9px 10px",display:"flex",flexDirection:"column",gap:6},children:[f(md,{children:e}),o]})}function y0({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 Qh({filled:e=5,size:o=6}){return P("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 Ds({n:e,label:o,tone:t=m.text}){return P("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 co({children:e,w:o}){return f("span",{style:{fontSize:"3.98cqw",lineHeight:1.45,color:m.muted,width:o,display:"block"},children:e})}function pd({label:e,w:o="100%",filled:t}){return P("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 S0({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 w7={wheelslisting:f(ve,{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])=>P("div",{style:{display:"flex",alignItems:"center",gap:6},children:[f("span",{style:{width:20,height:15,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",...Oe(m.paper,m.paper2,150)},children:f(Ot,{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:P("div",{style:{...j,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[P("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[["20 inch","6\xD7139.7","Black"].map(e=>P("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"})]}),P("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:P("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center",...Oe(m.ink,m.inkSoft)},children:[f("span",{style:{fontSize:"5.31cqw",fontWeight:700,color:m.onInk},children:"Will it fit your rig?"}),P("div",{style:{display:"flex",gap:4},children:[["2021","Toyota","Hilux"].map(e=>P("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(ve,{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])=>P("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(ve,{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:P(ve,{title:"Will it fit your car?",children:[f("div",{style:{display:"flex",gap:3},children:["Make","Model","Year","Trim"].map(e=>P("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])=>P("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:P("div",{style:{...j,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)=>P("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))}),P("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:P("div",{style:{...j,background:m.paper,padding:"9px 11px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[f(md,{children:"Buy it with"}),P("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(Ot,{size:17,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})},e)),f("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:m.muted},children:"+"}),P("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:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,...Oe(m.ink,m.ink2)},children:[P("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(ve,{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])=>P("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(ve,{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])=>P("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(ve,{title:"Our studios",children:P("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=>P("div",{style:{position:"relative",minHeight:0},children:[f(z,{r:3,style:{...j,background:`linear-gradient(transparent 45%,${m.scrim} 45%),${Oe(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(ve,{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])=>P("div",{style:{position:"relative",padding:"4px 5px",display:"flex",flexDirection:"column",gap:2,minHeight:0},children:[f(z,{r:4,style:{...j,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}),P("div",{style:{flex:1,minHeight:0,position:"relative"},children:[f(z,{r:3,style:{...j,...Oe(m.paper,m.paper2,150)}}),f(z,{w:"60%",h:"60%",r:8,style:{position:"absolute",left:"12%",top:"20%",background:m.mark1,opacity:.75}}),f(z,{w:6,h:6,r:3,style:{position:"absolute",left:"44%",top:"34%",background:m.rust}})]})]},e))})}),form:f(ve,{title:"Send us a message",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[P("div",{style:{display:"flex",gap:5},children:[f(pd,{label:"Name"}),f(pd,{label:"Email"})]}),f(pd,{label:"Message",filled:!0}),f(S0,{children:"SEND"})]})}),appointmentbooking:f(ve,{title:"Book a fitting",children:P("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(ve,{title:"Leave a review",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[f(Qh,{filled:4,size:14}),f(pd,{label:"Your review",filled:!0}),f(S0,{children:"POST"})]})}),submitbuild:f(ve,{title:"Show us your build",children:P("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:P("div",{style:{...j,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"}),P("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:P("div",{style:{...j,overflow:"hidden",...Oe(m.ink,m.inkSoft2)},children:[f(Ot,{size:92,style:{right:-18,top:-14}}),f("div",{style:{position:"absolute",inset:0,background:`linear-gradient(0deg,${m.scrim},transparent 62%)`}}),P("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:P("div",{style:{...j,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(co,{children:"Every failure starts in the same place \u2014 not the rim, not"}),f(co,{w:"62%",children:"the tyre, but the bolt nobody re-torqued."})]}),series:f(ve,{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])=>P("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(ve,{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])=>P("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[f("span",{style:{width:24,height:18,borderRadius:3,flex:"none",...Oe(e,o,150)}}),P("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:P("div",{style:{...j,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:{...j,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])=>P("div",{style:{display:"flex",gap:5},children:[f("b",{style:{fontSize:"3.98cqw",color:m.rust,flex:"none"},children:e}),f(co,{children:o})]},e))}),docmetacards:f(ve,{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])=>P("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:P("div",{style:{...j,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}}),P("div",{style:{paddingTop:6,display:"flex",flexDirection:"column",gap:2},children:[f(co,{children:"Unfitted wheels come back within 30 days, no questions."}),f(co,{w:"58%",children:"Freight on a change of mind is yours."})]})]}),paragraphs:P("div",{style:{...j,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."}),P("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[f(co,{children:"Forged, correctly offset, rated for what you actually"}),f(co,{children:"carry. Everything else is a photograph."})]})]}),keyfeatures:f(ve,{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=>P("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:P("div",{style:{...j,background:m.paper,padding:"10px 12px",display:"flex",gap:10,alignItems:"center"},children:[P("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:5},children:[f(Ds,{n:"27k",label:"Rigs"}),f(Ds,{n:"4.9",label:"Rating"})]}),P("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[f(co,{children:"Twelve years of fitting the same three questions, and the"}),f(co,{children:"answer has not moved: load rating, offset, then looks."})]})]}),chart:P(ve,{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:{...j,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",...Oe(m.inkSoft,m.ink)},children:P("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))}),P("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,...Oe(m.paper,m.paper2,150)}}),f("span",{style:{height:3,width:"38%",borderRadius:1,background:m.rust}})]})]})}),manifesto:f("div",{style:{...j,overflow:"hidden",display:"flex",alignItems:"center",padding:"0 16px",...Oe(m.ink,m.ink2)},children:P("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(ve,{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)=>P("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}}),P("div",{style:{display:"flex",flexDirection:"column",gap:0,minWidth:0},children:[f("b",{style:{fontSize:"4.64cqw",color:m.text},children:e}),f(co,{children:o})]})]},e))})}),timelinetrack:P("div",{style:{...j,padding:"0 12px",display:"flex",flexDirection:"column",gap:10,justifyContent:"center",...Oe(m.ink,m.inkSoft)},children:[f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"Milestones"}),P("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)=>P("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:P("div",{style:{...j,overflow:"hidden",...Oe(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:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,background:m.rust},children:[P("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:P("div",{style:{...j,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?"}),P("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:{...j,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:P("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",alignItems:"center",gap:6,justifyContent:"center",...Oe(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)=>P("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[t>0&&f("b",{style:{fontSize:"9.5cqw",lineHeight:1,color:m.warm},children:":"}),P("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:{...j,background:m.card,display:"flex",alignItems:"center",padding:"0 13px"},children:P("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:P("div",{style:{...j,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:P("div",{style:{...j,overflow:"hidden",background:m.card},children:[f("div",{style:{position:"absolute",inset:0,...Oe(m.ink,m.inkSoft2)}}),f(Ot,{size:64,style:{right:8,top:6}}),P("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(co,{children:"One shed, one lathe, one idea."}),f(co,{w:"66%",children:"It turned out to be right."})]})]}),gallerygrid:f(ve,{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,...Oe(e,o,140+t*22)}},t))})}),gallery:P(ve,{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,...Oe(e,o,150+t*20)}},t))})]}),ordersummary:P(ve,{title:"Order summary",children:[P("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",...Oe(m.paper,m.paper2,150)},children:f(Ot,{size:18,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),P("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"})]})]}),P("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",justifyContent:"center"},children:[f(Et,{k:"Subtotal",v:"$1,956"}),f(Et,{k:"Fitting",v:"Free"}),P("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(ve,{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])=>P("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:P("div",{style:{...j,background:m.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[f(md,{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:P("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",gap:9,justifyContent:"center",...Oe(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"}),P("div",{style:{display:"flex",gap:8},children:[f(Ds,{n:"27k",label:"Rigs fitted",tone:m.onInk}),f(Ds,{n:"12",label:"Years",tone:m.onInk}),f(Ds,{n:"4.9",label:"Avg rating",tone:m.warm})]})]}),testimonials:P("div",{style:{...j,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(Qh,{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"}),P("div",{style:{display:"flex",alignItems:"center",gap:5},children:[f(y0,{}),f("span",{style:{fontSize:"3.98cqw",color:m.muted},children:"Dave M. \xB7 Hilux N80"})]})]}),reviews:P(ve,{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,...Oe(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])=>P("div",{style:{display:"flex",gap:5,alignItems:"flex-start"},children:[f(y0,{size:12}),P("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[P("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[f("b",{style:{fontSize:"3.98cqw",color:m.text},children:e}),f(Qh,{filled:o})]}),f(co,{children:t})]})]},e))})]}),logos:P("div",{style:{...j,display:"flex",flexDirection:"column",gap:9,justifyContent:"center",padding:"0 12px",...Oe(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:P("div",{style:{...j,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"}),P("div",{style:{display:"flex",gap:6},children:[f("span",{style:{fontSize:"15.3cqw",lineHeight:.78,fontWeight:800,color:m.rust,marginTop:1},children:"T"}),P("div",{style:{display:"flex",flexDirection:"column"},children:[f(co,{children:"he number on the back of your wheel decides whether the"}),f(co,{w:"76%",children:"tyre sits under the guard or an inch outside it."})]})]})]}),cards:f(ve,{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])=>P("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(co,{children:o})]},e))})}),faq:f(ve,{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])=>P("div",{style:{borderBottom:`1px solid ${m.rule}`,padding:"4px 2px"},children:[P("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(co,{w:"90%",children:"Use the fitment finder \u2014 it reads your build, not just the model."})]},e))})}),hero:P("div",{style:{...j,overflow:"hidden",...Oe(m.ink,m.ink2)},children:[f("div",{style:{...j,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(b0,{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(Ot,{size:104,style:{right:-24,bottom:-30}})]}),herosingle:P("div",{style:{...j,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(b0,{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",...Oe(m.inkSoft,m.inkSoft2)},children:f(Ot,{size:74,style:{right:-14,top:16}})})]}),productgrid:f(ve,{title:"Best sellers",children:P("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[f(Jh,{name:"Ridge 19",price:"$365"}),f(Jh,{name:"Ridge 29",price:"$410"}),f(Jh,{name:"Ridge 39",price:"$455"})]})}),collections:f(ve,{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,...Oe(o,t)},children:f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.04em"},children:e})},e))})}),producthero:P("div",{style:{...j,display:"flex",background:m.card,overflow:"hidden"},children:[f("div",{style:{flex:1.1,position:"relative",...Oe(m.paper,m.paper2,150)},children:f(Ot,{size:78,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),P("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(ve,{title:"Specifications",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[f(Et,{k:"Diameter",v:'20"'}),f(Et,{k:"Width",v:"9.0J"}),f(Et,{k:"Offset",v:"+12"}),f(Et,{k:"Load",v:"1250 kg"})]})}),fitmenttable:f(ve,{title:"Will it fit?",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[f(Et,{k:"Hilux N80",v:"20\xD79 +12",ok:!0}),f(Et,{k:"Ranger PX3",v:"20\xD79 +12",ok:!0}),f(Et,{k:"LC79",v:"17\xD78 \u221210",ok:!0})]})}),processsteps:P("div",{style:{...j,background:m.paper,padding:10,display:"flex",flexDirection:"column",gap:7,justifyContent:"center"},children:[f(md,{children:"How it works"}),f("div",{style:{display:"flex",gap:6},children:["Pick your rig","Match the fit","We fit it"].map((e,o)=>P("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:{...j,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,...Oe(t?m.rust:m.inkSoft,t?m.warm:m.inkSoft2)}},"art"),a=P("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:{...j,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])=>P("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))})},w0={subscribe:P("div",{style:{...j,padding:13,display:"flex",flexDirection:"column"},children:[P("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[P("div",{style:{display:"flex",alignItems:"center",gap:6},children:[f(z,{w:8,h:8,r:2,tone:"accent"}),f(z,{w:38,h:7,r:3,tone:"dark"}),f(z,{w:16,h:7,r:3,tone:"accent"})]}),f(z,{w:38,h:4,r:2,tone:"soft"})]}),f("div",{style:{height:1,background:Je.line,marginBottom:10}}),P("div",{style:{flex:1,display:"flex",gap:10,border:`1px solid ${Je.line}`,borderRadius:7,padding:10},children:[P("div",{style:{flex:1.1,display:"flex",flexDirection:"column",justifyContent:"center",gap:5},children:[f(z,{w:"46%",h:3,r:2,tone:"accent"}),f(z,{w:"84%",h:8,r:4,tone:"dark"}),f(z,{w:"56%",h:8,r:4,tone:"accent"}),f(z,{w:"96%",h:3,r:2,tone:"soft",style:{marginTop:2}}),P("div",{style:{display:"flex",gap:5,marginTop:4},children:[f("div",{style:{flex:1,height:13,borderRadius:5,border:`1px solid ${Je.line}`,background:Je.block}}),f(z,{w:34,h:13,r:5,tone:"accent"})]})]}),P("div",{style:{flex:1,background:Je.block,borderRadius:6,padding:8,display:"flex",flexDirection:"column",gap:6},children:[f(z,{w:"52%",h:4,r:2,tone:"accent"}),Array.from({length:3}).map((e,o)=>P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,borderTop:o?`1px solid ${Je.line}`:"none",paddingTop:o?4:0},children:[f(z,{w:34,h:4,r:2,tone:"dark"}),f(z,{w:16,h:3,r:2,tone:"soft"})]},o))]})]})]}),split:P("div",{style:{...j,display:"flex"},children:[f("div",{style:{width:"44%",background:Zh}}),P("div",{style:{flex:1,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[f(z,{w:"44%",h:5,r:3,tone:"accent"}),f(z,{w:"88%",h:8,r:4,tone:"dark"}),f(z,{w:"70%",h:8,r:4,tone:"dark"}),f(z,{w:"94%",h:5,r:2,tone:"soft",style:{marginTop:2}}),f(z,{w:"80%",h:5,r:2,tone:"soft"}),f(z,{w:"40%",h:13,r:6,tone:"accent",style:{marginTop:5}})]})]}),sectionheader:P(C0,{children:[f(z,{w:"18%",h:6,r:3,tone:"accent",style:{position:"absolute",top:15,right:16}}),P("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:10},children:[P("div",{style:{display:"flex",alignItems:"center",gap:9},children:[f(z,{w:16,h:16,r:4,tone:"accent"}),f(z,{w:"20%",h:9,r:4,tone:"dark"})]}),f(z,{w:"62%",h:10,r:5,tone:"dark"}),f(z,{w:"42%",h:6,r:3,tone:"soft"})]})]}),header:f("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",justifyContent:"center"},children:P("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[f(z,{w:"22%",h:12,r:4,tone:"dark"}),P("div",{style:{display:"flex",gap:9,alignItems:"center"},children:[f(z,{w:26,h:6,r:3,tone:"soft"}),f(z,{w:26,h:6,r:3,tone:"soft"}),f(z,{w:26,h:6,r:3,tone:"soft"}),f(z,{w:18,h:14,r:5,tone:"accent"})]})]})}),footer:P("div",{style:{...j,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:12},children:[P("div",{style:{display:"flex",gap:14},children:[P("div",{style:{flex:1.4,display:"flex",flexDirection:"column",gap:6},children:[f(z,{w:"60%",h:9,r:4,tone:"dark"}),f(z,{w:"90%",h:5,r:2,tone:"soft"}),f(z,{w:"70%",h:5,r:2,tone:"soft"})]}),[0,1].map(e=>P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[f(z,{w:"50%",h:6,r:3,tone:"dark"}),f(z,{w:"80%",h:5,r:2,tone:"soft"}),f(z,{w:"66%",h:5,r:2,tone:"soft"})]},e))]}),f("div",{style:{height:1,background:Je.line}}),P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[f(z,{w:"30%",h:5,r:2,tone:"soft"}),f(z,{w:"16%",h:5,r:2,tone:"soft"})]})]}),grid:f("div",{style:{...j,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:Je.block}},o))}),blanksection:f("div",{style:{...j,padding:14,display:"flex"},children:P("div",{style:{flex:1,border:`1px dashed ${Je.line}`,borderRadius:7,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[f(z,{w:14,h:2,r:1,tone:"tint"}),f(z,{w:2,h:14,r:1,tone:"tint",style:{position:"absolute"}})]})}),spacer:P("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[f(z,{w:"100%",h:6,r:3,tone:"soft"}),f(z,{w:16,h:22,r:3,tone:"block",style:{alignSelf:"center"}}),f(z,{w:"100%",h:6,r:3,tone:"soft"})]}),divider:f("div",{style:{...j,padding:14,display:"flex",alignItems:"center"},children:f(z,{w:"100%",h:3,r:2,tone:"dark"})}),customhtml:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:8,background:Zh},children:[f(z,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(-14deg)"}}),f(z,{w:16,h:10,r:3,tone:"accent"}),f(z,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(14deg)"}})]}),heading:f("div",{style:{...j,padding:14,display:"flex",alignItems:"center"},children:f(z,{w:"64%",h:13,r:4,tone:"dark"})}),text:P("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[f(z,{w:"100%",h:6,r:3,tone:"soft"}),f(z,{w:"96%",h:6,r:3,tone:"soft"}),f(z,{w:"100%",h:6,r:3,tone:"soft"}),f(z,{w:"58%",h:6,r:3,tone:"soft"})]}),image:f("div",{style:{position:"absolute",inset:14,borderRadius:7,background:Zh}}),button:f("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center"},children:f(z,{w:"34%",h:16,r:8,tone:"accent"})}),menu:P("div",{style:{...j,padding:"14px 22%",display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[f(z,{w:"48%",h:7,r:3,tone:"dark"}),f(z,{w:"82%",h:5,r:2,tone:"soft"}),f(z,{w:"66%",h:5,r:2,tone:"soft"}),f(z,{w:"74%",h:5,r:2,tone:"soft"}),f(z,{w:"58%",h:5,r:2,tone:"soft"})]}),emailform:P("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[f(z,{w:"56%",h:8,r:3,tone:"dark"}),P("div",{style:{display:"flex",gap:6},children:[f("div",{style:{flex:1,height:16,borderRadius:5,border:`1px solid ${Je.line}`}}),f(z,{w:"30%",h:16,r:5,tone:"accent"})]})]}),sociallogos:f("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:9},children:[0,1,2,3].map(e=>f(z,{w:16,h:16,r:8,tone:"dark"},e))}),paymentlogos:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[f(z,{w:22,h:6,r:2,tone:"soft"}),[0,1,2,3].map(e=>f(z,{w:20,h:13,r:3,tone:"dark"},e))]}),search:f("div",{style:{...j,padding:"0 18%",display:"flex",alignItems:"center"},children:P("div",{style:{flex:1,height:22,borderRadius:11,border:`1px solid ${Je.line}`,display:"flex",alignItems:"center",gap:7,padding:"0 9px"},children:[f("div",{style:{width:9,height:9,borderRadius:5,border:`2px solid ${Je.dark}`}}),f(z,{w:"46%",h:5,r:2,tone:"soft"})]})}),cart:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[f("div",{style:{width:22,height:18,borderRadius:"3px 3px 6px 6px",border:`2px solid ${Je.dark}`}}),f("div",{style:{padding:"2px 6px",borderRadius:6,border:`1.5px solid ${Je.dark}`},children:f(z,{w:7,h:7,r:2,tone:"dark"})})]}),countryswitch:P("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:5},children:[P("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",border:`1px solid ${Je.line}`},children:[f(z,{w:22,h:6,r:2,tone:"dark"}),f(z,{w:6,h:4,r:1,tone:"soft"})]}),P("div",{style:{width:"46%",display:"flex",flexDirection:"column",gap:4,padding:6,border:`1px solid ${Je.line}`},children:[f(z,{w:"80%",h:4,r:2,tone:"accent"}),f(z,{w:"64%",h:4,r:2,tone:"soft"}),f(z,{w:"72%",h:4,r:2,tone:"soft"})]})]}),legalline:P("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[f("div",{style:{height:1,background:Je.line}}),P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[f(z,{w:"38%",h:5,r:2,tone:"soft"}),P("div",{style:{display:"flex",gap:5},children:[f(z,{w:14,h:5,r:2,tone:"soft"}),f(z,{w:14,h:5,r:2,tone:"soft"}),f(z,{w:14,h:5,r:2,tone:"soft"})]})]})]}),fallback:f("div",{style:{position:"absolute",inset:14,borderRadius:8,background:Je.block}})};function v0({type:e}){let o=S7[e]??"",t=w7[o]??w0[o]??w0.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 sf}from"efficient-easel/screen/components/ScreenDocumentContext";import{jsx as sn,jsxs as C7}from"react/jsx-runtime";import v7 from"efficient-easel/screen/components/SidePanelHead";import{StylesIcon as k7}from"efficient-easel/rail";import{Tooltip as P7}from"efficient-shell/ui";function k0({tokenRef:e,siteId:o,onClose:t,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l}){let c=ja();return C7("div",{className:"sf-styles",children:[sn(v7,{icon:sn(k7,{}),title:i("Styles"),context:sn(P7,{content:i("{name} \u2014 renamed in the Console: {place}.",{name:c,place:i("Storefront \u25B8 Sites \u25B8 Settings")}),className:"sf-name-tip",children:sn("span",{className:"sf-name-text",children:c})})}),sn("div",{className:"sf-insp-body es-insp-body sf-scroll",children:sn(uc,{tokenRef:e,siteId:o,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l})})]})}import{jsx as oo,jsxs as Qr,Fragment as A7}from"react/jsx-runtime";import{Fragment as H0,useEffect as z0,useRef as nx}from"react";import{useTreeDrag as W0}from"efficient-easel/drag";import{GlobeIcon as L7,ImageIcon as B7,LocationIcon as D7,MapIcon as N7,TextLinesIcon as M7,TrashIcon as G0}from"efficient-easel/icons";import{Subtree as U0,TreeRow as Hs,TreeRowAction as $0,TreeSeam as j0}from"efficient-easel/tree";import{useEaselStrings as H7}from"efficient-easel/strings";import{createPreviewSelectionContext as T7}from"efficient-easel/draw/client";var{Provider:CCe,useSelection:P0}=T7("selectedLocationPartId");function T0(e,o,t){return`${e}::${o}::${t}`}function E0(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 z7}from"efficient-easel/screen/lib/screen-parts";import{useSyncExternalStore as E7}from"react";var O7={level:"groups"},_0=O7,ex=new Set;function et(e){_0=e;for(let o of ex)o()}function _7(e){return ex.add(e),()=>{ex.delete(e)}}var O0=()=>_0;function R0(){return E7(_7,O0,O0)}function hd(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 TCe(e){return R7[Ns(e)]}var R7={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"};function Ns(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 Ms=e=>String(e?.group??""),ox=new WeakMap,F7=0;function xd(e){let o=ox.get(e);return o||(o=`loc${++F7}`,ox.set(e,o)),o}var F0=(e,o)=>o||e||"Ungrouped",A0={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 Jr(e){return hd(e,Ms,o=>String(o?.groupName??"")).map(o=>({key:o.key,name:o.name,cards:o.items.map(t=>t.item)}))}var tx=e=>e.flatMap(o=>o.cards),L0=(e,o,t)=>Math.min(Math.max(e,o),t);function Id(e,o,t){let r=0;for(let a=0;a<e.length;a++)if(Ms(e[a])===o){if(r===t)return a;r++}return-1}function rx(e,o,t){let r=Jr(e);if(o<0||o>=r.length)return e;let[a]=r.splice(o,1),n=L0(o<t?t-1:t,0,r.length);return r.splice(n,0,a),tx(r)}function ax(e,o,t,r,a){let n=Jr(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&&ox.set(d,xd(c));let u=L0(s===l&&t<a?a-1:a,0,l.cards.length);return l.cards.splice(u,0,d),tx(n)}function B0(e,o){let t=Jr(e),r=t.find(n=>n.key===o),a={...A0,group:o,groupName:r?.name??""};return r?(r.cards.push(a),tx(t)):[...e,a]}function D0(e){let o=new Set(Jr(e).map(a=>a.key)),t=o.size+1,r=`Group ${t}`;for(;o.has(r);)r=`Group ${++t}`;return{cards:[...e,{...A0,group:r,groupName:""}],key:r}}function N0(e,o){return e.filter(t=>Ms(t)!==o)}function M0(e,o,t){let r=Id(e,o,t);return r<0?e:e.filter((a,n)=>n!==r)}function _Ce(e,o,t){let r=e.flatMap((s,l)=>Ms(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 RCe(e,o,t){return o.flatMap(r=>{let a=e.filter(n=>Ms(n)===r);return a.length?a:t(r)})}var bd="ContactLocations",gd=e=>({parentId:`locations-${e}`,slot:"groups"}),sx=(e,o)=>({parentId:`locations-${e}`,slot:`cities:${o}`});function K0(e,o){let{readOnly:t,selected:r}=o,a=H7().tree,n=o.data?.content??[],s=z7(e),l=nx(null);z0(()=>{let I=r?.type===bd?String(r.props.id):null;I&&I!==l.current&&et({level:"groups"}),l.current=I},[r?.props.id]);let{selectedLocationPartId:c,setSelectedLocationPartId:d,setSelectHandler:u}=P0(),h=R0(),p=(I,v)=>{let k=n[I];k&&o.replace(I,{type:k.type,props:{...k.props,locations:v}})},x=I=>{let v=n[I]?.props?.locations;return Array.isArray(v)?v:[]},g=W0({keyOf:I=>`group:${I.si}:${I.index}`,readOnly:!!t,canDrop:(I,v)=>v.parentId===gd(I.si).parentId&&v.slot==="groups",onDrop:(I,v)=>{p(I.si,rx(x(I.si),I.index,v.index)),h.level==="city"&&et({level:"groups"})},onStep:(I,v)=>{p(I.si,rx(x(I.si),I.index,v<0?I.index-1:I.index+2)),h.level==="city"&&et({level:"groups"})}}),y=W0({keyOf:I=>`city:${I.si}:${I.group}:${I.index}`,readOnly:!!t,canDrop:(I,v)=>v.parentId===gd(I.si).parentId&&v.slot.startsWith("cities:"),onDrop:(I,v)=>{let k=v.slot.slice(7);p(I.si,ax(x(I.si),I.group,I.index,k,v.index)),et({level:"group",key:k})},onStep:(I,v)=>{p(I.si,ax(x(I.si),I.group,I.index,I.group,v<0?I.index-1:I.index+2)),h.level==="city"&&et({level:"group",key:I.group})}}),E=nx(n);E.current=n;let _=nx(()=>{});z0(()=>{u(I=>{let v=E0(I);if(!v)return;let k=E.current.findIndex(C=>C.props?.id===v.nodeId);k<0||_.current(k,{level:v.part,index:v.index})})},[u]);let w=(I,v)=>{l.current=n[I]?.props?.id??null,o.select(I),et(v),e.reveal();let k=n[I]?.props?.id;typeof k=="string"&&(v.level==="city"||v.level==="image"||v.level==="map")?d(T0(k,v.index,v.level)):d(null),typeof k=="string"&&o.scrollTo(k)};return _.current=w,{renderLocationTree:(I,v,{rowClick:k,isCollapsed:C,toggleCollapse:F})=>{let D=x(v),T=Jr(D),R=String(I.props.id),N=s&&r?.props.id===R,b=A=>oo(j0,{...t?{}:g.seam({place:{...gd(v),index:A}})},`seam:${R}:groups:${A}`),O=(A,H)=>oo(j0,{...t?{}:y.seam({place:{...sx(v,A),index:H}})},`seam:${R}:cities:${A}:${H}`);return Qr(A7,{children:[oo(Hs,{icon:oo(M7,{size:13}),name:i("Texts"),words:a,onSelect:()=>w(v,{level:"texts"}),selected:N&&h.level==="texts",rowProps:{onClick:k(()=>w(v,{level:"texts"}))}}),T.map((A,H)=>{let G=`${R}::grp::${A.key}`,X=C(G),K=N&&h.level==="group"&&h.key===A.key,Re=A.name||A.key?F0(A.key,A.name):i("Ungrouped"),le={...sx(v,A.key),index:A.cards.length},Ue=y.row({item:{si:v,group:A.key,index:-1},place:le,into:le,canDrag:!1},{onClick:k(()=>w(v,{level:"group",key:A.key}))}),Be=g.row({item:{si:v,index:H},place:{...gd(v),index:H}},Ue.rowProps);return Qr(H0,{children:[H===0&&b(0),oo(Hs,{icon:oo(L7,{size:13}),name:Re,words:a,onSelect:()=>w(v,{level:"group",key:A.key}),selected:K,draggable:Be.draggable,dragging:Be.dragging,drop:Be.drop??Ue.drop,fold:{open:!X,label:i("group"),onToggle:()=>F(G)},actions:oo($0,{kind:"delete",label:fo("Delete {label} group ({n} city)","Delete {label} group ({n} cities)",A.cards.length,{label:Re}),onClick:()=>{p(v,N0(D,A.key)),et({level:"groups"})},children:oo(G0,{size:15})}),rowProps:Be.rowProps,count:A.cards.length,countLabel:fo("{n} city","{n} cities",A.cards.length)}),!X&&Qr(U0,{children:[A.cards.map((ke,fe)=>{let ge=Id(D,A.key,fe),Ke=N&&h.level==="city"&&h.index===ge,qe=String(ke?.name??"")||i("City"),ae=`${R}::city::${xd(ke)}`,Fe=C(ae),{rowProps:ro,...Pe}=y.row({item:{si:v,group:A.key,index:fe},place:{...sx(v,A.key),index:fe}},{onClick:k(()=>w(v,{level:"city",index:ge}))});return Qr(H0,{children:[fe===0&&O(A.key,0),oo(Hs,{icon:oo(D7,{size:13}),name:qe,words:a,onSelect:()=>w(v,{level:"city",index:ge}),selected:Ke,...Pe,fold:{open:!Fe,label:qe,onToggle:()=>F(ae)},actions:oo($0,{kind:"delete",label:i("Delete {name}",{name:qe}),onClick:()=>{p(v,M0(D,A.key,fe)),et({level:"group",key:A.key})},children:oo(G0,{size:15})}),rowProps:ro}),!Fe&&Qr(U0,{children:[oo(Hs,{icon:oo(B7,{size:13}),name:i("Image"),words:a,onSelect:()=>w(v,{level:"image",index:ge}),selected:N&&h.level==="image"&&h.index===ge,rowProps:{onClick:k(()=>w(v,{level:"image",index:ge}))}}),oo(Hs,{icon:oo(N7,{size:13}),name:i("Map"),words:a,onSelect:()=>w(v,{level:"map",index:ge}),selected:N&&h.level==="map"&&h.index===ge,rowProps:{onClick:k(()=>w(v,{level:"map",index:ge}))}})]}),O(A.key,fe+1)]},xd(ke))}),Qr("button",{type:"button",className:"sf-add-card",onClick:()=>{let ke=B0(D,A.key);p(v,ke);let fe=Jr(ke).find(ge=>ge.key===A.key);et(fe&&fe.cards.length?{level:"city",index:Id(ke,A.key,fe.cards.length-1)}:{level:"group",key:A.key})},children:[oo("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add city")]})]}),b(H+1)]},G)}),Qr("button",{type:"button",className:"sf-add-card",onClick:()=>{let{cards:A,key:H}=D0(D);p(v,A),w(v,{level:"group",key:H})},children:[oo("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add group")]})]})},sectionPressed:I=>{I?.type===bd&&et({level:"groups"})}}}import{useEffect as aK,useRef as nK}from"react";import{createNode as dx,newId as fx}from"efficient-easel/data";import{useEaselApi as sK}from"efficient-easel/easel";import{useScreenDocument as lK}from"efficient-easel/screen/components/ScreenDocumentContext";import{useEaselSession as iK}from"efficient-easel/screen/lib/session-context";import{useEffect as Q7,useRef as eK}from"react";import{useEasel as oK}from"efficient-easel/easel";import{ROOT_ZONE as cx}from"efficient-easel/draw";import{readHidable as $7}from"efficient-easel/draw";var Fo=()=>({tag:"h2",_partStyles:{text:{textStyle:"heading-2"}}}),ko=()=>({_partStyles:{text:{textStyle:"body-5",color:"accent",letterSpacing:.3,case:"upper",lineHeight:1.5}}});var W7="inline",G7=[{label:"In this section",value:"inline"},{label:"In its own box",value:"own-box"}];var mo={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"}},ln="SectionHeader";function q0(e){return e in mo}function V0(e){return eo(G7,W7,e)}var U7=new Set(["Flex"]);function VCe(e){return!!e?.type&&U7.has(e.type)}var Y0={not:{field:"headPlacement",is:"own-box"}},YCe={not:Y0};function XCe(e,o,t){return jf(e,t,Y0)}var ct=Q,dt=Qt;function yd(e){if(e.theme)return ao(e.theme);let o=e.site?.themePresets;return o?ao({selected:e.site?.selectedPreset??0,themes:[...o]}):void 0}function j7(e,o){return o===0?`${e}~box`:`${e}~box-${o+1}`}var Z0=new Set(["id"]),ea={},J0=[],zs=[];function Ao(e){for(let[o,t]of Object.entries(e)){if(o in ea&&ea[o]!==t)throw new Error(`lib/sections/section-to-box: "${o}" already has a row`);ea[o]=t}}function Sd(e){return ea[e]}function K7(e){return e in ea&&J0.includes(e)}function Q0(e,o=zs){return e in ea&&(o.includes(e)||K7(e))}function nve(e){let o=mo[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 lx=e=>$7(e),je=e=>lx(e).text.trim()!=="";function q7(e){return e.replace(/==(.+?)==/g,(o,t)=>t.startsWith("_")&&t.endsWith("_")?o:`==_${t}_==`)}function V7(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 Y7=e=>e==="heading"?Fo():e==="eyebrow"?ko():{};function X7(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 Z7(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 X0(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 J7(e){let o=new Set([...Z0,"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 ix(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=(k,C)=>{s.push({key:k,home:C}),d.add(k)},h=r._partStyles??{},p=J7(o),x=0,g=(k,C)=>({type:k,props:{...C,id:`${n}~${k}-${++x}`}}),y=(k,C,F,D,T,R,N)=>{if(T){for(let O of k??[]){let A=typeof O=="string"?O:O[0];F[A]!==void 0&&N(A,`nothing \u2014 the ${D} has no parts, so it is not drawn`)}return}let b=typeof C=="function"?C(r,t):C??{};return X0(k??[],b,F,(O,A,H)=>N(O,H?`nothing \u2014 the old value draws nothing (${D}: no ${A})`:`${R}${D}: ${A}`),t)},E=k=>k.map(C=>{let F={...C.props??{}};for(let[D,T]of Object.entries(C.slots??{}))F[D]=E(T);return g(C.type,F)}),_=(k,C,F)=>{let D=k.of?k.of(C):Array.isArray(C[k.key])?C[k.key]:[],T=typeof k.props=="function"?k.props(r,t):k.props??{},R=D.map((H,G)=>{let X=H??{},K=k.item?.(X,G,r)??{},Re=w(K.reverse?[...k.parts].reverse():k.parts,X,!1,`item ${G+1}: `);return k.flat?K.props?Re.map(le=>({...le,props:{...le.props,...K.props,id:le.props.id}})):Re:[g(ct,{name:`${k.name} ${G+1}`,...T,...K.props??{},[dt]:Re})]});if(k.groups){let H=k.groups;return F(k.key,D.length?`one Box per item (${D.length}), in a Box per group`:"nothing \u2014 the list is empty"),hd(D.map(G=>G??{}),H.of,H.of).map((G,X)=>{let K=G.items.map(fe=>fe.item),Re=H.parts?w(H.parts,H.head?.(K,r)??{},!1,`group ${X+1}: `):[],le=G.items.map(fe=>R[fe.index]),Ue=H.perRow?.(K.length,r),Be=Number.isInteger(Ue)&&Ue>=1?Ue:1,ke=[];if(H.perRow&&Be<le.length)for(let fe=0;fe*Be<le.length;fe++)ke.push(le.slice(fe*Be,(fe+1)*Be).flat());return g(ct,{name:`${H.name} ${X+1}`,...H.props??{},[dt]:[...Re,g(ct,{name:`${H.itemsName} ${X+1}`,...H.itemsProps?.(K.length,r)??{},[dt]:ke.length?ke.map((fe,ge)=>g(ct,{name:`${H.rowName??`${H.itemsName} row`} ${ge+1}`,...H.rowProps??{},[dt]:fe})):le.flat()})]})})}let N=k.perRow?.(r),b=k.perRow?Number.isInteger(N)&&N>=1?N:1:0;if(F(k.key,(D.length?k.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 R.flat();let O=typeof k.rowProps=="function"?k.rowProps(r,t):k.rowProps??{},A=[];for(let H=0;H*b<R.length;H++){let G=R.slice(H*b,(H+1)*b).flat(),X=k.rowFiller?b-R.slice(H*b,(H+1)*b).length:0;A.push(g(ct,{name:`${k.rowName??`${k.name} row`} ${H+1}`,...O,[dt]:[...G,...Array.from({length:X},(K,Re)=>g(ct,{name:`Empty ${Re+1}`,...k.rowFiller,[dt]:[]}))]}))}return A},w=(k,C,F,D)=>{let T=[],R=(b,O)=>F?u(b,O):void 0,N=b=>F?h[b]:void 0;for(let b of k)if(!(b.when&&!b.when(r,F?void 0:C)))switch(b.kind){case"text":{let O=lx(C[b.key]);if(!O.text.trim()){R(b.key,"nothing \u2014 empty words draw nothing, so no block");break}let A=Y7(b.role??"body"),{_partStyles:H,...G}=A,X=X7(A,b.styleFrom?{...b.style,...b.styleFrom(r,t)}:b.style,N(b.key),b.props?.align);if(b.was&&F){let K=X._partStyles?.text??{};c.push({key:b.key,was:b.was,...typeof K.textStyle=="string"?{textStyle:K.textStyle}:{},...$(K.size)!==void 0?{size:$(K.size)}:{},...$(K.sizePhone)!==void 0?{sizePhone:$(K.sizePhone)}:{}})}T.push(g("Text",{text:b.mark==="accentLead"?V7(O.text):b.mark==="accentItalic"?q7(O.text):O.text,...G,...b.props??{},...X,...O.hidden?{_hidden:!0}:{}})),R(b.key,`${D}Text block: its words${O.hidden?", hidden":""}`);break}case"button":{let O=lx(C[b.key]);if(!O.text.trim()){R(b.key,"nothing \u2014 no words, no button"),R(b.href,"nothing \u2014 no button to link"),typeof b.variant=="object"&&R(b.variant.key,"nothing \u2014 no button to style");break}let A=typeof C[b.href]=="string"&&C[b.href]?C[b.href]:"#",H={...b.style??{},...N(b.key)??{}};T.push(g("ButtonBlock",{label:O.text,href:A,...typeof b.props=="function"?b.props(C,t):b.props??{},...Z7(b.variant,C),...Object.keys(H).length?{_partStyles:{label:H}}:{},...O.hidden?{_hidden:!0}:{}})),R(b.key,`${D}Button block: its words`),R(b.href,`${D}Button block: its link`),typeof b.variant=="object"&&R(b.variant.key,`${D}Button block: its Style`);break}case"image":{let O=C[b.key];if(typeof O!="string"||!O){R(b.key,"nothing \u2014 no picture, no block"),b.alt&&R(b.alt,"nothing \u2014 no picture to describe");break}let A=b.alt&&typeof C[b.alt]=="string"?C[b.alt]:"";T.push(g("ImageBlock",{src:O,alt:A,...b.props??{}})),R(b.key,`${D}Image block: its picture`),b.alt&&R(b.alt,`${D}Image block: its alt text`);break}case"list":{T.push(..._(b,C,R));break}case"group":{let O=w(b.parts,C,F,D),A=y(b.box,b.props,C,`${b.name} Box`,!O.length&&!b.keepEmpty,D,R);A&&T.push(g(ct,{name:b.name,...A,[dt]:O}));break}case"block":{let O=b.parts?w(b.parts,C,F,D):[],A=y(b.box,b.props,C,`${b.type} block`,!!b.parts&&!O.length&&!b.keepEmpty,D,R);A&&T.push(g(b.type,{...A,...b.slot?{[b.slot]:O}:{}}));break}case"core":{let O=b.as??e.type,A={headPlacement:"own-box",...b.props??{}},H=b.keep==="rest"?Object.keys(C).filter(G=>!p.has(G)&&!(G in A)):b.keep;for(let G of H)C[G]!==void 0&&(A[G]=C[G],R(G,`the ${O} block inside the Box`));if(b.keep==="rest"){for(let X of Object.keys(b.props??{}))C[X]!==void 0&&!p.has(X)&&R(X,`nothing \u2014 the ${O} block inside the Box has the row's own value`);C.headPlacement!==void 0&&R("headPlacement",`the ${O} block inside the Box: own-box`);let G=Object.fromEntries(Object.entries(h).filter(([X])=>!p.has(X)));Object.keys(G).length&&(A._partStyles=G)}for(let[G,X]of Object.entries(b.rename??{}))C[G]!==void 0&&(A[X]=C[G],R(G,`the ${O} block inside the Box: ${X}`));for(let[G,X]of Object.entries(b.slots??{}))A[G]=X.flatMap(K=>"kind"in K?_(K,C,R):E([K]));T.push(g(O,A));break}}return T},I=(k,C)=>{let F=C===0?"Box":`${k.name} Box`,D=w(k.parts,r,!0,C===0?"":`${F}: `),T=typeof k.boxProps=="function"?k.boxProps(r,t):k.boxProps??{},R=X0(k.box??[],T,r,(N,b,O)=>u(N,O?`nothing \u2014 the old value draws nothing (${F}: no ${b})`:`${F}: ${b}`),t);return{type:ct,props:{name:k.name,...R,[dt]:D,id:j7(n,C)}}},v=[o,...o.also??[]].map(I);r._partStyles!==void 0&&u("_partStyles","each old part's style moved to its new part");for(let[k,C]of Object.entries(o.reads??{}))r[k]!==void 0&&u(k,C);for(let[k,C]of Object.entries(o.drop??{}))k in r&&(l.push({key:k,why:C}),d.add(k));for(let k of Object.keys(r))Z0.has(k)||d.has(k)||l.push({key:k,why:"not in the row \u2014 not carried"});return{node:v[0],nodes:v,carried:s,dropped:l,siteWrites:[...o.site?.(e,t)??[]],restyled:c}}function eE(e,o=J0,t={}){if(!Array.isArray(e))return[];let r=[];return e.forEach((a,n)=>{let s=a&&typeof a.type=="string"&&o.includes(a.type)?ea[a.type]:void 0;if(!s)return;let l=ix(a,s,t);l.skipped===void 0&&r.push({index:n,node:l.node,nodes:l.nodes})}),r}function oE(e){let o=oK(s=>s.appState.data.content),{theme:t,themeRow:r,themeFromDocument:a}=ie(),n=eK(new Set);Q7(()=>{let s=tK({theme:t,themeRow:r,themeFromDocument:a});s&&rK(eE(o,void 0,s),e,n.current)},[o,e,t,r,a])}function tK(e){return e.themeFromDocument||e.themeRow==="none"?{}:e.themeRow==="read"?{theme:e.theme}:null}function rK(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(cx,r,a[0]),a.slice(1).forEach((s,l)=>{o.insertNode(cx,r+1+l,s),o.replaceComponent(cx,r+1+l,s)}))}}import{ROOT_ZONE as cn,missingPinnedTypes as cK,pinnedDuplicateIds as ux}from"efficient-easel/draw";function tE(e){return!e.docId||e.saveStatus==="saving"?!1:e.seededDocId!==e.docId}function rE(e,o){let t=e.some(l=>l?.type===Ee),r=e[e.length-1],a=!t&&r?.type===Le?r:null,n=e.filter(l=>l?.type===Le&&l!==a).map(l=>String(l.props?.id??"")).filter(Boolean),s=o.hasChromeDoc&&!t&&!a;return{remove:n,seedHeader:!e.some(l=>l?.type===go),seedFooter:s,seedSiteHeader:s&&!e.some(l=>l?.type===Ae)}}async function aE(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!==Ae||!e.stillOpen())return!1;let r=e.latest();return r.some(a=>a?.type===Ae)?!1:(e.write(td(r,t)),!0)}function nE(e,o){let{adapter:t,capabilities:r,currentSlug:a,docId:n,data:s,saveStatus:l,siteId:c,tokenRef:d}=lK(),u=iK(),{hasSiteSettings:h,hasPinnedChrome:p}=r;oE(e);let x=!!r.editsPinnedInPlace&&a!==Go,g=a===Go,y=sK().getState,E=nK(null);aK(()=>{if(!tE({docId:n,saveStatus:l,seededDocId:E.current})||(E.current=n,!p))return;let _=y().appState.data,w=_.content,I=s?.content??[],v=(D,T)=>D.some(R=>R?.type===T);if(!h){let D=new Set(ux(w)),T=D.size?w.filter(N=>!D.has(N.props.id)):w;if(D.size&&e.setDocument({..._,content:T}),g)return;let R=cK(T,I);if(R.includes(Le)){let N=T.length,b=e.insertSection(Le,N);e.replaceComponent(cn,N,{type:Le,props:{id:b,blocks:cd()}})}R.includes(go)&&e.insertNode(cn,0,id());return}if(g){let D=rn(w);if(D!==w&&e.setDocument({..._,content:[...D]}),!D.find(T=>T.type===Le)&&!v(I,Le)&&!v(D,Ee)&&!v(I,Ee)){let T=(N,b)=>dx(o,N,b),R={type:Le,props:{blocks:cd()}};e.insertNode(cn,D.length,Ls(R,T,fx(Ee)))}return}if(x){let D=!!t?.pinnedChrome?.state().docId,T=rE(w,{hasChromeDoc:D}),R=new Set([...T.remove,...ux(w.filter(b=>!T.remove.includes(String(b.props.id))))]),N=R.size?w.filter(b=>!R.has(String(b.props.id))):w;if(N.length!==w.length&&e.setDocument({..._,content:N}),T.seedFooter&&!v(I,Le)&&!v(I,Ee)){let b=(A,H)=>dx(o,A,H),O={type:Le,props:{blocks:cd()}};e.insertNode(cn,N.length,Ls(O,b,fx(Ee)))}if(T.seedHeader&&!v(I,go)){let b=N[0]?.type===Ae?1:0;e.insertNode(cn,b,id())}if(T.seedSiteHeader&&!v(I,Ae)&&!v(I,Le)&&!v(I,Ee)){let b=n;aE({blocks:Hl(u),make:(O,A)=>dx(o,O,A),id:fx(Ae),siteId:c??null,token:d.current,latest:()=>y().appState.data.content,stillOpen:()=>E.current===b,write:O=>{let A=y().appState.data;e.setDocument({...A,content:[...O]})}})}return}let k=w.filter(D=>D.type!==Le),C=new Set(ux(k)),F=C.size?k.filter(D=>!C.has(D.props.id)):k;F.length!==w.length&&e.setDocument({..._,content:F}),!v(F,go)&&!v(I,go)&&e.insertNode(cn,0,id())},[n,l,s,y,e,h,p,g,x,t,u,c,d])}import{useEffect as uE,useMemo as xK,useRef as pE}from"react";import{useEasel as IK}from"efficient-easel/easel";import{useEaselHost as gK}from"efficient-easel/screen/lib/host";import{FIELD_DESCRIPTION_MARKER as dK}from"efficient-easel/screen/lib/host";import{isNode as px}from"efficient-easel/data";function mx(e,o){let t=e.components[o]?.label;return typeof t=="string"&&t.trim()?t.trim():o}function fK(e){return e.length>3&&e.endsWith("s")?e.slice(0,-1):e}function hx(e,o,t,r){e.forEach((a,n)=>{if(px(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(px)&&hx(l,a,s,r)}})}function uK(e){let o=[];hx(Array.isArray(e.content)?e.content:[],null,"",o);for(let t of Object.values(e.zones??{}))Array.isArray(t)&&hx(t,null,"",o);return o}function lE(e,o){return uK(e).find(t=>String(t.node.props.id)===o)}function iE(e,o,t){if(!t)return null;let r=lE(o,t);if(!r)return null;let a=mx(e,r.node.type),n=r.parent?`${mx(e,r.parent.type)} \xB7 ${fK(r.slot)} ${r.index+1}`:a;return{blockId:t,type:r.node.type,label:n,path:""}}var pK=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 mK(e){if(!e||typeof e!="object")return null;let o=e;if(typeof o.type!="string")return null;let t=o.type==="custom"?o[dK]: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=pK(n));for(let s of["arrayFields","objectFields"]){let l=t?.[s]??o[s];l&&typeof l=="object"&&(r[s]=cE(l))}return r}function cE(e){let o={};for(let[t,r]of Object.entries(e??{})){let a=mK(r);a&&(o[t]=a)}return o}function dE(e){let o={};for(let[t,r]of Object.entries(e.components))r&&(o[t]={label:mx(e,t),fields:cE(r.fields)});return o}function hK(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 xx(e,o){return e.findIndex(t=>px(t)&&String(t.props.id)===o)}function sE(e,o,t){let r=o||t;if(!r)return e.length;let a=xx(e,r);if(a<0)throw new Error(`there is no top-level block ${r}`);return o?a+1:a}function fE(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=lE(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=hK(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(sE(n,s.after,s.before),0,h);break}case"remove_block":{let d=xx(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=xx(n,s.block_id);d<0&&c(`there is no top-level block ${s.block_id}`);let[u]=n.splice(d,1);n.splice(sE(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 Ix=e=>he(e.requestId)??null;function mE(){let e=gK(),{appState:o,selectedItem:t,dispatch:r,history:a,config:n}=IK(p=>p),s=n,l=pE({appState:o,dispatch:r,history:a,blockConfig:s});l.current={appState:o,dispatch:r,history:a,blockConfig:s};let c=pE(new Map),d=t?.props?.id,u=xK(()=>iE(s,o.data,d),[s,o.data,d]),h=u?JSON.stringify(u):"";uE(()=>{e.connected&&e.send("storefront-editor:selection",{selection:u})},[e,h]),uE(()=>e.subscribe(p=>{let{appState:x,dispatch:g,history:y,blockConfig:E}=l.current;switch(p.type){case"storefront-editor:request-document":{let _=Ix(p);if(!_)return;e.send("storefront-editor:document",{requestId:_,document:x.data,blocks:dE(E)});return}case"storefront-editor:apply-page-edits":{let _=Ix(p);if(!_)return;let w=Array.isArray(p.ops)?p.ops:[],I=w.length?fE(E,x.data,w,v=>`${v}-${crypto.randomUUID()}`):{ok:!1,reason:"no changes"};I.ok&&(g({type:"setData",data:I.document,recordHistory:!0}),c.current.set(_,JSON.stringify(I.document.content??[]))),e.send("storefront-editor:page-edits-result",{requestId:_,applied:I.ok,reason:I.ok?null:I.reason});return}case"storefront-editor:undo-page-edits":{let _=Ix(p);if(!_)return;let w=c.current.get(_),I=w!==void 0&&w===JSON.stringify(x.data.content??[]);I&&y.hasPast&&(y.back(),c.current.delete(_)),e.send("storefront-editor:page-edits-result",{requestId:_,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 IE,useState as gE}from"react";var wd=new Map;async function bK(e,o){try{return(await ze().site.get({siteId:o})).slug?.trim()||null}catch(t){return console.warn("[editor-site-slug] could not resolve the site slug",t),null}}function hE(e,o){let t=wd.get(o);return t||(t=bK(e,o),wd.set(o,t),t.catch(()=>{wd.get(o)===t&&wd.delete(o)})),t}var yK=/^(localhost|(?:[a-z0-9-]+\.)+localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|::1)$/i;function gx(e){return!!e&&yK.test(e)}function xE(e){let{pageSlug:o,siteSlug:t,hostname:r}=e,a=o===Bl?"/":`/${encodeURIComponent(o)}`;if(!gx(r))return a;let n=t?.trim();return n?`${a}?site=${encodeURIComponent(n)}`:a}function bE(e){let{pageSlug:o,siteId:t,token:r}=e,[a,n]=gE(null),[s,l]=gE(null),c=xa();IE(()=>l(c?new URL(c).hostname:window.location.hostname),[c]),IE(()=>{if(!gx(s)||!t||!r){n(null);return}let u=!1;return hE(r,t).then(h=>{u||n(h)}),()=>{u=!0}},[s,t,r]);let d=xE({pageSlug:o,siteSlug:a,hostname:s});return c?`${c}${d}`:d}import{jsx as Ws}from"react/jsx-runtime";import{useEffect as SK,useRef as yE,useState as wK}from"react";import{ExternalIcon as SE}from"efficient-easel/icons";import{EaselIconButton as CK}from"efficient-easel/chrome";import{Tooltip as vK,iconButtonClasses as kK}from"efficient-shell/ui";import{useSettledPress as PK}from"efficient-easel/easel";import{useScreenDocument as TK}from"efficient-easel/screen/components/ScreenDocumentContext";async function EK({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 wE({liveHref:e,pageId:o,draftLink:t}){let{flushSave:r}=TK(),a=yE(r);a.current=r;let n=PK(),[s,l]=wK(!1),c=yE(null);if(SK(()=>()=>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),EK({pageId:o,liveHref:e,draftLink:t,ready:d}).finally(()=>l(!1)))};return Ws(CK,{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(SE,{})})}return Ws(vK,{content:i("Preview the live site (opens in a new tab)"),side:"bottom",children:Ws("a",{className:kK({className:"es-iconbtn"}),href:e,target:"_blank",rel:"noopener noreferrer","aria-label":i("Preview the live site in a new tab"),children:Ws(SE,{})})})}import{createElement as AK,useCallback as LK,useEffect as HE,useRef as zE,useState as BK}from"react";import{ClockIcon as DK}from"efficient-shell/icons/efficient";import{useScreenDocument as NK}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSyncExternalStore as OK}from"react";import{useScreenDocument as _K}from"efficient-easel/screen/components/ScreenDocumentContext";var RK=()=>()=>{},CE=()=>null;function Cd(e){return OK(e?e.subscribe:RK,e?e.state:CE,e?e.state:CE)}function vd(){let{adapter:e}=_K();return e?.pinnedChrome}import{useSyncExternalStore as PE}from"react";var Gs=!1,dn=null,bx=new Set;function $s(){for(let e of bx)e()}function TE(e){return bx.add(e),()=>{bx.delete(e)}}function EE(){Gs||(Gs=!0,$s())}function OE(){Gs&&(Gs=!1,$s())}function vE(){return Gs}function _E(){return PE(TE,vE,vE)}function kE(){return dn}function kd(){dn&&(dn=null,$s())}function RE(){return PE(TE,kE,kE)}var Us=class extends Error{constructor(){super("The editor's last changes could not be saved, so nothing was restored."),this.name="HeldEditsNotSaved"}};async function FE(e,o,t,{flushSave:r,reload:a}){if(!await r())throw new Us;let n=await e.restore(o,t);return ql(n.liveState),a(),n}async function AE({access:e,version:o,page:t,...r}){let a=await FE(e,o.id,t?{page:t.id}:{},r);dn={title:FK(o,t??null),undo:a.undo},$s()}async function LE({access:e,...o}){let t=dn?.undo;t&&(await FE(e,t,{},o),dn=null,$s())}function BE(e){return e.name?e.name:e.kind==="draft_before_restore"?i("Draft before restore"):i("Version {n}",{n:e.number})}function FK(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 DE(e){let o=e.changes.filter(r=>r.kind==="page").length,t=[...o?[fo("{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(Sf(),{type:"conjunction"}).format(t)}catch{return t.join(", ")}}function NE(e){return e.change==="take_down"?i("{name} (taken down)",{name:e.name}):e.name}function ME(e,o=new Date){let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let r=Sf(),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 WE(e){let{docId:o,capabilities:t,hasUnsavedEdits:r,onPublish:a,adapter:n}=NK(),s=PT(kT(o??null),r),l=Cd(vd()),c=n.siteLiveState;HE(()=>{if(c)return Su(c),It(0),()=>Su(null)},[c]);let d=Vl(),[u,h]=BK(!1),p=zE(e);p.current=e;let x=zE(!0);HE(()=>(x.current=!0,()=>{x.current=!1}),[]);let g=LK(()=>{h(!0),a(p.current).then(()=>{kd()}).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=Fh({live:y,onPress:g,busy:u,goingLive:TT(d?.changes??[])});return n.siteVersions?{...E,menuItems:MK()}:E}return Fh({live:s,onPress:g,busy:u,pinnedUnpublished:l?.unpublished??!1})}}function MK(){return[{key:"version-history",label:i("Version history"),icon:AK(DK),onSelect:EE}]}import{jsx as V,jsxs as Po,Fragment as qs}from"react/jsx-runtime";import{useCallback as HK,useEffect as zK,useId as $E,useRef as WK,useState as Lo}from"react";import{useSettledAction as GK}from"efficient-easel/easel";import{Avatar as UK,Banner as js,Button as oa,ColoredBadge as yx,Dialog as jE,Drawer as $K,DropdownMenu as jK,FormField as KE,iconButtonClasses as KK,Inline as Sx,Input as qK,ListRow as VK,Select as YK,SortableList as XK,Stack as Ks}from"efficient-shell/ui";import{EditIcon as ZK,EyeIcon as GE,MenuIcon as JK,MoreIcon as QK,PageIcon as qE,RevertIcon as UE,StylesIcon as e9}from"efficient-shell/icons/efficient";import{useScreenDocument as VE}from"efficient-easel/screen/components/ScreenDocumentContext";var o9={page:qE,menu:JK};function t9(e,o){return e.pages.find(t=>t.id===o)??e.pages[0]??null}function r9(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 a9({version:e,page:o,waiting:t,busy:r,error:a,onCancel:n,onConfirm:s,onPage:l}){let c=$E();if(!e)return null;let d=e.kind==="draft_before_restore",u=e.number,h=DE(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 V(jE,{open:!0,onClose:()=>{r||n()},size:"sm",title:p,footer:Po(qs,{children:[V(oa,{variant:"secondary",onClick:n,disabled:r,children:i("Cancel")}),V(oa,{onClick:s,loading:r,disabled:r,children:i("Restore as draft")})]}),children:Po(Ks,{gap:4,children:[o&&e.pages.length>1?V(KE,{label:i("Page"),htmlFor:c,children:V(YK,{id:c,value:o.id,options:e.pages.map(y=>({value:y.id,label:y.name})),onChange:l,disabled:r})}):null,V("p",{children:x}),V("p",{children:i("Your live website does not change until you press Publish.")}),g>0?V(js,{tone:"warning",children:fo("{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?V(js,{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?V(js,{tone:"danger",children:a}):null]})})}function n9({version:e,onCancel:o,onSave:t}){let r=$E(),[a,n]=Lo(null),[s,l]=Lo(""),[c,d]=Lo(!1),[u,h]=Lo(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 V(jE,{open:!0,onClose:()=>{c||o()},size:"sm",title:i("Name this version"),footer:Po(qs,{children:[V(oa,{variant:"secondary",onClick:o,disabled:c,children:i("Cancel")}),V(oa,{onClick:()=>{x()},loading:c,disabled:c||p,children:i("Save")})]}),children:V(KE,{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:V(qK,{id:r,value:s,invalid:!!u,onChange:g=>l(g.target.value),onKeyDown:g=>{g.key==="Enter"&&x()}})})})}function s9({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:V(GE,{}),onSelect:r}],...c?[{key:"restore",label:l?i("Put these drafts back"):i("Restore whole website"),icon:V(UE,{}),onSelect:a}]:[],...c&&!l&&e.pages.length?[{key:"restore-page",label:i("Restore one page only"),icon:V(qE,{}),onSelect:n}]:[],...l?[]:[{type:"divider",key:"divider"},{key:"name",label:i("Name this version"),icon:V(ZK,{}),onSelect:s}]];return V(VK,{title:Po("span",{className:"sf-version-title",children:[V("span",{children:BE(e)}),e.live?V(yx,{tone:"success",size:"xs",children:i("Live")}):null,e.name?V(yx,{tone:"neutral",size:"xs",children:i("Version {n}",{n:e.number})}):null,l?V(yx,{tone:"warning",size:"xs",children:i("Not published")}):null]}),expanded:o,onToggle:t,actions:V(jK,{align:"end","aria-label":i("More"),items:u,triggerClassName:KK({variant:"ghost",size:"sm"}),trigger:V(QK,{})}),below:Po(Ks,{gap:3,children:[Po(Sx,{gap:2,align:"center",wrap:!0,className:"sf-version-meta",children:[V(UK,{name:e.createdBy,size:"xs"}),V("span",{children:e.createdBy}),V("span",{"aria-hidden":"true",children:"\xB7"}),V("span",{children:ME(e.createdAt)}),d?Po(qs,{children:[V("span",{"aria-hidden":"true",children:"\xB7"}),V("span",{children:fo("{n} change","{n} changes",d)})]}):null]}),o?Po(Ks,{gap:3,children:[d?V(Ks,{gap:2,children:e.changes.map(h=>{let p=o9[h.kind]??e9;return Po(Sx,{gap:2,align:"center",children:[V(p,{size:16}),V("span",{children:NE(h)})]},`${h.kind}:${h.id}`)})}):null,Po(Sx,{gap:2,children:[l?null:V(oa,{variant:"secondary",size:"sm",leftIcon:V(GE,{}),onClick:r,children:i("Preview")}),c?V(oa,{variant:"secondary",size:"sm",leftIcon:V(UE,{}),onClick:a,children:i("Restore")}):null]})]}):null]})})}function l9({open:e,onClose:o,access:t,waiting:r}){let{flushSave:a,reloadFromServer:n,docId:s}=VE(),[l,c]=Lo(null),[d,u]=Lo(!1),[h,p]=Lo(null),[x,g]=Lo(null),[y,E]=Lo(!1),[_,w]=Lo(null),[I,v]=Lo(null),[k,C]=Lo(!1),F=WK(0),D=HK(()=>{let b=++F.current;u(!1),t.list().then(O=>{b===F.current&&c(O)},()=>{b===F.current&&u(!0)})},[t]);zK(()=>{e&&D()},[e,D]);let T=b=>{C(!1),r9(t,b.id).catch(()=>C(!0))},R=async()=>{if(!(!x||y)){E(!0),w(null);try{await AE({access:t,version:x.version,page:x.page,flushSave:a,reload:n}),g(null),o()}catch(b){w(b instanceof Us?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=GK({onPress:()=>{R()},busy:y});return Po(qs,{children:[V($K,{open:e,onClose:o,side:"right",size:"md",title:i("Version history"),description:Po(qs,{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:V("span",{className:"sf-version-foot",children:i("The newest 30 are kept. Named versions are always kept.")}),children:Po(Ks,{gap:3,children:[k?V(js,{tone:"danger",onDismiss:()=>C(!1),children:i("The preview did not open. Try again.")}):null,d?V(js,{tone:"danger",action:V(oa,{variant:"secondary",size:"sm",onClick:D,children:i("Try again")}),children:i("Version history did not load.")}):l===null?V("p",{className:"sf-version-foot",children:i("Loading versions")}):l.length===0?V("p",{className:"sf-version-foot",children:i("No versions yet. Every Publish from now on keeps one.")}):V(XK,{"aria-label":i("Versions"),spacing:"comfortable",children:l.map(b=>V(s9,{version:b,expanded:h===b.id,onToggle:()=>p(O=>O===b.id?null:b.id),onPreview:()=>T(b),onRestore:()=>{w(null),g({version:b,page:null})},onRestorePage:()=>{w(null),g({version:b,page:t9(b,s)})},onName:()=>v(b)},b.id))})]})}),V(a9,{version:x?.version??null,page:x?.page??null,waiting:r,busy:N.busy===!0,error:_,onCancel:()=>g(null),onConfirm:N.onPress,onPage:b=>g(O=>O&&{...O,page:O.version.pages.find(A=>A.id===b)??O.page})}),V(n9,{version:I,onCancel:()=>v(null),onSave:async b=>{await t.name(I.id,b),v(null),D()}})]})}function YE(){let{adapter:e,hasUnsavedEdits:o}=VE(),t=e.siteVersions,r=_E(),a=Vl();return t?V(l9,{open:r,onClose:OE,access:t,waiting:o||a?.state==="changed"}):null}import{useEaselSession as pF}from"efficient-easel/screen/lib/session-context";import{buildPaletteSections as Dke,categoryLabel as Nke,paletteWithoutPinned as Mke,pinnedSection as Hke}from"efficient-easel/screen/lib/document/palette-sections";var i9={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 XE(e){return i9[e]?.label}var ZE=ph;import{currentEaselSession as IR}from"efficient-easel/screen/lib/session";var JE=[{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"}],$ke={label:"Scrolling Bar",defaultProps:{items:[],tone:"scrim",borders:!0,size:Gu,separator:Uu,scrollDirection:cs}};var QE=()=>[{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"},{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"}],qke={label:"Spec Strip",defaultProps:{cells:[{text:"",tone:"normal"},{text:"",tone:"normal"}],fill:"dark"}};var Pd={direction:"column",justify:"between",gap:14,sectionPaddingLeft:14,sectionPaddingRight:14,sectionPaddingLeftPhone:0,sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},Vs={name:"Year and title",direction:"column",gap:14};var ta={direction:"row",share:"content",align:"center"},Ys={top:14,bottom:14,topPhone:12,bottomPhone:12},Td={wrap:"nowrap",loop:"scroll",sectionAccent:ku,gap:60,gapPhone:32,separator:"dot",sectionBorder:{top:1,bottom:1}},e1={gap:120,gapPhone:64},Ed={textStyle:"body-5",sizeToken:{step:"label",px:14,pxPhone:12},letterSpacing:.25,case:"upper",lineHeight:1.5},o1={textStyle:"heading-3",letterSpacing:.005,case:"upper",lineHeight:1},Xs={top:16,bottom:16,topPhone:12,bottomPhone:12},Od={justify:"between",wrap:"wrap",gap:32,separator:"none"},Zs={textStyle:"body-5",letterSpacing:.1,case:"upper",lineHeight:1.5};function re(e,o,t,r={}){return{type:e,props:{...o(e),id:t(e),...r}}}function t1(e,o,t){return re(Q,e,o,{...t,sectionPaddingTop:void 0,sectionPaddingBottom:void 0})}var a1={Manifesto:(e,o)=>({type:Q,props:{...e(Q),id:o(Q),direction:"row",share:"equal",sectionHeightMode:"screen",name:"Brand Text",content:[re(Q,e,o,{direction:"column",justify:"center",blockSpacing:"gap",name:"Text",sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingLeft:40,sectionPaddingRight:40,content:[re("Text",e,o,ko()),re("Text",e,o,Fo()),re("Text",e,o),re("Stats",e,o)]}),t1(e,o,{direction:"column",name:"Picture",content:[]})]}}),Split:(e,o)=>({type:Q,props:{...e(Q),id:o(Q),direction:"row",share:"equal",sectionHeightMode:"screen",sectionHeightValue:70,name:"Image & Text Split",content:[re(Q,e,o,{direction:"column",justify:"center",blockSpacing:"gap",name:"Text",sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingLeft:60,sectionPaddingRight:60,content:[re("Text",e,o,ko()),re("Text",e,o,Fo()),re("Text",e,o),re("ButtonBlock",e,o)]}),t1(e,o,{direction:"column",name:"Image",content:[re("ImageBlock",e,o)]})]}}),Subscribe:(e,o)=>({type:Q,props:{...e(Q),id:o(Q),direction:"column",name:"Subscribe",content:[re("Text",e,o,Fo()),re("Text",e,o),re("Form",e,o)]}}),Ticker:(e,o)=>r1("Scrolling Bar",Td,Ys,JE.map(t=>({text:t.text,style:Ed,muted:!0})),e,o),SpecStrip:(e,o)=>r1("Spec Strip",{...Od,sectionBorder:{top:1}},Xs,QE().map(t=>({text:t.text??"",style:Zs,muted:t.tone==="muted"})),e,o),TimelineTrack:(e,o)=>{let t=r=>re(Q,e,o,{...Pd,name:"Year",sectionPaddingTop:0,sectionPaddingBottom:0,...r?{upcoming:!0}:{},content:[re(Q,e,o,{...Vs,sectionPaddingTop:0,sectionPaddingBottom:0,content:[re("Text",e,o,ko()),re("Text",e,o,Fo())]}),re("Text",e,o)]});return{type:Q,props:{...e(Q),id:o(Q),direction:"column",gap:48,name:"Milestone Timeline",content:[re(Q,e,o,{direction:"row",align:"end",justify:"between",share:"content",name:"Heading",content:[re("Text",e,o,ko()),re("Text",e,o,Fo()),re("Text",e,o)]}),re(Q,e,o,{direction:"row",share:"equal",gap:0,line:!0,name:"Years",content:[t(!1),t(!1),t(!0)]}),re("ButtonBlock",e,o)]}}},Timeline:(e,o)=>{let t=()=>re(Q,e,o,{direction:"row",share:"biggerRight",gap:24,name:"Chapter",content:[re("Text",e,o,ko()),re(Q,e,o,{direction:"column",gap:12,name:"Words",content:[re("Text",e,o,Fo()),re("Text",e,o)]})]});return{type:Q,props:{...e(Q),id:o(Q),direction:"row",share:"bigRight",gap:48,name:"Story Timeline",content:[re(Q,e,o,{direction:"column",gap:24,name:"Heading",content:[re("Text",e,o,ko()),re("Text",e,o,Fo()),re("Text",e,o),re("ImageBlock",e,o),re("ButtonBlock",e,o)]}),re(Q,e,o,{direction:"column",gap:48,line:!1,name:"Chapters",content:[t(),t(),t()]})]}}}};function r1(e,o,t,r,a,n){return re(Q,a,n,{...ta,...o,blockSpacing:"gap",padV2:!0,name:e,sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom,sectionPaddingTopPhone:t.topPhone,sectionPaddingBottomPhone:t.bottomPhone,content:r.map(s=>re("Text",a,n,{text:s.text,...s.muted?{tone:"dim"}:{},_partStyles:{text:s.style}}))})}function n1(e){return a1[e]??null}import{phoneKey as h9}from"efficient-easel/draw";var s1={label:"Button",defaultProps:{label:"",href:"#",variant:"primary",align:"left",contained:!0}};var l1={label:"Text",defaultProps:{text:"",align:"left",tone:"default",tag:"p",contained:!0}};import{jsx as d9}from"react/jsx-runtime";function _d(e){return`color-mix(in srgb, var(--overlay-scrim) ${Math.round(Math.min(1,Math.max(0,e))*1e3)/10}%, transparent)`}var cPe="sf-card",i1={min:0,max:100,step:5,fallback:0,unit:"%"},dPe=[{label:"Even",value:"even"},{label:"From the bottom",value:"bottom"}],c9="68%",fPe={desktop:20,phone:20,side:40,sidePhone:24},uPe="sf-box-sides";function c1(e){return typeof e=="string"&&e.trim()!==""}function pPe(e,o){let t=typeof e=="number"?e:Number.parseFloat(String(e??""));if(!Number.isFinite(t)||t<=0)return null;let r=(Math.min(i1.max,Math.max(i1.min,t))/100).toFixed(2);return o!=="bottom"?{background:_d(Number(r))}:{background:`linear-gradient(0deg, ${_d(Number(r))} 0%, ${_d(0)} ${c9})`}}function mPe(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 Rd={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}},d1=new Set(Object.keys(Rd)),u1=new Set(["Flex","Text","Heading","ImageBlock"]),f9=new Set(["Divider"]),u9=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),f1=new Set(["ProductGrid"]);function wx(e,o,t=!1){let r=e.render;e.render=a=>{if(o?.(a))return r(a);let n=oi(oS(a,Bu,t)),s=r(a),l=fS(a);return n?d9("div",{className:l?`${n.className} ${l}`:n.className,style:n.style,children:s}):s}}var yPe={name:"sectionPadding",applies:(e,o,t)=>o.isSection(e)&&!u9.has(e)&&!!t&&typeof t.render=="function",panel(e,o,t){d1.has(o)||f1.has(o)||(e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})})},draw(e,o){if(d1.has(o)){let t=e.render,r=Rd[o];e.render=a=>{let n=ti(a,r);return t({...a,padTop:n.top,padBottom:n.bottom})};return}if(f1.has(o)){wx(e);return}u1.has(o)||f9.has(o)||wx(e,o==="Flex"?t=>c1(t.bgImage):void 0,!0)}},p9=["Heading","Text","ImageBlock"],m9=["LogoBlock"],SPe={name:"blockPadding",applies:(e,o,t)=>(p9.includes(e)||m9.includes(e))&&!!t&&typeof t.render=="function",panel(e,o,t){e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})}},draw(e,o){u1.has(o)||wx(e,void 0,!0)}};var{text:BPe,tag:DPe,...x9}=l1.defaultProps,Y=x9,un={...Y,[qr]:""},Ie={...Y,tone:"dim"},{label:NPe,href:MPe,...I9}=s1.defaultProps,Xe=I9,_t={buttonFillOpacity:0,buttonBorder:{width:0},buttonPaddingTop:0,buttonPaddingRight:0,buttonPaddingBottom:0,buttonPaddingLeft:0},p1={justify:"start",align:"stretch",wrap:!1,blockSpacing:"gap",padV2:!0},B={...p1,direction:"column",...An},se={...p1,sectionAccent:0},pe=["gridSpan","sectionHeightMode","sectionHeightValue","sectionHeightUnit","sectionHeightModePhone","sectionHeightValuePhone","sectionHeightUnitPhone","sectionCorners","sectionCornerSides","sectionBorder","sectionBorderPhone","sectionAccent","stickTop","stickTopDistance","stickTopPhone","stickTopDistancePhone","anchor","sectionAnimation","_hidden",...Object.values(Te).flatMap(e=>[e,h9(e)]),"widthFit","widthFitPhone","width","widthPhone","minWidth","minWidthPhone","maxWidth","maxWidthPhone"],fn="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",me={sectionSurface:"read by nothing in src/ (searched 2026-10-24): a retired theme key that draws nothing today, so dropping it changes nothing",widthMode:fn,fullWidth:fn,pageWidth:fn,backgroundWidth:fn,contentWidth:fn,contentMax:fn},Ce=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 ye(e,o){let t=$(e.sectionPaddingTop)??0,r=$(e.sectionPaddingBottom)??0,a=$(e.sectionPaddingTopTablet),n=$(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:($(e.sectionPaddingTopPhone)??a??t)+o.topPhone,sectionPaddingBottomPhone:($(e.sectionPaddingBottomPhone)??n??r)+o.bottomPhone}}var _e=e=>["sectionPaddingTop","sectionPaddingBottom","sectionPaddingTopTablet","sectionPaddingBottomTablet","sectionPaddingTopPhone","sectionPaddingBottomPhone"].map(o=>[o,o,(t,r)=>ye(r,typeof e=="function"?e(r):e)[o]]);function bo(e,o){let t=ti(e,Rd[o]);return{sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom}}var or=e=>[["padTop","sectionPaddingTop",(o,t)=>bo(t,e).sectionPaddingTop],["padBottom","sectionPaddingBottom",(o,t)=>bo(t,e).sectionPaddingBottom],["sectionPaddingTop","sectionPaddingTop",(o,t)=>bo(t,e).sectionPaddingTop],["sectionPaddingBottom","sectionPaddingBottom",(o,t)=>bo(t,e).sectionPaddingBottom]],g9={kind:"heading-case-upper",styles:["heading-1","heading-2","heading-3"]},HPe=e=>o=>je(o.props[e])?[g9]:[],de=(e,o)=>({kind:"text",key:e,role:"eyebrow",props:Y,...o?{style:o}:{}}),m1=e=>e.background!=="transparent",b9=(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},Js={align:"right",alignPhone:"left"},Cx=(e,o,t)=>{let r=a=>b9(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}},Qs=(e,o,t,r={})=>Cx(e,o,{...un,...Js,...r,_partStyles:{text:{textStyle:"body-5",color:"labels",...t,case:"upper",...Js}}}),el=(e,o)=>typeof e=="number"&&Number.isInteger(e)&&e>=0?e:yd(o)?.selected??0,Fd=(e,o)=>yd(o)?.themes[el(e.sectionAccent??0,o)],ho=e=>(o,t)=>{let r=Fd(o,t)?.[e];return r?{fillColor:r}:{}},ol=(e,o)=>{let t=Fd(e,o)?.line;return t?{buttonBorder:{width:1,color:t}}:{}},ra=(e,o)=>{let t=yd(o)?.themes;return t&&m1(e)?NI(t,el(e.sectionAccent,o)):-1},tr=(e,o,t)=>{let r=ra(o,t);return r>=0?r:e},aa=(e,o)=>{let t=ra(e,o);return t>=0?{sectionAccent:t}:{}},rr=(e,o)=>m1(e.props)&&ra(e.props,o)<0?[{kind:"band-preset",page:el(e.props.sectionAccent,o)}]:[],pn=e=>Ui(e.site?.siteGutter),tl=Object.fromEntries(["Top","Right","Bottom","Left","TopPhone","RightPhone","BottomPhone","LeftPhone"].map(e=>[`sectionPadding${e}`,0])),rl=e=>({top:0,right:0,bottom:0,left:0,...e}),vx=(e,o,t,r=[])=>({kind:"group",name:e,keepEmpty:!0,props:(a,n)=>({...B,...tl,...ho("surface")(a,n),...typeof t=="function"?t(a,n):t}),box:[[o,"bgImage"]],parts:r});import{phoneKey as iq,readHidable as Q1}from"efficient-easel/draw";import{parseHexColor as cq}from"efficient-shell/format";import{jsx as mn,Fragment as Z9,jsxs as Bx}from"react/jsx-runtime";import{jsx as Ax,jsxs as q9}from"react/jsx-runtime";import{jsx as y9}from"react/jsx-runtime";function h1(){return y9("span",{className:"block h-px w-[30px] bg-current"})}import{jsxs as il,jsx as Ge}from"react/jsx-runtime";import{Fragment as _1}from"react";import{parseHexColor as M9}from"efficient-shell/format";import{Fragment as D9,jsx as Rx}from"react/jsx-runtime";import{Fragment as y1,jsx as nl,jsxs as E9}from"react/jsx-runtime";import{createContext as _x,useContext as sl,useEffect as O9,useId as _9,useMemo as R9,useRef as F9}from"react";import{armEntrance as A9}from"efficient-shell/format";import{jsx as C9}from"react/jsx-runtime";import{useEffect as b1,useRef as g1,useState as v9}from"react";import{armEntrance as k9,entranceAttrs as P9,playEntrance as T9}from"efficient-shell/format";import{jsx as al}from"react/jsx-runtime";import{createContext as I1,useContext as na}from"react";var x1={stretchedRow:!1,fillingColumn:!1},sa=I1(null),KPe=()=>na(sa)!==null,qPe=()=>na(sa);var Ad=I1(!1);function S9(){let e=na(sa)?.stretchedRow===!0,o=na(Ad);return e&&!o}var w9=()=>na(Ad);function kx(){let e=na(sa),o=S9(),t=w9();return{fill:t?` ${dS}`:"",inner:r=>{let a=o||t?al(Ad.Provider,{value:!0,children:r}):r;return e?.columnsRow?al(sa.Provider,{value:{...e,columnsRow:!1},children:a}):a}}}function VPe({className:e,style:o,attrs:t,children:r}){let{fill:a,inner:n}=kx();return al("div",{className:`${e}${a}`,...o?{style:o}:{},...t,children:n(r)})}function YPe({children:e}){let o=na(sa),t=o===null?null:o.id===void 0?x1:{...x1,id:o.id};return al(sa.Provider,{value:t,children:al(Ad.Provider,{value:!1,children:e})})}function Tx({desktop:e,phone:o,editing:t,boxClass:r,boxAttrs:a,boxStyle:n,children:s}){let l=g1(null),c=kx(),d=Ex(l),u=d?o:e,{attrs:h,style:p}=P9(u),x=g1(Px.seed(e,o)),g=JSON.stringify(e),y=JSON.stringify(o);return b1(()=>{let E=l.current;if(E){if(t){let _=Px.next(x.current,e,o,d);x.current=_.seen,_.play&&T9(E);return}return k9(E)}},[g,y,d,t]),C9("div",{ref:l,className:`${_c}${c.fill}${r?` ${r}`:""}`,...a,...h,...Object.keys(p).length||n?{style:{...n,...p}}:{},children:c.inner(s)})}var Px={seed(e,o){return{desktop:JSON.stringify(e),phone:JSON.stringify(o)}},next(e,o,t,r){let a=Px.seed(o,t);return{play:r?a.phone!==e.phone:a.desktop!==e.desktop,seen:a}}};function Ex(e,o=!0){let[t,r]=v9(!1);return b1(()=>{if(!o)return;let a=e.current?.ownerDocument?.defaultView??(typeof window>"u"?null:window);if(!a?.matchMedia)return;let n=a.matchMedia(Ca),s=()=>r(n.matches);return s(),n.addEventListener("change",s),()=>n.removeEventListener("change",s)},[e,o]),t}var Ld=_x(null),w1=_x(null),C1=_x(null);function fTe({needles:e,styles:o,motions:t=sP,type:r,children:a}){let n=_9(),s=JSON.stringify([n,e,o,t,r]),l=R9(()=>{let d=Object.keys(t).filter(u=>iP(t[u]));return MC(e,o,n,u=>vs(r,u),u=>BC(r,u),u=>d.includes(u)?ch(t[u]):null,d)},[s]);if(!l)return nl(y1,{children:a});let c=HC(l);return E9(y1,{children:[c&&nl("style",{href:`${L9}${n}-${B9(c)}`,precedence:k1,dangerouslySetInnerHTML:{__html:c.replace(/</g,"\\3c ")}}),nl(Ld.Provider,{value:l,children:a})]})}var Ox=new WeakMap;function S1(e,o){let t=dP(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)?(uP(e.ownerDocument),e.setAttribute(Mc,"")):e.removeAttribute(Mc)}function v1(e){let o=F9(null),t=e?.motion?.entrance??null,r=e?.motion?.hover==="lift",a=Ex(o,t!==null),n=JSON.stringify(t);return O9(()=>{let s=o.current,l=fP(s?.parentElement??null);if(!t&&!r||!s||!l)return;let c=t?()=>{let h=cP(l,a?t.phone:t.desktop),p=A9(l);return()=>{p?.(),h()}}:null,d=Ox.get(l)??[];Ox.set(l,d);let u={element:s,arm:c,lift:r};return d.push(u),S1(l,d),()=>{let h=d.indexOf(u);h<0||(d.splice(h,1),u.undo?.(),u.undo=void 0,S1(l,d),d.length||Ox.delete(l))}},[n,r,a]),o}var k1="sf-part-styles",L9=`${k1}-`;function B9(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 P1(e){let o=sl(Ld),t=sl(w1),r=zC(o,e);return r&&r.stamp!==t?r:null}function uTe(e){return Yp(sl(Ld),e)}function T1({stamp:e,children:o}){return nl(w1.Provider,{value:e,children:o})}function pTe({children:e}){let o=sl(Ld);return nl(C1.Provider,{value:o,children:e})}function mTe(e){return Yp(sl(C1),e)}function ll({value:e,children:o}){let t=P1(e),r=v1(t);return t?Rx(T1,{stamp:t.stamp,children:Rx("span",{ref:r,[zp]:t.stamp,...t.textStyle?{[Ha]:t.textStyle}:{},children:o})}):Rx(D9,{children:o})}import{jsx as Fx,Fragment as N9}from"react/jsx-runtime";function E1({className:e=""}){return Fx("sup",{className:`text-accent tracking-normal text-[length:min(1em,max(0.75em,11px))] ${e}`,children:"\xAE"})}function Bd(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(Fx(E1,{},`r${a}`))}),Fx(N9,{children:t})}var STe=E1;function xo(e,o=!1,t){let r=K9(o),a=Tn(e);if(a.length===1){let[s]=a,l=iu(s),c=l?$9(l,s.children):s.children;return il(ll,{value:e,children:[t,Dd(c,r)]})}let n=[];return a.forEach((s,l)=>{if(s.bullet){n.push(Ge("span",{"data-sf-bullet":"",className:H9,children:Dd(s.children,r)},l));return}if(s.number!=null){n.push(il("span",{"data-sf-number":s.number,className:z9,children:[il("span",{className:W9,children:[s.number,"."]}),Dd(s.children,r)]},l));return}l>0&&!G9(a[l-1])&&n.push(Ge("br",{},`br${l}`)),n.push(Ge(_1,{children:Dd(s.children,r)},l))}),il(ll,{value:e,children:[t,n]})}var H9="relative block pl-6 before:absolute before:left-1.5 before:font-bold before:text-accent before:content-['\xB7']",z9="relative block pl-[2em]",W9="absolute left-0 w-[1.6em] text-right tabular-nums";function G9(e){return e.bullet||e.number!=null}var U9="text-accent underline underline-offset-[0.18em]";function $9(e,o){let[t,...r]=o;return t?.kind==="text"?[{kind:"text",text:`${e}${t.text}`},...r]:[{kind:"text",text:e},...o]}function j9(e){if(e)return M9(e)===e.toLowerCase()?e:Object.hasOwn(xt,e)?xt[e]:void 0}function Dd(e,o){let t=[],r=!1;return e.forEach((a,n)=>{if(a.kind==="text"){t.push(Ge("span",{children:Bd(a.text)},n)),r=!0;return}r||t.push(Ge("span",{},`e${n}`)),t.push(R1(a,n,o)),r=!1}),r||t.push(Ge("span",{},"end")),t}function O1(e,o){return e.length===1&&e[0].kind==="text"?Bd(e[0].text):e.map((t,r)=>t.kind==="text"?Ge(_1,{children:Bd(t.text)},r):R1(t,r,o))}function K9(e){return e?"font-normal italic text-accent":"not-italic text-accent"}function _Te(e){return Ge(ll,{value:e,children:Ge("span",{children:e})})}function R1(e,o,t){if(e.kind==="link")return Ge("a",{href:e.href,className:U9,children:O1(e.children,t)},o);let r=O1(e.children,t),a=Ab[e.kind];if(a)return Ge("span",{[Lb]:a,children:r},o);switch(e.kind){case"underline":return Ge("u",{children:r},o);case"sup":return Ge("sup",{children:r},o);case"sub":return Ge("sub",{children:r},o);case"color":{let n=j9(e.color);return n?Ge("span",{style:{color:n},children:r},o):Ge("span",{children:r},o)}case"accent":case"highlight":return Ge("em",{className:t,children:r},o);case"bold":return Ge("strong",{className:"font-semibold",children:r},o);case"italic":return Ge("em",{className:"italic",children:r},o);case"strike":return Ge("s",{className:"line-through",children:r},o);default:return Ge("span",{children:r},o)}}function F1(e,o=!0){let t=e.split(`
|
|
22
|
-
`);return Ge(ll,{value:e,children:t.map((r,a)=>il("span",{children:[xo(r,o),a<t.length-1?Ge("br",{}):null]},a))})}function A1(e){return e.split(/\n\s*\n/).map(o=>o.trim()).filter(Boolean)}var Lx={labelUpTo800:"max-view-wide:text-[length:var(--size-label,12px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,14px)]"};function V9(e,o){return`font-mono text-[length:var(--size-label,${e}px)] uppercase tracking-[0.3em] text-accent`}var Y9=`inline-block w-fit bg-accent px-3.5 py-1.5 font-mono ${Lx.labelSmall} font-semibold uppercase tracking-[0.16em] text-bg`,X9=`flex items-center gap-3.5 font-mono ${Lx.labelLarge} uppercase tracking-[0.3em] opacity-80 ${Lx.labelUpTo800} max-view-wide:tracking-[0.25em]`;function L1({text:e,look:o="plain",size:t=13,scaled:r=!0,className:a="",classNameAfter:n=""}){if(o==="line")return q9("div",{className:[a,X9,n].filter(Boolean).join(" "),children:[Ax(h1,{}),Ax("span",{children:xo(e)})]});let s=o==="filled"?Y9:V9(t,r);return Ax("span",{className:[a,s,n].filter(Boolean).join(" "),children:xo(e)})}var Nd={headingMediumUpTo800:"max-view-wide: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)]"},J9="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))]",Q9="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 Dx(e){return Math.min(4,Math.max(2,e??3))}function zTe({look:e,eyebrow:o,title:t,items:r,columns:a,omitHead:n=!1,editing:s=!1}={}){let l=Dx(a),c=(r??[]).filter(u=>s||(u.title??"").trim()||(u.body??"").trim()),d=!!(o??"").trim()||!!(t??"").trim();return!s&&!d&&c.length===0?null:mn("section",{className:"relative z-[2] bg-surface",children:Bx("div",{className:n?Q9:J9,children:[n?null:Bx(Z9,{children:[(o??"").trim()&&mn(L1,{text:o??"",look:e,className:"mb-4 block"}),(t??"").trim()&&mn("h2",{className:`mb-9 font-heading2 ${Nd.headingMedium} font-medium uppercase leading-none tracking-[-0.02em] text-fg max-view-wide:mb-7 ${Nd.headingMediumUpTo800}`,children:F1(t??"",!1)})]}),c.length>0&&mn("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 Bx("div",{className:"bg-bg p-8 max-view-wide:p-7",children:[p&&mn("div",{className:`mb-3 font-heading3 ${Nd.headingSmall} font-medium uppercase tracking-[0.02em] text-fg`,children:xo(p)}),x&&mn("p",{className:`${Nd.body} leading-[1.6] text-fg-dim`,children:xo(x)})]},h)})})]})})}var GTe={eyebrow:"Label",title:"Section *heading.*"},B1={label:"Cards",defaultProps:{eyebrow:"",title:"",items:[],columns:3}};var jTe={eyebrow:"Highlight",title:"Key *features.*"},KTe=()=>[{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")}],D1={label:"Key Features",defaultProps:{eyebrow:"",title:"",items:[],columns:3}};import{readHidable as eq}from"efficient-easel/draw";function Mx(e){if(e==="ProductGrid")return"shelf";let o=mo[e]?.headStyle;return o==="editorial"||o==="simple"||o==="essay"?o:"standard"}var H1={standard:64,editorial:60,simple:36,essay:28,shelf:20},oq={SectionHeader:"accent",FAQ:"accent",FitmentFinder:"accent",FitmentTable:"accent",SpecTable:"accent",RelatedProducts:"accent",Collections:"accentNum"};function tq(e){if(e==="SectionHeader")return{num:"num",title:"title",description:"description",link:!0};let o=mo[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 z1(e,o,t){let r=`editorial:${e}|${o}|${t}`,a=Hd.get(r);if(a)return a;let n=G1({num:e,title:o,description:t,link:!1});return Hd.set(r,n),n}var Hx={top:0,right:0,bottom:1,left:0},U=(e,o,t,r)=>({sizeToken:{step:e,px:o,...r?{stepPhone:r}:{},...t?{pxPhone:t}:{}}}),Bo=(e,o,t,r)=>({sizeToken:{step:e,px:r,fluid:{minPx:o,vw:t}}}),zd=(e,o,t={})=>de(e,{...U("label",o),...t}),rq=(e,o)=>{let t=eq(e).text.trim();return/\s/.test(t)?{minWidth:Math.ceil(t.length*o*.9),minWidthPhone:0,widthFitPhone:"fill"}:{}},Wd=(e,o)=>({kind:"text",key:e,role:"heading",props:Y,style:{textStyle:"heading-2",...o}}),zx=800,Wx=(e,o,t,r)=>({kind:"text",key:e,props:{...Ie,align:"right",alignPhone:"left",...t?{maxWidth:t,maxWidthPhone:zx}:{}},style:{textStyle:"body-5",fontRole:"heading",alignPhone:"left",...U("body",o),...r}}),W1={...Xe,align:"right",alignPhone:"left",..._t,icon:"arrow-right",iconPosition:"after"},Nx=e=>({kind:"button",key:"linkText",href:"linkHref",variant:"ghost",props:W1,style:{textStyle:"body-5",color:"labels",...U("label",e),letterSpacing:.2,case:"upper"}}),N1=(e,o,t)=>{let r=t.role==="heading"?{tag:"h2"}:{};return{kind:"block",type:"Text",when:a=>a[e]===void 0,props:{...Y,...r,...t.props,text:o,_partStyles:{text:{...t.role==="eyebrow"?aq(ko()):{},...t.style}}}}},aq=e=>e._partStyles.text??{},Md={widthFitPhone:"fill"};function nq(e,o){let t=oq[e],r=t==="accent",a=zd(o.num,14,{color:r?"accent":"labels"}),n=t==="accentNum"&&a.kind==="text"?{...a,mark:"accentLead"}:a,s=Wd(o.title,r?{...Bo("headingMedium",36,5,64),case:"upper",lineHeight:.95,letterSpacing:-.025}:{...U("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:Hx,sectionPaddingBottom:24,sectionPaddingBottomPhone:20},parts:[{kind:"group",name:"Title",props:{...B,...Md,direction:"row",align:"end",gap:40,gapPhone:12,share:"content"},parts:[{kind:"group",name:"Number",props:{...B,...Md,align:"start",gap:12},parts:[{kind:"image",key:"logoSrc",alt:"logoAlt",props:{aspect:"auto",contained:!1}},n,...l?[N1(o.num,"==01== / Collections",n)]:[]]},{kind:"group",name:"Heading",props:{...B,...Md},parts:[s,...l?[N1(o.title,`Three ranges,
|
|
23
|
-
one standard.`,s)]:[]]}]},{kind:"group",name:"Words",props:{...B,...Md,gap:12,maxWidth:340,maxWidthPhone:zx},parts:[...o.description?[Wx(o.description,14,void 0,{lineHeight:1.5})]:[],...o.link?[Nx(14)]:[],...l?[{kind:"block",type:"ButtonBlock",props:{...W1,variant:"ghost",label:"View all",href:"/wheels",_partStyles:{label:Nx(14).style}}}]:[]]}]}}function G1(e){return{kind:"group",name:"Header",props:{...B,direction:"row",align:"end",justify:"between",gap:40,gapPhone:14,share:"content",sectionBorder:Hx,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,...rq(o[e.num],13)}),parts:[zd(e.num,13)]},Wd(e.title,{...Bo("headingMedium",40,5.5,80),case:"upper",weight:500,lineHeight:1,letterSpacing:-.03})]},{kind:"group",name:"Words",props:{...B,sectionPaddingBottom:4,maxWidth:360,maxWidthPhone:zx},parts:e.description?[Wx(e.description,14,void 0,{lineHeight:1.5})]:[]}]}}function M1(e,o){return{kind:"group",name:"Header",props:{...B,gap:16,gapPhone:16},parts:[zd(e.num,13),Wd(e.title,o)]}}var U1=[["para",{textStyle:"body-5",...U("label",13),case:"upper",weight:400,lineHeight:1,letterSpacing:.22}],["sm",{...U("headingMedium",40,28),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["md",{...U("headingMedium",48,32),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["lg",{...U("headingMedium",56,36),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["xl",{...U("headingMedium",64,40),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}]],sq=e=>U1.some(([o])=>o===e.titleSize)?e.titleSize:"lg";function lq(e){return{kind:"group",name:"Header",props:{...B,direction:"row",align:"center",justify:"between",gap:16,share:"content",stickTop:!0,sectionBorder:Hx,sectionPaddingTop:12,sectionPaddingBottom:12},parts:[{kind:"group",name:"Title",props:{...B,direction:"row",align:"end",gap:24,share:"content"},parts:[zd(e.num,13,{color:"labels",letterSpacing:.22,lineHeight:1}),...U1.map(([o,t])=>({...Wd(e.title,t),when:r=>sq(r)===o}))]},{kind:"group",name:"Words",props:{...B,direction:"row",align:"center",justify:"end",gap:20,share:"content"},parts:[...e.description?[Wx(e.description,13,340,{lineHeight:1.4})]:[],...e.link?[Nx(13)]:[]]}]}}var Hd=new Map;function ft(e){let o=Hd.get(e);if(o)return o;let t=tq(e),r=Mx(e),a=r==="editorial"?G1(t):r==="simple"?M1(t,{...U("headingMedium",44,32),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}):r==="essay"?M1(t,{...U("headingMedium",38,28,"headingSmall"),case:"upper",lineHeight:1,letterSpacing:-.02}):r==="shelf"?lq(t):nq(e,t);return Hd.set(e,a),a}var Gd={Series:"transparent",StatsParagraph:"transparent",TimelineTrack:$o,Stats:void 0};var ar=(e,o,t,r)=>({sectionBorder:{top:e,right:o,bottom:t,left:r}}),eO=(e,o=e)=>({sectionPaddingTop:e,sectionPaddingRight:e,sectionPaddingBottom:e,sectionPaddingLeft:e,sectionPaddingTopPhone:o,sectionPaddingRightPhone:o,sectionPaddingBottomPhone:o,sectionPaddingLeftPhone:o}),oO=e=>o=>Dx($(o.columns)??$(e.columns)),tO=e=>({kind:"group",name:"Grid",props:{...B,gap:0,...ar(1,0,0,1)},parts:[e]}),Ud={...B,direction:"row",gap:0,share:"equal"},rO="its head sits in a Box of its own above it (own-box): the row draws the head inline",aO=e=>V0(e.headPlacement)==="own-box",nO="inline is the head the row draws; an own-box node is skipped (`skip`)",dq=e=>({kind:"group",name:"Heading",props:e,parts:[de("eyebrow"),{kind:"text",key:"title",role:"heading",props:Y,style:{textStyle:"heading-3",case:"upper"},was:{size:44}}]}),$1={top:72,bottom:72,topPhone:72,bottomPhone:72},fq={...B,gap:12,gapPhone:12,...eO(32,28),...ar(0,1,1,0)},uq={name:"Cards",boxProps:(e,o)=>({...se,direction:"column",gap:36,gapPhone:28,...ho("surface")(e,o),...ye(e,$1)}),box:[...pe,..._e($1)],skip:e=>aO(e)?rO: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:[ft("Cards"),tO({kind:"list",key:"items",name:"Card",perRow:oO(B1.defaultProps),rowName:"Row",rowProps:Ud,props:(e,o)=>({...fq,...ho("background")(e,o)}),parts:[{kind:"text",key:"title",props:Y,style:{textStyle:"heading-3",...U("headingSmall",20),weight:500,case:"upper",lineHeight:1.5,letterSpacing:.02}},{kind:"text",key:"body",props:Ie,style:{textStyle:"body-1",...U("body",15),lineHeight:1.6}}]})],drop:{...me,...Ce,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:nO,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)"}},j1={top:76,bottom:76,topPhone:76,bottomPhone:76},pq={...B,direction:"row",align:"center",gap:16,sectionPaddingTop:32,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,...ar(0,1,1,0)},K1={textStyle:"body-1",color:"text"},q1=(e,o)=>typeof o?.href=="string"&&o.href.trim()!=="",mq={name:"Key Features",boxProps:e=>({...se,direction:"column",gap:44,...ar(1,0,1,0),...ye(e,j1)}),box:[...pe,..._e(j1)],parts:[dq({...B,direction:"row",align:"end",gap:20,wrap:!0,share:"content"}),tO({kind:"list",key:"items",name:"Feature",perRow:oO(D1.defaultProps),rowName:"Row",rowProps:Ud,props:pq,parts:[{kind:"button",key:"label",href:"href",when:q1,variant:"ghost",props:{...Xe,..._t,icon:"none"},style:K1},{kind:"text",key:"label",when:(e,o)=>!q1(e,o),props:Y,style:K1,was:{size:17}}]})],drop:{...me,...Ce,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)"}},V1={top:120,bottom:120,topPhone:80,bottomPhone:80},$d=e=>{let o=mi(typeof e.background=="string"?e.background:void 0,Gd.Series);return o&&o!=="transparent"?o:void 0},Gx=e=>$d(e)===$o,hq=(e,o)=>{let t=$d(e);return!t||t===$o?{}:t==="var(--site-surface)"?ho("surface")(e,o):cq(t.trim())?{fillColor:t.trim()}:{}},Y1=e=>{let o=$d(e)?1:2;return{gap:o,gapPhone:o}},xq={...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},X1={...B,direction:"row",justify:"between",gap:12,share:"content",phoneRow:2,[iq("share")]:"content"},Z1={textStyle:"body-5",...U("label",12),letterSpacing:.22,case:"upper",lineHeight:1.5},Iq=e=>je(e.viewLabel)&&!Q1(e.viewLabel).hidden,gq={name:"Recurring Columns",boxProps:(e,o)=>({...se,direction:"column",gap:60,gapPhone:60,...ar(0,0,1,0),...Gx(e)?aa(e,o):{},...hq(e,o),...ye(e,V1)}),box:[...pe.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>Gx(o)?tr(e,o,t):e],..._e(V1)],skip:e=>aO(e)?rO:void 0,site:(e,o)=>Gx(e.props)?rr(e,o):[],parts:[ft("Series"),{kind:"group",name:"Grid",props:(e,o)=>({...B,...Y1(e),...$d(e)?{}:ho("background")(e,o)}),parts:[{kind:"list",key:"cards",name:"Column",perRow:()=>4,rowName:"Row",rowProps:e=>({...Ud,...Y1(e)}),rowFiller:B,props:(e,o)=>({...xq,...ho("background")(e,o)}),parts:[{kind:"group",name:"Words",props:{...B,gap:16,gapPhone:16},parts:[{kind:"group",name:"Top",props:X1,parts:[de("num",U("label",13)),de("since",U("label",13))]},{kind:"text",key:"title",props:{...Y,tag:"h3"},style:{textStyle:"heading-3",...U("headingSmall",28),weight:500,case:"upper",lineHeight:1.04,letterSpacing:-.02}},{kind:"text",key:"desc",props:Ie,style:{textStyle:"body-5",fontRole:"heading",...U("body",14),lineHeight:1.6}}]},{kind:"group",name:"Footer",when:(e,o)=>je(o?.entries)||je(o?.entriesLabel)||Iq(e),props:{...X1,align:"center",gap:0,gapPhone:0,sectionPaddingTop:16,sectionPaddingTopPhone:16,...ar(1,0,0,0)},parts:[Cx("entries","entriesLabel",{...Ie,_partStyles:{text:Z1}}),{kind:"group",name:"View",props:{...B,maxWidthPhone:266},parts:[{kind:"block",type:"Text",when:e=>je(e.viewLabel),props:e=>{let o=Q1(e.viewLabel),t=ko()._partStyles,r=e._partStyles?.viewLabel;return{...Y,text:o.text,_partStyles:{text:{...t.text,...Z1,...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:{...me,...Ce,headPlacement:nO}},J1={top:60,bottom:60,topPhone:40,bottomPhone:40},bq={...B,gap:8,gapPhone:8,...eO(24),...ar(1,1,1,1)},yq={name:"Document Detail Cards",boxProps:e=>({...se,direction:"column",gap:40,gapPhone:16,...ar(0,0,1,0),...ye(e,J1)}),box:[...pe,..._e(J1)],parts:[{kind:"list",key:"cards",name:"Card",perRow:()=>3,rowName:"Row",rowProps:{...Ud,gap:40,gapPhone:16},props:(e,o)=>({...bq,...ho("surface")(e,o)}),parts:[de("label",{...U("label",12),lineHeight:1.5}),{kind:"group",name:"Words",props:{...B,gap:14,gapPhone:14},parts:[{kind:"text",key:"value",props:Y,style:{textStyle:"heading-3",...U("headingSmall",20),weight:500,letterSpacing:-.015,lineHeight:1.5}},{kind:"text",key:"desc",props:Ie,style:{textStyle:"body-5",fontRole:"accent",...U("body",14),italic:!0,lineHeight:1.5}}]}]}],drop:{...me,...Ce}},sO={Cards:uq,KeyFeatures:mq,Series:gq,DocMetaCards:yq};import{phoneKey as lO}from"efficient-easel/draw";var Ux=e=>typeof e=="string"?e.trim():"";function iO(e){let o=`${Ux(e.prefix)}${Ux(e.value)}`,t=Ux(e.suffix);return e.emphasizeAll===!0?o?`==_${o}_==`:"":`${o}${t?`==_${t}_==`:""}`}var $x={kind:"block",type:"Text",props:{...un,_partStyles:{text:{textStyle:"heading-2",...Bo("headingMedium",56,7,96),weight:500,case:"none",lineHeight:.9,letterSpacing:-.04}}},box:[["value","text",(e,o)=>iO(o)]],when:(e,o)=>o!==void 0&&typeof o.value=="string"&&iO(o)!==""},cO=e=>je(e?.supSuffix),Kx=e=>mi(e.background,Gd.StatsParagraph),cl=e=>Kx(e)===$o,jx=e=>({...e,sectionAccent:e.sectionAccent??0}),Sq=(e,o)=>cl(e)?ho("background")(e,o):{},wq={name:"Stats with Text",skip:e=>Kx(e)&&Kx(e)!=="transparent"&&!cl(e)?"it paints a colour of its own, not the section band":void 0,boxProps:(e,o)=>({...se,direction:"column",gap:60,gapPhone:60,sectionBorder:{bottom:1},...bo(e,"StatsParagraph"),...cl(e)?aa(jx(e),o):{}}),box:[...pe.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>cl(o)?tr(e,jx(o),t):e],...or("StatsParagraph")],site:(e,o)=>cl(e.props)?rr({props:jx(e.props)},o):[],parts:[ft("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,[lO("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},...Sq(e,o)}),parts:[{...$x,when:(e,o)=>!cO(o)&&$x.when(e,o)},{kind:"group",name:"Figure",props:{...B,direction:"row",align:"start",gap:32,gapPhone:32,share:"content",phoneRow:2,[lO("share")]:"content"},when:(e,o)=>cO(o),parts:[$x,{kind:"text",key:"supSuffix",props:Y,style:{textStyle:"body-5",...U("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:Y,style:{textStyle:"body-1",fontRole:"heading",...U("body",16),lineHeight:1.5,letterSpacing:-.01}},de("sub",{color:"labels",...U("label",12),lineHeight:1.5,letterSpacing:.24})]}]}]}],drop:{...me,...Ce,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"}},Cq=new Set(["value","label",qr]),dO={top:48,bottom:48,topPhone:48,bottomPhone:48},vq={name:"Stats",skip:e=>je(e.dataSource)?"its figures come from a source":Array.isArray(e.items)&&e.items.some(o=>je(o?.[qr]))?"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=>!Cq.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=>({...se,direction:"column",gap:24,gapPhone:24,...ye(e,dO)}),box:[...pe,..._e(dO)],parts:[de("heading",{color:"labels",...U("label",12),letterSpacing:.2}),{kind:"group",name:"Stats",props:{...B,gap:32,gapPhone:32},parts:[{kind:"list",key:"items",name:"Stat",perRow:e=>$(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:un,style:{textStyle:"heading-2",...U("headingMedium",48,36),weight:500,case:"none",lineHeight:1,letterSpacing:-.03}},de("label",{color:"labels",...U("label",12),letterSpacing:.2})]}]}],drop:{...me,...Ce,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)"}},fO={StatsParagraph:wq,Stats:vq};var pO={contained:!1},mO=(e,o)=>({logos:[{kind:"list",key:e,name:"Logo",flat:!0,parts:[{kind:"block",type:"LogoBlock",box:["src",[o,"alt"]],when:(t,r)=>je(r?.src)||je(r?.[o])}]}]}),qx=e=>{let o=$(e.bandPadding)??40;return{top:o,bottom:o,topPhone:o,bottomPhone:o}},kq={...de("heading",{color:"labels",letterSpacing:.2}),props:{...Y,align:"center"}},Pq={name:"Logos",boxProps:e=>({...se,direction:"column",gap:32,...ye(e,qx(e))}),box:[...pe,..._e(qx),["bandPadding","sectionPaddingTop",(e,o)=>ye(o,qx(o)).sectionPaddingTop]],parts:[kq,{kind:"core",keep:["columns","logoHeight","grayscale"],rename:{logosPerRow:"columns"},props:pO,slots:mO("items","alt")}],drop:{...me,...Ce,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"}},uO={top:24,bottom:24,topPhone:24,bottomPhone:24},Tq={name:"Payment Methods",boxProps:e=>({...se,direction:"column",...ye(e,uO)}),box:[...pe,..._e(uO)],skip:e=>je(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:[{...de("heading",{color:"labels"}),props:{...Y,align:"center"}},{kind:"core",keep:[],as:"Logos",props:{...pO,look:"cards",grayscale:!1},slots:mO("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:{...Y,align:"center"},style:{size:13,color:"labels"}}]}]}]}],drop:{...me,...Ce,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`)"}},hO={Logos:Pq,PaymentBadges:Tq};import{mixHex as Eq}from"efficient-shell/format";var xO=e=>e.size==="display",Oq=(e,o)=>{let t=Fd(e,o),r=e.tone!=="plain"&&t?.text&&t.background?Eq(t.text,t.background,.3):null;return r?{color:r}:{}},_q=(e,o)=>e.tone!=="plain"&&Ho(e.sectionAccent)===null?ho("background")(e,o):{},IO=(e,o)=>({kind:"list",key:"items",name:"Item",flat:!0,when:o,parts:[{kind:"text",key:"text",props:Ie,style:e,styleFrom:Oq}]}),Rq={name:"Scrolling Bar",boxProps:(e,o)=>({...se,...ta,...Td,...ii[Fn(e.separator)]===""?e1:{},...ye(e,Ys),..._q(e,o)}),box:[["scrollDirection","scrollDirection",e=>xk(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=>Fn(e)],["borders","sectionBorder",e=>e===!1?void 0:{top:1,bottom:1}],...pe,["tone","sectionAccent",(e,o)=>Ho(o.sectionAccent)??Sa],..._e(Ys)],parts:[IO(Ed,e=>!xO(e)),IO(o1,xO)],drop:{...me,...Ce,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"}},gO=e=>e?.tone==="muted",Fq={name:"Spec Strip",boxProps:e=>({...se,...ta,...Od,...e.fill==="none"?{sectionBorder:{top:1}}:{},...ye(e,Xs)}),box:[...pe,..._e(Xs)],parts:[{kind:"list",key:"cells",name:"Cell",flat:!0,parts:[{kind:"text",key:"text",props:Y,style:Zs,when:(e,o)=>!gO(o)},{kind:"text",key:"text",props:Ie,style:Zs,when:(e,o)=>gO(o)}]}],drop:{...me,...Ce,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"}},bO={Ticker:Rq,SpecStrip:Fq};var Aq="jetbrains-mono",SO="space-grotesk",Rt=(e,o,t={})=>({textStyle:"body-5",font:Aq,size:e,sizePhone:e,letterSpacing:o,lineHeight:1.5,weight:400,...t}),Kd=(e,o,t,r)=>({font:SO,size:e,sizePhone:o,case:"upper",weight:500,letterSpacing:t,lineHeight:r}),dl=(e,o,t,r={})=>({textStyle:"body-1",font:SO,size:e,sizePhone:o,weight:400,case:"none",lineHeight:t,...r}),yo=(e,o,t={})=>({kind:"text",key:e,props:Y,style:o,...t}),yO=(e,o)=>o?.future===!0,jd=e=>A1(typeof e?.body=="string"?e.body:""),Lq={name:"Milestone Timeline",boxProps:(e,o)=>{let t=ra(e,o);return{...se,direction:"column",gap:60,sectionBorder:{bottom:1},...bo(e,"TimelineTrack"),...t>=0?{sectionAccent:t}:{}}},box:[...pe.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",tr],...or("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:[yo("eyebrow",Rt(13,.3,{case:"upper",color:"accent",padding:8}),{role:"eyebrow"}),yo("title",{textStyle:"heading-2",...Kd(79,40,-.03,1)},{role:"heading"})]},yo("intro",dl(14,14,1.5),{props:{...Ie,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,...Pd},item:e=>({props:e.future===!0?{upcoming:!0}:{}}),parts:[{kind:"group",name:Vs.name,props:{...B,...Vs},parts:[yo("date",Rt(13,.22,{color:"accent"}),{when:(e,o)=>!yO(e,o)}),yo("date",Rt(13,.22,{color:"labels"}),{when:yO}),yo("title",{textStyle:"heading-3",...Kd(20,20,-.02,1.1)},{role:"heading"})]},yo("blurb",dl(13,13,1.55),{props:Ie})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...Xe,align:"right",...ol(e,o)}),style:Rt(13,.3,{case:"upper"})}],site:rr,drop:{...me,...Ce,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"}},Bq={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=>({...se,direction:"row",share:"twoThree",gap:80,align:"start",...bo(e,"Timeline")}),box:[...pe,...or("Timeline")],parts:[{kind:"group",name:"Heading",props:{...B,gap:24},parts:[yo("eyebrow",Rt(12,.3,{case:"upper",color:"accent"}),{role:"eyebrow"}),yo("title",{textStyle:"heading-2",...Kd(72,40,-.03,.94)},{role:"heading"}),yo("intro",dl(14,14,1.6),{props:{...Ie,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:[yo("imageCaption",Rt(11,.24,{case:"upper",color:"text"})),yo("imageMeta",Rt(11,.24,{case:"upper",color:"accent"}),{props:{...Y,align:"right"}})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...Xe,...ol(e,o)}),style:Rt(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:[yo("date",Rt(13,.24,{color:"accent"})),{kind:"group",name:"Words",props:{...B,gap:14},parts:[yo("title",{textStyle:"heading-3",...Kd(24,20,-.02,1.5)},{role:"heading"}),{kind:"block",type:"Text",props:{...Y,_partStyles:{text:dl(17,16,1.6)}},box:[["body","text",(e,o)=>jd(o)[0]??""]],when:(e,o)=>jd(o).length>0},{kind:"block",type:"Text",props:{...Ie,_partStyles:{text:dl(17,16,1.6,{paragraphSpacing:14})}},box:[["body","text",(e,o)=>jd(o).slice(1).join(`
|
|
24
|
-
|
|
25
|
-
`)]],when:(e,o)=>jd(o).length>1}]}]}]}],drop:{...me,...Ce,layout:"Split is the only display converted (see skip); the Box's own arrangement replaces it"}},wO={TimelineTrack:Lq,Timeline:Bq};import{tabletKey as zq}from"efficient-easel/draw";import{slugify as U0e}from"efficient-shell/format";import{rootIsDark as Dq}from"efficient-shell/format";function z0e(e="auto"){return e==="light"?!0:e==="dark"?!1:!Dq({whenUnset:!0})}function CO(e,o){return Number.isFinite(e)&&Number.isFinite(o)&&!(e===0&&o===0)}function Vx(e){let o=Number.parseFloat(e??"");return Number.isFinite(o)?o:0}var Nq=["tall","square","wide"],Mq="tall";function vO(e){return Nq.includes(String(e??""))?String(e):Mq}var j0e={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"},K0e=[{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:""}],Hq=/^https?:\/\//i;function q0e(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:Vx(e.lat),lng:Vx(e.lng),mapsUrl:Hq.test(o)?o:""}}function Yx(e){let o=String(e??"").split(" \xB7 ");return{state:(o[0]??"").trim(),country:(o[1]??"").trim()}}var V0e="other",Y0e={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 kO(e){let o=String(e??"").replace(/[^+\d]/g,"");return o?`tel:${o}`:void 0}var Do=e=>typeof e=="string"?e:e==null?"":String(e),Jx=e=>Array.isArray(e.locations)?e.locations.map(o=>o??{}):[],hn=e=>Do(e.group),LO=e=>`loc-${e}`,BO=e=>Do(e.state).trim()||Yx(Do(e.region)).state,DO=e=>Do(e.country).trim()||Yx(Do(e.region)).country,PO=e=>[BO(e),DO(e)].filter(Boolean).join(" \xB7 "),Wq=e=>Jx(e).some(o=>Do(o.photo).trim()!==""),Gq=e=>Jx(e).some(o=>CO(Number(o.lat),Number(o.lng))),Uq=(e,o)=>Jx(e).filter(t=>hn(t)===hn(o)).length,$q=(e,o)=>Uq(e,o)===1?"wide":vO(e.imageShape),Xx={top:100,bottom:100,topPhone:60,bottomPhone:60},TO=48,ot=(e,o={})=>({textStyle:"body-5",...U("label",e),case:"upper",...o}),Qx={top:1,right:1,bottom:1,left:1},Zx=(e,o)=>({sectionPaddingTop:e,sectionPaddingBottom:e,sectionPaddingLeft:o,sectionPaddingRight:o,sectionPaddingTopPhone:e,sectionPaddingBottomPhone:e,sectionPaddingLeftPhone:o,sectionPaddingRightPhone:o}),eI={...B,direction:"row",share:"equal",gap:0},jq=e=>o=>o>Ns(o)?{...B,gap:0}:{...eI,...o>1?{phoneRow:e}:{}},Kq={kind:"group",name:"Gallery",props:{...B,gap:20,_hidden:!0},when:Wq,parts:[{kind:"group",name:"Gallery head",props:{...B,direction:"row",justify:"between",align:"end",gap:24,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:16},parts:[de("galleryKicker",ot(12,{color:"accent",letterSpacing:.3})),{kind:"text",key:"galleryHint",props:{...Ie,align:"right",alignPhone:"left"},style:ot(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:Qx,...Zx(12,12)},item:(e,o,t)=>({props:{...Do(e.photo).trim()?{bgImage:Do(e.photo)}:{},link:`#${LO(o)}`,boxShape:$q(t,e)}}),parts:[{kind:"text",key:"name",props:Y,style:ot(11,{letterSpacing:.22,color:"text"})}],groups:{of:hn,name:"Group",props:{...B,gap:10},head:e=>({label:hn(e[0]??{})}),parts:[de("label",ot(11,{color:"accent",letterSpacing:.3}))],itemsName:"Cities",itemsProps:jq(2),perRow:Ns,rowName:"Row",rowProps:{...eI,phoneRow:2}}}]}]},qq={kind:"group",name:"Words",props:{...B,gap:12,gapPhone:12,...Zx(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:Y,style:{textStyle:"heading-3",...U("headingSmall",30),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}},{kind:"block",type:"Text",props:{...Y,_partStyles:{text:ot(12,{color:"accent",letterSpacing:.24,lineHeight:1.5})}},box:["region","state","country"].map(e=>[e,"text",(o,t)=>PO(t)]),when:(e,o)=>PO(o??{})!==""}]},{kind:"group",name:"Time zone",props:{...B,sectionBorder:Qx,...Zx(6,10)},parts:[{kind:"text",key:"timezone",props:{...Ie,textFit:"line"},style:ot(12,{letterSpacing:.22,lineHeight:1.5})}]}]},{kind:"text",key:"address",props:Ie,style:{textStyle:"body-5",fontRole:"heading",...U("body",14),lineHeight:1.5}},{kind:"block",type:"ButtonBlock",props:{...Xe,..._t,variant:"ghost",arrow:!1,_partStyles:{label:ot(13,{letterSpacing:.18,color:"text",lineHeight:24/13})}},box:[["phone","label"],["phone","href",e=>kO(Do(e))??"#"]],when:(e,o)=>Do(o?.phone).trim()!==""},{kind:"text",key:"hours",props:Ie,style:ot(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)=>BO(t)]),...["region","country"].map(e=>[e,"country",(o,t)=>DO(t)])]},Yq={kind:"group",name:"Map",props:{...B,sectionBorder:{top:1,right:0,bottom:0,left:0}},parts:[Vq]},Xq={kind:"list",key:"locations",name:"City",props:(e,o)=>({...B,gap:0,justify:"between",sectionBorder:Qx,jumpHighlight:!0,sectionAccent:ra(e,o)>=0?el(e.sectionAccent,o):-1}),item:(e,o)=>({props:{anchor:LO(o)}}),parts:[qq,Yq],groups:{of:hn,name:"Group",props:{...B,gap:20},head:e=>{let o=e[0]??{};return{key:hn(o),groupName:Do(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)=>Do(o?.key).trim()!=="",parts:[de("key",ot(13,{color:"accent",letterSpacing:.3})),{kind:"text",key:"groupName",role:"heading",props:Y,style:{textStyle:"heading-3",...U("headingSmall",24),case:"upper",weight:500,letterSpacing:-.01}},{kind:"text",key:"count",props:Ie,style:ot(12,{letterSpacing:.22})}]}],itemsName:"Cities",itemsProps:e=>({...eI,columns:Ns(e),[zq("columns")]:1})}},EO=ot(10,{letterSpacing:.25}),Zq={kind:"block",type:ct,props:{...B,name:"Credit",direction:"row",justify:"end",align:"center",gap:6,share:"content",wrap:!0},when:Gq,slot:dt,keepEmpty:!0,parts:[{kind:"block",type:"Text",props:{...Ie,text:"Location coordinates \xA9",_partStyles:{text:EO}}},{kind:"block",type:"ButtonBlock",props:{...Xe,..._t,variant:"ghost",arrow:!1,label:"OpenStreetMap contributors",href:"https://www.openstreetmap.org/copyright",_partStyles:{label:{...EO,color:"labels"}}}}]},OO=(e,o)=>Object.fromEntries(o.filter(t=>e[t]!==void 0).map(t=>[t,e[t]])),_O=["sectionPaddingTop","sectionPaddingTopTablet","sectionPaddingTopPhone"],RO=["sectionPaddingBottom","sectionPaddingBottomTablet","sectionPaddingBottomPhone"],FO=e=>e.map(o=>[o,o,(t,r)=>ye(r,Xx)[o]]),AO=["sectionAccent","sectionAccent",tr],Jq=["gridSpan","_hidden"],Qq={name:"City pictures",skip:e=>Vr(e)?`fed by the data source "${Vr(e)}": its cities are read as the page is served, not stored on the node`:void 0,boxProps:(e,o)=>({...se,direction:"column",gap:40,anchor:"studios",...OO(ye(e,Xx),_O),sectionPaddingBottom:TO,sectionPaddingBottomPhone:TO,...aa(e,o)}),box:[...pe.filter(e=>e!=="sectionAccent"&&e!=="anchor"),AO,["anchor","anchor",e=>kn(e).trim()?e:"studios"],...FO(_O)],parts:[z1("sectionNumber","heading","tagline"),Kq],also:[{name:"City maps",boxProps:(e,o)=>({...se,direction:"column",gap:40,sectionBorder:{bottom:1},sectionPaddingTop:0,sectionPaddingTopPhone:0,...OO(ye(e,Xx),RO),...aa(e,o)}),box:[...Jq,AO,...FO(RO)],parts:[Xq,Zq]}],reads:{mapTheme:"City maps Box: each Map block's Map theme",imageShape:"City pictures Box: each picture Box's Box shape"},site:rr,drop:{...me,...Ce,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)"}},NO={ContactLocations:Qq};var eV=["Collections","Events","FAQ","Footprint","GalleryB","LongRead","ProcessSteps","ProductGrid","RelatedProducts"];var nr=(e,o)=>()=>({top:e,topPhone:o}),MO=e=>o=>{let t=bo(o,e).sectionPaddingTop;return{top:t,topPhone:t}},oV={Collections:nr(120,70),Events:nr(120,70),FAQ:nr(120,70),GalleryB:nr(120,70),FitmentTable:nr(120,80),SpecTable:nr(120,80),LongRead:nr(120,80),FitmentFinder:e=>e.layout==="bar"?{top:32,topPhone:20}:{top:80,topPhone:60},RelatedProducts:nr(0,0),Footprint:MO("Footprint"),ProcessSteps:MO("ProcessSteps"),ProductGrid:e=>({top:$(e.padTop)??120,topPhone:0})};function tV(e,o={}){let t=mo[e],r=oV[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=ft(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:IP[e]??e,boxProps:c=>{let d=r(c);return{...se,direction:"column",gap:H1[Mx(e)],sectionPaddingTop:d.top,sectionPaddingTopPhone:d.topPhone}},box:[...pe,...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 HO=Object.fromEntries(eV.map(e=>[e,tV(e)]));import{BLOCK_WIDTH_LIMIT as rV}from"efficient-easel/draw";var qd={textFit:"line",textFitPhone:"wrap"},VO={minWidth:rV.min},zO=(e,o,t)=>({...de(e,{...o,...Js}),props:{...Y,align:"right",...qd,...t}}),YO={top:1,bottom:0},tI=(e,o,t,r)=>({kind:"group",name:e,props:{...B,sectionPaddingBottom:o,sectionPaddingBottomPhone:t},parts:[r]}),WO={widthFit:"fill",...VO},GO={top:100,bottom:60,topPhone:60,bottomPhone:40},aV={...U("label",13),letterSpacing:.22,lineHeight:1.8},UO={textStyle:"heading-1",...Bo("headingLarge",56,8,128),case:"upper",weight:500,lineHeight:.88,letterSpacing:-.04},$O=e=>e.titleLevel===2,nV=()=>({name:"Document Header",boxProps:e=>({...se,direction:"column",gap:0,sectionBorder:{bottom:1},...ye(e,GO)}),box:[...pe,..._e(GO)],parts:[{kind:"group",name:"Header",props:{...B,direction:"row",align:"end",justify:"between",gap:40,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[tI("Eyebrow",12,0,{...de("eyebrow",U("label",13)),props:{...Y,...qd}}),{kind:"text",key:"title",role:"heading",props:{...Y,tag:"h1",...WO},style:UO,when:e=>!$O(e)},{kind:"text",key:"title",role:"heading",props:{...Y,tag:"h2",...WO},style:UO,when:$O},{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:[Qs("label","value",aV,qd)]}]}]},{kind:"group",name:"Deck",props:{...B,sectionBorder:YO,sectionPaddingTop:32},parts:[{kind:"text",key:"deck",props:{...Ie,maxWidth:760},style:{textStyle:"body-1",fontRole:"accent",...U("body",22,19),italic:!0,lineHeight:1.5}}]}],drop:{...me,...Ce,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"}}),jO={top:80,bottom:40,topPhone:60,bottomPhone:32},sV={...U("label",13),letterSpacing:.18,lineHeight:1.8},KO={...U("label",13),letterSpacing:.22,lineHeight:1.9},lV=()=>({name:"Issue Header",boxProps:e=>({...se,direction:"column",gap:0,sectionBorder:{bottom:1},...ye(e,jO)}),box:[...pe,..._e(jO)],parts:[{kind:"group",name:"Top",props:{...B,direction:"row",align:"end",justify:"between",gap:60,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[tI("Eyebrow",14,14,de("eyebrow",U("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:[Qs("lead","rest",sV)]}]}]},{kind:"group",name:"Bottom",props:{...B,direction:"row",align:"start",justify:"between",gap:60,gapPhone:16,share:"content",sectionBorder:YO,sectionPaddingTop:32},parts:[{kind:"text",key:"lead",props:{...Y,maxWidth:720,...VO},style:{textStyle:"body-1",fontRole:"heading3",...U("headingSmall",20),lineHeight:1.5,letterSpacing:-.005,paragraphSpacing:16}},{kind:"group",name:"In this issue",props:{...B,align:"stretch",gap:0},parts:[tI("Heading",6,6,{kind:"text",key:"issueHeading",props:{...Y,align:"right",...qd},style:{textStyle:"body-1",fontRole:"heading",...U("body",18),weight:400,letterSpacing:-.01,lineHeight:1.9,...Js}}),{kind:"group",name:"Lines",props:{...B,align:"stretch",gap:0},parts:[{kind:"list",key:"issueList",name:"Line",flat:!0,parts:[zO("text",{color:"labels",...KO})]}]},zO("issueTotal",KO)]}]}],drop:{...me,...Ce}}),qO={top:24,bottom:24,topPhone:16,bottomPhone:16},oI={color:"labels",...U("label",13),letterSpacing:.2},XO=e=>(Array.isArray(e.items)?e.items:[]).filter(o=>o&&typeof o.label=="string"&&o.label.trim()!==""),rI=(e,o)=>o!==void 0&&XO(e).at(-1)===o,ZO=(e,o)=>o!==void 0&&XO(e).includes(o),iV=(e,o)=>ZO(e,o)&&!rI(e,o)&&je(o?.href),cV=()=>({name:"Breadcrumb",skip:e=>je(e.meta)?'a trailing note after "\xB7" needs a second mark; none live':void 0,boxProps:e=>({...se,...ta,gap:16,gapPhone:16,separator:"slash",sectionBorder:{bottom:1},...ye(e,qO)}),box:[...pe,..._e(qO)],parts:[{kind:"list",key:"items",name:"Crumb",flat:!0,parts:[{kind:"button",key:"label",href:"href",variant:"ghost",when:iV,props:{...Xe,..._t,icon:"none"},style:oI},{...de("label",oI),when:(e,o)=>ZO(e,o)&&!rI(e,o)&&!je(o?.href)},{...de("label",{...oI,color:"text"}),when:rI}]}],drop:{...me,...Ce,meta:"a node that stores a note is skipped (`skip`); an empty one draws nothing"}}),JO={DocMasthead:nV(),Masthead:lV(),Breadcrumb:cV()};import{jsx as la,jsxs as nI}from"react/jsx-runtime";import{slugify as dV}from"efficient-shell/format";import{jsx as aI,jsxs as QO}from"react/jsx-runtime";var SEe="sticky top-[120px]";var e_=(e,o)=>e?{[oc]:o}:{},o_=(e,o)=>tc(e?.[Bp(o)]?.role,Vc[o],ha),t_=120;function r_({title:e,entries:o,stickyTop:t,sticky:r=!0,editing:a=!1,partStyles:n}){return QO("aside",{className:`${r?"sticky ":""}flex flex-col self-start max-[900px]:static`,style:r?{top:t}:void 0,children:[e&&aI("h4",{className:"mb-[18px] font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:xo(e)}),o.map((s,l)=>QO("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:[aI("span",{...e_(a,"entry"),style:o_(n,"entry"),children:xo(s.label||"Section")}),aI("span",{...e_(a,"number"),style:o_(n,"number"),className:"text-accent",children:Qa(l)})]},`${l}-${s.anchor}`))]})}function fV(e,o){return dV(e)||`section-${o+1}`}var sI=e=>typeof e=="string"&&e.trim()!=="";function lI(e){return(e??[]).filter(o=>sI(o.heading)||sI(o.label)||sI(o.body))}function iI(e){let o=new Set;return e.map((t,r)=>{let a=fV(t.label||t.heading||"",r),n=a,s=2;for(;o.has(n);)n=`${a}-${s++}`;return o.add(n),n})}function cI(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=Tn(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 uV=()=>[{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.")}],pV=t_;function MEe({tocTitle:e,sections:o,editing:t=!1,stickyTop:r=pV}){let a=lI(o);if(a.length===0&&!t)return null;let n=a.length===0&&t?uV():a,s=iI(n);return la("section",{className:"relative z-[2] bg-bg",children:nI("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:[la(r_,{title:e,entries:n.map((l,c)=>({label:l.label||"Section",anchor:s[c]})),stickyTop:r}),la("div",{className:"flex flex-col gap-16",children:n.map((l,c)=>nI("article",{id:s[c],className:"flex flex-col gap-[18px]",style:{scrollMarginTop:r},children:[nI("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:[Qa(c)," \xB7 ",xo(l.label||"Section")]}),l.heading&&la("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:xo(l.heading)}),cI(l.body??"").map((d,u)=>d.type==="ul"?la("ul",{className:"flex max-w-[680px] list-none flex-col gap-2.5 pl-0",children:d.items.map((h,p)=>la("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:xo(h)},p))},u):la("p",{className:"max-w-[680px] font-serif text-[length:var(--size-body,17px)] leading-[1.7] text-fg-dim",children:xo(d.text)},u))]},s[c]))})]})})}var a_={top:80,bottom:80,topPhone:60,bottomPhone:60},n_=18,s_=18,l_=8,mV=10,dI=e=>typeof e=="string"&&e.trim()!=="",i_=e=>lI(e.sections),hV=e=>cI(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}),fI={textStyle:"body-5",...U("label",12),case:"upper",letterSpacing:.3,color:"accent",lineHeight:1.5},c_={textStyle:"body-1",fontRole:"accent",...U("body",17)},xV=[de("label",fI),{...de("title",fI),when:(e,o)=>!dI(o?.label)},{kind:"block",type:"Text",when:(e,o)=>!dI(o?.label)&&!dI(o?.title),props:{...Y,text:"Section",_partStyles:{text:fI}}},{kind:"group",name:"Heading",props:{...B,sectionPaddingBottom:l_,sectionPaddingBottomPhone:l_},parts:[{kind:"group",name:"Heading line",props:{...B,sectionBorder:{bottom:1},sectionPaddingBottom:s_,sectionPaddingBottomPhone:s_},parts:[{kind:"text",key:"heading",role:"heading",props:Y,style:{textStyle:"heading-2",...Bo("headingMedium",28,3.5,44),case:"upper",weight:500,lineHeight:1.04,letterSpacing:-.025}}]}]},{kind:"list",key:"body",name:"Body",flat:!0,of:hV,parts:[{kind:"text",key:"text",props:Ie,style:{...c_,lineHeight:1.7},when:(e,o)=>o?.kind==="p"},{kind:"text",key:"text",props:Ie,style:{...c_,lineHeight:1.65,paragraphSpacing:mV},when:(e,o)=>o?.kind==="ul"}]}],IV={name:"Document Text",boxProps:e=>({...se,direction:"row",gap:80,gapPhone:40,sectionBorder:{bottom:1},...ye(e,a_)}),box:["anchor","sectionAccent","_hidden",..._e(a_)],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=>i_(e),props:{...B,gap:n_,gapPhone:n_},item:(e,o,t)=>({props:{anchor:iI(i_(t))[o]??`section-${o+1}`}}),parts:xV}]}],reads:{tocTitle:"the Contents block's Heading"},drop:{...me,stickyTop:"the Contents block draws DocBody's default (120px); 0 live nodes store it"}},d_={DocBody:IV};var gV="overlay",bV=[{label:"Copy over image",value:"overlay"},{label:"Copy above image",value:"stacked"}];function f_(e){return eo(bV,gV,e)}var jEe={desktop:40,mobile:45,min:20,max:80,step:5};function KEe(e,o){return`${typeof e=="number"?e:o}%`}var u_=(e,o)=>{let t=$(e),r=$(o);return{...t===void 0?{}:{size:t},...r===void 0?{}:{sizePhone:r}}},yV=e=>f_(e.layout)==="stacked",p_=e=>Math.min(Math.max($(e.overlay)??60,0),100),Vd=e=>$(e)??100,SV={textStyle:"heading-1",sizeToken:{...Bo("headingLarge",48,7,96).sizeToken,pxPhone:36},weight:500,lineHeight:.95,letterSpacing:-.03},wV=[de("eyebrow",U("label",14)),...[!0,!1].map(e=>({kind:"text",key:"title",role:"heading",props:Y,style:{...SV,case:e?"upper":"none"},styleFrom:o=>u_(o.titleSizeDesktop,o.titleSizeMobile),when:o=>o.uppercase===!0===e})),{kind:"text",key:"body",props:{...Ie,maxWidth:560},style:{textStyle:"body-1",...U("body",17,16),lineHeight:1.6,paragraphSpacing:24},styleFrom:e=>u_(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:Xe}]}],m_=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)`,CV=()=>({name:"Scroll-Over Text",skip:e=>yV(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=>({...se,direction:"column",justify:"center",align:"start",gap:24,gapPhone:24,share:"content",...tl,placement:"left",darken:p_(e),darkenStyle:"even",sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:Vd(e.heightDesktop),sectionHeightModePhone:"fixed",sectionHeightUnitPhone:"%",sectionHeightValuePhone:Vd(e.heightMobile)}),box:[...pe.filter(e=>!String(typeof e=="string"?e:e[0]).startsWith("sectionHeight")),["imageSrc","bgImage"],["imageSrcMobile","bgImagePhone"],["overlay","darken",(e,o)=>p_(o)],["heightDesktop","sectionHeightValue",e=>Vd(e)],["heightMobile","sectionHeightValuePhone",e=>Vd(e)]],parts:wV,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:m_("Button color"),buttonTextColor:m_("Button text color"),...me}}),I_={textStyle:"heading-2",...U("headingMedium",56,36),weight:400,lineHeight:1.05,letterSpacing:-.03},vV={textStyle:"body-1",...U("body",16),lineHeight:1.7},g_=e=>({kind:"text",key:"body",props:{...Ie,maxWidth:520},style:{...vV,paragraphSpacing:e}}),Xd={top:0,bottom:0,topPhone:0,bottomPhone:0},uI=(e,o)=>typeof e.sectionHeightMode=="string"&&e.sectionHeightMode!=="auto"?{}:{sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:o,sectionHeightModePhone:"auto"},kV=(e,o)=>{let t=uI(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"}},b_={boxShapePhone:"landscape"},y_="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)",PV=(e,o)=>({[e]:o,[`${e}Phone`]:o}),TV={textStyle:"heading-2",...U("headingMedium",40),weight:500,case:"none",lineHeight:1,letterSpacing:-.02},h_=e=>(Array.isArray(e.stats)?e.stats:[]).filter(o=>o&&(String(o.value??"").trim()!==""||String(o.label??"").trim()!=="")),EV=()=>({name:"Brand Text",boxProps:(e,o)=>({...se,...ho("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...ye(e,Xd),...uI(e,100)}),box:[...pe,..._e(Xd)],parts:[{kind:"group",name:"Words",props:(e,o)=>({...B,justify:"center",gap:28,gapPhone:28,sectionBorder:rl({right:1}),sectionBorderPhone:rl({}),...tl,sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60,sectionPaddingRight:pn(o)}),parts:[de("eyebrow",U("label",14)),{kind:"text",key:"heading",role:"heading",props:Y,style:{...I_,case:"none"},mark:"accentItalic"},g_(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(h_(e).length,1),3),...PV("sectionBorder",rl({top:1})),sectionPaddingTop:28,sectionPaddingTopPhone:28}),parts:[{kind:"list",key:"stats",name:"Stat",of:h_,props:{...B,gap:4,gapPhone:4},parts:[{kind:"text",key:"value",props:un,style:TV},de("label",{...U("label",13),color:"labels",letterSpacing:.2})]}]}]}]},vx("Picture","imageSrc",b_)],drop:{...me,grayscale:y_,...Ce}}),Yd=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}},OV=e=>e.textAlign==="center"?"center":e.textAlign==="right"?"end":"stretch",_V=e=>Math.min(Math.max($(e.overlay)??60,0),100),S_=e=>typeof e=="string"&&e.trim()!=="",RV={...Xe,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},x_=e=>({...vx("Picture","imageSrc",(o,t)=>({...S_(o.imageSrc)?{darken:40,darkenStyle:"even"}:{},placement:"center",...b_,sectionBorder:rl(e?{left:1}:{right:1}),...w_(e?"left":"right",pn(t))}),[{kind:"button",key:"imageBtnText",href:"imageBtnHref",variant:"ghost",props:RV,style:{textStyle:"body-5",...U("label",13,12),case:"upper",letterSpacing:.18}}]),when:o=>o.reverse===!0===e}),w_=(e,o)=>{let t=Math.max(60-o,0);return{sectionPaddingLeft:e==="left"?60:t,sectionPaddingRight:e==="right"?60:t}},FV={kind:"group",name:"Words",props:(e,o)=>{let t=e.reverse===!0;return{...B,justify:"center",align:OV(e),placement:e.textAlign==="center"?"center":e.textAlign==="right"?"right":"left",...kV(e,72),gap:24,gapPhone:24,...S_(e.textBgSrc)?{darken:_V(e),darkenStyle:"even"}:{},...tl,sectionPaddingTop:100,sectionPaddingBottom:100,...w_(t?"right":"left",pn(o)),sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60}},box:[["textBgSrc","bgImage"]],parts:[{...de("eyebrow",U("label",14)),styleFrom:Yd},{kind:"text",key:"title",role:"heading",props:Y,style:I_,styleFrom:e=>({case:e.uppercase===!0?"upper":"none",...Yd(e)})},{...g_(24),styleFrom:Yd},{kind:"group",name:"Button",props:{...B,sectionPaddingTop:8,sectionPaddingTopPhone:8},parts:[{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:e=>{let o=Yd(e);return{...Xe,...o.align?{align:o.align}:{},...o.alignPhone?{alignPhone:o.alignPhone}:{}}}}]}]},AV=()=>({name:"Image & Text Split",boxProps:(e,o)=>({...se,...ho("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...ye(e,Xd),...uI(e,72)}),box:[...pe,..._e(Xd)],parts:[x_(!1),FV,x_(!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:y_,...me,...Ce}}),C_={IntroBleed:CV(),Manifesto:EV(),Split:AV()};var v_={top:72,bottom:72,topPhone:72,bottomPhone:72},LV={name:"Editorial Text",boxProps:e=>({...se,direction:"column",gap:28,gapPhone:28,sectionBorder:{top:1},...ye(e,v_)}),box:[["topBorder","sectionBorder",e=>e===!1?void 0:{top:1}],...pe,..._e(v_)],parts:[ft("Prose"),{kind:"text",key:"body",props:Ie,style:{textStyle:"body-1",...U("body",16),lineHeight:1.7,paragraphSpacing:18}}],drop:{...me,...Ce,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)"}},k_={buttonPaddingTop:20,buttonPaddingBottom:20,buttonPaddingLeft:28,buttonPaddingRight:28},P_=(e,o)=>o?.variant==="primary",T_=(e,o)=>({kind:"list",key:"buttons",name:"Button",flat:!0,when:e,parts:[{kind:"button",key:"label",href:"href",when:P_,variant:"primary",style:{letterSpacing:.3},props:{...Xe,...k_,...o}},{kind:"button",key:"label",href:"href",when:(t,r)=>!P_(t,r),variant:"ghost",style:{letterSpacing:.3},props:(t,r)=>({...Xe,...k_,...o,...ol(t,r)})}]}),Zd=e=>je(e.title),BV={name:"Call-to-Action Heading",boxProps:e=>({...se,direction:"row",align:"center",justify:Zd(e)?"between":"end",gap:60,gapPhone:60,share:"content",sectionBorder:{bottom:1},...bo(e,"TitleWithButtons")}),box:[...pe,...or("TitleWithButtons")],parts:[{kind:"group",name:"Title",props:{...B,maxWidth:1e3,widthFitPhone:"fill"},parts:[{kind:"text",key:"title",role:"heading",props:Y,style:{textStyle:"heading-1",...Bo("headingLarge",48,7,108),case:"upper",lineHeight:.94,letterSpacing:-.035}}]},{kind:"group",name:"Buttons",props:e=>({...B,gap:14,gapPhone:14,widthFitPhone:"fill",...Zd(e)?{minWidth:280,minWidthPhone:0}:{}}),parts:[T_(Zd,{widthFit:"fill",iconPosition:"end"}),T_(e=>!Zd(e),{})]}],drop:{...me,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 DV(e){let{siteGutter:o,siteGutterPhone:t}=e.site??{},r=pn(e),a=Math.min(20,$i(t)??ji(o));return{sectionPaddingLeft:r,sectionPaddingRight:r,sectionPaddingLeftPhone:a,sectionPaddingRightPhone:a}}var E_={top:40,bottom:64,topPhone:24,bottomPhone:36},NV={name:"Section Header",boxProps:(e,o)=>({...se,direction:"column",gap:0,...ye(e,E_),...DV(o)}),box:[...pe,..._e(E_)],parts:[ft("SectionHeader")],drop:{...me,...Ce,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"}},O_={...B,direction:"row",share:"bigLeft",gap:30},__={...B,sectionPaddingLeft:30,sectionPaddingLeftPhone:0},R_=(e,o,t)=>({kind:"group",name:e,props:o,parts:[t]}),MV={name:"Lead Text",boxProps:e=>({...se,direction:"column",gap:40,gapPhone:40,sectionBorder:{bottom:1},...bo(e,"ParagraphsA")}),box:[...pe,...or("ParagraphsA")],parts:[{kind:"group",name:"Numbers",props:{...O_,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:[de("eyebrow",{color:"labels",...U("label",12),letterSpacing:.24})]},R_("Stats column",B,{kind:"group",name:"Stats",props:{...__,gap:0,gapPhone:0},parts:[{kind:"list",key:"stats",name:"Stat",flat:!0,parts:[Qs("value","label",{...U("label",13),letterSpacing:.18,lineHeight:1.8})]}]})]},{kind:"group",name:"Words",props:{...O_,gapPhone:28},parts:[{kind:"group",name:"Lead",props:B,parts:[{kind:"group",name:"Measure",props:{...B,maxWidth:780},parts:[{kind:"text",key:"lead",props:Y,style:{textStyle:"heading-3",...U("headingSmall",22,20),weight:400,case:"none",lineHeight:1.45,letterSpacing:-.005}}]}]},R_("Note column",{...B,justify:"end",widthFit:"fill"},{kind:"group",name:"Founders",props:{...__,gap:8,gapPhone:8},parts:[{kind:"group",name:"Note",props:{...B,gap:6,gapPhone:6},parts:[{kind:"text",key:"foundersHeading",props:Y,style:{textStyle:"body-1",fontRole:"heading",...U("body",18,16),weight:500,letterSpacing:-.01,lineHeight:1.7}},{kind:"text",key:"foundersBody",props:Ie,style:{textStyle:"body-5",fontRole:"heading",...U("body",14,12),lineHeight:1.7}}]},de("attribution",{...U("label",12,10),letterSpacing:.24,lineHeight:1.7})]})]}],drop:{...me}},F_={top:24,bottom:24,topPhone:24,bottomPhone:24},HV={name:"Banner",boxProps:e=>({...se,direction:"column",gap:0,...ye(e,F_)}),box:[...pe,"contained",..._e(F_)],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($(e)??60,0),100)]],parts:[{kind:"group",name:"Words",props:{...B,gap:20},parts:[de("eyebrow"),{kind:"text",key:"title",role:"heading",props:{...Y,maxWidth:680},style:{weight:500,lineHeight:1.05,letterSpacing:-.03,case:"none"}},{kind:"text",key:"body",props:{...Ie,maxWidth:680},style:{textStyle:"body-1",lineHeight:1.6},was:{size:16}}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:Xe}]}],drop:{...me,...Ce}},pI={Prose:LV,TitleWithButtons:BV,SectionHeader:NV,ParagraphsA:MV,Banner:HV};function m1e(){Ao(pI),Ao(fO),Ao(hO),Ao(sO),Ao(bO),Ao(wO),Ao(NO),Ao(HO),Ao(JO),Ao(d_),Ao(C_)}import{isNodeList as zV}from"efficient-easel/data";var y1e=Object.keys(pI);function A_(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]=zV(n)?n.map(s=>A_(s,o,t)):n;return r.id=t(e.type),{type:e.type,props:r}}function mI(e,o,t=0){return(r,a)=>{let{nodes:n}=ix({type:e,props:{...r(e),id:a(e)}},o);return A_(n[t],r,a)}}function WV(e,o){if(!Q0(e,o))return null;let t=Sd(e);return t?mI(e,t):null}function Jd(e,o=zs){return n1(e)??WV(e,o)}import{blockTypesIn as mR}from"efficient-easel/screen/lib/document/block-types-in";import{jsx as At,jsxs as cR}from"react/jsx-runtime";import{createContext as DY,useContext as NY,useState as MY}from"react";import{jsx as In,jsxs as $_}from"react/jsx-runtime";import{useEffect as II,useRef as cY,useState as fl}from"react";import{jsx as xn}from"react/jsx-runtime";import{Component as jV,createContext as KV,lazy as O1e,Suspense as _1e,useContext as qV}from"react";var GV="hrefRewrite";function UV(){return er("efficient.link-href-rewrites",()=>({rewrites:new Map,count:0,missed:new Set}))}function $V(){return typeof process<"u"&&!0}function C1e(e){let o=e?.[GV];return typeof o=="string"?o.trim():""}function L_(e){if(!e)return null;let o=UV(),t=o.rewrites.get(e);return!t&&!$V()&&o.missed.add(e),t??null}var VV={Link:ZI,Image:XI},YV=KV(VV);function B_(){return qV(YV)}function L1e({hrefRewrite:e,...o}){let{Link:t}=B_(),r=L_(e);return r?xn(hI,{name:r.name,href:o.href,fallback:xn(t,{...o}),children:xn(XV,{Link:t,rewrite:r.rewrite,...o})},r.key):xn(t,{...o})}function XV({Link:e,rewrite:o,...t}){let r=he(o(t.href)),a=r&&Nb(r)?r:t.href;return xn(e,{...t,href:a})}var hI=class extends jV{state={failed:!1,href:this.props.href};static getDerivedStateFromProps(o,t){return o.href===t.href?null:{failed:!1,href:o.href}}static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(o){console.error(`The link href rewrite ${this.props.name} failed; the link goes where it was typed.`,o)}render(){return this.state.failed?this.props.fallback:this.props.children}};function D_(e){let{Image:o}=B_();return xn(o,{...e})}import{jsx as N_,Fragment as ZV,jsxs as JV}from"react/jsx-runtime";import{useEffect as QV,useRef as M_,useState as eY}from"react";var oY="#t=0.001",tY=2;function rY(e,o){if(e.readyState<tY||!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 H_({src:e,objectPosition:o="50% 50%",onError:t}){let r=M_(null),a=M_(null),[n,s]=eY(!1);return QV(()=>{let l=r.current,c=a.current;if(n||!l||!c)return;let d=()=>{rY(l,c)&&s(!0)};return d(),l.addEventListener("loadeddata",d),l.addEventListener("seeked",d),()=>{l.removeEventListener("loadeddata",d),l.removeEventListener("seeked",d)}},[n]),JV(ZV,{children:[N_("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&&N_("video",{ref:r,src:`${e}${oY}`,muted:!0,playsInline:!0,preload:"auto",className:"hidden",onError:t})]})}import{imageCopyUrl as W_,imageSrcSet as aY}from"efficient-shell/image-copies";var z_;function xI(){return z_===void 0?{}:{host:z_}}var z1e="(max-width: 800px) 100vw, min(100vw, 1600px)";function G_(e,{fallbackWidth:o=1280,maxWidth:t}={}){let r=aY(e,{...xI(),...t===void 0?{}:{maxWidth:t}});return r?{src:W_(e,o,xI()),srcSet:r}:{src:e}}function W1e(e){let o=W_(e,1920,xI());return o===e?`url(${e})`:`url("${o}")`}import{formatFocal as nY,parseFocal as sY}from"efficient-shell/format";var lY="sf-focus-phone",iY="--sf-focus-phone";function U_(e){if(typeof e!="string"||!/^\s*-?\d+(\.\d+)?%\s+-?\d+(\.\d+)?%\s*$/.test(e))return{className:"",style:{}};let{x:o,y:t}=sY(e);return{className:lY,style:{[iY]:nY(o,t)}}}var dY=.5;function ul({videoSrc:e,posterSrc:o,showVideo:t=!0,playbackRate:r=dY,objectPosition:a="50% 50%",objectPositionPhone:n,quiet:s=!1}){let l=U_(n),c=o||"",d=e||"",[u,h]=fl(!1),[p,x]=fl(!1),[g,y]=fl(!1),[E,_]=fl(!1),[w,I]=fl(!1),v=cY(null);II(()=>{h(!1),x(!1),y(!1),_(!1)},[e,o]),II(()=>{if(typeof window>"u")return;let F=()=>{let D=window;D.requestIdleCallback?D.requestIdleCallback(()=>I(!0),{timeout:2e3}):setTimeout(()=>I(!0),800)};if(document.readyState==="complete"){F();return}return window.addEventListener("load",F,{once:!0}),()=>window.removeEventListener("load",F)},[]),II(()=>{let F=v.current;if(!F)return;let D=()=>{F.playbackRate=r};return D(),F.addEventListener("loadedmetadata",D),()=>F.removeEventListener("loadedmetadata",D)},[e,r]);let k=JI(c),C=c&&k&&!p?G_(c):{src:c};return $_("div",{className:"absolute inset-0 z-[1]",children:[In("div",{className:"absolute inset-0",style:{background:"var(--site-surface)"}}),c&&(k?In("img",{src:C.src,...C.srcSet?{srcSet:C.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:()=>C.srcSet?x(!0):h(!0)},c):In(D_,{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&&w&&!g&&$_("video",{ref:v,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:[QI(d)&&In("source",{src:d.replace(/\.mp4$/,".av1.mp4"),type:'video/mp4; codecs="av01.0.08M.10"'}),In("source",{src:d,type:"video/mp4"})]},d),t&&s&&d&&w&&!E&&(!c||u)&&In(H_,{src:d,objectPosition:a,onError:()=>_(!0)},d)]})}import{jsx as Ft,Fragment as fY,jsxs as gI}from"react/jsx-runtime";import{hidableText as uY}from"efficient-easel/draw";var pY={one:"max-[719px]:grid-cols-1 max-[719px]:grid-rows-1",side:"max-[719px]:grid-cols-2 max-[719px]:grid-rows-1",stacked:"max-[719px]:grid-cols-1 max-[719px]:grid-rows-2"},mY={one:"view-tablet:grid-cols-1 view-tablet:grid-rows-1",side:"view-tablet:grid-cols-2 view-tablet:grid-rows-1",stacked:"view-tablet:grid-cols-1 view-tablet:grid-rows-2"};function j_(e){let o=e.isVideo&&Og(e.videoSource)==="youtube",t=e.isVideo&&_g(e.videoPlayback)==="click",r=o?Rg(uY(e.youtubeUrl)):null,a=wc(e.mediaLayout);return{fromYouTube:o,onClick:t,youTubeId:r,backgroundFile:e.isVideo&&!o&&!t,desktopLayout:a,phoneLayout:Sm(e.mediaLayoutPhone,a),twoPictures:!e.isVideo&&ts(e)>1}}function pl(e,o){return Fc(gs({_partMotion:e},o))}function Qd({color:e,opacity:o,passClicks:t=!0}){return o>0?Ft("div",{className:t?"pointer-events-none absolute inset-0 z-[2]":"absolute inset-0 z-[2]",style:{background:e,opacity:Math.min(Math.max(o,0),100)/100}}):null}function ef({part:e,editing:o,marked:t=!0,entrance:r,className:a,children:n}){let s=o&&t?{[Qv]:e}:void 0;return r?Ft(Tx,{desktop:r.desktop,phone:r.phone,editing:o,boxClass:a,boxAttrs:s,children:n}):Ft("div",{className:a,...s,children:n})}function K_({partMotion:e,editing:o,children:t}){let r=pl(e,"media");return r?Ft(Tx,{desktop:r.desktop,phone:r.phone,editing:o,boxClass:"absolute inset-0 z-[1]",children:t}):Ft(fY,{children:t})}function q_({desktopLayout:e,phoneLayout:o,editing:t,marked:r=!0,partMotion:a,first:n,second:s}){return gI("div",{className:`absolute inset-0 z-[1] grid ${pY[o]} ${mY[e]}`,"data-hero-layout":e,"data-hero-layout-phone":o,children:[gI(ef,{part:"image",editing:t,marked:r,entrance:pl(a,"image"),className:"relative overflow-hidden",children:[Ft(ul,{posterSrc:Nt(n.src),showVideo:!1,objectPosition:n.objectPosition,objectPositionPhone:n.objectPositionPhone}),Ft(Qd,{color:n.tintColor,opacity:n.tintOpacity})]}),gI(ef,{part:"image2",editing:t,marked:r,entrance:pl(a,"image2"),className:`relative overflow-hidden${o==="one"?" max-[719px]:hidden":""}${e==="one"?" view-tablet:hidden":""}`,children:[Ft(ul,{posterSrc:Nt(s.src),showVideo:!1,objectPosition:s.objectPosition,objectPositionPhone:s.objectPositionPhone}),Ft(Qd,{color:s.tintColor,opacity:s.tintOpacity})]})]})}import{jsx as ia,Fragment as hY,jsxs as xY}from"react/jsx-runtime";import{useEffect as IY,useState as gY}from"react";import{PlaySolidIcon as bY}from"efficient-shell/icons/efficient-looks";function V_({youTubeId:e,ownPoster:o,background:t,editing:r}){let[a,n]=gY("large");return IY(()=>n("large"),[e]),e?xY(hY,{children:[!o&&a!=="none"&&ia("img",{src:a==="large"?Fg(e):Ag(e),alt:"",className:"absolute inset-0 z-[2] h-full w-full object-cover",onLoad:s=>{a==="large"&&s.currentTarget.naturalWidth<=120&&n("small")},onError:()=>n(a==="large"?"small":"none")},`${e}-${a}`),t&&!r&&ia("div",{className:"pointer-events-none absolute inset-0 z-[3] overflow-hidden [container-type:size]","aria-hidden":"true",children:ia("iframe",{src:Rf(e,"background"),title:"",tabIndex:-1,allow:"autoplay; encrypted-media; picture-in-picture",className:"absolute left-1/2 top-1/2 h-[max(100%,56.25cqw)] w-[max(100%,177.78cqh)] -translate-x-1/2 -translate-y-1/2 border-0"})})]}):null}function Y_({youTubeId:e,fileSrc:o,playing:t,onPlay:r,editing:a}){return!e&&!o?null:t&&!a?e?ia("iframe",{src:Rf(e,"click"),title:Ff,allow:"autoplay; encrypted-media; picture-in-picture; fullscreen",allowFullScreen:!0,className:"absolute inset-0 z-[6] h-full w-full border-0 bg-overlay-scrim"}):ia("video",{src:o,controls:!0,autoPlay:!0,playsInline:!0,className:"absolute inset-0 z-[6] h-full w-full bg-overlay-scrim object-contain"}):ia("button",{type:"button","aria-label":Ff,onClick:a?void 0:r,className:`absolute left-1/2 top-1/2 z-[4] grid h-16 w-16 -translate-x-1/2 -translate-y-1/2 place-items-center rounded-full bg-btn text-btn-ink shadow-lg transition-transform motion-reduce:transition-none ${a?"pointer-events-none":"cursor-pointer hover:scale-105"}`,children:ia(bY,{size:28})})}var X_=["top","middle","bottom"],Z_=["left","center","right"],J_="bottom",Q_="left",yY={top:"Top",middle:"Middle",bottom:"Bottom"},SY={left:"Left",center:"Center",right:"Right"},hOe="Up and down",xOe="Sideways",wY={top:"flex-start",middle:"center",bottom:"flex-end"},CY={left:"flex-start",center:"center",right:"flex-end"},vY="--sf-hero-phone-y",kY="--sf-hero-phone-x";function PY(e){return X_.includes(e)?e:J_}function TY(e){return Z_.includes(e)?e:Q_}function eR(e,o){let t=PY(e),r=TY(o),a={};return t!==J_&&(a[vY]=wY[t]),r!==Q_&&(a[kY]=CY[r]),a}function IOe(){return X_.map(e=>({label:yY[e],value:e}))}function gOe(){return Z_.map(e=>({label:SY[e],value:e}))}import{hexToRgb as EY}from"efficient-shell/format";var OY=!0;var _Y=[[0,".5"],[30,".1"],[60,".1"],[100,".85"]];function oR(e){let o=EY(e);return o?`${o.r},${o.g},${o.b}`:null}function tR(e){return e==null?OY:e!==!1}function rR(e){let o=(e?oR(e):null)??oR(Oo);return`linear-gradient(180deg, ${_Y.map(([t,r])=>`rgba(${o},${r}) ${t}%`).join(", ")})`}import{hexToRgb as aR}from"efficient-shell/format";var nR="bottom";var RY=[{label:"Bottom",value:"bottom",cell:"bottom"},{label:"Top",value:"top",cell:"top"},{label:"Left",value:"left",cell:"left"},{label:"Right",value:"right",cell:"right"}],FY={bottom:180,top:0,left:270,right:90},AY=[[.55,0],[.15,18],[null,35],[null,55],[.85,100]],LY=[[null,33],[.6,67],[.94,100]];function BY(e,o){let{r:t,g:r,b:a}=aR(e)??aR(Oo);return`rgba(${t},${r},${a},${o})`}function sR(e){return eo(RY,nR,e)}function lR(e=Oo,o=nR){let t=sR(o),r=(t==="top"||t==="bottom"?AY:LY).map(([a,n])=>`${a===null?"transparent":BY(e,a)} ${n}%`);return`linear-gradient(${FY[t]}deg, ${r.join(", ")})`}function iR(e,o){let t=he(e.overlayColor),r=he(e.overlayPosition);return!t&&!r?{own:!1,color:he(o)??Oo,position:null}:{own:!0,color:t??Oo,position:sR(r)}}var HY=DY({});function HOe({name:e,process:o,mediaType:t="video",mediaSrc:r,videoSpeed:a,poster:n,objectPosition:s,objectPositionPhone:l,tintColor:c=Oo,tintOpacity:d=0,groups:u,editing:h=!1,themeClassName:p,themeStyle:x,overlayColor:g,overlayPosition:y,mediaLayout:E,mediaLayoutPhone:_,mediaImage2:w,objectPosition2:I,objectPosition2Phone:v,tintColor2:k=Oo,tintOpacity2:C=0,videoSource:F,youtubeUrl:D,videoPlayback:T,partMotion:R}){let{alignment:N="left",textureOpacity:b,textureOn:O,textureColor:A,quietVideo:H,phoneUpDown:G,phoneSideways:X,holdReel:K,reelHeld:Re}=NY(HY),le=t==="video",Ue=le?Nt(r):void 0,Be=le?Nt(n):Nt(r)??Nt(n),ke=typeof a=="number"?a/100:1,{fromYouTube:fe,onClick:ge,youTubeId:Ke,backgroundFile:qe,desktopLayout:ae,phoneLayout:Fe,twoPictures:ro}=j_({isVideo:le,videoSource:F,videoPlayback:T,youtubeUrl:D,mediaLayout:E,mediaLayoutPhone:_}),[Pe,De]=MY(!1);Pe&&Re===!1&&De(!1);let Io=!Pe,So=iR({overlayColor:g,overlayPosition:y},A),wo=le?null:pl(R,"image"),M=At(ul,{videoSrc:qe?Ue:void 0,posterSrc:Be,showVideo:qe,playbackRate:ke,objectPosition:s,objectPositionPhone:le?void 0:l,quiet:H});return cR("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":qe&&Ue?"video":"still",children:[At(K_,{partMotion:R,editing:h,children:ro?At(q_,{desktopLayout:ae,phoneLayout:Fe,editing:h,marked:!1,partMotion:R,first:{src:r,objectPosition:s,objectPositionPhone:l,tintColor:c,tintOpacity:d},second:{src:w,objectPosition:I,objectPositionPhone:v,tintColor:k,tintOpacity:C}}):fe||wo?cR(ef,{part:le?"media":"image",editing:h,marked:!1,entrance:wo,className:"absolute inset-0 z-[1]",children:[M,fe&&At(V_,{youTubeId:Ke,ownPoster:!!Be,background:!ge,editing:h})]}):M}),ge&&At(Y_,{youTubeId:Ke,fileSrc:fe?void 0:Ue,playing:Pe,onPlay:()=>{De(!0),K?.()},editing:h}),Io&&!ro&&At(Qd,{color:c,opacity:d,passClicks:!1}),Io&&tR(O)&&At("div",{className:"absolute inset-0 z-[2]",style:{background:So.own?lR(So.color,So.position??void 0):rR(So.color),...b!==void 0?{opacity:b/100}:null}}),Io&&At("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:{...uy,...eR(G,X)},children:u&&At(u,{className:"sf-hero-group-zone",minEmptyHeight:160})})]})}var dR=Array.from({length:3},(e,o)=>({name:`Slide ${o+1}`,process:"Category",mediaType:"image",mediaVideo:"",poster:""}));import{newNodeId as uR}from"efficient-easel/draw";var zY="ImageBlock",WY=3,of=(e,o,t={})=>({type:e,props:{...o?.(e)??{},id:uR(e),...t}}),GY=e=>({...e?.(Q)??{},direction:"column",[Qt]:[of(zY,e),of(Q,e,{direction:"column",[Qt]:[of("Text",e,Fo()),of("Text",e)]})]}),ut={Hero:{slot:"slides",childType:"HeroSlide",addLabel:"Add slide",slider:!0,seeds:()=>dR.map(e=>({...e}))},HeroSlide:{slot:"groups",childType:"HeroGroup",addLabel:`Add ${Pt.toLowerCase()}`,seeds:()=>[],addBlocked:Al,notice:Jf},HeroSingle:{slot:"boxes",childType:"HeroGroup",addLabel:`Add ${Pt.toLowerCase()}`,seeds:()=>[],addBlocked:Al,notice:Jf},ProcessSteps:{slot:"boxes",childType:Q,addLabel:`Add ${Pt.toLowerCase()}`,seeds:e=>Array.from({length:WY},()=>GY(e)),skipSeed:e=>Array.isArray(e.steps)&&e.steps.length>0}},fR=1,UY={slot:bm,childType:Q,addLabel:`Add ${Pt.toLowerCase()}`,seeds:()=>[],addBlocked:e=>e.length>=fR?"This Hero has its Scrolling Bar already. Delete it to add another.":null,notice:e=>e.length>fR?`This Hero holds ${e.length} Scrolling Bars. Keep one and delete the others.`:null},pR={Hero:{[bm]:UY}};function VOe(e){for(let[o,t]of Object.entries(e)){if(o in ut&&ut[o]!==t)throw new Error(`lib/document/slot-specs: "${o}" already has a slot spec`);ut[o]=t}}function YOe(e,o){let t=ut[e];return t?{slot:t.slot,children:t.seeds(o).map(r=>({type:t.childType,props:{id:uR(t.childType),...r}}))}:null}var hR=()=>({}),xR=new Map;function $Y(e){let o=xR.get(e);if(o)return o;let t=new Set,r=ut[e];if(r)for(let s of r.seeds(hR))for(let l of mR({type:r.childType,props:s}))t.add(l);let a=Jd(e);if(a){let s=0;for(let l of mR(a(hR,c=>`${c}-${s+=1}`)))t.add(l)}t.delete(e);let n=[...t].sort();return xR.set(e,n),n}function jY(e){if(!e||!e.sets&&!e.allow&&!e.deny?.length)return null;let o=Eh(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=gP(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)&&$Y(c).every(l);return s.set(c,u),u};return{sets:o,offers:l}}var KY="block-offer";function bI(e=IR()){return e.cache(KY,()=>jY(Hl(e)))}function gR(e,o=IR()){let t=bI(o);return t?t.offers(e):!0}function bR(e,o=0,t,r){let a=VY(YY(e,o,r),t),n=a?bI():null;return a&&n?qY(a,n):a}function qY(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 VY(e,o){if(!e||e.source!=="container"||!o||!CP())return e;let t=TP({data:o.data},o.id),r=typeof t?.type=="string"?vP(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 YY(e,o,t){let r=t?pR[e]?.[t]:void 0;if(r)return{source:"section",slot:r.slot,choices:null,spec:r};let a=ut[e];if(a)return{source:"section",slot:a.slot,choices:null,spec:a};let n=SP(e,o);if(n)return{source:"container",slot:n.slot,choices:n.choices,spec:null};let s=JT(e);return s?{source:"footer",slot:ZT,choices:s,spec:null}:null}function yR(e){return Ih(e.type)?[{slot:xh,label:i(wP),rung:!0}]:null}import{useSyncExternalStore as XY}from"react";var yI=null,SI=new Set;function SR(e){if(yI!==e){yI=e;for(let o of SI)o()}}function ZY(e){return SI.add(e),()=>{SI.delete(e)}}function x_e(){return XY(ZY,()=>yI,()=>null)}function wR(e){return Cn(e)?.ownerId??null}function CR(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 vR=(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 kR="sf-editor-left-view";function PR(){if(typeof window>"u")return"pages";try{let e=window.localStorage.getItem(kR);return e==="sections"||e==="styles"?e:"pages"}catch{return"pages"}}function TR(e){if(!(typeof window>"u"))try{window.localStorage.setItem(kR,e)}catch{}}function ER(e,o){return e==="styles"&&!o?"sections":e}function OR(e,o){return e?"sections":o}var JY=new Set(["BookingBox","SubmitBox"]);function QY(e){return typeof e=="string"&&JY.has(e)}var eX=NT(QY,jT);function _R(e,o){return eX(e)||_u(o)}import{copyNode as oX}from"efficient-easel/data";function RR(e){let o=typeof e?.props?.id=="string"?e.props.id:null,t=Tt(),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 FR={usedOn:e=>{let o=Tt(),t=o?.sectionOf(e.props.id)??null;return!o||!t?null:o.usedOn(t)??[]},openPage:e=>ad()?.openPage(e),adopt:(e,o)=>Tt()?.adopt(e.props.id,o),nodeOf:e=>Tt()?.place(e)??null,detach:e=>{let o=ad()?.config;return o?oX(e,o):e},removed:()=>ad()?.reload()};import{sharedSectionsOf as iZ}from"efficient-easel/screen/lib/shared-sections";import{scrollPreviewToSection as cZ,scrollPreviewToTop as sF}from"efficient-easel/screen/lib/document/preview-dom";import{jsx as vI,Fragment as OX,jsxs as _X}from"react/jsx-runtime";import{useEffect as RX,useMemo as $R,useRef as jR}from"react";import{EaselCanvas as FX,useEaselApi as AX}from"efficient-easel/easel";import{jsx as NR,Fragment as dX,jsxs as fX}from"react/jsx-runtime";import{useEffect as MR,useLayoutEffect as uX}from"react";var tf="data-theme",AR="light";function tX(e){return e.getAttribute(tf)===AR?"light":"dark"}function rX(e,o){return tX(e)===o?!1:(o==="light"?e.setAttribute(tf,AR):e.removeAttribute(tf),!0)}function aX(e){return yf(e).getItem(ff)}function F_e(e,o){yf(e).setItem(ff,o)}function nX(e,o,t=new Date().getHours()){return FI({mode:o.mode,override:aX(e),switchShown:o.switchShown,hour:t})}function LR(e,o){let t=e.documentElement;if(!t)return()=>{};let r=()=>rX(t,nX(e,o));r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[tf]}),()=>n.disconnect()}var sX="style";function lX(e,o){let t=HI(o),r=!1;for(let a of MI){let n=t[a]??"";e.style.getPropertyValue(a)!==n&&(n?e.style.setProperty(a,n):e.style.removeProperty(a),r=!0)}return r}function BR(e,o){let t=e.body;if(!t)return()=>{};let r=()=>lX(t,o);r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[sX]}),()=>n.disconnect()}var iX=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);`,cX="storefront-fit-words";function DR(e){let o=e.createElement("script");return o.id=cX,o.textContent=iX,(e.head??e.documentElement).appendChild(o),()=>{e.__sfFitWords?.(),o.remove()}}var pX=`
|
|
319
|
-
[${Xo}][${Xo}] { cursor: text; }
|
|
320
|
-
`;function HR({children:e,document:o}){let{theme:t,themeMode:r,themeSwitchShown:a}=ie(),n=ao(t);return MR(()=>{if(o)return LR(o,{mode:r,switchShown:a})},[o,r,a]),MR(()=>{if(o)return BR(o,n)},[o,n]),uX(()=>{if(o)return DR(o)},[o]),fX(dX,{children:[NR(ug,{}),NR("style",{children:pX}),e]})}import{jsx as wI}from"react/jsx-runtime";import{useEffect as mX,useState as hX}from"react";import{Banner as xX}from"efficient-shell/ui";var rf={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."},IX={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."},gX=rf.load,bX=rf.lock,yX=rf.conflict,SX=rf.save;function wX(e){if(!e)return null;if(e.loadFailed)return i(gX);if(e.lockHolder)return i(bX,{name:e.lockHolder.name||i("Somebody else")});if(e.conflict)return i(yX);if(e.saveFailed)return i(SX);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(IX[o.problem],{section:t,name:r})}function CX({report:e}){let o=wX(Cd(e)),[t,r]=hX(null);return mX(()=>{o||r(null)},[o]),!o||t===o?null:wI("aside",{className:"sf-canvas-notice",children:wI(xX,{tone:"warning",onDismiss:()=>r(o),children:o})})}function zR(){return wI(CX,{report:vd()})}import{jsx as af}from"react/jsx-runtime";import{useState as WR}from"react";import{Banner as vX,Button as kX}from"efficient-shell/ui";import{UndoIcon as PX}from"efficient-shell/icons/efficient";import{useScreenDocument as TX}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSettledAction as EX}from"efficient-easel/easel";function GR(){let e=RE(),{adapter:o,flushSave:t,reloadFromServer:r}=TX(),a=o.siteVersions,[n,s]=WR(!1),[l,c]=WR(!1),d=async()=>{if(!(!a||n)){s(!0),c(!1);try{await LE({access:a,flushSave:t,reload:r})}catch{c(!0)}finally{s(!1)}}},u=EX({onPress:()=>{d()},busy:n});return e?af("aside",{className:"sf-canvas-notice",children:af(vX,{tone:l?"danger":"info",title:e.title,onDismiss:kd,action:a&&e.undo?af(kX,{variant:"secondary",size:"sm",leftIcon:af(PX,{}),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 LX}from"efficient-easel/draw/client";import{useSectionOps as BX}from"efficient-easel/screen/lib/document/use-section-ops";var UR=null;function CI(e){UR=e}function nRe(){return UR}function KR(e){let{mirrorHostStyles:o}=Cf(),t=mg(),{sectionBackgroundWidth:r,themeFromDocument:a}=ie(),n=og(),s=$R(()=>({...e.metadata??t??{},...US(a?null:r,n)}),[e.metadata,t,r,n,a]);RX(()=>(CI(n),()=>CI(null)),[n]);let l=jR(null),c=DX(l),{onDocument:d}=e,u=h=>{l.current=h,d?.(h)};return _X(OX,{children:[vI(GR,{}),vI(zR,{}),vI(FX,{...e,onDocument:u,typing:c,metadata:s,height:"fill",mirrorStyles:o,frameWrapper:HR})]})}function DX(e){let o=AX(),t=BX(),r=LX(),a=jR({ops:t,parts:r});return a.current={ops:t,parts:r},$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=UP(l,n);if(!d)return null;let u=c,h=()=>(u=$P(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?Kc(eT(p)):void 0}}:null};return{at:l=>{let c=l.closest(`[${Xo}]`),d=c?.getAttribute(Xo);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){vh(null);return}let c=l.element.closest(`[${Xo}]`)?.getAttribute(Xo)??null;vh(c),c&&a.current.parts.selectedPartId!==c&&a.current.parts.select(c)}}},[o,e])}var NX=eg.mediaFields,MX=/video|poster|focal|phone/i;function qR(e){return(NX[e]??[]).find(o=>!o.includes("[]")&&!MX.test(o))??null}var VR={adds:{kind:"block",type:"ImageBlock"},takes:e=>qR(e.type)!==null,replace:(e,o)=>{let t=qR(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 YR={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 nf}from"react/jsx-runtime";import{useState as HX}from"react";import{Button as zX,Tooltip as WX,toast as XR}from"efficient-shell/ui";import{TemplateIcon as GX}from"efficient-easel/icons";import{useSettledAction as UX}from"efficient-easel/easel";import{useScreenDocument as $X}from"efficient-easel/screen/components/ScreenDocumentContext";function JR({enabled:e,reason:o,onSaved:t}){let{flushSave:r}=$X(),[a,n]=HX(!1),s=async()=>{if(!a){n(!0);try{await r()?t():XR.error(i(ZR))}catch{XR.error(i(ZR))}finally{n(!1)}}},l=UX({onPress:()=>{s()},busy:a});return nf(WX,{side:"bottom",content:e?i("Save this website as a platform template"):i(o),children:nf("span",{className:"sf-tip-disabled",tabIndex:e?void 0:0,children:nf(zX,{variant:"secondary",disabled:!e||l.busy,loading:l.busy,onClick:l.onPress,rightIcon:nf(GX,{size:15}),children:i("Save as Template")})})})}var ZR="Your last changes did not save, so the template was not made. Try again.";var jX="Save your page changes first";function QR(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:jX}:{visible:!0,enabled:!0}:{visible:!1,hiddenReason:"no-site"}:{visible:!1,hiddenReason:"not-operator"}:{visible:!1,hiddenReason:"no-console"}}var eF="storefront-editor:save-as-template";var ml="ContactLocations",KX="CityPictures",qX="CityMaps",VX=[{key:KX,label:"City pictures",desc:"A wall of city photos, grouped by region. Each photo links to its city's card."},{key:qX,label:"City maps",desc:"A card per city, grouped by region: address, phone, hours and a map."}];function oF(e=zs){let o=Jt.find(t=>t.sections.some(r=>r.type===ml))?.key;return!e.includes(ml)||!o?[]:VX.map(({key:t,label:r,desc:a},n)=>({key:t,label:r,cat:o,after:ml,desc:a,alias:"locations offices stores branches",insert:s=>{let l=Sd(ml);return l?mI(ml,l,n)(s.nodeDefaults,s.newNodeId):null}}))}var YX="plain",tF=[{label:"Plain",value:"plain"},{label:"Filled",value:"filled"},{label:"Line",value:"line"}],XX="line",ZX={KeyFeatures:"filled"};function hl(e){return ZX[e]??YX}function WRe(e,o){return eo(tF,hl(o),e)}function GRe(e){return eo(tF,XX,e)}function rF(e,{nodeDefaults:o,newNodeId:t,sectionLabel:r,blockIsOffered:a}){let n=Jd(e);return n?n(o,t):q0(e)&&a(Q)&&a(ln)?{type:Q,props:{...o(Q),id:t(Q),direction:"column",name:`${r(e)} section`,content:[{type:ln,props:{...o(ln),id:t(ln),...mo[e]?.headStyle?{headStyle:mo[e].headStyle}:{},...mo[e]?.headRowGap?{rowGap:mo[e].headRowGap}:{},...mo[e]?.headDescriptionSize?{descriptionSize:mo[e].headDescriptionSize}:{},...hl(e)!==hl(ln)?{eyebrowLook:hl(e)}:{}}},{type:e,props:{...o(e),id:t(e),headPlacement:"own-box"}}]}}:ut[e]?.fixed===!0?{type:e,props:{...o(e),id:t(e),layout:"boxes"}}:null}import{useEffect as JX,useState as QX}from"react";import{useEaselSession as eZ}from"efficient-easel/screen/lib/session-context";function aF(){let e=eZ().chrome?.products?.list,[o,t]=QX(null);return JX(()=>{if(!e)return;let r=!1;return e().then(a=>{r||t(a)}),()=>{r=!0}},[e]),o}function mF({mode:e,open:o}){let{setSelectedHeroId:t,setSelectHandler:r}=$v(),a=uF().tree,n=e,s=n.kind==="ticker"?n.heroId:null,l=Il(c=>{c&&(o({kind:"ticker",heroId:c}),cZ(c))},[o]);return pt(()=>{t(s)},[s,t]),pt(()=>{r(l)},[r,l]),{partRows:(c,{rowClick:d})=>{let u=String(c.props.id);return c.type==="Hero"&&ym(c.props)&&to(dF,{icon:to(Wr,{type:"ticker",size:13}),name:i(os),onSelect:()=>l(u),selected:s===u,rowProps:{onClick:d(()=>l(u))},words:a})}}}function hF({mode:e,select:o}){let{setSelectedHeroPart:t,setSelectHandler:r}=Sc(),a=uF().tree,{appState:n}=fF(p=>p),s=n.data.content??[],l=oZ(s);l.current=s;let c=e,d=rs.find(p=>as[p]===c.kind),u=d&&"nodeId"in c?ns(String(c.nodeId),d):null,h=Il(p=>{let x=Jv(p);if(!x)return;let g=l.current.findIndex(E=>String(E.props.id)===x.nodeId);if(g<0)return;let y={kind:as[x.part],nodeId:x.nodeId};o({index:g},y)},[o]);return pt(()=>{t(u)},[u,t]),pt(()=>{r(h)},[r,h]),{partRows:(p,{rowClick:x})=>{let g=String(p.props.id),y=Zv(p);if(y.length===0)return null;let E=I=>{let v=ns(g,I.part);return to(dF,{icon:to(Wr,{type:I.part==="media"?"heroMedia":"heroImage",size:13}),name:i(I.label),onSelect:()=>h(v),selected:u===v,rowProps:{onClick:x(()=>h(v))},words:a},v)},[_,...w]=y;return xl(cF,{children:[E(_),w.length>0&&to(sZ,{children:w.map(E)})]})}}}function xF(e,o){return{partRows:(t,r)=>xl(cF,{children:[e.partRows?.(t,r),o.partRows?.(t,r)]})}}function dZ(e){let{adapter:o,capabilities:t,currentSlug:r,siteId:a,docId:n,hasUnsavedEdits:s,bridgeCapabilities:l,notifyParent:c,token:d}=sf(),{hasPreviewLink:u}=t,h=ze(pF()).preview?.draftLink,p=WE(e.data),x=QR({hasTrustedConsole:!!d,canCreatePlatformTemplate:l.canCreatePlatformTemplate,capabilities:t,siteId:a,hasUnsavedEdits:s}),g=Il(()=>{!a||!r||c(eF,{siteId:a,slug:r})},[c,a,r]),y=bE({pageSlug:r,siteId:a,token:d}),E=o.previewHref?.(r)??y;return{barLead:()=>x.visible&&to(JR,{enabled:x.enabled,reason:x.enabled?"":x.disabledReason,onSaved:g}),barView:()=>u&&r&&to(wE,{liveHref:E,pageId:n??null,draftLink:h}),mainAction:p}}function fZ(e,o){let{capabilities:t,templateId:r,siteId:a,tokenRef:n,navigate:s}=sf(),{hasSiteTheme:l,explainsSiteSettings:c}=t,d=I=>o.setView(I),[u,h]=nF(Ua[0].id),[p,x]=nF(!1),{surface:g,setSurface:y}=Uv(),E=()=>{if(l){d("styles"),o.reveal(),sF();return}e.show(Xh),e.reveal(),sF()},_={id:"pages",label:i("Pages"),icon:to(rZ,{}),panel:({onHide:I})=>to(Av,{activeSurface:g,onPreviewSurface:y,onNavigate:v=>{y(null),s(r?{kind:"template",id:r,pageSlug:v}:{kind:"page",slug:v,siteId:a??void 0})},onClose:I})},w=[];return!l&&c&&w.push({id:"appearance",label:i("Appearance"),icon:to(nZ,{}),active:e.kind==="website",onSelect:E}),l&&w.push({id:"styles",label:i("Styles"),icon:to(aZ,{}),panel:({onHide:I,notify:v})=>to(k0,{tokenRef:n,siteId:a??void 0,onClose:I,onNotify:v,tab:u,onTabChange:h,revealPageGroup:p,onPageGroupRevealed:()=>x(!1)})}),{railLead:[_],railTrail:w,resolveLeftView:I=>ER(I,l),openSettings:E,openStyles:()=>{h(mv),d("styles")},openPageStyles:l?()=>{h($a),x(!0),d("styles"),o.reveal()}:c?()=>{e.show(m0),e.reveal()}:void 0}}function uZ(){let{navigate:e,siteId:o,reloadFromServer:t,docId:r}=sf(),a=fF(s=>s.config),n=pF();pt(()=>(Mh({openPage:s=>e({kind:"page",slug:s.slug,siteId:o??void 0}),reload:()=>{t()},config:a}),()=>Mh(null)),[e,o,t,a]),pt(()=>{let s=Tt();if(!s||!r)return;let l=!1;return iZ(n).list().then(c=>{l||s.learn(c)}).catch(()=>{}),()=>{l=!0}},[r,n])}function pZ(e,o,t,r){let{kind:a,open:n}=e,{selected:s,zoneOf:l}=o;pt(()=>{SR(s?.type==="BookingBox"&&s.props.region==="confirm"?wR(l(String(s.props.id))):null)},[s?.props.id]);let c=K0(e,o),{capabilities:{hasSiteSettings:d}}=sf();uZ();let{chat:u,setChat:h,setSelected:p,setSelectHandler:x}=yc(),g=Il(()=>n(h0),[n]),y=a==="chat";pt(()=>{p(y)},[y,p]),pt(()=>{x(g)},[x,g]);let{setOpenHandler:E}=es(),_=Il(()=>n(x0),[n]);pt(()=>{E(_)},[E,_]);let w=xF(mF(e),hF(e)),I=dZ(o),v=fZ(e,r),k=t.device;return{...w,...I,...v,hasOwnRows:C=>C.type===bd,ownRows:c.renderLocationTree,sectionPressed:c.sectionPressed,wrap:C=>to(vf.Provider,{value:!0,children:xl(lZ.Provider,{value:k,children:[C,to(YE,{})]})}),addPanelRow:C=>d?xl("div",{className:"sf-addside-sitewide",children:[to("span",{className:"sf-addside-sitewide-glyph","aria-hidden":"true",children:to(Wr,{type:"chat",size:16})}),xl("button",{type:"button",className:"sf-addside-sitewide-name",onClick:()=>{C(),g()},children:[i("Live chat"),to("span",{className:"sf-addside-sitewide-desc",children:i("A chat bubble on every page")})]}),to(tZ,{checked:u.enabled,onChange:F=>h({enabled:F}),ariaLabel:i("Show the chat bubble on the whole site")})]}):void 0}}var lF=null,kI=new WeakMap;function mZ(e){let o=dg();if(!e||!o)return e;lF!==o&&(lF=o,kI=new WeakMap);let t=kI.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},kI.set(e,t)),t}var hZ={isLockedBlock:(e,o)=>_R(e,o)||!!(o&&Tt()?.heldElsewhere(o.props.id)),duplicateBlocked:dd,nestDepth:(e,o,t)=>o===Ll?lb(e,t):0,newSectionNode:rF,canAddTo:(e,o,t,r)=>mZ(bR(e,o,r,t)),blockIsOffered:gR,slotsOf:yR},xZ=new Proxy(YR,{get:(e,o)=>{let t=Reflect.get(e,o);return typeof t=="string"?i(t):t}}),IZ={labelAtLevel:(e,o,t)=>i(mh(e,o,t)),descriptions:xZ,categoryLabel:e=>{let o=XE(e);return o===void 0?void 0:i(o)},firstSection:ZE,blockRowName:CR,rowName:vR,plainText:Sr,Icon:Wr,Thumbnail:v0,useProducts:aF,presets:oF()},gZ={desktop:2e3,tablet:800,mobile:390},iF="desktop",bZ={options:Hv,initial:iF,fluid:iF,widths:gZ},yZ={read:PR,write:e=>TR(e),forSelection:(e,o)=>OR(e,o)},SZ={first:go,last:Le,firstGroup:Ae,lastGroup:Ee,isSectionGroup:tn,sectionGroupZone:ET,panelOf:e=>e===go?p0:null,get sharedReach(){return Xr()?CZ:void 0},get shared(){return Tt()?FR:void 0},get groupTab(){return Xr()?QT:void 0},get groupBadge(){return Xr()?jh({type:Ee})??void 0:void 0},get changeNotice(){return Xr()?e0():void 0},get band(){return Xr()?wZ:void 0},get groupAccepts(){return Xr()?RT:void 0}},wZ={foldable:!0},CZ=e=>jh(e)??RR(e);function vZ(e){return{...xF(mF(e),hF(e)),openSettings:()=>e.show(Xh)}}function kZ(e,o){nE(e,o),mE()}var cAe={useOwnerName:ja,useDocumentLabel:Sv,useBridges:pZ,useStandaloneBridges:vZ,useDocumentPass:kZ,blockRules:hZ,blockLook:IZ,devices:bZ,leftView:yZ,pinned:SZ,Canvas:KR,canvasDrag:{media:VR},Inspector:g0};export{QIe as a,ege as b,oge as c,IP as d,Pt as e,Q as f,bP as g,ige as h,SP as i,xh as j,zc as k,H$ as l,mge as m,hge as n,vP as o,xge as p,Ih as q,Ige as r,gge as s,Za as t,bge as u,W$ as v,yge as w,TP as x,Sge as y,wge as z,Eh as A,ze as B,Hl as C,eo as D,Uf as E,nL as F,sL as G,$f as H,jf as I,uo as J,yQ as K,he as L,mo as M,V0 as N,VCe as O,Y0 as P,YCe as Q,XCe as R,$ as S,hd as T,TCe as U,ct as V,dt as W,Ao as X,nve as Y,Gu as Z,Uu as _,b2 as $,ii as aa,Dae as ba,Fn as ca,Nae as da,xS as ea,Ohe as fa,Pc as ga,cs as ha,xk as ia,_he as ja,Ik as ka,Rhe as la,NG as ma,gk as na,Fhe as oa,Sk as pa,JE as qa,$ke as ra,EZ as sa,ee as ta,i as ua,fo as va,QE as wa,qke as xa,uy as ya,Sa as za,my as Aa,xte as Ba,Pu as Ca,gD as Da,Ite as Ea,ps as Fa,Fc as Ga,$he as Ha,Wc as Ia,G$ as Ja,qr as Ka,bs as La,Pge as Ma,Tge as Na,EP as Oa,Ege as Pa,Vr as Qa,q$ as Ra,Oge as Sa,zae as Ta,IS as Ua,ka as Va,Wae as Wa,Gae as Xa,Uae as Ya,bS as Za,Kae as _a,qae as $a,k2 as ab,Vae as bb,qu as cb,vS as db,E2 as eb,_2 as fb,Yae as gb,Xae as hb,L2 as ib,Zae as jb,B2 as kb,Jae as lb,s4 as mb,vp as nb,l4 as ob,nce as pb,Vo as qb,lce as rb,ice as sb,Ui as tb,cce as ub,$i as vb,dce as wb,fce as xb,Jw as yb,Qw as zb,m4 as Ab,h4 as Bb,hce as Cb,Ice as Db,gce as Eb,bce as Fb,yce as Gb,Yy as Hb,aae as Ib,Ca as Jb,Ut as Kb,oi as Lb,oS as Mb,uae as Nb,pae as Ob,s1 as Pb,l1 as Qb,_d as Rb,cPe as Sb,i1 as Tb,dPe as Ub,fPe as Vb,uPe as Wb,c1 as Xb,pPe as Yb,mPe as Zb,t2 as _b,ni as $b,kae as ac,Hu as bc,Pae as cc,i2 as dc,c2 as ec,dS as fc,fS as gc,Rd as hc,u1 as ic,yPe as jc,SPe as kc,Y as lc,Ie as mc,B as nc,se as oc,pe as pc,me as qc,Ce as rc,ye as sc,_e as tc,HPe as uc,Wee as vc,Gee as wc,Wb as xc,Sr as yc,Ep as zc,En as Ac,Op as Bc,Fp as Cc,Ji as Dc,Xo as Ec,rde as Fc,ade as Gc,nde as Hc,sde as Ic,A4 as Jc,L4 as Kc,lde as Lc,Ba as Mc,Ap as Nc,ide as Oc,cde as Pc,oc as Qc,tc as Rc,Bp as Sc,D4 as Tc,zp as Uc,Ha as Vc,Br as Wc,wde as Xc,Kn as Yc,BC as Zc,Cde as _c,Vp as $c,vde as ad,kde as bd,Pde as cd,y3 as dd,Tde as ed,v3 as fd,k3 as gd,Ede as hd,Ode as id,T3 as jd,sa as kd,KPe as ld,qPe as md,Ad as nd,S9 as od,w9 as pd,VPe as qd,YPe as rd,Tx as sd,Px as td,Cs as ud,oT as vd,tT as wd,vs as xd,qo as yd,Die as zd,Nie as Ad,sP as Bd,kIe as Cd,gs as Dd,ch as Ed,cP as Fd,dP as Gd,l$ as Hd,fP as Id,Mc as Jd,uP as Kd,fTe as Ld,v1 as Md,uTe as Nd,pTe as Od,mTe as Pd,ll as Qd,Bd as Rd,STe as Sd,xo as Td,_Te as Ud,F1 as Vd,A1 as Wd,L1 as Xd,Dx as Yd,zTe as Zd,pi as _d,mi as $d,GTe as ae,B1 as be,jTe as ce,KTe as de,D1 as ee,U as fe,Gd as ge,db as he,z0e as ie,CO as je,Vx as ke,vO as le,j0e as me,K0e as ne,q0e as oe,Yx as pe,V0e as qe,Y0e as re,kO as se,tV as te,Qa as ue,SEe as ve,t_ as we,r_ as xe,MEe as ye,gV as ze,bV as Ae,f_ as Be,jEe as Ce,KEe as De,m1e as Ee,C1e as Fe,L1e as Ge,D_ as He,z1e as Ie,G_ as Je,W1e as Ke,U_ as Le,ul as Me,hr as Ne,cQ as Oe,zf as Pe,QA as Qe,$g as Re,rL as Se,mQ as Te,hQ as Ue,_l as Ve,xQ as We,Kf as Xe,Kg as Ye,TQ as Ze,Vv as _e,Epe as $e,Sm as af,qa as bf,Fpe as cf,Ape as df,pW as ef,Lpe as ff,ns as gf,Jv as hf,Qv as if,RA as jf,AJ as kf,FA as lf,AA as mf,DJ as nf,LA as of,BA as pf,NJ as qf,MJ as rf,HJ as sf,j_ as tf,pl as uf,Qd as vf,ef as wf,K_ as xf,q_ as yf,V_ as zf,Y_ as Af,J_ as Bf,Q_ as Cf,hOe as Df,xOe as Ef,IOe as Ff,gOe as Gf,Oo as Hf,OY as If,nR as Jf,RY as Kf,lR as Lf,iR as Mf,HY as Nf,HOe as Of,Ia as Pf,rb as Qf,tb as Rf,yL as Sf,SL as Tf,wL as Uf,qQ as Vf,CL as Wf,VQ as Xf,vn as Yf,YQ as Zf,XQ as _f,Ll as $f,lb as ag,Kv as bg,Cpe as cg,VOe as dg,YOe as eg,jY as fg,x2 as gg,li as hg,Aae as ig,Qg as jg,uL as kg,DQ as lg,Rl as mg,ob as ng,pL as og,mL as pg,hL as qg,HQ as rg,zQ as sg,WQ as tg,GQ as ug,Ae as vg,Ee as wg,Qye as xg,OT as yg,td as zg,UJ as Ag,qJ as Bg,si as Cg,Oae as Dg,_ae as Eg,Rae as Fg,ene as Gg,one as Hg,tne as Ig,WS as Jg,Er as Kg,oM as Lg,Ine as Mg,tM as Ng,gne as Og,gi as Pg,bne as Qg,nRe as Rg,eT as Sg,_be as Tg,JP as Ug,os as Vg,gpe as Wg,$v as Xg,bpe as Yg,ype as Zg,Spe as _g,CCe as $g,P0 as ah,T0 as bh,E0 as ch,pM as dh,_o as eh,jo as fh,bi as gh,_a as hh,Rne as ih,Fne as jh,Lne as kh,Bne as lh,Dne as mh,Nne as nh,Mne as oh,zne as ph,Si as qh,Wne as rh,_Q as sh,LQ as th,Fl as uh,Bl as vh,Pn as wh,hb as xh,see as yh,lee as zh,tu as Ah,tB as Bh,Tee as Ch,_ee as Dh,Nee as Eh,Mee as Fh,jF as Gh,Cl as Hh,pu as Ih,mu as Jh,voe as Kh,koe as Lh,Xb as Mh,Poe as Nh,Toe as Oh,Eoe as Ph,ty as Qh,ay as Rh,It as Sh,ly as Th,PD as Uh,Rte as Vh,by as Wh,Mte as Xh,Sy as Yh,ky as Zh,Py as _h,Ty as $h,Ey as ai,Oy as bi,_y as ci,Eu as di,Fy as ei,Ay as fi,sre as gi,VD as hi,lre as ii,ire as ji,By as ki,pre as li,YD as mi,mre as ni,hre as oi,ZD as pi,Ou as qi,QD as ri,bre as si,eN as ti,yre as ui,oN as vi,Go as wi,wre as xi,Cre as yi,vre as zi,kre as Ai,Zl as Bi,Pre as Ci,Fu as Di,Lre as Ei,Wy as Fi,nN as Gi,Dre as Hi,bN as Ii,oae as Ji,JN as Ki,yae as Li,e2 as Mi,Sae as Ni,wae as Oi,Cae as Pi,fi as Qi,Ln as Ri,ane as Si,nne as Ti,sne as Ui,ES as Vi,OS as Wi,_S as Xi,lne as Yi,Oa as Zi,xi as _i,fne as $i,une as aj,pne as bj,HS as cj,hne as dj,Vt as ej,yt as fj,_r as gj,ple as hj,mle as ij,hle as jj,xle as kj,Ile as lj,gle as mj,ble as nj,Cle as oj,vle as pj,EH as qj,kle as rj,Ple as sj,Tle as tj,Ele as uj,Ole as vj,_le as wj,Rle as xj,Fle as yj,FH as zj,Ale as Aj,np as Bj,Lle as Cj,_i as Dj,Or as Ej,Iu as Fj,kw as Gj,Fi as Hj,Ble as Ij,Dle as Jj,XH as Kj,Nle as Lj,Mle as Mj,Hle as Nj,zle as Oj,Wle as Pj,Gle as Qj,Ule as Rj,wi as Sj,Li as Tj,Bi as Uj,ip as Vj,Di as Wj,$le as Xj,s5 as Yj,jle as Zj,Kle as _j,qle as $j,Ow as ak,Vle as bk,Yle as ck,Xle as dk,Zle as ek,Jle as fk,Qle as gk,cp as hk,eie as ik,Rw as jk,Fw as kk,Aw as lk,oie as mk,fp as nk,b5 as ok,tie as pk,rie as qk,aP as rk,vo as sk,hs as tk,vU as uk,Dk as vk,gxe as wk,bxe as xk,yxe as yk,Sxe as zk,wxe as Ak,Cxe as Bk,vxe as Ck,zk as Dk,kxe as Ek,Pxe as Fk,Txe as Gk,gc as Hk,Lv as Ik,Bv as Jk,Nv as Kk,bc as Lk,epe as Mk,ope as Nk,yc as Ok,aW as Pk,fpe as Qk,es as Rk,hpe as Sk,Uv as Tk,Ss as Uk,Y$ as Vk,Lge as Wk,Bge as Xk,CSe as Yk,vSe as Zk,kSe as _k,Ppe as $k,Sc as al,HZ as bl,WC as cl,Gde as dl,Ude as el,$de as fl,jde as gl,lv as hl,iv as il,mfe as jl,hfe as kl,l6 as ll,xfe as ml,Ife as nl,gfe as ol,bfe as pl,i6 as ql,yfe as rl,Sfe as sl,wfe as tl,Cfe as ul,u6 as vl,vfe as wl,Bfe as xl,Dfe as yl,um as zl,pm as Al,ok as Bl,xhe as Cl,ik as Dl,Zge as El,Jge as Fl,MP as Gl,Qge as Hl,ebe as Il,Ps as Jl,_j as Kl,Rj as Ll,Ybe as Ml,tye as Nl,fT as Ol,Le as Pl,cd as Ql,et as Rl,R0 as Sl,Ms as Tl,F0 as Ul,A0 as Vl,_Ce as Wl,RCe as Xl,hE as Yl,gx as Zl,xE as _l,bR as $l,x_e as am,vR as bm,_R as cm,tf as dm,tX as em,rX as fm,F_e as gm,FZ as hm,DZ as im,YX as jm,tF as km,XX as lm,hl as mm,WRe as nm,GRe as om,cAe as pm};
|