@mrakomor/core 0.0.11 → 0.0.13

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 (113) hide show
  1. package/dist/blockChrome.mjs +2 -2
  2. package/dist/blockInsertMenu.mjs +1 -1
  3. package/dist/chunk-2C6UDFD4.mjs +1 -0
  4. package/dist/chunk-4WTPDNPA.mjs +1 -0
  5. package/dist/chunk-5AD5MQXI.mjs +1 -0
  6. package/dist/{chunk-K2DMHAUD.mjs → chunk-7CJLTNHZ.mjs} +1 -1
  7. package/dist/{chunk-VYTSZ4S6.mjs → chunk-B2UFH244.mjs} +1 -1
  8. package/dist/chunk-BWK2S4UI.mjs +2 -0
  9. package/dist/chunk-D6K2L5O3.mjs +4 -0
  10. package/dist/{chunk-NR2BAMSW.mjs → chunk-DHFIX7FW.mjs} +2 -2
  11. package/dist/chunk-ERNLRJPB.mjs +1 -0
  12. package/dist/chunk-EXDY5TZH.mjs +1 -0
  13. package/dist/chunk-J4TTWQ6J.mjs +2 -0
  14. package/dist/{chunk-2VURZA2E.mjs → chunk-SG5PCGIV.mjs} +1 -1
  15. package/dist/chunk-ZHOZPQZH.mjs +1 -0
  16. package/dist/clipboard.cjs +3 -3
  17. package/dist/clipboard.mjs +3 -3
  18. package/dist/footer.cjs +3 -3
  19. package/dist/footer.mjs +2 -2
  20. package/dist/headline.cjs +2 -2
  21. package/dist/headline.mjs +1 -1
  22. package/dist/help.cjs +1 -1
  23. package/dist/help.mjs +2 -2
  24. package/dist/index.cjs +6 -6
  25. package/dist/index.mjs +4 -4
  26. package/dist/link.mjs +2 -2
  27. package/dist/list.cjs +3 -3
  28. package/dist/list.mjs +1 -1
  29. package/dist/paragraph.cjs +2 -2
  30. package/dist/paragraph.mjs +1 -1
  31. package/dist/slashCommand.cjs +2 -2
  32. package/dist/slashCommand.mjs +1 -1
  33. package/dist/tooltip.cjs +1 -1
  34. package/dist/tooltip.mjs +2 -2
  35. package/dist/tts.cjs +8 -8
  36. package/dist/tts.mjs +3 -3
  37. package/dist/types/Mrakomor.d.mts +230 -0
  38. package/dist/types/component/AbstractComponent.d.mts +69 -0
  39. package/dist/types/component/Editor.d.mts +8 -0
  40. package/dist/types/component/block/BlockComponent.d.mts +105 -0
  41. package/dist/types/component/block/BlockRegister.d.mts +29 -0
  42. package/dist/types/component/block/ExternalComponent.d.mts +42 -0
  43. package/dist/types/component/block/UnknownComponent.d.mts +3 -0
  44. package/dist/types/component/block/blockItemEquals.d.mts +6 -0
  45. package/dist/types/component/block/helpers.d.mts +319 -0
  46. package/dist/types/component/editorContext.d.mts +4 -0
  47. package/dist/types/component/entityRange/EntityRangeElement.d.mts +15 -0
  48. package/dist/types/component/inlineStyle/Bold.d.mts +4 -0
  49. package/dist/types/component/inlineStyle/InlineElement.d.mts +10 -0
  50. package/dist/types/component/inlineStyle/Italic.d.mts +4 -0
  51. package/dist/types/component/inlineStyle/Subscript.d.mts +4 -0
  52. package/dist/types/component/inlineStyle/Superscript.d.mts +4 -0
  53. package/dist/types/component/inlineStyle/Underline.d.mts +4 -0
  54. package/dist/types/component/inlineStyle/index.d.mts +5 -0
  55. package/dist/types/component/overlayMount.d.mts +46 -0
  56. package/dist/types/dom.d.mts +169 -0
  57. package/dist/types/emitter.d.mts +38 -0
  58. package/dist/types/index.d.mts +7 -0
  59. package/dist/types/namespaces.d.mts +17 -0
  60. package/dist/types/plugin/blockChrome/BlockChrome.d.mts +11 -0
  61. package/dist/types/plugin/blockChrome/index.d.mts +1 -0
  62. package/dist/types/plugin/blockInsertMenu/BlockInsertMenu.d.mts +6 -0
  63. package/dist/types/plugin/blockInsertMenu/index.d.mts +1 -0
  64. package/dist/types/plugin/clipboard/clipboardHelpers.d.mts +151 -0
  65. package/dist/types/plugin/clipboard/clipboardPlugin.d.mts +6 -0
  66. package/dist/types/plugin/clipboard/index.d.mts +1 -0
  67. package/dist/types/plugin/default/defaultMrakomorPlugin.d.mts +21 -0
  68. package/dist/types/plugin/dialog/Dialog.d.mts +23 -0
  69. package/dist/types/plugin/footer/footerPlugin.d.mts +7 -0
  70. package/dist/types/plugin/footer/index.d.mts +1 -0
  71. package/dist/types/plugin/headline/Headline.d.mts +29 -0
  72. package/dist/types/plugin/headline/index.d.mts +1 -0
  73. package/dist/types/plugin/help/HelpRegister.d.mts +15 -0
  74. package/dist/types/plugin/help/helpPlugin.d.mts +26 -0
  75. package/dist/types/plugin/help/helpSchema.d.mts +11 -0
  76. package/dist/types/plugin/help/index.d.mts +1 -0
  77. package/dist/types/plugin/linkEntity/LinkEntity.d.mts +37 -0
  78. package/dist/types/plugin/linkEntity/index.d.mts +1 -0
  79. package/dist/types/plugin/list/List.d.mts +61 -0
  80. package/dist/types/plugin/list/index.d.mts +1 -0
  81. package/dist/types/plugin/list/listHelpers.d.mts +166 -0
  82. package/dist/types/plugin/menu/Menu.d.mts +22 -0
  83. package/dist/types/plugin/menu/menuPlugin.d.mts +6 -0
  84. package/dist/types/plugin/paragraph/Paragraph.d.mts +16 -0
  85. package/dist/types/plugin/paragraph/index.d.mts +1 -0
  86. package/dist/types/plugin/slashCommand/SlashActionRegister.d.mts +12 -0
  87. package/dist/types/plugin/slashCommand/index.d.mts +1 -0
  88. package/dist/types/plugin/slashCommand/slashActionSchema.d.mts +29 -0
  89. package/dist/types/plugin/slashCommand/slashCommandHelpers.d.mts +77 -0
  90. package/dist/types/plugin/slashCommand/slashCommandPlugin.d.mts +11 -0
  91. package/dist/types/plugin/slashCommand/slashHelp.d.mts +12 -0
  92. package/dist/types/plugin/tooltip/Tooltip.d.mts +16 -0
  93. package/dist/types/plugin/tooltip/index.d.mts +1 -0
  94. package/dist/types/plugin/tts/TtsHeadline.d.mts +27 -0
  95. package/dist/types/plugin/tts/TtsList.d.mts +19 -0
  96. package/dist/types/plugin/tts/TtsParagraph.d.mts +9 -0
  97. package/dist/types/plugin/tts/TtsVoice.d.mts +52 -0
  98. package/dist/types/plugin/tts/index.d.mts +4 -0
  99. package/dist/types/register/Register.d.mts +50 -0
  100. package/dist/types/register/sortRegisterEntries.d.mts +7 -0
  101. package/dist/types/schema/blockContent.d.mts +34 -0
  102. package/dist/types/schema/blockRegister.d.mts +14 -0
  103. package/dist/types/schema/config.d.mts +6 -0
  104. package/dist/types/types.d.mts +636 -0
  105. package/package.json +36 -22
  106. package/dist/chunk-5VPYPKGA.mjs +0 -1
  107. package/dist/chunk-BCE45I7Q.mjs +0 -2
  108. package/dist/chunk-N4I2WZWF.mjs +0 -1
  109. package/dist/chunk-SCFD3XBH.mjs +0 -1
  110. package/dist/chunk-T7OO472O.mjs +0 -1
  111. package/dist/chunk-WQWE5UCN.mjs +0 -1
  112. package/dist/chunk-YO4ZA6PJ.mjs +0 -2
  113. package/dist/chunk-ZDMD7SRT.mjs +0 -4
@@ -1,3 +1,3 @@
1
- import {a}from'./chunk-B6JJAATK.mjs';import {c}from'./chunk-SCFD3XBH.mjs';import {o}from'./chunk-K2DMHAUD.mjs';(function(){if(!(typeof document>"u")){var o="mrakomor/core/plugin/blockChrome/BlockChrome.css",r=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(c){return c.getAttribute("data-mrakomor-css-path")===o});if(!r){var e=document.createElement("style");e.setAttribute("data-mrakomor-css",""),e.setAttribute("data-mrakomor-css-path",o),e.textContent=`.mrakomor-block-element{position:relative;padding-left:52px;margin-bottom:12px}.mrakomor-block-gutter{position:absolute;left:0;top:2px;display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .15s ease;pointer-events:all;user-select:none;z-index:1}.mrakomor-block-element:hover .mrakomor-block-gutter,.mrakomor-block-element--active .mrakomor-block-gutter,.mrakomor-block-drag-active .mrakomor-block-gutter{opacity:1}.mrakomor-block-add,.mrakomor-block-drag{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:transparent;color:#9ca3af;cursor:pointer;font-size:18px;line-height:1;transition:background .1s,color .1s}.mrakomor-block-add:hover,.mrakomor-block-drag:hover{background:#0000000f;color:#374151}.mrakomor-block-drag{cursor:grab}.mrakomor-block-element--dragging .mrakomor-block-drag,.mrakomor-block-drag-active .mrakomor-block-drag{cursor:grabbing}.mrakomor-block-element--dragging{opacity:.5}.mrakomor-block-body{min-width:0}.mrakomor-block-drop-indicator{position:absolute;left:52px;right:0;height:2px;background:#3b82f6;border-radius:1px;pointer-events:none;z-index:2}
2
- `,document.head.appendChild(e);}}})();var b='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="currentColor" aria-hidden="true"><circle cx="4" cy="3" r="1.2"/><circle cx="10" cy="3" r="1.2"/><circle cx="4" cy="7" r="1.2"/><circle cx="10" cy="7" r="1.2"/><circle cx="4" cy="11" r="1.2"/><circle cx="10" cy="11" r="1.2"/></svg>';function f(o,r){for(let e=0;e<r.length;e++){let c=r[e].getBoundingClientRect();if(o<c.top+c.height/2)return e}return r.length}function y(o,r,e,c){if(!o||!r)return;if(e>=c.length){let t=c[c.length-1];if(!t){o.style.display="none";return}let n=r.getBoundingClientRect(),a=t.getBoundingClientRect();o.style.display="block",o.style.top=`${a.bottom-n.top}px`;return}let d=c[e],m=r.getBoundingClientRect(),s=d.getBoundingClientRect();o.style.display="block",o.style.top=`${s.top-m.top}px`;}function k(){return o("div",{className:"mrakomor-block-gutter",contentEditable:false},[o("button",{type:"button",className:"mrakomor-block-add","aria-label":"Insert block",contentEditable:false},"+"),o("button",{type:"button",className:"mrakomor-block-drag","aria-label":"Drag to reorder",contentEditable:false,$dangerouslySetInnerHTML:b})])}function h({mrakomor:o$1}){let r=null,e=null;function c$1(){e?.blockElement&&e.blockElement.classList.remove("mrakomor-block-element--active","mrakomor-block-element--dragging"),e?.handle&&e.handle.releasePointerCapture?.(e.pointerId),r&&(r.style.display="none"),document.body.classList.remove("mrakomor-block-drag-active"),e=null;}function d(t){if(!e||t.pointerId!==e.pointerId)return;let n=o$1.getRoot()?.querySelector(".mrakomor-content");if(!n)return;let a=[...n.querySelectorAll(".mrakomor-block-element")],l=f(t.clientY,a);e.targetIndex=l,y(r,n,l,a);}function m(t){if(!e||t.pointerId!==e.pointerId)return;let{blockElement:n,targetIndex:a}=e;c$1(),o$1.command.moveBlockElement({blockElement:n,targetIndex:a});}function s(t){let n=t.target.closest?.(".mrakomor-block-drag");if(!n)return;t.preventDefault(),t.stopPropagation();let a=n.closest(".mrakomor-block-element");if(!a)return;e&&c$1();let l=o$1._getBlockElementIndex(a);if(l===-1)return;let p=t.pointerId??1;n.setPointerCapture?.(p),a.classList.add("mrakomor-block-element--active","mrakomor-block-element--dragging"),document.body.classList.add("mrakomor-block-drag-active"),e={blockElement:a,pointerId:p,handle:n,fromIndex:l,targetIndex:l};}return {wrapBlockElement(t){return [o(k),o("div",{className:"mrakomor-block-body",[c]:true},t)]},registerHandlers(){o$1.emitter.on(a.CLICK,t=>{let n=t.target?.closest?.(".mrakomor-block-add");if(!n)return;t.preventDefault?.(),t.stopPropagation?.();let a=n.closest(".mrakomor-block-element");a&&o$1.command.openBlockInsertMenu({blockElement:a,anchorRect:n.getBoundingClientRect()});}),o$1.emitter.on(a.KEYDOWN,t=>{t.key==="Escape"&&e&&c$1();});},onMount(){let{signal:t}=o$1.listenerAbortController;document.addEventListener("pointerdown",s,{capture:true,signal:t});let n=o$1.getRoot()?.querySelector(".mrakomor-content");n&&(r=document.createElement("div"),r.className="mrakomor-block-drop-indicator",r.style.display="none",n.append(r)),document.addEventListener("pointermove",d,{signal:t}),document.addEventListener("pointerup",m,{signal:t}),document.addEventListener("pointercancel",m,{signal:t});},onUnmount(){c$1(),r?.remove(),r=null;}}}
1
+ import {a}from'./chunk-B6JJAATK.mjs';import {c}from'./chunk-4WTPDNPA.mjs';import {p}from'./chunk-7CJLTNHZ.mjs';(function(){if(!(typeof document>"u")){var o="mrakomor/core/plugin/blockChrome/BlockChrome.css",r=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(c){return c.getAttribute("data-mrakomor-css-path")===o});if(!r){var e=document.createElement("style");e.setAttribute("data-mrakomor-css",""),e.setAttribute("data-mrakomor-css-path",o),e.textContent=`.mrakomor-block-element{position:relative;padding-left:52px;margin-bottom:12px}.mrakomor-block-gutter{position:absolute;left:0;top:2px;display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .15s ease;pointer-events:all;user-select:none;z-index:1}.mrakomor-block-element:hover .mrakomor-block-gutter,.mrakomor-block-element--active .mrakomor-block-gutter,.mrakomor-block-drag-active .mrakomor-block-gutter{opacity:1}.mrakomor-block-add,.mrakomor-block-drag{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:transparent;color:#9ca3af;cursor:pointer;font-size:18px;line-height:1;transition:background .1s,color .1s}.mrakomor-block-add:hover,.mrakomor-block-drag:hover{background:#0000000f;color:#374151}.mrakomor-block-drag{cursor:grab}.mrakomor-block-element--dragging .mrakomor-block-drag,.mrakomor-block-drag-active .mrakomor-block-drag{cursor:grabbing}.mrakomor-block-element--dragging{opacity:.5}.mrakomor-block-body{min-width:0}.mrakomor-block-drop-indicator{position:absolute;left:52px;right:0;height:2px;background:#3b82f6;border-radius:1px;pointer-events:none;z-index:2}
2
+ `,document.head.appendChild(e);}}})();var b='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="currentColor" aria-hidden="true"><circle cx="4" cy="3" r="1.2"/><circle cx="10" cy="3" r="1.2"/><circle cx="4" cy="7" r="1.2"/><circle cx="10" cy="7" r="1.2"/><circle cx="4" cy="11" r="1.2"/><circle cx="10" cy="11" r="1.2"/></svg>';function f(o,r){for(let e=0;e<r.length;e++){let c=r[e].getBoundingClientRect();if(o<c.top+c.height/2)return e}return r.length}function y(o,r,e,c){if(!o||!r)return;if(e>=c.length){let t=c[c.length-1];if(!t){o.style.display="none";return}let n=r.getBoundingClientRect(),a=t.getBoundingClientRect();o.style.display="block",o.style.top=`${a.bottom-n.top}px`;return}let d=c[e],m=r.getBoundingClientRect(),s=d.getBoundingClientRect();o.style.display="block",o.style.top=`${s.top-m.top}px`;}function k(){return p("div",{className:"mrakomor-block-gutter",contentEditable:false},[p("button",{type:"button",className:"mrakomor-block-add","aria-label":"Insert block",contentEditable:false},"+"),p("button",{type:"button",className:"mrakomor-block-drag","aria-label":"Drag to reorder",contentEditable:false,$dangerouslySetInnerHTML:b})])}function h({mrakomor:o}){let r=null,e=null;function c$1(){e?.blockElement&&e.blockElement.classList.remove("mrakomor-block-element--active","mrakomor-block-element--dragging"),e?.handle&&e.handle.releasePointerCapture?.(e.pointerId),r&&(r.style.display="none"),document.body.classList.remove("mrakomor-block-drag-active"),e=null;}function d(t){if(!e||t.pointerId!==e.pointerId)return;let n=o.getRoot()?.querySelector(".mrakomor-content");if(!n)return;let a=[...n.querySelectorAll(".mrakomor-block-element")],l=f(t.clientY,a);e.targetIndex=l,y(r,n,l,a);}function m(t){if(!e||t.pointerId!==e.pointerId)return;let{blockElement:n,targetIndex:a}=e;c$1(),o.command.moveBlockElement({blockElement:n,targetIndex:a});}function s(t){let n=t.target.closest?.(".mrakomor-block-drag");if(!n)return;t.preventDefault(),t.stopPropagation();let a=n.closest(".mrakomor-block-element");if(!a)return;e&&c$1();let l=o._getBlockElementIndex(a);if(l===-1)return;let p=t.pointerId??1;n.setPointerCapture?.(p),a.classList.add("mrakomor-block-element--active","mrakomor-block-element--dragging"),document.body.classList.add("mrakomor-block-drag-active"),e={blockElement:a,pointerId:p,handle:n,fromIndex:l,targetIndex:l};}return {wrapBlockElement(t){return [p(k),p("div",{className:"mrakomor-block-body",[c]:true},t)]},registerHandlers(){o.emitter.on(a.CLICK,t=>{let n=t.target?.closest?.(".mrakomor-block-add");if(!n)return;t.preventDefault?.(),t.stopPropagation?.();let a=n.closest(".mrakomor-block-element");a&&o.command.openBlockInsertMenu({blockElement:a,anchorRect:n.getBoundingClientRect()});}),o.emitter.on(a.KEYDOWN,t=>{t.key==="Escape"&&e&&c$1();});},onMount(){let{signal:t}=o.listenerAbortController;document.addEventListener("pointerdown",s,{capture:true,signal:t});let n=o.getRoot()?.querySelector(".mrakomor-content");n&&(r=document.createElement("div"),r.className="mrakomor-block-drop-indicator",r.style.display="none",n.append(r)),document.addEventListener("pointermove",d,{signal:t}),document.addEventListener("pointerup",m,{signal:t}),document.addEventListener("pointercancel",m,{signal:t});},onUnmount(){c$1(),r?.remove(),r=null;}}}
3
3
  export{k as BlockChrome,h as blockChromePlugin};
