efficient-web-builder 6.0.0 → 7.1.1

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 (118) hide show
  1. package/CHANGELOG.md +238 -0
  2. package/README.md +42 -0
  3. package/dist/components/ApplyCornersToSiblings.js +1 -1
  4. package/dist/components/Banner.js +1 -1
  5. package/dist/components/BlockGapField.js +1 -1
  6. package/dist/components/BlogPostSource.js +1 -1
  7. package/dist/components/Breadcrumb.js +1 -1
  8. package/dist/components/CardShadowField.js +1 -1
  9. package/dist/components/CategoryBar.js +1 -1
  10. package/dist/components/ChatSettingsPanel.js +1 -1
  11. package/dist/components/ClearColoursDialog.js +1 -1
  12. package/dist/components/CornersField.js +1 -1
  13. package/dist/components/DocBody.js +5 -5
  14. package/dist/components/DuplicateToPageMenu.js +1 -1
  15. package/dist/components/FAQ.js +1 -1
  16. package/dist/components/Flex.js +1 -1
  17. package/dist/components/Footprint.js +3 -3
  18. package/dist/components/HeroImageField.js +1 -1
  19. package/dist/components/HeroSection.js +2 -2
  20. package/dist/components/HeroSingle.js +1 -1
  21. package/dist/components/HeroSlide.js +1 -1
  22. package/dist/components/HoverEffectField.js +1 -1
  23. package/dist/components/ImageFocusRow.js +1 -1
  24. package/dist/components/IntegrationsSection.js +1 -1
  25. package/dist/components/IntroBleed.js +1 -1
  26. package/dist/components/KeyFeatures.js +1 -1
  27. package/dist/components/LocationsGroupedField.js +1 -1
  28. package/dist/components/MediaUploadField.js +1 -1
  29. package/dist/components/MultiSelectField.js +1 -1
  30. package/dist/components/PagesPanel.js +1 -1
  31. package/dist/components/PartInkControl.js +1 -1
  32. package/dist/components/PartResetDot.js +1 -1
  33. package/dist/components/PartSettingsPanel.js +1 -1
  34. package/dist/components/PartTextBox.js +1 -1
  35. package/dist/components/PhotographyField.js +1 -1
  36. package/dist/components/ProcessSteps.js +1 -1
  37. package/dist/components/SearchSelectField.d.ts +1 -1
  38. package/dist/components/SearchSelectField.js +1 -1
  39. package/dist/components/SectionEditor.js +1 -1
  40. package/dist/components/SectionTextEntries.js +1 -1
  41. package/dist/components/SectionThemePicker.js +1 -1
  42. package/dist/components/Series.js +1 -1
  43. package/dist/components/ShadowColourField.js +1 -1
  44. package/dist/components/SideSpaceField.js +1 -1
  45. package/dist/components/SiteFields.js +1 -1
  46. package/dist/components/SiteWidthField.js +1 -1
  47. package/dist/components/SlotChildRows.js +1 -1
  48. package/dist/components/SocialLinksPanel.js +1 -1
  49. package/dist/components/SourceStatus.js +1 -1
  50. package/dist/components/SpecStrip.js +1 -1
  51. package/dist/components/Split.js +1 -1
  52. package/dist/components/StandaloneSectionEditor.js +1 -1
  53. package/dist/components/StatsParagraph.js +1 -1
  54. package/dist/components/StorefrontLinkField.js +1 -1
  55. package/dist/components/StylesPanel.js +1 -1
  56. package/dist/components/SwitchToBoxFooter.js +1 -1
  57. package/dist/components/Testimonials.js +1 -1
  58. package/dist/components/TextStyleRow.js +1 -1
  59. package/dist/components/TextStylesField.js +1 -1
  60. package/dist/components/ThemeCard.js +1 -1
  61. package/dist/components/ThemeColourField.js +1 -1
  62. package/dist/components/ThemeField.js +1 -1
  63. package/dist/components/TickerSection.js +1 -1
  64. package/dist/components/TickerSettingsPanel.js +1 -1
  65. package/dist/components/TitleWithButtons.js +1 -1
  66. package/dist/components/WebsiteScreenParts.js +1 -1
  67. package/dist/components/WebsiteSettingsPanel.js +1 -1
  68. package/dist/components/WidthFollowField.js +1 -1
  69. package/dist/components/preview-devices.js +1 -1
  70. package/dist/components/storefront-editor.css +93 -123
  71. package/dist/components/useLocationsTree.js +1 -1
  72. package/dist/lib/content/ink.d.ts +36 -0
  73. package/dist/lib/content/ink.js +1 -0
  74. package/dist/lib/content/section-surface.js +1 -1
  75. package/dist/lib/editor-words-catalogue.d.ts +1178 -0
  76. package/dist/lib/editor-words-catalogue.js +11 -0
  77. package/dist/lib/editor-words.d.ts +15 -0
  78. package/dist/lib/editor-words.js +1 -0
  79. package/dist/lib/links/link-picker-setup.js +1 -1
  80. package/dist/lib/page-rows.d.ts +8 -0
  81. package/dist/lib/page-rows.js +1 -0
  82. package/dist/lib/puck/ColourControl.js +1 -1
  83. package/dist/lib/puck/MarkupToolbar.js +1 -1
  84. package/dist/lib/puck/apply-card-corners.js +1 -1
  85. package/dist/lib/puck/blocks/general/Breadcrumb/render.js +1 -1
  86. package/dist/lib/puck/blocks/general/Cards/render.js +1 -1
  87. package/dist/lib/puck/blocks/general/CategoryBar/render.js +1 -1
  88. package/dist/lib/puck/blocks/general/Chart/render.js +2 -2
  89. package/dist/lib/puck/blocks/general/DocBody/render.js +1 -1
  90. package/dist/lib/puck/blocks/general/DocMasthead/render.js +1 -1
  91. package/dist/lib/puck/blocks/general/DocTabs/render.js +1 -1
  92. package/dist/lib/puck/blocks/general/FAQ/render.js +1 -1
  93. package/dist/lib/puck/blocks/general/Footprint/render.js +2 -2
  94. package/dist/lib/puck/blocks/general/KeyFeatures/render.js +1 -1
  95. package/dist/lib/puck/blocks/general/Logos/render.js +1 -1
  96. package/dist/lib/puck/blocks/general/Masthead/render.js +1 -1
  97. package/dist/lib/puck/blocks/general/OrderSummary/render.js +1 -1
  98. package/dist/lib/puck/blocks/general/PaymentBadges/render.js +1 -1
  99. package/dist/lib/puck/blocks/general/ProcessSteps/render.js +1 -1
  100. package/dist/lib/puck/blocks/general/Series/render.js +1 -1
  101. package/dist/lib/puck/blocks/general/StatsParagraph/render.js +1 -1
  102. package/dist/lib/puck/blocks/general/Testimonials/render.js +1 -1
  103. package/dist/lib/puck/blocks/general/Timeline/render.js +2 -2
  104. package/dist/lib/puck/blocks/general/TimelineTrack/render.js +1 -1
  105. package/dist/lib/puck/blocks/scaffold.js +1 -1
  106. package/dist/lib/puck/controls.js +1 -1
  107. package/dist/lib/puck/footer-block-row-name.js +1 -1
  108. package/dist/lib/puck/page-root-fields.js +1 -1
  109. package/dist/lib/puck/theme-swatches.js +1 -1
  110. package/dist/lib/source-rules/editor-words.d.ts +26 -0
  111. package/dist/lib/source-rules/editor-words.js +3 -0
  112. package/dist/lib/source-rules/mirrored-rows-agree.js +1 -1
  113. package/dist/lib/source-rules/part-style-naming.js +1 -1
  114. package/dist/lib/source-rules/support/label-extraction.js +2 -2
  115. package/dist/lib/theme-save-message.js +1 -1
  116. package/package.json +6 -5
  117. package/dist/components/HeadingAudit.d.ts +0 -1
  118. package/dist/components/HeadingAudit.js +0 -1
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as d,Fragment as ge}from"react/jsx-runtime";import{Fragment as q,useEffect as J,useRef as F}from"react";import{useTreeDrag as Q}from"efficient-easel/drag";import{ImageIcon as ye,TextLinesIcon as ke,TrashIcon as V}from"efficient-easel/icons";import{Subtree as X,TreeRow as L,TreeRowAction as Z,TreeSeam as b}from"efficient-easel/tree";import{decodeLocationPartId as ve,encodeLocationPartId as xe,usePreviewLocationPart as fe}from"./PreviewLocationPartContext.js";import{PUCK_MODE as he}from"./SectionEditor.js";import{useLocationsFocus as me,setLocationsFocus as p}from"../lib/puck/locations-focus.js";import{bucketsOf as ee,moveGroup as oe,moveCity as ne,addCity as Le,addGroup as Ie,deleteGroup as Pe,deleteCity as Ce,absCityIndex as te,groupLabelOf as Se,cardKey as re}from"../lib/puck/locations-tree.js";const ce="ContactLocations";function $e({size:c=13}){return d("svg",{width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[t("circle",{cx:"12",cy:"12",r:"9"}),t("path",{d:"M3 12h18M12 3c2.6 2.6 2.6 15.4 0 18M12 3c-2.6 2.6-2.6 15.4 0 18"})]})}function we({size:c=13}){return d("svg",{width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[t("path",{d:"M12 21s6-5 6-10a6 6 0 10-12 0c0 5 6 10 6 10z"}),t("circle",{cx:"12",cy:"11",r:"2"})]})}function Te({size:c=13}){return d("svg",{width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[t("path",{d:"M9 4 3 6.5v13L9 17l6 3 6-2.5v-13L15 7z"}),t("path",{d:"M9 4v13M15 7v13"})]})}const $=c=>({parentId:`locations-${c}`,slot:"groups"}),O=(c,y)=>({parentId:`locations-${c}`,slot:`cities:${y}`});function _e(c,y){const{readOnly:I,selected:P}=y,v=y.data?.content??[],le=c.kind===he.kind,w=F(null);J(()=>{const o=P?.type===ce?String(P.props.id):null;o&&o!==w.current&&p({level:"groups"}),w.current=o},[P?.props.id]);const{selectedLocationPartId:se,setSelectedLocationPartId:G,setSelectHandler:j}=fe(),l=me(),g=(o,e)=>{const r=v[o];r&&y.replace(o,{type:r.type,props:{...r.props,locations:e}})},f=o=>{const e=v[o]?.props?.locations;return Array.isArray(e)?e:[]},A=Q({keyOf:o=>`group:${o.si}:${o.index}`,readOnly:!!I,canDrop:(o,e)=>e.parentId===$(o.si).parentId&&e.slot==="groups",onDrop:(o,e)=>{g(o.si,oe(f(o.si),o.index,e.index)),l.level==="city"&&p({level:"groups"})},onStep:(o,e)=>{g(o.si,oe(f(o.si),o.index,e<0?o.index-1:o.index+2)),l.level==="city"&&p({level:"groups"})}}),T=Q({keyOf:o=>`city:${o.si}:${o.group}:${o.index}`,readOnly:!!I,canDrop:(o,e)=>e.parentId===$(o.si).parentId&&e.slot.startsWith("cities:"),onDrop:(o,e)=>{const r=e.slot.slice(7);g(o.si,ne(f(o.si),o.group,o.index,r,e.index)),p({level:"group",key:r})},onStep:(o,e)=>{g(o.si,ne(f(o.si),o.group,o.index,o.group,e<0?o.index-1:o.index+2)),l.level==="city"&&p({level:"group",key:o.group})}}),N=F(v);N.current=v;const R=F(()=>{});J(()=>{j(o=>{const e=ve(o);if(!e)return;const r=N.current.findIndex(C=>C.props?.id===e.nodeId);r<0||R.current(r,{level:e.part,index:e.index})})},[j]);const s=(o,e)=>{w.current=v[o]?.props?.id??null,y.select(o),p(e),c.reveal();const r=v[o]?.props?.id;typeof r=="string"&&(e.level==="image"||e.level==="map")?G(xe(r,e.index,e.level)):G(null),typeof r=="string"&&y.scrollTo(r)};return R.current=s,{renderLocationTree:(o,e,{rowClick:r,isCollapsed:C,toggleCollapse:z})=>{const x=f(e),ie=ee(x),h=String(o.props.id),m=le&&P?.props.id===h,_=n=>t(b,{...I?{}:A.seam({place:{...$(e),index:n}})},`seam:${h}:groups:${n}`),B=(n,u)=>t(b,{...I?{}:T.seam({place:{...O(e,n),index:u}})},`seam:${h}:cities:${n}:${u}`);return d(ge,{children:[t(L,{icon:t(ke,{size:13}),name:"Texts",onSelect:()=>s(e,{level:"texts"}),selected:m&&l.level==="texts",rowProps:{onClick:r(()=>s(e,{level:"texts"}))}}),ie.map((n,u)=>{const D=`${h}::grp::${n.key}`,E=C(D),ae=m&&l.level==="group"&&l.key===n.key,W=Se(n.key,n.name),K={...O(e,n.key),index:n.cards.length},H=T.row({item:{si:e,group:n.key,index:-1},place:K,into:K,canDrag:!1},{onClick:r(()=>s(e,{level:"group",key:n.key}))}),S=A.row({item:{si:e,index:u},place:{...$(e),index:u}},H.rowProps);return d(q,{children:[u===0&&_(0),t(L,{icon:t($e,{size:13}),name:W,onSelect:()=>s(e,{level:"group",key:n.key}),selected:ae,draggable:S.draggable,dragging:S.dragging,drop:S.drop??H.drop,fold:{open:!E,label:"group",onToggle:()=>z(D)},actions:t(Z,{kind:"delete",label:`Delete ${W} group (${n.cards.length} ${n.cards.length===1?"city":"cities"})`,onClick:()=>{g(e,Pe(x,n.key)),p({level:"groups"})},children:t(V,{size:15})}),rowProps:S.rowProps,children:t("span",{className:"es-group-count",children:n.cards.length})}),!E&&d(X,{children:[n.cards.map((k,a)=>{const i=te(x,n.key,a),de=m&&l.level==="city"&&l.index===i,M=String(k?.name??"")||"City",U=`${h}::city::${re(k)}`,Y=C(U),{rowProps:pe,...ue}=T.row({item:{si:e,group:n.key,index:a},place:{...O(e,n.key),index:a}},{onClick:r(()=>s(e,{level:"city",index:i}))});return d(q,{children:[a===0&&B(n.key,0),t(L,{icon:t(we,{size:13}),name:M,onSelect:()=>s(e,{level:"city",index:i}),selected:de,...ue,fold:{open:!Y,label:M,onToggle:()=>z(U)},actions:t(Z,{kind:"delete",label:`Delete ${M}`,onClick:()=>{g(e,Ce(x,n.key,a)),p({level:"group",key:n.key})},children:t(V,{size:15})}),rowProps:pe}),!Y&&d(X,{children:[t(L,{icon:t(ye,{size:13}),name:"Image",onSelect:()=>s(e,{level:"image",index:i}),selected:m&&l.level==="image"&&l.index===i,rowProps:{onClick:r(()=>s(e,{level:"image",index:i}))}}),t(L,{icon:t(Te,{size:13}),name:"Map",onSelect:()=>s(e,{level:"map",index:i}),selected:m&&l.level==="map"&&l.index===i,rowProps:{onClick:r(()=>s(e,{level:"map",index:i}))}})]}),B(n.key,a+1)]},re(k))}),d("button",{type:"button",className:"sf-add-card",onClick:()=>{const k=Le(x,n.key);g(e,k);const a=ee(k).find(i=>i.key===n.key);p(a&&a.cards.length?{level:"city",index:te(k,n.key,a.cards.length-1)}:{level:"group",key:n.key})},children:[t("span",{className:"sf-plus sf-plus--sm",children:"+"}),"Add city"]})]}),_(u+1)]},D)}),d("button",{type:"button",className:"sf-add-card",onClick:()=>{const{cards:n,key:u}=Ie(x);g(e,n),s(e,{level:"group",key:u})},children:[t("span",{className:"sf-plus sf-plus--sm",children:"+"}),"Add group"]})]})},sectionPressed:o=>{o?.type===ce&&p({level:"groups"})}}}export{ce as LOCATIONS_TYPE,_e as useLocationsTree};
1
+ "use client";import{jsx as t,jsxs as d,Fragment as ke}from"react/jsx-runtime";import{Fragment as Q,useEffect as V,useRef as G}from"react";import{useTreeDrag as X}from"efficient-easel/drag";import{ImageIcon as me,TextLinesIcon as ve,TrashIcon as Z}from"efficient-easel/icons";import{Subtree as b,TreeRow as I,TreeRowAction as ee,TreeSeam as oe}from"efficient-easel/tree";import{useEaselStrings as xe}from"efficient-easel/strings";import{decodeLocationPartId as fe,encodeLocationPartId as he,usePreviewLocationPart as Le}from"./PreviewLocationPartContext.js";import{PUCK_MODE as we}from"./SectionEditor.js";import{say as g,sayCount as Ie}from"../lib/editor-words.js";import{useLocationsFocus as Pe,setLocationsFocus as p}from"../lib/puck/locations-focus.js";import{bucketsOf as ne,moveGroup as te,moveCity as re,addCity as Ce,addGroup as Se,deleteGroup as $e,deleteCity as Te,absCityIndex as ce,groupLabelOf as De,cardKey as se}from"../lib/puck/locations-tree.js";const le="ContactLocations";function Me({size:c=13}){return d("svg",{width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[t("circle",{cx:"12",cy:"12",r:"9"}),t("path",{d:"M3 12h18M12 3c2.6 2.6 2.6 15.4 0 18M12 3c-2.6 2.6-2.6 15.4 0 18"})]})}function Fe({size:c=13}){return d("svg",{width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[t("path",{d:"M12 21s6-5 6-10a6 6 0 10-12 0c0 5 6 10 6 10z"}),t("circle",{cx:"12",cy:"11",r:"2"})]})}function Oe({size:c=13}){return d("svg",{width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[t("path",{d:"M9 4 3 6.5v13L9 17l6 3 6-2.5v-13L15 7z"}),t("path",{d:"M9 4v13M15 7v13"})]})}const T=c=>({parentId:`locations-${c}`,slot:"groups"}),j=(c,k)=>({parentId:`locations-${c}`,slot:`cities:${k}`});function He(c,k){const{readOnly:P,selected:C}=k,f=xe().tree,v=k.data?.content??[],ie=c.kind===we.kind,D=G(null);V(()=>{const o=C?.type===le?String(C.props.id):null;o&&o!==D.current&&p({level:"groups"}),D.current=o},[C?.props.id]);const{selectedLocationPartId:ae,setSelectedLocationPartId:A,setSelectHandler:N}=Le(),s=Pe(),y=(o,e)=>{const r=v[o];r&&k.replace(o,{type:r.type,props:{...r.props,locations:e}})},h=o=>{const e=v[o]?.props?.locations;return Array.isArray(e)?e:[]},R=X({keyOf:o=>`group:${o.si}:${o.index}`,readOnly:!!P,canDrop:(o,e)=>e.parentId===T(o.si).parentId&&e.slot==="groups",onDrop:(o,e)=>{y(o.si,te(h(o.si),o.index,e.index)),s.level==="city"&&p({level:"groups"})},onStep:(o,e)=>{y(o.si,te(h(o.si),o.index,e<0?o.index-1:o.index+2)),s.level==="city"&&p({level:"groups"})}}),M=X({keyOf:o=>`city:${o.si}:${o.group}:${o.index}`,readOnly:!!P,canDrop:(o,e)=>e.parentId===T(o.si).parentId&&e.slot.startsWith("cities:"),onDrop:(o,e)=>{const r=e.slot.slice(7);y(o.si,re(h(o.si),o.group,o.index,r,e.index)),p({level:"group",key:r})},onStep:(o,e)=>{y(o.si,re(h(o.si),o.group,o.index,o.group,e<0?o.index-1:o.index+2)),s.level==="city"&&p({level:"group",key:o.group})}}),z=G(v);z.current=v;const _=G(()=>{});V(()=>{N(o=>{const e=fe(o);if(!e)return;const r=z.current.findIndex(S=>S.props?.id===e.nodeId);r<0||_.current(r,{level:e.part,index:e.index})})},[N]);const l=(o,e)=>{D.current=v[o]?.props?.id??null,k.select(o),p(e),c.reveal();const r=v[o]?.props?.id;typeof r=="string"&&(e.level==="image"||e.level==="map")?A(he(r,e.index,e.level)):A(null),typeof r=="string"&&k.scrollTo(r)};return _.current=l,{renderLocationTree:(o,e,{rowClick:r,isCollapsed:S,toggleCollapse:B})=>{const x=h(e),de=ne(x),L=String(o.props.id),w=ie&&C?.props.id===L,E=n=>t(oe,{...P?{}:R.seam({place:{...T(e),index:n}})},`seam:${L}:groups:${n}`),W=(n,u)=>t(oe,{...P?{}:M.seam({place:{...j(e,n),index:u}})},`seam:${L}:cities:${n}:${u}`);return d(ke,{children:[t(I,{icon:t(ve,{size:13}),name:g("Texts"),words:f,onSelect:()=>l(e,{level:"texts"}),selected:w&&s.level==="texts",rowProps:{onClick:r(()=>l(e,{level:"texts"}))}}),de.map((n,u)=>{const F=`${L}::grp::${n.key}`,K=S(F),pe=w&&s.level==="group"&&s.key===n.key,U=n.name||n.key?De(n.key,n.name):g("Ungrouped"),H={...j(e,n.key),index:n.cards.length},Y=M.row({item:{si:e,group:n.key,index:-1},place:H,into:H,canDrag:!1},{onClick:r(()=>l(e,{level:"group",key:n.key}))}),$=R.row({item:{si:e,index:u},place:{...T(e),index:u}},Y.rowProps);return d(Q,{children:[u===0&&E(0),t(I,{icon:t(Me,{size:13}),name:U,words:f,onSelect:()=>l(e,{level:"group",key:n.key}),selected:pe,draggable:$.draggable,dragging:$.dragging,drop:$.drop??Y.drop,fold:{open:!K,label:g("group"),onToggle:()=>B(F)},actions:t(ee,{kind:"delete",label:Ie("Delete {label} group ({n} city)","Delete {label} group ({n} cities)",n.cards.length,{label:U}),onClick:()=>{y(e,$e(x,n.key)),p({level:"groups"})},children:t(Z,{size:15})}),rowProps:$.rowProps,children:t("span",{className:"es-group-count",children:n.cards.length})}),!K&&d(b,{children:[n.cards.map((m,a)=>{const i=ce(x,n.key,a),ue=w&&s.level==="city"&&s.index===i,O=String(m?.name??"")||g("City"),q=`${L}::city::${se(m)}`,J=S(q),{rowProps:ge,...ye}=M.row({item:{si:e,group:n.key,index:a},place:{...j(e,n.key),index:a}},{onClick:r(()=>l(e,{level:"city",index:i}))});return d(Q,{children:[a===0&&W(n.key,0),t(I,{icon:t(Fe,{size:13}),name:O,words:f,onSelect:()=>l(e,{level:"city",index:i}),selected:ue,...ye,fold:{open:!J,label:O,onToggle:()=>B(q)},actions:t(ee,{kind:"delete",label:g("Delete {name}",{name:O}),onClick:()=>{y(e,Te(x,n.key,a)),p({level:"group",key:n.key})},children:t(Z,{size:15})}),rowProps:ge}),!J&&d(b,{children:[t(I,{icon:t(me,{size:13}),name:g("Image"),words:f,onSelect:()=>l(e,{level:"image",index:i}),selected:w&&s.level==="image"&&s.index===i,rowProps:{onClick:r(()=>l(e,{level:"image",index:i}))}}),t(I,{icon:t(Oe,{size:13}),name:g("Map"),words:f,onSelect:()=>l(e,{level:"map",index:i}),selected:w&&s.level==="map"&&s.index===i,rowProps:{onClick:r(()=>l(e,{level:"map",index:i}))}})]}),W(n.key,a+1)]},se(m))}),d("button",{type:"button",className:"sf-add-card",onClick:()=>{const m=Ce(x,n.key);y(e,m);const a=ne(m).find(i=>i.key===n.key);p(a&&a.cards.length?{level:"city",index:ce(m,n.key,a.cards.length-1)}:{level:"group",key:n.key})},children:[t("span",{className:"sf-plus sf-plus--sm",children:"+"}),g("Add city")]})]}),E(u+1)]},F)}),d("button",{type:"button",className:"sf-add-card",onClick:()=>{const{cards:n,key:u}=Se(x);y(e,n),l(e,{level:"group",key:u})},children:[t("span",{className:"sf-plus sf-plus--sm",children:"+"}),g("Add group")]})]})},sectionPressed:o=>{o?.type===le&&p({level:"groups"})}}}export{le as LOCATIONS_TYPE,He as useLocationsTree};
@@ -0,0 +1,36 @@
1
+ export declare const SECTION_PALETTE: readonly [{
2
+ readonly role: "bg";
3
+ readonly token: "--bg";
4
+ readonly ink: false;
5
+ }, {
6
+ readonly role: "fg";
7
+ readonly token: "--fg";
8
+ readonly ink: true;
9
+ }, {
10
+ readonly role: "surface";
11
+ readonly token: "--site-surface";
12
+ readonly ink: false;
13
+ }, {
14
+ readonly role: "surface-2";
15
+ readonly token: "--site-surface-2";
16
+ readonly ink: false;
17
+ }, {
18
+ readonly role: "line";
19
+ readonly token: "--site-line";
20
+ readonly ink: true;
21
+ }, {
22
+ readonly role: "muted";
23
+ readonly token: "--fg-dim";
24
+ readonly ink: true;
25
+ }];
26
+ type PaletteEntry = (typeof SECTION_PALETTE)[number];
27
+ type InkEntry = Extract<PaletteEntry, {
28
+ ink: true;
29
+ }>;
30
+ export declare const INK: readonly InkEntry[];
31
+ export type InkRole = InkEntry["role"];
32
+ export type InkSource = Readonly<Record<InkRole, string>>;
33
+ export declare function inkStyle(source: InkSource): Record<string, string>;
34
+ export declare const ON_MEDIA_INK: InkSource;
35
+ export declare const ON_MEDIA_INK_STYLE: Readonly<Record<string, string>>;
36
+ export {};
@@ -0,0 +1 @@
1
+ const n=[{role:"bg",token:"--bg",ink:!1},{role:"fg",token:"--fg",ink:!0},{role:"surface",token:"--site-surface",ink:!1},{role:"surface-2",token:"--site-surface-2",ink:!1},{role:"line",token:"--site-line",ink:!0},{role:"muted",token:"--fg-dim",ink:!0}],l=n.filter(e=>e.ink);function i(e){const r={color:e.fg};for(const{role:o,token:t}of l)r[t]=e[o];return r}const f={fg:"var(--overlay-fg)",line:"color-mix(in srgb, var(--overlay-fg) 24%, transparent)",muted:"color-mix(in srgb, var(--overlay-fg) 76%, transparent)"},s=Object.freeze(i(f));export{l as INK,f as ON_MEDIA_INK,s as ON_MEDIA_INK_STYLE,n as SECTION_PALETTE,i as inkStyle};
@@ -1 +1 @@
1
- const a=-1,c="sf-section-accent",o="Color",E=new Set(["CategoryBar","DocTabs"]),f=new Set(["Flex"]),n=0;function r(e){return e===-1?null:typeof e=="number"&&Number.isInteger(e)&&e>=0?e:n}function u(e){return e??-1}function s(e){const t=`--theme-preset-${e}`;return{"--sf-sec-accent":`var(${t}-accent)`,"--sf-sec-accent-2":`var(${t}-accent-2)`,"--sf-sec-accent-ink":`var(${t}-accent-ink)`,"--sf-sec-bg":`var(${t}-bg, var(--theme-bg))`,"--sf-sec-fg":`var(${t}-fg, var(--theme-fg))`,"--sf-sec-surface":`var(${t}-surface, var(--theme-surface))`,"--sf-sec-surface-2":`var(${t}-surface-2, var(--theme-surface-2))`,"--sf-sec-line":`var(${t}-line, var(--theme-line))`,"--sf-sec-muted":`var(${t}-muted, var(--theme-muted))`}}function T(e){const t=r(e.sectionAccent);return t===null?null:{className:c,style:s(t)}}export{c as SECTION_ACCENT_CLASS,n as SECTION_ACCENT_DEFAULT,a as SECTION_ACCENT_INHERIT,E as SECTION_THEME_EXCLUDED,o as SECTION_THEME_GROUP_LABEL,f as SECTION_THEME_NESTED_READING,u as nestedAccentValue,r as resolveSectionAccent,s as sectionAccentVars,T as sectionThemeWrap};
1
+ import{SECTION_PALETTE as o}from"./ink.js";const r=-1,s="sf-section-accent",C="Color",f=new Set(["CategoryBar","DocTabs"]),i=new Set(["Flex"]),E=0;function a(e){return e===r?null:typeof e=="number"&&Number.isInteger(e)&&e>=0?e:E}function l(e){return e??r}function T(e){const t=`--theme-preset-${e}`,c={"--sf-sec-accent":`var(${t}-accent)`,"--sf-sec-accent-2":`var(${t}-accent-2)`,"--sf-sec-accent-ink":`var(${t}-accent-ink)`};for(const{role:n}of o)c[`--sf-sec-${n}`]=`var(${t}-${n}, var(--theme-${n}))`;return c}function p(e){const t=a(e.sectionAccent);return t===null?null:{className:s,style:T(t)}}export{s as SECTION_ACCENT_CLASS,E as SECTION_ACCENT_DEFAULT,r as SECTION_ACCENT_INHERIT,f as SECTION_THEME_EXCLUDED,C as SECTION_THEME_GROUP_LABEL,i as SECTION_THEME_NESTED_READING,l as nestedAccentValue,a as resolveSectionAccent,T as sectionAccentVars,p as sectionThemeWrap};