efficient-storefront-blocks 0.85.0 → 0.87.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 (218) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/chunks/{EditorPreviewCheckout-4XHYYAT2.js → EditorPreviewCheckout-GD4IJ4WK.js} +1 -1
  3. package/dist/chunks/{SiteEditorProvider-X4YKBAJ4.js → SiteEditorProvider-2UVCJZXS.js} +1 -1
  4. package/dist/chunks/{chunk-NFXV7HDB.js → chunk-H4IHUSCU.js} +1 -1
  5. package/dist/chunks/chunk-QLR6IVWJ.js +369 -0
  6. package/dist/chunks/chunk-SYK5QPNV.js +1 -0
  7. package/dist/chunks/{chunk-VG4SUIRK.js → chunk-XZ46W3NV.js} +1 -1
  8. package/dist/chunks/{fitment-data-2I2FDPXW.js → fitment-data-5GBUMO2O.js} +1 -1
  9. package/dist/contract.js +20 -2
  10. package/dist/editor/lib/document/blocks/commerce/FitmentPicker/fields.d.ts +2 -0
  11. package/dist/editor/lib/document/blocks/commerce/FitmentPicker/fields.js +1 -0
  12. package/dist/editor/lib/document/blocks/commerce/FitmentTable/fields.js +1 -1
  13. package/dist/editor/lib/document/blocks/commerce/ProductBuy/fields.d.ts +2 -0
  14. package/dist/editor/lib/document/blocks/commerce/ProductBuy/fields.js +1 -0
  15. package/dist/editor/lib/document/blocks/commerce/ProductEyebrow/fields.d.ts +2 -0
  16. package/dist/editor/lib/document/blocks/commerce/ProductEyebrow/fields.js +1 -0
  17. package/dist/editor/lib/document/blocks/commerce/ProductGrid/fields.js +1 -1
  18. package/dist/editor/lib/document/blocks/commerce/ProductName/fields.d.ts +2 -0
  19. package/dist/editor/lib/document/blocks/commerce/ProductName/fields.js +1 -0
  20. package/dist/editor/lib/document/blocks/commerce/ProductPicture/fields.d.ts +2 -0
  21. package/dist/editor/lib/document/blocks/commerce/ProductPicture/fields.js +1 -0
  22. package/dist/editor/lib/document/blocks/commerce/ProductSpecs/fields.d.ts +2 -0
  23. package/dist/editor/lib/document/blocks/commerce/ProductSpecs/fields.js +1 -0
  24. package/dist/editor/lib/document/blocks/commerce/RelatedProducts/fields.js +1 -1
  25. package/dist/editor/lib/document/blocks/commerce/SpecTable/fields.js +1 -1
  26. package/dist/editor/lib/document/blocks/commerce/StockFitment/fields.d.ts +2 -0
  27. package/dist/editor/lib/document/blocks/commerce/StockFitment/fields.js +1 -0
  28. package/dist/editor/lib/document/blocks/commerce/index.d.ts +1 -1
  29. package/dist/editor/lib/document/blocks/commerce/index.js +1 -1
  30. package/dist/editor/lib/document/blocks/commerce/page-rules.d.ts +5 -0
  31. package/dist/editor/lib/document/blocks/commerce/page-rules.js +1 -1
  32. package/dist/editor/lib/document/blocks/service/ArticleBody/fields.d.ts +2 -0
  33. package/dist/editor/lib/document/blocks/service/ArticleBody/fields.js +1 -0
  34. package/dist/editor/lib/document/blocks/service/SiteFooter/fields.js +1 -1
  35. package/dist/editor/lib/document/blocks/service/SiteHeader/fields.js +1 -1
  36. package/dist/editor/lib/document/blocks/service/index.d.ts +1 -1
  37. package/dist/editor/lib/document/blocks/service/index.js +1 -1
  38. package/dist/editor/lib/document/box-header.d.ts +1 -1
  39. package/dist/editor/lib/document/box-header.js +1 -1
  40. package/dist/editor/lib/document/config.js +1 -1
  41. package/dist/editor/lib/document/section-text-regions.js +1 -1
  42. package/dist/editor/lib/efficient-block-sources.js +1 -1
  43. package/dist/editor/lib/storefront-editor-words.d.ts +19 -7
  44. package/dist/editor/lib/storefront-editor-words.js +1 -1
  45. package/dist/fitment.js +1 -1
  46. package/dist/index.js +44 -40
  47. package/dist/links.js +1 -1
  48. package/dist/render/app/fonts/fallbacks.css +8 -0
  49. package/dist/render/app/fonts/jost/OFL.txt +93 -0
  50. package/dist/render/app/fonts/jost/cyrillic-italic.woff2 +0 -0
  51. package/dist/render/app/fonts/jost/cyrillic.woff2 +0 -0
  52. package/dist/render/app/fonts/jost/latin-ext-italic.woff2 +0 -0
  53. package/dist/render/app/fonts/jost/latin-ext.woff2 +0 -0
  54. package/dist/render/app/fonts/jost/latin-italic.woff2 +0 -0
  55. package/dist/render/app/fonts/jost/latin.woff2 +0 -0
  56. package/dist/render/app/globals.css +11 -11
  57. package/dist/render/built-with.json +1 -1
  58. package/dist/render/components/ArticleBody.d.ts +7 -0
  59. package/dist/render/components/ArticleBody.js +1 -0
  60. package/dist/render/components/BoxHeaderBar.d.ts +2 -1
  61. package/dist/render/components/BoxHeaderBar.js +1 -1
  62. package/dist/render/components/Events.js +1 -1
  63. package/dist/render/components/FitmentTable.d.ts +1 -1
  64. package/dist/render/components/FitmentTable.js +1 -1
  65. package/dist/render/components/FooterMenu.d.ts +5 -1
  66. package/dist/render/components/FooterMenu.js +1 -1
  67. package/dist/render/components/GridCardTemplate.d.ts +34 -0
  68. package/dist/render/components/GridCardTemplate.js +1 -0
  69. package/dist/render/components/MenuLinkBlock.d.ts +5 -1
  70. package/dist/render/components/MenuLinkBlock.js +1 -1
  71. package/dist/render/components/ProductCardChrome.d.ts +1 -1
  72. package/dist/render/components/ProductCardChrome.js +1 -1
  73. package/dist/render/components/ProductGridSection.d.ts +6 -15
  74. package/dist/render/components/ProductGridSection.js +1 -1
  75. package/dist/render/components/ProductRef.js +1 -1
  76. package/dist/render/components/PublishedHeader.js +1 -1
  77. package/dist/render/components/SectionBand.d.ts +2 -1
  78. package/dist/render/components/SectionBand.js +1 -1
  79. package/dist/render/components/SectionBandChoice.d.ts +2 -1
  80. package/dist/render/components/SectionBandChoice.js +1 -1
  81. package/dist/render/components/SectionGroupBody.d.ts +2 -2
  82. package/dist/render/components/SectionGroupBody.js +1 -1
  83. package/dist/render/components/SpecTable.d.ts +3 -1
  84. package/dist/render/components/SpecTable.js +1 -1
  85. package/dist/render/components/StorefrontProviders.d.ts +1 -1
  86. package/dist/render/components/StorefrontProviders.js +1 -1
  87. package/dist/render/components/TyreCard.js +1 -1
  88. package/dist/render/components/TyreFitVerdicts.d.ts +2 -1
  89. package/dist/render/components/TyreFitVerdicts.js +1 -1
  90. package/dist/render/components/TyrePlpCard.js +1 -1
  91. package/dist/render/components/TyreSizeGrid.d.ts +17 -0
  92. package/dist/render/components/TyreSizeGrid.js +1 -0
  93. package/dist/render/components/card-pieces/CardEyebrow.d.ts +3 -1
  94. package/dist/render/components/card-pieces/CardEyebrow.js +1 -1
  95. package/dist/render/components/card-pieces/CardName.d.ts +3 -1
  96. package/dist/render/components/card-pieces/CardName.js +1 -1
  97. package/dist/render/components/card-pieces/CardPrice.d.ts +2 -6
  98. package/dist/render/components/card-pieces/CardPrice.js +1 -1
  99. package/dist/render/components/card-pieces/CardProductPicture.d.ts +8 -0
  100. package/dist/render/components/card-pieces/CardProductPicture.js +1 -0
  101. package/dist/render/components/card-pieces/card-text-region.d.ts +18 -0
  102. package/dist/render/components/card-pieces/card-text-region.js +1 -0
  103. package/dist/render/components/fitment/FitmentPickerGrid.d.ts +5 -1
  104. package/dist/render/components/fitment/FitmentPickerGrid.js +1 -1
  105. package/dist/render/components/fitment/FitmentPickerPart.d.ts +8 -0
  106. package/dist/render/components/fitment/FitmentPickerPart.js +1 -0
  107. package/dist/render/components/fitment/StockFitmentPart.d.ts +11 -0
  108. package/dist/render/components/fitment/StockFitmentPart.js +1 -0
  109. package/dist/render/components/fitment/fitment-answer-source.d.ts +12 -0
  110. package/dist/render/components/fitment/fitment-answer-source.js +1 -0
  111. package/dist/render/components/fitment/useVehicleFit.d.ts +2 -1
  112. package/dist/render/components/fitment/useVehicleFit.js +1 -1
  113. package/dist/render/components/pdp-dynamic/DynamicFitmentTable.d.ts +5 -0
  114. package/dist/render/components/pdp-dynamic/DynamicFitmentTable.js +1 -1
  115. package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.d.ts +10 -12
  116. package/dist/render/components/pdp-dynamic/DynamicRelatedProducts.js +1 -1
  117. package/dist/render/components/pdp-dynamic/DynamicSpecTable.d.ts +1 -0
  118. package/dist/render/components/pdp-dynamic/DynamicSpecTable.js +1 -1
  119. package/dist/render/components/pdp-dynamic/DynamicTyreSizes.js +1 -1
  120. package/dist/render/components/pdp-dynamic/FitmentTableBlock.d.ts +3 -1
  121. package/dist/render/components/pdp-dynamic/FitmentTableBlock.js +1 -1
  122. package/dist/render/components/wheels-plp/AlloyWheelsListing.js +1 -1
  123. package/dist/render/components/wheels-plp/PlpCard.d.ts +1 -1
  124. package/dist/render/components/wheels-plp/PlpCard.js +1 -1
  125. package/dist/render/lib/content/article-body-seed.d.ts +9 -0
  126. package/dist/render/lib/content/article-body-seed.js +1 -0
  127. package/dist/render/lib/content/article-body.d.ts +8 -0
  128. package/dist/render/lib/content/article-body.js +5 -0
  129. package/dist/render/lib/content/article-page-seed.d.ts +12 -0
  130. package/dist/render/lib/content/article-page-seed.js +1 -0
  131. package/dist/render/lib/content/field-usage.d.ts +1 -0
  132. package/dist/render/lib/content/field-usage.js +1 -1
  133. package/dist/render/lib/content/product-card-seed.d.ts +29 -0
  134. package/dist/render/lib/content/product-card-seed.js +1 -0
  135. package/dist/render/lib/content/tab-strip.d.ts +17 -0
  136. package/dist/render/lib/content/tab-strip.js +1 -0
  137. package/dist/render/lib/document/blocks/commerce/FitmentPicker/meta.d.ts +2 -0
  138. package/dist/render/lib/document/blocks/commerce/FitmentPicker/meta.js +1 -0
  139. package/dist/render/lib/document/blocks/commerce/FitmentPicker/render.d.ts +2 -0
  140. package/dist/render/lib/document/blocks/commerce/FitmentPicker/render.js +1 -0
  141. package/dist/render/lib/document/blocks/commerce/FitmentTable/meta.js +1 -1
  142. package/dist/render/lib/document/blocks/commerce/FitmentTable/render.js +1 -1
  143. package/dist/render/lib/document/blocks/commerce/ProductBuy/meta.d.ts +2 -0
  144. package/dist/render/lib/document/blocks/commerce/ProductBuy/meta.js +1 -0
  145. package/dist/render/lib/document/blocks/commerce/ProductBuy/render.d.ts +2 -0
  146. package/dist/render/lib/document/blocks/commerce/ProductBuy/render.js +1 -0
  147. package/dist/render/lib/document/blocks/commerce/ProductEyebrow/meta.d.ts +2 -0
  148. package/dist/render/lib/document/blocks/commerce/ProductEyebrow/meta.js +1 -0
  149. package/dist/render/lib/document/blocks/commerce/ProductEyebrow/render.d.ts +2 -0
  150. package/dist/render/lib/document/blocks/commerce/ProductEyebrow/render.js +1 -0
  151. package/dist/render/lib/document/blocks/commerce/ProductGrid/meta.d.ts +4 -0
  152. package/dist/render/lib/document/blocks/commerce/ProductGrid/meta.js +1 -1
  153. package/dist/render/lib/document/blocks/commerce/ProductGrid/render.js +1 -1
  154. package/dist/render/lib/document/blocks/commerce/ProductName/meta.d.ts +2 -0
  155. package/dist/render/lib/document/blocks/commerce/ProductName/meta.js +1 -0
  156. package/dist/render/lib/document/blocks/commerce/ProductName/render.d.ts +2 -0
  157. package/dist/render/lib/document/blocks/commerce/ProductName/render.js +1 -0
  158. package/dist/render/lib/document/blocks/commerce/ProductPicture/meta.d.ts +2 -0
  159. package/dist/render/lib/document/blocks/commerce/ProductPicture/meta.js +1 -0
  160. package/dist/render/lib/document/blocks/commerce/ProductPicture/render.d.ts +2 -0
  161. package/dist/render/lib/document/blocks/commerce/ProductPicture/render.js +1 -0
  162. package/dist/render/lib/document/blocks/commerce/ProductPrice/render.js +1 -1
  163. package/dist/render/lib/document/blocks/commerce/ProductSpecs/meta.d.ts +2 -0
  164. package/dist/render/lib/document/blocks/commerce/ProductSpecs/meta.js +1 -0
  165. package/dist/render/lib/document/blocks/commerce/ProductSpecs/render.d.ts +2 -0
  166. package/dist/render/lib/document/blocks/commerce/ProductSpecs/render.js +1 -0
  167. package/dist/render/lib/document/blocks/commerce/RelatedProducts/meta.d.ts +0 -4
  168. package/dist/render/lib/document/blocks/commerce/RelatedProducts/meta.js +1 -1
  169. package/dist/render/lib/document/blocks/commerce/RelatedProducts/render.js +1 -1
  170. package/dist/render/lib/document/blocks/commerce/SpecTable/render.js +1 -1
  171. package/dist/render/lib/document/blocks/commerce/StockFitment/meta.d.ts +2 -0
  172. package/dist/render/lib/document/blocks/commerce/StockFitment/meta.js +1 -0
  173. package/dist/render/lib/document/blocks/commerce/StockFitment/render.d.ts +2 -0
  174. package/dist/render/lib/document/blocks/commerce/StockFitment/render.js +1 -0
  175. package/dist/render/lib/document/blocks/commerce/metas.d.ts +7 -0
  176. package/dist/render/lib/document/blocks/commerce/metas.js +1 -1
  177. package/dist/render/lib/document/blocks/commerce/renders.d.ts +7 -0
  178. package/dist/render/lib/document/blocks/commerce/renders.js +1 -1
  179. package/dist/render/lib/document/blocks/service/ArticleBody/meta.d.ts +8 -0
  180. package/dist/render/lib/document/blocks/service/ArticleBody/meta.js +1 -0
  181. package/dist/render/lib/document/blocks/service/ArticleBody/render.d.ts +2 -0
  182. package/dist/render/lib/document/blocks/service/ArticleBody/render.js +1 -0
  183. package/dist/render/lib/document/blocks/service/SiteFooter/render.js +1 -1
  184. package/dist/render/lib/document/blocks/service/SiteHeader/render.js +1 -1
  185. package/dist/render/lib/document/blocks/service/metas.d.ts +1 -0
  186. package/dist/render/lib/document/blocks/service/metas.js +1 -1
  187. package/dist/render/lib/document/blocks/service/renders.d.ts +1 -0
  188. package/dist/render/lib/document/blocks/service/renders.js +1 -1
  189. package/dist/render/lib/document/blocks/text-part-shapes.json +0 -16
  190. package/dist/render/lib/document/card-templates.js +1 -1
  191. package/dist/render/lib/document/footer-page-blocks.js +1 -1
  192. package/dist/render/lib/document/lazy-draws.js +1 -1
  193. package/dist/render/lib/font-table.json +209 -1
  194. package/dist/render/lib/menu-link.d.ts +2 -0
  195. package/dist/render/lib/menu-link.js +1 -1
  196. package/dist/render/lib/next-fonts.js +1 -1
  197. package/dist/render/lib/sections/grid-no-hole.d.ts +1 -0
  198. package/dist/render/lib/sections/grid-no-hole.js +1 -1
  199. package/dist/render/lib/sections/product-card-text-regions.d.ts +3 -0
  200. package/dist/render/lib/sections/product-card-text-regions.js +1 -0
  201. package/dist/render/lib/sections/product-grid-columns.d.ts +17 -0
  202. package/dist/render/lib/sections/product-grid-columns.js +1 -0
  203. package/dist/render/lib/sections/related-to-grid.d.ts +8 -0
  204. package/dist/render/lib/sections/related-to-grid.js +1 -0
  205. package/dist/render/lib/storefront-page-groups.d.ts +0 -4
  206. package/dist/render/lib/storefront-page-groups.js +1 -1
  207. package/dist/render/lib/tyres/tyre-vehicle-fitment.d.ts +1 -0
  208. package/dist/render/lib/tyres/tyre-vehicle-fitment.js +1 -1
  209. package/dist/render/lib/wheels/plp-filters.js +1 -1
  210. package/dist/render/lib/wheels/vehicle-memory.d.ts +13 -0
  211. package/dist/render/lib/wheels/vehicle-memory.js +1 -1
  212. package/dist/words.d.ts +69 -8
  213. package/dist/words.js +6 -6
  214. package/package.json +4 -4
  215. package/dist/chunks/chunk-NNBMZAW4.js +0 -340
  216. package/dist/chunks/chunk-Y5LB56KB.js +0 -1
  217. /package/dist/chunks/{chunk-KKKMX6LH.js → chunk-DLWIDJS5.js} +0 -0
  218. /package/dist/chunks/{chunk-NNBMZAW4.js.LEGAL.txt → chunk-QLR6IVWJ.js.LEGAL.txt} +0 -0
@@ -1,340 +0,0 @@
1
- import{B as ui,Ba as Zb,C as Db,D as Nb,E as Mb,F as Hb,Fa as ce,H as zb,I as Ou,Ja as oy,K as Wb,Ka as ty,L as Bo,M as Fr,Ma as mi,N as Gb,Na as ry,O as xt,Oa as ay,P as pi,S as Ub,T as _u,Ta as ny,W as $b,X as Ru,Z as Au,a as er,b as Tu,ba as jb,h as _b,ha as Lr,i as Rb,j as Pu,ja as Kb,k as no,l as Ab,la as qb,m as Fb,n as Ha,na as Vb,o as yo,oa as Yo,p as za,pa as Ga,q as Wa,qa as Yb,ra as At,s as Lb,sa as Fu,ta as Ua,v as Xn,x as Bb,xa as Zn,y as Eu,za as Xb}from"./chunk-Y5LB56KB.js";import{d as Jb,e as or,f as Qb,g as ey,j as $a,n as Lu}from"./chunk-KKKMX6LH.js";var oe=e=>typeof e=="string"&&e?e:void 0;var ly="en",hi=null,iy=ly,cy=null;function rte(e,o,t){hi=e??null,iy=o||ly,cy=t??null}function Q(){return cy}function Bu(){return iy}function dy(){return hi}function sy(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=hi?hi[e]:void 0;if(typeof t=="function"){try{let r=oe(t(o??{}));if(r)return r}catch{}return sy(e,o)}return sy(oe(t)??e,o)}function mo(e,o,t,r){return i(t===1?e:o,{...r,n:t})}import{jsx as Du,Fragment as OB,jsxs as _B}from"react/jsx-runtime";import{createContext as RB,useContext as AB}from"react";var FB={mirrorHostStyles:!0,css:null,fontHrefs:[]},fy=RB(FB);function lte({value:e,children:o}){return Du(fy.Provider,{value:e,children:o})}function Nu(){return AB(fy)}function uy(){let{css:e,fontHrefs:o}=Nu();return _B(OB,{children:[o.map(t=>Du("link",{rel:"stylesheet",href:t},t)),e?Du("style",{"data-sf-canvas-css":"",children:e}):null]})}import{jsx as LB}from"react/jsx-runtime";import{createContext as BB,useContext as DB}from"react";var py=BB(void 0);function fte({metadata:e,children:o}){return LB(py.Provider,{value:e,children:o})}var my=()=>DB(py);import{jsx as ao,Fragment as iB,jsxs as ci}from"react/jsx-runtime";import{useCallback as Vn,useEffect as Rt,useRef as _oe,useState as aB}from"react";import{SettingsSwitch as Roe}from"efficient-easel/panel";import{PagesIcon as Aoe,StylesIcon as Foe}from"efficient-easel/rail";import{PaletteIcon as Loe}from"efficient-shell/icons/efficient";import{Subtree as Boe,TreeRow as cB}from"efficient-easel/tree";import{useEasel as dB}from"efficient-easel/easel";import{useEaselStrings as fB}from"efficient-easel/strings";import{createContext as NB,useContext as MB}from"react";var Mu=NB(!1),mte=()=>MB(Mu);import{useMemo as HB,useRef as zB}from"react";import{useEaselApi as WB}from"efficient-easel/easel";import{useSectionOps as GB}from"efficient-easel/screen/lib/document/use-section-ops";function xi(){let e=WB(),o=GB(),t=zB(o);return t.current=o,HB(()=>({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 Zz}from"efficient-easel/draw";import{insertAt as Jz,moveTo as Qz,removeAt as eW}from"efficient-easel/fields";function tr(e,o){let t=globalThis,r=Symbol.for(e),a=t[r];return a===void 0&&(a=o(),t[r]=a),a}var Ii="dataSource";var UB="dataRows",Br="countKey",Jn="counts",$B=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;function Qn(){return tr("efficient.block-sources",()=>({sources:new Map,revision:0}))}var jB=e=>[e?.key,e?.label,e?.value].every(o=>typeof o=="string"&&o.trim()!==""),KB=e=>[e?.key,e?.label].every(o=>typeof o=="string"&&o.trim()!==""),qB=e=>[e?.label,e?.href].every(o=>typeof o=="string"&&o.trim()!=="");function VB(e){if(typeof e.key!="string"||!$B.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=>xy(o)).filter(o=>o!==null)}:{},...Array.isArray(e.choices)?{choices:e.choices.filter(jB)}:{},...Array.isArray(e.fields)?{fields:e.fields.filter(KB).map(o=>({...o}))}:{},...qB(e.edit)?{edit:{label:e.edit.label.trim(),href:e.edit.href.trim()}}:{}}}function Cte(e){let o=e.map(VB),t=Qn();for(let r of o)t.sources.set(r.key,r);o.length&&(t.revision+=1)}function vte(e){let o=[...Qn().sources.values()];return e===void 0?o:o.filter(t=>t.blocks.includes(e))}function Hu(e){return Qn().sources.get(e)??null}function hy(e){return Qn().sources.get(e)?.choices??[]}function kte(){return Qn().revision}function So(e){let o=e?.[Ii];return typeof o=="string"?o.trim():""}function xy(e){if(!e||typeof e!="object"||Array.isArray(e))return null;let o={};for(let[t,r]of Object.entries(e)){let a=oe(r);a&&(o[t]=a)}return Object.keys(o).length?o:null}function YB(e){let o=e?.[UB];return Array.isArray(o)?o.map(xy).filter(t=>t!==null):null}function Tte(e,o,t=[]){let r=YB(e);if(r!==null&&(r.length||!o))return{rows:r,sample:!1};if(!o)return{rows:[],sample:!1};let a=Hu(So(e))?.sample;return{rows:a?.length?a:t,sample:!0}}import{isNodeList as _D}from"efficient-easel/data";var Iy=["general","commerce","service"],rr=[{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 Ete(){return Object.fromEntries(rr.map(e=>[e.key,{title:e.title,components:e.sections.map(o=>o.type),...e.defaultExpanded?{defaultExpanded:!0}:{}}]))}var XB={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 Custom, 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."},Ote=["Grid","Spacer"],_te=Array.from(new Set([...rr.flatMap(e=>e.sections.map(o=>o.type)),...Object.keys(XB)])),bi=Object.fromEntries(rr.flatMap(e=>e.sections.map(o=>[o.type,o.label]))),ZB={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",ProductPrice:"commerce",ProductSize:"commerce",ProductColour:"commerce",EmailFormBlock:"service",SocialLogosBlock:"service",PaymentLogosBlock:"service",LegalLineBlock:"service",SiteHeader:"service",SiteFooter:"service"},gi={...ZB,...Object.fromEntries(rr.flatMap(e=>e.sections.map(o=>[o.type,o.set])))};function gy(e){return Object.prototype.hasOwnProperty.call(gi,e)?gi[e]:void 0}function zu(e){return Object.keys(gi).filter(o=>gi[o]===e).sort()}var Rte=zu("general"),Ate=zu("commerce"),Fte=zu("service"),Wu="Flex",Ft="Box",Lte=`${Ft}es`;function JB(e){return e==="section"?"Blank section":Ft}function Gu(e,o,t){return e===Wu?JB(o):t}var Ke="content",V="Flex",QB="Text & media",eD="Layout & structure",yy=[{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"}],oD=[...yy,{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:QB})),tD=(rr.find(e=>e.key==="structure")?.sections??[]).map(e=>({type:e.type,label:e.label,group:eD})),by=[...oD,...tD],Uu=[...yy,{type:"HeroGroup",label:Ft}],Nte=Uu.map(e=>e.type),rD=1,aD=Uu.filter(e=>e.type!=="HeroGroup");function nD(e){return e<rD?Uu:aD}var sD={Flex:{slot:Ke,choices:()=>by},Grid:{slot:Ke,choices:()=>by},HeroGroup:{slot:Ke,choices:nD}};function Sy(e,o=0){let t=sD[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 $u="small",ju="dot",lD=[{label:"Small",value:"small"},{label:"Display",value:"display"}],Ku=[{label:"Dot \u25CF",value:"dot"},{label:"Cross \u2715",value:"cross"},{label:"Slash /",value:"slash"},{label:"Triangle \u25BC",value:"triangle"},{label:"None",value:"none"}],yi={dot:"\u25CF",cross:"\u2715",slash:"/",triangle:"\u25BC",none:""},iD={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)]"},cD={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 Wte(e){return oo(lD,$u,e)}function es(e){return oo(Ku,ju,e)}function Gte(e){return iD[e]}function wy(e,o){return cD[e][o]}var jte=[{value:"none"},{value:"dot"},{value:"cross"},{value:"slash"},{value:"triangle"}];function Cy(e){return Ku.some(o=>o.value===e)?es(e):void 0}var dD="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 Dr(e,o){return e==="row"&&Cy(o)!==void 0}function Kte(e,o){return Dr(e,o)?dD:""}var fD="[&>*: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 qte(e,o){return Dr(e,o)?fD:""}function Vte(e,o){if(!Dr(e,o))return{};let t=Cy(o),r=/^text-\[([\d.]+)em\]$/.exec(wy("small",t))?.[1],a=yi[t];return{"--sf-sep-mark":a===""?"none":JSON.stringify(a),...r?{"--sf-sep-k":r}:{}}}var os={sectionPaddingTop:0,sectionPaddingBottom:0},vy={start:"justify-start",center:"justify-center",between:"justify-between",end:"justify-end"},ky={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"};function Zte(e,o){let t=typeof e=="string"&&e in vy?vy[e]:"",r=typeof o=="string"&&o in ky?ky[o]:"";return[t,r].filter(Boolean).join(" ")}function Jte(e){return e===!0||e==="wrap"?"flex-wrap":""}var Hr="Block widths",Ey=[{label:"Fit content",value:"content",weights:null},{label:"Equal",value:"equal",weights:[1,1]},{value:"bigLeft",weights:[2,1]},{value:"bigRight",weights:[1,2]},{value:"biggerLeft",weights:[3,1]},{value:"biggerRight",weights:[1,3]},{value:"twoThree",weights:[2,3]}],qu=[{label:"Fit content",value:"content",weights:null},{label:"Equal",value:"equal",weights:[1,1]},{label:"Custom",value:"custom",weights:[2,1]}];function Vu(e){return Array.isArray(e)?"custom":e==="equal"?"equal":typeof e=="string"&&e in wi?"custom":"content"}var Oy=4,Ty=10;function uD(e,o){if(!Number.isInteger(o)||o<2||o>Oy||e.length!==o-1||!e.every(a=>typeof a=="number"&&Number.isFinite(a)))return;let t=[],r=0;return e.forEach((a,n)=>{let s=100-r-Ty*(o-1-n),l=Math.min(s,Math.max(Ty,Math.round(a)));t.push(l),r+=l}),t}function Py(e,o,t){if(!Array.isArray(o))return;let r=uD(o,t),a=r?[...r,100-r.reduce((s,l)=>s+l,0)]:[],n={};for(let s=0;s<Oy;s+=1)n[`--${e}-${s+1}`]=a[s]??1;return n}function Qte(e,o,t){let r=Py("sf-share",e,t),a=Py("sf-share-tablet",o,t);return r||a?{...r,...a}:void 0}function pD(e,o){let t=Array.from({length:o},()=>1),r=Ey.find(s=>s.value===e);if(!r?.weights||o<1)return t;let[a,n]=r.weights;return a>1&&(t[0]=a),n>1&&(t[o-1]=n),t}function Si(e,o){if(typeof e!="string"||!(e in wi)||e==="equal")return e;let t=pD(e,o),r=t.reduce((a,n)=>a+n,0);return t.slice(0,-1).map(a=>Math.round(a/r*100))}var Nr="[&>*]:min-w-0 [&>*]:flex-1 [&>*]:basis-0",wi={equal:Nr,bigLeft:`${Nr} [&>*:first-child]:view-wide:grow-[2]`,bigRight:`${Nr} [&>*:last-child]:view-wide:grow-[2]`,biggerLeft:`${Nr} [&>*:first-child]:view-wide:grow-[3]`,biggerRight:`${Nr} [&>*:last-child]:view-wide:grow-[3]`,twoThree:`${Nr} [&>*:first-child]:view-wide:grow-[2] [&>*:last-child]:view-wide:grow-[3]`},mD=`${Nr} [&>*:nth-child(1)]:view-wide:grow-[var(--sf-share-1,1)] [&>*:nth-child(2)]:view-wide:grow-[var(--sf-share-2,1)] [&>*:nth-child(3)]:view-wide:grow-[var(--sf-share-3,1)] [&>*:nth-child(4)]:view-wide:grow-[var(--sf-share-4,1)]`;function hD(e){return Array.isArray(e)?mD:typeof e=="string"?wi[e]??"":""}var ere={all:[{context:"parentType",is:"Flex"},{context:"parent.direction",is:"row"},{any:[{not:{context:"parent.align",set:!0}},{context:"parent.align",is:"stretch"}]},{not:{context:"parent.separator",set:!0}},{not:{context:"parent.loop",is:"scroll"}},{not:{context:"parent.line",is:!0}},{not:{context:"parent.bgImage",set:!0}},{any:[{context:"parent.columns",in:[2,3,4,5,6]},{all:[{not:{context:"parent.columns",is:1}},{context:"parent.share",in:Object.keys(wi)}]}]}]},_y="view-tablet:max-view-desktop:flex-row!",Mr=`${_y} [&>*: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:`${_y} [&>*:nth-child(n)]:view-tablet:max-view-desktop:grow-0! [&>*:nth-child(n)]:view-tablet:max-view-desktop:basis-[content]!`,equal:Mr,bigLeft:`${Mr} [&>*:first-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[2]!`,bigRight:`${Mr} [&>*:last-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[2]!`,biggerLeft:`${Mr} [&>*:first-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[3]!`,biggerRight:`${Mr} [&>*:last-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[3]!`,twoThree:`${Mr} [&>*:first-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[2]! [&>*:last-child:nth-child(n)]:view-tablet:max-view-desktop:grow-[3]!`},xD=`${Mr} [&>*:nth-child(1):nth-child(n)]:view-tablet:max-view-desktop:grow-[var(--sf-share-tablet-1,1)]! [&>*:nth-child(2):nth-child(n)]:view-tablet:max-view-desktop:grow-[var(--sf-share-tablet-2,1)]! [&>*:nth-child(3):nth-child(n)]:view-tablet:max-view-desktop:grow-[var(--sf-share-tablet-3,1)]! [&>*:nth-child(4):nth-child(n)]:view-tablet:max-view-desktop:grow-[var(--sf-share-tablet-4,1)]!`;function ID(e){return Array.isArray(e)||typeof e=="string"&&e in Ry?e:null}function ore(e){if(e.direction!=="row"||Dr(e.direction,e.separator)||e.loop==="scroll"||e.line===!0||Dy(e.columns)!==""||Ny(e.columnsTablet)!=="")return"";let o=ID(e.shareTablet);return o===null?"":typeof o=="string"?Ry[o]:xD}var gD="[&>*]:view-wide:basis-[content]";function tre(e){return hD(e)===""?gD:""}var Yu="Columns",Ci=1,Ay=3,Xu={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)]"},Fy=Ey.filter(e=>e.value==="content"||e.value==="equal"),Ly="equal",Zu=1,By=6,ja="view-wide:flex-wrap [&>*]:view-wide:min-w-0 [&>*]:view-wide:grow-0!",bD={1:`${ja} [&>*]:view-wide:basis-[calc(100%/1)]!`,2:`${ja} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px))/2)]!`,3:`${ja} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_2)/3)]!`,4:`${ja} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_3)/4)]!`,5:`${ja} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_4)/5)]!`,6:`${ja} [&>*]:view-wide:basis-[calc((100%_-_var(--sf-gap-len,0px)_*_5)/6)]!`};function Dy(e){return typeof e=="number"?bD[e]??"":""}var yD={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 Ny(e){return typeof e=="number"?yD[e]??"":""}function rre(e){return e.direction!=="row"||Dr(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":Ny(e.columnsTablet)}function are(e){return e.direction!=="row"||Dr(e.direction,e.separator)||e.loop==="scroll"||e.line===!0?"":Dy(e.columns)}var SD="max-view-wide:flex-wrap [&>*]:max-view-wide:min-w-0 [&>*]:max-view-wide:grow-0 [&>*]:max-view-wide:basis-[content]",wD={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)]"},CD="max-view-wide:flex-nowrap [&>*]:max-view-wide:grow-0 [&>*]:max-view-wide:basis-[content]";function vD(e){return e===!1||e==="nowrap"}function nre(e,o,t){let r=Xu[Number(e)];if(!r)return"max-view-wide:flex-col";let a=vD(t);return My(e,o)?a?CD:SD:a?wD[Number(e)]:r}function sre(e,o){return Number(e)in Xu&&!My(e,o)}function My(e,o){return Number(e)in Xu&&o==="content"}var Hy="Block spacing",Ju=[{label:"Each block",value:"each"},{label:"Gap only",value:"gap"}],kD="sf-box-gap-only";function lre(e){return e==="gap"?kD:""}var zy={label:"Text",defaultProps:{text:"",align:"left",tone:"default",tag:"p",contained:!0}};var{text:ure,tag:pre,...TD}=zy.defaultProps,K=TD,de={...K,tone:"dim"},vi={justify:"start",align:"stretch",wrap:!1,blockSpacing:"gap",padV2:!0},D={...vi,direction:"column",...os},Do=(e,o=e,t=e,r=o)=>({sectionPaddingTop:e,sectionPaddingRight:o,sectionPaddingBottom:e,sectionPaddingLeft:o,sectionPaddingTopPhone:t,sectionPaddingRightPhone:r,sectionPaddingBottomPhone:t,sectionPaddingLeftPhone:r}),G=(e,o,t,r)=>({sizeToken:{step:e,px:o,...r?{stepPhone:r}:{},...t?{pxPhone:t}:{}}});function ts(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]=ts(c,o,n);return{type:r.type,props:{...s,id:o(r.type,n)}}})}var No=()=>({tag:"h2",_partStyles:{text:{textStyle:"heading-2"}}}),ho=()=>({_partStyles:{text:{textStyle:"body-5",color:"accent",letterSpacing:.3,case:"upper",lineHeight:1.5}}});var Qu={...D,gap:12,gapPhone:12,...Do(32,32,28,28)},ep={textStyle:"heading-3",...G("headingSmall",20),weight:500,case:"upper",lineHeight:1.5,letterSpacing:.02},op={textStyle:"body-1",...G("body",15),lineHeight:1.6},Xo=(e,o,t,r=!1)=>({type:"Text",props:{...o,text:"",[It]:e,_partStyles:{text:{...r?ho()._partStyles?.text??{}:{},...t}}}}),rs={title:"title",body:"body"},ki={title:"name",body:"note"},PD=(e=rs)=>({type:V,props:{...Qu,name:"Card"},slots:{[Ke]:[Xo(e.title,{...K,tag:"p",widthFit:"fill"},ep),Xo(e.body,{...de,tag:"p",widthFit:"fill"},op)]}}),Ti=(e,o)=>ts([PD(o)],e);function Wy(e,o){if(e!=="Cards")return o;if(o.template!==void 0)return OD(o);let t=oe(o.id)??"Cards",r=So(o)?ki:rs;return{...o,template:Ti((a,n)=>n==="0"?`${t}~card`:`${t}~card.${n.slice(2)}`,r)}}var ED=e=>{let[o,t]=e?[rs,ki]:[ki,rs];return new Map([[o.title,t.title],[o.body,t.body]])};function Gy(e,o){let t=null;return e.forEach((r,a)=>{let n=r?.props;if(!n)return;let s=n,l=n[It];r.type==="Text"&&typeof l=="string"&&o.has(l)&&(s={...s,[It]:o.get(l)});let c=n[Ke];if(Array.isArray(c)){let d=Gy(c,o);d!==c&&(s={...s,[Ke]:d})}s!==n&&(t??=[...e],t[a]={...r,props:s})}),t??e}function OD(e){if(!Array.isArray(e.template))return e;let o=Gy(e.template,ED(!!So(e)));return o===e.template?e:{...e,template:o}}var Pi="template",Uy="Card template",RD=["Text","ImageBlock","ButtonBlock","Flex"],It="rowField",AD="rowLinkField";function $y(){return{type:"slot",allow:[...RD]}}var FD=[{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=>Wy("Cards",e)}];function gt(){return tr("efficient.card-templates",()=>new Map(FD.map(e=>[e.block,e])))}function Fre(e){for(let o of e){if(typeof o.block!="string"||!o.block)throw new Error("A card template names no block.");let t=[];for(let a of o.blocks??[]){if(typeof a?.type!="string"||!a.type)throw new Error(`The card template of ${o.block} names an empty block.`);t.some(n=>n.type===a.type)||t.push({type:a.type,label:a.label||a.type})}let r=oe(o.typedRows);gt().set(o.block,{block:o.block,fields:o.fields.map(a=>({...a})),blocks:t,typedRows:r,...o.seed?{seed:o.seed}:{}})}}function LD(e,o){let t=e?gt().get(e)?.seed:void 0;return t?t(o):o}function jy(e,o){if(!(o.template===void 0||Array.isArray(o.template)&&o.template.length===0))return o;let{template:t,...r}=o,a=LD(e,r);return a===r?o:a}function Ky(){for(let e of gt().values())if(e.blocks?.length)return!0;return!1}function qy(e){return gt().get(e)?.blocks??[]}function Lre(e){for(let o of gt().values())if(o.blocks?.some(t=>t.type===e))return!0;return!1}function Vy(e){return typeof e=="string"&&gt().get(e)?.typedRows||""}function tp(e){return typeof e=="string"&&gt().has(e)}function Bre(e,o){let t=gt().get(e)?.fields??[];return o?t.filter(r=>(r.kind??"text")===o):t}function BD(e,o){let t=typeof e?.type=="string"?e.type:"";if(!t)return[];let r=gt().get(t)?.fields??[],a=Hu(So(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 Yy(e,o,t){return e?t?BD(t).find(r=>r.key===o)??null:gt().get(e)?.fields.find(r=>r.key===o)??null:null}function ar(e,o=It){let t=e?.[o];return typeof t=="string"?t.trim():""}function Dre(e,o){return e.key||String(o+1)}function Nre(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 Mre(e,o,t=""){let r=o&&e&&typeof e=="object"?e[o]:void 0;if(!Array.isArray(r))return"";for(let a of r){let n=typeof a=="string"?a:a?.src,s=oe(typeof n=="string"?n.trim():void 0);if(s&&s!==t.trim())return s}return""}var Xy={Text:{text:It},ImageBlock:{src:It},ButtonBlock:{label:It,href:AD},Breadcrumb:{currentCrumb:It}};function Zy(e,o,t){return rp(e,o,t)!==""}function rp(e,o,t){let r=Xy[e]?.[t];return r?ar(o,r):""}function DD(e,o){return!o||!e?null:e[o]??""}function Hre(e,o,t){if(!t)return o;let r=null;for(let[a,n]of Object.entries(Xy[e]??{})){let s=DD(t,ar(o,n));s!==null&&(r??={...o},r[a]=s)}return r??o}function ap(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(!_D(d))continue;let f=c===Pi&&tp(l.type)?{owner:l,direct:!0,nested:s!==null,underBox:!1}:s&&{owner:s.owner,direct:!1,nested:s.nested,underBox:s.underBox||l.type===V},h=r(d,f);if(h!==void 0)return h}}},a=r(t,null);return a===void 0?null:a}function Ei(e,o){let t=ap(e,o);return t&&t.owner}function zre(e,o){let t=ap(e,o);return t&&(t.direct?t.owner:null)}function Wre(e,o){let t=ap(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 $z}from"react";import{isNodeList as Oi}from"efficient-easel/data";var Jy="Flex";function as(e){if(ar(e))return"";let o=e?.[Br];return typeof o=="string"?o.trim():""}var ND=new Intl.NumberFormat("en-US");function MD(e){return/^\d+$/.test(e)?ND.format(Number(e)):e}function Kre(e,o){let t=o?o.find(r=>r.key===e)?.value:hy(Jn).find(r=>r.key===e)?.value;return t===void 0?null:MD(t)}function np(e){let o=e.props;if(!o)return{node:e,names:!1};let t=e.type==="Text"&&as(o)!=="",r=o;for(let[n,s]of Object.entries(o)){if(!Oi(s))continue;let l=s.map(np);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!==Jy)return{node:r===o?e:{...e,props:r},names:t};let a=So(r);if(t&&!a&&(r={...r,[Ii]:Jn}),!t&&a===Jn){let{[Ii]:n,...s}=r;r=s}return{node:r===o?e:{...e,props:r},names:!1}}function Qy(e,o,t){for(let r of e){if(r?.props?.id===o)return t;for(let a of Object.values(r?.props??{})){if(!Oi(a))continue;let n=Qy(a,o,r.type===Jy?r:t);if(n!==void 0)return n}}}function qre(e,o){if(!Oi(e))return!0;let t=Qy(e,o,null);if(t===void 0)return!0;if(t===null)return!1;let r=So(t.props);return!r||r===Jn}function eS(e){let o=e?.content;if(!Oi(o))return e;let t=o.map(np);return t.every((r,a)=>r.node===o[a])?e:{...e,content:t.map(r=>r.node)}}function oS(e){return np(e).node}import{applyMark as eae,markupTools as oae,MARKUP_TOOLS as tae,COPY_FIELD_TOOLS as rae,STOREFRONT_MARKUP as aae,tokenizeInline as nae,stripInline as sae,isSafeLinkHref as iS}from"efficient-shell/markup";import{applyMark as ZD,clearStyle as JD,markedAt as QD,markupTools as eN,MARKUP_TOOLS as oN,parseMarkup as tN,RETIRED_MARKS as rN,STOREFRONT_MARKUP as aN,tokenizeInline as iae}from"efficient-shell/markup";var zr=["highlight","strong","quiet"],Wr={highlight:"Highlight",strong:"Bold",quiet:"Quiet"},bt={highlight:{kind:"wordHighlight",delimiter:"@@"},strong:{kind:"wordStrong",delimiter:"++"},quiet:{kind:"wordQuiet",delimiter:"^^"}},nS=Object.fromEntries(zr.map(e=>[bt[e].kind,e])),sS="data-sf-ws",HD=["accent","text","labels"],ns={accent:"var(--accent)",text:"var(--fg)",labels:"var(--fg-dim)"},zD=80,WD=120,GD=100,UD=900,$D=.5,jD=3,KD=-.1,qD=.5,VD=3,sp={font:null,size:null,weight:null,bold:null,italic:null,lineGap:null,textGap:null,colour:null},YD={highlight:{...sp},strong:{...sp},quiet:{...sp}};function tS(e,o,t){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,o),t))}function rS(e,o,t){if(typeof e!="number"||!Number.isFinite(e))return null;let r=10**VD;return Math.round(Math.min(Math.max(e,o),t)*r)/r}function aS(e){return typeof e=="boolean"?e:null}function XD(e){let o=typeof e?.font=="string"&&Yo.some(r=>r.key===e.font)?e.font:null,t=typeof e?.colour=="string"&&HD.includes(e.colour)?e.colour:null;return{font:o,size:tS(e?.size,zD,WD),weight:tS(e?.weight,GD,UD),bold:aS(e?.bold),italic:aS(e?.italic),lineGap:rS(e?.lineGap,$D,jD),textGap:rS(e?.textGap,KD,qD),colour:t}}function lS(e){let o={};for(let t of zr)o[t]=e&&t in e&&e[t]?XD(e[t]):{...YD[t]};return o}function Xre(e){let o=lS(e),t={};for(let r of zr){let a=o[r],n=`--sf-ws-${r}`;if(a.font){let s=Yo.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`]=ns[a.colour])}return t}function Zre(e){let o=e?.word_styles??void 0,t={};for(let r of zr)o&&r in o&&(t[r]=o[r]??null);return lS(t)}var nN=new Set(["strong"]),cS=zr.map(e=>({open:bt[e].delimiter,close:bt[e].delimiter,kind:bt[e].kind,...nN.has(e)?{wordStart:!0}:{}})),dae=[{style:bt.highlight.kind,label:Wr.highlight,title:`${Wr.highlight} word style`},{style:bt.strong.kind,label:Wr.strong,title:`${Wr.strong} word style`},{style:bt.quiet.kind,label:Wr.quiet,title:`${Wr.quiet} word style`}],sN=new Set(cS.map(e=>e.open)),Gr=[...aN.filter(e=>!sN.has(e.open)),...cS];function lp(e){return e.bullet?"- ":e.number!=null?`${e.number}. `:""}function ss(e){return tN(typeof e=="string"?e:"",Gr)}var lN=oN.map(e=>e.style).filter(e=>!rN.includes(e)).filter(e=>Gr.some(o=>o.kind===e));function dS(){return eN(lN)}var fS=Object.fromEntries(zr.map(e=>[bt[e].kind,bt[e].delimiter]));function uS(e,o,t,r){let a=fS[r];if(!a)return ZD(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 pS(e,o,t,r){let a=fS[r];return a?o>=a.length&&e.slice(o-a.length,o)===a&&e.slice(t,t+a.length)===a:QD(e,o,t,r)}function Ur(e){return ss(e).map(o=>lp(o)+hS(o.children)).join(`
36
- `)}function mS(e,o,t){return JD(e,o,t,Gr)}function hS(e){return e.map(o=>o.kind==="text"?o.text:hS(o.children)).join("")}import{jsx as S,jsxs as oa,Fragment as hr}from"react/jsx-runtime";import{cloneElement as Bv,createContext as i3,useContext as c3,useEffect as d3,useId as Dv,useRef as Es,useState as Os}from"react";import{useEasel as $m,useSelectedHost as sn}from"efficient-easel/easel";import{toDateKey as _fe,fromDateKey as Rfe}from"efficient-shell/format";function iN(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.src=="string"}function nr(e){return typeof e=="string"?e:iN(e)?e.src:""}function uae(e,o,t){return ip(e,o.split("."),t)}function ip(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 f=!1,h=c.map(u=>{let x=ip(u,a,t);return x!==u&&(f=!0),x});return f?{...l,[s]:h}:e}let d=ip(c,a,t);return d===c?e:{...l,[s]:d}}var cN=["upload","youtube"],dN="upload",hae={upload:"Upload",youtube:"YouTube"},fN=["background","click"],uN="background",xae={background:"Background",click:"Click to play"};function IS(e){return cN.includes(e)?e:dN}function gS(e){return fN.includes(e)?e:uN}var xS=/^[A-Za-z0-9_-]{11}$/,pN=/^(?:www\.|m\.|music\.)?(?:youtube\.com|youtube-nocookie\.com|youtu\.be)$/;function bS(e){let o=typeof e=="string"?e.trim():"";if(!o)return null;if(xS.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:"||!pN.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&&xS.test(a)?a:null}function cp(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 yS(e){return`https://i.ytimg.com/vi/${e}/maxresdefault.jpg`}function SS(e){return`https://i.ytimg.com/vi/${e}/hqdefault.jpg`}var dp="Play video";var fp={frame:"Video frame",image:"Image"},Iae={any:[{field:"loadingShows",is:"image"},{all:[{not:{field:"loadingShows",set:!0}},{field:"poster",set:!0}]}]};function up(e){let o=e.loadingShows;return o==="image"?"image":o!=null&&o!==""?"frame":nr(e.poster)?"image":"frame"}function gae(e){return nr(up(e)==="image"?e.poster:e.videoFrame)||void 0}import{readHidable as xr,hidableText as f3}from"efficient-easel/draw";import{FOLD_FIELD_MARKER as Nv,LINK_FIELD_MARKER as u3,MEDIA_FIELD_MARKER as p3,SCAFFOLD_FIELD_MARKER as m3,TEXT_FIELD_MARKER as Ht,foldMetaOf as Wt,textFieldIdentifier as Nfe}from"efficient-easel/draw";import{jsx as ES}from"react/jsx-runtime";import{useCallback as IN}from"react";import{useEasel as gN}from"efficient-easel/easel";import{SettingsAction as bN}from"efficient-easel/panel";import{CORNER_SIDES as _i,hasCornerSubset as ls,normalizeCornerSides as yt}from"efficient-easel/screen/lib/content/style-keys";function pp(e){return typeof e=="number"&&Number.isFinite(e)}function wae(e,o){if(!pp(e))return;let t=pi(xt(e));if(Object.keys(t).length===0)return;let r=t[mp];if(typeof r!="string")return t;let a=ls(o)?$r(r,yt(o)??[]):r;return{...t,[mN]:a}}var mN="--sf-section-radius",mp="--sf-card-radius";function $r(e,o){return _i.map(t=>o.includes(t)?e:"0").join(" ")}var wS=[{value:"tl",label:"Top left"},{value:"tr",label:"Top right"},{value:"bl",label:"Bottom left"},{value:"br",label:"Bottom right"}];var hN="--sf-card-box-radius";function hp(e){return typeof e=="number"&&Number.isFinite(e)}function Tae(e,o){if(!hp(e))return;let t=pi(xt(e))[mp];if(typeof t!="string")return;let r=ls(o)?$r(t,yt(o)??[]):t;return{[hN]:r}}function CS(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 xN}from"efficient-easel/draw";function is(e){if(!e)return null;let o=e.lastIndexOf(":");return o>0?{ownerId:e.slice(0,o),slot:e.slice(o+1)}:null}function Ri(e,o,t){let r=is(t?.zone),a=r?xN(e,o,r.ownerId):null;return a&&r?{...a,slot:r.slot}:null}function vS(e,o,t){let r=Ri(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}:hp(l?.props?.cardCorners)?{can:!0,others:d,zone:r.zone,index:r.index,data:{...r.item,props:{...r.item.props,[a]:CS(n,c)}}}:{can:!1,reason:"unset",others:d}}function kS(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 TS(e){return mo("Applied to {n} card","Applied to {n} cards",e)}function PS(e,o){e.can&&o(e.zone,e.index,e.data)}import{useSectionOps as yN}from"efficient-easel/screen/lib/document/use-section-ops";var SN="apply-corners-to-siblings",wN="Apply to all cards";function CN({plan:e,onPress:o}){return ES(bN,{id:SN,label:i(wN),note:kS(e),disabled:!e.can,doneLabel:TS(e.others),onPress:o})}function OS(){let{appState:e,config:o}=gN(n=>n),t=yN(),r=vS(o,e.data.content??[],e.ui.itemSelector),a=IN(()=>{PS(r,t.replaceComponent)},[r,t]);return ES(CN,{plan:r,onPress:a})}import{isShown as HS,lazyShowWhenContext as HN}from"efficient-shell/format";var sr="product",Ai="recordType",_S={key:sr,label:"Product",fields:[]},vN=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,kN=/^[a-z][A-Za-z0-9]*$/,TN=["text","date","images"],xp=new Map,RS=0;function PN(e){if(typeof e.key!="string"||!vN.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===sr)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"||!kN.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(!TN.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 Gae(e){let o=e.map(PN);for(let t of o)xp.set(t.key,t);o.length&&(RS+=1)}function Ip(){return[_S,...xp.values()]}function EN(e){return e===sr?_S:xp.get(e)??null}function gp(){return RS}function cs(e){let o=e?.[Ai];return typeof o!="string"?sr:o.trim()||sr}function bp(e){return cs(e)===sr}function Uae(e,o){let t=EN(e)?.fields??[];return o?t.filter(r=>o.includes(r.kind)):t}var Fi="product",AS="tyre",ON=[Fi,AS];function Kae(e){return ON.includes(e)}var _N="productType",RN={[Fi]:"alloy-wheel",[AS]:"tyre"},AN=["alloy-wheel","tyre"];function FS(e,o){return bp(o)?LS(o)??RN[e]??null:null}function LS(e){if(!bp(e))return null;let o=e?.[_N];return typeof o=="string"&&AN.includes(o)?o:null}function qae(e){let o=e?.root;return LS(o?.props)}var yp="Main Pages",FN="Dynamic Pages",Sp="dynamic",LN="dynamic";function jr(e){return e.kind===LN}var wp="lightbox";function BS(e){return e.kind===wp}function DS(e){let o=[],t=[];for(let r of e){if(jr(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??yp,rows:[r]})}if(t.length){let r=o.findIndex(a=>a.key.startsWith("system:"));o.splice(r===-1?o.length:r,0,{key:Sp,label:FN,rows:t})}return o}var Li=null,NS=null;function BN(e,o){Li=e,NS=o}function Qae(e){BN(e,null)}function ene(){return Li}function ds(){return jr({kind:NS})||Li===Fi}function one(e){return FS(Li??"",e)??"alloy-wheel"}function tne(e){return ds()?cs(e):null}import{addShowWhenFacts as DN}from"efficient-shell/format";import{showWhenOf as Cp,shownForOption as NN,truthy as vp,withRowRules as kp,withRowsShownWhen as fs,withShowWhen as Xe}from"efficient-shell/format";var sne=DN;function MN(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 Tp(e,o,t){let r=!1,a={};for(let[n,s]of Object.entries(e)){if(!HS(Cp(s),o??{},t)){r=!0;continue}let l=zN(s,o?.[n],o??{},t);l!==s&&(r=!0),a[n]=l}return r?a:e}function zN(e,o,t,r){let a=e?.options;if(!Array.isArray(a))return e;let n=a.filter(s=>s?.value===o||!s?.showWhen||HS(s.showWhen,t,r));return n.length===a.length?e:{...e,options:n}}function zS(e,o,t,r){let a=Ri(o,t,r);return{device:e,parentType:a?.item.type,parent:a?.item.props}}function MS(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 MS(t.not,o);for(let r of[t.all,t.any])if(Array.isArray(r)&&r.some(a=>MS(a,o)))return!0;return!1}function pne(e,o={}){return HN({parentType:()=>e.parent?.type??void 0,parent:()=>e.parent?.props??void 0,dynamicPage:()=>ds(),root:()=>e.appState?.data?.root?.props,...o})}var WS=1;function WN(e){return xt(e)}function xne(e){let o=WN(e);return o===null?{}:{"--sf-card-image-radius":`${o}px`}}var GS=1,US="Corners";function GN(e){return xt(e)}function yne(e,o){let t=GN(e);if(t===null)return null;let r=`${t}px`;return{borderRadius:ls(o)?$r(r,yt(o)??[]):r}}var Lt={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]]}},Pp=Object.keys(Lt),jS=[2,3,4,6];function Ep(e,o){return Pp.filter(t=>t===o||e===null||Lt[t].across===e)}function KS(e){return typeof e!="string"||e===""?null:Lt[e]??null}function $S(e,o){return o?6/e.acrossPhone:12/e.across}function qS(e){return[...e.lead??[],...e.desktop]}var UN="sf-wall--";function $N(e){return`${UN}${e}`}function wne(e){let o=Lt[e],t=`.${$N(e)}`,r=[],a=(n,s,l=[])=>{let c=[],d=n.length,f=l.length;l.forEach(([h,u],x)=>{c.push(`${t} > :nth-child(${x+1}){grid-column:span ${h};grid-row:span ${u}}`)}),n.forEach(([h,u],x)=>{c.push(`${t} > :nth-child(${d}n+${f+x+1}){grid-column:span ${h};grid-row:span ${u}}`)});for(let h=1;h<d;h+=1)c.push(`${t}:has(> :nth-child(${d}n+${f+h}):last-child) > :nth-last-child(-n+${h}){grid-column:span ${s};grid-row:span 1}`);return c};return r.push(`${t}{grid-template-columns:repeat(12,minmax(0,1fr))}`),r.push(...a(o.desktop,$S(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,$S(o,!0),o.leadPhone)),r.push("}"),r.join("")}var Bi=12,VS=1,jN=3;var KN=3;function Op(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 qN(e){return Op(e,1,Bi)??KN}function kne(e,o){return Op(e,VS,jN)??(qN(o)===4?2:VS)}function Tne(e){return e==null||e===""?null:Op(e,1,Bi)}var Pne="data-sf-span";function Ene(e){if(!e)return!1;if(e.type==="Grid")return!0;if(e.type==="GalleryB"){if(KS(e.props?.layout))return!1;let o=e.props?.columns;return o!=null&&o!==""}return!1}import{jsx as VN}from"react/jsx-runtime";import*as YN from"efficient-easel/icons";function Di(e){let o=e.replace(/(^|-)([a-z])/g,(r,a,n)=>n.toUpperCase()),t=YN[`${o}Icon`];return t?VN(t,{size:16}):null}import{isNodeList as XN}from"efficient-easel/data";var Ka=["top-left","top-center","top-right","left","center","right","bottom-left","bottom-center","bottom-right"],XS="bottom-left",qa=4,ZN=qa+1,YS=40,JN=30,QN=100,e2=60,Fne=100;var _p={"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 o2(e){let o=Ka.indexOf(us(e));return{band:Math.floor(o/3),column:["start","center","end"][o%3]}}function t2(e){return 1+o2(e).band*(ZN+1)}function Lne(e){return t2(e)+1}function us(e){return Ka.includes(e)?e:XS}function Bne(e){let o=typeof e=="number"&&Number.isFinite(e)?e:0;return Math.max(-YS,Math.min(YS,Math.round(o)))}function Dne(e,o=e2){let t=typeof e=="number"&&Number.isFinite(e)?e:o;return Math.max(JN,Math.min(QN,Math.round(t)))}function Rp(e,o){let t=us(o);return e.filter(r=>us(r?.props?.placement)===t).length}function ZS(e){return`${_p[us(e)]} already holds ${qa} boxes. Move one somewhere else first.`}function JS(e,o){let t=e.filter(r=>r?.props?.id!==o);return Ka.map(r=>{let a=Rp(t,r)>=qa,n=_p[r];return a?{value:r,label:n,disabled:!0,title:ZS(r)}:{value:r,label:n}})}function Ni(e,o){let t=o===void 0?XS:us(o?.props?.placement);return Rp(e,t)>=qa?ZS(t):null}var Mi="HeroGroup";function r2(e){return Ka.map(o=>{let t=Rp(e,o);return{anchor:o,total:t,hidden:t-qa}}).filter(o=>o.hidden>0)}function Ap(e){let o=r2(e);return o.length===0?null:o.map(({anchor:t,total:r,hidden:a})=>{let n=_p[t],s=a===1?"1 is not shown":`${a} are not shown`;return`${n} holds ${r} boxes. The published page draws the first ${qa}, so ${s}. ${a===1?"Move it":"Move them"} somewhere else.`}).join(" ")}function QS(e,o){let t=o;if(t?.type!==Mi)return null;let r=t.props?.id===void 0?"":String(t.props.id);return r?Ni(Fp(e,r),t):null}function Fp(e,o){let t=ow(e,o);return t&&t.ownerType===n2?t.siblings:[]}function ew(e,o){let t=ow(e,o);return t?t.ancestorTypes.filter(r=>r===Mi).length:a2}var a2=1,n2="HeroSlide";function ow(e,o){let t=(r,a,n)=>{if(a>12||!r||typeof r!="object")return null;if(XN(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 s2}from"react/jsx-runtime";var Lp="sf-hint-keep";function tw({children:e}){return s2("span",{className:Lp,children:e})}import{jsx as lr,Fragment as c2,jsxs as fw}from"react/jsx-runtime";import{useContext as d2,useEffect as f2,useId as u2,useState as uw}from"react";import{SettingsField as p2,SettingsSwitch as m2}from"efficient-easel/panel";import{AnchorIcon as h2}from"efficient-easel/icons";import{ScreenDocumentContext as x2}from"efficient-easel/screen/components/ScreenDocumentContext";import{Snippet as I2}from"efficient-shell/ui";import{slugify as g2}from"efficient-shell/format";import{slugify as l2}from"efficient-shell/format";function ps(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}var rw=e=>l2(ps(e));var Hi="homepage";import{slugify as i2}from"efficient-shell/format";var aw=[{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 nw(e){return e.offersCommerce&&e.offersService?aw:aw.filter(o=>!o.needs||(o.needs==="commerce"?e.offersCommerce:e.offersService))}var Bp="#popup:";function sw(e){return`${Bp}${e}`}function lw(e){return e.startsWith(Bp)&&e.slice(Bp.length).trim()||null}function ms(e){return e===Hi?"/":`/${e}`}function iw(e){return`/journal/${e}`}function Kne(e){return`/wheels/${e}`}function zi(e,o){return`${ms(e)}#${o}`}function cw(...e){let o=new Set,t=[];for(let r of e)for(let a of r?.content??[]){let n=ps(a?.props?.anchor);if(!n)continue;let s=i2(n);!s||o.has(s)||(o.add(s),t.push({slug:s,name:n}))}return t}function qne(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 dw(e){return/^\/wheels\/[^/?#]+(?:[?#].*)?$/.test(e)}import{readHidable as b2}from"efficient-easel/draw";function pw({value:e,onChange:o,nameBox:t}){let r=b2(e).text,[a,n]=uw(!1),s=a||r.trim()!=="",l=u2();return fw(c2,{children:[lr(p2,{label:i("Add an anchor"),labelId:l,icon:lr(h2,{}),action:lr(m2,{checked:s,ariaLabelledBy:l,onChange:c=>{n(c),!c&&r!==""&&o("")}})}),s&&t(e,o),s&&lr(y2,{name:r})]})}function y2({name:e}){let o=d2(x2),t=o?.templateId?"":o?.currentSlug??"",[r,a]=uw("");f2(()=>a($a()||window.location.origin),[]);let n=g2(e);if(!n||!t)return null;let s=`${r}${zi(t,n)}`,l=s.replace(/^https?:\/\//,""),c=l.lastIndexOf("#");return lr("div",{className:"sf-anchor-link",children:lr(I2,{value:s,label:i("link"),size:"sm",children:fw("span",{className:"sf-anchor-link-text",children:[lr("span",{className:"sf-anchor-link-path",children:l.slice(0,c)}),lr("span",{className:"sf-anchor-link-hash",children:l.slice(c)})]})})})}import{AdjustIcon as h3,EyeIcon as x3,AnimationIcon as I3,BackgroundIcon as g3,BorderAllIcon as b3,BlockSectionIcon as y3,ColumnWidthsIcon as jm,ColumnsIcon as Mv,CornerIcon as S3,DirectionDownIcon as w3,DirectionLeftIcon as C3,DirectionRightIcon as v3,DirectionUpIcon as k3,EditIcon as T3,GapIcon as P3,GridIcon as E3,GroundIcon as Hv,HashIcon as zv,HeightIcon as O3,ImageIcon as _3,ListIcon as R3,LocationIcon as Pv,PaddingBottomIcon as Wv,PaddingLeftIcon as Gv,PaddingRightIcon as Uv,PaddingTopIcon as $v,PageIcon as A3,StickyIcon as F3,SearchIcon as L3,SquareIcon as B3,TypeIcon as D3,WidthIcon as N3}from"efficient-easel/icons";import{jsx as He,Fragment as Kr,jsxs as qr}from"react/jsx-runtime";import{CaptionIcon as S2,DateIcon as w2,FlagIcon as C2,TitleIcon as v2,ButtonIcon as k2,DollarIcon as T2,HashIcon as P2,LinkIcon as E2,NoteIcon as O2,TagIcon as _2,TextLinesIcon as R2}from"efficient-easel/icons";var mw={body:R2,button:k2,link:E2,label:_2,number:P2,price:T2,note:O2,name:C2,date:w2,caption:S2,title:v2},hw={eyebrow:qr(Kr,{children:[He("path",{d:"M5 6.5h5"}),He("path",{d:"M5 12.5h14"}),He("path",{d:"M5 18h11"})]}),heading:qr(Kr,{children:[He("path",{d:"M6.5 5v14"}),He("path",{d:"M17.5 5v14"}),He("path",{d:"M6.5 12h11"})]}),intro:qr(Kr,{children:[He("path",{d:"M4 5.5v13"}),He("path",{d:"M8 7.5h12"}),He("path",{d:"M8 12h12"}),He("path",{d:"M8 16.5h8"})]}),value:qr(Kr,{children:[He("rect",{x:"2.5",y:"7",width:"19",height:"10",rx:"2"}),He("path",{d:"M6.5 12h7"})]}),quote:qr(Kr,{children:[He("path",{d:"M9.5 5.5C7 7.2 5.5 9.7 5.5 12.8h4v5.7h-5v-5.7"}),He("path",{d:"M19.5 5.5c-2.5 1.7-4 4.2-4 7.3h4v5.7h-5v-5.7"})]}),tag:qr(Kr,{children:[He("rect",{x:"3",y:"5.5",width:"18",height:"13",rx:"2.5"}),He("path",{d:"M8 9.5h8"}),He("path",{d:"M12 9.5v5"})]}),meta:qr(Kr,{children:[He("path",{d:"M4 7h16"}),He("path",{d:"M4 14h3.5"}),He("path",{d:"M10.5 14h3"}),He("path",{d:"M17 14h3"})]})};function Dp({noun:e,size:o=14,strokeWidth:t=1.8,className:r,style:a}){let n=mw[e];return n?He("span",{className:r,style:{display:"inline-flex",...a},"aria-hidden":"true",children:He(n,{size:o})}):He("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:hw[e]})}var cse=Object.keys(mw);var dse=Object.keys(hw);import{parseHexColor as A2}from"efficient-shell/format";var F2="#ffffff";function Np(e){return L2(e)?e:F2}function L2(e){return typeof e=="string"&&A2(e)===e.toLowerCase()}function pse(e){return{"--bg":Np(e)}}function xw(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(Mp(r,o,0))return{type:typeof a=="string"?a:"",props:n??{}}}return null}function Mp(e,o,t){if(t>12||!e||typeof e!="object")return!1;if(Array.isArray(e))return e.some(a=>Mp(a,o,t+1));let r=e.props;return r&&typeof r=="object"&&r.id===o?!0:Object.values(e).some(a=>Mp(a,o,t+1))}function Iw(e,o){let t=e?.content;return Array.isArray(t)?Wi(t,o,0)??[]:[]}function Wi(e,o,t){if(t>12||!e||typeof e!="object")return null;if(Array.isArray(e)){for(let a of e){let n=Wi(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=Wi(a,o,t+1);if(n)return[r,...n]}return null}for(let a of Object.values(e)){let n=Wi(a,o,t+1);if(n)return n}return null}import{SettingsDefaultReset as xo,SettingsDrill as M3,SettingsField as Je,SettingsGroup as H3,SettingsGroupSub as eue,SettingsSegmented as z3,SettingsBorder as W3,SettingsSidesEach as G3,SettingsSwitch as Km,borderSides as U3,borderStartEach as $3}from"efficient-easel/panel";import{ListField as j3}from"efficient-easel/fields";import{DisplayChips as K3}from"efficient-shell/ui";function Va(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 Gi(e,o){return Va(e)[o]!==!1}function Hp(e,o,t){let r=Va(o)[t];return typeof r=="boolean"?r:Gi(e,t)}function gw(e){return Object.values(Va(e)).some(o=>o===!1)}function bw(e){return Object.keys(Va(e)).length>0}function yw(e,o,t){let r={...Va(e)};return t?delete r[o]:r[o]=!1,Object.keys(r).length?r:void 0}function Sw(e,o,t){return{...Va(e),[o]:t}}function xse(e,o,t){let r=Gi(e,t),a=Hp(e,o,t);return r&&a?"":!r&&!a?"hidden":r?"max-view-tablet:hidden":"view-tablet:hidden"}import{AlignmentGrid as q3,Checkbox as nue,ColorSwatch as V3,CornersInput as Y3,DatePicker as sue,DateTimePicker as X3,FOCAL_DEFAULT as lue,IconPicker as jv,COLUMN_COUNT_MAX as Ev,COLUMN_SHARE_MIN as Z3,COLUMN_SHARES_EQUAL as J3,resolveColumnShares as Kv,WidthsBar as Q3,useShellStrings as e6,IconButton as qv,InputNumber as Ov,Slider as o6,Tooltip as vc}from"efficient-shell/ui";import{backendOf as B2}from"efficient-easel/screen/lib/session";var We=B2,Ui=e=>e.blocks;async function ww(e){let o=e.trim();if(!o)return null;let t=We().geocode;if(!t)throw new Error("geocode_unavailable");return t.locate(o)}var zp="Lookup busy \u2014 try again in a moment.",$i=e=>typeof e=="number"&&Number.isFinite(e);function Cse(e){return e.some(o=>{let t=o?.geocode;return t?t.pending||t.manual&&t.lat===void 0&&t.lng===void 0?!0:$i(t.lat)&&t.lat!==o.lat||$i(t.lng)&&t.lng!==o.lng:!1})}async function vse(e,o,{geocode:t=ww,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:zp}})}}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=$i(l.lat)&&l.lat!==s.lat?l.lat:s.lat,d=$i(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 wo,jsxs as Gp}from"react/jsx-runtime";import{useRef as N2}from"react";import{ColorPicker as M2,ColorPickerPanel as H2,ColorSwatch as z2,HexInput as W2,Popover as G2,Tooltip as U2,colorFill as $2,colorSwatchClasses as j2,useShellStrings as K2}from"efficient-shell/ui";import{SettingsDefaultReset as q2,SettingsField as V2}from"efficient-easel/panel";import{typedHex as Wp}from"efficient-easel/pick";import{typedHex as D2}from"efficient-easel/pick";function Cw(e){let o=new Set,t=[];return no(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?D2(l):null;!c||o.has(c)||(o.add(c),t.push({name:s,value:c}))}}),t}var vw="Not set";function Y2({value:e,onChange:o,label:t,id:r,caption:a,inherited:n,ariaLabel:s,choices:l}){return wo(Z2,{value:e,onChange:o,label:i(s??t),id:r,caption:a,inherited:n,choices:l})}function X2(){let{theme:e}=ce();return Cw(e).map(o=>({value:o.value,label:o.name}))}function Z2({value:e,onChange:o,label:t,id:r,caption:a,inherited:n,choices:s}){let l=X2(),c=e?null:Wp(n??""),d=a!==void 0&&(!e||Wp(a)!==Wp(e))?a:null,f=h=>{h!==e&&o(h)};return Gp("div",{className:"sf-colour",children:[s?wo(J2,{id:r,value:e,onChange:o,label:t,presets:l,follows:c,choices:s}):wo(M2,{id:r,value:e,onChange:f,label:t,presets:l,fallback:c??void 0,size:"md",align:"start"}),d!==null?wo("span",{className:"sf-colour-caption",children:d}):wo("span",{className:"sf-colour-hexwrap",children:wo(W2,{value:e||c||"",onChange:f,label:i("{label} hex code",{label:t}),placeholder:e||c?void 0:i(vw),className:c?"sf-colour-hex is-inherited":"sf-colour-hex",size:"md"})})]})}function J2({value:e,onChange:o,label:t,id:r,presets:a,follows:n,choices:s}){let l=K2().color,c=e||n||"",d=s.findIndex(u=>u.selected),f=d>=0,h=N2(d);return f&&(h.current=d),wo(G2,{id:r,trigger:wo("span",{"aria-hidden":"true",className:"absolute inset-0",style:$2(c)}),triggerLabel:l.swatch(t,c.toUpperCase()||l.none),triggerClassName:j2({size:"md"}),"aria-label":l.panel(t),align:"start",children:Gp("div",{className:"sf-colour-window",children:[wo("div",{role:"group","aria-label":t,className:"sf-colour-choices",children:s.map(u=>wo(U2,{content:u.label,children:wo(z2,{color:u.color,"aria-label":u.label,selected:u.selected,onClick:()=>{u.selected||u.onPick()}})},u.label))}),wo(H2,{value:f?"":e,onChange:o,label:t,presets:a,fallback:(f?c:n)??void 0},h.current)]})})}function Mo({label:e,icon:o,changed:t,hint:r,onReset:a,resetTo:n,children:s,...l}){return Gp(V2,{label:e,icon:o,htmlFor:l.id,changed:t,hint:r,action:a?wo(q2,{words:Q()?.panel,label:e,changed:!!t,detail:n,onReset:a}):void 0,children:[Y2({...l,label:e}),s]})}function hs({label:e,icon:o,value:t,inherited:r,resetTo:a,onChange:n,onReset:s,hint:l,choices:c}){let d=!!t;return wo(Mo,{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 t6}from"efficient-easel/screen/lib/document/style-fields";import{jsx as Q2}from"react/jsx-runtime";import{useEffect as eM,useState as oM}from"react";import{clearRangeOf as tM,markSelection as rM,useCaretEdit as aM}from"efficient-easel/copy";import{TextToolbar as nM}from"efficient-shell/ui";function sM(e,o,t){return rM(e,o,t,uS)}function kw(e,o){let t=tM(o,e.length),r=mS(e,t.start,t.end);return r.text===e?null:r}function lM(e){let[o,t]=oM(null);return eM(()=>{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 iM({target:e,value:o,onChange:t,disabled:r=!1,label:a="Formatting"}){let n=aM({target:e,onChange:t}),[s,l]=lM(e),c=u=>n(x=>{let I=sM(o,u,x);return l({start:I.selectionStart,end:I.selectionEnd}),I}),d=dS(),f={};if(s)for(let u of d)f[u.style]=pS(o,s.start,s.end,u.style);let h=r?null:kw(o,s);return Q2(nM,{offered:new Set(d.map(u=>u.style)),onMark:u=>c(u),pressed:f,disabled:r,"aria-label":i(a),className:"sf-markup-bar",clear:h?{onClear:()=>n(()=>{let u=e.current,x=u&&u.ownerDocument.activeElement===u?{start:u.selectionStart??0,end:u.selectionEnd??0}:null,I=kw(o,x)??{text:o,selectionStart:x?.start??0,selectionEnd:x?.end??0};return l({start:I.selectionStart,end:I.selectionEnd}),I})}:void 0})}var Up=iM;import{deviceField as Ct}from"efficient-easel/screen/lib/document/device-fields";import{NO_CONTROL_FIELD as r6,NoControlMark as a6,noControlField as Vv}from"efficient-easel/screen/lib/document/panel-no-control-mark";var $p="__ownBox";function Tw(e){return!!e&&typeof e=="object"&&e[$p]===!0}function ji(e,o,t){return typeof e=="number"?e:typeof o=="number"?o:t}var Ki=void 0;import{phoneKey as Mt,tabletKey as nn}from"efficient-easel/draw";import{jsx as Kp,Fragment as fM}from"react/jsx-runtime";import{createContext as uM,useContext as pM}from"react";var qi={ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},Vi={Events:["posts"],SubscribeBlogs:["posts"]};var cM=["anchor"],dM=/^href$|Href$|^url$|Url$|^link$|^mailto$|^tel$/;function xs(e){return cM.includes(e)||dM.test(e)}var jp={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"}}};jp.ContactLocations={"locations[].lat":{verb:"pii"},"locations[].lng":{verb:"pii"},"locations[].mapsUrl":{verb:"pii"},"locations[].geocode":{verb:"pii"}};var Jse=Object.fromEntries(Object.entries(qi).map(([e,o])=>[e,Object.keys(o)])),Qse=Object.fromEntries(Object.entries(Vi).map(([e,o])=>[e,[...o]]));import{NoControlMark as mM}from"efficient-easel/screen/lib/document/panel-no-control-mark";var Pw=uM(!1);function Ew({children:e}){return Kp(Pw.Provider,{value:!0,children:e})}function hM(){return pM(Pw)}function Ow({name:e,children:o}){return!hM()||!e||!xM(e)||xs(e)?Kp(fM,{children:o}):Kp(mM,{})}function xM(e){return/^[A-Za-z0-9_$]+$/u.test(e)}var qp="off",Vp="none",Yp=[{label:"None",value:"off"},{label:"1, 2, 3",value:"plain"},{label:"01, 02, 03",value:"padded"},{label:"N\xB001, N\xB002",value:"numero"}],Xp=[{label:"None",value:"none"},{label:"Hairline",value:"hairline"}];function lle(e){return oo(Yp,qp,e)}function ile(e){return oo(Xp,Vp,e)}var _w="sf-card-index",Is="sf-card-index",cle="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",IM={plain:`counter(${Is})`,padded:`counter(${Is}, decimal-leading-zero)`,numero:`"N\xB0" counter(${Is}, decimal-leading-zero)`};function dle(e,o){return o==="off"?"":`.${e}{counter-reset:${Is}}.${e} .${_w}{counter-increment:${Is}}.${e} .${_w}::before{content:${IM[o]}}`}function fle(e){return e==="hairline"?"border border-line hover:border-accent":""}var Rw=[{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 n6}from"efficient-easel/draw";import{jsx as Co}from"react/jsx-runtime";import{SettingsDefaultReset as vM,SettingsField as Zp}from"efficient-easel/panel";import{useSelectedHost as kM}from"efficient-easel/easel";import{FOCAL_DEFAULT as TM}from"efficient-shell/format";import{ImageIcon as Jp,PlayIcon as Fw}from"efficient-easel/icons";import{ImageFocusPoint as PM,MediaUploadField as EM}from"efficient-shell/ui";import{useContext as OM}from"react";import{ScreenDocumentContext as _M}from"efficient-easel/screen/components/ScreenDocumentContext";import{phoneKey as RM,tabletKey as Lw}from"efficient-easel/draw";import{usePreviewDevice as AM}from"efficient-easel/draw/client";import{formatFocal as gM,parseFocal as bM}from"efficient-shell/format";var yM="sf-focus-phone",SM="--sf-focus-phone",wM="sf-focus-tablet",CM="--sf-focus-tablet",gs=e=>{if(typeof e!="string"||!/^\s*-?\d+(\.\d+)?%\s+-?\d+(\.\d+)?%\s*$/.test(e))return null;let{x:o,y:t}=bM(e);return gM(o,t)};function Aw(e,o){let t=gs(o),r=gs(e)??t;return{className:[t?wM:"",r?yM:""].filter(Boolean).join(" "),style:{...t?{[CM]:t}:{},...r?{[SM]:r}:{}}}}import{shownTier as Qp}from"efficient-easel/screen/lib/document/device-fields";import{onDesktopWords as FM}from"efficient-easel/screen/lib/document/box-fields";import{requestMediaPick as LM}from"efficient-easel/screen/lib/media-picker";import{useEaselHost as BM}from"efficient-easel/screen/lib/host";import{useEaselSession as DM}from"efficient-easel/screen/lib/session-context";function NM(e,o,t,r=!0){let a=Qp(t),n=typeof e[o]=="string"&&e[o]?String(e[o]):TM;if(a==="desktop")return{ownView:!1,followed:n,followsView:"desktop",own:void 0,focus:n,key:o};let s=a==="tablet"?Lw(o):RM(o),l=gs(e[s])??void 0,c=a==="mobile"&&r?gs(e[Lw(o)])??void 0:void 0,d=c??n;return{ownView:!0,followed:d,followsView:c?"tablet":"desktop",own:l,focus:l??d,key:s}}function MM(e,o,t){let r=kM();if(!o||!r)return null;let a=r.values??{};if(t&&!t(a,Qp(e)))return null;let n=NM(a,o,e,t?t(a,"tablet"):!0),s=r.onChange;return{...n,set:l=>s(n.key,l),clear:()=>s(n.key,Ki)}}function Bw({value:e,onChange:o,label:t,accept:r,placeholder:a,focusKey:n,focusWhen:s,frameKey:l,fieldKey:c}){let d=BM(),f=DM(),h=i(t),u=AM(),x=r.startsWith("video"),I=MM(u,x?void 0:n,s),y=!!n&&Qp(u)!=="desktop",P=OM(_M),v=em(),w=l&&c?{video:c,frame:l}:null,g=k=>LM(d,{accept:r,title:h,...k?{file:k}:{}}).then(L=>!L||!w?L?.url??null:(v({[w.video]:L.url,[w.frame]:L.posterUrl??""}),null)),T=w?k=>k?o(k):v({[w.video]:"",[w.frame]:""}):o,C=nr(e);if(y&&(!I||!C))return null;if(P&&!P.capabilities.mediaEditing)return Co(Zp,{label:h,icon:x?Co(Fw,{}):Co(Jp,{}),children:Co("div",{className:"sf-image-slot-inert",children:x?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 F=I?.ownView&&C?Co(vM,{words:Q()?.panel,label:i("Image focus"),changed:!!I.own,detail:FM(k=>i(k),I.followed,I.followsView),onReset:I.clear}):void 0;return y&&I?Co(Zp,{label:h,icon:Co(Jp,{}),action:F,children:Co("div",{style:{flex:"1 1 auto",minWidth:0},children:Co(PM,{value:I.focus,onChange:I.set,label:i("Image focus"),image:C,hint:null})})}):Co(Zp,{label:h,icon:x?Co(Fw,{}):Co(Jp,{}),children:Co("div",{style:{flex:"1 1 auto",minWidth:0},children:Co(EM,{value:C,onChange:T,onPick:g,accept:x?"video/*":"image/*",kind:x?"video":"image",placeholder:a===void 0?void 0:i(a),maxSizeBytes:We(f).media.maxUploadBytes,...I?{focus:I.focus,onFocusChange:I.set}:{}})})})}import{jsx as Dw}from"react/jsx-runtime";import{useId as HM}from"react";import{FieldSelect as zM}from"efficient-easel/fields";import{SettingsField as WM}from"efficient-easel/panel";function GM(e){return e.map(({value:o,label:t,note:r})=>({value:o,label:t,...r?{meta:r}:{}}))}function Nw({label:e,options:o,value:t,onChange:r,emptyLabel:a,icon:n,hint:s}){let l=HM(),c=`${l}-label`,d=`${l}-button`,f=Array.isArray(t)?t:[];return Dw(WM,{label:i(e),labelId:c,icon:n,hint:s,children:Dw(zM,{id:d,multiple:!0,value:f,options:GM(o),onChange:r,placeholder:a===void 0?i("None"):i(a),ariaLabelledBy:`${c} ${d}`,inline:!0})})}import{jsx as Ze,jsxs as Yr,Fragment as wH}from"react/jsx-runtime";import{useCallback as Qw,useContext as CH,useId as tC,useRef as eC,useState as oC}from"react";import{ThemeIcon as vH}from"efficient-easel/icons";import{Button as kH,useClickOutside as TH}from"efficient-shell/ui";import{SettingsField as PH}from"efficient-easel/panel";import{ScreenDocumentContext as EH}from"efficient-easel/screen/components/ScreenDocumentContext";import{jsx as te,jsxs as cr,Fragment as ZM}from"react/jsx-runtime";import{parseHexColor as JM}from"efficient-shell/format";import{Button as tm,IconButton as QM,Tooltip as eH}from"efficient-shell/ui";import{jsx as ir,jsxs as UM}from"react/jsx-runtime";import{AccentIcon as $M}from"efficient-easel/icons";import{Button as jM,Tooltip as KM}from"efficient-shell/ui";function om(e){return yo(e).background}function qM(e){let o=er(e.accent,om(e));return o===null?null:{ratio:o,grade:Wa(o)}}function VM(e){let o=om(e),t=er(e.accent,o);return t===null?[]:Lb(e.accent).filter(r=>{let a=er(r,o);return a!==null&&a>t&&Wa(a)==="good"})}var YM={good:"Easy to read","large-only":za["large-only"],hard:za.hard};function Mw({value:e,onChange:o}){let t=qM(e),r=t?.grade,a=t&&t.grade!=="good"?VM(e):[];return ir(Mo,{label:i("Main color"),icon:ir($M,{}),hint:t?i(YM[t.grade]):void 0,value:e.accent,onChange:n=>o({...e,accent:n}),children:a.length>0?ir("div",{className:"w-full min-w-0",children:UM("div",{className:"sf-readability",children:[ir("p",{className:"sf-readability-advice",children:XM(r,!0)}),ir("div",{className:"sf-readability-suggestions",children:a.map(n=>{let s=er(n,om(e));return ir(KM,{content:i("Use {colour}",{colour:n.toUpperCase()}),children:ir(jM,{variant:"secondary",className:"sf-readability-suggestion",leftIcon:ir("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 XM(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 oH,ChevronDownIcon as zw,ChevronUpIcon as tH,GroundIcon as rH,LayoutIcon as aH,SquareIcon as nH,TextSmallIcon as sH,TypeIcon as Hw}from"efficient-easel/icons";var bs=e=>i("Theme {n}",{n:e+1});function Ww({colors:e}){let o=yo(e),t=Xn(e)??o.accent;return cr("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")}),cr("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")}),cr("span",{className:"sf-theme-row",children:[te("span",{className:"sf-theme-btn",style:{background:t,color:Eu(e,o.accent)},children:i("button")}),te("span",{className:"sf-theme-mini",style:{background:o.surface,borderColor:o.line},children:i("card")})]})]})}var rm={"Text color":te(Hw,{}),"Label color":te(sH,{}),Background:te(rH,{}),"Panels & cards":te(aH,{}),Borders:te(nH,{}),"Button color":te(oH,{}),"Button text color":te(Hw,{})};function lH({label:e,colorKey:o,value:t,onChange:r,idPrefix:a="sf-theme-ink"}){let n=`${a}-${o}`;return te(Mo,{label:i(e),icon:rm[e],id:n,value:t,onChange:s=>r(o,s)})}function iH({value:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button`,n=e!==void 0&&JM(e)===e.toLowerCase(),s=n?e:o;return te(Mo,{label:i("Button color"),icon:rm["Button color"],id:a,value:s,caption:n?s:i("Main"),onChange:t})}function cH({colors:e,accent:o,onChange:t,idPrefix:r="sf-theme-ink"}){let a=`${r}-button-ink`,n=Bb(e),s=Eu(e,o),l=Xn(e)??o,c=Wa(er(s,l)??0);return te(Mo,{label:i("Button text color"),icon:rm["Button text color"],hint:n&&c!=="good"?i("{grade} on the button",{grade:i(za[c])}):void 0,id:a,value:s,caption:n?s:i("Auto"),onChange:t})}var dH=[{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 am({colors:e,onChange:o,idPrefix:t}){let r=yo(e);return te(ZM,{children:dH.map(a=>"colour"in a?te(Mw,{value:e,onChange:o},"colour"):"moduleBreak"in a?te("div",{className:"sf-theme-module-break","aria-hidden":"true"},"module-break"):"button"in a?te(iH,{value:e.button,accent:r.accent,onChange:n=>o({...e,button:n}),idPrefix:t},"button"):"buttonInk"in a?te(cH,{colors:e,accent:r.accent,onChange:n=>o({...e,buttonInk:n}),idPrefix:t},"buttonInk"):te(lH,{label:a.label,colorKey:a.key,value:r[a.key],onChange:(n,s)=>o({...e,[n]:s}),idPrefix:t},a.key))})}function Yi({index:e,colors:o,selected:t,role:r="radio",open:a,editable:n=!0,onPick:s,onEdit:l,onChangeColors:c}){let d=yo(o),f=bs(e),h=e<Pu.length&&!o.brandInk?Pu[e]:null,u=Wa(er(d.text,d.background)??0),x=h?JSON.stringify(o)!==JSON.stringify(h):!1,I=a!==void 0;return cr("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":f,className:"sf-theme-pick",onClick:s,children:te(Ww,{colors:o})}),cr("div",{className:"sf-theme-foot",children:[te("span",{className:"sf-theme-name",children:f}),u!=="good"&&te("span",{className:"sf-theme-warn",children:i(za[u])}),n&&l&&I&&te("span",{className:"sf-theme-edit",children:te(eH,{content:a?i("Collapse"):i("Edit colors"),children:te(QM,{size:"sm","aria-expanded":a,"aria-controls":`sf-theme-colours-${e}`,"aria-label":a?i("Collapse {name}",{name:f}):i("Edit colors for {name}",{name:f}),onClick:l,children:a?te(tH,{size:14}):te(zw,{size:14})})})}),n&&l&&!I&&te(tm,{variant:"secondary",size:"sm",className:"sf-theme-edit","aria-label":i("Edit {name}",{name:f}),onClick:l,children:i("Edit")})]}),a&&cr("div",{id:`sf-theme-colours-${e}`,className:"sf-theme-colours",children:[te(am,{colors:o,onChange:y=>c?.(y)}),h&&te(tm,{variant:"link",size:"sm",className:"sf-theme-reset",disabled:!x,onClick:()=>c?.({...h}),children:x?i("Reset {name} to the preset",{name:f}):i("Not changed")})]})]})}function Gw({colors:e,name:o,nameId:t,open:r,menuId:a,labelId:n,buttonRef:s,onClick:l,onKeyDown:c,onEdit:d}){return cr("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(Ww,{colors:e}):te("span",{className:"sf-secttheme-nopreview","aria-hidden":"true"})}),cr("div",{className:"sf-theme-foot",children:[te("span",{id:t,className:"sf-theme-name",children:o}),d&&te(tm,{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(zw,{size:12,className:"sf-multi-caret","aria-hidden":"true"})})]})]})}import{useCallback as dm,useEffect as qw,useRef as Qi}from"react";import{currentEaselSession as pH}from"efficient-easel/screen/lib/session";import{useEaselSession as mH}from"efficient-easel/screen/lib/session-context";import{useSyncExternalStore as fH}from"react";var $w,nm=null,Vr=null,Xi=0,sm=new Set;function lm(e){$w=e;for(let o of sm)o()}function im(e){nm=e,Xi+=1,Vr&&clearTimeout(Vr),Vr=null,lm(void 0)}function Zi(e){Xi+=1,lm(e)}function Bt(e=250){nm&&(Vr&&clearTimeout(Vr),Vr=setTimeout(()=>{Vr=null;let o=nm;if(!o)return;let t=++Xi;o().then(r=>{t===Xi&&lm(r)}).catch(()=>{})},e))}function Uw(){return $w}function uH(e){return sm.add(e),()=>{sm.delete(e)}}function Ji(){return fH(uH,Uw,Uw)}var cm=new Set;function jw(e){return cm.add(e),()=>{cm.delete(e)}}async function Kw(){let e=(await Promise.allSettled([...cm].map(async o=>o()))).find(o=>o.status==="rejected");if(e)throw e.reason}import{WebsiteBackendError as hH}from"efficient-easel/screen/lib/backend-error";function Vw(e=pH()){return(o,t,r)=>{let a=We(e).theme;return a?a.update(o,r?{siteId:r}:void 0):Promise.reject(new hH("invalid","This backend stores no site theme."))}}function Yw(e){return e.themeFromDocument?{status:"skipped",reason:"template"}:e.token?null:{status:"skipped",reason:"no-token"}}async function xH(e,o=Vw()){let{themeFromDocument:t,token:r,siteId:a,patch:n}=e,s=Yw({themeFromDocument:t,token:r});if(s)return s;if(Object.keys(n).length===0)return{status:"skipped",reason:"empty"};try{return await o(n,r,a??void 0),{status:"saved"}}catch(l){return{status:"failed",error:l}}}function Ya({themeFromDocument:e,tokenRef:o,siteId:t,onResult:r}){let a=Qi(null),n=Qi({}),s=mH(),l=Qi(r);l.current=r;let c=Qi(null),d=dm(u=>{if(u.status==="skipped"){let x=`skipped:${u.reason}`;if(c.current===x)return;c.current=x}else c.current=null;l.current?.(u)},[]),f=dm(async()=>{a.current&&(clearTimeout(a.current),a.current=null);let u=n.current;n.current={};let x=await xH({themeFromDocument:e,token:o?.current,siteId:t,patch:u},Vw(s));return d(x),x.status==="saved"&&Bt(),x.status==="failed"&&(n.current={...u,...n.current}),x},[e,o,t,d,s]),h=dm((u,x=!1)=>{let I=Yw({themeFromDocument:e,token:o?.current});if(I){d(I);return}n.current={...n.current,...u},a.current&&clearTimeout(a.current),x?f():a.current=setTimeout(()=>{f()},500)},[e,o,f,d]);return qw(()=>()=>{f()},[f]),qw(()=>jw(async()=>{if(!a.current&&Object.keys(n.current).length===0)return;let u=await f();if(u.status==="failed")throw u.error}),[f]),{persist:h,flush:f}}var fm=[{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}],IH=fm.filter(e=>e.ink);function gH(e){let o={color:e.fg};for(let{role:t,token:r}of IH)o[r]=e[t];return o}var bH={fg:"var(--overlay-fg)",line:"color-mix(in srgb, var(--overlay-fg) 24%, transparent)",muted:"color-mix(in srgb, var(--overlay-fg) 76%, transparent)"},Xw=Object.freeze(gH(bH));var dr=-1,yH="sf-section-accent",Zw="Color",Jw=new Set(["CategoryBar","DocTabs"]),bie=new Set(["Flex"]),um=0;function Zo(e){return e===dr?null:typeof e=="number"&&Number.isInteger(e)&&e>=0?e:um}function pm(e){return e??dr}function SH(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 fm)t[`--sf-sec-${r}`]=`var(${o}-${r}, var(--theme-${r}))`;return t}function yie(e){let o=Zo(e.sectionAccent);return o===null?null:{className:yH,style:SH(o)}}var OH="Follow the page",Lie="Follow the slideshow",_H=e=>i("Editing {name} changes it everywhere.",{name:e});function RH({colors:e}){if(!e)return Ze("span",{className:"sf-secttheme-chip sf-secttheme-chip--none","aria-hidden":"true"});let o=yo(e);return Yr("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 AH({themes:e,value:o,onPick:t,onEdit:r,menuId:a,followLabel:n}){return Yr("div",{className:"sf-multi-menu sf-secttheme-menu",id:a,role:"listbox",children:[n!==void 0&&Yr(wH,{children:[Yr("button",{type:"button",role:"option","aria-selected":o===null,className:`sf-secttheme-item${o===null?" is-active":""}`,onClick:()=>t(dr),children:[Ze(RH,{}),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:bs(o)})}),e.map((s,l)=>l===o?null:Ze(Yi,{role:"option",index:l,colors:s,selected:!1,onPick:()=>t(l),onEdit:()=>r(l)},l))]})}function FH({index:e,colors:o,onChange:t,onDone:r}){let a=bs(e),n=tC();return Yr("div",{className:"sf-secttheme-sheet",children:[Yr("div",{className:"sf-secttheme-sheet-head",children:[Ze("span",{children:a}),Ze(kH,{variant:"secondary",className:"sf-secttheme-done",onClick:r,children:i("Done")})]}),Ze("div",{className:"sf-secttheme-rows",children:Ze(am,{colors:o,onChange:t,idPrefix:n})}),Ze("p",{className:"sf-secttheme-warn",children:_H(a)})]})}function rC({value:e,onChange:o,followLabel:t,hint:r}){let{theme:a,setTheme:n}=ce(),s=no(a),l=CH(EH),c=l?.tokenRef,d=l?.siteId??null,f=!l?.capabilities?.hasSiteTheme,{persist:h,flush:u}=Ya({themeFromDocument:f,tokenRef:c,siteId:d}),x=no(s),I=x.themes,y=Zo(e),P=y!==null?I[y]:void 0,v=P??(I.length?Ha(x):void 0),[w,g]=oC(!1),[T,C]=oC(null),F=eC(null),k=eC(null),L=tC(),E=Qw(()=>{g(!1),C(null)},[]),R=Qw(()=>{!w&&T===null||(u(),E())},[w,T,E,u]);TH(F,R);let N=_=>{o(_),E()},b=_=>{if(T===null)return;let A=I.map((Z,q)=>q===T?_:Z),H={...x,themes:A};n(H),h({selected_preset:H.selected,theme_presets:H.themes})};return Yr("div",{className:"sf-secttheme",ref:F,children:[Ze(PH,{label:i("Theme"),icon:Ze(vH,{}),labelId:`${L}-label`,hint:r,children:Ze(Gw,{colors:v,onEdit:y!==null?()=>{C(y),g(!1)}:void 0,name:P?bs(y):i(t??OH),nameId:`${L}-value`,labelId:`${L}-label`,open:w,menuId:L,buttonRef:k,onClick:()=>{C(null),g(_=>!_)},onKeyDown:_=>{_.key==="Escape"&&(w||T!==null)&&(_.preventDefault(),E())}})}),w&&T===null&&Ze("div",{onKeyDown:_=>{_.key==="Escape"&&(_.preventDefault(),E(),k.current?.focus())},children:Ze(AH,{themes:I,value:y,onPick:N,onEdit:_=>{C(_),g(!1)},menuId:L,followLabel:t})}),T!==null&&I[T]&&Ze(FH,{index:T,colors:I[T],onChange:b,onDone:()=>{u(),E(),k.current?.focus()}})]})}import{jsx as aC}from"react/jsx-runtime";import{useId as LH}from"react";import{FieldSelect as BH}from"efficient-easel/fields";import{SettingsField as DH}from"efficient-easel/panel";function NH(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 Wie({label:e,options:o,fallback:t,value:r,onChange:a,placeholder:n,bare:s=!1,icon:l}){let c=LH(),d=`${c}-label`,f=`${c}-button`,h=r??"",u=o.some(P=>P.value===h)?h:t,x=i(e),I=n===void 0?void 0:i(n),y=aC(BH,{id:f,value:u,options:NH(o),onChange:a,placeholder:I,searchPlaceholder:I,...s?{ariaLabel:x}:{ariaLabelledBy:`${d} ${f}`},searchable:!0,groupCount:!0,inline:!0});return s?y:aC(DH,{label:x,labelId:d,icon:l,children:y})}import{jsx as Zr,jsxs as x5}from"react/jsx-runtime";import{SettingsField as EC}from"efficient-easel/panel";import{LinkIcon as I5}from"efficient-easel/icons";import{LinkPicker as g5,TextLinkField as b5}from"efficient-shell/ui";import{useEffect as PC,useMemo as rc,useRef as y5,useState as tc}from"react";import{currentEaselSession as MH}from"efficient-easel/screen/lib/session";function nC(){return MH().auth.token}import{currentEaselSession as S5}from"efficient-easel/screen/lib/session";import{useScreenDocument as w5}from"efficient-easel/screen/components/ScreenDocumentContext";var HH=()=>({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 sC(e,o,t){if(!e)return"page";if(lw(e))return"popup";if(e.startsWith("/journal/"))return"blog";if(dw(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 mm(e,o){let t=HH(),r=e.pages.map(f=>({value:ms(f.slug),label:f.title})),a=o?.pageOptions?o.pageOptions(r):r,n=a.map(f=>f.value),s=e.pages.map(f=>({label:f.title,options:cw(...f.docs).map(h=>({value:zi(f.slug,h.slug),label:h.name}))})).filter(f=>f.options.length>0),l=f=>{switch(f){case"page":return{type:"select",options:a,placeholder:t.choosePage};case"anchor":return{type:"groups",groups:s,placeholder:s.length?t.chooseSection:t.noSections};case"blog":return{type:"select",options:e.posts.map(h=>({value:iw(h.slug),label:h.title||h.slug})),placeholder:t.choosePost};case"product":return{type:"select",options:e.products.map(h=>({value:h.href,label:h.name||h.href})),placeholder:t.chooseProduct};case"popup":return{type:"select",options:(e.popups??[]).map(h=>({value:sw(h.slug),label:h.title||h.slug})),placeholder:t.choosePopup};case"custom":return{type:"text"}}},c=nw(e.offers).map(f=>({value:f.value,label:i(f.label),target:l(f.value),...f.value==="anchor"?{hint:t.sectionHint}:{},...f.value==="blog"||f.value==="product"||f.value==="popup"?{hideWhenEmpty:!0}:{}}));if(!o)return{kinds:c,rules:{kindOf:f=>sC(f,n),targetOf:f=>f,readFilter:()=>null,withFilter:f=>f}};let d=f=>{let h=o.withFilter(f,null);return o.listingPaths.includes(h)?h:f};return{kinds:c,rules:{kindOf:f=>sC(f,n,{listingPaths:o.listingPaths,targetOf:d}),targetOf:d,readFilter:o.readFilter,withFilter:o.withFilter},filtersFor:f=>o.listingPaths.includes(f)?o.filtersFor(f):null}}import{useEaselSession as C5}from"efficient-easel/screen/lib/session-context";var U=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function so(e,o){if(typeof e=="string")return e||o;if(e&&typeof e=="object"&&"text"in e){let t=e.text;return oe(t)??o}return o}function lC(e,o){return U(e)??o}function Dt(e,o){return typeof e=="boolean"?e:o}function ec(e,o){if(!Array.isArray(e))return o;let t=e.map(r=>typeof r=="string"?r:so(r?.text,"")).map(r=>r.trim()).filter(Boolean);return t.length?t:o}var cC=["delay","scroll","exit"],dC=["all","chosen","except"],fC=["visit","days","never","once"],zH=["all","desktop","phone"],WH=["stop","continue"],uC={min:0,max:60},pC={min:10,max:90},mC={min:1,max:90},Jo={autoOpen:!1,trigger:"delay",autoOpenDelaySec:15,scrollPercent:50,showOn:"all",showOnPages:[],devices:"all",hideAfter:"days",hideDays:7,afterSubmit:"stop",startDate:null,endDate:null};function _o(e,o,t){return typeof o=="string"&&e.includes(o)?o:t}function Xa(e,o,t){let r=lC(e,t);return Math.min(o.max,Math.max(o.min,Math.round(r)))}function GH(e){return typeof e.hideAfter=="string"?_o(fC,e.hideAfter,Jo.hideAfter):e.oncePerSession===!0?"visit":e.oncePerSession===!1?"never":Jo.hideAfter}function UH(e){return Array.isArray(e)?e.map(o=>typeof o=="string"?o.trim():"").filter(Boolean).map(o=>o.startsWith("/")?o:`/${o}`):[]}function iC(e){if(typeof e!="string")return null;let o=e.trim();return/^\d{4}-\d{2}-\d{2}$/.test(o)?o:null}function hC(e){let o=e??{},t=Jo;return{autoOpen:Dt(o.autoOpen,t.autoOpen),trigger:_o(cC,o.trigger,t.trigger),autoOpenDelaySec:Xa(o.autoOpenDelaySec,uC,t.autoOpenDelaySec),scrollPercent:Xa(o.scrollPercent,pC,t.scrollPercent),showOn:_o(dC,o.showOn,t.showOn),showOnPages:UH(o.showOnPages),devices:_o(zH,o.devices,t.devices),hideAfter:GH(o),hideDays:Xa(o.hideDays,mC,t.hideDays),afterSubmit:_o(WH,o.afterSubmit,t.afterSubmit),startDate:iC(o.startDate),endDate:iC(o.endDate)}}import{parseHexColor as $H}from"efficient-shell/format";var Qo="#000000";var hm="popup",jH=Ka,KH=["auto","full"],qH=["inside","outside","none"],VH={min:240,max:1440},YH={min:0,max:100},ys={placement:"center",fullWidth:!1,width:720,height:"auto",tintColor:Qo,tintOpacity:60,outsideClick:!0,closeButton:"inside"};function XH(e,o){let t=typeof e=="string"?e.trim():"";return t&&$H(t)===t.toLowerCase()?t:o}function xm(e,o=ys){let t=e??{},r=o;return{placement:_o(jH,t.placement,r.placement),fullWidth:Dt(t.fullWidth,r.fullWidth),width:Xa(t.width,VH,r.width),height:_o(KH,t.height,r.height),tintColor:XH(t.tintColor,r.tintColor),tintOpacity:Xa(t.tintOpacity,YH,r.tintOpacity),outsideClick:Dt(t.outsideClick,r.outsideClick),closeButton:_o(qH,t.closeButton,r.closeButton)}}var xC="cart-drawer",dce="cart-drawer",ZH={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 fce(e,o){return o===0?e.subtitleEmpty:o===1?e.subtitleOne:e.subtitleMany.replace("{count}",String(o))}function uce(e){let o=e??{},t=ZH;return{kickerBadge:so(o.kickerBadge,t.kickerBadge),kickerText:so(o.kickerText,t.kickerText),titleLead:so(o.titleLead,t.titleLead),titleAccent:so(o.titleAccent,t.titleAccent),subtitleEmpty:so(o.subtitleEmpty,t.subtitleEmpty),subtitleOne:so(o.subtitleOne,t.subtitleOne),subtitleMany:so(o.subtitleMany,t.subtitleMany),leadTimeValue:so(o.leadTimeValue,t.leadTimeValue),shipsToFallback:so(o.shipsToFallback,t.shipsToFallback),promises:ec(o.promises,t.promises),emptyKicker:so(o.emptyKicker,t.emptyKicker),emptyBody:so(o.emptyBody,t.emptyBody)}}var JH=["right","left"],QH={...ys,width:520,tintOpacity:68};function pce(e){let o=e??{};return{...xm(o,QH),placement:_o(JH,o.placement,"right"),height:"full",fullWidth:!1,autoOpen:Dt(o.autoOpen,!0)}}var gC="consent-banner",Ice="consent-banner";var e5=[{value:"bar",label:"Bar"},{value:"card",label:"Card"}],gce="Layout",IC={layout:"bar"},o5=e=>e5.some(o=>o.value===e);function bce(e){let o=so((e??{}).layout,IC.layout);return{layout:o5(o)?o:IC.layout}}var yce={...ys,placement:"bottom-center",fullWidth:!0,width:440,tintOpacity:0,outsideClick:!1,closeButton:"none"};var t5="consentWords",r5=["eyebrow","notice","accept","reject","choose"];function Im(e){let o=(e??{})[t5];return typeof o=="string"&&r5.includes(o)?o:null}function gm(e){let o=e?.props;return o?Im(o)!==null?!0:Object.values(o).some(t=>Array.isArray(t)&&t.some(r=>r&&typeof r=="object"&&"props"in r&&gm(r))):!1}var a5=["meta","eyebrow","heading","body","statName","statValue","formEyebrow","formHeading","formIntro","fieldLabel","option","finePrint","dismiss","doneHeading","doneBody"],Cce={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"},n5={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"},vce={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 bC(e){let o={};for(let t of a5){let r=At(e[n5[t]]);r&&(o[t]=r)}return o}var yC={heading:"Join our email list",placeholder:"Email address",buttonLabel:"Subscribe"},s5={lead:"We accept"},SC={...s5,methods:[],size:"sm",align:"start",dataSource:"shop-payment-methods"},et="site-footer";var Tce=et,Pce={desktop:!0,tablet:!0,mobile:!0},Ece={desktop:!1,tablet:!1,mobile:!1},bm=1,wC=6,Oce=Array.from({length:wC-bm+1},(e,o)=>bm+o),oc={desktop:6,tablet:3,mobile:2},l5={2:{desktop:2,tablet:2,mobile:1},3:{desktop:3,tablet:3,mobile:1},4:{desktop:4,tablet:2,mobile:2},5:{desktop:5,tablet:3,mobile:2},6:{desktop:6,tablet:3,mobile:2}},Xr=e=>Math.min(Math.max(Math.round(e),bm),wC);function _ce(e){if(typeof e=="number")return l5[Xr(e)]??{desktop:Xr(e),tablet:Xr(e),mobile:Xr(e)};if(e&&typeof e=="object"){let o=e;return{desktop:Xr(o.desktop??oc.desktop),tablet:Xr(o.tablet??oc.tablet),mobile:Xr(o.mobile??oc.mobile)}}return{...oc}}var ym="subscribe-popup",Mce="subscribe-popup",i5=[ym,et,xC,gC];function vC(e){return i5.includes(e)}var c5=["right","left"],d5={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:Jo.autoOpen,autoOpenDelaySec:Jo.autoOpenDelaySec,formSlug:"",trigger:Jo.trigger,scrollPercent:Jo.scrollPercent,showOn:Jo.showOn,showOnPages:[],hideAfter:Jo.hideAfter,hideDays:Jo.hideDays,formSide:"right",valuePanelOnPhone:!1,sectionAccent:void 0,sectionCorners:void 0,sectionCornerSides:void 0,textStyles:{}},Ge=so,f5=Dt,kC=ec;function CC(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 u5(e,o){return Array.isArray(e)?kC(e,[]):o}function p5(e,o){return Array.isArray(e)?e.map(t=>{let r=t??{};return{label:Ge(r.label,""),value:Ge(r.value,"")}}).filter(t=>t.label||t.value):o}function zce(e){let o=e??{},t=d5,r=hC(o);return{metaLabel:Ge(o.metaLabel,t.metaLabel),issueLabel:CC(o.issueLabel,t.issueLabel),issueNumber:CC(o.issueNumber,t.issueNumber),kicker:Ge(o.kicker,t.kicker),heading:Ge(o.heading,t.heading),deck:Ge(o.deck,t.deck),stats:p5(o.stats,t.stats),formLabel:Ge(o.formLabel,t.formLabel),formHeading:Ge(o.formHeading,t.formHeading),formIntro:Ge(o.formIntro,t.formIntro),firstNameLabel:Ge(o.firstNameLabel,t.firstNameLabel),firstNamePlaceholder:Ge(o.firstNamePlaceholder,t.firstNamePlaceholder),emailLabel:Ge(o.emailLabel,t.emailLabel),emailPlaceholder:Ge(o.emailPlaceholder,t.emailPlaceholder),interestsLabel:Ge(o.interestsLabel,t.interestsLabel),interests:kC(o.interests,t.interests),frequencyLabel:Ge(o.frequencyLabel,t.frequencyLabel),frequencies:u5(o.frequencies,t.frequencies),submitText:Ge(o.submitText,t.submitText),finePrint:Ge(o.finePrint,t.finePrint),dismissText:Ge(o.dismissText,t.dismissText),emailInvalidText:Ge(o.emailInvalidText,t.emailInvalidText),submitErrorText:Ge(o.submitErrorText,t.submitErrorText),successHeading:Ge(o.successHeading,t.successHeading),successBody:Ge(o.successBody,t.successBody),keepBrowsingText:Ge(o.keepBrowsingText,t.keepBrowsingText),formSlug:typeof o.formSlug=="string"?o.formSlug.trim():t.formSlug,autoOpen:r.autoOpen,autoOpenDelaySec:r.autoOpenDelaySec,trigger:r.trigger,scrollPercent:r.scrollPercent,showOn:r.showOn,showOnPages:r.showOnPages,hideAfter:r.hideAfter,hideDays:r.hideDays,formSide:_o(c5,o.formSide,t.formSide),valuePanelOnPhone:f5(o.valuePanelOnPhone,t.valuePanelOnPhone),sectionAccent:o.sectionAccent,sectionCorners:o.sectionCorners,sectionCornerSides:o.sectionCornerSides,textStyles:bC(o)}}function m5(e,o=Math.random){for(;;){let t=`popup-${Math.floor(o()*2176782336).toString(36).padStart(6,"0")}`;if(!e.has(t))return t}}function h5(e){return{root:{props:{title:e,kind:hm}},content:[],zones:{}}}function TC(e,o,t){return{slug:m5(o,t),title:e,kind:wp,layout:h5(e)}}function Ss(e){return e?.root?.props?.kind===hm}function OC(e){let o=new Map;return(t="")=>{let r=nC(),a=o.get(t);if(!a||a.token===null&&r!==null){let n=r||!S5().usesBridgedToken?e(r??"",t).catch(()=>[]):Promise.resolve([]);return o.set(t,{promise:n,token:r}),n}return a.promise}}var v5=OC(async(e,o)=>{let t=o?{siteId:o}:void 0,{pages:r}=We();return r.linkTargets?r.linkTargets(t):(await r.list(t)).map(a=>({id:a.id,slug:a.slug,label:a.label,layout:null}))}),k5=OC(async(e,o)=>await We().blog?.posts(o?{siteId:o}:void 0)??[]);function T5({value:e,onChange:o,label:t="Link",data:r,filters:a}){let n=rc(()=>mm(r,a),[r,a]),s=i(t);return Zr(EC,{label:s,icon:Zr(I5,{}),children:Zr(g5,{value:e,onChange:l=>o(l),kinds:n.kinds,rules:n.rules,filtersFor:n.filtersFor,label:s})})}function _C(){let{siteId:e,capabilities:o}=w5(),{offersCommerce:t,hasBlog:r}=o,[a,n]=tc([]),[s,l]=tc([]),[c,d]=tc([]),[f,h]=tc(null),u=C5().chrome,x=u?.products?.list,I=u?.linkFilters,y=I?void 0:u?.linkRow,P=y5(!0);PC(()=>(P.current=!0,()=>{P.current=!1}),[]),PC(()=>{let g=!0;return v5(e??void 0).then(T=>g&&P.current&&n(T)),r&&k5(e??void 0).then(T=>g&&P.current&&l(T)),t&&x?.().then(T=>g&&P.current&&d(T)),t&&I?I.load(e).catch(()=>null).then(T=>g&&P.current&&h(()=>T)):h(null),()=>{g=!1}},[e,t,r,x,I]);let v=rc(()=>({pages:a.filter(g=>!vC(g.slug)&&!Ss(g.layout)).map(g=>({slug:g.slug,title:g.label,docs:[g.layout]})),popups:a.filter(g=>g.slug===ym||Ss(g.layout)).map(g=>({slug:g.slug,title:g.label})),posts:r?s.map(g=>({slug:g.slug,title:g.title})):[],products:t?c.map(g=>({href:g.href,name:g.name})):[],offers:{offersCommerce:t,offersService:r}}),[a,s,c,t,r]),w=rc(()=>f?f(v.pages):null,[f,v]);return{data:v,filters:w,pages:a,offersCommerce:t,HostLinkRow:y}}function sde({label:e,icon:o,text:t,onTextChange:r,link:a,onLinkChange:n}){let{data:s,filters:l}=_C(),c=rc(()=>mm(s,l),[s,l]),d=i(e);return Zr(EC,{label:d,icon:o,children:Zr(b5,{label:d,text:t,onTextChange:r,link:a,onLinkChange:f=>n(f),kinds:c.kinds,rules:c.rules,filtersFor:c.filtersFor})})}function RC({value:e,onChange:o,label:t="Link"}){let r=typeof e=="string"?e:"",{data:a,filters:n,pages:s,offersCommerce:l,HostLinkRow:c}=_C(),d=a.pages.map(h=>ms(h.slug)),f=l&&c&&(r==="/"||d.includes(r))?c:void 0;return x5("div",{children:[Zr(T5,{value:r,onChange:o,label:t,data:a,filters:n}),f&&Zr(f,{value:r,onChange:o,pages:s})]})}import{UiIcon as _v}from"efficient-easel/draw/client";import{phoneKey as L5,tabletKey as B5}from"efficient-easel/draw";import{AUTO_RULES as O5,FOLLOW_RULES as _5,VIEW_DESKTOP_MIN as R5,VIEW_TABLET_MIN as LC,isAuto as A5,resolveViewValue as F5}from"efficient-easel/draw";import{VIEW_DESKTOP_MIN as P5,VIEW_TABLET_MIN as FC}from"efficient-easel/screen/lib/content/view-tiers";var Sm="v1",E5=e=>e==="v2"?FC:800,AC={"view-tablet":FC,"view-desktop":P5,"view-wide":E5(Sm)};function cde(e){let o=e.startsWith("max-"),t=o?e.slice(4):e;if(t in AC)return{px:AC[t],max:o};let r=/^(max|min)-\[(\d+)px\]$/.exec(e);return r?{px:Number(r[2]),max:r[1]==="max"}:void 0}function ac(){return Sm==="v2"?O5:_5}var BC=.02,nc=`(min-width: ${LC}px) and (max-width: ${R5-BC}px)`,Za=`(max-width: ${LC-BC}px)`;function St(e,o,t,r,a=ac()){let n=F5(e,o,t,r,a),s={},l=(c,d)=>!A5(c)||d!=null&&d!==o;return l(t,n.tablet)&&(s.tablet=n.tablet),l(r,n.phone)&&(s.phone=n.phone),s}var ot={min:10,max:200,step:10};function D5(e,o){let t=U(e),r=U(o);if(!(t===void 0&&r===void 0))return{paddingTop:t,paddingBottom:r}}var N5="sf-pad-top-phone",M5="sf-pad-bottom-phone",H5="--sf-pad-t-phone",z5="--sf-pad-b-phone",W5="sf-pad-left-phone",G5="sf-pad-right-phone",U5="--sf-pad-l-phone",$5="--sf-pad-r-phone",j5="sf-pad-top-tablet",K5="sf-pad-bottom-tablet",q5="sf-pad-left-tablet",V5="sf-pad-right-tablet",Y5="--sf-pad-t-tablet",X5="--sf-pad-b-tablet",Z5="--sf-pad-l-tablet",J5="--sf-pad-r-tablet";function sc(e){let o=D5(e.top,e.bottom),t=wm({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 Q5=[["top","paddingTop",[j5,Y5],[N5,H5]],["bottom","paddingBottom",[K5,X5],[M5,z5]],["left","paddingLeft",[q5,Z5],[W5,U5]],["right","paddingRight",[V5,J5],[G5,$5]]];function wm(e,o,t={},r=e){let a={},n={},s=[];for(let[l,c,...d]of Q5){let f=U(e[l]);f!==void 0&&(a[c]=f);let h=St("spacing",U(r[l]),U(t[l]),U(o[l]));for(let[u,[x,I]]of[["tablet",d[0]],["phone",d[1]]]){let y=h[u];typeof y=="number"&&(s.push(x),n[I]=`${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 lc(e,o={}){return{top:DC(e.padTop,e.sectionPaddingTop,o.top),bottom:DC(e.padBottom,e.sectionPaddingBottom,o.bottom)}}var Cm={top:"sectionPaddingTop",bottom:"sectionPaddingBottom",left:"sectionPaddingLeft",right:"sectionPaddingRight"};function NC(e,o=Cm,t=!0){let r={};for(let a of t?["top","bottom","left","right"]:["top","bottom"])r[a]=e[o[a]],r[`${a}Tablet`]=e[B5(o[a])],r[`${a}Phone`]=e[L5(o[a])];return r}function MC(e){return sc(e)}function HC(e,o){let t=r=>typeof r=="number"?r+o:void 0;return sc({...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 ic,buttonBorderOf as e4,buttonFillOpacityOf as o4,buttonPadSidesOf as t4}from"efficient-easel/draw";var r4="px-6 py-4",a4=4,cc=e=>{let o=new RegExp(`\\bp${e}-(?:\\[(\\d+)px\\]|(\\d+))`).exec(r4);if(!o)throw new Error(`BUTTON_PAD_CLASSES has no p${e}`);return o[1]!==void 0?Number(o[1]):Number(o[2])*a4},Cde={top:cc("y"),right:cc("x"),bottom:cc("y"),left:cc("x")},WC="var(--btn)";function n4(e){let o=e.variant==="ghost",t=o4(e.buttonFillOpacity),r=e4(e.buttonBorder),a=oe(e.buttonColor);return{fillOpacity:t??(o?0:100),border:{width:r?.width??1,color:r?.color??a??(o?"currentColor":WC)},changed:t!==void 0||r!==void 0}}function vde(e){let o=n4(e);if(!o.changed)return null;let t=oe(e.buttonColor)??WC;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 s4="var(--sf-button-radius, 0)";function kde(e){let o=U(e.buttonCorners),t=yt(e.buttonCornerSides);if(o===void 0&&t===null)return null;let r=o===void 0?s4:`${Math.max(0,o)}px`;return{borderRadius:t===null?r:$r(r,t)}}function Tde(e){let o=a=>t4({top:e[`${ic.top}${a}`],right:e[`${ic.right}${a}`],bottom:e[`${ic.bottom}${a}`],left:e[`${ic.left}${a}`]})??{},{classes:t,style:r}=wm(o(""),o("Phone"),o("Tablet"));return Object.keys(r).length?{className:t.join(" "),style:r}:null}var zC="upper";function GC(e,o,t){let r=e&&typeof e=="object"?e:{},a=oe(r.textStyle),n=a?oe(o?.find(f=>f?.id===a)?.name):void 0,s=a?/^(heading|body)-(\d+)$/.exec(a):null,l=a?n||(s?t.styleName({kind:s[1],n:Number(s[2])}):a):t.noStyle,{cases:c}=t,d=oe(r.case)??zC;return`${l} \xB7 ${c[d]??c[zC]}`}import{usePreviewParts as s6}from"efficient-easel/draw/client";import{encodePartId as l6}from"efficient-easel/draw";import{DEFAULT_EASEL_STRINGS as i6,useEaselStrings as c6}from"efficient-easel/strings";var l4=["auto","fixed","screen"],i4=["px","%"];var c4="var(--sf-header-h, 88px)",vm={min:40,max:2e3,step:10,fallback:600},km={min:10,max:200,step:5,fallback:100},d4="sf-section-minh",dc="grid-cols-[minmax(0,1fr)]",UC={base:"--sf-section-minh",small:"--sf-section-minh-s"},Tm=e=>typeof e=="string"&&l4.includes(e),f4=e=>typeof e=="string"&&i4.includes(e);function ws(e){let o=Tm(e.sectionHeightMode)?e.sectionHeightMode:"auto",t=o==="screen"?"%":f4(e.sectionHeightUnit)?e.sectionHeightUnit:"px",r=o==="screen"?km.fallback:vm.fallback,a=typeof e.sectionHeightValue=="number"?e.sectionHeightValue:r;return{mode:o,value:a,unit:t}}function KC(e){let{mode:o,value:t,unit:r}=ws(e);if(o==="auto")return;if(o==="fixed"&&r==="px")return[`${t}px`,null];let a=t/100,n=s=>o==="screen"?`(100${s} - ${c4})`:`100${s}`;return[`calc(${n("vh")} * ${a})`,`calc(${n("svh")} * ${a})`]}function qC(e){let o=KC(e);if(!o)return;let[t,r]=o;return{display:"grid",[UC.base]:t,...r?{[UC.small]:r}:{}}}var Ede=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),Ja="Height",VC="sf-section-minh-phone",$C={base:"--sf-section-minh-p",small:"--sf-section-minh-ps"};function Pm(e){return Tm(e.sectionHeightModePhone)}function Ode(e){return ws({sectionHeightMode:e.sectionHeightModePhone,sectionHeightValue:e.sectionHeightValuePhone,sectionHeightUnit:e.sectionHeightUnitPhone})}var YC="sf-section-minh-tablet",jC={base:"--sf-section-minh-t",small:"--sf-section-minh-ts"};function Cs(e){return Tm(e.sectionHeightModeTablet)}function XC(e){return ws({sectionHeightMode:e.sectionHeightModeTablet,sectionHeightValue:e.sectionHeightValueTablet,sectionHeightUnit:e.sectionHeightUnitTablet})}function ZC(e){let o=qC(e),t=(l,c,d)=>KC({sectionHeightMode:l,sectionHeightValue:c,sectionHeightUnit:d})??(o?["auto",null]:void 0),r=Cs(e)?t(e.sectionHeightModeTablet,e.sectionHeightValueTablet,e.sectionHeightUnitTablet):void 0,a=Pm(e)?t(e.sectionHeightModePhone,e.sectionHeightValuePhone,e.sectionHeightUnitPhone):r;if(!o&&!r&&!a)return null;let n=[d4,dc],s={...o??{}};return r&&(n.push(YC),s[jC.base]=r[0],r[1]&&(s[jC.small]=r[1])),a&&(n.push(VC),s[$C.base]=a[0],a[1]&&(s[$C.small]=a[1])),{className:n.join(" "),style:s}}function _de(e){return ZC(e)!==null}var u4=`grid ${dc}`,JC="h-full",p4="view-tablet:max-view-desktop:grid",QC="max-view-tablet:grid",m4=`${QC} ${dc}`;function ev(e){let o=ZC(e);if(!o)return"";if(qC(e))return u4;let t=o.className.split(" ");if(!t.includes(YC))return m4;let r=t.includes(VC);return[p4,r?QC:"",dc].filter(Boolean).join(" ")}var fc="Stick to top",fr={min:0,max:200,step:4,fallback:0},h4="sf-section-stick",Fde="sf-scroll-over",x4="sf-section-stick-tablet-on",I4="sf-section-stick-tablet-off",g4="sf-section-stick-phone-on",b4="sf-section-stick-phone-off",Em={desktop:"--sf-stick-distance",tablet:"--sf-stick-distance-tablet",phone:"--sf-stick-distance-phone"},Lde=new Set(["CategoryBar","DocTabs","IntroBleed","Contents"]);function Om(e){let o=U(e)??fr.fallback;return Math.min(fr.max,Math.max(fr.min,Math.round(o)))}function _m(e){return typeof e.stickTopTablet=="boolean"}function Rm(e){return typeof e.stickTopPhone=="boolean"}function uc(e){let o=e.stickTop===!0,t=Om(e.stickTopDistance),r=_m(e),a=r?e.stickTopTablet===!0:o,n=r?Om(e.stickTopDistanceTablet):t,s=Rm(e),l=s?e.stickTopPhone===!0:a,c=s?Om(e.stickTopDistancePhone):n;return{desktop:o,desktopDistance:t,tablet:a,tabletDistance:n,ownTablet:r,phone:l,phoneDistance:c,ownPhone:s}}function Bde(e){let o=uc(e);if(!o.desktop&&!o.tablet&&!o.phone)return null;let t=[h4],r={};return o.desktop&&(r[Em.desktop]=`${o.desktopDistance}px`),o.ownTablet&&(t.push(o.tablet?x4:I4),o.tablet&&(r[Em.tablet]=`${o.tabletDistance}px`)),(o.ownPhone||o.ownTablet||o.phone!==o.desktop)&&(t.push(o.phone?g4:b4),o.phone&&(r[Em.phone]=`${o.phoneDistance}px`)),o.desktop||t.push("sf-section-stick-desktop-off"),{className:t.join(" "),style:r}}var y4=["column","row","tabs"];var S4={column:"Stacked",row:"One row",tabs:"Tabs"},ov={Flex:y4,HeroGroup:["column","row"]},w4={Flex:"row",HeroGroup:"column"},C4={column:"flex-col",row:"flex-row",tabs:"flex-col"};function Qa(e,o){return ov[e].includes(o)?o:w4[e]}function Nde(e,o){return C4[Qa(e,o)]}function tv(e){return ov[e].map(o=>({label:S4[o],value:o}))}var v4=["solid","dashed","dotted"],av=["top","right","bottom","left"],nv="sf-section-border",sv="sf-section-border-self",k4=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,rv=e=>typeof e=="number"&&Number.isFinite(e)?`${Math.min(20,Math.max(0,Math.round(e)))}px`:void 0;function en(e,{phone:o=!1,tablet:t=!1}={}){if(!e||typeof e!="object")return;let r=o?"-phone":t?"-tablet":"",a={};for(let n of av){let s=rv(e[n])??rv(e.width);s!==void 0&&(a[`--sf-border-${n}-width${r}`]=s)}return typeof e.style=="string"&&v4.includes(e.style)&&(a[`--sf-border-style${r}`]=e.style),typeof e.color=="string"&&k4.test(e.color)&&(a[`--sf-border-color${r}`]=e.color.toLowerCase()),Object.keys(a).length?a:void 0}function Am(e){let{width:o,...t}=e;return typeof o!="number"?e:{...t,...Object.fromEntries(av.map(r=>[r,t[r]??o]))}}function Hde(e,o,t){let r=en(e),a=en(t,{tablet:!0}),n=en(t,{phone:!0})||en(o,{phone:!0})?{...en(t,{phone:!0}),...en(o,{phone:!0})}:void 0;return r||a||n?{...r,...a,...n}:void 0}var pc="sf.gapContainer",Nt={min:-32,max:64,step:2},dv={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},on={Grid:24,Flex:24,FooterGroup:16,HeroGroup:0,Events:24,GalleryB:8,ProductGrid:2},T4=new Set(["Events","GalleryB"]);function Qr(e,o,t){if(typeof o=="number"&&Number.isFinite(o)&&o>=Nt.min)return o;if(typeof o=="string"){let r=dv[e]?.[o];if(typeof r=="number")return r}return typeof t=="number"&&Number.isFinite(t)?t:on[e]}var P4="sf-gap-overlap",E4="--sf-gap-overlap",fv="--sf-block-gap",O4="--sf-block-gap-rem",Jr={min:0,max:Nt.max,step:Nt.step};function vs(e){if(typeof e!="number"||!Number.isFinite(e))return null;let o=Math.min(Math.max(Math.round(e),Jr.min),Jr.max);return o-o%Jr.step}function Wde(e){let o=vs(e);return o===null?{}:{[fv]:`${o}px`,[O4]:`${o/16}rem`}}var _4="--sf-block-gap-phone",R4="--sf-block-gap-phone-rem",A4="--sf-block-gap-on-phone",F4="max-view-tablet:[--sf-block-gap-on-phone:var(--sf-block-gap-phone)]";function Gde(e){let o=vs(e);return o===null?{}:{[_4]:`${o}px`,[R4]:`${o/16}rem`}}function Ude(e){return vs(e)===null?"":F4}var lv="sf-gap-zone",iv="--sf-gap-len";function mc(e,o){return typeof o=="number"&&Number.isFinite(o)&&o>=Nt.min?!0:typeof o=="string"&&typeof dv[e]?.[o]=="number"}var cv="--sf-gap-len-phone",L4="--sf-gap-len-tablet",ks={min:0,max:Nt.max,step:Nt.step};function ur(e){return typeof e=="number"&&Number.isFinite(e)&&e>=ks.min}function Fm(e){return e/2}function Lm(e,o,t){return ur(t)&&!mc(e,o)}function Bm(e,o,t,r,a){return ur(o)?o:Lm(e,t,a)?a:Fm(Qr(e,t,r))}var B4={block:"sf-gap-overlap-block",inline:"sf-gap-overlap-inline",both:"sf-gap-overlap-both"};function $de(e,o,t,r,a){let n={...ur(r)?{[cv]:`${r}px`}:null,...ur(a)?{[L4]:`${a}px`}:null};if(!mc(e,o)){let l=`${on[e]}px`,c=T4.has(e)?`var(--sf-card-gap, ${l})`:l;return{className:` ${lv}`,style:{[iv]:`var(${fv}, ${c})`,[cv]:`var(${A4})`,...n}}}let s=Qr(e,o);return s>=0?{className:` ${lv}`,style:{[iv]:`${s}px`,...n}}:{className:` ${P4} ${B4[t]}`,style:{gap:"0px",[E4]:`${-s/2}px`}}}import{parseHexColor as D4}from"efficient-shell/format";var po="var(--section-bg)",Dm="inherit";function wt(e,o){return e===Dm?po:e===void 0?o:hc(e)}var N4=/var\(\s*--(surface-2|surface|line)\s*(?=[,)])/g;function hc(e){return e.replace(N4,"var(--site-$1")}var M4={"var(--section-bg)":"band","var(--site-surface)":"surface","var(--site-surface-2)":"surface2"};function Nm(e,o,t){let r=wt(e,o);if(!r||r==="transparent")return t.background.toLowerCase();let a=r.trim(),n=a.startsWith("#")?D4(a):null;if(n)return n.toLowerCase();let s=M4[a.replace(/\s+/g,"")];return(s?t[s]:t.background).toLowerCase()}var Mm="transparent";function uv(e,o){let t=wt(e,o);return!t||t===Mm?"none":t===po?"band":null}function pv(e,o,t=o){let r=n=>!n||n==="transparent",a=wt(e,o);return a===t||r(a)&&r(t)}var mv=["transparent","var(--wheel-stage)","var(--surface)","var(--surface-2)"],hv={transparent:"No fill","var(--wheel-stage)":"Image stage","var(--surface)":"Panels and cards","var(--surface-2)":"Second surface"},tn="var(--wheel-stage)",xc="transparent",Ts="inherit";function Yde(e,o){return hc(Hm(e,o))}function Hm(e,o){return e===Ts?tn:e==null?o:e===!0?tn:e===!1?xc:e}function Xde(e){return typeof e=="string"&&e!==Ts?hc(e):tn}function Zde(e){return e!==xc&&e!=="none"&&e!==""}function xv(e,o){return e===Ts||e===!0?!0:e==null?o===tn:!1}var Iv="inherit",Ic="fixed",gv=e=>typeof e!="number"&&e!==Ic,H4="var(--sf-heading-max, 9999px)";function Qde(e,o,t,r){if(typeof e=="number")return`${e}px`;if(e===Ic)return o;let a=r?`var(--size-${r}, ${o})`:o;return t==="heading"?`min(${a}, ${H4})`:a}var z4=["page","full"],bv=["full","page"],ea={full:"Full width",page:"Content width"},zm="inherit",W4=e=>typeof e=="string"&&z4.includes(e),G4=e=>e===zm;function U4(e,o){return G4(e.widthMode)?{mode:"full",inherited:!0}:W4(e.widthMode)?{mode:e.widthMode,inherited:!1}:{mode:o,inherited:o==="full"}}function ofe(e){return U4(e,"page").mode==="full"}var $4={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 tfe(e){return Object.prototype.hasOwnProperty.call($4,e)}var yv="siteWidths",j4=e=>e==="full"||e==="content";function gc(e){return j4(e)?e:null}function Sv(e,o){return{[yv]:{background:gc(e),content:gc(o)}}}function rfe(e){let o=e.editor?.metadata?.[yv];return{background:gc(o?.background),content:gc(o?.content)}}import{jsx as K4}from"react/jsx-runtime";import{createContext as q4,useContext as lfe}from"react";var V4=2,ife=V4+1,Y4=q4(2);function wv({tier:e,children:o}){return K4(Y4.Provider,{value:e,children:o})}import{useEaselSession as d6}from"efficient-easel/screen/lib/session-context";import{BOX_GAP as f6,describedAs as mr,group as at,iconOf as _s,sharedStyleKinds as Rs}from"efficient-easel/screen/lib/document/box-fields";import{VIEW_KEY_ACCESS as qm,onDesktopWords as As,phoneTwinFields as kc}from"efficient-easel/screen/lib/document/box-fields";import{createElement as tt}from"react";import{SettingsDefaultReset as X4,SettingsField as Z4}from"efficient-easel/panel";import{boxFieldBuilders as J4,describedAs as Q4,iconOf as e3,onDesktopWords as o3}from"efficient-easel/screen/lib/document/box-fields";import{IconPicker as t3,Tooltip as r3,useShellStrings as a3}from"efficient-shell/ui";var Cv=e=>i(e),lo=J4(Cv),vo=lo.slider,rt=lo.select,bc=lo.Segmented,rn=lo.segmented,hfe=lo.alignmentField,xfe=lo.alignmentFields,Ife=lo.blockAlignmentField,gfe=lo.blockAlignmentFields,bfe=lo.boxJustifyField,yfe=lo.boxAlignField,Sfe=lo.boxWrapField,vv=lo.directionField,yc=lo.gapField,wfe=lo.placementField,Cfe=lo.PlacementGridView,vfe=lo.positionFields,Sc=lo.sidesPaddingFields,n3={width:"3.5rem",height:"2.75rem"};function Wm({value:e}){return a3().iconNames[e]??e}function Ps(e,o,t){return tt(r3,{content:t,className:"sf-pick-tip",children:tt("span",{className:"sf-pick"},tt("span",{className:"sf-pick-pic"},e),tt("span",{className:"sf-pick-cap"},o))})}function kv(e,o){return tt("span",{className:"sf-pick"},tt("span",{className:"sf-pick-pic"},e),tt("span",{className:"sf-pick-cap sf-pick-cap-closed"},o))}function Tv(e,o,t,r,a={}){let n=c=>t.some(d=>d.value===c),s=c=>a.resolve?a.resolve(c):n(c)?c:void 0,l=t.map(c=>({value:c.value,...c.label===void 0?{}:{label:c.label},...c.showWhen?{showWhen:c.showWhen}:{}}));return{type:"custom",...Q4({},{type:"radio",label:e,options:l}),options:l,render:c=>{let{value:d,onChange:f,field:h}=c,u=C=>C.label===void 0?tt(Wm,{value:C.value}):i(C.label),x=h?.options,I=t.filter(C=>!x||x.some(F=>F.value===C.value)).map(C=>({value:C.value,...C.label===void 0?{}:{label:i(C.hint??C.label)},icon:Ps(C.picture,u(C),C.hint===void 0?u(C):i(C.hint))})),y="follows"in c,P=y?s(a.phoneRest?a.phoneRest(c.follows):c.follows)??r:void 0,v=h?.currentValue,w=s(d)??P??s(v)??r,g=d!=null&&d!=="",T=P===void 0?void 0:t.find(C=>C.value===P);return tt(Z4,{label:i(e),icon:e3(o),action:y?tt(X4,{words:Q()?.panel,label:i(e),changed:g,detail:T?.label!==void 0?o3(Cv,i(T.label),c.followsView):void 0,disabled:c.readOnly===!0,onReset:()=>f(void 0)}):void 0},tt(t3,{label:i(e),value:w,options:I,onChange:f,columns:a.columns,cell:a.cell??n3,tooltips:!1,disabled:c.readOnly===!0}))}}}import{TEXT_CONTROL_KINDS as ape,SCALAR_TEXT_CONTROLS as npe}from"efficient-easel/draw";function ta(e,o){return i("{value} from {from}",{value:e,from:o})}function u6(){let{blockGap:e}=ce();return e===null?i("this container's own spacing"):ta(`${e}px`,i("Styles"))}function p6({inherited:e,onReset:o,label:t}){return S(xo,{words:Q()?.panel,label:i(t),changed:!e,detail:u6(),onReset:o})}function m6(e){return yc({...f6,builtIn:on[e],resolve:(o,t)=>Qr(e,o,t?.siteGap),action:(o,t)=>S(p6,{inherited:!mc(e,o),onReset:()=>t(void 0),label:"Gap"}),mark:{[pc]:e}})}function h6(e){return Xe(Ct("mobile",{[pc]:e,type:"custom",render:o=>S(g6,{container:e,...o})}),Yv)}function x6(e){return Xe(Ct("tablet",{[pc]:e,type:"custom",render:o=>S(I6,{container:e,...o})}),Yv)}var Yv={not:{field:"gap",in:Array.from({length:-Nt.min},(e,o)=>Nt.min+o)}};function Xue(e){return{gap:Ct("desktop",m6(e)),[nn("gap")]:x6(e),[Mt("gap")]:h6(e)}}function I6({container:e,...o}){let[t]=zt("gap"),{siteGap:r}=o.field??{},a=Math.max(ks.min,Qr(e,t,r));return yc({...ks,builtIn:a,resolve:n=>ur(n)?n:a,action:(n,s)=>S(xo,{words:Q()?.panel,label:i("Gap"),changed:ur(n),detail:As(l=>i(l),`${a}px`),onReset:()=>s(void 0)})}).render(o)}function g6({container:e,...o}){let[t]=zt("gap"),{siteGap:r,siteGapPhone:a}=o.field??{},n=Bm(e,void 0,t,r,a);return yc({...ks,builtIn:n,resolve:s=>Bm(e,s,t,r,a),action:(s,l)=>S(xo,{words:Q()?.panel,label:i("Gap"),changed:ur(s),detail:ta(`${n}px`,Lm(e,t,a)?i("Styles"):i("Desktop")),onReset:()=>l(void 0)})}).render(o)}function Zue(e){return vv({offered:tv(e),fallback:Qa(e,void 0),resolve:o=>Qa(e,o)})}function Jue(e,o){return JS(o?Fp(e,o):[],o)}function b6({inherited:e,onReset:o,label:t}){return S(xo,{words:Q()?.panel,label:i(t),changed:!e,detail:ta(i("Full"),i("the page")),onReset:o})}function ra({value:e,onChange:o,label:t,placeholder:r,hint:a,multiline:n,hideable:s=!0,markup:l=!0}){let{text:c,hidden:d}=xr(e),f=Es(null),h=Es(null),u=w=>o(s?{text:w,hidden:d}:w),x=()=>o({text:c,hidden:!d}),I=s&&d,y=Dv(),P=a?v6(a)?S("span",{className:"sf-hint-keep sf-hint-while-typing",children:i(a)}):S(tw,{children:i(a)}):void 0,v=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(D3,{}),htmlFor:y,className:I?"is-hidden":void 0,hint:P,action:s?S(vc,{content:v,children:S(qv,{"aria-pressed":d,"aria-label":v,onClick:x,children:d?S(_v,{name:"eye-off",size:14}):S(_v,{name:"eye",size:14})})}):void 0,children:oa("div",{className:"sf-copybox",children:[l&&S(Up,{target:n?h:f,value:c,onChange:u}),n?S("textarea",{id:y,ref:h,value:c,placeholder:r===void 0?void 0:i(r),onChange:w=>u(w.target.value)}):S("input",{id:y,ref:f,type:"text",value:c,placeholder:r===void 0?void 0:i(r),onChange:w=>u(w.target.value)})]})})}function Que(e,o){return{...e,[m3]:o}}function epe(e){let o=e[Ht];if(!o)throw new Error("withOffPage: the field holds no authored text");return{...e,[Ht]:{...o,offPage:!0}}}function Pc(e){return!e||typeof e!="object"?!1:e[Ht]?.offPage===!0}var Xv="sfPanelOnly";function ope(e){if(!e[Ht])throw new Error("withPanelOnly: the field holds no authored text");return{...e,[Xv]:!0}}function Zv(e){return!!e&&typeof e=="object"&&e[Xv]===!0}function tpe(e){let o=e[Ht];if(!o)throw new Error("withIdentifier: the field holds no authored text");return{...e,[Ht]:{...o,identifier:!0}}}function spe(e,o){if(!e[Ht])throw new Error("inOwnBox: the field holds no authored text");let{[r6]:t,...r}=e;return{...r,[$p]:!0,render:o}}var y6=new Set(n6),Tc={type:"radio",options:[{value:!0},{value:!1}]},Jv={text:{type:"object",objectFields:{text:{type:"text"},hidden:Tc}},textarea:{type:"object",objectFields:{text:{type:"textarea"},hidden:Tc}},plainText:{type:"text"},copyText:{type:"text"},plainTextarea:{type:"textarea"},textList:{type:"array",arrayFields:{text:{type:"text"}}}},aa=(e,o)=>{let t=mr({...o,[Ht]:e},{...Jv[e.control],label:e.label});if(!y6.has(e.control))return t;let r=o.render;return{...Vv(t,"authored-copy"),render:a=>S(Ow,{name:a.name,children:r(a)})}},lpe="Everything else on this block comes from the linked post. Unlink it to edit by hand.",S6={field:"source.slug",set:!0},ipe={not:S6},w6="Select a word, then press the highlighter.",C6=new Set([w6]),v6=e=>C6.has(e);function cpe(e,o,t){return aa({control:"text",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(ra,{value:r,onChange:a,label:e,placeholder:o,hint:t})})}function dpe(e,o,t){return aa({control:"textarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(ra,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0})})}function fpe(e,o,t){return aa({control:"plainText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(ra,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1,markup:!1})})}function upe(e,o,t){return aa({control:"copyText",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(ra,{value:r,onChange:a,label:e,placeholder:o,hint:t,hideable:!1})})}function ppe(e){return{type:"custom",[u3]:{label:e},...mr({},{type:"text",label:e}),render:({value:o,onChange:t})=>S(RC,{value:f3(o),onChange:t,label:e})}}function mpe(e,o,t){return aa({control:"plainTextarea",label:e,placeholder:o,hint:t},{type:"custom",render:({value:r,onChange:a})=>S(ra,{value:r,onChange:a,label:e,placeholder:o,hint:t,multiline:!0,hideable:!1})})}var Qv={Design:h3,Animation:I3};function hpe(e){return{type:"custom",render:()=>S(k6,{text:e})}}function k6({text:e}){return S("p",{className:"sf-note",children:i(e)})}function xpe(e){return Wt(e)!==null&&e?.tabs!==void 0}var Rv=new Map;function Ec(e,o){let t=`${e}\0${o?o.join(""):""}`,r=Rv.get(t)??{type:"custom",tabs:o,[Nv]:{label:e,level:1},bucket:e,marker:!0,render:()=>S(hr,{})};return Rv.set(t,r),r}var Av=new Map;function Vm(e){let o=Av.get(e)??{type:"custom",[Nv]:{label:e,level:1},designGroup:e,marker:!0,...e==="Content"?{}:{fold:e},render:()=>S(hr,{})};return Av.set(e,o),o}function T6(e){let o=e;return o?.marker===!0&&typeof o.fold=="string"?o.fold:null}function ek(e,o){return T6(e)===o?e:{...e,marker:!0,fold:o,render:()=>S(hr,{})}}function ok(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(hr,{})}}function Ym({title:e,children:o}){let[t,r]=Os(()=>!Gm.has(e));return S(H3,{title:e,open:t,onToggle:a=>{r(a),a?Gm.delete(e):Gm.add(e)},children:o})}var Gm=new Set;function P6({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 oa("div",{className:"sf-swatches",children:[e.map(l=>{let c=r?.[l]?i(r[l]):l;return S(vc,{content:c,children:S(V3,{color:l,selected:o.toLowerCase()===l.toLowerCase(),onClick:()=>t(l),"aria-label":c})},l)}),S("span",{className:"sf-swatch-hex",children:s})]})}function Ipe(e,o,t=!1){return{type:"custom",render:({value:r,onChange:a})=>S(E6,{label:e,builtIn:o,followsBand:t,value:r,onChange:a})}}function E6({label:e,builtIn:o,followsBand:t,value:r,onChange:a}){let n=typeof r=="string"?r:void 0,{colors:s,n:l}=uk(),c={background:s.background,surface:s.surface,surface2:ui(s),band:Db(s)},d=t?po:o,f=pv(n,o,d),h=Nm(void 0,d,c),u=t?Dm:void 0,x=uv(n,o),I=d===po?i("the theme's section background"):i("Theme {n} background",{n:l});return S(hs,{label:i(e),icon:S(g3,{}),value:f?"":Nm(n,o,c),inherited:h,resetTo:ta(h.toUpperCase(),I),onChange:a,onReset:()=>a(u),choices:[{label:i("No fill"),color:"",selected:x==="none",onPick:()=>a(Mm)},{label:`${i("Section band")} \xB7 ${c.band.toUpperCase()}`,color:c.band,selected:x==="band",onPick:()=>a(po)}]})}function O6(e,o){return{type:"custom",render:({value:t,onChange:r})=>{let a=t,n=xv(a,o);return S(Je,{label:i(e),icon:S(Hv,{}),changed:!n,action:S(xo,{words:Q()?.panel,label:i(e),changed:!n,detail:i("the theme's image stage"),onReset:()=>r(Ts)}),children:P6({swatches:mv,current:n?tn:Hm(a,o),onPick:r,names:hv})})}}}function Oc(e=t=>t,o){return Rs({_gSectionTheme:at(Zw),sectionAccent:{type:"custom",render:({value:t,onChange:r})=>S(rC,{value:e(t),onChange:r,followLabel:o})}})}function Ro({min:e,max:o,step:t,value:r,onChange:a,suffix:n="",readout:s=!0,notch:l,ariaLabel:c,disabled:d=!1,placeholder:f}){let h=l!==void 0&&Number.isFinite(l)&&l>=e&&l<=o;return S("div",{className:h?"sf-slider has-notch":"sf-slider",style:h?{"--sf-notch":(l-e)/(o-e)}:void 0,children:S(o6,{min:e,max:o,step:t,value:r,...r===null&&f!==void 0?{placeholderValue:f}:{},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:u=>{u!==null&&u!==r&&a(u)}})})}function tk(e,o){let{min:t,max:r,step:a=1,unsetLabel:n,hint:s,restTrack:l,unsetMark:c,icon:d,unit:f="px"}=o;return{type:"custom",render:({value:h,onChange:u})=>{let x=typeof h=="number"?h:null,I=x===null;return S(Je,{label:i(e),icon:d?_s(d):void 0,value:I?c||n===void 0?void 0:i(n):`${x}${f}`,changed:!I,action:c?Bv(c,{changed:!I,onReset:()=>u(null)}):S(xo,{words:Q()?.panel,label:i(e),changed:!I,onReset:()=>u(null)}),hint:typeof s=="string"?i(s):s,children:l?l({min:t,max:r,step:a,px:x,label:e,onChange:u}):Ro({min:t,max:r,step:a,value:x??t,readout:!1,ariaLabel:e,onChange:u})})}}}var _c="Corners";function Xm(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(_c),icon:S(S3,{}),changed:a,action:Bv(e.mark,{changed:a,onReset:()=>t(null)}),hint:e.hint,children:S(_6,{tier:e,px:r,onRadius:t})})}}}function zt(e){let o=sn();return[o?.values?.[e],t=>o?.onChange(e,t)]}function rk(){return Vv({type:"custom",render:()=>S(a6,{})},"always")}function em(){let e=sn();return o=>e?.onChangeMany(o)}function _6({tier:e,px:o,onRadius:t}){let r=e.useFollowed(),[a,n]=zt(e.sidesKey),s=yt(a)??[..._i];return S(Y3,{label:i(_c),value:s,corners:wS,onChange:l=>{let c=yt(l)??[];n(c.length===_i.length?null:c)},radius:o,onRadiusChange:t,radiusMin:Bo,radiusMax:Fr,radiusStep:e.step??1,radiusPlaceholder:String(r)})}function ak(){return rk()}function R6({label:e,changed:o=!1,onReset:t=()=>{}}){let{cornerRadiusPx:r}=ce(),a=typeof r=="number"?`${r}px`:i("not set");return S(xo,{words:Q()?.panel,label:i(e),changed:o,detail:r==null?i("the built-in corners"):ta(a,i("Styles")),onReset:t})}function A6(){let{cornerRadiusPx:e}=ce();return typeof e=="number"?e:Bo}function F6(){return Xm({sidesKey:"sectionCornerSides",useFollowed:A6,mark:S(R6,{label:_c}),hint:L6})}var L6="Follows Styles \u25B8 Basics \u25B8 Corners until you set a number here.";function Rc(){return Rs({_gShape:at("Shape"),sectionCorners:F6(),sectionCornerSides:ak(),...an("sectionBorder",z6)})}var B6=()=>({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 D6(e){let o=Object.fromEntries(Object.entries(e).filter(([,t])=>t!=null&&t!==""));return Object.keys(o).length?o:void 0}function N6(){let e;try{let o=no(ce().theme);e=o.themes[o.selected]?.line}catch{e=void 0}return e||Rb.line}function M6({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]=Os(()=>a?$3(l,s):!1),f=B6(),h=u=>D6(a&&n?u:{width:u.width,color:u.color,...n?{style:u.style}:{}});return S(Je,{label:i("Border"),icon:S(b3,{}),action:a?S(G3,{each:c,label:i("Each side"),onChange:d}):void 0,children:S(W3,{label:i("Border"),value:l,each:c,onChange:u=>o(h(u)),placeholder:t,presets:r,words:f,styles:n,max:20})})}function H6({value:e,onChange:o,view:t}){let[r]=zt("sectionBorder"),[a]=zt(nn("sectionBorder")),n=N6(),s=c=>c&&typeof c=="object"?c:{},l=t==="phone"?{...Am(s(r)),...Am(s(a))}:t==="tablet"?s(r):{};return S(M6,{value:e,onChange:o,placeholder:{sides:U3(l),style:l.style??"solid",color:l.color||n},presets:[n],above:l})}function z6(e){return{type:"custom",render:({value:o,onChange:t})=>S(H6,{value:o,onChange:t,view:e})}}function an(e,o){let t=(r,a)=>kc(e,o(r),qm)[a];return{[e]:t("desktop",e),[nn(e)]:t("tablet",nn(e)),[Mt(e)]:t("phone",Mt(e))}}function gpe(e){return{type:"custom",render:()=>S(W6,{partKey:e})}}function W6({partKey:e}){let[o]=zt("id"),[t]=zt("_partStyles"),{textStyles:r}=ce(),a=c6(),n=null;try{n=s6().select}catch{n=null}let s=t&&typeof t=="object"?t[e]:void 0,l=Array.isArray(r)?r:null;return S(M3,{name:i("Text"),preview:GC(s,l,{noStyle:i("No style"),styleName:a.textStyles.styleName,cases:(a.copy.panel??i6.copy.panel).cases}),onOpen:()=>{n&&typeof o=="string"&&n(l6(o,e))}})}function nk(e){let{cornerRadiusPx:o}=ce(),t=typeof o=="number"?o:e,r=null;try{let{appState:n,selectedItem:s}=$m(c=>c),l=s?.props?.id?String(s.props.id):void 0;r=l?xw(n?.data,l)?.props??null:null}catch{r=null}if(!r)return t;let a=r.sectionCorners;return pp(a)?a:t}function G6({label:e,changed:o=!1,onReset:t=()=>{}}){let r=nk(Bo);return S(xo,{words:Q()?.panel,label:i(e),changed:o,detail:ta(`${r}px`,i("the section")),onReset:t})}function U6(){return S(hr,{children:i("Follows the section's Corners until you set a number here.")})}function $6(){return Xm({sidesKey:"cardCornerSides",useFollowed:()=>nk(Bo),mark:S(G6,{label:_c}),hint:S(U6,{})})}function j6(){return{type:"custom",render:()=>S(OS,{})}}function bpe(){return{_gShape:at("Shape"),cardCorners:$6(),cardCornerSides:ak(),cardCornersApplyAll:j6()}}function K6(){return mr({type:"custom",render:e=>S(V6,{...e})},{type:"select",label:Hr,options:[{value:"content",label:"Fit content"},{value:"equal",label:"Equal"},{value:[50],label:"Custom: the width of each block in %, the last block left out"}]})}function q6(e,o){let t=Vu(e);if(t!=="custom")return i(qu.find(a=>a.value===t)?.label??"");let r=Kv(Si(e,o),o);return r?[...r,100-r.reduce((a,n)=>a+n,0)].join(" / "):i("Custom")}function V6(e){let{value:o,onChange:t}=e,[r]=zt("content"),a=Array.isArray(r)?r.length:0,n="follows"in e,s=o!=null,l=s?o:n?e.follows:void 0,c=Vu(l),d=a>=2&&a<=Ev,f=()=>[...J3[a]??[]],h=Es(null),u=v=>{let w=h.current;w&&JSON.stringify(v)===JSON.stringify(w.shares)?t(w.value):v&&t(v)},x=v=>{v===c||v==="custom"&&!d||t(v==="custom"?f():v)},I=i("The width bar works for 2 to {count} blocks.",{count:Ev}),y=s&&(n||o!=="content"),P=e6().widths.hint(a,Z3);return S(Je,{label:i(Hr),icon:S(jm,{}),changed:y,hint:c!=="custom"?void 0:d?P:I,action:S(xo,{words:Q()?.panel,label:i(Hr),changed:y,disabled:e.readOnly===!0,detail:n?As(v=>i(v),q6(e.follows,a),e.followsView):i("Fit content"),onReset:()=>t(void 0)}),children:oa("div",{className:"sf-share-row",children:[S("div",{className:"sf-share-pick",children:S(jv,{label:i(Hr),value:c,options:qu.map(v=>({value:v.value,label:v.value==="custom"&&!d?I:i(v.label),icon:Ps(S("span",{className:"sf-gallery-pic sf-share-pic",children:sk(v.weights).map((w,g)=>S("i",{style:{gridColumn:`span ${w}`}},g))}),i(v.label),v.value==="custom"&&!d?I:i(v.label))})),onChange:x,columns:3,cell:lk,tooltips:!1,disabled:e.readOnly===!0})}),c==="custom"&&d?S("div",{onFocus:()=>{h.current={value:o,shares:Kv(Si(l,a),a)}},onBlur:()=>{h.current=null},children:S(Q3,{label:i(Hr),count:a,value:Si(l,a),onChange:u,readOnly:e.readOnly===!0})}):null]})})}function sk(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 ype(){return rt(Hy,S(P3,{}),Ju,Ju[0].value)}function Spe(){return Ct("mobile",Tv(Hr,S(jm,{}),Fy.map(e=>({label:e.label,value:e.value,picture:S("span",{className:"sf-gallery-pic sf-share-pic",children:sk(e.weights).map((o,t)=>S("i",{style:{gridColumn:`span ${o}`}},t))})})),Ly,{columns:2,cell:lk}))}var lk={width:"5.75rem",height:"3.25rem"};function wpe(){return kc("share",K6(),qm)[nn("share")]}function Y6(){return Ct("mobile",vo(Yu,S(Mv,{}),Ci,Ay,1,Ci,"",{clear:{phoneFollows:!1,hint:Ci}}))}var Fv={read:e=>e.phoneRow,write:(e,o,t)=>({phoneRow:t}),fieldKey:()=>"phoneRow",ownField:!0};function Cpe(){let e=vo(Yu,S(Mv,{}),Zu,By,1,Zu,"",{clear:{emptyLabel:"Auto"}}),o=kc("columns",e,{...Fv,tablet:qm.tablet}),t=kc("columns",e,Fv,{phoneRow:Y6()});return{...o,phoneRow:t.phoneRow}}function vpe(e,o,t,r,a,n){return{type:"custom",render:({value:s,onChange:l})=>S(Je,{label:i(e),icon:S(Dp,{noun:n}),action:S(xo,{words:Q()?.panel,label:i(e),changed:!gv(s),detail:i("the Text style in Styles"),onReset:()=>l(Iv),defaultAction:{onPress:()=>l(Ic),title:i("Keep this section's own built-in size"),icon:S(y3,{})}}),children:Ro({min:o,max:t,step:r,value:typeof s=="number"?s:a,suffix:"px",ariaLabel:e,onChange:l})})}}function kpe(){return{_gCellWidth:at("Cell width"),gridSpan:rt("Positions",S(jm,{}),[{label:"Auto",value:""},...Array.from({length:Bi},(e,o)=>({label:o===0?"1 position":`${o+1} positions`,value:String(o+1)}))],"")}}function Ho(){let e=null,o=null;try{e=c3(Zm),o=$m(t=>t).selectedItem}catch{o=null}return e??o?.props??{}}var Zm=i3(null);function X6({min:e,max:o,step:t,px:r,label:a,onChange:n,desktopKey:s,fallback:l}){let c=Ho()[s],d=ji(void 0,c,l);return S(hr,{children:Ro({min:e,max:o,step:t,value:ji(r,c,l),readout:!1,ariaLabel:a,notch:d,onChange:n})})}function Z6({label:e,desktopKey:o,fallback:t,unit:r="px",changed:a=!1,onReset:n=()=>{}}){let s=Ho()[o],l=ji(void 0,s,t);return S(xo,{words:Q()?.panel,label:i(e),changed:a,detail:As(c=>i(c),`${l}${r}`),onReset:n})}function Ac(e){return tk(e.label,{icon:e.icon,min:e.min,max:e.max,step:e.step,unit:e.unit,unsetLabel:"Follows Desktop",unsetMark:S(Z6,{label:e.label,desktopKey:e.desktopKey,fallback:e.fallback,unit:e.unit}),restTrack:o=>S(X6,{...o,desktopKey:e.desktopKey,fallback:e.fallback})})}var J6={Top:"Padding top",Bottom:"Padding bottom",Left:"Padding left",Right:"Padding right"},Q6={Top:$v,Bottom:Wv,Left:Gv,Right:Uv},ez=e=>{let o=Q6[e];return S(o,{})};function Tpe(e={}){let o=e.keys?.top??"sectionPaddingTop",t=e.keys?.bottom??"sectionPaddingBottom",r=e.group!==!1,a=P=>J6[P],n=P=>vo(a("Top"),S($v,{}),ot.min,ot.max,ot.step,P,"px"),s=(P,v,w,g=ot)=>Ct("mobile",Ac({label:a(P),icon:ez(P),desktopKey:v,min:g.min,max:g.max,step:g.step,fallback:w})),l=e.top??ot.min,c=e.bottom??ot.min,d="sectionPaddingLeft",f="sectionPaddingRight",h=e.sideBounds??ot,u=e.side??h.min,x=e.sidePhone??u,I=e.phone===!0,y=P=>I?Ct("desktop",P):P;return Rs({...r?{_gSpacing:at("Padding")}:{},[o]:y(n(l)),...I?{[Mt(o)]:s("Top",o,l)}:{},...e.only==="top"?{}:{[t]:y(vo(a("Bottom"),S(Wv,{}),ot.min,ot.max,ot.step,c,"px")),...I?{[Mt(t)]:s("Bottom",t,c)}:{}},...e.sides?{[d]:y(vo(a("Left"),S(Gv,{}),h.min,h.max,h.step,u,"px")),...I?{[Mt(d)]:s("Left",d,x,h)}:{},[f]:y(vo(a("Right"),S(Uv,{}),h.min,h.max,h.step,u,"px")),...I?{[Mt(f)]:s("Right",f,x,h)}:{}}:{}})}function Ppe(e,o){let t=Object.fromEntries(Object.entries(o).map(([n,s])=>[n,n in e&&Wt(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 wc="Width";function Fc(e,o=bv,t=!0){let r=o.map(a=>({label:ea[a],value:a}));return Rs({...t?{_gWidth:at(wc)}:{},widthMode:{type:"custom",render:({onChange:a,field:n})=>S(Je,{label:i(wc),icon:S(N3,{}),action:t?S(b6,{inherited:n?.inherited??!1,onReset:()=>a(zm),label:wc}):void 0,children:bc({options:r,value:n?.currentValue||e,onChange:a,ariaLabel:wc})})}})}function Lc(){let e=(r,a)=>({type:"custom",render:({value:n,onChange:s})=>S(oz,{value:n,onChange:s,view:r,badge:a})}),o=r=>({type:"custom",render:({value:a,onChange:n,field:s})=>S(rz,{value:a,onChange:n,unit:s?.unit,view:r})}),t=r=>{let a=rn("Unit",S(zv,{}),[{label:"px",value:"px"},{label:"%",value:"%"}],"px");if(r==="desktop")return a;let n=a.render;return{...a,render:s=>S(az,{props:s,draw:n,view:r})}};return Rs({_gHeight:at(Ja),...an("sectionHeightMode",r=>r==="desktop"?e(r):e(r,a=>S(nz,{view:r,onClear:()=>a(void 0)}))),...an("sectionHeightValue",o),...an("sectionHeightUnit",t)})}function oz({value:e,onChange:o,view:t,badge:r}){let a=Ho(),n=l=>["auto","fixed","screen"].includes(l),s=Bc(t,a)?.mode??"auto";return S(Je,{label:Ja,icon:_s(S(O3,{})),action:r?r(o):void 0,children:bc({options:[{label:"Auto",value:"auto"},{label:"Fixed",value:"fixed"},{label:"Screen",value:"screen"}],value:n(e)?e:s,onChange:o,ariaLabel:Ja})})}function ik(e,o){return e==="phone"&&Cs(o)?XC(o):ws(o)}function Bc(e,o){return e==="desktop"||(e==="tablet"?Cs(o):Pm(o))?null:ik(e,o)}var pr=(e,o)=>e==="tablet"?nn(o):Mt(o);function tz(e,o,t,r){let a=Bc(e,o);return!a||e==="desktop"?null:r===void 0?{}:{[pr(e,"sectionHeightMode")]:a.mode,...a.mode==="fixed"?{[pr(e,"sectionHeightUnit")]:a.unit}:{},...t==="sectionHeightUnit"?{[pr(e,"sectionHeightValue")]:a.value}:{},[pr(e,t)]:r}}function ck(e,o,t){let r=sn(),a=Bc(e,Ho());return!r||!a?{followed:null,write:t}:{followed:a,write:n=>r.onChangeMany(s=>{let l=tz(e,s,o,n);return l===null?{[e==="desktop"?o:pr(e,o)]:n}:Object.keys(l).length?l:null})}}function rz({value:e,onChange:o,unit:t,view:r}){let{followed:a,write:n}=ck(r,"sectionHeightValue",o),s=(a?a.unit:t)==="%"?"%":"px",l=s==="%"?km:vm;return S("div",{className:"sf-field",children:Ro({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:Ja,onChange:n})})}function az({props:e,draw:o,view:t}){let{followed:r,write:a}=ck(t,"sectionHeightUnit",e.onChange);return o({...e,...r?{value:void 0,storedValue:void 0,follows:r.unit}:{},onChange:a})}function nz({view:e,onClear:o}){let t=Ho(),r=Bc(e,t)===null,a=e==="phone"&&Cs(t),n=ik(e,t),s=As(l=>i(l),n.mode==="auto"?i("Auto"):`${n.value}${n.unit}`,a?"tablet":"desktop");return S(xo,{words:Q()?.panel,label:i(Ja),changed:r,detail:s,onReset:o})}function Jm(){let e=t=>({type:"custom",render:({value:r,onChange:a,id:n,name:s})=>S(iz,{value:r,onChange:a,labelId:`${n??s??"stickTop"}-label`,view:t})}),o=t=>({type:"custom",render:({value:r,onChange:a})=>S(sz,{value:r,onChange:a,view:t})});return{_gStick:at(fc),...an("stickTop",e),...an("stickTopDistance",o)}}function sz({value:e,onChange:o,view:t}){let r=sn(),a=Ho(),n=t==="desktop"||Qm(t,a)?null:dk(t,uc(a)),s=n&&r?l=>r.onChangeMany(c=>{let d=lz(t,c,l);return d===null?{[pr(t,"stickTopDistance")]:l}:Object.keys(d).length?d:null}):o;return S("div",{className:"sf-field",children:Ro({min:fr.min,max:fr.max,step:fr.step,value:n?null:typeof e=="number"?e:fr.fallback,...n?{placeholder:n.distance}:{},suffix:"px",ariaLabel:i("Distance from top"),onChange:s})})}function Qm(e,o){return e==="tablet"?_m(o):Rm(o)}function dk(e,o){return e==="phone"?{on:o.tablet,distance:o.tabletDistance}:{on:o.desktop,distance:o.desktopDistance}}function lz(e,o,t){return e==="desktop"||Qm(e,o)?null:t===void 0?{}:{[pr(e,"stickTop")]:!0,[pr(e,"stickTopDistance")]:t}}function iz({value:e,onChange:o,labelId:t,view:r}){let a=Ho(),n=uc(a),s=r==="phone"?n.phone:r==="tablet"?n.tablet:e===!0,l=r==="phone"&&n.ownTablet,c=r==="desktop"?null:dk(r,n),d=c?.on?`${c.distance}px`:i("Off");return S(Je,{label:i(fc),labelId:t,icon:_s(S(F3,{})),action:oa(hr,{children:[r!=="desktop"?S(xo,{words:Q()?.panel,label:i(fc),changed:Qm(r,a),detail:As(f=>i(f),d,l?"tablet":"desktop"),onReset:()=>o(void 0)}):null,S(Km,{checked:s,onChange:o,ariaLabelledBy:t})]})})}var Lv="e.g. about";function Dc(){return{_gAnchor:at("Anchor"),anchor:aa({control:"plainText",label:"Name",placeholder:Lv},{type:"custom",render:({value:e,onChange:o})=>S(pw,{value:e,onChange:o,nameBox:(t,r)=>S(ra,{value:t,onChange:r,label:"Name",placeholder:Lv,hideable:!1,markup:!1})})})}}function Epe(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(X3,{id:l,value:Number.isFinite(c)?new Date(c):null,onChange:d=>a(d?d.toISOString():"")})})}}}function cz(e,o,t,r){return{type:"custom",...mr({},{...Tc,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(Km,{checked:c,onChange:n,ariaLabelledBy:d})})}}}function fk(){return{type:"custom",render:({value:e,onChange:o,id:t,name:r})=>{let a=`${String(t??r??"pageBackground")}-colour`;return S(Mo,{label:i("Background"),icon:S(A3,{}),id:a,value:Np(e),onChange:o})}}}function Ope(e,o,t){return{type:"custom",render:({value:r,onChange:a})=>S(Mo,{label:i(e),icon:t,value:r||o,onChange:a})}}function _pe(){return{type:"custom",render:({value:e,onChange:o})=>S(dz,{value:typeof e=="string"?e:"",onChange:o})}}function dz({value:e,onChange:o}){let{hex:t,n:r}=uz();return S(hs,{label:i("Fill"),icon:S(Hv,{}),value:e,inherited:t,resetTo:ta(t.toUpperCase(),i("Theme {n} background",{n:r})),onChange:o,onReset:()=>o("")})}function fz(e,o,t){if((e?.content??[]).some(n=>n?.props?.id===o))return Zo(t);let r=Iw(e,o);if(r.length===0)return null;let a=Zo(pm(t));if(a!==null)return a;for(let n=r.length-1;n>0;n-=1){let s=Zo(pm(r[n].sectionAccent));if(s!==null)return s}return Zo(r[0].sectionAccent)}function uz(){let{colors:e,n:o}=uk();return{hex:e.background,n:o}}function uk(){let e=no(ce().theme),[o]=zt("sectionAccent"),t=null;try{let{appState:a,selectedItem:n}=$m(l=>l),s=n?.props?.id?String(n.props.id):void 0;t=s?fz(a?.data,s,o):null}catch{t=null}let r=t!==null&&e.themes[t]?t:e.selected;return{colors:yo(e.themes[r]),n:r+1}}var pz=[{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 mz({label:e,value:o,onChange:t,points:r=pz}){let a=r.map(n=>({...n,label:i(n.label),...n.title?{title:i(n.title)}:null}));return S(q3,{label:i(e),value:o,points:a,onChange:t})}function Rpe(){return rk()}var pk={top:S(k3,{}),right:S(v3,{}),bottom:S(w3,{}),left:S(C3,{})};function mk(e,o,t,r,a,n,s){let l=h=>o.find(u=>u.value===h),c=h=>({value:h,label:"",disabled:!0,title:r}),d=h=>{let u=o.find(I=>I.cell===h);if(!u)return c(`missing-${h}`);let x=n?.[h];return x?{value:u.value,label:u.label,icon:x}:{value:u.value,label:u.label}},f=[c("corner-top-left"),d("top"),c("corner-top-right"),d("left"),c("centre"),d("right"),c("corner-bottom-left"),d("bottom"),c("corner-bottom-right")];return{type:"custom",render:({value:h,onChange:u})=>{let x=o.some(I=>I.value===h)?h:t;return S(Je,{label:i(e),icon:a,value:l(x)?.label?i(l(x).label):s?i(s):"",children:mz({label:e,value:x,onChange:u,points:f})})}}}function Ape(e,o,t){return{type:"custom",options:o,render:({value:r,onChange:a,field:n})=>S(Nw,{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 Fpe(e,o={}){return{type:"custom",render:({value:t,onChange:r})=>{let a={value:t,onChange:r,...o};return S(e,{...a})}}}var Lpe=[{label:"Image",value:"image"},{label:"Video",value:"video"}];function Bpe(e,o,t){let r=Object.keys(fp).map(a=>({label:fp[a],value:a,picture:t[a]}));return{type:"custom",...mr({},{type:"radio",label:e,options:r.map(a=>({value:a.value,label:a.label}))}),render:({onChange:a})=>S(hz,{label:e,icon:o,options:r,onChange:a})}}function hz({label:e,icon:o,options:t,onChange:r}){let a=sn()?.values??{},n=up(a),s=n==="frame"&&!!nr(a.mediaVideo)&&!nr(a.videoFrame);return S(Je,{label:i(e),icon:_s(o),hint:s?i("This video has no frame yet. The slide shows its background colour until one is made."):void 0,children:bc({options:t,value:n,onChange:r,ariaLabel:e})})}function Dpe(e,o,t,r={}){let a={type:"custom",[p3]:!0,render:({value:n,onChange:s,name:l})=>S(Bw,{value:n||"",onChange:s,fieldKey:l,label:e,accept:o,placeholder:t,focusKey:r.focus,focusWhen:r.focusWhen,frameKey:r.frame}),...r.focus?{focusKey:r.focus}:{},...r.focusWhen?{focusWhen:r.focusWhen}:{}};return r.focus?Ct("each",a):a}function xz(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 Npe({value:e,onChange:o,label:t}){let r=e||{},a=sn(),n=a?a.values!==a.node.props:!0,s=!!r.pending&&n,l=!!r.pending&&!n,c=s?"var(--ink-faint)":r.ok&&!l?"var(--status-success-soft-ink)":"var(--status-danger-soft-ink)",d=!!We(d6()).geocode,f=Dv(),h=(u,x)=>o({...r,[u]:x??void 0});return oa(hr,{children:[S(Je,{label:i(t),icon:S(Pv,{}),action:d?S(vc,{content:i("Find from the address (OpenStreetMap)"),children:S(qv,{"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(L3,{})})}):void 0,children:d&&r.status?S(vc,{content:xz(r),className:"sf-name-tip",children:S("div",{className:`es-field-hint ${Lp}`,style:{margin:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:c},children:s?i("Finding\u2026"):l?i(zp):i(r.status)})}):null}),S(Je,{label:i("Enter by hand"),labelId:f,icon:S(T3,{}),action:S(Km,{checked:!!r.manual,onChange:u=>o({...r,manual:u}),ariaLabelledBy:f})}),r.manual&&S(Je,{label:i("Latitude, longitude"),icon:S(Pv,{}),children:oa("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8,width:"100%",minWidth:0},children:[S(Ov,{value:typeof r.lat=="number"?r.lat:null,onChange:u=>h("lat",u),min:-90,max:90,step:1e-4,placeholder:i("Latitude")}),S(Ov,{value:typeof r.lng=="number"?r.lng:null,onChange:u=>h("lng",u),min:-180,max:180,step:1e-4,placeholder:i("Longitude")})]})})]})}function Iz(e,o){return o===null||o<0||o>=e.length?"":e[o]?.text??""}function gz(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 bz(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 eh={label:"Ticker items",icon:S(R3,{})};function Mpe(e,o,t,r){return{type:"custom",[Ht]:{control:"textList",label:e,placeholder:t,itemKey:"text",rendering:r},...mr({},{...Jv.textList,label:e}),render:({value:a,onChange:n})=>S(oh,{label:e,icon:_s(o),items:Array.isArray(a)?a:[],placeholder:t,onChange:n,markup:r==="markup"})}}function oh({label:e,icon:o,items:t,placeholder:r,onChange:a,markup:n=!1}){let s=Es(null),[l,c]=Os(null),d=h=>h.map(u=>({text:u?.text??""})),f=h=>{let u=bz(t,h,l);u===null&&(s.current=null),c(u),a(d(h))};return S(j3,{label:i(e),icon:o,noun:i("item"),items:t,onChange:f,newItem:()=>({text:""}),open:null,onOpen:()=>{},renderItem:()=>null,above:n?S(Up,{target:s,value:Iz(t,l),onChange:h=>a(gz(t,l??-1,h)),disabled:l===null,label:l===null?i("Formatting \u2014 click a row first"):i("Formatting \u2014 row {n}",{n:l+1})}):void 0,renderRow:(h,u,x)=>S("input",{type:"text",className:n&&l===u?"sf-list-marking":void 0,value:h?.text??"",placeholder:i(r),"aria-label":i("{label} {n}",{label:i(e),n:u+1}),onChange:I=>x({text:I.target.value}),onFocus:I=>{s.current=I.currentTarget,c(u)}})})}function hk(e,o){let t=`${e.label} \u2014 row ${o+1}`;return aa({control:"plainText",label:t,placeholder:e.placeholder,offPage:e.offPage},{type:"custom",render:({value:r,onChange:a})=>S(ra,{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 xk(e){return{_gCards:at("Cards"),coverIndex:rt("Cover image",S(_3,{}),Rw,String(1),e?.coverHint??"A card's opening picture \u2014 a card pinned to a finish keeps its own."),imageBackground:O6("Image background",xc),cardImage:wz()}}function Ik(){return{outline:rt("Card outline",S(B3,{}),Xp,Vp),indexBadge:rt("Card number",S(zv,{}),Yp,qp),showBadge:cz("Product badge",!0,S(Dp,{noun:"tag"}))}}function gk(e){let o=e?.defaults??{showCardSizes:!0,showCardBuy:!0,showCardPage:!0},t=a=>({...Tc,label:Cc.find(n=>n.id===a).label}),r=a=>mr(t6(Um),t(a));return{_gShowOnCard:at("Show on a card"),[Um]:mr({type:"custom",render:()=>S(yz,{rest:{showCardPrice:!0,showCardFinishes:!0,...o}})},t(Um)),showCardFinishes:r("showCardFinishes"),showCardSizes:r("showCardSizes"),showCardBuy:r("showCardBuy"),showCardPage:r("showCardPage")}}var Um="showCardPrice",Cc=[{id:"showCardPrice",label:"Price"},{id:"showCardFinishes",label:"Finish swatches"},{id:"showCardSizes",label:"Sizes"},{id:"showCardBuy",label:"Buy button"},{id:"showCardPage",label:"Page button"}];function yz({rest:e}){let o=Ho(),t=em(),r=s=>typeof o[s]=="boolean"?o[s]:void 0,a=s=>r(s)??e[s],n=Cc.some(({id:s})=>r(s)!==void 0&&r(s)!==e[s]);return S(th,{parts:Cc,changed:n,shown:a,onPress:(s,l)=>t({[s]:l}),onReset:()=>t(Object.fromEntries(Cc.map(({id:s})=>[s,void 0])))})}function Hpe(e,o="display"){let t=Mt(o);return{[o]:Ct("desktop",{type:"custom",render:({value:r,onChange:a})=>S(th,{parts:e,changed:gw(r),shown:n=>Gi(r,n),onPress:(n,s)=>a(yw(r,n,s)),onReset:()=>a(void 0)})}),[t]:Ct("mobile",{type:"custom",render:({value:r,onChange:a})=>S(Sz,{parts:e,desktopKey:o,value:r,onChange:a})})}}function th({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(x3,{}),changed:o,action:S(xo,{words:Q()?.panel,label:l,changed:o,detail:n,onReset:a}),children:S(K3,{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 Sz({parts:e,desktopKey:o,value:t,onChange:r}){let a=Ho()[o];return S(th,{parts:e,changed:bw(t),shown:n=>Hp(a,t,n),onPress:(n,s)=>r(Sw(t,n,s)),onReset:()=>r(Ki),detail:i("the same as Desktop")})}function wz(){return tk("Card image",{min:Bo,max:Fr,step:WS,hint:"Rounds the picture. The card's own corner is in Styles."})}function zpe(){return Xm({sidesKey:"cornerSides",step:GS,useFollowed:()=>Bo,mark:S(Cz,{label:US}),hint:i("Rounds the picture. Left alone it stays square.")})}function Cz({label:e,changed:o=!1,onReset:t=()=>{}}){return S(xo,{words:Q()?.panel,label:i(e),changed:o,onReset:t})}function Wpe(){return{type:"custom",render:({value:e,onChange:o})=>S(Pz,{value:typeof e=="string"?e:"",onChange:o})}}function vz({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:qS(e).map(([t,r],a)=>S("i",{className:"block rounded-xs bg-current opacity-60",style:{gridColumn:`span ${t}`,gridRow:`span ${r}`}},a))})}var kz={width:"3.5rem",height:"2.5rem"},Tz=200;function Pz({value:e,onChange:o}){let[t,r]=Os(null),[a,n]=Os(4),s=Es(null);d3(()=>{let u=s.current;if(!u||typeof ResizeObserver!="function")return;let x=()=>n(u.getBoundingClientRect().width>=Tz?4:3);x();let I=new ResizeObserver(x);return I.observe(u),()=>I.disconnect()},[]);let l=e&&e in Lt?e:"",c=Ep(t,l),d=Ep(t,"").length,f=Di("no-symbol"),h=[{value:"",label:i("Not chosen"),icon:kv(f,i("Not chosen"))},...c.map(u=>({value:u,label:i(Lt[u].label),icon:S(vz,{layout:Lt[u],width:40})}))];return S(Je,{label:i("Layout"),icon:S(E3,{}),value:l?i(Lt[l].label):void 0,children:S("div",{ref:s,style:{flex:"1 1 auto",minWidth:0},children:S(jv,{label:i("Layout"),value:l,options:h,onChange:o,columns:a,cell:kz,header:oa("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(z3,{options:[{id:"all",label:i("All")},...jS.map(u=>({id:String(u),label:String(u)}))],value:t===null?"all":String(t),ariaLabel:i("Photos in a row"),onChange:u=>r(u==="all"?null:Number(u))}),S("span",{className:"text-2xs text-ink-faint",children:i("{n} of {total} layouts",{n:d,total:Pp.length})})]})})})})}import{decodePartId as jz}from"efficient-easel/draw";import{decodePartId as sh,encodePartId as Wc}from"efficient-easel/draw";import{LINK_FIELD_MARKER as Ek,SCAFFOLD_FIELD_MARKER as Tk,TEXT_FIELD_MARKER as Gc}from"efficient-easel/draw";import{readHidable as Ok}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as Lz}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as Fz}from"efficient-easel/draw";import{TEXT_FIELD_MARKER as bk}from"efficient-easel/draw";import{readHidable as yk}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as Ez}from"efficient-easel/draw";var Oz=Ez,_z=["text","textarea"],Rz=["textarea","plainTextarea"];function Az(e){return!e||typeof e!="object"?null:e[bk]?.control??null}function ln(e){let o=Az(e);return o&&Oz.includes(o)?o:null}function Nc(e){return Rz.includes(e)}function Sk(e){return!e||typeof e!="object"?void 0:e[bk]?.placeholder}function Mc(e){return yk(e).text}function rh(e,o,t){return _z.includes(e)?{text:t,hidden:yk(o).hidden}:t}function wk(e,o,t,r){return Mc(e[o])===r?null:{...e,[o]:rh(t,e[o],r)}}function Fs(e,o){return o?`${e}[${o.index}].${o.rowKey}`:e}function nt(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 Hc(e){if(!(!e||typeof e!="object"))return e[Fz]}function ah(e){if(!e||typeof e!="object")return null;let o=e.arrayFields;return o&&typeof o=="object"?o:null}function Ck(e,o){if(!Array.isArray(o))return[];let t=Hc(e),r=[];if(t?.control==="textList"){let n=t.itemKey??"text";return o.forEach((s,l)=>{let c=oe(s?.[n]);c&&r.push({row:{index:l,rowKey:n},text:c})}),r}let a=ah(e);return a?(o.forEach((n,s)=>{for(let[l,c]of Object.entries(a)){if(!ln(c))continue;let d=Mc(n?.[l])||Hc(c)?.placeholder||"";d&&r.push({row:{index:s,rowKey:l},text:d})}}),r):[]}function Ls(e,o){if(Array.isArray(e))return e[o.index]?.[o.rowKey]}function nh(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 vk(e,o,t,r,a){let n=Ls(e[o],t);return Mc(n)===a?null:nh(e,o,t,rh(r,n,a))}function kk(e,o){return o?`${e} \xB7 row ${o.index+1}`:e}var st="data-sf-part",ime="data-sf-region-part",cme="data-sf-part-row";function dme(e,o){return`${e}[${o}]`}var fme="data-sf-part-kind",Bz="data-sf-part-style-owner",Dz="data-sf-part-style-kind";function ume(e){for(let o=e;o;o=o.parentElement){let t=o.getAttribute(Bz),r=o.getAttribute(Dz);if(t&&r)return{owner:t,kind:r};if(o.getAttribute("data-easel-block"))return null}return null}var Pk=2;function cn(e){return Ur(e).replace(/\s+/gu,"")}function zc(e,o,t){let r=e[Gc];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}=Ok(o);a?t.push(a):r.placeholder&&t.push(r.placeholder);return}if(!e[Ek]){if(e.type==="text"||e.type==="textarea"){let a=oe(o);a&&t.push(a);return}if(e.arrayFields&&Array.isArray(o)){for(let a of o)for(let[n,s]of Object.entries(e.arrayFields))zc(s,a?.[n],t);return}if(e.objectFields&&o&&typeof o=="object")for(let[a,n]of Object.entries(e.objectFields))zc(n,o[a],t)}}function _k(e){if(!e||typeof e!="object")return!1;let o=e;return o[Ek]?!1:!!o[Gc]||o.type==="text"||o.type==="textarea"}function Uc(e,o){let t=e[Gc];return t?.label?t.label:typeof e.label=="string"?e.label:o}function lh(e){let o=e.indexOf(" (");return(o>0?e.slice(0,o):e).trim()}function pme(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){if(!a||typeof a!="object"||xs(r))continue;let n=a,s=[];zc(n,o?.[r],s),!s.length&&n[Tk]!==void 0&&zc(n,n[Tk],s);let l=Uc(n,r),c=new Set;for(let{row:h,text:u}of Ck(n,o?.[r])){let x=cn(u);x.length<Pk||(c.add(x),t.push({key:r,label:l,texts:[x],row:h}))}let d=new Set(c),f=[];for(let h of s){let u=cn(h);u.length<Pk||d.has(u)||(d.add(u),f.push(u))}f.length&&t.push({key:r,label:l,texts:f})}return t}function ih(e){return!e.offPage&&!e.hidden}var Nz=Lz;function Rk(e,o){if(!o||typeof o!="object"||xs(e)||Tw(o))return null;let t=o[Gc];return!t||!Nz.includes(t.control)?null:t}function mme(e,o){let t=Rk(e,o);return t!==null&&t.identifier!==!0}function Ak(e,o){if(!e)return[];let t=[];for(let[r,a]of Object.entries(e)){let n=Rk(r,a);if(!n)continue;let{text:s,hidden:l}=Ok(o?.[r]);if(ih({offPage:n.offPage===!0,hidden:!!l}))continue;let c=s||n.placeholder||"",d=Ur(c).replace(/\s+/gu," ").trim();t.push({key:r,label:lh(Uc(a,r)),preview:d,offPage:n.offPage===!0,identifier:n.identifier===!0,hidden:!!l})}return t}function dn(e,o){let t=Hc(e);return t?.control==="textList"?o.rowKey===(t.itemKey??"text")?hk(t,o.index):null:ah(e)?.[o.rowKey]??null}function $c(e,o,t){let r=e.node.props,{key:a,row:n}=nt(e.propKey),s=n?vk(r,a,n,e.kind,o):wk(r,a,e.kind,o);return s?(t(e.zone,e.index,{...e.node,props:s}),!0):!1}import{readHidable as Dk}from"efficient-easel/draw";import{isNodeList as Mz}from"efficient-easel/data";var ch=e=>String(e+1).padStart(2,"0"),wme=[{label:"01 \xB7",value:"two-digit"},{label:"1.",value:"plain"}],dh="two-digit",Fk=e=>e==="plain"?"plain":dh,jc=(e,o)=>e==="plain"?`${o+1}.`:ch(o);var uh="Contents",fh="Flex",Lk="Text",Hz="numberForm",Ame="_contentsEntries",Fme="_kickerNumber",Nk="data-sf-kicker-number",zz=e=>Dk(e).text.trim(),Mk=e=>rw(e?.anchor),Bk=e=>String(e.props?.id??""),Wz=e=>!Dk(e.props?.text).hidden&&!as(e.props)&&!ar(e.props);function Bs(e){return Object.values(e.props??{}).filter(Mz)}function Hk(e){for(let o of Bs(e))for(let t of o){if(t.props?._hidden)continue;if(t.type===Lk&&Wz(t))return t;if(t.type===Lk)continue;let r=Hk(t);if(r)return r}}function zk(e){return Bs(e).some(o=>o.some(t=>t&&!t.props?._hidden&&(t.type===uh||zk(t))))}var Wk=e=>e.type===fh&&Qa(fh,e.props?.direction)==="row";function Gk(e){return Bs(e).some(o=>o.some(t=>t&&!t.props?._hidden&&(t.type===uh||!Wk(t)&&Gk(t))))}function Gz(e){let o=[],t=(r,a)=>{for(let n of r){if(!n||n.props?._hidden)continue;if(n.type===uh){a.open={contents:n,sections:a.waiting??[]},a.waiting=null,o.push(a.open);continue}if(Wk(n)&&Gk(n)){let l={inRow:!0,open:null,waiting:[]};for(let c of Bs(n))t(c,l);a.inRow||(a.open=null);continue}let s=a.open?.sections??a.waiting;if(n.type===fh&&Mk(n.props)&&s&&!zk(n)){s.push({box:n,kicker:Hk(n)});continue}for(let l of Bs(n))t(l,a)}};return t(e,{inRow:!1,open:null,waiting:null}),o}function Uz(e){return e.map(o=>({label:o.kicker?Ur(zz(o.kicker.props?.text)):"",anchor:Mk(o.box.props)}))}function Lme(e){let o=e?.length?Gz(e):[];if(!o.length)return null;let t=new Map,r=new Map;for(let a of o){let n=Bk(a.contents);n&&t.set(n,Uz(a.sections));let s=Fk(a.contents.props?.[Hz]);a.sections.forEach((l,c)=>{let d=l.kicker?Bk(l.kicker):"";d&&r.set(d,jc(s,c))})}return{entries:t,numbers:r}}var Bme=e=>e.endsWith(".")?`${e} `:`${e} \xB7 `;var Kz=`[${Nk}]`,qz=["bold","italic","underline","strike","link","sup","sub"],Vz=["bullet","number"];function hh(e,o){return e?[...qz,...o?Vz:[]]:[]}function Uk(e,o){let t=jz(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}=nt(a),d=o.components[n.type]?.fields?.[l],f=c?dn(d,c):d,h=ln(f);if(!h)return null;let u=n.props??{};if(Im(u)!==null||!c&&Zy(n.type,u,l)||n.type==="Text"&&l==="text"&&as(u)||c&&!(Array.isArray(u[l])&&c.index<u[l].length))return null;let x=c?Ls(u[l],c):u[l];return{node:n,selector:s,propKey:a,kind:h,stored:x,offPage:Pc(f)}}function Kc(e,o){let t=Uk(e,o);if(!t)return null;let{text:r,hidden:a}=xr(t.stored);if(!ih({offPage:t.offPage,hidden:!!a}))return null;let n=Nc(t.kind);return{partId:e,value:r,rules:Gr,multiline:n,skip:Kz,offered:hh(t.kind!=="plainText",n),write:s=>{let l=Uk(e,o);l&&$c({node:l.node,propKey:l.propKey,kind:l.kind,zone:l.selector.zone,index:l.selector.index},s,o.replace)}}}function xh(e,o,t){return e?.isConnected&&e.getAttribute(st)===t?e:o?.querySelector(`[${st}="${qc(t)}"]`)??null}function qc(e){return e.replace(/["\\]/g,"\\$&")}function $k(e){let o=e.activeElement;return o?o.tagName==="IFRAME"||!!o.closest(".es-canvas"):!1}var ph=null,mh=new Set;function Yz(){return ph}function Ih(e){if(e!==ph){ph=e;for(let o of mh)o()}}function Xz(e){return mh.add(e),()=>{mh.delete(e)}}function jk(){return $z(Xz,Yz,()=>null)}function Kk(e,o){if(e.outer)return null;let t=o.getItemById(e.ownerId);if(!t)return null;let r=Vy(t.type);return!r||So(t.props)?null:{node:t,rows:r}}function oW(e,o){let t=Kk(e,o),r=o.getItemById(e.nodeId);if(!t||!r)return null;let a=rp(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:Zz(e.ownerId,Fs(t.rows,{index:e.index,rowKey:a}))}function Vc(e,o){let t=oW(e,o);return t?Kc(t,o):null}function qk(e,o){return Vc(e,o)?.value}function Vk(e,o){let t=Vc(e,o);return t?(t.write(e.text),!0):!1}function Yk(e,o){let t=Kk(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=Jz(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=Qz(n,s,c);break}case"delete":l=eW(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 MP,jsxs as Xs}from"react/jsx-runtime";import{Fragment as oj,useEffect as tj,useId as rj,useMemo as HP,useRef as aj,useState as gr}from"react";import{useScreenDocument as qP}from"efficient-easel/screen/components/ScreenDocumentContext";import{UiIcon as yx}from"efficient-easel/draw/client";import nj from"efficient-easel/screen/components/SidePanelHead";import{jsx as re,Fragment as fa,jsxs as da}from"react/jsx-runtime";import{useEasel as _P,useRootFields as s$}from"efficient-easel/easel";import{Inspector as l$}from"efficient-easel/fields";import{SettingsGroup as i$}from"efficient-easel/panel";import{useEffect as c$,useRef as d$,useState as Cd}from"react";import{jsx as na,Fragment as nW,jsxs as sW}from"react/jsx-runtime";import{useState as Qk}from"react";import{SettingsDefaultReset as lW,SettingsField as iW}from"efficient-easel/panel";import{useEaselStrings as cW}from"efficient-easel/strings";import{AddIcon as dW}from"efficient-easel/icons";import{Button as fW}from"efficient-shell/ui";import{iconOf as uW,noGlyph as pW}from"efficient-easel/screen/lib/document/box-fields";import{jsx as Yc,Fragment as tW,jsxs as Xk}from"react/jsx-runtime";import{Button as Zk,Dialog as rW}from"efficient-shell/ui";function aW(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 Jk({count:e,onCancel:o,onConfirm:t}){return Xk(rW,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Clear this site\u2019s colors?"),footer:Xk(tW,{children:[Yc(Zk,{variant:"secondary",onClick:o,children:i("Cancel")}),Yc(Zk,{variant:"danger",onClick:t,children:i("Clear colors")})]}),children:[Yc("p",{children:aW(e)}),Yc("p",{className:"mt-2 font-medium",children:i("This cannot be undone.")})]})}var mW=pW("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"),hW="Reset color",xW={selected:0,themes:[]};function IW(e){e(xW)}function eT({value:e,onChange:o}){let t=e?.themes??[],r=t.length===0,a=no(e),[n,s]=Qk(!1),l=cW(),[c,d]=Qk(null),f=(v,w)=>{o({...a,themes:a.themes.map((g,T)=>T===v?w:g)})},h=Ha(a).accent,u=new Set(a.themes.map(v=>v.brandInk).filter(Boolean)),x=Ab.filter(v=>!u.has(v)).map(v=>Fb(h,v)),I=[...a.themes,...x],y=v=>{if(v<a.themes.length)return o({...a,selected:v});let w=[...a.themes,I[v]];o({...a,themes:w,selected:w.length-1})},P=()=>{let v=[...a.themes,{...yo(a.themes[a.selected])}];o({...a,themes:v,selected:v.length-1}),d(v.length-1)};return sW(nW,{children:[r?null:na(iW,{label:i(hW),icon:uW(mW),labelId:"sf-theme-reset",action:na(lW,{label:i("all theme colors"),words:l.panel,changed:!0,onReset:()=>s(!0)})}),n&&na(Jk,{count:t.length,onCancel:()=>s(!1),onConfirm:()=>{s(!1),IW(o)}}),na("div",{className:"sf-theme-list",role:"radiogroup","aria-label":i("Theme"),children:I.map((v,w)=>na(Yi,{index:w,colors:v,selected:w===a.selected,open:c===w&&w<a.themes.length,editable:w<a.themes.length,onPick:()=>y(w),onEdit:()=>d(g=>g===w?null:w),onChangeColors:g=>f(w,g)},w))}),na(fW,{variant:"secondary",leftIcon:na(dW,{}),onClick:P,className:"sf-theme-add",children:i("Add new theme")})]})}import{jsx as Xc}from"react/jsx-runtime";import{SettingsDefaultReset as gW,SettingsField as bW}from"efficient-easel/panel";import{SquareIcon as yW}from"efficient-easel/icons";var SW="Applies to panels, cards, inputs and buttons. Round things \u2014 color swatches, switches, status dots \u2014 stay round.",gh="Corners";function oT({value:e,onChange:o,showHint:t=!0}){let r=e===null;return Xc(bW,{label:i(gh),icon:Xc(yW,{}),value:r?i("Default"):`${e}px`,changed:!r,action:Xc(gW,{words:Q()?.panel,label:i(gh),changed:!r,detail:i("the built-in corners"),onReset:()=>o(null)}),hint:t?i(SW):void 0,children:Xc(Ro,{min:Bo,max:Fr,step:1,value:e??Bo,readout:!1,ariaLabel:i(gh),onChange:o})})}import{jsx as Ds}from"react/jsx-runtime";import{SettingsDefaultReset as wW,SettingsField as CW}from"efficient-easel/panel";import{IconPicker as vW}from"efficient-shell/ui";import{ShadowIcon as kW}from"efficient-easel/icons";var bh={none:"None",soft:"Soft",lifted:"Lifted"},TW="Applies to cards \u2014 products, brands, journal entries and filter cells. Round things like swatches and status dots are never shadowed.",PW={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 tT({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??_u;return Ds(CW,{label:i("Card shadow"),icon:Ds(kW,{}),value:i(bh[a]),changed:!r,action:Ds(wW,{words:Q()?.panel,label:i("Card shadow"),changed:!r,detail:i(bh[_u]),onReset:()=>o(null)}),hint:t?i(TW):void 0,children:Ds(vW,{label:i("Card shadow"),value:a,options:Ub.map(n=>({value:n,label:i(bh[n]),icon:Ds("span",{className:"sf-shadow-chip border border-line bg-surface",style:{boxShadow:PW[n]}})})),onChange:o})})}import{jsx as rT}from"react/jsx-runtime";import{ShadowIcon as EW}from"efficient-easel/icons";var OW="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 aT({value:e,onChange:o,showHint:t=!0}){let r=e===null;return rT(hs,{label:i("Shadow color"),icon:rT(EW,{}),value:e??"",inherited:Au,resetTo:Au,onChange:o,onReset:()=>o(null),hint:t?i(OW):void 0})}import{jsx as Jc}from"react/jsx-runtime";import{SettingsDefaultReset as _W,SettingsField as RW}from"efficient-easel/panel";import{AlignSeparateIcon as AW}from"efficient-easel/icons";function Zc(e,o){return e==="tablet"?null:e==="mobile"?o.phone:o.desktop}var FW="The space between the blocks inside a row, a grid or a box. Default means each one keeps the spacing it already has.",LW="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.",yh="Block gap",nT=on.Grid;function sT(e,o){return Zc(e,{desktop:{key:"block_gap",value:o.gap,followsPx:null},phone:{key:"block_gap_phone",value:o.phone,followsPx:o.gap===null?null:Fm(o.gap)}})}function lT({value:e,onChange:o,showHint:t=!0,followsPx:r=null}){let a=e===null,n=r===null?null:`${r}px`;return Jc(RW,{label:i(yh),labelId:"sf-block-gap",icon:Jc(AW,{}),value:a?n??i("Default"):`${e}px`,changed:!a,action:Jc(_W,{words:Q()?.panel,label:i(yh),changed:!a,detail:n??i("each block's own spacing"),onReset:()=>o(null)}),hint:t?i(n===null?FW:LW):void 0,children:Jc(Ro,{min:Jr.min,max:Jr.max,step:Jr.step,value:e??(r===null?nT:vs(r)??nT),readout:!1,ariaLabel:i(yh),onChange:o})})}import{jsx as nd}from"react/jsx-runtime";import{SettingsDefaultReset as HW,SettingsField as zW,SettingsSegmented as WW}from"efficient-easel/panel";import{HoverIcon as GW}from"efficient-easel/icons";import{HOVER_MOTION as BW,motionSeconds as Qc}from"efficient-shell/format";var Ao="hover",ed="_gHover",DW=["none","nextImage","rotate","zoom","lift","mono"],Ms={none:"None",nextImage:"Show next image",rotate:"Rotate",zoom:"Zoom",lift:"Lift",mono:"Black and white"};function od(e){return DW.filter(o=>e.includes(o))}var Sh=od(["none","lift"]);function iT(e){let o=e[Ao];return Sh.includes(o)?o:"none"}var td=od(["none","rotate"]),Be={kind:Ao,angle:"hoverAngle",duration:"hoverDuration",delay:"hoverDelay"},Ns="spinOnHover",fn={min:0,max:360,step:1},cT={ProductGrid:"rotate",RelatedProducts:"rotate",AlloyWheelsListing:"none"},Zhe=Object.keys(cT);function wh(e){return cT[e]??"none"}var Ch=BW.rotateFallbackDeg;function vh(e,o){let t=e[Be.kind];if(td.includes(t))return t;let r=e[Ns];return typeof r=="boolean"?r?"rotate":"none":o}function kh(e){let o=U(e);return o===void 0?Ch:Math.min(fn.max,Math.max(fn.min,o))}function Jhe(e,o){let t=wh(o),r=vh(e,t);return{kind:r,angle:r==="rotate"?kh(e[Be.angle]):null,duration:Qc("hover","duration",r==="rotate"?e[Be.duration]:void 0),delay:Qc("hover","delay",r==="rotate"?e[Be.delay]:void 0)}}function dT(e){let o={field:Be.kind,in:[...td]};return{any:[{field:Be.kind,is:"rotate"},{all:[{not:o},e==="rotate"?{not:{field:Ns,is:!1}}:{field:Ns,is:!0}]}]}}var rd=od(["none","mono"]),Th=od(["none","nextImage","mono"]),fT={ImageBlock:"none",Manifesto:"none",Split:"none",ContactLocations:"mono"},Qhe=Object.keys(fT);function Ph(e){return fT[e]??"none"}var Hs={zoom:"hoverZoom",darken:"hoverDarken"},Gt={min:100,max:150,step:1,unit:"%"},ad=["nextImage"];function NW(e,o){if(!ad.includes(o))return null;let t=U(e[Hs.zoom]);if(t===void 0)return null;let r=Math.min(Gt.max,Math.max(Gt.min,t));return r===Gt.min?null:String(r/100)}function MW(e,o){if(!ad.includes(o))return null;let t=U(e[Hs.darken]);return t!==void 0&&t>0?t:null}var Eh=["ImageBlock"];function Oh(e,o,t=rd){let r=e[Ao];return t.includes(r)?r:o}function uT(e,o=""){let t=Eh.includes(o)?Th:rd,r=Oh(e,Ph(o),t),a=r!=="none";return{kind:r,duration:Qc("hover","duration",a?e[Be.duration]:void 0),delay:Qc("hover","delay",a?e[Be.delay]:void 0),...ad.includes(r)?{zoom:NW(e,r),darken:MW(e,r)}:{}}}function pT(){return{field:Ao,in:[...ad]}}function mT(e){return e==="none"?{field:Ao,in:["mono","nextImage"]}:{not:{field:Ao,is:"none"}}}var _h={none:Ms.none,lift:Ms.lift,highlight:"Highlight"},UW="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 hT({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??Ru;return nd(zW,{label:i("Hover effect"),icon:nd(GW,{}),value:i(_h[a]),changed:!r,action:nd(HW,{words:Q()?.panel,label:i("Hover effect"),changed:!r,detail:i(_h[Ru]),onReset:()=>o(null)}),hint:t?i(UW):void 0,children:nd(WW,{options:$b.map(n=>({id:n,label:i(_h[n])})),value:a,ariaLabel:i("Hover effect"),onChange:o})})}import{jsx as sd}from"react/jsx-runtime";import{SettingsDefaultReset as $W,SettingsField as jW,SettingsSegmented as KW}from"efficient-easel/panel";import{DropIcon as qW}from"efficient-easel/icons";var Rh="Photography",xT={shot:"As shot",mono:"Black and white"},Ah=[{grayscale:!1,label:xT.shot},{grayscale:!0,label:xT.mono}],VW="Black and white photographs return to color on hover. Wheels and tyres keep their real finish either way.";function IT({value:e,onChange:o,showHint:t=!0}){let r=e===null,a=e??!1;return sd(jW,{label:i(Rh),icon:sd(qW,{}),value:i(Ah.find(n=>n.grayscale===a).label),changed:!r,action:sd($W,{words:Q()?.panel,label:i(Rh),changed:!r,detail:i(Ah.find(n=>!n.grayscale).label),onReset:()=>o(null)}),hint:t?i(VW):void 0,children:sd(KW,{options:Ah.map(n=>({id:n.grayscale,label:i(n.label)})),value:a,ariaLabel:i(Rh),onChange:o})})}import{jsx as Fh}from"react/jsx-runtime";import{useId as YW}from"react";import{SettingsField as XW,SettingsSwitch as ZW}from"efficient-easel/panel";import{ShareIcon as JW}from"efficient-easel/icons";var QW="Share button",eG="On every blog post.";function gT({value:e,onChange:o,showHint:t=!0}){let r=YW();return Fh(XW,{label:i(QW),labelId:r,icon:Fh(JW,{}),action:Fh(ZW,{checked:e===!0,onChange:o,ariaLabelledBy:r}),hint:t?i(eG):void 0})}import{usePreviewDevice as xx}from"efficient-easel/draw/client";import{jsx as dd}from"react/jsx-runtime";import{SettingsDefaultReset as pG,SettingsField as mG}from"efficient-easel/panel";import{PaddingXIcon as hG}from"efficient-easel/icons";var io={min:1e3,max:2e3,step:50,default:1600};function oG(e){return{maxWidth:e,marginInline:"auto",width:"100%"}}var bT="--sf-site-width",Lh=`var(${bT},${io.default}px)`,bxe=`max-w-[${Lh}]`,yxe=`max-w-[${io.default}px]`;function tG(e){return typeof e!="number"||!Number.isFinite(e)?io.default:Math.round(Math.min(Math.max(e,io.min),io.max))}function Sxe(e){let o=tG(e);return o===io.default?{}:{[bT]:`${o}px`}}var Ut={min:0,max:80,step:4,default:40},yT="--sf-site-gutter",zs={min:0,max:24,step:4},rG="--sf-site-gutter-phone",aG="max-view-tablet:[--sf-site-gutter:var(--sf-site-gutter-phone)]!",lt=`var(${yT},${Ut.default}px)`,nG=`px-[${lt}]`;var Ir={md:`min(24px,${lt})`,sm:`min(20px,${lt})`,frame:`min(24px,${lt})`,tabs:`min(16px,${lt})`},wxe=[[`max-view-desktop:px-[${Ir.md}]`,"max-view-desktop:px-6"],[`max-view-desktop:px-[${Ir.tabs}]`,"max-view-desktop:px-4"],[`max-[960px]:px-[${Ir.frame}]`,"max-[960px]:px-6"],[`max-[900px]:px-[${Ir.md}]`,"max-[900px]:px-6"],[`max-view-wide:px-[${Ir.md}]`,"max-view-wide:px-6"],[`max-view-tablet:px-[${Ir.sm}]`,"max-view-tablet:px-5"],[`max-view-wide:px-[${Ir.sm}]`,"max-view-wide:px-5"],[`max-[640px]:px-[${Ir.sm}]`,"max-[640px]:px-5"],[`view-wide:px-[${lt}]`,"view-wide:px-10"],[`max-view-tablet:px-[min(24px,${lt})]`,"max-view-tablet:px-6"],[`max-view-wide:-mx-[min(20px,${lt})]`,"max-view-wide:-mx-5"],[`max-view-tablet:-mx-[min(20px,${lt})]`,"max-view-tablet:-mx-5"],[`-mx-[${lt}]`,"-mx-10"],[nG,"px-10"]];var Cxe="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))]",vxe="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 ld(e){return typeof e!="number"||!Number.isFinite(e)?Ut.default:Math.round(Math.min(Math.max(e,Ut.min),Ut.max))}function kxe(e){let o=ld(e);return o===Ut.default?{}:{[yT]:`${o}px`}}function id(e){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,zs.min),zs.max))}function Txe(e){let o=id(e);return o===null?{}:{[rG]:`${o}px`}}function Pxe(e){return id(e)===null?"":aG}function cd(e){return Math.min(zs.max,ld(e))}var ST=Lh,Exe=`max-w-[${ST}]`,Oxe=`max-w-[min(var(--sf-page-cap,${io.default}px),${io.default}px)]`,wT="--sf-hero-cap",sG=`var(${wT},none)`,_xe=`max-w-[${sG}]`,lG="--sf-hero-bleed-m",iG="--sf-hero-bleed-w",cG="--sf-hero-chrome-x",dG="--sf-hero-chrome-cap";function Rxe(e){return e===!0?{[wT]:ST,[lG]:"auto",[iG]:"100%",[cG]:"24px",[dG]:"none"}:{}}var Bh=`calc(${Lh} - ${lt}*2)`,Axe=`max-w-[${Bh.replace(/ /g,"_")}]`;var fG="--sf-chrome-cap",uG=`var(${fG},${Bh})`,Fxe="data-page-width";function Lxe(e){return e==="full"?"full":null}function Bxe(e){return e==="full"?null:oG(e==="content"?Bh:uG)}function Dxe(e){if(e==="full")return"full";if(e==="content")return"content"}var Dh="Side space",CT=Ut.default,xG="The room left at the left and right edge of every page.";function vT(e,o){return Zc(e,{desktop:{key:"site_gutter",value:o.gutter,unsetPx:CT,bounds:Ut},phone:{key:"site_gutter_phone",value:o.phone,unsetPx:cd(o.gutter),bounds:zs}})}function kT({value:e,onChange:o,showHint:t=!0,unsetPx:r=CT,bounds:a=Ut}){let n=e===null;return dd(mG,{label:i(Dh),labelId:"sf-side-space",icon:dd(hG,{}),value:`${e??r}px`,changed:!n,action:dd(pG,{words:Q()?.panel,label:i(Dh),changed:!n,detail:`${r}px`,onReset:()=>o(null)}),hint:t?i(xG):void 0,children:dd(Ro,{min:a.min,max:a.max,step:a.step,value:e??r,readout:!1,ariaLabel:i(Dh),onChange:o})})}import{jsx as Nh}from"react/jsx-runtime";import{BACKGROUND_WIDTHS as Vxe,SettingsBackgroundWidth as IG,SettingsContentWidth as gG}from"efficient-easel/panel";var bG="Background width",yG="Content width";var fd=e=>i(ea[e==="content"?"page":"full"]),TT="The width of every section's background.",PT="The width of every section's content.";function ET({value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n,labelId:s}){return Nh(IG,{value:e,changed:o,detail:t,onChange:r,onReset:a,hint:n?i(n):void 0,labelId:s,words:{label:i(bG),full:fd("full"),content:fd("content")},resetWords:Q()?.panel})}function OT({mode:e,px:o,max:t=io.max,min:r=io.min,changed:a,detail:n,onMode:s,onPx:l,onReset:c,hint:d,labelId:f}){let h=i(yG),u=e!=="full"?Nh(Ro,{min:r,max:t,step:io.step,value:Math.min(Math.max(o,r),t),onChange:l,suffix:"px",ariaLabel:h}):null;return Nh(gG,{mode:e,onMode:s,number:u,changed:a,detail:n,onReset:c,hint:d?i(d):void 0,labelId:f,words:{label:h,full:fd("full"),content:fd("content")},resetWords:Q()?.panel})}import{jsx as xP}from"react/jsx-runtime";import{TextStyleItem as DU,TextStylesGroup as NU}from"efficient-easel/text-styles";import{jsx as OU}from"react/jsx-runtime";import{useState as _U}from"react";import{TextStylesList as RU}from"efficient-easel/text-styles";import{usePreviewDevice as AU}from"efficient-easel/draw/client";import{defaultTextStyles as tP,textStyleCaseCss as yU,textStyleViewKey as SU}from"efficient-easel/text-styles/model";import{phoneKey as wU,resolveViewValue as rP,tabletKey as CU}from"efficient-easel/draw";import{textStyleCaseCss as kG,textStyleCaseOfCss as TG}from"efficient-easel/draw";import{parseHexColor as AT}from"efficient-shell/format";import{COLOR_SLOTS as FT,colorRole as SG}from"efficient-shell/markup";var LT={main:ns.accent,text:ns.text,background:"var(--bg)",muted:ns.labels},wG={main:"Main",text:"Text",background:"Background",muted:"Muted"},_T={accent:"main",labels:"muted"};function vt(e){return Object.hasOwn(_T,e)?_T[e]:e}function un(e){if(!e)return"";if(e.startsWith("#"))return AT(e)===e.toLowerCase()?e:"";let o=SG(vt(e));return o?.kind==="slot"?LT[o.slot]:""}var CG="#9ca3af";function pn(e){return FT.map(o=>({name:o,label:i(wG[o]),value:e?.[o]||CG}))}function BT(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 FT){let l=LT[s].replace(/^var\((--[\w-]+)\)$/,"$1"),c=a.getPropertyValue(l).trim();if(!c)continue;let d=RT(c);!d&&n&&(n.fillStyle="#000000",n.fillStyle=c,d=RT(String(n.fillStyle))),d&&(o[s]=d)}return o}function RT(e){let o=e.trim().toLowerCase();if(o.startsWith("#"))return AT(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 ud="data-sf-spec-region";function DT(e){return e.writable===!0&&e.sized===!0}function pd(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 mn(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 Mh(e){return`@${e}`}function Ws(e,o){if(!o.startsWith("@"))return null;let t=o.slice(1);return t in e?t:null}function vG(e,o){return o&&o in e?o:null}function hn(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function xn(e,o){return hn(e?.[o])??{}}function md(e,o,t){let r=xn(e,o);return Object.hasOwn(r,t)?hn(r[t])??{}:{}}function hd(e,o,t,r){let{[t]:a,...n}=xn(e,o),s=r?{...n,[t]:r}:n,{[o]:l,...c}=e;return Object.keys(s).length?{...c,[o]:s}:c}var Uh="_partStyles",$h="data-sf-part-styled",In="data-sf-text-style",PG=/^(heading|body)-[1-7]$/;function la(e){return typeof e=="string"&&PG.test(e)}var Id={heading:"heading-1",heading2:"heading-2",heading3:"heading-3",body:"body-1",label:"body-5"};function EG(e){if(!e)return null;for(let[o,t]of Object.entries(Id))if(t===e)return o;return null}function jh(e){if(la(e.textStyle))return e.textStyle;let o=At(e.role);return o?Id[o]:void 0}var OG=[400,500,600,700],xd=["left","center","right","justify"],Hh=5,zh=1e3,_G=-5,RG=10,Kh=0,qh=64,Vh=2,NT={size:{min:Hh,max:zh,step:1},sizeTablet:{min:Hh,max:zh,step:1},sizePhone:{min:Hh,max:zh,step:1},padding:{min:Kh,max:qh,step:Vh}},AG=.05,FG=.01,LG=["line","letter"],BG=.5,DG=2.5,NG=-1,MG=1,HG=0,zG=400,WG=[...new Set(Object.values(Ua))];function UT(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 hIe(e){return xn(e,Uh)}function Us(e,o){return md(e,Uh,o)}function $T(e,o,t){return hd(e,Uh,o,GG(t).length?t:null)}function GG(e){return Object.entries(e).filter(([,o])=>o!==void 0)}function UG(e){return LG.includes(e)}var Gs=(e,o,t)=>Math.min(t,Math.max(o,e));function $G(e,o){if(UG(e)){let t=Math.round(Number(o));return!Number.isFinite(t)||t===0?null:Gs(t,_G,RG)}if(e==="lineHeight"){let t=Number(o);return Number.isFinite(t)?gn(Gs(t,BG,DG),3):null}if(e==="letterSpacing"){let t=Number(o);return Number.isFinite(t)?gn(Gs(t,NG,MG),4):null}if(e==="paragraphSpacing"){let t=Math.round(Number(o));return!Number.isFinite(t)||t<=0?null:Gs(t,HG,zG)}if(Object.hasOwn(NT,e)){let{min:t,max:r}=NT[e],a=Math.round(Number(o));return Number.isFinite(a)?Gs(a,t,r):null}return e==="italic"?typeof o=="boolean"?o:null:e==="role"||e==="fontRole"?At(o)?o:null:e==="sizeToken"?Yh(o)?o:null:e==="textStyle"?la(o)?o:null:e==="alignPhone"?xd.includes(o)?o:null:o}var jG=["weight","size","sizeTablet","sizePhone","line","letter","lineHeight","letterSpacing","paragraphSpacing","padding"];function $s(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&&!xd.includes(e.align)&&t("align"),e.alignPhone!==void 0&&!xd.includes(e.alignPhone)&&t("alignPhone"),e.textStyle!==void 0&&!la(e.textStyle)&&t("textStyle"),e.sizeToken!==void 0&&!Yh(e.sizeToken)&&t("sizeToken"),e.fontRole!==void 0&&!At(e.fontRole)&&t("fontRole"),o??e}function Yh(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"&&WG.includes(c);return l(o)&&s(t)&&(r===void 0||l(r))&&(a===void 0||s(a))&&(n===void 0||KG(n,t))}function KG(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 Xh(e){return e?.pxPhone&&Yh(e)?{step:e.stepPhone??e.step,px:e.pxPhone}:null}function jT({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 qG=[["font","role"],["font","fontRole"],["role","textStyle"],["line","lineHeight"],["letter","letterSpacing"]];function VG(e){let o=[];for(let[t,r]of qG)t===e?o.push(r):r===e&&o.push(t);return o}function ia(e,o,t,r){let a={...Us(e,o)},n=r==null?null:$G(t,r);if(n===null)delete a[t];else{a[t]=n;for(let s of VG(t))delete a[s]}return $T(e,o,a)}function KT(e,o){return $T(e,o,{})}function YG(e){return TG(e)??"none"}function XG(e){return kG(e)??""}var MT={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 ZG(e,o){return At(e.role)||(o?.blockDrawsStyle?null:EG(e.textStyle))}function qT(e,o){return e==="Text"&&o==="text"}var JG={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 QG(e){let o=Ua[e],t=JG[o];return t?`var(--size-${o}, ${t})`:`var(--size-${o})`}function js(e){let o={};return typeof e.lineHeight=="number"?o.lineHeight=e.lineHeight:e.line&&(o.lineHeight=gn(eU+e.line*AG,3)),typeof e.letterSpacing=="number"?o.letterSpacingEm=e.letterSpacing:e.letter&&(o.letterSpacingEm=gn(e.letter*FG,4)),o}var eU=1,sa="--sf-part-para";function oU(e){e=$s(e);let o={};if(typeof e.sizePhone=="number"&&e.sizePhone>0)o.fontSize=`${e.sizePhone}px`;else{let t=Xh(e.sizeToken);if(t)o.fontSize=jT(t);else{let r=gd(e);r!==void 0&&(o.fontSize=`${r}px`)}}return e.alignPhone&&(o.textAlign=e.alignPhone),o}function gd(e){let o=St("textSize",e.size,e.sizeTablet,void 0).tablet;return o&&o>0?o:void 0}function tU(e){let o=gd($s(e));return o===void 0?{}:{fontSize:`${o}px`}}function rU(e,o){if(o==="desktop")return e;let t=$s(e),r=gd(t);if(o==="tablet")return r===void 0?e:{...e,size:r};let a=e;if(typeof t.sizePhone=="number"&&t.sizePhone>0)a={...a,size:t.sizePhone};else{let n=Xh(t.sizeToken);n?a={...a,size:void 0,sizeToken:n}:r!==void 0&&(a={...a,size:r})}return t.alignPhone&&(a={...a,align:t.alignPhone}),a}function Zh(e,o,t){return Qh(rU(e,o),bd,t)}function Jh(e){return e==="mobile"?"sizePhone":e==="tablet"?"sizeTablet":"size"}function VT(e,o){if(o==="desktop")return null;let t=$s(e);if(o==="mobile"){if(Xh(t.sizeToken))return null;let r=gd(t);if(r!==void 0)return{px:r,view:"tablet"}}return typeof t.size=="number"&&t.size>0?{px:t.size,view:"desktop"}:null}function YT(e,o){let t=Jh(o);if(!Object.hasOwn(e,t))return e;let r={...e};return delete r[t],r}function xIe(e,o,t){let r=Zh(YT(e,o),o,t);return{fontFamily:r.fontFamily,fontSize:r.fontSize}}function Qh(e,o,t){e=$s(e);let r=ZG(e,t),a=js(e),n=e.size?`${e.size}px`:e.sizeToken?jT(e.sizeToken):r?QG(r):"";return{fontFamily:e.font?lU(e.font):e.fontRole?`var(${MT[e.fontRole]})`:r?`var(${MT[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`:"",[sa]:e.paragraphSpacing?`${e.paragraphSpacing}px`:"",textTransform:XG(e.case),textAlign:e.align??"",paddingTop:HT(e.padding),paddingBottom:HT(e.padding),color:aU(e.color),fontStyle:e.italic===!0?"italic":e.italic===!1?"normal":""}}var aU=e=>un(e),HT=e=>e===void 0?"":`${e}px`,gn=(e,o)=>Number(e.toFixed(o));function IIe(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:nU(Number.parseInt(e.fontWeight,10)),lineRatio:Number.isFinite(r)?gn(r/t,3):1.2,letterEm:Number.isFinite(a)?gn(a/t,4):0,align:sU(e.textAlign),case:YG(e.textTransform),paddingPx:Number.isFinite(n)?Math.round(n):0}}function nU(e){return Number.isFinite(e)?OG.reduce((o,t)=>Math.abs(t-e)<Math.abs(o-e)?t:o):400}function sU(e){for(let o of xd)if(o===e)return o;return e==="end"?"right":"left"}function gIe(e,o){let t=zT(e);if(!t)return"";for(let r of Yo)if(zT(o(r.cssVar))===t)return r.key;return""}var zT=e=>(e.split(",")[0]??"").replace(/["']/g,"").replace(/\s+/g," ").trim().toLowerCase();function lU(e){let o=Ga(e);return o?`var(${o.cssVar})`:""}function bIe(e,o,t,r){return!o||sh(o)?.nodeId!==e?null:t.find(a=>r(a.getAttribute("class")))??t[0]??null}function iU(e,o){return Object.hasOwn(e,o)?hn(e[o])??{}:{}}function yIe(e,o,t=()=>bd,r=l=>l,a=fU,n="desktop",s=()=>!1){let l=0;for(let{element:c,partId:d}of e){let f=sh(d)?.propKey;if(!f)continue;let h=iU(o,r(f)),u=Zh(h,n,{blockDrawsStyle:s(f)});la(h.textStyle)?c.setAttribute?.(In,h.textStyle):c.removeAttribute?.(In);let x=Wh.some(y=>c.style[y]),I=!1;for(let[y,P]of Object.entries(u))mU(c,y,P),P&&(I=!0);if(x||Wh.some(y=>u[y]))for(let y of cU(c,a))for(let P of Wh)y.style[P]=u[P]??"";I&&(l+=1)}return l}function cU(e,o){let t=cn(e.textContent??""),r=[],a=e;for(let n=0;n<dU&&o(a);n+=1){let s=a.parentElement;if(!s||cn(s.textContent??"")!==t)break;r.push(s),a=s}return r}var dU=8;function fU(e){let o=e;return typeof window>"u"||!o?.ownerDocument?!1:window.getComputedStyle(o).display==="inline"}var bd={fontKey:"",sizePx:16,weight:400,lineRatio:1,letterEm:0,align:"left",case:"none",paddingPx:0};function uU(e){if(!e||typeof e!="object")return null;let o={};return la(e.textStyle)&&(o.textStyle=e.textStyle),typeof e.size=="number"&&e.size>0&&(o.size=e.size),typeof e.sizeTablet=="number"&&e.sizeTablet>0&&(o.sizeTablet=e.sizeTablet),typeof e.sizePhone=="number"&&e.sizePhone>0&&(o.sizePhone=e.sizePhone),Object.keys(o).length?o:null}function pU(e,o){let t=uU(e);if(!t)return{};let r=Zh(t,o);return{...r.fontFamily?{fontFamily:r.fontFamily}:{},...r.fontSize?{fontSize:r.fontSize}:{}}}function XT(e){return la(e?.textStyle)||!!e?.role||typeof e?.size=="number"&&e.size>0}function SIe(e,o,t){if(!e||typeof e!="object")return{};let r=pd(e.role,o,Ua)??{},a=o.sized?pU(YT(e,t),t):{};return{...r,...a}}function wIe(e,o,t){t.fontFamily&&e.fontFamily===t.fontFamily&&(e.fontFamily=o.fontFamily),t.fontSize&&e.fontSize===t.fontSize&&(e.fontSize=o.fontSize)}function mU(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===sa&&(t?a.setAttribute?.(WT,""):a.removeAttribute?.(WT))}var WT="data-sf-part-para",hU=Object.keys(Qh({},bd)),Gh=new Set(["color","overflowWrap",sa,"fontStyle"]),Wh=hU.filter(e=>!Gh.has(e));function ZT(e,o,t,r=l=>l,a=()=>!1,n=()=>null,s=[]){let l=new Map;for(let f of e){let h=Fs(f.key,f.row);for(let u of f.texts){let x=l.get(u);x?(x.keys.add(f.key),x.partKeys.add(h)):l.set(u,{keys:new Set([f.key]),partKeys:new Set([h])})}}let c=new Map;for(let f of new Set([...Object.keys(o),...s])){if(!xU(f))continue;let h=GT(t,f,hn(o[f])??{},!1,n(f));h&&c.set(f,h)}let d=new Map;for(let[f,{keys:h,partKeys:u}]of l){let x=u.size===1?[...u][0]:h.size===1?[...h][0]:null;if(!x)continue;let I=r(x),y=n(I);if(!Object.hasOwn(o,I)&&!y)continue;let P=hn(o[I])??{},v=GT(t,x,P,a(x),y);v&&d.set(f,v)}return d.size||c.size?{rules:d,kindRules:c,drawn:new Set(l.keys())}:null}function GT(e,o,t,r,a){let n=Qh(t,bd,{blockDrawsStyle:r}),s=tU(t),l=oU(t),c=la(t.textStyle)?t.textStyle:void 0;return!Object.values(n).some(Boolean)&&!Object.keys(s).length&&!Object.keys(l).length&&!c&&!a?null:{stamp:IU(e,o),declarations:n,...Object.keys(s).length?{tablet:s}:{},...Object.keys(l).length?{phone:l}:{},...c?{textStyle:c}:{},...a?{motion:a}:{}}}function xU(e){return e.startsWith("@")}function ex(e,o){return e?.kindRules.get(o)??null}function IU(e,o){let t=r=>r.replace(/[^A-Za-z0-9_-]+/g,"-");return`${t(e)}~${t(o)}`}function JT(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(([,I])=>I!==""),c=I=>I.map(([y,P])=>`${gU(y)}: ${P}`).join("; "),d=`[${$h}="${n}"]`,f=l.filter(([I])=>!Gh.has(I)),h=l.filter(([I])=>Gh.has(I));f.length&&o.push(`${d}, *:has(> ${d}) { ${c(f)} }`),h.length&&o.push(`${d} { ${c(h)} }`),s[sa]&&(o.push(`*:has(> ${d}) { ${sa}: ${s[sa]} }`),o.push(...yd(d,`*:has(> ${d})`)));let u=Object.entries(a.tablet??{}).filter(([,I])=>I!=="");u.length&&o.push(`@media ${nc} { ${d}, *:has(> ${d}) { ${c(u)} } }`);let x=Object.entries(a.phone??{}).filter(([,I])=>I!=="");x.length&&o.push(`@media ${Za} { ${d}, *:has(> ${d}) { ${c(x)} } }`)};for(let a of e.rules.values())r(a);for(let a of e.kindRules.values())r(a);return o.join(`
38
- `)}function yd(e,o){let t=`var(${sa})`,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 gU=e=>e.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`);function QT(e,o){if(!e)return null;let t=cn(o),r=e.rules.get(t);if(r)return r;if(t.length<bU||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 bU=8;function eP(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 ox=e=>e==="sentence"?"none":void 0,aP=["font","color","size","sizeTablet","sizePhone","weight","italic","lineHeight","lineHeightTablet","lineHeightPhone","letterSpacing","letterSpacingTablet","letterSpacingPhone","paragraphSpacing","paragraphSpacingTablet","paragraphSpacingPhone","letterCase","largestSize","largestSizeTablet","largestSizePhone"],bn=["desktop","tablet","phone"],Ks=(e,o)=>o==="desktop"?e:o==="tablet"?CU(e):wU(e),ca=(e,o)=>o==="desktop"?e:SU(e,o);function ax(e,o,t,r=ac()){return rP("textSize",o,e.sizeTablet,e.sizePhone,r)[t]}var vU=[["lineSpacing","lineHeight","line"],["letterSpacing","letterSpacing","letter"]];function tx(e){for(let[o,t,r]of vU)for(let a of bn)if(e===ca(o,a))return{key:Ks(t,a),view:a,spacing:r};return{key:e,view:"desktop",spacing:null}}function kt(e){let o={};for(let t of aP)e[t]!==void 0&&(o[t]=e[t]);return o}function nx(e,o){let{auto:t,...r}=e,a=new Set(o??[]),n=aP.filter(s=>a.has(s)&&e.values[s]===void 0);return n.length?{...r,auto:n}:r}function nP(e){let o=e.fonts,t=e.sizes,r=e.typography,a=Kb(e.compression),n={"heading-1":{font:oe(o.heading),size:U(t.headingLarge),weight:U(r.weight),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:ox(r.case),largestSize:U(r.maxPx)},"heading-2":{font:oe(o.heading2),size:U(t.headingMedium),weight:U(r.weight2),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:ox(r.case2)},"heading-3":{font:oe(o.heading3),size:U(t.headingSmall),weight:U(r.weight3),lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,letterCase:ox(r.case3)},"body-1":{font:oe(o.body),size:U(t.body)},"body-5":{font:oe(o.label),size:U(t.label)}};return tP().map(({id:s,kind:l,name:c})=>({id:s,kind:l,name:c,values:kt(n[s]??{})}))}function sx(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=>nx({...o,values:kt(o.values??{})},Array.isArray(o.auto)?o.auto:void 0)):null}function BIe(e){return sx(e)??[]}function sP(e){return sx(e)??tP().map(({id:o,kind:t,name:r})=>({id:o,kind:t,name:r,values:{}}))}function $t(e,o){let t=nP(o),r=sx(e);return r?r.map(a=>{let n={...rx(t,a.id)};for(let s of a.auto??[])delete n[s];return{...a,values:kt({...n,...a.values})}}):t}var rx=(e,o)=>e.find(t=>t.id===o)?.values??{},oP=["heading-1","heading-2","heading-3"];function lP({saved:e,old:o,cur:t,next:r,sizeOf:a,panelView:n="desktop"}){let s=nP(o),l=sP(e),c=$t(l,o),d=[],f=r.map(u=>{let x=t.find(C=>C.id===u.id),I=l.find(C=>C.id===u.id);if(!x||!I){let C=kU([u],a,n)[0],F=C.values.color;return F===void 0?C:{...C,values:{...C.values,color:vt(F)}}}let y={...I.values},P=new Set(I.auto??[]),v=u.values,w=x.values,g=[...new Set([...Object.keys(v),...Object.keys(w)])].filter(C=>JSON.stringify(v[C])!==JSON.stringify(w[C])),T=C=>tx(C).spacing==="letter";g.sort((C,F)=>Number(T(C))-Number(T(F)));for(let C of g){let{key:F,view:k,spacing:L}=tx(C),E=F,R=v[C];if(R===void 0){delete y[E],rx(s,u.id)[E]!==void 0&&(d.push([u.id,E]),P.add(E));continue}if(P.delete(E),L==="line")y[E]=yn(R/100,3);else if(L==="letter"){let N={...c.find(A=>A.id===u.id)?.values??{}};for(let A of g)v[A]===void 0&&delete N[tx(A).key];let b=kt({...N,...y}),_=ax(b,a({...u,values:b}),k);y[E]=_?yn(R/_,4):0}else y[E]=R}return nx({id:u.id,kind:u.kind,name:u.name,values:kt(y)},P)}),h=o.compression;if(d.some(([u,x])=>(x==="lineHeight"||x==="letterSpacing")&&oP.includes(u))&&Lr(h)!=="normal"){for(let u of oP){let x=f.find(y=>y.id===u);if(!x)continue;let I={...x.values};for(let y of["lineHeight","letterSpacing"])d.some(([P,v])=>P===u&&v===y)||I[y]===void 0&&!(x.auto??[]).includes(y)&&(I[y]=rx(s,u)[y]);x.values=kt(I)}h="normal"}return{saved:f,old:{...o,compression:h}}}function iP(e,o){let t={text_styles:e.saved};return e.old.compression!==o.compression&&(t.heading_compression=Lr(e.old.compression)),t}var yn=(e,o)=>Number(e.toFixed(o)),cP=(e,o)=>bn.indexOf(e)<bn.indexOf(o)?o:e;function dP(e,o,t="desktop"){return e.map(r=>{let a={...r.values},n=o(r);for(let s of bn){let l=Ks("lineHeight",s),c=r.values[l],d=r.values[Ks("letterSpacing",s)];delete a[l],c!==void 0&&(a[ca("lineSpacing",s)]=yn(c*100,1));let f=cP(s,t);d!==void 0&&(a[ca("letterSpacing",s)]=yn(d*ax(r.values,n,f),f===s?2:4))}return{id:r.id,kind:r.kind,name:r.name,values:a}})}function kU(e,o,t="desktop"){return e.map(r=>{let a=r.values,n={...a};for(let d of bn)delete n[ca("lineSpacing",d)],delete n[ca("letterSpacing",d)];let s={id:r.id,kind:r.kind,name:r.name,values:kt(n)},l={...s.values},c=o({...s,values:{...s.values}});for(let d of bn){let f=a[ca("lineSpacing",d)],h=a[ca("letterSpacing",d)];if(typeof f=="number"&&(l[Ks("lineHeight",d)]=yn(f/100,3)),typeof h=="number"){let u=ax(s.values,c,cP(d,t));l[Ks("letterSpacing",d)]=u?yn(h/u,4):0}}return{...s,values:kt(l)}})}function DIe(e){let o={fonts:Zn({heading:e.heading_font??void 0,heading2:e.heading_2_font??void 0,heading3:e.heading_3_font??void 0,body:e.body_font??void 0,accent:e.accent_font??void 0,label:e.label_font??void 0}),sizes:Ou({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:Lr(e.heading_compression),typography:Vb(e)},t=e.text_styles??null,r=Array.isArray(t)?lx($t(t,o),o):o;return{fonts:Zn(r.fonts),sizes:Ou(r.sizes),compression:Lr(r.compression),typography:r.typography,textStyles:t}}function lx(e,o){let t=u=>e.find(x=>x.id===u)?.values??{},r=t("heading-1"),a=t("heading-2"),n=t("heading-3"),s=t("body-1"),l=t("body-5"),c=o.fonts,d=o.sizes,f=o.typography,h=u=>u==="none"?"sentence":"authored";return{fonts:{...c,heading:r.font??c.heading,heading2:a.font??r.font??c.heading2,heading3:n.font??r.font??c.heading3,body:s.font??c.body,label:l.font??c.label},sizes:{...d,headingLarge:r.size??null,headingMedium:a.size??null,headingSmall:n.size??null,body:s.size??null,label:l.size??null},compression:o.compression,typography:{...f,case:h(r.letterCase),weight:r.weight??null,maxPx:r.largestSize??null,weight2:a.weight??null,weight3:n.weight??null,case2:h(a.letterCase),case3:h(n.letterCase)}}}function NIe(e){let o=[];for(let t of e){let r=t.values,a=`.${eP(t)}`,n=`[${In}="${t.id}"]`,s=`${a}, ${n}`,l=[],c=r.font!==void 0?Yo.find(u=>u.key===r.font)?.cssVar:void 0;if(c&&l.push(`font-family: var(${c})`),r.size!==void 0){let u=r.largestSize!==void 0?Math.min(r.size,r.largestSize):r.size;l.push(`font-size: ${u}px`)}let d=un(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 f=[];r.lineHeight!==void 0&&f.push(`line-height: ${r.lineHeight}`),r.letterSpacing!==void 0&&f.push(`letter-spacing: ${r.letterSpacing}em`),t.kind==="body"&&l.push(...f);let h=yU(r.letterCase);h&&t.kind==="body"&&l.push(`text-transform: ${h}`),r.paragraphSpacing&&l.push(`--sf-part-para: ${r.paragraphSpacing}px`),l.length&&o.push(`${s} { ${l.join("; ")} }`),t.kind==="heading"&&f.length&&o.push(`${s}, ${a}:is(h1, h2, h3, h4), ${n}:is(h1, h2, h3, h4) { ${f.join("; ")} }`),t.kind==="heading"&&h&&o.push(`${n}, ${a}:is(h1, h2, h3, h4) { text-transform: ${h} }`),r.paragraphSpacing&&(o.push(`*:has(> ${n}) { --sf-part-para: ${r.paragraphSpacing}px }`),o.push(...yd(`:is(${s})`,`*:has(> ${n})`))),o.push(...TU(t,s,a,n))}return o.join(`
39
- `)}function TU(e,o,t,r){let a=e.values,n=St("textSize",a.size,a.sizeTablet,a.sizePhone),s=St("textSize",a.largestSize,a.largestSizeTablet,a.largestSizePhone),l=St("same",a.lineHeight,a.lineHeightTablet,a.lineHeightPhone),c=St("same",a.letterSpacing,a.letterSpacingTablet,a.letterSpacingPhone),d=St("spacing",a.paragraphSpacing,a.paragraphSpacingTablet,a.paragraphSpacingPhone),f=rP("textSize",a.size,a.sizeTablet,a.sizePhone,ac()),h=PU[e.id],u=[];for(let[x,I]of[["tablet",nc],["phone",Za]]){let y=[],P=[],v=f[x],w=s[x],g=n[x]===void 0&&w===void 0||v===void 0?void 0:w===void 0?v:Math.min(v,w);g!==void 0&&P.push(`font-size: ${g}px`);let T=[];l[x]!==void 0&&T.push(`line-height: ${l[x]}`),c[x]!==void 0&&T.push(`letter-spacing: ${c[x]}em`),e.kind==="body"&&P.push(...T),d[x]!==void 0&&P.push(`--sf-part-para: ${d[x]}px`),P.length&&y.push(`${o} { ${P.join("; ")} }`),e.kind==="heading"&&T.length&&y.push(`${o}, ${t}:is(h1, h2, h3, h4), ${r}:is(h1, h2, h3, h4) { ${T.join("; ")} }`),d[x]!==void 0&&y.push(`*:has(> ${r}) { --sf-part-para: ${d[x]}px }`),d[x]!==void 0&&!a.paragraphSpacing&&y.push(...yd(`:is(${o})`,`*:has(> ${r})`)),g!==void 0&&h&&y.push(`.sf-themed-content { --size-${h}: ${g}px !important }`),y.length&&u.push(`@media ${I} { ${y.join(" ")} }`)}return u}var PU={"heading-1":"headingLarge","heading-2":"headingMedium","heading-3":"headingSmall","body-1":"body","body-5":"label"};function MIe(e){return e!==!0&&e!==!1?"":`em.text-accent { font-style: ${e?"italic":"normal"} }`}function fP(e){return e?Id[e]:void 0}function ix(e){let o=js(e);return kt({font:e.font,color:e.color===void 0?void 0:vt(e.color),size:e.size,weight:e.weight,italic:e.italic,lineHeight:o.lineHeight,letterSpacing:o.letterSpacingEm,paragraphSpacing:e.paragraphSpacing,letterCase:e.case})}function uP(e){return Object.keys(ix(e)).length>0}function pP({saved:e,old:o,styleId:t,values:r}){let a=sP(e);return{saved:EU(a,t,r),old:o}}function EU(e,o,t){return e.map(r=>r.id===o?nx({...r,values:kt({...r.values,...t})},r.auto):r)}var FU={desktop:"desktop",tablet:"tablet",mobile:"phone"},mP=["font","color","size","weight","emphasis","lineSpacing","letterSpacing","paragraphSpacing","letterCase","largestSize"],LU=["size","lineSpacing","letterSpacing","letterCase"],BU=500,cx=Yo.map(e=>({value:e.key,label:e.label,family:`var(${e.cssVar})`,italic:e.italicLoaded}));function hP({saved:e,old:o,colours:t,colourNameOf:r,sizeOf:a,onChange:n,openId:s,onOpenChange:l,readOnly:c=!1,withoutSize:d=!1}){let f=AU(),[h,u]=_U(null),x=$t(e,o),I=FU[f],y=dP(x,a,I);return OU(RU,{styles:y,onChange:P=>n(lP({saved:e,old:o,cur:y,next:P,sizeOf:a,panelView:I})),fonts:cx,colours:t,colourNameOf:r,settings:d?mP.filter(P=>P!=="size"):mP,auto:LU,openId:s===void 0?h:s,onOpenChange:l??u,readOnly:c,device:I,fallback:P=>{let v=x.find(g=>g.id===(P.kind==="heading"?"heading-1":"body-1")),w={};return v?.values.font&&P.id!==v.id&&(w.font=v.values.font),P.kind==="heading"&&(w.weight=BU),w}})}var IP=["font","size","weight","emphasis"],MU=500;function HU({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("Emphasis"),values:a}}function zU(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 gP(e){let{headingWeight:o,open:t,onOpenChange:r,onChange:a,withoutSize:n=!1}=e,s=HU(e);return xP(NU,{label:i("Emphasis"),children:xP(DU,{style:s,fonts:cx,settings:n?IP.filter(l=>l!=="size"):IP,auto:["size"],fallback:()=>({weight:o??MU}),open:t,onOpenChange:r,onChange:l=>zU(s,l).forEach(a)})})}import{Button as f$,EmptyState as u$,Tabs as p$,Tooltip as sbe,tabButtonId as m$,tabPanelId as h$}from"efficient-shell/ui";import{ContrastIcon as x$,NoteIcon as I$,SettingsIcon as g$,TypeIcon as b$}from"efficient-easel/icons";function bP(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 px}from"react/jsx-runtime";import{ListIcon as QU,PaddingTopIcon as e$}from"efficient-easel/icons";import{jsx as Sd}from"react/jsx-runtime";import{SettingsDefaultReset as WU,SettingsField as GU,SettingsSegmented as UU}from"efficient-easel/panel";import{WidthIcon as $U}from"efficient-easel/icons";function yP({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 Sd(GU,{label:d,labelId:a,icon:Sd($U,{}),value:l?n:void 0,changed:!l,action:Sd(WU,{words:Q()?.panel,label:d,changed:!l,onReset:()=>t(void 0)}),hint:s,children:Sd(UU,{options:[{label:i(ea.full),id:"full"},{label:i(ea.page),id:"content"}],value:c,ariaLabel:d,onChange:t})})}import{HEADER_TYPE as dx,FOOTER_TYPE as jU}from"efficient-easel/draw";var KU=new Set(["Hero","HeroSingle","IntroBleed"]),SP={min:56,max:140,default:88},lge={min:0,max:120,step:2,default:32},ige=`var(--sf-header-h, ${SP.default}px)`,qU="--sf-header-set-h",cge="--sf-header-h",dge=`var(${qU}, ${SP.default}px)`,fge="sf-header-clearance",uge="sf-sticky-underheader";function VU(e){return e?.find(o=>o?.type&&o.type!==dx)??null}function wP(e){let o=VU(e)?.type;return!o||!KU.has(o)}function pge(e){return!wP(e)}function mge(e){return!!e?.some(o=>o?.type===dx)}function hge(e){return!e||e.length===0?!1:!e.some(o=>o?.type===dx||o?.type===jU)}var YU=["auto","shared","own"],fx="auto",XU="topSpace",xge="data-top-space";function ZU(e){return YU.includes(e)?e:fx}function JU(e,o){let t=ZU(e?.props?.[XU]);return t==="own"?!0:t==="shared"?!1:wP(o)}function Ige(e,o){return JU(e,o)?"own":null}function o$(){return{type:"custom",render:({value:e,onChange:o})=>px(yP,{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 t$=[{label:"Auto",value:"auto"},{label:"Shared",value:"shared"},{label:"Its own",value:"own"}],Ege={pageBackground:fk(),topSpace:rt("Top space",px(e$,{}),t$,fx),widthChoice:o$()},qs=["pageBackground","topSpace","widthChoice"],r$="Record type",ux=new Map,CP=-1;function a$(e){CP!==gp()&&(ux.clear(),CP=gp());let o=Ip(),t=o.some(a=>a.key===e)?"":e,r=ux.get(t);return r||(r=rt(r$,px(QU,{}),[...o.map(a=>({label:a.label,value:a.key})),...t?[{label:t,value:t}]:[]],sr),ux.set(t,r)),r}var vP=new WeakMap;function Oge(e,o){if(!ds()||Ip().length<2||Ai in e)return e;let t=a$(cs(o)),r=vP.get(e);if(r&&r.row===t)return r.fields;let a={[Ai]:t,...e};return vP.set(e,{row:t,fields:a}),a}import{previewFrame as y$}from"efficient-easel/screen/lib/document/preview-dom";var kP="background";function TP(e){let o=yo(Ha(e));return pn({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 PP(e){return TP(e).filter(o=>o.key!==kP)}function EP(e){let o=TP(e).filter(t=>t.key===kP);return t=>{let r=vt(t);return o.find(a=>a.key===r)?.value??r}}import{useEasel as n$}from"efficient-easel/easel";function wd({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=n$(k=>k),{fonts:a,setFonts:n,sizes:s,setSizes:l,headingCompression:c,setHeadingCompression:d,headingTypography:f,setHeadingTypography:h,textStyles:u,setTextStyles:x}=ce(),I=t.data,y=I.root?.props??{},P=e?Zn(y.fonts):a,v=e?zb:s,w=e?Lr(y.headingCompression):c,g=e?qb(y.headingTypography):f,T={fonts:P,sizes:v,compression:w,typography:g},C=e?y.textStyles:u,F=k=>r({type:"replaceRoot",root:{...I.root,props:{...y,...k}},recordHistory:!0});return{fonts:P,sizes:v,compression:w,typography:g,old:T,saved:C,write:(k,L)=>{let E=lx($t(k.saved,k.old),k.old);e?F({textStyles:k.saved,fonts:E.fonts,headingCompression:E.compression,headingTypography:E.typography}):(x(k.saved),n(E.fonts),l(E.sizes),d(E.compression),h(E.typography)),o(iP(k,T),L)},writeRoot:F}}var hx="sf-site-styles",S$="sf-site-styles-tabpanel",Ix=!1,w$="Show hints";function gx({shown:e,onChange:o}){return re("div",{className:"sf-hints",children:re(f$,{type:"button",variant:"ghost","aria-pressed":e,leftIcon:re(I$,{size:13}),onClick:()=>o(!e),children:i(w$)})})}var RP="text",wn="basics",OP="this-page-group",Sn=[{id:wn,label:"Basics",icon:re(g$,{})},{id:"theme",label:"Theme",icon:re(x$,{})},{id:"text",label:"Text",icon:re(b$,{})}];function C$({themeFromDocument:e,persist:o}){let{appState:t,dispatch:r}=_P(d=>d),{theme:a,setTheme:n}=ce(),s=t.data,l=s.root?.props??{},c=d=>{if(e){let f={...l,theme:d};r({type:"replaceRoot",root:{...s.root,props:f},recordHistory:!0})}else n(d);o({selected_preset:d.selected,theme_presets:d.themes})};return re(eT,{value:e?l.theme:a,onChange:c})}function v$({themeFromDocument:e,persist:o}){let[t,r]=Cd(null),{theme:a,setFonts:n,setSizes:s,setHeadingTypography:l}=ce(),c=wd({themeFromDocument:e,persist:o}),{old:d,saved:f,writeRoot:h}=c,u=c.fonts,x=c.sizes,I=c.typography,y=k=>k.values.size??E$(k$[k.id]??"body")??T$[k.kind],P=k=>c.write(k),v=PP(a),w=EP(a),g=k=>{let L={...u,accent:k};e?h({fonts:L}):n(L),o({accent_font:k})},T=k=>{s({...x,accent:k}),o({accent_size_px:k})},C=k=>{let L={...I,weightStrong:k};e?h({headingTypography:L}):l(L),o({heading_weight_strong:k})},F=k=>{let L={...I,italicStrong:k};e?h({headingTypography:L}):l(L),o({accent_italic:k})};return da(fa,{children:[re(hP,{saved:f,old:d,colours:v,colourNameOf:w,sizeOf:y,onChange:P,openId:t===mx?null:t,onOpenChange:r,withoutSize:e}),re(gP,{font:u.accent,size:x.accent,weight:I.weightStrong,italic:I.italicStrong,headingWeight:I.weight,open:t===mx,onOpenChange:k=>r(k?mx:null),onChange:k=>{k.key==="font"?g(k.value):k.key==="size"?T(k.value):k.key==="weight"?C(k.value):F(k.value)},withoutSize:e})]})}var mx="accent",k$={"heading-1":"heading","heading-2":"heading2","heading-3":"heading3","body-1":"body","body-5":"label"},T$={heading:32,body:14},P$={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 E$(e){if(typeof document>"u")return null;let o=(y$()?.contentDocument??document).querySelector(P$[e]);if(!o)return null;let t=parseFloat(getComputedStyle(o).fontSize);return Number.isFinite(t)?t:null}function O$({themeFromDocument:e,persist:o,showHint:t}){let{appState:r,dispatch:a}=_P(u=>u),{cornerRadiusPx:n,setCornerRadiusPx:s}=ce(),l=r.data,c=l.root?.props??{},d=c.cornerRadiusPx===void 0?Gb[Wb(c.cornerStyle)]:xt(c.cornerRadiusPx),f=e?d:n,h=u=>a({type:"replaceRoot",root:{...l.root,props:{...c,...u}},recordHistory:!0});return re(oT,{value:f,onChange:u=>{e?h({cornerRadiusPx:u}):s(u),o({corner_radius_px:u})},showHint:t})}function _$(e){return{site_width:e}}function R$({persist:e,showHint:o}){let{siteWidth:t,setSiteWidth:r,sectionBackgroundWidth:a,setSectionBackgroundWidth:n,sectionContentWidth:s,setSectionContentWidth:l}=ce();if(xx()!=="desktop")return null;let c=typeof t=="number"?t:io.default,d=u=>{r(u),e(_$(u),u===null)},f=u=>{n(u),e({section_background_width:u},!0)},h=u=>{l(u),e({section_content_width:u},!0)};return da(fa,{children:[re(ET,{value:a??"full",changed:a!==null,detail:i("Full width"),onChange:f,onReset:()=>f(null),hint:o?TT:void 0}),re(OT,{mode:s??"content",px:c,min:io.min,max:io.max,changed:typeof t=="number"||s!==null,detail:`${i("Content width")} ${io.default}px`,onMode:h,onPx:u=>d(u),onReset:()=>{h(null),d(null)},hint:o?PT:void 0})]})}function A$(e){return{block_gap:e}}function F$(e){return{block_gap_phone:e}}function L$(e){return{site_gutter:e}}function B$(e){return{site_gutter_phone:e}}function AP(e,[o,t],r){o(e),r(t(e),e===null)}function D$({persist:e,showHint:o}){let{siteGutter:t,siteGutterPhone:r,setSiteGutter:a,setSiteGutterPhone:n}=ce(),s=vT(xx(),{gutter:t,phone:r});if(!s)return null;let l=s.key==="site_gutter_phone"?[n,B$]:[a,L$];return re(kT,{value:s.value,onChange:c=>AP(c,l,e),showHint:o,unsetPx:s.unsetPx,bounds:s.bounds})}function N$({persist:e,showHint:o}){let{blockGap:t,blockGapPhone:r,setBlockGap:a,setBlockGapPhone:n}=ce(),s=sT(xx(),{gap:t,phone:r});if(!s)return null;let l=s.key==="block_gap_phone"?[n,F$]:[a,A$];return re(lT,{value:s.value,onChange:c=>AP(c,l,e),showHint:o,followsPx:s.followsPx})}function M$({persist:e,showHint:o=!0}){return da(fa,{children:[re(R$,{persist:e,showHint:o}),re(D$,{persist:e,showHint:o}),re(N$,{persist:e,showHint:o})]})}function H$(e){return{card_shadow:e}}function z$(e){return e===null?{shadow_color:null}:{shadow_color:jb(e)}}function W$(e){return{hover_effect:e}}function G$({persist:e,showHint:o=!0}){let{cardShadow:t,setCardShadow:r,shadowColor:a,setShadowColor:n,hoverEffect:s,setHoverEffect:l}=ce();return da(fa,{children:[re(tT,{value:t,onChange:c=>{r(c),e(H$(c),!0)},showHint:o}),re(aT,{value:a,onChange:c=>{n(c),e(z$(c),c===null)},showHint:o}),re(hT,{value:s,onChange:c=>{l(c),e(W$(c),!0)},showHint:o})]})}function U$(e){return{photography_grayscale:e}}function $$({persist:e,showHint:o}){let{photographyGrayscale:t,setPhotographyGrayscale:r}=ce();return re(IT,{value:t,onChange:a=>{r(a),e(U$(a),!0)},showHint:o})}function j$({persist:e,showHint:o=!0}){return re(fa,{children:re($$,{persist:e,showHint:o})})}function K$(e){return{share_button_on_posts:e}}function q$({persist:e,showHint:o=!0}){let{shareButtonOnPosts:t,setShareButtonOnPosts:r}=ce();return re(gT,{value:t,onChange:a=>{r(a),e(K$(a),!0)},showHint:o})}function Cn(){let{websiteName:e}=ce();return e?.trim()||ty}function vd({themeFromDocument:e=!1,tokenRef:o,siteId:t,onNotify:r,tab:a,onTabChange:n,initialTab:s,revealPageGroup:l=!1,onPageGroupRevealed:c}){let{persist:d}=Ya({themeFromDocument:e,tokenRef:o,siteId:t,onResult:w=>{let g=bP(w);g&&r?.(g.msg,g.tone)}}),[f,h]=Cd(s??Sn[0].id),u=a!==void 0,x=u?a:f,I=u?n??(()=>{}):h,y=Sn.find(w=>w.id===x)??Sn[0],[P,v]=Cd(Ix);return da(fa,{children:[re(X$,{activeId:y.id,onSelect:I}),da("div",{id:h$(hx,y.id),className:S$,role:"tabpanel","aria-labelledby":m$(hx,y.id),children:[x===wn&&da(fa,{children:[re(O$,{themeFromDocument:e,persist:d,showHint:P}),!e&&re(G$,{persist:d,showHint:P}),!e&&re(M$,{persist:d,showHint:P}),!e&&re(j$,{persist:d,showHint:P}),!e&&re(q$,{persist:d,showHint:P}),re(V$,{reveal:l,onRevealed:c}),re(gx,{shown:P,onChange:v})]}),x==="theme"&&re(C$,{themeFromDocument:e,persist:d}),x==="text"&&re(v$,{themeFromDocument:e,persist:d})]})]})}function V$({reveal:e,onRevealed:o}){let[t,r]=Cd(!0),a=d$(o);return a.current=o,c$(()=>{if(!e)return;r(!0);let n=requestAnimationFrame(()=>{document.getElementById(OP)?.scrollIntoView({block:"start"}),a.current?.()});return()=>cancelAnimationFrame(n)},[e]),re(i$,{title:i("This page"),open:t,onToggle:r,id:OP,children:re(Y$,{})})}function Y$(){let{fields:e,values:o,readOnly:t,onChange:r}=s$(),a=Object.fromEntries(qs.filter(n=>n in e).map(n=>[n,e[n]]));return Object.keys(a).length===0?re(u$,{variant:"none",icon:!1,message:i("This page has no look of its own to set.")}):re(l$,{fields:a,values:o,onChange:r,readOnly:t,tabs:!1,idPrefix:"this-page",ariaLabel:i("This page")})}function X$({activeId:e,onSelect:o}){return re("div",{className:"es-insp-tabs",children:re(p$,{variant:"underline",block:!0,labelsFit:!0,"aria-label":i("Styles"),idPrefix:hx,value:e,onChange:o,items:Sn.map(t=>{let r=i(t.label);return{id:t.id,icon:t.icon,label:r}})})})}import{InspectorIconButton as sj}from"efficient-easel/chrome";import{Button as zP,Dialog as lj,FormField as ij,Input as WP,PopupMenu as cj,PopupMenuItem as GP,toast as UP}from"efficient-shell/ui";import{LayersTree as dj,TreeGroupLabel as fj,TreeRow as $P,TreeRowAction as Ed}from"efficient-easel/tree";import{AddIcon as uj,DuplicateIcon as pj,PageIcon as mj,SettingsIcon as hj}from"efficient-easel/icons";import{PagesIcon as xj}from"efficient-easel/rail";import{useEaselHost as Ij}from"efficient-easel/screen/lib/host";import{useEaselSession as VP}from"efficient-easel/screen/lib/session-context";import{useCallback as kd,useEffect as Z$,useSyncExternalStore as J$}from"react";import{useScreenDocument as DP}from"efficient-easel/screen/components/ScreenDocumentContext";var FP=new WeakMap;function Vs(e){let o=FP.get(e);return o||(o={rows:null,loading:null,listeners:new Set},FP.set(e,o)),o}function bx(e,o){e.rows=o;for(let t of e.listeners)t()}var Td=new Set;function Pd(e,o){o?Td.add(e):Td.delete(e)}function LP(e){let o=Vs(e),t=e.listPages().then(r=>bx(o,Td.size?r.filter(a=>!Td.has(a.id)):r),()=>bx(o,[])).finally(()=>{o.loading===t&&(o.loading=null)});return o.loading=t,t}var BP=()=>null,Q$=()=>()=>{};function Ys(){let{adapter:e,ready:o}=DP(),t=kd(l=>{let{listeners:c}=Vs(e);return c.add(l),()=>c.delete(l)},[e]),r=kd(()=>Vs(e).rows,[e]),a=J$(o?t:Q$,o?r:BP,BP);Z$(()=>{if(!o)return;let l=Vs(e);l.rows===null&&!l.loading&&LP(e)},[e,o]);let n=kd(()=>o?LP(e):Promise.resolve(),[e,o]),s=kd(l=>bx(Vs(e),l),[e]);return{rows:a,reload:n,setRows:s,getRows:r}}function ej(e,o){return e?.find(t=>t.slug===o)?.label?.trim()||`/${o}`}function NP(){let{currentSlug:e}=DP(),{rows:o}=Ys();return ej(o,e)}import{canDuplicatePage as gj,DuplicatePageDialog as bj,uniqueSlug as jP}from"efficient-easel/page-copy";var KP="sf-editor-pages-collapsed-groups";function yj(){let e=VP(),{siteId:o,templateId:t}=qP(),r=We(e).pages;if(!(!r.duplicate||t))return(a,n)=>r.duplicate(a.id,{...n,...o?{siteId:o}:{}})}function Sj(){try{let e=$a()||(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=VP().chrome?.pageRows,n=Ij(),{adapter:s,capabilities:l,ready:c,currentSlug:d}=qP(),f=Cn(),{rows:h,reload:u,setRows:x,getRows:I}=Ys(),[y,P]=gr(""),[v,w]=gr(!1),[g,T]=gr(null),[C,F]=gr(!1),[k,L]=gr(""),E=rj(),R=yj(),[N,b]=gr(null),[_,A]=gr(()=>{if(typeof window>"u")return new Set;try{let M=window.localStorage.getItem(KP);return new Set(M?JSON.parse(M):[])}catch{return new Set}});tj(()=>{try{window.localStorage.setItem(KP,JSON.stringify([..._]))}catch{}},[_]);let H=M=>A(se=>{let he=new Set(se);return he.has(M)?he.delete(M):he.add(M),he}),Z=HP(()=>DS(h??[]),[h]),q=y.trim().toLowerCase(),$=M=>!q||M.toLowerCase().includes(q),Te=M=>q?!0:!_.has(M),ge=HP(()=>new Set((h??[]).map(M=>M.slug)),[h]),qe=()=>{if(l.pageCreationInAdminForm){n.send("storefront-editor:new-page");return}L(""),T(null),F(!0)},Ce=async()=>{let M=k.trim();if(!(!M||!c||v||!s.createPage)){w(!0),T(null);try{let se=await s.createPage({slug:jP(M,ge),title:M,layout:{}});await u(),F(!1),L(""),e(se.slug)}catch{T(i("Couldn\u2019t add the page \u2014 please retry."))}finally{w(!1)}}},ve=l.hasSiteSettings&&!!s.createPage,me=async()=>{if(!(!c||v||!s.createPage)){w(!0),T(null);try{let M=await s.createPage(TC(i("New popup"),ge));await u(),e(M.slug)}catch{T(i("Couldn\u2019t add the popup \u2014 please retry."))}finally{w(!1)}}},Se=aj(null),[je,Ye]=gr(null),ne=()=>{if(!ve)return qe();if(je)return Ye(null);let M=Se.current?.getBoundingClientRect();M&&Ye({top:M.bottom+6,right:Math.max(8,window.innerWidth-M.right)})},Oe=M=>{let se=h??[],he=s.deletePage;if(!c||v||!he||se.length<=1)return;let Ae=se.findIndex(eo=>eo.id===M.id),ze=se.filter(eo=>eo.id!==M.id),Jt=M.slug===d;Pd(M.id,!0),x(ze),T(null),Jt&&ze[0]&&e(ze[0].slug);let Na=()=>{Pd(M.id,!1);let eo=I()??[];if(eo.some(Yn=>Yn.id===M.id))return;let Or=[...eo];Or.splice(Math.max(0,Math.min(Ae,Or.length)),0,M),x(Or)};UP.undoable(i("Deleted \u201C{name}\u201D",{name:M.label}),{actionLabel:i("Undo"),commit:async eo=>{await he(M.id,eo),Pd(M.id,!1)},undo:()=>{Na(),Jt&&e(M.slug)},onFail:()=>{Na(),UP.error(i("Couldn\u2019t delete the page \u2014 please retry."))}})},uo=M=>n.send("storefront-editor:open-page",{slug:M}),Re=M=>{if(!$(M.label))return null;let se=!t&&M.slug===d,he=l.canDeletePagesInline&&(h??[]).length>1,Ae=jr(M),ze=BS(M),Jt=[...Ae?[{label:i("Dynamic"),tone:"info"}]:[],...ze?[{label:i("Lightbox"),tone:"success"}]:[],...M.draft?[{label:i("draft"),tone:"draft"}]:[]],Na=Jt.length>0?Jt:void 0,eo=!!R&&gj(M),Or=eo||l.pageCreationInAdminForm||he?Xs(MP,{children:[eo&&be(Ed,{kind:"plain",label:i("Duplicate \u201C{name}\u201D",{name:M.label}),disabled:v,onClick:()=>b(M),children:be(pj,{size:13})}),l.pageCreationInAdminForm&&be(Ed,{kind:"plain",label:i("Page settings for \u201C{name}\u201D",{name:M.label}),onClick:()=>uo(M.slug),children:be(hj,{size:13})}),he&&be(Ed,{kind:"delete",label:i("Delete \u201C{name}\u201D",{name:M.label}),disabled:v,onClick:()=>Oe(M),children:be(yx,{name:"trash",size:13,strokeWidth:1.7,rounded:!0})})]}):void 0;return be($P,{icon:be(mj,{size:14}),name:M.label,selected:se,onSelect:()=>e(M.slug),badge:Na,actions:Or,rowProps:{"data-page-slug":M.slug}},M.id)},Me=(M,se,he)=>{let Ae=he.filter(Boolean);if(Ae.length===0)return null;let ze=Te(M);return Xs(oj,{children:[be(fj,{count:Ae.length,countLabel:mo("{n} page","{n} pages",Ae.length),expanded:ze,onToggle:()=>H(M),children:se}),ze&&Ae]},M)},go=(a?.rows??[]).filter(M=>$(M.label)).map(M=>{let se=t===M.key;return be($P,{icon:M.icon,name:M.label,selected:se,onSelect:()=>r(M.key),badge:{label:i("Preview"),tone:"warning"},actions:be(Ed,{kind:"plain",label:i("Open the {name} in a new tab",{name:M.label}),onClick:()=>window.open(M.href,"_blank","noopener,noreferrer"),children:be(yx,{name:"external-link",size:13,strokeWidth:1.7,rounded:!0})}),rowProps:{"data-shop-surface":M.key}},M.key)}),qo=l.hasSiteSettings&&!!a,bo=(()=>{if(h===null)return null;let M=[],se=!1;for(let he of Z){qo&&!se&&he.key.startsWith("system:")&&(M.push(Me("shop",a.title,go)),se=!0);let Ae=he.key===Sp||he.label===yp?i(he.label):he.label;M.push(Me(he.key,Ae,he.rows.map(Re)))}return qo&&!se&&M.push(Me("shop",a.title,go)),M})();return Xs("div",{className:"sf-pages",children:[be(nj,{icon:be(xj,{}),title:i("Pages"),context:f,actions:be(sj,{buttonRef:Se,label:ve?i("Add"):i("New page"),hasPopup:ve?"menu":void 0,expanded:ve?je!==null:void 0,onClick:ne,children:be(uj,{size:15})})}),je&&be(cj,{portal:!0,style:{top:je.top,right:je.right},onClose:()=>Ye(null),children:Xs("div",{role:"menu","aria-label":i("Add"),children:[be(GP,{role:"menuitem",onClick:()=>{Ye(null),qe()},children:i("Page")}),be(GP,{role:"menuitem",disabled:v,onClick:()=>{Ye(null),me()},children:i("Popup")})]})}),be("div",{className:"sf-pages-find",children:be(WP,{type:"search",leftIcon:be(yx,{name:"search",size:14,rounded:!0}),placeholder:i("Search all pages\u2026"),value:y,onChange:M=>P(M.target.value),"aria-label":i("Search all pages")})}),g&&!C&&be("div",{className:"sf-note sf-note--error",role:"alert",children:g}),bo===null?be("div",{className:"sf-note",children:i("Loading\u2026")}):bo.some(Boolean)?be(dj,{ariaLabel:i("Pages"),className:"sf-scroll",children:bo}):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(bj,{source:{title:N.label,slug:N.slug},taken:ge,host:Sj(),duplicate:M=>R(N,M),onClose:()=>b(null),onDuplicated:M=>{b(null),u(),e(M.slug)}},N.id),be(lj,{open:C,onClose:()=>F(!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:Xs(MP,{children:[be(zP,{variant:"secondary",onClick:()=>F(!1),children:i("Cancel")}),be(zP,{onClick:()=>{Ce()},disabled:v||!k.trim(),loading:v,children:i("Add page")})]}),children:be(ij,{label:i("Page name"),htmlFor:E,hint:k.trim()?i("URL: /{slug}",{slug:jP(k,ge)}):void 0,error:g??void 0,children:be(WP,{id:E,value:k,invalid:!!g,onChange:M=>L(M.target.value),onKeyDown:M=>{M.key==="Enter"&&Ce()},placeholder:i("e.g. About")})})})]})}import{jsx as JP}from"react/jsx-runtime";import{createContext as Cj,useCallback as vj,useContext as kj,useMemo as Tj,useState as Pj}from"react";import{CanvasChromeContext as Ej}from"efficient-easel/easel";import{useSelectHandler as Oj}from"efficient-easel/draw/client";import{parseHexColor as wj}from"efficient-shell/format";var Od=["chat-bubble-left-right","chat-bubble-oval-left-ellipsis","chat","megaphone","phone","sparkles"],vn=Od[0];var ua="right";function _d(e){return Od.includes(e??"")?e:vn}function XP(e){return e==="left"?"left":ua}function ZP(e){return e&&wj(e)===e.toLowerCase()?e.toLowerCase():""}var QP="chat",Rd={enabled:!0,title:"",subtitle:"",greeting:"",launcherColor:"",launcherIcon:"",launcherPosition:ua,launcherLabel:"",showOnPhones:!0};function Xbe(e){return{enabled:e.enabled,title:e.title,subtitle:e.subtitle,greeting:e.greeting,launcherColor:ZP(e.launcherColor),launcherIcon:e.launcherIcon?_d(e.launcherIcon):"",launcherPosition:XP(e.launcherPosition),launcherLabel:e.launcherLabel??"",showOnPhones:e.showOnPhones!==!1}}var e0=Cj({chat:Rd,setChat:()=>{},setSelected:()=>{},setSelectHandler:()=>{}});function Zbe({children:e,chat:o=Rd,onChatChange:t}){let[r,a]=Pj(!1),n=vj(d=>t?.(d),[t]),{select:s,setSelectHandler:l}=Oj(),c=Tj(()=>({selected:()=>r?QP:null,select:d=>d===QP&&s()}),[r,s]);return JP(e0.Provider,{value:{chat:o,setChat:n,setSelected:a,setSelectHandler:l},children:JP(Ej.Provider,{value:c,children:e})})}var Ad=()=>kj(e0);import{jsx as Sx}from"react/jsx-runtime";import{DesktopIcon as _j,PhoneIcon as Rj,TabletIcon as Aj}from"efficient-easel/icons";import{VIEW_TIERS as Fj,VIEW_TIER_LABEL as Lj}from"efficient-easel/draw";var Bj={desktop:Sx(_j,{}),tablet:Sx(Aj,{}),mobile:Sx(Rj,{})},o0=Fj.map(e=>({id:e,get label(){return i(Lj[e])},icon:Bj[e]}));import{PreviewDeviceContext as Doe}from"efficient-easel/draw/client";import{jsx as Dj}from"react/jsx-runtime";import{createContext as Nj,useCallback as t0,useContext as Mj,useMemo as Hj,useRef as zj}from"react";var Wj=Object.fromEntries(mi.map(e=>[e,{value:"",error:null}])),r0=Nj({links:ay,rows:Wj,canSave:!1,saveLink:async()=>({ok:!1,error:"There is no website to save to."}),openPanel:()=>{},setOpenHandler:()=>{}});function lye({children:e,value:o}){let t=zj(()=>{}),r=t0(()=>t.current(),[]),a=t0(s=>{t.current=s},[]),n=Hj(()=>({...o,openPanel:r,setOpenHandler:a}),[o,r,a]);return Dj(r0.Provider,{value:n,children:e})}var Zs=()=>Mj(r0);import{jsx as Gj}from"react/jsx-runtime";import{createContext as Uj,useContext as $j,useMemo as jj,useState as Kj}from"react";var a0=Uj(null);function fye({children:e}){let[o,t]=Kj(null),r=jj(()=>({surface:o,setSurface:t}),[o]);return Gj(a0.Provider,{value:r,children:e})}function n0(){return $j(a0)??{surface:null,setSurface:()=>{}}}import{createPreviewSelectionContext as qj}from"efficient-easel/draw/client";var Js="Scrolling Bar",{Provider:mye,useSelection:s0}=qj("selectedHeroId"),hye="data-sf-hero-ticker";function xye(e){return`${e}::ticker`}function Iye(e){return!e||!e.endsWith("::ticker")?null:e.slice(0,-8)||null}var l0=["","","","","",""],i0="#ticker",Qs="strip",wx={sectionAccent:dr,line:!1};function Vj(e){return(Array.isArray(e.tickerItems)?e.tickerItems:[]).map(o=>typeof o?.text=="string"?o.text:"").filter(o=>o.trim()!=="")}function Cx(e){return Vj(e).length>0}function yye(e){return e.showTicker!==!1&&Cx(e)}import{createPreviewSelectionContext as Yj}from"efficient-easel/draw/client";var{Provider:Cye,useSelection:Fd}=Yj("selectedHeroPart");var d0=["one","side","stacked"];var kye={one:"One",side:"Side by side",stacked:"Stacked"};function Ld(e){return d0.includes(e)?e:"one"}function c0(e){return e==="one"?1:2}function vx(e,o){if(d0.includes(e))return e;let t=Ld(o);return t==="side"?"stacked":t}function el(e){let o=Ld(e.mediaLayout);return Math.max(c0(o),c0(vx(e.mediaLayoutPhone,o)))}var pa=["media","image","image2"],kn={media:"Media",image:"Image",image2:"Image 2"},ol={media:"heroMedia",image:"heroImage",image2:"heroImage2"};function Bd(e,o){return e==="image"&&el(o)>1?"Image 1":kn[e]}var Oye="Video file",_ye="Upload a video file";function Xj(e,o){return{field:"mediaType",is:e,default:o}}var Zj=new Set(["HeroSingle"]),f0="heroPart";function Jj(e,o){return{...o,[f0]:e}}function Rye(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],Xj(s,r));for(let[s,l]of Object.entries(a??{}))l&&(n[s]=Xe(n[s],l));for(let s of pa)for(let l of o[s]??[])n[l]=Jj(s,n[l]);return n}function Qj(e){let o=e?.[f0];return pa.includes(o)?o:null}function u0(e,o){let t={};for(let[r,a]of Object.entries(e))Qj(a)===o&&(t[r]=a);return t}function p0(e){if(!Zj.has(e.type))return[];let o=[{part:"media",label:kn.media,depth:0}];return(e.props.mediaType??"image")!=="video"&&(o.push({part:"image",label:Bd("image",e.props),depth:1}),el(e.props)>1&&o.push({part:"image2",label:Bd("image2",e.props),depth:1})),o}function tl(e,o){return`${e}::${o}`}function m0(e){if(!e)return null;let o=e.lastIndexOf("::");if(o<=0)return null;let t=e.slice(o+2);return pa.includes(t)?{nodeId:e.slice(0,o),part:t}:null}var h0="data-sf-hero-part";import{jsx as xe,jsxs as Sa,Fragment as VO}from"react/jsx-runtime";import{useState as xV}from"react";import{useEasel as IV,useRootFields as gV}from"efficient-easel/easel";import{Button as bV,EmptyState as yV}from"efficient-shell/ui";function x0({kind:e,pageName:o}){return{name:o?.trim()||i("This page"),kindLabel:jr({kind:e})?i("Template"):i("Page")}}import{headWords as JO,InspectorHead as SV,InspectorIconButton as YO}from"efficient-easel/chrome";import{DuplicateIcon as wV,TrashIcon as CV}from"efficient-easel/icons";import{panelFieldsOf as vV}from"efficient-easel/screen/lib/document/panel-fields";import{jsx as B,Fragment as le,jsxs as fe}from"react/jsx-runtime";import{BlockBannerIcon as tK,BlockBoxIcon as rK,BlockButtonIcon as aK,BlockDividerIcon as g0,BlockFooterIcon as b0,BlockHeadingIcon as nK,BlockProductIcon as sK,BlockSocialIcon as lK,BlockTextIcon as iK,CardPaymentIcon as cK,ChatIcon as dK,AccountIcon as fK,GlobeIcon as uK,GridIcon as pK,ImageIcon as Tx,MapIcon as mK,MediaIcon as hK,PageIcon as xK}from"efficient-easel/icons";import{jsx as kx,Fragment as eK,jsxs as oK}from"react/jsx-runtime";var I0=oK(eK,{children:[kx("circle",{cx:"9",cy:"20",r:"1.3"}),kx("circle",{cx:"18",cy:"20",r:"1.3"}),kx("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 IK={header:fe(le,{children:[B("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),B("path",{d:"M3 9.5h18"})]}),social:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{children:[B("circle",{cx:"11",cy:"11",r:"6"}),B("path",{d:"M20 20l-4.2-4.2"})]}),CartBlock:I0,CountrySwitchBlock:fe(le,{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:fe(le,{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:fe(le,{children:[B("path",{d:"M3 9h18"}),B("path",{d:"M3 14h8M14 14h2M18 14h3"})]}),Hero:fe(le,{children:[B("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),B("path",{d:"M7 13.5h7M7 16.5h10"})]}),HeroSlide:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{children:[B("rect",{x:"6",y:"4",width:"12",height:"16",rx:"2"}),B("path",{d:"M9 15h6M9 17.5h4"})]}),AlloyWheelsListing:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{children:[B("path",{d:"M3.5 20h17"}),B("path",{d:"M6 20v-7M11 20V7M16 20v-5M20.5 20v-9"})]}),Logos:fe(le,{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:fe(le,{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:fe(le,{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:fe(le,{children:[B("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),B("path",{d:"M3 13.5h18M7 16.8h6"})]}),Split:fe(le,{children:[B("rect",{x:"3",y:"5",width:"8",height:"14",rx:"1.5"}),B("path",{d:"M14 8.5h6M14 12h6M14 15.5h4"})]}),Eyebrow:fe(le,{children:[B("path",{d:"M4 8.5h4.5M11 8.5h9"}),B("path",{d:"M4 14.5h16"})]}),HeroGroup:fe(le,{children:[B("rect",{x:"3.5",y:"4.5",width:"17",height:"15",rx:"2"}),B("path",{d:"M7 9h8M7 12.5h10M7 16h6"})]}),Form:fe(le,{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(le,{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:fe(le,{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:fe(le,{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:fe(le,{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"})},gK=B("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2.5"}),bK={footer:b0,Footer:b0,Divider:g0,FooterDivider:g0,Banner:tK,Flex:rK,FooterSocial:lK,FooterPayment:cK,page:xK,website:uK,AccountBlock:fK,chat:dK,Heading:nK,Text:iK,ImageBlock:Tx,ButtonBlock:aK,LocationMap:mK,Grid:pK,ProductRef:sK,heroMedia:hK,heroImage:Tx,heroImage2:Tx},yK={MenuBlock:"FooterMenu",EmailFormBlock:"FooterEmailSignup",SocialLogosBlock:"FooterSocial",PaymentLogosBlock:"FooterPayment",SiteHeader:"header",SiteFooter:"footer"};function ma({type:e,size:o=16,className:t}){let r=yK[e]??e,a=bK[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:IK[r]??gK})}import{PanelHideButton as XO}from"efficient-easel/screen/components/SidePanelHead";import{useEaselSession as kV}from"efficient-easel/screen/lib/session-context";import{jsx as we,jsxs as rl,Fragment as SK}from"react/jsx-runtime";import{useEffect as wK,useId as y0,useState as CK}from"react";import{IconPicker as vK}from"efficient-shell/ui";import{SettingsDefaultReset as kK,SettingsField as al,SettingsSegmented as TK,SettingsSwitch as S0}from"efficient-easel/panel";import{ButtonIcon as PK,ButtonIconIcon as EK,EyeIcon as OK,PhoneIcon as _K,PlacementIcon as RK,TypeIcon as AK}from"efficient-easel/icons";var FK="Chat with us",LK="We usually reply within a few minutes",BK="Hi! Ask us anything \u2014 about a wheel, an order, or fitment. Leave your details and we\u2019ll reply.";function Dd({label:e,value:o,placeholder:t,onCommit:r,multiline:a=!1,hint:n}){let[s,l]=CK(o);wK(()=>l(o),[o]);let c=()=>{s!==o&&r(s)};return we(al,{label:e,icon:we(AK,{}),changed:o!=="",action:we(nl,{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 nl({label:e,changed:o,onReset:t}){return we(kK,{words:Q()?.panel,label:e,changed:o,onReset:t})}function DK({label:e,icon:o,checked:t,fallback:r,onChange:a,hint:n}){let s=y0();return we(al,{label:e,labelId:s,icon:o,changed:t!==r,action:rl("span",{className:"inline-flex items-center gap-2",children:[we(S0,{checked:t,onChange:a,ariaLabelledBy:s}),we(nl,{label:e,changed:t!==r,onReset:()=>a(r)})]}),hint:n})}var NK=Od.map(e=>({value:e,icon:Di(e)}));function MK(){let{theme:e}=ce(),o=no(e).themes[0];return Xn(o)??o?.accent??""}function w0(){let{chat:e,setChat:o}=Ad(),t=y0(),r=MK(),a=e.launcherIcon?_d(e.launcherIcon):vn;return rl(SK,{children:[we(al,{label:i("Show the chat bubble"),labelId:t,icon:we(OK,{}),changed:!e.enabled,action:rl("span",{className:"inline-flex items-center gap-2",children:[we(S0,{checked:e.enabled,onChange:n=>o({enabled:n}),ariaLabelledBy:t}),we(nl,{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.")}),rl(Ym,{title:i("Look"),children:[we(Mo,{label:i("Button color"),icon:we(PK,{}),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(al,{label:i("Icon"),icon:we(EK,{}),value:we(Wm,{value:a}),changed:a!==vn,action:we(nl,{label:i("Icon"),changed:a!==vn,onReset:()=>o({launcherIcon:""})}),children:we(vK,{label:i("Icon"),value:a,options:NK,onChange:n=>o({launcherIcon:n===vn?"":n})})}),we(al,{label:i("Position"),icon:we(RK,{}),changed:e.launcherPosition!==ua,action:we(nl,{label:i("Position"),changed:e.launcherPosition!==ua,onReset:()=>o({launcherPosition:ua})}),children:we(TK,{options:[{label:i("Right"),id:"right"},{label:i("Left"),id:"left"}],value:e.launcherPosition,ariaLabel:i("Position"),onChange:n=>o({launcherPosition:n})})}),we(Dd,{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(DK,{label:i("Show on phones"),icon:we(_K,{}),checked:e.showOnPhones,fallback:Rd.showOnPhones,onChange:n=>o({showOnPhones:n})})]}),rl(Ym,{title:i("Wording"),children:[we(Dd,{label:i("Title"),value:e.title,placeholder:FK,onCommit:n=>o({title:n})}),we(Dd,{label:i("Subtitle"),value:e.subtitle,placeholder:LK,onCommit:n=>o({subtitle:n})}),we(Dd,{label:i("Greeting message"),value:e.greeting,placeholder:BK,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 ha,Fragment as Vx,jsxs as P0}from"react/jsx-runtime";import{useEffect as m8,useId as k0,useState as T0}from"react";import{SettingsField as h8}from"efficient-easel/panel";import{jsx as n8}from"react/jsx-runtime";import{forwardRef as HK,createElement as Px}from"react";var C0={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 ee=(e,o,t,r)=>{let a=HK(({color:n="currentColor",size:s=24,stroke:l=2,title:c,className:d,children:f,...h},u)=>Px("svg",{ref:u,...C0[e],width:s,height:s,className:["tabler-icon",`tabler-icon-${o}`,d].filter(Boolean).join(" "),...e==="filled"?{fill:n}:{strokeWidth:l,stroke:n},...h},[c&&Px("title",{key:"svg-title"},c),...r.map(([x,I])=>Px(x,I)),...Array.isArray(f)?f:[f]]));return a.displayName=`${t}`,a};var zK=[["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"}]],Ex=ee("outline","brand-facebook","BrandFacebook",zK);var WK=[["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"}]],Ox=ee("outline","brand-instagram","BrandInstagram",WK);var GK=[["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"}]],_x=ee("outline","brand-line","BrandLine",GK);var UK=[["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"}]],Rx=ee("outline","brand-linkedin","BrandLinkedin",UK);var $K=[["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"}]],Ax=ee("outline","brand-pinterest","BrandPinterest",$K);var jK=[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]],Fx=ee("outline","brand-telegram","BrandTelegram",jK);var KK=[["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"}]],Lx=ee("outline","brand-tiktok","BrandTiktok",KK);var qK=[["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"}]],Bx=ee("outline","brand-wechat","BrandWechat",qK);var VK=[["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"}]],Dx=ee("outline","brand-whatsapp","BrandWhatsapp",VK);var YK=[["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"}]],Nx=ee("outline","brand-x","BrandX",YK);var XK=[["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=ee("outline","brand-youtube","BrandYoutube",XK);var ZK=[["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=ee("filled","brand-facebook-filled","BrandFacebookFilled",ZK);var JK=[["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"}]],zx=ee("filled","brand-instagram-filled","BrandInstagramFilled",JK);var QK=[["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"}]],Wx=ee("filled","brand-linkedin-filled","BrandLinkedinFilled",QK);var e8=[["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=ee("filled","brand-pinterest-filled","BrandPinterestFilled",e8);var o8=[["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"}]],Ux=ee("filled","brand-tiktok-filled","BrandTiktokFilled",o8);var t8=[["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"}]],$x=ee("filled","brand-whatsapp-filled","BrandWhatsappFilled",t8);var r8=[["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"}]],jx=ee("filled","brand-x-filled","BrandXFilled",r8);var a8=[["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"}]],Kx=ee("filled","brand-youtube-filled","BrandYoutubeFilled",a8);var mwe="outline",Nd={fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},s8={},qx={fillRule:"evenodd"},l8=[["path",{...Nd,d:"M21 4L3 11L7 13L9 19L12 15L17 20z"}],["path",{...qx,d:"M21 4L3 11L7 13L9 19L12 15L17 20zM15.212 8.939 10.576 13.576 11.424 14.424 16.061 9.788z"}]],i8=[["path",{...Nd,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",{...s8,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("")}]],c8=[["path",{...Nd,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",{...Nd,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",{...qx,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",{...qx,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("")}]],d8=ee("filled","brand-telegram-filled","BrandTelegramFilled",l8),f8=ee("filled","brand-line-filled","BrandLineFilled",i8),u8=ee("filled","brand-wechat-filled","BrandWechatFilled",c8),p8={instagram:{outline:Ox,solid:zx},facebook:{outline:Ex,solid:Hx},tiktok:{outline:Lx,solid:Ux},youtube:{outline:Mx,solid:Kx},x:{outline:Nx,solid:jx},linkedin:{outline:Rx,solid:Wx},pinterest:{outline:Ax,solid:Gx},whatsapp:{outline:Dx,solid:$x},telegram:{outline:Fx,solid:d8},line:{outline:_x,solid:f8},wechat:{outline:Bx,solid:u8}};function v0({platform:e,iconStyle:o,size:t}){let r=p8[e][o];return n8(r,{size:t,stroke:1.75,"aria-hidden":"true",focusable:"false"})}var x8={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 I8({platform:e}){let{rows:o,saveLink:t}=Zs(),{value:r,error:a}=o[e],[n,s]=T0(r),[l,c]=T0(!1),d=k0(),f=k0();m8(()=>s(r),[r]);let h=async()=>{if(n.trim()===r){n!==r&&s(r);return}c(!0),await t(e,n),c(!1)},u=ry[e];return P0(Vx,{children:[ha(h8,{label:i(u),htmlFor:d,icon:ha(v0,{platform:e,iconStyle:"outline",size:18}),children:ha("input",{id:d,type:"text",inputMode:"url",value:n,placeholder:x8[e],onChange:x=>s(x.target.value),onBlur:()=>{h()},onKeyDown:x=>{x.key==="Enter"&&x.currentTarget.blur(),x.key==="Escape"&&(s(r),x.currentTarget.blur())},"aria-invalid":a?!0:void 0,"aria-describedby":a?f:void 0,"aria-busy":l||void 0,autoComplete:"off",spellCheck:!1})}),a&&ha("p",{id:f,className:"sf-note sf-note--error",role:"alert",children:a})]})}function E0({unavailable:e}){let{canSave:o}=Zs();return!o&&e?ha(Vx,{children:e}):P0(Vx,{children:[ha("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.")}),mi.map(t=>ha(I8,{platform:t},t))]})}import{jsx as ga,Fragment as pq,jsxs as mq}from"react/jsx-runtime";import{useId as hq,useMemo as xq}from"react";import{useEasel as Iq}from"efficient-easel/easel";import{SettingsField as gq,SettingsSwitch as bq}from"efficient-easel/panel";import{EyeIcon as yq}from"efficient-easel/icons";import{fieldShownInView as Sq}from"efficient-easel/fields";import{usePreviewDevice as wq}from"efficient-easel/draw/client";import{jsx as Ia,Fragment as y7,jsxs as S7}from"react/jsx-runtime";import{createContext as w7,useContext as C7,useLayoutEffect as iE,useMemo as Yd,useRef as cE,useState as nI}from"react";import{useEasel as dE,useSelectedFields as v7}from"efficient-easel/easel";import{fieldShownInView as k7,Inspector as T7,planFields as sI}from"efficient-easel/fields";function O0({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 s7}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as l7,deviceMetaOf as Y0}from"efficient-easel/screen/lib/document/device-fields";import{jsx as J,jsxs as br}from"react/jsx-runtime";import{phoneKey as Sr}from"efficient-easel/draw";import{SettingsDefaultReset as E8,SettingsField as G0}from"efficient-easel/panel";import{AnimationIcon as U0,ClockIcon as O8,DirectionDownIcon as _8,DirectionIcon as R8,DirectionLeftIcon as A8,DirectionRightIcon as F8,DirectionUpIcon as L8,DurationIcon as B8,NoSymbolIcon as D8}from"efficient-easel/icons";import{deviceField as On}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as N8,noControlField as M8}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{describedAs as $0,group as H8,onDesktopWords as z8,phoneTwinFields as W8}from"efficient-easel/screen/lib/document/box-fields";import{ENTRANCE_FROM as G8,ENTRANCE_FROM_DEFAULT as j0,ENTRANCE_KINDS as jd,ENTRANCE_KINDS_WITH_FROM as H0,MOTION_TIMING as U8,entranceAttrs as $8,playEntrance as j8,readEntrance as K8}from"efficient-shell/format";import{IconPicker as q8}from"efficient-shell/ui";import{jsx as Jx}from"react/jsx-runtime";import{ClockIcon as S8,DurationIcon as w8}from"efficient-easel/icons";import{MOTION_TIMING as D0}from"efficient-shell/format";import{useSelectedHost as C8}from"efficient-easel/easel";import{MOTION_EASING as g8,MOTION_TIMING as _0,motionSeconds as R0}from"efficient-shell/format";var Yx="none",Xx=[{label:"None",value:"none"},{label:"Scroll",value:"scroll"}];function Pwe(e){return oo(Xx,Yx,e)}var Md={field:"loop",is:"scroll"},sl="left",Zx=[{label:"Left",value:"left",cell:"left"},{label:"Right",value:"right",cell:"right"},{label:"Up",value:"up",cell:"top"},{label:"Down",value:"down",cell:"bottom"}],b8={left:"storefront-ticker",right:"storefront-ticker-right",up:"storefront-ticker-up",down:"storefront-ticker-down"};function A0(e){return oo(Zx,sl,e)}function F0(e){return e==="up"||e==="down"}function L0(e){return R0("loop","duration",e.loopDuration!=null?e.loopDuration:e.speed)}var Ewe=_0.loop.duration.default,y8=_0.loop.delay.default;function B0(e){return R0("loop","delay",e.loopDelay)}function Owe(e,o,t=y8){return`${b8[e]} ${o}s ${g8.loop}${t?` ${t}s`:""} infinite`}function Tn(e){let{min:o,max:t,step:r,default:a}=D0[e].duration;return vo("Duration",Jx(w8,{}),o,t,r,a,"s")}function Pn(e){let{min:o,max:t,step:r,default:a}=D0[e].delay;return vo("Delay",Jx(S8,{}),o,t,r,a,"s")}function En(e,o){let t=e.render,r=a=>{let n=C8();return t({...a,value:o(a.value,n?.values)})};return{...e,render:a=>Jx(r,{...a})}}function Hd({readsSpeed:e}){return En(Tn("loop"),(o,t)=>L0({loopDuration:o,speed:e?t?.speed:void 0}))}function zd(){return En(Pn("loop"),e=>B0({loopDelay:e}))}import{phoneKey as v8}from"efficient-easel/draw";import{readEntrance as k8}from"efficient-shell/format";var Gd="sf-entrance",Ee={kind:"entrance",from:"entranceFrom",duration:"entranceDuration",delay:"entranceDelay"},Ud="sectionAnimation",N0=e=>e!=null&&e!=="";function T8(e,o){let t=e[Ee[o]];return o==="kind"&&!N0(t)?e[Ud]:t}function Wd(e,o,t){if(t==="phone"){let r=e[v8(Ee[o])];if(N0(r))return r}return T8(e,o)}function ll(e,o){return k8(Wd(e,"kind",o),Wd(e,"from",o),Wd(e,"duration",o),Wd(e,"delay",o))}function $d(e){let o=ll(e,"desktop"),t=ll(e,"phone");return o.kind==="none"&&t.kind==="none"?null:{desktop:o,phone:t}}var P8={...Object.fromEntries([...Jw].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)"},Wwe=new Set(Object.keys(P8));var M0="_gEntrance";var Kd={none:"None",fade:"Fade",rise:"Rise",scale:"Scale",glide:"Glide",bounce:"Bounce",flip:"Flip",reveal:"Reveal",spin:"Spin"},V8={top:"Top",bottom:"Bottom",left:"Left",right:"Right"},Y8={top:()=>J(_8,{}),bottom:()=>J(L8,{}),left:()=>J(F8,{}),right:()=>J(A8,{})},oI="Entrance",z0=jd.filter(e=>e!=="none"),Qx=e=>({any:[{field:Ee.kind,in:e},{all:[{field:Ee.kind,set:!1},{field:Ud,in:e}]}]}),W0=e=>({any:[{field:Sr(Ee.kind),in:e},{all:[{field:Sr(Ee.kind),set:!1},Qx(e)]}]}),X8=[[[Ee.from],Qx(H0)],[[Sr(Ee.from)],W0(H0)],[[Ee.duration,Ee.delay],Qx(z0)],[[Sr(Ee.duration),Sr(Ee.delay)],W0(z0)]],yr=({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}),Tt=({x:e=12,y:o=12,o:t=1})=>J("rect",{x:e,y:o,width:"16",height:"16",rx:"2",opacity:t}),Z8={none:J(D8,{size:20}),fade:br(yr,{children:[J(Tt,{x:6,o:.3}),J(Tt,{x:18})]}),rise:br(yr,{children:[J(Tt,{y:20,o:.3}),J(Tt,{y:8}),J("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),scale:br(yr,{children:[J("rect",{x:"16",y:"16",width:"8",height:"8",rx:"1",opacity:".35"}),J(Tt,{}),J("path",{d:"M6 6l4 4M34 34l-4-4"})]}),glide:br(yr,{children:[J(Tt,{x:2,o:.3}),J(Tt,{x:20}),J("path",{d:"M4 33h12m-2-2 2 2-2 2"})]}),bounce:br(yr,{children:[J(Tt,{y:6}),J("path",{d:"M8 34c3-6 5-6 8 0s5 6 8 0 5-6 8 0"})]}),flip:br(yr,{children:[J("path",{d:"M12 12l16 4v8l-16 4z",opacity:".35"}),J(Tt,{}),J("path",{d:"M20 4v32",strokeDasharray:"2 2"})]}),reveal:br(yr,{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:br(yr,{children:[J(Tt,{}),J("path",{d:"M33 14a14 14 0 0 1 0 12m0 0-3-1m3 1 1-3"})]})};function J8({kind:e}){let{attrs:o}=$8(K8(e,j0)),t=i(Kd[e]);return Ps(J("span",{className:"sf-entrance-stage",children:J("i",{...o,children:Z8[e]})}),t,t)}var Q8=(e,o)=>{let t=o.querySelector(".sf-entrance-stage > i");t&&j8(t)},e7={width:"3.5rem",height:"4.25rem"};function K0({value:e,onChange:o}){return J(q8,{label:i(oI),value:e,columns:3,cell:e7,onChange:o,onPreview:Q8,tooltips:!1,options:jd.map(t=>({value:t,label:i(Kd[t]),icon:J(J8,{kind:t})}))})}var eI="Effect";function o7({value:e,onChange:o}){let t=Ho(),r=ll({...t,[Ee.kind]:e},"desktop").kind;return J(G0,{label:i(eI),icon:J(U0,{}),children:J(K0,{value:r,onChange:o})})}function t7({value:e,onChange:o}){let t=Ho(),r=typeof e=="string"&&jd.includes(e),a=ll(t,"desktop").kind;return J(G0,{label:i(eI),icon:J(U0,{}),changed:r,action:J(E8,{words:Q()?.panel,label:i(eI),changed:r,detail:z8(n=>i(n),i(Kd[a])),onReset:()=>o(void 0)}),children:J(K0,{value:r?e:a,onChange:o})})}var q0={type:"select",label:oI,options:jd.map(e=>({value:e,label:Kd[e]}))},r7=()=>$0({type:"custom",render:({value:e,onChange:o})=>J(o7,{value:e,onChange:o})},q0),a7=()=>$0({type:"custom",render:({value:e,onChange:o})=>J(t7,{value:e,onChange:o})},q0),n7=G8.map(e=>({label:V8[e],value:e,picture:Y8[e]()}));function it(){let{duration:e,delay:o}=U8.entrance,t={[M0]:H8(oI),[Ee.kind]:On("desktop",r7()),[Ud]:M8({type:"custom",render:()=>J(N8,{})},"always"),[Sr(Ee.kind)]:On("mobile",a7()),...W8(Ee.from,rn("From",J(R8,{}),n7,j0)),[Ee.duration]:On("desktop",Tn("entrance")),[Sr(Ee.duration)]:On("mobile",Ac({label:"Duration",desktopKey:Ee.duration,icon:J(B8,{}),min:e.min,max:e.max,step:e.step,fallback:e.default,unit:"s"})),[Ee.delay]:On("desktop",Pn("entrance")),[Sr(Ee.delay)]:On("mobile",Ac({label:"Delay",desktopKey:Ee.delay,icon:J(O8,{}),min:o.min,max:o.max,step:o.step,fallback:o.default,unit:"s"}))};return kp(t,X8)}import{DESIGN_GROUPS as rI,SETTINGS_BUCKETS as i7}from"efficient-easel/panel";import{BUCKET_KEY as Fo,DESIGN_GROUP_KEY as il}from"efficient-easel/screen/lib/document/field-buckets";var cl=i7;var c7="Editor only \u2014 not shown live",aI={"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",[c7]:"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"},X0={"AlloyWheelsListing._gCards":"Design","ProductGrid._gCards":"Design"},Z0={"Text._gSpacing":"Size","Heading._gSpacing":"Size"};function tI(e,o,t){let r=`${e}.${o}`;return Z0[r]??X0[r]??aI[t]}function J0(e){return e==="Animation"?[Fo.Animation]:[Fo.Design,il[e]]}function qd(...e){let o=[];for(let t of e)for(let r of Object.values(t)){let a=Y0(r),n=Wt(a?a.inner:r),s=n?aI[n.label]:void 0;if(s)for(let l of J0(s))o.includes(l)||o.push(l)}return o}var xCe=[...qd(Sc({tablet:!0}),Fc("full"),Lc(),Dc(),Jm()),...Object.keys(Sc({tablet:!0})),...Object.keys(Fc("full")),...Object.keys(Lc()),...Object.keys(Dc()),...Object.keys(Jm())],ICe=[...qd(Oc()),...Object.keys(Oc())],gCe=[...qd(Rc()),...Object.keys(Rc())],bCe=[...qd(it()),...Object.keys(it())],d7=Object.keys(xk()),f7=new Set(["cardImage","imageBackground"]),yCe=[...J0(tI("ProductGrid","_gCards","Cards")??"Design"),...d7.filter(e=>e.startsWith("_g")||f7.has(e))],SCe=Object.keys(Ik()),wCe=Object.keys(gk()),u7={"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)"},Q0={Content:["Content"],Size:["Size"],Design:["Design","Style"],Layout:["Layout"],Position:["Position"],Anchor:["Anchor"],Animation:["Animation"]},eE={_gAnchor:"repeated the Anchor group heading above it (two tabs, 11.0.0)"};{let e={...Sc({tablet:!0}),...Fc("full"),...Lc(),...Dc(),...Oc(),...Rc(),...it()};for(let o of Object.keys(eE)){let t=Wt(e[o]),r=t?aI[t.label]:void 0;if(!t||t.level!==2||!r||!Q0[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 p7=new Set(["_sContent","_sStyle","_sLayout","_sMedia"]),m7=new Map([[Fo.Design,"Content"],[Fo.Animation,"Animation"],...rI.map(e=>[il[e],e])]);function oE(e){let o=new Set([...Object.values(Fo),il.Content]);for(let[t,r]of Object.entries(e))if(!o.has(t)&&Wt(r)?.level===1)return 1;return 2}function h7(e){let o=`${e}.`;return Object.keys(u7).filter(t=>t.startsWith(o)).map(t=>t.slice(o.length))}function x7(e,o){let t=Y0(e),r=s7(o);return t?l7(t.tier,r):r}function I7(e,o){let t=Wt(o);return t?e==="Content"||e==="Animation"?ek(o,t.label):ok(o):o}function V0(e){return e==="Design"?rI:["Animation"]}function tE(e,o){let t=[],r=new Set(h7(o)),a=new Set,n=!1,s=null;for(let[u,x]of Object.entries(e)){let I=Wt(x);if(p7.has(u))throw new Error(`${o}.${u}: that key was a tab header until efficient-web-builder 11.0.0, when the panel moved to two tabs (Design \xB7 Animation). Its tab is gone, so the key may not come back. Give the heading a key of the section's own (\`_g\u2026\`), or open a Design group with its own key (\`_dDesign: section("Design")\`, \`_dLayout: section("Layout")\`).`);let y=m7.get(u);if(y!==void 0){if(I?.level!==1)throw new Error(`${o}.${u}: that key is reserved for the ${y} heading of the settings panel, but this field is ${I?`a level-${I.level} "${I.label}" header`:"not a header"}, so it cannot serve as one. Rename the section's own field.`);(u===Fo.Design||u===Fo.Animation)&&(n=!0),t.push(s={place:y,entries:[],adopted:!0});continue}if(!I){s||t.push(s={place:"Content",entries:[]}),s.entries.push([u,x]);continue}if(r.has(u)||u in eE){let v=tI(o,u,I.label);if(I.level!==2||!v||!Q0[v].includes(I.label))throw new Error(`${o}.${u}: ${r.has(u)?"RETIRED":"INJECTED_RETIRED"} (lib/document/field-groups.ts) lists this sub-heading as one whose name repeats the place it sits in, but it is a level-${I.level} "${I.label}" header in the ${v??"(unclassified)"} place. Only a level-2 header whose label is one of its place's words (PLACE_WORDS) may be retired \u2014 anything else is a heading a merchant reads for its own sake. Fix the row or drop it.`);r.has(u)&&a.add(u),t.push(s={place:v,entries:[]});continue}let P=tI(o,u,I.label);if(!P)throw new Error(`${o}.${u}: the inspector group "${I.label}" is not classified in LABEL_GROUP (lib/document/field-groups.ts), so there is no way to say which of ${[...rI,"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:P,entries:[[u,I.level===2?x:x7(x,I.label)]]})}let l=new Set(Object.entries(e).filter(([,u])=>Wt(u)).map(([u])=>u));for(let[u,x]of[["BLOCK_KEY_GROUP",Z0],["KEY_GROUP",X0]]){let I=Object.keys(x).filter(y=>y.startsWith(`${o}.`)).filter(y=>!l.has(y.slice(o.length+1)));if(I.length)throw new Error(`${o}: ${u} (lib/document/field-groups.ts) lists ${JSON.stringify(I)}, but no fold header by that key is in this section's panel. Either the heading was renamed or removed and the row is stale, or the row names the wrong key \u2014 an override that quietly matches nothing is worse than no override.`)}let c=n?[]:[...r].filter(u=>!a.has(u));if(c.length)throw new Error(`${o}: RETIRED (lib/document/field-groups.ts) lists ${JSON.stringify(c)}, but this section has no such fold header${c.length>1?"s":""}. Either the heading was renamed or removed and the row is stale, or the row names the wrong section \u2014 a list that quietly matches nothing is worse than no list.`);let d=new Set(t.filter(u=>u.entries.length>0).map(u=>u.place)),f=cl.filter(u=>V0(u).some(x=>d.has(x))),h={};for(let u of f){h[Fo[u]]=Ec(u,u===f[0]?f:null);for(let x of V0(u)){if(!d.has(x))continue;let I=t.filter(P=>P.place===x),y=I.findIndex(P=>P.adopted);y>0&&I.unshift(...I.splice(y,1)),u==="Design"&&(h[il[x]]=Vm(x));for(let P of I)for(let[v,w]of P.entries)h[v]=I7(x,w)}}return h}function CCe(e){return Fo.Design in e?e:{[Fo.Design]:Ec("Design",null),[il.Content]:Vm("Content"),...e}}function vCe(e){return cl.some(o=>Fo[o]in e)}function kCe(e){let o=cl.filter(r=>Fo[r]in e);if(o.length===0)return e;let t={...e};for(let r of o)t[Fo[r]]=Ec(r,r===o[0]?o:null);return t}import{jsx as g7}from"react/jsx-runtime";import{EmptyState as b7}from"efficient-shell/ui";function xa(){return g7(b7,{variant:"none",icon:!1,message:i("These settings apply to every view.")})}import{usePreviewDevice as P7}from"efficient-easel/draw/client";import{deviceField as E7}from"efficient-easel/screen/lib/document/device-fields";var Vd=" text",rE="Text";function dl(e){let o=e.rows.filter(t=>t.shown);return o.length===0||o.length===1&&o[0].labelled}function aE(e){return e.filter(dl).map(o=>o.key)}function nE(e,o){let t=e.filter(a=>!dl(a));if(t.length!==1)return null;let r=e.filter(dl).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 sE(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 lE(e,o){if(e.size!==o.size)return!1;for(let t of e)if(!o.has(t))return!1;return!0}var lI=new Map,Xd=new Set;function fE(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(f=>!f.hidden),d=l?.querySelector(".es-field-label, .es-list-label")?.textContent?.trim();return{shown:c,labelled:c&&!!d}})});return r}var O7=Object.fromEntries(cl.map(e=>{let o=Qv[e];return[e,Ia(o,{},e)]})),uE=w7(null),_7={_partBody:E7("each",{type:"custom",render:()=>Ia(R7,{})})};function R7(){return Ia(y7,{children:C7(uE)})}function ct({entries:e,entryCount:o=0,part:t=null,omit:r,motion:a,body:n}){let{id:s,fields:l,values:c,readOnly:d,onChange:f}=v7(),h=Yd(()=>a?{...c,...a.values}:c,[c,a?.values]),u=(ne,Oe)=>a?.keys.has(ne)?a.onChange(ne,Oe):f(ne,Oe),x=P7(),{appState:I,config:y}=dE(ne=>ne),P=zS(x,y,I.data.content??[],I.ui.itemSelector),v=n===void 0?u0(l,t):_7,w=Yd(()=>{let ne=r?.length?Object.fromEntries(Object.entries(v).filter(([Oe])=>!r.includes(Oe))):v;return a?{...ne,...a.fields}:ne},[v,r,a?.fields]),g=Tp(w,h,P),[T,C]=nI(()=>new Set(Xd)),[F,k]=nI(()=>new Set),L=cE(null),{bandRows:E,designBands:R,looseRows:N}=Yd(()=>{let ne=new Map,Oe=new Set,uo=[];for(let Re of sI(g).rows){if(!Re.fold){Re.bucket==="Design"&&uo.push(Re.name);continue}let Me=ne.get(Re.fold.key)??[];Me.push(Re.name),ne.set(Re.fold.key,Me),Re.bucket==="Design"&&Oe.add(Re.fold.key)}return{bandRows:ne,designBands:Oe,looseRows:new Map([["",uo]])}},[g]),b=k7({},x),_={key:Vd,rows:Array.from({length:b?o:0},()=>({shown:!0,labelled:!0}))};iE(()=>{let ne=L.current?.parentElement;if(!ne)return;let Oe=fE(ne,E),uo=new Set(aE(Oe)),Re=nE([_,...Oe.filter(Me=>R.has(Me.key))],fE(ne,N)[0].rows);Re&&uo.add(Re),k(Me=>lE(Me,uo)?Me:uo)});let A=Yd(()=>sE(g,F),[g,F]),H=!dl(_)&&!F.has(Vd)?{key:Vd,title:rE}:void 0,Z=dE(ne=>ne.selectedItem)!==null,q=a?.part??t??"",$=`${s}:${q}:${String(x)}`,[Te,ge]=nI(()=>({tab:lI.get($)})),qe=`${s}:${q}`,Ce=cE(null),ve={...P,node:h},me=sI(g,{values:h,context:ve}).buckets,Se=O0({allTabs:Z,remembered:lI.get($),inherited:Ce.current?.panel===qe?Ce.current.tab:Te.tab,buckets:me,hasText:b&&o>0}),je=!b&&!me.includes(Se)&&(sI(Tp(w,h,{...P,device:"desktop"}),{values:h,context:{...ve,device:"desktop"}}).buckets.includes(Se)||Se==="Design"&&o>0);iE(()=>{Ce.current={panel:qe,tab:Se}});let Ye=Se==="Design";return Ia(uE.Provider,{value:n??null,children:Ia(Zm.Provider,{value:a?h:null,children:S7(T7,{fields:A,values:h,onChange:u,readOnly:d,allTabs:Z,showWhenContext:ve,tab:Se,onTab:ne=>{lI.set($,ne),ge({tab:ne})},tabIcons:O7,idPrefix:s,ariaLabel:i("Section settings"),lead:Ye?e:null,leadFold:H,closedFolds:T,onFold:(ne,Oe)=>{Oe?Xd.delete(ne):Xd.add(ne),C(new Set(Xd))},children:[Ia("span",{ref:L,hidden:!0}),je&&Ia(xa,{})]})})})}import{useMemo as nq}from"react";import{useEasel as sq}from"efficient-easel/easel";import{useSectionOps as lq}from"efficient-easel/screen/lib/document/use-section-ops";import{jsx as dt}from"react/jsx-runtime";import{ContrastIcon as F7,HoverIcon as L7,HoverLiftIcon as B7,HoverNextImageIcon as D7,HoverNoneIcon as N7,HoverRotateIcon as M7,HoverZoomIcon as mE,OpacityIcon as H7,RotateIcon as z7}from"efficient-easel/icons";import{group as W7}from"efficient-easel/screen/lib/document/box-fields";import{deviceField as ft}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as G7,noControlField as U7}from"efficient-easel/screen/lib/document/panel-no-control-mark";function Zd(e){return`color-mix(in srgb, var(--overlay-scrim) ${Math.round(Math.min(1,Math.max(0,e))*1e3)/10}%, transparent)`}var YCe="sf-card",wr={min:0,max:100,step:5,fallback:0,unit:"%"},XCe=[{label:"Even",value:"even"},{label:"From the bottom",value:"bottom"}],A7="68%",ZCe={desktop:20,phone:20,side:40,sidePhone:24},JCe="sf-box-sides";function Jd(e){return typeof e=="string"&&e.trim()!==""}function QCe(e,o){let t=typeof e=="number"?e:Number.parseFloat(String(e??""));if(!Number.isFinite(t)||t<=0)return null;let r=(Math.min(wr.max,Math.max(wr.min,t))/100).toFixed(2);return o!=="bottom"?{background:Zd(Number(r))}:{background:`linear-gradient(0deg, ${Zd(Number(r))} 0%, ${Zd(0)} ${A7})`}}function eve(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 iI=()=>ft("desktop",W7("Hover")),$7="What this does when a shopper points at it, or taps it on a phone.",j7="What this picture does when a shopper points at it. Black and white shows it in grey until then. A phone shows its colour.",K7="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.",q7="What each card does when a shopper points at it, or taps it on a phone. Rotate turns the wheel picture.",V7={none:()=>dt(N7,{}),nextImage:()=>dt(D7,{}),rotate:()=>dt(M7,{}),zoom:()=>dt(mE,{}),lift:()=>dt(B7,{}),mono:()=>dt(F7,{})};function cI(e,o){return rn("Hover effect",dt(L7,{}),e.map(t=>({label:Ms[t],value:t,picture:V7[t]()})),o)}function hE(){return{[ed]:iI(),[Ao]:ft("desktop",{...cI(Sh,"none"),description:$7})}}function xE(e){let o=dT(e),t=vo("Angle",dt(z7,{}),fn.min,fn.max,fn.step,Ch,"\xB0");return{[ed]:iI(),[Be.kind]:ft("desktop",{...En(cI(td,e),(r,a)=>vh(a??{},e)),description:q7}),[Ns]:U7({type:"custom",render:()=>dt(G7,{})},"always"),[Be.angle]:ft("desktop",Xe(En(t,r=>kh(r)),o)),[Be.duration]:ft("desktop",Xe(Tn("hover"),o)),[Be.delay]:ft("desktop",Xe(Pn("hover"),o))}}function dI(e,o=""){let t=mT(e);return{[ed]:iI(),[Be.kind]:IE(rd,e,j7),...Eh.includes(o)?Y7():{},[Be.duration]:ft("desktop",Xe(Tn("hover"),t)),[Be.delay]:ft("desktop",Xe(Pn("hover"),t))}}function Y7(){let e=pT(),o=vo("Zoom",dt(mE,{}),Gt.min,Gt.max,Gt.step,Gt.min,Gt.unit),t=vo("Darken on hover",dt(H7,{}),wr.min,wr.max,wr.step,wr.fallback,wr.unit);return{[Hs.zoom]:ft("desktop",Xe(o,e)),[Hs.darken]:ft("desktop",Xe(t,e))}}function IE(e,o,t){let r=ft("desktop",{...En(cI(e,o),a=>Oh({[Ao]:a},o,e)),description:t});return Object.assign(r,{[gE]:o})}var gE="sfPictureResting",pE=new WeakMap;function pve(e,o,t){let r=e[Be.kind],a=r?.[gE];if(!r||!a)return e;let n=o.props?.[Ao]==="nextImage",s=n?null:Ei(t.appState,o.props?.id),l=s?Yy(String(s.type),ar(o.props),s):null;if(!n&&!l?.next)return e;let c=pE.get(e);return c||(c={...e,[Be.kind]:IE(Th,a,K7)},pE.set(e,c)),c}import{jsx as bE}from"react/jsx-runtime";import{DirectionIcon as X7,LoopIcon as Z7}from"efficient-easel/icons";function fI(){return mk("Scroll direction",Zx,sl,"A marquee cannot run diagonally, so the corners are not answers.",bE(X7,{}),pk)}function yE(){return{loop:rt("Loop",bE(Z7,{}),Xx,Yx),scrollDirection:Xe(fI(),Md),loopDuration:Xe(Hd({readsSpeed:!1}),Md),loopDelay:Xe(zd(),Md)}}function J7(){let e=dI("none");return fs(e,Object.keys(e),vp("bgImage"))}function SE(e,o=""){switch(e){case"section":case"block":return it();case"box":return{...it(),...yE(),...J7()};case"picture":return{...it(),...dI(Ph(o),o)};case"textPart":return{...it(),...hE()};case"cards":return{...it(),...xE(wh(o))};case"marquee":return{...it(),scrollDirection:fI(),loopDuration:Hd({readsSpeed:!0}),loopDelay:zd()}}}import{phoneKey as Q7}from"efficient-easel/draw";import{ENTRANCE_STATE_ATTR as eq,entranceAttrs as oq}from"efficient-shell/format";var CE={},uI="_partMotion",pI=[...Object.values(Ee).flatMap(e=>[e,Q7(e)]),Ao,Be.duration,Be.delay];function Dve(e){return xn(e,uI)}function _n(e,o){return md(e,uI,o)}var tq=new Set([Ee.kind,Ao]);function vE(e,o,t,r){let{[t]:a,...n}=_n(e,o),s=r==null||r===""||r==="none"&&tq.has(t)?n:{...n,[t]:r};return hd(e,uI,o,Object.keys(s).length?s:null)}function mI(e){return{entrance:$d(e),hover:iT(e)}}function kE(e){let o=mI(e);return o.entrance!==null||o.hover!=="none"}function TE(e,o){let{attrs:t,style:r}=oq(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(eq)}}var rq=4;function PE(e){let o;for(let t of e)(!o||t.element.compareDocumentPosition(o.element)&rq)&&(o=t);return o}var aq="data-sf-part-host";function EE(e){let o=e?.ownerDocument.defaultView,t=e;for(;t&&!t.hasAttribute(aq)&&!t.classList.contains(Gd);){let r=o?.getComputedStyle(t).display??"";if(r==="contents")return null;if(r!=="inline")return t;t=t.parentElement}return null}var Qd="data-sf-part-lift",wE="sf-part-lift";function OE(e){if(e.getElementById(wE))return;let o=e.createElement("style");o.id=wE,o.textContent=UT(`[${Qd}]`).join(`
40
- `),e.head.appendChild(o)}var _E=new Map,iq=e=>{let o=_E.get(e);return o||_E.set(e,o=tE(SE(e),`part:${e}`)),o},cq=new Set(pI);function Rn(e,o,t){let{getItemById:r,getSelectorForId:a}=sq(f=>f),n=lq(),s=r(e)?.props??{},l=_n(s,o),c=JSON.stringify(l),d=nq(()=>Object.fromEntries(pI.map(f=>[f,l[f]])),[c]);return{part:o,fields:iq(t),values:d,keys:cq,onChange:(f,h)=>{let u=a(e),x=r(e);if(!u||!x)return;let I=vE(x.props??{},o,f,h);n.replaceComponent(u.zone,u.index,{...x,props:I})}}}import{Fragment as dq,createElement as fq}from"react";import{deviceField as hI}from"efficient-easel/screen/lib/document/device-fields";var co=()=>({type:"custom",render:()=>fq(dq)});var xI={words:co(),sourceNote:co(),style:co(),font:co(),italic:co(),fontSize:hI("each",co()),lineHeight:co(),letterSpacing:co(),paragraphSpacing:co(),padding:co(),align:hI("each",co()),letterCase:co(),fixedSizeHint:hI("each",co()),regionNote:co(),regionStyle:co()},uq=["fontSize"];function RE(e){return uq.includes(e)}var AE={showTicker:co(),items:co()};var Cq="root:default-zone";function FE({heroId:e}){let{appState:o,dispatch:t}=Iq(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=xq(()=>{let x=n?.props.tickerItems;return Array.isArray(x)?x:l0.map(I=>({text:I}))},[n]),c=hq(),d=wq(),f=x=>Sq(AE[x],d),h=Rn(e,i0,"block");if(!n)return ga("p",{className:"sf-note",children:i("This ticker\u2019s hero is no longer on the page.")});let u=x=>t({type:"replace",destinationZone:Cq,destinationIndex:a,data:{...n,props:{...n.props,...x}}});return ga(ct,{motion:h,body:mq(pq,{children:[!f("showTicker")&&!f("items")&&ga(xa,{}),f("showTicker")&&ga(gq,{label:i("Show ticker"),labelId:c,icon:ga(yq,{}),action:ga(bq,{checked:s,onChange:x=>u({showTicker:x}),ariaLabelledBy:c})}),f("items")&&ga(oh,{label:eh.label,icon:eh.icon,items:l,placeholder:"item",onChange:x=>u({tickerItems:x}),markup:!0})]})})}import{jsx as Y,Fragment as xl,jsxs as zo}from"react/jsx-runtime";import{useContext as $q,useEffect as gI,useRef as jq,useState as ZE}from"react";import{FieldSelect as Kq,InspectorField as qq,fieldShownInView as Vq}from"efficient-easel/fields";import{SettingsField as Yq}from"efficient-easel/panel";import{InspectorUpLevel as cf}from"efficient-easel/chrome";import{StylesIcon as Xq,TypeIcon as Zq}from"efficient-easel/icons";import{useEasel as Jq}from"efficient-easel/easel";import{TextPartPanel as JE}from"efficient-easel/copy";import{Button as Qq,IconButton as e9,Tooltip as o9}from"efficient-shell/ui";import{jsx as LE,jsxs as vq}from"react/jsx-runtime";import{COPY_CELLS as ef,CopyBox as kq}from"efficient-easel/copy";import{PaddingYIcon as Tq}from"efficient-easel/icons";import{onDesktopWords as Pq}from"efficient-easel/screen/lib/document/box-fields";var Eq=["left","center","right","justify"];function of(e,o,t,r="desktop"){let a=js(e),n=Jh(r),s=e[n]??e.size??o.sizePx,l=VT(e,r);return[{...ef.fontSize,key:"fontSize",value:e[n],styleValue:Math.round(o.sizePx),onChange:c=>t({[n]:c??null}),...n==="size"?{}:{reset:{detail:l?Pq(c=>i(c),`${l.px}px`,l.view):void 0}}},{...ef.lineHeight,key:"lineHeight",value:a.lineHeight,styleValue:o.lineRatio,onChange:c=>t(c===void 0?{lineHeight:null,line:null}:{lineHeight:c})},{...ef.letterSpacing,key:"letterSpacing",scale:s,value:a.letterSpacingEm,styleValue:o.letterEm,onChange:c=>t(c===void 0?{letterSpacing:null,letter:null}:{letterSpacing:c})},{...ef.paragraphSpacing,key:"paragraphSpacing",value:e.paragraphSpacing,styleValue:0,onChange:c=>t({paragraphSpacing:c??null})},{key:"padding",name:i("Padding"),icon:LE(Tq,{}),unit:"px",step:Vh,shiftStep:10,min:Kh,max:qh,value:e.padding,styleValue:o.paddingPx,onChange:c=>t({padding:c??null})}]}function BE({text:e,onTextChange:o,multiline:t,markup:r=!0,styled:a=!0,style:n,base:s,setValue:l,colors:c,placeholder:d,ariaLabel:f,head:h,typedOnCanvas:u=!1}){let x=of(n,s,l),I=hh(r,t);return vq("div",{className:"sf-part-textbox",children:[h,LE(kq,{value:e,onChange:o,multiline:t,placeholder:d,ariaLabel:f,rules:Gr,tools:I,barShows:u?"focus":"always",colors:r?c:[],colorNameOf:vt,align:a?{value:n.align??s.align,allow:Eq,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 QE}from"efficient-easel/draw/client";import{jsx as tf,Fragment as Oq,jsxs as _q}from"react/jsx-runtime";import{Button as DE,Dialog as Rq}from"efficient-shell/ui";function NE({styleName:e,onCancel:o,onConfirm:t}){return tf(Rq,{open:!0,onClose:o,role:"alertdialog",size:"sm",title:i("Update {style}?",{style:e}),footer:_q(Oq,{children:[tf(DE,{variant:"secondary",onClick:o,children:i("Cancel")}),tf(DE,{variant:"primary",onClick:t,children:i("Update style")})]}),children:tf("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 t9}from"efficient-easel/screen/components/ScreenDocumentContext";import{usePreviewDevice as r9}from"efficient-easel/draw/client";import{shownTier as sf}from"efficient-easel/screen/lib/document/device-fields";import{jsx as Aq}from"react/jsx-runtime";import{createContext as Fq,useContext as Lq,useMemo as Bq,useState as Dq}from"react";var Nq={partStyle:null,setPartStyle:()=>{}},ME=Fq(Nq);function Tke({children:e}){let[o,t]=Dq(null),r=Bq(()=>({partStyle:o,setPartStyle:t}),[o]);return Aq(ME.Provider,{value:r,children:e})}function HE(){return Lq(ME)}import{TEXT_FIELD_MARKER as a9}from"efficient-easel/draw";import{useSectionOps as n9}from"efficient-easel/screen/lib/document/use-section-ops";var fl="@name",zE="@body",WE="@value",GE={[fl]:"Name",[zE]:"Body",[WE]:"Value"},Mq={TimelineTrack:{"entries.date":fl,"entries.title":fl,"entries.blurb":zE},Footprint:{"offices.city":fl},Stats:{"items.label":fl,"items.value":WE}};function Hq(e){let{key:o,row:t}=nt(e);return t?`${o}.${t.rowKey}`:null}function ul(e,o){if(!e)return o;let t=Hq(o);return t?Mq[e]?.[t]??o:o}import{useEaselHost as s9}from"efficient-easel/screen/lib/host";function zq(e){let o=new Set([...Object.keys(qi[e]??{}),...Vi[e]??[]]);for(let[t,r]of Object.entries(jp[e]??{}))r.verb==="snapshot"&&o.add(t);return[...o].sort()}var Wq={CollectionCard:"product",FooterMenu:"menu",Gallery:"product",GalleryItem:"product",ProductGrid:"product",ProductHero:"product",SpecTable:"product",Events:"blog",FeaturedCover:"blog",LongRead:"blog",SubscribeBlogs:"blog"},UE={product:"Synced from the product.",blog:"Synced from the blog post.",menu:"Synced from the site menu."},$E="Open",jE={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 An(e){let o=e?.source?.slug;return oe(o)}function pl(e){return Wq[e]??null}function KE(e,o){let t=pl(e);return t&&zq(e).includes(o)?t:null}function rf(e){let o=e?.menu?.id;return oe(o)}var ml={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)]"},Gq={tag:{label:"Tag",follows:"Labels",builtIn:mn(ml.tag),writable:!0},name:{label:"Name",follows:"Heading 2",builtIn:mn(ml.name),writable:!0},body:{label:"Body",follows:"Body",builtIn:mn(ml.body),writable:!0},price:{label:"Price",follows:"Labels",builtIn:mn(ml.price),writable:!0},link:{label:"Link",follows:"Labels",builtIn:mn(ml.link),writable:!0}},qE=Gq;var Uq={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}},VE=Uq;var af={entry:{label:"Entry",follows:"Labels",builtIn:"13px",writable:!0},number:{label:"Entry number",follows:"Labels",builtIn:"13px",writable:!0}};var zke=ud,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 II={SpecTable:YE,FAQ:VE,Collections:qE,Contents:af};function XE(){return tr("efficient.section-text-regions",()=>new Map)}function qke(e){let o=XE();for(let[t,r]of Object.entries(e)){if(Object.hasOwn(II,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 nf(e){return e?Object.hasOwn(II,e)?II[e]:XE().get(e)??null:null}function bI(e){return e?i(e):null}function eO(e){return e.kind==="role"?Fu[e.role]:e.kind==="custom"?"Custom":null}function l9(e){let o=At(e.role);return o?{kind:"role",role:o}:null}function i9(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 lf(e,o,t,r){return l9(Us(e,o))??i9(t,r)}function c9(e,o){if(!e.length)return null;let t=o(e[0]);return e.every(r=>o(r)===t)?t:null}function oO(e){return[{value:hl,label:i("No style"),description:i("Section\u2019s own")},...e.map(o=>({value:o.id,label:o.name,description:o.values.font?Ga(o.values.font)?.label:void 0}))]}var hl="";function d9({face:e,base:o,onPick:t}){let r=e.kind==="role"?e.role:hl,a=[{label:i("No style"),value:hl},...Yb.map(n=>({label:i(Fu[n]),value:n}))];return Y(Kq,{ariaLabel:i("Style"),value:r,options:a,inline:!0,onChange:n=>t(n===hl?null:n),renderOption:n=>n.value===hl?zo(xl,{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(${Ga(o.fontKey)?.cssVar})`:void 0,fontWeight:o?.weight},children:bI(eO(e))}),valueText:n=>bI(eO(e))??n?.label??""})}var sO=["regionNote","regionStyle"],f9=Object.keys(xI).filter(e=>!sO.includes(e));function lO(e,o){return!e.some(o)}function u9({sectionName:e,onBack:o,textEditor:t,styleRow:r,children:a,tabs:n}){let s=zo(xl,{children:[t,r,a]});return zo("div",{className:"sf-part-panel",children:[Y(cf,{inline:!0,name:i(e),onSelect:o}),n?n(s):s]})}function df({source:e,slug:o,menuId:t}){let r=s9(),a=jE[e],n=!a.needsSlug||!!o;return Y("div",{className:"sf-note sf-note--source",children:zo("p",{className:"es-field-hint sf-hint-keep",children:[i(UE[e]),n?zo(xl,{children:[" ",Y(Qq,{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($E)})]}):null]})})}var tO=4,p9=120;function rO(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 aO({region:e,sizePx:o,face:t,base:r,onFollowStyle:a,source:n,slug:s,onBack:l,shows:c,sizedStyle:d,ownLook:f}){let h=e.follows;return zo("div",{className:"sf-note",children:[Y("p",{children:Y("strong",{children:i(e.label)})}),c("regionNote")&&!f&&Y("p",{children:o?i("Its size follows Styles \u25B8 {follows} \u2014 {px}px right now.",{follows:i(h),px:Math.round(o)}):i("Its size follows Styles \u25B8 {follows}.",{follows:i(h)})}),d?zo(xl,{children:[d,c("regionStyle")&&Y("p",{className:"es-field-hint sf-hint-keep",children:rO(e)})]}):a?c("regionStyle")?Y(xl,{children:Y(Yq,{label:i("Style"),icon:Y(Xq,{}),hint:rO(e),children:Y(d9,{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(df,{source:n,slug:s}):null,lO([...sO,"sourceNote",...d?["fontSize"]:[]],u=>c(u)&&(u!=="sourceNote"||!!n))&&Y(xa,{}),Y(cf,{inline:!0,name:i("Page"),onSelect:l})]})}function m9({onBack:e}){return zo("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(cf,{inline:!0,name:i("Page"),onSelect:e})]})}function h9({onBack:e,partId:o,why:t}){return zo("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:zo("code",{children:[o," \u2014 ",t]})}),Y(cf,{inline:!0,name:i("Page"),onSelect:e})]})}function iO({nodeId:e,propKey:o,onBack:t,onEditStyle:r}){let{getItemById:a,getSelectorForId:n,config:s}=Jq(W=>W),l=n9(),c=jk(),{partStyle:d}=HE(),{fonts:f,textStyles:h}=ce(),u=$q(t9),x=!u?.capabilities?.hasSiteTheme,{persist:I}=Ya({themeFromDocument:x,tokenRef:u?.tokenRef,siteId:u?.siteId??null}),y=wd({themeFromDocument:x,persist:I}),[P,v]=ZE(!1),w=r9(),g=W=>(sf(w)!=="tablet"||RE(W))&&Vq(xI[W],w),T=jq(null),C=a(e),F=n(e),k=C?s.components[C.type]:void 0,{key:L,row:E}=nt(o),R=k?.fields?.[L],N=E?dn(R,E):R,b=Wc(e,o),_=C?.props??{},A=ln(N),H=Pc(N),Z=_k(N),q=C?pl(C.type):null,$=C?KE(C.type,L):null,Te=E?Ls(_[L],E):_[L],ge=!!E&&!(Array.isArray(_[L])&&E.index<_[L].length);gI(()=>{$k(document)||T.current?.querySelector(".es-copy [contenteditable='true'], .es-copy textarea, .sf-copybox textarea, .sf-copybox input")?.focus()},[b]);let[qe,Ce]=ZE(0);gI(()=>Ce(0),[b]);let ve=!!C&&!ge&&(!F||!N);gI(()=>{if(!ve||qe>=tO)return;let W=setTimeout(()=>Ce($e=>$e+1),p9);return()=>clearTimeout(W)},[ve,qe]);let me=ve&&qe<tO,Se=Rn(e,ul(C?.type,o),"textPart");if(!C||ge)return Y(m9,{onBack:t});let je=nf(C.type),Ye=je?Ws(je,o):null;if(je&&Ye){let W=d?.partId===b?d:null,$e=je[Ye],Vo=$e.writable===!0&&!!F,Qt=Rr=>{F&&l.replaceComponent(F.zone,F.index,{...C,props:ia(_,o,"role",Rr)})};if(Vo&&DT($e)){let Rr=Us(_,o),Ob=Ar=>{if(!F)return;let ku=_;for(let[PB,EB]of Object.entries(Ar))ku=ia(ku,o,PB,EB??null);l.replaceComponent(F.zone,F.index,{...C,props:ku})},vB=$t(y.saved,y.old),kB=jh(Rr)??"",TB=of(Rr,W?.base??nO,Ob,sf(w)).filter(Ar=>Ar.key==="fontSize"&&g(Ar.key));return Y(ct,{motion:Se,body:Y(aO,{region:$e,sizePx:W?.base.sizePx??null,face:lf(_,o,W,f),base:W?.base??null,source:q,slug:An(_),onBack:t,shows:g,ownLook:XT(Rr),sizedStyle:Y(JE,{style:g("style")?{value:kB,options:oO(vB),onChange:Ar=>Ob(Ar?{textStyle:Ar}:{textStyle:null,role:null}),onEditStyles:r}:void 0,cells:TB})})})}return Y(ct,{motion:Se,body:Y(aO,{region:$e,sizePx:W?.base.sizePx??null,face:lf(_,o,W,f),base:W?.base??null,onFollowStyle:Vo?Qt:void 0,source:q,slug:An(_),onBack:t,shows:g})})}if(!F||!N)return me?Y("div",{className:"sf-note","aria-busy":"true"}):Y(h9,{onBack:t,partId:b,why:F?"no field":"no selector"});let ne=W=>{l.replaceComponent(F.zone,F.index,{...C,props:W})},Oe=W=>{if(xr(W).hidden!==xr(Te).hidden||!A){let $e=E?nh(_,L,E,W):{..._,[L]:W};$e&&ne($e);return}$c({node:C,propKey:o,kind:A,zone:F.zone,index:F.index},xr(W).text,l.replaceComponent)},uo=Te,Re=d?.partId===b?d:null,Me=Re?.styleOwner,go=Me?a(Me.owner):null,qo=Me&&go?n(Me.owner):null,bo=!!(Me&&go&&qo),M=bo?go.props??{}:_,se=bo?W=>l.replaceComponent(qo.zone,qo.index,{...go,props:W}):ne,he=bo?Me.kind:ul(C?.type,o),Ae=Us(M,he),ze=[{partKey:he,face:lf(M,he,Re,f),sizeGroup:Re?.sizeGroup??null,base:Re?.base??nO,style:Ae}],Jt=c9(ze,W=>W.sizeGroup),Na=pn(Re?.inks),eo=(W,$e)=>{let Vo=M;for(let Qt of ze)Vo=ia(Vo,Qt.partKey,W,$e);se(Vo)},Or=W=>W?eo("textStyle",W):Yn({textStyle:null,role:null}),Yn=W=>{let $e=M;for(let Vo of ze)for(let[Qt,Rr]of Object.entries(W))$e=ia($e,Vo.partKey,Qt,Rr??null);se($e)},Cu=A==="text"||A==="textarea",{text:vb,hidden:Ma}=xr(Te),di=N?.[a9]?.label??o,kb=Ma?i("Show {label} on the slide",{label:i(di)}):i("Hide {label} on the slide",{label:i(di)}),Tb=zo("div",{className:"sf-field-head",children:[Y(Zq,{}),Y("span",{className:"sf-field-label sf-field-label--inline",children:i(di)}),Cu&&Y(o9,{content:kb,children:Y(e9,{"aria-pressed":Ma,"aria-label":kb,onClick:()=>Oe({text:vb,hidden:!Ma}),children:Ma?Y(QE,{name:"eye-off",size:14}):Y(QE,{name:"eye",size:14})})})]}),fi=!H&&Z,IB=!!A&&(Zv(N)||H||Ma||!Z),Pb=lf(M,he,Re,f),gB=Pb.kind==="role"?Pb.role:null,vu=jh(Ae)??fP(gB),Eb=$t(y.saved,y.old),bB=Object.entries(Ae).filter(([W,$e])=>W!=="role"&&W!=="textStyle"&&$e!==void 0).length,yB=()=>{let W=M;for(let $e of ze){let{role:Vo,textStyle:Qt}=$e.style;W=KT(W,$e.partKey),Vo&&(W=ia(W,$e.partKey,"role",Vo)),Qt&&(W=ia(W,$e.partKey,"textStyle",Qt))}se(W)},_r=vu,SB=uP(ze[0].style),wB=_r?Eb.find(W=>W.id===_r)?.name??_r:"",CB=()=>{v(!1),_r&&(y.write(pP({saved:y.saved,old:y.old,styleId:_r,values:ix(ze[0].style)}),!0),yB())};return zo(u9,{sectionName:k?.label??C.type,onBack:t,tabs:W=>Y(ct,{motion:Se,body:W}),textEditor:g("words")?Y("div",{ref:T,className:"sf-part-text",children:IB?Y(BE,{text:vb,onTextChange:W=>Oe(Cu?{text:W,hidden:Ma}:W),multiline:Nc(A),markup:A!=="plainText",styled:!1,style:ze[0].style,base:ze[0].base,setValue:Yn,colors:Na,placeholder:bI(Sk(N))??void 0,ariaLabel:i(di),head:Tb,typedOnCanvas:c===b}):A?Cu?Tb:null:Y(qq,{field:N,name:o,value:uo,onChange:Oe,id:`sf-part-${e}-${o}`})}):void 0,children:[$&&g("sourceNote")&&Y(df,{source:$,slug:An(_),menuId:rf(_)}),fi&&Y(JE,{style:g("style")?{value:vu??"",options:oO(Eb),onChange:W=>Or(W||null),changed:bB>0,onEditStyles:r,onUpdateStyle:_r&&SB?()=>v(!0):void 0}:void 0,font:g("font")?{value:Ae.font??"",styleValue:Ga(ze[0].base.fontKey)?.label,options:Yo.map(W=>({label:W.label,value:W.key})),onChange:W=>eo("font",W||null)}:void 0,italic:g("italic")?{value:Ae.italic,styleValue:x9(h,vu),onChange:W=>eo("italic",W??null)}:void 0,cells:of(ze[0].style,ze[0].base,Yn,sf(w)).filter(W=>g(W.key)),align:g("align")?sf(w)==="mobile"?{value:Ae.alignPhone??"",styleValue:Ae.align??ze[0].base.align,onChange:W=>eo("alignPhone",W||null)}:{value:Ae.align??"",styleValue:ze[0].base.align,onChange:W=>eo("align",W||null)}:void 0,letterCase:g("letterCase")?{value:Ae.case??"",styleValue:ze[0].base.case,onChange:W=>eo("case",W||null)}:void 0}),P&&_r&&Y(NE,{styleName:wB,onCancel:()=>v(!1),onConfirm:CB}),fi&&Jt===null&&g("fixedSizeHint")&&Y("p",{className:"es-field-hint sf-hint-keep",children:i("Fixed size \u2014 the site\u2019s Text setting doesn\u2019t resize this.")}),lO(f9,W=>g(W)&&(W==="words"||(W==="sourceNote"?!!$:W==="fixedSizeHint"?fi&&Jt===null:fi)))&&Y(xa,{})]})}function x9(e,o){return!o||!Array.isArray(e)?!1:e.find(t=>t?.id===o)?.values?.italic===!0}var nO={fontKey:"",sizePx:16,weight:400,lineRatio:1.4,letterEm:0,align:"left",case:"none",paddingPx:0};import{jsx as ut,jsxs as BI,Fragment as _9}from"react/jsx-runtime";import{useCallback as R9,useRef as A9,useState as yl}from"react";import{InspectorIconButton as F9}from"efficient-easel/chrome";import{useEasel as L9}from"efficient-easel/easel";import{PopupMenu as B9,PopupMenuItem as D9,PopupMenuLabel as bf}from"efficient-shell/ui";import{CopyToPageIcon as N9}from"efficient-easel/icons";import{useEaselSession as M9}from"efficient-easel/screen/lib/session-context";import{cloneNodeWithFreshIds as H9}from"efficient-easel/screen/lib/document/section-doc";import{FOOTER_TYPE as z9}from"efficient-easel/draw";import{currentEaselSession as I9}from"efficient-easel/screen/lib/session";var g9={general:!0,commerce:!0,service:!0};function yI(e){let o=e?.sets;return o?Object.fromEntries(Iy.map(t=>[t,o.includes(t)])):g9}function SI(e=I9()){return yI(e.blocks)}import{isBackendError as Nn}from"efficient-easel/screen/lib/backend-error";import{isEfficientBackend as RO}from"efficient-easel/screen/lib/session";import{useSyncExternalStore as b9}from"react";var Fn=new Map,wI=new Set;function CI(e,o){if(!(Fn.has(e)&&Fn.get(e)===o)){Fn.set(e,o);for(let t of wI)t()}}function ff(e,o){CI(e,o)}function uf(e,o){let t=Fn.get(e);CI(e,o??(t==="live"?"changed":t))}function pf(e,o){CI(e,o??"live")}function cO(e){return Fn.get(e)}function y9(e){return wI.add(e),()=>{wI.delete(e)}}function dO(e){let o=()=>e?Fn.get(e):void 0;return b9(y9,o,o)}function fO(e,o){return e==="live"&&o?"changed":e}function vI({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 uO(e){return e.map(o=>o.change==="take_down"?i("{name} (taken down)",{name:o.name}):o.name)}var De="SiteHeader",_e="SiteFooter",kI="sections",$Te=[De,_e],Ln=e=>e===De||e===_e,pO=e=>`${e}:${kI}`;function mO(e,o,t=[]){return{type:e,props:{id:o,[kI]:t}}}var S9=new Set(["Footer",De,_e]);function Bn(e){let o=new Set,t=!1,r=e.filter(a=>{let n=a?.type??"";return n==="Header"?(t=!0,!1):S9.has(n)?o.has(n)?(t=!0,!1):(o.add(n),!0):!0});return t?r:e}function mf(e,o){return e.some(t=>t?.type===o.type)?e:o.type===De?[o,...e]:[...e,o]}var hO={[De]:{max:3,takes:["Flex","Ticker"]},[_e]:{max:6,takes:["Flex","Prose","Logos","Divider"]}};function xO(e,o,t){if(!Ln(e))return!0;let r=hO[e];return t<r.max&&r.takes.includes(o)}function IO(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(!Ln(n?.type))continue;let s=n.props?.[kI];if(!Array.isArray(s)||!s.some(c=>c?.props?.id===r))continue;let l=hO[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 w9}from"efficient-easel/data";var gO="Footer",C9=[De,gO,_e],Dn=e=>{let o=e?.content;return Array.isArray(o)?o:[]},ba=e=>{let o=e?.zones;return o&&typeof o=="object"&&!Array.isArray(o)?o:null},Il=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0},bO=e=>is(e)?.ownerId??"";function yO(e){let o=Bn(Dn(e)),t=o.some(r=>r?.type===_e);return o.filter(r=>r?.type===De||r?.type===_e||r?.type===gO&&!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(w9(a)){let n=Il(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(bO(s))||(n.add(s),r(l),a=!0)}}return t}function PI(e,o){let t={},r={};for(let[a,n]of Object.entries(e??{}))(o.has(bO(a))?t:r)[a]=n;return{owned:t,rest:r}}function SO(e,o){if(!o)return e;let t=yO(o);if(!t.length)return e;let r=t.filter(l=>l.type===De),a=t.filter(l=>l.type!==De),n={...e,content:[...r,...Dn(e),...a]},{owned:s}=PI(ba(o),TI(t,ba(o)));return Object.keys(s).length&&(n.zones={...ba(e)??{},...s}),n}function EI(e,o){if(!o)return{page:e,chrome:null};let t=yO(o),r=new Set(t.map(Il).filter(w=>!!w)),a=[],n=[];for(let w of Dn(e)){let g=Il(w);g&&r.has(g)||Ln(w?.type)?n.push(w):a.push(w)}let s=new Map(n.map(w=>[Il(w),w])),l=new Set,c=Bn(Dn(o)).flatMap(w=>{let g=Il(w);if(!g||!r.has(g))return[w];let T=s.get(g);return T?(l.add(T),[T]):[]});for(let w of n)l.has(w)||c.some(g=>g?.type===w.type)||(c=w.type===De?[w,...c]:[...c,w]);c=Bn(c);let d=c.length===Dn(o).length&&c.every((w,g)=>w===Dn(o)[g]),f=ba(e),h=TI(c,f),{owned:u,rest:x}=PI(f,h),I=PI(ba(o),TI(t,ba(o))).owned,y={...o,content:d?o.content:[...c]},P=ba(o);if(P||Object.keys(u).length){let w={};for(let[g,T]of Object.entries(P??{}))g in I?g in u&&(w[g]=u[g]):w[g]=T;for(let[g,T]of Object.entries(u))g in w||(w[g]=T);y.zones=w,P&&v9(y.zones,P)&&(y.zones=P)}let v={...e,content:a};return f&&(Object.keys(x).length||!Object.keys(I).length?v.zones=x:delete v.zones),{page:v,chrome:y}}function v9(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 wO(e,o){return t=>e(t)||t!==void 0&&C9.includes(t)&&o()}var CO="SharedSection",k9=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,gl=e=>{let o=e?.content;return Array.isArray(o)?o:[]},bl=e=>{let o=e?.props?.id;return typeof o=="string"?o:void 0};function vO(e){if(e?.type!==CO)return null;let o=e.props?.section;return typeof o=="string"&&k9.test(o)?o.toLowerCase():null}function kO(e){let o=[];for(let t of gl(e)){let r=vO(t),a=bl(t);r&&a&&o.push({refId:a,section:r})}return o}function hf(e){let o=gl(e)[0];return o&&typeof o=="object"&&bl(o)?o:null}function T9(e,o){return{type:CO,props:{id:e,section:o}}}function TO(e,o){let t=new Map,r=new Set,a=!1,n=gl(e).map(s=>{let l=vO(s),c=bl(s);if(!l||!c||r.has(l))return s;let d=hf(o.get(l)),f=bl(d??void 0);return!d||!f||t.has(f)?s:(r.add(l),t.set(f,{section:l,refId:c,reference:s}),a=!0,d)});return{working:a?{...e,content:n}:e,held:t}}function PO(e,o,t){let r=new Map,a=!1,n=gl(e).map(s=>{let l=bl(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 f=gl(d).slice(1),h=hf(d);return r.set(c.section,h===s?d:{...d,content:[s,...f]}),a=!0,c.reference??T9(c.refId,c.section)});return{page:a?{...e,content:n}:e,docs:r}}var EO=null;function OI(e){EO=e}function jt(){return EO}var OO=null;function _I(e){OO=e}function xf(){return OO}var If=null;function RI(e){If=e}function _O(){return!!(If&&If.state().lockHolder)}function ya(){return If!==null}function LI(e){return!!(e?.publish&&e.liveState)}function P9(e,o){if(!LI(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 E9(e,o){return async(t,r)=>{try{await Kw()}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"?Zi({state:"live",changes:[]}):Bt(0),{version:r??null}}}function FI(e,o,t){let r=o?{siteId:o}:void 0;return{resolve:a=>e.load({slug:a,...r}).then(n=>(n&&ff(n.id,n.live),n)),saveLayout:(a,n,s,l)=>e.save(a,{layout:n},{version:s,clientId:l??""}).then(c=>(uf(a,c.live),Bt(),c)),rereadVersion:e.version?a=>e.version(a):void 0,publish:LI(t)?E9(t,r):e.publish?(a,n)=>e.publish(a,n?{version:n}:void 0).then(s=>(pf(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 O9(e,o,t,r,a=!1){let n=null,s=new Set,l=!1,c=new Map,d=new Map,f=new Map,h=new Map,u={docId:null,lockHolder:null,conflict:null,saveFailed:!1,unpublished:!1,loadFailed:!1,sections:[]},x=new Set,I=()=>{if(!n)return!1;let E=cO(n.id);return E==="changed"||E==="never"||E===void 0&&l},y=E=>{u={...u,...E,docId:n?.id??null,unpublished:I(),sections:[...f.values()]};for(let R of x)R()},P=(E,R,N)=>{R?f.set(E,{section:E,title:c.get(E)?.title??"",problem:R,holder:N}):f.delete(E)},v=E=>E&&typeof E=="object"&&!Array.isArray(E)?E:{},w=E=>s.has(E),g=()=>new Map([...c].map(([E,R])=>[E,R.layout])),T=()=>`SharedSection-${typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2)}`,C=(E,R,N,b)=>{let _=v(R);c.set(E,{layout:_,version:N,savedJson:JSON.stringify(_),title:b})},F={state:()=>u,subscribe:E=>(x.add(E),()=>{x.delete(E)})},k={sectionOf:E=>d.get(E)?.section??null,heldElsewhere:E=>{let R=d.get(E)?.section;return!!(R&&f.get(R)?.problem==="lock")},adopt:(E,R)=>{C(R.id,R.layout,R.layout_updated_at,R.title),d.set(E,{section:R.id,refId:T()}),h.set(R.id,R.used_on),y({})},place:E=>{if([...d.values()].some(b=>b.section===E.id))return null;let R=hf(v(E.layout)),N=typeof R?.props?.id=="string"?R.props.id:null;return!R||!N||!R.type?null:(C(E.id,E.layout,E.layout_updated_at,E.title),d.set(N,{section:E.id,refId:T()}),h.set(E.id,E.used_on),R)},usedOn:E=>h.get(E)??null,learn:E=>{for(let R of E){h.set(R.id,R.used_on);let N=c.get(R.id);N&&(N.title=R.title);let b=f.get(R.id);b&&f.set(R.id,{...b,title:R.title})}y({})}},L=async(E,R)=>{for(let[N,b]of E){let _=c.get(N),A=JSON.stringify(b);if(!(!_||A===_.savedJson||f.get(N)?.problem==="lock"))try{let H=await e.save(N,{layout:b},{version:_.version,clientId:R??""});uf(N,H.live),_.layout=b,_.version=H.version,_.savedJson=A,P(N,null)}catch(H){Nn(H,"changed-elsewhere")?P(N,"conflict"):Nn(H,"lock-taken")?P(N,"lock",H.holder??void 0):P(N,"save")}}E.size&&Bt(),y({})};return{resolve:async E=>{if(RI(E===et?null:F),OI(E===et?null:k),c=new Map,d=new Map,f=new Map,h=new Map,E===et)return t.resolve(E);let R=!1,[N,b]=await Promise.all([t.resolve(E),e.load({slug:et,...o}).catch(()=>(R=!0,null))]);if(b&&!Ss(N?.layout)){ff(b.id,b.live);let $=v(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 _=v(N.layout),A=kO(_),H=await Promise.all(A.map($=>e.load({id:$.section,...o}).catch(()=>null)));A.forEach(($,Te)=>{let ge=H[Te];ge?(ff(ge.id,ge.live),C($.section,ge.layout,ge.version,"")):(c.delete($.section),f.set($.section,{section:$.section,title:"",problem:"load"}))});let Z=TO(_,g());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=SO(Z.working,n.layout);return n.savedJson=JSON.stringify(EI(q,n.layout).chrome),s.add(N.id),y({conflict:null,saveFailed:!1,loadFailed:!1}),{...N,layout:q}},saveLayout:async(E,R,N,b)=>{if(!w(E))return t.saveLayout(E,R,N,b);let _=n,A=_?EI(R,_.layout):{page:R,chrome:null},H=PO(A.page,d,g()),Z=await t.saveLayout(E,H.page,N,b);if(await L(H.docs,b),!_)return Z;let q=JSON.stringify(A.chrome);if(!A.chrome||q===_.savedJson||u.lockHolder)return Z;try{let $=await e.save(_.id,{layout:A.chrome},{version:_.version,clientId:b??""});uf(_.id,$.live),Bt(),_.layout=A.chrome,_.version=$.version,_.savedJson=q,l=!0,y({conflict:null,saveFailed:!1})}catch($){Nn($,"changed-elsewhere")?y({conflict:$.conflict??{savedBy:"",savedByYou:!1,secondsAgo:0}}):Nn($,"lock-taken")?y({lockHolder:$.holder??{name:"",secondsSinceSeen:0,secondsSinceHeld:0}}):y({saveFailed:!0})}return Z},publish:t.publish?async(E,R)=>{let N=await t.publish(E,R),b=n;if(b&&w(E)&&!a&&e.publish&&I()&&!u.lockHolder){let _=await e.publish(b.id,b.version?{version:b.version}:void 0);pf(b.id,_.live),_.version!==null&&(b.version=_.version),l=!1,y({})}if(w(E)&&!a&&e.publish)for(let[_,A]of c){if(f.get(_)?.problem==="lock")continue;let H=await e.publish(_,A.version?{version:A.version}:void 0);pf(_,H.live),H.version!==null&&(A.version=H.version)}return N}:void 0,lock:r?{claim:async(E,R,N)=>{let b=await r.claim(E,R,N);if(!w(E))return b;let _=n;if(_)try{await r.claim(_.id,R,!1),u.lockHolder&&y({lockHolder:null})}catch(A){Nn(A,"lock-taken")&&y({lockHolder:A.holder??{name:"",secondsSinceSeen:0,secondsSinceHeld:0}})}for(let A of c.keys())try{await r.claim(A,R,!1),f.get(A)?.problem==="lock"&&P(A,null)}catch(H){Nn(H,"lock-taken")&&P(A,"lock",H.holder??void 0)}return c.size&&y({}),b},release:async(E,R)=>{if(await r.release(E,R),!w(E))return;let N=n;N&&!u.lockHolder&&await r.release(N.id,R).catch(()=>{});for(let b of c.keys())f.get(b)?.problem!=="lock"&&await r.release(b,R).catch(()=>{})}}:void 0,pinnedChrome:F}}function gf(e){let o=(t,r,a)=>e.save(t,r.layout?{...r,layout:eS(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 mPe(e,o,t){return e.update(o,oS(t))}function hPe(e,o=We(),t=SI(),r={}){let a=RO(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,f=LI(o.site)?o.site:void 0,h=gf(o.pages),u=FI(h,e,f),x=d?O9(h,n,u,o.lock,!!f):null;return{capabilities:{canPublish:!!f||!!o.pages.publish,hasSiteSettings:a,hasSiteTheme:!!o.theme,placeholderFrames:!1,mediaEditing:!0,pageCreationInAdminForm:!o.pages.create,canDeletePagesInline:!!o.pages.remove,hasEditLock:!!o.lock,hasEditGuard:!0,hasPinnedChrome:c,editsPinnedInPlace:d,explainsSiteSettings:!1,hasSiteRecord:s,canEditSiteRecord:s&&!!l,hasPreviewLink:a||!!o.preview,hasCatalog:a&&t.commerce,hasForms:a&&t.service,hasBlog:!!o.blog&&t.service,offersCommerce:t.commerce,offersService:t.service},...u,...AO(u.resolve),lock:o.lock,...x,site:s?()=>o.site.get(n):void 0,siteLiveState:f?()=>f.liveState(n):void 0,siteVersions:P9(f,n),updateSite:s&&l?I=>l(I,n):void 0,previewHref:o.preview?I=>o.preview.href(I):void 0}}function xPe(e,o=We(),t=SI()){let r=RO(o),a=o.templates,n=a?gf(a.pages(e)):{list:()=>Promise.reject(new Error(AI)),load:()=>Promise.reject(new Error(AI)),save:()=>Promise.reject(new Error(AI))};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},...FI(n,void 0),...AO(FI(n,void 0).resolve),publish:void 0,templateName:a?()=>a.get(e).then(s=>s.name):void 0}}function AO(e){return{resolve:o=>(RI(null),OI(null),e(o))}}var AI="This editor's backend has no website templates.";function W9(e,o,t){let r=H9(e,void 0,o);return t?.(r)??r}function FO({node:e,currentSlug:o,siteId:t,tokenRef:r,runAuthed:a,onNotify:n}){let[s,l]=yl(!1),[c,d]=yl(null),f=M9(),h=L9(k=>k.config.components),[u,x]=yl(!1),[I,y]=yl(null),P=A9(null),[v,w]=yl(null),g=R9(async()=>{if(f.usesBridgedToken&&!r.current){x(!0);return}try{d(await We(f).pages.list(t?{siteId:t}:void 0))}catch{x(!0)}},[r,t,f]),T=()=>{if(s){l(!1);return}let k=P.current?.getBoundingClientRect();k&&w({top:k.bottom+6,right:Math.max(8,window.innerWidth-k.right)}),d(null),x(!1),g(),l(!0)},C=(c??[]).filter(k=>k.slug!==o),F=async k=>{if(I)return;y(k.slug);let L=W9(e,h,f.documentHooks?.storedNode),E=await a(()=>G9(We(f).pages,k,L));y(null),l(!1),n?.(E?i("Duplicated to \u201C{name}\u201D",{name:k.label}):i("Couldn\u2019t duplicate the section \u2014 please retry"),E?"success":"error")};return BI(_9,{children:[ut("span",{"data-menu-toggle":!0,style:{display:"contents"},children:ut(F9,{buttonRef:P,label:i("Duplicate to another page"),hasPopup:"menu",expanded:s,onClick:T,children:ut(N9,{size:15})})}),s&&v&&ut(B9,{portal:!0,style:{top:v.top,right:v.right},onClose:()=>l(!1),children:BI("div",{role:"menu","aria-label":i("Duplicate to page"),children:[ut(bf,{children:i("Duplicate to page")}),u?ut(bf,{children:i("Couldn\u2019t load pages")}):c===null?ut(bf,{children:i("Loading\u2026")}):C.length===0?ut(bf,{children:i("No other pages")}):C.map(k=>BI(D9,{role:"menuitem",disabled:I!==null,onClick:()=>{F(k)},children:[ut("span",{className:"min-w-0 flex-1 truncate",children:k.label}),I===k.slug?ut("span",{className:"shrink-0 text-xs",children:i("Copying\u2026")}):k.draft&&ut("span",{className:"shrink-0 text-xs",children:i("draft")})]},k.id))]})})]})}async function G9(e,o,t){let r=gf(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===z9);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 TV}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSectionOps as PV}from"efficient-easel/screen/lib/document/use-section-ops";import{SELECTION_MODE as j0e,isSelectionMode as zI}from"efficient-easel/screen/lib/screen-parts";import{usePreviewParts as EV}from"efficient-easel/draw/client";import{jsx as Sl,jsxs as U9}from"react/jsx-runtime";import{SettingsDrill as $9}from"efficient-easel/panel";import{UiIcon as j9}from"efficient-easel/draw/client";var K9="Not shown on the page";function q9({part:e,onOpen:o}){return Sl($9,{name:i(e.label),preview:e.offPage?i(K9):e.preview||i("Empty"),offPage:e.offPage,status:e.hidden?Sl("span",{className:"sf-entry-eye",role:"img","aria-label":i("Hidden on the page"),children:Sl(j9,{name:"eye-off",size:14})}):void 0,onOpen:()=>o(e.key)})}function DI(e){return e.filter(o=>!o.identifier)}function LO({parts:e,onOpen:o,heading:t=!0}){let r=DI(e);return r.length?U9("div",{className:"sf-entries",children:[t?Sl("h3",{className:"sf-entries-head",children:i("Text")}):null,r.map(a=>Sl(q9,{part:a,onOpen:o},a.key))]}):null}import{HEADER_TYPE as OV,ROOT_ZONE as ZO}from"efficient-easel/draw";import{HEADER_TYPE as ko,FOOTER_TYPE as Ne,newNodeId as V9}from"efficient-easel/draw";function yf(){return{type:ko,props:{id:V9(ko)}}}var BO=[{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"}],Y9=BO.filter(e=>e.type!=="FooterLogo"&&e.type!=="FooterGroup"),X9="FooterGroup",DO="blocks";function NO(e){return e===Ne?BO:e===X9?Y9:null}function Sf(){let e=(o,t)=>({type:o,props:{id:`${o}-${crypto.randomUUID()}`,...t}});return[e("FooterLogo",{widthPct:100,align:"left",tagline:""}),e("FooterEmailSignup",{...yC}),e("FooterPayment",{...SC})]}function NI(e){switch(e?.type){case De:case _e:return i("On every page");case ko:case Ne:return i("On every page \xB7 old style");default:return null}}var MO=()=>null,HO=()=>i("Changed on every page");function wf(e,o){let t=QS(e,o);if(t)return t;let r=IO(e,o);if(!r)return null;let a=r.group===De;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 vf,Fragment as lV,jsxs as iV}from"react/jsx-runtime";import{useState as cV}from"react";import{createNode as dV,newId as fV}from"efficient-easel/data";import{useEasel as uV}from"efficient-easel/easel";import{Banner as pV,Button as MI}from"efficient-shell/ui";import{useScreenDocument as mV}from"efficient-easel/screen/components/ScreenDocumentContext";import{isNodeList as Z9}from"efficient-easel/data";var Cf="Flex",J9={FooterMenu:"MenuBlock",FooterEmailSignup:"EmailFormBlock",FooterSocial:"SocialLogosBlock",FooterPayment:"PaymentLogosBlock"},Q9=e=>{let{id:o,...t}=e;return t},zO=e=>typeof e=="string"?e:"",WO={sm:12,md:13,lg:15},eV="md",GO=1.5,oV={size:13,lineHeight:GO,width:280},tV=14,rV=40,aV=e=>e==="center"||e==="right"?e:"left";function nV(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 sV(e,o,t){let r=t(e,Q9(o));if(Array.isArray(o.template))return{...r,props:{...r.props,template:UO(o.template,String(r.props.id))}};if(o.template!==void 0)return r;let a=jy(e,r.props);return a===r.props?r:{...r,props:a}}function UO(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))Z9(s)&&(a[n]=UO(s,o,t));return{...r,props:a}})}function $O(e,o){let t=e.props??{},r=J9[e.type];if(r)return[sV(r,t,o)];switch(e.type){case"FooterLogo":{let a=aV(t.align),n=o("LogoBlock",{...t.reverse?{reverse:t.reverse}:{},...typeof t.customColor=="string"&&t.customColor?{customColor:t.customColor}:{},heightPx:Math.round(ny*((U(t.widthPct)??100)/100)),href:"/",align:a,...nV(t)}),s=zO(t.tagline).trim();return s?[n,o("Text",{text:s,tone:"dim",align:a,_partStyles:{text:{...oV}}})]:[n]}case"FooterText":{let a=typeof t.size=="string"&&t.size in WO?t.size:eV;return[o("Text",{text:zO(t.text),tone:typeof t.tone=="string"?t.tone:"default",_partStyles:{text:{size:WO[a],lineHeight:GO}}})]}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(Cf,{direction:t.direction==="horizontal"?"row":"column",gap:Qr("FooterGroup",t.gap),align:t.align==="center"||t.align==="end"||t.align==="stretch"?t.align:"start",...os,content:a.flatMap(n=>$O(n,o))})]}default:return[]}}function wl(e,o,t){let r=e&&Array.isArray(e.props?.blocks)?e.props.blocks:[],a=d=>o(Cf,{direction:"row",wrap:!0,share:"equal",gap:rV,content:d}),n=[],s=[];for(let d of r){let f=$O(d,o);if(d.type==="FooterDivider"){s.length&&n.push(a(s)),s=[],n.push(...f);continue}f.length<=1?s.push(...f):s.push(o(Cf,{direction:"column",gap:tV,align:"stretch",...os,content:f}))}(s.length||!n.length)&&n.push(a(s));let l=o(Cf,{direction:"column",content:[o("LegalLineBlock")]}),c=mO(_e,t,[...n,l]);return{...c,props:{...c.props,...e?.props?.width==="full"?{fullWidth:!0}:{}}}}function jO(){let{appState:e,dispatch:o,config:t}=uV(f=>f),{readOnly:r}=mV(),[a,n]=cV(!1),s=e.data.content;if(r||s.some(f=>f.type===_e))return null;let l=s.find(f=>f.type===Ne)??null,c=(f,h)=>dV(t,f,h),d=()=>{let f=wl(l,c,fV(_e));o({type:"setData",data:h=>({...h,content:[...mf(h.content,f)]}),recordHistory:!0}),n(!1)};return vf(pV,{tone:"info",title:i("This footer uses the old layout"),action:a?iV(lV,{children:[vf(MI,{variant:"primary",size:"sm",onClick:d,children:i("Switch now")}),vf(MI,{variant:"secondary",size:"sm",onClick:()=>n(!1),children:i("Cancel")})]}):vf(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 hV}from"react/jsx-runtime";import{InspectorUpLevel as KO}from"efficient-easel/chrome";function qO({nodeId:e,part:o,sectionName:t,onUpToSection:r}){let{select:a}=Fd(),n=Rn(e,o,"picture");return hV("div",{children:[o!=="media"?HI(KO,{inline:!0,name:i(kn.media),onSelect:()=>a(tl(e,"media"))}):HI(KO,{inline:!0,name:i(t),onSelect:r}),HI(ct,{part:o,motion:n})]})}import{SettingsSwitch as _V}from"efficient-easel/panel";var QO={kind:"header"},GI={kind:"website"},e1={kind:"website",tab:wn,revealPageGroup:!0},o1={kind:"chat"},t1={kind:"social"},Cl="Part";function RV(e){return i("Part of {name}",{name:i(e)})}function AV(e,o,t){let r=e.describeNode(o);return{name:t,kindLabel:r?RV(r.label):i(Cl)}}function FV(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 r1({what:e}){let o=FV(e);return Sa("div",{className:"sf-note",children:[xe("p",{children:xe("strong",{children:o.title})}),Sa("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 WI(e){let o=ol[e];return{name:kn[e],kindLabel:Cl,icon:o,head:(t,r)=>{if(t.kind!==o)return null;let a=r.describeNode(t.nodeId);if(!a)return null;let n=JO({name:i(Bd(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(qO,{nodeId:t.nodeId,part:e,sectionName:r.describeNode(t.nodeId)?.label??"Hero",onUpToSection:()=>r.onSelectNode(t.nodeId)}):null}}var LV={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(vd,{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(w0,{})},social:{name:"Social links",kindLabel:"Site settings",icon:"social",render:()=>xe(E0,{unavailable:xe(r1,{what:"Social link"})})},ticker:{name:Js,kindLabel:Cl,icon:"ticker",head:(e,o)=>e.kind==="ticker"?AV(o,e.heroId,i(Js)):null,render:e=>xe(FE,{heroId:e.kind==="ticker"?e.heroId:""})},heroMedia:WI("media"),heroImage:WI("image"),heroImage2:WI("image2"),part:{name:Cl,kindLabel:Cl,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}=nt(e.propKey),n=a?dn(t.fields[r],a):t.fields[r],s=nf(t.type),l=s?Ws(s,e.propKey):null,c=s&&l?s[l].label:GE[e.propKey],d=c?i(c):kk(i(lh(Uc(n??{},r))),a),f=JO({name:d,tier:"part",of:i(t.label)},{partOf:({name:h})=>i("Part of {name}",{name:h})});return{name:f.name,kindLabel:f.kind}},render:(e,o)=>e.kind==="part"?xe(iO,{nodeId:e.nodeId,propKey:e.propKey,onBack:()=>o.onSelectNode(e.nodeId),onEditStyle:o.onOpenSiteStyles}):null}},BV=new Set(["header","website","chat"]);function DV(e,o){if(e==="selection")return null;let t=LV[e];return BV.has(e)&&!o.hasSiteSettings?{...t,kindLabel:"Not part of a template",render:()=>xe(r1,{what:t.name})}:t}function a1({mode:e,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onOpenPageStyles:r,onSelectNode:a,hideNodeActions:n=!1,onNotify:s,onHidePanel:l}){let{capabilities:c,tokenRef:d,notifyParent:f,currentSlug:h,siteId:u,runAuthed:x,readOnly:I,navigate:y}=TV(),{rows:P}=Ys(),v=P?.find(se=>se.slug===h)??null,w=gV(),g=Object.keys(w.fields).some(se=>!se.startsWith("_")&&!qs.includes(se)),{websiteName:T}=ce(),C=PV({readOnly:I}),{select:F}=EV(),{selectedItem:k,getItemById:L,getSelectorForId:E,config:R,appState:N}=IV(se=>se),b=vV(R,k?{type:k.type,props:k.props}:null),_=k?Ak(b??R.components[k.type]?.fields,k.props):[],A=se=>R.components[se]?.label??se,H=k?E(k.props.id):void 0,Z=DV(e.kind,c),q=kV(),$={capabilities:c,tokenRef:d,hostPanels:q.chrome?.panels,describeNode:se=>{let he=L(se);if(!he)return null;let Ae=R.components[he.type];return{type:he.type,label:Ae?.label??he.type,fields:Ae?.fields??{},props:he.props??{}}},siteId:u,websiteName:T??null,notifyParent:f,onNotify:s,onOpenWebsiteSettings:o,onOpenSiteStyles:t,onSelectNode:a},Te=Z?.head?.(e,$)??null,ge=x0({kind:v?.kind,pageName:v?.label}),qe=Te?.name??(Z?i(Z.name):k?i(A(k.type)):ge.name),Ce=Te?.kindLabel??(Z?i(Z.kindLabel):k?H&&H.zone!==ZO?i("Block"):i("Section"):ge.kindLabel),ve=Z?Z.icon:k?k.type:"page",me=Z?null:k?R.components[k.type]?.fields??null:R.root?.fields??null,Se=me?oE(me):2,je=zI(e)&&k?pl(k.type):null,Ye=!!k&&!!H&&H.zone===ZO&&k.type!==Ne&&k.type!==OV,ne=wf(N?.data,k),Oe=()=>{ne||H&&C.duplicateComponent(H.zone,H.index)},uo=()=>{H&&(C.removeComponent(H.zone,H.index),C.select(null))},Re=k?R.components[k.type]?.defaultProps?.previewHover:void 0,Me=zI(e)&&!!k&&!!H&&Re!==void 0,go=Me&&k.props.previewHover===!0,qo=()=>{!k||!H||C.replaceComponent(H.zone,H.index,{...k,props:{...k.props,previewHover:!go}})},[bo,M]=xV(Ix);return Sa("div",{className:`es-sidepanel es-sidepanel--right sf-panel sf-panel--right${bo||!(!Z&&k)?"":" sf-hints-folded"}`,children:[xe(SV,{icon:xe(ma,{type:ve,size:15}),name:qe,kind:Ce,actions:!n&&zI(e)&&k&&k.type!==Ne?Sa(VO,{children:[xe(YO,{label:i("Duplicate section"),title:ne??void 0,disabled:ne!==null,onClick:Oe,children:xe(wV,{size:15})}),Ye&&c.hasSiteSettings&&xe(FO,{node:k,currentSlug:h,siteId:u??void 0,tokenRef:d,runAuthed:x,onNotify:s}),xe(YO,{label:i("Remove section"),danger:!0,onClick:uo,children:xe(CV,{size:15})}),l?xe(XO,{side:"right",onHide:l,divider:!0}):null]}):l?xe(XO,{side:"right",onHide:l}):void 0}),Me&&Sa("div",{className:"sf-preview-pin",children:[Sa("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(_V,{checked:go,onChange:qo,ariaLabel:i("Preview hover state")})]}),xe(wv,{tier:Se,children:xe("div",{className:"sf-insp-body es-insp-body sf-scroll",children:Z?Z.render(e,$):k?Sa(VO,{children:[k.type===Ne&&c.hasSiteSettings&&xe(jO,{}),xe(Ew,{children:xe(ct,{entries:xe(LO,{parts:_,heading:!1,onOpen:se=>F(Wc(k.props.id,se))}),entryCount:DI(_).length})}),je&&xe(df,{source:je,slug:An(k?.props),menuId:rf(k?.props)}),xe(gx,{shown:bo,onChange:M})]}):g?xe(ct,{omit:qs}):xe(yV,{variant:"none",icon:!1,message:i("Select a section or block to edit it."),children:r&&xe(bV,{variant:"secondary",onClick:r,children:i("This page")})})})})]})}import{jsx as p,jsxs as O,Fragment as c1}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)"},UI="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 p("div",{style:{width:e,height:o,borderRadius:r,background:Qe[t],flex:"none",...a}})}var NV={Hero:"hero",HeroSingle:"herosingle",IntroBleed:"intro",Collections:"collections",AlloyWheelsListing:"wheelslisting",CatalogFilterBar:"catalogfilterbar",ProductGrid:"productgrid",FitmentFinder:"fitmentfinder",Gallery:"gallery",GalleryB:"gallerygrid",SpecStrip:"specstrip",ProductHero:"producthero",SpecTable:"spectable",ProcessSteps:"processsteps",DetailRows:"detailrows",FitmentTable:"fitmenttable",CompatibleTyres:"compatibletyres",TyreSizes:"tyresizes",TyreFitment:"tyrefitment",EuTyreLabel:"eutyrelabel",RelatedProducts:"productgrid",BundleOffer:"bundleoffer",OrderSummary:"ordersummary",DeliveryOptions:"deliveryoptions",PaymentBadges:"paymentbadges",CheckoutCTA:"checkoutcta",Manifesto:"manifesto",ParagraphsA:"paragraphs",Prose:"prose",StatsParagraph:"statsparagraph",Chart:"chart",Mockup:"mockup",Footprint:"footprint",Timeline:"timeline",TimelineTrack:"timelinetrack",TitleWithButtons:"titlewithbuttons",Split:"split",Cards:"cards",FAQ:"faq",Testimonials:"testimonials",Masthead:"masthead",Breadcrumb:"breadcrumb",CategoryBar:"categorybar",FeaturedCover:"featuredcover",LongRead:"longread",Series:"series",Subscribe:"subscribe",SubscribeBlogs:"subscribe",Events:"events",DocMasthead:"docmasthead",DocTabs:"doctabs",DocBody:"docbody",DocMetaCards:"docmetacards",Banner:"banner",Stats:"stats",KeyFeatures:"keyfeatures",Logos:"logos",Ticker:"ticker",Countdown:"countdown",Reviews:"reviews",SubmitBuild:"submitbuild",ReviewForm:"reviewform",Form:"form",AppointmentBooking:"appointmentbooking",ContactRouting:"contact",ContactLocations:"contactlocations",CityPictures:"citypictures",CityMaps:"citymaps",Header:"header",Footer:"footer",SectionHeader:"sectionheader",Grid:"grid",Flex:"blanksection",Spacer:"spacer",Divider:"divider",CustomHTML:"customhtml",Heading:"heading",Text:"text",ImageBlock:"image",ButtonBlock:"button",MenuBlock:"menu",EmailFormBlock:"emailform",SocialLogosBlock:"sociallogos",PaymentLogosBlock:"paymentlogos",LegalLineBlock:"legalline",SearchBlock:"search",CartBlock:"cart",CountrySwitchBlock:"countryswitch"},j={position:"absolute",inset:0},m={ink:"var(--sf-thumb-ink)",ink2:"var(--sf-thumb-ink-2)",inkSoft:"var(--sf-thumb-ink-soft)",inkSoft2:"var(--sf-thumb-ink-soft-2)",paper:"var(--sf-thumb-paper)",paper2:"var(--sf-thumb-paper-2)",warm:"var(--sf-thumb-warm)",rust:"var(--sf-thumb-rust)",onInk:"var(--sf-thumb-on-ink)",text:"var(--sf-thumb-scene-text)",muted:"var(--sf-thumb-scene-muted)",rule:"var(--sf-thumb-scene-rule)",mark1:"var(--sf-thumb-mark-1)",mark2:"var(--sf-thumb-mark-2)",card:"var(--sf-thumb-card)",scrim:"var(--sf-thumb-scrim)"},Fe=(e,o,t=160)=>({background:`linear-gradient(${t}deg,${e},${o})`});function qt({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 O("span",{style:{position:"absolute",display:"block",width:e,height:e,...o},children:[p("span",{style:r("8% 26% 30% 6%",m.mark1)}),p("span",{style:r("26% 6% 8% 30%",m.mark2,"multiply")})]})}function Tf({children:e}){return p("span",{style:{fontSize:"4.64cqw",fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:m.muted},children:e})}function n1({over:e,overTone:o,head:t,headSize:r=11.5,cta:a,ctaBg:n,ctaFg:s,tone:l}){return O(c1,{children:[e&&p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:o},children:e}),p("span",{style:{fontSize:r,lineHeight:1.15,fontWeight:700,maxWidth:"78%",color:l},children:t}),a&&p("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 $I({name:e,price:o}){return O("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[p("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",...Fe(m.paper,m.paper2,150)},children:p(qt,{size:34,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),p("span",{style:{fontSize:"3.65cqw",fontWeight:600,color:m.text},children:e}),p("span",{style:{fontSize:"3.65cqw",color:m.muted},children:o})]})}function Kt({k:e,v:o,ok:t}){return O("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,padding:"3.5px 2px",borderBottom:`1px solid ${m.rule}`,fontSize:"3.98cqw",color:m.muted},children:[p("span",{children:e}),O("span",{style:{display:"flex",gap:6,alignItems:"center"},children:[p("b",{style:{color:m.text,fontWeight:700},children:o}),t&&p("span",{style:{color:m.rust,fontWeight:700},children:"\u2713"})]})]})}function Pe({title:e,children:o}){return O("div",{style:{...j,background:m.card,padding:"9px 10px",display:"flex",flexDirection:"column",gap:6},children:[p(Tf,{children:e}),o]})}function s1({size:e=14}){return p("span",{style:{width:e,height:e,borderRadius:"50%",flex:"none",display:"block",background:`linear-gradient(150deg,${m.mark1},${m.mark2})`}})}function jI({filled:e=5,size:o=6}){return O("span",{style:{fontSize:o,letterSpacing:"0.06em",color:m.rust,lineHeight:1},children:["\u2605".repeat(e),p("span",{style:{color:m.mark1},children:"\u2605".repeat(5-e)})]})}function vl({n:e,label:o,tone:t=m.text}){return O("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[p("b",{style:{fontSize:"8.16cqw",lineHeight:1,color:t},children:e}),p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",opacity:.62,color:t},children:o})]})}function fo({children:e,w:o}){return p("span",{style:{fontSize:"3.98cqw",lineHeight:1.45,color:m.muted,width:o,display:"block"},children:e})}function kf({label:e,w:o="100%",filled:t}){return O("div",{style:{width:o,display:"flex",flexDirection:"column",gap:2},children:[p("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:m.muted},children:e}),p("span",{style:{height:9,borderRadius:3,border:`1px solid ${m.rule}`,background:t?m.paper:m.card}})]})}function l1({children:e}){return p("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:m.text,color:m.onInk},children:e})}var MV={wheelslisting:p(Pe,{title:"All wheels",children:p("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])=>O("div",{style:{display:"flex",alignItems:"center",gap:6},children:[p("span",{style:{width:20,height:15,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",...Fe(m.paper,m.paper2,150)},children:p(qt,{size:12,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),p("b",{style:{flex:1,fontSize:"4.31cqw",color:m.text},children:e}),p("span",{style:{fontSize:"3.65cqw",color:m.muted},children:o}),p("b",{style:{fontSize:"4.31cqw",color:m.text,width:26,textAlign:"right"},children:t})]},e))})}),catalogfilterbar:O("div",{style:{...j,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[O("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[["20 inch","6\xD7139.7","Black"].map(e=>O("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"4px 7px",borderRadius:99,background:m.text,color:m.onInk,display:"flex",gap:4,alignItems:"center"},children:[e,p("span",{style:{opacity:.6},children:"\u2715"})]},e)),p("span",{style:{fontSize:"3.65cqw",color:m.rust,fontWeight:700},children:"Clear"})]}),O("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"128 results"}),p("span",{style:{fontSize:"3.65cqw",color:m.muted,border:`1px solid ${m.rule}`,borderRadius:3,padding:"3px 6px"},children:"Sort: Price \u25BE"})]})]}),fitmentfinder:O("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center",...Fe(m.ink,m.inkSoft)},children:[p("span",{style:{fontSize:"5.31cqw",fontWeight:700,color:m.onInk},children:"Will it fit your rig?"}),O("div",{style:{display:"flex",gap:4},children:[["2021","Toyota","Hilux"].map(e=>O("span",{style:{flex:1,fontSize:"3.65cqw",color:m.text,background:m.card,borderRadius:3,padding:"5px 6px",display:"flex",justifyContent:"space-between"},children:[e," ",p("span",{style:{color:m.muted},children:"\u25BE"})]},e)),p("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.08em",background:m.warm,color:m.ink,borderRadius:3,padding:"5px 7px"},children:"GO"})]})]}),compatibletyres:p(Pe,{title:"Tyres that suit",children:p("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])=>O("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[p("div",{style:{flex:1,minHeight:0,borderRadius:3,position:"relative",overflow:"hidden",background:m.ink},children:p("span",{style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%,-50%)",width:26,height:26,borderRadius:"50%",border:`5px solid ${m.mark2}`,boxSizing:"border-box"}})}),p("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:m.text,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:e}),p("span",{style:{fontSize:"3.32cqw",color:m.muted},children:o})]},e))})}),tyresizes:p(Pe,{title:"Available sizes",children:p("div",{style:{flex:1,display:"flex",flexWrap:"wrap",gap:4,alignContent:"center"},children:["265/65R17","285/70R17","265/60R18","275/55R20"].map((e,o)=>p("span",{style:{fontSize:"3.65cqw",fontWeight:600,padding:"5px 7px",borderRadius:3,border:`1px solid ${o===0?m.rust:m.rule}`,color:o===0?m.rust:m.text,background:o===0?m.paper:m.card},children:e},e))})}),tyrefitment:O(Pe,{title:"Will it fit your car?",children:[p("div",{style:{display:"flex",gap:3},children:["Make","Model","Year","Trim"].map(e=>O("span",{style:{flex:1,minWidth:0,fontSize:"3.32cqw",color:m.muted,background:m.paper,border:`1px solid ${m.rule}`,borderRadius:3,padding:"4px 5px",display:"flex",justifyContent:"space-between",gap:2,overflow:"hidden",whiteSpace:"nowrap"},children:[e," ",p("span",{style:{color:m.muted},children:"\u25BE"})]},e))}),p("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])=>O("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:6,borderTop:`1px solid ${m.rule}`,paddingTop:3},children:[p("span",{style:{fontSize:"3.32cqw",fontWeight:600,color:m.text},children:e}),p("span",{style:{fontSize:"3.32cqw",fontWeight:t?700:400,letterSpacing:"0.06em",color:t?m.warm:m.muted},children:o})]},e))})]}),eutyrelabel:O("div",{style:{...j,background:m.card,padding:"9px 11px",display:"flex",gap:8,alignItems:"center"},children:[p("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1.5},children:[["A","42%"],["B","56%"],["C","70%"],["D","84%"]].map(([e,o],t)=>O("div",{style:{display:"flex",alignItems:"center",gap:3},children:[p("span",{style:{width:o,height:6,borderRadius:"0 2px 2px 0",background:t===1?m.rust:m.mark1}}),p("span",{style:{fontSize:"3.32cqw",fontWeight:700,color:t===1?m.rust:m.muted},children:e})]},e))}),O("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:3,alignItems:"center"},children:[p("b",{style:{fontSize:"6.63cqw",lineHeight:1,color:m.text},children:"72"}),p("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",color:m.muted},children:"dB"})]})]}),bundleoffer:O("div",{style:{...j,background:m.paper,padding:"9px 11px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[p(Tf,{children:"Buy it with"}),O("div",{style:{display:"flex",alignItems:"center",gap:5},children:[[0,1].map(e=>p("span",{style:{width:26,height:22,borderRadius:3,flex:"none",position:"relative",overflow:"hidden",background:m.card},children:p(qt,{size:17,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})},e)),p("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:m.muted},children:"+"}),O("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:1},children:[p("span",{style:{fontSize:"3.65cqw",color:m.muted,textDecoration:"line-through"},children:"$1,024"}),p("b",{style:{fontSize:"6.02cqw",color:m.rust,lineHeight:1},children:"$899"})]})]})]}),checkoutcta:O("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,...Fe(m.ink,m.ink2)},children:[O("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",color:m.warm,fontWeight:700},children:"READY TO ORDER"}),p("b",{style:{fontSize:"6.63cqw",color:m.onInk,lineHeight:1},children:"$1,956"}),p("span",{style:{fontSize:"3.65cqw",color:m.onInk,opacity:.65},children:"4 items \xB7 fitted free"})]}),p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"6px 10px",borderRadius:2,background:m.warm,color:m.ink,flex:"none"},children:"CHECKOUT"})]}),contact:p(Pe,{title:"Who do you need?",children:p("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])=>O("div",{style:{display:"flex",alignItems:"center",gap:5},children:[p("b",{style:{flex:1,fontSize:"4.31cqw",color:m.text},children:e}),p("span",{style:{fontSize:"3.65cqw",color:m.muted},children:o}),p("span",{style:{fontSize:"4.64cqw",color:m.rust,lineHeight:1},children:"\u203A"})]},e))})}),contactlocations:p(Pe,{title:"Find us",children:p("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])=>O("div",{style:{border:`1px solid ${m.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[p("b",{style:{fontSize:"4.31cqw",color:m.text},children:e}),p("span",{style:{fontSize:"3.32cqw",color:m.muted},children:o}),p("span",{style:{fontSize:"3.32cqw",color:m.rust,fontWeight:700},children:t})]},e))})}),citypictures:p(Pe,{title:"Our studios",children:O("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3,minHeight:0},children:[p("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.12em",fontWeight:700,color:m.muted},children:"A \xB7 AMERICAS"}),p("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:["Los Angeles","Miami","Toronto"].map(e=>O("div",{style:{position:"relative",minHeight:0},children:[p(z,{r:3,style:{...j,background:`linear-gradient(transparent 45%,${m.scrim} 45%),${Fe(m.ink,m.inkSoft2).background}`}}),p("b",{style:{position:"absolute",left:5,bottom:4,fontSize:"3.65cqw",color:m.onInk},children:e})]},e))})]})}),citymaps:p(Pe,{title:"Find us",children:p("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])=>O("div",{style:{position:"relative",padding:"4px 5px",display:"flex",flexDirection:"column",gap:2,minHeight:0},children:[p(z,{r:4,style:{...j,background:"none",border:`1px solid ${m.rule}`}}),p("b",{style:{position:"relative",fontSize:"4.31cqw",color:m.text},children:e}),p("span",{style:{position:"relative",fontSize:"3.32cqw",color:m.muted},children:o}),O("div",{style:{flex:1,minHeight:0,position:"relative"},children:[p(z,{r:3,style:{...j,...Fe(m.paper,m.paper2,150)}}),p(z,{w:"60%",h:"60%",r:8,style:{position:"absolute",left:"12%",top:"20%",background:m.mark1,opacity:.75}}),p(z,{w:6,h:6,r:3,style:{position:"absolute",left:"44%",top:"34%",background:m.rust}})]})]},e))})}),form:p(Pe,{title:"Send us a message",children:O("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[O("div",{style:{display:"flex",gap:5},children:[p(kf,{label:"Name"}),p(kf,{label:"Email"})]}),p(kf,{label:"Message",filled:!0}),p(l1,{children:"SEND"})]})}),appointmentbooking:p(Pe,{title:"Book a fitting",children:O("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[p("div",{style:{display:"flex",gap:3},children:["Mon","Tue","Wed","Thu"].map((e,o)=>p("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",fontWeight:o===2?700:500,padding:"4px 0",borderRadius:3,background:o===2?m.text:m.paper,color:o===2?m.onInk:m.muted},children:e},e))}),p("div",{style:{display:"flex",gap:3},children:["8:00","10:30","13:00","15:30"].map((e,o)=>p("span",{style:{flex:1,textAlign:"center",fontSize:"3.32cqw",padding:"4px 0",borderRadius:3,border:`1px solid ${o===1?m.rust:m.rule}`,color:o===1?m.rust:m.muted,background:o===3?m.paper:m.card,textDecoration:o===3?"line-through":"none"},children:e},e))})]})}),reviewform:p(Pe,{title:"Leave a review",children:O("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[p(jI,{filled:4,size:14}),p(kf,{label:"Your review",filled:!0}),p(l1,{children:"POST"})]})}),submitbuild:p(Pe,{title:"Show us your build",children:O("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:3,border:`1px dashed ${m.mark1}`,borderRadius:5,background:m.paper},children:[p("span",{style:{fontSize:"6.63cqw",lineHeight:1,color:m.rust,fontWeight:300},children:"+"}),p("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"Drop a photo of your rig"})]})}),masthead:O("div",{style:{...j,background:m.paper,display:"flex",flexDirection:"column",justifyContent:"center",padding:"0 13px",gap:5},children:[p("span",{style:{height:1.5,background:m.text}}),p("span",{style:{fontSize:"7.65cqw",fontWeight:800,letterSpacing:"0.02em",color:m.text,lineHeight:1},children:"THE TRACK"}),O("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"3.65cqw",letterSpacing:"0.1em",textTransform:"uppercase",color:m.muted},children:[p("span",{children:"Issue 14"}),p("span",{children:"Spring 2026"})]}),p("span",{style:{height:1,background:m.rule}})]}),featuredcover:O("div",{style:{...j,overflow:"hidden",...Fe(m.ink,m.inkSoft2)},children:[p(qt,{size:92,style:{right:-18,top:-14}}),p("div",{style:{position:"absolute",inset:0,background:`linear-gradient(0deg,${m.scrim},transparent 62%)`}}),O("div",{style:{position:"absolute",left:12,right:12,bottom:11,display:"flex",flexDirection:"column",gap:3},children:[p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:m.warm},children:"FEATURE"}),p("span",{style:{fontSize:"6.16cqw",lineHeight:1.15,fontWeight:700,color:m.onInk},children:"Four days on the Madigan Line"})]})]}),longread:O("div",{style:{...j,background:m.card,padding:"10px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.14em",fontWeight:700,color:m.rust},children:"12 MIN READ"}),p("span",{style:{fontSize:"6.02cqw",lineHeight:1.15,fontWeight:700,color:m.text},children:"What breaks first, and why"}),p(fo,{children:"Every failure starts in the same place \u2014 not the rim, not"}),p(fo,{w:"62%",children:"the tyre, but the bolt nobody re-torqued."})]}),series:p(Pe,{title:"Recurring columns",children:p("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])=>O("div",{style:{display:"flex",alignItems:"center",gap:6},children:[p("span",{style:{width:3,height:12,borderRadius:2,background:m.rust,flex:"none"}}),p("b",{style:{flex:1,fontSize:"4.64cqw",color:m.text},children:e}),p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:m.muted},children:o})]},e))})}),events:p(Pe,{title:"Latest posts",children:p("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[[m.inkSoft,m.inkSoft2,"Madigan Line, four days"],[m.rust,m.warm,"Why offset beats width"]].map(([e,o,t])=>O("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[p("span",{style:{width:24,height:18,borderRadius:3,flex:"none",...Fe(e,o,150)}}),O("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[p("b",{style:{fontSize:"4.31cqw",color:m.text},children:t}),p("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"4 Sep \xB7 Shed Notes"})]})]},t))})}),docmasthead:O("div",{style:{...j,background:m.card,padding:"12px 14px",display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:[p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:m.muted},children:"POLICY"}),p("span",{style:{fontSize:"6.49cqw",fontWeight:700,color:m.text,lineHeight:1.1},children:"Returns & refunds"}),p("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"Version 3 \xB7 Updated 4 Sep 2026"}),p("span",{style:{height:2,width:26,background:m.rust,borderRadius:1}})]}),docbody:p("div",{style:{...j,background:m.card,padding:"9px 13px",display:"flex",flexDirection:"column",gap:3,justifyContent:"center"},children:[["1.","You may return an unfitted wheel within 30 days."],["2.","Fitted wheels are covered by the structural warranty."],["3.","Freight on a change of mind is yours."]].map(([e,o])=>O("div",{style:{display:"flex",gap:5},children:[p("b",{style:{fontSize:"3.98cqw",color:m.rust,flex:"none"},children:e}),p(fo,{children:o})]},e))}),docmetacards:p(Pe,{title:"At a glance",children:p("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])=>O("div",{style:{border:`1px solid ${m.rule}`,borderRadius:4,padding:"5px 6px",display:"flex",flexDirection:"column",gap:1},children:[p("b",{style:{fontSize:"5.31cqw",color:m.text,lineHeight:1},children:e}),p("span",{style:{fontSize:"3.32cqw",letterSpacing:"0.08em",textTransform:"uppercase",color:m.muted},children:o})]},o))})}),doctabs:O("div",{style:{...j,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:0,padding:"0 11px"},children:[p("div",{style:{display:"flex",gap:0},children:["Returns","Warranty","Shipping"].map((e,o)=>p("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"5px 8px",color:o===0?m.text:m.muted,background:o===0?m.paper:"transparent",borderRadius:"4px 4px 0 0",border:`1px solid ${o===0?m.rule:"transparent"}`,borderBottom:"none"},children:e},e))}),p("span",{style:{height:1,background:m.rule}}),O("div",{style:{paddingTop:6,display:"flex",flexDirection:"column",gap:2},children:[p(fo,{children:"Unfitted wheels come back within 30 days, no questions."}),p(fo,{w:"58%",children:"Freight on a change of mind is yours."})]})]}),paragraphs:O("div",{style:{...j,background:m.card,padding:"11px 14px",display:"flex",gap:10,alignItems:"center"},children:[p("span",{style:{flex:1,fontSize:"5.86cqw",lineHeight:1.2,fontWeight:700,color:m.text},children:"The right wheel is the boring one."}),O("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[p(fo,{children:"Forged, correctly offset, rated for what you actually"}),p(fo,{children:"carry. Everything else is a photograph."})]})]}),keyfeatures:p(Pe,{title:"Key features",children:p("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=>O("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[p("span",{style:{fontSize:"4.64cqw",color:m.rust,fontWeight:700,lineHeight:1},children:"\u2713"}),p("span",{style:{fontSize:"4.31cqw",color:m.text},children:e})]},e))})}),statsparagraph:O("div",{style:{...j,background:m.paper,padding:"10px 12px",display:"flex",gap:10,alignItems:"center"},children:[O("div",{style:{flex:"none",display:"flex",flexDirection:"column",gap:5},children:[p(vl,{n:"27k",label:"Rigs"}),p(vl,{n:"4.9",label:"Rating"})]}),O("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[p(fo,{children:"Twelve years of fitting the same three questions, and the"}),p(fo,{children:"answer has not moved: load rating, offset, then looks."})]})]}),chart:O(Pe,{title:"Load vs weight",children:[p("div",{style:{flex:1,display:"flex",alignItems:"flex-end",gap:5,paddingBottom:2},children:[38,62,84,71,96].map((e,o)=>p("span",{style:{flex:1,height:`${e}%`,borderRadius:"2px 2px 0 0",background:o===4?m.rust:m.mark1}},o))}),p("span",{style:{height:1,background:m.rule,marginTop:-4}})]}),mockup:p("div",{style:{...j,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",...Fe(m.inkSoft,m.ink)},children:O("div",{style:{width:"72%",height:"74%",borderRadius:4,overflow:"hidden",background:m.card,boxShadow:`0 6px 14px ${m.scrim}`},children:[p("div",{style:{height:9,background:m.paper,display:"flex",alignItems:"center",gap:2,padding:"0 4px"},children:[0,1,2].map(e=>p("span",{style:{width:2.5,height:2.5,borderRadius:"50%",background:m.mark1}},e))}),O("div",{style:{padding:5,display:"flex",flexDirection:"column",gap:3},children:[p("span",{style:{height:4,width:"56%",borderRadius:1,background:m.mark2}}),p("span",{style:{height:14,borderRadius:2,...Fe(m.paper,m.paper2,150)}}),p("span",{style:{height:3,width:"38%",borderRadius:1,background:m.rust}})]})]})}),manifesto:p("div",{style:{...j,overflow:"hidden",display:"flex",alignItems:"center",padding:"0 16px",...Fe(m.ink,m.ink2)},children:O("span",{style:{fontSize:"6.63cqw",lineHeight:1.2,fontWeight:700,color:m.onInk},children:["We build for the ",p("span",{style:{color:m.warm},children:"last"})," ten percent of the track."]})}),timeline:p(Pe,{title:"Our story",children:p("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)=>O("div",{style:{display:"flex",gap:7,alignItems:"flex-start",position:"relative"},children:[t<2&&p("span",{style:{position:"absolute",left:3,top:8,bottom:-8,width:1,background:m.rule}}),p("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",marginTop:1,background:m.rust,zIndex:1}}),O("div",{style:{display:"flex",flexDirection:"column",gap:0,minWidth:0},children:[p("b",{style:{fontSize:"4.64cqw",color:m.text},children:e}),p(fo,{children:o})]})]},e))})}),timelinetrack:O("div",{style:{...j,padding:"0 12px",display:"flex",flexDirection:"column",gap:10,justifyContent:"center",...Fe(m.ink,m.inkSoft)},children:[p("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"Milestones"}),O("div",{style:{position:"relative",display:"flex",justifyContent:"space-between",paddingTop:7},children:[p("span",{style:{position:"absolute",left:0,right:0,top:3,height:1,background:m.mark2,opacity:.55}}),["1998","2009","2016","2024"].map((e,o)=>O("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:3,position:"relative"},children:[p("span",{style:{position:"absolute",top:-7,width:6,height:6,borderRadius:"50%",background:o===3?m.warm:m.mark1}}),p("span",{style:{fontSize:"4.31cqw",fontWeight:700,color:o===3?m.warm:m.onInk,opacity:o===3?1:.75},children:e})]},e))]})]}),footprint:O("div",{style:{...j,overflow:"hidden",...Fe(m.paper,m.paper2,150)},children:[p("span",{style:{position:"absolute",left:"8%",top:"18%",width:"62%",height:"64%",borderRadius:"48% 52% 40% 60% / 55% 45% 55% 45%",background:m.mark1,opacity:.75}}),p("span",{style:{position:"absolute",left:"52%",top:"52%",width:"34%",height:"34%",borderRadius:"58% 42% 55% 45% / 45% 58% 42% 55%",background:m.mark2,opacity:.55}}),[["26%","38%"],["44%","58%"],["62%","34%"]].map(([e,o])=>p("span",{style:{position:"absolute",left:e,top:o,width:7,height:7,borderRadius:"50% 50% 50% 0",transform:"rotate(-45deg)",background:m.rust}},e)),p("span",{style:{position:"absolute",left:11,bottom:9,fontSize:"4.64cqw",fontWeight:700,color:m.text},children:"3 fitting bays"})]}),banner:O("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 13px",gap:8,background:m.rust},children:[O("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[p("b",{style:{fontSize:"6.02cqw",color:m.onInk},children:"End of season \xB7 20% off"}),p("span",{style:{fontSize:"3.98cqw",color:m.onInk,opacity:.8},children:"Fitted free, this month only."})]}),p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:m.onInk,color:m.text,flex:"none"},children:"SHOP"})]}),titlewithbuttons:O("div",{style:{...j,background:m.paper,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:7,padding:"0 14px",textAlign:"center"},children:[p("span",{style:{fontSize:"6.49cqw",lineHeight:1.15,fontWeight:700,color:m.text},children:"Not sure what fits?"}),O("div",{style:{display:"flex",gap:5},children:[p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,background:m.text,color:m.onInk},children:"FIND MY FIT"}),p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"5px 9px",borderRadius:2,border:`1px solid ${m.text}`,color:m.text},children:"CALL US"})]})]}),ticker:p("div",{style:{...j,overflow:"hidden",background:m.ink,display:"flex",alignItems:"center"},children:p("span",{style:{whiteSpace:"nowrap",fontSize:"6.29cqw",fontWeight:800,letterSpacing:"0.06em",color:m.warm,marginLeft:-14},children:"FREE FITTING \xB7 48HR DISPATCH \xB7 FREE FITTING \xB7 48HR DISPATCH"})}),countdown:O("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",alignItems:"center",gap:6,justifyContent:"center",...Fe(m.ink,m.ink2)},children:[p("span",{style:{fontSize:"3.65cqw",fontWeight:700,letterSpacing:"0.16em",textTransform:"uppercase",color:m.muted},children:"Back online in"}),p("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[["23","Hours"],["59","Minutes"],["48","Seconds"]].map(([e,o],t)=>O("div",{style:{display:"flex",alignItems:"flex-start",gap:5},children:[t>0&&p("b",{style:{fontSize:"9.5cqw",lineHeight:1,color:m.warm},children:":"}),O("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:[p("b",{style:{fontSize:"11.5cqw",lineHeight:1,color:m.onInk,fontVariantNumeric:"tabular-nums"},children:e}),p("span",{style:{fontSize:"3.2cqw",letterSpacing:"0.1em",textTransform:"uppercase",opacity:.62,color:m.onInk},children:o})]})]},o))})]}),breadcrumb:p("div",{style:{...j,background:m.card,display:"flex",alignItems:"center",padding:"0 13px"},children:O("span",{style:{fontSize:"4.64cqw",color:m.muted},children:["Home ",p("span",{style:{opacity:.5},children:"/"})," Wheels ",p("span",{style:{opacity:.5},children:"/"})," ",p("span",{style:{color:m.text,fontWeight:700},children:"20 inch"})]})}),categorybar:O("div",{style:{...j,background:m.card,display:"flex",flexDirection:"column",justifyContent:"center",gap:7,padding:"0 11px"},children:[p("div",{style:{display:"flex",gap:5},children:["All","Wheels","Tyres","Lift"].map((e,o)=>p("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,padding:"4px 7px",borderRadius:99,background:o===0?m.text:m.paper,color:o===0?m.onInk:m.muted},children:e},e))}),p("span",{style:{height:1,background:m.rule}})]}),intro:O("div",{style:{...j,overflow:"hidden",background:m.card},children:[p("div",{style:{position:"absolute",inset:0,...Fe(m.ink,m.inkSoft2)}}),p(qt,{size:64,style:{right:8,top:6}}),O("div",{style:{position:"absolute",left:16,right:16,bottom:8,top:"46%",background:m.paper,borderRadius:6,padding:"8px 11px",display:"flex",flexDirection:"column",gap:2,boxShadow:`0 -4px 10px ${m.scrim}`},children:[p("span",{style:{fontSize:"5.69cqw",fontWeight:700,color:m.text},children:"Since 1998"}),p(fo,{children:"One shed, one lathe, one idea."}),p(fo,{w:"66%",children:"It turned out to be right."})]})]}),gallerygrid:p(Pe,{title:"From our customers",children:p("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gridTemplateRows:"repeat(2,1fr)",gap:4,minHeight:0},children:[[m.rust,m.warm],[m.inkSoft,m.ink],[m.paper2,m.mark2],[m.ink,m.inkSoft2],[m.warm,m.paper2],[m.mark2,m.inkSoft]].map(([e,o],t)=>p("div",{style:{borderRadius:3,...Fe(e,o,140+t*22)}},t))})}),gallery:O(Pe,{title:"Gallery",children:[p("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:-2},children:["On the truck","Studio","Close-ups"].map((e,o)=>p("span",{style:{fontSize:"3.98cqw",fontWeight:o===0?700:500,color:o===0?m.text:m.muted,borderBottom:`1.5px solid ${o===0?m.rust:"transparent"}`,paddingBottom:2},children:e},e))}),p("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:4,minHeight:0},children:[[m.rust,m.warm],[m.ink,m.inkSoft],[m.paper2,m.mark2]].map(([e,o],t)=>p("div",{style:{borderRadius:3,...Fe(e,o,150+t*20)}},t))})]}),ordersummary:O(Pe,{title:"Order summary",children:[O("div",{style:{display:"flex",gap:6,alignItems:"center",paddingBottom:4},children:[p("span",{style:{width:26,height:26,borderRadius:4,position:"relative",overflow:"hidden",flex:"none",...Fe(m.paper,m.paper2,150)},children:p(qt,{size:18,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),O("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[p("b",{style:{fontSize:"4.31cqw",color:m.text},children:"Ridge Grappler"}),p("span",{style:{fontSize:"3.65cqw",color:m.muted},children:"20\xD79 +12 \xB7 qty 4"})]})]}),O("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",justifyContent:"center"},children:[p(Kt,{k:"Subtotal",v:"$1,956"}),p(Kt,{k:"Fitting",v:"Free"}),O("div",{style:{display:"flex",justifyContent:"space-between",paddingTop:5,fontSize:"4.64cqw"},children:[p("b",{style:{color:m.text},children:"Total"}),p("b",{style:{color:m.text,fontSize:"6.02cqw"},children:"$1,956"})]})]})]}),deliveryoptions:p(Pe,{title:"Delivery",children:p("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])=>O("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 6px",borderRadius:4,border:`1px solid ${r?m.rust:m.rule}`,background:r?m.paper:m.card},children:[p("span",{style:{width:7,height:7,borderRadius:"50%",flex:"none",border:`1.5px solid ${r?m.rust:m.mark1}`,background:r?m.rust:"transparent"}}),p("span",{style:{flex:1,fontSize:"4.31cqw",fontWeight:600,color:m.text},children:e}),p("span",{style:{fontSize:"3.98cqw",color:m.muted},children:o}),p("b",{style:{fontSize:"4.31cqw",color:m.text},children:t})]},e))})}),paymentbadges:O("div",{style:{...j,background:m.paper,display:"flex",flexDirection:"column",gap:8,justifyContent:"center",padding:"0 12px"},children:[p(Tf,{children:"Ways to pay"}),p("div",{style:{display:"flex",gap:5},children:[["VISA",m.ink],["MC",m.rust],["AMEX",m.inkSoft],["PayPal",m.ink2]].map(([e,o])=>p("span",{style:{flex:1,textAlign:"center",fontSize:"3.65cqw",fontWeight:800,letterSpacing:"0.06em",color:m.onInk,borderRadius:3,padding:"6px 0",background:o},children:e},e))})]}),stats:O("div",{style:{...j,padding:"10px 12px",display:"flex",flexDirection:"column",gap:9,justifyContent:"center",...Fe(m.ink,m.ink2)},children:[p("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"By the numbers"}),O("div",{style:{display:"flex",gap:8},children:[p(vl,{n:"27k",label:"Rigs fitted",tone:m.onInk}),p(vl,{n:"12",label:"Years",tone:m.onInk}),p(vl,{n:"4.9",label:"Avg rating",tone:m.warm})]})]}),testimonials:O("div",{style:{...j,overflow:"hidden",background:m.paper,padding:"10px 11px",display:"flex",flexDirection:"column",gap:6,justifyContent:"center"},children:[p("span",{style:{position:"absolute",right:10,top:2,fontSize:"22.4cqw",lineHeight:1,fontWeight:800,color:m.rust,opacity:.16},children:"\u201D"}),p(jI,{filled:5,size:7}),p("span",{style:{position:"relative",fontSize:"5.31cqw",lineHeight:1.35,color:m.text,fontWeight:600},children:"\u201CTook them out to the Simpson and back. Not one chip.\u201D"}),O("div",{style:{display:"flex",alignItems:"center",gap:5},children:[p(s1,{}),p("span",{style:{fontSize:"3.98cqw",color:m.muted},children:"Dave M. \xB7 Hilux N80"})]})]}),reviews:O(Pe,{title:"Reviews",children:[p("div",{style:{display:"flex",gap:4,height:22},children:[[m.inkSoft,m.inkSoft2],[m.rust,m.warm],[m.ink,m.inkSoft],[m.mark2,m.mark1]].map(([e,o],t)=>p("div",{style:{flex:1,borderRadius:3,...Fe(e,o,140+t*15)}},t))}),p("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])=>O("div",{style:{display:"flex",gap:5,alignItems:"flex-start"},children:[p(s1,{size:12}),O("div",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[O("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[p("b",{style:{fontSize:"3.98cqw",color:m.text},children:e}),p(jI,{filled:o})]}),p(fo,{children:t})]})]},e))})]}),logos:O("div",{style:{...j,display:"flex",flexDirection:"column",gap:9,justifyContent:"center",padding:"0 12px",...Fe(m.ink,m.inkSoft)},children:[p("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:m.warm},children:"As fitted by"}),p("div",{style:{display:"grid",gridTemplateColumns:"repeat(4,1fr)",gap:8},children:["ARB","TJM","IRONMAN","OPPOSITE"].map(e=>p("span",{style:{textAlign:"center",fontSize:"4.31cqw",fontWeight:800,letterSpacing:"0.08em",color:m.onInk,opacity:.82},children:e},e))})]}),prose:O("div",{style:{...j,background:m.paper,padding:"11px 14px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[p("span",{style:{fontSize:"5.86cqw",fontWeight:700,color:m.text},children:"Why offset matters"}),O("div",{style:{display:"flex",gap:6},children:[p("span",{style:{fontSize:"15.3cqw",lineHeight:.78,fontWeight:800,color:m.rust,marginTop:1},children:"T"}),O("div",{style:{display:"flex",flexDirection:"column"},children:[p(fo,{children:"he number on the back of your wheel decides whether the"}),p(fo,{w:"76%",children:"tyre sits under the guard or an inch outside it."})]})]})]}),cards:p(Pe,{title:"What you get",children:p("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])=>O("div",{style:{border:`1px solid ${m.rule}`,borderRadius:4,padding:6,display:"flex",flexDirection:"column",gap:2},children:[p("span",{style:{width:11,height:11,borderRadius:3,background:m.rust,opacity:.9}}),p("b",{style:{fontSize:"3.98cqw",color:m.text},children:e}),p(fo,{children:o})]},e))})}),faq:p(Pe,{title:"Questions",children:p("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])=>O("div",{style:{borderBottom:`1px solid ${m.rule}`,padding:"4px 2px"},children:[O("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6},children:[p("b",{style:{fontSize:"4.31cqw",color:m.text},children:e}),p("span",{style:{fontSize:"4.64cqw",color:m.muted,lineHeight:1},children:o?"\u2212":"+"})]}),o&&p(fo,{w:"90%",children:"Use the fitment finder \u2014 it reads your build, not just the model."})]},e))})}),hero:O("div",{style:{...j,overflow:"hidden",...Fe(m.ink,m.ink2)},children:[p("div",{style:{...j,background:`linear-gradient(90deg,${m.scrim},transparent 70%)`}}),p("div",{style:{position:"relative",height:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",padding:"12px 14px",gap:5},children:p(n1,{over:"NEW \xB7 SUMMER",overTone:m.warm,head:"Built for the worst road you own",cta:"SHOP ALL",ctaBg:m.warm,ctaFg:m.ink,tone:m.onInk})}),p(qt,{size:104,style:{right:-24,bottom:-30}})]}),herosingle:O("div",{style:{...j,display:"flex",background:m.paper,overflow:"hidden"},children:[p("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:5,justifyContent:"center"},children:p(n1,{over:"ALL-TERRAIN",overTone:m.rust,head:"Grip that does not ask",headSize:12,cta:"EXPLORE",ctaBg:m.text,ctaFg:m.onInk,tone:m.text})}),p("div",{style:{flex:1,position:"relative",...Fe(m.inkSoft,m.inkSoft2)},children:p(qt,{size:74,style:{right:-14,top:16}})})]}),productgrid:p(Pe,{title:"Best sellers",children:O("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[p($I,{name:"Ridge 19",price:"$365"}),p($I,{name:"Ridge 29",price:"$410"}),p($I,{name:"Ridge 39",price:"$455"})]})}),collections:p(Pe,{title:"Shop by category",children:p("div",{style:{flex:1,display:"grid",gridTemplateColumns:"repeat(3,1fr)",gap:5,minHeight:0},children:[["Wheels",m.inkSoft,m.inkSoft2],["Tyres",m.rust,m.warm],["Lift kits",m.ink,m.inkSoft]].map(([e,o,t])=>p("div",{style:{borderRadius:4,display:"flex",alignItems:"flex-end",padding:5,color:m.onInk,...Fe(o,t)},children:p("span",{style:{fontSize:"3.98cqw",fontWeight:700,letterSpacing:"0.04em"},children:e})},e))})}),producthero:O("div",{style:{...j,display:"flex",background:m.card,overflow:"hidden"},children:[p("div",{style:{flex:1.1,position:"relative",...Fe(m.paper,m.paper2,150)},children:p(qt,{size:78,style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)"}})}),O("div",{style:{flex:1,padding:"10px 10px 10px 8px",display:"flex",flexDirection:"column",gap:4,justifyContent:"center"},children:[p("span",{style:{fontSize:"3.65cqw",letterSpacing:"0.16em",fontWeight:700,color:m.rust},children:"NITTO"}),p("b",{style:{fontSize:"6.29cqw",color:m.text},children:"Ridge Grappler"}),p("span",{style:{fontSize:"6.63cqw",fontWeight:700,color:m.text},children:"$489"}),p("span",{style:{alignSelf:"flex-start",fontSize:"3.65cqw",letterSpacing:"0.12em",fontWeight:700,padding:"4px 8px",borderRadius:2,background:m.text,color:m.onInk},children:"ADD TO CART"})]})]}),spectable:p(Pe,{title:"Specifications",children:O("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[p(Kt,{k:"Diameter",v:'20"'}),p(Kt,{k:"Width",v:"9.0J"}),p(Kt,{k:"Offset",v:"+12"}),p(Kt,{k:"Load",v:"1250 kg"})]})}),fitmenttable:p(Pe,{title:"Will it fit?",children:O("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"},children:[p(Kt,{k:"Hilux N80",v:"20\xD79 +12",ok:!0}),p(Kt,{k:"Ranger PX3",v:"20\xD79 +12",ok:!0}),p(Kt,{k:"LC79",v:"17\xD78 \u221210",ok:!0})]})}),processsteps:O("div",{style:{...j,background:m.paper,padding:10,display:"flex",flexDirection:"column",gap:7,justifyContent:"center"},children:[p(Tf,{children:"How it works"}),p("div",{style:{display:"flex",gap:6},children:["Pick your rig","Match the fit","We fit it"].map((e,o)=>O("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2},children:[p("span",{style:{width:11,height:11,borderRadius:"50%",background:m.text,color:m.onInk,fontSize:"3.98cqw",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700},children:o+1}),p("span",{style:{fontSize:"3.98cqw",color:m.text,fontWeight:600},children:e})]},e))})]}),detailrows:p("div",{style:{...j,background:m.card,display:"flex",flexDirection:"column",overflow:"hidden"},children:[["Forged, not cast","Half the weight, twice the road.",!1],["Fits your load","Rated to 1250 kg a corner.",!0]].map(([e,o,t])=>{let r=p("div",{style:{flex:1,...Fe(t?m.rust:m.inkSoft,t?m.warm:m.inkSoft2)}},"art"),a=O("div",{style:{flex:1.1,padding:8,display:"flex",flexDirection:"column",gap:2,justifyContent:"center"},children:[p("b",{style:{fontSize:"4.64cqw",color:m.text},children:e}),p("span",{style:{fontSize:"3.98cqw",color:m.muted,lineHeight:1.3},children:o})]},"tx");return p("div",{style:{flex:1,display:"flex",minHeight:0},children:t?[a,r]:[r,a]},e)})}),specstrip:p("div",{style:{...j,background:m.ink,color:m.onInk,display:"flex",alignItems:"center",justifyContent:"space-around",padding:"0 8px"},children:[["5 yr","Warranty"],["Free","Fitting"],["48 hr","Dispatch"]].map(([e,o])=>O("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[p("b",{style:{fontSize:"5.69cqw",letterSpacing:"0.02em"},children:e}),p("span",{style:{fontSize:"3.65cqw",color:m.mark2,letterSpacing:"0.1em",textTransform:"uppercase"},children:o})]},o))})},i1={subscribe:O("div",{style:{...j,padding:13,display:"flex",flexDirection:"column"},children:[O("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[O("div",{style:{display:"flex",alignItems:"center",gap:6},children:[p(z,{w:8,h:8,r:2,tone:"accent"}),p(z,{w:38,h:7,r:3,tone:"dark"}),p(z,{w:16,h:7,r:3,tone:"accent"})]}),p(z,{w:38,h:4,r:2,tone:"soft"})]}),p("div",{style:{height:1,background:Qe.line,marginBottom:10}}),O("div",{style:{flex:1,display:"flex",gap:10,border:`1px solid ${Qe.line}`,borderRadius:7,padding:10},children:[O("div",{style:{flex:1.1,display:"flex",flexDirection:"column",justifyContent:"center",gap:5},children:[p(z,{w:"46%",h:3,r:2,tone:"accent"}),p(z,{w:"84%",h:8,r:4,tone:"dark"}),p(z,{w:"56%",h:8,r:4,tone:"accent"}),p(z,{w:"96%",h:3,r:2,tone:"soft",style:{marginTop:2}}),O("div",{style:{display:"flex",gap:5,marginTop:4},children:[p("div",{style:{flex:1,height:13,borderRadius:5,border:`1px solid ${Qe.line}`,background:Qe.block}}),p(z,{w:34,h:13,r:5,tone:"accent"})]})]}),O("div",{style:{flex:1,background:Qe.block,borderRadius:6,padding:8,display:"flex",flexDirection:"column",gap:6},children:[p(z,{w:"52%",h:4,r:2,tone:"accent"}),Array.from({length:3}).map((e,o)=>O("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:6,borderTop:o?`1px solid ${Qe.line}`:"none",paddingTop:o?4:0},children:[p(z,{w:34,h:4,r:2,tone:"dark"}),p(z,{w:16,h:3,r:2,tone:"soft"})]},o))]})]})]}),split:O("div",{style:{...j,display:"flex"},children:[p("div",{style:{width:"44%",background:UI}}),O("div",{style:{flex:1,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[p(z,{w:"44%",h:5,r:3,tone:"accent"}),p(z,{w:"88%",h:8,r:4,tone:"dark"}),p(z,{w:"70%",h:8,r:4,tone:"dark"}),p(z,{w:"94%",h:5,r:2,tone:"soft",style:{marginTop:2}}),p(z,{w:"80%",h:5,r:2,tone:"soft"}),p(z,{w:"40%",h:13,r:6,tone:"accent",style:{marginTop:5}})]})]}),sectionheader:O(c1,{children:[p(z,{w:"18%",h:6,r:3,tone:"accent",style:{position:"absolute",top:15,right:16}}),O("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:10},children:[O("div",{style:{display:"flex",alignItems:"center",gap:9},children:[p(z,{w:16,h:16,r:4,tone:"accent"}),p(z,{w:"20%",h:9,r:4,tone:"dark"})]}),p(z,{w:"62%",h:10,r:5,tone:"dark"}),p(z,{w:"42%",h:6,r:3,tone:"soft"})]})]}),header:p("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",justifyContent:"center"},children:O("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[p(z,{w:"22%",h:12,r:4,tone:"dark"}),O("div",{style:{display:"flex",gap:9,alignItems:"center"},children:[p(z,{w:26,h:6,r:3,tone:"soft"}),p(z,{w:26,h:6,r:3,tone:"soft"}),p(z,{w:26,h:6,r:3,tone:"soft"}),p(z,{w:18,h:14,r:5,tone:"accent"})]})]})}),footer:O("div",{style:{...j,padding:15,display:"flex",flexDirection:"column",justifyContent:"center",gap:12},children:[O("div",{style:{display:"flex",gap:14},children:[O("div",{style:{flex:1.4,display:"flex",flexDirection:"column",gap:6},children:[p(z,{w:"60%",h:9,r:4,tone:"dark"}),p(z,{w:"90%",h:5,r:2,tone:"soft"}),p(z,{w:"70%",h:5,r:2,tone:"soft"})]}),[0,1].map(e=>O("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[p(z,{w:"50%",h:6,r:3,tone:"dark"}),p(z,{w:"80%",h:5,r:2,tone:"soft"}),p(z,{w:"66%",h:5,r:2,tone:"soft"})]},e))]}),p("div",{style:{height:1,background:Qe.line}}),O("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p(z,{w:"30%",h:5,r:2,tone:"soft"}),p(z,{w:"16%",h:5,r:2,tone:"soft"})]})]}),grid:p("div",{style:{...j,padding:14,display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr 1fr",gap:9},children:Array.from({length:4}).map((e,o)=>p("div",{style:{borderRadius:6,background:Qe.block}},o))}),blanksection:p("div",{style:{...j,padding:14,display:"flex"},children:O("div",{style:{flex:1,border:`1px dashed ${Qe.line}`,borderRadius:7,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[p(z,{w:14,h:2,r:1,tone:"tint"}),p(z,{w:2,h:14,r:1,tone:"tint",style:{position:"absolute"}})]})}),spacer:O("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[p(z,{w:"100%",h:6,r:3,tone:"soft"}),p(z,{w:16,h:22,r:3,tone:"block",style:{alignSelf:"center"}}),p(z,{w:"100%",h:6,r:3,tone:"soft"})]}),divider:p("div",{style:{...j,padding:14,display:"flex",alignItems:"center"},children:p(z,{w:"100%",h:3,r:2,tone:"dark"})}),customhtml:O("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:8,background:UI},children:[p(z,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(-14deg)"}}),p(z,{w:16,h:10,r:3,tone:"accent"}),p(z,{w:5,h:16,r:2,tone:"dark",style:{transform:"skewX(14deg)"}})]}),heading:p("div",{style:{...j,padding:14,display:"flex",alignItems:"center"},children:p(z,{w:"64%",h:13,r:4,tone:"dark"})}),text:O("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[p(z,{w:"100%",h:6,r:3,tone:"soft"}),p(z,{w:"96%",h:6,r:3,tone:"soft"}),p(z,{w:"100%",h:6,r:3,tone:"soft"}),p(z,{w:"58%",h:6,r:3,tone:"soft"})]}),image:p("div",{style:{position:"absolute",inset:14,borderRadius:7,background:UI}}),button:p("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center"},children:p(z,{w:"34%",h:16,r:8,tone:"accent"})}),menu:O("div",{style:{...j,padding:"14px 22%",display:"flex",flexDirection:"column",justifyContent:"center",gap:7},children:[p(z,{w:"48%",h:7,r:3,tone:"dark"}),p(z,{w:"82%",h:5,r:2,tone:"soft"}),p(z,{w:"66%",h:5,r:2,tone:"soft"}),p(z,{w:"74%",h:5,r:2,tone:"soft"}),p(z,{w:"58%",h:5,r:2,tone:"soft"})]}),emailform:O("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[p(z,{w:"56%",h:8,r:3,tone:"dark"}),O("div",{style:{display:"flex",gap:6},children:[p("div",{style:{flex:1,height:16,borderRadius:5,border:`1px solid ${Qe.line}`}}),p(z,{w:"30%",h:16,r:5,tone:"accent"})]})]}),sociallogos:p("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:9},children:[0,1,2,3].map(e=>p(z,{w:16,h:16,r:8,tone:"dark"},e))}),paymentlogos:O("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[p(z,{w:22,h:6,r:2,tone:"soft"}),[0,1,2,3].map(e=>p(z,{w:20,h:13,r:3,tone:"dark"},e))]}),search:p("div",{style:{...j,padding:"0 18%",display:"flex",alignItems:"center"},children:O("div",{style:{flex:1,height:22,borderRadius:11,border:`1px solid ${Qe.line}`,display:"flex",alignItems:"center",gap:7,padding:"0 9px"},children:[p("div",{style:{width:9,height:9,borderRadius:5,border:`2px solid ${Qe.dark}`}}),p(z,{w:"46%",h:5,r:2,tone:"soft"})]})}),cart:O("div",{style:{...j,display:"flex",alignItems:"center",justifyContent:"center",gap:7},children:[p("div",{style:{width:22,height:18,borderRadius:"3px 3px 6px 6px",border:`2px solid ${Qe.dark}`}}),p("div",{style:{padding:"2px 6px",borderRadius:6,border:`1.5px solid ${Qe.dark}`},children:p(z,{w:7,h:7,r:2,tone:"dark"})})]}),countryswitch:O("div",{style:{...j,padding:14,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:5},children:[O("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",border:`1px solid ${Qe.line}`},children:[p(z,{w:22,h:6,r:2,tone:"dark"}),p(z,{w:6,h:4,r:1,tone:"soft"})]}),O("div",{style:{width:"46%",display:"flex",flexDirection:"column",gap:4,padding:6,border:`1px solid ${Qe.line}`},children:[p(z,{w:"80%",h:4,r:2,tone:"accent"}),p(z,{w:"64%",h:4,r:2,tone:"soft"}),p(z,{w:"72%",h:4,r:2,tone:"soft"})]})]}),legalline:O("div",{style:{...j,padding:16,display:"flex",flexDirection:"column",justifyContent:"center",gap:9},children:[p("div",{style:{height:1,background:Qe.line}}),O("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[p(z,{w:"38%",h:5,r:2,tone:"soft"}),O("div",{style:{display:"flex",gap:5},children:[p(z,{w:14,h:5,r:2,tone:"soft"}),p(z,{w:14,h:5,r:2,tone:"soft"}),p(z,{w:14,h:5,r:2,tone:"soft"})]})]})]}),fallback:p("div",{style:{position:"absolute",inset:14,borderRadius:8,background:Qe.block}})};function d1({type:e}){let o=NV[e]??"",t=MV[o]??i1[o]??i1.fallback;return p("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 wu}from"efficient-easel/screen/components/ScreenDocumentContext";import{jsx as Mn,jsxs as HV}from"react/jsx-runtime";import zV from"efficient-easel/screen/components/SidePanelHead";import{StylesIcon as WV}from"efficient-easel/rail";import{Tooltip as GV}from"efficient-shell/ui";function f1({tokenRef:e,siteId:o,onClose:t,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l}){let c=Cn();return HV("div",{className:"sf-styles",children:[Mn(zV,{icon:Mn(WV,{}),title:i("Styles"),context:Mn(GV,{content:i("{name} \u2014 renamed in the Console: {place}.",{name:c,place:i("Storefront \u25B8 Sites \u25B8 Settings")}),className:"sf-name-tip",children:Mn("span",{className:"sf-name-text",children:c})})}),Mn("div",{className:"sf-insp-body es-insp-body sf-scroll",children:Mn(vd,{tokenRef:e,siteId:o,onNotify:r,tab:a,onTabChange:n,revealPageGroup:s,onPageGroupRevealed:l})})]})}import{jsx as to,jsxs as Ca,Fragment as YV}from"react/jsx-runtime";import{Fragment as k1,useEffect as T1,useRef as ZI}from"react";import{useTreeDrag as P1}from"efficient-easel/drag";import{GlobeIcon as XV,ImageIcon as ZV,LocationIcon as JV,MapIcon as QV,TextLinesIcon as eY,TrashIcon as E1}from"efficient-easel/icons";import{Subtree as O1,TreeRow as Pl,TreeRowAction as _1,TreeSeam as R1}from"efficient-easel/tree";import{useEaselStrings as oY}from"efficient-easel/strings";import{createPreviewSelectionContext as UV}from"efficient-easel/draw/client";var{Provider:yEe,useSelection:u1}=UV("selectedLocationPartId");function p1(e,o,t){return`${e}::${o}::${t}`}function m1(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 tY}from"efficient-easel/screen/lib/screen-parts";import{useSyncExternalStore as $V}from"react";var jV={level:"groups"},x1=jV,KI=new Set;function pt(e){x1=e;for(let o of KI)o()}function KV(e){return KI.add(e),()=>{KI.delete(e)}}var h1=()=>x1;function I1(){return $V(KV,h1,h1)}function Pf(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 vEe(e){return qV[kl(e)]}var qV={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"};function kl(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 Tl=e=>String(e?.group??""),qI=new WeakMap,VV=0;function Ef(e){let o=qI.get(e);return o||(o=`loc${++VV}`,qI.set(e,o)),o}var g1=(e,o)=>o||e||"Ungrouped",b1={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 wa(e){return Pf(e,Tl,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),y1=(e,o,t)=>Math.min(Math.max(e,o),t);function Of(e,o,t){let r=0;for(let a=0;a<e.length;a++)if(Tl(e[a])===o){if(r===t)return a;r++}return-1}function YI(e,o,t){let r=wa(e);if(o<0||o>=r.length)return e;let[a]=r.splice(o,1),n=y1(o<t?t-1:t,0,r.length);return r.splice(n,0,a),VI(r)}function XI(e,o,t,r,a){let n=wa(e),s=n.find(h=>h.key===o),l=n.find(h=>h.key===r);if(!s||!l||t<0||t>=s.cards.length)return e;let[c]=s.cards.splice(t,1),d=o===r?c:{...c,group:l.key,groupName:l.name};d!==c&&qI.set(d,Ef(c));let f=y1(s===l&&t<a?a-1:a,0,l.cards.length);return l.cards.splice(f,0,d),VI(n)}function S1(e,o){let t=wa(e),r=t.find(n=>n.key===o),a={...b1,group:o,groupName:r?.name??""};return r?(r.cards.push(a),VI(t)):[...e,a]}function w1(e){let o=new Set(wa(e).map(a=>a.key)),t=o.size+1,r=`Group ${t}`;for(;o.has(r);)r=`Group ${++t}`;return{cards:[...e,{...b1,group:r,groupName:""}],key:r}}function C1(e,o){return e.filter(t=>Tl(t)!==o)}function v1(e,o,t){let r=Of(e,o,t);return r<0?e:e.filter((a,n)=>n!==r)}function PEe(e,o,t){let r=e.flatMap((s,l)=>Tl(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 EEe(e,o,t){return o.flatMap(r=>{let a=e.filter(n=>Tl(n)===r);return a.length?a:t(r)})}var Rf="ContactLocations",_f=e=>({parentId:`locations-${e}`,slot:"groups"}),JI=(e,o)=>({parentId:`locations-${e}`,slot:`cities:${o}`});function A1(e,o){let{readOnly:t,selected:r}=o,a=oY().tree,n=o.data?.content??[],s=tY(e),l=ZI(null);T1(()=>{let g=r?.type===Rf?String(r.props.id):null;g&&g!==l.current&&pt({level:"groups"}),l.current=g},[r?.props.id]);let{selectedLocationPartId:c,setSelectedLocationPartId:d,setSelectHandler:f}=u1(),h=I1(),u=(g,T)=>{let C=n[g];C&&o.replace(g,{type:C.type,props:{...C.props,locations:T}})},x=g=>{let T=n[g]?.props?.locations;return Array.isArray(T)?T:[]},I=P1({keyOf:g=>`group:${g.si}:${g.index}`,readOnly:!!t,canDrop:(g,T)=>T.parentId===_f(g.si).parentId&&T.slot==="groups",onDrop:(g,T)=>{u(g.si,YI(x(g.si),g.index,T.index)),h.level==="city"&&pt({level:"groups"})},onStep:(g,T)=>{u(g.si,YI(x(g.si),g.index,T<0?g.index-1:g.index+2)),h.level==="city"&&pt({level:"groups"})}}),y=P1({keyOf:g=>`city:${g.si}:${g.group}:${g.index}`,readOnly:!!t,canDrop:(g,T)=>T.parentId===_f(g.si).parentId&&T.slot.startsWith("cities:"),onDrop:(g,T)=>{let C=T.slot.slice(7);u(g.si,XI(x(g.si),g.group,g.index,C,T.index)),pt({level:"group",key:C})},onStep:(g,T)=>{u(g.si,XI(x(g.si),g.group,g.index,g.group,T<0?g.index-1:g.index+2)),h.level==="city"&&pt({level:"group",key:g.group})}}),P=ZI(n);P.current=n;let v=ZI(()=>{});T1(()=>{f(g=>{let T=m1(g);if(!T)return;let C=P.current.findIndex(F=>F.props?.id===T.nodeId);C<0||v.current(C,{level:T.part,index:T.index})})},[f]);let w=(g,T)=>{l.current=n[g]?.props?.id??null,o.select(g),pt(T),e.reveal();let C=n[g]?.props?.id;typeof C=="string"&&(T.level==="city"||T.level==="image"||T.level==="map")?d(p1(C,T.index,T.level)):d(null),typeof C=="string"&&o.scrollTo(C)};return v.current=w,{renderLocationTree:(g,T,{rowClick:C,isCollapsed:F,toggleCollapse:k})=>{let L=x(T),E=wa(L),R=String(g.props.id),N=s&&r?.props.id===R,b=A=>to(R1,{...t?{}:I.seam({place:{..._f(T),index:A}})},`seam:${R}:groups:${A}`),_=(A,H)=>to(R1,{...t?{}:y.seam({place:{...JI(T,A),index:H}})},`seam:${R}:cities:${A}:${H}`);return Ca(YV,{children:[to(Pl,{icon:to(eY,{size:13}),name:i("Texts"),words:a,onSelect:()=>w(T,{level:"texts"}),selected:N&&h.level==="texts",rowProps:{onClick:C(()=>w(T,{level:"texts"}))}}),E.map((A,H)=>{let Z=`${R}::grp::${A.key}`,q=F(Z),$=N&&h.level==="group"&&h.key===A.key,Te=A.name||A.key?g1(A.key,A.name):i("Ungrouped"),ge={...JI(T,A.key),index:A.cards.length},qe=y.row({item:{si:T,group:A.key,index:-1},place:ge,into:ge,canDrag:!1},{onClick:C(()=>w(T,{level:"group",key:A.key}))}),Ce=I.row({item:{si:T,index:H},place:{..._f(T),index:H}},qe.rowProps);return Ca(k1,{children:[H===0&&b(0),to(Pl,{icon:to(XV,{size:13}),name:Te,words:a,onSelect:()=>w(T,{level:"group",key:A.key}),selected:$,draggable:Ce.draggable,dragging:Ce.dragging,drop:Ce.drop??qe.drop,fold:{open:!q,label:i("group"),onToggle:()=>k(Z)},actions:to(_1,{kind:"delete",label:mo("Delete {label} group ({n} city)","Delete {label} group ({n} cities)",A.cards.length,{label:Te}),onClick:()=>{u(T,C1(L,A.key)),pt({level:"groups"})},children:to(E1,{size:15})}),rowProps:Ce.rowProps,count:A.cards.length,countLabel:mo("{n} city","{n} cities",A.cards.length)}),!q&&Ca(O1,{children:[A.cards.map((ve,me)=>{let Se=Of(L,A.key,me),je=N&&h.level==="city"&&h.index===Se,Ye=String(ve?.name??"")||i("City"),ne=`${R}::city::${Ef(ve)}`,Oe=F(ne),{rowProps:uo,...Re}=y.row({item:{si:T,group:A.key,index:me},place:{...JI(T,A.key),index:me}},{onClick:C(()=>w(T,{level:"city",index:Se}))});return Ca(k1,{children:[me===0&&_(A.key,0),to(Pl,{icon:to(JV,{size:13}),name:Ye,words:a,onSelect:()=>w(T,{level:"city",index:Se}),selected:je,...Re,fold:{open:!Oe,label:Ye,onToggle:()=>k(ne)},actions:to(_1,{kind:"delete",label:i("Delete {name}",{name:Ye}),onClick:()=>{u(T,v1(L,A.key,me)),pt({level:"group",key:A.key})},children:to(E1,{size:15})}),rowProps:uo}),!Oe&&Ca(O1,{children:[to(Pl,{icon:to(ZV,{size:13}),name:i("Image"),words:a,onSelect:()=>w(T,{level:"image",index:Se}),selected:N&&h.level==="image"&&h.index===Se,rowProps:{onClick:C(()=>w(T,{level:"image",index:Se}))}}),to(Pl,{icon:to(QV,{size:13}),name:i("Map"),words:a,onSelect:()=>w(T,{level:"map",index:Se}),selected:N&&h.level==="map"&&h.index===Se,rowProps:{onClick:C(()=>w(T,{level:"map",index:Se}))}})]}),_(A.key,me+1)]},Ef(ve))}),Ca("button",{type:"button",className:"sf-add-card",onClick:()=>{let ve=S1(L,A.key);u(T,ve);let me=wa(ve).find(Se=>Se.key===A.key);pt(me&&me.cards.length?{level:"city",index:Of(ve,A.key,me.cards.length-1)}:{level:"group",key:A.key})},children:[to("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add city")]})]}),b(H+1)]},Z)}),Ca("button",{type:"button",className:"sf-add-card",onClick:()=>{let{cards:A,key:H}=w1(L);u(T,A),w(T,{level:"group",key:H})},children:[to("span",{className:"sf-plus sf-plus--sm",children:"+"}),i("Add group")]})]})},sectionPressed:g=>{g?.type===Rf&&pt({level:"groups"})}}}import{useEffect as yY,useRef as SY}from"react";import{createNode as tg,newId as rg}from"efficient-easel/data";import{useEaselApi as wY}from"efficient-easel/easel";import{useScreenDocument as CY}from"efficient-easel/screen/components/ScreenDocumentContext";import{useEaselSession as vY}from"efficient-easel/screen/lib/session-context";import{useEffect as hY,useRef as xY}from"react";import{useEasel as IY}from"efficient-easel/easel";import{ROOT_ZONE as og}from"efficient-easel/draw";import{readHidable as sY}from"efficient-easel/draw";var rY="inline",aY=[{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"}},Hn="SectionHeader";function F1(e){return e in Io}function L1(e){return oo(aY,rY,e)}var nY=new Set(["Flex"]);function $Ee(e){return!!e?.type&&nY.has(e.type)}var B1={not:{field:"headPlacement",is:"own-box"}},jEe={not:B1};function KEe(e,o,t){return fs(e,t,B1)}var Pt=V,Et=Ke;function Af(e){if(e.theme)return no(e.theme);let o=e.site?.themePresets;return o?no({selected:e.site?.selectedPreset??0,themes:[...o]}):void 0}function lY(e,o){return o===0?`${e}~box`:`${e}~box-${o+1}`}var N1=new Set(["id"]),va={},M1=[],El=[];function Wo(e){for(let[o,t]of Object.entries(e)){if(o in va&&va[o]!==t)throw new Error(`lib/sections/section-to-box: "${o}" already has a row`);va[o]=t}}function Ff(e){return va[e]}function iY(e){return e in va&&M1.includes(e)}function H1(e,o=El){return e in va&&(o.includes(e)||iY(e))}function tOe(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 QI=e=>sY(e),ro=e=>QI(e).text.trim()!=="";function cY(e){return e.replace(/==(.+?)==/g,(o,t)=>t.startsWith("_")&&t.endsWith("_")?o:`==_${t}_==`)}function dY(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 fY=e=>e==="heading"?No():e==="eyebrow"?ho():{};function uY(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 pY(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 D1(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 f=d?d(t[l],t,a):t[l];f===void 0?delete n[c]:n[c]=f,r(l,c,f===void 0)}return n}function mY(e){let o=new Set([...N1,"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 eg(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,f=(C,F)=>{s.push({key:C,home:F}),d.add(C)},h=r._partStyles??{},u=mY(o),x=0,I=(C,F)=>({type:C,props:{...F,id:`${n}~${C}-${++x}`}}),y=(C,F,k,L,E,R,N)=>{if(E){for(let _ of C??[]){let A=typeof _=="string"?_:_[0];k[A]!==void 0&&N(A,`nothing \u2014 the ${L} has no parts, so it is not drawn`)}return}let b=typeof F=="function"?F(r,t):F??{};return D1(C??[],b,k,(_,A,H)=>N(_,H?`nothing \u2014 the old value draws nothing (${L}: no ${A})`:`${R}${L}: ${A}`),t)},P=C=>ts(C,F=>`${n}~${F}-${++x}`),v=(C,F,k)=>{let L=C.of?C.of(F):Array.isArray(F[C.key])?F[C.key]:[],E=typeof C.props=="function"?C.props(r,t):C.props??{},R=L.map((H,Z)=>{let q=H??{},$=C.item?.(q,Z,r)??{},Te=w($.reverse?[...C.parts].reverse():C.parts,q,!1,`item ${Z+1}: `);return C.flat?$.props?Te.map(ge=>({...ge,props:{...ge.props,...$.props,id:ge.props.id}})):Te:[I(Pt,{name:`${C.name} ${Z+1}`,...E,...$.props??{},[Et]:Te})]});if(C.groups){let H=C.groups;return k(C.key,L.length?`one Box per item (${L.length}), in a Box per group`:"nothing \u2014 the list is empty"),Pf(L.map(Z=>Z??{}),H.of,H.of).map((Z,q)=>{let $=Z.items.map(me=>me.item),Te=H.parts?w(H.parts,H.head?.($,r)??{},!1,`group ${q+1}: `):[],ge=Z.items.map(me=>R[me.index]),qe=H.perRow?.($.length,r),Ce=Number.isInteger(qe)&&qe>=1?qe:1,ve=[];if(H.perRow&&Ce<ge.length)for(let me=0;me*Ce<ge.length;me++)ve.push(ge.slice(me*Ce,(me+1)*Ce).flat());return I(Pt,{name:`${H.name} ${q+1}`,...H.props??{},[Et]:[...Te,I(Pt,{name:`${H.itemsName} ${q+1}`,...H.itemsProps?.($.length,r)??{},[Et]:ve.length?ve.map((me,Se)=>I(Pt,{name:`${H.rowName??`${H.itemsName} row`} ${Se+1}`,...H.rowProps??{},[Et]:me})):ge.flat()})]})})}let N=C.perRow?.(r),b=C.perRow?Number.isInteger(N)&&N>=1?N:1:0;if(k(C.key,(L.length?C.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 C.rowProps=="function"?C.rowProps(r,t):C.rowProps??{},A=[];for(let H=0;H*b<R.length;H++){let Z=R.slice(H*b,(H+1)*b).flat(),q=C.rowFiller?b-R.slice(H*b,(H+1)*b).length:0;A.push(I(Pt,{name:`${C.rowName??`${C.name} row`} ${H+1}`,..._,[Et]:[...Z,...Array.from({length:q},($,Te)=>I(Pt,{name:`Empty ${Te+1}`,...C.rowFiller,[Et]:[]}))]}))}return A},w=(C,F,k,L)=>{let E=[],R=(b,_)=>k?f(b,_):void 0,N=b=>k?h[b]:void 0;for(let b of C)if(!(b.when&&!b.when(r,k?void 0:F)))switch(b.kind){case"text":{let _=QI(F[b.key]);if(!_.text.trim()){R(b.key,"nothing \u2014 empty words draw nothing, so no block");break}let A=fY(b.role??"body"),{_partStyles:H,...Z}=A,q=uY(A,b.styleFrom?{...b.style,...b.styleFrom(r,t)}:b.style,N(b.key),b.props?.align);if(b.was&&k){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)}:{}})}E.push(I("Text",{text:b.mark==="accentLead"?dY(_.text):b.mark==="accentItalic"?cY(_.text):_.text,...Z,...b.props??{},...q,..._.hidden?{_hidden:!0}:{}})),R(b.key,`${L}Text block: its words${_.hidden?", hidden":""}`);break}case"button":{let _=QI(F[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 A=typeof F[b.href]=="string"&&F[b.href]?F[b.href]:"#",H={...b.style??{},...N(b.key)??{}};E.push(I("ButtonBlock",{label:_.text,href:A,...typeof b.props=="function"?b.props(F,t):b.props??{},...pY(b.variant,F),...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 _=F[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 A=b.alt&&typeof F[b.alt]=="string"?F[b.alt]:"";E.push(I("ImageBlock",{src:_,alt:A,...b.props??{}})),R(b.key,`${L}Image block: its picture`),b.alt&&R(b.alt,`${L}Image block: its alt text`);break}case"list":{E.push(...v(b,F,R));break}case"group":{let _=w(b.parts,F,k,L),A=y(b.box,b.props,F,`${b.name} Box`,!_.length&&!b.keepEmpty,L,R);A&&E.push(I(Pt,{name:b.name,...A,[Et]:_}));break}case"block":{let _=b.parts?w(b.parts,F,k,L):[],A=y(b.box,b.props,F,`${b.type} block`,!!b.parts&&!_.length&&!b.keepEmpty,L,R);A&&E.push(I(b.type,{...A,...b.slot?{[b.slot]:_}:{}}));break}case"core":{let _=b.as??e.type,A={headPlacement:"own-box",...b.props??{}},H=b.keep==="rest"?Object.keys(F).filter(q=>!u.has(q)&&!(q in A)):b.keep;for(let q of H)F[q]!==void 0&&(A[q]=F[q],R(q,`the ${_} block inside the Box`));if(b.keep==="rest"){for(let $ of Object.keys(b.props??{}))F[$]!==void 0&&!u.has($)&&R($,`nothing \u2014 the ${_} block inside the Box has the row's own value`);F.headPlacement!==void 0&&R("headPlacement",`the ${_} block inside the Box: own-box`);let q=Object.fromEntries(Object.entries(h).filter(([$])=>!u.has($)));Object.keys(q).length&&(A._partStyles=q)}for(let[q,$]of Object.entries(b.rename??{}))F[q]!==void 0&&(A[$]=F[q],R(q,`the ${_} block inside the Box: ${$}`));if(b.derive){Object.assign(A,b.derive.props(F,t));for(let q of b.derive.reads)F[q]!==void 0&&R(q,`the ${_} block inside the Box`)}let Z=typeof b.slots=="function"?b.slots(F,t):b.slots??{};for(let[q,$]of Object.entries(Z))A[q]=$.flatMap(Te=>"kind"in Te?v(Te,F,R):P([Te]));E.push(I(_,A));break}}return E},g=(C,F)=>{let k=F===0?"Box":`${C.name} Box`,L=w(C.parts,r,!0,F===0?"":`${k}: `),E=typeof C.boxProps=="function"?C.boxProps(r,t):C.boxProps??{},R=D1(C.box??[],E,r,(N,b,_)=>f(N,_?`nothing \u2014 the old value draws nothing (${k}: no ${b})`:`${k}: ${b}`),t);return{type:Pt,props:{name:C.name,...R,[Et]:L,id:lY(n,F)}}},T=[o,...o.also??[]].map(g);r._partStyles!==void 0&&f("_partStyles","each old part's style moved to its new part");for(let[C,F]of Object.entries(o.reads??{}))r[C]!==void 0&&f(C,F);for(let[C,F]of Object.entries(o.drop??{}))C in r&&(l.push({key:C,why:F}),d.add(C));for(let C of Object.keys(r))N1.has(C)||d.has(C)||l.push({key:C,why:"not in the row \u2014 not carried"});return{node:T[0],nodes:T,carried:s,dropped:l,siteWrites:[...o.site?.(e,t)??[]],restyled:c}}function z1(e,o=M1,t={}){if(!Array.isArray(e))return[];let r=[];return e.forEach((a,n)=>{let s=a&&typeof a.type=="string"&&o.includes(a.type)?va[a.type]:void 0;if(!s)return;let l=eg(a,s,t);l.skipped===void 0&&r.push({index:n,node:l.node,nodes:l.nodes})}),r}function W1(e){let o=IY(s=>s.appState.data.content),{theme:t,themeRow:r,themeFromDocument:a}=ce(),n=xY(new Set);hY(()=>{let s=gY({theme:t,themeRow:r,themeFromDocument:a});s&&bY(z1(o,void 0,s),e,n.current)},[o,e,t,r,a])}function gY(e){return e.themeFromDocument||e.themeRow==="none"?{}:e.themeRow==="read"?{theme:e.theme}:null}function bY(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(og,r,a[0]),a.slice(1).forEach((s,l)=>{o.insertNode(og,r+1+l,s),o.replaceComponent(og,r+1+l,s)}))}}import{ROOT_ZONE as zn,missingPinnedTypes as kY,pinnedDuplicateIds as ag}from"efficient-easel/draw";function G1(e){return!e.docId||e.saveStatus==="saving"?!1:e.seededDocId!==e.docId}function U1(e,o){let t=e.some(l=>l?.type===_e),r=e[e.length-1],a=!t&&r?.type===Ne?r:null,n=e.filter(l=>l?.type===Ne&&l!==a).map(l=>String(l.props?.id??"")).filter(Boolean),s=o.hasChromeDoc&&!t&&!a;return{remove:n,seedHeader:!e.some(l=>l?.type===ko),seedFooter:s,seedSiteHeader:s&&!e.some(l=>l?.type===De)}}async function $1(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!==De||!e.stillOpen())return!1;let r=e.latest();return r.some(a=>a?.type===De)?!1:(e.write(mf(r,t)),!0)}function j1(e,o){let{adapter:t,capabilities:r,currentSlug:a,docId:n,data:s,saveStatus:l,siteId:c,tokenRef:d}=CY(),f=vY(),{hasSiteSettings:h,hasPinnedChrome:u}=r;W1(e);let x=!!r.editsPinnedInPlace&&a!==et,I=a===et,y=wY().getState,P=SY(null);yY(()=>{if(!G1({docId:n,saveStatus:l,seededDocId:P.current})||(P.current=n,!u))return;let v=y().appState.data,w=v.content,g=s?.content??[],T=(L,E)=>L.some(R=>R?.type===E);if(!h){let L=new Set(ag(w)),E=L.size?w.filter(N=>!L.has(N.props.id)):w;if(L.size&&e.setDocument({...v,content:E}),I)return;let R=kY(E,g);if(R.includes(Ne)){let N=E.length,b=e.insertSection(Ne,N);e.replaceComponent(zn,N,{type:Ne,props:{id:b,blocks:Sf()}})}R.includes(ko)&&e.insertNode(zn,0,yf());return}if(I){let L=Bn(w);if(L!==w&&e.setDocument({...v,content:[...L]}),!L.find(E=>E.type===Ne)&&!T(g,Ne)&&!T(L,_e)&&!T(g,_e)){let E=(N,b)=>tg(o,N,b),R={type:Ne,props:{blocks:Sf()}};e.insertNode(zn,L.length,wl(R,E,rg(_e)))}return}if(x){let L=!!t?.pinnedChrome?.state().docId,E=U1(w,{hasChromeDoc:L}),R=new Set([...E.remove,...ag(w.filter(b=>!E.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({...v,content:N}),E.seedFooter&&!T(g,Ne)&&!T(g,_e)){let b=(A,H)=>tg(o,A,H),_={type:Ne,props:{blocks:Sf()}};e.insertNode(zn,N.length,wl(_,b,rg(_e)))}if(E.seedHeader&&!T(g,ko)){let b=N[0]?.type===De?1:0;e.insertNode(zn,b,yf())}if(E.seedSiteHeader&&!T(g,De)&&!T(g,Ne)&&!T(g,_e)){let b=n;$1({blocks:Ui(f),make:(_,A)=>tg(o,_,A),id:rg(De),siteId:c??null,token:d.current,latest:()=>y().appState.data.content,stillOpen:()=>P.current===b,write:_=>{let A=y().appState.data;e.setDocument({...A,content:[..._]})}})}return}let C=w.filter(L=>L.type!==Ne),F=new Set(ag(C)),k=F.size?C.filter(L=>!F.has(L.props.id)):C;k.length!==w.length&&e.setDocument({...v,content:k}),!T(k,ko)&&!T(g,ko)&&e.insertNode(zn,0,yf())},[n,l,s,y,e,h,u,I,x,t,f,c,d])}import{useEffect as J1,useMemo as AY,useRef as Q1}from"react";import{useEasel as FY}from"efficient-easel/easel";import{useEaselHost as LY}from"efficient-easel/screen/lib/host";import{FIELD_DESCRIPTION_MARKER as TY}from"efficient-easel/screen/lib/host";import{isNode as ng}from"efficient-easel/data";function sg(e,o){let t=e.components[o]?.label;return typeof t=="string"&&t.trim()?t.trim():o}function PY(e){return e.length>3&&e.endsWith("s")?e.slice(0,-1):e}function lg(e,o,t,r){e.forEach((a,n)=>{if(ng(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(ng)&&lg(l,a,s,r)}})}function EY(e){let o=[];lg(Array.isArray(e.content)?e.content:[],null,"",o);for(let t of Object.values(e.zones??{}))Array.isArray(t)&&lg(t,null,"",o);return o}function q1(e,o){return EY(e).find(t=>String(t.node.props.id)===o)}function V1(e,o,t){if(!t)return null;let r=q1(o,t);if(!r)return null;let a=sg(e,r.node.type),n=r.parent?`${sg(e,r.parent.type)} \xB7 ${PY(r.slot)} ${r.index+1}`:a;return{blockId:t,type:r.node.type,label:n,path:""}}var OY=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 _Y(e){if(!e||typeof e!="object")return null;let o=e;if(typeof o.type!="string")return null;let t=o.type==="custom"?o[TY]: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=OY(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=_Y(r);a&&(o[t]=a)}return o}function X1(e){let o={};for(let[t,r]of Object.entries(e.components))r&&(o[t]={label:sg(e,t),fields:Y1(r.fields)});return o}function RY(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 ig(e,o){return e.findIndex(t=>ng(t)&&String(t.props.id)===o)}function K1(e,o,t){let r=o||t;if(!r)return e.length;let a=ig(e,r);if(a<0)throw new Error(`there is no top-level block ${r}`);return o?a+1:a}function Z1(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=q1(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 f=RY(d.node.props,s.path)??c(`there is no ${s.path} in that block`);Object.assign(f,structuredClone(s.props));break}case"insert_block":{let d=e.components[s.type]??c(`there is no block type ${s.type}`),f=d.defaultProps&&typeof d.defaultProps=="object"?d.defaultProps:{},h={type:s.type,props:{...structuredClone(f),...structuredClone(s.props),id:r(s.type)}};n.splice(K1(n,s.after,s.before),0,h);break}case"remove_block":{let d=ig(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=ig(n,s.block_id);d<0&&c(`there is no top-level block ${s.block_id}`);let[f]=n.splice(d,1);n.splice(K1(n,s.after,s.before),0,f);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 cg=e=>oe(e.requestId)??null;function e_(){let e=LY(),{appState:o,selectedItem:t,dispatch:r,history:a,config:n}=FY(u=>u),s=n,l=Q1({appState:o,dispatch:r,history:a,blockConfig:s});l.current={appState:o,dispatch:r,history:a,blockConfig:s};let c=Q1(new Map),d=t?.props?.id,f=AY(()=>V1(s,o.data,d),[s,o.data,d]),h=f?JSON.stringify(f):"";J1(()=>{e.connected&&e.send("storefront-editor:selection",{selection:f})},[e,h]),J1(()=>e.subscribe(u=>{let{appState:x,dispatch:I,history:y,blockConfig:P}=l.current;switch(u.type){case"storefront-editor:request-document":{let v=cg(u);if(!v)return;e.send("storefront-editor:document",{requestId:v,document:x.data,blocks:X1(P)});return}case"storefront-editor:apply-page-edits":{let v=cg(u);if(!v)return;let w=Array.isArray(u.ops)?u.ops:[],g=w.length?Z1(P,x.data,w,T=>`${T}-${crypto.randomUUID()}`):{ok:!1,reason:"no changes"};g.ok&&(I({type:"setData",data:g.document,recordHistory:!0}),c.current.set(v,JSON.stringify(g.document.content??[]))),e.send("storefront-editor:page-edits-result",{requestId:v,applied:g.ok,reason:g.ok?null:g.reason});return}case"storefront-editor:undo-page-edits":{let v=cg(u);if(!v)return;let w=c.current.get(v),g=w!==void 0&&w===JSON.stringify(x.data.content??[]);g&&y.hasPast&&(y.back(),c.current.delete(v)),e.send("storefront-editor:page-edits-result",{requestId:v,applied:g&&y.hasPast,reason:g?null:"the page has changed since"});return}case"storefront-editor:set-right-panel":typeof u.shown=="boolean"&&I({type:"setUi",ui:{rightSideBarVisible:u.shown}});return;default:return}}),[e])}import{useEffect as r_,useState as a_}from"react";var Lf=new Map;async function BY(e,o){try{return(await We().site.get({siteId:o})).slug?.trim()||null}catch(t){return console.warn("[editor-site-slug] could not resolve the site slug",t),null}}function o_(e,o){let t=Lf.get(o);return t||(t=BY(e,o),Lf.set(o,t),t.catch(()=>{Lf.get(o)===t&&Lf.delete(o)})),t}var DY=/^(localhost|(?:[a-z0-9-]+\.)+localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|::1)$/i;function dg(e){return!!e&&DY.test(e)}function t_(e){let{pageSlug:o,siteSlug:t,hostname:r}=e,a=o===Hi?"/":`/${encodeURIComponent(o)}`;if(!dg(r))return a;let n=t?.trim();return n?`${a}?site=${encodeURIComponent(n)}`:a}function n_(e){let{pageSlug:o,siteId:t,token:r}=e,[a,n]=a_(null),[s,l]=a_(null),c=$a();r_(()=>l(c?new URL(c).hostname:window.location.hostname),[c]),r_(()=>{if(!dg(s)||!t||!r){n(null);return}let f=!1;return o_(r,t).then(h=>{f||n(h)}),()=>{f=!0}},[s,t,r]);let d=t_({pageSlug:o,siteSlug:a,hostname:s});return c?`${c}${d}`:d}import{jsx as Ol}from"react/jsx-runtime";import{useEffect as NY,useRef as s_,useState as MY}from"react";import{ExternalIcon as l_}from"efficient-easel/icons";import{EaselIconButton as HY}from"efficient-easel/chrome";import{Tooltip as zY,iconButtonClasses as WY}from"efficient-shell/ui";import{useSettledPress as GY}from"efficient-easel/easel";import{useScreenDocument as UY}from"efficient-easel/screen/components/ScreenDocumentContext";async function $Y({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 i_({liveHref:e,pageId:o,draftLink:t}){let{flushSave:r}=UY(),a=s_(r);a.current=r;let n=GY(),[s,l]=MY(!1),c=s_(null);if(NY(()=>()=>c.current?.(),[]),t&&o){let d=()=>new Promise((h,u)=>{c.current=()=>h(!1),n.run(()=>{c.current=null,a.current().then(h,u)})}),f=()=>{s||n.waiting||(l(!0),$Y({pageId:o,liveHref:e,draftLink:t,ready:d}).finally(()=>l(!1)))};return Ol(HY,{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:f,children:Ol(l_,{})})}return Ol(zY,{content:i("Preview the live site (opens in a new tab)"),side:"bottom",children:Ol("a",{className:WY({className:"es-iconbtn"}),href:e,target:"_blank",rel:"noopener noreferrer","aria-label":i("Preview the live site in a new tab"),children:Ol(l_,{})})})}import{createElement as YY,useCallback as XY,useEffect as k_,useRef as T_,useState as ZY}from"react";import{ClockIcon as JY}from"efficient-shell/icons/efficient";import{useScreenDocument as QY}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSyncExternalStore as jY}from"react";import{useScreenDocument as KY}from"efficient-easel/screen/components/ScreenDocumentContext";var qY=()=>()=>{},c_=()=>null;function Bf(e){return jY(e?e.subscribe:qY,e?e.state:c_,e?e.state:c_)}function Df(){let{adapter:e}=KY();return e?.pinnedChrome}import{useSyncExternalStore as u_}from"react";var _l=!1,Wn=null,fg=new Set;function Al(){for(let e of fg)e()}function p_(e){return fg.add(e),()=>{fg.delete(e)}}function m_(){_l||(_l=!0,Al())}function h_(){_l&&(_l=!1,Al())}function d_(){return _l}function x_(){return u_(p_,d_,d_)}function f_(){return Wn}function Nf(){Wn&&(Wn=null,Al())}function I_(){return u_(p_,f_,f_)}var Rl=class extends Error{constructor(){super("The editor's last changes could not be saved, so nothing was restored."),this.name="HeldEditsNotSaved"}};async function g_(e,o,t,{flushSave:r,reload:a}){if(!await r())throw new Rl;let n=await e.restore(o,t);return Zi(n.liveState),a(),n}async function b_({access:e,version:o,page:t,...r}){let a=await g_(e,o.id,t?{page:t.id}:{},r);Wn={title:VY(o,t??null),undo:a.undo},Al()}async function y_({access:e,...o}){let t=Wn?.undo;t&&(await g_(e,t,{},o),Wn=null,Al())}function S_(e){return e.name?e.name:e.kind==="draft_before_restore"?i("Draft before restore"):i("Version {n}",{n:e.number})}function VY(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 w_(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(Bu(),{type:"conjunction"}).format(t)}catch{return t.join(", ")}}function C_(e){return e.change==="take_down"?i("{name} (taken down)",{name:e.name}):e.name}function v_(e,o=new Date){let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let r=Bu(),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 P_(e){let{docId:o,capabilities:t,hasUnsavedEdits:r,onPublish:a,adapter:n}=QY(),s=fO(dO(o??null),r),l=Bf(Df()),c=n.siteLiveState;k_(()=>{if(c)return im(c),Bt(0),()=>im(null)},[c]);let d=Ji(),[f,h]=ZY(!1),u=T_(e);u.current=e;let x=T_(!0);k_(()=>(x.current=!0,()=>{x.current=!1}),[]);let I=XY(()=>{h(!0),a(u.current).then(()=>{Nf()}).finally(()=>{x.current&&h(!1)})},[a]);if(t.canPublish){if(c){let y=d===void 0?void 0:r||d.state==="changed"?"changed":"live",P=vI({live:y,onPress:I,busy:f,goingLive:uO(d?.changes??[])});return n.siteVersions?{...P,menuItems:eX()}:P}return vI({live:s,onPress:I,busy:f,pinnedUnpublished:l?.unpublished??!1})}}function eX(){return[{key:"version-history",label:i("Version history"),icon:YY(JY),onSelect:m_}]}import{jsx as X,jsxs as Lo,Fragment as Bl}from"react/jsx-runtime";import{useCallback as oX,useEffect as tX,useId as __,useRef as rX,useState as Go}from"react";import{useSettledAction as aX}from"efficient-easel/easel";import{Avatar as nX,Banner as Fl,Button as ka,ColoredBadge as ug,Dialog as R_,Drawer as sX,DropdownMenu as lX,FormField as A_,iconButtonClasses as iX,Inline as pg,Input as cX,ListRow as dX,Select as fX,SortableList as uX,Stack as Ll}from"efficient-shell/ui";import{EditIcon as pX,EyeIcon as E_,MenuIcon as mX,MoreIcon as hX,PageIcon as F_,RevertIcon as O_,StylesIcon as xX}from"efficient-shell/icons/efficient";import{useScreenDocument as L_}from"efficient-easel/screen/components/ScreenDocumentContext";var IX={page:F_,menu:mX};function gX(e,o){return e.pages.find(t=>t.id===o)??e.pages[0]??null}function bX(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 yX({version:e,page:o,waiting:t,busy:r,error:a,onCancel:n,onConfirm:s,onPage:l}){let c=__();if(!e)return null;let d=e.kind==="draft_before_restore",f=e.number,h=w_(e),u=d?i("Put your drafts back?"):o?i("Restore {page} from version {n}?",{page:o.name,n:f}):i("Restore version {n}?",{n:f}),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:f}):h?i("The whole website goes back to version {n} as a draft: {what}.",{n:f,what:h}):i("The whole website goes back to version {n} as a draft.",{n:f}),I=e.deletedPictures??0;return X(R_,{open:!0,onClose:()=>{r||n()},size:"sm",title:u,footer:Lo(Bl,{children:[X(ka,{variant:"secondary",onClick:n,disabled:r,children:i("Cancel")}),X(ka,{onClick:s,loading:r,disabled:r,children:i("Restore as draft")})]}),children:Lo(Ll,{gap:4,children:[o&&e.pages.length>1?X(A_,{label:i("Page"),htmlFor:c,children:X(fX,{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.")}),I>0?X(Fl,{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.",I)}):null,t?X(Fl,{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(Fl,{tone:"danger",children:a}):null]})})}function SX({version:e,onCancel:o,onSave:t}){let r=__(),[a,n]=Go(null),[s,l]=Go(""),[c,d]=Go(!1),[f,h]=Go(null);if(e!==a&&(n(e),l(e?.name??""),h(null)),!e)return null;let u=s.trim()===e.name,x=async()=>{if(!(c||u)){d(!0),h(null);try{await t(s.trim())}catch{h(i("The name was not saved. Try again."))}finally{d(!1)}}};return X(R_,{open:!0,onClose:()=>{c||o()},size:"sm",title:i("Name this version"),footer:Lo(Bl,{children:[X(ka,{variant:"secondary",onClick:o,disabled:c,children:i("Cancel")}),X(ka,{onClick:()=>{x()},loading:c,disabled:c||u,children:i("Save")})]}),children:X(A_,{label:i("Name"),htmlFor:r,hint:i("Named versions are always kept. Leave it empty to take the name away."),error:f??void 0,children:X(cX,{id:r,value:s,invalid:!!f,onChange:I=>l(I.target.value),onKeyDown:I=>{I.key==="Enter"&&x()}})})})}function wX({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,f=[...l?[]:[{key:"preview",label:i("Preview"),icon:X(E_,{}),onSelect:r}],...c?[{key:"restore",label:l?i("Put these drafts back"):i("Restore whole website"),icon:X(O_,{}),onSelect:a}]:[],...c&&!l&&e.pages.length?[{key:"restore-page",label:i("Restore one page only"),icon:X(F_,{}),onSelect:n}]:[],...l?[]:[{type:"divider",key:"divider"},{key:"name",label:i("Name this version"),icon:X(pX,{}),onSelect:s}]];return X(dX,{title:Lo("span",{className:"sf-version-title",children:[X("span",{children:S_(e)}),e.live?X(ug,{tone:"success",size:"xs",children:i("Live")}):null,e.name?X(ug,{tone:"neutral",size:"xs",children:i("Version {n}",{n:e.number})}):null,l?X(ug,{tone:"warning",size:"xs",children:i("Not published")}):null]}),expanded:o,onToggle:t,actions:X(lX,{align:"end","aria-label":i("More"),items:f,triggerClassName:iX({variant:"ghost",size:"sm"}),trigger:X(hX,{})}),below:Lo(Ll,{gap:3,children:[Lo(pg,{gap:2,align:"center",wrap:!0,className:"sf-version-meta",children:[X(nX,{name:e.createdBy,size:"xs"}),X("span",{children:e.createdBy}),X("span",{"aria-hidden":"true",children:"\xB7"}),X("span",{children:v_(e.createdAt)}),d?Lo(Bl,{children:[X("span",{"aria-hidden":"true",children:"\xB7"}),X("span",{children:mo("{n} change","{n} changes",d)})]}):null]}),o?Lo(Ll,{gap:3,children:[d?X(Ll,{gap:2,children:e.changes.map(h=>{let u=IX[h.kind]??xX;return Lo(pg,{gap:2,align:"center",children:[X(u,{size:16}),X("span",{children:C_(h)})]},`${h.kind}:${h.id}`)})}):null,Lo(pg,{gap:2,children:[l?null:X(ka,{variant:"secondary",size:"sm",leftIcon:X(E_,{}),onClick:r,children:i("Preview")}),c?X(ka,{variant:"secondary",size:"sm",leftIcon:X(O_,{}),onClick:a,children:i("Restore")}):null]})]}):null]})})}function CX({open:e,onClose:o,access:t,waiting:r}){let{flushSave:a,reloadFromServer:n,docId:s}=L_(),[l,c]=Go(null),[d,f]=Go(!1),[h,u]=Go(null),[x,I]=Go(null),[y,P]=Go(!1),[v,w]=Go(null),[g,T]=Go(null),[C,F]=Go(!1),k=rX(0),L=oX(()=>{let b=++k.current;f(!1),t.list().then(_=>{b===k.current&&c(_)},()=>{b===k.current&&f(!0)})},[t]);tX(()=>{e&&L()},[e,L]);let E=b=>{F(!1),bX(t,b.id).catch(()=>F(!0))},R=async()=>{if(!(!x||y)){P(!0),w(null);try{await b_({access:t,version:x.version,page:x.page,flushSave:a,reload:n}),I(null),o()}catch(b){w(b instanceof Rl?i("Your last changes did not save, so nothing was restored. Try again."):i("The version was not restored. Nothing changed. Try again."))}finally{P(!1)}}},N=aX({onPress:()=>{R()},busy:y});return Lo(Bl,{children:[X(sX,{open:e,onClose:o,side:"right",size:"md",title:i("Version history"),description:Lo(Bl,{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:Lo(Ll,{gap:3,children:[C?X(Fl,{tone:"danger",onDismiss:()=>F(!1),children:i("The preview did not open. Try again.")}):null,d?X(Fl,{tone:"danger",action:X(ka,{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(uX,{"aria-label":i("Versions"),spacing:"comfortable",children:l.map(b=>X(wX,{version:b,expanded:h===b.id,onToggle:()=>u(_=>_===b.id?null:b.id),onPreview:()=>E(b),onRestore:()=>{w(null),I({version:b,page:null})},onRestorePage:()=>{w(null),I({version:b,page:gX(b,s)})},onName:()=>T(b)},b.id))})]})}),X(yX,{version:x?.version??null,page:x?.page??null,waiting:r,busy:N.busy===!0,error:v,onCancel:()=>I(null),onConfirm:N.onPress,onPage:b=>I(_=>_&&{..._,page:_.version.pages.find(A=>A.id===b)??_.page})}),X(SX,{version:g,onCancel:()=>T(null),onSave:async b=>{await t.name(g.id,b),T(null),L()}})]})}function B_(){let{adapter:e,hasUnsavedEdits:o}=L_(),t=e.siteVersions,r=x_(),a=Ji();return t?X(CX,{open:r,onClose:h_,access:t,waiting:o||a?.state==="changed"}):null}import{useEaselSession as uB}from"efficient-easel/screen/lib/session-context";import{buildPaletteSections as F1e,categoryLabel as L1e,paletteWithoutPinned as B1e,pinnedSection as D1e}from"efficient-easel/screen/lib/document/palette-sections";var vX={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 D_(e){return vX[e]?.label}var N_=Wu;import{currentEaselSession as mL}from"efficient-easel/screen/lib/session";var M_=[{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"},{text:"Ticker item"}],W1e={label:"Scrolling Bar",defaultProps:{items:[],tone:"scrim",borders:!0,size:$u,separator:ju,scrollDirection:sl}};var H_=()=>[{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"},{text:i("Spec label"),tone:"normal"},{text:i("Spec value"),tone:"muted"}],$1e={label:"Spec Strip",defaultProps:{cells:[{text:"",tone:"normal"},{text:"",tone:"normal"}],fill:"dark"}};var Mf={direction:"column",justify:"between",gap:14,sectionPaddingLeft:14,sectionPaddingRight:14,sectionPaddingLeftPhone:0,sectionHeightMode:"fixed",sectionHeightValue:280,sectionHeightUnit:"px",sectionHeightModePhone:"auto"},Dl={name:"Year and title",direction:"column",gap:14};var Ta={direction:"row",share:"content",align:"center"},Nl={top:14,bottom:14,topPhone:12,bottomPhone:12},Hf={wrap:"nowrap",loop:"scroll",sectionAccent:um,gap:60,gapPhone:32,separator:"dot",sectionBorder:{top:1,bottom:1}},z_={gap:120,gapPhone:64},zf={textStyle:"body-5",sizeToken:{step:"label",px:14,pxPhone:12},letterSpacing:.25,case:"upper",lineHeight:1.5},W_={textStyle:"heading-3",letterSpacing:.005,case:"upper",lineHeight:1},Ml={top:16,bottom:16,topPhone:12,bottomPhone:12},Wf={justify:"between",wrap:"wrap",gap:32,separator:"none"},Hl={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 G_(e,o,t){return ae(V,e,o,{...t,sectionPaddingTop:void 0,sectionPaddingBottom:void 0})}var Gf={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,No()),ae("Text",e,o),ae("Stats",e,o)]}),G_(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,No()),ae("Text",e,o),ae("ButtonBlock",e,o)]}),G_(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,No()),ae("Text",e,o),ae("Form",e,o)]}}),Ticker:(e,o)=>U_("Scrolling Bar",Hf,Nl,M_.map(t=>({text:t.text,style:zf,muted:!0})),e,o),SpecStrip:(e,o)=>U_("Spec Strip",{...Wf,sectionBorder:{top:1}},Ml,H_().map(t=>({text:t.text??"",style:Hl,muted:t.tone==="muted"})),e,o),TimelineTrack:(e,o)=>{let t=r=>ae(V,e,o,{...Mf,name:"Year",sectionPaddingTop:0,sectionPaddingBottom:0,...r?{upcoming:!0}:{},content:[ae(V,e,o,{...Dl,sectionPaddingTop:0,sectionPaddingBottom:0,content:[ae("Text",e,o,ho()),ae("Text",e,o,No())]}),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,No()),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:[25],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,No()),ae("Text",e,o)]})]});return{type:V,props:{...e(V),id:o(V),direction:"row",share:[33],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,No()),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 U_(e,o,t,r,a,n){return ae(V,a,n,{...Ta,...o,blockSpacing:"gap",padV2:!0,name:e,sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom,sectionPaddingTopPhone:t.topPhone,sectionPaddingBottomPhone:t.bottomPhone,content:r.map(s=>ae("Text",a,n,{text:s.text,...s.muted?{tone:"dim"}:{},_partStyles:{text:s.style}}))})}function $_(e){return Gf[e]??null}import{phoneKey as _X}from"efficient-easel/draw";var j_={label:"Button",defaultProps:{label:"",href:"#",variant:"primary",align:"left",contained:!0}};import{jsx as kX}from"react/jsx-runtime";var Uf={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}},K_=new Set(Object.keys(Uf)),V_=new Set(["Flex","Text","Heading","ImageBlock"]),TX=new Set(["Divider"]),PX=new Set(["Hero","HeroSingle","IntroBleed","CategoryBar","DocTabs"]),q_=new Set(["ProductGrid"]);function mg(e,o,t=!1){let r=e.render;e.render=a=>{if(o?.(a))return r(a);let n=sc(NC(a,Cm,t)),s=r(a),l=ev(a);return n?kX("div",{className:l?`${n.className} ${l}`:n.className,style:n.style,children:s}):s}}var l_e={name:"sectionPadding",applies:(e,o,t)=>o.isSection(e)&&!PX.has(e)&&!!t&&typeof t.render=="function",panel(e,o,t){K_.has(o)||q_.has(o)||(e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})})},draw(e,o){if(K_.has(o)){let t=e.render,r=Uf[o];e.render=a=>{let n=lc(a,r);return t({...a,padTop:n.top,padBottom:n.bottom})};return}if(q_.has(o)){mg(e);return}V_.has(o)||TX.has(o)||mg(e,o==="Flex"?t=>Jd(t.bgImage):void 0,!0)}},EX=["Heading","Text","ImageBlock"],OX=["LogoBlock"],i_e={name:"blockPadding",applies:(e,o,t)=>(EX.includes(e)||OX.includes(e))&&!!t&&typeof t.render=="function",panel(e,o,t){e.fields={...e.fields,...t.sidesPaddingFields({tablet:!0})}},draw(e,o){V_.has(o)||mg(e,void 0,!0)}};import{parseHexColor as RX}from"efficient-shell/format";var Un={...K,[Br]:""},{label:k_e,href:T_e,...AX}=j_.defaultProps,Ve=AX,Vt={buttonFillOpacity:0,buttonBorder:{width:0},buttonPaddingTop:0,buttonPaddingRight:0,buttonPaddingBottom:0,buttonPaddingLeft:0},ie={...vi,sectionAccent:0},ue=["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,_X(e)]),"widthFit","widthFitTablet","widthFitPhone","width","widthTablet","widthPhone","minWidth","minWidthTablet","minWidthPhone","maxWidth","maxWidthTablet","maxWidthPhone"],Gn="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",pe={sectionSurface:"read by nothing in src/ (searched 2026-10-24): a retired theme key that draws nothing today, so dropping it changes nothing",widthMode:Gn,fullWidth:Gn,pageWidth:Gn,backgroundWidth:Gn,contentWidth:Gn,contentMax:Gn},ke=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 Le=e=>["sectionPaddingTop","sectionPaddingBottom","sectionPaddingTopTablet","sectionPaddingBottomTablet","sectionPaddingTopPhone","sectionPaddingBottomPhone"].map(o=>[o,o,(t,r)=>ye(r,typeof e=="function"?e(r):e)[o]]);function To(e,o){let t=lc(e,Uf[o]);return{sectionPaddingTop:t.top,sectionPaddingBottom:t.bottom}}var Cr=e=>[["padTop","sectionPaddingTop",(o,t)=>To(t,e).sectionPaddingTop],["padBottom","sectionPaddingBottom",(o,t)=>To(t,e).sectionPaddingBottom],["sectionPaddingTop","sectionPaddingTop",(o,t)=>To(t,e).sectionPaddingTop],["sectionPaddingBottom","sectionPaddingBottom",(o,t)=>To(t,e).sectionPaddingBottom]],FX={kind:"heading-case-upper",styles:["heading-1","heading-2","heading-3"]},P_e=e=>o=>ro(o.props[e])?[FX]:[],Ie=(e,o)=>({kind:"text",key:e,role:"eyebrow",props:K,...o?{style:o}:{}}),Y_=e=>e.background!=="transparent",LX=(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},zl={align:"right",alignPhone:"left"},BX=(e,o,t)=>{let r=a=>LX(a[e],a[o]);return{kind:"block",type:"Text",when:(a,n)=>n!==void 0&&r(n)!=="",box:[[e,"text",(a,n)=>r(n)],[o,"text",(a,n)=>r(n)]],props:t}},Wl=(e,o,t,r={})=>BX(e,o,{...Un,...zl,...r,_partStyles:{text:{textStyle:"body-5",color:"labels",...t,case:"upper",...zl}}}),Gl=(e,o)=>typeof e=="number"&&Number.isInteger(e)&&e>=0?e:Af(o)?.selected??0,X_="var(--site-surface)",Z_="var(--site-surface-2)",Ul=(e,o)=>Af(o)?.themes[Gl(e.sectionAccent??0,o)],Po=e=>(o,t)=>{let r=Ul(o,t)?.[e];return r?{fillColor:r}:{}},J_=e=>e.startsWith("#")&&RX(e)!==null,$f=(e,o,t)=>{let r=e?.trim();if(r&&J_(r))return{fillColor:r};if(r===X_)return Po("surface")(o,t);let a=r===Z_?Ul(o,t):void 0;return a?{fillColor:ui(a)}:{}},jf=e=>{let o=e?.trim();return!o||o==="transparent"||o===po||o===X_||o===Z_||J_(o)?void 0:"it paints a colour that no Box Fill can hold"},$l=(e,o)=>{let t=Ul(e,o)?.line;return t?{buttonBorder:{width:1,color:t}}:{}},Pa=(e,o)=>{let t=Af(o)?.themes;return t&&Y_(e)?Nb(t,Gl(e.sectionAccent,o)):-1},vr=(e,o,t)=>{let r=Pa(o,t);return r>=0?r:e},Ea=(e,o)=>{let t=Pa(e,o);return t>=0?{sectionAccent:t}:{}},kr=(e,o)=>Y_(e.props)&&Pa(e.props,o)<0?[{kind:"band-preset",page:Gl(e.props.sectionAccent,o)}]:[],$n=e=>ld(e.site?.siteGutter),jl=Object.fromEntries(["Top","Right","Bottom","Left","TopPhone","RightPhone","BottomPhone","LeftPhone"].map(e=>[`sectionPadding${e}`,0])),Kl=e=>({top:0,right:0,bottom:0,left:0,...e}),hg=(e,o,t,r=[])=>({kind:"group",name:e,keepEmpty:!0,props:(a,n)=>({...D,...jl,...Po("surface")(a,n),...typeof t=="function"?t(a,n):t}),box:[[o,"bgImage"],Be.kind,Be.duration,Be.delay],parts:r});import{phoneKey as DZ,readHidable as Bg}from"efficient-easel/draw";import{jsx as ei,Fragment as CZ,jsxs as SR}from"react/jsx-runtime";import{jsx as vg,jsxs as iZ}from"react/jsx-runtime";import{jsx as DX}from"react/jsx-runtime";function Q_(){return DX("span",{className:"block h-px w-[30px] bg-current"})}import{jsxs as Zl,jsx as Ue}from"react/jsx-runtime";import{Fragment as mR}from"react";import{Fragment as JX,jsx as wg}from"react/jsx-runtime";import{Fragment as aR,jsx as Vl,jsxs as $X}from"react/jsx-runtime";import{createContext as Sg,useContext as Yl,useEffect as jX,useId as KX,useMemo as qX,useRef as VX}from"react";import{armEntrance as YX}from"efficient-shell/format";import{jsx as HX}from"react/jsx-runtime";import{useEffect as rR,useRef as tR,useState as zX}from"react";import{armEntrance as WX,entranceAttrs as GX,playEntrance as UX}from"efficient-shell/format";import{jsx as ql}from"react/jsx-runtime";import{createContext as oR,useContext as Oa}from"react";var eR={stretchedRow:!1,fillingColumn:!1},_a=oR(null),L_e=()=>Oa(_a)!==null,B_e=()=>Oa(_a);var Kf=oR(!1);function NX(){let e=Oa(_a)?.stretchedRow===!0,o=Oa(Kf);return e&&!o}var MX=()=>Oa(Kf);function xg(){let e=Oa(_a),o=NX(),t=MX();return{fill:t?` ${JC}`:"",inner:r=>{let a=o||t?ql(Kf.Provider,{value:!0,children:r}):r;return e?.columnsRow?ql(_a.Provider,{value:{...e,columnsRow:!1},children:a}):a}}}function D_e({className:e,style:o,attrs:t,children:r}){let{fill:a,inner:n}=xg();return ql("div",{className:`${e}${a}`,...o?{style:o}:{},...t,children:n(r)})}function N_e({children:e}){let o=Oa(_a),t=o===null?null:o.id===void 0?eR:{...eR,id:o.id};return ql(_a.Provider,{value:t,children:ql(Kf.Provider,{value:!1,children:e})})}function gg({desktop:e,phone:o,editing:t,boxClass:r,boxAttrs:a,boxStyle:n,children:s}){let l=tR(null),c=xg(),d=bg(l),f=d?o:e,{attrs:h,style:u}=GX(f),x=tR(Ig.seed(e,o)),I=JSON.stringify(e),y=JSON.stringify(o);return rR(()=>{let P=l.current;if(P){if(t){let v=Ig.next(x.current,e,o,d);x.current=v.seen,v.play&&UX(P);return}return WX(P)}},[I,y,d,t]),HX("div",{ref:l,className:`${Gd}${c.fill}${r?` ${r}`:""}`,...a,...h,...Object.keys(u).length||n?{style:{...n,...u}}:{},children:c.inner(s)})}var Ig={seed(e,o){return{desktop:JSON.stringify(e),phone:JSON.stringify(o)}},next(e,o,t,r){let a=Ig.seed(o,t);return{play:r?a.phone!==e.phone:a.desktop!==e.desktop,seen:a}}};function bg(e,o=!0){let[t,r]=zX(!1);return rR(()=>{if(!o)return;let a=e.current?.ownerDocument?.defaultView??(typeof window>"u"?null:window);if(!a?.matchMedia)return;let n=a.matchMedia(Za),s=()=>r(n.matches);return s(),n.addEventListener("change",s),()=>n.removeEventListener("change",s)},[e,o]),t}var qf=Sg(null),sR=Sg(null),lR=Sg(null);function Q_e({needles:e,styles:o,motions:t=CE,type:r,children:a}){let n=KX(),s=JSON.stringify([n,e,o,t,r]),l=qX(()=>{let d=Object.keys(t).filter(f=>kE(t[f]));return ZT(e,o,n,f=>ul(r,f),f=>qT(r,f),f=>d.includes(f)?mI(t[f]):null,d)},[s]);if(!l)return Vl(aR,{children:a});let c=JT(l);return $X(aR,{children:[c&&Vl("style",{href:`${XX}${n}-${ZX(c)}`,precedence:cR,dangerouslySetInnerHTML:{__html:c.replace(/</g,"\\3c ")}}),Vl(qf.Provider,{value:l,children:a})]})}var yg=new WeakMap;function nR(e,o){let t=PE(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(Qd,"")):e.removeAttribute(Qd)}function iR(e){let o=VX(null),t=e?.motion?.entrance??null,r=e?.motion?.hover==="lift",a=bg(o,t!==null),n=JSON.stringify(t);return jX(()=>{let s=o.current,l=EE(s?.parentElement??null);if(!t&&!r||!s||!l)return;let c=t?()=>{let h=TE(l,a?t.phone:t.desktop),u=YX(l);return()=>{u?.(),h()}}:null,d=yg.get(l)??[];yg.set(l,d);let f={element:s,arm:c,lift:r};return d.push(f),nR(l,d),()=>{let h=d.indexOf(f);h<0||(d.splice(h,1),f.undo?.(),f.undo=void 0,nR(l,d),d.length||yg.delete(l))}},[n,r,a]),o}var cR="sf-part-styles",XX=`${cR}-`;function ZX(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 dR(e){let o=Yl(qf),t=Yl(sR),r=QT(o,e);return r&&r.stamp!==t?r:null}function eRe(e){return ex(Yl(qf),e)}function fR({stamp:e,children:o}){return Vl(sR.Provider,{value:e,children:o})}function oRe({children:e}){let o=Yl(qf);return Vl(lR.Provider,{value:o,children:e})}function tRe(e){return ex(Yl(lR),e)}function Xl({value:e,children:o}){let t=dR(e),r=iR(t);return t?wg(fR,{stamp:t.stamp,children:wg("span",{ref:r,[$h]:t.stamp,...t.textStyle?{[In]:t.textStyle}:{},children:o})}):wg(JX,{children:o})}import{jsx as Cg,Fragment as QX}from"react/jsx-runtime";function uR({className:e=""}){return Cg("sup",{className:`text-accent tracking-normal text-[length:min(1em,max(0.75em,11px))] ${e}`,children:"\xAE"})}function Vf(e){if(!e.includes("\xAE"))return e;let o=e.split("\xAE"),t=[];return o.forEach((r,a)=>{r&&t.push(r),a<o.length-1&&t.push(Cg(uR,{},`r${a}`))}),Cg(QX,{children:t})}var cRe=uR;function Uo(e,o=!1,t){let r=lZ(o),a=ss(e);if(a.length===1){let[s]=a,l=lp(s),c=l?nZ(l,s.children):s.children;return Zl(Xl,{value:e,children:[t,Yf(c,r)]})}let n=[];return a.forEach((s,l)=>{if(s.bullet){n.push(Ue("span",{"data-sf-bullet":"",className:eZ,children:Yf(s.children,r)},l));return}if(s.number!=null){n.push(Zl("span",{"data-sf-number":s.number,className:oZ,children:[Zl("span",{className:tZ,children:[s.number,"."]}),Yf(s.children,r)]},l));return}l>0&&!rZ(a[l-1])&&n.push(Ue("br",{},`br${l}`)),n.push(Ue(mR,{children:Yf(s.children,r)},l))}),Zl(Xl,{value:e,children:[t,n]})}var eZ="relative block pl-6 before:absolute before:left-1.5 before:font-bold before:text-accent before:content-['\xB7']",oZ="relative block pl-[2em]",tZ="absolute left-0 w-[1.6em] text-right tabular-nums";function rZ(e){return e.bullet||e.number!=null}var aZ="text-accent underline underline-offset-[0.18em]";function nZ(e,o){let[t,...r]=o;return t?.kind==="text"?[{kind:"text",text:`${e}${t.text}`},...r]:[{kind:"text",text:e},...o]}function sZ(e){return un(e)||void 0}function Yf(e,o){let t=[],r=!1;return e.forEach((a,n)=>{if(a.kind==="text"){t.push(Ue("span",{children:Vf(a.text)},n)),r=!0;return}r||t.push(Ue("span",{},`e${n}`)),t.push(hR(a,n,o)),r=!1}),r||t.push(Ue("span",{},"end")),t}function pR(e,o){return e.length===1&&e[0].kind==="text"?Vf(e[0].text):e.map((t,r)=>t.kind==="text"?Ue(mR,{children:Vf(t.text)},r):hR(t,r,o))}function lZ(e){return e?"font-normal italic text-accent":"not-italic text-accent"}function gRe(e){return Ue(Xl,{value:e,children:Ue("span",{children:e})})}function hR(e,o,t){if(e.kind==="link")return Ue("a",{href:e.href,className:aZ,children:pR(e.children,t)},o);let r=pR(e.children,t),a=nS[e.kind];if(a)return Ue("span",{[sS]: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=sZ(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 xR(e,o=!0){let t=e.split(`
42
- `);return Ue(Xl,{value:e,children:t.map((r,a)=>Zl("span",{children:[Uo(r,o),a<t.length-1?Ue("br",{}):null]},a))})}function IR(e){return e.split(/\n\s*\n/).map(o=>o.trim()).filter(Boolean)}var kg={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 cZ(e,o){return`font-mono text-[length:var(--size-label,${e}px)] uppercase tracking-[0.3em] text-accent`}var dZ=`inline-block w-fit bg-accent px-3.5 py-1.5 font-mono ${kg.labelSmall} font-semibold uppercase tracking-[0.16em] text-bg`,fZ=`flex items-center gap-3.5 font-mono ${kg.labelLarge} uppercase tracking-[0.3em] opacity-80 ${kg.labelUpTo800} max-view-wide:tracking-[0.25em]`;function gR({text:e,look:o="plain",size:t=13,scaled:r=!0,className:a="",classNameAfter:n=""}){if(o==="line")return iZ("div",{className:[a,fZ,n].filter(Boolean).join(" "),children:[vg(Q_,{}),vg("span",{children:Uo(e)})]});let s=o==="filled"?dZ:cZ(t,r);return vg("span",{className:[a,s,n].filter(Boolean).join(" "),children:Uo(e)})}import{jsx as $o,Fragment as yZ}from"react/jsx-runtime";import{createContext as Xf,useContext as Yt}from"react";import{isNodeList as uZ}from"efficient-easel/data";var pZ=new Set(["Flex","Grid"]);function mZ(e){return typeof e=="string"&&pZ.has(e)}var hZ="contentWidth",xZ="full",IZ="content";function gZ(e){let o=e?.[hZ];return o===xZ?!1:o===IZ?!0:void 0}function bR(e,o){return e&&!o}function bZ(e){return e.loop==="scroll"&&e.direction!=="tabs"&&!Jd(typeof e.bgImage=="string"?e.bgImage:null)&&!F0(e.scrollDirection)}function PRe(e){return e!=="full"}function ERe(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=mZ(s?.type),d=c&&(n.inBox?gZ(l)??t:t),f={insideGutter:n.insideGutter||d||c&&bZ(l),inBox:n.inBox||c};for(let h of Object.values(l)){if(!uZ(h))continue;let u=r(h,f);if(u!==void 0)return u}}};return r(e,{insideGutter:!1,inBox:!1})}var Jl=Xf(!1);function BRe(){return Yt(Jl)}function yR({children:e}){return $o(Jl.Provider,{value:!0,children:e})}var Tg=Xf(!1);function DRe({children:e}){return $o(Tg.Provider,{value:!0,children:e})}var Pg=Xf(!1);function SZ(){return Yt(Pg)}function NRe({atTop:e,nested:o}){return $o(yZ,{children:SZ()?o:e})}var Ql=Xf(void 0);function MRe({children:e}){return $o(Ql.Provider,{value:null,children:e})}function HRe(){return Yt(Ql)===void 0&&!Yt(Pg)&&!Yt(Jl)}function zRe(){return Yt(Ql)??null}function WRe({contained:e,framedClass:o,fillClass:t,columnClass:r,style:a,tabLabel:n,pad:s,border:l,outerAttrs:c,box:d=!1,edge:f=!1,outerStyle:h,bleed:u=!1,children:x}){let I=Yt(Jl),y=Yt(Tg),P=bR(e,I),v=P&&!y,w=s&&!v?HC(s.values,s.frame):null,g=l&&!v?l:null,T=[v?o:t,w?.className,g?sv:null].filter(Boolean).join(" "),C=wZ(u&&v,w||g?{...a,...w?.style,...g}:a),F=Yt(Ql),k=d&&f&&F===void 0?{gutter:P,...s?{pad:s.values}:{}}:null,L=d?$o(Pg.Provider,{value:!0,children:$o(Ql.Provider,{value:k,children:x})}):x,E=P?$o(Jl.Provider,{value:!0,children:L}):L,R=s&&v?MC(s.values):null,N=c&&Object.keys(c).length>0?c:null,b=$o("div",{...R?null:N,className:T,style:R||!h?C:{...C,...h},"data-tab-label":n,children:y?$o(Tg.Provider,{value:!1,children:P&&!u?$o("div",{className:r,children:E}):E}):E}),_=R?$o("div",{...N,className:R.className,style:h?{...R.style,...h}:R.style,children:b}):b;return l&&v?$o("div",{className:nv,style:{display:"contents",...l},children:_}):_}function wZ(e,o){return e?{...o,paddingLeft:0,paddingRight:0}:o}var wR={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))]"},vZ="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))]",kZ="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))]",TZ="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))]",Tr={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 qRe(e,o,t){let r=Zf(t),a=o-1,n=Math.floor(a/r)*r,s=[];return e===0&&s.push(Tr.phone.tl,Tr.phone.tr,Tr.wide.tl),e===a&&s.push(Tr.phone.bl,Tr.phone.br),e===r-1&&o>=r&&s.push(Tr.wide.tr),e===n&&s.push(Tr.wide.bl),e===a&&o%r===0&&s.push(Tr.wide.br),s.join(" ")}function Zf(e){return Math.min(4,Math.max(2,e??3))}function VRe({look:e,eyebrow:o,title:t,columns:r,omitHead:a=!1,editing:n=!1,cards:s}={}){let l=Zf(r),c=!!(o??"").trim()||!!(t??"").trim();return!n&&!c&&!s?null:ei("section",{className:"relative z-[2] bg-surface",children:SR("div",{className:a?kZ:vZ,children:[a?null:SR(CZ,{children:[(o??"").trim()&&ei(gR,{text:o??"",look:e,className:"mb-4 block"}),(t??"").trim()&&ei("h2",{className:`mb-9 font-heading2 ${wR.headingMedium} font-medium uppercase leading-none tracking-[-0.02em] text-fg max-view-wide:mb-7 ${wR.headingMediumUpTo800}`,children:xR(t??"",!1)})]}),s?ei("div",{className:TZ,style:{"--cd-cols":String(l),overflowY:"visible"},children:ei(yR,{children:s})}):null]})})}var ZRe={eyebrow:"Label",title:"Section *heading.*"},PZ={template:$y()},CR={label:"Cards",fields:PZ,defaultProps:{eyebrow:"",title:"",items:[],columns:3}};var eAe={eyebrow:"Highlight",title:"Key *features.*"},oAe=()=>[{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")}],vR={label:"Key Features",defaultProps:{eyebrow:"",title:"",items:[],columns:3}};import{readHidable as EZ}from"efficient-easel/draw";function Og(e){if(e==="ProductGrid")return"shelf";let o=Io[e]?.headStyle;return o==="editorial"||o==="simple"||o==="essay"?o:"standard"}var PR={standard:64,editorial:60,simple:36,essay:28,shelf:20},OZ={SectionHeader:"accent",FAQ:"accent",FitmentFinder:"accent",FitmentTable:"accent",SpecTable:"accent",RelatedProducts:"accent",Collections:"accentNum"};function _Z(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 ER(e,o,t){let r=`editorial:${e}|${o}|${t}`,a=Qf.get(r);if(a)return a;let n=_R({num:e,title:o,description:t,link:!1});return Qf.set(r,n),n}var _g={top:0,right:0,bottom:1,left:0},jo=(e,o,t,r)=>({sizeToken:{step:e,px:r,fluid:{minPx:o,vw:t}}}),eu=(e,o,t={})=>Ie(e,{...G("label",o),...t}),RZ=(e,o)=>{let t=EZ(e).text.trim();return/\s/.test(t)?{minWidth:Math.ceil(t.length*o*.9),minWidthPhone:0,widthFitPhone:"fill"}:{}},ou=(e,o)=>({kind:"text",key:e,role:"heading",props:K,style:{textStyle:"heading-2",...o}}),Rg=800,Ag=(e,o,t,r)=>({kind:"text",key:e,props:{...de,align:"right",alignPhone:"left",...t?{maxWidth:t,maxWidthPhone:Rg}:{}},style:{textStyle:"body-5",fontRole:"heading",alignPhone:"left",...G("body",o),...r}}),OR={...Ve,align:"right",alignPhone:"left",...Vt,icon:"arrow-right",iconPosition:"after"},Eg=e=>({kind:"button",key:"linkText",href:"linkHref",variant:"ghost",props:OR,style:{textStyle:"body-5",color:"labels",...G("label",e),letterSpacing:.2,case:"upper"}}),kR=(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"?AZ(ho()):{},...t.style}}}}},AZ=e=>e._partStyles.text??{},Jf={widthFitPhone:"fill"};function FZ(e,o){let t=OZ[e],r=t==="accent",a=eu(o.num,14,{color:r?"accent":"labels"}),n=t==="accentNum"&&a.kind==="text"?{...a,mark:"accentLead"}:a,s=ou(o.title,r?{...jo("headingMedium",36,5,64),case:"upper",lineHeight:.95,letterSpacing:-.025}:{...G("headingMedium",56,36),case:"none",lineHeight:1,letterSpacing:-.03}),l=e==="Collections";return{kind:"group",name:"Header",props:{...D,direction:"row",align:"end",justify:"between",gap:40,gapPhone:12,share:"content",sectionBorder:_g,sectionPaddingBottom:24,sectionPaddingBottomPhone:20},parts:[{kind:"group",name:"Title",props:{...D,...Jf,direction:"row",align:"end",gap:40,gapPhone:12,share:"content"},parts:[{kind:"group",name:"Number",props:{...D,...Jf,align:"start",gap:12},parts:[{kind:"image",key:"logoSrc",alt:"logoAlt",props:{aspect:"auto",contained:!1}},n,...l?[kR(o.num,"==01== / Collections",n)]:[]]},{kind:"group",name:"Heading",props:{...D,...Jf},parts:[s,...l?[kR(o.title,`Three ranges,
43
- one standard.`,s)]:[]]}]},{kind:"group",name:"Words",props:{...D,...Jf,gap:12,maxWidth:340,maxWidthPhone:Rg},parts:[...o.description?[Ag(o.description,14,void 0,{lineHeight:1.5})]:[],...o.link?[Eg(14)]:[],...l?[{kind:"block",type:"ButtonBlock",props:{...OR,variant:"ghost",label:"View all",href:"/wheels",_partStyles:{label:Eg(14).style}}}]:[]]}]}}function _R(e){return{kind:"group",name:"Header",props:{...D,direction:"row",align:"end",justify:"between",gap:40,gapPhone:14,share:"content",sectionBorder:_g,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,...RZ(o[e.num],13)}),parts:[eu(e.num,13)]},ou(e.title,{...jo("headingMedium",40,5.5,80),case:"upper",weight:500,lineHeight:1,letterSpacing:-.03})]},{kind:"group",name:"Words",props:{...D,sectionPaddingBottom:4,maxWidth:360,maxWidthPhone:Rg},parts:e.description?[Ag(e.description,14,void 0,{lineHeight:1.5})]:[]}]}}function TR(e,o){return{kind:"group",name:"Header",props:{...D,gap:16,gapPhone:16},parts:[eu(e.num,13),ou(e.title,o)]}}var RR=[["para",{textStyle:"body-5",...G("label",13),case:"upper",weight:400,lineHeight:1,letterSpacing:.22}],["sm",{...G("headingMedium",40,28),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["md",{...G("headingMedium",48,32),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["lg",{...G("headingMedium",56,36),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}],["xl",{...G("headingMedium",64,40),case:"none",weight:500,lineHeight:1,letterSpacing:-.03}]],LZ=e=>RR.some(([o])=>o===e.titleSize)?e.titleSize:"lg";function BZ(e){return{kind:"group",name:"Header",props:{...D,direction:"row",align:"center",justify:"between",gap:16,share:"content",stickTop:!0,sectionBorder:_g,sectionPaddingTop:12,sectionPaddingBottom:12},parts:[{kind:"group",name:"Title",props:{...D,direction:"row",align:"end",gap:24,share:"content"},parts:[eu(e.num,13,{color:"labels",letterSpacing:.22,lineHeight:1}),...RR.map(([o,t])=>({...ou(e.title,t),when:r=>LZ(r)===o}))]},{kind:"group",name:"Words",props:{...D,direction:"row",align:"center",justify:"end",gap:20,share:"content"},parts:[...e.description?[Ag(e.description,13,340,{lineHeight:1.4})]:[],...e.link?[Eg(13)]:[]]}]}}var Qf=new Map;function Ot(e){let o=Qf.get(e);if(o)return o;let t=_Z(e),r=Og(e),a=r==="editorial"?_R(t):r==="simple"?TR(t,{...G("headingMedium",44,32),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}):r==="essay"?TR(t,{...G("headingMedium",38,28,"headingSmall"),case:"upper",lineHeight:1,letterSpacing:-.02}):r==="shelf"?BZ(t):FZ(e,t);return Qf.set(e,a),a}var Ra={Series:"transparent",StatsParagraph:"transparent",TimelineTrack:po,Stats:void 0};var Pr=(e,o,t,r)=>({sectionBorder:{top:e,right:o,bottom:t,left:r}}),zR=e=>o=>Zf(U(o.columns)??U(e.columns)),WR=e=>({kind:"group",name:"Grid",props:{...D,gap:0,...Pr(1,0,0,1)},parts:[e]}),GR={...D,direction:"row",gap:0,share:"equal"},UR="its head sits in a Box of its own above it (own-box): the row draws the head inline",$R=e=>L1(e.headPlacement)==="own-box",jR="inline is the head the row draws; an own-box node is skipped (`skip`)",NZ=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}}]}),AR={top:72,bottom:72,topPhone:72,bottomPhone:72},MZ={...Qu,...Pr(0,1,1,0)},HZ={name:"Cards",boxProps:(e,o)=>({...ie,direction:"column",gap:36,gapPhone:28,...Po("surface")(e,o),...ye(e,AR)}),box:[...ue,...Le(AR)],skip:e=>$R(e)?UR: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:[Ot("Cards"),WR({kind:"list",key:"items",name:"Card",perRow:zR(CR.defaultProps),rowName:"Row",rowProps:GR,props:(e,o)=>({...MZ,...Po("background")(e,o)}),parts:[{kind:"text",key:"title",props:K,style:ep},{kind:"text",key:"body",props:de,style:op}]})],drop:{...pe,...ke,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:jR,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)"}},FR={top:76,bottom:76,topPhone:76,bottomPhone:76},zZ={...D,direction:"row",align:"center",gap:16,sectionPaddingTop:32,sectionPaddingRight:28,sectionPaddingBottom:32,sectionPaddingLeft:28,...Pr(0,1,1,0)},LR={textStyle:"body-1",color:"text"},BR=(e,o)=>typeof o?.href=="string"&&o.href.trim()!=="",WZ={name:"Key Features",boxProps:e=>({...ie,direction:"column",gap:44,...Pr(1,0,1,0),...ye(e,FR)}),box:[...ue,...Le(FR)],parts:[NZ({...D,direction:"row",align:"end",gap:20,wrap:!0,share:"content"}),WR({kind:"list",key:"items",name:"Feature",perRow:zR(vR.defaultProps),rowName:"Row",rowProps:GR,props:zZ,parts:[{kind:"button",key:"label",href:"href",when:BR,variant:"ghost",props:{...Ve,...Vt,icon:"none"},style:LR},{kind:"text",key:"label",when:(e,o)=>!BR(e,o),props:K,style:LR,was:{size:17}}]})],drop:{...pe,...ke,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)"}},DR={top:120,bottom:120,topPhone:80,bottomPhone:80},Lg=e=>{let o=wt(typeof e.background=="string"?e.background:void 0,Ra.Series);return o&&o!=="transparent"?o:void 0},Fg=e=>Lg(e)===po,GZ={...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},NR={...D,direction:"row",justify:"between",gap:12,share:"content",phoneRow:2,[DZ("share")]:"content"},MR={textStyle:"body-5",...G("label",12),letterSpacing:.22,case:"upper",lineHeight:1.5},UZ=e=>ro(e.viewLabel)&&!Bg(e.viewLabel).hidden,Xt=e=>Bg(e).text?.trim?.()??"",KR=e=>Object.fromEntries(Object.entries(e).filter(([,o])=>oe(o)!==void 0)),$Z={name:"Recurring Columns",boxProps:(e,o)=>({...ie,direction:"column",gap:60,gapPhone:60,...Pr(0,0,1,0),...Fg(e)?Ea(e,o):{},...$f(Lg(e),e,o),...ye(e,DR)}),box:[...ue.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>Fg(o)?vr(e,o,t):e],...Le(DR)],skip:e=>jf(Lg(e))??($R(e)?UR:void 0),site:(e,o)=>Fg(e.props)?kr(e,o):[],parts:[Ot("Series"),{kind:"core",as:"Cards",keep:[],props:{columns:4},derive:{reads:["cards"],props:e=>({items:(Array.isArray(e.cards)?e.cards:[]).map(o=>KR({num:Xt(o.num),since:Xt(o.since),title:Xt(o.title),body:Xt(o.desc),count:[Xt(o.entries),Xt(o.entriesLabel)].filter(Boolean).join(" ")}))})},slots:(e,o)=>({template:[{type:V,props:{...GZ,...Po("background")(e,o),name:"Card"},slots:{[Ke]:[{type:V,props:{...D,name:"Words",gap:16,gapPhone:16},slots:{[Ke]:[{type:V,props:{...NR,name:"Top"},slots:{[Ke]:[Xo("num",K,G("label",13),!0),Xo("since",K,G("label",13),!0)]}},Xo("title",{...K,tag:"h3"},{textStyle:"heading-3",...G("headingSmall",28),weight:500,case:"upper",lineHeight:1.04,letterSpacing:-.02}),Xo("body",de,{textStyle:"body-5",fontRole:"heading",...G("body",14),lineHeight:1.6})]}},{type:V,props:{...NR,name:"Footer",align:"center",gap:0,gapPhone:0,sectionPaddingTop:16,sectionPaddingTopPhone:16,...Pr(1,0,0,0)},slots:{[Ke]:[Xo("count",de,MR),...UZ(e)?[{type:V,props:{...D,name:"View",maxWidthPhone:266},slots:{[Ke]:[{type:"Text",props:{...K,text:Bg(e.viewLabel).text,_partStyles:{text:{...ho()._partStyles.text,...MR}}}}]}}]:[]]}}]}}]})}],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:{...pe,...ke,headPlacement:jR}},HR={top:60,bottom:60,topPhone:40,bottomPhone:40},jZ={...D,gap:8,gapPhone:8,...Do(24),...Pr(1,1,1,1)},KZ={name:"Document Detail Cards",boxProps:e=>({...ie,direction:"column",gap:40,gapPhone:16,...Pr(0,0,1,0),...ye(e,HR)}),box:[...ue,...Le(HR)],parts:[{kind:"core",as:"Cards",keep:[],props:{columns:3},derive:{reads:["cards"],props:e=>({items:(Array.isArray(e.cards)?e.cards:[]).map(o=>KR({label:Xt(o.label),value:Xt(o.value),body:Xt(o.desc)}))})},slots:(e,o)=>({template:[{type:V,props:{...jZ,...Po("surface")(e,o),name:"Card"},slots:{[Ke]:[Xo("label",K,{...G("label",12),lineHeight:1.5},!0),{type:V,props:{...D,name:"Words",gap:14,gapPhone:14},slots:{[Ke]:[Xo("value",K,{textStyle:"heading-3",...G("headingSmall",20),weight:500,letterSpacing:-.015,lineHeight:1.5}),Xo("body",de,{textStyle:"body-5",fontRole:"accent",...G("body",14),italic:!0,lineHeight:1.5})]}}]}}]})}],drop:{...pe,...ke}},qR={Cards:HZ,KeyFeatures:WZ,Series:$Z,DocMetaCards:KZ};import{phoneKey as VR}from"efficient-easel/draw";var Dg=e=>typeof e=="string"?e.trim():"";function YR(e){let o=`${Dg(e.prefix)}${Dg(e.value)}`,t=Dg(e.suffix);return e.emphasizeAll===!0?o?`==_${o}_==`:"":`${o}${t?`==_${t}_==`:""}`}var Ng={kind:"block",type:"Text",props:{...Un,_partStyles:{text:{textStyle:"heading-2",...jo("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)!==""},XR=e=>ro(e?.supSuffix),Hg=e=>wt(e.background,Ra.StatsParagraph),oi=e=>Hg(e)===po,Mg=e=>({...e,sectionAccent:e.sectionAccent??0}),qZ=(e,o)=>oi(e)?Po("background")(e,o):{},VZ={name:"Stats with Text",skip:e=>Hg(e)&&Hg(e)!=="transparent"&&!oi(e)?"it paints a colour of its own, not the section band":void 0,boxProps:(e,o)=>({...ie,direction:"column",gap:60,gapPhone:60,sectionBorder:{bottom:1},...To(e,"StatsParagraph"),...oi(e)?Ea(Mg(e),o):{}}),box:[...ue.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>oi(o)?vr(e,Mg(o),t):e],...Cr("StatsParagraph")],site:(e,o)=>oi(e.props)?kr({props:Mg(e.props)},o):[],parts:[Ot("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,[VR("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},...qZ(e,o)}),parts:[{...Ng,when:(e,o)=>!XR(o)&&Ng.when(e,o)},{kind:"group",name:"Figure",props:{...D,direction:"row",align:"start",gap:32,gapPhone:32,share:"content",phoneRow:2,[VR("share")]:"content"},when:(e,o)=>XR(o),parts:[Ng,{kind:"text",key:"supSuffix",props:K,style:{textStyle:"body-5",...G("label",13),weight:500,color:"accent",letterSpacing:.18,lineHeight:1,padding:12}}]},{kind:"group",name:"Words",props:{...D,gap:4,gapPhone:4},parts:[{kind:"text",key:"label",props:K,style:{textStyle:"body-1",fontRole:"heading",...G("body",16),lineHeight:1.5,letterSpacing:-.01}},Ie("sub",{color:"labels",...G("label",12),lineHeight:1.5,letterSpacing:.24})]}]}]}],drop:{...pe,...ke,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"}},YZ=new Set(["value","label",Br]),ZR={top:48,bottom:48,topPhone:48,bottomPhone:48},XZ=e=>{let o=wt(typeof e.background=="string"?e.background:void 0,Ra.Stats);return!!o&&o!=="transparent"},ZZ={name:"Stats",skip:e=>XZ(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?.[Br]))?"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=>!YZ.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=>({...ie,direction:"column",gap:24,gapPhone:24,...ye(e,ZR)}),box:[...ue,...Le(ZR)],parts:[Ie("heading",{color:"labels",...G("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:Un,style:{textStyle:"heading-2",...G("headingMedium",48,36),weight:500,case:"none",lineHeight:1,letterSpacing:-.03}},Ie("label",{color:"labels",...G("label",12),letterSpacing:.2})]}]}],drop:{...pe,...ke,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"}},JR={StatsParagraph:VZ,Stats:ZZ};var eA={contained:!1},oA=(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])}]}]}),zg=e=>{let o=U(e.bandPadding)??40;return{top:o,bottom:o,topPhone:o,bottomPhone:o}},JZ={...Ie("heading",{color:"labels",letterSpacing:.2}),props:{...K,align:"center"}},QZ={name:"Logos",boxProps:e=>({...ie,direction:"column",gap:32,...ye(e,zg(e))}),box:[...ue,...Le(zg),["bandPadding","sectionPaddingTop",(e,o)=>ye(o,zg(o)).sectionPaddingTop]],parts:[JZ,{kind:"core",keep:["columns","logoHeight","grayscale"],rename:{logosPerRow:"columns"},props:eA,slots:oA("items","alt")}],drop:{...pe,...ke,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"}},QR={top:24,bottom:24,topPhone:24,bottomPhone:24},eJ={name:"Payment Methods",boxProps:e=>({...ie,direction:"column",...ye(e,QR)}),box:[...ue,...Le(QR)],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:{...eA,look:"cards",grayscale:!1},slots:oA("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:{...pe,...ke,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`)"}},tA={Logos:QZ,PaymentBadges:eJ};import{mixHex as oJ}from"efficient-shell/format";var rA=e=>e.size==="display",tJ=(e,o)=>{let t=Ul(e,o),r=e.tone!=="plain"&&t?.text&&t.background?oJ(t.text,t.background,.3):null;return r?{color:r}:{}},rJ=(e,o)=>e.tone!=="plain"&&Zo(e.sectionAccent)===null?Po("background")(e,o):{},aA=(e,o)=>({kind:"list",key:"items",name:"Item",flat:!0,when:o,parts:[{kind:"text",key:"text",props:de,style:e,styleFrom:tJ}]}),aJ={name:"Scrolling Bar",boxProps:(e,o)=>({...ie,...Ta,...Hf,...yi[es(e.separator)]===""?z_:{},...ye(e,Nl),...rJ(e,o)}),box:[["scrollDirection","scrollDirection",e=>A0(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=>es(e)],["borders","sectionBorder",e=>e===!1?void 0:{top:1,bottom:1}],...ue,["tone","sectionAccent",(e,o)=>Zo(o.sectionAccent)??dr],...Le(Nl)],parts:[aA(zf,e=>!rA(e)),aA(W_,rA)],drop:{...pe,...ke,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"}},nA=e=>e?.tone==="muted",nJ={name:"Spec Strip",boxProps:e=>({...ie,...Ta,...Wf,...e.fill==="none"?{sectionBorder:{top:1}}:{},...ye(e,Ml)}),box:[...ue,...Le(Ml)],parts:[{kind:"list",key:"cells",name:"Cell",flat:!0,parts:[{kind:"text",key:"text",props:K,style:Hl,when:(e,o)=>!nA(o)},{kind:"text",key:"text",props:de,style:Hl,when:(e,o)=>nA(o)}]}],drop:{...pe,...ke,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"}},sA={Ticker:aJ,SpecStrip:nJ};var sJ="jetbrains-mono",iA="space-grotesk",Zt=(e,o,t={})=>({textStyle:"body-5",font:sJ,size:e,sizePhone:e,letterSpacing:o,lineHeight:1.5,weight:400,...t}),ru=(e,o,t,r)=>({font:iA,size:e,sizePhone:o,case:"upper",weight:500,letterSpacing:t,lineHeight:r}),ti=(e,o,t,r={})=>({textStyle:"body-1",font:iA,size:e,sizePhone:o,weight:400,case:"none",lineHeight:t,...r}),Eo=(e,o,t={})=>({kind:"text",key:e,props:K,style:o,...t}),lA=(e,o)=>o?.future===!0,tu=e=>IR(typeof e?.body=="string"?e.body:""),Gg=e=>wt(typeof e.background=="string"?e.background:void 0,Ra.TimelineTrack),Wg=e=>Gg(e)===po?e:{...e,background:"transparent"},lJ={name:"Milestone Timeline",skip:e=>jf(Gg(e)),boxProps:(e,o)=>{let t=Pa(Wg(e),o);return{...ie,direction:"column",gap:60,sectionBorder:{bottom:1},...To(e,"TimelineTrack"),...$f(Gg(e),e,o),...t>=0?{sectionAccent:t}:{}}},box:[...ue.filter(e=>e!=="sectionAccent"),["sectionAccent","sectionAccent",(e,o,t)=>vr(e,Wg(o),t)],...Cr("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:[Eo("eyebrow",Zt(13,.3,{case:"upper",color:"accent",padding:8}),{role:"eyebrow"}),Eo("title",{textStyle:"heading-2",...ru(79,40,-.03,1)},{role:"heading"})]},Eo("intro",ti(14,14,1.5),{props:{...de,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,...Mf},item:e=>({props:e.future===!0?{upcoming:!0}:{}}),parts:[{kind:"group",name:Dl.name,props:{...D,...Dl},parts:[Eo("date",Zt(13,.22,{color:"accent"}),{when:(e,o)=>!lA(e,o)}),Eo("date",Zt(13,.22,{color:"labels"}),{when:lA}),Eo("title",{textStyle:"heading-3",...ru(20,20,-.02,1.1)},{role:"heading"})]},Eo("blurb",ti(13,13,1.55),{props:de})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...Ve,align:"right",...$l(e,o)}),style:Zt(13,.3,{case:"upper"})}],site:(e,o)=>kr({props:Wg(e.props)},o),drop:{...pe,...ke,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"}},iJ={name:"Story Timeline",skip:e=>{let o=typeof e.layout=="string"?e.layout:"split";return o==="split"?void 0:`display "${o}": not converted (0 live pages; Spine and Alternating are not offered, a Track story is not stored anywhere)`},boxProps:e=>({...ie,direction:"row",share:[40],gap:80,align:"start",...To(e,"Timeline")}),box:[...ue,...Cr("Timeline")],parts:[{kind:"group",name:"Heading",props:{...D,gap:24},parts:[Eo("eyebrow",Zt(12,.3,{case:"upper",color:"accent"}),{role:"eyebrow"}),Eo("title",{textStyle:"heading-2",...ru(72,40,-.03,.94)},{role:"heading"}),Eo("intro",ti(14,14,1.6),{props:{...de,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",...Do(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:[Eo("imageCaption",Zt(11,.24,{case:"upper",color:"text"})),Eo("imageMeta",Zt(11,.24,{case:"upper",color:"accent"}),{props:{...K,align:"right"}})]}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"ghost",props:(e,o)=>({...Ve,...$l(e,o)}),style:Zt(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:[25],align:"start"},parts:[Eo("date",Zt(13,.24,{color:"accent"})),{kind:"group",name:"Words",props:{...D,gap:14},parts:[Eo("title",{textStyle:"heading-3",...ru(24,20,-.02,1.5)},{role:"heading"}),{kind:"block",type:"Text",props:{...K,_partStyles:{text:ti(17,16,1.6)}},box:[["body","text",(e,o)=>tu(o)[0]??""]],when:(e,o)=>tu(o).length>0},{kind:"block",type:"Text",props:{...de,_partStyles:{text:ti(17,16,1.6,{paragraphSpacing:14})}},box:[["body","text",(e,o)=>tu(o).slice(1).join(`
44
-
45
- `)]],when:(e,o)=>tu(o).length>1}]}]}]}],drop:{...pe,...ke,layout:"Split is the only display converted (see skip); the Box's own arrangement replaces it"}},cA={TimelineTrack:lJ,Timeline:iJ};import{tabletKey as pJ}from"efficient-easel/draw";import{slugify as sFe}from"efficient-shell/format";import{rootIsDark as cJ}from"efficient-shell/format";function rFe(e="auto"){return e==="light"?!0:e==="dark"?!1:!cJ({whenUnset:!0})}function dA(e,o){return Number.isFinite(e)&&Number.isFinite(o)&&!(e===0&&o===0)}function Ug(e){let o=Number.parseFloat(e??"");return Number.isFinite(o)?o:0}var dJ=["tall","square","wide"],fJ="tall";function fA(e){return dJ.includes(String(e??""))?String(e):fJ}var iFe={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"},cFe=[{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:""}],uJ=/^https?:\/\//i;function dFe(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:Ug(e.lat),lng:Ug(e.lng),mapsUrl:uJ.test(o)?o:""}}function $g(e){let o=String(e??"").split(" \xB7 ");return{state:(o[0]??"").trim(),country:(o[1]??"").trim()}}var fFe="other",uFe={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 uA(e){let o=String(e??"").replace(/[^+\d]/g,"");return o?`tel:${o}`:void 0}var Ko=e=>typeof e=="string"?e:e==null?"":String(e),Kg=e=>Array.isArray(e.locations)?e.locations.map(o=>o??{}):[],jn=e=>Ko(e.group),SA=e=>`loc-${e}`,wA=e=>Ko(e.state).trim()||$g(Ko(e.region)).state,CA=e=>Ko(e.country).trim()||$g(Ko(e.region)).country,pA=e=>[wA(e),CA(e)].filter(Boolean).join(" \xB7 "),mJ=e=>Kg(e).some(o=>Ko(o.photo).trim()!==""),hJ=e=>Kg(e).some(o=>dA(Number(o.lat),Number(o.lng))),xJ=(e,o)=>Kg(e).filter(t=>jn(t)===jn(o)).length,IJ=(e,o)=>xJ(e,o)===1?"wide":fA(e.imageShape),jg={top:100,bottom:100,topPhone:60,bottomPhone:60},mA=48,mt=(e,o={})=>({textStyle:"body-5",...G("label",e),case:"upper",...o}),qg={top:1,right:1,bottom:1,left:1},Vg={...D,direction:"row",share:"equal",gap:0},gJ=e=>o=>o>kl(o)?{...D,gap:0}:{...Vg,...o>1?{phoneRow:e}:{}},bJ={kind:"group",name:"Gallery",props:{...D,gap:20,_hidden:!0},when:mJ,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",mt(12,{color:"accent",letterSpacing:.3})),{kind:"text",key:"galleryHint",props:{...de,align:"right",alignPhone:"left"},style:mt(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:qg,...Do(12,12)},item:(e,o,t)=>({props:{...Ko(e.photo).trim()?{bgImage:Ko(e.photo),hover:"mono"}:{},link:`#${SA(o)}`,boxShape:IJ(t,e)}}),parts:[{kind:"text",key:"name",props:K,style:mt(11,{letterSpacing:.22,color:"text"})}],groups:{of:jn,name:"Group",props:{...D,gap:10},head:e=>({label:jn(e[0]??{})}),parts:[Ie("label",mt(11,{color:"accent",letterSpacing:.3}))],itemsName:"Cities",itemsProps:gJ(2),perRow:kl,rowName:"Row",rowProps:{...Vg,phoneRow:2}}}]}]},yJ={kind:"group",name:"Words",props:{...D,gap:12,gapPhone:12,...Do(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",...G("headingSmall",30),case:"upper",weight:500,lineHeight:1,letterSpacing:-.02}},{kind:"block",type:"Text",props:{...K,_partStyles:{text:mt(12,{color:"accent",letterSpacing:.24,lineHeight:1.5})}},box:["region","state","country"].map(e=>[e,"text",(o,t)=>pA(t)]),when:(e,o)=>pA(o??{})!==""}]},{kind:"group",name:"Time zone",props:{...D,sectionBorder:qg,...Do(6,10)},parts:[{kind:"text",key:"timezone",props:{...de,textFit:"line"},style:mt(12,{letterSpacing:.22,lineHeight:1.5})}]}]},{kind:"text",key:"address",props:de,style:{textStyle:"body-5",fontRole:"heading",...G("body",14),lineHeight:1.5}},{kind:"block",type:"ButtonBlock",props:{...Ve,...Vt,variant:"ghost",arrow:!1,_partStyles:{label:mt(13,{letterSpacing:.18,color:"text",lineHeight:24/13})}},box:[["phone","label"],["phone","href",e=>uA(Ko(e))??"#"]],when:(e,o)=>Ko(o?.phone).trim()!==""},{kind:"text",key:"hours",props:de,style:mt(12,{letterSpacing:.18,lineHeight:1.7})}]},SJ={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)=>wA(t)]),...["region","country"].map(e=>[e,"country",(o,t)=>CA(t)])]},wJ={kind:"group",name:"Map",props:{...D,sectionBorder:{top:1,right:0,bottom:0,left:0}},parts:[SJ]},CJ={kind:"list",key:"locations",name:"City",props:(e,o)=>({...D,gap:0,justify:"between",sectionBorder:qg,jumpHighlight:!0,sectionAccent:Pa(e,o)>=0?Gl(e.sectionAccent,o):-1}),item:(e,o)=>({props:{anchor:SA(o)}}),parts:[yJ,wJ],groups:{of:jn,name:"Group",props:{...D,gap:20},head:e=>{let o=e[0]??{};return{key:jn(o),groupName:Ko(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)=>Ko(o?.key).trim()!=="",parts:[Ie("key",mt(13,{color:"accent",letterSpacing:.3})),{kind:"text",key:"groupName",role:"heading",props:K,style:{textStyle:"heading-3",...G("headingSmall",24),case:"upper",weight:500,letterSpacing:-.01}},{kind:"text",key:"count",props:de,style:mt(12,{letterSpacing:.22})}]}],itemsName:"Cities",itemsProps:e=>({...Vg,columns:kl(e),[pJ("columns")]:1})}},hA=mt(10,{letterSpacing:.25}),vJ={kind:"block",type:Pt,props:{...D,name:"Credit",direction:"row",justify:"end",align:"center",gap:6,share:"content",wrap:!0},when:hJ,slot:Et,keepEmpty:!0,parts:[{kind:"block",type:"Text",props:{...de,text:"Location coordinates \xA9",_partStyles:{text:hA}}},{kind:"block",type:"ButtonBlock",props:{...Ve,...Vt,variant:"ghost",arrow:!1,label:"OpenStreetMap contributors",href:"https://www.openstreetmap.org/copyright",_partStyles:{label:{...hA,color:"labels"}}}}]},xA=(e,o)=>Object.fromEntries(o.filter(t=>e[t]!==void 0).map(t=>[t,e[t]])),IA=["sectionPaddingTop","sectionPaddingTopTablet","sectionPaddingTopPhone"],gA=["sectionPaddingBottom","sectionPaddingBottomTablet","sectionPaddingBottomPhone"],bA=e=>e.map(o=>[o,o,(t,r)=>ye(r,jg)[o]]),yA=["sectionAccent","sectionAccent",vr],kJ=["gridSpan","_hidden"],TJ={name:"City pictures",skip:e=>So(e)?`fed by the data source "${So(e)}": its cities are read as the page is served, not stored on the node`:void 0,boxProps:(e,o)=>({...ie,direction:"column",gap:40,anchor:"studios",...xA(ye(e,jg),IA),sectionPaddingBottom:mA,sectionPaddingBottomPhone:mA,...Ea(e,o)}),box:[...ue.filter(e=>e!=="sectionAccent"&&e!=="anchor"),yA,["anchor","anchor",e=>ps(e).trim()?e:"studios"],...bA(IA)],parts:[ER("sectionNumber","heading","tagline"),bJ],also:[{name:"City maps",boxProps:(e,o)=>({...ie,direction:"column",gap:40,sectionBorder:{bottom:1},sectionPaddingTop:0,sectionPaddingTopPhone:0,...xA(ye(e,jg),gA),...Ea(e,o)}),box:[...kJ,yA,...bA(gA)],parts:[CJ,vJ]}],reads:{mapTheme:"City maps Box: each Map block's Map theme",imageShape:"City pictures Box: each picture Box's Box shape"},site:kr,drop:{...pe,...ke,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)"}},vA={ContactLocations:TJ};var PJ=["Collections","Events","FAQ","Footprint","GalleryB","LongRead","ProcessSteps","ProductGrid","RelatedProducts"];var Er=(e,o)=>()=>({top:e,topPhone:o}),kA=e=>o=>{let t=To(o,e).sectionPaddingTop;return{top:t,topPhone:t}},EJ={Collections:Er(120,70),Events:Er(120,70),FAQ:Er(120,70),GalleryB:Er(120,70),FitmentTable:Er(120,80),SpecTable:Er(120,80),LongRead:Er(120,80),FitmentFinder:e=>e.layout==="bar"?{top:32,topPhone:20}:{top:80,topPhone:60},RelatedProducts:Er(0,0),Footprint:kA("Footprint"),ProcessSteps:kA("ProcessSteps"),ProductGrid:e=>({top:U(e.padTop)??120,topPhone:0})};function OJ(e,o={}){let t=Io[e],r=EJ[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=Ot(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:bi[e]??e,boxProps:c=>{let d=r(c);return{...ie,direction:"column",gap:PR[Og(e)],sectionPaddingTop:d.top,sectionPaddingTopPhone:d.topPhone}},box:[...ue,...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 TA=Object.fromEntries(PJ.map(e=>[e,OJ(e)]));import{BLOCK_WIDTH_LIMIT as _J}from"efficient-easel/draw";var au={textFit:"line",textFitPhone:"wrap"},BA={minWidth:_J.min},PA=(e,o,t)=>({...Ie(e,{...o,...zl}),props:{...K,align:"right",...au,...t}}),DA={top:1,bottom:0},Xg=(e,o,t,r)=>({kind:"group",name:e,props:{...D,sectionPaddingBottom:o,sectionPaddingBottomPhone:t},parts:[r]}),EA={widthFit:"fill",...BA},OA={top:100,bottom:60,topPhone:60,bottomPhone:40},RJ={...G("label",13),letterSpacing:.22,lineHeight:1.8},_A={textStyle:"heading-1",...jo("headingLarge",56,8,128),case:"upper",weight:500,lineHeight:.88,letterSpacing:-.04},RA=e=>e.titleLevel===2,AJ=()=>({name:"Document Header",boxProps:e=>({...ie,direction:"column",gap:0,sectionBorder:{bottom:1},...ye(e,OA)}),box:[...ue,...Le(OA)],parts:[{kind:"group",name:"Header",props:{...D,direction:"row",align:"end",justify:"between",gap:40,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[Xg("Eyebrow",12,0,{...Ie("eyebrow",G("label",13)),props:{...K,...au}}),{kind:"text",key:"title",role:"heading",props:{...K,tag:"h1",...EA},style:_A,when:e=>!RA(e)},{kind:"text",key:"title",role:"heading",props:{...K,tag:"h2",...EA},style:_A,when:RA},{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:[Wl("label","value",RJ,au)]}]}]},{kind:"group",name:"Deck",props:{...D,sectionBorder:DA,sectionPaddingTop:32},parts:[{kind:"text",key:"deck",props:{...de,maxWidth:760},style:{textStyle:"body-1",fontRole:"accent",...G("body",22,19),italic:!0,lineHeight:1.5}}]}],drop:{...pe,...ke,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"}}),AA={top:80,bottom:40,topPhone:60,bottomPhone:32},FJ={...G("label",13),letterSpacing:.18,lineHeight:1.8},FA={...G("label",13),letterSpacing:.22,lineHeight:1.9},LJ=()=>({name:"Issue Header",boxProps:e=>({...ie,direction:"column",gap:0,sectionBorder:{bottom:1},...ye(e,AA)}),box:[...ue,...Le(AA)],parts:[{kind:"group",name:"Top",props:{...D,direction:"row",align:"end",justify:"between",gap:60,gapPhone:16,share:"content",sectionPaddingBottom:32},parts:[Xg("Eyebrow",14,14,Ie("eyebrow",G("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:[Wl("lead","rest",FJ)]}]}]},{kind:"group",name:"Bottom",props:{...D,direction:"row",align:"start",justify:"between",gap:60,gapPhone:16,share:"content",sectionBorder:DA,sectionPaddingTop:32},parts:[{kind:"text",key:"lead",props:{...K,maxWidth:720,...BA},style:{textStyle:"body-1",fontRole:"heading3",...G("headingSmall",20),lineHeight:1.5,letterSpacing:-.005,paragraphSpacing:16}},{kind:"group",name:"In this issue",props:{...D,align:"stretch",gap:0},parts:[Xg("Heading",6,6,{kind:"text",key:"issueHeading",props:{...K,align:"right",...au},style:{textStyle:"body-1",fontRole:"heading",...G("body",18),weight:400,letterSpacing:-.01,lineHeight:1.9,...zl}}),{kind:"group",name:"Lines",props:{...D,align:"stretch",gap:0},parts:[{kind:"list",key:"issueList",name:"Line",flat:!0,parts:[PA("text",{color:"labels",...FA})]}]},PA("issueTotal",FA)]}]}],drop:{...pe,...ke}}),LA={top:24,bottom:24,topPhone:16,bottomPhone:16},Yg={color:"labels",...G("label",13),letterSpacing:.2},NA=e=>(Array.isArray(e.items)?e.items:[]).filter(o=>o&&typeof o.label=="string"&&o.label.trim()!==""),Zg=(e,o)=>o!==void 0&&NA(e).at(-1)===o,MA=(e,o)=>o!==void 0&&NA(e).includes(o),BJ=(e,o)=>MA(e,o)&&!Zg(e,o)&&ro(o?.href),DJ=()=>({name:"Breadcrumb",skip:e=>ro(e.meta)?'a trailing note after "\xB7" needs a second mark; none live':void 0,boxProps:e=>({...ie,...Ta,gap:16,gapPhone:16,separator:"slash",sectionBorder:{bottom:1},...ye(e,LA)}),box:[...ue,...Le(LA)],parts:[{kind:"list",key:"items",name:"Crumb",flat:!0,parts:[{kind:"button",key:"label",href:"href",variant:"ghost",when:BJ,props:{...Ve,...Vt,icon:"none"},style:Yg},{...Ie("label",Yg),when:(e,o)=>MA(e,o)&&!Zg(e,o)&&!ro(o?.href)},{...Ie("label",{...Yg,color:"text"}),when:Zg}]}],drop:{...pe,...ke,meta:"a node that stores a note is skipped (`skip`); an empty one draws nothing"}}),HA={DocMasthead:AJ(),Masthead:LJ(),Breadcrumb:DJ()};import{jsx as Aa,jsxs as Qg}from"react/jsx-runtime";import{slugify as NJ}from"efficient-shell/format";import{jsx as Jg,jsxs as zA}from"react/jsx-runtime";var HFe="sticky top-[120px]";var WA=(e,o)=>e?{[ud]:o}:{},GA=(e,o)=>pd(e?.[Mh(o)]?.role,af[o],Ua),UA=120;function $A({title:e,entries:o,stickyTop:t,sticky:r=!0,editing:a=!1,partStyles:n,numberForm:s=dh,hideClass:l=""}){let c=s==="plain";return zA("aside",{className:`${r?"sticky ":""}flex flex-col self-start max-[900px]:static${l?` ${l}`:""}`,style:r?{top:t}:void 0,children:[e&&Jg("h4",{className:"mb-[18px] font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:Uo(e)}),o.map((d,f)=>{let h=Jg("span",{...WA(a,"number"),style:GA(n,"number"),className:"text-accent",children:jc(s,f)});return zA("a",{href:`#${d.anchor}`,className:`flex items-center ${c?"justify-start gap-1":"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${f===0?" border-t":""}`,children:[c&&h,Jg("span",{...WA(a,"entry"),style:GA(n,"entry"),children:Uo(d.label||"Section")}),!c&&h]},`${f}-${d.anchor}`)})]})}function MJ(e,o){return NJ(e)||`section-${o+1}`}var eb=e=>typeof e=="string"&&e.trim()!=="";function ob(e){return(e??[]).filter(o=>eb(o.heading)||eb(o.label)||eb(o.body))}function tb(e){let o=new Set;return e.map((t,r)=>{let a=MJ(t.label||t.heading||"",r),n=a,s=2;for(;o.has(n);)n=`${a}-${s++}`;return o.add(n),n})}function rb(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=ss(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 HJ=()=>[{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.")}],zJ=UA;function tLe({tocTitle:e,sections:o,editing:t=!1,stickyTop:r=zJ}){let a=ob(o);if(a.length===0&&!t)return null;let n=a.length===0&&t?HJ():a,s=tb(n);return Aa("section",{className:"relative z-[2] bg-bg",children:Qg("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:[Aa($A,{title:e,entries:n.map((l,c)=>({label:l.label||"Section",anchor:s[c]})),stickyTop:r}),Aa("div",{className:"flex flex-col gap-16",children:n.map((l,c)=>Qg("article",{id:s[c],className:"flex flex-col gap-[18px]",style:{scrollMarginTop:r},children:[Qg("span",{className:"font-mono text-[length:var(--size-label,12px)] uppercase tracking-[0.3em] text-accent",children:[ch(c)," \xB7 ",Uo(l.label||"Section")]}),l.heading&&Aa("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:Uo(l.heading)}),rb(l.body??"").map((d,f)=>d.type==="ul"?Aa("ul",{className:"flex max-w-[680px] list-none flex-col gap-2.5 pl-0",children:d.items.map((h,u)=>Aa("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:Uo(h)},u))},f):Aa("p",{className:"max-w-[680px] font-serif text-[length:var(--size-body,17px)] leading-[1.7] text-fg-dim",children:Uo(d.text)},f))]},s[c]))})]})})}var jA={top:80,bottom:80,topPhone:60,bottomPhone:60},KA=18,qA=18,VA=8,WJ=10,ab=e=>typeof e=="string"&&e.trim()!=="",YA=e=>ob(e.sections),GJ=e=>rb(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}),nb={textStyle:"body-5",...G("label",12),case:"upper",letterSpacing:.3,color:"accent",lineHeight:1.5},XA={textStyle:"body-1",fontRole:"accent",...G("body",17)},UJ=[Ie("label",nb),{...Ie("title",nb),when:(e,o)=>!ab(o?.label)},{kind:"block",type:"Text",when:(e,o)=>!ab(o?.label)&&!ab(o?.title),props:{...K,text:"Section",_partStyles:{text:nb}}},{kind:"group",name:"Heading",props:{...D,sectionPaddingBottom:VA,sectionPaddingBottomPhone:VA},parts:[{kind:"group",name:"Heading line",props:{...D,sectionBorder:{bottom:1},sectionPaddingBottom:qA,sectionPaddingBottomPhone:qA},parts:[{kind:"text",key:"heading",role:"heading",props:K,style:{textStyle:"heading-2",...jo("headingMedium",28,3.5,44),case:"upper",weight:500,lineHeight:1.04,letterSpacing:-.025}}]}]},{kind:"list",key:"body",name:"Body",flat:!0,of:GJ,parts:[{kind:"text",key:"text",props:de,style:{...XA,lineHeight:1.7},when:(e,o)=>o?.kind==="p"},{kind:"text",key:"text",props:de,style:{...XA,lineHeight:1.65,paragraphSpacing:WJ},when:(e,o)=>o?.kind==="ul"}]}],$J={name:"Document Text",boxProps:e=>({...ie,direction:"row",gap:80,gapPhone:40,sectionBorder:{bottom:1},...ye(e,jA)}),box:["anchor","sectionAccent","_hidden",...Le(jA)],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:KA,gapPhone:KA},item:(e,o,t)=>({props:{anchor:tb(YA(t))[o]??`section-${o+1}`}}),parts:UJ}]}],reads:{tocTitle:"the Contents block's Heading"},drop:{...pe,stickyTop:"the Contents block draws DocBody's default (120px); 0 live nodes store it"}},ZA={DocBody:$J};var jJ="overlay",KJ=[{label:"Copy over image",value:"overlay"},{label:"Copy above image",value:"stacked"}];function JA(e){return oo(KJ,jJ,e)}var cLe={desktop:40,mobile:45,min:20,max:80,step:5};function dLe(e,o){return`${typeof e=="number"?e:o}%`}var QA=(e,o)=>{let t=U(e),r=U(o);return{...t===void 0?{}:{size:t},...r===void 0?{}:{sizePhone:r}}},qJ=e=>JA(e.layout)==="stacked",eF=e=>Math.min(Math.max(U(e.overlay)??60,0),100),nu=e=>U(e)??100,VJ={textStyle:"heading-1",sizeToken:{...jo("headingLarge",48,7,96).sizeToken,pxPhone:36},weight:500,lineHeight:.95,letterSpacing:-.03},YJ=[Ie("eyebrow",G("label",14)),...[!0,!1].map(e=>({kind:"text",key:"title",role:"heading",props:K,style:{...VJ,case:e?"upper":"none"},styleFrom:o=>QA(o.titleSizeDesktop,o.titleSizeMobile),when:o=>o.uppercase===!0===e})),{kind:"text",key:"body",props:{...de,maxWidth:560},style:{textStyle:"body-1",...G("body",17,16),lineHeight:1.6,paragraphSpacing:24},styleFrom:e=>QA(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:Ve}]}],oF=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)`,XJ=()=>({name:"Scroll-Over Text",skip:e=>qJ(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=>({...ie,direction:"column",justify:"center",align:"start",gap:24,gapPhone:24,share:"content",...jl,placement:"left",darken:eF(e),darkenStyle:"even",sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:nu(e.heightDesktop),sectionHeightModePhone:"fixed",sectionHeightUnitPhone:"%",sectionHeightValuePhone:nu(e.heightMobile)}),box:[...ue.filter(e=>!String(typeof e=="string"?e:e[0]).startsWith("sectionHeight")),["imageSrc","bgImage"],["imageSrcMobile","bgImagePhone"],["overlay","darken",(e,o)=>eF(o)],["heightDesktop","sectionHeightValue",e=>nu(e)],["heightMobile","sectionHeightValuePhone",e=>nu(e)]],parts:YJ,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:oF("Button color"),buttonTextColor:oF("Button text color"),...pe}}),aF={textStyle:"heading-2",...G("headingMedium",56,36),weight:400,lineHeight:1.05,letterSpacing:-.03},ZJ={textStyle:"body-1",...G("body",16),lineHeight:1.7},nF=e=>({kind:"text",key:"body",props:{...de,maxWidth:520},style:{...ZJ,paragraphSpacing:e}}),lu={top:0,bottom:0,topPhone:0,bottomPhone:0},sb=(e,o)=>typeof e.sectionHeightMode=="string"&&e.sectionHeightMode!=="auto"?{}:{sectionHeightMode:"fixed",sectionHeightUnit:"%",sectionHeightValue:o,sectionHeightModePhone:"auto"},JJ=(e,o)=>{let t=sb(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"}},sF={boxShapePhone:"landscape"},lF="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)",QJ=(e,o)=>({[e]:o,[`${e}Phone`]:o}),eQ={textStyle:"heading-2",...G("headingMedium",40),weight:500,case:"none",lineHeight:1,letterSpacing:-.02},tF=e=>(Array.isArray(e.stats)?e.stats:[]).filter(o=>o&&(String(o.value??"").trim()!==""||String(o.label??"").trim()!=="")),oQ=()=>({name:"Brand Text",boxProps:(e,o)=>({...ie,...Po("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...ye(e,lu),...sb(e,100)}),box:[...ue,...Le(lu)],parts:[{kind:"group",name:"Words",props:(e,o)=>({...D,justify:"center",gap:28,gapPhone:28,sectionBorder:Kl({right:1}),sectionBorderPhone:Kl({}),...jl,sectionPaddingTop:100,sectionPaddingBottom:100,sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60,sectionPaddingRight:$n(o)}),parts:[Ie("eyebrow",G("label",14)),{kind:"text",key:"heading",role:"heading",props:K,style:{...aF,case:"none"},mark:"accentItalic"},nF(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(tF(e).length,1),3),...QJ("sectionBorder",Kl({top:1})),sectionPaddingTop:28,sectionPaddingTopPhone:28}),parts:[{kind:"list",key:"stats",name:"Stat",of:tF,props:{...D,gap:4,gapPhone:4},parts:[{kind:"text",key:"value",props:Un,style:eQ},Ie("label",{...G("label",13),color:"labels",letterSpacing:.2})]}]}]}]},hg("Picture","imageSrc",sF)],drop:{...pe,grayscale:lF,...ke}}),su=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}},tQ=e=>e.textAlign==="center"?"center":e.textAlign==="right"?"end":"stretch",rQ=e=>Math.min(Math.max(U(e.overlay)??60,0),100),iF=e=>typeof e=="string"&&e.trim()!=="",aQ={...Ve,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},rF=e=>({...hg("Picture","imageSrc",(o,t)=>({...iF(o.imageSrc)?{darken:40,darkenStyle:"even"}:{},placement:"center",...sF,sectionBorder:Kl(e?{left:1}:{right:1}),...cF(e?"left":"right",$n(t))}),[{kind:"button",key:"imageBtnText",href:"imageBtnHref",variant:"ghost",props:aQ,style:{textStyle:"body-5",...G("label",13,12),case:"upper",letterSpacing:.18}}]),when:o=>o.reverse===!0===e}),cF=(e,o)=>{let t=Math.max(60-o,0);return{sectionPaddingLeft:e==="left"?60:t,sectionPaddingRight:e==="right"?60:t}},nQ={kind:"group",name:"Words",props:(e,o)=>{let t=e.reverse===!0;return{...D,justify:"center",align:tQ(e),placement:e.textAlign==="center"?"center":e.textAlign==="right"?"right":"left",...JJ(e,72),gap:24,gapPhone:24,...iF(e.textBgSrc)?{darken:rQ(e),darkenStyle:"even"}:{},...jl,sectionPaddingTop:100,sectionPaddingBottom:100,...cF(t?"right":"left",$n(o)),sectionPaddingTopPhone:60,sectionPaddingBottomPhone:60}},box:[["textBgSrc","bgImage"]],parts:[{...Ie("eyebrow",G("label",14)),styleFrom:su},{kind:"text",key:"title",role:"heading",props:K,style:aF,styleFrom:e=>({case:e.uppercase===!0?"upper":"none",...su(e)})},{...nF(24),styleFrom:su},{kind:"group",name:"Button",props:{...D,sectionPaddingTop:8,sectionPaddingTopPhone:8},parts:[{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:e=>{let o=su(e);return{...Ve,...o.align?{align:o.align}:{},...o.alignPhone?{alignPhone:o.alignPhone}:{}}}}]}]},sQ=()=>({name:"Image & Text Split",boxProps:(e,o)=>({...ie,...Po("background")(e,o),direction:"row",share:"equal",gap:0,gapPhone:0,sectionBorder:{top:1,bottom:1},...ye(e,lu),...sb(e,72)}),box:[...ue,...Le(lu)],parts:[rF(!1),nQ,rF(!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:lF,...pe,...ke}}),dF={IntroBleed:XJ(),Manifesto:oQ(),Split:sQ()};var fF={top:72,bottom:72,topPhone:72,bottomPhone:72},lQ={name:"Editorial Text",boxProps:e=>({...ie,direction:"column",gap:28,gapPhone:28,sectionBorder:{top:1},...ye(e,fF)}),box:[["topBorder","sectionBorder",e=>e===!1?void 0:{top:1}],...ue,...Le(fF)],parts:[Ot("Prose"),{kind:"text",key:"body",props:de,style:{textStyle:"body-1",...G("body",16),lineHeight:1.7,paragraphSpacing:18}}],drop:{...pe,...ke,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)"}},uF={buttonPaddingTop:20,buttonPaddingBottom:20,buttonPaddingLeft:28,buttonPaddingRight:28},pF=(e,o)=>o?.variant==="primary",mF=(e,o)=>({kind:"list",key:"buttons",name:"Button",flat:!0,when:e,parts:[{kind:"button",key:"label",href:"href",when:pF,variant:"primary",style:{letterSpacing:.3},props:{...Ve,...uF,...o}},{kind:"button",key:"label",href:"href",when:(t,r)=>!pF(t,r),variant:"ghost",style:{letterSpacing:.3},props:(t,r)=>({...Ve,...uF,...o,...$l(t,r)})}]}),iu=e=>ro(e.title),iQ={name:"Call-to-Action Heading",boxProps:e=>({...ie,direction:"row",align:"center",justify:iu(e)?"between":"end",gap:60,gapPhone:60,share:"content",sectionBorder:{bottom:1},...To(e,"TitleWithButtons")}),box:[...ue,...Cr("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",...jo("headingLarge",48,7,108),case:"upper",lineHeight:.94,letterSpacing:-.035}}]},{kind:"group",name:"Buttons",props:e=>({...D,gap:14,gapPhone:14,widthFitPhone:"fill",...iu(e)?{minWidth:280,minWidthPhone:0}:{}}),parts:[mF(iu,{widthFit:"fill",iconPosition:"end"}),mF(e=>!iu(e),{})]}],drop:{...pe,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 cQ(e){let{siteGutter:o,siteGutterPhone:t}=e.site??{},r=$n(e),a=Math.min(20,id(t)??cd(o));return{sectionPaddingLeft:r,sectionPaddingRight:r,sectionPaddingLeftPhone:a,sectionPaddingRightPhone:a}}var hF={top:40,bottom:64,topPhone:24,bottomPhone:36},dQ={name:"Section Header",boxProps:(e,o)=>({...ie,direction:"column",gap:0,...ye(e,hF),...cQ(o)}),box:[...ue,...Le(hF)],parts:[Ot("SectionHeader")],drop:{...pe,...ke,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"}},xF={...D,direction:"row",share:[67],gap:30},IF={...D,sectionPaddingLeft:30,sectionPaddingLeftPhone:0},gF=(e,o,t)=>({kind:"group",name:e,props:o,parts:[t]}),fQ={name:"Lead Text",boxProps:e=>({...ie,direction:"column",gap:40,gapPhone:40,sectionBorder:{bottom:1},...To(e,"ParagraphsA")}),box:[...ue,...Cr("ParagraphsA")],parts:[{kind:"group",name:"Numbers",props:{...xF,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",...G("label",12),letterSpacing:.24})]},gF("Stats column",D,{kind:"group",name:"Stats",props:{...IF,gap:0,gapPhone:0},parts:[{kind:"list",key:"stats",name:"Stat",flat:!0,parts:[Wl("value","label",{...G("label",13),letterSpacing:.18,lineHeight:1.8})]}]})]},{kind:"group",name:"Words",props:{...xF,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",...G("headingSmall",22,20),weight:400,case:"none",lineHeight:1.45,letterSpacing:-.005}}]}]},gF("Note column",{...D,justify:"end",widthFit:"fill"},{kind:"group",name:"Founders",props:{...IF,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",...G("body",18,16),weight:500,letterSpacing:-.01,lineHeight:1.7}},{kind:"text",key:"foundersBody",props:de,style:{textStyle:"body-5",fontRole:"heading",...G("body",14,12),lineHeight:1.7}}]},Ie("attribution",{...G("label",12,10),letterSpacing:.24,lineHeight:1.7})]})]}],drop:{...pe}},bF={top:24,bottom:24,topPhone:24,bottomPhone:24},uQ={name:"Banner",boxProps:e=>({...ie,direction:"column",gap:0,...ye(e,bF)}),box:[...ue,"contained",...Le(bF)],parts:[{kind:"group",name:"Card",keepEmpty:!0,props:{...D,gap:28,placement:"top-left",darken:60,darkenStyle:"even",sectionBorder:{width:1},...Do(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:{...de,maxWidth:680},style:{textStyle:"body-1",lineHeight:1.6},was:{size:16}}]},{kind:"button",key:"ctaText",href:"ctaHref",variant:"primary",props:Ve}]}],drop:{...pe,...ke}},lb={Prose:lQ,TitleWithButtons:iQ,SectionHeader:dQ,ParagraphsA:fQ,Banner:uQ};function FLe(){Wo(lb),Wo(JR),Wo(tA),Wo(qR),Wo(sA),Wo(cA),Wo(vA),Wo(TA),Wo(HA),Wo(ZA),Wo(dF)}import{isNodeList as pQ}from"efficient-easel/data";var HLe=Object.keys(lb);function yF(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]=pQ(n)?n.map(s=>yF(s,o,t)):n;return r.id=t(e.type),{type:e.type,props:r}}function ib(e,o,t=0){return(r,a)=>{let{nodes:n}=eg({type:e,props:{...r(e),id:a(e)}},o);return yF(n[t],r,a)}}function mQ(e,o){if(!H1(e,o))return null;let t=Ff(e);return t?ib(e,t):null}function cu(e,o=El){return $_(e)??mQ(e,o)}import{blockTypesIn as fL}from"efficient-easel/screen/lib/document/block-types-in";import{jsx as ht,jsxs as sL}from"react/jsx-runtime";import{createContext as cee,useContext as dee,useState as fee}from"react";import{jsx as Kn,jsxs as RF}from"react/jsx-runtime";import{useEffect as fb,useRef as RQ,useState as ri}from"react";import{jsx as Fa}from"react/jsx-runtime";import{Component as gQ,createContext as bQ,lazy as VLe,Suspense as YLe,useContext as yQ}from"react";var hQ="hrefRewrite";function xQ(){return tr("efficient.link-href-rewrites",()=>({rewrites:new Map,count:0,missed:new Set}))}function IQ(){return typeof process<"u"&&!0}function GLe(e){let o=e?.[hQ];return typeof o=="string"?o.trim():""}function SF(e){if(!e)return null;let o=xQ(),t=o.rewrites.get(e);return!t&&!IQ()&&o.missed.add(e),t??null}var SQ={Link:Zb,Image:Xb},wF=bQ(SQ);function QLe({runtime:e,children:o}){return Fa(wF.Provider,{value:e,children:o})}function CF(){return yQ(wF)}function eBe({hrefRewrite:e,...o}){let{Link:t}=CF(),r=SF(e);return r?Fa(cb,{name:r.name,href:o.href,fallback:Fa(t,{...o}),children:Fa(wQ,{Link:t,rewrite:r.rewrite,...o})},r.key):Fa(t,{...o})}function wQ({Link:e,rewrite:o,...t}){let r=oe(o(t.href)),a=r&&iS(r)?r:t.href;return Fa(e,{...t,href:a})}var cb=class extends gQ{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 vF(e){let{Image:o}=CF();return Fa(o,{...e})}import{jsx as kF,Fragment as CQ,jsxs as vQ}from"react/jsx-runtime";import{useEffect as kQ,useRef as TF,useState as TQ}from"react";var PQ="#t=0.001",EQ=2;function OQ(e,o){if(e.readyState<EQ||!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 PF({src:e,objectPosition:o="50% 50%",onError:t}){let r=TF(null),a=TF(null),[n,s]=TQ(!1);return kQ(()=>{let l=r.current,c=a.current;if(n||!l||!c)return;let d=()=>{OQ(l,c)&&s(!0)};return d(),l.addEventListener("loadeddata",d),l.addEventListener("seeked",d),()=>{l.removeEventListener("loadeddata",d),l.removeEventListener("seeked",d)}},[n]),vQ(CQ,{children:[kF("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&&kF("video",{ref:r,src:`${e}${PQ}`,muted:!0,playsInline:!0,preload:"auto",className:"hidden",onError:t})]})}import{imageCopyUrl as OF,imageSrcSet as _Q}from"efficient-shell/image-copies";var EF;function db(){return EF===void 0?{}:{host:EF}}var sBe="(max-width: 800px) 100vw, min(100vw, 1600px)";function _F(e,{fallbackWidth:o=1280,maxWidth:t}={}){let r=_Q(e,{...db(),...t===void 0?{}:{maxWidth:t}});return r?{src:OF(e,o,db()),srcSet:r}:{src:e}}function lBe(e){let o=OF(e,1920,db());return o===e?`url(${e})`:`url("${o}")`}var AQ=.5;function ai({videoSrc:e,posterSrc:o,showVideo:t=!0,playbackRate:r=AQ,objectPosition:a="50% 50%",objectPositionPhone:n,objectPositionTablet:s,quiet:l=!1}){let c=Aw(n,s),d=o||"",f=e||"",[h,u]=ri(!1),[x,I]=ri(!1),[y,P]=ri(!1),[v,w]=ri(!1),[g,T]=ri(!1),C=RQ(null);fb(()=>{u(!1),I(!1),P(!1),w(!1)},[e,o]),fb(()=>{if(typeof window>"u")return;let L=()=>{let E=window;E.requestIdleCallback?E.requestIdleCallback(()=>T(!0),{timeout:2e3}):setTimeout(()=>T(!0),800)};if(document.readyState==="complete"){L();return}return window.addEventListener("load",L,{once:!0}),()=>window.removeEventListener("load",L)},[]),fb(()=>{let L=C.current;if(!L)return;let E=()=>{L.playbackRate=r};return E(),L.addEventListener("loadedmetadata",E),()=>L.removeEventListener("loadedmetadata",E)},[e,r]);let F=Jb(d),k=d&&F&&!x?_F(d):{src:d};return RF("div",{className:"absolute inset-0 z-[1]",children:[Kn("div",{className:"absolute inset-0",style:{background:"var(--site-surface)"}}),d&&(F?Kn("img",{src:k.src,...k.srcSet?{srcSet:k.srcSet,sizes:"100vw"}:{},alt:"",className:`absolute inset-0 z-[2] h-full w-full object-cover ${c.className}`.trim(),style:{display:h?"none":"block",objectPosition:a,...c.style},onError:()=>k.srcSet?I(!0):u(!0)},d):Kn(vF,{src:d,alt:"",fill:!0,priority:!0,sizes:"100vw",className:`z-[2] object-cover ${c.className}`.trim(),style:{display:h?"none":"block",objectPosition:a,...c.style},onError:()=>u(!0)},d)),t&&!l&&f&&g&&!y&&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:()=>P(!0),children:[Qb(f)&&Kn("source",{src:f.replace(/\.mp4$/,".av1.mp4"),type:'video/mp4; codecs="av01.0.08M.10"'}),Kn("source",{src:f,type:"video/mp4"})]},f),t&&l&&f&&g&&!v&&(!d||h)&&Kn(PF,{src:f,objectPosition:a,onError:()=>w(!0)},f)]})}import{Fragment as MF,jsx as Oo,jsxs as mb}from"react/jsx-runtime";import{MOTION_TIMING as FQ}from"efficient-shell/format";var BF="grayscale(1) contrast(1.03)",gBe="Black and white";function LQ(e){return e===!0?{filter:BF}:{}}function BQ(e){let{filter:o}=LQ(e);return o?{style:{filter:o}}:{}}var Ba="sf-photo-grayscale",pb="data-sf-photo-host",AF={duration:"--sf-photo-hover-duration",delay:"--sf-photo-hover-delay"},pu=`@media (hover:hover){.${Ba}{filter:${BF};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))}.${Ba}:hover,[data-sf-photo-host]:hover .${Ba}{filter:none}}@media (hover:hover) and (prefers-reduced-motion:reduce){.${Ba}{transition:none}}`;function DF(e){let o=FQ.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 NF(e,o,t){if(e===!0)return BQ(!0);if(t?.kind==="mono"){let r=DF(t);return{className:Ba,sheet:pu,...r?{style:r}:{}}}return e===!1?{}:o===!0?{className:Ba}:{}}var La="sf-photo-next",FF="data-sf-repeat",ub="sf-photo-zoom",DQ="--sf-photo-zoom",bBe="sf-photo-wash",du="sf-photo-wash-rest",ni="sf-photo-wash-hover",fu="sf-photo-frame",uu=(e,o)=>{let t=`:not([${FF}]:not(:hover) .${e})`;return`${o},[${FF}]:hover .${e}${t},[${pb}]:hover .${e}${t}`},LF=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))`,NQ=`.${La}{opacity:0}.${ni}{opacity:0}@media (hover:hover){.${La},.${du},.${ni}{transition:${LF("opacity")}}${uu(La,`.${La}:hover,.${fu}:hover .${La}`)},${uu(ni,`.${fu}:hover .${ni}`)}{opacity:1}${uu(du,`.${fu}:hover .${du}`)}{opacity:0}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.${ub}{transition:${LF("transform")}}${uu(ub,`.${fu}:hover .${ub}`)}{transform:scale(var(${DQ}))}}@media (hover:hover) and (prefers-reduced-motion:reduce){.${La},.${du},.${ni}{transition:none}}`;function yBe(e){if(e?.kind!=="nextImage")return null;let o=DF(e);return{className:La,sheet:NQ,...o?{style:o}:{}}}function SBe(e){return e===!0?{[Ba]:pu}:{}}import{hidableText as MQ}from"efficient-easel/draw";var HQ={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"},zQ={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 HF(e){let o=e.isVideo&&IS(e.videoSource)==="youtube",t=e.isVideo&&gS(e.videoPlayback)==="click",r=o?bS(MQ(e.youtubeUrl)):null,a=Ld(e.mediaLayout);return{fromYouTube:o,onClick:t,youTubeId:r,backgroundFile:e.isVideo&&!o&&!t,desktopLayout:a,phoneLayout:vx(e.mediaLayoutPhone,a),twoPictures:!e.isVideo&&el(e)>1}}function si(e,o){return $d(_n({_partMotion:e},o))}function qn(e,o){return NF(void 0,void 0,uT(_n({_partMotion:e},o)))}function zF(e){return pa.some(o=>qn(e,o).className)?{hostAttrs:{[pb]:""},sheet:pu}:{}}function mu({treatment:e,children:o}){return e.className?Oo("div",{className:`absolute inset-0 ${e.className}`,...e.style?{style:e.style}:{},children:o}):Oo(MF,{children:o})}function hu({color:e,opacity:o,passClicks:t=!0}){return o>0?Oo("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 xu({part:e,editing:o,marked:t=!0,entrance:r,className:a,children:n}){let s=o&&t?{[h0]:e}:void 0;return r?Oo(gg,{desktop:r.desktop,phone:r.phone,editing:o,boxClass:a,boxAttrs:s,children:n}):Oo("div",{className:a,...s,children:n})}function WF({partMotion:e,editing:o,children:t}){let r=si(e,"media"),a=qn(e,"media"),n=a.className?Oo("div",{className:`absolute inset-0 z-[1] ${a.className}`,...a.style?{style:a.style}:{},children:t}):t;return r?Oo(gg,{desktop:r.desktop,phone:r.phone,editing:o,boxClass:"absolute inset-0 z-[1]",children:n}):Oo(MF,{children:n})}function GF({desktopLayout:e,phoneLayout:o,editing:t,marked:r=!0,partMotion:a,first:n,second:s}){return mb("div",{className:`absolute inset-0 z-[1] grid ${HQ[o]} ${zQ[e]}`,"data-hero-layout":e,"data-hero-layout-phone":o,children:[Oo(xu,{part:"image",editing:t,marked:r,entrance:si(a,"image"),className:"relative overflow-hidden",children:mb(mu,{treatment:qn(a,"image"),children:[Oo(ai,{posterSrc:or(n.src),showVideo:!1,objectPosition:n.objectPosition,objectPositionPhone:n.objectPositionPhone,objectPositionTablet:n.objectPositionTablet}),Oo(hu,{color:n.tintColor,opacity:n.tintOpacity})]})}),Oo(xu,{part:"image2",editing:t,marked:r,entrance:si(a,"image2"),className:`relative overflow-hidden${o==="one"?" max-[719px]:hidden":""}${e==="one"?" view-tablet:hidden":""}`,children:mb(mu,{treatment:qn(a,"image2"),children:[Oo(ai,{posterSrc:or(s.src),showVideo:!1,objectPosition:s.objectPosition,objectPositionPhone:s.objectPositionPhone,objectPositionTablet:s.objectPositionTablet}),Oo(hu,{color:s.tintColor,opacity:s.tintOpacity})]})})]})}import{jsx as Da,Fragment as WQ,jsxs as GQ}from"react/jsx-runtime";import{useEffect as UQ,useState as $Q}from"react";import{PlaySolidIcon as jQ}from"efficient-shell/icons/efficient-looks";function UF({youTubeId:e,ownPoster:o,background:t,editing:r}){let[a,n]=$Q("large");return UQ(()=>n("large"),[e]),e?GQ(WQ,{children:[!o&&a!=="none"&&Da("img",{src:a==="large"?yS(e):SS(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&&Da("div",{className:"pointer-events-none absolute inset-0 z-[3] overflow-hidden [container-type:size]","aria-hidden":"true",children:Da("iframe",{src:cp(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 $F({youTubeId:e,fileSrc:o,playing:t,onPlay:r,editing:a}){return!e&&!o?null:t&&!a?e?Da("iframe",{src:cp(e,"click"),title:dp,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"}):Da("video",{src:o,controls:!0,autoPlay:!0,playsInline:!0,className:"absolute inset-0 z-[6] h-full w-full bg-overlay-scrim object-contain"}):Da("button",{type:"button","aria-label":dp,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:Da(jQ,{size:28})})}var jF=["top","middle","bottom"],KF=["left","center","right"],qF="bottom",VF="left",KQ={top:"Top",middle:"Middle",bottom:"Bottom"},qQ={left:"Left",center:"Center",right:"Right"},WBe="Up and down",GBe="Sideways",VQ={top:"flex-start",middle:"center",bottom:"flex-end"},YQ={left:"flex-start",center:"center",right:"flex-end"},XQ="--sf-hero-phone-y",ZQ="--sf-hero-phone-x";function JQ(e){return jF.includes(e)?e:qF}function QQ(e){return KF.includes(e)?e:VF}function YF(e,o){let t=JQ(e),r=QQ(o),a={};return t!==qF&&(a[XQ]=VQ[t]),r!==VF&&(a[ZQ]=YQ[r]),a}function UBe(){return jF.map(e=>({label:KQ[e],value:e}))}function $Be(){return KF.map(e=>({label:qQ[e],value:e}))}import{hexToRgb as eee}from"efficient-shell/format";var oee=!0;var tee=[[0,".5"],[30,".1"],[60,".1"],[100,".85"]];function XF(e){let o=eee(e);return o?`${o.r},${o.g},${o.b}`:null}function ZF(e){return e==null?oee:e!==!1}function JF(e){let o=(e?XF(e):null)??XF(Qo);return`linear-gradient(180deg, ${tee.map(([t,r])=>`rgba(${o},${r}) ${t}%`).join(", ")})`}import{hexToRgb as QF}from"efficient-shell/format";var eL="bottom";var ree=[{label:"Bottom",value:"bottom",cell:"bottom"},{label:"Top",value:"top",cell:"top"},{label:"Left",value:"left",cell:"left"},{label:"Right",value:"right",cell:"right"}],aee={bottom:180,top:0,left:270,right:90},nee=[[.55,0],[.15,18],[null,35],[null,55],[.85,100]],see=[[null,33],[.6,67],[.94,100]];function lee(e,o){let{r:t,g:r,b:a}=QF(e)??QF(Qo);return`rgba(${t},${r},${a},${o})`}function oL(e){return oo(ree,eL,e)}function tL(e=Qo,o=eL){let t=oL(o),r=(t==="top"||t==="bottom"?nee:see).map(([a,n])=>`${a===null?"transparent":lee(e,a)} ${n}%`);return`linear-gradient(${aee[t]}deg, ${r.join(", ")})`}function rL(e,o){let t=oe(e.overlayColor),r=oe(e.overlayPosition),a=oe(o)??Qo;return!t&&!r?{own:!1,color:a,position:null}:{own:!0,color:t??a,position:oL(r)}}import{jsx as iee}from"react/jsx-runtime";var aL="sf-photo-hover";function nL({sheet:e,name:o=aL}){return e?iee("style",{href:o,precedence:aL,dangerouslySetInnerHTML:{__html:e}}):null}var uee=cee({});function mDe({name:e,process:o,mediaType:t="video",mediaSrc:r,videoSpeed:a,poster:n,objectPosition:s,objectPositionPhone:l,objectPositionTablet:c,tintColor:d=Qo,tintOpacity:f=0,groups:h,editing:u=!1,themeClassName:x,themeStyle:I,overlayColor:y,overlayPosition:P,mediaLayout:v,mediaLayoutPhone:w,mediaImage2:g,objectPosition2:T,objectPosition2Phone:C,objectPosition2Tablet:F,tintColor2:k=Qo,tintOpacity2:L=0,videoSource:E,youtubeUrl:R,videoPlayback:N,partMotion:b}){let{alignment:_="left",textureOpacity:A,textureOn:H,textureColor:Z,quietVideo:q,phoneUpDown:$,phoneSideways:Te,holdReel:ge,reelHeld:qe}=dee(uee),Ce=t==="video",ve=Ce?or(r):void 0,me=Ce?or(n):or(r)??or(n),Se=typeof a=="number"?a/100:1,{fromYouTube:je,onClick:Ye,youTubeId:ne,backgroundFile:Oe,desktopLayout:uo,phoneLayout:Re,twoPictures:Me}=HF({isVideo:Ce,videoSource:E,videoPlayback:N,youtubeUrl:R,mediaLayout:v,mediaLayoutPhone:w}),[go,qo]=fee(!1);go&&qe===!1&&qo(!1);let bo=!go,M=rL({overlayColor:y,overlayPosition:P},Z),se=Ce?null:si(b,"image"),he=zF(b),Ae=ht(mu,{treatment:Ce?{}:qn(b,"image"),children:ht(ai,{videoSrc:Oe?ve:void 0,posterSrc:me,showVideo:Oe,playbackRate:Se,objectPosition:s,objectPositionPhone:Ce?void 0:l,objectPositionTablet:Ce?void 0:c,quiet:q})});return sL("section",{className:x?`relative h-full w-full overflow-hidden ${x}`:"relative h-full w-full overflow-hidden",style:I,"data-slide-name":e??"","data-slide-process":o??"","data-slide-media":Oe&&ve?"video":"still",...he.hostAttrs,children:[ht(nL,{sheet:he.sheet}),ht(WF,{partMotion:b,editing:u,children:Me?ht(GF,{desktopLayout:uo,phoneLayout:Re,editing:u,marked:!1,partMotion:b,first:{src:r,objectPosition:s,objectPositionPhone:l,objectPositionTablet:c,tintColor:d,tintOpacity:f},second:{src:g,objectPosition:T,objectPositionPhone:C,objectPositionTablet:F,tintColor:k,tintOpacity:L}}):je||se?sL(xu,{part:Ce?"media":"image",editing:u,marked:!1,entrance:se,className:"absolute inset-0 z-[1]",children:[Ae,je&&ht(UF,{youTubeId:ne,ownPoster:!!me,background:!Ye,editing:u})]}):Ae}),Ye&&ht($F,{youTubeId:ne,fileSrc:je?void 0:ve,playing:go,onPlay:()=>{qo(!0),ge?.()},editing:u}),bo&&!Me&&ht(hu,{color:d,opacity:f,passClicks:!1}),bo&&ZF(H)&&ht("div",{className:"absolute inset-0 z-[2]",style:{background:M.own?tL(M.color,M.position??void 0):JF(M.color),...A!==void 0?{opacity:A/100}:null}}),bo&&ht("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",u?"sf-hero-group-layer-edit":""].filter(Boolean).join(" "),style:{...Xw,...YF($,Te)},children:h&&ht(h,{className:"sf-hero-group-zone",minEmptyHeight:160})})]})}var lL=Array.from({length:3},(e,o)=>({name:`Slide ${o+1}`,process:"Category",mediaType:"image",mediaVideo:"",poster:""}));import{newNodeId as cL}from"efficient-easel/draw";var pee="ImageBlock",mee=3,Iu=(e,o,t={})=>({type:e,props:{...o?.(e)??{},id:cL(e),...t}}),hee=e=>({...e?.(V)??{},direction:"column",[Ke]:[Iu(pee,e),Iu(V,e,{direction:"column",[Ke]:[Iu("Text",e,No()),Iu("Text",e)]})]}),_t={Hero:{slot:"slides",childType:"HeroSlide",addLabel:"Add slide",slider:!0,seeds:()=>lL.map(e=>({...e}))},HeroSlide:{slot:"groups",childType:"HeroGroup",addLabel:`Add ${Ft.toLowerCase()}`,seeds:()=>[],addBlocked:Ni,notice:Ap},HeroSingle:{slot:"boxes",childType:"HeroGroup",addLabel:`Add ${Ft.toLowerCase()}`,seeds:()=>[],addBlocked:Ni,notice:Ap},ProcessSteps:{slot:"boxes",childType:V,addLabel:`Add ${Ft.toLowerCase()}`,seeds:e=>Array.from({length:mee},()=>hee(e)),skipSeed:e=>Array.isArray(e.steps)&&e.steps.length>0}},iL=1,xee={slot:Qs,childType:V,addLabel:`Add ${Ft.toLowerCase()}`,seeds:()=>[],addBlocked:e=>e.length>=iL?"This Hero has its Scrolling Bar already. Delete it to add another.":null,notice:e=>e.length>iL?`This Hero holds ${e.length} Scrolling Bars. Keep one and delete the others.`:null},dL={Hero:{[Qs]:xee}};function CDe(e){for(let[o,t]of Object.entries(e)){if(o in _t&&_t[o]!==t)throw new Error(`lib/document/slot-specs: "${o}" already has a slot spec`);_t[o]=t}}function vDe(e,o){let t=_t[e];return t?{slot:t.slot,children:t.seeds(o).map(r=>({type:t.childType,props:{id:cL(t.childType),...r}}))}:null}var uL=()=>({}),pL=new Map;function Iee(e){let o=pL.get(e);if(o)return o;let t=new Set,r=_t[e];if(r)for(let s of r.seeds(uL))for(let l of fL({type:r.childType,props:s}))t.add(l);let a=cu(e);if(a){let s=0;for(let l of fL(a(uL,c=>`${c}-${s+=1}`)))t.add(l)}t.delete(e);let n=[...t].sort();return pL.set(e,n),n}function gee(e){if(!e||!e.sets&&!e.allow&&!e.deny?.length)return null;let o=yI(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=gy(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 f=n(c)&&Iee(c).every(l);return s.set(c,f),f};return{sets:o,offers:l}}var bee="block-offer";function hb(e=mL()){return e.cache(bee,()=>gee(Ui(e)))}function hL(e,o=mL()){let t=hb(o);return t?t.offers(e):!0}function yee(e){let o=Gf.Ticker(e.nodeDefaults,e.newNodeId),{sectionBorder:t,...r}=o.props,a=wx.line?{sectionBorder:t}:{};return{...o,props:{...r,...a,sectionAccent:wx.sectionAccent}}}var See={Hero:{[Qs]:{newChild:yee,childLabel:bi.Ticker}}},xL=Object.fromEntries(Object.entries(dL).map(([e,o])=>[e,Object.fromEntries(Object.entries(o).map(([t,r])=>[t,{...r,...See[e]?.[t]}]))]));function IL(e,o=0,t,r){let a=Cee(vee(e,o,r),t),n=a?hb():null;return a&&n?wee(a,n):a}function wee(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 Cee(e,o){if(!e||e.source!=="container"||!o||!Ky())return e;let t=Ei({data:o.data},o.id),r=typeof t?.type=="string"?qy(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 vee(e,o,t){let r=t?xL[e]?.[t]:void 0;if(r)return{source:"section",slot:r.slot,choices:null,spec:r};let a=_t[e];if(a)return{source:"section",slot:a.slot,choices:null,spec:a};let n=Sy(e,o);if(n)return{source:"container",slot:n.slot,choices:n.choices,spec:null};let s=NO(e);return s?{source:"footer",slot:DO,choices:s,spec:null}:null}function gL(e,o=[Pi]){return tp(e.type)?o.map(t=>t===Pi?{slot:t,label:i(Uy),rung:!0}:{slot:t,label:t,rung:!1}):null}import{useSyncExternalStore as kee}from"react";var xb=null,Ib=new Set;function bL(e){if(xb!==e){xb=e;for(let o of Ib)o()}}function Tee(e){return Ib.add(e),()=>{Ib.delete(e)}}function ZDe(){return kee(Tee,()=>xb,()=>null)}function yL(e){return is(e)?.ownerId??null}function SL(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 wL=(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 CL="sf-editor-left-view";function vL(){if(typeof window>"u")return"pages";try{let e=window.localStorage.getItem(CL);return e==="sections"||e==="styles"?e:"pages"}catch{return"pages"}}function kL(e){if(!(typeof window>"u"))try{window.localStorage.setItem(CL,e)}catch{}}function TL(e,o){return e==="styles"&&!o?"sections":e}function PL(e,o){return e?"sections":o}var Pee=new Set(["BookingBox","SubmitBox"]);function Eee(e){return typeof e=="string"&&Pee.has(e)}var Oee=wO(Eee,_O);function EL(e,o){return Oee(e)||gm(o)}import{copyNode as _ee}from"efficient-easel/data";function OL(e){let o=typeof e?.props?.id=="string"?e.props.id:null,t=jt(),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 _L={usedOn:e=>{let o=jt(),t=o?.sectionOf(e.props.id)??null;return!o||!t?null:o.usedOn(t)??[]},openPage:e=>xf()?.openPage(e),adopt:(e,o)=>jt()?.adopt(e.props.id,o),nodeOf:e=>jt()?.place(e)??null,detach:e=>{let o=xf()?.config;return o?_ee(e,o):e},removed:()=>xf()?.reload()};import{sharedSectionsOf as Noe}from"efficient-easel/screen/lib/shared-sections";import{scrollPreviewToSection as Moe,scrollPreviewToTop as nB}from"efficient-easel/screen/lib/document/preview-dom";import{jsx as yb,Fragment as aoe,jsxs as noe}from"react/jsx-runtime";import{useEffect as soe,useMemo as GL,useRef as UL}from"react";import{EaselCanvas as loe,repeatCopyAt as ioe}from"efficient-easel/easel";import{jsx as BL,Fragment as Hee,jsxs as zee}from"react/jsx-runtime";import{useEffect as DL,useLayoutEffect as Wee}from"react";var gu="data-theme",RL="light";function Ree(e){return e.getAttribute(gu)===RL?"light":"dark"}function Aee(e,o){return Ree(e)===o?!1:(o==="light"?e.setAttribute(gu,RL):e.removeAttribute(gu),!0)}function Fee(e){return Lu(e).getItem(Tu)}function pNe(e,o){Lu(e).setItem(Tu,o)}function Lee(e,o,t=new Date().getHours()){return _b({mode:o.mode,override:Fee(e),switchShown:o.switchShown,hour:t})}function AL(e,o){let t=e.documentElement;if(!t)return()=>{};let r=()=>Aee(t,Lee(e,o));r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[gu]}),()=>n.disconnect()}var Bee="style";function Dee(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 FL(e,o){let t=e.body;if(!t)return()=>{};let r=()=>Dee(t,o);r();let a=e.defaultView?.MutationObserver;if(!a)return()=>{};let n=new a(r);return n.observe(t,{attributes:!0,attributeFilter:[Bee]}),()=>n.disconnect()}var Nee=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);`,Mee="storefront-fit-words";function LL(e){let o=e.createElement("script");return o.id=Mee,o.textContent=Nee,(e.head??e.documentElement).appendChild(o),()=>{e.__sfFitWords?.(),o.remove()}}var Gee=`
339
- [${st}][${st}] { cursor: text; }
340
- `;function NL({children:e,document:o}){let{theme:t,themeMode:r,themeSwitchShown:a}=ce(),n=no(t);return DL(()=>{if(o)return AL(o,{mode:r,switchShown:a})},[o,r,a]),DL(()=>{if(o)return FL(o,n)},[o,n]),Wee(()=>{if(o)return LL(o)},[o]),zee(Hee,{children:[BL(uy,{}),BL("style",{children:Gee}),e]})}import{jsx as gb}from"react/jsx-runtime";import{useEffect as Uee,useState as $ee}from"react";import{Banner as jee}from"efficient-shell/ui";var bu={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."},Kee={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."},qee=bu.load,Vee=bu.lock,Yee=bu.conflict,Xee=bu.save;function Zee(e){if(!e)return null;if(e.loadFailed)return i(qee);if(e.lockHolder)return i(Vee,{name:e.lockHolder.name||i("Somebody else")});if(e.conflict)return i(Yee);if(e.saveFailed)return i(Xee);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(Kee[o.problem],{section:t,name:r})}function Jee({report:e}){let o=Zee(Bf(e)),[t,r]=$ee(null);return Uee(()=>{o||r(null)},[o]),!o||t===o?null:gb("aside",{className:"sf-canvas-notice",children:gb(jee,{tone:"warning",onDismiss:()=>r(o),children:o})})}function ML(){return gb(Jee,{report:Df()})}import{jsx as yu}from"react/jsx-runtime";import{useState as HL}from"react";import{Banner as Qee,Button as eoe}from"efficient-shell/ui";import{UndoIcon as ooe}from"efficient-shell/icons/efficient";import{useScreenDocument as toe}from"efficient-easel/screen/components/ScreenDocumentContext";import{useSettledAction as roe}from"efficient-easel/easel";function zL(){let e=I_(),{adapter:o,flushSave:t,reloadFromServer:r}=toe(),a=o.siteVersions,[n,s]=HL(!1),[l,c]=HL(!1),d=async()=>{if(!(!a||n)){s(!0),c(!1);try{await y_({access:a,flushSave:t,reload:r})}catch{c(!0)}finally{s(!1)}}},f=roe({onPress:()=>{d()},busy:n});return e?yu("aside",{className:"sf-canvas-notice",children:yu(Qee,{tone:l?"danger":"info",title:e.title,onDismiss:Nf,action:a&&e.undo?yu(eoe,{variant:"secondary",size:"sm",leftIcon:yu(ooe,{}),loading:f.busy,disabled:f.busy,onClick:f.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 coe,REPEAT_ATTRIBUTE as Sb,REPEAT_INDEX_ATTRIBUTE as wb}from"efficient-easel/draw";import{usePreviewParts as doe}from"efficient-easel/draw/client";var WL=null;function bb(e){WL=e}function zNe(){return WL}function $L(e){let{mirrorHostStyles:o}=Nu(),t=my(),{sectionBackgroundWidth:r,themeFromDocument:a}=ce(),n=oy(),s=GL(()=>({...e.metadata??t??{},...Sv(a?null:r,n)}),[e.metadata,t,r,n,a]);soe(()=>(bb(n),()=>bb(null)),[n]);let l=UL(null),c=foe(l),{onDocument:d}=e,f=h=>{l.current=h,d?.(h)};return noe(aoe,{children:[yb(zL,{}),yb(ML,{}),yb(loe,{...e,onDocument:f,typing:c,metadata:s,height:"fill",mirrorStyles:o,frameWrapper:NL})]})}function foe(e){let o=xi(),t=doe(),r=UL({parts:t});return r.current={parts:t},GL(()=>{let a=(n,s)=>{let l=Kc(n,o),c,d=null,f=s??(l?null:xh(null,e.current,n)),h=!l&&f?ioe(f):null,u=h?coe(n):null;if(h&&f&&u?.propKey){l=Vc({...h,nodeId:u.nodeId,key:u.propKey},o),c=u.propKey;let P=f.closest(`[${Sb}][${wb}]`),v=`[${Sb}="${qc(P?.getAttribute(Sb)??"")}"][${wb}="${qc(P?.getAttribute(wb)??"")}"]`;d=()=>(f.ownerDocument??e.current)?.querySelector(v)??null}if(!l)return null;let x=f,I=()=>(x=xh(x,d?d():x?.ownerDocument??e.current,n),x),y=I();return y?{element:I,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?pn(BT(y)):void 0,colorNameOf:vt}}:null};return{at:n=>{let s=n.closest(`[${st}]`),l=s?.getAttribute(st);return s&&l?a(l,s):null},atSelection:()=>{let n=r.current.parts.selectedPartId;return n?a(n,null):null},onCopyText:n=>Vk(n,o),copyValue:n=>qk(n,o),onChange:n=>{if(!n.typing){Ih(null);return}let s=n.element.closest(`[${st}]`)?.getAttribute(st)??null;Ih(s),s&&r.current.parts.selectedPartId!==s&&r.current.parts.select(s)}}},[o,e])}var uoe=ey.mediaFields,poe=/video|poster|focal|phone/i;function jL(e){return(uoe[e]??[]).find(o=>!o.includes("[]")&&!poe.test(o))??null}var KL={adds:{kind:"block",type:"ImageBlock"},takes:e=>jL(e.type)!==null,replace:(e,o)=>{let t=jL(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 qL={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 stat cards whose units and small labels take the main color.",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 Su}from"react/jsx-runtime";import{useState as moe}from"react";import{Button as hoe,Tooltip as xoe,toast as VL}from"efficient-shell/ui";import{TemplateIcon as Ioe}from"efficient-easel/icons";import{useSettledAction as goe}from"efficient-easel/easel";import{useScreenDocument as boe}from"efficient-easel/screen/components/ScreenDocumentContext";function XL({enabled:e,reason:o,onSaved:t}){let{flushSave:r}=boe(),[a,n]=moe(!1),s=async()=>{if(!a){n(!0);try{await r()?t():VL.error(i(YL))}catch{VL.error(i(YL))}finally{n(!1)}}},l=goe({onPress:()=>{s()},busy:a});return Su(xoe,{side:"bottom",content:e?i("Save this website as a platform template"):i(o),children:Su("span",{className:"sf-tip-disabled",tabIndex:e?void 0:0,children:Su(hoe,{variant:"secondary",disabled:!e||l.busy,loading:l.busy,onClick:l.onPress,rightIcon:Su(Ioe,{size:15}),children:i("Save as Template")})})})}var YL="Your last changes did not save, so the template was not made. Try again.";var yoe="Save your page changes first";function ZL(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:yoe}:{visible:!0,enabled:!0}:{visible:!1,hiddenReason:"no-site"}:{visible:!1,hiddenReason:"not-operator"}:{visible:!1,hiddenReason:"no-console"}}var JL="storefront-editor:save-as-template";var li="ContactLocations",Soe="CityPictures",woe="CityMaps",Coe=[{key:Soe,label:"City pictures",desc:"A wall of city photos, grouped by region. Each photo links to its city's card."},{key:woe,label:"City maps",desc:"A card per city, grouped by region: address, phone, hours and a map."}];function QL(e=El){let o=rr.find(t=>t.sections.some(r=>r.type===li))?.key;return!e.includes(li)||!o?[]:Coe.map(({key:t,label:r,desc:a},n)=>({key:t,label:r,cat:o,after:li,desc:a,alias:"locations offices stores branches",insert:s=>{let l=Ff(li);return l?ib(li,l,n)(s.nodeDefaults,s.newNodeId):null}}))}var voe="plain",eB=[{label:"Plain",value:"plain"},{label:"Filled",value:"filled"},{label:"Line",value:"line"}],koe="line",Toe={KeyFeatures:"filled"};function ii(e){return Toe[e]??voe}function v2e(e,o){return oo(eB,ii(o),e)}function k2e(e){return oo(eB,koe,e)}function tB(e,{nodeDefaults:o,newNodeId:t,sectionLabel:r,blockIsOffered:a}){let n=cu(e);if(n)return n(o,t);if(F1(e)&&a(V)&&a(Hn))return{type:V,props:{...o(V),id:t(V),direction:"column",name:`${r(e)} section`,content:[{type:Hn,props:{...o(Hn),id:t(Hn),...Io[e]?.headStyle?{headStyle:Io[e].headStyle}:{},...Io[e]?.headRowGap?{rowGap:Io[e].headRowGap}:{},...Io[e]?.headDescriptionSize?{descriptionSize:Io[e].headDescriptionSize}:{},...ii(e)!==ii(Hn)?{eyebrowLook:ii(e)}:{}}},{type:e,props:{...o(e),id:t(e),headPlacement:"own-box",...oB(e,t)}}]}};if(_t[e]?.fixed===!0)return{type:e,props:{...o(e),id:t(e),layout:"boxes"}};let s=oB(e,t);return Object.keys(s).length?{type:e,props:{...o(e),id:t(e),...s}}:null}function oB(e,o){return e==="Cards"?{template:Ti(t=>o(t))}:{}}import{useEffect as Poe,useState as Eoe}from"react";import{useEaselSession as Ooe}from"efficient-easel/screen/lib/session-context";function rB(){let e=Ooe().chrome?.products?.list,[o,t]=Eoe(null);return Poe(()=>{if(!e)return;let r=!1;return e().then(a=>{r||t(a)}),()=>{r=!0}},[e]),o}function pB({mode:e,open:o}){let{setSelectedHeroId:t,setSelectHandler:r}=s0(),a=fB().tree,n=e,s=n.kind==="ticker"?n.heroId:null,l=Vn(c=>{c&&(o({kind:"ticker",heroId:c}),Moe(c))},[o]);return Rt(()=>{t(s)},[s,t]),Rt(()=>{r(l)},[r,l]),{partRows:(c,{rowClick:d})=>{let f=String(c.props.id);return c.type==="Hero"&&Cx(c.props)&&ao(cB,{icon:ao(ma,{type:"ticker",size:13}),name:i(Js),onSelect:()=>l(f),selected:s===f,rowProps:{onClick:d(()=>l(f))},words:a})}}}function mB({mode:e,select:o}){let{setSelectedHeroPart:t,setSelectHandler:r}=Fd(),a=fB().tree,{appState:n}=dB(u=>u),s=n.data.content??[],l=_oe(s);l.current=s;let c=e,d=pa.find(u=>ol[u]===c.kind),f=d&&"nodeId"in c?tl(String(c.nodeId),d):null,h=Vn(u=>{let x=m0(u);if(!x)return;let I=l.current.findIndex(P=>String(P.props.id)===x.nodeId);if(I<0)return;let y={kind:ol[x.part],nodeId:x.nodeId};o({index:I},y)},[o]);return Rt(()=>{t(f)},[f,t]),Rt(()=>{r(h)},[r,h]),{partRows:(u,{rowClick:x})=>{let I=String(u.props.id),y=p0(u);if(y.length===0)return null;let P=g=>{let T=tl(I,g.part);return ao(cB,{icon:ao(ma,{type:g.part==="media"?"heroMedia":"heroImage",size:13}),name:i(g.label),onSelect:()=>h(T),selected:f===T,rowProps:{onClick:x(()=>h(T))},words:a},T)},[v,...w]=y;return ci(iB,{children:[P(v),w.length>0&&ao(Boe,{children:w.map(P)})]})}}}function hB(e,o){return{partRows:(t,r)=>ci(iB,{children:[e.partRows?.(t,r),o.partRows?.(t,r)]})}}function Hoe(e){let{adapter:o,capabilities:t,currentSlug:r,siteId:a,docId:n,hasUnsavedEdits:s,bridgeCapabilities:l,notifyParent:c,token:d}=wu(),{hasPreviewLink:f}=t,h=We(uB()).preview?.draftLink,u=P_(e.data),x=ZL({hasTrustedConsole:!!d,canCreatePlatformTemplate:l.canCreatePlatformTemplate,capabilities:t,siteId:a,hasUnsavedEdits:s}),I=Vn(()=>{!a||!r||c(JL,{siteId:a,slug:r})},[c,a,r]),y=n_({pageSlug:r,siteId:a,token:d}),P=o.previewHref?.(r)??y;return{barLead:()=>x.visible&&ao(XL,{enabled:x.enabled,reason:x.enabled?"":x.disabledReason,onSaved:I}),barView:()=>f&&r&&ao(i_,{liveHref:P,pageId:n??null,draftLink:h}),mainAction:u}}function zoe(e,o){let{capabilities:t,templateId:r,siteId:a,tokenRef:n,navigate:s}=wu(),{hasSiteTheme:l,explainsSiteSettings:c}=t,d=g=>o.setView(g),[f,h]=aB(Sn[0].id),[u,x]=aB(!1),{surface:I,setSurface:y}=n0(),P=()=>{if(l){d("styles"),o.reveal(),nB();return}e.show(GI),e.reveal(),nB()},v={id:"pages",label:i("Pages"),icon:ao(Aoe,{}),panel:({onHide:g})=>ao(YP,{activeSurface:I,onPreviewSurface:y,onNavigate:T=>{y(null),s(r?{kind:"template",id:r,pageSlug:T}:{kind:"page",slug:T,siteId:a??void 0})},onClose:g})},w=[];return!l&&c&&w.push({id:"appearance",label:i("Appearance"),icon:ao(Loe,{}),active:e.kind==="website",onSelect:P}),l&&w.push({id:"styles",label:i("Styles"),icon:ao(Foe,{}),panel:({onHide:g,notify:T})=>ao(f1,{tokenRef:n,siteId:a??void 0,onClose:g,onNotify:T,tab:f,onTabChange:h,revealPageGroup:u,onPageGroupRevealed:()=>x(!1)})}),{railLead:[v],railTrail:w,resolveLeftView:g=>TL(g,l),openSettings:P,openStyles:()=>{h(RP),d("styles")},openPageStyles:l?()=>{h(wn),x(!0),d("styles"),o.reveal()}:c?()=>{e.show(e1),e.reveal()}:void 0}}function Woe(){let{navigate:e,siteId:o,reloadFromServer:t,docId:r}=wu(),a=dB(s=>s.config),n=uB();Rt(()=>(_I({openPage:s=>e({kind:"page",slug:s.slug,siteId:o??void 0}),reload:()=>{t()},config:a}),()=>_I(null)),[e,o,t,a]),Rt(()=>{let s=jt();if(!s||!r)return;let l=!1;return Noe(n).list().then(c=>{l||s.learn(c)}).catch(()=>{}),()=>{l=!0}},[r,n])}function xB(){let e=xi();return Vn(o=>{Yk(o,e)},[e])}function Goe(e,o,t,r){let{kind:a,open:n}=e,{selected:s,zoneOf:l}=o;Rt(()=>{bL(s?.type==="BookingBox"&&s.props.region==="confirm"?yL(l(String(s.props.id))):null)},[s?.props.id]);let c=A1(e,o),{capabilities:{hasSiteSettings:d}}=wu();Woe();let{chat:f,setChat:h,setSelected:u,setSelectHandler:x}=Ad(),I=Vn(()=>n(o1),[n]),y=a==="chat";Rt(()=>{u(y)},[y,u]),Rt(()=>{x(I)},[x,I]);let{setOpenHandler:P}=Zs(),v=Vn(()=>n(t1),[n]);Rt(()=>{P(v)},[P,v]);let w=hB(pB(e),mB(e)),g=Hoe(o),T=zoe(e,r),C=t.device,F=xB();return{...w,...g,...T,hasOwnRows:k=>k.type===Rf,ownRows:c.renderLocationTree,sectionPressed:c.sectionPressed,onCopyItem:F,wrap:k=>ao(Mu.Provider,{value:!0,children:ci(Doe.Provider,{value:C,children:[k,ao(B_,{})]})}),addPanelRow:k=>d?ci("div",{className:"sf-addside-sitewide",children:[ao("span",{className:"sf-addside-sitewide-glyph","aria-hidden":"true",children:ao(ma,{type:"chat",size:16})}),ci("button",{type:"button",className:"sf-addside-sitewide-name",onClick:()=>{k(),I()},children:[i("Live chat"),ao("span",{className:"sf-addside-sitewide-desc",children:i("A chat bubble on every page")})]}),ao(Roe,{checked:f.enabled,onChange:L=>h({enabled:L}),ariaLabel:i("Show the chat bubble on the whole site")})]}):void 0}}var sB=null,Cb=new WeakMap;function Uoe(e){let o=dy();if(!e||!o)return e;sB!==o&&(sB=o,Cb=new WeakMap);let t=Cb.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},Cb.set(e,t)),t}var $oe={isLockedBlock:(e,o)=>EL(e,o)||!!(o&&jt()?.heldElsewhere(o.props.id)),duplicateBlocked:wf,nestDepth:(e,o,t)=>o===Mi?ew(e,t):0,newSectionNode:tB,canAddTo:(e,o,t,r)=>Uoe(IL(e,o,r,t)),blockIsOffered:hL,slotsOf:gL,resolveOnInsert:!0},joe=new Proxy(qL,{get:(e,o)=>{let t=Reflect.get(e,o);return typeof t=="string"?i(t):t}}),Koe={labelAtLevel:(e,o,t)=>i(Gu(e,o,t)),descriptions:joe,categoryLabel:e=>{let o=D_(e);return o===void 0?void 0:i(o)},firstSection:N_,blockRowName:SL,rowName:wL,plainText:Ur,Icon:ma,Thumbnail:d1,useProducts:rB,presets:QL()},qoe={desktop:2e3,tablet:800,mobile:390},lB="desktop",Voe={options:o0,initial:lB,fluid:lB,widths:qoe},Yoe={read:vL,write:e=>kL(e),forSelection:(e,o)=>PL(e,o)},Xoe={first:ko,last:Ne,firstGroup:De,lastGroup:_e,isSectionGroup:Ln,sectionGroupZone:pO,panelOf:e=>e===ko?QO:null,get sharedReach(){return ya()?Joe:void 0},get shared(){return jt()?_L:void 0},get groupTab(){return ya()?MO:void 0},get groupBadge(){return ya()?NI({type:_e})??void 0:void 0},get changeNotice(){return ya()?HO():void 0},get band(){return ya()?Zoe:void 0},get groupAccepts(){return ya()?xO:void 0}},Zoe={foldable:!0},Joe=e=>NI(e)??OL(e);function Qoe(e){return{...hB(pB(e),mB(e)),onCopyItem:xB(),openSettings:()=>e.show(GI)}}function ete(e,o){j1(e,o),e_()}var YMe={useOwnerName:Cn,useDocumentLabel:NP,useBridges:Goe,useStandaloneBridges:Qoe,useDocumentPass:ete,blockRules:$oe,blockLook:Koe,devices:Voe,leftView:Yoe,pinned:Xoe,Canvas:$L,canvasDrag:{media:KL},Inspector:a1};export{tr as a,oe as b,Ii as c,UB as d,Br as e,Jn as f,Cte as g,vte as h,Hu as i,hy as j,kte as k,So as l,YB as m,Tte as n,Ete as o,Ote as p,_te as q,bi as r,Ft as s,V as t,by as u,Nte as v,Sy as w,oo as x,$u as y,ju as z,lD as A,yi as B,Wte as C,es as D,Gte as E,wy as F,jte as G,Cy as H,Dr as I,Kte as J,qte as K,Vte as L,ky as M,Zte as N,Jte as O,Qte as P,hD as Q,ere as R,ID as S,ore as T,tre as U,Zu as V,By as W,Dy as X,Ny as Y,rre as Z,are as _,vD as $,nre as aa,sre as ba,My as ca,lre as da,zy as ea,K as fa,de as ga,D as ha,G as ia,ts as ja,ki as ka,OD as la,Pi as ma,It as na,AD as oa,$y as pa,Fre as qa,LD as ra,jy as sa,qy as ta,Lre as ua,tp as va,Bre as wa,BD as xa,Yy as ya,ar as za,Dre as Aa,Nre as Ba,Mre as Ca,DD as Da,Hre as Ea,Ei as Fa,zre as Ga,Wre as Ha,yI as Ia,We as Ja,Ui as Ka,Cp as La,NN as Ma,vp as Na,kp as Oa,fs as Pa,Xe as Qa,sne as Ra,MN as Sa,Io as Ta,L1 as Ua,$Ee as Va,B1 as Wa,jEe as Xa,KEe as Ya,U as Za,Pf as _a,vEe as $a,Pt as ab,Et as bb,Wo as cb,tOe as db,Pwe as eb,Md as fb,sl as gb,A0 as hb,F0 as ib,L0 as jb,Ewe as kb,y8 as lb,B0 as mb,Owe as nb,M0 as ob,M_ as pb,W1e as qb,rte as rb,Q as sb,i as tb,mo as ub,H_ as vb,$1e as wb,Xw as xb,dr as yb,Jw as zb,bie as Ab,pm as Bb,SH as Cb,yie as Db,ll as Eb,$d as Fb,Wwe as Gb,ed as Hb,Be as Ib,Zhe as Jb,Jhe as Kb,Qhe as Lb,uT as Mb,oG as Nb,Lh as Ob,tG as Pb,Sxe as Qb,lt as Rb,Cxe as Sb,vxe as Tb,ld as Ub,kxe as Vb,id as Wb,Txe as Xb,Pxe as Yb,ST as Zb,wT as _b,cG as $b,dG as ac,Rxe as bc,Fxe as cc,Lxe as dc,Bxe as ec,Dxe as fc,AC as gc,cde as hc,Za as ic,St as jc,sc as kc,NC as lc,j_ as mc,Zd as nc,YCe as oc,wr as pc,XCe as qc,ZCe as rc,JCe as sc,Jd as tc,QCe as uc,eve as vc,l4 as wc,dc as xc,ws as yc,Ede as zc,Pm as Ac,Ode as Bc,Cs as Cc,XC as Dc,ZC as Ec,_de as Fc,JC as Gc,ev as Hc,Uf as Ic,V_ as Jc,l_e as Kc,i_e as Lc,Dm as Mc,wt as Nc,ie as Oc,ue as Pc,pe as Qc,ke as Rc,ye as Sc,Le as Tc,P_e as Uc,jl as Vc,Kl as Wc,Xre as Xc,Zre as Yc,uS as Zc,Ur as _c,BT as $c,Fs as ad,xs as bd,rh as cd,sh as dd,Wc as ed,st as fd,ime as gd,cme as hd,dme as id,fme as jd,Bz as kd,Dz as ld,ume as md,cn as nd,lh as od,pme as pd,mme as qd,ud as rd,pd as sd,Mh as td,vG as ud,Uh as vd,$h as wd,In as xd,la as yd,hIe as zd,Us as Ad,qT as Bd,xIe as Cd,Qh as Dd,IIe as Ed,gIe as Fd,bIe as Gd,iU as Hd,yIe as Id,uU as Jd,pU as Kd,SIe as Ld,wIe as Md,hU as Nd,_a as Od,L_e as Pd,B_e as Qd,Kf as Rd,NX as Sd,MX as Td,D_e as Ud,N_e as Vd,gg as Wd,Ig as Xd,fl as Yd,zE as Zd,WE as _d,ul as $d,CE as ae,uI as be,Dve as ce,_n as de,mI as ee,TE as fe,PE as ge,aq as he,EE as ie,Qd as je,OE as ke,Q_e as le,iR as me,eRe as ne,oRe as oe,tRe as pe,Xl as qe,Vf as re,cRe as se,Uo as te,gRe as ue,xR as ve,IR as we,gR as xe,nv as ye,Hde as ze,mZ as Ae,hZ as Be,xZ as Ce,IZ as De,gZ as Ee,bR as Fe,bZ as Ge,PRe as He,ERe as Ie,BRe as Je,yR as Ke,DRe as Le,NRe as Me,MRe as Ne,HRe as Oe,zRe as Pe,WRe as Qe,qRe as Re,Zf as Se,VRe as Te,ZRe as Ue,PZ as Ve,CR as We,eAe as Xe,oAe as Ye,vR as Ze,Ra as _e,rw as $e,rFe as af,dA as bf,Ug as cf,fA as df,iFe as ef,cFe as ff,dFe as gf,$g as hf,fFe as if,uFe as jf,uA as kf,OJ as lf,ch as mf,wme as nf,dh as of,Fk as pf,HFe as qf,UA as rf,$A as sf,tLe as tf,jJ as uf,KJ as vf,JA as wf,cLe as xf,dLe as yf,FLe as zf,GLe as Af,QLe as Bf,CF as Cf,eBe as Df,vF as Ef,sBe as Ff,_F as Gf,lBe as Hf,Aw as If,ai as Jf,sr as Kf,Gae as Lf,EN as Mf,gp as Nf,cs as Of,Uae as Pf,Kae as Qf,_N as Rf,FS as Sf,qae as Tf,jr as Uf,BN as Vf,Qae as Wf,ene as Xf,ds as Yf,one as Zf,tne as _f,Tp as $f,MS as ag,pne as bg,d0 as cg,kye as dg,vx as eg,kn as fg,Oye as gg,_ye as hg,Xj as ig,Rye as jg,tl as kg,m0 as lg,h0 as mg,gBe as ng,pb as og,NF as pg,La as qg,ub as rg,DQ as sg,bBe as tg,du as ug,ni as vg,fu as wg,yBe as xg,SBe as yg,iN as zg,uae as Ag,cN as Bg,dN as Cg,hae as Dg,fN as Eg,uN as Fg,xae as Gg,Iae as Hg,gae as Ig,HF as Jg,si as Kg,qn as Lg,zF as Mg,mu as Ng,hu as Og,xu as Pg,WF as Qg,GF as Rg,UF as Sg,$F as Tg,qF as Ug,VF as Vg,WBe as Wg,GBe as Xg,UBe as Yg,$Be as Zg,Qo as _g,oee as $g,eL as ah,ree as bh,tL as ch,rL as dh,nL as eh,uee as fh,mDe as gh,Ka as hh,XS as ih,YS as jh,JN as kh,QN as lh,e2 as mh,Fne as nh,o2 as oh,Lne as ph,us as qh,Bne as rh,Dne as sh,Mi as th,ew as uh,i0 as vh,yye as wh,CDe as xh,vDe as yh,gee as zh,xse as Ah,S4 as Bh,Qa as Ch,Nde as Dh,KS as Eh,$N as Fh,wne as Gh,Bi as Hh,VS as Ih,jN as Jh,KN as Kh,qN as Lh,kne as Mh,Tne as Nh,Pne as Oh,Ene as Ph,De as Qh,_e as Rh,$Te as Sh,mO as Th,mf as Uh,wae as Vh,Tae as Wh,fc as Xh,Fde as Yh,Lde as Zh,Bde as _h,bv as $h,ea as ai,U4 as bi,ofe as ci,$4 as di,tfe as ei,gc as fi,rfe as gi,zNe as hi,Tke as ii,HE as ji,Js as ki,mye as li,s0 as mi,hye as ni,xye as oi,Iye as pi,yEe as qi,u1 as ri,p1 as si,m1 as ti,Cv as ui,vo as vi,rt as wi,bc as xi,rn as yi,hfe as zi,xfe as Ai,gfe as Bi,bfe as Ci,yfe as Di,Sfe as Ei,wfe as Fi,vfe as Gi,Sc as Hi,Wm as Ii,kv as Ji,Tv as Ki,xne as Li,yne as Mi,Di as Ni,Hi as Oi,ms as Pi,iw as Qi,Kne as Ri,qne as Si,Dp as Ti,L2 as Ui,pse as Vi,Cse as Wi,vse as Xi,X2 as Yi,Mo as Zi,hs as _i,qp as $i,Vp as aj,lle as bj,ile as cj,_w as dj,cle as ej,dle as fj,fle as gj,Bw as hj,Nw as ij,Bt as jj,jw as kj,OH as lj,Lie as mj,rC as nj,Wie as oj,nC as pj,cC as qj,dC as rj,fC as sj,uC as tj,pC as uj,mC as vj,hm as wj,VH as xj,YH as yj,ys as zj,xm as Aj,xC as Bj,dce as Cj,ZH as Dj,fce as Ej,uce as Fj,pce as Gj,gC as Hj,Ice as Ij,e5 as Jj,gce as Kj,bce as Lj,t5 as Mj,Im as Nj,a5 as Oj,Cce as Pj,n5 as Qj,vce as Rj,s5 as Sj,et as Tj,Tce as Uj,Pce as Vj,Ece as Wj,Oce as Xj,oc as Yj,_ce as Zj,ym as _j,Mce as $j,vC as ak,d5 as bk,zce as ck,Ss as dk,v5 as ek,sde as fk,r4 as gk,Cde as hk,n4 as ik,vde as jk,kde as kk,Tde as lk,pc as mk,vs as nk,Wde as ok,Gde as pk,Ude as qk,lv as rk,iv as sk,cv as tk,$de as uk,tn as vk,xc as wk,Yde as xk,Xde as yk,Zde as zk,Iv as Ak,Qde as Bk,xr as Ck,Wt as Dk,ta as Ek,Xue as Fk,Zue as Gk,Jue as Hk,Que as Ik,epe as Jk,ope as Kk,tpe as Lk,spe as Mk,lpe as Nk,S6 as Ok,ipe as Pk,cpe as Qk,dpe as Rk,fpe as Sk,upe as Tk,ppe as Uk,mpe as Vk,hpe as Wk,k6 as Xk,xpe as Yk,Ym as Zk,Ipe as _k,Oc as $k,zt as al,em as bl,ak as cl,Rc as dl,gpe as el,bpe as fl,K6 as gl,ype as hl,Spe as il,wpe as jl,Cpe as kl,vpe as ll,kpe as ml,Tpe as nl,Ppe as ol,wc as pl,Fc as ql,Lc as rl,Jm as sl,Dc as tl,Epe as ul,cz as vl,Ope as wl,_pe as xl,Rpe as yl,mk as zl,Ape as Al,Fpe as Bl,Lpe as Cl,Bpe as Dl,Dpe as El,Npe as Fl,eh as Gl,Mpe as Hl,xk as Il,Ik as Jl,gk as Kl,Hpe as Ll,th as Ml,wz as Nl,zpe as Ol,Wpe as Pl,pve as Ql,SE as Rl,Fo as Sl,il as Tl,c7 as Ul,J0 as Vl,xCe as Wl,ICe as Xl,gCe as Yl,bCe as Zl,yCe as _l,SCe as $l,wCe as am,tE as bm,CCe as cm,vCe as dm,kCe as em,_d as fm,XP as gm,ZP as hm,QP as im,Rd as jm,Xbe as km,Zbe as lm,Ad as mm,Wj as nm,lye as om,Zs as pm,fye as qm,n0 as rm,as as sm,MD as tm,Kre as um,qre as vm,mPe as wm,hPe as xm,xPe as ym,Cye as zm,Fd as Am,mte as Bm,Hz as Cm,Ame as Dm,Fme as Em,Nk as Fm,Lme as Gm,Bme as Hm,eP as Im,BIe as Jm,DIe as Km,NIe as Lm,MIe as Mm,yP as Nm,SP as Om,lge as Pm,ige as Qm,qU as Rm,cge as Sm,dge as Tm,fge as Um,uge as Vm,VU as Wm,pge as Xm,mge as Ym,hge as Zm,xge as _m,JU as $m,Ige as an,Ege as bn,Oge as cn,Ix as dn,gx as en,I0 as fn,mwe as gn,v0 as hn,ml as in,Gq as jn,Uq as kn,zke as ln,qke as mn,nf as nn,Ne as on,Sf as pn,pt as qn,I1 as rn,Tl as sn,g1 as tn,b1 as un,PEe as vn,EEe as wn,o_ as xn,dg as yn,t_ as zn,IL as An,ZDe as Bn,wL as Cn,EL as Dn,gu as En,Ree as Fn,Aee as Gn,pNe as Hn,lte as In,fte as Jn,voe as Kn,eB as Ln,koe as Mn,ii as Nn,v2e as On,k2e as Pn,YMe as Qn};