efficient-storefront-blocks 0.76.0 → 0.78.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 +29 -0
- package/dist/chunks/EditorPreviewCheckout-IEFQC4T3.js +4 -0
- package/dist/chunks/{SiteEditorProvider-AJUWZYHT.js → SiteEditorProvider-YTZPWUDV.js} +1 -1
- package/dist/chunks/chunk-4O66UMLS.js +1 -0
- package/dist/chunks/chunk-LZTJCQ4A.js +311 -0
- package/dist/chunks/chunk-MZPZ4B7Y.js +1 -0
- package/dist/chunks/chunk-TI4ZGDSG.js +1 -0
- package/dist/chunks/chunk-WC4XIVX3.js +1 -0
- package/dist/chunks/{fitment-data-IZYCNTET.js → fitment-data-VU5A7VKV.js} +1 -1
- package/dist/editor/components/CategorySource.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/GalleryB/fields.js +1 -1
- package/dist/editor/lib/document/blocks/commerce/ProductGrid/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/Events/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/FooterGroup/fields.js +1 -1
- package/dist/editor/lib/document/blocks/service/FooterSocial/fields.js +1 -1
- package/dist/index.js +31 -31
- package/dist/render/app/globals.css +44 -0
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/ChatWidget.js +1 -1
- package/dist/render/components/ConsentPanel.js +1 -1
- package/dist/render/components/Events.d.ts +2 -1
- package/dist/render/components/Events.js +1 -1
- package/dist/render/components/FooterGroup.d.ts +2 -1
- package/dist/render/components/FooterGroup.js +1 -1
- package/dist/render/components/GalleryGrid.d.ts +2 -1
- package/dist/render/components/GalleryGrid.js +1 -1
- package/dist/render/components/Notice.d.ts +6 -0
- package/dist/render/components/Notice.js +1 -0
- package/dist/render/components/ProductGridSection.d.ts +2 -1
- package/dist/render/components/ProductGridSection.js +1 -1
- package/dist/render/components/SubscribePopup.js +2 -2
- package/dist/render/components/TyreFitVerdicts.d.ts +2 -1
- package/dist/render/components/TyreFitVerdicts.js +1 -1
- package/dist/render/components/TyreVehicleFitment.js +1 -1
- package/dist/render/components/WheelCardFrame.d.ts +3 -0
- package/dist/render/components/WheelCardFrame.js +1 -1
- package/dist/render/components/catalog/CatalogFilterBar.js +1 -1
- package/dist/render/components/checkout/CheckoutPageClient.d.ts +4 -0
- package/dist/render/components/checkout/CheckoutPageClient.js +1 -1
- package/dist/render/components/checkout/checkout-parts.js +1 -1
- package/dist/render/components/checkout/checkout-state.d.ts +14 -2
- package/dist/render/components/checkout/checkout-state.js +3 -3
- package/dist/render/components/product-hero/TyreHeroFitment.d.ts +2 -1
- package/dist/render/components/product-hero/TyreHeroFitment.js +1 -1
- package/dist/render/components/product-hero/VehicleQuestion.d.ts +0 -4
- package/dist/render/components/product-hero/VehicleQuestion.js +1 -1
- package/dist/render/components/product-hero/WheelHeroFitment.js +1 -1
- package/dist/render/components/product-hero/trust-bullets.js +1 -1
- package/dist/render/components/useTyreFitAnswer.d.ts +1 -0
- package/dist/render/components/useTyreFitAnswer.js +1 -1
- package/dist/render/lib/api/index.d.ts +7 -3
- package/dist/render/lib/api/index.js +1 -1
- package/dist/render/lib/api/types.d.ts +5 -0
- package/dist/render/lib/checkout/pay-first.d.ts +34 -0
- package/dist/render/lib/checkout/pay-first.js +1 -0
- package/dist/render/lib/document/blocks/commerce/GalleryB/render.js +1 -1
- package/dist/render/lib/document/blocks/commerce/ProductGrid/render.js +1 -1
- package/dist/render/lib/document/blocks/service/Events/render.js +1 -1
- package/dist/render/lib/document/blocks/service/FooterGroup/render.js +1 -1
- package/dist/render/lib/tyres/tyre-fit-copy.js +1 -1
- package/dist/render/lib/tyres/tyre-vehicle-fitment.d.ts +3 -1
- package/dist/render/lib/tyres/tyre-vehicle-fitment.js +1 -1
- package/dist/render/lib/wheels/plp-grid.d.ts +2 -1
- package/dist/render/lib/wheels/plp-grid.js +1 -1
- package/dist/words.d.ts +0 -5
- package/dist/words.js +2 -2
- package/package.json +3 -3
- package/dist/chunks/EditorPreviewCheckout-ANI7HUYX.js +0 -4
- package/dist/chunks/chunk-3IQQNZIM.js +0 -311
- package/dist/chunks/chunk-4F5CAFXO.js +0 -1
- package/dist/chunks/chunk-5NXOTPHK.js +0 -1
- package/dist/chunks/chunk-YAYHH5GY.js +0 -1
- package/dist/chunks/chunk-YFPWVNDB.js +0 -1
- /package/dist/chunks/{chunk-3IQQNZIM.js.LEGAL.txt → chunk-LZTJCQ4A.js.LEGAL.txt} +0 -0
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
import{B as ex,C as ox,Ca as ee,D as tx,F as ax,G as yc,Ga as gx,Ha as bx,I as rx,J as bo,Ja as ls,K as Vt,Ka as yx,L as nx,La as Sx,M as zo,N as ns,P as sx,Q as Sc,Qa as Cx,T as lx,U as Cc,W as wc,_ as ix,a as kt,b as xc,ea as Yt,ga as cx,h as Ym,i as hc,ia as dx,j as Ic,k as Ge,ka as fx,l as Xm,la as vo,m as Zm,ma as Ra,n as vt,na as ux,o as Wo,oa as ot,p as La,pa as kc,q as Aa,qa as vc,s as Qm,ua as Fr,v as Or,wa as px,x as Jm,y as gc,ya as mx,z as bc}from"./chunk-YAYHH5GY.js";import{d as xx,e as Lr,f as hx,g as Ix,j as ss,n as Tc}from"./chunk-5NXOTPHK.js";var ie=e=>typeof e=="string"&&e?e:void 0;var kx="en",is=null,vx=kx,Tx=null;function hj(e,o,t){is=e??null,vx=o||kx,Tx=t??null}function X(){return Tx}function Pc(){return vx}function Px(){return is}function wx(e,o){return o?e.replace(/\{([A-Za-z][A-Za-z0-9_]*)\}/g,(t,a)=>Object.prototype.hasOwnProperty.call(o,a)?String(o[a]):t):e}function l(e,o){let t=is?is[e]:void 0;if(typeof t=="function"){try{let a=ie(t(o??{}));if(a)return a}catch{}return wx(e,o)}return wx(ie(t)??e,o)}function Ze(e,o,t,a){return l(t===1?e:o,{...a,n:t})}import{jsx as Ec,Fragment as dE,jsxs as fE}from"react/jsx-runtime";import{createContext as uE,useContext as pE}from"react";var mE={mirrorHostStyles:!0,css:null,fontHrefs:[]},Ex=uE(mE);function yj({value:e,children:o}){return Ec(Ex.Provider,{value:e,children:o})}function Oc(){return pE(Ex)}function Ox(){let{css:e,fontHrefs:o}=Oc();return fE(dE,{children:[o.map(t=>Ec("link",{rel:"stylesheet",href:t},t)),e?Ec("style",{"data-sf-canvas-css":"",children:e}):null]})}import{jsx as xE}from"react/jsx-runtime";import{createContext as hE,useContext as IE}from"react";var Fx=hE(void 0);function kj({metadata:e,children:o}){return xE(Fx.Provider,{value:e,children:o})}var Lx=()=>IE(Fx);import{jsx as Re,Fragment as YP,jsxs as ts}from"react/jsx-runtime";import{useCallback as as,useEffect as Qo,useRef as W8,useState as jP}from"react";import{Button as z8,Tooltip as G8}from"efficient-shell/ui";import{SettingsSwitch as U8}from"efficient-easel/panel";import{PagesIcon as $8,StylesIcon as j8}from"efficient-easel/rail";import{PaletteIcon as q8}from"efficient-shell/icons/efficient";import{TemplateIcon as K8}from"efficient-easel/icons";import{Subtree as V8,TreeRow as XP}from"efficient-easel/tree";import{useEasel as ZP}from"efficient-easel/easel";import{useEaselStrings as QP}from"efficient-easel/strings";import{createContext as gE,useContext as bE}from"react";var Fc=gE(!1),Pj=()=>bE(Fc);import{jsx as ce,Fragment as bS,jsxs as sn}from"react/jsx-runtime";import{Fragment as xM,useEffect as hM,useId as IM,useMemo as yS,useRef as gM,useState as Ht}from"react";import{useScreenDocument as bM}from"efficient-easel/screen/components/ScreenDocumentContext";import{UiIcon as fu}from"efficient-easel/draw/client";import yM from"efficient-easel/screen/components/SidePanelHead";import{jsx as Q,Fragment as ha,jsxs as xa}from"react/jsx-runtime";import{useEasel as eS,useRootFields as u2}from"efficient-easel/easel";import{Inspector as p2}from"efficient-easel/fields";import{SettingsGroup as m2}from"efficient-easel/panel";import{useEffect as x2,useRef as h2,useState as Hl}from"react";import{jsx as Xt,Fragment as QE,jsxs as JE}from"react/jsx-runtime";import{useState as $x}from"react";import{SettingsDefaultReset as eO,SettingsField as oO}from"efficient-easel/panel";import{useEaselStrings as tO}from"efficient-easel/strings";import{AddIcon as aO}from"efficient-easel/icons";import{Button as rO}from"efficient-shell/ui";import{iconOf as nO,noGlyph as sO}from"efficient-easel/screen/lib/document/box-fields";import{jsx as Z,jsxs as Pt,Fragment as _E}from"react/jsx-runtime";import{parseHexColor as DE}from"efficient-shell/format";import{Button as Rc,IconButton as NE,Tooltip as ME}from"efficient-shell/ui";import{jsx as Tt,jsxs as PE}from"react/jsx-runtime";import{AccentIcon as EE}from"efficient-easel/icons";import{Button as OE,Tooltip as FE}from"efficient-shell/ui";import{jsx as tt,jsxs as _x}from"react/jsx-runtime";import{ColorPicker as Bx,HexInput as SE}from"efficient-shell/ui";import{SettingsDefaultReset as CE,SettingsField as wE}from"efficient-easel/panel";import{typedHex as Lc}from"efficient-easel/pick";import{typedHex as yE}from"efficient-easel/pick";function Ax(e){let o=new Set,t=[];return Ge(e).themes.forEach((a,r)=>{let n=[[l("Theme {n} main color",{n:r+1}),a.accent],[l("Theme {n} text color",{n:r+1}),a.text],[l("Theme {n} background",{n:r+1}),a.background]];for(let[s,i]of n){let c=i?yE(i):null;!c||o.has(c)||(o.add(c),t.push({name:s,value:c}))}}),t}var Rx="Not set";function kE({value:e,onChange:o,label:t,id:a,caption:r,inherited:n,ariaLabel:s,opacity:i,onOpacityChange:c}){return tt(TE,{value:e,onChange:o,label:l(s??t),id:a,caption:r,inherited:n,...c?{opacity:i,onOpacityChange:c}:{}})}function vE(){let{theme:e}=ee();return Ax(e).map(o=>({value:o.value,label:o.name}))}function TE({value:e,onChange:o,label:t,id:a,caption:r,inherited:n,opacity:s,onOpacityChange:i}){let c=vE(),f=e?null:Lc(n??""),m=r!==void 0&&(!e||Lc(r)!==Lc(e))?r:null,x=u=>{u!==e&&o(u)};return i?tt("div",{className:"sf-colour",children:tt(Bx,{id:a,value:e,onChange:x,label:t,presets:c,fallback:f??void 0,size:"md",align:"start",showHexInput:!0,opacity:s,onOpacityChange:i})}):_x("div",{className:"sf-colour",children:[tt(Bx,{id:a,value:e,onChange:x,label:t,presets:c,fallback:f??void 0,size:"md",align:"start"}),m!==null?tt("span",{className:"sf-colour-caption",children:m}):tt("span",{className:"sf-colour-hexwrap",children:tt(SE,{value:e||f||"",onChange:x,label:l("{label} hex code",{label:t}),placeholder:e||f?void 0:l(Rx),className:f?"sf-colour-hex is-inherited":"sf-colour-hex",size:"md"})})]})}function yo({label:e,icon:o,changed:t,hint:a,onReset:r,resetTo:n,children:s,...i}){return _x(wE,{label:e,icon:o,htmlFor:i.id,changed:t,hint:a,action:r?tt(CE,{words:X()?.panel,label:e,changed:!!t,detail:n,onReset:r}):void 0,children:[kE({...i,label:e}),s]})}function Ar({label:e,icon:o,value:t,inherited:a,resetTo:r,onChange:n,onReset:s,hint:i,opacity:c,onOpacityChange:f,changed:m}){let x=!!t;return tt(yo,{label:e,icon:o,value:t,inherited:x?void 0:a,onChange:n,changed:m??x,onReset:s,resetTo:r,hint:i,...f?{opacity:c,onOpacityChange:f}:{}})}function Ac(e){return Wo(e).background}function LE(e){let o=kt(e.accent,Ac(e));return o===null?null:{ratio:o,grade:Aa(o)}}function AE(e){let o=Ac(e),t=kt(e.accent,o);return t===null?[]:Qm(e.accent).filter(a=>{let r=kt(a,o);return r!==null&&r>t&&Aa(r)==="good"})}var RE={good:"Easy to read","large-only":La["large-only"],hard:La.hard};function Dx({value:e,onChange:o}){let t=LE(e),a=t?.grade,r=t&&t.grade!=="good"?AE(e):[];return Tt(yo,{label:l("Main color"),icon:Tt(EE,{}),hint:t?l(RE[t.grade]):void 0,value:e.accent,onChange:n=>o({...e,accent:n}),children:r.length>0?Tt("div",{className:"w-full min-w-0",children:PE("div",{className:"sf-readability",children:[Tt("p",{className:"sf-readability-advice",children:BE(a,!0)}),Tt("div",{className:"sf-readability-suggestions",children:r.map(n=>{let s=kt(n,Ac(e));return Tt(FE,{content:l("Use {colour}",{colour:n.toUpperCase()}),children:Tt(OE,{variant:"secondary",className:"sf-readability-suggestion",leftIcon:Tt("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 BE(e,o){return e?e==="good"?l("This color reads clearly on your pages."):o?l("This color is hard to read on this theme's page. The buttons below are the same hue, darkened."):l("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."):l("Pick a color to see how it reads.")}import{ButtonIcon as HE,ChevronDownIcon as Mx,ChevronUpIcon as WE,GroundIcon as zE,LayoutIcon as GE,SquareIcon as UE,TextSmallIcon as $E,TypeIcon as Nx}from"efficient-easel/icons";var Rr=e=>l("Theme {n}",{n:e+1});function Hx({colors:e}){let o=Wo(e),t=Or(e)??o.accent;return Pt("span",{className:"sf-theme-page",style:{background:o.background,color:o.text},"aria-hidden":!0,children:[Z("span",{className:"sf-theme-eyebrow",style:{color:o.muted},children:l("label")}),Pt("span",{className:"sf-theme-headline",children:[l("Heading")," ",Z("span",{style:{color:o.accent},children:l("accent")})]}),Z("span",{className:"sf-theme-body",children:l("body text")}),Pt("span",{className:"sf-theme-row",children:[Z("span",{className:"sf-theme-btn",style:{background:t,color:gc(e,o.accent)},children:l("button")}),Z("span",{className:"sf-theme-mini",style:{background:o.surface,borderColor:o.line},children:l("card")})]})]})}var Bc={"Text color":Z(Nx,{}),"Label color":Z($E,{}),Background:Z(zE,{}),"Panels & cards":Z(GE,{}),Borders:Z(UE,{}),"Button color":Z(HE,{}),"Button text color":Z(Nx,{})};function jE({label:e,colorKey:o,value:t,onChange:a,idPrefix:r="sf-theme-ink"}){let n=`${r}-${o}`;return Z(yo,{label:l(e),icon:Bc[e],id:n,value:t,onChange:s=>a(o,s)})}function qE({value:e,accent:o,onChange:t,idPrefix:a="sf-theme-ink"}){let r=`${a}-button`,n=e!==void 0&&DE(e)===e.toLowerCase(),s=n?e:o;return Z(yo,{label:l("Button color"),icon:Bc["Button color"],id:r,value:s,caption:n?s:l("Main"),onChange:t})}function KE({colors:e,accent:o,onChange:t,idPrefix:a="sf-theme-ink"}){let r=`${a}-button-ink`,n=Jm(e),s=gc(e,o),i=Or(e)??o,c=Aa(kt(s,i)??0);return Z(yo,{label:l("Button text color"),icon:Bc["Button text color"],hint:n&&c!=="good"?l("{grade} on the button",{grade:l(La[c])}):void 0,id:r,value:s,caption:n?s:l("Auto"),onChange:t})}var VE=[{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 _c({colors:e,onChange:o,idPrefix:t}){let a=Wo(e);return Z(_E,{children:VE.map(r=>"colour"in r?Z(Dx,{value:e,onChange:o},"colour"):"moduleBreak"in r?Z("div",{className:"sf-theme-module-break","aria-hidden":"true"},"module-break"):"button"in r?Z(qE,{value:e.button,accent:a.accent,onChange:n=>o({...e,button:n}),idPrefix:t},"button"):"buttonInk"in r?Z(KE,{colors:e,accent:a.accent,onChange:n=>o({...e,buttonInk:n}),idPrefix:t},"buttonInk"):Z(jE,{label:r.label,colorKey:r.key,value:a[r.key],onChange:(n,s)=>o({...e,[n]:s}),idPrefix:t},r.key))})}function cs({index:e,colors:o,selected:t,role:a="radio",open:r,editable:n=!0,onPick:s,onEdit:i,onChangeColors:c}){let f=Wo(o),m=Rr(e),x=e<Ic.length&&!o.brandInk?Ic[e]:null,u=Aa(kt(f.text,f.background)??0),h=x?JSON.stringify(o)!==JSON.stringify(x):!1,g=r!==void 0;return Pt("div",{className:`sf-theme-card${t?" is-selected":""}`,children:[Z("button",{type:"button",role:a,"aria-checked":a==="radio"?t:void 0,"aria-selected":a==="option"?t:void 0,"aria-label":m,className:"sf-theme-pick",onClick:s,children:Z(Hx,{colors:o})}),Pt("div",{className:"sf-theme-foot",children:[Z("span",{className:"sf-theme-name",children:m}),u!=="good"&&Z("span",{className:"sf-theme-warn",children:l(La[u])}),n&&i&&g&&Z("span",{className:"sf-theme-edit",children:Z(ME,{content:r?l("Collapse"):l("Edit colors"),children:Z(NE,{size:"sm","aria-expanded":r,"aria-controls":`sf-theme-colours-${e}`,"aria-label":r?l("Collapse {name}",{name:m}):l("Edit colors for {name}",{name:m}),onClick:i,children:r?Z(WE,{size:14}):Z(Mx,{size:14})})})}),n&&i&&!g&&Z(Rc,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":l("Edit {name}",{name:m}),onClick:i,children:l("Edit")})]}),r&&Pt("div",{id:`sf-theme-colours-${e}`,className:"sf-theme-colours",children:[Z(_c,{colors:o,onChange:w=>c?.(w)}),x&&Z(Rc,{variant:"link",size:"sm",className:"sf-theme-reset",disabled:!h,onClick:()=>c?.({...x}),children:h?l("Reset {name} to the preset",{name:m}):l("Not changed")})]})]})}function Wx({colors:e,name:o,nameId:t,open:a,menuId:r,labelId:n,buttonRef:s,onClick:i,onKeyDown:c,onEdit:f}){return Pt("div",{className:"sf-secttheme-btn",children:[Z("button",{ref:s,type:"button",className:"sf-theme-pick","aria-expanded":a,"aria-controls":r,"aria-labelledby":`${n} ${t}`,onClick:i,onKeyDown:c,children:e?Z(Hx,{colors:e}):Z("span",{className:"sf-secttheme-nopreview","aria-hidden":"true"})}),Pt("div",{className:"sf-theme-foot",children:[Z("span",{id:t,className:"sf-theme-name",children:o}),f&&Z(Rc,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":l("Edit {name}",{name:o}),onClick:f,children:l("Edit")}),Z("button",{type:"button",className:"sf-secttheme-caret","aria-hidden":"true",tabIndex:-1,onClick:i,children:Z(Mx,{size:12,className:"sf-multi-caret","aria-hidden":"true"})})]})]})}import{jsx as ds,Fragment as YE,jsxs as zx}from"react/jsx-runtime";import{Button as Gx,Dialog as XE}from"efficient-shell/ui";function ZE(e){return Ze("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 Ux({count:e,onCancel:o,onConfirm:t}){return zx(XE,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:l("Clear this site\u2019s colors?"),footer:zx(YE,{children:[ds(Gx,{variant:"secondary",onClick:o,children:l("Cancel")}),ds(Gx,{variant:"danger",onClick:t,children:l("Clear colors")})]}),children:[ds("p",{children:ZE(e)}),ds("p",{className:"mt-2 font-medium",children:l("This cannot be undone.")})]})}var lO=sO("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"),iO="Reset color",cO={selected:0,themes:[]};function dO(e){e(cO)}function jx({value:e,onChange:o}){let t=e?.themes??[],a=t.length===0,r=Ge(e),[n,s]=$x(!1),i=tO(),[c,f]=$x(null),m=(E,C)=>{o({...r,themes:r.themes.map((I,S)=>S===E?C:I)})},x=vt(r).accent,u=new Set(r.themes.map(E=>E.brandInk).filter(Boolean)),h=Xm.filter(E=>!u.has(E)).map(E=>Zm(x,E)),g=[...r.themes,...h],w=E=>{if(E<r.themes.length)return o({...r,selected:E});let C=[...r.themes,g[E]];o({...r,themes:C,selected:C.length-1})},T=()=>{let E=[...r.themes,{...Wo(r.themes[r.selected])}];o({...r,themes:E,selected:E.length-1}),f(E.length-1)};return JE(QE,{children:[a?null:Xt(oO,{label:l(iO),icon:nO(lO),labelId:"sf-theme-reset",action:Xt(eO,{label:l("all theme colors"),words:i.panel,changed:!0,onReset:()=>s(!0)})}),n&&Xt(Ux,{count:t.length,onCancel:()=>s(!1),onConfirm:()=>{s(!1),dO(o)}}),Xt("div",{className:"sf-theme-list",role:"radiogroup","aria-label":l("Theme"),children:g.map((E,C)=>Xt(cs,{index:C,colors:E,selected:C===r.selected,open:c===C&&C<r.themes.length,editable:C<r.themes.length,onPick:()=>w(C),onEdit:()=>f(I=>I===C?null:C),onChangeColors:I=>m(C,I)},C))}),Xt(rO,{variant:"secondary",leftIcon:Xt(aO,{}),onClick:T,className:"sf-theme-add",children:l("Add new theme")})]})}import{jsx as Il}from"react/jsx-runtime";import{SettingsDefaultReset as S_,SettingsField as C_}from"efficient-easel/panel";import{SquareIcon as w_}from"efficient-easel/icons";import{jsx as b,jsxs as Xa,Fragment as _t}from"react/jsx-runtime";import{cloneElement as eb,useEffect as gR,useId as ob,useRef as sl,useState as Kr}from"react";import{useEasel as Qd}from"efficient-easel/easel";import{toDateKey as JX,fromDateKey as eZ}from"efficient-shell/format";function fO(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.src=="string"}function Et(e){return typeof e=="string"?e:fO(e)?e.src:""}function S7(e,o,t){return Dc(e,o.split("."),t)}function Dc(e,o,t){if(o.length===0)return t(e);let[a,...r]=o,n=a.endsWith("[]"),s=n?a.slice(0,-2):a;if(!e||typeof e!="object"||Array.isArray(e))return e;let i=e;if(!(s in i))return e;let c=i[s];if(n){if(!Array.isArray(c))return e;let m=!1,x=c.map(u=>{let h=Dc(u,r,t);return h!==u&&(m=!0),h});return m?{...i,[s]:x}:e}let f=Dc(c,r,t);return f===c?e:{...i,[s]:f}}var uO=["upload","youtube"],pO="upload",k7={upload:"Upload",youtube:"YouTube"},mO=["background","click"],xO="background",v7={background:"Background",click:"Click to play"};function T7(e){return uO.includes(e)?e:pO}function P7(e){return mO.includes(e)?e:xO}var qx=/^[A-Za-z0-9_-]{11}$/,hO=/^(?:www\.|m\.|music\.)?(?:youtube\.com|youtube-nocookie\.com|youtu\.be)$/;function E7(e){let o=typeof e=="string"?e.trim():"";if(!o)return null;if(qx.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:"||!hO.test(t.hostname))return null;let a=t.pathname.split("/").filter(Boolean),r=t.hostname.endsWith("youtu.be")?a[0]:a[0]==="watch"?t.searchParams.get("v"):a[0]==="embed"||a[0]==="shorts"||a[0]==="live"||a[0]==="v"?a[1]:null;return r&&qx.test(r)?r:null}function O7(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 F7(e){return`https://i.ytimg.com/vi/${e}/maxresdefault.jpg`}function L7(e){return`https://i.ytimg.com/vi/${e}/hqdefault.jpg`}var A7="Play video";var Nc={frame:"Video frame",image:"Image"},R7={any:[{field:"loadingShows",is:"image"},{all:[{not:{field:"loadingShows",set:!0}},{field:"poster",set:!0}]}]};function Mc(e){let o=e.loadingShows;return o==="image"?"image":o!=null&&o!==""?"frame":Et(e.poster)?"image":"frame"}function B7(e){return Et(Mc(e)==="image"?e.poster:e.videoFrame)||void 0}import{readHidable as Dt,hidableText as bR}from"efficient-easel/draw";import{FOLD_FIELD_MARKER as tb,LINK_FIELD_MARKER as yR,MEDIA_FIELD_MARKER as SR,SCAFFOLD_FIELD_MARKER as CR,TEXT_FIELD_MARKER as lt,foldMetaOf as it,textFieldIdentifier as sZ}from"efficient-easel/draw";import{jsx as Jx}from"react/jsx-runtime";import{useCallback as yO}from"react";import{useEasel as SO}from"efficient-easel/easel";import{SettingsAction as CO}from"efficient-easel/panel";function Hc(e){return typeof e=="number"&&Number.isFinite(e)}function N7(e,o){if(!Hc(e))return;let t=ns(zo(e));if(Object.keys(t).length===0)return;let a=t[Wc];if(typeof a!="string")return t;let r=Br(o)?_r(a,at(o)??[]):a;return{...t,[IO]:r}}var IO="--sf-section-radius",Wc="--sf-card-radius",Zt=["tl","tr","br","bl"];function at(e){if(!Array.isArray(e))return null;let o=e.filter(t=>Zt.includes(t));return Zt.filter(t=>o.includes(t))}function Br(e){let o=at(e);return o!==null&&o.length<Zt.length}function _r(e,o){return Zt.map(t=>o.includes(t)?e:"0").join(" ")}var Kx=[{value:"tl",label:"Top left"},{value:"tr",label:"Top right"},{value:"bl",label:"Bottom left"},{value:"br",label:"Bottom right"}];var gO="--sf-card-box-radius";function zc(e){return typeof e=="number"&&Number.isFinite(e)}function z7(e,o){if(!zc(e))return;let t=ns(zo(e))[Wc];if(typeof t!="string")return;let a=Br(o)?_r(t,at(o)??[]):t;return{[gO]:a}}function Vx(e,o){let t=e.find(n=>n?.props?.id===o);if(!t)return[...e];let a=t.props?.cardCorners,r=t.props?.cardCornerSides;return e.map(n=>n?.props?.id===o?n:{...n,props:{...n.props,cardCorners:a,cardCornerSides:r}})}import{locateNode as bO}from"efficient-easel/draw";function Dr(e){if(!e)return null;let o=e.lastIndexOf(":");return o>0?{ownerId:e.slice(0,o),slot:e.slice(o+1)}:null}function fs(e,o,t){let a=Dr(t?.zone),r=a?bO(e,o,a.ownerId):null;return r&&a?{...r,slot:a.slot}:null}function Yx(e,o,t){let a=fs(e,o,t),r=a?.slot??"",n=a&&Array.isArray(a.item.props[r])?a.item.props[r]:[],s=t?.index??-1,i=s>=0?n[s]:void 0,c=i?.props?.id?String(i.props.id):"",f=Math.max(n.length-1,0);return!a||!c?{can:!1,reason:"unreachable",others:0}:n.length<=1?{can:!1,reason:"alone",others:f}:zc(i?.props?.cardCorners)?{can:!0,others:f,zone:a.zone,index:a.index,data:{...a.item,props:{...a.item.props,[r]:Vx(n,c)}}}:{can:!1,reason:"unset",others:f}}function Xx(e){return e.can?Ze("Gives the other card this card's Corners.","Gives the other {n} cards this card's Corners.",e.others):e.reason==="alone"?l("This is the only card in the section."):e.reason==="unset"?l("Set this card's corners first."):l("This card is not in a section that can share corners.")}function Zx(e){return Ze("Applied to {n} card","Applied to {n} cards",e)}function Qx(e,o){e.can&&o(e.zone,e.index,e.data)}import{useSectionOps as wO}from"efficient-easel/screen/lib/document/use-section-ops";var kO="apply-corners-to-siblings",vO="Apply to all cards";function TO({plan:e,onPress:o}){return Jx(CO,{id:kO,label:l(vO),note:Xx(e),disabled:!e.can,doneLabel:Zx(e.others),onPress:o})}function eh(){let{appState:e,config:o}=SO(n=>n),t=wO(),a=Yx(o,e.data.content??[],e.ui.itemSelector),r=yO(()=>{Qx(a,t.replaceComponent)},[a,t]);return Jx(TO,{plan:a,onPress:r})}var oh=1;function PO(e){return zo(e)}function rq(e){let o=PO(e);return o===null?{}:{"--sf-card-image-radius":`${o}px`}}var th=1,ah="Corners";function EO(e){return zo(e)}function iq(e,o){let t=EO(e);if(t===null)return null;let a=`${t}px`;return{borderRadius:Br(o)?_r(a,at(o)??[]):a}}var rt={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]]}},Gc=Object.keys(rt),nh=[2,3,4,6];function Uc(e,o){return Gc.filter(t=>t===o||e===null||rt[t].across===e)}function sh(e){return typeof e!="string"||e===""?null:rt[e]??null}function rh(e,o){return o?6/e.acrossPhone:12/e.across}function lh(e){return[...e.lead??[],...e.desktop]}var OO="sf-wall--";function FO(e){return`${OO}${e}`}function dq(e){let o=rt[e],t=`.${FO(e)}`,a=[],r=(n,s,i=[])=>{let c=[],f=n.length,m=i.length;i.forEach(([x,u],h)=>{c.push(`${t} > :nth-child(${h+1}){grid-column:span ${x};grid-row:span ${u}}`)}),n.forEach(([x,u],h)=>{c.push(`${t} > :nth-child(${f}n+${m+h+1}){grid-column:span ${x};grid-row:span ${u}}`)});for(let x=1;x<f;x+=1)c.push(`${t}:has(> :nth-child(${f}n+${m+x}):last-child) > :nth-last-child(-n+${x}){grid-column:span ${s};grid-row:span 1}`);return c};return a.push(`${t}{grid-template-columns:repeat(12,minmax(0,1fr))}`),a.push(...r(o.desktop,rh(o,!1),o.lead)),a.push("@media (max-width:800px){"),a.push(`${t}{grid-template-columns:repeat(6,minmax(0,1fr))}`),a.push(...r(o.phone,rh(o,!0),o.leadPhone)),a.push("}"),a.join("")}var us=12,ih=1,LO=3;var AO=3;function $c(e,o,t){let a=typeof e=="number"?e:Number.parseInt(String(e??""),10);return Number.isFinite(a)?Math.min(t,Math.max(o,Math.trunc(a))):null}function RO(e){return $c(e,1,us)??AO}function pq(e,o){return $c(e,ih,LO)??(RO(o)===4?2:ih)}function mq(e){return e==null||e===""?null:$c(e,1,us)}var xq="data-sf-span";function hq(e){if(!e)return!1;if(e.type==="Grid")return!0;if(e.type==="GalleryB"){if(sh(e.props?.layout))return!1;let o=e.props?.columns;return o!=null&&o!==""}return!1}import{jsx as BO}from"react/jsx-runtime";import*as _O from"efficient-easel/icons";function ps(e){let o=e.replace(/(^|-)([a-z])/g,(a,r,n)=>n.toUpperCase()),t=_O[`${o}Icon`];return t?BO(t,{size:16}):null}import{isNodeList as DO}from"efficient-easel/data";var Ba=["top-left","top-center","top-right","left","center","right","bottom-left","bottom-center","bottom-right"],dh="bottom-left",_a=4,NO=_a+1,ch=40,MO=30,HO=100,WO=60,Sq=100;var jc={"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 zO(e){let o=Ba.indexOf(Nr(e));return{band:Math.floor(o/3),column:["start","center","end"][o%3]}}function GO(e){return 1+zO(e).band*(NO+1)}function Cq(e){return GO(e)+1}function Nr(e){return Ba.includes(e)?e:dh}function wq(e){let o=typeof e=="number"&&Number.isFinite(e)?e:0;return Math.max(-ch,Math.min(ch,Math.round(o)))}function kq(e,o=WO){let t=typeof e=="number"&&Number.isFinite(e)?e:o;return Math.max(MO,Math.min(HO,Math.round(t)))}function qc(e,o){let t=Nr(o);return e.filter(a=>Nr(a?.props?.placement)===t).length}function fh(e){return`${jc[Nr(e)]} already holds ${_a} boxes. Move one somewhere else first.`}function uh(e,o){let t=e.filter(a=>a?.props?.id!==o);return Ba.map(a=>{let r=qc(t,a)>=_a,n=jc[a];return r?{value:a,label:n,disabled:!0,title:fh(a)}:{value:a,label:n}})}function ms(e,o){let t=o===void 0?dh:Nr(o?.props?.placement);return qc(e,t)>=_a?fh(t):null}var xs="HeroGroup";function UO(e){return Ba.map(o=>{let t=qc(e,o);return{anchor:o,total:t,hidden:t-_a}}).filter(o=>o.hidden>0)}function Kc(e){let o=UO(e);return o.length===0?null:o.map(({anchor:t,total:a,hidden:r})=>{let n=jc[t],s=r===1?"1 is not shown":`${r} are not shown`;return`${n} holds ${a} boxes. The published page draws the first ${_a}, so ${s}. ${r===1?"Move it":"Move them"} somewhere else.`}).join(" ")}function ph(e,o){let t=o;if(t?.type!==xs)return null;let a=t.props?.id===void 0?"":String(t.props.id);return a?ms(Vc(e,a),t):null}function Vc(e,o){let t=xh(e,o);return t&&t.ownerType===jO?t.siblings:[]}function mh(e,o){let t=xh(e,o);return t?t.ancestorTypes.filter(a=>a===xs).length:$O}var $O=1,jO="HeroSlide";function xh(e,o){let t=(a,r,n)=>{if(r>12||!a||typeof a!="object")return null;if(DO(a)){if(a.some(s=>s?.props?.id===o))return{siblings:a,ownerType:n.at(-1)??null,ancestorTypes:n};for(let s of a){let i=s.type,c=t(s,r+1,[...n,String(i)]);if(c)return c}return null}for(let s of Object.values(a)){let i=t(s,r+1,n);if(i)return i}return null};return t(e,0,[])}import{jsx as qO}from"react/jsx-runtime";var Yc="sf-hint-keep";function hh({children:e}){return qO("span",{className:Yc,children:e})}import{jsx as Ot,Fragment as YO,jsxs as kh}from"react/jsx-runtime";import{useContext as XO,useEffect as ZO,useId as QO,useState as vh}from"react";import{SettingsField as JO,SettingsSwitch as e1}from"efficient-easel/panel";import{AnchorIcon as o1}from"efficient-easel/icons";import{ScreenDocumentContext as t1}from"efficient-easel/screen/components/ScreenDocumentContext";import{Snippet as a1}from"efficient-shell/ui";import{slugify as r1}from"efficient-shell/format";var hs="homepage";import{slugify as KO}from"efficient-shell/format";var Ih=[{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 gh(e){return e.offersCommerce&&e.offersService?Ih:Ih.filter(o=>!o.needs||(o.needs==="commerce"?e.offersCommerce:e.offersService))}var Xc="#popup:";function bh(e){return`${Xc}${e}`}function yh(e){return e.startsWith(Xc)&&e.slice(Xc.length).trim()||null}function Mr(e){return e===hs?"/":`/${e}`}function Sh(e){return`/journal/${e}`}function Lq(e){return`/wheels/${e}`}function Is(e,o){return`${Mr(e)}#${o}`}function VO(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}function Ch(...e){let o=new Set,t=[];for(let a of e)for(let r of a?.content??[]){let n=VO(r?.props?.anchor);if(!n)continue;let s=KO(n);!s||o.has(s)||(o.add(s),t.push({slug:s,name:n}))}return t}function Aq(e){let o=e.indexOf("#"),t=o===-1?e:e.slice(0,o),a=t.indexOf("?");return a===-1?t:t.slice(0,a)}function wh(e){return/^\/wheels\/[^/?#]+(?:[?#].*)?$/.test(e)}import{readHidable as n1}from"efficient-easel/draw";function Th({value:e,onChange:o,nameBox:t}){let a=n1(e).text,[r,n]=vh(!1),s=r||a.trim()!=="",i=QO();return kh(YO,{children:[Ot(JO,{label:l("Add an anchor"),labelId:i,icon:Ot(o1,{}),action:Ot(e1,{checked:s,ariaLabelledBy:i,onChange:c=>{n(c),!c&&a!==""&&o("")}})}),s&&t(e,o),s&&Ot(s1,{name:a})]})}function s1({name:e}){let o=XO(t1),t=o?.templateId?"":o?.currentSlug??"",[a,r]=vh("");ZO(()=>r(ss()||window.location.origin),[]);let n=r1(e);if(!n||!t)return null;let s=`${a}${Is(t,n)}`,i=s.replace(/^https?:\/\//,""),c=i.lastIndexOf("#");return Ot("div",{className:"sf-anchor-link",children:Ot(a1,{value:s,label:l("link"),size:"sm",children:kh("span",{className:"sf-anchor-link-text",children:[Ot("span",{className:"sf-anchor-link-path",children:i.slice(0,c)}),Ot("span",{className:"sf-anchor-link-hash",children:i.slice(c)})]})})})}import{AdjustIcon as wR,EyeIcon as kR,AnimationIcon as vR,BackgroundIcon as TR,BorderAllIcon as PR,BlockSectionIcon as ER,ColumnWidthsIcon as ab,ColumnsIcon as OR,CornerIcon as FR,DirectionDownIcon as LR,DirectionLeftIcon as AR,DirectionRightIcon as RR,DirectionUpIcon as BR,EditIcon as _R,GapIcon as DR,GridIcon as NR,GroundIcon as rb,HashIcon as nb,HeightIcon as MR,ImageIcon as HR,ListIcon as WR,LocationIcon as $g,PaddingBottomIcon as sb,PaddingLeftIcon as lb,PaddingRightIcon as ib,PaddingTopIcon as cb,PageIcon as zR,StickyIcon as GR,RotateIcon as UR,SearchIcon as $R,SquareIcon as jR,TextLinesIcon as jg,TypeIcon as qR,WidthIcon as Xd}from"efficient-easel/icons";import{jsx as ke,Fragment as Qt,jsxs as Jt}from"react/jsx-runtime";import{CaptionIcon as l1,DateIcon as i1,FlagIcon as c1,TitleIcon as d1,ButtonIcon as f1,DollarIcon as u1,HashIcon as p1,LinkIcon as m1,NoteIcon as x1,TagIcon as h1,TextLinesIcon as I1}from"efficient-easel/icons";var Ph={body:I1,button:f1,link:m1,label:h1,number:p1,price:u1,note:x1,name:c1,date:i1,caption:l1,title:d1},Eh={eyebrow:Jt(Qt,{children:[ke("path",{d:"M5 6.5h5"}),ke("path",{d:"M5 12.5h14"}),ke("path",{d:"M5 18h11"})]}),heading:Jt(Qt,{children:[ke("path",{d:"M6.5 5v14"}),ke("path",{d:"M17.5 5v14"}),ke("path",{d:"M6.5 12h11"})]}),intro:Jt(Qt,{children:[ke("path",{d:"M4 5.5v13"}),ke("path",{d:"M8 7.5h12"}),ke("path",{d:"M8 12h12"}),ke("path",{d:"M8 16.5h8"})]}),value:Jt(Qt,{children:[ke("rect",{x:"2.5",y:"7",width:"19",height:"10",rx:"2"}),ke("path",{d:"M6.5 12h7"})]}),quote:Jt(Qt,{children:[ke("path",{d:"M9.5 5.5C7 7.2 5.5 9.7 5.5 12.8h4v5.7h-5v-5.7"}),ke("path",{d:"M19.5 5.5c-2.5 1.7-4 4.2-4 7.3h4v5.7h-5v-5.7"})]}),tag:Jt(Qt,{children:[ke("rect",{x:"3",y:"5.5",width:"18",height:"13",rx:"2.5"}),ke("path",{d:"M8 9.5h8"}),ke("path",{d:"M12 9.5v5"})]}),meta:Jt(Qt,{children:[ke("path",{d:"M4 7h16"}),ke("path",{d:"M4 14h3.5"}),ke("path",{d:"M10.5 14h3"}),ke("path",{d:"M17 14h3"})]})};function Zc({noun:e,size:o=14,strokeWidth:t=1.8,className:a,style:r}){let n=Ph[e];return n?ke("span",{className:a,style:{display:"inline-flex",...r},"aria-hidden":"true",children:ke(n,{size:o})}):ke("svg",{className:a,style:r,width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:Eh[e]})}var Vq=Object.keys(Ph);var Yq=Object.keys(Eh);import{parseHexColor as g1}from"efficient-shell/format";var b1="#ffffff";function Qc(e){return y1(e)?e:b1}function y1(e){return typeof e=="string"&&g1(e)===e.toLowerCase()}function Qq(e){return{"--bg":Qc(e)}}function Oh(e,o){let t=e?.content;if(!Array.isArray(t))return null;for(let a of t){if(!a||typeof a!="object")continue;let{type:r,props:n}=a;if(n?.id===o)return null;if(Jc(a,o,0))return{type:typeof r=="string"?r:"",props:n??{}}}return null}function Jc(e,o,t){if(t>12||!e||typeof e!="object")return!1;if(Array.isArray(e))return e.some(r=>Jc(r,o,t+1));let a=e.props;return a&&typeof a=="object"&&a.id===o?!0:Object.values(e).some(r=>Jc(r,o,t+1))}function Fh(e,o){let t=e?.content;return Array.isArray(t)?gs(t,o,0)??[]:[]}function gs(e,o,t){if(t>12||!e||typeof e!="object")return null;if(Array.isArray(e)){for(let r of e){let n=gs(r,o,t+1);if(n)return n}return null}let a=e.props;if(a&&typeof a=="object"){if(a.id===o)return[];for(let r of Object.values(a)){let n=gs(r,o,t+1);if(n)return[a,...n]}return null}for(let r of Object.values(e)){let n=gs(r,o,t+1);if(n)return n}return null}import{SettingsDefaultReset as Qe,SettingsDrill as KR,SettingsField as Le,SettingsGroup as VR,SettingsGroupSub as CZ,SettingsSegmented as YR,SettingsBorder as XR,SettingsSidesEach as ZR,SettingsSwitch as Jd,borderSides as QR,borderStartEach as JR}from"efficient-easel/panel";import{ListField as eB}from"efficient-easel/fields";import{DisplayChips as oB}from"efficient-shell/ui";function Da(e){if(!e||typeof e!="object"||Array.isArray(e))return{};let o={};for(let[t,a]of Object.entries(e))typeof a=="boolean"&&(o[t]=a);return o}function bs(e,o){return Da(e)[o]!==!1}function ed(e,o,t){let a=Da(o)[t];return typeof a=="boolean"?a:bs(e,t)}function Lh(e){return Object.values(Da(e)).some(o=>o===!1)}function Ah(e){return Object.keys(Da(e)).length>0}function Rh(e,o,t){let a={...Da(e)};return t?delete a[o]:a[o]=!1,Object.keys(a).length?a:void 0}function Bh(e,o,t){return{...Da(e),[o]:t}}function o9(e,o,t){let a=bs(e,t),r=ed(e,o,t);return a&&r?"":!a&&!r?"hidden":a?"max-[720px]:hidden":"min-[720px]:hidden"}import{AlignmentGrid as tB,Checkbox as PZ,ColorSwatch as aB,CornersInput as rB,DatePicker as EZ,DateTimePicker as nB,FOCAL_DEFAULT as OZ,PictureTiles as sB,IconPicker as lB,IconButton as db,InputNumber as qg,Slider as iB,Tooltip as ll}from"efficient-shell/ui";import{jsx as U1}from"react/jsx-runtime";import{useEffect as $1,useState as j1}from"react";import{clearRangeOf as q1,markSelection as K1,useCaretEdit as V1}from"efficient-easel/copy";import{TextToolbar as Y1}from"efficient-shell/ui";import{applyMark as i9,markupTools as c9,MARKUP_TOOLS as d9,COPY_FIELD_TOOLS as f9,STOREFRONT_MARKUP as u9,tokenizeInline as p9,stripInline as m9,isSafeLinkHref as x9}from"efficient-shell/markup";import{applyMark as A1,clearStyle as R1,markedAt as B1,markupTools as _1,MARKUP_TOOLS as D1,parseMarkup as N1,RETIRED_MARKS as M1,STOREFRONT_MARKUP as H1,tokenizeInline as I9}from"efficient-shell/markup";var ea=["highlight","strong","quiet"],oa={highlight:"Highlight",strong:"Bold",quiet:"Quiet"},Go={highlight:{kind:"wordHighlight",delimiter:"@@"},strong:{kind:"wordStrong",delimiter:"++"},quiet:{kind:"wordQuiet",delimiter:"^^"}},Mh=Object.fromEntries(ea.map(e=>[Go[e].kind,e])),Hh="data-sf-ws",ys=["accent","text","labels"],Wh={accent:"Accent",text:"Text",labels:"Labels"},nt={accent:"var(--accent)",text:"var(--fg)",labels:"var(--fg-dim)"},S1=80,C1=120,w1=100,k1=900,v1=.5,T1=3,P1=-.1,E1=.5,O1=3,od={font:null,size:null,weight:null,bold:null,italic:null,lineGap:null,textGap:null,colour:null},F1={highlight:{...od},strong:{...od},quiet:{...od}};function _h(e,o,t){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,o),t))}function Dh(e,o,t){if(typeof e!="number"||!Number.isFinite(e))return null;let a=10**O1;return Math.round(Math.min(Math.max(e,o),t)*a)/a}function Nh(e){return typeof e=="boolean"?e:null}function L1(e){let o=typeof e?.font=="string"&&vo.some(a=>a.key===e.font)?e.font:null,t=typeof e?.colour=="string"&&ys.includes(e.colour)?e.colour:null;return{font:o,size:_h(e?.size,S1,C1),weight:_h(e?.weight,w1,k1),bold:Nh(e?.bold),italic:Nh(e?.italic),lineGap:Dh(e?.lineGap,v1,T1),textGap:Dh(e?.textGap,P1,E1),colour:t}}function zh(e){let o={};for(let t of ea)o[t]=e&&t in e&&e[t]?L1(e[t]):{...F1[t]};return o}function r9(e){let o=zh(e),t={};for(let a of ea){let r=o[a],n=`--sf-ws-${a}`;if(r.font){let s=vo.find(i=>i.key===r.font);s&&(t[`${n}-font`]=`var(${s.cssVar})`)}r.size!==null&&(t[`${n}-size`]=`${r.size/100}em`),r.weight!==null&&(t[`${n}-weight`]=String(r.weight)),r.bold!==null&&(t[`${n}-weight-bold`]=r.bold?"700":"400"),r.italic!==null&&(t[`${n}-style`]=r.italic?"italic":"normal"),r.lineGap!==null&&(t[`${n}-line`]=String(r.lineGap)),r.textGap!==null&&(t[`${n}-track`]=`${r.textGap}em`),r.colour!==null&&(t[`${n}-color`]=nt[r.colour])}return t}function n9(e){let o=e?.word_styles??void 0,t={};for(let a of ea)o&&a in o&&(t[a]=o[a]??null);return zh(t)}var W1=new Set(["strong"]),Gh=ea.map(e=>({open:Go[e].delimiter,close:Go[e].delimiter,kind:Go[e].kind,...W1.has(e)?{wordStart:!0}:{}})),b9=[{style:Go.highlight.kind,label:oa.highlight,title:`${oa.highlight} word style`},{style:Go.strong.kind,label:oa.strong,title:`${oa.strong} word style`},{style:Go.quiet.kind,label:oa.quiet,title:`${oa.quiet} word style`}],z1=new Set(Gh.map(e=>e.open)),ta=[...H1.filter(e=>!z1.has(e.open)),...Gh];function td(e){return e.bullet?"- ":e.number!=null?`${e.number}. `:""}function ad(e){return N1(typeof e=="string"?e:"",ta)}var G1=D1.map(e=>e.style).filter(e=>!M1.includes(e)).filter(e=>ta.some(o=>o.kind===e));function Uh(){return _1(G1)}var $h=Object.fromEntries(ea.map(e=>[Go[e].kind,Go[e].delimiter]));function jh(e,o,t,a){let r=$h[a];if(!r)return A1(e,o,t,a);let n=e.slice(o,t),s=e.slice(Math.max(0,o-r.length),o),i=e.slice(t,t+r.length);if(s===r&&i===r)return{text:e.slice(0,o-r.length)+n+e.slice(t+r.length),selectionStart:o-r.length,selectionEnd:o-r.length+n.length};let c=n||"styled text";return{text:e.slice(0,o)+r+c+r+e.slice(t),selectionStart:o+r.length,selectionEnd:o+r.length+c.length}}function qh(e,o,t,a){let r=$h[a];return r?o>=r.length&&e.slice(o-r.length,o)===r&&e.slice(t,t+r.length)===r:B1(e,o,t,a)}function Hr(e){return ad(e).map(o=>td(o)+Vh(o.children)).join(`
|
|
2
|
-
`)}function Kh(e,o,t){return R1(e,o,t,ta)}function Vh(e){return e.map(o=>o.kind==="text"?o.text:Vh(o.children)).join("")}function X1(e,o,t){return K1(e,o,t,jh)}function Yh(e,o){let t=q1(o,e.length),a=Kh(e,t.start,t.end);return a.text===e?null:a}function Z1(e){let[o,t]=j1(null);return $1(()=>{let a=e.current?.ownerDocument??(typeof document>"u"?null:document);if(!a)return;let r=()=>{let n=e.current;if(!n||a.activeElement!==n)return;let s=n.selectionStart??n.value.length,i=n.selectionEnd??s;t(c=>c&&c.start===s&&c.end===i?c:{start:s,end:i})};return a.addEventListener("selectionchange",r),()=>a.removeEventListener("selectionchange",r)},[e]),[o,t]}function Q1({target:e,value:o,onChange:t,disabled:a=!1,label:r="Formatting"}){let n=V1({target:e,onChange:t}),[s,i]=Z1(e),c=u=>n(h=>{let g=X1(o,u,h);return i({start:g.selectionStart,end:g.selectionEnd}),g}),f=Uh(),m={};if(s)for(let u of f)m[u.style]=qh(o,s.start,s.end,u.style);let x=a?null:Yh(o,s);return U1(Y1,{offered:new Set(f.map(u=>u.style)),onMark:u=>c(u),pressed:m,disabled:a,"aria-label":l(r),className:"sf-markup-bar",clear:x?{onClear:()=>n(()=>{let u=e.current,h=u&&u.ownerDocument.activeElement===u?{start:u.selectionStart??0,end:u.selectionEnd??0}:null,g=Yh(o,h)??{text:o,selectionStart:h?.start??0,selectionEnd:h?.end??0};return i({start:g.selectionStart,end:g.selectionEnd}),g})}:void 0})}var rd=Q1;import{deviceField as Ee}from"efficient-easel/screen/lib/document/device-fields";import{NO_CONTROL_FIELD as cB,NoControlMark as dB,noControlField as fb}from"efficient-easel/screen/lib/document/panel-no-control-mark";var nd="__ownBox";function Xh(e){return!!e&&typeof e=="object"&&e[nd]===!0}function Ss(e,o,t){return typeof e=="number"?e:typeof o=="number"?o:t}var Cs=void 0;import{phoneKey as ca}from"efficient-easel/draw";import{jsx as ld,Fragment as oF}from"react/jsx-runtime";import{createContext as tF,useContext as aF}from"react";var ws={ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},ks={Events:["posts"],SubscribeBlogs:["posts"]};var J1=["anchor"],eF=/^href$|Href$|^url$|Url$|^link$|^mailto$|^tel$/;function Wr(e){return J1.includes(e)||eF.test(e)}var sd={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"}}};sd.ContactLocations={"locations[].lat":{verb:"pii"},"locations[].lng":{verb:"pii"},"locations[].mapsUrl":{verb:"pii"},"locations[].geocode":{verb:"pii"}};var A9=Object.fromEntries(Object.entries(ws).map(([e,o])=>[e,Object.keys(o)])),R9=Object.fromEntries(Object.entries(ks).map(([e,o])=>[e,[...o]]));import{NoControlMark as rF}from"efficient-easel/screen/lib/document/panel-no-control-mark";var Zh=tF(!1);function Qh({children:e}){return ld(Zh.Provider,{value:!0,children:e})}function nF(){return aF(Zh)}function Jh({name:e,children:o}){return!nF()||!e||!sF(e)||Wr(e)?ld(oF,{children:o}):ld(rF,{})}function sF(e){return/^[A-Za-z0-9_$]+$/u.test(e)}function to(e,o,t){return e.some(a=>(typeof a=="object"?a.value:a)===t)?t:o}var id="off",cd="none",dd=[{label:"None",value:"off"},{label:"1, 2, 3",value:"plain"},{label:"01, 02, 03",value:"padded"},{label:"N\xB001, N\xB002",value:"numero"}],fd=[{label:"None",value:"none"},{label:"Hairline",value:"hairline"}];function G9(e){return to(dd,id,e)}function U9(e){return to(fd,cd,e)}var eI="sf-card-index",zr="sf-card-index",$9="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",lF={plain:`counter(${zr})`,padded:`counter(${zr}, decimal-leading-zero)`,numero:`"N\xB0" counter(${zr}, decimal-leading-zero)`};function j9(e,o){return o==="off"?"":`.${e}{counter-reset:${zr}}.${e} .${eI}{counter-increment:${zr}}.${e} .${eI}::before{content:${lF[o]}}`}function q9(e){return e==="hairline"?"border border-line hover:border-accent":""}var oI=[{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 fB}from"efficient-easel/draw";import{jsx as Uo}from"react/jsx-runtime";import{SettingsDefaultReset as dF,SettingsField as tI}from"efficient-easel/panel";import{useSelectedFields as iF}from"efficient-easel/easel";function Na(){try{return iF()}catch{return null}}import{FOCAL_DEFAULT as fF}from"efficient-shell/format";import{ImageIcon as aI,PlayIcon as rI}from"efficient-easel/icons";import{MediaUploadField as uF}from"efficient-shell/ui";import{useContext as pF}from"react";import{ScreenDocumentContext as mF}from"efficient-easel/screen/components/ScreenDocumentContext";import{phoneKey as xF}from"efficient-easel/draw";import{usePreviewDevice as hF}from"efficient-easel/draw/client";import{requestMediaPick as IF}from"efficient-easel/screen/lib/media-picker";import{useEaselHost as gF}from"efficient-easel/screen/lib/host";import{backendOf as cF}from"efficient-easel/screen/lib/session";var He=cF,vs=e=>e.blocks;import{useEaselSession as bF}from"efficient-easel/screen/lib/session-context";function yF(e,o){let t=Na(),a=hF()==="mobile";if(!e||!t||o&&!o(t.values??{}))return null;let r=typeof t.values?.[e]=="string"&&t.values[e]?String(t.values[e]):fF,n=xF(e),s=typeof t.values?.[n]=="string"&&t.values[n]?String(t.values[n]):void 0,i=t.onChange;return{phone:a,desktop:r,own:s,focus:a?s??r:r,set:c=>i(a?n:e,c),clear:()=>i(n,Cs)}}function nI({value:e,onChange:o,label:t,accept:a,placeholder:r,focusKey:n,focusWhen:s,frameKey:i,fieldKey:c}){let f=gF(),m=bF(),x=l(t),u=a.startsWith("video"),h=yF(u?void 0:n,s),g=pF(mF),w=ud(),T=i&&c?{video:c,frame:i}:null,E=v=>IF(f,{accept:a,title:x,...v?{file:v}:{}}).then(y=>!y||!T?y?.url??null:(w({[T.video]:y.url,[T.frame]:y.posterUrl??""}),null)),C=T?v=>v?o(v):w({[T.video]:"",[T.frame]:""}):o;if(g&&!g.capabilities.mediaEditing)return Uo(tI,{label:x,icon:u?Uo(rI,{}):Uo(aI,{}),children:Uo("div",{className:"sf-image-slot-inert",children:u?l("Templates don\u2019t store videos \u2014 this slot stays a placeholder. Each website picks its own after it\u2019s created."):l("Templates don\u2019t store images \u2014 this slot stays a placeholder. Each website picks its own after it\u2019s created.")})});let I=Et(e),S=h?.phone&&I?Uo(dF,{words:X()?.panel,label:l("Image focus"),changed:!!h.own,detail:l("{value} on desktop",{value:h.desktop}),onReset:h.clear}):void 0;return Uo(tI,{label:x,icon:u?Uo(rI,{}):Uo(aI,{}),action:S,children:Uo("div",{style:{flex:"1 1 auto",minWidth:0},children:Uo(uF,{value:I,onChange:C,onPick:E,accept:u?"video/*":"image/*",kind:u?"video":"image",placeholder:r===void 0?void 0:l(r),maxSizeBytes:He(m).media.maxUploadBytes,...h?{focus:h.focus,onFocusChange:h.set}:{}})})})}import{jsx as sI}from"react/jsx-runtime";import{useId as SF}from"react";import{FieldSelect as CF}from"efficient-easel/fields";import{SettingsField as wF}from"efficient-easel/panel";function kF(e){return e.map(({value:o,label:t,note:a})=>({value:o,label:t,...a?{meta:a}:{}}))}function lI({label:e,options:o,value:t,onChange:a,emptyLabel:r,icon:n,hint:s}){let i=SF(),c=`${i}-label`,f=`${i}-button`,m=Array.isArray(t)?t:[];return sI(wF,{label:l(e),labelId:c,icon:n,hint:s,children:sI(CF,{id:f,multiple:!0,value:m,options:kF(o),onChange:a,placeholder:r===void 0?l("None"):l(r),ariaLabelledBy:`${c} ${f}`,inline:!0})})}import{jsx as Ne,jsxs as ra,Fragment as NF}from"react/jsx-runtime";import{useCallback as gI,useContext as MF,useId as SI,useRef as bI,useState as yI}from"react";import{ThemeIcon as HF}from"efficient-easel/icons";import{Button as WF,useClickOutside as zF}from"efficient-shell/ui";import{SettingsField as GF}from"efficient-easel/panel";import{ScreenDocumentContext as UF}from"efficient-easel/screen/components/ScreenDocumentContext";import{useCallback as gd,useEffect as uI,useRef as Os}from"react";import{currentEaselSession as PF}from"efficient-easel/screen/lib/session";import{useEaselSession as EF}from"efficient-easel/screen/lib/session-context";import{useSyncExternalStore as vF}from"react";var cI,pd=null,aa=null,Ts=0,md=new Set;function xd(e){cI=e;for(let o of md)o()}function hd(e){pd=e,Ts+=1,aa&&clearTimeout(aa),aa=null,xd(void 0)}function dI(e){Ts+=1,xd(e)}function Ps(e=250){pd&&(aa&&clearTimeout(aa),aa=setTimeout(()=>{aa=null;let o=pd;if(!o)return;let t=++Ts;o().then(a=>{t===Ts&&xd(a)}).catch(()=>{})},e))}function iI(){return cI}function TF(e){return md.add(e),()=>{md.delete(e)}}function Es(){return vF(TF,iI,iI)}var Id=new Set;function fI(e){return Id.add(e),()=>{Id.delete(e)}}async function TK(){let e=(await Promise.allSettled([...Id].map(async o=>o()))).find(o=>o.status==="rejected");if(e)throw e.reason}import{WebsiteBackendError as OF}from"efficient-easel/screen/lib/backend-error";function pI(e=PF()){return(o,t,a)=>{let r=He(e).theme;return r?r.update(o,a?{siteId:a}:void 0):Promise.reject(new OF("invalid","This backend stores no site theme."))}}function mI(e){return e.themeFromDocument?{status:"skipped",reason:"template"}:e.token?null:{status:"skipped",reason:"no-token"}}async function FF(e,o=pI()){let{themeFromDocument:t,token:a,siteId:r,patch:n}=e,s=mI({themeFromDocument:t,token:a});if(s)return s;if(Object.keys(n).length===0)return{status:"skipped",reason:"empty"};try{return await o(n,a,r??void 0),{status:"saved"}}catch(i){return{status:"failed",error:i}}}function Ma({themeFromDocument:e,tokenRef:o,siteId:t,onResult:a}){let r=Os(null),n=Os({}),s=EF(),i=Os(a);i.current=a;let c=Os(null),f=gd(u=>{if(u.status==="skipped"){let h=`skipped:${u.reason}`;if(c.current===h)return;c.current=h}else c.current=null;i.current?.(u)},[]),m=gd(async()=>{r.current&&(clearTimeout(r.current),r.current=null);let u=n.current;n.current={};let h=await FF({themeFromDocument:e,token:o?.current,siteId:t,patch:u},pI(s));return f(h),h.status==="saved"&&Ps(),h.status==="failed"&&(n.current={...u,...n.current}),h},[e,o,t,f,s]),x=gd((u,h=!1)=>{let g=mI({themeFromDocument:e,token:o?.current});if(g){f(g);return}n.current={...n.current,...u},r.current&&clearTimeout(r.current),h?m():r.current=setTimeout(()=>{m()},500)},[e,o,m,f]);return uI(()=>()=>{m()},[m]),uI(()=>fI(async()=>{if(!r.current&&Object.keys(n.current).length===0)return;let u=await m();if(u.status==="failed")throw u.error}),[m]),{persist:x,flush:m}}var bd=[{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}],LF=bd.filter(e=>e.ink);function AF(e){let o={color:e.fg};for(let{role:t,token:a}of LF)o[a]=e[t];return o}var RF={fg:"var(--overlay-fg)",line:"color-mix(in srgb, var(--overlay-fg) 24%, transparent)",muted:"color-mix(in srgb, var(--overlay-fg) 76%, transparent)"},xI=Object.freeze(AF(RF));var Fs=-1,BF="sf-section-accent",hI="Color",II=new Set(["CategoryBar","DocTabs"]),MK=new Set(["Flex"]),_F=0;function Ft(e){return e===Fs?null:typeof e=="number"&&Number.isInteger(e)&&e>=0?e:_F}function yd(e){return e??Fs}function DF(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:a}of bd)t[`--sf-sec-${a}`]=`var(${o}-${a}, var(--theme-${a}))`;return t}function HK(e){let o=Ft(e.sectionAccent);return o===null?null:{className:BF,style:DF(o)}}var $F="Follow the page",JK="Follow the slideshow",jF=e=>l("Editing {name} changes it everywhere.",{name:e});function qF({colors:e}){if(!e)return Ne("span",{className:"sf-secttheme-chip sf-secttheme-chip--none","aria-hidden":"true"});let o=Wo(e);return ra("span",{className:"sf-secttheme-chip","aria-hidden":"true",children:[Ne("i",{style:{background:o.background}}),Ne("i",{className:"sf-secttheme-chip-accent",style:{background:o.accent}})]})}function KF({themes:e,value:o,onPick:t,onEdit:a,menuId:r,followLabel:n}){return ra("div",{className:"sf-multi-menu sf-secttheme-menu",id:r,role:"listbox",children:[n!==void 0&&ra(NF,{children:[ra("button",{type:"button",role:"option","aria-selected":o===null,className:`sf-secttheme-item${o===null?" is-active":""}`,onClick:()=>t(Fs),children:[Ne(qF,{}),Ne("span",{className:"sf-secttheme-name",children:l(n)})]}),Ne("div",{className:"sf-secttheme-sep",role:"presentation"})]}),o!==null&&e[o]&&Ne("p",{className:"sf-secttheme-oncard",role:"presentation",children:l("{name} is on this section",{name:Rr(o)})}),e.map((s,i)=>i===o?null:Ne(cs,{role:"option",index:i,colors:s,selected:!1,onPick:()=>t(i),onEdit:()=>a(i)},i))]})}function VF({index:e,colors:o,onChange:t,onDone:a}){let r=Rr(e),n=SI();return ra("div",{className:"sf-secttheme-sheet",children:[ra("div",{className:"sf-secttheme-sheet-head",children:[Ne("span",{children:r}),Ne(WF,{variant:"secondary",className:"sf-secttheme-done",onClick:a,children:l("Done")})]}),Ne("div",{className:"sf-secttheme-rows",children:Ne(_c,{colors:o,onChange:t,idPrefix:n})}),Ne("p",{className:"sf-secttheme-warn",children:jF(r)})]})}function CI({value:e,onChange:o,followLabel:t,hint:a}){let{theme:r,setTheme:n}=ee(),s=Ge(r),i=MF(UF),c=i?.tokenRef,f=i?.siteId??null,m=!i?.capabilities?.hasSiteTheme,{persist:x,flush:u}=Ma({themeFromDocument:m,tokenRef:c,siteId:f}),h=Ge(s),g=h.themes,w=Ft(e),T=w!==null?g[w]:void 0,E=T??(g.length?vt(h):void 0),[C,I]=yI(!1),[S,v]=yI(null),y=bI(null),O=bI(null),A=SI(),N=gI(()=>{I(!1),v(null)},[]),W=gI(()=>{!C&&S===null||(u(),N())},[C,S,N,u]);zF(y,W);let D=R=>{o(R),N()},P=R=>{if(S===null)return;let F=g.map((U,Y)=>Y===S?R:U),M={...h,themes:F};n(M),x({selected_preset:M.selected,theme_presets:M.themes})};return ra("div",{className:"sf-secttheme",ref:y,children:[Ne(GF,{label:l("Theme"),icon:Ne(HF,{}),labelId:`${A}-label`,hint:a,children:Ne(Wx,{colors:E,onEdit:w!==null?()=>{v(w),I(!1)}:void 0,name:T?Rr(w):l(t??$F),nameId:`${A}-value`,labelId:`${A}-label`,open:C,menuId:A,buttonRef:O,onClick:()=>{v(null),I(R=>!R)},onKeyDown:R=>{R.key==="Escape"&&(C||S!==null)&&(R.preventDefault(),N())}})}),C&&S===null&&Ne("div",{onKeyDown:R=>{R.key==="Escape"&&(R.preventDefault(),N(),O.current?.focus())},children:Ne(KF,{themes:g,value:w,onPick:D,onEdit:R=>{v(R),I(!1)},menuId:A,followLabel:t})}),S!==null&&g[S]&&Ne(VF,{index:S,colors:g[S],onChange:P,onDone:()=>{u(),N(),O.current?.focus()}})]})}import{jsx as wI}from"react/jsx-runtime";import{useId as YF}from"react";import{FieldSelect as XF}from"efficient-easel/fields";import{SettingsField as ZF}from"efficient-easel/panel";function QF(e){return e.map(({value:o,label:t,group:a,thumb:r,meta:n})=>({value:o,label:t,...a!==void 0?{group:a}:{},...r!==void 0?{thumb:r}:{},...n!==void 0?{meta:n}:{}}))}function sV({label:e,options:o,fallback:t,value:a,onChange:r,placeholder:n,bare:s=!1,icon:i}){let c=YF(),f=`${c}-label`,m=`${c}-button`,x=a??"",u=o.some(T=>T.value===x)?x:t,h=l(e),g=n===void 0?void 0:l(n),w=wI(XF,{id:m,value:u,options:QF(o),onChange:r,placeholder:g,searchPlaceholder:g,...s?{ariaLabel:h}:{ariaLabelledBy:`${f} ${m}`},searchable:!0,groupCount:!0,inline:!0});return s?w:wI(ZF,{label:h,labelId:f,icon:i,children:w})}import{jsx as sa,jsxs as OL}from"react/jsx-runtime";import{SettingsField as VI}from"efficient-easel/panel";import{LinkIcon as FL}from"efficient-easel/icons";import{LinkPicker as LL,TextLinkField as AL}from"efficient-shell/ui";import{useEffect as KI,useMemo as Bs,useRef as RL,useState as Rs}from"react";import{currentEaselSession as JF}from"efficient-easel/screen/lib/session";function kI(){return JF().auth.token}import{currentEaselSession as BL}from"efficient-easel/screen/lib/session";import{useScreenDocument as _L}from"efficient-easel/screen/components/ScreenDocumentContext";var eL=()=>({choosePage:l("Choose a page"),chooseSection:l("Choose a section"),noSections:l("No section anchors yet"),sectionHint:l("Jumps to a section on that page."),choosePost:l("Choose a post"),chooseProduct:l("Choose a product"),choosePopup:l("Choose a popup")});function vI(e,o,t){if(!e)return"page";if(yh(e))return"popup";if(e.startsWith("/journal/"))return"blog";if(wh(e))return"product";if(e.includes("#")){let a=e.slice(0,e.indexOf("#"));if(a===""||a==="/"||o.includes(a))return"anchor"}return e==="/"||o.includes(e)||t&&t.listingPaths.includes(t.targetOf(e))?"page":"custom"}function Sd(e,o){let t=eL(),a=e.pages.map(m=>({value:Mr(m.slug),label:m.title})),r=o?.pageOptions?o.pageOptions(a):a,n=r.map(m=>m.value),s=e.pages.map(m=>({label:m.title,options:Ch(...m.docs).map(x=>({value:Is(m.slug,x.slug),label:x.name}))})).filter(m=>m.options.length>0),i=m=>{switch(m){case"page":return{type:"select",options:r,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(x=>({value:Sh(x.slug),label:x.title||x.slug})),placeholder:t.choosePost};case"product":return{type:"select",options:e.products.map(x=>({value:x.href,label:x.name||x.href})),placeholder:t.chooseProduct};case"popup":return{type:"select",options:(e.popups??[]).map(x=>({value:bh(x.slug),label:x.title||x.slug})),placeholder:t.choosePopup};case"custom":return{type:"text"}}},c=gh(e.offers).map(m=>({value:m.value,label:l(m.label),target:i(m.value),...m.value==="anchor"?{hint:t.sectionHint}:{},...m.value==="blog"||m.value==="product"||m.value==="popup"?{hideWhenEmpty:!0}:{}}));if(!o)return{kinds:c,rules:{kindOf:m=>vI(m,n),targetOf:m=>m,readFilter:()=>null,withFilter:m=>m}};let f=m=>{let x=o.withFilter(m,null);return o.listingPaths.includes(x)?x:m};return{kinds:c,rules:{kindOf:m=>vI(m,n,{listingPaths:o.listingPaths,targetOf:f}),targetOf:f,readFilter:o.readFilter,withFilter:o.withFilter},filtersFor:m=>o.listingPaths.includes(m)?o.filtersFor(m):null}}import{useEaselSession as DL}from"efficient-easel/screen/lib/session-context";var $=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function Ue(e,o){if(typeof e=="string")return e||o;if(e&&typeof e=="object"&&"text"in e){let t=e.text;return ie(t)??o}return o}function TI(e,o){return $(e)??o}function Lt(e,o){return typeof e=="boolean"?e:o}function Ls(e,o){if(!Array.isArray(e))return o;let t=e.map(a=>typeof a=="string"?a:Ue(a?.text,"")).map(a=>a.trim()).filter(Boolean);return t.length?t:o}var EI=["delay","scroll","exit"],OI=["all","chosen","except"],FI=["visit","days","never","once"],oL=["all","desktop","phone"],tL=["stop","continue"],LI={min:0,max:60},AI={min:10,max:90},RI={min:1,max:90},Po={autoOpen:!1,trigger:"delay",autoOpenDelaySec:15,scrollPercent:50,showOn:"all",showOnPages:[],devices:"all",hideAfter:"days",hideDays:7,afterSubmit:"stop",startDate:null,endDate:null};function To(e,o,t){return typeof o=="string"&&e.includes(o)?o:t}function Ha(e,o,t){let a=TI(e,t);return Math.min(o.max,Math.max(o.min,Math.round(a)))}function aL(e){return typeof e.hideAfter=="string"?To(FI,e.hideAfter,Po.hideAfter):e.oncePerSession===!0?"visit":e.oncePerSession===!1?"never":Po.hideAfter}function rL(e){return Array.isArray(e)?e.map(o=>typeof o=="string"?o.trim():"").filter(Boolean).map(o=>o.startsWith("/")?o:`/${o}`):[]}function PI(e){if(typeof e!="string")return null;let o=e.trim();return/^\d{4}-\d{2}-\d{2}$/.test(o)?o:null}function BI(e){let o=e??{},t=Po;return{autoOpen:Lt(o.autoOpen,t.autoOpen),trigger:To(EI,o.trigger,t.trigger),autoOpenDelaySec:Ha(o.autoOpenDelaySec,LI,t.autoOpenDelaySec),scrollPercent:Ha(o.scrollPercent,AI,t.scrollPercent),showOn:To(OI,o.showOn,t.showOn),showOnPages:rL(o.showOnPages),devices:To(oL,o.devices,t.devices),hideAfter:aL(o),hideDays:Ha(o.hideDays,RI,t.hideDays),afterSubmit:To(tL,o.afterSubmit,t.afterSubmit),startDate:PI(o.startDate),endDate:PI(o.endDate)}}import{parseHexColor as nL}from"efficient-shell/format";var Wa="#000000";var Cd="popup",sL=Ba,lL=["auto","full"],iL=["inside","outside","none"],cL={min:240,max:1440},dL={min:0,max:100},Gr={placement:"center",fullWidth:!1,width:720,height:"auto",tintColor:Wa,tintOpacity:60,outsideClick:!0,closeButton:"inside"};function fL(e,o){let t=typeof e=="string"?e.trim():"";return t&&nL(t)===t.toLowerCase()?t:o}function _I(e,o=Gr){let t=e??{},a=o;return{placement:To(sL,t.placement,a.placement),fullWidth:Lt(t.fullWidth,a.fullWidth),width:Ha(t.width,cL,a.width),height:To(lL,t.height,a.height),tintColor:fL(t.tintColor,a.tintColor),tintOpacity:Ha(t.tintOpacity,dL,a.tintOpacity),outsideClick:Lt(t.outsideClick,a.outsideClick),closeButton:To(iL,t.closeButton,a.closeButton)}}var DI="cart-drawer",EV="cart-drawer",uL={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 OV(e,o){return o===0?e.subtitleEmpty:o===1?e.subtitleOne:e.subtitleMany.replace("{count}",String(o))}function FV(e){let o=e??{},t=uL;return{kickerBadge:Ue(o.kickerBadge,t.kickerBadge),kickerText:Ue(o.kickerText,t.kickerText),titleLead:Ue(o.titleLead,t.titleLead),titleAccent:Ue(o.titleAccent,t.titleAccent),subtitleEmpty:Ue(o.subtitleEmpty,t.subtitleEmpty),subtitleOne:Ue(o.subtitleOne,t.subtitleOne),subtitleMany:Ue(o.subtitleMany,t.subtitleMany),leadTimeValue:Ue(o.leadTimeValue,t.leadTimeValue),shipsToFallback:Ue(o.shipsToFallback,t.shipsToFallback),promises:Ls(o.promises,t.promises),emptyKicker:Ue(o.emptyKicker,t.emptyKicker),emptyBody:Ue(o.emptyBody,t.emptyBody)}}var LV={...Gr,width:520,tintOpacity:68};var MI="consent-banner",_V="consent-banner";var pL=[{value:"bar",label:"Bar"},{value:"card",label:"Card"}],DV="Layout",NI={layout:"bar"},mL=e=>pL.some(o=>o.value===e);function NV(e){let o=Ue((e??{}).layout,NI.layout);return{layout:mL(o)?o:NI.layout}}var MV={...Gr,placement:"bottom-center",fullWidth:!0,width:440,tintOpacity:0,outsideClick:!1,closeButton:"none"};var xL="consentWords",hL=["eyebrow","notice","accept","reject","choose"];function wd(e){let o=(e??{})[xL];return typeof o=="string"&&hL.includes(o)?o:null}function kd(e){let o=e?.props;return o?wd(o)!==null?!0:Object.values(o).some(t=>Array.isArray(t)&&t.some(a=>a&&typeof a=="object"&&"props"in a&&kd(a))):!1}var IL=["meta","eyebrow","heading","body","statName","statValue","formEyebrow","formHeading","formIntro","fieldLabel","option","finePrint","dismiss","doneHeading","doneBody"],zV={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"},gL={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"},GV={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 HI(e){let o={};for(let t of IL){let a=ot(e[gL[t]]);a&&(o[t]=a)}return o}var WI={heading:"Join our email list",placeholder:"Email address",buttonLabel:"Subscribe"},bL={lead:"We accept"},zI={...bL,methods:[],size:"sm",align:"start",dataSource:"shop-payment-methods"},za="site-footer";var $V=za,jV={desktop:!0,tablet:!0,mobile:!0},qV={desktop:!1,tablet:!1,mobile:!1},vd=1,GI=6,KV=Array.from({length:GI-vd+1},(e,o)=>vd+o),As={desktop:6,tablet:3,mobile:2},yL={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}},na=e=>Math.min(Math.max(Math.round(e),vd),GI);function VV(e){if(typeof e=="number")return yL[na(e)]??{desktop:na(e),tablet:na(e),mobile:na(e)};if(e&&typeof e=="object"){let o=e;return{desktop:na(o.desktop??As.desktop),tablet:na(o.tablet??As.tablet),mobile:na(o.mobile??As.mobile)}}return{...As}}var Td="subscribe-popup",tY="subscribe-popup",SL=[Td,za,DI,MI];function $I(e){return SL.includes(e)}var CL=["right","left"],wL={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:Po.autoOpen,autoOpenDelaySec:Po.autoOpenDelaySec,formSlug:"",trigger:Po.trigger,scrollPercent:Po.scrollPercent,showOn:Po.showOn,showOnPages:[],hideAfter:Po.hideAfter,hideDays:Po.hideDays,formSide:"right",valuePanelOnPhone:!1,sectionAccent:void 0,sectionCorners:void 0,sectionCornerSides:void 0,textStyles:{}},Pe=Ue,kL=Lt,jI=Ls;function UI(e,o){if(e==null)return o;let t=a=>a.trim()?a:"";if(typeof e=="string")return t(e);if(typeof e=="object"&&"text"in e){let a=e.text;return typeof a=="string"?t(a):""}return o}function vL(e,o){return Array.isArray(e)?jI(e,[]):o}function TL(e,o){return Array.isArray(e)?e.map(t=>{let a=t??{};return{label:Pe(a.label,""),value:Pe(a.value,"")}}).filter(t=>t.label||t.value):o}function rY(e){let o=e??{},t=wL,a=BI(o);return{metaLabel:Pe(o.metaLabel,t.metaLabel),issueLabel:UI(o.issueLabel,t.issueLabel),issueNumber:UI(o.issueNumber,t.issueNumber),kicker:Pe(o.kicker,t.kicker),heading:Pe(o.heading,t.heading),deck:Pe(o.deck,t.deck),stats:TL(o.stats,t.stats),formLabel:Pe(o.formLabel,t.formLabel),formHeading:Pe(o.formHeading,t.formHeading),formIntro:Pe(o.formIntro,t.formIntro),firstNameLabel:Pe(o.firstNameLabel,t.firstNameLabel),firstNamePlaceholder:Pe(o.firstNamePlaceholder,t.firstNamePlaceholder),emailLabel:Pe(o.emailLabel,t.emailLabel),emailPlaceholder:Pe(o.emailPlaceholder,t.emailPlaceholder),interestsLabel:Pe(o.interestsLabel,t.interestsLabel),interests:jI(o.interests,t.interests),frequencyLabel:Pe(o.frequencyLabel,t.frequencyLabel),frequencies:vL(o.frequencies,t.frequencies),submitText:Pe(o.submitText,t.submitText),finePrint:Pe(o.finePrint,t.finePrint),dismissText:Pe(o.dismissText,t.dismissText),emailInvalidText:Pe(o.emailInvalidText,t.emailInvalidText),submitErrorText:Pe(o.submitErrorText,t.submitErrorText),successHeading:Pe(o.successHeading,t.successHeading),successBody:Pe(o.successBody,t.successBody),keepBrowsingText:Pe(o.keepBrowsingText,t.keepBrowsingText),formSlug:typeof o.formSlug=="string"?o.formSlug.trim():t.formSlug,autoOpen:a.autoOpen,autoOpenDelaySec:a.autoOpenDelaySec,trigger:a.trigger,scrollPercent:a.scrollPercent,showOn:a.showOn,showOnPages:a.showOnPages,hideAfter:a.hideAfter,hideDays:a.hideDays,formSide:To(CL,o.formSide,t.formSide),valuePanelOnPhone:kL(o.valuePanelOnPhone,t.valuePanelOnPhone),sectionAccent:o.sectionAccent,sectionCorners:o.sectionCorners,sectionCornerSides:o.sectionCornerSides,textStyles:HI(o)}}function PL(e,o=Math.random){for(;;){let t=`popup-${Math.floor(o()*2176782336).toString(36).padStart(6,"0")}`;if(!e.has(t))return t}}function EL(e){return{root:{props:{title:e,kind:Cd}},content:[],zones:{}}}function qI(e,o,t){return{slug:PL(o,t),title:e,kind:"lightbox",layout:EL(e)}}function Pd(e){return e?.root?.props?.kind===Cd}function YI(e){let o=new Map;return(t="")=>{let a=kI(),r=o.get(t);if(!r||r.token===null&&a!==null){let n=a||!BL().usesBridgedToken?e(a??"",t).catch(()=>[]):Promise.resolve([]);return o.set(t,{promise:n,token:a}),n}return r.promise}}var NL=YI(async(e,o)=>{let t=o?{siteId:o}:void 0,{pages:a}=He();return a.linkTargets?a.linkTargets(t):(await a.list(t)).map(r=>({id:r.id,slug:r.slug,label:r.label,layout:null}))}),ML=YI(async(e,o)=>await He().blog?.posts(o?{siteId:o}:void 0)??[]);function HL({value:e,onChange:o,label:t="Link",data:a,filters:r}){let n=Bs(()=>Sd(a,r),[a,r]),s=l(t);return sa(VI,{label:s,icon:sa(FL,{}),children:sa(LL,{value:e,onChange:i=>o(i),kinds:n.kinds,rules:n.rules,filtersFor:n.filtersFor,label:s})})}function XI(){let{siteId:e,capabilities:o}=_L(),{offersCommerce:t,hasBlog:a}=o,[r,n]=Rs([]),[s,i]=Rs([]),[c,f]=Rs([]),[m,x]=Rs(null),u=DL().chrome,h=u?.products?.list,g=u?.linkFilters,w=g?void 0:u?.linkRow,T=RL(!0);KI(()=>(T.current=!0,()=>{T.current=!1}),[]),KI(()=>{let I=!0;return NL(e??void 0).then(S=>I&&T.current&&n(S)),a&&ML(e??void 0).then(S=>I&&T.current&&i(S)),t&&h?.().then(S=>I&&T.current&&f(S)),t&&g?g.load(e).catch(()=>null).then(S=>I&&T.current&&x(()=>S)):x(null),()=>{I=!1}},[e,t,a,h,g]);let E=Bs(()=>({pages:r.filter(I=>!$I(I.slug)&&!Pd(I.layout)).map(I=>({slug:I.slug,title:I.label,docs:[I.layout]})),popups:r.filter(I=>I.slug===Td||Pd(I.layout)).map(I=>({slug:I.slug,title:I.label})),posts:a?s.map(I=>({slug:I.slug,title:I.title})):[],products:t?c.map(I=>({href:I.href,name:I.name})):[],offers:{offersCommerce:t,offersService:a}}),[r,s,c,t,a]),C=Bs(()=>m?m(E.pages):null,[m,E]);return{data:E,filters:C,pages:r,offersCommerce:t,HostLinkRow:w}}function wY({label:e,icon:o,text:t,onTextChange:a,link:r,onLinkChange:n}){let{data:s,filters:i}=XI(),c=Bs(()=>Sd(s,i),[s,i]),f=l(e);return sa(VI,{label:f,icon:o,children:sa(AL,{label:f,text:t,onTextChange:a,link:r,onLinkChange:m=>n(m),kinds:c.kinds,rules:c.rules,filtersFor:c.filtersFor})})}function ZI({value:e,onChange:o,label:t="Link"}){let a=typeof e=="string"?e:"",{data:r,filters:n,pages:s,offersCommerce:i,HostLinkRow:c}=XI(),f=r.pages.map(x=>Mr(x.slug)),m=i&&c&&(a==="/"||f.includes(a))?c:void 0;return OL("div",{children:[sa(HL,{value:a,onChange:o,label:t,data:r,filters:n}),m&&sa(m,{value:a,onChange:o,pages:s})]})}import{UiIcon as Kg}from"efficient-easel/draw/client";import{phoneKey as KL,tabletKey as VL}from"efficient-easel/draw";import{AUTO_RULES as WL,FOLLOW_RULES as zL,VIEW_DESKTOP_MIN as GL,VIEW_TABLET_MIN as QI,isAuto as UL,resolveViewValue as $L}from"efficient-easel/draw";var jL="v1";function qL(){return jL==="v2"?WL:zL}var JI=.02,TY=`(min-width: ${QI}px) and (max-width: ${GL-JI}px)`,_s=`(max-width: ${QI-JI}px)`;function eg(e,o,t,a,r=qL()){let n=$L(e,o,t,a,r),s={},i=(c,f)=>!UL(c)||f!=null&&f!==o;return i(t,n.tablet)&&(s.tablet=n.tablet),i(a,n.phone)&&(s.phone=n.phone),s}var Eo={min:10,max:200,step:10};function YL(e,o){let t=$(e),a=$(o);if(!(t===void 0&&a===void 0))return{paddingTop:t,paddingBottom:a}}var XL="sf-pad-top-phone",ZL="sf-pad-bottom-phone",QL="--sf-pad-t-phone",JL="--sf-pad-b-phone",eA="sf-pad-left-phone",oA="sf-pad-right-phone",tA="--sf-pad-l-phone",aA="--sf-pad-r-phone",rA="sf-pad-top-tablet",nA="sf-pad-bottom-tablet",sA="sf-pad-left-tablet",lA="sf-pad-right-tablet",iA="--sf-pad-t-tablet",cA="--sf-pad-b-tablet",dA="--sf-pad-l-tablet",fA="--sf-pad-r-tablet";function Ds(e){let o=YL(e.top,e.bottom),t=Ed({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 uA=[["top","paddingTop",[rA,iA],[XL,QL]],["bottom","paddingBottom",[nA,cA],[ZL,JL]],["left","paddingLeft",[sA,dA],[eA,tA]],["right","paddingRight",[lA,fA],[oA,aA]]];function Ed(e,o,t={},a=e){let r={},n={},s=[];for(let[i,c,...f]of uA){let m=$(e[i]);m!==void 0&&(r[c]=m);let x=eg("spacing",$(a[i]),$(t[i]),$(o[i]));for(let[u,[h,g]]of[["tablet",f[0]],["phone",f[1]]]){let w=x[u];typeof w=="number"&&(s.push(h),n[g]=`${w}px`)}}return{classes:s,style:{...r,...n}}}function og(e,o,t){let a=$(e)??t,r=$(o);return a===void 0?r:r===void 0?a:a+r}function Ns(e,o={}){return{top:og(e.padTop,e.sectionPaddingTop,o.top),bottom:og(e.padBottom,e.sectionPaddingBottom,o.bottom)}}var Od={top:"sectionPaddingTop",bottom:"sectionPaddingBottom",left:"sectionPaddingLeft",right:"sectionPaddingRight"};function tg(e,o=Od,t=!0){let a={};for(let r of t?["top","bottom","left","right"]:["top","bottom"])a[r]=e[o[r]],a[`${r}Tablet`]=e[VL(o[r])],a[`${r}Phone`]=e[KL(o[r])];return a}function LY(e){return Ds(e)}function AY(e,o){let t=a=>typeof a=="number"?a+o:void 0;return Ds({...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)})}var pA="sf-block-size",zs=[{label:"Fit content",value:"fit"},{label:"Fill",value:"fill"},{label:"Fixed",value:"fixed"}],Fd="fit";function Hs(e){return zs.some(o=>o.value===e)?e:void 0}var Gs={min:40,max:2e3,step:10,fallback:480},Ur={min:40,max:2e3,step:10},Us=[{label:"Wrap",value:"wrap"},{label:"Shrink to fit",value:"shrink"}];function Ws(e){return Us.some(o=>o.value===e)?e:void 0}var Ld={min:8,max:120,step:1,fallback:16},Ms={fit:"data-fit",fitPhone:"data-fit-phone",min:"data-fit-min",minPhone:"data-fit-min-phone"},BY=["widthFit","width","minWidth","maxWidth","textFit","minFont"],Ga=e=>typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0,mA={desktop:{fill:"min-[800px]:w-full min-[800px]:[.flex-row>&]:grow",fixed:"min-[800px]:w-[min(var(--sf-bw),100%)] min-[800px]:basis-auto! min-[800px]:grow-0! min-[800px]:shrink-0"},phone:{fill:"max-[800px]:w-full",fixed:"max-[800px]:w-[min(var(--sf-bw-p),100%)] max-[800px]:basis-auto! max-[800px]:grow-0! max-[800px]:shrink-0"}},xA={desktop:"--sf-bw",phone:"--sf-bw-p"},hA={minWidth:{desktop:["--sf-bmin","min-[800px]:min-w-[var(--sf-bmin)]"],phone:["--sf-bmin-p","max-[800px]:min-w-[var(--sf-bmin-p)]"]},maxWidth:{desktop:["--sf-bmax","min-[800px]:max-w-[var(--sf-bmax)]"],phone:["--sf-bmax-p","max-[800px]:max-w-[var(--sf-bmax-p)]"]}};function _Y(e){let o=[],t={},a={},r=Hs(e.widthFit?.desktop),n=Hs(e.widthFit?.phone)??r,s=Ga(e.width?.desktop),i=Ga(e.width?.phone)??s;for(let[u,h,g]of[["desktop",r,s],["phone",n,i]])!h||h==="fit"||(o.push(mA[u][h]),h==="fixed"&&(t[xA[u]]=`${g??Gs.fallback}px`));for(let u of["minWidth","maxWidth"]){let h=Ga(e[u]?.desktop),g=Ga(e[u]?.phone)??h;for(let[w,T]of[["desktop",h],["phone",g]]){if(T===void 0)continue;let[E,C]=hA[u][w];t[E]=`${T}px`,o.push(C)}}let c=Ws(e.textFit?.desktop),f=Ws(e.textFit?.phone),m=Ga(e.minFont?.desktop),x=Ga(e.minFont?.phone);return c&&(a[Ms.fit]=c),f&&(a[Ms.fitPhone]=f),m!==void 0&&(a[Ms.min]=String(m)),x!==void 0&&(a[Ms.minPhone]=String(x)),o.length===0&&Object.keys(a).length===0?null:{className:[pA,...o].join(" "),style:t,attrs:a}}var At={top:"buttonPaddingTop",right:"buttonPaddingRight",bottom:"buttonPaddingBottom",left:"buttonPaddingLeft"},IA="px-6 py-4",gA=4,$s=e=>{let o=new RegExp(`\\bp${e}-(?:\\[(\\d+)px\\]|(\\d+))`).exec(IA);if(!o)throw new Error(`BUTTON_PAD_CLASSES has no p${e}`);return o[1]!==void 0?Number(o[1]):Number(o[2])*gA},WY={top:$s("y"),right:$s("x"),bottom:$s("y"),left:$s("x")},rg="var(--btn)",bA=e=>e&&typeof e=="object"&&($(e.width)!==void 0||ie(e.color))?e:void 0,yA=e=>Math.round(Math.min(Math.max(e,0),100));function Ad(e){let o=e.variant==="ghost",t=$(e.buttonFillOpacity),a=bA(e.buttonBorder),r=ie(e.buttonColor);return{fillOpacity:t!==void 0?yA(t):o?0:100,border:{width:$(a?.width)??1,color:ie(a?.color)??r??(o?"currentColor":rg)},changed:t!==void 0||a!==void 0}}function zY(e){let o=Ad(e);if(!o.changed)return null;let t=ie(e.buttonColor)??rg;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}}function GY(e){let o={top:e[At.top],right:e[At.right],bottom:e[At.bottom],left:e[At.left]},t={top:e[`${At.top}Phone`],right:e[`${At.right}Phone`],bottom:e[`${At.bottom}Phone`],left:e[`${At.left}Phone`]},{classes:a,style:r}=Ed(o,t);return Object.keys(r).length?{className:a.join(" "),style:r}:null}var ag="upper";function ng(e,o,t){let a=e&&typeof e=="object"?e:{},r=ie(a.textStyle),n=r?ie(o?.find(m=>m?.id===r)?.name):void 0,s=r?/^(heading|body)-(\d+)$/.exec(r):null,i=r?n||(s?t.styleName({kind:s[1],n:Number(s[2])}):r):t.noStyle,{cases:c}=t,f=ie(a.case)??ag;return`${i} \xB7 ${c[f]??c[ag]}`}import{usePreviewParts as uB}from"efficient-easel/draw/client";import{encodePartId as pB}from"efficient-easel/draw";import{DEFAULT_EASEL_STRINGS as mB,useEaselStrings as xB}from"efficient-easel/strings";var SA=["auto","fixed","screen"],CA=["px","%"];var wA="var(--sf-header-h, 88px)",Rd={min:40,max:2e3,step:10,fallback:600},Bd={min:10,max:200,step:5,fallback:100},kA="sf-section-minh",sg={base:"--sf-section-minh",small:"--sf-section-minh-s"},ig=e=>typeof e=="string"&&SA.includes(e),vA=e=>typeof e=="string"&&CA.includes(e);function js(e){let o=ig(e.sectionHeightMode)?e.sectionHeightMode:"auto",t=o==="screen"?"%":vA(e.sectionHeightUnit)?e.sectionHeightUnit:"px",a=o==="screen"?Bd.fallback:Rd.fallback,r=typeof e.sectionHeightValue=="number"?e.sectionHeightValue:a;return{mode:o,value:r,unit:t}}function cg(e){let{mode:o,value:t,unit:a}=js(e);if(o==="auto")return;if(o==="fixed"&&a==="px")return[`${t}px`,null];let r=t/100,n=s=>o==="screen"?`(100${s} - ${wA})`:`100${s}`;return[`calc(${n("vh")} * ${r})`,`calc(${n("svh")} * ${r})`]}function dg(e){let o=cg(e);if(!o)return;let[t,a]=o;return{display:"grid",[sg.base]:t,...a?{[sg.small]:a}:{}}}var $Y=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),Ua="Height",TA="sf-section-minh-phone",lg={base:"--sf-section-minh-p",small:"--sf-section-minh-ps"};function _d(e){return ig(e.sectionHeightModePhone)}function jY(e){return js({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})}function PA(e){let o=dg(e),t=_d(e)?cg({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})??(o?["auto",null]:void 0):void 0;if(!o&&!t)return null;let a=[kA],r={...o??{}};return t&&(a.push(TA),r[lg.base]=t[0],t[1]&&(r[lg.small]=t[1])),{className:a.join(" "),style:r}}function EA(e){return PA(e)!==null}var OA="grid",qY="h-full",FA="max-[720px]:grid";function fg(e){return EA(e)?dg(e)?OA:FA:""}var qs="Stick to top",Rt={min:0,max:200,step:4,fallback:0},LA="sf-section-stick",AA="sf-section-stick-phone-on",RA="sf-section-stick-phone-off",ug={desktop:"--sf-stick-distance",phone:"--sf-stick-distance-phone"},YY=new Set(["CategoryBar","DocTabs","IntroBleed"]);function pg(e){let o=$(e)??Rt.fallback;return Math.min(Rt.max,Math.max(Rt.min,Math.round(o)))}function Dd(e){return typeof e.stickTopPhone=="boolean"}function Nd(e){let o=e.stickTop===!0,t=pg(e.stickTopDistance),a=Dd(e),r=a?e.stickTopPhone===!0:o,n=a?pg(e.stickTopDistancePhone):t;return{desktop:o,desktopDistance:t,phone:r,phoneDistance:n,ownPhone:a}}function XY(e){let o=Nd(e);if(!o.desktop&&!o.phone)return null;let t=[LA],a={};return o.desktop&&(a[ug.desktop]=`${o.desktopDistance}px`),(o.ownPhone||o.phone!==o.desktop)&&(t.push(o.phone?AA:RA),o.phone&&(a[ug.phone]=`${o.phoneDistance}px`)),o.desktop||t.push("sf-section-stick-desktop-off"),{className:t.join(" "),style:a}}var BA=["column","row","tabs"];var _A={column:"Stacked",row:"One row",tabs:"Tabs"},mg={Flex:BA,HeroGroup:["column","row"]},DA={Flex:"row",HeroGroup:"column"},NA={column:"flex-col",row:"flex-row",tabs:"flex-col"};function Ks(e,o){return mg[e].includes(o)?o:DA[e]}function QY(e,o){return NA[Ks(e,o)]}function xg(e){return mg[e].map(o=>({label:_A[o],value:o}))}var $r={sectionPaddingTop:0,sectionPaddingBottom:0},hg={start:"justify-start",center:"justify-center",between:"justify-between",end:"justify-end"},Ig={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"};function eX(e,o){let t=typeof e=="string"&&e in hg?hg[e]:"",a=typeof o=="string"&&o in Ig?Ig[o]:"";return[t,a].filter(Boolean).join(" ")}function oX(e){return e===!0||e==="wrap"?"flex-wrap":""}var Vs="Block widths",Md=[{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]}],$a="[&>*]:min-w-0 [&>*]:flex-1 [&>*]:basis-0",MA={equal:$a,bigLeft:`${$a} [&>*:first-child]:min-[800px]:grow-[2]`,bigRight:`${$a} [&>*:last-child]:min-[800px]:grow-[2]`,biggerLeft:`${$a} [&>*:first-child]:min-[800px]:grow-[3]`,biggerRight:`${$a} [&>*:last-child]:min-[800px]:grow-[3]`,twoThree:`${$a} [&>*:first-child]:min-[800px]:grow-[2] [&>*:last-child]:min-[800px]:grow-[3]`};function HA(e){return typeof e=="string"?MA[e]??"":""}var WA="[&>*]:min-[800px]:basis-[content]";function tX(e){return HA(e)===""?WA:""}var gg="Columns",Hd=1,bg=3,yg={2:"max-[800px]:flex-wrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px)))/2)]",3:"max-[800px]:flex-wrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px))_*_2)/3)]"},Sg=Md.filter(e=>e.value==="content"||e.value==="equal"),Cg="equal",zA="max-[800px]:flex-wrap [&>*]:max-[800px]:min-w-0 [&>*]:max-[800px]:grow-0 [&>*]:max-[800px]:basis-[content]";function aX(e,o){let t=yg[Number(e)];return t?GA(e,o)?zA:t:"max-[800px]:flex-col"}function GA(e,o){return Number(e)in yg&&o==="content"}var wg="Block spacing",Wd=[{label:"Each block",value:"each"},{label:"Gap only",value:"gap"}],UA="sf-box-gap-only";function rX(e){return e==="gap"?UA:""}var $A=["solid","dashed","dotted"],jA=["top","right","bottom","left"],sX="sf-section-border",lX="sf-section-border-self",qA=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,kg=e=>typeof e=="number"&&Number.isFinite(e)?`${Math.min(20,Math.max(0,Math.round(e)))}px`:void 0;function vg(e,{phone:o=!1}={}){if(!e||typeof e!="object")return;let t=o?"-phone":"",a={};for(let r of jA){let n=kg(e[r])??kg(e.width);n!==void 0&&(a[`--sf-border-${r}-width${t}`]=n)}return typeof e.style=="string"&&$A.includes(e.style)&&(a[`--sf-border-style${t}`]=e.style),typeof e.color=="string"&&qA.test(e.color)&&(a[`--sf-border-color${t}`]=e.color.toLowerCase()),Object.keys(a).length?a:void 0}function iX(e,o){let t=vg(e),a=vg(o,{phone:!0});return t||a?{...t,...a}:void 0}var zd="sf.gapContainer",ja={min:-32,max:64,step:2},Eg={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},qa={Grid:24,Flex:24,FooterGroup:16,HeroGroup:0,Events:24,GalleryB:8,ProductGrid:2},KA=new Set(["Events","GalleryB"]);function Ka(e,o,t){if(typeof o=="number"&&Number.isFinite(o)&&o>=ja.min)return o;if(typeof o=="string"){let a=Eg[e]?.[o];if(typeof a=="number")return a}return typeof t=="number"&&Number.isFinite(t)?t:qa[e]}var VA="sf-gap-overlap",YA="--sf-gap-overlap",Og="--sf-block-gap",XA="--sf-block-gap-rem",la={min:0,max:ja.max,step:ja.step};function ZA(e){if(typeof e!="number"||!Number.isFinite(e))return null;let o=Math.min(Math.max(Math.round(e),la.min),la.max);return o-o%la.step}function dX(e){let o=ZA(e);return o===null?{}:{[Og]:`${o}px`,[XA]:`${o/16}rem`}}var Tg="sf-gap-zone",Pg="--sf-gap-len";function Gd(e,o){return typeof o=="number"&&Number.isFinite(o)&&o>=ja.min?!0:typeof o=="string"&&typeof Eg[e]?.[o]=="number"}var QA="--sf-gap-len-phone",Ud={min:0,max:ja.max,step:ja.step};function Ys(e){return typeof e=="number"&&Number.isFinite(e)&&e>=Ud.min}function $d(e,o,t,a){return Ys(o)?o:Ka(e,t,a)/2}var JA={block:"sf-gap-overlap-block",inline:"sf-gap-overlap-inline",both:"sf-gap-overlap-both"};function fX(e,o,t,a){let r=Ys(a)?{[QA]:`${a}px`}:{};if(!Gd(e,o)){let s=`${qa[e]}px`,i=KA.has(e)?`var(--sf-card-gap, ${s})`:s;return{className:` ${Tg}`,style:{[Pg]:`var(${Og}, ${i})`,...r}}}let n=Ka(e,o);return n>=0?{className:` ${Tg}`,style:{[Pg]:`${n}px`,...r}}:{className:` ${VA} ${JA[t]}`,style:{gap:"0px",[YA]:`${-n/2}px`}}}var Fg=["transparent","var(--section-bg)","var(--surface)","var(--surface-2)"],Lg={transparent:"No fill","var(--section-bg)":"Section band","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},Xs="var(--section-bg)",Zs="inherit";function pX(e,o){return e===Zs?Xs:e===void 0?o:Qs(e)}var eR=/var\(\s*--(surface-2|surface|line)\s*(?=[,)])/g;function Qs(e){return e.replace(eR,"var(--site-$1")}function Ag(e,o){return e===Zs?!0:e===void 0&&o===Xs}var Rg=["transparent","var(--wheel-stage)","var(--surface)","var(--surface-2)"],Bg={transparent:"No fill","var(--wheel-stage)":"Image stage","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},Va="var(--wheel-stage)",Js="transparent",jr="inherit";function hX(e,o){return Qs(jd(e,o))}function jd(e,o){return e===jr?Va:e==null?o:e===!0?Va:e===!1?Js:e}function IX(e){return typeof e=="string"&&e!==jr?Qs(e):Va}function gX(e){return e!==Js&&e!=="none"&&e!==""}function _g(e,o){return e===jr||e===!0?!0:e==null?o===Va:!1}var Dg="inherit",el="fixed",Ng=e=>typeof e!="number"&&e!==el,oR="var(--sf-heading-max, 9999px)";function yX(e,o,t,a){if(typeof e=="number")return`${e}px`;if(e===el)return o;let r=a?`var(--size-${a}, ${o})`:o;return t==="heading"?`min(${r}, ${oR})`:r}var tR=["page","full"],Mg=["full","page"],ia={full:"Full width",page:"Content width"},qd="inherit",aR=e=>typeof e=="string"&&tR.includes(e),rR=e=>e===qd;function nR(e,o){return rR(e.widthMode)?{mode:"full",inherited:!0}:aR(e.widthMode)?{mode:e.widthMode,inherited:!1}:{mode:o,inherited:o==="full"}}function CX(e){return nR(e,"page").mode==="full"}var sR={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 wX(e){return Object.prototype.hasOwnProperty.call(sR,e)}var Hg="siteWidths",lR=e=>e==="full"||e==="content";function ol(e){return lR(e)?e:null}function Wg(e,o){return{[Hg]:{background:ol(e),content:ol(o)}}}function kX(e){let o=e.editor?.metadata?.[Hg];return{background:ol(o?.background),content:ol(o?.content)}}import{jsx as iR}from"react/jsx-runtime";import{createContext as cR,useContext as EX}from"react";var dR=2,OX=dR+1,fR=cR(2);function zg({tier:e,children:o}){return iR(fR.Provider,{value:e,children:o})}import{useEaselSession as hB}from"efficient-easel/screen/lib/session-context";import{BOX_GAP as IB,describedAs as Bt,group as co,iconOf as Za,noGlyph as ub,sharedStyleKinds as Vr}from"efficient-easel/screen/lib/document/box-fields";import{createElement as Gg}from"react";import{SettingsField as uR}from"efficient-easel/panel";import{boxFieldBuilders as pR,describedAs as mR,iconOf as xR}from"efficient-easel/screen/lib/document/box-fields";import{IconPicker as hR}from"efficient-shell/ui";var $e=pR(e=>l(e)),$o=$e.slider,st=$e.select,qr=$e.Segmented,Ya=$e.segmented,DX=$e.alignmentField,NX=$e.alignmentFields,MX=$e.blockAlignmentField,HX=$e.blockAlignmentFields,WX=$e.boxJustifyField,zX=$e.boxAlignField,GX=$e.boxWrapField,Ug=$e.directionField,Kd=$e.gapField,UX=$e.placementField,$X=$e.PlacementGridView,jX=$e.positionFields,tl=$e.sidesPaddingFields;function qX(e,o,t,a,r={}){let n=s=>t.some(i=>i.value===s);return{type:"custom",...mR({},{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:i,field:c})=>{let f=t.map(u=>({value:u.value,...u.label===void 0?{}:{label:l(u.label)},icon:u.picture})),m=c?.currentValue,x=r.resolve?r.resolve(s)??a:n(s)?s:n(m)?m:a;return Gg(uR,{label:l(e),icon:xR(o)},Gg(hR,{label:l(e),value:x,options:f,onChange:i,emptyValue:r.emptyValue}))}}}import{TEXT_CONTROL_KINDS as TQ,SCALAR_TEXT_CONTROLS as PQ}from"efficient-easel/draw";function da(e,o){return l("{value} from {from}",{value:e,from:o})}function gB(){let{blockGap:e}=ee();return e===null?l("this container's own spacing"):da(`${e}px`,l("Styles"))}function bB({inherited:e,onReset:o,label:t}){return b(Qe,{words:X()?.panel,label:l(t),changed:!e,detail:gB(),onReset:o})}function IQ(e){return Kd({...IB,builtIn:qa[e],resolve:(o,t)=>Ka(e,o,t?.siteGap),action:(o,t)=>b(bB,{inherited:!Gd(e,o),onReset:()=>t(void 0),label:"Gap"}),mark:{[zd]:e}})}function gQ(e){return Ee("mobile",{[zd]:e,type:"custom",render:o=>b(yB,{container:e,...o})})}function yB({container:e,...o}){let[t]=jo("gap"),a=o.field?.siteGap,r=$d(e,void 0,t,a);return Kd({...Ud,builtIn:r,resolve:n=>$d(e,n,t,a),action:(n,s)=>b(Qe,{words:X()?.panel,label:l("Gap"),changed:Ys(n),detail:da(`${r}px`,l("Desktop")),onReset:()=>s(void 0)})}).render(o)}function bQ(e){return Ug({offered:xg(e),fallback:Ks(e,void 0),resolve:o=>Ks(e,o)})}function yQ(e,o){return uh(o?Vc(e,o):[],o)}function SB({inherited:e,onReset:o,label:t}){return b(Qe,{words:X()?.panel,label:l(t),changed:!e,detail:da(l("Full"),l("the page")),onReset:o})}function fa({value:e,onChange:o,label:t,placeholder:a,hint:r,multiline:n,hideable:s=!0,markup:i=!0}){let{text:c,hidden:f}=Dt(e),m=sl(null),x=sl(null),u=C=>o(s?{text:C,hidden:f}:C),h=()=>o({text:c,hidden:!f}),g=s&&f,w=ob(),T=r?TB(r)?b("span",{className:"sf-hint-keep sf-hint-while-typing",children:l(r)}):b(hh,{children:l(r)}):void 0,E=f?l("Show {label} on the slide",{label:l(t)}):l("Hide {label} on the slide",{label:l(t)});return b(Le,{label:l(t),icon:b(qR,{}),htmlFor:w,className:g?"is-hidden":void 0,hint:T,action:s?b(ll,{content:E,children:b(db,{"aria-pressed":f,"aria-label":E,onClick:h,children:f?b(Kg,{name:"eye-off",size:14}):b(Kg,{name:"eye",size:14})})}):void 0,children:Xa("div",{className:"sf-copybox",children:[i&&b(rd,{target:n?x:m,value:c,onChange:u}),n?b("textarea",{id:w,ref:x,value:c,placeholder:a===void 0?void 0:l(a),onChange:C=>u(C.target.value)}):b("input",{id:w,ref:m,type:"text",value:c,placeholder:a===void 0?void 0:l(a),onChange:C=>u(C.target.value)})]})})}function SQ(e,o){return{...e,[CR]:o}}function CQ(e){let o=e[lt];if(!o)throw new Error("withOffPage: the field holds no authored text");return{...e,[lt]:{...o,offPage:!0}}}function cl(e){return!e||typeof e!="object"?!1:e[lt]?.offPage===!0}var pb="sfPanelOnly";function wQ(e){if(!e[lt])throw new Error("withPanelOnly: the field holds no authored text");return{...e,[pb]:!0}}function mb(e){return!!e&&typeof e=="object"&&e[pb]===!0}function kQ(e){let o=e[lt];if(!o)throw new Error("withIdentifier: the field holds no authored text");return{...e,[lt]:{...o,identifier:!0}}}function EQ(e,o){if(!e[lt])throw new Error("inOwnBox: the field holds no authored text");let{[cB]:t,...a}=e;return{...a,[nd]:!0,render:o}}var CB=new Set(fB),il={type:"radio",options:[{value:!0},{value:!1}]},xb={text:{type:"object",objectFields:{text:{type:"text"},hidden:il}},textarea:{type:"object",objectFields:{text:{type:"textarea"},hidden:il}},plainText:{type:"text"},copyText:{type:"text"},plainTextarea:{type:"textarea"},textList:{type:"array",arrayFields:{text:{type:"text"}}}},ua=(e,o)=>{let t=Bt({...o,[lt]:e},{...xb[e.control],label:e.label});if(!CB.has(e.control))return t;let a=o.render;return{...fb(t,"authored-copy"),render:r=>b(Jh,{name:r.name,children:a(r)})}},OQ="Everything else on this block comes from the linked post. Unlink it to edit by hand.",wB={field:"source.slug",set:!0},FQ={not:wB},kB="Select a word, then press the highlighter.",vB=new Set([kB]),TB=e=>vB.has(e);function LQ(e,o,t){return ua({control:"text",label:e,placeholder:o,hint:t},{type:"custom",render:({value:a,onChange:r})=>b(fa,{value:a,onChange:r,label:e,placeholder:o,hint:t})})}function AQ(e,o,t){return ua({control:"textarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:a,onChange:r})=>b(fa,{value:a,onChange:r,label:e,placeholder:o,hint:t,multiline:!0})})}function RQ(e,o,t){return ua({control:"plainText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:a,onChange:r})=>b(fa,{value:a,onChange:r,label:e,placeholder:o,hint:t,hideable:!1,markup:!1})})}function BQ(e,o,t){return ua({control:"copyText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:a,onChange:r})=>b(fa,{value:a,onChange:r,label:e,placeholder:o,hint:t,hideable:!1})})}function _Q(e){return{type:"custom",[yR]:{label:e},...Bt({},{type:"text",label:e}),render:({value:o,onChange:t})=>b(ZI,{value:bR(o),onChange:t,label:e})}}function DQ(e,o,t){return ua({control:"plainTextarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:a,onChange:r})=>b(fa,{value:a,onChange:r,label:e,placeholder:o,hint:t,multiline:!0,hideable:!1})})}var hb={Design:wR,Animation:vR};function Ib(e,o){return e.includes("Design")?o!=="Design":null}function NQ(e){return{type:"custom",render:()=>b(PB,{text:e})}}function PB({text:e}){return b("p",{className:"sf-note",children:l(e)})}function MQ(e){return it(e)!==null&&e?.tabs!==void 0}var Vg=new Map;function dl(e,o){let t=`${e}\0${o?o.join(""):""}`,a=Vg.get(t)??{type:"custom",tabs:o,[tb]:{label:e,level:1},bucket:e,marker:!0,render:()=>b(_t,{})};return Vg.set(t,a),a}var Yg=new Map;function ef(e){let o=Yg.get(e)??{type:"custom",[tb]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>b(_t,{})};return Yg.set(e,o),o}function EB(e){let o=e;return o?.marker===!0&&typeof o.fold=="string"?o.fold:null}function gb(e,o){return EB(e)===o?e:{...e,marker:!0,fold:o,render:()=>b(_t,{})}}function bb(e){let o=e;if(o.marker===!0&&o.fold===void 0)return e;let{fold:t,...a}=e;return{...a,marker:!0,render:()=>b(_t,{})}}function of({title:e,children:o}){let[t,a]=Kr(()=>!Vd.has(e));return b(VR,{title:e,open:t,onToggle:r=>{a(r),r?Vd.delete(e):Vd.add(e)},children:o})}var Vd=new Set;function yb({swatches:e,current:o,onPick:t,names:a}){let r=e.find(i=>i.toLowerCase()===o.toLowerCase()),n=r?a?.[r]:void 0,s=n?l(n):o;return Xa("div",{className:"sf-swatches",children:[e.map(i=>{let c=a?.[i]?l(a[i]):i;return b(ll,{content:c,children:b(aB,{color:i,selected:o.toLowerCase()===i.toLowerCase(),onClick:()=>t(i),"aria-label":c})},i)}),b("span",{className:"sf-swatch-hex",children:s})]})}function HQ(e,o){return{type:"custom",render:({value:t,onChange:a})=>{let r=Ag(t,o);return b(Le,{label:l(e),icon:b(TR,{}),changed:!r,action:b(Qe,{words:X()?.panel,label:l(e),changed:!r,detail:l("the theme's section background"),onReset:()=>a(Zs)}),children:yb({swatches:Fg,current:r?Xs:t??o??"",onPick:a,names:Lg})})}}}function OB(e,o){return{type:"custom",render:({value:t,onChange:a})=>{let r=t,n=_g(r,o);return b(Le,{label:l(e),icon:b(rb,{}),changed:!n,action:b(Qe,{words:X()?.panel,label:l(e),changed:!n,detail:l("the theme's image stage"),onReset:()=>a(jr)}),children:yb({swatches:Rg,current:n?Va:jd(r,o),onPick:a,names:Bg})})}}}function fl(e=t=>t,o){return Vr({_gSectionTheme:co(hI),sectionAccent:{type:"custom",render:({value:t,onChange:a})=>b(CI,{value:e(t),onChange:a,followLabel:o})}})}function fo({min:e,max:o,step:t,value:a,onChange:r,suffix:n="",readout:s=!0,notch:i,ariaLabel:c,disabled:f=!1}){let m=i!==void 0&&Number.isFinite(i)&&i>=e&&i<=o;return b("div",{className:m?"sf-slider has-notch":"sf-slider",style:m?{"--sf-notch":(i-e)/(o-e)}:void 0,children:b(iB,{min:e,max:o,step:t,value:a,suffix:n||void 0,showInput:s,label:c===void 0?void 0:l(c),disabled:f,size:"sm",boxSize:"md",className:"sf-slider-track",onChange:x=>{x!==null&&x!==a&&r(x)}})})}function tf(e,o){let{min:t,max:a,step:r=1,unsetLabel:n,hint:s,restTrack:i,unsetMark:c,icon:f,unit:m="px"}=o;return{type:"custom",render:({value:x,onChange:u})=>{let h=typeof x=="number"?x:null,g=h===null;return b(Le,{label:l(e),icon:f?Za(f):void 0,value:g?c||n===void 0?void 0:l(n):`${h}${m}`,changed:!g,action:c?eb(c,{changed:!g,onReset:()=>u(null)}):b(Qe,{words:X()?.panel,label:l(e),changed:!g,onReset:()=>u(null)}),hint:typeof s=="string"?l(s):s,children:i?i({min:t,max:a,step:r,px:h,label:e,onChange:u}):fo({min:t,max:a,step:r,value:h??t,readout:!1,ariaLabel:e,onChange:u})})}}}var ul="Corners";function af(e){return{type:"custom",render:({value:o,onChange:t})=>{let a=typeof o=="number"&&Number.isFinite(o)?o:null,r=a!==null;return b(Le,{label:l(ul),icon:b(FR,{}),changed:r,action:eb(e.mark,{changed:r,onReset:()=>t(null)}),hint:e.hint,children:b(FB,{tier:e,px:a,onRadius:t})})}}}function jo(e){let o=Na();return[o?.values?.[e],t=>o?.onChange(e,t)]}function rf(e){let o=fb({type:"custom",render:()=>b(dB,{})},"always");return e===void 0?o:{...o,reachedBy:e}}function ud(){let e=Na();return o=>e?.onChangeMany(o)}function FB({tier:e,px:o,onRadius:t}){let a=e.useFollowed(),[r,n]=jo(e.sidesKey),s=at(r)??[...Zt];return b(rB,{label:l(ul),value:s,corners:Kx,onChange:i=>{let c=at(i)??[];n(c.length===Zt.length?null:c)},radius:o,onRadiusChange:t,radiusMin:bo,radiusMax:Vt,radiusStep:e.step??1,radiusPlaceholder:String(a)})}function Sb(){return rf()}function LB({label:e,changed:o=!1,onReset:t=()=>{}}){let{cornerRadiusPx:a}=ee(),r=typeof a=="number"?`${a}px`:l("not set");return b(Qe,{words:X()?.panel,label:l(e),changed:o,detail:a==null?l("the built-in corners"):da(r,l("Styles")),onReset:t})}function AB(){let{cornerRadiusPx:e}=ee();return typeof e=="number"?e:bo}function RB(){return af({sidesKey:"sectionCornerSides",useFollowed:AB,mark:b(LB,{label:ul}),hint:BB})}var BB="Follows Styles \u25B8 Basics \u25B8 Corners until you set a number here.";function pl(){return Vr({_gShape:co("Shape"),sectionCorners:RB(),sectionCornerSides:Sb(),sectionBorder:Xg("desktop"),sectionBorderPhone:Xg("mobile")})}var _B=()=>({width:l("Border width"),sides:{top:l("Border top"),right:l("Border right"),bottom:l("Border bottom"),left:l("Border left")},style:l("Border style"),styles:{solid:l("Solid"),dashed:l("Dashed"),dotted:l("Dotted")},color:l("Border color"),unit:"px"});function DB(e){let o=Object.fromEntries(Object.entries(e).filter(([,t])=>t!=null&&t!==""));return Object.keys(o).length?o:void 0}function NB(){let e;try{let o=Ge(ee().theme);e=o.themes[o.selected]?.line}catch{e=void 0}return e||hc.line}function Cb({value:e,onChange:o,placeholder:t,presets:a,sides:r=!0,styles:n=!0,above:s={}}){let i=e&&typeof e=="object"?e:{},[c,f]=Kr(()=>r?JR(i,s):!1),m=_B(),x=u=>DB(r&&n?u:{width:u.width,color:u.color,...n?{style:u.style}:{}});return b(Le,{label:l("Border"),icon:b(PR,{}),action:r?b(ZR,{each:c,label:l("Each side"),onChange:f}):void 0,children:b(XR,{label:l("Border"),value:i,each:c,onChange:u=>o(x(u)),placeholder:t,presets:a,words:m,styles:n,max:20})})}function MB({value:e,onChange:o,tier:t}){let[a]=jo("sectionBorder"),r=NB(),n=t==="mobile"?a&&typeof a=="object"?a:{}:{};return b(Cb,{value:e,onChange:o,placeholder:{sides:QR(n),style:n.style??"solid",color:n.color||r},presets:[r],above:n})}function Xg(e){return Ee(e,{type:"custom",render:({value:o,onChange:t})=>b(MB,{value:o,onChange:t,tier:e})})}function WQ(e){return{type:"custom",render:()=>b(HB,{partKey:e})}}function HB({partKey:e}){let[o]=jo("id"),[t]=jo("_partStyles"),{textStyles:a}=ee(),r=xB(),n=null;try{n=uB().select}catch{n=null}let s=t&&typeof t=="object"?t[e]:void 0,i=Array.isArray(a)?a:null;return b(KR,{name:l("Text"),preview:ng(s,i,{noStyle:l("No style"),styleName:r.textStyles.styleName,cases:(r.copy.panel??mB.copy.panel).cases}),onOpen:()=>{n&&typeof o=="string"&&n(pB(o,e))}})}function zQ(){return{type:"custom",render:({value:e,onChange:o})=>b(WB,{value:e,onChange:o})}}function WB({value:e,onChange:o}){let[t]=jo("variant"),[a]=jo("buttonColor"),{theme:r}=ee(),n=Ad({variant:t,buttonColor:a,buttonBorder:e&&typeof e=="object"?e:{}}).border.width,s=ie(a)??(t==="ghost"?vt(r).text:bc(r).fill);return b(Cb,{value:e,onChange:o,placeholder:{sides:{top:n,right:n,bottom:n,left:n},style:"solid",color:s},presets:[s],sides:!1,styles:!1})}function wb(e){let{cornerRadiusPx:o}=ee(),t=typeof o=="number"?o:e,a=null;try{let{appState:n,selectedItem:s}=Qd(c=>c),i=s?.props?.id?String(s.props.id):void 0;a=i?Oh(n?.data,i)?.props??null:null}catch{a=null}if(!a)return t;let r=a.sectionCorners;return Hc(r)?r:t}function zB({label:e,changed:o=!1,onReset:t=()=>{}}){let a=wb(bo);return b(Qe,{words:X()?.panel,label:l(e),changed:o,detail:da(`${a}px`,l("the section")),onReset:t})}function GB(){return b(_t,{children:l("Follows the section's Corners until you set a number here.")})}function UB(){return af({sidesKey:"cardCornerSides",useFollowed:()=>wb(bo),mark:b(zB,{label:ul}),hint:b(GB,{})})}function $B(){return{type:"custom",render:()=>b(eh,{})}}function GQ(){return{_gShape:co("Shape"),cardCorners:UB(),cardCornerSides:Sb(),cardCornersApplyAll:$B()}}function jB(e=Md,o=e[0].value){return Bt({type:"custom",render:({value:t,onChange:a})=>{let r=e.find(n=>n.value===t)??e.find(n=>n.value===o)??e[0];return b(Le,{label:l(Vs),icon:b(ab,{}),value:l(r.label),children:b(sB,{className:"sf-gallery-layouts",label:l(Vs),value:r.value,onChange:a,options:e.map(n=>({value:n.value,label:l(n.label),picture:b("span",{className:"sf-gallery-pic",children:qB(n.weights).map((s,i)=>b("i",{style:{gridColumn:`span ${s}`}},i))})}))})})}},{type:"select",label:Vs,options:e.map(t=>({value:t.value,label:t.label}))})}function qB(e){if(!e)return[3,4];let o=e.reduce((t,a)=>t+a,0);return e.map(t=>Math.round(t/o*12))}function UQ(){return st(wg,b(DR,{}),Wd,Wd[0].value)}function $Q(){return Ee("mobile",jB(Sg,Cg))}function jQ(){return Ee("mobile",$o(gg,b(OR,{}),Hd,bg,1,Hd))}function qQ(e,o,t,a,r,n){return{type:"custom",render:({value:s,onChange:i})=>b(Le,{label:l(e),icon:b(Zc,{noun:n}),action:b(Qe,{words:X()?.panel,label:l(e),changed:!Ng(s),detail:l("the Text style in Styles"),onReset:()=>i(Dg),defaultAction:{onPress:()=>i(el),title:l("Keep this section's own built-in size"),icon:b(ER,{})}}),children:fo({min:o,max:t,step:a,value:typeof s=="number"?s:r,suffix:"px",ariaLabel:e,onChange:i})})}}function KQ(){return{_gCellWidth:co("Cell width"),gridSpan:st("Positions",b(ab,{}),[{label:"Auto",value:""},...Array.from({length:us},(e,o)=>({label:o===0?"1 position":`${o+1} positions`,value:String(o+1)}))],"")}}var Zg=ub("a value or limit row under the Width and text-fit choices; drawn bare in the approved design (owner 2026-10-29, c25 row 4); no shell glyph names a min, max or fixed width");function al(e,o,t,a,r){let n=r===void 0?$o(o,ub("a fixed width or min font size under its choice; drawn bare in the approved design (owner 2026-10-29, c25 row 4)"),t.min,t.max,t.step,a,"px"):tf(o,{...t,unsetLabel:r,icon:Zg});return{[e]:Ee("desktop",n),[ca(e)]:Ee("mobile",Yr({label:o,desktopKey:e,icon:Zg,...t,fallback:a}))}}var Zd=e=>e.map(o=>({label:o.label,value:o.value}));function Qg(e,o,t,a,r,n,s){let i=Zd(r);return{[e]:Ee("desktop",o),[ca(e)]:Ee("mobile",nf({label:t,icon:a,options:i,desktopKey:e,resolve:(c,f)=>n(c)??n(f)??s}))}}function VQ(e={}){let o={_gBlockSize:co("Size"),...Qg("widthFit",Ya("Width",b(Xd,{}),Zd(zs),Fd),"Width",b(Xd,{}),zs,Hs,Fd),...al("width","Fixed width",Gs,Gs.fallback),...al("minWidth","Min width",Ur,Ur.min,"None"),...al("maxWidth","Content width",Ur,Ur.min,"None")},t=e.textFit?{_gText:co("Text"),...Qg("textFit",Ya("When the text does not fit",b(jg,{}),Zd(Us),e.textFit),"When the text does not fit",b(jg,{}),Us,Ws,e.textFit),...al("minFont","Min font size",Ld,Ld.fallback)}:{};return{size:o,text:t}}function qo(){let e=null;try{e=Qd(o=>o).selectedItem}catch{e=null}return e?.props??{}}function KB({min:e,max:o,step:t,px:a,label:r,onChange:n,desktopKey:s,fallback:i}){let c=qo()[s],f=Ss(void 0,c,i);return b(_t,{children:fo({min:e,max:o,step:t,value:Ss(a,c,i),readout:!1,ariaLabel:r,notch:f,onChange:n})})}function VB({label:e,desktopKey:o,fallback:t,unit:a="px",changed:r=!1,onReset:n=()=>{}}){let s=qo()[o],i=Ss(void 0,s,t);return b(Qe,{words:X()?.panel,label:l(e),changed:r,detail:l("{value} on desktop",{value:`${i}${a}`}),onReset:n})}function Yr(e){return tf(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unit:e.unit,unsetLabel:"Follows Desktop",unsetMark:b(VB,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback,unit:e.unit}),restTrack:o=>b(KB,{...o,desktopKey:e.desktopKey,fallback:e.fallback})})}function nf(e){return{type:"custom",render:({value:o,onChange:t})=>b(XB,{...e,value:o,onChange:t})}}function YB({label:e,icon:o,options:t,value:a,resolved:r,restWord:n,onChange:s}){let i=t.some(c=>c.value===a);return b(Le,{label:l(e),icon:Za(o),action:b(Qe,{words:X()?.panel,label:l(e),changed:i,detail:l("{value} on desktop",{value:l(n)}),onReset:()=>s(void 0)}),children:qr({options:t,value:i?a:r,onChange:c=>s(c),ariaLabel:e})})}function XB({label:e,icon:o,options:t,desktopKey:a,resolve:r,value:n,onChange:s}){let i=qo()[a],c=r(void 0,i),f=t.find(m=>m.value===c)?.label??"";return b(YB,{label:e,icon:o,options:t,value:n,resolved:c,restWord:f,onChange:s})}var ZB={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},QB={Top:cb,Bottom:sb,Left:lb,Right:ib},JB=e=>{let o=QB[e];return b(o,{})};function YQ(e={}){let o=e.keys?.top??"sectionPaddingTop",t=e.keys?.bottom??"sectionPaddingBottom",a=e.group!==!1,r=T=>ZB[T],n=T=>$o(r("Top"),b(cb,{}),Eo.min,Eo.max,Eo.step,T,"px"),s=(T,E,C,I=Eo)=>Ee("mobile",Yr({label:r(T),icon:JB(T),desktopKey:E,min:I.min,max:I.max,step:I.step,fallback:C})),i=e.top??Eo.min,c=e.bottom??Eo.min,f="sectionPaddingLeft",m="sectionPaddingRight",x=e.sideBounds??Eo,u=e.side??x.min,h=e.sidePhone??u,g=e.phone===!0,w=T=>g?Ee("desktop",T):T;return Vr({...a?{_gSpacing:co("Padding")}:{},[o]:w(n(i)),...g?{[ca(o)]:s("Top",o,i)}:{},...e.only==="top"?{}:{[t]:w($o(r("Bottom"),b(sb,{}),Eo.min,Eo.max,Eo.step,c,"px")),...g?{[ca(t)]:s("Bottom",t,c)}:{}},...e.sides?{[f]:w($o(r("Left"),b(lb,{}),x.min,x.max,x.step,u,"px")),...g?{[ca(f)]:s("Left",f,h,x)}:{},[m]:w($o(r("Right"),b(ib,{}),x.min,x.max,x.step,u,"px")),...g?{[ca(m)]:s("Right",m,h,x)}:{}}:{}})}function XQ(e,o){let t=Object.fromEntries(Object.entries(o).map(([n,s])=>[n,n in e&&it(s)?e[n]:s])),a={},r=!1;for(let[n,s]of Object.entries(e)){if(n in o){r||Object.assign(a,t),r=!0;continue}a[n]=s}return r||Object.assign(a,t),a}var rl="Width";function ml(e,o=Mg,t=!0){let a=o.map(r=>({label:ia[r],value:r}));return Vr({...t?{_gWidth:co(rl)}:{},widthMode:{type:"custom",render:({onChange:r,field:n})=>b(Le,{label:l(rl),icon:b(Xd,{}),action:t?b(SB,{inherited:n?.inherited??!1,onReset:()=>r(qd),label:rl}):void 0,children:qr({options:a,value:n?.currentValue||e,onChange:r,ariaLabel:rl})})}})}function xl(){let e=a=>({type:"custom",render:({value:r,onChange:n})=>b(Le,{label:Ua,icon:Za(b(MR,{})),action:a?a(n):void 0,children:qr({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(r)?r:"auto",onChange:n,ariaLabel:Ua})})}),o=()=>({type:"custom",render:({value:a,onChange:r,field:n})=>{let s=n?.unit==="%"?"%":"px",i=s==="%"?Bd:Rd;return b("div",{className:"sf-field",children:fo({min:i.min,max:i.max,step:i.step,value:typeof a=="number"?a:i.fallback,suffix:s,ariaLabel:Ua,onChange:r})})}}),t=()=>Ya("Unit",b(nb,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return Vr({_gHeight:co(Ua),sectionHeightMode:Ee("desktop",e()),sectionHeightValue:Ee("desktop",o()),sectionHeightUnit:Ee("desktop",t()),sectionHeightModePhone:Ee("mobile",e(a=>b(e_,{onClear:()=>a(void 0)}))),sectionHeightValuePhone:Ee("mobile",o()),sectionHeightUnitPhone:Ee("mobile",t())})}function e_({onClear:e}){let o=qo(),t=_d(o),a=js(o),r=l("{value} on desktop",{value:a.mode==="auto"?l("Auto"):`${a.value}${a.unit}`});return b(Qe,{words:X()?.panel,label:l(Ua),changed:t,detail:r,onReset:e})}function sf(){let e=t=>({type:"custom",render:({value:a,onChange:r,id:n,name:s})=>b(o_,{value:a,onChange:r,labelId:`${n??s??"stickTop"}-label`,phone:t})}),o=()=>({type:"custom",render:({value:t,onChange:a})=>b("div",{className:"sf-field",children:fo({min:Rt.min,max:Rt.max,step:Rt.step,value:typeof t=="number"?t:Rt.fallback,suffix:"px",ariaLabel:l("Distance from top"),onChange:a})})});return{_gStick:co(qs),stickTop:Ee("desktop",e(!1)),stickTopDistance:Ee("desktop",o()),stickTopPhone:Ee("mobile",e(!0)),stickTopDistancePhone:Ee("mobile",o())}}function o_({value:e,onChange:o,labelId:t,phone:a}){let r=qo(),n=Nd(r),s=a?n.phone:e===!0;return b(Le,{label:l(qs),labelId:t,icon:Za(b(GR,{})),action:Xa(_t,{children:[a?b(Qe,{words:X()?.panel,label:l(qs),changed:Dd(r),detail:l("{value} on desktop",{value:n.desktop?`${n.desktopDistance}px`:l("Off")}),onReset:()=>o(void 0)}):null,b(Jd,{checked:s,onChange:o,ariaLabelledBy:t})]})})}var Jg="e.g. about";function hl(){return{_gAnchor:co("Anchor"),anchor:ua({control:"plainText",label:"Name",placeholder:Jg},{type:"custom",render:({value:e,onChange:o})=>b(Th,{value:e,onChange:o,nameBox:(t,a)=>b(fa,{value:t,onChange:a,label:"Name",placeholder:Jg,hideable:!1,markup:!1})})})}}function ZQ(e,o,t){return{type:"custom",render:({value:a,onChange:r,id:n,name:s})=>{let i=`${n??s??e}-datetime`,c=Date.parse(typeof a=="string"?a:"");return b(Le,{label:l(e),icon:o,htmlFor:i,hint:t===void 0?void 0:l(t),children:b(nB,{id:i,value:Number.isFinite(c)?new Date(c):null,onChange:f=>r(f?f.toISOString():"")})})}}}function kb(e,o,t,a){return{type:"custom",...Bt({},{...il,label:e}),render:({value:r,onChange:n,id:s,name:i})=>{let c=typeof r=="boolean"?r:o,f=`${s??i??e}-label`;return b(Le,{label:l(e),labelId:f,icon:t,hint:a===void 0?void 0:l(a),action:b(Jd,{checked:c,onChange:n,ariaLabelledBy:f})})}}}function vb(){return{type:"custom",render:({value:e,onChange:o,id:t,name:a})=>{let r=`${String(t??a??"pageBackground")}-colour`;return b(yo,{label:l("Background"),icon:b(zR,{}),id:r,value:Qc(e),onChange:o})}}}var QQ={follows:"fill"},JQ={follows:"ink"};function eJ(e,o,t,a){if(typeof o!="string"){let r=o.follows;return{type:"custom",render:({value:n,onChange:s})=>b(t_,{label:e,part:r,icon:t,value:n,onChange:s,opacity:a})}}return{type:"custom",render:({value:r,onChange:n})=>b(yo,{label:l(e),icon:t,value:r||o,onChange:n})}}function t_({label:e,part:o,icon:t,value:a,onChange:r,opacity:n}){let s=bc(ee().theme),i=o==="fill"?s.fill:s.ink,[c,f]=jo(n?.key??""),[m]=jo(n?.unsetFrom??""),x=typeof c=="number";return b(Ar,{label:l(e),icon:t,value:a||"",inherited:i,resetTo:da(i.toUpperCase(),l("Styles")),onChange:r,onReset:()=>{r(""),n&&x&&f(void 0)},...n?{opacity:x?c:n.unset(m),onOpacityChange:u=>f(u),changed:!!a||x}:{}})}function oJ(){return{type:"custom",render:({value:e,onChange:o})=>b(a_,{value:typeof e=="string"?e:"",onChange:o})}}function a_({value:e,onChange:o}){let{hex:t,n:a}=n_();return b(Ar,{label:l("Fill"),icon:b(rb,{}),value:e,inherited:t,resetTo:da(t.toUpperCase(),l("Theme {n} background",{n:a})),onChange:o,onReset:()=>o("")})}function r_(e,o,t){if((e?.content??[]).some(n=>n?.props?.id===o))return Ft(t);let a=Fh(e,o);if(a.length===0)return null;let r=Ft(yd(t));if(r!==null)return r;for(let n=a.length-1;n>0;n-=1){let s=Ft(yd(a[n].sectionAccent));if(s!==null)return s}return Ft(a[0].sectionAccent)}function n_(){let e=Ge(ee().theme),[o]=jo("sectionAccent"),t=null;try{let{appState:r,selectedItem:n}=Qd(i=>i),s=n?.props?.id?String(n.props.id):void 0;t=s?r_(r?.data,s,o):null}catch{t=null}let a=t!==null&&e.themes[t]?t:e.selected;return{hex:e.themes[a].background??hc.background,n:a+1}}var s_=[{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 l_({label:e,value:o,onChange:t,points:a=s_}){let r=a.map(n=>({...n,label:l(n.label),...n.title?{title:l(n.title)}:null}));return b(tB,{label:l(e),value:o,points:r,onChange:t})}function tJ(){return rf()}var aJ={top:b(BR,{}),right:b(RR,{}),bottom:b(LR,{}),left:b(AR,{})};function rJ(e,o,t,a,r,n){let s=m=>o.find(x=>x.value===m),i=m=>({value:m,label:"",disabled:!0,title:a}),c=m=>{let x=o.find(h=>h.cell===m);if(!x)return i(`missing-${m}`);let u=n?.[m];return u?{value:x.value,label:x.label,icon:u}:{value:x.value,label:x.label}},f=[i("corner-top-left"),c("top"),i("corner-top-right"),c("left"),i("centre"),c("right"),i("corner-bottom-left"),c("bottom"),i("corner-bottom-right")];return{type:"custom",render:({value:m,onChange:x})=>{let u=o.some(h=>h.value===m)?m:t;return b(Le,{label:l(e),icon:r,value:s(u)?.label?l(s(u).label):"",children:l_({label:e,value:u,onChange:x,points:f})})}}}function nJ(e,o,t){return{type:"custom",options:o,render:({value:a,onChange:r,field:n})=>b(lI,{label:e,options:(n.options??o).map(s=>({...s,label:l(s.label)})),value:Array.isArray(a)?a:[],onChange:r,...t?{emptyLabel:l(t)}:{}})}}function sJ(e,o={}){return{type:"custom",render:({value:t,onChange:a})=>{let r={value:t,onChange:a,...o};return b(e,{...r})}}}var lJ=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function iJ(e,o,t){let a=Object.keys(Nc).map(r=>({label:Nc[r],value:r,picture:t[r]}));return{type:"custom",...Bt({},{type:"radio",label:e,options:a.map(r=>({value:r.value,label:r.label}))}),render:({onChange:r})=>b(i_,{label:e,icon:o,options:a,onChange:r})}}function i_({label:e,icon:o,options:t,onChange:a}){let r=Na()?.values??{},n=Mc(r),s=n==="frame"&&!!Et(r.mediaVideo)&&!Et(r.videoFrame);return b(Le,{label:l(e),icon:Za(o),hint:s?l("This video has no frame yet. The slide shows its background colour until one is made."):void 0,children:qr({options:t,value:n,onChange:a,ariaLabel:e})})}function cJ(e,o,t,a={}){return{type:"custom",[SR]:!0,render:({value:r,onChange:n,name:s})=>b(nI,{value:r||"",onChange:n,fieldKey:s,label:e,accept:o,placeholder:t,focusKey:a.focus,focusWhen:a.focusWhen,frameKey:a.frame})}}function c_(e){let o=l(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 dJ({value:e,onChange:o,label:t}){let a=e||{},r=!!a.pending,n=r?"var(--ink-faint)":a.ok?"var(--status-success-soft-ink)":"var(--status-danger-soft-ink)",s=!!He(hB()).geocode,i=ob(),c=(f,m)=>o({...a,[f]:m??void 0});return Xa(_t,{children:[b(Le,{label:l(t),icon:b($g,{}),action:s?b(ll,{content:l("Find from the address (OpenStreetMap)"),children:b(db,{"aria-label":l("Find from the address"),"aria-busy":r||void 0,disabled:r,onClick:()=>o({...a,pending:!0,ok:!1,status:"Finding\u2026"}),children:b($R,{})})}):void 0,children:s&&a.status?b(ll,{content:c_(a),className:"sf-name-tip",children:b("div",{className:`es-field-hint ${Yc}`,style:{margin:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:n},children:r?l("Finding\u2026"):l(a.status)})}):null}),b(Le,{label:l("Enter by hand"),labelId:i,icon:b(_R,{}),action:b(Jd,{checked:!!a.manual,onChange:f=>o({...a,manual:f}),ariaLabelledBy:i})}),a.manual&&b(Le,{label:l("Latitude, longitude"),icon:b($g,{}),children:Xa("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8,width:"100%",minWidth:0},children:[b(qg,{value:typeof a.lat=="number"?a.lat:null,onChange:f=>c("lat",f),min:-90,max:90,step:1e-4,placeholder:l("Latitude")}),b(qg,{value:typeof a.lng=="number"?a.lng:null,onChange:f=>c("lng",f),min:-180,max:180,step:1e-4,placeholder:l("Longitude")})]})})]})}function d_(e,o){return o===null||o<0||o>=e.length?"":e[o]?.text??""}function f_(e,o,t){let a=e.map(r=>({text:r?.text??""}));return o===null||o<0||o>=e.length?a:a.map((r,n)=>n===o?{text:t}:r)}function u_(e,o,t){if(t===null||t>=o.length)return null;for(let a=0;a<t;a+=1)if(e[a]!==o[a])return null;return e[t]!==o[t]&&o.includes(e[t])||e[t]!==o[t]&&o.length!==e.length?null:t}var lf={label:"Ticker items",icon:b(WR,{})};function fJ(e,o,t,a){return{type:"custom",[lt]:{control:"textList",label:e,placeholder:t,itemKey:"text",rendering:a},...Bt({},{...xb.textList,label:e}),render:({value:r,onChange:n})=>b(cf,{label:e,icon:Za(o),items:Array.isArray(r)?r:[],placeholder:t,onChange:n,markup:a==="markup"})}}function cf({label:e,icon:o,items:t,placeholder:a,onChange:r,markup:n=!1}){let s=sl(null),[i,c]=Kr(null),f=x=>x.map(u=>({text:u?.text??""})),m=x=>{let u=u_(t,x,i);u===null&&(s.current=null),c(u),r(f(x))};return b(eB,{label:l(e),icon:o,noun:l("item"),items:t,onChange:m,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:n?b(rd,{target:s,value:d_(t,i),onChange:x=>r(f_(t,i??-1,x)),disabled:i===null,label:i===null?l("Formatting \u2014 click a row first"):l("Formatting \u2014 row {n}",{n:i+1})}):void 0,renderRow:(x,u,h)=>b("input",{type:"text",className:n&&i===u?"sf-list-marking":void 0,value:x?.text??"",placeholder:l(a),"aria-label":l("{label} {n}",{label:l(e),n:u+1}),onChange:g=>h({text:g.target.value}),onFocus:g=>{s.current=g.currentTarget,c(u)}})})}function Tb(e,o){let t=`${e.label} \u2014 row ${o+1}`;return ua({control:"plainText",label:t,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:a,onChange:r})=>b(fa,{value:a,onChange:r,label:l("{label} \u2014 row {n}",{label:l(e.label),n:o+1}),placeholder:e.placeholder,hideable:!1,markup:e.rendering==="markup"})})}function Pb(e){return{_gCards:co("Cards"),coverIndex:st("Cover image",b(HR,{}),oI,String(1),e?.coverHint??"A card's opening picture \u2014 a card pinned to a finish keeps its own."),imageBackground:OB("Image background",Js),cardImage:x_(),spinOnHover:kb("Rotate on hover",e?.spinDefault??!0,b(UR,{}))}}function Eb(){return{outline:st("Card outline",b(jR,{}),fd,cd),indexBadge:st("Card number",b(nb,{}),dd,id),showBadge:kb("Product badge",!0,b(Zc,{noun:"tag"}))}}function Ob(e){let o=e?.defaults??{showCardSizes:!0,showCardBuy:!0,showCardPage:!0},t=r=>({...il,label:nl.find(n=>n.id===r).label}),a=r=>Bt(rf(Yd),t(r));return{_gShowOnCard:co("Show on a card"),[Yd]:Bt({type:"custom",render:()=>b(p_,{rest:{showCardPrice:!0,showCardFinishes:!0,...o}})},t(Yd)),showCardFinishes:a("showCardFinishes"),showCardSizes:a("showCardSizes"),showCardBuy:a("showCardBuy"),showCardPage:a("showCardPage")}}var Yd="showCardPrice",nl=[{id:"showCardPrice",label:"Price"},{id:"showCardFinishes",label:"Finish swatches"},{id:"showCardSizes",label:"Sizes"},{id:"showCardBuy",label:"Buy button"},{id:"showCardPage",label:"Page button"}];function p_({rest:e}){let o=qo(),t=ud(),a=s=>typeof o[s]=="boolean"?o[s]:void 0,r=s=>a(s)??e[s],n=nl.some(({id:s})=>a(s)!==void 0&&a(s)!==e[s]);return b(df,{parts:nl,changed:n,shown:r,onPress:(s,i)=>t({[s]:i}),onReset:()=>t(Object.fromEntries(nl.map(({id:s})=>[s,void 0])))})}function uJ(e,o="display"){let t=ca(o);return{[o]:Ee("desktop",{type:"custom",render:({value:a,onChange:r})=>b(df,{parts:e,changed:Lh(a),shown:n=>bs(a,n),onPress:(n,s)=>r(Rh(a,n,s)),onReset:()=>r(void 0)})}),[t]:Ee("mobile",{type:"custom",render:({value:a,onChange:r})=>b(m_,{parts:e,desktopKey:o,value:a,onChange:r})})}}function df({parts:e,changed:o,shown:t,onPress:a,onReset:r,detail:n}){let s=l("Display");return b(Le,{label:s,icon:b(kR,{}),changed:o,action:b(Qe,{words:X()?.panel,label:s,changed:o,detail:n,onReset:r}),children:b(oB,{label:s,items:e.map(i=>({id:i.id,label:l(i.label),shown:t(i.id)})),onChange:a})})}function m_({parts:e,desktopKey:o,value:t,onChange:a}){let r=qo()[o];return b(df,{parts:e,changed:Ah(t),shown:n=>ed(r,t,n),onPress:(n,s)=>a(Bh(t,n,s)),onReset:()=>a(Cs),detail:l("the same as Desktop")})}function x_(){return tf("Card image",{min:bo,max:Vt,step:oh,hint:"Rounds the picture. The card's own corner is in Styles."})}function pJ(){return af({sidesKey:"cornerSides",step:th,useFollowed:()=>bo,mark:b(h_,{label:ah}),hint:l("Rounds the picture. Left alone it stays square.")})}function h_({label:e,changed:o=!1,onReset:t=()=>{}}){return b(Qe,{words:X()?.panel,label:l(e),changed:o,onReset:t})}function mJ(){return{type:"custom",render:({value:e,onChange:o})=>b(y_,{value:typeof e=="string"?e:"",onChange:o})}}function I_({layout:e,width:o}){return b("span",{"aria-hidden":"true",style:{display:"grid",width:o,gridTemplateColumns:"repeat(12, minmax(0, 1fr))",gridAutoRows:6,gridAutoFlow:"row dense",gap:2},children:lh(e).map(([t,a],r)=>b("i",{className:"block rounded-xs bg-current opacity-60",style:{gridColumn:`span ${t}`,gridRow:`span ${a}`}},r))})}var g_={width:"3.5rem",height:"2.5rem"},b_=200;function y_({value:e,onChange:o}){let[t,a]=Kr(null),[r,n]=Kr(4),s=sl(null);gR(()=>{let u=s.current;if(!u||typeof ResizeObserver!="function")return;let h=()=>n(u.getBoundingClientRect().width>=b_?4:3);h();let g=new ResizeObserver(h);return g.observe(u),()=>g.disconnect()},[]);let i=e&&e in rt?e:"",c=Uc(t,i),f=Uc(t,"").length,m=ps("no-symbol"),x=[{value:"",label:l("Not chosen"),icon:m},...c.map(u=>({value:u,label:l(rt[u].label),icon:b(I_,{layout:rt[u],width:40})}))];return b(Le,{label:l("Layout"),icon:b(NR,{}),value:i?l(rt[i].label):l("Not chosen"),children:b("div",{ref:s,style:{flex:"1 1 auto",minWidth:0},children:b(lB,{label:l("Layout"),value:i,emptyValue:"",options:x,onChange:o,columns:r,cell:g_,header:Xa("div",{className:"mb-2 flex flex-col gap-1",style:{minWidth:"11rem"},children:[b("span",{className:"text-2xs text-ink-faint",children:l("Photos in a row")}),b(YR,{options:[{id:"all",label:l("All")},...nh.map(u=>({id:String(u),label:String(u)}))],value:t===null?"all":String(t),ariaLabel:l("Photos in a row"),onChange:u=>a(u==="all"?null:Number(u))}),b("span",{className:"text-2xs text-ink-faint",children:l("{n} of {total} layouts",{n:f,total:Gc.length})})]})})})})}var k_="Applies to panels, cards, inputs and buttons. Round things \u2014 color swatches, switches, status dots \u2014 stay round.",ff="Corners";function Fb({value:e,onChange:o,showHint:t=!0}){let a=e===null;return Il(C_,{label:l(ff),icon:Il(w_,{}),value:a?l("Default"):`${e}px`,changed:!a,action:Il(S_,{words:X()?.panel,label:l(ff),changed:!a,detail:l("the built-in corners"),onReset:()=>o(null)}),hint:t?l(k_):void 0,children:Il(fo,{min:bo,max:Vt,step:1,value:e??bo,readout:!1,ariaLabel:l(ff),onChange:o})})}import{jsx as Xr}from"react/jsx-runtime";import{SettingsDefaultReset as v_,SettingsField as T_}from"efficient-easel/panel";import{IconPicker as P_}from"efficient-shell/ui";import{ShadowIcon as E_}from"efficient-easel/icons";var uf={none:"None",soft:"Soft",lifted:"Lifted"},O_="Applies to cards \u2014 products, brands, journal entries and filter cells. Round things like swatches and status dots are never shadowed.",F_={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 Lb({value:e,onChange:o,showHint:t=!0}){let a=e===null,r=e??Sc;return Xr(T_,{label:l("Card shadow"),icon:Xr(E_,{}),value:l(uf[r]),changed:!a,action:Xr(v_,{words:X()?.panel,label:l("Card shadow"),changed:!a,detail:l(uf[Sc]),onReset:()=>o(null)}),hint:t?l(O_):void 0,children:Xr(P_,{label:l("Card shadow"),value:r,options:sx.map(n=>({value:n,label:l(uf[n]),icon:Xr("span",{className:"sf-shadow-chip border border-line bg-surface",style:{boxShadow:F_[n]}})})),onChange:o})})}import{jsx as Ab}from"react/jsx-runtime";import{ShadowIcon as L_}from"efficient-easel/icons";var A_="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 Rb({value:e,onChange:o,showHint:t=!0}){let a=e===null;return Ab(Ar,{label:l("Shadow color"),icon:Ab(L_,{}),value:e??"",inherited:wc,resetTo:wc,onChange:o,onReset:()=>o(null),hint:t?l(A_):void 0})}import{jsx as gl}from"react/jsx-runtime";import{SettingsDefaultReset as R_,SettingsField as B_}from"efficient-easel/panel";import{AlignSeparateIcon as __}from"efficient-easel/icons";var D_="The space between the blocks inside a row, a grid or a box. Default means each one keeps the spacing it already has.",pf="Block gap",N_=qa.Grid;function Bb({value:e,onChange:o,showHint:t=!0}){let a=e===null;return gl(B_,{label:l(pf),labelId:"sf-block-gap",icon:gl(__,{}),value:a?l("Default"):`${e}px`,changed:!a,action:gl(R_,{words:X()?.panel,label:l(pf),changed:!a,detail:l("each block's own spacing"),onReset:()=>o(null)}),hint:t?l(D_):void 0,children:gl(fo,{min:la.min,max:la.max,step:la.step,value:a?N_:e,readout:!1,ariaLabel:l(pf),onChange:o})})}import{jsx as bl}from"react/jsx-runtime";import{SettingsDefaultReset as M_,SettingsField as H_,SettingsSegmented as W_}from"efficient-easel/panel";import{HoverIcon as z_}from"efficient-easel/icons";var mf={none:"None",lift:"Lift",highlight:"Highlight"},G_="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 _b({value:e,onChange:o,showHint:t=!0}){let a=e===null,r=e??Cc;return bl(H_,{label:l("Hover effect"),icon:bl(z_,{}),value:l(mf[r]),changed:!a,action:bl(M_,{words:X()?.panel,label:l("Hover effect"),changed:!a,detail:l(mf[Cc]),onReset:()=>o(null)}),hint:t?l(G_):void 0,children:bl(W_,{options:lx.map(n=>({id:n,label:l(mf[n])})),value:r,ariaLabel:l("Hover effect"),onChange:o})})}import{jsx as yl}from"react/jsx-runtime";import{SettingsDefaultReset as U_,SettingsField as $_,SettingsSegmented as j_}from"efficient-easel/panel";import{DropIcon as q_}from"efficient-easel/icons";var xf="Photography",Db={shot:"As shot",mono:"Black and white"},hf=[{grayscale:!1,label:Db.shot},{grayscale:!0,label:Db.mono}],K_="Black and white photographs return to color on hover. Wheels and tyres keep their real finish either way.";function Nb({value:e,onChange:o,showHint:t=!0}){let a=e===null,r=e??!1;return yl($_,{label:l(xf),icon:yl(q_,{}),value:l(hf.find(n=>n.grayscale===r).label),changed:!a,action:yl(U_,{words:X()?.panel,label:l(xf),changed:!a,detail:l(hf.find(n=>!n.grayscale).label),onReset:()=>o(null)}),hint:t?l(K_):void 0,children:yl(j_,{options:hf.map(n=>({id:n.grayscale,label:l(n.label)})),value:r,ariaLabel:l(xf),onChange:o})})}import{jsx as If}from"react/jsx-runtime";import{useId as V_}from"react";import{SettingsField as Y_,SettingsSwitch as X_}from"efficient-easel/panel";import{ShareIcon as Z_}from"efficient-easel/icons";var Q_="Share button",J_="On every blog post.";function Mb({value:e,onChange:o,showHint:t=!0}){let a=V_();return If(Y_,{label:l(Q_),labelId:a,icon:If(Z_,{}),action:If(X_,{checked:e===!0,onChange:o,ariaLabelledBy:a}),hint:t?l(J_):void 0})}import{jsx as Sl}from"react/jsx-runtime";import{SettingsDefaultReset as fD,SettingsField as uD}from"efficient-easel/panel";import{PaddingXIcon as pD}from"efficient-easel/icons";var je={min:1e3,max:2e3,step:50,default:1600};function eD(e){return{maxWidth:e,marginInline:"auto",width:"100%"}}var Hb="--sf-site-width",gf=`var(${Hb},${je.default}px)`,see=`max-w-[${gf}]`,lee=`max-w-[${je.default}px]`;function oD(e){return typeof e!="number"||!Number.isFinite(e)?je.default:Math.round(Math.min(Math.max(e,je.min),je.max))}function iee(e){let o=oD(e);return o===je.default?{}:{[Hb]:`${o}px`}}var Ko={min:0,max:80,step:4,default:40},Wb="--sf-site-gutter",Oo=`var(${Wb},${Ko.default}px)`,tD=`px-[${Oo}]`;var Nt={md:`min(24px,${Oo})`,sm:`min(20px,${Oo})`,frame:`min(24px,${Oo})`,tabs:`min(16px,${Oo})`},cee=[[`max-[1100px]:px-[${Nt.md}]`,"max-[1100px]:px-6"],[`max-[1100px]:px-[${Nt.tabs}]`,"max-[1100px]:px-4"],[`max-[960px]:px-[${Nt.frame}]`,"max-[960px]:px-6"],[`max-[900px]:px-[${Nt.md}]`,"max-[900px]:px-6"],[`max-[800px]:px-[${Nt.md}]`,"max-[800px]:px-6"],[`max-[720px]:px-[${Nt.sm}]`,"max-[720px]:px-5"],[`max-[800px]:px-[${Nt.sm}]`,"max-[800px]:px-5"],[`max-[640px]:px-[${Nt.sm}]`,"max-[640px]:px-5"],[`min-[800px]:px-[${Oo}]`,"min-[800px]:px-10"],[`max-[720px]:px-[min(24px,${Oo})]`,"max-[720px]:px-6"],[`max-[800px]:-mx-[min(20px,${Oo})]`,"max-[800px]:-mx-5"],[`max-[720px]:-mx-[min(20px,${Oo})]`,"max-[720px]:-mx-5"],[`-mx-[${Oo}]`,"-mx-10"],[tD,"px-10"]];var dee="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",fee="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]";function aD(e){return typeof e!="number"||!Number.isFinite(e)?Ko.default:Math.round(Math.min(Math.max(e,Ko.min),Ko.max))}function uee(e){let o=aD(e);return o===Ko.default?{}:{[Wb]:`${o}px`}}var zb=gf,pee=`max-w-[${zb}]`,mee=`max-w-[min(var(--sf-page-cap,${je.default}px),${je.default}px)]`,Gb="--sf-hero-cap",rD=`var(${Gb},none)`,xee=`max-w-[${rD}]`,nD="--sf-hero-bleed-m",sD="--sf-hero-bleed-w",lD="--sf-hero-chrome-x",iD="--sf-hero-chrome-cap";function hee(e){return e===!0?{[Gb]:zb,[nD]:"auto",[sD]:"100%",[lD]:"24px",[iD]:"none"}:{}}var bf=`calc(${gf} - ${Oo}*2)`,Iee=`max-w-[${bf.replace(/ /g,"_")}]`;var cD="--sf-chrome-cap",dD=`var(${cD},${bf})`,gee="data-page-width";function bee(e){return e==="full"?"full":null}function yee(e){return e==="full"?null:eD(e==="content"?bf:dD)}function See(e){if(e==="full")return"full";if(e==="content")return"content"}var yf="Side space",Sf=Ko.default,mD="The room left at the left and right edge of every page.";function Ub({value:e,onChange:o,showHint:t=!0}){let a=e===null;return Sl(uD,{label:l(yf),labelId:"sf-side-space",icon:Sl(pD,{}),value:`${e??Sf}px`,changed:!a,action:Sl(fD,{words:X()?.panel,label:l(yf),changed:!a,detail:`${Sf}px`,onReset:()=>o(null)}),hint:t?l(mD):void 0,children:Sl(fo,{min:Ko.min,max:Ko.max,step:Ko.step,value:e??Sf,readout:!1,ariaLabel:l(yf),onChange:o})})}import{jsx as Cf}from"react/jsx-runtime";import{BACKGROUND_WIDTHS as Aee,SettingsBackgroundWidth as xD,SettingsContentWidth as hD}from"efficient-easel/panel";var ID="Background width",gD="Content width";var Cl=e=>l(ia[e==="content"?"page":"full"]),$b="The width of every section's background.",jb="The width of every section's content.";function qb({value:e,changed:o,detail:t,onChange:a,onReset:r,hint:n,labelId:s}){return Cf(xD,{value:e,changed:o,detail:t,onChange:a,onReset:r,hint:n?l(n):void 0,labelId:s,words:{label:l(ID),full:Cl("full"),content:Cl("content")},resetWords:X()?.panel})}function Kb({mode:e,px:o,max:t=je.max,min:a=je.min,changed:r,detail:n,onMode:s,onPx:i,onReset:c,hint:f,labelId:m}){let x=l(gD),u=e!=="full"?Cf(fo,{min:a,max:t,step:je.step,value:Math.min(Math.max(o,a),t),onChange:i,suffix:"px",ariaLabel:x}):null;return Cf(hD,{mode:e,onMode:s,number:u,changed:r,detail:n,onReset:c,hint:f?l(f):void 0,labelId:m,words:{label:x,full:Cl("full"),content:Cl("content")},resetWords:X()?.panel})}import{jsx as Wy}from"react/jsx-runtime";import{TextStyleItem as LN,TextStylesGroup as AN}from"efficient-easel/text-styles";import{jsx as vN}from"react/jsx-runtime";import{useState as TN}from"react";import{TextStylesList as PN}from"efficient-easel/text-styles";import{usePreviewDevice as EN}from"efficient-easel/draw/client";import{defaultTextStyles as Ey,textStyleCaseCss as bN}from"efficient-easel/text-styles/model";import{parseHexColor as yN}from"efficient-shell/format";import{textStyleCaseCss as OD,textStyleCaseOfCss as FD}from"efficient-easel/draw";import{parseHexColor as LD}from"efficient-shell/format";function wf(e,o){return o?`${e}[${o.index}].${o.rowKey}`:e}function Fo(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 Pf,encodePartId as Pl}from"efficient-easel/draw";import{LINK_FIELD_MARKER as ay,SCAFFOLD_FIELD_MARKER as oy,TEXT_FIELD_MARKER as El}from"efficient-easel/draw";import{readHidable as ry}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as vD}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as kD}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as Vb}from"efficient-easel/draw";import{readHidable as Yb}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as bD}from"efficient-easel/draw";var yD=bD,SD=["text","textarea"],CD=["textarea","plainTextarea"];function wD(e){return!e||typeof e!="object"?null:e[Vb]?.control??null}function Qa(e){let o=wD(e);return o&&yD.includes(o)?o:null}function wl(e){return CD.includes(e)}function Xb(e){return!e||typeof e!="object"?void 0:e[Vb]?.placeholder}function kl(e){return Yb(e).text}function kf(e,o,t){return SD.includes(e)?{text:t,hidden:Yb(o).hidden}:t}function Zb(e,o,t,a){return kl(e[o])===a?null:{...e,[o]:kf(t,e[o],a)}}function vl(e){if(!(!e||typeof e!="object"))return e[kD]}function vf(e){if(!e||typeof e!="object")return null;let o=e.arrayFields;return o&&typeof o=="object"?o:null}function Qb(e,o){if(!Array.isArray(o))return[];let t=vl(e),a=[];if(t?.control==="textList"){let n=t.itemKey??"text";return o.forEach((s,i)=>{let c=ie(s?.[n]);c&&a.push({row:{index:i,rowKey:n},text:c})}),a}let r=vf(e);return r?(o.forEach((n,s)=>{for(let[i,c]of Object.entries(r)){if(!Qa(c))continue;let f=kl(n?.[i])||vl(c)?.placeholder||"";f&&a.push({row:{index:s,rowKey:i},text:f})}}),a):[]}function Zr(e,o){if(Array.isArray(e))return e[o.index]?.[o.rowKey]}function Tf(e,o,t,a){let r=e[o];return!Array.isArray(r)||t.index<0||t.index>=r.length?null:{...e,[o]:r.map((n,s)=>s===t.index?{...n,[t.rowKey]:a}:n)}}function Jb(e,o,t,a,r){let n=Zr(e[o],t);return kl(n)===r?null:Tf(e,o,t,kf(a,n,r))}function ey(e,o){return o?`${e} \xB7 row ${o.index+1}`:e}var Lo="data-sf-part",aoe="data-sf-region-part",roe="data-sf-part-row";function noe(e,o){return`${e}[${o}]`}var soe="data-sf-part-kind",TD="data-sf-part-style-owner",PD="data-sf-part-style-kind";function loe(e){for(let o=e;o;o=o.parentElement){let t=o.getAttribute(TD),a=o.getAttribute(PD);if(t&&a)return{owner:t,kind:a};if(o.getAttribute("data-easel-block"))return null}return null}var ty=2;function Ja(e){return Hr(e).replace(/\s+/gu,"")}function Tl(e,o,t){let a=e[El];if(a){if(a.control==="textList"){let n=a.itemKey??"text";if(!Array.isArray(o))return;for(let s of o){let i=s?.[n];typeof i=="string"&&t.push(i)}return}let{text:r}=ry(o);r?t.push(r):a.placeholder&&t.push(a.placeholder);return}if(!e[ay]){if(e.type==="text"||e.type==="textarea"){let r=ie(o);r&&t.push(r);return}if(e.arrayFields&&Array.isArray(o)){for(let r of o)for(let[n,s]of Object.entries(e.arrayFields))Tl(s,r?.[n],t);return}if(e.objectFields&&o&&typeof o=="object")for(let[r,n]of Object.entries(e.objectFields))Tl(n,o[r],t)}}function ny(e){if(!e||typeof e!="object")return!1;let o=e;return o[ay]?!1:!!o[El]||o.type==="text"||o.type==="textarea"}function Ol(e,o){let t=e[El];return t?.label?t.label:typeof e.label=="string"?e.label:o}function Ef(e){let o=e.indexOf(" (");return(o>0?e.slice(0,o):e).trim()}function ioe(e,o){if(!e)return[];let t=[];for(let[a,r]of Object.entries(e)){if(!r||typeof r!="object"||Wr(a))continue;let n=r,s=[];Tl(n,o?.[a],s),!s.length&&n[oy]!==void 0&&Tl(n,n[oy],s);let i=Ol(n,a),c=new Set;for(let{row:x,text:u}of Qb(n,o?.[a])){let h=Ja(u);h.length<ty||(c.add(h),t.push({key:a,label:i,texts:[h],row:x}))}let f=new Set(c),m=[];for(let x of s){let u=Ja(x);u.length<ty||f.has(u)||(f.add(u),m.push(u))}m.length&&t.push({key:a,label:i,texts:m})}return t}function Of(e){return!e.offPage&&!e.hidden}var ED=vD;function sy(e,o){if(!o||typeof o!="object"||Wr(e)||Xh(o))return null;let t=o[El];return!t||!ED.includes(t.control)?null:t}function coe(e,o){let t=sy(e,o);return t!==null&&t.identifier!==!0}function ly(e,o){if(!e)return[];let t=[];for(let[a,r]of Object.entries(e)){let n=sy(a,r);if(!n)continue;let{text:s,hidden:i}=ry(o?.[a]);if(Of({offPage:n.offPage===!0,hidden:!!i}))continue;let c=s||n.placeholder||"",f=Hr(c).replace(/\s+/gu," ").trim();t.push({key:a,label:Ef(Ol(r,a)),preview:f,offPage:n.offPage===!0,identifier:n.identifier===!0,hidden:!!i})}return t}var Lf="_partStyles",Rf="data-sf-part-styled",er="data-sf-text-style",AD=/^(heading|body)-[1-7]$/;function or(e){return typeof e=="string"&&AD.test(e)}var Al={heading:"heading-1",heading2:"heading-2",heading3:"heading-3",body:"body-1",label:"body-5"};function RD(e){if(!e)return null;for(let[o,t]of Object.entries(Al))if(t===e)return o;return null}function Iy(e){if(or(e.textStyle))return e.textStyle;let o=ot(e.role);return o?Al[o]:void 0}var BD=[400,500,600,700],Fl=["left","center","right","justify"],iy=5,cy=1e3,_D=-5,DD=10,Bf=0,_f=64,Df=2,dy={size:{min:iy,max:cy,step:1},sizePhone:{min:iy,max:cy,step:1},padding:{min:Bf,max:_f,step:Df}},ND=.05,MD=.01,HD=["line","letter"],WD=.5,zD=2.5,GD=-1,UD=1,$D=0,jD=400,qD=[...new Set(Object.values(vc))];function Jr(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function gy(e){return Jr(e?.[Lf])??{}}function Rl(e,o){let t=gy(e);return Object.hasOwn(t,o)?Jr(t[o])??{}:{}}function by(e,o,t){let a={...gy(e)};if(KD(t).length?a[o]=t:delete a[o],!Object.keys(a).length){let{[Lf]:r,...n}=e;return n}return{...e,[Lf]:a}}function KD(e){return Object.entries(e).filter(([,o])=>o!==void 0)}function VD(e){return HD.includes(e)}var Qr=(e,o,t)=>Math.min(t,Math.max(o,e));function YD(e,o){if(VD(e)){let t=Math.round(Number(o));return!Number.isFinite(t)||t===0?null:Qr(t,_D,DD)}if(e==="lineHeight"){let t=Number(o);return Number.isFinite(t)?tr(Qr(t,WD,zD),3):null}if(e==="letterSpacing"){let t=Number(o);return Number.isFinite(t)?tr(Qr(t,GD,UD),4):null}if(e==="paragraphSpacing"){let t=Math.round(Number(o));return!Number.isFinite(t)||t<=0?null:Qr(t,$D,jD)}if(Object.hasOwn(dy,e)){let{min:t,max:a}=dy[e],r=Math.round(Number(o));return Number.isFinite(r)?Qr(r,t,a):null}return e==="italic"?typeof o=="boolean"?o:null:e==="role"||e==="fontRole"?ot(o)?o:null:e==="sizeToken"?Mf(o)?o:null:e==="textStyle"?or(o)?o:null:e==="alignPhone"?Fl.includes(o)?o:null:o}var XD=["weight","size","sizePhone","line","letter","lineHeight","letterSpacing","paragraphSpacing","padding"];function Nf(e){let o=null,t=a=>{o??={...e},delete o[a]};for(let a of XD){let r=e[a];r!==void 0&&!(typeof r=="number"&&Number.isFinite(r))&&t(a)}return e.align!==void 0&&!Fl.includes(e.align)&&t("align"),e.alignPhone!==void 0&&!Fl.includes(e.alignPhone)&&t("alignPhone"),e.textStyle!==void 0&&!or(e.textStyle)&&t("textStyle"),e.sizeToken!==void 0&&!Mf(e.sizeToken)&&t("sizeToken"),e.fontRole!==void 0&&!ot(e.fontRole)&&t("fontRole"),o??e}function Mf(e){if(!e||typeof e!="object")return!1;let{step:o,px:t,stepPhone:a,pxPhone:r,fluid:n}=e,s=c=>typeof c=="number"&&Number.isFinite(c)&&c>0,i=c=>typeof c=="string"&&qD.includes(c);return i(o)&&s(t)&&(a===void 0||i(a))&&(r===void 0||s(r))&&(n===void 0||ZD(n,t))}function ZD(e,o){if(!e||typeof e!="object"||Array.isArray(e))return!1;let{minPx:t,vw:a,...r}=e;return Object.keys(r).length===0&&typeof t=="number"&&Number.isFinite(t)&&t>0&&t<o&&typeof a=="number"&&Number.isFinite(a)&&a>0&&a<=100}function yy(e){return e?.pxPhone&&Mf(e)?{step:e.stepPhone??e.step,px:e.pxPhone}:null}function Sy({step:e,px:o,fluid:t}){let a=t?`clamp(${t.minPx}px, ${t.vw}vw, ${o}px)`:`${o}px`,r=`var(--size-${e}, ${a})`;return e.startsWith("heading")?`min(${r}, var(--sf-heading-max,9999px))`:r}var QD=[["font","role"],["font","fontRole"],["role","textStyle"],["line","lineHeight"],["letter","letterSpacing"]];function JD(e){let o=[];for(let[t,a]of QD)t===e?o.push(a):a===e&&o.push(t);return o}function ar(e,o,t,a){let r={...Rl(e,o)},n=a==null?null:YD(t,a);if(n===null)delete r[t];else{r[t]=n;for(let s of JD(t))delete r[s]}return by(e,o,r)}function Cy(e,o){return by(e,o,{})}function eN(e){return FD(e)??"none"}function oN(e){return OD(e)??""}var fy={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 tN(e,o){return ot(e.role)||(o?.blockDrawsStyle?null:RD(e.textStyle))}function wy(e,o){return e==="Text"&&o==="text"}var aN={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 rN(e){let o=vc[e],t=aN[o];return t?`var(--size-${o}, ${t})`:`var(--size-${o})`}function on(e){let o={};return typeof e.lineHeight=="number"?o.lineHeight=e.lineHeight:e.line&&(o.lineHeight=tr(nN+e.line*ND,3)),typeof e.letterSpacing=="number"?o.letterSpacingEm=e.letterSpacing:e.letter&&(o.letterSpacingEm=tr(e.letter*MD,4)),o}var nN=1,pa="--sf-part-para";function uy(e){e=Nf(e);let o={};if(typeof e.sizePhone=="number"&&e.sizePhone>0)o.fontSize=`${e.sizePhone}px`;else{let t=yy(e.sizeToken);t&&(o.fontSize=Sy(t))}return e.alignPhone&&(o.textAlign=e.alignPhone),o}function sN(e,o){if(!o)return e;let t=Nf(e),a=e;if(typeof t.sizePhone=="number"&&t.sizePhone>0)a={...a,size:t.sizePhone};else{let r=yy(t.sizeToken);r&&(a={...a,size:void 0,sizeToken:r})}return t.alignPhone&&(a={...a,align:t.alignPhone}),a}function Ll(e,o,t){e=Nf(e);let a=tN(e,t),r=on(e),n=e.size?`${e.size}px`:e.sizeToken?Sy(e.sizeToken):a?rN(a):"";return{fontFamily:e.font?dN(e.font):e.fontRole?`var(${fy[e.fontRole]})`:a?`var(${fy[a]})`:"",fontWeight:e.weight?String(e.weight):"",fontSize:n,minWidth:n?"0":"",overflowWrap:n?"break-word":"",lineHeight:r.lineHeight!==void 0?String(r.lineHeight):"",letterSpacing:r.letterSpacingEm!==void 0?`${r.letterSpacingEm}em`:"",[pa]:e.paragraphSpacing?`${e.paragraphSpacing}px`:"",textTransform:oN(e.case),textAlign:e.align??"",paddingTop:py(e.padding),paddingBottom:py(e.padding),color:lN(e.color),fontStyle:e.italic===!0?"italic":e.italic===!1?"normal":""}}var lN=e=>e===void 0||e===""?"":Object.hasOwn(nt,e)?nt[e]:LD(e)===e.toLowerCase()?e:"",py=e=>e===void 0?"":`${e}px`,tr=(e,o)=>Number(e.toFixed(o));function goe(e,o){let t=Number.parseFloat(e.fontSize)||16,a=Number.parseFloat(e.lineHeight),r=Number.parseFloat(e.letterSpacing),n=Number.parseFloat(e.paddingTop);return{fontKey:o,sizePx:t,weight:iN(Number.parseInt(e.fontWeight,10)),lineRatio:Number.isFinite(a)?tr(a/t,3):1.2,letterEm:Number.isFinite(r)?tr(r/t,4):0,align:cN(e.textAlign),case:eN(e.textTransform),paddingPx:Number.isFinite(n)?Math.round(n):0}}function iN(e){return Number.isFinite(e)?BD.reduce((o,t)=>Math.abs(t-e)<Math.abs(o-e)?t:o):400}function cN(e){for(let o of Fl)if(o===e)return o;return e==="end"?"right":"left"}function boe(e,o){let t=my(e);if(!t)return"";for(let a of vo)if(my(o(a.cssVar))===t)return a.key;return""}var my=e=>(e.split(",")[0]??"").replace(/["']/g,"").replace(/\s+/g," ").trim().toLowerCase();function dN(e){let o=Ra(e);return o?`var(${o.cssVar})`:""}function yoe(e,o,t,a){return!o||Pf(o)?.nodeId!==e?null:t.find(r=>a(r.getAttribute("class")))??t[0]??null}function Soe(e,o,t=()=>en,a=i=>i,r=pN,n=!1,s=()=>!1){let i=0;for(let{element:c,partId:f}of e){let m=Pf(f)?.propKey;if(!m)continue;let x=a(m),u=Object.hasOwn(o,x)?Jr(o[x])??{}:{},h=Ll(sN(u,n),en,{blockDrawsStyle:s(m)});or(u.textStyle)?c.setAttribute?.(er,u.textStyle):c.removeAttribute?.(er);let g=Ff.some(T=>c.style[T]),w=!1;for(let[T,E]of Object.entries(h))mN(c,T,E),E&&(w=!0);if(g||Ff.some(T=>h[T]))for(let T of fN(c,r))for(let E of Ff)T.style[E]=h[E]??"";w&&(i+=1)}return i}function fN(e,o){let t=Ja(e.textContent??""),a=[],r=e;for(let n=0;n<uN&&o(r);n+=1){let s=r.parentElement;if(!s||Ja(s.textContent??"")!==t)break;a.push(s),r=s}return a}var uN=8;function pN(e){let o=e;return typeof window>"u"||!o?.ownerDocument?!1:window.getComputedStyle(o).display==="inline"}var en={fontKey:"",sizePx:16,weight:400,lineRatio:1,letterEm:0,align:"left",case:"none",paddingPx:0};function mN(e,o,t){if(!o.startsWith("--")){e.style[o]=t;return}let a=e.style;typeof a.setProperty=="function"?t?a.setProperty(o,t):a.removeProperty?.(o):a[o]=t;let r=e;o===pa&&(t?r.setAttribute?.(xy,""):r.removeAttribute?.(xy))}var xy="data-sf-part-para",xN=Object.keys(Ll({},en)),Af=new Set(["color","overflowWrap",pa,"fontStyle"]),Ff=xN.filter(e=>!Af.has(e));function ky(e,o,t,a=n=>n,r=()=>!1){let n=new Map;for(let c of e){let f=wf(c.key,c.row);for(let m of c.texts){let x=n.get(m);x?(x.keys.add(c.key),x.partKeys.add(f)):n.set(m,{keys:new Set([c.key]),partKeys:new Set([f])})}}let s=new Map;for(let c of Object.keys(o)){if(!hN(c))continue;let f=Jr(o[c])??{},m=Ll(f,en),x=uy(f),u=or(f.textStyle)?f.textStyle:void 0;!Object.values(m).some(Boolean)&&!Object.keys(x).length&&!u||s.set(c,{stamp:hy(t,c),declarations:m,...Object.keys(x).length?{phone:x}:{},...u?{textStyle:u}:{}})}let i=new Map;for(let[c,{keys:f,partKeys:m}]of n){let x=m.size===1?[...m][0]:f.size===1?[...f][0]:null;if(!x)continue;let u=a(x);if(!Object.hasOwn(o,u))continue;let h=Jr(o[u])??{},g=Ll(h,en,{blockDrawsStyle:r(x)}),w=uy(h),T=or(h.textStyle)?h.textStyle:void 0;!Object.values(g).some(Boolean)&&!Object.keys(w).length&&!T||i.set(c,{stamp:hy(t,x),declarations:g,...Object.keys(w).length?{phone:w}:{},...T?{textStyle:T}:{}})}return i.size||s.size?{rules:i,kindRules:s,drawn:new Set(n.keys())}:null}function hN(e){return e.startsWith("@")}function Hf(e,o){return e?.kindRules.get(o)??null}function hy(e,o){let t=a=>a.replace(/[^A-Za-z0-9_-]+/g,"-");return`${t(e)}~${t(o)}`}function Wf(e){let o=[],t=new Set,a=r=>{let{stamp:n,declarations:s}=r;if(t.has(n))return;t.add(n);let i=Object.entries(s).filter(([,h])=>h!==""),c=h=>h.map(([g,w])=>`${IN(g)}: ${w}`).join("; "),f=`[${Rf}="${n}"]`,m=i.filter(([h])=>!Af.has(h)),x=i.filter(([h])=>Af.has(h));m.length&&o.push(`${f}, *:has(> ${f}) { ${c(m)} }`),x.length&&o.push(`${f} { ${c(x)} }`),s[pa]&&(o.push(`*:has(> ${f}) { ${pa}: ${s[pa]} }`),o.push(...zf(f,`*:has(> ${f})`)));let u=Object.entries(r.phone??{}).filter(([,h])=>h!=="");u.length&&o.push(`@media ${_s} { ${f}, *:has(> ${f}) { ${c(u)} } }`)};for(let r of e.rules.values())a(r);for(let r of e.kindRules.values())a(r);return o.join(`
|
|
4
|
-
`)}function zf(e,o){let t=`var(${pa})`,a=":is([data-sf-bullet], [data-sf-number])";return[`${e} br:not(br + br) { display: block; content: ""; margin-top: ${t} }`,`${e} ${a}:not(:first-child) { margin-top: ${t} }`,`${e} ${a}:not(:last-child) { margin-bottom: ${t} }`,`:is(${o}) + :is(${o}) { margin-top: ${t} }`]}var IN=e=>e.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`);function vy(e,o){if(!e)return null;let t=Ja(o),a=e.rules.get(t);if(a)return a;if(t.length<gN||e.drawn.has(t))return null;let r=null;for(let[n,s]of e.rules)if(n.includes(t)){if(r&&r.stamp!==s.stamp)return null;r=s}return r}var gN=8;function Ty(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 Gf=e=>e==="sentence"?"none":void 0,Oy=["font","color","size","sizePhone","weight","italic","lineHeight","letterSpacing","paragraphSpacing","letterCase","largestSize"];function Vo(e){let o={};for(let t of Oy)e[t]!==void 0&&(o[t]=e[t]);return o}function $f(e,o){let{auto:t,...a}=e,r=new Set(o??[]),n=Oy.filter(s=>r.has(s)&&e.values[s]===void 0);return n.length?{...a,auto:n}:a}function Fy(e){let o=e.fonts,t=e.sizes,a=e.typography,r=cx(e.compression),n={"heading-1":{font:ie(o.heading),size:$(t.headingLarge),weight:$(a.weight),lineHeight:r.lineHeight,letterSpacing:r.letterSpacing,letterCase:Gf(a.case),largestSize:$(a.maxPx)},"heading-2":{font:ie(o.heading2),size:$(t.headingMedium),weight:$(a.weight2),lineHeight:r.lineHeight,letterSpacing:r.letterSpacing,letterCase:Gf(a.case2)},"heading-3":{font:ie(o.heading3),size:$(t.headingSmall),weight:$(a.weight3),lineHeight:r.lineHeight,letterSpacing:r.letterSpacing,letterCase:Gf(a.case3)},"body-1":{font:ie(o.body),size:$(t.body)},"body-5":{font:ie(o.label),size:$(t.label)}};return Ey().map(({id:s,kind:i,name:c})=>({id:s,kind:i,name:c,values:Vo(n[s]??{})}))}function jf(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=>$f({...o,values:Vo(o.values??{})},Array.isArray(o.auto)?o.auto:void 0)):null}function Roe(e){return jf(e)??[]}function Ly(e){return jf(e)??Ey().map(({id:o,kind:t,name:a})=>({id:o,kind:t,name:a,values:{}}))}function Mt(e,o){let t=Fy(o),a=jf(e);return a?a.map(r=>{let n={...Uf(t,r.id)};for(let s of r.auto??[])delete n[s];return{...r,values:Vo({...n,...r.values})}}):t}var Uf=(e,o)=>e.find(t=>t.id===o)?.values??{},Py=["heading-1","heading-2","heading-3"];function Ay({saved:e,old:o,cur:t,next:a,sizeOf:r}){let n=Fy(o),s=Ly(e),i=Mt(s,o),c=[],f=a.map(x=>{let u=t.find(I=>I.id===x.id),h=s.find(I=>I.id===x.id);if(!u||!h)return SN([x],r)[0];let g={...h.values},w=new Set(h.auto??[]),T=x.values,E=u.values,C=[...new Set([...Object.keys(T),...Object.keys(E)])].filter(I=>JSON.stringify(T[I])!==JSON.stringify(E[I]));C.sort((I,S)=>+(I==="letterSpacing")-+(S==="letterSpacing"));for(let I of C){let S=I==="lineSpacing"?"lineHeight":I,v=T[I];if(v===void 0){delete g[S],Uf(n,x.id)[S]!==void 0&&(c.push([x.id,S]),w.add(S));continue}if(w.delete(S),I==="lineSpacing")g.lineHeight=rr(v/100,3);else if(I==="letterSpacing"){let y=i.find(A=>A.id===x.id),O=r({...x,values:Vo({...y?.values??{},...g})});g.letterSpacing=O?rr(v/O,4):0}else g[S]=v}return $f({id:x.id,kind:x.kind,name:x.name,values:Vo(g)},w)}),m=o.compression;if(c.some(([x,u])=>(u==="lineHeight"||u==="letterSpacing")&&Py.includes(x))&&Yt(m)!=="normal"){for(let x of Py){let u=f.find(g=>g.id===x);if(!u)continue;let h={...u.values};for(let g of["lineHeight","letterSpacing"])c.some(([w,T])=>w===x&&T===g)||h[g]===void 0&&!(u.auto??[]).includes(g)&&(h[g]=Uf(n,x)[g]);u.values=Vo(h)}m="normal"}return{saved:f,old:{...o,compression:m}}}function Ry(e,o){let t={text_styles:e.saved};return e.old.compression!==o.compression&&(t.heading_compression=Yt(e.old.compression)),t}var rr=(e,o)=>Number(e.toFixed(o));function By(e,o){return e.map(t=>{let{lineHeight:a,letterSpacing:r,...n}=t.values,s={...n};return a!==void 0&&(s.lineSpacing=rr(a*100,1)),r!==void 0&&(s.letterSpacing=rr(r*o(t),2)),{id:t.id,kind:t.kind,name:t.name,values:s}})}function SN(e,o){return e.map(t=>{let{lineSpacing:a,letterSpacing:r,...n}=t.values,s={id:t.id,kind:t.kind,name:t.name,values:Vo({...n})},i={...s.values};if(a!==void 0&&(i.lineHeight=rr(a/100,3)),r!==void 0){let c=o({...s,values:{...s.values}});i.letterSpacing=c?rr(r/c,4):0}return{...s,values:Vo(i)}})}function Boe(e){let o={fonts:Fr({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:yc({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:Yt(e.heading_compression),typography:fx(e)},t=e.text_styles??null,a=Array.isArray(t)?qf(Mt(t,o),o):o;return{fonts:Fr(a.fonts),sizes:yc(a.sizes),compression:Yt(a.compression),typography:a.typography,textStyles:t}}function qf(e,o){let t=u=>e.find(h=>h.id===u)?.values??{},a=t("heading-1"),r=t("heading-2"),n=t("heading-3"),s=t("body-1"),i=t("body-5"),c=o.fonts,f=o.sizes,m=o.typography,x=u=>u==="none"?"sentence":"authored";return{fonts:{...c,heading:a.font??c.heading,heading2:r.font??a.font??c.heading2,heading3:n.font??a.font??c.heading3,body:s.font??c.body,label:i.font??c.label},sizes:{...f,headingLarge:a.size??null,headingMedium:r.size??null,headingSmall:n.size??null,body:s.size??null,label:i.size??null},compression:o.compression,typography:{...m,case:x(a.letterCase),weight:a.weight??null,maxPx:a.largestSize??null,weight2:r.weight??null,weight3:n.weight??null,case2:x(r.letterCase),case3:x(n.letterCase)}}}function CN(e){return e==="accent"?"var(--accent)":e==="text"?"var(--fg)":e==="labels"?"var(--fg-dim)":yN(e)===e.toLowerCase()?e:null}function _oe(e){let o=[];for(let t of e){let a=t.values,r=`.${Ty(t)}`,n=`[${er}="${t.id}"]`,s=`${r}, ${n}`,i=[],c=a.font!==void 0?vo.find(u=>u.key===a.font)?.cssVar:void 0;if(c&&i.push(`font-family: var(${c})`),a.size!==void 0){let u=a.largestSize!==void 0?Math.min(a.size,a.largestSize):a.size;i.push(`font-size: ${u}px`)}let f=a.color!==void 0?CN(a.color):null;f&&i.push(`color: ${f}`),a.italic===!0&&i.push("font-style: italic"),a.weight!==void 0&&i.push(`font-weight: ${a.weight}`);let m=[];a.lineHeight!==void 0&&m.push(`line-height: ${a.lineHeight}`),a.letterSpacing!==void 0&&m.push(`letter-spacing: ${a.letterSpacing}em`),t.kind==="body"&&i.push(...m);let x=bN(a.letterCase);if(x&&t.kind==="body"&&i.push(`text-transform: ${x}`),a.paragraphSpacing&&i.push(`--sf-part-para: ${a.paragraphSpacing}px`),i.length&&o.push(`${s} { ${i.join("; ")} }`),t.kind==="heading"&&m.length&&o.push(`${s}, ${r}:is(h1, h2, h3, h4), ${n}:is(h1, h2, h3, h4) { ${m.join("; ")} }`),t.kind==="heading"&&x&&o.push(`${n}, ${r}:is(h1, h2, h3, h4) { text-transform: ${x} }`),a.paragraphSpacing&&(o.push(`*:has(> ${n}) { --sf-part-para: ${a.paragraphSpacing}px }`),o.push(...zf(`:is(${s})`,`*:has(> ${n})`))),a.sizePhone!==void 0){let u=wN[t.id],h=[`${s} { font-size: ${a.sizePhone}px }`];u&&h.push(`.sf-themed-content { --size-${u}: ${a.sizePhone}px !important }`),o.push(`@media ${_s} { ${h.join(" ")} }`)}}return o.join(`
|
|
5
|
-
`)}var wN={"heading-1":"headingLarge","heading-2":"headingMedium","heading-3":"headingSmall","body-1":"body","body-5":"label"};function Doe(e){return e!==!0&&e!==!1?"":`em.text-accent { font-style: ${e?"italic":"normal"} }`}function _y(e){return e?Al[e]:void 0}function Kf(e){let o=on(e);return Vo({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 Dy(e){return Object.keys(Kf(e)).length>0}function Ny({saved:e,old:o,styleId:t,values:a}){let r=Ly(e);return{saved:kN(r,t,a),old:o}}function kN(e,o,t){return e.map(a=>a.id===o?$f({...a,values:Vo({...a.values,...t})},a.auto):a)}var My=["font","color","size","weight","emphasis","lineSpacing","letterSpacing","paragraphSpacing","letterCase","largestSize"],ON=["size","lineSpacing","letterSpacing","letterCase"],FN=500,Vf=vo.map(e=>({value:e.key,label:e.label,family:`var(${e.cssVar})`,italic:e.italicLoaded}));function Hy({saved:e,old:o,colours:t,sizeOf:a,onChange:r,openId:n,onOpenChange:s,readOnly:i=!1,withoutSize:c=!1}){let[f,m]=TN(null),x=EN()==="mobile",u=Mt(e,o),h=By(u,a);return vN(PN,{styles:h,onChange:g=>r(Ay({saved:e,old:o,cur:h,next:g,sizeOf:a})),fonts:Vf,colours:t,settings:c?My.filter(g=>g!=="size"):My,auto:ON,openId:n===void 0?f:n,onOpenChange:s??m,readOnly:i,device:x?"phone":"desktop",fallback:g=>{let w=u.find(E=>E.id===(g.kind==="heading"?"heading-1":"body-1")),T={};return w?.values.font&&g.id!==w.id&&(T.font=w.values.font),g.kind==="heading"&&(T.weight=FN),T}})}var zy=["font","size","weight","emphasis"],RN=500;function BN({font:e,size:o,weight:t,italic:a}){let r={font:e};return o!==null&&(r.size=o),t!==null&&(r.weight=t),a!==null&&(r.italic=a),{id:"accent",kind:"heading",name:l("Accent"),values:r}}function _N(e,o){let t=[],a=e.values,r=o.values;return r.font!==a.font&&r.font!==void 0&&t.push({key:"font",value:r.font}),r.size!==a.size&&t.push({key:"size",value:r.size??null}),r.weight!==a.weight&&t.push({key:"weight",value:r.weight??null}),r.italic!==a.italic&&t.push({key:"italic",value:r.italic??null}),t}function Gy(e){let{headingWeight:o,open:t,onOpenChange:a,onChange:r,withoutSize:n=!1}=e,s=BN(e);return Wy(AN,{label:l("Accent"),children:Wy(LN,{style:s,fonts:Vf,settings:n?zy.filter(i=>i!=="size"):zy,auto:["size"],fallback:()=>({weight:o??RN}),open:t,onOpenChange:a,onChange:i=>_N(s,i).forEach(r)})})}import{Button as I2,EmptyState as g2,Tabs as b2,Tooltip as cae,tabButtonId as y2,tabPanelId as S2}from"efficient-shell/ui";import{ContrastIcon as C2,NoteIcon as w2,SettingsIcon as k2,TypeIcon as v2}from"efficient-easel/icons";function Uy(e){switch(e.status){case"saved":return null;case"failed":return{msg:l("Not saved. Try again."),tone:"error"};case"skipped":switch(e.reason){case"empty":return null;case"no-token":return{msg:l("Not saved. Reload the page."),tone:"error"};case"template":return{msg:l("Templates keep their look. Press Done."),tone:"success"}}}}import{jsx as au}from"react/jsx-runtime";import{ListIcon as n2,PaddingTopIcon as s2}from"efficient-easel/icons";import{jsx as Bl}from"react/jsx-runtime";import{SettingsDefaultReset as DN,SettingsField as NN,SettingsSegmented as MN}from"efficient-easel/panel";import{WidthIcon as HN}from"efficient-easel/icons";function $y({value:e,resolved:o,onChange:t,label:a="Width",labelId:r,followsLabel:n,hint:s}){let i=e===void 0,c=i?o:e,f=l(a);return Bl(NN,{label:f,labelId:r,icon:Bl(HN,{}),value:i?n:void 0,changed:!i,action:Bl(DN,{words:X()?.panel,label:f,changed:!i,onReset:()=>t(void 0)}),hint:s,children:Bl(MN,{options:[{label:l(ia.full),id:"full"},{label:l(ia.page),id:"content"}],value:c,ariaLabel:f,onChange:t})})}var ma="product",_l="recordType",WN={key:ma,label:"Product",fields:[]},zN=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,GN=/^[a-z][A-Za-z0-9]*$/,UN=["text","date"],jy=new Map,qy=0;function $N(e){if(typeof e.key!="string"||!zN.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===ma)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"||!GN.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(!UN.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 rte(e){let o=e.map($N);for(let t of o)jy.set(t.key,t);o.length&&(qy+=1)}function Yf(){return[WN,...jy.values()]}function Xf(){return qy}function Zf(e){let o=e?.[_l];return typeof o!="string"?ma:o.trim()||ma}function Qf(e){return Zf(e)===ma}var Jf="product",jN="tyre";var qN="productType",KN={[Jf]:"alloy-wheel",[jN]:"tyre"},VN=["alloy-wheel","tyre"];function Ky(e,o){return Qf(o)?YN(o)??KN[e]??null:null}function YN(e){if(!Qf(e))return null;let o=e?.[qN];return typeof o=="string"&&VN.includes(o)?o:null}var Dl=null,Vy=null;function XN(e,o){Dl=e,Vy=o}function cte(e){XN(e,null)}function dte(){return Dl}function Nl(){return Vy==="dynamic"||Dl===Jf}function fte(e){return Ky(Dl??"",e)??"alloy-wheel"}import{HEADER_TYPE as eu,FOOTER_TYPE as ZN}from"efficient-easel/draw";var QN=new Set(["Hero","HeroSingle","IntroBleed"]),Yy={min:56,max:140,default:88},mte={min:0,max:120,step:2,default:32},xte=`var(--sf-header-h, ${Yy.default}px)`,JN="--sf-header-set-h",hte="--sf-header-h",Ite=`var(${JN}, ${Yy.default}px)`,gte="sf-header-clearance",bte="sf-sticky-underheader";function e2(e){return e?.find(o=>o?.type&&o.type!==eu)??null}function Xy(e){let o=e2(e)?.type;return!o||!QN.has(o)}function yte(e){return!Xy(e)}function Ste(e){return!!e?.some(o=>o?.type===eu)}function Cte(e){return!e||e.length===0?!1:!e.some(o=>o?.type===eu||o?.type===ZN)}var o2=["auto","shared","own"],ou="auto",t2="topSpace",wte="data-top-space";function a2(e){return o2.includes(e)?e:ou}function r2(e,o){let t=a2(e?.props?.[t2]);return t==="own"?!0:t==="shared"?!1:Xy(o)}function kte(e,o){return r2(e,o)?"own":null}function l2(){return{type:"custom",render:({value:e,onChange:o})=>au($y,{value:e==="full"?"full":e==="content"?"content":void 0,resolved:"content",label:"Page width",followsLabel:l("Follows the site"),hint:l("Whether this page sits on the site's content column, or runs edge to edge."),onChange:t=>o(t)})}}var i2=[{label:"Auto",value:"auto"},{label:"Shared",value:"shared"},{label:"Its own",value:"own"}],_te={pageBackground:vb(),topSpace:st("Top space",au(s2,{}),i2,ou),widthChoice:l2()},tn=["pageBackground","topSpace","widthChoice"],c2="Record type",tu=new Map,Zy=-1;function d2(e){Zy!==Xf()&&(tu.clear(),Zy=Xf());let o=Yf(),t=o.some(r=>r.key===e)?"":e,a=tu.get(t);return a||(a=st(c2,au(n2,{}),[...o.map(r=>({label:r.label,value:r.key})),...t?[{label:t,value:t}]:[]],ma),tu.set(t,a)),a}var Qy=new WeakMap;function Dte(e,o){if(!Nl()||Yf().length<2||_l in e)return e;let t=d2(Zf(o)),a=Qy.get(e);if(a&&a.row===t)return a.fields;let r={[_l]:t,...e};return Qy.set(e,{row:t,fields:r}),r}import{previewFrame as T2}from"efficient-easel/screen/lib/document/preview-dom";import{useEasel as f2}from"efficient-easel/easel";function Ml({themeFromDocument:e,persist:o}){let{appState:t,dispatch:a}=f2(O=>O),{fonts:r,setFonts:n,sizes:s,setSizes:i,headingCompression:c,setHeadingCompression:f,headingTypography:m,setHeadingTypography:x,textStyles:u,setTextStyles:h}=ee(),g=t.data,w=g.root?.props??{},T=e?Fr(w.fonts):r,E=e?ax:s,C=e?Yt(w.headingCompression):c,I=e?dx(w.headingTypography):m,S={fonts:T,sizes:E,compression:C,typography:I},v=e?w.textStyles:u,y=O=>a({type:"replaceRoot",root:{...g.root,props:{...w,...O}},recordHistory:!0});return{fonts:T,sizes:E,compression:C,typography:I,old:S,saved:v,write:(O,A)=>{let N=qf(Mt(O.saved,O.old),O.old);e?y({textStyles:O.saved,fonts:N.fonts,headingCompression:N.compression,headingTypography:N.typography}):(h(O.saved),n(N.fonts),i(N.sizes),f(N.compression),x(N.typography)),o(Ry(O,S),A)},writeRoot:y}}var nu="sf-site-styles",P2="sf-site-styles-tabpanel",su=!1,E2="Show hints";function lu({shown:e,onChange:o}){return Q("div",{className:"sf-hints",children:Q(I2,{type:"button",variant:"ghost","aria-pressed":e,leftIcon:Q(w2,{size:13}),onClick:()=>o(!e),children:l(E2)})})}var oS="text",sr="basics",Jy="this-page-group",nr=[{id:sr,label:"Basics",icon:Q(k2,{})},{id:"theme",label:"Theme",icon:Q(C2,{})},{id:"text",label:"Text",icon:Q(v2,{})}];function O2({themeFromDocument:e,persist:o}){let{appState:t,dispatch:a}=eS(f=>f),{theme:r,setTheme:n}=ee(),s=t.data,i=s.root?.props??{},c=f=>{if(e){let m={...i,theme:f};a({type:"replaceRoot",root:{...s.root,props:m},recordHistory:!0})}else n(f);o({selected_preset:f.selected,theme_presets:f.themes})};return Q(jx,{value:e?i.theme:r,onChange:c})}function F2({themeFromDocument:e,persist:o}){let[t,a]=Hl(null),{theme:r,setFonts:n,setSizes:s,setHeadingTypography:i}=ee(),c=Ml({themeFromDocument:e,persist:o}),{old:f,saved:m,writeRoot:x}=c,u=c.fonts,h=c.sizes,g=c.typography,w=y=>y.values.size??_2(A2[y.id]??"body")??R2[y.kind],T=y=>c.write(y),E=L2(r),C=y=>{let O={...u,accent:y};e?x({fonts:O}):n(O),o({accent_font:y})},I=y=>{s({...h,accent:y}),o({accent_size_px:y})},S=y=>{let O={...g,weightStrong:y};e?x({headingTypography:O}):i(O),o({heading_weight_strong:y})},v=y=>{let O={...g,italicStrong:y};e?x({headingTypography:O}):i(O),o({accent_italic:y})};return xa(ha,{children:[Q(Hy,{saved:m,old:f,colours:E,sizeOf:w,onChange:T,openId:t===ru?null:t,onOpenChange:a,withoutSize:e}),Q(Gy,{font:u.accent,size:h.accent,weight:g.weightStrong,italic:g.italicStrong,headingWeight:g.weight,open:t===ru,onOpenChange:y=>a(y?ru:null),onChange:y=>{y.key==="font"?C(y.value):y.key==="size"?I(y.value):y.key==="weight"?S(y.value):v(y.value)},withoutSize:e})]})}var ru="accent";function L2(e){let o=vt(e);return[{key:"accent",name:l("Accent"),value:o.accent},{key:"text",name:l("Text"),value:o.text},{key:"labels",name:l("Labels"),value:o.muted??o.text}]}var A2={"heading-1":"heading","heading-2":"heading2","heading-3":"heading3","body-1":"body","body-5":"label"},R2={heading:32,body:14},B2={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 _2(e){if(typeof document>"u")return null;let o=(T2()?.contentDocument??document).querySelector(B2[e]);if(!o)return null;let t=parseFloat(getComputedStyle(o).fontSize);return Number.isFinite(t)?t:null}function D2({themeFromDocument:e,persist:o,showHint:t}){let{appState:a,dispatch:r}=eS(u=>u),{cornerRadiusPx:n,setCornerRadiusPx:s}=ee(),i=a.data,c=i.root?.props??{},f=c.cornerRadiusPx===void 0?nx[rx(c.cornerStyle)]:zo(c.cornerRadiusPx),m=e?f:n,x=u=>r({type:"replaceRoot",root:{...i.root,props:{...c,...u}},recordHistory:!0});return Q(Fb,{value:m,onChange:u=>{e?x({cornerRadiusPx:u}):s(u),o({corner_radius_px:u})},showHint:t})}function N2(e){return{site_width:e}}function M2({persist:e,showHint:o}){let{siteWidth:t,setSiteWidth:a,sectionBackgroundWidth:r,setSectionBackgroundWidth:n,sectionContentWidth:s,setSectionContentWidth:i}=ee(),c=typeof t=="number"?t:je.default,f=u=>{a(u),e(N2(u),u===null)},m=u=>{n(u),e({section_background_width:u},!0)},x=u=>{i(u),e({section_content_width:u},!0)};return xa(ha,{children:[Q(qb,{value:r??"full",changed:r!==null,detail:l("Full width"),onChange:m,onReset:()=>m(null),hint:o?$b:void 0}),Q(Kb,{mode:s??"content",px:c,min:je.min,max:je.max,changed:typeof t=="number"||s!==null,detail:`${l("Content width")} ${je.default}px`,onMode:x,onPx:u=>f(u),onReset:()=>{x(null),f(null)},hint:o?jb:void 0})]})}function H2(e){return{block_gap:e}}function W2(e){return{site_gutter:e}}function z2({persist:e,showHint:o}){let{siteGutter:t,setSiteGutter:a}=ee();return Q(Ub,{value:t,onChange:r=>{a(r),e(W2(r),r===null)},showHint:o})}function G2({persist:e,showHint:o}){let{blockGap:t,setBlockGap:a}=ee();return Q(Bb,{value:t,onChange:r=>{a(r),e(H2(r),r===null)},showHint:o})}function U2({persist:e,showHint:o=!0}){return xa(ha,{children:[Q(M2,{persist:e,showHint:o}),Q(z2,{persist:e,showHint:o}),Q(G2,{persist:e,showHint:o})]})}function $2(e){return{card_shadow:e}}function j2(e){return e===null?{shadow_color:null}:{shadow_color:ix(e)}}function q2(e){return{hover_effect:e}}function K2({persist:e,showHint:o=!0}){let{cardShadow:t,setCardShadow:a,shadowColor:r,setShadowColor:n,hoverEffect:s,setHoverEffect:i}=ee();return xa(ha,{children:[Q(Lb,{value:t,onChange:c=>{a(c),e($2(c),!0)},showHint:o}),Q(Rb,{value:r,onChange:c=>{n(c),e(j2(c),c===null)},showHint:o}),Q(_b,{value:s,onChange:c=>{i(c),e(q2(c),!0)},showHint:o})]})}function V2(e){return{photography_grayscale:e}}function Y2({persist:e,showHint:o}){let{photographyGrayscale:t,setPhotographyGrayscale:a}=ee();return Q(Nb,{value:t,onChange:r=>{a(r),e(V2(r),!0)},showHint:o})}function X2({persist:e,showHint:o=!0}){return Q(ha,{children:Q(Y2,{persist:e,showHint:o})})}function Z2(e){return{share_button_on_posts:e}}function Q2({persist:e,showHint:o=!0}){let{shareButtonOnPosts:t,setShareButtonOnPosts:a}=ee();return Q(Mb,{value:t,onChange:r=>{a(r),e(Z2(r),!0)},showHint:o})}function lr(){let{websiteName:e}=ee();return e?.trim()||bx}function Wl({themeFromDocument:e=!1,tokenRef:o,siteId:t,onNotify:a,tab:r,onTabChange:n,initialTab:s,revealPageGroup:i=!1,onPageGroupRevealed:c}){let{persist:f}=Ma({themeFromDocument:e,tokenRef:o,siteId:t,onResult:C=>{let I=Uy(C);I&&a?.(I.msg,I.tone)}}),[m,x]=Hl(s??nr[0].id),u=r!==void 0,h=u?r:m,g=u?n??(()=>{}):x,w=nr.find(C=>C.id===h)??nr[0],[T,E]=Hl(su);return xa(ha,{children:[Q(oM,{activeId:w.id,onSelect:g}),xa("div",{id:S2(nu,w.id),className:P2,role:"tabpanel","aria-labelledby":y2(nu,w.id),children:[h===sr&&xa(ha,{children:[Q(D2,{themeFromDocument:e,persist:f,showHint:T}),!e&&Q(K2,{persist:f,showHint:T}),!e&&Q(U2,{persist:f,showHint:T}),!e&&Q(X2,{persist:f,showHint:T}),!e&&Q(Q2,{persist:f,showHint:T}),Q(J2,{reveal:i,onRevealed:c}),Q(lu,{shown:T,onChange:E})]}),h==="theme"&&Q(O2,{themeFromDocument:e,persist:f}),h==="text"&&Q(F2,{themeFromDocument:e,persist:f})]})]})}function J2({reveal:e,onRevealed:o}){let[t,a]=Hl(!0),r=h2(o);return r.current=o,x2(()=>{if(!e)return;a(!0);let n=requestAnimationFrame(()=>{document.getElementById(Jy)?.scrollIntoView({block:"start"}),r.current?.()});return()=>cancelAnimationFrame(n)},[e]),Q(m2,{title:l("This page"),open:t,onToggle:a,id:Jy,children:Q(eM,{})})}function eM(){let{fields:e,values:o,readOnly:t,onChange:a}=u2(),r=Object.fromEntries(tn.filter(n=>n in e).map(n=>[n,e[n]]));return Object.keys(r).length===0?Q(g2,{variant:"none",icon:!1,message:l("This page has no look of its own to set.")}):Q(p2,{fields:r,values:o,onChange:a,readOnly:t,tabs:!1,idPrefix:"this-page",ariaLabel:l("This page")})}function oM({activeId:e,onSelect:o}){return Q("div",{className:"es-insp-tabs",children:Q(b2,{variant:"underline",block:!0,labelsFit:!0,"aria-label":l("Styles"),idPrefix:nu,value:e,onChange:o,items:nr.map(t=>{let a=l(t.label);return{id:t.id,icon:t.icon,label:a}})})})}import{InspectorIconButton as SM}from"efficient-easel/chrome";import{Button as SS,Dialog as CM,FormField as wM,Input as CS,PopupMenu as kM,PopupMenuItem as wS,toast as kS}from"efficient-shell/ui";import{LayersTree as vM,TreeGroupLabel as TM,TreeRow as vS,TreeRowAction as jl}from"efficient-easel/tree";import{AddIcon as PM,DuplicateIcon as EM,PageIcon as OM,SettingsIcon as FM}from"efficient-easel/icons";import{PagesIcon as LM}from"efficient-easel/rail";import{useEaselHost as AM}from"efficient-easel/screen/lib/host";var iu="Main Pages",tM="Dynamic Pages",cu="dynamic",aM="dynamic";function an(e){return e.kind===aM}function tS(e){let o=[],t=[];for(let a of e){if(an(a)){t.push(a);continue}let r=a.groupKey??(a.group?`folder:${a.group}`:"top"),n=o[o.length-1];n&&n.key===r?n.rows.push(a):o.push({key:r,label:a.group??iu,rows:[a]})}if(t.length){let a=o.findIndex(r=>r.key.startsWith("system:"));o.splice(a===-1?o.length:a,0,{key:cu,label:tM,rows:t})}return o}import{useEaselSession as RM}from"efficient-easel/screen/lib/session-context";import{useCallback as zl,useEffect as rM,useSyncExternalStore as nM}from"react";import{useScreenDocument as sS}from"efficient-easel/screen/components/ScreenDocumentContext";var aS=new WeakMap;function rn(e){let o=aS.get(e);return o||(o={rows:null,loading:null,listeners:new Set},aS.set(e,o)),o}function du(e,o){e.rows=o;for(let t of e.listeners)t()}var Gl=new Set;function Ul(e,o){o?Gl.add(e):Gl.delete(e)}function rS(e){let o=rn(e),t=e.listPages().then(a=>du(o,Gl.size?a.filter(r=>!Gl.has(r.id)):a),()=>du(o,[])).finally(()=>{o.loading===t&&(o.loading=null)});return o.loading=t,t}var nS=()=>null,sM=()=>()=>{};function nn(){let{adapter:e,ready:o}=sS(),t=zl(i=>{let{listeners:c}=rn(e);return c.add(i),()=>c.delete(i)},[e]),a=zl(()=>rn(e).rows,[e]),r=nM(o?t:sM,o?a:nS,nS);rM(()=>{if(!o)return;let i=rn(e);i.rows===null&&!i.loading&&rS(e)},[e,o]);let n=zl(()=>o?rS(e):Promise.resolve(),[e,o]),s=zl(i=>du(rn(e),i),[e]);return{rows:r,reload:n,setRows:s,getRows:a}}function lM(e,o){return e?.find(t=>t.slug===o)?.label?.trim()||`/${o}`}function lS(){let{currentSlug:e}=sS(),{rows:o}=nn();return lM(o,e)}import{useEaselSession as iM}from"efficient-easel/screen/lib/session-context";import{useScreenDocument as cM}from"efficient-easel/screen/components/ScreenDocumentContext";import{slugify as dM}from"efficient-shell/format";var fM=new Set(["normal","dynamic"]);function iS(e){return!e.kind||fM.has(e.kind)}function $l(e,o){let t=dM(e)||"page";if(!o.has(t))return t;let a=2;for(;o.has(`${t}-${a}`);)a+=1;return`${t}-${a}`}function cS(e,o){return o.has(e)}function dS(e,o){return{title:`${e.label||e.slug} copy`,slug:$l(`${e.slug}-copy`,o)}}function fS(){let e=iM(),{siteId:o,templateId:t}=cM(),a=He(e).pages;if(!(!a.duplicate||t))return(r,n)=>a.duplicate(r.id,{...n,...o?{siteId:o}:{}})}import{jsx as Ia,jsxs as uS,Fragment as uM}from"react/jsx-runtime";import{useId as pS,useState as ir}from"react";import{Button as mS,Dialog as pM,FormField as xS,Input as hS,Stack as mM}from"efficient-shell/ui";import{slugify as IS}from"efficient-shell/format";function gS({source:e,taken:o,duplicate:t,onClose:a,onDuplicated:r}){let n=pS(),s=pS(),[i,c]=ir(null),[f,m]=ir(""),[x,u]=ir(""),[h,g]=ir(!1),[w,T]=ir(!1),[E,C]=ir(null);if(e!==i&&(c(e),e)){let y=dS(e,o);m(y.title),u(y.slug),g(!1),C(null)}let I=cS(x,o),S=!!(e&&f.trim()&&x&&!I&&!w),v=async()=>{if(!(!e||!S)){T(!0),C(null);try{let y=await t(e,{title:f.trim(),slug:x});r(y)}catch{C(l("Couldn\u2019t duplicate the page \u2014 please retry."))}finally{T(!1)}}};return Ia(pM,{open:e!==null,onClose:()=>{w||a()},size:"sm",title:l("Duplicate \u201C{name}\u201D",{name:e?.label??""}),description:l("The copy is a draft and stays hidden until you publish it. It opens in the editor."),footer:uS(uM,{children:[Ia(mS,{variant:"secondary",onClick:a,disabled:w,children:l("Cancel")}),Ia(mS,{onClick:()=>{v()},disabled:!S,loading:w,children:l("Duplicate page")})]}),children:uS(mM,{gap:4,children:[Ia(xS,{label:l("Title"),htmlFor:n,error:E??void 0,children:Ia(hS,{id:n,value:f,invalid:!!E,onChange:y=>{m(y.target.value),h||u(IS(y.target.value))},onKeyDown:y=>{y.key==="Enter"&&v()}})}),Ia(xS,{label:l("URL handle"),htmlFor:s,hint:I?void 0:l("URL: /{slug}",{slug:x}),error:I?l("Another page uses this URL handle."):void 0,children:Ia(hS,{id:s,value:x,invalid:I,onChange:y=>{g(!0),u(IS(y.target.value))},onKeyDown:y=>{y.key==="Enter"&&v()}})})]})})}var TS="sf-editor-pages-collapsed-groups";function PS({onNavigate:e,onClose:o,activeSurface:t,onPreviewSurface:a}){let r=RM().chrome?.pageRows,n=AM(),{adapter:s,capabilities:i,ready:c,currentSlug:f}=bM(),m=lr(),{rows:x,reload:u,setRows:h,getRows:g}=nn(),[w,T]=Ht(""),[E,C]=Ht(!1),[I,S]=Ht(null),[v,y]=Ht(!1),[O,A]=Ht(""),N=IM(),W=fS(),[D,P]=Ht(null),[R,F]=Ht(()=>{if(typeof window>"u")return new Set;try{let B=window.localStorage.getItem(TS);return new Set(B?JSON.parse(B):[])}catch{return new Set}});hM(()=>{try{window.localStorage.setItem(TS,JSON.stringify([...R]))}catch{}},[R]);let M=B=>F(ae=>{let re=new Set(ae);return re.has(B)?re.delete(B):re.add(B),re}),U=yS(()=>tS(x??[]),[x]),Y=w.trim().toLowerCase(),me=B=>!Y||B.toLowerCase().includes(Y),Be=B=>Y?!0:!R.has(B),ze=yS(()=>new Set((x??[]).map(B=>B.slug)),[x]),Ve=()=>{if(i.pageCreationInAdminForm){n.send("storefront-editor:new-page");return}A(""),S(null),y(!0)},Ye=async()=>{let B=O.trim();if(!(!B||!c||E||!s.createPage)){C(!0),S(null);try{let ae=await s.createPage({slug:$l(B,ze),title:B,layout:{}});await u(),y(!1),A(""),e(ae.slug)}catch{S(l("Couldn\u2019t add the page \u2014 please retry."))}finally{C(!1)}}},fe=i.hasSiteSettings&&!!s.createPage,De=async()=>{if(!(!c||E||!s.createPage)){C(!0),S(null);try{let B=await s.createPage(qI(l("New popup"),ze));await u(),e(B.slug)}catch{S(l("Couldn\u2019t add the popup \u2014 please retry."))}finally{C(!1)}}},Fe=gM(null),[so,oo]=Ht(null),ho=()=>{if(!fe)return Ve();if(so)return oo(null);let B=Fe.current?.getBoundingClientRect();B&&oo({top:B.bottom+6,right:Math.max(8,window.innerWidth-B.right)})},St=B=>{let ae=x??[],re=s.deletePage;if(!c||E||!re||ae.length<=1)return;let pe=ae.findIndex(io=>io.id===B.id),Mo=ae.filter(io=>io.id!==B.id),qt=B.slug===f;Ul(B.id,!0),h(Mo),S(null),qt&&Mo[0]&&e(Mo[0].slug);let ko=()=>{Ul(B.id,!1);let io=g()??[];if(io.some(Er=>Er.id===B.id))return;let et=[...io];et.splice(Math.max(0,Math.min(pe,et.length)),0,B),h(et)};kS.undoable(l("Deleted \u201C{name}\u201D",{name:B.label}),{actionLabel:l("Undo"),commit:async io=>{await re(B.id,io),Ul(B.id,!1)},undo:()=>{ko(),qt&&e(B.slug)},onFail:()=>{ko(),kS.error(l("Couldn\u2019t delete the page \u2014 please retry."))}})},Io=B=>n.send("storefront-editor:open-page",{slug:B}),go=B=>{if(!me(B.label))return null;let ae=!t&&B.slug===f,re=i.canDeletePagesInline&&(x??[]).length>1,pe=an(B),Mo=B.kind==="lightbox",qt=[...pe?[{label:l("Dynamic"),tone:"info"}]:[],...Mo?[{label:l("Lightbox"),tone:"success"}]:[],...B.draft?[{label:l("draft"),tone:"draft"}]:[]],ko=qt.length>0?qt:void 0,io=!!W&&iS(B),et=io||i.pageCreationInAdminForm||re?sn(bS,{children:[io&&ce(jl,{kind:"plain",label:l("Duplicate \u201C{name}\u201D",{name:B.label}),disabled:E,onClick:()=>P(B),children:ce(EM,{size:13})}),i.pageCreationInAdminForm&&ce(jl,{kind:"plain",label:l("Page settings for \u201C{name}\u201D",{name:B.label}),onClick:()=>Io(B.slug),children:ce(FM,{size:13})}),re&&ce(jl,{kind:"delete",label:l("Delete \u201C{name}\u201D",{name:B.label}),disabled:E,onClick:()=>St(B),children:ce(fu,{name:"trash",size:13,strokeWidth:1.7,rounded:!0})})]}):void 0;return ce(vS,{icon:ce(OM,{size:14}),name:B.label,selected:ae,onSelect:()=>e(B.slug),badge:ko,actions:et,rowProps:{"data-page-slug":B.slug}},B.id)},wo=(B,ae,re)=>{let pe=re.filter(Boolean);if(pe.length===0)return null;let Mo=Be(B);return sn(xM,{children:[ce(TM,{count:pe.length,countLabel:Ze("{n} page","{n} pages",pe.length),expanded:Mo,onToggle:()=>M(B),children:ae}),Mo&&pe]},B)},Jo=(r?.rows??[]).filter(B=>me(B.label)).map(B=>{let ae=t===B.key;return ce(vS,{icon:B.icon,name:B.label,selected:ae,onSelect:()=>a(B.key),badge:{label:l("Preview"),tone:"warning"},actions:ce(jl,{kind:"plain",label:l("Open the {name} in a new tab",{name:B.label}),onClick:()=>window.open(B.href,"_blank","noopener,noreferrer"),children:ce(fu,{name:"external-link",size:13,strokeWidth:1.7,rounded:!0})}),rowProps:{"data-shop-surface":B.key}},B.key)}),Ct=i.hasSiteSettings&&!!r,lo=(()=>{if(x===null)return null;let B=[],ae=!1;for(let re of U){Ct&&!ae&&re.key.startsWith("system:")&&(B.push(wo("shop",r.title,Jo)),ae=!0);let pe=re.key===cu||re.label===iu?l(re.label):re.label;B.push(wo(re.key,pe,re.rows.map(go)))}return Ct&&!ae&&B.push(wo("shop",r.title,Jo)),B})();return sn("div",{className:"sf-pages",children:[ce(yM,{icon:ce(LM,{}),title:l("Pages"),context:m,actions:ce(SM,{buttonRef:Fe,label:fe?l("Add"):l("New page"),hasPopup:fe?"menu":void 0,expanded:fe?so!==null:void 0,onClick:ho,children:ce(PM,{size:15})})}),so&&ce(kM,{portal:!0,style:{top:so.top,right:so.right},onClose:()=>oo(null),children:sn("div",{role:"menu","aria-label":l("Add"),children:[ce(wS,{role:"menuitem",onClick:()=>{oo(null),Ve()},children:l("Page")}),ce(wS,{role:"menuitem",disabled:E,onClick:()=>{oo(null),De()},children:l("Popup")})]})}),ce("div",{className:"sf-pages-find",children:ce(CS,{type:"search",leftIcon:ce(fu,{name:"search",size:14,rounded:!0}),placeholder:l("Search all pages\u2026"),value:w,onChange:B=>T(B.target.value),"aria-label":l("Search all pages")})}),I&&!v&&ce("div",{className:"sf-note sf-note--error",role:"alert",children:I}),lo===null?ce("div",{className:"sf-note",children:l("Loading\u2026")}):lo.some(Boolean)?ce(vM,{ariaLabel:l("Pages"),className:"sf-scroll",children:lo}):ce("div",{className:"sf-note",children:w.trim()?l("No pages match your search"):l("No pages yet. Add one with + above.")}),W&&ce(gS,{source:D,taken:ze,duplicate:W,onClose:()=>P(null),onDuplicated:B=>{P(null),u(),e(B.slug)}}),ce(CM,{open:v,onClose:()=>y(!1),size:"sm",title:l("Add a page"),description:l("Give the new template page a name. It starts blank \u2014 add sections once it opens."),footer:sn(bS,{children:[ce(SS,{variant:"secondary",onClick:()=>y(!1),children:l("Cancel")}),ce(SS,{onClick:()=>{Ye()},disabled:E||!O.trim(),loading:E,children:l("Add page")})]}),children:ce(wM,{label:l("Page name"),htmlFor:N,hint:O.trim()?l("URL: /{slug}",{slug:$l(O,ze)}):void 0,error:I??void 0,children:ce(CS,{id:N,value:O,invalid:!!I,onChange:B=>A(B.target.value),onKeyDown:B=>{B.key==="Enter"&&Ye()},placeholder:l("e.g. About")})})})]})}import{jsx as FS}from"react/jsx-runtime";import{createContext as _M,useCallback as DM,useContext as NM,useMemo as MM,useState as HM}from"react";import{CanvasChromeContext as WM}from"efficient-easel/easel";import{useSelectHandler as zM}from"efficient-easel/draw/client";import{parseHexColor as BM}from"efficient-shell/format";var ql=["chat-bubble-left-right","chat-bubble-oval-left-ellipsis","chat","megaphone","phone","sparkles"],cr=ql[0];var ga="right";function Kl(e){return ql.includes(e??"")?e:cr}function ES(e){return e==="left"?"left":ga}function OS(e){return e&&BM(e)===e.toLowerCase()?e.toLowerCase():""}var LS="chat",Vl={enabled:!0,title:"",subtitle:"",greeting:"",launcherColor:"",launcherIcon:"",launcherPosition:ga,launcherLabel:"",showOnPhones:!0};function dre(e){return{enabled:e.enabled,title:e.title,subtitle:e.subtitle,greeting:e.greeting,launcherColor:OS(e.launcherColor),launcherIcon:e.launcherIcon?Kl(e.launcherIcon):"",launcherPosition:ES(e.launcherPosition),launcherLabel:e.launcherLabel??"",showOnPhones:e.showOnPhones!==!1}}var AS=_M({chat:Vl,setChat:()=>{},setSelected:()=>{},setSelectHandler:()=>{}});function fre({children:e,chat:o=Vl,onChatChange:t}){let[a,r]=HM(!1),n=DM(f=>t?.(f),[t]),{select:s,setSelectHandler:i}=zM(),c=MM(()=>({selected:()=>a?LS:null,select:f=>f===LS&&s()}),[a,s]);return FS(AS.Provider,{value:{chat:o,setChat:n,setSelected:r,setSelectHandler:i},children:FS(WM.Provider,{value:c,children:e})})}var Yl=()=>NM(AS);import{jsx as uu}from"react/jsx-runtime";import{DesktopIcon as GM,PhoneIcon as UM,TabletIcon as $M}from"efficient-easel/icons";import{VIEW_TIERS as jM,VIEW_TIER_LABEL as qM}from"efficient-easel/draw";var KM={desktop:uu(GM,{}),tablet:uu($M,{}),mobile:uu(UM,{})},RS=jM.map(e=>({id:e,get label(){return l(qM[e])},icon:KM[e]}));import{PreviewDeviceContext as Y8}from"efficient-easel/draw/client";import{jsx as VM}from"react/jsx-runtime";import{createContext as YM,useCallback as BS,useContext as XM,useMemo as ZM,useRef as QM}from"react";var JM=Object.fromEntries(ls.map(e=>[e,{value:"",error:null}])),_S=YM({links:Sx,rows:JM,canSave:!1,saveLink:async()=>({ok:!1,error:"There is no website to save to."}),openPanel:()=>{},setOpenHandler:()=>{}});function Sre({children:e,value:o}){let t=QM(()=>{}),a=BS(()=>t.current(),[]),r=BS(s=>{t.current=s},[]),n=ZM(()=>({...o,openPanel:a,setOpenHandler:r}),[o,a,r]);return VM(_S.Provider,{value:n,children:e})}var ln=()=>XM(_S);import{jsx as eH}from"react/jsx-runtime";import{createContext as oH,useContext as tH,useMemo as aH,useState as rH}from"react";var DS=oH(null);function vre({children:e}){let[o,t]=rH(null),a=aH(()=>({surface:o,setSurface:t}),[o]);return eH(DS.Provider,{value:a,children:e})}function NS(){return tH(DS)??{surface:null,setSurface:()=>{}}}import{createPreviewSelectionContext as nH}from"efficient-easel/draw/client";var cn="Scrolling Bar",{Provider:Ere,useSelection:MS}=nH("selectedHeroId"),Ore="data-sf-hero-ticker";function Fre(e){return`${e}::ticker`}function Lre(e){return!e||!e.endsWith("::ticker")?null:e.slice(0,-8)||null}import{createPreviewSelectionContext as sH}from"efficient-easel/draw/client";var{Provider:Bre,useSelection:Xl}=sH("selectedHeroPart");import{isShown as dH,lazyShowWhenContext as fH}from"efficient-shell/format";import{addShowWhenFacts as lH}from"efficient-shell/format";import{showWhenOf as pu,shownForOption as iH,truthy as cH,withRowRules as mu,withRowsShownWhen as xu,withShowWhen as Zl}from"efficient-shell/format";var Mre=lH;function WS(e,o,t){let a=!1,r={};for(let[n,s]of Object.entries(e))dH(pu(s),o??{},t)?r[n]=s:a=!0;return a?r:e}function zS(e,o,t,a){let r=fs(o,t,a);return{device:e,parentType:r?.item.type,parent:r?.item.props}}function HS(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 HS(t.not,o);for(let a of[t.all,t.any])if(Array.isArray(a)&&a.some(r=>HS(r,o)))return!0;return!1}function jre(e,o={}){return fH({parentType:()=>e.parent?.type??void 0,parent:()=>e.parent?.props??void 0,dynamicPage:()=>Nl(),root:()=>e.appState?.data?.root?.props,...o})}var US=["one","side","stacked"];var Kre={one:"One",side:"Side by side",stacked:"Stacked"};function $S(e){return US.includes(e)?e:"one"}function GS(e){return e==="one"?1:2}function uH(e,o){if(US.includes(e))return e;let t=$S(o);return t==="side"?"stacked":t}function hu(e){let o=$S(e.mediaLayout);return Math.max(GS(o),GS(uH(e.mediaLayoutPhone,o)))}var dn=["media","image","image2"],dr={media:"Media",image:"Image",image2:"Image 2"},fn={media:"heroMedia",image:"heroImage",image2:"heroImage2"};function Ql(e,o){return e==="image"&&hu(o)>1?"Image 1":dr[e]}var Zre="Video file",Qre="Upload a video file";function pH(e,o){return{field:"mediaType",is:e,default:o}}var mH=new Set(["HeroSingle"]),jS="heroPart";function xH(e,o){return{...o,[jS]:e}}function Jre(e,{parts:o={},onlyFor:t,fallback:a,rules:r}){let n={...e};for(let s of["image","video"])for(let i of t[s])n[i]=Zl(n[i],pH(s,a));for(let[s,i]of Object.entries(r??{}))i&&(n[s]=Zl(n[s],i));for(let s of dn)for(let i of o[s]??[])n[i]=xH(s,n[i]);return n}function hH(e){let o=e?.[jS];return dn.includes(o)?o:null}function qS(e,o){let t={};for(let[a,r]of Object.entries(e))hH(r)===o&&(t[a]=r);return t}function KS(e){if(!mH.has(e.type))return[];let o=[{part:"media",label:dr.media,depth:0}];return(e.props.mediaType??"image")!=="video"&&(o.push({part:"image",label:Ql("image",e.props),depth:1}),hu(e.props)>1&&o.push({part:"image2",label:Ql("image2",e.props),depth:1})),o}function un(e,o){return`${e}::${o}`}function VS(e){if(!e)return null;let o=e.lastIndexOf("::");if(o<=0)return null;let t=e.slice(o+2);return dn.includes(t)?{nodeId:e.slice(0,o),part:t}:null}var ene="data-sf-hero-part";import{jsx as le,jsxs as Sa,Fragment as Uw}from"react/jsx-runtime";import{useState as M6}from"react";import{useEasel as H6,useRootFields as W6}from"efficient-easel/easel";import{Button as z6,EmptyState as G6}from"efficient-shell/ui";function YS({kind:e,pageName:o}){return{name:o?.trim()||l("This page"),kindLabel:an({kind:e})?l("Template"):l("Page")}}import{headWords as Kw,InspectorHead as U6,InspectorIconButton as $w}from"efficient-easel/chrome";import{DuplicateIcon as $6,TrashIcon as j6}from"efficient-easel/icons";import{panelFieldsOf as q6}from"efficient-easel/screen/lib/document/panel-fields";import{jsx as L,Fragment as te,jsxs as ne}from"react/jsx-runtime";import{BlockBannerIcon as bH,BlockBoxIcon as yH,BlockButtonIcon as SH,BlockDividerIcon as ZS,BlockFooterIcon as QS,BlockHeadingIcon as CH,BlockProductIcon as wH,BlockSocialIcon as kH,BlockTextIcon as vH,CardPaymentIcon as TH,ChatIcon as PH,AccountIcon as EH,GlobeIcon as OH,GridIcon as FH,ImageIcon as gu,MapIcon as LH,MediaIcon as AH,PageIcon as RH}from"efficient-easel/icons";import{jsx as Iu,Fragment as IH,jsxs as gH}from"react/jsx-runtime";var XS=gH(IH,{children:[Iu("circle",{cx:"9",cy:"20",r:"1.3"}),Iu("circle",{cx:"18",cy:"20",r:"1.3"}),Iu("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 BH={header:ne(te,{children:[L("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),L("path",{d:"M3 9.5h18"})]}),social:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{children:[L("circle",{cx:"11",cy:"11",r:"6"}),L("path",{d:"M20 20l-4.2-4.2"})]}),CartBlock:XS,CountrySwitchBlock:ne(te,{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:ne(te,{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:ne(te,{children:[L("path",{d:"M3 9h18"}),L("path",{d:"M3 14h8M14 14h2M18 14h3"})]}),Hero:ne(te,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M7 13.5h7M7 16.5h10"})]}),HeroSlide:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{children:[L("rect",{x:"6",y:"4",width:"12",height:"16",rx:"2"}),L("path",{d:"M9 15h6M9 17.5h4"})]}),AlloyWheelsListing:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{children:[L("path",{d:"M3.5 20h17"}),L("path",{d:"M6 20v-7M11 20V7M16 20v-5M20.5 20v-9"})]}),Logos:ne(te,{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:ne(te,{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:ne(te,{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:ne(te,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M3 13.5h18M7 16.8h6"})]}),Split:ne(te,{children:[L("rect",{x:"3",y:"5",width:"8",height:"14",rx:"1.5"}),L("path",{d:"M14 8.5h6M14 12h6M14 15.5h4"})]}),Eyebrow:ne(te,{children:[L("path",{d:"M4 8.5h4.5M11 8.5h9"}),L("path",{d:"M4 14.5h16"})]}),HeroGroup:ne(te,{children:[L("rect",{x:"3.5",y:"4.5",width:"17",height:"15",rx:"2"}),L("path",{d:"M7 9h8M7 12.5h10M7 16h6"})]}),Form:ne(te,{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(te,{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:ne(te,{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:ne(te,{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"})]}),CustomHTML:L("path",{d:"M9 8l-4 4 4 4M15 8l4 4-4 4"})},_H=L("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2.5"}),DH={footer:QS,Footer:QS,Divider:ZS,FooterDivider:ZS,Banner:bH,Flex:yH,FooterSocial:kH,FooterPayment:TH,page:RH,website:OH,AccountBlock:EH,chat:PH,Heading:CH,Text:vH,ImageBlock:gu,ButtonBlock:SH,LocationMap:LH,Grid:FH,ProductRef:wH,heroMedia:AH,heroImage:gu,heroImage2:gu},NH={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial",PaymentLogosBlock:"FooterPayment",SiteHeader:"header",SiteFooter:"footer"};function ba({type:e,size:o=16,className:t}){let a=NH[e]??e,r=DH[a];return r?L(r,{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:BH[a]??_H})}import{PanelHideButton as jw}from"efficient-easel/screen/components/SidePanelHead";import{useEaselSession as K6}from"efficient-easel/screen/lib/session-context";import{jsx as de,jsxs as pn,Fragment as MH}from"react/jsx-runtime";import{useEffect as HH,useId as JS,useState as WH}from"react";import{IconPicker as zH}from"efficient-shell/ui";import{SettingsDefaultReset as GH,SettingsField as mn,SettingsSegmented as UH,SettingsSwitch as eC}from"efficient-easel/panel";import{ButtonIcon as $H,ButtonIconIcon as jH,EyeIcon as qH,PhoneIcon as KH,PlacementIcon as VH,TypeIcon as YH}from"efficient-easel/icons";var XH="Chat with us",ZH="We usually reply within a few minutes",QH="Hi! Ask us anything \u2014 about a wheel, an order, or fitment. Leave your details and we\u2019ll reply.";function Jl({label:e,value:o,placeholder:t,onCommit:a,multiline:r=!1,hint:n}){let[s,i]=WH(o);HH(()=>i(o),[o]);let c=()=>{s!==o&&a(s)};return de(mn,{label:e,icon:de(YH,{}),changed:o!=="",action:de(xn,{label:e,changed:o!=="",onReset:()=>a("")}),hint:n,children:r?de("textarea",{value:s,placeholder:t,rows:3,onChange:f=>i(f.target.value),onBlur:c,"aria-label":e}):de("input",{type:"text",value:s,placeholder:t,onChange:f=>i(f.target.value),onBlur:c,onKeyDown:f=>{f.key==="Enter"&&f.currentTarget.blur()},"aria-label":e,autoComplete:"off"})})}function xn({label:e,changed:o,onReset:t}){return de(GH,{words:X()?.panel,label:e,changed:o,onReset:t})}function JH({label:e,icon:o,checked:t,fallback:a,onChange:r,hint:n}){let s=JS();return de(mn,{label:e,labelId:s,icon:o,changed:t!==a,action:pn("span",{className:"inline-flex items-center gap-2",children:[de(eC,{checked:t,onChange:r,ariaLabelledBy:s}),de(xn,{label:e,changed:t!==a,onReset:()=>r(a)})]}),hint:n})}var e5=ql.map(e=>({value:e,icon:ps(e)}));function o5(){let{theme:e}=ee(),o=Ge(e).themes[0];return Or(o)??o?.accent??""}function oC(){let{chat:e,setChat:o}=Yl(),t=JS(),a=o5(),r=e.launcherIcon?Kl(e.launcherIcon):cr;return pn(MH,{children:[de(mn,{label:l("Show the chat bubble"),labelId:t,icon:de(qH,{}),changed:!e.enabled,action:pn("span",{className:"inline-flex items-center gap-2",children:[de(eC,{checked:e.enabled,onChange:n=>o({enabled:n}),ariaLabelledBy:t}),de(xn,{label:l("Show the chat bubble"),changed:!e.enabled,onReset:()=>o({enabled:!0})})]}),hint:e.enabled?l("The floating chat bubble shows in the corner of every page."):l("The chat bubble is hidden across the whole site.")}),pn(of,{title:l("Look"),children:[de(yo,{label:l("Button color"),icon:de($H,{}),changed:e.launcherColor!=="",value:e.launcherColor,inherited:a,caption:e.launcherColor?void 0:l("Site button color"),onChange:n=>o({launcherColor:n}),onReset:()=>o({launcherColor:""})}),de(mn,{label:l("Icon"),icon:de(jH,{}),changed:r!==cr,action:de(xn,{label:l("Icon"),changed:r!==cr,onReset:()=>o({launcherIcon:""})}),children:de(zH,{label:l("Icon"),value:r,options:e5,onChange:n=>o({launcherIcon:n===cr?"":n})})}),de(mn,{label:l("Position"),icon:de(VH,{}),changed:e.launcherPosition!==ga,action:de(xn,{label:l("Position"),changed:e.launcherPosition!==ga,onReset:()=>o({launcherPosition:ga})}),children:de(UH,{options:[{label:l("Right"),id:"right"},{label:l("Left"),id:"left"}],value:e.launcherPosition,ariaLabel:l("Position"),onChange:n=>o({launcherPosition:n})})}),de(Jl,{label:l("Label"),value:e.launcherLabel,placeholder:l("Icon only"),onCommit:n=>o({launcherLabel:n}),hint:l("Shows when a visitor points at the button")}),de(JH,{label:l("Show on phones"),icon:de(KH,{}),checked:e.showOnPhones,fallback:Vl.showOnPhones,onChange:n=>o({showOnPhones:n})})]}),pn(of,{title:l("Wording"),children:[de(Jl,{label:l("Title"),value:e.title,placeholder:XH,onCommit:n=>o({title:n})}),de(Jl,{label:l("Subtitle"),value:e.subtitle,placeholder:ZH,onCommit:n=>o({subtitle:n})}),de(Jl,{label:l("Greeting message"),value:e.greeting,placeholder:QH,onCommit:n=>o({greeting:n}),multiline:!0}),de("p",{className:"es-field-hint sf-hint-keep",children:l("Leave a field blank to use the built-in wording.")})]})]})}import{jsx as ya,Fragment as Wu,jsxs as sC}from"react/jsx-runtime";import{useEffect as L5,useId as rC,useState as nC}from"react";import{SettingsField as A5}from"efficient-easel/panel";import{jsx as C5}from"react/jsx-runtime";import{forwardRef as t5,createElement as bu}from"react";var tC={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 V=(e,o,t,a)=>{let r=t5(({color:n="currentColor",size:s=24,stroke:i=2,title:c,className:f,children:m,...x},u)=>bu("svg",{ref:u,...tC[e],width:s,height:s,className:["tabler-icon",`tabler-icon-${o}`,f].filter(Boolean).join(" "),...e==="filled"?{fill:n}:{strokeWidth:i,stroke:n},...x},[c&&bu("title",{key:"svg-title"},c),...a.map(([h,g])=>bu(h,g)),...Array.isArray(m)?m:[m]]));return r.displayName=`${t}`,r};var a5=[["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"}]],yu=V("outline","brand-facebook","BrandFacebook",a5);var r5=[["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"}]],Su=V("outline","brand-instagram","BrandInstagram",r5);var n5=[["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"}]],Cu=V("outline","brand-line","BrandLine",n5);var s5=[["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"}]],wu=V("outline","brand-linkedin","BrandLinkedin",s5);var l5=[["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"}]],ku=V("outline","brand-pinterest","BrandPinterest",l5);var i5=[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]],vu=V("outline","brand-telegram","BrandTelegram",i5);var c5=[["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"}]],Tu=V("outline","brand-tiktok","BrandTiktok",c5);var d5=[["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"}]],Pu=V("outline","brand-wechat","BrandWechat",d5);var f5=[["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"}]],Eu=V("outline","brand-whatsapp","BrandWhatsapp",f5);var u5=[["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"}]],Ou=V("outline","brand-x","BrandX",u5);var p5=[["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"}]],Fu=V("outline","brand-youtube","BrandYoutube",p5);var m5=[["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"}]],Lu=V("filled","brand-facebook-filled","BrandFacebookFilled",m5);var x5=[["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"}]],Au=V("filled","brand-instagram-filled","BrandInstagramFilled",x5);var h5=[["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"}]],Ru=V("filled","brand-linkedin-filled","BrandLinkedinFilled",h5);var I5=[["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"}]],Bu=V("filled","brand-pinterest-filled","BrandPinterestFilled",I5);var g5=[["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"}]],_u=V("filled","brand-tiktok-filled","BrandTiktokFilled",g5);var b5=[["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"}]],Du=V("filled","brand-whatsapp-filled","BrandWhatsappFilled",b5);var y5=[["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"}]],Nu=V("filled","brand-x-filled","BrandXFilled",y5);var S5=[["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"}]],Mu=V("filled","brand-youtube-filled","BrandYoutubeFilled",S5);var Dse="outline",ei={fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},w5={},Hu={fillRule:"evenodd"},k5=[["path",{...ei,d:"M21 4L3 11L7 13L9 19L12 15L17 20z"}],["path",{...Hu,d:"M21 4L3 11L7 13L9 19L12 15L17 20zM15.212 8.939 10.576 13.576 11.424 14.424 16.061 9.788z"}]],v5=[["path",{...ei,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",{...w5,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("")}]],T5=[["path",{...ei,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",{...ei,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",{...Hu,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",{...Hu,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("")}]],P5=V("filled","brand-telegram-filled","BrandTelegramFilled",k5),E5=V("filled","brand-line-filled","BrandLineFilled",v5),O5=V("filled","brand-wechat-filled","BrandWechatFilled",T5),F5={instagram:{outline:Su,solid:Au},facebook:{outline:yu,solid:Lu},tiktok:{outline:Tu,solid:_u},youtube:{outline:Fu,solid:Mu},x:{outline:Ou,solid:Nu},linkedin:{outline:wu,solid:Ru},pinterest:{outline:ku,solid:Bu},whatsapp:{outline:Eu,solid:Du},telegram:{outline:vu,solid:P5},line:{outline:Cu,solid:E5},wechat:{outline:Pu,solid:O5}};function aC({platform:e,iconStyle:o,size:t}){let a=F5[e][o];return C5(a,{size:t,stroke:1.75,"aria-hidden":"true",focusable:"false"})}var R5={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 B5({platform:e}){let{rows:o,saveLink:t}=ln(),{value:a,error:r}=o[e],[n,s]=nC(a),[i,c]=nC(!1),f=rC(),m=rC();L5(()=>s(a),[a]);let x=async()=>{if(n.trim()===a){n!==a&&s(a);return}c(!0),await t(e,n),c(!1)},u=yx[e];return sC(Wu,{children:[ya(A5,{label:l(u),htmlFor:f,icon:ya(aC,{platform:e,iconStyle:"outline",size:18}),children:ya("input",{id:f,type:"text",inputMode:"url",value:n,placeholder:R5[e],onChange:h=>s(h.target.value),onBlur:()=>{x()},onKeyDown:h=>{h.key==="Enter"&&h.currentTarget.blur(),h.key==="Escape"&&(s(a),h.currentTarget.blur())},"aria-invalid":r?!0:void 0,"aria-describedby":r?m:void 0,"aria-busy":i||void 0,autoComplete:"off",spellCheck:!1})}),r&&ya("p",{id:m,className:"sf-note sf-note--error",role:"alert",children:r})]})}function lC({unavailable:e}){let{canSave:o}=ln();return!o&&e?ya(Wu,{children:e}):sC(Wu,{children:[ya("p",{className:"es-field-hint sf-hint-keep",children:l("Paste a link to each profile. A platform left empty shows nothing on the site.")}),ls.map(t=>ya(B5,{platform:t},t))]})}import{jsx as hn,jsxs as N5}from"react/jsx-runtime";import{useId as M5,useMemo as H5}from"react";import{useEasel as W5}from"efficient-easel/easel";import{SettingsField as z5,SettingsSwitch as G5}from"efficient-easel/panel";import{EyeIcon as U5}from"efficient-easel/icons";import{fieldShownInView as $5}from"efficient-easel/fields";import{usePreviewDevice as j5}from"efficient-easel/draw/client";var iC=["","","","","",""];import{Fragment as _5,createElement as D5}from"react";import{deviceField as zu}from"efficient-easel/screen/lib/document/device-fields";var qe=()=>({type:"custom",render:()=>D5(_5)});var cC={words:qe(),sourceNote:qe(),style:qe(),font:qe(),italic:qe(),fontSize:zu("each",qe()),lineHeight:qe(),letterSpacing:qe(),paragraphSpacing:qe(),padding:qe(),align:zu("each",qe()),letterCase:qe(),fixedSizeHint:zu("each",qe()),regionNote:qe(),regionStyle:qe()},dC={showTicker:qe(),items:qe()};var q5="root:default-zone";function fC({heroId:e}){let{appState:o,dispatch:t}=W5(u=>u),a=o.data.content??[],r=a.findIndex(u=>u.props.id===e),n=r>=0?a[r]:null,s=n?n.props.showTicker??!0:!0,i=H5(()=>{let u=n?.props.tickerItems;return Array.isArray(u)?u:iC.map(h=>({text:h}))},[n]),c=M5(),f=j5(),m=u=>$5(dC[u],f);if(!n)return hn("p",{className:"sf-note",children:l("This ticker\u2019s hero is no longer on the page.")});let x=u=>t({type:"replace",destinationZone:q5,destinationIndex:r,data:{...n,props:{...n.props,...u}}});return N5("div",{children:[m("showTicker")&&hn(z5,{label:l("Show ticker"),labelId:c,icon:hn(U5,{}),action:hn(G5,{checked:s,onChange:u=>x({showTicker:u}),ariaLabelledBy:c})}),m("items")&&hn(cf,{label:lf.label,icon:lf.icon,items:i,placeholder:"item",onChange:u=>x({tickerItems:u}),markup:!0})]})}import{jsx as K,Fragment as ci,jsxs as Ao}from"react/jsx-runtime";import{useContext as O4,useEffect as Xu,useRef as F4,useState as GC}from"react";import{FieldSelect as L4,InspectorField as A4,fieldShownInView as R4}from"efficient-easel/fields";import{SettingsField as B4}from"efficient-easel/panel";import{InspectorUpLevel as di}from"efficient-easel/chrome";import{StylesIcon as _4,TypeIcon as D4}from"efficient-easel/icons";import{useEasel as N4}from"efficient-easel/easel";import{TextPartPanel as M4}from"efficient-easel/copy";import{Button as H4,IconButton as W4,Tooltip as z4}from"efficient-shell/ui";import{jsx as CC,jsxs as n4}from"react/jsx-runtime";import{COPY_CELLS as In,CopyBox as s4}from"efficient-easel/copy";import{PaddingYIcon as l4}from"efficient-easel/icons";import{useSyncExternalStore as Q5}from"react";import{isNodeList as K5}from"efficient-easel/data";var Gu="template",pC="Card template",V5=["Text","ImageBlock","ButtonBlock","Flex"],oi="rowField",Y5="rowLinkField";function cle(){return{type:"slot",allow:[...V5]}}var X5=[{block:"OrderSummary",fields:[{key:"label",label:"Item"},{key:"meta",label:"Meta line"},{key:"amount",label:"Amount"}]}],uC=Symbol.for("efficient.card-templates");function ti(){let e=globalThis,o=e[uC];return o||(o=new Map(X5.map(t=>[t.block,t])),e[uC]=o),o}function dle(e){for(let o of e){if(typeof o.block!="string"||!o.block)throw new Error("A card template names no block.");ti().set(o.block,{block:o.block,fields:o.fields.map(t=>({...t}))})}}function Uu(e){return typeof e=="string"&&ti().has(e)}function fle(e,o){let t=ti().get(e)?.fields??[];return o?t.filter(a=>(a.kind??"text")===o):t}function ule(e,o){return e?ti().get(e)?.fields.find(t=>t.key===o)??null:null}function mC(e,o=oi){let t=e?.[o];return typeof t=="string"?t.trim():""}function ple(e){let o={};if(e&&typeof e=="object"&&!Array.isArray(e))for(let[t,a]of Object.entries(e))typeof a=="string"&&(o[t]=a);return o}var xC={Text:{text:oi},ImageBlock:{src:oi},ButtonBlock:{label:oi,href:Y5}};function hC(e,o,t){let a=xC[e]?.[t];return!!(a&&mC(o,a))}function Z5(e,o){return!o||!e?null:e[o]??""}function mle(e,o,t){if(!t)return o;let a=null;for(let[r,n]of Object.entries(xC[e]??{})){let s=Z5(t,mC(o,n));s!==null&&(a??={...o},a[r]=s)}return a??o}function xle(e,o){let t=e?.data?.content;if(!Array.isArray(t)||typeof o!="string")return;let a=(n,s)=>{for(let i of n){if(i?.props?.id===o)return s;for(let[c,f]of Object.entries(i?.props??{})){if(!K5(f))continue;let m=c===Gu&&Uu(i.type)?i:s,x=a(f,m);if(x!==void 0)return x}}},r=a(t,null);return r===void 0?null:r}import{decodePartId as J5}from"efficient-easel/draw";function fr(e,o){let t=vl(e);return t?.control==="textList"?o.rowKey===(t.itemKey??"text")?Tb(t,o.index):null:vf(e)?.[o.rowKey]??null}function ai(e,o,t){let a=e.node.props,{key:r,row:n}=Fo(e.propKey),s=n?Jb(a,r,n,e.kind,o):Zb(a,r,e.kind,o);return s?(t(e.zone,e.index,{...e.node,props:s}),!0):!1}var e4=["bold","italic","underline","strike","link","sup","sub"],o4=["bullet","number"];function qu(e,o){return e?[...e4,...o?o4:[]]:[]}function IC(e,o){let t=J5(e);if(!t?.propKey)return null;let{nodeId:a,propKey:r}=t,n=o.getItemById(a),s=o.getSelectorForId(a);if(!n||!s)return null;let{key:i,row:c}=Fo(r),f=o.components[n.type]?.fields?.[i],m=c?fr(f,c):f,x=Qa(m);if(!x)return null;let u=n.props??{};if(wd(u)!==null||!c&&hC(n.type,u,i)||c&&!(Array.isArray(u[i])&&c.index<u[i].length))return null;let h=c?Zr(u[i],c):u[i];return{node:n,selector:s,propKey:r,kind:x,stored:h,offPage:cl(m)}}function gC(e,o){let t=IC(e,o);if(!t)return null;let{text:a,hidden:r}=Dt(t.stored);if(!Of({offPage:t.offPage,hidden:!!r}))return null;let n=wl(t.kind);return{partId:e,value:a,rules:ta,multiline:n,offered:qu(t.kind!=="plainText",n),write:s=>{let i=IC(e,o);i&&ai({node:i.node,propKey:i.propKey,kind:i.kind,zone:i.selector.zone,index:i.selector.index},s,o.replace)}}}function bC(e,o,t){return e?.isConnected&&e.getAttribute(Lo)===t?e:o?.querySelector(`[${Lo}="${t4(t)}"]`)??null}function t4(e){return e.replace(/["\\]/g,"\\$&")}function yC(e){let o=e.activeElement;return o?o.tagName==="IFRAME"||!!o.closest(".es-canvas"):!1}var $u=null,ju=new Set;function a4(){return $u}function Ku(e){if(e!==$u){$u=e;for(let o of ju)o()}}function r4(e){return ju.add(e),()=>{ju.delete(e)}}function SC(){return Q5(r4,a4,()=>null)}var i4=["left","center","right","justify"];function Vu(e,o,t,a="desktop"){let r=on(e),n=a==="mobile",s=(n?e.sizePhone:void 0)??e.size??o.sizePx;return[n?{...In.fontSize,key:"fontSize",value:e.sizePhone,styleValue:Math.round(o.sizePx),onChange:i=>t({sizePhone:i??null})}:{...In.fontSize,key:"fontSize",value:e.size,styleValue:Math.round(o.sizePx),onChange:i=>t({size:i??null})},{...In.lineHeight,key:"lineHeight",value:r.lineHeight,styleValue:o.lineRatio,onChange:i=>t(i===void 0?{lineHeight:null,line:null}:{lineHeight:i})},{...In.letterSpacing,key:"letterSpacing",scale:s,value:r.letterSpacingEm,styleValue:o.letterEm,onChange:i=>t(i===void 0?{letterSpacing:null,letter:null}:{letterSpacing:i})},{...In.paragraphSpacing,key:"paragraphSpacing",value:e.paragraphSpacing,styleValue:0,onChange:i=>t({paragraphSpacing:i??null})},{key:"padding",name:l("Padding"),icon:CC(l4,{}),unit:"px",step:Df,shiftStep:10,min:Bf,max:_f,value:e.padding,styleValue:o.paddingPx,onChange:i=>t({padding:i??null})}]}function wC({text:e,onTextChange:o,multiline:t,markup:a=!0,styled:r=!0,style:n,base:s,setValue:i,colors:c,placeholder:f,ariaLabel:m,head:x,typedOnCanvas:u=!1}){let h=Vu(n,s,i),g=qu(a,t);return n4("div",{className:"sf-part-textbox",children:[x,CC(s4,{value:e,onChange:o,multiline:t,placeholder:f,ariaLabel:m,rules:ta,tools:g,barShows:u?"focus":"always",colors:a?c:[],align:r?{value:n.align??s.align,allow:i4,onChange:w=>i({align:w})}:void 0,letterCase:r?{value:n.case==="capitalize"?"":n.case??"",onChange:w=>i({case:w||null})}:void 0,cells:r?h:void 0})]})}import{UiIcon as UC}from"efficient-easel/draw/client";import{jsx as ri,Fragment as c4,jsxs as d4}from"react/jsx-runtime";import{Button as kC,Dialog as f4}from"efficient-shell/ui";function vC({styleName:e,onCancel:o,onConfirm:t}){return ri(f4,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:l("Update {style}?",{style:e}),footer:d4(c4,{children:[ri(kC,{variant:"secondary",onClick:o,children:l("Cancel")}),ri(kC,{variant:"primary",onClick:t,children:l("Update style")})]}),children:ri("p",{children:l("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 G4}from"efficient-easel/screen/components/ScreenDocumentContext";import{usePreviewDevice as U4}from"efficient-easel/draw/client";import{shownTier as $C}from"efficient-easel/screen/lib/document/device-fields";import{jsx as u4}from"react/jsx-runtime";import{createContext as p4,useContext as m4,useMemo as x4,useState as h4}from"react";var I4={partStyle:null,setPartStyle:()=>{}},TC=p4(I4);function Yle({children:e}){let[o,t]=h4(null),a=x4(()=>({partStyle:o,setPartStyle:t}),[o]);return u4(TC.Provider,{value:a,children:e})}function PC(){return m4(TC)}import{TEXT_FIELD_MARKER as $4}from"efficient-easel/draw";import{useSectionOps as j4}from"efficient-easel/screen/lib/document/use-section-ops";import{parseHexColor as g4}from"efficient-shell/format";var b4="#9ca3af";function y4(e){return ys.map(o=>({key:o,name:Wh[o],value:e?.[o]||b4}))}function ni(e){return y4(e).map(o=>({name:o.key,label:l(o.name),value:o.value}))}function OC(e){let o={},t=e.ownerDocument,a=t?.defaultView;if(!t||!a)return o;let r=a.getComputedStyle(e),n=t.createElement("canvas").getContext("2d");for(let s of ys){let i=nt[s].replace(/^var\((--[\w-]+)\)$/,"$1"),c=r.getPropertyValue(i).trim();if(!c)continue;let f=EC(c);!f&&n&&(n.fillStyle="#000000",n.fillStyle=c,f=EC(String(n.fillStyle))),f&&(o[s]=f)}return o}function EC(e){let o=e.trim().toLowerCase();if(o.startsWith("#"))return g4(o);let t=o.match(/^rgba?\(\s*(\d+)[\s,]+(\d+)[\s,]+(\d+)/);return t?`#${t.slice(1,4).map(a=>Math.min(255,Number(a)).toString(16).padStart(2,"0")).join("")}`:null}var gn="@name",FC="@body",LC="@value",tie={[gn]:"Name",[FC]:"Body",[LC]:"Value"},S4={TimelineTrack:{"entries.date":gn,"entries.title":gn,"entries.blurb":FC},Footprint:{"offices.city":gn},Stats:{"items.label":gn,"items.value":LC}};function C4(e){let{key:o,row:t}=Fo(e);return t?`${o}.${t.rowKey}`:null}function si(e,o){if(!e)return o;let t=C4(o);return t?S4[e]?.[t]??o:o}import{useEaselHost as q4}from"efficient-easel/screen/lib/host";function w4(e){let o=new Set([...Object.keys(ws[e]??{}),...ks[e]??[]]);for(let[t,a]of Object.entries(sd[e]??{}))a.verb==="snapshot"&&o.add(t);return[...o].sort()}var k4={CollectionCard:"product",FooterMenu:"menu",Gallery:"product",GalleryItem:"product",ProductGrid:"product",ProductHero:"product",SpecTable:"product",Events:"blog",FeaturedCover:"blog",LongRead:"blog",SubscribeBlogs:"blog"},AC={product:"Synced from the product.",blog:"Synced from the blog post.",menu:"Synced from the site menu."},RC="Open",BC={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 bn(e){let o=e?.source?.slug;return ie(o)}function yn(e){return k4[e]??null}function _C(e,o){let t=yn(e);return t&&w4(e).includes(o)?t:null}function li(e){let o=e?.menu?.id;return ie(o)}var DC="data-sf-spec-region";function iie(e,o,t){if(!e)return;let a=t[e];if(a)return{fontFamily:`var(--font-role-${e})`,fontSize:`var(--size-${a}, ${o.builtIn})`}}function ur(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 v4(e){return`@${e}`}function Yu(e,o){if(!o.startsWith("@"))return null;let t=o.slice(1);return t in e?t:null}function T4(e,o){return o&&o in e?o:null}var Sn={tag:"text-[length:var(--size-label,13px)]",name:"text-[length:min(var(--size-headingMedium,48px),var(--sf-heading-max,9999px))]",namePhone:"max-[800px]:text-[length:min(var(--size-headingMedium,36px),var(--sf-heading-max,9999px))]",body:"text-[length:var(--size-body,14px)]",price:"text-[length:var(--size-label,15px)]",link:"text-[length:var(--size-label,14px)]"},P4={tag:{label:"Tag",follows:"Labels",builtIn:ur(Sn.tag),writable:!0},name:{label:"Name",follows:"Heading 2",builtIn:ur(Sn.name),writable:!0},body:{label:"Body",follows:"Body",builtIn:ur(Sn.body),writable:!0},price:{label:"Price",follows:"Labels",builtIn:ur(Sn.price),writable:!0},link:{label:"Link",follows:"Labels",builtIn:ur(Sn.link),writable:!0}},NC=P4;var E4={number:{label:"Number",follows:"Labels",builtIn:"14px",writable:!0},question:{label:"Question",follows:"Body",builtIn:"18px",writable:!0},answer:{label:"Answer",follows:"Body",builtIn:"15px",writable:!0}},MC=E4;var xie=DC,HC={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 WC={SpecTable:HC,FAQ:MC,Collections:NC};function zC(e){return e&&Object.hasOwn(WC,e)?WC[e]:null}function Qu(e){return e?l(e):null}function jC(e){return e.kind==="role"?kc[e.role]:e.kind==="custom"?"Custom":null}function K4(e){let o=ot(e.role);return o?{kind:"role",role:o}:null}function V4(e,o){if(!e)return{kind:"unread"};let{faceRole:t,base:a}=e;if(o[t]===a.fontKey)return{kind:"role",role:t};let r=Object.keys(o).filter(n=>o[n]===a.fontKey);return r.length===1?{kind:"role",role:r[0]}:{kind:"custom"}}function Zu(e,o,t,a){return K4(Rl(e,o))??V4(t,a)}function Y4(e,o){if(!e.length)return null;let t=o(e[0]);return e.every(a=>o(a)===t)?t:null}var ii="";function X4({face:e,base:o,onPick:t}){let a=e.kind==="role"?e.role:ii,r=[{label:l("No style"),value:ii},...ux.map(n=>({label:l(kc[n]),value:n}))];return K(L4,{ariaLabel:l("Style"),value:a,options:r,inline:!0,onChange:n=>t(n===ii?null:n),renderOption:n=>n.value===ii?Ao(ci,{children:[K("span",{className:"es-fsel-label sf-part-style-keep",children:n.label}),K("span",{className:"sf-part-style-aside","aria-hidden":"true",children:l("Section\u2019s own")})]}):K("span",{className:"es-fsel-label",style:{fontFamily:`var(--font-role-${n.value})`},children:n.label}),renderValue:()=>K("span",{style:{fontFamily:o?.fontKey?`var(${Ra(o.fontKey)?.cssVar})`:void 0,fontWeight:o?.weight},children:Qu(jC(e))}),valueText:n=>Qu(jC(e))??n?.label??""})}function Z4({sectionName:e,onBack:o,textEditor:t,styleRow:a,children:r}){return Ao("div",{className:"sf-part-panel",children:[K(di,{inline:!0,name:l(e),onSelect:o}),t,a,r]})}function fi({source:e,slug:o,menuId:t}){let a=q4(),r=BC[e],n=!r.needsSlug||!!o;return K("div",{className:"sf-note sf-note--source",children:Ao("p",{className:"es-field-hint sf-hint-keep",children:[l(AC[e]),n?Ao(ci,{children:[" ",K(H4,{type:"button",variant:"link",size:"sm",onClick:()=>{r.type==="storefront-editor:open-menus"?a.send(r.type,{menuId:t??null}):o&&a.send(r.type,{slug:o})},children:l(RC)})]}):null]})})}var qC=4,Q4=120;function J4({region:e,sizePx:o,face:t,base:a,onFollowStyle:r,source:n,slug:s,onBack:i,shows:c}){let f=e.follows;return Ao("div",{className:"sf-note",children:[c("regionNote")&&Ao(ci,{children:[K("p",{children:K("strong",{children:l(e.label)})}),K("p",{children:o?l("Its size follows Styles \u25B8 {follows} \u2014 {px}px right now.",{follows:l(f),px:Math.round(o)}):l("Its size follows Styles \u25B8 {follows}.",{follows:l(f)})})]}),r?c("regionStyle")?K(ci,{children:K(B4,{label:l("Style"),icon:K(_4,{}),hint:l("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:l(e.label).toLowerCase()}),children:K(X4,{face:t,base:a,onPick:r})})}):null:c("regionNote")&&K("p",{className:"es-field-hint sf-hint-keep",children:l("Only the size follows a site style. This section sets its own font, weight and letter case.")}),n&&c("sourceNote")?K(fi,{source:n,slug:s}):null,K(di,{inline:!0,name:l("Page"),onSelect:i})]})}function e3({onBack:e}){return Ao("div",{className:"sf-note",children:[K("p",{children:K("strong",{children:l("This part is no longer here.")})}),K("p",{children:l("The section it belonged to has been changed or removed.")}),K(di,{inline:!0,name:l("Page"),onSelect:e})]})}function o3({onBack:e,partId:o,why:t}){return Ao("div",{className:"sf-note",children:[K("p",{children:K("strong",{children:l("This part's settings did not open.")})}),K("p",{children:l("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.")}),K("p",{className:"sf-note-detail",children:Ao("code",{children:[o," \u2014 ",t]})}),K(di,{inline:!0,name:l("Page"),onSelect:e})]})}function KC({nodeId:e,propKey:o,onBack:t,onEditStyle:a}){let{getItemById:r,getSelectorForId:n,config:s}=N4(z=>z),i=j4(),c=SC(),{partStyle:f}=PC(),{fonts:m,textStyles:x}=ee(),u=O4(G4),h=!u?.capabilities?.hasSiteTheme,{persist:g}=Ma({themeFromDocument:h,tokenRef:u?.tokenRef,siteId:u?.siteId??null}),w=Ml({themeFromDocument:h,persist:g}),[T,E]=GC(!1),C=U4(),I=z=>R4(cC[z],C),S=F4(null),v=r(e),y=n(e),O=v?s.components[v.type]:void 0,{key:A,row:N}=Fo(o),W=O?.fields?.[A],D=N?fr(W,N):W,P=Pl(e,o),R=v?.props??{},F=Qa(D),M=cl(D),U=ny(D),Y=v?yn(v.type):null,me=v?_C(v.type,A):null,Be=N?Zr(R[A],N):R[A],ze=!!N&&!(Array.isArray(R[A])&&N.index<R[A].length);Xu(()=>{yC(document)||S.current?.querySelector(".es-copy [contenteditable='true'], .es-copy textarea, .sf-copybox textarea, .sf-copybox input")?.focus()},[P]);let[Ve,Ye]=GC(0);Xu(()=>Ye(0),[P]);let fe=!!v&&!ze&&(!y||!D);Xu(()=>{if(!fe||Ve>=qC)return;let z=setTimeout(()=>Ye(_e=>_e+1),Q4);return()=>clearTimeout(z)},[fe,Ve]);let De=fe&&Ve<qC;if(!v||ze)return K(e3,{onBack:t});let Fe=zC(v.type),so=Fe?Yu(Fe,o):null;if(Fe&&so){let z=f?.partId===P?f:null,_e=Fe[so],Ho=_e.writable===!0&&!!y,wt=mc=>{y&&i.replaceComponent(y.zone,y.index,{...v,props:ar(R,o,"role",mc)})};return K(J4,{region:_e,sizePx:z?.base.sizePx??null,face:Zu(R,o,z,m),base:z?.base??null,onFollowStyle:Ho?wt:void 0,source:Y,slug:bn(R),onBack:t,shows:I})}if(!y||!D)return De?K("div",{className:"sf-note","aria-busy":"true"}):K(o3,{onBack:t,partId:P,why:y?"no field":"no selector"});let oo=z=>{i.replaceComponent(y.zone,y.index,{...v,props:z})},ho=z=>{if(Dt(z).hidden!==Dt(Be).hidden||!F){let _e=N?Tf(R,A,N,z):{...R,[A]:z};_e&&oo(_e);return}ai({node:v,propKey:o,kind:F,zone:y.zone,index:y.index},Dt(z).text,i.replaceComponent)},St=Be,Io=f?.partId===P?f:null,go=Io?.styleOwner,wo=go?r(go.owner):null,Jo=go&&wo?n(go.owner):null,Ct=!!(go&&wo&&Jo),lo=Ct?wo.props??{}:R,B=Ct?z=>i.replaceComponent(Jo.zone,Jo.index,{...wo,props:z}):oo,ae=Ct?go.kind:si(v?.type,o),re=Rl(lo,ae),pe=[{partKey:ae,face:Zu(lo,ae,Io,m),sizeGroup:Io?.sizeGroup??null,base:Io?.base??a3,style:re}],Mo=Y4(pe,z=>z.sizeGroup),qt=ni(Io?.inks),ko=(z,_e)=>{let Ho=lo;for(let wt of pe)Ho=ar(Ho,wt.partKey,z,_e);B(Ho)},io=z=>z?ko("textStyle",z):et({textStyle:null,role:null}),et=z=>{let _e=lo;for(let Ho of pe)for(let[wt,mc]of Object.entries(z))_e=ar(_e,Ho.partKey,wt,mc??null);B(_e)},Er=F==="text"||F==="textarea",{text:Um,hidden:Fa}=Dt(Be),rs=D?.[$4]?.label??o,$m=Fa?l("Show {label} on the slide",{label:l(rs)}):l("Hide {label} on the slide",{label:l(rs)}),jm=Ao("div",{className:"sf-field-head",children:[K(D4,{}),K("span",{className:"sf-field-label sf-field-label--inline",children:l(rs)}),Er&&K(z4,{content:$m,children:K(W4,{"aria-pressed":Fa,"aria-label":$m,onClick:()=>ho({text:Um,hidden:!Fa}),children:Fa?K(UC,{name:"eye-off",size:14}):K(UC,{name:"eye",size:14})})})]}),qm=!M&&U,aE=!!F&&(mb(D)||M||Fa||!U),Km=Zu(lo,ae,Io,m),rE=Km.kind==="role"?Km.role:null,pc=Iy(re)??_y(rE),Vm=Mt(w.saved,w.old),nE=Object.entries(re).filter(([z,_e])=>z!=="role"&&z!=="textStyle"&&_e!==void 0).length,sE=()=>{let z=lo;for(let _e of pe){let{role:Ho,textStyle:wt}=_e.style;z=Cy(z,_e.partKey),Ho&&(z=ar(z,_e.partKey,"role",Ho)),wt&&(z=ar(z,_e.partKey,"textStyle",wt))}B(z)},Kt=pc,lE=Dy(pe[0].style),iE=Kt?Vm.find(z=>z.id===Kt)?.name??Kt:"",cE=()=>{E(!1),Kt&&(w.write(Ny({saved:w.saved,old:w.old,styleId:Kt,values:Kf(pe[0].style)}),!0),sE())};return Ao(Z4,{sectionName:O?.label??v.type,onBack:t,textEditor:I("words")?K("div",{ref:S,className:"sf-part-text",children:aE?K(wC,{text:Um,onTextChange:z=>ho(Er?{text:z,hidden:Fa}:z),multiline:wl(F),markup:F!=="plainText",styled:!1,style:pe[0].style,base:pe[0].base,setValue:et,colors:qt,placeholder:Qu(Xb(D))??void 0,ariaLabel:l(rs),head:jm,typedOnCanvas:c===P}):F?Er?jm:null:K(A4,{field:D,name:o,value:St,onChange:ho,id:`sf-part-${e}-${o}`})}):void 0,children:[me&&I("sourceNote")&&K(fi,{source:me,slug:bn(R),menuId:li(R)}),qm&&K(M4,{style:I("style")?{value:pc??"",options:[{value:"",label:l("No style"),description:l("Section\u2019s own")},...Vm.map(z=>({value:z.id,label:z.name,description:z.values.font?Ra(z.values.font)?.label:void 0}))],onChange:z=>io(z||null),changed:nE>0,onEditStyles:a,onUpdateStyle:Kt&&lE?()=>E(!0):void 0}:void 0,font:I("font")?{value:re.font??"",styleValue:Ra(pe[0].base.fontKey)?.label,options:vo.map(z=>({label:z.label,value:z.key})),onChange:z=>ko("font",z||null)}:void 0,italic:I("italic")?{value:re.italic,styleValue:t3(x,pc),onChange:z=>ko("italic",z??null)}:void 0,cells:Vu(pe[0].style,pe[0].base,et,$C(C)).filter(z=>I(z.key)),align:I("align")?$C(C)==="mobile"?{value:re.alignPhone??"",styleValue:re.align??pe[0].base.align,onChange:z=>ko("alignPhone",z||null)}:{value:re.align??"",styleValue:pe[0].base.align,onChange:z=>ko("align",z||null)}:void 0,letterCase:I("letterCase")?{value:re.case??"",styleValue:pe[0].base.case,onChange:z=>ko("case",z||null)}:void 0}),T&&Kt&&K(vC,{styleName:iE,onCancel:()=>E(!1),onConfirm:cE}),qm&&Mo===null&&I("fixedSizeHint")&&K("p",{className:"es-field-hint sf-hint-keep",children:l("Fixed size \u2014 the site\u2019s Text setting doesn\u2019t resize this.")})]})}function t3(e,o){return!o||!Array.isArray(e)?!1:e.find(t=>t?.id===o)?.values?.italic===!0}var a3={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0};import{jsx as Ro,jsxs as Ju,Fragment as r3}from"react/jsx-runtime";import{useCallback as n3,useRef as s3,useState as Cn}from"react";import{InspectorIconButton as l3}from"efficient-easel/chrome";import{PopupMenu as i3,PopupMenuItem as c3,PopupMenuLabel as ui}from"efficient-shell/ui";import{CopyToPageIcon as d3}from"efficient-easel/icons";import{useEaselSession as f3}from"efficient-easel/screen/lib/session-context";import{cloneNodeWithFreshIds as u3}from"efficient-easel/screen/lib/document/section-doc";import{FOOTER_TYPE as p3}from"efficient-easel/draw";function VC({node:e,currentSlug:o,siteId:t,tokenRef:a,runAuthed:r,onNotify:n}){let[s,i]=Cn(!1),[c,f]=Cn(null),m=f3(),[x,u]=Cn(!1),[h,g]=Cn(null),w=s3(null),[T,E]=Cn(null),C=n3(async()=>{if(m.usesBridgedToken&&!a.current){u(!0);return}try{f(await He(m).pages.list(t?{siteId:t}:void 0))}catch{u(!0)}},[a,t,m]),I=()=>{if(s){i(!1);return}let y=w.current?.getBoundingClientRect();y&&E({top:y.bottom+6,right:Math.max(8,window.innerWidth-y.right)}),f(null),u(!1),C(),i(!0)},S=(c??[]).filter(y=>y.slug!==o),v=async y=>{if(h)return;g(y.slug);let O=u3(e),A=m.documentHooks?.storedNode?.(O)??O,N=He(m).pages,W=await r(async()=>{let D=await N.load({id:y.id});if(!D)throw new Error(`Page "${y.slug}" no longer exists.`);let P=D.layout??{},R=Array.isArray(P.content)?[...P.content]:[],F=R.findIndex(M=>M?.type===p3);R.splice(F===-1?R.length:F,0,A),await N.save(y.id,{layout:{root:{},zones:{},...P,content:R}},{version:D.version,clientId:""})});g(null),i(!1),n?.(W?l("Duplicated to \u201C{name}\u201D",{name:y.label}):l("Couldn\u2019t duplicate the section \u2014 please retry"),W?"success":"error")};return Ju(r3,{children:[Ro("span",{"data-menu-toggle":!0,style:{display:"contents"},children:Ro(l3,{buttonRef:w,label:l("Duplicate to another page"),hasPopup:"menu",expanded:s,onClick:I,children:Ro(d3,{size:15})})}),s&&T&&Ro(i3,{portal:!0,style:{top:T.top,right:T.right},onClose:()=>i(!1),children:Ju("div",{role:"menu","aria-label":l("Duplicate to page"),children:[Ro(ui,{children:l("Duplicate to page")}),x?Ro(ui,{children:l("Couldn\u2019t load pages")}):c===null?Ro(ui,{children:l("Loading\u2026")}):S.length===0?Ro(ui,{children:l("No other pages")}):S.map(y=>Ju(c3,{role:"menuitem",disabled:h!==null,onClick:()=>{v(y)},children:[Ro("span",{className:"min-w-0 flex-1 truncate",children:y.label}),h===y.slug?Ro("span",{className:"shrink-0 text-xs",children:l("Copying\u2026")}):y.draft&&Ro("span",{className:"shrink-0 text-xs",children:l("draft")})]},y.id))]})})]})}import{useScreenDocument as V6}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSectionOps as Y6}from"efficient-easel/screen/lib/document/use-section-ops";import{SELECTION_MODE as Rfe,isSelectionMode as gp}from"efficient-easel/screen/lib/screen-parts";import{usePreviewParts as X6}from"efficient-easel/draw/client";import{jsx as wn,jsxs as m3}from"react/jsx-runtime";import{SettingsDrill as x3}from"efficient-easel/panel";import{UiIcon as h3}from"efficient-easel/draw/client";var I3="Not shown on the page";function g3({part:e,onOpen:o}){return wn(x3,{name:l(e.label),preview:e.offPage?l(I3):e.preview||l("Empty"),offPage:e.offPage,status:e.hidden?wn("span",{className:"sf-entry-eye",role:"img","aria-label":l("Hidden on the page"),children:wn(h3,{name:"eye-off",size:14})}):void 0,onOpen:()=>o(e.key)})}function ep(e){return e.filter(o=>!o.identifier)}function YC({parts:e,onOpen:o,heading:t=!0}){let a=ep(e);return a.length?m3("div",{className:"sf-entries",children:[t?wn("h3",{className:"sf-entries-head",children:l("Text")}):null,a.map(r=>wn(g3,{part:r,onOpen:o},r.key))]}):null}import{HEADER_TYPE as Z6,ROOT_ZONE as qw}from"efficient-easel/draw";import{HEADER_TYPE as ao,FOOTER_TYPE as ye,newNodeId as b3}from"efficient-easel/draw";function pi(){return{type:ao,props:{id:b3(ao)}}}var XC=[{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"}],y3=XC.filter(e=>e.type!=="FooterLogo"&&e.type!=="FooterGroup"),S3="FooterGroup",ZC="blocks";function QC(e){return e===ye?XC:e===S3?y3:null}function mi(){let e=(o,t)=>({type:o,props:{id:`${o}-${crypto.randomUUID()}`,...t}});return[e("FooterLogo",{widthPct:100,align:"left",tagline:""}),e("FooterEmailSignup",{...WI}),e("FooterPayment",{...zI})]}var Se="SiteHeader",xe="SiteFooter",op="sections",Tce=[Se,xe],pr=e=>e===Se||e===xe,JC=e=>`${e}:${op}`;function ew(e,o,t=[]){return{type:e,props:{id:o,[op]:t}}}var C3=new Set(["Footer",Se,xe]);function mr(e){let o=new Set,t=!1,a=e.filter(r=>{let n=r?.type??"";return n==="Header"?(t=!0,!1):C3.has(n)?o.has(n)?(t=!0,!1):(o.add(n),!0):!0});return t?a:e}function xi(e,o){return e.some(t=>t?.type===o.type)?e:o.type===Se?[o,...e]:[...e,o]}var ow={[Se]:{max:3,takes:["Flex","Ticker"]},[xe]:{max:6,takes:["Flex","Prose","Logos","Divider"]}};function tw(e,o,t){if(!pr(e))return!0;let a=ow[e];return t<a.max&&a.takes.includes(o)}function aw(e,o){let t=o,a=t?.props?.id;if(a==null)return null;let r=e?.content;if(!Array.isArray(r))return null;for(let n of r){if(!pr(n?.type))continue;let s=n.props?.[op];if(!Array.isArray(s)||!s.some(c=>c?.props?.id===a))continue;let i=ow[n.type];return i.takes.includes(t?.type??"")?s.length>=i.max?{group:n.type,why:"full"}:null:{group:n.type,why:"type"}}return null}function tp(e){switch(e?.type){case Se:case xe:return l("On every page");case ao:case ye:return l("On every page \xB7 old style");default:return null}}var rw=()=>null,nw=()=>l("Changed on every page");function hi(e,o){let t=ph(e,o);if(t)return t;let a=aw(e,o);if(!a)return null;let r=a.group===Se;return a.why==="type"?r?l("The header cannot take another one of these"):l("The footer cannot take another one of these"):r?l("The header holds at most 3 sections"):l("The footer holds at most 6 sections")}import{jsx as gi,Fragment as L3,jsxs as A3}from"react/jsx-runtime";import{useState as R3}from"react";import{createNode as B3,newId as _3}from"efficient-easel/data";import{useEasel as D3}from"efficient-easel/easel";import{Banner as N3,Button as ap}from"efficient-shell/ui";import{useScreenDocument as M3}from"efficient-easel/screen/components/ScreenDocumentContext";var Ii="Flex",w3={FooterMenu:"MenuBlock",FooterEmailSignup:"EmailFormBlock",FooterSocial:"SocialLogosBlock",FooterPayment:"PaymentLogosBlock"},k3=e=>{let{id:o,...t}=e;return t},sw=e=>typeof e=="string"?e:"",lw={sm:12,md:13,lg:15},v3="md",iw=1.5,T3={size:13,lineHeight:iw,width:280},P3=14,E3=40,O3=e=>e==="center"||e==="right"?e:"left";function F3(e){let o={},t=[["padTop","sectionPaddingTop"],["padRight","sectionPaddingRight"],["padBottom","sectionPaddingBottom"],["padLeft","sectionPaddingLeft"]];for(let[a,r]of t){let n=$(e[a]);n&&(o[r]=n)}return o}function cw(e,o){let t=e.props??{},a=w3[e.type];if(a)return[o(a,k3(t))];switch(e.type){case"FooterLogo":{let r=O3(t.align),n=o("LogoBlock",{...t.reverse?{reverse:t.reverse}:{},...typeof t.customColor=="string"&&t.customColor?{customColor:t.customColor}:{},heightPx:Math.round(Cx*(($(t.widthPct)??100)/100)),href:"/",align:r,...F3(t)}),s=sw(t.tagline).trim();return s?[n,o("Text",{text:s,tone:"dim",align:r,_partStyles:{text:{...T3}}})]:[n]}case"FooterText":{let r=typeof t.size=="string"&&t.size in lw?t.size:v3;return[o("Text",{text:sw(t.text),tone:typeof t.tone=="string"?t.tone:"default",_partStyles:{text:{size:lw[r],lineHeight:iw}}})]}case"FooterDivider":{let r=$(t.thickness),n=$(t.lengthPct);return[o("Divider",{...r!==void 0?{thickness:r}:{},...n!==void 0?{lengthPct:n}:{},...t.hideOnMobile===!0?{hideOnMobile:!0}:{}})]}case"FooterGroup":{let r=Array.isArray(t.blocks)?t.blocks:[];return[o(Ii,{direction:t.direction==="horizontal"?"row":"column",gap:Ka("FooterGroup",t.gap),align:t.align==="center"||t.align==="end"?t.align:"start",...$r,content:r.flatMap(n=>cw(n,o))})]}default:return[]}}function kn(e,o,t){let a=e&&Array.isArray(e.props?.blocks)?e.props.blocks:[],r=f=>o(Ii,{direction:"row",wrap:!0,share:"equal",gap:E3,content:f}),n=[],s=[];for(let f of a){let m=cw(f,o);if(f.type==="FooterDivider"){s.length&&n.push(r(s)),s=[],n.push(...m);continue}m.length<=1?s.push(...m):s.push(o(Ii,{direction:"column",gap:P3,align:"stretch",...$r,content:m}))}(s.length||!n.length)&&n.push(r(s));let i=o(Ii,{direction:"column",content:[o("LegalLineBlock")]}),c=ew(xe,t,[...n,i]);return{...c,props:{...c.props,...e?.props?.width==="full"?{fullWidth:!0}:{}}}}function dw(){let{appState:e,dispatch:o,config:t}=D3(m=>m),{readOnly:a}=M3(),[r,n]=R3(!1),s=e.data.content;if(a||s.some(m=>m.type===xe))return null;let i=s.find(m=>m.type===ye)??null,c=(m,x)=>B3(t,m,x),f=()=>{let m=kn(i,c,_3(xe));o({type:"setData",data:x=>({...x,content:[...xi(x.content,m)]}),recordHistory:!0}),n(!1)};return gi(N3,{tone:"info",title:l("This footer uses the old layout"),action:r?A3(L3,{children:[gi(ap,{variant:"primary",size:"sm",onClick:f,children:l("Switch now")}),gi(ap,{variant:"secondary",size:"sm",onClick:()=>n(!1),children:l("Cancel")})]}):gi(ap,{variant:"secondary",size:"sm",onClick:()=>n(!0),children:l("Switch to Box footer")}),children:l("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 hp}from"react/jsx-runtime";import{useLayoutEffect as O6,useMemo as pp,useRef as F6,useState as mp}from"react";import{useEasel as L6,useSelectedFields as A6}from"efficient-easel/easel";import{Inspector as R6,planFields as Ww}from"efficient-easel/fields";import{group as I6}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as g6,deviceMetaOf as Ow}from"efficient-easel/screen/lib/document/device-fields";import{jsx as q,jsxs as dt}from"react/jsx-runtime";import{phoneKey as ft}from"efficient-easel/draw";import{SettingsDefaultReset as j3,SettingsField as Cw}from"efficient-easel/panel";import{AnimationIcon as ww,ClockIcon as q3,DirectionDownIcon as K3,DirectionIcon as hw,DirectionLeftIcon as V3,DirectionRightIcon as Y3,DirectionUpIcon as X3,DurationIcon as Z3}from"efficient-easel/icons";import{deviceField as Wt}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as Q3,noControlField as J3}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{describedAs as kw,group as e6}from"efficient-easel/screen/lib/document/box-fields";import{ENTRANCE_FROM as vw,ENTRANCE_FROM_DEFAULT as rp,ENTRANCE_KINDS as Si,ENTRANCE_KINDS_WITH_FROM as Iw,MOTION_TIMING as o6,entranceAttrs as t6,playEntrance as a6,readEntrance as r6}from"efficient-shell/format";import{IconPicker as n6}from"efficient-shell/ui";import{jsx as fw}from"react/jsx-runtime";import{ClockIcon as H3,DurationIcon as W3}from"efficient-easel/icons";import{MOTION_TIMING as uw}from"efficient-shell/format";function pw(e){let{min:o,max:t,step:a,default:r}=uw[e].duration;return $o("Duration",fw(W3,{}),o,t,a,r,"s")}function mw(e){let{min:o,max:t,step:a,default:r}=uw[e].delay;return $o("Delay",fw(H3,{}),o,t,a,r,"s")}import{phoneKey as z3}from"efficient-easel/draw";import{readEntrance as G3}from"efficient-shell/format";var he={kind:"entrance",from:"entranceFrom",duration:"entranceDuration",delay:"entranceDelay"},yi="sectionAnimation",xw=e=>e!=null&&e!=="";function U3(e,o){let t=e[he[o]];return o==="kind"&&!xw(t)?e[yi]:t}function bi(e,o,t){if(t==="phone"){let a=e[z3(he[o])];if(xw(a))return a}return U3(e,o)}function vn(e,o){return G3(bi(e,"kind",o),bi(e,"from",o),bi(e,"duration",o),bi(e,"delay",o))}function rde(e){let o=vn(e,"desktop"),t=vn(e,"phone");return o.kind==="none"&&t.kind==="none"?null:{desktop:o,phone:t}}var $3={...Object.fromEntries([...II].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)"},nde=new Set(Object.keys($3));var xr={none:"None",fade:"Fade",rise:"Rise",scale:"Scale",glide:"Glide",bounce:"Bounce",flip:"Flip",reveal:"Reveal",spin:"Spin"},s6={top:"Top",bottom:"Bottom",left:"Left",right:"Right"},l6={top:()=>q(K3,{}),bottom:()=>q(X3,{}),left:()=>q(Y3,{}),right:()=>q(V3,{})},lp="Entrance",gw=Si.filter(e=>e!=="none"),np=e=>({any:[{field:he.kind,in:e},{all:[{field:he.kind,set:!1},{field:yi,in:e}]}]}),bw=e=>({any:[{field:ft(he.kind),in:e},{all:[{field:ft(he.kind),set:!1},np(e)]}]}),i6=[[[he.from],np(Iw)],[[ft(he.from)],bw(Iw)],[[he.duration,he.delay],np(gw)],[[ft(he.duration),ft(he.delay)],bw(gw)]],ct=({children:e})=>q("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}),Bo=({x:e=12,y:o=12,o:t=1})=>q("rect",{x:e,y:o,width:"16",height:"16",rx:"2",opacity:t}),c6={none:q(ct,{children:q(Bo,{})}),fade:dt(ct,{children:[q(Bo,{x:6,o:.3}),q(Bo,{x:18})]}),rise:dt(ct,{children:[q(Bo,{y:20,o:.3}),q(Bo,{y:8}),q("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),scale:dt(ct,{children:[q("rect",{x:"16",y:"16",width:"8",height:"8",rx:"1",opacity:".35"}),q(Bo,{}),q("path",{d:"M6 6l4 4M34 34l-4-4"})]}),glide:dt(ct,{children:[q(Bo,{x:2,o:.3}),q(Bo,{x:20}),q("path",{d:"M4 33h12m-2-2 2 2-2 2"})]}),bounce:dt(ct,{children:[q(Bo,{y:6}),q("path",{d:"M8 34c3-6 5-6 8 0s5 6 8 0 5-6 8 0"})]}),flip:dt(ct,{children:[q("path",{d:"M12 12l16 4v8l-16 4z",opacity:".35"}),q(Bo,{}),q("path",{d:"M20 4v32",strokeDasharray:"2 2"})]}),reveal:dt(ct,{children:[q("rect",{x:"12",y:"12",width:"16",height:"16",rx:"2",strokeDasharray:"2 2",opacity:".5"}),q("path",{d:"M12 22h16v4a2 2 0 0 1-2 2H14a2 2 0 0 1-2-2z",fill:"currentColor",opacity:".35"}),q("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),spin:dt(ct,{children:[q(Bo,{}),q("path",{d:"M33 14a14 14 0 0 1 0 12m0 0-3-1m3 1 1-3"})]})};function d6({kind:e}){let{attrs:o}=t6(r6(e,rp));return dt("span",{className:"sf-entrance-pic",children:[q("span",{className:"sf-entrance-stage",children:q("i",{...o,children:c6[e]})}),q("span",{className:"sf-entrance-cap",children:l(xr[e])})]})}var f6=(e,o)=>{let t=o.querySelector(".sf-entrance-stage > i");t&&a6(t)},u6={width:"3.5rem",height:"4.25rem"};function Tw({value:e,onChange:o}){return q(n6,{label:l(lp),value:e,emptyValue:"none",columns:3,cell:u6,onChange:o,onPreview:f6,tooltips:!1,options:Si.map(t=>({value:t,label:l(xr[t]),icon:q(d6,{kind:t})}))})}var sp="Effect";function p6({value:e,onChange:o}){let t=qo(),a=vn({...t,[he.kind]:e},"desktop").kind;return q(Cw,{label:l(sp),icon:q(ww,{}),value:l(xr[a]),children:q(Tw,{value:a,onChange:o})})}function m6({value:e,onChange:o}){let t=qo(),a=typeof e=="string"&&Si.includes(e),r=vn(t,"desktop").kind;return q(Cw,{label:l(sp),icon:q(ww,{}),value:l(xr[a?e:r]),changed:a,action:q(j3,{words:X()?.panel,label:l(sp),changed:a,detail:l("{value} on desktop",{value:l(xr[r])}),onReset:()=>o(void 0)}),children:q(Tw,{value:a?e:r,onChange:o})})}var Pw={type:"select",label:lp,options:Si.map(e=>({value:e,label:xr[e]}))},x6=()=>kw({type:"custom",render:({value:e,onChange:o})=>q(p6,{value:e,onChange:o})},Pw),h6=()=>kw({type:"custom",render:({value:e,onChange:o})=>q(m6,{value:e,onChange:o})},Pw),yw=vw.map(e=>({label:s6[e],value:e,picture:l6[e]()})),Sw=e=>vw.includes(e)?e:void 0;function Ci(){let{duration:e,delay:o}=o6.entrance,t={_gEntrance:e6(lp),[he.kind]:Wt("desktop",x6()),[yi]:J3({type:"custom",render:()=>q(Q3,{})},"always"),[ft(he.kind)]:Wt("mobile",h6()),[he.from]:Wt("desktop",Ya("From",q(hw,{}),yw,rp)),[ft(he.from)]:Wt("mobile",nf({label:"From",icon:q(hw,{}),options:yw,desktopKey:he.from,resolve:(a,r)=>Sw(a)??Sw(r)??rp})),[he.duration]:Wt("desktop",pw("entrance")),[ft(he.duration)]:Wt("mobile",Yr({label:"Duration",desktopKey:he.duration,icon:q(Z3,{}),min:e.min,max:e.max,step:e.step,fallback:e.default,unit:"s"})),[he.delay]:Wt("desktop",mw("entrance")),[ft(he.delay)]:Wt("mobile",Yr({label:"Delay",desktopKey:he.delay,icon:q(q3,{}),min:o.min,max:o.max,step:o.step,fallback:o.default,unit:"s"}))};return mu(t,i6)}import{DESIGN_GROUPS as cp,SETTINGS_BUCKETS as b6}from"efficient-easel/panel";import{BUCKET_KEY as uo,DESIGN_GROUP_KEY as Tn}from"efficient-easel/screen/lib/document/field-buckets";var Pn=b6;var y6="Editor only \u2014 not shown live",dp={"Archive link":"Content",Article:"Content",Blocks:"Content","Blog posts":"Content","Browser mock":"Content",Button:"Content","Call to action":"Content","Car prompt":"Content","Card link":"Content",Cards:"Content","Claims bars":"Content","Contact info":"Content",Content:"Content","Content source":"Content",Contents:"Content",Filters:"Content","Show on a card":"Content",Footnote:"Content",Form:"Content",Founders:"Content","Gallery A":"Content","Gallery B":"Content","Gallery link":"Content",Header:"Content","Header link":"Content","Image caption":"Content","In this issue":"Content",Items:"Content","Kanban columns":"Content",Lead:"Content","Left panel":"Content",Link:"Content",Links:"Content",List:"Content","Message form":"Content",Metadata:"Content",Milestones:"Content","Mockup card":"Content","Newsletter panel":"Content",Offices:"Content",Options:"Content","Others gallery":"Content","Overlay button":"Content",Product:"Content","Product page":"Content",Products:"Content","Pull quote":"Content",Questions:"Content","Recent issues":"Content","Recent posts":"Content",Reviews:"Content","Right panel \xB7 actions":"Content","Right panel \xB7 choices":"Content","Right panel \xB7 form":"Content","Routing groups":"Content",Rows:"Content",Search:"Content",Section:"Content","Section header":"Content",Sections:"Content","Signup form":"Content","Source product":"Content","Stat & note":"Content",Stats:"Content","Submit button":"Content","Success state":"Content",Wheel:"Content",Terminal:"Content",Text:"Content","Text column":"Content","Timeline entries":"Content","Top row":"Content",Total:"Content","Trailing note":"Content","\u201COther\u201D reason":"Content","Background images":"Design",Gallery:"Content",Image:"Content","Image column":"Content",Images:"Content",Logo:"Content",Map:"Content",Media:"Content","Background image":"Design",Color:"Design","Image tint":"Design",Style:"Design",Shape:"Design",Shadow:"Design",Texture:"Design","Text style":"Design",Entrance:"Animation",Anchor:"Anchor",Arrangement:"Layout","Auto-slide":"Layout",Bar:"Layout","Cell width":"Size",Behavior:"Layout",Schedule:"Layout",Controls:"Layout",Diagram:"Layout",[y6]:"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"},Fw={"AlloyWheelsListing._gCards":"Design","ProductGrid._gCards":"Design"},Lw={"Text._gSpacing":"Size","Heading._gSpacing":"Size"};function ip(e,o,t){let a=`${e}.${o}`;return Lw[a]??Fw[a]??dp[t]}function Aw(e){return e==="Animation"?[uo.Animation]:[uo.Design,Tn[e]]}function wi(...e){let o=[];for(let t of e)for(let a of Object.values(t)){let r=Ow(a),n=it(r?r.inner:a),s=n?dp[n.label]:void 0;if(s)for(let i of Aw(s))o.includes(i)||o.push(i)}return o}var Fde=[...wi(tl(),ml("full"),xl(),hl(),sf()),...Object.keys(tl()),...Object.keys(ml("full")),...Object.keys(xl()),...Object.keys(hl()),...Object.keys(sf())],Lde=[...wi(fl()),...Object.keys(fl())],Ade=[...wi(pl()),...Object.keys(pl())],Rde=[...wi(Ci()),...Object.keys(Ci())],S6=Object.keys(Pb()),C6=new Set(["cardImage","imageBackground"]),Bde=[...Aw(ip("ProductGrid","_gCards","Cards")??"Design"),...S6.filter(e=>e.startsWith("_g")||C6.has(e))],_de=Object.keys(Eb()),Dde=Object.keys(Ob()),w6={"ImageBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","ButtonBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","HeroGroup._gContent":"duplicated the Content bucket header above it (2026-09-04)","HeroGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","Footer._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterLogo._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterLogo._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterMenu._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterMenu._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterText._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterText._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterSocial._gStyle":"duplicated the Style bucket header above it (born tabbed, 2026-09-17)","FooterSocial._gLayout":"duplicated the Layout bucket header above it (born tabbed, 2026-09-17)","MenuBlock._gContent":"duplicated the Content bucket header above it (born tabbed, H.1)","MenuBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","EmailFormBlock._gContent":"duplicated the Content bucket header above it (born tabbed, H.1)","SocialLogosBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","SocialLogosBlock._gLayout":"duplicated the Layout bucket header above it (born tabbed, H.1)","SearchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CartBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CountrySwitchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed with its Show as, 2026-10-17)","Split._gContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gVehicleContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gWheelContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gOthersContent":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gHeadCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gLeftCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gRightCopy":"duplicated the Content bucket header above it (2026-09-04)","CollectionCard._gContent":"duplicated the Content bucket header above it (A Card Sets Its Own Corners)","HeroSlide._gContent":"duplicated the Content bucket header above it (Hero Slide Tabs And Theme)","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)"},Rw={Content:["Content"],Size:["Size"],Design:["Design","Style"],Layout:["Layout"],Position:["Position"],Anchor:["Anchor"],Animation:["Animation"]},Bw={_gAnchor:"repeated the Anchor group heading above it (two tabs, 11.0.0)"};{let e={...tl(),...ml("full"),...xl(),...hl(),...fl(),...pl(),...Ci()};for(let o of Object.keys(Bw)){let t=it(e[o]),a=t?dp[t.label]:void 0;if(!t||t.level!==2||!a||!Rw[a].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 k6=new Set(["_sContent","_sStyle","_sLayout","_sMedia"]),v6=new Map([[uo.Design,"Content"],[uo.Animation,"Animation"],...cp.map(e=>[Tn[e],e])]);function _w(e){let o=new Set([...Object.values(uo),Tn.Content]);for(let[t,a]of Object.entries(e))if(!o.has(t)&&it(a)?.level===1)return 1;return 2}function T6(e){let o=`${e}.`;return Object.keys(w6).filter(t=>t.startsWith(o)).map(t=>t.slice(o.length))}function P6(e,o){let t=Ow(e),a=I6(o);return t?g6(t.tier,a):a}function E6(e,o){let t=it(o);return t?e==="Content"||e==="Animation"?gb(o,t.label):bb(o):o}function Ew(e){return e==="Design"?cp:["Animation"]}function Nde(e,o){let t=[],a=new Set(T6(o)),r=new Set,n=!1,s=null;for(let[u,h]of Object.entries(e)){let g=it(h);if(k6.has(u))throw new Error(`${o}.${u}: 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 w=v6.get(u);if(w!==void 0){if(g?.level!==1)throw new Error(`${o}.${u}: that key is reserved for the ${w} 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.`);(u===uo.Design||u===uo.Animation)&&(n=!0),t.push(s={place:w,entries:[],adopted:!0});continue}if(!g){s||t.push(s={place:"Content",entries:[]}),s.entries.push([u,h]);continue}if(a.has(u)||u in Bw){let E=ip(o,u,g.label);if(g.level!==2||!E||!Rw[E].includes(g.label))throw new Error(`${o}.${u}: ${a.has(u)?"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 ${E??"(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.`);a.has(u)&&r.add(u),t.push(s={place:E,entries:[]});continue}let T=ip(o,u,g.label);if(!T)throw new Error(`${o}.${u}: 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 ${[...cp,"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:T,entries:[[u,g.level===2?h:P6(h,g.label)]]})}let i=new Set(Object.entries(e).filter(([,u])=>it(u)).map(([u])=>u));for(let[u,h]of[["BLOCK_KEY_GROUP",Lw],["KEY_GROUP",Fw]]){let g=Object.keys(h).filter(w=>w.startsWith(`${o}.`)).filter(w=>!i.has(w.slice(o.length+1)));if(g.length)throw new Error(`${o}: ${u} (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?[]:[...a].filter(u=>!r.has(u));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 f=new Set(t.filter(u=>u.entries.length>0).map(u=>u.place)),m=Pn.filter(u=>Ew(u).some(h=>f.has(h))),x={};for(let u of m){x[uo[u]]=dl(u,u===m[0]?m:null);for(let h of Ew(u)){if(!f.has(h))continue;let g=t.filter(T=>T.place===h),w=g.findIndex(T=>T.adopted);w>0&&g.unshift(...g.splice(w,1)),u==="Design"&&(x[Tn[h]]=ef(h));for(let T of g)for(let[E,C]of T.entries)x[E]=E6(h,C)}}return x}function Mde(e){return uo.Design in e?e:{[uo.Design]:dl("Design",null),[Tn.Content]:ef("Content"),...e}}function Hde(e){return Pn.some(o=>uo[o]in e)}function Wde(e){let o=Pn.filter(a=>uo[a]in e);if(o.length===0)return e;let t={...e};for(let a of o)t[uo[a]]=dl(a,a===o[0]?o:null);return t}import{usePreviewDevice as B6}from"efficient-easel/draw/client";var fp=" text",Dw="Text";function up(e){let o=e.rows.filter(t=>t.shown);return o.length===0||o.length===1&&o[0].labelled}function Nw(e){return e.filter(up).map(o=>o.key)}function Mw(e,o){let t=null;for(let a of o){let r=e[a];!r||r.marker!==!0||typeof r.fold!="string"||(t??={...e},t[a]={...r,fold:!1})}return t??e}function Hw(e,o){if(e.size!==o.size)return!1;for(let t of e)if(!o.has(t))return!1;return!0}var xp=new Map,ki=new Set;function _6(e,o){let t=new Map;for(let r of e.querySelectorAll(".es-insp-row[data-field]"))t.set(r.getAttribute("data-field")??"",r);let a=[];for(let[r,n]of o)a.push({key:r,rows:n.map(s=>{let i=t.get(s),c=!!i&&[...i.children].some(m=>!m.hidden),f=i?.querySelector(".es-field-label, .es-list-label")?.textContent?.trim();return{shown:c,labelled:c&&!!f}})});return a}var D6=Object.fromEntries(Pn.map(e=>{let o=hb[e];return[e,hp(o,{},e)]}));function En({entries:e,entryCount:o=0,part:t=null,omit:a}){let{id:r,fields:n,values:s,readOnly:i,onChange:c}=A6(),f=B6(),{appState:m,config:x}=L6(M=>M),u=zS(f,x,m.data.content??[],m.ui.itemSelector),h=qS(n,t),g=pp(()=>a?.length?Object.fromEntries(Object.entries(h).filter(([M])=>!a.includes(M))):h,[h,a]),w=WS(g,s,u),[T,E]=mp(()=>new Set(ki)),[C,I]=mp(()=>new Set),S=F6(null),v=pp(()=>{let M=new Map;for(let U of Ww(w).rows){if(!U.fold)continue;let Y=M.get(U.fold.key)??[];Y.push(U.name),M.set(U.fold.key,Y)}return M},[w]);O6(()=>{let M=S.current?.parentElement;if(!M)return;let U=new Set(Nw(_6(M,v)));I(Y=>Hw(Y,U)?Y:U)});let y=pp(()=>Mw(w,C),[w,C]),O={key:fp,rows:Array.from({length:o},()=>({shown:!0,labelled:!0}))},A=up(O)?void 0:{key:fp,title:Dw},[N,W]=mp(()=>xp.get(r)),D=xp.get(r),P=Ww(w).buckets,R=D&&P.includes(D)?D:N&&P.includes(N)?N:P[0],F=R===void 0||Ib(P,R)!==!0;return hp(R6,{fields:y,values:s,onChange:c,readOnly:i,showWhenContext:{...u,node:s},tab:R,onTab:M=>{xp.set(r,M),W(M)},tabIcons:D6,idPrefix:r,ariaLabel:l("Section settings"),lead:F?e:null,leadFold:A,closedFolds:T,onFold:(M,U)=>{U?ki.delete(M):ki.add(M),E(new Set(ki))},children:hp("span",{ref:S,hidden:!0})})}import{jsx as Ip,jsxs as N6}from"react/jsx-runtime";import{InspectorUpLevel as zw}from"efficient-easel/chrome";function Gw({nodeId:e,part:o,sectionName:t,onUpToSection:a}){let{select:r}=Xl();return N6("div",{children:[o!=="media"?Ip(zw,{inline:!0,name:l(dr.media),onSelect:()=>r(un(e,"media"))}):Ip(zw,{inline:!0,name:l(t),onSelect:a}),Ip(En,{part:o})]})}import{SettingsSwitch as Q6}from"efficient-easel/panel";var Vw={kind:"header"},yp={kind:"website"},Yw={kind:"website",tab:sr,revealPageGroup:!0},Xw={kind:"chat"},Zw={kind:"social"},On="Part";function J6(e){return l("Part of {name}",{name:l(e)})}function eW(e,o,t){let a=e.describeNode(o);return{name:t,kindLabel:a?J6(a.label):l(On)}}function oW(e){switch(e){case"Header":return{title:l("Header settings belong to a website."),own:l("Each website created from this template sets its own header afterwards.")};case"Appearance":return{title:l("Appearance settings belong to a website."),own:l("Each website created from this template sets its own appearance afterwards.")};case"Live chat":return{title:l("Live chat settings belong to a website."),own:l("Each website created from this template sets its own live chat afterwards.")};case"Social link":return{title:l("Social link settings belong to a website."),own:l("Each website created from this template sets its own social link afterwards.")};default:return{title:l("{what} settings belong to a website.",{what:e}),own:l("Each website created from this template sets its own {what} afterwards.",{what:e.toLowerCase()})}}}function Qw({what:e}){let o=oW(e);return Sa("div",{className:"sf-note",children:[le("p",{children:le("strong",{children:o.title})}),Sa("p",{children:[l("A template is a blueprint \u2014 it has no website of its own, so there is nothing here to change.")," ",o.own]})]})}function bp(e){let o=fn[e];return{name:dr[e],kindLabel:On,icon:o,head:(t,a)=>{if(t.kind!==o)return null;let r=a.describeNode(t.nodeId);if(!r)return null;let n=Kw({name:l(Ql(e,r.props)),tier:"part",of:l(r.label)},{partOf:({name:s})=>l("Part of {name}",{name:s})});return{name:n.name,kindLabel:n.kind}},render:(t,a)=>t.kind===o?le(Gw,{nodeId:t.nodeId,part:e,sectionName:a.describeNode(t.nodeId)?.label??"Hero",onUpToSection:()=>a.onSelectNode(t.nodeId)}):null}}var tW={header:{name:"Header",kindLabel:"Site settings",icon:"header",render:(e,o)=>{let t=o.hostPanels?.header;return t?le(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)=>le(Wl,{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:()=>le(oC,{})},social:{name:"Social links",kindLabel:"Site settings",icon:"social",render:()=>le(lC,{unavailable:le(Qw,{what:"Social link"})})},ticker:{name:cn,kindLabel:On,icon:"ticker",head:(e,o)=>e.kind==="ticker"?eW(o,e.heroId,l(cn)):null,render:e=>le(fC,{heroId:e.kind==="ticker"?e.heroId:""})},heroMedia:bp("media"),heroImage:bp("image"),heroImage2:bp("image2"),part:{name:On,kindLabel:On,icon:"Text",head:(e,o)=>{if(e.kind!=="part")return null;let t=o.describeNode(e.nodeId);if(!t)return null;let{key:a,row:r}=Fo(e.propKey),n=r?fr(t.fields[a],r):t.fields[a],s=ey(l(Ef(Ol(n??{},a))),r),i=Kw({name:s,tier:"part",of:l(t.label)},{partOf:({name:c})=>l("Part of {name}",{name:c})});return{name:i.name,kindLabel:i.kind}},render:(e,o)=>e.kind==="part"?le(KC,{nodeId:e.nodeId,propKey:e.propKey,onBack:()=>o.onSelectNode(e.nodeId),onEditStyle:o.onOpenSiteStyles}):null}},aW=new Set(["header","website","chat"]);function rW(e,o){if(e==="selection")return null;let t=tW[e];return aW.has(e)&&!o.hasSiteSettings?{...t,kindLabel:"Not part of a template",render:()=>le(Qw,{what:t.name})}:t}function Jw({mode:e,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onOpenPageStyles:a,onSelectNode:r,hideNodeActions:n=!1,onNotify:s,onHidePanel:i}){let{capabilities:c,tokenRef:f,notifyParent:m,currentSlug:x,siteId:u,runAuthed:h,readOnly:g,navigate:w}=V6(),{rows:T}=nn(),E=T?.find(ae=>ae.slug===x)??null,C=W6(),I=Object.keys(C.fields).some(ae=>!ae.startsWith("_")&&!tn.includes(ae)),{websiteName:S}=ee(),v=Y6({readOnly:g}),{select:y}=X6(),{selectedItem:O,getItemById:A,getSelectorForId:N,config:W,appState:D}=H6(ae=>ae),P=q6(W,O?{type:O.type,props:O.props}:null),R=O?ly(P??W.components[O.type]?.fields,O.props):[],F=ae=>W.components[ae]?.label??ae,M=O?N(O.props.id):void 0,U=rW(e.kind,c),Y=K6(),me={capabilities:c,tokenRef:f,hostPanels:Y.chrome?.panels,describeNode:ae=>{let re=A(ae);if(!re)return null;let pe=W.components[re.type];return{type:re.type,label:pe?.label??re.type,fields:pe?.fields??{},props:re.props??{}}},siteId:u,websiteName:S??null,notifyParent:m,onNotify:s,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onSelectNode:r},Be=U?.head?.(e,me)??null,ze=YS({kind:E?.kind,pageName:E?.label}),Ve=Be?.name??(U?l(U.name):O?l(F(O.type)):ze.name),Ye=Be?.kindLabel??(U?l(U.kindLabel):O?M&&M.zone!==qw?l("Block"):l("Section"):ze.kindLabel),fe=U?U.icon:O?O.type:"page",De=U?null:O?W.components[O.type]?.fields??null:W.root?.fields??null,Fe=De?_w(De):2,so=gp(e)&&O?yn(O.type):null,oo=!!O&&!!M&&M.zone===qw&&O.type!==ye&&O.type!==Z6,ho=hi(D?.data,O),St=()=>{ho||M&&v.duplicateComponent(M.zone,M.index)},Io=()=>{M&&(v.removeComponent(M.zone,M.index),v.select(null))},go=O?W.components[O.type]?.defaultProps?.previewHover:void 0,wo=gp(e)&&!!O&&!!M&&go!==void 0,Jo=wo&&O.props.previewHover===!0,Ct=()=>{!O||!M||v.replaceComponent(M.zone,M.index,{...O,props:{...O.props,previewHover:!Jo}})},[lo,B]=M6(su);return Sa("div",{className:`es-sidepanel es-sidepanel--right sf-panel sf-panel--right${lo||!(!U&&O)?"":" sf-hints-folded"}`,children:[le(U6,{icon:le(ba,{type:fe,size:15}),name:Ve,kind:Ye,actions:!n&&gp(e)&&O&&O.type!==ye?Sa(Uw,{children:[le($w,{label:l("Duplicate section"),title:ho??void 0,disabled:ho!==null,onClick:St,children:le($6,{size:15})}),oo&&c.hasSiteSettings&&le(VC,{node:O,currentSlug:x,siteId:u??void 0,tokenRef:f,runAuthed:h,onNotify:s}),le($w,{label:l("Remove section"),danger:!0,onClick:Io,children:le(j6,{size:15})}),i?le(jw,{side:"right",onHide:i,divider:!0}):null]}):i?le(jw,{side:"right",onHide:i}):void 0}),wo&&Sa("div",{className:"sf-preview-pin",children:[Sa("div",{className:"sf-preview-pin-text",children:[le("span",{className:"sf-preview-pin-label",children:l("Preview hover state")}),le("span",{className:"sf-preview-pin-hint",children:l("not shown live")})]}),le(Q6,{checked:Jo,onChange:Ct,ariaLabel:l("Preview hover state")})]}),le(zg,{tier:Fe,children:le("div",{className:"sf-insp-body es-insp-body sf-scroll",children:U?U.render(e,me):O?Sa(Uw,{children:[O.type===ye&&c.hasSiteSettings&&le(dw,{}),le(Qh,{children:le(En,{entries:le(YC,{parts:R,heading:!1,onOpen:ae=>y(Pl(O.props.id,ae))}),entryCount:ep(R).length})}),so&&le(fi,{source:so,slug:bn(O?.props),menuId:li(O?.props)}),le(lu,{shown:lo,onChange:B})]}):I?le(En,{omit:tn}):le(G6,{variant:"none",icon:!1,message:l("Select a section or block to edit it."),children:a&&le(z6,{variant:"secondary",onClick:a,children:l("This page")})})})})]})}import{jsx as d,jsxs as k,Fragment as rk}from"react/jsx-runtime";var Me={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)"},Sp="repeating-linear-gradient(135deg,var(--sf-thumb-hatch1) 0,var(--sf-thumb-hatch1) 5px,var(--sf-thumb-hatch2) 5px,var(--sf-thumb-hatch2) 10px)";function _({w:e,h:o,tone:t="dark",r:a=2,style:r}){return d("div",{style:{width:e,height:o,borderRadius:a,background:Me[t],flex:"none",...r}})}var nW={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"},G={position:"absolute",inset:0},p={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)"},ge=(e,o,t=160)=>({background:`linear-gradient(${t}deg,${e},${o})`});function pt({size:e,style:o}){let t=Math.max(2,Math.round(e*.13)),a=(r,n,s)=>({position:"absolute",inset:r,background:n,borderRadius:t,...s?{mixBlendMode:s}:null});return k("span",{style:{position:"absolute",display:"block",width:e,height:e,...o},children:[d("span",{style:a("8% 26% 30% 6%",p.mark1)}),d("span",{style:a("26% 6% 8% 30%",p.mark2,"multiply")})]})}function Ti({children:e}){return d("span",{style:{fontSize:"4.64cqw",fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:p.muted},children:e})}function ek({over:e,overTone:o,head:t,headSize:a=11.5,cta:r,ctaBg:n,ctaFg:s,tone:i}){return k(rk,{children:[e&&d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:o},children:e}),d("span",{style:{fontSize:a,lineHeight:1.15,fontWeight:700,maxWidth:"78%",color:i},children:t}),r&&d("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:r})]})}function Cp({name:e,price:o}){return k("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[d("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",...ge(p.paper,p.paper2,150)},children:d(pt,{size:34,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),d("span",{style:{fontSize:"3.65cqw",fontWeight:600,color:p.text},children:e}),d("span",{style:{fontSize:"3.65cqw",color:p.muted},children:o})]})}function ut({k:e,v:o,ok:t}){return k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,padding:"3.5px 2px",borderBottom:`1px solid ${p.rule}`,fontSize:"3.98cqw",color:p.muted},children:[d("span",{children:e}),k("span",{style:{display:"flex",gap:6,alignItems:"center"},children:[d("b",{style:{color:p.text,fontWeight:700},children:o}),t&&d("span",{style:{color:p.rust,fontWeight:700},children:"\u2713"})]})]})}function ue({title:e,children:o}){return k("div",{style:{...G,background:p.card,padding:"9px 10px",display:"flex",flexDirection:"column",gap:6},children:[d(Ti,{children:e}),o]})}function ok({size:e=14}){return d("span",{style:{width:e,height:e,borderRadius:"50%",flex:"none",display:"block",background:`linear-gradient(150deg,${p.mark1},${p.mark2})`}})}function wp({filled:e=5,size:o=6}){return k("span",{style:{fontSize:o,letterSpacing:"0.06em",color:p.rust,lineHeight:1},children:["\u2605".repeat(e),d("span",{style:{color:p.mark1},children:"\u2605".repeat(5-e)})]})}function Fn({n:e,label:o,tone:t=p.text}){return k("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[d("b",{style:{fontSize:"8.16cqw",lineHeight:1,color:t},children:e}),d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",opacity:.62,color:t},children:o})]})}function Ke({children:e,w:o}){return d("span",{style:{fontSize:"3.98cqw",lineHeight:1.45,color:p.muted,width:o,display:"block"},children:e})}function vi({label:e,w:o="100%",filled:t}){return k("div",{style:{width:o,display:"flex",flexDirection:"column",gap:2},children:[d("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:p.muted},children:e}),d("span",{style:{height:9,borderRadius:3,border:`1px solid ${p.rule}`,background:t?p.paper:p.card}})]})}function tk({children:e}){return d("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:p.text,color:p.onInk},children:e})}var sW={wheelslisting:d(ue,{title:"All wheels",children:d("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])=>k("div",{style:{display:"flex",alignItems:"center",gap:6},children:[d("span",{style:{width:20,height:15,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",...ge(p.paper,p.paper2,150)},children:d(pt,{size:12,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),d("b",{style:{flex:1,fontSize:"4.31cqw",color:p.text},children:e}),d("span",{style:{fontSize:"3.65cqw",color:p.muted},children:o}),d("b",{style:{fontSize:"4.31cqw",color:p.text,width:26,textAlign:"right"},children:t})]},e))})}),catalogfilterbar:k("div",{style:{...G,background:p.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[k("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[["20 inch","6\xD7139.7","Black"].map(e=>k("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"4px 7px",borderRadius:99,background:p.text,color:p.onInk,display:"flex",gap:4,alignItems:"center"},children:[e,d("span",{style:{opacity:.6},children:"\u2715"})]},e)),d("span",{style:{fontSize:"3.65cqw",color:p.rust,fontWeight:700},children:"Clear"})]}),k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[d("span",{style:{fontSize:"3.65cqw",color:p.muted},children:"128 results"}),d("span",{style:{fontSize:"3.65cqw",color:p.muted,border:`1px solid ${p.rule}`,borderRadius:3,padding:"3px 6px"},children:"Sort: Price \u25BE"})]})]}),fitmentfinder:k("div",{style:{...G,padding:"10px 12px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center",...ge(p.ink,p.inkSoft)},children:[d("span",{style:{fontSize:"5.31cqw",fontWeight:700,color:p.onInk},children:"Will it fit your rig?"}),k("div",{style:{display:"flex",gap:4},children:[["2021","Toyota","Hilux"].map(e=>k("span",{style:{flex:1,fontSize:"3.65cqw",color:p.text,background:p.card,borderRadius:3,padding:"5px 6px",display:"flex",justifyContent:"space-between"},children:[e," ",d("span",{style:{color:p.muted},children:"\u25BE"})]},e)),d("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.08em",background:p.warm,color:p.ink,borderRadius:3,padding:"5px 7px"},children:"GO"})]})]}),compatibletyres:d(ue,{title:"Tyres that suit",children:d("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])=>k("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[d("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",background:p.ink},children:d("span",{style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%,-50%)",width:26,height:26,borderRadius:"50%",border:`5px solid ${p.mark2}`,boxSizing:"border-box"}})}),d("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:p.text,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:e}),d("span",{style:{fontSize:"3.32cqw",color:p.muted},children:o})]},e))})}),tyresizes:d(ue,{title:"Available sizes",children:d("div",{style:{flex:1,display:"flex",flexWrap:"wrap",gap:4,alignContent:"center"},children:["265/65R17","285/70R17","265/60R18","275/55R20"].map((e,o)=>d("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"5px 7px",borderRadius:3,border:`1px solid ${o===0?p.rust:p.rule}`,color:o===0?p.rust:p.text,background:o===0?p.paper:p.card},children:e},e))})}),tyrefitment:k(ue,{title:"Will it fit your car?",children:[d("div",{style:{display:"flex",gap:3},children:["Make","Model","Year","Trim"].map(e=>k("span",{style:{flex:1,minWidth:0,fontSize:"3.32cqw",color:p.muted,background:p.paper,border:`1px solid ${p.rule}`,borderRadius:3,padding:"4px 5px",display:"flex",justifyContent:"space-between",gap:2,overflow:"hidden",whiteSpace:"nowrap"},children:[e," ",d("span",{style:{color:p.muted},children:"\u25BE"})]},e))}),d("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])=>k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:6,borderTop:`1px solid ${p.rule}`,paddingTop:3},children:[d("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:p.text},children:e}),d("span",{style:{fontSize:"3.32cqw",fontWeight:t?700:400,letterSpacing:"0.06em",color:t?p.warm:p.muted},children:o})]},e))})]}),eutyrelabel:k("div",{style:{...G,background:p.card,padding:"9px 11px",display:"flex",gap:8,alignItems:"center"},children:[d("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1.5},children:[["A","42%"],["B","56%"],["C","70%"],["D","84%"]].map(([e,o],t)=>k("div",{style:{display:"flex",alignItems:"center",gap:3},children:[d("span",{style:{width:o,height:6,borderRadius:"0 2px 2px 0",background:t===1?p.rust:p.mark1}}),d("span",{style:{fontSize:"3.32cqw",fontWeight:700,color:t===1?p.rust:p.muted},children:e})]},e))}),k("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:3,alignItems:"center"},children:[d("b",{style:{fontSize:"6.63cqw",lineHeight:1,color:p.text},children:"72"}),d("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",color:p.muted},children:"dB"})]})]}),bundleoffer:k("div",{style:{...G,background:p.paper,padding:"9px 11px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[d(Ti,{children:"Buy it with"}),k("div",{style:{display:"flex",alignItems:"center",gap:5},children:[[0,1].map(e=>d("span",{style:{width:26,height:22,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",background:p.card},children:d(pt,{size:17,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})},e)),d("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:p.muted},children:"+"}),k("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1},children:[d("span",{style:{fontSize:"3.65cqw",color:p.muted,textDecoration:"line-through"},children:"$1,024"}),d("b",{style:{fontSize:"6.02cqw",color:p.rust,lineHeight:1},children:"$899"})]})]})]}),checkoutcta:k("div",{style:{...G,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,...ge(p.ink,p.ink2)},children:[k("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",color:p.warm,fontWeight:700},children:"READY TO ORDER"}),d("b",{style:{fontSize:"6.63cqw",color:p.onInk,lineHeight:1},children:"$1,956"}),d("span",{style:{fontSize:"3.65cqw",color:p.onInk,opacity:.65},children:"4 items \xB7 fitted free"})]}),d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"6px 10px",borderRadius:2,background:p.warm,color:p.ink,flex:"none"},children:"CHECKOUT"})]}),contact:d(ue,{title:"Who do you need?",children:d("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])=>k("div",{style:{display:"flex",alignItems:"center",gap:5},children:[d("b",{style:{flex:1,fontSize:"4.31cqw",color:p.text},children:e}),d("span",{style:{fontSize:"3.65cqw",color:p.muted},children:o}),d("span",{style:{fontSize:"4.64cqw",color:p.rust,lineHeight:1},children:"\u203A"})]},e))})}),contactlocations:d(ue,{title:"Find us",children:d("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])=>k("div",{style:{border:`1px solid ${p.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[d("b",{style:{fontSize:"4.31cqw",color:p.text},children:e}),d("span",{style:{fontSize:"3.32cqw",color:p.muted},children:o}),d("span",{style:{fontSize:"3.32cqw",color:p.rust,fontWeight:700},children:t})]},e))})}),citypictures:d(ue,{title:"Our studios",children:k("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3,minHeight:0},children:[d("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.12em",fontWeight:700,color:p.muted},children:"A \xB7 AMERICAS"}),d("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:["Los Angeles","Miami","Toronto"].map(e=>k("div",{style:{position:"relative",minHeight:0},children:[d(_,{r:3,style:{...G,background:`linear-gradient(transparent 45%,${p.scrim} 45%),${ge(p.ink,p.inkSoft2).background}`}}),d("b",{style:{position:"absolute",left:5,bottom:4,fontSize:"3.65cqw",color:p.onInk},children:e})]},e))})]})}),citymaps:d(ue,{title:"Find us",children:d("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])=>k("div",{style:{position:"relative",padding:"4px 5px",display:"flex",flexDirection:"column",gap:2,minHeight:0},children:[d(_,{r:4,style:{...G,background:"none",border:`1px solid ${p.rule}`}}),d("b",{style:{position:"relative",fontSize:"4.31cqw",color:p.text},children:e}),d("span",{style:{position:"relative",fontSize:"3.32cqw",color:p.muted},children:o}),k("div",{style:{flex:1,minHeight:0,position:"relative"},children:[d(_,{r:3,style:{...G,...ge(p.paper,p.paper2,150)}}),d(_,{w:"60%",h:"60%",r:8,style:{position:"absolute",left:"12%",top:"20%",background:p.mark1,opacity:.75}}),d(_,{w:6,h:6,r:3,style:{position:"absolute",left:"44%",top:"34%",background:p.rust}})]})]},e))})}),form:d(ue,{title:"Send us a message",children:k("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[k("div",{style:{display:"flex",gap:5},children:[d(vi,{label:"Name"}),d(vi,{label:"Email"})]}),d(vi,{label:"Message",filled:!0}),d(tk,{children:"SEND"})]})}),appointmentbooking:d(ue,{title:"Book a fitting",children:k("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[d("div",{style:{display:"flex",gap:3},children:["Mon","Tue","Wed","Thu"].map((e,o)=>d("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",fontWeight:o===2?700:500,padding:"4px 0",borderRadius:3,background:o===2?p.text:p.paper,color:o===2?p.onInk:p.muted},children:e},e))}),d("div",{style:{display:"flex",gap:3},children:["8:00","10:30","13:00","15:30"].map((e,o)=>d("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",padding:"4px 0",borderRadius:3,border:`1px solid ${o===1?p.rust:p.rule}`,color:o===1?p.rust:p.muted,background:o===3?p.paper:p.card,textDecoration:o===3?"line-through":"none"},children:e},e))})]})}),reviewform:d(ue,{title:"Leave a review",children:k("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[d(wp,{filled:4,size:14}),d(vi,{label:"Your review",filled:!0}),d(tk,{children:"POST"})]})}),submitbuild:d(ue,{title:"Show us your build",children:k("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:3,border:`1px dashed ${p.mark1}`,borderRadius:5,background:p.paper},children:[d("span",{style:{fontSize:"6.63cqw",lineHeight:1,color:p.rust,fontWeight:300},children:"+"}),d("span",{style:{fontSize:"3.65cqw",color:p.muted},children:"Drop a photo of your rig"})]})}),masthead:k("div",{style:{...G,background:p.paper,display:"flex",flexDirection:"column",justifyContent:"center",padding:"0 13px",gap:5},children:[d("span",{style:{height:1.5,background:p.text}}),d("span",{style:{fontSize:"7.65cqw",fontWeight:800,letterSpacing:"0.02em",color:p.text,lineHeight:1},children:"THE TRACK"}),k("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"3.65cqw",letterSpacing:"0.1em",textTransform:"uppercase",color:p.muted},children:[d("span",{children:"Issue 14"}),d("span",{children:"Spring 2026"})]}),d("span",{style:{height:1,background:p.rule}})]}),featuredcover:k("div",{style:{...G,overflow:"hidden",...ge(p.ink,p.inkSoft2)},children:[d(pt,{size:92,style:{right:-18,top:-14}}),d("div",{style:{position:"absolute",inset:0,background:`linear-gradient(0deg,${p.scrim},transparent 62%)`}}),k("div",{style:{position:"absolute",left:12,right:12,bottom:11,display:"flex",flexDirection:"column",gap:3},children:[d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:p.warm},children:"FEATURE"}),d("span",{style:{fontSize:"6.16cqw",lineHeight:1.15,fontWeight:700,color:p.onInk},children:"Four days on the Madigan Line"})]})]}),longread:k("div",{style:{...G,background:p.card,padding:"10px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.14em",fontWeight:700,color:p.rust},children:"12 MIN READ"}),d("span",{style:{fontSize:"6.02cqw",lineHeight:1.15,fontWeight:700,color:p.text},children:"What breaks first, and why"}),d(Ke,{children:"Every failure starts in the same place \u2014 not the rim, not"}),d(Ke,{w:"62%",children:"the tyre, but the bolt nobody re-torqued."})]}),series:d(ue,{title:"Recurring columns",children:d("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])=>k("div",{style:{display:"flex",alignItems:"center",gap:6},children:[d("span",{style:{width:3,height:12,borderRadius:2,background:p.rust,flex:"none"}}),d("b",{style:{flex:1,fontSize:"4.64cqw",color:p.text},children:e}),d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:p.muted},children:o})]},e))})}),events:d(ue,{title:"Latest posts",children:d("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[[p.inkSoft,p.inkSoft2,"Madigan Line, four days"],[p.rust,p.warm,"Why offset beats width"]].map(([e,o,t])=>k("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[d("span",{style:{width:24,height:18,borderRadius:3,flex:"none",...ge(e,o,150)}}),k("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[d("b",{style:{fontSize:"4.31cqw",color:p.text},children:t}),d("span",{style:{fontSize:"3.65cqw",color:p.muted},children:"4 Sep \xB7 Shed Notes"})]})]},t))})}),docmasthead:k("div",{style:{...G,background:p.card,padding:"12px 14px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:p.muted},children:"POLICY"}),d("span",{style:{fontSize:"6.49cqw",fontWeight:700,color:p.text,lineHeight:1.1},children:"Returns & refunds"}),d("span",{style:{fontSize:"3.65cqw",color:p.muted},children:"Version 3 \xB7 Updated 4 Sep 2026"}),d("span",{style:{height:2,width:26,background:p.rust,borderRadius:1}})]}),docbody:d("div",{style:{...G,background:p.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])=>k("div",{style:{display:"flex",gap:5},children:[d("b",{style:{fontSize:"3.98cqw",color:p.rust,flex:"none"},children:e}),d(Ke,{children:o})]},e))}),docmetacards:d(ue,{title:"At a glance",children:d("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])=>k("div",{style:{border:`1px solid ${p.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[d("b",{style:{fontSize:"5.31cqw",color:p.text,lineHeight:1},children:e}),d("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:p.muted},children:o})]},o))})}),doctabs:k("div",{style:{...G,background:p.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:0,padding:"0 11px"},children:[d("div",{style:{display:"flex",gap:0},children:["Returns","Warranty","Shipping"].map((e,o)=>d("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"5px 8px",color:o===0?p.text:p.muted,background:o===0?p.paper:"transparent",borderRadius:"4px 4px 0 0",border:`1px solid ${o===0?p.rule:"transparent"}`,borderBottom:"none"},children:e},e))}),d("span",{style:{height:1,background:p.rule}}),k("div",{style:{paddingTop:6,display:"flex",flexDirection:"column",gap:2},children:[d(Ke,{children:"Unfitted wheels come back within 30 days, no questions."}),d(Ke,{w:"58%",children:"Freight on a change of mind is yours."})]})]}),paragraphs:k("div",{style:{...G,background:p.card,padding:"11px 14px",display:"flex",gap:10,alignItems:"center"},children:[d("span",{style:{flex:1,fontSize:"5.86cqw",lineHeight:1.2,fontWeight:700,color:p.text},children:"The right wheel is the boring one."}),k("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[d(Ke,{children:"Forged, correctly offset, rated for what you actually"}),d(Ke,{children:"carry. Everything else is a photograph."})]})]}),keyfeatures:d(ue,{title:"Key features",children:d("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=>k("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[d("span",{style:{fontSize:"4.64cqw",color:p.rust,fontWeight:700,lineHeight:1},children:"\u2713"}),d("span",{style:{fontSize:"4.31cqw",color:p.text},children:e})]},e))})}),statsparagraph:k("div",{style:{...G,background:p.paper,padding:"10px 12px",display:"flex",gap:10,alignItems:"center"},children:[k("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:5},children:[d(Fn,{n:"27k",label:"Rigs"}),d(Fn,{n:"4.9",label:"Rating"})]}),k("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[d(Ke,{children:"Twelve years of fitting the same three questions, and the"}),d(Ke,{children:"answer has not moved: load rating, offset, then looks."})]})]}),chart:k(ue,{title:"Load vs weight",children:[d("div",{style:{flex:1,display:"flex",alignItems:"flex-end",gap:5,paddingBottom:2},children:[38,62,84,71,96].map((e,o)=>d("span",{style:{flex:1,height:`${e}%`,borderRadius:"2px 2px 0 0",background:o===4?p.rust:p.mark1}},o))}),d("span",{style:{height:1,background:p.rule,marginTop:-4}})]}),mockup:d("div",{style:{...G,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",...ge(p.inkSoft,p.ink)},children:k("div",{style:{width:"72%",height:"74%",borderRadius:4,overflow:"hidden",background:p.card,boxShadow:`0 6px 14px ${p.scrim}`},children:[d("div",{style:{height:9,background:p.paper,display:"flex",alignItems:"center",gap:2,padding:"0 4px"},children:[0,1,2].map(e=>d("span",{style:{width:2.5,height:2.5,borderRadius:"50%",background:p.mark1}},e))}),k("div",{style:{padding:5,display:"flex",flexDirection:"column",gap:3},children:[d("span",{style:{height:4,width:"56%",borderRadius:1,background:p.mark2}}),d("span",{style:{height:14,borderRadius:2,...ge(p.paper,p.paper2,150)}}),d("span",{style:{height:3,width:"38%",borderRadius:1,background:p.rust}})]})]})}),manifesto:d("div",{style:{...G,overflow:"hidden",display:"flex",alignItems:"center",padding:"0 16px",...ge(p.ink,p.ink2)},children:k("span",{style:{fontSize:"6.63cqw",lineHeight:1.2,fontWeight:700,color:p.onInk},children:["We build for the ",d("span",{style:{color:p.warm},children:"last"})," ten percent of the track."]})}),timeline:d(ue,{title:"Our story",children:d("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)=>k("div",{style:{display:"flex",gap:7,alignItems:"flex-start",position:"relative"},children:[t<2&&d("span",{style:{position:"absolute",left:3,top:8,bottom:-8,width:1,background:p.rule}}),d("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",marginTop:1,background:p.rust,zIndex:1}}),k("div",{style:{display:"flex",flexDirection:"column",gap:0,minWidth:0},children:[d("b",{style:{fontSize:"4.64cqw",color:p.text},children:e}),d(Ke,{children:o})]})]},e))})}),timelinetrack:k("div",{style:{...G,padding:"0 12px",display:"flex",flexDirection:"column",gap:10,justifyContent:"center",...ge(p.ink,p.inkSoft)},children:[d("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:p.warm},children:"Milestones"}),k("div",{style:{position:"relative",display:"flex",justifyContent:"space-between",paddingTop:7},children:[d("span",{style:{position:"absolute",left:0,right:0,top:3,height:1,background:p.mark2,opacity:.55}}),["1998","2009","2016","2024"].map((e,o)=>k("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:3,position:"relative"},children:[d("span",{style:{position:"absolute",top:-7,width:6,height:6,borderRadius:"50%",background:o===3?p.warm:p.mark1}}),d("span",{style:{fontSize:"4.31cqw",fontWeight:700,color:o===3?p.warm:p.onInk,opacity:o===3?1:.75},children:e})]},e))]})]}),footprint:k("div",{style:{...G,overflow:"hidden",...ge(p.paper,p.paper2,150)},children:[d("span",{style:{position:"absolute",left:"8%",top:"18%",width:"62%",height:"64%",borderRadius:"48% 52% 40% 60% / 55% 45% 55% 45%",background:p.mark1,opacity:.75}}),d("span",{style:{position:"absolute",left:"52%",top:"52%",width:"34%",height:"34%",borderRadius:"58% 42% 55% 45% / 45% 58% 42% 55%",background:p.mark2,opacity:.55}}),[["26%","38%"],["44%","58%"],["62%","34%"]].map(([e,o])=>d("span",{style:{position:"absolute",left:e,top:o,width:7,height:7,borderRadius:"50% 50% 50% 0",transform:"rotate(-45deg)",background:p.rust}},e)),d("span",{style:{position:"absolute",left:11,bottom:9,fontSize:"4.64cqw",fontWeight:700,color:p.text},children:"3 fitting bays"})]}),banner:k("div",{style:{...G,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,background:p.rust},children:[k("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[d("b",{style:{fontSize:"6.02cqw",color:p.onInk},children:"End of season \xB7 20% off"}),d("span",{style:{fontSize:"3.98cqw",color:p.onInk,opacity:.8},children:"Fitted free, this month only."})]}),d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:p.onInk,color:p.text,flex:"none"},children:"SHOP"})]}),titlewithbuttons:k("div",{style:{...G,background:p.paper,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:7,padding:"0 14px",textAlign:"center"},children:[d("span",{style:{fontSize:"6.49cqw",lineHeight:1.15,fontWeight:700,color:p.text},children:"Not sure what fits?"}),k("div",{style:{display:"flex",gap:5},children:[d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:p.text,color:p.onInk},children:"FIND MY FIT"}),d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,border:`1px solid ${p.text}`,color:p.text},children:"CALL US"})]})]}),ticker:d("div",{style:{...G,overflow:"hidden",background:p.ink,display:"flex",alignItems:"center"},children:d("span",{style:{whiteSpace:"nowrap",fontSize:"6.29cqw",fontWeight:800,letterSpacing:"0.06em",color:p.warm,marginLeft:-14},children:"FREE FITTING \xB7 48HR DISPATCH \xB7 FREE FITTING \xB7 48HR DISPATCH"})}),countdown:k("div",{style:{...G,padding:"10px 12px",display:"flex",flexDirection:"column",alignItems:"center",gap:6,justifyContent:"center",...ge(p.ink,p.ink2)},children:[d("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.16em",textTransform:"uppercase",color:p.muted},children:"Back online in"}),d("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[["23","Hours"],["59","Minutes"],["48","Seconds"]].map(([e,o],t)=>k("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[t>0&&d("b",{style:{fontSize:"9.5cqw",lineHeight:1,color:p.warm},children:":"}),k("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:[d("b",{style:{fontSize:"11.5cqw",lineHeight:1,color:p.onInk,fontVariantNumeric:"tabular-nums"},children:e}),d("span",{style:{fontSize:"3.2cqw",letterSpacing:"0.1em",textTransform:"uppercase",opacity:.62,color:p.onInk},children:o})]})]},o))})]}),breadcrumb:d("div",{style:{...G,background:p.card,display:"flex",alignItems:"center",padding:"0 13px"},children:k("span",{style:{fontSize:"4.64cqw",color:p.muted},children:["Home ",d("span",{style:{opacity:.5},children:"/"})," Wheels ",d("span",{style:{opacity:.5},children:"/"})," ",d("span",{style:{color:p.text,fontWeight:700},children:"20 inch"})]})}),categorybar:k("div",{style:{...G,background:p.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[d("div",{style:{display:"flex",gap:5},children:["All","Wheels","Tyres","Lift"].map((e,o)=>d("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"4px 7px",borderRadius:99,background:o===0?p.text:p.paper,color:o===0?p.onInk:p.muted},children:e},e))}),d("span",{style:{height:1,background:p.rule}})]}),intro:k("div",{style:{...G,overflow:"hidden",background:p.card},children:[d("div",{style:{position:"absolute",inset:0,...ge(p.ink,p.inkSoft2)}}),d(pt,{size:64,style:{right:8,top:6}}),k("div",{style:{position:"absolute",left:16,right:16,bottom:8,top:"46%",background:p.paper,borderRadius:6,padding:"8px 11px",display:"flex",flexDirection:"column",gap:2,boxShadow:`0 -4px 10px ${p.scrim}`},children:[d("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:p.text},children:"Since 1998"}),d(Ke,{children:"One shed, one lathe, one idea."}),d(Ke,{w:"66%",children:"It turned out to be right."})]})]}),gallerygrid:d(ue,{title:"From our customers",children:d("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gridTemplateRows:"repeat(2,1fr)",gap:4,minHeight:0},children:[[p.rust,p.warm],[p.inkSoft,p.ink],[p.paper2,p.mark2],[p.ink,p.inkSoft2],[p.warm,p.paper2],[p.mark2,p.inkSoft]].map(([e,o],t)=>d("div",{style:{borderRadius:3,...ge(e,o,140+t*22)}},t))})}),gallery:k(ue,{title:"Gallery",children:[d("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:-2},children:["On the truck","Studio","Close-ups"].map((e,o)=>d("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,color:o===0?p.text:p.muted,borderBottom:`1.5px solid ${o===0?p.rust:"transparent"}`,paddingBottom:2},children:e},e))}),d("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:[[p.rust,p.warm],[p.ink,p.inkSoft],[p.paper2,p.mark2]].map(([e,o],t)=>d("div",{style:{borderRadius:3,...ge(e,o,150+t*20)}},t))})]}),ordersummary:k(ue,{title:"Order summary",children:[k("div",{style:{display:"flex",gap:6,alignItems:"center",paddingBottom:4},children:[d("span",{style:{width:26,height:26,borderRadius:4,position:"relative",overflow:"hidden",flex:"none",...ge(p.paper,p.paper2,150)},children:d(pt,{size:18,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),k("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[d("b",{style:{fontSize:"4.31cqw",color:p.text},children:"Ridge Grappler"}),d("span",{style:{fontSize:"3.65cqw",color:p.muted},children:"20\xD79 +12 \xB7 qty 4"})]})]}),k("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",justifyContent:"center"},children:[d(ut,{k:"Subtotal",v:"$1,956"}),d(ut,{k:"Fitting",v:"Free"}),k("div",{style:{display:"flex",justifyContent:"space-between",paddingTop:5,fontSize:"4.64cqw"},children:[d("b",{style:{color:p.text},children:"Total"}),d("b",{style:{color:p.text,fontSize:"6.02cqw"},children:"$1,956"})]})]})]}),deliveryoptions:d(ue,{title:"Delivery",children:d("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,a])=>k("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 6px",borderRadius:4,border:`1px solid ${a?p.rust:p.rule}`,background:a?p.paper:p.card},children:[d("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",border:`1.5px solid ${a?p.rust:p.mark1}`,background:a?p.rust:"transparent"}}),d("span",{style:{flex:1,fontSize:"4.31cqw",fontWeight:600,color:p.text},children:e}),d("span",{style:{fontSize:"3.98cqw",color:p.muted},children:o}),d("b",{style:{fontSize:"4.31cqw",color:p.text},children:t})]},e))})}),paymentbadges:k("div",{style:{...G,background:p.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[d(Ti,{children:"Ways to pay"}),d("div",{style:{display:"flex",gap:5},children:[["VISA",p.ink],["MC",p.rust],["AMEX",p.inkSoft],["PayPal",p.ink2]].map(([e,o])=>d("span",{style:{flex:1,textAlign:"center",fontSize:"3.65cqw",fontWeight:800,letterSpacing:"0.06em",color:p.onInk,borderRadius:3,padding:"6px 0",background:o},children:e},e))})]}),stats:k("div",{style:{...G,padding:"10px 12px",display:"flex",flexDirection:"column",gap:9,justifyContent:"center",...ge(p.ink,p.ink2)},children:[d("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:p.warm},children:"By the numbers"}),k("div",{style:{display:"flex",gap:8},children:[d(Fn,{n:"27k",label:"Rigs fitted",tone:p.onInk}),d(Fn,{n:"12",label:"Years",tone:p.onInk}),d(Fn,{n:"4.9",label:"Avg rating",tone:p.warm})]})]}),testimonials:k("div",{style:{...G,overflow:"hidden",background:p.paper,padding:"10px 11px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center"},children:[d("span",{style:{position:"absolute",right:10,top:2,fontSize:"22.4cqw",lineHeight:1,fontWeight:800,color:p.rust,opacity:.16},children:"\u201D"}),d(wp,{filled:5,size:7}),d("span",{style:{position:"relative",fontSize:"5.31cqw",lineHeight:1.35,color:p.text,fontWeight:600},children:"\u201CTook them out to the Simpson and back. Not one chip.\u201D"}),k("div",{style:{display:"flex",alignItems:"center",gap:5},children:[d(ok,{}),d("span",{style:{fontSize:"3.98cqw",color:p.muted},children:"Dave M. \xB7 Hilux N80"})]})]}),reviews:k(ue,{title:"Reviews",children:[d("div",{style:{display:"flex",gap:4,height:22},children:[[p.inkSoft,p.inkSoft2],[p.rust,p.warm],[p.ink,p.inkSoft],[p.mark2,p.mark1]].map(([e,o],t)=>d("div",{style:{flex:1,borderRadius:3,...ge(e,o,140+t*15)}},t))}),d("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])=>k("div",{style:{display:"flex",gap:5,alignItems:"flex-start"},children:[d(ok,{size:12}),k("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[k("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[d("b",{style:{fontSize:"3.98cqw",color:p.text},children:e}),d(wp,{filled:o})]}),d(Ke,{children:t})]})]},e))})]}),logos:k("div",{style:{...G,display:"flex",flexDirection:"column",gap:9,justifyContent:"center",padding:"0 12px",...ge(p.ink,p.inkSoft)},children:[d("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:p.warm},children:"As fitted by"}),d("div",{style:{display:"grid",gridTemplateColumns:"repeat(4,1fr)",gap:8},children:["ARB","TJM","IRONMAN","OPPOSITE"].map(e=>d("span",{style:{textAlign:"center",fontSize:"4.31cqw",fontWeight:800,letterSpacing:"0.08em",color:p.onInk,opacity:.82},children:e},e))})]}),prose:k("div",{style:{...G,background:p.paper,padding:"11px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[d("span",{style:{fontSize:"5.86cqw",fontWeight:700,color:p.text},children:"Why offset matters"}),k("div",{style:{display:"flex",gap:6},children:[d("span",{style:{fontSize:"15.3cqw",lineHeight:.78,fontWeight:800,color:p.rust,marginTop:1},children:"T"}),k("div",{style:{display:"flex",flexDirection:"column"},children:[d(Ke,{children:"he number on the back of your wheel decides whether the"}),d(Ke,{w:"76%",children:"tyre sits under the guard or an inch outside it."})]})]})]}),cards:d(ue,{title:"What you get",children:d("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])=>k("div",{style:{border:`1px solid ${p.rule}`,borderRadius:4,padding:6,display:"flex",flexDirection:"column",gap:2},children:[d("span",{style:{width:11,height:11,borderRadius:3,background:p.rust,opacity:.9}}),d("b",{style:{fontSize:"3.98cqw",color:p.text},children:e}),d(Ke,{children:o})]},e))})}),faq:d(ue,{title:"Questions",children:d("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])=>k("div",{style:{borderBottom:`1px solid ${p.rule}`,padding:"4px 2px"},children:[k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6},children:[d("b",{style:{fontSize:"4.31cqw",color:p.text},children:e}),d("span",{style:{fontSize:"4.64cqw",color:p.muted,lineHeight:1},children:o?"\u2212":"+"})]}),o&&d(Ke,{w:"90%",children:"Use the fitment finder \u2014 it reads your build, not just the model."})]},e))})}),hero:k("div",{style:{...G,overflow:"hidden",...ge(p.ink,p.ink2)},children:[d("div",{style:{...G,background:`linear-gradient(90deg,${p.scrim},transparent 70%)`}}),d("div",{style:{position:"relative",height:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",padding:"12px 14px",gap:5},children:d(ek,{over:"NEW \xB7 SUMMER",overTone:p.warm,head:"Built for the worst road you own",cta:"SHOP ALL",ctaBg:p.warm,ctaFg:p.ink,tone:p.onInk})}),d(pt,{size:104,style:{right:-24,bottom:-30}})]}),herosingle:k("div",{style:{...G,display:"flex",background:p.paper,overflow:"hidden"},children:[d("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:d(ek,{over:"ALL-TERRAIN",overTone:p.rust,head:"Grip that does not ask",headSize:12,cta:"EXPLORE",ctaBg:p.text,ctaFg:p.onInk,tone:p.text})}),d("div",{style:{flex:1,position:"relative",...ge(p.inkSoft,p.inkSoft2)},children:d(pt,{size:74,style:{right:-14,top:16}})})]}),productgrid:d(ue,{title:"Best sellers",children:k("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[d(Cp,{name:"Ridge 19",price:"$365"}),d(Cp,{name:"Ridge 29",price:"$410"}),d(Cp,{name:"Ridge 39",price:"$455"})]})}),collections:d(ue,{title:"Shop by category",children:d("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Wheels",p.inkSoft,p.inkSoft2],["Tyres",p.rust,p.warm],["Lift kits",p.ink,p.inkSoft]].map(([e,o,t])=>d("div",{style:{borderRadius:4,display:"flex",alignItems:"flex-end",padding:5,color:p.onInk,...ge(o,t)},children:d("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.04em"},children:e})},e))})}),producthero:k("div",{style:{...G,display:"flex",background:p.card,overflow:"hidden"},children:[d("div",{style:{flex:1.1,position:"relative",...ge(p.paper,p.paper2,150)},children:d(pt,{size:78,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),k("div",{style:{flex:1,padding:"10px 10px 10px 8px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[d("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:p.rust},children:"NITTO"}),d("b",{style:{fontSize:"6.29cqw",color:p.text},children:"Ridge Grappler"}),d("span",{style:{fontSize:"6.63cqw",fontWeight:700,color:p.text},children:"$489"}),d("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,background:p.text,color:p.onInk},children:"ADD TO CART"})]})]}),spectable:d(ue,{title:"Specifications",children:k("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[d(ut,{k:"Diameter",v:'20"'}),d(ut,{k:"Width",v:"9.0J"}),d(ut,{k:"Offset",v:"+12"}),d(ut,{k:"Load",v:"1250 kg"})]})}),fitmenttable:d(ue,{title:"Will it fit?",children:k("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[d(ut,{k:"Hilux N80",v:"20\xD79 +12",ok:!0}),d(ut,{k:"Ranger PX3",v:"20\xD79 +12",ok:!0}),d(ut,{k:"LC79",v:"17\xD78 \u221210",ok:!0})]})}),processsteps:k("div",{style:{...G,background:p.paper,padding:10,display:"flex",flexDirection:"column",gap:7,justifyContent:"center"},children:[d(Ti,{children:"How it works"}),d("div",{style:{display:"flex",gap:6},children:["Pick your rig","Match the fit","We fit it"].map((e,o)=>k("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2},children:[d("span",{style:{width:11,height:11,borderRadius:"50%",background:p.text,color:p.onInk,fontSize:"3.98cqw",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700},children:o+1}),d("span",{style:{fontSize:"3.98cqw",color:p.text,fontWeight:600},children:e})]},e))})]}),detailrows:d("div",{style:{...G,background:p.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 a=d("div",{style:{flex:1,...ge(t?p.rust:p.inkSoft,t?p.warm:p.inkSoft2)}},"art"),r=k("div",{style:{flex:1.1,padding:8,display:"flex",flexDirection:"column",gap:2,justifyContent:"center"},children:[d("b",{style:{fontSize:"4.64cqw",color:p.text},children:e}),d("span",{style:{fontSize:"3.98cqw",color:p.muted,lineHeight:1.3},children:o})]},"tx");return d("div",{style:{flex:1,display:"flex",minHeight:0},children:t?[r,a]:[a,r]},e)})}),specstrip:d("div",{style:{...G,background:p.ink,color:p.onInk,display:"flex",alignItems:"center",justifyContent:"space-around",padding:"0 8px"},children:[["5 yr","Warranty"],["Free","Fitting"],["48 hr","Dispatch"]].map(([e,o])=>k("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[d("b",{style:{fontSize:"5.69cqw",letterSpacing:"0.02em"},children:e}),d("span",{style:{fontSize:"3.65cqw",color:p.mark2,letterSpacing:"0.1em",textTransform:"uppercase"},children:o})]},o))})},ak={subscribe:k("div",{style:{...G,padding:13,display:"flex",flexDirection:"column"},children:[k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[k("div",{style:{display:"flex",alignItems:"center",gap:6},children:[d(_,{w:8,h:8,r:2,tone:"accent"}),d(_,{w:38,h:7,r:3,tone:"dark"}),d(_,{w:16,h:7,r:3,tone:"accent"})]}),d(_,{w:38,h:4,r:2,tone:"soft"})]}),d("div",{style:{height:1,background:Me.line,marginBottom:10}}),k("div",{style:{flex:1,display:"flex",gap:10,border:`1px solid ${Me.line}`,borderRadius:7,padding:10},children:[k("div",{style:{flex:1.1,display:"flex",flexDirection:"column",justifyContent:"center",gap:5},children:[d(_,{w:"46%",h:3,r:2,tone:"accent"}),d(_,{w:"84%",h:8,r:4,tone:"dark"}),d(_,{w:"56%",h:8,r:4,tone:"accent"}),d(_,{w:"96%",h:3,r:2,tone:"soft",style:{marginTop:2}}),k("div",{style:{display:"flex",gap:5,marginTop:4},children:[d("div",{style:{flex:1,height:13,borderRadius:5,border:`1px solid ${Me.line}`,background:Me.block}}),d(_,{w:34,h:13,r:5,tone:"accent"})]})]}),k("div",{style:{flex:1,background:Me.block,borderRadius:6,padding:8,display:"flex",flexDirection:"column",gap:6},children:[d(_,{w:"52%",h:4,r:2,tone:"accent"}),Array.from({length:3}).map((e,o)=>k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,borderTop:o?`1px solid ${Me.line}`:"none",paddingTop:o?4:0},children:[d(_,{w:34,h:4,r:2,tone:"dark"}),d(_,{w:16,h:3,r:2,tone:"soft"})]},o))]})]})]}),split:k("div",{style:{...G,display:"flex"},children:[d("div",{style:{width:"44%",background:Sp}}),k("div",{style:{flex:1,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[d(_,{w:"44%",h:5,r:3,tone:"accent"}),d(_,{w:"88%",h:8,r:4,tone:"dark"}),d(_,{w:"70%",h:8,r:4,tone:"dark"}),d(_,{w:"94%",h:5,r:2,tone:"soft",style:{marginTop:2}}),d(_,{w:"80%",h:5,r:2,tone:"soft"}),d(_,{w:"40%",h:13,r:6,tone:"accent",style:{marginTop:5}})]})]}),sectionheader:k(rk,{children:[d(_,{w:"18%",h:6,r:3,tone:"accent",style:{position:"absolute",top:15,right:16}}),k("div",{style:{...G,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:10},children:[k("div",{style:{display:"flex",alignItems:"center",gap:9},children:[d(_,{w:16,h:16,r:4,tone:"accent"}),d(_,{w:"20%",h:9,r:4,tone:"dark"})]}),d(_,{w:"62%",h:10,r:5,tone:"dark"}),d(_,{w:"42%",h:6,r:3,tone:"soft"})]})]}),header:d("div",{style:{...G,padding:14,display:"flex",flexDirection:"column",justifyContent:"center"},children:k("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[d(_,{w:"22%",h:12,r:4,tone:"dark"}),k("div",{style:{display:"flex",gap:9,alignItems:"center"},children:[d(_,{w:26,h:6,r:3,tone:"soft"}),d(_,{w:26,h:6,r:3,tone:"soft"}),d(_,{w:26,h:6,r:3,tone:"soft"}),d(_,{w:18,h:14,r:5,tone:"accent"})]})]})}),footer:k("div",{style:{...G,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:12},children:[k("div",{style:{display:"flex",gap:14},children:[k("div",{style:{flex:1.4,display:"flex",flexDirection:"column",gap:6},children:[d(_,{w:"60%",h:9,r:4,tone:"dark"}),d(_,{w:"90%",h:5,r:2,tone:"soft"}),d(_,{w:"70%",h:5,r:2,tone:"soft"})]}),[0,1].map(e=>k("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[d(_,{w:"50%",h:6,r:3,tone:"dark"}),d(_,{w:"80%",h:5,r:2,tone:"soft"}),d(_,{w:"66%",h:5,r:2,tone:"soft"})]},e))]}),d("div",{style:{height:1,background:Me.line}}),k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[d(_,{w:"30%",h:5,r:2,tone:"soft"}),d(_,{w:"16%",h:5,r:2,tone:"soft"})]})]}),grid:d("div",{style:{...G,padding:14,display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr 1fr",gap:9},children:Array.from({length:4}).map((e,o)=>d("div",{style:{borderRadius:6,background:Me.block}},o))}),blanksection:d("div",{style:{...G,padding:14,display:"flex"},children:k("div",{style:{flex:1,border:`1px dashed ${Me.line}`,borderRadius:7,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[d(_,{w:14,h:2,r:1,tone:"tint"}),d(_,{w:2,h:14,r:1,tone:"tint",style:{position:"absolute"}})]})}),spacer:k("div",{style:{...G,padding:14,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[d(_,{w:"100%",h:6,r:3,tone:"soft"}),d(_,{w:16,h:22,r:3,tone:"block",style:{alignSelf:"center"}}),d(_,{w:"100%",h:6,r:3,tone:"soft"})]}),divider:d("div",{style:{...G,padding:14,display:"flex",alignItems:"center"},children:d(_,{w:"100%",h:3,r:2,tone:"dark"})}),customhtml:k("div",{style:{...G,display:"flex",alignItems:"center",justifyContent:"center",gap:8,background:Sp},children:[d(_,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(-14deg)"}}),d(_,{w:16,h:10,r:3,tone:"accent"}),d(_,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(14deg)"}})]}),heading:d("div",{style:{...G,padding:14,display:"flex",alignItems:"center"},children:d(_,{w:"64%",h:13,r:4,tone:"dark"})}),text:k("div",{style:{...G,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[d(_,{w:"100%",h:6,r:3,tone:"soft"}),d(_,{w:"96%",h:6,r:3,tone:"soft"}),d(_,{w:"100%",h:6,r:3,tone:"soft"}),d(_,{w:"58%",h:6,r:3,tone:"soft"})]}),image:d("div",{style:{position:"absolute",inset:14,borderRadius:7,background:Sp}}),button:d("div",{style:{...G,display:"flex",alignItems:"center",justifyContent:"center"},children:d(_,{w:"34%",h:16,r:8,tone:"accent"})}),menu:k("div",{style:{...G,padding:"14px 22%",display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[d(_,{w:"48%",h:7,r:3,tone:"dark"}),d(_,{w:"82%",h:5,r:2,tone:"soft"}),d(_,{w:"66%",h:5,r:2,tone:"soft"}),d(_,{w:"74%",h:5,r:2,tone:"soft"}),d(_,{w:"58%",h:5,r:2,tone:"soft"})]}),emailform:k("div",{style:{...G,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[d(_,{w:"56%",h:8,r:3,tone:"dark"}),k("div",{style:{display:"flex",gap:6},children:[d("div",{style:{flex:1,height:16,borderRadius:5,border:`1px solid ${Me.line}`}}),d(_,{w:"30%",h:16,r:5,tone:"accent"})]})]}),sociallogos:d("div",{style:{...G,display:"flex",alignItems:"center",justifyContent:"center",gap:9},children:[0,1,2,3].map(e=>d(_,{w:16,h:16,r:8,tone:"dark"},e))}),paymentlogos:k("div",{style:{...G,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[d(_,{w:22,h:6,r:2,tone:"soft"}),[0,1,2,3].map(e=>d(_,{w:20,h:13,r:3,tone:"dark"},e))]}),search:d("div",{style:{...G,padding:"0 18%",display:"flex",alignItems:"center"},children:k("div",{style:{flex:1,height:22,borderRadius:11,border:`1px solid ${Me.line}`,display:"flex",alignItems:"center",gap:7,padding:"0 9px"},children:[d("div",{style:{width:9,height:9,borderRadius:5,border:`2px solid ${Me.dark}`}}),d(_,{w:"46%",h:5,r:2,tone:"soft"})]})}),cart:k("div",{style:{...G,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[d("div",{style:{width:22,height:18,borderRadius:"3px 3px 6px 6px",border:`2px solid ${Me.dark}`}}),d("div",{style:{padding:"2px 6px",borderRadius:6,border:`1.5px solid ${Me.dark}`},children:d(_,{w:7,h:7,r:2,tone:"dark"})})]}),countryswitch:k("div",{style:{...G,padding:14,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:5},children:[k("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",border:`1px solid ${Me.line}`},children:[d(_,{w:22,h:6,r:2,tone:"dark"}),d(_,{w:6,h:4,r:1,tone:"soft"})]}),k("div",{style:{width:"46%",display:"flex",flexDirection:"column",gap:4,padding:6,border:`1px solid ${Me.line}`},children:[d(_,{w:"80%",h:4,r:2,tone:"accent"}),d(_,{w:"64%",h:4,r:2,tone:"soft"}),d(_,{w:"72%",h:4,r:2,tone:"soft"})]})]}),legalline:k("div",{style:{...G,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[d("div",{style:{height:1,background:Me.line}}),k("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[d(_,{w:"38%",h:5,r:2,tone:"soft"}),k("div",{style:{display:"flex",gap:5},children:[d(_,{w:14,h:5,r:2,tone:"soft"}),d(_,{w:14,h:5,r:2,tone:"soft"}),d(_,{w:14,h:5,r:2,tone:"soft"})]})]})]}),fallback:d("div",{style:{position:"absolute",inset:14,borderRadius:8,background:Me.block}})};function nk({type:e}){let o=nW[e]??"",t=sW[o]??ak[o]??ak.fallback;return d("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 uc}from"efficient-easel/screen/components/ScreenDocumentContext";import{jsx as hr,jsxs as lW}from"react/jsx-runtime";import iW from"efficient-easel/screen/components/SidePanelHead";import{StylesIcon as cW}from"efficient-easel/rail";import{Tooltip as dW}from"efficient-shell/ui";function sk({tokenRef:e,siteId:o,onClose:t,onNotify:a,tab:r,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:i}){let c=lr();return lW("div",{className:"sf-styles",children:[hr(iW,{icon:hr(cW,{}),title:l("Styles"),context:hr(dW,{content:l("{name} \u2014 renamed in the Console: {place}.",{name:c,place:l("Storefront \u25B8 Sites \u25B8 Settings")}),className:"sf-name-tip",children:hr("span",{className:"sf-name-text",children:c})})}),hr("div",{className:"sf-insp-body es-insp-body sf-scroll",children:hr(Wl,{tokenRef:e,siteId:o,onNotify:a,tab:r,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:i})})]})}import{jsx as We,jsxs as wa,Fragment as IW}from"react/jsx-runtime";import{Fragment as yk,useEffect as Sk,useRef as Op}from"react";import{useTreeDrag as Ck}from"efficient-easel/drag";import{GlobeIcon as gW,ImageIcon as bW,LocationIcon as yW,MapIcon as SW,TextLinesIcon as CW,TrashIcon as wk}from"efficient-easel/icons";import{Subtree as kk,TreeRow as Rn,TreeRowAction as vk,TreeSeam as Tk}from"efficient-easel/tree";import{useEaselStrings as wW}from"efficient-easel/strings";import{createPreviewSelectionContext as fW}from"efficient-easel/draw/client";var{Provider:iue,useSelection:lk}=fW("selectedLocationPartId");function ik(e,o,t){return`${e}::${o}::${t}`}function ck(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 a=Number(o[o.length-2]);if(!Number.isInteger(a)||a<0)return null;let r=o.slice(0,-2).join("::");return r?{nodeId:r,index:a,part:t}:null}import{isSelectionMode as kW}from"efficient-easel/screen/lib/screen-parts";import{useSyncExternalStore as uW}from"react";var pW={level:"groups"},fk=pW,kp=new Set;function _o(e){fk=e;for(let o of kp)o()}function mW(e){return kp.add(e),()=>{kp.delete(e)}}var dk=()=>fk;function uk(){return uW(mW,dk,dk)}function Pi(e,o,t){let a=[];return e.forEach((r,n)=>{let s=o(r),i=a.find(c=>c.key===s);i||(i={key:s,name:t(r),items:[]},a.push(i)),i.items.push({item:r,index:n})}),a}function uue(e){return xW[Ln(e)]}var xW={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"};function Ln(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 An=e=>String(e?.group??""),vp=new WeakMap,hW=0;function Ei(e){let o=vp.get(e);return o||(o=`loc${++hW}`,vp.set(e,o)),o}var pk=(e,o)=>o||e||"Ungrouped",mk={photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
|
|
6
|
-
Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""};function Ca(e){return Pi(e,An,o=>String(o?.groupName??"")).map(o=>({key:o.key,name:o.name,cards:o.items.map(t=>t.item)}))}var Tp=e=>e.flatMap(o=>o.cards),xk=(e,o,t)=>Math.min(Math.max(e,o),t);function Oi(e,o,t){let a=0;for(let r=0;r<e.length;r++)if(An(e[r])===o){if(a===t)return r;a++}return-1}function Pp(e,o,t){let a=Ca(e);if(o<0||o>=a.length)return e;let[r]=a.splice(o,1),n=xk(o<t?t-1:t,0,a.length);return a.splice(n,0,r),Tp(a)}function Ep(e,o,t,a,r){let n=Ca(e),s=n.find(x=>x.key===o),i=n.find(x=>x.key===a);if(!s||!i||t<0||t>=s.cards.length)return e;let[c]=s.cards.splice(t,1),f=o===a?c:{...c,group:i.key,groupName:i.name};f!==c&&vp.set(f,Ei(c));let m=xk(s===i&&t<r?r-1:r,0,i.cards.length);return i.cards.splice(m,0,f),Tp(n)}function hk(e,o){let t=Ca(e),a=t.find(n=>n.key===o),r={...mk,group:o,groupName:a?.name??""};return a?(a.cards.push(r),Tp(t)):[...e,r]}function Ik(e){let o=new Set(Ca(e).map(r=>r.key)),t=o.size+1,a=`Group ${t}`;for(;o.has(a);)a=`Group ${++t}`;return{cards:[...e,{...mk,group:a,groupName:""}],key:a}}function gk(e,o){return e.filter(t=>An(t)!==o)}function bk(e,o,t){let a=Oi(e,o,t);return a<0?e:e.filter((r,n)=>n!==a)}function xue(e,o,t){let a=e.flatMap((s,i)=>An(s)===o?[i]:[]),r=e.slice();a.forEach((s,i)=>{r[s]=t[i]});let n=t.slice(a.length);return[...r.filter(s=>s!==void 0),...n]}function hue(e,o,t){return o.flatMap(a=>{let r=e.filter(n=>An(n)===a);return r.length?r:t(a)})}var Li="ContactLocations",Fi=e=>({parentId:`locations-${e}`,slot:"groups"}),Fp=(e,o)=>({parentId:`locations-${e}`,slot:`cities:${o}`});function Pk(e,o){let{readOnly:t,selected:a}=o,r=wW().tree,n=o.data?.content??[],s=kW(e),i=Op(null);Sk(()=>{let I=a?.type===Li?String(a.props.id):null;I&&I!==i.current&&_o({level:"groups"}),i.current=I},[a?.props.id]);let{selectedLocationPartId:c,setSelectedLocationPartId:f,setSelectHandler:m}=lk(),x=uk(),u=(I,S)=>{let v=n[I];v&&o.replace(I,{type:v.type,props:{...v.props,locations:S}})},h=I=>{let S=n[I]?.props?.locations;return Array.isArray(S)?S:[]},g=Ck({keyOf:I=>`group:${I.si}:${I.index}`,readOnly:!!t,canDrop:(I,S)=>S.parentId===Fi(I.si).parentId&&S.slot==="groups",onDrop:(I,S)=>{u(I.si,Pp(h(I.si),I.index,S.index)),x.level==="city"&&_o({level:"groups"})},onStep:(I,S)=>{u(I.si,Pp(h(I.si),I.index,S<0?I.index-1:I.index+2)),x.level==="city"&&_o({level:"groups"})}}),w=Ck({keyOf:I=>`city:${I.si}:${I.group}:${I.index}`,readOnly:!!t,canDrop:(I,S)=>S.parentId===Fi(I.si).parentId&&S.slot.startsWith("cities:"),onDrop:(I,S)=>{let v=S.slot.slice(7);u(I.si,Ep(h(I.si),I.group,I.index,v,S.index)),_o({level:"group",key:v})},onStep:(I,S)=>{u(I.si,Ep(h(I.si),I.group,I.index,I.group,S<0?I.index-1:I.index+2)),x.level==="city"&&_o({level:"group",key:I.group})}}),T=Op(n);T.current=n;let E=Op(()=>{});Sk(()=>{m(I=>{let S=ck(I);if(!S)return;let v=T.current.findIndex(y=>y.props?.id===S.nodeId);v<0||E.current(v,{level:S.part,index:S.index})})},[m]);let C=(I,S)=>{i.current=n[I]?.props?.id??null,o.select(I),_o(S),e.reveal();let v=n[I]?.props?.id;typeof v=="string"&&(S.level==="city"||S.level==="image"||S.level==="map")?f(ik(v,S.index,S.level)):f(null),typeof v=="string"&&o.scrollTo(v)};return E.current=C,{renderLocationTree:(I,S,{rowClick:v,isCollapsed:y,toggleCollapse:O})=>{let A=h(S),N=Ca(A),W=String(I.props.id),D=s&&a?.props.id===W,P=F=>We(Tk,{...t?{}:g.seam({place:{...Fi(S),index:F}})},`seam:${W}:groups:${F}`),R=(F,M)=>We(Tk,{...t?{}:w.seam({place:{...Fp(S,F),index:M}})},`seam:${W}:cities:${F}:${M}`);return wa(IW,{children:[We(Rn,{icon:We(CW,{size:13}),name:l("Texts"),words:r,onSelect:()=>C(S,{level:"texts"}),selected:D&&x.level==="texts",rowProps:{onClick:v(()=>C(S,{level:"texts"}))}}),N.map((F,M)=>{let U=`${W}::grp::${F.key}`,Y=y(U),me=D&&x.level==="group"&&x.key===F.key,Be=F.name||F.key?pk(F.key,F.name):l("Ungrouped"),ze={...Fp(S,F.key),index:F.cards.length},Ve=w.row({item:{si:S,group:F.key,index:-1},place:ze,into:ze,canDrag:!1},{onClick:v(()=>C(S,{level:"group",key:F.key}))}),Ye=g.row({item:{si:S,index:M},place:{...Fi(S),index:M}},Ve.rowProps);return wa(yk,{children:[M===0&&P(0),We(Rn,{icon:We(gW,{size:13}),name:Be,words:r,onSelect:()=>C(S,{level:"group",key:F.key}),selected:me,draggable:Ye.draggable,dragging:Ye.dragging,drop:Ye.drop??Ve.drop,fold:{open:!Y,label:l("group"),onToggle:()=>O(U)},actions:We(vk,{kind:"delete",label:Ze("Delete {label} group ({n} city)","Delete {label} group ({n} cities)",F.cards.length,{label:Be}),onClick:()=>{u(S,gk(A,F.key)),_o({level:"groups"})},children:We(wk,{size:15})}),rowProps:Ye.rowProps,count:F.cards.length,countLabel:Ze("{n} city","{n} cities",F.cards.length)}),!Y&&wa(kk,{children:[F.cards.map((fe,De)=>{let Fe=Oi(A,F.key,De),so=D&&x.level==="city"&&x.index===Fe,oo=String(fe?.name??"")||l("City"),ho=`${W}::city::${Ei(fe)}`,St=y(ho),{rowProps:Io,...go}=w.row({item:{si:S,group:F.key,index:De},place:{...Fp(S,F.key),index:De}},{onClick:v(()=>C(S,{level:"city",index:Fe}))});return wa(yk,{children:[De===0&&R(F.key,0),We(Rn,{icon:We(yW,{size:13}),name:oo,words:r,onSelect:()=>C(S,{level:"city",index:Fe}),selected:so,...go,fold:{open:!St,label:oo,onToggle:()=>O(ho)},actions:We(vk,{kind:"delete",label:l("Delete {name}",{name:oo}),onClick:()=>{u(S,bk(A,F.key,De)),_o({level:"group",key:F.key})},children:We(wk,{size:15})}),rowProps:Io}),!St&&wa(kk,{children:[We(Rn,{icon:We(bW,{size:13}),name:l("Image"),words:r,onSelect:()=>C(S,{level:"image",index:Fe}),selected:D&&x.level==="image"&&x.index===Fe,rowProps:{onClick:v(()=>C(S,{level:"image",index:Fe}))}}),We(Rn,{icon:We(SW,{size:13}),name:l("Map"),words:r,onSelect:()=>C(S,{level:"map",index:Fe}),selected:D&&x.level==="map"&&x.index===Fe,rowProps:{onClick:v(()=>C(S,{level:"map",index:Fe}))}})]}),R(F.key,De+1)]},Ei(fe))}),wa("button",{type:"button",className:"sf-add-card",onClick:()=>{let fe=hk(A,F.key);u(S,fe);let De=Ca(fe).find(Fe=>Fe.key===F.key);_o(De&&De.cards.length?{level:"city",index:Oi(fe,F.key,De.cards.length-1)}:{level:"group",key:F.key})},children:[We("span",{className:"sf-plus sf-plus--sm",children:"+"}),l("Add city")]})]}),P(M+1)]},U)}),wa("button",{type:"button",className:"sf-add-card",onClick:()=>{let{cards:F,key:M}=Ik(A);u(S,F),C(S,{level:"group",key:M})},children:[We("span",{className:"sf-plus sf-plus--sm",children:"+"}),l("Add group")]})]})},sectionPressed:I=>{I?.type===Li&&_o({level:"groups"})}}}import{useEffect as ZW,useRef as QW}from"react";import{createNode as Mp,newId as Hp}from"efficient-easel/data";import{useEaselApi as JW}from"efficient-easel/easel";import{useScreenDocument as ez}from"efficient-easel/screen/components/ScreenDocumentContext";import{useEaselSession as oz}from"efficient-easel/screen/lib/session-context";import{useEffect as qW,useRef as KW}from"react";import{useEasel as VW}from"efficient-easel/easel";import{ROOT_ZONE as Np}from"efficient-easel/draw";import{readHidable as HW}from"efficient-easel/draw";var Ek=["general","commerce","service"],zt=[{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 Fue(){return Object.fromEntries(zt.map(e=>[e.key,{title:e.title,components:e.sections.map(o=>o.type),...e.defaultExpanded?{defaultExpanded:!0}:{}}]))}var vW={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. It stays in \`scripts/fixtures/section-to-box.baseline.json\` with that reason.
|
|
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."},Lue=["Grid","Spacer"],Aue=Array.from(new Set([...zt.flatMap(e=>e.sections.map(o=>o.type)),...Object.keys(vW)])),Ok=Object.fromEntries(zt.flatMap(e=>e.sections.map(o=>[o.type,o.label]))),TW={Heading:"general",Text:"general",Eyebrow:"general",ImageBlock:"general",LogoBlock:"general",LocationMap:"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"},Ai={...TW,...Object.fromEntries(zt.flatMap(e=>e.sections.map(o=>[o.type,o.set])))};function Fk(e){return Object.prototype.hasOwnProperty.call(Ai,e)?Ai[e]:void 0}function Lp(e){return Object.keys(Ai).filter(o=>Ai[o]===e).sort()}var Rue=Lp("general"),Bue=Lp("commerce"),_ue=Lp("service"),Ap="Flex",Gt="Box",Due=`${Gt}es`;function PW(e){return e==="section"?"Blank section":Gt}function Rp(e,o,t){return e===Ap?PW(o):t}var Ut="content",oe="Flex",EW="Text & media",OW="Layout & structure",Ak=[{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"}],FW=[...Ak,{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:EW})),LW=(zt.find(e=>e.key==="structure")?.sections??[]).map(e=>({type:e.type,label:e.label,group:OW})),Lk=[...FW,...LW],Bp=[...Ak,{type:"HeroGroup",label:Gt}],Hue=Bp.map(e=>e.type),AW=1,RW=Bp.filter(e=>e.type!=="HeroGroup");function BW(e){return e<AW?Bp:RW}var _W={Flex:{slot:Ut,choices:()=>Lk},Grid:{slot:Ut,choices:()=>Lk},HeroGroup:{slot:Ut,choices:BW}};function Rk(e,o=0){let t=_W[e];return t?{slot:t.slot,choices:t.choices(o)}:null}var So=()=>({tag:"h2",_partStyles:{text:{textStyle:"heading-2"}}}),Do=()=>({_partStyles:{text:{textStyle:"body-5",color:"accent",letterSpacing:.3,case:"upper",lineHeight:1.5}}});var DW="inline",NW=[{label:"In this section",value:"inline"},{label:"In its own box",value:"own-box"}];var Je={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"}},Ir="SectionHeader";function Bk(e){return e in Je}function _k(e){return to(NW,DW,e)}var MW=new Set(["Flex"]);function $ue(e){return!!e?.type&&MW.has(e.type)}var Dk={not:{field:"headPlacement",is:"own-box"}},jue={not:Dk};function que(e,o,t){return xu(e,t,Dk)}var mt=oe,xt=Ut;function Bn(e){if(e.theme)return Ge(e.theme);let o=e.site?.themePresets;return o?Ge({selected:e.site?.selectedPreset??0,themes:[...o]}):void 0}function WW(e,o){return o===0?`${e}~box`:`${e}~box-${o+1}`}var Mk=new Set(["id"]),gr={},Ri=[];function ht(e){for(let[o,t]of Object.entries(e)){if(o in gr&&gr[o]!==t)throw new Error(`lib/sections/section-to-box: "${o}" already has a row`);gr[o]=t}}function Bi(e){return gr[e]}function Hk(e){return e in gr&&Ri.includes(e)}function ope(e){let o=Je[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 _p=e=>HW(e),Yo=e=>_p(e).text.trim()!=="";function zW(e){if(e.includes("=="))return e;let o=e.indexOf("/"),t=o===-1?e:e.slice(0,o),a=t.trim();if(!a)return e;let r=t.indexOf(a);return`${t.slice(0,r)}==${a}==${t.slice(r+a.length)}${o===-1?"":e.slice(o)}`}var GW=e=>e==="heading"?So():e==="eyebrow"?Do():{};function UW(e,o,t,a){let r={...e._partStyles?.text??{},...o??{},...t??{}};return(a==="center"||a==="right")&&r.align===void 0&&(r.align=a),Object.keys(r).length?{_partStyles:{text:r}}:{}}function $W(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 Nk(e,o,t,a,r={}){let n={...o};for(let s of e){let[i,c,f]=typeof s=="string"?[s,s,void 0]:s;if(t[i]===void 0)continue;let m=f?f(t[i],t,r):t[i];m===void 0?delete n[c]:n[c]=m,a(i,c,m===void 0)}return n}function jW(e){let o=new Set([...Mk,"headPlacement","_partStyles",...Object.keys(e.drop??{}),...Object.keys(e.reads??{})]),t=r=>{for(let n of r??[])o.add(typeof n=="string"?n:n[0])},a=r=>{for(let n of r)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),a(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 i of s)"kind"in i&&o.add(i.key);break}};for(let r of[e,...e.also??[]])t(r.box),a(r.parts);return o}function Dp(e,o,t={}){let a=e.props,r=o.skip?.(a);if(r!==void 0)return{node:e,nodes:[e],carried:[],dropped:[],siteWrites:[],restyled:[],skipped:r};let n=String(a.id??e.type),s=[],i=[],c=[],f=new Set,m=(v,y)=>{s.push({key:v,home:y}),f.add(v)},x=a._partStyles??{},u=jW(o),h=0,g=(v,y)=>({type:v,props:{...y,id:`${n}~${v}-${++h}`}}),w=(v,y,O,A,N,W,D)=>{if(N){for(let R of v??[]){let F=typeof R=="string"?R:R[0];O[F]!==void 0&&D(F,`nothing \u2014 the ${A} has no parts, so it is not drawn`)}return}let P=typeof y=="function"?y(a,t):y??{};return Nk(v??[],P,O,(R,F,M)=>D(R,M?`nothing \u2014 the old value draws nothing (${A}: no ${F})`:`${W}${A}: ${F}`),t)},T=v=>v.map(y=>{let O={...y.props??{}};for(let[A,N]of Object.entries(y.slots??{}))O[A]=T(N);return g(y.type,O)}),E=(v,y,O)=>{let A=Array.isArray(y[v.key])?y[v.key]:[],N=typeof v.props=="function"?v.props(a,t):v.props??{},W=A.map((F,M)=>{let U=F??{},Y=v.item?.(U,M,a)??{},me=C(Y.reverse?[...v.parts].reverse():v.parts,U,!1,`item ${M+1}: `);return v.flat?Y.props?me.map(Be=>({...Be,props:{...Be.props,...Y.props,id:Be.props.id}})):me:[g(mt,{name:`${v.name} ${M+1}`,...N,...Y.props??{},[xt]:me})]});if(v.groups){let F=v.groups;return O(v.key,A.length?`one Box per item (${A.length}), in a Box per group`:"nothing \u2014 the list is empty"),Pi(A.map(M=>M??{}),F.of,F.of).map((M,U)=>{let Y=M.items.map(fe=>fe.item),me=F.parts?C(F.parts,F.head?.(Y,a)??{},!1,`group ${U+1}: `):[],Be=M.items.map(fe=>W[fe.index]),ze=F.perRow?.(Y.length,a),Ve=Number.isInteger(ze)&&ze>=1?ze:1,Ye=[];if(F.perRow&&Ve<Be.length)for(let fe=0;fe*Ve<Be.length;fe++)Ye.push(Be.slice(fe*Ve,(fe+1)*Ve).flat());return g(mt,{name:`${F.name} ${U+1}`,...F.props??{},[xt]:[...me,g(mt,{name:`${F.itemsName} ${U+1}`,...F.itemsProps?.(Y.length,a)??{},[xt]:Ye.length?Ye.map((fe,De)=>g(mt,{name:`${F.rowName??`${F.itemsName} row`} ${De+1}`,...F.rowProps??{},[xt]:fe})):Be.flat()})]})})}let D=v.perRow?.(a),P=v.perRow?Number.isInteger(D)&&D>=1?D:1:0;if(O(v.key,(A.length?v.flat?`each item's parts (${A.length} items), in order`:`one Box per item (${A.length}), its parts inside`:"nothing \u2014 the list is empty")+(P&&A.length?`, in rows of ${P}`:"")),!P)return W.flat();let R=[];for(let F=0;F*P<W.length;F++)R.push(g(mt,{name:`${v.rowName??`${v.name} row`} ${F+1}`,...v.rowProps??{},[xt]:W.slice(F*P,(F+1)*P).flat()}));return R},C=(v,y,O,A)=>{let N=[],W=(P,R)=>O?m(P,R):void 0,D=P=>O?x[P]:void 0;for(let P of v)if(!(P.when&&!P.when(a,O?void 0:y)))switch(P.kind){case"text":{let R=_p(y[P.key]);if(!R.text.trim()){W(P.key,"nothing \u2014 empty words draw nothing, so no block");break}let F=GW(P.role??"body"),{_partStyles:M,...U}=F,Y=UW(F,P.style,D(P.key),P.props?.align);if(P.was&&O){let me=Y._partStyles?.text??{};c.push({key:P.key,was:P.was,...typeof me.textStyle=="string"?{textStyle:me.textStyle}:{},...$(me.size)!==void 0?{size:$(me.size)}:{},...$(me.sizePhone)!==void 0?{sizePhone:$(me.sizePhone)}:{}})}N.push(g("Text",{text:P.mark==="accentLead"?zW(R.text):R.text,...U,...P.props??{},...Y,...R.hidden?{_hidden:!0}:{}})),W(P.key,`${A}Text block: its words${R.hidden?", hidden":""}`);break}case"button":{let R=_p(y[P.key]);if(!R.text.trim()){W(P.key,"nothing \u2014 no words, no button"),W(P.href,"nothing \u2014 no button to link"),typeof P.variant=="object"&&W(P.variant.key,"nothing \u2014 no button to style");break}let F=typeof y[P.href]=="string"&&y[P.href]?y[P.href]:"#",M={...P.style??{},...D(P.key)??{}};N.push(g("ButtonBlock",{label:R.text,href:F,...typeof P.props=="function"?P.props(y,t):P.props??{},...$W(P.variant,y),...Object.keys(M).length?{_partStyles:{label:M}}:{},...R.hidden?{_hidden:!0}:{}})),W(P.key,`${A}Button block: its words`),W(P.href,`${A}Button block: its link`),typeof P.variant=="object"&&W(P.variant.key,`${A}Button block: its Style`);break}case"image":{let R=y[P.key];if(typeof R!="string"||!R){W(P.key,"nothing \u2014 no picture, no block"),P.alt&&W(P.alt,"nothing \u2014 no picture to describe");break}let F=P.alt&&typeof y[P.alt]=="string"?y[P.alt]:"";N.push(g("ImageBlock",{src:R,alt:F,...P.props??{}})),W(P.key,`${A}Image block: its picture`),P.alt&&W(P.alt,`${A}Image block: its alt text`);break}case"list":{N.push(...E(P,y,W));break}case"group":{let R=C(P.parts,y,O,A),F=w(P.box,P.props,y,`${P.name} Box`,!R.length&&!P.keepEmpty,A,W);F&&N.push(g(mt,{name:P.name,...F,[xt]:R}));break}case"block":{let R=P.parts?C(P.parts,y,O,A):[],F=w(P.box,P.props,y,`${P.type} block`,!!P.parts&&!R.length&&!P.keepEmpty,A,W);F&&N.push(g(P.type,{...F,...P.slot?{[P.slot]:R}:{}}));break}case"core":{let R=P.as??e.type,F={headPlacement:"own-box",...P.props??{}},M=P.keep==="rest"?Object.keys(y).filter(U=>!u.has(U)&&!(U in F)):P.keep;for(let U of M)y[U]!==void 0&&(F[U]=y[U],W(U,`the ${R} block inside the Box`));if(P.keep==="rest"){for(let Y of Object.keys(P.props??{}))y[Y]!==void 0&&!u.has(Y)&&W(Y,`nothing \u2014 the ${R} block inside the Box has the row's own value`);y.headPlacement!==void 0&&W("headPlacement",`the ${R} block inside the Box: own-box`);let U=Object.fromEntries(Object.entries(x).filter(([Y])=>!u.has(Y)));Object.keys(U).length&&(F._partStyles=U)}for(let[U,Y]of Object.entries(P.rename??{}))y[U]!==void 0&&(F[Y]=y[U],W(U,`the ${R} block inside the Box: ${Y}`));for(let[U,Y]of Object.entries(P.slots??{}))F[U]=Y.flatMap(me=>"kind"in me?E(me,y,W):T([me]));N.push(g(R,F));break}}return N},I=(v,y)=>{let O=y===0?"Box":`${v.name} Box`,A=C(v.parts,a,!0,y===0?"":`${O}: `),N=typeof v.boxProps=="function"?v.boxProps(a,t):v.boxProps??{},W=Nk(v.box??[],N,a,(D,P,R)=>m(D,R?`nothing \u2014 the old value draws nothing (${O}: no ${P})`:`${O}: ${P}`),t);return{type:mt,props:{name:v.name,...W,[xt]:A,id:WW(n,y)}}},S=[o,...o.also??[]].map(I);a._partStyles!==void 0&&m("_partStyles","each old part's style moved to its new part");for(let[v,y]of Object.entries(o.reads??{}))a[v]!==void 0&&m(v,y);for(let[v,y]of Object.entries(o.drop??{}))v in a&&(i.push({key:v,why:y}),f.add(v));for(let v of Object.keys(a))Mk.has(v)||f.has(v)||i.push({key:v,why:"not in the row \u2014 not carried"});return{node:S[0],nodes:S,carried:s,dropped:i,siteWrites:[...o.site?.(e,t)??[]],restyled:c}}function Wk(e,o=Ri,t={}){if(!Array.isArray(e))return[];let a=[];return e.forEach((r,n)=>{let s=r&&typeof r.type=="string"&&o.includes(r.type)?gr[r.type]:void 0;if(!s)return;let i=Dp(r,s,t);i.skipped===void 0&&a.push({index:n,node:i.node,nodes:i.nodes})}),a}function zk(e){let o=VW(s=>s.appState.data.content),{theme:t,themeRow:a,themeFromDocument:r}=ee(),n=KW(new Set);qW(()=>{let s=YW({theme:t,themeRow:a,themeFromDocument:r});s&&XW(Wk(o,void 0,s),e,n.current)},[o,e,t,a,r])}function YW(e){return e.themeFromDocument||e.themeRow==="none"?{}:e.themeRow==="read"?{theme:e.theme}:null}function XW(e,o,t){for(let{index:a,nodes:r}of[...e].sort((n,s)=>s.index-n.index)){let n=String(r[0].props.id);t.has(n)||(t.add(n),o.replaceComponent(Np,a,r[0]),r.slice(1).forEach((s,i)=>{o.insertNode(Np,a+1+i,s),o.replaceComponent(Np,a+1+i,s)}))}}import{ROOT_ZONE as br,missingPinnedTypes as tz,pinnedDuplicateIds as Wp}from"efficient-easel/draw";function Gk(e){return!e.docId||e.saveStatus==="saving"?!1:e.seededDocId!==e.docId}function Uk(e,o){let t=e.some(i=>i?.type===xe),a=e[e.length-1],r=!t&&a?.type===ye?a:null,n=e.filter(i=>i?.type===ye&&i!==r).map(i=>String(i.props?.id??"")).filter(Boolean),s=o.hasChromeDoc&&!t&&!r;return{remove:n,seedHeader:!e.some(i=>i?.type===ao),seedFooter:s,seedSiteHeader:s&&!e.some(i=>i?.type===Se)}}async function $k(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!==Se||!e.stillOpen())return!1;let a=e.latest();return a.some(r=>r?.type===Se)?!1:(e.write(xi(a,t)),!0)}function jk(e,o){let{adapter:t,capabilities:a,currentSlug:r,docId:n,data:s,saveStatus:i,siteId:c,tokenRef:f}=ez(),m=oz(),{hasSiteSettings:x,hasPinnedChrome:u}=a;zk(e);let h=!!a.editsPinnedInPlace&&r!==za,g=r===za,w=JW().getState,T=QW(null);ZW(()=>{if(!Gk({docId:n,saveStatus:i,seededDocId:T.current})||(T.current=n,!u))return;let E=w().appState.data,C=E.content,I=s?.content??[],S=(A,N)=>A.some(W=>W?.type===N);if(!x){let A=new Set(Wp(C)),N=A.size?C.filter(D=>!A.has(D.props.id)):C;if(A.size&&e.setDocument({...E,content:N}),g)return;let W=tz(N,I);if(W.includes(ye)){let D=N.length,P=e.insertSection(ye,D);e.replaceComponent(br,D,{type:ye,props:{id:P,blocks:mi()}})}W.includes(ao)&&e.insertNode(br,0,pi());return}if(g){let A=mr(C);if(A!==C&&e.setDocument({...E,content:[...A]}),!A.find(N=>N.type===ye)&&!S(I,ye)&&!S(A,xe)&&!S(I,xe)){let N=(D,P)=>Mp(o,D,P),W={type:ye,props:{blocks:mi()}};e.insertNode(br,A.length,kn(W,N,Hp(xe)))}return}if(h){let A=!!t?.pinnedChrome?.state().docId,N=Uk(C,{hasChromeDoc:A}),W=new Set([...N.remove,...Wp(C.filter(P=>!N.remove.includes(String(P.props.id))))]),D=W.size?C.filter(P=>!W.has(String(P.props.id))):C;if(D.length!==C.length&&e.setDocument({...E,content:D}),N.seedFooter&&!S(I,ye)&&!S(I,xe)){let P=(F,M)=>Mp(o,F,M),R={type:ye,props:{blocks:mi()}};e.insertNode(br,D.length,kn(R,P,Hp(xe)))}if(N.seedHeader&&!S(I,ao)){let P=D[0]?.type===Se?1:0;e.insertNode(br,P,pi())}if(N.seedSiteHeader&&!S(I,Se)&&!S(I,ye)&&!S(I,xe)){let P=n;$k({blocks:vs(m),make:(R,F)=>Mp(o,R,F),id:Hp(Se),siteId:c??null,token:f.current,latest:()=>w().appState.data.content,stillOpen:()=>T.current===P,write:R=>{let F=w().appState.data;e.setDocument({...F,content:[...R]})}})}return}let v=C.filter(A=>A.type!==ye),y=new Set(Wp(v)),O=y.size?v.filter(A=>!y.has(A.props.id)):v;O.length!==C.length&&e.setDocument({...E,content:O}),!S(O,ao)&&!S(I,ao)&&e.insertNode(br,0,pi())},[n,i,s,w,e,x,u,g,h,t,m,c,f])}import{useEffect as Qk,useMemo as cz,useRef as Jk}from"react";import{useEasel as dz}from"efficient-easel/easel";import{useEaselHost as fz}from"efficient-easel/screen/lib/host";import{FIELD_DESCRIPTION_MARKER as az}from"efficient-easel/screen/lib/host";import{isNode as zp}from"efficient-easel/data";function Gp(e,o){let t=e.components[o]?.label;return typeof t=="string"&&t.trim()?t.trim():o}function rz(e){return e.length>3&&e.endsWith("s")?e.slice(0,-1):e}function Up(e,o,t,a){e.forEach((r,n)=>{if(zp(r)){a.push({node:r,list:e,index:n,parent:o,slot:t});for(let[s,i]of Object.entries(r.props))Array.isArray(i)&&i.some(zp)&&Up(i,r,s,a)}})}function nz(e){let o=[];Up(Array.isArray(e.content)?e.content:[],null,"",o);for(let t of Object.values(e.zones??{}))Array.isArray(t)&&Up(t,null,"",o);return o}function Kk(e,o){return nz(e).find(t=>String(t.node.props.id)===o)}function Vk(e,o,t){if(!t)return null;let a=Kk(o,t);if(!a)return null;let r=Gp(e,a.node.type),n=a.parent?`${Gp(e,a.parent.type)} \xB7 ${rz(a.slot)} ${a.index+1}`:r;return{blockId:t,type:a.node.type,label:n,path:""}}var sz=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 lz(e){if(!e||typeof e!="object")return null;let o=e;if(typeof o.type!="string")return null;let t=o.type==="custom"?o[az]:void 0,a={type:t?.type??o.type},r=t?.label??o.label;typeof r=="string"&&(a.label=r);let n=t?.options??o.options;Array.isArray(n)&&(a.options=sz(n));for(let s of["arrayFields","objectFields"]){let i=t?.[s]??o[s];i&&typeof i=="object"&&(a[s]=Yk(i))}return a}function Yk(e){let o={};for(let[t,a]of Object.entries(e??{})){let r=lz(a);r&&(o[t]=r)}return o}function Xk(e){let o={};for(let[t,a]of Object.entries(e.components))a&&(o[t]={label:Gp(e,t),fields:Yk(a.fields)});return o}function iz(e,o){let t=e;for(let a of o?o.split("."):[]){let r=/^([A-Za-z_][A-Za-z0-9_]*)(?:\[(\d+)\])?$/.exec(a);if(!r||!t||typeof t!="object")return null;t=t[r[1]],r[2]!==void 0&&(t=Array.isArray(t)?t[Number(r[2])]:void 0)}return t&&typeof t=="object"&&!Array.isArray(t)?t:null}function $p(e,o){return e.findIndex(t=>zp(t)&&String(t.props.id)===o)}function qk(e,o,t){let a=o||t;if(!a)return e.length;let r=$p(e,a);if(r<0)throw new Error(`there is no top-level block ${a}`);return o?r+1:r}function Zk(e,o,t,a){let r=structuredClone(o),n=Array.isArray(r.content)?r.content:r.content=[];try{t.forEach((s,i)=>{let c=f=>{throw new Error(`change ${i+1}: ${f}`)};switch(s.op){case"set_props":{let f=Kk(r,s.block_id)??c(`there is no block ${s.block_id}`);"id"in s.props&&c("a block's id is never changed");let m=iz(f.node.props,s.path)??c(`there is no ${s.path} in that block`);Object.assign(m,structuredClone(s.props));break}case"insert_block":{let f=e.components[s.type]??c(`there is no block type ${s.type}`),m=f.defaultProps&&typeof f.defaultProps=="object"?f.defaultProps:{},x={type:s.type,props:{...structuredClone(m),...structuredClone(s.props),id:a(s.type)}};n.splice(qk(n,s.after,s.before),0,x);break}case"remove_block":{let f=$p(n,s.block_id);f<0&&c(`there is no top-level block ${s.block_id}`),n.splice(f,1);break}case"move_block":{let f=$p(n,s.block_id);f<0&&c(`there is no top-level block ${s.block_id}`);let[m]=n.splice(f,1);n.splice(qk(n,s.after,s.before),0,m);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:r}}var jp=e=>ie(e.requestId)??null;function ev(){let e=fz(),{appState:o,selectedItem:t,dispatch:a,history:r,config:n}=dz(u=>u),s=n,i=Jk({appState:o,dispatch:a,history:r,blockConfig:s});i.current={appState:o,dispatch:a,history:r,blockConfig:s};let c=Jk(new Map),f=t?.props?.id,m=cz(()=>Vk(s,o.data,f),[s,o.data,f]),x=m?JSON.stringify(m):"";Qk(()=>{e.connected&&e.send("storefront-editor:selection",{selection:m})},[e,x]),Qk(()=>e.subscribe(u=>{let{appState:h,dispatch:g,history:w,blockConfig:T}=i.current;switch(u.type){case"storefront-editor:request-document":{let E=jp(u);if(!E)return;e.send("storefront-editor:document",{requestId:E,document:h.data,blocks:Xk(T)});return}case"storefront-editor:apply-page-edits":{let E=jp(u);if(!E)return;let C=Array.isArray(u.ops)?u.ops:[],I=C.length?Zk(T,h.data,C,S=>`${S}-${crypto.randomUUID()}`):{ok:!1,reason:"no changes"};I.ok&&(g({type:"setData",data:I.document,recordHistory:!0}),c.current.set(E,JSON.stringify(I.document.content??[]))),e.send("storefront-editor:page-edits-result",{requestId:E,applied:I.ok,reason:I.ok?null:I.reason});return}case"storefront-editor:undo-page-edits":{let E=jp(u);if(!E)return;let C=c.current.get(E),I=C!==void 0&&C===JSON.stringify(h.data.content??[]);I&&w.hasPast&&(w.back(),c.current.delete(E)),e.send("storefront-editor:page-edits-result",{requestId:E,applied:I&&w.hasPast,reason:I?null:"the page has changed since"});return}case"storefront-editor:set-right-panel":typeof u.shown=="boolean"&&g({type:"setUi",ui:{rightSideBarVisible:u.shown}});return;default:return}}),[e])}import{useEffect as av,useState as rv}from"react";var _i=new Map;async function uz(e,o){try{return(await He().site.get({siteId:o})).slug?.trim()||null}catch(t){return console.warn("[editor-site-slug] could not resolve the site slug",t),null}}function ov(e,o){let t=_i.get(o);return t||(t=uz(e,o),_i.set(o,t),t.catch(()=>{_i.get(o)===t&&_i.delete(o)})),t}var pz=/^(localhost|(?:[a-z0-9-]+\.)+localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|::1)$/i;function qp(e){return!!e&&pz.test(e)}function tv(e){let{pageSlug:o,siteSlug:t,hostname:a}=e,r=o===hs?"/":`/${encodeURIComponent(o)}`;if(!qp(a))return r;let n=t?.trim();return n?`${r}?site=${encodeURIComponent(n)}`:r}function nv(e){let{pageSlug:o,siteId:t,token:a}=e,[r,n]=rv(null),[s,i]=rv(null),c=ss();av(()=>i(c?new URL(c).hostname:window.location.hostname),[c]),av(()=>{if(!qp(s)||!t||!a){n(null);return}let m=!1;return ov(a,t).then(x=>{m||n(x)}),()=>{m=!0}},[s,t,a]);let f=tv({pageSlug:o,siteSlug:r,hostname:s});return c?`${c}${f}`:f}import{jsx as _n}from"react/jsx-runtime";import{ExternalIcon as sv}from"efficient-easel/icons";import{EaselIconButton as mz}from"efficient-easel/chrome";import{Tooltip as xz,iconButtonClasses as hz}from"efficient-shell/ui";function Iz({pageId:e,liveHref:o,draftLink:t,win:a=window}){let r=a.open("","_blank");if(r)try{r.opener=null}catch{}let n=s=>{r&&!r.closed?r.location.href=s:a.open(s,"_blank","noopener,noreferrer")};return t(e).then(s=>n(s.url??o),()=>n(o))}function lv({liveHref:e,pageId:o,draftLink:t}){return t&&o?_n(mz,{label:l("Preview your saved draft in a new tab"),tip:l("Open your saved draft in a new tab. Visitors don't see it."),onClick:()=>{Iz({pageId:o,liveHref:e,draftLink:t})},children:_n(sv,{})}):_n(xz,{content:l("Preview the live site (opens in a new tab)"),side:"bottom",children:_n("a",{className:hz({className:"es-iconbtn"}),href:e,target:"_blank",rel:"noopener noreferrer","aria-label":l("Preview the live site in a new tab"),children:_n(sv,{})})})}import{createElement as kz,useCallback as vz,useEffect as Pv,useRef as Ev,useState as Tz}from"react";import{ClockIcon as Pz}from"efficient-shell/icons/efficient";import{useScreenDocument as Ez}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSyncExternalStore as gz}from"react";import{useScreenDocument as bz}from"efficient-easel/screen/components/ScreenDocumentContext";var yz=()=>()=>{},iv=()=>null;function Di(e){return gz(e?e.subscribe:yz,e?e.state:iv,e?e.state:iv)}function Ni(){let{adapter:e}=bz();return e?.pinnedChrome}import{useSyncExternalStore as fv}from"react";var Dn=!1,yr=null,Kp=new Set;function Mn(){for(let e of Kp)e()}function uv(e){return Kp.add(e),()=>{Kp.delete(e)}}function pv(){Dn||(Dn=!0,Mn())}function mv(){Dn&&(Dn=!1,Mn())}function cv(){return Dn}function xv(){return fv(uv,cv,cv)}function dv(){return yr}function Mi(){yr&&(yr=null,Mn())}function hv(){return fv(uv,dv,dv)}var Nn=class extends Error{constructor(){super("The editor's last changes could not be saved, so nothing was restored."),this.name="HeldEditsNotSaved"}};async function Iv(e,o,t,{flushSave:a,reload:r}){if(!await a())throw new Nn;let n=await e.restore(o,t);return dI(n.liveState),r(),n}async function gv({access:e,version:o,page:t,...a}){let r=await Iv(e,o.id,t?{page:t.id}:{},a);yr={title:Sz(o,t??null),undo:r.undo},Mn()}async function bv({access:e,...o}){let t=yr?.undo;t&&(await Iv(e,t,{},o),yr=null,Mn())}function yv(e){return e.name?e.name:e.kind==="draft_before_restore"?l("Draft before restore"):l("Version {n}",{n:e.number})}function Sz(e,o){return e.kind==="draft_before_restore"?l("Your drafts from before the restore are back"):o?l("{page} from version {n} is now your draft",{page:o.name,n:e.number}):l("Version {n} is now your draft",{n:e.number})}function Sv(e){let o=e.changes.filter(a=>a.kind==="page").length,t=[...o?[Ze("{n} page","{n} pages",o)]:[],...e.changes.filter(a=>a.kind!=="page").map(a=>a.name)];if(!t.length)return"";try{return new Intl.ListFormat(Pc(),{type:"conjunction"}).format(t)}catch{return t.join(", ")}}function Cv(e){return e.change==="take_down"?l("{name} (taken down)",{name:e.name}):e.name}function wv(e,o=new Date){let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let a=Pc(),r=new Intl.DateTimeFormat(a,{hour:"numeric",minute:"2-digit"}).format(t);if(t.toDateString()===o.toDateString())return l("Today, {time}",{time:r});let n=new Intl.DateTimeFormat(a,{day:"numeric",month:"short",...t.getFullYear()===o.getFullYear()?{}:{year:"numeric"}}).format(t);return l("{day}, {time}",{day:n,time:r})}import{useSyncExternalStore as Cz}from"react";var Sr=new Map,Vp=new Set;function Yp(e,o){if(!(Sr.has(e)&&Sr.get(e)===o)){Sr.set(e,o);for(let t of Vp)t()}}function fme(e,o){Yp(e,o)}function ume(e,o){let t=Sr.get(e);Yp(e,o??(t==="live"?"changed":t))}function pme(e,o){Yp(e,o??"live")}function mme(e){return Sr.get(e)}function wz(e){return Vp.add(e),()=>{Vp.delete(e)}}function kv(e){let o=()=>e?Sr.get(e):void 0;return Cz(wz,o,o)}function vv(e,o){return e==="live"&&o?"changed":e}function Xp({live:e,onPress:o,busy:t=!1,pinnedUnpublished:a=!1,goingLive:r}){let n=e==="live"&&!a,s=e==="changed"?l("Changes not live yet"):e==="never"?l("Never published"):a?l("Header and footer not live yet"):e==="live"?l("Everything is live"):null;return{label:l("Publish"),tooltip:e==="never"?l("Put this page on your site"):l("Put your changes on your site"),status:s,quiet:n?{label:l("Published"),reason:l("Everything is live")}:null,...r&&r.length?{goingLive:r}:{},onPress:o,busy:t}}function Tv(e){return e.map(o=>o.change==="take_down"?l("{name} (taken down)",{name:o.name}):o.name)}function Ov(e){let{docId:o,capabilities:t,hasUnsavedEdits:a,onPublish:r,adapter:n}=Ez(),s=vv(kv(o??null),a),i=Di(Ni()),c=n.siteLiveState;Pv(()=>{if(c)return hd(c),Ps(0),()=>hd(null)},[c]);let f=Es(),[m,x]=Tz(!1),u=Ev(e);u.current=e;let h=Ev(!0);Pv(()=>(h.current=!0,()=>{h.current=!1}),[]);let g=vz(()=>{x(!0),r(u.current).then(()=>{Mi()}).finally(()=>{h.current&&x(!1)})},[r]);if(t.canPublish){if(c){let w=f===void 0?void 0:a||f.state==="changed"?"changed":"live",T=Xp({live:w,onPress:g,busy:m,goingLive:Tv(f?.changes??[])});return n.siteVersions?{...T,menuItems:Oz()}:T}return Xp({live:s,onPress:g,busy:m,pinnedUnpublished:i?.unpublished??!1})}}function Oz(){return[{key:"version-history",label:l("Version history"),icon:kz(Pz),onSelect:pv}]}import{jsx as j,jsxs as po,Fragment as zn}from"react/jsx-runtime";import{useCallback as Fz,useEffect as Lz,useId as Av,useRef as Az,useState as Co}from"react";import{Avatar as Rz,Banner as Hn,Button as ka,ColoredBadge as Zp,Dialog as Rv,Drawer as Bz,DropdownMenu as _z,FormField as Bv,iconButtonClasses as Dz,Inline as Qp,Input as Nz,ListRow as Mz,Select as Hz,SortableList as Wz,Stack as Wn}from"efficient-shell/ui";import{EditIcon as zz,EyeIcon as Fv,MenuIcon as Gz,MoreIcon as Uz,PageIcon as _v,RevertIcon as Lv,StylesIcon as $z}from"efficient-shell/icons/efficient";import{useScreenDocument as Dv}from"efficient-easel/screen/components/ScreenDocumentContext";var jz={page:_v,menu:Gz};function qz(e,o){return e.pages.find(t=>t.id===o)??e.pages[0]??null}function Kz(e,o){let t=window.open("","_blank");if(t)try{t.opener=null}catch{}return e.preview(o).then(({url:a})=>{t&&!t.closed?t.location.href=a:window.open(a,"_blank","noopener,noreferrer")},a=>{throw t?.close(),a})}function Vz({version:e,page:o,waiting:t,busy:a,error:r,onCancel:n,onConfirm:s,onPage:i}){let c=Av();if(!e)return null;let f=e.kind==="draft_before_restore",m=e.number,x=Sv(e),u=f?l("Put your drafts back?"):o?l("Restore {page} from version {n}?",{page:o.name,n:m}):l("Restore version {n}?",{n:m}),h=f?l("Your drafts go back to how they were before the restore."):o?l("{page} goes back to version {n} as a draft. Nothing else on your website changes.",{page:o.name,n:m}):x?l("The whole website goes back to version {n} as a draft: {what}.",{n:m,what:x}):l("The whole website goes back to version {n} as a draft.",{n:m}),g=e.deletedPictures??0;return j(Rv,{open:!0,onClose:()=>{a||n()},size:"sm",title:u,footer:po(zn,{children:[j(ka,{variant:"secondary",onClick:n,disabled:a,children:l("Cancel")}),j(ka,{onClick:s,loading:a,disabled:a,children:l("Restore as draft")})]}),children:po(Wn,{gap:4,children:[o&&e.pages.length>1?j(Bv,{label:l("Page"),htmlFor:c,children:j(Hz,{id:c,value:o.id,options:e.pages.map(w=>({value:w.id,label:w.name})),onChange:i,disabled:a})}):null,j("p",{children:h}),j("p",{children:l("Your live website does not change until you press Publish.")}),g>0?j(Hn,{tone:"warning",children:Ze("{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?j(Hn,{tone:"info",title:l("Your unpublished changes are kept"),children:l("They are saved in Version history as \u201CDraft before restore\u201D, so you can get them back.")}):null,r?j(Hn,{tone:"danger",children:r}):null]})})}function Yz({version:e,onCancel:o,onSave:t}){let a=Av(),[r,n]=Co(null),[s,i]=Co(""),[c,f]=Co(!1),[m,x]=Co(null);if(e!==r&&(n(e),i(e?.name??""),x(null)),!e)return null;let u=s.trim()===e.name,h=async()=>{if(!(c||u)){f(!0),x(null);try{await t(s.trim())}catch{x(l("The name was not saved. Try again."))}finally{f(!1)}}};return j(Rv,{open:!0,onClose:()=>{c||o()},size:"sm",title:l("Name this version"),footer:po(zn,{children:[j(ka,{variant:"secondary",onClick:o,disabled:c,children:l("Cancel")}),j(ka,{onClick:()=>{h()},loading:c,disabled:c||u,children:l("Save")})]}),children:j(Bv,{label:l("Name"),htmlFor:a,hint:l("Named versions are always kept. Leave it empty to take the name away."),error:m??void 0,children:j(Nz,{id:a,value:s,invalid:!!m,onChange:g=>i(g.target.value),onKeyDown:g=>{g.key==="Enter"&&h()}})})})}function Xz({version:e,expanded:o,onToggle:t,onPreview:a,onRestore:r,onRestorePage:n,onName:s}){let i=e.kind==="draft_before_restore",c=!e.live,f=e.changes.length,m=[...i?[]:[{key:"preview",label:l("Preview"),icon:j(Fv,{}),onSelect:a}],...c?[{key:"restore",label:i?l("Put these drafts back"):l("Restore whole website"),icon:j(Lv,{}),onSelect:r}]:[],...c&&!i&&e.pages.length?[{key:"restore-page",label:l("Restore one page only"),icon:j(_v,{}),onSelect:n}]:[],...i?[]:[{type:"divider",key:"divider"},{key:"name",label:l("Name this version"),icon:j(zz,{}),onSelect:s}]];return j(Mz,{title:po("span",{className:"sf-version-title",children:[j("span",{children:yv(e)}),e.live?j(Zp,{tone:"success",size:"xs",children:l("Live")}):null,e.name?j(Zp,{tone:"neutral",size:"xs",children:l("Version {n}",{n:e.number})}):null,i?j(Zp,{tone:"warning",size:"xs",children:l("Not published")}):null]}),expanded:o,onToggle:t,actions:j(_z,{align:"end","aria-label":l("More"),items:m,triggerClassName:Dz({variant:"ghost",size:"sm"}),trigger:j(Uz,{})}),below:po(Wn,{gap:3,children:[po(Qp,{gap:2,align:"center",wrap:!0,className:"sf-version-meta",children:[j(Rz,{name:e.createdBy,size:"xs"}),j("span",{children:e.createdBy}),j("span",{"aria-hidden":"true",children:"\xB7"}),j("span",{children:wv(e.createdAt)}),f?po(zn,{children:[j("span",{"aria-hidden":"true",children:"\xB7"}),j("span",{children:Ze("{n} change","{n} changes",f)})]}):null]}),o?po(Wn,{gap:3,children:[f?j(Wn,{gap:2,children:e.changes.map(x=>{let u=jz[x.kind]??$z;return po(Qp,{gap:2,align:"center",children:[j(u,{size:16}),j("span",{children:Cv(x)})]},`${x.kind}:${x.id}`)})}):null,po(Qp,{gap:2,children:[i?null:j(ka,{variant:"secondary",size:"sm",leftIcon:j(Fv,{}),onClick:a,children:l("Preview")}),c?j(ka,{variant:"secondary",size:"sm",leftIcon:j(Lv,{}),onClick:r,children:l("Restore")}):null]})]}):null]})})}function Zz({open:e,onClose:o,access:t,waiting:a}){let{flushSave:r,reloadFromServer:n,docId:s}=Dv(),[i,c]=Co(null),[f,m]=Co(!1),[x,u]=Co(null),[h,g]=Co(null),[w,T]=Co(!1),[E,C]=Co(null),[I,S]=Co(null),[v,y]=Co(!1),O=Az(0),A=Fz(()=>{let D=++O.current;m(!1),t.list().then(P=>{D===O.current&&c(P)},()=>{D===O.current&&m(!0)})},[t]);Lz(()=>{e&&A()},[e,A]);let N=D=>{y(!1),Kz(t,D.id).catch(()=>y(!0))},W=async()=>{if(!(!h||w)){T(!0),C(null);try{await gv({access:t,version:h.version,page:h.page,flushSave:r,reload:n}),g(null),o()}catch(D){C(D instanceof Nn?l("Your last changes did not save, so nothing was restored. Try again."):l("The version was not restored. Nothing changed. Try again."))}finally{T(!1)}}};return po(zn,{children:[j(Bz,{open:e,onClose:o,side:"right",size:"md",title:l("Version history"),description:po(zn,{children:[l("Every Publish keeps a copy of the whole website: pages, menus and site styles.")," ",l("Products, prices and forms always show as they are now.")]}),footer:j("span",{className:"sf-version-foot",children:l("The newest 30 are kept. Named versions are always kept.")}),children:po(Wn,{gap:3,children:[v?j(Hn,{tone:"danger",onDismiss:()=>y(!1),children:l("The preview did not open. Try again.")}):null,f?j(Hn,{tone:"danger",action:j(ka,{variant:"secondary",size:"sm",onClick:A,children:l("Try again")}),children:l("Version history did not load.")}):i===null?j("p",{className:"sf-version-foot",children:l("Loading versions")}):i.length===0?j("p",{className:"sf-version-foot",children:l("No versions yet. Every Publish from now on keeps one.")}):j(Wz,{"aria-label":l("Versions"),spacing:"comfortable",children:i.map(D=>j(Xz,{version:D,expanded:x===D.id,onToggle:()=>u(P=>P===D.id?null:D.id),onPreview:()=>N(D),onRestore:()=>{C(null),g({version:D,page:null})},onRestorePage:()=>{C(null),g({version:D,page:qz(D,s)})},onName:()=>S(D)},D.id))})]})}),j(Vz,{version:h?.version??null,page:h?.page??null,waiting:a,busy:w,error:E,onCancel:()=>g(null),onConfirm:()=>{W()},onPage:D=>g(P=>P&&{...P,page:P.version.pages.find(R=>R.id===D)??P.page})}),j(Yz,{version:I,onCancel:()=>S(null),onSave:async D=>{await t.name(I.id,D),S(null),A()}})]})}function Nv(){let{adapter:e,hasUnsavedEdits:o}=Dv(),t=e.siteVersions,a=xv(),r=Es();return t?j(Zz,{open:a,onClose:mv,access:t,waiting:o||r?.state==="changed"}):null}import{useEaselSession as JP}from"efficient-easel/screen/lib/session-context";import{buildPaletteSections as _me,categoryLabel as Dme,paletteWithoutPinned as Nme,pinnedSection as Mme}from"efficient-easel/screen/lib/document/palette-sections";var Qz={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 Mv(e){return Qz[e]?.label}var Hv=Ap;import{currentEaselSession as Jz}from"efficient-easel/screen/lib/session";var eG={general:!0,commerce:!0,service:!0};function Jp(e){let o=e?.sets;return o?Object.fromEntries(Ek.map(t=>[t,o.includes(t)])):eG}function Ume(e=Jz()){return Jp(e.blocks)}import{currentEaselSession as J0}from"efficient-easel/screen/lib/session";var em="small",om="dot",oG=[{label:"Small",value:"small"},{label:"Display",value:"display"}],tG=[{label:"Dot \u25CF",value:"dot"},{label:"Cross \u2715",value:"cross"},{label:"Slash /",value:"slash"},{label:"Triangle \u25BC",value:"triangle"},{label:"None",value:"none"}],qme={dot:"\u25CF",cross:"\u2715",slash:"/",triangle:"\u25BC",none:""},aG={small:"font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.25em] max-[800px]:text-[length:var(--size-label,12px)]",display:"font-display font-medium text-[length:var(--size-headingMedium,44px)] uppercase leading-none tracking-[0.005em] max-[800px]:text-[length:var(--size-headingMedium,28px)]"},rG={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 Kme(e){return to(oG,em,e)}function Wv(e){return to(tG,om,e)}function Vme(e){return aG[e]}function Yme(e,o){return rG[e][o]}import{MOTION_EASING as nG,MOTION_TIMING as zv,motionSeconds as Gv}from"efficient-shell/format";var sG="none",lG=[{label:"None",value:"none"},{label:"Scroll",value:"scroll"}];function Jme(e){return to(lG,sG,e)}var exe={field:"loop",is:"scroll"},tm="left",iG=[{label:"Left",value:"left",cell:"left"},{label:"Right",value:"right",cell:"right"},{label:"Up",value:"up",cell:"top"},{label:"Down",value:"down",cell:"bottom"}],cG={left:"storefront-ticker",right:"storefront-ticker-right",up:"storefront-ticker-up",down:"storefront-ticker-down"};function oxe(e){return to(iG,tm,e)}function txe(e){return e==="up"||e==="down"}function axe(e){return Gv("loop","duration",e.loopDuration!=null?e.loopDuration:e.speed)}var rxe=zv.loop.duration.default,dG=zv.loop.delay.default;function nxe(e){return Gv("loop","delay",e.loopDelay)}function sxe(e,o,t=dG){return`${cG[e]} ${o}s ${nG.loop}${t?` ${t}s`:""} infinite`}var Uv=[{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"}],dxe={label:"Scrolling Bar",defaultProps:{items:[],tone:"scrim",borders:!0,size:em,separator:om,scrollDirection:tm}};var $v=()=>[{text:l("Spec label"),tone:"normal"},{text:l("Spec value"),tone:"muted"},{text:l("Spec label"),tone:"normal"},{text:l("Spec value"),tone:"muted"}],pxe={label:"Spec Strip",defaultProps:{cells:[{text:"",tone:"normal"},{text:"",tone:"normal"}],fill:"dark"}};var Hi={direction:"column",justify:"between",gap:14,sectionPaddingLeft:14,sectionPaddingRight:14,sectionPaddingLeftPhone:0,sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},Gn={name:"Year and title",direction:"column",gap:14};var Un={direction:"row",share:"content",align:"center"},$n={top:16,bottom:16,topPhone:12,bottomPhone:12},Wi={wrap:"nowrap",gap:128,separator:"dot",sectionBorder:{top:1,bottom:1}},zi={textStyle:"body-5",letterSpacing:.25,case:"upper",lineHeight:1.5},jv={textStyle:"heading-3",letterSpacing:.005,case:"upper",lineHeight:1},jn={top:16,bottom:16,topPhone:12,bottomPhone:12},Gi={justify:"between",wrap:"wrap",gap:32,separator:"none"},qn={textStyle:"body-5",letterSpacing:.1,case:"upper",lineHeight:1.5};function J(e,o,t,a={}){return{type:e,props:{...o(e),id:t(e),...a}}}function qv(e,o,t){return J(oe,e,o,{...t,sectionPaddingTop:void 0,sectionPaddingBottom:void 0})}var Vv={Manifesto:(e,o)=>({type:oe,props:{...e(oe),id:o(oe),direction:"row",share:"equal",sectionHeightMode:"screen",name:"Brand Text",content:[J(oe,e,o,{direction:"column",justify:"center",blockSpacing:"gap",name:"Text",sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingLeft:40,sectionPaddingRight:40,content:[J("Text",e,o,Do()),J("Text",e,o,So()),J("Text",e,o),J("Stats",e,o)]}),qv(e,o,{direction:"column",name:"Picture",content:[]})]}}),Split:(e,o)=>({type:oe,props:{...e(oe),id:o(oe),direction:"row",share:"equal",sectionHeightMode:"screen",sectionHeightValue:70,name:"Image & Text Split",content:[J(oe,e,o,{direction:"column",justify:"center",blockSpacing:"gap",name:"Text",sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingLeft:60,sectionPaddingRight:60,content:[J("Text",e,o,Do()),J("Text",e,o,So()),J("Text",e,o),J("ButtonBlock",e,o)]}),qv(e,o,{direction:"column",name:"Image",content:[J("ImageBlock",e,o)]})]}}),Subscribe:(e,o)=>({type:oe,props:{...e(oe),id:o(oe),direction:"column",name:"Subscribe",content:[J("Text",e,o,So()),J("Text",e,o),J("Form",e,o)]}}),Ticker:(e,o)=>Kv("Scrolling Bar",Wi,$n,Uv.map(t=>({text:t.text,style:zi,muted:!0})),e,o),SpecStrip:(e,o)=>Kv("Spec Strip",{...Gi,sectionBorder:{top:1}},jn,$v().map(t=>({text:t.text??"",style:qn,muted:t.tone==="muted"})),e,o),TimelineTrack:(e,o)=>{let t=a=>J(oe,e,o,{...Hi,name:"Year",sectionPaddingTop:0,sectionPaddingBottom:0,...a?{upcoming:!0}:{},content:[J(oe,e,o,{...Gn,sectionPaddingTop:0,sectionPaddingBottom:0,content:[J("Text",e,o,Do()),J("Text",e,o,So())]}),J("Text",e,o)]});return{type:oe,props:{...e(oe),id:o(oe),direction:"column",gap:48,name:"Milestone Timeline",content:[J(oe,e,o,{direction:"row",align:"end",justify:"between",share:"content",name:"Heading",content:[J("Text",e,o,Do()),J("Text",e,o,So()),J("Text",e,o)]}),J(oe,e,o,{direction:"row",share:"equal",gap:0,line:!0,name:"Years",content:[t(!1),t(!1),t(!0)]}),J("ButtonBlock",e,o)]}}},Timeline:(e,o)=>{let t=()=>J(oe,e,o,{direction:"row",share:"biggerRight",gap:24,name:"Chapter",content:[J("Text",e,o,Do()),J(oe,e,o,{direction:"column",gap:12,name:"Words",content:[J("Text",e,o,So()),J("Text",e,o)]})]});return{type:oe,props:{...e(oe),id:o(oe),direction:"row",share:"bigRight",gap:48,name:"Story Timeline",content:[J(oe,e,o,{direction:"column",gap:24,name:"Heading",content:[J("Text",e,o,Do()),J("Text",e,o,So()),J("Text",e,o),J("ImageBlock",e,o),J("ButtonBlock",e,o)]}),J(oe,e,o,{direction:"column",gap:48,line:!1,name:"Chapters",content:[t(),t(),t()]})]}}}};function Kv(e,o,t,a,r,n){return J(oe,r,n,{...Un,...o,blockSpacing:"gap",padV2:!0,name:e,sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom,sectionPaddingTopPhone:t.topPhone,sectionPaddingBottomPhone:t.bottomPhone,content:a.map(s=>J("Text",r,n,{text:s.text,...s.muted?{tone:"dim"}:{},_partStyles:{text:s.style}}))})}function Yv(e){return Vv[e]??null}import{phoneKey as IG}from"efficient-easel/draw";var Xv={label:"Button",defaultProps:{label:"",href:"#",variant:"primary",align:"left",contained:!0}};var Zv={label:"Text",defaultProps:{text:"",align:"left",tone:"default",tag:"p",contained:!0}};import{jsx as uG}from"react/jsx-runtime";function Ui(e){return`color-mix(in srgb, var(--overlay-scrim) ${Math.round(Math.min(1,Math.max(0,e))*1e3)/10}%, transparent)`}var Exe="sf-card",Qv={min:0,max:100,step:5,fallback:0,unit:"%"},Oxe=[{label:"Even",value:"even"},{label:"From the bottom",value:"bottom"}],fG="68%",Fxe={desktop:20,phone:20,side:40,sidePhone:24},Lxe="sf-box-sides";function Jv(e){return typeof e=="string"&&e.trim()!==""}function Axe(e,o){let t=typeof e=="number"?e:Number.parseFloat(String(e??""));if(!Number.isFinite(t)||t<=0)return null;let a=(Math.min(Qv.max,Math.max(Qv.min,t))/100).toFixed(2);return o!=="bottom"?{background:Ui(Number(a))}:{background:`linear-gradient(0deg, ${Ui(Number(a))} 0%, ${Ui(0)} ${fG})`}}function Rxe(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"]},[a,r]=t[e]??t.center,[n,s]=o==="column"?[r,a]:[a,r],i={start:"justify-start",center:"justify-center",end:"justify-end"},c={start:"items-start",center:"items-center",end:"items-end"};return`${i[n]} ${c[s]}`}var $i={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}},eT=new Set(Object.keys($i)),tT=new Set(["Flex","Text","Heading"]),pG=new Set(["Divider"]),mG=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),oT=new Set(["ProductGrid"]);function am(e,o,t=!1){let a=e.render;e.render=r=>{if(o?.(r))return a(r);let n=Ds(tg(r,Od,t)),s=a(r),i=fg(r);return n?uG("div",{className:i?`${n.className} ${i}`:n.className,style:n.style,children:s}):s}}var Hxe={name:"sectionPadding",applies:(e,o,t)=>o.isSection(e)&&!mG.has(e)&&!!t&&typeof t.render=="function",panel(e,o,t){eT.has(o)||oT.has(o)||(e.fields={...e.fields,...t.sidesPaddingFields()})},draw(e,o){if(eT.has(o)){let t=e.render,a=$i[o];e.render=r=>{let n=Ns(r,a);return t({...r,padTop:n.top,padBottom:n.bottom})};return}if(oT.has(o)){am(e);return}tT.has(o)||pG.has(o)||am(e,o==="Flex"?t=>Jv(t.bgImage):void 0,!0)}},xG=["Heading","Text"],hG=["LogoBlock"],Wxe={name:"blockPadding",applies:(e,o,t)=>(xG.includes(e)||hG.includes(e))&&!!t&&typeof t.render=="function",panel(e,o,t){e.fields={...e.fields,...t.sidesPaddingFields()}},draw(e,o){tT.has(o)||am(e,void 0,!0)}};var{text:Qxe,tag:Jxe,...gG}=Zv.defaultProps,se=gG,Ce={...se,tone:"dim"},{label:ehe,href:ohe,...bG}=Xv.defaultProps,mo=bG,va={buttonFillOpacity:0,buttonBorder:{width:0},buttonPaddingTop:0,buttonPaddingRight:0,buttonPaddingBottom:0,buttonPaddingLeft:0},aT={justify:"start",align:"stretch",wrap:!1,blockSpacing:"gap",padV2:!0},H={...aT,direction:"column",...$r},Ie={...aT,sectionAccent:0},be=["gridSpan","sectionHeightMode","sectionHeightValue","sectionHeightUnit","sectionHeightModePhone","sectionHeightValuePhone","sectionHeightUnitPhone","sectionCorners","sectionCornerSides","sectionBorder","sectionBorderPhone","sectionAccent","stickTop","stickTopDistance","stickTopPhone","stickTopDistancePhone","anchor","sectionAnimation","_hidden",...Object.values(he).flatMap(e=>[e,IG(e)]),"widthFit","widthFitPhone","width","widthPhone","minWidth","minWidthPhone","maxWidth","maxWidthPhone"],Cr="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",ve={sectionSurface:"read by nothing in src/ (searched 2026-10-24): a retired theme key that draws nothing today, so dropping it changes nothing",widthMode:Cr,fullWidth:Cr,pageWidth:Cr,backgroundWidth:Cr,contentWidth:Cr,contentMax:Cr},Oe=Object.fromEntries(["sectionPaddingLeft","sectionPaddingRight","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 Ae(e,o){let t=$(e.sectionPaddingTop)??0,a=$(e.sectionPaddingBottom)??0;return{sectionPaddingTop:t+o.top,sectionPaddingBottom:a+o.bottom,sectionPaddingTopPhone:($(e.sectionPaddingTopPhone)??t)+o.topPhone,sectionPaddingBottomPhone:($(e.sectionPaddingBottomPhone)??a)+o.bottomPhone}}var eo=e=>["sectionPaddingTop","sectionPaddingBottom","sectionPaddingTopPhone","sectionPaddingBottomPhone"].map(o=>[o,o,(t,a)=>Ae(a,typeof e=="function"?e(a):e)[o]]);function ro(e,o){let t=Ns(e,$i[o]);return{sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom}}var $t=e=>[["padTop","sectionPaddingTop",(o,t)=>ro(t,e).sectionPaddingTop],["padBottom","sectionPaddingBottom",(o,t)=>ro(t,e).sectionPaddingBottom],["sectionPaddingTop","sectionPaddingTop",(o,t)=>ro(t,e).sectionPaddingTop],["sectionPaddingBottom","sectionPaddingBottom",(o,t)=>ro(t,e).sectionPaddingBottom]],yG={kind:"heading-case-upper",styles:["heading-1","heading-2","heading-3"]},It=e=>o=>Yo(o.props[e])?[yG]:[],Te=(e,o)=>({kind:"text",key:e,role:"eyebrow",props:se,...o?{style:o}:{}}),rT=e=>e.background!=="transparent",wr=(e,o)=>typeof e=="number"&&Number.isInteger(e)&&e>=0?e:Bn(o)?.selected??0,Ta=(e,o)=>{let t=Bn(o)?.themes;return t&&rT(e)?ex(t,wr(e.sectionAccent,o)):-1},ji=(e,o,t)=>{let a=Ta(o,t);return a>=0?a:e},rm=(e,o)=>{let t=Ta(e,o);return t>=0?{sectionAccent:t}:{}},qi=(e,o)=>rT(e.props)&&Ta(e.props,o)<0?[{kind:"band-preset",page:wr(e.props.sectionAccent,o)}]:[];import{jsx as kr,Fragment as GG,jsxs as fm}from"react/jsx-runtime";import{jsx as cm,jsxs as MG}from"react/jsx-runtime";import{jsx as SG}from"react/jsx-runtime";function nT(){return SG("span",{className:"block h-px w-[30px] bg-current"})}import{jsx as we,jsxs as im}from"react/jsx-runtime";import{Fragment as mT}from"react";import{parseHexColor as OG}from"efficient-shell/format";import{Fragment as PG,jsx as sm}from"react/jsx-runtime";import{Fragment as sT,jsx as Kn,jsxs as CG}from"react/jsx-runtime";import{createContext as nm,useContext as Vn,useId as wG,useMemo as kG}from"react";var Ki=nm(null),lT=nm(null),iT=nm(null);function che({needles:e,styles:o,type:t,children:a}){let r=wG(),n=JSON.stringify([r,e,o,t]),s=kG(()=>ky(e,o,r,i=>si(t,i),i=>wy(t,i)),[n]);return s?CG(sT,{children:[Kn("style",{href:`${vG}${r}-${TG(Wf(s))}`,precedence:cT,dangerouslySetInnerHTML:{__html:Wf(s).replace(/</g,"\\3c ")}}),Kn(Ki.Provider,{value:s,children:a})]}):Kn(sT,{children:a})}var cT="sf-part-styles",vG=`${cT}-`;function TG(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 dT(e){let o=Vn(Ki),t=Vn(lT),a=vy(o,e);return a&&a.stamp!==t?a:null}function dhe(e){return Hf(Vn(Ki),e)}function fT({stamp:e,children:o}){return Kn(lT.Provider,{value:e,children:o})}function fhe({children:e}){let o=Vn(Ki);return Kn(iT.Provider,{value:o,children:e})}function uhe(e){return Hf(Vn(iT),e)}function Yn({value:e,children:o}){let t=dT(e);return t?sm(fT,{stamp:t.stamp,children:sm("span",{[Rf]:t.stamp,...t.textStyle?{[er]:t.textStyle}:{},children:o})}):sm(PG,{children:o})}import{jsx as lm,Fragment as EG}from"react/jsx-runtime";function uT({className:e=""}){return lm("sup",{className:`text-accent tracking-normal text-[length:min(1em,max(0.75em,11px))] ${e}`,children:"\xAE"})}function Vi(e){if(!e.includes("\xAE"))return e;let o=e.split("\xAE"),t=[];return o.forEach((a,r)=>{a&&t.push(a),r<o.length-1&&t.push(lm(uT,{},`r${r}`))}),lm(EG,{children:t})}var bhe=uT;function Pa(e,o=!1){let t=NG(o),a=ad(e);if(a.length===1){let[n]=a,s=td(n),i=s?_G(s,n.children):n.children;return we(Yn,{value:e,children:Yi(i,t)})}let r=[];return a.forEach((n,s)=>{if(n.bullet){r.push(we("span",{"data-sf-bullet":"",className:FG,children:Yi(n.children,t)},s));return}if(n.number!=null){r.push(im("span",{"data-sf-number":n.number,className:LG,children:[im("span",{className:AG,children:[n.number,"."]}),Yi(n.children,t)]},s));return}s>0&&!RG(a[s-1])&&r.push(we("br",{},`br${s}`)),r.push(we(mT,{children:Yi(n.children,t)},s))}),we(Yn,{value:e,children:r})}var FG="relative block pl-6 before:absolute before:left-1.5 before:font-bold before:text-accent before:content-['\xB7']",LG="relative block pl-[2em]",AG="absolute left-0 w-[1.6em] text-right tabular-nums";function RG(e){return e.bullet||e.number!=null}var BG="text-accent underline underline-offset-[0.18em]";function _G(e,o){let[t,...a]=o;return t?.kind==="text"?[{kind:"text",text:`${e}${t.text}`},...a]:[{kind:"text",text:e},...o]}function DG(e){if(e)return OG(e)===e.toLowerCase()?e:Object.hasOwn(nt,e)?nt[e]:void 0}function Yi(e,o){let t=[],a=!1;return e.forEach((r,n)=>{if(r.kind==="text"){t.push(we("span",{children:Vi(r.text)},n)),a=!0;return}a||t.push(we("span",{},`e${n}`)),t.push(xT(r,n,o)),a=!1}),a||t.push(we("span",{},"end")),t}function pT(e,o){return e.length===1&&e[0].kind==="text"?Vi(e[0].text):e.map((t,a)=>t.kind==="text"?we(mT,{children:Vi(t.text)},a):xT(t,a,o))}function NG(e){return e?"font-normal italic text-accent":"not-italic text-accent"}function Ehe(e){return we(Yn,{value:e,children:we("span",{children:e})})}function xT(e,o,t){if(e.kind==="link")return we("a",{href:e.href,className:BG,children:pT(e.children,t)},o);let a=pT(e.children,t),r=Mh[e.kind];if(r)return we("span",{[Hh]:r,children:a},o);switch(e.kind){case"underline":return we("u",{children:a},o);case"sup":return we("sup",{children:a},o);case"sub":return we("sub",{children:a},o);case"color":{let n=DG(e.color);return n?we("span",{style:{color:n},children:a},o):we("span",{children:a},o)}case"accent":case"highlight":return we("em",{className:t,children:a},o);case"bold":return we("strong",{className:"font-semibold",children:a},o);case"italic":return we("em",{className:"italic",children:a},o);case"strike":return we("s",{className:"line-through",children:a},o);default:return we("span",{children:a},o)}}function hT(e,o=!0){let t=e.split(`
|
|
21
|
-
`);return we(Yn,{value:e,children:t.map((a,r)=>im("span",{children:[Pa(a,o),r<t.length-1?we("br",{}):null]},r))})}function IT(e){return e.split(/\n\s*\n/).map(o=>o.trim()).filter(Boolean)}var dm={labelUpTo800:"max-[800px]:text-[length:var(--size-label,12px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,14px)]"};function HG(e,o){return`font-mono text-[length:var(--size-label,${e}px)] uppercase tracking-[0.3em] text-accent`}var WG=`inline-block w-fit bg-accent px-3.5 py-1.5 font-mono ${dm.labelSmall} font-semibold uppercase tracking-[0.16em] text-bg`,zG=`flex items-center gap-3.5 font-mono ${dm.labelLarge} uppercase tracking-[0.3em] opacity-80 ${dm.labelUpTo800} max-[800px]:tracking-[0.25em]`;function gT({text:e,look:o="plain",size:t=13,scaled:a=!0,className:r="",classNameAfter:n=""}){if(o==="line")return MG("div",{className:[r,zG,n].filter(Boolean).join(" "),children:[cm(nT,{}),cm("span",{children:Pa(e)})]});let s=o==="filled"?WG:HG(t,a);return cm("span",{className:[r,s,n].filter(Boolean).join(" "),children:Pa(e)})}var Xi={headingMediumUpTo800:"max-[800px]:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",headingMedium:"text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))]",body:"text-[length:var(--size-body,15px)]",headingSmall:"text-[length:var(--size-headingSmall,20px)]"},UG="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))]",$G="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 um(e){return Math.min(4,Math.max(2,e??3))}function Mhe({look:e,eyebrow:o,title:t,items:a,columns:r,omitHead:n=!1,editing:s=!1}={}){let i=um(r),c=(a??[]).filter(m=>s||(m.title??"").trim()||(m.body??"").trim()),f=!!(o??"").trim()||!!(t??"").trim();return!s&&!f&&c.length===0?null:kr("section",{className:"relative z-[2] bg-surface",children:fm("div",{className:n?$G:UG,children:[n?null:fm(GG,{children:[(o??"").trim()&&kr(gT,{text:o??"",look:e,className:"mb-4 block"}),(t??"").trim()&&kr("h2",{className:`mb-9 font-heading2 ${Xi.headingMedium} font-medium uppercase leading-none tracking-[-0.02em] text-fg max-[800px]:mb-7 ${Xi.headingMediumUpTo800}`,children:hT(t??"",!1)})]}),c.length>0&&kr("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(i)},children:c.map((m,x)=>{let u=(m.title??"").trim()||(s?l("Card title"):""),h=(m.body??"").trim()||(s?l("A short line about this card."):"");return fm("div",{className:"bg-bg p-8 max-[800px]:p-7",children:[u&&kr("div",{className:`mb-3 font-heading3 ${Xi.headingSmall} font-medium uppercase tracking-[0.02em] text-fg`,children:Pa(u)}),h&&kr("p",{className:`${Xi.body} leading-[1.6] text-fg-dim`,children:Pa(h)})]},x)})})]})})}var Whe={eyebrow:"Label",title:"Section *heading.*"},bT={label:"Cards",defaultProps:{eyebrow:"",title:"",items:[],columns:3}};var Uhe={eyebrow:"Highlight",title:"Key *features.*"},$he=()=>[{label:l("Feature label one")},{label:l("Feature label two")},{label:l("Feature label three")},{label:l("Feature label four")},{label:l("Feature label five")},{label:l("Feature label six")}],yT={label:"Key Features",defaultProps:{eyebrow:"",title:"",items:[],columns:3}};function mm(e){if(e==="ProductGrid")return"shelf";let o=Je[e]?.headStyle;return o==="editorial"||o==="simple"||o==="essay"?o:"standard"}var wT={standard:64,editorial:60,simple:36,essay:28,shelf:20},jG={SectionHeader:"accent",FAQ:"accent",FitmentFinder:"accent",FitmentTable:"accent",SpecTable:"accent",RelatedProducts:"accent",Collections:"accentNum"};function qG(e){if(e==="SectionHeader")return{num:"num",title:"title",description:"description",link:!0};let o=Je[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 kT(e,o,t){let a=`editorial:${e}|${o}|${t}`,r=Zi.get(a);if(r)return r;let n=PT({num:e,title:o,description:t,link:!1});return Zi.set(a,n),n}var xm={top:0,right:0,bottom:1,left:0},Xe=(e,o,t,a)=>({sizeToken:{step:e,px:o,...a?{stepPhone:a}:{},...t?{pxPhone:t}:{}}}),vT=(e,o,t,a)=>({sizeToken:{step:e,px:a,fluid:{minPx:o,vw:t}}}),Qi=(e,o,t={})=>Te(e,{...Xe("label",o),...t}),Ji=(e,o)=>({kind:"text",key:e,role:"heading",props:se,style:{textStyle:"heading-2",...o}}),hm=(e,o,t,a)=>({kind:"text",key:e,props:{...Ce,align:"right",maxWidth:t},style:{textStyle:"body-5",fontRole:"heading",...Xe("body",o),...a}}),TT={...mo,align:"right",...va,icon:"arrow-right",iconPosition:"after"},pm=e=>({kind:"button",key:"linkText",href:"linkHref",variant:"ghost",props:TT,style:{textStyle:"body-5",color:"labels",...Xe("label",e),letterSpacing:.2,case:"upper"}}),ST=(e,o,t)=>{let a=t.role==="heading"?{tag:"h2"}:{};return{kind:"block",type:"Text",when:r=>r[e]===void 0,props:{...se,...a,...t.props,text:o,_partStyles:{text:{...t.role==="eyebrow"?KG(Do()):{},...t.style}}}}},KG=e=>e._partStyles.text??{};function VG(e,o){let t=jG[e],a=t==="accent",r=Qi(o.num,14,{color:a?"accent":"labels"}),n=t==="accentNum"&&r.kind==="text"?{...r,mark:"accentLead"}:r,s=Ji(o.title,a?{...vT("headingMedium",36,5,64),case:"upper",lineHeight:.95,letterSpacing:-.025}:{...Xe("headingMedium",56,36),case:"none",lineHeight:1,letterSpacing:-.03}),i=e==="Collections";return{kind:"group",name:"Header",props:{...H,direction:"row",align:"end",justify:"between",gap:40,share:"content",sectionBorder:xm,sectionPaddingBottom:24,sectionPaddingBottomPhone:20},parts:[{kind:"group",name:"Title",props:{...H,direction:"row",align:"end",gap:40,share:"content"},parts:[{kind:"group",name:"Number",props:{...H,align:"start",gap:12},parts:[{kind:"image",key:"logoSrc",alt:"logoAlt",props:{aspect:"auto",contained:!1}},n,...i?[ST(o.num,"==01== / Collections",n)]:[]]},s,...i?[ST(o.title,`Three ranges,
|
|
22
|
-
one standard.`,s)]:[]]},{kind:"group",name:"Words",props:{...H,align:"end",gap:12},parts:[...o.description?[hm(o.description,14,340,{lineHeight:1.5})]:[],...o.link?[pm(14)]:[],...i?[{kind:"block",type:"ButtonBlock",props:{...TT,variant:"ghost",label:"View all",href:"/wheels",_partStyles:{label:pm(14).style}}}]:[]]}]}}function PT(e){return{kind:"group",name:"Header",props:{...H,direction:"row",align:"end",justify:"between",gap:40,share:"content",sectionBorder:xm,sectionPaddingBottom:32},parts:[{kind:"group",name:"Title",props:{...H,direction:"row",align:"end",gap:40,share:"content"},parts:[{kind:"group",name:"Number",props:{...H,sectionPaddingBottom:8},parts:[Qi(e.num,13)]},Ji(e.title,{...vT("headingMedium",40,5.5,80),case:"upper",weight:500,lineHeight:1,letterSpacing:-.03})]},{kind:"group",name:"Words",props:{...H,align:"end",sectionPaddingBottom:4},parts:e.description?[hm(e.description,14,360,{lineHeight:1.5})]:[]}]}}function CT(e,o){return{kind:"group",name:"Header",props:{...H,gap:16},parts:[Qi(e.num,13),Ji(e.title,o)]}}var ET=[["para",{textStyle:"body-5",...Xe("label",13),case:"upper",weight:400,lineHeight:1,letterSpacing:.22}],["sm",{...Xe("headingMedium",40,28),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["md",{...Xe("headingMedium",48,32),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["lg",{...Xe("headingMedium",56,36),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["xl",{...Xe("headingMedium",64,40),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}]],YG=e=>ET.some(([o])=>o===e.titleSize)?e.titleSize:"lg";function XG(e){return{kind:"group",name:"Header",props:{...H,direction:"row",align:"center",justify:"between",gap:16,share:"content",stickTop:!0,sectionBorder:xm,sectionPaddingTop:12,sectionPaddingBottom:12},parts:[{kind:"group",name:"Title",props:{...H,direction:"row",align:"end",gap:24,share:"content"},parts:[Qi(e.num,13,{color:"labels",letterSpacing:.22,lineHeight:1}),...ET.map(([o,t])=>({...Ji(e.title,t),when:a=>YG(a)===o}))]},{kind:"group",name:"Words",props:{...H,direction:"row",align:"center",justify:"end",gap:20,share:"content"},parts:[...e.description?[hm(e.description,13,340,{lineHeight:1.4})]:[],...e.link?[pm(13)]:[]]}]}}var Zi=new Map;function Xo(e){let o=Zi.get(e);if(o)return o;let t=qG(e),a=mm(e),r=a==="editorial"?PT(t):a==="simple"?CT(t,{...Xe("headingMedium",44,32),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}):a==="essay"?CT(t,{...Xe("headingMedium",38,28,"headingSmall"),case:"upper",lineHeight:1,letterSpacing:-.02}):a==="shelf"?XG(t):VG(e,t);return Zi.set(e,r),r}var gt=(e,o,t,a)=>({sectionBorder:{top:e,right:o,bottom:t,left:a}}),DT=(e,o=e)=>({sectionPaddingTop:e,sectionPaddingRight:e,sectionPaddingBottom:e,sectionPaddingLeft:e,sectionPaddingTopPhone:o,sectionPaddingRightPhone:o,sectionPaddingBottomPhone:o,sectionPaddingLeftPhone:o}),NT=e=>o=>um($(o.columns)??$(e.columns)),Im=e=>({kind:"group",name:"Grid",props:{...H,gap:0,...gt(1,0,0,1)},parts:[e]}),ec={...H,direction:"row",gap:0,share:"equal"},MT="its head sits in a Box of its own above it (own-box): the row draws the head inline",HT=e=>_k(e.headPlacement)==="own-box",WT="inline is the head the row draws; an own-box node is skipped (`skip`)",ZG=e=>({kind:"group",name:"Heading",props:e,parts:[Te("eyebrow"),{kind:"text",key:"title",role:"heading",props:se,style:{textStyle:"heading-3"},was:{size:44}}]}),OT={top:72,bottom:72,topPhone:72,bottomPhone:72},QG={...H,gap:12,...DT(32,28),...gt(0,1,1,0)},JG={name:"Cards",boxProps:e=>({...Ie,direction:"column",gap:36,...Ae(e,OT)}),box:[...be,...eo(OT)],skip:e=>HT(e)?MT: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:[Xo("Cards"),Im({kind:"list",key:"items",name:"Card",perRow:NT(bT.defaultProps),rowName:"Row",rowProps:ec,props:QG,parts:[{kind:"text",key:"title",props:se,style:{textStyle:"heading-3"},was:{size:20}},{kind:"text",key:"body",props:Ce,style:{textStyle:"body-1"},was:{size:15}}]})],site:It("title"),drop:{...ve,...Oe,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:WT,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)"}},FT={top:76,bottom:76,topPhone:76,bottomPhone:76},eU={...H,direction:"row",align:"center",gap:16,sectionPaddingTop:32,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,...gt(0,1,1,0)},LT={textStyle:"body-1",color:"text"},AT=(e,o)=>typeof o?.href=="string"&&o.href.trim()!=="",oU={name:"Key Features",boxProps:e=>({...Ie,direction:"column",gap:44,...gt(1,0,1,0),...Ae(e,FT)}),box:[...be,...eo(FT)],parts:[ZG({...H,direction:"row",align:"end",gap:20,wrap:!0,share:"content"}),Im({kind:"list",key:"items",name:"Feature",perRow:NT(yT.defaultProps),rowName:"Row",rowProps:ec,props:eU,parts:[{kind:"button",key:"label",href:"href",when:AT,variant:"ghost",props:{...mo,...va,icon:"none"},style:LT},{kind:"text",key:"label",when:(e,o)=>!AT(e,o),props:se,style:LT,was:{size:17}}]})],site:It("title"),drop:{...ve,...Oe,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)"}},RT={top:120,bottom:120,topPhone:80,bottomPhone:80},tU={...H,gap:16,sectionPaddingTop:36,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,...gt(0,1,1,0)},BT={...H,direction:"row",justify:"between",gap:12,share:"content"},aU={name:"Recurring Columns",boxProps:e=>({...Ie,direction:"column",gap:60,...gt(0,0,1,0),...Ae(e,RT)}),box:[...be,...eo(RT)],skip:e=>HT(e)?MT:void 0,parts:[Xo("Series"),Im({kind:"list",key:"cards",name:"Column",perRow:()=>4,rowName:"Row",rowProps:ec,props:tU,parts:[{kind:"group",name:"Top",props:BT,parts:[Te("num"),Te("since")]},{kind:"text",key:"title",props:{...se,tag:"h3"},style:{textStyle:"heading-3"},was:{size:28}},{kind:"text",key:"desc",props:Ce,style:{textStyle:"body-5"},was:{size:14}},{kind:"group",name:"Footer",props:{...BT,justify:"start",align:"center",gap:8,sectionPaddingTop:16,...gt(1,0,0,0)},parts:[Te("entries",{color:"text"}),Te("entriesLabel",{color:"labels"})]}]})],site:It("headTitle"),drop:{...ve,...Oe,headPlacement:WT,viewLabel:"the ONE label every card's footer repeated: a block per card would be N copies of one words. Empty on every live node (3 of 3 store it hidden or empty, JJ's export, 2026-10-24)",background:"needs a Box background ink (the section stores a theme token, `var(--section-bg)` on 3 of 3 live nodes): the Box's theme draws its background"}},_T={top:60,bottom:60,topPhone:40,bottomPhone:40},rU={...H,gap:8,...DT(24),...gt(1,1,1,1)},nU={name:"Document Detail Cards",boxProps:e=>({...Ie,direction:"column",gap:40,...gt(0,0,1,0),...Ae(e,_T)}),box:[...be,...eo(_T)],parts:[{kind:"list",key:"cards",name:"Card",perRow:()=>3,rowName:"Row",rowProps:{...ec,gap:40},props:rU,parts:[Te("label"),{kind:"text",key:"value",props:se,style:{textStyle:"heading-3"},was:{size:20}},{kind:"text",key:"desc",props:Ce,style:{textStyle:"body-5",italic:!0},was:{size:14}}]}],drop:{...ve,...Oe}},zT={Cards:JG,KeyFeatures:oU,Series:aU,DocMetaCards:nU};import{phoneKey as sU}from"efficient-easel/draw";var gm=e=>typeof e=="string"?e.trim():"";function GT(e){let o=`${gm(e.prefix)}${gm(e.value)}`,t=gm(e.suffix);return e.emphasizeAll===!0?o?`==_${o}_==`:"":`${o}${t?`==_${t}_==`:""}`}var bm={kind:"block",type:"Text",props:{...se,_partStyles:{text:{textStyle:"heading-1",case:"none",lineHeight:.9,letterSpacing:-.04}}},box:[["value","text",(e,o)=>GT(o)]],when:(e,o)=>o!==void 0&&typeof o.value=="string"&>(o)!==""},UT=e=>Yo(e?.supSuffix),lU={name:"Stats with Text",boxProps:e=>({...Ie,direction:"column",gap:60,sectionBorder:{bottom:1},...ro(e,"StatsParagraph")}),box:[...be,...$t("StatsParagraph")],parts:[Xo("StatsParagraph"),{kind:"group",name:"Stats",props:{...H,gap:0},parts:[{kind:"list",key:"stats",name:"Stat",perRow:()=>4,rowName:"Stats row",rowProps:{...H,direction:"row",gap:0,share:"equal"},props:{...H,justify:"between",gap:12,sectionPaddingTop:48,sectionPaddingBottom:48,sectionPaddingLeft:32,sectionPaddingRight:32,sectionBorder:{top:1,right:1,bottom:1,left:1}},parts:[{...bm,when:(e,o)=>!UT(o)&&bm.when(e,o)},{kind:"group",name:"Figure",props:{...H,direction:"row",align:"start",gap:32,share:"content",phoneRow:2,[sU("share")]:"content"},when:(e,o)=>UT(o),parts:[bm,{kind:"text",key:"supSuffix",props:se,style:{textStyle:"body-5",color:"accent",letterSpacing:.18,lineHeight:1,padding:18}}]},{kind:"group",name:"Words",props:{...H,gap:4},parts:[{kind:"text",key:"label",props:se,style:{textStyle:"body-1",letterSpacing:-.01},was:{size:16}},Te("sub",{color:"labels",letterSpacing:.24})]}]}]}],drop:{...ve,...Oe,background:"needs a Box fill: the old band painted this colour (the theme's section band, `var(--section-bg)`, or none) behind the head and round the cards, and a Box paints only its theme's page colour",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"}},$T={StatsParagraph:lU};var qT={contained:!1},KT=(e,o)=>({logos:[{kind:"list",key:e,name:"Logo",flat:!0,parts:[{kind:"block",type:"LogoBlock",box:["src",[o,"alt"]],when:(t,a)=>Yo(a?.src)||Yo(a?.[o])}]}]}),ym=e=>{let o=$(e.bandPadding)??40;return{top:o,bottom:o,topPhone:o,bottomPhone:o}},iU={...Te("heading",{color:"labels",letterSpacing:.2}),props:{...se,align:"center"}},cU={name:"Logos",boxProps:e=>({...Ie,direction:"column",gap:32,...Ae(e,ym(e))}),box:[...be,...eo(ym),["bandPadding","sectionPaddingTop",(e,o)=>Ae(o,ym(o)).sectionPaddingTop]],parts:[iU,{kind:"core",keep:["columns","logoHeight","grayscale"],rename:{logosPerRow:"columns"},props:qT,slots:KT("items","alt")}],drop:{...ve,...Oe,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"}},jT={top:24,bottom:24,topPhone:24,bottomPhone:24},dU={name:"Payment Methods",boxProps:e=>({...Ie,direction:"column",...Ae(e,jT)}),box:[...be,...eo(jT)],skip:e=>Yo(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:{...H,align:"center",gap:20,sectionBorder:{top:1,bottom:1},sectionPaddingTop:32,sectionPaddingBottom:32},parts:[{...Te("heading",{color:"labels"}),props:{...se,align:"center"}},{kind:"core",keep:[],as:"Logos",props:{...qT,look:"cards",grayscale:!1},slots:KT("badges","label")},{kind:"group",name:"Reassurance",props:{...H,direction:"row",wrap:!0,justify:"center",gap:24},parts:[{kind:"list",key:"assurances",name:"Line",flat:!0,parts:[{kind:"text",key:"text",props:{...se,align:"center"},style:{size:13,color:"labels"}}]}]}]}],drop:{...ve,...Oe,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`)"}},VT={Logos:cU,PaymentBadges:dU};var YT=e=>e.size==="display",XT=(e,o)=>({kind:"list",key:"items",name:"Item",flat:!0,when:o,parts:[{kind:"text",key:"text",props:Ce,style:e}]}),fU={name:"Scrolling Bar",boxProps:e=>({...Ie,...Un,...Wi,...Ae(e,$n)}),box:[["separator","separator",e=>Wv(e)],["borders","sectionBorder",e=>e===!1?void 0:{top:1,bottom:1}],...be,["tone","sectionAccent",(e,o)=>o.sectionAccent!==void 0?$(o.sectionAccent):e==="plain"?-1:void 0],...eo($n)],parts:[XT(zi,e=>!YT(e)),XT(jv,YT)],drop:{...ve,...Oe,scrollDirection:"carried to Loop \u203A Direction (the Box's Animation tab) by this row once the Box Loop build PR (Panels And Popups director) is merged; the row stays OFF until then",speed:"carried to Loop \u203A Duration (the Box's Animation tab) by this row once the Box Loop build PR (Panels And Popups director) is merged; the row stays OFF until then",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"}},ZT=e=>e?.tone==="muted",uU={name:"Spec Strip",boxProps:e=>({...Ie,...Un,...Gi,...e.fill==="none"?{sectionBorder:{top:1}}:{},...Ae(e,jn)}),box:[...be,...eo(jn)],parts:[{kind:"list",key:"cells",name:"Cell",flat:!0,parts:[{kind:"text",key:"text",props:se,style:qn,when:(e,o)=>!ZT(o)},{kind:"text",key:"text",props:Ce,style:qn,when:(e,o)=>ZT(o)}]}],drop:{...ve,...Oe,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"}},QT={Ticker:fU,SpecStrip:uU};var pU="jetbrains-mono",e0="space-grotesk",bt=(e,o,t={})=>({textStyle:"body-5",font:pU,size:e,sizePhone:e,letterSpacing:o,lineHeight:1.5,weight:400,...t}),tc=(e,o,t,a)=>({font:e0,size:e,sizePhone:o,case:"upper",weight:500,letterSpacing:t,lineHeight:a}),Xn=(e,o,t,a={})=>({textStyle:"body-1",font:e0,size:e,sizePhone:o,weight:400,case:"none",lineHeight:t,...a}),no=(e,o,t={})=>({kind:"text",key:e,props:se,style:o,...t}),JT=(e,o)=>o?.future===!0,o0=(e,o)=>{let t=Bn(o)?.themes[wr(e.sectionAccent,o)]?.line;return t?{buttonBorder:{width:1,color:t}}:{}},oc=e=>IT(typeof e?.body=="string"?e.body:""),mU={name:"Milestone Timeline",boxProps:(e,o)=>{let t=Ta(e,o);return{...Ie,direction:"column",gap:60,sectionBorder:{bottom:1},...ro(e,"TimelineTrack"),...t>=0?{sectionAccent:t}:{}}},box:[...be.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",ji],...$t("TimelineTrack")],parts:[{kind:"group",name:"Heading",props:{...H,direction:"row",align:"end",justify:"between",gap:40,share:"content",sectionPaddingBottom:32,sectionBorder:{bottom:1}},parts:[{kind:"group",name:"Title",props:{...H,direction:"row",align:"end",gap:40,share:"content"},parts:[no("eyebrow",bt(13,.3,{case:"upper",color:"accent",padding:8}),{role:"eyebrow"}),no("title",{textStyle:"heading-2",...tc(79,40,-.03,1)},{role:"heading"})]},no("intro",Xn(14,14,1.5),{props:{...Ce,align:"right",maxWidth:360}})]},{kind:"group",name:"Years",props:{...H,direction:"row",share:"equal",gap:0,line:!0},parts:[{kind:"list",key:"entries",name:"Year",props:{...H,...Hi},item:e=>({props:e.future===!0?{upcoming:!0}:{}}),parts:[{kind:"group",name:Gn.name,props:{...H,...Gn},parts:[no("date",bt(13,.22,{color:"accent"}),{when:(e,o)=>!JT(e,o)}),no("date",bt(13,.22,{color:"labels"}),{when:JT}),no("title",{textStyle:"heading-3",...tc(20,20,-.02,1.1)},{role:"heading"})]},no("blurb",Xn(13,13,1.55),{props:Ce})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...mo,align:"right",...o0(e,o)}),style:bt(13,.3,{case:"upper"})}],site:(e,o)=>[...It("title")(e),...qi(e,o)],drop:{...ve,...Oe,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"}},xU={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=>({...Ie,direction:"row",share:"twoThree",gap:80,align:"start",...ro(e,"Timeline")}),box:[...be,...$t("Timeline")],parts:[{kind:"group",name:"Heading",props:{...H,gap:24},parts:[no("eyebrow",bt(12,.3,{case:"upper",color:"accent"}),{role:"eyebrow"}),no("title",{textStyle:"heading-2",...tc(72,40,-.03,.94)},{role:"heading"}),no("intro",Xn(14,14,1.6),{props:{...Ce,maxWidth:360}}),{kind:"group",name:"Picture",keepEmpty:!0,box:[["imageSrc","bgImage"]],props:{...H,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:{...H,direction:"row",justify:"between",align:"center",gap:12,share:"content",phoneRow:2},parts:[no("imageCaption",bt(11,.24,{case:"upper",color:"text"})),no("imageMeta",bt(11,.24,{case:"upper",color:"accent"}),{props:{...se,align:"right"}})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...mo,...o0(e,o)}),style:bt(13,.3,{case:"upper"})}]},{kind:"group",name:"Chapters",props:{...H,gap:48,line:!1},parts:[{kind:"list",key:"entries",name:"Chapter",props:{...H,direction:"row",gap:24,share:"biggerRight",align:"start"},parts:[no("date",bt(13,.24,{color:"accent"})),{kind:"group",name:"Words",props:{...H,gap:14},parts:[no("title",{textStyle:"heading-3",...tc(24,20,-.02,1.5)},{role:"heading"}),{kind:"block",type:"Text",props:{...se,_partStyles:{text:Xn(17,16,1.6)}},box:[["body","text",(e,o)=>oc(o)[0]??""]],when:(e,o)=>oc(o).length>0},{kind:"block",type:"Text",props:{...Ce,_partStyles:{text:Xn(17,16,1.6,{paragraphSpacing:14})}},box:[["body","text",(e,o)=>oc(o).slice(1).join(`
|
|
23
|
-
|
|
24
|
-
`)]],when:(e,o)=>oc(o).length>1}]}]}]}],site:It("title"),drop:{...ve,...Oe,layout:"Split is the only display converted (see skip); the Box's own arrangement replaces it"}},t0={TimelineTrack:mU,Timeline:xU};var hU="dataSource";var IU="dataRows",gU=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,bU=Symbol.for("efficient.block-sources");function ac(){let e=globalThis;return e[bU]??={sources:new Map,revision:0}}function yU(e){if(typeof e.key!="string"||!gU.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=>a0(o)).filter(o=>o!==null)}:{}}}function kIe(e){let o=e.map(yU),t=ac();for(let a of o)t.sources.set(a.key,a);o.length&&(t.revision+=1)}function vIe(e){let o=[...ac().sources.values()];return e===void 0?o:o.filter(t=>t.blocks.includes(e))}function SU(e){return ac().sources.get(e)??null}function TIe(){return ac().revision}function rc(e){let o=e?.[hU];return typeof o=="string"?o.trim():""}function a0(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let o={};for(let[t,a]of Object.entries(e)){let r=ie(a);r&&(o[t]=r)}return Object.keys(o).length?o:null}function CU(e){let o=e?.[IU];return Array.isArray(o)?o.map(a0).filter(t=>t!==null):null}function PIe(e,o,t=[]){let a=CU(e);if(a!==null&&(a.length||!o))return{rows:a,sample:!1};if(!o)return{rows:[],sample:!1};let r=SU(rc(e))?.sample;return{rows:r?.length?r:t,sample:!0}}import{slugify as RIe}from"efficient-shell/format";import{rootIsDark as wU}from"efficient-shell/format";function FIe(e="auto"){return e==="light"?!0:e==="dark"?!1:!wU({whenUnset:!0})}function r0(e,o){return Number.isFinite(e)&&Number.isFinite(o)&&!(e===0&&o===0)}function Sm(e){let o=Number.parseFloat(e??"");return Number.isFinite(o)?o:0}var kU=["tall","square","wide"],vU="tall";function n0(e){return kU.includes(String(e??""))?String(e):vU}var _Ie={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"},DIe=[{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
|
|
25
|
-
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
|
|
26
|
-
Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""}],TU=/^https?:\/\//i;function NIe(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:Sm(e.lat),lng:Sm(e.lng),mapsUrl:TU.test(o)?o:""}}function Cm(e){let o=String(e??"").split(" \xB7 ");return{state:(o[0]??"").trim(),country:(o[1]??"").trim()}}var MIe="other",HIe={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 s0(e){let o=String(e??"").replace(/[^+\d]/g,"");return o?`tel:${o}`:void 0}var xo=e=>typeof e=="string"?e:e==null?"":String(e),vm=e=>Array.isArray(e.locations)?e.locations.map(o=>o??{}):[],vr=e=>xo(e.group),h0=e=>`loc-${e}`,I0=e=>xo(e.state).trim()||Cm(xo(e.region)).state,g0=e=>xo(e.country).trim()||Cm(xo(e.region)).country,l0=e=>[I0(e),g0(e)].filter(Boolean).join(" \xB7 "),PU=e=>vm(e).some(o=>xo(o.photo).trim()!==""),EU=e=>vm(e).some(o=>r0(Number(o.lat),Number(o.lng))),OU=(e,o)=>vm(e).filter(t=>vr(t)===vr(o)).length,FU=(e,o)=>OU(e,o)===1?"wide":n0(e.imageShape),wm={top:100,bottom:100,topPhone:60,bottomPhone:60},i0=48,No=(e,o={})=>({textStyle:"body-5",...Xe("label",e),case:"upper",...o}),Tm={top:1,right:1,bottom:1,left:1},km=(e,o)=>({sectionPaddingTop:e,sectionPaddingBottom:e,sectionPaddingLeft:o,sectionPaddingRight:o,sectionPaddingTopPhone:e,sectionPaddingBottomPhone:e,sectionPaddingLeftPhone:o,sectionPaddingRightPhone:o}),Pm={...H,direction:"row",share:"equal",gap:0},b0=(e,o={})=>t=>t>Ln(t)?{...H,gap:0}:{...Pm,...o,...e&&t>1?{phoneRow:e}:{}},LU=250,c0={wrap:!0},AU={kind:"group",name:"Gallery",props:{...H,gap:20},when:PU,parts:[{kind:"group",name:"Gallery head",props:{...H,direction:"row",justify:"between",align:"end",gap:24,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:16},parts:[Te("galleryKicker",No(12,{color:"accent",letterSpacing:.3})),{kind:"text",key:"galleryHint",props:{...Ce,align:"right"},style:No(11,{letterSpacing:.22})}]},{kind:"group",name:"Groups",props:{...H,gap:24},parts:[{kind:"list",key:"locations",name:"City picture",props:{...H,darken:85,darkenStyle:"bottom",placement:"bottom-left",sectionBorder:Tm,...km(12,12)},item:(e,o,t)=>({props:{...xo(e.photo).trim()?{bgImage:xo(e.photo)}:{},link:`#${h0(o)}`,boxShape:FU(t,e)}}),parts:[{kind:"text",key:"name",props:se,style:No(11,{letterSpacing:.22,color:"text"})}],groups:{of:vr,name:"Group",props:{...H,gap:10},head:e=>({label:vr(e[0]??{})}),parts:[Te("label",No(11,{color:"accent",letterSpacing:.3}))],itemsName:"Cities",itemsProps:b0(2),perRow:Ln,rowName:"Row",rowProps:{...Pm,phoneRow:2}}}]}]},RU={kind:"group",name:"Words",props:{...H,gap:12,...km(28,28),sectionBorder:{bottom:1},sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},parts:[{kind:"group",name:"Name row",props:{...H,direction:"row",justify:"between",align:"start",gap:14,share:"content",wrap:!0},parts:[{kind:"group",name:"Name",props:{...H,gap:6},parts:[{kind:"text",key:"name",role:"heading",props:se,style:{textStyle:"heading-3",...Xe("headingSmall",30),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}},{kind:"block",type:"Text",props:{...se,_partStyles:{text:No(12,{color:"accent",letterSpacing:.24})}},box:["region","state","country"].map(e=>[e,"text",(o,t)=>l0(t)]),when:(e,o)=>l0(o??{})!==""}]},{kind:"group",name:"Time zone",props:{...H,sectionBorder:Tm,...km(6,10)},parts:[{kind:"text",key:"timezone",props:Ce,style:No(12,{letterSpacing:.22})}]}]},{kind:"text",key:"address",props:Ce,style:{textStyle:"body-5",fontRole:"heading",...Xe("body",14),lineHeight:1.5}},{kind:"block",type:"ButtonBlock",props:{...mo,...va,variant:"ghost",arrow:!1,_partStyles:{label:No(13,{letterSpacing:.18,color:"text"})}},box:[["phone","label"],["phone","href",e=>s0(xo(e))??"#"]],when:(e,o)=>xo(o?.phone).trim()!==""},{kind:"text",key:"hours",props:Ce,style:No(12,{letterSpacing:.18,lineHeight:1.7})}]},BU={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)=>I0(t)]),...["region","country"].map(e=>[e,"country",(o,t)=>g0(t)])]},_U={kind:"list",key:"locations",name:"City",props:(e,o)=>({...H,gap:0,sectionBorder:Tm,jumpHighlight:!0,minWidth:LU,sectionAccent:Ta(e,o)>=0?wr(e.sectionAccent,o):-1}),item:(e,o)=>({props:{anchor:h0(o)}}),parts:[RU,BU],groups:{of:vr,name:"Group",props:{...H,gap:20},head:e=>{let o=e[0]??{};return{key:vr(o),groupName:xo(o.groupName),count:`${e.length} location${e.length===1?"":"s"}`}},parts:[{kind:"group",name:"Group head",props:{...H,direction:"row",justify:"between",align:"end",gap:16,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:16},when:(e,o)=>xo(o?.key).trim()!=="",parts:[Te("key",No(13,{color:"accent",letterSpacing:.3})),{kind:"text",key:"groupName",role:"heading",props:se,style:{textStyle:"heading-3",...Xe("headingSmall",24),case:"upper",weight:500,letterSpacing:-.01}},{kind:"text",key:"count",props:Ce,style:No(12,{letterSpacing:.22})}]}],itemsName:"Cities",itemsProps:b0(void 0,c0),perRow:Ln,rowName:"Row",rowProps:{...Pm,...c0}}},d0=No(10,{letterSpacing:.25}),DU={kind:"block",type:mt,props:{...H,name:"Credit",direction:"row",justify:"end",align:"center",gap:6,share:"content",wrap:!0},when:EU,slot:xt,keepEmpty:!0,parts:[{kind:"block",type:"Text",props:{...Ce,text:"Location coordinates \xA9",_partStyles:{text:d0}}},{kind:"block",type:"ButtonBlock",props:{...mo,...va,variant:"ghost",arrow:!1,label:"OpenStreetMap contributors",href:"https://www.openstreetmap.org/copyright",_partStyles:{label:{...d0,color:"labels"}}}}]},f0=(e,o)=>Object.fromEntries(o.filter(t=>e[t]!==void 0).map(t=>[t,e[t]])),u0=["sectionPaddingTop","sectionPaddingTopPhone"],p0=["sectionPaddingBottom","sectionPaddingBottomPhone"],m0=e=>e.map(o=>[o,o,(t,a)=>Ae(a,wm)[o]]),x0=["sectionAccent","sectionAccent",ji],NU=["gridSpan","_hidden"],MU={name:"City pictures",skip:e=>rc(e)?`fed by the data source "${rc(e)}": its cities are read as the page is served, not stored on the node`:void 0,boxProps:(e,o)=>({...Ie,direction:"column",gap:40,anchor:"studios",...f0(Ae(e,wm),u0),sectionPaddingBottom:i0,sectionPaddingBottomPhone:i0,...rm(e,o)}),box:[...be.filter(e=>e!=="sectionAccent"&&e!=="anchor"),x0,["anchor","anchor",e=>xo(e).trim()?e:"studios"],...m0(u0)],parts:[kT("sectionNumber","heading","tagline"),AU],also:[{name:"City maps",boxProps:(e,o)=>({...Ie,direction:"column",gap:40,sectionBorder:{bottom:1},sectionPaddingTop:0,sectionPaddingTopPhone:0,...f0(Ae(e,wm),p0),...rm(e,o)}),box:[...NU,x0,...m0(p0)],parts:[_U,DU]}],reads:{mapTheme:"City maps Box: each Map block's Map theme",imageShape:"City pictures Box: each picture Box's Box shape"},site:qi,drop:{...ve,...Oe,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)"}},y0={ContactLocations:MU};var HU=["Collections","Events","FAQ","FitmentFinder","FitmentTable","Footprint","GalleryB","LongRead","ProcessSteps","ProductGrid","RelatedProducts","SpecTable"],jt=(e,o)=>()=>({top:e,topPhone:o}),S0=e=>o=>{let t=ro(o,e).sectionPaddingTop;return{top:t,topPhone:t}},WU={Collections:jt(120,70),Events:jt(120,70),FAQ:jt(120,70),GalleryB:jt(120,70),FitmentTable:jt(120,80),SpecTable:jt(120,80),LongRead:jt(120,80),FitmentFinder:e=>e.layout==="bar"?{top:32,topPhone:20}:{top:80,topPhone:60},RelatedProducts:jt(0,0),Footprint:S0("Footprint"),ProcessSteps:S0("ProcessSteps"),ProductGrid:e=>({top:$(e.padTop)??120,topPhone:0})};function zU(e){let o=Je[e],t=WU[e];if(!o||!t)throw new Error(`section-to-box-rows-head: "${e}" has no head row or no head room`);let a=o.padKey,r=Xo(e),n=o.headRows.filter(s=>![o.num,o.title,o.description,"linkText","linkHref"].includes(s));return{name:Ok[e]??e,boxProps:s=>{let i=t(s);return{...Ie,direction:"column",gap:wT[mm(e)],sectionPaddingTop:i.top,sectionPaddingTopPhone:i.topPhone}},box:[...be,...a?[[a,"sectionPaddingTop",(s,i)=>t(i).top]]:[]],parts:[r,{kind:"core",keep:"rest",...a?{props:{[a]:0}}:{}}],...n.length?{drop:Object.fromEntries(n.map(s=>[s,"a head setting: the Header Box's Text parts draw it (lib/document/blocks/general/section-head-looks)"]))}:{}}}var C0=Object.fromEntries(HU.map(e=>[e,zU(e)]));var w0={top:72,bottom:72,topPhone:72,bottomPhone:72},GU={name:"Editorial Text",boxProps:e=>({...Ie,direction:"column",gap:28,sectionBorder:{top:1},...Ae(e,w0)}),box:[["topBorder","sectionBorder",e=>e===!1?void 0:{top:1}],...be,...eo(w0)],parts:[Xo("Prose"),{kind:"text",key:"body",props:{...Ce,maxWidth:680},style:{textStyle:"body-1",lineHeight:1.7,paragraphSpacing:18},was:{size:16}}],drop:{...ve,...Oe,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 (JJ's export, 2026-10-24)"}},UU={buttonPaddingTop:20,buttonPaddingBottom:20,buttonPaddingLeft:28,buttonPaddingRight:28},k0=(e,o)=>({kind:"list",key:"buttons",name:"Button",flat:!0,when:e,parts:[{kind:"button",key:"label",href:"href",variant:{key:"variant",map:{primary:"primary",outline:"ghost"},fallback:"ghost"},style:{letterSpacing:.3},props:{...mo,...UU,...o}}]}),Em=e=>Yo(e.title),$U={name:"Call-to-Action Heading",boxProps:e=>({...Ie,direction:"row",align:"center",justify:Em(e)?"between":"end",gap:60,share:"content",sectionBorder:{bottom:1},...ro(e,"TitleWithButtons")}),box:[...be,...$t("TitleWithButtons")],parts:[{kind:"group",name:"Title",props:H,parts:[{kind:"text",key:"title",role:"heading",props:{...se,maxWidth:1e3},style:{textStyle:"heading-1",lineHeight:.94,letterSpacing:-.035}}]},{kind:"group",name:"Buttons",props:{...H,gap:14},parts:[k0(Em,{widthFit:"fill",iconPosition:"end"}),k0(e=>!Em(e),{})]}],site:It("title"),drop:{...ve,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 (JJ's 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"}},v0={top:40,bottom:64,topPhone:24,bottomPhone:36},jU={name:"Section Header",boxProps:e=>({...Ie,direction:"column",gap:0,...Ae(e,v0)}),box:[...be,...eo(v0)],parts:[Xo("SectionHeader")],drop:{...ve,...Oe,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 (JJ's 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"}},qU={name:"Lead Text",boxProps:e=>({...Ie,direction:"column",gap:40,sectionBorder:{bottom:1},...ro(e,"ParagraphsA")}),box:[...be,...$t("ParagraphsA")],parts:[{kind:"group",name:"Numbers",props:{...H,direction:"row",justify:"between",gap:60,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:40},parts:[Te("eyebrow",{color:"labels",letterSpacing:.24}),{kind:"group",name:"Stats",props:{...H,align:"end"},parts:[{kind:"list",key:"stats",name:"Stat",props:{...H,direction:"row",share:"content",justify:"end",gap:8},parts:[Te("value",{color:"text",letterSpacing:.18,lineHeight:1.8}),Te("label",{color:"labels",letterSpacing:.18,lineHeight:1.8})]}]}]},{kind:"group",name:"Words",props:{...H,direction:"row",align:"end",gap:60,share:"bigLeft"},parts:[{kind:"text",key:"lead",props:{...se,maxWidth:780},style:{textStyle:"body-1",lineHeight:1.45,letterSpacing:-.005,paragraphSpacing:0},was:{size:22,sizePhone:20}},{kind:"group",name:"Founders",props:{...H,gap:8},parts:[{kind:"group",name:"Note",props:{...H,gap:6},parts:[{kind:"text",key:"foundersHeading",props:se,style:{textStyle:"body-1",weight:500,letterSpacing:-.01,lineHeight:1.7},was:{size:18,sizePhone:16}},{kind:"text",key:"foundersBody",props:Ce,style:{textStyle:"body-5",lineHeight:1.7},was:{size:14,sizePhone:12}}]},Te("attribution",{letterSpacing:.24,lineHeight:1.7})]}]}],drop:{...ve}},T0={top:24,bottom:24,topPhone:24,bottomPhone:24},KU={name:"Banner",boxProps:e=>({...Ie,direction:"column",gap:0,...Ae(e,T0)}),box:[...be,"contained",...eo(T0)],parts:[{kind:"group",name:"Card",keepEmpty:!0,props:{...H,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:{...H,gap:20},parts:[Te("eyebrow"),{kind:"text",key:"title",role:"heading",props:{...se,maxWidth:680},style:{weight:500,lineHeight:1.05,letterSpacing:-.03,case:"none"}},{kind:"text",key:"body",props:{...Ce,maxWidth:680},style:{textStyle:"body-1",lineHeight:1.6},was:{size:16}}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:mo}]}],drop:{...ve,...Oe}},Om={Prose:GU,TitleWithButtons:$U,SectionHeader:jU,ParagraphsA:qU,Banner:KU};function mge(){ht(Om),ht($T),ht(VT),ht(zT),ht(QT),ht(t0),ht(y0),ht(C0)}import{isNodeList as VU}from"efficient-easel/data";var YU=Object.keys(Om);function P0(e,o,t){let a={};for(let r of Object.keys(o(e.type)))a[r]=void 0;for(let[r,n]of Object.entries(e.props))a[r]=VU(n)?n.map(s=>P0(s,o,t)):n;return a.id=t(e.type),{type:e.type,props:a}}function Fm(e,o,t=0){return(a,r)=>{let{nodes:n}=Dp({type:e,props:{...a(e),id:r(e)}},o);return P0(n[t],a,r)}}function XU(e){return YU.includes(e)}function ZU(e){if(!XU(e)||!Hk(e))return null;let o=Bi(e);return o?Fm(e,o):null}function nc(e){return Yv(e)??ZU(e)}import{blockTypesIn as X0}from"efficient-easel/screen/lib/document/block-types-in";import{jsx as Qn,jsxs as P$}from"react/jsx-runtime";import{createContext as E$,useContext as O$}from"react";import{jsx as Tr,jsxs as M0}from"react/jsx-runtime";import{useEffect as Am,useRef as m$,useState as Zn}from"react";import{jsx as E0}from"react/jsx-runtime";import{createContext as QU,lazy as vge,Suspense as Tge,useContext as JU}from"react";var e$={Link:mx,Image:px},o$=QU(e$);function O0(){return JU(o$)}function Pge(e){let{Link:o}=O0();return E0(o,{...e})}function F0(e){let{Image:o}=O0();return E0(o,{...e})}import{jsx as L0,Fragment as t$,jsxs as a$}from"react/jsx-runtime";import{useEffect as r$,useRef as A0,useState as n$}from"react";var s$="#t=0.001",l$=2;function i$(e,o){if(e.readyState<l$||!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 R0({src:e,objectPosition:o="50% 50%",onError:t}){let a=A0(null),r=A0(null),[n,s]=n$(!1);return r$(()=>{let i=a.current,c=r.current;if(n||!i||!c)return;let f=()=>{i$(i,c)&&s(!0)};return f(),i.addEventListener("loadeddata",f),i.addEventListener("seeked",f),()=>{i.removeEventListener("loadeddata",f),i.removeEventListener("seeked",f)}},[n]),a$(t$,{children:[L0("canvas",{ref:r,"aria-hidden":!0,className:"absolute inset-0 z-[3] h-full w-full object-cover",style:{objectPosition:o,visibility:n?"visible":"hidden"}}),!n&&L0("video",{ref:a,src:`${e}${s$}`,muted:!0,playsInline:!0,preload:"auto",className:"hidden",onError:t})]})}import{imageCopyUrl as _0,imageSrcSet as c$}from"efficient-shell/image-copies";var B0;function Lm(){return B0===void 0?{}:{host:B0}}var Rge="(max-width: 800px) 100vw, min(100vw, 1600px)";function D0(e,{fallbackWidth:o=1280,maxWidth:t}={}){let a=c$(e,{...Lm(),...t===void 0?{}:{maxWidth:t}});return a?{src:_0(e,o,Lm()),srcSet:a}:{src:e}}function Bge(e){let o=_0(e,1920,Lm());return o===e?`url(${e})`:`url("${o}")`}import{formatFocal as d$,parseFocal as f$}from"efficient-shell/format";var u$="sf-focus-phone",p$="--sf-focus-phone";function N0(e){if(typeof e!="string"||!/^\s*-?\d+(\.\d+)?%\s+-?\d+(\.\d+)?%\s*$/.test(e))return{className:"",style:{}};let{x:o,y:t}=f$(e);return{className:u$,style:{[p$]:d$(o,t)}}}var x$=.5;function H0({videoSrc:e,posterSrc:o,showVideo:t=!0,playbackRate:a=x$,objectPosition:r="50% 50%",objectPositionPhone:n,quiet:s=!1}){let i=N0(n),c=o||"",f=e||"",[m,x]=Zn(!1),[u,h]=Zn(!1),[g,w]=Zn(!1),[T,E]=Zn(!1),[C,I]=Zn(!1),S=m$(null);Am(()=>{x(!1),h(!1),w(!1),E(!1)},[e,o]),Am(()=>{if(typeof window>"u")return;let O=()=>{let A=window;A.requestIdleCallback?A.requestIdleCallback(()=>I(!0),{timeout:2e3}):setTimeout(()=>I(!0),800)};if(document.readyState==="complete"){O();return}return window.addEventListener("load",O,{once:!0}),()=>window.removeEventListener("load",O)},[]),Am(()=>{let O=S.current;if(!O)return;let A=()=>{O.playbackRate=a};return A(),O.addEventListener("loadedmetadata",A),()=>O.removeEventListener("loadedmetadata",A)},[e,a]);let v=xx(c),y=c&&v&&!u?D0(c):{src:c};return M0("div",{className:"absolute inset-0 z-[1]",children:[Tr("div",{className:"absolute inset-0",style:{background:"var(--site-surface)"}}),c&&(v?Tr("img",{src:y.src,...y.srcSet?{srcSet:y.srcSet,sizes:"100vw"}:{},alt:"",className:`absolute inset-0 z-[2] h-full w-full object-cover ${i.className}`.trim(),style:{display:m?"none":"block",objectPosition:r,...i.style},onError:()=>y.srcSet?h(!0):x(!0)},c):Tr(F0,{src:c,alt:"",fill:!0,priority:!0,sizes:"100vw",className:`z-[2] object-cover ${i.className}`.trim(),style:{display:m?"none":"block",objectPosition:r,...i.style},onError:()=>x(!0)},c)),t&&!s&&f&&C&&!g&&M0("video",{ref:S,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,preload:"metadata",className:"absolute inset-0 z-[3] h-full w-full object-cover",style:{objectPosition:r},onError:()=>w(!0),children:[hx(f)&&Tr("source",{src:f.replace(/\.mp4$/,".av1.mp4"),type:'video/mp4; codecs="av01.0.08M.10"'}),Tr("source",{src:f,type:"video/mp4"})]},f),t&&s&&f&&C&&!T&&(!c||m)&&Tr(R0,{src:f,objectPosition:r,onError:()=>E(!0)},f)]})}var W0=["top","middle","bottom"],z0=["left","center","right"],G0="bottom",U0="left",h$={top:"Top",middle:"Middle",bottom:"Bottom"},I$={left:"Left",center:"Center",right:"Right"},qge="Up and down",Kge="Sideways",g$={top:"flex-start",middle:"center",bottom:"flex-end"},b$={left:"flex-start",center:"center",right:"flex-end"},y$="--sf-hero-phone-y",S$="--sf-hero-phone-x";function C$(e){return W0.includes(e)?e:G0}function w$(e){return z0.includes(e)?e:U0}function $0(e,o){let t=C$(e),a=w$(o),r={};return t!==G0&&(r[y$]=g$[t]),a!==U0&&(r[S$]=b$[a]),r}function Vge(){return W0.map(e=>({label:h$[e],value:e}))}function Yge(){return z0.map(e=>({label:I$[e],value:e}))}import{hexToRgb as k$}from"efficient-shell/format";var v$=!0;var T$=[[0,".5"],[30,".1"],[60,".1"],[100,".85"]];function j0(e){let o=k$(e);return o?`${o.r},${o.g},${o.b}`:null}function q0(e){return e==null?v$:e!==!1}function K0(e){let o=(e?j0(e):null)??j0(Wa);return`linear-gradient(180deg, ${T$.map(([t,a])=>`rgba(${o},${a}) ${t}%`).join(", ")})`}var F$=E$({});function ibe({name:e,process:o,mediaType:t="video",mediaSrc:a,videoSpeed:r,poster:n,objectPosition:s,objectPositionPhone:i,tintColor:c=Wa,tintOpacity:f=0,groups:m,editing:x=!1,themeClassName:u,themeStyle:h}){let{alignment:g="left",textureOpacity:w,textureOn:T,textureColor:E,quietVideo:C,phoneUpDown:I,phoneSideways:S}=O$(F$),v=t==="video",y=v?Lr(a):void 0,O=v?Lr(n):Lr(a)??Lr(n),A=typeof r=="number"?r/100:1;return P$("section",{className:u?`relative h-full w-full overflow-hidden ${u}`:"relative h-full w-full overflow-hidden",style:h,"data-slide-name":e??"","data-slide-process":o??"","data-slide-media":y?"video":"still",children:[Qn(H0,{videoSrc:y,posterSrc:O,showVideo:v,playbackRate:A,objectPosition:s,objectPositionPhone:v?void 0:i,quiet:C}),f>0&&Qn("div",{className:"absolute inset-0 z-[2]",style:{background:c,opacity:Math.min(Math.max(f,0),100)/100}}),q0(T)&&Qn("div",{className:"absolute inset-0 z-[2]",style:{background:K0(E),...w!==void 0?{opacity:w/100}:null}}),Qn("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",x?"sf-hero-group-layer-edit":""].filter(Boolean).join(" "),style:{...xI,...$0(I,S)},children:m&&Qn(m,{className:"sf-hero-group-zone",minEmptyHeight:160})})]})}var V0=Array.from({length:3},(e,o)=>({name:`Slide ${o+1}`,process:"Category",mediaType:"image",mediaVideo:"",poster:""}));import{newNodeId as Y0}from"efficient-easel/draw";var L$="ImageBlock",A$=3,sc=(e,o,t={})=>({type:e,props:{...o?.(e)??{},id:Y0(e),...t}}),R$=e=>({...e?.(oe)??{},direction:"column",[Ut]:[sc(L$,e),sc(oe,e,{direction:"column",[Ut]:[sc("Text",e,So()),sc("Text",e)]})]}),Zo={Hero:{slot:"slides",childType:"HeroSlide",addLabel:"Add slide",slider:!0,seeds:()=>V0.map(e=>({...e}))},HeroSlide:{slot:"groups",childType:"HeroGroup",addLabel:`Add ${Gt.toLowerCase()}`,seeds:()=>[],addBlocked:ms,notice:Kc},HeroSingle:{slot:"boxes",childType:"HeroGroup",addLabel:`Add ${Gt.toLowerCase()}`,seeds:()=>[],addBlocked:ms,notice:Kc},ProcessSteps:{slot:"boxes",childType:oe,addLabel:`Add ${Gt.toLowerCase()}`,seeds:e=>Array.from({length:A$},()=>R$(e)),skipSeed:e=>Array.isArray(e.steps)&&e.steps.length>0}};function hbe(e){for(let[o,t]of Object.entries(e)){if(o in Zo&&Zo[o]!==t)throw new Error(`lib/document/slot-specs: "${o}" already has a slot spec`);Zo[o]=t}}function Ibe(e,o){let t=Zo[e];return t?{slot:t.slot,children:t.seeds(o).map(a=>({type:t.childType,props:{id:Y0(t.childType),...a}}))}:null}var Z0=()=>({}),Q0=new Map;function B$(e){let o=Q0.get(e);if(o)return o;let t=new Set,a=Zo[e];if(a)for(let s of a.seeds(Z0))for(let i of X0({type:a.childType,props:s}))t.add(i);let r=nc(e);if(r){let s=0;for(let i of X0(r(Z0,c=>`${c}-${s+=1}`)))t.add(i)}t.delete(e);let n=[...t].sort();return Q0.set(e,n),n}function _$(e){if(!e||!e.sets&&!e.allow&&!e.deny?.length)return null;let o=Jp(e),t=e.allow?new Set(e.allow):null,a=new Set(e.deny??[]),r=new Set(Object.keys(e.host??{})),n=c=>{if(a.has(c))return!1;if(r.has(c))return!0;let f=Fk(c);return!f||!o[f]?!1:t?t.has(c):!0},s=new Map,i=c=>{let f=s.get(c);if(f!==void 0)return f;s.set(c,!1);let m=n(c)&&B$(c).every(i);return s.set(c,m),m};return{sets:o,offers:i}}var D$="block-offer";function Rm(e=J0()){return e.cache(D$,()=>_$(vs(e)))}function eP(e,o=J0()){let t=Rm(o);return t?t.offers(e):!0}function oP(e,o=0){let t=M$(e,o),a=t?Rm():null;return t&&a?N$(t,a):t}function N$(e,o){if(e.spec)return o.offers(e.spec.childType)?e:null;let t=e.choices??[],a=t.filter(r=>o.offers(r.type));return a.length===t.length?e:a.length>0?{...e,choices:a}:null}function M$(e,o){let t=Zo[e];if(t)return{source:"section",slot:t.slot,choices:null,spec:t};let a=Rk(e,o);if(a)return{source:"container",slot:a.slot,choices:a.choices,spec:null};let r=QC(e);return r?{source:"footer",slot:ZC,choices:r,spec:null}:null}function tP(e){return Uu(e.type)?[{slot:Gu,label:l(pC),rung:!0}]:null}import{useSyncExternalStore as H$}from"react";var Bm=null,_m=new Set;function aP(e){if(Bm!==e){Bm=e;for(let o of _m)o()}}function W$(e){return _m.add(e),()=>{_m.delete(e)}}function Nbe(){return H$(W$,()=>Bm,()=>null)}function rP(e){return Dr(e)?.ownerId??null}function nP(e,o){let t=e.props;if(e.type==="FooterMenu"){let a=t.menu;return t.heading||a?.name||l("Menu")}if(e.type==="FooterText"){let a=typeof t.text=="string"?t.text.trim():"";return a?a.length>28?`${a.slice(0,28)}\u2026`:a:l("Text")}return e.type==="FooterEmailSignup"?t.heading||l("Email signup"):o(e.type)}var sP=(e,o,t)=>{if(o!=="block"||e.props?.fromProduct!==!0)return t;let a=e.props.product;return!a?.code||typeof a.name!="string"?t:a.name.trim()||t};var lP="sf-editor-left-view";function iP(){if(typeof window>"u")return"pages";try{let e=window.localStorage.getItem(lP);return e==="sections"||e==="styles"?e:"pages"}catch{return"pages"}}function cP(e){if(!(typeof window>"u"))try{window.localStorage.setItem(lP,e)}catch{}}function dP(e,o){return e==="styles"&&!o?"sections":e}function fP(e,o){return e?"sections":o}import{isNode as z$}from"efficient-easel/data";var uP="Footer",G$=[Se,uP,xe],Pr=e=>{let o=e?.content;return Array.isArray(o)?o:[]},Ea=e=>{let o=e?.zones;return o&&typeof o=="object"&&!Array.isArray(o)?o:null},Jn=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0},pP=e=>Dr(e)?.ownerId??"";function mP(e){let o=mr(Pr(e)),t=o.some(a=>a?.type===xe);return o.filter(a=>a?.type===Se||a?.type===xe||a?.type===uP&&!t)}function Dm(e,o){let t=new Set,a=r=>{if(Array.isArray(r)){for(let n of r)a(n);return}if(!(!r||typeof r!="object")){if(z$(r)){let n=Jn(r);n&&t.add(n)}for(let n of Object.values(r))a(n)}};if(a(e),o){let r=!0,n=new Set;for(;r;){r=!1;for(let[s,i]of Object.entries(o))n.has(s)||!t.has(pP(s))||(n.add(s),a(i),r=!0)}}return t}function Nm(e,o){let t={},a={};for(let[r,n]of Object.entries(e??{}))(o.has(pP(r))?t:a)[r]=n;return{owned:t,rest:a}}function qbe(e,o){if(!o)return e;let t=mP(o);if(!t.length)return e;let a=t.filter(i=>i.type===Se),r=t.filter(i=>i.type!==Se),n={...e,content:[...a,...Pr(e),...r]},{owned:s}=Nm(Ea(o),Dm(t,Ea(o)));return Object.keys(s).length&&(n.zones={...Ea(e)??{},...s}),n}function Kbe(e,o){if(!o)return{page:e,chrome:null};let t=mP(o),a=new Set(t.map(Jn).filter(C=>!!C)),r=[],n=[];for(let C of Pr(e)){let I=Jn(C);I&&a.has(I)||pr(C?.type)?n.push(C):r.push(C)}let s=new Map(n.map(C=>[Jn(C),C])),i=new Set,c=mr(Pr(o)).flatMap(C=>{let I=Jn(C);if(!I||!a.has(I))return[C];let S=s.get(I);return S?(i.add(S),[S]):[]});for(let C of n)i.has(C)||c.some(I=>I?.type===C.type)||(c=C.type===Se?[C,...c]:[...c,C]);c=mr(c);let f=c.length===Pr(o).length&&c.every((C,I)=>C===Pr(o)[I]),m=Ea(e),x=Dm(c,m),{owned:u,rest:h}=Nm(m,x),g=Nm(Ea(o),Dm(t,Ea(o))).owned,w={...o,content:f?o.content:[...c]},T=Ea(o);if(T||Object.keys(u).length){let C={};for(let[I,S]of Object.entries(T??{}))I in g?I in u&&(C[I]=u[I]):C[I]=S;for(let[I,S]of Object.entries(u))I in C||(C[I]=S);w.zones=C,T&&U$(w.zones,T)&&(w.zones=T)}let E={...e,content:r};return m&&(Object.keys(h).length||!Object.keys(g).length?E.zones=h:delete E.zones),{page:E,chrome:w}}function U$(e,o){let t=Object.keys(e),a=Object.keys(o);return t.length===a.length&&t.every((r,n)=>r===a[n]&&e[r]===o[r])}function xP(e,o){return t=>e(t)||t!==void 0&&G$.includes(t)&&o()}var lc=null;function Ybe(e){lc=e}function hP(){return!!(lc&&lc.state().lockHolder)}function Oa(){return lc!==null}var $$=new Set(["BookingBox","SubmitBox"]);function j$(e){return typeof e=="string"&&$$.has(e)}var q$=xP(j$,hP);function IP(e,o){return q$(e)||kd(o)}import{copyNode as K$}from"efficient-easel/data";var gP=null;function oye(e){gP=e}function yt(){return gP}var bP=null;function Mm(e){bP=e}function ic(){return bP}function yP(e){let o=typeof e?.props?.id=="string"?e.props.id:null,t=yt(),a=o&&t?t.sectionOf(o):null;if(!t||!a)return null;let r=t.usedOn(a);return r?r.length===1?l("On 1 page"):l("On {count} pages",{count:r.length}):l("On other pages")}var SP={usedOn:e=>{let o=yt(),t=o?.sectionOf(e.props.id)??null;return!o||!t?null:o.usedOn(t)??[]},openPage:e=>ic()?.openPage(e),adopt:(e,o)=>yt()?.adopt(e.props.id,o),nodeOf:e=>yt()?.place(e)??null,detach:e=>{let o=ic()?.config;return o?K$(e,o):e},removed:()=>ic()?.reload()};import{sharedSectionsOf as X8}from"efficient-easel/screen/lib/shared-sections";import{scrollPreviewToSection as Z8,scrollPreviewToTop as qP}from"efficient-easel/screen/lib/document/preview-dom";import{jsx as zm,Fragment as y8,jsxs as S8}from"react/jsx-runtime";import{useEffect as C8,useMemo as RP,useRef as BP}from"react";import{EaselCanvas as w8,useEaselApi as k8}from"efficient-easel/easel";import{jsx as TP,Fragment as t8,jsxs as a8}from"react/jsx-runtime";import{useEffect as PP,useLayoutEffect as r8}from"react";var cc="data-theme",CP="light";function V$(e){return e.getAttribute(cc)===CP?"light":"dark"}function Y$(e,o){return V$(e)===o?!1:(o==="light"?e.setAttribute(cc,CP):e.removeAttribute(cc),!0)}function X$(e){return Tc(e).getItem(xc)}function cye(e,o){Tc(e).setItem(xc,o)}function Z$(e,o,t=new Date().getHours()){return Ym({mode:o.mode,override:X$(e),switchShown:o.switchShown,hour:t})}function wP(e,o){let t=e.documentElement;if(!t)return()=>{};let a=()=>Y$(t,Z$(e,o));a();let r=e.defaultView?.MutationObserver;if(!r)return()=>{};let n=new r(a);return n.observe(t,{attributes:!0,attributeFilter:[cc]}),()=>n.disconnect()}var Q$="style";function J$(e,o){let t=tx(o),a=!1;for(let r of ox){let n=t[r]??"";e.style.getPropertyValue(r)!==n&&(n?e.style.setProperty(r,n):e.style.removeProperty(r),a=!0)}return a}function kP(e,o){let t=e.body;if(!t)return()=>{};let a=()=>J$(t,o);a();let r=e.defaultView?.MutationObserver;if(!r)return()=>{};let n=new r(a);return n.observe(t,{attributes:!0,attributeFilter:[Q$]}),()=>n.disconnect()}var e8=String.raw`(function (doc) {
|
|
27
|
-
if (doc.__sfFitWords) return;
|
|
28
|
-
var win = doc.defaultView;
|
|
29
|
-
var SELECTOR = "h1,h2,h3,h4,h5,h6,[class*='font-heading'],[class*='font-display']";
|
|
30
|
-
// Body text a block asked to shrink (its Text group's Shrink to fit), beside
|
|
31
|
-
// the headings: what this script may fit at all. modeOf() decides each one.
|
|
32
|
-
var SHRINK_BODY = "[data-fit] p,[data-fit] li,[data-fit-phone] p,[data-fit-phone] li";
|
|
33
|
-
var CANDIDATES = SELECTOR + "," + SHRINK_BODY;
|
|
34
|
-
var MIN_SCALE = 0.3, MIN_PX = 16, SLACK = 1, PHONE_BELOW = 800;
|
|
35
|
-
|
|
36
|
-
// A block's own answer (lib/content/block-size, the wrapper's attributes):
|
|
37
|
-
// data-fit "wrap" | "shrink" and data-fit-min, each with its phone twin read
|
|
38
|
-
// under 800px. With none, a heading shrinks and body text wraps, as always.
|
|
39
|
-
function phone() { return win.innerWidth < PHONE_BELOW; }
|
|
40
|
-
function own(el, attr) {
|
|
41
|
-
var holder = el.closest("[" + attr + "],[" + attr + "-phone]");
|
|
42
|
-
if (!holder) return null;
|
|
43
|
-
return (phone() && holder.getAttribute(attr + "-phone")) || holder.getAttribute(attr);
|
|
44
|
-
}
|
|
45
|
-
function modeOf(el) {
|
|
46
|
-
var mode = own(el, "data-fit");
|
|
47
|
-
if (mode === "wrap" || mode === "shrink") return mode;
|
|
48
|
-
return el.matches(SELECTOR) ? "shrink" : "wrap";
|
|
49
|
-
}
|
|
50
|
-
function floorOf(el, set) {
|
|
51
|
-
var min = parseFloat(own(el, "data-fit-min"));
|
|
52
|
-
return min >= 0 ? min : Math.max(set * MIN_SCALE, MIN_PX);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function measure(el) {
|
|
56
|
-
var widest = 0, current = 0, last = null, split = false, lastBlock = null;
|
|
57
|
-
function blockOf(n) {
|
|
58
|
-
for (var p = n.parentElement; p && p !== el; p = p.parentElement) {
|
|
59
|
-
var d = win.getComputedStyle(p).display;
|
|
60
|
-
if (d.indexOf("inline") !== 0 && d !== "contents") return p;
|
|
61
|
-
}
|
|
62
|
-
return el;
|
|
63
|
-
}
|
|
64
|
-
function close() { if (current > widest) widest = current; current = 0; last = null; }
|
|
65
|
-
var walker = doc.createTreeWalker(el, 5), range = doc.createRange(), node;
|
|
66
|
-
while ((node = walker.nextNode())) {
|
|
67
|
-
if (node.nodeType === 1) {
|
|
68
|
-
if (node.tagName === "BR" || node.tagName === "WBR") close();
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
var block = blockOf(node);
|
|
72
|
-
if (block !== lastBlock) close();
|
|
73
|
-
lastBlock = block;
|
|
74
|
-
var re = /(\S+)|(\s+)/g, m;
|
|
75
|
-
while ((m = re.exec(node.data))) {
|
|
76
|
-
if (m[2]) { close(); continue; }
|
|
77
|
-
range.setStart(node, m.index);
|
|
78
|
-
range.setEnd(node, m.index + m[0].length);
|
|
79
|
-
var rects = range.getClientRects();
|
|
80
|
-
for (var i = 0; i < rects.length; i++) {
|
|
81
|
-
var r = rects[i];
|
|
82
|
-
if (r.width <= 0) continue;
|
|
83
|
-
current += r.width;
|
|
84
|
-
if (last && r.top > last.top + last.height / 2) split = true;
|
|
85
|
-
last = r;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
close();
|
|
90
|
-
return { widest: widest, split: split };
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function lineWidth(el) {
|
|
94
|
-
var cs = win.getComputedStyle(el);
|
|
95
|
-
return el.getBoundingClientRect().width - parseFloat(cs.paddingLeft) - parseFloat(cs.paddingRight)
|
|
96
|
-
- parseFloat(cs.borderLeftWidth) - parseFloat(cs.borderRightWidth);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// ⚠️ THE HEADING ELEMENT IS NEVER TOUCHED — no style="", no data-*. This
|
|
100
|
-
// runs before React hydrates, and React 19 in development reports ANY
|
|
101
|
-
// attribute that differs from what it rendered ("a tree hydrated but some
|
|
102
|
-
// attributes didn't match"): first our inline font-size on the hero (which
|
|
103
|
-
// React owns via --heading-size), then, when that moved to a data-sf-fit
|
|
104
|
-
// attribute, the attribute itself. So the fitted size lives only in this
|
|
105
|
-
// script's own stylesheet, in <head>, addressed to each heading by its
|
|
106
|
-
// POSITION (":root>*:nth-child(2)>…"). A position goes stale when the page's
|
|
107
|
-
// structure changes, so the rules are rewritten in the MutationObserver
|
|
108
|
-
// callback, which runs before the next paint. !important so the size also
|
|
109
|
-
// beats a part's own inline size.
|
|
110
|
-
var head = doc.head || doc.documentElement;
|
|
111
|
-
var fitEl = doc.createElement("style");
|
|
112
|
-
fitEl.id = "storefront-fit-words-sizes";
|
|
113
|
-
head.appendChild(fitEl);
|
|
114
|
-
// heading -> [[element, fitted size]]: the heading and each Text part inside
|
|
115
|
-
// it that holds its own size (a span [data-sf-part-styled]), e.g.
|
|
116
|
-
// [[h2, "43.8px"], [span, "43.8px"]]. Sizing the heading alone leaves such
|
|
117
|
-
// a part at its own size, and the word still breaks (card C25, Spec Table).
|
|
118
|
-
var fitted = new Map();
|
|
119
|
-
|
|
120
|
-
function pathOf(el) {
|
|
121
|
-
var parts = [];
|
|
122
|
-
for (var e = el; e && e.parentElement; e = e.parentElement) {
|
|
123
|
-
var i = 1, s = e;
|
|
124
|
-
while ((s = s.previousElementSibling)) i++;
|
|
125
|
-
parts.unshift("*:nth-child(" + i + ")");
|
|
126
|
-
}
|
|
127
|
-
return ":root>" + parts.join(">");
|
|
128
|
-
}
|
|
129
|
-
function writeRules() {
|
|
130
|
-
var css = "";
|
|
131
|
-
fitted.forEach(function (sizes, el) {
|
|
132
|
-
if (!el.isConnected) { fitted.delete(el); return; }
|
|
133
|
-
for (var i = 0; i < sizes.length; i++) css += pathOf(sizes[i][0]) + "{font-size:" + sizes[i][1] + " !important}";
|
|
134
|
-
});
|
|
135
|
-
if (fitEl.textContent !== css) fitEl.textContent = css;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
function unfit(el) {
|
|
139
|
-
if (fitted.delete(el)) writeRules();
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function fits(el) {
|
|
143
|
-
var m = measure(el);
|
|
144
|
-
return !m.split && m.widest <= lineWidth(el) + SLACK;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
function fit(el) {
|
|
148
|
-
unfit(el);
|
|
149
|
-
if (modeOf(el) !== "shrink") return; // the block's own Wrap
|
|
150
|
-
if (lineWidth(el) <= 0) return; // hidden, or not laid out yet
|
|
151
|
-
if (fits(el)) return;
|
|
152
|
-
var set = parseFloat(win.getComputedStyle(el).fontSize);
|
|
153
|
-
if (!set) return;
|
|
154
|
-
var floor = floorOf(el, set);
|
|
155
|
-
if (floor >= set) return;
|
|
156
|
-
function size(px) { return Math.floor(px * 10) / 10 + "px"; }
|
|
157
|
-
// The SEARCH tries sizes on the element's own style and then puts that
|
|
158
|
-
// attribute back byte for byte (or removes it, if it had none), so nothing
|
|
159
|
-
// is left for React to see. A trial in a stylesheet instead restyles the
|
|
160
|
-
// whole page per step: a full pass on the Hartes home took 75–160ms at 4x
|
|
161
|
-
// CPU that way.
|
|
162
|
-
// Every trial scales the heading AND each part inside it that holds its
|
|
163
|
-
// own size, by the same ratio, so a part keeps its proportion to the
|
|
164
|
-
// heading.
|
|
165
|
-
var carriers = [el].concat(Array.prototype.slice.call(el.querySelectorAll("[data-sf-part-styled]")));
|
|
166
|
-
var base = carriers.map(function (c) { return parseFloat(win.getComputedStyle(c).fontSize) || set; });
|
|
167
|
-
var saved = carriers.map(function (c) { return c.hasAttribute("style") ? c.getAttribute("style") : null; });
|
|
168
|
-
function attempt(px) {
|
|
169
|
-
for (var i = 0; i < carriers.length; i++) carriers[i].style.setProperty("font-size", size(base[i] * px / set), "important");
|
|
170
|
-
}
|
|
171
|
-
function done() {
|
|
172
|
-
for (var i = 0; i < carriers.length; i++) {
|
|
173
|
-
if (saved[i] !== null) carriers[i].setAttribute("style", saved[i]); else carriers[i].removeAttribute("style");
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
attempt(floor);
|
|
177
|
-
if (!fits(el)) { done(); return; } // even the floor does not fit: leave it as set
|
|
178
|
-
var lo = floor, hi = set;
|
|
179
|
-
for (var i = 0; i < 8; i++) {
|
|
180
|
-
var mid = (lo + hi) / 2;
|
|
181
|
-
attempt(mid);
|
|
182
|
-
if (fits(el)) lo = mid; else hi = mid;
|
|
183
|
-
}
|
|
184
|
-
done();
|
|
185
|
-
fitted.set(el, carriers.map(function (c, i) { return [c, size(base[i] * lo / set)]; }));
|
|
186
|
-
writeRules();
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// What each heading measured right after we last fitted it, so the
|
|
190
|
-
// ResizeObserver below can tell a real change (a font swap, a rotate, a
|
|
191
|
-
// container that moved) from the size change our own write just caused.
|
|
192
|
-
var seen = new WeakMap();
|
|
193
|
-
function remember(el) {
|
|
194
|
-
var b = el.getBoundingClientRect();
|
|
195
|
-
seen.set(el, b.width + "x" + b.height);
|
|
196
|
-
}
|
|
197
|
-
function fitAndRemember(el) { fit(el); remember(el); }
|
|
198
|
-
|
|
199
|
-
// ⚠️ A ResizeObserver, NOT fonts.ready or a resize event, and the reason is
|
|
200
|
-
// WHEN it runs: after layout, BEFORE paint. The web font arriving re-wraps a
|
|
201
|
-
// fitted heading, and fonts.ready resolves only after that frame is painted —
|
|
202
|
-
// measured on the Hartes hero: a 42px jump in 2 of 3 loads. A size change
|
|
203
|
-
// reported here is fitted in the same frame, so the broken state is never
|
|
204
|
-
// drawn. It also covers a container that resizes.
|
|
205
|
-
var ro = new win.ResizeObserver(function (entries) {
|
|
206
|
-
for (var i = 0; i < entries.length; i++) {
|
|
207
|
-
var el = entries[i].target;
|
|
208
|
-
var b = el.getBoundingClientRect();
|
|
209
|
-
if (seen.get(el) === b.width + "x" + b.height) continue; // our own write
|
|
210
|
-
fitAndRemember(el);
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
// Its own set, not seen: fitAndRemember has written seen by the
|
|
214
|
-
// time watch runs, so a seen test observed no heading at all, and a
|
|
215
|
-
// heading fitted in the fallback face was never fitted again when the web
|
|
216
|
-
// font arrived (hartesmetal.com.au, "FusionForge." with its "." alone).
|
|
217
|
-
var watched = new WeakSet();
|
|
218
|
-
function watch(el) { if (!watched.has(el)) { watched.add(el); ro.observe(el); } }
|
|
219
|
-
|
|
220
|
-
function fitAll() {
|
|
221
|
-
var els = doc.querySelectorAll(CANDIDATES);
|
|
222
|
-
for (var i = 0; i < els.length; i++) {
|
|
223
|
-
if (modeOf(els[i]) === "shrink") { fitAndRemember(els[i]); watch(els[i]); }
|
|
224
|
-
else unfit(els[i]); // Wrap here (a phone value may differ from the desktop's)
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
var queued = 0, all = false, touched = new Set();
|
|
229
|
-
function run() {
|
|
230
|
-
queued = 0;
|
|
231
|
-
if (all) { all = false; touched.clear(); fitAll(); return; }
|
|
232
|
-
var els = Array.from(touched);
|
|
233
|
-
touched.clear();
|
|
234
|
-
for (var i = 0; i < els.length; i++) {
|
|
235
|
-
if (!els[i].isConnected) continue;
|
|
236
|
-
if (modeOf(els[i]) === "shrink") { fitAndRemember(els[i]); watch(els[i]); }
|
|
237
|
-
else unfit(els[i]);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
function schedule() { if (!queued) queued = win.requestAnimationFrame(run); }
|
|
241
|
-
function scheduleAll() { all = true; schedule(); }
|
|
242
|
-
|
|
243
|
-
fitAll();
|
|
244
|
-
// A backstop only: a font that changes widths without changing any
|
|
245
|
-
// heading's box is not seen by the ResizeObserver.
|
|
246
|
-
if (doc.fonts && doc.fonts.ready) doc.fonts.ready.then(scheduleAll, function () {});
|
|
247
|
-
|
|
248
|
-
// …and the viewport WIDTH, which the ResizeObserver cannot stand in for: a
|
|
249
|
-
// heading sized to its own text (fit-content, a flex item) keeps the SAME box
|
|
250
|
-
// when the phone turns to 844, so nothing reports a change and it would stay
|
|
251
|
-
// shrunk. The probe's rotate check caught exactly that.
|
|
252
|
-
var lastWidth = win.innerWidth;
|
|
253
|
-
function onResize() {
|
|
254
|
-
if (win.innerWidth === lastWidth) return; // a phone's toolbar changing HEIGHT is not our business
|
|
255
|
-
lastWidth = win.innerWidth;
|
|
256
|
-
scheduleAll();
|
|
257
|
-
}
|
|
258
|
-
win.addEventListener("resize", onResize);
|
|
259
|
-
|
|
260
|
-
var mo = new win.MutationObserver(function (records) {
|
|
261
|
-
// Positions first: a node added or removed anywhere can shift the
|
|
262
|
-
// nth-child path of a fitted heading, and this callback runs before paint.
|
|
263
|
-
if (fitted.size) {
|
|
264
|
-
for (var q = 0; q < records.length; q++) if (records[q].type === "childList") { writeRules(); break; }
|
|
265
|
-
}
|
|
266
|
-
for (var i = 0; i < records.length; i++) {
|
|
267
|
-
var r = records[i];
|
|
268
|
-
// A block's Wrap / Shrink to fit or Min font size changed in the editor:
|
|
269
|
-
// only a data-fit attribute moved, so every heading is measured again.
|
|
270
|
-
if (r.type === "attributes") { scheduleAll(); continue; }
|
|
271
|
-
var target = r.target.nodeType === 1 ? r.target : r.target.parentElement;
|
|
272
|
-
var owner = target && target.closest(CANDIDATES);
|
|
273
|
-
if (owner) touched.add(owner);
|
|
274
|
-
for (var j = 0; j < r.addedNodes.length; j++) {
|
|
275
|
-
var n = r.addedNodes[j];
|
|
276
|
-
if (n.nodeType !== 1) continue;
|
|
277
|
-
if (n.matches(CANDIDATES)) touched.add(n);
|
|
278
|
-
var inner = n.querySelectorAll(CANDIDATES);
|
|
279
|
-
for (var k = 0; k < inner.length; k++) touched.add(inner[k]);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
if (touched.size) schedule();
|
|
283
|
-
});
|
|
284
|
-
mo.observe(doc.body, {
|
|
285
|
-
childList: true,
|
|
286
|
-
subtree: true,
|
|
287
|
-
characterData: true,
|
|
288
|
-
attributes: true,
|
|
289
|
-
attributeFilter: ["data-fit", "data-fit-phone", "data-fit-min", "data-fit-min-phone"],
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
doc.__sfFitWords = function stop() {
|
|
293
|
-
win.removeEventListener("resize", onResize);
|
|
294
|
-
ro.disconnect();
|
|
295
|
-
mo.disconnect();
|
|
296
|
-
if (queued) win.cancelAnimationFrame(queued);
|
|
297
|
-
fitted.clear();
|
|
298
|
-
fitEl.remove();
|
|
299
|
-
delete doc.__sfFitWords;
|
|
300
|
-
};
|
|
301
|
-
// For the probe and for debugging: which headings are fitted, at what size,
|
|
302
|
-
// and the sheet that holds it (disable it to read a heading's set size).
|
|
303
|
-
doc.__sfFitWords.fitted = fitted;
|
|
304
|
-
doc.__sfFitWords.sheet = fitEl;
|
|
305
|
-
// …and the two questions a block's own answer changes, for the guard
|
|
306
|
-
// (scripts/test-block-size.tsx §5): which mode an element is in, and its floor.
|
|
307
|
-
doc.__sfFitWords.modeOf = modeOf;
|
|
308
|
-
doc.__sfFitWords.floorOf = floorOf;
|
|
309
|
-
})(document);`,o8="storefront-fit-words";function vP(e){let o=e.createElement("script");return o.id=o8,o.textContent=e8,(e.head??e.documentElement).appendChild(o),()=>{e.__sfFitWords?.(),o.remove()}}var n8=`
|
|
310
|
-
[${Lo}][${Lo}] { cursor: text; }
|
|
311
|
-
`;function EP({children:e,document:o}){let{theme:t,themeMode:a,themeSwitchShown:r}=ee(),n=Ge(t);return PP(()=>{if(o)return wP(o,{mode:a,switchShown:r})},[o,a,r]),PP(()=>{if(o)return kP(o,n)},[o,n]),r8(()=>{if(o)return vP(o)},[o]),a8(t8,{children:[TP(Ox,{}),TP("style",{children:n8}),e]})}import{jsx as Hm}from"react/jsx-runtime";import{useEffect as s8,useState as l8}from"react";import{Banner as i8}from"efficient-shell/ui";var dc={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."},c8={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."},d8=dc.load,f8=dc.lock,u8=dc.conflict,p8=dc.save;function m8(e){if(!e)return null;if(e.loadFailed)return l(d8);if(e.lockHolder)return l(f8,{name:e.lockHolder.name||l("Somebody else")});if(e.conflict)return l(u8);if(e.saveFailed)return l(p8);let o=e.sections?.[0];if(!o)return null;let t=o.title||l("A shared section"),a=o.holder?.name||l("Somebody else");return l(c8[o.problem],{section:t,name:a})}function x8({report:e}){let o=m8(Di(e)),[t,a]=l8(null);return s8(()=>{o||a(null)},[o]),!o||t===o?null:Hm("aside",{className:"sf-canvas-notice",children:Hm(i8,{tone:"warning",onDismiss:()=>a(o),children:o})})}function OP(){return Hm(x8,{report:Ni()})}import{jsx as fc}from"react/jsx-runtime";import{useState as FP}from"react";import{Banner as h8,Button as I8}from"efficient-shell/ui";import{UndoIcon as g8}from"efficient-shell/icons/efficient";import{useScreenDocument as b8}from"efficient-easel/screen/components/ScreenDocumentContext";function LP(){let e=hv(),{adapter:o,flushSave:t,reloadFromServer:a}=b8(),r=o.siteVersions,[n,s]=FP(!1),[i,c]=FP(!1);if(!e)return null;let f=async()=>{if(!(!r||n)){s(!0),c(!1);try{await bv({access:r,flushSave:t,reload:a})}catch{c(!0)}finally{s(!1)}}};return fc("aside",{className:"sf-canvas-notice",children:fc(h8,{tone:i?"danger":"info",title:e.title,onDismiss:Mi,action:r&&e.undo?fc(I8,{variant:"secondary",size:"sm",leftIcon:fc(g8,{}),loading:n,disabled:n,onClick:()=>{f()},children:l("Undo")}):void 0,children:i?l("Undo did not work. Nothing changed. Try again."):l("Check it with Preview. Press Publish to put it live.")})})}import{usePreviewParts as v8}from"efficient-easel/draw/client";import{useSectionOps as T8}from"efficient-easel/screen/lib/document/use-section-ops";var AP=null;function Wm(e){AP=e}function _ye(){return AP}function _P(e){let{mirrorHostStyles:o}=Oc(),t=Lx(),{sectionBackgroundWidth:a,themeFromDocument:r}=ee(),n=gx(),s=RP(()=>({...e.metadata??t??{},...Wg(r?null:a,n)}),[e.metadata,t,a,n,r]);C8(()=>(Wm(n),()=>Wm(null)),[n]);let i=BP(null),c=P8(i),{onDocument:f}=e,m=x=>{i.current=x,f?.(x)};return S8(y8,{children:[zm(LP,{}),zm(OP,{}),zm(w8,{...e,onDocument:m,typing:c,metadata:s,height:"fill",mirrorStyles:o,frameWrapper:EP})]})}function P8(e){let o=k8(),t=T8(),a=v8(),r=BP({ops:t,parts:a});return r.current={ops:t,parts:a},RP(()=>{let n={getItemById:i=>o.getState().getItemById(i),getSelectorForId:i=>o.getState().getSelectorForId(i),get components(){return o.getState().config.components},replace:(i,c,f)=>r.current.ops.replaceComponent(i,c,f)},s=(i,c)=>{let f=gC(i,n);if(!f)return null;let m=c,x=()=>(m=bC(m,m?.ownerDocument??e.current,i),m),u=x();return u?{element:x,value:f.value,rules:f.rules,multiline:f.multiline,write:f.write,toolbar:{offered:f.offered,colors:f.offered.length>0?ni(OC(u)):void 0}}:null};return{at:i=>{let c=i.closest(`[${Lo}]`),f=c?.getAttribute(Lo);return c&&f?s(f,c):null},atSelection:()=>{let i=r.current.parts.selectedPartId;return i?s(i,null):null},onChange:i=>{if(!i.typing){Ku(null);return}let c=i.element.closest(`[${Lo}]`)?.getAttribute(Lo)??null;Ku(c),c&&r.current.parts.selectedPartId!==c&&r.current.parts.select(c)}}},[o,e])}var E8=Ix.mediaFields,O8=/video|poster|focal|phone/i;function DP(e){return(E8[e]??[]).find(o=>!o.includes("[]")&&!O8.test(o))??null}var NP={adds:{kind:"block",type:"ImageBlock"},takes:e=>DP(e.type)!==null,replace:(e,o)=>{let t=DP(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 MP={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."};var F8="Save your page changes first";function HP(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:F8}:{visible:!0,enabled:!0}:{visible:!1,hiddenReason:"no-site"}:{visible:!1,hiddenReason:"not-operator"}:{visible:!1,hiddenReason:"no-console"}}var WP="storefront-editor:save-as-template";var es="ContactLocations",L8="CityPictures",A8="CityMaps",R8=[{key:L8,label:"City pictures",desc:"A wall of city photos, grouped by region. Each photo links to its city's card."},{key:A8,label:"City maps",desc:"A card per city, grouped by region: address, phone, hours and a map."}];function zP(e=Ri){let o=zt.find(t=>t.sections.some(a=>a.type===es))?.key;return!e.includes(es)||!o?[]:R8.map(({key:t,label:a,desc:r},n)=>({key:t,label:a,cat:o,after:es,desc:r,alias:"locations offices stores branches",insert:s=>{let i=Bi(es);return i?Fm(es,i,n)(s.nodeDefaults,s.newNodeId):null}}))}var B8="plain",GP=[{label:"Plain",value:"plain"},{label:"Filled",value:"filled"},{label:"Line",value:"line"}],_8="line",D8={KeyFeatures:"filled"};function os(e){return D8[e]??B8}function cSe(e,o){return to(GP,os(o),e)}function dSe(e){return to(GP,_8,e)}function UP(e,{nodeDefaults:o,newNodeId:t,sectionLabel:a,blockIsOffered:r}){let n=nc(e);return n?n(o,t):Bk(e)&&r(oe)&&r(Ir)?{type:oe,props:{...o(oe),id:t(oe),direction:"column",name:`${a(e)} section`,content:[{type:Ir,props:{...o(Ir),id:t(Ir),...Je[e]?.headStyle?{headStyle:Je[e].headStyle}:{},...Je[e]?.headRowGap?{rowGap:Je[e].headRowGap}:{},...Je[e]?.headDescriptionSize?{descriptionSize:Je[e].headDescriptionSize}:{},...os(e)!==os(Ir)?{eyebrowLook:os(e)}:{}}},{type:e,props:{...o(e),id:t(e),headPlacement:"own-box"}}]}}:Zo[e]?.fixed===!0?{type:e,props:{...o(e),id:t(e),layout:"boxes"}}:null}import{useEffect as N8,useState as M8}from"react";import{useEaselSession as H8}from"efficient-easel/screen/lib/session-context";function $P(){let e=H8().chrome?.products?.list,[o,t]=M8(null);return N8(()=>{if(!e)return;let a=!1;return e().then(r=>{a||t(r)}),()=>{a=!0}},[e]),o}function eE({mode:e,open:o}){let{setSelectedHeroId:t,setSelectHandler:a}=MS(),r=QP().tree,n=e,s=n.kind==="ticker"?n.heroId:null,i=as(c=>{c&&(o({kind:"ticker",heroId:c}),Z8(c))},[o]);return Qo(()=>{t(s)},[s,t]),Qo(()=>{a(i)},[a,i]),{partRows:(c,{rowClick:f})=>{let m=String(c.props.id);return c.type==="Hero"&&Re(XP,{icon:Re(ba,{type:"ticker",size:13}),name:l(cn),onSelect:()=>i(m),selected:s===m,rowProps:{onClick:f(()=>i(m))},words:r})}}}function oE({mode:e,select:o}){let{setSelectedHeroPart:t,setSelectHandler:a}=Xl(),r=QP().tree,{appState:n}=ZP(u=>u),s=n.data.content??[],i=W8(s);i.current=s;let c=e,f=dn.find(u=>fn[u]===c.kind),m=f&&"nodeId"in c?un(String(c.nodeId),f):null,x=as(u=>{let h=VS(u);if(!h)return;let g=i.current.findIndex(T=>String(T.props.id)===h.nodeId);if(g<0)return;let w={kind:fn[h.part],nodeId:h.nodeId};o({index:g},w)},[o]);return Qo(()=>{t(m)},[m,t]),Qo(()=>{a(x)},[a,x]),{partRows:(u,{rowClick:h})=>{let g=String(u.props.id),w=KS(u);if(w.length===0)return null;let T=I=>{let S=un(g,I.part);return Re(XP,{icon:Re(ba,{type:I.part==="media"?"heroMedia":"heroImage",size:13}),name:l(I.label),onSelect:()=>x(S),selected:m===S,rowProps:{onClick:h(()=>x(S))},words:r},S)},[E,...C]=w;return ts(YP,{children:[T(E),C.length>0&&Re(V8,{children:C.map(T)})]})}}}function tE(e,o){return{partRows:(t,a)=>ts(YP,{children:[e.partRows?.(t,a),o.partRows?.(t,a)]})}}function Q8(e){let{adapter:o,capabilities:t,currentSlug:a,siteId:r,docId:n,hasUnsavedEdits:s,bridgeCapabilities:i,notifyParent:c,token:f}=uc(),{hasPreviewLink:m}=t,x=He(JP()).preview?.draftLink,u=Ov(e.data),h=HP({hasTrustedConsole:!!f,canCreatePlatformTemplate:i.canCreatePlatformTemplate,capabilities:t,siteId:r,hasUnsavedEdits:s}),g=as(()=>{!r||!a||c(WP,{siteId:r,slug:a})},[c,r,a]),w=nv({pageSlug:a,siteId:r,token:f}),T=o.previewHref?.(a)??w;return{barLead:()=>h.visible&&Re(G8,{side:"bottom",content:h.enabled?l("Save this website as a platform template"):l(h.disabledReason),children:Re("span",{className:"sf-tip-disabled",tabIndex:h.enabled?void 0:0,children:Re(z8,{variant:"secondary",disabled:!h.enabled,onClick:g,rightIcon:Re(K8,{size:15}),children:l("Save as Template")})})}),barView:()=>m&&a&&Re(lv,{liveHref:T,pageId:n??null,draftLink:x}),mainAction:u}}function J8(e,o){let{capabilities:t,templateId:a,siteId:r,tokenRef:n,navigate:s}=uc(),{hasSiteTheme:i,explainsSiteSettings:c}=t,f=I=>o.setView(I),[m,x]=jP(nr[0].id),[u,h]=jP(!1),{surface:g,setSurface:w}=NS(),T=()=>{if(i){f("styles"),o.reveal(),qP();return}e.show(yp),e.reveal(),qP()},E={id:"pages",label:l("Pages"),icon:Re($8,{}),panel:({onHide:I})=>Re(PS,{activeSurface:g,onPreviewSurface:w,onNavigate:S=>{w(null),s(a?{kind:"template",id:a,pageSlug:S}:{kind:"page",slug:S,siteId:r??void 0})},onClose:I})},C=[];return!i&&c&&C.push({id:"appearance",label:l("Appearance"),icon:Re(q8,{}),active:e.kind==="website",onSelect:T}),i&&C.push({id:"styles",label:l("Styles"),icon:Re(j8,{}),panel:({onHide:I,notify:S})=>Re(sk,{tokenRef:n,siteId:r??void 0,onClose:I,onNotify:S,tab:m,onTabChange:x,revealPageGroup:u,onPageGroupRevealed:()=>h(!1)})}),{railLead:[E],railTrail:C,resolveLeftView:I=>dP(I,i),openSettings:T,openStyles:()=>{x(oS),f("styles")},openPageStyles:i?()=>{x(sr),h(!0),f("styles"),o.reveal()}:c?()=>{e.show(Yw),e.reveal()}:void 0}}function ej(){let{navigate:e,siteId:o,reloadFromServer:t,docId:a}=uc(),r=ZP(s=>s.config),n=JP();Qo(()=>(Mm({openPage:s=>e({kind:"page",slug:s.slug,siteId:o??void 0}),reload:()=>{t()},config:r}),()=>Mm(null)),[e,o,t,r]),Qo(()=>{let s=yt();if(!s||!a)return;let i=!1;return X8(n).list().then(c=>{i||s.learn(c)}).catch(()=>{}),()=>{i=!0}},[a,n])}function oj(e,o,t,a){let{kind:r,open:n}=e,{selected:s,zoneOf:i}=o;Qo(()=>{aP(s?.type==="BookingBox"&&s.props.region==="confirm"?rP(i(String(s.props.id))):null)},[s?.props.id]);let c=Pk(e,o),{capabilities:{hasSiteSettings:f}}=uc();ej();let{chat:m,setChat:x,setSelected:u,setSelectHandler:h}=Yl(),g=as(()=>n(Xw),[n]),w=r==="chat";Qo(()=>{u(w)},[w,u]),Qo(()=>{h(g)},[h,g]);let{setOpenHandler:T}=ln(),E=as(()=>n(Zw),[n]);Qo(()=>{T(E)},[T,E]);let C=tE(eE(e),oE(e)),I=Q8(o),S=J8(e,a),v=t.device;return{...C,...I,...S,hasOwnRows:y=>y.type===Li,ownRows:c.renderLocationTree,sectionPressed:c.sectionPressed,wrap:y=>Re(Fc.Provider,{value:!0,children:ts(Y8.Provider,{value:v,children:[y,Re(Nv,{})]})}),addPanelRow:y=>f?ts("div",{className:"sf-addside-sitewide",children:[Re("span",{className:"sf-addside-sitewide-glyph","aria-hidden":"true",children:Re(ba,{type:"chat",size:16})}),ts("button",{type:"button",className:"sf-addside-sitewide-name",onClick:()=>{y(),g()},children:[l("Live chat"),Re("span",{className:"sf-addside-sitewide-desc",children:l("A chat bubble on every page")})]}),Re(U8,{checked:m.enabled,onChange:O=>x({enabled:O}),ariaLabel:l("Show the chat bubble on the whole site")})]}):void 0}}var KP=null,Gm=new WeakMap;function tj(e){let o=Px();if(!e||!o)return e;KP!==o&&(KP=o,Gm=new WeakMap);let t=Gm.get(e);return t||(t={...e,choices:e.choices?e.choices.map(a=>({...a,label:l(a.label)})):null,spec:e.spec?{...e.spec,addLabel:l(e.spec.addLabel)}:null},Gm.set(e,t)),t}var aj={isLockedBlock:(e,o)=>IP(e,o)||!!(o&&yt()?.heldElsewhere(o.props.id)),duplicateBlocked:hi,nestDepth:(e,o,t)=>o===xs?mh(e,t):0,newSectionNode:UP,canAddTo:(e,o)=>tj(oP(e,o)),blockIsOffered:eP,slotsOf:tP},rj=new Proxy(MP,{get:(e,o)=>{let t=Reflect.get(e,o);return typeof t=="string"?l(t):t}}),nj={labelAtLevel:(e,o,t)=>l(Rp(e,o,t)),descriptions:rj,categoryLabel:e=>{let o=Mv(e);return o===void 0?void 0:l(o)},firstSection:Hv,blockRowName:nP,rowName:sP,plainText:Hr,Icon:ba,Thumbnail:nk,useProducts:$P,presets:zP()},sj={desktop:2e3,tablet:800,mobile:390},VP="desktop",lj={options:RS,initial:VP,fluid:VP,widths:sj},ij={read:iP,write:e=>cP(e),forSelection:(e,o)=>fP(e,o)},cj={first:ao,last:ye,firstGroup:Se,lastGroup:xe,isSectionGroup:pr,sectionGroupZone:JC,panelOf:e=>e===ao?Vw:null,get sharedReach(){return Oa()?fj:void 0},get shared(){return yt()?SP:void 0},get groupTab(){return Oa()?rw:void 0},get groupBadge(){return Oa()?tp({type:xe})??void 0:void 0},get changeNotice(){return Oa()?nw():void 0},get band(){return Oa()?dj:void 0},get groupAccepts(){return Oa()?tw:void 0}},dj={foldable:!0},fj=e=>tp(e)??yP(e);function uj(e){return{...tE(eE(e),oE(e)),openSettings:()=>e.show(yp)}}function pj(e,o){jk(e,o),ev()}var LCe={useOwnerName:lr,useDocumentLabel:lS,useBridges:oj,useStandaloneBridges:uj,useDocumentPass:pj,blockRules:aj,blockLook:nj,devices:lj,leftView:ij,pinned:cj,Canvas:_P,canvasDrag:{media:NP},Inspector:Jw};export{Fue as a,Lue as b,Aue as c,Ok as d,Gt as e,Jp as f,Ume as g,He as h,vs as i,oe as j,Lk as k,Hue as l,Rk as m,to as n,pu as o,iH as p,cH as q,mu as r,xu as s,Zl as t,Mre as u,ie as v,Je as w,_k as x,$ue as y,Dk as z,jue as A,que as B,$ as C,Pi as D,uue as E,mt as F,xt as G,ht as H,ope as I,em as J,om as K,oG as L,tG as M,qme as N,Kme as O,Wv as P,Vme as Q,Yme as R,sG as S,lG as T,Jme as U,exe as V,tm as W,iG as X,oxe as Y,txe as Z,axe as _,rxe as $,dG as aa,nxe as ba,sxe as ca,Uv as da,dxe as ea,hj as fa,l as ga,Ze as ha,$v as ia,pxe as ja,xI as ka,Fs as la,II as ma,MK as na,yd as oa,DF as pa,HK as qa,rde as ra,nde as sa,eX as ta,oX as ua,HA as va,tX as wa,aX as xa,GA as ya,rX as za,_s as Aa,Ds as Ba,tg as Ca,LY as Da,AY as Ea,Xv as Fa,Zv as Ga,Ui as Ha,Exe as Ia,Qv as Ja,Oxe as Ka,Fxe as La,Lxe as Ma,Jv as Na,Axe as Oa,Rxe as Pa,SA as Qa,js as Ra,$Y as Sa,_d as Ta,jY as Ua,PA as Va,EA as Wa,qY as Xa,fg as Ya,$i as Za,tT as _a,Hxe as $a,Wxe as ab,se as bb,Ce as cb,H as db,Ie as eb,be as fb,ve as gb,Oe as hb,Ae as ib,eo as jb,It as kb,r9 as lb,n9 as mb,ad as nb,Hr as ob,wf as pb,Wr as qb,Pf as rb,Pl as sb,Lo as tb,aoe as ub,roe as vb,noe as wb,soe as xb,TD as yb,PD as zb,loe as Ab,Ja as Bb,Ef as Cb,ioe as Db,coe as Eb,Rf as Fb,er as Gb,or as Hb,gy as Ib,Rl as Jb,wy as Kb,Ll as Lb,goe as Mb,boe as Nb,yoe as Ob,Soe as Pb,xN as Qb,gn as Rb,FC as Sb,LC as Tb,si as Ub,che as Vb,dhe as Wb,fhe as Xb,uhe as Yb,Yn as Zb,Vi as _b,bhe as $b,Pa as ac,Ehe as bc,hT as cc,IT as dc,gT as ec,um as fc,Mhe as gc,Whe as hc,bT as ic,Uhe as jc,$he as kc,yT as lc,hU as mc,IU as nc,kIe as oc,vIe as pc,TIe as qc,rc,PIe as sc,FIe as tc,r0 as uc,Sm as vc,n0 as wc,_Ie as xc,DIe as yc,NIe as zc,Cm as Ac,MIe as Bc,HIe as Cc,s0 as Dc,mge as Ec,Pge as Fc,F0 as Gc,Rge as Hc,D0 as Ic,Bge as Jc,N0 as Kc,H0 as Lc,G0 as Mc,U0 as Nc,qge as Oc,Kge as Pc,Vge as Qc,Yge as Rc,Wa as Sc,v$ as Tc,F$ as Uc,ibe as Vc,Ba as Wc,dh as Xc,ch as Yc,MO as Zc,HO as _c,WO as $c,Sq as ad,zO as bd,Cq as cd,Nr as dd,wq as ed,kq as fd,xs as gd,mh as hd,hbe as id,Ibe as jd,_$ as kd,Hs as ld,BY as md,_Y as nd,_A as od,Ks as pd,QY as qd,xg as rd,sh as sd,FO as td,dq as ud,us as vd,ih as wd,LO as xd,AO as yd,RO as zd,pq as Ad,mq as Bd,xq as Cd,hq as Dd,Se as Ed,xe as Fd,Tce as Gd,ew as Hd,xi as Id,Gu as Jd,oi as Kd,Y5 as Ld,cle as Md,dle as Nd,fle as Od,ule as Pd,mC as Qd,ple as Rd,Z5 as Sd,mle as Td,xle as Ud,N7 as Vd,z7 as Wd,fO as Xd,S7 as Yd,YY as Zd,XY as _d,sX as $d,lX as ae,iX as be,eD as ce,gf as de,oD as ee,iee as fe,Oo as ge,dee as he,fee as ie,aD as je,uee as ke,zb as le,Gb as me,lD as ne,iD as oe,hee as pe,gee as qe,bee as re,yee as se,See as te,Mg as ue,ia as ve,nR as we,CX as xe,sR as ye,wX as ze,ol as Ae,kX as Be,_ye as Ce,OC as De,Yle as Ee,PC as Fe,ma as Ge,rte as He,Zf as Ie,qN as Je,Ky as Ke,XN as Le,cte as Me,dte as Ne,Nl as Oe,fte as Pe,WS as Qe,HS as Re,jre as Se,US as Te,Kre as Ue,$S as Ve,uH as We,hu as Xe,dr as Ye,Zre as Ze,Qre as _e,pH as $e,Jre as af,un as bf,VS as cf,ene as df,cn as ef,Ere as ff,MS as gf,Ore as hf,Fre as if,Lre as jf,iue as kf,lk as lf,ik as mf,ck as nf,$o as of,st as pf,qr as qf,Ya as rf,DX as sf,NX as tf,HX as uf,WX as vf,zX as wf,GX as xf,UX as yf,jX as zf,tl as Af,qX as Bf,pw as Cf,mw as Df,uO as Ef,pO as Ff,k7 as Gf,mO as Hf,xO as If,v7 as Jf,T7 as Kf,P7 as Lf,E7 as Mf,O7 as Nf,F7 as Of,L7 as Pf,A7 as Qf,R7 as Rf,B7 as Sf,rq as Tf,iq as Uf,ps as Vf,hs as Wf,Mr as Xf,Sh as Yf,Lq as Zf,Aq as _f,Zc as $f,y1 as ag,Qq as bg,o9 as cg,id as dg,cd as eg,G9 as fg,U9 as gg,eI as hg,$9 as ig,j9 as jg,q9 as kg,nI as lg,lI as mg,dI as ng,Ps as og,fI as pg,TK as qg,$F as rg,JK as sg,CI as tg,sV as ug,kI as vg,EI as wg,OI as xg,FI as yg,LI as zg,AI as Ag,RI as Bg,Cd as Cg,_I as Dg,DI as Eg,EV as Fg,uL as Gg,OV as Hg,FV as Ig,MI as Jg,_V as Kg,pL as Lg,DV as Mg,NV as Ng,xL as Og,wd as Pg,IL as Qg,zV as Rg,gL as Sg,GV as Tg,bL as Ug,za as Vg,$V as Wg,jV as Xg,qV as Yg,KV as Zg,As as _g,VV as $g,Td as ah,tY as bh,$I as ch,wL as dh,rY as eh,Pd as fh,NL as gh,wY as hh,At as ih,IA as jh,WY as kh,Ad as lh,zY as mh,GY as nh,zd as oh,ja as ph,ZA as qh,dX as rh,Tg as sh,Pg as th,fX as uh,Xs as vh,Zs as wh,pX as xh,Va as yh,Js as zh,hX as Ah,IX as Bh,gX as Ch,Dg as Dh,yX as Eh,Dt as Fh,it as Gh,IQ as Hh,gQ as Ih,bQ as Jh,yQ as Kh,SQ as Lh,CQ as Mh,wQ as Nh,kQ as Oh,EQ as Ph,OQ as Qh,wB as Rh,FQ as Sh,LQ as Th,AQ as Uh,RQ as Vh,BQ as Wh,_Q as Xh,DQ as Yh,NQ as Zh,PB as _h,MQ as $h,of as ai,HQ as bi,fl as ci,rf as di,Sb as ei,pl as fi,WQ as gi,zQ as hi,GQ as ii,jB as ji,UQ as ki,$Q as li,jQ as mi,qQ as ni,KQ as oi,VQ as pi,nf as qi,YQ as ri,XQ as si,rl as ti,ml as ui,xl as vi,sf as wi,hl as xi,ZQ as yi,kb as zi,QQ as Ai,JQ as Bi,eJ as Ci,oJ as Di,tJ as Ei,aJ as Fi,rJ as Gi,nJ as Hi,sJ as Ii,lJ as Ji,iJ as Ki,cJ as Li,dJ as Mi,lf as Ni,fJ as Oi,Pb as Pi,Eb as Qi,Ob as Ri,uJ as Si,x_ as Ti,pJ as Ui,mJ as Vi,Ci as Wi,uo as Xi,Tn as Yi,y6 as Zi,Aw as _i,Fde as $i,Lde as aj,Ade as bj,Rde as cj,Bde as dj,_de as ej,Dde as fj,Nde as gj,Mde as hj,Hde as ij,Wde as jj,Kl as kj,ES as lj,OS as mj,LS as nj,Vl as oj,dre as pj,fre as qj,Yl as rj,JM as sj,Sre as tj,ln as uj,vre as vj,NS as wj,fme as xj,ume as yj,pme as zj,mme as Aj,qbe as Bj,Kbe as Cj,oye as Dj,Ybe as Ej,Bre as Fj,Xl as Gj,Pj as Hj,Ty as Ij,Roe as Jj,Boe as Kj,_oe as Lj,Doe as Mj,$y as Nj,Yy as Oj,mte as Pj,xte as Qj,JN as Rj,hte as Sj,Ite as Tj,gte as Uj,bte as Vj,e2 as Wj,yte as Xj,Ste as Yj,Cte as Zj,wte as _j,r2 as $j,kte as ak,_te as bk,Dte as ck,su as dk,lu as ek,XS as fk,Dse as gk,aC as hk,iC as ik,DC as jk,iie as kk,v4 as lk,T4 as mk,Sn as nk,P4 as ok,E4 as pk,xie as qk,zC as rk,ye as sk,mi as tk,_o as uk,uk as vk,An as wk,pk as xk,mk as yk,xue as zk,hue as Ak,ov as Bk,qp as Ck,tv as Dk,oP as Ek,Nbe as Fk,cc as Gk,V$ as Hk,Y$ as Ik,cye as Jk,yj as Kk,kj as Lk,B8 as Mk,GP as Nk,_8 as Ok,os as Pk,cSe as Qk,dSe as Rk,LCe as Sk};
|