@@ -1 +1 @@
1
- import {a}from'./chunk-B6JJAATK.mjs';import {a as a$1}from'./chunk-SCFD3XBH.mjs';import'./chunk-K2DMHAUD.mjs';function _({mrakomor:n}){let l=null,i;function s(){l&&l.classList.remove("mrakomor-block-element--active"),l=null,i=void 0;}function m(){let e=n._getBlockElementIndex(l);return e!==-1?n._getBlockElements()[e]:n._getBlockElementByComponentId(i)}function r(e){let o=m();if(!o||!e?.component)return;let c=e.component.NAMESPACE,u=e.component.getStateSchema().parse({componentId:a$1(),component:c,...e.settings?{settings:e.settings}:{}});n.command.insertBlockElement({blockElement:o,namespace:c,newLineState:u,cursor:0}),s(),n.command.closeMenu();}return {registerEvents(){a.OPEN_BLOCK_INSERT_MENU="mrakomor:open-block-insert-menu",a.CLOSE_BLOCK_INSERT_MENU="mrakomor:close-block-insert-menu";},registerCommands(e){e.command.openBlockInsertMenu=({blockElement:o,anchorRect:c})=>{e.emit(a.OPEN_BLOCK_INSERT_MENU,{blockElement:o,anchorRect:c});},e.command.closeBlockInsertMenu=()=>{e.emit(a.CLOSE_BLOCK_INSERT_MENU);};},registerHandlers(){n.emitter.on(a.OPEN_BLOCK_INSERT_MENU,({blockElement:e,anchorRect:o})=>{s(),l=e,i=n._getBlockElementState(e)?.componentId,e?.classList.add("mrakomor-block-element--active"),n.command.closeTooltip?.();let c=n.register.blocks.list();n.command.openMenu({entries:c,anchorRect:o,highlightIndex:-1,ariaLabel:"Insert block",onSelect:r});}),n.emitter.on(a.CLOSE_BLOCK_INSERT_MENU,()=>{s(),n.command.closeMenu();}),n.emitter.on(a.CLOSE_MENU,s);}}}export{_ as blockInsertMenuPlugin};
1
+ import {a}from'./chunk-B6JJAATK.mjs';import {a as a$1}from'./chunk-4WTPDNPA.mjs';import'./chunk-7CJLTNHZ.mjs';function _({mrakomor:n}){let l=null,i;function s(){l&&l.classList.remove("mrakomor-block-element--active"),l=null,i=void 0;}function m(){let e=n._getBlockElementIndex(l);return e!==-1?n._getBlockElements()[e]:n._getBlockElementByComponentId(i)}function r(e){let o=m();if(!o||!e?.component)return;let c=e.component.NAMESPACE,u=e.component.getStateSchema().parse({componentId:a$1(),component:c,...e.settings?{settings:e.settings}:{}});n.command.insertBlockElement({blockElement:o,namespace:c,newLineState:u,cursor:0}),s(),n.command.closeMenu();}return {registerEvents(){a.OPEN_BLOCK_INSERT_MENU="mrakomor:open-block-insert-menu",a.CLOSE_BLOCK_INSERT_MENU="mrakomor:close-block-insert-menu";},registerCommands(e){e.command.openBlockInsertMenu=({blockElement:o,anchorRect:c})=>{e.emit(a.OPEN_BLOCK_INSERT_MENU,{blockElement:o,anchorRect:c});},e.command.closeBlockInsertMenu=()=>{e.emit(a.CLOSE_BLOCK_INSERT_MENU);};},registerHandlers(){n.emitter.on(a.OPEN_BLOCK_INSERT_MENU,({blockElement:e,anchorRect:o})=>{s(),l=e,i=n._getBlockElementState(e)?.componentId,e?.classList.add("mrakomor-block-element--active"),n.command.closeTooltip?.();let c=n.register.blocks.list();n.command.openMenu({entries:c,anchorRect:o,highlightIndex:-1,ariaLabel:"Insert block",onSelect:r});}),n.emitter.on(a.CLOSE_BLOCK_INSERT_MENU,()=>{s(),n.command.closeMenu();}),n.emitter.on(a.CLOSE_MENU,s);}}}export{_ as blockInsertMenuPlugin};
@@ -0,0 +1 @@
1
+ import {a as a$1}from'./chunk-ZHOZPQZH.mjs';import {a}from'./chunk-P7IKAZYZ.mjs';import {q,l,g,p}from'./chunk-7CJLTNHZ.mjs';var i=class extends q{static get nodeName(){return "span"}static get NAMESPACE(){return "namespace.EntityRangeElement"}static match(t){return t?.nodeName===this.nodeName.toUpperCase()||t?.entity?.type===this.NAMESPACE}static getStateSchema(t){return a.any()}constructor(t){super(t),this.mrakomor=l(a$1),this.element=g(null);}render(){return p(this.constructor.nodeName,{},this.props.children)}};export{i as a};
@@ -0,0 +1 @@
1
+ import {h as h$1}from'./chunk-7CJLTNHZ.mjs';var C=E(),S=E(),B=E(),I=Array.from({length:256},(t,e)=>(e<=15?"0":"")+e.toString(16));function E(){return Math.floor(Math.random()*16777215)}function M(){return S=(S+1)%16777215,S}function v(){let t=Math.floor(Date.now()/1e3);t=parseInt(t,10)%4294967295;let e=M(),n=String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,t&255,C>>16&255,C>>8&255,C&255,B>>8&255,B&255,e>>16&255,e>>8&255,e&255),o="";for(let l=0;l<n.length;l++)o+=I[n.charCodeAt(l)];return o}var x=Symbol("block-element"),_=Symbol("block-element-body"),g=Symbol("selectable-element");function h(t,e){let n=t;for(n?.nodeType===Node.TEXT_NODE&&(n=n.parentElement);n&&n[e]===void 0;)n=n.parentElement;return n??null}function y(t){return t?h(t.startContainer,x):null}function O(t){return h(t,x)}function b(t){return t?h(t.startContainer,g):null}function T(t){return h(t,g)}function w(t){return t?t[g]!==void 0?[t]:[...t.children].filter(e=>e[g]!==void 0):[]}function A(t,e){return e?w(t).indexOf(e):-1}function W(t,e){let n=b(e);return !n||!t?.contains(n)?null:{element:n,index:A(t,n)}}function N(){return window.getSelection()}function p(){let t=N();return t.rangeCount>0?t.getRangeAt(0).cloneRange():null}function j(){let t=p();if(!t)return 0;t.collapse(true);let e=b(t),n=y(t),o=e??s(n);return d(o,t.startContainer,t.startOffset)}var i=null;function F(){i=G();}function D(){i&&H(i);}function K(){i&&(i={start:i.end,end:i.end,element:i.element},D());}function L(t,e){let n=b(e);return n||(s(t)??t?.childNodes?.[0]??null)}function d(t,e,n){if(!t)return 0;if(e===t){if(e.nodeType===Node.TEXT_NODE)return n;let c=0,u=t.childNodes,a=Math.min(n,u.length);for(let f=0;f<a;f++)c+=u[f].textContent.length;return c}if(e.nodeType===Node.ELEMENT_NODE&&!t.contains(e))return 0;let o=0,l=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),r=l.nextNode();for(;r;){if(r===e)return o+n;o+=r.textContent.length,r=l.nextNode();}return o}function G(){let t=p();if(!t)return null;let e=y(t),n=L(e,t);return {start:d(n,t.startContainer,t.startOffset),end:d(n,t.endContainer,t.endOffset),element:e,selectableElement:n}}function Y(t=p()){if(!t||t.collapsed)return null;let e=O(t.startContainer),n=O(t.endContainer);if(!e||!n)return null;let o=T(t.startContainer)??s(e),l=T(t.endContainer)??s(n);return {startBlock:e,endBlock:n,startOffset:d(o,t.startContainer,t.startOffset),endOffset:d(l,t.endContainer,t.endOffset)}}function H(t){if(!t)return;let{start:e,end:n,element:o,selectableElement:l}=t,r=l?.isConnected&&l||s(o)||o?.childNodes?.[0];if(!r)return;let c=m(r,e),u=m(r,n),a=document.createRange();a.setStart(c.startContainer,c.startOffset),a.setEnd(u.endContainer,u.endOffset);let f=N();f.removeAllRanges(),f.addRange(a);}function m(t,e){let n=document.createRange();if(!t)return n;if(e<=0)return n.setStart(t,0),n.collapse(true),n;let o=0,l=[t];for(;l.length>0;){let r=l.pop();if(r.nodeType===Node.TEXT_NODE){let c=r.textContent.length;if(o+c>=e)return n.setEnd(r,e-o),n.setStart(r,e-o),n;o+=c;}else if(r.childNodes&&r.childNodes.length>0)for(let c=r.childNodes.length-1;c>=0;c--)l.push(r.childNodes[c]);}return n.setEnd(t,t.childNodes.length),n.setStart(t,t.childNodes.length),n}function q(t,e){let n=m(t,e),o=N();o.removeAllRanges(),o.addRange(n);}function s(t){if(!t)return null;let e=k(t);return e?.firstElementChild??e?.firstChild}function z(t){if(!t?.[x])return null;let e=s(t);return e?h$1(e)?.classInstance:null}function k(t){if(!t)return null;for(let e of t.children)if(e[_])return e;return null}function J(t){return k(t)?.childNodes?.[0]?.contentEditable==="true"}function P(t,e,n,o=12){let l=t.getBoundingClientRect(),r=typeof e?.getBoundingClientRect=="function"?e.getBoundingClientRect():e??{left:0,top:0},c=n?.offsetHeight??40;return {x:r.left-l.left,y:r.top-l.top-c-o}}function Q(t,e){let n=t.getBoundingClientRect(),o=e?.offsetWidth??420,l=e?.offsetHeight??320,r=16;return {x:Math.max(r,(n.width-o)/2),y:Math.max(r,(n.height-l)/2)}}export{v as a,x as b,_ as c,g as d,y as e,O as f,b as g,T as h,w as i,W as j,p as k,j as l,F as m,D as n,K as o,d as p,G as q,Y as r,H as s,q as t,s as u,z as v,J as w,P as x,Q as y};
@@ -0,0 +1 @@
1
+ import {a as a$1}from'./chunk-SG5PCGIV.mjs';import {a as a$2}from'./chunk-P7IKAZYZ.mjs';import {d,c,z,j,q as q$1,k as k$1,o as o$1,D,n,C,p as p$1,w as w$1}from'./chunk-D6K2L5O3.mjs';import {a,b}from'./chunk-B6JJAATK.mjs';import {a as a$3,d as d$1,k,e,w,u,l,v,t,r}from'./chunk-4WTPDNPA.mjs';import {p,s,b as b$1,o}from'./chunk-7CJLTNHZ.mjs';var B=class o extends a$1{static get NAMESPACE(){return c}static getStateSchema(t){return a$2.object({component:a$2.string().default(o.NAMESPACE),componentId:a$2.string().default(t?.getAttribute("data-componentid")||a$3()),properties:a$2.object({}).default({}),settings:a$2.object({}).default({})}).default({})}constructor(t){super(t),this.root=null;}getState(){return this.state.peek()}isAtomic(){return true}static appendExchangeState(){return null}onMount(){}onUnmount(){}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return p("div",{className:t,contentEditable:false,style:"position: relative;",$ref:n=>{this.element=n;},"data-state":()=>JSON.stringify(this.state.get()),"data-componentid":this.state.peek().componentId},[p("div",{$ref:n=>{this.root=n;},style:"display: block;",contentEditable:false}),p("span",{style:"position: absolute; bottom: 0; right: 0; width: 10px; height: 100%; outline: none;",contentEditable:true,[d$1]:true},document.createTextNode("\xA0"))])}onKeydown(t){t.key!=="Backspace"&&t.key!=="ArrowUp"&&t.key!=="ArrowDown"&&t.preventDefault(),z(this,t);}};var L=class extends B{static get NAMESPACE(){return d}onMount(){let t=p("div",{style:"user-select: none;",contentEditable:false},()=>`Unknown component: ${this.state.get().component}`);s(this.root,t);}onUnmount(){this.root.innerHTML="";}};function T(o,t,r){let n=o._getBlockElementIndex(t);if(n===-1)return false;let e=o.getContent();return e.splice(n,1,o.normalizeComponentState(r)),o._setContentState(e),true}function q(o$1){let{mrakomor:t}=o$1,{blockElement:r,range:n,newLineState:e$1,originalLineState:c,namespace:s,position:i,cursor:l}=o$1,m,a;if(i||(r?m=t._getBlockElementIndex(r):n&&(m=t._getBlockElementIndex(e(n))),m===void 0||m===-1))return;a=m+1;let E=t.getContent();c&&E.splice(m,1,t.normalizeComponentState(c)),e$1&&(e$1.component=s,E.splice(a,0,t.normalizeComponentState(e$1))),t._setContentState(E),o(()=>{typeof l=="number"&&v(t._getBlockElements()[a])?.setCursor?.({cursor:l});});}function Q(o$1){let{mrakomor:t$1}=o$1,{blockElement:r,range:n,blocks:e$1,cursor:c,cursorBlockIndex:s=0}=o$1;if(!Array.isArray(e$1)||e$1.length===0)return;let i=r??(n?e(n):null),l=t$1._getBlockElementIndex(i);if(l===-1)return;let m=[...t$1._getContentState()];m.splice(l,1,...e$1.map(a=>t$1.normalizeComponentState(a))),t$1._setContentState(m),o(()=>{if(typeof c!="number")return;t$1._syncBlockElementsFromDom();let a=u(t$1._getBlockElements()[l+s]);a?.isConnected&&t(a,c);});}function Z(o){let{mrakomor:t,blockElement:r,namespace:n}=o,e=t._getBlockElementState(r);if(!e)return;let c=t.register.blocks.getByNamespace(e.component),s=t.register.blocks.getByNamespace(n),i=(o.exchangeState&&k$1(o.exchangeState))??c?.toExchangeState?.(e)??k$1({properties:e.properties,settings:e.settings}),l=s?.fromExchangeState?.(i)??i;T(t,r,{...l,component:n,componentId:a$3()});}function tt(o){let{mrakomor:t,blockElement:r,targetIndex:n}=o,e=t._getBlockElementIndex(r);if(e===-1||typeof n!="number")return;let c=n>e?n-1:n;if(c===e)return;let s=[...t._getContentState()],[i]=s.splice(e,1);s.splice(c,0,i),t._setContentState(s);}function et(o$1){let{mrakomor:t$1,blockElement:r,range:n}=o$1,e$1=t$1._getBlockElementIndex(r);if(e$1!==-1){let c=t$1.getContent();c.splice(e$1,1),t$1._setContentState(c);}o(()=>{let c=e(n);t(u(c),0);});}function nt(o){let{mrakomor:t,state:r,blockElement:n}=o,e=t._getBlockElementState(n);if(!e)return;let c=structuredClone(e),s=r?.offset,i=r?.length,l=r?.entity?.type;c.properties.entityRanges=(c.properties.entityRanges??[]).filter(m=>!(m?.offset===s&&m?.length===i&&m?.entity?.type===l)),T(t,n,c),t.command.closeDialog?.();}function ot(o){let{mrakomor:t,namespace:r,state:n$1}=o,e$1=o.range??k(),c=o.blockElement??e(e$1),s=o$1(t,c,e$1);if(!s||s.item.entityRanges===void 0)return;let{Constructor:i,current:l,element:m,itemIndex:a,item:E}=s,f=D(E.entityRanges,m,e$1,{namespace:r,entityData:n$1});if(f===null)return;let p=n(i,l,a,{entityRanges:f});T(t,c,p);}function rt(o){let{mrakomor:t,style:r}=o,n$1=o.range??k(),e$1=o.blockElement??e(n$1),c=o$1(t,e$1,n$1);if(!c||c.item.inlineStyleRanges===void 0)return;let{Constructor:s,current:i,element:l,itemIndex:m,item:a}=c,E=C(a.inlineStyleRanges,l,n$1,r);if(E===null)return;let f=n(s,i,m,{inlineStyleRanges:E});T(t,e$1,f);}function ct(o){let{mrakomor:t,blockElement:r,previousBlockElement:n}=o,e=t._getBlockElementIndex(n),c=t._getBlockElementIndex(r);if(e===-1||c===-1)return;let s=t.getContent(),i=s[c],l=s[e],m=t.register.blocks.getByNamespace(l.component),a=t.register.blocks.getByNamespace(i.component),E=(o.exchangeState&&k$1(o.exchangeState))??a?.toExchangeState?.(i)??k$1({properties:i.properties,settings:i.settings}),f=m?.appendExchangeState?.(l,E);f&&(s.splice(c,1),s.splice(e,1,t.normalizeComponentState(f.state)),t._setContentState(s),p$1({mrakomor:t,resultIndex:e,cursor:f.cursor,fallbackBlockElement:n,itemIndex:f.itemIndex}));}function st(o){let{mrakomor:t}=o,r=t.getRoot(),n=o.relatedTarget instanceof Node&&r.contains(o.relatedTarget),e=r?.contains(document.activeElement)??false;if(n||e)return;let[s,i]=b$1(()=>[t.getContent(),t._getContentState()]);s.length===i.length&&s.every((m,a)=>m===i[a])||t.setContent(s);}function lt(o){let{mrakomor:t$1,clientX:r,clientY:n}=o;if(typeof n!="number")return;let e=t$1._getContentRoot(),c=t$1._getBlockElements(),s=c[0],i=c[c.length-1];if(!e||!s||!i)return;let l=n<s.getBoundingClientRect().top,m=n>i.getBoundingClientRect().bottom;if(!l&&!m)return;if(typeof r=="number"){let E=e.getBoundingClientRect();if(r<E.left||r>E.right)return}let a=u(l?s:i);a?.isConnected&&t(a,l?0:a.textContent.length);}function it(o){let t=k();return e(t)?.getNodeComponent?.()?.classInstance?.onKeydown?.(o)}function at(o){v(o)?.setCursor?.();}function mt(o,t){if(!t)return true;let r=o.cloneRange();return r.setEnd(t,t.childNodes.length),!j(r.toString())}function J(o$1,t$1){let{mrakomor:r$1}=o$1,n=r(t$1);if(!n||n.startBlock===n.endBlock)return;let e=r$1._getBlockElementIndex(n.startBlock),c=r$1._getBlockElementIndex(n.endBlock),s=r$1.getContent(),i=e>=0?s[e]:void 0,l=c>=0?s[c]:void 0;if(!(e>=0&&c>e&&typeof i?.properties?.text=="string"&&typeof l?.properties?.text=="string"))return;o$1.preventDefault();let{content:a,cursor:E,resultIndex:f}=w$1(s,{startIndex:e,endIndex:c,startOffset:n.startOffset,endOffset:n.endOffset});r$1._setContentState(a.map(p=>r$1.normalizeComponentState(p))),o(()=>{let p=r$1._getBlockElements()[f];p&&typeof E=="number"&&t(u(p),E);});}function ut(o){if(o.key!=="Backspace")return;let{mrakomor:t}=o,r=k();if(!r)return;let n=e(r);if(!n)return;if(!r.collapsed){J(o,r);return}let e$1=n?.previousSibling,c=w(e$1),s=w(n),i=u(n),l$1=!j(i?.textContent);if(!(r.startOffset===0||l()===0||l$1))return;let a=t._getBlockElementIndex(n),E=e$1?t._getBlockElementIndex(e$1):-1,f=t._getBlockElementState(n),p=t._getBlockElementState(e$1),y=e$1?v(e$1):null;if(!e$1||E<0){o.preventDefault();return}if(p&&f&&q$1(f)&&y&&!y.isAtomic?.()){if(l$1&&!q$1(p)){o.preventDefault();let O=t.getContent();O.splice(a,1),t._setContentState(O),at(e$1);return}o.preventDefault(),t.command.mergeBlockElement({blockElement:n,previousBlockElement:e$1,range:r});return}y?.isAtomic?.()&&(!c&&r.startOffset===0||n?.textContent==="\xA0"&&!s)&&(o.preventDefault(),t.command.removeBlockElement({blockElement:e$1,range:r})),f&&!q$1(f)&&o.preventDefault();}function Et(o){if(o.key!=="Delete")return;let{mrakomor:t}=o,r=k();if(!r)return;let n=e(r);if(!n)return;if(!r.collapsed){J(o,r);return}let e$1=u(n);if(!(!j(e$1?.textContent)||mt(r,e$1)))return;let i=t._getBlockElementIndex(n),l=n?.nextSibling,m=l?t._getBlockElementIndex(l):-1,a=t._getBlockElementState(n),E=t._getBlockElementState(l),f=v(n),p=l?v(l):null;if(!l||m<0){o.preventDefault();return}if(E&&a&&q$1(E)&&f&&!f.isAtomic?.()){let y=u(l);if(!j(y?.textContent)&&!q$1(a)){o.preventDefault();let K=t.getContent();K.splice(i+1,1),t._setContentState(K);return}o.preventDefault(),t.command.mergeBlockElement({blockElement:l,previousBlockElement:n,range:r});return}if(p?.isAtomic?.()){o.preventDefault(),t.command.removeBlockElement({blockElement:l,range:r});return}if(a&&!q$1(a)){o.preventDefault();return}o.preventDefault();}function Tt(o){return {resolveComponent:t=>t===B.NAMESPACE?B:L,registerCommands(t){t.emitter.on(a.INSERT_BLOCK_ELEMENT,b(q)),t.emitter.on(a.REPLACE_BLOCK_ELEMENT,b(Q)),t.emitter.on(a.TRANSFORM_BLOCK_ELEMENT,b(Z)),t.emitter.on(a.MOVE_BLOCK_ELEMENT,b(tt)),t.emitter.on(a.REMOVE_BLOCK_ELEMENT,b(et)),t.emitter.on(a.REMOVE_ENTITY_RANGE,b(nt)),t.emitter.on(a.INSERT_ENTITY_RANGE,b(ot)),t.emitter.on(a.INSERT_INLINE_STYLE_RANGE,b(rt)),t.emitter.on(a.MERGE_BLOCK_ELEMENT,b(ct));},registerHandlers(t){t.emitter.on(a.FOCUSOUT,st),t.emitter.on(a.KEYDOWN,b(it)),t.emitter.on(a.KEYDOWN,b(ut)),t.emitter.on(a.KEYDOWN,b(Et)),t.emitter.on(a.CLICK,b(lt));},registerListeners(t){let r=t.getRoot(),{signal:n}=t.listenerAbortController;r.addEventListener("keydown",e=>t.emitDomEvent(a.KEYDOWN,e),{signal:n}),r.addEventListener("beforeinput",e=>t.emitDomEvent(a.BEFORE_INPUT,e),{signal:n}),r.addEventListener("input",e=>t.emitDomEvent(a.INPUT,e),{signal:n}),r.addEventListener("focusin",e=>t.emitDomEvent(a.FOCUSIN,e),{signal:n}),r.addEventListener("focusout",e=>t.emitDomEvent(a.FOCUSOUT,e),{signal:n}),r.addEventListener("click",e=>t.emitDomEvent(a.CLICK,e),{signal:n}),document.addEventListener("selectionchange",e=>t.emitDomEvent(a.SELECTION_CHANGE,e),{signal:n});}}}export{L as a,T as b,Tt as c};
@@ -1 +1 @@
1
- var pe=class{next(...e){}error(...e){}complete(...e){}},te=class{#e=new Set;pipe(...e){return e.reduce((t,n)=>n(t),this)}next(...e){Array.from(this.#e).forEach(t=>{typeof t=="function"?t(...e):t.next(...e);});}error(...e){Array.from(this.#e).forEach(t=>{t?.error?.(...e),this.unsubscribe(t);});}complete(...e){Array.from(this.#e).forEach(t=>{t?.complete?.(...e),this.unsubscribe(t);});}subscribe(e){return this.#e.add(e),{unsubscribe:()=>{this.unsubscribe(e);}}}unsubscribe(e){this.#e.delete(e);}};var V=Symbol("@esmj/signals:type"),D=Symbol("@esmj/signals:name");var p=null,ne=false,re=[];function E(e){let t=p;p=null;let n=e();return p=t,n}function We(){ne=false;let e=be();for(let n of e)n.get();let t=re;re=[];for(let n of t)n();}function ge(){ne||(ne=true,queueMicrotask(We));}function oe(e){re.push(e),ge();}var me=Symbol("@esmj/signals:internal observable"),w=Symbol("@esmj/signals:original function"),Xe=class extends te{#e=new Set;#r=null;constructor(e){super(),this.#r=e,this.pipe(t=>{let n=t.subscribe.bind(t),o=t.unsubscribe.bind(t);return t.subscribe=r=>{n(r),this.#e.add(r);},t.unsubscribe=r=>{o(r),this.#e.delete(r);},t});}watch(e){if(typeof e.next!="function"&&(e.next=()=>E(()=>{this.#e.add(e),this.#r();}),e.next[w]=void 0),e instanceof xe&&e.next[w]===void 0){let t=e.next.bind(e);e.next=()=>E(()=>{this.#e.add(e),t(),this.#r();}),e.next[w]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[w]){let n=t.get,o=n.bind(t);t.get=()=>E(()=>(this.#e.delete(t),o())),t.get[w]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[w]?e.next[w]:e.next,e.get=e.get[w]?e.get[w]:e.get,this.#e.delete(e),this.unsubscribe(e)}},z=null;function ye(e){z=new Xe(e);}ye(()=>{ge();});function be(){return z.getPending()}function we(e){return z.watch(e)}function Se(e){return z.unwatch(e)}var S=Symbol("@esmj/signals:no error"),xe=class ve extends pe{#e=true;#r=false;#n=null;#o=this.#d();#a=null;#l=null;#i=0;#s=new Map;#t=S;constructor(t,n){super(),this.#a=t,this.#l=n,this.debug=n?.debug,this[V]="computed",this[D]=n?.debug??null,this.get=this.get.bind(this);}#c(){for(let{unsubscribe:t}of this.#o.dependencies.values())t();this.#o.dependencies.clear();}#d(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[D],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#s.keys()]}}#f(){for(let[t,n]of this.#s)if(t instanceof ve&&E(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#n[me].next();}get(){if(this.#r)throw new Error("Cycle detected in computed signal");if(this.#n||(this.#n=R(this.#u(),this.#l)),(this.#e||this.#t!==S)&&(this.#s.size===0||this.#f()?this.#u():this.#e=false),p&&p.sourceRevisions.set(this,this.#i),this.#t!==S)throw this.#t;return this.#n.get()}peek(){if(this.#n||(this.#n=R(this.#u(),this.#l)),(this.#e||this.#t!==S)&&(this.#s.size===0||this.#f()?this.#u():this.#e=false),this.#t!==S)throw this.#t;return this.#n.peek()}#u(){this.#r=true,this.#e=false,this.#t=S,this.#c(),this.#o.sourceRevisions.clear();let t=p;p=this.#o;let n;try{n=this.#a();}catch(o){this.#t=o;}return p=t,this.#s=this.#o.sourceRevisions,this.#o.sourceRevisions=new Map,this.#r=false,n instanceof Promise&&(n=n.then(o=>{this.#t=S,this.#n.set(o);}).catch(o=>{this.#t=o;})),this.#t===S&&this.#n&&this.#n.set(n),this.#i++,n}destroy(){this.#c(),this.#s.clear(),this.#e=true,this.#t=S;}};function C(e,t){return new xe(e,t)}function m(e,t){let n,{debug:o,...r}=t??{},s=C(()=>{n?.(),n=e();},{equals:()=>false,...r});s.get(),we(s);let i=()=>{n?.(),s.destroy(),Se(s);};return i[Symbol.dispose]=i,i[V]="effect",i[D]=o??null,i.__RX_COMPUTED__=s,i}function R(e,t={}){let n=t?.equals??Object.is,o=0,r=new te;function s(){return p&&(p.dependencies.set(r,r.subscribe(p.observer)),p.sourceRevisions.set(d,o)),e}function i(){return e}function u(c){if(!n(e,c)){e=c,o++,r.next();}return e}function l(){return o}let d={get:s,set:u,peek:i,getRevision:l,[me]:r,[V]:"signal",[D]:t?.debug??null};return d}function W(){return Date.now().toString(32).substring(5)+Math.random().toString(32).substring(2)}var Ae=Symbol("node-component"),X=Symbol("node-internal"),qe=Symbol("keep-literal"),J=Symbol("raw-props");function ue(e){return typeof e=="function"?e:e!=null&&typeof e.get=="function"?()=>e.get():()=>e}function le(e,t){let n=e.children!==void 0?e.children:t;return Array.isArray(n)?n[0]:n}function Ke(e){let t=()=>e;return t[qe]=true,t}var Ye=new Set(["template","script"]);function Ge(e,t){let n=(e==null?"span":String(e)).trim(),o=n;Ye.has(n.toLowerCase())&&(console.warn(`[esmj-dom] tagName "${e}" cannot render children in normal flow and is not supported as a reconciliation wrapper; falling back to "span".`),o="span");let r=document.createElement(o);return o==="span"&&(r.style.display="contents"),r.setAttribute(t,W()),r}function ae(e,t,n){let o=Ge(e,t);return n?.id&&o.setAttribute("id",n.id),o}function Je(e){let t=null,n=()=>t,o=s=>(t=s??null,typeof e=="function"&&e(t),t),r={get:n,set:o,[Symbol.toPrimitive](){return t?String(t):""}};return Object.defineProperty(r,"current",{get(){return t},set(s){o(s);},enumerable:true,configurable:false}),new Proxy(r,{get(s,i,u){if(Reflect.has(s,i))return Reflect.get(s,i,u);if(!t)return;let l=t[i];return typeof l=="function"?l.bind(t):l},set(s,i,u,l){return Reflect.has(s,i)||!t?Reflect.set(s,i,u,l):(t[i]=u,true)},has(s,i){return Reflect.has(s,i)||!!t&&i in t}})}var Te=null;function y(){return Te}function K(e){Te=e;}function Fe(e){return e?.[Ae]||null}function Ce(e,t){e[Ae]=t;}function Y(e,t={disposers:[],id:W()}){return e?.[X]?e[X]:(e&&(e[X]=t),t)}function Qe(e){return e[X]}function x(e,t){let n=Qe(e);n||(n=Y(e)),n.disposers.push(t);}function _(e,t,n){e.has(t)||e.set(t,[]),e.get(t).push(n);}function N(e,t){let n=y();K(e);try{return t()}finally{K(n);}}var G=new Map,B=new Map,Ne=new Map;function Oe(e,t){let n=typeof t=="function"?t:r=>!!t?.includes(r),o=Object.create(null);for(let r of Object.keys(e)){let s=e[r];r==="children"||n(r)?o[r]=s:s?.[qe]?o[r]=s():s!=null&&typeof s.get=="function"?o[r]=s:typeof s=="function"?o[r]=C(s):o[r]=R(s);}return o}function Q(e,t){if(e===t)return true;if(e==null||t==null||typeof e!="object"||typeof t!="object")return false;let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?false:n.every(r=>{let s=Object.getOwnPropertyDescriptor(e,r),i=Object.getOwnPropertyDescriptor(t,r);if(!s||!i)return false;let u="value"in s?s.value:s.get?.call(e),l="value"in i?i.value:i.get?.call(t);return Q(u,l)})}function Ze(e){return {id:Symbol("context-id"),defaultValue:e}}function et(e,t){let n=y();n&&n.contexts.set(e.id,t);}function tt(e){let t=y();return t?.contexts?.has(e.id)?t.contexts.get(e.id):e.defaultValue}function nt(e){let t=y();if(!t){console.warn("onMount called outside of a component context");return}_(G,t.id,e);}function rt(e){let t=y();if(!t){console.warn("onUnmount called outside of a component context");return}_(B,t.id,e);}function ot(e){oe(()=>{setTimeout(e,0);});}function T(e){let t=e.componentId,n=G.get(t);if(n){G.delete(t);for(let o of n){let r=o();typeof r=="function"&&_(B,t,r);}}}function st(e){let t=B.get(e);if(t){B.delete(e);for(let n of t)n();}}function it(e){let t=Ne.get(e);if(t){Ne.delete(e);for(let n of t)n();}}function U(e){if(!e)return;let t=Y(e);if(t?.disposers?.length){for(let o of t.disposers)try{o();}catch(r){console.error("[esmj-dom] cleanupTree: disposer threw, cleanup continues",r);}t.disposers=[];}let n=Fe(e);if(n&&(st(n.componentId),it(n.componentId)),e.childNodes){let o=e.firstChild;for(;o;){let r=o.nextSibling;U(o),o=r;}}}function k(e){return e!=null&&typeof e=="object"&&typeof e.$constructor=="function"}function ke(e){return typeof e=="function"&&typeof e.prototype?.render=="function"}function ut(e,t,n){let o=W(),r={componentId:o,$children:n,element:null,classInstance:null,$constructor(){let s=ke(e)?void 0:e[J],i={...Oe(t??{},s),children:n},u=y(),l={disposers:[],id:o,contexts:new Map(u?.contexts)};K(l);let d;if(ke(e)){r.ClassConstructor=e;let f=new e(i);r.classInstance=f,typeof f.onMount=="function"&&_(G,o,()=>{f.onMount?.();}),typeof f.onUnmount=="function"&&_(B,o,()=>{f.onUnmount?.();}),d=f.render();}else d=e(i);K(u);let c=lt(d);if(r.element=c,c instanceof DocumentFragment&&c.childNodes.length)for(let f of c.childNodes)Y(f,l),Ce(f,r);else Y(c,l),c instanceof Node&&Ce(c,r);return c}};return r}function ce(e,t){let n=t.$constructor();n instanceof Node&&e.appendChild(n),queueMicrotask(()=>{T(t);});}function lt(e){return e instanceof Node?e:k(e)?e.$constructor():typeof e=="string"||typeof e=="number"?document.createTextNode(String(e)):document.createTextNode("")}var je={className:"class",htmlFor:"for"},Me=new Set(["value","defaultValue","checked","selected","indeterminate"]),at=new Set(["srcdoc"]),ct=new Set(["href","src","action","formaction","xlink:href"]),ft=new Set(["securitypolicyviolation"]),dt=new Set(["contenteditable","draggable","spellcheck"]);function P(e){return e!=null&&typeof e=="object"&&typeof e.get=="function"&&!(e instanceof Node)}var Le=Symbol("Fragment");function ht(e,t,n){if(e===Le){let r=document.createDocumentFragment();return ie(r,Re(n)),r}if(typeof e=="function")return ut(e,t||{},n);typeof e!="string"&&(n=t,t=e,e="div"),t=t||{};let o=document.createElement(e);return t.id&&o.setAttribute("id",t.id),Z(o,t),ie(o,Re(n)),o}function se(e,t){t instanceof DocumentFragment?e.replaceChildren(t):e.innerHTML=t??"";}function pt(e){return typeof e!="string"?false:e.replace(/[\p{White_Space}\p{Cc}]+/gu,"").toLowerCase().startsWith("javascript:")}function gt(e,t){if(typeof e!="string")return false;let n=e.toLowerCase();return at.has(n)?true:ct.has(n)&&t!==null&&t!==void 0&&pt(String(t))}function De(e){return typeof e!="string"?e:je[e]?je[e]:e}function mt(e,t){let n=De(e),o=typeof n=="string"?n.toLowerCase():String(n).toLowerCase();return dt.has(o)&&(t===true||t===false||t==="true"||t==="false")?String(t):t==null||t===false?null:t}function Ee(e,t,n){let o=mt(t,n);if(o===null){e.removeAttribute(t);return}if(gt(t,o)){e.removeAttribute(t),console.warn(`[esmj-dom] Blocked unsafe attribute "${String(t)}" on <${e.tagName.toLowerCase()}>`);return}e.setAttribute(t,o);}function Z(e,t){let n=y();for(let[o,r]of Reflect.ownKeys(t).map(s=>[s,t[s]]))if(o!=="id"){if(o=De(o),o==="$ref"){typeof r=="function"?r(e):typeof r=="object"&&r!==null&&(r.current=e);continue}if(o==="$dangerouslySetInnerHTML"){if(P(r)){let s=m(()=>{N(n,()=>{se(e,r.get());});});x(e,s);}else if(typeof r=="function"){let s=m(()=>{N(n,()=>{se(e,r());});});x(e,s);}else se(e,r);continue}if(o==="style"){if(P(r)){let s=m(()=>{N(n,()=>{Object.assign(e.style,r.get());});});x(e,s);}else typeof r=="object"&&r!==null?Object.assign(e.style,r):e.setAttribute("style",r);continue}if(typeof o=="string"&&o.startsWith("on")&&typeof r=="function"){let s=o.slice(2).toLowerCase();if(ft.has(s)){console.warn(`[esmj-dom] Blocked unsafe event binding "${o}" on <${e.tagName.toLowerCase()}>`);continue}e.addEventListener(s,r);continue}if(P(r)||typeof r=="function"){let s=o,i=m(()=>{N(n,()=>{let u=typeof r=="function"?r():r.get();Me.has(s)?e[s]=u??"":Ee(e,s,u);});});x(e,i);continue}Me.has(o)||typeof o=="symbol"?e[o]=r??"":Ee(e,o,r);}}function Re(e){return e==null?[]:Array.isArray(e)?e.flat(Number.POSITIVE_INFINITY):[e]}function ie(e,t){for(let n of t)Ie(e,n);}function Ie(e,t){if(!(t==null||t===false||t===true)){if(t instanceof Node){e.appendChild(t);return}if(typeof t=="string"||typeof t=="number"){e.appendChild(document.createTextNode(String(t)));return}if(typeof t=="function"){$e(e,t);return}if(k(t)){ce(e,t);return}if(P(t)){$e(e,()=>t.get());return}if(Array.isArray(t)){ie(e,t);return}e.appendChild(document.createTextNode(String(t)));}}function F(e){let t=null,n=e;return k(e)&&(t=e,n=e.$constructor()),n instanceof DocumentFragment?{nodes:Array.from(n.childNodes),instance:t}:n instanceof Node?{nodes:[n],instance:t}:n==null||n===false||n===true?{nodes:[],instance:t}:{nodes:[document.createTextNode(String(n))],instance:t}}function ee(e,t=true){for(let n of e)t&&U(n),n.remove();}function $e(e,t){let n=y(),o=document.createComment("");e.appendChild(o);let r=[],s=m(()=>{N(n,()=>{let i=t(),{nodes:u,instance:l}=F(i);ee(r),u.length&&o.after(...u),l&&queueMicrotask(()=>T(l)),r=u;});});x(e,s);}var Pt=class{constructor(e){this.props=e;}};function Pe(e,t,n,o){let{equals:r=Q,tagName:s="span",...i}=o??{},u=ae(s,"data-for",i);Z(u,i);let l=y(),d=[],c=new Map,f=C(()=>e()),$=m(()=>{let A=f.get(),H=Array.isArray(A)?A:[],O=[],j=[],L=new Set;for(let a=0;a<H.length;a++){let h=H[a],g=t(h,a);if(L.has(g)){console.error(`For: duplicate key "${String(g)}" detected; ignoring later item at index ${a}`);continue}L.add(g),O.push(h),j.push(g);}let q=new Map(d.map(a=>[a.key,a])),v=[];for(let a=0;a<O.length;a++){let h=j[a],g=O[a],M=q.get(h);if(M)c.get(h).set(g),v.push(M),q.delete(h);else {let fe=R(g,{equals:r});c.set(h,fe);let Be={...fe,set(){}},de={key:h,nodes:[]};N(l,()=>{let Ue=n(Be,a),{nodes:He,instance:he}=F(Ue);de.nodes=He,he&&queueMicrotask(()=>T(he));}),v.push(de);}}for(let[a,h]of q)ee(h.nodes),c.delete(a);let b=null;for(let a=v.length-1;a>=0;a--){let h=v[a].nodes;for(let g=h.length-1;g>=0;g--){let M=h[g];(M.parentNode!==u||M.nextSibling!==b)&&u.insertBefore(M,b),b=M;}}d=v;});return x(u,$),u}function yt(e,t,n,o){if(typeof e=="function")return Pe(e,t,n,o);let{each:r,keyFn:s,equals:i,tagName:u,children:l,...d}=e??{};if(typeof s!="function")throw new Error('For: "keyFn" prop is required and must be a function');let c=ue(r),f=le(e??{},t);return Pe(c,s,f,{...d,equals:i,tagName:u})}yt[J]=e=>e!=="each";function _t(e,t){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("mount: container not found");e instanceof DocumentFragment||(U(e),e.innerHTML=""),k(t)?ce(e,t):t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t)));}function Bt(e){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("unmount: container not found");U(e),e.innerHTML="";}function Ut(e,t){let n=null;if(k(t)?(n=t.$constructor(),queueMicrotask(()=>T(t))):t instanceof Node?n=t:n=document.createTextNode(String(t)),n instanceof HTMLElement){let o=C(()=>!!e()),r=m(()=>{n.style.display=o.get()?"":"none";});x(n,r);}return n}export{E as a,C as b,m as c,R as d,Ke as e,Je as f,Fe as g,Q as h,Ze as i,et as j,tt as k,nt as l,rt as m,ot as n,ht as o,Pt as p,yt as q,_t as r,Bt as s,Ut as t};
1
+ var pe=class{next(...e){}error(...e){}complete(...e){}},te=class{#e=new Set;pipe(...e){return e.reduce((t,n)=>n(t),this)}next(...e){Array.from(this.#e).forEach(t=>{typeof t=="function"?t(...e):t.next(...e);});}error(...e){Array.from(this.#e).forEach(t=>{t?.error?.(...e),this.unsubscribe(t);});}complete(...e){Array.from(this.#e).forEach(t=>{t?.complete?.(...e),this.unsubscribe(t);});}subscribe(e){return this.#e.add(e),{unsubscribe:()=>{this.unsubscribe(e);}}}unsubscribe(e){this.#e.delete(e);}};var V=Symbol("@esmj/signals:type"),D=Symbol("@esmj/signals:name");var p=null,ne=false,re=[];function E(e){let t=p;p=null;let n=e();return p=t,n}function We(){ne=false;let e=be();for(let n of e)n.get();let t=re;re=[];for(let n of t)n();}function ge(){ne||(ne=true,queueMicrotask(We));}function oe(e){re.push(e),ge();}var me=Symbol("@esmj/signals:internal observable"),w=Symbol("@esmj/signals:original function"),Xe=class extends te{#e=new Set;#r=null;constructor(e){super(),this.#r=e,this.pipe(t=>{let n=t.subscribe.bind(t),o=t.unsubscribe.bind(t);return t.subscribe=r=>{n(r),this.#e.add(r);},t.unsubscribe=r=>{o(r),this.#e.delete(r);},t});}watch(e){if(typeof e.next!="function"&&(e.next=()=>E(()=>{this.#e.add(e),this.#r();}),e.next[w]=void 0),e instanceof xe&&e.next[w]===void 0){let t=e.next.bind(e);e.next=()=>E(()=>{this.#e.add(e),t(),this.#r();}),e.next[w]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[w]){let n=t.get,o=n.bind(t);t.get=()=>E(()=>(this.#e.delete(t),o())),t.get[w]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[w]?e.next[w]:e.next,e.get=e.get[w]?e.get[w]:e.get,this.#e.delete(e),this.unsubscribe(e)}},z=null;function ye(e){z=new Xe(e);}ye(()=>{ge();});function be(){return z.getPending()}function we(e){return z.watch(e)}function Se(e){return z.unwatch(e)}var S=Symbol("@esmj/signals:no error"),xe=class ve extends pe{#e=true;#r=false;#n=null;#o=this.#d();#a=null;#l=null;#i=0;#s=new Map;#t=S;constructor(t,n){super(),this.#a=t,this.#l=n,this.debug=n?.debug,this[V]="computed",this[D]=n?.debug??null,this.get=this.get.bind(this);}#c(){for(let{unsubscribe:t}of this.#o.dependencies.values())t();this.#o.dependencies.clear();}#d(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[D],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#s.keys()]}}#f(){for(let[t,n]of this.#s)if(t instanceof ve&&E(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#n[me].next();}get(){if(this.#r)throw new Error("Cycle detected in computed signal");if(this.#n||(this.#n=R(this.#u(),this.#l)),(this.#e||this.#t!==S)&&(this.#s.size===0||this.#f()?this.#u():this.#e=false),p&&p.sourceRevisions.set(this,this.#i),this.#t!==S)throw this.#t;return this.#n.get()}peek(){if(this.#n||(this.#n=R(this.#u(),this.#l)),(this.#e||this.#t!==S)&&(this.#s.size===0||this.#f()?this.#u():this.#e=false),this.#t!==S)throw this.#t;return this.#n.peek()}#u(){this.#r=true,this.#e=false,this.#t=S,this.#c(),this.#o.sourceRevisions.clear();let t=p;p=this.#o;let n;try{n=this.#a();}catch(o){this.#t=o;}return p=t,this.#s=this.#o.sourceRevisions,this.#o.sourceRevisions=new Map,this.#r=false,n instanceof Promise&&(n=n.then(o=>{this.#t=S,this.#n.set(o);}).catch(o=>{this.#t=o;})),this.#t===S&&this.#n&&this.#n.set(n),this.#i++,n}destroy(){this.#c(),this.#s.clear(),this.#e=true,this.#t=S;}};function C(e,t){return new xe(e,t)}function m(e,t){let n,{debug:o,...r}=t??{},s=C(()=>{n?.(),n=e();},{equals:()=>false,...r});s.get(),we(s);let i=()=>{n?.(),s.destroy(),Se(s);};return i[Symbol.dispose]=i,i[V]="effect",i[D]=o??null,i.__RX_COMPUTED__=s,i}function R(e,t={}){let n=t?.equals??Object.is,o=0,r=new te;function s(){return p&&(p.dependencies.set(r,r.subscribe(p.observer)),p.sourceRevisions.set(d,o)),e}function i(){return e}function u(c){if(!n(e,c)){e=c,o++,r.next();}return e}function l(){return o}let d={get:s,set:u,peek:i,getRevision:l,[me]:r,[V]:"signal",[D]:t?.debug??null};return d}function W(){return Date.now().toString(32).substring(5)+Math.random().toString(32).substring(2)}var Ae=Symbol("node-component"),X=Symbol("node-internal"),qe=Symbol("keep-literal"),J=Symbol("raw-props");function ue(e){return typeof e=="function"?e:e!=null&&typeof e.get=="function"?()=>e.get():()=>e}function le(e,t){let n=e.children!==void 0?e.children:t;return Array.isArray(n)?n[0]:n}function Ke(e){let t=()=>e;return t[qe]=true,t}var Ye=new Set(["template","script"]);function Ge(e,t){let n=(e==null?"span":String(e)).trim(),o=n;Ye.has(n.toLowerCase())&&(console.warn(`[esmj-dom] tagName "${e}" cannot render children in normal flow and is not supported as a reconciliation wrapper; falling back to "span".`),o="span");let r=document.createElement(o);return o==="span"&&(r.style.display="contents"),r.setAttribute(t,W()),r}function ae(e,t,n){let o=Ge(e,t);return n?.id&&o.setAttribute("id",n.id),o}function Je(e){let t=null,n=()=>t,o=s=>(t=s??null,typeof e=="function"&&e(t),t),r={get:n,set:o,[Symbol.toPrimitive](){return t?String(t):""}};return Object.defineProperty(r,"current",{get(){return t},set(s){o(s);},enumerable:true,configurable:false}),new Proxy(r,{get(s,i,u){if(Reflect.has(s,i))return Reflect.get(s,i,u);if(!t)return;let l=t[i];return typeof l=="function"?l.bind(t):l},set(s,i,u,l){return Reflect.has(s,i)||!t?Reflect.set(s,i,u,l):(t[i]=u,true)},has(s,i){return Reflect.has(s,i)||!!t&&i in t}})}var Te=null;function y(){return Te}function K(e){Te=e;}function Fe(e){return e?.[Ae]||null}function Ce(e,t){e[Ae]=t;}function Y(e,t={disposers:[],id:W()}){return e?.[X]?e[X]:(e&&(e[X]=t),t)}function Qe(e){return e[X]}function x(e,t){let n=Qe(e);n||(n=Y(e)),n.disposers.push(t);}function _(e,t,n){e.has(t)||e.set(t,[]),e.get(t).push(n);}function N(e,t){let n=y();K(e);try{return t()}finally{K(n);}}var G=new Map,B=new Map,Ne=new Map;function Oe(e,t){let n=typeof t=="function"?t:r=>!!t?.includes(r),o=Object.create(null);for(let r of Object.keys(e)){let s=e[r];r==="children"||n(r)?o[r]=s:s?.[qe]?o[r]=s():s!=null&&typeof s.get=="function"?o[r]=s:typeof s=="function"?o[r]=C(s):o[r]=R(s);}return o}function Q(e,t){if(e===t)return true;if(e==null||t==null||typeof e!="object"||typeof t!="object")return false;let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?false:n.every(r=>{let s=Object.getOwnPropertyDescriptor(e,r),i=Object.getOwnPropertyDescriptor(t,r);if(!s||!i)return false;let u="value"in s?s.value:s.get?.call(e),l="value"in i?i.value:i.get?.call(t);return Q(u,l)})}function Ze(e){return {id:Symbol("context-id"),defaultValue:e}}function et(e,t){let n=y();n&&n.contexts.set(e.id,t);}function tt(e){let t=y();return t?.contexts?.has(e.id)?t.contexts.get(e.id):e.defaultValue}function nt(e){let t=y();if(!t){console.warn("onMount called outside of a component context");return}_(G,t.id,e);}function rt(e){let t=y();if(!t){console.warn("onUnmount called outside of a component context");return}_(B,t.id,e);}function ot(e){oe(()=>{setTimeout(e,0);});}function T(e){let t=e.componentId,n=G.get(t);if(n){G.delete(t);for(let o of n){let r=o();typeof r=="function"&&_(B,t,r);}}}function st(e){let t=B.get(e);if(t){B.delete(e);for(let n of t)n();}}function it(e){let t=Ne.get(e);if(t){Ne.delete(e);for(let n of t)n();}}function U(e){if(!e)return;let t=Y(e);if(t?.disposers?.length){for(let o of t.disposers)try{o();}catch(r){console.error("[esmj-dom] cleanupTree: disposer threw, cleanup continues",r);}t.disposers=[];}let n=Fe(e);if(n&&(st(n.componentId),it(n.componentId)),e.childNodes){let o=e.firstChild;for(;o;){let r=o.nextSibling;U(o),o=r;}}}function k(e){return e!=null&&typeof e=="object"&&typeof e.$constructor=="function"}function ke(e){return typeof e=="function"&&typeof e.prototype?.render=="function"}function ut(e,t,n){let o=W(),r={componentId:o,$children:n,element:null,classInstance:null,$constructor(){let s=ke(e)?void 0:e[J],i={...Oe(t??{},s),children:n},u=y(),l={disposers:[],id:o,contexts:new Map(u?.contexts)};K(l);let d;if(ke(e)){r.ClassConstructor=e;let f=new e(i);r.classInstance=f,typeof f.onMount=="function"&&_(G,o,()=>{f.onMount?.();}),typeof f.onUnmount=="function"&&_(B,o,()=>{f.onUnmount?.();}),d=f.render();}else d=e(i);K(u);let c=lt(d);if(r.element=c,c instanceof DocumentFragment&&c.childNodes.length)for(let f of c.childNodes)Y(f,l),Ce(f,r);else Y(c,l),c instanceof Node&&Ce(c,r);return c}};return r}function ce(e,t){let n=t.$constructor();n instanceof Node&&e.appendChild(n),queueMicrotask(()=>{T(t);});}function lt(e){return e instanceof Node?e:k(e)?e.$constructor():typeof e=="string"||typeof e=="number"?document.createTextNode(String(e)):document.createTextNode("")}var je={className:"class",htmlFor:"for"},Me=new Set(["value","defaultValue","checked","selected","indeterminate"]),at=new Set(["srcdoc"]),ct=new Set(["href","src","action","formaction","xlink:href"]),ft=new Set(["securitypolicyviolation"]),dt=new Set(["contenteditable","draggable","spellcheck"]);function P(e){return e!=null&&typeof e=="object"&&typeof e.get=="function"&&!(e instanceof Node)}var Le=Symbol("Fragment");function ht(e,t,n){if(e===Le){let r=document.createDocumentFragment();return ie(r,Re(n)),r}if(typeof e=="function")return ut(e,t||{},n);typeof e!="string"&&(n=t,t=e,e="div"),t=t||{};let o=document.createElement(e);return t.id&&o.setAttribute("id",t.id),Z(o,t),ie(o,Re(n)),o}function se(e,t){t instanceof DocumentFragment?e.replaceChildren(t):e.innerHTML=t??"";}function pt(e){return typeof e!="string"?false:e.replace(/[\p{White_Space}\p{Cc}]+/gu,"").toLowerCase().startsWith("javascript:")}function gt(e,t){if(typeof e!="string")return false;let n=e.toLowerCase();return at.has(n)?true:ct.has(n)&&t!==null&&t!==void 0&&pt(String(t))}function De(e){return typeof e!="string"?e:je[e]?je[e]:e}function mt(e,t){let n=De(e),o=typeof n=="string"?n.toLowerCase():String(n).toLowerCase();return dt.has(o)&&(t===true||t===false||t==="true"||t==="false")?String(t):t==null||t===false?null:t}function Ee(e,t,n){let o=mt(t,n);if(o===null){e.removeAttribute(t);return}if(gt(t,o)){e.removeAttribute(t),console.warn(`[esmj-dom] Blocked unsafe attribute "${String(t)}" on <${e.tagName.toLowerCase()}>`);return}e.setAttribute(t,o);}function Z(e,t){let n=y();for(let[o,r]of Reflect.ownKeys(t).map(s=>[s,t[s]]))if(o!=="id"){if(o=De(o),o==="$ref"){typeof r=="function"?r(e):typeof r=="object"&&r!==null&&(r.current=e);continue}if(o==="$dangerouslySetInnerHTML"){if(P(r)){let s=m(()=>{N(n,()=>{se(e,r.get());});});x(e,s);}else if(typeof r=="function"){let s=m(()=>{N(n,()=>{se(e,r());});});x(e,s);}else se(e,r);continue}if(o==="style"){if(P(r)){let s=m(()=>{N(n,()=>{Object.assign(e.style,r.get());});});x(e,s);}else typeof r=="object"&&r!==null?Object.assign(e.style,r):e.setAttribute("style",r);continue}if(typeof o=="string"&&o.startsWith("on")&&typeof r=="function"){let s=o.slice(2).toLowerCase();if(ft.has(s)){console.warn(`[esmj-dom] Blocked unsafe event binding "${o}" on <${e.tagName.toLowerCase()}>`);continue}e.addEventListener(s,r);continue}if(P(r)||typeof r=="function"){let s=o,i=m(()=>{N(n,()=>{let u=typeof r=="function"?r():r.get();Me.has(s)?e[s]=u??"":Ee(e,s,u);});});x(e,i);continue}Me.has(o)||typeof o=="symbol"?e[o]=r??"":Ee(e,o,r);}}function Re(e){return e==null?[]:Array.isArray(e)?e.flat(Number.POSITIVE_INFINITY):[e]}function ie(e,t){for(let n of t)Ie(e,n);}function Ie(e,t){if(!(t==null||t===false||t===true)){if(t instanceof Node){e.appendChild(t);return}if(typeof t=="string"||typeof t=="number"){e.appendChild(document.createTextNode(String(t)));return}if(typeof t=="function"){$e(e,t);return}if(k(t)){ce(e,t);return}if(P(t)){$e(e,()=>t.get());return}if(Array.isArray(t)){ie(e,t);return}e.appendChild(document.createTextNode(String(t)));}}function F(e){let t=null,n=e;return k(e)&&(t=e,n=e.$constructor()),n instanceof DocumentFragment?{nodes:Array.from(n.childNodes),instance:t}:n instanceof Node?{nodes:[n],instance:t}:n==null||n===false||n===true?{nodes:[],instance:t}:{nodes:[document.createTextNode(String(n))],instance:t}}function ee(e,t=true){for(let n of e)t&&U(n),n.remove();}function $e(e,t){let n=y(),o=document.createComment("");e.appendChild(o);let r=[],s=m(()=>{N(n,()=>{let i=t(),{nodes:u,instance:l}=F(i);ee(r),u.length&&o.after(...u),l&&queueMicrotask(()=>T(l)),r=u;});});x(e,s);}var Pt=class{constructor(e){this.props=e;}};function Pe(e,t,n,o){let{equals:r=Q,tagName:s="span",...i}=o??{},u=ae(s,"data-for",i);Z(u,i);let l=y(),d=[],c=new Map,f=C(()=>e()),$=m(()=>{let A=f.get(),H=Array.isArray(A)?A:[],O=[],j=[],L=new Set;for(let a=0;a<H.length;a++){let h=H[a],g=t(h,a);if(L.has(g)){console.error(`For: duplicate key "${String(g)}" detected; ignoring later item at index ${a}`);continue}L.add(g),O.push(h),j.push(g);}let q=new Map(d.map(a=>[a.key,a])),v=[];for(let a=0;a<O.length;a++){let h=j[a],g=O[a],M=q.get(h);if(M)c.get(h).set(g),v.push(M),q.delete(h);else {let fe=R(g,{equals:r});c.set(h,fe);let Be={...fe,set(){}},de={key:h,nodes:[]};N(l,()=>{let Ue=n(Be,a),{nodes:He,instance:he}=F(Ue);de.nodes=He,he&&queueMicrotask(()=>T(he));}),v.push(de);}}for(let[a,h]of q)ee(h.nodes),c.delete(a);let b=null;for(let a=v.length-1;a>=0;a--){let h=v[a].nodes;for(let g=h.length-1;g>=0;g--){let M=h[g];(M.parentNode!==u||M.nextSibling!==b)&&u.insertBefore(M,b),b=M;}}d=v;});return x(u,$),u}function yt(e,t,n,o){if(typeof e=="function")return Pe(e,t,n,o);let{each:r,keyFn:s,equals:i,tagName:u,children:l,...d}=e??{};if(typeof s!="function")throw new Error('For: "keyFn" prop is required and must be a function');let c=ue(r),f=le(e??{},t);return Pe(c,s,f,{...d,equals:i,tagName:u})}yt[J]=e=>e!=="each";function _t(e,t){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("mount: container not found");e instanceof DocumentFragment||(U(e),e.innerHTML=""),k(t)?ce(e,t):t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t)));}function Bt(e){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("unmount: container not found");U(e),e.innerHTML="";}function Ut(e,t){let n=null;if(k(t)?(n=t.$constructor(),queueMicrotask(()=>T(t))):t instanceof Node?n=t:n=document.createTextNode(String(t)),n instanceof HTMLElement){let o=C(()=>!!e()),r=m(()=>{n.style.display=o.get()?"":"none";});x(n,r);}return n}export{te as a,E as b,C as c,m as d,R as e,Ke as f,Je as g,Fe as h,Q as i,Ze as j,et as k,tt as l,nt as m,rt as n,ot as o,ht as p,Pt as q,yt as r,_t as s,Bt as t,Ut as u};
@@ -1 +1 @@
1
- import {a}from'./chunk-P7IKAZYZ.mjs';import {a as a$1}from'./chunk-SCFD3XBH.mjs';function d(){return a.object({length:a.number(),offset:a.number(),style:a.string()})}function c({type:e,data:n=a.any(),length:r,offset:u}={}){let o=e!=null,a$1=a.object({type:o?a.string().default(e):a.string(),data:n}),f=r??(o?0:void 0),i=u??(o?0:void 0);return a.object({entity:o?a$1.default({}):a$1,length:f==null?a.number():a.number().default(f),offset:i==null?a.number():a.number().default(i)})}function b(){return a.array(c()).transform(e=>e.filter(n=>n.entity.type==="atom.tts.Voice")).default([])}function p(e,{component:n,properties:r,settings:u=a.object({}).default({})}){return a.object({component:a.string().default(n),componentId:a.string().default(e?.getAttribute("data-componentid")||a$1()),properties:a.object(r).default({}),settings:u}).default({})}export{d as a,c as b,b as c,p as d};
1
+ import {a}from'./chunk-P7IKAZYZ.mjs';import {a as a$1}from'./chunk-4WTPDNPA.mjs';function d(){return a.object({length:a.number(),offset:a.number(),style:a.string()})}function c({type:e,data:n=a.any(),length:r,offset:u}={}){let o=e!=null,a$1=a.object({type:o?a.string().default(e):a.string(),data:n}),f=r??(o?0:void 0),i=u??(o?0:void 0);return a.object({entity:o?a$1.default({}):a$1,length:f==null?a.number():a.number().default(f),offset:i==null?a.number():a.number().default(i)})}function b(){return a.array(c()).transform(e=>e.filter(n=>n.entity.type==="atom.tts.Voice")).default([])}function p(e,{component:n,properties:r,settings:u=a.object({}).default({})}){return a.object({component:a.string().default(n),componentId:a.string().default(e?.getAttribute("data-componentid")||a$1()),properties:a.object(r).default({}),settings:u}).default({})}export{d as a,c as b,b as c,p as d};
@@ -0,0 +1,2 @@
1
+ import {b as b$1}from'./chunk-5AD5MQXI.mjs';import {a as a$1}from'./chunk-SG5PCGIV.mjs';import {b as b$3,a as a$5}from'./chunk-B2UFH244.mjs';import {a as a$2}from'./chunk-P7IKAZYZ.mjs';import {b,j,k,a as a$3,m,v as v$2,u,t as t$1,x,q,r as r$1,p as p$2}from'./chunk-D6K2L5O3.mjs';import {a as a$4}from'./chunk-B6JJAATK.mjs';import {a,f,d,v as v$1,k as k$1,j as j$1,t,p as p$1,e,u as u$1,l}from'./chunk-4WTPDNPA.mjs';import {r,p,b as b$2,o}from'./chunk-7CJLTNHZ.mjs';(function(){if(!(typeof document>"u")){var n="mrakomor/core/plugin/list/List.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(r){return r.getAttribute("data-mrakomor-css-path")===n});if(!t){var e=document.createElement("style");e.setAttribute("data-mrakomor-css",""),e.setAttribute("data-mrakomor-css-path",n),e.textContent=`.molecule-list-list{margin:0 0 1em;padding-inline-start:1.5em}.molecule-list-list li{margin:.25em 0;outline:none}.molecule-list-list li:focus{outline:none}.molecule-list-list li[data-depth="1"]{margin-inline-start:1.5em}.molecule-list-list li[data-depth="2"]{margin-inline-start:3em}.molecule-list-list li[data-depth="3"]{margin-inline-start:4.5em}
2
+ `,document.head.appendChild(e);}}})();function rt(n){if(n?.nodeName==="OL")return "ORDERED";if(n?.nodeName==="UL")return "UNORDERED"}function N(n=[]){let t=new Set;return n.map(e=>{if(e?.componentId&&!t.has(e.componentId))return t.add(e.componentId),e;let r=a();return t.add(r),{...e,componentId:r}})}function ot(n){return n?[...n.children].filter(t=>t.nodeName==="LI"):[]}function U(n,t){return !n||!t?0:p$1(n,t.startContainer,t.startOffset)}function st(n,t){let e=m(n),{originalLineState:r,newLineState:o}=x(e,t);return {before:{componentId:n.componentId,depth:n.depth??0,text:r.properties.text,inlineStyleRanges:r.properties.inlineStyleRanges??[],entityRanges:r.properties.entityRanges??[]},after:{componentId:a(),depth:n.depth??0,text:o.properties.text,inlineStyleRanges:o.properties.inlineStyleRanges??[],entityRanges:o.properties.entityRanges??[]}}}function it(n,{style:t="UNORDERED"}={}){let e=n?.properties?.items,r=Array.isArray(e)&&e.length?e.map(o=>({componentId:o?.componentId??a(),depth:o?.depth??0,text:j(o?.text??""),inlineStyleRanges:[...o?.inlineStyleRanges??[]],entityRanges:[...o?.entityRanges??[]]})):[{componentId:a(),depth:0,text:j(n?.properties?.text??""),inlineStyleRanges:[...n?.properties?.inlineStyleRanges??[]],entityRanges:[...n?.properties?.entityRanges??[]]}];return {component:b,componentId:a(),properties:{items:r},settings:{style:t==="ORDERED"?"ORDERED":"UNORDERED"}}}function v(n,t,{namespace:e=a$3,Constructor:r}={}){let o=n.properties?.items??[],s=o[t];if(!s)return {blocks:[n],paragraphIndex:0};let c=o.slice(0,t),i=o.slice(t+1),a$1=k({properties:{text:s.text,inlineStyleRanges:s.inlineStyleRanges,entityRanges:s.entityRanges}}),p={component:e,componentId:a(),settings:{},...r?.fromExchangeState(a$1)??m(s)},m$1=[];return c.length&&m$1.push({...n,properties:{...n.properties,items:c}}),m$1.push(p),i.length&&m$1.push({...n,componentId:c.length?a():n.componentId,properties:{...n.properties,items:i}}),{blocks:m$1,paragraphIndex:c.length?1:0}}function nt(n){return r$1(n)?n.settings?.style==="ORDERED"?"ORDERED":"UNORDERED":null}function F(n,t){let e=nt(n),r=nt(t);return e!=null&&e===r}function ct(n,t,e){if(t<0||e!==t+1||e>=n.length)return null;let r=n[t],o=n[e];if(!F(r,o))return null;let s=[...r.properties?.items??[]],c=[...o.properties?.items??[]];if(c.length===0){let l=[...n];l.splice(e,1);let u=s.length-1,y=u>=0?j(s[u]?.text).length:0;return {content:l,listIndex:t,cursor:y}}let[i,...a]=c,p=0;if(s.length===0)s.push(i,...a),p=0;else {let l=s.length-1,u=s[l],y=m(u),I=m(i),{state:E,cursor:mt}=v$2(y,I);s[l]={...u,text:E.properties.text,inlineStyleRanges:E.properties.inlineStyleRanges,entityRanges:E.properties.entityRanges},a.length&&s.push(...a),p=mt;}let m$1={...r,properties:{...r.properties,items:N(s)}},g=[...n];return g[t]=m$1,g.splice(e,1),{content:g,listIndex:t,cursor:p}}function at(n,t){let e=n.properties?.items??[],r=e.length-1;if(r<0)return null;let o=k({properties:t?.properties}).properties.items,[s,...c]=o,i=e[r],a$1=m(i),p=m(s),{state:m$1,cursor:g}=v$2(a$1,p),l=e.map((u,y)=>y===r?{...u,text:m$1.properties.text,inlineStyleRanges:m$1.properties.inlineStyleRanges,entityRanges:m$1.properties.entityRanges}:u);return c.length&&l.push(...c.map(u=>({componentId:u?.componentId??a(),depth:u?.depth??0,text:j(u?.text??""),inlineStyleRanges:u?.inlineStyleRanges??[],entityRanges:u?.entityRanges??[]}))),{state:{...n,properties:{...n.properties,items:N(l)}},cursor:g,itemIndex:r}}function lt(n,t){return t$1({properties:{text:n?.text??"",inlineStyleRanges:n?.inlineStyleRanges??[],entityRanges:n?.entityRanges??[]}},t)}function pt(n,t){let e=Number(n.getAttribute("data-depth")??0)||0,r={properties:{text:j(n.innerText??n.textContent??""),inlineStyleRanges:[],entityRanges:[]}};return u(n.childNodes,r,0,t),{componentId:n.getAttribute("data-componentid")||void 0,depth:e,text:j(r.properties.text),inlineStyleRanges:r.properties.inlineStyleRanges,entityRanges:r.properties.entityRanges}}var O=n=>a$2.object({componentId:a$2.string().default(()=>n?.getAttribute?.("data-componentid")||a()),depth:a$2.number().default(0),text:a$2.string().default(""),inlineStyleRanges:a$2.array(a$5()).default([]),entityRanges:a$2.array(b$3()).default([])}).default({}),T=class n extends a$1{static get NAMESPACE(){return b}static get LABEL(){return "List"}static get GROUP(){return "lists"}getInlineStyleComponents(){return this.props?.inlineStyles?.get()??this.mrakomor.getConfig()?.inlineStyles??[]}getEntityRangeComponents(){return this.props?.entityRanges?.get()??this.mrakomor.getConfig()?.entityRanges??[]}static getStateSchema(t){let e=rt(t);return a$2.object({component:a$2.string().default(n.NAMESPACE),componentId:a$2.string().default(t?.getAttribute("data-componentid")||a()),properties:a$2.object({items:a$2.array(O()).default([O().parse()]).transform(N)}).default({}),settings:a$2.object({style:a$2.enum(["ORDERED","UNORDERED"]).default(e??"UNORDERED")}).default({})}).default({})}static toExchangeState(t){let r=(t?.properties?.items??[]).map(o=>{let s={componentId:o?.componentId,text:j(o?.text),depth:o?.depth??0};return o?.inlineStyleRanges!==void 0&&(s.inlineStyleRanges=o.inlineStyleRanges),o?.entityRanges!==void 0&&(s.entityRanges=o.entityRanges),s});return k({originComponent:this.NAMESPACE,properties:{items:r},settings:t?.settings})}static fromExchangeState(t){return it(t,{style:t?.settings?.style})}static appendExchangeState(t,e){return at(t,e)}parseFromHTML(t){if(!t)return this.constructor.getStateSchema(t).parse();let e=structuredClone(this.constructor.getStateSchema(t).parse()),r={inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()},o=ot(t);if(o.length)e.properties.items=o.map(s=>O(s).parse(pt(s,r)));else {let s=this.state?.peek?.()?.properties?.items;e.properties.items=s?.length?structuredClone(s):[O().parse()];}return e.settings={...e.settings,style:t.nodeName==="OL"?"ORDERED":t.nodeName==="UL"?"UNORDERED":this.state?.peek()?.settings?.style??e.settings?.style??"UNORDERED"},e}_commitState(t){let e=f(this.element)??this.mrakomor._getBlockElementByComponentId(t.componentId);b$1(this.mrakomor,e,t);}_buildItemContent(t){return lt(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-"),e=this.state.peek(),r$1=e.settings?.style==="ORDERED"?"ol":"ul",o=r(()=>this.state.get().properties?.items??[],(s,c)=>s.componentId??String(c),(s,c)=>p("li",{contentEditable:true,[d]:true,"data-componentid":()=>s.get().componentId,"data-item-index":()=>{let i=s.get()?.componentId,p=(this.state.get().properties?.items??[]).findIndex(m=>m.componentId===i);return String(p>=0?p:c)},"data-depth":()=>String(s.get()?.depth??0),$dangerouslySetInnerHTML:()=>{let i=s.get(),a=i?.text??"";return j(a)?b$2(()=>this._buildItemContent(i)):"<br>"}}),{tagName:r$1});return o.className=t,e.componentId&&o.setAttribute("data-componentid",e.componentId),this.element=o,o}onKeydown(t){if(t.key==="Enter"){this.#e(t);return}t.key==="Backspace"&&this.#n(t);}setCursor({cursor:t$1,itemIndex:e}={}){let r=this.getState()?.properties?.items??[],o$1=r.length-1;if(o$1<0)return;let s=typeof e=="number"&&e>=0&&e<=o$1?e:o$1,c=typeof t$1=="number"?t$1:j(r[s]?.text).length,i=()=>{let a=this.element?.querySelector(`li[data-item-index="${s}"]`);a?.isConnected&&t(a,c);};i(),o(i);}#t(t$1){let e=this.getState(),r=[...e.properties.items??[]],o$1=r[t$1];if(!o$1)return;if((o$1.depth??0)>0){r[t$1]={...o$1,depth:o$1.depth-1},this._commitState({...e,properties:{...e.properties,items:r}});let g=()=>{let l=this.element?.querySelector(`li[data-item-index="${t$1}"]`);l?.isConnected&&t(l,0);};g(),o(g);return}let s=f(this.element),c=this.mrakomor._getBlockElementIndex(s),i=s?.previousElementSibling??null,a=i?this.mrakomor._getBlockElementIndex(i):-1;if(t$1===0&&a>=0&&c===a+1){let g=this.mrakomor.getContent(),l=ct(g,a,c);if(l){let u=l.content.map((y,I)=>I===l.listIndex?this.mrakomor.normalizeComponentState(y):y);this.mrakomor._setContentState(u),v$1(i)?.setCursor?.({cursor:l.cursor});return}}let{blocks:p,paragraphIndex:m}=v(e,t$1,{Constructor:this.mrakomor.register.blocks.getByNamespace(a$3)});this.mrakomor.command.replaceBlockElement({blockElement:f(this.element),blocks:p,cursor:0,cursorBlockIndex:m});}#e(t$1){t$1.preventDefault();let e=k$1(),r=j$1(this.element,e);if(!r)return;let{element:o$1,index:s}=r,c=U(o$1,e),i=this.getState(),a=[...i.properties.items??[]],p=a[s];if(!p)return;if(!j(p.text)){this.#t(s);return}let{before:m,after:g}=st(p,c);a.splice(s,1,m,g),this._commitState({...i,properties:{...i.properties,items:a}}),o(()=>{let l=this.element?.querySelector(`li[data-item-index="${s+1}"]`);l&&t(l,0);});}#n(t){let e=k$1();if(!e?.collapsed)return;let r=j$1(this.element,e);if(!r){let i=e.startContainer;if(!(i===this.element||this.element?.contains?.(i)))return;t.preventDefault(),this.#t(0);return}let{element:o,index:s}=r;U(o,e)===0&&(t.preventDefault(),this.#t(s));}};function ut(n){let{mrakomor:t,blockElement:e,namespace:r}=n;if(!t||!e||!r)return;let o=t._getBlockElementState(e);if(!o||!q({component:r})||!r$1(o))return;n.preventDefault();let c=v$1(e)?.element,i=n.range??k$1(),a=j$1(c,i);if(!a)return;let{index:p}=a,{blocks:m,paragraphIndex:g}=v(o,p,{namespace:r,Constructor:t.register.blocks.getByNamespace(r)});t.command.replaceBlockElement({blockElement:e,blocks:m,cursor:0,cursorBlockIndex:g});}function gt(n){if(n.key!=="Backspace"&&n.key!=="Delete")return;let t=k$1();if(!t?.collapsed)return;let e$1=e(t);if(!e$1)return;let r=u$1(e$1),o=!j(r?.textContent),s=t.startOffset===0||l()===0||o;if(!o||!s)return;let c=e$1.previousSibling;if(!c)return;let{mrakomor:i}=n,a=i._getBlockElementIndex(e$1),p=i._getBlockElementIndex(c);if(a<0||p<0)return;let m=i._getBlockElementState(e$1),g=i._getBlockElementState(c);if(!m||!q(m)||!g||g.component!==b)return;let l$1=i.getContent(),u=l$1[a+1];if(!F(g,u))return;let I=i.register.blocks.getByNamespace(u.component)?.toExchangeState?.(u),E=I&&T.appendExchangeState(g,I);E&&(n.preventDefault(),l$1.splice(a,1),l$1.splice(p,2,i.normalizeComponentState(E.state)),i._setContentState(l$1),p$2({mrakomor:i,resultIndex:p,cursor:E.cursor,fallbackBlockElement:c,itemIndex:E.itemIndex}));}function dt(n){return {resolveConfig:t=>(t.blockComponents.push({component:n,label:"UL",keywords:["ul","unordered","bullet"],order:100,settings:{style:"UNORDERED"}},{component:n,label:"OL",keywords:["ol","ordered","number"],order:101,settings:{style:"ORDERED"}}),t),resolveComponent:t=>{if(t===n.NAMESPACE)return n},registerCommands(t){t.emitter.on(a$4.TRANSFORM_BLOCK_ELEMENT,ut),t.emitter.on(a$4.KEYDOWN,gt);}}}function Ot(){return dt(T)}export{rt as a,N as b,T as c,dt as d,Ot as e};
@@ -0,0 +1,4 @@
1
+ import {u as u$1,j as j$1,a as a$1,l,k as k$1,p,v as v$1,t}from'./chunk-4WTPDNPA.mjs';import {o,s,p as p$1}from'./chunk-7CJLTNHZ.mjs';var S="molecule.paragraph.Paragraph",z="molecule.list.List",G="molecule.external.ExternalComponent",U="namespace.unknown.UnknownComponent",W="molecule.headline.H1",j="molecule.headline.H2",q="molecule.headline.H3",J="molecule.headline.H4",Q="molecule.headline.H5",M="molecule.headline.";function a(t){return t===`
2
+ `||t===`\r
3
+ `?"":t??""}function b({component:t,originComponent:e,properties:n,settings:o}={}){let r=n??{},s=Array.isArray(r.items)?r.items:[{text:r.text??"",inlineStyleRanges:r.inlineStyleRanges??[],entityRanges:r.entityRanges??[]}];return {...t?{component:t}:{},...e?{originComponent:e}:{},properties:{items:s},...o?{settings:o}:{}}}function ee(t){let e="",n=[],o=[];return (t??[]).forEach((r,s)=>{s>0&&(e+=`
4
+ `);let i=e.length;e+=a(r?.text);for(let c of r?.inlineStyleRanges??[])n.push({...c,offset:c.offset+i});for(let c of r?.entityRanges??[])o.push({...c,offset:c.offset+i});}),{text:e,inlineStyleRanges:n,entityRanges:o}}function te(t){return {properties:{text:t?.text??"",inlineStyleRanges:t?.inlineStyleRanges??[],entityRanges:t?.entityRanges??[]}}}function ne(t,e,n,o){let r=t.toExchangeState(e),s=[...r.properties?.items??[]];if(!s[n])return e;s[n]={...s[n],...o};let i=t.fromExchangeState({...r,properties:{...r.properties,items:s}});return {...e,properties:i?.properties??e.properties,settings:i?.settings??e.settings}}function oe(t,e,n){let o=t._getBlockElementState(e);if(!o)return null;let r=t.register.blocks.getByNamespace(o.component);if(!r)return null;let s=r.toExchangeState(o)?.properties?.items??[];if(!s.length)return null;let i=u$1(e),c=j$1(i,n),f=c?.element??i??e,l=c?.index??0,p=s[l];return p?{Constructor:r,current:o,element:f,itemIndex:l,item:p}:null}function re({mrakomor:t$1,resultIndex:e,cursor:n,fallbackBlockElement:o$1,itemIndex:r}){let s=()=>{if(typeof n!="number")return;let i=t$1._getBlockElements()[e]??o$1,c=v$1(i);if(c?.setCursor){c.setCursor({cursor:n,itemIndex:r});return}let f=u$1(i);f?.isConnected&&t(f,n);};s(),o(s);}function B(t){let e=t?.component??"";return e===S||e.startsWith(M)}function se(t){return Array.isArray(t?.properties?.items)}function ie(t,e){return B(t)&&B(e)&&t.component===e.component}function v(t,e){let n=new Set([0,e]);for(let o of t)n.add(o.offset),n.add(o.offset+o.length);return [...n].sort((o,r)=>o-r)}function I(t,e,n){return t.filter(o=>o.offset<=e&&o.offset+o.length>=n)}function w(t,e,n,{inlineStyleComponents:o,entityRangeComponents:r}){let s=t;for(let i of e){let c=o.find(f=>f.match(i));c&&(s=p$1(c,{},s));}for(let i of n){let c=r.find(f=>f.match(i));c&&(s=p$1(c,i,s));}return s}function ce(t,{inlineStyleComponents:e,entityRangeComponents:n}){let o=document.createDocumentFragment(),r=a(t.properties.text),s$1=t.properties.inlineStyleRanges??[],i=t.properties.entityRanges??[];if(!r)return o;let c=v([...s$1,...i],r.length);for(let f=0;f<c.length-1;f+=1){let l=c[f],p=c[f+1];if(l>=p)continue;let g=r.slice(l,p),T=w(g,I(s$1,l,p),I(i,l,p),{inlineStyleComponents:e,entityRangeComponents:n});s(o,T);}return o}function u(t,e,n,{inlineStyleComponents:o,entityRangeComponents:r}){let s=n;for(let i of t){if(i.nodeType===Node.TEXT_NODE){s+=i.textContent.length;continue}if(i.nodeType!==Node.ELEMENT_NODE||i.nodeName==="BR")continue;let c=o.find(l=>l.match(i));if(c){let l=i.textContent.length;e.properties.inlineStyleRanges.push({style:c.style,offset:s,length:l}),s=u(i.childNodes,e,s,{inlineStyleComponents:o,entityRangeComponents:r});continue}let f=r.find(l=>l.match(i));if(f){let l=i.textContent.length;e.properties.entityRanges.push({...f.getStateSchema(i).parse(),offset:s,length:l}),s=u(i.childNodes,e,s,{inlineStyleComponents:o,entityRangeComponents:r});continue}s=u(i.childNodes,e,s,{inlineStyleComponents:o,entityRangeComponents:r});}return s}function D(t,e){let n=a(t.properties.text),o=a(e.properties.text);return {state:{...t,properties:{...e.properties,...t.properties,text:n+o,inlineStyleRanges:[...t.properties.inlineStyleRanges??[],...(e.properties.inlineStyleRanges??[]).map(r=>({...r,offset:r.offset+n.length}))],entityRanges:[...t.properties.entityRanges??[],...(e.properties.entityRanges??[]).map(r=>({...r,offset:r.offset+n.length}))]},settings:{...e.settings,...t.settings}},cursor:n.length}}function fe(t,{startIndex:e,endIndex:n,startOffset:o,endOffset:r}){let s=[...t],i=s[e],c=s[n],{originalLineState:f}=y(i,o),{newLineState:l}=y(c,r),{state:p,cursor:g}=D(f,l);return s.splice(e,n-e+1,p),{content:s,cursor:g,resultIndex:e}}function H(t,e){return (t??[]).filter(n=>n.offset<e).map(n=>({...n,length:Math.min(n.length,e-n.offset)}))}function L(t,e){return (t??[]).filter(n=>n.offset+n.length>e).map(n=>({...n,offset:Math.max(0,n.offset-e),length:n.offset+n.length-Math.max(n.offset,e)}))}function y(t,e){let n=structuredClone(t),o=structuredClone(t);return n.properties.text=t.properties.text.slice(0,e),o.properties.text=t.properties.text.slice(e),n.properties.inlineStyleRanges=H(t.properties.inlineStyleRanges,e),o.properties.inlineStyleRanges=L(t.properties.inlineStyleRanges,e),n.properties.entityRanges=H(t.properties.entityRanges,e),o.properties.entityRanges=L(t.properties.entityRanges,e),o.componentId=a$1(),{originalLineState:n,newLineState:o}}function le(t,e,{namespace:n=t.constructor.NAMESPACE}={}){if(e.key!=="Enter")return false;e.preventDefault();let{originalLineState:o,newLineState:r}=y(t.getState(),l(t.element));return t.mrakomor.command.insertBlockElement({range:k$1(),cursor:0,newLineState:r,originalLineState:o,namespace:n}),true}function pe(t,e){if(e.key!=="Enter")return false;e.preventDefault();let n=S,o=t.mrakomor.resolveComponentConstructor(n);return t.mrakomor.command.insertBlockElement({range:k$1(),cursor:0,newLineState:t.mrakomor.normalizeComponentState(o.getStateSchema().parse({})),namespace:n}),true}function ae(t,e){let n=t.constructor;if(!e)return n.getStateSchema(e).parse();let o=structuredClone(n.getStateSchema(e).parse());return u(e.childNodes,o,0,{inlineStyleComponents:t.getInlineStyleComponents(),entityRangeComponents:t.getEntityRangeComponents()}),o.properties.text=a(o.properties.text),o}function k(t,e){let n=p(t,e.startContainer,e.startOffset),o=p(t,e.endContainer,e.endOffset);return {offset:n,length:Math.max(0,o-n)}}function O(t,{style:e,offset:n,length:o}){let r=t??[],s=n+o,i=r.find(c=>c.style===e&&c.offset<=n&&c.offset+c.length>=s);return i?r.filter(c=>c!==i):[...r,{style:e,offset:n,length:o}]}function F(t,e){return t.offset<e.offset+e.length&&e.offset<t.offset+t.length}function X(t,e){let n=e.offset+e.length,o=[];for(let r of t){if(!F(r,e)){o.push(r);continue}r.offset<e.offset&&o.push({...r,length:e.offset-r.offset});let s=r.offset+r.length;s>n&&o.push({...r,offset:n,length:s-n});}return o}function K(t,e){let n=t??[],o=e?.length??0;if(o===0)return null;let r=e.offset??0,s=e.entity?.type,i=n.find(c=>c.offset===r&&c.length===o&&c.entity?.type===s);return i?n.filter(c=>c!==i):[...X(n,e),e]}function ue(t,e,n,o){if(!e||!n)return null;let{offset:r,length:s}=k(e,n);return s===0?null:O(t??[],{style:o,offset:r,length:s})}function ge(t,e,n,{namespace:o,entityData:r}){if(!e||!n)return null;let s={...r,entity:{type:o,...r?.entity},...k(e,n)};return K(t??[],s)}export{ae as A,k as B,ue as C,ge as D,S as a,z as b,G as c,U as d,W as e,j as f,q as g,J as h,Q as i,a as j,b as k,ee as l,te as m,ne as n,oe as o,re as p,B as q,se as r,ie as s,ce as t,u,D as v,fe as w,y as x,le as y,pe as z};
@@ -1,2 +1,2 @@
1
- import {a}from'./chunk-2VURZA2E.mjs';import {d,a as a$3,b}from'./chunk-VYTSZ4S6.mjs';import {a as a$2}from'./chunk-P7IKAZYZ.mjs';import {a as a$1,z,s,j,x}from'./chunk-ZDMD7SRT.mjs';import {d as d$1}from'./chunk-SCFD3XBH.mjs';import {o,a as a$4}from'./chunk-K2DMHAUD.mjs';(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/paragraph/Paragraph.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(a){return a.getAttribute("data-mrakomor-css-path")===e});if(!t){var r=document.createElement("style");r.setAttribute("data-mrakomor-css",""),r.setAttribute("data-mrakomor-css-path",e),r.textContent=`.mrakomor-content p{margin-top:0}
2
- `,document.head.appendChild(r);}}})();var n=class e extends a{static get NAMESPACE(){return a$1}static get LABEL(){return "P"}static get KEYWORDS(){return ["p","paragraph","text"]}getInlineStyleComponents(){return this.props?.inlineStyles?.get()??this.mrakomor.getConfig()?.inlineStyles??[]}getEntityRangeComponents(){return this.props?.entityRanges?.get()??this.mrakomor.getConfig()?.entityRanges??[]}static getStateSchema(t){return d(t,{component:e.NAMESPACE,properties:{entityRanges:a$2.array(b()).default([]),inlineStyleRanges:a$2.array(a$3()).default([]),text:a$2.string().default(t?.innerText??t?.textContent??"")}})}parseFromHTML(t){return z(this,t)}_buildContent(t){return s(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return o("p",{className:t,"data-componentid":this.state.peek().componentId,contentEditable:true,[d$1]:true,$ref:r=>{this.element=r;},$dangerouslySetInnerHTML:()=>{let r=this.state.get(),a=r.properties?.text??"";return j(a)?a$4(()=>this._buildContent(r)):"<br>"}})}onKeydown(t){x(this,t);}};function L(){return {resolveConfig:e=>(e.blockComponents.push(n),e),resolveComponent:e=>{if(e===n.NAMESPACE)return n}}}export{n as a,L as b};
1
+ import {a}from'./chunk-SG5PCGIV.mjs';import {d,a as a$3,b}from'./chunk-B2UFH244.mjs';import {a as a$2}from'./chunk-P7IKAZYZ.mjs';import {a as a$1,A,t,j,y}from'./chunk-D6K2L5O3.mjs';import {d as d$1}from'./chunk-4WTPDNPA.mjs';import {p,b as b$1}from'./chunk-7CJLTNHZ.mjs';(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/paragraph/Paragraph.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(a){return a.getAttribute("data-mrakomor-css-path")===e});if(!t){var r=document.createElement("style");r.setAttribute("data-mrakomor-css",""),r.setAttribute("data-mrakomor-css-path",e),r.textContent=`.mrakomor-content p{margin-top:0}
2
+ `,document.head.appendChild(r);}}})();var n=class e extends a{static get NAMESPACE(){return a$1}static get LABEL(){return "P"}static get KEYWORDS(){return ["p","paragraph","text"]}getInlineStyleComponents(){return this.props?.inlineStyles?.get()??this.mrakomor.getConfig()?.inlineStyles??[]}getEntityRangeComponents(){return this.props?.entityRanges?.get()??this.mrakomor.getConfig()?.entityRanges??[]}static getStateSchema(t){return d(t,{component:e.NAMESPACE,properties:{entityRanges:a$2.array(b()).default([]),inlineStyleRanges:a$2.array(a$3()).default([]),text:a$2.string().default(t?.innerText??t?.textContent??"")}})}parseFromHTML(t){return A(this,t)}_buildContent(t$1){return t(t$1,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return p("p",{className:t,"data-componentid":this.state.peek().componentId,contentEditable:true,[d$1]:true,$ref:r=>{this.element=r;},$dangerouslySetInnerHTML:()=>{let r=this.state.get(),a=r.properties?.text??"";return j(a)?b$1(()=>this._buildContent(r)):"<br>"}})}onKeydown(t){y(this,t);}};function L(){return {resolveConfig:e=>(e.blockComponents.push(n),e),resolveComponent:e=>{if(e===n.NAMESPACE)return n}}}export{n as a,L as b};
@@ -0,0 +1 @@
1
+ import {s as s$1}from'./chunk-7CJLTNHZ.mjs';function i(o,t,n,m){let e=o.getRoot()?.querySelector(t);if(!e)return {container:null,dispose:null};let r=document.createElement("div");r.className=n,e.append(r);let c=s$1(r,m);return {container:r,dispose:c??null}}function s(o,t,n){return i(o,".mrakomor-tools-container",t,n)}function l(o,t,n){return i(o,".mrakomor-footer-end",t,n)}export{s as a,l as b};
@@ -0,0 +1 @@
1
+ import {a as a$2}from'./chunk-P7IKAZYZ.mjs';import {a as a$1}from'./chunk-7CJLTNHZ.mjs';function a(s){return s.map((t,r)=>({entry:t,index:r})).sort((t,r)=>{let e=t.entry.order??t.index,i=r.entry.order??r.index;return e!==i?e-i:t.index-r.index}).map(({entry:t})=>t)}var d=class extends a$1{mrakomor;#t=new Map;#r=null;#n=0;#s;constructor(t,r={}){super(),this.mrakomor=t,this.#s=r.sort??a;}normalize(t,r){throw new Error("Register subclass must implement normalize")}#e(){this.#r=null,this.next(this.list());}#i(t,r=this.#n++){let e=this.normalize(t,r);return e?(this.#t.set(e.id,e),e):null}add(t){if(Array.isArray(t)){let e=[];for(let i of t){let o=this.#i(i,this.#n++);o&&e.push(o);}return e.length&&this.#e(),e}let r=this.#i(t);return r&&this.#e(),r}get(t){return this.#t.get(t)}has(t){return this.#t.has(t)}remove(t){let r=this.#t.delete(t);return r&&this.#e(),r}list(){return this.#r??=this.#s([...this.#t.values()]),this.#r}};function h(){return a$2.object({id:a$2.string(),group:a$2.string().default("general"),description:a$2.string().default(""),commands:a$2.array(a$2.string()).default([]),shortcuts:a$2.array(a$2.string()).default([])}).default({})}function x(s){try{return h().parse(s)}catch{return null}}export{d as a,h as b,x as c};
@@ -0,0 +1,2 @@
1
+ import {a as a$1}from'./chunk-SG5PCGIV.mjs';import {d}from'./chunk-B2UFH244.mjs';import {a as a$2}from'./chunk-P7IKAZYZ.mjs';import {j,y,a as a$3,e,f as f$1,g,h,i as i$1}from'./chunk-D6K2L5O3.mjs';import {d as d$1,k,f,u as u$1,t}from'./chunk-4WTPDNPA.mjs';import {p,b,o as o$1}from'./chunk-7CJLTNHZ.mjs';(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/headline/Headline.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(n){return n.getAttribute("data-mrakomor-css-path")===e});if(!t){var r=document.createElement("style");r.setAttribute("data-mrakomor-css",""),r.setAttribute("data-mrakomor-css-path",e),r.textContent=`.mrakomor-content h1,.mrakomor-content h2,.mrakomor-content h3,.mrakomor-content h4,.mrakomor-content h5{margin-top:0}
2
+ `,document.head.appendChild(r);}}})();var o=class extends a$1{constructor(t){super(t),this._level=1;}static getStateSchema(t){return d(t,{component:this.NAMESPACE,properties:{text:a$2.string().default(t?.textContent??t?.innerText??"")}})}parseFromHTML(t){if(!t)return this.constructor.getStateSchema(t).parse();let r=structuredClone(this.constructor.getStateSchema(t).parse());return r.properties.text=j(r.properties.text),r}_buildContent(t){return t.properties?.text??""}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return p(`h${this._level}`,{className:t,"data-componentid":this.state.peek().componentId,contentEditable:true,[d$1]:true,$ref:r=>{this.element=r;},$dangerouslySetInnerHTML:()=>{let r=this.state.get(),n=r.properties?.text??"";return j(n)?b(()=>this._buildContent(r)):"<br>"}})}onKeydown(t){if(t.key==="Backspace"){this.#t(t);return}y(this,t,{namespace:a$3});}#t(t$1){if(!k()?.collapsed)return;let n=f(this.element);if(n?.previousElementSibling||j(this.getState()?.properties?.text))return;t$1.preventDefault(),this.mrakomor.command.transformBlockElement({blockElement:n,namespace:a$3});let l=()=>{let b=this.mrakomor.getRoot()?.querySelector(".mrakomor-content .mrakomor-block-element"),p=u$1(b);p?.isConnected&&t(p,0);};l(),o$1(l);}},s=class extends o{static get NAMESPACE(){return e}static get LABEL(){return "H1"}static get KEYWORDS(){return ["h1","title","heading"]}constructor(t){super(t),this._level=1;}},c=class extends o{static get NAMESPACE(){return f$1}static get LABEL(){return "H2"}static get KEYWORDS(){return ["h2","heading"]}constructor(t){super(t),this._level=2;}},i=class extends o{static get NAMESPACE(){return g}static get LABEL(){return "H3"}static get KEYWORDS(){return ["h3","heading"]}constructor(t){super(t),this._level=3;}},a=class extends o{static get NAMESPACE(){return h}static get LABEL(){return "H4"}static get KEYWORDS(){return ["h4","heading"]}constructor(t){super(t),this._level=4;}},u=class extends o{static get NAMESPACE(){return i$1}static get LABEL(){return "H5"}static get KEYWORDS(){return ["h5","heading"]}constructor(t){super(t),this._level=5;}};function w(){return {resolveConfig:e=>(e.blockComponents.push(s,c,i,a,u),e),resolveComponent:e=>{if(e===s.NAMESPACE)return s;if(e===c.NAMESPACE)return c;if(e===i.NAMESPACE)return i;if(e===a.NAMESPACE)return a;if(e===u.NAMESPACE)return u}}}export{o as a,w as b};
@@ -1 +1 @@
1
- import {a}from'./chunk-T7OO472O.mjs';import {a as a$1}from'./chunk-P7IKAZYZ.mjs';import {j,k,l,u,m}from'./chunk-ZDMD7SRT.mjs';import {a as a$2}from'./chunk-B6JJAATK.mjs';import {t}from'./chunk-SCFD3XBH.mjs';import {n,p,k as k$1}from'./chunk-K2DMHAUD.mjs';var r=class extends p{state;element;mrakomor;constructor(e){super(e);let{state:t,observeDOMChanges:s=true}=e??{};this.state=t,this.element=null,this.mrakomor=k$1(a),this._stale=false,this._observer=null,this._offInputStale=null,this._onInputMarkStale=null,this._observeDOMChanges=s;}static get NAMESPACE(){return "namespace.AbstractComponent"}static getStateSchema(){return a$1.object({component:a$1.string().default(this.NAMESPACE),properties:a$1.object().default({}),settings:a$1.object().default({})}).default({})}static getPropsSchema(){return a$1.object({state:this.getStateSchema(),observeDOMChanges:a$1.boolean().default(true)}).default({})}parseFromHTML(e){return this.constructor.getStateSchema(e).parse()}getState(){if(this._stale){let e=this.element;return this.parseFromHTML(e)}return this.state.peek()}isStale(){return this._stale}#t(){this._stale=true;}onMount(){!this.element||!this._observeDOMChanges||(this._observer=new MutationObserver(()=>{this.#t();}),this._observer.observe(this.element,{subtree:true,characterData:true,characterDataOldValue:true,childList:true,attributes:true,attributeOldValue:true}),this._onInputMarkStale=e=>{let t=e.target;t instanceof Node&&this.element?.contains(t)&&this.#t();},this.mrakomor?.emitter&&(this._offInputStale=this.mrakomor.emitter.on(a$2.INPUT,this._onInputMarkStale)));}onUnmount(){this._observer&&(this._observer.disconnect(),this._observer=null),this._offInputStale?.(),this._offInputStale=null,this._onInputMarkStale=null,this._stale=false;}};var S=class extends r{static get NAMESPACE(){return "namespace.block.BlockComponent"}static get LABEL(){return ""}static get KEYWORDS(){return []}static get GROUP(){return "blocks"}isAtomic(){return false}setCursor(e){let t$1=()=>{if(!this.element?.isConnected)return;let s=typeof e=="number"?e:j(this.getState()?.properties?.text).length;t(this.element,s);};t$1(),n(t$1);}onKeydown(e){}static toExchangeState(e){let t=e?.properties,s={text:j(t?.text)};return t?.inlineStyleRanges!==void 0&&(s.inlineStyleRanges=t.inlineStyleRanges),t?.entityRanges!==void 0&&(s.entityRanges=t.entityRanges),k({originComponent:this.NAMESPACE,properties:{items:[s]},settings:e?.settings})}static fromExchangeState(e){let t=e?.properties?.items?.[0];return {properties:{text:t?.text??"",inlineStyleRanges:t?.inlineStyleRanges??[],entityRanges:t?.entityRanges??[]},settings:e?.settings}}static appendExchangeState(e,t){let s=l(t?.properties?.items);return u(e,m(s))}};export{S as a};
1
+ import {a}from'./chunk-ZHOZPQZH.mjs';import {a as a$1}from'./chunk-P7IKAZYZ.mjs';import {j,k,l,v,m}from'./chunk-D6K2L5O3.mjs';import {a as a$2}from'./chunk-B6JJAATK.mjs';import {t}from'./chunk-4WTPDNPA.mjs';import {o,q,l as l$1}from'./chunk-7CJLTNHZ.mjs';var r=class extends q{state;element;mrakomor;constructor(e){super(e);let{state:t,observeDOMChanges:s=true}=e??{};this.state=t,this.element=null,this.mrakomor=l$1(a),this._stale=false,this._observer=null,this._offInputStale=null,this._onInputMarkStale=null,this._observeDOMChanges=s;}static get NAMESPACE(){return "namespace.AbstractComponent"}static getStateSchema(){return a$1.object({component:a$1.string().default(this.NAMESPACE),properties:a$1.object().default({}),settings:a$1.object().default({})}).default({})}static getPropsSchema(){return a$1.object({state:this.getStateSchema(),observeDOMChanges:a$1.boolean().default(true)}).default({})}parseFromHTML(e){return this.constructor.getStateSchema(e).parse()}getState(){if(this._stale){let e=this.element;return this.parseFromHTML(e)}return this.state.peek()}isStale(){return this._stale}#t(){this._stale=true;}onMount(){!this.element||!this._observeDOMChanges||(this._observer=new MutationObserver(()=>{this.#t();}),this._observer.observe(this.element,{subtree:true,characterData:true,characterDataOldValue:true,childList:true,attributes:true,attributeOldValue:true}),this._onInputMarkStale=e=>{let t=e.target;t instanceof Node&&this.element?.contains(t)&&this.#t();},this.mrakomor?.emitter&&(this._offInputStale=this.mrakomor.emitter.on(a$2.INPUT,this._onInputMarkStale)));}onUnmount(){this._observer&&(this._observer.disconnect(),this._observer=null),this._offInputStale?.(),this._offInputStale=null,this._onInputMarkStale=null,this._stale=false;}};var S=class extends r{static get NAMESPACE(){return "namespace.block.BlockComponent"}static get LABEL(){return ""}static get KEYWORDS(){return []}static get GROUP(){return "blocks"}isAtomic(){return false}setCursor({cursor:e}={}){let t$1=()=>{if(!this.element?.isConnected)return;let s=typeof e=="number"?e:j(this.getState()?.properties?.text).length;t(this.element,s);};t$1(),o(t$1);}onKeydown(e){}static toExchangeState(e){let t=e?.properties,s={text:j(t?.text)};return t?.inlineStyleRanges!==void 0&&(s.inlineStyleRanges=t.inlineStyleRanges),t?.entityRanges!==void 0&&(s.entityRanges=t.entityRanges),k({originComponent:this.NAMESPACE,properties:{items:[s]},settings:e?.settings})}static fromExchangeState(e){let t=e?.properties?.items?.[0];return {properties:{text:t?.text??"",inlineStyleRanges:t?.inlineStyleRanges??[],entityRanges:t?.entityRanges??[]},settings:e?.settings}}static appendExchangeState(e,t){let s=l(t?.properties?.items);return v(e,m(s))}};export{S as a};
@@ -0,0 +1 @@
1
+ import {j}from'./chunk-7CJLTNHZ.mjs';var e=j();export{e as a};
@@ -1,5 +1,5 @@
1
- 'use strict';var $e=class{next(...e){}error(...e){}complete(...e){}},me=class{#e=new Set;pipe(...e){return e.reduce((t,n)=>n(t),this)}next(...e){Array.from(this.#e).forEach(t=>{typeof t=="function"?t(...e):t.next(...e);});}error(...e){Array.from(this.#e).forEach(t=>{t?.error?.(...e),this.unsubscribe(t);});}complete(...e){Array.from(this.#e).forEach(t=>{t?.complete?.(...e),this.unsubscribe(t);});}subscribe(e){return this.#e.add(e),{unsubscribe:()=>{this.unsubscribe(e);}}}unsubscribe(e){this.#e.delete(e);}};var Z=Symbol("@esmj/signals:type"),G=Symbol("@esmj/signals:name");var C=null,he=false,xe=[];function P(e){let t=C;C=null;let n=e();return C=t,n}function Bt(){he=false;let e=Ve();for(let n of e)n.get();let t=xe;xe=[];for(let n of t)n();}function qe(){he||(he=true,queueMicrotask(Bt));}function Ee(e){xe.push(e),qe();}var Ge=Symbol("@esmj/signals:internal observable"),T=Symbol("@esmj/signals:original function"),Pt=class extends me{#e=new Set;#r=null;constructor(e){super(),this.#r=e,this.pipe(t=>{let n=t.subscribe.bind(t),r=t.unsubscribe.bind(t);return t.subscribe=o=>{n(o),this.#e.add(o);},t.unsubscribe=o=>{r(o),this.#e.delete(o);},t});}watch(e){if(typeof e.next!="function"&&(e.next=()=>P(()=>{this.#e.add(e),this.#r();}),e.next[T]=void 0),e instanceof ze&&e.next[T]===void 0){let t=e.next.bind(e);e.next=()=>P(()=>{this.#e.add(e),t(),this.#r();}),e.next[T]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[T]){let n=t.get,r=n.bind(t);t.get=()=>P(()=>(this.#e.delete(t),r())),t.get[T]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[T]?e.next[T]:e.next,e.get=e.get[T]?e.get[T]:e.get,this.#e.delete(e),this.unsubscribe(e)}},ee=null;function Ue(e){ee=new Pt(e);}Ue(()=>{qe();});function Ve(){return ee.getPending()}var A=Symbol("@esmj/signals:no error"),ze=class We extends $e{#e=true;#r=false;#n=null;#o=this.#d();#a=null;#c=null;#i=0;#s=new Map;#t=A;constructor(t,n){super(),this.#a=t,this.#c=n,this.debug=n?.debug,this[Z]="computed",this[G]=n?.debug??null,this.get=this.get.bind(this);}#u(){for(let{unsubscribe:t}of this.#o.dependencies.values())t();this.#o.dependencies.clear();}#d(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[G],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#s.keys()]}}#f(){for(let[t,n]of this.#s)if(t instanceof We&&P(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#n[Ge].next();}get(){if(this.#r)throw new Error("Cycle detected in computed signal");if(this.#n||(this.#n=$(this.#l(),this.#c)),(this.#e||this.#t!==A)&&(this.#s.size===0||this.#f()?this.#l():this.#e=false),C&&C.sourceRevisions.set(this,this.#i),this.#t!==A)throw this.#t;return this.#n.get()}peek(){if(this.#n||(this.#n=$(this.#l(),this.#c)),(this.#e||this.#t!==A)&&(this.#s.size===0||this.#f()?this.#l():this.#e=false),this.#t!==A)throw this.#t;return this.#n.peek()}#l(){this.#r=true,this.#e=false,this.#t=A,this.#u(),this.#o.sourceRevisions.clear();let t=C;C=this.#o;let n;try{n=this.#a();}catch(r){this.#t=r;}return C=t,this.#s=this.#o.sourceRevisions,this.#o.sourceRevisions=new Map,this.#r=false,n instanceof Promise&&(n=n.then(r=>{this.#t=A,this.#n.set(r);}).catch(r=>{this.#t=r;})),this.#t===A&&this.#n&&this.#n.set(n),this.#i++,n}destroy(){this.#u(),this.#s.clear(),this.#e=true,this.#t=A;}};function $(e,t={}){let n=t?.equals??Object.is,r=0,o=new me;function s(){return C&&(C.dependencies.set(o,o.subscribe(C.observer)),C.sourceRevisions.set(l,r)),e}function i(){return e}function a(u){if(!n(e,u)){e=u,r++,o.next();}return e}function c(){return r}let l={get:s,set:a,peek:i,getRevision:c,[Ge]:o,[Z]:"signal",[G]:t?.debug??null};return l}function Te(e){Ee(()=>{setTimeout(e,0);});}var Me=Be(),ke=Be(),ct=Be(),Zt=Array.from({length:256},(e,t)=>(t<=15?"0":"")+t.toString(16));function Be(){return Math.floor(Math.random()*16777215)}function en(){return ke=(ke+1)%16777215,ke}function X(){let e=Math.floor(Date.now()/1e3);e=parseInt(e,10)%4294967295;let t=en(),n=String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,e&255,Me>>16&255,Me>>8&255,Me&255,ct>>8&255,ct&255,t>>16&255,t>>8&255,t&255),r="";for(let o=0;o<n.length;o++)r+=Zt[n.charCodeAt(o)];return r}var ut=Symbol("block-element"),tn=Symbol("block-element-body"),ie=Symbol("selectable-element");function ce(e,t){let n=e;for(n?.nodeType===Node.TEXT_NODE&&(n=n.parentElement);n&&n[t]===void 0;)n=n.parentElement;return n??null}function Pe(e){return e?ce(e.startContainer,ut):null}function le(e){return ce(e,ut)}function ft(e){return e?ce(e.startContainer,ie):null}function at(e){return ce(e,ie)}function ve(e){return e?e[ie]!==void 0?[e]:[...e.children].filter(t=>t[ie]!==void 0):[]}function nn(e,t){return t?ve(e).indexOf(t):-1}function ae(e,t){let n=ft(t);return !n||!e?.contains(n)?null:{element:n,index:nn(e,n)}}function dt(){return window.getSelection()}function z(){let e=dt();return e.rangeCount>0?e.getRangeAt(0).cloneRange():null}function rn(e,t){let n=ft(t);return n||(F(e)??e?.childNodes?.[0]??null)}function Y(e,t,n){if(!e)return 0;if(t===e){if(t.nodeType===Node.TEXT_NODE)return n;let i=0,a=e.childNodes,c=Math.min(n,a.length);for(let l=0;l<c;l++)i+=a[l].textContent.length;return i}if(t.nodeType===Node.ELEMENT_NODE&&!e.contains(t))return 0;let r=0,o=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),s=o.nextNode();for(;s;){if(s===t)return r+n;r+=s.textContent.length,s=o.nextNode();}return r}function pt(){let e=z();if(!e)return null;let t=Pe(e),n=rn(t,e);return {start:Y(n,e.startContainer,e.startOffset),end:Y(n,e.endContainer,e.endOffset),element:t,selectableElement:n}}function gt(e=z()){if(!e||e.collapsed)return null;let t=le(e.startContainer),n=le(e.endContainer);if(!t||!n)return null;let r=at(e.startContainer)??F(t),o=at(e.endContainer)??F(n);return {startBlock:t,endBlock:n,startOffset:Y(r,e.startContainer,e.startOffset),endOffset:Y(o,e.endContainer,e.endOffset)}}function on(e,t){let n=document.createRange();if(!e)return n;if(t<=0)return n.setStart(e,0),n.collapse(true),n;let r=0,o=[e];for(;o.length>0;){let s=o.pop();if(s.nodeType===Node.TEXT_NODE){let i=s.textContent.length;if(r+i>=t)return n.setEnd(s,t-r),n.setStart(s,t-r),n;r+=i;}else if(s.childNodes&&s.childNodes.length>0)for(let i=s.childNodes.length-1;i>=0;i--)o.push(s.childNodes[i]);}return n.setEnd(e,e.childNodes.length),n.setStart(e,e.childNodes.length),n}function mt(e,t){let n=on(e,t),r=dt();r.removeAllRanges(),r.addRange(n);}function F(e){if(!e)return null;let t=sn(e);return t?.firstElementChild??t?.firstChild}function sn(e){if(!e)return null;for(let t of e.children)if(t[tn])return t;return null}var b="molecule.paragraph.Paragraph";var ht="molecule.headline.";function W(e){return e===`
1
+ 'use strict';var qe=class{next(...e){}error(...e){}complete(...e){}},he=class{#e=new Set;pipe(...e){return e.reduce((t,n)=>n(t),this)}next(...e){Array.from(this.#e).forEach(t=>{typeof t=="function"?t(...e):t.next(...e);});}error(...e){Array.from(this.#e).forEach(t=>{t?.error?.(...e),this.unsubscribe(t);});}complete(...e){Array.from(this.#e).forEach(t=>{t?.complete?.(...e),this.unsubscribe(t);});}subscribe(e){return this.#e.add(e),{unsubscribe:()=>{this.unsubscribe(e);}}}unsubscribe(e){this.#e.delete(e);}};var Z=Symbol("@esmj/signals:type"),G=Symbol("@esmj/signals:name");var C=null,xe=false,Ee=[];function P(e){let t=C;C=null;let n=e();return C=t,n}function Bt(){xe=false;let e=Ye();for(let n of e)n.get();let t=Ee;Ee=[];for(let n of t)n();}function Ge(){xe||(xe=true,queueMicrotask(Bt));}function ye(e){Ee.push(e),Ge();}var Ue=Symbol("@esmj/signals:internal observable"),T=Symbol("@esmj/signals:original function"),Pt=class extends he{#e=new Set;#r=null;constructor(e){super(),this.#r=e,this.pipe(t=>{let n=t.subscribe.bind(t),r=t.unsubscribe.bind(t);return t.subscribe=o=>{n(o),this.#e.add(o);},t.unsubscribe=o=>{r(o),this.#e.delete(o);},t});}watch(e){if(typeof e.next!="function"&&(e.next=()=>P(()=>{this.#e.add(e),this.#r();}),e.next[T]=void 0),e instanceof We&&e.next[T]===void 0){let t=e.next.bind(e);e.next=()=>P(()=>{this.#e.add(e),t(),this.#r();}),e.next[T]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[T]){let n=t.get,r=n.bind(t);t.get=()=>P(()=>(this.#e.delete(t),r())),t.get[T]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[T]?e.next[T]:e.next,e.get=e.get[T]?e.get[T]:e.get,this.#e.delete(e),this.unsubscribe(e)}},ee=null;function Ve(e){ee=new Pt(e);}Ve(()=>{Ge();});function Ye(){return ee.getPending()}var A=Symbol("@esmj/signals:no error"),We=class Je extends qe{#e=true;#r=false;#n=null;#o=this.#d();#a=null;#c=null;#i=0;#s=new Map;#t=A;constructor(t,n){super(),this.#a=t,this.#c=n,this.debug=n?.debug,this[Z]="computed",this[G]=n?.debug??null,this.get=this.get.bind(this);}#u(){for(let{unsubscribe:t}of this.#o.dependencies.values())t();this.#o.dependencies.clear();}#d(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[G],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#s.keys()]}}#f(){for(let[t,n]of this.#s)if(t instanceof Je&&P(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#n[Ue].next();}get(){if(this.#r)throw new Error("Cycle detected in computed signal");if(this.#n||(this.#n=$(this.#l(),this.#c)),(this.#e||this.#t!==A)&&(this.#s.size===0||this.#f()?this.#l():this.#e=false),C&&C.sourceRevisions.set(this,this.#i),this.#t!==A)throw this.#t;return this.#n.get()}peek(){if(this.#n||(this.#n=$(this.#l(),this.#c)),(this.#e||this.#t!==A)&&(this.#s.size===0||this.#f()?this.#l():this.#e=false),this.#t!==A)throw this.#t;return this.#n.peek()}#l(){this.#r=true,this.#e=false,this.#t=A,this.#u(),this.#o.sourceRevisions.clear();let t=C;C=this.#o;let n;try{n=this.#a();}catch(r){this.#t=r;}return C=t,this.#s=this.#o.sourceRevisions,this.#o.sourceRevisions=new Map,this.#r=false,n instanceof Promise&&(n=n.then(r=>{this.#t=A,this.#n.set(r);}).catch(r=>{this.#t=r;})),this.#t===A&&this.#n&&this.#n.set(n),this.#i++,n}destroy(){this.#u(),this.#s.clear(),this.#e=true,this.#t=A;}};function $(e,t={}){let n=t?.equals??Object.is,r=0,o=new he;function s(){return C&&(C.dependencies.set(o,o.subscribe(C.observer)),C.sourceRevisions.set(l,r)),e}function i(){return e}function a(u){if(!n(e,u)){e=u,r++,o.next();}return e}function c(){return r}let l={get:s,set:a,peek:i,getRevision:c,[Ue]:o,[Z]:"signal",[G]:t?.debug??null};return l}function se(e){ye(()=>{setTimeout(e,0);});}var Me=Be(),ke=Be(),at=Be(),Zt=Array.from({length:256},(e,t)=>(t<=15?"0":"")+t.toString(16));function Be(){return Math.floor(Math.random()*16777215)}function en(){return ke=(ke+1)%16777215,ke}function X(){let e=Math.floor(Date.now()/1e3);e=parseInt(e,10)%4294967295;let t=en(),n=String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,e&255,Me>>16&255,Me>>8&255,Me&255,at>>8&255,at&255,t>>16&255,t>>8&255,t&255),r="";for(let o=0;o<n.length;o++)r+=Zt[n.charCodeAt(o)];return r}var ft=Symbol("block-element"),tn=Symbol("block-element-body"),le=Symbol("selectable-element");function ae(e,t){let n=e;for(n?.nodeType===Node.TEXT_NODE&&(n=n.parentElement);n&&n[t]===void 0;)n=n.parentElement;return n??null}function Pe(e){return e?ae(e.startContainer,ft):null}function ce(e){return ae(e,ft)}function dt(e){return e?ae(e.startContainer,le):null}function ut(e){return ae(e,le)}function ve(e){return e?e[le]!==void 0?[e]:[...e.children].filter(t=>t[le]!==void 0):[]}function nn(e,t){return t?ve(e).indexOf(t):-1}function ue(e,t){let n=dt(t);return !n||!e?.contains(n)?null:{element:n,index:nn(e,n)}}function pt(){return window.getSelection()}function z(){let e=pt();return e.rangeCount>0?e.getRangeAt(0).cloneRange():null}function rn(e,t){let n=dt(t);return n||(F(e)??e?.childNodes?.[0]??null)}function Y(e,t,n){if(!e)return 0;if(t===e){if(t.nodeType===Node.TEXT_NODE)return n;let i=0,a=e.childNodes,c=Math.min(n,a.length);for(let l=0;l<c;l++)i+=a[l].textContent.length;return i}if(t.nodeType===Node.ELEMENT_NODE&&!e.contains(t))return 0;let r=0,o=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),s=o.nextNode();for(;s;){if(s===t)return r+n;r+=s.textContent.length,s=o.nextNode();}return r}function gt(){let e=z();if(!e)return null;let t=Pe(e),n=rn(t,e);return {start:Y(n,e.startContainer,e.startOffset),end:Y(n,e.endContainer,e.endOffset),element:t,selectableElement:n}}function mt(e=z()){if(!e||e.collapsed)return null;let t=ce(e.startContainer),n=ce(e.endContainer);if(!t||!n)return null;let r=ut(e.startContainer)??F(t),o=ut(e.endContainer)??F(n);return {startBlock:t,endBlock:n,startOffset:Y(r,e.startContainer,e.startOffset),endOffset:Y(o,e.endContainer,e.endOffset)}}function on(e,t){let n=document.createRange();if(!e)return n;if(t<=0)return n.setStart(e,0),n.collapse(true),n;let r=0,o=[e];for(;o.length>0;){let s=o.pop();if(s.nodeType===Node.TEXT_NODE){let i=s.textContent.length;if(r+i>=t)return n.setEnd(s,t-r),n.setStart(s,t-r),n;r+=i;}else if(s.childNodes&&s.childNodes.length>0)for(let i=s.childNodes.length-1;i>=0;i--)o.push(s.childNodes[i]);}return n.setEnd(e,e.childNodes.length),n.setStart(e,e.childNodes.length),n}function De(e,t){let n=on(e,t),r=pt();r.removeAllRanges(),r.addRange(n);}function F(e){if(!e)return null;let t=sn(e);return t?.firstElementChild??t?.firstChild}function sn(e){if(!e)return null;for(let t of e.children)if(t[tn])return t;return null}var b="molecule.paragraph.Paragraph";var ht="molecule.headline.";function W(e){return e===`
2
2
  `||e===`\r
3
- `?"":e??""}function _(e){return {properties:{text:e?.text??"",inlineStyleRanges:e?.inlineStyleRanges??[],entityRanges:e?.entityRanges??[]}}}function x(e){let t=e?.component??"";return t===b||t.startsWith(ht)}function j(e){return Array.isArray(e?.properties?.items)}function J(e,t){return x(e)&&x(t)&&e.component===t.component}function N(e,t){let n=W(e.properties.text),r=W(t.properties.text);return {state:{...e,properties:{...t.properties,...e.properties,text:n+r,inlineStyleRanges:[...e.properties.inlineStyleRanges??[],...(t.properties.inlineStyleRanges??[]).map(o=>({...o,offset:o.offset+n.length}))],entityRanges:[...e.properties.entityRanges??[],...(t.properties.entityRanges??[]).map(o=>({...o,offset:o.offset+n.length}))]},settings:{...t.settings,...e.settings}},cursor:n.length}}function yt(e,{startIndex:t,endIndex:n,startOffset:r,endOffset:o}){let s=[...e],i=s[t],a=s[n],{originalLineState:c}=E(i,r),{newLineState:l}=E(a,o),{state:u,cursor:f}=N(c,l);return s.splice(t,n-t+1,u),{content:s,cursor:f,resultIndex:t}}function xt(e,t){return (e??[]).filter(n=>n.offset<t).map(n=>({...n,length:Math.min(n.length,t-n.offset)}))}function Et(e,t){return (e??[]).filter(n=>n.offset+n.length>t).map(n=>({...n,offset:Math.max(0,n.offset-t),length:n.offset+n.length-Math.max(n.offset,t)}))}function E(e,t){let n=structuredClone(e),r=structuredClone(e);return n.properties.text=e.properties.text.slice(0,t),r.properties.text=e.properties.text.slice(t),n.properties.inlineStyleRanges=xt(e.properties.inlineStyleRanges,t),r.properties.inlineStyleRanges=Et(e.properties.inlineStyleRanges,t),n.properties.entityRanges=xt(e.properties.entityRanges,t),r.properties.entityRanges=Et(e.properties.entityRanges,t),r.componentId=X(),{originalLineState:n,newLineState:r}}var S={BEFORE_INPUT:"mrakomor:beforeinput"};var Ct="application/x-mrakomor-blocks+json",Rt=1;function O(e){return x(e)?W(e.properties?.text).length:0}function ue(e,t,n){let r=e?.properties?.text??"",o=Math.max(0,Math.min(t,r.length)),s=Math.max(o,Math.min(n,r.length)),{originalLineState:i}=E(e,s),{newLineState:a}=E(i,o);return a}function bt(e,t,n){let r={component:b,..._(e),settings:{}};return ue(r,t,n)}function ln(e,t,n,r,o){let s=e.properties?.items??[],i="",a=[],c=[];for(let l=t;l<=r;l+=1){let u=s[l];if(!u)continue;let f=l===t?n:0,d=l===r?o:(u.text??"").length,h=bt(u,f,d),m=i.length;i+=h.properties.text??"";for(let g of h.properties.inlineStyleRanges??[])a.push({...g,offset:g.offset+m});for(let g of h.properties.entityRanges??[])c.push({...g,offset:g.offset+m});}return [{component:b,..._({text:i,inlineStyleRanges:a,entityRanges:c}),settings:{}}]}function cn(e,t,n,r,o){let s=structuredClone(e),i=s.properties?.items??[],a=i[t],c=i[r];if(!a||!c)return s;let{originalLineState:l}=E(_(a),n),{newLineState:u}=E(_(c),o);return s.properties.items=[...i.slice(0,t),{...a,text:l.properties.text,inlineStyleRanges:l.properties.inlineStyleRanges,entityRanges:l.properties.entityRanges},{...c,text:u.properties.text,inlineStyleRanges:u.properties.inlineStyleRanges,entityRanges:u.properties.entityRanges},...i.slice(r+1)],s}function an(e,t){let n=e.index,r=e.listItemIndex??-1,o=e.offset??0,s=t.listItemIndex??-1,i=t.endListItemIndex??s;if(n!==t.startIndex||s<0)return {index:n,offset:o,listItemIndex:r};if(s===i)return r!==s||o<=t.startOffset?{index:n,offset:o,listItemIndex:r}:o>=t.endOffset?{index:n,offset:o-(t.endOffset-t.startOffset),listItemIndex:r}:{index:n,offset:t.startOffset,listItemIndex:r};let a=Math.max(0,i-s-1);return r<s||r===s&&o<=t.startOffset?{index:n,offset:o,listItemIndex:r}:r===i&&o>=t.endOffset?{index:n,offset:o-t.endOffset,listItemIndex:s+1}:r>i?{index:n,offset:o,listItemIndex:r-a}:{index:n,offset:t.startOffset,listItemIndex:s}}function fe(e,t){let{startIndex:n,endIndex:r,startOffset:o,endOffset:s,listItemIndex:i=-1,endListItemIndex:a}=t;if(n<0||r<0||n>r)return [];if(n===r){let l=e[n];if(j(l)&&i>=0){let u=a??i,f=l.properties.items[i];return f?u===i?[bt(f,o,s)]:ln(l,i,o,u,s):[structuredClone(l)]}return x(l)?[ue(l,o,s)]:[structuredClone(l)]}let c=[];for(let l=n;l<=r;l+=1){let u=e[l];l===n&&x(u)?c.push(ue(u,o,O(u))):l===r&&x(u)?c.push(ue(u,0,s)):c.push(structuredClone(u));}return c}function un(e,t,n,r){let o=structuredClone(e),s=o.properties?.items?.[t];if(!s)return o;let i=_(s),{originalLineState:a}=E(i,n),{newLineState:c}=E(i,r),{state:l}=N(a,c);return o.properties.items[t]={...s,text:l.properties.text,inlineStyleRanges:l.properties.inlineStyleRanges,entityRanges:l.properties.entityRanges},o}function de(e,t){let{startIndex:n,endIndex:r,startOffset:o,endOffset:s,listItemIndex:i=-1,endListItemIndex:a}=t,c=[...e];if(n===r){let d=c[n];if(j(d)&&i>=0){let m=a??i;return c[n]=m===i?un(d,i,o,s):cn(d,i,o,m,s),{content:c,resultIndex:n,cursor:o,listItemIndex:i}}if(x(d)){let{originalLineState:m}=E(d,o),{newLineState:g}=E(d,s),{state:y,cursor:k}=N(m,g);return c[n]=y,{content:c,resultIndex:n,cursor:k}}c.splice(n,1);let h=Math.min(n,Math.max(0,c.length-1));return {content:c,resultIndex:h,cursor:0}}if(x(c[n])&&x(c[r]))return yt(c,{startIndex:n,endIndex:r,startOffset:o,endOffset:s});let l=[];x(c[n])&&l.push(E(c[n],o).originalLineState),x(c[r])&&l.push(E(c[r],s).newLineState);let u=l,f=0;if(l.length===2){let d=N(l[0],l[1]);u=[d.state],f=d.cursor;}else l.length===1&&(f=O(l[0]));return c.splice(n,r-n+1,...u),{content:c,resultIndex:u.length?n:Math.max(0,n-1),cursor:f}}function Nt(e,{source:t,drop:n,blocks:r}){if(!r?.length)return {content:[...e],resultIndex:Math.max(0,n.index),cursor:n.offset??0,listItemIndex:n.listItemIndex??-1};let o=de(e,t),s=an(n,t);return pe(o.content,{index:s.index,offset:s.offset,listItemIndex:s.listItemIndex,blocks:r})}function Lt(e,t,n){let r=[...e];r.splice(t+1,0,...n);let o=n[n.length-1];return {content:r,resultIndex:t+n.length,cursor:O(o),listItemIndex:-1}}function fn(e,{listIndex:t,itemIndex:n,offset:r,blocks:o}){let s=structuredClone(e[t]),i=s.properties?.items?.[n],a=o.length===1&&x(o[0]);if(!i||!a)return Lt(e,t,o);let c=_(i),l=_(o[0]?.properties),{originalLineState:u,newLineState:f}=E(c,r),{state:d}=N(u,l),{state:h,cursor:m}=N(d,f);s.properties.items[n]={...i,text:h.properties.text,inlineStyleRanges:h.properties.inlineStyleRanges,entityRanges:h.properties.entityRanges};let g=[...e];return g[t]=s,{content:g,resultIndex:t,cursor:m,listItemIndex:n}}function pe(e,{index:t,offset:n,blocks:r,listItemIndex:o=-1}){let s=[...e];if(!r?.length)return {content:s,resultIndex:Math.max(0,t),cursor:n??0};if(t<0||t>=s.length){s.push(...r);let m=r[r.length-1];return {content:s,resultIndex:s.length-1,cursor:O(m)}}let i=s[t];if(j(i)&&o>=0)return fn(s,{listIndex:t,itemIndex:o,offset:n??0,blocks:r});if(!x(i))return Lt(s,t,r);let{originalLineState:a,newLineState:c}=E(i,n??0),l=r[0],u=r[r.length-1],f=[];if(J(a,l)?f.push(N(a,l).state):(O(a)>0&&f.push(a),f.push(l)),r.length>1)f.push(...r.slice(1,-1)),J(u,c)?f.push(N(u,c).state):(f.push(u),O(c)>0&&f.push(c));else {let m=f[f.length-1];if(J(m,c)){let{state:g,cursor:y}=N(m,c);return f[f.length-1]=g,s.splice(t,1,...f),{content:s,resultIndex:t+f.length-1,cursor:y}}O(c)>0&&f.push(c);}s.splice(t,1,...f);let d=r.length>1&&J(u,c),h=t+f.length-1-(d||O(c)===0?0:1);return {content:s,resultIndex:Math.max(t,h),cursor:O(u)}}function St(e){if(!e)return null;try{let t=JSON.parse(e);if(t&&t.v===Rt&&Array.isArray(t.blocks))return t.blocks}catch{return null}return null}function dn(e){return new DOMParser().parseFromString(e,"text/html").body?.textContent??""}function It(e,t=b){return String(e).split(/\r\n|\n|\r/).map(r=>({component:t,..._({text:r}),settings:{}}))}function pn(e){return j(e)?(e.properties.items??[]).map(t=>t.text??"").join(`
3
+ `?"":e??""}function _(e){return {properties:{text:e?.text??"",inlineStyleRanges:e?.inlineStyleRanges??[],entityRanges:e?.entityRanges??[]}}}function x(e){let t=e?.component??"";return t===b||t.startsWith(ht)}function j(e){return Array.isArray(e?.properties?.items)}function J(e,t){return x(e)&&x(t)&&e.component===t.component}function N(e,t){let n=W(e.properties.text),r=W(t.properties.text);return {state:{...e,properties:{...t.properties,...e.properties,text:n+r,inlineStyleRanges:[...e.properties.inlineStyleRanges??[],...(t.properties.inlineStyleRanges??[]).map(o=>({...o,offset:o.offset+n.length}))],entityRanges:[...e.properties.entityRanges??[],...(t.properties.entityRanges??[]).map(o=>({...o,offset:o.offset+n.length}))]},settings:{...t.settings,...e.settings}},cursor:n.length}}function yt(e,{startIndex:t,endIndex:n,startOffset:r,endOffset:o}){let s=[...e],i=s[t],a=s[n],{originalLineState:c}=E(i,r),{newLineState:l}=E(a,o),{state:u,cursor:f}=N(c,l);return s.splice(t,n-t+1,u),{content:s,cursor:f,resultIndex:t}}function xt(e,t){return (e??[]).filter(n=>n.offset<t).map(n=>({...n,length:Math.min(n.length,t-n.offset)}))}function Et(e,t){return (e??[]).filter(n=>n.offset+n.length>t).map(n=>({...n,offset:Math.max(0,n.offset-t),length:n.offset+n.length-Math.max(n.offset,t)}))}function E(e,t){let n=structuredClone(e),r=structuredClone(e);return n.properties.text=e.properties.text.slice(0,t),r.properties.text=e.properties.text.slice(t),n.properties.inlineStyleRanges=xt(e.properties.inlineStyleRanges,t),r.properties.inlineStyleRanges=Et(e.properties.inlineStyleRanges,t),n.properties.entityRanges=xt(e.properties.entityRanges,t),r.properties.entityRanges=Et(e.properties.entityRanges,t),r.componentId=X(),{originalLineState:n,newLineState:r}}var S={BEFORE_INPUT:"mrakomor:beforeinput"};var Ct="application/x-mrakomor-blocks+json",Rt=1;function O(e){return x(e)?W(e.properties?.text).length:0}function fe(e,t,n){let r=e?.properties?.text??"",o=Math.max(0,Math.min(t,r.length)),s=Math.max(o,Math.min(n,r.length)),{originalLineState:i}=E(e,s),{newLineState:a}=E(i,o);return a}function bt(e,t,n){let r={component:b,..._(e),settings:{}};return fe(r,t,n)}function ln(e,t,n,r,o){let s=e.properties?.items??[],i="",a=[],c=[];for(let l=t;l<=r;l+=1){let u=s[l];if(!u)continue;let f=l===t?n:0,d=l===r?o:(u.text??"").length,h=bt(u,f,d),m=i.length;i+=h.properties.text??"";for(let g of h.properties.inlineStyleRanges??[])a.push({...g,offset:g.offset+m});for(let g of h.properties.entityRanges??[])c.push({...g,offset:g.offset+m});}return [{component:b,..._({text:i,inlineStyleRanges:a,entityRanges:c}),settings:{}}]}function cn(e,t,n,r,o){let s=structuredClone(e),i=s.properties?.items??[],a=i[t],c=i[r];if(!a||!c)return s;let{originalLineState:l}=E(_(a),n),{newLineState:u}=E(_(c),o);return s.properties.items=[...i.slice(0,t),{...a,text:l.properties.text,inlineStyleRanges:l.properties.inlineStyleRanges,entityRanges:l.properties.entityRanges},{...c,text:u.properties.text,inlineStyleRanges:u.properties.inlineStyleRanges,entityRanges:u.properties.entityRanges},...i.slice(r+1)],s}function an(e,t){let n=e.index,r=e.listItemIndex??-1,o=e.offset??0,s=t.listItemIndex??-1,i=t.endListItemIndex??s;if(n!==t.startIndex||s<0)return {index:n,offset:o,listItemIndex:r};if(s===i)return r!==s||o<=t.startOffset?{index:n,offset:o,listItemIndex:r}:o>=t.endOffset?{index:n,offset:o-(t.endOffset-t.startOffset),listItemIndex:r}:{index:n,offset:t.startOffset,listItemIndex:r};let a=Math.max(0,i-s-1);return r<s||r===s&&o<=t.startOffset?{index:n,offset:o,listItemIndex:r}:r===i&&o>=t.endOffset?{index:n,offset:o-t.endOffset,listItemIndex:s+1}:r>i?{index:n,offset:o,listItemIndex:r-a}:{index:n,offset:t.startOffset,listItemIndex:s}}function de(e,t){let{startIndex:n,endIndex:r,startOffset:o,endOffset:s,listItemIndex:i=-1,endListItemIndex:a}=t;if(n<0||r<0||n>r)return [];if(n===r){let l=e[n];if(j(l)&&i>=0){let u=a??i,f=l.properties.items[i];return f?u===i?[bt(f,o,s)]:ln(l,i,o,u,s):[structuredClone(l)]}return x(l)?[fe(l,o,s)]:[structuredClone(l)]}let c=[];for(let l=n;l<=r;l+=1){let u=e[l];l===n&&x(u)?c.push(fe(u,o,O(u))):l===r&&x(u)?c.push(fe(u,0,s)):c.push(structuredClone(u));}return c}function un(e,t,n,r){let o=structuredClone(e),s=o.properties?.items?.[t];if(!s)return o;let i=_(s),{originalLineState:a}=E(i,n),{newLineState:c}=E(i,r),{state:l}=N(a,c);return o.properties.items[t]={...s,text:l.properties.text,inlineStyleRanges:l.properties.inlineStyleRanges,entityRanges:l.properties.entityRanges},o}function pe(e,t){let{startIndex:n,endIndex:r,startOffset:o,endOffset:s,listItemIndex:i=-1,endListItemIndex:a}=t,c=[...e];if(n===r){let d=c[n];if(j(d)&&i>=0){let m=a??i;return c[n]=m===i?un(d,i,o,s):cn(d,i,o,m,s),{content:c,resultIndex:n,cursor:o,listItemIndex:i}}if(x(d)){let{originalLineState:m}=E(d,o),{newLineState:g}=E(d,s),{state:y,cursor:k}=N(m,g);return c[n]=y,{content:c,resultIndex:n,cursor:k}}c.splice(n,1);let h=Math.min(n,Math.max(0,c.length-1));return {content:c,resultIndex:h,cursor:0}}if(x(c[n])&&x(c[r]))return yt(c,{startIndex:n,endIndex:r,startOffset:o,endOffset:s});let l=[];x(c[n])&&l.push(E(c[n],o).originalLineState),x(c[r])&&l.push(E(c[r],s).newLineState);let u=l,f=0;if(l.length===2){let d=N(l[0],l[1]);u=[d.state],f=d.cursor;}else l.length===1&&(f=O(l[0]));return c.splice(n,r-n+1,...u),{content:c,resultIndex:u.length?n:Math.max(0,n-1),cursor:f}}function Nt(e,{source:t,drop:n,blocks:r}){if(!r?.length)return {content:[...e],resultIndex:Math.max(0,n.index),cursor:n.offset??0,listItemIndex:n.listItemIndex??-1};let o=pe(e,t),s=an(n,t);return ge(o.content,{index:s.index,offset:s.offset,listItemIndex:s.listItemIndex,blocks:r})}function Lt(e,t,n){let r=[...e];r.splice(t+1,0,...n);let o=n[n.length-1];return {content:r,resultIndex:t+n.length,cursor:O(o),listItemIndex:-1}}function fn(e,{listIndex:t,itemIndex:n,offset:r,blocks:o}){let s=structuredClone(e[t]),i=s.properties?.items?.[n],a=o.length===1&&x(o[0]);if(!i||!a)return Lt(e,t,o);let c=_(i),l=_(o[0]?.properties),{originalLineState:u,newLineState:f}=E(c,r),{state:d}=N(u,l),{state:h,cursor:m}=N(d,f);s.properties.items[n]={...i,text:h.properties.text,inlineStyleRanges:h.properties.inlineStyleRanges,entityRanges:h.properties.entityRanges};let g=[...e];return g[t]=s,{content:g,resultIndex:t,cursor:m,listItemIndex:n}}function ge(e,{index:t,offset:n,blocks:r,listItemIndex:o=-1}){let s=[...e];if(!r?.length)return {content:s,resultIndex:Math.max(0,t),cursor:n??0};if(t<0||t>=s.length){s.push(...r);let m=r[r.length-1];return {content:s,resultIndex:s.length-1,cursor:O(m)}}let i=s[t];if(j(i)&&o>=0)return fn(s,{listIndex:t,itemIndex:o,offset:n??0,blocks:r});if(!x(i))return Lt(s,t,r);let{originalLineState:a,newLineState:c}=E(i,n??0),l=r[0],u=r[r.length-1],f=[];if(J(a,l)?f.push(N(a,l).state):(O(a)>0&&f.push(a),f.push(l)),r.length>1)f.push(...r.slice(1,-1)),J(u,c)?f.push(N(u,c).state):(f.push(u),O(c)>0&&f.push(c));else {let m=f[f.length-1];if(J(m,c)){let{state:g,cursor:y}=N(m,c);return f[f.length-1]=g,s.splice(t,1,...f),{content:s,resultIndex:t+f.length-1,cursor:y}}O(c)>0&&f.push(c);}s.splice(t,1,...f);let d=r.length>1&&J(u,c),h=t+f.length-1-(d||O(c)===0?0:1);return {content:s,resultIndex:Math.max(t,h),cursor:O(u)}}function St(e){if(!e)return null;try{let t=JSON.parse(e);if(t&&t.v===Rt&&Array.isArray(t.blocks))return t.blocks}catch{return null}return null}function dn(e){return new DOMParser().parseFromString(e,"text/html").body?.textContent??""}function It(e,t=b){return String(e).split(/\r\n|\n|\r/).map(r=>({component:t,..._({text:r}),settings:{}}))}function pn(e){return j(e)?(e.properties.items??[]).map(t=>t.text??"").join(`
4
4
  `):x(e)?W(e.properties?.text):""}function gn(e){return e.map(pn).join(`
5
- `)}function mn(e){return {v:Rt,blocks:e.map(t=>structuredClone(t))}}function ge(e,t){let n=mn(t);e.setData(Ct,JSON.stringify(n)),e.setData("text/plain",gn(t));}function De(e,t=b){if(!e)return [];let n=St(e.getData(Ct));if(n)return n;let r=e.getData("text/plain")??"",o=St(r);if(o)return o;if(r)return It(r,t);let s=e.getData("text/html")??"";return s?It(dn(s),t):[]}function Tt(e){let t=structuredClone(e);return t.componentId=X(),Array.isArray(t.properties?.items)&&(t.properties.items=t.properties.items.map(n=>({...n,componentId:X()}))),t}function H(e,t){return !!t?._getContentRoot()?.contains(e.target)}function hn(e,t){let n=F(e),r=ae(n,t);if(!r)return {listItemIndex:-1,endListItemIndex:-1};let o=ae(n,{startContainer:t.endContainer??t.startContainer});return {listItemIndex:r.index,endListItemIndex:o?.index??r.index}}function Q(e){let t=z();if(!t)return null;let n=le(t.startContainer)??Pe(t);if(!n)return null;let r=e._getBlockElementIndex(n);if(r<0)return null;let o=e.getContent(),s=j(o[r])?hn(n,t):{listItemIndex:-1,endListItemIndex:-1};if(t.collapsed){let c=pt();return {collapsed:true,startIndex:r,endIndex:r,startOffset:c?.start??0,endOffset:c?.start??0,listItemIndex:s.listItemIndex,endListItemIndex:s.endListItemIndex}}let i=gt(t),a=e._getBlockElementIndex(i.endBlock);return {collapsed:false,startIndex:r,endIndex:a,startOffset:i.startOffset,endOffset:i.endOffset,listItemIndex:r===a?s.listItemIndex:-1,endListItemIndex:r===a?s.endListItemIndex:-1}}function xn(e,t,n,r=-1){Te(()=>{let o=e._getBlockElements()[t],s=F(o),i=r>=0?ve(s)[r]??s:s;i?.isConnected&&mt(i,n);});}function At(e,t){return t.map(n=>{try{return e.normalizeComponentState(Tt(n))}catch{return null}}).filter(Boolean)}function Fe(e,t,n,r,o=-1){let s=t.map(i=>{try{return e.normalizeComponentState(i)}catch{return null}}).filter(Boolean);e.setContent(s),xn(e,n,r,o);}function En(e){let t=e.mrakomor;if(!t||!H(e,t)||!e.clipboardData)return;let n=Q(t);if(!n||n.collapsed)return;let r=fe(t.getContent(),n);r.length&&(e.preventDefault(),ge(e.clipboardData,r));}function yn(e){let t=e.mrakomor;if(!t||!H(e,t)||!e.clipboardData)return;let n=Q(t);if(!n||n.collapsed)return;let r=t.getContent(),o=fe(r,n);if(!o.length)return;e.preventDefault(),ge(e.clipboardData,o);let s=de(r,n);Fe(t,s.content,s.resultIndex,s.cursor,n.listItemIndex);}function Sn(e){let t=e.mrakomor;if(!t||e.target&&!H(e,t))return;e.preventDefault();let n=At(t,De(e.clipboardData,b));if(!n.length)return;let r=t.getContent(),o=Q(t);if(!o)return;let s=r,i=o.startIndex,a=o.startOffset;if(!o.collapsed){let l=de(s,o);s=l.content,i=l.resultIndex,a=l.cursor;}let c=pe(s,{index:i,offset:a,blocks:n,listItemIndex:o.listItemIndex});Fe(t,c.content,c.resultIndex,c.cursor,c.listItemIndex??o.listItemIndex);}function In(e){return !!e.target?.closest?.("ul, ol, li")}function Cn(e){let t=e.inputType;t!=="deleteByDrag"&&t!=="insertFromDrop"||!H(e,e.mrakomor)||!In(e)||e.preventDefault();}function Rn(e,t){if(typeof document.caretRangeFromPoint=="function")return document.caretRangeFromPoint(e,t);if(typeof document.caretPositionFromPoint=="function"){let n=document.caretPositionFromPoint(e,t);if(!n?.offsetNode)return null;let r=document.createRange();return r.setStart(n.offsetNode,n.offset),r.collapse(true),r}return null}function bn({root:e,mrakomor:t}){return {registerEvents(){S.COPY="mrakomor:copy",S.CUT="mrakomor:cut",S.PASTE="mrakomor:paste";},registerCommands(n){n.command.copy=(r={})=>{n.emitDomEvent(S.COPY,r);},n.command.cut=(r={})=>{n.emitDomEvent(S.CUT,r);},n.command.paste=(r={})=>{n.emitDomEvent(S.PASTE,r);};},registerHandlers(){t.register.help.add({id:"clipboard.copy",group:"editing",description:"Copy the selection",commands:[],shortcuts:["Mod+C"]}),t.register.help.add({id:"clipboard.cut",group:"editing",description:"Cut the selection",commands:[],shortcuts:["Mod+X"]}),t.register.help.add({id:"clipboard.paste",group:"editing",description:"Paste at the caret or selection",commands:[],shortcuts:["Mod+V"]});},registerListeners(){let{signal:n}=t.listenerAbortController,r=e??t.getRoot(),o=null;function s(l){if(!H(l,t)||!l.dataTransfer){o=null;return}let u=Q(t);if(!u||u.collapsed||(u.listItemIndex??-1)<0){o=null;return}let f=fe(t.getContent(),u);if(!f.length){o=null;return}o={selection:u,blocks:f},ge(l.dataTransfer,f),l.dataTransfer.effectAllowed="copyMove";}function i(l){!o||!H(l,t)||(l.preventDefault(),l.dataTransfer&&(l.dataTransfer.dropEffect=l.altKey||l.ctrlKey?"copy":"move"));}function a(l){if(!o||!H(l,t))return;l.preventDefault();let u=Rn(l.clientX,l.clientY);if(u){u.collapse(true);let y=window.getSelection();y.removeAllRanges(),y.addRange(u);}let f=At(t,o?.blocks??De(l.dataTransfer,b));if(!f.length){o=null;return}let d=Q(t);if(!d){o=null;return}let h=!!o?.selection&&!l.altKey&&!l.ctrlKey,m=t.getContent(),g=h?Nt(m,{source:o.selection,drop:{index:d.startIndex,offset:d.startOffset,listItemIndex:d.listItemIndex},blocks:f}):pe(m,{index:d.startIndex,offset:d.startOffset,listItemIndex:d.listItemIndex,blocks:f});Fe(t,g.content,g.resultIndex,g.cursor,g.listItemIndex??d.listItemIndex),o=null;}function c(){o=null;}r.addEventListener("copy",l=>t.emitDomEvent(S.COPY,l),{signal:n}),r.addEventListener("cut",l=>t.emitDomEvent(S.CUT,l),{signal:n}),r.addEventListener("paste",l=>t.emitDomEvent(S.PASTE,l),{signal:n}),r.addEventListener("dragstart",s,{signal:n}),r.addEventListener("dragover",i,{signal:n}),r.addEventListener("drop",a,{signal:n}),r.addEventListener("dragend",c,{signal:n}),t.emitter.on(S.COPY,En),t.emitter.on(S.CUT,yn),t.emitter.on(S.PASTE,Sn),t.emitter.on(S.BEFORE_INPUT,Cn);}}}exports.clipboardPlugin=bn;
5
+ `)}function mn(e){return {v:Rt,blocks:e.map(t=>structuredClone(t))}}function me(e,t){let n=mn(t);e.setData(Ct,JSON.stringify(n)),e.setData("text/plain",gn(t));}function Fe(e,t=b){if(!e)return [];let n=St(e.getData(Ct));if(n)return n;let r=e.getData("text/plain")??"",o=St(r);if(o)return o;if(r)return It(r,t);let s=e.getData("text/html")??"";return s?It(dn(s),t):[]}function Tt(e){let t=structuredClone(e);return t.componentId=X(),Array.isArray(t.properties?.items)&&(t.properties.items=t.properties.items.map(n=>({...n,componentId:X()}))),t}function H(e,t){return !!t?._getContentRoot()?.contains(e.target)}function hn(e,t){let n=F(e),r=ue(n,t);if(!r)return {listItemIndex:-1,endListItemIndex:-1};let o=ue(n,{startContainer:t.endContainer??t.startContainer});return {listItemIndex:r.index,endListItemIndex:o?.index??r.index}}function Q(e){let t=z();if(!t)return null;let n=ce(t.startContainer)??Pe(t);if(!n)return null;let r=e._getBlockElementIndex(n);if(r<0)return null;let o=e.getContent(),s=j(o[r])?hn(n,t):{listItemIndex:-1,endListItemIndex:-1};if(t.collapsed){let c=gt();return {collapsed:true,startIndex:r,endIndex:r,startOffset:c?.start??0,endOffset:c?.start??0,listItemIndex:s.listItemIndex,endListItemIndex:s.endListItemIndex}}let i=mt(t),a=e._getBlockElementIndex(i.endBlock);return {collapsed:false,startIndex:r,endIndex:a,startOffset:i.startOffset,endOffset:i.endOffset,listItemIndex:r===a?s.listItemIndex:-1,endListItemIndex:r===a?s.endListItemIndex:-1}}function xn(e,t,n,r=-1){se(()=>{let o=e._getBlockElements()[t],s=F(o),i=r>=0?ve(s)[r]??s:s;i?.isConnected&&De(i,n);});}function At(e,t){return t.map(n=>{try{return e.normalizeComponentState(Tt(n))}catch{return null}}).filter(Boolean)}function je(e,t,n,r,o=-1){let s=t.map(i=>{try{return e.normalizeComponentState(i)}catch{return null}}).filter(Boolean);e.setContent(s),xn(e,n,r,o);}function En(e){let t=e.mrakomor;if(!t||!H(e,t)||!e.clipboardData)return;let n=Q(t);if(!n||n.collapsed)return;let r=de(t.getContent(),n);r.length&&(e.preventDefault(),me(e.clipboardData,r));}function yn(e){let t=e.mrakomor;if(!t||!H(e,t)||!e.clipboardData)return;let n=Q(t);if(!n||n.collapsed)return;let r=t.getContent(),o=de(r,n);if(!o.length)return;e.preventDefault(),me(e.clipboardData,o);let s=pe(r,n);je(t,s.content,s.resultIndex,s.cursor,n.listItemIndex);}function Sn(e){let t=e.mrakomor;if(!t||e.target&&!H(e,t))return;e.preventDefault();let n=At(t,Fe(e.clipboardData,b));if(!n.length)return;let r=t.getContent(),o=Q(t);if(!o)return;let s=r,i=o.startIndex,a=o.startOffset;if(!o.collapsed){let l=pe(s,o);s=l.content,i=l.resultIndex,a=l.cursor;}let c=ge(s,{index:i,offset:a,blocks:n,listItemIndex:o.listItemIndex});je(t,c.content,c.resultIndex,c.cursor,c.listItemIndex??o.listItemIndex);}function In(e){return !!e.target?.closest?.("ul, ol, li")}function Cn(e){let t=e.inputType;t!=="deleteByDrag"&&t!=="insertFromDrop"||!H(e,e.mrakomor)||!In(e)||e.preventDefault();}function Rn(e,t){if(typeof document.caretRangeFromPoint=="function")return document.caretRangeFromPoint(e,t);if(typeof document.caretPositionFromPoint=="function"){let n=document.caretPositionFromPoint(e,t);if(!n?.offsetNode)return null;let r=document.createRange();return r.setStart(n.offsetNode,n.offset),r.collapse(true),r}return null}function bn({root:e,mrakomor:t}){return {registerEvents(){S.COPY="mrakomor:copy",S.CUT="mrakomor:cut",S.PASTE="mrakomor:paste";},registerCommands(n){n.command.copy=(r={})=>{n.emitDomEvent(S.COPY,r);},n.command.cut=(r={})=>{n.emitDomEvent(S.CUT,r);},n.command.paste=(r={})=>{n.emitDomEvent(S.PASTE,r);};},registerHandlers(){t.register.help.add({id:"clipboard.copy",group:"editing",description:"Copy the selection",commands:[],shortcuts:["Mod+C"]}),t.register.help.add({id:"clipboard.cut",group:"editing",description:"Cut the selection",commands:[],shortcuts:["Mod+X"]}),t.register.help.add({id:"clipboard.paste",group:"editing",description:"Paste at the caret or selection",commands:[],shortcuts:["Mod+V"]});},registerListeners(){let{signal:n}=t.listenerAbortController,r=e??t.getRoot(),o=null;function s(l){if(!H(l,t)||!l.dataTransfer){o=null;return}let u=Q(t);if(!u||u.collapsed||(u.listItemIndex??-1)<0){o=null;return}let f=de(t.getContent(),u);if(!f.length){o=null;return}o={selection:u,blocks:f},me(l.dataTransfer,f),l.dataTransfer.effectAllowed="copyMove";}function i(l){!o||!H(l,t)||(l.preventDefault(),l.dataTransfer&&(l.dataTransfer.dropEffect=l.altKey||l.ctrlKey?"copy":"move"));}function a(l){if(!o||!H(l,t))return;l.preventDefault();let u=Rn(l.clientX,l.clientY);if(u){u.collapse(true);let y=window.getSelection();y.removeAllRanges(),y.addRange(u);}let f=At(t,o?.blocks??Fe(l.dataTransfer,b));if(!f.length){o=null;return}let d=Q(t);if(!d){o=null;return}let h=!!o?.selection&&!l.altKey&&!l.ctrlKey,m=t.getContent(),g=h?Nt(m,{source:o.selection,drop:{index:d.startIndex,offset:d.startOffset,listItemIndex:d.listItemIndex},blocks:f}):ge(m,{index:d.startIndex,offset:d.startOffset,listItemIndex:d.listItemIndex,blocks:f});je(t,g.content,g.resultIndex,g.cursor,g.listItemIndex??d.listItemIndex),o=null;}function c(){o=null;}r.addEventListener("copy",l=>t.emitDomEvent(S.COPY,l),{signal:n}),r.addEventListener("cut",l=>t.emitDomEvent(S.CUT,l),{signal:n}),r.addEventListener("paste",l=>t.emitDomEvent(S.PASTE,l),{signal:n}),r.addEventListener("dragstart",s,{signal:n}),r.addEventListener("dragover",i,{signal:n}),r.addEventListener("drop",a,{signal:n}),r.addEventListener("dragend",c,{signal:n}),t.emitter.on(S.COPY,En),t.emitter.on(S.CUT,yn),t.emitter.on(S.PASTE,Sn),t.emitter.on(S.BEFORE_INPUT,Cn);}}}exports.clipboardPlugin=bn;
@@ -1,3 +1,3 @@
1
- import {a as a$1,q as q$1,p,w as w$1,r as r$1,u,v as v$1,m,j as j$1}from'./chunk-ZDMD7SRT.mjs';import {a}from'./chunk-B6JJAATK.mjs';import {k as k$1,f,e,q as q$2,r,u as u$1,j,a as a$2,i,t}from'./chunk-SCFD3XBH.mjs';import {n}from'./chunk-K2DMHAUD.mjs';var Q="application/x-mrakomor-blocks+json",W=1;function y(r){return p(r)?j$1(r.properties?.text).length:0}function T(r,t,e){let n=r?.properties?.text??"",o=Math.max(0,Math.min(t,n.length)),s=Math.max(o,Math.min(e,n.length)),{originalLineState:c}=w$1(r,s),{newLineState:d}=w$1(c,o);return d}function Z(r,t,e){let n={component:a$1,...m(r),settings:{}};return T(n,t,e)}function ot(r,t,e,n,o){let s=r.properties?.items??[],c="",d=[],l=[];for(let i=t;i<=n;i+=1){let a=s[i];if(!a)continue;let f=i===t?e:0,u=i===n?o:(a.text??"").length,x=Z(a,f,u),p=c.length;c+=x.properties.text??"";for(let m of x.properties.inlineStyleRanges??[])d.push({...m,offset:m.offset+p});for(let m of x.properties.entityRanges??[])l.push({...m,offset:m.offset+p});}return [{component:a$1,...m({text:c,inlineStyleRanges:d,entityRanges:l}),settings:{}}]}function st(r,t,e,n,o){let s=structuredClone(r),c=s.properties?.items??[],d=c[t],l=c[n];if(!d||!l)return s;let{originalLineState:i}=w$1(m(d),e),{newLineState:a}=w$1(m(l),o);return s.properties.items=[...c.slice(0,t),{...d,text:i.properties.text,inlineStyleRanges:i.properties.inlineStyleRanges,entityRanges:i.properties.entityRanges},{...l,text:a.properties.text,inlineStyleRanges:a.properties.inlineStyleRanges,entityRanges:a.properties.entityRanges},...c.slice(n+1)],s}function it(r,t){let e=r.index,n=r.listItemIndex??-1,o=r.offset??0,s=t.listItemIndex??-1,c=t.endListItemIndex??s;if(e!==t.startIndex||s<0)return {index:e,offset:o,listItemIndex:n};if(s===c)return n!==s||o<=t.startOffset?{index:e,offset:o,listItemIndex:n}:o>=t.endOffset?{index:e,offset:o-(t.endOffset-t.startOffset),listItemIndex:n}:{index:e,offset:t.startOffset,listItemIndex:n};let d=Math.max(0,c-s-1);return n<s||n===s&&o<=t.startOffset?{index:e,offset:o,listItemIndex:n}:n===c&&o>=t.endOffset?{index:e,offset:o-t.endOffset,listItemIndex:s+1}:n>c?{index:e,offset:o,listItemIndex:n-d}:{index:e,offset:t.startOffset,listItemIndex:s}}function D(r,t){let{startIndex:e,endIndex:n,startOffset:o,endOffset:s,listItemIndex:c=-1,endListItemIndex:d}=t;if(e<0||n<0||e>n)return [];if(e===n){let i=r[e];if(q$1(i)&&c>=0){let a=d??c,f=i.properties.items[c];return f?a===c?[Z(f,o,s)]:ot(i,c,o,a,s):[structuredClone(i)]}return p(i)?[T(i,o,s)]:[structuredClone(i)]}let l=[];for(let i=e;i<=n;i+=1){let a=r[i];i===e&&p(a)?l.push(T(a,o,y(a))):i===n&&p(a)?l.push(T(a,0,s)):l.push(structuredClone(a));}return l}function lt(r,t,e,n){let o=structuredClone(r),s=o.properties?.items?.[t];if(!s)return o;let c=m(s),{originalLineState:d}=w$1(c,e),{newLineState:l}=w$1(c,n),{state:i}=u(d,l);return o.properties.items[t]={...s,text:i.properties.text,inlineStyleRanges:i.properties.inlineStyleRanges,entityRanges:i.properties.entityRanges},o}function A(r,t){let{startIndex:e,endIndex:n,startOffset:o,endOffset:s,listItemIndex:c=-1,endListItemIndex:d}=t,l=[...r];if(e===n){let u$1=l[e];if(q$1(u$1)&&c>=0){let p=d??c;return l[e]=p===c?lt(u$1,c,o,s):st(u$1,c,o,p,s),{content:l,resultIndex:e,cursor:o,listItemIndex:c}}if(p(u$1)){let{originalLineState:p}=w$1(u$1,o),{newLineState:m}=w$1(u$1,s),{state:E,cursor:rt}=u(p,m);return l[e]=E,{content:l,resultIndex:e,cursor:rt}}l.splice(e,1);let x=Math.min(e,Math.max(0,l.length-1));return {content:l,resultIndex:x,cursor:0}}if(p(l[e])&&p(l[n]))return v$1(l,{startIndex:e,endIndex:n,startOffset:o,endOffset:s});let i=[];p(l[e])&&i.push(w$1(l[e],o).originalLineState),p(l[n])&&i.push(w$1(l[n],s).newLineState);let a=i,f=0;if(i.length===2){let u$1=u(i[0],i[1]);a=[u$1.state],f=u$1.cursor;}else i.length===1&&(f=y(i[0]));return l.splice(e,n-e+1,...a),{content:l,resultIndex:a.length?e:Math.max(0,e-1),cursor:f}}function $(r,{source:t,drop:e,blocks:n}){if(!n?.length)return {content:[...r],resultIndex:Math.max(0,e.index),cursor:e.offset??0,listItemIndex:e.listItemIndex??-1};let o=A(r,t),s=it(e,t);return M(o.content,{index:s.index,offset:s.offset,listItemIndex:s.listItemIndex,blocks:n})}function tt(r,t,e){let n=[...r];n.splice(t+1,0,...e);let o=e[e.length-1];return {content:n,resultIndex:t+e.length,cursor:y(o),listItemIndex:-1}}function ct(r,{listIndex:t,itemIndex:e,offset:n,blocks:o}){let s=structuredClone(r[t]),c=s.properties?.items?.[e],d=o.length===1&&p(o[0]);if(!c||!d)return tt(r,t,o);let l=m(c),i=m(o[0]?.properties),{originalLineState:a,newLineState:f}=w$1(l,n),{state:u$1}=u(a,i),{state:x,cursor:p$1}=u(u$1,f);s.properties.items[e]={...c,text:x.properties.text,inlineStyleRanges:x.properties.inlineStyleRanges,entityRanges:x.properties.entityRanges};let m$1=[...r];return m$1[t]=s,{content:m$1,resultIndex:t,cursor:p$1,listItemIndex:e}}function M(r,{index:t,offset:e,blocks:n,listItemIndex:o=-1}){let s=[...r];if(!n?.length)return {content:s,resultIndex:Math.max(0,t),cursor:e??0};if(t<0||t>=s.length){s.push(...n);let p=n[n.length-1];return {content:s,resultIndex:s.length-1,cursor:y(p)}}let c=s[t];if(q$1(c)&&o>=0)return ct(s,{listIndex:t,itemIndex:o,offset:e??0,blocks:n});if(!p(c))return tt(s,t,n);let{originalLineState:d,newLineState:l}=w$1(c,e??0),i=n[0],a=n[n.length-1],f=[];if(r$1(d,i)?f.push(u(d,i).state):(y(d)>0&&f.push(d),f.push(i)),n.length>1)f.push(...n.slice(1,-1)),r$1(a,l)?f.push(u(a,l).state):(f.push(a),y(l)>0&&f.push(l));else {let p=f[f.length-1];if(r$1(p,l)){let{state:m,cursor:E}=u(p,l);return f[f.length-1]=m,s.splice(t,1,...f),{content:s,resultIndex:t+f.length-1,cursor:E}}y(l)>0&&f.push(l);}s.splice(t,1,...f);let u$1=n.length>1&&r$1(a,l),x=t+f.length-1-(u$1||y(l)===0?0:1);return {content:s,resultIndex:Math.max(t,x),cursor:y(a)}}function q(r){if(!r)return null;try{let t=JSON.parse(r);if(t&&t.v===W&&Array.isArray(t.blocks))return t.blocks}catch{return null}return null}function at(r){return new DOMParser().parseFromString(r,"text/html").body?.textContent??""}function v(r,t=a$1){return String(r).split(/\r\n|\n|\r/).map(n=>({component:t,...m({text:n}),settings:{}}))}function ft(r){return q$1(r)?(r.properties.items??[]).map(t=>t.text??"").join(`
2
- `):p(r)?j$1(r.properties?.text):""}function dt(r){return r.map(ft).join(`
3
- `)}function ut(r){return {v:W,blocks:r.map(t=>structuredClone(t))}}function w(r,t){let e=ut(t);r.setData(Q,JSON.stringify(e)),r.setData("text/plain",dt(t));}function k(r,t=a$1){if(!r)return [];let e=q(r.getData(Q));if(e)return e;let n=r.getData("text/plain")??"",o=q(n);if(o)return o;if(n)return v(n,t);let s=r.getData("text/html")??"";return s?v(at(s),t):[]}function et(r){let t=structuredClone(r);return t.componentId=a$2(),Array.isArray(t.properties?.items)&&(t.properties.items=t.properties.items.map(e=>({...e,componentId:a$2()}))),t}function P(r,t){return !!t?._getContentRoot()?.contains(r.target)}function pt(r,t){let e=u$1(r),n=j(e,t);if(!n)return {listItemIndex:-1,endListItemIndex:-1};let o=j(e,{startContainer:t.endContainer??t.startContainer});return {listItemIndex:n.index,endListItemIndex:o?.index??n.index}}function O(r$1){let t=k$1();if(!t)return null;let e$1=f(t.startContainer)??e(t);if(!e$1)return null;let n=r$1._getBlockElementIndex(e$1);if(n<0)return null;let o=r$1.getContent(),s=q$1(o[n])?pt(e$1,t):{listItemIndex:-1,endListItemIndex:-1};if(t.collapsed){let l=q$2();return {collapsed:true,startIndex:n,endIndex:n,startOffset:l?.start??0,endOffset:l?.start??0,listItemIndex:s.listItemIndex,endListItemIndex:s.endListItemIndex}}let c=r(t),d=r$1._getBlockElementIndex(c.endBlock);return {collapsed:false,startIndex:n,endIndex:d,startOffset:c.startOffset,endOffset:c.endOffset,listItemIndex:n===d?s.listItemIndex:-1,endListItemIndex:n===d?s.endListItemIndex:-1}}function mt(r,t$1,e,n$1=-1){n(()=>{let o=r._getBlockElements()[t$1],s=u$1(o),c=n$1>=0?i(s)[n$1]??s:s;c?.isConnected&&t(c,e);});}function nt(r,t){return t.map(e=>{try{return r.normalizeComponentState(et(e))}catch{return null}}).filter(Boolean)}function Y(r,t,e,n,o=-1){let s=t.map(c=>{try{return r.normalizeComponentState(c)}catch{return null}}).filter(Boolean);r.setContent(s),mt(r,e,n,o);}function gt(r){let t=r.mrakomor;if(!t||!P(r,t)||!r.clipboardData)return;let e=O(t);if(!e||e.collapsed)return;let n=D(t.getContent(),e);n.length&&(r.preventDefault(),w(r.clipboardData,n));}function xt(r){let t=r.mrakomor;if(!t||!P(r,t)||!r.clipboardData)return;let e=O(t);if(!e||e.collapsed)return;let n=t.getContent(),o=D(n,e);if(!o.length)return;r.preventDefault(),w(r.clipboardData,o);let s=A(n,e);Y(t,s.content,s.resultIndex,s.cursor,e.listItemIndex);}function It(r){let t=r.mrakomor;if(!t||r.target&&!P(r,t))return;r.preventDefault();let e=nt(t,k(r.clipboardData,a$1));if(!e.length)return;let n=t.getContent(),o=O(t);if(!o)return;let s=n,c=o.startIndex,d=o.startOffset;if(!o.collapsed){let i=A(s,o);s=i.content,c=i.resultIndex,d=i.cursor;}let l=M(s,{index:c,offset:d,blocks:e,listItemIndex:o.listItemIndex});Y(t,l.content,l.resultIndex,l.cursor,l.listItemIndex??o.listItemIndex);}function ht(r){return !!r.target?.closest?.("ul, ol, li")}function Ct(r){let t=r.inputType;t!=="deleteByDrag"&&t!=="insertFromDrop"||!P(r,r.mrakomor)||!ht(r)||r.preventDefault();}function St(r,t){if(typeof document.caretRangeFromPoint=="function")return document.caretRangeFromPoint(r,t);if(typeof document.caretPositionFromPoint=="function"){let e=document.caretPositionFromPoint(r,t);if(!e?.offsetNode)return null;let n=document.createRange();return n.setStart(e.offsetNode,e.offset),n.collapse(true),n}return null}function yt({root:r,mrakomor:t}){return {registerEvents(){a.COPY="mrakomor:copy",a.CUT="mrakomor:cut",a.PASTE="mrakomor:paste";},registerCommands(e){e.command.copy=(n={})=>{e.emitDomEvent(a.COPY,n);},e.command.cut=(n={})=>{e.emitDomEvent(a.CUT,n);},e.command.paste=(n={})=>{e.emitDomEvent(a.PASTE,n);};},registerHandlers(){t.register.help.add({id:"clipboard.copy",group:"editing",description:"Copy the selection",commands:[],shortcuts:["Mod+C"]}),t.register.help.add({id:"clipboard.cut",group:"editing",description:"Cut the selection",commands:[],shortcuts:["Mod+X"]}),t.register.help.add({id:"clipboard.paste",group:"editing",description:"Paste at the caret or selection",commands:[],shortcuts:["Mod+V"]});},registerListeners(){let{signal:e}=t.listenerAbortController,n=r??t.getRoot(),o=null;function s(i){if(!P(i,t)||!i.dataTransfer){o=null;return}let a=O(t);if(!a||a.collapsed||(a.listItemIndex??-1)<0){o=null;return}let f=D(t.getContent(),a);if(!f.length){o=null;return}o={selection:a,blocks:f},w(i.dataTransfer,f),i.dataTransfer.effectAllowed="copyMove";}function c(i){!o||!P(i,t)||(i.preventDefault(),i.dataTransfer&&(i.dataTransfer.dropEffect=i.altKey||i.ctrlKey?"copy":"move"));}function d(i){if(!o||!P(i,t))return;i.preventDefault();let a=St(i.clientX,i.clientY);if(a){a.collapse(true);let E=window.getSelection();E.removeAllRanges(),E.addRange(a);}let f=nt(t,o?.blocks??k(i.dataTransfer,a$1));if(!f.length){o=null;return}let u=O(t);if(!u){o=null;return}let x=!!o?.selection&&!i.altKey&&!i.ctrlKey,p=t.getContent(),m=x?$(p,{source:o.selection,drop:{index:u.startIndex,offset:u.startOffset,listItemIndex:u.listItemIndex},blocks:f}):M(p,{index:u.startIndex,offset:u.startOffset,listItemIndex:u.listItemIndex,blocks:f});Y(t,m.content,m.resultIndex,m.cursor,m.listItemIndex??u.listItemIndex),o=null;}function l(){o=null;}n.addEventListener("copy",i=>t.emitDomEvent(a.COPY,i),{signal:e}),n.addEventListener("cut",i=>t.emitDomEvent(a.CUT,i),{signal:e}),n.addEventListener("paste",i=>t.emitDomEvent(a.PASTE,i),{signal:e}),n.addEventListener("dragstart",s,{signal:e}),n.addEventListener("dragover",c,{signal:e}),n.addEventListener("drop",d,{signal:e}),n.addEventListener("dragend",l,{signal:e}),t.emitter.on(a.COPY,gt),t.emitter.on(a.CUT,xt),t.emitter.on(a.PASTE,It),t.emitter.on(a.BEFORE_INPUT,Ct);}}}export{yt as clipboardPlugin};
1
+ import {a as a$1,r,q as q$2,x,s,v as v$1,w as w$1,m,j as j$1}from'./chunk-D6K2L5O3.mjs';import {a}from'./chunk-B6JJAATK.mjs';import {k as k$1,f,e,q as q$1,r as r$1,u,j,a as a$2,i,t}from'./chunk-4WTPDNPA.mjs';import {o}from'./chunk-7CJLTNHZ.mjs';var Q="application/x-mrakomor-blocks+json",W=1;function y(r){return q$2(r)?j$1(r.properties?.text).length:0}function T(r,t,e){let n=r?.properties?.text??"",o=Math.max(0,Math.min(t,n.length)),s=Math.max(o,Math.min(e,n.length)),{originalLineState:c}=x(r,s),{newLineState:d}=x(c,o);return d}function Z(r,t,e){let n={component:a$1,...m(r),settings:{}};return T(n,t,e)}function ot(r,t,e,n,o){let s=r.properties?.items??[],c="",d=[],l=[];for(let i=t;i<=n;i+=1){let a=s[i];if(!a)continue;let f=i===t?e:0,u=i===n?o:(a.text??"").length,x=Z(a,f,u),p=c.length;c+=x.properties.text??"";for(let m of x.properties.inlineStyleRanges??[])d.push({...m,offset:m.offset+p});for(let m of x.properties.entityRanges??[])l.push({...m,offset:m.offset+p});}return [{component:a$1,...m({text:c,inlineStyleRanges:d,entityRanges:l}),settings:{}}]}function st(r,t,e,n,o){let s=structuredClone(r),c=s.properties?.items??[],d=c[t],l=c[n];if(!d||!l)return s;let{originalLineState:i}=x(m(d),e),{newLineState:a}=x(m(l),o);return s.properties.items=[...c.slice(0,t),{...d,text:i.properties.text,inlineStyleRanges:i.properties.inlineStyleRanges,entityRanges:i.properties.entityRanges},{...l,text:a.properties.text,inlineStyleRanges:a.properties.inlineStyleRanges,entityRanges:a.properties.entityRanges},...c.slice(n+1)],s}function it(r,t){let e=r.index,n=r.listItemIndex??-1,o=r.offset??0,s=t.listItemIndex??-1,c=t.endListItemIndex??s;if(e!==t.startIndex||s<0)return {index:e,offset:o,listItemIndex:n};if(s===c)return n!==s||o<=t.startOffset?{index:e,offset:o,listItemIndex:n}:o>=t.endOffset?{index:e,offset:o-(t.endOffset-t.startOffset),listItemIndex:n}:{index:e,offset:t.startOffset,listItemIndex:n};let d=Math.max(0,c-s-1);return n<s||n===s&&o<=t.startOffset?{index:e,offset:o,listItemIndex:n}:n===c&&o>=t.endOffset?{index:e,offset:o-t.endOffset,listItemIndex:s+1}:n>c?{index:e,offset:o,listItemIndex:n-d}:{index:e,offset:t.startOffset,listItemIndex:s}}function D(r$1,t){let{startIndex:e,endIndex:n,startOffset:o,endOffset:s,listItemIndex:c=-1,endListItemIndex:d}=t;if(e<0||n<0||e>n)return [];if(e===n){let i=r$1[e];if(r(i)&&c>=0){let a=d??c,f=i.properties.items[c];return f?a===c?[Z(f,o,s)]:ot(i,c,o,a,s):[structuredClone(i)]}return q$2(i)?[T(i,o,s)]:[structuredClone(i)]}let l=[];for(let i=e;i<=n;i+=1){let a=r$1[i];i===e&&q$2(a)?l.push(T(a,o,y(a))):i===n&&q$2(a)?l.push(T(a,0,s)):l.push(structuredClone(a));}return l}function lt(r,t,e,n){let o=structuredClone(r),s=o.properties?.items?.[t];if(!s)return o;let c=m(s),{originalLineState:d}=x(c,e),{newLineState:l}=x(c,n),{state:i}=v$1(d,l);return o.properties.items[t]={...s,text:i.properties.text,inlineStyleRanges:i.properties.inlineStyleRanges,entityRanges:i.properties.entityRanges},o}function A(r$1,t){let{startIndex:e,endIndex:n,startOffset:o,endOffset:s,listItemIndex:c=-1,endListItemIndex:d}=t,l=[...r$1];if(e===n){let u=l[e];if(r(u)&&c>=0){let p=d??c;return l[e]=p===c?lt(u,c,o,s):st(u,c,o,p,s),{content:l,resultIndex:e,cursor:o,listItemIndex:c}}if(q$2(u)){let{originalLineState:p}=x(u,o),{newLineState:m}=x(u,s),{state:E,cursor:rt}=v$1(p,m);return l[e]=E,{content:l,resultIndex:e,cursor:rt}}l.splice(e,1);let x$1=Math.min(e,Math.max(0,l.length-1));return {content:l,resultIndex:x$1,cursor:0}}if(q$2(l[e])&&q$2(l[n]))return w$1(l,{startIndex:e,endIndex:n,startOffset:o,endOffset:s});let i=[];q$2(l[e])&&i.push(x(l[e],o).originalLineState),q$2(l[n])&&i.push(x(l[n],s).newLineState);let a=i,f=0;if(i.length===2){let u=v$1(i[0],i[1]);a=[u.state],f=u.cursor;}else i.length===1&&(f=y(i[0]));return l.splice(e,n-e+1,...a),{content:l,resultIndex:a.length?e:Math.max(0,e-1),cursor:f}}function $(r,{source:t,drop:e,blocks:n}){if(!n?.length)return {content:[...r],resultIndex:Math.max(0,e.index),cursor:e.offset??0,listItemIndex:e.listItemIndex??-1};let o=A(r,t),s=it(e,t);return M(o.content,{index:s.index,offset:s.offset,listItemIndex:s.listItemIndex,blocks:n})}function tt(r,t,e){let n=[...r];n.splice(t+1,0,...e);let o=e[e.length-1];return {content:n,resultIndex:t+e.length,cursor:y(o),listItemIndex:-1}}function ct(r,{listIndex:t,itemIndex:e,offset:n,blocks:o}){let s=structuredClone(r[t]),c=s.properties?.items?.[e],d=o.length===1&&q$2(o[0]);if(!c||!d)return tt(r,t,o);let l=m(c),i=m(o[0]?.properties),{originalLineState:a,newLineState:f}=x(l,n),{state:u}=v$1(a,i),{state:x$1,cursor:p}=v$1(u,f);s.properties.items[e]={...c,text:x$1.properties.text,inlineStyleRanges:x$1.properties.inlineStyleRanges,entityRanges:x$1.properties.entityRanges};let m$1=[...r];return m$1[t]=s,{content:m$1,resultIndex:t,cursor:p,listItemIndex:e}}function M(r$1,{index:t,offset:e,blocks:n,listItemIndex:o=-1}){let s$1=[...r$1];if(!n?.length)return {content:s$1,resultIndex:Math.max(0,t),cursor:e??0};if(t<0||t>=s$1.length){s$1.push(...n);let p=n[n.length-1];return {content:s$1,resultIndex:s$1.length-1,cursor:y(p)}}let c=s$1[t];if(r(c)&&o>=0)return ct(s$1,{listIndex:t,itemIndex:o,offset:e??0,blocks:n});if(!q$2(c))return tt(s$1,t,n);let{originalLineState:d,newLineState:l}=x(c,e??0),i=n[0],a=n[n.length-1],f=[];if(s(d,i)?f.push(v$1(d,i).state):(y(d)>0&&f.push(d),f.push(i)),n.length>1)f.push(...n.slice(1,-1)),s(a,l)?f.push(v$1(a,l).state):(f.push(a),y(l)>0&&f.push(l));else {let p=f[f.length-1];if(s(p,l)){let{state:m,cursor:E}=v$1(p,l);return f[f.length-1]=m,s$1.splice(t,1,...f),{content:s$1,resultIndex:t+f.length-1,cursor:E}}y(l)>0&&f.push(l);}s$1.splice(t,1,...f);let u=n.length>1&&s(a,l),x$1=t+f.length-1-(u||y(l)===0?0:1);return {content:s$1,resultIndex:Math.max(t,x$1),cursor:y(a)}}function q(r){if(!r)return null;try{let t=JSON.parse(r);if(t&&t.v===W&&Array.isArray(t.blocks))return t.blocks}catch{return null}return null}function at(r){return new DOMParser().parseFromString(r,"text/html").body?.textContent??""}function v(r,t=a$1){return String(r).split(/\r\n|\n|\r/).map(n=>({component:t,...m({text:n}),settings:{}}))}function ft(r$1){return r(r$1)?(r$1.properties.items??[]).map(t=>t.text??"").join(`
2
+ `):q$2(r$1)?j$1(r$1.properties?.text):""}function dt(r){return r.map(ft).join(`
3
+ `)}function ut(r){return {v:W,blocks:r.map(t=>structuredClone(t))}}function w(r,t){let e=ut(t);r.setData(Q,JSON.stringify(e)),r.setData("text/plain",dt(t));}function k(r,t=a$1){if(!r)return [];let e=q(r.getData(Q));if(e)return e;let n=r.getData("text/plain")??"",o=q(n);if(o)return o;if(n)return v(n,t);let s=r.getData("text/html")??"";return s?v(at(s),t):[]}function et(r){let t=structuredClone(r);return t.componentId=a$2(),Array.isArray(t.properties?.items)&&(t.properties.items=t.properties.items.map(e=>({...e,componentId:a$2()}))),t}function P(r,t){return !!t?._getContentRoot()?.contains(r.target)}function pt(r,t){let e=u(r),n=j(e,t);if(!n)return {listItemIndex:-1,endListItemIndex:-1};let o=j(e,{startContainer:t.endContainer??t.startContainer});return {listItemIndex:n.index,endListItemIndex:o?.index??n.index}}function O(r$2){let t=k$1();if(!t)return null;let e$1=f(t.startContainer)??e(t);if(!e$1)return null;let n=r$2._getBlockElementIndex(e$1);if(n<0)return null;let o=r$2.getContent(),s=r(o[n])?pt(e$1,t):{listItemIndex:-1,endListItemIndex:-1};if(t.collapsed){let l=q$1();return {collapsed:true,startIndex:n,endIndex:n,startOffset:l?.start??0,endOffset:l?.start??0,listItemIndex:s.listItemIndex,endListItemIndex:s.endListItemIndex}}let c=r$1(t),d=r$2._getBlockElementIndex(c.endBlock);return {collapsed:false,startIndex:n,endIndex:d,startOffset:c.startOffset,endOffset:c.endOffset,listItemIndex:n===d?s.listItemIndex:-1,endListItemIndex:n===d?s.endListItemIndex:-1}}function mt(r,t$1,e,n=-1){o(()=>{let o=r._getBlockElements()[t$1],s=u(o),c=n>=0?i(s)[n]??s:s;c?.isConnected&&t(c,e);});}function nt(r,t){return t.map(e=>{try{return r.normalizeComponentState(et(e))}catch{return null}}).filter(Boolean)}function Y(r,t,e,n,o=-1){let s=t.map(c=>{try{return r.normalizeComponentState(c)}catch{return null}}).filter(Boolean);r.setContent(s),mt(r,e,n,o);}function gt(r){let t=r.mrakomor;if(!t||!P(r,t)||!r.clipboardData)return;let e=O(t);if(!e||e.collapsed)return;let n=D(t.getContent(),e);n.length&&(r.preventDefault(),w(r.clipboardData,n));}function xt(r){let t=r.mrakomor;if(!t||!P(r,t)||!r.clipboardData)return;let e=O(t);if(!e||e.collapsed)return;let n=t.getContent(),o=D(n,e);if(!o.length)return;r.preventDefault(),w(r.clipboardData,o);let s=A(n,e);Y(t,s.content,s.resultIndex,s.cursor,e.listItemIndex);}function It(r){let t=r.mrakomor;if(!t||r.target&&!P(r,t))return;r.preventDefault();let e=nt(t,k(r.clipboardData,a$1));if(!e.length)return;let n=t.getContent(),o=O(t);if(!o)return;let s=n,c=o.startIndex,d=o.startOffset;if(!o.collapsed){let i=A(s,o);s=i.content,c=i.resultIndex,d=i.cursor;}let l=M(s,{index:c,offset:d,blocks:e,listItemIndex:o.listItemIndex});Y(t,l.content,l.resultIndex,l.cursor,l.listItemIndex??o.listItemIndex);}function ht(r){return !!r.target?.closest?.("ul, ol, li")}function Ct(r){let t=r.inputType;t!=="deleteByDrag"&&t!=="insertFromDrop"||!P(r,r.mrakomor)||!ht(r)||r.preventDefault();}function St(r,t){if(typeof document.caretRangeFromPoint=="function")return document.caretRangeFromPoint(r,t);if(typeof document.caretPositionFromPoint=="function"){let e=document.caretPositionFromPoint(r,t);if(!e?.offsetNode)return null;let n=document.createRange();return n.setStart(e.offsetNode,e.offset),n.collapse(true),n}return null}function yt({root:r,mrakomor:t}){return {registerEvents(){a.COPY="mrakomor:copy",a.CUT="mrakomor:cut",a.PASTE="mrakomor:paste";},registerCommands(e){e.command.copy=(n={})=>{e.emitDomEvent(a.COPY,n);},e.command.cut=(n={})=>{e.emitDomEvent(a.CUT,n);},e.command.paste=(n={})=>{e.emitDomEvent(a.PASTE,n);};},registerHandlers(){t.register.help.add({id:"clipboard.copy",group:"editing",description:"Copy the selection",commands:[],shortcuts:["Mod+C"]}),t.register.help.add({id:"clipboard.cut",group:"editing",description:"Cut the selection",commands:[],shortcuts:["Mod+X"]}),t.register.help.add({id:"clipboard.paste",group:"editing",description:"Paste at the caret or selection",commands:[],shortcuts:["Mod+V"]});},registerListeners(){let{signal:e}=t.listenerAbortController,n=r??t.getRoot(),o=null;function s(i){if(!P(i,t)||!i.dataTransfer){o=null;return}let a=O(t);if(!a||a.collapsed||(a.listItemIndex??-1)<0){o=null;return}let f=D(t.getContent(),a);if(!f.length){o=null;return}o={selection:a,blocks:f},w(i.dataTransfer,f),i.dataTransfer.effectAllowed="copyMove";}function c(i){!o||!P(i,t)||(i.preventDefault(),i.dataTransfer&&(i.dataTransfer.dropEffect=i.altKey||i.ctrlKey?"copy":"move"));}function d(i){if(!o||!P(i,t))return;i.preventDefault();let a=St(i.clientX,i.clientY);if(a){a.collapse(true);let E=window.getSelection();E.removeAllRanges(),E.addRange(a);}let f=nt(t,o?.blocks??k(i.dataTransfer,a$1));if(!f.length){o=null;return}let u=O(t);if(!u){o=null;return}let x=!!o?.selection&&!i.altKey&&!i.ctrlKey,p=t.getContent(),m=x?$(p,{source:o.selection,drop:{index:u.startIndex,offset:u.startOffset,listItemIndex:u.listItemIndex},blocks:f}):M(p,{index:u.startIndex,offset:u.startOffset,listItemIndex:u.listItemIndex,blocks:f});Y(t,m.content,m.resultIndex,m.cursor,m.listItemIndex??u.listItemIndex),o=null;}function l(){o=null;}n.addEventListener("copy",i=>t.emitDomEvent(a.COPY,i),{signal:e}),n.addEventListener("cut",i=>t.emitDomEvent(a.CUT,i),{signal:e}),n.addEventListener("paste",i=>t.emitDomEvent(a.PASTE,i),{signal:e}),n.addEventListener("dragstart",s,{signal:e}),n.addEventListener("dragover",c,{signal:e}),n.addEventListener("drop",d,{signal:e}),n.addEventListener("dragend",l,{signal:e}),t.emitter.on(a.COPY,gt),t.emitter.on(a.CUT,xt),t.emitter.on(a.PASTE,It),t.emitter.on(a.BEFORE_INPUT,Ct);}}}export{yt as clipboardPlugin};
package/dist/footer.cjs CHANGED
@@ -1,5 +1,5 @@
1
- 'use strict';(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/footer/footer.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(o){return o.getAttribute("data-mrakomor-css-path")===e});if(!t){var n=document.createElement("style");n.setAttribute("data-mrakomor-css",""),n.setAttribute("data-mrakomor-css-path",e),n.textContent=`.mrakomor-footer-plugin-container{display:contents}.mrakomor-footer-container{position:relative;flex:0 0 auto;display:flex;align-items:stretch;justify-content:space-between;gap:0;height:22px;min-height:22px;padding:0;border-top:1px solid #e4e7ec;background:#f3f4f6;color:#5b6472;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;line-height:22px;user-select:none;pointer-events:none}.mrakomor-footer-start,.mrakomor-footer-end{display:flex;align-items:stretch;min-width:0}.mrakomor-footer-end{margin-left:auto;flex-shrink:0}.mrakomor-footer-item{display:inline-flex;align-items:center;max-width:100%;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5b6472}.mrakomor-footer-item+.mrakomor-footer-item{border-left:1px solid #e0e4ea}.mrakomor-footer-action{display:inline-flex;align-items:center;gap:4px;height:100%;margin:0;padding:0 10px;border:none;border-left:1px solid #e0e4ea;background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:pointer;pointer-events:all}.mrakomor-footer-action:hover{background:#e9edf2;color:#1f2937}.mrakomor-footer-action:focus-visible{outline:1px solid #94a3b8;outline-offset:-1px}.mrakomor-footer-action__icon{font-size:12px;font-weight:700;line-height:1}
2
- `,document.head.appendChild(n);}}})();var me=class{next(...e){}error(...e){}complete(...e){}},ee=class{#e=new Set;pipe(...e){return e.reduce((t,n)=>n(t),this)}next(...e){Array.from(this.#e).forEach(t=>{typeof t=="function"?t(...e):t.next(...e);});}error(...e){Array.from(this.#e).forEach(t=>{t?.error?.(...e),this.unsubscribe(t);});}complete(...e){Array.from(this.#e).forEach(t=>{t?.complete?.(...e),this.unsubscribe(t);});}subscribe(e){return this.#e.add(e),{unsubscribe:()=>{this.unsubscribe(e);}}}unsubscribe(e){this.#e.delete(e);}};var z=Symbol("@esmj/signals:type"),P=Symbol("@esmj/signals:name");var m=null,te=false,he=[];function C(e){let t=m;m=null;let n=e();return m=t,n}function Xe(){te=false;let e=xe();for(let n of e)n.get();let t=he;he=[];for(let n of t)n();}function Ke(){te||(te=true,queueMicrotask(Xe));}var ge=Symbol("@esmj/signals:internal observable"),x=Symbol("@esmj/signals:original function"),Ge=class extends ee{#e=new Set;#o=null;constructor(e){super(),this.#o=e,this.pipe(t=>{let n=t.subscribe.bind(t),o=t.unsubscribe.bind(t);return t.subscribe=r=>{n(r),this.#e.add(r);},t.unsubscribe=r=>{o(r),this.#e.delete(r);},t});}watch(e){if(typeof e.next!="function"&&(e.next=()=>C(()=>{this.#e.add(e),this.#o();}),e.next[x]=void 0),e instanceof we&&e.next[x]===void 0){let t=e.next.bind(e);e.next=()=>C(()=>{this.#e.add(e),t(),this.#o();}),e.next[x]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[x]){let n=t.get,o=n.bind(t);t.get=()=>C(()=>(this.#e.delete(t),o())),t.get[x]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[x]?e.next[x]:e.next,e.get=e.get[x]?e.get[x]:e.get,this.#e.delete(e),this.unsubscribe(e)}},U=null;function ye(e){U=new Ge(e);}ye(()=>{Ke();});function xe(){return U.getPending()}function be(e){return U.watch(e)}function Se(e){return U.unwatch(e)}var b=Symbol("@esmj/signals:no error"),we=class ke extends me{#e=true;#o=false;#n=null;#r=this.#p();#c=null;#l=null;#i=0;#s=new Map;#t=b;constructor(t,n){super(),this.#c=t,this.#l=n,this.debug=n?.debug,this[z]="computed",this[P]=n?.debug??null,this.get=this.get.bind(this);}#u(){for(let{unsubscribe:t}of this.#r.dependencies.values())t();this.#r.dependencies.clear();}#p(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[P],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#s.keys()]}}#f(){for(let[t,n]of this.#s)if(t instanceof ke&&C(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#n[ge].next();}get(){if(this.#o)throw new Error("Cycle detected in computed signal");if(this.#n||(this.#n=N(this.#a(),this.#l)),(this.#e||this.#t!==b)&&(this.#s.size===0||this.#f()?this.#a():this.#e=false),m&&m.sourceRevisions.set(this,this.#i),this.#t!==b)throw this.#t;return this.#n.get()}peek(){if(this.#n||(this.#n=N(this.#a(),this.#l)),(this.#e||this.#t!==b)&&(this.#s.size===0||this.#f()?this.#a():this.#e=false),this.#t!==b)throw this.#t;return this.#n.peek()}#a(){this.#o=true,this.#e=false,this.#t=b,this.#u(),this.#r.sourceRevisions.clear();let t=m;m=this.#r;let n;try{n=this.#c();}catch(o){this.#t=o;}return m=t,this.#s=this.#r.sourceRevisions,this.#r.sourceRevisions=new Map,this.#o=false,n instanceof Promise&&(n=n.then(o=>{this.#t=b,this.#n.set(o);}).catch(o=>{this.#t=o;})),this.#t===b&&this.#n&&this.#n.set(n),this.#i++,n}destroy(){this.#u(),this.#s.clear(),this.#e=true,this.#t=b;}};function A(e,t){return new we(e,t)}function g(e,t){let n,{debug:o,...r}={},s=A(()=>{n?.(),n=e();},{equals:()=>false,...r});s.get(),be(s);let i=()=>{n?.(),s.destroy(),Se(s);};return i[Symbol.dispose]=i,i[z]="effect",i[P]=o??null,i.__RX_COMPUTED__=s,i}function N(e,t={}){let n=t?.equals??Object.is,o=0,r=new ee;function s(){return m&&(m.dependencies.set(r,r.subscribe(m.observer)),m.sourceRevisions.set(p,o)),e}function i(){return e}function a(c){if(!n(e,c)){e=c,o++,r.next();}return e}function u(){return o}let p={get:s,set:a,peek:i,getRevision:u,[ge]:r,[z]:"signal",[P]:t?.debug??null};return p}function H(){return Date.now().toString(32).substring(5)+Math.random().toString(32).substring(2)}var Te=Symbol("node-component"),V=Symbol("node-internal"),Je=Symbol("keep-literal"),G=Symbol("raw-props");var Le=null;function I(){return Le}function W(e){Le=e;}function Ie(e){return e?.[Te]||null}function Re(e,t){e[Te]=t;}function X(e,t={disposers:[],id:H()}){return e?.[V]?e[V]:(e&&(e[V]=t),t)}function et(e){return e[V]}function k(e,t){let n=et(e);n||(n=X(e)),n.disposers.push(t);}function oe(e,t,n){e.has(t)||e.set(t,[]),e.get(t).push(n);}function R(e,t){let n=I();W(e);try{return t()}finally{W(n);}}var re=new Map,K=new Map,Ee=new Map;function $e(e,t){let n=typeof t=="function"?t:r=>!!t?.includes(r),o=Object.create(null);for(let r of Object.keys(e)){let s=e[r];r==="children"||n(r)?o[r]=s:s?.[Je]?o[r]=s():s!=null&&typeof s.get=="function"?o[r]=s:typeof s=="function"?o[r]=A(s):o[r]=N(s);}return o}function _(e){let t=e.componentId,n=re.get(t);if(n){re.delete(t);for(let o of n){let r=o();typeof r=="function"&&oe(K,t,r);}}}function tt(e){let t=K.get(e);if(t){K.delete(e);for(let n of t)n();}}function nt(e){let t=Ee.get(e);if(t){Ee.delete(e);for(let n of t)n();}}function J(e){if(!e)return;let t=X(e);if(t?.disposers?.length){for(let o of t.disposers)try{o();}catch(r){console.error("[esmj-dom] cleanupTree: disposer threw, cleanup continues",r);}t.disposers=[];}let n=Ie(e);if(n&&(tt(n.componentId),nt(n.componentId)),e.childNodes){let o=e.firstChild;for(;o;){let r=o.nextSibling;J(o),o=r;}}}function M(e){return e!=null&&typeof e=="object"&&typeof e.$constructor=="function"}function ve(e){return typeof e=="function"&&typeof e.prototype?.render=="function"}function ot(e,t,n){let o=H(),r={componentId:o,$children:n,element:null,classInstance:null,$constructor(){let s=ve(e)?void 0:e[G],i={...$e(t??{},s),children:n},a=I(),u={disposers:[],id:o,contexts:new Map(a?.contexts)};W(u);let p;if(ve(e)){r.ClassConstructor=e;let f=new e(i);r.classInstance=f,typeof f.onMount=="function"&&oe(re,o,()=>{f.onMount?.();}),typeof f.onUnmount=="function"&&oe(K,o,()=>{f.onUnmount?.();}),p=f.render();}else p=e(i);W(a);let c=rt(p);if(r.element=c,c instanceof DocumentFragment&&c.childNodes.length)for(let f of c.childNodes)X(f,u),Re(f,r);else X(c,u),c instanceof Node&&Re(c,r);return c}};return r}function ce(e,t){let n=t.$constructor();n instanceof Node&&e.appendChild(n),queueMicrotask(()=>{_(t);});}function rt(e){return e instanceof Node?e:M(e)?e.$constructor():typeof e=="string"||typeof e=="number"?document.createTextNode(String(e)):document.createTextNode("")}var Ce={className:"class",htmlFor:"for"},Ne=new Set(["value","defaultValue","checked","selected","indeterminate"]),st=new Set(["srcdoc"]),it=new Set(["href","src","action","formaction","xlink:href"]),at=new Set(["securitypolicyviolation"]),lt=new Set(["contenteditable","draggable","spellcheck"]);function q(e){return e!=null&&typeof e=="object"&&typeof e.get=="function"&&!(e instanceof Node)}var Be=Symbol("Fragment");function S(e,t,n){if(e===Be){let r=document.createDocumentFragment();return se(r,Me(n)),r}if(typeof e=="function")return ot(e,t||{},n);typeof e!="string"&&(n=t,t=e,e="div"),t=t||{};let o=document.createElement(e);return t.id&&o.setAttribute("id",t.id),Q(o,t),se(o,Me(n)),o}function ne(e,t){t instanceof DocumentFragment?e.replaceChildren(t):e.innerHTML=t??"";}function ct(e){return typeof e!="string"?false:e.replace(/[\p{White_Space}\p{Cc}]+/gu,"").toLowerCase().startsWith("javascript:")}function ut(e,t){if(typeof e!="string")return false;let n=e.toLowerCase();return st.has(n)?true:it.has(n)&&t!==null&&t!==void 0&&ct(String(t))}function Fe(e){return typeof e!="string"?e:Ce[e]?Ce[e]:e}function ft(e,t){let n=Fe(e),o=typeof n=="string"?n.toLowerCase():String(n).toLowerCase();return lt.has(o)&&(t===true||t===false||t==="true"||t==="false")?String(t):t==null||t===false?null:t}function Ae(e,t,n){let o=ft(t,n);if(o===null){e.removeAttribute(t);return}if(ut(t,o)){e.removeAttribute(t),console.warn(`[esmj-dom] Blocked unsafe attribute "${String(t)}" on <${e.tagName.toLowerCase()}>`);return}e.setAttribute(t,o);}function Q(e,t){let n=I();for(let[o,r]of Reflect.ownKeys(t).map(s=>[s,t[s]]))if(o!=="id"){if(o=Fe(o),o==="$ref"){typeof r=="function"?r(e):typeof r=="object"&&r!==null&&(r.current=e);continue}if(o==="$dangerouslySetInnerHTML"){if(q(r)){let s=g(()=>{R(n,()=>{ne(e,r.get());});});k(e,s);}else if(typeof r=="function"){let s=g(()=>{R(n,()=>{ne(e,r());});});k(e,s);}else ne(e,r);continue}if(o==="style"){if(q(r)){let s=g(()=>{R(n,()=>{Object.assign(e.style,r.get());});});k(e,s);}else typeof r=="object"&&r!==null?Object.assign(e.style,r):e.setAttribute("style",r);continue}if(typeof o=="string"&&o.startsWith("on")&&typeof r=="function"){let s=o.slice(2).toLowerCase();if(at.has(s)){console.warn(`[esmj-dom] Blocked unsafe event binding "${o}" on <${e.tagName.toLowerCase()}>`);continue}e.addEventListener(s,r);continue}if(q(r)||typeof r=="function"){let s=o,i=g(()=>{R(n,()=>{let a=typeof r=="function"?r():r.get();Ne.has(s)?e[s]=a??"":Ae(e,s,a);});});k(e,i);continue}Ne.has(o)||typeof o=="symbol"?e[o]=r??"":Ae(e,o,r);}}function Me(e){return e==null?[]:Array.isArray(e)?e.flat(Number.POSITIVE_INFINITY):[e]}function se(e,t){for(let n of t)Pe(e,n);}function Pe(e,t){if(!(t==null||t===false||t===true)){if(t instanceof Node){e.appendChild(t);return}if(typeof t=="string"||typeof t=="number"){e.appendChild(document.createTextNode(String(t)));return}if(typeof t=="function"){je(e,t);return}if(M(t)){ce(e,t);return}if(q(t)){je(e,()=>t.get());return}if(Array.isArray(t)){se(e,t);return}e.appendChild(document.createTextNode(String(t)));}}function $(e){let t=null,n=e;return M(e)&&(t=e,n=e.$constructor()),n instanceof DocumentFragment?{nodes:Array.from(n.childNodes),instance:t}:n instanceof Node?{nodes:[n],instance:t}:n==null||n===false||n===true?{nodes:[],instance:t}:{nodes:[document.createTextNode(String(n))],instance:t}}function Z(e,t=true){for(let n of e)t&&J(n),n.remove();}function je(e,t){let n=I(),o=document.createComment("");e.appendChild(o);let r=[],s=g(()=>{R(n,()=>{let i=t(),{nodes:a,instance:u}=$(i);Z(r),a.length&&o.after(...a),u&&queueMicrotask(()=>_(u)),r=a;});});k(e,s);}function ue(e,t){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("mount: container not found");e instanceof DocumentFragment||(J(e),e.innerHTML=""),M(t)?ce(e,t):t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t)));}function mt(e){return e===`
1
+ 'use strict';(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/footer/footer.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(o){return o.getAttribute("data-mrakomor-css-path")===e});if(!t){var n=document.createElement("style");n.setAttribute("data-mrakomor-css",""),n.setAttribute("data-mrakomor-css-path",e),n.textContent=`.mrakomor-footer-plugin-container{display:contents}.mrakomor-footer-container{position:relative;flex:0 0 auto;display:flex;align-items:stretch;justify-content:space-between;gap:0;height:22px;min-height:22px;padding:0;border-top:1px solid #e4e7ec;background:transparent;color:#b3bac6;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;line-height:22px;user-select:none;pointer-events:none}.mrakomor-footer-start,.mrakomor-footer-end{display:flex;align-items:stretch;min-width:0}.mrakomor-footer-end{margin-left:auto;flex-shrink:0}.mrakomor-footer-item{display:inline-flex;align-items:center;max-width:100%;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b3bac6}.mrakomor-footer-item+.mrakomor-footer-item{border-left:1px solid #edf0f3}.mrakomor-footer-action{display:inline-flex;align-items:center;gap:4px;height:100%;margin:0;padding:0 10px;border:none;border-left:1px solid #edf0f3;background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:pointer;pointer-events:all;transition:background .1s,color .1s}.mrakomor-footer-action:hover{background:#0000000f;color:#374151}.mrakomor-footer-action:focus-visible{outline:1px solid #94a3b8;outline-offset:-1px}.mrakomor-footer-action__icon{font-size:12px;font-weight:500;line-height:1}
2
+ `,document.head.appendChild(n);}}})();var me=class{next(...e){}error(...e){}complete(...e){}},ee=class{#e=new Set;pipe(...e){return e.reduce((t,n)=>n(t),this)}next(...e){Array.from(this.#e).forEach(t=>{typeof t=="function"?t(...e):t.next(...e);});}error(...e){Array.from(this.#e).forEach(t=>{t?.error?.(...e),this.unsubscribe(t);});}complete(...e){Array.from(this.#e).forEach(t=>{t?.complete?.(...e),this.unsubscribe(t);});}subscribe(e){return this.#e.add(e),{unsubscribe:()=>{this.unsubscribe(e);}}}unsubscribe(e){this.#e.delete(e);}};var z=Symbol("@esmj/signals:type"),F=Symbol("@esmj/signals:name");var m=null,te=false,he=[];function v(e){let t=m;m=null;let n=e();return m=t,n}function Xe(){te=false;let e=xe();for(let n of e)n.get();let t=he;he=[];for(let n of t)n();}function Ke(){te||(te=true,queueMicrotask(Xe));}var ge=Symbol("@esmj/signals:internal observable"),x=Symbol("@esmj/signals:original function"),Ge=class extends ee{#e=new Set;#o=null;constructor(e){super(),this.#o=e,this.pipe(t=>{let n=t.subscribe.bind(t),o=t.unsubscribe.bind(t);return t.subscribe=r=>{n(r),this.#e.add(r);},t.unsubscribe=r=>{o(r),this.#e.delete(r);},t});}watch(e){if(typeof e.next!="function"&&(e.next=()=>v(()=>{this.#e.add(e),this.#o();}),e.next[x]=void 0),e instanceof ke&&e.next[x]===void 0){let t=e.next.bind(e);e.next=()=>v(()=>{this.#e.add(e),t(),this.#o();}),e.next[x]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[x]){let n=t.get,o=n.bind(t);t.get=()=>v(()=>(this.#e.delete(t),o())),t.get[x]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[x]?e.next[x]:e.next,e.get=e.get[x]?e.get[x]:e.get,this.#e.delete(e),this.unsubscribe(e)}},U=null;function ye(e){U=new Ge(e);}ye(()=>{Ke();});function xe(){return U.getPending()}function be(e){return U.watch(e)}function Se(e){return U.unwatch(e)}var b=Symbol("@esmj/signals:no error"),ke=class we extends me{#e=true;#o=false;#n=null;#r=this.#p();#c=null;#l=null;#i=0;#s=new Map;#t=b;constructor(t,n){super(),this.#c=t,this.#l=n,this.debug=n?.debug,this[z]="computed",this[F]=n?.debug??null,this.get=this.get.bind(this);}#u(){for(let{unsubscribe:t}of this.#r.dependencies.values())t();this.#r.dependencies.clear();}#p(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[F],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#s.keys()]}}#f(){for(let[t,n]of this.#s)if(t instanceof we&&v(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#n[ge].next();}get(){if(this.#o)throw new Error("Cycle detected in computed signal");if(this.#n||(this.#n=N(this.#a(),this.#l)),(this.#e||this.#t!==b)&&(this.#s.size===0||this.#f()?this.#a():this.#e=false),m&&m.sourceRevisions.set(this,this.#i),this.#t!==b)throw this.#t;return this.#n.get()}peek(){if(this.#n||(this.#n=N(this.#a(),this.#l)),(this.#e||this.#t!==b)&&(this.#s.size===0||this.#f()?this.#a():this.#e=false),this.#t!==b)throw this.#t;return this.#n.peek()}#a(){this.#o=true,this.#e=false,this.#t=b,this.#u(),this.#r.sourceRevisions.clear();let t=m;m=this.#r;let n;try{n=this.#c();}catch(o){this.#t=o;}return m=t,this.#s=this.#r.sourceRevisions,this.#r.sourceRevisions=new Map,this.#o=false,n instanceof Promise&&(n=n.then(o=>{this.#t=b,this.#n.set(o);}).catch(o=>{this.#t=o;})),this.#t===b&&this.#n&&this.#n.set(n),this.#i++,n}destroy(){this.#u(),this.#s.clear(),this.#e=true,this.#t=b;}};function A(e,t){return new ke(e,t)}function g(e,t){let n,{debug:o,...r}={},s=A(()=>{n?.(),n=e();},{equals:()=>false,...r});s.get(),be(s);let i=()=>{n?.(),s.destroy(),Se(s);};return i[Symbol.dispose]=i,i[z]="effect",i[F]=o??null,i.__RX_COMPUTED__=s,i}function N(e,t={}){let n=t?.equals??Object.is,o=0,r=new ee;function s(){return m&&(m.dependencies.set(r,r.subscribe(m.observer)),m.sourceRevisions.set(p,o)),e}function i(){return e}function a(c){if(!n(e,c)){e=c,o++,r.next();}return e}function u(){return o}let p={get:s,set:a,peek:i,getRevision:u,[ge]:r,[z]:"signal",[F]:t?.debug??null};return p}function H(){return Date.now().toString(32).substring(5)+Math.random().toString(32).substring(2)}var Te=Symbol("node-component"),V=Symbol("node-internal"),Je=Symbol("keep-literal"),G=Symbol("raw-props");var Be=null;function I(){return Be}function W(e){Be=e;}function Ie(e){return e?.[Te]||null}function Re(e,t){e[Te]=t;}function X(e,t={disposers:[],id:H()}){return e?.[V]?e[V]:(e&&(e[V]=t),t)}function et(e){return e[V]}function w(e,t){let n=et(e);n||(n=X(e)),n.disposers.push(t);}function oe(e,t,n){e.has(t)||e.set(t,[]),e.get(t).push(n);}function R(e,t){let n=I();W(e);try{return t()}finally{W(n);}}var re=new Map,K=new Map,Ee=new Map;function Le(e,t){let n=typeof t=="function"?t:r=>!!t?.includes(r),o=Object.create(null);for(let r of Object.keys(e)){let s=e[r];r==="children"||n(r)?o[r]=s:s?.[Je]?o[r]=s():s!=null&&typeof s.get=="function"?o[r]=s:typeof s=="function"?o[r]=A(s):o[r]=N(s);}return o}function _(e){let t=e.componentId,n=re.get(t);if(n){re.delete(t);for(let o of n){let r=o();typeof r=="function"&&oe(K,t,r);}}}function tt(e){let t=K.get(e);if(t){K.delete(e);for(let n of t)n();}}function nt(e){let t=Ee.get(e);if(t){Ee.delete(e);for(let n of t)n();}}function J(e){if(!e)return;let t=X(e);if(t?.disposers?.length){for(let o of t.disposers)try{o();}catch(r){console.error("[esmj-dom] cleanupTree: disposer threw, cleanup continues",r);}t.disposers=[];}let n=Ie(e);if(n&&(tt(n.componentId),nt(n.componentId)),e.childNodes){let o=e.firstChild;for(;o;){let r=o.nextSibling;J(o),o=r;}}}function M(e){return e!=null&&typeof e=="object"&&typeof e.$constructor=="function"}function Ce(e){return typeof e=="function"&&typeof e.prototype?.render=="function"}function ot(e,t,n){let o=H(),r={componentId:o,$children:n,element:null,classInstance:null,$constructor(){let s=Ce(e)?void 0:e[G],i={...Le(t??{},s),children:n},a=I(),u={disposers:[],id:o,contexts:new Map(a?.contexts)};W(u);let p;if(Ce(e)){r.ClassConstructor=e;let f=new e(i);r.classInstance=f,typeof f.onMount=="function"&&oe(re,o,()=>{f.onMount?.();}),typeof f.onUnmount=="function"&&oe(K,o,()=>{f.onUnmount?.();}),p=f.render();}else p=e(i);W(a);let c=rt(p);if(r.element=c,c instanceof DocumentFragment&&c.childNodes.length)for(let f of c.childNodes)X(f,u),Re(f,r);else X(c,u),c instanceof Node&&Re(c,r);return c}};return r}function ce(e,t){let n=t.$constructor();n instanceof Node&&e.appendChild(n),queueMicrotask(()=>{_(t);});}function rt(e){return e instanceof Node?e:M(e)?e.$constructor():typeof e=="string"||typeof e=="number"?document.createTextNode(String(e)):document.createTextNode("")}var ve={className:"class",htmlFor:"for"},Ne=new Set(["value","defaultValue","checked","selected","indeterminate"]),st=new Set(["srcdoc"]),it=new Set(["href","src","action","formaction","xlink:href"]),at=new Set(["securitypolicyviolation"]),lt=new Set(["contenteditable","draggable","spellcheck"]);function q(e){return e!=null&&typeof e=="object"&&typeof e.get=="function"&&!(e instanceof Node)}var $e=Symbol("Fragment");function S(e,t,n){if(e===$e){let r=document.createDocumentFragment();return se(r,Me(n)),r}if(typeof e=="function")return ot(e,t||{},n);typeof e!="string"&&(n=t,t=e,e="div"),t=t||{};let o=document.createElement(e);return t.id&&o.setAttribute("id",t.id),Q(o,t),se(o,Me(n)),o}function ne(e,t){t instanceof DocumentFragment?e.replaceChildren(t):e.innerHTML=t??"";}function ct(e){return typeof e!="string"?false:e.replace(/[\p{White_Space}\p{Cc}]+/gu,"").toLowerCase().startsWith("javascript:")}function ut(e,t){if(typeof e!="string")return false;let n=e.toLowerCase();return st.has(n)?true:it.has(n)&&t!==null&&t!==void 0&&ct(String(t))}function Pe(e){return typeof e!="string"?e:ve[e]?ve[e]:e}function ft(e,t){let n=Pe(e),o=typeof n=="string"?n.toLowerCase():String(n).toLowerCase();return lt.has(o)&&(t===true||t===false||t==="true"||t==="false")?String(t):t==null||t===false?null:t}function Ae(e,t,n){let o=ft(t,n);if(o===null){e.removeAttribute(t);return}if(ut(t,o)){e.removeAttribute(t),console.warn(`[esmj-dom] Blocked unsafe attribute "${String(t)}" on <${e.tagName.toLowerCase()}>`);return}e.setAttribute(t,o);}function Q(e,t){let n=I();for(let[o,r]of Reflect.ownKeys(t).map(s=>[s,t[s]]))if(o!=="id"){if(o=Pe(o),o==="$ref"){typeof r=="function"?r(e):typeof r=="object"&&r!==null&&(r.current=e);continue}if(o==="$dangerouslySetInnerHTML"){if(q(r)){let s=g(()=>{R(n,()=>{ne(e,r.get());});});w(e,s);}else if(typeof r=="function"){let s=g(()=>{R(n,()=>{ne(e,r());});});w(e,s);}else ne(e,r);continue}if(o==="style"){if(q(r)){let s=g(()=>{R(n,()=>{Object.assign(e.style,r.get());});});w(e,s);}else typeof r=="object"&&r!==null?Object.assign(e.style,r):e.setAttribute("style",r);continue}if(typeof o=="string"&&o.startsWith("on")&&typeof r=="function"){let s=o.slice(2).toLowerCase();if(at.has(s)){console.warn(`[esmj-dom] Blocked unsafe event binding "${o}" on <${e.tagName.toLowerCase()}>`);continue}e.addEventListener(s,r);continue}if(q(r)||typeof r=="function"){let s=o,i=g(()=>{R(n,()=>{let a=typeof r=="function"?r():r.get();Ne.has(s)?e[s]=a??"":Ae(e,s,a);});});w(e,i);continue}Ne.has(o)||typeof o=="symbol"?e[o]=r??"":Ae(e,o,r);}}function Me(e){return e==null?[]:Array.isArray(e)?e.flat(Number.POSITIVE_INFINITY):[e]}function se(e,t){for(let n of t)Fe(e,n);}function Fe(e,t){if(!(t==null||t===false||t===true)){if(t instanceof Node){e.appendChild(t);return}if(typeof t=="string"||typeof t=="number"){e.appendChild(document.createTextNode(String(t)));return}if(typeof t=="function"){je(e,t);return}if(M(t)){ce(e,t);return}if(q(t)){je(e,()=>t.get());return}if(Array.isArray(t)){se(e,t);return}e.appendChild(document.createTextNode(String(t)));}}function L(e){let t=null,n=e;return M(e)&&(t=e,n=e.$constructor()),n instanceof DocumentFragment?{nodes:Array.from(n.childNodes),instance:t}:n instanceof Node?{nodes:[n],instance:t}:n==null||n===false||n===true?{nodes:[],instance:t}:{nodes:[document.createTextNode(String(n))],instance:t}}function Z(e,t=true){for(let n of e)t&&J(n),n.remove();}function je(e,t){let n=I(),o=document.createComment("");e.appendChild(o);let r=[],s=g(()=>{R(n,()=>{let i=t(),{nodes:a,instance:u}=L(i);Z(r),a.length&&o.after(...a),u&&queueMicrotask(()=>_(u)),r=a;});});w(e,s);}function ue(e,t){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("mount: container not found");e instanceof DocumentFragment||(J(e),e.innerHTML=""),M(t)?ce(e,t):t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t)));}function ht(e){return e===`
3
3
  `||e===`\r
4
4
  `?"":e??""}function _e(e){let t="",n=[],o=[];return (e??[]).forEach((r,s)=>{s>0&&(t+=`
5
- `);let i=t.length;t+=mt(r?.text);for(let a of r?.inlineStyleRanges??[])n.push({...a,offset:a.offset+i});for(let a of r?.entityRanges??[])o.push({...a,offset:a.offset+i});}),{text:t,inlineStyleRanges:n,entityRanges:o}}function ht(e,t){let n=0;for(let o of t){let s=e.register.blocks.getByNamespace(o?.component)?.toExchangeState(o)?.properties?.items;n+=_e(s).text.length;}return n}function De(e){return e.toLocaleString()}function gt({mrakomor:e}){let t=e.get();return S("footer",{className:"mrakomor-footer-container",contentEditable:false,"aria-label":"Editor status"},[S("div",{className:"mrakomor-footer-start"},[S("span",{className:"mrakomor-footer-item"},()=>{let n=t._getContentState().length;return `${De(n)} ${n===1?"block":"blocks"}`}),S("span",{className:"mrakomor-footer-item"},()=>{let n=ht(t,t._getContentState());return `${De(n)} ${n===1?"character":"characters"}`})]),S("div",{className:"mrakomor-footer-end"})])}function yt(e){let t=e.getRoot();return t?t.classList?.contains("mrakomor-editor")?t:t.querySelector(".mrakomor-editor"):null}function xt({mrakomor:e}){let t=null,n=null;return {onMount(){let o=yt(e);o&&(t=document.createElement("div"),t.className="mrakomor-footer-plugin-container",o.append(t),n=ue(t,S(gt,{mrakomor:e})));},onUnmount(){n?.(),t?.remove(),n=null,t=null;}}}exports.footerPlugin=xt;
5
+ `);let i=t.length;t+=ht(r?.text);for(let a of r?.inlineStyleRanges??[])n.push({...a,offset:a.offset+i});for(let a of r?.entityRanges??[])o.push({...a,offset:a.offset+i});}),{text:t,inlineStyleRanges:n,entityRanges:o}}function gt(e,t){let n=0;for(let o of t){let s=e.register.blocks.getByNamespace(o?.component)?.toExchangeState(o)?.properties?.items;n+=_e(s).text.length;}return n}function De(e){return e.toLocaleString()}function yt({mrakomor:e}){let t=e.get();return S("footer",{className:"mrakomor-footer-container",contentEditable:false,"aria-label":"Editor status"},[S("div",{className:"mrakomor-footer-start"},[S("span",{className:"mrakomor-footer-item"},()=>{let n=t._getContentState().length;return `${De(n)} ${n===1?"block":"blocks"}`}),S("span",{className:"mrakomor-footer-item"},()=>{let n=gt(t,t._getContentState());return `${De(n)} ${n===1?"character":"characters"}`})]),S("div",{className:"mrakomor-footer-end"})])}function xt(e){let t=e.getRoot();return t?t.classList?.contains("mrakomor-editor")?t:t.querySelector(".mrakomor-editor"):null}function bt({mrakomor:e}){let t=null,n=null;return {onMount(){let o=xt(e);o&&(t=document.createElement("div"),t.className="mrakomor-footer-plugin-container",o.append(t),n=ue(t,S(yt,{mrakomor:e})));},onUnmount(){n?.(),t?.remove(),n=null,t=null;}}}exports.footerPlugin=bt;
package/dist/footer.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import {l as l$1}from'./chunk-ZDMD7SRT.mjs';import'./chunk-SCFD3XBH.mjs';import {r,o}from'./chunk-K2DMHAUD.mjs';(function(){if(!(typeof document>"u")){var t="mrakomor/core/plugin/footer/footer.css",o=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(r){return r.getAttribute("data-mrakomor-css-path")===t});if(!o){var e=document.createElement("style");e.setAttribute("data-mrakomor-css",""),e.setAttribute("data-mrakomor-css-path",t),e.textContent=`.mrakomor-footer-plugin-container{display:contents}.mrakomor-footer-container{position:relative;flex:0 0 auto;display:flex;align-items:stretch;justify-content:space-between;gap:0;height:22px;min-height:22px;padding:0;border-top:1px solid #e4e7ec;background:#f3f4f6;color:#5b6472;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;line-height:22px;user-select:none;pointer-events:none}.mrakomor-footer-start,.mrakomor-footer-end{display:flex;align-items:stretch;min-width:0}.mrakomor-footer-end{margin-left:auto;flex-shrink:0}.mrakomor-footer-item{display:inline-flex;align-items:center;max-width:100%;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5b6472}.mrakomor-footer-item+.mrakomor-footer-item{border-left:1px solid #e0e4ea}.mrakomor-footer-action{display:inline-flex;align-items:center;gap:4px;height:100%;margin:0;padding:0 10px;border:none;border-left:1px solid #e0e4ea;background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:pointer;pointer-events:all}.mrakomor-footer-action:hover{background:#e9edf2;color:#1f2937}.mrakomor-footer-action:focus-visible{outline:1px solid #94a3b8;outline-offset:-1px}.mrakomor-footer-action__icon{font-size:12px;font-weight:700;line-height:1}
2
- `,document.head.appendChild(e);}}})();function l(t,o){let e=0;for(let r of o){let m=t.register.blocks.getByNamespace(r?.component)?.toExchangeState(r)?.properties?.items;e+=l$1(m).text.length;}return e}function s(t){return t.toLocaleString()}function c({mrakomor:t}){let o$1=t.get();return o("footer",{className:"mrakomor-footer-container",contentEditable:false,"aria-label":"Editor status"},[o("div",{className:"mrakomor-footer-start"},[o("span",{className:"mrakomor-footer-item"},()=>{let e=o$1._getContentState().length;return `${s(e)} ${e===1?"block":"blocks"}`}),o("span",{className:"mrakomor-footer-item"},()=>{let e=l(o$1,o$1._getContentState());return `${s(e)} ${e===1?"character":"characters"}`})]),o("div",{className:"mrakomor-footer-end"})])}function f(t){let o=t.getRoot();return o?o.classList?.contains("mrakomor-editor")?o:o.querySelector(".mrakomor-editor"):null}function u({mrakomor:t}){let o$1=null,e=null;return {onMount(){let r$1=f(t);r$1&&(o$1=document.createElement("div"),o$1.className="mrakomor-footer-plugin-container",r$1.append(o$1),e=r(o$1,o(c,{mrakomor:t})));},onUnmount(){e?.(),o$1?.remove(),e=null,o$1=null;}}}export{u as footerPlugin};
1
+ import {l as l$1}from'./chunk-D6K2L5O3.mjs';import'./chunk-4WTPDNPA.mjs';import {s as s$1,p}from'./chunk-7CJLTNHZ.mjs';(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/footer/footer.css",o=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(r){return r.getAttribute("data-mrakomor-css-path")===e});if(!o){var t=document.createElement("style");t.setAttribute("data-mrakomor-css",""),t.setAttribute("data-mrakomor-css-path",e),t.textContent=`.mrakomor-footer-plugin-container{display:contents}.mrakomor-footer-container{position:relative;flex:0 0 auto;display:flex;align-items:stretch;justify-content:space-between;gap:0;height:22px;min-height:22px;padding:0;border-top:1px solid #e4e7ec;background:transparent;color:#b3bac6;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;line-height:22px;user-select:none;pointer-events:none}.mrakomor-footer-start,.mrakomor-footer-end{display:flex;align-items:stretch;min-width:0}.mrakomor-footer-end{margin-left:auto;flex-shrink:0}.mrakomor-footer-item{display:inline-flex;align-items:center;max-width:100%;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b3bac6}.mrakomor-footer-item+.mrakomor-footer-item{border-left:1px solid #edf0f3}.mrakomor-footer-action{display:inline-flex;align-items:center;gap:4px;height:100%;margin:0;padding:0 10px;border:none;border-left:1px solid #edf0f3;background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:pointer;pointer-events:all;transition:background .1s,color .1s}.mrakomor-footer-action:hover{background:#0000000f;color:#374151}.mrakomor-footer-action:focus-visible{outline:1px solid #94a3b8;outline-offset:-1px}.mrakomor-footer-action__icon{font-size:12px;font-weight:500;line-height:1}
2
+ `,document.head.appendChild(t);}}})();function l(e,o){let t=0;for(let r of o){let m=e.register.blocks.getByNamespace(r?.component)?.toExchangeState(r)?.properties?.items;t+=l$1(m).text.length;}return t}function s(e){return e.toLocaleString()}function c({mrakomor:e}){let o=e.get();return p("footer",{className:"mrakomor-footer-container",contentEditable:false,"aria-label":"Editor status"},[p("div",{className:"mrakomor-footer-start"},[p("span",{className:"mrakomor-footer-item"},()=>{let t=o._getContentState().length;return `${s(t)} ${t===1?"block":"blocks"}`}),p("span",{className:"mrakomor-footer-item"},()=>{let t=l(o,o._getContentState());return `${s(t)} ${t===1?"character":"characters"}`})]),p("div",{className:"mrakomor-footer-end"})])}function f(e){let o=e.getRoot();return o?o.classList?.contains("mrakomor-editor")?o:o.querySelector(".mrakomor-editor"):null}function u({mrakomor:e}){let o=null,t=null;return {onMount(){let r=f(e);r&&(o=document.createElement("div"),o.className="mrakomor-footer-plugin-container",r.append(o),t=s$1(o,p(c,{mrakomor:e})));},onUnmount(){t?.(),o?.remove(),t=null,o=null;}}}export{u as footerPlugin};