efficient-web-builder 2.0.0 → 2.1.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 (134) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/components/BlogPostSource.js +1 -1
  3. package/dist/components/Breadcrumb.js +1 -1
  4. package/dist/components/Btn.js +1 -1
  5. package/dist/components/CardShadowField.js +1 -1
  6. package/dist/components/CategoryBar.js +1 -1
  7. package/dist/components/ChartSection.js +1 -1
  8. package/dist/components/ChatSettingsPanel.js +1 -1
  9. package/dist/components/ClearColoursDialog.js +1 -1
  10. package/dist/components/ContactLocations.js +5 -5
  11. package/dist/components/CornersField.js +1 -1
  12. package/dist/components/DocBody.js +1 -1
  13. package/dist/components/DuplicateToPageMenu.js +1 -1
  14. package/dist/components/FeaturedCover.js +1 -1
  15. package/dist/components/FieldGlyph.js +1 -1
  16. package/dist/components/Footprint.js +1 -1
  17. package/dist/components/HeadingAudit.js +1 -1
  18. package/dist/components/HeroSection.js +1 -1
  19. package/dist/components/HoverEffectField.js +1 -1
  20. package/dist/components/ImageBlock.js +1 -1
  21. package/dist/components/ImageFocusRow.js +1 -1
  22. package/dist/components/LocationsGroupedField.js +1 -1
  23. package/dist/components/LongRead.js +1 -1
  24. package/dist/components/MediaUploadField.js +1 -1
  25. package/dist/components/MockupSection.js +1 -1
  26. package/dist/components/PagesPanel.js +1 -1
  27. package/dist/components/PartResetDot.js +1 -1
  28. package/dist/components/PartSettingsPanel.js +1 -1
  29. package/dist/components/PostCard.js +1 -1
  30. package/dist/components/ProcessSteps.js +1 -1
  31. package/dist/components/RMark.js +1 -1
  32. package/dist/components/Reel.js +1 -1
  33. package/dist/components/SectionEditor.js +1 -1
  34. package/dist/components/SectionHeader.js +1 -1
  35. package/dist/components/SectionThumbnail.js +1 -1
  36. package/dist/components/SlotChildRows.js +1 -1
  37. package/dist/components/SourceStatus.js +1 -1
  38. package/dist/components/Split.js +1 -1
  39. package/dist/components/StandaloneSectionEditor.js +1 -1
  40. package/dist/components/StylesPanel.js +1 -1
  41. package/dist/components/Testimonials.js +1 -1
  42. package/dist/components/TextStylesField.js +1 -1
  43. package/dist/components/ThemeCard.js +1 -1
  44. package/dist/components/ThemeColourField.js +1 -1
  45. package/dist/components/ThemeField.js +1 -1
  46. package/dist/components/TickerSettingsPanel.js +1 -1
  47. package/dist/components/Timeline.js +1 -1
  48. package/dist/components/TimelineTrack.js +1 -1
  49. package/dist/components/TitleWithButtons.js +1 -1
  50. package/dist/components/WebsiteScreenParts.js +1 -1
  51. package/dist/components/WebsiteSettingsPanel.js +1 -1
  52. package/dist/components/goldPhrases.js +1 -1
  53. package/dist/components/storefront-editor.css +25 -212
  54. package/dist/lib/content/contact.js +3 -3
  55. package/dist/lib/content/subscribe.js +1 -1
  56. package/dist/lib/puck/MarkupToolbar.js +1 -1
  57. package/dist/lib/puck/blocks/general/CategoryBar/fields.js +1 -1
  58. package/dist/lib/puck/blocks/general/Chart/fields.js +1 -1
  59. package/dist/lib/puck/blocks/general/FAQ/render.js +1 -1
  60. package/dist/lib/puck/blocks/general/FeaturedCover/render.js +1 -1
  61. package/dist/lib/puck/blocks/general/Footprint/fields.js +1 -1
  62. package/dist/lib/puck/blocks/general/IntroBleed/render.js +1 -1
  63. package/dist/lib/puck/blocks/general/LogoBlock/fields.js +1 -1
  64. package/dist/lib/puck/blocks/general/LongRead/render.js +1 -1
  65. package/dist/lib/puck/blocks/general/Masthead/render.js +1 -1
  66. package/dist/lib/puck/blocks/general/Mockup/fields.js +1 -1
  67. package/dist/lib/puck/blocks/general/OrderSummary/render.js +1 -1
  68. package/dist/lib/puck/blocks/general/ParagraphsA/render.js +1 -1
  69. package/dist/lib/puck/blocks/general/PostCard/render.js +1 -1
  70. package/dist/lib/puck/blocks/general/ProcessSteps/render.js +1 -1
  71. package/dist/lib/puck/blocks/general/Series/render.js +1 -1
  72. package/dist/lib/puck/blocks/general/Split/render.js +1 -1
  73. package/dist/lib/puck/blocks/general/Testimonials/fields.js +1 -1
  74. package/dist/lib/puck/blocks/general/Testimonials/render.js +1 -1
  75. package/dist/lib/puck/blocks/general/TimelineTrack/render.js +1 -1
  76. package/dist/lib/puck/blocks/placeholders.js +1 -1
  77. package/dist/lib/puck/controls.js +1 -1
  78. package/dist/lib/puck/field-groups.js +1 -1
  79. package/dist/lib/puck/footer-block-row-name.js +1 -1
  80. package/dist/lib/puck/geocode-resolve.js +1 -1
  81. package/dist/lib/puck/locations-tree.js +2 -2
  82. package/dist/lib/puck/neutralization-contracts.js +1 -1
  83. package/dist/lib/puck/part-rows.js +1 -1
  84. package/dist/lib/puck/section-catalog.js +1 -1
  85. package/dist/lib/puck/section-descriptions.js +1 -1
  86. package/dist/lib/sections/divider-style.js +1 -1
  87. package/dist/lib/sections/product-card-style.js +1 -1
  88. package/dist/lib/sections/ticker-style.js +1 -1
  89. package/dist/lib/source-rules/accent-token-name.js +2 -2
  90. package/dist/lib/source-rules/button-corners.js +1 -1
  91. package/dist/lib/source-rules/editor-chrome-note.js +2 -2
  92. package/dist/lib/source-rules/editor-context-menu.js +2 -2
  93. package/dist/lib/source-rules/editor-puck-drag-off.js +2 -2
  94. package/dist/lib/source-rules/efficient-easel-version.js +1 -1
  95. package/dist/lib/source-rules/every-button-follows-the-button-colour.js +4 -4
  96. package/dist/lib/source-rules/flat-theme-palette.js +2 -2
  97. package/dist/lib/source-rules/full-width-means-full.js +1 -1
  98. package/dist/lib/source-rules/heading-ceiling-sweep.js +3 -3
  99. package/dist/lib/source-rules/label-hints.js +4 -4
  100. package/dist/lib/source-rules/label-vocabulary.js +4 -4
  101. package/dist/lib/source-rules/mirrored-rows-agree.js +4 -4
  102. package/dist/lib/source-rules/no-comment-in-jsx.js +2 -2
  103. package/dist/lib/source-rules/no-glyph-rows.js +2 -2
  104. package/dist/lib/source-rules/one-colour-control.js +2 -2
  105. package/dist/lib/source-rules/one-dropdown.js +2 -2
  106. package/dist/lib/source-rules/one-editable-list.js +3 -3
  107. package/dist/lib/source-rules/one-editor-list.js +1 -1
  108. package/dist/lib/source-rules/one-right-click.js +2 -2
  109. package/dist/lib/source-rules/one-switch.js +1 -1
  110. package/dist/lib/source-rules/one-up-level-link.js +7 -7
  111. package/dist/lib/source-rules/panel-colour-tokens.js +7 -7
  112. package/dist/lib/source-rules/panel-no-divider-lines.js +5 -5
  113. package/dist/lib/source-rules/panel-one-arrow.js +1 -1
  114. package/dist/lib/source-rules/panel-one-hover.js +2 -2
  115. package/dist/lib/source-rules/panel-rows-use-the-shared-row.js +5 -5
  116. package/dist/lib/source-rules/part-slider-fills-row.js +8 -8
  117. package/dist/lib/source-rules/part-style-naming.js +1 -1
  118. package/dist/lib/source-rules/puck-document-surfaces.js +6 -6
  119. package/dist/lib/source-rules/reduced-motion.js +2 -2
  120. package/dist/lib/source-rules/route-content-width.js +2 -2
  121. package/dist/lib/source-rules/rule.js +1 -1
  122. package/dist/lib/source-rules/section-theme-preview.js +2 -2
  123. package/dist/lib/source-rules/site-square-by-default.js +1 -1
  124. package/dist/lib/source-rules/site-width.js +2 -2
  125. package/dist/lib/source-rules/size-token-paints.js +2 -2
  126. package/dist/lib/source-rules/social-icons-import.js +1 -1
  127. package/dist/lib/source-rules/source-status-is-shared.js +1 -1
  128. package/dist/lib/source-rules/style-face-matches-size.js +3 -3
  129. package/dist/lib/source-rules/support/part-slider-call-sites.js +4 -4
  130. package/dist/lib/source-rules/support/registry-source.js +1 -1
  131. package/dist/lib/source-rules/theme-mode-controls-gone.js +3 -3
  132. package/dist/lib/source-rules/upload-intake-guard.js +2 -2
  133. package/dist/lib/source-rules/word-styles.js +2 -2
  134. package/package.json +5 -5
