efficient-easel 27.0.0 → 27.2.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 (143) hide show
  1. package/dist/AddSidePanel-DoCx-ZrM.d.ts +1994 -0
  2. package/dist/{ScreenDocumentContext-DPW_6gOC.d.ts → ScreenDocumentContext-JQr4hTeP.d.ts} +7 -5
  3. package/dist/blocks/index.d.ts +1 -1
  4. package/dist/canvas/index.d.ts +2 -1
  5. package/dist/canvas/index.js +1 -1
  6. package/dist/chrome/index.js +1 -1
  7. package/dist/{chunk-PVBDKBJB.js → chunk-2EEYFRQM.js} +1 -1
  8. package/dist/{chunk-W3UZNKGS.js → chunk-2Y4CAWZQ.js} +4 -4
  9. package/dist/{chunk-CWELHADJ.js → chunk-3OOYGEJY.js} +1 -1
  10. package/dist/{chunk-BFJAEQZ6.js → chunk-3RGHXL5V.js} +1 -1
  11. package/dist/{chunk-JIP5JNRB.js → chunk-5HYVOOH3.js} +1 -1
  12. package/dist/chunk-64NREOML.js +1 -0
  13. package/dist/chunk-6GJEOER4.js +1 -0
  14. package/dist/{chunk-6ATIYLUL.js → chunk-6V6LC7QV.js} +1 -1
  15. package/dist/{chunk-KO47WAWR.js → chunk-7YXWWMBM.js} +1 -1
  16. package/dist/{chunk-GR3XRILS.js → chunk-A5USZ6Z6.js} +1 -1
  17. package/dist/{chunk-Y2T3JX7K.js → chunk-ANBPE45L.js} +1 -1
  18. package/dist/{chunk-KFWNGPW3.js → chunk-C63IB4VW.js} +5 -5
  19. package/dist/chunk-DCBUJ36Q.js +5 -0
  20. package/dist/{chunk-SQTVXE5D.js → chunk-DQSRGKSM.js} +18 -18
  21. package/dist/{chunk-YYD257TD.js → chunk-G7J6SGMF.js} +1 -1
  22. package/dist/chunk-HGTDDSFJ.js +19 -0
  23. package/dist/chunk-I4Z75MCX.js +1 -0
  24. package/dist/{chunk-AAZIMKLQ.js → chunk-JI7GUM3C.js} +1 -1
  25. package/dist/{chunk-QZJKWKGH.js → chunk-JUJEVGLY.js} +1 -1
  26. package/dist/{chunk-K53PQAMP.js → chunk-LDHUPZBK.js} +1 -1
  27. package/dist/{chunk-JQQFB7EZ.js → chunk-LK56FUFT.js} +1 -1
  28. package/dist/chunk-M5UCPD66.js +1 -0
  29. package/dist/{chunk-ZFEAWEFS.js → chunk-MMHYTIUY.js} +3 -3
  30. package/dist/{chunk-SBVIW3KJ.js → chunk-MTWQYLJE.js} +1 -1
  31. package/dist/chunk-OB4KI2AN.js +2 -0
  32. package/dist/{chunk-5OWAV3MH.js → chunk-OSF2H3LO.js} +1 -1
  33. package/dist/{chunk-TYTMUHUK.js → chunk-PTTQWCD7.js} +1 -1
  34. package/dist/{chunk-3XECMGXX.js → chunk-QEEW4X64.js} +1 -1
  35. package/dist/chunk-SDSBXW3V.js +26 -0
  36. package/dist/{chunk-76MUJIZE.js → chunk-SR2535CN.js} +17 -17
  37. package/dist/{chunk-QTHQPJWA.js → chunk-TF6NAIV7.js} +1 -1
  38. package/dist/{chunk-6EDVZBUO.js → chunk-TQUEVJOO.js} +1 -1
  39. package/dist/chunk-UMTUKSE6.js +1 -0
  40. package/dist/chunk-VNUXFD4X.js +1 -0
  41. package/dist/{chunk-VBEVZZTV.js → chunk-VTY7OQB5.js} +11 -11
  42. package/dist/{chunk-5JNVMCCB.js → chunk-XGTO4LHI.js} +1 -1
  43. package/dist/{chunk-YES5F7OS.js → chunk-XV5D4V2T.js} +1 -1
  44. package/dist/chunk-YCYGY54I.js +8 -0
  45. package/dist/chunk-YDTEYXQW.js +1 -0
  46. package/dist/chunk-ZSP4ZAQ2.js +64 -0
  47. package/dist/copy/index.js +11 -11
  48. package/dist/data/index.d.ts +2 -1
  49. package/dist/data/index.js +1 -1
  50. package/dist/drag/index.js +1 -1
  51. package/dist/easel/index.d.ts +1 -1
  52. package/dist/easel/index.js +1 -1
  53. package/dist/edit-lock/index.js +1 -1
  54. package/dist/fields/fields.css +8 -0
  55. package/dist/fields/index.d.ts +47 -3
  56. package/dist/fields/index.js +1 -1
  57. package/dist/node-ops/index.js +1 -1
  58. package/dist/phone-order-CRKvsTsz.d.ts +141 -0
  59. package/dist/screen/components/AddBlockRow.js +1 -1
  60. package/dist/screen/components/AddSidePanel.d.ts +3 -5
  61. package/dist/screen/components/AddSidePanel.js +1 -1
  62. package/dist/screen/components/NodeContextMenu.d.ts +3 -5
  63. package/dist/screen/components/NodeContextMenu.js +1 -1
  64. package/dist/screen/components/PageEditGuardNotices.js +1 -1
  65. package/dist/screen/components/SaveControls.d.ts +3 -5
  66. package/dist/screen/components/SaveControls.js +1 -1
  67. package/dist/screen/components/ScreenChrome.js +1 -1
  68. package/dist/screen/components/ScreenDocumentContext.d.ts +2 -2
  69. package/dist/screen/components/ScreenDocumentContext.js +1 -1
  70. package/dist/screen/components/ScreenMount.d.ts +3 -5
  71. package/dist/screen/components/ScreenMount.js +1 -1
  72. package/dist/screen/components/ScreenStoreProvider.d.ts +3 -5
  73. package/dist/screen/components/ScreenStoreProvider.js +1 -1
  74. package/dist/screen/components/SectionScreenShell.js +17 -17
  75. package/dist/screen/components/SidePanelHead.js +1 -1
  76. package/dist/screen/components/panel-widths.js +1 -1
  77. package/dist/screen/components/usePartBridge.d.ts +3 -5
  78. package/dist/screen/components/usePartBridge.js +1 -1
  79. package/dist/screen/index.d.ts +3 -5
  80. package/dist/screen/index.js +1 -1
  81. package/dist/screen/lib/admin-bridge.d.ts +1 -1
  82. package/dist/screen/lib/document/add-target-types.d.ts +37 -55
  83. package/dist/screen/lib/document/block-set-host.js +1 -1
  84. package/dist/screen/lib/document/block-size-fields.d.ts +2 -2
  85. package/dist/screen/lib/document/block-size-fields.js +1 -1
  86. package/dist/screen/lib/document/block-types-in.js +1 -1
  87. package/dist/screen/lib/document/box-fields.d.ts +2 -2
  88. package/dist/screen/lib/document/box-fields.js +1 -1
  89. package/dist/screen/lib/document/button-fields.d.ts +2 -2
  90. package/dist/screen/lib/document/button-fields.js +1 -1
  91. package/dist/screen/lib/document/image-fields.d.ts +2 -2
  92. package/dist/screen/lib/document/image-fields.js +5 -5
  93. package/dist/screen/lib/document/new-child.d.ts +58 -0
  94. package/dist/screen/lib/document/new-child.js +1 -0
  95. package/dist/screen/lib/document/palette-sections.d.ts +3 -5
  96. package/dist/screen/lib/document/section-doc.d.ts +1 -1
  97. package/dist/screen/lib/document/section-doc.js +1 -1
  98. package/dist/screen/lib/document/shadow-fields.d.ts +2 -2
  99. package/dist/screen/lib/document/shadow-fields.js +2 -2
  100. package/dist/screen/lib/document/slot-section-spec.d.ts +37 -96
  101. package/dist/screen/lib/document/style-clipboard.d.ts +3 -5
  102. package/dist/screen/lib/document/style-clipboard.js +1 -1
  103. package/dist/screen/lib/document/style-fields.d.ts +2 -2
  104. package/dist/screen/lib/document/style-fields.js +1 -1
  105. package/dist/screen/lib/document/use-section-ops.d.ts +1 -1
  106. package/dist/screen/lib/document/use-section-ops.js +1 -1
  107. package/dist/screen/lib/document-addressing.d.ts +2 -2
  108. package/dist/screen/lib/document-hooks.d.ts +1 -1
  109. package/dist/screen/lib/document-switch.js +1 -1
  110. package/dist/screen/lib/failure.js +1 -1
  111. package/dist/screen/lib/host-inbound.js +1 -1
  112. package/dist/screen/lib/host.d.ts +2 -2
  113. package/dist/screen/lib/key-scope.js +1 -1
  114. package/dist/screen/lib/media-panel.d.ts +2 -2
  115. package/dist/screen/lib/media-picker.d.ts +2 -2
  116. package/dist/screen/lib/media-picker.js +1 -1
  117. package/dist/screen/lib/page-lock.d.ts +1 -1
  118. package/dist/screen/lib/page-lock.js +1 -1
  119. package/dist/screen/lib/screen-parts.d.ts +21 -1828
  120. package/dist/screen/lib/screen-parts.js +1 -1
  121. package/dist/screen/lib/section-templates.d.ts +1 -1
  122. package/dist/screen/lib/session-context.d.ts +1 -1
  123. package/dist/screen/lib/session.d.ts +1 -1
  124. package/dist/screen/lib/shared-sections.d.ts +1 -1
  125. package/dist/strings/index.d.ts +1 -1
  126. package/dist/strings/index.js +2 -2
  127. package/dist/style-clipboard/index.js +1 -1
  128. package/dist/text-styles/index.js +27 -27
  129. package/dist/{words-CFkb8XtN.d.ts → words-dNm6REMa.d.ts} +21 -0
  130. package/package.json +7 -1
  131. package/dist/chunk-2262JGFV.js +0 -5
  132. package/dist/chunk-3W2O22DZ.js +0 -19
  133. package/dist/chunk-DAKKPW2Z.js +0 -1
  134. package/dist/chunk-EUFDQ4KL.js +0 -1
  135. package/dist/chunk-FW35PCK7.js +0 -1
  136. package/dist/chunk-HG65R6IN.js +0 -20
  137. package/dist/chunk-JACEEVVF.js +0 -1
  138. package/dist/chunk-L2WK5JYB.js +0 -2
  139. package/dist/chunk-L7PSERQH.js +0 -8
  140. package/dist/chunk-NTG5ODKZ.js +0 -1
  141. package/dist/chunk-O4OWODU2.js +0 -64
  142. package/dist/chunk-TOKMFZPB.js +0 -1
  143. package/dist/resolve-Bz4mszpL.d.ts +0 -57
