efficient-storefront-blocks 0.81.0 → 0.83.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +1 -1
  3. package/dist/chunks/EditorPreviewCheckout-RI5SBSCE.js +4 -0
  4. package/dist/chunks/{SiteEditorProvider-PXXYEDUI.js → SiteEditorProvider-OQXY7YGK.js} +1 -1
  5. package/dist/chunks/{chunk-EEBM2KUO.js → chunk-AUYTGAOU.js} +1 -1
  6. package/dist/chunks/chunk-LMOEQBT7.js +340 -0
  7. package/dist/chunks/{chunk-K3VUREAB.js → chunk-QOM2OL54.js} +1 -1
  8. package/dist/chunks/{fitment-data-WHDQR3A2.js → fitment-data-64LXUHOU.js} +1 -1
  9. package/dist/contract.js +22 -2
  10. package/dist/editor/components/CategoryProductFields.d.ts +4 -1
  11. package/dist/editor/components/CategoryProductFields.js +1 -1
  12. package/dist/editor/components/EditReviewsLink.d.ts +4 -0
  13. package/dist/editor/components/EditReviewsLink.js +1 -0
  14. package/dist/editor/components/GalleryShowcaseSource.js +1 -1
  15. package/dist/editor/components/ProductHeroSource.js +1 -1
  16. package/dist/editor/components/ProductPicker.js +1 -1
  17. package/dist/editor/components/ReviewsProductSource.d.ts +26 -0
  18. package/dist/editor/components/ReviewsProductSource.js +1 -0
  19. package/dist/editor/components/SpecTableSource.js +1 -1
  20. package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
  21. package/dist/editor/lib/document/blocks/service/FooterMenu/fields.js +1 -1
  22. package/dist/editor/lib/document/blocks/service/MenuLinkBlock/fields.d.ts +2 -0
  23. package/dist/editor/lib/document/blocks/service/MenuLinkBlock/fields.js +1 -0
  24. package/dist/editor/lib/document/blocks/service/ReviewForm/fields.js +1 -1
  25. package/dist/editor/lib/document/blocks/service/Reviews/fields.js +1 -1
  26. package/dist/editor/lib/document/blocks/service/index.d.ts +1 -1
  27. package/dist/editor/lib/document/blocks/service/index.js +1 -1
  28. package/dist/editor/lib/document/box-header.d.ts +1 -0
  29. package/dist/editor/lib/document/box-header.js +1 -1
  30. package/dist/editor/lib/document/config.js +1 -1
  31. package/dist/editor/lib/storefront-editor-words.d.ts +9 -2
  32. package/dist/editor/lib/storefront-editor-words.js +1 -1
  33. package/dist/index.js +37 -29
  34. package/dist/render/app/globals.css +67 -9
  35. package/dist/render/built-with.json +1 -1
  36. package/dist/render/components/ChatContext.js +1 -1
  37. package/dist/render/components/FooterMenu.d.ts +9 -9
  38. package/dist/render/components/FooterMenu.js +1 -1
  39. package/dist/render/components/MenuLinkBlock.d.ts +7 -0
  40. package/dist/render/components/MenuLinkBlock.js +1 -0
  41. package/dist/render/components/ProductCard.js +1 -1
  42. package/dist/render/components/checkout/CheckoutPageClient.d.ts +2 -1
  43. package/dist/render/components/checkout/CheckoutPageClient.js +1 -1
  44. package/dist/render/components/checkout/checkout-state.d.ts +1 -0
  45. package/dist/render/components/checkout/checkout-state.js +3 -3
  46. package/dist/render/components/wheels-plp/PlpCard.js +1 -1
  47. package/dist/render/lib/catalog/relationships.js +1 -1
  48. package/dist/render/lib/checkout/pay-first.d.ts +19 -0
  49. package/dist/render/lib/checkout/pay-first.js +1 -1
  50. package/dist/render/lib/content/menu-card-seed.d.ts +6 -0
  51. package/dist/render/lib/content/menu-card-seed.js +1 -0
  52. package/dist/render/lib/document/blocks/service/FooterMenu/meta.d.ts +6 -0
  53. package/dist/render/lib/document/blocks/service/FooterMenu/meta.js +1 -1
  54. package/dist/render/lib/document/blocks/service/FooterMenu/render.js +1 -1
  55. package/dist/render/lib/document/blocks/service/MenuLinkBlock/meta.d.ts +2 -0
  56. package/dist/render/lib/document/blocks/service/MenuLinkBlock/meta.js +1 -0
  57. package/dist/render/lib/document/blocks/service/MenuLinkBlock/render.d.ts +2 -0
  58. package/dist/render/lib/document/blocks/service/MenuLinkBlock/render.js +1 -0
  59. package/dist/render/lib/document/blocks/service/metas.d.ts +1 -0
  60. package/dist/render/lib/document/blocks/service/metas.js +1 -1
  61. package/dist/render/lib/document/blocks/service/renders.d.ts +1 -0
  62. package/dist/render/lib/document/blocks/service/renders.js +1 -1
  63. package/dist/render/lib/document/blocks/text-part-shapes.json +0 -14
  64. package/dist/render/lib/document/card-templates.js +1 -1
  65. package/dist/render/lib/document/footer-page-blocks.js +1 -1
  66. package/dist/render/lib/document/lazy-draws.js +1 -1
  67. package/dist/render/lib/menu-link.d.ts +8 -0
  68. package/dist/render/lib/sections/reviews.d.ts +7 -0
  69. package/dist/render/lib/sections/reviews.js +1 -1
  70. package/dist/words.d.ts +30 -8
  71. package/dist/words.js +4 -4
  72. package/package.json +4 -4
  73. package/dist/chunks/EditorPreviewCheckout-OIN6G67Y.js +0 -4
  74. package/dist/chunks/chunk-SXRBNRRO.js +0 -320
  75. package/dist/editor/lib/document/blocks/service/placeholders.d.ts +0 -1
  76. package/dist/editor/lib/document/blocks/service/placeholders.js +0 -1
  77. /package/dist/chunks/{chunk-5O3W5AUB.js → chunk-CRXKVHUQ.js} +0 -0
  78. /package/dist/chunks/{chunk-PBQWSV3B.js → chunk-DX6JADLE.js} +0 -0
  79. /package/dist/chunks/{chunk-SXRBNRRO.js.LEGAL.txt → chunk-LMOEQBT7.js.LEGAL.txt} +0 -0
@@ -0,0 +1,340 @@
1
+ import{$ as Zg,B as $g,C as Ug,D as jg,Da as de,F as Kg,G as lu,Ha as lb,I as qg,Ia as ib,J as Ao,K as Tr,Ka as ql,L as Vg,La as cb,M as mt,Ma as db,N as Kl,Q as Yg,R as iu,Ra as fb,U as Xg,V as cu,X as du,a as Yt,b as ru,fa as Pr,h as Mg,ha as Jg,i as au,j as nu,ja as Qg,k as lo,l as Hg,la as eb,m as zg,ma as Uo,n as Oa,na as Aa,o as pt,oa as ob,p as _a,pa as kt,q as Ra,qa as fu,ra as Fa,s as Wg,v as Hn,va as zn,x as Gg,xa as tb,y as su,za as rb}from"./chunk-CRXKVHUQ.js";import{d as ab,e as Xt,f as nb,g as sb,j as La,n as uu}from"./chunk-DX6JADLE.js";var oe=e=>typeof e=="string"&&e?e:void 0;var pb="en",Vl=null,mb=pb,hb=null;function cee(e,o,t){Vl=e??null,mb=o||pb,hb=t??null}function ee(){return hb}function pu(){return mb}function xb(){return Vl}function ub(e,o){return o?e.replace(/\{([A-Za-z][A-Za-z0-9_]*)\}/g,(t,r)=>Object.prototype.hasOwnProperty.call(o,r)?String(o[r]):t):e}function i(e,o){let t=Vl?Vl[e]:void 0;if(typeof t=="function"){try{let r=oe(t(o??{}));if(r)return r}catch{}return ub(e,o)}return ub(oe(t)??e,o)}function ho(e,o,t,r){return i(t===1?e:o,{...r,n:t})}import{jsx as mu,Fragment as bL,jsxs as yL}from"react/jsx-runtime";import{createContext as SL,useContext as wL}from"react";var CL={mirrorHostStyles:!0,css:null,fontHrefs:[]},Ib=SL(CL);function pee({value:e,children:o}){return mu(Ib.Provider,{value:e,children:o})}function hu(){return wL(Ib)}function gb(){let{css:e,fontHrefs:o}=hu();return yL(bL,{children:[o.map(t=>mu("link",{rel:"stylesheet",href:t},t)),e?mu("style",{"data-sf-canvas-css":"",children:e}):null]})}import{jsx as vL}from"react/jsx-runtime";import{createContext as kL,useContext as TL}from"react";var bb=kL(void 0);function Iee({metadata:e,children:o}){return vL(bb.Provider,{value:e,children:o})}var yb=()=>TL(bb);import{jsx as no,Fragment as JF,jsxs as $l}from"react/jsx-runtime";import{useCallback as Nn,useEffect as vt,useRef as DQ,useState as VF}from"react";import{SettingsSwitch as NQ}from"efficient-easel/panel";import{PagesIcon as MQ,StylesIcon as HQ}from"efficient-easel/rail";import{PaletteIcon as zQ}from"efficient-shell/icons/efficient";import{Subtree as WQ,TreeRow as QF}from"efficient-easel/tree";import{useEasel as eL}from"efficient-easel/easel";import{useEaselStrings as oL}from"efficient-easel/strings";import{createContext as PL,useContext as EL}from"react";var xu=PL(!1),yee=()=>EL(xu);import{useMemo as OL,useRef as _L}from"react";import{useEaselApi as RL}from"efficient-easel/easel";import{useSectionOps as AL}from"efficient-easel/screen/lib/document/use-section-ops";function Yl(){let e=RL(),o=AL(),t=_L(o);return t.current=o,OL(()=>({getItemById:r=>e.getState().getItemById(r),getSelectorForId:r=>e.getState().getSelectorForId(r),get components(){return e.getState().config.components},replace:(r,a,n)=>t.current.replaceComponent(r,a,n)}),[e])}import{encodePartId as e6}from"efficient-easel/draw";import{insertAt as o6,moveTo as t6,removeAt as r6}from"efficient-easel/fields";function Zt(e,o){let t=globalThis,r=Symbol.for(e),a=t[r];return a===void 0&&(a=o(),t[r]=a),a}var Xl="dataSource";var FL="dataRows",Er="countKey",Wn="counts",LL=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;function Gn(){return Zt("efficient.block-sources",()=>({sources:new Map,revision:0}))}var BL=e=>[e?.key,e?.label,e?.value].every(o=>typeof o=="string"&&o.trim()!==""),DL=e=>[e?.key,e?.label].every(o=>typeof o=="string"&&o.trim()!==""),NL=e=>[e?.label,e?.href].every(o=>typeof o=="string"&&o.trim()!=="");function ML(e){if(typeof e.key!="string"||!LL.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=>wb(o)).filter(o=>o!==null)}:{},...Array.isArray(e.choices)?{choices:e.choices.filter(BL)}:{},...Array.isArray(e.fields)?{fields:e.fields.filter(DL).map(o=>({...o}))}:{},...NL(e.edit)?{edit:{label:e.edit.label.trim(),href:e.edit.href.trim()}}:{}}}function Oee(e){let o=e.map(ML),t=Gn();for(let r of o)t.sources.set(r.key,r);o.length&&(t.revision+=1)}function _ee(e){let o=[...Gn().sources.values()];return e===void 0?o:o.filter(t=>t.blocks.includes(e))}function Iu(e){return Gn().sources.get(e)??null}function Sb(e){return Gn().sources.get(e)?.choices??[]}function Ree(){return Gn().revision}function bo(e){let o=e?.[Xl];return typeof o=="string"?o.trim():""}function wb(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let o={};for(let[t,r]of Object.entries(e)){let a=oe(r);a&&(o[t]=a)}return Object.keys(o).length?o:null}function HL(e){let o=e?.[FL];return Array.isArray(o)?o.map(wb).filter(t=>t!==null):null}function Aee(e,o,t=[]){let r=HL(e);if(r!==null&&(r.length||!o))return{rows:r,sample:!1};if(!o)return{rows:[],sample:!1};let a=Iu(bo(e))?.sample;return{rows:a?.length?a:t,sample:!0}}import{isNodeList as gB}from"efficient-easel/data";var Cb=["general","commerce","service"],Jt=[{key:"openers",title:"Hero & intros",defaultExpanded:!0,templateable:!0,sections:[{type:"Hero",label:"Hero",set:"general"},{type:"HeroSingle",label:"Hero Single",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:"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:"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"}]},{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 Lee(){return Object.fromEntries(Jt.map(e=>[e.key,{title:e.title,components:e.sections.map(o=>o.type),...e.defaultExpanded?{defaultExpanded:!0}:{}}]))}var zL={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).
2
+
3
+ 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.
4
+
5
+ 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.
6
+
7
+ NO CONVERTER ROW: 0 Spacer nodes on any page, draft or published, in any schema of the local production clone (read-only count, 2026-10-26), and none in the backend's seed files. This entry is its reason in the guard (\`scripts/test-section-to-box.tsx\` \xA75: a retired type is accounted for).
8
+
9
+ 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).
10
+
11
+ 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.
12
+
13
+ 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.
14
+
15
+ 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.`,DeliveryOptions:`Lewis, 2026-10-10 (section-merges.md group 4, approved): one Cards section holds the five card grids \u2014 Cards, Key Features, Document Detail Cards, Recurring Columns and Delivery Options. Card content = Manual / Delivery options; the card's parts are Display chips; one Highlighted card row with its Highlight badge. Retired by card [MERGE] Delivery Options, Detail Cards And Recurring Columns Into Cards (M3, 2026-11-04).
16
+
17
+ WHAT REPLACES IT: Cards with Card content set to Delivery options, drawn from its card template: the backend's \`delivery-options\` rows (name, price, time, note), one card each, in the website's own currency. The one Highlighted card row and the Highlight badge replace the per-option Highlight switch.
18
+
19
+ WHAT A MERCHANT LOSES: more than one highlighted option (Lewis approved ONE Highlighted card row, 2026-10-10). No stored node held two.
20
+
21
+ NO CONVERTER ROW: 0 DeliveryOptions nodes on the US sites, draft or published (read only, 2026-11-04). This entry is its reason in the guard (\`scripts/test-section-to-box.tsx\` \xA75).
22
+
23
+ THE TYPE KEY STAYS AND SO DOES THE COMPONENT (efficient-storefront-blocks). A Delivery Options anywhere still renders through it and can still be edited; no document is rewritten.`,Series:`Lewis, 2026-10-10 (section-merges.md group 4, approved): one Cards section holds the five card grids \u2014 Cards, Key Features, Document Detail Cards, Recurring Columns and Delivery Options. Card content = Manual / Delivery options; the card's parts are Display chips; one Highlighted card row with its Highlight badge. Retired by card [MERGE] Delivery Options, Detail Cards And Recurring Columns Into Cards (M3, 2026-11-04).
24
+
25
+ WHAT REPLACES IT: Cards drawn from its card template. A column's number is Number, its "Right Top Text" Corner note, its title Card title, its words Card body, its count and label one Count, and the one \`viewLabel\` a plain Text typed once in the template, so every card shows it; the background is the Box's. The converter row (\`section-to-box-rows-cards.ts\`, OFF) lays down that Cards inside a Box.
26
+
27
+ WHAT A MERCHANT LOSES (the LOOK GAPS in that file): the grid takes the Cards block's own gaps and breakpoints; a short row no longer keeps 4 columns; the count is one plain Text, its figure no longer in the text ink; a card with no count still draws the footer line.
28
+
29
+ THE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Recurring Columns still renders through it and can still be edited; no document is rewritten.`,DocMetaCards:`Lewis, 2026-10-10 (section-merges.md group 4, approved): one Cards section holds the five card grids \u2014 Cards, Key Features, Document Detail Cards, Recurring Columns and Delivery Options. Card content = Manual / Delivery options; the card's parts are Display chips; one Highlighted card row with its Highlight badge. Retired by card [MERGE] Delivery Options, Detail Cards And Recurring Columns Into Cards (M3, 2026-11-04).
30
+
31
+ WHAT REPLACES IT: Cards drawn from its card template, each card a Label, a Value and a Card body. The converter row (\`section-to-box-rows-cards.ts\`, OFF) lays down that Cards inside a Box.
32
+
33
+ WHAT A MERCHANT LOSES (the LOOK GAPS in that file): the grid takes the Cards block's own gaps and breakpoints, not the old 40 (16 on a phone).
34
+
35
+ THE TYPE KEY STAYS AND SO DOES THE COMPONENT. Every page holding a Document Detail Cards still renders through it and can still be edited; no document is rewritten.`,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."},Bee=["Grid","Spacer"],Dee=Array.from(new Set([...Jt.flatMap(e=>e.sections.map(o=>o.type)),...Object.keys(zL)])),Jl=Object.fromEntries(Jt.flatMap(e=>e.sections.map(o=>[o.type,o.label]))),WL={Heading:"general",Text:"general",Eyebrow:"general",ImageBlock:"general",LogoBlock:"general",LocationMap:"general",Contents:"general",ButtonBlock:"general",PostCard:"general",HeroSlide:"general",HeroGroup:"general",Integrations:"general",Grid:"general",KeyFeatures:"general",Spacer:"general",Series:"general",DocMetaCards:"general",CollectionCard:"commerce",GalleryItem:"commerce",ProductRef:"commerce",CompatibleTyres:"commerce",DeliveryOptions:"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",MenuLinkBlock:"service",EmailFormBlock:"service",SocialLogosBlock:"service",PaymentLogosBlock:"service",LegalLineBlock:"service",SiteHeader:"service",SiteFooter:"service"},Zl={...WL,...Object.fromEntries(Jt.flatMap(e=>e.sections.map(o=>[o.type,o.set])))};function vb(e){return Object.prototype.hasOwnProperty.call(Zl,e)?Zl[e]:void 0}function gu(e){return Object.keys(Zl).filter(o=>Zl[o]===e).sort()}var Nee=gu("general"),Mee=gu("commerce"),Hee=gu("service"),bu="Flex",Tt="Box",zee=`${Tt}es`;function GL(e){return e==="section"?"Blank section":Tt}function yu(e,o,t){return e===bu?GL(o):t}var Ke="content",V="Flex",$L="Text & media",UL="Layout & structure",Tb=[{type:"Eyebrow",label:"Eyebrow",retired:!0},{type:"Heading",label:"Heading",retired:!0},{type:"Text",label:"Text"},{type:"ImageBlock",label:"Image"},{type:"LogoBlock",label:"Logo"},{type:"LocationMap",label:"Map"},{type:"ButtonBlock",label:"Button"},{type:"Contents",label:"Contents"}],jL=[...Tb,{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:$L})),KL=(Jt.find(e=>e.key==="structure")?.sections??[]).map(e=>({type:e.type,label:e.label,group:UL})),kb=[...jL,...KL],Su=[...Tb,{type:"HeroGroup",label:Tt}],$ee=Su.map(e=>e.type),qL=1,VL=Su.filter(e=>e.type!=="HeroGroup");function YL(e){return e<qL?Su:VL}var XL={Flex:{slot:Ke,choices:()=>kb},Grid:{slot:Ke,choices:()=>kb},HeroGroup:{slot:Ke,choices:YL}};function Pb(e,o=0){let t=XL[e];return t?{slot:t.slot,choices:t.choices(o)}:null}function to(e,o,t){return e.some(r=>(typeof r=="object"?r.value:r)===t)?t:o}var wu="small",Cu="dot",ZL=[{label:"Small",value:"small"},{label:"Display",value:"display"}],vu=[{label:"Dot \u25CF",value:"dot"},{label:"Cross \u2715",value:"cross"},{label:"Slash /",value:"slash"},{label:"Triangle \u25BC",value:"triangle"},{label:"None",value:"none"}],Ql={dot:"\u25CF",cross:"\u2715",slash:"/",triangle:"\u25BC",none:""},JL={small:"font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.25em] max-view-wide:text-[length:var(--size-label,12px)]",display:"font-display font-medium text-[length:var(--size-headingMedium,44px)] uppercase leading-none tracking-[0.005em] max-view-wide:text-[length:var(--size-headingMedium,28px)]"},QL={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 qee(e){return to(ZL,wu,e)}function $n(e){return to(vu,Cu,e)}function Vee(e){return JL[e]}function Eb(e,o){return QL[e][o]}var Zee=[{value:"none"},{value:"dot"},{value:"cross"},{value:"slash"},{value:"triangle"}];function Ob(e){return vu.some(o=>o.value===e)?$n(e):void 0}var eB="overflow-x-clip [&>*]:shrink-0 [&>*]:max-view-wide:basis-[content] [&>*_:is(p,h1,h2,h3,h4,h5,h6)]:max-w-none [&>*_:is(.sf-button-block>div)]:font-mono [&>*_:is(.sf-button-block>div)]:text-[length:var(--size-label,14px)] [&>*_:is(.sf-button-block>div)]:tracking-[0.2em] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:inline-flex [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:items-center [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:align-top [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:h-[calc(1lh/var(--sf-sep-k,1))] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:mr-[var(--sf-gap-len,0px)] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:max-view-wide:before:mr-[var(--sf-gap-len-phone,calc(var(--sf-gap-len,0px)/2))] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:text-accent [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:text-[length:calc(var(--sf-sep-k,1)*1em)] [&>*+*_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:before:content-[var(--sf-sep-mark)]";function Or(e,o){return e==="row"&&Ob(o)!==void 0}function Jee(e,o){return Or(e,o)?eB:""}var oB="[&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:inline-flex [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:items-center [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:align-top [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:h-[calc(1lh/var(--sf-sep-k,1))] [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:ml-[var(--sf-gap-len,0px)] [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:max-view-wide:after:ml-[var(--sf-gap-len-phone,calc(var(--sf-gap-len,0px)/2))] [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:text-accent [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:text-[length:calc(var(--sf-sep-k,1)*1em)] [&>*:last-child_:is(:is(p,h1,h2,h3,h4,h5,h6):first-child,.sf-button-block>div)]:after:content-[var(--sf-sep-mark)]";function Qee(e,o){return Or(e,o)?oB:""}function eoe(e,o){if(!Or(e,o))return{};let t=Ob(o),r=/^text-\[([\d.]+)em\]$/.exec(Eb("small",t))?.[1],a=Ql[t];return{"--sf-sep-mark":a===""?"none":JSON.stringify(a),...r?{"--sf-sep-k":r}:{}}}var Un={sectionPaddingTop:0,sectionPaddingBottom:0},_b={start:"justify-start",center:"justify-center",between:"justify-between",end:"justify-end"},Rb={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"};function roe(e,o){let t=typeof e=="string"&&e in _b?_b[e]:"",r=typeof o=="string"&&o in Rb?Rb[o]:"";return[t,r].filter(Boolean).join(" ")}function aoe(e){return e===!0||e==="wrap"?"flex-wrap":""}var jn="Block widths",ku=[{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]}],Ba="[&>*]:min-w-0 [&>*]:flex-1 [&>*]:basis-0",tB={equal:Ba,bigLeft:`${Ba} [&>*:first-child]:view-wide:grow-[2]`,bigRight:`${Ba} [&>*:last-child]:view-wide:grow-[2]`,biggerLeft:`${Ba} [&>*:first-child]:view-wide:grow-[3]`,biggerRight:`${Ba} [&>*:last-child]:view-wide:grow-[3]`,twoThree:`${Ba} [&>*:first-child]:view-wide:grow-[2] [&>*:last-child]:view-wide:grow-[3]`};function rB(e){return typeof e=="string"?tB[e]??"":""}var Ab="view-tablet:max-view-desktop:flex-row!",Da=`${Ab} [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-0!`,Fb={content:`${Ab} [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[content]!`,equal:Da,bigLeft:`${Da} [&>*:first-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[2]!`,bigRight:`${Da} [&>*:last-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[2]!`,biggerLeft:`${Da} [&>*:first-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[3]!`,biggerRight:`${Da} [&>*:last-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[3]!`,twoThree:`${Da} [&>*:first-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[2]! [&>*:last-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[3]!`};function aB(e){return typeof e=="string"&&e in Fb?e:null}function noe(e){if(e.direction!=="row"||Or(e.direction,e.separator)||e.loop==="scroll"||e.line===!0||Hb(e.columns)!==""||zb(e.columnsTablet)!=="")return"";let o=aB(e.shareTablet);return o===null?"":Fb[o]}var nB="[&>*]:view-wide:basis-[content]";function soe(e){return rB(e)===""?nB:""}var Tu="Columns",ei=1,Lb=3,Bb={2:"max-view-wide:flex-wrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px)))/2)]",3:"max-view-wide:flex-wrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px))_*_2)/3)]"},Db=ku.filter(e=>e.value==="content"||e.value==="equal"),Nb="equal",Pu=1,Mb=6,Na="view-wide:flex-wrap [&>*]:view-wide:min-w-0 [&>*]:view-wide:grow-0!",sB={1:`${Na} [&>*]:view-wide:basis-[calc(100%/1)]!`,2:`${Na} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px))/2)]!`,3:`${Na} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_2)/3)]!`,4:`${Na} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_3)/4)]!`,5:`${Na} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_4)/5)]!`,6:`${Na} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_5)/6)]!`};function Hb(e){return typeof e=="number"?sB[e]??"":""}var lB={1:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc(100%/1)]!",2:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px)))/2)]!",3:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_2)/3)]!",4:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_3)/4)]!",5:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_4)/5)]!",6:"view-tablet:max-view-desktop:flex-row! view-tablet:max-view-desktop:flex-wrap! [&>*:nth-child(n)]:view-tablet:max-view-desktop:min-w-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[calc((100%_-_var(--sf-gap-len-tablet,var(--sf-gap-len,0px))_*_5)/6)]!"};function zb(e){return typeof e=="number"?lB[e]??"":""}function loe(e){return e.direction!=="row"||Or(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":zb(e.columnsTablet)}function ioe(e){return e.direction!=="row"||Or(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":Hb(e.columns)}var iB="max-view-wide:flex-wrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:grow-0 [&>*]:max-view-wide:basis-[content]",cB={2:"max-view-wide:flex-nowrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px)))/2)]",3:"max-view-wide:flex-nowrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:basis-[calc((100%_-_var(--sf-gap-len-phone,var(--sf-gap-len,0px))_*_2)/3)]"},dB="max-view-wide:flex-nowrap [&>*]:max-view-wide:grow-0 [&>*]:max-view-wide:basis-[content]";function fB(e){return e===!1||e==="nowrap"}function coe(e,o,t){let r=Bb[Number(e)];if(!r)return"max-view-wide:flex-col";let a=fB(t);return uB(e,o)?a?dB:iB:a?cB[Number(e)]:r}function uB(e,o){return Number(e)in Bb&&o==="content"}var Wb="Block spacing",Eu=[{label:"Each block",value:"each"},{label:"Gap only",value:"gap"}],pB="sf-box-gap-only";function doe(e){return e==="gap"?pB:""}var Gb={label:"Text",defaultProps:{text:"",align:"left",tone:"default",tag:"p",contained:!0}};var{text:hoe,tag:xoe,...mB}=Gb.defaultProps,K=mB,fe={...K,tone:"dim"},oi={justify:"start",align:"stretch",wrap:!1,blockSpacing:"gap",padV2:!0},B={...oi,direction:"column",...Un},Fo=(e,o=e,t=e,r=o)=>({sectionPaddingTop:e,sectionPaddingRight:o,sectionPaddingBottom:e,sectionPaddingLeft:o,sectionPaddingTopPhone:t,sectionPaddingRightPhone:r,sectionPaddingBottomPhone:t,sectionPaddingLeftPhone:r}),G=(e,o,t,r)=>({sizeToken:{step:e,px:o,...r?{stepPhone:r}:{},...t?{pxPhone:t}:{}}});function Kn(e,o,t=""){return e.map((r,a)=>{let n=t?`${t}.${a}`:String(a),s={...r.props??{}};for(let[l,c]of Object.entries(r.slots??{}))s[l]=Kn(c,o,n);return{type:r.type,props:{...s,id:o(r.type,n)}}})}var Lo=()=>({tag:"h2",_partStyles:{text:{textStyle:"heading-2"}}}),xo=()=>({_partStyles:{text:{textStyle:"body-5",color:"accent",letterSpacing:.3,case:"upper",lineHeight:1.5}}});var Ou={...B,gap:12,gapPhone:12,...Fo(32,32,28,28)},_u={textStyle:"heading-3",...G("headingSmall",20),weight:500,case:"upper",lineHeight:1.5,letterSpacing:.02},Ru={textStyle:"body-1",...G("body",15),lineHeight:1.6},jo=(e,o,t,r=!1)=>({type:"Text",props:{...o,text:"",[Pt]:e,_partStyles:{text:{...r?xo()._partStyles?.text??{}:{},...t}}}}),qn={title:"title",body:"body"},ti={title:"name",body:"note"},hB=(e=qn)=>({type:V,props:{...Ou,name:"Card"},slots:{[Ke]:[jo(e.title,{...K,tag:"p",widthFit:"fill"},_u),jo(e.body,{...fe,tag:"p",widthFit:"fill"},Ru)]}}),ri=(e,o)=>Kn([hB(o)],e);function $b(e,o){if(e!=="Cards")return o;if(o.template!==void 0)return IB(o);let t=oe(o.id)??"Cards",r=bo(o)?ti:qn;return{...o,template:ri((a,n)=>n==="0"?`${t}~card`:`${t}~card.${n.slice(2)}`,r)}}var xB=e=>{let[o,t]=e?[qn,ti]:[ti,qn];return new Map([[o.title,t.title],[o.body,t.body]])};function Ub(e,o){let t=null;return e.forEach((r,a)=>{let n=r?.props;if(!n)return;let s=n,l=n[Pt];r.type==="Text"&&typeof l=="string"&&o.has(l)&&(s={...s,[Pt]:o.get(l)});let c=n[Ke];if(Array.isArray(c)){let d=Ub(c,o);d!==c&&(s={...s,[Ke]:d})}s!==n&&(t??=[...e],t[a]={...r,props:s})}),t??e}function IB(e){if(!Array.isArray(e.template))return e;let o=Ub(e.template,xB(!!bo(e)));return o===e.template?e:{...e,template:o}}var Au="template",jb="Card template",bB=["Text","ImageBlock","ButtonBlock","Flex"],Pt="rowField",yB="rowLinkField";function Kb(){return{type:"slot",allow:[...bB]}}var SB=[{block:"OrderSummary",typedRows:"rows",fields:[{key:"label",label:"Item"},{key:"meta",label:"Meta line"},{key:"amount",label:"Amount"}]},{block:"Cards",typedRows:"items",fields:[{key:"num",label:"Number"},{key:"since",label:"Corner note"},{key:"label",label:"Label"},{key:"title",label:"Card title"},{key:"value",label:"Value"},{key:"body",label:"Card body",multiline:!0},{key:"href",label:"Link",kind:"link"},{key:"count",label:"Count"},{key:"badge",label:"Highlight badge",everySource:!0}],seed:e=>$b("Cards",e)}];function ht(){return Zt("efficient.card-templates",()=>new Map(SB.map(e=>[e.block,e])))}function Doe(e){for(let o of e){if(typeof o.block!="string"||!o.block)throw new Error("A card template names no block.");let t=[];for(let a of o.blocks??[]){if(typeof a?.type!="string"||!a.type)throw new Error(`The card template of ${o.block} names an empty block.`);t.some(n=>n.type===a.type)||t.push({type:a.type,label:a.label||a.type})}let r=oe(o.typedRows);ht().set(o.block,{block:o.block,fields:o.fields.map(a=>({...a})),blocks:t,typedRows:r,...o.seed?{seed:o.seed}:{}})}}function wB(e,o){let t=e?ht().get(e)?.seed:void 0;return t?t(o):o}function qb(e,o){if(!(o.template===void 0||Array.isArray(o.template)&&o.template.length===0))return o;let{template:t,...r}=o,a=wB(e,r);return a===r?o:a}function Vb(){for(let e of ht().values())if(e.blocks?.length)return!0;return!1}function Yb(e){return ht().get(e)?.blocks??[]}function Noe(e){for(let o of ht().values())if(o.blocks?.some(t=>t.type===e))return!0;return!1}function Xb(e){return typeof e=="string"&&ht().get(e)?.typedRows||""}function Fu(e){return typeof e=="string"&&ht().has(e)}function Moe(e,o){let t=ht().get(e)?.fields??[];return o?t.filter(r=>(r.kind??"text")===o):t}function CB(e,o){let t=typeof e?.type=="string"?e.type:"";if(!t)return[];let r=ht().get(t)?.fields??[],a=Iu(bo(e?.props))?.fields,n=a?.length?[...a.map(s=>({...s})),...r.filter(s=>s.everySource&&!a.some(l=>l.key===s.key))]:r;return o?n.filter(s=>(s.kind??"text")===o):n}function Zb(e,o,t){return e?t?CB(t).find(r=>r.key===o)??null:ht().get(e)?.fields.find(r=>r.key===o)??null:null}function Qt(e,o=Pt){let t=e?.[o];return typeof t=="string"?t.trim():""}function Hoe(e,o){return e.key||String(o+1)}function zoe(e){let o={};if(e&&typeof e=="object"&&!Array.isArray(e))for(let[t,r]of Object.entries(e))typeof r=="string"&&(o[t]=r);return o}function Woe(e,o,t=""){let r=o&&e&&typeof e=="object"?e[o]:void 0;if(!Array.isArray(r))return"";for(let a of r){let n=typeof a=="string"?a:a?.src,s=oe(typeof n=="string"?n.trim():void 0);if(s&&s!==t.trim())return s}return""}var Jb={Text:{text:Pt},ImageBlock:{src:Pt},ButtonBlock:{label:Pt,href:yB}};function Qb(e,o,t){return Lu(e,o,t)!==""}function Lu(e,o,t){let r=Jb[e]?.[t];return r?Qt(o,r):""}function vB(e,o){return!o||!e?null:e[o]??""}function Goe(e,o,t){if(!t)return o;let r=null;for(let[a,n]of Object.entries(Jb[e]??{})){let s=vB(t,Qt(o,n));s!==null&&(r??={...o},r[a]=s)}return r??o}function Bu(e,o){let t=e?.data?.content;if(!Array.isArray(t)||typeof o!="string")return;let r=(n,s)=>{for(let l of n){if(l?.props?.id===o)return s;for(let[c,d]of Object.entries(l?.props??{})){if(!gB(d))continue;let p=c===Au&&Fu(l.type)?{owner:l,direct:!0,nested:s!==null,underBox:!1}:s&&{owner:s.owner,direct:!1,nested:s.nested,underBox:s.underBox||l.type===V},h=r(d,p);if(h!==void 0)return h}}},a=r(t,null);return a===void 0?null:a}function ai(e,o){let t=Bu(e,o);return t&&t.owner}function $oe(e,o){let t=Bu(e,o);return t&&(t.direct?t.owner:null)}function Uoe(e,o){let t=Bu(e,o);if(t!==void 0)return t===null?{inCopy:!1,nestedCopy:!1,underBox:!1}:{inCopy:!0,nestedCopy:t.nested,underBox:t.underBox}}import{useSyncExternalStore as q3}from"react";import{isNodeList as ni}from"efficient-easel/data";var ey="Flex";function Vn(e){if(Qt(e))return"";let o=e?.[Er];return typeof o=="string"?o.trim():""}var kB=new Intl.NumberFormat("en-US");function TB(e){return/^\d+$/.test(e)?kB.format(Number(e)):e}function Yoe(e,o){let t=o?o.find(r=>r.key===e)?.value:Sb(Wn).find(r=>r.key===e)?.value;return t===void 0?null:TB(t)}function Du(e){let o=e.props;if(!o)return{node:e,names:!1};let t=e.type==="Text"&&Vn(o)!=="",r=o;for(let[n,s]of Object.entries(o)){if(!ni(s))continue;let l=s.map(Du);l.some(c=>c.names)&&(t=!0),l.some((c,d)=>c.node!==s[d])&&(r={...r,[n]:l.map(c=>c.node)})}if(e.type!==ey)return{node:r===o?e:{...e,props:r},names:t};let a=bo(r);if(t&&!a&&(r={...r,[Xl]:Wn}),!t&&a===Wn){let{[Xl]:n,...s}=r;r=s}return{node:r===o?e:{...e,props:r},names:!1}}function oy(e,o,t){for(let r of e){if(r?.props?.id===o)return t;for(let a of Object.values(r?.props??{})){if(!ni(a))continue;let n=oy(a,o,r.type===ey?r:t);if(n!==void 0)return n}}}function Xoe(e,o){if(!ni(e))return!0;let t=oy(e,o,null);if(t===void 0)return!0;if(t===null)return!1;let r=bo(t.props);return!r||r===Wn}function ty(e){let o=e?.content;if(!ni(o))return e;let t=o.map(Du);return t.every((r,a)=>r.node===o[a])?e:{...e,content:t.map(r=>r.node)}}function ry(e){return Du(e).node}import{applyMark as rte,markupTools as ate,MARKUP_TOOLS as nte,COPY_FIELD_TOOLS as ste,STOREFRONT_MARKUP as lte,tokenizeInline as ite,stripInline as cte,isSafeLinkHref as fy}from"efficient-shell/markup";import{applyMark as MB,clearStyle as HB,markedAt as zB,markupTools as WB,MARKUP_TOOLS as GB,parseMarkup as $B,RETIRED_MARKS as UB,STOREFRONT_MARKUP as jB,tokenizeInline as fte}from"efficient-shell/markup";var _r=["highlight","strong","quiet"],Rr={highlight:"Highlight",strong:"Bold",quiet:"Quiet"},xt={highlight:{kind:"wordHighlight",delimiter:"@@"},strong:{kind:"wordStrong",delimiter:"++"},quiet:{kind:"wordQuiet",delimiter:"^^"}},ly=Object.fromEntries(_r.map(e=>[xt[e].kind,e])),iy="data-sf-ws",si=["accent","text","labels"],cy={accent:"Accent",text:"Text",labels:"Labels"},Et={accent:"var(--accent)",text:"var(--fg)",labels:"var(--fg-dim)"},PB=80,EB=120,OB=100,_B=900,RB=.5,AB=3,FB=-.1,LB=.5,BB=3,Nu={font:null,size:null,weight:null,bold:null,italic:null,lineGap:null,textGap:null,colour:null},DB={highlight:{...Nu},strong:{...Nu},quiet:{...Nu}};function ay(e,o,t){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,o),t))}function ny(e,o,t){if(typeof e!="number"||!Number.isFinite(e))return null;let r=10**BB;return Math.round(Math.min(Math.max(e,o),t)*r)/r}function sy(e){return typeof e=="boolean"?e:null}function NB(e){let o=typeof e?.font=="string"&&Uo.some(r=>r.key===e.font)?e.font:null,t=typeof e?.colour=="string"&&si.includes(e.colour)?e.colour:null;return{font:o,size:ay(e?.size,PB,EB),weight:ay(e?.weight,OB,_B),bold:sy(e?.bold),italic:sy(e?.italic),lineGap:ny(e?.lineGap,RB,AB),textGap:ny(e?.textGap,FB,LB),colour:t}}function dy(e){let o={};for(let t of _r)o[t]=e&&t in e&&e[t]?NB(e[t]):{...DB[t]};return o}function Qoe(e){let o=dy(e),t={};for(let r of _r){let a=o[r],n=`--sf-ws-${r}`;if(a.font){let s=Uo.find(l=>l.key===a.font);s&&(t[`${n}-font`]=`var(${s.cssVar})`)}a.size!==null&&(t[`${n}-size`]=`${a.size/100}em`),a.weight!==null&&(t[`${n}-weight`]=String(a.weight)),a.bold!==null&&(t[`${n}-weight-bold`]=a.bold?"700":"400"),a.italic!==null&&(t[`${n}-style`]=a.italic?"italic":"normal"),a.lineGap!==null&&(t[`${n}-line`]=String(a.lineGap)),a.textGap!==null&&(t[`${n}-track`]=`${a.textGap}em`),a.colour!==null&&(t[`${n}-color`]=Et[a.colour])}return t}function ete(e){let o=e?.word_styles??void 0,t={};for(let r of _r)o&&r in o&&(t[r]=o[r]??null);return dy(t)}var KB=new Set(["strong"]),uy=_r.map(e=>({open:xt[e].delimiter,close:xt[e].delimiter,kind:xt[e].kind,...KB.has(e)?{wordStart:!0}:{}})),pte=[{style:xt.highlight.kind,label:Rr.highlight,title:`${Rr.highlight} word style`},{style:xt.strong.kind,label:Rr.strong,title:`${Rr.strong} word style`},{style:xt.quiet.kind,label:Rr.quiet,title:`${Rr.quiet} word style`}],qB=new Set(uy.map(e=>e.open)),Ar=[...jB.filter(e=>!qB.has(e.open)),...uy];function Mu(e){return e.bullet?"- ":e.number!=null?`${e.number}. `:""}function Yn(e){return $B(typeof e=="string"?e:"",Ar)}var VB=GB.map(e=>e.style).filter(e=>!UB.includes(e)).filter(e=>Ar.some(o=>o.kind===e));function py(){return WB(VB)}var my=Object.fromEntries(_r.map(e=>[xt[e].kind,xt[e].delimiter]));function hy(e,o,t,r){let a=my[r];if(!a)return MB(e,o,t,r);let n=e.slice(o,t),s=e.slice(Math.max(0,o-a.length),o),l=e.slice(t,t+a.length);if(s===a&&l===a)return{text:e.slice(0,o-a.length)+n+e.slice(t+a.length),selectionStart:o-a.length,selectionEnd:o-a.length+n.length};let c=n||"styled text";return{text:e.slice(0,o)+a+c+a+e.slice(t),selectionStart:o+a.length,selectionEnd:o+a.length+c.length}}function xy(e,o,t,r){let a=my[r];return a?o>=a.length&&e.slice(o-a.length,o)===a&&e.slice(t,t+a.length)===a:zB(e,o,t,r)}function Fr(e){return Yn(e).map(o=>Mu(o)+gy(o.children)).join(`
36
+ `)}function Iy(e,o,t){return HB(e,o,t,Ar)}function gy(e){return e.map(o=>o.kind==="text"?o.text:gy(o.children)).join("")}import{jsx as S,jsxs as Ya,Fragment as dr}from"react/jsx-runtime";import{cloneElement as NC,createContext as v5,useContext as k5,useEffect as T5,useId as MC,useRef as ac,useState as ds}from"react";import{useEasel as dm,useSelectedHost as lc}from"efficient-easel/easel";import{toDateKey as kce,fromDateKey as Tce}from"efficient-shell/format";function YB(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.src=="string"}function er(e){return typeof e=="string"?e:YB(e)?e.src:""}function hte(e,o,t){return Hu(e,o.split("."),t)}function Hu(e,o,t){if(o.length===0)return t(e);let[r,...a]=o,n=r.endsWith("[]"),s=n?r.slice(0,-2):r;if(!e||typeof e!="object"||Array.isArray(e))return e;let l=e;if(!(s in l))return e;let c=l[s];if(n){if(!Array.isArray(c))return e;let p=!1,h=c.map(u=>{let x=Hu(u,a,t);return x!==u&&(p=!0),x});return p?{...l,[s]:h}:e}let d=Hu(c,a,t);return d===c?e:{...l,[s]:d}}var XB=["upload","youtube"],ZB="upload",gte={upload:"Upload",youtube:"YouTube"},JB=["background","click"],QB="background",bte={background:"Background",click:"Click to play"};function yy(e){return XB.includes(e)?e:ZB}function Sy(e){return JB.includes(e)?e:QB}var by=/^[A-Za-z0-9_-]{11}$/,eD=/^(?:www\.|m\.|music\.)?(?:youtube\.com|youtube-nocookie\.com|youtu\.be)$/;function wy(e){let o=typeof e=="string"?e.trim():"";if(!o)return null;if(by.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:"||!eD.test(t.hostname))return null;let r=t.pathname.split("/").filter(Boolean),a=t.hostname.endsWith("youtu.be")?r[0]:r[0]==="watch"?t.searchParams.get("v"):r[0]==="embed"||r[0]==="shorts"||r[0]==="live"||r[0]==="v"?r[1]:null;return a&&by.test(a)?a:null}function zu(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 Cy(e){return`https://i.ytimg.com/vi/${e}/maxresdefault.jpg`}function vy(e){return`https://i.ytimg.com/vi/${e}/hqdefault.jpg`}var Wu="Play video";var Gu={frame:"Video frame",image:"Image"},yte={any:[{field:"loadingShows",is:"image"},{all:[{not:{field:"loadingShows",set:!0}},{field:"poster",set:!0}]}]};function $u(e){let o=e.loadingShows;return o==="image"?"image":o!=null&&o!==""?"frame":er(e.poster)?"image":"frame"}function Ste(e){return er($u(e)==="image"?e.poster:e.videoFrame)||void 0}import{readHidable as fr,hidableText as P5}from"efficient-easel/draw";import{FOLD_FIELD_MARKER as HC,LINK_FIELD_MARKER as E5,MEDIA_FIELD_MARKER as O5,SCAFFOLD_FIELD_MARKER as _5,TEXT_FIELD_MARKER as At,foldMetaOf as Ft,textFieldIdentifier as Ace}from"efficient-easel/draw";import{jsx as Ry}from"react/jsx-runtime";import{useCallback as aD}from"react";import{useEasel as nD}from"efficient-easel/easel";import{SettingsAction as sD}from"efficient-easel/panel";import{CORNER_SIDES as li,hasCornerSubset as Xn,normalizeCornerSides as It}from"efficient-easel/screen/lib/content/style-keys";function Uu(e){return typeof e=="number"&&Number.isFinite(e)}function kte(e,o){if(!Uu(e))return;let t=Kl(mt(e));if(Object.keys(t).length===0)return;let r=t[ju];if(typeof r!="string")return t;let a=Xn(o)?Lr(r,It(o)??[]):r;return{...t,[oD]:a}}var oD="--sf-section-radius",ju="--sf-card-radius";function Lr(e,o){return li.map(t=>o.includes(t)?e:"0").join(" ")}var ky=[{value:"tl",label:"Top left"},{value:"tr",label:"Top right"},{value:"bl",label:"Bottom left"},{value:"br",label:"Bottom right"}];var tD="--sf-card-box-radius";function Ku(e){return typeof e=="number"&&Number.isFinite(e)}function Ote(e,o){if(!Ku(e))return;let t=Kl(mt(e))[ju];if(typeof t!="string")return;let r=Xn(o)?Lr(t,It(o)??[]):t;return{[tD]:r}}function Ty(e,o){let t=e.find(n=>n?.props?.id===o);if(!t)return[...e];let r=t.props?.cardCorners,a=t.props?.cardCornerSides;return e.map(n=>n?.props?.id===o?n:{...n,props:{...n.props,cardCorners:r,cardCornerSides:a}})}import{locateNode as rD}from"efficient-easel/draw";function Zn(e){if(!e)return null;let o=e.lastIndexOf(":");return o>0?{ownerId:e.slice(0,o),slot:e.slice(o+1)}:null}function ii(e,o,t){let r=Zn(t?.zone),a=r?rD(e,o,r.ownerId):null;return a&&r?{...a,slot:r.slot}:null}function Py(e,o,t){let r=ii(e,o,t),a=r?.slot??"",n=r&&Array.isArray(r.item.props[a])?r.item.props[a]:[],s=t?.index??-1,l=s>=0?n[s]:void 0,c=l?.props?.id?String(l.props.id):"",d=Math.max(n.length-1,0);return!r||!c?{can:!1,reason:"unreachable",others:0}:n.length<=1?{can:!1,reason:"alone",others:d}:Ku(l?.props?.cardCorners)?{can:!0,others:d,zone:r.zone,index:r.index,data:{...r.item,props:{...r.item.props,[a]:Ty(n,c)}}}:{can:!1,reason:"unset",others:d}}function Ey(e){return e.can?ho("Gives the other card this card's Corners.","Gives the other {n} cards this card's Corners.",e.others):e.reason==="alone"?i("This is the only card in the section."):e.reason==="unset"?i("Set this card's corners first."):i("This card is not in a section that can share corners.")}function Oy(e){return ho("Applied to {n} card","Applied to {n} cards",e)}function _y(e,o){e.can&&o(e.zone,e.index,e.data)}import{useSectionOps as lD}from"efficient-easel/screen/lib/document/use-section-ops";var iD="apply-corners-to-siblings",cD="Apply to all cards";function dD({plan:e,onPress:o}){return Ry(sD,{id:iD,label:i(cD),note:Ey(e),disabled:!e.can,doneLabel:Oy(e.others),onPress:o})}function Ay(){let{appState:e,config:o}=nD(n=>n),t=lD(),r=Py(o,e.data.content??[],e.ui.itemSelector),a=aD(()=>{_y(r,t.replaceComponent)},[r,t]);return Ry(dD,{plan:r,onPress:a})}import{isShown as kD,lazyShowWhenContext as TD}from"efficient-shell/format";var Br="product",ci="recordType",fD={key:Br,label:"Product",fields:[]},uD=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,pD=/^[a-z][A-Za-z0-9]*$/,mD=["text","date"],Fy=new Map,Ly=0;function hD(e){if(typeof e.key!="string"||!uD.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===Br)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"||!pD.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(!mD.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 jte(e){let o=e.map(hD);for(let t of o)Fy.set(t.key,t);o.length&&(Ly+=1)}function qu(){return[fD,...Fy.values()]}function Vu(){return Ly}function Yu(e){let o=e?.[ci];return typeof o!="string"?Br:o.trim()||Br}function Xu(e){return Yu(e)===Br}var di="product",By="tyre",xD=[di,By];function Vte(e){return xD.includes(e)}var ID="productType",gD={[di]:"alloy-wheel",[By]:"tyre"},bD=["alloy-wheel","tyre"];function Dy(e,o){return Xu(o)?Ny(o)??gD[e]??null:null}function Ny(e){if(!Xu(e))return null;let o=e?.[ID];return typeof o=="string"&&bD.includes(o)?o:null}function Yte(e){let o=e?.root;return Ny(o?.props)}var Zu="Main Pages",yD="Dynamic Pages",Ju="dynamic",SD="dynamic";function Dr(e){return e.kind===SD}var Qu="lightbox";function My(e){return e.kind===Qu}function Hy(e){let o=[],t=[];for(let r of e){if(Dr(r)){t.push(r);continue}let a=r.groupKey??(r.group?`folder:${r.group}`:"top"),n=o[o.length-1];n&&n.key===a?n.rows.push(r):o.push({key:a,label:r.group??Zu,rows:[r]})}if(t.length){let r=o.findIndex(a=>a.key.startsWith("system:"));o.splice(r===-1?o.length:r,0,{key:Ju,label:yD,rows:t})}return o}var fi=null,zy=null;function wD(e,o){fi=e,zy=o}function ere(e){wD(e,null)}function ore(){return fi}function ui(){return Dr({kind:zy})||fi===di}function tre(e){return Dy(fi??"",e)??"alloy-wheel"}import{addShowWhenFacts as CD}from"efficient-shell/format";import{showWhenOf as ep,shownForOption as vD,truthy as op,withRowRules as tp,withRowsShownWhen as Jn,withShowWhen as Je}from"efficient-shell/format";var sre=CD;function rp(e,o,t){let r=!1,a={};for(let[n,s]of Object.entries(e))kD(ep(s),o??{},t)?a[n]=s:r=!0;return r?a:e}function Gy(e,o,t,r){let a=ii(o,t,r);return{device:e,parentType:a?.item.type,parent:a?.item.props}}function Wy(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 Wy(t.not,o);for(let r of[t.all,t.any])if(Array.isArray(r)&&r.some(a=>Wy(a,o)))return!0;return!1}function pre(e,o={}){return TD({parentType:()=>e.parent?.type??void 0,parent:()=>e.parent?.props??void 0,dynamicPage:()=>ui(),root:()=>e.appState?.data?.root?.props,...o})}var $y=1;function PD(e){return mt(e)}function xre(e){let o=PD(e);return o===null?{}:{"--sf-card-image-radius":`${o}px`}}var Uy=1,jy="Corners";function ED(e){return mt(e)}function yre(e,o){let t=ED(e);if(t===null)return null;let r=`${t}px`;return{borderRadius:Xn(o)?Lr(r,It(o)??[]):r}}var Ot={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]]}},ap=Object.keys(Ot),qy=[2,3,4,6];function np(e,o){return ap.filter(t=>t===o||e===null||Ot[t].across===e)}function Vy(e){return typeof e!="string"||e===""?null:Ot[e]??null}function Ky(e,o){return o?6/e.acrossPhone:12/e.across}function Yy(e){return[...e.lead??[],...e.desktop]}var OD="sf-wall--";function _D(e){return`${OD}${e}`}function wre(e){let o=Ot[e],t=`.${_D(e)}`,r=[],a=(n,s,l=[])=>{let c=[],d=n.length,p=l.length;l.forEach(([h,u],x)=>{c.push(`${t} > :nth-child(${x+1}){grid-column:span ${h};grid-row:span ${u}}`)}),n.forEach(([h,u],x)=>{c.push(`${t} > :nth-child(${d}n+${p+x+1}){grid-column:span ${h};grid-row:span ${u}}`)});for(let h=1;h<d;h+=1)c.push(`${t}:has(> :nth-child(${d}n+${p+h}):last-child) > :nth-last-child(-n+${h}){grid-column:span ${s};grid-row:span 1}`);return c};return r.push(`${t}{grid-template-columns:repeat(12,minmax(0,1fr))}`),r.push(...a(o.desktop,Ky(o,!1),o.lead)),r.push("@media (max-width:800px){"),r.push(`${t}{grid-template-columns:repeat(6,minmax(0,1fr))}`),r.push(...a(o.phone,Ky(o,!0),o.leadPhone)),r.push("}"),r.join("")}var pi=12,Xy=1,RD=3;var AD=3;function sp(e,o,t){let r=typeof e=="number"?e:Number.parseInt(String(e??""),10);return Number.isFinite(r)?Math.min(t,Math.max(o,Math.trunc(r))):null}function FD(e){return sp(e,1,pi)??AD}function kre(e,o){return sp(e,Xy,RD)??(FD(o)===4?2:Xy)}function Tre(e){return e==null||e===""?null:sp(e,1,pi)}var Pre="data-sf-span";function Ere(e){if(!e)return!1;if(e.type==="Grid")return!0;if(e.type==="GalleryB"){if(Vy(e.props?.layout))return!1;let o=e.props?.columns;return o!=null&&o!==""}return!1}import{jsx as LD}from"react/jsx-runtime";import*as BD from"efficient-easel/icons";function mi(e){let o=e.replace(/(^|-)([a-z])/g,(r,a,n)=>n.toUpperCase()),t=BD[`${o}Icon`];return t?LD(t,{size:16}):null}import{isNodeList as DD}from"efficient-easel/data";var Ma=["top-left","top-center","top-right","left","center","right","bottom-left","bottom-center","bottom-right"],Jy="bottom-left",Ha=4,ND=Ha+1,Zy=40,MD=30,HD=100,zD=60,Fre=100;var lp={"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 WD(e){let o=Ma.indexOf(Qn(e));return{band:Math.floor(o/3),column:["start","center","end"][o%3]}}function GD(e){return 1+WD(e).band*(ND+1)}function Lre(e){return GD(e)+1}function Qn(e){return Ma.includes(e)?e:Jy}function Bre(e){let o=typeof e=="number"&&Number.isFinite(e)?e:0;return Math.max(-Zy,Math.min(Zy,Math.round(o)))}function Dre(e,o=zD){let t=typeof e=="number"&&Number.isFinite(e)?e:o;return Math.max(MD,Math.min(HD,Math.round(t)))}function ip(e,o){let t=Qn(o);return e.filter(r=>Qn(r?.props?.placement)===t).length}function Qy(e){return`${lp[Qn(e)]} already holds ${Ha} boxes. Move one somewhere else first.`}function eS(e,o){let t=e.filter(r=>r?.props?.id!==o);return Ma.map(r=>{let a=ip(t,r)>=Ha,n=lp[r];return a?{value:r,label:n,disabled:!0,title:Qy(r)}:{value:r,label:n}})}function hi(e,o){let t=o===void 0?Jy:Qn(o?.props?.placement);return ip(e,t)>=Ha?Qy(t):null}var xi="HeroGroup";function $D(e){return Ma.map(o=>{let t=ip(e,o);return{anchor:o,total:t,hidden:t-Ha}}).filter(o=>o.hidden>0)}function cp(e){let o=$D(e);return o.length===0?null:o.map(({anchor:t,total:r,hidden:a})=>{let n=lp[t],s=a===1?"1 is not shown":`${a} are not shown`;return`${n} holds ${r} boxes. The published page draws the first ${Ha}, so ${s}. ${a===1?"Move it":"Move them"} somewhere else.`}).join(" ")}function oS(e,o){let t=o;if(t?.type!==xi)return null;let r=t.props?.id===void 0?"":String(t.props.id);return r?hi(dp(e,r),t):null}function dp(e,o){let t=rS(e,o);return t&&t.ownerType===jD?t.siblings:[]}function tS(e,o){let t=rS(e,o);return t?t.ancestorTypes.filter(r=>r===xi).length:UD}var UD=1,jD="HeroSlide";function rS(e,o){let t=(r,a,n)=>{if(a>12||!r||typeof r!="object")return null;if(DD(r)){if(r.some(s=>s?.props?.id===o))return{siblings:r,ownerType:n.at(-1)??null,ancestorTypes:n};for(let s of r){let l=s.type,c=t(s,a+1,[...n,String(l)]);if(c)return c}return null}for(let s of Object.values(r)){let l=t(s,a+1,n);if(l)return l}return null};return t(e,0,[])}import{jsx as KD}from"react/jsx-runtime";var fp="sf-hint-keep";function aS({children:e}){return KD("span",{className:fp,children:e})}import{jsx as or,Fragment as YD,jsxs as pS}from"react/jsx-runtime";import{useContext as XD,useEffect as ZD,useId as JD,useState as mS}from"react";import{SettingsField as QD,SettingsSwitch as eN}from"efficient-easel/panel";import{AnchorIcon as oN}from"efficient-easel/icons";import{ScreenDocumentContext as tN}from"efficient-easel/screen/components/ScreenDocumentContext";import{Snippet as rN}from"efficient-shell/ui";import{slugify as aN}from"efficient-shell/format";import{slugify as qD}from"efficient-shell/format";function es(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}var nS=e=>qD(es(e));var Ii="homepage";import{slugify as VD}from"efficient-shell/format";var sS=[{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 lS(e){return e.offersCommerce&&e.offersService?sS:sS.filter(o=>!o.needs||(o.needs==="commerce"?e.offersCommerce:e.offersService))}var up="#popup:";function iS(e){return`${up}${e}`}function cS(e){return e.startsWith(up)&&e.slice(up.length).trim()||null}function os(e){return e===Ii?"/":`/${e}`}function dS(e){return`/journal/${e}`}function Kre(e){return`/wheels/${e}`}function gi(e,o){return`${os(e)}#${o}`}function fS(...e){let o=new Set,t=[];for(let r of e)for(let a of r?.content??[]){let n=es(a?.props?.anchor);if(!n)continue;let s=VD(n);!s||o.has(s)||(o.add(s),t.push({slug:s,name:n}))}return t}function qre(e){let o=e.indexOf("#"),t=o===-1?e:e.slice(0,o),r=t.indexOf("?");return r===-1?t:t.slice(0,r)}function uS(e){return/^\/wheels\/[^/?#]+(?:[?#].*)?$/.test(e)}import{readHidable as nN}from"efficient-easel/draw";function hS({value:e,onChange:o,nameBox:t}){let r=nN(e).text,[a,n]=mS(!1),s=a||r.trim()!=="",l=JD();return pS(YD,{children:[or(QD,{label:i("Add an anchor"),labelId:l,icon:or(oN,{}),action:or(eN,{checked:s,ariaLabelledBy:l,onChange:c=>{n(c),!c&&r!==""&&o("")}})}),s&&t(e,o),s&&or(sN,{name:r})]})}function sN({name:e}){let o=XD(tN),t=o?.templateId?"":o?.currentSlug??"",[r,a]=mS("");ZD(()=>a(La()||window.location.origin),[]);let n=aN(e);if(!n||!t)return null;let s=`${r}${gi(t,n)}`,l=s.replace(/^https?:\/\//,""),c=l.lastIndexOf("#");return or("div",{className:"sf-anchor-link",children:or(rN,{value:s,label:i("link"),size:"sm",children:pS("span",{className:"sf-anchor-link-text",children:[or("span",{className:"sf-anchor-link-path",children:l.slice(0,c)}),or("span",{className:"sf-anchor-link-hash",children:l.slice(c)})]})})})}import{AdjustIcon as R5,EyeIcon as A5,AnimationIcon as F5,BackgroundIcon as L5,BorderAllIcon as B5,BlockSectionIcon as D5,ColumnWidthsIcon as zC,ColumnsIcon as WC,CornerIcon as N5,DirectionDownIcon as M5,DirectionLeftIcon as H5,DirectionRightIcon as z5,DirectionUpIcon as W5,EditIcon as G5,GapIcon as $5,GridIcon as U5,GroundIcon as GC,HashIcon as $C,HeightIcon as j5,ImageIcon as K5,ListIcon as q5,LocationIcon as OC,PaddingBottomIcon as UC,PaddingLeftIcon as jC,PaddingRightIcon as KC,PaddingTopIcon as qC,PageIcon as V5,StickyIcon as Y5,SearchIcon as X5,SquareIcon as Z5,TypeIcon as J5,WidthIcon as Q5}from"efficient-easel/icons";import{jsx as Me,Fragment as Nr,jsxs as Mr}from"react/jsx-runtime";import{CaptionIcon as lN,DateIcon as iN,FlagIcon as cN,TitleIcon as dN,ButtonIcon as fN,DollarIcon as uN,HashIcon as pN,LinkIcon as mN,NoteIcon as hN,TagIcon as xN,TextLinesIcon as IN}from"efficient-easel/icons";var xS={body:IN,button:fN,link:mN,label:xN,number:pN,price:uN,note:hN,name:cN,date:iN,caption:lN,title:dN},IS={eyebrow:Mr(Nr,{children:[Me("path",{d:"M5 6.5h5"}),Me("path",{d:"M5 12.5h14"}),Me("path",{d:"M5 18h11"})]}),heading:Mr(Nr,{children:[Me("path",{d:"M6.5 5v14"}),Me("path",{d:"M17.5 5v14"}),Me("path",{d:"M6.5 12h11"})]}),intro:Mr(Nr,{children:[Me("path",{d:"M4 5.5v13"}),Me("path",{d:"M8 7.5h12"}),Me("path",{d:"M8 12h12"}),Me("path",{d:"M8 16.5h8"})]}),value:Mr(Nr,{children:[Me("rect",{x:"2.5",y:"7",width:"19",height:"10",rx:"2"}),Me("path",{d:"M6.5 12h7"})]}),quote:Mr(Nr,{children:[Me("path",{d:"M9.5 5.5C7 7.2 5.5 9.7 5.5 12.8h4v5.7h-5v-5.7"}),Me("path",{d:"M19.5 5.5c-2.5 1.7-4 4.2-4 7.3h4v5.7h-5v-5.7"})]}),tag:Mr(Nr,{children:[Me("rect",{x:"3",y:"5.5",width:"18",height:"13",rx:"2.5"}),Me("path",{d:"M8 9.5h8"}),Me("path",{d:"M12 9.5v5"})]}),meta:Mr(Nr,{children:[Me("path",{d:"M4 7h16"}),Me("path",{d:"M4 14h3.5"}),Me("path",{d:"M10.5 14h3"}),Me("path",{d:"M17 14h3"})]})};function pp({noun:e,size:o=14,strokeWidth:t=1.8,className:r,style:a}){let n=xS[e];return n?Me("span",{className:r,style:{display:"inline-flex",...a},"aria-hidden":"true",children:Me(n,{size:o})}):Me("svg",{className:r,style:a,width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:IS[e]})}var cae=Object.keys(xS);var dae=Object.keys(IS);import{parseHexColor as gN}from"efficient-shell/format";var bN="#ffffff";function mp(e){return yN(e)?e:bN}function yN(e){return typeof e=="string"&&gN(e)===e.toLowerCase()}function pae(e){return{"--bg":mp(e)}}function gS(e,o){let t=e?.content;if(!Array.isArray(t))return null;for(let r of t){if(!r||typeof r!="object")continue;let{type:a,props:n}=r;if(n?.id===o)return null;if(hp(r,o,0))return{type:typeof a=="string"?a:"",props:n??{}}}return null}function hp(e,o,t){if(t>12||!e||typeof e!="object")return!1;if(Array.isArray(e))return e.some(a=>hp(a,o,t+1));let r=e.props;return r&&typeof r=="object"&&r.id===o?!0:Object.values(e).some(a=>hp(a,o,t+1))}function bS(e,o){let t=e?.content;return Array.isArray(t)?bi(t,o,0)??[]:[]}function bi(e,o,t){if(t>12||!e||typeof e!="object")return null;if(Array.isArray(e)){for(let a of e){let n=bi(a,o,t+1);if(n)return n}return null}let r=e.props;if(r&&typeof r=="object"){if(r.id===o)return[];for(let a of Object.values(r)){let n=bi(a,o,t+1);if(n)return[r,...n]}return null}for(let a of Object.values(e)){let n=bi(a,o,t+1);if(n)return n}return null}import{SettingsDefaultReset as mo,SettingsDrill as e4,SettingsField as Xe,SettingsGroup as o4,SettingsGroupSub as Yce,SettingsSegmented as t4,SettingsBorder as r4,SettingsSidesEach as a4,SettingsSwitch as fm,borderSides as n4,borderStartEach as s4}from"efficient-easel/panel";import{ListField as l4}from"efficient-easel/fields";import{DisplayChips as i4}from"efficient-shell/ui";function za(e){if(!e||typeof e!="object"||Array.isArray(e))return{};let o={};for(let[t,r]of Object.entries(e))typeof r=="boolean"&&(o[t]=r);return o}function yi(e,o){return za(e)[o]!==!1}function xp(e,o,t){let r=za(o)[t];return typeof r=="boolean"?r:yi(e,t)}function yS(e){return Object.values(za(e)).some(o=>o===!1)}function SS(e){return Object.keys(za(e)).length>0}function wS(e,o,t){let r={...za(e)};return t?delete r[o]:r[o]=!1,Object.keys(r).length?r:void 0}function CS(e,o,t){return{...za(e),[o]:t}}function xae(e,o,t){let r=yi(e,t),a=xp(e,o,t);return r&&a?"":!r&&!a?"hidden":r?"max-view-tablet:hidden":"view-tablet:hidden"}import{AlignmentGrid as c4,Checkbox as ede,ColorSwatch as d4,CornersInput as f4,DatePicker as ode,DateTimePicker as u4,FOCAL_DEFAULT as tde,PictureTiles as p4,IconPicker as m4,IconButton as VC,InputNumber as _C,Slider as h4,Tooltip as nc}from"efficient-shell/ui";import{backendOf as SN}from"efficient-easel/screen/lib/session";var We=SN,Si=e=>e.blocks;async function vS(e){let o=e.trim();if(!o)return null;let t=We().geocode;if(!t)throw new Error("geocode_unavailable");return t.locate(o)}var Ip="Lookup busy \u2014 try again in a moment.",wi=e=>typeof e=="number"&&Number.isFinite(e);function Cae(e){return e.some(o=>{let t=o?.geocode;return t?t.pending||t.manual&&t.lat===void 0&&t.lng===void 0?!0:wi(t.lat)&&t.lat!==o.lat||wi(t.lng)&&t.lng!==o.lng:!1})}async function vae(e,o,{geocode:t=vS,courtesyGapMs:r=1100}={}){let a=s=>new Promise(l=>setTimeout(l,s)),n=e.slice();if(e.some(s=>s?.geocode?.pending)){let s=[],l=!1;for(let c of e){if(!c?.geocode?.pending){s.push(c);continue}l&&r>0&&await a(r),l=!0;try{let d=await t(o(c));s.push(d?{...c,lat:d.lat,lng:d.lng,geocode:{...c.geocode,pending:!1,ok:!0,status:`Found \u2014 ${d.label.split(",").slice(0,3).join(",").trim()}`,lat:d.lat,lng:d.lng}}:{...c,geocode:{...c.geocode,pending:!1,ok:!1,status:"No match \u2014 check the address and try again."}})}catch{s.push({...c,geocode:{...c.geocode,pending:!1,ok:!1,status:Ip}})}}n=s}return n.map(s=>{let l=s?.geocode;if(!l)return s;if(l.manual&&l.lat===void 0&&l.lng===void 0)return{...s,geocode:{...l,lat:s.lat,lng:s.lng}};let c=wi(l.lat)&&l.lat!==s.lat?l.lat:s.lat,d=wi(l.lng)&&l.lng!==s.lng?l.lng:s.lng;return c!==s.lat||d!==s.lng?{...s,lat:c,lng:d}:s})}import{jsx as Hr,jsxs as PS}from"react/jsx-runtime";import{ColorPicker as CN,HexInput as vN}from"efficient-shell/ui";import{SettingsDefaultReset as kN,SettingsField as TN}from"efficient-easel/panel";import{typedHex as gp}from"efficient-easel/pick";import{typedHex as wN}from"efficient-easel/pick";function kS(e){let o=new Set,t=[];return lo(e).themes.forEach((r,a)=>{let n=[[i("Theme {n} main color",{n:a+1}),r.accent],[i("Theme {n} text color",{n:a+1}),r.text],[i("Theme {n} background",{n:a+1}),r.background]];for(let[s,l]of n){let c=l?wN(l):null;!c||o.has(c)||(o.add(c),t.push({name:s,value:c}))}}),t}var TS="Not set";function PN({value:e,onChange:o,label:t,id:r,caption:a,inherited:n,ariaLabel:s}){return Hr(ON,{value:e,onChange:o,label:i(s??t),id:r,caption:a,inherited:n})}function EN(){let{theme:e}=de();return kS(e).map(o=>({value:o.value,label:o.name}))}function ON({value:e,onChange:o,label:t,id:r,caption:a,inherited:n}){let s=EN(),l=e?null:gp(n??""),c=a!==void 0&&(!e||gp(a)!==gp(e))?a:null,d=p=>{p!==e&&o(p)};return PS("div",{className:"sf-colour",children:[Hr(CN,{id:r,value:e,onChange:d,label:t,presets:s,fallback:l??void 0,size:"md",align:"start"}),c!==null?Hr("span",{className:"sf-colour-caption",children:c}):Hr("span",{className:"sf-colour-hexwrap",children:Hr(vN,{value:e||l||"",onChange:d,label:i("{label} hex code",{label:t}),placeholder:e||l?void 0:i(TS),className:l?"sf-colour-hex is-inherited":"sf-colour-hex",size:"md"})})]})}function Bo({label:e,icon:o,changed:t,hint:r,onReset:a,resetTo:n,children:s,...l}){return PS(TN,{label:e,icon:o,htmlFor:l.id,changed:t,hint:r,action:a?Hr(kN,{words:ee()?.panel,label:e,changed:!!t,detail:n,onReset:a}):void 0,children:[PN({...l,label:e}),s]})}function Ci({label:e,icon:o,value:t,inherited:r,resetTo:a,onChange:n,onReset:s,hint:l}){let c=!!t;return Hr(Bo,{label:e,icon:o,value:t,inherited:c?void 0:r,onChange:n,changed:c,onReset:s,resetTo:a,hint:l})}import{keptByRow as x4}from"efficient-easel/screen/lib/document/style-fields";import{jsx as _N}from"react/jsx-runtime";import{useEffect as RN,useState as AN}from"react";import{clearRangeOf as FN,markSelection as LN,useCaretEdit as BN}from"efficient-easel/copy";import{TextToolbar as DN}from"efficient-shell/ui";function NN(e,o,t){return LN(e,o,t,hy)}function ES(e,o){let t=FN(o,e.length),r=Iy(e,t.start,t.end);return r.text===e?null:r}function MN(e){let[o,t]=AN(null);return RN(()=>{let r=e.current?.ownerDocument??(typeof document>"u"?null:document);if(!r)return;let a=()=>{let n=e.current;if(!n||r.activeElement!==n)return;let s=n.selectionStart??n.value.length,l=n.selectionEnd??s;t(c=>c&&c.start===s&&c.end===l?c:{start:s,end:l})};return r.addEventListener("selectionchange",a),()=>r.removeEventListener("selectionchange",a)},[e]),[o,t]}function HN({target:e,value:o,onChange:t,disabled:r=!1,label:a="Formatting"}){let n=BN({target:e,onChange:t}),[s,l]=MN(e),c=u=>n(x=>{let g=NN(o,u,x);return l({start:g.selectionStart,end:g.selectionEnd}),g}),d=py(),p={};if(s)for(let u of d)p[u.style]=xy(o,s.start,s.end,u.style);let h=r?null:ES(o,s);return _N(DN,{offered:new Set(d.map(u=>u.style)),onMark:u=>c(u),pressed:p,disabled:r,"aria-label":i(a),className:"sf-markup-bar",clear:h?{onClear:()=>n(()=>{let u=e.current,x=u&&u.ownerDocument.activeElement===u?{start:u.selectionStart??0,end:u.selectionEnd??0}:null,g=ES(o,x)??{text:o,selectionStart:x?.start??0,selectionEnd:x?.end??0};return l({start:g.selectionStart,end:g.selectionEnd}),g})}:void 0})}var bp=HN;import{deviceField as Ye}from"efficient-easel/screen/lib/document/device-fields";import{NO_CONTROL_FIELD as I4,NoControlMark as g4,noControlField as YC}from"efficient-easel/screen/lib/document/panel-no-control-mark";var yp="__ownBox";function OS(e){return!!e&&typeof e=="object"&&e[yp]===!0}function vi(e,o,t){return typeof e=="number"?e:typeof o=="number"?o:t}var ki=void 0;import{phoneKey as Va,tabletKey as XC}from"efficient-easel/draw";import{jsx as wp,Fragment as GN}from"react/jsx-runtime";import{createContext as $N,useContext as UN}from"react";var Ti={ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},Pi={Events:["posts"],SubscribeBlogs:["posts"]};var zN=["anchor"],WN=/^href$|Href$|^url$|Url$|^link$|^mailto$|^tel$/;function ts(e){return zN.includes(e)||WN.test(e)}var Sp={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"}}};Sp.ContactLocations={"locations[].lat":{verb:"pii"},"locations[].lng":{verb:"pii"},"locations[].mapsUrl":{verb:"pii"},"locations[].geocode":{verb:"pii"}};var Zae=Object.fromEntries(Object.entries(Ti).map(([e,o])=>[e,Object.keys(o)])),Jae=Object.fromEntries(Object.entries(Pi).map(([e,o])=>[e,[...o]]));import{NoControlMark as jN}from"efficient-easel/screen/lib/document/panel-no-control-mark";var _S=$N(!1);function RS({children:e}){return wp(_S.Provider,{value:!0,children:e})}function KN(){return UN(_S)}function AS({name:e,children:o}){return!KN()||!e||!qN(e)||ts(e)?wp(GN,{children:o}):wp(jN,{})}function qN(e){return/^[A-Za-z0-9_$]+$/u.test(e)}var Cp="off",vp="none",kp=[{label:"None",value:"off"},{label:"1, 2, 3",value:"plain"},{label:"01, 02, 03",value:"padded"},{label:"N\xB001, N\xB002",value:"numero"}],Tp=[{label:"None",value:"none"},{label:"Hairline",value:"hairline"}];function sne(e){return to(kp,Cp,e)}function lne(e){return to(Tp,vp,e)}var FS="sf-card-index",rs="sf-card-index",ine="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",VN={plain:`counter(${rs})`,padded:`counter(${rs}, decimal-leading-zero)`,numero:`"N\xB0" counter(${rs}, decimal-leading-zero)`};function cne(e,o){return o==="off"?"":`.${e}{counter-reset:${rs}}.${e} .${FS}{counter-increment:${rs}}.${e} .${FS}::before{content:${VN[o]}}`}function dne(e){return e==="hairline"?"border border-line hover:border-accent":""}var LS=[{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 b4}from"efficient-easel/draw";import{jsx as gt}from"react/jsx-runtime";import{SettingsDefaultReset as YN,SettingsField as BS}from"efficient-easel/panel";import{useSelectedHost as XN}from"efficient-easel/easel";import{FOCAL_DEFAULT as ZN}from"efficient-shell/format";import{ImageIcon as DS,PlayIcon as NS}from"efficient-easel/icons";import{MediaUploadField as JN}from"efficient-shell/ui";import{useContext as QN}from"react";import{ScreenDocumentContext as e2}from"efficient-easel/screen/components/ScreenDocumentContext";import{phoneKey as o2}from"efficient-easel/draw";import{usePreviewDevice as t2}from"efficient-easel/draw/client";import{shownTier as MS}from"efficient-easel/screen/lib/document/device-fields";import{onDesktopWords as r2}from"efficient-easel/screen/lib/document/box-fields";import{requestMediaPick as a2}from"efficient-easel/screen/lib/media-picker";import{useEaselHost as n2}from"efficient-easel/screen/lib/host";import{useEaselSession as s2}from"efficient-easel/screen/lib/session-context";function l2(e,o,t){if(MS(t)==="tablet")return null;let r=MS(t)==="mobile",a=typeof e[o]=="string"&&e[o]?String(e[o]):ZN,n=o2(o),s=typeof e[n]=="string"&&e[n]?String(e[n]):void 0;return{phone:r,desktop:a,own:s,focus:r?s??a:a,key:r?n:o,twin:n}}function i2(e,o){let t=XN(),r=t2();if(!e||!t)return null;let a=t.values??{};if(o&&!o(a))return null;let n=l2(a,e,r);if(!n)return null;let s=t.onChange;return{phone:n.phone,desktop:n.desktop,own:n.own,focus:n.focus,set:l=>s(n.key,l),clear:()=>s(n.twin,ki)}}function HS({value:e,onChange:o,label:t,accept:r,placeholder:a,focusKey:n,focusWhen:s,frameKey:l,fieldKey:c}){let d=n2(),p=s2(),h=i(t),u=r.startsWith("video"),x=i2(u?void 0:n,s),g=QN(e2),y=Pp(),T=l&&c?{video:c,frame:l}:null,O=v=>a2(d,{accept:r,title:h,...v?{file:v}:{}}).then(k=>!k||!T?k?.url??null:(y({[T.video]:k.url,[T.frame]:k.posterUrl??""}),null)),w=T?v=>v?o(v):y({[T.video]:"",[T.frame]:""}):o;if(g&&!g.capabilities.mediaEditing)return gt(BS,{label:h,icon:u?gt(NS,{}):gt(DS,{}),children:gt("div",{className:"sf-image-slot-inert",children:u?i("Templates don\u2019t store videos \u2014 this slot stays a placeholder. Each website picks its own after it\u2019s created."):i("Templates don\u2019t store images \u2014 this slot stays a placeholder. Each website picks its own after it\u2019s created.")})});let I=er(e),C=x?.phone&&I?gt(YN,{words:ee()?.panel,label:i("Image focus"),changed:!!x.own,detail:r2(v=>i(v),x.desktop),onReset:x.clear}):void 0;return gt(BS,{label:h,icon:u?gt(NS,{}):gt(DS,{}),action:C,children:gt("div",{style:{flex:"1 1 auto",minWidth:0},children:gt(JN,{value:I,onChange:w,onPick:O,accept:u?"video/*":"image/*",kind:u?"video":"image",placeholder:a===void 0?void 0:i(a),maxSizeBytes:We(p).media.maxUploadBytes,...x?{focus:x.focus,onFocusChange:x.set}:{}})})})}import{jsx as zS}from"react/jsx-runtime";import{useId as c2}from"react";import{FieldSelect as d2}from"efficient-easel/fields";import{SettingsField as f2}from"efficient-easel/panel";function u2(e){return e.map(({value:o,label:t,note:r})=>({value:o,label:t,...r?{meta:r}:{}}))}function WS({label:e,options:o,value:t,onChange:r,emptyLabel:a,icon:n,hint:s}){let l=c2(),c=`${l}-label`,d=`${l}-button`,p=Array.isArray(t)?t:[];return zS(f2,{label:i(e),labelId:c,icon:n,hint:s,children:zS(d2,{id:d,multiple:!0,value:p,options:u2(o),onChange:r,placeholder:a===void 0?i("None"):i(a),ariaLabelledBy:`${c} ${d}`,inline:!0})})}import{jsx as Qe,jsxs as Wr,Fragment as K2}from"react/jsx-runtime";import{useCallback as rw,useContext as q2,useId as sw,useRef as aw,useState as nw}from"react";import{ThemeIcon as V2}from"efficient-easel/icons";import{Button as Y2,useClickOutside as X2}from"efficient-shell/ui";import{SettingsField as Z2}from"efficient-easel/panel";import{ScreenDocumentContext as J2}from"efficient-easel/screen/components/ScreenDocumentContext";import{jsx as te,jsxs as rr,Fragment as S2}from"react/jsx-runtime";import{parseHexColor as w2}from"efficient-shell/format";import{Button as Op,IconButton as C2,Tooltip as v2}from"efficient-shell/ui";import{jsx as tr,jsxs as p2}from"react/jsx-runtime";import{AccentIcon as m2}from"efficient-easel/icons";import{Button as h2,Tooltip as x2}from"efficient-shell/ui";function Ep(e){return pt(e).background}function I2(e){let o=Yt(e.accent,Ep(e));return o===null?null:{ratio:o,grade:Ra(o)}}function g2(e){let o=Ep(e),t=Yt(e.accent,o);return t===null?[]:Wg(e.accent).filter(r=>{let a=Yt(r,o);return a!==null&&a>t&&Ra(a)==="good"})}var b2={good:"Easy to read","large-only":_a["large-only"],hard:_a.hard};function GS({value:e,onChange:o}){let t=I2(e),r=t?.grade,a=t&&t.grade!=="good"?g2(e):[];return tr(Bo,{label:i("Main color"),icon:tr(m2,{}),hint:t?i(b2[t.grade]):void 0,value:e.accent,onChange:n=>o({...e,accent:n}),children:a.length>0?tr("div",{className:"w-full min-w-0",children:p2("div",{className:"sf-readability",children:[tr("p",{className:"sf-readability-advice",children:y2(r,!0)}),tr("div",{className:"sf-readability-suggestions",children:a.map(n=>{let s=Yt(n,Ep(e));return tr(x2,{content:i("Use {colour}",{colour:n.toUpperCase()}),children:tr(h2,{variant:"secondary",className:"sf-readability-suggestion",leftIcon:tr("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 y2(e,o){return e?e==="good"?i("This color reads clearly on your pages."):o?i("This color is hard to read on this theme's page. The buttons below are the same hue, darkened."):i("This color is hard to read on your page background. Pick one further from it \u2014 lighter if your pages are dark, deeper if they are light."):i("Pick a color to see how it reads.")}import{ButtonIcon as k2,ChevronDownIcon as US,ChevronUpIcon as T2,GroundIcon as P2,LayoutIcon as E2,SquareIcon as O2,TextSmallIcon as _2,TypeIcon as $S}from"efficient-easel/icons";var as=e=>i("Theme {n}",{n:e+1});function jS({colors:e}){let o=pt(e),t=Hn(e)??o.accent;return rr("span",{className:"sf-theme-page",style:{background:o.background,color:o.text},"aria-hidden":!0,children:[te("span",{className:"sf-theme-eyebrow",style:{color:o.muted},children:i("label")}),rr("span",{className:"sf-theme-headline",children:[i("Heading")," ",te("span",{style:{color:o.accent},children:i("main")})]}),te("span",{className:"sf-theme-body",children:i("body text")}),rr("span",{className:"sf-theme-row",children:[te("span",{className:"sf-theme-btn",style:{background:t,color:su(e,o.accent)},children:i("button")}),te("span",{className:"sf-theme-mini",style:{background:o.surface,borderColor:o.line},children:i("card")})]})]})}var _p={"Text color":te($S,{}),"Label color":te(_2,{}),Background:te(P2,{}),"Panels & cards":te(E2,{}),Borders:te(O2,{}),"Button color":te(k2,{}),"Button text color":te($S,{})};function R2({label:e,colorKey:o,value:t,onChange:r,idPrefix:a="sf-theme-ink"}){let n=`${a}-${o}`;return te(Bo,{label:i(e),icon:_p[e],id:n,value:t,onChange:s=>r(o,s)})}function A2({value:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button`,n=e!==void 0&&w2(e)===e.toLowerCase(),s=n?e:o;return te(Bo,{label:i("Button color"),icon:_p["Button color"],id:a,value:s,caption:n?s:i("Main"),onChange:t})}function F2({colors:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button-ink`,n=Gg(e),s=su(e,o),l=Hn(e)??o,c=Ra(Yt(s,l)??0);return te(Bo,{label:i("Button text color"),icon:_p["Button text color"],hint:n&&c!=="good"?i("{grade} on the button",{grade:i(_a[c])}):void 0,id:a,value:s,caption:n?s:i("Auto"),onChange:t})}var L2=[{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 Rp({colors:e,onChange:o,idPrefix:t}){let r=pt(e);return te(S2,{children:L2.map(a=>"colour"in a?te(GS,{value:e,onChange:o},"colour"):"moduleBreak"in a?te("div",{className:"sf-theme-module-break","aria-hidden":"true"},"module-break"):"button"in a?te(A2,{value:e.button,accent:r.accent,onChange:n=>o({...e,button:n}),idPrefix:t},"button"):"buttonInk"in a?te(F2,{colors:e,accent:r.accent,onChange:n=>o({...e,buttonInk:n}),idPrefix:t},"buttonInk"):te(R2,{label:a.label,colorKey:a.key,value:r[a.key],onChange:(n,s)=>o({...e,[n]:s}),idPrefix:t},a.key))})}function Ei({index:e,colors:o,selected:t,role:r="radio",open:a,editable:n=!0,onPick:s,onEdit:l,onChangeColors:c}){let d=pt(o),p=as(e),h=e<nu.length&&!o.brandInk?nu[e]:null,u=Ra(Yt(d.text,d.background)??0),x=h?JSON.stringify(o)!==JSON.stringify(h):!1,g=a!==void 0;return rr("div",{className:`sf-theme-card${t?" is-selected":""}`,children:[te("button",{type:"button",role:r,"aria-checked":r==="radio"?t:void 0,"aria-selected":r==="option"?t:void 0,"aria-label":p,className:"sf-theme-pick",onClick:s,children:te(jS,{colors:o})}),rr("div",{className:"sf-theme-foot",children:[te("span",{className:"sf-theme-name",children:p}),u!=="good"&&te("span",{className:"sf-theme-warn",children:i(_a[u])}),n&&l&&g&&te("span",{className:"sf-theme-edit",children:te(v2,{content:a?i("Collapse"):i("Edit colors"),children:te(C2,{size:"sm","aria-expanded":a,"aria-controls":`sf-theme-colours-${e}`,"aria-label":a?i("Collapse {name}",{name:p}):i("Edit colors for {name}",{name:p}),onClick:l,children:a?te(T2,{size:14}):te(US,{size:14})})})}),n&&l&&!g&&te(Op,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":i("Edit {name}",{name:p}),onClick:l,children:i("Edit")})]}),a&&rr("div",{id:`sf-theme-colours-${e}`,className:"sf-theme-colours",children:[te(Rp,{colors:o,onChange:y=>c?.(y)}),h&&te(Op,{variant:"link",size:"sm",className:"sf-theme-reset",disabled:!x,onClick:()=>c?.({...h}),children:x?i("Reset {name} to the preset",{name:p}):i("Not changed")})]})]})}function KS({colors:e,name:o,nameId:t,open:r,menuId:a,labelId:n,buttonRef:s,onClick:l,onKeyDown:c,onEdit:d}){return rr("div",{className:"sf-secttheme-btn",children:[te("button",{ref:s,type:"button",className:"sf-theme-pick","aria-expanded":r,"aria-controls":a,"aria-labelledby":`${n} ${t}`,onClick:l,onKeyDown:c,children:e?te(jS,{colors:e}):te("span",{className:"sf-secttheme-nopreview","aria-hidden":"true"})}),rr("div",{className:"sf-theme-foot",children:[te("span",{id:t,className:"sf-theme-name",children:o}),d&&te(Op,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":i("Edit {name}",{name:o}),onClick:d,children:i("Edit")}),te("button",{type:"button",className:"sf-secttheme-caret","aria-hidden":"true",tabIndex:-1,onClick:l,children:te(US,{size:12,className:"sf-multi-caret","aria-hidden":"true"})})]})]})}import{useCallback as Np,useEffect as ZS,useRef as Ai}from"react";import{currentEaselSession as N2}from"efficient-easel/screen/lib/session";import{useEaselSession as M2}from"efficient-easel/screen/lib/session-context";import{useSyncExternalStore as B2}from"react";var VS,Ap=null,zr=null,Oi=0,Fp=new Set;function Lp(e){VS=e;for(let o of Fp)o()}function Bp(e){Ap=e,Oi+=1,zr&&clearTimeout(zr),zr=null,Lp(void 0)}function _i(e){Oi+=1,Lp(e)}function _t(e=250){Ap&&(zr&&clearTimeout(zr),zr=setTimeout(()=>{zr=null;let o=Ap;if(!o)return;let t=++Oi;o().then(r=>{t===Oi&&Lp(r)}).catch(()=>{})},e))}function qS(){return VS}function D2(e){return Fp.add(e),()=>{Fp.delete(e)}}function Ri(){return B2(D2,qS,qS)}var Dp=new Set;function YS(e){return Dp.add(e),()=>{Dp.delete(e)}}async function XS(){let e=(await Promise.allSettled([...Dp].map(async o=>o()))).find(o=>o.status==="rejected");if(e)throw e.reason}import{WebsiteBackendError as H2}from"efficient-easel/screen/lib/backend-error";function JS(e=N2()){return(o,t,r)=>{let a=We(e).theme;return a?a.update(o,r?{siteId:r}:void 0):Promise.reject(new H2("invalid","This backend stores no site theme."))}}function QS(e){return e.themeFromDocument?{status:"skipped",reason:"template"}:e.token?null:{status:"skipped",reason:"no-token"}}async function z2(e,o=JS()){let{themeFromDocument:t,token:r,siteId:a,patch:n}=e,s=QS({themeFromDocument:t,token:r});if(s)return s;if(Object.keys(n).length===0)return{status:"skipped",reason:"empty"};try{return await o(n,r,a??void 0),{status:"saved"}}catch(l){return{status:"failed",error:l}}}function Wa({themeFromDocument:e,tokenRef:o,siteId:t,onResult:r}){let a=Ai(null),n=Ai({}),s=M2(),l=Ai(r);l.current=r;let c=Ai(null),d=Np(u=>{if(u.status==="skipped"){let x=`skipped:${u.reason}`;if(c.current===x)return;c.current=x}else c.current=null;l.current?.(u)},[]),p=Np(async()=>{a.current&&(clearTimeout(a.current),a.current=null);let u=n.current;n.current={};let x=await z2({themeFromDocument:e,token:o?.current,siteId:t,patch:u},JS(s));return d(x),x.status==="saved"&&_t(),x.status==="failed"&&(n.current={...u,...n.current}),x},[e,o,t,d,s]),h=Np((u,x=!1)=>{let g=QS({themeFromDocument:e,token:o?.current});if(g){d(g);return}n.current={...n.current,...u},a.current&&clearTimeout(a.current),x?p():a.current=setTimeout(()=>{p()},500)},[e,o,p,d]);return ZS(()=>()=>{p()},[p]),ZS(()=>YS(async()=>{if(!a.current&&Object.keys(n.current).length===0)return;let u=await p();if(u.status==="failed")throw u.error}),[p]),{persist:h,flush:p}}var Mp=[{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}],W2=Mp.filter(e=>e.ink);function G2(e){let o={color:e.fg};for(let{role:t,token:r}of W2)o[r]=e[t];return o}var $2={fg:"var(--overlay-fg)",line:"color-mix(in srgb, var(--overlay-fg) 24%, transparent)",muted:"color-mix(in srgb, var(--overlay-fg) 76%, transparent)"},ew=Object.freeze(G2($2));var ar=-1,U2="sf-section-accent",ow="Color",tw=new Set(["CategoryBar","DocTabs"]),hse=new Set(["Flex"]),Hp=0;function Ko(e){return e===ar?null:typeof e=="number"&&Number.isInteger(e)&&e>=0?e:Hp}function zp(e){return e??ar}function j2(e){let o=`--theme-preset-${e}`,t={"--sf-sec-accent":`var(${o}-accent)`,"--sf-sec-accent-2":`var(${o}-accent-2)`,"--sf-sec-accent-ink":`var(${o}-accent-ink)`};for(let{role:r}of Mp)t[`--sf-sec-${r}`]=`var(${o}-${r}, var(--theme-${r}))`;return t}function xse(e){let o=Ko(e.sectionAccent);return o===null?null:{className:U2,style:j2(o)}}var Q2="Follow the page",_se="Follow the slideshow",eM=e=>i("Editing {name} changes it everywhere.",{name:e});function oM({colors:e}){if(!e)return Qe("span",{className:"sf-secttheme-chip sf-secttheme-chip--none","aria-hidden":"true"});let o=pt(e);return Wr("span",{className:"sf-secttheme-chip","aria-hidden":"true",children:[Qe("i",{style:{background:o.background}}),Qe("i",{className:"sf-secttheme-chip-accent",style:{background:o.accent}})]})}function tM({themes:e,value:o,onPick:t,onEdit:r,menuId:a,followLabel:n}){return Wr("div",{className:"sf-multi-menu sf-secttheme-menu",id:a,role:"listbox",children:[n!==void 0&&Wr(K2,{children:[Wr("button",{type:"button",role:"option","aria-selected":o===null,className:`sf-secttheme-item${o===null?" is-active":""}`,onClick:()=>t(ar),children:[Qe(oM,{}),Qe("span",{className:"sf-secttheme-name",children:i(n)})]}),Qe("div",{className:"sf-secttheme-sep",role:"presentation"})]}),o!==null&&e[o]&&Qe("p",{className:"sf-secttheme-oncard",role:"presentation",children:i("{name} is on this section",{name:as(o)})}),e.map((s,l)=>l===o?null:Qe(Ei,{role:"option",index:l,colors:s,selected:!1,onPick:()=>t(l),onEdit:()=>r(l)},l))]})}function rM({index:e,colors:o,onChange:t,onDone:r}){let a=as(e),n=sw();return Wr("div",{className:"sf-secttheme-sheet",children:[Wr("div",{className:"sf-secttheme-sheet-head",children:[Qe("span",{children:a}),Qe(Y2,{variant:"secondary",className:"sf-secttheme-done",onClick:r,children:i("Done")})]}),Qe("div",{className:"sf-secttheme-rows",children:Qe(Rp,{colors:o,onChange:t,idPrefix:n})}),Qe("p",{className:"sf-secttheme-warn",children:eM(a)})]})}function lw({value:e,onChange:o,followLabel:t,hint:r}){let{theme:a,setTheme:n}=de(),s=lo(a),l=q2(J2),c=l?.tokenRef,d=l?.siteId??null,p=!l?.capabilities?.hasSiteTheme,{persist:h,flush:u}=Wa({themeFromDocument:p,tokenRef:c,siteId:d}),x=lo(s),g=x.themes,y=Ko(e),T=y!==null?g[y]:void 0,O=T??(g.length?Oa(x):void 0),[w,I]=nw(!1),[C,v]=nw(null),k=aw(null),A=aw(null),D=sw(),P=rw(()=>{I(!1),v(null)},[]),R=rw(()=>{!w&&C===null||(u(),P())},[w,C,P,u]);X2(k,R);let N=_=>{o(_),P()},b=_=>{if(C===null)return;let F=g.map((Z,q)=>q===C?_:Z),H={...x,themes:F};n(H),h({selected_preset:H.selected,theme_presets:H.themes})};return Wr("div",{className:"sf-secttheme",ref:k,children:[Qe(Z2,{label:i("Theme"),icon:Qe(V2,{}),labelId:`${D}-label`,hint:r,children:Qe(KS,{colors:O,onEdit:y!==null?()=>{v(y),I(!1)}:void 0,name:T?as(y):i(t??Q2),nameId:`${D}-value`,labelId:`${D}-label`,open:w,menuId:D,buttonRef:A,onClick:()=>{v(null),I(_=>!_)},onKeyDown:_=>{_.key==="Escape"&&(w||C!==null)&&(_.preventDefault(),P())}})}),w&&C===null&&Qe("div",{onKeyDown:_=>{_.key==="Escape"&&(_.preventDefault(),P(),A.current?.focus())},children:Qe(tM,{themes:g,value:y,onPick:N,onEdit:_=>{v(_),I(!1)},menuId:D,followLabel:t})}),C!==null&&g[C]&&Qe(rM,{index:C,colors:g[C],onChange:b,onDone:()=>{u(),P(),A.current?.focus()}})]})}import{jsx as iw}from"react/jsx-runtime";import{useId as aM}from"react";import{FieldSelect as nM}from"efficient-easel/fields";import{SettingsField as sM}from"efficient-easel/panel";function lM(e){return e.map(({value:o,label:t,group:r,thumb:a,meta:n})=>({value:o,label:t,...r!==void 0?{group:r}:{},...a!==void 0?{thumb:a}:{},...n!==void 0?{meta:n}:{}}))}function Nse({label:e,options:o,fallback:t,value:r,onChange:a,placeholder:n,bare:s=!1,icon:l}){let c=aM(),d=`${c}-label`,p=`${c}-button`,h=r??"",u=o.some(T=>T.value===h)?h:t,x=i(e),g=n===void 0?void 0:i(n),y=iw(nM,{id:p,value:u,options:lM(o),onChange:a,placeholder:g,searchPlaceholder:g,...s?{ariaLabel:x}:{ariaLabelledBy:`${d} ${p}`},searchable:!0,groupCount:!0,inline:!0});return s?y:iw(sM,{label:x,labelId:d,icon:l,children:y})}import{jsx as $r,jsxs as MM}from"react/jsx-runtime";import{SettingsField as Fw}from"efficient-easel/panel";import{LinkIcon as HM}from"efficient-easel/icons";import{LinkPicker as zM,TextLinkField as WM}from"efficient-shell/ui";import{useEffect as Aw,useMemo as Di,useRef as GM,useState as Bi}from"react";import{currentEaselSession as iM}from"efficient-easel/screen/lib/session";function cw(){return iM().auth.token}import{currentEaselSession as $M}from"efficient-easel/screen/lib/session";import{useScreenDocument as UM}from"efficient-easel/screen/components/ScreenDocumentContext";var cM=()=>({choosePage:i("Choose a page"),chooseSection:i("Choose a section"),noSections:i("No section anchors yet"),sectionHint:i("Jumps to a section on that page."),choosePost:i("Choose a post"),chooseProduct:i("Choose a product"),choosePopup:i("Choose a popup")});function dw(e,o,t){if(!e)return"page";if(cS(e))return"popup";if(e.startsWith("/journal/"))return"blog";if(uS(e))return"product";if(e.includes("#")){let r=e.slice(0,e.indexOf("#"));if(r===""||r==="/"||o.includes(r))return"anchor"}return e==="/"||o.includes(e)||t&&t.listingPaths.includes(t.targetOf(e))?"page":"custom"}function Wp(e,o){let t=cM(),r=e.pages.map(p=>({value:os(p.slug),label:p.title})),a=o?.pageOptions?o.pageOptions(r):r,n=a.map(p=>p.value),s=e.pages.map(p=>({label:p.title,options:fS(...p.docs).map(h=>({value:gi(p.slug,h.slug),label:h.name}))})).filter(p=>p.options.length>0),l=p=>{switch(p){case"page":return{type:"select",options:a,placeholder:t.choosePage};case"anchor":return{type:"groups",groups:s,placeholder:s.length?t.chooseSection:t.noSections};case"blog":return{type:"select",options:e.posts.map(h=>({value:dS(h.slug),label:h.title||h.slug})),placeholder:t.choosePost};case"product":return{type:"select",options:e.products.map(h=>({value:h.href,label:h.name||h.href})),placeholder:t.chooseProduct};case"popup":return{type:"select",options:(e.popups??[]).map(h=>({value:iS(h.slug),label:h.title||h.slug})),placeholder:t.choosePopup};case"custom":return{type:"text"}}},c=lS(e.offers).map(p=>({value:p.value,label:i(p.label),target:l(p.value),...p.value==="anchor"?{hint:t.sectionHint}:{},...p.value==="blog"||p.value==="product"||p.value==="popup"?{hideWhenEmpty:!0}:{}}));if(!o)return{kinds:c,rules:{kindOf:p=>dw(p,n),targetOf:p=>p,readFilter:()=>null,withFilter:p=>p}};let d=p=>{let h=o.withFilter(p,null);return o.listingPaths.includes(h)?h:p};return{kinds:c,rules:{kindOf:p=>dw(p,n,{listingPaths:o.listingPaths,targetOf:d}),targetOf:d,readFilter:o.readFilter,withFilter:o.withFilter},filtersFor:p=>o.listingPaths.includes(p)?o.filtersFor(p):null}}import{useEaselSession as jM}from"efficient-easel/screen/lib/session-context";var $=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function io(e,o){if(typeof e=="string")return e||o;if(e&&typeof e=="object"&&"text"in e){let t=e.text;return oe(t)??o}return o}function fw(e,o){return $(e)??o}function nr(e,o){return typeof e=="boolean"?e:o}function Fi(e,o){if(!Array.isArray(e))return o;let t=e.map(r=>typeof r=="string"?r:io(r?.text,"")).map(r=>r.trim()).filter(Boolean);return t.length?t:o}var pw=["delay","scroll","exit"],mw=["all","chosen","except"],hw=["visit","days","never","once"],dM=["all","desktop","phone"],fM=["stop","continue"],xw={min:0,max:60},Iw={min:10,max:90},gw={min:1,max:90},Vo={autoOpen:!1,trigger:"delay",autoOpenDelaySec:15,scrollPercent:50,showOn:"all",showOnPages:[],devices:"all",hideAfter:"days",hideDays:7,afterSubmit:"stop",startDate:null,endDate:null};function qo(e,o,t){return typeof o=="string"&&e.includes(o)?o:t}function Ga(e,o,t){let r=fw(e,t);return Math.min(o.max,Math.max(o.min,Math.round(r)))}function uM(e){return typeof e.hideAfter=="string"?qo(hw,e.hideAfter,Vo.hideAfter):e.oncePerSession===!0?"visit":e.oncePerSession===!1?"never":Vo.hideAfter}function pM(e){return Array.isArray(e)?e.map(o=>typeof o=="string"?o.trim():"").filter(Boolean).map(o=>o.startsWith("/")?o:`/${o}`):[]}function uw(e){if(typeof e!="string")return null;let o=e.trim();return/^\d{4}-\d{2}-\d{2}$/.test(o)?o:null}function bw(e){let o=e??{},t=Vo;return{autoOpen:nr(o.autoOpen,t.autoOpen),trigger:qo(pw,o.trigger,t.trigger),autoOpenDelaySec:Ga(o.autoOpenDelaySec,xw,t.autoOpenDelaySec),scrollPercent:Ga(o.scrollPercent,Iw,t.scrollPercent),showOn:qo(mw,o.showOn,t.showOn),showOnPages:pM(o.showOnPages),devices:qo(dM,o.devices,t.devices),hideAfter:uM(o),hideDays:Ga(o.hideDays,gw,t.hideDays),afterSubmit:qo(fM,o.afterSubmit,t.afterSubmit),startDate:uw(o.startDate),endDate:uw(o.endDate)}}import{parseHexColor as mM}from"efficient-shell/format";var Yo="#000000";var Gp="popup",hM=Ma,xM=["auto","full"],IM=["inside","outside","none"],gM={min:240,max:1440},bM={min:0,max:100},ns={placement:"center",fullWidth:!1,width:720,height:"auto",tintColor:Yo,tintOpacity:60,outsideClick:!0,closeButton:"inside"};function yM(e,o){let t=typeof e=="string"?e.trim():"";return t&&mM(t)===t.toLowerCase()?t:o}function yw(e,o=ns){let t=e??{},r=o;return{placement:qo(hM,t.placement,r.placement),fullWidth:nr(t.fullWidth,r.fullWidth),width:Ga(t.width,gM,r.width),height:qo(xM,t.height,r.height),tintColor:yM(t.tintColor,r.tintColor),tintOpacity:Ga(t.tintOpacity,bM,r.tintOpacity),outsideClick:nr(t.outsideClick,r.outsideClick),closeButton:qo(IM,t.closeButton,r.closeButton)}}var Sw="cart-drawer",nle="cart-drawer",SM={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 sle(e,o){return o===0?e.subtitleEmpty:o===1?e.subtitleOne:e.subtitleMany.replace("{count}",String(o))}function lle(e){let o=e??{},t=SM;return{kickerBadge:io(o.kickerBadge,t.kickerBadge),kickerText:io(o.kickerText,t.kickerText),titleLead:io(o.titleLead,t.titleLead),titleAccent:io(o.titleAccent,t.titleAccent),subtitleEmpty:io(o.subtitleEmpty,t.subtitleEmpty),subtitleOne:io(o.subtitleOne,t.subtitleOne),subtitleMany:io(o.subtitleMany,t.subtitleMany),leadTimeValue:io(o.leadTimeValue,t.leadTimeValue),shipsToFallback:io(o.shipsToFallback,t.shipsToFallback),promises:Fi(o.promises,t.promises),emptyKicker:io(o.emptyKicker,t.emptyKicker),emptyBody:io(o.emptyBody,t.emptyBody)}}var ile={...ns,width:520,tintOpacity:68};var Cw="consent-banner",ule="consent-banner";var wM=[{value:"bar",label:"Bar"},{value:"card",label:"Card"}],ple="Layout",ww={layout:"bar"},CM=e=>wM.some(o=>o.value===e);function mle(e){let o=io((e??{}).layout,ww.layout);return{layout:CM(o)?o:ww.layout}}var hle={...ns,placement:"bottom-center",fullWidth:!0,width:440,tintOpacity:0,outsideClick:!1,closeButton:"none"};var vM="consentWords",kM=["eyebrow","notice","accept","reject","choose"];function $p(e){let o=(e??{})[vM];return typeof o=="string"&&kM.includes(o)?o:null}function Up(e){let o=e?.props;return o?$p(o)!==null?!0:Object.values(o).some(t=>Array.isArray(t)&&t.some(r=>r&&typeof r=="object"&&"props"in r&&Up(r))):!1}var TM=["meta","eyebrow","heading","body","statName","statValue","formEyebrow","formHeading","formIntro","fieldLabel","option","finePrint","dismiss","doneHeading","doneBody"],gle={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"},PM={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"},ble={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 vw(e){let o={};for(let t of TM){let r=kt(e[PM[t]]);r&&(o[t]=r)}return o}var kw={heading:"Join our email list",placeholder:"Email address",buttonLabel:"Subscribe"},EM={lead:"We accept"},Tw={...EM,methods:[],size:"sm",align:"start",dataSource:"shop-payment-methods"},Xo="site-footer";var Sle=Xo,wle={desktop:!0,tablet:!0,mobile:!0},Cle={desktop:!1,tablet:!1,mobile:!1},jp=1,Pw=6,vle=Array.from({length:Pw-jp+1},(e,o)=>jp+o),Li={desktop:6,tablet:3,mobile:2},OM={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}},Gr=e=>Math.min(Math.max(Math.round(e),jp),Pw);function kle(e){if(typeof e=="number")return OM[Gr(e)]??{desktop:Gr(e),tablet:Gr(e),mobile:Gr(e)};if(e&&typeof e=="object"){let o=e;return{desktop:Gr(o.desktop??Li.desktop),tablet:Gr(o.tablet??Li.tablet),mobile:Gr(o.mobile??Li.mobile)}}return{...Li}}var Kp="subscribe-popup",Fle="subscribe-popup",_M=[Kp,Xo,Sw,Cw];function Ow(e){return _M.includes(e)}var RM=["right","left"],AM={metaLabel:"Meta label",issueLabel:"Label",issueNumber:"00",kicker:"Kicker",heading:`Main heading
37
+ *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:Vo.autoOpen,autoOpenDelaySec:Vo.autoOpenDelaySec,formSlug:"",trigger:Vo.trigger,scrollPercent:Vo.scrollPercent,showOn:Vo.showOn,showOnPages:[],hideAfter:Vo.hideAfter,hideDays:Vo.hideDays,formSide:"right",valuePanelOnPhone:!1,sectionAccent:void 0,sectionCorners:void 0,sectionCornerSides:void 0,textStyles:{}},Ge=io,FM=nr,_w=Fi;function Ew(e,o){if(e==null)return o;let t=r=>r.trim()?r:"";if(typeof e=="string")return t(e);if(typeof e=="object"&&"text"in e){let r=e.text;return typeof r=="string"?t(r):""}return o}function LM(e,o){return Array.isArray(e)?_w(e,[]):o}function BM(e,o){return Array.isArray(e)?e.map(t=>{let r=t??{};return{label:Ge(r.label,""),value:Ge(r.value,"")}}).filter(t=>t.label||t.value):o}function Ble(e){let o=e??{},t=AM,r=bw(o);return{metaLabel:Ge(o.metaLabel,t.metaLabel),issueLabel:Ew(o.issueLabel,t.issueLabel),issueNumber:Ew(o.issueNumber,t.issueNumber),kicker:Ge(o.kicker,t.kicker),heading:Ge(o.heading,t.heading),deck:Ge(o.deck,t.deck),stats:BM(o.stats,t.stats),formLabel:Ge(o.formLabel,t.formLabel),formHeading:Ge(o.formHeading,t.formHeading),formIntro:Ge(o.formIntro,t.formIntro),firstNameLabel:Ge(o.firstNameLabel,t.firstNameLabel),firstNamePlaceholder:Ge(o.firstNamePlaceholder,t.firstNamePlaceholder),emailLabel:Ge(o.emailLabel,t.emailLabel),emailPlaceholder:Ge(o.emailPlaceholder,t.emailPlaceholder),interestsLabel:Ge(o.interestsLabel,t.interestsLabel),interests:_w(o.interests,t.interests),frequencyLabel:Ge(o.frequencyLabel,t.frequencyLabel),frequencies:LM(o.frequencies,t.frequencies),submitText:Ge(o.submitText,t.submitText),finePrint:Ge(o.finePrint,t.finePrint),dismissText:Ge(o.dismissText,t.dismissText),emailInvalidText:Ge(o.emailInvalidText,t.emailInvalidText),submitErrorText:Ge(o.submitErrorText,t.submitErrorText),successHeading:Ge(o.successHeading,t.successHeading),successBody:Ge(o.successBody,t.successBody),keepBrowsingText:Ge(o.keepBrowsingText,t.keepBrowsingText),formSlug:typeof o.formSlug=="string"?o.formSlug.trim():t.formSlug,autoOpen:r.autoOpen,autoOpenDelaySec:r.autoOpenDelaySec,trigger:r.trigger,scrollPercent:r.scrollPercent,showOn:r.showOn,showOnPages:r.showOnPages,hideAfter:r.hideAfter,hideDays:r.hideDays,formSide:qo(RM,o.formSide,t.formSide),valuePanelOnPhone:FM(o.valuePanelOnPhone,t.valuePanelOnPhone),sectionAccent:o.sectionAccent,sectionCorners:o.sectionCorners,sectionCornerSides:o.sectionCornerSides,textStyles:vw(o)}}function DM(e,o=Math.random){for(;;){let t=`popup-${Math.floor(o()*2176782336).toString(36).padStart(6,"0")}`;if(!e.has(t))return t}}function NM(e){return{root:{props:{title:e,kind:Gp}},content:[],zones:{}}}function Rw(e,o,t){return{slug:DM(o,t),title:e,kind:Qu,layout:NM(e)}}function ss(e){return e?.root?.props?.kind===Gp}function Lw(e){let o=new Map;return(t="")=>{let r=cw(),a=o.get(t);if(!a||a.token===null&&r!==null){let n=r||!$M().usesBridgedToken?e(r??"",t).catch(()=>[]):Promise.resolve([]);return o.set(t,{promise:n,token:r}),n}return a.promise}}var KM=Lw(async(e,o)=>{let t=o?{siteId:o}:void 0,{pages:r}=We();return r.linkTargets?r.linkTargets(t):(await r.list(t)).map(a=>({id:a.id,slug:a.slug,label:a.label,layout:null}))}),qM=Lw(async(e,o)=>await We().blog?.posts(o?{siteId:o}:void 0)??[]);function VM({value:e,onChange:o,label:t="Link",data:r,filters:a}){let n=Di(()=>Wp(r,a),[r,a]),s=i(t);return $r(Fw,{label:s,icon:$r(HM,{}),children:$r(zM,{value:e,onChange:l=>o(l),kinds:n.kinds,rules:n.rules,filtersFor:n.filtersFor,label:s})})}function Bw(){let{siteId:e,capabilities:o}=UM(),{offersCommerce:t,hasBlog:r}=o,[a,n]=Bi([]),[s,l]=Bi([]),[c,d]=Bi([]),[p,h]=Bi(null),u=jM().chrome,x=u?.products?.list,g=u?.linkFilters,y=g?void 0:u?.linkRow,T=GM(!0);Aw(()=>(T.current=!0,()=>{T.current=!1}),[]),Aw(()=>{let I=!0;return KM(e??void 0).then(C=>I&&T.current&&n(C)),r&&qM(e??void 0).then(C=>I&&T.current&&l(C)),t&&x?.().then(C=>I&&T.current&&d(C)),t&&g?g.load(e).catch(()=>null).then(C=>I&&T.current&&h(()=>C)):h(null),()=>{I=!1}},[e,t,r,x,g]);let O=Di(()=>({pages:a.filter(I=>!Ow(I.slug)&&!ss(I.layout)).map(I=>({slug:I.slug,title:I.label,docs:[I.layout]})),popups:a.filter(I=>I.slug===Kp||ss(I.layout)).map(I=>({slug:I.slug,title:I.label})),posts:r?s.map(I=>({slug:I.slug,title:I.title})):[],products:t?c.map(I=>({href:I.href,name:I.name})):[],offers:{offersCommerce:t,offersService:r}}),[a,s,c,t,r]),w=Di(()=>p?p(O.pages):null,[p,O]);return{data:O,filters:w,pages:a,offersCommerce:t,HostLinkRow:y}}function oie({label:e,icon:o,text:t,onTextChange:r,link:a,onLinkChange:n}){let{data:s,filters:l}=Bw(),c=Di(()=>Wp(s,l),[s,l]),d=i(e);return $r(Fw,{label:d,icon:o,children:$r(WM,{label:d,text:t,onTextChange:r,link:a,onLinkChange:p=>n(p),kinds:c.kinds,rules:c.rules,filtersFor:c.filtersFor})})}function Dw({value:e,onChange:o,label:t="Link"}){let r=typeof e=="string"?e:"",{data:a,filters:n,pages:s,offersCommerce:l,HostLinkRow:c}=Bw(),d=a.pages.map(h=>os(h.slug)),p=l&&c&&(r==="/"||d.includes(r))?c:void 0;return MM("div",{children:[$r(VM,{value:r,onChange:o,label:t,data:a,filters:n}),p&&$r(p,{value:r,onChange:o,pages:s})]})}import{UiIcon as RC}from"efficient-easel/draw/client";import{phoneKey as tH,tabletKey as rH}from"efficient-easel/draw";import{AUTO_RULES as ZM,FOLLOW_RULES as JM,VIEW_DESKTOP_MIN as QM,VIEW_TABLET_MIN as Hw,isAuto as eH,resolveViewValue as oH}from"efficient-easel/draw";import{VIEW_DESKTOP_MIN as YM,VIEW_TABLET_MIN as Mw}from"efficient-easel/screen/lib/content/view-tiers";var qp="v1",XM=e=>e==="v2"?Mw:800,Nw={"view-tablet":Mw,"view-desktop":YM,"view-wide":XM(qp)};function aie(e){let o=e.startsWith("max-"),t=o?e.slice(4):e;if(t in Nw)return{px:Nw[t],max:o};let r=/^(max|min)-\[(\d+)px\]$/.exec(e);return r?{px:Number(r[2]),max:r[1]==="max"}:void 0}function Ni(){return qp==="v2"?ZM:JM}var zw=.02,Ww=`(min-width: ${Hw}px) and (max-width: ${QM-zw}px)`,$a=`(max-width: ${Hw-zw}px)`;function sr(e,o,t,r,a=Ni()){let n=oH(e,o,t,r,a),s={},l=(c,d)=>!eH(c)||d!=null&&d!==o;return l(t,n.tablet)&&(s.tablet=n.tablet),l(r,n.phone)&&(s.phone=n.phone),s}var Zo={min:10,max:200,step:10};function aH(e,o){let t=$(e),r=$(o);if(!(t===void 0&&r===void 0))return{paddingTop:t,paddingBottom:r}}var nH="sf-pad-top-phone",sH="sf-pad-bottom-phone",lH="--sf-pad-t-phone",iH="--sf-pad-b-phone",cH="sf-pad-left-phone",dH="sf-pad-right-phone",fH="--sf-pad-l-phone",uH="--sf-pad-r-phone",pH="sf-pad-top-tablet",mH="sf-pad-bottom-tablet",hH="sf-pad-left-tablet",xH="sf-pad-right-tablet",IH="--sf-pad-t-tablet",gH="--sf-pad-b-tablet",bH="--sf-pad-l-tablet",yH="--sf-pad-r-tablet";function Mi(e){let o=aH(e.top,e.bottom),t=Vp({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 SH=[["top","paddingTop",[pH,IH],[nH,lH]],["bottom","paddingBottom",[mH,gH],[sH,iH]],["left","paddingLeft",[hH,bH],[cH,fH]],["right","paddingRight",[xH,yH],[dH,uH]]];function Vp(e,o,t={},r=e){let a={},n={},s=[];for(let[l,c,...d]of SH){let p=$(e[l]);p!==void 0&&(a[c]=p);let h=sr("spacing",$(r[l]),$(t[l]),$(o[l]));for(let[u,[x,g]]of[["tablet",d[0]],["phone",d[1]]]){let y=h[u];typeof y=="number"&&(s.push(x),n[g]=`${y}px`)}}return{classes:s,style:{...a,...n}}}function Gw(e,o,t){let r=$(e)??t,a=$(o);return r===void 0?a:a===void 0?r:r+a}function Hi(e,o={}){return{top:Gw(e.padTop,e.sectionPaddingTop,o.top),bottom:Gw(e.padBottom,e.sectionPaddingBottom,o.bottom)}}var Yp={top:"sectionPaddingTop",bottom:"sectionPaddingBottom",left:"sectionPaddingLeft",right:"sectionPaddingRight"};function $w(e,o=Yp,t=!0){let r={};for(let a of t?["top","bottom","left","right"]:["top","bottom"])r[a]=e[o[a]],r[`${a}Tablet`]=e[rH(o[a])],r[`${a}Phone`]=e[tH(o[a])];return r}function Uw(e){return Mi(e)}function jw(e,o){let t=r=>typeof r=="number"?r+o:void 0;return Mi({...e,top:t(e.top),bottom:t(e.bottom),topTablet:t(e.topTablet),bottomTablet:t(e.bottomTablet),topPhone:t(e.topPhone),bottomPhone:t(e.bottomPhone)})}import{BUTTON_PAD_KEYS as zi,buttonBorderOf as wH,buttonFillOpacityOf as CH,buttonPadSidesOf as vH}from"efficient-easel/draw";var kH="px-6 py-4",TH=4,Wi=e=>{let o=new RegExp(`\\bp${e}-(?:\\[(\\d+)px\\]|(\\d+))`).exec(kH);if(!o)throw new Error(`BUTTON_PAD_CLASSES has no p${e}`);return o[1]!==void 0?Number(o[1]):Number(o[2])*TH},gie={top:Wi("y"),right:Wi("x"),bottom:Wi("y"),left:Wi("x")},qw="var(--btn)";function PH(e){let o=e.variant==="ghost",t=CH(e.buttonFillOpacity),r=wH(e.buttonBorder),a=oe(e.buttonColor);return{fillOpacity:t??(o?0:100),border:{width:r?.width??1,color:r?.color??a??(o?"currentColor":qw)},changed:t!==void 0||r!==void 0}}function bie(e){let o=PH(e);if(!o.changed)return null;let t=oe(e.buttonColor)??qw;return{background:o.fillOpacity===0?"transparent":o.fillOpacity===100?t:`color-mix(in srgb, ${t} ${o.fillOpacity}%, transparent)`,borderWidth:o.border.width,borderStyle:"solid",borderColor:o.border.color}}var EH="var(--sf-button-radius, 0)";function yie(e){let o=$(e.buttonCorners),t=It(e.buttonCornerSides);if(o===void 0&&t===null)return null;let r=o===void 0?EH:`${Math.max(0,o)}px`;return{borderRadius:t===null?r:Lr(r,t)}}function Sie(e){let o=a=>vH({top:e[`${zi.top}${a}`],right:e[`${zi.right}${a}`],bottom:e[`${zi.bottom}${a}`],left:e[`${zi.left}${a}`]})??{},{classes:t,style:r}=Vp(o(""),o("Phone"),o("Tablet"));return Object.keys(r).length?{className:t.join(" "),style:r}:null}var Kw="upper";function Vw(e,o,t){let r=e&&typeof e=="object"?e:{},a=oe(r.textStyle),n=a?oe(o?.find(p=>p?.id===a)?.name):void 0,s=a?/^(heading|body)-(\d+)$/.exec(a):null,l=a?n||(s?t.styleName({kind:s[1],n:Number(s[2])}):a):t.noStyle,{cases:c}=t,d=oe(r.case)??Kw;return`${l} \xB7 ${c[d]??c[Kw]}`}import{usePreviewParts as y4}from"efficient-easel/draw/client";import{encodePartId as S4}from"efficient-easel/draw";import{DEFAULT_EASEL_STRINGS as w4,useEaselStrings as C4}from"efficient-easel/strings";var OH=["auto","fixed","screen"],_H=["px","%"];var RH="var(--sf-header-h, 88px)",Xp={min:40,max:2e3,step:10,fallback:600},Zp={min:10,max:200,step:5,fallback:100},AH="sf-section-minh",Jp="grid-cols-[minmax(0,1fr)]",Yw={base:"--sf-section-minh",small:"--sf-section-minh-s"},Zw=e=>typeof e=="string"&&OH.includes(e),FH=e=>typeof e=="string"&&_H.includes(e);function Gi(e){let o=Zw(e.sectionHeightMode)?e.sectionHeightMode:"auto",t=o==="screen"?"%":FH(e.sectionHeightUnit)?e.sectionHeightUnit:"px",r=o==="screen"?Zp.fallback:Xp.fallback,a=typeof e.sectionHeightValue=="number"?e.sectionHeightValue:r;return{mode:o,value:a,unit:t}}function Jw(e){let{mode:o,value:t,unit:r}=Gi(e);if(o==="auto")return;if(o==="fixed"&&r==="px")return[`${t}px`,null];let a=t/100,n=s=>o==="screen"?`(100${s} - ${RH})`:`100${s}`;return[`calc(${n("vh")} * ${a})`,`calc(${n("svh")} * ${a})`]}function Qw(e){let o=Jw(e);if(!o)return;let[t,r]=o;return{display:"grid",[Yw.base]:t,...r?{[Yw.small]:r}:{}}}var Cie=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),Ua="Height",LH="sf-section-minh-phone",Xw={base:"--sf-section-minh-p",small:"--sf-section-minh-ps"};function Qp(e){return Zw(e.sectionHeightModePhone)}function vie(e){return Gi({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})}function BH(e){let o=Qw(e),t=Qp(e)?Jw({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})??(o?["auto",null]:void 0):void 0;if(!o&&!t)return null;let r=[AH,Jp],a={...o??{}};return t&&(r.push(LH),a[Xw.base]=t[0],t[1]&&(a[Xw.small]=t[1])),{className:r.join(" "),style:a}}function DH(e){return BH(e)!==null}var NH=`grid ${Jp}`,eC="h-full",MH=`max-view-tablet:grid ${Jp}`;function oC(e){return DH(e)?Qw(e)?NH:MH:""}var $i="Stick to top",lr={min:0,max:200,step:4,fallback:0},HH="sf-section-stick",Pie="sf-scroll-over",zH="sf-section-stick-phone-on",WH="sf-section-stick-phone-off",tC={desktop:"--sf-stick-distance",phone:"--sf-stick-distance-phone"},Eie=new Set(["CategoryBar","DocTabs","IntroBleed","Contents"]);function rC(e){let o=$(e)??lr.fallback;return Math.min(lr.max,Math.max(lr.min,Math.round(o)))}function em(e){return typeof e.stickTopPhone=="boolean"}function om(e){let o=e.stickTop===!0,t=rC(e.stickTopDistance),r=em(e),a=r?e.stickTopPhone===!0:o,n=r?rC(e.stickTopDistancePhone):t;return{desktop:o,desktopDistance:t,phone:a,phoneDistance:n,ownPhone:r}}function Oie(e){let o=om(e);if(!o.desktop&&!o.phone)return null;let t=[HH],r={};return o.desktop&&(r[tC.desktop]=`${o.desktopDistance}px`),(o.ownPhone||o.phone!==o.desktop)&&(t.push(o.phone?zH:WH),o.phone&&(r[tC.phone]=`${o.phoneDistance}px`)),o.desktop||t.push("sf-section-stick-desktop-off"),{className:t.join(" "),style:r}}var GH=["column","row","tabs"];var $H={column:"Stacked",row:"One row",tabs:"Tabs"},aC={Flex:GH,HeroGroup:["column","row"]},UH={Flex:"row",HeroGroup:"column"},jH={column:"flex-col",row:"flex-row",tabs:"flex-col"};function Ui(e,o){return aC[e].includes(o)?o:UH[e]}function Rie(e,o){return jH[Ui(e,o)]}function nC(e){return aC[e].map(o=>({label:$H[o],value:o}))}var KH=["solid","dashed","dotted"],qH=["top","right","bottom","left"],iC="sf-section-border",cC="sf-section-border-self",VH=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,sC=e=>typeof e=="number"&&Number.isFinite(e)?`${Math.min(20,Math.max(0,Math.round(e)))}px`:void 0;function lC(e,{phone:o=!1}={}){if(!e||typeof e!="object")return;let t=o?"-phone":"",r={};for(let a of qH){let n=sC(e[a])??sC(e.width);n!==void 0&&(r[`--sf-border-${a}-width${t}`]=n)}return typeof e.style=="string"&&KH.includes(e.style)&&(r[`--sf-border-style${t}`]=e.style),typeof e.color=="string"&&VH.test(e.color)&&(r[`--sf-border-color${t}`]=e.color.toLowerCase()),Object.keys(r).length?r:void 0}function Fie(e,o){let t=lC(e),r=lC(o,{phone:!0});return t||r?{...t,...r}:void 0}var ji="sf.gapContainer",Rt={min:-32,max:64,step:2},pC={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},ja={Grid:24,Flex:24,FooterGroup:16,HeroGroup:0,Events:24,GalleryB:8,ProductGrid:2},YH=new Set(["Events","GalleryB"]);function jr(e,o,t){if(typeof o=="number"&&Number.isFinite(o)&&o>=Rt.min)return o;if(typeof o=="string"){let r=pC[e]?.[o];if(typeof r=="number")return r}return typeof t=="number"&&Number.isFinite(t)?t:ja[e]}var XH="sf-gap-overlap",ZH="--sf-gap-overlap",mC="--sf-block-gap",JH="--sf-block-gap-rem",Ur={min:0,max:Rt.max,step:Rt.step};function ls(e){if(typeof e!="number"||!Number.isFinite(e))return null;let o=Math.min(Math.max(Math.round(e),Ur.min),Ur.max);return o-o%Ur.step}function Bie(e){let o=ls(e);return o===null?{}:{[mC]:`${o}px`,[JH]:`${o/16}rem`}}var QH="--sf-block-gap-phone",e5="--sf-block-gap-phone-rem",o5="--sf-block-gap-on-phone",t5="max-view-tablet:[--sf-block-gap-on-phone:var(--sf-block-gap-phone)]";function Die(e){let o=ls(e);return o===null?{}:{[QH]:`${o}px`,[e5]:`${o/16}rem`}}function Nie(e){return ls(e)===null?"":t5}var dC="sf-gap-zone",fC="--sf-gap-len";function Ki(e,o){return typeof o=="number"&&Number.isFinite(o)&&o>=Rt.min?!0:typeof o=="string"&&typeof pC[e]?.[o]=="number"}var uC="--sf-gap-len-phone",r5="--sf-gap-len-tablet",is={min:0,max:Rt.max,step:Rt.step};function ir(e){return typeof e=="number"&&Number.isFinite(e)&&e>=is.min}function tm(e){return e/2}function rm(e,o,t){return ir(t)&&!Ki(e,o)}function am(e,o,t,r,a){return ir(o)?o:rm(e,t,a)?a:tm(jr(e,t,r))}var a5={block:"sf-gap-overlap-block",inline:"sf-gap-overlap-inline",both:"sf-gap-overlap-both"};function Mie(e,o,t,r,a){let n={...ir(r)?{[uC]:`${r}px`}:null,...ir(a)?{[r5]:`${a}px`}:null};if(!Ki(e,o)){let l=`${ja[e]}px`,c=YH.has(e)?`var(--sf-card-gap, ${l})`:l;return{className:` ${dC}`,style:{[fC]:`var(${mC}, ${c})`,[uC]:`var(${o5})`,...n}}}let s=jr(e,o);return s>=0?{className:` ${dC}`,style:{[fC]:`${s}px`,...n}}:{className:` ${XH} ${a5[t]}`,style:{gap:"0px",[ZH]:`${-s/2}px`}}}var hC=["transparent","var(--section-bg)","var(--surface)","var(--surface-2)"],xC={transparent:"No fill","var(--section-bg)":"Section band","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},Jo="var(--section-bg)",qi="inherit";function Vi(e,o){return e===qi?Jo:e===void 0?o:Yi(e)}var n5=/var\(\s*--(surface-2|surface|line)\s*(?=[,)])/g;function Yi(e){return e.replace(n5,"var(--site-$1")}function IC(e,o){return e===qi?!0:e===void 0&&o===Jo}var gC=["transparent","var(--wheel-stage)","var(--surface)","var(--surface-2)"],bC={transparent:"No fill","var(--wheel-stage)":"Image stage","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},Ka="var(--wheel-stage)",Xi="transparent",cs="inherit";function Gie(e,o){return Yi(nm(e,o))}function nm(e,o){return e===cs?Ka:e==null?o:e===!0?Ka:e===!1?Xi:e}function $ie(e){return typeof e=="string"&&e!==cs?Yi(e):Ka}function Uie(e){return e!==Xi&&e!=="none"&&e!==""}function yC(e,o){return e===cs||e===!0?!0:e==null?o===Ka:!1}var SC="inherit",Zi="fixed",wC=e=>typeof e!="number"&&e!==Zi,s5="var(--sf-heading-max, 9999px)";function Kie(e,o,t,r){if(typeof e=="number")return`${e}px`;if(e===Zi)return o;let a=r?`var(--size-${r}, ${o})`:o;return t==="heading"?`min(${a}, ${s5})`:a}var l5=["page","full"],CC=["full","page"],Kr={full:"Full width",page:"Content width"},sm="inherit",i5=e=>typeof e=="string"&&l5.includes(e),c5=e=>e===sm;function d5(e,o){return c5(e.widthMode)?{mode:"full",inherited:!0}:i5(e.widthMode)?{mode:e.widthMode,inherited:!1}:{mode:o,inherited:o==="full"}}function Vie(e){return d5(e,"page").mode==="full"}var f5={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 Yie(e){return Object.prototype.hasOwnProperty.call(f5,e)}var vC="siteWidths",u5=e=>e==="full"||e==="content";function Ji(e){return u5(e)?e:null}function kC(e,o){return{[vC]:{background:Ji(e),content:Ji(o)}}}function Xie(e){let o=e.editor?.metadata?.[vC];return{background:Ji(o?.background),content:Ji(o?.content)}}import{jsx as p5}from"react/jsx-runtime";import{createContext as m5,useContext as ece}from"react";var h5=2,oce=h5+1,x5=m5(2);function TC({tier:e,children:o}){return p5(x5.Provider,{value:e,children:o})}import{useEaselSession as v4}from"efficient-easel/screen/lib/session-context";import{BOX_GAP as k4,describedAs as cr,group as et,iconOf as fs,sharedStyleKinds as us}from"efficient-easel/screen/lib/document/box-fields";import{VIEW_KEY_ACCESS as ZC,onDesktopWords as ps,phoneTwinFields as cm}from"efficient-easel/screen/lib/document/box-fields";import{createElement as PC}from"react";import{SettingsField as I5}from"efficient-easel/panel";import{boxFieldBuilders as g5,describedAs as b5,iconOf as y5}from"efficient-easel/screen/lib/document/box-fields";import{IconPicker as S5}from"efficient-shell/ui";var w5=e=>i(e),co=g5(w5),yo=co.slider,Qo=co.select,Qi=co.Segmented,qa=co.segmented,ice=co.alignmentField,cce=co.alignmentFields,dce=co.blockAlignmentField,fce=co.blockAlignmentFields,uce=co.boxJustifyField,pce=co.boxAlignField,mce=co.boxWrapField,EC=co.directionField,ec=co.gapField,hce=co.placementField,xce=co.PlacementGridView,Ice=co.positionFields,oc=co.sidesPaddingFields;function gce(e,o,t,r,a={}){let n=s=>t.some(l=>l.value===s);return{type:"custom",...b5({},{type:"radio",label:e,options:t.map(s=>s.label===void 0?{value:s.value}:{value:s.value,label:s.label})}),render:({value:s,onChange:l,field:c})=>{let d=t.map(u=>({value:u.value,...u.label===void 0?{}:{label:i(u.label)},icon:u.picture})),p=c?.currentValue,h=a.resolve?a.resolve(s)??r:n(s)?s:n(p)?p:r;return PC(I5,{label:i(e),icon:y5(o)},PC(S5,{label:i(e),value:h,options:d,onChange:l,emptyValue:a.emptyValue}))}}}import{TEXT_CONTROL_KINDS as Jde,SCALAR_TEXT_CONTROLS as Qde}from"efficient-easel/draw";function Xa(e,o){return i("{value} from {from}",{value:e,from:o})}function T4(){let{blockGap:e}=de();return e===null?i("this container's own spacing"):Xa(`${e}px`,i("Styles"))}function P4({inherited:e,onReset:o,label:t}){return S(mo,{words:ee()?.panel,label:i(t),changed:!e,detail:T4(),onReset:o})}function E4(e){return ec({...k4,builtIn:ja[e],resolve:(o,t)=>jr(e,o,t?.siteGap),action:(o,t)=>S(P4,{inherited:!Ki(e,o),onReset:()=>t(void 0),label:"Gap"}),mark:{[ji]:e}})}function O4(e){return Je(Ye("mobile",{[ji]:e,type:"custom",render:o=>S(A4,{container:e,...o})}),JC)}function _4(e){return Je(Ye("tablet",{[ji]:e,type:"custom",render:o=>S(R4,{container:e,...o})}),JC)}var JC={not:{field:"gap",in:Array.from({length:-Rt.min},(e,o)=>Rt.min+o)}};function Ude(e){return{gap:Ye("desktop",E4(e)),[XC("gap")]:_4(e),[Va("gap")]:O4(e)}}function R4({container:e,...o}){let[t]=qr("gap"),{siteGap:r}=o.field??{},a=Math.max(is.min,jr(e,t,r));return ec({...is,builtIn:a,resolve:n=>ir(n)?n:a,action:(n,s)=>S(mo,{words:ee()?.panel,label:i("Gap"),changed:ir(n),detail:ps(l=>i(l),`${a}px`),onReset:()=>s(void 0)})}).render(o)}function A4({container:e,...o}){let[t]=qr("gap"),{siteGap:r,siteGapPhone:a}=o.field??{},n=am(e,void 0,t,r,a);return ec({...is,builtIn:n,resolve:s=>am(e,s,t,r,a),action:(s,l)=>S(mo,{words:ee()?.panel,label:i("Gap"),changed:ir(s),detail:Xa(`${n}px`,rm(e,t,a)?i("Styles"):i("Desktop")),onReset:()=>l(void 0)})}).render(o)}function jde(e){return EC({offered:nC(e),fallback:Ui(e,void 0),resolve:o=>Ui(e,o)})}function Kde(e,o){return eS(o?dp(e,o):[],o)}function F4({inherited:e,onReset:o,label:t}){return S(mo,{words:ee()?.panel,label:i(t),changed:!e,detail:Xa(i("Full"),i("the page")),onReset:o})}function Vr({value:e,onChange:o,label:t,placeholder:r,hint:a,multiline:n,hideable:s=!0,markup:l=!0}){let{text:c,hidden:d}=fr(e),p=ac(null),h=ac(null),u=w=>o(s?{text:w,hidden:d}:w),x=()=>o({text:c,hidden:!d}),g=s&&d,y=MC(),T=a?M4(a)?S("span",{className:"sf-hint-keep sf-hint-while-typing",children:i(a)}):S(aS,{children:i(a)}):void 0,O=d?i("Show {label} on the slide",{label:i(t)}):i("Hide {label} on the slide",{label:i(t)});return S(Xe,{label:i(t),icon:S(J5,{}),htmlFor:y,className:g?"is-hidden":void 0,hint:T,action:s?S(nc,{content:O,children:S(VC,{"aria-pressed":d,"aria-label":O,onClick:x,children:d?S(RC,{name:"eye-off",size:14}):S(RC,{name:"eye",size:14})})}):void 0,children:Ya("div",{className:"sf-copybox",children:[l&&S(bp,{target:n?h:p,value:c,onChange:u}),n?S("textarea",{id:y,ref:h,value:c,placeholder:r===void 0?void 0:i(r),onChange:w=>u(w.target.value)}):S("input",{id:y,ref:p,type:"text",value:c,placeholder:r===void 0?void 0:i(r),onChange:w=>u(w.target.value)})]})})}function qde(e,o){return{...e,[_5]:o}}function Vde(e){let o=e[At];if(!o)throw new Error("withOffPage: the field holds no authored text");return{...e,[At]:{...o,offPage:!0}}}function ic(e){return!e||typeof e!="object"?!1:e[At]?.offPage===!0}var QC="sfPanelOnly";function Yde(e){if(!e[At])throw new Error("withPanelOnly: the field holds no authored text");return{...e,[QC]:!0}}function ev(e){return!!e&&typeof e=="object"&&e[QC]===!0}function Xde(e){let o=e[At];if(!o)throw new Error("withIdentifier: the field holds no authored text");return{...e,[At]:{...o,identifier:!0}}}function efe(e,o){if(!e[At])throw new Error("inOwnBox: the field holds no authored text");let{[I4]:t,...r}=e;return{...r,[yp]:!0,render:o}}var L4=new Set(b4),sc={type:"radio",options:[{value:!0},{value:!1}]},ov={text:{type:"object",objectFields:{text:{type:"text"},hidden:sc}},textarea:{type:"object",objectFields:{text:{type:"textarea"},hidden:sc}},plainText:{type:"text"},copyText:{type:"text"},plainTextarea:{type:"textarea"},textList:{type:"array",arrayFields:{text:{type:"text"}}}},Yr=(e,o)=>{let t=cr({...o,[At]:e},{...ov[e.control],label:e.label});if(!L4.has(e.control))return t;let r=o.render;return{...YC(t,"authored-copy"),render:a=>S(AS,{name:a.name,children:r(a)})}},ofe="Everything else on this block comes from the linked post. Unlink it to edit by hand.",B4={field:"source.slug",set:!0},tfe={not:B4},D4="Select a word, then press the highlighter.",N4=new Set([D4]),M4=e=>N4.has(e);function rfe(e,o,t){return Yr({control:"text",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Vr,{value:r,onChange:a,label:e,placeholder:o,hint:t})})}function afe(e,o,t){return Yr({control:"textarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Vr,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0})})}function nfe(e,o,t){return Yr({control:"plainText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Vr,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1,markup:!1})})}function sfe(e,o,t){return Yr({control:"copyText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Vr,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1})})}function lfe(e){return{type:"custom",[E5]:{label:e},...cr({},{type:"text",label:e}),render:({value:o,onChange:t})=>S(Dw,{value:P5(o),onChange:t,label:e})}}function ife(e,o,t){return Yr({control:"plainTextarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Vr,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0,hideable:!1})})}var tv={Design:R5,Animation:F5};function cfe(e){return{type:"custom",render:()=>S(H4,{text:e})}}function H4({text:e}){return S("p",{className:"sf-note",children:i(e)})}function dfe(e){return Ft(e)!==null&&e?.tabs!==void 0}var AC=new Map;function cc(e,o){let t=`${e}\0${o?o.join(""):""}`,r=AC.get(t)??{type:"custom",tabs:o,[HC]:{label:e,level:1},bucket:e,marker:!0,render:()=>S(dr,{})};return AC.set(t,r),r}var FC=new Map;function um(e){let o=FC.get(e)??{type:"custom",[HC]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>S(dr,{})};return FC.set(e,o),o}function z4(e){let o=e;return o?.marker===!0&&typeof o.fold=="string"?o.fold:null}function rv(e,o){return z4(e)===o?e:{...e,marker:!0,fold:o,render:()=>S(dr,{})}}function av(e){let o=e;if(o.marker===!0&&o.fold===void 0)return e;let{fold:t,...r}=e;return{...r,marker:!0,render:()=>S(dr,{})}}function pm({title:e,children:o}){let[t,r]=ds(()=>!lm.has(e));return S(o4,{title:e,open:t,onToggle:a=>{r(a),a?lm.delete(e):lm.add(e)},children:o})}var lm=new Set;function nv({swatches:e,current:o,onPick:t,names:r}){let a=e.find(l=>l.toLowerCase()===o.toLowerCase()),n=a?r?.[a]:void 0,s=n?i(n):o;return Ya("div",{className:"sf-swatches",children:[e.map(l=>{let c=r?.[l]?i(r[l]):l;return S(nc,{content:c,children:S(d4,{color:l,selected:o.toLowerCase()===l.toLowerCase(),onClick:()=>t(l),"aria-label":c})},l)}),S("span",{className:"sf-swatch-hex",children:s})]})}function ffe(e,o){return{type:"custom",render:({value:t,onChange:r})=>{let a=IC(t,o);return S(Xe,{label:i(e),icon:S(L5,{}),changed:!a,action:S(mo,{words:ee()?.panel,label:i(e),changed:!a,detail:i("the theme's section background"),onReset:()=>r(qi)}),children:nv({swatches:hC,current:a?Jo:t??o??"",onPick:r,names:xC})})}}}function W4(e,o){return{type:"custom",render:({value:t,onChange:r})=>{let a=t,n=yC(a,o);return S(Xe,{label:i(e),icon:S(GC,{}),changed:!n,action:S(mo,{words:ee()?.panel,label:i(e),changed:!n,detail:i("the theme's image stage"),onReset:()=>r(cs)}),children:nv({swatches:gC,current:n?Ka:nm(a,o),onPick:r,names:bC})})}}}function dc(e=t=>t,o){return us({_gSectionTheme:et(ow),sectionAccent:{type:"custom",render:({value:t,onChange:r})=>S(lw,{value:e(t),onChange:r,followLabel:o})}})}function Eo({min:e,max:o,step:t,value:r,onChange:a,suffix:n="",readout:s=!0,notch:l,ariaLabel:c,disabled:d=!1}){let p=l!==void 0&&Number.isFinite(l)&&l>=e&&l<=o;return S("div",{className:p?"sf-slider has-notch":"sf-slider",style:p?{"--sf-notch":(l-e)/(o-e)}:void 0,children:S(h4,{min:e,max:o,step:t,value:r,suffix:n||void 0,showInput:s,label:c===void 0?void 0:i(c),disabled:d,size:"sm",boxSize:"md",className:"sf-slider-track",onChange:h=>{h!==null&&h!==r&&a(h)}})})}function sv(e,o){let{min:t,max:r,step:a=1,unsetLabel:n,hint:s,restTrack:l,unsetMark:c,icon:d,unit:p="px"}=o;return{type:"custom",render:({value:h,onChange:u})=>{let x=typeof h=="number"?h:null,g=x===null;return S(Xe,{label:i(e),icon:d?fs(d):void 0,value:g?c||n===void 0?void 0:i(n):`${x}${p}`,changed:!g,action:c?NC(c,{changed:!g,onReset:()=>u(null)}):S(mo,{words:ee()?.panel,label:i(e),changed:!g,onReset:()=>u(null)}),hint:typeof s=="string"?i(s):s,children:l?l({min:t,max:r,step:a,px:x,label:e,onChange:u}):Eo({min:t,max:r,step:a,value:x??t,readout:!1,ariaLabel:e,onChange:u})})}}}var fc="Corners";function mm(e){return{type:"custom",render:({value:o,onChange:t})=>{let r=typeof o=="number"&&Number.isFinite(o)?o:null,a=r!==null;return S(Xe,{label:i(fc),icon:S(N5,{}),changed:a,action:NC(e.mark,{changed:a,onReset:()=>t(null)}),hint:e.hint,children:S(G4,{tier:e,px:r,onRadius:t})})}}}function qr(e){let o=lc();return[o?.values?.[e],t=>o?.onChange(e,t)]}function lv(){return YC({type:"custom",render:()=>S(g4,{})},"always")}function Pp(){let e=lc();return o=>e?.onChangeMany(o)}function G4({tier:e,px:o,onRadius:t}){let r=e.useFollowed(),[a,n]=qr(e.sidesKey),s=It(a)??[...li];return S(f4,{label:i(fc),value:s,corners:ky,onChange:l=>{let c=It(l)??[];n(c.length===li.length?null:c)},radius:o,onRadiusChange:t,radiusMin:Ao,radiusMax:Tr,radiusStep:e.step??1,radiusPlaceholder:String(r)})}function iv(){return lv()}function $4({label:e,changed:o=!1,onReset:t=()=>{}}){let{cornerRadiusPx:r}=de(),a=typeof r=="number"?`${r}px`:i("not set");return S(mo,{words:ee()?.panel,label:i(e),changed:o,detail:r==null?i("the built-in corners"):Xa(a,i("Styles")),onReset:t})}function U4(){let{cornerRadiusPx:e}=de();return typeof e=="number"?e:Ao}function j4(){return mm({sidesKey:"sectionCornerSides",useFollowed:U4,mark:S($4,{label:fc}),hint:K4})}var K4="Follows Styles \u25B8 Basics \u25B8 Corners until you set a number here.";function uc(){return us({_gShape:et("Shape"),sectionCorners:j4(),sectionCornerSides:iv(),sectionBorder:LC("desktop"),sectionBorderPhone:LC("mobile")})}var q4=()=>({width:i("Border width"),sides:{top:i("Border top"),right:i("Border right"),bottom:i("Border bottom"),left:i("Border left")},style:i("Border style"),styles:{solid:i("Solid"),dashed:i("Dashed"),dotted:i("Dotted")},color:i("Border color"),unit:"px"});function V4(e){let o=Object.fromEntries(Object.entries(e).filter(([,t])=>t!=null&&t!==""));return Object.keys(o).length?o:void 0}function Y4(){let e;try{let o=lo(de().theme);e=o.themes[o.selected]?.line}catch{e=void 0}return e||au.line}function X4({value:e,onChange:o,placeholder:t,presets:r,sides:a=!0,styles:n=!0,above:s={}}){let l=e&&typeof e=="object"?e:{},[c,d]=ds(()=>a?s4(l,s):!1),p=q4(),h=u=>V4(a&&n?u:{width:u.width,color:u.color,...n?{style:u.style}:{}});return S(Xe,{label:i("Border"),icon:S(B5,{}),action:a?S(a4,{each:c,label:i("Each side"),onChange:d}):void 0,children:S(r4,{label:i("Border"),value:l,each:c,onChange:u=>o(h(u)),placeholder:t,presets:r,words:p,styles:n,max:20})})}function Z4({value:e,onChange:o,tier:t}){let[r]=qr("sectionBorder"),a=Y4(),n=t==="mobile"?r&&typeof r=="object"?r:{}:{};return S(X4,{value:e,onChange:o,placeholder:{sides:n4(n),style:n.style??"solid",color:n.color||a},presets:[a],above:n})}function LC(e){return Ye(e,{type:"custom",render:({value:o,onChange:t})=>S(Z4,{value:o,onChange:t,tier:e})})}function ufe(e){return{type:"custom",render:()=>S(J4,{partKey:e})}}function J4({partKey:e}){let[o]=qr("id"),[t]=qr("_partStyles"),{textStyles:r}=de(),a=C4(),n=null;try{n=y4().select}catch{n=null}let s=t&&typeof t=="object"?t[e]:void 0,l=Array.isArray(r)?r:null;return S(e4,{name:i("Text"),preview:Vw(s,l,{noStyle:i("No style"),styleName:a.textStyles.styleName,cases:(a.copy.panel??w4.copy.panel).cases}),onOpen:()=>{n&&typeof o=="string"&&n(S4(o,e))}})}function cv(e){let{cornerRadiusPx:o}=de(),t=typeof o=="number"?o:e,r=null;try{let{appState:n,selectedItem:s}=dm(c=>c),l=s?.props?.id?String(s.props.id):void 0;r=l?gS(n?.data,l)?.props??null:null}catch{r=null}if(!r)return t;let a=r.sectionCorners;return Uu(a)?a:t}function Q4({label:e,changed:o=!1,onReset:t=()=>{}}){let r=cv(Ao);return S(mo,{words:ee()?.panel,label:i(e),changed:o,detail:Xa(`${r}px`,i("the section")),onReset:t})}function e3(){return S(dr,{children:i("Follows the section's Corners until you set a number here.")})}function o3(){return mm({sidesKey:"cardCornerSides",useFollowed:()=>cv(Ao),mark:S(Q4,{label:fc}),hint:S(e3,{})})}function t3(){return{type:"custom",render:()=>S(Ay,{})}}function pfe(){return{_gShape:et("Shape"),cardCorners:o3(),cardCornerSides:iv(),cardCornersApplyAll:t3()}}function dv(e=ku,o=e[0].value){return cr({type:"custom",render:t=>{let{value:r,onChange:a}=t,n="follows"in t,s=t.follows,l=r!=null,c=l?r:n?s??o:r,d=e.find(h=>h.value===c)??e.find(h=>h.value===o)??e[0],p=e.find(h=>h.value===(s??o))??e[0];return S(Xe,{label:i(jn),icon:S(zC,{}),value:i(d.label),action:n?S(mo,{words:ee()?.panel,label:i(jn),changed:l,detail:ps(h=>i(h),i(p.label),t.followsView),onReset:()=>a(void 0)}):void 0,children:S(p4,{className:"sf-gallery-layouts",label:i(jn),value:d.value,onChange:a,options:e.map(h=>({value:h.value,label:i(h.label),picture:S("span",{className:"sf-gallery-pic",children:r3(h.weights).map((u,x)=>S("i",{style:{gridColumn:`span ${u}`}},x))})}))})})}},{type:"select",label:jn,options:e.map(t=>({value:t.value,label:t.label}))})}function r3(e){if(!e)return[3,4];let o=e.reduce((t,r)=>t+r,0);return e.map(t=>Math.round(t/o*12))}function mfe(){return Qo(Wb,S($5,{}),Eu,Eu[0].value)}function hfe(){return Ye("mobile",dv(Db,Nb))}function xfe(){return cm("share",dv(),ZC)[XC("share")]}function a3(){return Ye("mobile",yo(Tu,S(WC,{}),ei,Lb,1,ei,"",{clear:{phoneFollows:!1,hint:ei}}))}var BC={read:e=>e.phoneRow,write:(e,o,t)=>({phoneRow:t}),fieldKey:()=>"phoneRow",ownField:!0};function Ife(){let e=yo(Tu,S(WC,{}),Pu,Mb,1,Pu,"",{clear:{emptyLabel:"Auto"}}),o=cm("columns",e,{...BC,tablet:ZC.tablet}),t=cm("columns",e,BC,{phoneRow:a3()});return{...o,phoneRow:t.phoneRow}}function gfe(e,o,t,r,a,n){return{type:"custom",render:({value:s,onChange:l})=>S(Xe,{label:i(e),icon:S(pp,{noun:n}),action:S(mo,{words:ee()?.panel,label:i(e),changed:!wC(s),detail:i("the Text style in Styles"),onReset:()=>l(SC),defaultAction:{onPress:()=>l(Zi),title:i("Keep this section's own built-in size"),icon:S(D5,{})}}),children:Eo({min:o,max:t,step:r,value:typeof s=="number"?s:a,suffix:"px",ariaLabel:e,onChange:l})})}}function bfe(){return{_gCellWidth:et("Cell width"),gridSpan:Qo("Positions",S(zC,{}),[{label:"Auto",value:""},...Array.from({length:pi},(e,o)=>({label:o===0?"1 position":`${o+1} positions`,value:String(o+1)}))],"")}}function Lt(){let e=null,o=null;try{e=k5(hm),o=dm(t=>t).selectedItem}catch{o=null}return e??o?.props??{}}var hm=v5(null);function n3({min:e,max:o,step:t,px:r,label:a,onChange:n,desktopKey:s,fallback:l}){let c=Lt()[s],d=vi(void 0,c,l);return S(dr,{children:Eo({min:e,max:o,step:t,value:vi(r,c,l),readout:!1,ariaLabel:a,notch:d,onChange:n})})}function s3({label:e,desktopKey:o,fallback:t,unit:r="px",changed:a=!1,onReset:n=()=>{}}){let s=Lt()[o],l=vi(void 0,s,t);return S(mo,{words:ee()?.panel,label:i(e),changed:a,detail:ps(c=>i(c),`${l}${r}`),onReset:n})}function pc(e){return sv(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unit:e.unit,unsetLabel:"Follows Desktop",unsetMark:S(s3,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback,unit:e.unit}),restTrack:o=>S(n3,{...o,desktopKey:e.desktopKey,fallback:e.fallback})})}var l3={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},i3={Top:qC,Bottom:UC,Left:jC,Right:KC},c3=e=>{let o=i3[e];return S(o,{})};function yfe(e={}){let o=e.keys?.top??"sectionPaddingTop",t=e.keys?.bottom??"sectionPaddingBottom",r=e.group!==!1,a=T=>l3[T],n=T=>yo(a("Top"),S(qC,{}),Zo.min,Zo.max,Zo.step,T,"px"),s=(T,O,w,I=Zo)=>Ye("mobile",pc({label:a(T),icon:c3(T),desktopKey:O,min:I.min,max:I.max,step:I.step,fallback:w})),l=e.top??Zo.min,c=e.bottom??Zo.min,d="sectionPaddingLeft",p="sectionPaddingRight",h=e.sideBounds??Zo,u=e.side??h.min,x=e.sidePhone??u,g=e.phone===!0,y=T=>g?Ye("desktop",T):T;return us({...r?{_gSpacing:et("Padding")}:{},[o]:y(n(l)),...g?{[Va(o)]:s("Top",o,l)}:{},...e.only==="top"?{}:{[t]:y(yo(a("Bottom"),S(UC,{}),Zo.min,Zo.max,Zo.step,c,"px")),...g?{[Va(t)]:s("Bottom",t,c)}:{}},...e.sides?{[d]:y(yo(a("Left"),S(jC,{}),h.min,h.max,h.step,u,"px")),...g?{[Va(d)]:s("Left",d,x,h)}:{},[p]:y(yo(a("Right"),S(KC,{}),h.min,h.max,h.step,u,"px")),...g?{[Va(p)]:s("Right",p,x,h)}:{}}:{}})}function Sfe(e,o){let t=Object.fromEntries(Object.entries(o).map(([n,s])=>[n,n in e&&Ft(s)?e[n]:s])),r={},a=!1;for(let[n,s]of Object.entries(e)){if(n in o){a||Object.assign(r,t),a=!0;continue}r[n]=s}return a||Object.assign(r,t),r}var tc="Width";function mc(e,o=CC,t=!0){let r=o.map(a=>({label:Kr[a],value:a}));return us({...t?{_gWidth:et(tc)}:{},widthMode:{type:"custom",render:({onChange:a,field:n})=>S(Xe,{label:i(tc),icon:S(Q5,{}),action:t?S(F4,{inherited:n?.inherited??!1,onReset:()=>a(sm),label:tc}):void 0,children:Qi({options:r,value:n?.currentValue||e,onChange:a,ariaLabel:tc})})}})}function hc(){let e=r=>({type:"custom",render:({value:a,onChange:n})=>S(Xe,{label:Ua,icon:fs(S(j5,{})),action:r?r(n):void 0,children:Qi({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:["auto","fixed","screen"].includes(a)?a:"auto",onChange:n,ariaLabel:Ua})})}),o=()=>({type:"custom",render:({value:r,onChange:a,field:n})=>{let s=n?.unit==="%"?"%":"px",l=s==="%"?Zp:Xp;return S("div",{className:"sf-field",children:Eo({min:l.min,max:l.max,step:l.step,value:typeof r=="number"?r:l.fallback,suffix:s,ariaLabel:Ua,onChange:a})})}}),t=()=>qa("Unit",S($C,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");return us({_gHeight:et(Ua),sectionHeightMode:Ye("desktop",e()),sectionHeightValue:Ye("desktop",o()),sectionHeightUnit:Ye("desktop",t()),sectionHeightModePhone:Ye("mobile",e(r=>S(d3,{onClear:()=>r(void 0)}))),sectionHeightValuePhone:Ye("mobile",o()),sectionHeightUnitPhone:Ye("mobile",t())})}function d3({onClear:e}){let o=Lt(),t=Qp(o),r=Gi(o),a=ps(n=>i(n),r.mode==="auto"?i("Auto"):`${r.value}${r.unit}`);return S(mo,{words:ee()?.panel,label:i(Ua),changed:t,detail:a,onReset:e})}function xm(){let e=t=>({type:"custom",render:({value:r,onChange:a,id:n,name:s})=>S(f3,{value:r,onChange:a,labelId:`${n??s??"stickTop"}-label`,phone:t})}),o=()=>({type:"custom",render:({value:t,onChange:r})=>S("div",{className:"sf-field",children:Eo({min:lr.min,max:lr.max,step:lr.step,value:typeof t=="number"?t:lr.fallback,suffix:"px",ariaLabel:i("Distance from top"),onChange:r})})});return{_gStick:et($i),stickTop:Ye("desktop",e(!1)),stickTopDistance:Ye("desktop",o()),stickTopPhone:Ye("mobile",e(!0)),stickTopDistancePhone:Ye("mobile",o())}}function f3({value:e,onChange:o,labelId:t,phone:r}){let a=Lt(),n=om(a),s=r?n.phone:e===!0;return S(Xe,{label:i($i),labelId:t,icon:fs(S(Y5,{})),action:Ya(dr,{children:[r?S(mo,{words:ee()?.panel,label:i($i),changed:em(a),detail:ps(l=>i(l),n.desktop?`${n.desktopDistance}px`:i("Off")),onReset:()=>o(void 0)}):null,S(fm,{checked:s,onChange:o,ariaLabelledBy:t})]})})}var DC="e.g. about";function xc(){return{_gAnchor:et("Anchor"),anchor:Yr({control:"plainText",label:"Name",placeholder:DC},{type:"custom",render:({value:e,onChange:o})=>S(hS,{value:e,onChange:o,nameBox:(t,r)=>S(Vr,{value:t,onChange:r,label:"Name",placeholder:DC,hideable:!1,markup:!1})})})}}function wfe(e,o,t){return{type:"custom",render:({value:r,onChange:a,id:n,name:s})=>{let l=`${n??s??e}-datetime`,c=Date.parse(typeof r=="string"?r:"");return S(Xe,{label:i(e),icon:o,htmlFor:l,hint:t===void 0?void 0:i(t),children:S(u4,{id:l,value:Number.isFinite(c)?new Date(c):null,onChange:d=>a(d?d.toISOString():"")})})}}}function u3(e,o,t,r){return{type:"custom",...cr({},{...sc,label:e}),render:({value:a,onChange:n,id:s,name:l})=>{let c=typeof a=="boolean"?a:o,d=`${s??l??e}-label`;return S(Xe,{label:i(e),labelId:d,icon:t,hint:r===void 0?void 0:i(r),action:S(fm,{checked:c,onChange:n,ariaLabelledBy:d})})}}}function fv(){return{type:"custom",render:({value:e,onChange:o,id:t,name:r})=>{let a=`${String(t??r??"pageBackground")}-colour`;return S(Bo,{label:i("Background"),icon:S(V5,{}),id:a,value:mp(e),onChange:o})}}}function Cfe(e,o,t){return{type:"custom",render:({value:r,onChange:a})=>S(Bo,{label:i(e),icon:t,value:r||o,onChange:a})}}function vfe(){return{type:"custom",render:({value:e,onChange:o})=>S(p3,{value:typeof e=="string"?e:"",onChange:o})}}function p3({value:e,onChange:o}){let{hex:t,n:r}=h3();return S(Ci,{label:i("Fill"),icon:S(GC,{}),value:e,inherited:t,resetTo:Xa(t.toUpperCase(),i("Theme {n} background",{n:r})),onChange:o,onReset:()=>o("")})}function m3(e,o,t){if((e?.content??[]).some(n=>n?.props?.id===o))return Ko(t);let r=bS(e,o);if(r.length===0)return null;let a=Ko(zp(t));if(a!==null)return a;for(let n=r.length-1;n>0;n-=1){let s=Ko(zp(r[n].sectionAccent));if(s!==null)return s}return Ko(r[0].sectionAccent)}function h3(){let e=lo(de().theme),[o]=qr("sectionAccent"),t=null;try{let{appState:a,selectedItem:n}=dm(l=>l),s=n?.props?.id?String(n.props.id):void 0;t=s?m3(a?.data,s,o):null}catch{t=null}let r=t!==null&&e.themes[t]?t:e.selected;return{hex:e.themes[r].background??au.background,n:r+1}}var x3=[{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 I3({label:e,value:o,onChange:t,points:r=x3}){let a=r.map(n=>({...n,label:i(n.label),...n.title?{title:i(n.title)}:null}));return S(c4,{label:i(e),value:o,points:a,onChange:t})}function kfe(){return lv()}var uv={top:S(W5,{}),right:S(z5,{}),bottom:S(M5,{}),left:S(H5,{})};function pv(e,o,t,r,a,n,s){let l=h=>o.find(u=>u.value===h),c=h=>({value:h,label:"",disabled:!0,title:r}),d=h=>{let u=o.find(g=>g.cell===h);if(!u)return c(`missing-${h}`);let x=n?.[h];return x?{value:u.value,label:u.label,icon:x}:{value:u.value,label:u.label}},p=[c("corner-top-left"),d("top"),c("corner-top-right"),d("left"),c("centre"),d("right"),c("corner-bottom-left"),d("bottom"),c("corner-bottom-right")];return{type:"custom",render:({value:h,onChange:u})=>{let x=o.some(g=>g.value===h)?h:t;return S(Xe,{label:i(e),icon:a,value:l(x)?.label?i(l(x).label):s?i(s):"",children:I3({label:e,value:x,onChange:u,points:p})})}}}function Tfe(e,o,t){return{type:"custom",options:o,render:({value:r,onChange:a,field:n})=>S(WS,{label:e,options:(n.options??o).map(s=>({...s,label:i(s.label)})),value:Array.isArray(r)?r:[],onChange:a,...t?{emptyLabel:i(t)}:{}})}}function Pfe(e,o={}){return{type:"custom",render:({value:t,onChange:r})=>{let a={value:t,onChange:r,...o};return S(e,{...a})}}}var Efe=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function Ofe(e,o,t){let r=Object.keys(Gu).map(a=>({label:Gu[a],value:a,picture:t[a]}));return{type:"custom",...cr({},{type:"radio",label:e,options:r.map(a=>({value:a.value,label:a.label}))}),render:({onChange:a})=>S(g3,{label:e,icon:o,options:r,onChange:a})}}function g3({label:e,icon:o,options:t,onChange:r}){let a=lc()?.values??{},n=$u(a),s=n==="frame"&&!!er(a.mediaVideo)&&!er(a.videoFrame);return S(Xe,{label:i(e),icon:fs(o),hint:s?i("This video has no frame yet. The slide shows its background colour until one is made."):void 0,children:Qi({options:t,value:n,onChange:r,ariaLabel:e})})}function _fe(e,o,t,r={}){return{type:"custom",[O5]:!0,render:({value:a,onChange:n,name:s})=>S(HS,{value:a||"",onChange:n,fieldKey:s,label:e,accept:o,placeholder:t,focusKey:r.focus,focusWhen:r.focusWhen,frameKey:r.frame})}}function b3(e){let o=i(e.status??"");return e.ok&&typeof e.lat=="number"&&typeof e.lng=="number"?`${o} \xB7 ${e.lat.toFixed(4)}, ${e.lng.toFixed(4)}`:o}function Rfe({value:e,onChange:o,label:t}){let r=e||{},a=lc(),n=a?a.values!==a.node.props:!0,s=!!r.pending&&n,l=!!r.pending&&!n,c=s?"var(--ink-faint)":r.ok&&!l?"var(--status-success-soft-ink)":"var(--status-danger-soft-ink)",d=!!We(v4()).geocode,p=MC(),h=(u,x)=>o({...r,[u]:x??void 0});return Ya(dr,{children:[S(Xe,{label:i(t),icon:S(OC,{}),action:d?S(nc,{content:i("Find from the address (OpenStreetMap)"),children:S(VC,{"aria-label":i("Find from the address"),"aria-busy":s||void 0,disabled:s,onClick:()=>o({...r,pending:!0,ok:!1,status:"Finding\u2026"}),children:S(X5,{})})}):void 0,children:d&&r.status?S(nc,{content:b3(r),className:"sf-name-tip",children:S("div",{className:`es-field-hint ${fp}`,style:{margin:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:c},children:s?i("Finding\u2026"):l?i(Ip):i(r.status)})}):null}),S(Xe,{label:i("Enter by hand"),labelId:p,icon:S(G5,{}),action:S(fm,{checked:!!r.manual,onChange:u=>o({...r,manual:u}),ariaLabelledBy:p})}),r.manual&&S(Xe,{label:i("Latitude, longitude"),icon:S(OC,{}),children:Ya("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8,width:"100%",minWidth:0},children:[S(_C,{value:typeof r.lat=="number"?r.lat:null,onChange:u=>h("lat",u),min:-90,max:90,step:1e-4,placeholder:i("Latitude")}),S(_C,{value:typeof r.lng=="number"?r.lng:null,onChange:u=>h("lng",u),min:-180,max:180,step:1e-4,placeholder:i("Longitude")})]})})]})}function y3(e,o){return o===null||o<0||o>=e.length?"":e[o]?.text??""}function S3(e,o,t){let r=e.map(a=>({text:a?.text??""}));return o===null||o<0||o>=e.length?r:r.map((a,n)=>n===o?{text:t}:a)}function w3(e,o,t){if(t===null||t>=o.length)return null;for(let r=0;r<t;r+=1)if(e[r]!==o[r])return null;return e[t]!==o[t]&&o.includes(e[t])||e[t]!==o[t]&&o.length!==e.length?null:t}var Im={label:"Ticker items",icon:S(q5,{})};function Afe(e,o,t,r){return{type:"custom",[At]:{control:"textList",label:e,placeholder:t,itemKey:"text",rendering:r},...cr({},{...ov.textList,label:e}),render:({value:a,onChange:n})=>S(gm,{label:e,icon:fs(o),items:Array.isArray(a)?a:[],placeholder:t,onChange:n,markup:r==="markup"})}}function gm({label:e,icon:o,items:t,placeholder:r,onChange:a,markup:n=!1}){let s=ac(null),[l,c]=ds(null),d=h=>h.map(u=>({text:u?.text??""})),p=h=>{let u=w3(t,h,l);u===null&&(s.current=null),c(u),a(d(h))};return S(l4,{label:i(e),icon:o,noun:i("item"),items:t,onChange:p,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:n?S(bp,{target:s,value:y3(t,l),onChange:h=>a(S3(t,l??-1,h)),disabled:l===null,label:l===null?i("Formatting \u2014 click a row first"):i("Formatting \u2014 row {n}",{n:l+1})}):void 0,renderRow:(h,u,x)=>S("input",{type:"text",className:n&&l===u?"sf-list-marking":void 0,value:h?.text??"",placeholder:i(r),"aria-label":i("{label} {n}",{label:i(e),n:u+1}),onChange:g=>x({text:g.target.value}),onFocus:g=>{s.current=g.currentTarget,c(u)}})})}function mv(e,o){let t=`${e.label} \u2014 row ${o+1}`;return Yr({control:"plainText",label:t,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:r,onChange:a})=>S(Vr,{value:r,onChange:a,label:i("{label} \u2014 row {n}",{label:i(e.label),n:o+1}),placeholder:e.placeholder,hideable:!1,markup:e.rendering==="markup"})})}function hv(e){return{_gCards:et("Cards"),coverIndex:Qo("Cover image",S(K5,{}),LS,String(1),e?.coverHint??"A card's opening picture \u2014 a card pinned to a finish keeps its own."),imageBackground:W4("Image background",Xi),cardImage:k3()}}function xv(){return{outline:Qo("Card outline",S(Z5,{}),Tp,vp),indexBadge:Qo("Card number",S($C,{}),kp,Cp),showBadge:u3("Product badge",!0,S(pp,{noun:"tag"}))}}function Iv(e){let o=e?.defaults??{showCardSizes:!0,showCardBuy:!0,showCardPage:!0},t=a=>({...sc,label:rc.find(n=>n.id===a).label}),r=a=>cr(x4(im),t(a));return{_gShowOnCard:et("Show on a card"),[im]:cr({type:"custom",render:()=>S(C3,{rest:{showCardPrice:!0,showCardFinishes:!0,...o}})},t(im)),showCardFinishes:r("showCardFinishes"),showCardSizes:r("showCardSizes"),showCardBuy:r("showCardBuy"),showCardPage:r("showCardPage")}}var im="showCardPrice",rc=[{id:"showCardPrice",label:"Price"},{id:"showCardFinishes",label:"Finish swatches"},{id:"showCardSizes",label:"Sizes"},{id:"showCardBuy",label:"Buy button"},{id:"showCardPage",label:"Page button"}];function C3({rest:e}){let o=Lt(),t=Pp(),r=s=>typeof o[s]=="boolean"?o[s]:void 0,a=s=>r(s)??e[s],n=rc.some(({id:s})=>r(s)!==void 0&&r(s)!==e[s]);return S(bm,{parts:rc,changed:n,shown:a,onPress:(s,l)=>t({[s]:l}),onReset:()=>t(Object.fromEntries(rc.map(({id:s})=>[s,void 0])))})}function Ffe(e,o="display"){let t=Va(o);return{[o]:Ye("desktop",{type:"custom",render:({value:r,onChange:a})=>S(bm,{parts:e,changed:yS(r),shown:n=>yi(r,n),onPress:(n,s)=>a(wS(r,n,s)),onReset:()=>a(void 0)})}),[t]:Ye("mobile",{type:"custom",render:({value:r,onChange:a})=>S(v3,{parts:e,desktopKey:o,value:r,onChange:a})})}}function bm({parts:e,changed:o,shown:t,onPress:r,onReset:a,detail:n,disabledReason:s}){let l=i("Display");return S(Xe,{label:l,icon:S(A5,{}),changed:o,action:S(mo,{words:ee()?.panel,label:l,changed:o,detail:n,onReset:a}),children:S(i4,{label:l,items:e.map(c=>({id:c.id,label:i(c.label),shown:t(c.id),...s?{disabled:!0,disabledReason:i(s)}:{}})),onChange:r})})}function v3({parts:e,desktopKey:o,value:t,onChange:r}){let a=Lt()[o];return S(bm,{parts:e,changed:SS(t),shown:n=>xp(a,t,n),onPress:(n,s)=>r(CS(t,n,s)),onReset:()=>r(ki),detail:i("the same as Desktop")})}function k3(){return sv("Card image",{min:Ao,max:Tr,step:$y,hint:"Rounds the picture. The card's own corner is in Styles."})}function Lfe(){return mm({sidesKey:"cornerSides",step:Uy,useFollowed:()=>Ao,mark:S(T3,{label:jy}),hint:i("Rounds the picture. Left alone it stays square.")})}function T3({label:e,changed:o=!1,onReset:t=()=>{}}){return S(mo,{words:ee()?.panel,label:i(e),changed:o,onReset:t})}function Bfe(){return{type:"custom",render:({value:e,onChange:o})=>S(_3,{value:typeof e=="string"?e:"",onChange:o})}}function P3({layout:e,width:o}){return S("span",{"aria-hidden":"true",style:{display:"grid",width:o,gridTemplateColumns:"repeat(12, minmax(0, 1fr))",gridAutoRows:6,gridAutoFlow:"row dense",gap:2},children:Yy(e).map(([t,r],a)=>S("i",{className:"block rounded-xs bg-current opacity-60",style:{gridColumn:`span ${t}`,gridRow:`span ${r}`}},a))})}var E3={width:"3.5rem",height:"2.5rem"},O3=200;function _3({value:e,onChange:o}){let[t,r]=ds(null),[a,n]=ds(4),s=ac(null);T5(()=>{let u=s.current;if(!u||typeof ResizeObserver!="function")return;let x=()=>n(u.getBoundingClientRect().width>=O3?4:3);x();let g=new ResizeObserver(x);return g.observe(u),()=>g.disconnect()},[]);let l=e&&e in Ot?e:"",c=np(t,l),d=np(t,"").length,p=mi("no-symbol"),h=[{value:"",label:i("Not chosen"),icon:p},...c.map(u=>({value:u,label:i(Ot[u].label),icon:S(P3,{layout:Ot[u],width:40})}))];return S(Xe,{label:i("Layout"),icon:S(U5,{}),value:l?i(Ot[l].label):void 0,children:S("div",{ref:s,style:{flex:"1 1 auto",minWidth:0},children:S(m4,{label:i("Layout"),value:l,emptyValue:"",options:h,onChange:o,columns:a,cell:E3,header:Ya("div",{className:"mb-2 flex flex-col gap-1",style:{minWidth:"11rem"},children:[S("span",{className:"text-2xs text-ink-faint",children:i("Photos in a row")}),S(t4,{options:[{id:"all",label:i("All")},...qy.map(u=>({id:String(u),label:String(u)}))],value:t===null?"all":String(t),ariaLabel:i("Photos in a row"),onChange:u=>r(u==="all"?null:Number(u))}),S("span",{className:"text-2xs text-ink-faint",children:i("{n} of {total} layouts",{n:d,total:ap.length})})]})})})})}import{decodePartId as V3}from"efficient-easel/draw";import{decodePartId as Cm,encodePartId as Sc}from"efficient-easel/draw";import{LINK_FIELD_MARKER as Pv,SCAFFOLD_FIELD_MARKER as kv,TEXT_FIELD_MARKER as wc}from"efficient-easel/draw";import{readHidable as Ev}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as N3}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as D3}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as gv}from"efficient-easel/draw";import{readHidable as bv}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as R3}from"efficient-easel/draw";var A3=R3,F3=["text","textarea"],L3=["textarea","plainTextarea"];function B3(e){return!e||typeof e!="object"?null:e[gv]?.control??null}function Za(e){let o=B3(e);return o&&A3.includes(o)?o:null}function Ic(e){return L3.includes(e)}function yv(e){return!e||typeof e!="object"?void 0:e[gv]?.placeholder}function gc(e){return bv(e).text}function ym(e,o,t){return F3.includes(e)?{text:t,hidden:bv(o).hidden}:t}function Sv(e,o,t,r){return gc(e[o])===r?null:{...e,[o]:ym(t,e[o],r)}}function ms(e,o){return o?`${e}[${o.index}].${o.rowKey}`:e}function ot(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}}function bc(e){if(!(!e||typeof e!="object"))return e[D3]}function Sm(e){if(!e||typeof e!="object")return null;let o=e.arrayFields;return o&&typeof o=="object"?o:null}function wv(e,o){if(!Array.isArray(o))return[];let t=bc(e),r=[];if(t?.control==="textList"){let n=t.itemKey??"text";return o.forEach((s,l)=>{let c=oe(s?.[n]);c&&r.push({row:{index:l,rowKey:n},text:c})}),r}let a=Sm(e);return a?(o.forEach((n,s)=>{for(let[l,c]of Object.entries(a)){if(!Za(c))continue;let d=gc(n?.[l])||bc(c)?.placeholder||"";d&&r.push({row:{index:s,rowKey:l},text:d})}}),r):[]}function hs(e,o){if(Array.isArray(e))return e[o.index]?.[o.rowKey]}function wm(e,o,t,r){let a=e[o];return!Array.isArray(a)||t.index<0||t.index>=a.length?null:{...e,[o]:a.map((n,s)=>s===t.index?{...n,[t.rowKey]:r}:n)}}function Cv(e,o,t,r,a){let n=hs(e[o],t);return gc(n)===a?null:wm(e,o,t,ym(r,n,a))}function vv(e,o){return o?`${e} \xB7 row ${o.index+1}`:e}var tt="data-sf-part",tue="data-sf-region-part",rue="data-sf-part-row";function aue(e,o){return`${e}[${o}]`}var nue="data-sf-part-kind",M3="data-sf-part-style-owner",H3="data-sf-part-style-kind";function sue(e){for(let o=e;o;o=o.parentElement){let t=o.getAttribute(M3),r=o.getAttribute(H3);if(t&&r)return{owner:t,kind:r};if(o.getAttribute("data-easel-block"))return null}return null}var Tv=2;function Ja(e){return Fr(e).replace(/\s+/gu,"")}function yc(e,o,t){let r=e[wc];if(r){if(r.control==="textList"){let n=r.itemKey??"text";if(!Array.isArray(o))return;for(let s of o){let l=s?.[n];typeof l=="string"&&t.push(l)}return}let{text:a}=Ev(o);a?t.push(a):r.placeholder&&t.push(r.placeholder);return}if(!e[Pv]){if(e.type==="text"||e.type==="textarea"){let a=oe(o);a&&t.push(a);return}if(e.arrayFields&&Array.isArray(o)){for(let a of o)for(let[n,s]of Object.entries(e.arrayFields))yc(s,a?.[n],t);return}if(e.objectFields&&o&&typeof o=="object")for(let[a,n]of Object.entries(e.objectFields))yc(n,o[a],t)}}function Ov(e){if(!e||typeof e!="object")return!1;let o=e;return o[Pv]?!1:!!o[wc]||o.type==="text"||o.type==="textarea"}function Cc(e,o){let t=e[wc];return t?.label?t.label:typeof e.label=="string"?e.label:o}function vm(e){let o=e.indexOf(" (");return(o>0?e.slice(0,o):e).trim()}function lue(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){if(!a||typeof a!="object"||ts(r))continue;let n=a,s=[];yc(n,o?.[r],s),!s.length&&n[kv]!==void 0&&yc(n,n[kv],s);let l=Cc(n,r),c=new Set;for(let{row:h,text:u}of wv(n,o?.[r])){let x=Ja(u);x.length<Tv||(c.add(x),t.push({key:r,label:l,texts:[x],row:h}))}let d=new Set(c),p=[];for(let h of s){let u=Ja(h);u.length<Tv||d.has(u)||(d.add(u),p.push(u))}p.length&&t.push({key:r,label:l,texts:p})}return t}function km(e){return!e.offPage&&!e.hidden}var z3=N3;function _v(e,o){if(!o||typeof o!="object"||ts(e)||OS(o))return null;let t=o[wc];return!t||!z3.includes(t.control)?null:t}function iue(e,o){let t=_v(e,o);return t!==null&&t.identifier!==!0}function Rv(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){let n=_v(r,a);if(!n)continue;let{text:s,hidden:l}=Ev(o?.[r]);if(km({offPage:n.offPage===!0,hidden:!!l}))continue;let c=s||n.placeholder||"",d=Fr(c).replace(/\s+/gu," ").trim();t.push({key:r,label:vm(Cc(a,r)),preview:d,offPage:n.offPage===!0,identifier:n.identifier===!0,hidden:!!l})}return t}function Qa(e,o){let t=bc(e);return t?.control==="textList"?o.rowKey===(t.itemKey??"text")?mv(t,o.index):null:Sm(e)?.[o.rowKey]??null}function vc(e,o,t){let r=e.node.props,{key:a,row:n}=ot(e.propKey),s=n?Cv(r,a,n,e.kind,o):Sv(r,a,e.kind,o);return s?(t(e.zone,e.index,{...e.node,props:s}),!0):!1}import{readHidable as Lv}from"efficient-easel/draw";import{isNodeList as W3}from"efficient-easel/data";var en=e=>String(e+1).padStart(2,"0");var Bv="Contents",G3="Flex",Av="Text",vue="_contentsEntries",kue="_kickerNumber",Dv="data-sf-kicker-number",$3=e=>Lv(e).text.trim(),Nv=e=>nS(e?.anchor),Fv=e=>String(e.props?.id??""),U3=e=>!Lv(e.props?.text).hidden&&!Vn(e.props)&&!Qt(e.props);function Tm(e){return Object.values(e.props??{}).filter(W3)}function Mv(e){for(let o of Tm(e))for(let t of o){if(t.props?._hidden)continue;if(t.type===Av&&U3(t))return t;if(t.type===Av)continue;let r=Mv(t);if(r)return r}}function Hv(e){return Tm(e).some(o=>o.some(t=>t&&!t.props?._hidden&&(t.type===Bv||Hv(t))))}function j3(e){let o=[],t=r=>{for(let a of r)if(!(!a||a.props?._hidden)){if(a.type===Bv){o.push({contents:a,sections:[]});continue}if(a.type===G3&&Nv(a.props)&&o.length&&!Hv(a)){o[o.length-1].sections.push({box:a,kicker:Mv(a)});continue}for(let n of Tm(a))t(n)}};return t(e),o}function K3(e){return e.map(o=>({label:o.kicker?Fr($3(o.kicker.props?.text)):"",anchor:Nv(o.box.props)}))}function Tue(e){let o=e?.length?j3(e):[];if(!o.length)return null;let t=new Map,r=new Map;for(let a of o){let n=Fv(a.contents);n&&t.set(n,K3(a.sections)),a.sections.forEach((s,l)=>{let c=s.kicker?Fv(s.kicker):"";c&&r.set(c,en(l))})}return{entries:t,numbers:r}}var Pue=e=>`${e} \xB7 `;var Y3=`[${Dv}]`,X3=["bold","italic","underline","strike","link","sup","sub"],Z3=["bullet","number"];function Om(e,o){return e?[...X3,...o?Z3:[]]:[]}function zv(e,o){let t=V3(e);if(!t?.propKey)return null;let{nodeId:r,propKey:a}=t,n=o.getItemById(r),s=o.getSelectorForId(r);if(!n||!s)return null;let{key:l,row:c}=ot(a),d=o.components[n.type]?.fields?.[l],p=c?Qa(d,c):d,h=Za(p);if(!h)return null;let u=n.props??{};if($p(u)!==null||!c&&Qb(n.type,u,l)||n.type==="Text"&&l==="text"&&Vn(u)||c&&!(Array.isArray(u[l])&&c.index<u[l].length))return null;let x=c?hs(u[l],c):u[l];return{node:n,selector:s,propKey:a,kind:h,stored:x,offPage:ic(p)}}function kc(e,o){let t=zv(e,o);if(!t)return null;let{text:r,hidden:a}=fr(t.stored);if(!km({offPage:t.offPage,hidden:!!a}))return null;let n=Ic(t.kind);return{partId:e,value:r,rules:Ar,multiline:n,skip:Y3,offered:Om(t.kind!=="plainText",n),write:s=>{let l=zv(e,o);l&&vc({node:l.node,propKey:l.propKey,kind:l.kind,zone:l.selector.zone,index:l.selector.index},s,o.replace)}}}function _m(e,o,t){return e?.isConnected&&e.getAttribute(tt)===t?e:o?.querySelector(`[${tt}="${Tc(t)}"]`)??null}function Tc(e){return e.replace(/["\\]/g,"\\$&")}function Wv(e){let o=e.activeElement;return o?o.tagName==="IFRAME"||!!o.closest(".es-canvas"):!1}var Pm=null,Em=new Set;function J3(){return Pm}function Rm(e){if(e!==Pm){Pm=e;for(let o of Em)o()}}function Q3(e){return Em.add(e),()=>{Em.delete(e)}}function Gv(){return q3(Q3,J3,()=>null)}function $v(e,o){if(e.outer)return null;let t=o.getItemById(e.ownerId);if(!t)return null;let r=Xb(t.type);return!r||bo(t.props)?null:{node:t,rows:r}}function a6(e,o){let t=$v(e,o),r=o.getItemById(e.nodeId);if(!t||!r)return null;let a=Lu(r.type,r.props,e.key);if(!a)return null;let n=t.node.props[t.rows];return!Array.isArray(n)||e.index<0||e.index>=n.length?null:e6(e.ownerId,ms(t.rows,{index:e.index,rowKey:a}))}function Pc(e,o){let t=a6(e,o);return t?kc(t,o):null}function Uv(e,o){return Pc(e,o)?.value}function jv(e,o){let t=Pc(e,o);return t?(t.write(e.text),!0):!1}function Kv(e,o){let t=$v(e,o),r=t&&o.getSelectorForId(e.ownerId);if(!t||!r)return!1;let a=t.node.props,n=a[t.rows],s=e.index;if(!Array.isArray(n)||s<0||s>=n.length)return!1;let l;switch(e.action){case"addAfter":{let c=o.components[t.node.type]?.fields?.[t.rows];l=o6(n,s+1,{...c?.defaultItemProps??{}});break}case"moveEarlier":case"moveLater":{let c=e.action==="moveEarlier"?s-1:s+1;if(c<0||c>=n.length)return!1;l=t6(n,s,c);break}case"delete":l=r6(n,s);break;default:return!1}return o.replace(r.zone,r.index,{...t.node,props:{...a,[t.rows]:l}}),!0}import{jsx as be,Fragment as PT,jsxs as Os}from"react/jsx-runtime";import{Fragment as n$,useEffect as s$,useId as l$,useMemo as ET,useRef as i$,useState as pr}from"react";import{useScreenDocument as DT}from"efficient-easel/screen/components/ScreenDocumentContext";import{UiIcon as Rh}from"efficient-easel/draw/client";import c$ from"efficient-easel/screen/components/SidePanelHead";import{jsx as re,Fragment as ta,jsxs as oa}from"react/jsx-runtime";import{useEasel as bT,useRootFields as cG}from"efficient-easel/easel";import{Inspector as dG}from"efficient-easel/fields";import{SettingsGroup as fG}from"efficient-easel/panel";import{useEffect as uG,useRef as pG,useState as od}from"react";import{jsx as Xr,Fragment as i6,jsxs as c6}from"react/jsx-runtime";import{useState as Xv}from"react";import{SettingsDefaultReset as d6,SettingsField as f6}from"efficient-easel/panel";import{useEaselStrings as u6}from"efficient-easel/strings";import{AddIcon as p6}from"efficient-easel/icons";import{Button as m6}from"efficient-shell/ui";import{iconOf as h6,noGlyph as x6}from"efficient-easel/screen/lib/document/box-fields";import{jsx as Ec,Fragment as n6,jsxs as qv}from"react/jsx-runtime";import{Button as Vv,Dialog as s6}from"efficient-shell/ui";function l6(e){return ho("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 Yv({count:e,onCancel:o,onConfirm:t}){return qv(s6,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Clear this site\u2019s colors?"),footer:qv(n6,{children:[Ec(Vv,{variant:"secondary",onClick:o,children:i("Cancel")}),Ec(Vv,{variant:"danger",onClick:t,children:i("Clear colors")})]}),children:[Ec("p",{children:l6(e)}),Ec("p",{className:"mt-2 font-medium",children:i("This cannot be undone.")})]})}var I6=x6("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"),g6="Reset color",b6={selected:0,themes:[]};function y6(e){e(b6)}function Zv({value:e,onChange:o}){let t=e?.themes??[],r=t.length===0,a=lo(e),[n,s]=Xv(!1),l=u6(),[c,d]=Xv(null),p=(O,w)=>{o({...a,themes:a.themes.map((I,C)=>C===O?w:I)})},h=Oa(a).accent,u=new Set(a.themes.map(O=>O.brandInk).filter(Boolean)),x=Hg.filter(O=>!u.has(O)).map(O=>zg(h,O)),g=[...a.themes,...x],y=O=>{if(O<a.themes.length)return o({...a,selected:O});let w=[...a.themes,g[O]];o({...a,themes:w,selected:w.length-1})},T=()=>{let O=[...a.themes,{...pt(a.themes[a.selected])}];o({...a,themes:O,selected:O.length-1}),d(O.length-1)};return c6(i6,{children:[r?null:Xr(f6,{label:i(g6),icon:h6(I6),labelId:"sf-theme-reset",action:Xr(d6,{label:i("all theme colors"),words:l.panel,changed:!0,onReset:()=>s(!0)})}),n&&Xr(Yv,{count:t.length,onCancel:()=>s(!1),onConfirm:()=>{s(!1),y6(o)}}),Xr("div",{className:"sf-theme-list",role:"radiogroup","aria-label":i("Theme"),children:g.map((O,w)=>Xr(Ei,{index:w,colors:O,selected:w===a.selected,open:c===w&&w<a.themes.length,editable:w<a.themes.length,onPick:()=>y(w),onEdit:()=>d(I=>I===w?null:w),onChangeColors:I=>p(w,I)},w))}),Xr(m6,{variant:"secondary",leftIcon:Xr(p6,{}),onClick:T,className:"sf-theme-add",children:i("Add new theme")})]})}import{jsx as Oc}from"react/jsx-runtime";import{SettingsDefaultReset as S6,SettingsField as w6}from"efficient-easel/panel";import{SquareIcon as C6}from"efficient-easel/icons";var v6="Applies to panels, cards, inputs and buttons. Round things \u2014 color swatches, switches, status dots \u2014 stay round.",Am="Corners";function Jv({value:e,onChange:o,showHint:t=!0}){let r=e===null;return Oc(w6,{label:i(Am),icon:Oc(C6,{}),value:r?i("Default"):`${e}px`,changed:!r,action:Oc(S6,{words:ee()?.panel,label:i(Am),changed:!r,detail:i("the built-in corners"),onReset:()=>o(null)}),hint:t?i(v6):void 0,children:Oc(Eo,{min:Ao,max:Tr,step:1,value:e??Ao,readout:!1,ariaLabel:i(Am),onChange:o})})}import{jsx as xs}from"react/jsx-runtime";import{SettingsDefaultReset as k6,SettingsField as T6}from"efficient-easel/panel";import{IconPicker as P6}from"efficient-shell/ui";import{ShadowIcon as E6}from"efficient-easel/icons";var Fm={none:"None",soft:"Soft",lifted:"Lifted"},O6="Applies to cards \u2014 products, brands, journal entries and filter cells. Round things like swatches and status dots are never shadowed.",_6={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 Qv({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??iu;return xs(T6,{label:i("Card shadow"),icon:xs(E6,{}),value:i(Fm[a]),changed:!r,action:xs(k6,{words:ee()?.panel,label:i("Card shadow"),changed:!r,detail:i(Fm[iu]),onReset:()=>o(null)}),hint:t?i(O6):void 0,children:xs(P6,{label:i("Card shadow"),value:a,options:Yg.map(n=>({value:n,label:i(Fm[n]),icon:xs("span",{className:"sf-shadow-chip border border-line bg-surface",style:{boxShadow:_6[n]}})})),onChange:o})})}import{jsx as ek}from"react/jsx-runtime";import{ShadowIcon as R6}from"efficient-easel/icons";var A6="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 ok({value:e,onChange:o,showHint:t=!0}){let r=e===null;return ek(Ci,{label:i("Shadow color"),icon:ek(R6,{}),value:e??"",inherited:du,resetTo:du,onChange:o,onReset:()=>o(null),hint:t?i(A6):void 0})}import{jsx as Rc}from"react/jsx-runtime";import{SettingsDefaultReset as F6,SettingsField as L6}from"efficient-easel/panel";import{AlignSeparateIcon as B6}from"efficient-easel/icons";function _c(e,o){return e==="tablet"?null:e==="mobile"?o.phone:o.desktop}var D6="The space between the blocks inside a row, a grid or a box. Default means each one keeps the spacing it already has.",N6="The space between the blocks inside a row, a grid or a box, on a phone. Until you set it, a phone uses half the desktop gap.",Lm="Block gap",tk=ja.Grid;function rk(e,o){return _c(e,{desktop:{key:"block_gap",value:o.gap,followsPx:null},phone:{key:"block_gap_phone",value:o.phone,followsPx:o.gap===null?null:tm(o.gap)}})}function ak({value:e,onChange:o,showHint:t=!0,followsPx:r=null}){let a=e===null,n=r===null?null:`${r}px`;return Rc(L6,{label:i(Lm),labelId:"sf-block-gap",icon:Rc(B6,{}),value:a?n??i("Default"):`${e}px`,changed:!a,action:Rc(F6,{words:ee()?.panel,label:i(Lm),changed:!a,detail:n??i("each block's own spacing"),onReset:()=>o(null)}),hint:t?i(n===null?D6:N6):void 0,children:Rc(Eo,{min:Ur.min,max:Ur.max,step:Ur.step,value:e??(r===null?tk:ls(r)??tk),readout:!1,ariaLabel:i(Lm),onChange:o})})}import{jsx as Mc}from"react/jsx-runtime";import{SettingsDefaultReset as $6,SettingsField as U6,SettingsSegmented as j6}from"efficient-easel/panel";import{HoverIcon as K6}from"efficient-easel/icons";import{HOVER_MOTION as M6,motionSeconds as Ac,rotateDegrees as H6}from"efficient-shell/format";var Oo="hover",Fc="_gHover",z6=["none","nextImage","rotate","zoom","lift","mono"],gs={none:"None",nextImage:"Show next image",rotate:"Rotate",zoom:"Zoom",lift:"Lift",mono:"Black and white"};function Lc(e){return z6.filter(o=>e.includes(o))}var Bm=Lc(["none","lift"]);function nk(e){let o=e[Oo];return Bm.includes(o)?o:"none"}var Bc=Lc(["none","rotate"]),_e={kind:Oo,angle:"hoverAngle",duration:"hoverDuration",delay:"hoverDelay"},Is="spinOnHover",on={min:0,max:360,step:1},sk={ProductGrid:"rotate",RelatedProducts:"rotate",AlloyWheelsListing:"none"},$pe=Object.keys(sk);function Dm(e){return sk[e]??"none"}var Nm=M6.rotateFallbackDeg;function Mm(e,o){let t=e[_e.kind];if(Bc.includes(t))return t;let r=e[Is];return typeof r=="boolean"?r?"rotate":"none":o}function Hm(e){let o=$(e);return o===void 0?Nm:Math.min(on.max,Math.max(on.min,o))}function Upe(e,o){let t=Dm(o),r=Mm(e,t);return{kind:r,angle:r==="rotate"?Hm(e[_e.angle]):null,angleSet:r==="rotate"&&$(e[_e.angle])!==void 0,duration:Ac("hover","duration",r==="rotate"?e[_e.duration]:void 0),delay:Ac("hover","delay",r==="rotate"?e[_e.delay]:void 0)}}function jpe(e,o){return e.kind!=="rotate"||e.angleSet?e:{...e,angle:H6($(o))}}function lk(e){let o={field:_e.kind,in:[...Bc]};return{any:[{field:_e.kind,is:"rotate"},{all:[{not:o},e==="rotate"?{not:{field:Is,is:!1}}:{field:Is,is:!0}]}]}}var Dc=Lc(["none","mono"]),zm=Lc(["none","nextImage","mono"]),ik={ImageBlock:"none",Manifesto:"none",Split:"none",ContactLocations:"mono"},Kpe=Object.keys(ik);function Wm(e){return ik[e]??"none"}var bs={zoom:"hoverZoom",darken:"hoverDarken"},Bt={min:100,max:150,step:1,unit:"%"},Nc=["nextImage"];function W6(e,o){if(!Nc.includes(o))return null;let t=$(e[bs.zoom]);if(t===void 0)return null;let r=Math.min(Bt.max,Math.max(Bt.min,t));return r===Bt.min?null:String(r/100)}function G6(e,o){if(!Nc.includes(o))return null;let t=$(e[bs.darken]);return t!==void 0&&t>0?t:null}var Gm=["ImageBlock"];function $m(e,o,t=Dc){let r=e[Oo];return t.includes(r)?r:o}function ck(e,o=""){let t=Gm.includes(o)?zm:Dc,r=$m(e,Wm(o),t),a=r!=="none";return{kind:r,duration:Ac("hover","duration",a?e[_e.duration]:void 0),delay:Ac("hover","delay",a?e[_e.delay]:void 0),...Nc.includes(r)?{zoom:W6(e,r),darken:G6(e,r)}:{}}}function dk(){return{field:Oo,in:[...Nc]}}function fk(e){return e==="none"?{field:Oo,in:["mono","nextImage"]}:{not:{field:Oo,is:"none"}}}var Um={none:gs.none,lift:gs.lift,highlight:"Highlight"},q6="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 uk({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??cu;return Mc(U6,{label:i("Hover effect"),icon:Mc(K6,{}),value:i(Um[a]),changed:!r,action:Mc($6,{words:ee()?.panel,label:i("Hover effect"),changed:!r,detail:i(Um[cu]),onReset:()=>o(null)}),hint:t?i(q6):void 0,children:Mc(j6,{options:Xg.map(n=>({id:n,label:i(Um[n])})),value:a,ariaLabel:i("Hover effect"),onChange:o})})}import{jsx as Hc}from"react/jsx-runtime";import{SettingsDefaultReset as V6,SettingsField as Y6,SettingsSegmented as X6}from"efficient-easel/panel";import{DropIcon as Z6}from"efficient-easel/icons";var jm="Photography",pk={shot:"As shot",mono:"Black and white"},Km=[{grayscale:!1,label:pk.shot},{grayscale:!0,label:pk.mono}],J6="Black and white photographs return to color on hover. Wheels and tyres keep their real finish either way.";function mk({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??!1;return Hc(Y6,{label:i(jm),icon:Hc(Z6,{}),value:i(Km.find(n=>n.grayscale===a).label),changed:!r,action:Hc(V6,{words:ee()?.panel,label:i(jm),changed:!r,detail:i(Km.find(n=>!n.grayscale).label),onReset:()=>o(null)}),hint:t?i(J6):void 0,children:Hc(X6,{options:Km.map(n=>({id:n.grayscale,label:i(n.label)})),value:a,ariaLabel:i(jm),onChange:o})})}import{jsx as qm}from"react/jsx-runtime";import{useId as Q6}from"react";import{SettingsField as ez,SettingsSwitch as oz}from"efficient-easel/panel";import{ShareIcon as tz}from"efficient-easel/icons";var rz="Share button",az="On every blog post.";function hk({value:e,onChange:o,showHint:t=!0}){let r=Q6();return qm(ez,{label:i(rz),labelId:r,icon:qm(tz,{}),action:qm(oz,{checked:e===!0,onChange:o,ariaLabelledBy:r}),hint:t?i(az):void 0})}import{usePreviewDevice as Ph}from"efficient-easel/draw/client";import{jsx as $c}from"react/jsx-runtime";import{SettingsDefaultReset as Iz,SettingsField as gz}from"efficient-easel/panel";import{PaddingXIcon as bz}from"efficient-easel/icons";var fo={min:1e3,max:2e3,step:50,default:1600};function nz(e){return{maxWidth:e,marginInline:"auto",width:"100%"}}var xk="--sf-site-width",Vm=`var(${xk},${fo.default}px)`,ume=`max-w-[${Vm}]`,pme=`max-w-[${fo.default}px]`;function sz(e){return typeof e!="number"||!Number.isFinite(e)?fo.default:Math.round(Math.min(Math.max(e,fo.min),fo.max))}function mme(e){let o=sz(e);return o===fo.default?{}:{[xk]:`${o}px`}}var Dt={min:0,max:80,step:4,default:40},Ik="--sf-site-gutter",ys={min:0,max:24,step:4},lz="--sf-site-gutter-phone",iz="max-view-tablet:[--sf-site-gutter:var(--sf-site-gutter-phone)]!",rt=`var(${Ik},${Dt.default}px)`,cz=`px-[${rt}]`;var ur={md:`min(24px,${rt})`,sm:`min(20px,${rt})`,frame:`min(24px,${rt})`,tabs:`min(16px,${rt})`},hme=[[`max-view-desktop:px-[${ur.md}]`,"max-view-desktop:px-6"],[`max-view-desktop:px-[${ur.tabs}]`,"max-view-desktop:px-4"],[`max-[960px]:px-[${ur.frame}]`,"max-[960px]:px-6"],[`max-[900px]:px-[${ur.md}]`,"max-[900px]:px-6"],[`max-view-wide:px-[${ur.md}]`,"max-view-wide:px-6"],[`max-view-tablet:px-[${ur.sm}]`,"max-view-tablet:px-5"],[`max-view-wide:px-[${ur.sm}]`,"max-view-wide:px-5"],[`max-[640px]:px-[${ur.sm}]`,"max-[640px]:px-5"],[`view-wide:px-[${rt}]`,"view-wide:px-10"],[`max-view-tablet:px-[min(24px,${rt})]`,"max-view-tablet:px-6"],[`max-view-wide:-mx-[min(20px,${rt})]`,"max-view-wide:-mx-5"],[`max-view-tablet:-mx-[min(20px,${rt})]`,"max-view-tablet:-mx-5"],[`-mx-[${rt}]`,"-mx-10"],[cz,"px-10"]];var xme="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-view-wide:px-[min(20px,var(--sf-site-gutter,40px))]",Ime="mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] max-view-desktop:px-[min(24px,var(--sf-site-gutter,40px))]";function zc(e){return typeof e!="number"||!Number.isFinite(e)?Dt.default:Math.round(Math.min(Math.max(e,Dt.min),Dt.max))}function gme(e){let o=zc(e);return o===Dt.default?{}:{[Ik]:`${o}px`}}function Wc(e){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,ys.min),ys.max))}function bme(e){let o=Wc(e);return o===null?{}:{[lz]:`${o}px`}}function yme(e){return Wc(e)===null?"":iz}function Gc(e){return Math.min(ys.max,zc(e))}var gk=Vm,Sme=`max-w-[${gk}]`,wme=`max-w-[min(var(--sf-page-cap,${fo.default}px),${fo.default}px)]`,bk="--sf-hero-cap",dz=`var(${bk},none)`,Cme=`max-w-[${dz}]`,fz="--sf-hero-bleed-m",uz="--sf-hero-bleed-w",pz="--sf-hero-chrome-x",mz="--sf-hero-chrome-cap";function vme(e){return e===!0?{[bk]:gk,[fz]:"auto",[uz]:"100%",[pz]:"24px",[mz]:"none"}:{}}var Ym=`calc(${Vm} - ${rt}*2)`,kme=`max-w-[${Ym.replace(/ /g,"_")}]`;var hz="--sf-chrome-cap",xz=`var(${hz},${Ym})`,Tme="data-page-width";function Pme(e){return e==="full"?"full":null}function Eme(e){return e==="full"?null:nz(e==="content"?Ym:xz)}function Ome(e){if(e==="full")return"full";if(e==="content")return"content"}var Xm="Side space",yk=Dt.default,yz="The room left at the left and right edge of every page.";function Sk(e,o){return _c(e,{desktop:{key:"site_gutter",value:o.gutter,unsetPx:yk,bounds:Dt},phone:{key:"site_gutter_phone",value:o.phone,unsetPx:Gc(o.gutter),bounds:ys}})}function wk({value:e,onChange:o,showHint:t=!0,unsetPx:r=yk,bounds:a=Dt}){let n=e===null;return $c(gz,{label:i(Xm),labelId:"sf-side-space",icon:$c(bz,{}),value:`${e??r}px`,changed:!n,action:$c(Iz,{words:ee()?.panel,label:i(Xm),changed:!n,detail:`${r}px`,onReset:()=>o(null)}),hint:t?i(yz):void 0,children:$c(Eo,{min:a.min,max:a.max,step:a.step,value:e??r,readout:!1,ariaLabel:i(Xm),onChange:o})})}import{jsx as Zm}from"react/jsx-runtime";import{BACKGROUND_WIDTHS as Wme,SettingsBackgroundWidth as Sz,SettingsContentWidth as wz}from"efficient-easel/panel";var Cz="Background width",vz="Content width";var Uc=e=>i(Kr[e==="content"?"page":"full"]),Ck="The width of every section's background.",vk="The width of every section's content.";function kk({value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n,labelId:s}){return Zm(Sz,{value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n?i(n):void 0,labelId:s,words:{label:i(Cz),full:Uc("full"),content:Uc("content")},resetWords:ee()?.panel})}function Tk({mode:e,px:o,max:t=fo.max,min:r=fo.min,changed:a,detail:n,onMode:s,onPx:l,onReset:c,hint:d,labelId:p}){let h=i(vz),u=e!=="full"?Zm(Eo,{min:r,max:t,step:fo.step,value:Math.min(Math.max(o,r),t),onChange:l,suffix:"px",ariaLabel:h}):null;return Zm(wz,{mode:e,onMode:s,number:u,changed:a,detail:n,onReset:c,hint:d?i(d):void 0,labelId:p,words:{label:h,full:Uc("full"),content:Uc("content")},resetWords:ee()?.panel})}import{jsx as cT}from"react/jsx-runtime";import{TextStyleItem as HW,TextStylesGroup as zW}from"efficient-easel/text-styles";import{jsx as AW}from"react/jsx-runtime";import{useState as FW}from"react";import{TextStylesList as LW}from"efficient-easel/text-styles";import{usePreviewDevice as BW}from"efficient-easel/draw/client";import{defaultTextStyles as Yk,textStyleCaseCss as SW,textStyleViewKey as wW}from"efficient-easel/text-styles/model";import{phoneKey as CW,resolveViewValue as Xk,tabletKey as vW}from"efficient-easel/draw";import{parseHexColor as kW}from"efficient-shell/format";import{textStyleCaseCss as Tz,textStyleCaseOfCss as Pz}from"efficient-easel/draw";import{parseHexColor as Ez}from"efficient-shell/format";var jc="data-sf-spec-region";function Pk(e){return e.writable===!0&&e.sized===!0}function Kc(e,o,t){if(!e)return;let r=t[e];if(r)return{fontFamily:`var(--font-role-${e})`,fontSize:`var(--size-${r}, ${o.builtIn})`}}function tn(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 Jm(e){return`@${e}`}function Ss(e,o){if(!o.startsWith("@"))return null;let t=o.slice(1);return t in e?t:null}function kz(e,o){return o&&o in e?o:null}function rn(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function an(e,o){return rn(e?.[o])??{}}function qc(e,o,t){let r=an(e,o);return Object.hasOwn(r,t)?rn(r[t])??{}:{}}function Vc(e,o,t,r){let{[t]:a,...n}=an(e,o),s=r?{...n,[t]:r}:n,{[o]:l,...c}=e;return Object.keys(s).length?{...c,[o]:s}:c}var oh="_partStyles",th="data-sf-part-styled",nn="data-sf-text-style",Oz=/^(heading|body)-[1-7]$/;function Jr(e){return typeof e=="string"&&Oz.test(e)}var Xc={heading:"heading-1",heading2:"heading-2",heading3:"heading-3",body:"body-1",label:"body-5"};function _z(e){if(!e)return null;for(let[o,t]of Object.entries(Xc))if(t===e)return o;return null}function rh(e){if(Jr(e.textStyle))return e.textStyle;let o=kt(e.role);return o?Xc[o]:void 0}var Rz=[400,500,600,700],Yc=["left","center","right","justify"],Ek=5,Ok=1e3,Az=-5,Fz=10,ah=0,nh=64,sh=2,_k={size:{min:Ek,max:Ok,step:1},sizePhone:{min:Ek,max:Ok,step:1},padding:{min:ah,max:nh,step:sh}},Lz=.05,Bz=.01,Dz=["line","letter"],Nz=.5,Mz=2.5,Hz=-1,zz=1,Wz=0,Gz=400,$z=[...new Set(Object.values(Fa))];function Dk(e){return[`${e} { transition: translate var(--page-motion-hover-duration) var(--page-ease-media) var(--page-motion-hover-delay) }`,`${e}:hover, ${e}:active { translate: 0 calc(-1 * var(--page-hover-lift)) }`]}function ahe(e){return an(e,oh)}function Cs(e,o){return qc(e,oh,o)}function Nk(e,o,t){return Vc(e,oh,o,Uz(t).length?t:null)}function Uz(e){return Object.entries(e).filter(([,o])=>o!==void 0)}function jz(e){return Dz.includes(e)}var ws=(e,o,t)=>Math.min(t,Math.max(o,e));function Kz(e,o){if(jz(e)){let t=Math.round(Number(o));return!Number.isFinite(t)||t===0?null:ws(t,Az,Fz)}if(e==="lineHeight"){let t=Number(o);return Number.isFinite(t)?sn(ws(t,Nz,Mz),3):null}if(e==="letterSpacing"){let t=Number(o);return Number.isFinite(t)?sn(ws(t,Hz,zz),4):null}if(e==="paragraphSpacing"){let t=Math.round(Number(o));return!Number.isFinite(t)||t<=0?null:ws(t,Wz,Gz)}if(Object.hasOwn(_k,e)){let{min:t,max:r}=_k[e],a=Math.round(Number(o));return Number.isFinite(a)?ws(a,t,r):null}return e==="italic"?typeof o=="boolean"?o:null:e==="role"||e==="fontRole"?kt(o)?o:null:e==="sizeToken"?ih(o)?o:null:e==="textStyle"?Jr(o)?o:null:e==="alignPhone"?Yc.includes(o)?o:null:o}var qz=["weight","size","sizePhone","line","letter","lineHeight","letterSpacing","paragraphSpacing","padding"];function lh(e){let o=null,t=r=>{o??={...e},delete o[r]};for(let r of qz){let a=e[r];a!==void 0&&!(typeof a=="number"&&Number.isFinite(a))&&t(r)}return e.align!==void 0&&!Yc.includes(e.align)&&t("align"),e.alignPhone!==void 0&&!Yc.includes(e.alignPhone)&&t("alignPhone"),e.textStyle!==void 0&&!Jr(e.textStyle)&&t("textStyle"),e.sizeToken!==void 0&&!ih(e.sizeToken)&&t("sizeToken"),e.fontRole!==void 0&&!kt(e.fontRole)&&t("fontRole"),o??e}function ih(e){if(!e||typeof e!="object")return!1;let{step:o,px:t,stepPhone:r,pxPhone:a,fluid:n}=e,s=c=>typeof c=="number"&&Number.isFinite(c)&&c>0,l=c=>typeof c=="string"&&$z.includes(c);return l(o)&&s(t)&&(r===void 0||l(r))&&(a===void 0||s(a))&&(n===void 0||Vz(n,t))}function Vz(e,o){if(!e||typeof e!="object"||Array.isArray(e))return!1;let{minPx:t,vw:r,...a}=e;return Object.keys(a).length===0&&typeof t=="number"&&Number.isFinite(t)&&t>0&&t<o&&typeof r=="number"&&Number.isFinite(r)&&r>0&&r<=100}function Mk(e){return e?.pxPhone&&ih(e)?{step:e.stepPhone??e.step,px:e.pxPhone}:null}function Hk({step:e,px:o,fluid:t}){let r=t?`clamp(${t.minPx}px, ${t.vw}vw, ${o}px)`:`${o}px`,a=`var(--size-${e}, ${r})`;return e.startsWith("heading")?`min(${a}, var(--sf-heading-max,9999px))`:a}var Yz=[["font","role"],["font","fontRole"],["role","textStyle"],["line","lineHeight"],["letter","letterSpacing"]];function Xz(e){let o=[];for(let[t,r]of Yz)t===e?o.push(r):r===e&&o.push(t);return o}function Qr(e,o,t,r){let a={...Cs(e,o)},n=r==null?null:Kz(t,r);if(n===null)delete a[t];else{a[t]=n;for(let s of Xz(t))delete a[s]}return Nk(e,o,a)}function zk(e,o){return Nk(e,o,{})}function Zz(e){return Pz(e)??"none"}function Jz(e){return Tz(e)??""}var Rk={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 Qz(e,o){return kt(e.role)||(o?.blockDrawsStyle?null:_z(e.textStyle))}function Wk(e,o){return e==="Text"&&o==="text"}var eW={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 oW(e){let o=Fa[e],t=eW[o];return t?`var(--size-${o}, ${t})`:`var(--size-${o})`}function vs(e){let o={};return typeof e.lineHeight=="number"?o.lineHeight=e.lineHeight:e.line&&(o.lineHeight=sn(tW+e.line*Lz,3)),typeof e.letterSpacing=="number"?o.letterSpacingEm=e.letterSpacing:e.letter&&(o.letterSpacingEm=sn(e.letter*Bz,4)),o}var tW=1,Zr="--sf-part-para";function rW(e){e=lh(e);let o={};if(typeof e.sizePhone=="number"&&e.sizePhone>0)o.fontSize=`${e.sizePhone}px`;else{let t=Mk(e.sizeToken);t&&(o.fontSize=Hk(t))}return e.alignPhone&&(o.textAlign=e.alignPhone),o}function aW(e,o){if(!o)return e;let t=lh(e),r=e;if(typeof t.sizePhone=="number"&&t.sizePhone>0)r={...r,size:t.sizePhone};else{let a=Mk(t.sizeToken);a&&(r={...r,size:void 0,sizeToken:a})}return t.alignPhone&&(r={...r,align:t.alignPhone}),r}function ch(e,o,t){return dh(aW(e,o),Zc,t)}function Gk(e,o){let t=o?"sizePhone":"size";if(!Object.hasOwn(e,t))return e;let r={...e};return delete r[t],r}function nhe(e,o,t){let r=ch(Gk(e,o),o,t);return{fontFamily:r.fontFamily,fontSize:r.fontSize}}function dh(e,o,t){e=lh(e);let r=Qz(e,t),a=vs(e),n=e.size?`${e.size}px`:e.sizeToken?Hk(e.sizeToken):r?oW(r):"";return{fontFamily:e.font?iW(e.font):e.fontRole?`var(${Rk[e.fontRole]})`:r?`var(${Rk[r]})`:"",fontWeight:e.weight?String(e.weight):"",fontSize:n,minWidth:n?"0":"",overflowWrap:n?"break-word":"",lineHeight:a.lineHeight!==void 0?String(a.lineHeight):"",letterSpacing:a.letterSpacingEm!==void 0?`${a.letterSpacingEm}em`:"",[Zr]:e.paragraphSpacing?`${e.paragraphSpacing}px`:"",textTransform:Jz(e.case),textAlign:e.align??"",paddingTop:Ak(e.padding),paddingBottom:Ak(e.padding),color:nW(e.color),fontStyle:e.italic===!0?"italic":e.italic===!1?"normal":""}}var nW=e=>e===void 0||e===""?"":Object.hasOwn(Et,e)?Et[e]:Ez(e)===e.toLowerCase()?e:"",Ak=e=>e===void 0?"":`${e}px`,sn=(e,o)=>Number(e.toFixed(o));function she(e,o){let t=Number.parseFloat(e.fontSize)||16,r=Number.parseFloat(e.lineHeight),a=Number.parseFloat(e.letterSpacing),n=Number.parseFloat(e.paddingTop);return{fontKey:o,sizePx:t,weight:sW(Number.parseInt(e.fontWeight,10)),lineRatio:Number.isFinite(r)?sn(r/t,3):1.2,letterEm:Number.isFinite(a)?sn(a/t,4):0,align:lW(e.textAlign),case:Zz(e.textTransform),paddingPx:Number.isFinite(n)?Math.round(n):0}}function sW(e){return Number.isFinite(e)?Rz.reduce((o,t)=>Math.abs(t-e)<Math.abs(o-e)?t:o):400}function lW(e){for(let o of Yc)if(o===e)return o;return e==="end"?"right":"left"}function lhe(e,o){let t=Fk(e);if(!t)return"";for(let r of Uo)if(Fk(o(r.cssVar))===t)return r.key;return""}var Fk=e=>(e.split(",")[0]??"").replace(/["']/g,"").replace(/\s+/g," ").trim().toLowerCase();function iW(e){let o=Aa(e);return o?`var(${o.cssVar})`:""}function ihe(e,o,t,r){return!o||Cm(o)?.nodeId!==e?null:t.find(a=>r(a.getAttribute("class")))??t[0]??null}function cW(e,o){return Object.hasOwn(e,o)?rn(e[o])??{}:{}}function che(e,o,t=()=>Zc,r=l=>l,a=uW,n=!1,s=()=>!1){let l=0;for(let{element:c,partId:d}of e){let p=Cm(d)?.propKey;if(!p)continue;let h=cW(o,r(p)),u=ch(h,n,{blockDrawsStyle:s(p)});Jr(h.textStyle)?c.setAttribute?.(nn,h.textStyle):c.removeAttribute?.(nn);let x=Qm.some(y=>c.style[y]),g=!1;for(let[y,T]of Object.entries(u))hW(c,y,T),T&&(g=!0);if(x||Qm.some(y=>u[y]))for(let y of dW(c,a))for(let T of Qm)y.style[T]=u[T]??"";g&&(l+=1)}return l}function dW(e,o){let t=Ja(e.textContent??""),r=[],a=e;for(let n=0;n<fW&&o(a);n+=1){let s=a.parentElement;if(!s||Ja(s.textContent??"")!==t)break;r.push(s),a=s}return r}var fW=8;function uW(e){let o=e;return typeof window>"u"||!o?.ownerDocument?!1:window.getComputedStyle(o).display==="inline"}var Zc={fontKey:"",sizePx:16,weight:400,lineRatio:1,letterEm:0,align:"left",case:"none",paddingPx:0};function pW(e){if(!e||typeof e!="object")return null;let o={};return Jr(e.textStyle)&&(o.textStyle=e.textStyle),typeof e.size=="number"&&e.size>0&&(o.size=e.size),typeof e.sizePhone=="number"&&e.sizePhone>0&&(o.sizePhone=e.sizePhone),Object.keys(o).length?o:null}function mW(e,o){let t=pW(e);if(!t)return{};let r=ch(t,o);return{...r.fontFamily?{fontFamily:r.fontFamily}:{},...r.fontSize?{fontSize:r.fontSize}:{}}}function $k(e){return Jr(e?.textStyle)||!!e?.role||typeof e?.size=="number"&&e.size>0}function dhe(e,o,t){if(!e||typeof e!="object")return{};let r=Kc(e.role,o,Fa)??{},a=o.sized?mW(Gk(e,t),t):{};return{...r,...a}}function fhe(e,o,t){t.fontFamily&&e.fontFamily===t.fontFamily&&(e.fontFamily=o.fontFamily),t.fontSize&&e.fontSize===t.fontSize&&(e.fontSize=o.fontSize)}function hW(e,o,t){if(!o.startsWith("--")){e.style[o]=t;return}let r=e.style;typeof r.setProperty=="function"?t?r.setProperty(o,t):r.removeProperty?.(o):r[o]=t;let a=e;o===Zr&&(t?a.setAttribute?.(Lk,""):a.removeAttribute?.(Lk))}var Lk="data-sf-part-para",xW=Object.keys(dh({},Zc)),eh=new Set(["color","overflowWrap",Zr,"fontStyle"]),Qm=xW.filter(e=>!eh.has(e));function Uk(e,o,t,r=l=>l,a=()=>!1,n=()=>null,s=[]){let l=new Map;for(let p of e){let h=ms(p.key,p.row);for(let u of p.texts){let x=l.get(u);x?(x.keys.add(p.key),x.partKeys.add(h)):l.set(u,{keys:new Set([p.key]),partKeys:new Set([h])})}}let c=new Map;for(let p of new Set([...Object.keys(o),...s])){if(!IW(p))continue;let h=Bk(t,p,rn(o[p])??{},!1,n(p));h&&c.set(p,h)}let d=new Map;for(let[p,{keys:h,partKeys:u}]of l){let x=u.size===1?[...u][0]:h.size===1?[...h][0]:null;if(!x)continue;let g=r(x),y=n(g);if(!Object.hasOwn(o,g)&&!y)continue;let T=rn(o[g])??{},O=Bk(t,x,T,a(x),y);O&&d.set(p,O)}return d.size||c.size?{rules:d,kindRules:c,drawn:new Set(l.keys())}:null}function Bk(e,o,t,r,a){let n=dh(t,Zc,{blockDrawsStyle:r}),s=rW(t),l=Jr(t.textStyle)?t.textStyle:void 0;return!Object.values(n).some(Boolean)&&!Object.keys(s).length&&!l&&!a?null:{stamp:gW(e,o),declarations:n,...Object.keys(s).length?{phone:s}:{},...l?{textStyle:l}:{},...a?{motion:a}:{}}}function IW(e){return e.startsWith("@")}function fh(e,o){return e?.kindRules.get(o)??null}function gW(e,o){let t=r=>r.replace(/[^A-Za-z0-9_-]+/g,"-");return`${t(e)}~${t(o)}`}function jk(e){let o=[],t=new Set,r=a=>{let{stamp:n,declarations:s}=a;if(t.has(n))return;t.add(n);let l=Object.entries(s).filter(([,x])=>x!==""),c=x=>x.map(([g,y])=>`${bW(g)}: ${y}`).join("; "),d=`[${th}="${n}"]`,p=l.filter(([x])=>!eh.has(x)),h=l.filter(([x])=>eh.has(x));p.length&&o.push(`${d}, *:has(> ${d}) { ${c(p)} }`),h.length&&o.push(`${d} { ${c(h)} }`),s[Zr]&&(o.push(`*:has(> ${d}) { ${Zr}: ${s[Zr]} }`),o.push(...Jc(d,`*:has(> ${d})`)));let u=Object.entries(a.phone??{}).filter(([,x])=>x!=="");u.length&&o.push(`@media ${$a} { ${d}, *:has(> ${d}) { ${c(u)} } }`)};for(let a of e.rules.values())r(a);for(let a of e.kindRules.values())r(a);return o.join(`
38
+ `)}function Jc(e,o){let t=`var(${Zr})`,r=":is([data-sf-bullet], [data-sf-number])";return[`${e} br:not(br + br) { display: block; content: ""; margin-top: ${t} }`,`${e} ${r}:not(:first-child) { margin-top: ${t} }`,`${e} ${r}:not(:last-child) { margin-bottom: ${t} }`,`:is(${o}) + :is(${o}) { margin-top: ${t} }`]}var bW=e=>e.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`);function Kk(e,o){if(!e)return null;let t=Ja(o),r=e.rules.get(t);if(r)return r;if(t.length<yW||e.drawn.has(t))return null;let a=null;for(let[n,s]of e.rules)if(n.includes(t)){if(a&&a.stamp!==s.stamp)return null;a=s}return a}var yW=8;function qk(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 uh=e=>e==="sentence"?"none":void 0,Zk=["font","color","size","sizeTablet","sizePhone","weight","italic","lineHeight","lineHeightTablet","lineHeightPhone","letterSpacing","letterSpacingTablet","letterSpacingPhone","paragraphSpacing","paragraphSpacingTablet","paragraphSpacingPhone","letterCase","largestSize","largestSizeTablet","largestSizePhone"],ln=["desktop","tablet","phone"],ks=(e,o)=>o==="desktop"?e:o==="tablet"?vW(e):CW(e),ea=(e,o)=>o==="desktop"?e:wW(e,o);function hh(e,o,t,r=Ni()){return Xk("textSize",o,e.sizeTablet,e.sizePhone,r)[t]}var TW=[["lineSpacing","lineHeight","line"],["letterSpacing","letterSpacing","letter"]];function ph(e){for(let[o,t,r]of TW)for(let a of ln)if(e===ea(o,a))return{key:ks(t,a),view:a,spacing:r};return{key:e,view:"desktop",spacing:null}}function bt(e){let o={};for(let t of Zk)e[t]!==void 0&&(o[t]=e[t]);return o}function xh(e,o){let{auto:t,...r}=e,a=new Set(o??[]),n=Zk.filter(s=>a.has(s)&&e.values[s]===void 0);return n.length?{...r,auto:n}:r}function Jk(e){let o=e.fonts,t=e.sizes,r=e.typography,a=Jg(e.compression),n={"heading-1":{font:oe(o.heading),size:$(t.headingLarge),weight:$(r.weight),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:uh(r.case),largestSize:$(r.maxPx)},"heading-2":{font:oe(o.heading2),size:$(t.headingMedium),weight:$(r.weight2),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:uh(r.case2)},"heading-3":{font:oe(o.heading3),size:$(t.headingSmall),weight:$(r.weight3),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:uh(r.case3)},"body-1":{font:oe(o.body),size:$(t.body)},"body-5":{font:oe(o.label),size:$(t.label)}};return Yk().map(({id:s,kind:l,name:c})=>({id:s,kind:l,name:c,values:bt(n[s]??{})}))}function Ih(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=>xh({...o,values:bt(o.values??{})},Array.isArray(o.auto)?o.auto:void 0)):null}function vhe(e){return Ih(e)??[]}function Qk(e){return Ih(e)??Yk().map(({id:o,kind:t,name:r})=>({id:o,kind:t,name:r,values:{}}))}function Nt(e,o){let t=Jk(o),r=Ih(e);return r?r.map(a=>{let n={...mh(t,a.id)};for(let s of a.auto??[])delete n[s];return{...a,values:bt({...n,...a.values})}}):t}var mh=(e,o)=>e.find(t=>t.id===o)?.values??{},Vk=["heading-1","heading-2","heading-3"];function eT({saved:e,old:o,cur:t,next:r,sizeOf:a,panelView:n="desktop"}){let s=Jk(o),l=Qk(e),c=Nt(l,o),d=[],p=r.map(u=>{let x=t.find(v=>v.id===u.id),g=l.find(v=>v.id===u.id);if(!x||!g)return PW([u],a,n)[0];let y={...g.values},T=new Set(g.auto??[]),O=u.values,w=x.values,I=[...new Set([...Object.keys(O),...Object.keys(w)])].filter(v=>JSON.stringify(O[v])!==JSON.stringify(w[v])),C=v=>ph(v).spacing==="letter";I.sort((v,k)=>Number(C(v))-Number(C(k)));for(let v of I){let{key:k,view:A,spacing:D}=ph(v),P=k,R=O[v];if(R===void 0){delete y[P],mh(s,u.id)[P]!==void 0&&(d.push([u.id,P]),T.add(P));continue}if(T.delete(P),D==="line")y[P]=cn(R/100,3);else if(D==="letter"){let N={...c.find(F=>F.id===u.id)?.values??{}};for(let F of I)O[F]===void 0&&delete N[ph(F).key];let b=bt({...N,...y}),_=hh(b,a({...u,values:b}),A);y[P]=_?cn(R/_,4):0}else y[P]=R}return xh({id:u.id,kind:u.kind,name:u.name,values:bt(y)},T)}),h=o.compression;if(d.some(([u,x])=>(x==="lineHeight"||x==="letterSpacing")&&Vk.includes(u))&&Pr(h)!=="normal"){for(let u of Vk){let x=p.find(y=>y.id===u);if(!x)continue;let g={...x.values};for(let y of["lineHeight","letterSpacing"])d.some(([T,O])=>T===u&&O===y)||g[y]===void 0&&!(x.auto??[]).includes(y)&&(g[y]=mh(s,u)[y]);x.values=bt(g)}h="normal"}return{saved:p,old:{...o,compression:h}}}function oT(e,o){let t={text_styles:e.saved};return e.old.compression!==o.compression&&(t.heading_compression=Pr(e.old.compression)),t}var cn=(e,o)=>Number(e.toFixed(o)),tT=(e,o)=>ln.indexOf(e)<ln.indexOf(o)?o:e;function rT(e,o,t="desktop"){return e.map(r=>{let a={...r.values},n=o(r);for(let s of ln){let l=ks("lineHeight",s),c=r.values[l],d=r.values[ks("letterSpacing",s)];delete a[l],c!==void 0&&(a[ea("lineSpacing",s)]=cn(c*100,1));let p=tT(s,t);d!==void 0&&(a[ea("letterSpacing",s)]=cn(d*hh(r.values,n,p),p===s?2:4))}return{id:r.id,kind:r.kind,name:r.name,values:a}})}function PW(e,o,t="desktop"){return e.map(r=>{let a=r.values,n={...a};for(let d of ln)delete n[ea("lineSpacing",d)],delete n[ea("letterSpacing",d)];let s={id:r.id,kind:r.kind,name:r.name,values:bt(n)},l={...s.values},c=o({...s,values:{...s.values}});for(let d of ln){let p=a[ea("lineSpacing",d)],h=a[ea("letterSpacing",d)];if(typeof p=="number"&&(l[ks("lineHeight",d)]=cn(p/100,3)),typeof h=="number"){let u=hh(s.values,c,tT(d,t));l[ks("letterSpacing",d)]=u?cn(h/u,4):0}}return{...s,values:bt(l)}})}function khe(e){let o={fonts:zn({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:lu({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:Pr(e.heading_compression),typography:eb(e)},t=e.text_styles??null,r=Array.isArray(t)?gh(Nt(t,o),o):o;return{fonts:zn(r.fonts),sizes:lu(r.sizes),compression:Pr(r.compression),typography:r.typography,textStyles:t}}function gh(e,o){let t=u=>e.find(x=>x.id===u)?.values??{},r=t("heading-1"),a=t("heading-2"),n=t("heading-3"),s=t("body-1"),l=t("body-5"),c=o.fonts,d=o.sizes,p=o.typography,h=u=>u==="none"?"sentence":"authored";return{fonts:{...c,heading:r.font??c.heading,heading2:a.font??r.font??c.heading2,heading3:n.font??r.font??c.heading3,body:s.font??c.body,label:l.font??c.label},sizes:{...d,headingLarge:r.size??null,headingMedium:a.size??null,headingSmall:n.size??null,body:s.size??null,label:l.size??null},compression:o.compression,typography:{...p,case:h(r.letterCase),weight:r.weight??null,maxPx:r.largestSize??null,weight2:a.weight??null,weight3:n.weight??null,case2:h(a.letterCase),case3:h(n.letterCase)}}}function EW(e){return e==="accent"?"var(--accent)":e==="text"?"var(--fg)":e==="labels"?"var(--fg-dim)":kW(e)===e.toLowerCase()?e:null}function The(e){let o=[];for(let t of e){let r=t.values,a=`.${qk(t)}`,n=`[${nn}="${t.id}"]`,s=`${a}, ${n}`,l=[],c=r.font!==void 0?Uo.find(u=>u.key===r.font)?.cssVar:void 0;if(c&&l.push(`font-family: var(${c})`),r.size!==void 0){let u=r.largestSize!==void 0?Math.min(r.size,r.largestSize):r.size;l.push(`font-size: ${u}px`)}let d=r.color!==void 0?EW(r.color):null;d&&l.push(`color: ${d}`),r.italic===!0&&l.push("font-style: italic"),r.weight!==void 0&&l.push(`font-weight: ${r.weight}`);let p=[];r.lineHeight!==void 0&&p.push(`line-height: ${r.lineHeight}`),r.letterSpacing!==void 0&&p.push(`letter-spacing: ${r.letterSpacing}em`),t.kind==="body"&&l.push(...p);let h=SW(r.letterCase);h&&t.kind==="body"&&l.push(`text-transform: ${h}`),r.paragraphSpacing&&l.push(`--sf-part-para: ${r.paragraphSpacing}px`),l.length&&o.push(`${s} { ${l.join("; ")} }`),t.kind==="heading"&&p.length&&o.push(`${s}, ${a}:is(h1, h2, h3, h4), ${n}:is(h1, h2, h3, h4) { ${p.join("; ")} }`),t.kind==="heading"&&h&&o.push(`${n}, ${a}:is(h1, h2, h3, h4) { text-transform: ${h} }`),r.paragraphSpacing&&(o.push(`*:has(> ${n}) { --sf-part-para: ${r.paragraphSpacing}px }`),o.push(...Jc(`:is(${s})`,`*:has(> ${n})`))),o.push(...OW(t,s,a,n))}return o.join(`
39
+ `)}function OW(e,o,t,r){let a=e.values,n=sr("textSize",a.size,a.sizeTablet,a.sizePhone),s=sr("textSize",a.largestSize,a.largestSizeTablet,a.largestSizePhone),l=sr("same",a.lineHeight,a.lineHeightTablet,a.lineHeightPhone),c=sr("same",a.letterSpacing,a.letterSpacingTablet,a.letterSpacingPhone),d=sr("spacing",a.paragraphSpacing,a.paragraphSpacingTablet,a.paragraphSpacingPhone),p=Xk("textSize",a.size,a.sizeTablet,a.sizePhone,Ni()),h=_W[e.id],u=[];for(let[x,g]of[["tablet",Ww],["phone",$a]]){let y=[],T=[],O=p[x],w=s[x],I=n[x]===void 0&&w===void 0||O===void 0?void 0:w===void 0?O:Math.min(O,w);I!==void 0&&T.push(`font-size: ${I}px`);let C=[];l[x]!==void 0&&C.push(`line-height: ${l[x]}`),c[x]!==void 0&&C.push(`letter-spacing: ${c[x]}em`),e.kind==="body"&&T.push(...C),d[x]!==void 0&&T.push(`--sf-part-para: ${d[x]}px`),T.length&&y.push(`${o} { ${T.join("; ")} }`),e.kind==="heading"&&C.length&&y.push(`${o}, ${t}:is(h1, h2, h3, h4), ${r}:is(h1, h2, h3, h4) { ${C.join("; ")} }`),d[x]!==void 0&&y.push(`*:has(> ${r}) { --sf-part-para: ${d[x]}px }`),d[x]!==void 0&&!a.paragraphSpacing&&y.push(...Jc(`:is(${o})`,`*:has(> ${r})`)),I!==void 0&&h&&y.push(`.sf-themed-content { --size-${h}: ${I}px !important }`),y.length&&u.push(`@media ${g} { ${y.join(" ")} }`)}return u}var _W={"heading-1":"headingLarge","heading-2":"headingMedium","heading-3":"headingSmall","body-1":"body","body-5":"label"};function Phe(e){return e!==!0&&e!==!1?"":`em.text-accent { font-style: ${e?"italic":"normal"} }`}function aT(e){return e?Xc[e]:void 0}function bh(e){let o=vs(e);return bt({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 nT(e){return Object.keys(bh(e)).length>0}function sT({saved:e,old:o,styleId:t,values:r}){let a=Qk(e);return{saved:RW(a,t,r),old:o}}function RW(e,o,t){return e.map(r=>r.id===o?xh({...r,values:bt({...r.values,...t})},r.auto):r)}var DW={desktop:"desktop",tablet:"tablet",mobile:"phone"},lT=["font","color","size","weight","emphasis","lineSpacing","letterSpacing","paragraphSpacing","letterCase","largestSize"],NW=["size","lineSpacing","letterSpacing","letterCase"],MW=500,yh=Uo.map(e=>({value:e.key,label:e.label,family:`var(${e.cssVar})`,italic:e.italicLoaded}));function iT({saved:e,old:o,colours:t,sizeOf:r,onChange:a,openId:n,onOpenChange:s,readOnly:l=!1,withoutSize:c=!1}){let d=BW(),[p,h]=FW(null),u=Nt(e,o),x=DW[d],g=rT(u,r,x);return AW(LW,{styles:g,onChange:y=>a(eT({saved:e,old:o,cur:g,next:y,sizeOf:r,panelView:x})),fonts:yh,colours:t,settings:c?lT.filter(y=>y!=="size"):lT,auto:NW,openId:n===void 0?p:n,onOpenChange:s??h,readOnly:l,device:x,fallback:y=>{let T=u.find(w=>w.id===(y.kind==="heading"?"heading-1":"body-1")),O={};return T?.values.font&&y.id!==T.id&&(O.font=T.values.font),y.kind==="heading"&&(O.weight=MW),O}})}var dT=["font","size","weight","emphasis"],WW=500;function GW({font:e,size:o,weight:t,italic:r}){let a={font:e};return o!==null&&(a.size=o),t!==null&&(a.weight=t),r!==null&&(a.italic=r),{id:"accent",kind:"heading",name:i("Accent"),values:a}}function $W(e,o){let t=[],r=e.values,a=o.values;return a.font!==r.font&&a.font!==void 0&&t.push({key:"font",value:a.font}),a.size!==r.size&&t.push({key:"size",value:a.size??null}),a.weight!==r.weight&&t.push({key:"weight",value:a.weight??null}),a.italic!==r.italic&&t.push({key:"italic",value:a.italic??null}),t}function fT(e){let{headingWeight:o,open:t,onOpenChange:r,onChange:a,withoutSize:n=!1}=e,s=GW(e);return cT(zW,{label:i("Accent"),children:cT(HW,{style:s,fonts:yh,settings:n?dT.filter(l=>l!=="size"):dT,auto:["size"],fallback:()=>({weight:o??WW}),open:t,onOpenChange:r,onChange:l=>$W(s,l).forEach(a)})})}import{Button as mG,EmptyState as hG,Tabs as xG,Tooltip as Kxe,tabButtonId as IG,tabPanelId as gG}from"efficient-shell/ui";import{ContrastIcon as bG,NoteIcon as yG,SettingsIcon as SG,TypeIcon as wG}from"efficient-easel/icons";function uT(e){switch(e.status){case"saved":return null;case"failed":return{msg:i("Not saved. Try again."),tone:"error"};case"skipped":switch(e.reason){case"empty":return null;case"no-token":return{msg:i("Not saved. Reload the page."),tone:"error"};case"template":return{msg:i("Templates keep their look. Press Done."),tone:"success"}}}}import{jsx as vh}from"react/jsx-runtime";import{ListIcon as tG,PaddingTopIcon as rG}from"efficient-easel/icons";import{jsx as Qc}from"react/jsx-runtime";import{SettingsDefaultReset as UW,SettingsField as jW,SettingsSegmented as KW}from"efficient-easel/panel";import{WidthIcon as qW}from"efficient-easel/icons";function pT({value:e,resolved:o,onChange:t,label:r="Width",labelId:a,followsLabel:n,hint:s}){let l=e===void 0,c=l?o:e,d=i(r);return Qc(jW,{label:d,labelId:a,icon:Qc(qW,{}),value:l?n:void 0,changed:!l,action:Qc(UW,{words:ee()?.panel,label:d,changed:!l,onReset:()=>t(void 0)}),hint:s,children:Qc(KW,{options:[{label:i(Kr.full),id:"full"},{label:i(Kr.page),id:"content"}],value:c,ariaLabel:d,onChange:t})})}import{HEADER_TYPE as Sh,FOOTER_TYPE as VW}from"efficient-easel/draw";var YW=new Set(["Hero","HeroSingle","IntroBleed"]),mT={min:56,max:140,default:88},Xhe={min:0,max:120,step:2,default:32},Zhe=`var(--sf-header-h, ${mT.default}px)`,XW="--sf-header-set-h",Jhe="--sf-header-h",Qhe=`var(${XW}, ${mT.default}px)`,exe="sf-header-clearance",oxe="sf-sticky-underheader";function ZW(e){return e?.find(o=>o?.type&&o.type!==Sh)??null}function hT(e){let o=ZW(e)?.type;return!o||!YW.has(o)}function txe(e){return!hT(e)}function rxe(e){return!!e?.some(o=>o?.type===Sh)}function axe(e){return!e||e.length===0?!1:!e.some(o=>o?.type===Sh||o?.type===VW)}var JW=["auto","shared","own"],wh="auto",QW="topSpace",nxe="data-top-space";function eG(e){return JW.includes(e)?e:wh}function oG(e,o){let t=eG(e?.props?.[QW]);return t==="own"?!0:t==="shared"?!1:hT(o)}function sxe(e,o){return oG(e,o)?"own":null}function aG(){return{type:"custom",render:({value:e,onChange:o})=>vh(pT,{value:e==="full"?"full":e==="content"?"content":void 0,resolved:"content",label:"Page width",followsLabel:i("Follows the site"),hint:i("Whether this page sits on the site's content column, or runs edge to edge."),onChange:t=>o(t)})}}var nG=[{label:"Auto",value:"auto"},{label:"Shared",value:"shared"},{label:"Its own",value:"own"}],Ixe={pageBackground:fv(),topSpace:Qo("Top space",vh(rG,{}),nG,wh),widthChoice:aG()},Ts=["pageBackground","topSpace","widthChoice"],sG="Record type",Ch=new Map,xT=-1;function lG(e){xT!==Vu()&&(Ch.clear(),xT=Vu());let o=qu(),t=o.some(a=>a.key===e)?"":e,r=Ch.get(t);return r||(r=Qo(sG,vh(tG,{}),[...o.map(a=>({label:a.label,value:a.key})),...t?[{label:t,value:t}]:[]],Br),Ch.set(t,r)),r}var IT=new WeakMap;function gxe(e,o){if(!ui()||qu().length<2||ci in e)return e;let t=lG(Yu(o)),r=IT.get(e);if(r&&r.row===t)return r.fields;let a={[ci]:t,...e};return IT.set(e,{row:t,fields:a}),a}import{previewFrame as CG}from"efficient-easel/screen/lib/document/preview-dom";import{useEasel as iG}from"efficient-easel/easel";function ed({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=iG(A=>A),{fonts:a,setFonts:n,sizes:s,setSizes:l,headingCompression:c,setHeadingCompression:d,headingTypography:p,setHeadingTypography:h,textStyles:u,setTextStyles:x}=de(),g=t.data,y=g.root?.props??{},T=e?zn(y.fonts):a,O=e?Kg:s,w=e?Pr(y.headingCompression):c,I=e?Qg(y.headingTypography):p,C={fonts:T,sizes:O,compression:w,typography:I},v=e?y.textStyles:u,k=A=>r({type:"replaceRoot",root:{...g.root,props:{...y,...A}},recordHistory:!0});return{fonts:T,sizes:O,compression:w,typography:I,old:C,saved:v,write:(A,D)=>{let P=gh(Nt(A.saved,A.old),A.old);e?k({textStyles:A.saved,fonts:P.fonts,headingCompression:P.compression,headingTypography:P.typography}):(x(A.saved),n(P.fonts),l(P.sizes),d(P.compression),h(P.typography)),o(oT(A,C),D)},writeRoot:k}}var Th="sf-site-styles",vG="sf-site-styles-tabpanel",Eh=!1,kG="Show hints";function Oh({shown:e,onChange:o}){return re("div",{className:"sf-hints",children:re(mG,{type:"button",variant:"ghost","aria-pressed":e,leftIcon:re(yG,{size:13}),onClick:()=>o(!e),children:i(kG)})})}var yT="text",fn="basics",gT="this-page-group",dn=[{id:fn,label:"Basics",icon:re(SG,{})},{id:"theme",label:"Theme",icon:re(bG,{})},{id:"text",label:"Text",icon:re(wG,{})}];function TG({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=bT(d=>d),{theme:a,setTheme:n}=de(),s=t.data,l=s.root?.props??{},c=d=>{if(e){let p={...l,theme:d};r({type:"replaceRoot",root:{...s.root,props:p},recordHistory:!0})}else n(d);o({selected_preset:d.selected,theme_presets:d.themes})};return re(Zv,{value:e?l.theme:a,onChange:c})}function PG({themeFromDocument:e,persist:o}){let[t,r]=od(null),{theme:a,setFonts:n,setSizes:s,setHeadingTypography:l}=de(),c=ed({themeFromDocument:e,persist:o}),{old:d,saved:p,writeRoot:h}=c,u=c.fonts,x=c.sizes,g=c.typography,y=k=>k.values.size??AG(OG[k.id]??"body")??_G[k.kind],T=k=>c.write(k),O=EG(a),w=k=>{let A={...u,accent:k};e?h({fonts:A}):n(A),o({accent_font:k})},I=k=>{s({...x,accent:k}),o({accent_size_px:k})},C=k=>{let A={...g,weightStrong:k};e?h({headingTypography:A}):l(A),o({heading_weight_strong:k})},v=k=>{let A={...g,italicStrong:k};e?h({headingTypography:A}):l(A),o({accent_italic:k})};return oa(ta,{children:[re(iT,{saved:p,old:d,colours:O,sizeOf:y,onChange:T,openId:t===kh?null:t,onOpenChange:r,withoutSize:e}),re(fT,{font:u.accent,size:x.accent,weight:g.weightStrong,italic:g.italicStrong,headingWeight:g.weight,open:t===kh,onOpenChange:k=>r(k?kh:null),onChange:k=>{k.key==="font"?w(k.value):k.key==="size"?I(k.value):k.key==="weight"?C(k.value):v(k.value)},withoutSize:e})]})}var kh="accent";function EG(e){let o=Oa(e);return[{key:"accent",name:i("Accent"),value:o.accent},{key:"text",name:i("Text"),value:o.text},{key:"labels",name:i("Labels"),value:o.muted??o.text}]}var OG={"heading-1":"heading","heading-2":"heading2","heading-3":"heading3","body-1":"body","body-5":"label"},_G={heading:32,body:14},RG={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 AG(e){if(typeof document>"u")return null;let o=(CG()?.contentDocument??document).querySelector(RG[e]);if(!o)return null;let t=parseFloat(getComputedStyle(o).fontSize);return Number.isFinite(t)?t:null}function FG({themeFromDocument:e,persist:o,showHint:t}){let{appState:r,dispatch:a}=bT(u=>u),{cornerRadiusPx:n,setCornerRadiusPx:s}=de(),l=r.data,c=l.root?.props??{},d=c.cornerRadiusPx===void 0?Vg[qg(c.cornerStyle)]:mt(c.cornerRadiusPx),p=e?d:n,h=u=>a({type:"replaceRoot",root:{...l.root,props:{...c,...u}},recordHistory:!0});return re(Jv,{value:p,onChange:u=>{e?h({cornerRadiusPx:u}):s(u),o({corner_radius_px:u})},showHint:t})}function LG(e){return{site_width:e}}function BG({persist:e,showHint:o}){let{siteWidth:t,setSiteWidth:r,sectionBackgroundWidth:a,setSectionBackgroundWidth:n,sectionContentWidth:s,setSectionContentWidth:l}=de();if(Ph()!=="desktop")return null;let c=typeof t=="number"?t:fo.default,d=u=>{r(u),e(LG(u),u===null)},p=u=>{n(u),e({section_background_width:u},!0)},h=u=>{l(u),e({section_content_width:u},!0)};return oa(ta,{children:[re(kk,{value:a??"full",changed:a!==null,detail:i("Full width"),onChange:p,onReset:()=>p(null),hint:o?Ck:void 0}),re(Tk,{mode:s??"content",px:c,min:fo.min,max:fo.max,changed:typeof t=="number"||s!==null,detail:`${i("Content width")} ${fo.default}px`,onMode:h,onPx:u=>d(u),onReset:()=>{h(null),d(null)},hint:o?vk:void 0})]})}function DG(e){return{block_gap:e}}function NG(e){return{block_gap_phone:e}}function MG(e){return{site_gutter:e}}function HG(e){return{site_gutter_phone:e}}function ST(e,[o,t],r){o(e),r(t(e),e===null)}function zG({persist:e,showHint:o}){let{siteGutter:t,siteGutterPhone:r,setSiteGutter:a,setSiteGutterPhone:n}=de(),s=Sk(Ph(),{gutter:t,phone:r});if(!s)return null;let l=s.key==="site_gutter_phone"?[n,HG]:[a,MG];return re(wk,{value:s.value,onChange:c=>ST(c,l,e),showHint:o,unsetPx:s.unsetPx,bounds:s.bounds})}function WG({persist:e,showHint:o}){let{blockGap:t,blockGapPhone:r,setBlockGap:a,setBlockGapPhone:n}=de(),s=rk(Ph(),{gap:t,phone:r});if(!s)return null;let l=s.key==="block_gap_phone"?[n,NG]:[a,DG];return re(ak,{value:s.value,onChange:c=>ST(c,l,e),showHint:o,followsPx:s.followsPx})}function GG({persist:e,showHint:o=!0}){return oa(ta,{children:[re(BG,{persist:e,showHint:o}),re(zG,{persist:e,showHint:o}),re(WG,{persist:e,showHint:o})]})}function $G(e){return{card_shadow:e}}function UG(e){return e===null?{shadow_color:null}:{shadow_color:Zg(e)}}function jG(e){return{hover_effect:e}}function KG({persist:e,showHint:o=!0}){let{cardShadow:t,setCardShadow:r,shadowColor:a,setShadowColor:n,hoverEffect:s,setHoverEffect:l}=de();return oa(ta,{children:[re(Qv,{value:t,onChange:c=>{r(c),e($G(c),!0)},showHint:o}),re(ok,{value:a,onChange:c=>{n(c),e(UG(c),c===null)},showHint:o}),re(uk,{value:s,onChange:c=>{l(c),e(jG(c),!0)},showHint:o})]})}function qG(e){return{photography_grayscale:e}}function VG({persist:e,showHint:o}){let{photographyGrayscale:t,setPhotographyGrayscale:r}=de();return re(mk,{value:t,onChange:a=>{r(a),e(qG(a),!0)},showHint:o})}function YG({persist:e,showHint:o=!0}){return re(ta,{children:re(VG,{persist:e,showHint:o})})}function XG(e){return{share_button_on_posts:e}}function ZG({persist:e,showHint:o=!0}){let{shareButtonOnPosts:t,setShareButtonOnPosts:r}=de();return re(hk,{value:t,onChange:a=>{r(a),e(XG(a),!0)},showHint:o})}function un(){let{websiteName:e}=de();return e?.trim()||ib}function td({themeFromDocument:e=!1,tokenRef:o,siteId:t,onNotify:r,tab:a,onTabChange:n,initialTab:s,revealPageGroup:l=!1,onPageGroupRevealed:c}){let{persist:d}=Wa({themeFromDocument:e,tokenRef:o,siteId:t,onResult:w=>{let I=uT(w);I&&r?.(I.msg,I.tone)}}),[p,h]=od(s??dn[0].id),u=a!==void 0,x=u?a:p,g=u?n??(()=>{}):h,y=dn.find(w=>w.id===x)??dn[0],[T,O]=od(Eh);return oa(ta,{children:[re(e$,{activeId:y.id,onSelect:g}),oa("div",{id:gG(Th,y.id),className:vG,role:"tabpanel","aria-labelledby":IG(Th,y.id),children:[x===fn&&oa(ta,{children:[re(FG,{themeFromDocument:e,persist:d,showHint:T}),!e&&re(KG,{persist:d,showHint:T}),!e&&re(GG,{persist:d,showHint:T}),!e&&re(YG,{persist:d,showHint:T}),!e&&re(ZG,{persist:d,showHint:T}),re(JG,{reveal:l,onRevealed:c}),re(Oh,{shown:T,onChange:O})]}),x==="theme"&&re(TG,{themeFromDocument:e,persist:d}),x==="text"&&re(PG,{themeFromDocument:e,persist:d})]})]})}function JG({reveal:e,onRevealed:o}){let[t,r]=od(!0),a=pG(o);return a.current=o,uG(()=>{if(!e)return;r(!0);let n=requestAnimationFrame(()=>{document.getElementById(gT)?.scrollIntoView({block:"start"}),a.current?.()});return()=>cancelAnimationFrame(n)},[e]),re(fG,{title:i("This page"),open:t,onToggle:r,id:gT,children:re(QG,{})})}function QG(){let{fields:e,values:o,readOnly:t,onChange:r}=cG(),a=Object.fromEntries(Ts.filter(n=>n in e).map(n=>[n,e[n]]));return Object.keys(a).length===0?re(hG,{variant:"none",icon:!1,message:i("This page has no look of its own to set.")}):re(dG,{fields:a,values:o,onChange:r,readOnly:t,tabs:!1,idPrefix:"this-page",ariaLabel:i("This page")})}function e$({activeId:e,onSelect:o}){return re("div",{className:"es-insp-tabs",children:re(xG,{variant:"underline",block:!0,labelsFit:!0,"aria-label":i("Styles"),idPrefix:Th,value:e,onChange:o,items:dn.map(t=>{let r=i(t.label);return{id:t.id,icon:t.icon,label:r}})})})}import{InspectorIconButton as d$}from"efficient-easel/chrome";import{Button as OT,Dialog as f$,FormField as u$,Input as _T,PopupMenu as p$,PopupMenuItem as RT,toast as AT}from"efficient-shell/ui";import{LayersTree as m$,TreeGroupLabel as h$,TreeRow as FT,TreeRowAction as sd}from"efficient-easel/tree";import{AddIcon as x$,DuplicateIcon as I$,PageIcon as g$,SettingsIcon as b$}from"efficient-easel/icons";import{PagesIcon as y$}from"efficient-easel/rail";import{useEaselHost as S$}from"efficient-easel/screen/lib/host";import{useEaselSession as NT}from"efficient-easel/screen/lib/session-context";import{useCallback as rd,useEffect as o$,useSyncExternalStore as t$}from"react";import{useScreenDocument as kT}from"efficient-easel/screen/components/ScreenDocumentContext";var wT=new WeakMap;function Ps(e){let o=wT.get(e);return o||(o={rows:null,loading:null,listeners:new Set},wT.set(e,o)),o}function _h(e,o){e.rows=o;for(let t of e.listeners)t()}var ad=new Set;function nd(e,o){o?ad.add(e):ad.delete(e)}function CT(e){let o=Ps(e),t=e.listPages().then(r=>_h(o,ad.size?r.filter(a=>!ad.has(a.id)):r),()=>_h(o,[])).finally(()=>{o.loading===t&&(o.loading=null)});return o.loading=t,t}var vT=()=>null,r$=()=>()=>{};function Es(){let{adapter:e,ready:o}=kT(),t=rd(l=>{let{listeners:c}=Ps(e);return c.add(l),()=>c.delete(l)},[e]),r=rd(()=>Ps(e).rows,[e]),a=t$(o?t:r$,o?r:vT,vT);o$(()=>{if(!o)return;let l=Ps(e);l.rows===null&&!l.loading&&CT(e)},[e,o]);let n=rd(()=>o?CT(e):Promise.resolve(),[e,o]),s=rd(l=>_h(Ps(e),l),[e]);return{rows:a,reload:n,setRows:s,getRows:r}}function a$(e,o){return e?.find(t=>t.slug===o)?.label?.trim()||`/${o}`}function TT(){let{currentSlug:e}=kT(),{rows:o}=Es();return a$(o,e)}import{canDuplicatePage as w$,DuplicatePageDialog as C$,uniqueSlug as LT}from"efficient-easel/page-copy";var BT="sf-editor-pages-collapsed-groups";function v$(){let e=NT(),{siteId:o,templateId:t}=DT(),r=We(e).pages;if(!(!r.duplicate||t))return(a,n)=>r.duplicate(a.id,{...n,...o?{siteId:o}:{}})}function k$(){try{let e=La()||(typeof window>"u"?"":window.location.origin);return e?new URL(e).host:""}catch{return""}}function MT({onNavigate:e,onClose:o,activeSurface:t,onPreviewSurface:r}){let a=NT().chrome?.pageRows,n=S$(),{adapter:s,capabilities:l,ready:c,currentSlug:d}=DT(),p=un(),{rows:h,reload:u,setRows:x,getRows:g}=Es(),[y,T]=pr(""),[O,w]=pr(!1),[I,C]=pr(null),[v,k]=pr(!1),[A,D]=pr(""),P=l$(),R=v$(),[N,b]=pr(null),[_,F]=pr(()=>{if(typeof window>"u")return new Set;try{let M=window.localStorage.getItem(BT);return new Set(M?JSON.parse(M):[])}catch{return new Set}});s$(()=>{try{window.localStorage.setItem(BT,JSON.stringify([..._]))}catch{}},[_]);let H=M=>F(le=>{let Se=new Set(le);return Se.has(M)?Se.delete(M):Se.add(M),Se}),Z=ET(()=>Hy(h??[]),[h]),q=y.trim().toLowerCase(),U=M=>!q||M.toLowerCase().includes(q),ve=M=>q?!0:!_.has(M),ne=ET(()=>new Set((h??[]).map(M=>M.slug)),[h]),Ue=()=>{if(l.pageCreationInAdminForm){n.send("storefront-editor:new-page");return}D(""),C(null),k(!0)},De=async()=>{let M=A.trim();if(!(!M||!c||O||!s.createPage)){w(!0),C(null);try{let le=await s.createPage({slug:LT(M,ne),title:M,layout:{}});await u(),k(!1),D(""),e(le.slug)}catch{C(i("Couldn\u2019t add the page \u2014 please retry."))}finally{w(!1)}}},Te=l.hasSiteSettings&&!!s.createPage,pe=async()=>{if(!(!c||O||!s.createPage)){w(!0),C(null);try{let M=await s.createPage(Rw(i("New popup"),ne));await u(),e(M.slug)}catch{C(i("Couldn\u2019t add the popup \u2014 please retry."))}finally{w(!1)}}},ge=i$(null),[qe,Ve]=pr(null),se=()=>{if(!Te)return Ue();if(qe)return Ve(null);let M=ge.current?.getBoundingClientRect();M&&Ve({top:M.bottom+6,right:Math.max(8,window.innerWidth-M.right)})},Fe=M=>{let le=h??[],Se=s.deletePage;if(!c||O||!Se||le.length<=1)return;let He=le.findIndex(oo=>oo.id===M.id),ze=le.filter(oo=>oo.id!==M.id),qt=M.slug===d;nd(M.id,!0),x(ze),C(null),qt&&ze[0]&&e(ze[0].slug);let Pa=()=>{nd(M.id,!1);let oo=g()??[];if(oo.some(Mn=>Mn.id===M.id))return;let wr=[...oo];wr.splice(Math.max(0,Math.min(He,wr.length)),0,M),x(wr)};AT.undoable(i("Deleted \u201C{name}\u201D",{name:M.label}),{actionLabel:i("Undo"),commit:async oo=>{await Se(M.id,oo),nd(M.id,!1)},undo:()=>{Pa(),qt&&e(M.slug)},onFail:()=>{Pa(),AT.error(i("Couldn\u2019t delete the page \u2014 please retry."))}})},so=M=>n.send("storefront-editor:open-page",{slug:M}),Pe=M=>{if(!U(M.label))return null;let le=!t&&M.slug===d,Se=l.canDeletePagesInline&&(h??[]).length>1,He=Dr(M),ze=My(M),qt=[...He?[{label:i("Dynamic"),tone:"info"}]:[],...ze?[{label:i("Lightbox"),tone:"success"}]:[],...M.draft?[{label:i("draft"),tone:"draft"}]:[]],Pa=qt.length>0?qt:void 0,oo=!!R&&w$(M),wr=oo||l.pageCreationInAdminForm||Se?Os(PT,{children:[oo&&be(sd,{kind:"plain",label:i("Duplicate \u201C{name}\u201D",{name:M.label}),disabled:O,onClick:()=>b(M),children:be(I$,{size:13})}),l.pageCreationInAdminForm&&be(sd,{kind:"plain",label:i("Page settings for \u201C{name}\u201D",{name:M.label}),onClick:()=>so(M.slug),children:be(b$,{size:13})}),Se&&be(sd,{kind:"delete",label:i("Delete \u201C{name}\u201D",{name:M.label}),disabled:O,onClick:()=>Fe(M),children:be(Rh,{name:"trash",size:13,strokeWidth:1.7,rounded:!0})})]}):void 0;return be(FT,{icon:be(g$,{size:14}),name:M.label,selected:le,onSelect:()=>e(M.slug),badge:Pa,actions:wr,rowProps:{"data-page-slug":M.slug}},M.id)},Ne=(M,le,Se)=>{let He=Se.filter(Boolean);if(He.length===0)return null;let ze=ve(M);return Os(n$,{children:[be(h$,{count:He.length,countLabel:ho("{n} page","{n} pages",He.length),expanded:ze,onToggle:()=>H(M),children:le}),ze&&He]},M)},go=(a?.rows??[]).filter(M=>U(M.label)).map(M=>{let le=t===M.key;return be(FT,{icon:M.icon,name:M.label,selected:le,onSelect:()=>r(M.key),badge:{label:i("Preview"),tone:"warning"},actions:be(sd,{kind:"plain",label:i("Open the {name} in a new tab",{name:M.label}),onClick:()=>window.open(M.href,"_blank","noopener,noreferrer"),children:be(Rh,{name:"external-link",size:13,strokeWidth:1.7,rounded:!0})}),rowProps:{"data-shop-surface":M.key}},M.key)}),To=l.hasSiteSettings&&!!a,Po=(()=>{if(h===null)return null;let M=[],le=!1;for(let Se of Z){To&&!le&&Se.key.startsWith("system:")&&(M.push(Ne("shop",a.title,go)),le=!0);let He=Se.key===Ju||Se.label===Zu?i(Se.label):Se.label;M.push(Ne(Se.key,He,Se.rows.map(Pe)))}return To&&!le&&M.push(Ne("shop",a.title,go)),M})();return Os("div",{className:"sf-pages",children:[be(c$,{icon:be(y$,{}),title:i("Pages"),context:p,actions:be(d$,{buttonRef:ge,label:Te?i("Add"):i("New page"),hasPopup:Te?"menu":void 0,expanded:Te?qe!==null:void 0,onClick:se,children:be(x$,{size:15})})}),qe&&be(p$,{portal:!0,style:{top:qe.top,right:qe.right},onClose:()=>Ve(null),children:Os("div",{role:"menu","aria-label":i("Add"),children:[be(RT,{role:"menuitem",onClick:()=>{Ve(null),Ue()},children:i("Page")}),be(RT,{role:"menuitem",disabled:O,onClick:()=>{Ve(null),pe()},children:i("Popup")})]})}),be("div",{className:"sf-pages-find",children:be(_T,{type:"search",leftIcon:be(Rh,{name:"search",size:14,rounded:!0}),placeholder:i("Search all pages\u2026"),value:y,onChange:M=>T(M.target.value),"aria-label":i("Search all pages")})}),I&&!v&&be("div",{className:"sf-note sf-note--error",role:"alert",children:I}),Po===null?be("div",{className:"sf-note",children:i("Loading\u2026")}):Po.some(Boolean)?be(m$,{ariaLabel:i("Pages"),className:"sf-scroll",children:Po}):be("div",{className:"sf-note",children:y.trim()?i("No pages match your search"):i("No pages yet. Add one with + above.")}),R&&N&&be(C$,{source:{title:N.label,slug:N.slug},taken:ne,host:k$(),duplicate:M=>R(N,M),onClose:()=>b(null),onDuplicated:M=>{b(null),u(),e(M.slug)}},N.id),be(f$,{open:v,onClose:()=>k(!1),size:"sm",title:i("Add a page"),description:i("Give the new template page a name. It starts blank \u2014 add sections once it opens."),footer:Os(PT,{children:[be(OT,{variant:"secondary",onClick:()=>k(!1),children:i("Cancel")}),be(OT,{onClick:()=>{De()},disabled:O||!A.trim(),loading:O,children:i("Add page")})]}),children:be(u$,{label:i("Page name"),htmlFor:P,hint:A.trim()?i("URL: /{slug}",{slug:LT(A,ne)}):void 0,error:I??void 0,children:be(_T,{id:P,value:A,invalid:!!I,onChange:M=>D(M.target.value),onKeyDown:M=>{M.key==="Enter"&&De()},placeholder:i("e.g. About")})})})]})}import{jsx as WT}from"react/jsx-runtime";import{createContext as P$,useCallback as E$,useContext as O$,useMemo as _$,useState as R$}from"react";import{CanvasChromeContext as A$}from"efficient-easel/easel";import{useSelectHandler as F$}from"efficient-easel/draw/client";import{parseHexColor as T$}from"efficient-shell/format";var ld=["chat-bubble-left-right","chat-bubble-oval-left-ellipsis","chat","megaphone","phone","sparkles"],pn=ld[0];var ra="right";function id(e){return ld.includes(e??"")?e:pn}function HT(e){return e==="left"?"left":ra}function zT(e){return e&&T$(e)===e.toLowerCase()?e.toLowerCase():""}var GT="chat",cd={enabled:!0,title:"",subtitle:"",greeting:"",launcherColor:"",launcherIcon:"",launcherPosition:ra,launcherLabel:"",showOnPhones:!0};function BIe(e){return{enabled:e.enabled,title:e.title,subtitle:e.subtitle,greeting:e.greeting,launcherColor:zT(e.launcherColor),launcherIcon:e.launcherIcon?id(e.launcherIcon):"",launcherPosition:HT(e.launcherPosition),launcherLabel:e.launcherLabel??"",showOnPhones:e.showOnPhones!==!1}}var $T=P$({chat:cd,setChat:()=>{},setSelected:()=>{},setSelectHandler:()=>{}});function DIe({children:e,chat:o=cd,onChatChange:t}){let[r,a]=R$(!1),n=E$(d=>t?.(d),[t]),{select:s,setSelectHandler:l}=F$(),c=_$(()=>({selected:()=>r?GT:null,select:d=>d===GT&&s()}),[r,s]);return WT($T.Provider,{value:{chat:o,setChat:n,setSelected:a,setSelectHandler:l},children:WT(A$.Provider,{value:c,children:e})})}var dd=()=>O$($T);import{jsx as Ah}from"react/jsx-runtime";import{DesktopIcon as L$,PhoneIcon as B$,TabletIcon as D$}from"efficient-easel/icons";import{VIEW_TIERS as N$,VIEW_TIER_LABEL as M$}from"efficient-easel/draw";var H$={desktop:Ah(L$,{}),tablet:Ah(D$,{}),mobile:Ah(B$,{})},UT=N$.map(e=>({id:e,get label(){return i(M$[e])},icon:H$[e]}));import{PreviewDeviceContext as GQ}from"efficient-easel/draw/client";import{jsx as z$}from"react/jsx-runtime";import{createContext as W$,useCallback as jT,useContext as G$,useMemo as $$,useRef as U$}from"react";var j$=Object.fromEntries(ql.map(e=>[e,{value:"",error:null}])),KT=W$({links:db,rows:j$,canSave:!1,saveLink:async()=>({ok:!1,error:"There is no website to save to."}),openPanel:()=>{},setOpenHandler:()=>{}});function KIe({children:e,value:o}){let t=U$(()=>{}),r=jT(()=>t.current(),[]),a=jT(s=>{t.current=s},[]),n=$$(()=>({...o,openPanel:r,setOpenHandler:a}),[o,r,a]);return z$(KT.Provider,{value:n,children:e})}var _s=()=>G$(KT);import{jsx as K$}from"react/jsx-runtime";import{createContext as q$,useContext as V$,useMemo as Y$,useState as X$}from"react";var qT=q$(null);function XIe({children:e}){let[o,t]=X$(null),r=Y$(()=>({surface:o,setSurface:t}),[o]);return K$(qT.Provider,{value:r,children:e})}function VT(){return V$(qT)??{surface:null,setSurface:()=>{}}}import{createPreviewSelectionContext as Z$}from"efficient-easel/draw/client";var Rs="Scrolling Bar",{Provider:QIe,useSelection:YT}=Z$("selectedHeroId"),ege="data-sf-hero-ticker";function oge(e){return`${e}::ticker`}function tge(e){return!e||!e.endsWith("::ticker")?null:e.slice(0,-8)||null}var XT=["","","","","",""],ZT="#ticker",As="strip",Fh={sectionAccent:ar,line:!1};function J$(e){return(Array.isArray(e.tickerItems)?e.tickerItems:[]).map(o=>typeof o?.text=="string"?o.text:"").filter(o=>o.trim()!=="")}function Lh(e){return J$(e).length>0}function nge(e){return e.showTicker!==!1&&Lh(e)}import{createPreviewSelectionContext as Q$}from"efficient-easel/draw/client";var{Provider:ige,useSelection:fd}=Q$("selectedHeroPart");var QT=["one","side","stacked"];var dge={one:"One",side:"Side by side",stacked:"Stacked"};function ud(e){return QT.includes(e)?e:"one"}function JT(e){return e==="one"?1:2}function Bh(e,o){if(QT.includes(e))return e;let t=ud(o);return t==="side"?"stacked":t}function Fs(e){let o=ud(e.mediaLayout);return Math.max(JT(o),JT(Bh(e.mediaLayoutPhone,o)))}var aa=["media","image","image2"],mn={media:"Media",image:"Image",image2:"Image 2"},Ls={media:"heroMedia",image:"heroImage",image2:"heroImage2"};function pd(e,o){return e==="image"&&Fs(o)>1?"Image 1":mn[e]}var mge="Video file",hge="Upload a video file";function eU(e,o){return{field:"mediaType",is:e,default:o}}var oU=new Set(["HeroSingle"]),eP="heroPart";function tU(e,o){return{...o,[eP]:e}}function xge(e,{parts:o={},onlyFor:t,fallback:r,rules:a}){let n={...e};for(let s of["image","video"])for(let l of t[s])n[l]=Je(n[l],eU(s,r));for(let[s,l]of Object.entries(a??{}))l&&(n[s]=Je(n[s],l));for(let s of aa)for(let l of o[s]??[])n[l]=tU(s,n[l]);return n}function rU(e){let o=e?.[eP];return aa.includes(o)?o:null}function oP(e,o){let t={};for(let[r,a]of Object.entries(e))rU(a)===o&&(t[r]=a);return t}function tP(e){if(!oU.has(e.type))return[];let o=[{part:"media",label:mn.media,depth:0}];return(e.props.mediaType??"image")!=="video"&&(o.push({part:"image",label:pd("image",e.props),depth:1}),Fs(e.props)>1&&o.push({part:"image2",label:pd("image2",e.props),depth:1})),o}function Bs(e,o){return`${e}::${o}`}function rP(e){if(!e)return null;let o=e.lastIndexOf("::");if(o<=0)return null;let t=e.slice(o+2);return aa.includes(t)?{nodeId:e.slice(0,o),part:t}:null}var aP="data-sf-hero-part";import{jsx as xe,jsxs as ua,Fragment as HE}from"react/jsx-runtime";import{useState as gq}from"react";import{useEasel as bq,useRootFields as yq}from"efficient-easel/easel";import{Button as Sq,EmptyState as wq}from"efficient-shell/ui";function nP({kind:e,pageName:o}){return{name:o?.trim()||i("This page"),kindLabel:Dr({kind:e})?i("Template"):i("Page")}}import{headWords as $E,InspectorHead as Cq,InspectorIconButton as zE}from"efficient-easel/chrome";import{DuplicateIcon as vq,TrashIcon as kq}from"efficient-easel/icons";import{panelFieldsOf as Tq}from"efficient-easel/screen/lib/document/panel-fields";import{jsx as L,Fragment as ie,jsxs as ue}from"react/jsx-runtime";import{BlockBannerIcon as sU,BlockBoxIcon as lU,BlockButtonIcon as iU,BlockDividerIcon as lP,BlockFooterIcon as iP,BlockHeadingIcon as cU,BlockProductIcon as dU,BlockSocialIcon as fU,BlockTextIcon as uU,CardPaymentIcon as pU,ChatIcon as mU,AccountIcon as hU,GlobeIcon as xU,GridIcon as IU,ImageIcon as Nh,MapIcon as gU,MediaIcon as bU,PageIcon as yU}from"efficient-easel/icons";import{jsx as Dh,Fragment as aU,jsxs as nU}from"react/jsx-runtime";var sP=nU(aU,{children:[Dh("circle",{cx:"9",cy:"20",r:"1.3"}),Dh("circle",{cx:"18",cy:"20",r:"1.3"}),Dh("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 SU={header:ue(ie,{children:[L("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),L("path",{d:"M3 9.5h18"})]}),social:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{children:[L("circle",{cx:"11",cy:"11",r:"6"}),L("path",{d:"M20 20l-4.2-4.2"})]}),CartBlock:sP,CountrySwitchBlock:ue(ie,{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:ue(ie,{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:ue(ie,{children:[L("path",{d:"M3 9h18"}),L("path",{d:"M3 14h8M14 14h2M18 14h3"})]}),Hero:ue(ie,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M7 13.5h7M7 16.5h10"})]}),HeroSlide:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{children:[L("rect",{x:"6",y:"4",width:"12",height:"16",rx:"2"}),L("path",{d:"M9 15h6M9 17.5h4"})]}),AlloyWheelsListing:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{children:[L("path",{d:"M3.5 20h17"}),L("path",{d:"M6 20v-7M11 20V7M16 20v-5M20.5 20v-9"})]}),Logos:ue(ie,{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:ue(ie,{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:ue(ie,{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:ue(ie,{children:[L("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),L("path",{d:"M3 13.5h18M7 16.8h6"})]}),Split:ue(ie,{children:[L("rect",{x:"3",y:"5",width:"8",height:"14",rx:"1.5"}),L("path",{d:"M14 8.5h6M14 12h6M14 15.5h4"})]}),Eyebrow:ue(ie,{children:[L("path",{d:"M4 8.5h4.5M11 8.5h9"}),L("path",{d:"M4 14.5h16"})]}),HeroGroup:ue(ie,{children:[L("rect",{x:"3.5",y:"4.5",width:"17",height:"15",rx:"2"}),L("path",{d:"M7 9h8M7 12.5h10M7 16h6"})]}),Form:ue(ie,{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(ie,{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:ue(ie,{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:ue(ie,{children:[L("rect",{x:"3",y:"4",width:"5",height:"5",rx:"1"}),L("rect",{x:"9.5",y:"4",width:"5",height:"5",rx:"1"}),L("rect",{x:"16",y:"4",width:"5",height:"5",rx:"1"}),L("path",{d:"M4 13.5h11M4 17.5h7"}),L("path",{d:"M17 15l3 2-3 2"})]}),Contents:ue(ie,{children:[L("path",{d:"M4 7h2M4 12h2M4 17h2"}),L("path",{d:"M9 7h11M9 12h9M9 17h10"})]}),CustomHTML:L("path",{d:"M9 8l-4 4 4 4M15 8l4 4-4 4"})},wU=L("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2.5"}),CU={footer:iP,Footer:iP,Divider:lP,FooterDivider:lP,Banner:sU,Flex:lU,FooterSocial:fU,FooterPayment:pU,page:yU,website:xU,AccountBlock:hU,chat:mU,Heading:cU,Text:uU,ImageBlock:Nh,ButtonBlock:iU,LocationMap:gU,Grid:IU,ProductRef:dU,heroMedia:bU,heroImage:Nh,heroImage2:Nh},vU={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial",PaymentLogosBlock:"FooterPayment",SiteHeader:"header",SiteFooter:"footer"};function na({type:e,size:o=16,className:t}){let r=vU[e]??e,a=CU[r];return a?L(a,{size:o,className:t}):L("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round",className:t,"aria-hidden":"true",children:SU[r]??wU})}import{PanelHideButton as WE}from"efficient-easel/screen/components/SidePanelHead";import{useEaselSession as Pq}from"efficient-easel/screen/lib/session-context";import{jsx as we,jsxs as Ds,Fragment as kU}from"react/jsx-runtime";import{useEffect as TU,useId as cP,useState as PU}from"react";import{IconPicker as EU}from"efficient-shell/ui";import{SettingsDefaultReset as OU,SettingsField as Ns,SettingsSegmented as _U,SettingsSwitch as dP}from"efficient-easel/panel";import{ButtonIcon as RU,ButtonIconIcon as AU,EyeIcon as FU,PhoneIcon as LU,PlacementIcon as BU,TypeIcon as DU}from"efficient-easel/icons";var NU="Chat with us",MU="We usually reply within a few minutes",HU="Hi! Ask us anything \u2014 about a wheel, an order, or fitment. Leave your details and we\u2019ll reply.";function md({label:e,value:o,placeholder:t,onCommit:r,multiline:a=!1,hint:n}){let[s,l]=PU(o);TU(()=>l(o),[o]);let c=()=>{s!==o&&r(s)};return we(Ns,{label:e,icon:we(DU,{}),changed:o!=="",action:we(Ms,{label:e,changed:o!=="",onReset:()=>r("")}),hint:n,children:a?we("textarea",{value:s,placeholder:t,rows:3,onChange:d=>l(d.target.value),onBlur:c,"aria-label":e}):we("input",{type:"text",value:s,placeholder:t,onChange:d=>l(d.target.value),onBlur:c,onKeyDown:d=>{d.key==="Enter"&&d.currentTarget.blur()},"aria-label":e,autoComplete:"off"})})}function Ms({label:e,changed:o,onReset:t}){return we(OU,{words:ee()?.panel,label:e,changed:o,onReset:t})}function zU({label:e,icon:o,checked:t,fallback:r,onChange:a,hint:n}){let s=cP();return we(Ns,{label:e,labelId:s,icon:o,changed:t!==r,action:Ds("span",{className:"inline-flex items-center gap-2",children:[we(dP,{checked:t,onChange:a,ariaLabelledBy:s}),we(Ms,{label:e,changed:t!==r,onReset:()=>a(r)})]}),hint:n})}var WU=ld.map(e=>({value:e,icon:mi(e)}));function GU(){let{theme:e}=de(),o=lo(e).themes[0];return Hn(o)??o?.accent??""}function fP(){let{chat:e,setChat:o}=dd(),t=cP(),r=GU(),a=e.launcherIcon?id(e.launcherIcon):pn;return Ds(kU,{children:[we(Ns,{label:i("Show the chat bubble"),labelId:t,icon:we(FU,{}),changed:!e.enabled,action:Ds("span",{className:"inline-flex items-center gap-2",children:[we(dP,{checked:e.enabled,onChange:n=>o({enabled:n}),ariaLabelledBy:t}),we(Ms,{label:i("Show the chat bubble"),changed:!e.enabled,onReset:()=>o({enabled:!0})})]}),hint:e.enabled?i("The floating chat bubble shows in the corner of every page."):i("The chat bubble is hidden across the whole site.")}),Ds(pm,{title:i("Look"),children:[we(Bo,{label:i("Button color"),icon:we(RU,{}),changed:e.launcherColor!=="",value:e.launcherColor,inherited:r,caption:e.launcherColor?void 0:i("Site button color"),onChange:n=>o({launcherColor:n}),onReset:()=>o({launcherColor:""})}),we(Ns,{label:i("Icon"),icon:we(AU,{}),changed:a!==pn,action:we(Ms,{label:i("Icon"),changed:a!==pn,onReset:()=>o({launcherIcon:""})}),children:we(EU,{label:i("Icon"),value:a,options:WU,onChange:n=>o({launcherIcon:n===pn?"":n})})}),we(Ns,{label:i("Position"),icon:we(BU,{}),changed:e.launcherPosition!==ra,action:we(Ms,{label:i("Position"),changed:e.launcherPosition!==ra,onReset:()=>o({launcherPosition:ra})}),children:we(_U,{options:[{label:i("Right"),id:"right"},{label:i("Left"),id:"left"}],value:e.launcherPosition,ariaLabel:i("Position"),onChange:n=>o({launcherPosition:n})})}),we(md,{label:i("Label"),value:e.launcherLabel,placeholder:i("Icon only"),onCommit:n=>o({launcherLabel:n}),hint:i("Shows when a visitor points at the button")}),we(zU,{label:i("Show on phones"),icon:we(LU,{}),checked:e.showOnPhones,fallback:cd.showOnPhones,onChange:n=>o({showOnPhones:n})})]}),Ds(pm,{title:i("Wording"),children:[we(md,{label:i("Title"),value:e.title,placeholder:NU,onCommit:n=>o({title:n})}),we(md,{label:i("Subtitle"),value:e.subtitle,placeholder:MU,onCommit:n=>o({subtitle:n})}),we(md,{label:i("Greeting message"),value:e.greeting,placeholder:HU,onCommit:n=>o({greeting:n}),multiline:!0}),we("p",{className:"es-field-hint sf-hint-keep",children:i("Leave a field blank to use the built-in wording.")})]})]})}import{jsx as sa,Fragment as nx,jsxs as xP}from"react/jsx-runtime";import{useEffect as gj,useId as mP,useState as hP}from"react";import{SettingsField as bj}from"efficient-easel/panel";import{jsx as cj}from"react/jsx-runtime";import{forwardRef as $U,createElement as Mh}from"react";var uP={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 Q=(e,o,t,r)=>{let a=$U(({color:n="currentColor",size:s=24,stroke:l=2,title:c,className:d,children:p,...h},u)=>Mh("svg",{ref:u,...uP[e],width:s,height:s,className:["tabler-icon",`tabler-icon-${o}`,d].filter(Boolean).join(" "),...e==="filled"?{fill:n}:{strokeWidth:l,stroke:n},...h},[c&&Mh("title",{key:"svg-title"},c),...r.map(([x,g])=>Mh(x,g)),...Array.isArray(p)?p:[p]]));return a.displayName=`${t}`,a};var UU=[["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"}]],Hh=Q("outline","brand-facebook","BrandFacebook",UU);var jU=[["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"}]],zh=Q("outline","brand-instagram","BrandInstagram",jU);var KU=[["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"}]],Wh=Q("outline","brand-line","BrandLine",KU);var qU=[["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"}]],Gh=Q("outline","brand-linkedin","BrandLinkedin",qU);var VU=[["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"}]],$h=Q("outline","brand-pinterest","BrandPinterest",VU);var YU=[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]],Uh=Q("outline","brand-telegram","BrandTelegram",YU);var XU=[["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"}]],jh=Q("outline","brand-tiktok","BrandTiktok",XU);var ZU=[["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"}]],Kh=Q("outline","brand-wechat","BrandWechat",ZU);var JU=[["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"}]],qh=Q("outline","brand-whatsapp","BrandWhatsapp",JU);var QU=[["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"}]],Vh=Q("outline","brand-x","BrandX",QU);var ej=[["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"}]],Yh=Q("outline","brand-youtube","BrandYoutube",ej);var oj=[["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"}]],Xh=Q("filled","brand-facebook-filled","BrandFacebookFilled",oj);var tj=[["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"}]],Zh=Q("filled","brand-instagram-filled","BrandInstagramFilled",tj);var rj=[["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"}]],Jh=Q("filled","brand-linkedin-filled","BrandLinkedinFilled",rj);var aj=[["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"}]],Qh=Q("filled","brand-pinterest-filled","BrandPinterestFilled",aj);var nj=[["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"}]],ex=Q("filled","brand-tiktok-filled","BrandTiktokFilled",nj);var sj=[["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"}]],ox=Q("filled","brand-whatsapp-filled","BrandWhatsappFilled",sj);var lj=[["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"}]],tx=Q("filled","brand-x-filled","BrandXFilled",lj);var ij=[["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"}]],rx=Q("filled","brand-youtube-filled","BrandYoutubeFilled",ij);var Jbe="outline",hd={fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},dj={},ax={fillRule:"evenodd"},fj=[["path",{...hd,d:"M21 4L3 11L7 13L9 19L12 15L17 20z"}],["path",{...ax,d:"M21 4L3 11L7 13L9 19L12 15L17 20zM15.212 8.939 10.576 13.576 11.424 14.424 16.061 9.788z"}]],uj=[["path",{...hd,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",{...dj,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("")}]],pj=[["path",{...hd,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",{...hd,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",{...ax,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",{...ax,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("")}]],mj=Q("filled","brand-telegram-filled","BrandTelegramFilled",fj),hj=Q("filled","brand-line-filled","BrandLineFilled",uj),xj=Q("filled","brand-wechat-filled","BrandWechatFilled",pj),Ij={instagram:{outline:zh,solid:Zh},facebook:{outline:Hh,solid:Xh},tiktok:{outline:jh,solid:ex},youtube:{outline:Yh,solid:rx},x:{outline:Vh,solid:tx},linkedin:{outline:Gh,solid:Jh},pinterest:{outline:$h,solid:Qh},whatsapp:{outline:qh,solid:ox},telegram:{outline:Uh,solid:mj},line:{outline:Wh,solid:hj},wechat:{outline:Kh,solid:xj}};function pP({platform:e,iconStyle:o,size:t}){let r=Ij[e][o];return cj(r,{size:t,stroke:1.75,"aria-hidden":"true",focusable:"false"})}var yj={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 Sj({platform:e}){let{rows:o,saveLink:t}=_s(),{value:r,error:a}=o[e],[n,s]=hP(r),[l,c]=hP(!1),d=mP(),p=mP();gj(()=>s(r),[r]);let h=async()=>{if(n.trim()===r){n!==r&&s(r);return}c(!0),await t(e,n),c(!1)},u=cb[e];return xP(nx,{children:[sa(bj,{label:i(u),htmlFor:d,icon:sa(pP,{platform:e,iconStyle:"outline",size:18}),children:sa("input",{id:d,type:"text",inputMode:"url",value:n,placeholder:yj[e],onChange:x=>s(x.target.value),onBlur:()=>{h()},onKeyDown:x=>{x.key==="Enter"&&x.currentTarget.blur(),x.key==="Escape"&&(s(r),x.currentTarget.blur())},"aria-invalid":a?!0:void 0,"aria-describedby":a?p:void 0,"aria-busy":l||void 0,autoComplete:"off",spellCheck:!1})}),a&&sa("p",{id:p,className:"sf-note sf-note--error",role:"alert",children:a})]})}function IP({unavailable:e}){let{canSave:o}=_s();return!o&&e?sa(nx,{children:e}):xP(nx,{children:[sa("p",{className:"es-field-hint sf-hint-keep",children:i("Paste a link to each profile. A platform left empty shows nothing on the site.")}),ql.map(t=>sa(Sj,{platform:t},t))]})}import{jsx as ca,Fragment as hK,jsxs as xK}from"react/jsx-runtime";import{useId as IK,useMemo as gK}from"react";import{useEasel as bK}from"efficient-easel/easel";import{SettingsField as yK,SettingsSwitch as SK}from"efficient-easel/panel";import{EyeIcon as wK}from"efficient-easel/icons";import{fieldShownInView as CK}from"efficient-easel/fields";import{usePreviewDevice as vK}from"efficient-easel/draw/client";import{jsx as ia,Fragment as C8,jsxs as v8}from"react/jsx-runtime";import{createContext as k8,useContext as T8,useLayoutEffect as JP,useMemo as Td,useRef as QP,useState as xx}from"react";import{useEasel as e0,useSelectedFields as P8}from"efficient-easel/easel";import{fieldShownInView as E8,Inspector as O8,planFields as Ix}from"efficient-easel/fields";function gP({allTabs:e,remembered:o,inherited:t,buckets:r,hasText:a}){return o&&(e||r.includes(o))?o:t&&r.includes(t)?t:a?"Design":r[0]??"Design"}import{group as c8}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as d8,deviceMetaOf as HP}from"efficient-easel/screen/lib/document/device-fields";import{jsx as J,jsxs as Ht}from"react/jsx-runtime";import{phoneKey as mr}from"efficient-easel/draw";import{SettingsDefaultReset as Aj,SettingsField as RP}from"efficient-easel/panel";import{AnimationIcon as AP,ClockIcon as Fj,DirectionDownIcon as Lj,DirectionIcon as Bj,DirectionLeftIcon as Dj,DirectionRightIcon as Nj,DirectionUpIcon as Mj,DurationIcon as Hj}from"efficient-easel/icons";import{deviceField as gn}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as zj,noControlField as Wj}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{describedAs as FP,group as Gj,onDesktopWords as $j,phoneTwinFields as Uj}from"efficient-easel/screen/lib/document/box-fields";import{ENTRANCE_FROM as jj,ENTRANCE_FROM_DEFAULT as LP,ENTRANCE_KINDS as Cd,ENTRANCE_KINDS_WITH_FROM as EP,MOTION_TIMING as Kj,entranceAttrs as qj,playEntrance as Vj,readEntrance as Yj}from"efficient-shell/format";import{IconPicker as Xj}from"efficient-shell/ui";import{jsx as cx}from"react/jsx-runtime";import{ClockIcon as kj,DurationIcon as Tj}from"efficient-easel/icons";import{MOTION_TIMING as kP}from"efficient-shell/format";import{useSelectedHost as Pj}from"efficient-easel/easel";import{MOTION_EASING as wj,MOTION_TIMING as bP,motionSeconds as yP}from"efficient-shell/format";var sx="none",lx=[{label:"None",value:"none"},{label:"Scroll",value:"scroll"}];function fye(e){return to(lx,sx,e)}var xd={field:"loop",is:"scroll"},Hs="left",ix=[{label:"Left",value:"left",cell:"left"},{label:"Right",value:"right",cell:"right"},{label:"Up",value:"up",cell:"top"},{label:"Down",value:"down",cell:"bottom"}],Cj={left:"storefront-ticker",right:"storefront-ticker-right",up:"storefront-ticker-up",down:"storefront-ticker-down"};function SP(e){return to(ix,Hs,e)}function wP(e){return e==="up"||e==="down"}function CP(e){return yP("loop","duration",e.loopDuration!=null?e.loopDuration:e.speed)}var uye=bP.loop.duration.default,vj=bP.loop.delay.default;function vP(e){return yP("loop","delay",e.loopDelay)}function pye(e,o,t=vj){return`${Cj[e]} ${o}s ${wj.loop}${t?` ${t}s`:""} infinite`}function hn(e){let{min:o,max:t,step:r,default:a}=kP[e].duration;return yo("Duration",cx(Tj,{}),o,t,r,a,"s")}function xn(e){let{min:o,max:t,step:r,default:a}=kP[e].delay;return yo("Delay",cx(kj,{}),o,t,r,a,"s")}function In(e,o){let t=e.render,r=a=>{let n=Pj();return t({...a,value:o(a.value,n?.values)})};return{...e,render:a=>cx(r,{...a})}}function Id({readsSpeed:e}){return In(hn("loop"),(o,t)=>CP({loopDuration:o,speed:e?t?.speed:void 0}))}function gd(){return In(xn("loop"),e=>vP({loopDelay:e}))}import{phoneKey as Ej}from"efficient-easel/draw";import{readEntrance as Oj}from"efficient-shell/format";var yd="sf-entrance",Ee={kind:"entrance",from:"entranceFrom",duration:"entranceDuration",delay:"entranceDelay"},Sd="sectionAnimation",TP=e=>e!=null&&e!=="";function _j(e,o){let t=e[Ee[o]];return o==="kind"&&!TP(t)?e[Sd]:t}function bd(e,o,t){if(t==="phone"){let r=e[Ej(Ee[o])];if(TP(r))return r}return _j(e,o)}function zs(e,o){return Oj(bd(e,"kind",o),bd(e,"from",o),bd(e,"duration",o),bd(e,"delay",o))}function wd(e){let o=zs(e,"desktop"),t=zs(e,"phone");return o.kind==="none"&&t.kind==="none"?null:{desktop:o,phone:t}}var Rj={...Object.fromEntries([...tw].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)"},kye=new Set(Object.keys(Rj));var PP="_gEntrance";var Ws={none:"None",fade:"Fade",rise:"Rise",scale:"Scale",glide:"Glide",bounce:"Bounce",flip:"Flip",reveal:"Reveal",spin:"Spin"},Zj={top:"Top",bottom:"Bottom",left:"Left",right:"Right"},Jj={top:()=>J(Lj,{}),bottom:()=>J(Mj,{}),left:()=>J(Nj,{}),right:()=>J(Dj,{})},ux="Entrance",OP=Cd.filter(e=>e!=="none"),dx=e=>({any:[{field:Ee.kind,in:e},{all:[{field:Ee.kind,set:!1},{field:Sd,in:e}]}]}),_P=e=>({any:[{field:mr(Ee.kind),in:e},{all:[{field:mr(Ee.kind),set:!1},dx(e)]}]}),Qj=[[[Ee.from],dx(EP)],[[mr(Ee.from)],_P(EP)],[[Ee.duration,Ee.delay],dx(OP)],[[mr(Ee.duration),mr(Ee.delay)],_P(OP)]],Mt=({children:e})=>J("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}),at=({x:e=12,y:o=12,o:t=1})=>J("rect",{x:e,y:o,width:"16",height:"16",rx:"2",opacity:t}),e8={none:J(Mt,{children:J(at,{})}),fade:Ht(Mt,{children:[J(at,{x:6,o:.3}),J(at,{x:18})]}),rise:Ht(Mt,{children:[J(at,{y:20,o:.3}),J(at,{y:8}),J("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),scale:Ht(Mt,{children:[J("rect",{x:"16",y:"16",width:"8",height:"8",rx:"1",opacity:".35"}),J(at,{}),J("path",{d:"M6 6l4 4M34 34l-4-4"})]}),glide:Ht(Mt,{children:[J(at,{x:2,o:.3}),J(at,{x:20}),J("path",{d:"M4 33h12m-2-2 2 2-2 2"})]}),bounce:Ht(Mt,{children:[J(at,{y:6}),J("path",{d:"M8 34c3-6 5-6 8 0s5 6 8 0 5-6 8 0"})]}),flip:Ht(Mt,{children:[J("path",{d:"M12 12l16 4v8l-16 4z",opacity:".35"}),J(at,{}),J("path",{d:"M20 4v32",strokeDasharray:"2 2"})]}),reveal:Ht(Mt,{children:[J("rect",{x:"12",y:"12",width:"16",height:"16",rx:"2",strokeDasharray:"2 2",opacity:".5"}),J("path",{d:"M12 22h16v4a2 2 0 0 1-2 2H14a2 2 0 0 1-2-2z",fill:"currentColor",opacity:".35"}),J("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),spin:Ht(Mt,{children:[J(at,{}),J("path",{d:"M33 14a14 14 0 0 1 0 12m0 0-3-1m3 1 1-3"})]})};function o8({kind:e}){let{attrs:o}=qj(Yj(e,LP));return Ht("span",{className:"sf-entrance-pic",children:[J("span",{className:"sf-entrance-stage",children:J("i",{...o,children:e8[e]})}),J("span",{className:"sf-entrance-cap",children:i(Ws[e])})]})}var t8=(e,o)=>{let t=o.querySelector(".sf-entrance-stage > i");t&&Vj(t)},r8={width:"3.5rem",height:"4.25rem"};function BP({value:e,onChange:o}){return J(Xj,{label:i(ux),value:e,emptyValue:"none",columns:3,cell:r8,onChange:o,onPreview:t8,tooltips:!1,options:Cd.map(t=>({value:t,label:i(Ws[t]),icon:J(o8,{kind:t})}))})}var fx="Effect",DP=e=>e==="none"?void 0:i(Ws[e]);function a8({value:e,onChange:o}){let t=Lt(),r=zs({...t,[Ee.kind]:e},"desktop").kind;return J(RP,{label:i(fx),icon:J(AP,{}),value:DP(r),children:J(BP,{value:r,onChange:o})})}function n8({value:e,onChange:o}){let t=Lt(),r=typeof e=="string"&&Cd.includes(e),a=zs(t,"desktop").kind;return J(RP,{label:i(fx),icon:J(AP,{}),value:DP(r?e:a),changed:r,action:J(Aj,{words:ee()?.panel,label:i(fx),changed:r,detail:$j(n=>i(n),i(Ws[a])),onReset:()=>o(void 0)}),children:J(BP,{value:r?e:a,onChange:o})})}var NP={type:"select",label:ux,options:Cd.map(e=>({value:e,label:Ws[e]}))},s8=()=>FP({type:"custom",render:({value:e,onChange:o})=>J(a8,{value:e,onChange:o})},NP),l8=()=>FP({type:"custom",render:({value:e,onChange:o})=>J(n8,{value:e,onChange:o})},NP),i8=jj.map(e=>({label:Zj[e],value:e,picture:Jj[e]()}));function nt(){let{duration:e,delay:o}=Kj.entrance,t={[PP]:Gj(ux),[Ee.kind]:gn("desktop",s8()),[Sd]:Wj({type:"custom",render:()=>J(zj,{})},"always"),[mr(Ee.kind)]:gn("mobile",l8()),...Uj(Ee.from,qa("From",J(Bj,{}),i8,LP)),[Ee.duration]:gn("desktop",hn("entrance")),[mr(Ee.duration)]:gn("mobile",pc({label:"Duration",desktopKey:Ee.duration,icon:J(Hj,{}),min:e.min,max:e.max,step:e.step,fallback:e.default,unit:"s"})),[Ee.delay]:gn("desktop",xn("entrance")),[mr(Ee.delay)]:gn("mobile",pc({label:"Delay",desktopKey:Ee.delay,icon:J(Fj,{}),min:o.min,max:o.max,step:o.step,fallback:o.default,unit:"s"}))};return tp(t,Qj)}import{DESIGN_GROUPS as mx,SETTINGS_BUCKETS as f8}from"efficient-easel/panel";import{BUCKET_KEY as _o,DESIGN_GROUP_KEY as Gs}from"efficient-easel/screen/lib/document/field-buckets";var $s=f8;var u8="Editor only \u2014 not shown live",hx={"Archive link":"Content",Article:"Content",Blocks:"Content","Blog posts":"Content","Browser mock":"Content",Button:"Content","Call to action":"Content","Car prompt":"Content","Card link":"Content",Cards:"Content","Claims bars":"Content","Contact info":"Content",Content:"Content",Display:"Content","Content source":"Content",Contents:"Content",Filters:"Content","Show on a card":"Content",Footnote:"Content",Form:"Content",Founders:"Content","Gallery A":"Content","Gallery B":"Content","Gallery link":"Content",Header:"Content","Header link":"Content","Image caption":"Content","In this issue":"Content",Items:"Content","Kanban columns":"Content",Lead:"Content","Left panel":"Content",Link:"Content",Links:"Content",List:"Content","Message form":"Content",Metadata:"Content",Milestones:"Content","Mockup card":"Content","Newsletter panel":"Content",Offices:"Content",Options:"Content","Others gallery":"Content","Overlay button":"Content",Product:"Content","Product page":"Content",Products:"Content","Pull quote":"Content",Questions:"Content","Recent issues":"Content","Recent posts":"Content",Reviews:"Content","Right panel \xB7 actions":"Content","Right panel \xB7 choices":"Content","Right panel \xB7 form":"Content","Routing groups":"Content",Rows:"Content",Search:"Content",Section:"Content","Section header":"Content",Sections:"Content","Signup form":"Content",Source:"Content","Source product":"Content","Stat & note":"Content",Stats:"Content","Submit button":"Content","Success state":"Content",Wheel:"Content",Terminal:"Content",Text:"Content","Text column":"Content","Timeline entries":"Content","Top row":"Content",Total:"Content","Trailing note":"Content","\u201COther\u201D reason":"Content","Background images":"Design",Gallery:"Content",Image:"Content","Image column":"Content",Images:"Content",Logo:"Content",Map:"Content",Media:"Content","Background image":"Design",Color:"Design","Image tint":"Design",Style:"Design",Shape:"Design",Shadow:"Design",Texture:"Design",Overlay:"Design","Text style":"Design",Entrance:"Animation",Hover:"Animation",Anchor:"Anchor",Arrangement:"Layout","Auto-slide":"Layout",Bar:"Layout","Cell width":"Size",Behavior:"Layout",Schedule:"Layout",Controls:"Layout",Diagram:"Layout",[u8]:"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"},zP={"AlloyWheelsListing._gCards":"Design","ProductGrid._gCards":"Design"},WP={"Text._gSpacing":"Size","Heading._gSpacing":"Size"};function px(e,o,t){let r=`${e}.${o}`;return WP[r]??zP[r]??hx[t]}function GP(e){return e==="Animation"?[_o.Animation]:[_o.Design,Gs[e]]}function vd(...e){let o=[];for(let t of e)for(let r of Object.values(t)){let a=HP(r),n=Ft(a?a.inner:r),s=n?hx[n.label]:void 0;if(s)for(let l of GP(s))o.includes(l)||o.push(l)}return o}var Qye=[...vd(oc({tablet:!0}),mc("full"),hc(),xc(),xm()),...Object.keys(oc({tablet:!0})),...Object.keys(mc("full")),...Object.keys(hc()),...Object.keys(xc()),...Object.keys(xm())],eSe=[...vd(dc()),...Object.keys(dc())],oSe=[...vd(uc()),...Object.keys(uc())],tSe=[...vd(nt()),...Object.keys(nt())],p8=Object.keys(hv()),m8=new Set(["cardImage","imageBackground"]),rSe=[...GP(px("ProductGrid","_gCards","Cards")??"Design"),...p8.filter(e=>e.startsWith("_g")||m8.has(e))],aSe=Object.keys(xv()),nSe=Object.keys(Iv()),h8={"ImageBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","ButtonBlock._gStyle":"duplicated the Style bucket header above it (2026-09-04)","HeroGroup._gContent":"duplicated the Content bucket header above it (2026-09-04)","HeroGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","Footer._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterLogo._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterLogo._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterMenu._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterMenu._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterGroup._gLayout":"duplicated the Layout bucket header above it (2026-09-04)","FooterText._gContent":"duplicated the Content bucket header above it (2026-09-04)","FooterText._gStyle":"duplicated the Style bucket header above it (2026-09-04)","FooterSocial._gStyle":"duplicated the Style bucket header above it (born tabbed, 2026-09-17)","FooterSocial._gLayout":"duplicated the Layout bucket header above it (born tabbed, 2026-09-17)","MenuBlock._gContent":"duplicated the Content bucket header above it (born tabbed, H.1)","MenuBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","SocialLogosBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.1)","SocialLogosBlock._gLayout":"duplicated the Layout bucket header above it (born tabbed, H.1)","SearchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CartBlock._gStyle":"duplicated the Style bucket header above it (born tabbed, H.2)","CountrySwitchBlock._gStyle":"duplicated the Style bucket header above it (born tabbed with its Show as, 2026-10-17)","Split._gContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gVehicleContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gWheelContent":"duplicated the Content bucket header above it (2026-09-04)","Gallery._gOthersContent":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gHeadCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gLeftCopy":"duplicated the Content bucket header above it (2026-09-04)","Subscribe._gRightCopy":"duplicated the Content bucket header above it (2026-09-04)","CollectionCard._gContent":"duplicated the Content bucket header above it (A Card Sets Its Own Corners)","HeroSlide._gContent":"duplicated the Content bucket header above it (Hero Slide Tabs And Theme)","KeyFeatures._gContent":"duplicated the Content bucket header above it (66049)","KeyFeatures._gStyle":"duplicated the Style bucket header above it (66049)","ParagraphsA._gContent":"duplicated the Content bucket header above it (66049)","ParagraphsA._gStyle":"duplicated the Style bucket header above it (66049)","Chart._gContent":"duplicated the Content bucket header above it (66049)","Chart._gStyle":"duplicated the Style bucket header above it (66049)","Logos._gContent":"duplicated the Content bucket header above it (66049)","Logos._gStyle":"duplicated the Style bucket header above it (66049)","Mockup._gContent":"duplicated the Content bucket header above it (66049)","Mockup._gStyle":"duplicated the Style bucket header above it (66049)","Stats._gContent":"duplicated the Content bucket header above it (66049)","Stats._gStyle":"duplicated the Style bucket header above it (66049)","StatsParagraph._gContent":"duplicated the Content bucket header above it (66049)","StatsParagraph._gStyle":"duplicated the Style bucket header above it (66049)","Testimonials._gContent":"duplicated the Content bucket header above it (66049)","Testimonials._gStyle":"duplicated the Style bucket header above it (66049)","AppointmentBooking._gContent":"duplicated the Content bucket header above it (66050)","BookingBox._gContent":"duplicated the Content bucket header above it ([SPLIT] Booking Form Into Three Boxes) \u2014 the same fault its own section retired in 66050, one level down","FAQ._gContent":"duplicated the Content bucket header above it (66050, family sweep)","FAQ._gLayout":"duplicated the Layout bucket header above it (66050, family sweep)","Form._gContent":"duplicated the Content bucket header above it (66050)","ReviewForm._gContent":"duplicated the Content bucket header above it (66050)","SubmitBuild._gContent":"duplicated the Content bucket header above it (66050)","SubmitBox._gContent":"duplicated the Content bucket header above it ([SPLIT] SubmitBuild Keeps Its Two Columns) \u2014 the same fault its own section retired in 66050, one level down","CheckoutCTA._gContent":"duplicated the Content bucket header above it (66051)","CheckoutCTA._gLayout":"duplicated the Layout bucket header above it (66051)","DeliveryOptions._gContent":"duplicated the Content bucket header above it (66051)","DeliveryOptions._gLayout":"duplicated the Layout bucket header above it (66051)","OrderSummary._gContent":"duplicated the Content bucket header above it (66051)","OrderSummary._gLayout":"duplicated the Layout bucket header above it (66051)","PaymentBadges._gContent":"duplicated the Content bucket header above it (66051)","PaymentBadges._gLayout":"duplicated the Layout bucket header above it (66051)","Collections._gContent":"duplicated the Content bucket header above it (66052)","Collections._gLayout":"duplicated the Layout bucket header above it (66052)","DocMasthead._gContent":"duplicated the Content bucket header above it (66053)","Events._gContent":"duplicated the Content bucket header above it (66054)","Events._gLayout":"duplicated the Layout bucket header above it (66054)","FeaturedCover._gContent":"duplicated the Content bucket header above it (66054)","Series._gStyle":"duplicated the Style bucket header above it (66054)","Flex._gContent":"duplicated the Content bucket header above it (66055)","Flex._gLayout":"duplicated the Layout bucket header above it (66055)","SectionHeader._gContent":"duplicated the Content bucket header above it (66055)","Breadcrumb._gContent":"duplicated the Content bucket header above it (66056)","CategoryBar._gStyle":"duplicated the Style bucket header above it (66056)","Hero._gContent":"duplicated the Content bucket header above it (66056)","Hero._gStyle":"duplicated the Style bucket header above it (66056)","HeroSingle._gStyle":"duplicated the Style bucket header above it (66056)","IntroBleed._gContent":"duplicated the Content bucket header above it (66056)","IntroBleed._gLayout":"duplicated the Layout bucket header above it (66056)","BundleOffer._gLayout":"duplicated the Layout bucket header above it (66059)","ProcessSteps._gContent":"duplicated the Content bucket header above it (66059)","Banner._gContent":"duplicated the Content bucket header above it (66060.1)","Banner._gLayout":"duplicated the Layout bucket header above it, and governed no controls (66060.1)","Manifesto._gContent":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gHeadCopy":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gLeftCopy":"duplicated the Content bucket header above it (66060.1)","SubscribeBlogs._gRightCopy":"duplicated the Content bucket header above it (66060.1)","Ticker._gContent":"duplicated the Content bucket header above it (66060.1)","Ticker._gStyle":"duplicated the Style bucket header above it (66060.1)","Timeline._gContent":"duplicated the Content bucket header above it (66060.1)","TitleWithButtons._gContent":"duplicated the Content bucket header above it (66060.1)","TitleWithButtons._gStyle":"duplicated the Style bucket header above it (66060.1)","Cards._gContent":"duplicated the Content bucket header above it (66218)","Cards._gStyle":"duplicated the Style bucket header above it (66218)","Prose._gContent":"duplicated the Content bucket header above it (66218)","Reviews._gContent":"duplicated the Content bucket header above it (66218)","Reviews._gStyle":"duplicated the Style bucket header above it (66218)"},$P={Content:["Content"],Size:["Size"],Design:["Design","Style"],Layout:["Layout"],Position:["Position"],Anchor:["Anchor"],Animation:["Animation"]},UP={_gAnchor:"repeated the Anchor group heading above it (two tabs, 11.0.0)"};{let e={...oc({tablet:!0}),...mc("full"),...hc(),...xc(),...dc(),...uc(),...nt()};for(let o of Object.keys(UP)){let t=Ft(e[o]),r=t?hx[t.label]:void 0;if(!t||t.level!==2||!r||!$P[r].includes(t.label))throw new Error(`INJECTED_RETIRED (lib/document/field-groups.ts) lists "${o}", but no uniform builder makes a level-2 heading by that key whose label repeats its place's word. The heading was renamed, moved or removed and the row is stale \u2014 a list that quietly matches nothing is worse than no list.`)}}var x8=new Set(["_sContent","_sStyle","_sLayout","_sMedia"]),I8=new Map([[_o.Design,"Content"],[_o.Animation,"Animation"],...mx.map(e=>[Gs[e],e])]);function jP(e){let o=new Set([...Object.values(_o),Gs.Content]);for(let[t,r]of Object.entries(e))if(!o.has(t)&&Ft(r)?.level===1)return 1;return 2}function g8(e){let o=`${e}.`;return Object.keys(h8).filter(t=>t.startsWith(o)).map(t=>t.slice(o.length))}function b8(e,o){let t=HP(e),r=c8(o);return t?d8(t.tier,r):r}function y8(e,o){let t=Ft(o);return t?e==="Content"||e==="Animation"?rv(o,t.label):av(o):o}function MP(e){return e==="Design"?mx:["Animation"]}function KP(e,o){let t=[],r=new Set(g8(o)),a=new Set,n=!1,s=null;for(let[u,x]of Object.entries(e)){let g=Ft(x);if(x8.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 y=I8.get(u);if(y!==void 0){if(g?.level!==1)throw new Error(`${o}.${u}: that key is reserved for the ${y} heading of the settings panel, but this field is ${g?`a level-${g.level} "${g.label}" header`:"not a header"}, so it cannot serve as one. Rename the section's own field.`);(u===_o.Design||u===_o.Animation)&&(n=!0),t.push(s={place:y,entries:[],adopted:!0});continue}if(!g){s||t.push(s={place:"Content",entries:[]}),s.entries.push([u,x]);continue}if(r.has(u)||u in UP){let O=px(o,u,g.label);if(g.level!==2||!O||!$P[O].includes(g.label))throw new Error(`${o}.${u}: ${r.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 ${O??"(unclassified)"} place. Only a level-2 header whose label is one of its place's words (PLACE_WORDS) may be retired \u2014 anything else is a heading a merchant reads for its own sake. Fix the row or drop it.`);r.has(u)&&a.add(u),t.push(s={place:O,entries:[]});continue}let T=px(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 ${[...mx,"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?x:b8(x,g.label)]]})}let l=new Set(Object.entries(e).filter(([,u])=>Ft(u)).map(([u])=>u));for(let[u,x]of[["BLOCK_KEY_GROUP",WP],["KEY_GROUP",zP]]){let g=Object.keys(x).filter(y=>y.startsWith(`${o}.`)).filter(y=>!l.has(y.slice(o.length+1)));if(g.length)throw new Error(`${o}: ${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?[]:[...r].filter(u=>!a.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 d=new Set(t.filter(u=>u.entries.length>0).map(u=>u.place)),p=$s.filter(u=>MP(u).some(x=>d.has(x))),h={};for(let u of p){h[_o[u]]=cc(u,u===p[0]?p:null);for(let x of MP(u)){if(!d.has(x))continue;let g=t.filter(T=>T.place===x),y=g.findIndex(T=>T.adopted);y>0&&g.unshift(...g.splice(y,1)),u==="Design"&&(h[Gs[x]]=um(x));for(let T of g)for(let[O,w]of T.entries)h[O]=y8(x,w)}}return h}function sSe(e){return _o.Design in e?e:{[_o.Design]:cc("Design",null),[Gs.Content]:um("Content"),...e}}function lSe(e){return $s.some(o=>_o[o]in e)}function iSe(e){let o=$s.filter(r=>_o[r]in e);if(o.length===0)return e;let t={...e};for(let r of o)t[_o[r]]=cc(r,r===o[0]?o:null);return t}import{jsx as S8}from"react/jsx-runtime";import{EmptyState as w8}from"efficient-shell/ui";function la(){return S8(w8,{variant:"none",icon:!1,message:i("These settings apply to every view.")})}import{usePreviewDevice as _8}from"efficient-easel/draw/client";import{deviceField as R8}from"efficient-easel/screen/lib/document/device-fields";var kd=" text",qP="Text";function Us(e){let o=e.rows.filter(t=>t.shown);return o.length===0||o.length===1&&o[0].labelled}function VP(e){return e.filter(Us).map(o=>o.key)}function YP(e,o){let t=e.filter(a=>!Us(a));if(t.length!==1)return null;let r=e.filter(Us).flatMap(a=>a.rows);return[...o,...r].some(a=>a.shown)?null:t[0].rows.filter(a=>a.shown).length>1?t[0].key:null}function XP(e,o){let t=null;for(let r of o){let a=e[r];!a||a.marker!==!0||typeof a.fold!="string"||(t??={...e},t[r]={...a,fold:!1})}return t??e}function ZP(e,o){if(e.size!==o.size)return!1;for(let t of e)if(!o.has(t))return!1;return!0}var gx=new Map,Pd=new Set;function o0(e,o){let t=new Map;for(let a of e.querySelectorAll(".es-insp-row[data-field]"))t.set(a.getAttribute("data-field")??"",a);let r=[];for(let[a,n]of o)r.push({key:a,rows:n.map(s=>{let l=t.get(s),c=!!l&&[...l.children].some(p=>!p.hidden),d=l?.querySelector(".es-field-label, .es-list-label")?.textContent?.trim();return{shown:c,labelled:c&&!!d}})});return r}var A8=Object.fromEntries($s.map(e=>{let o=tv[e];return[e,ia(o,{},e)]})),t0=k8(null),F8={_partBody:R8("each",{type:"custom",render:()=>ia(L8,{})})};function L8(){return ia(C8,{children:T8(t0)})}function st({entries:e,entryCount:o=0,part:t=null,omit:r,motion:a,body:n}){let{id:s,fields:l,values:c,readOnly:d,onChange:p}=P8(),h=Td(()=>a?{...c,...a.values}:c,[c,a?.values]),u=(se,Fe)=>a?.keys.has(se)?a.onChange(se,Fe):p(se,Fe),x=_8(),{appState:g,config:y}=e0(se=>se),T=Gy(x,y,g.data.content??[],g.ui.itemSelector),O=n===void 0?oP(l,t):F8,w=Td(()=>{let se=r?.length?Object.fromEntries(Object.entries(O).filter(([Fe])=>!r.includes(Fe))):O;return a?{...se,...a.fields}:se},[O,r,a?.fields]),I=rp(w,h,T),[C,v]=xx(()=>new Set(Pd)),[k,A]=xx(()=>new Set),D=QP(null),{bandRows:P,designBands:R,looseRows:N}=Td(()=>{let se=new Map,Fe=new Set,so=[];for(let Pe of Ix(I).rows){if(!Pe.fold){Pe.bucket==="Design"&&so.push(Pe.name);continue}let Ne=se.get(Pe.fold.key)??[];Ne.push(Pe.name),se.set(Pe.fold.key,Ne),Pe.bucket==="Design"&&Fe.add(Pe.fold.key)}return{bandRows:se,designBands:Fe,looseRows:new Map([["",so]])}},[I]),b=E8({},x),_={key:kd,rows:Array.from({length:b?o:0},()=>({shown:!0,labelled:!0}))};JP(()=>{let se=D.current?.parentElement;if(!se)return;let Fe=o0(se,P),so=new Set(VP(Fe)),Pe=YP([_,...Fe.filter(Ne=>R.has(Ne.key))],o0(se,N)[0].rows);Pe&&so.add(Pe),A(Ne=>ZP(Ne,so)?Ne:so)});let F=Td(()=>XP(I,k),[I,k]),H=!Us(_)&&!k.has(kd)?{key:kd,title:qP}:void 0,Z=e0(se=>se.selectedItem)!==null,q=a?.part??t??"",U=`${s}:${q}:${String(x)}`,[ve,ne]=xx(()=>({tab:gx.get(U)})),Ue=`${s}:${q}`,De=QP(null),Te={...T,node:h},pe=Ix(I,{values:h,context:Te}).buckets,ge=gP({allTabs:Z,remembered:gx.get(U),inherited:De.current?.panel===Ue?De.current.tab:ve.tab,buckets:pe,hasText:b&&o>0}),qe=!b&&!pe.includes(ge)&&(Ix(rp(w,h,{...T,device:"desktop"}),{values:h,context:{...Te,device:"desktop"}}).buckets.includes(ge)||ge==="Design"&&o>0);JP(()=>{De.current={panel:Ue,tab:ge}});let Ve=ge==="Design";return ia(t0.Provider,{value:n??null,children:ia(hm.Provider,{value:a?h:null,children:v8(O8,{fields:F,values:h,onChange:u,readOnly:d,allTabs:Z,showWhenContext:Te,tab:ge,onTab:se=>{gx.set(U,se),ne({tab:se})},tabIcons:A8,idPrefix:s,ariaLabel:i("Section settings"),lead:Ve?e:null,leadFold:H,closedFolds:C,onFold:(se,Fe)=>{Fe?Pd.delete(se):Pd.add(se),v(new Set(Pd))},children:[ia("span",{ref:D,hidden:!0}),qe&&ia(la,{})]})})})}import{useMemo as iK}from"react";import{useEasel as cK}from"efficient-easel/easel";import{useSectionOps as dK}from"efficient-easel/screen/lib/document/use-section-ops";import{jsx as lt}from"react/jsx-runtime";import{ContrastIcon as D8,HoverIcon as N8,HoverLiftIcon as M8,HoverNextImageIcon as H8,HoverNoneIcon as z8,HoverRotateIcon as W8,HoverZoomIcon as a0,OpacityIcon as G8,RotateIcon as $8}from"efficient-easel/icons";import{group as U8}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as it}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as j8,noControlField as K8}from"efficient-easel/screen/lib/document/panel-no-control-mark";function Ed(e){return`color-mix(in srgb, var(--overlay-scrim) ${Math.round(Math.min(1,Math.max(0,e))*1e3)/10}%, transparent)`}var ASe="sf-card",hr={min:0,max:100,step:5,fallback:0,unit:"%"},FSe=[{label:"Even",value:"even"},{label:"From the bottom",value:"bottom"}],B8="68%",LSe={desktop:20,phone:20,side:40,sidePhone:24},BSe="sf-box-sides";function Od(e){return typeof e=="string"&&e.trim()!==""}function DSe(e,o){let t=typeof e=="number"?e:Number.parseFloat(String(e??""));if(!Number.isFinite(t)||t<=0)return null;let r=(Math.min(hr.max,Math.max(hr.min,t))/100).toFixed(2);return o!=="bottom"?{background:Ed(Number(r))}:{background:`linear-gradient(0deg, ${Ed(Number(r))} 0%, ${Ed(0)} ${B8})`}}function NSe(e,o){let t={"top-left":["start","start"],"top-center":["center","start"],"top-right":["end","start"],left:["start","center"],center:["center","center"],right:["end","center"],"bottom-left":["start","end"],"bottom-center":["center","end"],"bottom-right":["end","end"]},[r,a]=t[e]??t.center,[n,s]=o==="column"?[a,r]:[r,a],l={start:"justify-start",center:"justify-center",end:"justify-end"},c={start:"items-start",center:"items-center",end:"items-end"};return`${l[n]} ${c[s]}`}var bx=()=>it("desktop",U8("Hover")),q8="What this does when a shopper points at it, or taps it on a phone.",V8="What this picture does when a shopper points at it. Black and white shows it in grey until then. A phone shows its colour.",Y8="What this picture does when a shopper points at the card. Show next image fades to the card's next photo. Black and white shows it in grey until then. A phone shows the first photo in colour.",X8="What each card does when a shopper points at it, or taps it on a phone. Rotate turns the wheel picture.",Z8={none:()=>lt(z8,{}),nextImage:()=>lt(H8,{}),rotate:()=>lt(W8,{}),zoom:()=>lt(a0,{}),lift:()=>lt(M8,{}),mono:()=>lt(D8,{})};function yx(e,o){return qa("Hover effect",lt(N8,{}),e.map(t=>({label:gs[t],value:t,picture:Z8[t]()})),o)}function n0(){return{[Fc]:bx(),[Oo]:it("desktop",{...yx(Bm,"none"),description:q8})}}function s0(e){let o=lk(e),t=yo("Angle",lt($8,{}),on.min,on.max,on.step,Nm,"\xB0",{clear:{emptyLabel:"By spokes"}});return{[Fc]:bx(),[_e.kind]:it("desktop",{...In(yx(Bc,e),(r,a)=>Mm(a??{},e)),description:X8}),[Is]:K8({type:"custom",render:()=>lt(j8,{})},"always"),[_e.angle]:it("desktop",Je(In(t,r=>$(r)===void 0?void 0:Hm(r)),o)),[_e.duration]:it("desktop",Je(hn("hover"),o)),[_e.delay]:it("desktop",Je(xn("hover"),o))}}function Sx(e,o=""){let t=fk(e);return{[Fc]:bx(),[_e.kind]:l0(Dc,e,V8),...Gm.includes(o)?J8():{},[_e.duration]:it("desktop",Je(hn("hover"),t)),[_e.delay]:it("desktop",Je(xn("hover"),t))}}function J8(){let e=dk(),o=yo("Zoom",lt(a0,{}),Bt.min,Bt.max,Bt.step,Bt.min,Bt.unit),t=yo("Darken on hover",lt(G8,{}),hr.min,hr.max,hr.step,hr.fallback,hr.unit);return{[bs.zoom]:it("desktop",Je(o,e)),[bs.darken]:it("desktop",Je(t,e))}}function l0(e,o,t){let r=it("desktop",{...In(yx(e,o),a=>$m({[Oo]:a},o,e)),description:t});return Object.assign(r,{[i0]:o})}var i0="sfPictureResting",r0=new WeakMap;function ZSe(e,o,t){let r=e[_e.kind],a=r?.[i0];if(!r||!a)return e;let n=o.props?.[Oo]==="nextImage",s=n?null:ai(t.appState,o.props?.id),l=s?Zb(String(s.type),Qt(o.props),s):null;if(!n&&!l?.next)return e;let c=r0.get(e);return c||(c={...e,[_e.kind]:l0(zm,a,Y8)},r0.set(e,c)),c}import{jsx as c0}from"react/jsx-runtime";import{DirectionIcon as Q8,LoopIcon as eK}from"efficient-easel/icons";function wx(){return pv("Scroll direction",ix,Hs,"A marquee cannot run diagonally, so the corners are not answers.",c0(Q8,{}),uv)}function d0(){return{loop:Qo("Loop",c0(eK,{}),lx,sx),scrollDirection:Je(wx(),xd),loopDuration:Je(Id({readsSpeed:!1}),xd),loopDelay:Je(gd(),xd)}}function oK(){let e=Sx("none");return Jn(e,Object.keys(e),op("bgImage"))}function f0(e,o=""){switch(e){case"section":case"block":return nt();case"box":return{...nt(),...d0(),...oK()};case"picture":return{...nt(),...Sx(Wm(o),o)};case"textPart":return{...nt(),...n0()};case"cards":return{...nt(),...s0(Dm(o))};case"marquee":return{...nt(),scrollDirection:wx(),loopDuration:Id({readsSpeed:!0}),loopDelay:gd()}}}import{phoneKey as tK}from"efficient-easel/draw";import{ENTRANCE_STATE_ATTR as rK,entranceAttrs as aK}from"efficient-shell/format";var p0={},Cx="_partMotion",vx=[...Object.values(Ee).flatMap(e=>[e,tK(e)]),Oo,_e.duration,_e.delay];function ywe(e){return an(e,Cx)}function bn(e,o){return qc(e,Cx,o)}var nK=new Set([Ee.kind,Oo]);function m0(e,o,t,r){let{[t]:a,...n}=bn(e,o),s=r==null||r===""||r==="none"&&nK.has(t)?n:{...n,[t]:r};return Vc(e,Cx,o,Object.keys(s).length?s:null)}function kx(e){return{entrance:wd(e),hover:nk(e)}}function h0(e){let o=kx(e);return o.entrance!==null||o.hover!=="none"}function x0(e,o){let{attrs:t,style:r}=aK(o),a=Object.keys(t).filter(n=>t[n]!==void 0);for(let n of a)e.setAttribute(n,String(t[n]));for(let[n,s]of Object.entries(r))e.style.setProperty(n,String(s));return()=>{for(let n of a)e.removeAttribute(n);for(let n of Object.keys(r))e.style.removeProperty(n);e.removeAttribute(rK)}}var sK=4;function I0(e){let o;for(let t of e)(!o||t.element.compareDocumentPosition(o.element)&sK)&&(o=t);return o}var lK="data-sf-part-host";function g0(e){let o=e?.ownerDocument.defaultView,t=e;for(;t&&!t.hasAttribute(lK)&&!t.classList.contains(yd);){let r=o?.getComputedStyle(t).display??"";if(r==="contents")return null;if(r!=="inline")return t;t=t.parentElement}return null}var _d="data-sf-part-lift",u0="sf-part-lift";function b0(e){if(e.getElementById(u0))return;let o=e.createElement("style");o.id=u0,o.textContent=Dk(`[${_d}]`).join(`
40
+ `),e.head.appendChild(o)}var y0=new Map,fK=e=>{let o=y0.get(e);return o||y0.set(e,o=KP(f0(e),`part:${e}`)),o},uK=new Set(vx);function yn(e,o,t){let{getItemById:r,getSelectorForId:a}=cK(p=>p),n=dK(),s=r(e)?.props??{},l=bn(s,o),c=JSON.stringify(l),d=iK(()=>Object.fromEntries(vx.map(p=>[p,l[p]])),[c]);return{part:o,fields:fK(t),values:d,keys:uK,onChange:(p,h)=>{let u=a(e),x=r(e);if(!u||!x)return;let g=m0(x.props??{},o,p,h);n.replaceComponent(u.zone,u.index,{...x,props:g})}}}import{Fragment as pK,createElement as mK}from"react";import{deviceField as Tx}from"efficient-easel/screen/lib/document/device-fields";var uo=()=>({type:"custom",render:()=>mK(pK)});var Px={words:uo(),sourceNote:uo(),style:uo(),font:uo(),italic:uo(),fontSize:Tx("each",uo()),lineHeight:uo(),letterSpacing:uo(),paragraphSpacing:uo(),padding:uo(),align:Tx("each",uo()),letterCase:uo(),fixedSizeHint:Tx("each",uo()),regionNote:uo(),regionStyle:uo()},S0={showTicker:uo(),items:uo()};var kK="root:default-zone";function w0({heroId:e}){let{appState:o,dispatch:t}=bK(x=>x),r=o.data.content??[],a=r.findIndex(x=>x.props.id===e),n=a>=0?r[a]:null,s=n?n.props.showTicker??!0:!0,l=gK(()=>{let x=n?.props.tickerItems;return Array.isArray(x)?x:XT.map(g=>({text:g}))},[n]),c=IK(),d=vK(),p=x=>CK(S0[x],d),h=yn(e,ZT,"block");if(!n)return ca("p",{className:"sf-note",children:i("This ticker\u2019s hero is no longer on the page.")});let u=x=>t({type:"replace",destinationZone:kK,destinationIndex:a,data:{...n,props:{...n.props,...x}}});return ca(st,{motion:h,body:xK(hK,{children:[!p("showTicker")&&!p("items")&&ca(la,{}),p("showTicker")&&ca(yK,{label:i("Show ticker"),labelId:c,icon:ca(wK,{}),action:ca(SK,{checked:s,onChange:x=>u({showTicker:x}),ariaLabelledBy:c})}),p("items")&&ca(gm,{label:Im.label,icon:Im.icon,items:l,placeholder:"item",onChange:x=>u({tickerItems:x}),markup:!0})]})})}import{jsx as Y,Fragment as Zs,jsxs as Do}from"react/jsx-runtime";import{useContext as VK,useEffect as Ox,useRef as YK,useState as G0}from"react";import{FieldSelect as XK,InspectorField as ZK,fieldShownInView as JK}from"efficient-easel/fields";import{SettingsField as QK}from"efficient-easel/panel";import{InspectorUpLevel as Hd}from"efficient-easel/chrome";import{StylesIcon as e7,TypeIcon as o7}from"efficient-easel/icons";import{useEasel as t7}from"efficient-easel/easel";import{TextPartPanel as $0}from"efficient-easel/copy";import{Button as r7,IconButton as a7,Tooltip as n7}from"efficient-shell/ui";import{jsx as C0,jsxs as TK}from"react/jsx-runtime";import{COPY_CELLS as js,CopyBox as PK}from"efficient-easel/copy";import{PaddingYIcon as EK}from"efficient-easel/icons";var OK=["left","center","right","justify"];function Rd(e,o,t,r="desktop"){let a=vs(e),n=r==="mobile",s=(n?e.sizePhone:void 0)??e.size??o.sizePx;return[n?{...js.fontSize,key:"fontSize",value:e.sizePhone,styleValue:Math.round(o.sizePx),onChange:l=>t({sizePhone:l??null})}:{...js.fontSize,key:"fontSize",value:e.size,styleValue:Math.round(o.sizePx),onChange:l=>t({size:l??null})},{...js.lineHeight,key:"lineHeight",value:a.lineHeight,styleValue:o.lineRatio,onChange:l=>t(l===void 0?{lineHeight:null,line:null}:{lineHeight:l})},{...js.letterSpacing,key:"letterSpacing",scale:s,value:a.letterSpacingEm,styleValue:o.letterEm,onChange:l=>t(l===void 0?{letterSpacing:null,letter:null}:{letterSpacing:l})},{...js.paragraphSpacing,key:"paragraphSpacing",value:e.paragraphSpacing,styleValue:0,onChange:l=>t({paragraphSpacing:l??null})},{key:"padding",name:i("Padding"),icon:C0(EK,{}),unit:"px",step:sh,shiftStep:10,min:ah,max:nh,value:e.padding,styleValue:o.paddingPx,onChange:l=>t({padding:l??null})}]}function v0({text:e,onTextChange:o,multiline:t,markup:r=!0,styled:a=!0,style:n,base:s,setValue:l,colors:c,placeholder:d,ariaLabel:p,head:h,typedOnCanvas:u=!1}){let x=Rd(n,s,l),g=Om(r,t);return TK("div",{className:"sf-part-textbox",children:[h,C0(PK,{value:e,onChange:o,multiline:t,placeholder:d,ariaLabel:p,rules:Ar,tools:g,barShows:u?"focus":"always",colors:r?c:[],align:a?{value:n.align??s.align,allow:OK,onChange:y=>l({align:y})}:void 0,letterCase:a?{value:n.case==="capitalize"?"":n.case??"",onChange:y=>l({case:y||null})}:void 0,cells:a?x:void 0})]})}import{UiIcon as U0}from"efficient-easel/draw/client";import{jsx as Ad,Fragment as _K,jsxs as RK}from"react/jsx-runtime";import{Button as k0,Dialog as AK}from"efficient-shell/ui";function T0({styleName:e,onCancel:o,onConfirm:t}){return Ad(AK,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Update {style}?",{style:e}),footer:RK(_K,{children:[Ad(k0,{variant:"secondary",onClick:o,children:i("Cancel")}),Ad(k0,{variant:"primary",onClick:t,children:i("Update style")})]}),children:Ad("p",{children:i("Every text on the site that follows {style} changes to look like this one. This text\u2019s own changes are cleared, and it keeps following {style}.",{style:e})})})}import{ScreenDocumentContext as s7}from"efficient-easel/screen/components/ScreenDocumentContext";import{usePreviewDevice as l7}from"efficient-easel/draw/client";import{shownTier as Nd}from"efficient-easel/screen/lib/document/device-fields";import{jsx as FK}from"react/jsx-runtime";import{createContext as LK,useContext as BK,useMemo as DK,useState as NK}from"react";var MK={partStyle:null,setPartStyle:()=>{}},P0=LK(MK);function iCe({children:e}){let[o,t]=NK(null),r=DK(()=>({partStyle:o,setPartStyle:t}),[o]);return FK(P0.Provider,{value:r,children:e})}function E0(){return BK(P0)}import{TEXT_FIELD_MARKER as i7}from"efficient-easel/draw";import{useSectionOps as c7}from"efficient-easel/screen/lib/document/use-section-ops";import{parseHexColor as HK}from"efficient-shell/format";var zK="#9ca3af";function WK(e){return si.map(o=>({key:o,name:cy[o],value:e?.[o]||zK}))}function Fd(e){return WK(e).map(o=>({name:o.key,label:i(o.name),value:o.value}))}function _0(e){let o={},t=e.ownerDocument,r=t?.defaultView;if(!t||!r)return o;let a=r.getComputedStyle(e),n=t.createElement("canvas").getContext("2d");for(let s of si){let l=Et[s].replace(/^var\((--[\w-]+)\)$/,"$1"),c=a.getPropertyValue(l).trim();if(!c)continue;let d=O0(c);!d&&n&&(n.fillStyle="#000000",n.fillStyle=c,d=O0(String(n.fillStyle))),d&&(o[s]=d)}return o}function O0(e){let o=e.trim().toLowerCase();if(o.startsWith("#"))return HK(o);let t=o.match(/^rgba?\(\s*(\d+)[\s,]+(\d+)[\s,]+(\d+)/);return t?`#${t.slice(1,4).map(r=>Math.min(255,Number(r)).toString(16).padStart(2,"0")).join("")}`:null}var Ks="@name",R0="@body",A0="@value",F0={[Ks]:"Name",[R0]:"Body",[A0]:"Value"},GK={TimelineTrack:{"entries.date":Ks,"entries.title":Ks,"entries.blurb":R0},Footprint:{"offices.city":Ks},Stats:{"items.label":Ks,"items.value":A0}};function $K(e){let{key:o,row:t}=ot(e);return t?`${o}.${t.rowKey}`:null}function qs(e,o){if(!e)return o;let t=$K(o);return t?GK[e]?.[t]??o:o}import{useEaselHost as d7}from"efficient-easel/screen/lib/host";function UK(e){let o=new Set([...Object.keys(Ti[e]??{}),...Pi[e]??[]]);for(let[t,r]of Object.entries(Sp[e]??{}))r.verb==="snapshot"&&o.add(t);return[...o].sort()}var jK={CollectionCard:"product",FooterMenu:"menu",Gallery:"product",GalleryItem:"product",ProductGrid:"product",ProductHero:"product",SpecTable:"product",Events:"blog",FeaturedCover:"blog",LongRead:"blog",SubscribeBlogs:"blog"},L0={product:"Synced from the product.",blog:"Synced from the blog post.",menu:"Synced from the site menu."},B0="Open",D0={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 Sn(e){let o=e?.source?.slug;return oe(o)}function Vs(e){return jK[e]??null}function N0(e,o){let t=Vs(e);return t&&UK(e).includes(o)?t:null}function Ld(e){let o=e?.menu?.id;return oe(o)}var Ys={tag:"text-[length:var(--size-label,13px)]",name:"text-[length:min(var(--size-headingMedium,48px),var(--sf-heading-max,9999px))]",namePhone:"max-view-wide:text-[length:min(var(--size-headingMedium,36px),var(--sf-heading-max,9999px))]",body:"text-[length:var(--size-body,14px)]",price:"text-[length:var(--size-label,15px)]",link:"text-[length:var(--size-label,14px)]"},KK={tag:{label:"Tag",follows:"Labels",builtIn:tn(Ys.tag),writable:!0},name:{label:"Name",follows:"Heading 2",builtIn:tn(Ys.name),writable:!0},body:{label:"Body",follows:"Body",builtIn:tn(Ys.body),writable:!0},price:{label:"Price",follows:"Labels",builtIn:tn(Ys.price),writable:!0},link:{label:"Link",follows:"Labels",builtIn:tn(Ys.link),writable:!0}},M0=KK;var qK={number:{label:"Number",follows:"Labels",builtIn:"14px",writable:!0,sized:!0},question:{label:"Question",follows:"Body",builtIn:"18px",writable:!0,sized:!0},answer:{label:"Answer",follows:"Body",builtIn:"15px",writable:!0,sized:!0}},H0=qK;var Bd={entry:{label:"Entry",follows:"Labels",builtIn:"13px",writable:!0},number:{label:"Entry number",follows:"Labels",builtIn:"13px",writable:!0}};var TCe=jc,z0={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 Ex={SpecTable:z0,FAQ:H0,Collections:M0,Contents:Bd};function W0(){return Zt("efficient.section-text-regions",()=>new Map)}function FCe(e){let o=W0();for(let[t,r]of Object.entries(e)){if(Object.hasOwn(Ex,t))throw new Error(`lib/sections/section-text-regions: "${t}" is a builder section; its table is the builder's`);let a=o.get(t);if(a&&a!==r)throw new Error(`lib/sections/section-text-regions: "${t}" already has a table`);o.set(t,r)}}function Dd(e){return e?Object.hasOwn(Ex,e)?Ex[e]:W0().get(e)??null:null}function _x(e){return e?i(e):null}function j0(e){return e.kind==="role"?fu[e.role]:e.kind==="custom"?"Custom":null}function f7(e){let o=kt(e.role);return o?{kind:"role",role:o}:null}function u7(e,o){if(!e)return{kind:"unread"};let{faceRole:t,base:r}=e;if(o[t]===r.fontKey)return{kind:"role",role:t};let a=Object.keys(o).filter(n=>o[n]===r.fontKey);return a.length===1?{kind:"role",role:a[0]}:{kind:"custom"}}function Md(e,o,t,r){return f7(Cs(e,o))??u7(t,r)}function p7(e,o){if(!e.length)return null;let t=o(e[0]);return e.every(r=>o(r)===t)?t:null}function K0(e){return[{value:Xs,label:i("No style"),description:i("Section\u2019s own")},...e.map(o=>({value:o.id,label:o.name,description:o.values.font?Aa(o.values.font)?.label:void 0}))]}var Xs="";function m7({face:e,base:o,onPick:t}){let r=e.kind==="role"?e.role:Xs,a=[{label:i("No style"),value:Xs},...ob.map(n=>({label:i(fu[n]),value:n}))];return Y(XK,{ariaLabel:i("Style"),value:r,options:a,inline:!0,onChange:n=>t(n===Xs?null:n),renderOption:n=>n.value===Xs?Do(Zs,{children:[Y("span",{className:"es-fsel-label sf-part-style-keep",children:n.label}),Y("span",{className:"sf-part-style-aside","aria-hidden":"true",children:i("Section\u2019s own")})]}):Y("span",{className:"es-fsel-label",style:{fontFamily:`var(--font-role-${n.value})`},children:n.label}),renderValue:()=>Y("span",{style:{fontFamily:o?.fontKey?`var(${Aa(o.fontKey)?.cssVar})`:void 0,fontWeight:o?.weight},children:_x(j0(e))}),valueText:n=>_x(j0(e))??n?.label??""})}var Z0=["regionNote","regionStyle"],h7=Object.keys(Px).filter(e=>!Z0.includes(e));function J0(e,o){return!e.some(o)}function x7({sectionName:e,onBack:o,textEditor:t,styleRow:r,children:a,tabs:n}){let s=Do(Zs,{children:[t,r,a]});return Do("div",{className:"sf-part-panel",children:[Y(Hd,{inline:!0,name:i(e),onSelect:o}),n?n(s):s]})}function zd({source:e,slug:o,menuId:t}){let r=d7(),a=D0[e],n=!a.needsSlug||!!o;return Y("div",{className:"sf-note sf-note--source",children:Do("p",{className:"es-field-hint sf-hint-keep",children:[i(L0[e]),n?Do(Zs,{children:[" ",Y(r7,{type:"button",variant:"link",size:"sm",onClick:()=>{a.type==="storefront-editor:open-menus"?r.send(a.type,{menuId:t??null}):o&&r.send(a.type,{slug:o})},children:i(B0)})]}):null]})})}var q0=4,I7=120;function V0(e){return i("Every {part} in this section follows it. The face and the size change; the letter case is the section\u2019s own and stays as it is.",{part:i(e.label).toLowerCase()})}function Y0({region:e,sizePx:o,face:t,base:r,onFollowStyle:a,source:n,slug:s,onBack:l,shows:c,sizedStyle:d,ownLook:p}){let h=e.follows;return Do("div",{className:"sf-note",children:[Y("p",{children:Y("strong",{children:i(e.label)})}),c("regionNote")&&!p&&Y("p",{children:o?i("Its size follows Styles \u25B8 {follows} \u2014 {px}px right now.",{follows:i(h),px:Math.round(o)}):i("Its size follows Styles \u25B8 {follows}.",{follows:i(h)})}),d?Do(Zs,{children:[d,c("regionStyle")&&Y("p",{className:"es-field-hint sf-hint-keep",children:V0(e)})]}):a?c("regionStyle")?Y(Zs,{children:Y(QK,{label:i("Style"),icon:Y(e7,{}),hint:V0(e),children:Y(m7,{face:t,base:r,onPick:a})})}):null:c("regionNote")&&Y("p",{className:"es-field-hint sf-hint-keep",children:i("Only the size follows a site style. This section sets its own font, weight and letter case.")}),n&&c("sourceNote")?Y(zd,{source:n,slug:s}):null,J0([...Z0,"sourceNote",...d?["fontSize"]:[]],u=>c(u)&&(u!=="sourceNote"||!!n))&&Y(la,{}),Y(Hd,{inline:!0,name:i("Page"),onSelect:l})]})}function g7({onBack:e}){return Do("div",{className:"sf-note",children:[Y("p",{children:Y("strong",{children:i("This part is no longer here.")})}),Y("p",{children:i("The section it belonged to has been changed or removed.")}),Y(Hd,{inline:!0,name:i("Page"),onSelect:e})]})}function b7({onBack:e,partId:o,why:t}){return Do("div",{className:"sf-note",children:[Y("p",{children:Y("strong",{children:i("This part's settings did not open.")})}),Y("p",{children:i("The words are still on your page and nothing has been lost. The editor could not work out which control belongs to them, which is a fault on our side. Go back and click the section to open its settings instead.")}),Y("p",{className:"sf-note-detail",children:Do("code",{children:[o," \u2014 ",t]})}),Y(Hd,{inline:!0,name:i("Page"),onSelect:e})]})}function Q0({nodeId:e,propKey:o,onBack:t,onEditStyle:r}){let{getItemById:a,getSelectorForId:n,config:s}=t7(W=>W),l=c7(),c=Gv(),{partStyle:d}=E0(),{fonts:p,textStyles:h}=de(),u=VK(s7),x=!u?.capabilities?.hasSiteTheme,{persist:g}=Wa({themeFromDocument:x,tokenRef:u?.tokenRef,siteId:u?.siteId??null}),y=ed({themeFromDocument:x,persist:g}),[T,O]=G0(!1),w=l7(),I=W=>Nd(w)!=="tablet"&&JK(Px[W],w),C=YK(null),v=a(e),k=n(e),A=v?s.components[v.type]:void 0,{key:D,row:P}=ot(o),R=A?.fields?.[D],N=P?Qa(R,P):R,b=Sc(e,o),_=v?.props??{},F=Za(N),H=ic(N),Z=Ov(N),q=v?Vs(v.type):null,U=v?N0(v.type,D):null,ve=P?hs(_[D],P):_[D],ne=!!P&&!(Array.isArray(_[D])&&P.index<_[D].length);Ox(()=>{Wv(document)||C.current?.querySelector(".es-copy [contenteditable='true'], .es-copy textarea, .sf-copybox textarea, .sf-copybox input")?.focus()},[b]);let[Ue,De]=G0(0);Ox(()=>De(0),[b]);let Te=!!v&&!ne&&(!k||!N);Ox(()=>{if(!Te||Ue>=q0)return;let W=setTimeout(()=>De(je=>je+1),I7);return()=>clearTimeout(W)},[Te,Ue]);let pe=Te&&Ue<q0,ge=yn(e,qs(v?.type,o),"textPart");if(!v||ne)return Y(g7,{onBack:t});let qe=Dd(v.type),Ve=qe?Ss(qe,o):null;if(qe&&Ve){let W=d?.partId===b?d:null,je=qe[Ve],$o=je.writable===!0&&!!k,Vt=vr=>{k&&l.replaceComponent(k.zone,k.index,{...v,props:Qr(_,o,"role",vr)})};if($o&&Pk(je)){let vr=Cs(_,o),Ng=kr=>{if(!k)return;let tu=_;for(let[IL,gL]of Object.entries(kr))tu=Qr(tu,o,IL,gL??null);l.replaceComponent(k.zone,k.index,{...v,props:tu})},mL=Nt(y.saved,y.old),hL=rh(vr)??"",xL=Rd(vr,W?.base??X0,Ng,Nd(w)).filter(kr=>kr.key==="fontSize"&&I(kr.key));return Y(st,{motion:ge,body:Y(Y0,{region:je,sizePx:W?.base.sizePx??null,face:Md(_,o,W,p),base:W?.base??null,source:q,slug:Sn(_),onBack:t,shows:I,ownLook:$k(vr),sizedStyle:Y($0,{style:I("style")?{value:hL,options:K0(mL),onChange:kr=>Ng(kr?{textStyle:kr}:{textStyle:null,role:null}),onEditStyles:r}:void 0,cells:xL})})})}return Y(st,{motion:ge,body:Y(Y0,{region:je,sizePx:W?.base.sizePx??null,face:Md(_,o,W,p),base:W?.base??null,onFollowStyle:$o?Vt:void 0,source:q,slug:Sn(_),onBack:t,shows:I})})}if(!k||!N)return pe?Y("div",{className:"sf-note","aria-busy":"true"}):Y(b7,{onBack:t,partId:b,why:k?"no field":"no selector"});let se=W=>{l.replaceComponent(k.zone,k.index,{...v,props:W})},Fe=W=>{if(fr(W).hidden!==fr(ve).hidden||!F){let je=P?wm(_,D,P,W):{..._,[D]:W};je&&se(je);return}vc({node:v,propKey:o,kind:F,zone:k.zone,index:k.index},fr(W).text,l.replaceComponent)},so=ve,Pe=d?.partId===b?d:null,Ne=Pe?.styleOwner,go=Ne?a(Ne.owner):null,To=Ne&&go?n(Ne.owner):null,Po=!!(Ne&&go&&To),M=Po?go.props??{}:_,le=Po?W=>l.replaceComponent(To.zone,To.index,{...go,props:W}):se,Se=Po?Ne.kind:qs(v?.type,o),He=Cs(M,Se),ze=[{partKey:Se,face:Md(M,Se,Pe,p),sizeGroup:Pe?.sizeGroup??null,base:Pe?.base??X0,style:He}],qt=p7(ze,W=>W.sizeGroup),Pa=Fd(Pe?.inks),oo=(W,je)=>{let $o=M;for(let Vt of ze)$o=Qr($o,Vt.partKey,W,je);le($o)},wr=W=>W?oo("textStyle",W):Mn({textStyle:null,role:null}),Mn=W=>{let je=M;for(let $o of ze)for(let[Vt,vr]of Object.entries(W))je=Qr(je,$o.partKey,Vt,vr??null);le(je)},eu=F==="text"||F==="textarea",{text:Ag,hidden:Ea}=fr(ve),Ul=N?.[i7]?.label??o,Fg=Ea?i("Show {label} on the slide",{label:i(Ul)}):i("Hide {label} on the slide",{label:i(Ul)}),Lg=Do("div",{className:"sf-field-head",children:[Y(o7,{}),Y("span",{className:"sf-field-label sf-field-label--inline",children:i(Ul)}),eu&&Y(n7,{content:Fg,children:Y(a7,{"aria-pressed":Ea,"aria-label":Fg,onClick:()=>Fe({text:Ag,hidden:!Ea}),children:Ea?Y(U0,{name:"eye-off",size:14}):Y(U0,{name:"eye",size:14})})})]}),jl=!H&&Z,lL=!!F&&(ev(N)||H||Ea||!Z),Bg=Md(M,Se,Pe,p),iL=Bg.kind==="role"?Bg.role:null,ou=rh(He)??aT(iL),Dg=Nt(y.saved,y.old),cL=Object.entries(He).filter(([W,je])=>W!=="role"&&W!=="textStyle"&&je!==void 0).length,dL=()=>{let W=M;for(let je of ze){let{role:$o,textStyle:Vt}=je.style;W=zk(W,je.partKey),$o&&(W=Qr(W,je.partKey,"role",$o)),Vt&&(W=Qr(W,je.partKey,"textStyle",Vt))}le(W)},Cr=ou,fL=nT(ze[0].style),uL=Cr?Dg.find(W=>W.id===Cr)?.name??Cr:"",pL=()=>{O(!1),Cr&&(y.write(sT({saved:y.saved,old:y.old,styleId:Cr,values:bh(ze[0].style)}),!0),dL())};return Do(x7,{sectionName:A?.label??v.type,onBack:t,tabs:W=>Y(st,{motion:ge,body:W}),textEditor:I("words")?Y("div",{ref:C,className:"sf-part-text",children:lL?Y(v0,{text:Ag,onTextChange:W=>Fe(eu?{text:W,hidden:Ea}:W),multiline:Ic(F),markup:F!=="plainText",styled:!1,style:ze[0].style,base:ze[0].base,setValue:Mn,colors:Pa,placeholder:_x(yv(N))??void 0,ariaLabel:i(Ul),head:Lg,typedOnCanvas:c===b}):F?eu?Lg:null:Y(ZK,{field:N,name:o,value:so,onChange:Fe,id:`sf-part-${e}-${o}`})}):void 0,children:[U&&I("sourceNote")&&Y(zd,{source:U,slug:Sn(_),menuId:Ld(_)}),jl&&Y($0,{style:I("style")?{value:ou??"",options:K0(Dg),onChange:W=>wr(W||null),changed:cL>0,onEditStyles:r,onUpdateStyle:Cr&&fL?()=>O(!0):void 0}:void 0,font:I("font")?{value:He.font??"",styleValue:Aa(ze[0].base.fontKey)?.label,options:Uo.map(W=>({label:W.label,value:W.key})),onChange:W=>oo("font",W||null)}:void 0,italic:I("italic")?{value:He.italic,styleValue:y7(h,ou),onChange:W=>oo("italic",W??null)}:void 0,cells:Rd(ze[0].style,ze[0].base,Mn,Nd(w)).filter(W=>I(W.key)),align:I("align")?Nd(w)==="mobile"?{value:He.alignPhone??"",styleValue:He.align??ze[0].base.align,onChange:W=>oo("alignPhone",W||null)}:{value:He.align??"",styleValue:ze[0].base.align,onChange:W=>oo("align",W||null)}:void 0,letterCase:I("letterCase")?{value:He.case??"",styleValue:ze[0].base.case,onChange:W=>oo("case",W||null)}:void 0}),T&&Cr&&Y(T0,{styleName:uL,onCancel:()=>O(!1),onConfirm:pL}),jl&&qt===null&&I("fixedSizeHint")&&Y("p",{className:"es-field-hint sf-hint-keep",children:i("Fixed size \u2014 the site\u2019s Text setting doesn\u2019t resize this.")}),J0(h7,W=>I(W)&&(W==="words"||(W==="sourceNote"?!!U:W==="fixedSizeHint"?jl&&qt===null:jl)))&&Y(la,{})]})}function y7(e,o){return!o||!Array.isArray(e)?!1:e.find(t=>t?.id===o)?.values?.italic===!0}var X0={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0};import{jsx as ct,jsxs as Kx,Fragment as L7}from"react/jsx-runtime";import{useCallback as B7,useRef as D7,useState as ol}from"react";import{InspectorIconButton as N7}from"efficient-easel/chrome";import{PopupMenu as M7,PopupMenuItem as H7,PopupMenuLabel as Yd}from"efficient-shell/ui";import{CopyToPageIcon as z7}from"efficient-easel/icons";import{useEaselSession as W7}from"efficient-easel/screen/lib/session-context";import{cloneNodeWithFreshIds as G7}from"efficient-easel/screen/lib/document/section-doc";import{FOOTER_TYPE as $7}from"efficient-easel/draw";import{currentEaselSession as S7}from"efficient-easel/screen/lib/session";var w7={general:!0,commerce:!0,service:!0};function Rx(e){let o=e?.sets;return o?Object.fromEntries(Cb.map(t=>[t,o.includes(t)])):w7}function Ax(e=S7()){return Rx(e.blocks)}import{isBackendError as Tn}from"efficient-easel/screen/lib/backend-error";import{isEfficientBackend as wE}from"efficient-easel/screen/lib/session";import{useSyncExternalStore as C7}from"react";var wn=new Map,Fx=new Set;function Lx(e,o){if(!(wn.has(e)&&wn.get(e)===o)){wn.set(e,o);for(let t of Fx)t()}}function Wd(e,o){Lx(e,o)}function Gd(e,o){let t=wn.get(e);Lx(e,o??(t==="live"?"changed":t))}function $d(e,o){Lx(e,o??"live")}function eE(e){return wn.get(e)}function v7(e){return Fx.add(e),()=>{Fx.delete(e)}}function oE(e){let o=()=>e?wn.get(e):void 0;return C7(v7,o,o)}function tE(e,o){return e==="live"&&o?"changed":e}function Bx({live:e,onPress:o,busy:t=!1,pinnedUnpublished:r=!1,goingLive:a}){let n=e==="live"&&!r,s=e==="changed"?i("Changes not live yet"):e==="never"?i("Never published"):r?i("Header and footer not live yet"):e==="live"?i("Everything is live"):null;return{label:i("Publish"),tooltip:e==="never"?i("Put this page on your site"):i("Put your changes on your site"),status:s,quiet:n?{label:i("Published"),reason:i("Everything is live")}:null,...a&&a.length?{goingLive:a}:{},onPress:o,busy:t}}function rE(e){return e.map(o=>o.change==="take_down"?i("{name} (taken down)",{name:o.name}):o.name)}var Le="SiteHeader",Oe="SiteFooter",Dx="sections",_ve=[Le,Oe],Cn=e=>e===Le||e===Oe,aE=e=>`${e}:${Dx}`;function nE(e,o,t=[]){return{type:e,props:{id:o,[Dx]:t}}}var k7=new Set(["Footer",Le,Oe]);function vn(e){let o=new Set,t=!1,r=e.filter(a=>{let n=a?.type??"";return n==="Header"?(t=!0,!1):k7.has(n)?o.has(n)?(t=!0,!1):(o.add(n),!0):!0});return t?r:e}function Ud(e,o){return e.some(t=>t?.type===o.type)?e:o.type===Le?[o,...e]:[...e,o]}var sE={[Le]:{max:3,takes:["Flex","Ticker"]},[Oe]:{max:6,takes:["Flex","Prose","Logos","Divider"]}};function lE(e,o,t){if(!Cn(e))return!0;let r=sE[e];return t<r.max&&r.takes.includes(o)}function iE(e,o){let t=o,r=t?.props?.id;if(r==null)return null;let a=e?.content;if(!Array.isArray(a))return null;for(let n of a){if(!Cn(n?.type))continue;let s=n.props?.[Dx];if(!Array.isArray(s)||!s.some(c=>c?.props?.id===r))continue;let l=sE[n.type];return l.takes.includes(t?.type??"")?s.length>=l.max?{group:n.type,why:"full"}:null:{group:n.type,why:"type"}}return null}import{isNode as T7}from"efficient-easel/data";var cE="Footer",P7=[Le,cE,Oe],kn=e=>{let o=e?.content;return Array.isArray(o)?o:[]},da=e=>{let o=e?.zones;return o&&typeof o=="object"&&!Array.isArray(o)?o:null},Js=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0},dE=e=>Zn(e)?.ownerId??"";function fE(e){let o=vn(kn(e)),t=o.some(r=>r?.type===Oe);return o.filter(r=>r?.type===Le||r?.type===Oe||r?.type===cE&&!t)}function Nx(e,o){let t=new Set,r=a=>{if(Array.isArray(a)){for(let n of a)r(n);return}if(!(!a||typeof a!="object")){if(T7(a)){let n=Js(a);n&&t.add(n)}for(let n of Object.values(a))r(n)}};if(r(e),o){let a=!0,n=new Set;for(;a;){a=!1;for(let[s,l]of Object.entries(o))n.has(s)||!t.has(dE(s))||(n.add(s),r(l),a=!0)}}return t}function Mx(e,o){let t={},r={};for(let[a,n]of Object.entries(e??{}))(o.has(dE(a))?t:r)[a]=n;return{owned:t,rest:r}}function uE(e,o){if(!o)return e;let t=fE(o);if(!t.length)return e;let r=t.filter(l=>l.type===Le),a=t.filter(l=>l.type!==Le),n={...e,content:[...r,...kn(e),...a]},{owned:s}=Mx(da(o),Nx(t,da(o)));return Object.keys(s).length&&(n.zones={...da(e)??{},...s}),n}function Hx(e,o){if(!o)return{page:e,chrome:null};let t=fE(o),r=new Set(t.map(Js).filter(w=>!!w)),a=[],n=[];for(let w of kn(e)){let I=Js(w);I&&r.has(I)||Cn(w?.type)?n.push(w):a.push(w)}let s=new Map(n.map(w=>[Js(w),w])),l=new Set,c=vn(kn(o)).flatMap(w=>{let I=Js(w);if(!I||!r.has(I))return[w];let C=s.get(I);return C?(l.add(C),[C]):[]});for(let w of n)l.has(w)||c.some(I=>I?.type===w.type)||(c=w.type===Le?[w,...c]:[...c,w]);c=vn(c);let d=c.length===kn(o).length&&c.every((w,I)=>w===kn(o)[I]),p=da(e),h=Nx(c,p),{owned:u,rest:x}=Mx(p,h),g=Mx(da(o),Nx(t,da(o))).owned,y={...o,content:d?o.content:[...c]},T=da(o);if(T||Object.keys(u).length){let w={};for(let[I,C]of Object.entries(T??{}))I in g?I in u&&(w[I]=u[I]):w[I]=C;for(let[I,C]of Object.entries(u))I in w||(w[I]=C);y.zones=w,T&&E7(y.zones,T)&&(y.zones=T)}let O={...e,content:a};return p&&(Object.keys(x).length||!Object.keys(g).length?O.zones=x:delete O.zones),{page:O,chrome:y}}function E7(e,o){let t=Object.keys(e),r=Object.keys(o);return t.length===r.length&&t.every((a,n)=>a===r[n]&&e[a]===o[a])}function pE(e,o){return t=>e(t)||t!==void 0&&P7.includes(t)&&o()}var mE="SharedSection",O7=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Qs=e=>{let o=e?.content;return Array.isArray(o)?o:[]},el=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0};function hE(e){if(e?.type!==mE)return null;let o=e.props?.section;return typeof o=="string"&&O7.test(o)?o.toLowerCase():null}function xE(e){let o=[];for(let t of Qs(e)){let r=hE(t),a=el(t);r&&a&&o.push({refId:a,section:r})}return o}function jd(e){let o=Qs(e)[0];return o&&typeof o=="object"&&el(o)?o:null}function _7(e,o){return{type:mE,props:{id:e,section:o}}}function IE(e,o){let t=new Map,r=new Set,a=!1,n=Qs(e).map(s=>{let l=hE(s),c=el(s);if(!l||!c||r.has(l))return s;let d=jd(o.get(l)),p=el(d??void 0);return!d||!p||t.has(p)?s:(r.add(l),t.set(p,{section:l,refId:c,reference:s}),a=!0,d)});return{working:a?{...e,content:n}:e,held:t}}function gE(e,o,t){let r=new Map,a=!1,n=Qs(e).map(s=>{let l=el(s),c=l?o.get(l):void 0,d=c?t.get(c.section):void 0;if(!c||!d||r.has(c.section))return s;let p=Qs(d).slice(1),h=jd(d);return r.set(c.section,h===s?d:{...d,content:[s,...p]}),a=!0,c.reference??_7(c.refId,c.section)});return{page:a?{...e,content:n}:e,docs:r}}var bE=null;function zx(e){bE=e}function zt(){return bE}var yE=null;function Wx(e){yE=e}function Kd(){return yE}var qd=null;function Gx(e){qd=e}function SE(){return!!(qd&&qd.state().lockHolder)}function fa(){return qd!==null}function jx(e){return!!(e?.publish&&e.liveState)}function R7(e,o){if(!jx(e))return;let{versions:t,nameVersion:r,restoreVersion:a,previewVersion:n}=e;if(!(!t||!r||!a||!n))return{list:()=>t.call(e,o),name:(s,l)=>r.call(e,s,l,o),restore:(s,l)=>a.call(e,s,l??{},o),preview:s=>n.call(e,s,o)}}function A7(e,o){return async(t,r)=>{try{await XS()}catch(a){throw new Error(i("A change waiting to go live could not be saved."),{cause:a})}return(await e.publish(o)).state==="live"?_i({state:"live",changes:[]}):_t(0),{version:r??null}}}function Ux(e,o,t){let r=o?{siteId:o}:void 0;return{resolve:a=>e.load({slug:a,...r}).then(n=>(n&&Wd(n.id,n.live),n)),saveLayout:(a,n,s,l)=>e.save(a,{layout:n},{version:s,clientId:l??""}).then(c=>(Gd(a,c.live),_t(),c)),rereadVersion:e.version?a=>e.version(a):void 0,publish:jx(t)?A7(t,r):e.publish?(a,n)=>e.publish(a,n?{version:n}:void 0).then(s=>($d(a,s.live),s)):void 0,listPages:()=>e.list(r),createPage:e.create?a=>e.create({...a,...r}):void 0,deletePage:e.remove?(a,n)=>e.remove(a,n):void 0}}function F7(e,o,t,r,a=!1){let n=null,s=new Set,l=!1,c=new Map,d=new Map,p=new Map,h=new Map,u={docId:null,lockHolder:null,conflict:null,saveFailed:!1,unpublished:!1,loadFailed:!1,sections:[]},x=new Set,g=()=>{if(!n)return!1;let P=eE(n.id);return P==="changed"||P==="never"||P===void 0&&l},y=P=>{u={...u,...P,docId:n?.id??null,unpublished:g(),sections:[...p.values()]};for(let R of x)R()},T=(P,R,N)=>{R?p.set(P,{section:P,title:c.get(P)?.title??"",problem:R,holder:N}):p.delete(P)},O=P=>P&&typeof P=="object"&&!Array.isArray(P)?P:{},w=P=>s.has(P),I=()=>new Map([...c].map(([P,R])=>[P,R.layout])),C=()=>`SharedSection-${typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2)}`,v=(P,R,N,b)=>{let _=O(R);c.set(P,{layout:_,version:N,savedJson:JSON.stringify(_),title:b})},k={state:()=>u,subscribe:P=>(x.add(P),()=>{x.delete(P)})},A={sectionOf:P=>d.get(P)?.section??null,heldElsewhere:P=>{let R=d.get(P)?.section;return!!(R&&p.get(R)?.problem==="lock")},adopt:(P,R)=>{v(R.id,R.layout,R.layout_updated_at,R.title),d.set(P,{section:R.id,refId:C()}),h.set(R.id,R.used_on),y({})},place:P=>{if([...d.values()].some(b=>b.section===P.id))return null;let R=jd(O(P.layout)),N=typeof R?.props?.id=="string"?R.props.id:null;return!R||!N||!R.type?null:(v(P.id,P.layout,P.layout_updated_at,P.title),d.set(N,{section:P.id,refId:C()}),h.set(P.id,P.used_on),R)},usedOn:P=>h.get(P)??null,learn:P=>{for(let R of P){h.set(R.id,R.used_on);let N=c.get(R.id);N&&(N.title=R.title);let b=p.get(R.id);b&&p.set(R.id,{...b,title:R.title})}y({})}},D=async(P,R)=>{for(let[N,b]of P){let _=c.get(N),F=JSON.stringify(b);if(!(!_||F===_.savedJson||p.get(N)?.problem==="lock"))try{let H=await e.save(N,{layout:b},{version:_.version,clientId:R??""});Gd(N,H.live),_.layout=b,_.version=H.version,_.savedJson=F,T(N,null)}catch(H){Tn(H,"changed-elsewhere")?T(N,"conflict"):Tn(H,"lock-taken")?T(N,"lock",H.holder??void 0):T(N,"save")}}P.size&&_t(),y({})};return{resolve:async P=>{if(Gx(P===Xo?null:k),zx(P===Xo?null:A),c=new Map,d=new Map,p=new Map,h=new Map,P===Xo)return t.resolve(P);let R=!1,[N,b]=await Promise.all([t.resolve(P),e.load({slug:Xo,...o}).catch(()=>(R=!0,null))]);if(b&&!ss(N?.layout)){Wd(b.id,b.live);let U=O(b.layout);n={id:b.id,layout:U,version:b.version,savedJson:""}}else n=null;if(l=!1,!N)return y({conflict:null,saveFailed:!1,loadFailed:R}),N;let _=O(N.layout),F=xE(_),H=await Promise.all(F.map(U=>e.load({id:U.section,...o}).catch(()=>null)));F.forEach((U,ve)=>{let ne=H[ve];ne?(Wd(ne.id,ne.live),v(U.section,ne.layout,ne.version,"")):(c.delete(U.section),p.set(U.section,{section:U.section,title:"",problem:"load"}))});let Z=IE(_,I());if(d=Z.held,!n)return d.size&&s.add(N.id),y({conflict:null,saveFailed:!1,loadFailed:R}),d.size?{...N,layout:Z.working}:N;let q=uE(Z.working,n.layout);return n.savedJson=JSON.stringify(Hx(q,n.layout).chrome),s.add(N.id),y({conflict:null,saveFailed:!1,loadFailed:!1}),{...N,layout:q}},saveLayout:async(P,R,N,b)=>{if(!w(P))return t.saveLayout(P,R,N,b);let _=n,F=_?Hx(R,_.layout):{page:R,chrome:null},H=gE(F.page,d,I()),Z=await t.saveLayout(P,H.page,N,b);if(await D(H.docs,b),!_)return Z;let q=JSON.stringify(F.chrome);if(!F.chrome||q===_.savedJson||u.lockHolder)return Z;try{let U=await e.save(_.id,{layout:F.chrome},{version:_.version,clientId:b??""});Gd(_.id,U.live),_t(),_.layout=F.chrome,_.version=U.version,_.savedJson=q,l=!0,y({conflict:null,saveFailed:!1})}catch(U){Tn(U,"changed-elsewhere")?y({conflict:U.conflict??{savedBy:"",savedByYou:!1,secondsAgo:0}}):Tn(U,"lock-taken")?y({lockHolder:U.holder??{name:"",secondsSinceSeen:0,secondsSinceHeld:0}}):y({saveFailed:!0})}return Z},publish:t.publish?async(P,R)=>{let N=await t.publish(P,R),b=n;if(b&&w(P)&&!a&&e.publish&&g()&&!u.lockHolder){let _=await e.publish(b.id,b.version?{version:b.version}:void 0);$d(b.id,_.live),_.version!==null&&(b.version=_.version),l=!1,y({})}if(w(P)&&!a&&e.publish)for(let[_,F]of c){if(p.get(_)?.problem==="lock")continue;let H=await e.publish(_,F.version?{version:F.version}:void 0);$d(_,H.live),H.version!==null&&(F.version=H.version)}return N}:void 0,lock:r?{claim:async(P,R,N)=>{let b=await r.claim(P,R,N);if(!w(P))return b;let _=n;if(_)try{await r.claim(_.id,R,!1),u.lockHolder&&y({lockHolder:null})}catch(F){Tn(F,"lock-taken")&&y({lockHolder:F.holder??{name:"",secondsSinceSeen:0,secondsSinceHeld:0}})}for(let F of c.keys())try{await r.claim(F,R,!1),p.get(F)?.problem==="lock"&&T(F,null)}catch(H){Tn(H,"lock-taken")&&T(F,"lock",H.holder??void 0)}return c.size&&y({}),b},release:async(P,R)=>{if(await r.release(P,R),!w(P))return;let N=n;N&&!u.lockHolder&&await r.release(N.id,R).catch(()=>{});for(let b of c.keys())p.get(b)?.problem!=="lock"&&await r.release(b,R).catch(()=>{})}}:void 0,pinnedChrome:k}}function Vd(e){let o=(t,r,a)=>e.save(t,r.layout?{...r,layout:ty(r.layout)}:r,a);return new Proxy(e,{get(t,r){if(r==="save")return o;let a=Reflect.get(t,r,t);return typeof a=="function"?a.bind(t):a}})}function eke(e,o,t){return e.update(o,ry(t))}function oke(e,o=We(),t=Ax(),r={}){let a=wE(o),n=e?{siteId:e}:void 0,s=a?!!e:!0,l=o.site.update,c=a&&t.commerce&&t.service,d=!!r.editsPinnedInPlace&&c,p=jx(o.site)?o.site:void 0,h=Vd(o.pages),u=Ux(h,e,p),x=d?F7(h,n,u,o.lock,!!p):null;return{capabilities:{canPublish:!!p||!!o.pages.publish,hasSiteSettings:a,hasSiteTheme:!!o.theme,placeholderFrames:!1,mediaEditing:!0,pageCreationInAdminForm:!o.pages.create,canDeletePagesInline:!!o.pages.remove,hasEditLock:!!o.lock,hasEditGuard:!0,hasPinnedChrome:c,editsPinnedInPlace:d,explainsSiteSettings:!1,hasSiteRecord:s,canEditSiteRecord:s&&!!l,hasPreviewLink:a||!!o.preview,hasCatalog:a&&t.commerce,hasForms:a&&t.service,hasBlog:!!o.blog&&t.service,offersCommerce:t.commerce,offersService:t.service},...u,...CE(u.resolve),lock:o.lock,...x,site:s?()=>o.site.get(n):void 0,siteLiveState:p?()=>p.liveState(n):void 0,siteVersions:R7(p,n),updateSite:s&&l?g=>l(g,n):void 0,previewHref:o.preview?g=>o.preview.href(g):void 0}}function tke(e,o=We(),t=Ax()){let r=wE(o),a=o.templates,n=a?Vd(a.pages(e)):{list:()=>Promise.reject(new Error($x)),load:()=>Promise.reject(new Error($x)),save:()=>Promise.reject(new Error($x))};return{capabilities:{canPublish:!1,hasSiteSettings:!1,hasSiteTheme:!1,placeholderFrames:!0,mediaEditing:!1,pageCreationInAdminForm:!n.create,canDeletePagesInline:!!n.remove,hasEditLock:!1,hasEditGuard:!1,hasPinnedChrome:r&&t.commerce&&t.service,editsPinnedInPlace:!1,explainsSiteSettings:r,hasSiteRecord:!1,canEditSiteRecord:!1,hasPreviewLink:!1,hasCatalog:r&&t.commerce,hasForms:r&&t.service,hasBlog:!!o.blog&&t.service,offersCommerce:t.commerce,offersService:t.service},...Ux(n,void 0),...CE(Ux(n,void 0).resolve),publish:void 0,templateName:a?()=>a.get(e).then(s=>s.name):void 0}}function CE(e){return{resolve:o=>(Gx(null),zx(null),e(o))}}var $x="This editor's backend has no website templates.";function vE({node:e,currentSlug:o,siteId:t,tokenRef:r,runAuthed:a,onNotify:n}){let[s,l]=ol(!1),[c,d]=ol(null),p=W7(),[h,u]=ol(!1),[x,g]=ol(null),y=D7(null),[T,O]=ol(null),w=B7(async()=>{if(p.usesBridgedToken&&!r.current){u(!0);return}try{d(await We(p).pages.list(t?{siteId:t}:void 0))}catch{u(!0)}},[r,t,p]),I=()=>{if(s){l(!1);return}let k=y.current?.getBoundingClientRect();k&&O({top:k.bottom+6,right:Math.max(8,window.innerWidth-k.right)}),d(null),u(!1),w(),l(!0)},C=(c??[]).filter(k=>k.slug!==o),v=async k=>{if(x)return;g(k.slug);let A=G7(e),D=p.documentHooks?.storedNode?.(A)??A,P=await a(()=>U7(We(p).pages,k,D));g(null),l(!1),n?.(P?i("Duplicated to \u201C{name}\u201D",{name:k.label}):i("Couldn\u2019t duplicate the section \u2014 please retry"),P?"success":"error")};return Kx(L7,{children:[ct("span",{"data-menu-toggle":!0,style:{display:"contents"},children:ct(N7,{buttonRef:y,label:i("Duplicate to another page"),hasPopup:"menu",expanded:s,onClick:I,children:ct(z7,{size:15})})}),s&&T&&ct(M7,{portal:!0,style:{top:T.top,right:T.right},onClose:()=>l(!1),children:Kx("div",{role:"menu","aria-label":i("Duplicate to page"),children:[ct(Yd,{children:i("Duplicate to page")}),h?ct(Yd,{children:i("Couldn\u2019t load pages")}):c===null?ct(Yd,{children:i("Loading\u2026")}):C.length===0?ct(Yd,{children:i("No other pages")}):C.map(k=>Kx(H7,{role:"menuitem",disabled:x!==null,onClick:()=>{v(k)},children:[ct("span",{className:"min-w-0 flex-1 truncate",children:k.label}),x===k.slug?ct("span",{className:"shrink-0 text-xs",children:i("Copying\u2026")}):k.draft&&ct("span",{className:"shrink-0 text-xs",children:i("draft")})]},k.id))]})})]})}async function U7(e,o,t){let r=Vd(e),a=await r.load({id:o.id});if(!a)throw new Error(`Page "${o.slug}" no longer exists.`);let n=a.layout??{},s=Array.isArray(n.content)?[...n.content]:[],l=s.findIndex(c=>c?.type===$7);s.splice(l===-1?s.length:l,0,t),await r.save(o.id,{layout:{root:{},zones:{},...n,content:s}},{version:a.version,clientId:""})}import{useScreenDocument as Eq}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSectionOps as Oq}from"efficient-easel/screen/lib/document/use-section-ops";import{SELECTION_MODE as _Te,isSelectionMode as Zx}from"efficient-easel/screen/lib/screen-parts";import{usePreviewParts as _q}from"efficient-easel/draw/client";import{jsx as tl,jsxs as j7}from"react/jsx-runtime";import{SettingsDrill as K7}from"efficient-easel/panel";import{UiIcon as q7}from"efficient-easel/draw/client";var V7="Not shown on the page";function Y7({part:e,onOpen:o}){return tl(K7,{name:i(e.label),preview:e.offPage?i(V7):e.preview||i("Empty"),offPage:e.offPage,status:e.hidden?tl("span",{className:"sf-entry-eye",role:"img","aria-label":i("Hidden on the page"),children:tl(q7,{name:"eye-off",size:14})}):void 0,onOpen:()=>o(e.key)})}function qx(e){return e.filter(o=>!o.identifier)}function kE({parts:e,onOpen:o,heading:t=!0}){let r=qx(e);return r.length?j7("div",{className:"sf-entries",children:[t?tl("h3",{className:"sf-entries-head",children:i("Text")}):null,r.map(a=>tl(Y7,{part:a,onOpen:o},a.key))]}):null}import{HEADER_TYPE as Rq,ROOT_ZONE as GE}from"efficient-easel/draw";import{HEADER_TYPE as So,FOOTER_TYPE as Be,newNodeId as X7}from"efficient-easel/draw";function Xd(){return{type:So,props:{id:X7(So)}}}var TE=[{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"}],Z7=TE.filter(e=>e.type!=="FooterLogo"&&e.type!=="FooterGroup"),J7="FooterGroup",PE="blocks";function EE(e){return e===Be?TE:e===J7?Z7:null}function Zd(){let e=(o,t)=>({type:o,props:{id:`${o}-${crypto.randomUUID()}`,...t}});return[e("FooterLogo",{widthPct:100,align:"left",tagline:""}),e("FooterEmailSignup",{...kw}),e("FooterPayment",{...Tw})]}function Vx(e){switch(e?.type){case Le:case Oe:return i("On every page");case So:case Be:return i("On every page \xB7 old style");default:return null}}var OE=()=>null,_E=()=>i("Changed on every page");function Jd(e,o){let t=oS(e,o);if(t)return t;let r=iE(e,o);if(!r)return null;let a=r.group===Le;return r.why==="type"?a?i("The header cannot take another one of these"):i("The footer cannot take another one of these"):a?i("The header holds at most 3 sections"):i("The footer holds at most 6 sections")}import{jsx as ef,Fragment as cq,jsxs as dq}from"react/jsx-runtime";import{useState as fq}from"react";import{createNode as uq,newId as pq}from"efficient-easel/data";import{useEasel as mq}from"efficient-easel/easel";import{Banner as hq,Button as Yx}from"efficient-shell/ui";import{useScreenDocument as xq}from"efficient-easel/screen/components/ScreenDocumentContext";import{isNodeList as Q7}from"efficient-easel/data";var Qd="Flex",eq={FooterMenu:"MenuBlock",FooterEmailSignup:"EmailFormBlock",FooterSocial:"SocialLogosBlock",FooterPayment:"PaymentLogosBlock"},oq=e=>{let{id:o,...t}=e;return t},RE=e=>typeof e=="string"?e:"",AE={sm:12,md:13,lg:15},tq="md",FE=1.5,rq={size:13,lineHeight:FE,width:280},aq=14,nq=40,sq=e=>e==="center"||e==="right"?e:"left";function lq(e){let o={},t=[["padTop","sectionPaddingTop"],["padRight","sectionPaddingRight"],["padBottom","sectionPaddingBottom"],["padLeft","sectionPaddingLeft"]];for(let[r,a]of t){let n=$(e[r]);n&&(o[a]=n)}return o}function iq(e,o,t){let r=t(e,oq(o));if(Array.isArray(o.template))return{...r,props:{...r.props,template:LE(o.template,String(r.props.id))}};if(o.template!==void 0)return r;let a=qb(e,r.props);return a===r.props?r:{...r,props:a}}function LE(e,o,t={at:0}){return e.map(r=>{let a={...r.props,id:`${o}~t${t.at++}`};for(let[n,s]of Object.entries(a))Q7(s)&&(a[n]=LE(s,o,t));return{...r,props:a}})}function BE(e,o){let t=e.props??{},r=eq[e.type];if(r)return[iq(r,t,o)];switch(e.type){case"FooterLogo":{let a=sq(t.align),n=o("LogoBlock",{...t.reverse?{reverse:t.reverse}:{},...typeof t.customColor=="string"&&t.customColor?{customColor:t.customColor}:{},heightPx:Math.round(fb*(($(t.widthPct)??100)/100)),href:"/",align:a,...lq(t)}),s=RE(t.tagline).trim();return s?[n,o("Text",{text:s,tone:"dim",align:a,_partStyles:{text:{...rq}}})]:[n]}case"FooterText":{let a=typeof t.size=="string"&&t.size in AE?t.size:tq;return[o("Text",{text:RE(t.text),tone:typeof t.tone=="string"?t.tone:"default",_partStyles:{text:{size:AE[a],lineHeight:FE}}})]}case"FooterDivider":{let a=$(t.thickness),n=$(t.lengthPct);return[o("Divider",{...a!==void 0?{thickness:a}:{},...n!==void 0?{lengthPct:n}:{},...t.hideOnMobile===!0?{hideOnMobile:!0}:{}})]}case"FooterGroup":{let a=Array.isArray(t.blocks)?t.blocks:[];return[o(Qd,{direction:t.direction==="horizontal"?"row":"column",gap:jr("FooterGroup",t.gap),align:t.align==="center"||t.align==="end"||t.align==="stretch"?t.align:"start",...Un,content:a.flatMap(n=>BE(n,o))})]}default:return[]}}function rl(e,o,t){let r=e&&Array.isArray(e.props?.blocks)?e.props.blocks:[],a=d=>o(Qd,{direction:"row",wrap:!0,share:"equal",gap:nq,content:d}),n=[],s=[];for(let d of r){let p=BE(d,o);if(d.type==="FooterDivider"){s.length&&n.push(a(s)),s=[],n.push(...p);continue}p.length<=1?s.push(...p):s.push(o(Qd,{direction:"column",gap:aq,align:"stretch",...Un,content:p}))}(s.length||!n.length)&&n.push(a(s));let l=o(Qd,{direction:"column",content:[o("LegalLineBlock")]}),c=nE(Oe,t,[...n,l]);return{...c,props:{...c.props,...e?.props?.width==="full"?{fullWidth:!0}:{}}}}function DE(){let{appState:e,dispatch:o,config:t}=mq(p=>p),{readOnly:r}=xq(),[a,n]=fq(!1),s=e.data.content;if(r||s.some(p=>p.type===Oe))return null;let l=s.find(p=>p.type===Be)??null,c=(p,h)=>uq(t,p,h),d=()=>{let p=rl(l,c,pq(Oe));o({type:"setData",data:h=>({...h,content:[...Ud(h.content,p)]}),recordHistory:!0}),n(!1)};return ef(hq,{tone:"info",title:i("This footer uses the old layout"),action:a?dq(cq,{children:[ef(Yx,{variant:"primary",size:"sm",onClick:d,children:i("Switch now")}),ef(Yx,{variant:"secondary",size:"sm",onClick:()=>n(!1),children:i("Cancel")})]}):ef(Yx,{variant:"secondary",size:"sm",onClick:()=>n(!0),children:i("Switch to Box footer")}),children:i("Build this footer out of Boxes and blocks, like a page: the same menus, signup, social links and logo, with the copyright as a Legal Line. Your current footer is kept.")})}import{jsx as Xx,jsxs as Iq}from"react/jsx-runtime";import{InspectorUpLevel as NE}from"efficient-easel/chrome";function ME({nodeId:e,part:o,sectionName:t,onUpToSection:r}){let{select:a}=fd(),n=yn(e,o,"picture");return Iq("div",{children:[o!=="media"?Xx(NE,{inline:!0,name:i(mn.media),onSelect:()=>a(Bs(e,"media"))}):Xx(NE,{inline:!0,name:i(t),onSelect:r}),Xx(st,{part:o,motion:n})]})}import{SettingsSwitch as Aq}from"efficient-easel/panel";var UE={kind:"header"},Qx={kind:"website"},jE={kind:"website",tab:fn,revealPageGroup:!0},KE={kind:"chat"},qE={kind:"social"},al="Part";function Fq(e){return i("Part of {name}",{name:i(e)})}function Lq(e,o,t){let r=e.describeNode(o);return{name:t,kindLabel:r?Fq(r.label):i(al)}}function Bq(e){switch(e){case"Header":return{title:i("Header settings belong to a website."),own:i("Each website created from this template sets its own header afterwards.")};case"Appearance":return{title:i("Appearance settings belong to a website."),own:i("Each website created from this template sets its own appearance afterwards.")};case"Live chat":return{title:i("Live chat settings belong to a website."),own:i("Each website created from this template sets its own live chat afterwards.")};case"Social link":return{title:i("Social link settings belong to a website."),own:i("Each website created from this template sets its own social link afterwards.")};default:return{title:i("{what} settings belong to a website.",{what:e}),own:i("Each website created from this template sets its own {what} afterwards.",{what:e.toLowerCase()})}}}function VE({what:e}){let o=Bq(e);return ua("div",{className:"sf-note",children:[xe("p",{children:xe("strong",{children:o.title})}),ua("p",{children:[i("A template is a blueprint \u2014 it has no website of its own, so there is nothing here to change.")," ",o.own]})]})}function Jx(e){let o=Ls[e];return{name:mn[e],kindLabel:al,icon:o,head:(t,r)=>{if(t.kind!==o)return null;let a=r.describeNode(t.nodeId);if(!a)return null;let n=$E({name:i(pd(e,a.props)),tier:"part",of:i(a.label)},{partOf:({name:s})=>i("Part of {name}",{name:s})});return{name:n.name,kindLabel:n.kind}},render:(t,r)=>t.kind===o?xe(ME,{nodeId:t.nodeId,part:e,sectionName:r.describeNode(t.nodeId)?.label??"Hero",onUpToSection:()=>r.onSelectNode(t.nodeId)}):null}}var Dq={header:{name:"Header",kindLabel:"Site settings",icon:"header",render:(e,o)=>{let t=o.hostPanels?.header;return t?xe(t,{placeholderMode:o.capabilities.placeholderFrames,tokenRef:o.tokenRef,siteId:o.siteId,websiteName:o.websiteName,onOpenWebsiteSettings:o.onOpenWebsiteSettings,onAuthExpired:()=>o.notifyParent("storefront-editor:auth-expired")}):null}},website:{name:"Appearance",kindLabel:"Site settings",icon:"website",render:(e,o)=>xe(td,{initialTab:e.tab,revealPageGroup:e.revealPageGroup,themeFromDocument:!o.capabilities.hasSiteTheme,tokenRef:o.tokenRef,siteId:o.siteId,onNotify:o.onNotify},e.tab??"")},chat:{name:"Live chat",kindLabel:"Site settings",icon:"chat",render:()=>xe(fP,{})},social:{name:"Social links",kindLabel:"Site settings",icon:"social",render:()=>xe(IP,{unavailable:xe(VE,{what:"Social link"})})},ticker:{name:Rs,kindLabel:al,icon:"ticker",head:(e,o)=>e.kind==="ticker"?Lq(o,e.heroId,i(Rs)):null,render:e=>xe(w0,{heroId:e.kind==="ticker"?e.heroId:""})},heroMedia:Jx("media"),heroImage:Jx("image"),heroImage2:Jx("image2"),part:{name:al,kindLabel:al,icon:"Text",head:(e,o)=>{if(e.kind!=="part")return null;let t=o.describeNode(e.nodeId);if(!t)return null;let{key:r,row:a}=ot(e.propKey),n=a?Qa(t.fields[r],a):t.fields[r],s=Dd(t.type),l=s?Ss(s,e.propKey):null,c=s&&l?s[l].label:F0[e.propKey],d=c?i(c):vv(i(vm(Cc(n??{},r))),a),p=$E({name:d,tier:"part",of:i(t.label)},{partOf:({name:h})=>i("Part of {name}",{name:h})});return{name:p.name,kindLabel:p.kind}},render:(e,o)=>e.kind==="part"?xe(Q0,{nodeId:e.nodeId,propKey:e.propKey,onBack:()=>o.onSelectNode(e.nodeId),onEditStyle:o.onOpenSiteStyles}):null}},Nq=new Set(["header","website","chat"]);function Mq(e,o){if(e==="selection")return null;let t=Dq[e];return Nq.has(e)&&!o.hasSiteSettings?{...t,kindLabel:"Not part of a template",render:()=>xe(VE,{what:t.name})}:t}function YE({mode:e,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onOpenPageStyles:r,onSelectNode:a,hideNodeActions:n=!1,onNotify:s,onHidePanel:l}){let{capabilities:c,tokenRef:d,notifyParent:p,currentSlug:h,siteId:u,runAuthed:x,readOnly:g,navigate:y}=Eq(),{rows:T}=Es(),O=T?.find(le=>le.slug===h)??null,w=yq(),I=Object.keys(w.fields).some(le=>!le.startsWith("_")&&!Ts.includes(le)),{websiteName:C}=de(),v=Oq({readOnly:g}),{select:k}=_q(),{selectedItem:A,getItemById:D,getSelectorForId:P,config:R,appState:N}=bq(le=>le),b=Tq(R,A?{type:A.type,props:A.props}:null),_=A?Rv(b??R.components[A.type]?.fields,A.props):[],F=le=>R.components[le]?.label??le,H=A?P(A.props.id):void 0,Z=Mq(e.kind,c),q=Pq(),U={capabilities:c,tokenRef:d,hostPanels:q.chrome?.panels,describeNode:le=>{let Se=D(le);if(!Se)return null;let He=R.components[Se.type];return{type:Se.type,label:He?.label??Se.type,fields:He?.fields??{},props:Se.props??{}}},siteId:u,websiteName:C??null,notifyParent:p,onNotify:s,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onSelectNode:a},ve=Z?.head?.(e,U)??null,ne=nP({kind:O?.kind,pageName:O?.label}),Ue=ve?.name??(Z?i(Z.name):A?i(F(A.type)):ne.name),De=ve?.kindLabel??(Z?i(Z.kindLabel):A?H&&H.zone!==GE?i("Block"):i("Section"):ne.kindLabel),Te=Z?Z.icon:A?A.type:"page",pe=Z?null:A?R.components[A.type]?.fields??null:R.root?.fields??null,ge=pe?jP(pe):2,qe=Zx(e)&&A?Vs(A.type):null,Ve=!!A&&!!H&&H.zone===GE&&A.type!==Be&&A.type!==Rq,se=Jd(N?.data,A),Fe=()=>{se||H&&v.duplicateComponent(H.zone,H.index)},so=()=>{H&&(v.removeComponent(H.zone,H.index),v.select(null))},Pe=A?R.components[A.type]?.defaultProps?.previewHover:void 0,Ne=Zx(e)&&!!A&&!!H&&Pe!==void 0,go=Ne&&A.props.previewHover===!0,To=()=>{!A||!H||v.replaceComponent(H.zone,H.index,{...A,props:{...A.props,previewHover:!go}})},[Po,M]=gq(Eh);return ua("div",{className:`es-sidepanel es-sidepanel--right sf-panel sf-panel--right${Po||!(!Z&&A)?"":" sf-hints-folded"}`,children:[xe(Cq,{icon:xe(na,{type:Te,size:15}),name:Ue,kind:De,actions:!n&&Zx(e)&&A&&A.type!==Be?ua(HE,{children:[xe(zE,{label:i("Duplicate section"),title:se??void 0,disabled:se!==null,onClick:Fe,children:xe(vq,{size:15})}),Ve&&c.hasSiteSettings&&xe(vE,{node:A,currentSlug:h,siteId:u??void 0,tokenRef:d,runAuthed:x,onNotify:s}),xe(zE,{label:i("Remove section"),danger:!0,onClick:so,children:xe(kq,{size:15})}),l?xe(WE,{side:"right",onHide:l,divider:!0}):null]}):l?xe(WE,{side:"right",onHide:l}):void 0}),Ne&&ua("div",{className:"sf-preview-pin",children:[ua("div",{className:"sf-preview-pin-text",children:[xe("span",{className:"sf-preview-pin-label",children:i("Preview hover state")}),xe("span",{className:"sf-preview-pin-hint",children:i("not shown live")})]}),xe(Aq,{checked:go,onChange:To,ariaLabel:i("Preview hover state")})]}),xe(TC,{tier:ge,children:xe("div",{className:"sf-insp-body es-insp-body sf-scroll",children:Z?Z.render(e,U):A?ua(HE,{children:[A.type===Be&&c.hasSiteSettings&&xe(DE,{}),xe(RS,{children:xe(st,{entries:xe(kE,{parts:_,heading:!1,onOpen:le=>k(Sc(A.props.id,le))}),entryCount:qx(_).length})}),qe&&xe(zd,{source:qe,slug:Sn(A?.props),menuId:Ld(A?.props)}),xe(Oh,{shown:Po,onChange:M})]}):I?xe(st,{omit:Ts}):xe(wq,{variant:"none",icon:!1,message:i("Select a section or block to edit it."),children:r&&xe(Sq,{variant:"secondary",onClick:r,children:i("This page")})})})})]})}import{jsx as f,jsxs as E,Fragment as eO}from"react/jsx-runtime";var eo={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)"},eI="repeating-linear-gradient(135deg,var(--sf-thumb-hatch1) 0,var(--sf-thumb-hatch1) 5px,var(--sf-thumb-hatch2) 5px,var(--sf-thumb-hatch2) 10px)";function z({w:e,h:o,tone:t="dark",r=2,style:a}){return f("div",{style:{width:e,height:o,borderRadius:r,background:eo[t],flex:"none",...a}})}var Hq={Hero:"hero",HeroSingle:"herosingle",IntroBleed:"intro",Collections:"collections",AlloyWheelsListing:"wheelslisting",CatalogFilterBar:"catalogfilterbar",ProductGrid:"productgrid",FitmentFinder:"fitmentfinder",Gallery:"gallery",GalleryB:"gallerygrid",SpecStrip:"specstrip",ProductHero:"producthero",SpecTable:"spectable",ProcessSteps:"processsteps",DetailRows:"detailrows",FitmentTable:"fitmenttable",CompatibleTyres:"compatibletyres",TyreSizes:"tyresizes",TyreFitment:"tyrefitment",EuTyreLabel:"eutyrelabel",RelatedProducts:"productgrid",BundleOffer:"bundleoffer",OrderSummary:"ordersummary",DeliveryOptions:"deliveryoptions",PaymentBadges:"paymentbadges",CheckoutCTA:"checkoutcta",Manifesto:"manifesto",ParagraphsA:"paragraphs",Prose:"prose",StatsParagraph:"statsparagraph",Chart:"chart",Mockup:"mockup",Footprint:"footprint",Timeline:"timeline",TimelineTrack:"timelinetrack",TitleWithButtons:"titlewithbuttons",Split:"split",Cards:"cards",FAQ:"faq",Testimonials:"testimonials",Masthead:"masthead",Breadcrumb:"breadcrumb",CategoryBar:"categorybar",FeaturedCover:"featuredcover",LongRead:"longread",Series:"series",Subscribe:"subscribe",SubscribeBlogs:"subscribe",Events:"events",DocMasthead:"docmasthead",DocTabs:"doctabs",DocBody:"docbody",DocMetaCards:"docmetacards",Banner:"banner",Stats:"stats",KeyFeatures:"keyfeatures",Logos:"logos",Ticker:"ticker",Countdown:"countdown",Reviews:"reviews",SubmitBuild:"submitbuild",ReviewForm:"reviewform",Form:"form",AppointmentBooking:"appointmentbooking",ContactRouting:"contact",ContactLocations:"contactlocations",CityPictures:"citypictures",CityMaps:"citymaps",Header:"header",Footer:"footer",SectionHeader:"sectionheader",Grid:"grid",Flex:"blanksection",Spacer:"spacer",Divider:"divider",CustomHTML:"customhtml",Heading:"heading",Text:"text",ImageBlock:"image",ButtonBlock:"button",MenuBlock:"menu",EmailFormBlock:"emailform",SocialLogosBlock:"sociallogos",PaymentLogosBlock:"paymentlogos",LegalLineBlock:"legalline",SearchBlock:"search",CartBlock:"cart",CountrySwitchBlock:"countryswitch"},j={position:"absolute",inset:0},m={ink:"var(--sf-thumb-ink)",ink2:"var(--sf-thumb-ink-2)",inkSoft:"var(--sf-thumb-ink-soft)",inkSoft2:"var(--sf-thumb-ink-soft-2)",paper:"var(--sf-thumb-paper)",paper2:"var(--sf-thumb-paper-2)",warm:"var(--sf-thumb-warm)",rust:"var(--sf-thumb-rust)",onInk:"var(--sf-thumb-on-ink)",text:"var(--sf-thumb-scene-text)",muted:"var(--sf-thumb-scene-muted)",rule:"var(--sf-thumb-scene-rule)",mark1:"var(--sf-thumb-mark-1)",mark2:"var(--sf-thumb-mark-2)",card:"var(--sf-thumb-card)",scrim:"var(--sf-thumb-scrim)"},Re=(e,o,t=160)=>({background:`linear-gradient(${t}deg,${e},${o})`});function Gt({size:e,style:o}){let t=Math.max(2,Math.round(e*.13)),r=(a,n,s)=>({position:"absolute",inset:a,background:n,borderRadius:t,...s?{mixBlendMode:s}:null});return E("span",{style:{position:"absolute",display:"block",width:e,height:e,...o},children:[f("span",{style:r("8% 26% 30% 6%",m.mark1)}),f("span",{style:r("26% 6% 8% 30%",m.mark2,"multiply")})]})}function tf({children:e}){return f("span",{style:{fontSize:"4.64cqw",fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:m.muted},children:e})}function XE({over:e,overTone:o,head:t,headSize:r=11.5,cta:a,ctaBg:n,ctaFg:s,tone:l}){return E(eO,{children:[e&&f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:o},children:e}),f("span",{style:{fontSize:r,lineHeight:1.15,fontWeight:700,maxWidth:"78%",color:l},children:t}),a&&f("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,marginTop:2,background:n,color:s},children:a})]})}function oI({name:e,price:o}){return E("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[f("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",...Re(m.paper,m.paper2,150)},children:f(Gt,{size:34,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),f("span",{style:{fontSize:"3.65cqw",fontWeight:600,color:m.text},children:e}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:o})]})}function Wt({k:e,v:o,ok:t}){return E("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,padding:"3.5px 2px",borderBottom:`1px solid ${m.rule}`,fontSize:"3.98cqw",color:m.muted},children:[f("span",{children:e}),E("span",{style:{display:"flex",gap:6,alignItems:"center"},children:[f("b",{style:{color:m.text,fontWeight:700},children:o}),t&&f("span",{style:{color:m.rust,fontWeight:700},children:"\u2713"})]})]})}function ke({title:e,children:o}){return E("div",{style:{...j,background:m.card,padding:"9px 10px",display:"flex",flexDirection:"column",gap:6},children:[f(tf,{children:e}),o]})}function ZE({size:e=14}){return f("span",{style:{width:e,height:e,borderRadius:"50%",flex:"none",display:"block",background:`linear-gradient(150deg,${m.mark1},${m.mark2})`}})}function tI({filled:e=5,size:o=6}){return E("span",{style:{fontSize:o,letterSpacing:"0.06em",color:m.rust,lineHeight:1},children:["\u2605".repeat(e),f("span",{style:{color:m.mark1},children:"\u2605".repeat(5-e)})]})}function nl({n:e,label:o,tone:t=m.text}){return E("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[f("b",{style:{fontSize:"8.16cqw",lineHeight:1,color:t},children:e}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",opacity:.62,color:t},children:o})]})}function po({children:e,w:o}){return f("span",{style:{fontSize:"3.98cqw",lineHeight:1.45,color:m.muted,width:o,display:"block"},children:e})}function of({label:e,w:o="100%",filled:t}){return E("div",{style:{width:o,display:"flex",flexDirection:"column",gap:2},children:[f("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:m.muted},children:e}),f("span",{style:{height:9,borderRadius:3,border:`1px solid ${m.rule}`,background:t?m.paper:m.card}})]})}function JE({children:e}){return f("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:m.text,color:m.onInk},children:e})}var zq={wheelslisting:f(ke,{title:"All wheels",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Ridge 19","20\xD79 +12","$365"],["Ridge 29","18\xD79 +20","$410"],["Ridge 39","17\xD78 \u221210","$455"]].map(([e,o,t])=>E("div",{style:{display:"flex",alignItems:"center",gap:6},children:[f("span",{style:{width:20,height:15,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",...Re(m.paper,m.paper2,150)},children:f(Gt,{size:12,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),f("b",{style:{flex:1,fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:o}),f("b",{style:{fontSize:"4.31cqw",color:m.text,width:26,textAlign:"right"},children:t})]},e))})}),catalogfilterbar:E("div",{style:{...j,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[E("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[["20 inch","6\xD7139.7","Black"].map(e=>E("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"4px 7px",borderRadius:99,background:m.text,color:m.onInk,display:"flex",gap:4,alignItems:"center"},children:[e,f("span",{style:{opacity:.6},children:"\u2715"})]},e)),f("span",{style:{fontSize:"3.65cqw",color:m.rust,fontWeight:700},children:"Clear"})]}),E("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"128 results"}),f("span",{style:{fontSize:"3.65cqw",color:m.muted,border:`1px solid ${m.rule}`,borderRadius:3,padding:"3px 6px"},children:"Sort: Price \u25BE"})]})]}),fitmentfinder:E("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center",...Re(m.ink,m.inkSoft)},children:[f("span",{style:{fontSize:"5.31cqw",fontWeight:700,color:m.onInk},children:"Will it fit your rig?"}),E("div",{style:{display:"flex",gap:4},children:[["2021","Toyota","Hilux"].map(e=>E("span",{style:{flex:1,fontSize:"3.65cqw",color:m.text,background:m.card,borderRadius:3,padding:"5px 6px",display:"flex",justifyContent:"space-between"},children:[e," ",f("span",{style:{color:m.muted},children:"\u25BE"})]},e)),f("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.08em",background:m.warm,color:m.ink,borderRadius:3,padding:"5px 7px"},children:"GO"})]})]}),compatibletyres:f(ke,{title:"Tyres that suit",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Ridge Grappler","$489"],["Trail Grappler","$525"],["Terra Grappler","$438"]].map(([e,o])=>E("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[f("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",background:m.ink},children:f("span",{style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%,-50%)",width:26,height:26,borderRadius:"50%",border:`5px solid ${m.mark2}`,boxSizing:"border-box"}})}),f("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:m.text,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:e}),f("span",{style:{fontSize:"3.32cqw",color:m.muted},children:o})]},e))})}),tyresizes:f(ke,{title:"Available sizes",children:f("div",{style:{flex:1,display:"flex",flexWrap:"wrap",gap:4,alignContent:"center"},children:["265/65R17","285/70R17","265/60R18","275/55R20"].map((e,o)=>f("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"5px 7px",borderRadius:3,border:`1px solid ${o===0?m.rust:m.rule}`,color:o===0?m.rust:m.text,background:o===0?m.paper:m.card},children:e},e))})}),tyrefitment:E(ke,{title:"Will it fit your car?",children:[f("div",{style:{display:"flex",gap:3},children:["Make","Model","Year","Trim"].map(e=>E("span",{style:{flex:1,minWidth:0,fontSize:"3.32cqw",color:m.muted,background:m.paper,border:`1px solid ${m.rule}`,borderRadius:3,padding:"4px 5px",display:"flex",justifyContent:"space-between",gap:2,overflow:"hidden",whiteSpace:"nowrap"},children:[e," ",f("span",{style:{color:m.muted},children:"\u25BE"})]},e))}),f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2,justifyContent:"center",minHeight:0},children:[["265/65R17","Fits",!0],["285/70R17","Not your size",!1]].map(([e,o,t])=>E("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:6,borderTop:`1px solid ${m.rule}`,paddingTop:3},children:[f("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:m.text},children:e}),f("span",{style:{fontSize:"3.32cqw",fontWeight:t?700:400,letterSpacing:"0.06em",color:t?m.warm:m.muted},children:o})]},e))})]}),eutyrelabel:E("div",{style:{...j,background:m.card,padding:"9px 11px",display:"flex",gap:8,alignItems:"center"},children:[f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1.5},children:[["A","42%"],["B","56%"],["C","70%"],["D","84%"]].map(([e,o],t)=>E("div",{style:{display:"flex",alignItems:"center",gap:3},children:[f("span",{style:{width:o,height:6,borderRadius:"0 2px 2px 0",background:t===1?m.rust:m.mark1}}),f("span",{style:{fontSize:"3.32cqw",fontWeight:700,color:t===1?m.rust:m.muted},children:e})]},e))}),E("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:3,alignItems:"center"},children:[f("b",{style:{fontSize:"6.63cqw",lineHeight:1,color:m.text},children:"72"}),f("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",color:m.muted},children:"dB"})]})]}),bundleoffer:E("div",{style:{...j,background:m.paper,padding:"9px 11px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[f(tf,{children:"Buy it with"}),E("div",{style:{display:"flex",alignItems:"center",gap:5},children:[[0,1].map(e=>f("span",{style:{width:26,height:22,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",background:m.card},children:f(Gt,{size:17,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})},e)),f("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:m.muted},children:"+"}),E("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1},children:[f("span",{style:{fontSize:"3.65cqw",color:m.muted,textDecoration:"line-through"},children:"$1,024"}),f("b",{style:{fontSize:"6.02cqw",color:m.rust,lineHeight:1},children:"$899"})]})]})]}),checkoutcta:E("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,...Re(m.ink,m.ink2)},children:[E("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",color:m.warm,fontWeight:700},children:"READY TO ORDER"}),f("b",{style:{fontSize:"6.63cqw",color:m.onInk,lineHeight:1},children:"$1,956"}),f("span",{style:{fontSize:"3.65cqw",color:m.onInk,opacity:.65},children:"4 items \xB7 fitted free"})]}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"6px 10px",borderRadius:2,background:m.warm,color:m.ink,flex:"none"},children:"CHECKOUT"})]}),contact:f(ke,{title:"Who do you need?",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Fitment help","the workshop"],["Order status","the front desk"],["Trade accounts","sales"]].map(([e,o])=>E("div",{style:{display:"flex",alignItems:"center",gap:5},children:[f("b",{style:{flex:1,fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:o}),f("span",{style:{fontSize:"4.64cqw",color:m.rust,lineHeight:1},children:"\u203A"})]},e))})}),contactlocations:f(ke,{title:"Find us",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["Brisbane","7 Kerry Rd","Mon\u2013Sat"],["Townsville","12 Enterprise","Mon\u2013Fri"]].map(([e,o,t])=>E("div",{style:{border:`1px solid ${m.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[f("b",{style:{fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.32cqw",color:m.muted},children:o}),f("span",{style:{fontSize:"3.32cqw",color:m.rust,fontWeight:700},children:t})]},e))})}),citypictures:f(ke,{title:"Our studios",children:E("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3,minHeight:0},children:[f("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.12em",fontWeight:700,color:m.muted},children:"A \xB7 AMERICAS"}),f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:["Los Angeles","Miami","Toronto"].map(e=>E("div",{style:{position:"relative",minHeight:0},children:[f(z,{r:3,style:{...j,background:`linear-gradient(transparent 45%,${m.scrim} 45%),${Re(m.ink,m.inkSoft2).background}`}}),f("b",{style:{position:"absolute",left:5,bottom:4,fontSize:"3.65cqw",color:m.onInk},children:e})]},e))})]})}),citymaps:f(ke,{title:"Find us",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["Brisbane","7 Kerry Rd"],["Townsville","12 Enterprise"]].map(([e,o])=>E("div",{style:{position:"relative",padding:"4px 5px",display:"flex",flexDirection:"column",gap:2,minHeight:0},children:[f(z,{r:4,style:{...j,background:"none",border:`1px solid ${m.rule}`}}),f("b",{style:{position:"relative",fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{position:"relative",fontSize:"3.32cqw",color:m.muted},children:o}),E("div",{style:{flex:1,minHeight:0,position:"relative"},children:[f(z,{r:3,style:{...j,...Re(m.paper,m.paper2,150)}}),f(z,{w:"60%",h:"60%",r:8,style:{position:"absolute",left:"12%",top:"20%",background:m.mark1,opacity:.75}}),f(z,{w:6,h:6,r:3,style:{position:"absolute",left:"44%",top:"34%",background:m.rust}})]})]},e))})}),form:f(ke,{title:"Send us a message",children:E("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[E("div",{style:{display:"flex",gap:5},children:[f(of,{label:"Name"}),f(of,{label:"Email"})]}),f(of,{label:"Message",filled:!0}),f(JE,{children:"SEND"})]})}),appointmentbooking:f(ke,{title:"Book a fitting",children:E("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[f("div",{style:{display:"flex",gap:3},children:["Mon","Tue","Wed","Thu"].map((e,o)=>f("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",fontWeight:o===2?700:500,padding:"4px 0",borderRadius:3,background:o===2?m.text:m.paper,color:o===2?m.onInk:m.muted},children:e},e))}),f("div",{style:{display:"flex",gap:3},children:["8:00","10:30","13:00","15:30"].map((e,o)=>f("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",padding:"4px 0",borderRadius:3,border:`1px solid ${o===1?m.rust:m.rule}`,color:o===1?m.rust:m.muted,background:o===3?m.paper:m.card,textDecoration:o===3?"line-through":"none"},children:e},e))})]})}),reviewform:f(ke,{title:"Leave a review",children:E("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[f(tI,{filled:4,size:14}),f(of,{label:"Your review",filled:!0}),f(JE,{children:"POST"})]})}),submitbuild:f(ke,{title:"Show us your build",children:E("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:3,border:`1px dashed ${m.mark1}`,borderRadius:5,background:m.paper},children:[f("span",{style:{fontSize:"6.63cqw",lineHeight:1,color:m.rust,fontWeight:300},children:"+"}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"Drop a photo of your rig"})]})}),masthead:E("div",{style:{...j,background:m.paper,display:"flex",flexDirection:"column",justifyContent:"center",padding:"0 13px",gap:5},children:[f("span",{style:{height:1.5,background:m.text}}),f("span",{style:{fontSize:"7.65cqw",fontWeight:800,letterSpacing:"0.02em",color:m.text,lineHeight:1},children:"THE TRACK"}),E("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"3.65cqw",letterSpacing:"0.1em",textTransform:"uppercase",color:m.muted},children:[f("span",{children:"Issue 14"}),f("span",{children:"Spring 2026"})]}),f("span",{style:{height:1,background:m.rule}})]}),featuredcover:E("div",{style:{...j,overflow:"hidden",...Re(m.ink,m.inkSoft2)},children:[f(Gt,{size:92,style:{right:-18,top:-14}}),f("div",{style:{position:"absolute",inset:0,background:`linear-gradient(0deg,${m.scrim},transparent 62%)`}}),E("div",{style:{position:"absolute",left:12,right:12,bottom:11,display:"flex",flexDirection:"column",gap:3},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:m.warm},children:"FEATURE"}),f("span",{style:{fontSize:"6.16cqw",lineHeight:1.15,fontWeight:700,color:m.onInk},children:"Four days on the Madigan Line"})]})]}),longread:E("div",{style:{...j,background:m.card,padding:"10px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.14em",fontWeight:700,color:m.rust},children:"12 MIN READ"}),f("span",{style:{fontSize:"6.02cqw",lineHeight:1.15,fontWeight:700,color:m.text},children:"What breaks first, and why"}),f(po,{children:"Every failure starts in the same place \u2014 not the rim, not"}),f(po,{w:"62%",children:"the tyre, but the bolt nobody re-torqued."})]}),series:f(ke,{title:"Recurring columns",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Shed Notes","Monthly"],["Track Tested","Fortnightly"],["Reader Rigs","Weekly"]].map(([e,o])=>E("div",{style:{display:"flex",alignItems:"center",gap:6},children:[f("span",{style:{width:3,height:12,borderRadius:2,background:m.rust,flex:"none"}}),f("b",{style:{flex:1,fontSize:"4.64cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:m.muted},children:o})]},e))})}),events:f(ke,{title:"Latest posts",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[[m.inkSoft,m.inkSoft2,"Madigan Line, four days"],[m.rust,m.warm,"Why offset beats width"]].map(([e,o,t])=>E("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[f("span",{style:{width:24,height:18,borderRadius:3,flex:"none",...Re(e,o,150)}}),E("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[f("b",{style:{fontSize:"4.31cqw",color:m.text},children:t}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"4 Sep \xB7 Shed Notes"})]})]},t))})}),docmasthead:E("div",{style:{...j,background:m.card,padding:"12px 14px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:m.muted},children:"POLICY"}),f("span",{style:{fontSize:"6.49cqw",fontWeight:700,color:m.text,lineHeight:1.1},children:"Returns & refunds"}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"Version 3 \xB7 Updated 4 Sep 2026"}),f("span",{style:{height:2,width:26,background:m.rust,borderRadius:1}})]}),docbody:f("div",{style:{...j,background:m.card,padding:"9px 13px",display:"flex",flexDirection:"column",gap:3,justifyContent:"center"},children:[["1.","You may return an unfitted wheel within 30 days."],["2.","Fitted wheels are covered by the structural warranty."],["3.","Freight on a change of mind is yours."]].map(([e,o])=>E("div",{style:{display:"flex",gap:5},children:[f("b",{style:{fontSize:"3.98cqw",color:m.rust,flex:"none"},children:e}),f(po,{children:o})]},e))}),docmetacards:f(ke,{title:"At a glance",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["30 days","To return"],["5 years","Structural"],["Free","Fitting"],["48 hrs","Dispatch"]].map(([e,o])=>E("div",{style:{border:`1px solid ${m.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[f("b",{style:{fontSize:"5.31cqw",color:m.text,lineHeight:1},children:e}),f("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:m.muted},children:o})]},o))})}),doctabs:E("div",{style:{...j,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:0,padding:"0 11px"},children:[f("div",{style:{display:"flex",gap:0},children:["Returns","Warranty","Shipping"].map((e,o)=>f("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"5px 8px",color:o===0?m.text:m.muted,background:o===0?m.paper:"transparent",borderRadius:"4px 4px 0 0",border:`1px solid ${o===0?m.rule:"transparent"}`,borderBottom:"none"},children:e},e))}),f("span",{style:{height:1,background:m.rule}}),E("div",{style:{paddingTop:6,display:"flex",flexDirection:"column",gap:2},children:[f(po,{children:"Unfitted wheels come back within 30 days, no questions."}),f(po,{w:"58%",children:"Freight on a change of mind is yours."})]})]}),paragraphs:E("div",{style:{...j,background:m.card,padding:"11px 14px",display:"flex",gap:10,alignItems:"center"},children:[f("span",{style:{flex:1,fontSize:"5.86cqw",lineHeight:1.2,fontWeight:700,color:m.text},children:"The right wheel is the boring one."}),E("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[f(po,{children:"Forged, correctly offset, rated for what you actually"}),f(po,{children:"carry. Everything else is a photograph."})]})]}),keyfeatures:f(ke,{title:"Key features",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:["Flow-formed barrel","1250 kg per corner","Hub-centric fit"].map(e=>E("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[f("span",{style:{fontSize:"4.64cqw",color:m.rust,fontWeight:700,lineHeight:1},children:"\u2713"}),f("span",{style:{fontSize:"4.31cqw",color:m.text},children:e})]},e))})}),statsparagraph:E("div",{style:{...j,background:m.paper,padding:"10px 12px",display:"flex",gap:10,alignItems:"center"},children:[E("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:5},children:[f(nl,{n:"27k",label:"Rigs"}),f(nl,{n:"4.9",label:"Rating"})]}),E("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[f(po,{children:"Twelve years of fitting the same three questions, and the"}),f(po,{children:"answer has not moved: load rating, offset, then looks."})]})]}),chart:E(ke,{title:"Load vs weight",children:[f("div",{style:{flex:1,display:"flex",alignItems:"flex-end",gap:5,paddingBottom:2},children:[38,62,84,71,96].map((e,o)=>f("span",{style:{flex:1,height:`${e}%`,borderRadius:"2px 2px 0 0",background:o===4?m.rust:m.mark1}},o))}),f("span",{style:{height:1,background:m.rule,marginTop:-4}})]}),mockup:f("div",{style:{...j,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",...Re(m.inkSoft,m.ink)},children:E("div",{style:{width:"72%",height:"74%",borderRadius:4,overflow:"hidden",background:m.card,boxShadow:`0 6px 14px ${m.scrim}`},children:[f("div",{style:{height:9,background:m.paper,display:"flex",alignItems:"center",gap:2,padding:"0 4px"},children:[0,1,2].map(e=>f("span",{style:{width:2.5,height:2.5,borderRadius:"50%",background:m.mark1}},e))}),E("div",{style:{padding:5,display:"flex",flexDirection:"column",gap:3},children:[f("span",{style:{height:4,width:"56%",borderRadius:1,background:m.mark2}}),f("span",{style:{height:14,borderRadius:2,...Re(m.paper,m.paper2,150)}}),f("span",{style:{height:3,width:"38%",borderRadius:1,background:m.rust}})]})]})}),manifesto:f("div",{style:{...j,overflow:"hidden",display:"flex",alignItems:"center",padding:"0 16px",...Re(m.ink,m.ink2)},children:E("span",{style:{fontSize:"6.63cqw",lineHeight:1.2,fontWeight:700,color:m.onInk},children:["We build for the ",f("span",{style:{color:m.warm},children:"last"})," ten percent of the track."]})}),timeline:f(ke,{title:"Our story",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center",gap:6,paddingLeft:4},children:[["1998","One shed, one lathe."],["2009","First forged rim."],["2024","27,000 rigs on."]].map(([e,o],t)=>E("div",{style:{display:"flex",gap:7,alignItems:"flex-start",position:"relative"},children:[t<2&&f("span",{style:{position:"absolute",left:3,top:8,bottom:-8,width:1,background:m.rule}}),f("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",marginTop:1,background:m.rust,zIndex:1}}),E("div",{style:{display:"flex",flexDirection:"column",gap:0,minWidth:0},children:[f("b",{style:{fontSize:"4.64cqw",color:m.text},children:e}),f(po,{children:o})]})]},e))})}),timelinetrack:E("div",{style:{...j,padding:"0 12px",display:"flex",flexDirection:"column",gap:10,justifyContent:"center",...Re(m.ink,m.inkSoft)},children:[f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"Milestones"}),E("div",{style:{position:"relative",display:"flex",justifyContent:"space-between",paddingTop:7},children:[f("span",{style:{position:"absolute",left:0,right:0,top:3,height:1,background:m.mark2,opacity:.55}}),["1998","2009","2016","2024"].map((e,o)=>E("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:3,position:"relative"},children:[f("span",{style:{position:"absolute",top:-7,width:6,height:6,borderRadius:"50%",background:o===3?m.warm:m.mark1}}),f("span",{style:{fontSize:"4.31cqw",fontWeight:700,color:o===3?m.warm:m.onInk,opacity:o===3?1:.75},children:e})]},e))]})]}),footprint:E("div",{style:{...j,overflow:"hidden",...Re(m.paper,m.paper2,150)},children:[f("span",{style:{position:"absolute",left:"8%",top:"18%",width:"62%",height:"64%",borderRadius:"48% 52% 40% 60% / 55% 45% 55% 45%",background:m.mark1,opacity:.75}}),f("span",{style:{position:"absolute",left:"52%",top:"52%",width:"34%",height:"34%",borderRadius:"58% 42% 55% 45% / 45% 58% 42% 55%",background:m.mark2,opacity:.55}}),[["26%","38%"],["44%","58%"],["62%","34%"]].map(([e,o])=>f("span",{style:{position:"absolute",left:e,top:o,width:7,height:7,borderRadius:"50% 50% 50% 0",transform:"rotate(-45deg)",background:m.rust}},e)),f("span",{style:{position:"absolute",left:11,bottom:9,fontSize:"4.64cqw",fontWeight:700,color:m.text},children:"3 fitting bays"})]}),banner:E("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,background:m.rust},children:[E("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[f("b",{style:{fontSize:"6.02cqw",color:m.onInk},children:"End of season \xB7 20% off"}),f("span",{style:{fontSize:"3.98cqw",color:m.onInk,opacity:.8},children:"Fitted free, this month only."})]}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:m.onInk,color:m.text,flex:"none"},children:"SHOP"})]}),titlewithbuttons:E("div",{style:{...j,background:m.paper,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:7,padding:"0 14px",textAlign:"center"},children:[f("span",{style:{fontSize:"6.49cqw",lineHeight:1.15,fontWeight:700,color:m.text},children:"Not sure what fits?"}),E("div",{style:{display:"flex",gap:5},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:m.text,color:m.onInk},children:"FIND MY FIT"}),f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,border:`1px solid ${m.text}`,color:m.text},children:"CALL US"})]})]}),ticker:f("div",{style:{...j,overflow:"hidden",background:m.ink,display:"flex",alignItems:"center"},children:f("span",{style:{whiteSpace:"nowrap",fontSize:"6.29cqw",fontWeight:800,letterSpacing:"0.06em",color:m.warm,marginLeft:-14},children:"FREE FITTING \xB7 48HR DISPATCH \xB7 FREE FITTING \xB7 48HR DISPATCH"})}),countdown:E("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",alignItems:"center",gap:6,justifyContent:"center",...Re(m.ink,m.ink2)},children:[f("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.16em",textTransform:"uppercase",color:m.muted},children:"Back online in"}),f("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[["23","Hours"],["59","Minutes"],["48","Seconds"]].map(([e,o],t)=>E("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[t>0&&f("b",{style:{fontSize:"9.5cqw",lineHeight:1,color:m.warm},children:":"}),E("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:[f("b",{style:{fontSize:"11.5cqw",lineHeight:1,color:m.onInk,fontVariantNumeric:"tabular-nums"},children:e}),f("span",{style:{fontSize:"3.2cqw",letterSpacing:"0.1em",textTransform:"uppercase",opacity:.62,color:m.onInk},children:o})]})]},o))})]}),breadcrumb:f("div",{style:{...j,background:m.card,display:"flex",alignItems:"center",padding:"0 13px"},children:E("span",{style:{fontSize:"4.64cqw",color:m.muted},children:["Home ",f("span",{style:{opacity:.5},children:"/"})," Wheels ",f("span",{style:{opacity:.5},children:"/"})," ",f("span",{style:{color:m.text,fontWeight:700},children:"20 inch"})]})}),categorybar:E("div",{style:{...j,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[f("div",{style:{display:"flex",gap:5},children:["All","Wheels","Tyres","Lift"].map((e,o)=>f("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"4px 7px",borderRadius:99,background:o===0?m.text:m.paper,color:o===0?m.onInk:m.muted},children:e},e))}),f("span",{style:{height:1,background:m.rule}})]}),intro:E("div",{style:{...j,overflow:"hidden",background:m.card},children:[f("div",{style:{position:"absolute",inset:0,...Re(m.ink,m.inkSoft2)}}),f(Gt,{size:64,style:{right:8,top:6}}),E("div",{style:{position:"absolute",left:16,right:16,bottom:8,top:"46%",background:m.paper,borderRadius:6,padding:"8px 11px",display:"flex",flexDirection:"column",gap:2,boxShadow:`0 -4px 10px ${m.scrim}`},children:[f("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:m.text},children:"Since 1998"}),f(po,{children:"One shed, one lathe, one idea."}),f(po,{w:"66%",children:"It turned out to be right."})]})]}),gallerygrid:f(ke,{title:"From our customers",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gridTemplateRows:"repeat(2,1fr)",gap:4,minHeight:0},children:[[m.rust,m.warm],[m.inkSoft,m.ink],[m.paper2,m.mark2],[m.ink,m.inkSoft2],[m.warm,m.paper2],[m.mark2,m.inkSoft]].map(([e,o],t)=>f("div",{style:{borderRadius:3,...Re(e,o,140+t*22)}},t))})}),gallery:E(ke,{title:"Gallery",children:[f("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:-2},children:["On the truck","Studio","Close-ups"].map((e,o)=>f("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,color:o===0?m.text:m.muted,borderBottom:`1.5px solid ${o===0?m.rust:"transparent"}`,paddingBottom:2},children:e},e))}),f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:[[m.rust,m.warm],[m.ink,m.inkSoft],[m.paper2,m.mark2]].map(([e,o],t)=>f("div",{style:{borderRadius:3,...Re(e,o,150+t*20)}},t))})]}),ordersummary:E(ke,{title:"Order summary",children:[E("div",{style:{display:"flex",gap:6,alignItems:"center",paddingBottom:4},children:[f("span",{style:{width:26,height:26,borderRadius:4,position:"relative",overflow:"hidden",flex:"none",...Re(m.paper,m.paper2,150)},children:f(Gt,{size:18,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),E("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[f("b",{style:{fontSize:"4.31cqw",color:m.text},children:"Ridge Grappler"}),f("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"20\xD79 +12 \xB7 qty 4"})]})]}),E("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",justifyContent:"center"},children:[f(Wt,{k:"Subtotal",v:"$1,956"}),f(Wt,{k:"Fitting",v:"Free"}),E("div",{style:{display:"flex",justifyContent:"space-between",paddingTop:5,fontSize:"4.64cqw"},children:[f("b",{style:{color:m.text},children:"Total"}),f("b",{style:{color:m.text,fontSize:"6.02cqw"},children:"$1,956"})]})]})]}),deliveryoptions:f(ke,{title:"Delivery",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Standard","3\u20135 days","Free",!0],["Express","Next day","$19",!1]].map(([e,o,t,r])=>E("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 6px",borderRadius:4,border:`1px solid ${r?m.rust:m.rule}`,background:r?m.paper:m.card},children:[f("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",border:`1.5px solid ${r?m.rust:m.mark1}`,background:r?m.rust:"transparent"}}),f("span",{style:{flex:1,fontSize:"4.31cqw",fontWeight:600,color:m.text},children:e}),f("span",{style:{fontSize:"3.98cqw",color:m.muted},children:o}),f("b",{style:{fontSize:"4.31cqw",color:m.text},children:t})]},e))})}),paymentbadges:E("div",{style:{...j,background:m.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[f(tf,{children:"Ways to pay"}),f("div",{style:{display:"flex",gap:5},children:[["VISA",m.ink],["MC",m.rust],["AMEX",m.inkSoft],["PayPal",m.ink2]].map(([e,o])=>f("span",{style:{flex:1,textAlign:"center",fontSize:"3.65cqw",fontWeight:800,letterSpacing:"0.06em",color:m.onInk,borderRadius:3,padding:"6px 0",background:o},children:e},e))})]}),stats:E("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",gap:9,justifyContent:"center",...Re(m.ink,m.ink2)},children:[f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"By the numbers"}),E("div",{style:{display:"flex",gap:8},children:[f(nl,{n:"27k",label:"Rigs fitted",tone:m.onInk}),f(nl,{n:"12",label:"Years",tone:m.onInk}),f(nl,{n:"4.9",label:"Avg rating",tone:m.warm})]})]}),testimonials:E("div",{style:{...j,overflow:"hidden",background:m.paper,padding:"10px 11px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center"},children:[f("span",{style:{position:"absolute",right:10,top:2,fontSize:"22.4cqw",lineHeight:1,fontWeight:800,color:m.rust,opacity:.16},children:"\u201D"}),f(tI,{filled:5,size:7}),f("span",{style:{position:"relative",fontSize:"5.31cqw",lineHeight:1.35,color:m.text,fontWeight:600},children:"\u201CTook them out to the Simpson and back. Not one chip.\u201D"}),E("div",{style:{display:"flex",alignItems:"center",gap:5},children:[f(ZE,{}),f("span",{style:{fontSize:"3.98cqw",color:m.muted},children:"Dave M. \xB7 Hilux N80"})]})]}),reviews:E(ke,{title:"Reviews",children:[f("div",{style:{display:"flex",gap:4,height:22},children:[[m.inkSoft,m.inkSoft2],[m.rust,m.warm],[m.ink,m.inkSoft],[m.mark2,m.mark1]].map(([e,o],t)=>f("div",{style:{flex:1,borderRadius:3,...Re(e,o,140+t*15)}},t))}),f("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Dave M.",5,"Not one chip after the Simpson."],["Sara K.",4,"Fitted in an hour, no fuss."]].map(([e,o,t])=>E("div",{style:{display:"flex",gap:5,alignItems:"flex-start"},children:[f(ZE,{size:12}),E("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[E("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[f("b",{style:{fontSize:"3.98cqw",color:m.text},children:e}),f(tI,{filled:o})]}),f(po,{children:t})]})]},e))})]}),logos:E("div",{style:{...j,display:"flex",flexDirection:"column",gap:9,justifyContent:"center",padding:"0 12px",...Re(m.ink,m.inkSoft)},children:[f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"As fitted by"}),f("div",{style:{display:"grid",gridTemplateColumns:"repeat(4,1fr)",gap:8},children:["ARB","TJM","IRONMAN","OPPOSITE"].map(e=>f("span",{style:{textAlign:"center",fontSize:"4.31cqw",fontWeight:800,letterSpacing:"0.08em",color:m.onInk,opacity:.82},children:e},e))})]}),prose:E("div",{style:{...j,background:m.paper,padding:"11px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[f("span",{style:{fontSize:"5.86cqw",fontWeight:700,color:m.text},children:"Why offset matters"}),E("div",{style:{display:"flex",gap:6},children:[f("span",{style:{fontSize:"15.3cqw",lineHeight:.78,fontWeight:800,color:m.rust,marginTop:1},children:"T"}),E("div",{style:{display:"flex",flexDirection:"column"},children:[f(po,{children:"he number on the back of your wheel decides whether the"}),f(po,{w:"76%",children:"tyre sits under the guard or an inch outside it."})]})]})]}),cards:f(ke,{title:"What you get",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Fitted free","In store, same day."],["5 yr cover","Structural, no fine print."],["Swap it","30 days, any reason."]].map(([e,o])=>E("div",{style:{border:`1px solid ${m.rule}`,borderRadius:4,padding:6,display:"flex",flexDirection:"column",gap:2},children:[f("span",{style:{width:11,height:11,borderRadius:3,background:m.rust,opacity:.9}}),f("b",{style:{fontSize:"3.98cqw",color:m.text},children:e}),f(po,{children:o})]},e))})}),faq:f(ke,{title:"Questions",children:f("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[["Will these fit my Hilux?",!0],["Do you fit them for me?",!1],["What if I pick wrong?",!1]].map(([e,o])=>E("div",{style:{borderBottom:`1px solid ${m.rule}`,padding:"4px 2px"},children:[E("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6},children:[f("b",{style:{fontSize:"4.31cqw",color:m.text},children:e}),f("span",{style:{fontSize:"4.64cqw",color:m.muted,lineHeight:1},children:o?"\u2212":"+"})]}),o&&f(po,{w:"90%",children:"Use the fitment finder \u2014 it reads your build, not just the model."})]},e))})}),hero:E("div",{style:{...j,overflow:"hidden",...Re(m.ink,m.ink2)},children:[f("div",{style:{...j,background:`linear-gradient(90deg,${m.scrim},transparent 70%)`}}),f("div",{style:{position:"relative",height:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",padding:"12px 14px",gap:5},children:f(XE,{over:"NEW \xB7 SUMMER",overTone:m.warm,head:"Built for the worst road you own",cta:"SHOP ALL",ctaBg:m.warm,ctaFg:m.ink,tone:m.onInk})}),f(Gt,{size:104,style:{right:-24,bottom:-30}})]}),herosingle:E("div",{style:{...j,display:"flex",background:m.paper,overflow:"hidden"},children:[f("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:f(XE,{over:"ALL-TERRAIN",overTone:m.rust,head:"Grip that does not ask",headSize:12,cta:"EXPLORE",ctaBg:m.text,ctaFg:m.onInk,tone:m.text})}),f("div",{style:{flex:1,position:"relative",...Re(m.inkSoft,m.inkSoft2)},children:f(Gt,{size:74,style:{right:-14,top:16}})})]}),productgrid:f(ke,{title:"Best sellers",children:E("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[f(oI,{name:"Ridge 19",price:"$365"}),f(oI,{name:"Ridge 29",price:"$410"}),f(oI,{name:"Ridge 39",price:"$455"})]})}),collections:f(ke,{title:"Shop by category",children:f("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Wheels",m.inkSoft,m.inkSoft2],["Tyres",m.rust,m.warm],["Lift kits",m.ink,m.inkSoft]].map(([e,o,t])=>f("div",{style:{borderRadius:4,display:"flex",alignItems:"flex-end",padding:5,color:m.onInk,...Re(o,t)},children:f("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.04em"},children:e})},e))})}),producthero:E("div",{style:{...j,display:"flex",background:m.card,overflow:"hidden"},children:[f("div",{style:{flex:1.1,position:"relative",...Re(m.paper,m.paper2,150)},children:f(Gt,{size:78,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),E("div",{style:{flex:1,padding:"10px 10px 10px 8px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[f("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:m.rust},children:"NITTO"}),f("b",{style:{fontSize:"6.29cqw",color:m.text},children:"Ridge Grappler"}),f("span",{style:{fontSize:"6.63cqw",fontWeight:700,color:m.text},children:"$489"}),f("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,background:m.text,color:m.onInk},children:"ADD TO CART"})]})]}),spectable:f(ke,{title:"Specifications",children:E("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[f(Wt,{k:"Diameter",v:'20"'}),f(Wt,{k:"Width",v:"9.0J"}),f(Wt,{k:"Offset",v:"+12"}),f(Wt,{k:"Load",v:"1250 kg"})]})}),fitmenttable:f(ke,{title:"Will it fit?",children:E("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[f(Wt,{k:"Hilux N80",v:"20\xD79 +12",ok:!0}),f(Wt,{k:"Ranger PX3",v:"20\xD79 +12",ok:!0}),f(Wt,{k:"LC79",v:"17\xD78 \u221210",ok:!0})]})}),processsteps:E("div",{style:{...j,background:m.paper,padding:10,display:"flex",flexDirection:"column",gap:7,justifyContent:"center"},children:[f(tf,{children:"How it works"}),f("div",{style:{display:"flex",gap:6},children:["Pick your rig","Match the fit","We fit it"].map((e,o)=>E("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2},children:[f("span",{style:{width:11,height:11,borderRadius:"50%",background:m.text,color:m.onInk,fontSize:"3.98cqw",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700},children:o+1}),f("span",{style:{fontSize:"3.98cqw",color:m.text,fontWeight:600},children:e})]},e))})]}),detailrows:f("div",{style:{...j,background:m.card,display:"flex",flexDirection:"column",overflow:"hidden"},children:[["Forged, not cast","Half the weight, twice the road.",!1],["Fits your load","Rated to 1250 kg a corner.",!0]].map(([e,o,t])=>{let r=f("div",{style:{flex:1,...Re(t?m.rust:m.inkSoft,t?m.warm:m.inkSoft2)}},"art"),a=E("div",{style:{flex:1.1,padding:8,display:"flex",flexDirection:"column",gap:2,justifyContent:"center"},children:[f("b",{style:{fontSize:"4.64cqw",color:m.text},children:e}),f("span",{style:{fontSize:"3.98cqw",color:m.muted,lineHeight:1.3},children:o})]},"tx");return f("div",{style:{flex:1,display:"flex",minHeight:0},children:t?[a,r]:[r,a]},e)})}),specstrip:f("div",{style:{...j,background:m.ink,color:m.onInk,display:"flex",alignItems:"center",justifyContent:"space-around",padding:"0 8px"},children:[["5 yr","Warranty"],["Free","Fitting"],["48 hr","Dispatch"]].map(([e,o])=>E("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[f("b",{style:{fontSize:"5.69cqw",letterSpacing:"0.02em"},children:e}),f("span",{style:{fontSize:"3.65cqw",color:m.mark2,letterSpacing:"0.1em",textTransform:"uppercase"},children:o})]},o))})},QE={subscribe:E("div",{style:{...j,padding:13,display:"flex",flexDirection:"column"},children:[E("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[E("div",{style:{display:"flex",alignItems:"center",gap:6},children:[f(z,{w:8,h:8,r:2,tone:"accent"}),f(z,{w:38,h:7,r:3,tone:"dark"}),f(z,{w:16,h:7,r:3,tone:"accent"})]}),f(z,{w:38,h:4,r:2,tone:"soft"})]}),f("div",{style:{height:1,background:eo.line,marginBottom:10}}),E("div",{style:{flex:1,display:"flex",gap:10,border:`1px solid ${eo.line}`,borderRadius:7,padding:10},children:[E("div",{style:{flex:1.1,display:"flex",flexDirection:"column",justifyContent:"center",gap:5},children:[f(z,{w:"46%",h:3,r:2,tone:"accent"}),f(z,{w:"84%",h:8,r:4,tone:"dark"}),f(z,{w:"56%",h:8,r:4,tone:"accent"}),f(z,{w:"96%",h:3,r:2,tone:"soft",style:{marginTop:2}}),E("div",{style:{display:"flex",gap:5,marginTop:4},children:[f("div",{style:{flex:1,height:13,borderRadius:5,border:`1px solid ${eo.line}`,background:eo.block}}),f(z,{w:34,h:13,r:5,tone:"accent"})]})]}),E("div",{style:{flex:1,background:eo.block,borderRadius:6,padding:8,display:"flex",flexDirection:"column",gap:6},children:[f(z,{w:"52%",h:4,r:2,tone:"accent"}),Array.from({length:3}).map((e,o)=>E("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,borderTop:o?`1px solid ${eo.line}`:"none",paddingTop:o?4:0},children:[f(z,{w:34,h:4,r:2,tone:"dark"}),f(z,{w:16,h:3,r:2,tone:"soft"})]},o))]})]})]}),split:E("div",{style:{...j,display:"flex"},children:[f("div",{style:{width:"44%",background:eI}}),E("div",{style:{flex:1,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[f(z,{w:"44%",h:5,r:3,tone:"accent"}),f(z,{w:"88%",h:8,r:4,tone:"dark"}),f(z,{w:"70%",h:8,r:4,tone:"dark"}),f(z,{w:"94%",h:5,r:2,tone:"soft",style:{marginTop:2}}),f(z,{w:"80%",h:5,r:2,tone:"soft"}),f(z,{w:"40%",h:13,r:6,tone:"accent",style:{marginTop:5}})]})]}),sectionheader:E(eO,{children:[f(z,{w:"18%",h:6,r:3,tone:"accent",style:{position:"absolute",top:15,right:16}}),E("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:10},children:[E("div",{style:{display:"flex",alignItems:"center",gap:9},children:[f(z,{w:16,h:16,r:4,tone:"accent"}),f(z,{w:"20%",h:9,r:4,tone:"dark"})]}),f(z,{w:"62%",h:10,r:5,tone:"dark"}),f(z,{w:"42%",h:6,r:3,tone:"soft"})]})]}),header:f("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",justifyContent:"center"},children:E("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[f(z,{w:"22%",h:12,r:4,tone:"dark"}),E("div",{style:{display:"flex",gap:9,alignItems:"center"},children:[f(z,{w:26,h:6,r:3,tone:"soft"}),f(z,{w:26,h:6,r:3,tone:"soft"}),f(z,{w:26,h:6,r:3,tone:"soft"}),f(z,{w:18,h:14,r:5,tone:"accent"})]})]})}),footer:E("div",{style:{...j,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:12},children:[E("div",{style:{display:"flex",gap:14},children:[E("div",{style:{flex:1.4,display:"flex",flexDirection:"column",gap:6},children:[f(z,{w:"60%",h:9,r:4,tone:"dark"}),f(z,{w:"90%",h:5,r:2,tone:"soft"}),f(z,{w:"70%",h:5,r:2,tone:"soft"})]}),[0,1].map(e=>E("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[f(z,{w:"50%",h:6,r:3,tone:"dark"}),f(z,{w:"80%",h:5,r:2,tone:"soft"}),f(z,{w:"66%",h:5,r:2,tone:"soft"})]},e))]}),f("div",{style:{height:1,background:eo.line}}),E("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[f(z,{w:"30%",h:5,r:2,tone:"soft"}),f(z,{w:"16%",h:5,r:2,tone:"soft"})]})]}),grid:f("div",{style:{...j,padding:14,display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr 1fr",gap:9},children:Array.from({length:4}).map((e,o)=>f("div",{style:{borderRadius:6,background:eo.block}},o))}),blanksection:f("div",{style:{...j,padding:14,display:"flex"},children:E("div",{style:{flex:1,border:`1px dashed ${eo.line}`,borderRadius:7,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[f(z,{w:14,h:2,r:1,tone:"tint"}),f(z,{w:2,h:14,r:1,tone:"tint",style:{position:"absolute"}})]})}),spacer:E("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[f(z,{w:"100%",h:6,r:3,tone:"soft"}),f(z,{w:16,h:22,r:3,tone:"block",style:{alignSelf:"center"}}),f(z,{w:"100%",h:6,r:3,tone:"soft"})]}),divider:f("div",{style:{...j,padding:14,display:"flex",alignItems:"center"},children:f(z,{w:"100%",h:3,r:2,tone:"dark"})}),customhtml:E("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:8,background:eI},children:[f(z,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(-14deg)"}}),f(z,{w:16,h:10,r:3,tone:"accent"}),f(z,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(14deg)"}})]}),heading:f("div",{style:{...j,padding:14,display:"flex",alignItems:"center"},children:f(z,{w:"64%",h:13,r:4,tone:"dark"})}),text:E("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[f(z,{w:"100%",h:6,r:3,tone:"soft"}),f(z,{w:"96%",h:6,r:3,tone:"soft"}),f(z,{w:"100%",h:6,r:3,tone:"soft"}),f(z,{w:"58%",h:6,r:3,tone:"soft"})]}),image:f("div",{style:{position:"absolute",inset:14,borderRadius:7,background:eI}}),button:f("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center"},children:f(z,{w:"34%",h:16,r:8,tone:"accent"})}),menu:E("div",{style:{...j,padding:"14px 22%",display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[f(z,{w:"48%",h:7,r:3,tone:"dark"}),f(z,{w:"82%",h:5,r:2,tone:"soft"}),f(z,{w:"66%",h:5,r:2,tone:"soft"}),f(z,{w:"74%",h:5,r:2,tone:"soft"}),f(z,{w:"58%",h:5,r:2,tone:"soft"})]}),emailform:E("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[f(z,{w:"56%",h:8,r:3,tone:"dark"}),E("div",{style:{display:"flex",gap:6},children:[f("div",{style:{flex:1,height:16,borderRadius:5,border:`1px solid ${eo.line}`}}),f(z,{w:"30%",h:16,r:5,tone:"accent"})]})]}),sociallogos:f("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:9},children:[0,1,2,3].map(e=>f(z,{w:16,h:16,r:8,tone:"dark"},e))}),paymentlogos:E("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[f(z,{w:22,h:6,r:2,tone:"soft"}),[0,1,2,3].map(e=>f(z,{w:20,h:13,r:3,tone:"dark"},e))]}),search:f("div",{style:{...j,padding:"0 18%",display:"flex",alignItems:"center"},children:E("div",{style:{flex:1,height:22,borderRadius:11,border:`1px solid ${eo.line}`,display:"flex",alignItems:"center",gap:7,padding:"0 9px"},children:[f("div",{style:{width:9,height:9,borderRadius:5,border:`2px solid ${eo.dark}`}}),f(z,{w:"46%",h:5,r:2,tone:"soft"})]})}),cart:E("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[f("div",{style:{width:22,height:18,borderRadius:"3px 3px 6px 6px",border:`2px solid ${eo.dark}`}}),f("div",{style:{padding:"2px 6px",borderRadius:6,border:`1.5px solid ${eo.dark}`},children:f(z,{w:7,h:7,r:2,tone:"dark"})})]}),countryswitch:E("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:5},children:[E("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",border:`1px solid ${eo.line}`},children:[f(z,{w:22,h:6,r:2,tone:"dark"}),f(z,{w:6,h:4,r:1,tone:"soft"})]}),E("div",{style:{width:"46%",display:"flex",flexDirection:"column",gap:4,padding:6,border:`1px solid ${eo.line}`},children:[f(z,{w:"80%",h:4,r:2,tone:"accent"}),f(z,{w:"64%",h:4,r:2,tone:"soft"}),f(z,{w:"72%",h:4,r:2,tone:"soft"})]})]}),legalline:E("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[f("div",{style:{height:1,background:eo.line}}),E("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[f(z,{w:"38%",h:5,r:2,tone:"soft"}),E("div",{style:{display:"flex",gap:5},children:[f(z,{w:14,h:5,r:2,tone:"soft"}),f(z,{w:14,h:5,r:2,tone:"soft"}),f(z,{w:14,h:5,r:2,tone:"soft"})]})]})]}),fallback:f("div",{style:{position:"absolute",inset:14,borderRadius:8,background:eo.block}})};function oO({type:e}){let o=Hq[e]??"",t=zq[o]??QE[o]??QE.fallback;return f("div",{className:"sf-thumb","aria-hidden":"true",style:{position:"absolute",inset:0,background:"var(--sf-thumb-thumb-bg)",pointerEvents:"none",containerType:"inline-size"},children:t})}import{useScreenDocument as Qf}from"efficient-easel/screen/components/ScreenDocumentContext";import{jsx as Pn,jsxs as Wq}from"react/jsx-runtime";import Gq from"efficient-easel/screen/components/SidePanelHead";import{StylesIcon as $q}from"efficient-easel/rail";import{Tooltip as Uq}from"efficient-shell/ui";function tO({tokenRef:e,siteId:o,onClose:t,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l}){let c=un();return Wq("div",{className:"sf-styles",children:[Pn(Gq,{icon:Pn($q,{}),title:i("Styles"),context:Pn(Uq,{content:i("{name} \u2014 renamed in the Console: {place}.",{name:c,place:i("Storefront \u25B8 Sites \u25B8 Settings")}),className:"sf-name-tip",children:Pn("span",{className:"sf-name-text",children:c})})}),Pn("div",{className:"sf-insp-body es-insp-body sf-scroll",children:Pn(td,{tokenRef:e,siteId:o,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l})})]})}import{jsx as ro,jsxs as ma,Fragment as Zq}from"react/jsx-runtime";import{Fragment as xO,useEffect as IO,useRef as iI}from"react";import{useTreeDrag as gO}from"efficient-easel/drag";import{GlobeIcon as Jq,ImageIcon as Qq,LocationIcon as e9,MapIcon as o9,TextLinesIcon as t9,TrashIcon as bO}from"efficient-easel/icons";import{Subtree as yO,TreeRow as il,TreeRowAction as SO,TreeSeam as wO}from"efficient-easel/tree";import{useEaselStrings as r9}from"efficient-easel/strings";import{createPreviewSelectionContext as jq}from"efficient-easel/draw/client";var{Provider:nPe,useSelection:rO}=jq("selectedLocationPartId");function aO(e,o,t){return`${e}::${o}::${t}`}function nO(e){if(!e)return null;let o=e.split("::");if(o.length<3)return null;let t=o[o.length-1];if(t!=="image"&&t!=="map"&&t!=="city")return null;let r=Number(o[o.length-2]);if(!Number.isInteger(r)||r<0)return null;let a=o.slice(0,-2).join("::");return a?{nodeId:a,index:r,part:t}:null}import{isSelectionMode as a9}from"efficient-easel/screen/lib/screen-parts";import{useSyncExternalStore as Kq}from"react";var qq={level:"groups"},lO=qq,rI=new Set;function dt(e){lO=e;for(let o of rI)o()}function Vq(e){return rI.add(e),()=>{rI.delete(e)}}var sO=()=>lO;function iO(){return Kq(Vq,sO,sO)}function rf(e,o,t){let r=[];return e.forEach((a,n)=>{let s=o(a),l=r.find(c=>c.key===s);l||(l={key:s,name:t(a),items:[]},r.push(l)),l.items.push({item:a,index:n})}),r}function cPe(e){return Yq[sl(e)]}var Yq={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"};function sl(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 ll=e=>String(e?.group??""),aI=new WeakMap,Xq=0;function af(e){let o=aI.get(e);return o||(o=`loc${++Xq}`,aI.set(e,o)),o}var cO=(e,o)=>o||e||"Ungrouped",dO={photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
41
+ Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""};function pa(e){return rf(e,ll,o=>String(o?.groupName??"")).map(o=>({key:o.key,name:o.name,cards:o.items.map(t=>t.item)}))}var nI=e=>e.flatMap(o=>o.cards),fO=(e,o,t)=>Math.min(Math.max(e,o),t);function nf(e,o,t){let r=0;for(let a=0;a<e.length;a++)if(ll(e[a])===o){if(r===t)return a;r++}return-1}function sI(e,o,t){let r=pa(e);if(o<0||o>=r.length)return e;let[a]=r.splice(o,1),n=fO(o<t?t-1:t,0,r.length);return r.splice(n,0,a),nI(r)}function lI(e,o,t,r,a){let n=pa(e),s=n.find(h=>h.key===o),l=n.find(h=>h.key===r);if(!s||!l||t<0||t>=s.cards.length)return e;let[c]=s.cards.splice(t,1),d=o===r?c:{...c,group:l.key,groupName:l.name};d!==c&&aI.set(d,af(c));let p=fO(s===l&&t<a?a-1:a,0,l.cards.length);return l.cards.splice(p,0,d),nI(n)}function uO(e,o){let t=pa(e),r=t.find(n=>n.key===o),a={...dO,group:o,groupName:r?.name??""};return r?(r.cards.push(a),nI(t)):[...e,a]}function pO(e){let o=new Set(pa(e).map(a=>a.key)),t=o.size+1,r=`Group ${t}`;for(;o.has(r);)r=`Group ${++t}`;return{cards:[...e,{...dO,group:r,groupName:""}],key:r}}function mO(e,o){return e.filter(t=>ll(t)!==o)}function hO(e,o,t){let r=nf(e,o,t);return r<0?e:e.filter((a,n)=>n!==r)}function uPe(e,o,t){let r=e.flatMap((s,l)=>ll(s)===o?[l]:[]),a=e.slice();r.forEach((s,l)=>{a[s]=t[l]});let n=t.slice(r.length);return[...a.filter(s=>s!==void 0),...n]}function pPe(e,o,t){return o.flatMap(r=>{let a=e.filter(n=>ll(n)===r);return a.length?a:t(r)})}var lf="ContactLocations",sf=e=>({parentId:`locations-${e}`,slot:"groups"}),cI=(e,o)=>({parentId:`locations-${e}`,slot:`cities:${o}`});function CO(e,o){let{readOnly:t,selected:r}=o,a=r9().tree,n=o.data?.content??[],s=a9(e),l=iI(null);IO(()=>{let I=r?.type===lf?String(r.props.id):null;I&&I!==l.current&&dt({level:"groups"}),l.current=I},[r?.props.id]);let{selectedLocationPartId:c,setSelectedLocationPartId:d,setSelectHandler:p}=rO(),h=iO(),u=(I,C)=>{let v=n[I];v&&o.replace(I,{type:v.type,props:{...v.props,locations:C}})},x=I=>{let C=n[I]?.props?.locations;return Array.isArray(C)?C:[]},g=gO({keyOf:I=>`group:${I.si}:${I.index}`,readOnly:!!t,canDrop:(I,C)=>C.parentId===sf(I.si).parentId&&C.slot==="groups",onDrop:(I,C)=>{u(I.si,sI(x(I.si),I.index,C.index)),h.level==="city"&&dt({level:"groups"})},onStep:(I,C)=>{u(I.si,sI(x(I.si),I.index,C<0?I.index-1:I.index+2)),h.level==="city"&&dt({level:"groups"})}}),y=gO({keyOf:I=>`city:${I.si}:${I.group}:${I.index}`,readOnly:!!t,canDrop:(I,C)=>C.parentId===sf(I.si).parentId&&C.slot.startsWith("cities:"),onDrop:(I,C)=>{let v=C.slot.slice(7);u(I.si,lI(x(I.si),I.group,I.index,v,C.index)),dt({level:"group",key:v})},onStep:(I,C)=>{u(I.si,lI(x(I.si),I.group,I.index,I.group,C<0?I.index-1:I.index+2)),h.level==="city"&&dt({level:"group",key:I.group})}}),T=iI(n);T.current=n;let O=iI(()=>{});IO(()=>{p(I=>{let C=nO(I);if(!C)return;let v=T.current.findIndex(k=>k.props?.id===C.nodeId);v<0||O.current(v,{level:C.part,index:C.index})})},[p]);let w=(I,C)=>{l.current=n[I]?.props?.id??null,o.select(I),dt(C),e.reveal();let v=n[I]?.props?.id;typeof v=="string"&&(C.level==="city"||C.level==="image"||C.level==="map")?d(aO(v,C.index,C.level)):d(null),typeof v=="string"&&o.scrollTo(v)};return O.current=w,{renderLocationTree:(I,C,{rowClick:v,isCollapsed:k,toggleCollapse:A})=>{let D=x(C),P=pa(D),R=String(I.props.id),N=s&&r?.props.id===R,b=F=>ro(wO,{...t?{}:g.seam({place:{...sf(C),index:F}})},`seam:${R}:groups:${F}`),_=(F,H)=>ro(wO,{...t?{}:y.seam({place:{...cI(C,F),index:H}})},`seam:${R}:cities:${F}:${H}`);return ma(Zq,{children:[ro(il,{icon:ro(t9,{size:13}),name:i("Texts"),words:a,onSelect:()=>w(C,{level:"texts"}),selected:N&&h.level==="texts",rowProps:{onClick:v(()=>w(C,{level:"texts"}))}}),P.map((F,H)=>{let Z=`${R}::grp::${F.key}`,q=k(Z),U=N&&h.level==="group"&&h.key===F.key,ve=F.name||F.key?cO(F.key,F.name):i("Ungrouped"),ne={...cI(C,F.key),index:F.cards.length},Ue=y.row({item:{si:C,group:F.key,index:-1},place:ne,into:ne,canDrag:!1},{onClick:v(()=>w(C,{level:"group",key:F.key}))}),De=g.row({item:{si:C,index:H},place:{...sf(C),index:H}},Ue.rowProps);return ma(xO,{children:[H===0&&b(0),ro(il,{icon:ro(Jq,{size:13}),name:ve,words:a,onSelect:()=>w(C,{level:"group",key:F.key}),selected:U,draggable:De.draggable,dragging:De.dragging,drop:De.drop??Ue.drop,fold:{open:!q,label:i("group"),onToggle:()=>A(Z)},actions:ro(SO,{kind:"delete",label:ho("Delete {label} group ({n} city)","Delete {label} group ({n} cities)",F.cards.length,{label:ve}),onClick:()=>{u(C,mO(D,F.key)),dt({level:"groups"})},children:ro(bO,{size:15})}),rowProps:De.rowProps,count:F.cards.length,countLabel:ho("{n} city","{n} cities",F.cards.length)}),!q&&ma(yO,{children:[F.cards.map((Te,pe)=>{let ge=nf(D,F.key,pe),qe=N&&h.level==="city"&&h.index===ge,Ve=String(Te?.name??"")||i("City"),se=`${R}::city::${af(Te)}`,Fe=k(se),{rowProps:so,...Pe}=y.row({item:{si:C,group:F.key,index:pe},place:{...cI(C,F.key),index:pe}},{onClick:v(()=>w(C,{level:"city",index:ge}))});return ma(xO,{children:[pe===0&&_(F.key,0),ro(il,{icon:ro(e9,{size:13}),name:Ve,words:a,onSelect:()=>w(C,{level:"city",index:ge}),selected:qe,...Pe,fold:{open:!Fe,label:Ve,onToggle:()=>A(se)},actions:ro(SO,{kind:"delete",label:i("Delete {name}",{name:Ve}),onClick:()=>{u(C,hO(D,F.key,pe)),dt({level:"group",key:F.key})},children:ro(bO,{size:15})}),rowProps:so}),!Fe&&ma(yO,{children:[ro(il,{icon:ro(Qq,{size:13}),name:i("Image"),words:a,onSelect:()=>w(C,{level:"image",index:ge}),selected:N&&h.level==="image"&&h.index===ge,rowProps:{onClick:v(()=>w(C,{level:"image",index:ge}))}}),ro(il,{icon:ro(o9,{size:13}),name:i("Map"),words:a,onSelect:()=>w(C,{level:"map",index:ge}),selected:N&&h.level==="map"&&h.index===ge,rowProps:{onClick:v(()=>w(C,{level:"map",index:ge}))}})]}),_(F.key,pe+1)]},af(Te))}),ma("button",{type:"button",className:"sf-add-card",onClick:()=>{let Te=uO(D,F.key);u(C,Te);let pe=pa(Te).find(ge=>ge.key===F.key);dt(pe&&pe.cards.length?{level:"city",index:nf(Te,F.key,pe.cards.length-1)}:{level:"group",key:F.key})},children:[ro("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add city")]})]}),b(H+1)]},Z)}),ma("button",{type:"button",className:"sf-add-card",onClick:()=>{let{cards:F,key:H}=pO(D);u(C,F),w(C,{level:"group",key:H})},children:[ro("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add group")]})]})},sectionPressed:I=>{I?.type===lf&&dt({level:"groups"})}}}import{useEffect as w9,useRef as C9}from"react";import{createNode as pI,newId as mI}from"efficient-easel/data";import{useEaselApi as v9}from"efficient-easel/easel";import{useScreenDocument as k9}from"efficient-easel/screen/components/ScreenDocumentContext";import{useEaselSession as T9}from"efficient-easel/screen/lib/session-context";import{useEffect as I9,useRef as g9}from"react";import{useEasel as b9}from"efficient-easel/easel";import{ROOT_ZONE as uI}from"efficient-easel/draw";import{readHidable as i9}from"efficient-easel/draw";var n9="inline",s9=[{label:"In this section",value:"inline"},{label:"In its own box",value:"own-box"}];var Io={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"}},En="SectionHeader";function vO(e){return e in Io}function kO(e){return to(s9,n9,e)}var l9=new Set(["Flex"]);function OPe(e){return!!e?.type&&l9.has(e.type)}var TO={not:{field:"headPlacement",is:"own-box"}},_Pe={not:TO};function RPe(e,o,t){return Jn(e,t,TO)}var yt=V,St=Ke;function cf(e){if(e.theme)return lo(e.theme);let o=e.site?.themePresets;return o?lo({selected:e.site?.selectedPreset??0,themes:[...o]}):void 0}function c9(e,o){return o===0?`${e}~box`:`${e}~box-${o+1}`}var EO=new Set(["id"]),ha={},OO=[],cl=[];function No(e){for(let[o,t]of Object.entries(e)){if(o in ha&&ha[o]!==t)throw new Error(`lib/sections/section-to-box: "${o}" already has a row`);ha[o]=t}}function df(e){return ha[e]}function d9(e){return e in ha&&OO.includes(e)}function _O(e,o=cl){return e in ha&&(o.includes(e)||d9(e))}function WPe(e){let o=Io[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 dI=e=>i9(e),ao=e=>dI(e).text.trim()!=="";function f9(e){return e.replace(/==(.+?)==/g,(o,t)=>t.startsWith("_")&&t.endsWith("_")?o:`==_${t}_==`)}function u9(e){if(e.includes("=="))return e;let o=e.indexOf("/"),t=o===-1?e:e.slice(0,o),r=t.trim();if(!r)return e;let a=t.indexOf(r);return`${t.slice(0,a)}==${r}==${t.slice(a+r.length)}${o===-1?"":e.slice(o)}`}var p9=e=>e==="heading"?Lo():e==="eyebrow"?xo():{};function m9(e,o,t,r){let a={...e._partStyles?.text??{},...o??{},...t??{}};return(r==="center"||r==="right")&&a.align===void 0&&(a.align=r),Object.keys(a).length?{_partStyles:{text:a}}:{}}function h9(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 PO(e,o,t,r,a={}){let n={...o};for(let s of e){let[l,c,d]=typeof s=="string"?[s,s,void 0]:s;if(t[l]===void 0)continue;let p=d?d(t[l],t,a):t[l];p===void 0?delete n[c]:n[c]=p,r(l,c,p===void 0)}return n}function x9(e){let o=new Set([...EO,"headPlacement","_partStyles",...Object.keys(e.drop??{}),...Object.keys(e.reads??{})]),t=a=>{for(let n of a??[])o.add(typeof n=="string"?n:n[0])},r=a=>{for(let n of a)switch(n.kind){case"text":case"image":o.add(n.key),n.kind==="image"&&n.alt&&o.add(n.alt);break;case"button":o.add(n.key),o.add(n.href),typeof n.variant=="object"&&o.add(n.variant.key);break;case"list":o.add(n.key);break;case"group":case"block":t(n.box),r(n.parts??[]);break;case"core":if(n.keep!=="rest"&&n.keep.forEach(s=>o.add(s)),Object.keys(n.rename??{}).forEach(s=>o.add(s)),n.derive?.reads.forEach(s=>o.add(s)),typeof n.slots!="function")for(let s of Object.values(n.slots??{}))for(let l of s)"kind"in l&&o.add(l.key);break}};for(let a of[e,...e.also??[]])t(a.box),r(a.parts);return o}function fI(e,o,t={}){let r=e.props,a=o.skip?.(r);if(a!==void 0)return{node:e,nodes:[e],carried:[],dropped:[],siteWrites:[],restyled:[],skipped:a};let n=String(r.id??e.type),s=[],l=[],c=[],d=new Set,p=(v,k)=>{s.push({key:v,home:k}),d.add(v)},h=r._partStyles??{},u=x9(o),x=0,g=(v,k)=>({type:v,props:{...k,id:`${n}~${v}-${++x}`}}),y=(v,k,A,D,P,R,N)=>{if(P){for(let _ of v??[]){let F=typeof _=="string"?_:_[0];A[F]!==void 0&&N(F,`nothing \u2014 the ${D} has no parts, so it is not drawn`)}return}let b=typeof k=="function"?k(r,t):k??{};return PO(v??[],b,A,(_,F,H)=>N(_,H?`nothing \u2014 the old value draws nothing (${D}: no ${F})`:`${R}${D}: ${F}`),t)},T=v=>Kn(v,k=>`${n}~${k}-${++x}`),O=(v,k,A)=>{let D=v.of?v.of(k):Array.isArray(k[v.key])?k[v.key]:[],P=typeof v.props=="function"?v.props(r,t):v.props??{},R=D.map((H,Z)=>{let q=H??{},U=v.item?.(q,Z,r)??{},ve=w(U.reverse?[...v.parts].reverse():v.parts,q,!1,`item ${Z+1}: `);return v.flat?U.props?ve.map(ne=>({...ne,props:{...ne.props,...U.props,id:ne.props.id}})):ve:[g(yt,{name:`${v.name} ${Z+1}`,...P,...U.props??{},[St]:ve})]});if(v.groups){let H=v.groups;return A(v.key,D.length?`one Box per item (${D.length}), in a Box per group`:"nothing \u2014 the list is empty"),rf(D.map(Z=>Z??{}),H.of,H.of).map((Z,q)=>{let U=Z.items.map(pe=>pe.item),ve=H.parts?w(H.parts,H.head?.(U,r)??{},!1,`group ${q+1}: `):[],ne=Z.items.map(pe=>R[pe.index]),Ue=H.perRow?.(U.length,r),De=Number.isInteger(Ue)&&Ue>=1?Ue:1,Te=[];if(H.perRow&&De<ne.length)for(let pe=0;pe*De<ne.length;pe++)Te.push(ne.slice(pe*De,(pe+1)*De).flat());return g(yt,{name:`${H.name} ${q+1}`,...H.props??{},[St]:[...ve,g(yt,{name:`${H.itemsName} ${q+1}`,...H.itemsProps?.(U.length,r)??{},[St]:Te.length?Te.map((pe,ge)=>g(yt,{name:`${H.rowName??`${H.itemsName} row`} ${ge+1}`,...H.rowProps??{},[St]:pe})):ne.flat()})]})})}let N=v.perRow?.(r),b=v.perRow?Number.isInteger(N)&&N>=1?N:1:0;if(A(v.key,(D.length?v.flat?`each item's parts (${D.length} items), in order`:`one Box per item (${D.length}), its parts inside`:"nothing \u2014 the list is empty")+(b&&D.length?`, in rows of ${b}`:"")),!b)return R.flat();let _=typeof v.rowProps=="function"?v.rowProps(r,t):v.rowProps??{},F=[];for(let H=0;H*b<R.length;H++){let Z=R.slice(H*b,(H+1)*b).flat(),q=v.rowFiller?b-R.slice(H*b,(H+1)*b).length:0;F.push(g(yt,{name:`${v.rowName??`${v.name} row`} ${H+1}`,..._,[St]:[...Z,...Array.from({length:q},(U,ve)=>g(yt,{name:`Empty ${ve+1}`,...v.rowFiller,[St]:[]}))]}))}return F},w=(v,k,A,D)=>{let P=[],R=(b,_)=>A?p(b,_):void 0,N=b=>A?h[b]:void 0;for(let b of v)if(!(b.when&&!b.when(r,A?void 0:k)))switch(b.kind){case"text":{let _=dI(k[b.key]);if(!_.text.trim()){R(b.key,"nothing \u2014 empty words draw nothing, so no block");break}let F=p9(b.role??"body"),{_partStyles:H,...Z}=F,q=m9(F,b.styleFrom?{...b.style,...b.styleFrom(r,t)}:b.style,N(b.key),b.props?.align);if(b.was&&A){let U=q._partStyles?.text??{};c.push({key:b.key,was:b.was,...typeof U.textStyle=="string"?{textStyle:U.textStyle}:{},...$(U.size)!==void 0?{size:$(U.size)}:{},...$(U.sizePhone)!==void 0?{sizePhone:$(U.sizePhone)}:{}})}P.push(g("Text",{text:b.mark==="accentLead"?u9(_.text):b.mark==="accentItalic"?f9(_.text):_.text,...Z,...b.props??{},...q,..._.hidden?{_hidden:!0}:{}})),R(b.key,`${D}Text block: its words${_.hidden?", hidden":""}`);break}case"button":{let _=dI(k[b.key]);if(!_.text.trim()){R(b.key,"nothing \u2014 no words, no button"),R(b.href,"nothing \u2014 no button to link"),typeof b.variant=="object"&&R(b.variant.key,"nothing \u2014 no button to style");break}let F=typeof k[b.href]=="string"&&k[b.href]?k[b.href]:"#",H={...b.style??{},...N(b.key)??{}};P.push(g("ButtonBlock",{label:_.text,href:F,...typeof b.props=="function"?b.props(k,t):b.props??{},...h9(b.variant,k),...Object.keys(H).length?{_partStyles:{label:H}}:{},..._.hidden?{_hidden:!0}:{}})),R(b.key,`${D}Button block: its words`),R(b.href,`${D}Button block: its link`),typeof b.variant=="object"&&R(b.variant.key,`${D}Button block: its Style`);break}case"image":{let _=k[b.key];if(typeof _!="string"||!_){R(b.key,"nothing \u2014 no picture, no block"),b.alt&&R(b.alt,"nothing \u2014 no picture to describe");break}let F=b.alt&&typeof k[b.alt]=="string"?k[b.alt]:"";P.push(g("ImageBlock",{src:_,alt:F,...b.props??{}})),R(b.key,`${D}Image block: its picture`),b.alt&&R(b.alt,`${D}Image block: its alt text`);break}case"list":{P.push(...O(b,k,R));break}case"group":{let _=w(b.parts,k,A,D),F=y(b.box,b.props,k,`${b.name} Box`,!_.length&&!b.keepEmpty,D,R);F&&P.push(g(yt,{name:b.name,...F,[St]:_}));break}case"block":{let _=b.parts?w(b.parts,k,A,D):[],F=y(b.box,b.props,k,`${b.type} block`,!!b.parts&&!_.length&&!b.keepEmpty,D,R);F&&P.push(g(b.type,{...F,...b.slot?{[b.slot]:_}:{}}));break}case"core":{let _=b.as??e.type,F={headPlacement:"own-box",...b.props??{}},H=b.keep==="rest"?Object.keys(k).filter(q=>!u.has(q)&&!(q in F)):b.keep;for(let q of H)k[q]!==void 0&&(F[q]=k[q],R(q,`the ${_} block inside the Box`));if(b.keep==="rest"){for(let U of Object.keys(b.props??{}))k[U]!==void 0&&!u.has(U)&&R(U,`nothing \u2014 the ${_} block inside the Box has the row's own value`);k.headPlacement!==void 0&&R("headPlacement",`the ${_} block inside the Box: own-box`);let q=Object.fromEntries(Object.entries(h).filter(([U])=>!u.has(U)));Object.keys(q).length&&(F._partStyles=q)}for(let[q,U]of Object.entries(b.rename??{}))k[q]!==void 0&&(F[U]=k[q],R(q,`the ${_} block inside the Box: ${U}`));if(b.derive){Object.assign(F,b.derive.props(k,t));for(let q of b.derive.reads)k[q]!==void 0&&R(q,`the ${_} block inside the Box`)}let Z=typeof b.slots=="function"?b.slots(k,t):b.slots??{};for(let[q,U]of Object.entries(Z))F[q]=U.flatMap(ve=>"kind"in ve?O(ve,k,R):T([ve]));P.push(g(_,F));break}}return P},I=(v,k)=>{let A=k===0?"Box":`${v.name} Box`,D=w(v.parts,r,!0,k===0?"":`${A}: `),P=typeof v.boxProps=="function"?v.boxProps(r,t):v.boxProps??{},R=PO(v.box??[],P,r,(N,b,_)=>p(N,_?`nothing \u2014 the old value draws nothing (${A}: no ${b})`:`${A}: ${b}`),t);return{type:yt,props:{name:v.name,...R,[St]:D,id:c9(n,k)}}},C=[o,...o.also??[]].map(I);r._partStyles!==void 0&&p("_partStyles","each old part's style moved to its new part");for(let[v,k]of Object.entries(o.reads??{}))r[v]!==void 0&&p(v,k);for(let[v,k]of Object.entries(o.drop??{}))v in r&&(l.push({key:v,why:k}),d.add(v));for(let v of Object.keys(r))EO.has(v)||d.has(v)||l.push({key:v,why:"not in the row \u2014 not carried"});return{node:C[0],nodes:C,carried:s,dropped:l,siteWrites:[...o.site?.(e,t)??[]],restyled:c}}function RO(e,o=OO,t={}){if(!Array.isArray(e))return[];let r=[];return e.forEach((a,n)=>{let s=a&&typeof a.type=="string"&&o.includes(a.type)?ha[a.type]:void 0;if(!s)return;let l=fI(a,s,t);l.skipped===void 0&&r.push({index:n,node:l.node,nodes:l.nodes})}),r}function AO(e){let o=b9(s=>s.appState.data.content),{theme:t,themeRow:r,themeFromDocument:a}=de(),n=g9(new Set);I9(()=>{let s=y9({theme:t,themeRow:r,themeFromDocument:a});s&&S9(RO(o,void 0,s),e,n.current)},[o,e,t,r,a])}function y9(e){return e.themeFromDocument||e.themeRow==="none"?{}:e.themeRow==="read"?{theme:e.theme}:null}function S9(e,o,t){for(let{index:r,nodes:a}of[...e].sort((n,s)=>s.index-n.index)){let n=String(a[0].props.id);t.has(n)||(t.add(n),o.replaceComponent(uI,r,a[0]),a.slice(1).forEach((s,l)=>{o.insertNode(uI,r+1+l,s),o.replaceComponent(uI,r+1+l,s)}))}}import{ROOT_ZONE as On,missingPinnedTypes as P9,pinnedDuplicateIds as hI}from"efficient-easel/draw";function FO(e){return!e.docId||e.saveStatus==="saving"?!1:e.seededDocId!==e.docId}function LO(e,o){let t=e.some(l=>l?.type===Oe),r=e[e.length-1],a=!t&&r?.type===Be?r:null,n=e.filter(l=>l?.type===Be&&l!==a).map(l=>String(l.props?.id??"")).filter(Boolean),s=o.hasChromeDoc&&!t&&!a;return{remove:n,seedHeader:!e.some(l=>l?.type===So),seedFooter:s,seedSiteHeader:s&&!e.some(l=>l?.type===Le)}}async function BO(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!==Le||!e.stillOpen())return!1;let r=e.latest();return r.some(a=>a?.type===Le)?!1:(e.write(Ud(r,t)),!0)}function DO(e,o){let{adapter:t,capabilities:r,currentSlug:a,docId:n,data:s,saveStatus:l,siteId:c,tokenRef:d}=k9(),p=T9(),{hasSiteSettings:h,hasPinnedChrome:u}=r;AO(e);let x=!!r.editsPinnedInPlace&&a!==Xo,g=a===Xo,y=v9().getState,T=C9(null);w9(()=>{if(!FO({docId:n,saveStatus:l,seededDocId:T.current})||(T.current=n,!u))return;let O=y().appState.data,w=O.content,I=s?.content??[],C=(D,P)=>D.some(R=>R?.type===P);if(!h){let D=new Set(hI(w)),P=D.size?w.filter(N=>!D.has(N.props.id)):w;if(D.size&&e.setDocument({...O,content:P}),g)return;let R=P9(P,I);if(R.includes(Be)){let N=P.length,b=e.insertSection(Be,N);e.replaceComponent(On,N,{type:Be,props:{id:b,blocks:Zd()}})}R.includes(So)&&e.insertNode(On,0,Xd());return}if(g){let D=vn(w);if(D!==w&&e.setDocument({...O,content:[...D]}),!D.find(P=>P.type===Be)&&!C(I,Be)&&!C(D,Oe)&&!C(I,Oe)){let P=(N,b)=>pI(o,N,b),R={type:Be,props:{blocks:Zd()}};e.insertNode(On,D.length,rl(R,P,mI(Oe)))}return}if(x){let D=!!t?.pinnedChrome?.state().docId,P=LO(w,{hasChromeDoc:D}),R=new Set([...P.remove,...hI(w.filter(b=>!P.remove.includes(String(b.props.id))))]),N=R.size?w.filter(b=>!R.has(String(b.props.id))):w;if(N.length!==w.length&&e.setDocument({...O,content:N}),P.seedFooter&&!C(I,Be)&&!C(I,Oe)){let b=(F,H)=>pI(o,F,H),_={type:Be,props:{blocks:Zd()}};e.insertNode(On,N.length,rl(_,b,mI(Oe)))}if(P.seedHeader&&!C(I,So)){let b=N[0]?.type===Le?1:0;e.insertNode(On,b,Xd())}if(P.seedSiteHeader&&!C(I,Le)&&!C(I,Be)&&!C(I,Oe)){let b=n;BO({blocks:Si(p),make:(_,F)=>pI(o,_,F),id:mI(Le),siteId:c??null,token:d.current,latest:()=>y().appState.data.content,stillOpen:()=>T.current===b,write:_=>{let F=y().appState.data;e.setDocument({...F,content:[..._]})}})}return}let v=w.filter(D=>D.type!==Be),k=new Set(hI(v)),A=k.size?v.filter(D=>!k.has(D.props.id)):v;A.length!==w.length&&e.setDocument({...O,content:A}),!C(A,So)&&!C(I,So)&&e.insertNode(On,0,Xd())},[n,l,s,y,e,h,u,g,x,t,p,c,d])}import{useEffect as $O,useMemo as L9,useRef as UO}from"react";import{useEasel as B9}from"efficient-easel/easel";import{useEaselHost as D9}from"efficient-easel/screen/lib/host";import{FIELD_DESCRIPTION_MARKER as E9}from"efficient-easel/screen/lib/host";import{isNode as xI}from"efficient-easel/data";function II(e,o){let t=e.components[o]?.label;return typeof t=="string"&&t.trim()?t.trim():o}function O9(e){return e.length>3&&e.endsWith("s")?e.slice(0,-1):e}function gI(e,o,t,r){e.forEach((a,n)=>{if(xI(a)){r.push({node:a,list:e,index:n,parent:o,slot:t});for(let[s,l]of Object.entries(a.props))Array.isArray(l)&&l.some(xI)&&gI(l,a,s,r)}})}function _9(e){let o=[];gI(Array.isArray(e.content)?e.content:[],null,"",o);for(let t of Object.values(e.zones??{}))Array.isArray(t)&&gI(t,null,"",o);return o}function MO(e,o){return _9(e).find(t=>String(t.node.props.id)===o)}function HO(e,o,t){if(!t)return null;let r=MO(o,t);if(!r)return null;let a=II(e,r.node.type),n=r.parent?`${II(e,r.parent.type)} \xB7 ${O9(r.slot)} ${r.index+1}`:a;return{blockId:t,type:r.node.type,label:n,path:""}}var R9=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 A9(e){if(!e||typeof e!="object")return null;let o=e;if(typeof o.type!="string")return null;let t=o.type==="custom"?o[E9]:void 0,r={type:t?.type??o.type},a=t?.label??o.label;typeof a=="string"&&(r.label=a);let n=t?.options??o.options;Array.isArray(n)&&(r.options=R9(n));for(let s of["arrayFields","objectFields"]){let l=t?.[s]??o[s];l&&typeof l=="object"&&(r[s]=zO(l))}return r}function zO(e){let o={};for(let[t,r]of Object.entries(e??{})){let a=A9(r);a&&(o[t]=a)}return o}function WO(e){let o={};for(let[t,r]of Object.entries(e.components))r&&(o[t]={label:II(e,t),fields:zO(r.fields)});return o}function F9(e,o){let t=e;for(let r of o?o.split("."):[]){let a=/^([A-Za-z_][A-Za-z0-9_]*)(?:\[(\d+)\])?$/.exec(r);if(!a||!t||typeof t!="object")return null;t=t[a[1]],a[2]!==void 0&&(t=Array.isArray(t)?t[Number(a[2])]:void 0)}return t&&typeof t=="object"&&!Array.isArray(t)?t:null}function bI(e,o){return e.findIndex(t=>xI(t)&&String(t.props.id)===o)}function NO(e,o,t){let r=o||t;if(!r)return e.length;let a=bI(e,r);if(a<0)throw new Error(`there is no top-level block ${r}`);return o?a+1:a}function GO(e,o,t,r){let a=structuredClone(o),n=Array.isArray(a.content)?a.content:a.content=[];try{t.forEach((s,l)=>{let c=d=>{throw new Error(`change ${l+1}: ${d}`)};switch(s.op){case"set_props":{let d=MO(a,s.block_id)??c(`there is no block ${s.block_id}`);"id"in s.props&&c("a block's id is never changed");let p=F9(d.node.props,s.path)??c(`there is no ${s.path} in that block`);Object.assign(p,structuredClone(s.props));break}case"insert_block":{let d=e.components[s.type]??c(`there is no block type ${s.type}`),p=d.defaultProps&&typeof d.defaultProps=="object"?d.defaultProps:{},h={type:s.type,props:{...structuredClone(p),...structuredClone(s.props),id:r(s.type)}};n.splice(NO(n,s.after,s.before),0,h);break}case"remove_block":{let d=bI(n,s.block_id);d<0&&c(`there is no top-level block ${s.block_id}`),n.splice(d,1);break}case"move_block":{let d=bI(n,s.block_id);d<0&&c(`there is no top-level block ${s.block_id}`);let[p]=n.splice(d,1);n.splice(NO(n,s.after,s.before),0,p);break}default:c(`"${s.op}" is not a change this editor makes`)}})}catch(s){return{ok:!1,reason:s instanceof Error?s.message:String(s)}}return{ok:!0,document:a}}var yI=e=>oe(e.requestId)??null;function jO(){let e=D9(),{appState:o,selectedItem:t,dispatch:r,history:a,config:n}=B9(u=>u),s=n,l=UO({appState:o,dispatch:r,history:a,blockConfig:s});l.current={appState:o,dispatch:r,history:a,blockConfig:s};let c=UO(new Map),d=t?.props?.id,p=L9(()=>HO(s,o.data,d),[s,o.data,d]),h=p?JSON.stringify(p):"";$O(()=>{e.connected&&e.send("storefront-editor:selection",{selection:p})},[e,h]),$O(()=>e.subscribe(u=>{let{appState:x,dispatch:g,history:y,blockConfig:T}=l.current;switch(u.type){case"storefront-editor:request-document":{let O=yI(u);if(!O)return;e.send("storefront-editor:document",{requestId:O,document:x.data,blocks:WO(T)});return}case"storefront-editor:apply-page-edits":{let O=yI(u);if(!O)return;let w=Array.isArray(u.ops)?u.ops:[],I=w.length?GO(T,x.data,w,C=>`${C}-${crypto.randomUUID()}`):{ok:!1,reason:"no changes"};I.ok&&(g({type:"setData",data:I.document,recordHistory:!0}),c.current.set(O,JSON.stringify(I.document.content??[]))),e.send("storefront-editor:page-edits-result",{requestId:O,applied:I.ok,reason:I.ok?null:I.reason});return}case"storefront-editor:undo-page-edits":{let O=yI(u);if(!O)return;let w=c.current.get(O),I=w!==void 0&&w===JSON.stringify(x.data.content??[]);I&&y.hasPast&&(y.back(),c.current.delete(O)),e.send("storefront-editor:page-edits-result",{requestId:O,applied:I&&y.hasPast,reason:I?null:"the page has changed since"});return}case"storefront-editor:set-right-panel":typeof u.shown=="boolean"&&g({type:"setUi",ui:{rightSideBarVisible:u.shown}});return;default:return}}),[e])}import{useEffect as VO,useState as YO}from"react";var ff=new Map;async function N9(e,o){try{return(await We().site.get({siteId:o})).slug?.trim()||null}catch(t){return console.warn("[editor-site-slug] could not resolve the site slug",t),null}}function KO(e,o){let t=ff.get(o);return t||(t=N9(e,o),ff.set(o,t),t.catch(()=>{ff.get(o)===t&&ff.delete(o)})),t}var M9=/^(localhost|(?:[a-z0-9-]+\.)+localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|::1)$/i;function SI(e){return!!e&&M9.test(e)}function qO(e){let{pageSlug:o,siteSlug:t,hostname:r}=e,a=o===Ii?"/":`/${encodeURIComponent(o)}`;if(!SI(r))return a;let n=t?.trim();return n?`${a}?site=${encodeURIComponent(n)}`:a}function XO(e){let{pageSlug:o,siteId:t,token:r}=e,[a,n]=YO(null),[s,l]=YO(null),c=La();VO(()=>l(c?new URL(c).hostname:window.location.hostname),[c]),VO(()=>{if(!SI(s)||!t||!r){n(null);return}let p=!1;return KO(r,t).then(h=>{p||n(h)}),()=>{p=!0}},[s,t,r]);let d=qO({pageSlug:o,siteSlug:a,hostname:s});return c?`${c}${d}`:d}import{jsx as dl}from"react/jsx-runtime";import{useEffect as H9,useRef as ZO,useState as z9}from"react";import{ExternalIcon as JO}from"efficient-easel/icons";import{EaselIconButton as W9}from"efficient-easel/chrome";import{Tooltip as G9,iconButtonClasses as $9}from"efficient-shell/ui";import{useSettledPress as U9}from"efficient-easel/easel";import{useScreenDocument as j9}from"efficient-easel/screen/components/ScreenDocumentContext";async function K9({pageId:e,liveHref:o,draftLink:t,ready:r=async()=>!0,win:a=window}){let n=a.open("","_blank");if(n)try{n.opener=null}catch{}let s=l=>{n&&!n.closed?n.location.href=l:a.open(l,"_blank","noopener,noreferrer")};try{await r()}catch{}return t(e).then(l=>s(l.url??o),()=>s(o))}function QO({liveHref:e,pageId:o,draftLink:t}){let{flushSave:r}=j9(),a=ZO(r);a.current=r;let n=U9(),[s,l]=z9(!1),c=ZO(null);if(H9(()=>()=>c.current?.(),[]),t&&o){let d=()=>new Promise((h,u)=>{c.current=()=>h(!1),n.run(()=>{c.current=null,a.current().then(h,u)})}),p=()=>{s||n.waiting||(l(!0),K9({pageId:o,liveHref:e,draftLink:t,ready:d}).finally(()=>l(!1)))};return dl(W9,{label:i("Preview your saved draft in a new tab"),tip:i("Open your saved draft in a new tab. Visitors don't see it."),disabled:s||n.waiting,onClick:p,children:dl(JO,{})})}return dl(G9,{content:i("Preview the live site (opens in a new tab)"),side:"bottom",children:dl("a",{className:$9({className:"es-iconbtn"}),href:e,target:"_blank",rel:"noopener noreferrer","aria-label":i("Preview the live site in a new tab"),children:dl(JO,{})})})}import{createElement as Z9,useCallback as J9,useEffect as x1,useRef as I1,useState as Q9}from"react";import{ClockIcon as eV}from"efficient-shell/icons/efficient";import{useScreenDocument as oV}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSyncExternalStore as q9}from"react";import{useScreenDocument as V9}from"efficient-easel/screen/components/ScreenDocumentContext";var Y9=()=>()=>{},e1=()=>null;function uf(e){return q9(e?e.subscribe:Y9,e?e.state:e1,e?e.state:e1)}function pf(){let{adapter:e}=V9();return e?.pinnedChrome}import{useSyncExternalStore as r1}from"react";var fl=!1,_n=null,wI=new Set;function pl(){for(let e of wI)e()}function a1(e){return wI.add(e),()=>{wI.delete(e)}}function n1(){fl||(fl=!0,pl())}function s1(){fl&&(fl=!1,pl())}function o1(){return fl}function l1(){return r1(a1,o1,o1)}function t1(){return _n}function mf(){_n&&(_n=null,pl())}function i1(){return r1(a1,t1,t1)}var ul=class extends Error{constructor(){super("The editor's last changes could not be saved, so nothing was restored."),this.name="HeldEditsNotSaved"}};async function c1(e,o,t,{flushSave:r,reload:a}){if(!await r())throw new ul;let n=await e.restore(o,t);return _i(n.liveState),a(),n}async function d1({access:e,version:o,page:t,...r}){let a=await c1(e,o.id,t?{page:t.id}:{},r);_n={title:X9(o,t??null),undo:a.undo},pl()}async function f1({access:e,...o}){let t=_n?.undo;t&&(await c1(e,t,{},o),_n=null,pl())}function u1(e){return e.name?e.name:e.kind==="draft_before_restore"?i("Draft before restore"):i("Version {n}",{n:e.number})}function X9(e,o){return e.kind==="draft_before_restore"?i("Your drafts from before the restore are back"):o?i("{page} from version {n} is now your draft",{page:o.name,n:e.number}):i("Version {n} is now your draft",{n:e.number})}function p1(e){let o=e.changes.filter(r=>r.kind==="page").length,t=[...o?[ho("{n} page","{n} pages",o)]:[],...e.changes.filter(r=>r.kind!=="page").map(r=>r.name)];if(!t.length)return"";try{return new Intl.ListFormat(pu(),{type:"conjunction"}).format(t)}catch{return t.join(", ")}}function m1(e){return e.change==="take_down"?i("{name} (taken down)",{name:e.name}):e.name}function h1(e,o=new Date){let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let r=pu(),a=new Intl.DateTimeFormat(r,{hour:"numeric",minute:"2-digit"}).format(t);if(t.toDateString()===o.toDateString())return i("Today, {time}",{time:a});let n=new Intl.DateTimeFormat(r,{day:"numeric",month:"short",...t.getFullYear()===o.getFullYear()?{}:{year:"numeric"}}).format(t);return i("{day}, {time}",{day:n,time:a})}function g1(e){let{docId:o,capabilities:t,hasUnsavedEdits:r,onPublish:a,adapter:n}=oV(),s=tE(oE(o??null),r),l=uf(pf()),c=n.siteLiveState;x1(()=>{if(c)return Bp(c),_t(0),()=>Bp(null)},[c]);let d=Ri(),[p,h]=Q9(!1),u=I1(e);u.current=e;let x=I1(!0);x1(()=>(x.current=!0,()=>{x.current=!1}),[]);let g=J9(()=>{h(!0),a(u.current).then(()=>{mf()}).finally(()=>{x.current&&h(!1)})},[a]);if(t.canPublish){if(c){let y=d===void 0?void 0:r||d.state==="changed"?"changed":"live",T=Bx({live:y,onPress:g,busy:p,goingLive:rE(d?.changes??[])});return n.siteVersions?{...T,menuItems:tV()}:T}return Bx({live:s,onPress:g,busy:p,pinnedUnpublished:l?.unpublished??!1})}}function tV(){return[{key:"version-history",label:i("Version history"),icon:Z9(eV),onSelect:n1}]}import{jsx as X,jsxs as Ro,Fragment as xl}from"react/jsx-runtime";import{useCallback as rV,useEffect as aV,useId as S1,useRef as nV,useState as Mo}from"react";import{useSettledAction as sV}from"efficient-easel/easel";import{Avatar as lV,Banner as ml,Button as xa,ColoredBadge as CI,Dialog as w1,Drawer as iV,DropdownMenu as cV,FormField as C1,iconButtonClasses as dV,Inline as vI,Input as fV,ListRow as uV,Select as pV,SortableList as mV,Stack as hl}from"efficient-shell/ui";import{EditIcon as hV,EyeIcon as b1,MenuIcon as xV,MoreIcon as IV,PageIcon as v1,RevertIcon as y1,StylesIcon as gV}from"efficient-shell/icons/efficient";import{useScreenDocument as k1}from"efficient-easel/screen/components/ScreenDocumentContext";var bV={page:v1,menu:xV};function yV(e,o){return e.pages.find(t=>t.id===o)??e.pages[0]??null}function SV(e,o){let t=window.open("","_blank");if(t)try{t.opener=null}catch{}return e.preview(o).then(({url:r})=>{t&&!t.closed?t.location.href=r:window.open(r,"_blank","noopener,noreferrer")},r=>{throw t?.close(),r})}function wV({version:e,page:o,waiting:t,busy:r,error:a,onCancel:n,onConfirm:s,onPage:l}){let c=S1();if(!e)return null;let d=e.kind==="draft_before_restore",p=e.number,h=p1(e),u=d?i("Put your drafts back?"):o?i("Restore {page} from version {n}?",{page:o.name,n:p}):i("Restore version {n}?",{n:p}),x=d?i("Your drafts go back to how they were before the restore."):o?i("{page} goes back to version {n} as a draft. Nothing else on your website changes.",{page:o.name,n:p}):h?i("The whole website goes back to version {n} as a draft: {what}.",{n:p,what:h}):i("The whole website goes back to version {n} as a draft.",{n:p}),g=e.deletedPictures??0;return X(w1,{open:!0,onClose:()=>{r||n()},size:"sm",title:u,footer:Ro(xl,{children:[X(xa,{variant:"secondary",onClick:n,disabled:r,children:i("Cancel")}),X(xa,{onClick:s,loading:r,disabled:r,children:i("Restore as draft")})]}),children:Ro(hl,{gap:4,children:[o&&e.pages.length>1?X(C1,{label:i("Page"),htmlFor:c,children:X(pV,{id:c,value:o.id,options:e.pages.map(y=>({value:y.id,label:y.name})),onChange:l,disabled:r})}):null,X("p",{children:x}),X("p",{children:i("Your live website does not change until you press Publish.")}),g>0?X(ml,{tone:"warning",children:ho("{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?X(ml,{tone:"info",title:i("Your unpublished changes are kept"),children:i("They are saved in Version history as \u201CDraft before restore\u201D, so you can get them back.")}):null,a?X(ml,{tone:"danger",children:a}):null]})})}function CV({version:e,onCancel:o,onSave:t}){let r=S1(),[a,n]=Mo(null),[s,l]=Mo(""),[c,d]=Mo(!1),[p,h]=Mo(null);if(e!==a&&(n(e),l(e?.name??""),h(null)),!e)return null;let u=s.trim()===e.name,x=async()=>{if(!(c||u)){d(!0),h(null);try{await t(s.trim())}catch{h(i("The name was not saved. Try again."))}finally{d(!1)}}};return X(w1,{open:!0,onClose:()=>{c||o()},size:"sm",title:i("Name this version"),footer:Ro(xl,{children:[X(xa,{variant:"secondary",onClick:o,disabled:c,children:i("Cancel")}),X(xa,{onClick:()=>{x()},loading:c,disabled:c||u,children:i("Save")})]}),children:X(C1,{label:i("Name"),htmlFor:r,hint:i("Named versions are always kept. Leave it empty to take the name away."),error:p??void 0,children:X(fV,{id:r,value:s,invalid:!!p,onChange:g=>l(g.target.value),onKeyDown:g=>{g.key==="Enter"&&x()}})})})}function vV({version:e,expanded:o,onToggle:t,onPreview:r,onRestore:a,onRestorePage:n,onName:s}){let l=e.kind==="draft_before_restore",c=!e.live,d=e.changes.length,p=[...l?[]:[{key:"preview",label:i("Preview"),icon:X(b1,{}),onSelect:r}],...c?[{key:"restore",label:l?i("Put these drafts back"):i("Restore whole website"),icon:X(y1,{}),onSelect:a}]:[],...c&&!l&&e.pages.length?[{key:"restore-page",label:i("Restore one page only"),icon:X(v1,{}),onSelect:n}]:[],...l?[]:[{type:"divider",key:"divider"},{key:"name",label:i("Name this version"),icon:X(hV,{}),onSelect:s}]];return X(uV,{title:Ro("span",{className:"sf-version-title",children:[X("span",{children:u1(e)}),e.live?X(CI,{tone:"success",size:"xs",children:i("Live")}):null,e.name?X(CI,{tone:"neutral",size:"xs",children:i("Version {n}",{n:e.number})}):null,l?X(CI,{tone:"warning",size:"xs",children:i("Not published")}):null]}),expanded:o,onToggle:t,actions:X(cV,{align:"end","aria-label":i("More"),items:p,triggerClassName:dV({variant:"ghost",size:"sm"}),trigger:X(IV,{})}),below:Ro(hl,{gap:3,children:[Ro(vI,{gap:2,align:"center",wrap:!0,className:"sf-version-meta",children:[X(lV,{name:e.createdBy,size:"xs"}),X("span",{children:e.createdBy}),X("span",{"aria-hidden":"true",children:"\xB7"}),X("span",{children:h1(e.createdAt)}),d?Ro(xl,{children:[X("span",{"aria-hidden":"true",children:"\xB7"}),X("span",{children:ho("{n} change","{n} changes",d)})]}):null]}),o?Ro(hl,{gap:3,children:[d?X(hl,{gap:2,children:e.changes.map(h=>{let u=bV[h.kind]??gV;return Ro(vI,{gap:2,align:"center",children:[X(u,{size:16}),X("span",{children:m1(h)})]},`${h.kind}:${h.id}`)})}):null,Ro(vI,{gap:2,children:[l?null:X(xa,{variant:"secondary",size:"sm",leftIcon:X(b1,{}),onClick:r,children:i("Preview")}),c?X(xa,{variant:"secondary",size:"sm",leftIcon:X(y1,{}),onClick:a,children:i("Restore")}):null]})]}):null]})})}function kV({open:e,onClose:o,access:t,waiting:r}){let{flushSave:a,reloadFromServer:n,docId:s}=k1(),[l,c]=Mo(null),[d,p]=Mo(!1),[h,u]=Mo(null),[x,g]=Mo(null),[y,T]=Mo(!1),[O,w]=Mo(null),[I,C]=Mo(null),[v,k]=Mo(!1),A=nV(0),D=rV(()=>{let b=++A.current;p(!1),t.list().then(_=>{b===A.current&&c(_)},()=>{b===A.current&&p(!0)})},[t]);aV(()=>{e&&D()},[e,D]);let P=b=>{k(!1),SV(t,b.id).catch(()=>k(!0))},R=async()=>{if(!(!x||y)){T(!0),w(null);try{await d1({access:t,version:x.version,page:x.page,flushSave:a,reload:n}),g(null),o()}catch(b){w(b instanceof ul?i("Your last changes did not save, so nothing was restored. Try again."):i("The version was not restored. Nothing changed. Try again."))}finally{T(!1)}}},N=sV({onPress:()=>{R()},busy:y});return Ro(xl,{children:[X(iV,{open:e,onClose:o,side:"right",size:"md",title:i("Version history"),description:Ro(xl,{children:[i("Every Publish keeps a copy of the whole website: pages, menus and site styles.")," ",i("Products, prices and forms always show as they are now.")]}),footer:X("span",{className:"sf-version-foot",children:i("The newest 30 are kept. Named versions are always kept.")}),children:Ro(hl,{gap:3,children:[v?X(ml,{tone:"danger",onDismiss:()=>k(!1),children:i("The preview did not open. Try again.")}):null,d?X(ml,{tone:"danger",action:X(xa,{variant:"secondary",size:"sm",onClick:D,children:i("Try again")}),children:i("Version history did not load.")}):l===null?X("p",{className:"sf-version-foot",children:i("Loading versions")}):l.length===0?X("p",{className:"sf-version-foot",children:i("No versions yet. Every Publish from now on keeps one.")}):X(mV,{"aria-label":i("Versions"),spacing:"comfortable",children:l.map(b=>X(vV,{version:b,expanded:h===b.id,onToggle:()=>u(_=>_===b.id?null:b.id),onPreview:()=>P(b),onRestore:()=>{w(null),g({version:b,page:null})},onRestorePage:()=>{w(null),g({version:b,page:yV(b,s)})},onName:()=>C(b)},b.id))})]})}),X(wV,{version:x?.version??null,page:x?.page??null,waiting:r,busy:N.busy===!0,error:O,onCancel:()=>g(null),onConfirm:N.onPress,onPage:b=>g(_=>_&&{..._,page:_.version.pages.find(F=>F.id===b)??_.page})}),X(CV,{version:I,onCancel:()=>C(null),onSave:async b=>{await t.name(I.id,b),C(null),D()}})]})}function T1(){let{adapter:e,hasUnsavedEdits:o}=k1(),t=e.siteVersions,r=l1(),a=Ri();return t?X(kV,{open:r,onClose:s1,access:t,waiting:o||a?.state==="changed"}):null}import{useEaselSession as tL}from"efficient-easel/screen/lib/session-context";import{buildPaletteSections as gEe,categoryLabel as bEe,paletteWithoutPinned as yEe,pinnedSection as SEe}from"efficient-easel/screen/lib/document/palette-sections";var TV={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 P1(e){return TV[e]?.label}var E1=bu;import{currentEaselSession as aF}from"efficient-easel/screen/lib/session";var O1=[{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"}],TEe={label:"Scrolling Bar",defaultProps:{items:[],tone:"scrim",borders:!0,size:wu,separator:Cu,scrollDirection:Hs}};var _1=()=>[{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"},{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"}],OEe={label:"Spec Strip",defaultProps:{cells:[{text:"",tone:"normal"},{text:"",tone:"normal"}],fill:"dark"}};var hf={direction:"column",justify:"between",gap:14,sectionPaddingLeft:14,sectionPaddingRight:14,sectionPaddingLeftPhone:0,sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},Il={name:"Year and title",direction:"column",gap:14};var Ia={direction:"row",share:"content",align:"center"},gl={top:14,bottom:14,topPhone:12,bottomPhone:12},xf={wrap:"nowrap",loop:"scroll",sectionAccent:Hp,gap:60,gapPhone:32,separator:"dot",sectionBorder:{top:1,bottom:1}},R1={gap:120,gapPhone:64},If={textStyle:"body-5",sizeToken:{step:"label",px:14,pxPhone:12},letterSpacing:.25,case:"upper",lineHeight:1.5},A1={textStyle:"heading-3",letterSpacing:.005,case:"upper",lineHeight:1},bl={top:16,bottom:16,topPhone:12,bottomPhone:12},gf={justify:"between",wrap:"wrap",gap:32,separator:"none"},yl={textStyle:"body-5",letterSpacing:.1,case:"upper",lineHeight:1.5};function ae(e,o,t,r={}){return{type:e,props:{...o(e),id:t(e),...r}}}function F1(e,o,t){return ae(V,e,o,{...t,sectionPaddingTop:void 0,sectionPaddingBottom:void 0})}var bf={Manifesto:(e,o)=>({type:V,props:{...e(V),id:o(V),direction:"row",share:"equal",sectionHeightMode:"screen",name:"Brand Text",content:[ae(V,e,o,{direction:"column",justify:"center",blockSpacing:"gap",name:"Text",sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingLeft:40,sectionPaddingRight:40,content:[ae("Text",e,o,xo()),ae("Text",e,o,Lo()),ae("Text",e,o),ae("Stats",e,o)]}),F1(e,o,{direction:"column",name:"Picture",content:[]})]}}),Split:(e,o)=>({type:V,props:{...e(V),id:o(V),direction:"row",share:"equal",sectionHeightMode:"screen",sectionHeightValue:70,name:"Image & Text Split",content:[ae(V,e,o,{direction:"column",justify:"center",blockSpacing:"gap",name:"Text",sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingLeft:60,sectionPaddingRight:60,content:[ae("Text",e,o,xo()),ae("Text",e,o,Lo()),ae("Text",e,o),ae("ButtonBlock",e,o)]}),F1(e,o,{direction:"column",name:"Image",content:[ae("ImageBlock",e,o)]})]}}),Subscribe:(e,o)=>({type:V,props:{...e(V),id:o(V),direction:"column",name:"Subscribe",content:[ae("Text",e,o,Lo()),ae("Text",e,o),ae("Form",e,o)]}}),Ticker:(e,o)=>L1("Scrolling Bar",xf,gl,O1.map(t=>({text:t.text,style:If,muted:!0})),e,o),SpecStrip:(e,o)=>L1("Spec Strip",{...gf,sectionBorder:{top:1}},bl,_1().map(t=>({text:t.text??"",style:yl,muted:t.tone==="muted"})),e,o),TimelineTrack:(e,o)=>{let t=r=>ae(V,e,o,{...hf,name:"Year",sectionPaddingTop:0,sectionPaddingBottom:0,...r?{upcoming:!0}:{},content:[ae(V,e,o,{...Il,sectionPaddingTop:0,sectionPaddingBottom:0,content:[ae("Text",e,o,xo()),ae("Text",e,o,Lo())]}),ae("Text",e,o)]});return{type:V,props:{...e(V),id:o(V),direction:"column",gap:48,name:"Milestone Timeline",content:[ae(V,e,o,{direction:"row",align:"end",justify:"between",share:"content",name:"Heading",content:[ae("Text",e,o,xo()),ae("Text",e,o,Lo()),ae("Text",e,o)]}),ae(V,e,o,{direction:"row",share:"equal",gap:0,line:!0,name:"Years",content:[t(!1),t(!1),t(!0)]}),ae("ButtonBlock",e,o)]}}},Timeline:(e,o)=>{let t=()=>ae(V,e,o,{direction:"row",share:"biggerRight",gap:24,name:"Chapter",content:[ae("Text",e,o,xo()),ae(V,e,o,{direction:"column",gap:12,name:"Words",content:[ae("Text",e,o,Lo()),ae("Text",e,o)]})]});return{type:V,props:{...e(V),id:o(V),direction:"row",share:"bigRight",gap:48,name:"Story Timeline",content:[ae(V,e,o,{direction:"column",gap:24,name:"Heading",content:[ae("Text",e,o,xo()),ae("Text",e,o,Lo()),ae("Text",e,o),ae("ImageBlock",e,o),ae("ButtonBlock",e,o)]}),ae(V,e,o,{direction:"column",gap:48,line:!1,name:"Chapters",content:[t(),t(),t()]})]}}}};function L1(e,o,t,r,a,n){return ae(V,a,n,{...Ia,...o,blockSpacing:"gap",padV2:!0,name:e,sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom,sectionPaddingTopPhone:t.topPhone,sectionPaddingBottomPhone:t.bottomPhone,content:r.map(s=>ae("Text",a,n,{text:s.text,...s.muted?{tone:"dim"}:{},_partStyles:{text:s.style}}))})}function B1(e){return bf[e]??null}import{phoneKey as AV}from"efficient-easel/draw";var D1={label:"Button",defaultProps:{label:"",href:"#",variant:"primary",align:"left",contained:!0}};import{jsx as PV}from"react/jsx-runtime";var yf={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}},N1=new Set(Object.keys(yf)),H1=new Set(["Flex","Text","Heading","ImageBlock"]),EV=new Set(["Divider"]),OV=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),M1=new Set(["ProductGrid"]);function kI(e,o,t=!1){let r=e.render;e.render=a=>{if(o?.(a))return r(a);let n=Mi($w(a,Yp,t)),s=r(a),l=oC(a);return n?PV("div",{className:l?`${n.className} ${l}`:n.className,style:n.style,children:s}):s}}var KEe={name:"sectionPadding",applies:(e,o,t)=>o.isSection(e)&&!OV.has(e)&&!!t&&typeof t.render=="function",panel(e,o,t){N1.has(o)||M1.has(o)||(e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})})},draw(e,o){if(N1.has(o)){let t=e.render,r=yf[o];e.render=a=>{let n=Hi(a,r);return t({...a,padTop:n.top,padBottom:n.bottom})};return}if(M1.has(o)){kI(e);return}H1.has(o)||EV.has(o)||kI(e,o==="Flex"?t=>Od(t.bgImage):void 0,!0)}},_V=["Heading","Text","ImageBlock"],RV=["LogoBlock"],qEe={name:"blockPadding",applies:(e,o,t)=>(_V.includes(e)||RV.includes(e))&&!!t&&typeof t.render=="function",panel(e,o,t){e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})}},draw(e,o){H1.has(o)||kI(e,void 0,!0)}};var An={...K,[Er]:""},{label:iOe,href:cOe,...FV}=D1.defaultProps,Ze=FV,$t={buttonFillOpacity:0,buttonBorder:{width:0},buttonPaddingTop:0,buttonPaddingRight:0,buttonPaddingBottom:0,buttonPaddingLeft:0},ce={...oi,sectionAccent:0},me=["gridSpan","sectionHeightMode","sectionHeightValue","sectionHeightUnit","sectionHeightModePhone","sectionHeightValuePhone","sectionHeightUnitPhone","sectionCorners","sectionCornerSides","sectionBorder","sectionBorderPhone","sectionAccent","stickTop","stickTopDistance","stickTopPhone","stickTopDistancePhone","anchor","sectionAnimation","_hidden",...Object.values(Ee).flatMap(e=>[e,AV(e)]),"widthFit","widthFitPhone","width","widthPhone","minWidth","minWidthPhone","maxWidth","maxWidthPhone"],Rn="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",he={sectionSurface:"read by nothing in src/ (searched 2026-10-24): a retired theme key that draws nothing today, so dropping it changes nothing",widthMode:Rn,fullWidth:Rn,pageWidth:Rn,backgroundWidth:Rn,contentWidth:Rn,contentMax:Rn},Ce=Object.fromEntries(["sectionPaddingLeft","sectionPaddingRight","sectionPaddingLeftTablet","sectionPaddingRightTablet","sectionPaddingLeftPhone","sectionPaddingRightPhone"].map(e=>[e,"needs Box side padding outside its gutter: the old section added it outside its frame, a Box's side padding replaces the gutter. 0 live nodes store it (JJ's read-only export, 2026-10-24)"]));function ye(e,o){let t=$(e.sectionPaddingTop)??0,r=$(e.sectionPaddingBottom)??0,a=$(e.sectionPaddingTopTablet),n=$(e.sectionPaddingBottomTablet);return{sectionPaddingTop:t+o.top,sectionPaddingBottom:r+o.bottom,...a===void 0?{}:{sectionPaddingTopTablet:a+o.top},...n===void 0?{}:{sectionPaddingBottomTablet:n+o.bottom},sectionPaddingTopPhone:($(e.sectionPaddingTopPhone)??a??t)+o.topPhone,sectionPaddingBottomPhone:($(e.sectionPaddingBottomPhone)??n??r)+o.bottomPhone}}var Ae=e=>["sectionPaddingTop","sectionPaddingBottom","sectionPaddingTopTablet","sectionPaddingBottomTablet","sectionPaddingTopPhone","sectionPaddingBottomPhone"].map(o=>[o,o,(t,r)=>ye(r,typeof e=="function"?e(r):e)[o]]);function wo(e,o){let t=Hi(e,yf[o]);return{sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom}}var xr=e=>[["padTop","sectionPaddingTop",(o,t)=>wo(t,e).sectionPaddingTop],["padBottom","sectionPaddingBottom",(o,t)=>wo(t,e).sectionPaddingBottom],["sectionPaddingTop","sectionPaddingTop",(o,t)=>wo(t,e).sectionPaddingTop],["sectionPaddingBottom","sectionPaddingBottom",(o,t)=>wo(t,e).sectionPaddingBottom]],LV={kind:"heading-case-upper",styles:["heading-1","heading-2","heading-3"]},dOe=e=>o=>ao(o.props[e])?[LV]:[],Ie=(e,o)=>({kind:"text",key:e,role:"eyebrow",props:K,...o?{style:o}:{}}),z1=e=>e.background!=="transparent",BV=(e,o)=>{let[t,r]=[e,o].map(a=>typeof a=="string"?a.trim():"");return t?r?`[${t} ]{color=text}${r}`:`[${t}]{color=text}`:r},Sl={align:"right",alignPhone:"left"},DV=(e,o,t)=>{let r=a=>BV(a[e],a[o]);return{kind:"block",type:"Text",when:(a,n)=>n!==void 0&&r(n)!=="",box:[[e,"text",(a,n)=>r(n)],[o,"text",(a,n)=>r(n)]],props:t}},wl=(e,o,t,r={})=>DV(e,o,{...An,...Sl,...r,_partStyles:{text:{textStyle:"body-5",color:"labels",...t,case:"upper",...Sl}}}),Cl=(e,o)=>typeof e=="number"&&Number.isInteger(e)&&e>=0?e:cf(o)?.selected??0,Sf=(e,o)=>cf(o)?.themes[Cl(e.sectionAccent??0,o)],Co=e=>(o,t)=>{let r=Sf(o,t)?.[e];return r?{fillColor:r}:{}},vl=(e,o)=>{let t=Sf(e,o)?.line;return t?{buttonBorder:{width:1,color:t}}:{}},ga=(e,o)=>{let t=cf(o)?.themes;return t&&z1(e)?$g(t,Cl(e.sectionAccent,o)):-1},Ir=(e,o,t)=>{let r=ga(o,t);return r>=0?r:e},ba=(e,o)=>{let t=ga(e,o);return t>=0?{sectionAccent:t}:{}},gr=(e,o)=>z1(e.props)&&ga(e.props,o)<0?[{kind:"band-preset",page:Cl(e.props.sectionAccent,o)}]:[],Fn=e=>zc(e.site?.siteGutter),kl=Object.fromEntries(["Top","Right","Bottom","Left","TopPhone","RightPhone","BottomPhone","LeftPhone"].map(e=>[`sectionPadding${e}`,0])),Tl=e=>({top:0,right:0,bottom:0,left:0,...e}),TI=(e,o,t,r=[])=>({kind:"group",name:e,keepEmpty:!0,props:(a,n)=>({...B,...kl,...Co("surface")(a,n),...typeof t=="function"?t(a,n):t}),box:[[o,"bgImage"],_e.kind,_e.duration,_e.delay],parts:r});import{phoneKey as NY,readHidable as jI}from"efficient-easel/draw";import{parseHexColor as MY}from"efficient-shell/format";import{jsx as Ll,Fragment as vY,jsxs as c_}from"react/jsx-runtime";import{jsx as BI,jsxs as dY}from"react/jsx-runtime";import{jsx as NV}from"react/jsx-runtime";function W1(){return NV("span",{className:"block h-px w-[30px] bg-current"})}import{jsxs as Rl,jsx as $e}from"react/jsx-runtime";import{Fragment as t_}from"react";import{parseHexColor as oY}from"efficient-shell/format";import{Fragment as QV,jsx as FI}from"react/jsx-runtime";import{Fragment as K1,jsx as El,jsxs as jV}from"react/jsx-runtime";import{createContext as AI,useContext as Ol,useEffect as KV,useId as qV,useMemo as VV,useRef as YV}from"react";import{armEntrance as XV}from"efficient-shell/format";import{jsx as zV}from"react/jsx-runtime";import{useEffect as j1,useRef as U1,useState as WV}from"react";import{armEntrance as GV,entranceAttrs as $V,playEntrance as UV}from"efficient-shell/format";import{jsx as Pl}from"react/jsx-runtime";import{createContext as $1,useContext as ya}from"react";var G1={stretchedRow:!1,fillingColumn:!1},Sa=$1(null),IOe=()=>ya(Sa)!==null,gOe=()=>ya(Sa);var wf=$1(!1);function MV(){let e=ya(Sa)?.stretchedRow===!0,o=ya(wf);return e&&!o}var HV=()=>ya(wf);function PI(){let e=ya(Sa),o=MV(),t=HV();return{fill:t?` ${eC}`:"",inner:r=>{let a=o||t?Pl(wf.Provider,{value:!0,children:r}):r;return e?.columnsRow?Pl(Sa.Provider,{value:{...e,columnsRow:!1},children:a}):a}}}function bOe({className:e,style:o,attrs:t,children:r}){let{fill:a,inner:n}=PI();return Pl("div",{className:`${e}${a}`,...o?{style:o}:{},...t,children:n(r)})}function yOe({children:e}){let o=ya(Sa),t=o===null?null:o.id===void 0?G1:{...G1,id:o.id};return Pl(Sa.Provider,{value:t,children:Pl(wf.Provider,{value:!1,children:e})})}function OI({desktop:e,phone:o,editing:t,boxClass:r,boxAttrs:a,boxStyle:n,children:s}){let l=U1(null),c=PI(),d=_I(l),p=d?o:e,{attrs:h,style:u}=$V(p),x=U1(EI.seed(e,o)),g=JSON.stringify(e),y=JSON.stringify(o);return j1(()=>{let T=l.current;if(T){if(t){let O=EI.next(x.current,e,o,d);x.current=O.seen,O.play&&UV(T);return}return GV(T)}},[g,y,d,t]),zV("div",{ref:l,className:`${yd}${c.fill}${r?` ${r}`:""}`,...a,...h,...Object.keys(u).length||n?{style:{...n,...u}}:{},children:c.inner(s)})}var EI={seed(e,o){return{desktop:JSON.stringify(e),phone:JSON.stringify(o)}},next(e,o,t,r){let a=EI.seed(o,t);return{play:r?a.phone!==e.phone:a.desktop!==e.desktop,seen:a}}};function _I(e,o=!0){let[t,r]=WV(!1);return j1(()=>{if(!o)return;let a=e.current?.ownerDocument?.defaultView??(typeof window>"u"?null:window);if(!a?.matchMedia)return;let n=a.matchMedia($a),s=()=>r(n.matches);return s(),n.addEventListener("change",s),()=>n.removeEventListener("change",s)},[e,o]),t}var Cf=AI(null),V1=AI(null),Y1=AI(null);function DOe({needles:e,styles:o,motions:t=p0,type:r,children:a}){let n=qV(),s=JSON.stringify([n,e,o,t,r]),l=VV(()=>{let d=Object.keys(t).filter(p=>h0(t[p]));return Uk(e,o,n,p=>qs(r,p),p=>Wk(r,p),p=>d.includes(p)?kx(t[p]):null,d)},[s]);if(!l)return El(K1,{children:a});let c=jk(l);return jV(K1,{children:[c&&El("style",{href:`${ZV}${n}-${JV(c)}`,precedence:Z1,dangerouslySetInnerHTML:{__html:c.replace(/</g,"\\3c ")}}),El(Cf.Provider,{value:l,children:a})]})}var RI=new WeakMap;function q1(e,o){let t=I0(o.filter(r=>r.arm));for(let r of o)r===t||!r.undo||(r.undo(),r.undo=void 0);t?.arm&&!t.undo&&(t.undo=t.arm()),o.some(r=>r.lift)?(b0(e.ownerDocument),e.setAttribute(_d,"")):e.removeAttribute(_d)}function X1(e){let o=YV(null),t=e?.motion?.entrance??null,r=e?.motion?.hover==="lift",a=_I(o,t!==null),n=JSON.stringify(t);return KV(()=>{let s=o.current,l=g0(s?.parentElement??null);if(!t&&!r||!s||!l)return;let c=t?()=>{let h=x0(l,a?t.phone:t.desktop),u=XV(l);return()=>{u?.(),h()}}:null,d=RI.get(l)??[];RI.set(l,d);let p={element:s,arm:c,lift:r};return d.push(p),q1(l,d),()=>{let h=d.indexOf(p);h<0||(d.splice(h,1),p.undo?.(),p.undo=void 0,q1(l,d),d.length||RI.delete(l))}},[n,r,a]),o}var Z1="sf-part-styles",ZV=`${Z1}-`;function JV(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 J1(e){let o=Ol(Cf),t=Ol(V1),r=Kk(o,e);return r&&r.stamp!==t?r:null}function NOe(e){return fh(Ol(Cf),e)}function Q1({stamp:e,children:o}){return El(V1.Provider,{value:e,children:o})}function MOe({children:e}){let o=Ol(Cf);return El(Y1.Provider,{value:o,children:e})}function HOe(e){return fh(Ol(Y1),e)}function _l({value:e,children:o}){let t=J1(e),r=X1(t);return t?FI(Q1,{stamp:t.stamp,children:FI("span",{ref:r,[th]:t.stamp,...t.textStyle?{[nn]:t.textStyle}:{},children:o})}):FI(QV,{children:o})}import{jsx as LI,Fragment as eY}from"react/jsx-runtime";function e_({className:e=""}){return LI("sup",{className:`text-accent tracking-normal text-[length:min(1em,max(0.75em,11px))] ${e}`,children:"\xAE"})}function vf(e){if(!e.includes("\xAE"))return e;let o=e.split("\xAE"),t=[];return o.forEach((r,a)=>{r&&t.push(r),a<o.length-1&&t.push(LI(e_,{},`r${a}`))}),LI(eY,{children:t})}var KOe=e_;function Ho(e,o=!1,t){let r=cY(o),a=Yn(e);if(a.length===1){let[s]=a,l=Mu(s),c=l?lY(l,s.children):s.children;return Rl(_l,{value:e,children:[t,kf(c,r)]})}let n=[];return a.forEach((s,l)=>{if(s.bullet){n.push($e("span",{"data-sf-bullet":"",className:tY,children:kf(s.children,r)},l));return}if(s.number!=null){n.push(Rl("span",{"data-sf-number":s.number,className:rY,children:[Rl("span",{className:aY,children:[s.number,"."]}),kf(s.children,r)]},l));return}l>0&&!nY(a[l-1])&&n.push($e("br",{},`br${l}`)),n.push($e(t_,{children:kf(s.children,r)},l))}),Rl(_l,{value:e,children:[t,n]})}var tY="relative block pl-6 before:absolute before:left-1.5 before:font-bold before:text-accent before:content-['\xB7']",rY="relative block pl-[2em]",aY="absolute left-0 w-[1.6em] text-right tabular-nums";function nY(e){return e.bullet||e.number!=null}var sY="text-accent underline underline-offset-[0.18em]";function lY(e,o){let[t,...r]=o;return t?.kind==="text"?[{kind:"text",text:`${e}${t.text}`},...r]:[{kind:"text",text:e},...o]}function iY(e){if(e)return oY(e)===e.toLowerCase()?e:Object.hasOwn(Et,e)?Et[e]:void 0}function kf(e,o){let t=[],r=!1;return e.forEach((a,n)=>{if(a.kind==="text"){t.push($e("span",{children:vf(a.text)},n)),r=!0;return}r||t.push($e("span",{},`e${n}`)),t.push(r_(a,n,o)),r=!1}),r||t.push($e("span",{},"end")),t}function o_(e,o){return e.length===1&&e[0].kind==="text"?vf(e[0].text):e.map((t,r)=>t.kind==="text"?$e(t_,{children:vf(t.text)},r):r_(t,r,o))}function cY(e){return e?"font-normal italic text-accent":"not-italic text-accent"}function o1e(e){return $e(_l,{value:e,children:$e("span",{children:e})})}function r_(e,o,t){if(e.kind==="link")return $e("a",{href:e.href,className:sY,children:o_(e.children,t)},o);let r=o_(e.children,t),a=ly[e.kind];if(a)return $e("span",{[iy]:a,children:r},o);switch(e.kind){case"underline":return $e("u",{children:r},o);case"sup":return $e("sup",{children:r},o);case"sub":return $e("sub",{children:r},o);case"color":{let n=iY(e.color);return n?$e("span",{style:{color:n},children:r},o):$e("span",{children:r},o)}case"accent":case"highlight":return $e("em",{className:t,children:r},o);case"bold":return $e("strong",{className:"font-semibold",children:r},o);case"italic":return $e("em",{className:"italic",children:r},o);case"strike":return $e("s",{className:"line-through",children:r},o);default:return $e("span",{children:r},o)}}function a_(e,o=!0){let t=e.split(`
42
+ `);return $e(_l,{value:e,children:t.map((r,a)=>Rl("span",{children:[Ho(r,o),a<t.length-1?$e("br",{}):null]},a))})}function n_(e){return e.split(/\n\s*\n/).map(o=>o.trim()).filter(Boolean)}var DI={labelUpTo800:"max-view-wide:text-[length:var(--size-label,12px)]",labelSmall:"text-[length:var(--size-label,12px)]",labelLarge:"text-[length:var(--size-label,14px)]"};function fY(e,o){return`font-mono text-[length:var(--size-label,${e}px)] uppercase tracking-[0.3em] text-accent`}var uY=`inline-block w-fit bg-accent px-3.5 py-1.5 font-mono ${DI.labelSmall} font-semibold uppercase tracking-[0.16em] text-bg`,pY=`flex items-center gap-3.5 font-mono ${DI.labelLarge} uppercase tracking-[0.3em] opacity-80 ${DI.labelUpTo800} max-view-wide:tracking-[0.25em]`;function s_({text:e,look:o="plain",size:t=13,scaled:r=!0,className:a="",classNameAfter:n=""}){if(o==="line")return dY("div",{className:[a,pY,n].filter(Boolean).join(" "),children:[BI(W1,{}),BI("span",{children:Ho(e)})]});let s=o==="filled"?uY:fY(t,r);return BI("span",{className:[a,s,n].filter(Boolean).join(" "),children:Ho(e)})}import{jsx as zo,Fragment as wY}from"react/jsx-runtime";import{createContext as Tf,useContext as Ut}from"react";import{isNodeList as mY}from"efficient-easel/data";var hY=new Set(["Flex","Grid"]);function xY(e){return typeof e=="string"&&hY.has(e)}var IY="contentWidth",gY="full",bY="content";function yY(e){let o=e?.[IY];return o===gY?!1:o===bY?!0:void 0}function l_(e,o){return e&&!o}function SY(e){return e.loop==="scroll"&&e.direction!=="tabs"&&!Od(typeof e.bgImage=="string"?e.bgImage:null)&&!wP(e.scrollDirection)}function d1e(e){return e!=="full"}function f1e(e,o,t){if(!Array.isArray(e)||typeof o!="string")return;let r=(a,n)=>{for(let s of a){let l=s?.props??{};if(l.id===o)return n;let c=xY(s?.type),d=c&&(n.inBox?yY(l)??t:t),p={insideGutter:n.insideGutter||d||c&&SY(l),inBox:n.inBox||c};for(let h of Object.values(l)){if(!mY(h))continue;let u=r(h,p);if(u!==void 0)return u}}};return r(e,{insideGutter:!1,inBox:!1})}var Al=Tf(!1);function g1e(){return Ut(Al)}function i_({children:e}){return zo(Al.Provider,{value:!0,children:e})}var NI=Tf(!1);function b1e({children:e}){return zo(NI.Provider,{value:!0,children:e})}var MI=Tf(!1);function y1e({atTop:e,nested:o}){return zo(wY,{children:Ut(MI)?o:e})}var Fl=Tf(void 0);function S1e({children:e}){return zo(Fl.Provider,{value:null,children:e})}function w1e(){return Ut(Fl)===void 0&&!Ut(MI)&&!Ut(Al)}function C1e(){return Ut(Fl)??null}function v1e({contained:e,framedClass:o,fillClass:t,columnClass:r,style:a,tabLabel:n,pad:s,border:l,outerAttrs:c,box:d=!1,edge:p=!1,outerStyle:h,bleed:u=!1,children:x}){let g=Ut(Al),y=Ut(NI),T=l_(e,g),O=T&&!y,w=s&&!O?jw(s.values,s.frame):null,I=l&&!O?l:null,C=[O?o:t,w?.className,I?cC:null].filter(Boolean).join(" "),v=CY(u&&O,w||I?{...a,...w?.style,...I}:a),k=Ut(Fl),A=d&&p&&k===void 0?{gutter:T,...s?{pad:s.values}:{}}:null,D=d?zo(MI.Provider,{value:!0,children:zo(Fl.Provider,{value:A,children:x})}):x,P=T?zo(Al.Provider,{value:!0,children:D}):D,R=s&&O?Uw(s.values):null,N=c&&Object.keys(c).length>0?c:null,b=zo("div",{...R?null:N,className:C,style:R||!h?v:{...v,...h},"data-tab-label":n,children:y?zo(NI.Provider,{value:!1,children:T&&!u?zo("div",{className:r,children:P}):P}):P}),_=R?zo("div",{...N,className:R.className,style:h?{...R.style,...h}:R.style,children:b}):b;return l&&O?zo("div",{className:iC,style:{display:"contents",...l},children:_}):_}function CY(e,o){return e?{...o,paddingLeft:0,paddingRight:0}:o}var d_={headingMediumUpTo800:"max-view-wide:text-[length:min(var(--size-headingMedium,32px),var(--sf-heading-max,9999px))]",headingMedium:"text-[length:min(var(--size-headingMedium,44px),var(--sf-heading-max,9999px))]"},kY="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))]",TY="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))]",PY="sf-card grid grid-cols-1 gap-px border border-line bg-line view-tablet:[grid-template-columns:repeat(var(--cd-cols),minmax(0,1fr))]",br={phone:{tl:"max-view-tablet:[border-top-left-radius:inherit]",tr:"max-view-tablet:[border-top-right-radius:inherit]",bl:"max-view-tablet:[border-bottom-left-radius:inherit]",br:"max-view-tablet:[border-bottom-right-radius:inherit]"},wide:{tl:"view-tablet:[border-top-left-radius:inherit]",tr:"view-tablet:[border-top-right-radius:inherit]",bl:"view-tablet:[border-bottom-left-radius:inherit]",br:"view-tablet:[border-bottom-right-radius:inherit]"}};function _1e(e,o,t){let r=Pf(t),a=o-1,n=Math.floor(a/r)*r,s=[];return e===0&&s.push(br.phone.tl,br.phone.tr,br.wide.tl),e===a&&s.push(br.phone.bl,br.phone.br),e===r-1&&o>=r&&s.push(br.wide.tr),e===n&&s.push(br.wide.bl),e===a&&o%r===0&&s.push(br.wide.br),s.join(" ")}function Pf(e){return Math.min(4,Math.max(2,e??3))}function R1e({look:e,eyebrow:o,title:t,columns:r,omitHead:a=!1,editing:n=!1,cards:s}={}){let l=Pf(r),c=!!(o??"").trim()||!!(t??"").trim();return!n&&!c&&!s?null:Ll("section",{className:"relative z-[2] bg-surface",children:c_("div",{className:a?TY:kY,children:[a?null:c_(vY,{children:[(o??"").trim()&&Ll(s_,{text:o??"",look:e,className:"mb-4 block"}),(t??"").trim()&&Ll("h2",{className:`mb-9 font-heading2 ${d_.headingMedium} font-medium uppercase leading-none tracking-[-0.02em] text-fg max-view-wide:mb-7 ${d_.headingMediumUpTo800}`,children:a_(t??"",!1)})]}),s?Ll("div",{className:PY,style:{"--cd-cols":String(l),overflowY:"visible"},children:Ll(i_,{children:s})}):null]})})}var L1e={eyebrow:"Label",title:"Section *heading.*"},EY={template:Kb()},f_={label:"Cards",fields:EY,defaultProps:{eyebrow:"",title:"",items:[],columns:3}};var N1e={eyebrow:"Highlight",title:"Key *features.*"},M1e=()=>[{label:i("Feature label one")},{label:i("Feature label two")},{label:i("Feature label three")},{label:i("Feature label four")},{label:i("Feature label five")},{label:i("Feature label six")}],u_={label:"Key Features",defaultProps:{eyebrow:"",title:"",items:[],columns:3}};import{readHidable as OY}from"efficient-easel/draw";function zI(e){if(e==="ProductGrid")return"shelf";let o=Io[e]?.headStyle;return o==="editorial"||o==="simple"||o==="essay"?o:"standard"}var h_={standard:64,editorial:60,simple:36,essay:28,shelf:20},_Y={SectionHeader:"accent",FAQ:"accent",FitmentFinder:"accent",FitmentTable:"accent",SpecTable:"accent",RelatedProducts:"accent",Collections:"accentNum"};function RY(e){if(e==="SectionHeader")return{num:"num",title:"title",description:"description",link:!0};let o=Io[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 x_(e,o,t){let r=`editorial:${e}|${o}|${t}`,a=Of.get(r);if(a)return a;let n=g_({num:e,title:o,description:t,link:!1});return Of.set(r,n),n}var WI={top:0,right:0,bottom:1,left:0},Wo=(e,o,t,r)=>({sizeToken:{step:e,px:r,fluid:{minPx:o,vw:t}}}),_f=(e,o,t={})=>Ie(e,{...G("label",o),...t}),AY=(e,o)=>{let t=OY(e).text.trim();return/\s/.test(t)?{minWidth:Math.ceil(t.length*o*.9),minWidthPhone:0,widthFitPhone:"fill"}:{}},Rf=(e,o)=>({kind:"text",key:e,role:"heading",props:K,style:{textStyle:"heading-2",...o}}),GI=800,$I=(e,o,t,r)=>({kind:"text",key:e,props:{...fe,align:"right",alignPhone:"left",...t?{maxWidth:t,maxWidthPhone:GI}:{}},style:{textStyle:"body-5",fontRole:"heading",alignPhone:"left",...G("body",o),...r}}),I_={...Ze,align:"right",alignPhone:"left",...$t,icon:"arrow-right",iconPosition:"after"},HI=e=>({kind:"button",key:"linkText",href:"linkHref",variant:"ghost",props:I_,style:{textStyle:"body-5",color:"labels",...G("label",e),letterSpacing:.2,case:"upper"}}),p_=(e,o,t)=>{let r=t.role==="heading"?{tag:"h2"}:{};return{kind:"block",type:"Text",when:a=>a[e]===void 0,props:{...K,...r,...t.props,text:o,_partStyles:{text:{...t.role==="eyebrow"?FY(xo()):{},...t.style}}}}},FY=e=>e._partStyles.text??{},Ef={widthFitPhone:"fill"};function LY(e,o){let t=_Y[e],r=t==="accent",a=_f(o.num,14,{color:r?"accent":"labels"}),n=t==="accentNum"&&a.kind==="text"?{...a,mark:"accentLead"}:a,s=Rf(o.title,r?{...Wo("headingMedium",36,5,64),case:"upper",lineHeight:.95,letterSpacing:-.025}:{...G("headingMedium",56,36),case:"none",lineHeight:1,letterSpacing:-.03}),l=e==="Collections";return{kind:"group",name:"Header",props:{...B,direction:"row",align:"end",justify:"between",gap:40,gapPhone:12,share:"content",sectionBorder:WI,sectionPaddingBottom:24,sectionPaddingBottomPhone:20},parts:[{kind:"group",name:"Title",props:{...B,...Ef,direction:"row",align:"end",gap:40,gapPhone:12,share:"content"},parts:[{kind:"group",name:"Number",props:{...B,...Ef,align:"start",gap:12},parts:[{kind:"image",key:"logoSrc",alt:"logoAlt",props:{aspect:"auto",contained:!1}},n,...l?[p_(o.num,"==01== / Collections",n)]:[]]},{kind:"group",name:"Heading",props:{...B,...Ef},parts:[s,...l?[p_(o.title,`Three ranges,
43
+ one standard.`,s)]:[]]}]},{kind:"group",name:"Words",props:{...B,...Ef,gap:12,maxWidth:340,maxWidthPhone:GI},parts:[...o.description?[$I(o.description,14,void 0,{lineHeight:1.5})]:[],...o.link?[HI(14)]:[],...l?[{kind:"block",type:"ButtonBlock",props:{...I_,variant:"ghost",label:"View all",href:"/wheels",_partStyles:{label:HI(14).style}}}]:[]]}]}}function g_(e){return{kind:"group",name:"Header",props:{...B,direction:"row",align:"end",justify:"between",gap:40,gapPhone:14,share:"content",sectionBorder:WI,sectionPaddingBottom:32},parts:[{kind:"group",name:"Title",props:{...B,direction:"row",align:"end",gap:40,gapPhone:14,share:"content"},parts:[{kind:"group",name:"Number",props:o=>({...B,sectionPaddingBottom:8,...AY(o[e.num],13)}),parts:[_f(e.num,13)]},Rf(e.title,{...Wo("headingMedium",40,5.5,80),case:"upper",weight:500,lineHeight:1,letterSpacing:-.03})]},{kind:"group",name:"Words",props:{...B,sectionPaddingBottom:4,maxWidth:360,maxWidthPhone:GI},parts:e.description?[$I(e.description,14,void 0,{lineHeight:1.5})]:[]}]}}function m_(e,o){return{kind:"group",name:"Header",props:{...B,gap:16,gapPhone:16},parts:[_f(e.num,13),Rf(e.title,o)]}}var b_=[["para",{textStyle:"body-5",...G("label",13),case:"upper",weight:400,lineHeight:1,letterSpacing:.22}],["sm",{...G("headingMedium",40,28),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["md",{...G("headingMedium",48,32),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["lg",{...G("headingMedium",56,36),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["xl",{...G("headingMedium",64,40),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}]],BY=e=>b_.some(([o])=>o===e.titleSize)?e.titleSize:"lg";function DY(e){return{kind:"group",name:"Header",props:{...B,direction:"row",align:"center",justify:"between",gap:16,share:"content",stickTop:!0,sectionBorder:WI,sectionPaddingTop:12,sectionPaddingBottom:12},parts:[{kind:"group",name:"Title",props:{...B,direction:"row",align:"end",gap:24,share:"content"},parts:[_f(e.num,13,{color:"labels",letterSpacing:.22,lineHeight:1}),...b_.map(([o,t])=>({...Rf(e.title,t),when:r=>BY(r)===o}))]},{kind:"group",name:"Words",props:{...B,direction:"row",align:"center",justify:"end",gap:20,share:"content"},parts:[...e.description?[$I(e.description,13,340,{lineHeight:1.4})]:[],...e.link?[HI(13)]:[]]}]}}var Of=new Map;function wt(e){let o=Of.get(e);if(o)return o;let t=RY(e),r=zI(e),a=r==="editorial"?g_(t):r==="simple"?m_(t,{...G("headingMedium",44,32),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}):r==="essay"?m_(t,{...G("headingMedium",38,28,"headingSmall"),case:"upper",lineHeight:1,letterSpacing:-.02}):r==="shelf"?DY(t):LY(e,t);return Of.set(e,a),a}var Af={Series:"transparent",StatsParagraph:"transparent",TimelineTrack:Jo,Stats:void 0};var yr=(e,o,t,r)=>({sectionBorder:{top:e,right:o,bottom:t,left:r}}),E_=e=>o=>Pf($(o.columns)??$(e.columns)),O_=e=>({kind:"group",name:"Grid",props:{...B,gap:0,...yr(1,0,0,1)},parts:[e]}),__={...B,direction:"row",gap:0,share:"equal"},R_="its head sits in a Box of its own above it (own-box): the row draws the head inline",A_=e=>kO(e.headPlacement)==="own-box",F_="inline is the head the row draws; an own-box node is skipped (`skip`)",HY=e=>({kind:"group",name:"Heading",props:e,parts:[Ie("eyebrow"),{kind:"text",key:"title",role:"heading",props:K,style:{textStyle:"heading-3",case:"upper"},was:{size:44}}]}),y_={top:72,bottom:72,topPhone:72,bottomPhone:72},zY={...Ou,...yr(0,1,1,0)},WY={name:"Cards",boxProps:(e,o)=>({...ce,direction:"column",gap:36,gapPhone:28,...Co("surface")(e,o),...ye(e,y_)}),box:[...me,...Ae(y_)],skip:e=>A_(e)?R_:typeof e.dataSource=="string"&&e.dataSource?"its cards come from a source: they are drawn from the card template on Cards":e.template!==void 0?"its cards are drawn from its own card template (an emptied one draws none): the shape the other rows land on":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:[wt("Cards"),O_({kind:"list",key:"items",name:"Card",perRow:E_(f_.defaultProps),rowName:"Row",rowProps:__,props:(e,o)=>({...zY,...Co("background")(e,o)}),parts:[{kind:"text",key:"title",props:K,style:_u},{kind:"text",key:"body",props:fe,style:Ru}]})],drop:{...he,...Ce,columns:"the rows of N: one Row Box per `columns` cards, which the Box draws as N equal blocks",cardStyle:"the standard card is what the row draws; a Label only node is skipped (0 live nodes)",dataSource:"an empty source is typed cards, what the row draws; a sourced node is skipped (0 live nodes)",dataSourceOptions:"read only with a source; a sourced node is skipped (0 live nodes)",template:"an empty card template is typed cards, what the row draws; a node with a template is skipped",highlightedCard:"read only with a card template; a node with a template is skipped",highlightBadge:"read only with a card template; a node with a template is skipped",headPlacement:F_,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)"}},S_={top:76,bottom:76,topPhone:76,bottomPhone:76},GY={...B,direction:"row",align:"center",gap:16,sectionPaddingTop:32,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,...yr(0,1,1,0)},w_={textStyle:"body-1",color:"text"},C_=(e,o)=>typeof o?.href=="string"&&o.href.trim()!=="",$Y={name:"Key Features",boxProps:e=>({...ce,direction:"column",gap:44,...yr(1,0,1,0),...ye(e,S_)}),box:[...me,...Ae(S_)],parts:[HY({...B,direction:"row",align:"end",gap:20,wrap:!0,share:"content"}),O_({kind:"list",key:"items",name:"Feature",perRow:E_(u_.defaultProps),rowName:"Row",rowProps:__,props:GY,parts:[{kind:"button",key:"label",href:"href",when:C_,variant:"ghost",props:{...Ze,...$t,icon:"none"},style:w_},{kind:"text",key:"label",when:(e,o)=>!C_(e,o),props:K,style:w_,was:{size:17}}]})],drop:{...he,...Ce,columns:"the rows of N: one Row Box per `columns` cells, which the Box draws as N equal blocks",eyebrowLook:"needs the eyebrow's Filled look on a Text block: Filled is Key Features' own default (lib/sections/section-eyebrow-look), so 20 of 21 published nodes draw it with nothing stored; the row draws the Plain start look (JJ's export, 2026-10-24)"}},v_={top:120,bottom:120,topPhone:80,bottomPhone:80},L_=e=>{let o=Vi(typeof e.background=="string"?e.background:void 0,Af.Series);return o&&o!=="transparent"?o:void 0},UI=e=>L_(e)===Jo,UY=(e,o)=>{let t=L_(e);return!t||t===Jo?{}:t==="var(--site-surface)"?Co("surface")(e,o):MY(t.trim())?{fillColor:t.trim()}:{}},jY={...B,justify:"between",gap:16,gapPhone:16,sectionHeightMode:"fixed",sectionHeightValue:340,sectionHeightUnit:"px",sectionPaddingTop:36,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,sectionPaddingTopPhone:36,sectionPaddingRightPhone:28,sectionPaddingBottomPhone:32,sectionPaddingLeftPhone:28},k_={...B,direction:"row",justify:"between",gap:12,share:"content",phoneRow:2,[NY("share")]:"content"},T_={textStyle:"body-5",...G("label",12),letterSpacing:.22,case:"upper",lineHeight:1.5},KY=e=>ao(e.viewLabel)&&!jI(e.viewLabel).hidden,jt=e=>jI(e).text?.trim?.()??"",B_=e=>Object.fromEntries(Object.entries(e).filter(([,o])=>oe(o)!==void 0)),qY={name:"Recurring Columns",boxProps:(e,o)=>({...ce,direction:"column",gap:60,gapPhone:60,...yr(0,0,1,0),...UI(e)?ba(e,o):{},...UY(e,o),...ye(e,v_)}),box:[...me.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>UI(o)?Ir(e,o,t):e],...Ae(v_)],skip:e=>A_(e)?R_:void 0,site:(e,o)=>UI(e.props)?gr(e,o):[],parts:[wt("Series"),{kind:"core",as:"Cards",keep:[],props:{columns:4},derive:{reads:["cards"],props:e=>({items:(Array.isArray(e.cards)?e.cards:[]).map(o=>B_({num:jt(o.num),since:jt(o.since),title:jt(o.title),body:jt(o.desc),count:[jt(o.entries),jt(o.entriesLabel)].filter(Boolean).join(" ")}))})},slots:(e,o)=>({template:[{type:V,props:{...jY,...Co("background")(e,o),name:"Card"},slots:{[Ke]:[{type:V,props:{...B,name:"Words",gap:16,gapPhone:16},slots:{[Ke]:[{type:V,props:{...k_,name:"Top"},slots:{[Ke]:[jo("num",K,G("label",13),!0),jo("since",K,G("label",13),!0)]}},jo("title",{...K,tag:"h3"},{textStyle:"heading-3",...G("headingSmall",28),weight:500,case:"upper",lineHeight:1.04,letterSpacing:-.02}),jo("body",fe,{textStyle:"body-5",fontRole:"heading",...G("body",14),lineHeight:1.6})]}},{type:V,props:{...k_,name:"Footer",align:"center",gap:0,gapPhone:0,sectionPaddingTop:16,sectionPaddingTopPhone:16,...yr(1,0,0,0)},slots:{[Ke]:[jo("count",fe,T_),...KY(e)?[{type:V,props:{...B,name:"View",maxWidthPhone:266},slots:{[Ke]:[{type:"Text",props:{...K,text:jI(e.viewLabel).text,_partStyles:{text:{...xo()._partStyles.text,...T_}}}}]}}]:[]]}}]}}]})}],reads:{viewLabel:"a Text typed once in the card template: the far end of every card's footer",background:"the Box's theme (the band preset) or its Fill"},drop:{...he,...Ce,headPlacement:F_}},P_={top:60,bottom:60,topPhone:40,bottomPhone:40},VY={...B,gap:8,gapPhone:8,...Fo(24),...yr(1,1,1,1)},YY={name:"Document Detail Cards",boxProps:e=>({...ce,direction:"column",gap:40,gapPhone:16,...yr(0,0,1,0),...ye(e,P_)}),box:[...me,...Ae(P_)],parts:[{kind:"core",as:"Cards",keep:[],props:{columns:3},derive:{reads:["cards"],props:e=>({items:(Array.isArray(e.cards)?e.cards:[]).map(o=>B_({label:jt(o.label),value:jt(o.value),body:jt(o.desc)}))})},slots:(e,o)=>({template:[{type:V,props:{...VY,...Co("surface")(e,o),name:"Card"},slots:{[Ke]:[jo("label",K,{...G("label",12),lineHeight:1.5},!0),{type:V,props:{...B,name:"Words",gap:14,gapPhone:14},slots:{[Ke]:[jo("value",K,{textStyle:"heading-3",...G("headingSmall",20),weight:500,letterSpacing:-.015,lineHeight:1.5}),jo("body",fe,{textStyle:"body-5",fontRole:"accent",...G("body",14),italic:!0,lineHeight:1.5})]}}]}}]})}],drop:{...he,...Ce}},D_={Cards:WY,KeyFeatures:$Y,Series:qY,DocMetaCards:YY};import{phoneKey as N_}from"efficient-easel/draw";var KI=e=>typeof e=="string"?e.trim():"";function M_(e){let o=`${KI(e.prefix)}${KI(e.value)}`,t=KI(e.suffix);return e.emphasizeAll===!0?o?`==_${o}_==`:"":`${o}${t?`==_${t}_==`:""}`}var qI={kind:"block",type:"Text",props:{...An,_partStyles:{text:{textStyle:"heading-2",...Wo("headingMedium",56,7,96),weight:500,case:"none",lineHeight:.9,letterSpacing:-.04}}},box:[["value","text",(e,o)=>M_(o)]],when:(e,o)=>o!==void 0&&typeof o.value=="string"&&M_(o)!==""},H_=e=>ao(e?.supSuffix),YI=e=>Vi(e.background,Af.StatsParagraph),Bl=e=>YI(e)===Jo,VI=e=>({...e,sectionAccent:e.sectionAccent??0}),XY=(e,o)=>Bl(e)?Co("background")(e,o):{},ZY={name:"Stats with Text",skip:e=>YI(e)&&YI(e)!=="transparent"&&!Bl(e)?"it paints a colour of its own, not the section band":void 0,boxProps:(e,o)=>({...ce,direction:"column",gap:60,gapPhone:60,sectionBorder:{bottom:1},...wo(e,"StatsParagraph"),...Bl(e)?ba(VI(e),o):{}}),box:[...me.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>Bl(o)?Ir(e,VI(o),t):e],...xr("StatsParagraph")],site:(e,o)=>Bl(e.props)?gr({props:VI(e.props)},o):[],parts:[wt("StatsParagraph"),{kind:"group",name:"Stats",props:{...B,gap:0},parts:[{kind:"list",key:"stats",name:"Stat",perRow:()=>4,rowName:"Stats row",rowProps:{...B,direction:"row",gap:0,share:"equal",phoneRow:2,[N_("share")]:"content"},props:(e,o)=>({...B,justify:"between",gap:12,gapPhone:12,sectionHeightMode:"fixed",sectionHeightValue:242,sectionHeightUnit:"px",widthFitPhone:"fixed",widthPhone:800,sectionPaddingTop:48,sectionPaddingBottom:48,sectionPaddingLeft:32,sectionPaddingRight:32,sectionBorder:{top:1,right:1,bottom:1,left:1},...XY(e,o)}),parts:[{...qI,when:(e,o)=>!H_(o)&&qI.when(e,o)},{kind:"group",name:"Figure",props:{...B,direction:"row",align:"start",gap:32,gapPhone:32,share:"content",phoneRow:2,[N_("share")]:"content"},when:(e,o)=>H_(o),parts:[qI,{kind:"text",key:"supSuffix",props:K,style:{textStyle:"body-5",...G("label",13),weight:500,color:"accent",letterSpacing:.18,lineHeight:1,padding:12}}]},{kind:"group",name:"Words",props:{...B,gap:4,gapPhone:4},parts:[{kind:"text",key:"label",props:K,style:{textStyle:"body-1",fontRole:"heading",...G("body",16),lineHeight:1.5,letterSpacing:-.01}},Ie("sub",{color:"labels",...G("label",12),lineHeight:1.5,letterSpacing:.24})]}]}]}],drop:{...he,...Ce,background:"the band is the Box's theme: the site's band preset (`sectionAccent`), or a declared band-preset write; none paints nothing, and any other colour is skipped",headPlacement:"needs a row per head placement: an own-box Stats with Text draws no head (its words sit in a Section Header above it), the row always draws the head"}},JY=new Set(["value","label",Er]),z_={top:48,bottom:48,topPhone:48,bottomPhone:48},QY={name:"Stats",skip:e=>ao(e.dataSource)?"its figures come from a source":Array.isArray(e.items)&&e.items.some(o=>ao(o?.[Er]))?"a figure names a count, and each figure Text here is typed by hand until it is linked":Array.isArray(e.items)&&e.items.some(o=>Object.keys(o??{}).some(t=>!JY.has(t)))?"a figure has a key no part here reads":Object.keys(e._partStyles??{}).some(o=>o!=="heading")?"a figure or a name has a style of its own, kept by kind, which no part here reads":void 0,boxProps:e=>({...ce,direction:"column",gap:24,gapPhone:24,...ye(e,z_)}),box:[...me,...Ae(z_)],parts:[Ie("heading",{color:"labels",...G("label",12),letterSpacing:.2}),{kind:"group",name:"Stats",props:{...B,gap:32,gapPhone:32},parts:[{kind:"list",key:"items",name:"Stat",perRow:e=>$(e.columns)??4,rowName:"Stats row",rowProps:{...B,direction:"row",gap:32,gapPhone:32,share:"equal",phoneRow:2},props:{...B,gap:8,gapPhone:8,sectionBorder:{top:1},sectionPaddingTop:20},parts:[{kind:"text",key:"value",props:An,style:{textStyle:"heading-2",...G("headingMedium",48,36),weight:500,case:"none",lineHeight:1,letterSpacing:-.03}},Ie("label",{color:"labels",...G("label",12),letterSpacing:.2})]}]}],drop:{...he,...Ce,columns:"the rows of N: one row Box per `columns` figures, which the Box draws",dataSource:"an empty source is typed figures, what the row draws; a sourced node is skipped (0 Hartes nodes)",dataSourceOptions:"read only with a source; a sourced node is skipped (0 Hartes nodes)",contained:"the Box draws the site frame now; each figure fills the Box's column",background:"needs a Box fill: a Box paints only its theme's page colour. 0 Hartes nodes store it (read-only, 2026-11-02)"}},W_={StatsParagraph:ZY,Stats:QY};var $_={contained:!1},U_=(e,o)=>({logos:[{kind:"list",key:e,name:"Logo",flat:!0,parts:[{kind:"block",type:"LogoBlock",box:["src",[o,"alt"]],when:(t,r)=>ao(r?.src)||ao(r?.[o])}]}]}),XI=e=>{let o=$(e.bandPadding)??40;return{top:o,bottom:o,topPhone:o,bottomPhone:o}},eX={...Ie("heading",{color:"labels",letterSpacing:.2}),props:{...K,align:"center"}},oX={name:"Logos",boxProps:e=>({...ce,direction:"column",gap:32,...ye(e,XI(e))}),box:[...me,...Ae(XI),["bandPadding","sectionPaddingTop",(e,o)=>ye(o,XI(o)).sectionPaddingTop]],parts:[eX,{kind:"core",keep:["columns","logoHeight","grayscale"],rename:{logosPerRow:"columns"},props:$_,slots:U_("items","alt")}],drop:{...he,...Ce,contained:"the Box draws the site frame now; the Logos block inside it fills the Box's column (`contained: false`)",headPlacement:"a Logos band has no split head (not in SPLITTABLE_SECTIONS): no stored node can hold one, and the converted block stores own-box"}},G_={top:24,bottom:24,topPhone:24,bottomPhone:24},tX={name:"Payment Methods",boxProps:e=>({...ce,direction:"column",...ye(e,G_)}),box:[...me,...Ae(G_)],skip:e=>ao(e.dataSource)?"its payment methods come from a data source (a venue's Setup): a sourced list needs the card template (plan \xA73.2), not built yet":void 0,parts:[{kind:"group",name:"Methods",props:{...B,align:"center",gap:20,sectionBorder:{top:1,bottom:1},sectionPaddingTop:32,sectionPaddingBottom:32},parts:[{...Ie("heading",{color:"labels"}),props:{...K,align:"center"}},{kind:"core",keep:[],as:"Logos",props:{...$_,look:"cards",grayscale:!1},slots:U_("badges","label")},{kind:"group",name:"Reassurance",props:{...B,direction:"row",wrap:!0,justify:"center",gap:24},parts:[{kind:"list",key:"assurances",name:"Line",flat:!0,parts:[{kind:"text",key:"text",props:{...K,align:"center"},style:{size:13,color:"labels"}}]}]}]}],drop:{...he,...Ce,contained:"the Box draws the site frame now; the Logos block inside it fills the Box's column (`contained: false`)",dataSource:"empty: no source, so the authored badges above are the list (a node that names a source is skipped, see `skip`)"}},j_={Logos:oX,PaymentBadges:tX};import{mixHex as rX}from"efficient-shell/format";var K_=e=>e.size==="display",aX=(e,o)=>{let t=Sf(e,o),r=e.tone!=="plain"&&t?.text&&t.background?rX(t.text,t.background,.3):null;return r?{color:r}:{}},nX=(e,o)=>e.tone!=="plain"&&Ko(e.sectionAccent)===null?Co("background")(e,o):{},q_=(e,o)=>({kind:"list",key:"items",name:"Item",flat:!0,when:o,parts:[{kind:"text",key:"text",props:fe,style:e,styleFrom:aX}]}),sX={name:"Scrolling Bar",boxProps:(e,o)=>({...ce,...Ia,...xf,...Ql[$n(e.separator)]===""?R1:{},...ye(e,gl),...nX(e,o)}),box:[["scrollDirection","scrollDirection",e=>SP(e)],["speed","loopDuration",(e,o)=>o.loopDuration!=null?o.loopDuration:e],["loopDuration","loopDuration",(e,o)=>e??o.speed],["loopDelay","loopDelay",e=>e],["separator","separator",e=>$n(e)],["borders","sectionBorder",e=>e===!1?void 0:{top:1,bottom:1}],...me,["tone","sectionAccent",(e,o)=>Ko(o.sectionAccent)??ar],...Ae(gl)],parts:[q_(If,e=>!K_(e)),q_(A1,K_)],drop:{...he,...Ce,join:"the band sitting inside its neighbour: absent on all 18 live Tickers (JJ 2026-10-27), and not the separator",size:"each item's Text style: Small \u2192 Body 5, Display \u2192 Heading 3"}},V_=e=>e?.tone==="muted",lX={name:"Spec Strip",boxProps:e=>({...ce,...Ia,...gf,...e.fill==="none"?{sectionBorder:{top:1}}:{},...ye(e,bl)}),box:[...me,...Ae(bl)],parts:[{kind:"list",key:"cells",name:"Cell",flat:!0,parts:[{kind:"text",key:"text",props:K,style:yl,when:(e,o)=>!V_(o)},{kind:"text",key:"text",props:fe,style:yl,when:(e,o)=>V_(o)}]}],drop:{...he,...Ce,fill:"None \u2192 no fill and a line on top. Dark band \u2192 the Box follows its theme: the old fixed `plate-band` colour has no home (no site write adds a theme preset since 8622589f); the merchant picks a dark theme on the Box"}},Y_={Ticker:sX,SpecStrip:lX};var iX="jetbrains-mono",Z_="space-grotesk",Kt=(e,o,t={})=>({textStyle:"body-5",font:iX,size:e,sizePhone:e,letterSpacing:o,lineHeight:1.5,weight:400,...t}),Lf=(e,o,t,r)=>({font:Z_,size:e,sizePhone:o,case:"upper",weight:500,letterSpacing:t,lineHeight:r}),Dl=(e,o,t,r={})=>({textStyle:"body-1",font:Z_,size:e,sizePhone:o,weight:400,case:"none",lineHeight:t,...r}),vo=(e,o,t={})=>({kind:"text",key:e,props:K,style:o,...t}),X_=(e,o)=>o?.future===!0,Ff=e=>n_(typeof e?.body=="string"?e.body:""),cX={name:"Milestone Timeline",boxProps:(e,o)=>{let t=ga(e,o);return{...ce,direction:"column",gap:60,sectionBorder:{bottom:1},...wo(e,"TimelineTrack"),...t>=0?{sectionAccent:t}:{}}},box:[...me.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",Ir],...xr("TimelineTrack")],parts:[{kind:"group",name:"Heading",props:{...B,direction:"row",align:"end",justify:"between",gap:40,share:"content",sectionPaddingBottom:32,sectionBorder:{bottom:1}},parts:[{kind:"group",name:"Title",props:{...B,direction:"row",align:"end",gap:40,share:"content"},parts:[vo("eyebrow",Kt(13,.3,{case:"upper",color:"accent",padding:8}),{role:"eyebrow"}),vo("title",{textStyle:"heading-2",...Lf(79,40,-.03,1)},{role:"heading"})]},vo("intro",Dl(14,14,1.5),{props:{...fe,align:"right",maxWidth:360}})]},{kind:"group",name:"Years",props:{...B,direction:"row",share:"equal",gap:0,line:!0},parts:[{kind:"list",key:"entries",name:"Year",props:{...B,...hf},item:e=>({props:e.future===!0?{upcoming:!0}:{}}),parts:[{kind:"group",name:Il.name,props:{...B,...Il},parts:[vo("date",Kt(13,.22,{color:"accent"}),{when:(e,o)=>!X_(e,o)}),vo("date",Kt(13,.22,{color:"labels"}),{when:X_}),vo("title",{textStyle:"heading-3",...Lf(20,20,-.02,1.1)},{role:"heading"})]},vo("blurb",Dl(13,13,1.55),{props:fe})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...Ze,align:"right",...vl(e,o)}),style:Kt(13,.3,{case:"upper"})}],site:gr,drop:{...he,...Ce,background:"the band is the Box's theme: the site's band preset (`sectionAccent`), or a declared band-preset write (`lib/theme` `bandPresetIndex`)",headPlacement:"needs a row per head placement: an own-box Milestone Timeline draws no head (its words sit in a Section Header above it), the row always draws the head"}},dX={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=>({...ce,direction:"row",share:"twoThree",gap:80,align:"start",...wo(e,"Timeline")}),box:[...me,...xr("Timeline")],parts:[{kind:"group",name:"Heading",props:{...B,gap:24},parts:[vo("eyebrow",Kt(12,.3,{case:"upper",color:"accent"}),{role:"eyebrow"}),vo("title",{textStyle:"heading-2",...Lf(72,40,-.03,.94)},{role:"heading"}),vo("intro",Dl(14,14,1.6),{props:{...fe,maxWidth:360}}),{kind:"group",name:"Picture",keepEmpty:!0,box:[["imageSrc","bgImage"]],props:{...B,sectionBorder:{top:1,right:1,bottom:1,left:1},darken:75,darkenStyle:"bottom",placement:"bottom-center",sectionHeightMode:"fixed",sectionHeightValue:667,sectionHeightUnit:"px",sectionHeightModePhone:"fixed",sectionHeightValuePhone:419,sectionHeightUnitPhone:"px",...Fo(12,16)},when:e=>typeof e.imageSrc=="string"&&e.imageSrc.trim()!=="",parts:[{kind:"group",name:"Caption",props:{...B,direction:"row",justify:"between",align:"center",gap:12,share:"content",phoneRow:2},parts:[vo("imageCaption",Kt(11,.24,{case:"upper",color:"text"})),vo("imageMeta",Kt(11,.24,{case:"upper",color:"accent"}),{props:{...K,align:"right"}})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...Ze,...vl(e,o)}),style:Kt(13,.3,{case:"upper"})}]},{kind:"group",name:"Chapters",props:{...B,gap:48,line:!1},parts:[{kind:"list",key:"entries",name:"Chapter",props:{...B,direction:"row",gap:24,share:"biggerRight",align:"start"},parts:[vo("date",Kt(13,.24,{color:"accent"})),{kind:"group",name:"Words",props:{...B,gap:14},parts:[vo("title",{textStyle:"heading-3",...Lf(24,20,-.02,1.5)},{role:"heading"}),{kind:"block",type:"Text",props:{...K,_partStyles:{text:Dl(17,16,1.6)}},box:[["body","text",(e,o)=>Ff(o)[0]??""]],when:(e,o)=>Ff(o).length>0},{kind:"block",type:"Text",props:{...fe,_partStyles:{text:Dl(17,16,1.6,{paragraphSpacing:14})}},box:[["body","text",(e,o)=>Ff(o).slice(1).join(`
44
+
45
+ `)]],when:(e,o)=>Ff(o).length>1}]}]}]}],drop:{...he,...Ce,layout:"Split is the only display converted (see skip); the Box's own arrangement replaces it"}},J_={TimelineTrack:cX,Timeline:dX};import{tabletKey as hX}from"efficient-easel/draw";import{slugify as G_e}from"efficient-shell/format";import{rootIsDark as fX}from"efficient-shell/format";function H_e(e="auto"){return e==="light"?!0:e==="dark"?!1:!fX({whenUnset:!0})}function Q_(e,o){return Number.isFinite(e)&&Number.isFinite(o)&&!(e===0&&o===0)}function ZI(e){let o=Number.parseFloat(e??"");return Number.isFinite(o)?o:0}var uX=["tall","square","wide"],pX="tall";function eR(e){return uX.includes(String(e??""))?String(e):pX}var U_e={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"},j_e=[{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
46
+ 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
47
+ Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""}],mX=/^https?:\/\//i;function K_e(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:ZI(e.lat),lng:ZI(e.lng),mapsUrl:mX.test(o)?o:""}}function JI(e){let o=String(e??"").split(" \xB7 ");return{state:(o[0]??"").trim(),country:(o[1]??"").trim()}}var q_e="other",V_e={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 oR(e){let o=String(e??"").replace(/[^+\d]/g,"");return o?`tel:${o}`:void 0}var Go=e=>typeof e=="string"?e:e==null?"":String(e),eg=e=>Array.isArray(e.locations)?e.locations.map(o=>o??{}):[],Ln=e=>Go(e.group),dR=e=>`loc-${e}`,fR=e=>Go(e.state).trim()||JI(Go(e.region)).state,uR=e=>Go(e.country).trim()||JI(Go(e.region)).country,tR=e=>[fR(e),uR(e)].filter(Boolean).join(" \xB7 "),xX=e=>eg(e).some(o=>Go(o.photo).trim()!==""),IX=e=>eg(e).some(o=>Q_(Number(o.lat),Number(o.lng))),gX=(e,o)=>eg(e).filter(t=>Ln(t)===Ln(o)).length,bX=(e,o)=>gX(e,o)===1?"wide":eR(e.imageShape),QI={top:100,bottom:100,topPhone:60,bottomPhone:60},rR=48,ft=(e,o={})=>({textStyle:"body-5",...G("label",e),case:"upper",...o}),og={top:1,right:1,bottom:1,left:1},tg={...B,direction:"row",share:"equal",gap:0},yX=e=>o=>o>sl(o)?{...B,gap:0}:{...tg,...o>1?{phoneRow:e}:{}},SX={kind:"group",name:"Gallery",props:{...B,gap:20,_hidden:!0},when:xX,parts:[{kind:"group",name:"Gallery head",props:{...B,direction:"row",justify:"between",align:"end",gap:24,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:16},parts:[Ie("galleryKicker",ft(12,{color:"accent",letterSpacing:.3})),{kind:"text",key:"galleryHint",props:{...fe,align:"right",alignPhone:"left"},style:ft(11,{letterSpacing:.22,alignPhone:"left"})}]},{kind:"group",name:"Groups",props:{...B,gap:24},parts:[{kind:"list",key:"locations",name:"City picture",props:{...B,darken:85,darkenStyle:"bottom",placement:"bottom-left",sectionBorder:og,...Fo(12,12)},item:(e,o,t)=>({props:{...Go(e.photo).trim()?{bgImage:Go(e.photo),hover:"mono"}:{},link:`#${dR(o)}`,boxShape:bX(t,e)}}),parts:[{kind:"text",key:"name",props:K,style:ft(11,{letterSpacing:.22,color:"text"})}],groups:{of:Ln,name:"Group",props:{...B,gap:10},head:e=>({label:Ln(e[0]??{})}),parts:[Ie("label",ft(11,{color:"accent",letterSpacing:.3}))],itemsName:"Cities",itemsProps:yX(2),perRow:sl,rowName:"Row",rowProps:{...tg,phoneRow:2}}}]}]},wX={kind:"group",name:"Words",props:{...B,gap:12,gapPhone:12,...Fo(28,28),sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},parts:[{kind:"group",name:"Name row",props:{...B,direction:"row",justify:"between",align:"start",gap:14,share:"content",phoneRow:2,sharePhone:"content",wrapPhone:"wrap",sectionPaddingBottom:6,sectionPaddingBottomPhone:6},parts:[{kind:"group",name:"Name",props:{...B,gap:6,gapPhone:6},parts:[{kind:"text",key:"name",role:"heading",props:K,style:{textStyle:"heading-3",...G("headingSmall",30),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}},{kind:"block",type:"Text",props:{...K,_partStyles:{text:ft(12,{color:"accent",letterSpacing:.24,lineHeight:1.5})}},box:["region","state","country"].map(e=>[e,"text",(o,t)=>tR(t)]),when:(e,o)=>tR(o??{})!==""}]},{kind:"group",name:"Time zone",props:{...B,sectionBorder:og,...Fo(6,10)},parts:[{kind:"text",key:"timezone",props:{...fe,textFit:"line"},style:ft(12,{letterSpacing:.22,lineHeight:1.5})}]}]},{kind:"text",key:"address",props:fe,style:{textStyle:"body-5",fontRole:"heading",...G("body",14),lineHeight:1.5}},{kind:"block",type:"ButtonBlock",props:{...Ze,...$t,variant:"ghost",arrow:!1,_partStyles:{label:ft(13,{letterSpacing:.18,color:"text",lineHeight:24/13})}},box:[["phone","label"],["phone","href",e=>oR(Go(e))??"#"]],when:(e,o)=>Go(o?.phone).trim()!==""},{kind:"text",key:"hours",props:fe,style:ft(12,{letterSpacing:.18,lineHeight:1.7})}]},CX={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)=>fR(t)]),...["region","country"].map(e=>[e,"country",(o,t)=>uR(t)])]},vX={kind:"group",name:"Map",props:{...B,sectionBorder:{top:1,right:0,bottom:0,left:0}},parts:[CX]},kX={kind:"list",key:"locations",name:"City",props:(e,o)=>({...B,gap:0,justify:"between",sectionBorder:og,jumpHighlight:!0,sectionAccent:ga(e,o)>=0?Cl(e.sectionAccent,o):-1}),item:(e,o)=>({props:{anchor:dR(o)}}),parts:[wX,vX],groups:{of:Ln,name:"Group",props:{...B,gap:20},head:e=>{let o=e[0]??{};return{key:Ln(o),groupName:Go(o.groupName),count:`${e.length} location${e.length===1?"":"s"}`}},parts:[{kind:"group",name:"Group head",props:{...B,direction:"row",justify:"between",align:"end",gap:16,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:16},when:(e,o)=>Go(o?.key).trim()!=="",parts:[Ie("key",ft(13,{color:"accent",letterSpacing:.3})),{kind:"text",key:"groupName",role:"heading",props:K,style:{textStyle:"heading-3",...G("headingSmall",24),case:"upper",weight:500,letterSpacing:-.01}},{kind:"text",key:"count",props:fe,style:ft(12,{letterSpacing:.22})}]}],itemsName:"Cities",itemsProps:e=>({...tg,columns:sl(e),[hX("columns")]:1})}},aR=ft(10,{letterSpacing:.25}),TX={kind:"block",type:yt,props:{...B,name:"Credit",direction:"row",justify:"end",align:"center",gap:6,share:"content",wrap:!0},when:IX,slot:St,keepEmpty:!0,parts:[{kind:"block",type:"Text",props:{...fe,text:"Location coordinates \xA9",_partStyles:{text:aR}}},{kind:"block",type:"ButtonBlock",props:{...Ze,...$t,variant:"ghost",arrow:!1,label:"OpenStreetMap contributors",href:"https://www.openstreetmap.org/copyright",_partStyles:{label:{...aR,color:"labels"}}}}]},nR=(e,o)=>Object.fromEntries(o.filter(t=>e[t]!==void 0).map(t=>[t,e[t]])),sR=["sectionPaddingTop","sectionPaddingTopTablet","sectionPaddingTopPhone"],lR=["sectionPaddingBottom","sectionPaddingBottomTablet","sectionPaddingBottomPhone"],iR=e=>e.map(o=>[o,o,(t,r)=>ye(r,QI)[o]]),cR=["sectionAccent","sectionAccent",Ir],PX=["gridSpan","_hidden"],EX={name:"City pictures",skip:e=>bo(e)?`fed by the data source "${bo(e)}": its cities are read as the page is served, not stored on the node`:void 0,boxProps:(e,o)=>({...ce,direction:"column",gap:40,anchor:"studios",...nR(ye(e,QI),sR),sectionPaddingBottom:rR,sectionPaddingBottomPhone:rR,...ba(e,o)}),box:[...me.filter(e=>e!=="sectionAccent"&&e!=="anchor"),cR,["anchor","anchor",e=>es(e).trim()?e:"studios"],...iR(sR)],parts:[x_("sectionNumber","heading","tagline"),SX],also:[{name:"City maps",boxProps:(e,o)=>({...ce,direction:"column",gap:40,sectionBorder:{bottom:1},sectionPaddingTop:0,sectionPaddingTopPhone:0,...nR(ye(e,QI),lR),...ba(e,o)}),box:[...PX,cR,...iR(lR)],parts:[kX,TX]}],reads:{mapTheme:"City maps Box: each Map block's Map theme",imageShape:"City pictures Box: each picture Box's Box shape"},site:gr,drop:{...he,...Ce,apiKey:"a stored Google Maps key from before the map needed none: the website's one map (components/SiteMap) takes no key, and a key is a credential, never page content",mapId:"a Google Maps style id from the same retired map: nothing in src/ reads it",gallery:"the retired separate tile list: the wall is derived from the cities (`components/ContactLocations`), nothing in src/ reads it",dataSource:"always empty here: a node fed by a source is skipped (see skip)"}},pR={ContactLocations:EX};var OX=["Collections","Events","FAQ","Footprint","GalleryB","LongRead","ProcessSteps","ProductGrid","RelatedProducts"];var Sr=(e,o)=>()=>({top:e,topPhone:o}),mR=e=>o=>{let t=wo(o,e).sectionPaddingTop;return{top:t,topPhone:t}},_X={Collections:Sr(120,70),Events:Sr(120,70),FAQ:Sr(120,70),GalleryB:Sr(120,70),FitmentTable:Sr(120,80),SpecTable:Sr(120,80),LongRead:Sr(120,80),FitmentFinder:e=>e.layout==="bar"?{top:32,topPhone:20}:{top:80,topPhone:60},RelatedProducts:Sr(0,0),Footprint:mR("Footprint"),ProcessSteps:mR("ProcessSteps"),ProductGrid:e=>({top:$(e.padTop)??120,topPhone:0})};function RX(e,o={}){let t=Io[e],r=_X[e];if(!t||!r)throw new Error(`section-to-box-rows-head: "${e}" has no head row or no head room`);let a=t.padKey,n=wt(e),s=t.headRows.filter(c=>![t.num,t.title,t.description,"linkText","linkHref"].includes(c)),l={...Object.fromEntries(s.map(c=>[c,"a head setting: the Header Box's Text parts draw it (lib/document/blocks/general/section-head-looks)"])),...o.drop};return{name:Jl[e]??e,boxProps:c=>{let d=r(c);return{...ce,direction:"column",gap:h_[zI(e)],sectionPaddingTop:d.top,sectionPaddingTopPhone:d.topPhone}},box:[...me,...a?[[a,"sectionPaddingTop",(c,d)=>r(d).top]]:[]],parts:[n,{kind:"core",keep:"rest",...a?{props:{[a]:0}}:{},...o.slots?{slots:o.slots}:{}},...o.partsAfter??[]],...Object.keys(l).length?{drop:l}:{}}}var hR=Object.fromEntries(OX.map(e=>[e,RX(e)]));import{BLOCK_WIDTH_LIMIT as AX}from"efficient-easel/draw";var Bf={textFit:"line",textFitPhone:"wrap"},vR={minWidth:AX.min},xR=(e,o,t)=>({...Ie(e,{...o,...Sl}),props:{...K,align:"right",...Bf,...t}}),kR={top:1,bottom:0},ag=(e,o,t,r)=>({kind:"group",name:e,props:{...B,sectionPaddingBottom:o,sectionPaddingBottomPhone:t},parts:[r]}),IR={widthFit:"fill",...vR},gR={top:100,bottom:60,topPhone:60,bottomPhone:40},FX={...G("label",13),letterSpacing:.22,lineHeight:1.8},bR={textStyle:"heading-1",...Wo("headingLarge",56,8,128),case:"upper",weight:500,lineHeight:.88,letterSpacing:-.04},yR=e=>e.titleLevel===2,LX=()=>({name:"Document Header",boxProps:e=>({...ce,direction:"column",gap:0,sectionBorder:{bottom:1},...ye(e,gR)}),box:[...me,...Ae(gR)],parts:[{kind:"group",name:"Header",props:{...B,direction:"row",align:"end",justify:"between",gap:40,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[ag("Eyebrow",12,0,{...Ie("eyebrow",G("label",13)),props:{...K,...Bf}}),{kind:"text",key:"title",role:"heading",props:{...K,tag:"h1",...IR},style:bR,when:e=>!yR(e)},{kind:"text",key:"title",role:"heading",props:{...K,tag:"h2",...IR},style:bR,when:yR},{kind:"group",name:"Details",props:{...B,align:"stretch",gap:0,gapPhone:0,sectionPaddingBottom:12,sectionPaddingBottomPhone:0},parts:[{kind:"list",key:"meta",name:"Detail",flat:!0,parts:[wl("label","value",FX,Bf)]}]}]},{kind:"group",name:"Deck",props:{...B,sectionBorder:kR,sectionPaddingTop:32},parts:[{kind:"text",key:"deck",props:{...fe,maxWidth:760},style:{textStyle:"body-1",fontRole:"accent",...G("body",22,19),italic:!0,lineHeight:1.5}}]}],drop:{...he,...Ce,titleLevel:"read by the title part's `when`: 2 (set by lib/document/one-h1 on a later opener) makes the Text an h2, anything else an h1"}}),SR={top:80,bottom:40,topPhone:60,bottomPhone:32},BX={...G("label",13),letterSpacing:.18,lineHeight:1.8},wR={...G("label",13),letterSpacing:.22,lineHeight:1.9},DX=()=>({name:"Issue Header",boxProps:e=>({...ce,direction:"column",gap:0,sectionBorder:{bottom:1},...ye(e,SR)}),box:[...me,...Ae(SR)],parts:[{kind:"group",name:"Top",props:{...B,direction:"row",align:"end",justify:"between",gap:60,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[ag("Eyebrow",14,14,Ie("eyebrow",G("label",14))),{kind:"group",name:"Issue",props:{...B,align:"end",gap:0,gapPhone:0,sectionPaddingBottom:14},parts:[{kind:"list",key:"issueMeta",name:"Issue line",flat:!0,parts:[wl("lead","rest",BX)]}]}]},{kind:"group",name:"Bottom",props:{...B,direction:"row",align:"start",justify:"between",gap:60,gapPhone:16,share:"content",sectionBorder:kR,sectionPaddingTop:32},parts:[{kind:"text",key:"lead",props:{...K,maxWidth:720,...vR},style:{textStyle:"body-1",fontRole:"heading3",...G("headingSmall",20),lineHeight:1.5,letterSpacing:-.005,paragraphSpacing:16}},{kind:"group",name:"In this issue",props:{...B,align:"stretch",gap:0},parts:[ag("Heading",6,6,{kind:"text",key:"issueHeading",props:{...K,align:"right",...Bf},style:{textStyle:"body-1",fontRole:"heading",...G("body",18),weight:400,letterSpacing:-.01,lineHeight:1.9,...Sl}}),{kind:"group",name:"Lines",props:{...B,align:"stretch",gap:0},parts:[{kind:"list",key:"issueList",name:"Line",flat:!0,parts:[xR("text",{color:"labels",...wR})]}]},xR("issueTotal",wR)]}]}],drop:{...he,...Ce}}),CR={top:24,bottom:24,topPhone:16,bottomPhone:16},rg={color:"labels",...G("label",13),letterSpacing:.2},TR=e=>(Array.isArray(e.items)?e.items:[]).filter(o=>o&&typeof o.label=="string"&&o.label.trim()!==""),ng=(e,o)=>o!==void 0&&TR(e).at(-1)===o,PR=(e,o)=>o!==void 0&&TR(e).includes(o),NX=(e,o)=>PR(e,o)&&!ng(e,o)&&ao(o?.href),MX=()=>({name:"Breadcrumb",skip:e=>ao(e.meta)?'a trailing note after "\xB7" needs a second mark; none live':void 0,boxProps:e=>({...ce,...Ia,gap:16,gapPhone:16,separator:"slash",sectionBorder:{bottom:1},...ye(e,CR)}),box:[...me,...Ae(CR)],parts:[{kind:"list",key:"items",name:"Crumb",flat:!0,parts:[{kind:"button",key:"label",href:"href",variant:"ghost",when:NX,props:{...Ze,...$t,icon:"none"},style:rg},{...Ie("label",rg),when:(e,o)=>PR(e,o)&&!ng(e,o)&&!ao(o?.href)},{...Ie("label",{...rg,color:"text"}),when:ng}]}],drop:{...he,...Ce,meta:"a node that stores a note is skipped (`skip`); an empty one draws nothing"}}),ER={DocMasthead:LX(),Masthead:DX(),Breadcrumb:MX()};import{jsx as wa,jsxs as lg}from"react/jsx-runtime";import{slugify as HX}from"efficient-shell/format";import{jsx as sg,jsxs as OR}from"react/jsx-runtime";var SRe="sticky top-[120px]";var _R=(e,o)=>e?{[jc]:o}:{},RR=(e,o)=>Kc(e?.[Jm(o)]?.role,Bd[o],Fa),AR=120;function FR({title:e,entries:o,stickyTop:t,sticky:r=!0,editing:a=!1,partStyles:n}){return OR("aside",{className:`${r?"sticky ":""}flex flex-col self-start max-[900px]:static`,style:r?{top:t}:void 0,children:[e&&sg("h4",{className:"mb-[18px] font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:Ho(e)}),o.map((s,l)=>OR("a",{href:`#${s.anchor}`,className:`flex items-center justify-between gap-3 border-b border-line py-2.5 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.18em] text-fg-dim transition-colors hover:text-fg${l===0?" border-t":""}`,children:[sg("span",{..._R(a,"entry"),style:RR(n,"entry"),children:Ho(s.label||"Section")}),sg("span",{..._R(a,"number"),style:RR(n,"number"),className:"text-accent",children:en(l)})]},`${l}-${s.anchor}`))]})}function zX(e,o){return HX(e)||`section-${o+1}`}var ig=e=>typeof e=="string"&&e.trim()!=="";function cg(e){return(e??[]).filter(o=>ig(o.heading)||ig(o.label)||ig(o.body))}function dg(e){let o=new Set;return e.map((t,r)=>{let a=zX(t.label||t.heading||"",r),n=a,s=2;for(;o.has(n);)n=`${a}-${s++}`;return o.add(n),n})}function fg(e){let o=[];for(let t of e.replace(/\r\n?/g,`
48
+ `).split(/\n[ \t]*\n/))t.split(`
49
+ `).map(r=>r.replace(/\s+$/,"")).filter(r=>r.trim()!=="").forEach((r,a)=>{let n=Yn(r)[0].bullet,s=o.at(-1),l=a===0||!s||s.type==="ul"!==n;if(n){let c=r.slice(2);!l&&s?.type==="ul"?s.items.push(c):o.push({type:"ul",items:[c]})}else!l&&s?.type==="p"?s.text+=`
50
+ ${r}`:o.push({type:"p",text:r})});return o}var WX=()=>[{label:i("First section"),heading:i("Your *first* section."),body:i(`Write the opening paragraph here.
51
+
52
+ - Start a line with a dash for a bullet.
53
+ - Add as many as you like.`)},{label:i("Second section"),heading:i("Your *second* section."),body:i("Leave a blank line between paragraphs to start a new one.")}],GX=AR;function MRe({tocTitle:e,sections:o,editing:t=!1,stickyTop:r=GX}){let a=cg(o);if(a.length===0&&!t)return null;let n=a.length===0&&t?WX():a,s=dg(n);return wa("section",{className:"relative z-[2] bg-bg",children:lg("div",{className:"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[240px_1fr] items-start gap-20 border-b border-line px-[var(--sf-site-gutter,40px)] py-20 max-[900px]:grid-cols-1 max-[900px]:gap-10 max-[900px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[900px]:py-[60px]",children:[wa(FR,{title:e,entries:n.map((l,c)=>({label:l.label||"Section",anchor:s[c]})),stickyTop:r}),wa("div",{className:"flex flex-col gap-16",children:n.map((l,c)=>lg("article",{id:s[c],className:"flex flex-col gap-[18px]",style:{scrollMarginTop:r},children:[lg("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:[en(c)," \xB7 ",Ho(l.label||"Section")]}),l.heading&&wa("h2",{className:"mb-2 border-b border-line pb-[18px] font-heading2 text-[length:min(var(--size-headingMedium,clamp(28px,3.5vw,44px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[1.04] tracking-[-0.025em]",children:Ho(l.heading)}),fg(l.body??"").map((d,p)=>d.type==="ul"?wa("ul",{className:"flex max-w-[680px] list-none flex-col gap-2.5 pl-0",children:d.items.map((h,u)=>wa("li",{className:"relative pl-6 font-serif text-[length:var(--size-body,17px)] leading-[1.65] text-fg-dim before:absolute before:-top-0.5 before:left-1.5 before:text-[length:var(--size-body,24px)] before:leading-none before:text-accent before:content-['\xB7']",children:Ho(h)},u))},p):wa("p",{className:"max-w-[680px] font-serif text-[length:var(--size-body,17px)] leading-[1.7] text-fg-dim",children:Ho(d.text)},p))]},s[c]))})]})})}var LR={top:80,bottom:80,topPhone:60,bottomPhone:60},BR=18,DR=18,NR=8,$X=10,ug=e=>typeof e=="string"&&e.trim()!=="",MR=e=>cg(e.sections),UX=e=>fg(typeof e.body=="string"?e.body:"").map(o=>o.type==="ul"?{kind:"ul",text:o.items.map(t=>`- ${t}`).join(`
54
+ `)}:{kind:"p",text:o.text}),pg={textStyle:"body-5",...G("label",12),case:"upper",letterSpacing:.3,color:"accent",lineHeight:1.5},HR={textStyle:"body-1",fontRole:"accent",...G("body",17)},jX=[Ie("label",pg),{...Ie("title",pg),when:(e,o)=>!ug(o?.label)},{kind:"block",type:"Text",when:(e,o)=>!ug(o?.label)&&!ug(o?.title),props:{...K,text:"Section",_partStyles:{text:pg}}},{kind:"group",name:"Heading",props:{...B,sectionPaddingBottom:NR,sectionPaddingBottomPhone:NR},parts:[{kind:"group",name:"Heading line",props:{...B,sectionBorder:{bottom:1},sectionPaddingBottom:DR,sectionPaddingBottomPhone:DR},parts:[{kind:"text",key:"heading",role:"heading",props:K,style:{textStyle:"heading-2",...Wo("headingMedium",28,3.5,44),case:"upper",weight:500,lineHeight:1.04,letterSpacing:-.025}}]}]},{kind:"list",key:"body",name:"Body",flat:!0,of:UX,parts:[{kind:"text",key:"text",props:fe,style:{...HR,lineHeight:1.7},when:(e,o)=>o?.kind==="p"},{kind:"text",key:"text",props:fe,style:{...HR,lineHeight:1.65,paragraphSpacing:$X},when:(e,o)=>o?.kind==="ul"}]}],KX={name:"Document Text",boxProps:e=>({...ce,direction:"row",gap:80,gapPhone:40,sectionBorder:{bottom:1},...ye(e,LR)}),box:["anchor","sectionAccent","_hidden",...Ae(LR)],parts:[{kind:"block",type:"Contents",props:e=>({title:e.tocTitle??"",sticky:!0,widthFit:"fixed",width:240,widthFitPhone:"fill"})},{kind:"group",name:"Sections",props:{...B,gap:64,gapPhone:64,widthFit:"fill"},parts:[{kind:"list",key:"sections",name:"Section",of:e=>MR(e),props:{...B,gap:BR,gapPhone:BR},item:(e,o,t)=>({props:{anchor:dg(MR(t))[o]??`section-${o+1}`}}),parts:jX}]}],reads:{tocTitle:"the Contents block's Heading"},drop:{...he,stickyTop:"the Contents block draws DocBody's default (120px); 0 live nodes store it"}},zR={DocBody:KX};var qX="overlay",VX=[{label:"Copy over image",value:"overlay"},{label:"Copy above image",value:"stacked"}];function WR(e){return to(VX,qX,e)}var jRe={desktop:40,mobile:45,min:20,max:80,step:5};function KRe(e,o){return`${typeof e=="number"?e:o}%`}var GR=(e,o)=>{let t=$(e),r=$(o);return{...t===void 0?{}:{size:t},...r===void 0?{}:{sizePhone:r}}},YX=e=>WR(e.layout)==="stacked",$R=e=>Math.min(Math.max($(e.overlay)??60,0),100),Df=e=>$(e)??100,XX={textStyle:"heading-1",sizeToken:{...Wo("headingLarge",48,7,96).sizeToken,pxPhone:36},weight:500,lineHeight:.95,letterSpacing:-.03},ZX=[Ie("eyebrow",G("label",14)),...[!0,!1].map(e=>({kind:"text",key:"title",role:"heading",props:K,style:{...XX,case:e?"upper":"none"},styleFrom:o=>GR(o.titleSizeDesktop,o.titleSizeMobile),when:o=>o.uppercase===!0===e})),{kind:"text",key:"body",props:{...fe,maxWidth:560},style:{textStyle:"body-1",...G("body",17,16),lineHeight:1.6,paragraphSpacing:24},styleFrom:e=>GR(e.bodySizeDesktop,e.bodySizeMobile)},{kind:"group",name:"Button",props:{...B,align:"start",sectionPaddingTop:8,sectionPaddingTopPhone:8},parts:[{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:Ze}]}],UR=e=>`${e}: a Button block has no colour of its own (it follows the site Button colour, as the old fallback did); 0 of 3 live US nodes store one (CLI read, 2026-11-03)`,JX=()=>({name:"Scroll-Over Text",skip:e=>YX(e)?"the stacked layout: its words row's height floor (`copyShare*`) and the header subtraction have no Box setting; 0 live US nodes":void 0,boxProps:e=>({...ce,direction:"column",justify:"center",align:"start",gap:24,gapPhone:24,share:"content",...kl,placement:"left",darken:$R(e),darkenStyle:"even",sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:Df(e.heightDesktop),sectionHeightModePhone:"fixed",sectionHeightUnitPhone:"%",sectionHeightValuePhone:Df(e.heightMobile)}),box:[...me.filter(e=>!String(typeof e=="string"?e:e[0]).startsWith("sectionHeight")),["imageSrc","bgImage"],["imageSrcMobile","bgImagePhone"],["overlay","darken",(e,o)=>$R(o)],["heightDesktop","sectionHeightValue",e=>Df(e)],["heightMobile","sectionHeightValuePhone",e=>Df(e)]],parts:ZX,drop:{uppercase:"not a value of its own: it picks the heading part \u2014 Case Upper when on, None (as typed) when off",layout:"not a value of its own: the overlay layout is this tree; a stacked node is skipped (`skip`)",copyShareDesktop:"the stacked layout's words-row floor, read only there; a stacked node is skipped",copyShareMobile:"the stacked layout's words-row floor, read only there; a stacked node is skipped",sticky:"the old pin never held on a live page (its theme wrapper is as tall as the section; decision 3, 2026-10-14), so the Box does not pin",titleSizeDesktop:"read by the heading part's `styleFrom`: a number is its Size, `inherit` and unset follow the token",titleSizeMobile:"read by the heading part's `styleFrom`: a number is its phone Size, `inherit` and unset follow the token",bodySizeDesktop:"read by the words part's `styleFrom`: a number is its Size, `inherit` and unset follow the token",bodySizeMobile:"read by the words part's `styleFrom`: a number is its phone Size, `inherit` and unset follow the token",buttonColor:UR("Button color"),buttonTextColor:UR("Button text color"),...he}}),qR={textStyle:"heading-2",...G("headingMedium",56,36),weight:400,lineHeight:1.05,letterSpacing:-.03},QX={textStyle:"body-1",...G("body",16),lineHeight:1.7},VR=e=>({kind:"text",key:"body",props:{...fe,maxWidth:520},style:{...QX,paragraphSpacing:e}}),Mf={top:0,bottom:0,topPhone:0,bottomPhone:0},mg=(e,o)=>typeof e.sectionHeightMode=="string"&&e.sectionHeightMode!=="auto"?{}:{sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:o,sectionHeightModePhone:"auto"},eZ=(e,o)=>{let t=mg(e,o);return Object.keys(t).length?t:{sectionHeightMode:e.sectionHeightMode,...e.sectionHeightValue===void 0?{}:{sectionHeightValue:e.sectionHeightValue},...e.sectionHeightUnit===void 0?{}:{sectionHeightUnit:e.sectionHeightUnit},sectionHeightModePhone:"auto"}},YR={boxShapePhone:"landscape"},XR="needs a black-and-white setting on a Box picture (the old photograph followed it, else the site's Photography); 0 live US nodes store it (CLI read, 2026-11-03)",oZ=(e,o)=>({[e]:o,[`${e}Phone`]:o}),tZ={textStyle:"heading-2",...G("headingMedium",40),weight:500,case:"none",lineHeight:1,letterSpacing:-.02},jR=e=>(Array.isArray(e.stats)?e.stats:[]).filter(o=>o&&(String(o.value??"").trim()!==""||String(o.label??"").trim()!=="")),rZ=()=>({name:"Brand Text",boxProps:(e,o)=>({...ce,...Co("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...ye(e,Mf),...mg(e,100)}),box:[...me,...Ae(Mf)],parts:[{kind:"group",name:"Words",props:(e,o)=>({...B,justify:"center",gap:28,gapPhone:28,sectionBorder:Tl({right:1}),sectionBorderPhone:Tl({}),...kl,sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60,sectionPaddingRight:Fn(o)}),parts:[Ie("eyebrow",G("label",14)),{kind:"text",key:"heading",role:"heading",props:K,style:{...qR,case:"none"},mark:"accentItalic"},VR(28),{kind:"group",name:"Stats",props:{...B,sectionPaddingTop:16,sectionPaddingTopPhone:16},parts:[{kind:"group",name:"Figures",props:e=>({...B,direction:"row",share:"equal",gap:24,gapPhone:24,maxWidth:520,phoneRow:Math.min(Math.max(jR(e).length,1),3),...oZ("sectionBorder",Tl({top:1})),sectionPaddingTop:28,sectionPaddingTopPhone:28}),parts:[{kind:"list",key:"stats",name:"Stat",of:jR,props:{...B,gap:4,gapPhone:4},parts:[{kind:"text",key:"value",props:An,style:tZ},Ie("label",{...G("label",13),color:"labels",letterSpacing:.2})]}]}]}]},TI("Picture","imageSrc",YR)],drop:{...he,grayscale:XR,...Ce}}),Nf=e=>{let o=e.textAlign==="center"||e.textAlign==="right"?{align:e.textAlign}:{},t=e.textAlignPhone==="left"||e.textAlignPhone==="center"||e.textAlignPhone==="right"?{alignPhone:e.textAlignPhone}:{};return{...o,...t}},aZ=e=>e.textAlign==="center"?"center":e.textAlign==="right"?"end":"stretch",nZ=e=>Math.min(Math.max($(e.overlay)??60,0),100),ZR=e=>typeof e=="string"&&e.trim()!=="",sZ={...Ze,align:"center",alignPhone:"center",buttonFillOpacity:0,buttonBorder:{width:1},buttonPaddingTop:16,buttonPaddingRight:28,buttonPaddingBottom:16,buttonPaddingLeft:28,buttonPaddingTopPhone:12,buttonPaddingRightPhone:20,buttonPaddingBottomPhone:12,buttonPaddingLeftPhone:20},KR=e=>({...TI("Picture","imageSrc",(o,t)=>({...ZR(o.imageSrc)?{darken:40,darkenStyle:"even"}:{},placement:"center",...YR,sectionBorder:Tl(e?{left:1}:{right:1}),...JR(e?"left":"right",Fn(t))}),[{kind:"button",key:"imageBtnText",href:"imageBtnHref",variant:"ghost",props:sZ,style:{textStyle:"body-5",...G("label",13,12),case:"upper",letterSpacing:.18}}]),when:o=>o.reverse===!0===e}),JR=(e,o)=>{let t=Math.max(60-o,0);return{sectionPaddingLeft:e==="left"?60:t,sectionPaddingRight:e==="right"?60:t}},lZ={kind:"group",name:"Words",props:(e,o)=>{let t=e.reverse===!0;return{...B,justify:"center",align:aZ(e),placement:e.textAlign==="center"?"center":e.textAlign==="right"?"right":"left",...eZ(e,72),gap:24,gapPhone:24,...ZR(e.textBgSrc)?{darken:nZ(e),darkenStyle:"even"}:{},...kl,sectionPaddingTop:100,sectionPaddingBottom:100,...JR(t?"right":"left",Fn(o)),sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60}},box:[["textBgSrc","bgImage"]],parts:[{...Ie("eyebrow",G("label",14)),styleFrom:Nf},{kind:"text",key:"title",role:"heading",props:K,style:qR,styleFrom:e=>({case:e.uppercase===!0?"upper":"none",...Nf(e)})},{...VR(24),styleFrom:Nf},{kind:"group",name:"Button",props:{...B,sectionPaddingTop:8,sectionPaddingTopPhone:8},parts:[{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:e=>{let o=Nf(e);return{...Ze,...o.align?{align:o.align}:{},...o.alignPhone?{alignPhone:o.alignPhone}:{}}}}]}]},iZ=()=>({name:"Image & Text Split",boxProps:(e,o)=>({...ce,...Co("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...ye(e,Mf),...mg(e,72)}),box:[...me,...Ae(Mf)],parts:[KR(!1),lZ,KR(!0)],drop:{reverse:"not a value of its own: it picks the order \u2014 the Picture Box first, or after the Words",uppercase:"not a value of its own: the heading part's Case \u2014 Upper when on, None (as typed) when off",textAlign:"read by each words part (its Align) and the Words Box (its Align); left writes nothing, as the old emitted no class",textAlignPhone:"read by each words part as its phone Align",overlay:"read by the Words Box: its Darken over the words picture (60 when unset); no picture, no wash",grayscale:XR,...he,...Ce}}),QR={IntroBleed:JX(),Manifesto:rZ(),Split:iZ()};var eA={top:72,bottom:72,topPhone:72,bottomPhone:72},cZ={name:"Editorial Text",boxProps:e=>({...ce,direction:"column",gap:28,gapPhone:28,sectionBorder:{top:1},...ye(e,eA)}),box:[["topBorder","sectionBorder",e=>e===!1?void 0:{top:1}],...me,...Ae(eA)],parts:[wt("Prose"),{kind:"text",key:"body",props:fe,style:{textStyle:"body-1",...G("body",16),lineHeight:1.7,paragraphSpacing:18}}],drop:{...he,...Ce,headPlacement:"needs a row per head placement: an own-box Prose draws no head (its words sit in a Section Header above it), the row always draws the head. 0 of 123 live nodes store it (the live export, 2026-10-24)"}},oA={buttonPaddingTop:20,buttonPaddingBottom:20,buttonPaddingLeft:28,buttonPaddingRight:28},tA=(e,o)=>o?.variant==="primary",rA=(e,o)=>({kind:"list",key:"buttons",name:"Button",flat:!0,when:e,parts:[{kind:"button",key:"label",href:"href",when:tA,variant:"primary",style:{letterSpacing:.3},props:{...Ze,...oA,...o}},{kind:"button",key:"label",href:"href",when:(t,r)=>!tA(t,r),variant:"ghost",style:{letterSpacing:.3},props:(t,r)=>({...Ze,...oA,...o,...vl(t,r)})}]}),Hf=e=>ao(e.title),dZ={name:"Call-to-Action Heading",boxProps:e=>({...ce,direction:"row",align:"center",justify:Hf(e)?"between":"end",gap:60,gapPhone:60,share:"content",sectionBorder:{bottom:1},...wo(e,"TitleWithButtons")}),box:[...me,...xr("TitleWithButtons")],parts:[{kind:"group",name:"Title",props:{...B,maxWidth:1e3,widthFitPhone:"fill"},parts:[{kind:"text",key:"title",role:"heading",props:K,style:{textStyle:"heading-1",...Wo("headingLarge",48,7,108),case:"upper",lineHeight:.94,letterSpacing:-.035}}]},{kind:"group",name:"Buttons",props:e=>({...B,gap:14,gapPhone:14,widthFitPhone:"fill",...Hf(e)?{minWidth:280,minWidthPhone:0}:{}}),parts:[rA(Hf,{widthFit:"fill",iconPosition:"end"}),rA(e=>!Hf(e),{})]}],drop:{...he,buttonsAlign:"moves the buttons only when there is no heading (4 of 128 live nodes), where the Box puts them at the end. 0 of 128 live nodes store it (the live export, 2026-10-24)",buttonsAlignPhone:"the phone's own side of `buttonsAlign`, read only with no heading; no old node stores it (it is new with the Phone view's Block alignment row), so nothing moves"}};function fZ(e){let{siteGutter:o,siteGutterPhone:t}=e.site??{},r=Fn(e),a=Math.min(20,Wc(t)??Gc(o));return{sectionPaddingLeft:r,sectionPaddingRight:r,sectionPaddingLeftPhone:a,sectionPaddingRightPhone:a}}var aA={top:40,bottom:64,topPhone:24,bottomPhone:36},uZ={name:"Section Header",boxProps:(e,o)=>({...ce,direction:"column",gap:0,...ye(e,aA),...fZ(o)}),box:[...me,...Ae(aA)],parts:[wt("SectionHeader")],drop:{...he,...Ce,headStyle:"needs a row per head look: the row draws the standard look; the editorial, simple, statement, natural and essay looks are other layouts. 0 of 69 live nodes store it (the live export, 2026-10-24)",eyebrowLook:"read only by the simple, statement, natural and essay looks, which this row does not draw. 0 of 69 live nodes store it",rowGap:"read only by the natural look, which this row does not draw. 0 of 69 live nodes store it",descriptionSize:"read only by the natural look, which this row does not draw. 0 of 69 live nodes store it",numStyle:"Solid (the default; 4 of 69 live nodes store it) IS the eyebrow Text the row draws; Outlined (0 live) needs an outlined-number text look"}},nA={...B,direction:"row",share:"bigLeft",gap:30},sA={...B,sectionPaddingLeft:30,sectionPaddingLeftPhone:0},lA=(e,o,t)=>({kind:"group",name:e,props:o,parts:[t]}),pZ={name:"Lead Text",boxProps:e=>({...ce,direction:"column",gap:40,gapPhone:40,sectionBorder:{bottom:1},...wo(e,"ParagraphsA")}),box:[...me,...xr("ParagraphsA")],parts:[{kind:"group",name:"Numbers",props:{...nA,gapPhone:24,sectionBorder:{bottom:1},sectionPaddingBottom:40,sectionPaddingBottomPhone:40},parts:[{kind:"group",name:"Eyebrow",props:{...B,sectionPaddingTop:5,sectionPaddingBottom:1,sectionPaddingTopPhone:5,sectionPaddingBottomPhone:1},parts:[Ie("eyebrow",{color:"labels",...G("label",12),letterSpacing:.24})]},lA("Stats column",B,{kind:"group",name:"Stats",props:{...sA,gap:0,gapPhone:0},parts:[{kind:"list",key:"stats",name:"Stat",flat:!0,parts:[wl("value","label",{...G("label",13),letterSpacing:.18,lineHeight:1.8})]}]})]},{kind:"group",name:"Words",props:{...nA,gapPhone:28},parts:[{kind:"group",name:"Lead",props:B,parts:[{kind:"group",name:"Measure",props:{...B,maxWidth:780},parts:[{kind:"text",key:"lead",props:K,style:{textStyle:"heading-3",...G("headingSmall",22,20),weight:400,case:"none",lineHeight:1.45,letterSpacing:-.005}}]}]},lA("Note column",{...B,justify:"end",widthFit:"fill"},{kind:"group",name:"Founders",props:{...sA,gap:8,gapPhone:8},parts:[{kind:"group",name:"Note",props:{...B,gap:6,gapPhone:6},parts:[{kind:"text",key:"foundersHeading",props:K,style:{textStyle:"body-1",fontRole:"heading",...G("body",18,16),weight:500,letterSpacing:-.01,lineHeight:1.7}},{kind:"text",key:"foundersBody",props:fe,style:{textStyle:"body-5",fontRole:"heading",...G("body",14,12),lineHeight:1.7}}]},Ie("attribution",{...G("label",12,10),letterSpacing:.24,lineHeight:1.7})]})]}],drop:{...he}},iA={top:24,bottom:24,topPhone:24,bottomPhone:24},mZ={name:"Banner",boxProps:e=>({...ce,direction:"column",gap:0,...ye(e,iA)}),box:[...me,"contained",...Ae(iA)],parts:[{kind:"group",name:"Card",keepEmpty:!0,props:{...B,gap:28,placement:"top-left",darken:60,darkenStyle:"even",sectionBorder:{width:1},...Fo(64,40,40,24)},box:[["imageSrc","bgImage"],["overlay","darken",e=>Math.min(Math.max($(e)??60,0),100)]],parts:[{kind:"group",name:"Words",props:{...B,gap:20},parts:[Ie("eyebrow"),{kind:"text",key:"title",role:"heading",props:{...K,maxWidth:680},style:{weight:500,lineHeight:1.05,letterSpacing:-.03,case:"none"}},{kind:"text",key:"body",props:{...fe,maxWidth:680},style:{textStyle:"body-1",lineHeight:1.6},was:{size:16}}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:Ze}]}],drop:{...he,...Ce}},hg={Prose:cZ,TitleWithButtons:dZ,SectionHeader:uZ,ParagraphsA:pZ,Banner:mZ};function hAe(){No(hg),No(W_),No(j_),No(D_),No(Y_),No(J_),No(pR),No(hR),No(ER),No(zR),No(QR)}import{isNodeList as hZ}from"efficient-easel/data";var SAe=Object.keys(hg);function cA(e,o,t){let r={};for(let a of Object.keys(o(e.type)))r[a]=void 0;for(let[a,n]of Object.entries(e.props))r[a]=hZ(n)?n.map(s=>cA(s,o,t)):n;return r.id=t(e.type),{type:e.type,props:r}}function xg(e,o,t=0){return(r,a)=>{let{nodes:n}=fI({type:e,props:{...r(e),id:a(e)}},o);return cA(n[t],r,a)}}function xZ(e,o){if(!_O(e,o))return null;let t=df(e);return t?xg(e,t):null}function zf(e,o=cl){return B1(e)??xZ(e,o)}import{blockTypesIn as oF}from"efficient-easel/screen/lib/document/block-types-in";import{jsx as ut,jsxs as XA}from"react/jsx-runtime";import{createContext as hJ,useContext as xJ,useState as IJ}from"react";import{jsx as Bn,jsxs as SA}from"react/jsx-runtime";import{useEffect as bg,useRef as NZ,useState as Nl}from"react";import{jsx as Ca}from"react/jsx-runtime";import{Component as yZ,createContext as SZ,lazy as _Ae,Suspense as RAe,useContext as wZ}from"react";var IZ="hrefRewrite";function gZ(){return Zt("efficient.link-href-rewrites",()=>({rewrites:new Map,count:0,missed:new Set}))}function bZ(){return typeof process<"u"&&!0}function vAe(e){let o=e?.[IZ];return typeof o=="string"?o.trim():""}function dA(e){if(!e)return null;let o=gZ(),t=o.rewrites.get(e);return!t&&!bZ()&&o.missed.add(e),t??null}var CZ={Link:rb,Image:tb},fA=SZ(CZ);function BAe({runtime:e,children:o}){return Ca(fA.Provider,{value:e,children:o})}function uA(){return wZ(fA)}function DAe({hrefRewrite:e,...o}){let{Link:t}=uA(),r=dA(e);return r?Ca(Ig,{name:r.name,href:o.href,fallback:Ca(t,{...o}),children:Ca(vZ,{Link:t,rewrite:r.rewrite,...o})},r.key):Ca(t,{...o})}function vZ({Link:e,rewrite:o,...t}){let r=oe(o(t.href)),a=r&&fy(r)?r:t.href;return Ca(e,{...t,href:a})}var Ig=class extends yZ{state={failed:!1,href:this.props.href};static getDerivedStateFromProps(o,t){return o.href===t.href?null:{failed:!1,href:o.href}}static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(o){console.error(`The link href rewrite ${this.props.name} failed; the link goes where it was typed.`,o)}render(){return this.state.failed?this.props.fallback:this.props.children}};function pA(e){let{Image:o}=uA();return Ca(o,{...e})}import{jsx as mA,Fragment as kZ,jsxs as TZ}from"react/jsx-runtime";import{useEffect as PZ,useRef as hA,useState as EZ}from"react";var OZ="#t=0.001",_Z=2;function RZ(e,o){if(e.readyState<_Z||!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 xA({src:e,objectPosition:o="50% 50%",onError:t}){let r=hA(null),a=hA(null),[n,s]=EZ(!1);return PZ(()=>{let l=r.current,c=a.current;if(n||!l||!c)return;let d=()=>{RZ(l,c)&&s(!0)};return d(),l.addEventListener("loadeddata",d),l.addEventListener("seeked",d),()=>{l.removeEventListener("loadeddata",d),l.removeEventListener("seeked",d)}},[n]),TZ(kZ,{children:[mA("canvas",{ref:a,"aria-hidden":!0,className:"absolute inset-0 z-[3] h-full w-full object-cover",style:{objectPosition:o,visibility:n?"visible":"hidden"}}),!n&&mA("video",{ref:r,src:`${e}${OZ}`,muted:!0,playsInline:!0,preload:"auto",className:"hidden",onError:t})]})}import{imageCopyUrl as gA,imageSrcSet as AZ}from"efficient-shell/image-copies";var IA;function gg(){return IA===void 0?{}:{host:IA}}var GAe="(max-width: 800px) 100vw, min(100vw, 1600px)";function bA(e,{fallbackWidth:o=1280,maxWidth:t}={}){let r=AZ(e,{...gg(),...t===void 0?{}:{maxWidth:t}});return r?{src:gA(e,o,gg()),srcSet:r}:{src:e}}function $Ae(e){let o=gA(e,1920,gg());return o===e?`url(${e})`:`url("${o}")`}import{formatFocal as FZ,parseFocal as LZ}from"efficient-shell/format";var BZ="sf-focus-phone",DZ="--sf-focus-phone";function yA(e){if(typeof e!="string"||!/^\s*-?\d+(\.\d+)?%\s+-?\d+(\.\d+)?%\s*$/.test(e))return{className:"",style:{}};let{x:o,y:t}=LZ(e);return{className:BZ,style:{[DZ]:FZ(o,t)}}}var MZ=.5;function Ml({videoSrc:e,posterSrc:o,showVideo:t=!0,playbackRate:r=MZ,objectPosition:a="50% 50%",objectPositionPhone:n,quiet:s=!1}){let l=yA(n),c=o||"",d=e||"",[p,h]=Nl(!1),[u,x]=Nl(!1),[g,y]=Nl(!1),[T,O]=Nl(!1),[w,I]=Nl(!1),C=NZ(null);bg(()=>{h(!1),x(!1),y(!1),O(!1)},[e,o]),bg(()=>{if(typeof window>"u")return;let A=()=>{let D=window;D.requestIdleCallback?D.requestIdleCallback(()=>I(!0),{timeout:2e3}):setTimeout(()=>I(!0),800)};if(document.readyState==="complete"){A();return}return window.addEventListener("load",A,{once:!0}),()=>window.removeEventListener("load",A)},[]),bg(()=>{let A=C.current;if(!A)return;let D=()=>{A.playbackRate=r};return D(),A.addEventListener("loadedmetadata",D),()=>A.removeEventListener("loadedmetadata",D)},[e,r]);let v=ab(c),k=c&&v&&!u?bA(c):{src:c};return SA("div",{className:"absolute inset-0 z-[1]",children:[Bn("div",{className:"absolute inset-0",style:{background:"var(--site-surface)"}}),c&&(v?Bn("img",{src:k.src,...k.srcSet?{srcSet:k.srcSet,sizes:"100vw"}:{},alt:"",className:`absolute inset-0 z-[2] h-full w-full object-cover ${l.className}`.trim(),style:{display:p?"none":"block",objectPosition:a,...l.style},onError:()=>k.srcSet?x(!0):h(!0)},c):Bn(pA,{src:c,alt:"",fill:!0,priority:!0,sizes:"100vw",className:`z-[2] object-cover ${l.className}`.trim(),style:{display:p?"none":"block",objectPosition:a,...l.style},onError:()=>h(!0)},c)),t&&!s&&d&&w&&!g&&SA("video",{ref:C,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,preload:"metadata",className:"absolute inset-0 z-[3] h-full w-full object-cover",style:{objectPosition:a},onError:()=>y(!0),children:[nb(d)&&Bn("source",{src:d.replace(/\.mp4$/,".av1.mp4"),type:'video/mp4; codecs="av01.0.08M.10"'}),Bn("source",{src:d,type:"video/mp4"})]},d),t&&s&&d&&w&&!T&&(!c||p)&&Bn(xA,{src:d,objectPosition:a,onError:()=>O(!0)},d)]})}import{Fragment as EA,jsx as ko,jsxs as wg}from"react/jsx-runtime";import{MOTION_TIMING as HZ}from"efficient-shell/format";var kA="grayscale(1) contrast(1.03)",tFe="Black and white";function zZ(e){return e===!0?{filter:kA}:{}}function WZ(e){let{filter:o}=zZ(e);return o?{style:{filter:o}}:{}}var ka="sf-photo-grayscale",Sg="data-sf-photo-host",wA={duration:"--sf-photo-hover-duration",delay:"--sf-photo-hover-delay"},Uf=`@media (hover:hover){.${ka}{filter:${kA};transition:filter var(--sf-photo-hover-duration,var(--page-motion-hover-duration)) var(--page-ease-media) var(--sf-photo-hover-delay,var(--page-motion-hover-delay))}.${ka}:hover,[data-sf-photo-host]:hover .${ka}{filter:none}}@media (hover:hover) and (prefers-reduced-motion:reduce){.${ka}{transition:none}}`;function TA(e){let o=HZ.hover,t={...e.duration!==o.duration.default?{[wA.duration]:`${e.duration}s`}:{},...e.delay!==o.delay.default?{[wA.delay]:`${e.delay}s`}:{}};return Object.keys(t).length?t:void 0}function PA(e,o,t){if(e===!0)return WZ(!0);if(t?.kind==="mono"){let r=TA(t);return{className:ka,sheet:Uf,...r?{style:r}:{}}}return e===!1?{}:o===!0?{className:ka}:{}}var va="sf-photo-next",CA="data-sf-repeat",yg="sf-photo-zoom",GZ="--sf-photo-zoom",rFe="sf-photo-wash",Wf="sf-photo-wash-rest",Hl="sf-photo-wash-hover",Gf="sf-photo-frame",$f=(e,o)=>{let t=`:not([${CA}]:not(:hover) .${e})`;return`${o},[${CA}]:hover .${e}${t},[${Sg}]:hover .${e}${t}`},vA=e=>`${e} var(--sf-photo-hover-duration,var(--page-motion-hover-duration)) var(--page-ease-media) var(--sf-photo-hover-delay,var(--page-motion-hover-delay))`,$Z=`.${va}{opacity:0}.${Hl}{opacity:0}@media (hover:hover){.${va},.${Wf},.${Hl}{transition:${vA("opacity")}}${$f(va,`.${va}:hover,.${Gf}:hover .${va}`)},${$f(Hl,`.${Gf}:hover .${Hl}`)}{opacity:1}${$f(Wf,`.${Gf}:hover .${Wf}`)}{opacity:0}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.${yg}{transition:${vA("transform")}}${$f(yg,`.${Gf}:hover .${yg}`)}{transform:scale(var(${GZ}))}}@media (hover:hover) and (prefers-reduced-motion:reduce){.${va},.${Wf},.${Hl}{transition:none}}`;function aFe(e){if(e?.kind!=="nextImage")return null;let o=TA(e);return{className:va,sheet:$Z,...o?{style:o}:{}}}function nFe(e){return e===!0?{[ka]:Uf}:{}}import{hidableText as UZ}from"efficient-easel/draw";var jZ={one:"max-[719px]:grid-cols-1 max-[719px]:grid-rows-1",side:"max-[719px]:grid-cols-2 max-[719px]:grid-rows-1",stacked:"max-[719px]:grid-cols-1 max-[719px]:grid-rows-2"},KZ={one:"view-tablet:grid-cols-1 view-tablet:grid-rows-1",side:"view-tablet:grid-cols-2 view-tablet:grid-rows-1",stacked:"view-tablet:grid-cols-1 view-tablet:grid-rows-2"};function OA(e){let o=e.isVideo&&yy(e.videoSource)==="youtube",t=e.isVideo&&Sy(e.videoPlayback)==="click",r=o?wy(UZ(e.youtubeUrl)):null,a=ud(e.mediaLayout);return{fromYouTube:o,onClick:t,youTubeId:r,backgroundFile:e.isVideo&&!o&&!t,desktopLayout:a,phoneLayout:Bh(e.mediaLayoutPhone,a),twoPictures:!e.isVideo&&Fs(e)>1}}function zl(e,o){return wd(bn({_partMotion:e},o))}function Dn(e,o){return PA(void 0,void 0,ck(bn({_partMotion:e},o)))}function _A(e){return aa.some(o=>Dn(e,o).className)?{hostAttrs:{[Sg]:""},sheet:Uf}:{}}function jf({treatment:e,children:o}){return e.className?ko("div",{className:`absolute inset-0 ${e.className}`,...e.style?{style:e.style}:{},children:o}):ko(EA,{children:o})}function Kf({color:e,opacity:o,passClicks:t=!0}){return o>0?ko("div",{className:t?"pointer-events-none absolute inset-0 z-[2]":"absolute inset-0 z-[2]",style:{background:e,opacity:Math.min(Math.max(o,0),100)/100}}):null}function qf({part:e,editing:o,marked:t=!0,entrance:r,className:a,children:n}){let s=o&&t?{[aP]:e}:void 0;return r?ko(OI,{desktop:r.desktop,phone:r.phone,editing:o,boxClass:a,boxAttrs:s,children:n}):ko("div",{className:a,...s,children:n})}function RA({partMotion:e,editing:o,children:t}){let r=zl(e,"media"),a=Dn(e,"media"),n=a.className?ko("div",{className:`absolute inset-0 z-[1] ${a.className}`,...a.style?{style:a.style}:{},children:t}):t;return r?ko(OI,{desktop:r.desktop,phone:r.phone,editing:o,boxClass:"absolute inset-0 z-[1]",children:n}):ko(EA,{children:n})}function AA({desktopLayout:e,phoneLayout:o,editing:t,marked:r=!0,partMotion:a,first:n,second:s}){return wg("div",{className:`absolute inset-0 z-[1] grid ${jZ[o]} ${KZ[e]}`,"data-hero-layout":e,"data-hero-layout-phone":o,children:[ko(qf,{part:"image",editing:t,marked:r,entrance:zl(a,"image"),className:"relative overflow-hidden",children:wg(jf,{treatment:Dn(a,"image"),children:[ko(Ml,{posterSrc:Xt(n.src),showVideo:!1,objectPosition:n.objectPosition,objectPositionPhone:n.objectPositionPhone}),ko(Kf,{color:n.tintColor,opacity:n.tintOpacity})]})}),ko(qf,{part:"image2",editing:t,marked:r,entrance:zl(a,"image2"),className:`relative overflow-hidden${o==="one"?" max-[719px]:hidden":""}${e==="one"?" view-tablet:hidden":""}`,children:wg(jf,{treatment:Dn(a,"image2"),children:[ko(Ml,{posterSrc:Xt(s.src),showVideo:!1,objectPosition:s.objectPosition,objectPositionPhone:s.objectPositionPhone}),ko(Kf,{color:s.tintColor,opacity:s.tintOpacity})]})})]})}import{jsx as Ta,Fragment as qZ,jsxs as VZ}from"react/jsx-runtime";import{useEffect as YZ,useState as XZ}from"react";import{PlaySolidIcon as ZZ}from"efficient-shell/icons/efficient-looks";function FA({youTubeId:e,ownPoster:o,background:t,editing:r}){let[a,n]=XZ("large");return YZ(()=>n("large"),[e]),e?VZ(qZ,{children:[!o&&a!=="none"&&Ta("img",{src:a==="large"?Cy(e):vy(e),alt:"",className:"absolute inset-0 z-[2] h-full w-full object-cover",onLoad:s=>{a==="large"&&s.currentTarget.naturalWidth<=120&&n("small")},onError:()=>n(a==="large"?"small":"none")},`${e}-${a}`),t&&!r&&Ta("div",{className:"pointer-events-none absolute inset-0 z-[3] overflow-hidden [container-type:size]","aria-hidden":"true",children:Ta("iframe",{src:zu(e,"background"),title:"",tabIndex:-1,allow:"autoplay; encrypted-media; picture-in-picture",className:"absolute left-1/2 top-1/2 h-[max(100%,56.25cqw)] w-[max(100%,177.78cqh)] -translate-x-1/2 -translate-y-1/2 border-0"})})]}):null}function LA({youTubeId:e,fileSrc:o,playing:t,onPlay:r,editing:a}){return!e&&!o?null:t&&!a?e?Ta("iframe",{src:zu(e,"click"),title:Wu,allow:"autoplay; encrypted-media; picture-in-picture; fullscreen",allowFullScreen:!0,className:"absolute inset-0 z-[6] h-full w-full border-0 bg-overlay-scrim"}):Ta("video",{src:o,controls:!0,autoPlay:!0,playsInline:!0,className:"absolute inset-0 z-[6] h-full w-full bg-overlay-scrim object-contain"}):Ta("button",{type:"button","aria-label":Wu,onClick:a?void 0:r,className:`absolute left-1/2 top-1/2 z-[4] grid h-16 w-16 -translate-x-1/2 -translate-y-1/2 place-items-center rounded-full bg-btn text-btn-ink shadow-lg transition-transform motion-reduce:transition-none ${a?"pointer-events-none":"cursor-pointer hover:scale-105"}`,children:Ta(ZZ,{size:28})})}var BA=["top","middle","bottom"],DA=["left","center","right"],NA="bottom",MA="left",JZ={top:"Top",middle:"Middle",bottom:"Bottom"},QZ={left:"Left",center:"Center",right:"Right"},kFe="Up and down",TFe="Sideways",eJ={top:"flex-start",middle:"center",bottom:"flex-end"},oJ={left:"flex-start",center:"center",right:"flex-end"},tJ="--sf-hero-phone-y",rJ="--sf-hero-phone-x";function aJ(e){return BA.includes(e)?e:NA}function nJ(e){return DA.includes(e)?e:MA}function HA(e,o){let t=aJ(e),r=nJ(o),a={};return t!==NA&&(a[tJ]=eJ[t]),r!==MA&&(a[rJ]=oJ[r]),a}function PFe(){return BA.map(e=>({label:JZ[e],value:e}))}function EFe(){return DA.map(e=>({label:QZ[e],value:e}))}import{hexToRgb as sJ}from"efficient-shell/format";var lJ=!0;var iJ=[[0,".5"],[30,".1"],[60,".1"],[100,".85"]];function zA(e){let o=sJ(e);return o?`${o.r},${o.g},${o.b}`:null}function WA(e){return e==null?lJ:e!==!1}function GA(e){let o=(e?zA(e):null)??zA(Yo);return`linear-gradient(180deg, ${iJ.map(([t,r])=>`rgba(${o},${r}) ${t}%`).join(", ")})`}import{hexToRgb as $A}from"efficient-shell/format";var UA="bottom";var cJ=[{label:"Bottom",value:"bottom",cell:"bottom"},{label:"Top",value:"top",cell:"top"},{label:"Left",value:"left",cell:"left"},{label:"Right",value:"right",cell:"right"}],dJ={bottom:180,top:0,left:270,right:90},fJ=[[.55,0],[.15,18],[null,35],[null,55],[.85,100]],uJ=[[null,33],[.6,67],[.94,100]];function pJ(e,o){let{r:t,g:r,b:a}=$A(e)??$A(Yo);return`rgba(${t},${r},${a},${o})`}function jA(e){return to(cJ,UA,e)}function KA(e=Yo,o=UA){let t=jA(o),r=(t==="top"||t==="bottom"?fJ:uJ).map(([a,n])=>`${a===null?"transparent":pJ(e,a)} ${n}%`);return`linear-gradient(${dJ[t]}deg, ${r.join(", ")})`}function qA(e,o){let t=oe(e.overlayColor),r=oe(e.overlayPosition),a=oe(o)??Yo;return!t&&!r?{own:!1,color:a,position:null}:{own:!0,color:t??a,position:jA(r)}}import{jsx as mJ}from"react/jsx-runtime";var VA="sf-photo-hover";function YA({sheet:e,name:o=VA}){return e?mJ("style",{href:o,precedence:VA,dangerouslySetInnerHTML:{__html:e}}):null}var gJ=hJ({});function JFe({name:e,process:o,mediaType:t="video",mediaSrc:r,videoSpeed:a,poster:n,objectPosition:s,objectPositionPhone:l,tintColor:c=Yo,tintOpacity:d=0,groups:p,editing:h=!1,themeClassName:u,themeStyle:x,overlayColor:g,overlayPosition:y,mediaLayout:T,mediaLayoutPhone:O,mediaImage2:w,objectPosition2:I,objectPosition2Phone:C,tintColor2:v=Yo,tintOpacity2:k=0,videoSource:A,youtubeUrl:D,videoPlayback:P,partMotion:R}){let{alignment:N="left",textureOpacity:b,textureOn:_,textureColor:F,quietVideo:H,phoneUpDown:Z,phoneSideways:q,holdReel:U,reelHeld:ve}=xJ(gJ),ne=t==="video",Ue=ne?Xt(r):void 0,De=ne?Xt(n):Xt(r)??Xt(n),Te=typeof a=="number"?a/100:1,{fromYouTube:pe,onClick:ge,youTubeId:qe,backgroundFile:Ve,desktopLayout:se,phoneLayout:Fe,twoPictures:so}=OA({isVideo:ne,videoSource:A,videoPlayback:P,youtubeUrl:D,mediaLayout:T,mediaLayoutPhone:O}),[Pe,Ne]=IJ(!1);Pe&&ve===!1&&Ne(!1);let go=!Pe,To=qA({overlayColor:g,overlayPosition:y},F),Po=ne?null:zl(R,"image"),M=_A(R),le=ut(jf,{treatment:ne?{}:Dn(R,"image"),children:ut(Ml,{videoSrc:Ve?Ue:void 0,posterSrc:De,showVideo:Ve,playbackRate:Te,objectPosition:s,objectPositionPhone:ne?void 0:l,quiet:H})});return XA("section",{className:u?`relative h-full w-full overflow-hidden ${u}`:"relative h-full w-full overflow-hidden",style:x,"data-slide-name":e??"","data-slide-process":o??"","data-slide-media":Ve&&Ue?"video":"still",...M.hostAttrs,children:[ut(YA,{sheet:M.sheet}),ut(RA,{partMotion:R,editing:h,children:so?ut(AA,{desktopLayout:se,phoneLayout:Fe,editing:h,marked:!1,partMotion:R,first:{src:r,objectPosition:s,objectPositionPhone:l,tintColor:c,tintOpacity:d},second:{src:w,objectPosition:I,objectPositionPhone:C,tintColor:v,tintOpacity:k}}):pe||Po?XA(qf,{part:ne?"media":"image",editing:h,marked:!1,entrance:Po,className:"absolute inset-0 z-[1]",children:[le,pe&&ut(FA,{youTubeId:qe,ownPoster:!!De,background:!ge,editing:h})]}):le}),ge&&ut(LA,{youTubeId:qe,fileSrc:pe?void 0:Ue,playing:Pe,onPlay:()=>{Ne(!0),U?.()},editing:h}),go&&!so&&ut(Kf,{color:c,opacity:d,passClicks:!1}),go&&WA(_)&&ut("div",{className:"absolute inset-0 z-[2]",style:{background:To.own?KA(To.color,To.position??void 0):GA(To.color),...b!==void 0?{opacity:b/100}:null}}),go&&ut("div",{className:["sf-hero-group-layer absolute inset-0 z-[3] mx-auto max-w-[var(--sf-site-width,1600px)] px-[var(--sf-site-gutter,40px)] pt-[140px] pb-14",h?"sf-hero-group-layer-edit":""].filter(Boolean).join(" "),style:{...ew,...HA(Z,q)},children:p&&ut(p,{className:"sf-hero-group-zone",minEmptyHeight:160})})]})}var ZA=Array.from({length:3},(e,o)=>({name:`Slide ${o+1}`,process:"Category",mediaType:"image",mediaVideo:"",poster:""}));import{newNodeId as QA}from"efficient-easel/draw";var bJ="ImageBlock",yJ=3,Vf=(e,o,t={})=>({type:e,props:{...o?.(e)??{},id:QA(e),...t}}),SJ=e=>({...e?.(V)??{},direction:"column",[Ke]:[Vf(bJ,e),Vf(V,e,{direction:"column",[Ke]:[Vf("Text",e,Lo()),Vf("Text",e)]})]}),Ct={Hero:{slot:"slides",childType:"HeroSlide",addLabel:"Add slide",slider:!0,seeds:()=>ZA.map(e=>({...e}))},HeroSlide:{slot:"groups",childType:"HeroGroup",addLabel:`Add ${Tt.toLowerCase()}`,seeds:()=>[],addBlocked:hi,notice:cp},HeroSingle:{slot:"boxes",childType:"HeroGroup",addLabel:`Add ${Tt.toLowerCase()}`,seeds:()=>[],addBlocked:hi,notice:cp},ProcessSteps:{slot:"boxes",childType:V,addLabel:`Add ${Tt.toLowerCase()}`,seeds:e=>Array.from({length:yJ},()=>SJ(e)),skipSeed:e=>Array.isArray(e.steps)&&e.steps.length>0}},JA=1,wJ={slot:As,childType:V,addLabel:`Add ${Tt.toLowerCase()}`,seeds:()=>[],addBlocked:e=>e.length>=JA?"This Hero has its Scrolling Bar already. Delete it to add another.":null,notice:e=>e.length>JA?`This Hero holds ${e.length} Scrolling Bars. Keep one and delete the others.`:null},eF={Hero:{[As]:wJ}};function lLe(e){for(let[o,t]of Object.entries(e)){if(o in Ct&&Ct[o]!==t)throw new Error(`lib/document/slot-specs: "${o}" already has a slot spec`);Ct[o]=t}}function iLe(e,o){let t=Ct[e];return t?{slot:t.slot,children:t.seeds(o).map(r=>({type:t.childType,props:{id:QA(t.childType),...r}}))}:null}var tF=()=>({}),rF=new Map;function CJ(e){let o=rF.get(e);if(o)return o;let t=new Set,r=Ct[e];if(r)for(let s of r.seeds(tF))for(let l of oF({type:r.childType,props:s}))t.add(l);let a=zf(e);if(a){let s=0;for(let l of oF(a(tF,c=>`${c}-${s+=1}`)))t.add(l)}t.delete(e);let n=[...t].sort();return rF.set(e,n),n}function vJ(e){if(!e||!e.sets&&!e.allow&&!e.deny?.length)return null;let o=Rx(e),t=e.allow?new Set(e.allow):null,r=new Set(e.deny??[]),a=new Set(Object.keys(e.host??{})),n=c=>{if(r.has(c))return!1;if(a.has(c))return!0;let d=vb(c);return!d||!o[d]?!1:t?t.has(c):!0},s=new Map,l=c=>{let d=s.get(c);if(d!==void 0)return d;s.set(c,!1);let p=n(c)&&CJ(c).every(l);return s.set(c,p),p};return{sets:o,offers:l}}var kJ="block-offer";function Cg(e=aF()){return e.cache(kJ,()=>vJ(Si(e)))}function nF(e,o=aF()){let t=Cg(o);return t?t.offers(e):!0}function TJ(e){let o=bf.Ticker(e.nodeDefaults,e.newNodeId),{sectionBorder:t,...r}=o.props,a=Fh.line?{sectionBorder:t}:{};return{...o,props:{...r,...a,sectionAccent:Fh.sectionAccent}}}var PJ={Hero:{[As]:{newChild:TJ,childLabel:Jl.Ticker}}},sF=Object.fromEntries(Object.entries(eF).map(([e,o])=>[e,Object.fromEntries(Object.entries(o).map(([t,r])=>[t,{...r,...PJ[e]?.[t]}]))]));function lF(e,o=0,t,r){let a=OJ(_J(e,o,r),t),n=a?Cg():null;return a&&n?EJ(a,n):a}function EJ(e,o){if(e.spec)return o.offers(e.spec.childType)?e:null;let t=e.choices??[],r=t.filter(a=>o.offers(a.type));return r.length===t.length?e:r.length>0?{...e,choices:r}:null}function OJ(e,o){if(!e||e.source!=="container"||!o||!Vb())return e;let t=ai({data:o.data},o.id),r=typeof t?.type=="string"?Yb(t.type):[],a=e.choices??[],n=r.filter(s=>!a.some(l=>l.type===s.type));return n.length?{...e,choices:[...a,...n.map(s=>({type:s.type,label:s.label}))]}:e}function _J(e,o,t){let r=t?sF[e]?.[t]:void 0;if(r)return{source:"section",slot:r.slot,choices:null,spec:r};let a=Ct[e];if(a)return{source:"section",slot:a.slot,choices:null,spec:a};let n=Pb(e,o);if(n)return{source:"container",slot:n.slot,choices:n.choices,spec:null};let s=EE(e);return s?{source:"footer",slot:PE,choices:s,spec:null}:null}function iF(e){return Fu(e.type)?[{slot:Au,label:i(jb),rung:!0}]:null}import{useSyncExternalStore as RJ}from"react";var vg=null,kg=new Set;function cF(e){if(vg!==e){vg=e;for(let o of kg)o()}}function AJ(e){return kg.add(e),()=>{kg.delete(e)}}function BLe(){return RJ(AJ,()=>vg,()=>null)}function dF(e){return Zn(e)?.ownerId??null}function fF(e,o){let t=e.props;if(e.type==="FooterMenu"){let r=t.menu;return t.heading||r?.name||i("Menu")}if(e.type==="FooterText"){let r=typeof t.text=="string"?t.text.trim():"";return r?r.length>28?`${r.slice(0,28)}\u2026`:r:i("Text")}return e.type==="FooterEmailSignup"?t.heading||i("Email signup"):o(e.type)}var uF=(e,o,t)=>{if(o!=="block"||e.props?.fromProduct!==!0)return t;let r=e.props.product;return!r?.code||typeof r.name!="string"?t:r.name.trim()||t};var pF="sf-editor-left-view";function mF(){if(typeof window>"u")return"pages";try{let e=window.localStorage.getItem(pF);return e==="sections"||e==="styles"?e:"pages"}catch{return"pages"}}function hF(e){if(!(typeof window>"u"))try{window.localStorage.setItem(pF,e)}catch{}}function xF(e,o){return e==="styles"&&!o?"sections":e}function IF(e,o){return e?"sections":o}var FJ=new Set(["BookingBox","SubmitBox"]);function LJ(e){return typeof e=="string"&&FJ.has(e)}var BJ=pE(LJ,SE);function gF(e,o){return BJ(e)||Up(o)}import{copyNode as DJ}from"efficient-easel/data";function bF(e){let o=typeof e?.props?.id=="string"?e.props.id:null,t=zt(),r=o&&t?t.sectionOf(o):null;if(!t||!r)return null;let a=t.usedOn(r);return a?a.length===1?i("On 1 page"):i("On {count} pages",{count:a.length}):i("On other pages")}var yF={usedOn:e=>{let o=zt(),t=o?.sectionOf(e.props.id)??null;return!o||!t?null:o.usedOn(t)??[]},openPage:e=>Kd()?.openPage(e),adopt:(e,o)=>zt()?.adopt(e.props.id,o),nodeOf:e=>zt()?.place(e)??null,detach:e=>{let o=Kd()?.config;return o?DJ(e,o):e},removed:()=>Kd()?.reload()};import{sharedSectionsOf as $Q}from"efficient-easel/screen/lib/shared-sections";import{scrollPreviewToSection as UQ,scrollPreviewToTop as YF}from"efficient-easel/screen/lib/document/preview-dom";import{jsx as Eg,Fragment as dQ,jsxs as fQ}from"react/jsx-runtime";import{useEffect as uQ,useMemo as AF,useRef as FF}from"react";import{EaselCanvas as pQ,repeatCopyAt as mQ}from"efficient-easel/easel";import{jsx as kF,Fragment as jJ,jsxs as KJ}from"react/jsx-runtime";import{useEffect as TF,useLayoutEffect as qJ}from"react";var Yf="data-theme",SF="light";function NJ(e){return e.getAttribute(Yf)===SF?"light":"dark"}function MJ(e,o){return NJ(e)===o?!1:(o==="light"?e.setAttribute(Yf,SF):e.removeAttribute(Yf),!0)}function HJ(e){return uu(e).getItem(ru)}function ZLe(e,o){uu(e).setItem(ru,o)}function zJ(e,o,t=new Date().getHours()){return Mg({mode:o.mode,override:HJ(e),switchShown:o.switchShown,hour:t})}function wF(e,o){let t=e.documentElement;if(!t)return()=>{};let r=()=>MJ(t,zJ(e,o));r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[Yf]}),()=>n.disconnect()}var WJ="style";function GJ(e,o){let t=jg(o),r=!1;for(let a of Ug){let n=t[a]??"";e.style.getPropertyValue(a)!==n&&(n?e.style.setProperty(a,n):e.style.removeProperty(a),r=!0)}return r}function CF(e,o){let t=e.body;if(!t)return()=>{};let r=()=>GJ(t,o);r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[WJ]}),()=>n.disconnect()}var $J=String.raw`(function (doc) {
55
+ if (doc.__sfFitWords) return;
56
+ var win = doc.defaultView;
57
+ var SELECTOR = "h1,h2,h3,h4,h5,h6,[class*='font-heading'],[class*='font-display']";
58
+ // Body text a block asked to shrink (its Text group's Shrink to fit), beside
59
+ // the headings: what this script may fit at all. modeOf() decides each one.
60
+ var SHRINK_BODY = "[data-fit] p,[data-fit] li,[data-fit-phone] p,[data-fit-phone] li";
61
+ var CANDIDATES = SELECTOR + "," + SHRINK_BODY;
62
+ var MIN_SCALE = 0.3, MIN_PX = 16, SLACK = 1, PHONE_BELOW = 800;
63
+
64
+ // A block's own answer (lib/content/block-size, the wrapper's attributes):
65
+ // data-fit "wrap" | "shrink" | "line" and data-fit-min, each with its phone twin read
66
+ // under 800px. With none, a heading shrinks and body text wraps, as always.
67
+ function phone() { return win.innerWidth < PHONE_BELOW; }
68
+ function own(el, attr) {
69
+ var holder = el.closest("[" + attr + "],[" + attr + "-phone]");
70
+ if (!holder) return null;
71
+ return (phone() && holder.getAttribute(attr + "-phone")) || holder.getAttribute(attr);
72
+ }
73
+ function modeOf(el) {
74
+ var mode = own(el, "data-fit");
75
+ if (mode === "wrap" || mode === "shrink") return mode;
76
+ if (mode === "line") return "wrap"; // One line: the block keeps its words whole, nothing shrinks
77
+ return el.matches(SELECTOR) ? "shrink" : "wrap";
78
+ }
79
+ function floorOf(el, set) {
80
+ var min = parseFloat(own(el, "data-fit-min"));
81
+ return min >= 0 ? min : Math.max(set * MIN_SCALE, MIN_PX);
82
+ }
83
+
84
+ function measure(el) {
85
+ var widest = 0, current = 0, last = null, split = false, lastBlock = null;
86
+ function blockOf(n) {
87
+ for (var p = n.parentElement; p && p !== el; p = p.parentElement) {
88
+ var d = win.getComputedStyle(p).display;
89
+ if (d.indexOf("inline") !== 0 && d !== "contents") return p;
90
+ }
91
+ return el;
92
+ }
93
+ function close() { if (current > widest) widest = current; current = 0; last = null; }
94
+ var walker = doc.createTreeWalker(el, 5), range = doc.createRange(), node;
95
+ while ((node = walker.nextNode())) {
96
+ if (node.nodeType === 1) {
97
+ if (node.tagName === "BR" || node.tagName === "WBR") close();
98
+ continue;
99
+ }
100
+ var block = blockOf(node);
101
+ if (block !== lastBlock) close();
102
+ lastBlock = block;
103
+ var re = /(\S+)|(\s+)/g, m;
104
+ while ((m = re.exec(node.data))) {
105
+ if (m[2]) { close(); continue; }
106
+ range.setStart(node, m.index);
107
+ range.setEnd(node, m.index + m[0].length);
108
+ var rects = range.getClientRects();
109
+ for (var i = 0; i < rects.length; i++) {
110
+ var r = rects[i];
111
+ if (r.width <= 0) continue;
112
+ current += r.width;
113
+ if (last && r.top > last.top + last.height / 2) split = true;
114
+ last = r;
115
+ }
116
+ }
117
+ }
118
+ close();
119
+ return { widest: widest, split: split };
120
+ }
121
+
122
+ function lineWidth(el) {
123
+ var cs = win.getComputedStyle(el);
124
+ return el.getBoundingClientRect().width - parseFloat(cs.paddingLeft) - parseFloat(cs.paddingRight)
125
+ - parseFloat(cs.borderLeftWidth) - parseFloat(cs.borderRightWidth);
126
+ }
127
+
128
+ // ⚠️ THE HEADING ELEMENT IS NEVER TOUCHED — no style="", no data-*. This
129
+ // runs before React hydrates, and React 19 in development reports ANY
130
+ // attribute that differs from what it rendered ("a tree hydrated but some
131
+ // attributes didn't match"): first our inline font-size on the hero (which
132
+ // React owns via --heading-size), then, when that moved to a data-sf-fit
133
+ // attribute, the attribute itself. So the fitted size lives only in this
134
+ // script's own stylesheet, in <head>, addressed to each heading by its
135
+ // POSITION (":root>*:nth-child(2)>…"). A position goes stale when the page's
136
+ // structure changes, so the rules are rewritten in the MutationObserver
137
+ // callback, which runs before the next paint. !important so the size also
138
+ // beats a part's own inline size.
139
+ var head = doc.head || doc.documentElement;
140
+ var fitEl = doc.createElement("style");
141
+ fitEl.id = "storefront-fit-words-sizes";
142
+ head.appendChild(fitEl);
143
+ // heading -> [[element, fitted size]]: the heading and each Text part inside
144
+ // it that holds its own size (a span [data-sf-part-styled]), e.g.
145
+ // [[h2, "43.8px"], [span, "43.8px"]]. Sizing the heading alone leaves such
146
+ // a part at its own size, and the word still breaks (card C25, Spec Table).
147
+ var fitted = new Map();
148
+
149
+ function pathOf(el) {
150
+ var parts = [];
151
+ for (var e = el; e && e.parentElement; e = e.parentElement) {
152
+ var i = 1, s = e;
153
+ while ((s = s.previousElementSibling)) i++;
154
+ parts.unshift("*:nth-child(" + i + ")");
155
+ }
156
+ return ":root>" + parts.join(">");
157
+ }
158
+ function writeRules() {
159
+ var css = "";
160
+ fitted.forEach(function (sizes, el) {
161
+ if (!el.isConnected) { fitted.delete(el); return; }
162
+ for (var i = 0; i < sizes.length; i++) css += pathOf(sizes[i][0]) + "{font-size:" + sizes[i][1] + " !important}";
163
+ });
164
+ if (fitEl.textContent !== css) fitEl.textContent = css;
165
+ }
166
+
167
+ function unfit(el) {
168
+ if (fitted.delete(el)) writeRules();
169
+ }
170
+
171
+ function fits(el) {
172
+ var m = measure(el);
173
+ return !m.split && m.widest <= lineWidth(el) + SLACK;
174
+ }
175
+
176
+ function fit(el) {
177
+ unfit(el);
178
+ if (modeOf(el) !== "shrink") return; // the block's own Wrap
179
+ if (lineWidth(el) <= 0) return; // hidden, or not laid out yet
180
+ if (fits(el)) return;
181
+ var set = parseFloat(win.getComputedStyle(el).fontSize);
182
+ if (!set) return;
183
+ var floor = floorOf(el, set);
184
+ if (floor >= set) return;
185
+ function size(px) { return Math.floor(px * 10) / 10 + "px"; }
186
+ // The SEARCH tries sizes on the element's own style and then puts that
187
+ // attribute back byte for byte (or removes it, if it had none), so nothing
188
+ // is left for React to see. A trial in a stylesheet instead restyles the
189
+ // whole page per step: a full pass on the Hartes home took 75–160ms at 4x
190
+ // CPU that way.
191
+ // Every trial scales the heading AND each part inside it that holds its
192
+ // own size, by the same ratio, so a part keeps its proportion to the
193
+ // heading.
194
+ var carriers = [el].concat(Array.prototype.slice.call(el.querySelectorAll("[data-sf-part-styled]")));
195
+ var base = carriers.map(function (c) { return parseFloat(win.getComputedStyle(c).fontSize) || set; });
196
+ var saved = carriers.map(function (c) { return c.hasAttribute("style") ? c.getAttribute("style") : null; });
197
+ function attempt(px) {
198
+ for (var i = 0; i < carriers.length; i++) carriers[i].style.setProperty("font-size", size(base[i] * px / set), "important");
199
+ }
200
+ function done() {
201
+ for (var i = 0; i < carriers.length; i++) {
202
+ if (saved[i] !== null) carriers[i].setAttribute("style", saved[i]); else carriers[i].removeAttribute("style");
203
+ }
204
+ }
205
+ attempt(floor);
206
+ if (!fits(el)) { done(); return; } // even the floor does not fit: leave it as set
207
+ var lo = floor, hi = set;
208
+ for (var i = 0; i < 8; i++) {
209
+ var mid = (lo + hi) / 2;
210
+ attempt(mid);
211
+ if (fits(el)) lo = mid; else hi = mid;
212
+ }
213
+ done();
214
+ fitted.set(el, carriers.map(function (c, i) { return [c, size(base[i] * lo / set)]; }));
215
+ writeRules();
216
+ }
217
+
218
+ // What each heading measured right after we last fitted it, so the
219
+ // ResizeObserver below can tell a real change (a font swap, a rotate, a
220
+ // container that moved) from the size change our own write just caused.
221
+ var seen = new WeakMap();
222
+ function remember(el) {
223
+ var b = el.getBoundingClientRect();
224
+ seen.set(el, b.width + "x" + b.height);
225
+ }
226
+ function fitAndRemember(el) { fit(el); remember(el); }
227
+
228
+ // ⚠️ A ResizeObserver, NOT fonts.ready or a resize event, and the reason is
229
+ // WHEN it runs: after layout, BEFORE paint. The web font arriving re-wraps a
230
+ // fitted heading, and fonts.ready resolves only after that frame is painted —
231
+ // measured on the Hartes hero: a 42px jump in 2 of 3 loads. A size change
232
+ // reported here is fitted in the same frame, so the broken state is never
233
+ // drawn. It also covers a container that resizes.
234
+ var ro = new win.ResizeObserver(function (entries) {
235
+ for (var i = 0; i < entries.length; i++) {
236
+ var el = entries[i].target;
237
+ var b = el.getBoundingClientRect();
238
+ if (seen.get(el) === b.width + "x" + b.height) continue; // our own write
239
+ fitAndRemember(el);
240
+ }
241
+ });
242
+ // Its own set, not seen: fitAndRemember has written seen by the
243
+ // time watch runs, so a seen test observed no heading at all, and a
244
+ // heading fitted in the fallback face was never fitted again when the web
245
+ // font arrived (hartesmetal.com.au, "FusionForge." with its "." alone).
246
+ var watched = new WeakSet();
247
+ function watch(el) { if (!watched.has(el)) { watched.add(el); ro.observe(el); } }
248
+
249
+ function fitAll() {
250
+ var els = doc.querySelectorAll(CANDIDATES);
251
+ for (var i = 0; i < els.length; i++) {
252
+ if (modeOf(els[i]) === "shrink") { fitAndRemember(els[i]); watch(els[i]); }
253
+ else unfit(els[i]); // Wrap here (a phone value may differ from the desktop's)
254
+ }
255
+ }
256
+
257
+ var queued = 0, all = false, touched = new Set();
258
+ function run() {
259
+ queued = 0;
260
+ if (all) { all = false; touched.clear(); fitAll(); return; }
261
+ var els = Array.from(touched);
262
+ touched.clear();
263
+ for (var i = 0; i < els.length; i++) {
264
+ if (!els[i].isConnected) continue;
265
+ if (modeOf(els[i]) === "shrink") { fitAndRemember(els[i]); watch(els[i]); }
266
+ else unfit(els[i]);
267
+ }
268
+ }
269
+ function schedule() { if (!queued) queued = win.requestAnimationFrame(run); }
270
+ function scheduleAll() { all = true; schedule(); }
271
+
272
+ fitAll();
273
+ // A backstop only: a font that changes widths without changing any
274
+ // heading's box is not seen by the ResizeObserver.
275
+ if (doc.fonts && doc.fonts.ready) doc.fonts.ready.then(scheduleAll, function () {});
276
+
277
+ // …and the viewport WIDTH, which the ResizeObserver cannot stand in for: a
278
+ // heading sized to its own text (fit-content, a flex item) keeps the SAME box
279
+ // when the phone turns to 844, so nothing reports a change and it would stay
280
+ // shrunk. The probe's rotate check caught exactly that.
281
+ var lastWidth = win.innerWidth;
282
+ function onResize() {
283
+ if (win.innerWidth === lastWidth) return; // a phone's toolbar changing HEIGHT is not our business
284
+ lastWidth = win.innerWidth;
285
+ scheduleAll();
286
+ }
287
+ win.addEventListener("resize", onResize);
288
+
289
+ var mo = new win.MutationObserver(function (records) {
290
+ // Positions first: a node added or removed anywhere can shift the
291
+ // nth-child path of a fitted heading, and this callback runs before paint.
292
+ if (fitted.size) {
293
+ for (var q = 0; q < records.length; q++) if (records[q].type === "childList") { writeRules(); break; }
294
+ }
295
+ for (var i = 0; i < records.length; i++) {
296
+ var r = records[i];
297
+ // A block's text fit (Wrap / Shrink to fit / One line) or Min font size changed in the editor:
298
+ // only a data-fit attribute moved, so every heading is measured again.
299
+ if (r.type === "attributes") { scheduleAll(); continue; }
300
+ var target = r.target.nodeType === 1 ? r.target : r.target.parentElement;
301
+ var owner = target && target.closest(CANDIDATES);
302
+ if (owner) touched.add(owner);
303
+ for (var j = 0; j < r.addedNodes.length; j++) {
304
+ var n = r.addedNodes[j];
305
+ if (n.nodeType !== 1) continue;
306
+ if (n.matches(CANDIDATES)) touched.add(n);
307
+ var inner = n.querySelectorAll(CANDIDATES);
308
+ for (var k = 0; k < inner.length; k++) touched.add(inner[k]);
309
+ }
310
+ }
311
+ if (touched.size) schedule();
312
+ });
313
+ mo.observe(doc.body, {
314
+ childList: true,
315
+ subtree: true,
316
+ characterData: true,
317
+ attributes: true,
318
+ attributeFilter: ["data-fit", "data-fit-phone", "data-fit-min", "data-fit-min-phone"],
319
+ });
320
+
321
+ doc.__sfFitWords = function stop() {
322
+ win.removeEventListener("resize", onResize);
323
+ ro.disconnect();
324
+ mo.disconnect();
325
+ if (queued) win.cancelAnimationFrame(queued);
326
+ fitted.clear();
327
+ fitEl.remove();
328
+ delete doc.__sfFitWords;
329
+ };
330
+ // For the probe and for debugging: which headings are fitted, at what size,
331
+ // and the sheet that holds it (disable it to read a heading's set size).
332
+ doc.__sfFitWords.fitted = fitted;
333
+ doc.__sfFitWords.sheet = fitEl;
334
+ // …and the two questions a block's own answer changes, for the guard
335
+ // (scripts/test-block-size.tsx §5): which mode an element is in, and its floor.
336
+ doc.__sfFitWords.modeOf = modeOf;
337
+ doc.__sfFitWords.floorOf = floorOf;
338
+ })(document);`,UJ="storefront-fit-words";function vF(e){let o=e.createElement("script");return o.id=UJ,o.textContent=$J,(e.head??e.documentElement).appendChild(o),()=>{e.__sfFitWords?.(),o.remove()}}var VJ=`
339
+ [${tt}][${tt}] { cursor: text; }
340
+ `;function PF({children:e,document:o}){let{theme:t,themeMode:r,themeSwitchShown:a}=de(),n=lo(t);return TF(()=>{if(o)return wF(o,{mode:r,switchShown:a})},[o,r,a]),TF(()=>{if(o)return CF(o,n)},[o,n]),qJ(()=>{if(o)return vF(o)},[o]),KJ(jJ,{children:[kF(gb,{}),kF("style",{children:VJ}),e]})}import{jsx as Tg}from"react/jsx-runtime";import{useEffect as YJ,useState as XJ}from"react";import{Banner as ZJ}from"efficient-shell/ui";var Xf={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."},JJ={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."},QJ=Xf.load,eQ=Xf.lock,oQ=Xf.conflict,tQ=Xf.save;function rQ(e){if(!e)return null;if(e.loadFailed)return i(QJ);if(e.lockHolder)return i(eQ,{name:e.lockHolder.name||i("Somebody else")});if(e.conflict)return i(oQ);if(e.saveFailed)return i(tQ);let o=e.sections?.[0];if(!o)return null;let t=o.title||i("A shared section"),r=o.holder?.name||i("Somebody else");return i(JJ[o.problem],{section:t,name:r})}function aQ({report:e}){let o=rQ(uf(e)),[t,r]=XJ(null);return YJ(()=>{o||r(null)},[o]),!o||t===o?null:Tg("aside",{className:"sf-canvas-notice",children:Tg(ZJ,{tone:"warning",onDismiss:()=>r(o),children:o})})}function EF(){return Tg(aQ,{report:pf()})}import{jsx as Zf}from"react/jsx-runtime";import{useState as OF}from"react";import{Banner as nQ,Button as sQ}from"efficient-shell/ui";import{UndoIcon as lQ}from"efficient-shell/icons/efficient";import{useScreenDocument as iQ}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSettledAction as cQ}from"efficient-easel/easel";function _F(){let e=i1(),{adapter:o,flushSave:t,reloadFromServer:r}=iQ(),a=o.siteVersions,[n,s]=OF(!1),[l,c]=OF(!1),d=async()=>{if(!(!a||n)){s(!0),c(!1);try{await f1({access:a,flushSave:t,reload:r})}catch{c(!0)}finally{s(!1)}}},p=cQ({onPress:()=>{d()},busy:n});return e?Zf("aside",{className:"sf-canvas-notice",children:Zf(nQ,{tone:l?"danger":"info",title:e.title,onDismiss:mf,action:a&&e.undo?Zf(sQ,{variant:"secondary",size:"sm",leftIcon:Zf(lQ,{}),loading:p.busy,disabled:p.busy,onClick:p.onPress,children:i("Undo")}):void 0,children:l?i("Undo did not work. Nothing changed. Try again."):i("Check it with Preview. Press Publish to put it live.")})}):null}import{decodePartId as hQ,REPEAT_ATTRIBUTE as Og,REPEAT_INDEX_ATTRIBUTE as _g}from"efficient-easel/draw";import{usePreviewParts as xQ}from"efficient-easel/draw/client";var RF=null;function Pg(e){RF=e}function vBe(){return RF}function LF(e){let{mirrorHostStyles:o}=hu(),t=yb(),{sectionBackgroundWidth:r,themeFromDocument:a}=de(),n=lb(),s=AF(()=>({...e.metadata??t??{},...kC(a?null:r,n)}),[e.metadata,t,r,n,a]);uQ(()=>(Pg(n),()=>Pg(null)),[n]);let l=FF(null),c=IQ(l),{onDocument:d}=e,p=h=>{l.current=h,d?.(h)};return fQ(dQ,{children:[Eg(_F,{}),Eg(EF,{}),Eg(pQ,{...e,onDocument:p,typing:c,metadata:s,height:"fill",mirrorStyles:o,frameWrapper:PF})]})}function IQ(e){let o=Yl(),t=xQ(),r=FF({parts:t});return r.current={parts:t},AF(()=>{let a=(n,s)=>{let l=kc(n,o),c,d=null,p=s??(l?null:_m(null,e.current,n)),h=!l&&p?mQ(p):null,u=h?hQ(n):null;if(h&&p&&u?.propKey){l=Pc({...h,nodeId:u.nodeId,key:u.propKey},o),c=u.propKey;let T=p.closest(`[${Og}][${_g}]`),O=`[${Og}="${Tc(T?.getAttribute(Og)??"")}"][${_g}="${Tc(T?.getAttribute(_g)??"")}"]`;d=()=>(p.ownerDocument??e.current)?.querySelector(O)??null}if(!l)return null;let x=p,g=()=>(x=_m(x,d?d():x?.ownerDocument??e.current,n),x),y=g();return y?{element:g,value:l.value,rules:l.rules,multiline:l.multiline,skip:l.skip,write:l.write,key:c,toolbar:{offered:l.offered,colors:l.offered.length>0?Fd(_0(y)):void 0}}:null};return{at:n=>{let s=n.closest(`[${tt}]`),l=s?.getAttribute(tt);return s&&l?a(l,s):null},atSelection:()=>{let n=r.current.parts.selectedPartId;return n?a(n,null):null},onCopyText:n=>jv(n,o),copyValue:n=>Uv(n,o),onChange:n=>{if(!n.typing){Rm(null);return}let s=n.element.closest(`[${tt}]`)?.getAttribute(tt)??null;Rm(s),s&&r.current.parts.selectedPartId!==s&&r.current.parts.select(s)}}},[o,e])}var gQ=sb.mediaFields,bQ=/video|poster|focal|phone/i;function BF(e){return(gQ[e]??[]).find(o=>!o.includes("[]")&&!bQ.test(o))??null}var DF={adds:{kind:"block",type:"ImageBlock"},takes:e=>BF(e.type)!==null,replace:(e,o)=>{let t=BF(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 NF={Hero:"Full-screen opener with rotating slides.",HeroSingle:"Full-screen image or video with a headline.",IntroBleed:"Full-bleed intro image the next section scrolls over.",Collections:"Product collections in a tidy grid.",AlloyWheelsListing:"A full product-listing page: filter rail, sortable card grid and pagination, from the live catalog. Choose which product types it shows.",CatalogFilterBar:"Filters the collection grids below it \u2014 a sticky row of Pills (the default), or Columns, one per filter you switch on.",ProductGrid:"Hand-picked products in a tidy grid.",FitmentFinder:"A vehicle picker \u2014 make, model, year and trim resolve the OEM stock fitment live.",Gallery:"Two image galleries with tabs and filters.",GalleryB:"Customer photos in a card grid with a click-to-open lightbox.",SpecStrip:"A thin one-line spec strip \u2014 small-caps items spread across the width, as a dark band or a bare hairline row.",ProductHero:"A product hero \u2014 image beside price, bullets and a buy button.",SpecTable:"A spec sheet \u2014 labeled rows of product specifications.",ProcessSteps:"A heading over columns of image, title, blurb and specs.",DetailRows:"Repeating full-width rows \u2014 eyebrow, title and copy beside a numbered close-up image, alternating sides each row.",FitmentTable:"A fitment table \u2014 per-size bolt patterns, offsets and load ratings, filterable by diameter.",CompatibleTyres:"The current product's compatible tyres \u2014 image, size, key specs and price per tyre, with an inquiry link. Display only.",RelatedProducts:"The current product's related items in a tidy row \u2014 the product page's built-in 'Pair with' cross-sell.",OrderSummary:"A display order-summary panel \u2014 items, totals and a note.",DeliveryOptions:"Delivery tiers as cards \u2014 name, window and price, one highlighted.",PaymentBadges:"A payment-methods trust strip with reassurance lines.",CheckoutCTA:"A centered 'ready to order?' headline with the checkout button.",Manifesto:"A bold brand statement beside a full-height image, with a stat strip.",ParagraphsA:"An editorial text panel with a stat strip and founders' note.",StatsParagraph:"An editorial heading and paragraph over a row of theme-color-accented stat cards.",Chart:"A titled chart \u2014 bars, line or donut \u2014 drawn from your own labeled data points.",Mockup:"A headline beside a stylized product-UI mockup card \u2014 spec sheet, fitment, portal, kanban and more.",Prose:"A plain editorial text section \u2014 eyebrow, heading and body copy.",Timeline:"An editorial aside beside a rail-marked timeline of dated entries.",TimelineTrack:"A horizontal year track of milestones \u2014 company history or roadmap.",Footprint:"A world map of your locations with a legend \u2014 designed here, sold worldwide.",TitleWithButtons:"A big headline beside a stack of call-to-action buttons.",Split:"Side-by-side image and text in two columns.",Cards:"A heading over a grid of free-text title-and-blurb cards.",FAQ:"A frequently-asked-questions accordion with a header.",Testimonials:"Customer quotes in a grid \u2014 the quote, a name and a role.",Masthead:"A journal issue header with a lead statement and contents.",Breadcrumb:"A slim trail showing where the reader is (Home / Journal\u2026).",CategoryBar:"A sticky row of category tabs with counts and links.",FeaturedCover:"A featured article \u2014 big cover image beside a headline and dek.",LongRead:"A long-form article spread with a pull-quote and cover image.",Series:"A section heading over a grid of column cards.",Subscribe:"A newsletter signup beside a list of recent issues.",SubscribeBlogs:"A newsletter signup beside your latest blog posts, pulled live.",Events:"Latest journal posts in a three-card row.",DocMasthead:"A document header \u2014 headline, metadata and standfirst.",DocTabs:"A sticky tab bar to switch between documents.",DocBody:"Long-form document body with an 'On this page' contents list.",DocMetaCards:"A three-up meta strip for the foot of a document.",Banner:"Wide promo strip with background image.",Stats:"Highlight key numbers \u2014 years, designs.",Countdown:"Hours, minutes and seconds to a set date and time, then one line.",KeyFeatures:"A theme-color chip and heading over a grid of short feature labels.",Logos:"A row of partner or brand logos.",Ticker:"A scrolling marquee of short phrases, full width.",Reviews:"Approved customer reviews in a star-rated card grid, pulled live.",SubmitBuild:"A 'Show us yours.' headline with a photo-submission form.",ReviewForm:"A write-a-review form \u2014 submissions wait for your approval before they show.",ContactRouting:"Pick who to reach, then a form that routes the message.",ContactLocations:"Your locations as a city gallery plus address and map cards.",SectionHeader:"A numbered section title with optional link.",Grid:"Multi-column container for blocks.",Flex:"An empty section. Add whatever you want inside.",Spacer:"Vertical breathing room between sections.",Divider:"A thin horizontal rule between sections.",CustomHTML:"Drop in your own sanitized HTML.",Heading:"A single heading line.",Text:"A paragraph of body copy.",ImageBlock:"A standalone image, at the width you set.",ButtonBlock:"A call-to-action button."};import{jsx as Jf}from"react/jsx-runtime";import{useState as yQ}from"react";import{Button as SQ,Tooltip as wQ,toast as MF}from"efficient-shell/ui";import{TemplateIcon as CQ}from"efficient-easel/icons";import{useSettledAction as vQ}from"efficient-easel/easel";import{useScreenDocument as kQ}from"efficient-easel/screen/components/ScreenDocumentContext";function zF({enabled:e,reason:o,onSaved:t}){let{flushSave:r}=kQ(),[a,n]=yQ(!1),s=async()=>{if(!a){n(!0);try{await r()?t():MF.error(i(HF))}catch{MF.error(i(HF))}finally{n(!1)}}},l=vQ({onPress:()=>{s()},busy:a});return Jf(wQ,{side:"bottom",content:e?i("Save this website as a platform template"):i(o),children:Jf("span",{className:"sf-tip-disabled",tabIndex:e?void 0:0,children:Jf(SQ,{variant:"secondary",disabled:!e||l.busy,loading:l.busy,onClick:l.onPress,rightIcon:Jf(CQ,{size:15}),children:i("Save as Template")})})})}var HF="Your last changes did not save, so the template was not made. Try again.";var TQ="Save your page changes first";function WF(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:TQ}:{visible:!0,enabled:!0}:{visible:!1,hiddenReason:"no-site"}:{visible:!1,hiddenReason:"not-operator"}:{visible:!1,hiddenReason:"no-console"}}var GF="storefront-editor:save-as-template";var Wl="ContactLocations",PQ="CityPictures",EQ="CityMaps",OQ=[{key:PQ,label:"City pictures",desc:"A wall of city photos, grouped by region. Each photo links to its city's card."},{key:EQ,label:"City maps",desc:"A card per city, grouped by region: address, phone, hours and a map."}];function $F(e=cl){let o=Jt.find(t=>t.sections.some(r=>r.type===Wl))?.key;return!e.includes(Wl)||!o?[]:OQ.map(({key:t,label:r,desc:a},n)=>({key:t,label:r,cat:o,after:Wl,desc:a,alias:"locations offices stores branches",insert:s=>{let l=df(Wl);return l?xg(Wl,l,n)(s.nodeDefaults,s.newNodeId):null}}))}var _Q="plain",UF=[{label:"Plain",value:"plain"},{label:"Filled",value:"filled"},{label:"Line",value:"line"}],RQ="line",AQ={KeyFeatures:"filled"};function Gl(e){return AQ[e]??_Q}function iDe(e,o){return to(UF,Gl(o),e)}function cDe(e){return to(UF,RQ,e)}function KF(e,{nodeDefaults:o,newNodeId:t,sectionLabel:r,blockIsOffered:a}){let n=zf(e);if(n)return n(o,t);if(vO(e)&&a(V)&&a(En))return{type:V,props:{...o(V),id:t(V),direction:"column",name:`${r(e)} section`,content:[{type:En,props:{...o(En),id:t(En),...Io[e]?.headStyle?{headStyle:Io[e].headStyle}:{},...Io[e]?.headRowGap?{rowGap:Io[e].headRowGap}:{},...Io[e]?.headDescriptionSize?{descriptionSize:Io[e].headDescriptionSize}:{},...Gl(e)!==Gl(En)?{eyebrowLook:Gl(e)}:{}}},{type:e,props:{...o(e),id:t(e),headPlacement:"own-box",...jF(e,t)}}]}};if(Ct[e]?.fixed===!0)return{type:e,props:{...o(e),id:t(e),layout:"boxes"}};let s=jF(e,t);return Object.keys(s).length?{type:e,props:{...o(e),id:t(e),...s}}:null}function jF(e,o){return e==="Cards"?{template:ri(t=>o(t))}:{}}import{useEffect as FQ,useState as LQ}from"react";import{useEaselSession as BQ}from"efficient-easel/screen/lib/session-context";function qF(){let e=BQ().chrome?.products?.list,[o,t]=LQ(null);return FQ(()=>{if(!e)return;let r=!1;return e().then(a=>{r||t(a)}),()=>{r=!0}},[e]),o}function rL({mode:e,open:o}){let{setSelectedHeroId:t,setSelectHandler:r}=YT(),a=oL().tree,n=e,s=n.kind==="ticker"?n.heroId:null,l=Nn(c=>{c&&(o({kind:"ticker",heroId:c}),UQ(c))},[o]);return vt(()=>{t(s)},[s,t]),vt(()=>{r(l)},[r,l]),{partRows:(c,{rowClick:d})=>{let p=String(c.props.id);return c.type==="Hero"&&Lh(c.props)&&no(QF,{icon:no(na,{type:"ticker",size:13}),name:i(Rs),onSelect:()=>l(p),selected:s===p,rowProps:{onClick:d(()=>l(p))},words:a})}}}function aL({mode:e,select:o}){let{setSelectedHeroPart:t,setSelectHandler:r}=fd(),a=oL().tree,{appState:n}=eL(u=>u),s=n.data.content??[],l=DQ(s);l.current=s;let c=e,d=aa.find(u=>Ls[u]===c.kind),p=d&&"nodeId"in c?Bs(String(c.nodeId),d):null,h=Nn(u=>{let x=rP(u);if(!x)return;let g=l.current.findIndex(T=>String(T.props.id)===x.nodeId);if(g<0)return;let y={kind:Ls[x.part],nodeId:x.nodeId};o({index:g},y)},[o]);return vt(()=>{t(p)},[p,t]),vt(()=>{r(h)},[r,h]),{partRows:(u,{rowClick:x})=>{let g=String(u.props.id),y=tP(u);if(y.length===0)return null;let T=I=>{let C=Bs(g,I.part);return no(QF,{icon:no(na,{type:I.part==="media"?"heroMedia":"heroImage",size:13}),name:i(I.label),onSelect:()=>h(C),selected:p===C,rowProps:{onClick:x(()=>h(C))},words:a},C)},[O,...w]=y;return $l(JF,{children:[T(O),w.length>0&&no(WQ,{children:w.map(T)})]})}}}function nL(e,o){return{partRows:(t,r)=>$l(JF,{children:[e.partRows?.(t,r),o.partRows?.(t,r)]})}}function jQ(e){let{adapter:o,capabilities:t,currentSlug:r,siteId:a,docId:n,hasUnsavedEdits:s,bridgeCapabilities:l,notifyParent:c,token:d}=Qf(),{hasPreviewLink:p}=t,h=We(tL()).preview?.draftLink,u=g1(e.data),x=WF({hasTrustedConsole:!!d,canCreatePlatformTemplate:l.canCreatePlatformTemplate,capabilities:t,siteId:a,hasUnsavedEdits:s}),g=Nn(()=>{!a||!r||c(GF,{siteId:a,slug:r})},[c,a,r]),y=XO({pageSlug:r,siteId:a,token:d}),T=o.previewHref?.(r)??y;return{barLead:()=>x.visible&&no(zF,{enabled:x.enabled,reason:x.enabled?"":x.disabledReason,onSaved:g}),barView:()=>p&&r&&no(QO,{liveHref:T,pageId:n??null,draftLink:h}),mainAction:u}}function KQ(e,o){let{capabilities:t,templateId:r,siteId:a,tokenRef:n,navigate:s}=Qf(),{hasSiteTheme:l,explainsSiteSettings:c}=t,d=I=>o.setView(I),[p,h]=VF(dn[0].id),[u,x]=VF(!1),{surface:g,setSurface:y}=VT(),T=()=>{if(l){d("styles"),o.reveal(),YF();return}e.show(Qx),e.reveal(),YF()},O={id:"pages",label:i("Pages"),icon:no(MQ,{}),panel:({onHide:I})=>no(MT,{activeSurface:g,onPreviewSurface:y,onNavigate:C=>{y(null),s(r?{kind:"template",id:r,pageSlug:C}:{kind:"page",slug:C,siteId:a??void 0})},onClose:I})},w=[];return!l&&c&&w.push({id:"appearance",label:i("Appearance"),icon:no(zQ,{}),active:e.kind==="website",onSelect:T}),l&&w.push({id:"styles",label:i("Styles"),icon:no(HQ,{}),panel:({onHide:I,notify:C})=>no(tO,{tokenRef:n,siteId:a??void 0,onClose:I,onNotify:C,tab:p,onTabChange:h,revealPageGroup:u,onPageGroupRevealed:()=>x(!1)})}),{railLead:[O],railTrail:w,resolveLeftView:I=>xF(I,l),openSettings:T,openStyles:()=>{h(yT),d("styles")},openPageStyles:l?()=>{h(fn),x(!0),d("styles"),o.reveal()}:c?()=>{e.show(jE),e.reveal()}:void 0}}function qQ(){let{navigate:e,siteId:o,reloadFromServer:t,docId:r}=Qf(),a=eL(s=>s.config),n=tL();vt(()=>(Wx({openPage:s=>e({kind:"page",slug:s.slug,siteId:o??void 0}),reload:()=>{t()},config:a}),()=>Wx(null)),[e,o,t,a]),vt(()=>{let s=zt();if(!s||!r)return;let l=!1;return $Q(n).list().then(c=>{l||s.learn(c)}).catch(()=>{}),()=>{l=!0}},[r,n])}function sL(){let e=Yl();return Nn(o=>{Kv(o,e)},[e])}function VQ(e,o,t,r){let{kind:a,open:n}=e,{selected:s,zoneOf:l}=o;vt(()=>{cF(s?.type==="BookingBox"&&s.props.region==="confirm"?dF(l(String(s.props.id))):null)},[s?.props.id]);let c=CO(e,o),{capabilities:{hasSiteSettings:d}}=Qf();qQ();let{chat:p,setChat:h,setSelected:u,setSelectHandler:x}=dd(),g=Nn(()=>n(KE),[n]),y=a==="chat";vt(()=>{u(y)},[y,u]),vt(()=>{x(g)},[x,g]);let{setOpenHandler:T}=_s(),O=Nn(()=>n(qE),[n]);vt(()=>{T(O)},[T,O]);let w=nL(rL(e),aL(e)),I=jQ(o),C=KQ(e,r),v=t.device,k=sL();return{...w,...I,...C,hasOwnRows:A=>A.type===lf,ownRows:c.renderLocationTree,sectionPressed:c.sectionPressed,onCopyItem:k,wrap:A=>no(xu.Provider,{value:!0,children:$l(GQ.Provider,{value:v,children:[A,no(T1,{})]})}),addPanelRow:A=>d?$l("div",{className:"sf-addside-sitewide",children:[no("span",{className:"sf-addside-sitewide-glyph","aria-hidden":"true",children:no(na,{type:"chat",size:16})}),$l("button",{type:"button",className:"sf-addside-sitewide-name",onClick:()=>{A(),g()},children:[i("Live chat"),no("span",{className:"sf-addside-sitewide-desc",children:i("A chat bubble on every page")})]}),no(NQ,{checked:p.enabled,onChange:D=>h({enabled:D}),ariaLabel:i("Show the chat bubble on the whole site")})]}):void 0}}var XF=null,Rg=new WeakMap;function YQ(e){let o=xb();if(!e||!o)return e;XF!==o&&(XF=o,Rg=new WeakMap);let t=Rg.get(e);return t||(t={...e,choices:e.choices?e.choices.map(r=>({...r,label:i(r.label)})):null,spec:e.spec?{...e.spec,addLabel:i(e.spec.addLabel),...e.spec.childLabel?{childLabel:i(e.spec.childLabel)}:{}}:null},Rg.set(e,t)),t}var XQ={isLockedBlock:(e,o)=>gF(e,o)||!!(o&&zt()?.heldElsewhere(o.props.id)),duplicateBlocked:Jd,nestDepth:(e,o,t)=>o===xi?tS(e,t):0,newSectionNode:KF,canAddTo:(e,o,t,r)=>YQ(lF(e,o,r,t)),blockIsOffered:nF,slotsOf:iF,resolveOnInsert:!0},ZQ=new Proxy(NF,{get:(e,o)=>{let t=Reflect.get(e,o);return typeof t=="string"?i(t):t}}),JQ={labelAtLevel:(e,o,t)=>i(yu(e,o,t)),descriptions:ZQ,categoryLabel:e=>{let o=P1(e);return o===void 0?void 0:i(o)},firstSection:E1,blockRowName:fF,rowName:uF,plainText:Fr,Icon:na,Thumbnail:oO,useProducts:qF,presets:$F()},QQ={desktop:2e3,tablet:800,mobile:390},ZF="desktop",eee={options:UT,initial:ZF,fluid:ZF,widths:QQ},oee={read:mF,write:e=>hF(e),forSelection:(e,o)=>IF(e,o)},tee={first:So,last:Be,firstGroup:Le,lastGroup:Oe,isSectionGroup:Cn,sectionGroupZone:aE,panelOf:e=>e===So?UE:null,get sharedReach(){return fa()?aee:void 0},get shared(){return zt()?yF:void 0},get groupTab(){return fa()?OE:void 0},get groupBadge(){return fa()?Vx({type:Oe})??void 0:void 0},get changeNotice(){return fa()?_E():void 0},get band(){return fa()?ree:void 0},get groupAccepts(){return fa()?lE:void 0}},ree={foldable:!0},aee=e=>Vx(e)??bF(e);function nee(e){return{...nL(rL(e),aL(e)),onCopyItem:sL(),openSettings:()=>e.show(Qx)}}function see(e,o){DO(e,o),jO()}var FNe={useOwnerName:un,useDocumentLabel:TT,useBridges:VQ,useStandaloneBridges:nee,useDocumentPass:see,blockRules:XQ,blockLook:JQ,devices:eee,leftView:oee,pinned:tee,Canvas:LF,canvasDrag:{media:DF},Inspector:YE};export{oe as a,Xl as b,FL as c,Er as d,Wn as e,Oee as f,_ee as g,Iu as h,Sb as i,Ree as j,bo as k,HL as l,Aee as m,Lee as n,Bee as o,Dee as p,Jl as q,Tt as r,V as s,kb as t,$ee as u,Pb as v,to as w,wu as x,Cu as y,ZL as z,Ql as A,qee as B,$n as C,Vee as D,Eb as E,Zee as F,Ob as G,Or as H,Jee as I,Qee as J,eoe as K,Rb as L,roe as M,aoe as N,rB as O,noe as P,soe as Q,Pu as R,Mb as S,Hb as T,zb as U,loe as V,ioe as W,fB as X,coe as Y,uB as Z,doe as _,Gb as $,K as aa,fe as ba,B as ca,G as da,Kn as ea,ti as fa,IB as ga,Au as ha,Pt as ia,yB as ja,Kb as ka,Doe as la,wB as ma,qb as na,Yb as oa,Noe as pa,Fu as qa,Moe as ra,CB as sa,Zb as ta,Qt as ua,Hoe as va,zoe as wa,Woe as xa,vB as ya,Goe as za,ai as Aa,$oe as Ba,Uoe as Ca,Rx as Da,We as Ea,Si as Fa,ep as Ga,vD as Ha,op as Ia,tp as Ja,Jn as Ka,Je as La,sre as Ma,Io as Na,kO as Oa,OPe as Pa,TO as Qa,_Pe as Ra,RPe as Sa,$ as Ta,rf as Ua,cPe as Va,yt as Wa,St as Xa,No as Ya,WPe as Za,fye as _a,xd as $a,Hs as ab,SP as bb,wP as cb,CP as db,uye as eb,vj as fb,vP as gb,pye as hb,PP as ib,O1 as jb,TEe as kb,cee as lb,ee as mb,i as nb,ho as ob,_1 as pb,OEe as qb,ew as rb,ar as sb,tw as tb,hse as ub,zp as vb,j2 as wb,xse as xb,zs as yb,wd as zb,kye as Ab,Fc as Bb,_e as Cb,$pe as Db,Upe as Eb,jpe as Fb,Kpe as Gb,ck as Hb,nz as Ib,Vm as Jb,sz as Kb,mme as Lb,rt as Mb,xme as Nb,Ime as Ob,zc as Pb,gme as Qb,Wc as Rb,bme as Sb,yme as Tb,gk as Ub,bk as Vb,pz as Wb,mz as Xb,vme as Yb,Tme as Zb,Pme as _b,Eme as $b,Ome as ac,Nw as bc,aie as cc,$a as dc,sr as ec,Mi as fc,$w as gc,D1 as hc,Ed as ic,ASe as jc,hr as kc,FSe as lc,LSe as mc,BSe as nc,Od as oc,DSe as pc,NSe as qc,OH as rc,Gi as sc,Cie as tc,Qp as uc,vie as vc,BH as wc,DH as xc,eC as yc,oC as zc,yf as Ac,H1 as Bc,KEe as Cc,qEe as Dc,ce as Ec,me as Fc,he as Gc,Ce as Hc,ye as Ic,Ae as Jc,dOe as Kc,Qoe as Lc,ete as Mc,hy as Nc,Fr as Oc,ms as Pc,ts as Qc,ym as Rc,Cm as Sc,Sc as Tc,tt as Uc,tue as Vc,rue as Wc,aue as Xc,nue as Yc,M3 as Zc,H3 as _c,sue as $c,Ja as ad,vm as bd,lue as cd,iue as dd,jc as ed,Kc as fd,Jm as gd,kz as hd,th as id,nn as jd,Jr as kd,ahe as ld,Cs as md,Wk as nd,nhe as od,dh as pd,she as qd,lhe as rd,ihe as sd,cW as td,che as ud,pW as vd,mW as wd,dhe as xd,fhe as yd,xW as zd,Sa as Ad,IOe as Bd,gOe as Cd,wf as Dd,MV as Ed,HV as Fd,bOe as Gd,yOe as Hd,OI as Id,EI as Jd,Ks as Kd,R0 as Ld,A0 as Md,qs as Nd,p0 as Od,ywe as Pd,bn as Qd,kx as Rd,x0 as Sd,I0 as Td,lK as Ud,g0 as Vd,_d as Wd,b0 as Xd,DOe as Yd,X1 as Zd,NOe as _d,MOe as $d,HOe as ae,_l as be,vf as ce,KOe as de,Ho as ee,o1e as fe,a_ as ge,n_ as he,s_ as ie,iC as je,Fie as ke,xY as le,IY as me,gY as ne,bY as oe,yY as pe,l_ as qe,SY as re,d1e as se,f1e as te,g1e as ue,i_ as ve,b1e as we,y1e as xe,S1e as ye,w1e as ze,C1e as Ae,v1e as Be,_1e as Ce,Pf as De,R1e as Ee,qi as Fe,Vi as Ge,L1e as He,EY as Ie,f_ as Je,N1e as Ke,M1e as Le,u_ as Me,Af as Ne,nS as Oe,H_e as Pe,Q_ as Qe,ZI as Re,eR as Se,U_e as Te,j_e as Ue,K_e as Ve,JI as We,q_e as Xe,V_e as Ye,oR as Ze,RX as _e,en as $e,SRe as af,AR as bf,FR as cf,MRe as df,qX as ef,VX as ff,WR as gf,jRe as hf,KRe as if,hAe as jf,vAe as kf,BAe as lf,uA as mf,DAe as nf,pA as of,GAe as pf,bA as qf,$Ae as rf,yA as sf,Ml as tf,Br as uf,jte as vf,Yu as wf,Vte as xf,ID as yf,Dy as zf,Yte as Af,Dr as Bf,wD as Cf,ere as Df,ore as Ef,ui as Ff,tre as Gf,rp as Hf,Wy as If,pre as Jf,QT as Kf,dge as Lf,Bh as Mf,mn as Nf,mge as Of,hge as Pf,eU as Qf,xge as Rf,Bs as Sf,rP as Tf,aP as Uf,tFe as Vf,Sg as Wf,PA as Xf,va as Yf,yg as Zf,GZ as _f,rFe as $f,Wf as ag,Hl as bg,Gf as cg,aFe as dg,nFe as eg,YB as fg,hte as gg,XB as hg,ZB as ig,gte as jg,JB as kg,QB as lg,bte as mg,yte as ng,Ste as og,OA as pg,zl as qg,Dn as rg,_A as sg,jf as tg,Kf as ug,qf as vg,RA as wg,AA as xg,FA as yg,LA as zg,NA as Ag,MA as Bg,kFe as Cg,TFe as Dg,PFe as Eg,EFe as Fg,Yo as Gg,lJ as Hg,UA as Ig,cJ as Jg,KA as Kg,qA as Lg,YA as Mg,gJ as Ng,JFe as Og,Ma as Pg,Jy as Qg,Zy as Rg,MD as Sg,HD as Tg,zD as Ug,Fre as Vg,WD as Wg,Lre as Xg,Qn as Yg,Bre as Zg,Dre as _g,xi as $g,tS as ah,ZT as bh,nge as ch,lLe as dh,iLe as eh,vJ as fh,$H as gh,Ui as hh,Rie as ih,Vy as jh,_D as kh,wre as lh,pi as mh,Xy as nh,RD as oh,AD as ph,FD as qh,kre as rh,Tre as sh,Pre as th,Ere as uh,Le as vh,Oe as wh,_ve as xh,nE as yh,Ud as zh,kte as Ah,Ote as Bh,$i as Ch,Pie as Dh,Eie as Eh,Oie as Fh,CC as Gh,Kr as Hh,d5 as Ih,Vie as Jh,f5 as Kh,Yie as Lh,Ji as Mh,Xie as Nh,vBe as Oh,_0 as Ph,iCe as Qh,E0 as Rh,Rs as Sh,QIe as Th,YT as Uh,ege as Vh,oge as Wh,tge as Xh,nPe as Yh,rO as Zh,aO as _h,nO as $h,w5 as ai,yo as bi,Qo as ci,Qi as di,qa as ei,ice as fi,cce as gi,fce as hi,uce as ii,pce as ji,mce as ki,hce as li,Ice as mi,oc as ni,gce as oi,xre as pi,yre as qi,mi as ri,Ii as si,os as ti,dS as ui,Kre as vi,qre as wi,pp as xi,yN as yi,pae as zi,xae as Ai,Cae as Bi,vae as Ci,EN as Di,Bo as Ei,Ci as Fi,Cp as Gi,vp as Hi,sne as Ii,lne as Ji,FS as Ki,ine as Li,cne as Mi,dne as Ni,HS as Oi,WS as Pi,_t as Qi,YS as Ri,Q2 as Si,_se as Ti,lw as Ui,Nse as Vi,cw as Wi,pw as Xi,mw as Yi,hw as Zi,xw as _i,Iw as $i,gw as aj,Gp as bj,yw as cj,Sw as dj,nle as ej,SM as fj,sle as gj,lle as hj,Cw as ij,ule as jj,wM as kj,ple as lj,mle as mj,vM as nj,$p as oj,TM as pj,gle as qj,PM as rj,ble as sj,EM as tj,Xo as uj,Sle as vj,wle as wj,Cle as xj,vle as yj,Li as zj,kle as Aj,Kp as Bj,Fle as Cj,Ow as Dj,AM as Ej,Ble as Fj,ss as Gj,KM as Hj,oie as Ij,kH as Jj,gie as Kj,PH as Lj,bie as Mj,yie as Nj,Sie as Oj,ji as Pj,ls as Qj,Bie as Rj,Die as Sj,Nie as Tj,dC as Uj,fC as Vj,uC as Wj,Mie as Xj,Ka as Yj,Xi as Zj,Gie as _j,$ie as $j,Uie as ak,SC as bk,Kie as ck,fr as dk,Ft as ek,Xa as fk,Ude as gk,jde as hk,Kde as ik,qde as jk,Vde as kk,Yde as lk,Xde as mk,efe as nk,ofe as ok,B4 as pk,tfe as qk,rfe as rk,afe as sk,nfe as tk,sfe as uk,lfe as vk,ife as wk,cfe as xk,H4 as yk,dfe as zk,pm as Ak,ffe as Bk,dc as Ck,qr as Dk,Pp as Ek,iv as Fk,uc as Gk,ufe as Hk,pfe as Ik,dv as Jk,mfe as Kk,hfe as Lk,xfe as Mk,Ife as Nk,gfe as Ok,bfe as Pk,yfe as Qk,Sfe as Rk,tc as Sk,mc as Tk,hc as Uk,xm as Vk,xc as Wk,wfe as Xk,u3 as Yk,Cfe as Zk,vfe as _k,kfe as $k,pv as al,Tfe as bl,Pfe as cl,Efe as dl,Ofe as el,_fe as fl,Rfe as gl,Im as hl,Afe as il,hv as jl,xv as kl,Iv as ll,Ffe as ml,bm as nl,k3 as ol,Lfe as pl,Bfe as ql,ZSe as rl,f0 as sl,_o as tl,Gs as ul,u8 as vl,GP as wl,Qye as xl,eSe as yl,oSe as zl,tSe as Al,rSe as Bl,aSe as Cl,nSe as Dl,KP as El,sSe as Fl,lSe as Gl,iSe as Hl,id as Il,HT as Jl,zT as Kl,GT as Ll,cd as Ml,BIe as Nl,DIe as Ol,dd as Pl,j$ as Ql,KIe as Rl,_s as Sl,XIe as Tl,VT as Ul,Vn as Vl,TB as Wl,Yoe as Xl,Xoe as Yl,eke as Zl,oke as _l,tke as $l,ige as am,fd as bm,yee as cm,vue as dm,kue as em,Dv as fm,Tue as gm,Pue as hm,qk as im,vhe as jm,khe as km,The as lm,Phe as mm,pT as nm,mT as om,Xhe as pm,Zhe as qm,XW as rm,Jhe as sm,Qhe as tm,exe as um,oxe as vm,ZW as wm,txe as xm,rxe as ym,axe as zm,nxe as Am,oG as Bm,sxe as Cm,Ixe as Dm,gxe as Em,Eh as Fm,Oh as Gm,sP as Hm,Jbe as Im,pP as Jm,Ys as Km,KK as Lm,qK as Mm,TCe as Nm,FCe as Om,Dd as Pm,Be as Qm,Zd as Rm,dt as Sm,iO as Tm,ll as Um,cO as Vm,dO as Wm,uPe as Xm,pPe as Ym,KO as Zm,SI as _m,qO as $m,lF as an,BLe as bn,uF as cn,gF as dn,Yf as en,NJ as fn,MJ as gn,ZLe as hn,pee as in,Iee as jn,_Q as kn,UF as ln,RQ as mn,Gl as nn,iDe as on,cDe as pn,FNe as qn};