efficient-storefront-blocks 0.84.0 → 0.86.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 (146) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/chunks/{EditorPreviewCheckout-3NVDTH56.js → EditorPreviewCheckout-4LNXFNN7.js} +1 -1
  3. package/dist/chunks/{SiteEditorProvider-77K7CGYZ.js → SiteEditorProvider-A2HMVDKS.js} +1 -1
  4. package/dist/chunks/{chunk-F3MB7QCR.js → chunk-ALMIS7CK.js} +1 -1
  5. package/dist/chunks/{chunk-VYOK2XBF.js → chunk-EUKK2IN6.js} +1 -1
  6. package/dist/chunks/chunk-FJRKNPNN.js +340 -0
  7. package/dist/chunks/chunk-SLRULFYY.js +1 -0
  8. package/dist/chunks/{chunk-VJLQXB7I.js → chunk-TGBNREUJ.js} +1 -1
  9. package/dist/chunks/{fitment-data-PWXEDMOA.js → fitment-data-TSYW6AFA.js} +1 -1
  10. package/dist/contract.js +2 -2
  11. package/dist/editor/lib/document/blocks/commerce/DetailRows/fields.js +1 -1
  12. package/dist/editor/lib/document/blocks/commerce/FitmentPicker/fields.d.ts +2 -0
  13. package/dist/editor/lib/document/blocks/commerce/FitmentPicker/fields.js +1 -0
  14. package/dist/editor/lib/document/blocks/commerce/FitmentTable/fields.js +1 -1
  15. package/dist/editor/lib/document/blocks/commerce/ProductGrid/fields.js +1 -1
  16. package/dist/editor/lib/document/blocks/commerce/SpecTable/fields.js +1 -1
  17. package/dist/editor/lib/document/blocks/commerce/StockFitment/fields.d.ts +2 -0
  18. package/dist/editor/lib/document/blocks/commerce/StockFitment/fields.js +1 -0
  19. package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
  20. package/dist/editor/lib/document/blocks/commerce/index.js +1 -1
  21. package/dist/editor/lib/document/blocks/commerce/page-rules.d.ts +5 -0
  22. package/dist/editor/lib/document/blocks/commerce/page-rules.js +1 -1
  23. package/dist/editor/lib/document/blocks/service/ArticleBody/fields.d.ts +2 -0
  24. package/dist/editor/lib/document/blocks/service/ArticleBody/fields.js +1 -0
  25. package/dist/editor/lib/document/blocks/service/SiteFooter/fields.js +1 -1
  26. package/dist/editor/lib/document/blocks/service/SiteHeader/fields.js +1 -1
  27. package/dist/editor/lib/document/blocks/service/index.d.ts +1 -1
  28. package/dist/editor/lib/document/blocks/service/index.js +1 -1
  29. package/dist/editor/lib/document/box-header.d.ts +1 -1
  30. package/dist/editor/lib/document/box-header.js +1 -1
  31. package/dist/editor/lib/document/config.d.ts +1 -0
  32. package/dist/editor/lib/document/config.js +1 -1
  33. package/dist/editor/lib/document/popup-look-fields.d.ts +4 -0
  34. package/dist/editor/lib/document/popup-look-fields.js +1 -0
  35. package/dist/editor/lib/efficient-backend.js +1 -1
  36. package/dist/editor/lib/efficient-block-sources.js +1 -1
  37. package/dist/editor/lib/storefront-editor-words.d.ts +21 -1
  38. package/dist/editor/lib/storefront-editor-words.js +1 -1
  39. package/dist/editor.css +1 -1
  40. package/dist/index.js +134 -58
  41. package/dist/render/app/globals.css +156 -0
  42. package/dist/render/built-with.json +1 -1
  43. package/dist/render/components/ArticleBody.d.ts +7 -0
  44. package/dist/render/components/ArticleBody.js +1 -0
  45. package/dist/render/components/BoxHeaderBar.d.ts +2 -1
  46. package/dist/render/components/BoxHeaderBar.js +1 -1
  47. package/dist/render/components/CartContext.d.ts +1 -0
  48. package/dist/render/components/CartContext.js +1 -1
  49. package/dist/render/components/CartDrawer.d.ts +4 -3
  50. package/dist/render/components/CartDrawer.js +1 -4
  51. package/dist/render/components/DetailRows.d.ts +6 -1
  52. package/dist/render/components/DetailRows.js +1 -1
  53. package/dist/render/components/PopupFrame.d.ts +10 -1
  54. package/dist/render/components/PopupFrame.js +5 -1
  55. package/dist/render/components/ProductGridSection.d.ts +2 -1
  56. package/dist/render/components/ProductGridSection.js +1 -1
  57. package/dist/render/components/PublishedHeader.js +1 -1
  58. package/dist/render/components/Reviews.d.ts +1 -0
  59. package/dist/render/components/Reviews.js +1 -1
  60. package/dist/render/components/SectionBand.d.ts +2 -1
  61. package/dist/render/components/SectionBand.js +1 -1
  62. package/dist/render/components/SectionBandChoice.d.ts +2 -1
  63. package/dist/render/components/SectionBandChoice.js +1 -1
  64. package/dist/render/components/SectionGroupBody.d.ts +2 -2
  65. package/dist/render/components/SectionGroupBody.js +1 -1
  66. package/dist/render/components/SpecTable.d.ts +3 -1
  67. package/dist/render/components/SpecTable.js +1 -1
  68. package/dist/render/components/TyreSizeGrid.d.ts +17 -0
  69. package/dist/render/components/TyreSizeGrid.js +1 -0
  70. package/dist/render/components/fitment/FitmentPickerGrid.d.ts +5 -1
  71. package/dist/render/components/fitment/FitmentPickerGrid.js +1 -1
  72. package/dist/render/components/fitment/FitmentPickerPart.d.ts +8 -0
  73. package/dist/render/components/fitment/FitmentPickerPart.js +1 -0
  74. package/dist/render/components/fitment/StockFitmentPart.d.ts +4 -0
  75. package/dist/render/components/fitment/StockFitmentPart.js +1 -0
  76. package/dist/render/components/fitment/useVehicleFit.d.ts +2 -1
  77. package/dist/render/components/fitment/useVehicleFit.js +1 -1
  78. package/dist/render/components/pdp-dynamic/DynamicDetailRows.d.ts +2 -0
  79. package/dist/render/components/pdp-dynamic/DynamicDetailRows.js +1 -1
  80. package/dist/render/components/pdp-dynamic/DynamicFitmentTable.d.ts +5 -0
  81. package/dist/render/components/pdp-dynamic/DynamicFitmentTable.js +1 -1
  82. package/dist/render/components/pdp-dynamic/DynamicSpecTable.d.ts +1 -0
  83. package/dist/render/components/pdp-dynamic/DynamicSpecTable.js +1 -1
  84. package/dist/render/components/pdp-dynamic/DynamicTyreSizes.js +1 -1
  85. package/dist/render/components/pdp-dynamic/FitmentTableBlock.d.ts +3 -1
  86. package/dist/render/components/pdp-dynamic/FitmentTableBlock.js +1 -1
  87. package/dist/render/lib/content/article-body-seed.d.ts +9 -0
  88. package/dist/render/lib/content/article-body-seed.js +1 -0
  89. package/dist/render/lib/content/article-body.d.ts +8 -0
  90. package/dist/render/lib/content/article-body.js +5 -0
  91. package/dist/render/lib/content/article-page-seed.d.ts +12 -0
  92. package/dist/render/lib/content/article-page-seed.js +1 -0
  93. package/dist/render/lib/document/blocks/commerce/DetailRows/meta.d.ts +6 -0
  94. package/dist/render/lib/document/blocks/commerce/DetailRows/meta.js +1 -1
  95. package/dist/render/lib/document/blocks/commerce/DetailRows/render.js +1 -1
  96. package/dist/render/lib/document/blocks/commerce/FitmentPicker/meta.d.ts +2 -0
  97. package/dist/render/lib/document/blocks/commerce/FitmentPicker/meta.js +1 -0
  98. package/dist/render/lib/document/blocks/commerce/FitmentPicker/render.d.ts +2 -0
  99. package/dist/render/lib/document/blocks/commerce/FitmentPicker/render.js +1 -0
  100. package/dist/render/lib/document/blocks/commerce/FitmentTable/meta.js +1 -1
  101. package/dist/render/lib/document/blocks/commerce/FitmentTable/render.js +1 -1
  102. package/dist/render/lib/document/blocks/commerce/ProductGrid/render.js +1 -1
  103. package/dist/render/lib/document/blocks/commerce/SpecTable/render.js +1 -1
  104. package/dist/render/lib/document/blocks/commerce/StockFitment/meta.d.ts +2 -0
  105. package/dist/render/lib/document/blocks/commerce/StockFitment/meta.js +1 -0
  106. package/dist/render/lib/document/blocks/commerce/StockFitment/render.d.ts +2 -0
  107. package/dist/render/lib/document/blocks/commerce/StockFitment/render.js +1 -0
  108. package/dist/render/lib/document/blocks/commerce/metas.d.ts +2 -0
  109. package/dist/render/lib/document/blocks/commerce/metas.js +1 -1
  110. package/dist/render/lib/document/blocks/commerce/renders.d.ts +2 -0
  111. package/dist/render/lib/document/blocks/commerce/renders.js +1 -1
  112. package/dist/render/lib/document/blocks/service/ArticleBody/meta.d.ts +8 -0
  113. package/dist/render/lib/document/blocks/service/ArticleBody/meta.js +1 -0
  114. package/dist/render/lib/document/blocks/service/ArticleBody/render.d.ts +2 -0
  115. package/dist/render/lib/document/blocks/service/ArticleBody/render.js +1 -0
  116. package/dist/render/lib/document/blocks/service/SiteFooter/render.js +1 -1
  117. package/dist/render/lib/document/blocks/service/SiteHeader/render.js +1 -1
  118. package/dist/render/lib/document/blocks/service/metas.d.ts +1 -0
  119. package/dist/render/lib/document/blocks/service/metas.js +1 -1
  120. package/dist/render/lib/document/blocks/service/renders.d.ts +1 -0
  121. package/dist/render/lib/document/blocks/service/renders.js +1 -1
  122. package/dist/render/lib/document/card-templates.js +1 -1
  123. package/dist/render/lib/document/current-record.d.ts +4 -15
  124. package/dist/render/lib/document/current-record.js +1 -1
  125. package/dist/render/lib/document/lazy-draws.js +1 -1
  126. package/dist/render/lib/document/render-config.d.ts +1 -0
  127. package/dist/render/lib/document/render-config.js +1 -1
  128. package/dist/render/lib/document/section-to-box-rows-detail.d.ts +2 -0
  129. package/dist/render/lib/document/section-to-box-rows-detail.js +1 -0
  130. package/dist/render/lib/document/section-to-box-rows-reviews.js +1 -1
  131. package/dist/render/lib/document/section-to-box-rows-spec.js +1 -1
  132. package/dist/render/lib/document/storefront-root.js +1 -1
  133. package/dist/render/lib/sections/product-grid-columns.d.ts +5 -0
  134. package/dist/render/lib/sections/product-grid-columns.js +1 -0
  135. package/dist/render/lib/sections/section-band.d.ts +6 -0
  136. package/dist/render/lib/sections/section-band.js +1 -1
  137. package/dist/render/lib/sections/spec-table-band.d.ts +4 -0
  138. package/dist/render/lib/sections/spec-table-band.js +1 -0
  139. package/dist/render/lib/wheels/vehicle-memory.d.ts +13 -0
  140. package/dist/render/lib/wheels/vehicle-memory.js +1 -1
  141. package/dist/words.d.ts +58 -12
  142. package/dist/words.js +5 -5
  143. package/package.json +5 -4
  144. package/dist/chunks/chunk-5EQD5D3L.js +0 -340
  145. package/dist/chunks/chunk-DQFD2BJD.js +0 -1
  146. /package/dist/chunks/{chunk-5EQD5D3L.js.LEGAL.txt → chunk-FJRKNPNN.js.LEGAL.txt} +0 -0
@@ -1,340 +0,0 @@
1
- import{B as si,Ba as Pb,C as ub,D as pb,E as mb,F as hb,Fa as de,H as xb,I as bu,Ja as Rb,K as Ib,Ka as Ab,L as Lo,M as _r,Ma as ii,N as gb,Na as Fb,O as ht,Oa as Lb,P as li,S as bb,T as yu,Ta as Bb,W as yb,X as Su,Z as wu,a as Zt,b as xu,ba as Sb,h as sb,ha as Rr,i as lb,j as Iu,ja as wb,k as so,l as ib,la as Cb,m as cb,n as La,na as vb,o as bo,oa as qo,p as Ba,pa as Na,q as Da,qa as kb,ra as Pt,s as db,sa as Cu,ta as Ma,v as Vn,x as fb,xa as Yn,y as gu,za as Tb}from"./chunk-VYOK2XBF.js";import{d as Eb,e as Jt,f as Ob,g as _b,j as Ha,n as vu}from"./chunk-F3MB7QCR.js";var ee=e=>typeof e=="string"&&e?e:void 0;var Nb="en",ci=null,Mb=Nb,Hb=null;function loe(e,o,t){ci=e??null,Mb=o||Nb,Hb=t??null}function oe(){return Hb}function ku(){return Mb}function zb(){return ci}function Db(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=ci?ci[e]:void 0;if(typeof t=="function"){try{let r=ee(t(o??{}));if(r)return r}catch{}return Db(e,o)}return Db(ee(t)??e,o)}function mo(e,o,t,r){return i(t===1?e:o,{...r,n:t})}import{jsx as Tu,Fragment as oB,jsxs as tB}from"react/jsx-runtime";import{createContext as rB,useContext as aB}from"react";var nB={mirrorHostStyles:!0,css:null,fontHrefs:[]},Gb=rB(nB);function foe({value:e,children:o}){return Tu(Gb.Provider,{value:e,children:o})}function Pu(){return aB(Gb)}function Wb(){let{css:e,fontHrefs:o}=Pu();return tB(oB,{children:[o.map(t=>Tu("link",{rel:"stylesheet",href:t},t)),e?Tu("style",{"data-sf-canvas-css":"",children:e}):null]})}import{jsx as sB}from"react/jsx-runtime";import{createContext as lB,useContext as iB}from"react";var Ub=lB(void 0);function hoe({metadata:e,children:o}){return sB(Ub.Provider,{value:e,children:o})}var $b=()=>iB(Ub);import{jsx as ao,Fragment as LL,jsxs as ri}from"react/jsx-runtime";import{useCallback as Kn,useEffect as Tt,useRef as Lee,useState as _L}from"react";import{SettingsSwitch as Bee}from"efficient-easel/panel";import{PagesIcon as Dee,StylesIcon as Nee}from"efficient-easel/rail";import{PaletteIcon as Mee}from"efficient-shell/icons/efficient";import{Subtree as Hee,TreeRow as BL}from"efficient-easel/tree";import{useEasel as DL}from"efficient-easel/easel";import{useEaselStrings as NL}from"efficient-easel/strings";import{createContext as cB,useContext as dB}from"react";var Eu=cB(!1),goe=()=>dB(Eu);import{useMemo as fB,useRef as uB}from"react";import{useEaselApi as pB}from"efficient-easel/easel";import{useSectionOps as mB}from"efficient-easel/screen/lib/document/use-section-ops";function di(){let e=pB(),o=mB(),t=uB(o);return t.current=o,fB(()=>({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 az}from"efficient-easel/draw";import{insertAt as nz,moveTo as sz,removeAt as lz}from"efficient-easel/fields";function Qt(e,o){let t=globalThis,r=Symbol.for(e),a=t[r];return a===void 0&&(a=o(),t[r]=a),a}var fi="dataSource";var hB="dataRows",Ar="countKey",Xn="counts",xB=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;function Zn(){return Qt("efficient.block-sources",()=>({sources:new Map,revision:0}))}var IB=e=>[e?.key,e?.label,e?.value].every(o=>typeof o=="string"&&o.trim()!==""),gB=e=>[e?.key,e?.label].every(o=>typeof o=="string"&&o.trim()!==""),bB=e=>[e?.label,e?.href].every(o=>typeof o=="string"&&o.trim()!=="");function yB(e){if(typeof e.key!="string"||!xB.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=>Kb(o)).filter(o=>o!==null)}:{},...Array.isArray(e.choices)?{choices:e.choices.filter(IB)}:{},...Array.isArray(e.fields)?{fields:e.fields.filter(gB).map(o=>({...o}))}:{},...bB(e.edit)?{edit:{label:e.edit.label.trim(),href:e.edit.href.trim()}}:{}}}function Poe(e){let o=e.map(yB),t=Zn();for(let r of o)t.sources.set(r.key,r);o.length&&(t.revision+=1)}function Eoe(e){let o=[...Zn().sources.values()];return e===void 0?o:o.filter(t=>t.blocks.includes(e))}function Ou(e){return Zn().sources.get(e)??null}function jb(e){return Zn().sources.get(e)?.choices??[]}function Ooe(){return Zn().revision}function yo(e){let o=e?.[fi];return typeof o=="string"?o.trim():""}function Kb(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let o={};for(let[t,r]of Object.entries(e)){let a=ee(r);a&&(o[t]=a)}return Object.keys(o).length?o:null}function SB(e){let o=e?.[hB];return Array.isArray(o)?o.map(Kb).filter(t=>t!==null):null}function _oe(e,o,t=[]){let r=SB(e);if(r!==null&&(r.length||!o))return{rows:r,sample:!1};if(!o)return{rows:[],sample:!1};let a=Ou(yo(e))?.sample;return{rows:a?.length?a:t,sample:!0}}import{isNodeList as eD}from"efficient-easel/data";var qb=["general","commerce","service"],er=[{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 Aoe(){return Object.fromEntries(er.map(e=>[e.key,{title:e.title,components:e.sections.map(o=>o.type),...e.defaultExpanded?{defaultExpanded:!0}:{}}]))}var wB={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."},Foe=["Grid","Spacer"],Loe=Array.from(new Set([...er.flatMap(e=>e.sections.map(o=>o.type)),...Object.keys(wB)])),pi=Object.fromEntries(er.flatMap(e=>e.sections.map(o=>[o.type,o.label]))),CB={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"},ui={...CB,...Object.fromEntries(er.flatMap(e=>e.sections.map(o=>[o.type,o.set])))};function Vb(e){return Object.prototype.hasOwnProperty.call(ui,e)?ui[e]:void 0}function _u(e){return Object.keys(ui).filter(o=>ui[o]===e).sort()}var Boe=_u("general"),Doe=_u("commerce"),Noe=_u("service"),Ru="Flex",Et="Box",Moe=`${Et}es`;function vB(e){return e==="section"?"Blank section":Et}function Au(e,o,t){return e===Ru?vB(o):t}var Ke="content",V="Flex",kB="Text & media",TB="Layout & structure",Xb=[{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"}],PB=[...Xb,{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:kB})),EB=(er.find(e=>e.key==="structure")?.sections??[]).map(e=>({type:e.type,label:e.label,group:TB})),Yb=[...PB,...EB],Fu=[...Xb,{type:"HeroGroup",label:Et}],Goe=Fu.map(e=>e.type),OB=1,_B=Fu.filter(e=>e.type!=="HeroGroup");function RB(e){return e<OB?Fu:_B}var AB={Flex:{slot:Ke,choices:()=>Yb},Grid:{slot:Ke,choices:()=>Yb},HeroGroup:{slot:Ke,choices:RB}};function Zb(e,o=0){let t=AB[e];return t?{slot:t.slot,choices:t.choices(o)}:null}function oo(e,o,t){return e.some(r=>(typeof r=="object"?r.value:r)===t)?t:o}var Lu="small",Bu="dot",FB=[{label:"Small",value:"small"},{label:"Display",value:"display"}],Du=[{label:"Dot \u25CF",value:"dot"},{label:"Cross \u2715",value:"cross"},{label:"Slash /",value:"slash"},{label:"Triangle \u25BC",value:"triangle"},{label:"None",value:"none"}],mi={dot:"\u25CF",cross:"\u2715",slash:"/",triangle:"\u25BC",none:""},LB={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)]"},BB={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 joe(e){return oo(FB,Lu,e)}function Jn(e){return oo(Du,Bu,e)}function Koe(e){return LB[e]}function Jb(e,o){return BB[e][o]}var Yoe=[{value:"none"},{value:"dot"},{value:"cross"},{value:"slash"},{value:"triangle"}];function Qb(e){return Du.some(o=>o.value===e)?Jn(e):void 0}var DB="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 Fr(e,o){return e==="row"&&Qb(o)!==void 0}function Xoe(e,o){return Fr(e,o)?DB:""}var NB="[&>*: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 Zoe(e,o){return Fr(e,o)?NB:""}function Joe(e,o){if(!Fr(e,o))return{};let t=Qb(o),r=/^text-\[([\d.]+)em\]$/.exec(Jb("small",t))?.[1],a=mi[t];return{"--sf-sep-mark":a===""?"none":JSON.stringify(a),...r?{"--sf-sep-k":r}:{}}}var Qn={sectionPaddingTop:0,sectionPaddingBottom:0},ey={start:"justify-start",center:"justify-center",between:"justify-between",end:"justify-end"},oy={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"};function ote(e,o){let t=typeof e=="string"&&e in ey?ey[e]:"",r=typeof o=="string"&&o in oy?oy[o]:"";return[t,r].filter(Boolean).join(" ")}function tte(e){return e===!0||e==="wrap"?"flex-wrap":""}var es="Block widths",Nu=[{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]}],za="[&>*]:min-w-0 [&>*]:flex-1 [&>*]:basis-0",MB={equal:za,bigLeft:`${za} [&>*:first-child]:view-wide:grow-[2]`,bigRight:`${za} [&>*:last-child]:view-wide:grow-[2]`,biggerLeft:`${za} [&>*:first-child]:view-wide:grow-[3]`,biggerRight:`${za} [&>*:last-child]:view-wide:grow-[3]`,twoThree:`${za} [&>*:first-child]:view-wide:grow-[2] [&>*:last-child]:view-wide:grow-[3]`};function HB(e){return typeof e=="string"?MB[e]??"":""}var ty="view-tablet:max-view-desktop:flex-row!",Ga=`${ty} [&>*: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!`,ry={content:`${ty} [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[content]!`,equal:Ga,bigLeft:`${Ga} [&>*:first-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[2]!`,bigRight:`${Ga} [&>*:last-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[2]!`,biggerLeft:`${Ga} [&>*:first-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[3]!`,biggerRight:`${Ga} [&>*:last-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[3]!`,twoThree:`${Ga} [&>*: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 zB(e){return typeof e=="string"&&e in ry?e:null}function rte(e){if(e.direction!=="row"||Fr(e.direction,e.separator)||e.loop==="scroll"||e.line===!0||cy(e.columns)!==""||dy(e.columnsTablet)!=="")return"";let o=zB(e.shareTablet);return o===null?"":ry[o]}var GB="[&>*]:view-wide:basis-[content]";function ate(e){return HB(e)===""?GB:""}var Mu="Columns",hi=1,ay=3,ny={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)]"},sy=Nu.filter(e=>e.value==="content"||e.value==="equal"),ly="equal",Hu=1,iy=6,Wa="view-wide:flex-wrap [&>*]:view-wide:min-w-0 [&>*]:view-wide:grow-0!",WB={1:`${Wa} [&>*]:view-wide:basis-[calc(100%/1)]!`,2:`${Wa} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px))/2)]!`,3:`${Wa} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_2)/3)]!`,4:`${Wa} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_3)/4)]!`,5:`${Wa} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_4)/5)]!`,6:`${Wa} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_5)/6)]!`};function cy(e){return typeof e=="number"?WB[e]??"":""}var UB={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 dy(e){return typeof e=="number"?UB[e]??"":""}function nte(e){return e.direction!=="row"||Fr(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":dy(e.columnsTablet)}function ste(e){return e.direction!=="row"||Fr(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":cy(e.columns)}var $B="max-view-wide:flex-wrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:grow-0 [&>*]:max-view-wide:basis-[content]",jB={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)]"},KB="max-view-wide:flex-nowrap [&>*]:max-view-wide:grow-0 [&>*]:max-view-wide:basis-[content]";function qB(e){return e===!1||e==="nowrap"}function lte(e,o,t){let r=ny[Number(e)];if(!r)return"max-view-wide:flex-col";let a=qB(t);return VB(e,o)?a?KB:$B:a?jB[Number(e)]:r}function VB(e,o){return Number(e)in ny&&o==="content"}var fy="Block spacing",zu=[{label:"Each block",value:"each"},{label:"Gap only",value:"gap"}],YB="sf-box-gap-only";function ite(e){return e==="gap"?YB:""}var uy={label:"Text",defaultProps:{text:"",align:"left",tone:"default",tag:"p",contained:!0}};var{text:pte,tag:mte,...XB}=uy.defaultProps,K=XB,fe={...K,tone:"dim"},xi={justify:"start",align:"stretch",wrap:!1,blockSpacing:"gap",padV2:!0},D={...xi,direction:"column",...Qn},Bo=(e,o=e,t=e,r=o)=>({sectionPaddingTop:e,sectionPaddingRight:o,sectionPaddingBottom:e,sectionPaddingLeft:o,sectionPaddingTopPhone:t,sectionPaddingRightPhone:r,sectionPaddingBottomPhone:t,sectionPaddingLeftPhone:r}),W=(e,o,t,r)=>({sizeToken:{step:e,px:o,...r?{stepPhone:r}:{},...t?{pxPhone:t}:{}}});function os(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]=os(c,o,n);return{type:r.type,props:{...s,id:o(r.type,n)}}})}var Do=()=>({tag:"h2",_partStyles:{text:{textStyle:"heading-2"}}}),ho=()=>({_partStyles:{text:{textStyle:"body-5",color:"accent",letterSpacing:.3,case:"upper",lineHeight:1.5}}});var Gu={...D,gap:12,gapPhone:12,...Bo(32,32,28,28)},Wu={textStyle:"heading-3",...W("headingSmall",20),weight:500,case:"upper",lineHeight:1.5,letterSpacing:.02},Uu={textStyle:"body-1",...W("body",15),lineHeight:1.6},Vo=(e,o,t,r=!1)=>({type:"Text",props:{...o,text:"",[Ot]:e,_partStyles:{text:{...r?ho()._partStyles?.text??{}:{},...t}}}}),ts={title:"title",body:"body"},Ii={title:"name",body:"note"},ZB=(e=ts)=>({type:V,props:{...Gu,name:"Card"},slots:{[Ke]:[Vo(e.title,{...K,tag:"p",widthFit:"fill"},Wu),Vo(e.body,{...fe,tag:"p",widthFit:"fill"},Uu)]}}),gi=(e,o)=>os([ZB(o)],e);function py(e,o){if(e!=="Cards")return o;if(o.template!==void 0)return QB(o);let t=ee(o.id)??"Cards",r=yo(o)?Ii:ts;return{...o,template:gi((a,n)=>n==="0"?`${t}~card`:`${t}~card.${n.slice(2)}`,r)}}var JB=e=>{let[o,t]=e?[ts,Ii]:[Ii,ts];return new Map([[o.title,t.title],[o.body,t.body]])};function my(e,o){let t=null;return e.forEach((r,a)=>{let n=r?.props;if(!n)return;let s=n,l=n[Ot];r.type==="Text"&&typeof l=="string"&&o.has(l)&&(s={...s,[Ot]:o.get(l)});let c=n[Ke];if(Array.isArray(c)){let d=my(c,o);d!==c&&(s={...s,[Ke]:d})}s!==n&&(t??=[...e],t[a]={...r,props:s})}),t??e}function QB(e){if(!Array.isArray(e.template))return e;let o=my(e.template,JB(!!yo(e)));return o===e.template?e:{...e,template:o}}var bi="template",hy="Card template",oD=["Text","ImageBlock","ButtonBlock","Flex"],Ot="rowField",tD="rowLinkField";function xy(){return{type:"slot",allow:[...oD]}}var rD=[{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=>py("Cards",e)}];function xt(){return Qt("efficient.card-templates",()=>new Map(rD.map(e=>[e.block,e])))}function Lte(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=ee(o.typedRows);xt().set(o.block,{block:o.block,fields:o.fields.map(a=>({...a})),blocks:t,typedRows:r,...o.seed?{seed:o.seed}:{}})}}function aD(e,o){let t=e?xt().get(e)?.seed:void 0;return t?t(o):o}function Iy(e,o){if(!(o.template===void 0||Array.isArray(o.template)&&o.template.length===0))return o;let{template:t,...r}=o,a=aD(e,r);return a===r?o:a}function gy(){for(let e of xt().values())if(e.blocks?.length)return!0;return!1}function by(e){return xt().get(e)?.blocks??[]}function Bte(e){for(let o of xt().values())if(o.blocks?.some(t=>t.type===e))return!0;return!1}function yy(e){return typeof e=="string"&&xt().get(e)?.typedRows||""}function $u(e){return typeof e=="string"&&xt().has(e)}function Dte(e,o){let t=xt().get(e)?.fields??[];return o?t.filter(r=>(r.kind??"text")===o):t}function nD(e,o){let t=typeof e?.type=="string"?e.type:"";if(!t)return[];let r=xt().get(t)?.fields??[],a=Ou(yo(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 Sy(e,o,t){return e?t?nD(t).find(r=>r.key===o)??null:xt().get(e)?.fields.find(r=>r.key===o)??null:null}function or(e,o=Ot){let t=e?.[o];return typeof t=="string"?t.trim():""}function Nte(e,o){return e.key||String(o+1)}function Mte(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 Hte(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=ee(typeof n=="string"?n.trim():void 0);if(s&&s!==t.trim())return s}return""}var wy={Text:{text:Ot},ImageBlock:{src:Ot},ButtonBlock:{label:Ot,href:tD}};function Cy(e,o,t){return ju(e,o,t)!==""}function ju(e,o,t){let r=wy[e]?.[t];return r?or(o,r):""}function sD(e,o){return!o||!e?null:e[o]??""}function zte(e,o,t){if(!t)return o;let r=null;for(let[a,n]of Object.entries(wy[e]??{})){let s=sD(t,or(o,n));s!==null&&(r??={...o},r[a]=s)}return r??o}function Ku(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(!eD(d))continue;let p=c===bi&&$u(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},m=r(d,p);if(m!==void 0)return m}}},a=r(t,null);return a===void 0?null:a}function yi(e,o){let t=Ku(e,o);return t&&t.owner}function Gte(e,o){let t=Ku(e,o);return t&&(t.direct?t.owner:null)}function Wte(e,o){let t=Ku(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 Z6}from"react";import{isNodeList as Si}from"efficient-easel/data";var vy="Flex";function rs(e){if(or(e))return"";let o=e?.[Ar];return typeof o=="string"?o.trim():""}var lD=new Intl.NumberFormat("en-US");function iD(e){return/^\d+$/.test(e)?lD.format(Number(e)):e}function qte(e,o){let t=o?o.find(r=>r.key===e)?.value:jb(Xn).find(r=>r.key===e)?.value;return t===void 0?null:iD(t)}function qu(e){let o=e.props;if(!o)return{node:e,names:!1};let t=e.type==="Text"&&rs(o)!=="",r=o;for(let[n,s]of Object.entries(o)){if(!Si(s))continue;let l=s.map(qu);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!==vy)return{node:r===o?e:{...e,props:r},names:t};let a=yo(r);if(t&&!a&&(r={...r,[fi]:Xn}),!t&&a===Xn){let{[fi]:n,...s}=r;r=s}return{node:r===o?e:{...e,props:r},names:!1}}function ky(e,o,t){for(let r of e){if(r?.props?.id===o)return t;for(let a of Object.values(r?.props??{})){if(!Si(a))continue;let n=ky(a,o,r.type===vy?r:t);if(n!==void 0)return n}}}function Vte(e,o){if(!Si(e))return!0;let t=ky(e,o,null);if(t===void 0)return!0;if(t===null)return!1;let r=yo(t.props);return!r||r===Xn}function Ty(e){let o=e?.content;if(!Si(o))return e;let t=o.map(qu);return t.every((r,a)=>r.node===o[a])?e:{...e,content:t.map(r=>r.node)}}function Py(e){return qu(e).node}import{applyMark as ore,markupTools as tre,MARKUP_TOOLS as rre,COPY_FIELD_TOOLS as are,STOREFRONT_MARKUP as nre,tokenizeInline as sre,stripInline as lre,isSafeLinkHref as Ly}from"efficient-shell/markup";import{applyMark as SD,clearStyle as wD,markedAt as CD,markupTools as vD,MARKUP_TOOLS as kD,parseMarkup as TD,RETIRED_MARKS as PD,STOREFRONT_MARKUP as ED,tokenizeInline as cre}from"efficient-shell/markup";var Lr=["highlight","strong","quiet"],Br={highlight:"Highlight",strong:"Bold",quiet:"Quiet"},It={highlight:{kind:"wordHighlight",delimiter:"@@"},strong:{kind:"wordStrong",delimiter:"++"},quiet:{kind:"wordQuiet",delimiter:"^^"}},Ry=Object.fromEntries(Lr.map(e=>[It[e].kind,e])),Ay="data-sf-ws",cD=["accent","text","labels"],as={accent:"var(--accent)",text:"var(--fg)",labels:"var(--fg-dim)"},dD=80,fD=120,uD=100,pD=900,mD=.5,hD=3,xD=-.1,ID=.5,gD=3,Vu={font:null,size:null,weight:null,bold:null,italic:null,lineGap:null,textGap:null,colour:null},bD={highlight:{...Vu},strong:{...Vu},quiet:{...Vu}};function Ey(e,o,t){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,o),t))}function Oy(e,o,t){if(typeof e!="number"||!Number.isFinite(e))return null;let r=10**gD;return Math.round(Math.min(Math.max(e,o),t)*r)/r}function _y(e){return typeof e=="boolean"?e:null}function yD(e){let o=typeof e?.font=="string"&&qo.some(r=>r.key===e.font)?e.font:null,t=typeof e?.colour=="string"&&cD.includes(e.colour)?e.colour:null;return{font:o,size:Ey(e?.size,dD,fD),weight:Ey(e?.weight,uD,pD),bold:_y(e?.bold),italic:_y(e?.italic),lineGap:Oy(e?.lineGap,mD,hD),textGap:Oy(e?.textGap,xD,ID),colour:t}}function Fy(e){let o={};for(let t of Lr)o[t]=e&&t in e&&e[t]?yD(e[t]):{...bD[t]};return o}function Zte(e){let o=Fy(e),t={};for(let r of Lr){let a=o[r],n=`--sf-ws-${r}`;if(a.font){let s=qo.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`]=as[a.colour])}return t}function Jte(e){let o=e?.word_styles??void 0,t={};for(let r of Lr)o&&r in o&&(t[r]=o[r]??null);return Fy(t)}var OD=new Set(["strong"]),By=Lr.map(e=>({open:It[e].delimiter,close:It[e].delimiter,kind:It[e].kind,...OD.has(e)?{wordStart:!0}:{}})),fre=[{style:It.highlight.kind,label:Br.highlight,title:`${Br.highlight} word style`},{style:It.strong.kind,label:Br.strong,title:`${Br.strong} word style`},{style:It.quiet.kind,label:Br.quiet,title:`${Br.quiet} word style`}],_D=new Set(By.map(e=>e.open)),Dr=[...ED.filter(e=>!_D.has(e.open)),...By];function Yu(e){return e.bullet?"- ":e.number!=null?`${e.number}. `:""}function ns(e){return TD(typeof e=="string"?e:"",Dr)}var RD=kD.map(e=>e.style).filter(e=>!PD.includes(e)).filter(e=>Dr.some(o=>o.kind===e));function Dy(){return vD(RD)}var Ny=Object.fromEntries(Lr.map(e=>[It[e].kind,It[e].delimiter]));function My(e,o,t,r){let a=Ny[r];if(!a)return SD(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 Hy(e,o,t,r){let a=Ny[r];return a?o>=a.length&&e.slice(o-a.length,o)===a&&e.slice(t,t+a.length)===a:CD(e,o,t,r)}function Nr(e){return ns(e).map(o=>Yu(o)+Gy(o.children)).join(`
36
- `)}function zy(e,o,t){return wD(e,o,t,Dr)}function Gy(e){return e.map(o=>o.kind==="text"?o.text:Gy(o.children)).join("")}import{jsx as S,jsxs as on,Fragment as mr}from"react/jsx-runtime";import{cloneElement as sv,createContext as b4,useContext as y4,useEffect as S4,useId as lv,useRef as Ic,useState as Cs}from"react";import{useEasel as Pm,useSelectedHost as rn}from"efficient-easel/easel";import{toDateKey as kde,fromDateKey as Tde}from"efficient-shell/format";function AD(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.src=="string"}function tr(e){return typeof e=="string"?e:AD(e)?e.src:""}function pre(e,o,t){return Xu(e,o.split("."),t)}function Xu(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,m=c.map(f=>{let x=Xu(f,a,t);return x!==f&&(p=!0),x});return p?{...l,[s]:m}:e}let d=Xu(c,a,t);return d===c?e:{...l,[s]:d}}var FD=["upload","youtube"],LD="upload",xre={upload:"Upload",youtube:"YouTube"},BD=["background","click"],DD="background",Ire={background:"Background",click:"Click to play"};function Uy(e){return FD.includes(e)?e:LD}function $y(e){return BD.includes(e)?e:DD}var Wy=/^[A-Za-z0-9_-]{11}$/,ND=/^(?:www\.|m\.|music\.)?(?:youtube\.com|youtube-nocookie\.com|youtu\.be)$/;function jy(e){let o=typeof e=="string"?e.trim():"";if(!o)return null;if(Wy.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:"||!ND.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&&Wy.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 Ky(e){return`https://i.ytimg.com/vi/${e}/maxresdefault.jpg`}function qy(e){return`https://i.ytimg.com/vi/${e}/hqdefault.jpg`}var Ju="Play video";var Qu={frame:"Video frame",image:"Image"},gre={any:[{field:"loadingShows",is:"image"},{all:[{not:{field:"loadingShows",set:!0}},{field:"poster",set:!0}]}]};function ep(e){let o=e.loadingShows;return o==="image"?"image":o!=null&&o!==""?"frame":tr(e.poster)?"image":"frame"}function bre(e){return tr(ep(e)==="image"?e.poster:e.videoFrame)||void 0}import{readHidable as hr,hidableText as w4}from"efficient-easel/draw";import{FOLD_FIELD_MARKER as iv,LINK_FIELD_MARKER as C4,MEDIA_FIELD_MARKER as v4,SCAFFOLD_FIELD_MARKER as k4,TEXT_FIELD_MARKER as Lt,foldMetaOf as Dt,textFieldIdentifier as Ade}from"efficient-easel/draw";import{jsx as eS}from"react/jsx-runtime";import{useCallback as GD}from"react";import{useEasel as WD}from"efficient-easel/easel";import{SettingsAction as UD}from"efficient-easel/panel";import{CORNER_SIDES as wi,hasCornerSubset as ss,normalizeCornerSides as gt}from"efficient-easel/screen/lib/content/style-keys";function op(e){return typeof e=="number"&&Number.isFinite(e)}function Cre(e,o){if(!op(e))return;let t=li(ht(e));if(Object.keys(t).length===0)return;let r=t[tp];if(typeof r!="string")return t;let a=ss(o)?Mr(r,gt(o)??[]):r;return{...t,[MD]:a}}var MD="--sf-section-radius",tp="--sf-card-radius";function Mr(e,o){return wi.map(t=>o.includes(t)?e:"0").join(" ")}var Vy=[{value:"tl",label:"Top left"},{value:"tr",label:"Top right"},{value:"bl",label:"Bottom left"},{value:"br",label:"Bottom right"}];var HD="--sf-card-box-radius";function rp(e){return typeof e=="number"&&Number.isFinite(e)}function Pre(e,o){if(!rp(e))return;let t=li(ht(e))[tp];if(typeof t!="string")return;let r=ss(o)?Mr(t,gt(o)??[]):t;return{[HD]:r}}function Yy(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 zD}from"efficient-easel/draw";function ls(e){if(!e)return null;let o=e.lastIndexOf(":");return o>0?{ownerId:e.slice(0,o),slot:e.slice(o+1)}:null}function Ci(e,o,t){let r=ls(t?.zone),a=r?zD(e,o,r.ownerId):null;return a&&r?{...a,slot:r.slot}:null}function Xy(e,o,t){let r=Ci(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}:rp(l?.props?.cardCorners)?{can:!0,others:d,zone:r.zone,index:r.index,data:{...r.item,props:{...r.item.props,[a]:Yy(n,c)}}}:{can:!1,reason:"unset",others:d}}function Zy(e){return e.can?mo("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 Jy(e){return mo("Applied to {n} card","Applied to {n} cards",e)}function Qy(e,o){e.can&&o(e.zone,e.index,e.data)}import{useSectionOps as $D}from"efficient-easel/screen/lib/document/use-section-ops";var jD="apply-corners-to-siblings",KD="Apply to all cards";function qD({plan:e,onPress:o}){return eS(UD,{id:jD,label:i(KD),note:Zy(e),disabled:!e.can,doneLabel:Jy(e.others),onPress:o})}function oS(){let{appState:e,config:o}=WD(n=>n),t=$D(),r=Xy(o,e.data.content??[],e.ui.itemSelector),a=GD(()=>{Qy(r,t.replaceComponent)},[r,t]);return eS(qD,{plan:r,onPress:a})}import{isShown as cN,lazyShowWhenContext as dN}from"efficient-shell/format";var Hr="product",vi="recordType",VD={key:Hr,label:"Product",fields:[]},YD=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,XD=/^[a-z][A-Za-z0-9]*$/,ZD=["text","date"],tS=new Map,rS=0;function JD(e){if(typeof e.key!="string"||!YD.test(e.key))throw new Error(`A record type key is lower-case words joined by hyphens, not ${JSON.stringify(e.key)}.`);if(e.key===Hr)throw new Error("The product record type is the builder's own and is not declared by a host.");if(typeof e.label!="string"||!e.label.trim())throw new Error(`The record type ${e.key} has no label.`);let o=new Set;for(let t of e.fields){if(typeof t.key!="string"||!XD.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(!ZD.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 Ure(e){let o=e.map(JD);for(let t of o)tS.set(t.key,t);o.length&&(rS+=1)}function ap(){return[VD,...tS.values()]}function np(){return rS}function sp(e){let o=e?.[vi];return typeof o!="string"?Hr:o.trim()||Hr}function lp(e){return sp(e)===Hr}var ki="product",aS="tyre",QD=[ki,aS];function Kre(e){return QD.includes(e)}var eN="productType",oN={[ki]:"alloy-wheel",[aS]:"tyre"},tN=["alloy-wheel","tyre"];function nS(e,o){return lp(o)?sS(o)??oN[e]??null:null}function sS(e){if(!lp(e))return null;let o=e?.[eN];return typeof o=="string"&&tN.includes(o)?o:null}function qre(e){let o=e?.root;return sS(o?.props)}var ip="Main Pages",rN="Dynamic Pages",cp="dynamic",aN="dynamic";function zr(e){return e.kind===aN}var dp="lightbox";function lS(e){return e.kind===dp}function iS(e){let o=[],t=[];for(let r of e){if(zr(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??ip,rows:[r]})}if(t.length){let r=o.findIndex(a=>a.key.startsWith("system:"));o.splice(r===-1?o.length:r,0,{key:cp,label:rN,rows:t})}return o}var Ti=null,cS=null;function nN(e,o){Ti=e,cS=o}function Jre(e){nN(e,null)}function Qre(){return Ti}function Pi(){return zr({kind:cS})||Ti===ki}function eae(e){return nS(Ti??"",e)??"alloy-wheel"}import{addShowWhenFacts as sN}from"efficient-shell/format";import{showWhenOf as fp,shownForOption as lN,truthy as up,withRowRules as pp,withRowsShownWhen as is,withShowWhen as Xe}from"efficient-shell/format";var aae=sN;function iN(e,o,t){return e.slice(0,-1).reduceRight((r,a)=>({any:[{all:[o(a),t(a)]},{all:[{not:o(a)},r]}]}),t(e[e.length-1]))}function mp(e,o,t){let r=!1,a={};for(let[n,s]of Object.entries(e))cN(fp(s),o??{},t)?a[n]=s:r=!0;return r?a:e}function fS(e,o,t,r){let a=Ci(o,t,r);return{device:e,parentType:a?.item.type,parent:a?.item.props}}function dS(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 dS(t.not,o);for(let r of[t.all,t.any])if(Array.isArray(r)&&r.some(a=>dS(a,o)))return!0;return!1}function fae(e,o={}){return dN({parentType:()=>e.parent?.type??void 0,parent:()=>e.parent?.props??void 0,dynamicPage:()=>Pi(),root:()=>e.appState?.data?.root?.props,...o})}var uS=1;function fN(e){return ht(e)}function mae(e){let o=fN(e);return o===null?{}:{"--sf-card-image-radius":`${o}px`}}var pS=1,mS="Corners";function uN(e){return ht(e)}function gae(e,o){let t=uN(e);if(t===null)return null;let r=`${t}px`;return{borderRadius:ss(o)?Mr(r,gt(o)??[]):r}}var _t={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]]}},hp=Object.keys(_t),xS=[2,3,4,6];function xp(e,o){return hp.filter(t=>t===o||e===null||_t[t].across===e)}function IS(e){return typeof e!="string"||e===""?null:_t[e]??null}function hS(e,o){return o?6/e.acrossPhone:12/e.across}function gS(e){return[...e.lead??[],...e.desktop]}var pN="sf-wall--";function mN(e){return`${pN}${e}`}function yae(e){let o=_t[e],t=`.${mN(e)}`,r=[],a=(n,s,l=[])=>{let c=[],d=n.length,p=l.length;l.forEach(([m,f],x)=>{c.push(`${t} > :nth-child(${x+1}){grid-column:span ${m};grid-row:span ${f}}`)}),n.forEach(([m,f],x)=>{c.push(`${t} > :nth-child(${d}n+${p+x+1}){grid-column:span ${m};grid-row:span ${f}}`)});for(let m=1;m<d;m+=1)c.push(`${t}:has(> :nth-child(${d}n+${p+m}):last-child) > :nth-last-child(-n+${m}){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,hS(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,hS(o,!0),o.leadPhone)),r.push("}"),r.join("")}var Ei=12,bS=1,hN=3;var xN=3;function Ip(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 IN(e){return Ip(e,1,Ei)??xN}function Cae(e,o){return Ip(e,bS,hN)??(IN(o)===4?2:bS)}function vae(e){return e==null||e===""?null:Ip(e,1,Ei)}var kae="data-sf-span";function Tae(e){if(!e)return!1;if(e.type==="Grid")return!0;if(e.type==="GalleryB"){if(IS(e.props?.layout))return!1;let o=e.props?.columns;return o!=null&&o!==""}return!1}import{jsx as gN}from"react/jsx-runtime";import*as bN from"efficient-easel/icons";function Oi(e){let o=e.replace(/(^|-)([a-z])/g,(r,a,n)=>n.toUpperCase()),t=bN[`${o}Icon`];return t?gN(t,{size:16}):null}import{isNodeList as yN}from"efficient-easel/data";var Ua=["top-left","top-center","top-right","left","center","right","bottom-left","bottom-center","bottom-right"],SS="bottom-left",$a=4,SN=$a+1,yS=40,wN=30,CN=100,vN=60,Rae=100;var gp={"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 kN(e){let o=Ua.indexOf(cs(e));return{band:Math.floor(o/3),column:["start","center","end"][o%3]}}function TN(e){return 1+kN(e).band*(SN+1)}function Aae(e){return TN(e)+1}function cs(e){return Ua.includes(e)?e:SS}function Fae(e){let o=typeof e=="number"&&Number.isFinite(e)?e:0;return Math.max(-yS,Math.min(yS,Math.round(o)))}function Lae(e,o=vN){let t=typeof e=="number"&&Number.isFinite(e)?e:o;return Math.max(wN,Math.min(CN,Math.round(t)))}function bp(e,o){let t=cs(o);return e.filter(r=>cs(r?.props?.placement)===t).length}function wS(e){return`${gp[cs(e)]} already holds ${$a} boxes. Move one somewhere else first.`}function CS(e,o){let t=e.filter(r=>r?.props?.id!==o);return Ua.map(r=>{let a=bp(t,r)>=$a,n=gp[r];return a?{value:r,label:n,disabled:!0,title:wS(r)}:{value:r,label:n}})}function _i(e,o){let t=o===void 0?SS:cs(o?.props?.placement);return bp(e,t)>=$a?wS(t):null}var Ri="HeroGroup";function PN(e){return Ua.map(o=>{let t=bp(e,o);return{anchor:o,total:t,hidden:t-$a}}).filter(o=>o.hidden>0)}function yp(e){let o=PN(e);return o.length===0?null:o.map(({anchor:t,total:r,hidden:a})=>{let n=gp[t],s=a===1?"1 is not shown":`${a} are not shown`;return`${n} holds ${r} boxes. The published page draws the first ${$a}, so ${s}. ${a===1?"Move it":"Move them"} somewhere else.`}).join(" ")}function vS(e,o){let t=o;if(t?.type!==Ri)return null;let r=t.props?.id===void 0?"":String(t.props.id);return r?_i(Sp(e,r),t):null}function Sp(e,o){let t=TS(e,o);return t&&t.ownerType===ON?t.siblings:[]}function kS(e,o){let t=TS(e,o);return t?t.ancestorTypes.filter(r=>r===Ri).length:EN}var EN=1,ON="HeroSlide";function TS(e,o){let t=(r,a,n)=>{if(a>12||!r||typeof r!="object")return null;if(yN(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 _N}from"react/jsx-runtime";var wp="sf-hint-keep";function PS({children:e}){return _N("span",{className:wp,children:e})}import{jsx as rr,Fragment as FN,jsxs as DS}from"react/jsx-runtime";import{useContext as LN,useEffect as BN,useId as DN,useState as NS}from"react";import{SettingsField as NN,SettingsSwitch as MN}from"efficient-easel/panel";import{AnchorIcon as HN}from"efficient-easel/icons";import{ScreenDocumentContext as zN}from"efficient-easel/screen/components/ScreenDocumentContext";import{Snippet as GN}from"efficient-shell/ui";import{slugify as WN}from"efficient-shell/format";import{slugify as RN}from"efficient-shell/format";function ds(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}var ES=e=>RN(ds(e));var Ai="homepage";import{slugify as AN}from"efficient-shell/format";var OS=[{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 _S(e){return e.offersCommerce&&e.offersService?OS:OS.filter(o=>!o.needs||(o.needs==="commerce"?e.offersCommerce:e.offersService))}var Cp="#popup:";function RS(e){return`${Cp}${e}`}function AS(e){return e.startsWith(Cp)&&e.slice(Cp.length).trim()||null}function fs(e){return e===Ai?"/":`/${e}`}function FS(e){return`/journal/${e}`}function $ae(e){return`/wheels/${e}`}function Fi(e,o){return`${fs(e)}#${o}`}function LS(...e){let o=new Set,t=[];for(let r of e)for(let a of r?.content??[]){let n=ds(a?.props?.anchor);if(!n)continue;let s=AN(n);!s||o.has(s)||(o.add(s),t.push({slug:s,name:n}))}return t}function jae(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 BS(e){return/^\/wheels\/[^/?#]+(?:[?#].*)?$/.test(e)}import{readHidable as UN}from"efficient-easel/draw";function MS({value:e,onChange:o,nameBox:t}){let r=UN(e).text,[a,n]=NS(!1),s=a||r.trim()!=="",l=DN();return DS(FN,{children:[rr(NN,{label:i("Add an anchor"),labelId:l,icon:rr(HN,{}),action:rr(MN,{checked:s,ariaLabelledBy:l,onChange:c=>{n(c),!c&&r!==""&&o("")}})}),s&&t(e,o),s&&rr($N,{name:r})]})}function $N({name:e}){let o=LN(zN),t=o?.templateId?"":o?.currentSlug??"",[r,a]=NS("");BN(()=>a(Ha()||window.location.origin),[]);let n=WN(e);if(!n||!t)return null;let s=`${r}${Fi(t,n)}`,l=s.replace(/^https?:\/\//,""),c=l.lastIndexOf("#");return rr("div",{className:"sf-anchor-link",children:rr(GN,{value:s,label:i("link"),size:"sm",children:DS("span",{className:"sf-anchor-link-text",children:[rr("span",{className:"sf-anchor-link-path",children:l.slice(0,c)}),rr("span",{className:"sf-anchor-link-hash",children:l.slice(c)})]})})})}import{AdjustIcon as T4,EyeIcon as P4,AnimationIcon as E4,BackgroundIcon as O4,BorderAllIcon as _4,BlockSectionIcon as R4,ColumnWidthsIcon as cv,ColumnsIcon as dv,CornerIcon as A4,DirectionDownIcon as F4,DirectionLeftIcon as L4,DirectionRightIcon as B4,DirectionUpIcon as D4,EditIcon as N4,GapIcon as M4,GridIcon as H4,GroundIcon as fv,HashIcon as uv,HeightIcon as z4,ImageIcon as G4,ListIcon as W4,LocationIcon as QC,PaddingBottomIcon as pv,PaddingLeftIcon as mv,PaddingRightIcon as hv,PaddingTopIcon as xv,PageIcon as U4,StickyIcon as $4,SearchIcon as j4,SquareIcon as K4,TypeIcon as q4,WidthIcon as V4}from"efficient-easel/icons";import{jsx as Me,Fragment as Gr,jsxs as Wr}from"react/jsx-runtime";import{CaptionIcon as jN,DateIcon as KN,FlagIcon as qN,TitleIcon as VN,ButtonIcon as YN,DollarIcon as XN,HashIcon as ZN,LinkIcon as JN,NoteIcon as QN,TagIcon as e2,TextLinesIcon as o2}from"efficient-easel/icons";var HS={body:o2,button:YN,link:JN,label:e2,number:ZN,price:XN,note:QN,name:qN,date:KN,caption:jN,title:VN},zS={eyebrow:Wr(Gr,{children:[Me("path",{d:"M5 6.5h5"}),Me("path",{d:"M5 12.5h14"}),Me("path",{d:"M5 18h11"})]}),heading:Wr(Gr,{children:[Me("path",{d:"M6.5 5v14"}),Me("path",{d:"M17.5 5v14"}),Me("path",{d:"M6.5 12h11"})]}),intro:Wr(Gr,{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:Wr(Gr,{children:[Me("rect",{x:"2.5",y:"7",width:"19",height:"10",rx:"2"}),Me("path",{d:"M6.5 12h7"})]}),quote:Wr(Gr,{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:Wr(Gr,{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:Wr(Gr,{children:[Me("path",{d:"M4 7h16"}),Me("path",{d:"M4 14h3.5"}),Me("path",{d:"M10.5 14h3"}),Me("path",{d:"M17 14h3"})]})};function vp({noun:e,size:o=14,strokeWidth:t=1.8,className:r,style:a}){let n=HS[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:zS[e]})}var lne=Object.keys(HS);var ine=Object.keys(zS);import{parseHexColor as t2}from"efficient-shell/format";var r2="#ffffff";function kp(e){return a2(e)?e:r2}function a2(e){return typeof e=="string"&&t2(e)===e.toLowerCase()}function fne(e){return{"--bg":kp(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(Tp(r,o,0))return{type:typeof a=="string"?a:"",props:n??{}}}return null}function Tp(e,o,t){if(t>12||!e||typeof e!="object")return!1;if(Array.isArray(e))return e.some(a=>Tp(a,o,t+1));let r=e.props;return r&&typeof r=="object"&&r.id===o?!0:Object.values(e).some(a=>Tp(a,o,t+1))}function WS(e,o){let t=e?.content;return Array.isArray(t)?Li(t,o,0)??[]:[]}function Li(e,o,t){if(t>12||!e||typeof e!="object")return null;if(Array.isArray(e)){for(let a of e){let n=Li(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=Li(a,o,t+1);if(n)return[r,...n]}return null}for(let a of Object.values(e)){let n=Li(a,o,t+1);if(n)return n}return null}import{SettingsDefaultReset as xo,SettingsDrill as Y4,SettingsField as Je,SettingsGroup as X4,SettingsGroupSub as Yde,SettingsSegmented as Z4,SettingsBorder as J4,SettingsSidesEach as Q4,SettingsSwitch as Em,borderSides as e3,borderStartEach as o3}from"efficient-easel/panel";import{ListField as t3}from"efficient-easel/fields";import{DisplayChips as r3}from"efficient-shell/ui";function ja(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 Bi(e,o){return ja(e)[o]!==!1}function Pp(e,o,t){let r=ja(o)[t];return typeof r=="boolean"?r:Bi(e,t)}function US(e){return Object.values(ja(e)).some(o=>o===!1)}function $S(e){return Object.keys(ja(e)).length>0}function jS(e,o,t){let r={...ja(e)};return t?delete r[o]:r[o]=!1,Object.keys(r).length?r:void 0}function KS(e,o,t){return{...ja(e),[o]:t}}function mne(e,o,t){let r=Bi(e,t),a=Pp(e,o,t);return r&&a?"":!r&&!a?"hidden":r?"max-view-tablet:hidden":"view-tablet:hidden"}import{AlignmentGrid as a3,Checkbox as efe,ColorSwatch as n3,CornersInput as s3,DatePicker as ofe,DateTimePicker as l3,FOCAL_DEFAULT as tfe,PictureTiles as i3,IconPicker as c3,IconButton as Iv,InputNumber as ev,Slider as d3,Tooltip as gc}from"efficient-shell/ui";import{backendOf as n2}from"efficient-easel/screen/lib/session";var Ge=n2,Di=e=>e.blocks;async function qS(e){let o=e.trim();if(!o)return null;let t=Ge().geocode;if(!t)throw new Error("geocode_unavailable");return t.locate(o)}var Ep="Lookup busy \u2014 try again in a moment.",Ni=e=>typeof e=="number"&&Number.isFinite(e);function Sne(e){return e.some(o=>{let t=o?.geocode;return t?t.pending||t.manual&&t.lat===void 0&&t.lng===void 0?!0:Ni(t.lat)&&t.lat!==o.lat||Ni(t.lng)&&t.lng!==o.lng:!1})}async function wne(e,o,{geocode:t=qS,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:Ep}})}}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=Ni(l.lat)&&l.lat!==s.lat?l.lat:s.lat,d=Ni(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 So,jsxs as _p}from"react/jsx-runtime";import{useRef as l2}from"react";import{ColorPicker as i2,ColorPickerPanel as c2,ColorSwatch as d2,HexInput as f2,Popover as u2,Tooltip as p2,colorFill as m2,colorSwatchClasses as h2,useShellStrings as x2}from"efficient-shell/ui";import{SettingsDefaultReset as I2,SettingsField as g2}from"efficient-easel/panel";import{typedHex as Op}from"efficient-easel/pick";import{typedHex as s2}from"efficient-easel/pick";function VS(e){let o=new Set,t=[];return so(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?s2(l):null;!c||o.has(c)||(o.add(c),t.push({name:s,value:c}))}}),t}var YS="Not set";function b2({value:e,onChange:o,label:t,id:r,caption:a,inherited:n,ariaLabel:s,choices:l}){return So(S2,{value:e,onChange:o,label:i(s??t),id:r,caption:a,inherited:n,choices:l})}function y2(){let{theme:e}=de();return VS(e).map(o=>({value:o.value,label:o.name}))}function S2({value:e,onChange:o,label:t,id:r,caption:a,inherited:n,choices:s}){let l=y2(),c=e?null:Op(n??""),d=a!==void 0&&(!e||Op(a)!==Op(e))?a:null,p=m=>{m!==e&&o(m)};return _p("div",{className:"sf-colour",children:[s?So(w2,{id:r,value:e,onChange:o,label:t,presets:l,follows:c,choices:s}):So(i2,{id:r,value:e,onChange:p,label:t,presets:l,fallback:c??void 0,size:"md",align:"start"}),d!==null?So("span",{className:"sf-colour-caption",children:d}):So("span",{className:"sf-colour-hexwrap",children:So(f2,{value:e||c||"",onChange:p,label:i("{label} hex code",{label:t}),placeholder:e||c?void 0:i(YS),className:c?"sf-colour-hex is-inherited":"sf-colour-hex",size:"md"})})]})}function w2({value:e,onChange:o,label:t,id:r,presets:a,follows:n,choices:s}){let l=x2().color,c=e||n||"",d=s.findIndex(f=>f.selected),p=d>=0,m=l2(d);return p&&(m.current=d),So(u2,{id:r,trigger:So("span",{"aria-hidden":"true",className:"absolute inset-0",style:m2(c)}),triggerLabel:l.swatch(t,c.toUpperCase()||l.none),triggerClassName:h2({size:"md"}),"aria-label":l.panel(t),align:"start",children:_p("div",{className:"sf-colour-window",children:[So("div",{role:"group","aria-label":t,className:"sf-colour-choices",children:s.map(f=>So(p2,{content:f.label,children:So(d2,{color:f.color,"aria-label":f.label,selected:f.selected,onClick:()=>{f.selected||f.onPick()}})},f.label))}),So(c2,{value:p?"":e,onChange:o,label:t,presets:a,fallback:(p?c:n)??void 0},m.current)]})})}function No({label:e,icon:o,changed:t,hint:r,onReset:a,resetTo:n,children:s,...l}){return _p(g2,{label:e,icon:o,htmlFor:l.id,changed:t,hint:r,action:a?So(I2,{words:oe()?.panel,label:e,changed:!!t,detail:n,onReset:a}):void 0,children:[b2({...l,label:e}),s]})}function us({label:e,icon:o,value:t,inherited:r,resetTo:a,onChange:n,onReset:s,hint:l,choices:c}){let d=!!t;return So(No,{label:e,icon:o,value:t,inherited:d?void 0:r,onChange:n,changed:d,onReset:s,resetTo:a,hint:l,choices:c})}import{keptByRow as f3}from"efficient-easel/screen/lib/document/style-fields";import{jsx as C2}from"react/jsx-runtime";import{useEffect as v2,useState as k2}from"react";import{clearRangeOf as T2,markSelection as P2,useCaretEdit as E2}from"efficient-easel/copy";import{TextToolbar as O2}from"efficient-shell/ui";function _2(e,o,t){return P2(e,o,t,My)}function XS(e,o){let t=T2(o,e.length),r=zy(e,t.start,t.end);return r.text===e?null:r}function R2(e){let[o,t]=k2(null);return v2(()=>{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 A2({target:e,value:o,onChange:t,disabled:r=!1,label:a="Formatting"}){let n=E2({target:e,onChange:t}),[s,l]=R2(e),c=f=>n(x=>{let g=_2(o,f,x);return l({start:g.selectionStart,end:g.selectionEnd}),g}),d=Dy(),p={};if(s)for(let f of d)p[f.style]=Hy(o,s.start,s.end,f.style);let m=r?null:XS(o,s);return C2(O2,{offered:new Set(d.map(f=>f.style)),onMark:f=>c(f),pressed:p,disabled:r,"aria-label":i(a),className:"sf-markup-bar",clear:m?{onClear:()=>n(()=>{let f=e.current,x=f&&f.ownerDocument.activeElement===f?{start:f.selectionStart??0,end:f.selectionEnd??0}:null,g=XS(o,x)??{text:o,selectionStart:x?.start??0,selectionEnd:x?.end??0};return l({start:g.selectionStart,end:g.selectionEnd}),g})}:void 0})}var Rp=A2;import{deviceField as Bt}from"efficient-easel/screen/lib/document/device-fields";import{NO_CONTROL_FIELD as u3,NoControlMark as p3,noControlField as gv}from"efficient-easel/screen/lib/document/panel-no-control-mark";var Ap="__ownBox";function ZS(e){return!!e&&typeof e=="object"&&e[Ap]===!0}function Mi(e,o,t){return typeof e=="number"?e:typeof o=="number"?o:t}var Hi=void 0;import{phoneKey as Ft,tabletKey as tn}from"efficient-easel/draw";import{jsx as Lp,Fragment as B2}from"react/jsx-runtime";import{createContext as D2,useContext as N2}from"react";var zi={ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},Gi={Events:["posts"],SubscribeBlogs:["posts"]};var F2=["anchor"],L2=/^href$|Href$|^url$|Url$|^link$|^mailto$|^tel$/;function ps(e){return F2.includes(e)||L2.test(e)}var Fp={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"}}};Fp.ContactLocations={"locations[].lat":{verb:"pii"},"locations[].lng":{verb:"pii"},"locations[].mapsUrl":{verb:"pii"},"locations[].geocode":{verb:"pii"}};var Xne=Object.fromEntries(Object.entries(zi).map(([e,o])=>[e,Object.keys(o)])),Zne=Object.fromEntries(Object.entries(Gi).map(([e,o])=>[e,[...o]]));import{NoControlMark as M2}from"efficient-easel/screen/lib/document/panel-no-control-mark";var JS=D2(!1);function QS({children:e}){return Lp(JS.Provider,{value:!0,children:e})}function H2(){return N2(JS)}function ew({name:e,children:o}){return!H2()||!e||!z2(e)||ps(e)?Lp(B2,{children:o}):Lp(M2,{})}function z2(e){return/^[A-Za-z0-9_$]+$/u.test(e)}var Bp="off",Dp="none",Np=[{label:"None",value:"off"},{label:"1, 2, 3",value:"plain"},{label:"01, 02, 03",value:"padded"},{label:"N\xB001, N\xB002",value:"numero"}],Mp=[{label:"None",value:"none"},{label:"Hairline",value:"hairline"}];function nse(e){return oo(Np,Bp,e)}function sse(e){return oo(Mp,Dp,e)}var ow="sf-card-index",ms="sf-card-index",lse="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",G2={plain:`counter(${ms})`,padded:`counter(${ms}, decimal-leading-zero)`,numero:`"N\xB0" counter(${ms}, decimal-leading-zero)`};function ise(e,o){return o==="off"?"":`.${e}{counter-reset:${ms}}.${e} .${ow}{counter-increment:${ms}}.${e} .${ow}::before{content:${G2[o]}}`}function cse(e){return e==="hairline"?"border border-line hover:border-accent":""}var tw=[{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 m3}from"efficient-easel/draw";import{jsx as bt}from"react/jsx-runtime";import{SettingsDefaultReset as W2,SettingsField as rw}from"efficient-easel/panel";import{useSelectedHost as U2}from"efficient-easel/easel";import{FOCAL_DEFAULT as $2}from"efficient-shell/format";import{ImageIcon as aw,PlayIcon as nw}from"efficient-easel/icons";import{MediaUploadField as j2}from"efficient-shell/ui";import{useContext as K2}from"react";import{ScreenDocumentContext as q2}from"efficient-easel/screen/components/ScreenDocumentContext";import{phoneKey as V2}from"efficient-easel/draw";import{usePreviewDevice as Y2}from"efficient-easel/draw/client";import{shownTier as sw}from"efficient-easel/screen/lib/document/device-fields";import{onDesktopWords as X2}from"efficient-easel/screen/lib/document/box-fields";import{requestMediaPick as Z2}from"efficient-easel/screen/lib/media-picker";import{useEaselHost as J2}from"efficient-easel/screen/lib/host";import{useEaselSession as Q2}from"efficient-easel/screen/lib/session-context";function eM(e,o,t){if(sw(t)==="tablet")return null;let r=sw(t)==="mobile",a=typeof e[o]=="string"&&e[o]?String(e[o]):$2,n=V2(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 oM(e,o){let t=U2(),r=Y2();if(!e||!t)return null;let a=t.values??{};if(o&&!o(a))return null;let n=eM(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,Hi)}}function lw({value:e,onChange:o,label:t,accept:r,placeholder:a,focusKey:n,focusWhen:s,frameKey:l,fieldKey:c}){let d=J2(),p=Q2(),m=i(t),f=r.startsWith("video"),x=oM(f?void 0:n,s),g=K2(q2),y=Hp(),k=l&&c?{video:c,frame:l}:null,O=v=>Z2(d,{accept:r,title:m,...v?{file:v}:{}}).then(A=>!A||!k?A?.url??null:(y({[k.video]:A.url,[k.frame]:A.posterUrl??""}),null)),w=k?v=>v?o(v):y({[k.video]:"",[k.frame]:""}):o;if(g&&!g.capabilities.mediaEditing)return bt(rw,{label:m,icon:f?bt(nw,{}):bt(aw,{}),children:bt("div",{className:"sf-image-slot-inert",children:f?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=tr(e),C=x?.phone&&I?bt(W2,{words:oe()?.panel,label:i("Image focus"),changed:!!x.own,detail:X2(v=>i(v),x.desktop),onReset:x.clear}):void 0;return bt(rw,{label:m,icon:f?bt(nw,{}):bt(aw,{}),action:C,children:bt("div",{style:{flex:"1 1 auto",minWidth:0},children:bt(j2,{value:I,onChange:w,onPick:O,accept:f?"video/*":"image/*",kind:f?"video":"image",placeholder:a===void 0?void 0:i(a),maxSizeBytes:Ge(p).media.maxUploadBytes,...x?{focus:x.focus,onFocusChange:x.set}:{}})})})}import{jsx as iw}from"react/jsx-runtime";import{useId as tM}from"react";import{FieldSelect as rM}from"efficient-easel/fields";import{SettingsField as aM}from"efficient-easel/panel";function nM(e){return e.map(({value:o,label:t,note:r})=>({value:o,label:t,...r?{meta:r}:{}}))}function cw({label:e,options:o,value:t,onChange:r,emptyLabel:a,icon:n,hint:s}){let l=tM(),c=`${l}-label`,d=`${l}-button`,p=Array.isArray(t)?t:[];return iw(aM,{label:i(e),labelId:c,icon:n,hint:s,children:iw(rM,{id:d,multiple:!0,value:p,options:nM(o),onChange:r,placeholder:a===void 0?i("None"):i(a),ariaLabelledBy:`${c} ${d}`,inline:!0})})}import{jsx as Ze,jsxs as $r,Fragment as HM}from"react/jsx-runtime";import{useCallback as kw,useContext as zM,useId as Ew,useRef as Tw,useState as Pw}from"react";import{ThemeIcon as GM}from"efficient-easel/icons";import{Button as WM,useClickOutside as UM}from"efficient-shell/ui";import{SettingsField as $M}from"efficient-easel/panel";import{ScreenDocumentContext as jM}from"efficient-easel/screen/components/ScreenDocumentContext";import{jsx as te,jsxs as nr,Fragment as mM}from"react/jsx-runtime";import{parseHexColor as hM}from"efficient-shell/format";import{Button as Gp,IconButton as xM,Tooltip as IM}from"efficient-shell/ui";import{jsx as ar,jsxs as sM}from"react/jsx-runtime";import{AccentIcon as lM}from"efficient-easel/icons";import{Button as iM,Tooltip as cM}from"efficient-shell/ui";function zp(e){return bo(e).background}function dM(e){let o=Zt(e.accent,zp(e));return o===null?null:{ratio:o,grade:Da(o)}}function fM(e){let o=zp(e),t=Zt(e.accent,o);return t===null?[]:db(e.accent).filter(r=>{let a=Zt(r,o);return a!==null&&a>t&&Da(a)==="good"})}var uM={good:"Easy to read","large-only":Ba["large-only"],hard:Ba.hard};function dw({value:e,onChange:o}){let t=dM(e),r=t?.grade,a=t&&t.grade!=="good"?fM(e):[];return ar(No,{label:i("Main color"),icon:ar(lM,{}),hint:t?i(uM[t.grade]):void 0,value:e.accent,onChange:n=>o({...e,accent:n}),children:a.length>0?ar("div",{className:"w-full min-w-0",children:sM("div",{className:"sf-readability",children:[ar("p",{className:"sf-readability-advice",children:pM(r,!0)}),ar("div",{className:"sf-readability-suggestions",children:a.map(n=>{let s=Zt(n,zp(e));return ar(cM,{content:i("Use {colour}",{colour:n.toUpperCase()}),children:ar(iM,{variant:"secondary",className:"sf-readability-suggestion",leftIcon:ar("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 pM(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 gM,ChevronDownIcon as uw,ChevronUpIcon as bM,GroundIcon as yM,LayoutIcon as SM,SquareIcon as wM,TextSmallIcon as CM,TypeIcon as fw}from"efficient-easel/icons";var hs=e=>i("Theme {n}",{n:e+1});function pw({colors:e}){let o=bo(e),t=Vn(e)??o.accent;return nr("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")}),nr("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")}),nr("span",{className:"sf-theme-row",children:[te("span",{className:"sf-theme-btn",style:{background:t,color:gu(e,o.accent)},children:i("button")}),te("span",{className:"sf-theme-mini",style:{background:o.surface,borderColor:o.line},children:i("card")})]})]})}var Wp={"Text color":te(fw,{}),"Label color":te(CM,{}),Background:te(yM,{}),"Panels & cards":te(SM,{}),Borders:te(wM,{}),"Button color":te(gM,{}),"Button text color":te(fw,{})};function vM({label:e,colorKey:o,value:t,onChange:r,idPrefix:a="sf-theme-ink"}){let n=`${a}-${o}`;return te(No,{label:i(e),icon:Wp[e],id:n,value:t,onChange:s=>r(o,s)})}function kM({value:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button`,n=e!==void 0&&hM(e)===e.toLowerCase(),s=n?e:o;return te(No,{label:i("Button color"),icon:Wp["Button color"],id:a,value:s,caption:n?s:i("Main"),onChange:t})}function TM({colors:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button-ink`,n=fb(e),s=gu(e,o),l=Vn(e)??o,c=Da(Zt(s,l)??0);return te(No,{label:i("Button text color"),icon:Wp["Button text color"],hint:n&&c!=="good"?i("{grade} on the button",{grade:i(Ba[c])}):void 0,id:a,value:s,caption:n?s:i("Auto"),onChange:t})}var PM=[{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 Up({colors:e,onChange:o,idPrefix:t}){let r=bo(e);return te(mM,{children:PM.map(a=>"colour"in a?te(dw,{value:e,onChange:o},"colour"):"moduleBreak"in a?te("div",{className:"sf-theme-module-break","aria-hidden":"true"},"module-break"):"button"in a?te(kM,{value:e.button,accent:r.accent,onChange:n=>o({...e,button:n}),idPrefix:t},"button"):"buttonInk"in a?te(TM,{colors:e,accent:r.accent,onChange:n=>o({...e,buttonInk:n}),idPrefix:t},"buttonInk"):te(vM,{label:a.label,colorKey:a.key,value:r[a.key],onChange:(n,s)=>o({...e,[n]:s}),idPrefix:t},a.key))})}function Wi({index:e,colors:o,selected:t,role:r="radio",open:a,editable:n=!0,onPick:s,onEdit:l,onChangeColors:c}){let d=bo(o),p=hs(e),m=e<Iu.length&&!o.brandInk?Iu[e]:null,f=Da(Zt(d.text,d.background)??0),x=m?JSON.stringify(o)!==JSON.stringify(m):!1,g=a!==void 0;return nr("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(pw,{colors:o})}),nr("div",{className:"sf-theme-foot",children:[te("span",{className:"sf-theme-name",children:p}),f!=="good"&&te("span",{className:"sf-theme-warn",children:i(Ba[f])}),n&&l&&g&&te("span",{className:"sf-theme-edit",children:te(IM,{content:a?i("Collapse"):i("Edit colors"),children:te(xM,{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(bM,{size:14}):te(uw,{size:14})})})}),n&&l&&!g&&te(Gp,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":i("Edit {name}",{name:p}),onClick:l,children:i("Edit")})]}),a&&nr("div",{id:`sf-theme-colours-${e}`,className:"sf-theme-colours",children:[te(Up,{colors:o,onChange:y=>c?.(y)}),m&&te(Gp,{variant:"link",size:"sm",className:"sf-theme-reset",disabled:!x,onClick:()=>c?.({...m}),children:x?i("Reset {name} to the preset",{name:p}):i("Not changed")})]})]})}function mw({colors:e,name:o,nameId:t,open:r,menuId:a,labelId:n,buttonRef:s,onClick:l,onKeyDown:c,onEdit:d}){return nr("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(pw,{colors:e}):te("span",{className:"sf-secttheme-nopreview","aria-hidden":"true"})}),nr("div",{className:"sf-theme-foot",children:[te("span",{id:t,className:"sf-theme-name",children:o}),d&&te(Gp,{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(uw,{size:12,className:"sf-multi-caret","aria-hidden":"true"})})]})]})}import{useCallback as Yp,useEffect as bw,useRef as Ki}from"react";import{currentEaselSession as _M}from"efficient-easel/screen/lib/session";import{useEaselSession as RM}from"efficient-easel/screen/lib/session-context";import{useSyncExternalStore as EM}from"react";var xw,$p=null,Ur=null,Ui=0,jp=new Set;function Kp(e){xw=e;for(let o of jp)o()}function qp(e){$p=e,Ui+=1,Ur&&clearTimeout(Ur),Ur=null,Kp(void 0)}function $i(e){Ui+=1,Kp(e)}function Rt(e=250){$p&&(Ur&&clearTimeout(Ur),Ur=setTimeout(()=>{Ur=null;let o=$p;if(!o)return;let t=++Ui;o().then(r=>{t===Ui&&Kp(r)}).catch(()=>{})},e))}function hw(){return xw}function OM(e){return jp.add(e),()=>{jp.delete(e)}}function ji(){return EM(OM,hw,hw)}var Vp=new Set;function Iw(e){return Vp.add(e),()=>{Vp.delete(e)}}async function gw(){let e=(await Promise.allSettled([...Vp].map(async o=>o()))).find(o=>o.status==="rejected");if(e)throw e.reason}import{WebsiteBackendError as AM}from"efficient-easel/screen/lib/backend-error";function yw(e=_M()){return(o,t,r)=>{let a=Ge(e).theme;return a?a.update(o,r?{siteId:r}:void 0):Promise.reject(new AM("invalid","This backend stores no site theme."))}}function Sw(e){return e.themeFromDocument?{status:"skipped",reason:"template"}:e.token?null:{status:"skipped",reason:"no-token"}}async function FM(e,o=yw()){let{themeFromDocument:t,token:r,siteId:a,patch:n}=e,s=Sw({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 Ka({themeFromDocument:e,tokenRef:o,siteId:t,onResult:r}){let a=Ki(null),n=Ki({}),s=RM(),l=Ki(r);l.current=r;let c=Ki(null),d=Yp(f=>{if(f.status==="skipped"){let x=`skipped:${f.reason}`;if(c.current===x)return;c.current=x}else c.current=null;l.current?.(f)},[]),p=Yp(async()=>{a.current&&(clearTimeout(a.current),a.current=null);let f=n.current;n.current={};let x=await FM({themeFromDocument:e,token:o?.current,siteId:t,patch:f},yw(s));return d(x),x.status==="saved"&&Rt(),x.status==="failed"&&(n.current={...f,...n.current}),x},[e,o,t,d,s]),m=Yp((f,x=!1)=>{let g=Sw({themeFromDocument:e,token:o?.current});if(g){d(g);return}n.current={...n.current,...f},a.current&&clearTimeout(a.current),x?p():a.current=setTimeout(()=>{p()},500)},[e,o,p,d]);return bw(()=>()=>{p()},[p]),bw(()=>Iw(async()=>{if(!a.current&&Object.keys(n.current).length===0)return;let f=await p();if(f.status==="failed")throw f.error}),[p]),{persist:m,flush:p}}var Xp=[{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}],LM=Xp.filter(e=>e.ink);function BM(e){let o={color:e.fg};for(let{role:t,token:r}of LM)o[r]=e[t];return o}var DM={fg:"var(--overlay-fg)",line:"color-mix(in srgb, var(--overlay-fg) 24%, transparent)",muted:"color-mix(in srgb, var(--overlay-fg) 76%, transparent)"},ww=Object.freeze(BM(DM));var sr=-1,NM="sf-section-accent",Cw="Color",vw=new Set(["CategoryBar","DocTabs"]),mle=new Set(["Flex"]),Zp=0;function Yo(e){return e===sr?null:typeof e=="number"&&Number.isInteger(e)&&e>=0?e:Zp}function Jp(e){return e??sr}function MM(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 Xp)t[`--sf-sec-${r}`]=`var(${o}-${r}, var(--theme-${r}))`;return t}function hle(e){let o=Yo(e.sectionAccent);return o===null?null:{className:NM,style:MM(o)}}var KM="Follow the page",Ole="Follow the slideshow",qM=e=>i("Editing {name} changes it everywhere.",{name:e});function VM({colors:e}){if(!e)return Ze("span",{className:"sf-secttheme-chip sf-secttheme-chip--none","aria-hidden":"true"});let o=bo(e);return $r("span",{className:"sf-secttheme-chip","aria-hidden":"true",children:[Ze("i",{style:{background:o.background}}),Ze("i",{className:"sf-secttheme-chip-accent",style:{background:o.accent}})]})}function YM({themes:e,value:o,onPick:t,onEdit:r,menuId:a,followLabel:n}){return $r("div",{className:"sf-multi-menu sf-secttheme-menu",id:a,role:"listbox",children:[n!==void 0&&$r(HM,{children:[$r("button",{type:"button",role:"option","aria-selected":o===null,className:`sf-secttheme-item${o===null?" is-active":""}`,onClick:()=>t(sr),children:[Ze(VM,{}),Ze("span",{className:"sf-secttheme-name",children:i(n)})]}),Ze("div",{className:"sf-secttheme-sep",role:"presentation"})]}),o!==null&&e[o]&&Ze("p",{className:"sf-secttheme-oncard",role:"presentation",children:i("{name} is on this section",{name:hs(o)})}),e.map((s,l)=>l===o?null:Ze(Wi,{role:"option",index:l,colors:s,selected:!1,onPick:()=>t(l),onEdit:()=>r(l)},l))]})}function XM({index:e,colors:o,onChange:t,onDone:r}){let a=hs(e),n=Ew();return $r("div",{className:"sf-secttheme-sheet",children:[$r("div",{className:"sf-secttheme-sheet-head",children:[Ze("span",{children:a}),Ze(WM,{variant:"secondary",className:"sf-secttheme-done",onClick:r,children:i("Done")})]}),Ze("div",{className:"sf-secttheme-rows",children:Ze(Up,{colors:o,onChange:t,idPrefix:n})}),Ze("p",{className:"sf-secttheme-warn",children:qM(a)})]})}function Ow({value:e,onChange:o,followLabel:t,hint:r}){let{theme:a,setTheme:n}=de(),s=so(a),l=zM(jM),c=l?.tokenRef,d=l?.siteId??null,p=!l?.capabilities?.hasSiteTheme,{persist:m,flush:f}=Ka({themeFromDocument:p,tokenRef:c,siteId:d}),x=so(s),g=x.themes,y=Yo(e),k=y!==null?g[y]:void 0,O=k??(g.length?La(x):void 0),[w,I]=Pw(!1),[C,v]=Pw(null),A=Tw(null),E=Tw(null),L=Ew(),T=kw(()=>{I(!1),v(null)},[]),R=kw(()=>{!w&&C===null||(f(),T())},[w,C,T,f]);UM(A,R);let N=_=>{o(_),T()},b=_=>{if(C===null)return;let F=g.map((Z,q)=>q===C?_:Z),H={...x,themes:F};n(H),m({selected_preset:H.selected,theme_presets:H.themes})};return $r("div",{className:"sf-secttheme",ref:A,children:[Ze($M,{label:i("Theme"),icon:Ze(GM,{}),labelId:`${L}-label`,hint:r,children:Ze(mw,{colors:O,onEdit:y!==null?()=>{v(y),I(!1)}:void 0,name:k?hs(y):i(t??KM),nameId:`${L}-value`,labelId:`${L}-label`,open:w,menuId:L,buttonRef:E,onClick:()=>{v(null),I(_=>!_)},onKeyDown:_=>{_.key==="Escape"&&(w||C!==null)&&(_.preventDefault(),T())}})}),w&&C===null&&Ze("div",{onKeyDown:_=>{_.key==="Escape"&&(_.preventDefault(),T(),E.current?.focus())},children:Ze(YM,{themes:g,value:y,onPick:N,onEdit:_=>{v(_),I(!1)},menuId:L,followLabel:t})}),C!==null&&g[C]&&Ze(XM,{index:C,colors:g[C],onChange:b,onDone:()=>{f(),T(),E.current?.focus()}})]})}import{jsx as _w}from"react/jsx-runtime";import{useId as ZM}from"react";import{FieldSelect as JM}from"efficient-easel/fields";import{SettingsField as QM}from"efficient-easel/panel";function eH(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 Dle({label:e,options:o,fallback:t,value:r,onChange:a,placeholder:n,bare:s=!1,icon:l}){let c=ZM(),d=`${c}-label`,p=`${c}-button`,m=r??"",f=o.some(k=>k.value===m)?m:t,x=i(e),g=n===void 0?void 0:i(n),y=_w(JM,{id:p,value:f,options:eH(o),onChange:a,placeholder:g,searchPlaceholder:g,...s?{ariaLabel:x}:{ariaLabelledBy:`${d} ${p}`},searchable:!0,groupCount:!0,inline:!0});return s?y:_w(QM,{label:x,labelId:d,icon:l,children:y})}import{jsx as Kr,jsxs as RH}from"react/jsx-runtime";import{SettingsField as oC}from"efficient-easel/panel";import{LinkIcon as AH}from"efficient-easel/icons";import{LinkPicker as FH,TextLinkField as LH}from"efficient-shell/ui";import{useEffect as eC,useMemo as Xi,useRef as BH,useState as Yi}from"react";import{currentEaselSession as oH}from"efficient-easel/screen/lib/session";function Rw(){return oH().auth.token}import{currentEaselSession as DH}from"efficient-easel/screen/lib/session";import{useScreenDocument as NH}from"efficient-easel/screen/components/ScreenDocumentContext";var tH=()=>({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 Aw(e,o,t){if(!e)return"page";if(AS(e))return"popup";if(e.startsWith("/journal/"))return"blog";if(BS(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 Qp(e,o){let t=tH(),r=e.pages.map(p=>({value:fs(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:LS(...p.docs).map(m=>({value:Fi(p.slug,m.slug),label:m.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(m=>({value:FS(m.slug),label:m.title||m.slug})),placeholder:t.choosePost};case"product":return{type:"select",options:e.products.map(m=>({value:m.href,label:m.name||m.href})),placeholder:t.chooseProduct};case"popup":return{type:"select",options:(e.popups??[]).map(m=>({value:RS(m.slug),label:m.title||m.slug})),placeholder:t.choosePopup};case"custom":return{type:"text"}}},c=_S(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=>Aw(p,n),targetOf:p=>p,readFilter:()=>null,withFilter:p=>p}};let d=p=>{let m=o.withFilter(p,null);return o.listingPaths.includes(m)?m:p};return{kinds:c,rules:{kindOf:p=>Aw(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 MH}from"efficient-easel/screen/lib/session-context";var U=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function lo(e,o){if(typeof e=="string")return e||o;if(e&&typeof e=="object"&&"text"in e){let t=e.text;return ee(t)??o}return o}function Fw(e,o){return U(e)??o}function lr(e,o){return typeof e=="boolean"?e:o}function qi(e,o){if(!Array.isArray(e))return o;let t=e.map(r=>typeof r=="string"?r:lo(r?.text,"")).map(r=>r.trim()).filter(Boolean);return t.length?t:o}var Bw=["delay","scroll","exit"],Dw=["all","chosen","except"],Nw=["visit","days","never","once"],rH=["all","desktop","phone"],aH=["stop","continue"],Mw={min:0,max:60},Hw={min:10,max:90},zw={min:1,max:90},Zo={autoOpen:!1,trigger:"delay",autoOpenDelaySec:15,scrollPercent:50,showOn:"all",showOnPages:[],devices:"all",hideAfter:"days",hideDays:7,afterSubmit:"stop",startDate:null,endDate:null};function Xo(e,o,t){return typeof o=="string"&&e.includes(o)?o:t}function qa(e,o,t){let r=Fw(e,t);return Math.min(o.max,Math.max(o.min,Math.round(r)))}function nH(e){return typeof e.hideAfter=="string"?Xo(Nw,e.hideAfter,Zo.hideAfter):e.oncePerSession===!0?"visit":e.oncePerSession===!1?"never":Zo.hideAfter}function sH(e){return Array.isArray(e)?e.map(o=>typeof o=="string"?o.trim():"").filter(Boolean).map(o=>o.startsWith("/")?o:`/${o}`):[]}function Lw(e){if(typeof e!="string")return null;let o=e.trim();return/^\d{4}-\d{2}-\d{2}$/.test(o)?o:null}function Gw(e){let o=e??{},t=Zo;return{autoOpen:lr(o.autoOpen,t.autoOpen),trigger:Xo(Bw,o.trigger,t.trigger),autoOpenDelaySec:qa(o.autoOpenDelaySec,Mw,t.autoOpenDelaySec),scrollPercent:qa(o.scrollPercent,Hw,t.scrollPercent),showOn:Xo(Dw,o.showOn,t.showOn),showOnPages:sH(o.showOnPages),devices:Xo(rH,o.devices,t.devices),hideAfter:nH(o),hideDays:qa(o.hideDays,zw,t.hideDays),afterSubmit:Xo(aH,o.afterSubmit,t.afterSubmit),startDate:Lw(o.startDate),endDate:Lw(o.endDate)}}import{parseHexColor as lH}from"efficient-shell/format";var Jo="#000000";var em="popup",iH=Ua,cH=["auto","full"],dH=["inside","outside","none"],fH={min:240,max:1440},uH={min:0,max:100},xs={placement:"center",fullWidth:!1,width:720,height:"auto",tintColor:Jo,tintOpacity:60,outsideClick:!0,closeButton:"inside"};function pH(e,o){let t=typeof e=="string"?e.trim():"";return t&&lH(t)===t.toLowerCase()?t:o}function Ww(e,o=xs){let t=e??{},r=o;return{placement:Xo(iH,t.placement,r.placement),fullWidth:lr(t.fullWidth,r.fullWidth),width:qa(t.width,fH,r.width),height:Xo(cH,t.height,r.height),tintColor:pH(t.tintColor,r.tintColor),tintOpacity:qa(t.tintOpacity,uH,r.tintOpacity),outsideClick:lr(t.outsideClick,r.outsideClick),closeButton:Xo(dH,t.closeButton,r.closeButton)}}var Uw="cart-drawer",aie="cart-drawer",mH={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 nie(e,o){return o===0?e.subtitleEmpty:o===1?e.subtitleOne:e.subtitleMany.replace("{count}",String(o))}function sie(e){let o=e??{},t=mH;return{kickerBadge:lo(o.kickerBadge,t.kickerBadge),kickerText:lo(o.kickerText,t.kickerText),titleLead:lo(o.titleLead,t.titleLead),titleAccent:lo(o.titleAccent,t.titleAccent),subtitleEmpty:lo(o.subtitleEmpty,t.subtitleEmpty),subtitleOne:lo(o.subtitleOne,t.subtitleOne),subtitleMany:lo(o.subtitleMany,t.subtitleMany),leadTimeValue:lo(o.leadTimeValue,t.leadTimeValue),shipsToFallback:lo(o.shipsToFallback,t.shipsToFallback),promises:qi(o.promises,t.promises),emptyKicker:lo(o.emptyKicker,t.emptyKicker),emptyBody:lo(o.emptyBody,t.emptyBody)}}var lie={...xs,width:520,tintOpacity:68};var jw="consent-banner",fie="consent-banner";var hH=[{value:"bar",label:"Bar"},{value:"card",label:"Card"}],uie="Layout",$w={layout:"bar"},xH=e=>hH.some(o=>o.value===e);function pie(e){let o=lo((e??{}).layout,$w.layout);return{layout:xH(o)?o:$w.layout}}var mie={...xs,placement:"bottom-center",fullWidth:!0,width:440,tintOpacity:0,outsideClick:!1,closeButton:"none"};var IH="consentWords",gH=["eyebrow","notice","accept","reject","choose"];function om(e){let o=(e??{})[IH];return typeof o=="string"&&gH.includes(o)?o:null}function tm(e){let o=e?.props;return o?om(o)!==null?!0:Object.values(o).some(t=>Array.isArray(t)&&t.some(r=>r&&typeof r=="object"&&"props"in r&&tm(r))):!1}var bH=["meta","eyebrow","heading","body","statName","statValue","formEyebrow","formHeading","formIntro","fieldLabel","option","finePrint","dismiss","doneHeading","doneBody"],Iie={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"},yH={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"},gie={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 Kw(e){let o={};for(let t of bH){let r=Pt(e[yH[t]]);r&&(o[t]=r)}return o}var qw={heading:"Join our email list",placeholder:"Email address",buttonLabel:"Subscribe"},SH={lead:"We accept"},Vw={...SH,methods:[],size:"sm",align:"start",dataSource:"shop-payment-methods"},Qo="site-footer";var yie=Qo,Sie={desktop:!0,tablet:!0,mobile:!0},wie={desktop:!1,tablet:!1,mobile:!1},rm=1,Yw=6,Cie=Array.from({length:Yw-rm+1},(e,o)=>rm+o),Vi={desktop:6,tablet:3,mobile:2},wH={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}},jr=e=>Math.min(Math.max(Math.round(e),rm),Yw);function vie(e){if(typeof e=="number")return wH[jr(e)]??{desktop:jr(e),tablet:jr(e),mobile:jr(e)};if(e&&typeof e=="object"){let o=e;return{desktop:jr(o.desktop??Vi.desktop),tablet:jr(o.tablet??Vi.tablet),mobile:jr(o.mobile??Vi.mobile)}}return{...Vi}}var am="subscribe-popup",Aie="subscribe-popup",CH=[am,Qo,Uw,jw];function Zw(e){return CH.includes(e)}var vH=["right","left"],kH={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:Zo.autoOpen,autoOpenDelaySec:Zo.autoOpenDelaySec,formSlug:"",trigger:Zo.trigger,scrollPercent:Zo.scrollPercent,showOn:Zo.showOn,showOnPages:[],hideAfter:Zo.hideAfter,hideDays:Zo.hideDays,formSide:"right",valuePanelOnPhone:!1,sectionAccent:void 0,sectionCorners:void 0,sectionCornerSides:void 0,textStyles:{}},We=lo,TH=lr,Jw=qi;function Xw(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 PH(e,o){return Array.isArray(e)?Jw(e,[]):o}function EH(e,o){return Array.isArray(e)?e.map(t=>{let r=t??{};return{label:We(r.label,""),value:We(r.value,"")}}).filter(t=>t.label||t.value):o}function Lie(e){let o=e??{},t=kH,r=Gw(o);return{metaLabel:We(o.metaLabel,t.metaLabel),issueLabel:Xw(o.issueLabel,t.issueLabel),issueNumber:Xw(o.issueNumber,t.issueNumber),kicker:We(o.kicker,t.kicker),heading:We(o.heading,t.heading),deck:We(o.deck,t.deck),stats:EH(o.stats,t.stats),formLabel:We(o.formLabel,t.formLabel),formHeading:We(o.formHeading,t.formHeading),formIntro:We(o.formIntro,t.formIntro),firstNameLabel:We(o.firstNameLabel,t.firstNameLabel),firstNamePlaceholder:We(o.firstNamePlaceholder,t.firstNamePlaceholder),emailLabel:We(o.emailLabel,t.emailLabel),emailPlaceholder:We(o.emailPlaceholder,t.emailPlaceholder),interestsLabel:We(o.interestsLabel,t.interestsLabel),interests:Jw(o.interests,t.interests),frequencyLabel:We(o.frequencyLabel,t.frequencyLabel),frequencies:PH(o.frequencies,t.frequencies),submitText:We(o.submitText,t.submitText),finePrint:We(o.finePrint,t.finePrint),dismissText:We(o.dismissText,t.dismissText),emailInvalidText:We(o.emailInvalidText,t.emailInvalidText),submitErrorText:We(o.submitErrorText,t.submitErrorText),successHeading:We(o.successHeading,t.successHeading),successBody:We(o.successBody,t.successBody),keepBrowsingText:We(o.keepBrowsingText,t.keepBrowsingText),formSlug:typeof o.formSlug=="string"?o.formSlug.trim():t.formSlug,autoOpen:r.autoOpen,autoOpenDelaySec:r.autoOpenDelaySec,trigger:r.trigger,scrollPercent:r.scrollPercent,showOn:r.showOn,showOnPages:r.showOnPages,hideAfter:r.hideAfter,hideDays:r.hideDays,formSide:Xo(vH,o.formSide,t.formSide),valuePanelOnPhone:TH(o.valuePanelOnPhone,t.valuePanelOnPhone),sectionAccent:o.sectionAccent,sectionCorners:o.sectionCorners,sectionCornerSides:o.sectionCornerSides,textStyles:Kw(o)}}function OH(e,o=Math.random){for(;;){let t=`popup-${Math.floor(o()*2176782336).toString(36).padStart(6,"0")}`;if(!e.has(t))return t}}function _H(e){return{root:{props:{title:e,kind:em}},content:[],zones:{}}}function Qw(e,o,t){return{slug:OH(o,t),title:e,kind:dp,layout:_H(e)}}function Is(e){return e?.root?.props?.kind===em}function tC(e){let o=new Map;return(t="")=>{let r=Rw(),a=o.get(t);if(!a||a.token===null&&r!==null){let n=r||!DH().usesBridgedToken?e(r??"",t).catch(()=>[]):Promise.resolve([]);return o.set(t,{promise:n,token:r}),n}return a.promise}}var HH=tC(async(e,o)=>{let t=o?{siteId:o}:void 0,{pages:r}=Ge();return r.linkTargets?r.linkTargets(t):(await r.list(t)).map(a=>({id:a.id,slug:a.slug,label:a.label,layout:null}))}),zH=tC(async(e,o)=>await Ge().blog?.posts(o?{siteId:o}:void 0)??[]);function GH({value:e,onChange:o,label:t="Link",data:r,filters:a}){let n=Xi(()=>Qp(r,a),[r,a]),s=i(t);return Kr(oC,{label:s,icon:Kr(AH,{}),children:Kr(FH,{value:e,onChange:l=>o(l),kinds:n.kinds,rules:n.rules,filtersFor:n.filtersFor,label:s})})}function rC(){let{siteId:e,capabilities:o}=NH(),{offersCommerce:t,hasBlog:r}=o,[a,n]=Yi([]),[s,l]=Yi([]),[c,d]=Yi([]),[p,m]=Yi(null),f=MH().chrome,x=f?.products?.list,g=f?.linkFilters,y=g?void 0:f?.linkRow,k=BH(!0);eC(()=>(k.current=!0,()=>{k.current=!1}),[]),eC(()=>{let I=!0;return HH(e??void 0).then(C=>I&&k.current&&n(C)),r&&zH(e??void 0).then(C=>I&&k.current&&l(C)),t&&x?.().then(C=>I&&k.current&&d(C)),t&&g?g.load(e).catch(()=>null).then(C=>I&&k.current&&m(()=>C)):m(null),()=>{I=!1}},[e,t,r,x,g]);let O=Xi(()=>({pages:a.filter(I=>!Zw(I.slug)&&!Is(I.layout)).map(I=>({slug:I.slug,title:I.label,docs:[I.layout]})),popups:a.filter(I=>I.slug===am||Is(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=Xi(()=>p?p(O.pages):null,[p,O]);return{data:O,filters:w,pages:a,offersCommerce:t,HostLinkRow:y}}function ece({label:e,icon:o,text:t,onTextChange:r,link:a,onLinkChange:n}){let{data:s,filters:l}=rC(),c=Xi(()=>Qp(s,l),[s,l]),d=i(e);return Kr(oC,{label:d,icon:o,children:Kr(LH,{label:d,text:t,onTextChange:r,link:a,onLinkChange:p=>n(p),kinds:c.kinds,rules:c.rules,filtersFor:c.filtersFor})})}function aC({value:e,onChange:o,label:t="Link"}){let r=typeof e=="string"?e:"",{data:a,filters:n,pages:s,offersCommerce:l,HostLinkRow:c}=rC(),d=a.pages.map(m=>fs(m.slug)),p=l&&c&&(r==="/"||d.includes(r))?c:void 0;return RH("div",{children:[Kr(GH,{value:r,onChange:o,label:t,data:a,filters:n}),p&&Kr(p,{value:r,onChange:o,pages:s})]})}import{UiIcon as ov}from"efficient-easel/draw/client";import{phoneKey as YH,tabletKey as XH}from"efficient-easel/draw";import{AUTO_RULES as $H,FOLLOW_RULES as jH,VIEW_DESKTOP_MIN as KH,VIEW_TABLET_MIN as lC,isAuto as qH,resolveViewValue as VH}from"efficient-easel/draw";import{VIEW_DESKTOP_MIN as WH,VIEW_TABLET_MIN as sC}from"efficient-easel/screen/lib/content/view-tiers";var nm="v1",UH=e=>e==="v2"?sC:800,nC={"view-tablet":sC,"view-desktop":WH,"view-wide":UH(nm)};function rce(e){let o=e.startsWith("max-"),t=o?e.slice(4):e;if(t in nC)return{px:nC[t],max:o};let r=/^(max|min)-\[(\d+)px\]$/.exec(e);return r?{px:Number(r[2]),max:r[1]==="max"}:void 0}function Zi(){return nm==="v2"?$H:jH}var iC=.02,cC=`(min-width: ${lC}px) and (max-width: ${KH-iC}px)`,Va=`(max-width: ${lC-iC}px)`;function ir(e,o,t,r,a=Zi()){let n=VH(e,o,t,r,a),s={},l=(c,d)=>!qH(c)||d!=null&&d!==o;return l(t,n.tablet)&&(s.tablet=n.tablet),l(r,n.phone)&&(s.phone=n.phone),s}var et={min:10,max:200,step:10};function ZH(e,o){let t=U(e),r=U(o);if(!(t===void 0&&r===void 0))return{paddingTop:t,paddingBottom:r}}var JH="sf-pad-top-phone",QH="sf-pad-bottom-phone",e5="--sf-pad-t-phone",o5="--sf-pad-b-phone",t5="sf-pad-left-phone",r5="sf-pad-right-phone",a5="--sf-pad-l-phone",n5="--sf-pad-r-phone",s5="sf-pad-top-tablet",l5="sf-pad-bottom-tablet",i5="sf-pad-left-tablet",c5="sf-pad-right-tablet",d5="--sf-pad-t-tablet",f5="--sf-pad-b-tablet",u5="--sf-pad-l-tablet",p5="--sf-pad-r-tablet";function Ji(e){let o=ZH(e.top,e.bottom),t=sm({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 m5=[["top","paddingTop",[s5,d5],[JH,e5]],["bottom","paddingBottom",[l5,f5],[QH,o5]],["left","paddingLeft",[i5,u5],[t5,a5]],["right","paddingRight",[c5,p5],[r5,n5]]];function sm(e,o,t={},r=e){let a={},n={},s=[];for(let[l,c,...d]of m5){let p=U(e[l]);p!==void 0&&(a[c]=p);let m=ir("spacing",U(r[l]),U(t[l]),U(o[l]));for(let[f,[x,g]]of[["tablet",d[0]],["phone",d[1]]]){let y=m[f];typeof y=="number"&&(s.push(x),n[g]=`${y}px`)}}return{classes:s,style:{...a,...n}}}function dC(e,o,t){let r=U(e)??t,a=U(o);return r===void 0?a:a===void 0?r:r+a}function Qi(e,o={}){return{top:dC(e.padTop,e.sectionPaddingTop,o.top),bottom:dC(e.padBottom,e.sectionPaddingBottom,o.bottom)}}var lm={top:"sectionPaddingTop",bottom:"sectionPaddingBottom",left:"sectionPaddingLeft",right:"sectionPaddingRight"};function fC(e,o=lm,t=!0){let r={};for(let a of t?["top","bottom","left","right"]:["top","bottom"])r[a]=e[o[a]],r[`${a}Tablet`]=e[XH(o[a])],r[`${a}Phone`]=e[YH(o[a])];return r}function uC(e){return Ji(e)}function pC(e,o){let t=r=>typeof r=="number"?r+o:void 0;return Ji({...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 ec,buttonBorderOf as h5,buttonFillOpacityOf as x5,buttonPadSidesOf as I5}from"efficient-easel/draw";var g5="px-6 py-4",b5=4,oc=e=>{let o=new RegExp(`\\bp${e}-(?:\\[(\\d+)px\\]|(\\d+))`).exec(g5);if(!o)throw new Error(`BUTTON_PAD_CLASSES has no p${e}`);return o[1]!==void 0?Number(o[1]):Number(o[2])*b5},Ice={top:oc("y"),right:oc("x"),bottom:oc("y"),left:oc("x")},hC="var(--btn)";function y5(e){let o=e.variant==="ghost",t=x5(e.buttonFillOpacity),r=h5(e.buttonBorder),a=ee(e.buttonColor);return{fillOpacity:t??(o?0:100),border:{width:r?.width??1,color:r?.color??a??(o?"currentColor":hC)},changed:t!==void 0||r!==void 0}}function gce(e){let o=y5(e);if(!o.changed)return null;let t=ee(e.buttonColor)??hC;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 S5="var(--sf-button-radius, 0)";function bce(e){let o=U(e.buttonCorners),t=gt(e.buttonCornerSides);if(o===void 0&&t===null)return null;let r=o===void 0?S5:`${Math.max(0,o)}px`;return{borderRadius:t===null?r:Mr(r,t)}}function yce(e){let o=a=>I5({top:e[`${ec.top}${a}`],right:e[`${ec.right}${a}`],bottom:e[`${ec.bottom}${a}`],left:e[`${ec.left}${a}`]})??{},{classes:t,style:r}=sm(o(""),o("Phone"),o("Tablet"));return Object.keys(r).length?{className:t.join(" "),style:r}:null}var mC="upper";function xC(e,o,t){let r=e&&typeof e=="object"?e:{},a=ee(r.textStyle),n=a?ee(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=ee(r.case)??mC;return`${l} \xB7 ${c[d]??c[mC]}`}import{usePreviewParts as h3}from"efficient-easel/draw/client";import{encodePartId as x3}from"efficient-easel/draw";import{DEFAULT_EASEL_STRINGS as I3,useEaselStrings as g3}from"efficient-easel/strings";var w5=["auto","fixed","screen"],C5=["px","%"];var v5="var(--sf-header-h, 88px)",im={min:40,max:2e3,step:10,fallback:600},cm={min:10,max:200,step:5,fallback:100},k5="sf-section-minh",tc="grid-cols-[minmax(0,1fr)]",IC={base:"--sf-section-minh",small:"--sf-section-minh-s"},dm=e=>typeof e=="string"&&w5.includes(e),T5=e=>typeof e=="string"&&C5.includes(e);function gs(e){let o=dm(e.sectionHeightMode)?e.sectionHeightMode:"auto",t=o==="screen"?"%":T5(e.sectionHeightUnit)?e.sectionHeightUnit:"px",r=o==="screen"?cm.fallback:im.fallback,a=typeof e.sectionHeightValue=="number"?e.sectionHeightValue:r;return{mode:o,value:a,unit:t}}function yC(e){let{mode:o,value:t,unit:r}=gs(e);if(o==="auto")return;if(o==="fixed"&&r==="px")return[`${t}px`,null];let a=t/100,n=s=>o==="screen"?`(100${s} - ${v5})`:`100${s}`;return[`calc(${n("vh")} * ${a})`,`calc(${n("svh")} * ${a})`]}function SC(e){let o=yC(e);if(!o)return;let[t,r]=o;return{display:"grid",[IC.base]:t,...r?{[IC.small]:r}:{}}}var wce=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),Ya="Height",wC="sf-section-minh-phone",gC={base:"--sf-section-minh-p",small:"--sf-section-minh-ps"};function fm(e){return dm(e.sectionHeightModePhone)}function Cce(e){return gs({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})}var CC="sf-section-minh-tablet",bC={base:"--sf-section-minh-t",small:"--sf-section-minh-ts"};function bs(e){return dm(e.sectionHeightModeTablet)}function vC(e){return gs({sectionHeightMode:e.sectionHeightModeTablet,sectionHeightValue:e.sectionHeightValueTablet,sectionHeightUnit:e.sectionHeightUnitTablet})}function kC(e){let o=SC(e),t=(l,c,d)=>yC({sectionHeightMode:l,sectionHeightValue:c,sectionHeightUnit:d})??(o?["auto",null]:void 0),r=bs(e)?t(e.sectionHeightModeTablet,e.sectionHeightValueTablet,e.sectionHeightUnitTablet):void 0,a=fm(e)?t(e.sectionHeightModePhone,e.sectionHeightValuePhone,e.sectionHeightUnitPhone):r;if(!o&&!r&&!a)return null;let n=[k5,tc],s={...o??{}};return r&&(n.push(CC),s[bC.base]=r[0],r[1]&&(s[bC.small]=r[1])),a&&(n.push(wC),s[gC.base]=a[0],a[1]&&(s[gC.small]=a[1])),{className:n.join(" "),style:s}}function vce(e){return kC(e)!==null}var P5=`grid ${tc}`,TC="h-full",E5="view-tablet:max-view-desktop:grid",PC="max-view-tablet:grid",O5=`${PC} ${tc}`;function EC(e){let o=kC(e);if(!o)return"";if(SC(e))return P5;let t=o.className.split(" ");if(!t.includes(CC))return O5;let r=t.includes(wC);return[E5,r?PC:"",tc].filter(Boolean).join(" ")}var rc="Stick to top",cr={min:0,max:200,step:4,fallback:0},_5="sf-section-stick",Pce="sf-scroll-over",R5="sf-section-stick-tablet-on",A5="sf-section-stick-tablet-off",F5="sf-section-stick-phone-on",L5="sf-section-stick-phone-off",um={desktop:"--sf-stick-distance",tablet:"--sf-stick-distance-tablet",phone:"--sf-stick-distance-phone"},Ece=new Set(["CategoryBar","DocTabs","IntroBleed","Contents"]);function pm(e){let o=U(e)??cr.fallback;return Math.min(cr.max,Math.max(cr.min,Math.round(o)))}function mm(e){return typeof e.stickTopTablet=="boolean"}function hm(e){return typeof e.stickTopPhone=="boolean"}function ac(e){let o=e.stickTop===!0,t=pm(e.stickTopDistance),r=mm(e),a=r?e.stickTopTablet===!0:o,n=r?pm(e.stickTopDistanceTablet):t,s=hm(e),l=s?e.stickTopPhone===!0:a,c=s?pm(e.stickTopDistancePhone):n;return{desktop:o,desktopDistance:t,tablet:a,tabletDistance:n,ownTablet:r,phone:l,phoneDistance:c,ownPhone:s}}function Oce(e){let o=ac(e);if(!o.desktop&&!o.tablet&&!o.phone)return null;let t=[_5],r={};return o.desktop&&(r[um.desktop]=`${o.desktopDistance}px`),o.ownTablet&&(t.push(o.tablet?R5:A5),o.tablet&&(r[um.tablet]=`${o.tabletDistance}px`)),(o.ownPhone||o.ownTablet||o.phone!==o.desktop)&&(t.push(o.phone?F5:L5),o.phone&&(r[um.phone]=`${o.phoneDistance}px`)),o.desktop||t.push("sf-section-stick-desktop-off"),{className:t.join(" "),style:r}}var B5=["column","row","tabs"];var D5={column:"Stacked",row:"One row",tabs:"Tabs"},OC={Flex:B5,HeroGroup:["column","row"]},N5={Flex:"row",HeroGroup:"column"},M5={column:"flex-col",row:"flex-row",tabs:"flex-col"};function nc(e,o){return OC[e].includes(o)?o:N5[e]}function Rce(e,o){return M5[nc(e,o)]}function _C(e){return OC[e].map(o=>({label:D5[o],value:o}))}var H5=["solid","dashed","dotted"],AC=["top","right","bottom","left"],FC="sf-section-border",LC="sf-section-border-self",z5=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,RC=e=>typeof e=="number"&&Number.isFinite(e)?`${Math.min(20,Math.max(0,Math.round(e)))}px`:void 0;function Xa(e,{phone:o=!1,tablet:t=!1}={}){if(!e||typeof e!="object")return;let r=o?"-phone":t?"-tablet":"",a={};for(let n of AC){let s=RC(e[n])??RC(e.width);s!==void 0&&(a[`--sf-border-${n}-width${r}`]=s)}return typeof e.style=="string"&&H5.includes(e.style)&&(a[`--sf-border-style${r}`]=e.style),typeof e.color=="string"&&z5.test(e.color)&&(a[`--sf-border-color${r}`]=e.color.toLowerCase()),Object.keys(a).length?a:void 0}function xm(e){let{width:o,...t}=e;return typeof o!="number"?e:{...t,...Object.fromEntries(AC.map(r=>[r,t[r]??o]))}}function Fce(e,o,t){let r=Xa(e),a=Xa(t,{tablet:!0}),n=Xa(t,{phone:!0})||Xa(o,{phone:!0})?{...Xa(t,{phone:!0}),...Xa(o,{phone:!0})}:void 0;return r||a||n?{...r,...a,...n}:void 0}var sc="sf.gapContainer",At={min:-32,max:64,step:2},MC={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},Za={Grid:24,Flex:24,FooterGroup:16,HeroGroup:0,Events:24,GalleryB:8,ProductGrid:2},G5=new Set(["Events","GalleryB"]);function Vr(e,o,t){if(typeof o=="number"&&Number.isFinite(o)&&o>=At.min)return o;if(typeof o=="string"){let r=MC[e]?.[o];if(typeof r=="number")return r}return typeof t=="number"&&Number.isFinite(t)?t:Za[e]}var W5="sf-gap-overlap",U5="--sf-gap-overlap",HC="--sf-block-gap",$5="--sf-block-gap-rem",qr={min:0,max:At.max,step:At.step};function ys(e){if(typeof e!="number"||!Number.isFinite(e))return null;let o=Math.min(Math.max(Math.round(e),qr.min),qr.max);return o-o%qr.step}function Bce(e){let o=ys(e);return o===null?{}:{[HC]:`${o}px`,[$5]:`${o/16}rem`}}var j5="--sf-block-gap-phone",K5="--sf-block-gap-phone-rem",q5="--sf-block-gap-on-phone",V5="max-view-tablet:[--sf-block-gap-on-phone:var(--sf-block-gap-phone)]";function Dce(e){let o=ys(e);return o===null?{}:{[j5]:`${o}px`,[K5]:`${o/16}rem`}}function Nce(e){return ys(e)===null?"":V5}var BC="sf-gap-zone",DC="--sf-gap-len";function lc(e,o){return typeof o=="number"&&Number.isFinite(o)&&o>=At.min?!0:typeof o=="string"&&typeof MC[e]?.[o]=="number"}var NC="--sf-gap-len-phone",Y5="--sf-gap-len-tablet",Ss={min:0,max:At.max,step:At.step};function dr(e){return typeof e=="number"&&Number.isFinite(e)&&e>=Ss.min}function Im(e){return e/2}function gm(e,o,t){return dr(t)&&!lc(e,o)}function bm(e,o,t,r,a){return dr(o)?o:gm(e,t,a)?a:Im(Vr(e,t,r))}var X5={block:"sf-gap-overlap-block",inline:"sf-gap-overlap-inline",both:"sf-gap-overlap-both"};function Mce(e,o,t,r,a){let n={...dr(r)?{[NC]:`${r}px`}:null,...dr(a)?{[Y5]:`${a}px`}:null};if(!lc(e,o)){let l=`${Za[e]}px`,c=G5.has(e)?`var(--sf-card-gap, ${l})`:l;return{className:` ${BC}`,style:{[DC]:`var(${HC}, ${c})`,[NC]:`var(${q5})`,...n}}}let s=Vr(e,o);return s>=0?{className:` ${BC}`,style:{[DC]:`${s}px`,...n}}:{className:` ${W5} ${X5[t]}`,style:{gap:"0px",[U5]:`${-s/2}px`}}}import{parseHexColor as Z5}from"efficient-shell/format";var po="var(--section-bg)",ym="inherit";function yt(e,o){return e===ym?po:e===void 0?o:ic(e)}var J5=/var\(\s*--(surface-2|surface|line)\s*(?=[,)])/g;function ic(e){return e.replace(J5,"var(--site-$1")}var Q5={"var(--section-bg)":"band","var(--site-surface)":"surface","var(--site-surface-2)":"surface2"};function Sm(e,o,t){let r=yt(e,o);if(!r||r==="transparent")return t.background.toLowerCase();let a=r.trim(),n=a.startsWith("#")?Z5(a):null;if(n)return n.toLowerCase();let s=Q5[a.replace(/\s+/g,"")];return(s?t[s]:t.background).toLowerCase()}var wm="transparent";function zC(e,o){let t=yt(e,o);return!t||t===wm?"none":t===po?"band":null}function GC(e,o,t=o){let r=n=>!n||n==="transparent",a=yt(e,o);return a===t||r(a)&&r(t)}var WC=["transparent","var(--wheel-stage)","var(--surface)","var(--surface-2)"],UC={transparent:"No fill","var(--wheel-stage)":"Image stage","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},Ja="var(--wheel-stage)",cc="transparent",ws="inherit";function Uce(e,o){return ic(Cm(e,o))}function Cm(e,o){return e===ws?Ja:e==null?o:e===!0?Ja:e===!1?cc:e}function $ce(e){return typeof e=="string"&&e!==ws?ic(e):Ja}function jce(e){return e!==cc&&e!=="none"&&e!==""}function $C(e,o){return e===ws||e===!0?!0:e==null?o===Ja:!1}var jC="inherit",dc="fixed",KC=e=>typeof e!="number"&&e!==dc,e4="var(--sf-heading-max, 9999px)";function qce(e,o,t,r){if(typeof e=="number")return`${e}px`;if(e===dc)return o;let a=r?`var(--size-${r}, ${o})`:o;return t==="heading"?`min(${a}, ${e4})`:a}var o4=["page","full"],qC=["full","page"],Yr={full:"Full width",page:"Content width"},vm="inherit",t4=e=>typeof e=="string"&&o4.includes(e),r4=e=>e===vm;function a4(e,o){return r4(e.widthMode)?{mode:"full",inherited:!0}:t4(e.widthMode)?{mode:e.widthMode,inherited:!1}:{mode:o,inherited:o==="full"}}function Yce(e){return a4(e,"page").mode==="full"}var n4={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 Xce(e){return Object.prototype.hasOwnProperty.call(n4,e)}var VC="siteWidths",s4=e=>e==="full"||e==="content";function fc(e){return s4(e)?e:null}function YC(e,o){return{[VC]:{background:fc(e),content:fc(o)}}}function Zce(e){let o=e.editor?.metadata?.[VC];return{background:fc(o?.background),content:fc(o?.content)}}import{jsx as l4}from"react/jsx-runtime";import{createContext as i4,useContext as ode}from"react";var c4=2,tde=c4+1,d4=i4(2);function XC({tier:e,children:o}){return l4(d4.Provider,{value:e,children:o})}import{useEaselSession as b3}from"efficient-easel/screen/lib/session-context";import{BOX_GAP as y3,describedAs as ur,group as tt,iconOf as vs,sharedStyleKinds as ks}from"efficient-easel/screen/lib/document/box-fields";import{VIEW_KEY_ACCESS as Om,onDesktopWords as Ts,phoneTwinFields as bc}from"efficient-easel/screen/lib/document/box-fields";import{createElement as ZC}from"react";import{SettingsField as f4}from"efficient-easel/panel";import{boxFieldBuilders as u4,describedAs as p4,iconOf as m4}from"efficient-easel/screen/lib/document/box-fields";import{IconPicker as h4}from"efficient-shell/ui";var x4=e=>i(e),io=u4(x4),wo=io.slider,ot=io.select,uc=io.Segmented,Qa=io.segmented,cde=io.alignmentField,dde=io.alignmentFields,fde=io.blockAlignmentField,ude=io.blockAlignmentFields,pde=io.boxJustifyField,mde=io.boxAlignField,hde=io.boxWrapField,JC=io.directionField,pc=io.gapField,xde=io.placementField,Ide=io.PlacementGridView,gde=io.positionFields,mc=io.sidesPaddingFields;function bde(e,o,t,r,a={}){let n=s=>t.some(l=>l.value===s);return{type:"custom",...p4({},{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(f=>({value:f.value,...f.label===void 0?{}:{label:i(f.label)},icon:f.picture})),p=c?.currentValue,m=a.resolve?a.resolve(s)??r:n(s)?s:n(p)?p:r;return ZC(f4,{label:i(e),icon:m4(o)},ZC(h4,{label:i(e),value:m,options:d,onChange:l,emptyValue:a.emptyValue}))}}}import{TEXT_CONTROL_KINDS as Qfe,SCALAR_TEXT_CONTROLS as eue}from"efficient-easel/draw";function Xr(e,o){return i("{value} from {from}",{value:e,from:o})}function S3(){let{blockGap:e}=de();return e===null?i("this container's own spacing"):Xr(`${e}px`,i("Styles"))}function w3({inherited:e,onReset:o,label:t}){return S(xo,{words:oe()?.panel,label:i(t),changed:!e,detail:S3(),onReset:o})}function C3(e){return pc({...y3,builtIn:Za[e],resolve:(o,t)=>Vr(e,o,t?.siteGap),action:(o,t)=>S(w3,{inherited:!lc(e,o),onReset:()=>t(void 0),label:"Gap"}),mark:{[sc]:e}})}function v3(e){return Xe(Bt("mobile",{[sc]:e,type:"custom",render:o=>S(P3,{container:e,...o})}),bv)}function k3(e){return Xe(Bt("tablet",{[sc]:e,type:"custom",render:o=>S(T3,{container:e,...o})}),bv)}var bv={not:{field:"gap",in:Array.from({length:-At.min},(e,o)=>At.min+o)}};function jfe(e){return{gap:Bt("desktop",C3(e)),[tn("gap")]:k3(e),[Ft("gap")]:v3(e)}}function T3({container:e,...o}){let[t]=pr("gap"),{siteGap:r}=o.field??{},a=Math.max(Ss.min,Vr(e,t,r));return pc({...Ss,builtIn:a,resolve:n=>dr(n)?n:a,action:(n,s)=>S(xo,{words:oe()?.panel,label:i("Gap"),changed:dr(n),detail:Ts(l=>i(l),`${a}px`),onReset:()=>s(void 0)})}).render(o)}function P3({container:e,...o}){let[t]=pr("gap"),{siteGap:r,siteGapPhone:a}=o.field??{},n=bm(e,void 0,t,r,a);return pc({...Ss,builtIn:n,resolve:s=>bm(e,s,t,r,a),action:(s,l)=>S(xo,{words:oe()?.panel,label:i("Gap"),changed:dr(s),detail:Xr(`${n}px`,gm(e,t,a)?i("Styles"):i("Desktop")),onReset:()=>l(void 0)})}).render(o)}function Kfe(e){return JC({offered:_C(e),fallback:nc(e,void 0),resolve:o=>nc(e,o)})}function qfe(e,o){return CS(o?Sp(e,o):[],o)}function E3({inherited:e,onReset:o,label:t}){return S(xo,{words:oe()?.panel,label:i(t),changed:!e,detail:Xr(i("Full"),i("the page")),onReset:o})}function Zr({value:e,onChange:o,label:t,placeholder:r,hint:a,multiline:n,hideable:s=!0,markup:l=!0}){let{text:c,hidden:d}=hr(e),p=Ic(null),m=Ic(null),f=w=>o(s?{text:w,hidden:d}:w),x=()=>o({text:c,hidden:!d}),g=s&&d,y=lv(),k=a?F3(a)?S("span",{className:"sf-hint-keep sf-hint-while-typing",children:i(a)}):S(PS,{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(Je,{label:i(t),icon:S(q4,{}),htmlFor:y,className:g?"is-hidden":void 0,hint:k,action:s?S(gc,{content:O,children:S(Iv,{"aria-pressed":d,"aria-label":O,onClick:x,children:d?S(ov,{name:"eye-off",size:14}):S(ov,{name:"eye",size:14})})}):void 0,children:on("div",{className:"sf-copybox",children:[l&&S(Rp,{target:n?m:p,value:c,onChange:f}),n?S("textarea",{id:y,ref:m,value:c,placeholder:r===void 0?void 0:i(r),onChange:w=>f(w.target.value)}):S("input",{id:y,ref:p,type:"text",value:c,placeholder:r===void 0?void 0:i(r),onChange:w=>f(w.target.value)})]})})}function Vfe(e,o){return{...e,[k4]:o}}function Yfe(e){let o=e[Lt];if(!o)throw new Error("withOffPage: the field holds no authored text");return{...e,[Lt]:{...o,offPage:!0}}}function Sc(e){return!e||typeof e!="object"?!1:e[Lt]?.offPage===!0}var yv="sfPanelOnly";function Xfe(e){if(!e[Lt])throw new Error("withPanelOnly: the field holds no authored text");return{...e,[yv]:!0}}function Sv(e){return!!e&&typeof e=="object"&&e[yv]===!0}function Zfe(e){let o=e[Lt];if(!o)throw new Error("withIdentifier: the field holds no authored text");return{...e,[Lt]:{...o,identifier:!0}}}function oue(e,o){if(!e[Lt])throw new Error("inOwnBox: the field holds no authored text");let{[u3]:t,...r}=e;return{...r,[Ap]:!0,render:o}}var O3=new Set(m3),yc={type:"radio",options:[{value:!0},{value:!1}]},wv={text:{type:"object",objectFields:{text:{type:"text"},hidden:yc}},textarea:{type:"object",objectFields:{text:{type:"textarea"},hidden:yc}},plainText:{type:"text"},copyText:{type:"text"},plainTextarea:{type:"textarea"},textList:{type:"array",arrayFields:{text:{type:"text"}}}},Jr=(e,o)=>{let t=ur({...o,[Lt]:e},{...wv[e.control],label:e.label});if(!O3.has(e.control))return t;let r=o.render;return{...gv(t,"authored-copy"),render:a=>S(ew,{name:a.name,children:r(a)})}},tue="Everything else on this block comes from the linked post. Unlink it to edit by hand.",_3={field:"source.slug",set:!0},rue={not:_3},R3="Select a word, then press the highlighter.",A3=new Set([R3]),F3=e=>A3.has(e);function aue(e,o,t){return Jr({control:"text",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Zr,{value:r,onChange:a,label:e,placeholder:o,hint:t})})}function nue(e,o,t){return Jr({control:"textarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Zr,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0})})}function sue(e,o,t){return Jr({control:"plainText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Zr,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1,markup:!1})})}function lue(e,o,t){return Jr({control:"copyText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Zr,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1})})}function iue(e){return{type:"custom",[C4]:{label:e},...ur({},{type:"text",label:e}),render:({value:o,onChange:t})=>S(aC,{value:w4(o),onChange:t,label:e})}}function cue(e,o,t){return Jr({control:"plainTextarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(Zr,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0,hideable:!1})})}var Cv={Design:T4,Animation:E4};function due(e){return{type:"custom",render:()=>S(L3,{text:e})}}function L3({text:e}){return S("p",{className:"sf-note",children:i(e)})}function fue(e){return Dt(e)!==null&&e?.tabs!==void 0}var tv=new Map;function wc(e,o){let t=`${e}\0${o?o.join(""):""}`,r=tv.get(t)??{type:"custom",tabs:o,[iv]:{label:e,level:1},bucket:e,marker:!0,render:()=>S(mr,{})};return tv.set(t,r),r}var rv=new Map;function _m(e){let o=rv.get(e)??{type:"custom",[iv]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>S(mr,{})};return rv.set(e,o),o}function B3(e){let o=e;return o?.marker===!0&&typeof o.fold=="string"?o.fold:null}function vv(e,o){return B3(e)===o?e:{...e,marker:!0,fold:o,render:()=>S(mr,{})}}function kv(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(mr,{})}}function Rm({title:e,children:o}){let[t,r]=Cs(()=>!km.has(e));return S(X4,{title:e,open:t,onToggle:a=>{r(a),a?km.delete(e):km.add(e)},children:o})}var km=new Set;function D3({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 on("div",{className:"sf-swatches",children:[e.map(l=>{let c=r?.[l]?i(r[l]):l;return S(gc,{content:c,children:S(n3,{color:l,selected:o.toLowerCase()===l.toLowerCase(),onClick:()=>t(l),"aria-label":c})},l)}),S("span",{className:"sf-swatch-hex",children:s})]})}function uue(e,o,t=!1){return{type:"custom",render:({value:r,onChange:a})=>S(N3,{label:e,builtIn:o,followsBand:t,value:r,onChange:a})}}function N3({label:e,builtIn:o,followsBand:t,value:r,onChange:a}){let n=typeof r=="string"?r:void 0,{colors:s,n:l}=Bv(),c={background:s.background,surface:s.surface,surface2:si(s),band:ub(s)},d=t?po:o,p=GC(n,o,d),m=Sm(void 0,d,c),f=t?ym:void 0,x=zC(n,o),g=d===po?i("the theme's section background"):i("Theme {n} background",{n:l});return S(us,{label:i(e),icon:S(O4,{}),value:p?"":Sm(n,o,c),inherited:m,resetTo:Xr(m.toUpperCase(),g),onChange:a,onReset:()=>a(f),choices:[{label:i("No fill"),color:"",selected:x==="none",onPick:()=>a(wm)},{label:`${i("Section band")} \xB7 ${c.band.toUpperCase()}`,color:c.band,selected:x==="band",onPick:()=>a(po)}]})}function M3(e,o){return{type:"custom",render:({value:t,onChange:r})=>{let a=t,n=$C(a,o);return S(Je,{label:i(e),icon:S(fv,{}),changed:!n,action:S(xo,{words:oe()?.panel,label:i(e),changed:!n,detail:i("the theme's image stage"),onReset:()=>r(ws)}),children:D3({swatches:WC,current:n?Ja:Cm(a,o),onPick:r,names:UC})})}}}function Cc(e=t=>t,o){return ks({_gSectionTheme:tt(Cw),sectionAccent:{type:"custom",render:({value:t,onChange:r})=>S(Ow,{value:e(t),onChange:r,followLabel:o})}})}function _o({min:e,max:o,step:t,value:r,onChange:a,suffix:n="",readout:s=!0,notch:l,ariaLabel:c,disabled:d=!1,placeholder:p}){let m=l!==void 0&&Number.isFinite(l)&&l>=e&&l<=o;return S("div",{className:m?"sf-slider has-notch":"sf-slider",style:m?{"--sf-notch":(l-e)/(o-e)}:void 0,children:S(d3,{min:e,max:o,step:t,value:r,...r===null&&p!==void 0?{placeholderValue:p}:{},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:f=>{f!==null&&f!==r&&a(f)}})})}function Tv(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:m,onChange:f})=>{let x=typeof m=="number"?m:null,g=x===null;return S(Je,{label:i(e),icon:d?vs(d):void 0,value:g?c||n===void 0?void 0:i(n):`${x}${p}`,changed:!g,action:c?sv(c,{changed:!g,onReset:()=>f(null)}):S(xo,{words:oe()?.panel,label:i(e),changed:!g,onReset:()=>f(null)}),hint:typeof s=="string"?i(s):s,children:l?l({min:t,max:r,step:a,px:x,label:e,onChange:f}):_o({min:t,max:r,step:a,value:x??t,readout:!1,ariaLabel:e,onChange:f})})}}}var vc="Corners";function Am(e){return{type:"custom",render:({value:o,onChange:t})=>{let r=typeof o=="number"&&Number.isFinite(o)?o:null,a=r!==null;return S(Je,{label:i(vc),icon:S(A4,{}),changed:a,action:sv(e.mark,{changed:a,onReset:()=>t(null)}),hint:e.hint,children:S(H3,{tier:e,px:r,onRadius:t})})}}}function pr(e){let o=rn();return[o?.values?.[e],t=>o?.onChange(e,t)]}function Pv(){return gv({type:"custom",render:()=>S(p3,{})},"always")}function Hp(){let e=rn();return o=>e?.onChangeMany(o)}function H3({tier:e,px:o,onRadius:t}){let r=e.useFollowed(),[a,n]=pr(e.sidesKey),s=gt(a)??[...wi];return S(s3,{label:i(vc),value:s,corners:Vy,onChange:l=>{let c=gt(l)??[];n(c.length===wi.length?null:c)},radius:o,onRadiusChange:t,radiusMin:Lo,radiusMax:_r,radiusStep:e.step??1,radiusPlaceholder:String(r)})}function Ev(){return Pv()}function z3({label:e,changed:o=!1,onReset:t=()=>{}}){let{cornerRadiusPx:r}=de(),a=typeof r=="number"?`${r}px`:i("not set");return S(xo,{words:oe()?.panel,label:i(e),changed:o,detail:r==null?i("the built-in corners"):Xr(a,i("Styles")),onReset:t})}function G3(){let{cornerRadiusPx:e}=de();return typeof e=="number"?e:Lo}function W3(){return Am({sidesKey:"sectionCornerSides",useFollowed:G3,mark:S(z3,{label:vc}),hint:U3})}var U3="Follows Styles \u25B8 Basics \u25B8 Corners until you set a number here.";function kc(){return ks({_gShape:tt("Shape"),sectionCorners:W3(),sectionCornerSides:Ev(),...en("sectionBorder",Y3)})}var $3=()=>({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 j3(e){let o=Object.fromEntries(Object.entries(e).filter(([,t])=>t!=null&&t!==""));return Object.keys(o).length?o:void 0}function K3(){let e;try{let o=so(de().theme);e=o.themes[o.selected]?.line}catch{e=void 0}return e||lb.line}function q3({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]=Cs(()=>a?o3(l,s):!1),p=$3(),m=f=>j3(a&&n?f:{width:f.width,color:f.color,...n?{style:f.style}:{}});return S(Je,{label:i("Border"),icon:S(_4,{}),action:a?S(Q4,{each:c,label:i("Each side"),onChange:d}):void 0,children:S(J4,{label:i("Border"),value:l,each:c,onChange:f=>o(m(f)),placeholder:t,presets:r,words:p,styles:n,max:20})})}function V3({value:e,onChange:o,view:t}){let[r]=pr("sectionBorder"),[a]=pr(tn("sectionBorder")),n=K3(),s=c=>c&&typeof c=="object"?c:{},l=t==="phone"?{...xm(s(r)),...xm(s(a))}:t==="tablet"?s(r):{};return S(q3,{value:e,onChange:o,placeholder:{sides:e3(l),style:l.style??"solid",color:l.color||n},presets:[n],above:l})}function Y3(e){return{type:"custom",render:({value:o,onChange:t})=>S(V3,{value:o,onChange:t,view:e})}}function en(e,o){let t=(r,a)=>bc(e,o(r),Om)[a];return{[e]:t("desktop",e),[tn(e)]:t("tablet",tn(e)),[Ft(e)]:t("phone",Ft(e))}}function pue(e){return{type:"custom",render:()=>S(X3,{partKey:e})}}function X3({partKey:e}){let[o]=pr("id"),[t]=pr("_partStyles"),{textStyles:r}=de(),a=g3(),n=null;try{n=h3().select}catch{n=null}let s=t&&typeof t=="object"?t[e]:void 0,l=Array.isArray(r)?r:null;return S(Y4,{name:i("Text"),preview:xC(s,l,{noStyle:i("No style"),styleName:a.textStyles.styleName,cases:(a.copy.panel??I3.copy.panel).cases}),onOpen:()=>{n&&typeof o=="string"&&n(x3(o,e))}})}function Ov(e){let{cornerRadiusPx:o}=de(),t=typeof o=="number"?o:e,r=null;try{let{appState:n,selectedItem:s}=Pm(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 op(a)?a:t}function Z3({label:e,changed:o=!1,onReset:t=()=>{}}){let r=Ov(Lo);return S(xo,{words:oe()?.panel,label:i(e),changed:o,detail:Xr(`${r}px`,i("the section")),onReset:t})}function J3(){return S(mr,{children:i("Follows the section's Corners until you set a number here.")})}function Q3(){return Am({sidesKey:"cardCornerSides",useFollowed:()=>Ov(Lo),mark:S(Z3,{label:vc}),hint:S(J3,{})})}function e6(){return{type:"custom",render:()=>S(oS,{})}}function mue(){return{_gShape:tt("Shape"),cardCorners:Q3(),cardCornerSides:Ev(),cardCornersApplyAll:e6()}}function _v(e=Nu,o=e[0].value){return ur({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(m=>m.value===c)??e.find(m=>m.value===o)??e[0],p=e.find(m=>m.value===(s??o))??e[0];return S(Je,{label:i(es),icon:S(cv,{}),value:i(d.label),action:n?S(xo,{words:oe()?.panel,label:i(es),changed:l,detail:Ts(m=>i(m),i(p.label),t.followsView),onReset:()=>a(void 0)}):void 0,children:S(i3,{className:"sf-gallery-layouts",label:i(es),value:d.value,onChange:a,options:e.map(m=>({value:m.value,label:i(m.label),picture:S("span",{className:"sf-gallery-pic",children:o6(m.weights).map((f,x)=>S("i",{style:{gridColumn:`span ${f}`}},x))})}))})})}},{type:"select",label:es,options:e.map(t=>({value:t.value,label:t.label}))})}function o6(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 hue(){return ot(fy,S(M4,{}),zu,zu[0].value)}function xue(){return Bt("mobile",_v(sy,ly))}function Iue(){return bc("share",_v(),Om)[tn("share")]}function t6(){return Bt("mobile",wo(Mu,S(dv,{}),hi,ay,1,hi,"",{clear:{phoneFollows:!1,hint:hi}}))}var av={read:e=>e.phoneRow,write:(e,o,t)=>({phoneRow:t}),fieldKey:()=>"phoneRow",ownField:!0};function gue(){let e=wo(Mu,S(dv,{}),Hu,iy,1,Hu,"",{clear:{emptyLabel:"Auto"}}),o=bc("columns",e,{...av,tablet:Om.tablet}),t=bc("columns",e,av,{phoneRow:t6()});return{...o,phoneRow:t.phoneRow}}function bue(e,o,t,r,a,n){return{type:"custom",render:({value:s,onChange:l})=>S(Je,{label:i(e),icon:S(vp,{noun:n}),action:S(xo,{words:oe()?.panel,label:i(e),changed:!KC(s),detail:i("the Text style in Styles"),onReset:()=>l(jC),defaultAction:{onPress:()=>l(dc),title:i("Keep this section's own built-in size"),icon:S(R4,{})}}),children:_o({min:o,max:t,step:r,value:typeof s=="number"?s:a,suffix:"px",ariaLabel:e,onChange:l})})}}function yue(){return{_gCellWidth:tt("Cell width"),gridSpan:ot("Positions",S(cv,{}),[{label:"Auto",value:""},...Array.from({length:Ei},(e,o)=>({label:o===0?"1 position":`${o+1} positions`,value:String(o+1)}))],"")}}function Mo(){let e=null,o=null;try{e=y4(Fm),o=Pm(t=>t).selectedItem}catch{o=null}return e??o?.props??{}}var Fm=b4(null);function r6({min:e,max:o,step:t,px:r,label:a,onChange:n,desktopKey:s,fallback:l}){let c=Mo()[s],d=Mi(void 0,c,l);return S(mr,{children:_o({min:e,max:o,step:t,value:Mi(r,c,l),readout:!1,ariaLabel:a,notch:d,onChange:n})})}function a6({label:e,desktopKey:o,fallback:t,unit:r="px",changed:a=!1,onReset:n=()=>{}}){let s=Mo()[o],l=Mi(void 0,s,t);return S(xo,{words:oe()?.panel,label:i(e),changed:a,detail:Ts(c=>i(c),`${l}${r}`),onReset:n})}function Tc(e){return Tv(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unit:e.unit,unsetLabel:"Follows Desktop",unsetMark:S(a6,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback,unit:e.unit}),restTrack:o=>S(r6,{...o,desktopKey:e.desktopKey,fallback:e.fallback})})}var n6={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},s6={Top:xv,Bottom:pv,Left:mv,Right:hv},l6=e=>{let o=s6[e];return S(o,{})};function Sue(e={}){let o=e.keys?.top??"sectionPaddingTop",t=e.keys?.bottom??"sectionPaddingBottom",r=e.group!==!1,a=k=>n6[k],n=k=>wo(a("Top"),S(xv,{}),et.min,et.max,et.step,k,"px"),s=(k,O,w,I=et)=>Bt("mobile",Tc({label:a(k),icon:l6(k),desktopKey:O,min:I.min,max:I.max,step:I.step,fallback:w})),l=e.top??et.min,c=e.bottom??et.min,d="sectionPaddingLeft",p="sectionPaddingRight",m=e.sideBounds??et,f=e.side??m.min,x=e.sidePhone??f,g=e.phone===!0,y=k=>g?Bt("desktop",k):k;return ks({...r?{_gSpacing:tt("Padding")}:{},[o]:y(n(l)),...g?{[Ft(o)]:s("Top",o,l)}:{},...e.only==="top"?{}:{[t]:y(wo(a("Bottom"),S(pv,{}),et.min,et.max,et.step,c,"px")),...g?{[Ft(t)]:s("Bottom",t,c)}:{}},...e.sides?{[d]:y(wo(a("Left"),S(mv,{}),m.min,m.max,m.step,f,"px")),...g?{[Ft(d)]:s("Left",d,x,m)}:{},[p]:y(wo(a("Right"),S(hv,{}),m.min,m.max,m.step,f,"px")),...g?{[Ft(p)]:s("Right",p,x,m)}:{}}:{}})}function wue(e,o){let t=Object.fromEntries(Object.entries(o).map(([n,s])=>[n,n in e&&Dt(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 hc="Width";function Pc(e,o=qC,t=!0){let r=o.map(a=>({label:Yr[a],value:a}));return ks({...t?{_gWidth:tt(hc)}:{},widthMode:{type:"custom",render:({onChange:a,field:n})=>S(Je,{label:i(hc),icon:S(V4,{}),action:t?S(E3,{inherited:n?.inherited??!1,onReset:()=>a(vm),label:hc}):void 0,children:uc({options:r,value:n?.currentValue||e,onChange:a,ariaLabel:hc})})}})}function Ec(){let e=(r,a)=>({type:"custom",render:({value:n,onChange:s})=>S(i6,{value:n,onChange:s,view:r,badge:a})}),o=r=>({type:"custom",render:({value:a,onChange:n,field:s})=>S(d6,{value:a,onChange:n,unit:s?.unit,view:r})}),t=r=>{let a=Qa("Unit",S(uv,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");if(r==="desktop")return a;let n=a.render;return{...a,render:s=>S(f6,{props:s,draw:n,view:r})}};return ks({_gHeight:tt(Ya),...en("sectionHeightMode",r=>r==="desktop"?e(r):e(r,a=>S(u6,{view:r,onClear:()=>a(void 0)}))),...en("sectionHeightValue",o),...en("sectionHeightUnit",t)})}function i6({value:e,onChange:o,view:t,badge:r}){let a=Mo(),n=l=>["auto","fixed","screen"].includes(l),s=Oc(t,a)?.mode??"auto";return S(Je,{label:Ya,icon:vs(S(z4,{})),action:r?r(o):void 0,children:uc({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:n(e)?e:s,onChange:o,ariaLabel:Ya})})}function Rv(e,o){return e==="phone"&&bs(o)?vC(o):gs(o)}function Oc(e,o){return e==="desktop"||(e==="tablet"?bs(o):fm(o))?null:Rv(e,o)}var fr=(e,o)=>e==="tablet"?tn(o):Ft(o);function c6(e,o,t,r){let a=Oc(e,o);return!a||e==="desktop"?null:r===void 0?{}:{[fr(e,"sectionHeightMode")]:a.mode,...a.mode==="fixed"?{[fr(e,"sectionHeightUnit")]:a.unit}:{},...t==="sectionHeightUnit"?{[fr(e,"sectionHeightValue")]:a.value}:{},[fr(e,t)]:r}}function Av(e,o,t){let r=rn(),a=Oc(e,Mo());return!r||!a?{followed:null,write:t}:{followed:a,write:n=>r.onChangeMany(s=>{let l=c6(e,s,o,n);return l===null?{[e==="desktop"?o:fr(e,o)]:n}:Object.keys(l).length?l:null})}}function d6({value:e,onChange:o,unit:t,view:r}){let{followed:a,write:n}=Av(r,"sectionHeightValue",o),s=(a?a.unit:t)==="%"?"%":"px",l=s==="%"?cm:im;return S("div",{className:"sf-field",children:_o({min:l.min,max:l.max,step:l.step,value:a?null:typeof e=="number"?e:l.fallback,...a?{placeholder:a.value}:{},suffix:s,ariaLabel:Ya,onChange:n})})}function f6({props:e,draw:o,view:t}){let{followed:r,write:a}=Av(t,"sectionHeightUnit",e.onChange);return o({...e,...r?{value:void 0,storedValue:void 0,follows:r.unit}:{},onChange:a})}function u6({view:e,onClear:o}){let t=Mo(),r=Oc(e,t)===null,a=e==="phone"&&bs(t),n=Rv(e,t),s=Ts(l=>i(l),n.mode==="auto"?i("Auto"):`${n.value}${n.unit}`,a?"tablet":"desktop");return S(xo,{words:oe()?.panel,label:i(Ya),changed:r,detail:s,onReset:o})}function Lm(){let e=t=>({type:"custom",render:({value:r,onChange:a,id:n,name:s})=>S(h6,{value:r,onChange:a,labelId:`${n??s??"stickTop"}-label`,view:t})}),o=t=>({type:"custom",render:({value:r,onChange:a})=>S(p6,{value:r,onChange:a,view:t})});return{_gStick:tt(rc),...en("stickTop",e),...en("stickTopDistance",o)}}function p6({value:e,onChange:o,view:t}){let r=rn(),a=Mo(),n=t==="desktop"||Bm(t,a)?null:Fv(t,ac(a)),s=n&&r?l=>r.onChangeMany(c=>{let d=m6(t,c,l);return d===null?{[fr(t,"stickTopDistance")]:l}:Object.keys(d).length?d:null}):o;return S("div",{className:"sf-field",children:_o({min:cr.min,max:cr.max,step:cr.step,value:n?null:typeof e=="number"?e:cr.fallback,...n?{placeholder:n.distance}:{},suffix:"px",ariaLabel:i("Distance from top"),onChange:s})})}function Bm(e,o){return e==="tablet"?mm(o):hm(o)}function Fv(e,o){return e==="phone"?{on:o.tablet,distance:o.tabletDistance}:{on:o.desktop,distance:o.desktopDistance}}function m6(e,o,t){return e==="desktop"||Bm(e,o)?null:t===void 0?{}:{[fr(e,"stickTop")]:!0,[fr(e,"stickTopDistance")]:t}}function h6({value:e,onChange:o,labelId:t,view:r}){let a=Mo(),n=ac(a),s=r==="phone"?n.phone:r==="tablet"?n.tablet:e===!0,l=r==="phone"&&n.ownTablet,c=r==="desktop"?null:Fv(r,n),d=c?.on?`${c.distance}px`:i("Off");return S(Je,{label:i(rc),labelId:t,icon:vs(S($4,{})),action:on(mr,{children:[r!=="desktop"?S(xo,{words:oe()?.panel,label:i(rc),changed:Bm(r,a),detail:Ts(p=>i(p),d,l?"tablet":"desktop"),onReset:()=>o(void 0)}):null,S(Em,{checked:s,onChange:o,ariaLabelledBy:t})]})})}var nv="e.g. about";function _c(){return{_gAnchor:tt("Anchor"),anchor:Jr({control:"plainText",label:"Name",placeholder:nv},{type:"custom",render:({value:e,onChange:o})=>S(MS,{value:e,onChange:o,nameBox:(t,r)=>S(Zr,{value:t,onChange:r,label:"Name",placeholder:nv,hideable:!1,markup:!1})})})}}function Cue(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(Je,{label:i(e),icon:o,htmlFor:l,hint:t===void 0?void 0:i(t),children:S(l3,{id:l,value:Number.isFinite(c)?new Date(c):null,onChange:d=>a(d?d.toISOString():"")})})}}}function x6(e,o,t,r){return{type:"custom",...ur({},{...yc,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(Je,{label:i(e),labelId:d,icon:t,hint:r===void 0?void 0:i(r),action:S(Em,{checked:c,onChange:n,ariaLabelledBy:d})})}}}function Lv(){return{type:"custom",render:({value:e,onChange:o,id:t,name:r})=>{let a=`${String(t??r??"pageBackground")}-colour`;return S(No,{label:i("Background"),icon:S(U4,{}),id:a,value:kp(e),onChange:o})}}}function vue(e,o,t){return{type:"custom",render:({value:r,onChange:a})=>S(No,{label:i(e),icon:t,value:r||o,onChange:a})}}function kue(){return{type:"custom",render:({value:e,onChange:o})=>S(I6,{value:typeof e=="string"?e:"",onChange:o})}}function I6({value:e,onChange:o}){let{hex:t,n:r}=b6();return S(us,{label:i("Fill"),icon:S(fv,{}),value:e,inherited:t,resetTo:Xr(t.toUpperCase(),i("Theme {n} background",{n:r})),onChange:o,onReset:()=>o("")})}function g6(e,o,t){if((e?.content??[]).some(n=>n?.props?.id===o))return Yo(t);let r=WS(e,o);if(r.length===0)return null;let a=Yo(Jp(t));if(a!==null)return a;for(let n=r.length-1;n>0;n-=1){let s=Yo(Jp(r[n].sectionAccent));if(s!==null)return s}return Yo(r[0].sectionAccent)}function b6(){let{colors:e,n:o}=Bv();return{hex:e.background,n:o}}function Bv(){let e=so(de().theme),[o]=pr("sectionAccent"),t=null;try{let{appState:a,selectedItem:n}=Pm(l=>l),s=n?.props?.id?String(n.props.id):void 0;t=s?g6(a?.data,s,o):null}catch{t=null}let r=t!==null&&e.themes[t]?t:e.selected;return{colors:bo(e.themes[r]),n:r+1}}var y6=[{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 S6({label:e,value:o,onChange:t,points:r=y6}){let a=r.map(n=>({...n,label:i(n.label),...n.title?{title:i(n.title)}:null}));return S(a3,{label:i(e),value:o,points:a,onChange:t})}function Tue(){return Pv()}var Dv={top:S(D4,{}),right:S(B4,{}),bottom:S(F4,{}),left:S(L4,{})};function Nv(e,o,t,r,a,n,s){let l=m=>o.find(f=>f.value===m),c=m=>({value:m,label:"",disabled:!0,title:r}),d=m=>{let f=o.find(g=>g.cell===m);if(!f)return c(`missing-${m}`);let x=n?.[m];return x?{value:f.value,label:f.label,icon:x}:{value:f.value,label:f.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:m,onChange:f})=>{let x=o.some(g=>g.value===m)?m:t;return S(Je,{label:i(e),icon:a,value:l(x)?.label?i(l(x).label):s?i(s):"",children:S6({label:e,value:x,onChange:f,points:p})})}}}function Pue(e,o,t){return{type:"custom",options:o,render:({value:r,onChange:a,field:n})=>S(cw,{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 Eue(e,o={}){return{type:"custom",render:({value:t,onChange:r})=>{let a={value:t,onChange:r,...o};return S(e,{...a})}}}var Oue=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function _ue(e,o,t){let r=Object.keys(Qu).map(a=>({label:Qu[a],value:a,picture:t[a]}));return{type:"custom",...ur({},{type:"radio",label:e,options:r.map(a=>({value:a.value,label:a.label}))}),render:({onChange:a})=>S(w6,{label:e,icon:o,options:r,onChange:a})}}function w6({label:e,icon:o,options:t,onChange:r}){let a=rn()?.values??{},n=ep(a),s=n==="frame"&&!!tr(a.mediaVideo)&&!tr(a.videoFrame);return S(Je,{label:i(e),icon:vs(o),hint:s?i("This video has no frame yet. The slide shows its background colour until one is made."):void 0,children:uc({options:t,value:n,onChange:r,ariaLabel:e})})}function Rue(e,o,t,r={}){return{type:"custom",[v4]:!0,render:({value:a,onChange:n,name:s})=>S(lw,{value:a||"",onChange:n,fieldKey:s,label:e,accept:o,placeholder:t,focusKey:r.focus,focusWhen:r.focusWhen,frameKey:r.frame})}}function C6(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 Aue({value:e,onChange:o,label:t}){let r=e||{},a=rn(),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=!!Ge(b3()).geocode,p=lv(),m=(f,x)=>o({...r,[f]:x??void 0});return on(mr,{children:[S(Je,{label:i(t),icon:S(QC,{}),action:d?S(gc,{content:i("Find from the address (OpenStreetMap)"),children:S(Iv,{"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(j4,{})})}):void 0,children:d&&r.status?S(gc,{content:C6(r),className:"sf-name-tip",children:S("div",{className:`es-field-hint ${wp}`,style:{margin:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:c},children:s?i("Finding\u2026"):l?i(Ep):i(r.status)})}):null}),S(Je,{label:i("Enter by hand"),labelId:p,icon:S(N4,{}),action:S(Em,{checked:!!r.manual,onChange:f=>o({...r,manual:f}),ariaLabelledBy:p})}),r.manual&&S(Je,{label:i("Latitude, longitude"),icon:S(QC,{}),children:on("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8,width:"100%",minWidth:0},children:[S(ev,{value:typeof r.lat=="number"?r.lat:null,onChange:f=>m("lat",f),min:-90,max:90,step:1e-4,placeholder:i("Latitude")}),S(ev,{value:typeof r.lng=="number"?r.lng:null,onChange:f=>m("lng",f),min:-180,max:180,step:1e-4,placeholder:i("Longitude")})]})})]})}function v6(e,o){return o===null||o<0||o>=e.length?"":e[o]?.text??""}function k6(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 T6(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 Dm={label:"Ticker items",icon:S(W4,{})};function Fue(e,o,t,r){return{type:"custom",[Lt]:{control:"textList",label:e,placeholder:t,itemKey:"text",rendering:r},...ur({},{...wv.textList,label:e}),render:({value:a,onChange:n})=>S(Nm,{label:e,icon:vs(o),items:Array.isArray(a)?a:[],placeholder:t,onChange:n,markup:r==="markup"})}}function Nm({label:e,icon:o,items:t,placeholder:r,onChange:a,markup:n=!1}){let s=Ic(null),[l,c]=Cs(null),d=m=>m.map(f=>({text:f?.text??""})),p=m=>{let f=T6(t,m,l);f===null&&(s.current=null),c(f),a(d(m))};return S(t3,{label:i(e),icon:o,noun:i("item"),items:t,onChange:p,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:n?S(Rp,{target:s,value:v6(t,l),onChange:m=>a(k6(t,l??-1,m)),disabled:l===null,label:l===null?i("Formatting \u2014 click a row first"):i("Formatting \u2014 row {n}",{n:l+1})}):void 0,renderRow:(m,f,x)=>S("input",{type:"text",className:n&&l===f?"sf-list-marking":void 0,value:m?.text??"",placeholder:i(r),"aria-label":i("{label} {n}",{label:i(e),n:f+1}),onChange:g=>x({text:g.target.value}),onFocus:g=>{s.current=g.currentTarget,c(f)}})})}function Mv(e,o){let t=`${e.label} \u2014 row ${o+1}`;return Jr({control:"plainText",label:t,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:r,onChange:a})=>S(Zr,{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:tt("Cards"),coverIndex:ot("Cover image",S(G4,{}),tw,String(1),e?.coverHint??"A card's opening picture \u2014 a card pinned to a finish keeps its own."),imageBackground:M3("Image background",cc),cardImage:O6()}}function zv(){return{outline:ot("Card outline",S(K4,{}),Mp,Dp),indexBadge:ot("Card number",S(uv,{}),Np,Bp),showBadge:x6("Product badge",!0,S(vp,{noun:"tag"}))}}function Gv(e){let o=e?.defaults??{showCardSizes:!0,showCardBuy:!0,showCardPage:!0},t=a=>({...yc,label:xc.find(n=>n.id===a).label}),r=a=>ur(f3(Tm),t(a));return{_gShowOnCard:tt("Show on a card"),[Tm]:ur({type:"custom",render:()=>S(P6,{rest:{showCardPrice:!0,showCardFinishes:!0,...o}})},t(Tm)),showCardFinishes:r("showCardFinishes"),showCardSizes:r("showCardSizes"),showCardBuy:r("showCardBuy"),showCardPage:r("showCardPage")}}var Tm="showCardPrice",xc=[{id:"showCardPrice",label:"Price"},{id:"showCardFinishes",label:"Finish swatches"},{id:"showCardSizes",label:"Sizes"},{id:"showCardBuy",label:"Buy button"},{id:"showCardPage",label:"Page button"}];function P6({rest:e}){let o=Mo(),t=Hp(),r=s=>typeof o[s]=="boolean"?o[s]:void 0,a=s=>r(s)??e[s],n=xc.some(({id:s})=>r(s)!==void 0&&r(s)!==e[s]);return S(Mm,{parts:xc,changed:n,shown:a,onPress:(s,l)=>t({[s]:l}),onReset:()=>t(Object.fromEntries(xc.map(({id:s})=>[s,void 0])))})}function Lue(e,o="display"){let t=Ft(o);return{[o]:Bt("desktop",{type:"custom",render:({value:r,onChange:a})=>S(Mm,{parts:e,changed:US(r),shown:n=>Bi(r,n),onPress:(n,s)=>a(jS(r,n,s)),onReset:()=>a(void 0)})}),[t]:Bt("mobile",{type:"custom",render:({value:r,onChange:a})=>S(E6,{parts:e,desktopKey:o,value:r,onChange:a})})}}function Mm({parts:e,changed:o,shown:t,onPress:r,onReset:a,detail:n,disabledReason:s}){let l=i("Display");return S(Je,{label:l,icon:S(P4,{}),changed:o,action:S(xo,{words:oe()?.panel,label:l,changed:o,detail:n,onReset:a}),children:S(r3,{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 E6({parts:e,desktopKey:o,value:t,onChange:r}){let a=Mo()[o];return S(Mm,{parts:e,changed:$S(t),shown:n=>Pp(a,t,n),onPress:(n,s)=>r(KS(t,n,s)),onReset:()=>r(Hi),detail:i("the same as Desktop")})}function O6(){return Tv("Card image",{min:Lo,max:_r,step:uS,hint:"Rounds the picture. The card's own corner is in Styles."})}function Bue(){return Am({sidesKey:"cornerSides",step:pS,useFollowed:()=>Lo,mark:S(_6,{label:mS}),hint:i("Rounds the picture. Left alone it stays square.")})}function _6({label:e,changed:o=!1,onReset:t=()=>{}}){return S(xo,{words:oe()?.panel,label:i(e),changed:o,onReset:t})}function Due(){return{type:"custom",render:({value:e,onChange:o})=>S(L6,{value:typeof e=="string"?e:"",onChange:o})}}function R6({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:gS(e).map(([t,r],a)=>S("i",{className:"block rounded-xs bg-current opacity-60",style:{gridColumn:`span ${t}`,gridRow:`span ${r}`}},a))})}var A6={width:"3.5rem",height:"2.5rem"},F6=200;function L6({value:e,onChange:o}){let[t,r]=Cs(null),[a,n]=Cs(4),s=Ic(null);S4(()=>{let f=s.current;if(!f||typeof ResizeObserver!="function")return;let x=()=>n(f.getBoundingClientRect().width>=F6?4:3);x();let g=new ResizeObserver(x);return g.observe(f),()=>g.disconnect()},[]);let l=e&&e in _t?e:"",c=xp(t,l),d=xp(t,"").length,p=Oi("no-symbol"),m=[{value:"",label:i("Not chosen"),icon:p},...c.map(f=>({value:f,label:i(_t[f].label),icon:S(R6,{layout:_t[f],width:40})}))];return S(Je,{label:i("Layout"),icon:S(H4,{}),value:l?i(_t[l].label):void 0,children:S("div",{ref:s,style:{flex:"1 1 auto",minWidth:0},children:S(c3,{label:i("Layout"),value:l,emptyValue:"",options:m,onChange:o,columns:a,cell:A6,header:on("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(Z4,{options:[{id:"all",label:i("All")},...xS.map(f=>({id:String(f),label:String(f)}))],value:t===null?"all":String(t),ariaLabel:i("Photos in a row"),onChange:f=>r(f==="all"?null:Number(f))}),S("span",{className:"text-2xs text-ink-faint",children:i("{n} of {total} layouts",{n:d,total:hp.length})})]})})})})}import{decodePartId as J6}from"efficient-easel/draw";import{decodePartId as Wm,encodePartId as Bc}from"efficient-easel/draw";import{LINK_FIELD_MARKER as Zv,SCAFFOLD_FIELD_MARKER as Yv,TEXT_FIELD_MARKER as Dc}from"efficient-easel/draw";import{readHidable as Jv}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as G6}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as z6}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as Wv}from"efficient-easel/draw";import{readHidable as Uv}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as B6}from"efficient-easel/draw";var D6=B6,N6=["text","textarea"],M6=["textarea","plainTextarea"];function H6(e){return!e||typeof e!="object"?null:e[Wv]?.control??null}function an(e){let o=H6(e);return o&&D6.includes(o)?o:null}function Rc(e){return M6.includes(e)}function $v(e){return!e||typeof e!="object"?void 0:e[Wv]?.placeholder}function Ac(e){return Uv(e).text}function Hm(e,o,t){return N6.includes(e)?{text:t,hidden:Uv(o).hidden}:t}function jv(e,o,t,r){return Ac(e[o])===r?null:{...e,[o]:Hm(t,e[o],r)}}function Ps(e,o){return o?`${e}[${o.index}].${o.rowKey}`:e}function rt(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 Fc(e){if(!(!e||typeof e!="object"))return e[z6]}function zm(e){if(!e||typeof e!="object")return null;let o=e.arrayFields;return o&&typeof o=="object"?o:null}function Kv(e,o){if(!Array.isArray(o))return[];let t=Fc(e),r=[];if(t?.control==="textList"){let n=t.itemKey??"text";return o.forEach((s,l)=>{let c=ee(s?.[n]);c&&r.push({row:{index:l,rowKey:n},text:c})}),r}let a=zm(e);return a?(o.forEach((n,s)=>{for(let[l,c]of Object.entries(a)){if(!an(c))continue;let d=Ac(n?.[l])||Fc(c)?.placeholder||"";d&&r.push({row:{index:s,rowKey:l},text:d})}}),r):[]}function Es(e,o){if(Array.isArray(e))return e[o.index]?.[o.rowKey]}function Gm(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 qv(e,o,t,r,a){let n=Es(e[o],t);return Ac(n)===a?null:Gm(e,o,t,Hm(r,n,a))}function Vv(e,o){return o?`${e} \xB7 row ${o.index+1}`:e}var at="data-sf-part",rpe="data-sf-region-part",ape="data-sf-part-row";function npe(e,o){return`${e}[${o}]`}var spe="data-sf-part-kind",W6="data-sf-part-style-owner",U6="data-sf-part-style-kind";function lpe(e){for(let o=e;o;o=o.parentElement){let t=o.getAttribute(W6),r=o.getAttribute(U6);if(t&&r)return{owner:t,kind:r};if(o.getAttribute("data-easel-block"))return null}return null}var Xv=2;function nn(e){return Nr(e).replace(/\s+/gu,"")}function Lc(e,o,t){let r=e[Dc];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}=Jv(o);a?t.push(a):r.placeholder&&t.push(r.placeholder);return}if(!e[Zv]){if(e.type==="text"||e.type==="textarea"){let a=ee(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))Lc(s,a?.[n],t);return}if(e.objectFields&&o&&typeof o=="object")for(let[a,n]of Object.entries(e.objectFields))Lc(n,o[a],t)}}function Qv(e){if(!e||typeof e!="object")return!1;let o=e;return o[Zv]?!1:!!o[Dc]||o.type==="text"||o.type==="textarea"}function Nc(e,o){let t=e[Dc];return t?.label?t.label:typeof e.label=="string"?e.label:o}function Um(e){let o=e.indexOf(" (");return(o>0?e.slice(0,o):e).trim()}function ipe(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){if(!a||typeof a!="object"||ps(r))continue;let n=a,s=[];Lc(n,o?.[r],s),!s.length&&n[Yv]!==void 0&&Lc(n,n[Yv],s);let l=Nc(n,r),c=new Set;for(let{row:m,text:f}of Kv(n,o?.[r])){let x=nn(f);x.length<Xv||(c.add(x),t.push({key:r,label:l,texts:[x],row:m}))}let d=new Set(c),p=[];for(let m of s){let f=nn(m);f.length<Xv||d.has(f)||(d.add(f),p.push(f))}p.length&&t.push({key:r,label:l,texts:p})}return t}function $m(e){return!e.offPage&&!e.hidden}var $6=G6;function ek(e,o){if(!o||typeof o!="object"||ps(e)||ZS(o))return null;let t=o[Dc];return!t||!$6.includes(t.control)?null:t}function cpe(e,o){let t=ek(e,o);return t!==null&&t.identifier!==!0}function ok(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){let n=ek(r,a);if(!n)continue;let{text:s,hidden:l}=Jv(o?.[r]);if($m({offPage:n.offPage===!0,hidden:!!l}))continue;let c=s||n.placeholder||"",d=Nr(c).replace(/\s+/gu," ").trim();t.push({key:r,label:Um(Nc(a,r)),preview:d,offPage:n.offPage===!0,identifier:n.identifier===!0,hidden:!!l})}return t}function sn(e,o){let t=Fc(e);return t?.control==="textList"?o.rowKey===(t.itemKey??"text")?Mv(t,o.index):null:zm(e)?.[o.rowKey]??null}function Mc(e,o,t){let r=e.node.props,{key:a,row:n}=rt(e.propKey),s=n?qv(r,a,n,e.kind,o):jv(r,a,e.kind,o);return s?(t(e.zone,e.index,{...e.node,props:s}),!0):!1}import{readHidable as ak}from"efficient-easel/draw";import{isNodeList as j6}from"efficient-easel/data";var ln=e=>String(e+1).padStart(2,"0");var nk="Contents",K6="Flex",tk="Text",kpe="_contentsEntries",Tpe="_kickerNumber",sk="data-sf-kicker-number",q6=e=>ak(e).text.trim(),lk=e=>ES(e?.anchor),rk=e=>String(e.props?.id??""),V6=e=>!ak(e.props?.text).hidden&&!rs(e.props)&&!or(e.props);function jm(e){return Object.values(e.props??{}).filter(j6)}function ik(e){for(let o of jm(e))for(let t of o){if(t.props?._hidden)continue;if(t.type===tk&&V6(t))return t;if(t.type===tk)continue;let r=ik(t);if(r)return r}}function ck(e){return jm(e).some(o=>o.some(t=>t&&!t.props?._hidden&&(t.type===nk||ck(t))))}function Y6(e){let o=[],t=r=>{for(let a of r)if(!(!a||a.props?._hidden)){if(a.type===nk){o.push({contents:a,sections:[]});continue}if(a.type===K6&&lk(a.props)&&o.length&&!ck(a)){o[o.length-1].sections.push({box:a,kicker:ik(a)});continue}for(let n of jm(a))t(n)}};return t(e),o}function X6(e){return e.map(o=>({label:o.kicker?Nr(q6(o.kicker.props?.text)):"",anchor:lk(o.box.props)}))}function Ppe(e){let o=e?.length?Y6(e):[];if(!o.length)return null;let t=new Map,r=new Map;for(let a of o){let n=rk(a.contents);n&&t.set(n,X6(a.sections)),a.sections.forEach((s,l)=>{let c=s.kicker?rk(s.kicker):"";c&&r.set(c,ln(l))})}return{entries:t,numbers:r}}var Epe=e=>`${e} \xB7 `;var Q6=`[${sk}]`,ez=["bold","italic","underline","strike","link","sup","sub"],oz=["bullet","number"];function Vm(e,o){return e?[...ez,...o?oz:[]]:[]}function dk(e,o){let t=J6(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}=rt(a),d=o.components[n.type]?.fields?.[l],p=c?sn(d,c):d,m=an(p);if(!m)return null;let f=n.props??{};if(om(f)!==null||!c&&Cy(n.type,f,l)||n.type==="Text"&&l==="text"&&rs(f)||c&&!(Array.isArray(f[l])&&c.index<f[l].length))return null;let x=c?Es(f[l],c):f[l];return{node:n,selector:s,propKey:a,kind:m,stored:x,offPage:Sc(p)}}function Hc(e,o){let t=dk(e,o);if(!t)return null;let{text:r,hidden:a}=hr(t.stored);if(!$m({offPage:t.offPage,hidden:!!a}))return null;let n=Rc(t.kind);return{partId:e,value:r,rules:Dr,multiline:n,skip:Q6,offered:Vm(t.kind!=="plainText",n),write:s=>{let l=dk(e,o);l&&Mc({node:l.node,propKey:l.propKey,kind:l.kind,zone:l.selector.zone,index:l.selector.index},s,o.replace)}}}function Ym(e,o,t){return e?.isConnected&&e.getAttribute(at)===t?e:o?.querySelector(`[${at}="${zc(t)}"]`)??null}function zc(e){return e.replace(/["\\]/g,"\\$&")}function fk(e){let o=e.activeElement;return o?o.tagName==="IFRAME"||!!o.closest(".es-canvas"):!1}var Km=null,qm=new Set;function tz(){return Km}function Xm(e){if(e!==Km){Km=e;for(let o of qm)o()}}function rz(e){return qm.add(e),()=>{qm.delete(e)}}function uk(){return Z6(rz,tz,()=>null)}function pk(e,o){if(e.outer)return null;let t=o.getItemById(e.ownerId);if(!t)return null;let r=yy(t.type);return!r||yo(t.props)?null:{node:t,rows:r}}function iz(e,o){let t=pk(e,o),r=o.getItemById(e.nodeId);if(!t||!r)return null;let a=ju(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:az(e.ownerId,Ps(t.rows,{index:e.index,rowKey:a}))}function Gc(e,o){let t=iz(e,o);return t?Hc(t,o):null}function mk(e,o){return Gc(e,o)?.value}function hk(e,o){let t=Gc(e,o);return t?(t.write(e.text),!0):!1}function xk(e,o){let t=pk(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=nz(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=sz(n,s,c);break}case"delete":l=lz(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 cP,jsxs as Ws}from"react/jsx-runtime";import{Fragment as l$,useEffect as i$,useId as c$,useMemo as dP,useRef as d$,useState as Ir}from"react";import{useScreenDocument as gP}from"efficient-easel/screen/components/ScreenDocumentContext";import{UiIcon as Xh}from"efficient-easel/draw/client";import f$ from"efficient-easel/screen/components/SidePanelHead";import{jsx as re,Fragment as sa,jsxs as na}from"react/jsx-runtime";import{useEasel as oP,useRootFields as uU}from"efficient-easel/easel";import{Inspector as pU}from"efficient-easel/fields";import{SettingsGroup as mU}from"efficient-easel/panel";import{useEffect as hU,useRef as xU,useState as hd}from"react";import{jsx as Qr,Fragment as uz,jsxs as pz}from"react/jsx-runtime";import{useState as yk}from"react";import{SettingsDefaultReset as mz,SettingsField as hz}from"efficient-easel/panel";import{useEaselStrings as xz}from"efficient-easel/strings";import{AddIcon as Iz}from"efficient-easel/icons";import{Button as gz}from"efficient-shell/ui";import{iconOf as bz,noGlyph as yz}from"efficient-easel/screen/lib/document/box-fields";import{jsx as Wc,Fragment as cz,jsxs as Ik}from"react/jsx-runtime";import{Button as gk,Dialog as dz}from"efficient-shell/ui";function fz(e){return mo("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 bk({count:e,onCancel:o,onConfirm:t}){return Ik(dz,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Clear this site\u2019s colors?"),footer:Ik(cz,{children:[Wc(gk,{variant:"secondary",onClick:o,children:i("Cancel")}),Wc(gk,{variant:"danger",onClick:t,children:i("Clear colors")})]}),children:[Wc("p",{children:fz(e)}),Wc("p",{className:"mt-2 font-medium",children:i("This cannot be undone.")})]})}var Sz=yz("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"),wz="Reset color",Cz={selected:0,themes:[]};function vz(e){e(Cz)}function Sk({value:e,onChange:o}){let t=e?.themes??[],r=t.length===0,a=so(e),[n,s]=yk(!1),l=xz(),[c,d]=yk(null),p=(O,w)=>{o({...a,themes:a.themes.map((I,C)=>C===O?w:I)})},m=La(a).accent,f=new Set(a.themes.map(O=>O.brandInk).filter(Boolean)),x=ib.filter(O=>!f.has(O)).map(O=>cb(m,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})},k=()=>{let O=[...a.themes,{...bo(a.themes[a.selected])}];o({...a,themes:O,selected:O.length-1}),d(O.length-1)};return pz(uz,{children:[r?null:Qr(hz,{label:i(wz),icon:bz(Sz),labelId:"sf-theme-reset",action:Qr(mz,{label:i("all theme colors"),words:l.panel,changed:!0,onReset:()=>s(!0)})}),n&&Qr(bk,{count:t.length,onCancel:()=>s(!1),onConfirm:()=>{s(!1),vz(o)}}),Qr("div",{className:"sf-theme-list",role:"radiogroup","aria-label":i("Theme"),children:g.map((O,w)=>Qr(Wi,{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))}),Qr(gz,{variant:"secondary",leftIcon:Qr(Iz,{}),onClick:k,className:"sf-theme-add",children:i("Add new theme")})]})}import{jsx as Uc}from"react/jsx-runtime";import{SettingsDefaultReset as kz,SettingsField as Tz}from"efficient-easel/panel";import{SquareIcon as Pz}from"efficient-easel/icons";var Ez="Applies to panels, cards, inputs and buttons. Round things \u2014 color swatches, switches, status dots \u2014 stay round.",Zm="Corners";function wk({value:e,onChange:o,showHint:t=!0}){let r=e===null;return Uc(Tz,{label:i(Zm),icon:Uc(Pz,{}),value:r?i("Default"):`${e}px`,changed:!r,action:Uc(kz,{words:oe()?.panel,label:i(Zm),changed:!r,detail:i("the built-in corners"),onReset:()=>o(null)}),hint:t?i(Ez):void 0,children:Uc(_o,{min:Lo,max:_r,step:1,value:e??Lo,readout:!1,ariaLabel:i(Zm),onChange:o})})}import{jsx as Os}from"react/jsx-runtime";import{SettingsDefaultReset as Oz,SettingsField as _z}from"efficient-easel/panel";import{IconPicker as Rz}from"efficient-shell/ui";import{ShadowIcon as Az}from"efficient-easel/icons";var Jm={none:"None",soft:"Soft",lifted:"Lifted"},Fz="Applies to cards \u2014 products, brands, journal entries and filter cells. Round things like swatches and status dots are never shadowed.",Lz={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 Ck({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??yu;return Os(_z,{label:i("Card shadow"),icon:Os(Az,{}),value:i(Jm[a]),changed:!r,action:Os(Oz,{words:oe()?.panel,label:i("Card shadow"),changed:!r,detail:i(Jm[yu]),onReset:()=>o(null)}),hint:t?i(Fz):void 0,children:Os(Rz,{label:i("Card shadow"),value:a,options:bb.map(n=>({value:n,label:i(Jm[n]),icon:Os("span",{className:"sf-shadow-chip border border-line bg-surface",style:{boxShadow:Lz[n]}})})),onChange:o})})}import{jsx as vk}from"react/jsx-runtime";import{ShadowIcon as Bz}from"efficient-easel/icons";var Dz="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 kk({value:e,onChange:o,showHint:t=!0}){let r=e===null;return vk(us,{label:i("Shadow color"),icon:vk(Bz,{}),value:e??"",inherited:wu,resetTo:wu,onChange:o,onReset:()=>o(null),hint:t?i(Dz):void 0})}import{jsx as jc}from"react/jsx-runtime";import{SettingsDefaultReset as Nz,SettingsField as Mz}from"efficient-easel/panel";import{AlignSeparateIcon as Hz}from"efficient-easel/icons";function $c(e,o){return e==="tablet"?null:e==="mobile"?o.phone:o.desktop}var zz="The space between the blocks inside a row, a grid or a box. Default means each one keeps the spacing it already has.",Gz="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.",Qm="Block gap",Tk=Za.Grid;function Pk(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:Im(o.gap)}})}function Ek({value:e,onChange:o,showHint:t=!0,followsPx:r=null}){let a=e===null,n=r===null?null:`${r}px`;return jc(Mz,{label:i(Qm),labelId:"sf-block-gap",icon:jc(Hz,{}),value:a?n??i("Default"):`${e}px`,changed:!a,action:jc(Nz,{words:oe()?.panel,label:i(Qm),changed:!a,detail:n??i("each block's own spacing"),onReset:()=>o(null)}),hint:t?i(n===null?zz:Gz):void 0,children:jc(_o,{min:qr.min,max:qr.max,step:qr.step,value:e??(r===null?Tk:ys(r)??Tk),readout:!1,ariaLabel:i(Qm),onChange:o})})}import{jsx as Jc}from"react/jsx-runtime";import{SettingsDefaultReset as Kz,SettingsField as qz,SettingsSegmented as Vz}from"efficient-easel/panel";import{HoverIcon as Yz}from"efficient-easel/icons";import{HOVER_MOTION as Wz,motionSeconds as Kc,rotateDegrees as Ume}from"efficient-shell/format";var Ro="hover",qc="_gHover",Uz=["none","nextImage","rotate","zoom","lift","mono"],Rs={none:"None",nextImage:"Show next image",rotate:"Rotate",zoom:"Zoom",lift:"Lift",mono:"Black and white"};function Vc(e){return Uz.filter(o=>e.includes(o))}var eh=Vc(["none","lift"]);function Ok(e){let o=e[Ro];return eh.includes(o)?o:"none"}var Yc=Vc(["none","rotate"]),_e={kind:Ro,angle:"hoverAngle",duration:"hoverDuration",delay:"hoverDelay"},_s="spinOnHover",cn={min:0,max:360,step:1},_k={ProductGrid:"rotate",RelatedProducts:"rotate",AlloyWheelsListing:"none"},jme=Object.keys(_k);function oh(e){return _k[e]??"none"}var th=Wz.rotateFallbackDeg;function rh(e,o){let t=e[_e.kind];if(Yc.includes(t))return t;let r=e[_s];return typeof r=="boolean"?r?"rotate":"none":o}function ah(e){let o=U(e);return o===void 0?th:Math.min(cn.max,Math.max(cn.min,o))}function Kme(e,o){let t=oh(o),r=rh(e,t);return{kind:r,angle:r==="rotate"?ah(e[_e.angle]):null,angleSet:r==="rotate"&&U(e[_e.angle])!==void 0,duration:Kc("hover","duration",r==="rotate"?e[_e.duration]:void 0),delay:Kc("hover","delay",r==="rotate"?e[_e.delay]:void 0)}}function Rk(e){let o={field:_e.kind,in:[...Yc]};return{any:[{field:_e.kind,is:"rotate"},{all:[{not:o},e==="rotate"?{not:{field:_s,is:!1}}:{field:_s,is:!0}]}]}}var Xc=Vc(["none","mono"]),nh=Vc(["none","nextImage","mono"]),Ak={ImageBlock:"none",Manifesto:"none",Split:"none",ContactLocations:"mono"},qme=Object.keys(Ak);function sh(e){return Ak[e]??"none"}var As={zoom:"hoverZoom",darken:"hoverDarken"},Nt={min:100,max:150,step:1,unit:"%"},Zc=["nextImage"];function $z(e,o){if(!Zc.includes(o))return null;let t=U(e[As.zoom]);if(t===void 0)return null;let r=Math.min(Nt.max,Math.max(Nt.min,t));return r===Nt.min?null:String(r/100)}function jz(e,o){if(!Zc.includes(o))return null;let t=U(e[As.darken]);return t!==void 0&&t>0?t:null}var lh=["ImageBlock"];function ih(e,o,t=Xc){let r=e[Ro];return t.includes(r)?r:o}function Fk(e,o=""){let t=lh.includes(o)?nh:Xc,r=ih(e,sh(o),t),a=r!=="none";return{kind:r,duration:Kc("hover","duration",a?e[_e.duration]:void 0),delay:Kc("hover","delay",a?e[_e.delay]:void 0),...Zc.includes(r)?{zoom:$z(e,r),darken:jz(e,r)}:{}}}function Lk(){return{field:Ro,in:[...Zc]}}function Bk(e){return e==="none"?{field:Ro,in:["mono","nextImage"]}:{not:{field:Ro,is:"none"}}}var ch={none:Rs.none,lift:Rs.lift,highlight:"Highlight"},Xz="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 Dk({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??Su;return Jc(qz,{label:i("Hover effect"),icon:Jc(Yz,{}),value:i(ch[a]),changed:!r,action:Jc(Kz,{words:oe()?.panel,label:i("Hover effect"),changed:!r,detail:i(ch[Su]),onReset:()=>o(null)}),hint:t?i(Xz):void 0,children:Jc(Vz,{options:yb.map(n=>({id:n,label:i(ch[n])})),value:a,ariaLabel:i("Hover effect"),onChange:o})})}import{jsx as Qc}from"react/jsx-runtime";import{SettingsDefaultReset as Zz,SettingsField as Jz,SettingsSegmented as Qz}from"efficient-easel/panel";import{DropIcon as eG}from"efficient-easel/icons";var dh="Photography",Nk={shot:"As shot",mono:"Black and white"},fh=[{grayscale:!1,label:Nk.shot},{grayscale:!0,label:Nk.mono}],oG="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 Qc(Jz,{label:i(dh),icon:Qc(eG,{}),value:i(fh.find(n=>n.grayscale===a).label),changed:!r,action:Qc(Zz,{words:oe()?.panel,label:i(dh),changed:!r,detail:i(fh.find(n=>!n.grayscale).label),onReset:()=>o(null)}),hint:t?i(oG):void 0,children:Qc(Qz,{options:fh.map(n=>({id:n.grayscale,label:i(n.label)})),value:a,ariaLabel:i(dh),onChange:o})})}import{jsx as uh}from"react/jsx-runtime";import{useId as tG}from"react";import{SettingsField as rG,SettingsSwitch as aG}from"efficient-easel/panel";import{ShareIcon as nG}from"efficient-easel/icons";var sG="Share button",lG="On every blog post.";function Hk({value:e,onChange:o,showHint:t=!0}){let r=tG();return uh(rG,{label:i(sG),labelId:r,icon:uh(nG,{}),action:uh(aG,{checked:e===!0,onChange:o,ariaLabelledBy:r}),hint:t?i(lG):void 0})}import{usePreviewDevice as Kh}from"efficient-easel/draw/client";import{jsx as rd}from"react/jsx-runtime";import{SettingsDefaultReset as yG,SettingsField as SG}from"efficient-easel/panel";import{PaddingXIcon as wG}from"efficient-easel/icons";var co={min:1e3,max:2e3,step:50,default:1600};function iG(e){return{maxWidth:e,marginInline:"auto",width:"100%"}}var zk="--sf-site-width",ph=`var(${zk},${co.default}px)`,phe=`max-w-[${ph}]`,mhe=`max-w-[${co.default}px]`;function cG(e){return typeof e!="number"||!Number.isFinite(e)?co.default:Math.round(Math.min(Math.max(e,co.min),co.max))}function hhe(e){let o=cG(e);return o===co.default?{}:{[zk]:`${o}px`}}var Mt={min:0,max:80,step:4,default:40},Gk="--sf-site-gutter",Fs={min:0,max:24,step:4},dG="--sf-site-gutter-phone",fG="max-view-tablet:[--sf-site-gutter:var(--sf-site-gutter-phone)]!",nt=`var(${Gk},${Mt.default}px)`,uG=`px-[${nt}]`;var xr={md:`min(24px,${nt})`,sm:`min(20px,${nt})`,frame:`min(24px,${nt})`,tabs:`min(16px,${nt})`},xhe=[[`max-view-desktop:px-[${xr.md}]`,"max-view-desktop:px-6"],[`max-view-desktop:px-[${xr.tabs}]`,"max-view-desktop:px-4"],[`max-[960px]:px-[${xr.frame}]`,"max-[960px]:px-6"],[`max-[900px]:px-[${xr.md}]`,"max-[900px]:px-6"],[`max-view-wide:px-[${xr.md}]`,"max-view-wide:px-6"],[`max-view-tablet:px-[${xr.sm}]`,"max-view-tablet:px-5"],[`max-view-wide:px-[${xr.sm}]`,"max-view-wide:px-5"],[`max-[640px]:px-[${xr.sm}]`,"max-[640px]:px-5"],[`view-wide:px-[${nt}]`,"view-wide:px-10"],[`max-view-tablet:px-[min(24px,${nt})]`,"max-view-tablet:px-6"],[`max-view-wide:-mx-[min(20px,${nt})]`,"max-view-wide:-mx-5"],[`max-view-tablet:-mx-[min(20px,${nt})]`,"max-view-tablet:-mx-5"],[`-mx-[${nt}]`,"-mx-10"],[uG,"px-10"]];var Ihe="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))]",ghe="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 ed(e){return typeof e!="number"||!Number.isFinite(e)?Mt.default:Math.round(Math.min(Math.max(e,Mt.min),Mt.max))}function bhe(e){let o=ed(e);return o===Mt.default?{}:{[Gk]:`${o}px`}}function od(e){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,Fs.min),Fs.max))}function yhe(e){let o=od(e);return o===null?{}:{[dG]:`${o}px`}}function She(e){return od(e)===null?"":fG}function td(e){return Math.min(Fs.max,ed(e))}var Wk=ph,whe=`max-w-[${Wk}]`,Che=`max-w-[min(var(--sf-page-cap,${co.default}px),${co.default}px)]`,Uk="--sf-hero-cap",pG=`var(${Uk},none)`,vhe=`max-w-[${pG}]`,mG="--sf-hero-bleed-m",hG="--sf-hero-bleed-w",xG="--sf-hero-chrome-x",IG="--sf-hero-chrome-cap";function khe(e){return e===!0?{[Uk]:Wk,[mG]:"auto",[hG]:"100%",[xG]:"24px",[IG]:"none"}:{}}var mh=`calc(${ph} - ${nt}*2)`,The=`max-w-[${mh.replace(/ /g,"_")}]`;var gG="--sf-chrome-cap",bG=`var(${gG},${mh})`,Phe="data-page-width";function Ehe(e){return e==="full"?"full":null}function Ohe(e){return e==="full"?null:iG(e==="content"?mh:bG)}function _he(e){if(e==="full")return"full";if(e==="content")return"content"}var hh="Side space",$k=Mt.default,CG="The room left at the left and right edge of every page.";function jk(e,o){return $c(e,{desktop:{key:"site_gutter",value:o.gutter,unsetPx:$k,bounds:Mt},phone:{key:"site_gutter_phone",value:o.phone,unsetPx:td(o.gutter),bounds:Fs}})}function Kk({value:e,onChange:o,showHint:t=!0,unsetPx:r=$k,bounds:a=Mt}){let n=e===null;return rd(SG,{label:i(hh),labelId:"sf-side-space",icon:rd(wG,{}),value:`${e??r}px`,changed:!n,action:rd(yG,{words:oe()?.panel,label:i(hh),changed:!n,detail:`${r}px`,onReset:()=>o(null)}),hint:t?i(CG):void 0,children:rd(_o,{min:a.min,max:a.max,step:a.step,value:e??r,readout:!1,ariaLabel:i(hh),onChange:o})})}import{jsx as xh}from"react/jsx-runtime";import{BACKGROUND_WIDTHS as Whe,SettingsBackgroundWidth as vG,SettingsContentWidth as kG}from"efficient-easel/panel";var TG="Background width",PG="Content width";var ad=e=>i(Yr[e==="content"?"page":"full"]),qk="The width of every section's background.",Vk="The width of every section's content.";function Yk({value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n,labelId:s}){return xh(vG,{value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n?i(n):void 0,labelId:s,words:{label:i(TG),full:ad("full"),content:ad("content")},resetWords:oe()?.panel})}function Xk({mode:e,px:o,max:t=co.max,min:r=co.min,changed:a,detail:n,onMode:s,onPx:l,onReset:c,hint:d,labelId:p}){let m=i(PG),f=e!=="full"?xh(_o,{min:r,max:t,step:co.step,value:Math.min(Math.max(o,r),t),onChange:l,suffix:"px",ariaLabel:m}):null;return xh(kG,{mode:e,onMode:s,number:f,changed:a,detail:n,onReset:c,hint:d?i(d):void 0,labelId:p,words:{label:m,full:ad("full"),content:ad("content")},resetWords:oe()?.panel})}import{jsx as jT}from"react/jsx-runtime";import{TextStyleItem as WW,TextStylesGroup as UW}from"efficient-easel/text-styles";import{jsx as BW}from"react/jsx-runtime";import{useState as DW}from"react";import{TextStylesList as NW}from"efficient-easel/text-styles";import{parseHexColor as Qk}from"efficient-shell/format";import{COLOR_SLOTS as eT,colorRole as EG}from"efficient-shell/markup";var oT={main:as.accent,text:as.text,background:"var(--bg)",muted:as.labels},OG={main:"Main",text:"Text",background:"Background",muted:"Muted"},Zk={accent:"main",labels:"muted"};function ea(e){return Object.hasOwn(Zk,e)?Zk[e]:e}function dn(e){if(!e)return"";if(e.startsWith("#"))return Qk(e)===e.toLowerCase()?e:"";let o=EG(ea(e));return o?.kind==="slot"?oT[o.slot]:""}var _G="#9ca3af";function fn(e){return eT.map(o=>({name:o,label:i(OG[o]),value:e?.[o]||_G}))}function tT(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 eT){let l=oT[s].replace(/^var\((--[\w-]+)\)$/,"$1"),c=a.getPropertyValue(l).trim();if(!c)continue;let d=Jk(c);!d&&n&&(n.fillStyle="#000000",n.fillStyle=c,d=Jk(String(n.fillStyle))),d&&(o[s]=d)}return o}function Jk(e){let o=e.trim().toLowerCase();if(o.startsWith("#"))return Qk(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 rT="background";function aT(e){let o=bo(La(e));return fn({main:o.accent,text:o.text,background:o.background,muted:o.muted}).map(t=>({key:t.name,name:t.label??t.name,value:t.value}))}function nT(e){return aT(e).filter(o=>o.key!==rT)}function sT(e){return aT(e).filter(o=>o.key===rT)}function lT(e,o){return e.map(t=>{let r=o.find(a=>a.key===t.values.color);return r?{...t,values:{...t.values,color:r.value}}:t})}function iT(e,o,t,r){return e.map(a=>{if(o.some(c=>c.id===a.id))return a;let n=o.filter(c=>c.kind===a.kind).at(-1),s=t.find(c=>c.id===n?.id)?.values.color,l=r.find(c=>c.key===s);return l&&l.value===a.values.color?{...a,values:{...a.values,color:l.key}}:a})}import{usePreviewDevice as MW}from"efficient-easel/draw/client";import{defaultTextStyles as RT,textStyleCaseCss as TW,textStyleViewKey as PW}from"efficient-easel/text-styles/model";import{phoneKey as EW,resolveViewValue as AT,tabletKey as OW}from"efficient-easel/draw";import{textStyleCaseCss as AG,textStyleCaseOfCss as FG}from"efficient-easel/draw";var nd="data-sf-spec-region";function cT(e){return e.writable===!0&&e.sized===!0}function sd(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 un(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 Ih(e){return`@${e}`}function Ls(e,o){if(!o.startsWith("@"))return null;let t=o.slice(1);return t in e?t:null}function RG(e,o){return o&&o in e?o:null}function pn(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function mn(e,o){return pn(e?.[o])??{}}function ld(e,o,t){let r=mn(e,o);return Object.hasOwn(r,t)?pn(r[t])??{}:{}}function id(e,o,t,r){let{[t]:a,...n}=mn(e,o),s=r?{...n,[t]:r}:n,{[o]:l,...c}=e;return Object.keys(s).length?{...c,[o]:s}:c}var yh="_partStyles",Sh="data-sf-part-styled",hn="data-sf-text-style",LG=/^(heading|body)-[1-7]$/;function ta(e){return typeof e=="string"&&LG.test(e)}var dd={heading:"heading-1",heading2:"heading-2",heading3:"heading-3",body:"body-1",label:"body-5"};function BG(e){if(!e)return null;for(let[o,t]of Object.entries(dd))if(t===e)return o;return null}function wh(e){if(ta(e.textStyle))return e.textStyle;let o=Pt(e.role);return o?dd[o]:void 0}var DG=[400,500,600,700],cd=["left","center","right","justify"],dT=5,fT=1e3,NG=-5,MG=10,Ch=0,vh=64,kh=2,uT={size:{min:dT,max:fT,step:1},sizePhone:{min:dT,max:fT,step:1},padding:{min:Ch,max:vh,step:kh}},HG=.05,zG=.01,GG=["line","letter"],WG=.5,UG=2.5,$G=-1,jG=1,KG=0,qG=400,VG=[...new Set(Object.values(Ma))];function gT(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 uxe(e){return mn(e,yh)}function Ds(e,o){return ld(e,yh,o)}function bT(e,o,t){return id(e,yh,o,YG(t).length?t:null)}function YG(e){return Object.entries(e).filter(([,o])=>o!==void 0)}function XG(e){return GG.includes(e)}var Bs=(e,o,t)=>Math.min(t,Math.max(o,e));function ZG(e,o){if(XG(e)){let t=Math.round(Number(o));return!Number.isFinite(t)||t===0?null:Bs(t,NG,MG)}if(e==="lineHeight"){let t=Number(o);return Number.isFinite(t)?xn(Bs(t,WG,UG),3):null}if(e==="letterSpacing"){let t=Number(o);return Number.isFinite(t)?xn(Bs(t,$G,jG),4):null}if(e==="paragraphSpacing"){let t=Math.round(Number(o));return!Number.isFinite(t)||t<=0?null:Bs(t,KG,qG)}if(Object.hasOwn(uT,e)){let{min:t,max:r}=uT[e],a=Math.round(Number(o));return Number.isFinite(a)?Bs(a,t,r):null}return e==="italic"?typeof o=="boolean"?o:null:e==="role"||e==="fontRole"?Pt(o)?o:null:e==="sizeToken"?Ph(o)?o:null:e==="textStyle"?ta(o)?o:null:e==="alignPhone"?cd.includes(o)?o:null:o}var JG=["weight","size","sizePhone","line","letter","lineHeight","letterSpacing","paragraphSpacing","padding"];function Th(e){let o=null,t=r=>{o??={...e},delete o[r]};for(let r of JG){let a=e[r];a!==void 0&&!(typeof a=="number"&&Number.isFinite(a))&&t(r)}return e.align!==void 0&&!cd.includes(e.align)&&t("align"),e.alignPhone!==void 0&&!cd.includes(e.alignPhone)&&t("alignPhone"),e.textStyle!==void 0&&!ta(e.textStyle)&&t("textStyle"),e.sizeToken!==void 0&&!Ph(e.sizeToken)&&t("sizeToken"),e.fontRole!==void 0&&!Pt(e.fontRole)&&t("fontRole"),o??e}function Ph(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"&&VG.includes(c);return l(o)&&s(t)&&(r===void 0||l(r))&&(a===void 0||s(a))&&(n===void 0||QG(n,t))}function QG(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 yT(e){return e?.pxPhone&&Ph(e)?{step:e.stepPhone??e.step,px:e.pxPhone}:null}function ST({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 eW=[["font","role"],["font","fontRole"],["role","textStyle"],["line","lineHeight"],["letter","letterSpacing"]];function oW(e){let o=[];for(let[t,r]of eW)t===e?o.push(r):r===e&&o.push(t);return o}function ra(e,o,t,r){let a={...Ds(e,o)},n=r==null?null:ZG(t,r);if(n===null)delete a[t];else{a[t]=n;for(let s of oW(t))delete a[s]}return bT(e,o,a)}function wT(e,o){return bT(e,o,{})}function tW(e){return FG(e)??"none"}function rW(e){return AG(e)??""}var pT={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 aW(e,o){return Pt(e.role)||(o?.blockDrawsStyle?null:BG(e.textStyle))}function CT(e,o){return e==="Text"&&o==="text"}var nW={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 sW(e){let o=Ma[e],t=nW[o];return t?`var(--size-${o}, ${t})`:`var(--size-${o})`}function Ns(e){let o={};return typeof e.lineHeight=="number"?o.lineHeight=e.lineHeight:e.line&&(o.lineHeight=xn(lW+e.line*HG,3)),typeof e.letterSpacing=="number"?o.letterSpacingEm=e.letterSpacing:e.letter&&(o.letterSpacingEm=xn(e.letter*zG,4)),o}var lW=1,oa="--sf-part-para";function iW(e){e=Th(e);let o={};if(typeof e.sizePhone=="number"&&e.sizePhone>0)o.fontSize=`${e.sizePhone}px`;else{let t=yT(e.sizeToken);t&&(o.fontSize=ST(t))}return e.alignPhone&&(o.textAlign=e.alignPhone),o}function cW(e,o){if(!o)return e;let t=Th(e),r=e;if(typeof t.sizePhone=="number"&&t.sizePhone>0)r={...r,size:t.sizePhone};else{let a=yT(t.sizeToken);a&&(r={...r,size:void 0,sizeToken:a})}return t.alignPhone&&(r={...r,align:t.alignPhone}),r}function Eh(e,o,t){return Oh(cW(e,o),fd,t)}function vT(e,o){let t=o?"sizePhone":"size";if(!Object.hasOwn(e,t))return e;let r={...e};return delete r[t],r}function pxe(e,o,t){let r=Eh(vT(e,o),o,t);return{fontFamily:r.fontFamily,fontSize:r.fontSize}}function Oh(e,o,t){e=Th(e);let r=aW(e,t),a=Ns(e),n=e.size?`${e.size}px`:e.sizeToken?ST(e.sizeToken):r?sW(r):"";return{fontFamily:e.font?pW(e.font):e.fontRole?`var(${pT[e.fontRole]})`:r?`var(${pT[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`:"",[oa]:e.paragraphSpacing?`${e.paragraphSpacing}px`:"",textTransform:rW(e.case),textAlign:e.align??"",paddingTop:mT(e.padding),paddingBottom:mT(e.padding),color:dW(e.color),fontStyle:e.italic===!0?"italic":e.italic===!1?"normal":""}}var dW=e=>dn(e),mT=e=>e===void 0?"":`${e}px`,xn=(e,o)=>Number(e.toFixed(o));function mxe(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:fW(Number.parseInt(e.fontWeight,10)),lineRatio:Number.isFinite(r)?xn(r/t,3):1.2,letterEm:Number.isFinite(a)?xn(a/t,4):0,align:uW(e.textAlign),case:tW(e.textTransform),paddingPx:Number.isFinite(n)?Math.round(n):0}}function fW(e){return Number.isFinite(e)?DG.reduce((o,t)=>Math.abs(t-e)<Math.abs(o-e)?t:o):400}function uW(e){for(let o of cd)if(o===e)return o;return e==="end"?"right":"left"}function hxe(e,o){let t=hT(e);if(!t)return"";for(let r of qo)if(hT(o(r.cssVar))===t)return r.key;return""}var hT=e=>(e.split(",")[0]??"").replace(/["']/g,"").replace(/\s+/g," ").trim().toLowerCase();function pW(e){let o=Na(e);return o?`var(${o.cssVar})`:""}function xxe(e,o,t,r){return!o||Wm(o)?.nodeId!==e?null:t.find(a=>r(a.getAttribute("class")))??t[0]??null}function mW(e,o){return Object.hasOwn(e,o)?pn(e[o])??{}:{}}function Ixe(e,o,t=()=>fd,r=l=>l,a=IW,n=!1,s=()=>!1){let l=0;for(let{element:c,partId:d}of e){let p=Wm(d)?.propKey;if(!p)continue;let m=mW(o,r(p)),f=Eh(m,n,{blockDrawsStyle:s(p)});ta(m.textStyle)?c.setAttribute?.(hn,m.textStyle):c.removeAttribute?.(hn);let x=gh.some(y=>c.style[y]),g=!1;for(let[y,k]of Object.entries(f))yW(c,y,k),k&&(g=!0);if(x||gh.some(y=>f[y]))for(let y of hW(c,a))for(let k of gh)y.style[k]=f[k]??"";g&&(l+=1)}return l}function hW(e,o){let t=nn(e.textContent??""),r=[],a=e;for(let n=0;n<xW&&o(a);n+=1){let s=a.parentElement;if(!s||nn(s.textContent??"")!==t)break;r.push(s),a=s}return r}var xW=8;function IW(e){let o=e;return typeof window>"u"||!o?.ownerDocument?!1:window.getComputedStyle(o).display==="inline"}var fd={fontKey:"",sizePx:16,weight:400,lineRatio:1,letterEm:0,align:"left",case:"none",paddingPx:0};function gW(e){if(!e||typeof e!="object")return null;let o={};return ta(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 bW(e,o){let t=gW(e);if(!t)return{};let r=Eh(t,o);return{...r.fontFamily?{fontFamily:r.fontFamily}:{},...r.fontSize?{fontSize:r.fontSize}:{}}}function kT(e){return ta(e?.textStyle)||!!e?.role||typeof e?.size=="number"&&e.size>0}function gxe(e,o,t){if(!e||typeof e!="object")return{};let r=sd(e.role,o,Ma)??{},a=o.sized?bW(vT(e,t),t):{};return{...r,...a}}function bxe(e,o,t){t.fontFamily&&e.fontFamily===t.fontFamily&&(e.fontFamily=o.fontFamily),t.fontSize&&e.fontSize===t.fontSize&&(e.fontSize=o.fontSize)}function yW(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===oa&&(t?a.setAttribute?.(xT,""):a.removeAttribute?.(xT))}var xT="data-sf-part-para",SW=Object.keys(Oh({},fd)),bh=new Set(["color","overflowWrap",oa,"fontStyle"]),gh=SW.filter(e=>!bh.has(e));function TT(e,o,t,r=l=>l,a=()=>!1,n=()=>null,s=[]){let l=new Map;for(let p of e){let m=Ps(p.key,p.row);for(let f of p.texts){let x=l.get(f);x?(x.keys.add(p.key),x.partKeys.add(m)):l.set(f,{keys:new Set([p.key]),partKeys:new Set([m])})}}let c=new Map;for(let p of new Set([...Object.keys(o),...s])){if(!wW(p))continue;let m=IT(t,p,pn(o[p])??{},!1,n(p));m&&c.set(p,m)}let d=new Map;for(let[p,{keys:m,partKeys:f}]of l){let x=f.size===1?[...f][0]:m.size===1?[...m][0]:null;if(!x)continue;let g=r(x),y=n(g);if(!Object.hasOwn(o,g)&&!y)continue;let k=pn(o[g])??{},O=IT(t,x,k,a(x),y);O&&d.set(p,O)}return d.size||c.size?{rules:d,kindRules:c,drawn:new Set(l.keys())}:null}function IT(e,o,t,r,a){let n=Oh(t,fd,{blockDrawsStyle:r}),s=iW(t),l=ta(t.textStyle)?t.textStyle:void 0;return!Object.values(n).some(Boolean)&&!Object.keys(s).length&&!l&&!a?null:{stamp:CW(e,o),declarations:n,...Object.keys(s).length?{phone:s}:{},...l?{textStyle:l}:{},...a?{motion:a}:{}}}function wW(e){return e.startsWith("@")}function _h(e,o){return e?.kindRules.get(o)??null}function CW(e,o){let t=r=>r.replace(/[^A-Za-z0-9_-]+/g,"-");return`${t(e)}~${t(o)}`}function PT(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])=>`${vW(g)}: ${y}`).join("; "),d=`[${Sh}="${n}"]`,p=l.filter(([x])=>!bh.has(x)),m=l.filter(([x])=>bh.has(x));p.length&&o.push(`${d}, *:has(> ${d}) { ${c(p)} }`),m.length&&o.push(`${d} { ${c(m)} }`),s[oa]&&(o.push(`*:has(> ${d}) { ${oa}: ${s[oa]} }`),o.push(...ud(d,`*:has(> ${d})`)));let f=Object.entries(a.phone??{}).filter(([,x])=>x!=="");f.length&&o.push(`@media ${Va} { ${d}, *:has(> ${d}) { ${c(f)} } }`)};for(let a of e.rules.values())r(a);for(let a of e.kindRules.values())r(a);return o.join(`
38
- `)}function ud(e,o){let t=`var(${oa})`,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 vW=e=>e.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`);function ET(e,o){if(!e)return null;let t=nn(o),r=e.rules.get(t);if(r)return r;if(t.length<kW||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 kW=8;function OT(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 Rh=e=>e==="sentence"?"none":void 0,FT=["font","color","size","sizeTablet","sizePhone","weight","italic","lineHeight","lineHeightTablet","lineHeightPhone","letterSpacing","letterSpacingTablet","letterSpacingPhone","paragraphSpacing","paragraphSpacingTablet","paragraphSpacingPhone","letterCase","largestSize","largestSizeTablet","largestSizePhone"],In=["desktop","tablet","phone"],Ms=(e,o)=>o==="desktop"?e:o==="tablet"?OW(e):EW(e),aa=(e,o)=>o==="desktop"?e:PW(e,o);function Lh(e,o,t,r=Zi()){return AT("textSize",o,e.sizeTablet,e.sizePhone,r)[t]}var _W=[["lineSpacing","lineHeight","line"],["letterSpacing","letterSpacing","letter"]];function Ah(e){for(let[o,t,r]of _W)for(let a of In)if(e===aa(o,a))return{key:Ms(t,a),view:a,spacing:r};return{key:e,view:"desktop",spacing:null}}function St(e){let o={};for(let t of FT)e[t]!==void 0&&(o[t]=e[t]);return o}function Bh(e,o){let{auto:t,...r}=e,a=new Set(o??[]),n=FT.filter(s=>a.has(s)&&e.values[s]===void 0);return n.length?{...r,auto:n}:r}function LT(e){let o=e.fonts,t=e.sizes,r=e.typography,a=wb(e.compression),n={"heading-1":{font:ee(o.heading),size:U(t.headingLarge),weight:U(r.weight),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:Rh(r.case),largestSize:U(r.maxPx)},"heading-2":{font:ee(o.heading2),size:U(t.headingMedium),weight:U(r.weight2),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:Rh(r.case2)},"heading-3":{font:ee(o.heading3),size:U(t.headingSmall),weight:U(r.weight3),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:Rh(r.case3)},"body-1":{font:ee(o.body),size:U(t.body)},"body-5":{font:ee(o.label),size:U(t.label)}};return RT().map(({id:s,kind:l,name:c})=>({id:s,kind:l,name:c,values:St(n[s]??{})}))}function Dh(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=>Bh({...o,values:St(o.values??{})},Array.isArray(o.auto)?o.auto:void 0)):null}function Axe(e){return Dh(e)??[]}function BT(e){return Dh(e)??RT().map(({id:o,kind:t,name:r})=>({id:o,kind:t,name:r,values:{}}))}function Ht(e,o){let t=LT(o),r=Dh(e);return r?r.map(a=>{let n={...Fh(t,a.id)};for(let s of a.auto??[])delete n[s];return{...a,values:St({...n,...a.values})}}):t}var Fh=(e,o)=>e.find(t=>t.id===o)?.values??{},_T=["heading-1","heading-2","heading-3"];function DT({saved:e,old:o,cur:t,next:r,sizeOf:a,panelView:n="desktop"}){let s=LT(o),l=BT(e),c=Ht(l,o),d=[],p=r.map(f=>{let x=t.find(v=>v.id===f.id),g=l.find(v=>v.id===f.id);if(!x||!g)return RW([f],a,n)[0];let y={...g.values},k=new Set(g.auto??[]),O=f.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=>Ah(v).spacing==="letter";I.sort((v,A)=>Number(C(v))-Number(C(A)));for(let v of I){let{key:A,view:E,spacing:L}=Ah(v),T=A,R=O[v];if(R===void 0){delete y[T],Fh(s,f.id)[T]!==void 0&&(d.push([f.id,T]),k.add(T));continue}if(k.delete(T),L==="line")y[T]=gn(R/100,3);else if(L==="letter"){let N={...c.find(F=>F.id===f.id)?.values??{}};for(let F of I)O[F]===void 0&&delete N[Ah(F).key];let b=St({...N,...y}),_=Lh(b,a({...f,values:b}),E);y[T]=_?gn(R/_,4):0}else y[T]=R}return Bh({id:f.id,kind:f.kind,name:f.name,values:St(y)},k)}),m=o.compression;if(d.some(([f,x])=>(x==="lineHeight"||x==="letterSpacing")&&_T.includes(f))&&Rr(m)!=="normal"){for(let f of _T){let x=p.find(y=>y.id===f);if(!x)continue;let g={...x.values};for(let y of["lineHeight","letterSpacing"])d.some(([k,O])=>k===f&&O===y)||g[y]===void 0&&!(x.auto??[]).includes(y)&&(g[y]=Fh(s,f)[y]);x.values=St(g)}m="normal"}return{saved:p,old:{...o,compression:m}}}function NT(e,o){let t={text_styles:e.saved};return e.old.compression!==o.compression&&(t.heading_compression=Rr(e.old.compression)),t}var gn=(e,o)=>Number(e.toFixed(o)),MT=(e,o)=>In.indexOf(e)<In.indexOf(o)?o:e;function HT(e,o,t="desktop"){return e.map(r=>{let a={...r.values},n=o(r);for(let s of In){let l=Ms("lineHeight",s),c=r.values[l],d=r.values[Ms("letterSpacing",s)];delete a[l],c!==void 0&&(a[aa("lineSpacing",s)]=gn(c*100,1));let p=MT(s,t);d!==void 0&&(a[aa("letterSpacing",s)]=gn(d*Lh(r.values,n,p),p===s?2:4))}return typeof r.values.color=="string"&&(a.color=ea(r.values.color)),{id:r.id,kind:r.kind,name:r.name,values:a}})}function RW(e,o,t="desktop"){return e.map(r=>{let a=r.values,n={...a};for(let d of In)delete n[aa("lineSpacing",d)],delete n[aa("letterSpacing",d)];let s={id:r.id,kind:r.kind,name:r.name,values:St(n)},l={...s.values},c=o({...s,values:{...s.values}});for(let d of In){let p=a[aa("lineSpacing",d)],m=a[aa("letterSpacing",d)];if(typeof p=="number"&&(l[Ms("lineHeight",d)]=gn(p/100,3)),typeof m=="number"){let f=Lh(s.values,c,MT(d,t));l[Ms("letterSpacing",d)]=f?gn(m/f,4):0}}return{...s,values:St(l)}})}function Fxe(e){let o={fonts:Yn({heading:e.heading_font??void 0,heading2:e.heading_2_font??void 0,heading3:e.heading_3_font??void 0,body:e.body_font??void 0,accent:e.accent_font??void 0,label:e.label_font??void 0}),sizes:bu({headingLarge:e.heading_size_large_px,headingMedium:e.heading_size_medium_px,headingSmall:e.heading_size_small_px,accent:e.accent_size_px,body:e.body_size_px,label:e.label_size_px}),compression:Rr(e.heading_compression),typography:vb(e)},t=e.text_styles??null,r=Array.isArray(t)?Nh(Ht(t,o),o):o;return{fonts:Yn(r.fonts),sizes:bu(r.sizes),compression:Rr(r.compression),typography:r.typography,textStyles:t}}function Nh(e,o){let t=f=>e.find(x=>x.id===f)?.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,m=f=>f==="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:m(r.letterCase),weight:r.weight??null,maxPx:r.largestSize??null,weight2:a.weight??null,weight3:n.weight??null,case2:m(a.letterCase),case3:m(n.letterCase)}}}function Lxe(e){let o=[];for(let t of e){let r=t.values,a=`.${OT(t)}`,n=`[${hn}="${t.id}"]`,s=`${a}, ${n}`,l=[],c=r.font!==void 0?qo.find(f=>f.key===r.font)?.cssVar:void 0;if(c&&l.push(`font-family: var(${c})`),r.size!==void 0){let f=r.largestSize!==void 0?Math.min(r.size,r.largestSize):r.size;l.push(`font-size: ${f}px`)}let d=dn(r.color);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 m=TW(r.letterCase);m&&t.kind==="body"&&l.push(`text-transform: ${m}`),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"&&m&&o.push(`${n}, ${a}:is(h1, h2, h3, h4) { text-transform: ${m} }`),r.paragraphSpacing&&(o.push(`*:has(> ${n}) { --sf-part-para: ${r.paragraphSpacing}px }`),o.push(...ud(`:is(${s})`,`*:has(> ${n})`))),o.push(...AW(t,s,a,n))}return o.join(`
39
- `)}function AW(e,o,t,r){let a=e.values,n=ir("textSize",a.size,a.sizeTablet,a.sizePhone),s=ir("textSize",a.largestSize,a.largestSizeTablet,a.largestSizePhone),l=ir("same",a.lineHeight,a.lineHeightTablet,a.lineHeightPhone),c=ir("same",a.letterSpacing,a.letterSpacingTablet,a.letterSpacingPhone),d=ir("spacing",a.paragraphSpacing,a.paragraphSpacingTablet,a.paragraphSpacingPhone),p=AT("textSize",a.size,a.sizeTablet,a.sizePhone,Zi()),m=FW[e.id],f=[];for(let[x,g]of[["tablet",cC],["phone",Va]]){let y=[],k=[],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&&k.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"&&k.push(...C),d[x]!==void 0&&k.push(`--sf-part-para: ${d[x]}px`),k.length&&y.push(`${o} { ${k.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(...ud(`:is(${o})`,`*:has(> ${r})`)),I!==void 0&&m&&y.push(`.sf-themed-content { --size-${m}: ${I}px !important }`),y.length&&f.push(`@media ${g} { ${y.join(" ")} }`)}return f}var FW={"heading-1":"headingLarge","heading-2":"headingMedium","heading-3":"headingSmall","body-1":"body","body-5":"label"};function Bxe(e){return e!==!0&&e!==!1?"":`em.text-accent { font-style: ${e?"italic":"normal"} }`}function zT(e){return e?dd[e]:void 0}function Mh(e){let o=Ns(e);return St({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 GT(e){return Object.keys(Mh(e)).length>0}function WT({saved:e,old:o,styleId:t,values:r}){let a=BT(e);return{saved:LW(a,t,r),old:o}}function LW(e,o,t){return e.map(r=>r.id===o?Bh({...r,values:St({...r.values,...t})},r.auto):r)}var HW={desktop:"desktop",tablet:"tablet",mobile:"phone"},UT=["font","color","size","weight","emphasis","lineSpacing","letterSpacing","paragraphSpacing","letterCase","largestSize"],zW=["size","lineSpacing","letterSpacing","letterCase"],GW=500,Hh=qo.map(e=>({value:e.key,label:e.label,family:`var(${e.cssVar})`,italic:e.italicLoaded}));function $T({saved:e,old:o,colours:t,coloursNotOffered:r=[],sizeOf:a,onChange:n,openId:s,onOpenChange:l,readOnly:c=!1,withoutSize:d=!1}){let p=MW(),[m,f]=DW(null),x=Ht(e,o),g=HW[p],y=lT(HT(x,a,g),r);return BW(NW,{styles:y,onChange:k=>n(DT({saved:e,old:o,cur:y,next:iT(k,y,x,r),sizeOf:a,panelView:g})),fonts:Hh,colours:t,settings:d?UT.filter(k=>k!=="size"):UT,auto:zW,openId:s===void 0?m:s,onOpenChange:l??f,readOnly:c,device:g,fallback:k=>{let O=x.find(I=>I.id===(k.kind==="heading"?"heading-1":"body-1")),w={};return O?.values.font&&k.id!==O.id&&(w.font=O.values.font),k.kind==="heading"&&(w.weight=GW),w}})}var KT=["font","size","weight","emphasis"],$W=500;function jW({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 KW(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 qT(e){let{headingWeight:o,open:t,onOpenChange:r,onChange:a,withoutSize:n=!1}=e,s=jW(e);return jT(UW,{label:i("Accent"),children:jT(WW,{style:s,fonts:Hh,settings:n?KT.filter(l=>l!=="size"):KT,auto:["size"],fallback:()=>({weight:o??$W}),open:t,onOpenChange:r,onChange:l=>KW(s,l).forEach(a)})})}import{Button as IU,EmptyState as gU,Tabs as bU,Tooltip as oge,tabButtonId as yU,tabPanelId as SU}from"efficient-shell/ui";import{ContrastIcon as wU,NoteIcon as CU,SettingsIcon as vU,TypeIcon as kU}from"efficient-easel/icons";function VT(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 Uh}from"react/jsx-runtime";import{ListIcon as nU,PaddingTopIcon as sU}from"efficient-easel/icons";import{jsx as pd}from"react/jsx-runtime";import{SettingsDefaultReset as qW,SettingsField as VW,SettingsSegmented as YW}from"efficient-easel/panel";import{WidthIcon as XW}from"efficient-easel/icons";function YT({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 pd(VW,{label:d,labelId:a,icon:pd(XW,{}),value:l?n:void 0,changed:!l,action:pd(qW,{words:oe()?.panel,label:d,changed:!l,onReset:()=>t(void 0)}),hint:s,children:pd(YW,{options:[{label:i(Yr.full),id:"full"},{label:i(Yr.page),id:"content"}],value:c,ariaLabel:d,onChange:t})})}import{HEADER_TYPE as zh,FOOTER_TYPE as ZW}from"efficient-easel/draw";var JW=new Set(["Hero","HeroSingle","IntroBleed"]),XT={min:56,max:140,default:88},nIe={min:0,max:120,step:2,default:32},sIe=`var(--sf-header-h, ${XT.default}px)`,QW="--sf-header-set-h",lIe="--sf-header-h",iIe=`var(${QW}, ${XT.default}px)`,cIe="sf-header-clearance",dIe="sf-sticky-underheader";function eU(e){return e?.find(o=>o?.type&&o.type!==zh)??null}function ZT(e){let o=eU(e)?.type;return!o||!JW.has(o)}function fIe(e){return!ZT(e)}function uIe(e){return!!e?.some(o=>o?.type===zh)}function pIe(e){return!e||e.length===0?!1:!e.some(o=>o?.type===zh||o?.type===ZW)}var oU=["auto","shared","own"],Gh="auto",tU="topSpace",mIe="data-top-space";function rU(e){return oU.includes(e)?e:Gh}function aU(e,o){let t=rU(e?.props?.[tU]);return t==="own"?!0:t==="shared"?!1:ZT(o)}function hIe(e,o){return aU(e,o)?"own":null}function lU(){return{type:"custom",render:({value:e,onChange:o})=>Uh(YT,{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 iU=[{label:"Auto",value:"auto"},{label:"Shared",value:"shared"},{label:"Its own",value:"own"}],TIe={pageBackground:Lv(),topSpace:ot("Top space",Uh(sU,{}),iU,Gh),widthChoice:lU()},Hs=["pageBackground","topSpace","widthChoice"],cU="Record type",Wh=new Map,JT=-1;function dU(e){JT!==np()&&(Wh.clear(),JT=np());let o=ap(),t=o.some(a=>a.key===e)?"":e,r=Wh.get(t);return r||(r=ot(cU,Uh(nU,{}),[...o.map(a=>({label:a.label,value:a.key})),...t?[{label:t,value:t}]:[]],Hr),Wh.set(t,r)),r}var QT=new WeakMap;function PIe(e,o){if(!Pi()||ap().length<2||vi in e)return e;let t=dU(sp(o)),r=QT.get(e);if(r&&r.row===t)return r.fields;let a={[vi]:t,...e};return QT.set(e,{row:t,fields:a}),a}import{previewFrame as TU}from"efficient-easel/screen/lib/document/preview-dom";import{useEasel as fU}from"efficient-easel/easel";function md({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=fU(E=>E),{fonts:a,setFonts:n,sizes:s,setSizes:l,headingCompression:c,setHeadingCompression:d,headingTypography:p,setHeadingTypography:m,textStyles:f,setTextStyles:x}=de(),g=t.data,y=g.root?.props??{},k=e?Yn(y.fonts):a,O=e?xb:s,w=e?Rr(y.headingCompression):c,I=e?Cb(y.headingTypography):p,C={fonts:k,sizes:O,compression:w,typography:I},v=e?y.textStyles:f,A=E=>r({type:"replaceRoot",root:{...g.root,props:{...y,...E}},recordHistory:!0});return{fonts:k,sizes:O,compression:w,typography:I,old:C,saved:v,write:(E,L)=>{let T=Nh(Ht(E.saved,E.old),E.old);e?A({textStyles:E.saved,fonts:T.fonts,headingCompression:T.compression,headingTypography:T.typography}):(x(E.saved),n(T.fonts),l(T.sizes),d(T.compression),m(T.typography)),o(NT(E,C),L)},writeRoot:A}}var jh="sf-site-styles",PU="sf-site-styles-tabpanel",qh=!1,EU="Show hints";function Vh({shown:e,onChange:o}){return re("div",{className:"sf-hints",children:re(IU,{type:"button",variant:"ghost","aria-pressed":e,leftIcon:re(CU,{size:13}),onClick:()=>o(!e),children:i(EU)})})}var tP="text",yn="basics",eP="this-page-group",bn=[{id:yn,label:"Basics",icon:re(vU,{})},{id:"theme",label:"Theme",icon:re(wU,{})},{id:"text",label:"Text",icon:re(kU,{})}];function OU({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=oP(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(Sk,{value:e?l.theme:a,onChange:c})}function _U({themeFromDocument:e,persist:o}){let[t,r]=hd(null),{theme:a,setFonts:n,setSizes:s,setHeadingTypography:l}=de(),c=md({themeFromDocument:e,persist:o}),{old:d,saved:p,writeRoot:m}=c,f=c.fonts,x=c.sizes,g=c.typography,y=E=>E.values.size??LU(RU[E.id]??"body")??AU[E.kind],k=E=>c.write(E),O=nT(a),w=sT(a),I=E=>{let L={...f,accent:E};e?m({fonts:L}):n(L),o({accent_font:E})},C=E=>{s({...x,accent:E}),o({accent_size_px:E})},v=E=>{let L={...g,weightStrong:E};e?m({headingTypography:L}):l(L),o({heading_weight_strong:E})},A=E=>{let L={...g,italicStrong:E};e?m({headingTypography:L}):l(L),o({accent_italic:E})};return na(sa,{children:[re($T,{saved:p,old:d,colours:O,coloursNotOffered:w,sizeOf:y,onChange:k,openId:t===$h?null:t,onOpenChange:r,withoutSize:e}),re(qT,{font:f.accent,size:x.accent,weight:g.weightStrong,italic:g.italicStrong,headingWeight:g.weight,open:t===$h,onOpenChange:E=>r(E?$h:null),onChange:E=>{E.key==="font"?I(E.value):E.key==="size"?C(E.value):E.key==="weight"?v(E.value):A(E.value)},withoutSize:e})]})}var $h="accent",RU={"heading-1":"heading","heading-2":"heading2","heading-3":"heading3","body-1":"body","body-5":"label"},AU={heading:32,body:14},FU={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 LU(e){if(typeof document>"u")return null;let o=(TU()?.contentDocument??document).querySelector(FU[e]);if(!o)return null;let t=parseFloat(getComputedStyle(o).fontSize);return Number.isFinite(t)?t:null}function BU({themeFromDocument:e,persist:o,showHint:t}){let{appState:r,dispatch:a}=oP(f=>f),{cornerRadiusPx:n,setCornerRadiusPx:s}=de(),l=r.data,c=l.root?.props??{},d=c.cornerRadiusPx===void 0?gb[Ib(c.cornerStyle)]:ht(c.cornerRadiusPx),p=e?d:n,m=f=>a({type:"replaceRoot",root:{...l.root,props:{...c,...f}},recordHistory:!0});return re(wk,{value:p,onChange:f=>{e?m({cornerRadiusPx:f}):s(f),o({corner_radius_px:f})},showHint:t})}function DU(e){return{site_width:e}}function NU({persist:e,showHint:o}){let{siteWidth:t,setSiteWidth:r,sectionBackgroundWidth:a,setSectionBackgroundWidth:n,sectionContentWidth:s,setSectionContentWidth:l}=de();if(Kh()!=="desktop")return null;let c=typeof t=="number"?t:co.default,d=f=>{r(f),e(DU(f),f===null)},p=f=>{n(f),e({section_background_width:f},!0)},m=f=>{l(f),e({section_content_width:f},!0)};return na(sa,{children:[re(Yk,{value:a??"full",changed:a!==null,detail:i("Full width"),onChange:p,onReset:()=>p(null),hint:o?qk:void 0}),re(Xk,{mode:s??"content",px:c,min:co.min,max:co.max,changed:typeof t=="number"||s!==null,detail:`${i("Content width")} ${co.default}px`,onMode:m,onPx:f=>d(f),onReset:()=>{m(null),d(null)},hint:o?Vk:void 0})]})}function MU(e){return{block_gap:e}}function HU(e){return{block_gap_phone:e}}function zU(e){return{site_gutter:e}}function GU(e){return{site_gutter_phone:e}}function rP(e,[o,t],r){o(e),r(t(e),e===null)}function WU({persist:e,showHint:o}){let{siteGutter:t,siteGutterPhone:r,setSiteGutter:a,setSiteGutterPhone:n}=de(),s=jk(Kh(),{gutter:t,phone:r});if(!s)return null;let l=s.key==="site_gutter_phone"?[n,GU]:[a,zU];return re(Kk,{value:s.value,onChange:c=>rP(c,l,e),showHint:o,unsetPx:s.unsetPx,bounds:s.bounds})}function UU({persist:e,showHint:o}){let{blockGap:t,blockGapPhone:r,setBlockGap:a,setBlockGapPhone:n}=de(),s=Pk(Kh(),{gap:t,phone:r});if(!s)return null;let l=s.key==="block_gap_phone"?[n,HU]:[a,MU];return re(Ek,{value:s.value,onChange:c=>rP(c,l,e),showHint:o,followsPx:s.followsPx})}function $U({persist:e,showHint:o=!0}){return na(sa,{children:[re(NU,{persist:e,showHint:o}),re(WU,{persist:e,showHint:o}),re(UU,{persist:e,showHint:o})]})}function jU(e){return{card_shadow:e}}function KU(e){return e===null?{shadow_color:null}:{shadow_color:Sb(e)}}function qU(e){return{hover_effect:e}}function VU({persist:e,showHint:o=!0}){let{cardShadow:t,setCardShadow:r,shadowColor:a,setShadowColor:n,hoverEffect:s,setHoverEffect:l}=de();return na(sa,{children:[re(Ck,{value:t,onChange:c=>{r(c),e(jU(c),!0)},showHint:o}),re(kk,{value:a,onChange:c=>{n(c),e(KU(c),c===null)},showHint:o}),re(Dk,{value:s,onChange:c=>{l(c),e(qU(c),!0)},showHint:o})]})}function YU(e){return{photography_grayscale:e}}function XU({persist:e,showHint:o}){let{photographyGrayscale:t,setPhotographyGrayscale:r}=de();return re(Mk,{value:t,onChange:a=>{r(a),e(YU(a),!0)},showHint:o})}function ZU({persist:e,showHint:o=!0}){return re(sa,{children:re(XU,{persist:e,showHint:o})})}function JU(e){return{share_button_on_posts:e}}function QU({persist:e,showHint:o=!0}){let{shareButtonOnPosts:t,setShareButtonOnPosts:r}=de();return re(Hk,{value:t,onChange:a=>{r(a),e(JU(a),!0)},showHint:o})}function Sn(){let{websiteName:e}=de();return e?.trim()||Ab}function xd({themeFromDocument:e=!1,tokenRef:o,siteId:t,onNotify:r,tab:a,onTabChange:n,initialTab:s,revealPageGroup:l=!1,onPageGroupRevealed:c}){let{persist:d}=Ka({themeFromDocument:e,tokenRef:o,siteId:t,onResult:w=>{let I=VT(w);I&&r?.(I.msg,I.tone)}}),[p,m]=hd(s??bn[0].id),f=a!==void 0,x=f?a:p,g=f?n??(()=>{}):m,y=bn.find(w=>w.id===x)??bn[0],[k,O]=hd(qh);return na(sa,{children:[re(t$,{activeId:y.id,onSelect:g}),na("div",{id:SU(jh,y.id),className:PU,role:"tabpanel","aria-labelledby":yU(jh,y.id),children:[x===yn&&na(sa,{children:[re(BU,{themeFromDocument:e,persist:d,showHint:k}),!e&&re(VU,{persist:d,showHint:k}),!e&&re($U,{persist:d,showHint:k}),!e&&re(ZU,{persist:d,showHint:k}),!e&&re(QU,{persist:d,showHint:k}),re(e$,{reveal:l,onRevealed:c}),re(Vh,{shown:k,onChange:O})]}),x==="theme"&&re(OU,{themeFromDocument:e,persist:d}),x==="text"&&re(_U,{themeFromDocument:e,persist:d})]})]})}function e$({reveal:e,onRevealed:o}){let[t,r]=hd(!0),a=xU(o);return a.current=o,hU(()=>{if(!e)return;r(!0);let n=requestAnimationFrame(()=>{document.getElementById(eP)?.scrollIntoView({block:"start"}),a.current?.()});return()=>cancelAnimationFrame(n)},[e]),re(mU,{title:i("This page"),open:t,onToggle:r,id:eP,children:re(o$,{})})}function o$(){let{fields:e,values:o,readOnly:t,onChange:r}=uU(),a=Object.fromEntries(Hs.filter(n=>n in e).map(n=>[n,e[n]]));return Object.keys(a).length===0?re(gU,{variant:"none",icon:!1,message:i("This page has no look of its own to set.")}):re(pU,{fields:a,values:o,onChange:r,readOnly:t,tabs:!1,idPrefix:"this-page",ariaLabel:i("This page")})}function t$({activeId:e,onSelect:o}){return re("div",{className:"es-insp-tabs",children:re(bU,{variant:"underline",block:!0,labelsFit:!0,"aria-label":i("Styles"),idPrefix:jh,value:e,onChange:o,items:bn.map(t=>{let r=i(t.label);return{id:t.id,icon:t.icon,label:r}})})})}import{InspectorIconButton as u$}from"efficient-easel/chrome";import{Button as fP,Dialog as p$,FormField as m$,Input as uP,PopupMenu as h$,PopupMenuItem as pP,toast as mP}from"efficient-shell/ui";import{LayersTree as x$,TreeGroupLabel as I$,TreeRow as hP,TreeRowAction as yd}from"efficient-easel/tree";import{AddIcon as g$,DuplicateIcon as b$,PageIcon as y$,SettingsIcon as S$}from"efficient-easel/icons";import{PagesIcon as w$}from"efficient-easel/rail";import{useEaselHost as C$}from"efficient-easel/screen/lib/host";import{useEaselSession as bP}from"efficient-easel/screen/lib/session-context";import{useCallback as Id,useEffect as r$,useSyncExternalStore as a$}from"react";import{useScreenDocument as lP}from"efficient-easel/screen/components/ScreenDocumentContext";var aP=new WeakMap;function zs(e){let o=aP.get(e);return o||(o={rows:null,loading:null,listeners:new Set},aP.set(e,o)),o}function Yh(e,o){e.rows=o;for(let t of e.listeners)t()}var gd=new Set;function bd(e,o){o?gd.add(e):gd.delete(e)}function nP(e){let o=zs(e),t=e.listPages().then(r=>Yh(o,gd.size?r.filter(a=>!gd.has(a.id)):r),()=>Yh(o,[])).finally(()=>{o.loading===t&&(o.loading=null)});return o.loading=t,t}var sP=()=>null,n$=()=>()=>{};function Gs(){let{adapter:e,ready:o}=lP(),t=Id(l=>{let{listeners:c}=zs(e);return c.add(l),()=>c.delete(l)},[e]),r=Id(()=>zs(e).rows,[e]),a=a$(o?t:n$,o?r:sP,sP);r$(()=>{if(!o)return;let l=zs(e);l.rows===null&&!l.loading&&nP(e)},[e,o]);let n=Id(()=>o?nP(e):Promise.resolve(),[e,o]),s=Id(l=>Yh(zs(e),l),[e]);return{rows:a,reload:n,setRows:s,getRows:r}}function s$(e,o){return e?.find(t=>t.slug===o)?.label?.trim()||`/${o}`}function iP(){let{currentSlug:e}=lP(),{rows:o}=Gs();return s$(o,e)}import{canDuplicatePage as v$,DuplicatePageDialog as k$,uniqueSlug as xP}from"efficient-easel/page-copy";var IP="sf-editor-pages-collapsed-groups";function T$(){let e=bP(),{siteId:o,templateId:t}=gP(),r=Ge(e).pages;if(!(!r.duplicate||t))return(a,n)=>r.duplicate(a.id,{...n,...o?{siteId:o}:{}})}function P$(){try{let e=Ha()||(typeof window>"u"?"":window.location.origin);return e?new URL(e).host:""}catch{return""}}function yP({onNavigate:e,onClose:o,activeSurface:t,onPreviewSurface:r}){let a=bP().chrome?.pageRows,n=C$(),{adapter:s,capabilities:l,ready:c,currentSlug:d}=gP(),p=Sn(),{rows:m,reload:f,setRows:x,getRows:g}=Gs(),[y,k]=Ir(""),[O,w]=Ir(!1),[I,C]=Ir(null),[v,A]=Ir(!1),[E,L]=Ir(""),T=c$(),R=T$(),[N,b]=Ir(null),[_,F]=Ir(()=>{if(typeof window>"u")return new Set;try{let M=window.localStorage.getItem(IP);return new Set(M?JSON.parse(M):[])}catch{return new Set}});i$(()=>{try{window.localStorage.setItem(IP,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=dP(()=>iS(m??[]),[m]),q=y.trim().toLowerCase(),$=M=>!q||M.toLowerCase().includes(q),ve=M=>q?!0:!_.has(M),ne=dP(()=>new Set((m??[]).map(M=>M.slug)),[m]),$e=()=>{if(l.pageCreationInAdminForm){n.send("storefront-editor:new-page");return}L(""),C(null),A(!0)},De=async()=>{let M=E.trim();if(!(!M||!c||O||!s.createPage)){w(!0),C(null);try{let le=await s.createPage({slug:xP(M,ne),title:M,layout:{}});await f(),A(!1),L(""),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(Qw(i("New popup"),ne));await f(),e(M.slug)}catch{C(i("Couldn\u2019t add the popup \u2014 please retry."))}finally{w(!1)}}},ge=d$(null),[qe,Ve]=Ir(null),se=()=>{if(!Te)return $e();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=m??[],Se=s.deletePage;if(!c||O||!Se||le.length<=1)return;let He=le.findIndex(eo=>eo.id===M.id),ze=le.filter(eo=>eo.id!==M.id),Yt=M.slug===d;bd(M.id,!0),x(ze),C(null),Yt&&ze[0]&&e(ze[0].slug);let Aa=()=>{bd(M.id,!1);let eo=g()??[];if(eo.some(qn=>qn.id===M.id))return;let Tr=[...eo];Tr.splice(Math.max(0,Math.min(He,Tr.length)),0,M),x(Tr)};mP.undoable(i("Deleted \u201C{name}\u201D",{name:M.label}),{actionLabel:i("Undo"),commit:async eo=>{await Se(M.id,eo),bd(M.id,!1)},undo:()=>{Aa(),Yt&&e(M.slug)},onFail:()=>{Aa(),mP.error(i("Couldn\u2019t delete the page \u2014 please retry."))}})},no=M=>n.send("storefront-editor:open-page",{slug:M}),Pe=M=>{if(!$(M.label))return null;let le=!t&&M.slug===d,Se=l.canDeletePagesInline&&(m??[]).length>1,He=zr(M),ze=lS(M),Yt=[...He?[{label:i("Dynamic"),tone:"info"}]:[],...ze?[{label:i("Lightbox"),tone:"success"}]:[],...M.draft?[{label:i("draft"),tone:"draft"}]:[]],Aa=Yt.length>0?Yt:void 0,eo=!!R&&v$(M),Tr=eo||l.pageCreationInAdminForm||Se?Ws(cP,{children:[eo&&be(yd,{kind:"plain",label:i("Duplicate \u201C{name}\u201D",{name:M.label}),disabled:O,onClick:()=>b(M),children:be(b$,{size:13})}),l.pageCreationInAdminForm&&be(yd,{kind:"plain",label:i("Page settings for \u201C{name}\u201D",{name:M.label}),onClick:()=>no(M.slug),children:be(S$,{size:13})}),Se&&be(yd,{kind:"delete",label:i("Delete \u201C{name}\u201D",{name:M.label}),disabled:O,onClick:()=>Fe(M),children:be(Xh,{name:"trash",size:13,strokeWidth:1.7,rounded:!0})})]}):void 0;return be(hP,{icon:be(y$,{size:14}),name:M.label,selected:le,onSelect:()=>e(M.slug),badge:Aa,actions:Tr,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 Ws(l$,{children:[be(I$,{count:He.length,countLabel:mo("{n} page","{n} pages",He.length),expanded:ze,onToggle:()=>H(M),children:le}),ze&&He]},M)},go=(a?.rows??[]).filter(M=>$(M.label)).map(M=>{let le=t===M.key;return be(hP,{icon:M.icon,name:M.label,selected:le,onSelect:()=>r(M.key),badge:{label:i("Preview"),tone:"warning"},actions:be(yd,{kind:"plain",label:i("Open the {name} in a new tab",{name:M.label}),onClick:()=>window.open(M.href,"_blank","noopener,noreferrer"),children:be(Xh,{name:"external-link",size:13,strokeWidth:1.7,rounded:!0})}),rowProps:{"data-shop-surface":M.key}},M.key)}),Eo=l.hasSiteSettings&&!!a,Oo=(()=>{if(m===null)return null;let M=[],le=!1;for(let Se of Z){Eo&&!le&&Se.key.startsWith("system:")&&(M.push(Ne("shop",a.title,go)),le=!0);let He=Se.key===cp||Se.label===ip?i(Se.label):Se.label;M.push(Ne(Se.key,He,Se.rows.map(Pe)))}return Eo&&!le&&M.push(Ne("shop",a.title,go)),M})();return Ws("div",{className:"sf-pages",children:[be(f$,{icon:be(w$,{}),title:i("Pages"),context:p,actions:be(u$,{buttonRef:ge,label:Te?i("Add"):i("New page"),hasPopup:Te?"menu":void 0,expanded:Te?qe!==null:void 0,onClick:se,children:be(g$,{size:15})})}),qe&&be(h$,{portal:!0,style:{top:qe.top,right:qe.right},onClose:()=>Ve(null),children:Ws("div",{role:"menu","aria-label":i("Add"),children:[be(pP,{role:"menuitem",onClick:()=>{Ve(null),$e()},children:i("Page")}),be(pP,{role:"menuitem",disabled:O,onClick:()=>{Ve(null),pe()},children:i("Popup")})]})}),be("div",{className:"sf-pages-find",children:be(uP,{type:"search",leftIcon:be(Xh,{name:"search",size:14,rounded:!0}),placeholder:i("Search all pages\u2026"),value:y,onChange:M=>k(M.target.value),"aria-label":i("Search all pages")})}),I&&!v&&be("div",{className:"sf-note sf-note--error",role:"alert",children:I}),Oo===null?be("div",{className:"sf-note",children:i("Loading\u2026")}):Oo.some(Boolean)?be(x$,{ariaLabel:i("Pages"),className:"sf-scroll",children:Oo}):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(k$,{source:{title:N.label,slug:N.slug},taken:ne,host:P$(),duplicate:M=>R(N,M),onClose:()=>b(null),onDuplicated:M=>{b(null),f(),e(M.slug)}},N.id),be(p$,{open:v,onClose:()=>A(!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:Ws(cP,{children:[be(fP,{variant:"secondary",onClick:()=>A(!1),children:i("Cancel")}),be(fP,{onClick:()=>{De()},disabled:O||!E.trim(),loading:O,children:i("Add page")})]}),children:be(m$,{label:i("Page name"),htmlFor:T,hint:E.trim()?i("URL: /{slug}",{slug:xP(E,ne)}):void 0,error:I??void 0,children:be(uP,{id:T,value:E,invalid:!!I,onChange:M=>L(M.target.value),onKeyDown:M=>{M.key==="Enter"&&De()},placeholder:i("e.g. About")})})})]})}import{jsx as CP}from"react/jsx-runtime";import{createContext as O$,useCallback as _$,useContext as R$,useMemo as A$,useState as F$}from"react";import{CanvasChromeContext as L$}from"efficient-easel/easel";import{useSelectHandler as B$}from"efficient-easel/draw/client";import{parseHexColor as E$}from"efficient-shell/format";var Sd=["chat-bubble-left-right","chat-bubble-oval-left-ellipsis","chat","megaphone","phone","sparkles"],wn=Sd[0];var la="right";function wd(e){return Sd.includes(e??"")?e:wn}function SP(e){return e==="left"?"left":la}function wP(e){return e&&E$(e)===e.toLowerCase()?e.toLowerCase():""}var vP="chat",Cd={enabled:!0,title:"",subtitle:"",greeting:"",launcherColor:"",launcherIcon:"",launcherPosition:la,launcherLabel:"",showOnPhones:!0};function jge(e){return{enabled:e.enabled,title:e.title,subtitle:e.subtitle,greeting:e.greeting,launcherColor:wP(e.launcherColor),launcherIcon:e.launcherIcon?wd(e.launcherIcon):"",launcherPosition:SP(e.launcherPosition),launcherLabel:e.launcherLabel??"",showOnPhones:e.showOnPhones!==!1}}var kP=O$({chat:Cd,setChat:()=>{},setSelected:()=>{},setSelectHandler:()=>{}});function Kge({children:e,chat:o=Cd,onChatChange:t}){let[r,a]=F$(!1),n=_$(d=>t?.(d),[t]),{select:s,setSelectHandler:l}=B$(),c=A$(()=>({selected:()=>r?vP:null,select:d=>d===vP&&s()}),[r,s]);return CP(kP.Provider,{value:{chat:o,setChat:n,setSelected:a,setSelectHandler:l},children:CP(L$.Provider,{value:c,children:e})})}var vd=()=>R$(kP);import{jsx as Zh}from"react/jsx-runtime";import{DesktopIcon as D$,PhoneIcon as N$,TabletIcon as M$}from"efficient-easel/icons";import{VIEW_TIERS as H$,VIEW_TIER_LABEL as z$}from"efficient-easel/draw";var G$={desktop:Zh(D$,{}),tablet:Zh(M$,{}),mobile:Zh(N$,{})},TP=H$.map(e=>({id:e,get label(){return i(z$[e])},icon:G$[e]}));import{PreviewDeviceContext as zee}from"efficient-easel/draw/client";import{jsx as W$}from"react/jsx-runtime";import{createContext as U$,useCallback as PP,useContext as $$,useMemo as j$,useRef as K$}from"react";var q$=Object.fromEntries(ii.map(e=>[e,{value:"",error:null}])),EP=U$({links:Lb,rows:q$,canSave:!1,saveLink:async()=>({ok:!1,error:"There is no website to save to."}),openPanel:()=>{},setOpenHandler:()=>{}});function tbe({children:e,value:o}){let t=K$(()=>{}),r=PP(()=>t.current(),[]),a=PP(s=>{t.current=s},[]),n=j$(()=>({...o,openPanel:r,setOpenHandler:a}),[o,r,a]);return W$(EP.Provider,{value:n,children:e})}var Us=()=>$$(EP);import{jsx as V$}from"react/jsx-runtime";import{createContext as Y$,useContext as X$,useMemo as Z$,useState as J$}from"react";var OP=Y$(null);function sbe({children:e}){let[o,t]=J$(null),r=Z$(()=>({surface:o,setSurface:t}),[o]);return V$(OP.Provider,{value:r,children:e})}function _P(){return X$(OP)??{surface:null,setSurface:()=>{}}}import{createPreviewSelectionContext as Q$}from"efficient-easel/draw/client";var $s="Scrolling Bar",{Provider:cbe,useSelection:RP}=Q$("selectedHeroId"),dbe="data-sf-hero-ticker";function fbe(e){return`${e}::ticker`}function ube(e){return!e||!e.endsWith("::ticker")?null:e.slice(0,-8)||null}var AP=["","","","","",""],FP="#ticker",js="strip",Jh={sectionAccent:sr,line:!1};function ej(e){return(Array.isArray(e.tickerItems)?e.tickerItems:[]).map(o=>typeof o?.text=="string"?o.text:"").filter(o=>o.trim()!=="")}function Qh(e){return ej(e).length>0}function hbe(e){return e.showTicker!==!1&&Qh(e)}import{createPreviewSelectionContext as oj}from"efficient-easel/draw/client";var{Provider:gbe,useSelection:kd}=oj("selectedHeroPart");var BP=["one","side","stacked"];var ybe={one:"One",side:"Side by side",stacked:"Stacked"};function Td(e){return BP.includes(e)?e:"one"}function LP(e){return e==="one"?1:2}function ex(e,o){if(BP.includes(e))return e;let t=Td(o);return t==="side"?"stacked":t}function Ks(e){let o=Td(e.mediaLayout);return Math.max(LP(o),LP(ex(e.mediaLayoutPhone,o)))}var ia=["media","image","image2"],Cn={media:"Media",image:"Image",image2:"Image 2"},qs={media:"heroMedia",image:"heroImage",image2:"heroImage2"};function Pd(e,o){return e==="image"&&Ks(o)>1?"Image 1":Cn[e]}var vbe="Video file",kbe="Upload a video file";function tj(e,o){return{field:"mediaType",is:e,default:o}}var rj=new Set(["HeroSingle"]),DP="heroPart";function aj(e,o){return{...o,[DP]:e}}function Tbe(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]=Xe(n[l],tj(s,r));for(let[s,l]of Object.entries(a??{}))l&&(n[s]=Xe(n[s],l));for(let s of ia)for(let l of o[s]??[])n[l]=aj(s,n[l]);return n}function nj(e){let o=e?.[DP];return ia.includes(o)?o:null}function NP(e,o){let t={};for(let[r,a]of Object.entries(e))nj(a)===o&&(t[r]=a);return t}function MP(e){if(!rj.has(e.type))return[];let o=[{part:"media",label:Cn.media,depth:0}];return(e.props.mediaType??"image")!=="video"&&(o.push({part:"image",label:Pd("image",e.props),depth:1}),Ks(e.props)>1&&o.push({part:"image2",label:Pd("image2",e.props),depth:1})),o}function Vs(e,o){return`${e}::${o}`}function HP(e){if(!e)return null;let o=e.lastIndexOf("::");if(o<=0)return null;let t=e.slice(o+2);return ia.includes(t)?{nodeId:e.slice(0,o),part:t}:null}var zP="data-sf-hero-part";import{jsx as xe,jsxs as xa,Fragment as bO}from"react/jsx-runtime";import{useState as I9}from"react";import{useEasel as g9,useRootFields as b9}from"efficient-easel/easel";import{Button as y9,EmptyState as S9}from"efficient-shell/ui";function GP({kind:e,pageName:o}){return{name:o?.trim()||i("This page"),kindLabel:zr({kind:e})?i("Template"):i("Page")}}import{headWords as CO,InspectorHead as w9,InspectorIconButton as yO}from"efficient-easel/chrome";import{DuplicateIcon as C9,TrashIcon as v9}from"efficient-easel/icons";import{panelFieldsOf as k9}from"efficient-easel/screen/lib/document/panel-fields";import{jsx as B,Fragment as ie,jsxs as ue}from"react/jsx-runtime";import{BlockBannerIcon as ij,BlockBoxIcon as cj,BlockButtonIcon as dj,BlockDividerIcon as UP,BlockFooterIcon as $P,BlockHeadingIcon as fj,BlockProductIcon as uj,BlockSocialIcon as pj,BlockTextIcon as mj,CardPaymentIcon as hj,ChatIcon as xj,AccountIcon as Ij,GlobeIcon as gj,GridIcon as bj,ImageIcon as tx,MapIcon as yj,MediaIcon as Sj,PageIcon as wj}from"efficient-easel/icons";import{jsx as ox,Fragment as sj,jsxs as lj}from"react/jsx-runtime";var WP=lj(sj,{children:[ox("circle",{cx:"9",cy:"20",r:"1.3"}),ox("circle",{cx:"18",cy:"20",r:"1.3"}),ox("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 Cj={header:ue(ie,{children:[B("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),B("path",{d:"M3 9.5h18"})]}),social:ue(ie,{children:[B("circle",{cx:"6",cy:"12",r:"2.5"}),B("circle",{cx:"18",cy:"6",r:"2.5"}),B("circle",{cx:"18",cy:"18",r:"2.5"}),B("path",{d:"M8.2 10.8l7.6-3.6M8.2 13.2l7.6 3.6"})]}),ticker:ue(ie,{children:[B("rect",{x:"3",y:"8.5",width:"18",height:"7",rx:"2"}),B("path",{d:"M6 12h3.5M11.5 12h2M15.5 12h2.5"})]}),FooterLogo:ue(ie,{children:[B("path",{d:"M4 15.5h6M4 18h4"}),B("path",{d:"M14 8.5l3 7 3-7"})]}),FooterMenu:B("path",{d:"M6 7h12M6 11h12M6 15h8M6 19h8"}),FooterGroup:ue(ie,{children:[B("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",strokeDasharray:"3 2.5"}),B("path",{d:"M8 9h8M8 13h8M8 16h5"})]}),FooterText:B("path",{d:"M5 7h14M5 12h14M5 17h9"}),FooterEmailSignup:ue(ie,{children:[B("rect",{x:"3",y:"6",width:"18",height:"12",rx:"2"}),B("path",{d:"M3.5 7l8.5 6 8.5-6"})]}),SearchBlock:ue(ie,{children:[B("circle",{cx:"11",cy:"11",r:"6"}),B("path",{d:"M20 20l-4.2-4.2"})]}),CartBlock:WP,CountrySwitchBlock:ue(ie,{children:[B("circle",{cx:"12",cy:"12",r:"8.5"}),B("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:[B("circle",{cx:"12",cy:"12",r:"8.5"}),B("path",{d:"M12 3.5v17M12 5.5l6 6M12 10.5l5.2 5.2M12 15.5l2.8 2.8"})]}),LegalLineBlock:ue(ie,{children:[B("path",{d:"M3 9h18"}),B("path",{d:"M3 14h8M14 14h2M18 14h3"})]}),Hero:ue(ie,{children:[B("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),B("path",{d:"M7 13.5h7M7 16.5h10"})]}),HeroSlide:ue(ie,{children:[B("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),B("path",{d:"M7 15h6M16 9.5h.01M9.5 12l-2.5 3"})]}),HeroSingle:ue(ie,{children:[B("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),B("path",{d:"M10.5 8.5l4 2.5-4 2.5z"}),B("path",{d:"M7 17h7"})]}),Collections:ue(ie,{children:[B("rect",{x:"3",y:"5",width:"4.6",height:"14",rx:"1.3"}),B("rect",{x:"9.7",y:"5",width:"4.6",height:"14",rx:"1.3"}),B("rect",{x:"16.4",y:"5",width:"4.6",height:"14",rx:"1.3"})]}),CollectionCard:ue(ie,{children:[B("rect",{x:"6",y:"4",width:"12",height:"16",rx:"2"}),B("path",{d:"M9 15h6M9 17.5h4"})]}),AlloyWheelsListing:ue(ie,{children:[B("path",{d:"M3 5h5M3 9h5M3 13h5M3 17h5"}),B("rect",{x:"11.5",y:"5",width:"4.2",height:"5",rx:"1"}),B("rect",{x:"17.3",y:"5",width:"4.2",height:"5",rx:"1"}),B("rect",{x:"11.5",y:"12",width:"4.2",height:"5",rx:"1"}),B("rect",{x:"17.3",y:"12",width:"4.2",height:"5",rx:"1"})]}),CatalogFilterBar:ue(ie,{children:[B("path",{d:"M3 7h9M15.5 7H21"}),B("circle",{cx:"13.5",cy:"7",r:"1.7"}),B("path",{d:"M3 12h4M10.5 12H21"}),B("circle",{cx:"8.5",cy:"12",r:"1.7"}),B("path",{d:"M3 17h9M15.5 17H21"}),B("circle",{cx:"13.5",cy:"17",r:"1.7"})]}),ProductGrid:ue(ie,{children:[B("rect",{x:"3",y:"5",width:"4.8",height:"6",rx:"1"}),B("rect",{x:"9.6",y:"5",width:"4.8",height:"6",rx:"1"}),B("rect",{x:"16.2",y:"5",width:"4.8",height:"6",rx:"1"}),B("rect",{x:"3",y:"13",width:"4.8",height:"6",rx:"1"}),B("rect",{x:"9.6",y:"13",width:"4.8",height:"6",rx:"1"}),B("rect",{x:"16.2",y:"13",width:"4.8",height:"6",rx:"1"})]}),RelatedProducts:ue(ie,{children:[B("path",{d:"M3 5h10"}),B("rect",{x:"3",y:"9.5",width:"5",height:"9",rx:"1"}),B("rect",{x:"9.5",y:"9.5",width:"5",height:"9",rx:"1"}),B("rect",{x:"16",y:"9.5",width:"5",height:"9",rx:"1"})]}),Gallery:ue(ie,{children:[B("rect",{x:"3",y:"4",width:"11",height:"16",rx:"2"}),B("rect",{x:"15.5",y:"4",width:"5.5",height:"7.5",rx:"1.5"}),B("rect",{x:"15.5",y:"12.5",width:"5.5",height:"7.5",rx:"1.5"})]}),GalleryB:ue(ie,{children:[B("rect",{x:"3.5",y:"4",width:"7.5",height:"7.5",rx:"1.5"}),B("rect",{x:"13",y:"4",width:"7.5",height:"7.5",rx:"1.5"}),B("rect",{x:"3.5",y:"12.5",width:"7.5",height:"7.5",rx:"1.5"}),B("rect",{x:"13",y:"12.5",width:"7.5",height:"7.5",rx:"1.5"})]}),GalleryItem:ue(ie,{children:[B("rect",{x:"4",y:"5",width:"16",height:"14",rx:"2"}),B("circle",{cx:"9",cy:"10",r:"1.6"}),B("path",{d:"M20 15.5l-4.5-4L7 19"})]}),Events:ue(ie,{children:[B("rect",{x:"4",y:"5",width:"16",height:"15",rx:"2"}),B("path",{d:"M4 9.5h16M8.5 3v4M15.5 3v4M8 14h2M14 14h2"})]}),PostCard:ue(ie,{children:[B("rect",{x:"4",y:"3.5",width:"16",height:"17",rx:"2"}),B("rect",{x:"6.5",y:"6",width:"11",height:"6",rx:"1"}),B("path",{d:"M6.5 14.5h11M6.5 17.5h7"})]}),Manifesto:ue(ie,{children:[B("path",{d:"M7 8h3.2v4c0 1.6-1 2.6-3 3.2"}),B("path",{d:"M14 8h3.2v4c0 1.6-1 2.6-3 3.2"})]}),Stats:ue(ie,{children:[B("path",{d:"M3.5 20h17"}),B("path",{d:"M6 20v-7M11 20V7M16 20v-5M20.5 20v-9"})]}),Logos:ue(ie,{children:[B("circle",{cx:"6",cy:"12",r:"2.6"}),B("rect",{x:"10",y:"9.4",width:"5.2",height:"5.2",rx:"1.2"}),B("path",{d:"M19 9.2l2.4 5h-4.8z"})]}),Ticker:ue(ie,{children:[B("rect",{x:"3",y:"8.5",width:"18",height:"7",rx:"2"}),B("path",{d:"M6 12h3.5M11.5 12h2M15.5 12h2.5"})]}),SectionHeader:ue(ie,{children:[B("rect",{x:"3.5",y:"6",width:"5",height:"5",rx:"1.2"}),B("path",{d:"M11 8.5h9M3.5 15.5h17"})]}),IntroBleed:ue(ie,{children:[B("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),B("path",{d:"M3 13.5h18M7 16.8h6"})]}),Split:ue(ie,{children:[B("rect",{x:"3",y:"5",width:"8",height:"14",rx:"1.5"}),B("path",{d:"M14 8.5h6M14 12h6M14 15.5h4"})]}),Eyebrow:ue(ie,{children:[B("path",{d:"M4 8.5h4.5M11 8.5h9"}),B("path",{d:"M4 14.5h16"})]}),HeroGroup:ue(ie,{children:[B("rect",{x:"3.5",y:"4.5",width:"17",height:"15",rx:"2"}),B("path",{d:"M7 9h8M7 12.5h10M7 16h6"})]}),Form:ue(ie,{children:[B("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),B("path",{d:"M6.5 9h11M6.5 12.5h11"}),B("rect",{x:"6.5",y:"15",width:"6.5",height:"2.6",rx:"1.3"})]}),LogoBlock:B(ie,{children:B("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:[B("path",{d:"M12 4v6M9.5 6.5L12 4l2.5 2.5M12 20v-6M9.5 17.5L12 20l2.5-2.5"}),B("path",{d:"M5 13h14",strokeDasharray:"2 2.5"})]}),ContactRouting:ue(ie,{children:[B("rect",{x:"3",y:"4",width:"5",height:"5",rx:"1"}),B("rect",{x:"9.5",y:"4",width:"5",height:"5",rx:"1"}),B("rect",{x:"16",y:"4",width:"5",height:"5",rx:"1"}),B("path",{d:"M4 13.5h11M4 17.5h7"}),B("path",{d:"M17 15l3 2-3 2"})]}),Contents:ue(ie,{children:[B("path",{d:"M4 7h2M4 12h2M4 17h2"}),B("path",{d:"M9 7h11M9 12h9M9 17h10"})]}),CustomHTML:B("path",{d:"M9 8l-4 4 4 4M15 8l4 4-4 4"})},vj=B("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2.5"}),kj={footer:$P,Footer:$P,Divider:UP,FooterDivider:UP,Banner:ij,Flex:cj,FooterSocial:pj,FooterPayment:hj,page:wj,website:gj,AccountBlock:Ij,chat:xj,Heading:fj,Text:mj,ImageBlock:tx,ButtonBlock:dj,LocationMap:yj,Grid:bj,ProductRef:uj,heroMedia:Sj,heroImage:tx,heroImage2:tx},Tj={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial",PaymentLogosBlock:"FooterPayment",SiteHeader:"header",SiteFooter:"footer"};function ca({type:e,size:o=16,className:t}){let r=Tj[e]??e,a=kj[r];return a?B(a,{size:o,className:t}):B("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:Cj[r]??vj})}import{PanelHideButton as SO}from"efficient-easel/screen/components/SidePanelHead";import{useEaselSession as T9}from"efficient-easel/screen/lib/session-context";import{jsx as we,jsxs as Ys,Fragment as Pj}from"react/jsx-runtime";import{useEffect as Ej,useId as jP,useState as Oj}from"react";import{IconPicker as _j}from"efficient-shell/ui";import{SettingsDefaultReset as Rj,SettingsField as Xs,SettingsSegmented as Aj,SettingsSwitch as KP}from"efficient-easel/panel";import{ButtonIcon as Fj,ButtonIconIcon as Lj,EyeIcon as Bj,PhoneIcon as Dj,PlacementIcon as Nj,TypeIcon as Mj}from"efficient-easel/icons";var Hj="Chat with us",zj="We usually reply within a few minutes",Gj="Hi! Ask us anything \u2014 about a wheel, an order, or fitment. Leave your details and we\u2019ll reply.";function Ed({label:e,value:o,placeholder:t,onCommit:r,multiline:a=!1,hint:n}){let[s,l]=Oj(o);Ej(()=>l(o),[o]);let c=()=>{s!==o&&r(s)};return we(Xs,{label:e,icon:we(Mj,{}),changed:o!=="",action:we(Zs,{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 Zs({label:e,changed:o,onReset:t}){return we(Rj,{words:oe()?.panel,label:e,changed:o,onReset:t})}function Wj({label:e,icon:o,checked:t,fallback:r,onChange:a,hint:n}){let s=jP();return we(Xs,{label:e,labelId:s,icon:o,changed:t!==r,action:Ys("span",{className:"inline-flex items-center gap-2",children:[we(KP,{checked:t,onChange:a,ariaLabelledBy:s}),we(Zs,{label:e,changed:t!==r,onReset:()=>a(r)})]}),hint:n})}var Uj=Sd.map(e=>({value:e,icon:Oi(e)}));function $j(){let{theme:e}=de(),o=so(e).themes[0];return Vn(o)??o?.accent??""}function qP(){let{chat:e,setChat:o}=vd(),t=jP(),r=$j(),a=e.launcherIcon?wd(e.launcherIcon):wn;return Ys(Pj,{children:[we(Xs,{label:i("Show the chat bubble"),labelId:t,icon:we(Bj,{}),changed:!e.enabled,action:Ys("span",{className:"inline-flex items-center gap-2",children:[we(KP,{checked:e.enabled,onChange:n=>o({enabled:n}),ariaLabelledBy:t}),we(Zs,{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.")}),Ys(Rm,{title:i("Look"),children:[we(No,{label:i("Button color"),icon:we(Fj,{}),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(Xs,{label:i("Icon"),icon:we(Lj,{}),changed:a!==wn,action:we(Zs,{label:i("Icon"),changed:a!==wn,onReset:()=>o({launcherIcon:""})}),children:we(_j,{label:i("Icon"),value:a,options:Uj,onChange:n=>o({launcherIcon:n===wn?"":n})})}),we(Xs,{label:i("Position"),icon:we(Nj,{}),changed:e.launcherPosition!==la,action:we(Zs,{label:i("Position"),changed:e.launcherPosition!==la,onReset:()=>o({launcherPosition:la})}),children:we(Aj,{options:[{label:i("Right"),id:"right"},{label:i("Left"),id:"left"}],value:e.launcherPosition,ariaLabel:i("Position"),onChange:n=>o({launcherPosition:n})})}),we(Ed,{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(Wj,{label:i("Show on phones"),icon:we(Dj,{}),checked:e.showOnPhones,fallback:Cd.showOnPhones,onChange:n=>o({showOnPhones:n})})]}),Ys(Rm,{title:i("Wording"),children:[we(Ed,{label:i("Title"),value:e.title,placeholder:Hj,onCommit:n=>o({title:n})}),we(Ed,{label:i("Subtitle"),value:e.subtitle,placeholder:zj,onCommit:n=>o({subtitle:n})}),we(Ed,{label:i("Greeting message"),value:e.greeting,placeholder:Gj,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 da,Fragment as vx,jsxs as JP}from"react/jsx-runtime";import{useEffect as y8,useId as XP,useState as ZP}from"react";import{SettingsField as S8}from"efficient-easel/panel";import{jsx as f8}from"react/jsx-runtime";import{forwardRef as jj,createElement as rx}from"react";var VP={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=jj(({color:n="currentColor",size:s=24,stroke:l=2,title:c,className:d,children:p,...m},f)=>rx("svg",{ref:f,...VP[e],width:s,height:s,className:["tabler-icon",`tabler-icon-${o}`,d].filter(Boolean).join(" "),...e==="filled"?{fill:n}:{strokeWidth:l,stroke:n},...m},[c&&rx("title",{key:"svg-title"},c),...r.map(([x,g])=>rx(x,g)),...Array.isArray(p)?p:[p]]));return a.displayName=`${t}`,a};var Kj=[["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"}]],ax=Q("outline","brand-facebook","BrandFacebook",Kj);var qj=[["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"}]],nx=Q("outline","brand-instagram","BrandInstagram",qj);var Vj=[["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"}]],sx=Q("outline","brand-line","BrandLine",Vj);var Yj=[["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"}]],lx=Q("outline","brand-linkedin","BrandLinkedin",Yj);var Xj=[["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"}]],ix=Q("outline","brand-pinterest","BrandPinterest",Xj);var Zj=[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]],cx=Q("outline","brand-telegram","BrandTelegram",Zj);var Jj=[["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"}]],dx=Q("outline","brand-tiktok","BrandTiktok",Jj);var Qj=[["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"}]],fx=Q("outline","brand-wechat","BrandWechat",Qj);var e8=[["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"}]],ux=Q("outline","brand-whatsapp","BrandWhatsapp",e8);var o8=[["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"}]],px=Q("outline","brand-x","BrandX",o8);var t8=[["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"}]],mx=Q("outline","brand-youtube","BrandYoutube",t8);var r8=[["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"}]],hx=Q("filled","brand-facebook-filled","BrandFacebookFilled",r8);var a8=[["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"}]],xx=Q("filled","brand-instagram-filled","BrandInstagramFilled",a8);var n8=[["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"}]],Ix=Q("filled","brand-linkedin-filled","BrandLinkedinFilled",n8);var s8=[["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"}]],gx=Q("filled","brand-pinterest-filled","BrandPinterestFilled",s8);var l8=[["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"}]],bx=Q("filled","brand-tiktok-filled","BrandTiktokFilled",l8);var i8=[["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"}]],yx=Q("filled","brand-whatsapp-filled","BrandWhatsappFilled",i8);var c8=[["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"}]],Sx=Q("filled","brand-x-filled","BrandXFilled",c8);var d8=[["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"}]],wx=Q("filled","brand-youtube-filled","BrandYoutubeFilled",d8);var iSe="outline",Od={fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},u8={},Cx={fillRule:"evenodd"},p8=[["path",{...Od,d:"M21 4L3 11L7 13L9 19L12 15L17 20z"}],["path",{...Cx,d:"M21 4L3 11L7 13L9 19L12 15L17 20zM15.212 8.939 10.576 13.576 11.424 14.424 16.061 9.788z"}]],m8=[["path",{...Od,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",{...u8,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("")}]],h8=[["path",{...Od,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",{...Od,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",{...Cx,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",{...Cx,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("")}]],x8=Q("filled","brand-telegram-filled","BrandTelegramFilled",p8),I8=Q("filled","brand-line-filled","BrandLineFilled",m8),g8=Q("filled","brand-wechat-filled","BrandWechatFilled",h8),b8={instagram:{outline:nx,solid:xx},facebook:{outline:ax,solid:hx},tiktok:{outline:dx,solid:bx},youtube:{outline:mx,solid:wx},x:{outline:px,solid:Sx},linkedin:{outline:lx,solid:Ix},pinterest:{outline:ix,solid:gx},whatsapp:{outline:ux,solid:yx},telegram:{outline:cx,solid:x8},line:{outline:sx,solid:I8},wechat:{outline:fx,solid:g8}};function YP({platform:e,iconStyle:o,size:t}){let r=b8[e][o];return f8(r,{size:t,stroke:1.75,"aria-hidden":"true",focusable:"false"})}var w8={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 C8({platform:e}){let{rows:o,saveLink:t}=Us(),{value:r,error:a}=o[e],[n,s]=ZP(r),[l,c]=ZP(!1),d=XP(),p=XP();y8(()=>s(r),[r]);let m=async()=>{if(n.trim()===r){n!==r&&s(r);return}c(!0),await t(e,n),c(!1)},f=Fb[e];return JP(vx,{children:[da(S8,{label:i(f),htmlFor:d,icon:da(YP,{platform:e,iconStyle:"outline",size:18}),children:da("input",{id:d,type:"text",inputMode:"url",value:n,placeholder:w8[e],onChange:x=>s(x.target.value),onBlur:()=>{m()},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&&da("p",{id:p,className:"sf-note sf-note--error",role:"alert",children:a})]})}function QP({unavailable:e}){let{canSave:o}=Us();return!o&&e?da(vx,{children:e}):JP(vx,{children:[da("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.")}),ii.map(t=>da(C8,{platform:t},t))]})}import{jsx as pa,Fragment as I7,jsxs as g7}from"react/jsx-runtime";import{useId as b7,useMemo as y7}from"react";import{useEasel as S7}from"efficient-easel/easel";import{SettingsField as w7,SettingsSwitch as C7}from"efficient-easel/panel";import{EyeIcon as v7}from"efficient-easel/icons";import{fieldShownInView as k7}from"efficient-easel/fields";import{usePreviewDevice as T7}from"efficient-easel/draw/client";import{jsx as ua,Fragment as kK,jsxs as TK}from"react/jsx-runtime";import{createContext as PK,useContext as EK,useLayoutEffect as L0,useMemo as zd,useRef as B0,useState as Bx}from"react";import{useEasel as D0,useSelectedFields as OK}from"efficient-easel/easel";import{fieldShownInView as _K,Inspector as RK,planFields as Dx}from"efficient-easel/fields";function e0({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 fK}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as uK,deviceMetaOf as S0}from"efficient-easel/screen/lib/document/device-fields";import{jsx as J,jsxs as Gt}from"react/jsx-runtime";import{phoneKey as gr}from"efficient-easel/draw";import{SettingsDefaultReset as L8,SettingsField as p0}from"efficient-easel/panel";import{AnimationIcon as m0,ClockIcon as B8,DirectionDownIcon as D8,DirectionIcon as N8,DirectionLeftIcon as M8,DirectionRightIcon as H8,DirectionUpIcon as z8,DurationIcon as G8}from"efficient-easel/icons";import{deviceField as Pn}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as W8,noControlField as U8}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{describedAs as h0,group as $8,onDesktopWords as j8,phoneTwinFields as K8}from"efficient-easel/screen/lib/document/box-fields";import{ENTRANCE_FROM as q8,ENTRANCE_FROM_DEFAULT as x0,ENTRANCE_KINDS as Nd,ENTRANCE_KINDS_WITH_FROM as d0,MOTION_TIMING as V8,entranceAttrs as Y8,playEntrance as X8,readEntrance as Z8}from"efficient-shell/format";import{IconPicker as J8}from"efficient-shell/ui";import{jsx as Ex}from"react/jsx-runtime";import{ClockIcon as P8,DurationIcon as E8}from"efficient-easel/icons";import{MOTION_TIMING as l0}from"efficient-shell/format";import{useSelectedHost as O8}from"efficient-easel/easel";import{MOTION_EASING as v8,MOTION_TIMING as o0,motionSeconds as t0}from"efficient-shell/format";var kx="none",Tx=[{label:"None",value:"none"},{label:"Scroll",value:"scroll"}];function SSe(e){return oo(Tx,kx,e)}var _d={field:"loop",is:"scroll"},Js="left",Px=[{label:"Left",value:"left",cell:"left"},{label:"Right",value:"right",cell:"right"},{label:"Up",value:"up",cell:"top"},{label:"Down",value:"down",cell:"bottom"}],k8={left:"storefront-ticker",right:"storefront-ticker-right",up:"storefront-ticker-up",down:"storefront-ticker-down"};function r0(e){return oo(Px,Js,e)}function a0(e){return e==="up"||e==="down"}function n0(e){return t0("loop","duration",e.loopDuration!=null?e.loopDuration:e.speed)}var wSe=o0.loop.duration.default,T8=o0.loop.delay.default;function s0(e){return t0("loop","delay",e.loopDelay)}function CSe(e,o,t=T8){return`${k8[e]} ${o}s ${v8.loop}${t?` ${t}s`:""} infinite`}function vn(e){let{min:o,max:t,step:r,default:a}=l0[e].duration;return wo("Duration",Ex(E8,{}),o,t,r,a,"s")}function kn(e){let{min:o,max:t,step:r,default:a}=l0[e].delay;return wo("Delay",Ex(P8,{}),o,t,r,a,"s")}function Tn(e,o){let t=e.render,r=a=>{let n=O8();return t({...a,value:o(a.value,n?.values)})};return{...e,render:a=>Ex(r,{...a})}}function Rd({readsSpeed:e}){return Tn(vn("loop"),(o,t)=>n0({loopDuration:o,speed:e?t?.speed:void 0}))}function Ad(){return Tn(kn("loop"),e=>s0({loopDelay:e}))}import{phoneKey as _8}from"efficient-easel/draw";import{readEntrance as R8}from"efficient-shell/format";var Ld="sf-entrance",Ee={kind:"entrance",from:"entranceFrom",duration:"entranceDuration",delay:"entranceDelay"},Bd="sectionAnimation",i0=e=>e!=null&&e!=="";function A8(e,o){let t=e[Ee[o]];return o==="kind"&&!i0(t)?e[Bd]:t}function Fd(e,o,t){if(t==="phone"){let r=e[_8(Ee[o])];if(i0(r))return r}return A8(e,o)}function Qs(e,o){return R8(Fd(e,"kind",o),Fd(e,"from",o),Fd(e,"duration",o),Fd(e,"delay",o))}function Dd(e){let o=Qs(e,"desktop"),t=Qs(e,"phone");return o.kind==="none"&&t.kind==="none"?null:{desktop:o,phone:t}}var F8={...Object.fromEntries([...vw].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)"},BSe=new Set(Object.keys(F8));var c0="_gEntrance";var el={none:"None",fade:"Fade",rise:"Rise",scale:"Scale",glide:"Glide",bounce:"Bounce",flip:"Flip",reveal:"Reveal",spin:"Spin"},Q8={top:"Top",bottom:"Bottom",left:"Left",right:"Right"},eK={top:()=>J(D8,{}),bottom:()=>J(z8,{}),left:()=>J(H8,{}),right:()=>J(M8,{})},Rx="Entrance",f0=Nd.filter(e=>e!=="none"),Ox=e=>({any:[{field:Ee.kind,in:e},{all:[{field:Ee.kind,set:!1},{field:Bd,in:e}]}]}),u0=e=>({any:[{field:gr(Ee.kind),in:e},{all:[{field:gr(Ee.kind),set:!1},Ox(e)]}]}),oK=[[[Ee.from],Ox(d0)],[[gr(Ee.from)],u0(d0)],[[Ee.duration,Ee.delay],Ox(f0)],[[gr(Ee.duration),gr(Ee.delay)],u0(f0)]],zt=({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}),st=({x:e=12,y:o=12,o:t=1})=>J("rect",{x:e,y:o,width:"16",height:"16",rx:"2",opacity:t}),tK={none:J(zt,{children:J(st,{})}),fade:Gt(zt,{children:[J(st,{x:6,o:.3}),J(st,{x:18})]}),rise:Gt(zt,{children:[J(st,{y:20,o:.3}),J(st,{y:8}),J("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),scale:Gt(zt,{children:[J("rect",{x:"16",y:"16",width:"8",height:"8",rx:"1",opacity:".35"}),J(st,{}),J("path",{d:"M6 6l4 4M34 34l-4-4"})]}),glide:Gt(zt,{children:[J(st,{x:2,o:.3}),J(st,{x:20}),J("path",{d:"M4 33h12m-2-2 2 2-2 2"})]}),bounce:Gt(zt,{children:[J(st,{y:6}),J("path",{d:"M8 34c3-6 5-6 8 0s5 6 8 0 5-6 8 0"})]}),flip:Gt(zt,{children:[J("path",{d:"M12 12l16 4v8l-16 4z",opacity:".35"}),J(st,{}),J("path",{d:"M20 4v32",strokeDasharray:"2 2"})]}),reveal:Gt(zt,{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:Gt(zt,{children:[J(st,{}),J("path",{d:"M33 14a14 14 0 0 1 0 12m0 0-3-1m3 1 1-3"})]})};function rK({kind:e}){let{attrs:o}=Y8(Z8(e,x0));return Gt("span",{className:"sf-entrance-pic",children:[J("span",{className:"sf-entrance-stage",children:J("i",{...o,children:tK[e]})}),J("span",{className:"sf-entrance-cap",children:i(el[e])})]})}var aK=(e,o)=>{let t=o.querySelector(".sf-entrance-stage > i");t&&X8(t)},nK={width:"3.5rem",height:"4.25rem"};function I0({value:e,onChange:o}){return J(J8,{label:i(Rx),value:e,emptyValue:"none",columns:3,cell:nK,onChange:o,onPreview:aK,tooltips:!1,options:Nd.map(t=>({value:t,label:i(el[t]),icon:J(rK,{kind:t})}))})}var _x="Effect",g0=e=>e==="none"?void 0:i(el[e]);function sK({value:e,onChange:o}){let t=Mo(),r=Qs({...t,[Ee.kind]:e},"desktop").kind;return J(p0,{label:i(_x),icon:J(m0,{}),value:g0(r),children:J(I0,{value:r,onChange:o})})}function lK({value:e,onChange:o}){let t=Mo(),r=typeof e=="string"&&Nd.includes(e),a=Qs(t,"desktop").kind;return J(p0,{label:i(_x),icon:J(m0,{}),value:g0(r?e:a),changed:r,action:J(L8,{words:oe()?.panel,label:i(_x),changed:r,detail:j8(n=>i(n),i(el[a])),onReset:()=>o(void 0)}),children:J(I0,{value:r?e:a,onChange:o})})}var b0={type:"select",label:Rx,options:Nd.map(e=>({value:e,label:el[e]}))},iK=()=>h0({type:"custom",render:({value:e,onChange:o})=>J(sK,{value:e,onChange:o})},b0),cK=()=>h0({type:"custom",render:({value:e,onChange:o})=>J(lK,{value:e,onChange:o})},b0),dK=q8.map(e=>({label:Q8[e],value:e,picture:eK[e]()}));function lt(){let{duration:e,delay:o}=V8.entrance,t={[c0]:$8(Rx),[Ee.kind]:Pn("desktop",iK()),[Bd]:U8({type:"custom",render:()=>J(W8,{})},"always"),[gr(Ee.kind)]:Pn("mobile",cK()),...K8(Ee.from,Qa("From",J(N8,{}),dK,x0)),[Ee.duration]:Pn("desktop",vn("entrance")),[gr(Ee.duration)]:Pn("mobile",Tc({label:"Duration",desktopKey:Ee.duration,icon:J(G8,{}),min:e.min,max:e.max,step:e.step,fallback:e.default,unit:"s"})),[Ee.delay]:Pn("desktop",kn("entrance")),[gr(Ee.delay)]:Pn("mobile",Tc({label:"Delay",desktopKey:Ee.delay,icon:J(B8,{}),min:o.min,max:o.max,step:o.step,fallback:o.default,unit:"s"}))};return pp(t,oK)}import{DESIGN_GROUPS as Fx,SETTINGS_BUCKETS as pK}from"efficient-easel/panel";import{BUCKET_KEY as Ao,DESIGN_GROUP_KEY as ol}from"efficient-easel/screen/lib/document/field-buckets";var tl=pK;var mK="Editor only \u2014 not shown live",Lx={"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",[mK]:"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"},w0={"AlloyWheelsListing._gCards":"Design","ProductGrid._gCards":"Design"},C0={"Text._gSpacing":"Size","Heading._gSpacing":"Size"};function Ax(e,o,t){let r=`${e}.${o}`;return C0[r]??w0[r]??Lx[t]}function v0(e){return e==="Animation"?[Ao.Animation]:[Ao.Design,ol[e]]}function Md(...e){let o=[];for(let t of e)for(let r of Object.values(t)){let a=S0(r),n=Dt(a?a.inner:r),s=n?Lx[n.label]:void 0;if(s)for(let l of v0(s))o.includes(l)||o.push(l)}return o}var cwe=[...Md(mc({tablet:!0}),Pc("full"),Ec(),_c(),Lm()),...Object.keys(mc({tablet:!0})),...Object.keys(Pc("full")),...Object.keys(Ec()),...Object.keys(_c()),...Object.keys(Lm())],dwe=[...Md(Cc()),...Object.keys(Cc())],fwe=[...Md(kc()),...Object.keys(kc())],uwe=[...Md(lt()),...Object.keys(lt())],hK=Object.keys(Hv()),xK=new Set(["cardImage","imageBackground"]),pwe=[...v0(Ax("ProductGrid","_gCards","Cards")??"Design"),...hK.filter(e=>e.startsWith("_g")||xK.has(e))],mwe=Object.keys(zv()),hwe=Object.keys(Gv()),IK={"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)"},k0={Content:["Content"],Size:["Size"],Design:["Design","Style"],Layout:["Layout"],Position:["Position"],Anchor:["Anchor"],Animation:["Animation"]},T0={_gAnchor:"repeated the Anchor group heading above it (two tabs, 11.0.0)"};{let e={...mc({tablet:!0}),...Pc("full"),...Ec(),..._c(),...Cc(),...kc(),...lt()};for(let o of Object.keys(T0)){let t=Dt(e[o]),r=t?Lx[t.label]:void 0;if(!t||t.level!==2||!r||!k0[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 gK=new Set(["_sContent","_sStyle","_sLayout","_sMedia"]),bK=new Map([[Ao.Design,"Content"],[Ao.Animation,"Animation"],...Fx.map(e=>[ol[e],e])]);function P0(e){let o=new Set([...Object.values(Ao),ol.Content]);for(let[t,r]of Object.entries(e))if(!o.has(t)&&Dt(r)?.level===1)return 1;return 2}function yK(e){let o=`${e}.`;return Object.keys(IK).filter(t=>t.startsWith(o)).map(t=>t.slice(o.length))}function SK(e,o){let t=S0(e),r=fK(o);return t?uK(t.tier,r):r}function wK(e,o){let t=Dt(o);return t?e==="Content"||e==="Animation"?vv(o,t.label):kv(o):o}function y0(e){return e==="Design"?Fx:["Animation"]}function E0(e,o){let t=[],r=new Set(yK(o)),a=new Set,n=!1,s=null;for(let[f,x]of Object.entries(e)){let g=Dt(x);if(gK.has(f))throw new Error(`${o}.${f}: 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=bK.get(f);if(y!==void 0){if(g?.level!==1)throw new Error(`${o}.${f}: 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.`);(f===Ao.Design||f===Ao.Animation)&&(n=!0),t.push(s={place:y,entries:[],adopted:!0});continue}if(!g){s||t.push(s={place:"Content",entries:[]}),s.entries.push([f,x]);continue}if(r.has(f)||f in T0){let O=Ax(o,f,g.label);if(g.level!==2||!O||!k0[O].includes(g.label))throw new Error(`${o}.${f}: ${r.has(f)?"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(f)&&a.add(f),t.push(s={place:O,entries:[]});continue}let k=Ax(o,f,g.label);if(!k)throw new Error(`${o}.${f}: 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 ${[...Fx,"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:k,entries:[[f,g.level===2?x:SK(x,g.label)]]})}let l=new Set(Object.entries(e).filter(([,f])=>Dt(f)).map(([f])=>f));for(let[f,x]of[["BLOCK_KEY_GROUP",C0],["KEY_GROUP",w0]]){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}: ${f} (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(f=>!a.has(f));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(f=>f.entries.length>0).map(f=>f.place)),p=tl.filter(f=>y0(f).some(x=>d.has(x))),m={};for(let f of p){m[Ao[f]]=wc(f,f===p[0]?p:null);for(let x of y0(f)){if(!d.has(x))continue;let g=t.filter(k=>k.place===x),y=g.findIndex(k=>k.adopted);y>0&&g.unshift(...g.splice(y,1)),f==="Design"&&(m[ol[x]]=_m(x));for(let k of g)for(let[O,w]of k.entries)m[O]=wK(x,w)}}return m}function xwe(e){return Ao.Design in e?e:{[Ao.Design]:wc("Design",null),[ol.Content]:_m("Content"),...e}}function Iwe(e){return tl.some(o=>Ao[o]in e)}function gwe(e){let o=tl.filter(r=>Ao[r]in e);if(o.length===0)return e;let t={...e};for(let r of o)t[Ao[r]]=wc(r,r===o[0]?o:null);return t}import{jsx as CK}from"react/jsx-runtime";import{EmptyState as vK}from"efficient-shell/ui";function fa(){return CK(vK,{variant:"none",icon:!1,message:i("These settings apply to every view.")})}import{usePreviewDevice as AK}from"efficient-easel/draw/client";import{deviceField as FK}from"efficient-easel/screen/lib/document/device-fields";var Hd=" text",O0="Text";function rl(e){let o=e.rows.filter(t=>t.shown);return o.length===0||o.length===1&&o[0].labelled}function _0(e){return e.filter(rl).map(o=>o.key)}function R0(e,o){let t=e.filter(a=>!rl(a));if(t.length!==1)return null;let r=e.filter(rl).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 A0(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 F0(e,o){if(e.size!==o.size)return!1;for(let t of e)if(!o.has(t))return!1;return!0}var Nx=new Map,Gd=new Set;function N0(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 LK=Object.fromEntries(tl.map(e=>{let o=Cv[e];return[e,ua(o,{},e)]})),M0=PK(null),BK={_partBody:FK("each",{type:"custom",render:()=>ua(DK,{})})};function DK(){return ua(kK,{children:EK(M0)})}function it({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}=OK(),m=zd(()=>a?{...c,...a.values}:c,[c,a?.values]),f=(se,Fe)=>a?.keys.has(se)?a.onChange(se,Fe):p(se,Fe),x=AK(),{appState:g,config:y}=D0(se=>se),k=fS(x,y,g.data.content??[],g.ui.itemSelector),O=n===void 0?NP(l,t):BK,w=zd(()=>{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=mp(w,m,k),[C,v]=Bx(()=>new Set(Gd)),[A,E]=Bx(()=>new Set),L=B0(null),{bandRows:T,designBands:R,looseRows:N}=zd(()=>{let se=new Map,Fe=new Set,no=[];for(let Pe of Dx(I).rows){if(!Pe.fold){Pe.bucket==="Design"&&no.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([["",no]])}},[I]),b=_K({},x),_={key:Hd,rows:Array.from({length:b?o:0},()=>({shown:!0,labelled:!0}))};L0(()=>{let se=L.current?.parentElement;if(!se)return;let Fe=N0(se,T),no=new Set(_0(Fe)),Pe=R0([_,...Fe.filter(Ne=>R.has(Ne.key))],N0(se,N)[0].rows);Pe&&no.add(Pe),E(Ne=>F0(Ne,no)?Ne:no)});let F=zd(()=>A0(I,A),[I,A]),H=!rl(_)&&!A.has(Hd)?{key:Hd,title:O0}:void 0,Z=D0(se=>se.selectedItem)!==null,q=a?.part??t??"",$=`${s}:${q}:${String(x)}`,[ve,ne]=Bx(()=>({tab:Nx.get($)})),$e=`${s}:${q}`,De=B0(null),Te={...k,node:m},pe=Dx(I,{values:m,context:Te}).buckets,ge=e0({allTabs:Z,remembered:Nx.get($),inherited:De.current?.panel===$e?De.current.tab:ve.tab,buckets:pe,hasText:b&&o>0}),qe=!b&&!pe.includes(ge)&&(Dx(mp(w,m,{...k,device:"desktop"}),{values:m,context:{...Te,device:"desktop"}}).buckets.includes(ge)||ge==="Design"&&o>0);L0(()=>{De.current={panel:$e,tab:ge}});let Ve=ge==="Design";return ua(M0.Provider,{value:n??null,children:ua(Fm.Provider,{value:a?m:null,children:TK(RK,{fields:F,values:m,onChange:f,readOnly:d,allTabs:Z,showWhenContext:Te,tab:ge,onTab:se=>{Nx.set($,se),ne({tab:se})},tabIcons:LK,idPrefix:s,ariaLabel:i("Section settings"),lead:Ve?e:null,leadFold:H,closedFolds:C,onFold:(se,Fe)=>{Fe?Gd.delete(se):Gd.add(se),v(new Set(Gd))},children:[ua("span",{ref:L,hidden:!0}),qe&&ua(fa,{})]})})})}import{useMemo as d7}from"react";import{useEasel as f7}from"efficient-easel/easel";import{useSectionOps as u7}from"efficient-easel/screen/lib/document/use-section-ops";import{jsx as ct}from"react/jsx-runtime";import{ContrastIcon as MK,HoverIcon as HK,HoverLiftIcon as zK,HoverNextImageIcon as GK,HoverNoneIcon as WK,HoverRotateIcon as UK,HoverZoomIcon as z0,OpacityIcon as $K,RotateIcon as jK}from"efficient-easel/icons";import{group as KK}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as dt}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as qK,noControlField as VK}from"efficient-easel/screen/lib/document/panel-no-control-mark";function Wd(e){return`color-mix(in srgb, var(--overlay-scrim) ${Math.round(Math.min(1,Math.max(0,e))*1e3)/10}%, transparent)`}var Wwe="sf-card",br={min:0,max:100,step:5,fallback:0,unit:"%"},Uwe=[{label:"Even",value:"even"},{label:"From the bottom",value:"bottom"}],NK="68%",$we={desktop:20,phone:20,side:40,sidePhone:24},jwe="sf-box-sides";function Ud(e){return typeof e=="string"&&e.trim()!==""}function Kwe(e,o){let t=typeof e=="number"?e:Number.parseFloat(String(e??""));if(!Number.isFinite(t)||t<=0)return null;let r=(Math.min(br.max,Math.max(br.min,t))/100).toFixed(2);return o!=="bottom"?{background:Wd(Number(r))}:{background:`linear-gradient(0deg, ${Wd(Number(r))} 0%, ${Wd(0)} ${NK})`}}function qwe(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 Mx=()=>dt("desktop",KK("Hover")),YK="What this does when a shopper points at it, or taps it on a phone.",XK="What this picture does when a shopper points at it. Black and white shows it in grey until then. A phone shows its colour.",ZK="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.",JK="What each card does when a shopper points at it, or taps it on a phone. Rotate turns the wheel picture.",QK={none:()=>ct(WK,{}),nextImage:()=>ct(GK,{}),rotate:()=>ct(UK,{}),zoom:()=>ct(z0,{}),lift:()=>ct(zK,{}),mono:()=>ct(MK,{})};function Hx(e,o){return Qa("Hover effect",ct(HK,{}),e.map(t=>({label:Rs[t],value:t,picture:QK[t]()})),o)}function G0(){return{[qc]:Mx(),[Ro]:dt("desktop",{...Hx(eh,"none"),description:YK})}}function W0(e){let o=Rk(e),t=wo("Angle",ct(jK,{}),cn.min,cn.max,cn.step,th,"\xB0",{clear:{emptyLabel:"By spokes"}});return{[qc]:Mx(),[_e.kind]:dt("desktop",{...Tn(Hx(Yc,e),(r,a)=>rh(a??{},e)),description:JK}),[_s]:VK({type:"custom",render:()=>ct(qK,{})},"always"),[_e.angle]:dt("desktop",Xe(Tn(t,r=>U(r)===void 0?void 0:ah(r)),o)),[_e.duration]:dt("desktop",Xe(vn("hover"),o)),[_e.delay]:dt("desktop",Xe(kn("hover"),o))}}function zx(e,o=""){let t=Bk(e);return{[qc]:Mx(),[_e.kind]:U0(Xc,e,XK),...lh.includes(o)?e7():{},[_e.duration]:dt("desktop",Xe(vn("hover"),t)),[_e.delay]:dt("desktop",Xe(kn("hover"),t))}}function e7(){let e=Lk(),o=wo("Zoom",ct(z0,{}),Nt.min,Nt.max,Nt.step,Nt.min,Nt.unit),t=wo("Darken on hover",ct($K,{}),br.min,br.max,br.step,br.fallback,br.unit);return{[As.zoom]:dt("desktop",Xe(o,e)),[As.darken]:dt("desktop",Xe(t,e))}}function U0(e,o,t){let r=dt("desktop",{...Tn(Hx(e,o),a=>ih({[Ro]:a},o,e)),description:t});return Object.assign(r,{[$0]:o})}var $0="sfPictureResting",H0=new WeakMap;function lCe(e,o,t){let r=e[_e.kind],a=r?.[$0];if(!r||!a)return e;let n=o.props?.[Ro]==="nextImage",s=n?null:yi(t.appState,o.props?.id),l=s?Sy(String(s.type),or(o.props),s):null;if(!n&&!l?.next)return e;let c=H0.get(e);return c||(c={...e,[_e.kind]:U0(nh,a,ZK)},H0.set(e,c)),c}import{jsx as j0}from"react/jsx-runtime";import{DirectionIcon as o7,LoopIcon as t7}from"efficient-easel/icons";function Gx(){return Nv("Scroll direction",Px,Js,"A marquee cannot run diagonally, so the corners are not answers.",j0(o7,{}),Dv)}function K0(){return{loop:ot("Loop",j0(t7,{}),Tx,kx),scrollDirection:Xe(Gx(),_d),loopDuration:Xe(Rd({readsSpeed:!1}),_d),loopDelay:Xe(Ad(),_d)}}function r7(){let e=zx("none");return is(e,Object.keys(e),up("bgImage"))}function q0(e,o=""){switch(e){case"section":case"block":return lt();case"box":return{...lt(),...K0(),...r7()};case"picture":return{...lt(),...zx(sh(o),o)};case"textPart":return{...lt(),...G0()};case"cards":return{...lt(),...W0(oh(o))};case"marquee":return{...lt(),scrollDirection:Gx(),loopDuration:Rd({readsSpeed:!0}),loopDelay:Ad()}}}import{phoneKey as a7}from"efficient-easel/draw";import{ENTRANCE_STATE_ATTR as n7,entranceAttrs as s7}from"efficient-shell/format";var Y0={},Wx="_partMotion",Ux=[...Object.values(Ee).flatMap(e=>[e,a7(e)]),Ro,_e.duration,_e.delay];function _Ce(e){return mn(e,Wx)}function En(e,o){return ld(e,Wx,o)}var l7=new Set([Ee.kind,Ro]);function X0(e,o,t,r){let{[t]:a,...n}=En(e,o),s=r==null||r===""||r==="none"&&l7.has(t)?n:{...n,[t]:r};return id(e,Wx,o,Object.keys(s).length?s:null)}function $x(e){return{entrance:Dd(e),hover:Ok(e)}}function Z0(e){let o=$x(e);return o.entrance!==null||o.hover!=="none"}function J0(e,o){let{attrs:t,style:r}=s7(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(n7)}}var i7=4;function Q0(e){let o;for(let t of e)(!o||t.element.compareDocumentPosition(o.element)&i7)&&(o=t);return o}var c7="data-sf-part-host";function eE(e){let o=e?.ownerDocument.defaultView,t=e;for(;t&&!t.hasAttribute(c7)&&!t.classList.contains(Ld);){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",V0="sf-part-lift";function oE(e){if(e.getElementById(V0))return;let o=e.createElement("style");o.id=V0,o.textContent=gT(`[${$d}]`).join(`
40
- `),e.head.appendChild(o)}var tE=new Map,p7=e=>{let o=tE.get(e);return o||tE.set(e,o=E0(q0(e),`part:${e}`)),o},m7=new Set(Ux);function On(e,o,t){let{getItemById:r,getSelectorForId:a}=f7(p=>p),n=u7(),s=r(e)?.props??{},l=En(s,o),c=JSON.stringify(l),d=d7(()=>Object.fromEntries(Ux.map(p=>[p,l[p]])),[c]);return{part:o,fields:p7(t),values:d,keys:m7,onChange:(p,m)=>{let f=a(e),x=r(e);if(!f||!x)return;let g=X0(x.props??{},o,p,m);n.replaceComponent(f.zone,f.index,{...x,props:g})}}}import{Fragment as h7,createElement as x7}from"react";import{deviceField as jx}from"efficient-easel/screen/lib/document/device-fields";var fo=()=>({type:"custom",render:()=>x7(h7)});var Kx={words:fo(),sourceNote:fo(),style:fo(),font:fo(),italic:fo(),fontSize:jx("each",fo()),lineHeight:fo(),letterSpacing:fo(),paragraphSpacing:fo(),padding:fo(),align:jx("each",fo()),letterCase:fo(),fixedSizeHint:jx("each",fo()),regionNote:fo(),regionStyle:fo()},rE={showTicker:fo(),items:fo()};var P7="root:default-zone";function aE({heroId:e}){let{appState:o,dispatch:t}=S7(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=y7(()=>{let x=n?.props.tickerItems;return Array.isArray(x)?x:AP.map(g=>({text:g}))},[n]),c=b7(),d=T7(),p=x=>k7(rE[x],d),m=On(e,FP,"block");if(!n)return pa("p",{className:"sf-note",children:i("This ticker\u2019s hero is no longer on the page.")});let f=x=>t({type:"replace",destinationZone:P7,destinationIndex:a,data:{...n,props:{...n.props,...x}}});return pa(it,{motion:m,body:g7(I7,{children:[!p("showTicker")&&!p("items")&&pa(fa,{}),p("showTicker")&&pa(w7,{label:i("Show ticker"),labelId:c,icon:pa(v7,{}),action:pa(C7,{checked:s,onChange:x=>f({showTicker:x}),ariaLabelledBy:c})}),p("items")&&pa(Nm,{label:Dm.label,icon:Dm.icon,items:l,placeholder:"item",onChange:x=>f({tickerItems:x}),markup:!0})]})})}import{jsx as Y,Fragment as dl,jsxs as Ho}from"react/jsx-runtime";import{useContext as q7,useEffect as Vx,useRef as V7,useState as wE}from"react";import{FieldSelect as Y7,InspectorField as X7,fieldShownInView as Z7}from"efficient-easel/fields";import{SettingsField as J7}from"efficient-easel/panel";import{InspectorUpLevel as Jd}from"efficient-easel/chrome";import{StylesIcon as Q7,TypeIcon as eq}from"efficient-easel/icons";import{useEasel as oq}from"efficient-easel/easel";import{TextPartPanel as CE}from"efficient-easel/copy";import{Button as tq,IconButton as rq,Tooltip as aq}from"efficient-shell/ui";import{jsx as nE,jsxs as E7}from"react/jsx-runtime";import{COPY_CELLS as al,CopyBox as O7}from"efficient-easel/copy";import{PaddingYIcon as _7}from"efficient-easel/icons";var R7=["left","center","right","justify"];function jd(e,o,t,r="desktop"){let a=Ns(e),n=r==="mobile",s=(n?e.sizePhone:void 0)??e.size??o.sizePx;return[n?{...al.fontSize,key:"fontSize",value:e.sizePhone,styleValue:Math.round(o.sizePx),onChange:l=>t({sizePhone:l??null})}:{...al.fontSize,key:"fontSize",value:e.size,styleValue:Math.round(o.sizePx),onChange:l=>t({size:l??null})},{...al.lineHeight,key:"lineHeight",value:a.lineHeight,styleValue:o.lineRatio,onChange:l=>t(l===void 0?{lineHeight:null,line:null}:{lineHeight:l})},{...al.letterSpacing,key:"letterSpacing",scale:s,value:a.letterSpacingEm,styleValue:o.letterEm,onChange:l=>t(l===void 0?{letterSpacing:null,letter:null}:{letterSpacing:l})},{...al.paragraphSpacing,key:"paragraphSpacing",value:e.paragraphSpacing,styleValue:0,onChange:l=>t({paragraphSpacing:l??null})},{key:"padding",name:i("Padding"),icon:nE(_7,{}),unit:"px",step:kh,shiftStep:10,min:Ch,max:vh,value:e.padding,styleValue:o.paddingPx,onChange:l=>t({padding:l??null})}]}function sE({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:m,typedOnCanvas:f=!1}){let x=jd(n,s,l),g=Vm(r,t);return E7("div",{className:"sf-part-textbox",children:[m,nE(O7,{value:e,onChange:o,multiline:t,placeholder:d,ariaLabel:p,rules:Dr,tools:g,barShows:f?"focus":"always",colors:r?c:[],colorNameOf:ea,align:a?{value:n.align??s.align,allow:R7,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 vE}from"efficient-easel/draw/client";import{jsx as Kd,Fragment as A7,jsxs as F7}from"react/jsx-runtime";import{Button as lE,Dialog as L7}from"efficient-shell/ui";function iE({styleName:e,onCancel:o,onConfirm:t}){return Kd(L7,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Update {style}?",{style:e}),footer:F7(A7,{children:[Kd(lE,{variant:"secondary",onClick:o,children:i("Cancel")}),Kd(lE,{variant:"primary",onClick:t,children:i("Update style")})]}),children:Kd("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 nq}from"efficient-easel/screen/components/ScreenDocumentContext";import{usePreviewDevice as sq}from"efficient-easel/draw/client";import{shownTier as Xd}from"efficient-easel/screen/lib/document/device-fields";import{jsx as B7}from"react/jsx-runtime";import{createContext as D7,useContext as N7,useMemo as M7,useState as H7}from"react";var z7={partStyle:null,setPartStyle:()=>{}},cE=D7(z7);function bve({children:e}){let[o,t]=H7(null),r=M7(()=>({partStyle:o,setPartStyle:t}),[o]);return B7(cE.Provider,{value:r,children:e})}function dE(){return N7(cE)}import{TEXT_FIELD_MARKER as lq}from"efficient-easel/draw";import{useSectionOps as iq}from"efficient-easel/screen/lib/document/use-section-ops";var nl="@name",fE="@body",uE="@value",pE={[nl]:"Name",[fE]:"Body",[uE]:"Value"},G7={TimelineTrack:{"entries.date":nl,"entries.title":nl,"entries.blurb":fE},Footprint:{"offices.city":nl},Stats:{"items.label":nl,"items.value":uE}};function W7(e){let{key:o,row:t}=rt(e);return t?`${o}.${t.rowKey}`:null}function sl(e,o){if(!e)return o;let t=W7(o);return t?G7[e]?.[t]??o:o}import{useEaselHost as cq}from"efficient-easel/screen/lib/host";function U7(e){let o=new Set([...Object.keys(zi[e]??{}),...Gi[e]??[]]);for(let[t,r]of Object.entries(Fp[e]??{}))r.verb==="snapshot"&&o.add(t);return[...o].sort()}var $7={CollectionCard:"product",FooterMenu:"menu",Gallery:"product",GalleryItem:"product",ProductGrid:"product",ProductHero:"product",SpecTable:"product",Events:"blog",FeaturedCover:"blog",LongRead:"blog",SubscribeBlogs:"blog"},mE={product:"Synced from the product.",blog:"Synced from the blog post.",menu:"Synced from the site menu."},hE="Open",xE={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 _n(e){let o=e?.source?.slug;return ee(o)}function ll(e){return $7[e]??null}function IE(e,o){let t=ll(e);return t&&U7(e).includes(o)?t:null}function qd(e){let o=e?.menu?.id;return ee(o)}var il={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)]"},j7={tag:{label:"Tag",follows:"Labels",builtIn:un(il.tag),writable:!0},name:{label:"Name",follows:"Heading 2",builtIn:un(il.name),writable:!0},body:{label:"Body",follows:"Body",builtIn:un(il.body),writable:!0},price:{label:"Price",follows:"Labels",builtIn:un(il.price),writable:!0},link:{label:"Link",follows:"Labels",builtIn:un(il.link),writable:!0}},gE=j7;var K7={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}},bE=K7;var Vd={entry:{label:"Entry",follows:"Labels",builtIn:"13px",writable:!0},number:{label:"Entry number",follows:"Labels",builtIn:"13px",writable:!0}};var Fve=nd,yE={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 qx={SpecTable:yE,FAQ:bE,Collections:gE,Contents:Vd};function SE(){return Qt("efficient.section-text-regions",()=>new Map)}function zve(e){let o=SE();for(let[t,r]of Object.entries(e)){if(Object.hasOwn(qx,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 Yd(e){return e?Object.hasOwn(qx,e)?qx[e]:SE().get(e)??null:null}function Yx(e){return e?i(e):null}function kE(e){return e.kind==="role"?Cu[e.role]:e.kind==="custom"?"Custom":null}function dq(e){let o=Pt(e.role);return o?{kind:"role",role:o}:null}function fq(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 Zd(e,o,t,r){return dq(Ds(e,o))??fq(t,r)}function uq(e,o){if(!e.length)return null;let t=o(e[0]);return e.every(r=>o(r)===t)?t:null}function TE(e){return[{value:cl,label:i("No style"),description:i("Section\u2019s own")},...e.map(o=>({value:o.id,label:o.name,description:o.values.font?Na(o.values.font)?.label:void 0}))]}var cl="";function pq({face:e,base:o,onPick:t}){let r=e.kind==="role"?e.role:cl,a=[{label:i("No style"),value:cl},...kb.map(n=>({label:i(Cu[n]),value:n}))];return Y(Y7,{ariaLabel:i("Style"),value:r,options:a,inline:!0,onChange:n=>t(n===cl?null:n),renderOption:n=>n.value===cl?Ho(dl,{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(${Na(o.fontKey)?.cssVar})`:void 0,fontWeight:o?.weight},children:Yx(kE(e))}),valueText:n=>Yx(kE(e))??n?.label??""})}var RE=["regionNote","regionStyle"],mq=Object.keys(Kx).filter(e=>!RE.includes(e));function AE(e,o){return!e.some(o)}function hq({sectionName:e,onBack:o,textEditor:t,styleRow:r,children:a,tabs:n}){let s=Ho(dl,{children:[t,r,a]});return Ho("div",{className:"sf-part-panel",children:[Y(Jd,{inline:!0,name:i(e),onSelect:o}),n?n(s):s]})}function Qd({source:e,slug:o,menuId:t}){let r=cq(),a=xE[e],n=!a.needsSlug||!!o;return Y("div",{className:"sf-note sf-note--source",children:Ho("p",{className:"es-field-hint sf-hint-keep",children:[i(mE[e]),n?Ho(dl,{children:[" ",Y(tq,{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(hE)})]}):null]})})}var PE=4,xq=120;function EE(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 OE({region:e,sizePx:o,face:t,base:r,onFollowStyle:a,source:n,slug:s,onBack:l,shows:c,sizedStyle:d,ownLook:p}){let m=e.follows;return Ho("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(m),px:Math.round(o)}):i("Its size follows Styles \u25B8 {follows}.",{follows:i(m)})}),d?Ho(dl,{children:[d,c("regionStyle")&&Y("p",{className:"es-field-hint sf-hint-keep",children:EE(e)})]}):a?c("regionStyle")?Y(dl,{children:Y(J7,{label:i("Style"),icon:Y(Q7,{}),hint:EE(e),children:Y(pq,{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(Qd,{source:n,slug:s}):null,AE([...RE,"sourceNote",...d?["fontSize"]:[]],f=>c(f)&&(f!=="sourceNote"||!!n))&&Y(fa,{}),Y(Jd,{inline:!0,name:i("Page"),onSelect:l})]})}function Iq({onBack:e}){return Ho("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(Jd,{inline:!0,name:i("Page"),onSelect:e})]})}function gq({onBack:e,partId:o,why:t}){return Ho("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:Ho("code",{children:[o," \u2014 ",t]})}),Y(Jd,{inline:!0,name:i("Page"),onSelect:e})]})}function FE({nodeId:e,propKey:o,onBack:t,onEditStyle:r}){let{getItemById:a,getSelectorForId:n,config:s}=oq(G=>G),l=iq(),c=uk(),{partStyle:d}=dE(),{fonts:p,textStyles:m}=de(),f=q7(nq),x=!f?.capabilities?.hasSiteTheme,{persist:g}=Ka({themeFromDocument:x,tokenRef:f?.tokenRef,siteId:f?.siteId??null}),y=md({themeFromDocument:x,persist:g}),[k,O]=wE(!1),w=sq(),I=G=>Xd(w)!=="tablet"&&Z7(Kx[G],w),C=V7(null),v=a(e),A=n(e),E=v?s.components[v.type]:void 0,{key:L,row:T}=rt(o),R=E?.fields?.[L],N=T?sn(R,T):R,b=Bc(e,o),_=v?.props??{},F=an(N),H=Sc(N),Z=Qv(N),q=v?ll(v.type):null,$=v?IE(v.type,L):null,ve=T?Es(_[L],T):_[L],ne=!!T&&!(Array.isArray(_[L])&&T.index<_[L].length);Vx(()=>{fk(document)||C.current?.querySelector(".es-copy [contenteditable='true'], .es-copy textarea, .sf-copybox textarea, .sf-copybox input")?.focus()},[b]);let[$e,De]=wE(0);Vx(()=>De(0),[b]);let Te=!!v&&!ne&&(!A||!N);Vx(()=>{if(!Te||$e>=PE)return;let G=setTimeout(()=>De(je=>je+1),xq);return()=>clearTimeout(G)},[Te,$e]);let pe=Te&&$e<PE,ge=On(e,sl(v?.type,o),"textPart");if(!v||ne)return Y(Iq,{onBack:t});let qe=Yd(v.type),Ve=qe?Ls(qe,o):null;if(qe&&Ve){let G=d?.partId===b?d:null,je=qe[Ve],Ko=je.writable===!0&&!!A,Xt=Er=>{A&&l.replaceComponent(A.zone,A.index,{...v,props:ra(_,o,"role",Er)})};if(Ko&&cT(je)){let Er=Ds(_,o),nb=Or=>{if(!A)return;let hu=_;for(let[QL,eB]of Object.entries(Or))hu=ra(hu,o,QL,eB??null);l.replaceComponent(A.zone,A.index,{...v,props:hu})},XL=Ht(y.saved,y.old),ZL=wh(Er)??"",JL=jd(Er,G?.base??_E,nb,Xd(w)).filter(Or=>Or.key==="fontSize"&&I(Or.key));return Y(it,{motion:ge,body:Y(OE,{region:je,sizePx:G?.base.sizePx??null,face:Zd(_,o,G,p),base:G?.base??null,source:q,slug:_n(_),onBack:t,shows:I,ownLook:kT(Er),sizedStyle:Y(CE,{style:I("style")?{value:ZL,options:TE(XL),onChange:Or=>nb(Or?{textStyle:Or}:{textStyle:null,role:null}),onEditStyles:r}:void 0,cells:JL})})})}return Y(it,{motion:ge,body:Y(OE,{region:je,sizePx:G?.base.sizePx??null,face:Zd(_,o,G,p),base:G?.base??null,onFollowStyle:Ko?Xt:void 0,source:q,slug:_n(_),onBack:t,shows:I})})}if(!A||!N)return pe?Y("div",{className:"sf-note","aria-busy":"true"}):Y(gq,{onBack:t,partId:b,why:A?"no field":"no selector"});let se=G=>{l.replaceComponent(A.zone,A.index,{...v,props:G})},Fe=G=>{if(hr(G).hidden!==hr(ve).hidden||!F){let je=T?Gm(_,L,T,G):{..._,[L]:G};je&&se(je);return}Mc({node:v,propKey:o,kind:F,zone:A.zone,index:A.index},hr(G).text,l.replaceComponent)},no=ve,Pe=d?.partId===b?d:null,Ne=Pe?.styleOwner,go=Ne?a(Ne.owner):null,Eo=Ne&&go?n(Ne.owner):null,Oo=!!(Ne&&go&&Eo),M=Oo?go.props??{}:_,le=Oo?G=>l.replaceComponent(Eo.zone,Eo.index,{...go,props:G}):se,Se=Oo?Ne.kind:sl(v?.type,o),He=Ds(M,Se),ze=[{partKey:Se,face:Zd(M,Se,Pe,p),sizeGroup:Pe?.sizeGroup??null,base:Pe?.base??_E,style:He}],Yt=uq(ze,G=>G.sizeGroup),Aa=fn(Pe?.inks),eo=(G,je)=>{let Ko=M;for(let Xt of ze)Ko=ra(Ko,Xt.partKey,G,je);le(Ko)},Tr=G=>G?eo("textStyle",G):qn({textStyle:null,role:null}),qn=G=>{let je=M;for(let Ko of ze)for(let[Xt,Er]of Object.entries(G))je=ra(je,Ko.partKey,Xt,Er??null);le(je)},pu=F==="text"||F==="textarea",{text:eb,hidden:Fa}=hr(ve),ai=N?.[lq]?.label??o,ob=Fa?i("Show {label} on the slide",{label:i(ai)}):i("Hide {label} on the slide",{label:i(ai)}),tb=Ho("div",{className:"sf-field-head",children:[Y(eq,{}),Y("span",{className:"sf-field-label sf-field-label--inline",children:i(ai)}),pu&&Y(aq,{content:ob,children:Y(rq,{"aria-pressed":Fa,"aria-label":ob,onClick:()=>Fe({text:eb,hidden:!Fa}),children:Fa?Y(vE,{name:"eye-off",size:14}):Y(vE,{name:"eye",size:14})})})]}),ni=!H&&Z,UL=!!F&&(Sv(N)||H||Fa||!Z),rb=Zd(M,Se,Pe,p),$L=rb.kind==="role"?rb.role:null,mu=wh(He)??zT($L),ab=Ht(y.saved,y.old),jL=Object.entries(He).filter(([G,je])=>G!=="role"&&G!=="textStyle"&&je!==void 0).length,KL=()=>{let G=M;for(let je of ze){let{role:Ko,textStyle:Xt}=je.style;G=wT(G,je.partKey),Ko&&(G=ra(G,je.partKey,"role",Ko)),Xt&&(G=ra(G,je.partKey,"textStyle",Xt))}le(G)},Pr=mu,qL=GT(ze[0].style),VL=Pr?ab.find(G=>G.id===Pr)?.name??Pr:"",YL=()=>{O(!1),Pr&&(y.write(WT({saved:y.saved,old:y.old,styleId:Pr,values:Mh(ze[0].style)}),!0),KL())};return Ho(hq,{sectionName:E?.label??v.type,onBack:t,tabs:G=>Y(it,{motion:ge,body:G}),textEditor:I("words")?Y("div",{ref:C,className:"sf-part-text",children:UL?Y(sE,{text:eb,onTextChange:G=>Fe(pu?{text:G,hidden:Fa}:G),multiline:Rc(F),markup:F!=="plainText",styled:!1,style:ze[0].style,base:ze[0].base,setValue:qn,colors:Aa,placeholder:Yx($v(N))??void 0,ariaLabel:i(ai),head:tb,typedOnCanvas:c===b}):F?pu?tb:null:Y(X7,{field:N,name:o,value:no,onChange:Fe,id:`sf-part-${e}-${o}`})}):void 0,children:[$&&I("sourceNote")&&Y(Qd,{source:$,slug:_n(_),menuId:qd(_)}),ni&&Y(CE,{style:I("style")?{value:mu??"",options:TE(ab),onChange:G=>Tr(G||null),changed:jL>0,onEditStyles:r,onUpdateStyle:Pr&&qL?()=>O(!0):void 0}:void 0,font:I("font")?{value:He.font??"",styleValue:Na(ze[0].base.fontKey)?.label,options:qo.map(G=>({label:G.label,value:G.key})),onChange:G=>eo("font",G||null)}:void 0,italic:I("italic")?{value:He.italic,styleValue:bq(m,mu),onChange:G=>eo("italic",G??null)}:void 0,cells:jd(ze[0].style,ze[0].base,qn,Xd(w)).filter(G=>I(G.key)),align:I("align")?Xd(w)==="mobile"?{value:He.alignPhone??"",styleValue:He.align??ze[0].base.align,onChange:G=>eo("alignPhone",G||null)}:{value:He.align??"",styleValue:ze[0].base.align,onChange:G=>eo("align",G||null)}:void 0,letterCase:I("letterCase")?{value:He.case??"",styleValue:ze[0].base.case,onChange:G=>eo("case",G||null)}:void 0}),k&&Pr&&Y(iE,{styleName:VL,onCancel:()=>O(!1),onConfirm:YL}),ni&&Yt===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.")}),AE(mq,G=>I(G)&&(G==="words"||(G==="sourceNote"?!!$:G==="fixedSizeHint"?ni&&Yt===null:ni)))&&Y(fa,{})]})}function bq(e,o){return!o||!Array.isArray(e)?!1:e.find(t=>t?.id===o)?.values?.italic===!0}var _E={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0};import{jsx as ft,jsxs as fI,Fragment as Fq}from"react/jsx-runtime";import{useCallback as Lq,useRef as Bq,useState as ml}from"react";import{InspectorIconButton as Dq}from"efficient-easel/chrome";import{PopupMenu as Nq,PopupMenuItem as Mq,PopupMenuLabel as cf}from"efficient-shell/ui";import{CopyToPageIcon as Hq}from"efficient-easel/icons";import{useEaselSession as zq}from"efficient-easel/screen/lib/session-context";import{cloneNodeWithFreshIds as Gq}from"efficient-easel/screen/lib/document/section-doc";import{FOOTER_TYPE as Wq}from"efficient-easel/draw";import{currentEaselSession as yq}from"efficient-easel/screen/lib/session";var Sq={general:!0,commerce:!0,service:!0};function Xx(e){let o=e?.sets;return o?Object.fromEntries(qb.map(t=>[t,o.includes(t)])):Sq}function Zx(e=yq()){return Xx(e.blocks)}import{isBackendError as Bn}from"efficient-easel/screen/lib/backend-error";import{isEfficientBackend as tO}from"efficient-easel/screen/lib/session";import{useSyncExternalStore as wq}from"react";var Rn=new Map,Jx=new Set;function Qx(e,o){if(!(Rn.has(e)&&Rn.get(e)===o)){Rn.set(e,o);for(let t of Jx)t()}}function ef(e,o){Qx(e,o)}function of(e,o){let t=Rn.get(e);Qx(e,o??(t==="live"?"changed":t))}function tf(e,o){Qx(e,o??"live")}function LE(e){return Rn.get(e)}function Cq(e){return Jx.add(e),()=>{Jx.delete(e)}}function BE(e){let o=()=>e?Rn.get(e):void 0;return wq(Cq,o,o)}function DE(e,o){return e==="live"&&o?"changed":e}function eI({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 NE(e){return e.map(o=>o.change==="take_down"?i("{name} (taken down)",{name:o.name}):o.name)}var Le="SiteHeader",Oe="SiteFooter",oI="sections",Nke=[Le,Oe],An=e=>e===Le||e===Oe,ME=e=>`${e}:${oI}`;function HE(e,o,t=[]){return{type:e,props:{id:o,[oI]:t}}}var vq=new Set(["Footer",Le,Oe]);function Fn(e){let o=new Set,t=!1,r=e.filter(a=>{let n=a?.type??"";return n==="Header"?(t=!0,!1):vq.has(n)?o.has(n)?(t=!0,!1):(o.add(n),!0):!0});return t?r:e}function rf(e,o){return e.some(t=>t?.type===o.type)?e:o.type===Le?[o,...e]:[...e,o]}var zE={[Le]:{max:3,takes:["Flex","Ticker"]},[Oe]:{max:6,takes:["Flex","Prose","Logos","Divider"]}};function GE(e,o,t){if(!An(e))return!0;let r=zE[e];return t<r.max&&r.takes.includes(o)}function WE(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(!An(n?.type))continue;let s=n.props?.[oI];if(!Array.isArray(s)||!s.some(c=>c?.props?.id===r))continue;let l=zE[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 kq}from"efficient-easel/data";var UE="Footer",Tq=[Le,UE,Oe],Ln=e=>{let o=e?.content;return Array.isArray(o)?o:[]},ma=e=>{let o=e?.zones;return o&&typeof o=="object"&&!Array.isArray(o)?o:null},fl=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0},$E=e=>ls(e)?.ownerId??"";function jE(e){let o=Fn(Ln(e)),t=o.some(r=>r?.type===Oe);return o.filter(r=>r?.type===Le||r?.type===Oe||r?.type===UE&&!t)}function tI(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(kq(a)){let n=fl(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($E(s))||(n.add(s),r(l),a=!0)}}return t}function rI(e,o){let t={},r={};for(let[a,n]of Object.entries(e??{}))(o.has($E(a))?t:r)[a]=n;return{owned:t,rest:r}}function KE(e,o){if(!o)return e;let t=jE(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,...Ln(e),...a]},{owned:s}=rI(ma(o),tI(t,ma(o)));return Object.keys(s).length&&(n.zones={...ma(e)??{},...s}),n}function aI(e,o){if(!o)return{page:e,chrome:null};let t=jE(o),r=new Set(t.map(fl).filter(w=>!!w)),a=[],n=[];for(let w of Ln(e)){let I=fl(w);I&&r.has(I)||An(w?.type)?n.push(w):a.push(w)}let s=new Map(n.map(w=>[fl(w),w])),l=new Set,c=Fn(Ln(o)).flatMap(w=>{let I=fl(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=Fn(c);let d=c.length===Ln(o).length&&c.every((w,I)=>w===Ln(o)[I]),p=ma(e),m=tI(c,p),{owned:f,rest:x}=rI(p,m),g=rI(ma(o),tI(t,ma(o))).owned,y={...o,content:d?o.content:[...c]},k=ma(o);if(k||Object.keys(f).length){let w={};for(let[I,C]of Object.entries(k??{}))I in g?I in f&&(w[I]=f[I]):w[I]=C;for(let[I,C]of Object.entries(f))I in w||(w[I]=C);y.zones=w,k&&Pq(y.zones,k)&&(y.zones=k)}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 Pq(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 qE(e,o){return t=>e(t)||t!==void 0&&Tq.includes(t)&&o()}var VE="SharedSection",Eq=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,ul=e=>{let o=e?.content;return Array.isArray(o)?o:[]},pl=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0};function YE(e){if(e?.type!==VE)return null;let o=e.props?.section;return typeof o=="string"&&Eq.test(o)?o.toLowerCase():null}function XE(e){let o=[];for(let t of ul(e)){let r=YE(t),a=pl(t);r&&a&&o.push({refId:a,section:r})}return o}function af(e){let o=ul(e)[0];return o&&typeof o=="object"&&pl(o)?o:null}function Oq(e,o){return{type:VE,props:{id:e,section:o}}}function ZE(e,o){let t=new Map,r=new Set,a=!1,n=ul(e).map(s=>{let l=YE(s),c=pl(s);if(!l||!c||r.has(l))return s;let d=af(o.get(l)),p=pl(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 JE(e,o,t){let r=new Map,a=!1,n=ul(e).map(s=>{let l=pl(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=ul(d).slice(1),m=af(d);return r.set(c.section,m===s?d:{...d,content:[s,...p]}),a=!0,c.reference??Oq(c.refId,c.section)});return{page:a?{...e,content:n}:e,docs:r}}var QE=null;function nI(e){QE=e}function Wt(){return QE}var eO=null;function sI(e){eO=e}function nf(){return eO}var sf=null;function lI(e){sf=e}function oO(){return!!(sf&&sf.state().lockHolder)}function ha(){return sf!==null}function dI(e){return!!(e?.publish&&e.liveState)}function _q(e,o){if(!dI(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 Rq(e,o){return async(t,r)=>{try{await gw()}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:[]}):Rt(0),{version:r??null}}}function cI(e,o,t){let r=o?{siteId:o}:void 0;return{resolve:a=>e.load({slug:a,...r}).then(n=>(n&&ef(n.id,n.live),n)),saveLayout:(a,n,s,l)=>e.save(a,{layout:n},{version:s,clientId:l??""}).then(c=>(of(a,c.live),Rt(),c)),rereadVersion:e.version?a=>e.version(a):void 0,publish:dI(t)?Rq(t,r):e.publish?(a,n)=>e.publish(a,n?{version:n}:void 0).then(s=>(tf(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 Aq(e,o,t,r,a=!1){let n=null,s=new Set,l=!1,c=new Map,d=new Map,p=new Map,m=new Map,f={docId:null,lockHolder:null,conflict:null,saveFailed:!1,unpublished:!1,loadFailed:!1,sections:[]},x=new Set,g=()=>{if(!n)return!1;let T=LE(n.id);return T==="changed"||T==="never"||T===void 0&&l},y=T=>{f={...f,...T,docId:n?.id??null,unpublished:g(),sections:[...p.values()]};for(let R of x)R()},k=(T,R,N)=>{R?p.set(T,{section:T,title:c.get(T)?.title??"",problem:R,holder:N}):p.delete(T)},O=T=>T&&typeof T=="object"&&!Array.isArray(T)?T:{},w=T=>s.has(T),I=()=>new Map([...c].map(([T,R])=>[T,R.layout])),C=()=>`SharedSection-${typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2)}`,v=(T,R,N,b)=>{let _=O(R);c.set(T,{layout:_,version:N,savedJson:JSON.stringify(_),title:b})},A={state:()=>f,subscribe:T=>(x.add(T),()=>{x.delete(T)})},E={sectionOf:T=>d.get(T)?.section??null,heldElsewhere:T=>{let R=d.get(T)?.section;return!!(R&&p.get(R)?.problem==="lock")},adopt:(T,R)=>{v(R.id,R.layout,R.layout_updated_at,R.title),d.set(T,{section:R.id,refId:C()}),m.set(R.id,R.used_on),y({})},place:T=>{if([...d.values()].some(b=>b.section===T.id))return null;let R=af(O(T.layout)),N=typeof R?.props?.id=="string"?R.props.id:null;return!R||!N||!R.type?null:(v(T.id,T.layout,T.layout_updated_at,T.title),d.set(N,{section:T.id,refId:C()}),m.set(T.id,T.used_on),R)},usedOn:T=>m.get(T)??null,learn:T=>{for(let R of T){m.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({})}},L=async(T,R)=>{for(let[N,b]of T){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??""});of(N,H.live),_.layout=b,_.version=H.version,_.savedJson=F,k(N,null)}catch(H){Bn(H,"changed-elsewhere")?k(N,"conflict"):Bn(H,"lock-taken")?k(N,"lock",H.holder??void 0):k(N,"save")}}T.size&&Rt(),y({})};return{resolve:async T=>{if(lI(T===Qo?null:A),nI(T===Qo?null:E),c=new Map,d=new Map,p=new Map,m=new Map,T===Qo)return t.resolve(T);let R=!1,[N,b]=await Promise.all([t.resolve(T),e.load({slug:Qo,...o}).catch(()=>(R=!0,null))]);if(b&&!Is(N?.layout)){ef(b.id,b.live);let $=O(b.layout);n={id:b.id,layout:$,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($=>e.load({id:$.section,...o}).catch(()=>null)));F.forEach(($,ve)=>{let ne=H[ve];ne?(ef(ne.id,ne.live),v($.section,ne.layout,ne.version,"")):(c.delete($.section),p.set($.section,{section:$.section,title:"",problem:"load"}))});let Z=ZE(_,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=KE(Z.working,n.layout);return n.savedJson=JSON.stringify(aI(q,n.layout).chrome),s.add(N.id),y({conflict:null,saveFailed:!1,loadFailed:!1}),{...N,layout:q}},saveLayout:async(T,R,N,b)=>{if(!w(T))return t.saveLayout(T,R,N,b);let _=n,F=_?aI(R,_.layout):{page:R,chrome:null},H=JE(F.page,d,I()),Z=await t.saveLayout(T,H.page,N,b);if(await L(H.docs,b),!_)return Z;let q=JSON.stringify(F.chrome);if(!F.chrome||q===_.savedJson||f.lockHolder)return Z;try{let $=await e.save(_.id,{layout:F.chrome},{version:_.version,clientId:b??""});of(_.id,$.live),Rt(),_.layout=F.chrome,_.version=$.version,_.savedJson=q,l=!0,y({conflict:null,saveFailed:!1})}catch($){Bn($,"changed-elsewhere")?y({conflict:$.conflict??{savedBy:"",savedByYou:!1,secondsAgo:0}}):Bn($,"lock-taken")?y({lockHolder:$.holder??{name:"",secondsSinceSeen:0,secondsSinceHeld:0}}):y({saveFailed:!0})}return Z},publish:t.publish?async(T,R)=>{let N=await t.publish(T,R),b=n;if(b&&w(T)&&!a&&e.publish&&g()&&!f.lockHolder){let _=await e.publish(b.id,b.version?{version:b.version}:void 0);tf(b.id,_.live),_.version!==null&&(b.version=_.version),l=!1,y({})}if(w(T)&&!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);tf(_,H.live),H.version!==null&&(F.version=H.version)}return N}:void 0,lock:r?{claim:async(T,R,N)=>{let b=await r.claim(T,R,N);if(!w(T))return b;let _=n;if(_)try{await r.claim(_.id,R,!1),f.lockHolder&&y({lockHolder:null})}catch(F){Bn(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"&&k(F,null)}catch(H){Bn(H,"lock-taken")&&k(F,"lock",H.holder??void 0)}return c.size&&y({}),b},release:async(T,R)=>{if(await r.release(T,R),!w(T))return;let N=n;N&&!f.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:A}}function lf(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 lTe(e,o,t){return e.update(o,Py(t))}function iTe(e,o=Ge(),t=Zx(),r={}){let a=tO(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=dI(o.site)?o.site:void 0,m=lf(o.pages),f=cI(m,e,p),x=d?Aq(m,n,f,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},...f,...rO(f.resolve),lock:o.lock,...x,site:s?()=>o.site.get(n):void 0,siteLiveState:p?()=>p.liveState(n):void 0,siteVersions:_q(p,n),updateSite:s&&l?g=>l(g,n):void 0,previewHref:o.preview?g=>o.preview.href(g):void 0}}function cTe(e,o=Ge(),t=Zx()){let r=tO(o),a=o.templates,n=a?lf(a.pages(e)):{list:()=>Promise.reject(new Error(iI)),load:()=>Promise.reject(new Error(iI)),save:()=>Promise.reject(new Error(iI))};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},...cI(n,void 0),...rO(cI(n,void 0).resolve),publish:void 0,templateName:a?()=>a.get(e).then(s=>s.name):void 0}}function rO(e){return{resolve:o=>(lI(null),nI(null),e(o))}}var iI="This editor's backend has no website templates.";function aO({node:e,currentSlug:o,siteId:t,tokenRef:r,runAuthed:a,onNotify:n}){let[s,l]=ml(!1),[c,d]=ml(null),p=zq(),[m,f]=ml(!1),[x,g]=ml(null),y=Bq(null),[k,O]=ml(null),w=Lq(async()=>{if(p.usesBridgedToken&&!r.current){f(!0);return}try{d(await Ge(p).pages.list(t?{siteId:t}:void 0))}catch{f(!0)}},[r,t,p]),I=()=>{if(s){l(!1);return}let A=y.current?.getBoundingClientRect();A&&O({top:A.bottom+6,right:Math.max(8,window.innerWidth-A.right)}),d(null),f(!1),w(),l(!0)},C=(c??[]).filter(A=>A.slug!==o),v=async A=>{if(x)return;g(A.slug);let E=Gq(e),L=p.documentHooks?.storedNode?.(E)??E,T=await a(()=>Uq(Ge(p).pages,A,L));g(null),l(!1),n?.(T?i("Duplicated to \u201C{name}\u201D",{name:A.label}):i("Couldn\u2019t duplicate the section \u2014 please retry"),T?"success":"error")};return fI(Fq,{children:[ft("span",{"data-menu-toggle":!0,style:{display:"contents"},children:ft(Dq,{buttonRef:y,label:i("Duplicate to another page"),hasPopup:"menu",expanded:s,onClick:I,children:ft(Hq,{size:15})})}),s&&k&&ft(Nq,{portal:!0,style:{top:k.top,right:k.right},onClose:()=>l(!1),children:fI("div",{role:"menu","aria-label":i("Duplicate to page"),children:[ft(cf,{children:i("Duplicate to page")}),m?ft(cf,{children:i("Couldn\u2019t load pages")}):c===null?ft(cf,{children:i("Loading\u2026")}):C.length===0?ft(cf,{children:i("No other pages")}):C.map(A=>fI(Mq,{role:"menuitem",disabled:x!==null,onClick:()=>{v(A)},children:[ft("span",{className:"min-w-0 flex-1 truncate",children:A.label}),x===A.slug?ft("span",{className:"shrink-0 text-xs",children:i("Copying\u2026")}):A.draft&&ft("span",{className:"shrink-0 text-xs",children:i("draft")})]},A.id))]})})]})}async function Uq(e,o,t){let r=lf(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===Wq);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 P9}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSectionOps as E9}from"efficient-easel/screen/lib/document/use-section-ops";import{SELECTION_MODE as NPe,isSelectionMode as xI}from"efficient-easel/screen/lib/screen-parts";import{usePreviewParts as O9}from"efficient-easel/draw/client";import{jsx as hl,jsxs as $q}from"react/jsx-runtime";import{SettingsDrill as jq}from"efficient-easel/panel";import{UiIcon as Kq}from"efficient-easel/draw/client";var qq="Not shown on the page";function Vq({part:e,onOpen:o}){return hl(jq,{name:i(e.label),preview:e.offPage?i(qq):e.preview||i("Empty"),offPage:e.offPage,status:e.hidden?hl("span",{className:"sf-entry-eye",role:"img","aria-label":i("Hidden on the page"),children:hl(Kq,{name:"eye-off",size:14})}):void 0,onOpen:()=>o(e.key)})}function uI(e){return e.filter(o=>!o.identifier)}function nO({parts:e,onOpen:o,heading:t=!0}){let r=uI(e);return r.length?$q("div",{className:"sf-entries",children:[t?hl("h3",{className:"sf-entries-head",children:i("Text")}):null,r.map(a=>hl(Vq,{part:a,onOpen:o},a.key))]}):null}import{HEADER_TYPE as _9,ROOT_ZONE as wO}from"efficient-easel/draw";import{HEADER_TYPE as Co,FOOTER_TYPE as Be,newNodeId as Yq}from"efficient-easel/draw";function df(){return{type:Co,props:{id:Yq(Co)}}}var sO=[{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"}],Xq=sO.filter(e=>e.type!=="FooterLogo"&&e.type!=="FooterGroup"),Zq="FooterGroup",lO="blocks";function iO(e){return e===Be?sO:e===Zq?Xq:null}function ff(){let e=(o,t)=>({type:o,props:{id:`${o}-${crypto.randomUUID()}`,...t}});return[e("FooterLogo",{widthPct:100,align:"left",tagline:""}),e("FooterEmailSignup",{...qw}),e("FooterPayment",{...Vw})]}function pI(e){switch(e?.type){case Le:case Oe:return i("On every page");case Co:case Be:return i("On every page \xB7 old style");default:return null}}var cO=()=>null,dO=()=>i("Changed on every page");function uf(e,o){let t=vS(e,o);if(t)return t;let r=WE(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 mf,Fragment as i9,jsxs as c9}from"react/jsx-runtime";import{useState as d9}from"react";import{createNode as f9,newId as u9}from"efficient-easel/data";import{useEasel as p9}from"efficient-easel/easel";import{Banner as m9,Button as mI}from"efficient-shell/ui";import{useScreenDocument as h9}from"efficient-easel/screen/components/ScreenDocumentContext";import{isNodeList as Jq}from"efficient-easel/data";var pf="Flex",Qq={FooterMenu:"MenuBlock",FooterEmailSignup:"EmailFormBlock",FooterSocial:"SocialLogosBlock",FooterPayment:"PaymentLogosBlock"},e9=e=>{let{id:o,...t}=e;return t},fO=e=>typeof e=="string"?e:"",uO={sm:12,md:13,lg:15},o9="md",pO=1.5,t9={size:13,lineHeight:pO,width:280},r9=14,a9=40,n9=e=>e==="center"||e==="right"?e:"left";function s9(e){let o={},t=[["padTop","sectionPaddingTop"],["padRight","sectionPaddingRight"],["padBottom","sectionPaddingBottom"],["padLeft","sectionPaddingLeft"]];for(let[r,a]of t){let n=U(e[r]);n&&(o[a]=n)}return o}function l9(e,o,t){let r=t(e,e9(o));if(Array.isArray(o.template))return{...r,props:{...r.props,template:mO(o.template,String(r.props.id))}};if(o.template!==void 0)return r;let a=Iy(e,r.props);return a===r.props?r:{...r,props:a}}function mO(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))Jq(s)&&(a[n]=mO(s,o,t));return{...r,props:a}})}function hO(e,o){let t=e.props??{},r=Qq[e.type];if(r)return[l9(r,t,o)];switch(e.type){case"FooterLogo":{let a=n9(t.align),n=o("LogoBlock",{...t.reverse?{reverse:t.reverse}:{},...typeof t.customColor=="string"&&t.customColor?{customColor:t.customColor}:{},heightPx:Math.round(Bb*((U(t.widthPct)??100)/100)),href:"/",align:a,...s9(t)}),s=fO(t.tagline).trim();return s?[n,o("Text",{text:s,tone:"dim",align:a,_partStyles:{text:{...t9}}})]:[n]}case"FooterText":{let a=typeof t.size=="string"&&t.size in uO?t.size:o9;return[o("Text",{text:fO(t.text),tone:typeof t.tone=="string"?t.tone:"default",_partStyles:{text:{size:uO[a],lineHeight:pO}}})]}case"FooterDivider":{let a=U(t.thickness),n=U(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(pf,{direction:t.direction==="horizontal"?"row":"column",gap:Vr("FooterGroup",t.gap),align:t.align==="center"||t.align==="end"||t.align==="stretch"?t.align:"start",...Qn,content:a.flatMap(n=>hO(n,o))})]}default:return[]}}function xl(e,o,t){let r=e&&Array.isArray(e.props?.blocks)?e.props.blocks:[],a=d=>o(pf,{direction:"row",wrap:!0,share:"equal",gap:a9,content:d}),n=[],s=[];for(let d of r){let p=hO(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(pf,{direction:"column",gap:r9,align:"stretch",...Qn,content:p}))}(s.length||!n.length)&&n.push(a(s));let l=o(pf,{direction:"column",content:[o("LegalLineBlock")]}),c=HE(Oe,t,[...n,l]);return{...c,props:{...c.props,...e?.props?.width==="full"?{fullWidth:!0}:{}}}}function xO(){let{appState:e,dispatch:o,config:t}=p9(p=>p),{readOnly:r}=h9(),[a,n]=d9(!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,m)=>f9(t,p,m),d=()=>{let p=xl(l,c,u9(Oe));o({type:"setData",data:m=>({...m,content:[...rf(m.content,p)]}),recordHistory:!0}),n(!1)};return mf(m9,{tone:"info",title:i("This footer uses the old layout"),action:a?c9(i9,{children:[mf(mI,{variant:"primary",size:"sm",onClick:d,children:i("Switch now")}),mf(mI,{variant:"secondary",size:"sm",onClick:()=>n(!1),children:i("Cancel")})]}):mf(mI,{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 hI,jsxs as x9}from"react/jsx-runtime";import{InspectorUpLevel as IO}from"efficient-easel/chrome";function gO({nodeId:e,part:o,sectionName:t,onUpToSection:r}){let{select:a}=kd(),n=On(e,o,"picture");return x9("div",{children:[o!=="media"?hI(IO,{inline:!0,name:i(Cn.media),onSelect:()=>a(Vs(e,"media"))}):hI(IO,{inline:!0,name:i(t),onSelect:r}),hI(it,{part:o,motion:n})]})}import{SettingsSwitch as R9}from"efficient-easel/panel";var vO={kind:"header"},gI={kind:"website"},kO={kind:"website",tab:yn,revealPageGroup:!0},TO={kind:"chat"},PO={kind:"social"},Il="Part";function A9(e){return i("Part of {name}",{name:i(e)})}function F9(e,o,t){let r=e.describeNode(o);return{name:t,kindLabel:r?A9(r.label):i(Il)}}function L9(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 EO({what:e}){let o=L9(e);return xa("div",{className:"sf-note",children:[xe("p",{children:xe("strong",{children:o.title})}),xa("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 II(e){let o=qs[e];return{name:Cn[e],kindLabel:Il,icon:o,head:(t,r)=>{if(t.kind!==o)return null;let a=r.describeNode(t.nodeId);if(!a)return null;let n=CO({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(gO,{nodeId:t.nodeId,part:e,sectionName:r.describeNode(t.nodeId)?.label??"Hero",onUpToSection:()=>r.onSelectNode(t.nodeId)}):null}}var B9={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(xd,{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(qP,{})},social:{name:"Social links",kindLabel:"Site settings",icon:"social",render:()=>xe(QP,{unavailable:xe(EO,{what:"Social link"})})},ticker:{name:$s,kindLabel:Il,icon:"ticker",head:(e,o)=>e.kind==="ticker"?F9(o,e.heroId,i($s)):null,render:e=>xe(aE,{heroId:e.kind==="ticker"?e.heroId:""})},heroMedia:II("media"),heroImage:II("image"),heroImage2:II("image2"),part:{name:Il,kindLabel:Il,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}=rt(e.propKey),n=a?sn(t.fields[r],a):t.fields[r],s=Yd(t.type),l=s?Ls(s,e.propKey):null,c=s&&l?s[l].label:pE[e.propKey],d=c?i(c):Vv(i(Um(Nc(n??{},r))),a),p=CO({name:d,tier:"part",of:i(t.label)},{partOf:({name:m})=>i("Part of {name}",{name:m})});return{name:p.name,kindLabel:p.kind}},render:(e,o)=>e.kind==="part"?xe(FE,{nodeId:e.nodeId,propKey:e.propKey,onBack:()=>o.onSelectNode(e.nodeId),onEditStyle:o.onOpenSiteStyles}):null}},D9=new Set(["header","website","chat"]);function N9(e,o){if(e==="selection")return null;let t=B9[e];return D9.has(e)&&!o.hasSiteSettings?{...t,kindLabel:"Not part of a template",render:()=>xe(EO,{what:t.name})}:t}function OO({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:m,siteId:f,runAuthed:x,readOnly:g,navigate:y}=P9(),{rows:k}=Gs(),O=k?.find(le=>le.slug===m)??null,w=b9(),I=Object.keys(w.fields).some(le=>!le.startsWith("_")&&!Hs.includes(le)),{websiteName:C}=de(),v=E9({readOnly:g}),{select:A}=O9(),{selectedItem:E,getItemById:L,getSelectorForId:T,config:R,appState:N}=g9(le=>le),b=k9(R,E?{type:E.type,props:E.props}:null),_=E?ok(b??R.components[E.type]?.fields,E.props):[],F=le=>R.components[le]?.label??le,H=E?T(E.props.id):void 0,Z=N9(e.kind,c),q=T9(),$={capabilities:c,tokenRef:d,hostPanels:q.chrome?.panels,describeNode:le=>{let Se=L(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:f,websiteName:C??null,notifyParent:p,onNotify:s,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onSelectNode:a},ve=Z?.head?.(e,$)??null,ne=GP({kind:O?.kind,pageName:O?.label}),$e=ve?.name??(Z?i(Z.name):E?i(F(E.type)):ne.name),De=ve?.kindLabel??(Z?i(Z.kindLabel):E?H&&H.zone!==wO?i("Block"):i("Section"):ne.kindLabel),Te=Z?Z.icon:E?E.type:"page",pe=Z?null:E?R.components[E.type]?.fields??null:R.root?.fields??null,ge=pe?P0(pe):2,qe=xI(e)&&E?ll(E.type):null,Ve=!!E&&!!H&&H.zone===wO&&E.type!==Be&&E.type!==_9,se=uf(N?.data,E),Fe=()=>{se||H&&v.duplicateComponent(H.zone,H.index)},no=()=>{H&&(v.removeComponent(H.zone,H.index),v.select(null))},Pe=E?R.components[E.type]?.defaultProps?.previewHover:void 0,Ne=xI(e)&&!!E&&!!H&&Pe!==void 0,go=Ne&&E.props.previewHover===!0,Eo=()=>{!E||!H||v.replaceComponent(H.zone,H.index,{...E,props:{...E.props,previewHover:!go}})},[Oo,M]=I9(qh);return xa("div",{className:`es-sidepanel es-sidepanel--right sf-panel sf-panel--right${Oo||!(!Z&&E)?"":" sf-hints-folded"}`,children:[xe(w9,{icon:xe(ca,{type:Te,size:15}),name:$e,kind:De,actions:!n&&xI(e)&&E&&E.type!==Be?xa(bO,{children:[xe(yO,{label:i("Duplicate section"),title:se??void 0,disabled:se!==null,onClick:Fe,children:xe(C9,{size:15})}),Ve&&c.hasSiteSettings&&xe(aO,{node:E,currentSlug:m,siteId:f??void 0,tokenRef:d,runAuthed:x,onNotify:s}),xe(yO,{label:i("Remove section"),danger:!0,onClick:no,children:xe(v9,{size:15})}),l?xe(SO,{side:"right",onHide:l,divider:!0}):null]}):l?xe(SO,{side:"right",onHide:l}):void 0}),Ne&&xa("div",{className:"sf-preview-pin",children:[xa("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(R9,{checked:go,onChange:Eo,ariaLabel:i("Preview hover state")})]}),xe(XC,{tier:ge,children:xe("div",{className:"sf-insp-body es-insp-body sf-scroll",children:Z?Z.render(e,$):E?xa(bO,{children:[E.type===Be&&c.hasSiteSettings&&xe(xO,{}),xe(QS,{children:xe(it,{entries:xe(nO,{parts:_,heading:!1,onOpen:le=>A(Bc(E.props.id,le))}),entryCount:uI(_).length})}),qe&&xe(Qd,{source:qe,slug:_n(E?.props),menuId:qd(E?.props)}),xe(Vh,{shown:Oo,onChange:M})]}):I?xe(it,{omit:Hs}):xe(S9,{variant:"none",icon:!1,message:i("Select a section or block to edit it."),children:r&&xe(y9,{variant:"secondary",onClick:r,children:i("This page")})})})})]})}import{jsx as u,jsxs as P,Fragment as LO}from"react/jsx-runtime";var Qe={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)"},bI="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 u("div",{style:{width:e,height:o,borderRadius:r,background:Qe[t],flex:"none",...a}})}var M9={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},h={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 $t({size:e,style:o}){let t=Math.max(2,Math.round(e*.13)),r=(a,n,s)=>({position:"absolute",inset:a,background:n,borderRadius:t,...s?{mixBlendMode:s}:null});return P("span",{style:{position:"absolute",display:"block",width:e,height:e,...o},children:[u("span",{style:r("8% 26% 30% 6%",h.mark1)}),u("span",{style:r("26% 6% 8% 30%",h.mark2,"multiply")})]})}function xf({children:e}){return u("span",{style:{fontSize:"4.64cqw",fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:h.muted},children:e})}function _O({over:e,overTone:o,head:t,headSize:r=11.5,cta:a,ctaBg:n,ctaFg:s,tone:l}){return P(LO,{children:[e&&u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:o},children:e}),u("span",{style:{fontSize:r,lineHeight:1.15,fontWeight:700,maxWidth:"78%",color:l},children:t}),a&&u("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 yI({name:e,price:o}){return P("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[u("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",...Re(h.paper,h.paper2,150)},children:u($t,{size:34,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),u("span",{style:{fontSize:"3.65cqw",fontWeight:600,color:h.text},children:e}),u("span",{style:{fontSize:"3.65cqw",color:h.muted},children:o})]})}function Ut({k:e,v:o,ok:t}){return P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,padding:"3.5px 2px",borderBottom:`1px solid ${h.rule}`,fontSize:"3.98cqw",color:h.muted},children:[u("span",{children:e}),P("span",{style:{display:"flex",gap:6,alignItems:"center"},children:[u("b",{style:{color:h.text,fontWeight:700},children:o}),t&&u("span",{style:{color:h.rust,fontWeight:700},children:"\u2713"})]})]})}function ke({title:e,children:o}){return P("div",{style:{...j,background:h.card,padding:"9px 10px",display:"flex",flexDirection:"column",gap:6},children:[u(xf,{children:e}),o]})}function RO({size:e=14}){return u("span",{style:{width:e,height:e,borderRadius:"50%",flex:"none",display:"block",background:`linear-gradient(150deg,${h.mark1},${h.mark2})`}})}function SI({filled:e=5,size:o=6}){return P("span",{style:{fontSize:o,letterSpacing:"0.06em",color:h.rust,lineHeight:1},children:["\u2605".repeat(e),u("span",{style:{color:h.mark1},children:"\u2605".repeat(5-e)})]})}function gl({n:e,label:o,tone:t=h.text}){return P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[u("b",{style:{fontSize:"8.16cqw",lineHeight:1,color:t},children:e}),u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",opacity:.62,color:t},children:o})]})}function uo({children:e,w:o}){return u("span",{style:{fontSize:"3.98cqw",lineHeight:1.45,color:h.muted,width:o,display:"block"},children:e})}function hf({label:e,w:o="100%",filled:t}){return P("div",{style:{width:o,display:"flex",flexDirection:"column",gap:2},children:[u("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:h.muted},children:e}),u("span",{style:{height:9,borderRadius:3,border:`1px solid ${h.rule}`,background:t?h.paper:h.card}})]})}function AO({children:e}){return u("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:h.text,color:h.onInk},children:e})}var H9={wheelslisting:u(ke,{title:"All wheels",children:u("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Ridge 19","20\xD79 +12","$365"],["Ridge 29","18\xD79 +20","$410"],["Ridge 39","17\xD78 \u221210","$455"]].map(([e,o,t])=>P("div",{style:{display:"flex",alignItems:"center",gap:6},children:[u("span",{style:{width:20,height:15,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",...Re(h.paper,h.paper2,150)},children:u($t,{size:12,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),u("b",{style:{flex:1,fontSize:"4.31cqw",color:h.text},children:e}),u("span",{style:{fontSize:"3.65cqw",color:h.muted},children:o}),u("b",{style:{fontSize:"4.31cqw",color:h.text,width:26,textAlign:"right"},children:t})]},e))})}),catalogfilterbar:P("div",{style:{...j,background:h.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[P("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[["20 inch","6\xD7139.7","Black"].map(e=>P("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"4px 7px",borderRadius:99,background:h.text,color:h.onInk,display:"flex",gap:4,alignItems:"center"},children:[e,u("span",{style:{opacity:.6},children:"\u2715"})]},e)),u("span",{style:{fontSize:"3.65cqw",color:h.rust,fontWeight:700},children:"Clear"})]}),P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[u("span",{style:{fontSize:"3.65cqw",color:h.muted},children:"128 results"}),u("span",{style:{fontSize:"3.65cqw",color:h.muted,border:`1px solid ${h.rule}`,borderRadius:3,padding:"3px 6px"},children:"Sort: Price \u25BE"})]})]}),fitmentfinder:P("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center",...Re(h.ink,h.inkSoft)},children:[u("span",{style:{fontSize:"5.31cqw",fontWeight:700,color:h.onInk},children:"Will it fit your rig?"}),P("div",{style:{display:"flex",gap:4},children:[["2021","Toyota","Hilux"].map(e=>P("span",{style:{flex:1,fontSize:"3.65cqw",color:h.text,background:h.card,borderRadius:3,padding:"5px 6px",display:"flex",justifyContent:"space-between"},children:[e," ",u("span",{style:{color:h.muted},children:"\u25BE"})]},e)),u("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.08em",background:h.warm,color:h.ink,borderRadius:3,padding:"5px 7px"},children:"GO"})]})]}),compatibletyres:u(ke,{title:"Tyres that suit",children:u("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Ridge Grappler","$489"],["Trail Grappler","$525"],["Terra Grappler","$438"]].map(([e,o])=>P("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[u("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",background:h.ink},children:u("span",{style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%,-50%)",width:26,height:26,borderRadius:"50%",border:`5px solid ${h.mark2}`,boxSizing:"border-box"}})}),u("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:h.text,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:e}),u("span",{style:{fontSize:"3.32cqw",color:h.muted},children:o})]},e))})}),tyresizes:u(ke,{title:"Available sizes",children:u("div",{style:{flex:1,display:"flex",flexWrap:"wrap",gap:4,alignContent:"center"},children:["265/65R17","285/70R17","265/60R18","275/55R20"].map((e,o)=>u("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"5px 7px",borderRadius:3,border:`1px solid ${o===0?h.rust:h.rule}`,color:o===0?h.rust:h.text,background:o===0?h.paper:h.card},children:e},e))})}),tyrefitment:P(ke,{title:"Will it fit your car?",children:[u("div",{style:{display:"flex",gap:3},children:["Make","Model","Year","Trim"].map(e=>P("span",{style:{flex:1,minWidth:0,fontSize:"3.32cqw",color:h.muted,background:h.paper,border:`1px solid ${h.rule}`,borderRadius:3,padding:"4px 5px",display:"flex",justifyContent:"space-between",gap:2,overflow:"hidden",whiteSpace:"nowrap"},children:[e," ",u("span",{style:{color:h.muted},children:"\u25BE"})]},e))}),u("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2,justifyContent:"center",minHeight:0},children:[["265/65R17","Fits",!0],["285/70R17","Not your size",!1]].map(([e,o,t])=>P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:6,borderTop:`1px solid ${h.rule}`,paddingTop:3},children:[u("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:h.text},children:e}),u("span",{style:{fontSize:"3.32cqw",fontWeight:t?700:400,letterSpacing:"0.06em",color:t?h.warm:h.muted},children:o})]},e))})]}),eutyrelabel:P("div",{style:{...j,background:h.card,padding:"9px 11px",display:"flex",gap:8,alignItems:"center"},children:[u("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1.5},children:[["A","42%"],["B","56%"],["C","70%"],["D","84%"]].map(([e,o],t)=>P("div",{style:{display:"flex",alignItems:"center",gap:3},children:[u("span",{style:{width:o,height:6,borderRadius:"0 2px 2px 0",background:t===1?h.rust:h.mark1}}),u("span",{style:{fontSize:"3.32cqw",fontWeight:700,color:t===1?h.rust:h.muted},children:e})]},e))}),P("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:3,alignItems:"center"},children:[u("b",{style:{fontSize:"6.63cqw",lineHeight:1,color:h.text},children:"72"}),u("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",color:h.muted},children:"dB"})]})]}),bundleoffer:P("div",{style:{...j,background:h.paper,padding:"9px 11px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[u(xf,{children:"Buy it with"}),P("div",{style:{display:"flex",alignItems:"center",gap:5},children:[[0,1].map(e=>u("span",{style:{width:26,height:22,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",background:h.card},children:u($t,{size:17,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})},e)),u("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:h.muted},children:"+"}),P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1},children:[u("span",{style:{fontSize:"3.65cqw",color:h.muted,textDecoration:"line-through"},children:"$1,024"}),u("b",{style:{fontSize:"6.02cqw",color:h.rust,lineHeight:1},children:"$899"})]})]})]}),checkoutcta:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,...Re(h.ink,h.ink2)},children:[P("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",color:h.warm,fontWeight:700},children:"READY TO ORDER"}),u("b",{style:{fontSize:"6.63cqw",color:h.onInk,lineHeight:1},children:"$1,956"}),u("span",{style:{fontSize:"3.65cqw",color:h.onInk,opacity:.65},children:"4 items \xB7 fitted free"})]}),u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"6px 10px",borderRadius:2,background:h.warm,color:h.ink,flex:"none"},children:"CHECKOUT"})]}),contact:u(ke,{title:"Who do you need?",children:u("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Fitment help","the workshop"],["Order status","the front desk"],["Trade accounts","sales"]].map(([e,o])=>P("div",{style:{display:"flex",alignItems:"center",gap:5},children:[u("b",{style:{flex:1,fontSize:"4.31cqw",color:h.text},children:e}),u("span",{style:{fontSize:"3.65cqw",color:h.muted},children:o}),u("span",{style:{fontSize:"4.64cqw",color:h.rust,lineHeight:1},children:"\u203A"})]},e))})}),contactlocations:u(ke,{title:"Find us",children:u("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["Brisbane","7 Kerry Rd","Mon\u2013Sat"],["Townsville","12 Enterprise","Mon\u2013Fri"]].map(([e,o,t])=>P("div",{style:{border:`1px solid ${h.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[u("b",{style:{fontSize:"4.31cqw",color:h.text},children:e}),u("span",{style:{fontSize:"3.32cqw",color:h.muted},children:o}),u("span",{style:{fontSize:"3.32cqw",color:h.rust,fontWeight:700},children:t})]},e))})}),citypictures:u(ke,{title:"Our studios",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3,minHeight:0},children:[u("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.12em",fontWeight:700,color:h.muted},children:"A \xB7 AMERICAS"}),u("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:["Los Angeles","Miami","Toronto"].map(e=>P("div",{style:{position:"relative",minHeight:0},children:[u(z,{r:3,style:{...j,background:`linear-gradient(transparent 45%,${h.scrim} 45%),${Re(h.ink,h.inkSoft2).background}`}}),u("b",{style:{position:"absolute",left:5,bottom:4,fontSize:"3.65cqw",color:h.onInk},children:e})]},e))})]})}),citymaps:u(ke,{title:"Find us",children:u("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["Brisbane","7 Kerry Rd"],["Townsville","12 Enterprise"]].map(([e,o])=>P("div",{style:{position:"relative",padding:"4px 5px",display:"flex",flexDirection:"column",gap:2,minHeight:0},children:[u(z,{r:4,style:{...j,background:"none",border:`1px solid ${h.rule}`}}),u("b",{style:{position:"relative",fontSize:"4.31cqw",color:h.text},children:e}),u("span",{style:{position:"relative",fontSize:"3.32cqw",color:h.muted},children:o}),P("div",{style:{flex:1,minHeight:0,position:"relative"},children:[u(z,{r:3,style:{...j,...Re(h.paper,h.paper2,150)}}),u(z,{w:"60%",h:"60%",r:8,style:{position:"absolute",left:"12%",top:"20%",background:h.mark1,opacity:.75}}),u(z,{w:6,h:6,r:3,style:{position:"absolute",left:"44%",top:"34%",background:h.rust}})]})]},e))})}),form:u(ke,{title:"Send us a message",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[P("div",{style:{display:"flex",gap:5},children:[u(hf,{label:"Name"}),u(hf,{label:"Email"})]}),u(hf,{label:"Message",filled:!0}),u(AO,{children:"SEND"})]})}),appointmentbooking:u(ke,{title:"Book a fitting",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[u("div",{style:{display:"flex",gap:3},children:["Mon","Tue","Wed","Thu"].map((e,o)=>u("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",fontWeight:o===2?700:500,padding:"4px 0",borderRadius:3,background:o===2?h.text:h.paper,color:o===2?h.onInk:h.muted},children:e},e))}),u("div",{style:{display:"flex",gap:3},children:["8:00","10:30","13:00","15:30"].map((e,o)=>u("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",padding:"4px 0",borderRadius:3,border:`1px solid ${o===1?h.rust:h.rule}`,color:o===1?h.rust:h.muted,background:o===3?h.paper:h.card,textDecoration:o===3?"line-through":"none"},children:e},e))})]})}),reviewform:u(ke,{title:"Leave a review",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[u(SI,{filled:4,size:14}),u(hf,{label:"Your review",filled:!0}),u(AO,{children:"POST"})]})}),submitbuild:u(ke,{title:"Show us your build",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:3,border:`1px dashed ${h.mark1}`,borderRadius:5,background:h.paper},children:[u("span",{style:{fontSize:"6.63cqw",lineHeight:1,color:h.rust,fontWeight:300},children:"+"}),u("span",{style:{fontSize:"3.65cqw",color:h.muted},children:"Drop a photo of your rig"})]})}),masthead:P("div",{style:{...j,background:h.paper,display:"flex",flexDirection:"column",justifyContent:"center",padding:"0 13px",gap:5},children:[u("span",{style:{height:1.5,background:h.text}}),u("span",{style:{fontSize:"7.65cqw",fontWeight:800,letterSpacing:"0.02em",color:h.text,lineHeight:1},children:"THE TRACK"}),P("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"3.65cqw",letterSpacing:"0.1em",textTransform:"uppercase",color:h.muted},children:[u("span",{children:"Issue 14"}),u("span",{children:"Spring 2026"})]}),u("span",{style:{height:1,background:h.rule}})]}),featuredcover:P("div",{style:{...j,overflow:"hidden",...Re(h.ink,h.inkSoft2)},children:[u($t,{size:92,style:{right:-18,top:-14}}),u("div",{style:{position:"absolute",inset:0,background:`linear-gradient(0deg,${h.scrim},transparent 62%)`}}),P("div",{style:{position:"absolute",left:12,right:12,bottom:11,display:"flex",flexDirection:"column",gap:3},children:[u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:h.warm},children:"FEATURE"}),u("span",{style:{fontSize:"6.16cqw",lineHeight:1.15,fontWeight:700,color:h.onInk},children:"Four days on the Madigan Line"})]})]}),longread:P("div",{style:{...j,background:h.card,padding:"10px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.14em",fontWeight:700,color:h.rust},children:"12 MIN READ"}),u("span",{style:{fontSize:"6.02cqw",lineHeight:1.15,fontWeight:700,color:h.text},children:"What breaks first, and why"}),u(uo,{children:"Every failure starts in the same place \u2014 not the rim, not"}),u(uo,{w:"62%",children:"the tyre, but the bolt nobody re-torqued."})]}),series:u(ke,{title:"Recurring columns",children:u("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Shed Notes","Monthly"],["Track Tested","Fortnightly"],["Reader Rigs","Weekly"]].map(([e,o])=>P("div",{style:{display:"flex",alignItems:"center",gap:6},children:[u("span",{style:{width:3,height:12,borderRadius:2,background:h.rust,flex:"none"}}),u("b",{style:{flex:1,fontSize:"4.64cqw",color:h.text},children:e}),u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:h.muted},children:o})]},e))})}),events:u(ke,{title:"Latest posts",children:u("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[[h.inkSoft,h.inkSoft2,"Madigan Line, four days"],[h.rust,h.warm,"Why offset beats width"]].map(([e,o,t])=>P("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[u("span",{style:{width:24,height:18,borderRadius:3,flex:"none",...Re(e,o,150)}}),P("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[u("b",{style:{fontSize:"4.31cqw",color:h.text},children:t}),u("span",{style:{fontSize:"3.65cqw",color:h.muted},children:"4 Sep \xB7 Shed Notes"})]})]},t))})}),docmasthead:P("div",{style:{...j,background:h.card,padding:"12px 14px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:h.muted},children:"POLICY"}),u("span",{style:{fontSize:"6.49cqw",fontWeight:700,color:h.text,lineHeight:1.1},children:"Returns & refunds"}),u("span",{style:{fontSize:"3.65cqw",color:h.muted},children:"Version 3 \xB7 Updated 4 Sep 2026"}),u("span",{style:{height:2,width:26,background:h.rust,borderRadius:1}})]}),docbody:u("div",{style:{...j,background:h.card,padding:"9px 13px",display:"flex",flexDirection:"column",gap:3,justifyContent:"center"},children:[["1.","You may return an unfitted wheel within 30 days."],["2.","Fitted wheels are covered by the structural warranty."],["3.","Freight on a change of mind is yours."]].map(([e,o])=>P("div",{style:{display:"flex",gap:5},children:[u("b",{style:{fontSize:"3.98cqw",color:h.rust,flex:"none"},children:e}),u(uo,{children:o})]},e))}),docmetacards:u(ke,{title:"At a glance",children:u("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gap:5,minHeight:0},children:[["30 days","To return"],["5 years","Structural"],["Free","Fitting"],["48 hrs","Dispatch"]].map(([e,o])=>P("div",{style:{border:`1px solid ${h.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[u("b",{style:{fontSize:"5.31cqw",color:h.text,lineHeight:1},children:e}),u("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:h.muted},children:o})]},o))})}),doctabs:P("div",{style:{...j,background:h.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:0,padding:"0 11px"},children:[u("div",{style:{display:"flex",gap:0},children:["Returns","Warranty","Shipping"].map((e,o)=>u("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"5px 8px",color:o===0?h.text:h.muted,background:o===0?h.paper:"transparent",borderRadius:"4px 4px 0 0",border:`1px solid ${o===0?h.rule:"transparent"}`,borderBottom:"none"},children:e},e))}),u("span",{style:{height:1,background:h.rule}}),P("div",{style:{paddingTop:6,display:"flex",flexDirection:"column",gap:2},children:[u(uo,{children:"Unfitted wheels come back within 30 days, no questions."}),u(uo,{w:"58%",children:"Freight on a change of mind is yours."})]})]}),paragraphs:P("div",{style:{...j,background:h.card,padding:"11px 14px",display:"flex",gap:10,alignItems:"center"},children:[u("span",{style:{flex:1,fontSize:"5.86cqw",lineHeight:1.2,fontWeight:700,color:h.text},children:"The right wheel is the boring one."}),P("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[u(uo,{children:"Forged, correctly offset, rated for what you actually"}),u(uo,{children:"carry. Everything else is a photograph."})]})]}),keyfeatures:u(ke,{title:"Key features",children:u("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:["Flow-formed barrel","1250 kg per corner","Hub-centric fit"].map(e=>P("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[u("span",{style:{fontSize:"4.64cqw",color:h.rust,fontWeight:700,lineHeight:1},children:"\u2713"}),u("span",{style:{fontSize:"4.31cqw",color:h.text},children:e})]},e))})}),statsparagraph:P("div",{style:{...j,background:h.paper,padding:"10px 12px",display:"flex",gap:10,alignItems:"center"},children:[P("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:5},children:[u(gl,{n:"27k",label:"Rigs"}),u(gl,{n:"4.9",label:"Rating"})]}),P("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[u(uo,{children:"Twelve years of fitting the same three questions, and the"}),u(uo,{children:"answer has not moved: load rating, offset, then looks."})]})]}),chart:P(ke,{title:"Load vs weight",children:[u("div",{style:{flex:1,display:"flex",alignItems:"flex-end",gap:5,paddingBottom:2},children:[38,62,84,71,96].map((e,o)=>u("span",{style:{flex:1,height:`${e}%`,borderRadius:"2px 2px 0 0",background:o===4?h.rust:h.mark1}},o))}),u("span",{style:{height:1,background:h.rule,marginTop:-4}})]}),mockup:u("div",{style:{...j,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",...Re(h.inkSoft,h.ink)},children:P("div",{style:{width:"72%",height:"74%",borderRadius:4,overflow:"hidden",background:h.card,boxShadow:`0 6px 14px ${h.scrim}`},children:[u("div",{style:{height:9,background:h.paper,display:"flex",alignItems:"center",gap:2,padding:"0 4px"},children:[0,1,2].map(e=>u("span",{style:{width:2.5,height:2.5,borderRadius:"50%",background:h.mark1}},e))}),P("div",{style:{padding:5,display:"flex",flexDirection:"column",gap:3},children:[u("span",{style:{height:4,width:"56%",borderRadius:1,background:h.mark2}}),u("span",{style:{height:14,borderRadius:2,...Re(h.paper,h.paper2,150)}}),u("span",{style:{height:3,width:"38%",borderRadius:1,background:h.rust}})]})]})}),manifesto:u("div",{style:{...j,overflow:"hidden",display:"flex",alignItems:"center",padding:"0 16px",...Re(h.ink,h.ink2)},children:P("span",{style:{fontSize:"6.63cqw",lineHeight:1.2,fontWeight:700,color:h.onInk},children:["We build for the ",u("span",{style:{color:h.warm},children:"last"})," ten percent of the track."]})}),timeline:u(ke,{title:"Our story",children:u("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center",gap:6,paddingLeft:4},children:[["1998","One shed, one lathe."],["2009","First forged rim."],["2024","27,000 rigs on."]].map(([e,o],t)=>P("div",{style:{display:"flex",gap:7,alignItems:"flex-start",position:"relative"},children:[t<2&&u("span",{style:{position:"absolute",left:3,top:8,bottom:-8,width:1,background:h.rule}}),u("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",marginTop:1,background:h.rust,zIndex:1}}),P("div",{style:{display:"flex",flexDirection:"column",gap:0,minWidth:0},children:[u("b",{style:{fontSize:"4.64cqw",color:h.text},children:e}),u(uo,{children:o})]})]},e))})}),timelinetrack:P("div",{style:{...j,padding:"0 12px",display:"flex",flexDirection:"column",gap:10,justifyContent:"center",...Re(h.ink,h.inkSoft)},children:[u("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:h.warm},children:"Milestones"}),P("div",{style:{position:"relative",display:"flex",justifyContent:"space-between",paddingTop:7},children:[u("span",{style:{position:"absolute",left:0,right:0,top:3,height:1,background:h.mark2,opacity:.55}}),["1998","2009","2016","2024"].map((e,o)=>P("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:3,position:"relative"},children:[u("span",{style:{position:"absolute",top:-7,width:6,height:6,borderRadius:"50%",background:o===3?h.warm:h.mark1}}),u("span",{style:{fontSize:"4.31cqw",fontWeight:700,color:o===3?h.warm:h.onInk,opacity:o===3?1:.75},children:e})]},e))]})]}),footprint:P("div",{style:{...j,overflow:"hidden",...Re(h.paper,h.paper2,150)},children:[u("span",{style:{position:"absolute",left:"8%",top:"18%",width:"62%",height:"64%",borderRadius:"48% 52% 40% 60% / 55% 45% 55% 45%",background:h.mark1,opacity:.75}}),u("span",{style:{position:"absolute",left:"52%",top:"52%",width:"34%",height:"34%",borderRadius:"58% 42% 55% 45% / 45% 58% 42% 55%",background:h.mark2,opacity:.55}}),[["26%","38%"],["44%","58%"],["62%","34%"]].map(([e,o])=>u("span",{style:{position:"absolute",left:e,top:o,width:7,height:7,borderRadius:"50% 50% 50% 0",transform:"rotate(-45deg)",background:h.rust}},e)),u("span",{style:{position:"absolute",left:11,bottom:9,fontSize:"4.64cqw",fontWeight:700,color:h.text},children:"3 fitting bays"})]}),banner:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,background:h.rust},children:[P("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[u("b",{style:{fontSize:"6.02cqw",color:h.onInk},children:"End of season \xB7 20% off"}),u("span",{style:{fontSize:"3.98cqw",color:h.onInk,opacity:.8},children:"Fitted free, this month only."})]}),u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:h.onInk,color:h.text,flex:"none"},children:"SHOP"})]}),titlewithbuttons:P("div",{style:{...j,background:h.paper,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:7,padding:"0 14px",textAlign:"center"},children:[u("span",{style:{fontSize:"6.49cqw",lineHeight:1.15,fontWeight:700,color:h.text},children:"Not sure what fits?"}),P("div",{style:{display:"flex",gap:5},children:[u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:h.text,color:h.onInk},children:"FIND MY FIT"}),u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,border:`1px solid ${h.text}`,color:h.text},children:"CALL US"})]})]}),ticker:u("div",{style:{...j,overflow:"hidden",background:h.ink,display:"flex",alignItems:"center"},children:u("span",{style:{whiteSpace:"nowrap",fontSize:"6.29cqw",fontWeight:800,letterSpacing:"0.06em",color:h.warm,marginLeft:-14},children:"FREE FITTING \xB7 48HR DISPATCH \xB7 FREE FITTING \xB7 48HR DISPATCH"})}),countdown:P("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",alignItems:"center",gap:6,justifyContent:"center",...Re(h.ink,h.ink2)},children:[u("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.16em",textTransform:"uppercase",color:h.muted},children:"Back online in"}),u("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[["23","Hours"],["59","Minutes"],["48","Seconds"]].map(([e,o],t)=>P("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[t>0&&u("b",{style:{fontSize:"9.5cqw",lineHeight:1,color:h.warm},children:":"}),P("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:[u("b",{style:{fontSize:"11.5cqw",lineHeight:1,color:h.onInk,fontVariantNumeric:"tabular-nums"},children:e}),u("span",{style:{fontSize:"3.2cqw",letterSpacing:"0.1em",textTransform:"uppercase",opacity:.62,color:h.onInk},children:o})]})]},o))})]}),breadcrumb:u("div",{style:{...j,background:h.card,display:"flex",alignItems:"center",padding:"0 13px"},children:P("span",{style:{fontSize:"4.64cqw",color:h.muted},children:["Home ",u("span",{style:{opacity:.5},children:"/"})," Wheels ",u("span",{style:{opacity:.5},children:"/"})," ",u("span",{style:{color:h.text,fontWeight:700},children:"20 inch"})]})}),categorybar:P("div",{style:{...j,background:h.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[u("div",{style:{display:"flex",gap:5},children:["All","Wheels","Tyres","Lift"].map((e,o)=>u("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"4px 7px",borderRadius:99,background:o===0?h.text:h.paper,color:o===0?h.onInk:h.muted},children:e},e))}),u("span",{style:{height:1,background:h.rule}})]}),intro:P("div",{style:{...j,overflow:"hidden",background:h.card},children:[u("div",{style:{position:"absolute",inset:0,...Re(h.ink,h.inkSoft2)}}),u($t,{size:64,style:{right:8,top:6}}),P("div",{style:{position:"absolute",left:16,right:16,bottom:8,top:"46%",background:h.paper,borderRadius:6,padding:"8px 11px",display:"flex",flexDirection:"column",gap:2,boxShadow:`0 -4px 10px ${h.scrim}`},children:[u("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:h.text},children:"Since 1998"}),u(uo,{children:"One shed, one lathe, one idea."}),u(uo,{w:"66%",children:"It turned out to be right."})]})]}),gallerygrid:u(ke,{title:"From our customers",children:u("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gridTemplateRows:"repeat(2,1fr)",gap:4,minHeight:0},children:[[h.rust,h.warm],[h.inkSoft,h.ink],[h.paper2,h.mark2],[h.ink,h.inkSoft2],[h.warm,h.paper2],[h.mark2,h.inkSoft]].map(([e,o],t)=>u("div",{style:{borderRadius:3,...Re(e,o,140+t*22)}},t))})}),gallery:P(ke,{title:"Gallery",children:[u("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:-2},children:["On the truck","Studio","Close-ups"].map((e,o)=>u("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,color:o===0?h.text:h.muted,borderBottom:`1.5px solid ${o===0?h.rust:"transparent"}`,paddingBottom:2},children:e},e))}),u("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:[[h.rust,h.warm],[h.ink,h.inkSoft],[h.paper2,h.mark2]].map(([e,o],t)=>u("div",{style:{borderRadius:3,...Re(e,o,150+t*20)}},t))})]}),ordersummary:P(ke,{title:"Order summary",children:[P("div",{style:{display:"flex",gap:6,alignItems:"center",paddingBottom:4},children:[u("span",{style:{width:26,height:26,borderRadius:4,position:"relative",overflow:"hidden",flex:"none",...Re(h.paper,h.paper2,150)},children:u($t,{size:18,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),P("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[u("b",{style:{fontSize:"4.31cqw",color:h.text},children:"Ridge Grappler"}),u("span",{style:{fontSize:"3.65cqw",color:h.muted},children:"20\xD79 +12 \xB7 qty 4"})]})]}),P("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",justifyContent:"center"},children:[u(Ut,{k:"Subtotal",v:"$1,956"}),u(Ut,{k:"Fitting",v:"Free"}),P("div",{style:{display:"flex",justifyContent:"space-between",paddingTop:5,fontSize:"4.64cqw"},children:[u("b",{style:{color:h.text},children:"Total"}),u("b",{style:{color:h.text,fontSize:"6.02cqw"},children:"$1,956"})]})]})]}),deliveryoptions:u(ke,{title:"Delivery",children:u("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[["Standard","3\u20135 days","Free",!0],["Express","Next day","$19",!1]].map(([e,o,t,r])=>P("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 6px",borderRadius:4,border:`1px solid ${r?h.rust:h.rule}`,background:r?h.paper:h.card},children:[u("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",border:`1.5px solid ${r?h.rust:h.mark1}`,background:r?h.rust:"transparent"}}),u("span",{style:{flex:1,fontSize:"4.31cqw",fontWeight:600,color:h.text},children:e}),u("span",{style:{fontSize:"3.98cqw",color:h.muted},children:o}),u("b",{style:{fontSize:"4.31cqw",color:h.text},children:t})]},e))})}),paymentbadges:P("div",{style:{...j,background:h.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[u(xf,{children:"Ways to pay"}),u("div",{style:{display:"flex",gap:5},children:[["VISA",h.ink],["MC",h.rust],["AMEX",h.inkSoft],["PayPal",h.ink2]].map(([e,o])=>u("span",{style:{flex:1,textAlign:"center",fontSize:"3.65cqw",fontWeight:800,letterSpacing:"0.06em",color:h.onInk,borderRadius:3,padding:"6px 0",background:o},children:e},e))})]}),stats:P("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",gap:9,justifyContent:"center",...Re(h.ink,h.ink2)},children:[u("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:h.warm},children:"By the numbers"}),P("div",{style:{display:"flex",gap:8},children:[u(gl,{n:"27k",label:"Rigs fitted",tone:h.onInk}),u(gl,{n:"12",label:"Years",tone:h.onInk}),u(gl,{n:"4.9",label:"Avg rating",tone:h.warm})]})]}),testimonials:P("div",{style:{...j,overflow:"hidden",background:h.paper,padding:"10px 11px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center"},children:[u("span",{style:{position:"absolute",right:10,top:2,fontSize:"22.4cqw",lineHeight:1,fontWeight:800,color:h.rust,opacity:.16},children:"\u201D"}),u(SI,{filled:5,size:7}),u("span",{style:{position:"relative",fontSize:"5.31cqw",lineHeight:1.35,color:h.text,fontWeight:600},children:"\u201CTook them out to the Simpson and back. Not one chip.\u201D"}),P("div",{style:{display:"flex",alignItems:"center",gap:5},children:[u(RO,{}),u("span",{style:{fontSize:"3.98cqw",color:h.muted},children:"Dave M. \xB7 Hilux N80"})]})]}),reviews:P(ke,{title:"Reviews",children:[u("div",{style:{display:"flex",gap:4,height:22},children:[[h.inkSoft,h.inkSoft2],[h.rust,h.warm],[h.ink,h.inkSoft],[h.mark2,h.mark1]].map(([e,o],t)=>u("div",{style:{flex:1,borderRadius:3,...Re(e,o,140+t*15)}},t))}),u("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[["Dave M.",5,"Not one chip after the Simpson."],["Sara K.",4,"Fitted in an hour, no fuss."]].map(([e,o,t])=>P("div",{style:{display:"flex",gap:5,alignItems:"flex-start"},children:[u(RO,{size:12}),P("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[P("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[u("b",{style:{fontSize:"3.98cqw",color:h.text},children:e}),u(SI,{filled:o})]}),u(uo,{children:t})]})]},e))})]}),logos:P("div",{style:{...j,display:"flex",flexDirection:"column",gap:9,justifyContent:"center",padding:"0 12px",...Re(h.ink,h.inkSoft)},children:[u("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:h.warm},children:"As fitted by"}),u("div",{style:{display:"grid",gridTemplateColumns:"repeat(4,1fr)",gap:8},children:["ARB","TJM","IRONMAN","OPPOSITE"].map(e=>u("span",{style:{textAlign:"center",fontSize:"4.31cqw",fontWeight:800,letterSpacing:"0.08em",color:h.onInk,opacity:.82},children:e},e))})]}),prose:P("div",{style:{...j,background:h.paper,padding:"11px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[u("span",{style:{fontSize:"5.86cqw",fontWeight:700,color:h.text},children:"Why offset matters"}),P("div",{style:{display:"flex",gap:6},children:[u("span",{style:{fontSize:"15.3cqw",lineHeight:.78,fontWeight:800,color:h.rust,marginTop:1},children:"T"}),P("div",{style:{display:"flex",flexDirection:"column"},children:[u(uo,{children:"he number on the back of your wheel decides whether the"}),u(uo,{w:"76%",children:"tyre sits under the guard or an inch outside it."})]})]})]}),cards:u(ke,{title:"What you get",children:u("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Fitted free","In store, same day."],["5 yr cover","Structural, no fine print."],["Swap it","30 days, any reason."]].map(([e,o])=>P("div",{style:{border:`1px solid ${h.rule}`,borderRadius:4,padding:6,display:"flex",flexDirection:"column",gap:2},children:[u("span",{style:{width:11,height:11,borderRadius:3,background:h.rust,opacity:.9}}),u("b",{style:{fontSize:"3.98cqw",color:h.text},children:e}),u(uo,{children:o})]},e))})}),faq:u(ke,{title:"Questions",children:u("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[["Will these fit my Hilux?",!0],["Do you fit them for me?",!1],["What if I pick wrong?",!1]].map(([e,o])=>P("div",{style:{borderBottom:`1px solid ${h.rule}`,padding:"4px 2px"},children:[P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6},children:[u("b",{style:{fontSize:"4.31cqw",color:h.text},children:e}),u("span",{style:{fontSize:"4.64cqw",color:h.muted,lineHeight:1},children:o?"\u2212":"+"})]}),o&&u(uo,{w:"90%",children:"Use the fitment finder \u2014 it reads your build, not just the model."})]},e))})}),hero:P("div",{style:{...j,overflow:"hidden",...Re(h.ink,h.ink2)},children:[u("div",{style:{...j,background:`linear-gradient(90deg,${h.scrim},transparent 70%)`}}),u("div",{style:{position:"relative",height:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",padding:"12px 14px",gap:5},children:u(_O,{over:"NEW \xB7 SUMMER",overTone:h.warm,head:"Built for the worst road you own",cta:"SHOP ALL",ctaBg:h.warm,ctaFg:h.ink,tone:h.onInk})}),u($t,{size:104,style:{right:-24,bottom:-30}})]}),herosingle:P("div",{style:{...j,display:"flex",background:h.paper,overflow:"hidden"},children:[u("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:u(_O,{over:"ALL-TERRAIN",overTone:h.rust,head:"Grip that does not ask",headSize:12,cta:"EXPLORE",ctaBg:h.text,ctaFg:h.onInk,tone:h.text})}),u("div",{style:{flex:1,position:"relative",...Re(h.inkSoft,h.inkSoft2)},children:u($t,{size:74,style:{right:-14,top:16}})})]}),productgrid:u(ke,{title:"Best sellers",children:P("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[u(yI,{name:"Ridge 19",price:"$365"}),u(yI,{name:"Ridge 29",price:"$410"}),u(yI,{name:"Ridge 39",price:"$455"})]})}),collections:u(ke,{title:"Shop by category",children:u("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Wheels",h.inkSoft,h.inkSoft2],["Tyres",h.rust,h.warm],["Lift kits",h.ink,h.inkSoft]].map(([e,o,t])=>u("div",{style:{borderRadius:4,display:"flex",alignItems:"flex-end",padding:5,color:h.onInk,...Re(o,t)},children:u("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.04em"},children:e})},e))})}),producthero:P("div",{style:{...j,display:"flex",background:h.card,overflow:"hidden"},children:[u("div",{style:{flex:1.1,position:"relative",...Re(h.paper,h.paper2,150)},children:u($t,{size:78,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),P("div",{style:{flex:1,padding:"10px 10px 10px 8px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[u("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:h.rust},children:"NITTO"}),u("b",{style:{fontSize:"6.29cqw",color:h.text},children:"Ridge Grappler"}),u("span",{style:{fontSize:"6.63cqw",fontWeight:700,color:h.text},children:"$489"}),u("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,background:h.text,color:h.onInk},children:"ADD TO CART"})]})]}),spectable:u(ke,{title:"Specifications",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[u(Ut,{k:"Diameter",v:'20"'}),u(Ut,{k:"Width",v:"9.0J"}),u(Ut,{k:"Offset",v:"+12"}),u(Ut,{k:"Load",v:"1250 kg"})]})}),fitmenttable:u(ke,{title:"Will it fit?",children:P("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[u(Ut,{k:"Hilux N80",v:"20\xD79 +12",ok:!0}),u(Ut,{k:"Ranger PX3",v:"20\xD79 +12",ok:!0}),u(Ut,{k:"LC79",v:"17\xD78 \u221210",ok:!0})]})}),processsteps:P("div",{style:{...j,background:h.paper,padding:10,display:"flex",flexDirection:"column",gap:7,justifyContent:"center"},children:[u(xf,{children:"How it works"}),u("div",{style:{display:"flex",gap:6},children:["Pick your rig","Match the fit","We fit it"].map((e,o)=>P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2},children:[u("span",{style:{width:11,height:11,borderRadius:"50%",background:h.text,color:h.onInk,fontSize:"3.98cqw",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700},children:o+1}),u("span",{style:{fontSize:"3.98cqw",color:h.text,fontWeight:600},children:e})]},e))})]}),detailrows:u("div",{style:{...j,background:h.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=u("div",{style:{flex:1,...Re(t?h.rust:h.inkSoft,t?h.warm:h.inkSoft2)}},"art"),a=P("div",{style:{flex:1.1,padding:8,display:"flex",flexDirection:"column",gap:2,justifyContent:"center"},children:[u("b",{style:{fontSize:"4.64cqw",color:h.text},children:e}),u("span",{style:{fontSize:"3.98cqw",color:h.muted,lineHeight:1.3},children:o})]},"tx");return u("div",{style:{flex:1,display:"flex",minHeight:0},children:t?[a,r]:[r,a]},e)})}),specstrip:u("div",{style:{...j,background:h.ink,color:h.onInk,display:"flex",alignItems:"center",justifyContent:"space-around",padding:"0 8px"},children:[["5 yr","Warranty"],["Free","Fitting"],["48 hr","Dispatch"]].map(([e,o])=>P("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[u("b",{style:{fontSize:"5.69cqw",letterSpacing:"0.02em"},children:e}),u("span",{style:{fontSize:"3.65cqw",color:h.mark2,letterSpacing:"0.1em",textTransform:"uppercase"},children:o})]},o))})},FO={subscribe:P("div",{style:{...j,padding:13,display:"flex",flexDirection:"column"},children:[P("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[P("div",{style:{display:"flex",alignItems:"center",gap:6},children:[u(z,{w:8,h:8,r:2,tone:"accent"}),u(z,{w:38,h:7,r:3,tone:"dark"}),u(z,{w:16,h:7,r:3,tone:"accent"})]}),u(z,{w:38,h:4,r:2,tone:"soft"})]}),u("div",{style:{height:1,background:Qe.line,marginBottom:10}}),P("div",{style:{flex:1,display:"flex",gap:10,border:`1px solid ${Qe.line}`,borderRadius:7,padding:10},children:[P("div",{style:{flex:1.1,display:"flex",flexDirection:"column",justifyContent:"center",gap:5},children:[u(z,{w:"46%",h:3,r:2,tone:"accent"}),u(z,{w:"84%",h:8,r:4,tone:"dark"}),u(z,{w:"56%",h:8,r:4,tone:"accent"}),u(z,{w:"96%",h:3,r:2,tone:"soft",style:{marginTop:2}}),P("div",{style:{display:"flex",gap:5,marginTop:4},children:[u("div",{style:{flex:1,height:13,borderRadius:5,border:`1px solid ${Qe.line}`,background:Qe.block}}),u(z,{w:34,h:13,r:5,tone:"accent"})]})]}),P("div",{style:{flex:1,background:Qe.block,borderRadius:6,padding:8,display:"flex",flexDirection:"column",gap:6},children:[u(z,{w:"52%",h:4,r:2,tone:"accent"}),Array.from({length:3}).map((e,o)=>P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,borderTop:o?`1px solid ${Qe.line}`:"none",paddingTop:o?4:0},children:[u(z,{w:34,h:4,r:2,tone:"dark"}),u(z,{w:16,h:3,r:2,tone:"soft"})]},o))]})]})]}),split:P("div",{style:{...j,display:"flex"},children:[u("div",{style:{width:"44%",background:bI}}),P("div",{style:{flex:1,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[u(z,{w:"44%",h:5,r:3,tone:"accent"}),u(z,{w:"88%",h:8,r:4,tone:"dark"}),u(z,{w:"70%",h:8,r:4,tone:"dark"}),u(z,{w:"94%",h:5,r:2,tone:"soft",style:{marginTop:2}}),u(z,{w:"80%",h:5,r:2,tone:"soft"}),u(z,{w:"40%",h:13,r:6,tone:"accent",style:{marginTop:5}})]})]}),sectionheader:P(LO,{children:[u(z,{w:"18%",h:6,r:3,tone:"accent",style:{position:"absolute",top:15,right:16}}),P("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:10},children:[P("div",{style:{display:"flex",alignItems:"center",gap:9},children:[u(z,{w:16,h:16,r:4,tone:"accent"}),u(z,{w:"20%",h:9,r:4,tone:"dark"})]}),u(z,{w:"62%",h:10,r:5,tone:"dark"}),u(z,{w:"42%",h:6,r:3,tone:"soft"})]})]}),header:u("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",justifyContent:"center"},children:P("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[u(z,{w:"22%",h:12,r:4,tone:"dark"}),P("div",{style:{display:"flex",gap:9,alignItems:"center"},children:[u(z,{w:26,h:6,r:3,tone:"soft"}),u(z,{w:26,h:6,r:3,tone:"soft"}),u(z,{w:26,h:6,r:3,tone:"soft"}),u(z,{w:18,h:14,r:5,tone:"accent"})]})]})}),footer:P("div",{style:{...j,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:12},children:[P("div",{style:{display:"flex",gap:14},children:[P("div",{style:{flex:1.4,display:"flex",flexDirection:"column",gap:6},children:[u(z,{w:"60%",h:9,r:4,tone:"dark"}),u(z,{w:"90%",h:5,r:2,tone:"soft"}),u(z,{w:"70%",h:5,r:2,tone:"soft"})]}),[0,1].map(e=>P("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[u(z,{w:"50%",h:6,r:3,tone:"dark"}),u(z,{w:"80%",h:5,r:2,tone:"soft"}),u(z,{w:"66%",h:5,r:2,tone:"soft"})]},e))]}),u("div",{style:{height:1,background:Qe.line}}),P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[u(z,{w:"30%",h:5,r:2,tone:"soft"}),u(z,{w:"16%",h:5,r:2,tone:"soft"})]})]}),grid:u("div",{style:{...j,padding:14,display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr 1fr",gap:9},children:Array.from({length:4}).map((e,o)=>u("div",{style:{borderRadius:6,background:Qe.block}},o))}),blanksection:u("div",{style:{...j,padding:14,display:"flex"},children:P("div",{style:{flex:1,border:`1px dashed ${Qe.line}`,borderRadius:7,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[u(z,{w:14,h:2,r:1,tone:"tint"}),u(z,{w:2,h:14,r:1,tone:"tint",style:{position:"absolute"}})]})}),spacer:P("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[u(z,{w:"100%",h:6,r:3,tone:"soft"}),u(z,{w:16,h:22,r:3,tone:"block",style:{alignSelf:"center"}}),u(z,{w:"100%",h:6,r:3,tone:"soft"})]}),divider:u("div",{style:{...j,padding:14,display:"flex",alignItems:"center"},children:u(z,{w:"100%",h:3,r:2,tone:"dark"})}),customhtml:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:8,background:bI},children:[u(z,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(-14deg)"}}),u(z,{w:16,h:10,r:3,tone:"accent"}),u(z,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(14deg)"}})]}),heading:u("div",{style:{...j,padding:14,display:"flex",alignItems:"center"},children:u(z,{w:"64%",h:13,r:4,tone:"dark"})}),text:P("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[u(z,{w:"100%",h:6,r:3,tone:"soft"}),u(z,{w:"96%",h:6,r:3,tone:"soft"}),u(z,{w:"100%",h:6,r:3,tone:"soft"}),u(z,{w:"58%",h:6,r:3,tone:"soft"})]}),image:u("div",{style:{position:"absolute",inset:14,borderRadius:7,background:bI}}),button:u("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center"},children:u(z,{w:"34%",h:16,r:8,tone:"accent"})}),menu:P("div",{style:{...j,padding:"14px 22%",display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[u(z,{w:"48%",h:7,r:3,tone:"dark"}),u(z,{w:"82%",h:5,r:2,tone:"soft"}),u(z,{w:"66%",h:5,r:2,tone:"soft"}),u(z,{w:"74%",h:5,r:2,tone:"soft"}),u(z,{w:"58%",h:5,r:2,tone:"soft"})]}),emailform:P("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[u(z,{w:"56%",h:8,r:3,tone:"dark"}),P("div",{style:{display:"flex",gap:6},children:[u("div",{style:{flex:1,height:16,borderRadius:5,border:`1px solid ${Qe.line}`}}),u(z,{w:"30%",h:16,r:5,tone:"accent"})]})]}),sociallogos:u("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:9},children:[0,1,2,3].map(e=>u(z,{w:16,h:16,r:8,tone:"dark"},e))}),paymentlogos:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[u(z,{w:22,h:6,r:2,tone:"soft"}),[0,1,2,3].map(e=>u(z,{w:20,h:13,r:3,tone:"dark"},e))]}),search:u("div",{style:{...j,padding:"0 18%",display:"flex",alignItems:"center"},children:P("div",{style:{flex:1,height:22,borderRadius:11,border:`1px solid ${Qe.line}`,display:"flex",alignItems:"center",gap:7,padding:"0 9px"},children:[u("div",{style:{width:9,height:9,borderRadius:5,border:`2px solid ${Qe.dark}`}}),u(z,{w:"46%",h:5,r:2,tone:"soft"})]})}),cart:P("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[u("div",{style:{width:22,height:18,borderRadius:"3px 3px 6px 6px",border:`2px solid ${Qe.dark}`}}),u("div",{style:{padding:"2px 6px",borderRadius:6,border:`1.5px solid ${Qe.dark}`},children:u(z,{w:7,h:7,r:2,tone:"dark"})})]}),countryswitch:P("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:5},children:[P("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",border:`1px solid ${Qe.line}`},children:[u(z,{w:22,h:6,r:2,tone:"dark"}),u(z,{w:6,h:4,r:1,tone:"soft"})]}),P("div",{style:{width:"46%",display:"flex",flexDirection:"column",gap:4,padding:6,border:`1px solid ${Qe.line}`},children:[u(z,{w:"80%",h:4,r:2,tone:"accent"}),u(z,{w:"64%",h:4,r:2,tone:"soft"}),u(z,{w:"72%",h:4,r:2,tone:"soft"})]})]}),legalline:P("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[u("div",{style:{height:1,background:Qe.line}}),P("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[u(z,{w:"38%",h:5,r:2,tone:"soft"}),P("div",{style:{display:"flex",gap:5},children:[u(z,{w:14,h:5,r:2,tone:"soft"}),u(z,{w:14,h:5,r:2,tone:"soft"}),u(z,{w:14,h:5,r:2,tone:"soft"})]})]})]}),fallback:u("div",{style:{position:"absolute",inset:14,borderRadius:8,background:Qe.block}})};function BO({type:e}){let o=M9[e]??"",t=H9[o]??FO[o]??FO.fallback;return u("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 uu}from"efficient-easel/screen/components/ScreenDocumentContext";import{jsx as Dn,jsxs as z9}from"react/jsx-runtime";import G9 from"efficient-easel/screen/components/SidePanelHead";import{StylesIcon as W9}from"efficient-easel/rail";import{Tooltip as U9}from"efficient-shell/ui";function DO({tokenRef:e,siteId:o,onClose:t,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l}){let c=Sn();return z9("div",{className:"sf-styles",children:[Dn(G9,{icon:Dn(W9,{}),title:i("Styles"),context:Dn(U9,{content:i("{name} \u2014 renamed in the Console: {place}.",{name:c,place:i("Storefront \u25B8 Sites \u25B8 Settings")}),className:"sf-name-tip",children:Dn("span",{className:"sf-name-text",children:c})})}),Dn("div",{className:"sf-insp-body es-insp-body sf-scroll",children:Dn(xd,{tokenRef:e,siteId:o,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l})})]})}import{jsx as to,jsxs as ga,Fragment as X9}from"react/jsx-runtime";import{Fragment as XO,useEffect as ZO,useRef as PI}from"react";import{useTreeDrag as JO}from"efficient-easel/drag";import{GlobeIcon as Z9,ImageIcon as J9,LocationIcon as Q9,MapIcon as eV,TextLinesIcon as oV,TrashIcon as QO}from"efficient-easel/icons";import{Subtree as e1,TreeRow as Sl,TreeRowAction as o1,TreeSeam as t1}from"efficient-easel/tree";import{useEaselStrings as tV}from"efficient-easel/strings";import{createPreviewSelectionContext as $9}from"efficient-easel/draw/client";var{Provider:u0e,useSelection:NO}=$9("selectedLocationPartId");function MO(e,o,t){return`${e}::${o}::${t}`}function HO(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 rV}from"efficient-easel/screen/lib/screen-parts";import{useSyncExternalStore as j9}from"react";var K9={level:"groups"},GO=K9,wI=new Set;function ut(e){GO=e;for(let o of wI)o()}function q9(e){return wI.add(e),()=>{wI.delete(e)}}var zO=()=>GO;function WO(){return j9(q9,zO,zO)}function If(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 x0e(e){return V9[bl(e)]}var V9={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"};function bl(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 yl=e=>String(e?.group??""),CI=new WeakMap,Y9=0;function gf(e){let o=CI.get(e);return o||(o=`loc${++Y9}`,CI.set(e,o)),o}var UO=(e,o)=>o||e||"Ungrouped",$O={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 Ia(e){return If(e,yl,o=>String(o?.groupName??"")).map(o=>({key:o.key,name:o.name,cards:o.items.map(t=>t.item)}))}var vI=e=>e.flatMap(o=>o.cards),jO=(e,o,t)=>Math.min(Math.max(e,o),t);function bf(e,o,t){let r=0;for(let a=0;a<e.length;a++)if(yl(e[a])===o){if(r===t)return a;r++}return-1}function kI(e,o,t){let r=Ia(e);if(o<0||o>=r.length)return e;let[a]=r.splice(o,1),n=jO(o<t?t-1:t,0,r.length);return r.splice(n,0,a),vI(r)}function TI(e,o,t,r,a){let n=Ia(e),s=n.find(m=>m.key===o),l=n.find(m=>m.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&&CI.set(d,gf(c));let p=jO(s===l&&t<a?a-1:a,0,l.cards.length);return l.cards.splice(p,0,d),vI(n)}function KO(e,o){let t=Ia(e),r=t.find(n=>n.key===o),a={...$O,group:o,groupName:r?.name??""};return r?(r.cards.push(a),vI(t)):[...e,a]}function qO(e){let o=new Set(Ia(e).map(a=>a.key)),t=o.size+1,r=`Group ${t}`;for(;o.has(r);)r=`Group ${++t}`;return{cards:[...e,{...$O,group:r,groupName:""}],key:r}}function VO(e,o){return e.filter(t=>yl(t)!==o)}function YO(e,o,t){let r=bf(e,o,t);return r<0?e:e.filter((a,n)=>n!==r)}function b0e(e,o,t){let r=e.flatMap((s,l)=>yl(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 y0e(e,o,t){return o.flatMap(r=>{let a=e.filter(n=>yl(n)===r);return a.length?a:t(r)})}var Sf="ContactLocations",yf=e=>({parentId:`locations-${e}`,slot:"groups"}),EI=(e,o)=>({parentId:`locations-${e}`,slot:`cities:${o}`});function r1(e,o){let{readOnly:t,selected:r}=o,a=tV().tree,n=o.data?.content??[],s=rV(e),l=PI(null);ZO(()=>{let I=r?.type===Sf?String(r.props.id):null;I&&I!==l.current&&ut({level:"groups"}),l.current=I},[r?.props.id]);let{selectedLocationPartId:c,setSelectedLocationPartId:d,setSelectHandler:p}=NO(),m=WO(),f=(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=JO({keyOf:I=>`group:${I.si}:${I.index}`,readOnly:!!t,canDrop:(I,C)=>C.parentId===yf(I.si).parentId&&C.slot==="groups",onDrop:(I,C)=>{f(I.si,kI(x(I.si),I.index,C.index)),m.level==="city"&&ut({level:"groups"})},onStep:(I,C)=>{f(I.si,kI(x(I.si),I.index,C<0?I.index-1:I.index+2)),m.level==="city"&&ut({level:"groups"})}}),y=JO({keyOf:I=>`city:${I.si}:${I.group}:${I.index}`,readOnly:!!t,canDrop:(I,C)=>C.parentId===yf(I.si).parentId&&C.slot.startsWith("cities:"),onDrop:(I,C)=>{let v=C.slot.slice(7);f(I.si,TI(x(I.si),I.group,I.index,v,C.index)),ut({level:"group",key:v})},onStep:(I,C)=>{f(I.si,TI(x(I.si),I.group,I.index,I.group,C<0?I.index-1:I.index+2)),m.level==="city"&&ut({level:"group",key:I.group})}}),k=PI(n);k.current=n;let O=PI(()=>{});ZO(()=>{p(I=>{let C=HO(I);if(!C)return;let v=k.current.findIndex(A=>A.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),ut(C),e.reveal();let v=n[I]?.props?.id;typeof v=="string"&&(C.level==="city"||C.level==="image"||C.level==="map")?d(MO(v,C.index,C.level)):d(null),typeof v=="string"&&o.scrollTo(v)};return O.current=w,{renderLocationTree:(I,C,{rowClick:v,isCollapsed:A,toggleCollapse:E})=>{let L=x(C),T=Ia(L),R=String(I.props.id),N=s&&r?.props.id===R,b=F=>to(t1,{...t?{}:g.seam({place:{...yf(C),index:F}})},`seam:${R}:groups:${F}`),_=(F,H)=>to(t1,{...t?{}:y.seam({place:{...EI(C,F),index:H}})},`seam:${R}:cities:${F}:${H}`);return ga(X9,{children:[to(Sl,{icon:to(oV,{size:13}),name:i("Texts"),words:a,onSelect:()=>w(C,{level:"texts"}),selected:N&&m.level==="texts",rowProps:{onClick:v(()=>w(C,{level:"texts"}))}}),T.map((F,H)=>{let Z=`${R}::grp::${F.key}`,q=A(Z),$=N&&m.level==="group"&&m.key===F.key,ve=F.name||F.key?UO(F.key,F.name):i("Ungrouped"),ne={...EI(C,F.key),index:F.cards.length},$e=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:{...yf(C),index:H}},$e.rowProps);return ga(XO,{children:[H===0&&b(0),to(Sl,{icon:to(Z9,{size:13}),name:ve,words:a,onSelect:()=>w(C,{level:"group",key:F.key}),selected:$,draggable:De.draggable,dragging:De.dragging,drop:De.drop??$e.drop,fold:{open:!q,label:i("group"),onToggle:()=>E(Z)},actions:to(o1,{kind:"delete",label:mo("Delete {label} group ({n} city)","Delete {label} group ({n} cities)",F.cards.length,{label:ve}),onClick:()=>{f(C,VO(L,F.key)),ut({level:"groups"})},children:to(QO,{size:15})}),rowProps:De.rowProps,count:F.cards.length,countLabel:mo("{n} city","{n} cities",F.cards.length)}),!q&&ga(e1,{children:[F.cards.map((Te,pe)=>{let ge=bf(L,F.key,pe),qe=N&&m.level==="city"&&m.index===ge,Ve=String(Te?.name??"")||i("City"),se=`${R}::city::${gf(Te)}`,Fe=A(se),{rowProps:no,...Pe}=y.row({item:{si:C,group:F.key,index:pe},place:{...EI(C,F.key),index:pe}},{onClick:v(()=>w(C,{level:"city",index:ge}))});return ga(XO,{children:[pe===0&&_(F.key,0),to(Sl,{icon:to(Q9,{size:13}),name:Ve,words:a,onSelect:()=>w(C,{level:"city",index:ge}),selected:qe,...Pe,fold:{open:!Fe,label:Ve,onToggle:()=>E(se)},actions:to(o1,{kind:"delete",label:i("Delete {name}",{name:Ve}),onClick:()=>{f(C,YO(L,F.key,pe)),ut({level:"group",key:F.key})},children:to(QO,{size:15})}),rowProps:no}),!Fe&&ga(e1,{children:[to(Sl,{icon:to(J9,{size:13}),name:i("Image"),words:a,onSelect:()=>w(C,{level:"image",index:ge}),selected:N&&m.level==="image"&&m.index===ge,rowProps:{onClick:v(()=>w(C,{level:"image",index:ge}))}}),to(Sl,{icon:to(eV,{size:13}),name:i("Map"),words:a,onSelect:()=>w(C,{level:"map",index:ge}),selected:N&&m.level==="map"&&m.index===ge,rowProps:{onClick:v(()=>w(C,{level:"map",index:ge}))}})]}),_(F.key,pe+1)]},gf(Te))}),ga("button",{type:"button",className:"sf-add-card",onClick:()=>{let Te=KO(L,F.key);f(C,Te);let pe=Ia(Te).find(ge=>ge.key===F.key);ut(pe&&pe.cards.length?{level:"city",index:bf(Te,F.key,pe.cards.length-1)}:{level:"group",key:F.key})},children:[to("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add city")]})]}),b(H+1)]},Z)}),ga("button",{type:"button",className:"sf-add-card",onClick:()=>{let{cards:F,key:H}=qO(L);f(C,F),w(C,{level:"group",key:H})},children:[to("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add group")]})]})},sectionPressed:I=>{I?.type===Sf&&ut({level:"groups"})}}}import{useEffect as SV,useRef as wV}from"react";import{createNode as AI,newId as FI}from"efficient-easel/data";import{useEaselApi as CV}from"efficient-easel/easel";import{useScreenDocument as vV}from"efficient-easel/screen/components/ScreenDocumentContext";import{useEaselSession as kV}from"efficient-easel/screen/lib/session-context";import{useEffect as xV,useRef as IV}from"react";import{useEasel as gV}from"efficient-easel/easel";import{ROOT_ZONE as RI}from"efficient-easel/draw";import{readHidable as lV}from"efficient-easel/draw";var aV="inline",nV=[{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"}},Nn="SectionHeader";function a1(e){return e in Io}function n1(e){return oo(nV,aV,e)}var sV=new Set(["Flex"]);function D0e(e){return!!e?.type&&sV.has(e.type)}var s1={not:{field:"headPlacement",is:"own-box"}},N0e={not:s1};function M0e(e,o,t){return is(e,t,s1)}var wt=V,Ct=Ke;function wf(e){if(e.theme)return so(e.theme);let o=e.site?.themePresets;return o?so({selected:e.site?.selectedPreset??0,themes:[...o]}):void 0}function iV(e,o){return o===0?`${e}~box`:`${e}~box-${o+1}`}var i1=new Set(["id"]),ba={},c1=[],wl=[];function zo(e){for(let[o,t]of Object.entries(e)){if(o in ba&&ba[o]!==t)throw new Error(`lib/sections/section-to-box: "${o}" already has a row`);ba[o]=t}}function Cf(e){return ba[e]}function cV(e){return e in ba&&c1.includes(e)}function d1(e,o=wl){return e in ba&&(o.includes(e)||cV(e))}function V0e(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 OI=e=>lV(e),ro=e=>OI(e).text.trim()!=="";function dV(e){return e.replace(/==(.+?)==/g,(o,t)=>t.startsWith("_")&&t.endsWith("_")?o:`==_${t}_==`)}function fV(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 uV=e=>e==="heading"?Do():e==="eyebrow"?ho():{};function pV(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 mV(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 l1(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 hV(e){let o=new Set([...i1,"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 _I(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,A)=>{s.push({key:v,home:A}),d.add(v)},m=r._partStyles??{},f=hV(o),x=0,g=(v,A)=>({type:v,props:{...A,id:`${n}~${v}-${++x}`}}),y=(v,A,E,L,T,R,N)=>{if(T){for(let _ of v??[]){let F=typeof _=="string"?_:_[0];E[F]!==void 0&&N(F,`nothing \u2014 the ${L} has no parts, so it is not drawn`)}return}let b=typeof A=="function"?A(r,t):A??{};return l1(v??[],b,E,(_,F,H)=>N(_,H?`nothing \u2014 the old value draws nothing (${L}: no ${F})`:`${R}${L}: ${F}`),t)},k=v=>os(v,A=>`${n}~${A}-${++x}`),O=(v,A,E)=>{let L=v.of?v.of(A):Array.isArray(A[v.key])?A[v.key]:[],T=typeof v.props=="function"?v.props(r,t):v.props??{},R=L.map((H,Z)=>{let q=H??{},$=v.item?.(q,Z,r)??{},ve=w($.reverse?[...v.parts].reverse():v.parts,q,!1,`item ${Z+1}: `);return v.flat?$.props?ve.map(ne=>({...ne,props:{...ne.props,...$.props,id:ne.props.id}})):ve:[g(wt,{name:`${v.name} ${Z+1}`,...T,...$.props??{},[Ct]:ve})]});if(v.groups){let H=v.groups;return E(v.key,L.length?`one Box per item (${L.length}), in a Box per group`:"nothing \u2014 the list is empty"),If(L.map(Z=>Z??{}),H.of,H.of).map((Z,q)=>{let $=Z.items.map(pe=>pe.item),ve=H.parts?w(H.parts,H.head?.($,r)??{},!1,`group ${q+1}: `):[],ne=Z.items.map(pe=>R[pe.index]),$e=H.perRow?.($.length,r),De=Number.isInteger($e)&&$e>=1?$e: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(wt,{name:`${H.name} ${q+1}`,...H.props??{},[Ct]:[...ve,g(wt,{name:`${H.itemsName} ${q+1}`,...H.itemsProps?.($.length,r)??{},[Ct]:Te.length?Te.map((pe,ge)=>g(wt,{name:`${H.rowName??`${H.itemsName} row`} ${ge+1}`,...H.rowProps??{},[Ct]:pe})):ne.flat()})]})})}let N=v.perRow?.(r),b=v.perRow?Number.isInteger(N)&&N>=1?N:1:0;if(E(v.key,(L.length?v.flat?`each item's parts (${L.length} items), in order`:`one Box per item (${L.length}), its parts inside`:"nothing \u2014 the list is empty")+(b&&L.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(wt,{name:`${v.rowName??`${v.name} row`} ${H+1}`,..._,[Ct]:[...Z,...Array.from({length:q},($,ve)=>g(wt,{name:`Empty ${ve+1}`,...v.rowFiller,[Ct]:[]}))]}))}return F},w=(v,A,E,L)=>{let T=[],R=(b,_)=>E?p(b,_):void 0,N=b=>E?m[b]:void 0;for(let b of v)if(!(b.when&&!b.when(r,E?void 0:A)))switch(b.kind){case"text":{let _=OI(A[b.key]);if(!_.text.trim()){R(b.key,"nothing \u2014 empty words draw nothing, so no block");break}let F=uV(b.role??"body"),{_partStyles:H,...Z}=F,q=pV(F,b.styleFrom?{...b.style,...b.styleFrom(r,t)}:b.style,N(b.key),b.props?.align);if(b.was&&E){let $=q._partStyles?.text??{};c.push({key:b.key,was:b.was,...typeof $.textStyle=="string"?{textStyle:$.textStyle}:{},...U($.size)!==void 0?{size:U($.size)}:{},...U($.sizePhone)!==void 0?{sizePhone:U($.sizePhone)}:{}})}T.push(g("Text",{text:b.mark==="accentLead"?fV(_.text):b.mark==="accentItalic"?dV(_.text):_.text,...Z,...b.props??{},...q,..._.hidden?{_hidden:!0}:{}})),R(b.key,`${L}Text block: its words${_.hidden?", hidden":""}`);break}case"button":{let _=OI(A[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 A[b.href]=="string"&&A[b.href]?A[b.href]:"#",H={...b.style??{},...N(b.key)??{}};T.push(g("ButtonBlock",{label:_.text,href:F,...typeof b.props=="function"?b.props(A,t):b.props??{},...mV(b.variant,A),...Object.keys(H).length?{_partStyles:{label:H}}:{},..._.hidden?{_hidden:!0}:{}})),R(b.key,`${L}Button block: its words`),R(b.href,`${L}Button block: its link`),typeof b.variant=="object"&&R(b.variant.key,`${L}Button block: its Style`);break}case"image":{let _=A[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 A[b.alt]=="string"?A[b.alt]:"";T.push(g("ImageBlock",{src:_,alt:F,...b.props??{}})),R(b.key,`${L}Image block: its picture`),b.alt&&R(b.alt,`${L}Image block: its alt text`);break}case"list":{T.push(...O(b,A,R));break}case"group":{let _=w(b.parts,A,E,L),F=y(b.box,b.props,A,`${b.name} Box`,!_.length&&!b.keepEmpty,L,R);F&&T.push(g(wt,{name:b.name,...F,[Ct]:_}));break}case"block":{let _=b.parts?w(b.parts,A,E,L):[],F=y(b.box,b.props,A,`${b.type} block`,!!b.parts&&!_.length&&!b.keepEmpty,L,R);F&&T.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(A).filter(q=>!f.has(q)&&!(q in F)):b.keep;for(let q of H)A[q]!==void 0&&(F[q]=A[q],R(q,`the ${_} block inside the Box`));if(b.keep==="rest"){for(let $ of Object.keys(b.props??{}))A[$]!==void 0&&!f.has($)&&R($,`nothing \u2014 the ${_} block inside the Box has the row's own value`);A.headPlacement!==void 0&&R("headPlacement",`the ${_} block inside the Box: own-box`);let q=Object.fromEntries(Object.entries(m).filter(([$])=>!f.has($)));Object.keys(q).length&&(F._partStyles=q)}for(let[q,$]of Object.entries(b.rename??{}))A[q]!==void 0&&(F[$]=A[q],R(q,`the ${_} block inside the Box: ${$}`));if(b.derive){Object.assign(F,b.derive.props(A,t));for(let q of b.derive.reads)A[q]!==void 0&&R(q,`the ${_} block inside the Box`)}let Z=typeof b.slots=="function"?b.slots(A,t):b.slots??{};for(let[q,$]of Object.entries(Z))F[q]=$.flatMap(ve=>"kind"in ve?O(ve,A,R):k([ve]));T.push(g(_,F));break}}return T},I=(v,A)=>{let E=A===0?"Box":`${v.name} Box`,L=w(v.parts,r,!0,A===0?"":`${E}: `),T=typeof v.boxProps=="function"?v.boxProps(r,t):v.boxProps??{},R=l1(v.box??[],T,r,(N,b,_)=>p(N,_?`nothing \u2014 the old value draws nothing (${E}: no ${b})`:`${E}: ${b}`),t);return{type:wt,props:{name:v.name,...R,[Ct]:L,id:iV(n,A)}}},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,A]of Object.entries(o.reads??{}))r[v]!==void 0&&p(v,A);for(let[v,A]of Object.entries(o.drop??{}))v in r&&(l.push({key:v,why:A}),d.add(v));for(let v of Object.keys(r))i1.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 f1(e,o=c1,t={}){if(!Array.isArray(e))return[];let r=[];return e.forEach((a,n)=>{let s=a&&typeof a.type=="string"&&o.includes(a.type)?ba[a.type]:void 0;if(!s)return;let l=_I(a,s,t);l.skipped===void 0&&r.push({index:n,node:l.node,nodes:l.nodes})}),r}function u1(e){let o=gV(s=>s.appState.data.content),{theme:t,themeRow:r,themeFromDocument:a}=de(),n=IV(new Set);xV(()=>{let s=bV({theme:t,themeRow:r,themeFromDocument:a});s&&yV(f1(o,void 0,s),e,n.current)},[o,e,t,r,a])}function bV(e){return e.themeFromDocument||e.themeRow==="none"?{}:e.themeRow==="read"?{theme:e.theme}:null}function yV(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(RI,r,a[0]),a.slice(1).forEach((s,l)=>{o.insertNode(RI,r+1+l,s),o.replaceComponent(RI,r+1+l,s)}))}}import{ROOT_ZONE as Mn,missingPinnedTypes as TV,pinnedDuplicateIds as LI}from"efficient-easel/draw";function p1(e){return!e.docId||e.saveStatus==="saving"?!1:e.seededDocId!==e.docId}function m1(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===Co),seedFooter:s,seedSiteHeader:s&&!e.some(l=>l?.type===Le)}}async function h1(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(rf(r,t)),!0)}function x1(e,o){let{adapter:t,capabilities:r,currentSlug:a,docId:n,data:s,saveStatus:l,siteId:c,tokenRef:d}=vV(),p=kV(),{hasSiteSettings:m,hasPinnedChrome:f}=r;u1(e);let x=!!r.editsPinnedInPlace&&a!==Qo,g=a===Qo,y=CV().getState,k=wV(null);SV(()=>{if(!p1({docId:n,saveStatus:l,seededDocId:k.current})||(k.current=n,!f))return;let O=y().appState.data,w=O.content,I=s?.content??[],C=(L,T)=>L.some(R=>R?.type===T);if(!m){let L=new Set(LI(w)),T=L.size?w.filter(N=>!L.has(N.props.id)):w;if(L.size&&e.setDocument({...O,content:T}),g)return;let R=TV(T,I);if(R.includes(Be)){let N=T.length,b=e.insertSection(Be,N);e.replaceComponent(Mn,N,{type:Be,props:{id:b,blocks:ff()}})}R.includes(Co)&&e.insertNode(Mn,0,df());return}if(g){let L=Fn(w);if(L!==w&&e.setDocument({...O,content:[...L]}),!L.find(T=>T.type===Be)&&!C(I,Be)&&!C(L,Oe)&&!C(I,Oe)){let T=(N,b)=>AI(o,N,b),R={type:Be,props:{blocks:ff()}};e.insertNode(Mn,L.length,xl(R,T,FI(Oe)))}return}if(x){let L=!!t?.pinnedChrome?.state().docId,T=m1(w,{hasChromeDoc:L}),R=new Set([...T.remove,...LI(w.filter(b=>!T.remove.includes(String(b.props.id))))]),N=R.size?w.filter(b=>!R.has(String(b.props.id))):w;if(N.length!==w.length&&e.setDocument({...O,content:N}),T.seedFooter&&!C(I,Be)&&!C(I,Oe)){let b=(F,H)=>AI(o,F,H),_={type:Be,props:{blocks:ff()}};e.insertNode(Mn,N.length,xl(_,b,FI(Oe)))}if(T.seedHeader&&!C(I,Co)){let b=N[0]?.type===Le?1:0;e.insertNode(Mn,b,df())}if(T.seedSiteHeader&&!C(I,Le)&&!C(I,Be)&&!C(I,Oe)){let b=n;h1({blocks:Di(p),make:(_,F)=>AI(o,_,F),id:FI(Le),siteId:c??null,token:d.current,latest:()=>y().appState.data.content,stillOpen:()=>k.current===b,write:_=>{let F=y().appState.data;e.setDocument({...F,content:[..._]})}})}return}let v=w.filter(L=>L.type!==Be),A=new Set(LI(v)),E=A.size?v.filter(L=>!A.has(L.props.id)):v;E.length!==w.length&&e.setDocument({...O,content:E}),!C(E,Co)&&!C(I,Co)&&e.insertNode(Mn,0,df())},[n,l,s,y,e,m,f,g,x,t,p,c,d])}import{useEffect as C1,useMemo as FV,useRef as v1}from"react";import{useEasel as LV}from"efficient-easel/easel";import{useEaselHost as BV}from"efficient-easel/screen/lib/host";import{FIELD_DESCRIPTION_MARKER as PV}from"efficient-easel/screen/lib/host";import{isNode as BI}from"efficient-easel/data";function DI(e,o){let t=e.components[o]?.label;return typeof t=="string"&&t.trim()?t.trim():o}function EV(e){return e.length>3&&e.endsWith("s")?e.slice(0,-1):e}function NI(e,o,t,r){e.forEach((a,n)=>{if(BI(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(BI)&&NI(l,a,s,r)}})}function OV(e){let o=[];NI(Array.isArray(e.content)?e.content:[],null,"",o);for(let t of Object.values(e.zones??{}))Array.isArray(t)&&NI(t,null,"",o);return o}function g1(e,o){return OV(e).find(t=>String(t.node.props.id)===o)}function b1(e,o,t){if(!t)return null;let r=g1(o,t);if(!r)return null;let a=DI(e,r.node.type),n=r.parent?`${DI(e,r.parent.type)} \xB7 ${EV(r.slot)} ${r.index+1}`:a;return{blockId:t,type:r.node.type,label:n,path:""}}var _V=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 RV(e){if(!e||typeof e!="object")return null;let o=e;if(typeof o.type!="string")return null;let t=o.type==="custom"?o[PV]: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=_V(n));for(let s of["arrayFields","objectFields"]){let l=t?.[s]??o[s];l&&typeof l=="object"&&(r[s]=y1(l))}return r}function y1(e){let o={};for(let[t,r]of Object.entries(e??{})){let a=RV(r);a&&(o[t]=a)}return o}function S1(e){let o={};for(let[t,r]of Object.entries(e.components))r&&(o[t]={label:DI(e,t),fields:y1(r.fields)});return o}function AV(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 MI(e,o){return e.findIndex(t=>BI(t)&&String(t.props.id)===o)}function I1(e,o,t){let r=o||t;if(!r)return e.length;let a=MI(e,r);if(a<0)throw new Error(`there is no top-level block ${r}`);return o?a+1:a}function w1(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=g1(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=AV(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:{},m={type:s.type,props:{...structuredClone(p),...structuredClone(s.props),id:r(s.type)}};n.splice(I1(n,s.after,s.before),0,m);break}case"remove_block":{let d=MI(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=MI(n,s.block_id);d<0&&c(`there is no top-level block ${s.block_id}`);let[p]=n.splice(d,1);n.splice(I1(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 HI=e=>ee(e.requestId)??null;function k1(){let e=BV(),{appState:o,selectedItem:t,dispatch:r,history:a,config:n}=LV(f=>f),s=n,l=v1({appState:o,dispatch:r,history:a,blockConfig:s});l.current={appState:o,dispatch:r,history:a,blockConfig:s};let c=v1(new Map),d=t?.props?.id,p=FV(()=>b1(s,o.data,d),[s,o.data,d]),m=p?JSON.stringify(p):"";C1(()=>{e.connected&&e.send("storefront-editor:selection",{selection:p})},[e,m]),C1(()=>e.subscribe(f=>{let{appState:x,dispatch:g,history:y,blockConfig:k}=l.current;switch(f.type){case"storefront-editor:request-document":{let O=HI(f);if(!O)return;e.send("storefront-editor:document",{requestId:O,document:x.data,blocks:S1(k)});return}case"storefront-editor:apply-page-edits":{let O=HI(f);if(!O)return;let w=Array.isArray(f.ops)?f.ops:[],I=w.length?w1(k,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=HI(f);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 f.shown=="boolean"&&g({type:"setUi",ui:{rightSideBarVisible:f.shown}});return;default:return}}),[e])}import{useEffect as E1,useState as O1}from"react";var vf=new Map;async function DV(e,o){try{return(await Ge().site.get({siteId:o})).slug?.trim()||null}catch(t){return console.warn("[editor-site-slug] could not resolve the site slug",t),null}}function T1(e,o){let t=vf.get(o);return t||(t=DV(e,o),vf.set(o,t),t.catch(()=>{vf.get(o)===t&&vf.delete(o)})),t}var NV=/^(localhost|(?:[a-z0-9-]+\.)+localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|::1)$/i;function zI(e){return!!e&&NV.test(e)}function P1(e){let{pageSlug:o,siteSlug:t,hostname:r}=e,a=o===Ai?"/":`/${encodeURIComponent(o)}`;if(!zI(r))return a;let n=t?.trim();return n?`${a}?site=${encodeURIComponent(n)}`:a}function _1(e){let{pageSlug:o,siteId:t,token:r}=e,[a,n]=O1(null),[s,l]=O1(null),c=Ha();E1(()=>l(c?new URL(c).hostname:window.location.hostname),[c]),E1(()=>{if(!zI(s)||!t||!r){n(null);return}let p=!1;return T1(r,t).then(m=>{p||n(m)}),()=>{p=!0}},[s,t,r]);let d=P1({pageSlug:o,siteSlug:a,hostname:s});return c?`${c}${d}`:d}import{jsx as Cl}from"react/jsx-runtime";import{useEffect as MV,useRef as R1,useState as HV}from"react";import{ExternalIcon as A1}from"efficient-easel/icons";import{EaselIconButton as zV}from"efficient-easel/chrome";import{Tooltip as GV,iconButtonClasses as WV}from"efficient-shell/ui";import{useSettledPress as UV}from"efficient-easel/easel";import{useScreenDocument as $V}from"efficient-easel/screen/components/ScreenDocumentContext";async function jV({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 F1({liveHref:e,pageId:o,draftLink:t}){let{flushSave:r}=$V(),a=R1(r);a.current=r;let n=UV(),[s,l]=HV(!1),c=R1(null);if(MV(()=>()=>c.current?.(),[]),t&&o){let d=()=>new Promise((m,f)=>{c.current=()=>m(!1),n.run(()=>{c.current=null,a.current().then(m,f)})}),p=()=>{s||n.waiting||(l(!0),jV({pageId:o,liveHref:e,draftLink:t,ready:d}).finally(()=>l(!1)))};return Cl(zV,{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:Cl(A1,{})})}return Cl(GV,{content:i("Preview the live site (opens in a new tab)"),side:"bottom",children:Cl("a",{className:WV({className:"es-iconbtn"}),href:e,target:"_blank",rel:"noopener noreferrer","aria-label":i("Preview the live site in a new tab"),children:Cl(A1,{})})})}import{createElement as XV,useCallback as ZV,useEffect as X1,useRef as Z1,useState as JV}from"react";import{ClockIcon as QV}from"efficient-shell/icons/efficient";import{useScreenDocument as eY}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSyncExternalStore as KV}from"react";import{useScreenDocument as qV}from"efficient-easel/screen/components/ScreenDocumentContext";var VV=()=>()=>{},L1=()=>null;function kf(e){return KV(e?e.subscribe:VV,e?e.state:L1,e?e.state:L1)}function Tf(){let{adapter:e}=qV();return e?.pinnedChrome}import{useSyncExternalStore as N1}from"react";var vl=!1,Hn=null,GI=new Set;function Tl(){for(let e of GI)e()}function M1(e){return GI.add(e),()=>{GI.delete(e)}}function H1(){vl||(vl=!0,Tl())}function z1(){vl&&(vl=!1,Tl())}function B1(){return vl}function G1(){return N1(M1,B1,B1)}function D1(){return Hn}function Pf(){Hn&&(Hn=null,Tl())}function W1(){return N1(M1,D1,D1)}var kl=class extends Error{constructor(){super("The editor's last changes could not be saved, so nothing was restored."),this.name="HeldEditsNotSaved"}};async function U1(e,o,t,{flushSave:r,reload:a}){if(!await r())throw new kl;let n=await e.restore(o,t);return $i(n.liveState),a(),n}async function $1({access:e,version:o,page:t,...r}){let a=await U1(e,o.id,t?{page:t.id}:{},r);Hn={title:YV(o,t??null),undo:a.undo},Tl()}async function j1({access:e,...o}){let t=Hn?.undo;t&&(await U1(e,t,{},o),Hn=null,Tl())}function K1(e){return e.name?e.name:e.kind==="draft_before_restore"?i("Draft before restore"):i("Version {n}",{n:e.number})}function YV(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 q1(e){let o=e.changes.filter(r=>r.kind==="page").length,t=[...o?[mo("{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(ku(),{type:"conjunction"}).format(t)}catch{return t.join(", ")}}function V1(e){return e.change==="take_down"?i("{name} (taken down)",{name:e.name}):e.name}function Y1(e,o=new Date){let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let r=ku(),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 J1(e){let{docId:o,capabilities:t,hasUnsavedEdits:r,onPublish:a,adapter:n}=eY(),s=DE(BE(o??null),r),l=kf(Tf()),c=n.siteLiveState;X1(()=>{if(c)return qp(c),Rt(0),()=>qp(null)},[c]);let d=ji(),[p,m]=JV(!1),f=Z1(e);f.current=e;let x=Z1(!0);X1(()=>(x.current=!0,()=>{x.current=!1}),[]);let g=ZV(()=>{m(!0),a(f.current).then(()=>{Pf()}).finally(()=>{x.current&&m(!1)})},[a]);if(t.canPublish){if(c){let y=d===void 0?void 0:r||d.state==="changed"?"changed":"live",k=eI({live:y,onPress:g,busy:p,goingLive:NE(d?.changes??[])});return n.siteVersions?{...k,menuItems:oY()}:k}return eI({live:s,onPress:g,busy:p,pinnedUnpublished:l?.unpublished??!1})}}function oY(){return[{key:"version-history",label:i("Version history"),icon:XV(QV),onSelect:H1}]}import{jsx as X,jsxs as Fo,Fragment as Ol}from"react/jsx-runtime";import{useCallback as tY,useEffect as rY,useId as o_,useRef as aY,useState as Go}from"react";import{useSettledAction as nY}from"efficient-easel/easel";import{Avatar as sY,Banner as Pl,Button as ya,ColoredBadge as WI,Dialog as t_,Drawer as lY,DropdownMenu as iY,FormField as r_,iconButtonClasses as cY,Inline as UI,Input as dY,ListRow as fY,Select as uY,SortableList as pY,Stack as El}from"efficient-shell/ui";import{EditIcon as mY,EyeIcon as Q1,MenuIcon as hY,MoreIcon as xY,PageIcon as a_,RevertIcon as e_,StylesIcon as IY}from"efficient-shell/icons/efficient";import{useScreenDocument as n_}from"efficient-easel/screen/components/ScreenDocumentContext";var gY={page:a_,menu:hY};function bY(e,o){return e.pages.find(t=>t.id===o)??e.pages[0]??null}function yY(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 SY({version:e,page:o,waiting:t,busy:r,error:a,onCancel:n,onConfirm:s,onPage:l}){let c=o_();if(!e)return null;let d=e.kind==="draft_before_restore",p=e.number,m=q1(e),f=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}):m?i("The whole website goes back to version {n} as a draft: {what}.",{n:p,what:m}):i("The whole website goes back to version {n} as a draft.",{n:p}),g=e.deletedPictures??0;return X(t_,{open:!0,onClose:()=>{r||n()},size:"sm",title:f,footer:Fo(Ol,{children:[X(ya,{variant:"secondary",onClick:n,disabled:r,children:i("Cancel")}),X(ya,{onClick:s,loading:r,disabled:r,children:i("Restore as draft")})]}),children:Fo(El,{gap:4,children:[o&&e.pages.length>1?X(r_,{label:i("Page"),htmlFor:c,children:X(uY,{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(Pl,{tone:"warning",children:mo("{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(Pl,{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(Pl,{tone:"danger",children:a}):null]})})}function wY({version:e,onCancel:o,onSave:t}){let r=o_(),[a,n]=Go(null),[s,l]=Go(""),[c,d]=Go(!1),[p,m]=Go(null);if(e!==a&&(n(e),l(e?.name??""),m(null)),!e)return null;let f=s.trim()===e.name,x=async()=>{if(!(c||f)){d(!0),m(null);try{await t(s.trim())}catch{m(i("The name was not saved. Try again."))}finally{d(!1)}}};return X(t_,{open:!0,onClose:()=>{c||o()},size:"sm",title:i("Name this version"),footer:Fo(Ol,{children:[X(ya,{variant:"secondary",onClick:o,disabled:c,children:i("Cancel")}),X(ya,{onClick:()=>{x()},loading:c,disabled:c||f,children:i("Save")})]}),children:X(r_,{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(dY,{id:r,value:s,invalid:!!p,onChange:g=>l(g.target.value),onKeyDown:g=>{g.key==="Enter"&&x()}})})})}function CY({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(Q1,{}),onSelect:r}],...c?[{key:"restore",label:l?i("Put these drafts back"):i("Restore whole website"),icon:X(e_,{}),onSelect:a}]:[],...c&&!l&&e.pages.length?[{key:"restore-page",label:i("Restore one page only"),icon:X(a_,{}),onSelect:n}]:[],...l?[]:[{type:"divider",key:"divider"},{key:"name",label:i("Name this version"),icon:X(mY,{}),onSelect:s}]];return X(fY,{title:Fo("span",{className:"sf-version-title",children:[X("span",{children:K1(e)}),e.live?X(WI,{tone:"success",size:"xs",children:i("Live")}):null,e.name?X(WI,{tone:"neutral",size:"xs",children:i("Version {n}",{n:e.number})}):null,l?X(WI,{tone:"warning",size:"xs",children:i("Not published")}):null]}),expanded:o,onToggle:t,actions:X(iY,{align:"end","aria-label":i("More"),items:p,triggerClassName:cY({variant:"ghost",size:"sm"}),trigger:X(xY,{})}),below:Fo(El,{gap:3,children:[Fo(UI,{gap:2,align:"center",wrap:!0,className:"sf-version-meta",children:[X(sY,{name:e.createdBy,size:"xs"}),X("span",{children:e.createdBy}),X("span",{"aria-hidden":"true",children:"\xB7"}),X("span",{children:Y1(e.createdAt)}),d?Fo(Ol,{children:[X("span",{"aria-hidden":"true",children:"\xB7"}),X("span",{children:mo("{n} change","{n} changes",d)})]}):null]}),o?Fo(El,{gap:3,children:[d?X(El,{gap:2,children:e.changes.map(m=>{let f=gY[m.kind]??IY;return Fo(UI,{gap:2,align:"center",children:[X(f,{size:16}),X("span",{children:V1(m)})]},`${m.kind}:${m.id}`)})}):null,Fo(UI,{gap:2,children:[l?null:X(ya,{variant:"secondary",size:"sm",leftIcon:X(Q1,{}),onClick:r,children:i("Preview")}),c?X(ya,{variant:"secondary",size:"sm",leftIcon:X(e_,{}),onClick:a,children:i("Restore")}):null]})]}):null]})})}function vY({open:e,onClose:o,access:t,waiting:r}){let{flushSave:a,reloadFromServer:n,docId:s}=n_(),[l,c]=Go(null),[d,p]=Go(!1),[m,f]=Go(null),[x,g]=Go(null),[y,k]=Go(!1),[O,w]=Go(null),[I,C]=Go(null),[v,A]=Go(!1),E=aY(0),L=tY(()=>{let b=++E.current;p(!1),t.list().then(_=>{b===E.current&&c(_)},()=>{b===E.current&&p(!0)})},[t]);rY(()=>{e&&L()},[e,L]);let T=b=>{A(!1),yY(t,b.id).catch(()=>A(!0))},R=async()=>{if(!(!x||y)){k(!0),w(null);try{await $1({access:t,version:x.version,page:x.page,flushSave:a,reload:n}),g(null),o()}catch(b){w(b instanceof kl?i("Your last changes did not save, so nothing was restored. Try again."):i("The version was not restored. Nothing changed. Try again."))}finally{k(!1)}}},N=nY({onPress:()=>{R()},busy:y});return Fo(Ol,{children:[X(lY,{open:e,onClose:o,side:"right",size:"md",title:i("Version history"),description:Fo(Ol,{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:Fo(El,{gap:3,children:[v?X(Pl,{tone:"danger",onDismiss:()=>A(!1),children:i("The preview did not open. Try again.")}):null,d?X(Pl,{tone:"danger",action:X(ya,{variant:"secondary",size:"sm",onClick:L,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(pY,{"aria-label":i("Versions"),spacing:"comfortable",children:l.map(b=>X(CY,{version:b,expanded:m===b.id,onToggle:()=>f(_=>_===b.id?null:b.id),onPreview:()=>T(b),onRestore:()=>{w(null),g({version:b,page:null})},onRestorePage:()=>{w(null),g({version:b,page:bY(b,s)})},onName:()=>C(b)},b.id))})]})}),X(SY,{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(wY,{version:I,onCancel:()=>C(null),onSave:async b=>{await t.name(I.id,b),C(null),L()}})]})}function s_(){let{adapter:e,hasUnsavedEdits:o}=n_(),t=e.siteVersions,r=G1(),a=ji();return t?X(vY,{open:r,onClose:z1,access:t,waiting:o||a?.state==="changed"}):null}import{useEaselSession as ML}from"efficient-easel/screen/lib/session-context";import{buildPaletteSections as kOe,categoryLabel as TOe,paletteWithoutPinned as POe,pinnedSection as EOe}from"efficient-easel/screen/lib/document/palette-sections";var kY={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 l_(e){return kY[e]?.label}var i_=Ru;import{currentEaselSession as zF}from"efficient-easel/screen/lib/session";var c_=[{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"}],FOe={label:"Scrolling Bar",defaultProps:{items:[],tone:"scrim",borders:!0,size:Lu,separator:Bu,scrollDirection:Js}};var d_=()=>[{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"},{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"}],DOe={label:"Spec Strip",defaultProps:{cells:[{text:"",tone:"normal"},{text:"",tone:"normal"}],fill:"dark"}};var Ef={direction:"column",justify:"between",gap:14,sectionPaddingLeft:14,sectionPaddingRight:14,sectionPaddingLeftPhone:0,sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},_l={name:"Year and title",direction:"column",gap:14};var Sa={direction:"row",share:"content",align:"center"},Rl={top:14,bottom:14,topPhone:12,bottomPhone:12},Of={wrap:"nowrap",loop:"scroll",sectionAccent:Zp,gap:60,gapPhone:32,separator:"dot",sectionBorder:{top:1,bottom:1}},f_={gap:120,gapPhone:64},_f={textStyle:"body-5",sizeToken:{step:"label",px:14,pxPhone:12},letterSpacing:.25,case:"upper",lineHeight:1.5},u_={textStyle:"heading-3",letterSpacing:.005,case:"upper",lineHeight:1},Al={top:16,bottom:16,topPhone:12,bottomPhone:12},Rf={justify:"between",wrap:"wrap",gap:32,separator:"none"},Fl={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 p_(e,o,t){return ae(V,e,o,{...t,sectionPaddingTop:void 0,sectionPaddingBottom:void 0})}var Af={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,ho()),ae("Text",e,o,Do()),ae("Text",e,o),ae("Stats",e,o)]}),p_(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,ho()),ae("Text",e,o,Do()),ae("Text",e,o),ae("ButtonBlock",e,o)]}),p_(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,Do()),ae("Text",e,o),ae("Form",e,o)]}}),Ticker:(e,o)=>m_("Scrolling Bar",Of,Rl,c_.map(t=>({text:t.text,style:_f,muted:!0})),e,o),SpecStrip:(e,o)=>m_("Spec Strip",{...Rf,sectionBorder:{top:1}},Al,d_().map(t=>({text:t.text??"",style:Fl,muted:t.tone==="muted"})),e,o),TimelineTrack:(e,o)=>{let t=r=>ae(V,e,o,{...Ef,name:"Year",sectionPaddingTop:0,sectionPaddingBottom:0,...r?{upcoming:!0}:{},content:[ae(V,e,o,{..._l,sectionPaddingTop:0,sectionPaddingBottom:0,content:[ae("Text",e,o,ho()),ae("Text",e,o,Do())]}),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,ho()),ae("Text",e,o,Do()),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,ho()),ae(V,e,o,{direction:"column",gap:12,name:"Words",content:[ae("Text",e,o,Do()),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,ho()),ae("Text",e,o,Do()),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 m_(e,o,t,r,a,n){return ae(V,a,n,{...Sa,...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 h_(e){return Af[e]??null}import{phoneKey as RY}from"efficient-easel/draw";var x_={label:"Button",defaultProps:{label:"",href:"#",variant:"primary",align:"left",contained:!0}};import{jsx as TY}from"react/jsx-runtime";var Ff={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}},I_=new Set(Object.keys(Ff)),b_=new Set(["Flex","Text","Heading","ImageBlock"]),PY=new Set(["Divider"]),EY=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),g_=new Set(["ProductGrid"]);function $I(e,o,t=!1){let r=e.render;e.render=a=>{if(o?.(a))return r(a);let n=Ji(fC(a,lm,t)),s=r(a),l=EC(a);return n?TY("div",{className:l?`${n.className} ${l}`:n.className,style:n.style,children:s}):s}}var QOe={name:"sectionPadding",applies:(e,o,t)=>o.isSection(e)&&!EY.has(e)&&!!t&&typeof t.render=="function",panel(e,o,t){I_.has(o)||g_.has(o)||(e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})})},draw(e,o){if(I_.has(o)){let t=e.render,r=Ff[o];e.render=a=>{let n=Qi(a,r);return t({...a,padTop:n.top,padBottom:n.bottom})};return}if(g_.has(o)){$I(e);return}b_.has(o)||PY.has(o)||$I(e,o==="Flex"?t=>Ud(t.bgImage):void 0,!0)}},OY=["Heading","Text","ImageBlock"],_Y=["LogoBlock"],e1e={name:"blockPadding",applies:(e,o,t)=>(OY.includes(e)||_Y.includes(e))&&!!t&&typeof t.render=="function",panel(e,o,t){e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})}},draw(e,o){b_.has(o)||$I(e,void 0,!0)}};import{parseHexColor as AY}from"efficient-shell/format";var Gn={...K,[Ar]:""},{label:I1e,href:g1e,...FY}=x_.defaultProps,Ye=FY,jt={buttonFillOpacity:0,buttonBorder:{width:0},buttonPaddingTop:0,buttonPaddingRight:0,buttonPaddingBottom:0,buttonPaddingLeft:0},ce={...xi,sectionAccent:0},me=["gridSpan","sectionHeightMode","sectionHeightValue","sectionHeightUnit","sectionHeightModeTablet","sectionHeightValueTablet","sectionHeightUnitTablet","sectionHeightModePhone","sectionHeightValuePhone","sectionHeightUnitPhone","sectionCorners","sectionCornerSides","sectionBorder","sectionBorderTablet","sectionBorderPhone","sectionAccent","stickTop","stickTopDistance","stickTopTablet","stickTopDistanceTablet","stickTopPhone","stickTopDistancePhone","anchor","sectionAnimation","_hidden",...Object.values(Ee).flatMap(e=>[e,RY(e)]),"widthFit","widthFitTablet","widthFitPhone","width","widthTablet","widthPhone","minWidth","minWidthTablet","minWidthPhone","maxWidth","maxWidthTablet","maxWidthPhone"],zn="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:zn,fullWidth:zn,pageWidth:zn,backgroundWidth:zn,contentWidth:zn,contentMax:zn},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=U(e.sectionPaddingTop)??0,r=U(e.sectionPaddingBottom)??0,a=U(e.sectionPaddingTopTablet),n=U(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:(U(e.sectionPaddingTopPhone)??a??t)+o.topPhone,sectionPaddingBottomPhone:(U(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 vo(e,o){let t=Qi(e,Ff[o]);return{sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom}}var yr=e=>[["padTop","sectionPaddingTop",(o,t)=>vo(t,e).sectionPaddingTop],["padBottom","sectionPaddingBottom",(o,t)=>vo(t,e).sectionPaddingBottom],["sectionPaddingTop","sectionPaddingTop",(o,t)=>vo(t,e).sectionPaddingTop],["sectionPaddingBottom","sectionPaddingBottom",(o,t)=>vo(t,e).sectionPaddingBottom]],LY={kind:"heading-case-upper",styles:["heading-1","heading-2","heading-3"]},b1e=e=>o=>ro(o.props[e])?[LY]:[],Ie=(e,o)=>({kind:"text",key:e,role:"eyebrow",props:K,...o?{style:o}:{}}),y_=e=>e.background!=="transparent",BY=(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},Ll={align:"right",alignPhone:"left"},DY=(e,o,t)=>{let r=a=>BY(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}},Bl=(e,o,t,r={})=>DY(e,o,{...Gn,...Ll,...r,_partStyles:{text:{textStyle:"body-5",color:"labels",...t,case:"upper",...Ll}}}),Dl=(e,o)=>typeof e=="number"&&Number.isInteger(e)&&e>=0?e:wf(o)?.selected??0,S_="var(--site-surface)",w_="var(--site-surface-2)",Nl=(e,o)=>wf(o)?.themes[Dl(e.sectionAccent??0,o)],ko=e=>(o,t)=>{let r=Nl(o,t)?.[e];return r?{fillColor:r}:{}},C_=e=>e.startsWith("#")&&AY(e)!==null,Lf=(e,o,t)=>{let r=e?.trim();if(r&&C_(r))return{fillColor:r};if(r===S_)return ko("surface")(o,t);let a=r===w_?Nl(o,t):void 0;return a?{fillColor:si(a)}:{}},Bf=e=>{let o=e?.trim();return!o||o==="transparent"||o===po||o===S_||o===w_||C_(o)?void 0:"it paints a colour that no Box Fill can hold"},Ml=(e,o)=>{let t=Nl(e,o)?.line;return t?{buttonBorder:{width:1,color:t}}:{}},wa=(e,o)=>{let t=wf(o)?.themes;return t&&y_(e)?pb(t,Dl(e.sectionAccent,o)):-1},Sr=(e,o,t)=>{let r=wa(o,t);return r>=0?r:e},Ca=(e,o)=>{let t=wa(e,o);return t>=0?{sectionAccent:t}:{}},wr=(e,o)=>y_(e.props)&&wa(e.props,o)<0?[{kind:"band-preset",page:Dl(e.props.sectionAccent,o)}]:[],Wn=e=>ed(e.site?.siteGutter),Hl=Object.fromEntries(["Top","Right","Bottom","Left","TopPhone","RightPhone","BottomPhone","LeftPhone"].map(e=>[`sectionPadding${e}`,0])),zl=e=>({top:0,right:0,bottom:0,left:0,...e}),jI=(e,o,t,r=[])=>({kind:"group",name:e,keepEmpty:!0,props:(a,n)=>({...D,...Hl,...ko("surface")(a,n),...typeof t=="function"?t(a,n):t}),box:[[o,"bgImage"],_e.kind,_e.duration,_e.delay],parts:r});import{phoneKey as DX,readHidable as fg}from"efficient-easel/draw";import{jsx as Vl,Fragment as CX,jsxs as K_}from"react/jsx-runtime";import{jsx as eg,jsxs as cX}from"react/jsx-runtime";import{jsx as NY}from"react/jsx-runtime";function v_(){return NY("span",{className:"block h-px w-[30px] bg-current"})}import{jsxs as jl,jsx as Ue}from"react/jsx-runtime";import{Fragment as H_}from"react";import{Fragment as QY,jsx as JI}from"react/jsx-runtime";import{Fragment as O_,jsx as Wl,jsxs as jY}from"react/jsx-runtime";import{createContext as ZI,useContext as Ul,useEffect as KY,useId as qY,useMemo as VY,useRef as YY}from"react";import{armEntrance as XY}from"efficient-shell/format";import{jsx as zY}from"react/jsx-runtime";import{useEffect as E_,useRef as P_,useState as GY}from"react";import{armEntrance as WY,entranceAttrs as UY,playEntrance as $Y}from"efficient-shell/format";import{jsx as Gl}from"react/jsx-runtime";import{createContext as T_,useContext as va}from"react";var k_={stretchedRow:!1,fillingColumn:!1},ka=T_(null),T1e=()=>va(ka)!==null,P1e=()=>va(ka);var Df=T_(!1);function MY(){let e=va(ka)?.stretchedRow===!0,o=va(Df);return e&&!o}var HY=()=>va(Df);function KI(){let e=va(ka),o=MY(),t=HY();return{fill:t?` ${TC}`:"",inner:r=>{let a=o||t?Gl(Df.Provider,{value:!0,children:r}):r;return e?.columnsRow?Gl(ka.Provider,{value:{...e,columnsRow:!1},children:a}):a}}}function E1e({className:e,style:o,attrs:t,children:r}){let{fill:a,inner:n}=KI();return Gl("div",{className:`${e}${a}`,...o?{style:o}:{},...t,children:n(r)})}function O1e({children:e}){let o=va(ka),t=o===null?null:o.id===void 0?k_:{...k_,id:o.id};return Gl(ka.Provider,{value:t,children:Gl(Df.Provider,{value:!1,children:e})})}function VI({desktop:e,phone:o,editing:t,boxClass:r,boxAttrs:a,boxStyle:n,children:s}){let l=P_(null),c=KI(),d=YI(l),p=d?o:e,{attrs:m,style:f}=UY(p),x=P_(qI.seed(e,o)),g=JSON.stringify(e),y=JSON.stringify(o);return E_(()=>{let k=l.current;if(k){if(t){let O=qI.next(x.current,e,o,d);x.current=O.seen,O.play&&$Y(k);return}return WY(k)}},[g,y,d,t]),zY("div",{ref:l,className:`${Ld}${c.fill}${r?` ${r}`:""}`,...a,...m,...Object.keys(f).length||n?{style:{...n,...f}}:{},children:c.inner(s)})}var qI={seed(e,o){return{desktop:JSON.stringify(e),phone:JSON.stringify(o)}},next(e,o,t,r){let a=qI.seed(o,t);return{play:r?a.phone!==e.phone:a.desktop!==e.desktop,seen:a}}};function YI(e,o=!0){let[t,r]=GY(!1);return E_(()=>{if(!o)return;let a=e.current?.ownerDocument?.defaultView??(typeof window>"u"?null:window);if(!a?.matchMedia)return;let n=a.matchMedia(Va),s=()=>r(n.matches);return s(),n.addEventListener("change",s),()=>n.removeEventListener("change",s)},[e,o]),t}var Nf=ZI(null),R_=ZI(null),A_=ZI(null);function j1e({needles:e,styles:o,motions:t=Y0,type:r,children:a}){let n=qY(),s=JSON.stringify([n,e,o,t,r]),l=VY(()=>{let d=Object.keys(t).filter(p=>Z0(t[p]));return TT(e,o,n,p=>sl(r,p),p=>CT(r,p),p=>d.includes(p)?$x(t[p]):null,d)},[s]);if(!l)return Wl(O_,{children:a});let c=PT(l);return jY(O_,{children:[c&&Wl("style",{href:`${ZY}${n}-${JY(c)}`,precedence:L_,dangerouslySetInnerHTML:{__html:c.replace(/</g,"\\3c ")}}),Wl(Nf.Provider,{value:l,children:a})]})}var XI=new WeakMap;function __(e,o){let t=Q0(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)?(oE(e.ownerDocument),e.setAttribute($d,"")):e.removeAttribute($d)}function F_(e){let o=YY(null),t=e?.motion?.entrance??null,r=e?.motion?.hover==="lift",a=YI(o,t!==null),n=JSON.stringify(t);return KY(()=>{let s=o.current,l=eE(s?.parentElement??null);if(!t&&!r||!s||!l)return;let c=t?()=>{let m=J0(l,a?t.phone:t.desktop),f=XY(l);return()=>{f?.(),m()}}:null,d=XI.get(l)??[];XI.set(l,d);let p={element:s,arm:c,lift:r};return d.push(p),__(l,d),()=>{let m=d.indexOf(p);m<0||(d.splice(m,1),p.undo?.(),p.undo=void 0,__(l,d),d.length||XI.delete(l))}},[n,r,a]),o}var L_="sf-part-styles",ZY=`${L_}-`;function JY(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 B_(e){let o=Ul(Nf),t=Ul(R_),r=ET(o,e);return r&&r.stamp!==t?r:null}function K1e(e){return _h(Ul(Nf),e)}function D_({stamp:e,children:o}){return Wl(R_.Provider,{value:e,children:o})}function q1e({children:e}){let o=Ul(Nf);return Wl(A_.Provider,{value:o,children:e})}function V1e(e){return _h(Ul(A_),e)}function $l({value:e,children:o}){let t=B_(e),r=F_(t);return t?JI(D_,{stamp:t.stamp,children:JI("span",{ref:r,[Sh]:t.stamp,...t.textStyle?{[hn]:t.textStyle}:{},children:o})}):JI(QY,{children:o})}import{jsx as QI,Fragment as eX}from"react/jsx-runtime";function N_({className:e=""}){return QI("sup",{className:`text-accent tracking-normal text-[length:min(1em,max(0.75em,11px))] ${e}`,children:"\xAE"})}function Mf(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(QI(N_,{},`r${a}`))}),QI(eX,{children:t})}var o_e=N_;function Wo(e,o=!1,t){let r=iX(o),a=ns(e);if(a.length===1){let[s]=a,l=Yu(s),c=l?sX(l,s.children):s.children;return jl($l,{value:e,children:[t,Hf(c,r)]})}let n=[];return a.forEach((s,l)=>{if(s.bullet){n.push(Ue("span",{"data-sf-bullet":"",className:oX,children:Hf(s.children,r)},l));return}if(s.number!=null){n.push(jl("span",{"data-sf-number":s.number,className:tX,children:[jl("span",{className:rX,children:[s.number,"."]}),Hf(s.children,r)]},l));return}l>0&&!aX(a[l-1])&&n.push(Ue("br",{},`br${l}`)),n.push(Ue(H_,{children:Hf(s.children,r)},l))}),jl($l,{value:e,children:[t,n]})}var oX="relative block pl-6 before:absolute before:left-1.5 before:font-bold before:text-accent before:content-['\xB7']",tX="relative block pl-[2em]",rX="absolute left-0 w-[1.6em] text-right tabular-nums";function aX(e){return e.bullet||e.number!=null}var nX="text-accent underline underline-offset-[0.18em]";function sX(e,o){let[t,...r]=o;return t?.kind==="text"?[{kind:"text",text:`${e}${t.text}`},...r]:[{kind:"text",text:e},...o]}function lX(e){return dn(e)||void 0}function Hf(e,o){let t=[],r=!1;return e.forEach((a,n)=>{if(a.kind==="text"){t.push(Ue("span",{children:Mf(a.text)},n)),r=!0;return}r||t.push(Ue("span",{},`e${n}`)),t.push(z_(a,n,o)),r=!1}),r||t.push(Ue("span",{},"end")),t}function M_(e,o){return e.length===1&&e[0].kind==="text"?Mf(e[0].text):e.map((t,r)=>t.kind==="text"?Ue(H_,{children:Mf(t.text)},r):z_(t,r,o))}function iX(e){return e?"font-normal italic text-accent":"not-italic text-accent"}function d_e(e){return Ue($l,{value:e,children:Ue("span",{children:e})})}function z_(e,o,t){if(e.kind==="link")return Ue("a",{href:e.href,className:nX,children:M_(e.children,t)},o);let r=M_(e.children,t),a=Ry[e.kind];if(a)return Ue("span",{[Ay]:a,children:r},o);switch(e.kind){case"underline":return Ue("u",{children:r},o);case"sup":return Ue("sup",{children:r},o);case"sub":return Ue("sub",{children:r},o);case"color":{let n=lX(e.color);return n?Ue("span",{style:{color:n},children:r},o):Ue("span",{children:r},o)}case"accent":case"highlight":return Ue("em",{className:t,children:r},o);case"bold":return Ue("strong",{className:"font-semibold",children:r},o);case"italic":return Ue("em",{className:"italic",children:r},o);case"strike":return Ue("s",{className:"line-through",children:r},o);default:return Ue("span",{children:r},o)}}function G_(e,o=!0){let t=e.split(`
42
- `);return Ue($l,{value:e,children:t.map((r,a)=>jl("span",{children:[Wo(r,o),a<t.length-1?Ue("br",{}):null]},a))})}function W_(e){return e.split(/\n\s*\n/).map(o=>o.trim()).filter(Boolean)}var og={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 dX(e,o){return`font-mono text-[length:var(--size-label,${e}px)] uppercase tracking-[0.3em] text-accent`}var fX=`inline-block w-fit bg-accent px-3.5 py-1.5 font-mono ${og.labelSmall} font-semibold uppercase tracking-[0.16em] text-bg`,uX=`flex items-center gap-3.5 font-mono ${og.labelLarge} uppercase tracking-[0.3em] opacity-80 ${og.labelUpTo800} max-view-wide:tracking-[0.25em]`;function U_({text:e,look:o="plain",size:t=13,scaled:r=!0,className:a="",classNameAfter:n=""}){if(o==="line")return cX("div",{className:[a,uX,n].filter(Boolean).join(" "),children:[eg(v_,{}),eg("span",{children:Wo(e)})]});let s=o==="filled"?fX:dX(t,r);return eg("span",{className:[a,s,n].filter(Boolean).join(" "),children:Wo(e)})}import{jsx as Uo,Fragment as SX}from"react/jsx-runtime";import{createContext as zf,useContext as Kt}from"react";import{isNodeList as pX}from"efficient-easel/data";var mX=new Set(["Flex","Grid"]);function hX(e){return typeof e=="string"&&mX.has(e)}var xX="contentWidth",IX="full",gX="content";function bX(e){let o=e?.[xX];return o===IX?!1:o===gX?!0:void 0}function $_(e,o){return e&&!o}function yX(e){return e.loop==="scroll"&&e.direction!=="tabs"&&!Ud(typeof e.bgImage=="string"?e.bgImage:null)&&!a0(e.scrollDirection)}function b_e(e){return e!=="full"}function y_e(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=hX(s?.type),d=c&&(n.inBox?bX(l)??t:t),p={insideGutter:n.insideGutter||d||c&&yX(l),inBox:n.inBox||c};for(let m of Object.values(l)){if(!pX(m))continue;let f=r(m,p);if(f!==void 0)return f}}};return r(e,{insideGutter:!1,inBox:!1})}var Kl=zf(!1);function P_e(){return Kt(Kl)}function j_({children:e}){return Uo(Kl.Provider,{value:!0,children:e})}var tg=zf(!1);function E_e({children:e}){return Uo(tg.Provider,{value:!0,children:e})}var rg=zf(!1);function O_e({atTop:e,nested:o}){return Uo(SX,{children:Kt(rg)?o:e})}var ql=zf(void 0);function __e({children:e}){return Uo(ql.Provider,{value:null,children:e})}function R_e(){return Kt(ql)===void 0&&!Kt(rg)&&!Kt(Kl)}function A_e(){return Kt(ql)??null}function F_e({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:m,bleed:f=!1,children:x}){let g=Kt(Kl),y=Kt(tg),k=$_(e,g),O=k&&!y,w=s&&!O?pC(s.values,s.frame):null,I=l&&!O?l:null,C=[O?o:t,w?.className,I?LC:null].filter(Boolean).join(" "),v=wX(f&&O,w||I?{...a,...w?.style,...I}:a),A=Kt(ql),E=d&&p&&A===void 0?{gutter:k,...s?{pad:s.values}:{}}:null,L=d?Uo(rg.Provider,{value:!0,children:Uo(ql.Provider,{value:E,children:x})}):x,T=k?Uo(Kl.Provider,{value:!0,children:L}):L,R=s&&O?uC(s.values):null,N=c&&Object.keys(c).length>0?c:null,b=Uo("div",{...R?null:N,className:C,style:R||!m?v:{...v,...m},"data-tab-label":n,children:y?Uo(tg.Provider,{value:!1,children:k&&!f?Uo("div",{className:r,children:T}):T}):T}),_=R?Uo("div",{...N,className:R.className,style:m?{...R.style,...m}:R.style,children:b}):b;return l&&O?Uo("div",{className:FC,style:{display:"contents",...l},children:_}):_}function wX(e,o){return e?{...o,paddingLeft:0,paddingRight:0}:o}var q_={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))]"},vX="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))]",kX="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))]",TX="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))]",Cr={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 H_e(e,o,t){let r=Gf(t),a=o-1,n=Math.floor(a/r)*r,s=[];return e===0&&s.push(Cr.phone.tl,Cr.phone.tr,Cr.wide.tl),e===a&&s.push(Cr.phone.bl,Cr.phone.br),e===r-1&&o>=r&&s.push(Cr.wide.tr),e===n&&s.push(Cr.wide.bl),e===a&&o%r===0&&s.push(Cr.wide.br),s.join(" ")}function Gf(e){return Math.min(4,Math.max(2,e??3))}function z_e({look:e,eyebrow:o,title:t,columns:r,omitHead:a=!1,editing:n=!1,cards:s}={}){let l=Gf(r),c=!!(o??"").trim()||!!(t??"").trim();return!n&&!c&&!s?null:Vl("section",{className:"relative z-[2] bg-surface",children:K_("div",{className:a?kX:vX,children:[a?null:K_(CX,{children:[(o??"").trim()&&Vl(U_,{text:o??"",look:e,className:"mb-4 block"}),(t??"").trim()&&Vl("h2",{className:`mb-9 font-heading2 ${q_.headingMedium} font-medium uppercase leading-none tracking-[-0.02em] text-fg max-view-wide:mb-7 ${q_.headingMediumUpTo800}`,children:G_(t??"",!1)})]}),s?Vl("div",{className:TX,style:{"--cd-cols":String(l),overflowY:"visible"},children:Vl(j_,{children:s})}):null]})})}var U_e={eyebrow:"Label",title:"Section *heading.*"},PX={template:xy()},V_={label:"Cards",fields:PX,defaultProps:{eyebrow:"",title:"",items:[],columns:3}};var K_e={eyebrow:"Highlight",title:"Key *features.*"},q_e=()=>[{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")}],Y_={label:"Key Features",defaultProps:{eyebrow:"",title:"",items:[],columns:3}};import{readHidable as EX}from"efficient-easel/draw";function ng(e){if(e==="ProductGrid")return"shelf";let o=Io[e]?.headStyle;return o==="editorial"||o==="simple"||o==="essay"?o:"standard"}var J_={standard:64,editorial:60,simple:36,essay:28,shelf:20},OX={SectionHeader:"accent",FAQ:"accent",FitmentFinder:"accent",FitmentTable:"accent",SpecTable:"accent",RelatedProducts:"accent",Collections:"accentNum"};function _X(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 Q_(e,o,t){let r=`editorial:${e}|${o}|${t}`,a=Uf.get(r);if(a)return a;let n=oR({num:e,title:o,description:t,link:!1});return Uf.set(r,n),n}var sg={top:0,right:0,bottom:1,left:0},$o=(e,o,t,r)=>({sizeToken:{step:e,px:r,fluid:{minPx:o,vw:t}}}),$f=(e,o,t={})=>Ie(e,{...W("label",o),...t}),RX=(e,o)=>{let t=EX(e).text.trim();return/\s/.test(t)?{minWidth:Math.ceil(t.length*o*.9),minWidthPhone:0,widthFitPhone:"fill"}:{}},jf=(e,o)=>({kind:"text",key:e,role:"heading",props:K,style:{textStyle:"heading-2",...o}}),lg=800,ig=(e,o,t,r)=>({kind:"text",key:e,props:{...fe,align:"right",alignPhone:"left",...t?{maxWidth:t,maxWidthPhone:lg}:{}},style:{textStyle:"body-5",fontRole:"heading",alignPhone:"left",...W("body",o),...r}}),eR={...Ye,align:"right",alignPhone:"left",...jt,icon:"arrow-right",iconPosition:"after"},ag=e=>({kind:"button",key:"linkText",href:"linkHref",variant:"ghost",props:eR,style:{textStyle:"body-5",color:"labels",...W("label",e),letterSpacing:.2,case:"upper"}}),X_=(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"?AX(ho()):{},...t.style}}}}},AX=e=>e._partStyles.text??{},Wf={widthFitPhone:"fill"};function FX(e,o){let t=OX[e],r=t==="accent",a=$f(o.num,14,{color:r?"accent":"labels"}),n=t==="accentNum"&&a.kind==="text"?{...a,mark:"accentLead"}:a,s=jf(o.title,r?{...$o("headingMedium",36,5,64),case:"upper",lineHeight:.95,letterSpacing:-.025}:{...W("headingMedium",56,36),case:"none",lineHeight:1,letterSpacing:-.03}),l=e==="Collections";return{kind:"group",name:"Header",props:{...D,direction:"row",align:"end",justify:"between",gap:40,gapPhone:12,share:"content",sectionBorder:sg,sectionPaddingBottom:24,sectionPaddingBottomPhone:20},parts:[{kind:"group",name:"Title",props:{...D,...Wf,direction:"row",align:"end",gap:40,gapPhone:12,share:"content"},parts:[{kind:"group",name:"Number",props:{...D,...Wf,align:"start",gap:12},parts:[{kind:"image",key:"logoSrc",alt:"logoAlt",props:{aspect:"auto",contained:!1}},n,...l?[X_(o.num,"==01== / Collections",n)]:[]]},{kind:"group",name:"Heading",props:{...D,...Wf},parts:[s,...l?[X_(o.title,`Three ranges,
43
- one standard.`,s)]:[]]}]},{kind:"group",name:"Words",props:{...D,...Wf,gap:12,maxWidth:340,maxWidthPhone:lg},parts:[...o.description?[ig(o.description,14,void 0,{lineHeight:1.5})]:[],...o.link?[ag(14)]:[],...l?[{kind:"block",type:"ButtonBlock",props:{...eR,variant:"ghost",label:"View all",href:"/wheels",_partStyles:{label:ag(14).style}}}]:[]]}]}}function oR(e){return{kind:"group",name:"Header",props:{...D,direction:"row",align:"end",justify:"between",gap:40,gapPhone:14,share:"content",sectionBorder:sg,sectionPaddingBottom:32},parts:[{kind:"group",name:"Title",props:{...D,direction:"row",align:"end",gap:40,gapPhone:14,share:"content"},parts:[{kind:"group",name:"Number",props:o=>({...D,sectionPaddingBottom:8,...RX(o[e.num],13)}),parts:[$f(e.num,13)]},jf(e.title,{...$o("headingMedium",40,5.5,80),case:"upper",weight:500,lineHeight:1,letterSpacing:-.03})]},{kind:"group",name:"Words",props:{...D,sectionPaddingBottom:4,maxWidth:360,maxWidthPhone:lg},parts:e.description?[ig(e.description,14,void 0,{lineHeight:1.5})]:[]}]}}function Z_(e,o){return{kind:"group",name:"Header",props:{...D,gap:16,gapPhone:16},parts:[$f(e.num,13),jf(e.title,o)]}}var tR=[["para",{textStyle:"body-5",...W("label",13),case:"upper",weight:400,lineHeight:1,letterSpacing:.22}],["sm",{...W("headingMedium",40,28),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["md",{...W("headingMedium",48,32),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["lg",{...W("headingMedium",56,36),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["xl",{...W("headingMedium",64,40),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}]],LX=e=>tR.some(([o])=>o===e.titleSize)?e.titleSize:"lg";function BX(e){return{kind:"group",name:"Header",props:{...D,direction:"row",align:"center",justify:"between",gap:16,share:"content",stickTop:!0,sectionBorder:sg,sectionPaddingTop:12,sectionPaddingBottom:12},parts:[{kind:"group",name:"Title",props:{...D,direction:"row",align:"end",gap:24,share:"content"},parts:[$f(e.num,13,{color:"labels",letterSpacing:.22,lineHeight:1}),...tR.map(([o,t])=>({...jf(e.title,t),when:r=>LX(r)===o}))]},{kind:"group",name:"Words",props:{...D,direction:"row",align:"center",justify:"end",gap:20,share:"content"},parts:[...e.description?[ig(e.description,13,340,{lineHeight:1.4})]:[],...e.link?[ag(13)]:[]]}]}}var Uf=new Map;function vt(e){let o=Uf.get(e);if(o)return o;let t=_X(e),r=ng(e),a=r==="editorial"?oR(t):r==="simple"?Z_(t,{...W("headingMedium",44,32),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}):r==="essay"?Z_(t,{...W("headingMedium",38,28,"headingSmall"),case:"upper",lineHeight:1,letterSpacing:-.02}):r==="shelf"?BX(t):FX(e,t);return Uf.set(e,a),a}var Ta={Series:"transparent",StatsParagraph:"transparent",TimelineTrack:po,Stats:void 0};var vr=(e,o,t,r)=>({sectionBorder:{top:e,right:o,bottom:t,left:r}}),fR=e=>o=>Gf(U(o.columns)??U(e.columns)),uR=e=>({kind:"group",name:"Grid",props:{...D,gap:0,...vr(1,0,0,1)},parts:[e]}),pR={...D,direction:"row",gap:0,share:"equal"},mR="its head sits in a Box of its own above it (own-box): the row draws the head inline",hR=e=>n1(e.headPlacement)==="own-box",xR="inline is the head the row draws; an own-box node is skipped (`skip`)",NX=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}}]}),rR={top:72,bottom:72,topPhone:72,bottomPhone:72},MX={...Gu,...vr(0,1,1,0)},HX={name:"Cards",boxProps:(e,o)=>({...ce,direction:"column",gap:36,gapPhone:28,...ko("surface")(e,o),...ye(e,rR)}),box:[...me,...Ae(rR)],skip:e=>hR(e)?mR: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:[vt("Cards"),uR({kind:"list",key:"items",name:"Card",perRow:fR(V_.defaultProps),rowName:"Row",rowProps:pR,props:(e,o)=>({...MX,...ko("background")(e,o)}),parts:[{kind:"text",key:"title",props:K,style:Wu},{kind:"text",key:"body",props:fe,style:Uu}]})],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:xR,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)"}},aR={top:76,bottom:76,topPhone:76,bottomPhone:76},zX={...D,direction:"row",align:"center",gap:16,sectionPaddingTop:32,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,...vr(0,1,1,0)},nR={textStyle:"body-1",color:"text"},sR=(e,o)=>typeof o?.href=="string"&&o.href.trim()!=="",GX={name:"Key Features",boxProps:e=>({...ce,direction:"column",gap:44,...vr(1,0,1,0),...ye(e,aR)}),box:[...me,...Ae(aR)],parts:[NX({...D,direction:"row",align:"end",gap:20,wrap:!0,share:"content"}),uR({kind:"list",key:"items",name:"Feature",perRow:fR(Y_.defaultProps),rowName:"Row",rowProps:pR,props:zX,parts:[{kind:"button",key:"label",href:"href",when:sR,variant:"ghost",props:{...Ye,...jt,icon:"none"},style:nR},{kind:"text",key:"label",when:(e,o)=>!sR(e,o),props:K,style:nR,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)"}},lR={top:120,bottom:120,topPhone:80,bottomPhone:80},dg=e=>{let o=yt(typeof e.background=="string"?e.background:void 0,Ta.Series);return o&&o!=="transparent"?o:void 0},cg=e=>dg(e)===po,WX={...D,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},iR={...D,direction:"row",justify:"between",gap:12,share:"content",phoneRow:2,[DX("share")]:"content"},cR={textStyle:"body-5",...W("label",12),letterSpacing:.22,case:"upper",lineHeight:1.5},UX=e=>ro(e.viewLabel)&&!fg(e.viewLabel).hidden,qt=e=>fg(e).text?.trim?.()??"",IR=e=>Object.fromEntries(Object.entries(e).filter(([,o])=>ee(o)!==void 0)),$X={name:"Recurring Columns",boxProps:(e,o)=>({...ce,direction:"column",gap:60,gapPhone:60,...vr(0,0,1,0),...cg(e)?Ca(e,o):{},...Lf(dg(e),e,o),...ye(e,lR)}),box:[...me.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>cg(o)?Sr(e,o,t):e],...Ae(lR)],skip:e=>Bf(dg(e))??(hR(e)?mR:void 0),site:(e,o)=>cg(e.props)?wr(e,o):[],parts:[vt("Series"),{kind:"core",as:"Cards",keep:[],props:{columns:4},derive:{reads:["cards"],props:e=>({items:(Array.isArray(e.cards)?e.cards:[]).map(o=>IR({num:qt(o.num),since:qt(o.since),title:qt(o.title),body:qt(o.desc),count:[qt(o.entries),qt(o.entriesLabel)].filter(Boolean).join(" ")}))})},slots:(e,o)=>({template:[{type:V,props:{...WX,...ko("background")(e,o),name:"Card"},slots:{[Ke]:[{type:V,props:{...D,name:"Words",gap:16,gapPhone:16},slots:{[Ke]:[{type:V,props:{...iR,name:"Top"},slots:{[Ke]:[Vo("num",K,W("label",13),!0),Vo("since",K,W("label",13),!0)]}},Vo("title",{...K,tag:"h3"},{textStyle:"heading-3",...W("headingSmall",28),weight:500,case:"upper",lineHeight:1.04,letterSpacing:-.02}),Vo("body",fe,{textStyle:"body-5",fontRole:"heading",...W("body",14),lineHeight:1.6})]}},{type:V,props:{...iR,name:"Footer",align:"center",gap:0,gapPhone:0,sectionPaddingTop:16,sectionPaddingTopPhone:16,...vr(1,0,0,0)},slots:{[Ke]:[Vo("count",fe,cR),...UX(e)?[{type:V,props:{...D,name:"View",maxWidthPhone:266},slots:{[Ke]:[{type:"Text",props:{...K,text:fg(e.viewLabel).text,_partStyles:{text:{...ho()._partStyles.text,...cR}}}}]}}]:[]]}}]}}]})}],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:xR}},dR={top:60,bottom:60,topPhone:40,bottomPhone:40},jX={...D,gap:8,gapPhone:8,...Bo(24),...vr(1,1,1,1)},KX={name:"Document Detail Cards",boxProps:e=>({...ce,direction:"column",gap:40,gapPhone:16,...vr(0,0,1,0),...ye(e,dR)}),box:[...me,...Ae(dR)],parts:[{kind:"core",as:"Cards",keep:[],props:{columns:3},derive:{reads:["cards"],props:e=>({items:(Array.isArray(e.cards)?e.cards:[]).map(o=>IR({label:qt(o.label),value:qt(o.value),body:qt(o.desc)}))})},slots:(e,o)=>({template:[{type:V,props:{...jX,...ko("surface")(e,o),name:"Card"},slots:{[Ke]:[Vo("label",K,{...W("label",12),lineHeight:1.5},!0),{type:V,props:{...D,name:"Words",gap:14,gapPhone:14},slots:{[Ke]:[Vo("value",K,{textStyle:"heading-3",...W("headingSmall",20),weight:500,letterSpacing:-.015,lineHeight:1.5}),Vo("body",fe,{textStyle:"body-5",fontRole:"accent",...W("body",14),italic:!0,lineHeight:1.5})]}}]}}]})}],drop:{...he,...Ce}},gR={Cards:HX,KeyFeatures:GX,Series:$X,DocMetaCards:KX};import{phoneKey as bR}from"efficient-easel/draw";var ug=e=>typeof e=="string"?e.trim():"";function yR(e){let o=`${ug(e.prefix)}${ug(e.value)}`,t=ug(e.suffix);return e.emphasizeAll===!0?o?`==_${o}_==`:"":`${o}${t?`==_${t}_==`:""}`}var pg={kind:"block",type:"Text",props:{...Gn,_partStyles:{text:{textStyle:"heading-2",...$o("headingMedium",56,7,96),weight:500,case:"none",lineHeight:.9,letterSpacing:-.04}}},box:[["value","text",(e,o)=>yR(o)]],when:(e,o)=>o!==void 0&&typeof o.value=="string"&&yR(o)!==""},SR=e=>ro(e?.supSuffix),hg=e=>yt(e.background,Ta.StatsParagraph),Yl=e=>hg(e)===po,mg=e=>({...e,sectionAccent:e.sectionAccent??0}),qX=(e,o)=>Yl(e)?ko("background")(e,o):{},VX={name:"Stats with Text",skip:e=>hg(e)&&hg(e)!=="transparent"&&!Yl(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},...vo(e,"StatsParagraph"),...Yl(e)?Ca(mg(e),o):{}}),box:[...me.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>Yl(o)?Sr(e,mg(o),t):e],...yr("StatsParagraph")],site:(e,o)=>Yl(e.props)?wr({props:mg(e.props)},o):[],parts:[vt("StatsParagraph"),{kind:"group",name:"Stats",props:{...D,gap:0},parts:[{kind:"list",key:"stats",name:"Stat",perRow:()=>4,rowName:"Stats row",rowProps:{...D,direction:"row",gap:0,share:"equal",phoneRow:2,[bR("share")]:"content"},props:(e,o)=>({...D,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},...qX(e,o)}),parts:[{...pg,when:(e,o)=>!SR(o)&&pg.when(e,o)},{kind:"group",name:"Figure",props:{...D,direction:"row",align:"start",gap:32,gapPhone:32,share:"content",phoneRow:2,[bR("share")]:"content"},when:(e,o)=>SR(o),parts:[pg,{kind:"text",key:"supSuffix",props:K,style:{textStyle:"body-5",...W("label",13),weight:500,color:"accent",letterSpacing:.18,lineHeight:1,padding:12}}]},{kind:"group",name:"Words",props:{...D,gap:4,gapPhone:4},parts:[{kind:"text",key:"label",props:K,style:{textStyle:"body-1",fontRole:"heading",...W("body",16),lineHeight:1.5,letterSpacing:-.01}},Ie("sub",{color:"labels",...W("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"}},YX=new Set(["value","label",Ar]),wR={top:48,bottom:48,topPhone:48,bottomPhone:48},XX=e=>{let o=yt(typeof e.background=="string"?e.background:void 0,Ta.Stats);return!!o&&o!=="transparent"},ZX={name:"Stats",skip:e=>XX(e)?"it paints a colour inside its padding, and a Box paints its Fill over the padding too":ro(e.dataSource)?"its figures come from a source":Array.isArray(e.items)&&e.items.some(o=>ro(o?.[Ar]))?"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=>!YX.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,wR)}),box:[...me,...Ae(wR)],parts:[Ie("heading",{color:"labels",...W("label",12),letterSpacing:.2}),{kind:"group",name:"Stats",props:{...D,gap:32,gapPhone:32},parts:[{kind:"list",key:"items",name:"Stat",perRow:e=>U(e.columns)??4,rowName:"Stats row",rowProps:{...D,direction:"row",gap:32,gapPhone:32,share:"equal",phoneRow:2},props:{...D,gap:8,gapPhone:8,sectionBorder:{top:1},sectionPaddingTop:20},parts:[{kind:"text",key:"value",props:Gn,style:{textStyle:"heading-2",...W("headingMedium",48,36),weight:500,case:"none",lineHeight:1,letterSpacing:-.03}},Ie("label",{color:"labels",...W("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:"only no fill reaches here: a node that paints a colour is skipped"}},CR={StatsParagraph:VX,Stats:ZX};var kR={contained:!1},TR=(e,o)=>({logos:[{kind:"list",key:e,name:"Logo",flat:!0,parts:[{kind:"block",type:"LogoBlock",box:["src",[o,"alt"]],when:(t,r)=>ro(r?.src)||ro(r?.[o])}]}]}),xg=e=>{let o=U(e.bandPadding)??40;return{top:o,bottom:o,topPhone:o,bottomPhone:o}},JX={...Ie("heading",{color:"labels",letterSpacing:.2}),props:{...K,align:"center"}},QX={name:"Logos",boxProps:e=>({...ce,direction:"column",gap:32,...ye(e,xg(e))}),box:[...me,...Ae(xg),["bandPadding","sectionPaddingTop",(e,o)=>ye(o,xg(o)).sectionPaddingTop]],parts:[JX,{kind:"core",keep:["columns","logoHeight","grayscale"],rename:{logosPerRow:"columns"},props:kR,slots:TR("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"}},vR={top:24,bottom:24,topPhone:24,bottomPhone:24},eZ={name:"Payment Methods",boxProps:e=>({...ce,direction:"column",...ye(e,vR)}),box:[...me,...Ae(vR)],skip:e=>ro(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:{...D,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:{...kR,look:"cards",grayscale:!1},slots:TR("badges","label")},{kind:"group",name:"Reassurance",props:{...D,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`)"}},PR={Logos:QX,PaymentBadges:eZ};import{mixHex as oZ}from"efficient-shell/format";var ER=e=>e.size==="display",tZ=(e,o)=>{let t=Nl(e,o),r=e.tone!=="plain"&&t?.text&&t.background?oZ(t.text,t.background,.3):null;return r?{color:r}:{}},rZ=(e,o)=>e.tone!=="plain"&&Yo(e.sectionAccent)===null?ko("background")(e,o):{},OR=(e,o)=>({kind:"list",key:"items",name:"Item",flat:!0,when:o,parts:[{kind:"text",key:"text",props:fe,style:e,styleFrom:tZ}]}),aZ={name:"Scrolling Bar",boxProps:(e,o)=>({...ce,...Sa,...Of,...mi[Jn(e.separator)]===""?f_:{},...ye(e,Rl),...rZ(e,o)}),box:[["scrollDirection","scrollDirection",e=>r0(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=>Jn(e)],["borders","sectionBorder",e=>e===!1?void 0:{top:1,bottom:1}],...me,["tone","sectionAccent",(e,o)=>Yo(o.sectionAccent)??sr],...Ae(Rl)],parts:[OR(_f,e=>!ER(e)),OR(u_,ER)],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"}},_R=e=>e?.tone==="muted",nZ={name:"Spec Strip",boxProps:e=>({...ce,...Sa,...Rf,...e.fill==="none"?{sectionBorder:{top:1}}:{},...ye(e,Al)}),box:[...me,...Ae(Al)],parts:[{kind:"list",key:"cells",name:"Cell",flat:!0,parts:[{kind:"text",key:"text",props:K,style:Fl,when:(e,o)=>!_R(o)},{kind:"text",key:"text",props:fe,style:Fl,when:(e,o)=>_R(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"}},RR={Ticker:aZ,SpecStrip:nZ};var sZ="jetbrains-mono",FR="space-grotesk",Vt=(e,o,t={})=>({textStyle:"body-5",font:sZ,size:e,sizePhone:e,letterSpacing:o,lineHeight:1.5,weight:400,...t}),qf=(e,o,t,r)=>({font:FR,size:e,sizePhone:o,case:"upper",weight:500,letterSpacing:t,lineHeight:r}),Xl=(e,o,t,r={})=>({textStyle:"body-1",font:FR,size:e,sizePhone:o,weight:400,case:"none",lineHeight:t,...r}),To=(e,o,t={})=>({kind:"text",key:e,props:K,style:o,...t}),AR=(e,o)=>o?.future===!0,Kf=e=>W_(typeof e?.body=="string"?e.body:""),gg=e=>yt(typeof e.background=="string"?e.background:void 0,Ta.TimelineTrack),Ig=e=>gg(e)===po?e:{...e,background:"transparent"},lZ={name:"Milestone Timeline",skip:e=>Bf(gg(e)),boxProps:(e,o)=>{let t=wa(Ig(e),o);return{...ce,direction:"column",gap:60,sectionBorder:{bottom:1},...vo(e,"TimelineTrack"),...Lf(gg(e),e,o),...t>=0?{sectionAccent:t}:{}}},box:[...me.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>Sr(e,Ig(o),t)],...yr("TimelineTrack")],parts:[{kind:"group",name:"Heading",props:{...D,direction:"row",align:"end",justify:"between",gap:40,share:"content",sectionPaddingBottom:32,sectionBorder:{bottom:1}},parts:[{kind:"group",name:"Title",props:{...D,direction:"row",align:"end",gap:40,share:"content"},parts:[To("eyebrow",Vt(13,.3,{case:"upper",color:"accent",padding:8}),{role:"eyebrow"}),To("title",{textStyle:"heading-2",...qf(79,40,-.03,1)},{role:"heading"})]},To("intro",Xl(14,14,1.5),{props:{...fe,align:"right",maxWidth:360}})]},{kind:"group",name:"Years",props:{...D,direction:"row",share:"equal",gap:0,line:!0},parts:[{kind:"list",key:"entries",name:"Year",props:{...D,...Ef},item:e=>({props:e.future===!0?{upcoming:!0}:{}}),parts:[{kind:"group",name:_l.name,props:{...D,..._l},parts:[To("date",Vt(13,.22,{color:"accent"}),{when:(e,o)=>!AR(e,o)}),To("date",Vt(13,.22,{color:"labels"}),{when:AR}),To("title",{textStyle:"heading-3",...qf(20,20,-.02,1.1)},{role:"heading"})]},To("blurb",Xl(13,13,1.55),{props:fe})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...Ye,align:"right",...Ml(e,o)}),style:Vt(13,.3,{case:"upper"})}],site:(e,o)=>wr({props:Ig(e.props)},o),drop:{...he,...Ce,background:"another colour is the Box's Fill, or a skip if no Fill holds it; 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"}},iZ={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",...vo(e,"Timeline")}),box:[...me,...yr("Timeline")],parts:[{kind:"group",name:"Heading",props:{...D,gap:24},parts:[To("eyebrow",Vt(12,.3,{case:"upper",color:"accent"}),{role:"eyebrow"}),To("title",{textStyle:"heading-2",...qf(72,40,-.03,.94)},{role:"heading"}),To("intro",Xl(14,14,1.6),{props:{...fe,maxWidth:360}}),{kind:"group",name:"Picture",keepEmpty:!0,box:[["imageSrc","bgImage"]],props:{...D,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",...Bo(12,16)},when:e=>typeof e.imageSrc=="string"&&e.imageSrc.trim()!=="",parts:[{kind:"group",name:"Caption",props:{...D,direction:"row",justify:"between",align:"center",gap:12,share:"content",phoneRow:2},parts:[To("imageCaption",Vt(11,.24,{case:"upper",color:"text"})),To("imageMeta",Vt(11,.24,{case:"upper",color:"accent"}),{props:{...K,align:"right"}})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...Ye,...Ml(e,o)}),style:Vt(13,.3,{case:"upper"})}]},{kind:"group",name:"Chapters",props:{...D,gap:48,line:!1},parts:[{kind:"list",key:"entries",name:"Chapter",props:{...D,direction:"row",gap:24,share:"biggerRight",align:"start"},parts:[To("date",Vt(13,.24,{color:"accent"})),{kind:"group",name:"Words",props:{...D,gap:14},parts:[To("title",{textStyle:"heading-3",...qf(24,20,-.02,1.5)},{role:"heading"}),{kind:"block",type:"Text",props:{...K,_partStyles:{text:Xl(17,16,1.6)}},box:[["body","text",(e,o)=>Kf(o)[0]??""]],when:(e,o)=>Kf(o).length>0},{kind:"block",type:"Text",props:{...fe,_partStyles:{text:Xl(17,16,1.6,{paragraphSpacing:14})}},box:[["body","text",(e,o)=>Kf(o).slice(1).join(`
44
-
45
- `)]],when:(e,o)=>Kf(o).length>1}]}]}]}],drop:{...he,...Ce,layout:"Split is the only display converted (see skip); the Box's own arrangement replaces it"}},LR={TimelineTrack:lZ,Timeline:iZ};import{tabletKey as pZ}from"efficient-easel/draw";import{slugify as JRe}from"efficient-shell/format";import{rootIsDark as cZ}from"efficient-shell/format";function YRe(e="auto"){return e==="light"?!0:e==="dark"?!1:!cZ({whenUnset:!0})}function BR(e,o){return Number.isFinite(e)&&Number.isFinite(o)&&!(e===0&&o===0)}function bg(e){let o=Number.parseFloat(e??"");return Number.isFinite(o)?o:0}var dZ=["tall","square","wide"],fZ="tall";function DR(e){return dZ.includes(String(e??""))?String(e):fZ}var eAe={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"},oAe=[{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:""}],uZ=/^https?:\/\//i;function tAe(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:bg(e.lat),lng:bg(e.lng),mapsUrl:uZ.test(o)?o:""}}function yg(e){let o=String(e??"").split(" \xB7 ");return{state:(o[0]??"").trim(),country:(o[1]??"").trim()}}var rAe="other",aAe={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 NR(e){let o=String(e??"").replace(/[^+\d]/g,"");return o?`tel:${o}`:void 0}var jo=e=>typeof e=="string"?e:e==null?"":String(e),wg=e=>Array.isArray(e.locations)?e.locations.map(o=>o??{}):[],Un=e=>jo(e.group),KR=e=>`loc-${e}`,qR=e=>jo(e.state).trim()||yg(jo(e.region)).state,VR=e=>jo(e.country).trim()||yg(jo(e.region)).country,MR=e=>[qR(e),VR(e)].filter(Boolean).join(" \xB7 "),mZ=e=>wg(e).some(o=>jo(o.photo).trim()!==""),hZ=e=>wg(e).some(o=>BR(Number(o.lat),Number(o.lng))),xZ=(e,o)=>wg(e).filter(t=>Un(t)===Un(o)).length,IZ=(e,o)=>xZ(e,o)===1?"wide":DR(e.imageShape),Sg={top:100,bottom:100,topPhone:60,bottomPhone:60},HR=48,pt=(e,o={})=>({textStyle:"body-5",...W("label",e),case:"upper",...o}),Cg={top:1,right:1,bottom:1,left:1},vg={...D,direction:"row",share:"equal",gap:0},gZ=e=>o=>o>bl(o)?{...D,gap:0}:{...vg,...o>1?{phoneRow:e}:{}},bZ={kind:"group",name:"Gallery",props:{...D,gap:20,_hidden:!0},when:mZ,parts:[{kind:"group",name:"Gallery head",props:{...D,direction:"row",justify:"between",align:"end",gap:24,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:16},parts:[Ie("galleryKicker",pt(12,{color:"accent",letterSpacing:.3})),{kind:"text",key:"galleryHint",props:{...fe,align:"right",alignPhone:"left"},style:pt(11,{letterSpacing:.22,alignPhone:"left"})}]},{kind:"group",name:"Groups",props:{...D,gap:24},parts:[{kind:"list",key:"locations",name:"City picture",props:{...D,darken:85,darkenStyle:"bottom",placement:"bottom-left",sectionBorder:Cg,...Bo(12,12)},item:(e,o,t)=>({props:{...jo(e.photo).trim()?{bgImage:jo(e.photo),hover:"mono"}:{},link:`#${KR(o)}`,boxShape:IZ(t,e)}}),parts:[{kind:"text",key:"name",props:K,style:pt(11,{letterSpacing:.22,color:"text"})}],groups:{of:Un,name:"Group",props:{...D,gap:10},head:e=>({label:Un(e[0]??{})}),parts:[Ie("label",pt(11,{color:"accent",letterSpacing:.3}))],itemsName:"Cities",itemsProps:gZ(2),perRow:bl,rowName:"Row",rowProps:{...vg,phoneRow:2}}}]}]},yZ={kind:"group",name:"Words",props:{...D,gap:12,gapPhone:12,...Bo(28,28),sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},parts:[{kind:"group",name:"Name row",props:{...D,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:{...D,gap:6,gapPhone:6},parts:[{kind:"text",key:"name",role:"heading",props:K,style:{textStyle:"heading-3",...W("headingSmall",30),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}},{kind:"block",type:"Text",props:{...K,_partStyles:{text:pt(12,{color:"accent",letterSpacing:.24,lineHeight:1.5})}},box:["region","state","country"].map(e=>[e,"text",(o,t)=>MR(t)]),when:(e,o)=>MR(o??{})!==""}]},{kind:"group",name:"Time zone",props:{...D,sectionBorder:Cg,...Bo(6,10)},parts:[{kind:"text",key:"timezone",props:{...fe,textFit:"line"},style:pt(12,{letterSpacing:.22,lineHeight:1.5})}]}]},{kind:"text",key:"address",props:fe,style:{textStyle:"body-5",fontRole:"heading",...W("body",14),lineHeight:1.5}},{kind:"block",type:"ButtonBlock",props:{...Ye,...jt,variant:"ghost",arrow:!1,_partStyles:{label:pt(13,{letterSpacing:.18,color:"text",lineHeight:24/13})}},box:[["phone","label"],["phone","href",e=>NR(jo(e))??"#"]],when:(e,o)=>jo(o?.phone).trim()!==""},{kind:"text",key:"hours",props:fe,style:pt(12,{letterSpacing:.18,lineHeight:1.7})}]},SZ={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)=>qR(t)]),...["region","country"].map(e=>[e,"country",(o,t)=>VR(t)])]},wZ={kind:"group",name:"Map",props:{...D,sectionBorder:{top:1,right:0,bottom:0,left:0}},parts:[SZ]},CZ={kind:"list",key:"locations",name:"City",props:(e,o)=>({...D,gap:0,justify:"between",sectionBorder:Cg,jumpHighlight:!0,sectionAccent:wa(e,o)>=0?Dl(e.sectionAccent,o):-1}),item:(e,o)=>({props:{anchor:KR(o)}}),parts:[yZ,wZ],groups:{of:Un,name:"Group",props:{...D,gap:20},head:e=>{let o=e[0]??{};return{key:Un(o),groupName:jo(o.groupName),count:`${e.length} location${e.length===1?"":"s"}`}},parts:[{kind:"group",name:"Group head",props:{...D,direction:"row",justify:"between",align:"end",gap:16,share:"content",sectionBorder:{bottom:1},sectionPaddingBottom:16},when:(e,o)=>jo(o?.key).trim()!=="",parts:[Ie("key",pt(13,{color:"accent",letterSpacing:.3})),{kind:"text",key:"groupName",role:"heading",props:K,style:{textStyle:"heading-3",...W("headingSmall",24),case:"upper",weight:500,letterSpacing:-.01}},{kind:"text",key:"count",props:fe,style:pt(12,{letterSpacing:.22})}]}],itemsName:"Cities",itemsProps:e=>({...vg,columns:bl(e),[pZ("columns")]:1})}},zR=pt(10,{letterSpacing:.25}),vZ={kind:"block",type:wt,props:{...D,name:"Credit",direction:"row",justify:"end",align:"center",gap:6,share:"content",wrap:!0},when:hZ,slot:Ct,keepEmpty:!0,parts:[{kind:"block",type:"Text",props:{...fe,text:"Location coordinates \xA9",_partStyles:{text:zR}}},{kind:"block",type:"ButtonBlock",props:{...Ye,...jt,variant:"ghost",arrow:!1,label:"OpenStreetMap contributors",href:"https://www.openstreetmap.org/copyright",_partStyles:{label:{...zR,color:"labels"}}}}]},GR=(e,o)=>Object.fromEntries(o.filter(t=>e[t]!==void 0).map(t=>[t,e[t]])),WR=["sectionPaddingTop","sectionPaddingTopTablet","sectionPaddingTopPhone"],UR=["sectionPaddingBottom","sectionPaddingBottomTablet","sectionPaddingBottomPhone"],$R=e=>e.map(o=>[o,o,(t,r)=>ye(r,Sg)[o]]),jR=["sectionAccent","sectionAccent",Sr],kZ=["gridSpan","_hidden"],TZ={name:"City pictures",skip:e=>yo(e)?`fed by the data source "${yo(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",...GR(ye(e,Sg),WR),sectionPaddingBottom:HR,sectionPaddingBottomPhone:HR,...Ca(e,o)}),box:[...me.filter(e=>e!=="sectionAccent"&&e!=="anchor"),jR,["anchor","anchor",e=>ds(e).trim()?e:"studios"],...$R(WR)],parts:[Q_("sectionNumber","heading","tagline"),bZ],also:[{name:"City maps",boxProps:(e,o)=>({...ce,direction:"column",gap:40,sectionBorder:{bottom:1},sectionPaddingTop:0,sectionPaddingTopPhone:0,...GR(ye(e,Sg),UR),...Ca(e,o)}),box:[...kZ,jR,...$R(UR)],parts:[CZ,vZ]}],reads:{mapTheme:"City maps Box: each Map block's Map theme",imageShape:"City pictures Box: each picture Box's Box shape"},site:wr,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)"}},YR={ContactLocations:TZ};var PZ=["Collections","Events","FAQ","Footprint","GalleryB","LongRead","ProcessSteps","ProductGrid","RelatedProducts"];var kr=(e,o)=>()=>({top:e,topPhone:o}),XR=e=>o=>{let t=vo(o,e).sectionPaddingTop;return{top:t,topPhone:t}},EZ={Collections:kr(120,70),Events:kr(120,70),FAQ:kr(120,70),GalleryB:kr(120,70),FitmentTable:kr(120,80),SpecTable:kr(120,80),LongRead:kr(120,80),FitmentFinder:e=>e.layout==="bar"?{top:32,topPhone:20}:{top:80,topPhone:60},RelatedProducts:kr(0,0),Footprint:XR("Footprint"),ProcessSteps:XR("ProcessSteps"),ProductGrid:e=>({top:U(e.padTop)??120,topPhone:0})};function OZ(e,o={}){let t=Io[e],r=EZ[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=vt(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:pi[e]??e,boxProps:c=>{let d=r(c);return{...ce,direction:"column",gap:J_[ng(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 ZR=Object.fromEntries(PZ.map(e=>[e,OZ(e)]));import{BLOCK_WIDTH_LIMIT as _Z}from"efficient-easel/draw";var Vf={textFit:"line",textFitPhone:"wrap"},sA={minWidth:_Z.min},JR=(e,o,t)=>({...Ie(e,{...o,...Ll}),props:{...K,align:"right",...Vf,...t}}),lA={top:1,bottom:0},Tg=(e,o,t,r)=>({kind:"group",name:e,props:{...D,sectionPaddingBottom:o,sectionPaddingBottomPhone:t},parts:[r]}),QR={widthFit:"fill",...sA},eA={top:100,bottom:60,topPhone:60,bottomPhone:40},RZ={...W("label",13),letterSpacing:.22,lineHeight:1.8},oA={textStyle:"heading-1",...$o("headingLarge",56,8,128),case:"upper",weight:500,lineHeight:.88,letterSpacing:-.04},tA=e=>e.titleLevel===2,AZ=()=>({name:"Document Header",boxProps:e=>({...ce,direction:"column",gap:0,sectionBorder:{bottom:1},...ye(e,eA)}),box:[...me,...Ae(eA)],parts:[{kind:"group",name:"Header",props:{...D,direction:"row",align:"end",justify:"between",gap:40,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[Tg("Eyebrow",12,0,{...Ie("eyebrow",W("label",13)),props:{...K,...Vf}}),{kind:"text",key:"title",role:"heading",props:{...K,tag:"h1",...QR},style:oA,when:e=>!tA(e)},{kind:"text",key:"title",role:"heading",props:{...K,tag:"h2",...QR},style:oA,when:tA},{kind:"group",name:"Details",props:{...D,align:"stretch",gap:0,gapPhone:0,sectionPaddingBottom:12,sectionPaddingBottomPhone:0},parts:[{kind:"list",key:"meta",name:"Detail",flat:!0,parts:[Bl("label","value",RZ,Vf)]}]}]},{kind:"group",name:"Deck",props:{...D,sectionBorder:lA,sectionPaddingTop:32},parts:[{kind:"text",key:"deck",props:{...fe,maxWidth:760},style:{textStyle:"body-1",fontRole:"accent",...W("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"}}),rA={top:80,bottom:40,topPhone:60,bottomPhone:32},FZ={...W("label",13),letterSpacing:.18,lineHeight:1.8},aA={...W("label",13),letterSpacing:.22,lineHeight:1.9},LZ=()=>({name:"Issue Header",boxProps:e=>({...ce,direction:"column",gap:0,sectionBorder:{bottom:1},...ye(e,rA)}),box:[...me,...Ae(rA)],parts:[{kind:"group",name:"Top",props:{...D,direction:"row",align:"end",justify:"between",gap:60,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[Tg("Eyebrow",14,14,Ie("eyebrow",W("label",14))),{kind:"group",name:"Issue",props:{...D,align:"end",gap:0,gapPhone:0,sectionPaddingBottom:14},parts:[{kind:"list",key:"issueMeta",name:"Issue line",flat:!0,parts:[Bl("lead","rest",FZ)]}]}]},{kind:"group",name:"Bottom",props:{...D,direction:"row",align:"start",justify:"between",gap:60,gapPhone:16,share:"content",sectionBorder:lA,sectionPaddingTop:32},parts:[{kind:"text",key:"lead",props:{...K,maxWidth:720,...sA},style:{textStyle:"body-1",fontRole:"heading3",...W("headingSmall",20),lineHeight:1.5,letterSpacing:-.005,paragraphSpacing:16}},{kind:"group",name:"In this issue",props:{...D,align:"stretch",gap:0},parts:[Tg("Heading",6,6,{kind:"text",key:"issueHeading",props:{...K,align:"right",...Vf},style:{textStyle:"body-1",fontRole:"heading",...W("body",18),weight:400,letterSpacing:-.01,lineHeight:1.9,...Ll}}),{kind:"group",name:"Lines",props:{...D,align:"stretch",gap:0},parts:[{kind:"list",key:"issueList",name:"Line",flat:!0,parts:[JR("text",{color:"labels",...aA})]}]},JR("issueTotal",aA)]}]}],drop:{...he,...Ce}}),nA={top:24,bottom:24,topPhone:16,bottomPhone:16},kg={color:"labels",...W("label",13),letterSpacing:.2},iA=e=>(Array.isArray(e.items)?e.items:[]).filter(o=>o&&typeof o.label=="string"&&o.label.trim()!==""),Pg=(e,o)=>o!==void 0&&iA(e).at(-1)===o,cA=(e,o)=>o!==void 0&&iA(e).includes(o),BZ=(e,o)=>cA(e,o)&&!Pg(e,o)&&ro(o?.href),DZ=()=>({name:"Breadcrumb",skip:e=>ro(e.meta)?'a trailing note after "\xB7" needs a second mark; none live':void 0,boxProps:e=>({...ce,...Sa,gap:16,gapPhone:16,separator:"slash",sectionBorder:{bottom:1},...ye(e,nA)}),box:[...me,...Ae(nA)],parts:[{kind:"list",key:"items",name:"Crumb",flat:!0,parts:[{kind:"button",key:"label",href:"href",variant:"ghost",when:BZ,props:{...Ye,...jt,icon:"none"},style:kg},{...Ie("label",kg),when:(e,o)=>cA(e,o)&&!Pg(e,o)&&!ro(o?.href)},{...Ie("label",{...kg,color:"text"}),when:Pg}]}],drop:{...he,...Ce,meta:"a node that stores a note is skipped (`skip`); an empty one draws nothing"}}),dA={DocMasthead:AZ(),Masthead:LZ(),Breadcrumb:DZ()};import{jsx as Pa,jsxs as Og}from"react/jsx-runtime";import{slugify as NZ}from"efficient-shell/format";import{jsx as Eg,jsxs as fA}from"react/jsx-runtime";var RAe="sticky top-[120px]";var uA=(e,o)=>e?{[nd]:o}:{},pA=(e,o)=>sd(e?.[Ih(o)]?.role,Vd[o],Ma),mA=120;function hA({title:e,entries:o,stickyTop:t,sticky:r=!0,editing:a=!1,partStyles:n}){return fA("aside",{className:`${r?"sticky ":""}flex flex-col self-start max-[900px]:static`,style:r?{top:t}:void 0,children:[e&&Eg("h4",{className:"mb-[18px] font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:Wo(e)}),o.map((s,l)=>fA("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:[Eg("span",{...uA(a,"entry"),style:pA(n,"entry"),children:Wo(s.label||"Section")}),Eg("span",{...uA(a,"number"),style:pA(n,"number"),className:"text-accent",children:ln(l)})]},`${l}-${s.anchor}`))]})}function MZ(e,o){return NZ(e)||`section-${o+1}`}var _g=e=>typeof e=="string"&&e.trim()!=="";function Rg(e){return(e??[]).filter(o=>_g(o.heading)||_g(o.label)||_g(o.body))}function Ag(e){let o=new Set;return e.map((t,r)=>{let a=MZ(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=ns(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 HZ=()=>[{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.")}],zZ=mA;function VAe({tocTitle:e,sections:o,editing:t=!1,stickyTop:r=zZ}){let a=Rg(o);if(a.length===0&&!t)return null;let n=a.length===0&&t?HZ():a,s=Ag(n);return Pa("section",{className:"relative z-[2] bg-bg",children:Og("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:[Pa(hA,{title:e,entries:n.map((l,c)=>({label:l.label||"Section",anchor:s[c]})),stickyTop:r}),Pa("div",{className:"flex flex-col gap-16",children:n.map((l,c)=>Og("article",{id:s[c],className:"flex flex-col gap-[18px]",style:{scrollMarginTop:r},children:[Og("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:[ln(c)," \xB7 ",Wo(l.label||"Section")]}),l.heading&&Pa("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:Wo(l.heading)}),Fg(l.body??"").map((d,p)=>d.type==="ul"?Pa("ul",{className:"flex max-w-[680px] list-none flex-col gap-2.5 pl-0",children:d.items.map((m,f)=>Pa("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:Wo(m)},f))},p):Pa("p",{className:"max-w-[680px] font-serif text-[length:var(--size-body,17px)] leading-[1.7] text-fg-dim",children:Wo(d.text)},p))]},s[c]))})]})})}var xA={top:80,bottom:80,topPhone:60,bottomPhone:60},IA=18,gA=18,bA=8,GZ=10,Lg=e=>typeof e=="string"&&e.trim()!=="",yA=e=>Rg(e.sections),WZ=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}),Bg={textStyle:"body-5",...W("label",12),case:"upper",letterSpacing:.3,color:"accent",lineHeight:1.5},SA={textStyle:"body-1",fontRole:"accent",...W("body",17)},UZ=[Ie("label",Bg),{...Ie("title",Bg),when:(e,o)=>!Lg(o?.label)},{kind:"block",type:"Text",when:(e,o)=>!Lg(o?.label)&&!Lg(o?.title),props:{...K,text:"Section",_partStyles:{text:Bg}}},{kind:"group",name:"Heading",props:{...D,sectionPaddingBottom:bA,sectionPaddingBottomPhone:bA},parts:[{kind:"group",name:"Heading line",props:{...D,sectionBorder:{bottom:1},sectionPaddingBottom:gA,sectionPaddingBottomPhone:gA},parts:[{kind:"text",key:"heading",role:"heading",props:K,style:{textStyle:"heading-2",...$o("headingMedium",28,3.5,44),case:"upper",weight:500,lineHeight:1.04,letterSpacing:-.025}}]}]},{kind:"list",key:"body",name:"Body",flat:!0,of:WZ,parts:[{kind:"text",key:"text",props:fe,style:{...SA,lineHeight:1.7},when:(e,o)=>o?.kind==="p"},{kind:"text",key:"text",props:fe,style:{...SA,lineHeight:1.65,paragraphSpacing:GZ},when:(e,o)=>o?.kind==="ul"}]}],$Z={name:"Document Text",boxProps:e=>({...ce,direction:"row",gap:80,gapPhone:40,sectionBorder:{bottom:1},...ye(e,xA)}),box:["anchor","sectionAccent","_hidden",...Ae(xA)],parts:[{kind:"block",type:"Contents",props:e=>({title:e.tocTitle??"",sticky:!0,widthFit:"fixed",width:240,widthFitPhone:"fill"})},{kind:"group",name:"Sections",props:{...D,gap:64,gapPhone:64,widthFit:"fill"},parts:[{kind:"list",key:"sections",name:"Section",of:e=>yA(e),props:{...D,gap:IA,gapPhone:IA},item:(e,o,t)=>({props:{anchor:Ag(yA(t))[o]??`section-${o+1}`}}),parts:UZ}]}],reads:{tocTitle:"the Contents block's Heading"},drop:{...he,stickyTop:"the Contents block draws DocBody's default (120px); 0 live nodes store it"}},wA={DocBody:$Z};var jZ="overlay",KZ=[{label:"Copy over image",value:"overlay"},{label:"Copy above image",value:"stacked"}];function CA(e){return oo(KZ,jZ,e)}var oFe={desktop:40,mobile:45,min:20,max:80,step:5};function tFe(e,o){return`${typeof e=="number"?e:o}%`}var vA=(e,o)=>{let t=U(e),r=U(o);return{...t===void 0?{}:{size:t},...r===void 0?{}:{sizePhone:r}}},qZ=e=>CA(e.layout)==="stacked",kA=e=>Math.min(Math.max(U(e.overlay)??60,0),100),Yf=e=>U(e)??100,VZ={textStyle:"heading-1",sizeToken:{...$o("headingLarge",48,7,96).sizeToken,pxPhone:36},weight:500,lineHeight:.95,letterSpacing:-.03},YZ=[Ie("eyebrow",W("label",14)),...[!0,!1].map(e=>({kind:"text",key:"title",role:"heading",props:K,style:{...VZ,case:e?"upper":"none"},styleFrom:o=>vA(o.titleSizeDesktop,o.titleSizeMobile),when:o=>o.uppercase===!0===e})),{kind:"text",key:"body",props:{...fe,maxWidth:560},style:{textStyle:"body-1",...W("body",17,16),lineHeight:1.6,paragraphSpacing:24},styleFrom:e=>vA(e.bodySizeDesktop,e.bodySizeMobile)},{kind:"group",name:"Button",props:{...D,align:"start",sectionPaddingTop:8,sectionPaddingTopPhone:8},parts:[{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:Ye}]}],TA=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)`,XZ=()=>({name:"Scroll-Over Text",skip:e=>qZ(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",...Hl,placement:"left",darken:kA(e),darkenStyle:"even",sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:Yf(e.heightDesktop),sectionHeightModePhone:"fixed",sectionHeightUnitPhone:"%",sectionHeightValuePhone:Yf(e.heightMobile)}),box:[...me.filter(e=>!String(typeof e=="string"?e:e[0]).startsWith("sectionHeight")),["imageSrc","bgImage"],["imageSrcMobile","bgImagePhone"],["overlay","darken",(e,o)=>kA(o)],["heightDesktop","sectionHeightValue",e=>Yf(e)],["heightMobile","sectionHeightValuePhone",e=>Yf(e)]],parts:YZ,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:TA("Button color"),buttonTextColor:TA("Button text color"),...he}}),OA={textStyle:"heading-2",...W("headingMedium",56,36),weight:400,lineHeight:1.05,letterSpacing:-.03},ZZ={textStyle:"body-1",...W("body",16),lineHeight:1.7},_A=e=>({kind:"text",key:"body",props:{...fe,maxWidth:520},style:{...ZZ,paragraphSpacing:e}}),Zf={top:0,bottom:0,topPhone:0,bottomPhone:0},Dg=(e,o)=>typeof e.sectionHeightMode=="string"&&e.sectionHeightMode!=="auto"?{}:{sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:o,sectionHeightModePhone:"auto"},JZ=(e,o)=>{let t=Dg(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"}},RA={boxShapePhone:"landscape"},AA="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)",QZ=(e,o)=>({[e]:o,[`${e}Phone`]:o}),eJ={textStyle:"heading-2",...W("headingMedium",40),weight:500,case:"none",lineHeight:1,letterSpacing:-.02},PA=e=>(Array.isArray(e.stats)?e.stats:[]).filter(o=>o&&(String(o.value??"").trim()!==""||String(o.label??"").trim()!=="")),oJ=()=>({name:"Brand Text",boxProps:(e,o)=>({...ce,...ko("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...ye(e,Zf),...Dg(e,100)}),box:[...me,...Ae(Zf)],parts:[{kind:"group",name:"Words",props:(e,o)=>({...D,justify:"center",gap:28,gapPhone:28,sectionBorder:zl({right:1}),sectionBorderPhone:zl({}),...Hl,sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60,sectionPaddingRight:Wn(o)}),parts:[Ie("eyebrow",W("label",14)),{kind:"text",key:"heading",role:"heading",props:K,style:{...OA,case:"none"},mark:"accentItalic"},_A(28),{kind:"group",name:"Stats",props:{...D,sectionPaddingTop:16,sectionPaddingTopPhone:16},parts:[{kind:"group",name:"Figures",props:e=>({...D,direction:"row",share:"equal",gap:24,gapPhone:24,maxWidth:520,phoneRow:Math.min(Math.max(PA(e).length,1),3),...QZ("sectionBorder",zl({top:1})),sectionPaddingTop:28,sectionPaddingTopPhone:28}),parts:[{kind:"list",key:"stats",name:"Stat",of:PA,props:{...D,gap:4,gapPhone:4},parts:[{kind:"text",key:"value",props:Gn,style:eJ},Ie("label",{...W("label",13),color:"labels",letterSpacing:.2})]}]}]}]},jI("Picture","imageSrc",RA)],drop:{...he,grayscale:AA,...Ce}}),Xf=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}},tJ=e=>e.textAlign==="center"?"center":e.textAlign==="right"?"end":"stretch",rJ=e=>Math.min(Math.max(U(e.overlay)??60,0),100),FA=e=>typeof e=="string"&&e.trim()!=="",aJ={...Ye,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},EA=e=>({...jI("Picture","imageSrc",(o,t)=>({...FA(o.imageSrc)?{darken:40,darkenStyle:"even"}:{},placement:"center",...RA,sectionBorder:zl(e?{left:1}:{right:1}),...LA(e?"left":"right",Wn(t))}),[{kind:"button",key:"imageBtnText",href:"imageBtnHref",variant:"ghost",props:aJ,style:{textStyle:"body-5",...W("label",13,12),case:"upper",letterSpacing:.18}}]),when:o=>o.reverse===!0===e}),LA=(e,o)=>{let t=Math.max(60-o,0);return{sectionPaddingLeft:e==="left"?60:t,sectionPaddingRight:e==="right"?60:t}},nJ={kind:"group",name:"Words",props:(e,o)=>{let t=e.reverse===!0;return{...D,justify:"center",align:tJ(e),placement:e.textAlign==="center"?"center":e.textAlign==="right"?"right":"left",...JZ(e,72),gap:24,gapPhone:24,...FA(e.textBgSrc)?{darken:rJ(e),darkenStyle:"even"}:{},...Hl,sectionPaddingTop:100,sectionPaddingBottom:100,...LA(t?"right":"left",Wn(o)),sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60}},box:[["textBgSrc","bgImage"]],parts:[{...Ie("eyebrow",W("label",14)),styleFrom:Xf},{kind:"text",key:"title",role:"heading",props:K,style:OA,styleFrom:e=>({case:e.uppercase===!0?"upper":"none",...Xf(e)})},{..._A(24),styleFrom:Xf},{kind:"group",name:"Button",props:{...D,sectionPaddingTop:8,sectionPaddingTopPhone:8},parts:[{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:e=>{let o=Xf(e);return{...Ye,...o.align?{align:o.align}:{},...o.alignPhone?{alignPhone:o.alignPhone}:{}}}}]}]},sJ=()=>({name:"Image & Text Split",boxProps:(e,o)=>({...ce,...ko("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...ye(e,Zf),...Dg(e,72)}),box:[...me,...Ae(Zf)],parts:[EA(!1),nJ,EA(!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:AA,...he,...Ce}}),BA={IntroBleed:XZ(),Manifesto:oJ(),Split:sJ()};var DA={top:72,bottom:72,topPhone:72,bottomPhone:72},lJ={name:"Editorial Text",boxProps:e=>({...ce,direction:"column",gap:28,gapPhone:28,sectionBorder:{top:1},...ye(e,DA)}),box:[["topBorder","sectionBorder",e=>e===!1?void 0:{top:1}],...me,...Ae(DA)],parts:[vt("Prose"),{kind:"text",key:"body",props:fe,style:{textStyle:"body-1",...W("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)"}},NA={buttonPaddingTop:20,buttonPaddingBottom:20,buttonPaddingLeft:28,buttonPaddingRight:28},MA=(e,o)=>o?.variant==="primary",HA=(e,o)=>({kind:"list",key:"buttons",name:"Button",flat:!0,when:e,parts:[{kind:"button",key:"label",href:"href",when:MA,variant:"primary",style:{letterSpacing:.3},props:{...Ye,...NA,...o}},{kind:"button",key:"label",href:"href",when:(t,r)=>!MA(t,r),variant:"ghost",style:{letterSpacing:.3},props:(t,r)=>({...Ye,...NA,...o,...Ml(t,r)})}]}),Jf=e=>ro(e.title),iJ={name:"Call-to-Action Heading",boxProps:e=>({...ce,direction:"row",align:"center",justify:Jf(e)?"between":"end",gap:60,gapPhone:60,share:"content",sectionBorder:{bottom:1},...vo(e,"TitleWithButtons")}),box:[...me,...yr("TitleWithButtons")],parts:[{kind:"group",name:"Title",props:{...D,maxWidth:1e3,widthFitPhone:"fill"},parts:[{kind:"text",key:"title",role:"heading",props:K,style:{textStyle:"heading-1",...$o("headingLarge",48,7,108),case:"upper",lineHeight:.94,letterSpacing:-.035}}]},{kind:"group",name:"Buttons",props:e=>({...D,gap:14,gapPhone:14,widthFitPhone:"fill",...Jf(e)?{minWidth:280,minWidthPhone:0}:{}}),parts:[HA(Jf,{widthFit:"fill",iconPosition:"end"}),HA(e=>!Jf(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 cJ(e){let{siteGutter:o,siteGutterPhone:t}=e.site??{},r=Wn(e),a=Math.min(20,od(t)??td(o));return{sectionPaddingLeft:r,sectionPaddingRight:r,sectionPaddingLeftPhone:a,sectionPaddingRightPhone:a}}var zA={top:40,bottom:64,topPhone:24,bottomPhone:36},dJ={name:"Section Header",boxProps:(e,o)=>({...ce,direction:"column",gap:0,...ye(e,zA),...cJ(o)}),box:[...me,...Ae(zA)],parts:[vt("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"}},GA={...D,direction:"row",share:"bigLeft",gap:30},WA={...D,sectionPaddingLeft:30,sectionPaddingLeftPhone:0},UA=(e,o,t)=>({kind:"group",name:e,props:o,parts:[t]}),fJ={name:"Lead Text",boxProps:e=>({...ce,direction:"column",gap:40,gapPhone:40,sectionBorder:{bottom:1},...vo(e,"ParagraphsA")}),box:[...me,...yr("ParagraphsA")],parts:[{kind:"group",name:"Numbers",props:{...GA,gapPhone:24,sectionBorder:{bottom:1},sectionPaddingBottom:40,sectionPaddingBottomPhone:40},parts:[{kind:"group",name:"Eyebrow",props:{...D,sectionPaddingTop:5,sectionPaddingBottom:1,sectionPaddingTopPhone:5,sectionPaddingBottomPhone:1},parts:[Ie("eyebrow",{color:"labels",...W("label",12),letterSpacing:.24})]},UA("Stats column",D,{kind:"group",name:"Stats",props:{...WA,gap:0,gapPhone:0},parts:[{kind:"list",key:"stats",name:"Stat",flat:!0,parts:[Bl("value","label",{...W("label",13),letterSpacing:.18,lineHeight:1.8})]}]})]},{kind:"group",name:"Words",props:{...GA,gapPhone:28},parts:[{kind:"group",name:"Lead",props:D,parts:[{kind:"group",name:"Measure",props:{...D,maxWidth:780},parts:[{kind:"text",key:"lead",props:K,style:{textStyle:"heading-3",...W("headingSmall",22,20),weight:400,case:"none",lineHeight:1.45,letterSpacing:-.005}}]}]},UA("Note column",{...D,justify:"end",widthFit:"fill"},{kind:"group",name:"Founders",props:{...WA,gap:8,gapPhone:8},parts:[{kind:"group",name:"Note",props:{...D,gap:6,gapPhone:6},parts:[{kind:"text",key:"foundersHeading",props:K,style:{textStyle:"body-1",fontRole:"heading",...W("body",18,16),weight:500,letterSpacing:-.01,lineHeight:1.7}},{kind:"text",key:"foundersBody",props:fe,style:{textStyle:"body-5",fontRole:"heading",...W("body",14,12),lineHeight:1.7}}]},Ie("attribution",{...W("label",12,10),letterSpacing:.24,lineHeight:1.7})]})]}],drop:{...he}},$A={top:24,bottom:24,topPhone:24,bottomPhone:24},uJ={name:"Banner",boxProps:e=>({...ce,direction:"column",gap:0,...ye(e,$A)}),box:[...me,"contained",...Ae($A)],parts:[{kind:"group",name:"Card",keepEmpty:!0,props:{...D,gap:28,placement:"top-left",darken:60,darkenStyle:"even",sectionBorder:{width:1},...Bo(64,40,40,24)},box:[["imageSrc","bgImage"],["overlay","darken",e=>Math.min(Math.max(U(e)??60,0),100)]],parts:[{kind:"group",name:"Words",props:{...D,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:Ye}]}],drop:{...he,...Ce}},Ng={Prose:lJ,TitleWithButtons:iJ,SectionHeader:dJ,ParagraphsA:fJ,Banner:uJ};function kFe(){zo(Ng),zo(CR),zo(PR),zo(gR),zo(RR),zo(LR),zo(YR),zo(ZR),zo(dA),zo(wA),zo(BA)}import{isNodeList as pJ}from"efficient-easel/data";var RFe=Object.keys(Ng);function jA(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]=pJ(n)?n.map(s=>jA(s,o,t)):n;return r.id=t(e.type),{type:e.type,props:r}}function Mg(e,o,t=0){return(r,a)=>{let{nodes:n}=_I({type:e,props:{...r(e),id:a(e)}},o);return jA(n[t],r,a)}}function mJ(e,o){if(!d1(e,o))return null;let t=Cf(e);return t?Mg(e,t):null}function Qf(e,o=wl){return h_(e)??mJ(e,o)}import{blockTypesIn as NF}from"efficient-easel/screen/lib/document/block-types-in";import{jsx as mt,jsxs as AF}from"react/jsx-runtime";import{createContext as pQ,useContext as mQ,useState as hQ}from"react";import{jsx as $n,jsxs as rF}from"react/jsx-runtime";import{useEffect as Gg,useRef as BJ,useState as Zl}from"react";import{jsx as Ea}from"react/jsx-runtime";import{Component as gJ,createContext as bJ,lazy as zFe,Suspense as GFe,useContext as yJ}from"react";var hJ="hrefRewrite";function xJ(){return Qt("efficient.link-href-rewrites",()=>({rewrites:new Map,count:0,missed:new Set}))}function IJ(){return typeof process<"u"&&!0}function LFe(e){let o=e?.[hJ];return typeof o=="string"?o.trim():""}function KA(e){if(!e)return null;let o=xJ(),t=o.rewrites.get(e);return!t&&!IJ()&&o.missed.add(e),t??null}var SJ={Link:Pb,Image:Tb},qA=bJ(SJ);function jFe({runtime:e,children:o}){return Ea(qA.Provider,{value:e,children:o})}function VA(){return yJ(qA)}function KFe({hrefRewrite:e,...o}){let{Link:t}=VA(),r=KA(e);return r?Ea(Hg,{name:r.name,href:o.href,fallback:Ea(t,{...o}),children:Ea(wJ,{Link:t,rewrite:r.rewrite,...o})},r.key):Ea(t,{...o})}function wJ({Link:e,rewrite:o,...t}){let r=ee(o(t.href)),a=r&&Ly(r)?r:t.href;return Ea(e,{...t,href:a})}var Hg=class extends gJ{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 YA(e){let{Image:o}=VA();return Ea(o,{...e})}import{jsx as XA,Fragment as CJ,jsxs as vJ}from"react/jsx-runtime";import{useEffect as kJ,useRef as ZA,useState as TJ}from"react";var PJ="#t=0.001",EJ=2;function OJ(e,o){if(e.readyState<EJ||!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 JA({src:e,objectPosition:o="50% 50%",onError:t}){let r=ZA(null),a=ZA(null),[n,s]=TJ(!1);return kJ(()=>{let l=r.current,c=a.current;if(n||!l||!c)return;let d=()=>{OJ(l,c)&&s(!0)};return d(),l.addEventListener("loadeddata",d),l.addEventListener("seeked",d),()=>{l.removeEventListener("loadeddata",d),l.removeEventListener("seeked",d)}},[n]),vJ(CJ,{children:[XA("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&&XA("video",{ref:r,src:`${e}${PJ}`,muted:!0,playsInline:!0,preload:"auto",className:"hidden",onError:t})]})}import{imageCopyUrl as eF,imageSrcSet as _J}from"efficient-shell/image-copies";var QA;function zg(){return QA===void 0?{}:{host:QA}}var JFe="(max-width: 800px) 100vw, min(100vw, 1600px)";function oF(e,{fallbackWidth:o=1280,maxWidth:t}={}){let r=_J(e,{...zg(),...t===void 0?{}:{maxWidth:t}});return r?{src:eF(e,o,zg()),srcSet:r}:{src:e}}function QFe(e){let o=eF(e,1920,zg());return o===e?`url(${e})`:`url("${o}")`}import{formatFocal as RJ,parseFocal as AJ}from"efficient-shell/format";var FJ="sf-focus-phone",LJ="--sf-focus-phone";function tF(e){if(typeof e!="string"||!/^\s*-?\d+(\.\d+)?%\s+-?\d+(\.\d+)?%\s*$/.test(e))return{className:"",style:{}};let{x:o,y:t}=AJ(e);return{className:FJ,style:{[LJ]:RJ(o,t)}}}var DJ=.5;function Jl({videoSrc:e,posterSrc:o,showVideo:t=!0,playbackRate:r=DJ,objectPosition:a="50% 50%",objectPositionPhone:n,quiet:s=!1}){let l=tF(n),c=o||"",d=e||"",[p,m]=Zl(!1),[f,x]=Zl(!1),[g,y]=Zl(!1),[k,O]=Zl(!1),[w,I]=Zl(!1),C=BJ(null);Gg(()=>{m(!1),x(!1),y(!1),O(!1)},[e,o]),Gg(()=>{if(typeof window>"u")return;let E=()=>{let L=window;L.requestIdleCallback?L.requestIdleCallback(()=>I(!0),{timeout:2e3}):setTimeout(()=>I(!0),800)};if(document.readyState==="complete"){E();return}return window.addEventListener("load",E,{once:!0}),()=>window.removeEventListener("load",E)},[]),Gg(()=>{let E=C.current;if(!E)return;let L=()=>{E.playbackRate=r};return L(),E.addEventListener("loadedmetadata",L),()=>E.removeEventListener("loadedmetadata",L)},[e,r]);let v=Eb(c),A=c&&v&&!f?oF(c):{src:c};return rF("div",{className:"absolute inset-0 z-[1]",children:[$n("div",{className:"absolute inset-0",style:{background:"var(--site-surface)"}}),c&&(v?$n("img",{src:A.src,...A.srcSet?{srcSet:A.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:()=>A.srcSet?x(!0):m(!0)},c):$n(YA,{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:()=>m(!0)},c)),t&&!s&&d&&w&&!g&&rF("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:[Ob(d)&&$n("source",{src:d.replace(/\.mp4$/,".av1.mp4"),type:'video/mp4; codecs="av01.0.08M.10"'}),$n("source",{src:d,type:"video/mp4"})]},d),t&&s&&d&&w&&!k&&(!c||p)&&$n(JA,{src:d,objectPosition:a,onError:()=>O(!0)},d)]})}import{Fragment as dF,jsx as Po,jsxs as $g}from"react/jsx-runtime";import{MOTION_TIMING as NJ}from"efficient-shell/format";var lF="grayscale(1) contrast(1.03)",uLe="Black and white";function MJ(e){return e===!0?{filter:lF}:{}}function HJ(e){let{filter:o}=MJ(e);return o?{style:{filter:o}}:{}}var _a="sf-photo-grayscale",Ug="data-sf-photo-host",aF={duration:"--sf-photo-hover-duration",delay:"--sf-photo-hover-delay"},ru=`@media (hover:hover){.${_a}{filter:${lF};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))}.${_a}:hover,[data-sf-photo-host]:hover .${_a}{filter:none}}@media (hover:hover) and (prefers-reduced-motion:reduce){.${_a}{transition:none}}`;function iF(e){let o=NJ.hover,t={...e.duration!==o.duration.default?{[aF.duration]:`${e.duration}s`}:{},...e.delay!==o.delay.default?{[aF.delay]:`${e.delay}s`}:{}};return Object.keys(t).length?t:void 0}function cF(e,o,t){if(e===!0)return HJ(!0);if(t?.kind==="mono"){let r=iF(t);return{className:_a,sheet:ru,...r?{style:r}:{}}}return e===!1?{}:o===!0?{className:_a}:{}}var Oa="sf-photo-next",nF="data-sf-repeat",Wg="sf-photo-zoom",zJ="--sf-photo-zoom",pLe="sf-photo-wash",eu="sf-photo-wash-rest",Ql="sf-photo-wash-hover",ou="sf-photo-frame",tu=(e,o)=>{let t=`:not([${nF}]:not(:hover) .${e})`;return`${o},[${nF}]:hover .${e}${t},[${Ug}]:hover .${e}${t}`},sF=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))`,GJ=`.${Oa}{opacity:0}.${Ql}{opacity:0}@media (hover:hover){.${Oa},.${eu},.${Ql}{transition:${sF("opacity")}}${tu(Oa,`.${Oa}:hover,.${ou}:hover .${Oa}`)},${tu(Ql,`.${ou}:hover .${Ql}`)}{opacity:1}${tu(eu,`.${ou}:hover .${eu}`)}{opacity:0}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.${Wg}{transition:${sF("transform")}}${tu(Wg,`.${ou}:hover .${Wg}`)}{transform:scale(var(${zJ}))}}@media (hover:hover) and (prefers-reduced-motion:reduce){.${Oa},.${eu},.${Ql}{transition:none}}`;function mLe(e){if(e?.kind!=="nextImage")return null;let o=iF(e);return{className:Oa,sheet:GJ,...o?{style:o}:{}}}function hLe(e){return e===!0?{[_a]:ru}:{}}import{hidableText as WJ}from"efficient-easel/draw";var UJ={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"},$J={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 fF(e){let o=e.isVideo&&Uy(e.videoSource)==="youtube",t=e.isVideo&&$y(e.videoPlayback)==="click",r=o?jy(WJ(e.youtubeUrl)):null,a=Td(e.mediaLayout);return{fromYouTube:o,onClick:t,youTubeId:r,backgroundFile:e.isVideo&&!o&&!t,desktopLayout:a,phoneLayout:ex(e.mediaLayoutPhone,a),twoPictures:!e.isVideo&&Ks(e)>1}}function ei(e,o){return Dd(En({_partMotion:e},o))}function jn(e,o){return cF(void 0,void 0,Fk(En({_partMotion:e},o)))}function uF(e){return ia.some(o=>jn(e,o).className)?{hostAttrs:{[Ug]:""},sheet:ru}:{}}function au({treatment:e,children:o}){return e.className?Po("div",{className:`absolute inset-0 ${e.className}`,...e.style?{style:e.style}:{},children:o}):Po(dF,{children:o})}function nu({color:e,opacity:o,passClicks:t=!0}){return o>0?Po("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 su({part:e,editing:o,marked:t=!0,entrance:r,className:a,children:n}){let s=o&&t?{[zP]:e}:void 0;return r?Po(VI,{desktop:r.desktop,phone:r.phone,editing:o,boxClass:a,boxAttrs:s,children:n}):Po("div",{className:a,...s,children:n})}function pF({partMotion:e,editing:o,children:t}){let r=ei(e,"media"),a=jn(e,"media"),n=a.className?Po("div",{className:`absolute inset-0 z-[1] ${a.className}`,...a.style?{style:a.style}:{},children:t}):t;return r?Po(VI,{desktop:r.desktop,phone:r.phone,editing:o,boxClass:"absolute inset-0 z-[1]",children:n}):Po(dF,{children:n})}function mF({desktopLayout:e,phoneLayout:o,editing:t,marked:r=!0,partMotion:a,first:n,second:s}){return $g("div",{className:`absolute inset-0 z-[1] grid ${UJ[o]} ${$J[e]}`,"data-hero-layout":e,"data-hero-layout-phone":o,children:[Po(su,{part:"image",editing:t,marked:r,entrance:ei(a,"image"),className:"relative overflow-hidden",children:$g(au,{treatment:jn(a,"image"),children:[Po(Jl,{posterSrc:Jt(n.src),showVideo:!1,objectPosition:n.objectPosition,objectPositionPhone:n.objectPositionPhone}),Po(nu,{color:n.tintColor,opacity:n.tintOpacity})]})}),Po(su,{part:"image2",editing:t,marked:r,entrance:ei(a,"image2"),className:`relative overflow-hidden${o==="one"?" max-[719px]:hidden":""}${e==="one"?" view-tablet:hidden":""}`,children:$g(au,{treatment:jn(a,"image2"),children:[Po(Jl,{posterSrc:Jt(s.src),showVideo:!1,objectPosition:s.objectPosition,objectPositionPhone:s.objectPositionPhone}),Po(nu,{color:s.tintColor,opacity:s.tintOpacity})]})})]})}import{jsx as Ra,Fragment as jJ,jsxs as KJ}from"react/jsx-runtime";import{useEffect as qJ,useState as VJ}from"react";import{PlaySolidIcon as YJ}from"efficient-shell/icons/efficient-looks";function hF({youTubeId:e,ownPoster:o,background:t,editing:r}){let[a,n]=VJ("large");return qJ(()=>n("large"),[e]),e?KJ(jJ,{children:[!o&&a!=="none"&&Ra("img",{src:a==="large"?Ky(e):qy(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&&Ra("div",{className:"pointer-events-none absolute inset-0 z-[3] overflow-hidden [container-type:size]","aria-hidden":"true",children:Ra("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 xF({youTubeId:e,fileSrc:o,playing:t,onPlay:r,editing:a}){return!e&&!o?null:t&&!a?e?Ra("iframe",{src:Zu(e,"click"),title:Ju,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"}):Ra("video",{src:o,controls:!0,autoPlay:!0,playsInline:!0,className:"absolute inset-0 z-[6] h-full w-full bg-overlay-scrim object-contain"}):Ra("button",{type:"button","aria-label":Ju,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:Ra(YJ,{size:28})})}var IF=["top","middle","bottom"],gF=["left","center","right"],bF="bottom",yF="left",XJ={top:"Top",middle:"Middle",bottom:"Bottom"},ZJ={left:"Left",center:"Center",right:"Right"},BLe="Up and down",DLe="Sideways",JJ={top:"flex-start",middle:"center",bottom:"flex-end"},QJ={left:"flex-start",center:"center",right:"flex-end"},eQ="--sf-hero-phone-y",oQ="--sf-hero-phone-x";function tQ(e){return IF.includes(e)?e:bF}function rQ(e){return gF.includes(e)?e:yF}function SF(e,o){let t=tQ(e),r=rQ(o),a={};return t!==bF&&(a[eQ]=JJ[t]),r!==yF&&(a[oQ]=QJ[r]),a}function NLe(){return IF.map(e=>({label:XJ[e],value:e}))}function MLe(){return gF.map(e=>({label:ZJ[e],value:e}))}import{hexToRgb as aQ}from"efficient-shell/format";var nQ=!0;var sQ=[[0,".5"],[30,".1"],[60,".1"],[100,".85"]];function wF(e){let o=aQ(e);return o?`${o.r},${o.g},${o.b}`:null}function CF(e){return e==null?nQ:e!==!1}function vF(e){let o=(e?wF(e):null)??wF(Jo);return`linear-gradient(180deg, ${sQ.map(([t,r])=>`rgba(${o},${r}) ${t}%`).join(", ")})`}import{hexToRgb as kF}from"efficient-shell/format";var TF="bottom";var lQ=[{label:"Bottom",value:"bottom",cell:"bottom"},{label:"Top",value:"top",cell:"top"},{label:"Left",value:"left",cell:"left"},{label:"Right",value:"right",cell:"right"}],iQ={bottom:180,top:0,left:270,right:90},cQ=[[.55,0],[.15,18],[null,35],[null,55],[.85,100]],dQ=[[null,33],[.6,67],[.94,100]];function fQ(e,o){let{r:t,g:r,b:a}=kF(e)??kF(Jo);return`rgba(${t},${r},${a},${o})`}function PF(e){return oo(lQ,TF,e)}function EF(e=Jo,o=TF){let t=PF(o),r=(t==="top"||t==="bottom"?cQ:dQ).map(([a,n])=>`${a===null?"transparent":fQ(e,a)} ${n}%`);return`linear-gradient(${iQ[t]}deg, ${r.join(", ")})`}function OF(e,o){let t=ee(e.overlayColor),r=ee(e.overlayPosition),a=ee(o)??Jo;return!t&&!r?{own:!1,color:a,position:null}:{own:!0,color:t??a,position:PF(r)}}import{jsx as uQ}from"react/jsx-runtime";var _F="sf-photo-hover";function RF({sheet:e,name:o=_F}){return e?uQ("style",{href:o,precedence:_F,dangerouslySetInnerHTML:{__html:e}}):null}var xQ=pQ({});function iBe({name:e,process:o,mediaType:t="video",mediaSrc:r,videoSpeed:a,poster:n,objectPosition:s,objectPositionPhone:l,tintColor:c=Jo,tintOpacity:d=0,groups:p,editing:m=!1,themeClassName:f,themeStyle:x,overlayColor:g,overlayPosition:y,mediaLayout:k,mediaLayoutPhone:O,mediaImage2:w,objectPosition2:I,objectPosition2Phone:C,tintColor2:v=Jo,tintOpacity2:A=0,videoSource:E,youtubeUrl:L,videoPlayback:T,partMotion:R}){let{alignment:N="left",textureOpacity:b,textureOn:_,textureColor:F,quietVideo:H,phoneUpDown:Z,phoneSideways:q,holdReel:$,reelHeld:ve}=mQ(xQ),ne=t==="video",$e=ne?Jt(r):void 0,De=ne?Jt(n):Jt(r)??Jt(n),Te=typeof a=="number"?a/100:1,{fromYouTube:pe,onClick:ge,youTubeId:qe,backgroundFile:Ve,desktopLayout:se,phoneLayout:Fe,twoPictures:no}=fF({isVideo:ne,videoSource:E,videoPlayback:T,youtubeUrl:L,mediaLayout:k,mediaLayoutPhone:O}),[Pe,Ne]=hQ(!1);Pe&&ve===!1&&Ne(!1);let go=!Pe,Eo=OF({overlayColor:g,overlayPosition:y},F),Oo=ne?null:ei(R,"image"),M=uF(R),le=mt(au,{treatment:ne?{}:jn(R,"image"),children:mt(Jl,{videoSrc:Ve?$e:void 0,posterSrc:De,showVideo:Ve,playbackRate:Te,objectPosition:s,objectPositionPhone:ne?void 0:l,quiet:H})});return AF("section",{className:f?`relative h-full w-full overflow-hidden ${f}`:"relative h-full w-full overflow-hidden",style:x,"data-slide-name":e??"","data-slide-process":o??"","data-slide-media":Ve&&$e?"video":"still",...M.hostAttrs,children:[mt(RF,{sheet:M.sheet}),mt(pF,{partMotion:R,editing:m,children:no?mt(mF,{desktopLayout:se,phoneLayout:Fe,editing:m,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:A}}):pe||Oo?AF(su,{part:ne?"media":"image",editing:m,marked:!1,entrance:Oo,className:"absolute inset-0 z-[1]",children:[le,pe&&mt(hF,{youTubeId:qe,ownPoster:!!De,background:!ge,editing:m})]}):le}),ge&&mt(xF,{youTubeId:qe,fileSrc:pe?void 0:$e,playing:Pe,onPlay:()=>{Ne(!0),$?.()},editing:m}),go&&!no&&mt(nu,{color:c,opacity:d,passClicks:!1}),go&&CF(_)&&mt("div",{className:"absolute inset-0 z-[2]",style:{background:Eo.own?EF(Eo.color,Eo.position??void 0):vF(Eo.color),...b!==void 0?{opacity:b/100}:null}}),go&&mt("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",m?"sf-hero-group-layer-edit":""].filter(Boolean).join(" "),style:{...ww,...SF(Z,q)},children:p&&mt(p,{className:"sf-hero-group-zone",minEmptyHeight:160})})]})}var FF=Array.from({length:3},(e,o)=>({name:`Slide ${o+1}`,process:"Category",mediaType:"image",mediaVideo:"",poster:""}));import{newNodeId as BF}from"efficient-easel/draw";var IQ="ImageBlock",gQ=3,lu=(e,o,t={})=>({type:e,props:{...o?.(e)??{},id:BF(e),...t}}),bQ=e=>({...e?.(V)??{},direction:"column",[Ke]:[lu(IQ,e),lu(V,e,{direction:"column",[Ke]:[lu("Text",e,Do()),lu("Text",e)]})]}),kt={Hero:{slot:"slides",childType:"HeroSlide",addLabel:"Add slide",slider:!0,seeds:()=>FF.map(e=>({...e}))},HeroSlide:{slot:"groups",childType:"HeroGroup",addLabel:`Add ${Et.toLowerCase()}`,seeds:()=>[],addBlocked:_i,notice:yp},HeroSingle:{slot:"boxes",childType:"HeroGroup",addLabel:`Add ${Et.toLowerCase()}`,seeds:()=>[],addBlocked:_i,notice:yp},ProcessSteps:{slot:"boxes",childType:V,addLabel:`Add ${Et.toLowerCase()}`,seeds:e=>Array.from({length:gQ},()=>bQ(e)),skipSeed:e=>Array.isArray(e.steps)&&e.steps.length>0}},LF=1,yQ={slot:js,childType:V,addLabel:`Add ${Et.toLowerCase()}`,seeds:()=>[],addBlocked:e=>e.length>=LF?"This Hero has its Scrolling Bar already. Delete it to add another.":null,notice:e=>e.length>LF?`This Hero holds ${e.length} Scrolling Bars. Keep one and delete the others.`:null},DF={Hero:{[js]:yQ}};function IBe(e){for(let[o,t]of Object.entries(e)){if(o in kt&&kt[o]!==t)throw new Error(`lib/document/slot-specs: "${o}" already has a slot spec`);kt[o]=t}}function gBe(e,o){let t=kt[e];return t?{slot:t.slot,children:t.seeds(o).map(r=>({type:t.childType,props:{id:BF(t.childType),...r}}))}:null}var MF=()=>({}),HF=new Map;function SQ(e){let o=HF.get(e);if(o)return o;let t=new Set,r=kt[e];if(r)for(let s of r.seeds(MF))for(let l of NF({type:r.childType,props:s}))t.add(l);let a=Qf(e);if(a){let s=0;for(let l of NF(a(MF,c=>`${c}-${s+=1}`)))t.add(l)}t.delete(e);let n=[...t].sort();return HF.set(e,n),n}function wQ(e){if(!e||!e.sets&&!e.allow&&!e.deny?.length)return null;let o=Xx(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)&&SQ(c).every(l);return s.set(c,p),p};return{sets:o,offers:l}}var CQ="block-offer";function jg(e=zF()){return e.cache(CQ,()=>wQ(Di(e)))}function GF(e,o=zF()){let t=jg(o);return t?t.offers(e):!0}function vQ(e){let o=Af.Ticker(e.nodeDefaults,e.newNodeId),{sectionBorder:t,...r}=o.props,a=Jh.line?{sectionBorder:t}:{};return{...o,props:{...r,...a,sectionAccent:Jh.sectionAccent}}}var kQ={Hero:{[js]:{newChild:vQ,childLabel:pi.Ticker}}},WF=Object.fromEntries(Object.entries(DF).map(([e,o])=>[e,Object.fromEntries(Object.entries(o).map(([t,r])=>[t,{...r,...kQ[e]?.[t]}]))]));function UF(e,o=0,t,r){let a=PQ(EQ(e,o,r),t),n=a?jg():null;return a&&n?TQ(a,n):a}function TQ(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 PQ(e,o){if(!e||e.source!=="container"||!o||!gy())return e;let t=yi({data:o.data},o.id),r=typeof t?.type=="string"?by(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 EQ(e,o,t){let r=t?WF[e]?.[t]:void 0;if(r)return{source:"section",slot:r.slot,choices:null,spec:r};let a=kt[e];if(a)return{source:"section",slot:a.slot,choices:null,spec:a};let n=Zb(e,o);if(n)return{source:"container",slot:n.slot,choices:n.choices,spec:null};let s=iO(e);return s?{source:"footer",slot:lO,choices:s,spec:null}:null}function $F(e,o=[bi]){return $u(e.type)?o.map(t=>t===bi?{slot:t,label:i(hy),rung:!0}:{slot:t,label:t,rung:!1}):null}import{useSyncExternalStore as OQ}from"react";var Kg=null,qg=new Set;function jF(e){if(Kg!==e){Kg=e;for(let o of qg)o()}}function _Q(e){return qg.add(e),()=>{qg.delete(e)}}function jBe(){return OQ(_Q,()=>Kg,()=>null)}function KF(e){return ls(e)?.ownerId??null}function qF(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 VF=(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 YF="sf-editor-left-view";function XF(){if(typeof window>"u")return"pages";try{let e=window.localStorage.getItem(YF);return e==="sections"||e==="styles"?e:"pages"}catch{return"pages"}}function ZF(e){if(!(typeof window>"u"))try{window.localStorage.setItem(YF,e)}catch{}}function JF(e,o){return e==="styles"&&!o?"sections":e}function QF(e,o){return e?"sections":o}var RQ=new Set(["BookingBox","SubmitBox"]);function AQ(e){return typeof e=="string"&&RQ.has(e)}var FQ=qE(AQ,oO);function eL(e,o){return FQ(e)||tm(o)}import{copyNode as LQ}from"efficient-easel/data";function oL(e){let o=typeof e?.props?.id=="string"?e.props.id:null,t=Wt(),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 tL={usedOn:e=>{let o=Wt(),t=o?.sectionOf(e.props.id)??null;return!o||!t?null:o.usedOn(t)??[]},openPage:e=>nf()?.openPage(e),adopt:(e,o)=>Wt()?.adopt(e.props.id,o),nodeOf:e=>Wt()?.place(e)??null,detach:e=>{let o=nf()?.config;return o?LQ(e,o):e},removed:()=>nf()?.reload()};import{sharedSectionsOf as Gee}from"efficient-easel/screen/lib/shared-sections";import{scrollPreviewToSection as Wee,scrollPreviewToTop as RL}from"efficient-easel/screen/lib/document/preview-dom";import{jsx as Xg,Fragment as iee,jsxs as cee}from"react/jsx-runtime";import{useEffect as dee,useMemo as mL,useRef as hL}from"react";import{EaselCanvas as fee,repeatCopyAt as uee}from"efficient-easel/easel";import{jsx as lL,Fragment as UQ,jsxs as $Q}from"react/jsx-runtime";import{useEffect as iL,useLayoutEffect as jQ}from"react";var iu="data-theme",rL="light";function BQ(e){return e.getAttribute(iu)===rL?"light":"dark"}function DQ(e,o){return BQ(e)===o?!1:(o==="light"?e.setAttribute(iu,rL):e.removeAttribute(iu),!0)}function NQ(e){return vu(e).getItem(xu)}function lDe(e,o){vu(e).setItem(xu,o)}function MQ(e,o,t=new Date().getHours()){return sb({mode:o.mode,override:NQ(e),switchShown:o.switchShown,hour:t})}function aL(e,o){let t=e.documentElement;if(!t)return()=>{};let r=()=>DQ(t,MQ(e,o));r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[iu]}),()=>n.disconnect()}var HQ="style";function zQ(e,o){let t=hb(o),r=!1;for(let a of mb){let n=t[a]??"";e.style.getPropertyValue(a)!==n&&(n?e.style.setProperty(a,n):e.style.removeProperty(a),r=!0)}return r}function nL(e,o){let t=e.body;if(!t)return()=>{};let r=()=>zQ(t,o);r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[HQ]}),()=>n.disconnect()}var GQ=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);`,WQ="storefront-fit-words";function sL(e){let o=e.createElement("script");return o.id=WQ,o.textContent=GQ,(e.head??e.documentElement).appendChild(o),()=>{e.__sfFitWords?.(),o.remove()}}var KQ=`
339
- [${at}][${at}] { cursor: text; }
340
- `;function cL({children:e,document:o}){let{theme:t,themeMode:r,themeSwitchShown:a}=de(),n=so(t);return iL(()=>{if(o)return aL(o,{mode:r,switchShown:a})},[o,r,a]),iL(()=>{if(o)return nL(o,n)},[o,n]),jQ(()=>{if(o)return sL(o)},[o]),$Q(UQ,{children:[lL(Wb,{}),lL("style",{children:KQ}),e]})}import{jsx as Vg}from"react/jsx-runtime";import{useEffect as qQ,useState as VQ}from"react";import{Banner as YQ}from"efficient-shell/ui";var cu={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."},XQ={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."},ZQ=cu.load,JQ=cu.lock,QQ=cu.conflict,eee=cu.save;function oee(e){if(!e)return null;if(e.loadFailed)return i(ZQ);if(e.lockHolder)return i(JQ,{name:e.lockHolder.name||i("Somebody else")});if(e.conflict)return i(QQ);if(e.saveFailed)return i(eee);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(XQ[o.problem],{section:t,name:r})}function tee({report:e}){let o=oee(kf(e)),[t,r]=VQ(null);return qQ(()=>{o||r(null)},[o]),!o||t===o?null:Vg("aside",{className:"sf-canvas-notice",children:Vg(YQ,{tone:"warning",onDismiss:()=>r(o),children:o})})}function dL(){return Vg(tee,{report:Tf()})}import{jsx as du}from"react/jsx-runtime";import{useState as fL}from"react";import{Banner as ree,Button as aee}from"efficient-shell/ui";import{UndoIcon as nee}from"efficient-shell/icons/efficient";import{useScreenDocument as see}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSettledAction as lee}from"efficient-easel/easel";function uL(){let e=W1(),{adapter:o,flushSave:t,reloadFromServer:r}=see(),a=o.siteVersions,[n,s]=fL(!1),[l,c]=fL(!1),d=async()=>{if(!(!a||n)){s(!0),c(!1);try{await j1({access:a,flushSave:t,reload:r})}catch{c(!0)}finally{s(!1)}}},p=lee({onPress:()=>{d()},busy:n});return e?du("aside",{className:"sf-canvas-notice",children:du(ree,{tone:l?"danger":"info",title:e.title,onDismiss:Pf,action:a&&e.undo?du(aee,{variant:"secondary",size:"sm",leftIcon:du(nee,{}),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 pee,REPEAT_ATTRIBUTE as Zg,REPEAT_INDEX_ATTRIBUTE as Jg}from"efficient-easel/draw";import{usePreviewParts as mee}from"efficient-easel/draw/client";var pL=null;function Yg(e){pL=e}function LDe(){return pL}function xL(e){let{mirrorHostStyles:o}=Pu(),t=$b(),{sectionBackgroundWidth:r,themeFromDocument:a}=de(),n=Rb(),s=mL(()=>({...e.metadata??t??{},...YC(a?null:r,n)}),[e.metadata,t,r,n,a]);dee(()=>(Yg(n),()=>Yg(null)),[n]);let l=hL(null),c=hee(l),{onDocument:d}=e,p=m=>{l.current=m,d?.(m)};return cee(iee,{children:[Xg(uL,{}),Xg(dL,{}),Xg(fee,{...e,onDocument:p,typing:c,metadata:s,height:"fill",mirrorStyles:o,frameWrapper:cL})]})}function hee(e){let o=di(),t=mee(),r=hL({parts:t});return r.current={parts:t},mL(()=>{let a=(n,s)=>{let l=Hc(n,o),c,d=null,p=s??(l?null:Ym(null,e.current,n)),m=!l&&p?uee(p):null,f=m?pee(n):null;if(m&&p&&f?.propKey){l=Gc({...m,nodeId:f.nodeId,key:f.propKey},o),c=f.propKey;let k=p.closest(`[${Zg}][${Jg}]`),O=`[${Zg}="${zc(k?.getAttribute(Zg)??"")}"][${Jg}="${zc(k?.getAttribute(Jg)??"")}"]`;d=()=>(p.ownerDocument??e.current)?.querySelector(O)??null}if(!l)return null;let x=p,g=()=>(x=Ym(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?fn(tT(y)):void 0,colorNameOf:ea}}:null};return{at:n=>{let s=n.closest(`[${at}]`),l=s?.getAttribute(at);return s&&l?a(l,s):null},atSelection:()=>{let n=r.current.parts.selectedPartId;return n?a(n,null):null},onCopyText:n=>hk(n,o),copyValue:n=>mk(n,o),onChange:n=>{if(!n.typing){Xm(null);return}let s=n.element.closest(`[${at}]`)?.getAttribute(at)??null;Xm(s),s&&r.current.parts.selectedPartId!==s&&r.current.parts.select(s)}}},[o,e])}var xee=_b.mediaFields,Iee=/video|poster|focal|phone/i;function IL(e){return(xee[e]??[]).find(o=>!o.includes("[]")&&!Iee.test(o))??null}var gL={adds:{kind:"block",type:"ImageBlock"},takes:e=>IL(e.type)!==null,replace:(e,o)=>{let t=IL(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 bL={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 fu}from"react/jsx-runtime";import{useState as gee}from"react";import{Button as bee,Tooltip as yee,toast as yL}from"efficient-shell/ui";import{TemplateIcon as See}from"efficient-easel/icons";import{useSettledAction as wee}from"efficient-easel/easel";import{useScreenDocument as Cee}from"efficient-easel/screen/components/ScreenDocumentContext";function wL({enabled:e,reason:o,onSaved:t}){let{flushSave:r}=Cee(),[a,n]=gee(!1),s=async()=>{if(!a){n(!0);try{await r()?t():yL.error(i(SL))}catch{yL.error(i(SL))}finally{n(!1)}}},l=wee({onPress:()=>{s()},busy:a});return fu(yee,{side:"bottom",content:e?i("Save this website as a platform template"):i(o),children:fu("span",{className:"sf-tip-disabled",tabIndex:e?void 0:0,children:fu(bee,{variant:"secondary",disabled:!e||l.busy,loading:l.busy,onClick:l.onPress,rightIcon:fu(See,{size:15}),children:i("Save as Template")})})})}var SL="Your last changes did not save, so the template was not made. Try again.";var vee="Save your page changes first";function CL(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:vee}:{visible:!0,enabled:!0}:{visible:!1,hiddenReason:"no-site"}:{visible:!1,hiddenReason:"not-operator"}:{visible:!1,hiddenReason:"no-console"}}var vL="storefront-editor:save-as-template";var oi="ContactLocations",kee="CityPictures",Tee="CityMaps",Pee=[{key:kee,label:"City pictures",desc:"A wall of city photos, grouped by region. Each photo links to its city's card."},{key:Tee,label:"City maps",desc:"A card per city, grouped by region: address, phone, hours and a map."}];function kL(e=wl){let o=er.find(t=>t.sections.some(r=>r.type===oi))?.key;return!e.includes(oi)||!o?[]:Pee.map(({key:t,label:r,desc:a},n)=>({key:t,label:r,cat:o,after:oi,desc:a,alias:"locations offices stores branches",insert:s=>{let l=Cf(oi);return l?Mg(oi,l,n)(s.nodeDefaults,s.newNodeId):null}}))}var Eee="plain",TL=[{label:"Plain",value:"plain"},{label:"Filled",value:"filled"},{label:"Line",value:"line"}],Oee="line",_ee={KeyFeatures:"filled"};function ti(e){return _ee[e]??Eee}function gNe(e,o){return oo(TL,ti(o),e)}function bNe(e){return oo(TL,Oee,e)}function EL(e,{nodeDefaults:o,newNodeId:t,sectionLabel:r,blockIsOffered:a}){let n=Qf(e);if(n)return n(o,t);if(a1(e)&&a(V)&&a(Nn))return{type:V,props:{...o(V),id:t(V),direction:"column",name:`${r(e)} section`,content:[{type:Nn,props:{...o(Nn),id:t(Nn),...Io[e]?.headStyle?{headStyle:Io[e].headStyle}:{},...Io[e]?.headRowGap?{rowGap:Io[e].headRowGap}:{},...Io[e]?.headDescriptionSize?{descriptionSize:Io[e].headDescriptionSize}:{},...ti(e)!==ti(Nn)?{eyebrowLook:ti(e)}:{}}},{type:e,props:{...o(e),id:t(e),headPlacement:"own-box",...PL(e,t)}}]}};if(kt[e]?.fixed===!0)return{type:e,props:{...o(e),id:t(e),layout:"boxes"}};let s=PL(e,t);return Object.keys(s).length?{type:e,props:{...o(e),id:t(e),...s}}:null}function PL(e,o){return e==="Cards"?{template:gi(t=>o(t))}:{}}import{useEffect as Ree,useState as Aee}from"react";import{useEaselSession as Fee}from"efficient-easel/screen/lib/session-context";function OL(){let e=Fee().chrome?.products?.list,[o,t]=Aee(null);return Ree(()=>{if(!e)return;let r=!1;return e().then(a=>{r||t(a)}),()=>{r=!0}},[e]),o}function HL({mode:e,open:o}){let{setSelectedHeroId:t,setSelectHandler:r}=RP(),a=NL().tree,n=e,s=n.kind==="ticker"?n.heroId:null,l=Kn(c=>{c&&(o({kind:"ticker",heroId:c}),Wee(c))},[o]);return Tt(()=>{t(s)},[s,t]),Tt(()=>{r(l)},[r,l]),{partRows:(c,{rowClick:d})=>{let p=String(c.props.id);return c.type==="Hero"&&Qh(c.props)&&ao(BL,{icon:ao(ca,{type:"ticker",size:13}),name:i($s),onSelect:()=>l(p),selected:s===p,rowProps:{onClick:d(()=>l(p))},words:a})}}}function zL({mode:e,select:o}){let{setSelectedHeroPart:t,setSelectHandler:r}=kd(),a=NL().tree,{appState:n}=DL(f=>f),s=n.data.content??[],l=Lee(s);l.current=s;let c=e,d=ia.find(f=>qs[f]===c.kind),p=d&&"nodeId"in c?Vs(String(c.nodeId),d):null,m=Kn(f=>{let x=HP(f);if(!x)return;let g=l.current.findIndex(k=>String(k.props.id)===x.nodeId);if(g<0)return;let y={kind:qs[x.part],nodeId:x.nodeId};o({index:g},y)},[o]);return Tt(()=>{t(p)},[p,t]),Tt(()=>{r(m)},[r,m]),{partRows:(f,{rowClick:x})=>{let g=String(f.props.id),y=MP(f);if(y.length===0)return null;let k=I=>{let C=Vs(g,I.part);return ao(BL,{icon:ao(ca,{type:I.part==="media"?"heroMedia":"heroImage",size:13}),name:i(I.label),onSelect:()=>m(C),selected:p===C,rowProps:{onClick:x(()=>m(C))},words:a},C)},[O,...w]=y;return ri(LL,{children:[k(O),w.length>0&&ao(Hee,{children:w.map(k)})]})}}}function GL(e,o){return{partRows:(t,r)=>ri(LL,{children:[e.partRows?.(t,r),o.partRows?.(t,r)]})}}function Uee(e){let{adapter:o,capabilities:t,currentSlug:r,siteId:a,docId:n,hasUnsavedEdits:s,bridgeCapabilities:l,notifyParent:c,token:d}=uu(),{hasPreviewLink:p}=t,m=Ge(ML()).preview?.draftLink,f=J1(e.data),x=CL({hasTrustedConsole:!!d,canCreatePlatformTemplate:l.canCreatePlatformTemplate,capabilities:t,siteId:a,hasUnsavedEdits:s}),g=Kn(()=>{!a||!r||c(vL,{siteId:a,slug:r})},[c,a,r]),y=_1({pageSlug:r,siteId:a,token:d}),k=o.previewHref?.(r)??y;return{barLead:()=>x.visible&&ao(wL,{enabled:x.enabled,reason:x.enabled?"":x.disabledReason,onSaved:g}),barView:()=>p&&r&&ao(F1,{liveHref:k,pageId:n??null,draftLink:m}),mainAction:f}}function $ee(e,o){let{capabilities:t,templateId:r,siteId:a,tokenRef:n,navigate:s}=uu(),{hasSiteTheme:l,explainsSiteSettings:c}=t,d=I=>o.setView(I),[p,m]=_L(bn[0].id),[f,x]=_L(!1),{surface:g,setSurface:y}=_P(),k=()=>{if(l){d("styles"),o.reveal(),RL();return}e.show(gI),e.reveal(),RL()},O={id:"pages",label:i("Pages"),icon:ao(Dee,{}),panel:({onHide:I})=>ao(yP,{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:ao(Mee,{}),active:e.kind==="website",onSelect:k}),l&&w.push({id:"styles",label:i("Styles"),icon:ao(Nee,{}),panel:({onHide:I,notify:C})=>ao(DO,{tokenRef:n,siteId:a??void 0,onClose:I,onNotify:C,tab:p,onTabChange:m,revealPageGroup:f,onPageGroupRevealed:()=>x(!1)})}),{railLead:[O],railTrail:w,resolveLeftView:I=>JF(I,l),openSettings:k,openStyles:()=>{m(tP),d("styles")},openPageStyles:l?()=>{m(yn),x(!0),d("styles"),o.reveal()}:c?()=>{e.show(kO),e.reveal()}:void 0}}function jee(){let{navigate:e,siteId:o,reloadFromServer:t,docId:r}=uu(),a=DL(s=>s.config),n=ML();Tt(()=>(sI({openPage:s=>e({kind:"page",slug:s.slug,siteId:o??void 0}),reload:()=>{t()},config:a}),()=>sI(null)),[e,o,t,a]),Tt(()=>{let s=Wt();if(!s||!r)return;let l=!1;return Gee(n).list().then(c=>{l||s.learn(c)}).catch(()=>{}),()=>{l=!0}},[r,n])}function WL(){let e=di();return Kn(o=>{xk(o,e)},[e])}function Kee(e,o,t,r){let{kind:a,open:n}=e,{selected:s,zoneOf:l}=o;Tt(()=>{jF(s?.type==="BookingBox"&&s.props.region==="confirm"?KF(l(String(s.props.id))):null)},[s?.props.id]);let c=r1(e,o),{capabilities:{hasSiteSettings:d}}=uu();jee();let{chat:p,setChat:m,setSelected:f,setSelectHandler:x}=vd(),g=Kn(()=>n(TO),[n]),y=a==="chat";Tt(()=>{f(y)},[y,f]),Tt(()=>{x(g)},[x,g]);let{setOpenHandler:k}=Us(),O=Kn(()=>n(PO),[n]);Tt(()=>{k(O)},[k,O]);let w=GL(HL(e),zL(e)),I=Uee(o),C=$ee(e,r),v=t.device,A=WL();return{...w,...I,...C,hasOwnRows:E=>E.type===Sf,ownRows:c.renderLocationTree,sectionPressed:c.sectionPressed,onCopyItem:A,wrap:E=>ao(Eu.Provider,{value:!0,children:ri(zee.Provider,{value:v,children:[E,ao(s_,{})]})}),addPanelRow:E=>d?ri("div",{className:"sf-addside-sitewide",children:[ao("span",{className:"sf-addside-sitewide-glyph","aria-hidden":"true",children:ao(ca,{type:"chat",size:16})}),ri("button",{type:"button",className:"sf-addside-sitewide-name",onClick:()=>{E(),g()},children:[i("Live chat"),ao("span",{className:"sf-addside-sitewide-desc",children:i("A chat bubble on every page")})]}),ao(Bee,{checked:p.enabled,onChange:L=>m({enabled:L}),ariaLabel:i("Show the chat bubble on the whole site")})]}):void 0}}var AL=null,Qg=new WeakMap;function qee(e){let o=zb();if(!e||!o)return e;AL!==o&&(AL=o,Qg=new WeakMap);let t=Qg.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},Qg.set(e,t)),t}var Vee={isLockedBlock:(e,o)=>eL(e,o)||!!(o&&Wt()?.heldElsewhere(o.props.id)),duplicateBlocked:uf,nestDepth:(e,o,t)=>o===Ri?kS(e,t):0,newSectionNode:EL,canAddTo:(e,o,t,r)=>qee(UF(e,o,r,t)),blockIsOffered:GF,slotsOf:$F,resolveOnInsert:!0},Yee=new Proxy(bL,{get:(e,o)=>{let t=Reflect.get(e,o);return typeof t=="string"?i(t):t}}),Xee={labelAtLevel:(e,o,t)=>i(Au(e,o,t)),descriptions:Yee,categoryLabel:e=>{let o=l_(e);return o===void 0?void 0:i(o)},firstSection:i_,blockRowName:qF,rowName:VF,plainText:Nr,Icon:ca,Thumbnail:BO,useProducts:OL,presets:kL()},Zee={desktop:2e3,tablet:800,mobile:390},FL="desktop",Jee={options:TP,initial:FL,fluid:FL,widths:Zee},Qee={read:XF,write:e=>ZF(e),forSelection:(e,o)=>QF(e,o)},eoe={first:Co,last:Be,firstGroup:Le,lastGroup:Oe,isSectionGroup:An,sectionGroupZone:ME,panelOf:e=>e===Co?vO:null,get sharedReach(){return ha()?toe:void 0},get shared(){return Wt()?tL:void 0},get groupTab(){return ha()?cO:void 0},get groupBadge(){return ha()?pI({type:Oe})??void 0:void 0},get changeNotice(){return ha()?dO():void 0},get band(){return ha()?ooe:void 0},get groupAccepts(){return ha()?GE:void 0}},ooe={foldable:!0},toe=e=>pI(e)??oL(e);function roe(e){return{...GL(HL(e),zL(e)),onCopyItem:WL(),openSettings:()=>e.show(gI)}}function aoe(e,o){x1(e,o),k1()}var U2e={useOwnerName:Sn,useDocumentLabel:iP,useBridges:Kee,useStandaloneBridges:roe,useDocumentPass:aoe,blockRules:Vee,blockLook:Xee,devices:Jee,leftView:Qee,pinned:eoe,Canvas:xL,canvasDrag:{media:gL},Inspector:OO};export{ee as a,fi as b,hB as c,Ar as d,Xn as e,Poe as f,Eoe as g,Ou as h,jb as i,Ooe as j,yo as k,SB as l,_oe as m,Aoe as n,Foe as o,Loe as p,pi as q,Et as r,V as s,Yb as t,Goe as u,Zb as v,oo as w,Lu as x,Bu as y,FB as z,mi as A,joe as B,Jn as C,Koe as D,Jb as E,Yoe as F,Qb as G,Fr as H,Xoe as I,Zoe as J,Joe as K,oy as L,ote as M,tte as N,HB as O,zB as P,rte as Q,ate as R,Hu as S,iy as T,cy as U,dy as V,nte as W,ste as X,qB as Y,lte as Z,VB as _,ite as $,uy as aa,K as ba,fe as ca,D as da,W as ea,os as fa,Ii as ga,QB as ha,bi as ia,Ot as ja,tD as ka,xy as la,Lte as ma,aD as na,Iy as oa,by as pa,Bte as qa,$u as ra,Dte as sa,nD as ta,Sy as ua,or as va,Nte as wa,Mte as xa,Hte as ya,sD as za,zte as Aa,yi as Ba,Gte as Ca,Wte as Da,Xx as Ea,Ge as Fa,Di as Ga,fp as Ha,lN as Ia,up as Ja,pp as Ka,is as La,Xe as Ma,aae as Na,iN as Oa,Io as Pa,n1 as Qa,D0e as Ra,s1 as Sa,N0e as Ta,M0e as Ua,U as Va,If as Wa,x0e as Xa,wt as Ya,Ct as Za,zo as _a,V0e as $a,SSe as ab,_d as bb,Js as cb,r0 as db,a0 as eb,n0 as fb,wSe as gb,T8 as hb,s0 as ib,CSe as jb,c0 as kb,c_ as lb,FOe as mb,loe as nb,oe as ob,i as pb,mo as qb,d_ as rb,DOe as sb,ww as tb,sr as ub,vw as vb,mle as wb,Jp as xb,MM as yb,hle as zb,Qs as Ab,Dd as Bb,BSe as Cb,qc as Db,_e as Eb,jme as Fb,Kme as Gb,qme as Hb,Fk as Ib,iG as Jb,ph as Kb,cG as Lb,hhe as Mb,nt as Nb,Ihe as Ob,ghe as Pb,ed as Qb,bhe as Rb,od as Sb,yhe as Tb,She as Ub,Wk as Vb,Uk as Wb,xG as Xb,IG as Yb,khe as Zb,Phe as _b,Ehe as $b,Ohe as ac,_he as bc,nC as cc,rce as dc,Va as ec,ir as fc,Ji as gc,fC as hc,x_ as ic,Wd as jc,Wwe as kc,br as lc,Uwe as mc,$we as nc,jwe as oc,Ud as pc,Kwe as qc,qwe as rc,w5 as sc,tc,gs as uc,wce as vc,fm as wc,Cce as xc,bs as yc,vC as zc,kC as Ac,vce as Bc,TC as Cc,EC as Dc,Ff as Ec,b_ as Fc,QOe as Gc,e1e as Hc,ym as Ic,yt as Jc,ce as Kc,me as Lc,he as Mc,Ce as Nc,ye as Oc,Ae as Pc,b1e as Qc,Zte as Rc,Jte as Sc,My as Tc,Nr as Uc,tT as Vc,Ps as Wc,ps as Xc,Hm as Yc,Wm as Zc,Bc as _c,at as $c,rpe as ad,ape as bd,npe as cd,spe as dd,W6 as ed,U6 as fd,lpe as gd,nn as hd,Um as id,ipe as jd,cpe as kd,nd as ld,sd as md,Ih as nd,RG as od,yh as pd,Sh as qd,hn as rd,ta as sd,uxe as td,Ds as ud,CT as vd,pxe as wd,Oh as xd,mxe as yd,hxe as zd,xxe as Ad,mW as Bd,Ixe as Cd,gW as Dd,bW as Ed,gxe as Fd,bxe as Gd,SW as Hd,ka as Id,T1e as Jd,P1e as Kd,Df as Ld,MY as Md,HY as Nd,E1e as Od,O1e as Pd,VI as Qd,qI as Rd,nl as Sd,fE as Td,uE as Ud,sl as Vd,Y0 as Wd,Wx as Xd,_Ce as Yd,En as Zd,$x as _d,J0 as $d,Q0 as ae,c7 as be,eE as ce,$d as de,oE as ee,j1e as fe,F_ as ge,K1e as he,q1e as ie,V1e as je,$l as ke,Mf as le,o_e as me,Wo as ne,d_e as oe,G_ as pe,W_ as qe,U_ as re,FC as se,Fce as te,hX as ue,xX as ve,IX as we,gX as xe,bX as ye,$_ as ze,yX as Ae,b_e as Be,y_e as Ce,P_e as De,j_ as Ee,E_e as Fe,O_e as Ge,__e as He,R_e as Ie,A_e as Je,F_e as Ke,H_e as Le,Gf as Me,z_e as Ne,U_e as Oe,PX as Pe,V_ as Qe,K_e as Re,q_e as Se,Y_ as Te,Ta as Ue,ES as Ve,YRe as We,BR as Xe,bg as Ye,DR as Ze,eAe as _e,oAe as $e,tAe as af,yg as bf,rAe as cf,aAe as df,NR as ef,OZ as ff,ln as gf,RAe as hf,mA as if,hA as jf,VAe as kf,jZ as lf,KZ as mf,CA as nf,oFe as of,tFe as pf,kFe as qf,LFe as rf,jFe as sf,VA as tf,KFe as uf,YA as vf,JFe as wf,oF as xf,QFe as yf,tF as zf,Jl as Af,Hr as Bf,Ure as Cf,sp as Df,Kre as Ef,eN as Ff,nS as Gf,qre as Hf,zr as If,nN as Jf,Jre as Kf,Qre as Lf,Pi as Mf,eae as Nf,mp as Of,dS as Pf,fae as Qf,BP as Rf,ybe as Sf,ex as Tf,Cn as Uf,vbe as Vf,kbe as Wf,tj as Xf,Tbe as Yf,Vs as Zf,HP as _f,zP as $f,uLe as ag,Ug as bg,cF as cg,Oa as dg,Wg as eg,zJ as fg,pLe as gg,eu as hg,Ql as ig,ou as jg,mLe as kg,hLe as lg,AD as mg,pre as ng,FD as og,LD as pg,xre as qg,BD as rg,DD as sg,Ire as tg,gre as ug,bre as vg,fF as wg,ei as xg,jn as yg,uF as zg,au as Ag,nu as Bg,su as Cg,pF as Dg,mF as Eg,hF as Fg,xF as Gg,bF as Hg,yF as Ig,BLe as Jg,DLe as Kg,NLe as Lg,MLe as Mg,Jo as Ng,nQ as Og,TF as Pg,lQ as Qg,EF as Rg,OF as Sg,RF as Tg,xQ as Ug,iBe as Vg,Ua as Wg,SS as Xg,yS as Yg,wN as Zg,CN as _g,vN as $g,Rae as ah,kN as bh,Aae as ch,cs as dh,Fae as eh,Lae as fh,Ri as gh,kS as hh,FP as ih,hbe as jh,IBe as kh,gBe as lh,wQ as mh,D5 as nh,nc as oh,Rce as ph,IS as qh,mN as rh,yae as sh,Ei as th,bS as uh,hN as vh,xN as wh,IN as xh,Cae as yh,vae as zh,kae as Ah,Tae as Bh,Le as Ch,Oe as Dh,Nke as Eh,HE as Fh,rf as Gh,Cre as Hh,Pre as Ih,rc as Jh,Pce as Kh,Ece as Lh,Oce as Mh,qC as Nh,Yr as Oh,a4 as Ph,Yce as Qh,n4 as Rh,Xce as Sh,fc as Th,Zce as Uh,LDe as Vh,bve as Wh,dE as Xh,$s as Yh,cbe as Zh,RP as _h,dbe as $h,fbe as ai,ube as bi,u0e as ci,NO as di,MO as ei,HO as fi,x4 as gi,wo as hi,ot as ii,uc as ji,Qa as ki,cde as li,dde as mi,ude as ni,pde as oi,mde as pi,hde as qi,xde as ri,gde as si,mc as ti,bde as ui,mae as vi,gae as wi,Oi as xi,Ai as yi,fs as zi,FS as Ai,$ae as Bi,jae as Ci,vp as Di,a2 as Ei,fne as Fi,mne as Gi,Sne as Hi,wne as Ii,y2 as Ji,No as Ki,us as Li,Bp as Mi,Dp as Ni,nse as Oi,sse as Pi,ow as Qi,lse as Ri,ise as Si,cse as Ti,lw as Ui,cw as Vi,Rt as Wi,Iw as Xi,KM as Yi,Ole as Zi,Ow as _i,Dle as $i,Rw as aj,Bw as bj,Dw as cj,Nw as dj,Mw as ej,Hw as fj,zw as gj,em as hj,Ww as ij,Uw as jj,aie as kj,mH as lj,nie as mj,sie as nj,jw as oj,fie as pj,hH as qj,uie as rj,pie as sj,IH as tj,om as uj,bH as vj,Iie as wj,yH as xj,gie as yj,SH as zj,Qo as Aj,yie as Bj,Sie as Cj,wie as Dj,Cie as Ej,Vi as Fj,vie as Gj,am as Hj,Aie as Ij,Zw as Jj,kH as Kj,Lie as Lj,Is as Mj,HH as Nj,ece as Oj,g5 as Pj,Ice as Qj,y5 as Rj,gce as Sj,bce as Tj,yce as Uj,sc as Vj,ys as Wj,Bce as Xj,Dce as Yj,Nce as Zj,BC as _j,DC as $j,NC as ak,Mce as bk,Ja as ck,cc as dk,Uce as ek,$ce as fk,jce as gk,jC as hk,qce as ik,hr as jk,Dt as kk,Xr as lk,jfe as mk,Kfe as nk,qfe as ok,Vfe as pk,Yfe as qk,Xfe as rk,Zfe as sk,oue as tk,tue as uk,_3 as vk,rue as wk,aue as xk,nue as yk,sue as zk,lue as Ak,iue as Bk,cue as Ck,due as Dk,L3 as Ek,fue as Fk,Rm as Gk,uue as Hk,Cc as Ik,pr as Jk,Hp as Kk,Ev as Lk,kc as Mk,pue as Nk,mue as Ok,_v as Pk,hue as Qk,xue as Rk,Iue as Sk,gue as Tk,bue as Uk,yue as Vk,Sue as Wk,wue as Xk,hc as Yk,Pc as Zk,Ec as _k,Lm as $k,_c as al,Cue as bl,x6 as cl,vue as dl,kue as el,Tue as fl,Nv as gl,Pue as hl,Eue as il,Oue as jl,_ue as kl,Rue as ll,Aue as ml,Dm as nl,Fue as ol,Hv as pl,zv as ql,Gv as rl,Lue as sl,Mm as tl,O6 as ul,Bue as vl,Due as wl,lCe as xl,q0 as yl,Ao as zl,ol as Al,mK as Bl,v0 as Cl,cwe as Dl,dwe as El,fwe as Fl,uwe as Gl,pwe as Hl,mwe as Il,hwe as Jl,E0 as Kl,xwe as Ll,Iwe as Ml,gwe as Nl,wd as Ol,SP as Pl,wP as Ql,vP as Rl,Cd as Sl,jge as Tl,Kge as Ul,vd as Vl,q$ as Wl,tbe as Xl,Us as Yl,sbe as Zl,_P as _l,rs as $l,iD as am,qte as bm,Vte as cm,lTe as dm,iTe as em,cTe as fm,gbe as gm,kd as hm,goe as im,kpe as jm,Tpe as km,sk as lm,Ppe as mm,Epe as nm,OT as om,Axe as pm,Fxe as qm,Lxe as rm,Bxe as sm,YT as tm,XT as um,nIe as vm,sIe as wm,QW as xm,lIe as ym,iIe as zm,cIe as Am,dIe as Bm,eU as Cm,fIe as Dm,uIe as Em,pIe as Fm,mIe as Gm,aU as Hm,hIe as Im,TIe as Jm,PIe as Km,qh as Lm,Vh as Mm,WP as Nm,iSe as Om,YP as Pm,il as Qm,j7 as Rm,K7 as Sm,Fve as Tm,zve as Um,Yd as Vm,Be as Wm,ff as Xm,ut as Ym,WO as Zm,yl as _m,UO as $m,$O as an,b0e as bn,y0e as cn,T1 as dn,zI as en,P1 as fn,UF as gn,jBe as hn,VF as in,eL as jn,iu as kn,BQ as ln,DQ as mn,lDe as nn,foe as on,hoe as pn,Eee as qn,TL as rn,Oee as sn,ti as tn,gNe as un,bNe as vn,U2e as wn};