@@ -1 +0,0 @@
1
- import{useEaselSession as e}from"./chunk-YM4UEGBV.js";import{useHostEscape as n}from"./chunk-LX23TCTP.js";import{DEFAULT_SCREEN_WORDS as t}from"./chunk-G2VZ4DET.js";import{styleMenuItems as o}from"./chunk-CWELHADJ.js";import{ROOT_ZONE as l}from"./chunk-TCAAOYQY.js";import{repeatCopyAt as r}from"./chunk-JQQFB7EZ.js";import{easelMenuEntries as i,menuLabel as c}from"./chunk-FIVU2COQ.js";import{createNodeClipboard as s,nodeMenuItems as a}from"./chunk-P5VYGWYO.js";import{DEFAULT_NODE_MENU_WORDS as u}from"./chunk-WK3AFPXY.js";import{useCanvasEvent as d}from"./chunk-TOKMFZPB.js";import{isTypingTarget as p,framePointToHost as f}from"./chunk-FR7EEKFF.js";import{zoneKey as m,ROOT_SLOT as y,ROOT_ID as h}from"./chunk-EUFDQ4KL.js";import{useState as k,useCallback as b,useRef as v,useEffect as x}from"react";import{ContextMenu as g}from"efficient-shell/ui";import{TrashIcon as w,AddIcon as C,MoveUpIcon as O,MoveDownIcon as z,UndoIcon as P,RedoIcon as A,PasteIcon as E,StylesIcon as j,LayersIcon as D,CopyIcon as K}from"efficient-shell/icons/efficient";import{jsx as M}from"react/jsx-runtime";function T(e,n){const t=[],o=/* @__PURE__ */new Set;let r={zone:n.zone,index:n.index};for(;r;){const n=e.nodeAt(r.zone,r.index);if(!n||o.has(n.props.id))break;if(o.add(n.props.id),t.push({zone:r.zone,index:r.index,node:n,parentType:null}),r.zone===l)break;const i=r.zone.lastIndexOf(":");if(i<=0)break;r=e.locate(r.zone.slice(0,i))}for(let e=0;e<t.length-1;e+=1)t[e].parentType=t[e+1].node.type;return t}var L=s(),I=/* @__PURE__ */new WeakMap;function Y(e){if(e.claimsPage)return L;const n=e.registry;if(!n)return e.cache("easel:node-clipboard",s);let t=I.get(n);return t||(t=s(),I.set(n,t)),t}function F(){return Y(e())}function S(e,n,t){if(n===l){const{floor:n,cap:o}=e.sectionBand();return{parentId:h,slot:y,index:Math.min(Math.max(t,n),o)}}const o=n.lastIndexOf(":");return{parentId:n.slice(0,o),slot:n.slice(o+1),index:t}}function B(e,n,t){const o=e.isPinned(n,t),l=!o&&!e.isLocked(n)&&!e.duplicateBlocked(n),r=e.permits?.(n)??{duplicate:!0,delete:!0};return{copy:!o&&r.duplicate,cut:l&&r.duplicate&&r.delete,delete:l&&r.delete}}function X(e,n,t){const o=e.canPasteAt;if(!o)return m(n.from)===t.zone?S(e,t.zone,t.index+1):null;for(const l of T(e,t)){const t=S(e,l.zone,l.index+1);if(o(n,t))return t}return null}function R(e){if(e.defaultPrevented||e.altKey||e.shiftKey)return null;if(p(e.target))return null;const n=e.target,t=n&&"ownerDocument"in n?n.ownerDocument??n:null,o=t?.getSelection?.();if(o&&!o.isCollapsed&&o.toString().trim())return null;if(!e.metaKey&&!e.ctrlKey)return"Delete"===e.key?"delete":null;const l=e.code||(1===e.key.length?`Key${e.key.toUpperCase()}`:"");return"KeyC"===l?"copy":"KeyX"===l?"cut":"KeyV"===l?"paste":null}function V(e,n,t,o){const l=e.nodeAt(t.zone,t.index);if(!l)return null;const r=l.props.id,i=e.labelOf(l.type,t.zone),c=B(e,l,t.zone);if("copy"===n)return c.copy?(e.nodeOps.copy(r,i),{done:"copied",name:i}):null;if(o.readOnly)return null;if("cut"===n)return c.cut?(e.nodeOps.cut(r,i),{done:"cut",name:i}):null;if("delete"===n)return c.delete?(e.nodeOps.remove(r),{done:"deleted",name:i}):null;const s=o.held;if(!s)return null;const a=e.isPinned(l,t.zone)?null:X(e,s,t);return a?(e.nodeOps.paste(a),{done:"pasted",name:s.label}):(e.onPasteRefused(s),{done:"refused",name:s.label})}function U(e,n){const{zone:t,index:r}=n,i=e.nodeAt(t,r);if(!i)return[];const c=i.props.id,s=e.labelOf(i.type,t),u=Boolean(i.props._hidden),d=e.nodeOps,p=e.isPinned(i,t),f=e.isLocked(i),m=!p&&!f&&!e.duplicateBlocked(i),y=e.permits?.(i)??{duplicate:!0,delete:!0},h=B(e,i,t),k=T(e,n),b=d.held,v=b&&!p?X(e,b,n):null,x=!e.readOnly,g=e.style?o({held:x?e.style.held():null,canCopy:e.style.canCopy(i,t),onCopy:()=>e.style?.copy(i,t),onPaste:()=>e.style?.paste(t,r,i),words:e.words?.styleClipboard}):[];return a({title:s,words:e.words?.menu,layer:{group:"pick",items:k.flatMap((n,t)=>{const o={label:e.rowNameOf(n.node,n.zone),checked:0===t,onClick:()=>e.selectAt(n.zone,n.index,n.node.props.id,n.parentType)},r=n.zone===l?null:e.slotRung?.(n.zone)??null;return r?[o,{label:r.label,checked:!1,onClick:r.select}]:[o]})},actions:{duplicate:x&&m&&y.duplicate?()=>d.duplicate(c):void 0,...N(x&&!p,e=>d.canStep(c,e),e=>d.step(c,e)),copy:h.copy?()=>d.copy(c,s):void 0,cut:x&&h.cut?()=>d.cut(c,s):void 0,paste:x&&b&&v?{label:b.label,run:()=>d.paste(v)}:void 0,rename:x&&e.renamePropOf(i,t)?()=>e.beginRename(t,r):void 0,hide:!x||f||p?void 0:{hidden:u,run:()=>d.setProps(c,{_hidden:!u})},delete:x&&m&&y.delete?()=>d.remove(c):void 0},style:g,extras:Z(x?Q(e,n.copy):null,e.menuRows?.(i,t,r)),pinnedLine:p?W(e).pinned:void 0})}function Q(e,n){const o=e.copyItem;if(!o||!n)return null;const l=W(e),r=t.menu,i=e=>l[e]??r[e]??"",c={ownerId:n.ownerId,slot:n.slot,index:n.index,...n.outer?{outer:n.outer}:{}},s=e=>()=>o({...c,action:e});return{make:[{label:i("itemAddAfter"),icon:/* @__PURE__ */M(C,{}),onClick:s("addAfter")},{label:i("itemMoveEarlier"),icon:/* @__PURE__ */M(O,{}),onClick:s("moveEarlier"),disabled:n.index<=0},{label:i("itemMoveLater"),icon:/* @__PURE__ */M(z,{}),onClick:s("moveLater"),disabled:n.index>=n.count-1}],remove:[{label:i("itemDelete"),icon:/* @__PURE__ */M(w,{}),danger:!0,onClick:s("delete")}]}}function Z(e,n){if(!e)return n??void 0;if(!n)return e;return Object.fromEntries(["pick","make","change","remove"].map(t=>[t,[...e[t]??[],...n[t]??[]]]).filter(([,e])=>e.length>0))}function N(e,n,t){return e?{moveUp:n(-1)?()=>t(-1):null,moveDown:n(1)?()=>t(1):null}:{}}var W=e=>e.words?.screen??t.menu;function G(e){const n=W(e),o=!e.readOnly,r=[];o&&e.history.hasPast&&r.push({label:n.undo,icon:/* @__PURE__ */M(P,{}),shortcut:"⌘Z",onClick:e.history.back}),o&&e.history.hasFuture&&r.push({label:n.redo,icon:/* @__PURE__ */M(A,{}),shortcut:"⇧⌘Z",onClick:e.history.forward});const i=[],c=e.nodeOps.held,s=S(e,l,e.sectionBand().cap);if(o&&c&&(e.canPasteAt?e.canPasteAt(c,s):m(c.from)===l)){const n=s,t=e.words?.menu??u;i.push({label:t.pasteNamed({paste:t.paste,label:c.label}),icon:/* @__PURE__ */M(E,{}),shortcut:"⌘V",onClick:()=>e.nodeOps.paste(n)})}const a=[r,i,[...e.openPageStyles?[{label:e.pageStylesLabel??t.pageStyles,icon:/* @__PURE__ */M(j,{}),onClick:e.openPageStyles}]:[],{label:n.collapseAll,icon:/* @__PURE__ */M(D,{}),onClick:e.collapseAll}]].filter(e=>e.length>0),d={label:"—",onClick:()=>{}};return a.flatMap((e,n)=>n?[d,...e]:e)}function J(e,n){const t=n.selectionStart??0,o=n.selectionEnd??0,l=n.value.slice(t,o),r=e=>{n.focus(),n.setRangeText(e,t,o,"end"),n.dispatchEvent(new Event("input",{bubbles:!0}))},i=e.words?.menu??u,c=W(e),s=[];l&&(s.push({label:i.copy,icon:/* @__PURE__ */M(K,{}),shortcut:"⌘C",onClick:()=>navigator.clipboard?.writeText(l)}),s.push({label:i.cut,icon:/* @__PURE__ */M(K,{}),shortcut:"⌘X",onClick:()=>{navigator.clipboard?.writeText(l),r("")}})),s.push({label:i.paste,icon:/* @__PURE__ */M(E,{}),shortcut:"⌘V",onClick:()=>{navigator.clipboard?.readText().then(e=>{e&&r(e)}).catch(()=>e.onPasteRefused())}});const a=[s,n.value?[{label:c.selectAll,shortcut:"⌘A",onClick:()=>{n.focus(),n.select()}}]:[]].filter(e=>e.length>0),d={label:"—",onClick:()=>{}};return a.flatMap((e,n)=>n?[d,...e]:e)}function _(e){return e.shiftKey}function H(e,t){const[o,l]=k(null),i=b(()=>l(null),[]);n(null!==o,i);const c=v(e);c.current=e;const s=b(e=>{const n=c.current,t=n.keys;if(!t)return;const o=R(e);if(!o)return;const l=t.selected();if(!l)return;const r=V(n,o,l,{readOnly:t.readOnly,held:t.held()});r&&(e.preventDefault(),t.onDone?.(r))},[]),a=e.keys?.target??null;x(()=>{if(!a)return;const e=e=>s(e);return a.addEventListener("keydown",e),()=>a.removeEventListener("keydown",e)},[a,s]),d(t,"keydown",s);const u=b(n=>{if(_(n))return;const t=n.target;if(t?.closest?.("[data-slot-zone]"))return n.preventDefault(),void l(null);const o=function(e){const n=e?.closest?.("input, textarea");return n&&("INPUT"!==n.tagName||["text","search","url","email","tel","number",""].includes(n.type))?n:null}(t);if(o)return n.preventDefault(),void l({kind:"input",x:n.clientX,y:n.clientY,el:o,owner:t});const r=t?.closest?.("[data-node-id]")?.getAttribute("data-node-id"),i=r?e.locate(r):null;n.preventDefault(),l(i?{kind:"node",x:n.clientX,y:n.clientY,...i,owner:t}:{kind:"empty",x:n.clientX,y:n.clientY,owner:t})},[e]);d(t,"contextmenu",n=>{if(_(n)||!t)return;const o=n.target?.closest?.("[data-easel-block]")??null,i=o?.getAttribute("data-easel-block"),c=i?e.locate(i):null;n.preventDefault();const s=f(t.frame,n.clientX,n.clientY),a=t.frame,u=o?r(o):null;l(c?{kind:"node",...s,...c,copy:u,owner:a}:{kind:"empty",...s,owner:a})}),d(t,"mousedown",i),d(t,"scroll",i,{on:"window"});return{onEditorContextMenu:u,menu:o?/* @__PURE__ */M($,{host:e,target:o,onClose:i}):null,closeMenu:i}}function $({host:e,target:n,onClose:t}){const o="node"===n.kind?U(e,n):"input"===n.kind?J(e,n.el):G(e);return 0===o.length?null:/* @__PURE__ */M(g,{at:{x:n.x,y:n.y},owner:n.owner??null,onClose:t,"aria-label":c(o),items:i(o)})}export{L as EASEL_NODE_CLIPBOARD,T as ancestorChain,Y as nodeClipboardOf,B as nodeClipboardRules,U as nodeMenuItems,R as nodeShortcut,G as pageMenuItems,X as pastePlace,V as runNodeShortcut,J as textMenuItems,F as useNodeClipboard,H as useNodeContextMenu};
@@ -1,64 +0,0 @@
1
- import{markedTreeNodeId as e,revealSelectedTreeRow as n,sameSelector as t}from"./chunk-UMBNBCL4.js";import{cloneNodeWithFreshIds as o}from"./chunk-OXZDSOZV.js";import{dedupeSlotChildren as r}from"./chunk-7OCEPOEJ.js";import{styleClipboardOf as i}from"./chunk-FW35PCK7.js";import{scrollPreviewToSection as l,gotoPreviewSlide as s}from"./chunk-LUOY3A3Q.js";import{useEaselKeyTarget as d,useEaselUndoKeys as a,useEaselSaveKey as c,editorRootFocus as p}from"./chunk-BFJAEQZ6.js";import{SlotChildActionsProvider as u}from"./chunk-KCBEE2MC.js";import{screenStorageKeys as f,DEFAULT_PANEL_W as h,clampPanelWidth as m}from"./chunk-6EDVZBUO.js";import{usePartBridge as g}from"./chunk-5OWAV3MH.js";import{useSectionOps as y}from"./chunk-TYTMUHUK.js";import{PageEditGuardNotices as b}from"./chunk-YES5F7OS.js";import{ScreenSaveIcon as v,ScreenMainButton as k}from"./chunk-PVBDKBJB.js";import{useBrowserOffline as S}from"./chunk-RKTF5XLP.js";import{useScreenDocument as w}from"./chunk-L2WK5JYB.js";import{requestMediaPick as x}from"./chunk-JIP5JNRB.js";import{AddChildRow as z}from"./chunk-5545A3PC.js";import{AddSidePanel as C}from"./chunk-L7PSERQH.js";import{keepsSharedSections as O,sharedSectionsOf as B}from"./chunk-N3MJOHAG.js";import{PanelHideButton as N,SidePanelHead as I,PanelShowStrip as P}from"./chunk-SBVIW3KJ.js";import{offeredChoices as $}from"./chunk-RUQOIQWI.js";import{useScreenSaveSwitch as M,useScreenNodeKeys as T,useScreenPinned as j,useScreenDocumentLabel as E,useScreenCanvasFrame as L,useScreenInspectorPanel as A,useScreenDevices as R,useScreenPickFollowsSelection as F,useScreenLeftView as D,SELECTION_MODE as V,isSelectionMode as W,sameInspectorMode as H,useScreenBridges as U,useScreenBlockRules as J,useScreenBlockLook as Y,useScreenStorageNamespace as K,useScreenNotify as X,useScreenCanvasHead as G,isSlotMode as Q,useScreenStyleClipboard as Z,useScreenDocumentPass as _,useScreenCanvasDrag as q,ScreenCanvasTargetProvider as ee,isPinnedFirst as ne,isPinnedLast as te,screenSlotsOf as oe,shownChildSlotsOf as re}from"./chunk-2262JGFV.js";import{MediaPopup as ie}from"./chunk-T2RINM7R.js";import{useMediaPanel as le,usePanelPick as se,useMediaBrowsing as de,useOpenMediaBrowse as ae,useMediaPlace as ce}from"./chunk-NCXYC7WI.js";import{useNodeClipboard as pe,useNodeContextMenu as ue}from"./chunk-NTG5ODKZ.js";import{useEaselSession as fe}from"./chunk-YM4UEGBV.js";import{useEaselHost as he,useHostEscape as me}from"./chunk-LX23TCTP.js";import{LayersIcon as ge,MediaIcon as ye}from"./chunk-XFYFKITX.js";import{DEFAULT_SCREEN_WORDS as be}from"./chunk-G2VZ4DET.js";import{heldStyle as ve,styleShortcut as ke}from"./chunk-CWELHADJ.js";import{DEFAULT_STYLE_CLIPBOARD_WORDS as Se}from"./chunk-6WY6ZXJG.js";import{rootRowName as we,slotChildRowName as xe,slotChildRenameProp as ze,sectionRenameProp as Ce}from"./chunk-5NHQ452C.js";import{ROOT_ZONE as Oe,blockNodeActions as Be,TREE_MAX_DEPTH as Ne,childSlotsOf as Ie,slotFieldsOf as Pe,newNodeId as $e,slotChildrenIn as Me,nestsInTree as Te}from"./chunk-TCAAOYQY.js";import{useEasel as je,useEaselApi as Ee,useSettledAction as Le,subscribeLateWrites as Ae,CanvasPartsContext as Re,partHasOwnBox as Fe,CanvasPassThroughContext as De,CanvasSharedContext as Ve}from"./chunk-3W2O22DZ.js";import{TreeRow as We,Subtree as He,LayersTree as Ue,TreeGroupLabel as Je,TreeRowAction as Ye,TreeSeam as Ke}from"./chunk-WHS6Y55E.js";import{DEFAULT_TREE_WORDS as Xe}from"./chunk-K56YDHYQ.js";import{DEFAULT_NODE_MENU_WORDS as Ge}from"./chunk-WK3AFPXY.js";import{toItemSelector as Qe,useNodeOps as Ze,clickPick as _e}from"./chunk-QTHQPJWA.js";import{EaselTopBar as qe,EaselIconButton as en,TopBarCluster as nn,DeviceSwitch as tn,InspectorIconButton as on,PanelResizeHandle as rn,MAX_PANEL_W as ln,MIN_PANEL_W_BY_SIDE as sn,panelWidthVars as dn}from"./chunk-VBEVZZTV.js";import{DEFAULT_NOTICE_WORDS as an,DEFAULT_CHROME_WORDS as cn}from"./chunk-AJSDWWJW.js";import{holderOf as pn,nameOrSomeone as un}from"./chunk-YYD257TD.js";import{DEFAULT_LOCK_WORDS as fn}from"./chunk-RE4LP46F.js";import{useWords as hn}from"./chunk-MFIRYGHW.js";import{insertSeams as mn,CanvasDragLayer as gn,CanvasInsert as yn}from"./chunk-SQTVXE5D.js";import{DEFAULT_DRAG_WORDS as bn}from"./chunk-TQ5Y6S2X.js";import{createDragSession as vn,useTreeDrag as kn,gapToMoveIndex as Sn}from"./chunk-3XECMGXX.js";import{useCanvasFrame as wn,LIST_SELECTOR as xn,BLOCK_SELECTOR as zn,useCanvasTyping as Cn,useCanvasEvent as On}from"./chunk-TOKMFZPB.js";import{nodeIdAt as Bn,frameRectToHost as Nn,BLOCK_ATTRIBUTE as In,drawnBox as Pn}from"./chunk-FR7EEKFF.js";import{queryMainCopy as $n}from"./chunk-7UFKEX72.js";import{ROOT_ID as Mn,ROOT_SLOT as Tn,zoneKey as jn,parseZoneKey as En,find as Ln,DataError as An}from"./chunk-EUFDQ4KL.js";import{useRef as Rn,useMemo as Fn,useState as Dn,useEffect as Vn,useCallback as Wn,useLayoutEffect as Hn,useContext as Un,Fragment as Jn,useId as Yn}from"react";import{ColoredBadge as Kn,Button as Xn,Tabs as Gn,toast as Qn,readMediaFileDrag as Zn,Tooltip as _n,groupColors as qn,Dialog as et,FormField as nt,Input as tt,MEDIA_FILE_DRAG_TYPE as ot}from"efficient-shell/ui";import{UndoIcon as rt,RedoIcon as it,RefreshIcon as lt,AddIcon as st,TrashIcon as dt,EyeOffIcon as at,EyeIcon as ct,SharedIcon as pt,DuplicateIcon as ut}from"efficient-shell/icons/efficient";import{jsx as ft,jsxs as ht,Fragment as mt}from"react/jsx-runtime";var gt="media-file";function yt({name:e,onMake:n,onCancel:t}){const o=hn("screen",be).shared,[r,i]=Dn(e),[l,s]=Dn(!1),d=Yn(),a=Rn(null),c=async()=>{const e=r.trim();if(e&&!l){s(!0);try{await n(e)}finally{s(!1)}}};/* @__PURE__ */
2
- return ft(et,{open:!0,size:"sm",title:o.makeShared,description:o.makeSharedHint,onClose:t,initialFocus:a,footer:/* @__PURE__ */ht(mt,{children:[
3
- /* @__PURE__ */ft(Xn,{variant:"secondary",onClick:t,children:o.cancel}),
4
- /* @__PURE__ */ft(Xn,{variant:"primary",loading:l,disabled:!r.trim(),onClick:()=>{c()},children:o.makeShared})]}),children:/* @__PURE__ */ft("form",{onSubmit:e=>{e.preventDefault(),c()},children:/* @__PURE__ */ft(nt,{label:o.name,htmlFor:d,children:/* @__PURE__ */ft(tt,{id:d,ref:a,value:r,onChange:e=>i(e.target.value)})})})})}var bt=/* @__PURE__ */new WeakSet;function vt(e,n,t){const o=Ln(e,n,t);if(!o)return null;const r=o.path.find(e=>"root"!==e.parentId);return r?r.parentId:t}function kt(e,n,t){const o=o=>o>=t.left&&o+e.width<=t.left+t.width&&n.every(n=>n.right<=o||n.left>=o+e.width||n.bottom<=e.top||n.top>=e.top+e.height);if(n.every(n=>n.right<=e.left||n.left>=e.left+e.width||n.bottom<=e.top||n.top>=e.top+e.height))return e.left;const r=n.map(e=>e.right+4).filter(n=>n>e.left&&o(n));if(r.length)return Math.min(...r);const i=n.map(n=>n.left-4-e.width).filter(n=>n<e.left&&o(n));return i.length?Math.max(...i):e.left}function St({canvas:e,tabs:n,onSelect:t,onPointer:o}){const r=Rn(null),[i,l]=Dn({}),s=Rn({id:null,places:{},measure:null});s.current.places=i;const d=!(null===s.current.id||n.some(e=>e.id===s.current.id)&&i[s.current.id]);Vn(()=>{d&&(s.current.id=null,o(null))},[d,o]),Vn(()=>()=>{null!==s.current.id&&o(null)},[o]);const a=n.map(e=>`${e.id}:${e.below?1:0}:${e.label}:${e.reach??""}`).join("|");return Hn(()=>{const t=e?.document,o=e?.window,i=e?.frame;if(!t||!o||!i||0===n.length)return void l(e=>0===Object.keys(e).length?e:{});let d=0;const a=()=>{d=0;const e=r.current;if(!e)return;const a=Nn(i,{left:0,top:0,width:o.innerWidth,height:o.innerHeight},e),p={};let u=!1;const f=e.getBoundingClientRect(),h=[...e.parentElement?.querySelectorAll(".es-canvas-handle.is-shown:not(.is-dragging), .es-canvas-tag, .es-canvas-hint")??[]].map(e=>{const n=e.getBoundingClientRect();return{left:n.left-f.left,top:n.top-f.top,right:n.right-f.left,bottom:n.bottom-f.top}});for(const r of n){const n=o.CSS?.escape?o.CSS.escape(r.id):JSON.stringify(r.id).slice(1,-1),l=$n(t,`[${In}="${n}"]`),d=l?Pn(l):null;if(!d||0===d.height){p[r.id]=null;continue}const c=Nn(i,{left:d.left,top:d.top,width:d.width,height:d.height},e),f=c.top+c.height;if(f<a.top||c.top>a.top+a.height){p[r.id]=null;continue}const m=r.below?f+4:Math.max(c.top,a.top)+6,g=e.querySelector(`[data-band-tab="${n}"]`);g||(u=!0);const y=Math.max(c.left,a.left)+6,b=g?.offsetHeight??0,v=g?.offsetWidth??0,k=s.current.id===r.id?s.current.places[r.id]:null,S=k?k.left:kt({left:y,top:m,width:v,height:b},h,a);v>0&&b>0&&h.push({left:S,top:m,right:S+v,bottom:m+b}),p[r.id]={left:S,top:m}}l(e=>function(e,n){const t=Object.keys(e);return t.length===Object.keys(n).length&&t.every(t=>{const o=e[t],r=n[t];return o===r||!!o&&!!r&&o.left===r.left&&o.top===r.top})}(e,p)?e:p),u&&c()},c=()=>{d||(d=o.requestAnimationFrame(a))};s.current.measure=c,a(),o.addEventListener("scroll",c,!0),o.addEventListener("resize",c);const p=new o.MutationObserver(c);p.observe(t.body,{childList:!0,subtree:!0,attributes:!0});const u=r.current?.parentElement,f=u?.ownerDocument.defaultView?.MutationObserver,h=f?new f(c):null;return u&&h?.observe(u,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style"]}),()=>{d&&o.cancelAnimationFrame(d),o.removeEventListener("scroll",c,!0),o.removeEventListener("resize",c),p.disconnect(),h?.disconnect(),s.current.measure=null}},[e,a]),/* @__PURE__ */ft("div",{ref:r,className:"es-band-tabs","aria-hidden":"true",children:n.map(e=>{const n=i[e.id];return n?/* @__PURE__ */ft("span",{className:"es-band-tab","data-band-tab":e.id,style:{left:n.left,top:n.top},onMouseEnter:()=>{s.current.id=e.id,o(e.id)},onMouseLeave:()=>{s.current.id=null,o(null),s.current.measure?.()},onClick:n=>{n.stopPropagation(),t(e.id)},children:e.reach?
5
- /* @__PURE__ */ft(_n,{content:e.reach,children:/* @__PURE__ */ht(Kn,{colorClass:qn("success","solid"),size:"sm",children:[
6
- /* @__PURE__ */ft("span",{className:"es-band-tab-mark",children:/* @__PURE__ */ft(pt,{size:12})}),e.label]})}):/* @__PURE__ */ft(Kn,{colorClass:qn("info","solid"),size:"sm",children:e.label})},e.id):null})})}function wt({expand:e}){/* @__PURE__ */
7
- return ft("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.9,strokeLinecap:"round",strokeLinejoin:"round",children:/* @__PURE__ */ht(mt,e?{children:[
8
- /* @__PURE__ */ft("path",{d:"M8 9l4-4 4 4"}),
9
- /* @__PURE__ */ft("path",{d:"M8 15l4 4 4-4"})]}:{children:[
10
- /* @__PURE__ */ft("path",{d:"M8 4l4 4 4-4"}),
11
- /* @__PURE__ */ft("path",{d:"M8 20l4-4 4 4"}),
12
- /* @__PURE__ */ft("path",{d:"M5 12h14"})]})})}var xt=`${xn}, ${zn}`;function zt(e,n,t){const o=t-n;if(o<6)return null;if(o<24)return{top:Math.round((n+t)/2),height:Math.round(o)};return{top:Math.round(Math.min(Math.max(e,n+12),t-12))}}var Ct="__rungs",Ot=e=>"template"===e.kind?e.template.id:"shared"===e.kind?e.section.id:"preset"===e.kind?e.preset.key:e.type;var Bt="screen:band",Nt={duplicate:!0,delete:!0},It=()=>null;function Pt(){const xn=he(),Nn=xn.panels?.Toolbar,In=(xn.panels?.useRight??It)(),{target:Pn,docId:Yn,capabilities:_n,currentSlug:qn,siteId:et,onPublish:nt,saveState:tt,saveConflict:pt,retrySave:kt,toggleAutoSave:Pt,flushSave:$t,access:Mt,saveUnreachable:Tt=!1,readOnly:jt,readOnlyReason:Et=null}=w(),Lt=M(),At=T(),{mediaEditing:Rt,hasEditGuard:Ft,hasPinnedChrome:Dt}=_n,{appState:Vt,dispatch:Wt,history:Ht,selectedItem:Ut,getSelectorForId:Jt,config:Yt}=je(e=>e),Kt=j(),{first:Xt,firstGroup:Gt,lastGroup:Qt,isSectionGroup:Zt,sectionGroupZone:_t,panelOf:qt}=Kt,eo=qt(Xt),no=e=>ne(Kt,e),to=e=>te(Kt,e),oo="node"===Kt.firstRow,ro=Kt.band??null,io=hn("screen",be),lo=hn("tree",Xe),so=hn("drag",bn),ao=hn("notice",an),co=hn("lock",fn),po=hn("menu",Ge),uo=hn("styleClipboard",Se),fo=hn("chrome",cn),ho=E()??`/${qn}`,mo=L(),go=A(),yo=y({readOnly:jt}),bo=y({readOnly:jt,foldIntoHistory:!0}),vo=Rn(null),ko=Ee(),So=Fn(()=>({...yo,select:e=>{vo.current=e,yo.select(e)},commitDocument:(e,n)=>{if(void 0!==n){const t=ko.config;vo.current=Qe(e,t,n)}yo.commitDocument(e,n)}}),[yo,ko]),wo=Vt.ui,xo=wo.leftSideBarVisible,zo=wo.rightSideBarVisible,{options:Co,widths:Oo,initial:Bo,fluid:No,fit:Io}=R(),[Po,$o]=Dn(Bo),Mo=le(),To=Rt&&null!==Mo;se(),de();const jo=ae();F(Ut?.props.id);const{read:Eo,write:Lo,forSelection:Ao}=D(),[Ro,Fo]=Dn(Eo);Vn(()=>{Lo(Ro)},[Ro]);const[Do,Vo]=Dn(0),Wo=Rn(null),Ho=Rn(null),Uo=wn(Ho,{readySelector:xt}),Jo=Cn(Uo),Yo=d(Ho);a(Ho,Uo);const Ko=S(),Xo=pn(Mt),Go={state:tt,offline:Ko||tt.failed&&Tt,readOnlyReason:Et,editing:Xo?ao.editing({name:un(Xo.name,co),noun:io.noun}):null,conflict:null!=pt,notSaving:io.bar.notSaving},Qo=Le({onPress:()=>{jt||(tt.failed?kt():$t())}}).onPress;c(Ho,Uo,Qo);const[Zo,_o]=Dn(!1),qo=Rn(!1),[er,nr]=Dn(null),[tr,or]=Dn([]),[rr,ir]=Dn(V);W(rr);const lr=e(rr,Ut?.props.id),[sr,dr]=Dn(null);Vn(()=>{sr&&(n(),dr(null))},[sr]);const ar=Rn(Jt);ar.current=Jt;const cr=Wn((e,{scroll:n})=>{Fo(n=>Ao(e,n)),n&&dr(e);const t=[];let o=e;for(let e=0;e<4;e++){const e=ar.current(o)?.zone;if(!e||!e.includes(":"))break;const n=e.split(":")[0];t.push(n),t.push(e),o=n}0!==t.length&&Dr(e=>{if(t.every(n=>!e.has(n)))return e;const n=new Set(e);return t.forEach(e=>n.delete(e)),n})},[]),pr=Rn(null);Vn(()=>{const e=pr.current;pr.current=null;const n=null==Ut?.props.id?null:String(Ut.props.id);ir(t=>e&&e.id===n?e.mode:"part"===t.kind&&"nodeId"in t&&t.nodeId===n?t:qt(Ut?.type)??V);const o=Ut?.props.id,r=vo.current;if(vo.current=null,!o)return;const i=Jt(o);cr(String(o),{scroll:!t(r,i??null,Oe)})},[Ut?.props.id,cr]);const ur=Wn(e=>{ir(n=>H(n,e)?n:e),Wt({type:"setUi",ui:{rightSideBarVisible:!0}})},[Wt]),fr=Rn(()=>{});fr.current=(e,n)=>{const t=e?Ai(e.zone??Oe)[e.index]?.props.id:null,o=null==t?null:String(t),r=null==Ut?.props.id?null:String(Ut.props.id);ir(e=>H(e,n)?e:n),o!==r&&(pr.current={id:o,mode:n},So.select(e))};const hr=Wn((e,n)=>fr.current(e,n),[]),mr={kind:rr.kind,mode:rr,open:ur,show:e=>ir(e),reveal:()=>{zo||Wt({type:"setUi",ui:{rightSideBarVisible:!0}})},select:hr},gr=U(mr,{data:Vt.data,selected:Ut??null,zoneOf:e=>Jt(e)?.zone,readOnly:Boolean(jt),select:e=>{ir(V),So.select({index:e})},replace:(e,n)=>So.replaceComponent(Oe,e,n),scrollTo:e=>l(e)},{device:Po,refreshes:Do},{setView:Fo,reveal:()=>{xo||Wt({type:"setUi",ui:{leftSideBarVisible:!0}})}}),yr=gr.resolveLeftView?gr.resolveLeftView(Ro):"sections",br=J(),{isLockedBlock:vr,duplicateBlocked:kr,nestDepth:Sr,newSectionNode:wr,canAddTo:xr,blockIsOffered:zr}=br,Cr=e=>({id:String(e.props.id??""),data:Vt?.data}),Or=Y(),{labelAtLevel:Br,Icon:Nr,useProducts:Ir}=Or,Pr=Or.rowName?(e,n,t)=>Or.rowName(e,n,t):void 0,$r=Wn(e=>{Wt({type:"setUi",ui:{rightSideBarVisible:!0}}),l(e),cr(e,{scroll:!0})},[Wt,cr]),{selectNode:Mr,openPartId:Tr}=g({mode:rr,setMode:ir,onOpenPart:$r}),[jr,Er]=Dn(null);me(null!==jr,()=>Er(null));const Lr=f(K()),Ar=Lr.collapsed,Rr=Lr.panelWidths,[Fr,Dr]=Dn(()=>{if("undefined"==typeof window)/* @__PURE__ */return new Set;try{const e=window.localStorage.getItem(Ar);return new Set(e?JSON.parse(e):[])}catch{/* @__PURE__ */
13
- return new Set}});Vn(()=>{try{window.localStorage.setItem(Ar,JSON.stringify([...Fr]))}catch{}},[Fr]);const[Vr,Wr]=Dn(()=>{if("undefined"==typeof window)return{...h};try{const e=window.localStorage.getItem(Rr);if(!e)return{...h};const n=JSON.parse(e);return{left:m(Number(n.left)||h.left,"left"),right:m(Number(n.right)||h.right,"right")}}catch{return{...h}}});Vn(()=>{const e=setTimeout(()=>{try{window.localStorage.setItem(Rr,JSON.stringify(Vr))}catch{}},300);return()=>clearTimeout(e)},[Vr]);const Hr=Wn((e,n)=>Wr(t=>{const o="function"==typeof n?n(t[e]):n;return t[e]===o?t:{...t,[e]:o}}),[]),Ur=Wn(e=>Hr("left",e),[Hr]),Jr=Wn(e=>Hr("right",e),[Hr]),Yr=e=>Fr.has(e),Kr=e=>Dr(n=>{const t=new Set(n);return t.has(e)?t.delete(e):t.add(e),t}),Xr=Rn(!1),Gr=Rn(null);Vn(()=>{if(Xr.current&&!Zo){const e=Gr.current,n=e&&e.isConnected&&!e.closest('[aria-hidden="true"]')?e:null;(n??Ho.current?.querySelector(`button[aria-label="${CSS.escape(io.add.title)}"]`))?.focus(),Gr.current=null}Xr.current=Zo},[Zo]),Vn(()=>{if(!Zo||!Yo)return;const e=e=>{"Escape"===e.key&&gl()};return Yo.addEventListener("keydown",e),()=>Yo.removeEventListener("keydown",e)},[Zo,Yo]),me(Zo,()=>gl()),Vn(()=>{!xo&&Zo&&(_o(!1),nr(null),qo.current=!1)},[xo]);const Qr=X(),Zr=(e,n="success",t)=>{if(Qr)return void(t?Qr(e,"error"===n?"error":"info",t):Qr(e,"error"===n?"error":"info"));const o={sound:!1,action:t?.action,onClose:t?.onClose};"error"===n?Qn.error(e,{...o,duration:t?.duration??3200}):Qn.success(e,{...o,duration:t?.duration??1900})},_r=Le(gr.mainAction??{label:io.done,onPress:()=>{nt(ko.getState().appState.data)}}),qr=Rn(Zr);qr.current=Zr,Vn(()=>Ae(ko,()=>qr.current(io.writeLate,"error")),[ko,io]);const ei=Rn(null),[ni,ti]=Dn(0),[oi,ri]=Dn(0),ii=G(),li=Rn(null),si=e=>Math.max(0,e.clientHeight-(li.current?.offsetHeight??0));Vn(()=>{const e=ei.current;if(!e)return;const n=()=>{ti(e.clientWidth),ri(si(e))};n();const t=new ResizeObserver(n);return t.observe(e),li.current&&t.observe(li.current),()=>t.disconnect()},[]),Hn(()=>{ei.current&&(ti(ei.current.clientWidth),ri(si(ei.current)))},[Vr,xo,zo]);const di=Po===No?ni>0?ni:Oo[No]:Oo[Po],ai=ni>0?Math.min(ni/di,"shrink"===Io?1:2):1,ci=di*ai,pi=ni>0&&ci>ni+1,ui={width:ci,height:oi||"100%",flex:"none",position:"relative"},fi={width:di,height:oi?oi/ai:"100%",maxHeight:"none",transform:1!==ai?`scale(${ai})`:void 0,transformOrigin:"top left"},hi=()=>Wt({type:"setUi",ui:{leftSideBarVisible:!xo}}),mi=()=>Wt({type:"setUi",ui:{rightSideBarVisible:!zo}}),gi=e=>{Zo&&(_o(!1),nr(null),qo.current=!1,xo&&Ro===e)||(Fo(e),xo||Wt({type:"setUi",ui:{leftSideBarVisible:!0}}))},yi=()=>{ir(eo??V),zo||Wt({type:"setUi",ui:{rightSideBarVisible:!0}})},bi=Vt.data.content??[],vi=()=>{const e=bi.findIndex(no),n=bi.findIndex(to);return{floor:e>=0?e+1:0,cap:n>=0?n:bi.length}},ki=Yt,Si=br.stripCopy,wi=e=>o(e,Si),xi=pe(),zi=Ze({data:Vt.data,config:ki,readOnly:Boolean(jt),clipboard:xi,strip:Si?e=>Si(e):void 0,afterRemove:"none",stepBounds:(e,n)=>{if(e.parentId!==Mn||e.slot!==Tn)return{min:0,max:n-1};const{floor:t,cap:o}=vi();return{min:t,max:o-1}},commit:(e,{select:n})=>{void 0!==n&&ir(V);const t=void 0===n||"node"===n?.kind?n:null;So.commitDocument(e,t)}}),Ci=fe(),[Oi,Bi]=Dn(null),Ni=e=>{const n=bi.find(n=>String(n.props.id)===e),t=Kt.shared;n&&t&&zi.swap(e,t.detach(n))},Ii=e=>{const n=Ln(Vt.data,Yt,e);if(!n)return!1;const t=jn(n.place),o=n.node,r=t===Oe?ji(o):Gi(o),i=t===Oe?Kt.shared?.usedOn(o):null;return!!zi.remove(e)&&(Zr(i?io.shared.removed({count:Math.max(0,i.length-1)}):io.deleted({name:r}),"success",{duration:8e3,action:{label:io.bar.undo,onClick:()=>{zi.restore(n.node,n.place)}}}),!0)},Pi={...zi,remove:Ii},$i=e=>Br(e,"block",Yt.components[e]?.label??e),Mi=Wn(e=>Yt.components[e]?.defaultProps??{},[Yt]),Ti=e=>Br(e,"section",$i(e)),ji=e=>we({type:e.type,props:e.props??{}},Ti(e.type),Pr),{nodeAddresses:Ei,zoneItems:Li}=Fn(()=>{const e=/* @__PURE__ */new Map,n=/* @__PURE__ */new Map,t=(o,r,i)=>{n.set(r,o),o.forEach((n,o)=>{const l=String(n.props?.id??"");if(l&&e.set(l,{zone:r,index:o}),i>=Ne)return;const s=/* @__PURE__ */new Map;for(const{child:e,zone:t}of Ie(Yt,n))s.set(t,[...s.get(t)??[],e]);for(const[e,n]of s)t(n,e,i+1)})};return t(bi,Oe,0),{nodeAddresses:e,zoneItems:n}},[bi,Yt]),Ai=Wn(e=>Li.get(e)??[],[Li]),Ri=e=>{const n=Ei.get(e);return n?Ai(n.zone)[n.index]:void 0},Fi=e=>oe(br,Yt,e),Di=e=>{if(!br.slotsOf||e===Oe)return null;const n=e.lastIndexOf(":");if(n<=0)return null;const t=Ri(e.slice(0,n));if(!t)return null;const o=Fi(t).filter(e=>e.rung),r=o.findIndex(t=>t.slot===e.slice(n+1));return r<0?null:{node:t,slot:o[r],position:r}},Vi=(()=>{if(!Q(rr))return null;const e=`${rr.nodeId}:${rr.slot}`;return Di(e)?.slot.panel===rr.kind?e:null})(),Wi=Rn(null);Vn(()=>{const e=Wi.current;if(Wi.current=null,!Vi||!Q(rr))return;const n=rr.nodeId;cr(n,{scroll:e!==Vi}),Dr(e=>{if(!e.has(n))return e;const t=new Set(e);return t.delete(n),t})},[rr]);const Hi=e=>{const n=Ei.get(e);n&&(n.zone===Oe?al(n.index):Ll(n.zone,n.index,e,Ri(n.zone.slice(0,n.zone.lastIndexOf(":")))?.type??""))},Ui=(e,n,t)=>{const o=String(e.props.id);if(!n.panel)return void Hi(o);const r={kind:n.panel,nodeId:o,slot:n.slot},i=`${o}:${n.slot}`;t&&Vi!==i&&(Wi.current=i),hr(null,r),zo||Wt({type:"setUi",ui:{rightSideBarVisible:!0}}),l(o)},Ji=(e,n,t)=>{const o=`${e}:${n}`;if(Dr(n=>{if(!n.has(o)&&!n.has(e))return n;const t=new Set(n);return t.delete(o),t.delete(e),t}),!t)return;Vi!==o&&(Wi.current=o);hr(null,{kind:t,nodeId:e,slot:n})},Yi=(e,n,t)=>{if(jt||!br.moveSlot)return;const o=Ri(e),r=o?Fi(o).filter(e=>e.rung):[],i=r[n];if(!i)return;const l={parentId:e,slot:Ct,index:n},s=Sn(l,{...l,index:Math.min(Math.max(t,0),r.length)});if(s===n)return;const d=br.moveSlot(e,n,s);"string"==typeof d&&Ji(e,d,i.panel)},Ki=Ir(),Xi=Fn(()=>{const e=/* @__PURE__ */new Map;for(const n of Ki??[])e.set(n.slug,n.name);return e},[Ki]),Gi=e=>xe(e,$i,Or.plainText,e=>Xi.get(e),Or.rowName),Qi=(e,n)=>{const t=Yt.components[e.type]?.fields,o=n===Oe||ds(n)?"section":"block",r=n===Oe&&(no(e)||to(e)||Zt(e.type)),i="block"===o?ze(t):r?null:Ce(t);return Or.renamePropOf?Or.renamePropOf(e,o,i):i},Zi=(e,n,t,o)=>{if(!(!jt&&jr?.zone===e&&jr.index===n))return;const r=(t,o)=>{Er(null),o&&((e,n,t)=>{const o=Ai(e)[n];if(!o)return;const r=Qi(o,e);r&&So.replaceComponent(e,n,{...o,props:{...o.props,[r]:t.trim()}})})(e,n,t)};/* @__PURE__ */
14
- return ft("input",{className:"es-tree-rename",defaultValue:o,autoFocus:!0,"aria-label":io.rename,onClick:e=>e.stopPropagation(),onBlur:e=>r(e.currentTarget.value,!0),onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),r(e.currentTarget.value,!0)):"Escape"===e.key&&(e.preventDefault(),r("",!1))}},t)},_i=i(Z(),uo),qi=_i.scope({target:Pn,siteId:et,docId:Yn}),el=Yt,nl=(e,n)=>n===Oe?Ti(e):$i(e),tl=(e,n,t)=>{const o=_i.plan(qi,t,nl(t.type,e),el);o&&(o.changed&&So.replaceComponent(e,n,{...t,props:{...o.props,id:t.props.id}}),Zr(o.message))},ol=ue({nodesIn:Ai,nodeAt:(e,n)=>Ai(e)[n]??null,labelOf:(e,n)=>n===Oe?Ti(e):$i(e),renamePropOf:Qi,beginRename:(e,n)=>Er({zone:e,index:n}),history:{hasPast:Ht.hasPast,hasFuture:Ht.hasFuture,back:()=>Ht.back(),forward:()=>Ht.forward()},openPageStyles:gr.openPageStyles,pageStylesLabel:io.pageStyles,words:{menu:po,styleClipboard:uo,screen:io.menu},readOnly:Boolean(jt),collapseAll:()=>Dr(new Set(Ai(Oe).map(e=>String(e.props.id)))),onPasteRefused:e=>Zr(e?io.pasteRefused({name:e.label}):io.menu.clipboardRefused,"error"),canPasteAt:(e,n)=>ps(e,n),copyItem:gr.onCopyItem,menuRows:(e,n,t)=>{const o=gr.menuRows?.(e,n,t)??null,r=((e,n)=>{const t=Kt.shared;if(!t||n!==Oe)return null;const o=t.usedOn(e);if(o){const n={pick:[{label:io.shared.onPages({count:o.length}),onClick:()=>{},children:o.map(e=>({label:e.title,onClick:()=>t.openPage(e)}))}]};return jt||vr(e.type,e)?n:{...n,change:[{label:io.shared.detach,onClick:()=>Ni(e.props.id)}],remove:[{label:io.shared.removeFromPage,danger:!0,onClick:()=>{Ii(e.props.id)}}]}}return jt||no(e)||to(e)||Zt(e.type)?null:O(Ci)?{change:[{label:io.shared.makeShared,onClick:()=>Bi({id:e.props.id,name:ji(e)})}]}:null})(e,n);if(!r)return o;return Object.fromEntries(["pick","make","change","remove"].map(e=>[e,[...o?.[e]??[],...r[e]??[]]]).filter(([,e])=>e.length>0))},isLocked:e=>vr(e.type,e),duplicateBlocked:e=>kr(Vt.data,e),permits:e=>{const n=Be(Yt,e.type);return Kt.shared?.usedOn(e)?{...n,delete:!1}:n},nodeOps:Pi,isPinned:(e,n)=>n===Oe&&(no(e)||to(e)),sectionBand:vi,locate:e=>Ei.get(e)??null,rowNameOf:(e,n)=>n===Oe?ji(e):Gi(e),selectAt:(e,n,t,o)=>{e===Oe?al(n):Ll(e,n,t,o??"")},slotRung:e=>{const n=Di(e);return n?.slot.panel?{label:n.slot.label,select:()=>Ui(n.node,n.slot,!1)}:null},style:{held:()=>ve(qi),canCopy:e=>_i.rows(el,e).some(e=>!1!==e.counted),copy:(e,n)=>_i.copy(qi,e,nl(e.type,n),el),paste:(e,n,t)=>tl(e,n,t)},keys:At?{target:Yo,selected:()=>{const e=Vt.ui.itemSelector;return e?{zone:e.zone??Oe,index:e.index}:null},held:()=>xi.get(),readOnly:Boolean(jt),onDone:({done:e,name:n})=>{"copied"===e&&Zr(io.copied({name:n}))}}:void 0},Uo),rl=Rn({copy:(e,n)=>{},paste:(e,n,t)=>{},at:()=>null,readOnly:!1});Vn(()=>{rl.current={copy:(e,n)=>_i.copy(qi,e,nl(e.type,n),el),paste:tl,at:()=>{const e=Vt.ui.itemSelector;if(!e)return null;const n=e.zone??Oe,t=Ai(n)[e.index];return t?{zone:n,index:e.index,node:t}:null},readOnly:Boolean(jt)}});const il=Wn(e=>{const n=ke(e);if(!n)return;const t=rl.current,o=t.at();o&&(e.preventDefault(),"copy"===n?t.copy(o.node,o.zone):t.readOnly||t.paste(o.zone,o.index,o.node))},[]);Vn(()=>{if(!Yo)return;const e=e=>il(e);return Yo.addEventListener("keydown",e),()=>Yo.removeEventListener("keydown",e)},[il,Yo]),On(Uo,"keydown",il);const ll=bi.map(e=>e.props.id).join("|");Vn(()=>{const e=Uo?.document??null,n=Uo?.window??null;let t=0;const o=[],r=()=>{if(!e)return void or(e=>e.length?[]:e);const n=bi.findIndex(to),t=n>=0?n:bi.length,o=n=>{const t=bi[n]?.props?.id;return null==t?null:$n(e,`[data-easel-block="${CSS.escape(String(t))}"]`)},r=e=>e?[...e.querySelectorAll(zn)].map(e=>e.getBoundingClientRect()).filter(e=>e.width>0||e.height>0):[],i=[];for(let e=bi.length>0&&!no(bi[0])?0:1;e<=t;e++){const n=o(e),t=o(e-1),l=n?.getBoundingClientRect()??null,s=t?.getBoundingClientRect()??null;if(!l&&!s)continue;const d=zt(l&&s?(s.bottom+l.top)/2:l?0===e?l.top+12:l.top:s.bottom,Math.max(0===e?0:-1/0,...r(t).map(e=>e.bottom)),Math.min(1/0,...r(n).map(e=>e.top)));d&&i.push({...d,index:e})}or(e=>function(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t].top!==n[t].top||e[t].index!==n[t].index||e[t].height!==n[t].height)return!1;return!0}(e,i)?e:i)},i=()=>{cancelAnimationFrame(t),t=requestAnimationFrame(r)};if(!e||!n)return void r();n.addEventListener("scroll",i,{passive:!0});const l=new ResizeObserver(i);return l.observe(e.documentElement),r(),o.push(setTimeout(r,150),setTimeout(r,450)),()=>{cancelAnimationFrame(t),o.forEach(clearTimeout),n.removeEventListener("scroll",i),l.disconnect()}},[Uo,ll,Po,ai,xo,zo,Ut?.props.id]);const sl=Uo?.document??null,dl=Uo?.window??null;Vn(()=>{const e=Wo.current;if(!e||!sl||!dl)return;const n=[],t=()=>{const n=$n(sl,`[data-easel-block="${CSS.escape(e.id)}"]`);if(!n)return!1;const t=n.getBoundingClientRect().top-e.offset;return Math.abs(t)>1&&dl.scrollTo({left:dl.scrollX,top:dl.scrollY+t,behavior:"instant"}),!0};return Wo.current=null,t()&&n.push(setTimeout(t,150),setTimeout(t,450)),()=>n.forEach(clearTimeout)},[sl,dl]);const al=e=>{ir(V),So.select({index:e}),gr.sectionPressed?.(bi[e]);const n=bi[e]?.props?.id;n&&l(n)},cl=e=>{const{floor:n,cap:t}=vi(),o=e=>Math.min(Math.max(n,e),t);if("number"==typeof e)return o(e);const r=Ut&&rr.kind!==eo?.kind?bi.findIndex(e=>e.props.id===Ut.props.id):-1;return o(r>=0?r+1:t)},pl=(e,n)=>{const{floor:t,cap:o}=vi(),r=Math.min(Math.max(n,t),o),i=e<r?r-1:r;return i===e?{moved:!1,dest:e}:(So.reorderComponent(Oe,e,i),So.select({index:i}),{moved:!0,dest:i})},ul=(e,n,t,o)=>{ir(V),So.select(o?{index:o.index,zone:o.zone}:{index:e}),l(n),Zr(io.sectionAdded({name:t}))},fl=(e,n)=>{const t=cl(n),o=wr(e,{nodeDefaults:Mi,newNodeId:$e,sectionLabel:Ti,blockIsOffered:zr}),r=o?So.insertNode(Oe,t,o):So.insertSection(e,t);return ul(t,r,Ti(e),o?((e,n,t)=>{if(e.type===t)return null;const o={at:null},r=(e,n,i)=>{const l=i.filter(n=>n===e.type).length;for(const{child:s,zone:d,index:a}of Ie(Yt,e)){if(s.type===t&&(!o.at||n>o.at.depth)){const r=xr(e.type,l,d.slice(d.lastIndexOf(":")+1),Cr(e)),i=r?.choices??(r?.spec?[{type:r.spec.childType,label:r.spec.childType}]:[]);null!==r&&"footer"!==r.source&&`${e.props.id}:${r.slot}`===d&&i.some(e=>e.type===t)&&(o.at={zone:d,index:a,depth:n})}r(s,n+1,[...i,e.type])}};return r({type:e.type,props:{...e.props,id:n}},1,[]),o.at?{zone:o.at.zone,index:o.at.index}:null})(o,r,e):null),t},hl=e=>ml(Oe,e),ml=(e,n)=>{Gr.current=document.activeElement??null,nr(null===n?null:{zone:e,index:n}),_o(!0),xo||(qo.current=!0,Wt({type:"setUi",ui:{leftSideBarVisible:!0}}))},gl=()=>{_o(!1),nr(null),qo.current&&Wt({type:"setUi",ui:{leftSideBarVisible:!1}}),qo.current=!1},yl=(e,n)=>Or.rowName?n?no(e)?Or.rowName(e,"section",io.header):to(e)?Or.rowName(e,"section",io.footer):Zt(e.type)?Or.rowName(e,"section",$i(e.type)):ji(e):Gi(e):n?Ti(e.type):$i(e.type),bl=e=>n=>{e()},vl=(e,n,t)=>{if(jt)return null;const o=Ai(e)[n];return o&&!Be(Yt,o.type).delete||o&&vr(o.type,o)?null:/* @__PURE__ */ft(Ye,{kind:"delete",label:e===Oe&&o&&Kt.shared?.usedOn(o)?io.shared.removeFromPage:io.deleteNamed({name:t}),onClick:()=>((e,n)=>{const t=Ai(e)[n]?.props?.id;null!=t&&Ii(String(t))})(e,n),children:/* @__PURE__ */ft(dt,{size:15})})},kl=e=>Or.rowPreview?.(e)||void 0,Sl=e=>Or.rowMarks?.(e)??void 0,wl=(e,n,t)=>Or.rowActions?.(e,n,t)??null,xl=(e,n,t,o)=>{if(jt)return null;if(vr(t.type,t))return null;const r=Boolean(t.props._hidden);/* @__PURE__ */
15
- return ft(Ye,{kind:"eye",label:r?io.showNamed({name:o}):io.hideNamed({name:o}),onClick:()=>Cl(e,n,t),children:/* @__PURE__ */ft(r?at:ct,{size:14,strokeWidth:1.8,strokeLinecap:void 0,strokeLinejoin:void 0})})},zl=e=>rd(Oe,e),Cl=(e,n,t)=>{So.replaceComponent(e,n,{...t,props:{...t.props,_hidden:!t.props._hidden}})},Ol=e=>Pe(Yt,e),Bl=e=>Ie(Yt,e),Nl=e=>br.slotsOf?Fi(e).map(n=>({slot:n.slot,rung:n.rung?n:null,kids:Me(e,n.slot)})):[{slot:null,rung:null,kids:re(Yt,e)}],Il=e=>br.slotsOf?Nl(e).flatMap(e=>e.kids):re(Yt,e),Pl=e=>Boolean(br.slotsOf)&&Fi(e).some(e=>e.rung),$l=(e,n,t)=>xr(e.type,n,t??void 0,Cr(e)),Ml=(e,n,t)=>{const o=Te(Yt,e.type,n)&&(t||Il(e).length>0||Pl(e));return{collapsible:o,folded:o&&Yr(String(e.props.id))}},Tl=(e,n,t)=>Nl(e).flatMap(o=>{const r=o.rung?n+1:n,i=o.kids.flatMap(({child:e})=>Ml(e,r,t(e.type)).collapsible?[String(e.props.id),...Tl(e,r+1,t)]:[]);return o.rung?[`${e.props.id}:${o.rung.slot}`,...i]:i}),jl=e=>Il(e).length>0||Pl(e)||Boolean(xr(e.type)),El=e=>Boolean(xr(e)),Ll=(e,n,t,o)=>{if(ir(V),xr(o)?.spec?.slider){const t=e.split(":")[0];s(t,n),So.select({index:n,zone:e}),l(t)}else So.select({index:n,zone:e}),l(t)},Al=(e,n,t,o,r)=>{const i=`${e}:${n}`;So.insertComponent(i,t,o),xr(r)?.spec?.slider?requestAnimationFrame(()=>{s(e,o),So.select({index:o,zone:i})}):So.select({index:o,zone:i})},Rl=Rn(/* @__PURE__ */new Set);Vn(()=>{bi.forEach(e=>{const n=xr(e.type)?.spec;if(!n)return;const t=e.props.id;if(Rl.current.has(t))return;Rl.current.add(t);if((Array.isArray(e.props[n.slot])?e.props[n.slot]:[]).length>0)return;if(n.skipSeed?.(e.props))return;const o=`${t}:${n.slot}`,r=n.legacy?.(e.props)??[];(r.length?r:n.seeds(Mi)).forEach((e,t)=>bo.seedChild(o,t,n.childType,e))})},[bi,bo,Mi]);const Fl=Rn(/* @__PURE__ */new Set);Vn(()=>{bi.forEach((e,n)=>{const t=e.props.id;if(Fl.current.has(t))return;const o=r(e,Ol(e.type));Fl.current.add(t),o&&bo.replaceComponent(Oe,n,{...e,props:o})})},[bi,bo]),_(bo,Yt);const Dl=bi.findIndex(to),Vl=Dl>=0?bi[Dl]:null,Wl=oo?bi.findIndex(no):-1,Hl=Wl>=0?bi[Wl]:null,Ul=Kt.groupTab,Jl=Fn(()=>Ul?e=>Zt(e.type):void 0,[Ul]),Yl=Boolean(Kt.groupBadge),Kl=Kt.sharedReach,Xl=e=>Kl?.(e)??void 0,Gl=Fn(()=>Kl?new Set(bi.filter(e=>Xl(e)).map(e=>String(e.props.id))):null,[bi,Kl]),Ql=Fn(()=>Gl?e=>Gl.has(e):void 0,[Gl]),Zl=Kt.first?Kl?.({type:Kt.first,props:{id:""}})??void 0:void 0,_l=Kt.groupBadge?/* @__PURE__ */ft("span",{className:"es-tree-group-badge",children:/* @__PURE__ */ft(Kn,{tone:"info",size:"xs",children:Kt.groupBadge})}):void 0,ql=bi.find(e=>e.type===Gt)??null,es=bi.find(e=>e.type===Qt)??null,ns=Dl>=0?Dl:bi.length,ts=[];bi.forEach(e=>{to(e)||(jl(e)&&ts.push(String(e.props.id)),ts.push(...Tl(e,1,El)))}),Vl&&(ts.push(String(Vl.props.id)),ts.push(...Tl(Vl,1,El)));const os=ts.length>0&&ts.every(e=>Fr.has(e)),rs=e=>{const n=Or.blockRowName(e,$i);return Or.rowName?Or.rowName(e,"block",n):n},is=(e,n,t,o)=>{const r=Ai(e)[t];if(!r)return;const i={...En(e),index:t},l={...En(n),index:Math.min(Math.max(o,0),Ai(n).length)},s=Sn(i,l);if(e!==n||s!==t)try{zi.move(String(r.props.id),{...l,index:s})}catch(e){if(!(e instanceof An))throw e}},ls=e=>{const n=/* @__PURE__ */new Set,t=e=>{for(const{child:o,zone:r}of Bl(e))n.add(r),t(o)};for(const t of Ol(e.type))n.add(`${e.props.id}:${t}`);return t(e),n},ss=e=>{let n=e.slice(0,e.indexOf(":"));for(let e=0;e<64;e++){const e=Ei.get(n);if(!e)return null;if(e.zone===Oe)return n;n=e.zone.slice(0,e.zone.indexOf(":"))}return null},ds=e=>{const n=e.slice(0,e.indexOf(":")),t=bi.find(e=>Zt(e.type)&&String(e.props.id)===n);return t&&_t(n)===e?t:null},as=(e,n)=>{const t=ds(e);return!t||(!Kt.groupAccepts||Kt.groupAccepts(t.type,n,Ai(e).length))},cs=(e,n,t)=>{if(e.rung){const t=Ri(e.rung.nodeId),o=t?Fi(t).filter(e=>e.rung).length:0;return n.parentId===e.rung.nodeId&&n.slot===Ct&&n.index>=0&&n.index<=o}if(n.slot===Ct)return!1;if(e.add)return hs(e.add,n);const o=jn(n);if(Zt(e.type))return!1;const r=ds(o),i=ds(e.zone);if(r||i)return!(!r||!i)&&(!(r!==i&&!as(o,e.type))&&(n.index>=0&&n.index<=Ai(o).length));if(e.zone===Oe||o===Oe){if(e.zone!==o)return!1;const{floor:t,cap:r}=vi();return n.index>=t&&n.index<=r}if(n.index<0||n.index>Ai(o).length)return!1;if(e.zone===o)return!0;const l=Vl&&!Kt.lastIsOpen?String(Vl.props.id):null;return(!l||ss(e.zone)!==l&&ss(o)!==l)&&((e,n,t,o)=>{if(e===n)return!0;const r=o??Ai(e)[t];if(!r)return!1;const i=n.split(":")[0],l=Ei.get(i),s=l?Ai(l.zone)[l.index]:void 0;if(!s)return!1;if(!o&&ls(r).has(n))return!1;const d=xr(s.type,Sr(Vt?.data,s.type,i),n.slice(n.lastIndexOf(":")+1),Cr(s));return!!d&&(!!(d.choices?d.choices.some(e=>e.type===r.type):d.spec?.childType===r.type)&&!d.spec?.addBlocked?.(Ai(n),r))})(e.zone,o,e.index,t)},ps=(e,n)=>{const t=jn(e.from),o=e.node;return t===jn(n)?as(t,o.type):cs({id:String(o.props?.id??""),zone:t,index:-1,type:o.type},n,o)},us=e=>{const n=e.slice(0,e.indexOf(":")),t=Ei.get(n),o=t?Ai(t.zone)[t.index]:void 0;if(!t||!o)return null;const r=xr(o.type,Sr(Vt?.data,o.type,n),e.slice(e.lastIndexOf(":")+1),Cr(o));if(!r||`${n}:${r.slot}`!==e)return null;if("footer"===r.source)return null;const i=$(r.choices??(r.spec?[{type:r.spec.childType,label:$i(r.spec.childType)}]:[])),l=Di(e);return{parent:o,parentId:n,target:r,choices:i,parentName:l?l.slot.label:yl(o,t.zone===Oe)}},fs=(e,n)=>{if("section"!==e.kind)return e;const t=jn(n);return t===Oe||ds(t)?e:us(t)?.choices.some(n=>n.type===e.type)?{kind:"block",type:e.type}:e},hs=(e,n)=>{const t=fs(e,n),o=jn(n);if("shared"===t.kind){if(o!==Oe||!Kt.shared?.nodeOf(t.section))return!1;const{floor:e,cap:r}=vi();return n.index>=e&&n.index<=r}if("block"!==t.kind){if(ds(o)){if("preset"===t.kind)return!1;const e="section"===t.kind?t.type:t.template.node.type;return as(o,e)&&n.index>=0&&n.index<=Ai(o).length}if(o!==Oe)return!1;const{floor:e,cap:r}=vi();return n.index>=e&&n.index<=r}if(o===Oe)return!1;const r=us(o);return!(!r||!r.choices.some(e=>e.type===t.type))&&!r.target.spec?.addBlocked?.(Ai(o))},ms=(e,n)=>{const t=fs(e,n);if("block"!==t.kind&&ds(jn(n)))return void((e,n,t)=>{const o="section"===e.kind?e.type:"template"===e.kind?e.template.node.type:null;if(o&&as(n,o)){if("section"===e.kind)So.insertComponent(n,e.type,t);else{if("template"!==e.kind)return;So.insertNode(n,t,wi(e.template.node))}ir(V),So.select({index:t,zone:n})}})(t,jn(n),n.index);if("section"===t.kind)return void fl(t.type,n.index);if("template"===t.kind)return void((e,n,t)=>{const o=cl(t),r=So.insertNode(Oe,o,n);ul(o,r,e)})(t.template.name,wi(t.template.node),n.index);if("preset"===t.kind)return void((e,n,t)=>{const o=n({nodeDefaults:Mi,newNodeId:$e,sectionLabel:Ti,blockIsOffered:zr});if(!o)return;const r=cl(t),i=So.insertNode(Oe,r,o);ul(r,i,e)})(t.preset.label,t.preset.insert,n.index);if("shared"===t.kind){const e=Kt.shared?.nodeOf(t.section);if(!e)return;const o=cl(n.index);return void(zi.restore(e,{parentId:Mn,slot:Tn,index:o})&&ul(o,e.props.id,t.section.title))}const o=jn(n),r=us(o);r&&(r.target.spec?Al(r.parentId,r.target.slot,t.type,n.index,r.parent.type):((e,n,t)=>{So.insertComponent(e,n,t),ir(V),So.select({index:t,zone:e})})(o,t.type,n.index))},gs=(e,n)=>{e.media?function(e){const n=qs();if(!n||!Qs)return;nd(n).then(n=>{n&&function(e,n){if(!Qs)return;const t=Qs.create(e,{nodeDefaults:Mi,newNodeId:$e,sectionLabel:Ti,blockIsOffered:zr}),o=jn(n);if(o===Oe){const e=cl(n.index),o=So.insertNode(Oe,e,t);return void ul(e,o,Ti(t.type))}So.insertNode(o,n.index,t),ir(V),So.select({index:n.index,zone:o})}(n,e)})}(n):e.rung?Yi(e.rung.nodeId,e.index,n.index):e.add?ms(e.add,n):e.zone===Oe?pl(e.index,n.index):is(e.zone,jn(n),e.index,n.index)},[ys]=Dn(()=>vn()),bs=kn({keyOf:e=>e.id,readOnly:Boolean(jt),session:ys,canDrop:cs,onDrop:gs,onStep:(e,n)=>{e.rung?Yi(e.rung.nodeId,e.index,n<0?e.index-1:e.index+2):e.zone===Oe?((e,n)=>{const t=Ti(bi[e]?.type??""),o=pl(e,n<0?e-1:e+2);if(!o.moved)return void Zr(n<0?io.sectionFirst({name:t}):io.sectionLast({name:t}));const{floor:r,cap:i}=vi();Zr(io.sectionMoved({name:t,n:o.dest-r+1,total:i-r}))})(e.index,n):is(e.zone,e.zone,e.index,n<0?e.index-1:e.index+2)}}),vs=Wn(e=>{const{floor:n,cap:t}=vi(),o=[];for(const r of e.nodes){const e=jn(r.place),i=Ai(e)[r.place.index];if(!i||String(i.props.id)!==r.id)continue;if(no(i)||to(i)||vr(i.type,i))continue;if(Zt(i.type))continue;const l=Boolean(ds(e)),s=e===Oe||l;e===Oe&&t-n<2||o.push({key:r.id,item:{id:r.id,zone:e,index:r.place.index,type:i.type},box:r.box,label:s?Ti(i.type):Gi(i),from:r.place})}const r=e.zones.flatMap(e=>{const n=jn(e.list);if(n===Oe&&0===e.children.length)return[{...e,addLabel:io.addSection,addAlways:!0}];const t=us(n),o=t?.target.spec?.addLabel;return e.children.length>0||Boolean(t?.choices.length)||Boolean(ds(n))?[o?{...e,addLabel:o}:e]:[]}),i=r.flatMap(e=>{const n=jn(e.list),t=n===Oe||ds(n)?null:us(n);return t?.choices.length?mn(e,t.target.spec?.addLabel??io.addBlockHere):[]});return{sources:o,zones:r,seams:i}},[Vt.data]),ks=null==Ut?.props.id?null:String(Ut.props.id),Ss=Un(Re),ws=Ss?.selected()&&Uo?.document&&ks?Ss.selectedPart?.(Uo.document)??null:null,xs=ws&&ks&&Fe(Vt.data,Yt,ks,ws)?ws:null,zs=xs?.label?{element:xs.element,label:xs.label}:null,Cs=null!==xs,Os=Wn(e=>{const n=Yt,t=e=>!e.item.rung&&null!==Ln(Vt.data,n,e.item.id),o=e[e.length-1];if(!t(o))return o;const r=n=>e.find(e=>t(e)&&e.item.id===n),i=r(ks);return i?Cs?null:i:r(_e(Vt.data,n,o.item.id,ks,Jl))??o},[Vt.data,Yt,ks,Jl,Cs]),[Bs,Ns]=Dn(null),[Is,Ps]=Dn(null),$s=Boolean(Ul||Kl);On(Uo,"mouseover",e=>{if(!$s)return;const n=Bn(e.target),t=n?vt(Vt.data,Yt,n):null;t!==Bs&&Ns(t)}),On(Uo,"mouseout",e=>{$s&&!e.relatedTarget&&Ns(null)});const Ms=e=>no(e)||to(e)||Zt(e.type),Ts=e=>{const n=Zt(e.type)?$i(e.type):no(e)?io.header:to(e)?io.footer:null;return null===n?ji(e):Or.rowName?Or.rowName(e,"section",n):n},js=[];if($s){const e=ks?vt(Vt.data,Yt,ks):null;for(const n of/* @__PURE__ */new Set([e,Bs,Is])){const e=n?bi.find(e=>String(e.props.id)===n):void 0;if(!e)continue;const t=no(e)||e.type===Gt,o=Xl(e);if(o){js.push({id:String(e.props.id),label:Ts(e),below:t,reach:o});continue}if(!Ul||!Ms(e))continue;const r=Ul(e);r&&js.push({id:String(e.props.id),label:r,below:t})}}const Es=fe(),Ls=Rn(null);Vn(()=>{const e=Kt.changeNotice;if(!e)return;const n=JSON.stringify(bi.filter(Ms)),t=Ls.current;if(Ls.current={doc:Yn,bands:n,index:Ht.index},!t||t.doc!==Yn||t.bands===n)return;Ht.hasPast&&Ht.index>=t.index&&!bt.has(Es)&&(bt.add(Es),Zr(e,"success",{action:{label:io.bar.undo,onClick:()=>Ht.back()},duration:8e3}))},[bi]);const As=e=>{ir(V),So.select(e.zone===Oe?{index:e.index}:{index:e.index,zone:e.zone})},Rs=q(),Fs=()=>({data:Vt.data,device:Po,ops:So,inspector:mr}),Ds=Rs?.model,Vs=Fn(()=>Ds?e=>Ds(e,vs(e),Fs()):vs,[Ds,vs,Po]),Ws=Rs?.measure,Hs=Ws?(e,n)=>Ws(e,n,Fs()):void 0,Us=Rs?.canDrop,Js=Us?(e,n)=>Us(e,n,cs,Fs()):cs,Ys=Rs?.drop,Ks=Ys?(e,n)=>Ys(e,n,gs,Fs()):gs,Xs=Rs?.pick,Gs=Xs?e=>Xs(e,As,Fs()):As,Qs=Rs?.media??null,Zs=Rn(null),_s=Fn(()=>Qs?{id:gt,zone:"",index:-1,type:Qs.adds.type,add:{kind:Qs.adds.kind,type:Qs.adds.type},media:!0}:null,[Qs]);Vn(()=>{if(!_s||jt||"undefined"==typeof document)return;const e=e=>{(e=>Array.from(e.dataTransfer?.types??[]).includes(ot))(e)&&(Zs.current=null,ys.start({key:gt,item:_s}))},n=e=>{ys.get()?.item.media&&(Zs.current=Zn(e.dataTransfer))},t=()=>{ys.get()?.item.media&&ys.end()};return document.addEventListener("dragstart",e),document.addEventListener("drop",n,!0),document.addEventListener("dragend",t,!0),()=>{document.removeEventListener("dragstart",e),document.removeEventListener("drop",n,!0),document.removeEventListener("dragend",t,!0)}},[_s,jt,ys]);const qs=()=>{const e=Zs.current;return Zs.current=null,e},ed=ce(),nd=async e=>{if(!ed)return e;const n=await ed(e);return n?{...e,id:n.id,url:n.url}:null};const td=(e,n)=>{if(!Qs)return;const t=Ln(ko.getState().appState.data,ki,n);if(!t)return;const o=t.node;So.replaceComponent(jn(t.place),t.place.index,{...o,props:{...Qs.replace(o,e),id:o.props.id}})},od=e=>{const n=jn(e),t=Di(n);t&&Ui(t.node,t.slot,!1),ml(n,e.index)},rd=(e,n)=>/* @__PURE__ */ft(Ke,{...jt?{}:bs.seam({place:{...En(e),index:n}})},`seam:${e}:${n}`),id={rowClick:bl,isCollapsed:Yr,toggleCollapse:Kr},ld=e=>{const n=String(e.props.id),t=bi.findIndex(e=>String(e.props.id)===n),o=_t(n),r=Ai(o),i=Yr(n),l=$i(e.type),s=Or.rowName?Or.rowName(e,"section",l):l,d=e=>rd(o,e);/* @__PURE__ */
16
- return ht(mt,{children:[
17
- /* @__PURE__ */ft(We,{words:lo,icon:/* @__PURE__ */ft(Nr,{type:e.type,size:13}),name:s,preview:kl(e),marks:Sl(e),onSelect:()=>al(t),nameSlot:Zi(Oe,t,n,s),selected:lr===n,badge:Xl(e)?void 0:_l,shared:Xl(e),actions:wl(e,Oe,t)??void 0,rowProps:{"data-node-id":n,onClick:bl(()=>al(t))},fold:{open:!i,label:"section",onToggle:()=>Kr(n)}}),!i&&/* @__PURE__ */ht(He,{children:[r.map((n,t)=>{const r=String(n.props.id),i=ji(n),l=jl(n),s=l&&Yr(r),a=()=>Ll(o,t,r,e.type),{rowProps:c,...p}=bs.row({item:{id:r,zone:o,index:t,type:n.type},place:{...En(o),index:t}},{"data-node-id":r,onClick:bl(a)});/* @__PURE__ */
18
- return ht(Jn,{children:[d(t),
19
- /* @__PURE__ */ft(We,{words:lo,icon:/* @__PURE__ */ft(Nr,{type:n.type,size:13}),name:i,preview:kl(n),marks:Sl(n),onSelect:a,nameSlot:Zi(o,t,r,i),selected:lr===r,hidden:Boolean(n.props._hidden),...p,fold:l?{open:!s,label:"section",onToggle:()=>Kr(r)}:void 0,actions:/* @__PURE__ */ht(mt,{children:[vl(o,t,i),wl(n,o,t),xl(o,t,n,i)]}),rowProps:c}),l&&!s&&/* @__PURE__ */ft(He,{children:ad(n,2)})]},r)}),d(r.length)]})]})},sd=(e,n,t,o,r)=>{const i=String(e.props.id),l=`${i}:${n.slot}`,s=bs.dragging,d=!Yr(l)&&s?.rung?.nodeId!==i,a={...En(l),index:0},c=s&&!s.rung&&cs(s,a)?a:void 0,p=()=>Ui(e,n,!0),{rowProps:u,...f}=bs.row({item:{id:`rung:${l}`,zone:`${i}:${Ct}`,index:t,type:e.type,rung:{nodeId:i,slot:n.slot}},place:{parentId:i,slot:Ct,index:t},into:c,canDrag:Boolean(br.moveSlot)&&!1!==n.movable&&o>1},{"data-slot-zone":l,onClick:bl(p)}),h=jt?null:br.slotActions?.(e,n.slot);/* @__PURE__ */
20
- return ht(Jn,{children:[n.heading,
21
- /* @__PURE__ */ft(We,{words:lo,icon:n.glyph??null,name:n.label,badge:n.badge,onSelect:p,selected:Vi===l,...f,dragHint:n.dragHint,fold:{open:d,label:n.label,onToggle:()=>Kr(l)},actions:h&&h.length>0?/* @__PURE__ */ft(mt,{children:h.map((t,o)=>/* @__PURE__ */ft(Ye,{kind:"delete"===t.kind?"delete":"plain",label:t.label,disabled:t.disabled,onClick:()=>((e,n,t)=>{if(jt||t.disabled)return;const o=String(e.props.id),r=e=>{"string"==typeof e&&Ji(o,e,n.panel)},i=t.run();i&&"function"==typeof i.then?i.then(r):r(i)})(e,n,t),children:"delete"===t.kind?/* @__PURE__ */ft(dt,{size:15}):/* @__PURE__ */ft(ut,{size:15})},`${o}:${t.kind}`))}):void 0,rowProps:u}),d&&/* @__PURE__ */ft(He,{children:r})]},l)},dd=(e,n)=>{const t=Nl(e),o=t.filter(e=>e.rung).length;let r=0;/* @__PURE__ */
22
- return ft(mt,{children:t.map(t=>{const i=t.kids,l=t.rung?n+1:n,s=$l(e,void 0,t.slot),d=s?`${e.props.id}:${s.slot}`:null,a=null===t.slot?null:`${e.props.id}:${t.slot}`,c=(e,n)=>rd(e,n),p=/* @__PURE__ */ht(mt,{children:[i.map(({child:n,zone:t,index:o})=>{const r=lr===String(n.props.id),{collapsible:i,folded:s}=Ml(n,l,El(n.type)),d=String(n.props.id),a=rs(n),p=()=>Ll(t,o,d,e.type),{rowProps:u,...f}=bs.row({item:{id:d,zone:t,index:o,type:n.type},place:{...En(t),index:o}},{"data-node-id":d,onClick:bl(p)});/* @__PURE__ */
23
- return ht(Jn,{children:[0===o&&c(t,0),
24
- /* @__PURE__ */ft(We,{words:lo,icon:/* @__PURE__ */ft(Nr,{type:n.type,size:13}),name:a,preview:kl(n),marks:Sl(n),onSelect:p,nameSlot:Zi(t,o,d,a),selected:r,hidden:Boolean(n.props._hidden),...f,fold:i?{open:!s,label:"group",onToggle:()=>Kr(d)}:void 0,actions:/* @__PURE__ */ht(mt,{children:[vl(t,o,a),wl(n,t,o),xl(t,o,n,a)]}),rowProps:u}),i&&!s&&/* @__PURE__ */ft(He,{children:dd(n,l+1)}),c(t,o+1)]},String(n.props.id??`${t}-${o}`))}),null===a?d&&!i.some(e=>e.zone===d)?c(d,0):null:0!==i.length||!t.rung&&d!==a?null:c(a,0)]});return t.rung?sd(e,t.rung,r++,o,p):/* @__PURE__ */ft(Jn,{children:p},t.slot??"")})})},ad=(e,n)=>{const t=Sr(Vt?.data,e.type,String(e.props.id)),o=Nl(e),r=o.filter(e=>e.rung).length;let i=0;/* @__PURE__ */
25
- return ft(mt,{children:o.map(o=>{const l=o.kids,s=o.rung?n+1:n,d=$l(e,t,o.slot),a=d?.spec??null,c=a&&Array.isArray(e.props[a.slot])?e.props[a.slot]:[],p=d&&d.choices?{slot:d.slot,choices:d.choices}:null,u=String(e.props.id),f=a&&!a.fixed?`${u}:${a.slot}`:null,h=p?`${u}:${p.slot}`:null,m=(e,n)=>rd(e,n),g=null===o.slot?null:`${u}:${o.slot}`,y=Boolean(a&&!a.fixed&&(null===g||g===f)),b=/* @__PURE__ */ht(mt,{children:[l.map(({child:n,zone:t,index:o})=>{const r=lr===String(n.props.id),i=Gi(n),l=String(n.props.id),{collapsible:d,folded:a}=Ml(n,s,El(n.type)),c=Ol(n.type),p=1===c.length?`${l}:${c[0]}`:null,u=p?{...En(p),index:Ai(p).length}:void 0,f=bs.dragging,h=u&&f&&cs(f,u)?u:void 0,g=()=>Ll(t,o,l,e.type),{rowProps:y,...b}=bs.row({item:{id:l,zone:t,index:o,type:n.type},place:{...En(t),index:o},into:h,canDrag:!vr(n.type,n)},{"data-node-id":l,onClick:bl(g)});/* @__PURE__ */
26
- return ht(Jn,{children:[0===o&&m(t,0),
27
- /* @__PURE__ */ft(We,{words:lo,icon:/* @__PURE__ */ft(Nr,{type:n.type,size:13}),name:i,preview:kl(n),marks:Sl(n),onSelect:g,nameSlot:Zi(t,o,l,i),selected:r,hidden:Boolean(n.props._hidden),...b,fold:d?{open:!a,label:"group",onToggle:()=>Kr(l)}:void 0,actions:vr(n.type,n)?wl(n,t,o)??void 0:/* @__PURE__ */ht(mt,{children:[vl(t,o,i),wl(n,t,o),xl(t,o,n,i)]}),rowProps:y}),d&&!a&&/* @__PURE__ */ft(He,{children:ad(n,s+1)}),m(t,o+1)]},String(n.props.id??`${t}-${o}`))}),y&&a&&
28
- /* @__PURE__ */ft(z,{small:!0,label:a.addLabel,blocked:a.addBlocked?.(c)??null,onAdd:()=>Al(e.props.id,a.slot,a.childType,c.length,e.type)}),null===g?h&&!l.some(e=>e.zone===h)?m(h,0):null:0!==l.length||(o.rung?y:g!==h)?null:m(g,0)]});return o.rung?sd(e,o.rung,i++,r,b):/* @__PURE__ */ft(Jn,{children:b},o.slot??"")})})},cd=Zo,pd=e=>"panel"in e?{id:e.id,label:e.label,icon:e.icon,active:xo&&!cd&&yr===e.id,onSelect:()=>gi(e.id)}:e,ud=[...(gr.railLead??[]).map(pd),{id:"sections",label:io.layers,icon:/* @__PURE__ */ft(ge,{}),active:xo&&!cd&&"sections"===yr,onSelect:()=>gi("sections")},...(gr.railTrail??[]).map(pd)],fd=To?{onPress:jo}:Rt?{onPress:()=>{x(xn,{accept:"image/*",title:fo.mediaLibrary})}}:null,hd={value:ud.find(e=>!0===e.active)?.id??"",press:e=>{const n=ud.find(n=>n.id===e);n&&!n.disabled&&!0!==n.active&&n.onSelect?.()},items:ud.map(e=>({id:e.id,icon:e.icon,label:/* @__PURE__ */ft("span",{className:"sr-only",children:e.label}),tooltip:e.label,disabled:e.disabled}))},md=[...gr.railLead??[],...gr.railTrail??[]].find(e=>"panel"in e&&e.id===yr),gd=Boolean(ro?.foldable),yd=ro?.label??(Ft?io.pageSections:io.templateSections),bd=gd&&Yr(Bt),vd=/* @__PURE__ */ht(mt,{children:[bi.map((e,n)=>{if(no(e)||to(e)||Zt(e.type))return null;const t=lr===String(e.props.id),o=Boolean(e.props._hidden);Bl(e);const r=String(e.props.id),i=gr.hasOwnRows?.(e)??!1,l=jl(e)||i,s=l&&Yr(r),d=Ol(e.type),a=1===d.length?`${r}:${d[0]}`:null,c=a?{...En(a),index:Ai(a).length}:void 0,p=bs.dragging,u=c&&p&&cs(p,c)?c:void 0,{rowProps:f,...h}=bs.row({item:{id:r,zone:Oe,index:n,type:e.type},place:{...En(Oe),index:n},into:u,canDrag:!vr(e.type,e)},{"data-node-id":r,onClick:bl(()=>al(n))});/* @__PURE__ */
29
- return ht(Jn,{children:[n>0&&zl(n),
30
- /* @__PURE__ */ft(We,{words:lo,icon:/* @__PURE__ */ft(Nr,{type:e.type,size:13}),name:ji(e),preview:kl(e),marks:Sl(e),shared:Xl(e),onSelect:()=>al(n),nameSlot:Zi(Oe,n,r,ji(e)),selected:t,hidden:o,...h,fold:l?{open:!s,label:"section",onToggle:()=>Kr(r)}:void 0,actions:/* @__PURE__ */ht(mt,{children:[vl(Oe,n,ji(e)),wl(e,Oe,n),xl(Oe,n,e,ji(e))]}),rowProps:f}),jl(e)&&!s&&/* @__PURE__ */ht(He,{children:[ad(e,1),gr.partRows?.(e,id)]}),i&&!s&&/* @__PURE__ */ft(He,{children:gr.ownRows?.(e,n,id)})]},String(e.props.id??n))}),ns>0&&zl(ns)]}),kd=(e,n,t)=>{const o=String(e.props.id),r=Il(e).length>0||Pl(e)||Boolean(xr(e.type)),i=r&&Yr(o),l="header"===t?io.header:io.footer,s=Or.rowName?Or.rowName(e,"section",l):l;/* @__PURE__ */
31
- return ht(mt,{children:[
32
- /* @__PURE__ */ft(We,{words:lo,icon:/* @__PURE__ */ft(Nr,{type:t,size:13}),name:s,preview:kl(e),marks:Sl(e),badge:Xl(e)?void 0:_l,shared:Xl(e),onSelect:()=>al(n),nameSlot:Zi(Oe,n,o,s),selected:lr===String(e.props.id),fold:r?{open:!i,label:"section",onToggle:()=>Kr(o)}:void 0,actions:wl(e,Oe,n)??void 0,rowProps:{"data-node-id":o,onClick:bl(()=>al(n))}}),r&&!i&&/* @__PURE__ */ft(He,{children:dd(e,1)})]})};return(gr.wrap??(e=>e))(
33
- /* @__PURE__ */ft(ee,{target:Uo,children:/* @__PURE__ */ht("div",{ref:Ho,className:"sf-editor es-editor",style:dn(Vr),onContextMenu:ol.onEditorContextMenu,...p(xn),children:[
34
- /* @__PURE__ */ht(qe,{children:[
35
- /* @__PURE__ */ht("div",{className:"es-cluster es-cluster--left",children:[fd?/* @__PURE__ */ft(Xn,{variant:"secondary",className:"es-barbtn",leftIcon:/* @__PURE__ */ft(ye,{}),onClick:fd.onPress,children:io.railMedia}):null,
36
- /* @__PURE__ */ft(en,{label:io.bar.undo,disabled:Boolean(jt)||!Ht.hasPast,onClick:()=>Ht.back(),children:/* @__PURE__ */ft(rt,{})}),
37
- /* @__PURE__ */ft(en,{label:io.bar.redo,disabled:Boolean(jt)||!Ht.hasFuture,onClick:()=>Ht.forward(),children:/* @__PURE__ */ft(it,{})})]}),
38
- /* @__PURE__ */ht(nn,{children:[
39
- /* @__PURE__ */ft(tn,{devices:Co,value:Po,onChange:$o}),
40
- /* @__PURE__ */ft(en,{label:io.bar.refresh,tip:io.bar.refreshTip,onClick:()=>{Wo.current=(()=>{const e=Uo?.document;if(!e)return null;const n=bi.findIndex(to),t=n>=0?n:bi.length;let o=null;for(let n=0;n<t;n++){const t=bi[n]?.props?.id;if(null==t)continue;const r=$n(e,`[data-easel-block="${CSS.escape(String(t))}"]`);if(!r)continue;const i=r.getBoundingClientRect().top;i<=4&&(null===o||i>o.offset)&&(o={id:String(t),offset:i})}if(!o){const e=Ut?.props?.id??bi[0]?.props?.id;null!=e&&(o={id:String(e),offset:0})}return o})(),Vo(e=>e+1)},children:/* @__PURE__ */ft(lt,{})}),gr.barView?.()]}),
41
- /* @__PURE__ */ht(nn,{kind:"right",style:{minWidth:300},children:[
42
- /* @__PURE__ */ft(v,{input:Go,words:io.saveStatus}),Nn?/* @__PURE__ */ft(Nn,{}):null,gr.barLead?.(),gr.barTrail?.(),gr.mainAction||!gr.barMain?/* @__PURE__ */ft(k,{input:Go,action:_r,readOnly:Boolean(jt),saveSwitch:Lt,onToggleAutoSave:Pt,onSaveNow:Qo,bar:io.bar,words:io.saveStatus}):gr.barMain()]})]}),
43
- /* @__PURE__ */ft(b,{}),
44
- /* @__PURE__ */ht("div",{className:"sf-body",children:[xo?/* @__PURE__ */ht(mt,{children:[
45
- /* @__PURE__ */ht("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left","aria-label":io.leftPanel,children:[
46
- /* @__PURE__ */ht("div",{className:"es-paneltabs es-paneltabs--with-hide",children:[
47
- /* @__PURE__ */ft(N,{side:"left",onHide:hi}),
48
- /* @__PURE__ */ft("span",{className:"es-paneltabs-divider","aria-hidden":"true"}),
49
- /* @__PURE__ */ft(Gn,{variant:"underline",block:!0,"aria-label":io.bar.views,value:hd.value,onChange:hd.press,items:hd.items})]}),Zo?/* @__PURE__ */ft(C,{at:er?{label:(e=>{const n=ds(e.zone);if(n)return io.add.addingTo({name:Or.rowName?yl(n,!0):$i(n.type)});if(e.zone===Oe){const n=bi[e.index];return n&&!to(n)?io.add.addingBefore({name:yl(n,!0)}):io.add.addingAtEnd}const t=us(e.zone);return t?io.add.addingTo({name:t.parentName}):io.add.addingHere})(er),onClear:()=>nr(null)}:void 0,placeBlocks:er&&er.zone!==Oe?us(er.zone)?.choices:void 0,canTake:er?e=>{if(!er)return null;const n={...En(er.zone),index:er.index};if(hs(e,n))return null;if("shared"===e.kind&&er.zone===Oe&&!Kt.shared?.nodeOf(e.section))return io.shared.alreadyHere;const t=ds(er.zone);if(t)return io.add.notInside({name:yl(t,!0)});if(er.zone===Oe)return io.add.onlySections;const o=us(er.zone);return o?io.add.notInside({name:o.parentName}):io.add.onlySections}:void 0,onPick:er?e=>{if(!er)return;const n={...En(er.zone),index:er.index};hs(e,n)&&(ms(e,n),gl())}:void 0,itemFor:e=>({id:`new:${e.kind}:${Ot(e)}`,zone:"",index:-1,type:"template"===e.kind?e.template.node.type:"shared"===e.kind?e.section.node.type:Ot(e),add:e}),session:ys,siteWide:gr.addPanelRow?.(gl),onClose:gl,readOnly:Boolean(jt)}):md?md.panel({onHide:hi,notify:Zr}):/* @__PURE__ */ht(mt,{children:[
50
- /* @__PURE__ */ft(I,{icon:/* @__PURE__ */ft(ge,{}),title:io.layers,context:ho,actions:/* @__PURE__ */ht(mt,{children:[!jt&&/* @__PURE__ */ft(on,{label:io.add.title,onClick:()=>hl(null),children:/* @__PURE__ */ft(st,{size:15})}),
51
- /* @__PURE__ */ft(on,{label:os?io.expandAll:io.collapseAll,title:0===ts.length?io.nothingToFold:void 0,disabled:0===ts.length,onClick:()=>Dr(e=>{const n=new Set(ts);return os?new Set([...e].filter(e=>!n.has(e))):/* @__PURE__ */new Set([...e,...ts])}),children:/* @__PURE__ */ft(wt,{expand:os})})]})}),
52
- /* @__PURE__ */ht(Ue,{className:"sf-tree sf-scroll",words:lo,children:[ql&&/* @__PURE__ */ht(mt,{children:[!Yl&&/* @__PURE__ */ft(Je,{children:io.header}),ld(ql)]}),Dt&&!(Yl&&ql)&&/* @__PURE__ */ht(mt,{children:[!Yl&&/* @__PURE__ */ft(Je,{children:io.header}),!oo&&/* @__PURE__ */ft(We,{words:lo,icon:/* @__PURE__ */ft(Nr,{type:"header",size:13}),name:io.header,badge:Zl?void 0:_l,shared:Zl,onSelect:yi,selected:rr.kind===eo?.kind,rowProps:{onClick:bl(yi)}})]}),Hl&&!(Yl&&ql)&&kd(Hl,Wl,"header"),!gd&&/* @__PURE__ */ft(Je,{children:yd}),gd?/* @__PURE__ */ht(mt,{children:[
53
- /* @__PURE__ */ft(We,{words:lo,icon:null,name:yd,fold:{open:!bd,label:yd,onToggle:()=>Kr(Bt)}}),!bd&&/* @__PURE__ */ft(He,{children:vd})]}):vd,Dt&&!Yl&&/* @__PURE__ */ft(Je,{children:io.footer}),Vl&&!(Yl&&es)&&kd(Vl,Dl,"footer"),es&&ld(es),gr.treeFoot?.()]})]})]}),
54
- /* @__PURE__ */ft(rn,{side:"left",width:Vr.left,min:sn.left,max:ln,defaultWidth:h.left,label:io.resizeLeftPanel,onResize:Ur})]}):/* @__PURE__ */ft(P,{side:"left",onShow:hi}),
55
- /* @__PURE__ */ht("div",{ref:ei,className:"sf-center sf-scroll","data-sf-canvas-head":ii?"":void 0,style:{overflowX:pi?"auto":"hidden",overflowY:"hidden"},children:[ii&&/* @__PURE__ */ft("div",{ref:li,className:"sf-canvas-head",children:/* @__PURE__ */ft(ii,{device:Po})}),
56
- /* @__PURE__ */ht("div",{className:"sf-frame-scaler",style:ui,children:[
57
- /* @__PURE__ */ft("div",{className:"sf-frame "+(Po===No?"":`sf-frame--${Po}`),style:fi,children:/* @__PURE__ */ht("div",{className:"sf-preview-host",children:[
58
- /* @__PURE__ */ft(De.Provider,{value:Jl,children:/* @__PURE__ */ft(Ve.Provider,{value:Ql,children:/* @__PURE__ */ft(mo,{},Do)})}),
59
- /* @__PURE__ */ft(gn,{canvas:Uo,session:ys,model:Vs,measure:Hs,canDrop:Js,onDrop:Ks,choose:Os,tag:zs,onPick:Gs,dropOn:Qs?{accepts:(e,n)=>{if(!e.media||!Qs||n.item.rung)return!1;const t=Ln(Vt.data,ki,n.item.id);return null!==t&&Qs.takes(t.node)},onDrop:(e,n)=>(e=>{const n=qs();n&&Qs&&nd(n).then(n=>{n&&td(n,e.item.id)})})(n),label:()=>io.canvasReplaceImage}:void 0,onZoneAdd:od,onSeamAdd:od,zoneAddLabel:io.canvasAddBlock,words:so.canvas,readOnly:Boolean(jt),revision:Vt.data}),tr.length>0&&!Jo&&/* @__PURE__ */ft("div",{className:"sf-preview-gaps",children:tr.map(e=>
60
- /* @__PURE__ */ft(yn,{index:e.index,label:io.addSectionHere,onInsert:()=>hl(e.index),className:void 0===e.height?"sf-preview-gap":"sf-preview-gap sf-preview-gap--tight",style:void 0===e.height?{top:e.top}:{top:e.top,height:e.height}},e.index))})]})}),$s?/* @__PURE__ */ft(St,{canvas:Uo,tabs:js,onSelect:Hi,onPointer:Ps}):null]})]}),zo?/* @__PURE__ */ht(mt,{children:[In?
61
- /* @__PURE__ */ft("div",{className:"es-sidepanel es-sidepanel--right","data-es-host-panel":"",children:In}):/* @__PURE__ */ft(mt,{children:/* @__PURE__ */ft(u,{value:{selectChild:Ll,addChild:Al,childRowName:Gi,blockRowName:rs},children:/* @__PURE__ */ft(go,{mode:rr,onOpenWebsiteSettings:gr.openSettings??(()=>{}),onOpenSiteStyles:gr.openStyles,onOpenPageStyles:gr.openPageStyles,onSelectNode:Mr,onNotify:Zr,onHidePanel:mi,nodeActions:Ut?Be(Yt,Ut.type):Nt})})}),
62
- /* @__PURE__ */ft(rn,{side:"right",width:Vr.right,min:sn.right,max:ln,defaultWidth:h.right,label:io.resizeSettingsPanel,onResize:Jr})]}):
63
- /* @__PURE__ */ft(P,{side:"right",onShow:mi})]}),ol.menu,
64
- /* @__PURE__ */ft(ie,{}),Oi?/* @__PURE__ */ft(yt,{name:Oi.name,onMake:e=>(async(e,n)=>{const t=bi.find(n=>String(n.props.id)===e),o=Kt.shared;if(!t||!o)return;let r;try{r=await B(Ci).create(n,t)}catch{return void Zr(io.shared.makeFailed,"error")}o.adopt(t,r),Bi(null)})(Oi.id,e),onCancel:()=>Bi(null)}):null]})}))}export{Pt as ScreenChrome};
@@ -1 +0,0 @@
1
- import{removeCanvasStyle as e,upsertCanvasStyle as n}from"./chunk-FR7EEKFF.js";import{useState as t,useEffect as o,useRef as r}from"react";var c="[data-easel-block]",s="[data-easel-dropzone]",u="iframe#preview-frame";function i(e){const n=e.contentDocument;if(!n||!e.contentWindow||"loading"===n.readyState||!n.body)return!1;if(e.hasAttribute("srcdoc"))return"about:srcdoc"===n.URL;const t=e.getAttribute("src");return!t||"about:blank"===t||"about:blank"!==n.URL}function l(e,n,{selector:t=u,readySelector:o}={}){let r=null,c=null,s=!1,l=!1,a=null;const d=()=>{a?.observer.disconnect(),a=null},m=()=>{if(l)return;let e=null;if(r&&i(r)){const n=r.contentDocument;(e=>{if(!o||e.querySelector(o))return d(),!0;if(a?.doc!==e){d();const n=e.defaultView?.MutationObserver;if(n){const t=new n(()=>m());t.observe(e,{childList:!0,subtree:!0}),a={doc:e,observer:t}}}return!1})(n)&&(e={frame:r,document:n,window:r.contentWindow})}else d();(e===c||!!e&&!!c&&e.frame===c.frame&&e.document===c.document)&&s||(s=!0,c=e,n(c))},f=()=>m(),v=()=>{const n=e.querySelector?.(t);n!==r?(r?.removeEventListener("load",f),r=n,r?.addEventListener("load",f),m()):m()},b=e.ownerDocument?.defaultView??e.defaultView,w=b?.MutationObserver,E=w?new w(e=>(e=>null!==r&&!r.isConnected||e.some(e=>[...e.addedNodes,...e.removedNodes].some(e=>"IFRAME"===e.nodeName||!!e.querySelector?.("iframe"))))(e)&&v()):null;return E?.observe(e,{childList:!0,subtree:!0}),v(),()=>{l=!0,E?.disconnect(),d(),r?.removeEventListener("load",f),r=null}}function a(e,{selector:n,readySelector:r}={}){const[c,s]=t(null);return o(()=>{const t=e.current;if(!t)return;const o=l(t,s,{selector:n,readySelector:r});return()=>{o(),s(null)}},[e,n,r]),c}var d="easel:canvas-typing",m="easel:canvas-typable";function f(e,n,t,{on:c="document",capture:s=!1}={}){const u=r(t);u.current=t;const i=e?.document??null,l=e?.window??null;o(()=>{const e="window"===c?l:i;if(!e)return;const t=e=>u.current(e);return e.addEventListener(n,t,s),()=>e.removeEventListener(n,t,s)},[i,l,n,c,s])}function v(e){const[n,o]=t(!1);return f(e,d,e=>o(Boolean(e.detail?.typing))),n}function b(t,r,c){const s=t?.document??null;o(()=>{if(!s)return;if(!c)return void e(s,r);const t=n(s,r,c),o=s.defaultView?.MutationObserver,u=o?new o(()=>{t.isConnected||n(s,r,c)}):null;return u?.observe(s.head??s.documentElement,{childList:!0}),()=>{u?.disconnect(),e(s,r)}},[s,r,c])}function w(e,{settle:n=[150,450]}={}){const[r,c]=t(0),s=e?.frame??null,u=e?.document??null,i=e?.window??null,l=n.join(",");return o(()=>{if(!s||!u||!i)return;const e=s.ownerDocument.defaultView;let t=!1,o=0;const r=()=>{if(t)return;t=!0;const n=()=>{t=!1,c(e=>e+1)};e?.requestAnimationFrame?o=e.requestAnimationFrame(n):n()},l=[],a=(e,n)=>{e.addEventListener(n,r,!0),l.push(()=>e.removeEventListener(n,r,!0))};a(u,"scroll"),a(i,"resize"),e&&(a(e,"scroll"),a(e,"resize"));const d=e?.ResizeObserver;if(d){const e=new d(r);e.observe(s),u.documentElement&&e.observe(u.documentElement),l.push(()=>e.disconnect())}const m=u.defaultView?.MutationObserver,f=u.body??u.documentElement;if(m&&f){const e=new m(r);e.observe(u===s.ownerDocument?s:f,{childList:!0,subtree:!0}),l.push(()=>e.disconnect())}const v=u.fonts;v&&a(v,"loadingdone");const b=n.map(e=>setTimeout(r,e));return r(),()=>{for(const e of l)e();for(const e of b)clearTimeout(e);o&&e?.cancelAnimationFrame&&e.cancelAnimationFrame(o)}},[s,u,i,l]),r}export{c as BLOCK_SELECTOR,u as CANVAS_SELECTOR,m as CANVAS_TYPABLE_EVENT,d as CANVAS_TYPING_EVENT,s as LIST_SELECTOR,i as isFrameReady,f as useCanvasEvent,a as useCanvasFrame,w as useCanvasLayout,b as useCanvasStyle,v as useCanvasTyping,l as watchCanvasFrame};
@@ -1,57 +0,0 @@
1
- import { a as DataConfig } from './types-Dq180WRV.js';
2
-
3
- /**
4
- * A BLOCK'S `resolveData`, RUN AS THE OLD LIBRARY RAN IT — `resolveComponentData` in the old library
5
- * 0.20 (`lib/resolve-component-data.ts`), because the documents both editors
6
- * hold were resolved by it and must go on resolving the same way.
7
- *
8
- * - It runs only when the item differs from the last one resolved for that id
9
- * (deep-equal), unless the trigger is "force"; the last answer is reused.
10
- * - `changed` names every prop of the new item with whether it differs from
11
- * the last one resolved (`changedProps`, the old library's `getChanged`).
12
- * - The block's own `metadata` is spread over the host's.
13
- * - The answer's `props` are spread OVER the item's, and its `readOnly` kept
14
- * when it has any key.
15
- * - Then every slot's children are resolved the same way, in order.
16
- *
17
- * What differs from the old library is only where the memory lives: the old library kept the last
18
- * change per id in a module-level object shared by every editor on the page;
19
- * here the host hands in its own (`createResolveCache`), one per editor.
20
- *
21
- * Pure apart from the resolvers it calls: no React, no browser global.
22
- */
23
- type ResolveTrigger = 'insert' | 'replace' | 'load' | 'force' | 'move';
24
- /** An item to resolve: a node, or the root (`{ props }`, no type). */
25
- interface ResolvableItem {
26
- type?: string;
27
- props: Record<string, unknown>;
28
- readOnly?: Record<string, boolean>;
29
- }
30
- interface ResolveCache {
31
- lastChange: Record<string, {
32
- item: ResolvableItem;
33
- resolved: ResolvableItem;
34
- }>;
35
- }
36
- declare const createResolveCache: () => ResolveCache;
37
- interface ResolveOptions {
38
- metadata?: Record<string, unknown>;
39
- trigger?: ResolveTrigger;
40
- cache?: ResolveCache;
41
- onResolveStart?: (item: ResolvableItem) => void;
42
- onResolveEnd?: (item: ResolvableItem) => void;
43
- }
44
- /** Deep equality of JSON-shaped values, as `fast-deep-equal` answers it for them. */
45
- declare function deepEqual(a: unknown, b: unknown): boolean;
46
- /** Every prop of `next`, and whether it differs from `last` (the old library's `getChanged`). */
47
- declare function changedProps(next: ResolvableItem | null | undefined, last: ResolvableItem | null | undefined): Record<string, boolean>;
48
- /**
49
- * Resolve one item and everything in its slots. `didChange` says whether the
50
- * answer differs from the item handed in.
51
- */
52
- declare function resolveNodeData<T extends ResolvableItem>(item: T, config: DataConfig, options?: ResolveOptions): Promise<{
53
- node: T;
54
- didChange: boolean;
55
- }>;
56
-
57
- export { type ResolvableItem as R, type ResolveCache as a, type ResolveOptions as b, type ResolveTrigger as c, changedProps as d, createResolveCache as e, deepEqual as f, resolveNodeData as r };