@@ -1 +1 @@
1
- import{jsx as e,Fragment as v,jsxs as n}from"react/jsx-runtime";import{SiteLink as T}from"../lib/site-runtime.js";import{stripMarkup as C}from"../lib/markup.js";import F from"./Placeholder.js";import H from"./SectionEyebrow.js";import{renderGold as s,renderHeadline as N,splitParagraphs as L}from"./goldPhrases.js";function w({eyebrow:t,title:a,intro:i,center:r=!1}){return n(v,{children:[t&&e(H,{text:t,size:12}),a&&e("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5vw,76px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.94] tracking-[-0.03em] text-fg",children:N(a)}),i&&e("p",{className:["font-display text-[length:var(--size-body,14px)] leading-[1.6] text-fg-dim",r?"max-w-[520px]":"max-w-[360px]"].join(" "),children:s(i,!0)})]})}function z({cta:t,className:a=""}){return t?.text?n(T,{href:t.href,className:["group inline-flex items-center gap-3.5 border border-line px-5 py-4","font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-fg","transition-colors hover:border-accent hover:text-accent",a].join(" "),children:[s(t.text),e("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"\u2192"})]}):null}function y({src:t,caption:a,meta:i,aspectClass:r,editing:p,sizes:m="100vw",className:c=""}){return!t&&!p?null:n("figure",{className:["relative overflow-hidden border border-line bg-surface",r,c].join(" "),children:[e(F,{label:a||"Image",src:t,alt:C(a??""),sizes:m}),e("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0",style:{background:"linear-gradient(180deg, transparent 55%, rgba(10,10,10,0.75) 100%)"}}),(a||i)&&n("figcaption",{className:"absolute inset-x-0 bottom-0 z-[1] flex items-center justify-between gap-3 px-4 py-3 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] text-overlay-fg/85",children:[e("span",{children:a?s(a):""}),i&&e("span",{className:"text-accent",children:s(i)})]})]})}function d({entry:t}){const a=L(t.body??"");return n(v,{children:[t.title&&e("h3",{className:"mb-3.5 font-heading3 text-[length:var(--size-headingSmall,24px)] font-medium uppercase tracking-[-0.02em] text-fg max-[800px]:text-[length:var(--size-headingSmall,20px)]",children:N(t.title)}),a.length>0&&e("div",{className:"space-y-3.5 font-display text-[length:var(--size-body,17px)] leading-[1.6] max-[800px]:text-[length:var(--size-body,16px)]",children:a.map((i,r)=>e("p",{className:r===0?"text-fg":"text-fg-dim",children:s(i,!0)},r))})]})}const k={boxShadow:"0 0 0 4px var(--bg)"};function E({layout:t="split",eyebrow:a,title:i,intro:r,imageSrc:p,imageCaption:m,imageMeta:c,cta:g,entries:j,padTop:f,padBottom:h,editing:u}={}){const _=typeof f=="number"?f:120,S=typeof h=="number"?h:120,o=(j??[]).filter(l=>(l.date??"").trim()||(l.title??"").trim()||(l.body??"").trim());return e("section",{className:"relative z-[2] bg-bg",children:e("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",style:{paddingTop:_,paddingBottom:S},children:t==="split"?n("div",{className:"grid grid-cols-[1fr_1.4fr] gap-20 max-[1100px]:grid-cols-1 max-[1100px]:gap-12",children:[n("aside",{className:"sticky top-[120px] flex flex-col gap-6 self-start max-[1100px]:static",children:[e(w,{eyebrow:a,title:i,intro:r}),e(y,{src:p,caption:m,meta:c,aspectClass:"mt-1 aspect-[4/5]",sizes:"(max-width: 1100px) 100vw, 420px",editing:u}),e(z,{cta:g,className:"mt-2 self-start"})]}),e("ol",{className:"flex flex-col gap-12",children:o.map((l,x)=>n("li",{className:"grid grid-cols-[80px_1fr] items-start gap-6 max-[700px]:grid-cols-1 max-[700px]:gap-2",children:[e("span",{className:"pt-1.5 font-mono text-[length:var(--size-label,13px)] tracking-[0.24em] text-accent",children:l.date?s(l.date):""}),e("div",{className:"max-w-[640px]",children:e(d,{entry:l})})]},x))})]}):n("div",{children:[n("header",{className:"mx-auto flex max-w-[760px] flex-col items-center gap-6 text-center",children:[e(w,{eyebrow:a,title:i,intro:r,center:!0}),e(z,{cta:g})]}),e(y,{src:p,caption:m,meta:c,aspectClass:"mx-auto mt-12 aspect-[16/9] w-full max-w-[900px]",sizes:"(max-width: 900px) 100vw, 900px",editing:u}),t==="spine"?e("ol",{className:"relative mx-auto mt-16 max-w-[760px]",children:o.map((l,x)=>n("li",{className:"relative border-l border-line pb-12 pl-10 last:pb-0 max-[700px]:pl-8",children:[e("span",{className:"absolute left-[-5px] top-1.5 h-2.5 w-2.5 rounded-full bg-accent",style:k}),e("div",{className:"mb-2 font-mono text-[length:var(--size-label,13px)] tracking-[0.24em] text-accent",children:l.date?s(l.date):""}),e("div",{className:"max-w-[640px]",children:e(d,{entry:l})})]},x))}):n("ol",{className:"relative mx-auto mt-16 max-w-[1000px]",children:[e("span",{"aria-hidden":!0,className:"pointer-events-none absolute top-0 h-full w-px bg-line left-[7px] min-[801px]:left-1/2 min-[801px]:-translate-x-1/2"}),o.map((l,x)=>{const b=x%2===0;return n("li",{className:"relative mb-14 pl-8 last:mb-0 min-[801px]:grid min-[801px]:grid-cols-2 min-[801px]:gap-16 min-[801px]:pl-0",children:[e("span",{className:"absolute top-1.5 h-2.5 w-2.5 rounded-full bg-accent left-[2px] min-[801px]:left-1/2 min-[801px]:-translate-x-1/2",style:k}),n("div",{className:b?"min-[801px]:col-start-1 min-[801px]:pr-8 min-[801px]:text-right":"min-[801px]:col-start-2 min-[801px]:pl-8",children:[e("div",{className:"mb-2 font-mono text-[length:var(--size-label,13px)] tracking-[0.24em] text-accent",children:l.date?s(l.date):""}),e("div",{className:["max-w-[520px] max-[800px]:max-w-none",b?"min-[801px]:ml-auto":""].join(" "),children:e(d,{entry:l})})]})]},x)})]})]})})})}export{E as default};
1
+ import{jsx as e,Fragment as v,jsxs as n}from"react/jsx-runtime";import{SiteLink as T}from"../lib/site-runtime.js";import{stripMarkup as C}from"../lib/markup.js";import F from"./Placeholder.js";import H from"./SectionEyebrow.js";import{renderGold as s,renderHeadline as N,splitParagraphs as L}from"./goldPhrases.js";function w({eyebrow:t,title:a,intro:i,center:r=!1}){return n(v,{children:[t&&e(H,{text:t,size:12}),a&&e("h2",{className:"font-heading2 text-[length:min(var(--size-headingMedium,clamp(40px,5vw,76px)),var(--sf-heading-max,9999px))] font-medium uppercase leading-[0.94] tracking-[-0.03em] text-fg",children:N(a)}),i&&e("p",{className:["font-display text-[length:var(--size-body,14px)] leading-[1.6] text-fg-dim",r?"max-w-[520px]":"max-w-[360px]"].join(" "),children:s(i,!0)})]})}function z({cta:t,className:a=""}){return t?.text?n(T,{href:t.href,className:["group inline-flex items-center gap-3.5 border border-line px-5 py-4","font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-fg","transition-colors hover:border-accent hover:text-accent",a].join(" "),children:[s(t.text),e("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"→"})]}):null}function y({src:t,caption:a,meta:i,aspectClass:r,editing:p,sizes:m="100vw",className:c=""}){return!t&&!p?null:n("figure",{className:["relative overflow-hidden border border-line bg-surface",r,c].join(" "),children:[e(F,{label:a||"Image",src:t,alt:C(a??""),sizes:m}),e("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0",style:{background:"linear-gradient(180deg, transparent 55%, rgba(10,10,10,0.75) 100%)"}}),(a||i)&&n("figcaption",{className:"absolute inset-x-0 bottom-0 z-[1] flex items-center justify-between gap-3 px-4 py-3 font-mono text-[length:var(--size-label,11px)] uppercase tracking-[0.24em] text-overlay-fg/85",children:[e("span",{children:a?s(a):""}),i&&e("span",{className:"text-accent",children:s(i)})]})]})}function d({entry:t}){const a=L(t.body??"");return n(v,{children:[t.title&&e("h3",{className:"mb-3.5 font-heading3 text-[length:var(--size-headingSmall,24px)] font-medium uppercase tracking-[-0.02em] text-fg max-[800px]:text-[length:var(--size-headingSmall,20px)]",children:N(t.title)}),a.length>0&&e("div",{className:"space-y-3.5 font-display text-[length:var(--size-body,17px)] leading-[1.6] max-[800px]:text-[length:var(--size-body,16px)]",children:a.map((i,r)=>e("p",{className:r===0?"text-fg":"text-fg-dim",children:s(i,!0)},r))})]})}const k={boxShadow:"0 0 0 4px var(--bg)"};function E({layout:t="split",eyebrow:a,title:i,intro:r,imageSrc:p,imageCaption:m,imageMeta:c,cta:g,entries:j,padTop:f,padBottom:h,editing:u}={}){const _=typeof f=="number"?f:120,S=typeof h=="number"?h:120,o=(j??[]).filter(l=>(l.date??"").trim()||(l.title??"").trim()||(l.body??"").trim());return e("section",{className:"relative z-[2] bg-bg",children:e("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",style:{paddingTop:_,paddingBottom:S},children:t==="split"?n("div",{className:"grid grid-cols-[1fr_1.4fr] gap-20 max-[1100px]:grid-cols-1 max-[1100px]:gap-12",children:[n("aside",{className:"sticky top-[120px] flex flex-col gap-6 self-start max-[1100px]:static",children:[e(w,{eyebrow:a,title:i,intro:r}),e(y,{src:p,caption:m,meta:c,aspectClass:"mt-1 aspect-[4/5]",sizes:"(max-width: 1100px) 100vw, 420px",editing:u}),e(z,{cta:g,className:"mt-2 self-start"})]}),e("ol",{className:"flex flex-col gap-12",children:o.map((l,x)=>n("li",{className:"grid grid-cols-[80px_1fr] items-start gap-6 max-[700px]:grid-cols-1 max-[700px]:gap-2",children:[e("span",{className:"pt-1.5 font-mono text-[length:var(--size-label,13px)] tracking-[0.24em] text-accent",children:l.date?s(l.date):""}),e("div",{className:"max-w-[640px]",children:e(d,{entry:l})})]},x))})]}):n("div",{children:[n("header",{className:"mx-auto flex max-w-[760px] flex-col items-center gap-6 text-center",children:[e(w,{eyebrow:a,title:i,intro:r,center:!0}),e(z,{cta:g})]}),e(y,{src:p,caption:m,meta:c,aspectClass:"mx-auto mt-12 aspect-[16/9] w-full max-w-[900px]",sizes:"(max-width: 900px) 100vw, 900px",editing:u}),t==="spine"?e("ol",{className:"relative mx-auto mt-16 max-w-[760px]",children:o.map((l,x)=>n("li",{className:"relative border-l border-line pb-12 pl-10 last:pb-0 max-[700px]:pl-8",children:[e("span",{className:"absolute left-[-5px] top-1.5 h-2.5 w-2.5 rounded-full bg-accent",style:k}),e("div",{className:"mb-2 font-mono text-[length:var(--size-label,13px)] tracking-[0.24em] text-accent",children:l.date?s(l.date):""}),e("div",{className:"max-w-[640px]",children:e(d,{entry:l})})]},x))}):n("ol",{className:"relative mx-auto mt-16 max-w-[1000px]",children:[e("span",{"aria-hidden":!0,className:"pointer-events-none absolute top-0 h-full w-px bg-line left-[7px] min-[801px]:left-1/2 min-[801px]:-translate-x-1/2"}),o.map((l,x)=>{const b=x%2===0;return n("li",{className:"relative mb-14 pl-8 last:mb-0 min-[801px]:grid min-[801px]:grid-cols-2 min-[801px]:gap-16 min-[801px]:pl-0",children:[e("span",{className:"absolute top-1.5 h-2.5 w-2.5 rounded-full bg-accent left-[2px] min-[801px]:left-1/2 min-[801px]:-translate-x-1/2",style:k}),n("div",{className:b?"min-[801px]:col-start-1 min-[801px]:pr-8 min-[801px]:text-right":"min-[801px]:col-start-2 min-[801px]:pl-8",children:[e("div",{className:"mb-2 font-mono text-[length:var(--size-label,13px)] tracking-[0.24em] text-accent",children:l.date?s(l.date):""}),e("div",{className:["max-w-[520px] max-[800px]:max-w-none",b?"min-[801px]:ml-auto":""].join(" "),children:e(d,{entry:l})})]})]},x)})]})]})})})}export{E as default};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as a}from"react/jsx-runtime";import{SiteLink as w}from"../lib/site-runtime.js";import z from"./EditorialSectionHead.js";import c from"./PartStyledText.js";import{withRMark as l}from"./RMark.js";import{renderGold as f,renderHeadline as S}from"./goldPhrases.js";function B({eyebrow:g,title:o,intro:p,entries:u,cta:n,padTop:x,padBottom:s,background:b,editing:h,omitHead:d=!1}={}){const v=typeof x=="number"?x:120,N=typeof s=="number"?s:120,m=b??"var(--section-bg)",y=m!=="transparent",r=(u??[]).filter(e=>(e.date??"").trim()||(e.title??"").trim()||(e.blurb??"").trim());if(r.length===0&&!h)return null;const j=r.filter(e=>!e.future).length,k=r.length?j/r.length*100:0;return t("section",{className:"relative z-[2]",children:a("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",style:{paddingTop:v,paddingBottom:N,...y?{backgroundColor:m}:{}},children:[d?null:t(z,{num:g,title:o?S(o):void 0,desc:p?f(p,!0):void 0,spaceBelow:"",className:"text-fg"}),a("div",{className:d?"relative mt-0 grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-0 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0":"relative mt-[60px] grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-9 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0",style:{"--cols":r.length},children:[t("div",{className:"pointer-events-none absolute inset-x-0 top-0 h-px bg-line max-[1100px]:hidden",children:t("div",{className:"absolute -top-px left-0 h-[3px] bg-gradient-to-r from-accent to-transparent",style:{width:`${k}%`}})}),r.map((e,i)=>a("div",{className:["relative flex min-h-[280px] flex-col gap-3.5 px-3.5","border-l",e.future?"border-line":"max-[1100px]:border-accent border-line",i===0?"min-[1101px]:border-l-0":"","max-[1100px]:min-h-0 max-[1100px]:border-t-0 max-[1100px]:py-6 max-[1100px]:pl-7 max-[1100px]:ml-1.5"].join(" "),children:[t("span",{className:["pointer-events-none absolute h-2.5 w-2.5 rounded-full border-2 border-bg",e.future?"border-line bg-surface-2":"bg-accent",i===0?"-top-[66px] left-[-1px]":"-top-[66px] left-[-5px]","max-[1100px]:left-[-5px] max-[1100px]:top-7"].join(" ")}),t("span",{className:["font-mono text-[length:var(--size-label,13px)] tracking-[0.22em]",e.future?"text-fg-dim":"text-accent"].join(" "),children:e.date?t(c,{value:e.date,children:l(e.date)}):""}),e.title&&t("h3",{className:"whitespace-pre-line font-heading3 text-[length:var(--size-headingSmall,20px)] font-medium uppercase leading-[1.1] tracking-[-0.02em] text-fg",children:t(c,{value:e.title,children:l(e.title)})}),e.blurb&&t("p",{className:"mt-auto font-display text-[length:var(--size-body,13px)] leading-[1.55] text-fg-dim",children:f(e.blurb,!0)})]},i))]}),n?.text&&t("div",{className:"mt-12 flex justify-end border-t border-line pt-8",children:a(w,{href:n.href,className:"group inline-flex items-center gap-3.5 border border-line px-6 py-4 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[l(n.text),t("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"\u2192"})]})})]})})}export{B as default};
1
+ import{jsx as t,jsxs as a}from"react/jsx-runtime";import{SiteLink as w}from"../lib/site-runtime.js";import z from"./EditorialSectionHead.js";import c from"./PartStyledText.js";import{withRMark as l}from"./RMark.js";import{renderGold as f,renderHeadline as S}from"./goldPhrases.js";function B({eyebrow:g,title:o,intro:p,entries:u,cta:n,padTop:x,padBottom:s,background:b,editing:h,omitHead:d=!1}={}){const v=typeof x=="number"?x:120,N=typeof s=="number"?s:120,m=b??"var(--section-bg)",y=m!=="transparent",r=(u??[]).filter(e=>(e.date??"").trim()||(e.title??"").trim()||(e.blurb??"").trim());if(r.length===0&&!h)return null;const j=r.filter(e=>!e.future).length,k=r.length?j/r.length*100:0;return t("section",{className:"relative z-[2]",children:a("div",{className:"mx-auto max-w-[var(--sf-site-width,1600px)] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))] max-[800px]:px-[min(20px,var(--sf-site-gutter,40px))]",style:{paddingTop:v,paddingBottom:N,...y?{backgroundColor:m}:{}},children:[d?null:t(z,{num:g,title:o?S(o):void 0,desc:p?f(p,!0):void 0,spaceBelow:"",className:"text-fg"}),a("div",{className:d?"relative mt-0 grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-0 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0":"relative mt-[60px] grid grid-cols-[repeat(var(--cols),minmax(0,1fr))] gap-0 border-t border-line pt-[60px] max-[1100px]:mt-9 max-[1100px]:grid-cols-1 max-[1100px]:gap-0 max-[1100px]:border-t-0 max-[1100px]:pt-0",style:{"--cols":r.length},children:[t("div",{className:"pointer-events-none absolute inset-x-0 top-0 h-px bg-line max-[1100px]:hidden",children:t("div",{className:"absolute -top-px left-0 h-[3px] bg-gradient-to-r from-accent to-transparent",style:{width:`${k}%`}})}),r.map((e,i)=>a("div",{className:["relative flex min-h-[280px] flex-col gap-3.5 px-3.5","border-l",e.future?"border-line":"max-[1100px]:border-accent border-line",i===0?"min-[1101px]:border-l-0":"","max-[1100px]:min-h-0 max-[1100px]:border-t-0 max-[1100px]:py-6 max-[1100px]:pl-7 max-[1100px]:ml-1.5"].join(" "),children:[t("span",{className:["pointer-events-none absolute h-2.5 w-2.5 rounded-full border-2 border-bg",e.future?"border-line bg-surface-2":"bg-accent",i===0?"-top-[66px] left-[-1px]":"-top-[66px] left-[-5px]","max-[1100px]:left-[-5px] max-[1100px]:top-7"].join(" ")}),t("span",{className:["font-mono text-[length:var(--size-label,13px)] tracking-[0.22em]",e.future?"text-fg-dim":"text-accent"].join(" "),children:e.date?t(c,{value:e.date,children:l(e.date)}):""}),e.title&&t("h3",{className:"whitespace-pre-line font-heading3 text-[length:var(--size-headingSmall,20px)] font-medium uppercase leading-[1.1] tracking-[-0.02em] text-fg",children:t(c,{value:e.title,children:l(e.title)})}),e.blurb&&t("p",{className:"mt-auto font-display text-[length:var(--size-body,13px)] leading-[1.55] text-fg-dim",children:f(e.blurb,!0)})]},i))]}),n?.text&&t("div",{className:"mt-12 flex justify-end border-t border-line pt-8",children:a(w,{href:n.href,className:"group inline-flex items-center gap-3.5 border border-line px-6 py-4 font-mono text-[length:var(--size-label,13px)] uppercase tracking-[0.3em] text-fg transition-colors hover:border-accent hover:text-accent",children:[l(n.text),t("span",{"aria-hidden":!0,className:"text-accent transition-transform group-hover:translate-x-[3px]",children:"→"})]})})]})})}export{B as default};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as l}from"react/jsx-runtime";import{SiteLink as b}from"../lib/site-runtime.js";import{renderHeadline as v}from"./goldPhrases.js";function w({title:s,buttons:m,padTop:x,padBottom:o,buttonsAlign:a,editing:p=!1}={}){const d=typeof x=="number"?x:140,c=typeof o=="number"?o:140,r=(m??[]).filter(e=>p||(e.label??"").trim()),i=!!(s??"").trim(),n=!i&&(a==="center"||a==="left")?a:null;return!p&&!i&&r.length===0?null:t("section",{className:"relative z-[2] bg-bg",children:l("div",{className:n==="center"?"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-1 items-center justify-items-center gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]":n==="left"?"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-1 items-center justify-items-start gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]":"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[1fr_auto] items-center gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:grid-cols-1 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",style:{paddingTop:d,paddingBottom:c},children:[n===null&&!i&&r.length>0&&t("div",{"aria-hidden":!0,className:"max-[1100px]:hidden"}),i&&t("h2",{className:"max-w-[1000px] font-display text-[length:min(var(--size-headingLarge,clamp(48px,7vw,108px)),var(--sf-heading-max,9999px))] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-[0.94] tracking-[-0.035em] text-fg",children:v(s??"")}),r.length>0&&t("div",{className:"flex min-w-[280px] flex-col gap-3.5 max-[1100px]:min-w-0",children:r.map((e,f)=>{const g=(e.label??"").trim()||"Button label",h=e.href||"#",u=e.variant==="primary";return l(b,{href:h,className:["flex items-center justify-between gap-6 px-7 py-5","font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.3em] transition-colors",u?"border border-btn bg-btn text-btn-ink hover:border-fg hover:bg-fg":"border border-line text-fg hover:border-accent hover:text-accent"].join(" "),children:[g," ",t("span",{"aria-hidden":!0,children:"\u2192"})]},f)})})]})})}export{w as default};
1
+ import{jsx as t,jsxs as l}from"react/jsx-runtime";import{SiteLink as b}from"../lib/site-runtime.js";import{renderHeadline as v}from"./goldPhrases.js";function w({title:s,buttons:m,padTop:x,padBottom:o,buttonsAlign:a,editing:p=!1}={}){const d=typeof x=="number"?x:140,c=typeof o=="number"?o:140,r=(m??[]).filter(e=>p||(e.label??"").trim()),i=!!(s??"").trim(),n=!i&&(a==="center"||a==="left")?a:null;return!p&&!i&&r.length===0?null:t("section",{className:"relative z-[2] bg-bg",children:l("div",{className:n==="center"?"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-1 items-center justify-items-center gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]":n==="left"?"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-1 items-center justify-items-start gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]":"mx-auto grid max-w-[var(--sf-site-width,1600px)] grid-cols-[1fr_auto] items-center gap-[60px] border-b border-line px-[var(--sf-site-gutter,40px)] max-[1100px]:grid-cols-1 max-[1100px]:px-[min(24px,var(--sf-site-gutter,40px))]",style:{paddingTop:d,paddingBottom:c},children:[n===null&&!i&&r.length>0&&t("div",{"aria-hidden":!0,className:"max-[1100px]:hidden"}),i&&t("h2",{className:"max-w-[1000px] font-display text-[length:min(var(--size-headingLarge,clamp(48px,7vw,108px)),var(--sf-heading-max,9999px))] [font-weight:var(--sf-heading-weight,500)] [text-transform:var(--sf-heading-case,uppercase)] [&_em]:[font-weight:var(--sf-heading-weight-strong,inherit)] leading-[0.94] tracking-[-0.035em] text-fg",children:v(s??"")}),r.length>0&&t("div",{className:"flex min-w-[280px] flex-col gap-3.5 max-[1100px]:min-w-0",children:r.map((e,f)=>{const g=(e.label??"").trim()||"Button label",h=e.href||"#",u=e.variant==="primary";return l(b,{href:h,className:["flex items-center justify-between gap-6 px-7 py-5","font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.3em] transition-colors",u?"border border-btn bg-btn text-btn-ink hover:border-fg hover:bg-fg":"border border-line text-fg hover:border-accent hover:text-accent"].join(" "),children:[g," ",t("span",{"aria-hidden":!0,children:"→"})]},f)})})]})})}export{w as default};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as w}from"react/jsx-runtime";import{useCallback as k,useEffect as f,useState as M}from"react";import{ExternalIcon as Y}from"efficient-easel/icons";import{SettingsSwitch as F}from"efficient-easel/panel";import{PagesIcon as G,StylesIcon as j}from"efficient-easel/rail";import{TreeRow as z}from"efficient-easel/tree";import K from"./HeadingAudit.js";import{LocationsTreeContext as U}from"./LocationsTreeContext.js";import Z from"./PagesPanel.js";import{usePreviewChat as q}from"./PreviewChatContext.js";import{PREVIEW_DEVICES as X}from"./preview-devices.js";import{PreviewDeviceContext as J}from"./PreviewDeviceContext.js";import{usePreviewHeader as Q}from"./PreviewHeaderContext.js";import{usePreviewSocial as $}from"./PreviewSocialContext.js";import{usePreviewSurface as ee}from"./PreviewSurfaceContext.js";import{TICKER_PART_LABEL as te,usePreviewTicker as oe}from"./PreviewTickerContext.js";import re,{CHAT_MODE as ie,HEADER_MODE as O,SOCIAL_MODE as se,WEBSITE_MODE as y}from"./SectionEditor.js";import g from"./SectionIcon.js";import ne from"./SectionThumbnail.js";import{useStorefrontDocument as I}from"./StorefrontDocumentContext.js";import ae from"./StylesPanel.js";import ce from"./TemplateGlyph.js";import{useFooterFocus as le}from"./useFooterFocus.js";import{LOCATIONS_TYPE as de,useLocationsTree as pe}from"./useLocationsTree.js";import{usePinnedChromeSeed as me}from"./usePinnedChromeSeed.js";import{usePreviewHref as fe}from"./usePreviewHref.js";import{SITE_STYLES_TABS as ue,SITE_STYLES_TEXT_TAB as Se,useWebsiteName as Ee}from"./WebsiteSettingsPanel.js";import{HERO_GROUP_TYPE as Te,duplicateBlocked as he,heroGroupNestDepth as we}from"../lib/hero-group-placement.js";import{stripMarkup as Pe}from"../lib/markup.js";import{categoryShortLabel as be,PINNED_SECTION_TYPE as ve}from"../lib/puck/add-palette.js";import{canAddTo as ke}from"../lib/puck/add-target.js";import{blockIsOffered as ge}from"../lib/puck/block-offer.js";import{sectionIdOfBoxZone as Ie,setBookingPreview as Ce}from"../lib/puck/booking-preview.js";import{footerBlockRowName as _e}from"../lib/puck/footer-block-row-name.js";import{FOOTER_TYPE as Le,HEADER_TYPE as A}from"../lib/puck/footer-blocks.js";import{leftViewForSelection as Oe,readLeftView as ye,resolveLeftView as Ae,writeLeftView as Be}from"../lib/puck/left-view.js";import{isLockedBlock as Ne}from"../lib/puck/locked-blocks.js";import{scrollPreviewToSection as Re,scrollPreviewToTop as B}from"../lib/puck/preview-dom.js";import{SiteCanvas as He}from"../lib/puck/overrides.js";import{labelAtLevel as De}from"../lib/puck/section-catalog.js";import{SECTION_DESCRIPTIONS as Ve}from"../lib/puck/section-descriptions.js";import{isSectionGroupType as xe,sectionGroupZone as We,SITE_FOOTER_TYPE as Me,SITE_HEADER_TYPE as Ye}from"../lib/puck/section-groups.js";import{resolveSaveAsTemplateAction as Fe,SAVE_AS_TEMPLATE_EVENT as Ge}from"../lib/save-as-template-action.js";import{newSectionNode as je}from"../lib/sections/new-section-node.js";import{useHostProducts as ze}from"../lib/use-host-products.js";function N({mode:e,open:o}){const{setSelectedHeroId:r,setSelectHandler:c}=oe(),l=e,s=l.kind==="ticker"?l.heroId:null,n=k(i=>{if(!i)return;o({kind:"ticker",heroId:i}),Re(i)},[o]);return f(()=>{r(s)},[s,r]),f(()=>{c(n)},[c,n]),{partRows:(i,{rowClick:m})=>{const a=String(i.props.id);return i.type==="Hero"&&t(z,{icon:t(g,{type:"ticker",size:13}),name:te,onSelect:()=>n(a),selected:s===a,rowProps:{onClick:m(()=>n(a))}})}}}function Ke(){const{adapter:e,capabilities:o,currentSlug:r,siteId:c,hasUnsavedEdits:l,bridgeCapabilities:s,notifyParent:n,token:i}=I(),{hasPreviewLink:m}=o,a=Fe({hasTrustedConsole:!!i,canCreatePlatformTemplate:s.canCreatePlatformTemplate,capabilities:o,siteId:c,hasUnsavedEdits:l}),T=k(()=>{!c||!r||n(Ge,{siteId:c,slug:r})},[n,c,r]),u=fe({pageSlug:r,siteId:c,token:i}),S=e.previewHref?.(r)??u;return{barLead:()=>a.visible&&w("button",{type:"button",className:"es-btn-ghost",disabled:!a.enabled,title:a.enabled?"Save this website as a platform template":a.disabledReason,onClick:T,children:["Save as Template",t(ce,{})]}),barTrail:()=>m&&r&&w("a",{className:"es-btn-ghost",href:S,target:"_blank",rel:"noopener noreferrer",title:"Preview the live site (opens in a new tab)","aria-label":"Preview the live site in a new tab",children:["Preview",t(Y,{size:15})]})}}function Ue(){return w("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round",children:[t("path",{d:"M12 3a9 9 0 0 0 0 18 2.3 2.3 0 0 0 2.3-2.3c0-.55-.22-1.05-.57-1.42-.34-.37-.56-.87-.56-1.43A2.35 2.35 0 0 1 15.6 13.5H18a3 3 0 0 0 3-3c0-4.14-4-7.5-9-7.5z"}),t("circle",{cx:"7.7",cy:"11.3",r:"1.05",fill:"currentColor",stroke:"none"}),t("circle",{cx:"12",cy:"8",r:"1.05",fill:"currentColor",stroke:"none"}),t("circle",{cx:"16",cy:"11",r:"1.05",fill:"currentColor",stroke:"none"})]})}function Ze(e,o){const{capabilities:r,templateId:c,siteId:l,tokenRef:s,navigate:n}=I(),{hasSiteTheme:i,explainsSiteSettings:m}=r,a=d=>o.setView(d),[T,u]=M(ue[0].id),{surface:S,setSurface:P}=ee(),b=()=>{if(i){a("styles"),o.reveal(),B();return}e.show(y),e.reveal(),B()},v={id:"pages",label:"Pages",icon:t(G,{}),panel:({onHide:d})=>t(Z,{activeSurface:S,onPreviewSurface:P,onNavigate:p=>{P(null),n(c?{kind:"template",id:c,pageSlug:p}:{kind:"page",slug:p,siteId:l??void 0})},onClose:d})},E=[];return!i&&m&&E.push({id:"appearance",label:"Appearance",icon:t(Ue,{}),active:e.kind==="website",onSelect:b}),i&&E.push({id:"styles",label:"Site styles",icon:t(j,{}),panel:({onHide:d,notify:p})=>t(ae,{tokenRef:s,siteId:l??void 0,onClose:d,onNotify:p,tab:T,onTabChange:u})}),{railLead:[v],railTrail:E,resolveLeftView:(d,p)=>Ae(d,i,p),openSettings:b,openStyles:()=>{u(Se),a("styles")}}}function qe(e,o,r,c){const{kind:l,open:s}=e,{selected:n,zoneOf:i}=o,m=le(o,r);f(()=>{Ce(n?.type==="BookingBox"&&n.props.region==="confirm"?Ie(i(String(n.props.id))):null)},[n?.props.id]);const a=pe(e,o),{capabilities:{hasSiteSettings:T}}=I(),{setSelected:u,setSelectHandler:S}=Q(),{chat:P,setChat:b,setSelected:v,setSelectHandler:E}=q(),d=l==="header";f(()=>{u(d)},[d,u]),f(()=>{S(()=>s(O))},[S,s]);const p=k(()=>s(ie),[s]),C=l==="chat";f(()=>{v(C)},[C,v]),f(()=>{E(p)},[E,p]);const{setOpenHandler:_}=$(),L=k(()=>s(se),[s]);f(()=>{_(L)},[_,L]);const H=N(e),D=Ke(),V=Ze(e,c),x=r.device;return{...m,...H,...D,...V,treeFoot:()=>t("div",{className:"sf-tree-tool",children:t(K,{})}),hasOwnRows:h=>h.type===de,ownRows:a.renderLocationTree,sectionPressed:a.sectionPressed,wrap:h=>t(U.Provider,{value:!0,children:t(J.Provider,{value:x,children:h})}),addPanelRow:h=>T?w("div",{className:"sf-addside-sitewide",children:[t("span",{className:"sf-addside-sitewide-glyph","aria-hidden":"true",children:t(g,{type:"chat",size:16})}),w("button",{type:"button",className:"sf-addside-sitewide-name",onClick:()=>{h(),p()},children:["Live chat",t("span",{className:"sf-addside-sitewide-desc",children:"A chat bubble on every page"})]}),t(F,{checked:P.enabled,onChange:W=>b({enabled:W}),ariaLabel:"Show the chat bubble on the whole site"})]}):void 0}}const Xe={isLockedBlock:Ne,duplicateBlocked:he,nestDepth:(e,o,r)=>o===Te?we(e,r):0,newSectionNode:je,canAddTo:ke,blockIsOffered:ge},Je={labelAtLevel:De,descriptions:Ve,categoryLabel:be,firstSection:ve,blockRowName:_e,plainText:Pe,Icon:g,Thumbnail:ne,useProducts:ze},Qe={desktop:2e3,tablet:800,mobile:390},R="desktop",$e={options:X,initial:R,fluid:R,widths:Qe},et={read:ye,write:e=>Be(e),forSelection:(e,o)=>Oe(e,o)},tt={first:A,last:Le,firstGroup:Ye,lastGroup:Me,isSectionGroup:xe,sectionGroupZone:We,panelOf:e=>e===A?O:null};function ot(e){return{...N(e),openSettings:()=>e.show(y)}}const Zt={useOwnerName:Ee,useBridges:qe,useStandaloneBridges:ot,useDocumentPass:me,blockRules:Xe,blockLook:Je,devices:$e,leftView:et,pinned:tt,Canvas:He,Inspector:re};export{Zt as WEBSITE_SCREEN};
1
+ "use client";import{jsx as t,jsxs as w}from"react/jsx-runtime";import{useCallback as k,useEffect as f,useState as M}from"react";import{ExternalIcon as Y}from"efficient-easel/icons";import{Tooltip as F}from"efficient-shell/ui";import{SettingsSwitch as G}from"efficient-easel/panel";import{PagesIcon as j,StylesIcon as z}from"efficient-easel/rail";import{TreeRow as K}from"efficient-easel/tree";import U from"./HeadingAudit.js";import{LocationsTreeContext as Z}from"./LocationsTreeContext.js";import q from"./PagesPanel.js";import{usePreviewChat as X}from"./PreviewChatContext.js";import{PREVIEW_DEVICES as J}from"./preview-devices.js";import{PreviewDeviceContext as Q}from"./PreviewDeviceContext.js";import{usePreviewHeader as $}from"./PreviewHeaderContext.js";import{usePreviewSocial as ee}from"./PreviewSocialContext.js";import{usePreviewSurface as te}from"./PreviewSurfaceContext.js";import{TICKER_PART_LABEL as oe,usePreviewTicker as re}from"./PreviewTickerContext.js";import ie,{CHAT_MODE as se,HEADER_MODE as O,SOCIAL_MODE as ne,WEBSITE_MODE as y}from"./SectionEditor.js";import g from"./SectionIcon.js";import ae from"./SectionThumbnail.js";import{useStorefrontDocument as I}from"./StorefrontDocumentContext.js";import ce from"./StylesPanel.js";import le from"./TemplateGlyph.js";import{useFooterFocus as de}from"./useFooterFocus.js";import{LOCATIONS_TYPE as pe,useLocationsTree as me}from"./useLocationsTree.js";import{usePinnedChromeSeed as fe}from"./usePinnedChromeSeed.js";import{usePreviewHref as ue}from"./usePreviewHref.js";import{SITE_STYLES_TABS as Se,SITE_STYLES_TEXT_TAB as Ee,useWebsiteName as Te}from"./WebsiteSettingsPanel.js";import{HERO_GROUP_TYPE as he,duplicateBlocked as we,heroGroupNestDepth as Pe}from"../lib/hero-group-placement.js";import{stripMarkup as be}from"../lib/markup.js";import{categoryShortLabel as ve,PINNED_SECTION_TYPE as ke}from"../lib/puck/add-palette.js";import{canAddTo as ge}from"../lib/puck/add-target.js";import{blockIsOffered as Ie}from"../lib/puck/block-offer.js";import{sectionIdOfBoxZone as Ce,setBookingPreview as _e}from"../lib/puck/booking-preview.js";import{footerBlockRowName as Le}from"../lib/puck/footer-block-row-name.js";import{FOOTER_TYPE as Oe,HEADER_TYPE as A}from"../lib/puck/footer-blocks.js";import{leftViewForSelection as ye,readLeftView as Ae,resolveLeftView as Be,writeLeftView as Ne}from"../lib/puck/left-view.js";import{isLockedBlock as Re}from"../lib/puck/locked-blocks.js";import{scrollPreviewToSection as He,scrollPreviewToTop as B}from"../lib/puck/preview-dom.js";import{SiteCanvas as De}from"../lib/puck/overrides.js";import{labelAtLevel as Ve}from"../lib/puck/section-catalog.js";import{SECTION_DESCRIPTIONS as xe}from"../lib/puck/section-descriptions.js";import{isSectionGroupType as We,sectionGroupZone as Me,SITE_FOOTER_TYPE as Ye,SITE_HEADER_TYPE as Fe}from"../lib/puck/section-groups.js";import{resolveSaveAsTemplateAction as Ge,SAVE_AS_TEMPLATE_EVENT as je}from"../lib/save-as-template-action.js";import{newSectionNode as ze}from"../lib/sections/new-section-node.js";import{useHostProducts as Ke}from"../lib/use-host-products.js";function N({mode:e,open:o}){const{setSelectedHeroId:r,setSelectHandler:c}=re(),l=e,s=l.kind==="ticker"?l.heroId:null,n=k(i=>{if(!i)return;o({kind:"ticker",heroId:i}),He(i)},[o]);return f(()=>{r(s)},[s,r]),f(()=>{c(n)},[c,n]),{partRows:(i,{rowClick:m})=>{const a=String(i.props.id);return i.type==="Hero"&&t(K,{icon:t(g,{type:"ticker",size:13}),name:oe,onSelect:()=>n(a),selected:s===a,rowProps:{onClick:m(()=>n(a))}})}}}function Ue(){const{adapter:e,capabilities:o,currentSlug:r,siteId:c,hasUnsavedEdits:l,bridgeCapabilities:s,notifyParent:n,token:i}=I(),{hasPreviewLink:m}=o,a=Ge({hasTrustedConsole:!!i,canCreatePlatformTemplate:s.canCreatePlatformTemplate,capabilities:o,siteId:c,hasUnsavedEdits:l}),T=k(()=>{!c||!r||n(je,{siteId:c,slug:r})},[n,c,r]),u=ue({pageSlug:r,siteId:c,token:i}),S=e.previewHref?.(r)??u;return{barLead:()=>a.visible&&w("button",{type:"button",className:"es-btn-ghost",disabled:!a.enabled,title:a.enabled?"Save this website as a platform template":a.disabledReason,onClick:T,children:["Save as Template",t(le,{})]}),barTrail:()=>m&&r&&t(F,{content:"Preview the live site (opens in a new tab)",children:w("a",{className:"es-btn-ghost",href:S,target:"_blank",rel:"noopener noreferrer","aria-label":"Preview the live site in a new tab",children:["Preview",t(Y,{size:15})]})})}}function Ze(){return w("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round",children:[t("path",{d:"M12 3a9 9 0 0 0 0 18 2.3 2.3 0 0 0 2.3-2.3c0-.55-.22-1.05-.57-1.42-.34-.37-.56-.87-.56-1.43A2.35 2.35 0 0 1 15.6 13.5H18a3 3 0 0 0 3-3c0-4.14-4-7.5-9-7.5z"}),t("circle",{cx:"7.7",cy:"11.3",r:"1.05",fill:"currentColor",stroke:"none"}),t("circle",{cx:"12",cy:"8",r:"1.05",fill:"currentColor",stroke:"none"}),t("circle",{cx:"16",cy:"11",r:"1.05",fill:"currentColor",stroke:"none"})]})}function qe(e,o){const{capabilities:r,templateId:c,siteId:l,tokenRef:s,navigate:n}=I(),{hasSiteTheme:i,explainsSiteSettings:m}=r,a=d=>o.setView(d),[T,u]=M(Se[0].id),{surface:S,setSurface:P}=te(),b=()=>{if(i){a("styles"),o.reveal(),B();return}e.show(y),e.reveal(),B()},v={id:"pages",label:"Pages",icon:t(j,{}),panel:({onHide:d})=>t(q,{activeSurface:S,onPreviewSurface:P,onNavigate:p=>{P(null),n(c?{kind:"template",id:c,pageSlug:p}:{kind:"page",slug:p,siteId:l??void 0})},onClose:d})},E=[];return!i&&m&&E.push({id:"appearance",label:"Appearance",icon:t(Ze,{}),active:e.kind==="website",onSelect:b}),i&&E.push({id:"styles",label:"Site styles",icon:t(z,{}),panel:({onHide:d,notify:p})=>t(ce,{tokenRef:s,siteId:l??void 0,onClose:d,onNotify:p,tab:T,onTabChange:u})}),{railLead:[v],railTrail:E,resolveLeftView:(d,p)=>Be(d,i,p),openSettings:b,openStyles:()=>{u(Ee),a("styles")}}}function Xe(e,o,r,c){const{kind:l,open:s}=e,{selected:n,zoneOf:i}=o,m=de(o,r);f(()=>{_e(n?.type==="BookingBox"&&n.props.region==="confirm"?Ce(i(String(n.props.id))):null)},[n?.props.id]);const a=me(e,o),{capabilities:{hasSiteSettings:T}}=I(),{setSelected:u,setSelectHandler:S}=$(),{chat:P,setChat:b,setSelected:v,setSelectHandler:E}=X(),d=l==="header";f(()=>{u(d)},[d,u]),f(()=>{S(()=>s(O))},[S,s]);const p=k(()=>s(se),[s]),C=l==="chat";f(()=>{v(C)},[C,v]),f(()=>{E(p)},[E,p]);const{setOpenHandler:_}=ee(),L=k(()=>s(ne),[s]);f(()=>{_(L)},[_,L]);const H=N(e),D=Ue(),V=qe(e,c),x=r.device;return{...m,...H,...D,...V,treeFoot:()=>t("div",{className:"sf-tree-tool",children:t(U,{})}),hasOwnRows:h=>h.type===pe,ownRows:a.renderLocationTree,sectionPressed:a.sectionPressed,wrap:h=>t(Z.Provider,{value:!0,children:t(Q.Provider,{value:x,children:h})}),addPanelRow:h=>T?w("div",{className:"sf-addside-sitewide",children:[t("span",{className:"sf-addside-sitewide-glyph","aria-hidden":"true",children:t(g,{type:"chat",size:16})}),w("button",{type:"button",className:"sf-addside-sitewide-name",onClick:()=>{h(),p()},children:["Live chat",t("span",{className:"sf-addside-sitewide-desc",children:"A chat bubble on every page"})]}),t(G,{checked:P.enabled,onChange:W=>b({enabled:W}),ariaLabel:"Show the chat bubble on the whole site"})]}):void 0}}const Je={isLockedBlock:Re,duplicateBlocked:we,nestDepth:(e,o,r)=>o===he?Pe(e,r):0,newSectionNode:ze,canAddTo:ge,blockIsOffered:Ie},Qe={labelAtLevel:Ve,descriptions:xe,categoryLabel:ve,firstSection:ke,blockRowName:Le,plainText:be,Icon:g,Thumbnail:ae,useProducts:Ke},$e={desktop:2e3,tablet:800,mobile:390},R="desktop",et={options:J,initial:R,fluid:R,widths:$e},tt={read:Ae,write:e=>Ne(e),forSelection:(e,o)=>ye(e,o)},ot={first:A,last:Oe,firstGroup:Fe,lastGroup:Ye,isSectionGroup:We,sectionGroupZone:Me,panelOf:e=>e===A?O:null};function rt(e){return{...N(e),openSettings:()=>e.show(y)}}const Xt={useOwnerName:Te,useBridges:Xe,useStandaloneBridges:rt,useDocumentPass:fe,blockRules:Je,blockLook:Qe,devices:et,leftView:tt,pinned:ot,Canvas:De,Inspector:ie};export{Xt as WEBSITE_SCREEN};
@@ -1 +1 @@
1
- "use client";import{jsx as n,jsxs as y,Fragment as w}from"react/jsx-runtime";import{useEasel as F}from"efficient-easel/easel";import{useEffect as L,useRef as N,useState as x}from"react";import k from"./ThemeField.js";import W from"./CornersField.js";import v from"./CardShadowField.js";import B from"./ShadowColourField.js";import O from"./BlockGapField.js";import A from"./HoverEffectField.js";import j from"./HeroImageField.js";import U from"./PhotographyField.js";import Y from"./SideSpaceField.js";import M from"./SiteWidthField.js";import X from"./TextStylesField.js";import{usePreviewHeader as f}from"./PreviewHeaderContext.js";import{SettingsTabs as $}from"efficient-easel/panel";import{ContrastIcon as q,NoteIcon as J,SettingsIcon as Z,TypeIcon as K}from"efficient-easel/icons";import{useThemeRowPersist as Q}from"../lib/theme-row-persist.js";import{themeSaveNotice as V}from"../lib/theme-save-message.js";import{NEUTRAL_SITE_NAME as D}from"../lib/content/site-name.js";import{normalizeFonts as ee}from"../lib/fonts.js";import{previewFrame as oe}from"../lib/puck/preview-dom.js";import{CORNER_STYLE_TO_PX as te,normalizeCornerRadius as ne,normalizeCornerStyle as re,normalizeShadowColor as se,headingTypographyToRow as ie,normalizeHeadingCompression as ae,normalizeHeadingTypography as ce,DEFAULT_SIZES as le}from"../lib/theme.js";const b="sf-site-styles-tabpanel",de=!1,pe="Show hints";function he({shown:e,onChange:o}){return n("div",{className:"sf-hints",children:y("button",{type:"button","aria-pressed":e,onClick:()=>o(!e),className:`sf-rung sf-hints-toggle${e?" is-active":""}`,children:[n(J,{size:13}),pe]})})}const lo="text",R=[{id:"basics",label:"Basics",icon:n(Z,{}),htmlId:"sf-site-styles-tab-basics",panelId:b},{id:"theme",label:"Theme",icon:n(q,{}),htmlId:"sf-site-styles-tab-theme",panelId:b},{id:"text",label:"Text",icon:n(K,{}),htmlId:"sf-site-styles-tab-text",panelId:b}];function ue({themeFromDocument:e,persist:o}){const{appState:s,dispatch:r}=F(u=>u),{theme:a,setTheme:t}=f(),c=s.data,h=c.root?.props??{},i=u=>{if(e){const g={...h,theme:u};r({type:"replaceRoot",root:{...c.root,props:g},recordHistory:!0})}else t(u);o({selected_preset:u.selected,theme_presets:u.themes})};return n(k,{value:e?h.theme:a,onChange:i})}function ge(e,o){const[s,r]=x(null),a=N(null),t=JSON.stringify(e),c=N(o);return c.current=o,L(()=>{if(a.current===null){a.current=t;return}if(a.current===t)return;a.current=t;const h=window.setTimeout(()=>r(c.current),700),i=window.setTimeout(()=>r(null),2200);return()=>{window.clearTimeout(h),window.clearTimeout(i)}},[t]),s}function fe({themeFromDocument:e,persist:o}){const{appState:s,dispatch:r}=F(d=>d),[a,t]=x(null),{fonts:c,setFonts:h,sizes:i,setSizes:u,headingCompression:g,setHeadingCompression:S,headingTypography:_,setHeadingTypography:l}=f(),T=s.data,m=T.root?.props??{},C=e?ee(m.fonts):c,E=e?le:i,z=e?ae(m.headingCompression):g,I=e?ce(m.headingTypography):_,H=d=>r({type:"replaceRoot",root:{...T.root,props:{...m,...d}},recordHistory:!0}),G=ge({curFonts:C,curCompression:z,curTypography:I},a);return n(X,{fonts:C,sizes:E,compression:z,headingTypography:I,openRole:a,onOpenRole:t,onFontChange:(d,P)=>{const p={...C,[d]:P};e?H({fonts:p}):h(p),o({heading_font:p.heading,body_font:p.body,accent_font:p.accent,label_font:p.label})},onSizeChange:e?void 0:(d,P)=>{const p={...E,[d]:P};u(p),o({heading_size_large_px:p.headingLarge,heading_size_medium_px:p.headingMedium,heading_size_small_px:p.headingSmall,accent_size_px:p.accent,body_size_px:p.body,label_size_px:p.label})},onCompressionChange:d=>{e?H({headingCompression:d}):S(d),o({heading_compression:d})},onHeadingTypographyChange:d=>{e?H({headingTypography:d}):l(d),o(ie(d))},livePx:Ce,savedRole:G})}const me={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 Ce(e){if(typeof document>"u")return null;const s=(oe()?.contentDocument??document).querySelector(me[e]);if(!s)return null;const r=parseFloat(getComputedStyle(s).fontSize);return Number.isFinite(r)?r:null}function ye({themeFromDocument:e,persist:o,showHint:s}){const{appState:r,dispatch:a}=F(l=>l),{cornerRadiusPx:t,setCornerRadiusPx:c}=f(),h=r.data,i=h.root?.props??{},u=i.cornerRadiusPx===void 0?te[re(i.cornerStyle)]:ne(i.cornerRadiusPx),g=e?u:t,S=l=>a({type:"replaceRoot",root:{...h.root,props:{...i,...l}},recordHistory:!0});return n(W,{value:g,onChange:l=>{e?S({cornerRadiusPx:l}):c(l),o({corner_radius_px:l})},showHint:s})}function Se(e){return{site_width:e}}function _e({persist:e,showHint:o}){const{siteWidth:s,setSiteWidth:r}=f();return n(M,{value:s,onChange:t=>{r(t),e(Se(t),t===null)},showHint:o})}function we(e){return{block_gap:e}}function Te(e){return{site_gutter:e}}function xe({persist:e,showHint:o}){const{siteGutter:s,setSiteGutter:r}=f();return n(Y,{value:s,onChange:t=>{r(t),e(Te(t),t===null)},showHint:o})}function be({persist:e,showHint:o}){const{blockGap:s,setBlockGap:r}=f();return n(O,{value:s,onChange:t=>{r(t),e(we(t),t===null)},showHint:o})}function Re({persist:e,showHint:o}){const{heroBackgroundFollowsWidth:s,setHeroBackgroundFollowsWidth:r}=f();return n(j,{value:s,onChange:t=>{r(t),e({hero_background_follows_width:t},!0)},showHint:o})}function He({persist:e,showHint:o=!0}){return y(w,{children:[n(_e,{persist:e,showHint:o}),n(xe,{persist:e,showHint:o}),n(be,{persist:e,showHint:o}),n(Re,{persist:e,showHint:o})]})}function Pe(e){return{card_shadow:e}}function Fe(e){return e===null?{shadow_color:null}:{shadow_color:se(e)}}function Ee(e){return{hover_effect:e}}function ze({persist:e,showHint:o=!0}){const{cardShadow:s,setCardShadow:r,shadowColor:a,setShadowColor:t,hoverEffect:c,setHoverEffect:h}=f();return y(w,{children:[n(v,{value:s,onChange:i=>{r(i),e(Pe(i),!0)},showHint:o}),n(B,{value:a,onChange:i=>{t(i),e(Fe(i),i===null)},showHint:o}),n(A,{value:c,onChange:i=>{h(i),e(Ee(i),!0)},showHint:o})]})}function Ie(e){return{photography_grayscale:e}}function Ne({persist:e,showHint:o}){const{photographyGrayscale:s,setPhotographyGrayscale:r}=f();return n(U,{value:s,onChange:t=>{r(t),e(Ie(t),!0)},showHint:o})}function Ge({persist:e,showHint:o=!0}){return n(w,{children:n(Ne,{persist:e,showHint:o})})}function Le(){const{websiteName:e}=f();return e?.trim()||D}function po(){const e=Le();return n("p",{className:"sf-panel-site",title:`${e} \u2014 renamed in the Console: Storefront \u25B8 Sites \u25B8 Settings.`,children:e})}function ke({themeFromDocument:e=!1,tokenRef:o,siteId:s,onNotify:r,tab:a,onTabChange:t}){const{persist:c}=Q({themeFromDocument:e,tokenRef:o,siteId:s,onResult:m=>{const C=V(m);C&&r?.(C.msg,C.tone)}}),[h,i]=x(R[0].id),u=a!==void 0,g=u?a:h,S=u?t??(()=>{}):i,_=R.find(m=>m.id===g)??R[0],[l,T]=x(de);return y(w,{children:[n($,{items:R,activeId:_.id,onSelect:S,ariaLabel:"Site styles"}),y("div",{id:b,role:"tabpanel","aria-labelledby":_.htmlId,children:[g==="basics"&&y(w,{children:[n(ye,{themeFromDocument:e,persist:c,showHint:l}),!e&&n(ze,{persist:c,showHint:l}),!e&&n(He,{persist:c,showHint:l}),!e&&n(Ge,{persist:c,showHint:l}),n(he,{shown:l,onChange:T})]}),g==="theme"&&n(ue,{themeFromDocument:e,persist:c}),g==="text"&&n(fe,{themeFromDocument:e,persist:c})]})]})}export{ze as CardLookFields,he as HintsToggle,He as PageGroupFields,Ge as PhotographyGroupFields,de as SHOW_HINTS_DEFAULT,R as SITE_STYLES_TABS,lo as SITE_STYLES_TEXT_TAB,b as TABPANEL_ID,po as WebsiteNameReadonly,we as blockGapPatch,Pe as cardShadowPatch,ke as default,Ee as hoverEffectPatch,Ie as photographyPatch,Fe as shadowColourPatch,Te as siteGutterPatch,Se as siteWidthPatch,Le as useWebsiteName};
1
+ "use client";import{jsx as n,jsxs as y,Fragment as w}from"react/jsx-runtime";import{useEasel as F}from"efficient-easel/easel";import{useEffect as L,useRef as N,useState as x}from"react";import k from"./ThemeField.js";import W from"./CornersField.js";import v from"./CardShadowField.js";import B from"./ShadowColourField.js";import O from"./BlockGapField.js";import A from"./HoverEffectField.js";import j from"./HeroImageField.js";import U from"./PhotographyField.js";import Y from"./SideSpaceField.js";import M from"./SiteWidthField.js";import X from"./TextStylesField.js";import{usePreviewHeader as f}from"./PreviewHeaderContext.js";import{SettingsTabs as $}from"efficient-easel/panel";import{ContrastIcon as q,NoteIcon as J,SettingsIcon as Z,TypeIcon as K}from"efficient-easel/icons";import{useThemeRowPersist as Q}from"../lib/theme-row-persist.js";import{themeSaveNotice as V}from"../lib/theme-save-message.js";import{NEUTRAL_SITE_NAME as D}from"../lib/content/site-name.js";import{normalizeFonts as ee}from"../lib/fonts.js";import{previewFrame as oe}from"../lib/puck/preview-dom.js";import{CORNER_STYLE_TO_PX as te,normalizeCornerRadius as ne,normalizeCornerStyle as re,normalizeShadowColor as se,headingTypographyToRow as ie,normalizeHeadingCompression as ae,normalizeHeadingTypography as ce,DEFAULT_SIZES as le}from"../lib/theme.js";const b="sf-site-styles-tabpanel",de=!1,pe="Show hints";function he({shown:e,onChange:o}){return n("div",{className:"sf-hints",children:y("button",{type:"button","aria-pressed":e,onClick:()=>o(!e),className:`sf-rung sf-hints-toggle${e?" is-active":""}`,children:[n(J,{size:13}),pe]})})}const lo="text",R=[{id:"basics",label:"Basics",icon:n(Z,{}),htmlId:"sf-site-styles-tab-basics",panelId:b},{id:"theme",label:"Theme",icon:n(q,{}),htmlId:"sf-site-styles-tab-theme",panelId:b},{id:"text",label:"Text",icon:n(K,{}),htmlId:"sf-site-styles-tab-text",panelId:b}];function ue({themeFromDocument:e,persist:o}){const{appState:s,dispatch:r}=F(u=>u),{theme:a,setTheme:t}=f(),c=s.data,h=c.root?.props??{},i=u=>{if(e){const g={...h,theme:u};r({type:"replaceRoot",root:{...c.root,props:g},recordHistory:!0})}else t(u);o({selected_preset:u.selected,theme_presets:u.themes})};return n(k,{value:e?h.theme:a,onChange:i})}function ge(e,o){const[s,r]=x(null),a=N(null),t=JSON.stringify(e),c=N(o);return c.current=o,L(()=>{if(a.current===null){a.current=t;return}if(a.current===t)return;a.current=t;const h=window.setTimeout(()=>r(c.current),700),i=window.setTimeout(()=>r(null),2200);return()=>{window.clearTimeout(h),window.clearTimeout(i)}},[t]),s}function fe({themeFromDocument:e,persist:o}){const{appState:s,dispatch:r}=F(d=>d),[a,t]=x(null),{fonts:c,setFonts:h,sizes:i,setSizes:u,headingCompression:g,setHeadingCompression:S,headingTypography:_,setHeadingTypography:l}=f(),T=s.data,m=T.root?.props??{},C=e?ee(m.fonts):c,E=e?le:i,z=e?ae(m.headingCompression):g,I=e?ce(m.headingTypography):_,H=d=>r({type:"replaceRoot",root:{...T.root,props:{...m,...d}},recordHistory:!0}),G=ge({curFonts:C,curCompression:z,curTypography:I},a);return n(X,{fonts:C,sizes:E,compression:z,headingTypography:I,openRole:a,onOpenRole:t,onFontChange:(d,P)=>{const p={...C,[d]:P};e?H({fonts:p}):h(p),o({heading_font:p.heading,body_font:p.body,accent_font:p.accent,label_font:p.label})},onSizeChange:e?void 0:(d,P)=>{const p={...E,[d]:P};u(p),o({heading_size_large_px:p.headingLarge,heading_size_medium_px:p.headingMedium,heading_size_small_px:p.headingSmall,accent_size_px:p.accent,body_size_px:p.body,label_size_px:p.label})},onCompressionChange:d=>{e?H({headingCompression:d}):S(d),o({heading_compression:d})},onHeadingTypographyChange:d=>{e?H({headingTypography:d}):l(d),o(ie(d))},livePx:Ce,savedRole:G})}const me={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 Ce(e){if(typeof document>"u")return null;const s=(oe()?.contentDocument??document).querySelector(me[e]);if(!s)return null;const r=parseFloat(getComputedStyle(s).fontSize);return Number.isFinite(r)?r:null}function ye({themeFromDocument:e,persist:o,showHint:s}){const{appState:r,dispatch:a}=F(l=>l),{cornerRadiusPx:t,setCornerRadiusPx:c}=f(),h=r.data,i=h.root?.props??{},u=i.cornerRadiusPx===void 0?te[re(i.cornerStyle)]:ne(i.cornerRadiusPx),g=e?u:t,S=l=>a({type:"replaceRoot",root:{...h.root,props:{...i,...l}},recordHistory:!0});return n(W,{value:g,onChange:l=>{e?S({cornerRadiusPx:l}):c(l),o({corner_radius_px:l})},showHint:s})}function Se(e){return{site_width:e}}function _e({persist:e,showHint:o}){const{siteWidth:s,setSiteWidth:r}=f();return n(M,{value:s,onChange:t=>{r(t),e(Se(t),t===null)},showHint:o})}function we(e){return{block_gap:e}}function Te(e){return{site_gutter:e}}function xe({persist:e,showHint:o}){const{siteGutter:s,setSiteGutter:r}=f();return n(Y,{value:s,onChange:t=>{r(t),e(Te(t),t===null)},showHint:o})}function be({persist:e,showHint:o}){const{blockGap:s,setBlockGap:r}=f();return n(O,{value:s,onChange:t=>{r(t),e(we(t),t===null)},showHint:o})}function Re({persist:e,showHint:o}){const{heroBackgroundFollowsWidth:s,setHeroBackgroundFollowsWidth:r}=f();return n(j,{value:s,onChange:t=>{r(t),e({hero_background_follows_width:t},!0)},showHint:o})}function He({persist:e,showHint:o=!0}){return y(w,{children:[n(_e,{persist:e,showHint:o}),n(xe,{persist:e,showHint:o}),n(be,{persist:e,showHint:o}),n(Re,{persist:e,showHint:o})]})}function Pe(e){return{card_shadow:e}}function Fe(e){return e===null?{shadow_color:null}:{shadow_color:se(e)}}function Ee(e){return{hover_effect:e}}function ze({persist:e,showHint:o=!0}){const{cardShadow:s,setCardShadow:r,shadowColor:a,setShadowColor:t,hoverEffect:c,setHoverEffect:h}=f();return y(w,{children:[n(v,{value:s,onChange:i=>{r(i),e(Pe(i),!0)},showHint:o}),n(B,{value:a,onChange:i=>{t(i),e(Fe(i),i===null)},showHint:o}),n(A,{value:c,onChange:i=>{h(i),e(Ee(i),!0)},showHint:o})]})}function Ie(e){return{photography_grayscale:e}}function Ne({persist:e,showHint:o}){const{photographyGrayscale:s,setPhotographyGrayscale:r}=f();return n(U,{value:s,onChange:t=>{r(t),e(Ie(t),!0)},showHint:o})}function Ge({persist:e,showHint:o=!0}){return n(w,{children:n(Ne,{persist:e,showHint:o})})}function Le(){const{websiteName:e}=f();return e?.trim()||D}function po(){const e=Le();return n("p",{className:"sf-panel-site",title:`${e} — renamed in the Console: Storefront ▸ Sites ▸ Settings.`,children:e})}function ke({themeFromDocument:e=!1,tokenRef:o,siteId:s,onNotify:r,tab:a,onTabChange:t}){const{persist:c}=Q({themeFromDocument:e,tokenRef:o,siteId:s,onResult:m=>{const C=V(m);C&&r?.(C.msg,C.tone)}}),[h,i]=x(R[0].id),u=a!==void 0,g=u?a:h,S=u?t??(()=>{}):i,_=R.find(m=>m.id===g)??R[0],[l,T]=x(de);return y(w,{children:[n($,{items:R,activeId:_.id,onSelect:S,ariaLabel:"Site styles"}),y("div",{id:b,role:"tabpanel","aria-labelledby":_.htmlId,children:[g==="basics"&&y(w,{children:[n(ye,{themeFromDocument:e,persist:c,showHint:l}),!e&&n(ze,{persist:c,showHint:l}),!e&&n(He,{persist:c,showHint:l}),!e&&n(Ge,{persist:c,showHint:l}),n(he,{shown:l,onChange:T})]}),g==="theme"&&n(ue,{themeFromDocument:e,persist:c}),g==="text"&&n(fe,{themeFromDocument:e,persist:c})]})]})}export{ze as CardLookFields,he as HintsToggle,He as PageGroupFields,Ge as PhotographyGroupFields,de as SHOW_HINTS_DEFAULT,R as SITE_STYLES_TABS,lo as SITE_STYLES_TEXT_TAB,b as TABPANEL_ID,po as WebsiteNameReadonly,we as blockGapPatch,Pe as cardShadowPatch,ke as default,Ee as hoverEffectPatch,Ie as photographyPatch,Fe as shadowColourPatch,Te as siteGutterPatch,Se as siteWidthPatch,Le as useWebsiteName};
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as u}from"react/jsx-runtime";import{Fragment as d}from"react";import{linePrefix as N,storefrontLines as L}from"../lib/markup.js";import{COLOUR_TOKEN as h,WORD_STYLE_ATTR as _,WORD_STYLE_BY_KIND as S}from"../lib/word-styles.js";import{isHexColour as g}from"../lib/puck/part-styles.js";import a from"./PartStyledText.js";import{withRMark as f}from"./RMark.js";function E(e,n=!1){const s=m(n),r=L(e);if(r.length===1){const[c]=r,l=N(c),b=l?w(l,c.children):c.children;return t(a,{value:e,children:o(b,s)})}const i=[];return r.forEach((c,l)=>{if(c.bullet){i.push(t("span",{"data-sf-bullet":"",className:T,children:o(c.children,s)},l));return}if(c.number!=null){i.push(u("span",{"data-sf-number":c.number,className:R,children:[u("span",{className:k,children:[c.number,"."]}),o(c.children,s)]},l));return}l>0&&!C(r[l-1])&&i.push(t("br",{},`br${l}`)),i.push(t(d,{children:o(c.children,s)},l))}),t(a,{value:e,children:i})}const T="relative block pl-6 before:absolute before:left-1.5 before:font-bold before:text-accent before:content-['\xB7']",R="relative block pl-[2em]",k="absolute left-0 w-[1.6em] text-right tabular-nums";function C(e){return e.bullet||e.number!=null}const O="text-accent underline underline-offset-[0.18em]";function w(e,n){const[s,...r]=n;return s?.kind==="text"?[{kind:"text",text:`${e}${s.text}`},...r]:[{kind:"text",text:e},...n]}function A(e){if(e)return g(e)?e:Object.hasOwn(h,e)?h[e]:void 0}function o(e,n){const s=[];let r=!1;return e.forEach((i,c)=>{if(i.kind==="text"){s.push(t("span",{children:f(i.text)},c)),r=!0;return}r||s.push(t("span",{},`e${c}`)),s.push(x(i,c,n)),r=!1}),r||s.push(t("span",{},"end")),s}function p(e,n){return e.length===1&&e[0].kind==="text"?f(e[0].text):e.map((s,r)=>s.kind==="text"?t(d,{children:f(s.text)},r):x(s,r,n))}function $(e,n=!1){return o(e,m(n))}function m(e){return e?"font-normal italic text-accent":"not-italic text-accent"}function D(e){return t(a,{value:e,children:t("span",{children:e})})}function x(e,n,s){if(e.kind==="link")return t("a",{href:e.href,className:O,children:p(e.children,s)},n);const r=p(e.children,s),i=S[e.kind];if(i)return t("span",{[_]:i,children:r},n);switch(e.kind){case"underline":return t("u",{children:r},n);case"sup":return t("sup",{children:r},n);case"sub":return t("sub",{children:r},n);case"color":{const c=A(e.color);return c?t("span",{style:{color:c},children:r},n):t("span",{children:r},n)}case"accent":case"highlight":return t("em",{className:s,children:r},n);case"bold":return t("strong",{className:"font-semibold",children:r},n);case"italic":return t("em",{className:"italic",children:r},n);case"strike":return t("s",{className:"line-through",children:r},n);default:return t("span",{children:r},n)}}function P(e,n=!0){const s=e.split(`
1
+ import{jsx as t,jsxs as u}from"react/jsx-runtime";import{Fragment as d}from"react";import{linePrefix as N,storefrontLines as L}from"../lib/markup.js";import{COLOUR_TOKEN as h,WORD_STYLE_ATTR as _,WORD_STYLE_BY_KIND as S}from"../lib/word-styles.js";import{isHexColour as g}from"../lib/puck/part-styles.js";import a from"./PartStyledText.js";import{withRMark as f}from"./RMark.js";function E(e,n=!1){const s=m(n),r=L(e);if(r.length===1){const[c]=r,l=N(c),b=l?w(l,c.children):c.children;return t(a,{value:e,children:o(b,s)})}const i=[];return r.forEach((c,l)=>{if(c.bullet){i.push(t("span",{"data-sf-bullet":"",className:T,children:o(c.children,s)},l));return}if(c.number!=null){i.push(u("span",{"data-sf-number":c.number,className:R,children:[u("span",{className:k,children:[c.number,"."]}),o(c.children,s)]},l));return}l>0&&!C(r[l-1])&&i.push(t("br",{},`br${l}`)),i.push(t(d,{children:o(c.children,s)},l))}),t(a,{value:e,children:i})}const T="relative block pl-6 before:absolute before:left-1.5 before:font-bold before:text-accent before:content-['·']",R="relative block pl-[2em]",k="absolute left-0 w-[1.6em] text-right tabular-nums";function C(e){return e.bullet||e.number!=null}const O="text-accent underline underline-offset-[0.18em]";function w(e,n){const[s,...r]=n;return s?.kind==="text"?[{kind:"text",text:`${e}${s.text}`},...r]:[{kind:"text",text:e},...n]}function A(e){if(e)return g(e)?e:Object.hasOwn(h,e)?h[e]:void 0}function o(e,n){const s=[];let r=!1;return e.forEach((i,c)=>{if(i.kind==="text"){s.push(t("span",{children:f(i.text)},c)),r=!0;return}r||s.push(t("span",{},`e${c}`)),s.push(x(i,c,n)),r=!1}),r||s.push(t("span",{},"end")),s}function p(e,n){return e.length===1&&e[0].kind==="text"?f(e[0].text):e.map((s,r)=>s.kind==="text"?t(d,{children:f(s.text)},r):x(s,r,n))}function $(e,n=!1){return o(e,m(n))}function m(e){return e?"font-normal italic text-accent":"not-italic text-accent"}function D(e){return t(a,{value:e,children:t("span",{children:e})})}function x(e,n,s){if(e.kind==="link")return t("a",{href:e.href,className:O,children:p(e.children,s)},n);const r=p(e.children,s),i=S[e.kind];if(i)return t("span",{[_]:i,children:r},n);switch(e.kind){case"underline":return t("u",{children:r},n);case"sup":return t("sup",{children:r},n);case"sub":return t("sub",{children:r},n);case"color":{const c=A(e.color);return c?t("span",{style:{color:c},children:r},n):t("span",{children:r},n)}case"accent":case"highlight":return t("em",{className:s,children:r},n);case"bold":return t("strong",{className:"font-semibold",children:r},n);case"italic":return t("em",{className:"italic",children:r},n);case"strike":return t("s",{className:"line-through",children:r},n);default:return t("span",{children:r},n)}}function P(e,n=!0){const s=e.split(`
2
2
  `);return t(a,{value:e,children:s.map((r,i)=>u("span",{children:[E(r,n),i<s.length-1?t("br",{}):null]},i))})}function Y(e){return e.split(/\n\s*\n/).map(n=>n.trim()).filter(Boolean)}export{D as renderChrome,E as renderGold,P as renderHeadline,$ as renderMarkupNodes,Y as splitParagraphs};
@@ -458,90 +458,6 @@
458
458
  }
459
459
  }
460
460
 
461
- /* ── The one destructive confirm in the panel (Reset color) ─────────────────
462
- [ADD] Reset On Every Site Style. Every other reset on Site styles clears a
463
- number or a rung; this one deletes a merchant's authored palettes, so it asks
464
- first (owner's ruling 2026-09-05, option B).
465
-
466
- THE COLOURS LIVE HERE RATHER THAN ON THE COMPONENT, and that is the rule
467
- rather than a preference. `test-panel-colour-tokens` sweeps `components/` for
468
- literals — "a literal there is a private copy of one step of that scale: it
469
- does not move when the scale moves". The older `LeaveConfirmDialog` spells its
470
- palette in Tailwind literals and predates that sweep; a second dialog copying
471
- it would have passed review and failed the gate.
472
-
473
- The destructive button takes the `--sf-danger*` family that already exists,
474
- not a red of its own. The radius is the 9px the theme cards and the add-card
475
- button already wear, so the dialog reads as the same object as the rest of the
476
- panel rather than a new shape. */
477
- .sf-cleardlg-veil {
478
- position: fixed;
479
- inset: 0;
480
- z-index: 200;
481
- display: flex;
482
- align-items: center;
483
- justify-content: center;
484
- padding: 16px;
485
- background: var(--sf-addcard-veil);
486
- }
487
- .sf-cleardlg {
488
- width: 100%;
489
- max-width: 360px;
490
- box-sizing: border-box;
491
- padding: 20px;
492
- border: 1px solid var(--sf-line);
493
- border-radius: 9px;
494
- background: var(--sf-panel);
495
- color: var(--sf-text);
496
- box-shadow: 0 20px 50px var(--sf-accent-shadow);
497
- }
498
- .sf-cleardlg-title {
499
- margin: 0;
500
- font-size: 15px;
501
- font-weight: 600;
502
- color: var(--sf-text);
503
- }
504
- .sf-cleardlg-body {
505
- margin: 8px 0 0;
506
- font-size: 13px;
507
- line-height: 1.6;
508
- color: var(--sf-muted);
509
- }
510
- /* The one line a merchant must not skim. NOT red — the button already carries
511
- the danger colour, and a red sentence over a red button is the panel shouting
512
- twice. Full-strength ink and a heavier weight instead. */
513
- .sf-cleardlg-final {
514
- margin: 8px 0 0;
515
- font-size: 13px;
516
- line-height: 1.6;
517
- font-weight: 500;
518
- color: var(--sf-text);
519
- }
520
- .sf-cleardlg-btns {
521
- display: flex;
522
- justify-content: flex-end;
523
- gap: 8px;
524
- margin-top: 18px;
525
- }
526
- .sf-cleardlg-btn {
527
- font-family: var(--sf-font);
528
- font-size: 13px;
529
- padding: 7px 14px;
530
- border-radius: var(--sf-field-radius);
531
- border: 1px solid var(--sf-btn-border);
532
- background: var(--sf-panel);
533
- color: var(--sf-btn-text);
534
- cursor: pointer;
535
- }
536
- .sf-cleardlg-btn:hover { background: var(--sf-hover); }
537
- .sf-cleardlg-btn--danger {
538
- font-weight: 600;
539
- border-color: var(--sf-danger-strong);
540
- background: var(--sf-danger-strong);
541
- color: var(--sf-on-accent);
542
- }
543
- .sf-cleardlg-btn--danger:hover { filter: brightness(0.94); }
544
-
545
461
  .sf-addcard-overlay {
546
462
  position: absolute;
547
463
  inset: 0;
@@ -1050,83 +966,6 @@
1050
966
  }
1051
967
  }
1052
968
 
1053
- /* "Duplicate to another page" dropdown — portalled to <body> and pinned under
1054
- the inspector button (see DuplicateToPageMenu), so it's position:fixed and
1055
- right-aligned. Shares the floating-menu language of .sf-blockmenu. */
1056
- .sf-dupmenu-backdrop {
1057
- position: fixed;
1058
- inset: 0;
1059
- z-index: 1000;
1060
- }
1061
- .sf-dupmenu {
1062
- position: fixed;
1063
- z-index: 1001;
1064
- display: flex;
1065
- flex-direction: column;
1066
- gap: 1px;
1067
- min-width: 200px;
1068
- max-width: 280px;
1069
- max-height: 60vh;
1070
- overflow: auto;
1071
- padding: 4px;
1072
- border: 1px solid var(--sf-line);
1073
- border-radius: 8px;
1074
- background: var(--sf-panel);
1075
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
1076
- }
1077
- .sf-dupmenu-head {
1078
- padding: 6px 9px 4px;
1079
- font-size: 11px;
1080
- font-weight: 600;
1081
- letter-spacing: 0.02em;
1082
- color: var(--sf-muted);
1083
- }
1084
- .sf-dupmenu-empty {
1085
- padding: 8px 9px;
1086
- font-size: 13px;
1087
- color: var(--sf-muted);
1088
- }
1089
- .sf-dupmenu-item {
1090
- display: flex;
1091
- align-items: center;
1092
- gap: 8px;
1093
- width: 100%;
1094
- padding: 7px 9px;
1095
- border: none;
1096
- background: transparent;
1097
- border-radius: 6px;
1098
- cursor: pointer;
1099
- font-size: 13px;
1100
- text-align: left;
1101
- color: var(--sf-text);
1102
- }
1103
- .sf-dupmenu-item:hover:not(:disabled) {
1104
- background: var(--sf-accent-tint);
1105
- color: var(--sf-accent);
1106
- }
1107
- .sf-dupmenu-item:disabled {
1108
- cursor: default;
1109
- opacity: 0.6;
1110
- }
1111
- .sf-dupmenu-name {
1112
- flex: 1;
1113
- min-width: 0;
1114
- overflow: hidden;
1115
- text-overflow: ellipsis;
1116
- white-space: nowrap;
1117
- }
1118
- /* Here the note is a word trailing a menu row ("draft", "Copying…"), not a
1119
- block: no inset of its own, and it takes the ROW's leading rather than the
1120
- note's, or a draft row would stand 4px taller than a published one and the
1121
- menu would lose its even rhythm. It stays quiet against the page name beside
1122
- it by COLOUR, which is the note's own and the whole reason one class can
1123
- serve both places. Placement only; the note style itself is .sf-note. */
1124
- .sf-dupmenu-item > .sf-note {
1125
- padding: 0;
1126
- flex: none;
1127
- line-height: inherit;
1128
- }
1129
-
1130
969
  /* Floating-styled form controls for Puck's native fields */
1131
970
  .sf-insp-body input[type="text"],
1132
971
  .sf-insp-body input[type="number"],
@@ -2352,8 +2191,9 @@
2352
2191
 
2353
2192
  `.sf-markup` — the container class this repo's own bar carried — is GONE from
2354
2193
  these selectors, because nothing renders it any more (swept: no `"sf-markup"`
2355
- class in app / components / lib). `.sf-markup-btn` stays: the Clear button is
2356
- still the host's own and still takes its metrics from it. */
2194
+ class in app / components / lib). `.sf-markup-btn` went too: the Clear
2195
+ button is the shell's `IconButton` (harness UI-24), with the shell's own
2196
+ metrics, hover and :disabled look. */
2357
2197
  .sf-copybox > .es-copy-bar,
2358
2198
  .es-list-above > .es-copy-bar {
2359
2199
  display: flex;
@@ -2391,7 +2231,6 @@
2391
2231
  wide as its word. `has-glyph` is the shell's own marker for the difference
2392
2232
  (editor-shell 0.62.0), so the two cases are told apart by what they hold
2393
2233
  rather than by a list of style names kept in step by hand. */
2394
- .sf-markup-btn,
2395
2234
  .sf-copybox .es-copy-mark.has-glyph,
2396
2235
  .es-list-above .es-copy-mark.has-glyph {
2397
2236
  width: 24px;
@@ -2405,7 +2244,6 @@
2405
2244
  line-height: 1;
2406
2245
  white-space: nowrap;
2407
2246
  }
2408
- .sf-markup-btn,
2409
2247
  .sf-copybox .es-copy-mark,
2410
2248
  .es-list-above .es-copy-mark {
2411
2249
  height: 22px;
@@ -2420,20 +2258,17 @@
2420
2258
  opacity: 0.75;
2421
2259
  transition: background 0.12s, color 0.12s, opacity 0.12s;
2422
2260
  }
2423
- .sf-markup-btn:hover:not(:disabled),
2424
2261
  .sf-copybox .es-copy-mark:hover:not(:disabled),
2425
2262
  .es-list-above .es-copy-mark:hover:not(:disabled) {
2426
2263
  background: var(--sf-hover);
2427
2264
  color: var(--sf-text-secondary);
2428
2265
  opacity: 1;
2429
2266
  }
2430
- .sf-markup-btn:active:not(:disabled),
2431
2267
  .sf-copybox .es-copy-mark:active:not(:disabled),
2432
2268
  .es-list-above .es-copy-mark:active:not(:disabled) {
2433
2269
  background: var(--sf-accent-tint);
2434
2270
  color: var(--sf-accent-text);
2435
2271
  }
2436
- .sf-markup-btn:disabled,
2437
2272
  .sf-copybox .es-copy-mark:disabled,
2438
2273
  .es-list-above .es-copy-mark:disabled {
2439
2274
  color: var(--sf-disabled);
@@ -2445,8 +2280,8 @@
2445
2280
  the whole separation: `margin-left: auto` makes the bar's own `.es-divider-v`
2446
2281
  eat the free space, which IS the flexible spacer, and carries the button after
2447
2282
  it to the far end. No new class, no new line and no new colour — the divider
2448
- already draws itself in --sf-divider, and the button takes `.sf-markup-btn`
2449
- for its metrics, its hover and its :disabled look.
2283
+ already draws itself in --sf-divider, and the button is the shell's
2284
+ `IconButton`, with its metrics, its hover and its :disabled look.
2450
2285
 
2451
2286
  The height is the one adjustment: `.es-divider-v` is 22px for the 30px icon
2452
2287
  buttons of the top toolbar, which in a 22px row would run edge to edge and
@@ -3208,25 +3043,11 @@
3208
3043
  /* With no warning beside it the Edit still sits hard right. */
3209
3044
  .sf-theme-name { margin-right: auto; }
3210
3045
 
3046
+ /* The Edit / Done button is efficient-shell's `Button` (harness UI-24): its
3047
+ look is the shell's, `secondary` folded and `primary` open. This class only
3048
+ keeps it from shrinking in the foot. */
3211
3049
  .sf-theme-edit {
3212
3050
  flex: none;
3213
- border: 1px solid var(--sf-input-border);
3214
- background: var(--sf-panel);
3215
- border-radius: 4px;
3216
- font: inherit;
3217
- font-size: 10px;
3218
- font-weight: 700;
3219
- letter-spacing: 0.03em;
3220
- color: var(--sf-text-secondary);
3221
- padding: 3px 8px;
3222
- line-height: 1.3;
3223
- cursor: pointer;
3224
- }
3225
- .sf-theme-edit:hover { border-color: var(--sf-muted); color: var(--sf-text); }
3226
- .sf-theme-edit.is-open {
3227
- background: var(--sf-accent);
3228
- border-color: var(--sf-accent);
3229
- color: #fff;
3230
3051
  }
3231
3052
 
3232
3053
  /* This theme's own colours, inside this theme's own card. The first row carries
@@ -3236,20 +3057,10 @@
3236
3057
  .sf-theme-colours[hidden] { display: none; }
3237
3058
  .sf-theme-colours > .es-field:first-child { margin-top: var(--es-rhythm-group-first); }
3238
3059
 
3060
+ /* The shell's `link` Button (harness UI-24); placement only. */
3239
3061
  .sf-theme-reset {
3240
- width: 100%;
3241
3062
  margin-top: var(--es-rhythm-between-tight);
3242
- border: 0;
3243
- background: none;
3244
- font: inherit;
3245
- font-size: 10.5px;
3246
- font-weight: 600;
3247
- color: var(--sf-accent-text);
3248
- padding: 0;
3249
- cursor: pointer;
3250
- text-align: left;
3251
3063
  }
3252
- .sf-theme-reset:disabled { color: var(--sf-muted); cursor: default; }
3253
3064
 
3254
3065
  .sf-theme-add {
3255
3066
  display: flex;
@@ -3659,19 +3470,13 @@ input.sf-slider-typed:focus {
3659
3470
  color: var(--sf-text);
3660
3471
  }
3661
3472
 
3662
- /* Checkbox — a literal tick box tinted to the editor accent. The row is the
3663
- shell's SettingsField with the box in its `action` slot (label left, box
3664
- right); the label points at the box, so the text is clickable. */
3473
+ /* Checkbox — a literal tick box. The row is easel's SettingsField with the box
3474
+ in its `action` slot (label left, box right); the label points at the box, so
3475
+ the text is clickable. The box is efficient-shell's `Checkbox` (harness
3476
+ UI-24), drawn and focus-ringed by the shell, so no rule here reaches it. */
3665
3477
  .sf-checkbox {
3666
3478
  cursor: pointer;
3667
3479
  }
3668
- .sf-checkbox input[type="checkbox"] {
3669
- width: 17px;
3670
- height: 17px;
3671
- margin: 0;
3672
- accent-color: var(--sf-accent);
3673
- cursor: pointer;
3674
- }
3675
3480
 
3676
3481
  /* A field group greyed out because a higher-level setting overrides it — e.g. the
3677
3482
  manual ProductPicker (Category + Product) when the Product Grid's Products
@@ -3696,8 +3501,7 @@ input.sf-slider-typed:focus {
3696
3501
  .sf-swatch:focus-visible,
3697
3502
  .sf-field-eye:focus-visible,
3698
3503
  .sf-slider input[type="range"]:focus-visible,
3699
- .sf-insp-body select:focus-visible,
3700
- .sf-checkbox input[type="checkbox"]:focus-visible {
3504
+ .sf-insp-body select:focus-visible {
3701
3505
  outline: 2px solid var(--sf-accent);
3702
3506
  outline-offset: 2px;
3703
3507
  }
@@ -3884,6 +3688,11 @@ input.sf-list-marking {
3884
3688
  flex-direction: column;
3885
3689
  gap: 9px;
3886
3690
  }
3691
+ /* The shell's Button in the column (SourceStatus): its own width, not the
3692
+ column's. Placement only; the look is the shell's (harness UI-24). */
3693
+ .sf-blogsource-action {
3694
+ align-self: flex-start;
3695
+ }
3887
3696
  .sf-blogsource-status {
3888
3697
  margin: 0;
3889
3698
  font-size: 12px;
@@ -3922,6 +3731,11 @@ input.sf-list-marking {
3922
3731
  border-radius: 2px;
3923
3732
  }
3924
3733
 
3734
+ /* ⏳ DRAWN BY NO FILE OF THIS REPOSITORY'S. `SourceStatus` takes the shell's
3735
+ `Button` (harness UI-24); this rule is kept for the panels
3736
+ `efficient-storefront-blocks` still draws by hand (CollectionPicker,
3737
+ EditProductLink, FormPicker), and is deleted when they move
3738
+ (Efficient-Pty-Ltd/efficient-easel#199). */
3925
3739
  .sf-blogsource-btn {
3926
3740
  align-self: flex-start;
3927
3741
  padding: 7px 14px;
@@ -4147,8 +3961,7 @@ ul.sf-image-status {
4147
3961
  THE chrome's quiet sentence: what a panel says when it has something to tell
4148
3962
  the merchant and nothing to let them edit. A whole-panel stand-in for
4149
3963
  settings that belong to a website the open document does not have; "No pages
4150
- yet"; "Loading…"; the word "draft" trailing a row in the duplicate-to-page
4151
- menu. One voice, so it is one class.
3964
+ yet"; "Loading…". One voice, so it is one class.
4152
3965
 
4153
3966
  It was six classes at five sizes — .sf-pages-note, .sf-sm-note,
4154
3967
  .sf-panel-note, .sf-dupmenu-note, and two more that were only counted as
@@ -1,3 +1,3 @@
1
- import{slugify as o}from"../slugify.js";const r=["tall","square","wide"],i="tall";function n(e){return r.includes(String(e??""))?String(e):i}const l={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",apiKey:"",mapId:"",mapTheme:"auto"},s=[{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT \xB7 UTC +0",address:`Address line one
2
- 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
3
- Address line two`,phone:"+00 000 0000",hours:"Mon\u2013Fri 9:00\u201318:00",lat:0,lng:0,mapsUrl:""}];function u(e){const t=String(e??"").split(" \xB7 ");return{state:(t[0]??"").trim(),country:(t[1]??"").trim()}}const p="other",m={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 h(e){return o(e)}export{s as CONTACT_LOCATIONS_CARDS_PLACEHOLDER,l as CONTACT_LOCATIONS_DEFAULTS,m as CONTACT_ROUTING_DEFAULTS,r as LOCATION_TILE_SHAPES,i as LOCATION_TILE_SHAPE_DEFAULT,p as OTHER_REASON_ID,n as parseLocationTileShape,h as slugifyGroupId,u as splitLegacyRegion};
1
+ import{slugify as o}from"../slugify.js";const r=["tall","square","wide"],i="tall";function n(e){return r.includes(String(e??""))?String(e):i}const l={sectionNumber:"· Locations",heading:"Our *locations.*",tagline:"Visit us in person — find your nearest studio below.",galleryKicker:"Gallery",galleryHint:"Hover to see in colour · click to jump",apiKey:"",mapId:"",mapTheme:"auto"},s=[{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT · UTC +0",address:`Address line one
2
+ Address line two`,phone:"+00 000 0000",hours:"Mon–Fri 9:00–18:00",lat:0,lng:0,mapsUrl:""},{photo:"",group:"",groupName:"",name:"City name",state:"State",country:"Country",timezone:"GMT · UTC +0",address:`Address line one
3
+ Address line two`,phone:"+00 000 0000",hours:"Mon–Fri 9:00–18:00",lat:0,lng:0,mapsUrl:""}];function u(e){const t=String(e??"").split(" · ");return{state:(t[0]??"").trim(),country:(t[1]??"").trim()}}const p="other",m={routingNumber:"02 · Routing",routingTagline:"What can we help you with?",groups:[{id:"fitment",eyebrow:"A · Label",title:"Group one",copy:"Short description of this routing group.",response:"< 48h"},{id:"trade",eyebrow:"B · Label",title:"Group two",copy:"Short description of this routing group.",response:"< 24h"},{id:"press",eyebrow:"C · Label",title:"Group three",copy:"Short description of this routing group.",response:"< 48h"},{id:"order",eyebrow:"D · Label",title:"Group four",copy:"Short description of this routing group.",response:"< 24h"}],formNumber:"03 · 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 — we'll route it to whoever can help.",buttonText:"Send Message →",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 · Detail",groupId:"fitment"},{label:"Team two",value:"team-two@email.com",href:"mailto:team-two@email.com",sub:"Detail · Detail",groupId:"trade"},{label:"Team three",value:"team-three@email.com",href:"mailto:team-three@email.com",sub:"Detail · Detail",groupId:"press"},{label:"Team four",value:"team-four@email.com",href:"mailto:team-four@email.com",sub:"Detail · Detail",groupId:"order"},{label:"Phone",value:"+1 (000) 000-0000",href:"tel:+10000000000",sub:"Mon–Fri · 9:00–18:00"}]};function h(e){return o(e)}export{s as CONTACT_LOCATIONS_CARDS_PLACEHOLDER,l as CONTACT_LOCATIONS_DEFAULTS,m as CONTACT_ROUTING_DEFAULTS,r as LOCATION_TILE_SHAPES,i as LOCATION_TILE_SHAPE_DEFAULT,p as OTHER_REASON_ID,n as parseLocationTileShape,h as slugifyGroupId,u as splitLegacyRegion};
@@ -1,2 +1,2 @@
1
1
  import{authoredBoolean as d,authoredNumber as m,authoredString as f,authoredStringList as b}from"./authored-props.js";import{CART_DRAWER_SLUG as P}from"./cart-drawer.js";import{popupTextStyles as p}from"../popup/text-kinds.js";import{SITE_FOOTER_SLUG as h}from"./footer.js";const g="subscribe-popup",C="subscribe-popup",G="Pop up - SubscribePopup",S=[g,h,P];function H(r){return S.includes(r)}const L=["delay","scroll","exit"],x=["all","chosen"],O=["visit","days","never"],y=["right","left"],T={min:0,max:60},A={min:10,max:90},_={min:1,max:90},o={metaLabel:"Meta label",issueLabel:"Label",issueNumber:"00",kicker:"Kicker",heading:`Main heading
2
- *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:!1,autoOpenDelaySec:15,formSlug:"",trigger:"delay",scrollPercent:50,showOn:"all",showOnPages:[],hideAfter:"days",hideDays:7,formSide:"right",valuePanelOnPhone:!1,sectionAccent:void 0,sectionCorners:void 0,sectionCornerSides:void 0,textStyles:{}},n=f,E=m,l=d,u=b;function s(r,e,t){return typeof e=="string"&&r.includes(e)?e:t}function a(r,e,t){const i=E(r,t);return Math.min(e.max,Math.max(e.min,Math.round(i)))}function B(r){return typeof r.hideAfter=="string"?s(O,r.hideAfter,o.hideAfter):r.oncePerSession===!0?"visit":r.oncePerSession===!1?"never":o.hideAfter}function U(r){return Array.isArray(r)?r.map(e=>typeof e=="string"?e.trim():"").filter(Boolean).map(e=>e.startsWith("/")?e:`/${e}`):[]}function c(r,e){if(r==null)return e;const t=i=>i.trim()?i:"";if(typeof r=="string")return t(r);if(typeof r=="object"&&"text"in r){const i=r.text;return typeof i=="string"?t(i):""}return e}function k(r,e){return Array.isArray(r)?u(r,[]):e}function I(r,e){return Array.isArray(r)?r.map(t=>{const i=t??{};return{label:n(i.label,""),value:n(i.value,"")}}).filter(t=>t.label||t.value):e}function v(r){const e=r??{},t=o;return{metaLabel:n(e.metaLabel,t.metaLabel),issueLabel:c(e.issueLabel,t.issueLabel),issueNumber:c(e.issueNumber,t.issueNumber),kicker:n(e.kicker,t.kicker),heading:n(e.heading,t.heading),deck:n(e.deck,t.deck),stats:I(e.stats,t.stats),formLabel:n(e.formLabel,t.formLabel),formHeading:n(e.formHeading,t.formHeading),formIntro:n(e.formIntro,t.formIntro),firstNameLabel:n(e.firstNameLabel,t.firstNameLabel),firstNamePlaceholder:n(e.firstNamePlaceholder,t.firstNamePlaceholder),emailLabel:n(e.emailLabel,t.emailLabel),emailPlaceholder:n(e.emailPlaceholder,t.emailPlaceholder),interestsLabel:n(e.interestsLabel,t.interestsLabel),interests:u(e.interests,t.interests),frequencyLabel:n(e.frequencyLabel,t.frequencyLabel),frequencies:k(e.frequencies,t.frequencies),submitText:n(e.submitText,t.submitText),finePrint:n(e.finePrint,t.finePrint),dismissText:n(e.dismissText,t.dismissText),emailInvalidText:n(e.emailInvalidText,t.emailInvalidText),submitErrorText:n(e.submitErrorText,t.submitErrorText),successHeading:n(e.successHeading,t.successHeading),successBody:n(e.successBody,t.successBody),keepBrowsingText:n(e.keepBrowsingText,t.keepBrowsingText),formSlug:typeof e.formSlug=="string"?e.formSlug.trim():t.formSlug,autoOpen:l(e.autoOpen,t.autoOpen),autoOpenDelaySec:a(e.autoOpenDelaySec,T,t.autoOpenDelaySec),trigger:s(L,e.trigger,t.trigger),scrollPercent:a(e.scrollPercent,A,t.scrollPercent),showOn:s(x,e.showOn,t.showOn),showOnPages:U(e.showOnPages),hideAfter:B(e),hideDays:a(e.hideDays,_,t.hideDays),formSide:s(y,e.formSide,t.formSide),valuePanelOnPhone:l(e.valuePanelOnPhone,t.valuePanelOnPhone),sectionAccent:e.sectionAccent,sectionCorners:e.sectionCorners,sectionCornerSides:e.sectionCornerSides,textStyles:p(e)}}export{_ as POPUP_DAYS_RANGE,T as POPUP_DELAY_RANGE,y as POPUP_FORM_SIDES,O as POPUP_HIDE_AFTER,A as POPUP_SCROLL_RANGE,x as POPUP_SHOW_ON,L as POPUP_TRIGGERS,o as SUBSCRIBE_POPUP_DEFAULTS,C as SUBSCRIBE_POPUP_KIND,G as SUBSCRIBE_POPUP_PAGE_TITLE,g as SUBSCRIBE_POPUP_SLUG,S as SYSTEM_PAGE_SLUGS,H as isSystemPageSlug,v as resolveSubscribeContent};
2
+ *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 — the {email} and {issue} tokens are substituted here.",keepBrowsingText:"Button label",autoOpen:!1,autoOpenDelaySec:15,formSlug:"",trigger:"delay",scrollPercent:50,showOn:"all",showOnPages:[],hideAfter:"days",hideDays:7,formSide:"right",valuePanelOnPhone:!1,sectionAccent:void 0,sectionCorners:void 0,sectionCornerSides:void 0,textStyles:{}},n=f,E=m,l=d,u=b;function s(r,e,t){return typeof e=="string"&&r.includes(e)?e:t}function a(r,e,t){const i=E(r,t);return Math.min(e.max,Math.max(e.min,Math.round(i)))}function B(r){return typeof r.hideAfter=="string"?s(O,r.hideAfter,o.hideAfter):r.oncePerSession===!0?"visit":r.oncePerSession===!1?"never":o.hideAfter}function U(r){return Array.isArray(r)?r.map(e=>typeof e=="string"?e.trim():"").filter(Boolean).map(e=>e.startsWith("/")?e:`/${e}`):[]}function c(r,e){if(r==null)return e;const t=i=>i.trim()?i:"";if(typeof r=="string")return t(r);if(typeof r=="object"&&"text"in r){const i=r.text;return typeof i=="string"?t(i):""}return e}function k(r,e){return Array.isArray(r)?u(r,[]):e}function I(r,e){return Array.isArray(r)?r.map(t=>{const i=t??{};return{label:n(i.label,""),value:n(i.value,"")}}).filter(t=>t.label||t.value):e}function v(r){const e=r??{},t=o;return{metaLabel:n(e.metaLabel,t.metaLabel),issueLabel:c(e.issueLabel,t.issueLabel),issueNumber:c(e.issueNumber,t.issueNumber),kicker:n(e.kicker,t.kicker),heading:n(e.heading,t.heading),deck:n(e.deck,t.deck),stats:I(e.stats,t.stats),formLabel:n(e.formLabel,t.formLabel),formHeading:n(e.formHeading,t.formHeading),formIntro:n(e.formIntro,t.formIntro),firstNameLabel:n(e.firstNameLabel,t.firstNameLabel),firstNamePlaceholder:n(e.firstNamePlaceholder,t.firstNamePlaceholder),emailLabel:n(e.emailLabel,t.emailLabel),emailPlaceholder:n(e.emailPlaceholder,t.emailPlaceholder),interestsLabel:n(e.interestsLabel,t.interestsLabel),interests:u(e.interests,t.interests),frequencyLabel:n(e.frequencyLabel,t.frequencyLabel),frequencies:k(e.frequencies,t.frequencies),submitText:n(e.submitText,t.submitText),finePrint:n(e.finePrint,t.finePrint),dismissText:n(e.dismissText,t.dismissText),emailInvalidText:n(e.emailInvalidText,t.emailInvalidText),submitErrorText:n(e.submitErrorText,t.submitErrorText),successHeading:n(e.successHeading,t.successHeading),successBody:n(e.successBody,t.successBody),keepBrowsingText:n(e.keepBrowsingText,t.keepBrowsingText),formSlug:typeof e.formSlug=="string"?e.formSlug.trim():t.formSlug,autoOpen:l(e.autoOpen,t.autoOpen),autoOpenDelaySec:a(e.autoOpenDelaySec,T,t.autoOpenDelaySec),trigger:s(L,e.trigger,t.trigger),scrollPercent:a(e.scrollPercent,A,t.scrollPercent),showOn:s(x,e.showOn,t.showOn),showOnPages:U(e.showOnPages),hideAfter:B(e),hideDays:a(e.hideDays,_,t.hideDays),formSide:s(y,e.formSide,t.formSide),valuePanelOnPhone:l(e.valuePanelOnPhone,t.valuePanelOnPhone),sectionAccent:e.sectionAccent,sectionCorners:e.sectionCorners,sectionCornerSides:e.sectionCornerSides,textStyles:p(e)}}export{_ as POPUP_DAYS_RANGE,T as POPUP_DELAY_RANGE,y as POPUP_FORM_SIDES,O as POPUP_HIDE_AFTER,A as POPUP_SCROLL_RANGE,x as POPUP_SHOW_ON,L as POPUP_TRIGGERS,o as SUBSCRIBE_POPUP_DEFAULTS,C as SUBSCRIBE_POPUP_KIND,G as SUBSCRIBE_POPUP_PAGE_TITLE,g as SUBSCRIBE_POPUP_SLUG,S as SYSTEM_PAGE_SLUGS,H as isSystemPageSlug,v as resolveSubscribeContent};
@@ -1 +1 @@
1
- import{jsx as e,Fragment as u,jsxs as p}from"react/jsx-runtime";import{useEffect as g,useState as M}from"react";import{MarkBar as S,markSelection as b,useCaretEdit as E}from"efficient-easel/copy";import{RevertIcon as L}from"efficient-easel/icons";import{applyShopMark as v,shopMarkedAt as j,shopMarkupTools as A,stripMarkup as z}from"../markup.js";function C({style:t}){const n=r=>e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.9,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:r});switch(t){case"bold":return n(e("path",{d:"M7 5h6.5a3.5 3.5 0 0 1 0 7H7zm0 7h7.5a3.5 3.5 0 0 1 0 7H7z"}));case"italic":return n(p(u,{children:[e("line",{x1:"10",y1:"5",x2:"19",y2:"5"}),e("line",{x1:"5",y1:"19",x2:"14",y2:"19"}),e("line",{x1:"14",y1:"5",x2:"10",y2:"19"})]}));case"strike":return n(p(u,{children:[e("path",{d:"M16.5 6.5A4.2 4.2 0 0 0 12.7 4.7C10 4.7 8.4 6 8.4 7.9c0 1.6 1.2 2.5 3.4 3.1"}),e("path",{d:"M7.6 17.4A4.4 4.4 0 0 0 11.7 19.3c2.8 0 4.5-1.4 4.5-3.4 0-1-.4-1.8-1.2-2.4"}),e("line",{x1:"4",y1:"12",x2:"20",y2:"12"})]}));case"highlight":return n(p(u,{children:[e("path",{d:"M14.5 4.5l5 5-8 8H6.5v-5z"}),e("line",{x1:"4",y1:"21",x2:"20",y2:"21"})]}));case"quiet":return n(p(u,{children:[e("path",{d:"M12 4.5l5.5 7.5L12 19.5 6.5 12z"}),e("line",{x1:"9.4",y1:"12",x2:"14.6",y2:"12"})]}));default:return null}}const H=["bold","italic","strike","highlight"],T=Object.fromEntries(H.map(t=>[t,e(C,{style:t},t)])),y="Clear formatting";function _(t,n,r){return b(t,n,r,v)}function D(t){const[n,r]=M(null);return g(()=>{const o=t.current?.ownerDocument??(typeof document>"u"?null:document);if(!o)return;const a=()=>{const s=t.current;if(!s||o.activeElement!==s)return;const i=s.selectionStart??s.value.length,d=s.selectionEnd??i;r(l=>l&&l.start===i&&l.end===d?l:{start:i,end:d})};return o.addEventListener("selectionchange",a),()=>o.removeEventListener("selectionchange",a)},[t]),[n,r]}function F({target:t,value:n,onChange:r,disabled:o=!1,label:a="Formatting"}){const s=E({target:t,onChange:r}),[i,d]=D(t),l=c=>s(k=>{const h=_(n,c,k);return d({start:h.selectionStart,end:h.selectionEnd}),h}),f=A(),m={};if(i)for(const c of f)m[c.style]=j(n,i.start,i.end,c.style);const x=z(n);return e(S,{tools:f,onApply:l,pressed:m,disabled:o,glyphs:T,ariaLabel:a,actions:e("button",{type:"button",className:"sf-markup-btn sf-markup-clear",onMouseDown:c=>c.preventDefault(),onClick:()=>r(x),disabled:o||x===n,title:y,"aria-label":y,children:e(L,{size:14})})})}var I=F;export{F as MarkupToolbar,I as default,_ as markSelection};
1
+ import{jsx as e,Fragment as u,jsxs as p}from"react/jsx-runtime";import{useEffect as g,useState as M}from"react";import{MarkBar as S,markSelection as E,useCaretEdit as L}from"efficient-easel/copy";import{RevertIcon as v}from"efficient-easel/icons";import{IconButton as b,Tooltip as j}from"efficient-shell/ui";import{applyShopMark as z,shopMarkedAt as A,shopMarkupTools as T,stripMarkup as C}from"../markup.js";function H({style:t}){const n=r=>e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.9,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:r});switch(t){case"bold":return n(e("path",{d:"M7 5h6.5a3.5 3.5 0 0 1 0 7H7zm0 7h7.5a3.5 3.5 0 0 1 0 7H7z"}));case"italic":return n(p(u,{children:[e("line",{x1:"10",y1:"5",x2:"19",y2:"5"}),e("line",{x1:"5",y1:"19",x2:"14",y2:"19"}),e("line",{x1:"14",y1:"5",x2:"10",y2:"19"})]}));case"strike":return n(p(u,{children:[e("path",{d:"M16.5 6.5A4.2 4.2 0 0 0 12.7 4.7C10 4.7 8.4 6 8.4 7.9c0 1.6 1.2 2.5 3.4 3.1"}),e("path",{d:"M7.6 17.4A4.4 4.4 0 0 0 11.7 19.3c2.8 0 4.5-1.4 4.5-3.4 0-1-.4-1.8-1.2-2.4"}),e("line",{x1:"4",y1:"12",x2:"20",y2:"12"})]}));case"highlight":return n(p(u,{children:[e("path",{d:"M14.5 4.5l5 5-8 8H6.5v-5z"}),e("line",{x1:"4",y1:"21",x2:"20",y2:"21"})]}));case"quiet":return n(p(u,{children:[e("path",{d:"M12 4.5l5.5 7.5L12 19.5 6.5 12z"}),e("line",{x1:"9.4",y1:"12",x2:"14.6",y2:"12"})]}));default:return null}}const _=["bold","italic","strike","highlight"],D=Object.fromEntries(_.map(t=>[t,e(H,{style:t},t)])),y="Clear formatting";function B(t,n,r){return E(t,n,r,z)}function F(t){const[n,r]=M(null);return g(()=>{const o=t.current?.ownerDocument??(typeof document>"u"?null:document);if(!o)return;const a=()=>{const s=t.current;if(!s||o.activeElement!==s)return;const i=s.selectionStart??s.value.length,d=s.selectionEnd??i;r(c=>c&&c.start===i&&c.end===d?c:{start:i,end:d})};return o.addEventListener("selectionchange",a),()=>o.removeEventListener("selectionchange",a)},[t]),[n,r]}function I({target:t,value:n,onChange:r,disabled:o=!1,label:a="Formatting"}){const s=L({target:t,onChange:r}),[i,d]=F(t),c=l=>s(k=>{const h=B(n,l,k);return d({start:h.selectionStart,end:h.selectionEnd}),h}),m=T(),f={};if(i)for(const l of m)f[l.style]=A(n,i.start,i.end,l.style);const x=C(n);return e(S,{tools:m,onApply:c,pressed:f,disabled:o,glyphs:D,ariaLabel:a,actions:e("span",{className:"sf-markup-clear",children:e(j,{content:y,children:e(b,{size:"sm",onMouseDown:l=>l.preventDefault(),onClick:()=>r(x),disabled:o||x===n,"aria-label":y,children:e(v,{size:14})})})})})}var P=I;export{I as MarkupToolbar,P as default,B as markSelection};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{StickyIcon as i}from"efficient-easel/icons";import{group as l,plainText as e,toggle as o,withOffPage as t}from"../../../controls.js";const y={fields:{tabs:{type:"array",label:"Tabs",arrayFields:{label:e("Label"),count:e("Count")},getItemSummary:a=>a?.label?`${a.label}${a.count?` \xB7 ${a.count}`:""}`:"Tab"},activeTab:t(e("Active tab","All")),_gLinks:l("Links"),links:{type:"array",label:"Right links",arrayFields:{label:e("Label"),href:t(e("Link"))},getItemSummary:a=>a?.label||"Link"},_gStyle:l("Style"),sticky:o("Stick under header",!0,r(i,{}))}};export{y as CategoryBarFields};
1
+ import{jsx as r}from"react/jsx-runtime";import{StickyIcon as i}from"efficient-easel/icons";import{group as l,plainText as e,toggle as o,withOffPage as t}from"../../../controls.js";const y={fields:{tabs:{type:"array",label:"Tabs",arrayFields:{label:e("Label"),count:e("Count")},getItemSummary:a=>a?.label?`${a.label}${a.count?` · ${a.count}`:""}`:"Tab"},activeTab:t(e("Active tab","All")),_gLinks:l("Links"),links:{type:"array",label:"Right links",arrayFields:{label:e("Label"),href:t(e("Link"))},getItemSummary:a=>a?.label||"Link"},_gStyle:l("Style"),sticky:o("Stick under header",!0,r(i,{}))}};export{y as CategoryBarFields};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{StylesIcon as i}from"efficient-easel/icons";import{copyText as n,group as t,plainText as s,select as u,text as e,textarea as a}from"../../../controls.js";import{CHART_PH as o}from"./render.js";const f={fields:{_gContent:t("Content"),eyebrow:e("Chip label",o.eyebrow),title:a("Heading",o.title),body:a("Body",""),items:{type:"array",label:"Data points",arrayFields:{label:n("Label"),value:s("Value")},defaultItemProps:{label:"",value:""},getItemSummary:l=>[l?.label,l?.value].filter(Boolean).join(" \xB7 ")||"Point"},caption:e("Caption","Illustrative example"),_gStyle:t("Style"),chartStyle:u("Chart style",r(i,{}),[{label:"Bars (comparison / funnel)",value:"bars"},{label:"Line (trend)",value:"line"},{label:"Donut (split of a whole)",value:"donut"}],"bars"),valueSuffix:e("Value suffix","%")}};export{f as ChartFields};
1
+ import{jsx as r}from"react/jsx-runtime";import{StylesIcon as i}from"efficient-easel/icons";import{copyText as n,group as t,plainText as s,select as u,text as e,textarea as a}from"../../../controls.js";import{CHART_PH as o}from"./render.js";const f={fields:{_gContent:t("Content"),eyebrow:e("Chip label",o.eyebrow),title:a("Heading",o.title),body:a("Body",""),items:{type:"array",label:"Data points",arrayFields:{label:n("Label"),value:s("Value")},defaultItemProps:{label:"",value:""},getItemSummary:l=>[l?.label,l?.value].filter(Boolean).join(" · ")||"Point"},caption:e("Caption","Illustrative example"),_gStyle:t("Style"),chartStyle:u("Chart style",r(i,{}),[{label:"Bars (comparison / funnel)",value:"bars"},{label:"Line (trend)",value:"line"},{label:"Donut (split of a whole)",value:"donut"}],"bars"),valueSuffix:e("Value suffix","%")}};export{f as ChartFields};