@mrakomor/core 0.0.8 → 0.0.9

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.
@@ -1,2 +1,3 @@
1
- import {a}from'./chunk-B6JJAATK.mjs';import {m,u}from'./chunk-DFL6LPER.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}\\n"',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 m("div",{className:"mrakomor-block-gutter",contentEditable:false},[m("button",{type:"button",className:"mrakomor-block-add","aria-label":"Insert block",contentEditable:false},"+"),m("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(){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$1(t){if(!e||t.pointerId!==e.pointerId)return;let{blockElement:n,targetIndex:a}=e;c(),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();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 [m(k),m("div",{className:"mrakomor-block-body",[u]: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();});},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$1,{signal:t}),document.addEventListener("pointercancel",m$1,{signal:t});},onUnmount(){c(),r?.remove(),r=null;}}}
1
+ import {a}from'./chunk-B6JJAATK.mjs';import {c}from'./chunk-XQCH2FNS.mjs';import {n}from'./chunk-ZDZQ2RVJ.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 n("div",{className:"mrakomor-block-gutter",contentEditable:false},[n("button",{type:"button",className:"mrakomor-block-add","aria-label":"Insert block",contentEditable:false},"+"),n("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 [n(k),n("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;}}}
2
3
  export{k as BlockChrome,h as blockChromePlugin};
@@ -1 +1 @@
1
- import {a}from'./chunk-B6JJAATK.mjs';import {s}from'./chunk-DFL6LPER.mjs';function _({mrakomor:n}){let o=null,s$1=-1;function r(){o&&o.classList.remove("mrakomor-block-element--active"),o=null,s$1=-1;}function m(){return o?.isConnected?o:s$1<0?null:n._getBlockElements?.()[s$1]??null}function E(e){let c=m();if(!c||!e?.component)return;let l=e.component.NAMESPACE,u=e.component.getStateSchema().parse({componentId:s(),component:l,...e.settings?{settings:e.settings}:{}});n.command.insertBlockElement({blockElement:c,namespace:l,newLineState:u,cursor:0}),r(),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:c,anchorRect:l})=>{e.emit(a.OPEN_BLOCK_INSERT_MENU,{blockElement:c,anchorRect:l});},e.command.closeBlockInsertMenu=()=>{e.emit(a.CLOSE_BLOCK_INSERT_MENU);};},registerHandlers(){n.emitter.on(a.OPEN_BLOCK_INSERT_MENU,({blockElement:e,anchorRect:c})=>{r(),o=e,s$1=n._getBlockElementIndex?.(e)??-1,e?.classList.add("mrakomor-block-element--active"),n.command.closeTooltip?.();let l=n.getConfig()?.blockComponents??[];n.command.openMenu({entries:l,anchorRect:c,highlightIndex:-1,ariaLabel:"Insert block",onSelect:E});}),n.emitter.on(a.CLOSE_BLOCK_INSERT_MENU,()=>{r(),n.command.closeMenu();}),n.emitter.on(a.CLOSE_MENU,r);}}}export{_ as blockInsertMenuPlugin};
1
+ import {a}from'./chunk-B6JJAATK.mjs';import {a as a$1}from'./chunk-XQCH2FNS.mjs';import'./chunk-ZDZQ2RVJ.mjs';function _({mrakomor:n}){let o=null,s=-1;function r(){o&&o.classList.remove("mrakomor-block-element--active"),o=null,s=-1;}function E(){return o?.isConnected?o:s<0?null:n._getBlockElements?.()[s]??null}function m(e){let c=E();if(!c||!e?.component)return;let l=e.component.NAMESPACE,u=e.component.getStateSchema().parse({componentId:a$1(),component:l,...e.settings?{settings:e.settings}:{}});n.command.insertBlockElement({blockElement:c,namespace:l,newLineState:u,cursor:0}),r(),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:c,anchorRect:l})=>{e.emit(a.OPEN_BLOCK_INSERT_MENU,{blockElement:c,anchorRect:l});},e.command.closeBlockInsertMenu=()=>{e.emit(a.CLOSE_BLOCK_INSERT_MENU);};},registerHandlers(){n.emitter.on(a.OPEN_BLOCK_INSERT_MENU,({blockElement:e,anchorRect:c})=>{r(),o=e,s=n._getBlockElementIndex?.(e)??-1,e?.classList.add("mrakomor-block-element--active"),n.command.closeTooltip?.();let l=n.register.blocks.list();n.command.openMenu({entries:l,anchorRect:c,highlightIndex:-1,ariaLabel:"Insert block",onSelect:m});}),n.emitter.on(a.CLOSE_BLOCK_INSERT_MENU,()=>{r(),n.command.closeMenu();}),n.emitter.on(a.CLOSE_MENU,r);}}}export{_ as blockInsertMenuPlugin};
@@ -0,0 +1 @@
1
+ import {q}from'./chunk-ZDZQ2RVJ.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=q(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$1}from'./chunk-7UI6TZPX.mjs';import {a}from'./chunk-P7IKAZYZ.mjs';import {o,j,e,n}from'./chunk-ZDZQ2RVJ.mjs';var i=class extends o{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=j(a$1),this.element=e(null);}render(){return n(this.constructor.nodeName,{},this.props.children)}};export{i as a};
@@ -0,0 +1 @@
1
+ import {h}from'./chunk-ZDZQ2RVJ.mjs';var e=h();export{e as a};
@@ -0,0 +1,2 @@
1
+ import {a as a$1,b as b$2,k,c,d,j,h,g,e,f as f$1,i as i$1}from'./chunk-QWAQBTXR.mjs';import {a}from'./chunk-P6HMUYFA.mjs';import {b as b$3,a as a$6}from'./chunk-WX7ESURF.mjs';import {a as a$2}from'./chunk-P7IKAZYZ.mjs';import {b as b$1,j as j$1,l,k as k$1}from'./chunk-JFLCNBDM.mjs';import {a as a$5}from'./chunk-B6JJAATK.mjs';import {a as a$3,i,d as d$1,f,t,r}from'./chunk-XQCH2FNS.mjs';import {n,p,a as a$4,m}from'./chunk-ZDZQ2RVJ.mjs';(function(){if(!(typeof document>"u")){var l="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")===l});if(!t){var e=document.createElement("style");e.setAttribute("data-mrakomor-css",""),e.setAttribute("data-mrakomor-css-path",l),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);}}})();var S=l=>a$2.object({componentId:a$2.string().default(()=>l?.getAttribute?.("data-componentid")||a$3()),depth:a$2.number().default(0),text:a$2.string().default(""),inlineStyleRanges:a$2.array(a$6()).default([]),entityRanges:a$2.array(b$3()).default([])}).default({}),b=class l extends a{static get NAMESPACE(){return b$1}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=a$1(t);return a$2.object({component:a$2.string().default(l.NAMESPACE),componentId:a$2.string().default(t?.getAttribute("data-componentid")||a$3()),properties:a$2.object({items:a$2.array(S()).default([S().parse()]).transform(b$2)}).default({}),settings:a$2.object({style:a$2.enum(["ORDERED","UNORDERED"]).default(e??"UNORDERED")}).default({})}).default({})}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()},n=[...t.querySelectorAll("li")];return e.properties.items=n.length?n.map(s=>S(s).parse(k(s,r))):[S().parse()],e.settings={...e.settings,style:t.nodeName==="OL"?"ORDERED":t.nodeName==="UL"?"UNORDERED":this.state?.peek()?.settings?.style??e.settings?.style??"UNORDERED"},e}getFormattingTarget(t){let e=t??i(),r=c(this.element,e);if(!r)return null;let n=d(this.element,r);return n<0?null:{element:r,read(s){let o=s.properties?.items?.[n];return {inlineStyleRanges:o?.inlineStyleRanges,entityRanges:o?.entityRanges}},write(s,{inlineStyleRanges:o,entityRanges:m}){let i=s.properties?.items?.[n];i&&(o!==void 0&&(i.inlineStyleRanges=o),m!==void 0&&(i.entityRanges=m));}}}_commitState(t){let e=this.mrakomor.getContent(),r=e.findIndex(n=>n.componentId===t.componentId);r!==-1&&(e.splice(r,1,t),this.mrakomor.setContent(e));}_buildItemContent(t){return j(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-"),e=this.state.peek(),r=e.settings?.style==="ORDERED"?"ol":"ul";return n(r,{className:t,"data-componentid":e.componentId,$ref:n=>{this.element=n;}},p(()=>this.state.get().properties?.items??[],(n,s)=>n.componentId??String(s),(n$1,s)=>n("li",{contentEditable:true,[d$1]:true,"data-componentid":()=>n$1.get().componentId,"data-item-index":()=>{let o=n$1.get()?.componentId,i=(this.state.get().properties?.items??[]).findIndex(c=>c.componentId===o);return String(i>=0?i:s)},"data-depth":()=>String(n$1.get()?.depth??0),$dangerouslySetInnerHTML:()=>{let o=n$1.get(),m=o?.text??"";return j$1(m)?a$4(()=>this._buildItemContent(o)):"<br>"}})))}onKeydown(t){if(t.key==="Enter"){this.#e(t);return}t.key==="Backspace"&&this.#n(t);}setCursor(t){let e=this.getState()?.properties?.items??[],r$1=e.length-1;if(r$1<0)return;let n=typeof t=="number"?t:j$1(e[r$1]?.text).length,s=()=>{let o=this.element?.querySelector(`li[data-item-index="${r$1}"]`);o?.isConnected&&r(o,n);};s(),m(s);}#t(t$1){let e=this.getState(),r$1=[...e.properties.items??[]],n=r$1[t$1];if(!n)return;if((n.depth??0)>0){r$1[t$1]={...n,depth:n.depth-1},this._commitState({...e,properties:{...e.properties,items:r$1}});let u=()=>{let p=this.element?.querySelector(`li[data-item-index="${t$1}"]`);p?.isConnected&&r(p,0);};u(),m(u);return}let s=f(this.element),o=this.mrakomor._getBlockElementIndex(s),m$1=s?.previousElementSibling??null,i=m$1?this.mrakomor._getBlockElementIndex(m$1):-1;if(t$1===0&&i>=0&&o===i+1){let u=this.mrakomor.getContent(),p=h(u,i,o);if(p){this.mrakomor._setContentState(p.content.map(G=>this.mrakomor.normalizeComponentState(G))),t(m$1)?.setCursor?.(p.cursor);return}}let{blocks:c,paragraphIndex:d}=g(e,t$1);this.mrakomor.command.replaceBlockElement({blockElement:f(this.element),blocks:c,cursor:0,cursorBlockIndex:d});}#e(t){t.preventDefault();let e$1=i(),r$1=c(this.element,e$1);if(!r$1)return;let n=d(this.element,r$1),s=e(r$1,e$1),o=this.getState(),m$1=[...o.properties.items??[]],i$1=m$1[n];if(!i$1)return;if(!j$1(i$1.text)){this.#t(n);return}let{before:c$1,after:d$1}=f$1(i$1,s);m$1.splice(n,1,c$1,d$1),this._commitState({...o,properties:{...o.properties,items:m$1}}),m(()=>{let u=this.element?.querySelector(`li[data-item-index="${n+1}"]`);u&&r(u,0);});}#n(t){let e$1=i(),r=c(this.element,e$1);if(!r||!e$1.collapsed)return;let n=d(this.element,r);e(r,e$1)===0&&(t.preventDefault(),this.#t(n));}};function K(l$1){let{mrakomor:t$1,blockElement:e,previousBlockElement:r}=l$1;if(!t$1||!e||!r)return;let n=t$1._getBlockElementIndex(r),s=t$1._getBlockElementIndex(e);if(n===-1||s===-1)return;let o=t$1.getContent(),m=o[n],i=o[s];if(!l(m)||!k$1(i))return;let c=i$1(o,n,s);c&&(l$1.preventDefault(),t$1._setContentState(c.content.map(d=>t$1.normalizeComponentState(d))),t(r)?.setCursor?.(c.cursor));}function V(l){return {resolveConfig:t=>(t.blockComponents.push({component:l,label:"UL",keywords:["ul","unordered","bullet"],order:100,settings:{style:"UNORDERED"}},{component:l,label:"OL",keywords:["ol","ordered","number"],order:101,settings:{style:"ORDERED"}}),t),resolveComponent:t=>{if(t===l.NAMESPACE)return l},registerCommands(t){t.emitter.on(a$5.MERGE_BLOCK_ELEMENT,K);}}}function st(){return V(b)}export{b as a,V as b,st as c};
@@ -0,0 +1,3 @@
1
+ import {a as a$1,j,i,n}from'./chunk-XQCH2FNS.mjs';import {q,n as n$1}from'./chunk-ZDZQ2RVJ.mjs';var d="molecule.paragraph.Paragraph",O="molecule.list.List",F="molecule.external.ExternalComponent",v="namespace.unknown.UnknownComponent",X="molecule.headline.H1",K="molecule.headline.H2",z="molecule.headline.H3",G="molecule.headline.H4",U="molecule.headline.H5",A="molecule.headline.";function a(t){return t===`
2
+ `||t===`\r
3
+ `?"":t??""}function N(t){let e=t?.component??"";return e===d||e.startsWith(A)}function Q(t){return Array.isArray(t?.properties?.items)}function V(t,e){return N(t)&&N(e)&&t.component===e.component}function L(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 C(t,e,n){return t.filter(o=>o.offset<=e&&o.offset+o.length>=n)}function T(t,e,n,{inlineStyleComponents:o,entityRangeComponents:r}){let s=t;for(let i of e){let f=o.find(c=>c.match(i));f&&(s=n$1(f,{},s));}for(let i of n){let f=r.find(c=>c.match(i));f&&(s=n$1(f,i,s));}return s}function Y(t,{inlineStyleComponents:e,entityRangeComponents:n}){let o=document.createDocumentFragment(),r=a(t.properties.text),s=t.properties.inlineStyleRanges??[],i=t.properties.entityRanges??[];if(!r)return o;let f=L([...s,...i],r.length);for(let c=0;c<f.length-1;c+=1){let l=f[c],p=f[c+1];if(l>=p)continue;let g=r.slice(l,p),H=T(g,C(s,l,p),C(i,l,p),{inlineStyleComponents:e,entityRangeComponents:n});q(o,H);}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 f=o.find(l=>l.match(i));if(f){let l=i.textContent.length;e.properties.inlineStyleRanges.push({style:f.style,offset:s,length:l}),s=u(i.childNodes,e,s,{inlineStyleComponents:o,entityRangeComponents:r});continue}let c=r.find(l=>l.match(i));if(c){let l=i.textContent.length;e.properties.entityRanges.push({...c.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 I(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 Z(t,{startIndex:e,endIndex:n,startOffset:o,endOffset:r}){let s=[...t],i=s[e],f=s[n],{originalLineState:c}=y(i,o),{newLineState:l}=y(f,r),{state:p,cursor:g}=I(c,l);return s.splice(e,n-e+1,p),{content:s,cursor:g,resultIndex:e}}function P(t,e){return (t??[]).filter(n=>n.offset<e).map(n=>({...n,length:Math.min(n.length,e-n.offset)}))}function M(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=P(t.properties.inlineStyleRanges,e),o.properties.inlineStyleRanges=M(t.properties.inlineStyleRanges,e),n.properties.entityRanges=P(t.properties.entityRanges,e),o.properties.entityRanges=M(t.properties.entityRanges,e),o.componentId=a$1(),{originalLineState:n,newLineState:o}}function $(t,e,{namespace:n=t.constructor.NAMESPACE}={}){if(e.key!=="Enter")return false;e.preventDefault();let{originalLineState:o,newLineState:r}=y(t.getState(),j(t.element));return t.mrakomor.command.insertBlockElement({range:i(),cursor:0,newLineState:r,originalLineState:o,namespace:n}),true}function b(t,e){if(e.key!=="Enter")return false;e.preventDefault();let n=d,o=t.mrakomor.resolveComponentConstructor(n);return t.mrakomor.command.insertBlockElement({range:i(),cursor:0,newLineState:t.mrakomor.normalizeComponentState(o.getStateSchema().parse({})),namespace:n}),true}function ee(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 te(t){return t?{element:t,read(e){return {inlineStyleRanges:e.properties?.inlineStyleRanges,entityRanges:e.properties?.entityRanges}},write(e,{inlineStyleRanges:n,entityRanges:o}){n!==void 0&&(e.properties.inlineStyleRanges=n),o!==void 0&&(e.properties.entityRanges=o);}}:null}function _(t,e){let n$1=n(t,e.startContainer,e.startOffset),o=n(t,e.endContainer,e.endOffset);return {offset:n$1,length:Math.max(0,o-n$1)}}function B(t,{style:e,offset:n,length:o}){let r=t??[],s=n+o,i=r.find(f=>f.style===e&&f.offset<=n&&f.offset+f.length>=s);return i?r.filter(f=>f!==i):[...r,{style:e,offset:n,length:o}]}function w(t,e){return t.offset<e.offset+e.length&&e.offset<t.offset+t.length}function k(t,e){let n=e.offset+e.length,o=[];for(let r of t){if(!w(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 D(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(f=>f.offset===r&&f.length===o&&f.entity?.type===s);return i?n.filter(f=>f!==i):[...k(n,e),e]}function ne(t,e,{style:n,range:o}){if(!t||!e?.element||!o)return null;let r=e.read(t);if(r?.inlineStyleRanges===void 0)return null;let{offset:s,length:i}=_(e.element,o);return i===0?null:(e.write(t,{inlineStyleRanges:B(r.inlineStyleRanges??[],{style:n,offset:s,length:i})}),t)}function oe(t,e,{state:n,namespace:o,range:r}){if(!t||!e?.element||!r)return null;let s=e.read(t);if(s?.entityRanges===void 0)return null;let i={...n,entity:{type:o,...n?.entity},..._(e.element,r)},f=D(s.entityRanges??[],i);return f===null?null:(e.write(t,{entityRanges:f}),t)}export{d as a,O as b,F as c,v as d,X as e,K as f,z as g,G as h,U as i,a as j,N as k,Q as l,V as m,Y as n,u as o,I as p,Z as q,y as r,$ as s,b as t,ee as u,te as v,_ as w,ne as x,oe as y};
@@ -0,0 +1 @@
1
+ import {a}from'./chunk-7UI6TZPX.mjs';import {a as a$1}from'./chunk-P7IKAZYZ.mjs';import {j}from'./chunk-JFLCNBDM.mjs';import {a as a$2}from'./chunk-B6JJAATK.mjs';import {r}from'./chunk-XQCH2FNS.mjs';import {m,o,j as j$1}from'./chunk-ZDZQ2RVJ.mjs';var s=class extends o{state;element;mrakomor;constructor(t){super(t);let{state:e,observeDOMChanges:n=true}=t??{};this.state=e,this.element=null,this.mrakomor=j$1(a),this._stale=false,this._observer=null,this._offInputStale=null,this._onInputMarkStale=null,this._observeDOMChanges=n;}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(t){return this.constructor.getStateSchema(t).parse()}getState(){if(this._stale){let t=this.element;return this.parseFromHTML(t)}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=t=>{let e=t.target;e instanceof Node&&this.element?.contains(e)&&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 c=class extends s{static get NAMESPACE(){return "namespace.block.BlockComponent"}static get LABEL(){return ""}static get KEYWORDS(){return []}static get GROUP(){return "blocks"}isAtomic(){return false}setCursor(t){let e=()=>{if(!this.element?.isConnected)return;let n=typeof t=="number"?t:j(this.getState()?.properties?.text).length;r(this.element,n);};e(),m(e);}onKeydown(t){}getFormattingTarget(t){return null}};export{c as a};
@@ -0,0 +1 @@
1
+ var Q={abortEarly:true};function D(e,s){if(s===void 0)return e;let t=e?.cause?.key?`${s}.${e.cause.key}`:`${s}`;return {message:`Error parsing key "${t}": ${e.message}`,cause:{key:t}}}function U(e,s,t){if(e.errors?.length)for(let r=0;r<e.errors.length;r++)s.push(D(e.errors[r],t));}function O(e,s,t,r){if(t!==false){let a=D(e.error,s);return {success:false,error:a,errors:[a]}}U(e,r,s);}function _(e){return e?.abortEarly!==void 0?e:Q}function x(e,s){g(e,"_parse",(t,r,a)=>{let l=t(r,a);return !l.success&&s(r)?{success:true,data:r}:l});}var b=e=>typeof e=="string"||e instanceof String,v=e=>(typeof e=="number"||e instanceof Number)&&!Number.isNaN(e),j=e=>e===true||e===false,V=e=>e instanceof Date&&!Number.isNaN(e.getTime()),W=e=>typeof e=="function",Y=e=>Array.isArray(e),N=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function T(e,s){let t=h(N,{...s,type:"object"});t._getDescription=()=>`object({ ${Object.entries(e).map(([a,l])=>`${a}: ${l._getDescription()}`).join(", ")} })`,t._getDefinition=()=>e;let r=t;return r.derive=function(a,{when:l="always"}={}){return g(this,"_parse",(n,i,u)=>{let c=n(i,u);if(!c.success)return c;let o=a(c.data,{context:u?.context});if(!N(o)){let f={message:`derive() callback must return a plain object of overrides, got ${o===null?"null":typeof o}`};return {success:false,error:f,errors:[f]}}if(l==="missing"){let f={...c.data};for(let p in o)f[p]===void 0&&(f[p]=o[p]);return {success:true,data:f}}return {success:true,data:{...c.data,...o}}}),this},g(t,"_parse",(a,l,n)=>{let i=a(l,n),{abortEarly:u}=_(n);if(i.success===false)return i;let c={},o=[];for(let f in e){let p=e[f]._parse(i.data[f],n);if(p.success)c[f]=p.data;else {let m=O(p,f,u,o);if(m)return m}}return o.length>0?{success:false,error:o[0],errors:o}:{success:true,data:c}}),r}function E(e){return h(b,{...e,type:"string"})}function w(e){return h(v,{...e,type:"number"})}function S(e){return h(j,{...e,type:"boolean"})}function k(e){return h(V,{...e,type:"date"})}function q(e){return h(W,{...e,type:"function"})}function I(e,s){let t=n=>e.includes(n),r=n=>`Invalid ${a} value. Expected ${e.map(i=>`"${i}"`).join(" | ")}, received "${n}".`,a="enum",l=h(t,{message:r,...s,type:a});return l._getDescription=()=>`enum(${e.map(n=>`"${n}"`).join(" | ")})`,l._getDefinition=()=>e,l}function P(e,s){let t=h(Y,{...s,type:"array"});return t._getDescription=()=>`array(${e._getDescription()})`,t._getDefinition=()=>e,g(t,"_parse",(r,a,l)=>{let n=r(a,l),{abortEarly:i}=_(l);if(n.success===false)return n;let u=[],c=[],o=l;for(let f=0;f<n.data.length;f++){let p={...o,context:{...o?.context,index:f}},m=e._parse(n.data[f],p);if(m.success)u.push(m.data);else {let y=O(m,f,i,c);if(y)return y}}return c.length>0?{success:false,error:c[0],errors:c}:{success:true,data:u}}),t}function R(){return h(()=>true)}function d(e,s){return g(s,"_parse",(t,r,a)=>(r=e(r),t(r,a))),s}function F(e,s){let t=a=>`Invalid union value. Expected the value to match one of the schemas:${e.map((l,n)=>` ${n+1}. ${l._getDescription()}`).join(",")} but received "${typeof a}" with value: ${N(a)?JSON.stringify(a):`"${a}"`}`,r=h(()=>false,{message:t,...s,type:"union"});return r._getDefinition=()=>e,g(r,"_parse",(a,l,n)=>{let i=n,u=[];for(let p=0;p<e.length;p++){let m=e[p]._parse(l,i);if(m.success)return m;u.push(m);}let{abortEarly:c}=_(i),o={message:typeof t=="function"?t(l):t};if(c!==false)return {success:false,error:o,errors:[o]};let f=[];for(let p=0;p<u.length;p++){let m=u[p].errors;if(m?.length)for(let y=0;y<m.length;y++)m[y].cause?.key&&f.push(D(m[y],`branch ${p}`));}return f.length===0&&f.push(o),{success:false,error:f[0],errors:f}}),r}function H(e,s){let t=h(r=>r===e,{message:r=>s?.message?typeof s.message=="function"?s.message(r):s.message:`Expected literal value "${e}", received "${r}"`,name:s?.name,type:"literal"});return t._getDescription=()=>`literal("${e}")`,t._getDefinition=()=>e,t}function L(e){let s=h(()=>true,{type:"contextRef"});return s._getDescription=()=>`contextRef("${e}")`,g(s,"_parse",(t,r,a)=>({success:true,data:a?.context?.[e]})),s}function z(e,s){return {parse(t,r){let a=e.parse(r?.context??{},r);return s(a).parse(t,r)},safeParse(t,r){let a=e.safeParse(r?.context??{},r);return a.success?s(a.data).safeParse(t,r):a}}}var B={boolean(e){let s=e?.message??(t=>`Cannot cast "${t}" to boolean. Accepted: true/false, 1/0, yes/no, on/off.`);return d(t=>{let r;return b(t)&&(r=t.toLowerCase()),r==="true"||r==="yes"||r==="on"||r==="1"||t===1?true:r==="false"||r==="no"||r==="off"||r==="0"||t===0?false:t},S({...e,message:s}))},number(e){let s=e?.message??(t=>`Cannot cast "${t}" to a number. Expected a numeric string or number.`);return d(t=>{if(j(t))return Number(t);if(b(t)){let r=t.trim();if(r==="")return t;let a=Number(r);if(Number.isFinite(a))return a}return t},w({...e,message:s}))},string(e){let s=e?.message??(t=>`Cannot cast "${t}" to string. Expected a string, number, or boolean.`);return d(t=>j(t)||v(t)&&Number.isFinite(t)?String(t):t,E({...e,message:s}))},date(e){let s=e?.message??(t=>`Cannot cast "${t}" to a valid date.`);return d(t=>{let r;return b(t)&&(r=t.trim()),v(t)&&Number.isFinite(t)||r?new Date(r??t):t},k({...e,message:s}))},json(e,s){let t=s?.message??(r=>`Cannot parse "${r}" as JSON.`);return g(e,"_parse",(r,a,l)=>{if(b(a))try{a=JSON.parse(a);}catch{let n={message:typeof t=="function"?t(a):t};return {success:false,error:n,errors:[n]}}return r(a,l)}),e}},G={},M={object:T,string:E,number:w,boolean:S,date:k,function:q,enum:I,array:P,any:R,preprocess:d,union:F,literal:H,contextRef:L,withContext:z,coerce:G,cast:B};function A(e){return s=>`The value "${s}" must be type of ${e} but is type of "${typeof s}".`}function g(e,s,t){let r=e[s];e[s]=(...a)=>t(r,...a);}function h(e,{type:s="any",name:t,message:r}={}){r=r||A(s);let a={name:t,message:r,type:s},l={_getName(){return t},_getType(){return s},_getDescription(){return this._getName()??this._getType()},_parse(n,i){let u=e(n);if(u===true)return {success:true,data:n};if(typeof u=="object"&&u?.success===true)return u;let c={message:typeof r=="function"?r(n):r};return {success:false,error:c,errors:[c]}},parse(n,i){let u=this._parse(n,i);if(!u.success)throw u=u,new Error(u.error.message,{cause:u.error.cause});return u.data},safeParse(n,i){return this._parse(n,i)},transform(n){return g(this,"_parse",(i,u,c)=>{let o=i(u,c);return o.success&&(o.data=n(o.data)),o}),this},optional(){return x(this,n=>n===void 0),this},nullable(){return x(this,n=>n===null),this},nullish(){return x(this,n=>n==null),this},default(n){return g(this,"_parse",(i,u,c)=>(u===void 0&&(u=typeof n=="function"?n({context:c?.context}):n),i(u,c))),this},catch(n){return g(this,"_parse",(i,u,c)=>{let o=i(u,c);return o.success?o:{success:true,data:typeof n=="function"?n({input:u,error:o.error}):n}}),this},pipe(n){return g(this,"_parse",(i,u,c)=>{let o=i(u,c);return o.success?n._parse(o.data,c):o}),this},refine(n,{message:i,type:u,jsonSchema:c}={}){if(u&&(i=i||A(u),s=u),c){let o=[...this._getJsonSchemaHints?.()??[],c];this._getJsonSchemaHints=()=>o;}return g(this,"_parse",(o,f,p)=>{let m=o(f,p),{abortEarly:y}=_(p);if(!m.success)return m;let $=n(m.data);if($===true||typeof $=="object"&&$?.success===true)return m;let C={message:typeof i=="function"?i(f):i};return {success:false,error:C,errors:[C]}}),this},clone(){return {...this}}};return J.length>0?J.reduce((n,i)=>i(n,e,a)??n,l):l}var J=[];export{M as a};
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-P6HMUYFA.mjs';import {d,a as a$3,b}from'./chunk-WX7ESURF.mjs';import {a as a$2}from'./chunk-P7IKAZYZ.mjs';import {a as a$1,u,n as n$1,j,v,s}from'./chunk-JFLCNBDM.mjs';import {d as d$1}from'./chunk-XQCH2FNS.mjs';import {n as n$2,a as a$4}from'./chunk-ZDZQ2RVJ.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 u(this,t)}_buildContent(t){return n$1(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return n$2("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>"}})}getFormattingTarget(t){return v(this.element)}onKeydown(t){s(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 {r,a as a$1,j as j$1,p,l,k,n as n$1,o}from'./chunk-JFLCNBDM.mjs';import {a,n}from'./chunk-XQCH2FNS.mjs';function M(e){if(e?.nodeName==="OL")return "ORDERED";if(e?.nodeName==="UL")return "UNORDERED"}function O(e=[]){let n=new Set;return e.map(t=>{if(t?.componentId&&!n.has(t.componentId))return n.add(t.componentId),t;let r=a();return n.add(r),{...t,componentId:r}})}function P(e,n){if(!e||!n)return null;let t=n.startContainer;for(t.nodeType===Node.TEXT_NODE&&(t=t.parentElement);t&&t!==e;){if(t.nodeName==="LI"&&e.contains(t))return t;t=t.parentElement;}return null}function U(e,n){if(!n)return -1;let t=n.getAttribute?.("data-item-index");if(t!=null&&t!==""){let r=Number(t);if(!Number.isNaN(r))return r}return [...e.querySelectorAll("li")].indexOf(n)}function F(e,n$1){return !e||!n$1?0:n(e,n$1.startContainer,n$1.startOffset)}function q(e,n){let t={properties:{text:e.text??"",inlineStyleRanges:e.inlineStyleRanges??[],entityRanges:e.entityRanges??[]}},{originalLineState:r$1,newLineState:s}=r(t,n);return {before:{componentId:e.componentId,depth:e.depth??0,text:r$1.properties.text,inlineStyleRanges:r$1.properties.inlineStyleRanges??[],entityRanges:r$1.properties.entityRanges??[]},after:{componentId:a(),depth:e.depth??0,text:s.properties.text,inlineStyleRanges:s.properties.inlineStyleRanges??[],entityRanges:s.properties.entityRanges??[]}}}function H(e,n){let t=e.properties?.items??[],r=t[n];if(!r)return {blocks:[e],paragraphIndex:0};let s=t.slice(0,n),i=t.slice(n+1),l={component:a$1,componentId:a(),properties:{text:r.text??"",inlineStyleRanges:r.inlineStyleRanges??[],entityRanges:r.entityRanges??[]},settings:{}},o=[];return s.length&&o.push({...e,properties:{...e.properties,items:s}}),o.push(l),i.length&&o.push({...e,componentId:s.length?a():e.componentId,properties:{...e.properties,items:i}}),{blocks:o,paragraphIndex:s.length?1:0}}function C(e){return l(e)?e.settings?.style==="ORDERED"?"ORDERED":"UNORDERED":null}function T(e,n){let t=C(e),r=C(n);return t!=null&&t===r}function _(e,n,t){if(n<0||t!==n+1||t>=e.length)return null;let r=e[n],s=e[t];if(!T(r,s))return null;let i=[...r.properties?.items??[]],l=[...s.properties?.items??[]];if(l.length===0){let a=[...e];a.splice(t,1);let p=i.length-1,c=p>=0?j$1(i[p]?.text).length:0;return {content:a,listIndex:n,cursor:c}}let[o,...g]=l,u=0;if(i.length===0)i.push(o,...g),u=0;else {let a=i.length-1,p$1=i[a],c={properties:{text:p$1.text??"",inlineStyleRanges:p$1.inlineStyleRanges??[],entityRanges:p$1.entityRanges??[]}},d={properties:{text:o.text??"",inlineStyleRanges:o.inlineStyleRanges??[],entityRanges:o.entityRanges??[]}},{state:x,cursor:D}=p(c,d);i[a]={...p$1,text:x.properties.text,inlineStyleRanges:x.properties.inlineStyleRanges,entityRanges:x.properties.entityRanges},g.length&&i.push(...g),u=D;}let R={...r,properties:{...r.properties,items:O(i)}},y=[...e];return y[n]=R,y.splice(t,1),{content:y,listIndex:n,cursor:u}}function j(e,n,t){if(n<0||t!==n+1||t>=e.length)return null;let r=e[n],s=e[t];if(!l(r)||!k(s))return null;let i=r.properties?.items??[],l$1=i.length-1;if(l$1<0)return null;let o=i[l$1],g={properties:{text:o.text??"",inlineStyleRanges:o.inlineStyleRanges??[],entityRanges:o.entityRanges??[]}},u={properties:{text:s.properties?.text??"",inlineStyleRanges:s.properties?.inlineStyleRanges??[],entityRanges:s.properties?.entityRanges??[]}},{state:R,cursor:y}=p(g,u),a={...r,properties:{...r.properties,items:i.map((c,d)=>d===l$1?{...c,text:R.properties.text,inlineStyleRanges:R.properties.inlineStyleRanges,entityRanges:R.properties.entityRanges}:c)}},p$1=[...e];return p$1[n]=a,p$1.splice(t,1),{content:p$1,listIndex:n,cursor:y}}function z(e,n){return n$1({properties:{text:e?.text??"",inlineStyleRanges:e?.inlineStyleRanges??[],entityRanges:e?.entityRanges??[]}},n)}function G(e,n){let t=Number(e.getAttribute("data-depth")??0)||0,r={properties:{text:j$1(e.innerText??e.textContent??""),inlineStyleRanges:[],entityRanges:[]}};return o(e.childNodes,r,0,n),{componentId:e.getAttribute("data-componentid")||void 0,depth:t,text:j$1(r.properties.text),inlineStyleRanges:r.properties.inlineStyleRanges,entityRanges:r.properties.entityRanges}}export{M as a,O as b,P as c,U as d,F as e,q as f,H as g,_ as h,j as i,z as j,G as k};
@@ -0,0 +1 @@
1
+ import {a as a$1}from'./chunk-P7IKAZYZ.mjs';var u=class{#r=new Set;pipe(...t){return c(...t)(this)}next(...t){Array.from(this.#r).forEach(r=>{typeof r=="function"?r(...t):r.next(...t);});}error(...t){Array.from(this.#r).forEach(r=>{r?.error?.(...t),this.unsubscribe(r);});}complete(...t){Array.from(this.#r).forEach(r=>{r?.complete?.(...t),this.unsubscribe(r);});}subscribe(t){return this.#r.add(t),{unsubscribe:()=>{this.unsubscribe(t);}}}unsubscribe(t){this.#r.delete(t);}};function c(...t){return r=>Array.from(t).reduce((e,s)=>s(e),r)}function a(t){return t.map((r,e)=>({entry:r,index:e})).sort((r,e)=>{let s=r.entry.order??r.index,i=e.entry.order??e.index;return s!==i?s-i:r.index-e.index}).map(({entry:r})=>r)}var h=class extends u{mrakomor;#r=new Map;#t=null;#s=0;#n;constructor(r,e={}){super(),this.mrakomor=r,this.#n=e.sort??a;}normalize(r,e){throw new Error("Register subclass must implement normalize")}#e(){this.#t=null,this.next(this.list());}#i(r,e=this.#s++){let s=this.normalize(r,e);return s?(this.#r.set(s.id,s),s):null}add(r){if(Array.isArray(r)){let s=[];for(let i of r){let o=this.#i(i,this.#s++);o&&s.push(o);}return s.length&&this.#e(),s}let e=this.#i(r);return e&&this.#e(),e}get(r){return this.#r.get(r)}has(r){return this.#r.has(r)}remove(r){let e=this.#r.delete(r);return e&&this.#e(),e}list(){return this.#t??=this.#n([...this.#r.values()]),this.#t}};function l(){return a$1.object({id:a$1.string(),group:a$1.string().default("general"),description:a$1.string().default(""),commands:a$1.array(a$1.string()).default([]),shortcuts:a$1.array(a$1.string()).default([])}).default({})}function g(t){try{return l().parse(t)}catch{return null}}export{h as a,l as b,g as c};
@@ -0,0 +1 @@
1
+ import {a}from'./chunk-P7IKAZYZ.mjs';import {a as a$1}from'./chunk-XQCH2FNS.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 @@
1
+ import {f as f$1}from'./chunk-ZDZQ2RVJ.mjs';var g=m(),C=m(),R=m(),k=Array.from({length:256},(t,e)=>(e<=15?"0":"")+e.toString(16));function m(){return Math.floor(Math.random()*16777215)}function I(){return C=(C+1)%16777215,C}function H(){let t=Math.floor(Date.now()/1e3);t=parseInt(t,10)%4294967295;let e=I(),n=String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,t&255,g>>16&255,g>>8&255,g&255,R>>8&255,R&255,e>>16&255,e>>8&255,e&255),o="";for(let l=0;l<n.length;l++)o+=k[n.charCodeAt(l)];return o}var E=Symbol("block-element"),M=Symbol("block-element-body"),O=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 T(t){return t?h(t.startContainer,E):null}function b(t){return h(t,E)}function y(t){return t?h(t.startContainer,O):null}function B(t){return h(t,O)}function x(){return window.getSelection()}function N(){let t=x();return t.rangeCount>0?t.getRangeAt(0).cloneRange():null}function X(){let t=N();if(!t)return 0;t.collapse(true);let e=y(t),n=T(t),o=e??s(n);return d(o,t.startContainer,t.startOffset)}var f=null;function v(){f=A();}function _(){f&&D(f);}function W(){f&&(f={start:f.end,end:f.end,element:f.element},_());}function w(t,e){let n=y(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 i=0;i<a;i++)c+=u[i].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 A(){let t=N();if(!t)return null;let e=T(t),n=w(e,t);return {start:d(n,t.startContainer,t.startOffset),end:d(n,t.endContainer,t.endOffset),element:e,selectableElement:n}}function j(t=N()){if(!t||t.collapsed)return null;let e=b(t.startContainer),n=b(t.endContainer);if(!e||!n)return null;let o=B(t.startContainer)??s(e),l=B(t.endContainer)??s(n);return {startBlock:e,endBlock:n,startOffset:d(o,t.startContainer,t.startOffset),endOffset:d(l,t.endContainer,t.endOffset)}}function D(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=S(r,e),u=S(r,n),a=document.createRange();a.setStart(c.startContainer,c.startOffset),a.setEnd(u.endContainer,u.endOffset);let i=x();i.removeAllRanges(),i.addRange(a);}function S(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 K(t,e){let n=S(t,e),o=x();o.removeAllRanges(),o.addRange(n);}function s(t){if(!t)return null;let e=L(t);return e?.firstElementChild??e?.firstChild}function F(t){if(!t?.[E])return null;let e=s(t);return e?f$1(e)?.classInstance:null}function L(t){if(!t)return null;for(let e of t.children)if(e[M])return e;return null}function Y(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{H as a,E as b,M as c,O as d,T as e,b as f,y as g,B as h,N as i,X as j,v as k,_ as l,W as m,d as n,A as o,j as p,D as q,K as r,s,F as t,L as u,Y as v,q as w};
@@ -0,0 +1,2 @@
1
+ import {a as a$1}from'./chunk-P6HMUYFA.mjs';import {d}from'./chunk-WX7ESURF.mjs';import {a as a$2}from'./chunk-P7IKAZYZ.mjs';import {j,s as s$1,a as a$4,e,f as f$1,g,h,i as i$2}from'./chunk-JFLCNBDM.mjs';import {d as d$1,i as i$1,f,s as s$2,r}from'./chunk-XQCH2FNS.mjs';import {n,a as a$3,m}from'./chunk-ZDZQ2RVJ.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 n(`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)?a$3(()=>this._buildContent(r)):"<br>"}})}onKeydown(t){if(t.key==="Backspace"){this.#t(t);return}s$1(this,t,{namespace:a$4});}#t(t){if(!i$1()?.collapsed)return;let n=f(this.element);if(n?.previousElementSibling||j(this.getState()?.properties?.text))return;t.preventDefault(),this.mrakomor.command.transformBlockElement({blockElement:n,namespace:a$4});let l=()=>{let b=this.mrakomor.getRoot()?.querySelector(".mrakomor-content .mrakomor-block-element"),p=s$2(b);p?.isConnected&&r(p,0);};l(),m(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$2}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};
@@ -0,0 +1 @@
1
+ var ie=class{next(...e){}error(...e){}complete(...e){}},X=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 D=Symbol("@esmj/signals:type"),j=Symbol("@esmj/signals:name");var h=null,W=false,Y=[];function k(e){let t=h;h=null;let n=e();return h=t,n}function qe(){W=false;let e=ce();for(let n of e)n.get();let t=Y;Y=[];for(let n of t)n();}function ue(){W||(W=true,queueMicrotask(qe));}function G(e){Y.push(e),ue();}var le=Symbol("@esmj/signals:internal observable"),y=Symbol("@esmj/signals:original function"),De=class extends X{#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=s=>{n(s),this.#e.add(s);},t.unsubscribe=s=>{r(s),this.#e.delete(s);},t});}watch(e){if(typeof e.next!="function"&&(e.next=()=>k(()=>{this.#e.add(e),this.#r();}),e.next[y]=void 0),e instanceof he&&e.next[y]===void 0){let t=e.next.bind(e);e.next=()=>k(()=>{this.#e.add(e),t(),this.#r();}),e.next[y]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[y]){let n=t.get,r=n.bind(t);t.get=()=>k(()=>(this.#e.delete(t),r())),t.get[y]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[y]?e.next[y]:e.next,e.get=e.get[y]?e.get[y]:e.get,this.#e.delete(e),this.unsubscribe(e)}},P=null;function ae(e){P=new De(e);}ae(()=>{ue();});function ce(){return P.getPending()}function fe(e){return P.watch(e)}function de(e){return P.unwatch(e)}var b=Symbol("@esmj/signals:no error"),he=class pe extends ie{#e=true;#r=false;#n=null;#s=this.#d();#a=null;#l=null;#i=0;#o=new Map;#t=b;constructor(t,n){super(),this.#a=t,this.#l=n,this.debug=n?.debug,this[D]="computed",this[j]=n?.debug??null,this.get=this.get.bind(this);}#c(){for(let{unsubscribe:t}of this.#s.dependencies.values())t();this.#s.dependencies.clear();}#d(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[j],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#o.keys()]}}#f(){for(let[t,n]of this.#o)if(t instanceof pe&&k(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#n[le].next();}get(){if(this.#r)throw new Error("Cycle detected in computed signal");if(this.#n||(this.#n=v(this.#u(),this.#l)),(this.#e||this.#t!==b)&&(this.#o.size===0||this.#f()?this.#u():this.#e=false),h&&h.sourceRevisions.set(this,this.#i),this.#t!==b)throw this.#t;return this.#n.get()}peek(){if(this.#n||(this.#n=v(this.#u(),this.#l)),(this.#e||this.#t!==b)&&(this.#o.size===0||this.#f()?this.#u():this.#e=false),this.#t!==b)throw this.#t;return this.#n.peek()}#u(){this.#r=true,this.#e=false,this.#t=b,this.#c(),this.#s.sourceRevisions.clear();let t=h;h=this.#s;let n;try{n=this.#a();}catch(r){this.#t=r;}return h=t,this.#o=this.#s.sourceRevisions,this.#s.sourceRevisions=new Map,this.#r=false,n instanceof Promise&&(n=n.then(r=>{this.#t=b,this.#n.set(r);}).catch(r=>{this.#t=r;})),this.#t===b&&this.#n&&this.#n.set(n),this.#i++,n}destroy(){this.#c(),this.#o.clear(),this.#e=true,this.#t=b;}};function C(e,t){return new he(e,t)}function g(e,t){let n,{debug:r,...s}={},o=C(()=>{n?.(),n=e();},{equals:()=>false,...s});o.get(),fe(o);let i=()=>{n?.(),o.destroy(),de(o);};return i[Symbol.dispose]=i,i[D]="effect",i[j]=r??null,i.__RX_COMPUTED__=o,i}function v(e,t={}){let n=t?.equals??Object.is,r=0,s=new X;function o(){return h&&(h.dependencies.set(s,s.subscribe(h.observer)),h.sourceRevisions.set(c,r)),e}function i(){return e}function u(f){if(!n(e,f)){e=f,r++,s.next();}return e}function l(){return r}let c={get:o,set:u,peek:i,getRevision:l,[le]:s,[D]:"signal",[j]:t?.debug??null};return c}function R(){return Date.now().toString(32).substring(5)+Math.random().toString(32).substring(2)}var ve=Symbol("node-component"),F=Symbol("node-internal"),Ce=Symbol("keep-literal");function Pe(e){let t=()=>e;return t[Ce]=true,t}function Fe(e){let t=null,n=()=>t,r=o=>(t=o??null,typeof e=="function"&&e(t),t),s={get:n,set:r,[Symbol.toPrimitive](){return t?String(t):""}};return Object.defineProperty(s,"current",{get(){return t},set(o){r(o);},enumerable:true,configurable:false}),new Proxy(s,{get(o,i,u){if(Reflect.has(o,i))return Reflect.get(o,i,u);if(!t)return;let l=t[i];return typeof l=="function"?l.bind(t):l},set(o,i,u,l){return Reflect.has(o,i)||!t?Reflect.set(o,i,u,l):(t[i]=u,true)},has(o,i){return Reflect.has(o,i)||!!t&&i in t}})}var ke=null;function m(){return ke}function I(e){ke=e;}function Ne(e){return e?.[ve]||null}function ge(e,t){e[ve]=t;}function _(e,t={disposers:[],id:R()}){return e?.[F]?e[F]:(e&&(e[F]=t),t)}function Ie(e){return e[F]}function w(e,t){let n=Ie(e);n||(n=_(e)),n.disposers.push(t);}function T(e,t,n){e.has(t)||e.set(t,[]),e.get(t).push(n);}function x(e,t){let n=m();I(e);try{return t()}finally{I(n);}}var U=new Map,$=new Map,me=new Map;function Me(e){let t=Object.create(null);for(let n of Object.keys(e)){let r=e[n];n==="children"?t[n]=r:r?.[Ce]?t[n]=r():r!=null&&typeof r.get=="function"?t[n]=r:typeof r=="function"?t[n]=C(r):t[n]=v(r);}return t}function B(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),r=Object.keys(t);return n.length!==r.length?false:n.every(s=>{let o=Object.getOwnPropertyDescriptor(e,s),i=Object.getOwnPropertyDescriptor(t,s);if(!o||!i)return false;let u="value"in o?o.value:o.get?.call(e),l="value"in i?i.value:i.get?.call(t);return B(u,l)})}function _e(e){return {id:Symbol("context-id"),defaultValue:e}}function Ue(e,t){let n=m();n&&n.contexts.set(e.id,t);}function Be(e){let t=m();return t?.contexts?.has(e.id)?t.contexts.get(e.id):e.defaultValue}function He(e){let t=m();if(!t){console.warn("onMount called outside of a component context");return}T(U,t.id,e);}function ze(e){let t=m();if(!t){console.warn("onUnmount called outside of a component context");return}T($,t.id,e);}function Ve(e){G(()=>{setTimeout(e,0);});}function A(e){let t=e.componentId,n=U.get(t);if(n){U.delete(t);for(let r of n){let s=r();typeof s=="function"&&T($,t,s);}}}function Xe(e){let t=$.get(e);if(t){$.delete(e);for(let n of t)n();}}function We(e){let t=me.get(e);if(t){me.delete(e);for(let n of t)n();}}function L(e){if(!e)return;let t=_(e);if(t?.disposers?.length){for(let r of t.disposers)try{r();}catch(s){console.error("[esmj-dom] cleanupTree: disposer threw, cleanup continues",s);}t.disposers=[];}let n=Ne(e);if(n&&(Xe(n.componentId),We(n.componentId)),e.childNodes){let r=e.firstChild;for(;r;){let s=r.nextSibling;L(r),r=s;}}}function N(e){return e!=null&&typeof e=="object"&&typeof e.$constructor=="function"}function Ye(e){return typeof e=="function"&&typeof e.prototype?.render=="function"}function Ge(e,t,n){let r=R(),s={componentId:r,$children:n,element:null,classInstance:null,$constructor(){let o={...Me(t??{}),children:n},i=m(),u={disposers:[],id:r,contexts:new Map(i?.contexts)};I(u);let l;if(Ye(e)){s.ClassConstructor=e;let f=new e(o);s.classInstance=f,typeof f.onMount=="function"&&T(U,r,()=>{f.onMount?.();}),typeof f.onUnmount=="function"&&T($,r,()=>{f.onUnmount?.();}),l=f.render();}else l=e(o);I(i);let c=Je(l);if(s.element=c,c instanceof DocumentFragment&&c.childNodes.length)for(let f of c.childNodes)_(f,u),ge(f,s);else _(c,u),c instanceof Node&&ge(c,s);return c}};return s}function Z(e,t){let n=t.$constructor();n instanceof Node&&e.appendChild(n),queueMicrotask(()=>{A(t);});}function Je(e){return e instanceof Node?e:N(e)?e.$constructor():typeof e=="string"||typeof e=="number"?document.createTextNode(String(e)):document.createTextNode("")}var ye={className:"class",htmlFor:"for"},be=new Set(["value","defaultValue","checked","selected","indeterminate"]),Ke=new Set(["srcdoc"]),Ze=new Set(["href","src","action","formaction","xlink:href"]),Qe=new Set(["securitypolicyviolation"]),et=new Set(["contenteditable","draggable","spellcheck"]);function O(e){return e!=null&&typeof e=="object"&&typeof e.get=="function"&&!(e instanceof Node)}var je=Symbol("Fragment");function tt(e,t,n){if(e===je){let s=document.createDocumentFragment();return K(s,xe(n)),s}if(typeof e=="function")return Ge(e,t||{},n);typeof e!="string"&&(n=t,t=e,e="div"),t=t||{};let r=document.createElement(e);return t.id&&r.setAttribute("id",t.id),ot(r,t),K(r,xe(n)),r}function J(e,t){t instanceof DocumentFragment?e.replaceChildren(t):e.innerHTML=t??"";}function nt(e){return typeof e!="string"?false:e.replace(/[\p{White_Space}\p{Cc}]+/gu,"").toLowerCase().startsWith("javascript:")}function rt(e,t){if(typeof e!="string")return false;let n=e.toLowerCase();return Ke.has(n)?true:Ze.has(n)&&t!==null&&t!==void 0&&nt(String(t))}function Ee(e){return typeof e!="string"?e:ye[e]?ye[e]:e}function st(e,t){let n=Ee(e),r=typeof n=="string"?n.toLowerCase():String(n).toLowerCase();return et.has(r)&&(t===true||t===false||t==="true"||t==="false")?String(t):t==null||t===false?null:t}function we(e,t,n){let r=st(t,n);if(r===null){e.removeAttribute(t);return}if(rt(t,r)){e.removeAttribute(t),console.warn(`[esmj-dom] Blocked unsafe attribute "${String(t)}" on <${e.tagName.toLowerCase()}>`);return}e.setAttribute(t,r);}function ot(e,t){let n=m();for(let[r,s]of Reflect.ownKeys(t).map(o=>[o,t[o]]))if(r!=="id"){if(r=Ee(r),r==="$ref"){typeof s=="function"?s(e):typeof s=="object"&&s!==null&&(s.current=e);continue}if(r==="$dangerouslySetInnerHTML"){if(O(s)){let o=g(()=>{x(n,()=>{J(e,s.get());});});w(e,o);}else if(typeof s=="function"){let o=g(()=>{x(n,()=>{J(e,s());});});w(e,o);}else J(e,s);continue}if(r==="style"){if(O(s)){let o=g(()=>{x(n,()=>{Object.assign(e.style,s.get());});});w(e,o);}else typeof s=="object"&&s!==null?Object.assign(e.style,s):e.setAttribute("style",s);continue}if(typeof r=="string"&&r.startsWith("on")&&typeof s=="function"){let o=r.slice(2).toLowerCase();if(Qe.has(o)){console.warn(`[esmj-dom] Blocked unsafe event binding "${r}" on <${e.tagName.toLowerCase()}>`);continue}e.addEventListener(o,s);continue}if(O(s)||typeof s=="function"){let o=r,i=g(()=>{x(n,()=>{let u=typeof s=="function"?s():s.get();be.has(o)?e[o]=u??"":we(e,o,u);});});w(e,i);continue}be.has(r)||typeof r=="symbol"?e[r]=s??"":we(e,r,s);}}function xe(e){return e==null?[]:Array.isArray(e)?e.flat(Number.POSITIVE_INFINITY):[e]}function K(e,t){for(let n of t)Re(e,n);}function Re(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"){Se(e,t);return}if(N(t)){Z(e,t);return}if(O(t)){Se(e,()=>t.get());return}if(Array.isArray(t)){K(e,t);return}e.appendChild(document.createTextNode(String(t)));}}function Q(e){let t=null,n=e;return N(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&&L(n),n.remove();}function Se(e,t){let n=m(),r=document.createComment("");e.appendChild(r);let s=[],o=g(()=>{x(n,()=>{let i=t(),{nodes:u,instance:l}=Q(i);ee(s),u.length&&r.after(...u),l&&queueMicrotask(()=>A(l)),s=u;});});w(e,o);}var jt=class{constructor(e){this.props=e;}};function Et(e,t,n,r){let{equals:s=B}=r??{},o=document.createElement("span");o.style.display="contents",o.setAttribute("data-each",R());let i=m(),u=[],l=new Map,c=C(()=>e()),f=g(()=>{let q=c.get(),H=[],te=[],ne=new Set;for(let a=0;a<q.length;a++){let d=q[a],p=t(d,a);if(ne.has(p)){console.error(`Each: duplicate key "${String(p)}" detected; ignoring later item at index ${a}`);continue}ne.add(p),H.push(d),te.push(p);}let z=new Map(u.map(a=>[a.key,a])),M=[];for(let a=0;a<H.length;a++){let d=te[a],p=H[a],S=z.get(d);if(S)l.get(d).set(p),M.push(S),z.delete(d);else {let re=v(p,{equals:s});l.set(d,re);let Oe={...re,set(){}},se={key:d,nodes:[]};x(i,()=>{let Te=n(Oe,a),{nodes:$e,instance:oe}=Q(Te);se.nodes=$e,oe&&queueMicrotask(()=>A(oe));}),M.push(se);}}for(let[a,d]of z)ee(d.nodes),l.delete(a);let V=null;for(let a=M.length-1;a>=0;a--){let d=M[a].nodes;for(let p=d.length-1;p>=0;p--){let S=d[p];(S.parentNode!==o||S.nextSibling!==V)&&o.insertBefore(S,V),V=S;}}u=M;});return w(o,f),o}function Rt(e,t){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("mount: container not found");e instanceof DocumentFragment||(L(e),e.innerHTML=""),N(t)?Z(e,t):t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t)));}function Ot(e){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("unmount: container not found");L(e),e.innerHTML="";}function Tt(e,t){let n=null;if(N(t)?(n=t.$constructor(),queueMicrotask(()=>A(t))):t instanceof Node?n=t:n=document.createTextNode(String(t)),n instanceof HTMLElement){let r=C(()=>!!e()),s=g(()=>{n.style.display=r.get()?"":"none";});w(n,s);}return n}export{k as a,C as b,v as c,Pe as d,Fe as e,Ne as f,B as g,_e as h,Ue as i,Be as j,He as k,ze as l,Ve as m,tt as n,jt as o,Et as p,Rt as q,Ot as r,Tt as s};
@@ -1,3 +1,3 @@
1
- import {c,d}from'./chunk-5V6D56TM.mjs';import {a as a$1,l,k as k$1,r,p,q,m,j}from'./chunk-MWY3XQMH.mjs';import {a}from'./chunk-B6JJAATK.mjs';import {A,x as x$1,w as w$1,L as L$1,l as l$1,K as K$1,J as J$1,s,G,H as H$1}from'./chunk-DFL6LPER.mjs';var V="application/x-mrakomor-blocks+json",$=1;function x(n){return k$1(n)?j(n.properties?.text).length:0}function L(n,t,e){let r$1=n?.properties?.text??"",o=Math.max(0,Math.min(t,r$1.length)),s=Math.max(o,Math.min(e,r$1.length)),{originalLineState:c}=r(n,s),{newLineState:l}=r(c,o);return l}function ot(n,t,e){let r={component:a$1,properties:{text:n?.text??"",inlineStyleRanges:n?.inlineStyleRanges??[],entityRanges:n?.entityRanges??[]},settings:{}};return L(r,t,e)}function M(n,t){let{startIndex:e,endIndex:r,startOffset:o,endOffset:s,listItemIndex:c=-1}=t;if(e<0||r<0||e>r)return [];if(e===r){let i=n[e];if(l(i)&&c>=0){let a=i.properties.items[c];return a?[ot(a,o,s)]:[structuredClone(i)]}return k$1(i)?[L(i,o,s)]:[structuredClone(i)]}let l$1=[];for(let i=e;i<=r;i+=1){let a=n[i];i===e&&k$1(a)?l$1.push(L(a,o,x(a))):i===r&&k$1(a)?l$1.push(L(a,0,s)):l$1.push(structuredClone(a));}return l$1}function st(n,t,e,r$1){let o=structuredClone(n),s=o.properties?.items?.[t];if(!s)return o;let c={properties:{text:s.text??"",inlineStyleRanges:s.inlineStyleRanges??[],entityRanges:s.entityRanges??[]}},{originalLineState:l}=r(c,e),{newLineState:i}=r(c,r$1),{state:a}=p(l,i);return o.properties.items[t]={...s,text:a.properties.text,inlineStyleRanges:a.properties.inlineStyleRanges,entityRanges:a.properties.entityRanges},o}function w(n,t){let{startIndex:e,endIndex:r$1,startOffset:o,endOffset:s,listItemIndex:c=-1}=t,l$1=[...n];if(e===r$1){let u=l$1[e];if(l(u)&&c>=0)return l$1[e]=st(u,c,o,s),{content:l$1,resultIndex:e,cursor:o};if(k$1(u)){let{originalLineState:y}=r(u,o),{newLineState:h}=r(u,s),{state:C,cursor:B}=p(y,h);return l$1[e]=C,{content:l$1,resultIndex:e,cursor:B}}l$1.splice(e,1);let R=Math.min(e,Math.max(0,l$1.length-1));return {content:l$1,resultIndex:R,cursor:0}}if(k$1(l$1[e])&&k$1(l$1[r$1]))return q(l$1,{startIndex:e,endIndex:r$1,startOffset:o,endOffset:s});let i=[];k$1(l$1[e])&&i.push(r(l$1[e],o).originalLineState),k$1(l$1[r$1])&&i.push(r(l$1[r$1],s).newLineState);let a=i,g=0;if(i.length===2){let u=p(i[0],i[1]);a=[u.state],g=u.cursor;}else i.length===1&&(g=x(i[0]));return l$1.splice(e,r$1-e+1,...a),{content:l$1,resultIndex:a.length?e:Math.max(0,e-1),cursor:g}}function K(n,t,e){let r=[...n];r.splice(t+1,0,...e);let o=e[e.length-1];return {content:r,resultIndex:t+e.length,cursor:x(o),listItemIndex:-1}}function it(n,{listIndex:t,itemIndex:e,offset:r$1,blocks:o}){let s=structuredClone(n[t]),c=s.properties?.items?.[e],l=o.length===1&&o[0]?.component===a$1;if(!c||!l)return K(n,t,o);let i={properties:{text:c.text??"",inlineStyleRanges:c.inlineStyleRanges??[],entityRanges:c.entityRanges??[]}},a={properties:{text:o[0].properties?.text??"",inlineStyleRanges:o[0].properties?.inlineStyleRanges??[],entityRanges:o[0].properties?.entityRanges??[]}},{originalLineState:g,newLineState:u}=r(i,r$1),{state:R}=p(g,a),{state:y,cursor:h}=p(R,u);s.properties.items[e]={...c,text:y.properties.text,inlineStyleRanges:y.properties.inlineStyleRanges,entityRanges:y.properties.entityRanges};let C=[...n];return C[t]=s,{content:C,resultIndex:t,cursor:h,listItemIndex:e}}function Q(n,{index:t,offset:e,blocks:r$1,listItemIndex:o=-1}){let s=[...n];if(!r$1?.length)return {content:s,resultIndex:Math.max(0,t),cursor:e??0};if(t<0||t>=s.length){s.push(...r$1);let h=r$1[r$1.length-1];return {content:s,resultIndex:s.length-1,cursor:x(h)}}let c=s[t];if(l(c)&&o>=0)return it(s,{listIndex:t,itemIndex:o,offset:e??0,blocks:r$1});if(!k$1(c))return K(s,t,r$1);let{originalLineState:l$1,newLineState:i}=r(c,e??0),a=r$1[0],g=r$1[r$1.length-1],u=[];if(m(l$1,a)?u.push(p(l$1,a).state):(x(l$1)>0&&u.push(l$1),u.push(a)),r$1.length>1)u.push(...r$1.slice(1,-1)),m(g,i)?u.push(p(g,i).state):(u.push(g),x(i)>0&&u.push(i));else {let h=u[u.length-1];if(m(h,i)){let{state:C,cursor:B}=p(h,i);return u[u.length-1]=C,s.splice(t,1,...u),{content:s,resultIndex:t+u.length-1,cursor:B}}x(i)>0&&u.push(i);}s.splice(t,1,...u);let R=r$1.length>1&&m(g,i),y=t+u.length-1-(R||x(i)===0?0:1);return {content:s,resultIndex:Math.max(t,y),cursor:x(g)}}function H(n){if(!n)return null;try{let t=JSON.parse(n);if(t&&t.v===$&&Array.isArray(t.blocks))return t.blocks}catch{return null}return null}function lt(n){return new DOMParser().parseFromString(n,"text/html").body?.textContent??""}function J(n,t=a$1){return String(n).split(/\r\n|\n|\r/).map(r=>({component:t,properties:{text:r,inlineStyleRanges:[],entityRanges:[]},settings:{}}))}function ct(n){return l(n)?(n.properties.items??[]).map(t=>t.text??"").join(`
2
- `):k$1(n)?j(n.properties?.text):""}function at(n){return n.map(ct).join(`
3
- `)}function ut(n){return {v:$,blocks:n.map(t=>structuredClone(t))}}function k(n,t){let e=ut(t);n.setData(V,JSON.stringify(e)),n.setData("text/plain",at(t));}function W(n,t=a$1){if(!n)return [];let e=H(n.getData(V));if(e)return e;let r=n.getData("text/plain")??"",o=H(r);if(o)return o;if(r)return J(r,t);let s=n.getData("text/html")??"";return s?J(lt(s),t):[]}function X(n){let t=structuredClone(n);return t.componentId=s(),Array.isArray(t.properties?.items)&&(t.properties.items=t.properties.items.map(e=>({...e,componentId:s()}))),t}function N(n){return !!n.target?.closest?.(".mrakomor-content")}function Z(n,t){if(!t)return -1;let e=n._getBlockElementIndex?.(t);if(typeof e=="number"&&e>=0)return e;let r=L$1(t)?.getState?.()?.componentId;return r?n.getContent().findIndex(o=>o.componentId===r):-1}function tt(n){return n?.nodeName==="UL"||n?.nodeName==="OL"}function nt(n){let t=L$1(n)?.element;if(tt(t))return t;let e=K$1(n);return tt(e)?e:e?.querySelector?.("ul, ol")??t??e}function et(n,t){let e=nt(n),r=c(e,t),o=c(e,{startContainer:t.endContainer});return !r||r!==o?-1:d(e,r)}function _(n){let t=A();if(!t)return null;let e=x$1(t.startContainer)??w$1(t);if(!e)return null;let r=Z(n,e);if(r<0)return null;let o=n.getContent();if(t.collapsed){let i=G();return {collapsed:true,startIndex:r,endIndex:r,startOffset:i?.start??0,endOffset:i?.start??0,listItemIndex:l(o[r])?et(e,t):-1}}let s=H$1(t),c=Z(n,s.endBlock),l$1=-1;return r===c&&l(o[r])&&(l$1=et(e,t)),{collapsed:false,startIndex:r,endIndex:c,startOffset:s.startOffset,endOffset:s.endOffset,listItemIndex:l$1}}function pt(n,t,e,r=-1){l$1(()=>{let s=n.getRoot()?.querySelectorAll?.(".mrakomor-content .mrakomor-block-element")?.[t],c=K$1(s);if(r>=0){let l=nt(s);c=l?.querySelector?.(`li[data-item-index="${r}"]`)??l?.querySelectorAll?.("li")?.[r]??c;}c?.isConnected&&J$1(c,e);});}function ft(n,t){return t.map(e=>{try{return n.normalizeComponentState(X(e))}catch{return null}}).filter(Boolean)}function rt(n,t,e,r,o=-1){let s=t.map(c=>{try{return n.normalizeComponentState(c)}catch{return null}}).filter(Boolean);n.setContent(s),pt(n,e,r,o);}function gt(n){let t=n.mrakomor;if(!t||!N(n)||!n.clipboardData)return;let e=_(t);if(!e||e.collapsed)return;let r=M(t.getContent(),e);r.length&&(n.preventDefault(),k(n.clipboardData,r));}function mt(n){let t=n.mrakomor;if(!t||!N(n)||!n.clipboardData)return;let e=_(t);if(!e||e.collapsed)return;let r=t.getContent(),o=M(r,e);if(!o.length)return;n.preventDefault(),k(n.clipboardData,o);let s=w(r,e);rt(t,s.content,s.resultIndex,s.cursor,e.listItemIndex);}function dt(n){let t=n.mrakomor;if(!t||n.target&&!N(n))return;n.preventDefault();let e=ft(t,W(n.clipboardData,a$1));if(!e.length)return;let r=t.getContent(),o=_(t);if(!o)return;let s=r,c=o.startIndex,l=o.startOffset;if(!o.collapsed){let a=w(s,o);s=a.content,c=a.resultIndex,l=a.cursor;}let i=Q(s,{index:c,offset:l,blocks:e,listItemIndex:o.listItemIndex});rt(t,i.content,i.resultIndex,i.cursor,i.listItemIndex??o.listItemIndex);}function xt({root:n,mrakomor:t}){return {registerEvents(){a.COPY="mrakomor:copy",a.CUT="mrakomor:cut",a.PASTE="mrakomor:paste";},registerCommands(e){e.command.copy=(r={})=>{e.emitDomEvent(a.COPY,r);},e.command.cut=(r={})=>{e.emitDomEvent(a.CUT,r);},e.command.paste=(r={})=>{e.emitDomEvent(a.PASTE,r);};},registerListeners(){let{signal:e}=t.listenerAbortController,r=n??t.getRoot();r.addEventListener("copy",o=>t.emitDomEvent(a.COPY,o),{signal:e}),r.addEventListener("cut",o=>t.emitDomEvent(a.CUT,o),{signal:e}),r.addEventListener("paste",o=>t.emitDomEvent(a.PASTE,o),{signal:e}),t.emitter.on(a.COPY,gt),t.emitter.on(a.CUT,mt),t.emitter.on(a.PASTE,dt);}}}export{xt as clipboardPlugin};
1
+ import {c,d}from'./chunk-QWAQBTXR.mjs';import {a as a$1,l,k as k$1,r,p,q,m,j}from'./chunk-JFLCNBDM.mjs';import {a}from'./chunk-B6JJAATK.mjs';import {i,f,e,t,s,r as r$1,a as a$2,o,p as p$1}from'./chunk-XQCH2FNS.mjs';import {m as m$1}from'./chunk-ZDZQ2RVJ.mjs';var J="application/x-mrakomor-blocks+json",X=1;function x(n){return k$1(n)?j(n.properties?.text).length:0}function L(n,t,e){let r$1=n?.properties?.text??"",o=Math.max(0,Math.min(t,r$1.length)),s=Math.max(o,Math.min(e,r$1.length)),{originalLineState:l}=r(n,s),{newLineState:c}=r(l,o);return c}function ot(n,t,e){let r={component:a$1,properties:{text:n?.text??"",inlineStyleRanges:n?.inlineStyleRanges??[],entityRanges:n?.entityRanges??[]},settings:{}};return L(r,t,e)}function T(n,t){let{startIndex:e,endIndex:r,startOffset:o,endOffset:s,listItemIndex:l$1=-1}=t;if(e<0||r<0||e>r)return [];if(e===r){let i=n[e];if(l(i)&&l$1>=0){let a=i.properties.items[l$1];return a?[ot(a,o,s)]:[structuredClone(i)]}return k$1(i)?[L(i,o,s)]:[structuredClone(i)]}let c=[];for(let i=e;i<=r;i+=1){let a=n[i];i===e&&k$1(a)?c.push(L(a,o,x(a))):i===r&&k$1(a)?c.push(L(a,0,s)):c.push(structuredClone(a));}return c}function st(n,t,e,r$1){let o=structuredClone(n),s=o.properties?.items?.[t];if(!s)return o;let l={properties:{text:s.text??"",inlineStyleRanges:s.inlineStyleRanges??[],entityRanges:s.entityRanges??[]}},{originalLineState:c}=r(l,e),{newLineState:i}=r(l,r$1),{state:a}=p(c,i);return o.properties.items[t]={...s,text:a.properties.text,inlineStyleRanges:a.properties.inlineStyleRanges,entityRanges:a.properties.entityRanges},o}function w(n,t){let{startIndex:e,endIndex:r$1,startOffset:o,endOffset:s,listItemIndex:l$1=-1}=t,c=[...n];if(e===r$1){let u=c[e];if(l(u)&&l$1>=0)return c[e]=st(u,l$1,o,s),{content:c,resultIndex:e,cursor:o};if(k$1(u)){let{originalLineState:y}=r(u,o),{newLineState:h}=r(u,s),{state:S,cursor:B}=p(y,h);return c[e]=S,{content:c,resultIndex:e,cursor:B}}c.splice(e,1);let R=Math.min(e,Math.max(0,c.length-1));return {content:c,resultIndex:R,cursor:0}}if(k$1(c[e])&&k$1(c[r$1]))return q(c,{startIndex:e,endIndex:r$1,startOffset:o,endOffset:s});let i=[];k$1(c[e])&&i.push(r(c[e],o).originalLineState),k$1(c[r$1])&&i.push(r(c[r$1],s).newLineState);let a=i,d=0;if(i.length===2){let u=p(i[0],i[1]);a=[u.state],d=u.cursor;}else i.length===1&&(d=x(i[0]));return c.splice(e,r$1-e+1,...a),{content:c,resultIndex:a.length?e:Math.max(0,e-1),cursor:d}}function $(n,t,e){let r=[...n];r.splice(t+1,0,...e);let o=e[e.length-1];return {content:r,resultIndex:t+e.length,cursor:x(o),listItemIndex:-1}}function it(n,{listIndex:t,itemIndex:e,offset:r$1,blocks:o}){let s=structuredClone(n[t]),l=s.properties?.items?.[e],c=o.length===1&&o[0]?.component===a$1;if(!l||!c)return $(n,t,o);let i={properties:{text:l.text??"",inlineStyleRanges:l.inlineStyleRanges??[],entityRanges:l.entityRanges??[]}},a={properties:{text:o[0].properties?.text??"",inlineStyleRanges:o[0].properties?.inlineStyleRanges??[],entityRanges:o[0].properties?.entityRanges??[]}},{originalLineState:d,newLineState:u}=r(i,r$1),{state:R}=p(d,a),{state:y,cursor:h}=p(R,u);s.properties.items[e]={...l,text:y.properties.text,inlineStyleRanges:y.properties.inlineStyleRanges,entityRanges:y.properties.entityRanges};let S=[...n];return S[t]=s,{content:S,resultIndex:t,cursor:h,listItemIndex:e}}function K(n,{index:t,offset:e,blocks:r$1,listItemIndex:o=-1}){let s=[...n];if(!r$1?.length)return {content:s,resultIndex:Math.max(0,t),cursor:e??0};if(t<0||t>=s.length){s.push(...r$1);let h=r$1[r$1.length-1];return {content:s,resultIndex:s.length-1,cursor:x(h)}}let l$1=s[t];if(l(l$1)&&o>=0)return it(s,{listIndex:t,itemIndex:o,offset:e??0,blocks:r$1});if(!k$1(l$1))return $(s,t,r$1);let{originalLineState:c,newLineState:i}=r(l$1,e??0),a=r$1[0],d=r$1[r$1.length-1],u=[];if(m(c,a)?u.push(p(c,a).state):(x(c)>0&&u.push(c),u.push(a)),r$1.length>1)u.push(...r$1.slice(1,-1)),m(d,i)?u.push(p(d,i).state):(u.push(d),x(i)>0&&u.push(i));else {let h=u[u.length-1];if(m(h,i)){let{state:S,cursor:B}=p(h,i);return u[u.length-1]=S,s.splice(t,1,...u),{content:s,resultIndex:t+u.length-1,cursor:B}}x(i)>0&&u.push(i);}s.splice(t,1,...u);let R=r$1.length>1&&m(d,i),y=t+u.length-1-(R||x(i)===0?0:1);return {content:s,resultIndex:Math.max(t,y),cursor:x(d)}}function V(n){if(!n)return null;try{let t=JSON.parse(n);if(t&&t.v===X&&Array.isArray(t.blocks))return t.blocks}catch{return null}return null}function ct(n){return new DOMParser().parseFromString(n,"text/html").body?.textContent??""}function G(n,t=a$1){return String(n).split(/\r\n|\n|\r/).map(r=>({component:t,properties:{text:r,inlineStyleRanges:[],entityRanges:[]},settings:{}}))}function lt(n){return l(n)?(n.properties.items??[]).map(t=>t.text??"").join(`
2
+ `):k$1(n)?j(n.properties?.text):""}function at(n){return n.map(lt).join(`
3
+ `)}function ut(n){return {v:X,blocks:n.map(t=>structuredClone(t))}}function k(n,t){let e=ut(t);n.setData(J,JSON.stringify(e)),n.setData("text/plain",at(t));}function Q(n,t=a$1){if(!n)return [];let e=V(n.getData(J));if(e)return e;let r=n.getData("text/plain")??"",o=V(r);if(o)return o;if(r)return G(r,t);let s=n.getData("text/html")??"";return s?G(ct(s),t):[]}function W(n){let t=structuredClone(n);return t.componentId=a$2(),Array.isArray(t.properties?.items)&&(t.properties.items=t.properties.items.map(e=>({...e,componentId:a$2()}))),t}function N(n){return !!n.target?.closest?.(".mrakomor-content")}function Z(n,t$1){if(!t$1)return -1;let e=n._getBlockElementIndex?.(t$1);if(typeof e=="number"&&e>=0)return e;let r=t(t$1)?.getState?.()?.componentId;return r?n.getContent().findIndex(o=>o.componentId===r):-1}function tt(n){return n?.nodeName==="UL"||n?.nodeName==="OL"}function nt(n){let t$1=t(n)?.element;if(tt(t$1))return t$1;let e=s(n);return tt(e)?e:e?.querySelector?.("ul, ol")??t$1??e}function et(n,t){let e=nt(n),r=c(e,t),o=c(e,{startContainer:t.endContainer});return !r||r!==o?-1:d(e,r)}function _(n){let t=i();if(!t)return null;let e$1=f(t.startContainer)??e(t);if(!e$1)return null;let r=Z(n,e$1);if(r<0)return null;let o$1=n.getContent();if(t.collapsed){let i=o();return {collapsed:true,startIndex:r,endIndex:r,startOffset:i?.start??0,endOffset:i?.start??0,listItemIndex:l(o$1[r])?et(e$1,t):-1}}let s=p$1(t),l$1=Z(n,s.endBlock),c=-1;return r===l$1&&l(o$1[r])&&(c=et(e$1,t)),{collapsed:false,startIndex:r,endIndex:l$1,startOffset:s.startOffset,endOffset:s.endOffset,listItemIndex:c}}function pt(n,t,e,r=-1){m$1(()=>{let s$1=n.getRoot()?.querySelectorAll?.(".mrakomor-content .mrakomor-block-element")?.[t],l=s(s$1);if(r>=0){let c=nt(s$1);l=c?.querySelector?.(`li[data-item-index="${r}"]`)??c?.querySelectorAll?.("li")?.[r]??l;}l?.isConnected&&r$1(l,e);});}function ft(n,t){return t.map(e=>{try{return n.normalizeComponentState(W(e))}catch{return null}}).filter(Boolean)}function rt(n,t,e,r,o=-1){let s=t.map(l=>{try{return n.normalizeComponentState(l)}catch{return null}}).filter(Boolean);n.setContent(s),pt(n,e,r,o);}function dt(n){let t=n.mrakomor;if(!t||!N(n)||!n.clipboardData)return;let e=_(t);if(!e||e.collapsed)return;let r=T(t.getContent(),e);r.length&&(n.preventDefault(),k(n.clipboardData,r));}function gt(n){let t=n.mrakomor;if(!t||!N(n)||!n.clipboardData)return;let e=_(t);if(!e||e.collapsed)return;let r=t.getContent(),o=T(r,e);if(!o.length)return;n.preventDefault(),k(n.clipboardData,o);let s=w(r,e);rt(t,s.content,s.resultIndex,s.cursor,e.listItemIndex);}function mt(n){let t=n.mrakomor;if(!t||n.target&&!N(n))return;n.preventDefault();let e=ft(t,Q(n.clipboardData,a$1));if(!e.length)return;let r=t.getContent(),o=_(t);if(!o)return;let s=r,l=o.startIndex,c=o.startOffset;if(!o.collapsed){let a=w(s,o);s=a.content,l=a.resultIndex,c=a.cursor;}let i=K(s,{index:l,offset:c,blocks:e,listItemIndex:o.listItemIndex});rt(t,i.content,i.resultIndex,i.cursor,i.listItemIndex??o.listItemIndex);}function xt({root:n,mrakomor:t}){return {registerEvents(){a.COPY="mrakomor:copy",a.CUT="mrakomor:cut",a.PASTE="mrakomor:paste";},registerCommands(e){e.command.copy=(r={})=>{e.emitDomEvent(a.COPY,r);},e.command.cut=(r={})=>{e.emitDomEvent(a.CUT,r);},e.command.paste=(r={})=>{e.emitDomEvent(a.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:e}=t.listenerAbortController,r=n??t.getRoot();r.addEventListener("copy",o=>t.emitDomEvent(a.COPY,o),{signal:e}),r.addEventListener("cut",o=>t.emitDomEvent(a.CUT,o),{signal:e}),r.addEventListener("paste",o=>t.emitDomEvent(a.PASTE,o),{signal:e}),t.emitter.on(a.COPY,dt),t.emitter.on(a.CUT,gt),t.emitter.on(a.PASTE,mt);}}}export{xt as clipboardPlugin};
@@ -0,0 +1,2 @@
1
+ import {q,n}from'./chunk-ZDZQ2RVJ.mjs';(function(){if(!(typeof document>"u")){var o="mrakomor/core/plugin/footer/footer.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(r){return r.getAttribute("data-mrakomor-css-path")===o});if(!t){var e=document.createElement("style");e.setAttribute("data-mrakomor-css",""),e.setAttribute("data-mrakomor-css-path",o),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(o){let t=0;for(let e of o){let r=e?.properties?.text;if(typeof r=="string"){t+=r.length;continue}for(let i of e?.properties?.items??[])typeof i?.text=="string"&&(t+=i.text.length);}return t}function s(o){return o.toLocaleString()}function m({mrakomor:o}){let t=o.get();return n("footer",{className:"mrakomor-footer-container",contentEditable:false,"aria-label":"Editor status"},[n("div",{className:"mrakomor-footer-start"},[n("span",{className:"mrakomor-footer-item"},()=>{let e=t._getContentState().length;return `${s(e)} ${e===1?"block":"blocks"}`}),n("span",{className:"mrakomor-footer-item"},()=>{let e=l(t._getContentState());return `${s(e)} ${e===1?"character":"characters"}`})]),n("div",{className:"mrakomor-footer-end"})])}function c(o){let t=o.getRoot();return t?t.classList?.contains("mrakomor-editor")?t:t.querySelector(".mrakomor-editor"):null}function f({mrakomor:o}){let t=null,e=null;return {onMount(){let r=c(o);r&&(t=document.createElement("div"),t.className="mrakomor-footer-plugin-container",r.append(t),e=q(t,n(m,{mrakomor:o})));},onUnmount(){e?.(),t?.remove(),e=null,t=null;}}}export{f as footerPlugin};
package/dist/headline.mjs CHANGED
@@ -1 +1 @@
1
- export{a as HeadlineComponent,b as headlinePlugin}from'./chunk-IAGILV5H.mjs';import'./chunk-4CNZR6XL.mjs';import'./chunk-O7IO4QXV.mjs';import'./chunk-MWY3XQMH.mjs';import'./chunk-DFL6LPER.mjs';
1
+ export{a as HeadlineComponent,b as headlinePlugin}from'./chunk-XVWRPXC2.mjs';import'./chunk-P6HMUYFA.mjs';import'./chunk-WX7ESURF.mjs';import'./chunk-7UI6TZPX.mjs';import'./chunk-P7IKAZYZ.mjs';import'./chunk-JFLCNBDM.mjs';import'./chunk-B6JJAATK.mjs';import'./chunk-XQCH2FNS.mjs';import'./chunk-ZDZQ2RVJ.mjs';
package/dist/help.mjs ADDED
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-4NSVB4MI.mjs';import {n}from'./chunk-ZDZQ2RVJ.mjs';(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/help/help.css",a=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(t){return t.getAttribute("data-mrakomor-css-path")===e});if(!a){var r=document.createElement("style");r.setAttribute("data-mrakomor-css",""),r.setAttribute("data-mrakomor-css-path",e),r.textContent=`.mrakomor-help-plugin-container{display:contents}.mrakomor-help{width:420px;max-width:calc(100vw - 32px);max-height:70vh;overflow:auto;border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:0 18px 40px #0f172a29,0 2px 8px #0f172a14;color:#0f172a;font-size:13px;line-height:1.45}.mrakomor-help__header{padding:16px 18px 12px;border-bottom:1px solid #eef2f6;background:linear-gradient(180deg,#fafbfc,#fff)}.mrakomor-help__title{margin:0;font-size:16px;font-weight:650;letter-spacing:-.01em}.mrakomor-help__subtitle{margin:4px 0 0;font-size:12px;color:#64748b}.mrakomor-help__body{padding:8px 10px 12px}.mrakomor-help__section+.mrakomor-help__section{margin-top:10px}.mrakomor-help__group{margin:0 0 6px;padding:0 8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.mrakomor-help__list{margin:0;padding:0;list-style:none}.mrakomor-help__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 8px;border-radius:8px}.mrakomor-help__item+.mrakomor-help__item{border-top:1px solid #f1f5f9}.mrakomor-help__description{color:#334155}.mrakomor-help__keys{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.mrakomor-help__kbd{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border:1px solid #dbe2ea;border-bottom-width:2px;border-radius:6px;background:#f8fafc;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;white-space:nowrap}
2
+ `,document.head.appendChild(r);}}})();var p={id:"help",label:"Help",keywords:["help","shortcuts"],group:"help",order:1e4,description:"Show keyboard shortcuts and slash commands",handler:e=>{e.mrakomor.command.openHelp?.();}},c=[{id:"block.split",group:"blocks",description:"Split the current block or insert a new line",commands:[],shortcuts:["Enter"]},{id:"block.merge",group:"blocks",description:"Merge with the previous block or outdent a list item",commands:[],shortcuts:["Backspace"]},{id:"overlay.dismiss",group:"navigation",description:"Close the open dialog, menu, or slash palette",commands:[],shortcuts:["Escape"]}];function h(e){return e?e.charAt(0).toUpperCase()+e.slice(1):"General"}function m(e){let a=new Map;for(let r of e){let t=r.group||"general",n=a.get(t)??[];n.push(r),a.set(t,n);}return a}function d(e){let a=m(e),r=[];for(let[t,n$1]of a)r.push(n("section",{className:"mrakomor-help__section","data-group":t},[n("h3",{className:"mrakomor-help__group"},h(t)),n("ul",{className:"mrakomor-help__list"},n$1.map(s=>n("li",{className:"mrakomor-help__item","data-help-id":s.id},[n("div",{className:"mrakomor-help__description"},s.description),n("div",{className:"mrakomor-help__keys"},[...(s.commands??[]).map(l=>n("kbd",{className:"mrakomor-help__kbd"},l)),...(s.shortcuts??[]).map(l=>n("kbd",{className:"mrakomor-help__kbd"},l))])])))]));return n("div",{className:"mrakomor-help",role:"document","aria-label":"Editor help"},[n("header",{className:"mrakomor-help__header"},[n("h2",{className:"mrakomor-help__title"},"Help"),n("p",{className:"mrakomor-help__subtitle"},"Keyboard shortcuts and slash commands")]),n("div",{className:"mrakomor-help__body"},r)])}function u({mrakomor:e}){let a=null;function r(t={}){e.command.openDialog?.({element:t.element??null,children:d(e.register.help.list())},{placement:"center"});}return {registerCommands(t){t.command.openHelp=r;let n=e.register.slashActions;n&&!n.has(p.id)&&n.add(p);for(let s of c)e.register.help.add(s);e.register.help.add({id:p.id,group:p.group,description:p.description,commands:["/help"],shortcuts:[]});},onMount(){let{dispose:t}=b(e,"mrakomor-help-plugin-container",n("button",{type:"button",className:"mrakomor-footer-action mrakomor-help-trigger","aria-label":"Open help",title:"Keyboard shortcuts and commands",onClick:n=>{r({element:n.currentTarget});}},[n("span",{className:"mrakomor-footer-action__icon","aria-hidden":"true"},"?"),"Help"]));a=t;},onUnmount(){a?.(),a=null;}}}export{p as HELP_SLASH_ACTION,d as buildHelpDialogContent,m as groupHelpEntries,u as helpPlugin};
package/dist/index.mjs CHANGED
@@ -1 +1,4 @@
1
- import {a as a$2}from'./chunk-4CNZR6XL.mjs';import {c as c$1,a as a$3,b as b$2}from'./chunk-O7IO4QXV.mjs';import {a as a$1}from'./chunk-4K476NKG.mjs';import {c as c$3,t,d,j,q as q$1,k,p as p$1,y,x}from'./chunk-MWY3XQMH.mjs';import {a,b,c as c$2}from'./chunk-B6JJAATK.mjs';export{a as EVENT}from'./chunk-B6JJAATK.mjs';import {m,b as b$1,r,c,e,l,N,s,L,p,q,E,n,v,a as a$4,A,w as w$1,M as M$1,K as K$1,B,H,J as J$1,h,j as j$1,k as k$1,o,f,t as t$1}from'./chunk-DFL6LPER.mjs';(function(){if(!(typeof document>"u")){var n="mrakomor/core/style/core.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(o){return o.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='".namespace-unknown-unknowncomponent{background-color:#f0f0f0;padding:12px 0;margin-bottom:8px}.mrakomor-editor:focus-visible{outline:none}.mrakomor-tools-container,.mrakomor-content{position:relative}\\n"',document.head.appendChild(e);}}})();var S=class extends n{static get nodeName(){return "span"}static get style(){return "SPAN"}static match(t){return t.nodeName===this.nodeName.toUpperCase()||t.style===this.style}getState(){return {style:this.constructor.style}}render(){return m(this.constructor.nodeName,{},this.props.children)}};var w=class extends S{static get nodeName(){return "b"}static get style(){return "BOLD"}static get LABEL(){return m("b",{},"B")}static match(t){return t.nodeName==="strong"?true:super.match(t)}};var P=class extends S{static get nodeName(){return "i"}static get style(){return "ITALIC"}static get LABEL(){return m("i",{},"I")}};var U=class extends S{static get nodeName(){return "sub"}static get style(){return "SUBSCRIPT"}static get LABEL(){return m("sub",{},"Sub")}};var K=class extends S{static get nodeName(){return "sup"}static get style(){return "SUPERSCRIPT"}static get LABEL(){return m("sup",{},"Sup")}};var z=class extends S{static get nodeName(){return "u"}static get style(){return "UNDERLINE"}static get LABEL(){return m("u",{},"U")}};function Ot(n=[]){return n.map((e,o)=>Gt(e,o)).map((e,o)=>({entry:e,index:o})).sort((e,o)=>{let r=e.entry.order??e.index,s=o.entry.order??o.index;return r!==s?r-s:e.index-o.index}).map(({entry:e})=>e)}function Gt(n,t){let e=typeof n=="function",o=e?n:n.component;if(typeof o!="function")throw new Error("blockComponents entry is missing a component constructor");let r=o.NAMESPACE??"",s=!e&&n.label||o.LABEL||r.split(".").pop()||r,l=Array.isArray(o.KEYWORDS)?o.KEYWORDS:[],a=(!e&&Array.isArray(n.keywords)&&n.keywords.length?n.keywords:null)??(l.length?l:[s,r.split(".").pop()].filter(Boolean)),d=!e&&n.group||o.GROUP||"blocks",u=e?void 0:n.settings,c=u?`:${JSON.stringify(u)}`:"",g=!e&&n.id||`block:${r}${c}`,E=!e&&typeof n.order=="number"?n.order:t;return {component:o,id:g,label:String(s),keywords:a.map(String),group:String(d),order:E,...u?{settings:u}:{}}}function Dt(n){let t=new Map;for(let e of n){let o=e.component?.NAMESPACE;o&&!t.has(o)&&t.set(o,e.component);}return t}var M=class n extends a$2{static get NAMESPACE(){return c$3}static getStateSchema(t){return a$3.object({component:a$3.string().default(n.NAMESPACE),componentId:a$3.string().default(t?.getAttribute("data-componentid")||s()),properties:a$3.object({}).default({}),settings:a$3.object({}).default({})}).default({})}constructor(t){super(t),this.root=null;}getState(){return this.state.peek()}isAtomic(){return true}onMount(){}onUnmount(){}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return m("div",{className:t,contentEditable:false,style:"position: relative;",$ref:this.element,"data-state":()=>JSON.stringify(this.state.get()),"data-componentid":this.state.peek().componentId},[m("div",{$ref:o=>{this.root=o;},style:"display: block;",contentEditable:false}),m("span",{style:"position: absolute; bottom: 0; right: 0; width: 10px; height: 100%; outline: none;",contentEditable:true,[v]:true},document.createTextNode("\xA0"))])}onKeydown(t$1){t$1.key!=="Backspace"&&t$1.key!=="ArrowUp"&&t$1.key!=="ArrowDown"&&t$1.preventDefault(),t(this,t$1);}};var G=class extends M{static get NAMESPACE(){return d}onMount(){let t=m("div",{style:"user-select: none;",contentEditable:false},()=>`Unknown component: ${this.state.get().component}`);p(this.root,t);}onUnmount(){this.root.innerHTML="";}};function Tt({mrakomor:n}){let t=n.get();return h(b$2,t),j$1(()=>{t._onMount();}),k$1(()=>{t._onUnmount();}),m("div",{id:t._id,className:"mrakomor-editor",contentEditable:true},[m("div",{className:"mrakomor-tools-container",style:{width:"100%",height:"100%"}}),m("div",{className:"mrakomor-content",style:{spellcheck:true,outline:"none"}},[o(()=>t._getContentState(),e=>e.componentId,(e,o)=>m(()=>{let r;j$1(()=>{r.getNodeComponent=()=>{let a=K$1(r);return a?f(a):null},t._setBlockElement(r,o);}),k$1(()=>{t._removeBlockElement(r);});let s=t.resolveComponent(e.get().component,e),l=t.wrapBlockElement(s);return m("div",{className:"mrakomor-block-element",[t$1]:true,$ref:a=>{r=a;}},l)}))])])}function J(n,t,e){let o=n._getBlockElementIndex(t);if(o===-1)return false;let r=n.getContent();return r.splice(o,1,n.normalizeComponentState(e)),n._setContentState(r),true}function Rt(n,{customHook:t,applyFn:e,applyArgs:o,resolveRange:r=true}){let{mrakomor:s}=n,{blockElement:l,range:a}=n;r&&(a=a??A(),l=l??w$1(a));let d=L(l),u=d?.[t]?.(n);if(n.defaultPrevented){u&&J(s,l,u);return}let c=d?.getFormattingTarget?.(a);if(!c)return;let g=s._getBlockElementIndex(l);if(g===-1)return;let E=s.getContent(),x=e(structuredClone(E[g]),c,{...o,range:a});x&&J(s,l,x);}function Ft(n){let{mrakomor:t}=n,{blockElement:e,range:o,newLineState:r,originalLineState:s,namespace:l$1,position:a,cursor:d}=n,u,c;if(a||(e?u=t._getBlockElementIndex(e):o&&(u=t._getBlockElementIndex(w$1(o))),u===void 0||u===-1))return;c=u+1;let g=t.getContent();s&&g.splice(u,1,t.normalizeComponentState(s)),r&&(r.component=l$1,g.splice(c,0,t.normalizeComponentState(r))),t._setContentState(g),l(()=>{if(typeof d=="number"&&d===0){let E=K$1(t._getBlockElements()[c]);E?.isConnected&&J$1(E,d);}});}function Ht(n){let{mrakomor:t}=n,{blockElement:e,range:o,blocks:r,cursor:s,cursorBlockIndex:l$1=0}=n;if(!Array.isArray(r)||r.length===0)return;let a=e??(o?w$1(o):null),d=t._getBlockElementIndex(a);if(d===-1)return;let u=t.getContent();u.splice(d,1,...r.map(c=>t.normalizeComponentState(c))),t._setContentState(u),l(()=>{if(typeof s!="number")return;t._syncBlockElementsFromDom();let c=K$1(t._getBlockElements()[d+l$1]);c?.isConnected&&J$1(c,s);});}function $t(n){let{mrakomor:t,blockElement:e,namespace:o}=n,r=t._getBlockElementIndex(e);if(r===-1)return;let s$1=t.getContent()[r];J(t,e,{...s$1,component:o,componentId:s()});}function Yt(n){let{mrakomor:t,blockElement:e,targetIndex:o}=n,r=t._getBlockElementIndex(e);if(r===-1||typeof o!="number")return;let s=o>r?o-1:o;if(s===r)return;let l=[...t._getContentState()],[a]=l.splice(r,1);l.splice(s,0,a),t._setContentState(l);}function Wt(n){let{mrakomor:t,blockElement:e,range:o}=n,r=t._getBlockElementIndex(e);if(r!==-1){let s=t.getContent();s.splice(r,1),t._setContentState(s);}l(()=>{let s=w$1(o);J$1(K$1(s),0);});}function Vt(n){let{mrakomor:t,state:e,blockElement:o}=n,r=t._getBlockElementIndex(o);if(r===-1)return;let s=structuredClone(t.getContent()[r]),l=e?.offset,a=e?.length,d=e?.entity?.type;s.properties.entityRanges=(s.properties.entityRanges??[]).filter(u=>!(u?.offset===l&&u?.length===a&&u?.entity?.type===d)),J(t,o,s),t.command.closeDialog?.();}function jt(n){Rt(n,{customHook:"insertEntityRange",applyFn:y,applyArgs:{state:n.state,namespace:n.namespace}});}function qt(n){Rt(n,{customHook:"insertInlineStyleRange",applyFn:x,applyArgs:{style:n.style}});}function Xt(n){let{mrakomor:t,blockElement:e,previousBlockElement:o}=n,r=t._getBlockElementIndex(o),s=t._getBlockElementIndex(e);if(r===-1||s===-1)return;let l$1=t.getContent(),a=l$1[s],d=l$1[r];if(!k(d)||!k(a))return;let u=p$1(d,a);l$1.splice(s,1),l$1.splice(r,1,t.normalizeComponentState(u.state)),t._setContentState(l$1);let c=()=>{if(typeof u.cursor!="number")return;let g=t._getBlockElements()[r]??o,E=K$1(g);E?.isConnected&&J$1(E,u.cursor);};c(),l(c);}function Jt(n){let{mrakomor:t}=n,e=t.getRoot();if(n.relatedTarget instanceof Node&&e.contains(n.relatedTarget))return;let[r,s]=a$4(()=>[t.getContent(),t._getContentState()]);r.length===s.length&&r.every((a,d)=>a===s[d])||t.setContent(r);}function Qt(n){let t=A();return w$1(t)?.getNodeComponent?.()?.classInstance?.onKeydown?.(n)}function Zt(n){L(n)?.setCursor?.();}function te(n){if(n.key!=="Backspace")return;let{mrakomor:t}=n,e=A();if(!e)return;let o=w$1(e);if(!o)return;let r=M$1(o),s=o?.previousSibling,a=M$1(s)?.childNodes?.[0]?.contentEditable==="true",d=r?.childNodes?.[0]?.contentEditable==="true",u=K$1(o),c=!j(u?.textContent),g=e.collapsed&&(e.startOffset===0||B()===0||c);if(!e.collapsed){let f=H(e);if(f&&f.startBlock!==f.endBlock){let b=t._getBlockElements(),k=b.indexOf(f.startBlock),N=b.indexOf(f.endBlock),A=t.getContent(),ot=A[k],Ut=A[N];if(k>=0&&N>k&&typeof ot?.properties?.text=="string"&&typeof Ut?.properties?.text=="string"){n.preventDefault();let{content:Kt,cursor:ct,resultIndex:zt}=q$1(A,{startIndex:k,endIndex:N,startOffset:f.startOffset,endOffset:f.endOffset});t._setContentState(Kt.map($=>t.normalizeComponentState($))),l(()=>{let $=t._getBlockElements()[zt];$&&typeof ct=="number"&&J$1(K$1($),ct);});}}return}if(!g)return;let E=t._getBlockElementIndex(o),x=s?t._getBlockElementIndex(s):-1,B$1=t.getContent(),I=E>=0?B$1[E]:null,L$1=x>=0?B$1[x]:null,p=s?L(s):null;if(!s||x<0){n.preventDefault();return}if(L$1&&I&&k(I)&&p&&!p.isAtomic?.()){if(c&&!k(L$1)){n.preventDefault(),B$1.splice(E,1),t._setContentState(B$1),Zt(s);return}n.preventDefault(),t.command.mergeBlockElement({blockElement:o,previousBlockElement:s,range:e});return}p?.isAtomic?.()&&(!a&&e.startOffset===0||o?.textContent==="\xA0"&&!d)&&(n.preventDefault(),t.command.removeBlockElement({blockElement:s,range:e}));}function Q(n){return {resolveComponent:t=>t===M.NAMESPACE?M:G,registerCommands(t){t.emitter.on(a.INSERT_BLOCK_ELEMENT,b(Ft)),t.emitter.on(a.REPLACE_BLOCK_ELEMENT,b(Ht)),t.emitter.on(a.TRANSFORM_BLOCK_ELEMENT,b($t)),t.emitter.on(a.MOVE_BLOCK_ELEMENT,b(Yt)),t.emitter.on(a.REMOVE_BLOCK_ELEMENT,b(Wt)),t.emitter.on(a.REMOVE_ENTITY_RANGE,b(Vt)),t.emitter.on(a.INSERT_ENTITY_RANGE,b(jt)),t.emitter.on(a.INSERT_INLINE_STYLE_RANGE,b(qt)),t.emitter.on(a.MERGE_BLOCK_ELEMENT,b(Xt));},registerHandlers(t){t.emitter.on(a.FOCUSOUT,Jt),t.emitter.on(a.KEYDOWN,b(Qt)),t.emitter.on(a.KEYDOWN,b(te));},registerListeners(t){let e=t.getRoot(),{signal:o}=t.listenerAbortController;e.addEventListener("keydown",r=>t.emitDomEvent(a.KEYDOWN,r),{signal:o}),e.addEventListener("beforeinput",r=>t.emitDomEvent(a.BEFORE_INPUT,r),{signal:o}),e.addEventListener("input",r=>t.emitDomEvent(a.INPUT,r),{signal:o}),e.addEventListener("focusin",r=>t.emitDomEvent(a.FOCUSIN,r),{signal:o}),e.addEventListener("focusout",r=>t.emitDomEvent(a.FOCUSOUT,r),{signal:o}),e.addEventListener("click",r=>t.emitDomEvent(a.CLICK,r),{signal:o}),document.addEventListener("selectionchange",r=>t.emitDomEvent(a.SELECTION_CHANGE,r),{signal:o});}}}(function(){if(!(typeof document>"u")){var n="mrakomor/core/plugin/dialog/Dialog.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(o){return o.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='".dialog[open]{background-color:#fff;border:1px solid black;border-radius:8px;box-shadow:0 0 5px #0000001a;padding:12px;display:flex;flex-flow:row wrap;justify-content:space-between}.dialog[open] .dialog-controls{text-align:right;width:100%}.dialog[open] .dialog-button-close{background-color:#f0f0f0;border:1px solid black;border-radius:4px;color:#000;cursor:pointer;display:inline-block;font-size:14px;margin-right:1px;padding:4px 8px;text-align:center}.dialog[open] .dialog-container{width:100%}\\n"',document.head.appendChild(e);}}})();var wt="mrakomor.dialog.Dialog";function Z({open:n,positionX:t,positionY:e,block:o,dialogRef:r$1}){let s=b$1(()=>({position:"absolute",zIndex:"9000",top:`${e.get()}px`,left:`${t.get()}px`,background:"#fff",border:"1px solid #ccc",borderRadius:"4px",padding:"8px 10px",boxShadow:"0 2px 8px rgba(0,0,0,.15)",minWidth:"220px"}));return r(()=>n.get(),m("div",{className:"mrakomor-dialog-container",contenteditable:false,style:s,$ref:r$1},()=>o.get()))}Z.NAMESPACE=wt;function tt({mrakomor:n}){let t=null,e$1=c(false),o=c(false),r=c(0),s=c(0),l$1=c(null),a$2=e(null),d=e(null);function u(){o.set(false),E(),a$2.set(null),l(()=>{e$1.set(false);});}return {resolveComponent(c){if(c===wt)return Z},registerEvents(){a.OPEN_DIALOG="mrakomor:open-dialog",a.CLOSE_DIALOG="mrakomor:close-dialog";},registerCommands(c){c.command.openDialog=(g,E)=>{c.emit(a.OPEN_DIALOG,{...g,options:E});},c.command.closeDialog=()=>{c.emit(a.CLOSE_DIALOG);};},registerHandlers(){n.emitter.on(a.OPEN_DIALOG,({children:c,element:g})=>{l$1.set(c??m("div",{},"Empty dialog")),o.set(true),a$2.set(g),l(()=>{let{x:E,y:x}=N(n.getRoot(),g??{left:0,top:0},d);r.set(E),s.set(x),e$1.set(true);});}),n.emitter.on(a.CLOSE_DIALOG,u),n.emitter.on(a.KEYDOWN,c=>{c.key==="Escape"&&o.peek()===true&&n.command.closeDialog();}),n.emitter.on(a.CLICK,c=>{o.peek()===true&&e$1.peek()===true&&d&&!d.contains(c.target)&&a$2&&!a$2.contains(c.target)&&n.command.closeDialog();});},onMount(){let{dispose:c}=a$1(n,"mrakomor-dialog-plugin-container",m(Z,{open:o,positionX:r,positionY:s,block:l$1,dialogRef:d}));t=c;},onUnmount(){t?.(),t=null;}}}(function(){if(!(typeof document>"u")){var n="mrakomor/core/plugin/menu/Menu.css",t=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(o){return o.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='".mrakomor-menu{position:absolute;z-index:9300;display:flex;flex-direction:column;gap:2px;min-width:160px;max-height:240px;overflow-y:auto;background:#1a1a1a;border-radius:6px;padding:4px;box-shadow:0 3px 10px #00000040;pointer-events:all}.mrakomor-menu__item{display:flex;align-items:center;width:100%;padding:6px 10px;border:none;border-radius:4px;background:transparent;color:#fff;cursor:pointer;font-size:13px;font-weight:600;text-align:left;transition:background .1s}.mrakomor-menu__item:hover,.mrakomor-menu__item--active{background:#ffffff26}\\n"',document.head.appendChild(e);}}})();function ee(n,t=-1){if(!n.length)return null;let e=n.map((o,r)=>m("button",{type:"button",role:"option",id:`mrakomor-menu-option-${o.id}`,className:["mrakomor-menu__item",r===t?"mrakomor-menu__item--active":""].filter(Boolean).join(" "),title:o.label,"data-id":o.id,"aria-selected":r===t?"true":"false",onMouseDown:s=>{s.preventDefault();}},o.label));return m("span",{style:"display: contents"},e)}function lt({open:n,positionX:t,positionY:e,entries:o,highlightIndex:r$1,ariaLabel:s,menuRef:l}){let a=b$1(()=>({left:`${t.get()}px`,top:`${e.get()}px`}));return r(()=>n.get(),m("div",{className:"mrakomor-menu",role:"listbox","aria-label":()=>s.get(),contenteditable:false,style:a,$ref:l},()=>ee(o.get(),r$1.get())))}function et({mrakomor:n}){let t=null,e$1=null,o=e(null),r=null,s=c(false),l$1=c(false),a$2=c(0),d=c(0),u=c([]),c$1=c(-1),g=c("Menu");function E(p){l(()=>{let f=n.getRoot();if(!f||!p)return;let b=o?.offsetHeight??200,k=f.getBoundingClientRect();if(p.top-k.top>b+8){let{x:A,y:ot}=N(f,p,{offsetHeight:b},4);a$2.set(A),d.set(ot);}else a$2.set(p.left-k.left),d.set(p.bottom-k.top+4);s.set(true);});}function x(){l$1.set(false),r=null,c$1.set(-1),u.set([]),l(()=>{s.set(false);});}function B(p){!p||!r||r(p);}function I(p){if(l$1.peek()!==true)return;let f=p.target?.closest?.(".mrakomor-menu__item");if(!f||!e$1?.contains(f))return;p.preventDefault(),p.stopPropagation();let b=f.getAttribute("data-id"),k=u.peek().find(N=>N.id===b);k&&B(k);}function L(p={}){let{entries:f=[],anchorRect:b,highlightIndex:k=-1,ariaLabel:N="Menu",onSelect:A=null}=p;u.set(f),c$1.set(k),g.set(N),A!==void 0&&(r=A),l$1.set(true),b?E(b):s.set(true);}return {registerEvents(){a.OPEN_MENU="mrakomor:open-menu",a.CLOSE_MENU="mrakomor:close-menu",a.UPDATE_MENU="mrakomor:update-menu";},registerCommands(p){p.command.openMenu=f=>{p.emit(a.OPEN_MENU,f);},p.command.updateMenu=f=>{p.emit(a.UPDATE_MENU,f);},p.command.closeMenu=()=>{p.emit(a.CLOSE_MENU);};},registerHandlers(){n.emitter.on(a.OPEN_MENU,L),n.emitter.on(a.UPDATE_MENU,L),n.emitter.on(a.CLOSE_MENU,x),n.emitter.on(a.CLICK,p=>{let f=o?.current??o;l$1.peek()===true&&s.peek()===true&&f&&typeof f.contains=="function"&&!f.contains(p.target)&&x();}),n.emitter.on(a.KEYDOWN,p=>{p.key==="Escape"&&l$1.peek()===true&&x();});},onMount(){let{container:p,dispose:f}=a$1(n,"mrakomor-menu-plugin-container",m(lt,{open:l$1,positionX:a$2,positionY:d,entries:u,highlightIndex:c$1,ariaLabel:g,menuRef:o}));e$1=p,e$1?.addEventListener("click",I),t=f;},onUnmount(){e$1?.removeEventListener("click",I),t?.(),t=null,e$1=null,o.current=null,r=null;}}}function Pt(n){return [...n.filter(t=>t!==tt&&t!==et&&t!==Q),tt,et,Q]}function ne(n){c$1().parse(n);let t={debug:false,content:[],plugins:[],blockComponents:[],inlineStyles:[w,P,z,U,K],entityRanges:[],tooltip:{}},e={...t,...n,plugins:Pt(n.plugins??t.plugins)},o=new nt(e);return o._init(),o}var nt=class{#r=s();#o;#t=[];#n=[];#e;#s=false;listenerAbortController=new AbortController;#i=c([],{debug:"content"});#l=[];command;emitter;#c=new Map;constructor(t){let{root:e,id:o,content:r}=t;this.#r=o||this.#r,this.#o=e,this.#l=r,this.#n=[],this.#e={...t,plugins:Pt(t.plugins??[])};let{emitter:s,command:l}=c$2({mrakomor:this});this.command=l,this.emitter=s;}_init(){this.#a(),this.#i=c(this._normalizeContentState(this.#l),{debug:"content"});}#a(){this.#t=this.#e.plugins.map(t=>t?.({config:this.#e,root:this.#o,mrakomor:this}))??[],this.#e=this.#t.reduce((t,e)=>e?.resolveConfig?.(t)??t,this.#e),this.#e={...this.#e,blockComponents:Ot(this.#e.blockComponents??[])},this.#c=Dt(this.#e.blockComponents),this.#t.forEach(t=>{t?.registerEvents?.(this);}),this.#t.forEach(t=>{t?.registerCommands?.(this);}),this.#t.forEach(t=>{this.emitter.on(a.KEYDOWN,e=>t?.onKeyDown?.(e));}),this.#t.forEach(t=>{t?.registerHandlers?.(this);}),this.#t.forEach(t=>{t?.registerListeners?.(this);});}emit(t,e={}){return this.emitter.emit(t,{...e,mrakomor:this})}on(t,e){return this.emitter.on(t,e)}onChangeContent(t){return this.on(a.CONTENT_CHANGE,t)}emitDomEvent(t,e){let{clipboardData:o,metaKey:r,altKey:s,code:l,ctrlKey:a,key:d,isComposing:u,repeat:c,button:g,shiftKey:E,which:x,detail:B,isTrusted:I,target:L,relatedTarget:p,data:f,inputType:b}=e??{},{defaultPrevented:k}=this.emit(t,{clipboardData:o,metaKey:r,altKey:s,code:l,ctrlKey:a,key:d,isComposing:u,repeat:c,button:g,shiftKey:E,which:x,detail:B,isTrusted:I,target:L,relatedTarget:p,data:f,inputType:b});return k&&e?.preventDefault?.(),k}getConfig(){return this.#e}wrapBlockElement(t){for(let e of this.#t){let o=e.wrapBlockElement?.(t);if(o)return o}return t}getRoot(){return this.#o}get _id(){return this.#r}getContent(){return this.#n.map(e=>L(e)?.getState())}setContent(t=[]){this._setContentState(this._normalizeContentState(t));}_syncBlockElementsFromDom(){let t=this.#o?.querySelector?.(".mrakomor-content");t&&(this.#n=[...t.querySelectorAll(".mrakomor-block-element")]);}_getBlockElements(){return this.#n}_getContentState(){return this.#i.get()}_setContentState(t=[]){this.#i.set(t),this.emit(a.CONTENT_CHANGE,{content:t}),l(()=>{this._syncBlockElementsFromDom();});}_normalizeContentState(t=[]){return t.map(e=>structuredClone(this.normalizeComponentState(e)))??[]}_setBlockElement(t,e=this.#n.length){this.#n.splice(e,0,t);}_removeBlockElement(t){this.#n=this.#n.filter(e=>e!==t);}_getBlockElementIndex(t){return this.#n.indexOf(t)}mount(){let t=p(this.#o,m(Tt,{mrakomor:this}));return this.#s=true,t}unmount(){this.#s&&(this.#s=false,q(this.#o));}_onUnmount(){this.listenerAbortController.abort(),this.#t.forEach(t=>{t?.onUnmount?.(this);}),this.emitter.removeAllListeners();}_onMount(){this.#t.forEach(t=>{t?.onMount?.(this);}),l(()=>{this._syncBlockElementsFromDom();});}resolveComponent(t,e){let o=this.resolveComponentConstructor(t);return o?m(o,{state:e}):m(G,{state:e})}resolveComponentConstructor(t){let e=this.#c.get(t);if(!e){for(let o of this.#t)if(e=o?.resolveComponent?.(t),e)break}return e}normalizeComponentState(t){let e="component"in t?t.component:t.entity.type;return this.resolveComponentConstructor(e)?.getStateSchema()?.parse(t)}};export{w as Bold,Z as Dialog,P as Italic,lt as Menu,nt as Mrakomor,U as Subscript,K as Superscript,z as Underline,ne as createMrakomor,Q as defaultMrakomorPlugin,tt as dialogPlugin,et as menuPlugin};
1
+ import {a as a$6,c as c$3}from'./chunk-WQWE5UCN.mjs';import {a as a$4}from'./chunk-P6HMUYFA.mjs';import {a as a$7}from'./chunk-7UI6TZPX.mjs';import {a}from'./chunk-P7IKAZYZ.mjs';import {a as a$2}from'./chunk-4NSVB4MI.mjs';import {c as c$2,t as t$1,d as d$1,j,q as q$1,k,p as p$1,y,x}from'./chunk-JFLCNBDM.mjs';import {a as a$1,b,c as c$1}from'./chunk-B6JJAATK.mjs';export{a as EVENT}from'./chunk-B6JJAATK.mjs';import {w as w$1,v,a as a$3,t,m as m$1,d,i,e as e$1,u,s as s$1,j as j$1,p,r as r$1,b as b$2}from'./chunk-XQCH2FNS.mjs';import {n,b as b$1,s,c,e,m,q,r,o,a as a$5,i as i$1,k as k$1,l,p as p$2,f,g}from'./chunk-ZDZQ2RVJ.mjs';(function(){if(!(typeof document>"u")){var e="mrakomor/core/style/core.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=`.namespace-unknown-unknowncomponent{background-color:#f0f0f0;padding:12px 0;margin-bottom:8px}.mrakomor-editor:focus-visible{outline:none}.mrakomor-editor{display:flex;flex-direction:column;min-height:0}.mrakomor-editor-surface{position:relative;flex:1 1 auto;min-height:0}.mrakomor-tools-container{position:absolute;inset:0;pointer-events:none;z-index:4}.mrakomor-content{position:relative;min-height:0}.mrakomor-content:focus-visible{outline:none}
2
+ `,document.head.appendChild(n);}}})();var _=class extends o{static get nodeName(){return "span"}static get style(){return "SPAN"}static match(t){return t.nodeName===this.nodeName.toUpperCase()||t.style===this.style}getState(){return {style:this.constructor.style}}render(){return n(this.constructor.nodeName,{},this.props.children)}};var w=class extends _{static get nodeName(){return "b"}static get style(){return "BOLD"}static get LABEL(){return n("b",{},"B")}static match(t){return t.nodeName==="strong"?true:super.match(t)}};var P=class extends _{static get nodeName(){return "i"}static get style(){return "ITALIC"}static get LABEL(){return n("i",{},"I")}};var U=class extends _{static get nodeName(){return "sub"}static get style(){return "SUBSCRIPT"}static get LABEL(){return n("sub",{},"Sub")}};var K=class extends _{static get nodeName(){return "sup"}static get style(){return "SUPERSCRIPT"}static get LABEL(){return n("sup",{},"Sup")}};var z=class extends _{static get nodeName(){return "u"}static get style(){return "UNDERLINE"}static get LABEL(){return n("u",{},"U")}};var Wt=a.object({component:a.function(),id:a.string(),label:a.string(),keywords:a.array(a.string()),group:a.string(),order:a.number().default(({context:e})=>e?.index??0),settings:a.any().optional()});function qt(e,t){let n=`block:${e}`;return t?.style==="UNORDERED"?`${n}:ul`:t?.style==="ORDERED"?`${n}:ol`:n}function Pt(e,t=0){let n=typeof e=="function",o=n?e:e?.component,r=n?{}:e,s=o.NAMESPACE??"",i=s.split(".").pop()||s,m=r.label||o.LABEL||i||s,c=Array.isArray(o.KEYWORDS)?o.KEYWORDS:[],u=r.keywords?.length?r.keywords.map(String):c.length?c.map(String):[m,i].filter(Boolean).map(String),f=r.settings;return Wt.parse({component:o,id:r.id||qt(s,f),label:String(m),keywords:u,group:String(r.group||o.GROUP||"blocks"),...typeof r.order=="number"?{order:r.order}:{},...f?{settings:f}:{}},{context:{index:t}})}var Q=class e extends a$6{#o=null;constructor(t){super(t),this.subscribe(()=>{this.#o=null;});}normalize(t,n){if(t==null)return null;try{return Pt(t,n)}catch{return null}}getByNamespace(t){return this.#n().get(t)}#n(){return this.#o??=e.buildNamespaceMap(this.list()),this.#o}static buildNamespaceMap(t){let n=new Map;for(let o of t){let r=o.component?.NAMESPACE;r&&!n.has(r)&&n.set(r,o.component);}return n}};var R=class e extends a$4{static get NAMESPACE(){return c$2}static getStateSchema(t){return a.object({component:a.string().default(e.NAMESPACE),componentId:a.string().default(t?.getAttribute("data-componentid")||a$3()),properties:a.object({}).default({}),settings:a.object({}).default({})}).default({})}constructor(t){super(t),this.root=null;}getState(){return this.state.peek()}isAtomic(){return true}onMount(){}onUnmount(){}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return n("div",{className:t,contentEditable:false,style:"position: relative;",$ref:o=>{this.element=o;},"data-state":()=>JSON.stringify(this.state.get()),"data-componentid":this.state.peek().componentId},[n("div",{$ref:o=>{this.root=o;},style:"display: block;",contentEditable:false}),n("span",{style:"position: absolute; bottom: 0; right: 0; width: 10px; height: 100%; outline: none;",contentEditable:true,[d]:true},document.createTextNode("\xA0"))])}onKeydown(t){t.key!=="Backspace"&&t.key!=="ArrowUp"&&t.key!=="ArrowDown"&&t.preventDefault(),t$1(this,t);}};var G=class extends R{static get NAMESPACE(){return d$1}onMount(){let t=n("div",{style:"user-select: none;",contentEditable:false},()=>`Unknown component: ${this.state.get().component}`);q(this.root,t);}onUnmount(){this.root.innerHTML="";}};function Vt(e,t$1){for(let n of e._getBlockElements()){let o=t(n);if(o?.state?.peek()?.componentId===t$1)return o.isStale?.()??false}return false}function Ut(e){return (t,n)=>{if(!g(t,n))return false;let o=n?.componentId??t?.componentId;return !(o&&Vt(e,o))}}function Kt({mrakomor:e}){let t=e.get(),n$1=Ut(t);return i$1(a$7,t),k$1(()=>{t._onMount();}),l(()=>{t._onUnmount();}),n("div",{id:t._id,className:"mrakomor-editor"},[n("div",{className:"mrakomor-editor-surface"},[n("div",{className:"mrakomor-tools-container"}),n("div",{className:"mrakomor-content",contentEditable:true,style:{spellcheck:true,outline:"none"}},[p$2(()=>t._getContentState(),o=>o.componentId,(o,r)=>n(()=>{let s;k$1(()=>{s.getNodeComponent=()=>{let c=s$1(s);return c?f(c):null},t._setBlockElement(s,r);}),l(()=>{t._removeBlockElement(s);});let i=t.resolveComponent(o.get().component,o),m=t.wrapBlockElement(i);return n("div",{className:"mrakomor-block-element",[b$2]:true,$ref:c=>{s=c;}},m)}),{equals:n$1})])])])}function Z(e,t,n){let o=e._getBlockElementIndex(t);if(o===-1)return false;let r=e.getContent();return r.splice(o,1,e.normalizeComponentState(n)),e._setContentState(r),true}function zt(e,{customHook:t$1,applyFn:n,applyArgs:o,resolveRange:r=true}){let{mrakomor:s}=e,{blockElement:i$1,range:m}=e;r&&(m=m??i(),i$1=i$1??e$1(m));let c=t(i$1),u=c?.[t$1]?.(e);if(e.defaultPrevented){u&&Z(s,i$1,u);return}let f=c?.getFormattingTarget?.(m);if(!f)return;let g=s._getBlockElementIndex(i$1);if(g===-1)return;let h=s.getContent(),k=n(structuredClone(h[g]),f,{...o,range:m});k&&Z(s,i$1,k);}function Xt(e){let{mrakomor:t}=e,{blockElement:n,range:o,newLineState:r,originalLineState:s,namespace:i,position:m$1,cursor:c}=e,u,f;if(m$1||(n?u=t._getBlockElementIndex(n):o&&(u=t._getBlockElementIndex(e$1(o))),u===void 0||u===-1))return;f=u+1;let g=t.getContent();s&&g.splice(u,1,t.normalizeComponentState(s)),r&&(r.component=i,g.splice(f,0,t.normalizeComponentState(r))),t._setContentState(g),m(()=>{if(typeof c=="number"&&c===0){let h=s$1(t._getBlockElements()[f]);h?.isConnected&&r$1(h,c);}});}function Jt(e){let{mrakomor:t}=e,{blockElement:n,range:o,blocks:r,cursor:s,cursorBlockIndex:i=0}=e;if(!Array.isArray(r)||r.length===0)return;let m$1=n??(o?e$1(o):null),c=t._getBlockElementIndex(m$1);if(c===-1)return;let u=[...t._getContentState()];u.splice(c,1,...r.map(f=>t.normalizeComponentState(f))),t._setContentState(u),m(()=>{if(typeof s!="number")return;t._syncBlockElementsFromDom();let f=s$1(t._getBlockElements()[c+i]);f?.isConnected&&r$1(f,s);});}function Qt(e){let{mrakomor:t,blockElement:n,namespace:o}=e,r=t._getBlockElementIndex(n);if(r===-1)return;let s=t.getContent()[r];Z(t,n,{...s,component:o,componentId:a$3()});}function Zt(e){let{mrakomor:t,blockElement:n,targetIndex:o}=e,r=t._getBlockElementIndex(n);if(r===-1||typeof o!="number")return;let s=o>r?o-1:o;if(s===r)return;let i=[...t._getContentState()],[m]=i.splice(r,1);i.splice(s,0,m),t._setContentState(i);}function te(e){let{mrakomor:t,blockElement:n,range:o}=e,r=t._getBlockElementIndex(n);if(r!==-1){let s=t.getContent();s.splice(r,1),t._setContentState(s);}m(()=>{let s=e$1(o);r$1(s$1(s),0);});}function ee(e){let{mrakomor:t,state:n,blockElement:o}=e,r=t._getBlockElementIndex(o);if(r===-1)return;let s=structuredClone(t.getContent()[r]),i=n?.offset,m=n?.length,c=n?.entity?.type;s.properties.entityRanges=(s.properties.entityRanges??[]).filter(u=>!(u?.offset===i&&u?.length===m&&u?.entity?.type===c)),Z(t,o,s),t.command.closeDialog?.();}function ne(e){zt(e,{customHook:"insertEntityRange",applyFn:y,applyArgs:{state:e.state,namespace:e.namespace}});}function oe(e){zt(e,{customHook:"insertInlineStyleRange",applyFn:x,applyArgs:{style:e.style}});}function re(e){let{mrakomor:t,blockElement:n,previousBlockElement:o}=e,r=t._getBlockElementIndex(o),s=t._getBlockElementIndex(n);if(r===-1||s===-1)return;let i=t.getContent(),m$1=i[s],c=i[r];if(!k(c)||!k(m$1))return;let u=p$1(c,m$1);i.splice(s,1),i.splice(r,1,t.normalizeComponentState(u.state)),t._setContentState(i);let f=()=>{if(typeof u.cursor!="number")return;let g=t._getBlockElements()[r]??o,h=s$1(g);h?.isConnected&&r$1(h,u.cursor);};f(),m(f);}function se(e){let{mrakomor:t}=e,n=t.getRoot();if(e.relatedTarget instanceof Node&&n.contains(e.relatedTarget))return;let[r,s]=a$5(()=>[t.getContent(),t._getContentState()]);r.length===s.length&&r.every((m,c)=>m===s[c])||t.setContent(r);}function ie(e){let t=i();return e$1(t)?.getNodeComponent?.()?.classInstance?.onKeydown?.(e)}function le(e){t(e)?.setCursor?.();}function ce(e){if(e.key!=="Backspace")return;let{mrakomor:t$1}=e,n=i();if(!n)return;let o=e$1(n);if(!o)return;let r=u(o),s=o?.previousSibling,m$1=u(s)?.childNodes?.[0]?.contentEditable==="true",c=r?.childNodes?.[0]?.contentEditable==="true",u$1=s$1(o),f=!j(u$1?.textContent),g=n.collapsed&&(n.startOffset===0||j$1()===0||f);if(!n.collapsed){let E=p(n);if(E&&E.startBlock!==E.endBlock){let S=t$1._getBlockElements(),b=S.indexOf(E.startBlock),L=S.indexOf(E.endBlock),M=t$1.getContent(),it=M[b],$t=M[L];if(b>=0&&L>b&&typeof it?.properties?.text=="string"&&typeof $t?.properties?.text=="string"){e.preventDefault();let{content:Yt,cursor:ut,resultIndex:jt}=q$1(M,{startIndex:b,endIndex:L,startOffset:E.startOffset,endOffset:E.endOffset});t$1._setContentState(Yt.map(j=>t$1.normalizeComponentState(j))),m(()=>{let j=t$1._getBlockElements()[jt];j&&typeof ut=="number"&&r$1(s$1(j),ut);});}}return}if(!g)return;let h=t$1._getBlockElementIndex(o),k$1=s?t$1._getBlockElementIndex(s):-1,x=t$1.getContent(),B=h>=0?x[h]:null,A=k$1>=0?x[k$1]:null,d=s?t(s):null;if(!s||k$1<0){e.preventDefault();return}if(A&&B&&k(B)&&d&&!d.isAtomic?.()){if(f&&!k(A)){e.preventDefault(),x.splice(h,1),t$1._setContentState(x),le(s);return}e.preventDefault(),t$1.command.mergeBlockElement({blockElement:o,previousBlockElement:s,range:n});return}d?.isAtomic?.()&&(!m$1&&n.startOffset===0||o?.textContent==="\xA0"&&!c)&&(e.preventDefault(),t$1.command.removeBlockElement({blockElement:s,range:n}));}function tt(e){return {resolveComponent:t=>t===R.NAMESPACE?R:G,registerCommands(t){t.emitter.on(a$1.INSERT_BLOCK_ELEMENT,b(Xt)),t.emitter.on(a$1.REPLACE_BLOCK_ELEMENT,b(Jt)),t.emitter.on(a$1.TRANSFORM_BLOCK_ELEMENT,b(Qt)),t.emitter.on(a$1.MOVE_BLOCK_ELEMENT,b(Zt)),t.emitter.on(a$1.REMOVE_BLOCK_ELEMENT,b(te)),t.emitter.on(a$1.REMOVE_ENTITY_RANGE,b(ee)),t.emitter.on(a$1.INSERT_ENTITY_RANGE,b(ne)),t.emitter.on(a$1.INSERT_INLINE_STYLE_RANGE,b(oe)),t.emitter.on(a$1.MERGE_BLOCK_ELEMENT,b(re));},registerHandlers(t){t.emitter.on(a$1.FOCUSOUT,se),t.emitter.on(a$1.KEYDOWN,b(ie)),t.emitter.on(a$1.KEYDOWN,b(ce));},registerListeners(t){let n=t.getRoot(),{signal:o}=t.listenerAbortController;n.addEventListener("keydown",r=>t.emitDomEvent(a$1.KEYDOWN,r),{signal:o}),n.addEventListener("beforeinput",r=>t.emitDomEvent(a$1.BEFORE_INPUT,r),{signal:o}),n.addEventListener("input",r=>t.emitDomEvent(a$1.INPUT,r),{signal:o}),n.addEventListener("focusin",r=>t.emitDomEvent(a$1.FOCUSIN,r),{signal:o}),n.addEventListener("focusout",r=>t.emitDomEvent(a$1.FOCUSOUT,r),{signal:o}),n.addEventListener("click",r=>t.emitDomEvent(a$1.CLICK,r),{signal:o}),document.addEventListener("selectionchange",r=>t.emitDomEvent(a$1.SELECTION_CHANGE,r),{signal:o});}}}(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/dialog/Dialog.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-dialog-container,.mrakomor-dialog-backdrop{pointer-events:all}.dialog[open]{background-color:#fff;border:1px solid black;border-radius:8px;box-shadow:0 0 5px #0000001a;padding:12px;display:flex;flex-flow:row wrap;justify-content:space-between}.dialog[open] .dialog-controls{text-align:right;width:100%}.dialog[open] .dialog-button-close{background-color:#f0f0f0;border:1px solid black;border-radius:4px;color:#000;cursor:pointer;display:inline-block;font-size:14px;margin-right:1px;padding:4px 8px;text-align:center}.dialog[open] .dialog-container{width:100%}
3
+ `,document.head.appendChild(n);}}})();var Gt="mrakomor.dialog.Dialog";function et({open:e,placement:t,positionX:n$1,positionY:o,block:r,dialogRef:s$1}){let i=b$1(()=>{let c=t.get()==="center";return {position:"absolute",zIndex:c?"9100":"9000",top:`${o.get()}px`,left:`${n$1.get()}px`,...c?{padding:0,background:"transparent",border:"none",boxShadow:"none",minWidth:0}:{background:"#fff",border:"1px solid #ccc",borderRadius:"4px",padding:"8px 10px",boxShadow:"0 2px 8px rgba(0,0,0,.15)",minWidth:"220px"}}}),m=b$1(()=>({position:"absolute",inset:"0",zIndex:"9050",background:"rgba(15, 23, 42, 0.28)",pointerEvents:"all"}));return n("span",{style:{display:"contents"}},[s(()=>e.get()&&t.get()==="center",n("div",{className:"mrakomor-dialog-backdrop",contentEditable:false,style:m})),s(()=>e.get(),n("div",{className:"mrakomor-dialog-container",contenteditable:false,style:i,$ref:s$1},()=>r.get()))])}et.NAMESPACE=Gt;function nt({mrakomor:e$1}){let t=null,n$1=c(false),o=c(false),r=c("anchor"),s=c(0),i=c(0),m$2=c(null),c$1=e(null),u=e(null);function f(){o.set(false),r.set("anchor"),m$1(),c$1.set(null),m(()=>{n$1.set(false);});}return {resolveComponent(g){if(g===Gt)return et},registerEvents(){a$1.OPEN_DIALOG="mrakomor:open-dialog",a$1.CLOSE_DIALOG="mrakomor:close-dialog";},registerCommands(g){g.command.openDialog=(h,k)=>{g.emit(a$1.OPEN_DIALOG,{...h,options:k});},g.command.closeDialog=()=>{g.emit(a$1.CLOSE_DIALOG);};},registerHandlers(){e$1.emitter.on(a$1.OPEN_DIALOG,({children:g,element:h,options:k={}})=>{m$2.set(g??n("div",{},"Empty dialog")),o.set(true),c$1.set(h??null),r.set(k.placement??"anchor"),m(()=>{let x=e$1.getRoot(),{x:B,y:A}=k.placement==="center"?w$1(x,u):v(x,h??{left:0,top:0},u);s.set(B),i.set(A),n$1.set(true);});}),e$1.emitter.on(a$1.CLOSE_DIALOG,f),e$1.emitter.on(a$1.KEYDOWN,g=>{g.key==="Escape"&&o.peek()===true&&e$1.command.closeDialog();}),e$1.emitter.on(a$1.CLICK,g=>{if(o.peek()!==true||n$1.peek()!==true)return;let h=g.target,k=u&&typeof u.contains=="function"&&u.contains(h),x=c$1&&typeof c$1.contains=="function"&&c$1.contains(h);!k&&!x&&e$1.command.closeDialog();});},onMount(){let{dispose:g}=a$2(e$1,"mrakomor-dialog-plugin-container",n(et,{open:o,placement:r,positionX:s,positionY:i,block:m$2,dialogRef:u}));t=g;},onUnmount(){t?.(),t=null;}}}var ot=class extends a$6{constructor(t){super(t,{sort:n=>n});}normalize(t){return c$3(t)}};(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/menu/Menu.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-menu{position:absolute;z-index:9300;display:flex;flex-direction:column;gap:2px;min-width:160px;max-height:240px;overflow-y:auto;background:#1a1a1a;border-radius:6px;padding:4px;box-shadow:0 3px 10px #00000040;pointer-events:all}.mrakomor-menu__item{display:flex;align-items:center;width:100%;padding:6px 10px;border:none;border-radius:4px;background:transparent;color:#fff;cursor:pointer;font-size:13px;font-weight:600;text-align:left;transition:background .1s}.mrakomor-menu__item:hover,.mrakomor-menu__item--active{background:#ffffff26}
4
+ `,document.head.appendChild(n);}}})();function ae(e,t=-1){if(!e.length)return null;let n$1=e.map((o,r)=>n("button",{type:"button",role:"option",id:`mrakomor-menu-option-${o.id}`,className:["mrakomor-menu__item",r===t?"mrakomor-menu__item--active":""].filter(Boolean).join(" "),title:o.label,"data-id":o.id,"aria-selected":r===t?"true":"false",onMouseDown:s=>{s.preventDefault();}},o.label));return n("span",{style:"display: contents"},n$1)}function mt({open:e,positionX:t,positionY:n$1,entries:o,highlightIndex:r,ariaLabel:s$1,menuRef:i}){let m=b$1(()=>({left:`${t.get()}px`,top:`${n$1.get()}px`}));return s(()=>e.get(),n("div",{className:"mrakomor-menu",role:"listbox","aria-label":()=>s$1.get(),contenteditable:false,style:m,$ref:i},()=>ae(o.get(),r.get())))}function rt({mrakomor:e$1}){let t=null,n$1=null,o=e(null),r=null,s=c(false),i=c(false),m$1=c(0),c$1=c(0),u=c([]),f=c(-1),g=c("Menu");function h(d){m(()=>{let E=e$1.getRoot();if(!E||!d)return;let S=o?.offsetHeight??200,b=E.getBoundingClientRect();if(d.top-b.top>S+8){let{x:M,y:it}=v(E,d,{offsetHeight:S},4);m$1.set(M),c$1.set(it);}else m$1.set(d.left-b.left),c$1.set(d.bottom-b.top+4);s.set(true);});}function k(){i.set(false),r=null,f.set(-1),u.set([]),m(()=>{s.set(false);});}function x(d){!d||!r||r(d);}function B(d){if(i.peek()!==true)return;let E=d.target?.closest?.(".mrakomor-menu__item");if(!E||!n$1?.contains(E))return;d.preventDefault(),d.stopPropagation();let S=E.getAttribute("data-id"),b=u.peek().find(L=>L.id===S);b&&x(b);}function A(d={}){let{entries:E=[],anchorRect:S,highlightIndex:b=-1,ariaLabel:L="Menu",onSelect:M=null}=d;u.set(E),f.set(b),g.set(L),M!==void 0&&(r=M),i.set(true),S?h(S):s.set(true);}return {registerEvents(){a$1.OPEN_MENU="mrakomor:open-menu",a$1.CLOSE_MENU="mrakomor:close-menu",a$1.UPDATE_MENU="mrakomor:update-menu";},registerCommands(d){d.command.openMenu=E=>{d.emit(a$1.OPEN_MENU,E);},d.command.updateMenu=E=>{d.emit(a$1.UPDATE_MENU,E);},d.command.closeMenu=()=>{d.emit(a$1.CLOSE_MENU);};},registerHandlers(){e$1.emitter.on(a$1.OPEN_MENU,A),e$1.emitter.on(a$1.UPDATE_MENU,A),e$1.emitter.on(a$1.CLOSE_MENU,k),e$1.emitter.on(a$1.CLICK,d=>{let E=o?.current??o;i.peek()===true&&s.peek()===true&&E&&typeof E.contains=="function"&&!E.contains(d.target)&&k();}),e$1.emitter.on(a$1.KEYDOWN,d=>{d.key==="Escape"&&i.peek()===true&&k();});},onMount(){let{container:d,dispose:E}=a$2(e$1,"mrakomor-menu-plugin-container",n(mt,{open:i,positionX:m$1,positionY:c$1,entries:u,highlightIndex:f,ariaLabel:g,menuRef:o}));n$1=d,n$1?.addEventListener("click",B),t=E;},onUnmount(){n$1?.removeEventListener("click",B),t?.(),t=null,n$1=null,o.current=null,r=null;}}}function me(e){return e!=null&&typeof e=="object"&&(typeof Element>"u"?e.nodeType===1:e instanceof Element)}function Ht(){return a.object({root:a.any().refine(me,{message:"root must be a DOM Element"}),id:a.string().optional(),debug:a.boolean().optional(),content:a.array(a.any()).optional(),plugins:a.array(a.function()).optional(),blockComponents:a.array(a.any().refine(e=>typeof e=="function"||e!=null&&typeof e=="object"&&typeof e.component=="function",{message:"blockComponents entry must be a constructor or registration"})).optional(),slashActions:a.array(a.any().refine(e=>e!=null&&typeof e=="object"&&typeof e.handler=="function",{message:"slashActions entry must include a handler function"})).optional(),inlineStyles:a.array(a.function()).optional(),entityRanges:a.array(a.function()).optional(),tooltip:a.any().optional()})}function Ft(e){return [...e.filter(t=>t!==nt&&t!==rt&&t!==tt),nt,rt,tt]}function ue(e){Ht().parse(e);let t={debug:false,content:[],plugins:[],blockComponents:[],slashActions:[],inlineStyles:[w,P,z,U,K],entityRanges:[],tooltip:{}},n={...t,...e,plugins:Ft(e.plugins??t.plugins)},o=new st(n);return o._init(),o}var st=class{#o=a$3();#n;#t=[];#e=[];#r;#s=false;listenerAbortController=new AbortController;#i=c([],{debug:"content"});#l=[];command;emitter;register;constructor(t){let{root:n,id:o,content:r}=t;this.#o=o||this.#o,this.#n=n,this.#l=r,this.#e=[],this.#r={...t,plugins:Ft(t.plugins??[])},this.register={blocks:new Q(this),help:new ot(this)};let{emitter:s,command:i}=c$1({mrakomor:this});this.command=i,this.emitter=s;}_init(){this.#c(),this.#i=c(this._normalizeContentState(this.#l),{debug:"content"});}#c(){this.#t=this.#r.plugins.map(t=>t?.({config:this.#r,root:this.#n,mrakomor:this}))??[],this.#r=this.#t.reduce((t,n)=>n?.resolveConfig?.(t)??t,this.#r),this.register.blocks.add(this.#r.blockComponents??[]),this.#t.forEach(t=>{t?.registerEvents?.(this);}),this.#t.forEach(t=>{t?.registerCommands?.(this);}),this.#t.forEach(t=>{this.emitter.on(a$1.KEYDOWN,n=>t?.onKeyDown?.(n));}),this.#t.forEach(t=>{t?.registerHandlers?.(this);}),this.#t.forEach(t=>{t?.registerListeners?.(this);});}emit(t,n={}){return this.emitter.emit(t,{...n,mrakomor:this})}on(t,n){return this.emitter.on(t,n)}onChangeContent(t){return this.on(a$1.CONTENT_CHANGE,t)}emitDomEvent(t,n){let{clipboardData:o,metaKey:r,altKey:s,code:i,ctrlKey:m,key:c,isComposing:u,repeat:f,button:g,shiftKey:h,which:k,detail:x,isTrusted:B,target:A,relatedTarget:d,data:E,inputType:S}=n??{},{defaultPrevented:b}=this.emit(t,{clipboardData:o,metaKey:r,altKey:s,code:i,ctrlKey:m,key:c,isComposing:u,repeat:f,button:g,shiftKey:h,which:k,detail:x,isTrusted:B,target:A,relatedTarget:d,data:E,inputType:S});return b&&n?.preventDefault?.(),b}getConfig(){return {...this.#r,blockComponents:this.register.blocks.list(),slashActions:this.register.slashActions?.list()??[]}}wrapBlockElement(t){for(let n of this.#t){let o=n.wrapBlockElement?.(t);if(o)return o}return t}getRoot(){return this.#n}get _id(){return this.#o}getContent(){return this.#e.map(n=>t(n)?.getState())}setContent(t=[]){this._setContentState(this._normalizeContentState(t));}_syncBlockElementsFromDom(){let t=this.#n?.querySelector?.(".mrakomor-content");t&&(this.#e=[...t.querySelectorAll(".mrakomor-block-element")]);}_getBlockElements(){return this.#e}_getContentState(){return this.#i.get()}_setContentState(t=[]){this.#i.set(t),this.emit(a$1.CONTENT_CHANGE,{content:t}),m(()=>{this._syncBlockElementsFromDom();});}_normalizeContentState(t=[]){return t.map(n=>structuredClone(this.normalizeComponentState(n)))??[]}_setBlockElement(t,n=this.#e.length){this.#e.splice(n,0,t);}_removeBlockElement(t){this.#e=this.#e.filter(n=>n!==t);}_getBlockElementIndex(t){return this.#e.indexOf(t)}mount(){let t=q(this.#n,n(Kt,{mrakomor:this}));return this.#s=true,t}unmount(){this.#s&&(this.#s=false,r(this.#n));}_onUnmount(){this.listenerAbortController.abort(),this.#t.forEach(t=>{t?.onUnmount?.(this);}),this.emitter.removeAllListeners();}_onMount(){this.#t.forEach(t=>{t?.onMount?.(this);}),m(()=>{this._syncBlockElementsFromDom();});}resolveComponent(t,n$1){let o=this.resolveComponentConstructor(t);return o?n(o,{state:n$1}):n(G,{state:n$1})}resolveComponentConstructor(t){let n=this.register.blocks.getByNamespace(t);if(!n){for(let o of this.#t)if(n=o?.resolveComponent?.(t),n)break}return n}normalizeComponentState(t){let n="component"in t?t.component:t.entity.type;return this.resolveComponentConstructor(n)?.getStateSchema()?.parse(t)}};export{w as Bold,et as Dialog,P as Italic,mt as Menu,st as Mrakomor,U as Subscript,K as Superscript,z as Underline,ue as createMrakomor,tt as defaultMrakomorPlugin,nt as dialogPlugin,rt as menuPlugin};
package/dist/link.mjs CHANGED
@@ -1,2 +1,3 @@
1
- import {a as a$1}from'./chunk-PYVJPCUA.mjs';import {a,e}from'./chunk-O7IO4QXV.mjs';import {e as e$1,l as l$1,m,x,C}from'./chunk-DFL6LPER.mjs';(function(){if(!(typeof document>"u")){var r="mrakomor/core/plugin/linkEntity/LinkEntity.css",e=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(o){return o.getAttribute("data-mrakomor-css-path")===r});if(!e){var t=document.createElement("style");t.setAttribute("data-mrakomor-css",""),t.setAttribute("data-mrakomor-css-path",r),t.textContent='".link-toolbar{display:flex;flex-direction:column;gap:6px}.link-toolbar__row{display:flex;align-items:center;gap:4px;min-width:0}.link-toolbar__sep{width:1px;height:18px;background:#e0e0e0;flex-shrink:0;margin:0 2px}.link-toolbar__btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#555}.link-toolbar__btn:hover{background:#f0f0f0;color:#222}.link-toolbar__btn--danger:hover{color:#d32f2f;background:#fdecea}\\n"',document.head.appendChild(t);}}})();var k=a.preprocess(r=>String(r??"").trim(),a.string().refine(r=>r===""||/^(?:https?:|mailto:)/i.test(r)||!/^[a-z][a-z0-9+.-]*:/i.test(r),{message:"Invalid link href"}).catch(""));function u(r){return k.parse(r)}var f='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>';var b='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/></svg>';var l=class r extends a$1{static get nodeName(){return "a"}static get NAMESPACE(){return "atom.link.Link"}static getStateSchema(e$1){let t;if(e$1?.getAttribute("data-state"))try{t=JSON.parse(e$1.getAttribute("data-state"));}catch{}return e({type:r.NAMESPACE,data:a.object({href:a.string().default(t?.entity?.data?.href??e$1?.href??"").transform(o=>u(o)),target:a.string().default(t?.entity?.data?.target??e$1?.target??"")}).default({}),length:t?.length??0,offset:t?.offset??0}).default({})}constructor(e){super(e),this.input=e$1(t=>l$1(()=>{t.focus();}));}#e({entity:e,length:t,offset:o}){return m("div",{className:"link-toolbar"},[m("div",{className:"link-toolbar__row",style:{display:"flex"}},[m("button",{className:"link-toolbar__btn",title:"Copy URL",$dangerouslySetInnerHTML:f,onClick:()=>navigator.clipboard?.writeText(e.peek()?.data?.href??"")}),m("input",{type:"text",$ref:this.input,value:e.peek()?.data?.href??"",defaultValue:e.peek()?.data?.href??"",onKeyDown:n=>{n.key==="Enter"&&(n.preventDefault(),n.stopPropagation(),this.mrakomor.command.closeDialog());},onInput:n=>{let s=n.currentTarget.value;e.set({...e.peek(),data:{...e.peek()?.data,href:s}});}}),m("select",{value:e.peek()?.data?.target??"",onChange:n=>{e.set({...e.peek(),data:{...e.peek()?.data,target:n.currentTarget.value}});}},[m("option",{value:"",selected:e.peek()?.data?.target===""},""),m("option",{value:"_self",selected:e.peek()?.data?.target==="_self"},"_self"),m("option",{value:"_blank",selected:e.peek()?.data?.target==="_blank"},"_blank"),m("option",{value:"_parent",selected:e.peek()?.data?.target==="_parent"},"_parent"),m("option",{value:"_top",selected:e.peek()?.data?.target==="_top"},"_top")]),m("span",{className:"link-toolbar__sep"}),m("button",{className:"link-toolbar__btn link-toolbar__btn--danger",title:"Remove link",$dangerouslySetInnerHTML:b,onClick:()=>{this.mrakomor.command.removeEntityRange?.({state:{entity:e.peek(),length:t.peek(),offset:o.peek()},blockElement:x(this.element)});}})])])}onMount(){let{entity:e}=this.props;e.peek()?.data?.href||this.mrakomor.command.openDialog({element:this.element,children:this.#e(this.props)});}render(){let{entity:e,length:t,offset:o,children:n}=this.props;return m("a",{href:()=>u(e.get()?.data?.href),target:()=>e.get()?.data?.target||null,rel:()=>e.get()?.data?.target==="_blank"?"noopener noreferrer":null,$ref:this.element,onClick:s=>{s.ctrlKey||s.metaKey||l$1(()=>{C(),this.mrakomor.command.openDialog({element:this.element,children:this.#e({entity:e,length:t,offset:o})});});},"data-state":()=>JSON.stringify({entity:e.get(),length:t.get(),offset:o.get()})},n)}};function v({mrakomor:r}){return {resolveConfig:e=>(e.entityRanges.push(l),e),resolveComponent:e=>{if(e===l.NAMESPACE)return l},onKeyDown(e){e.key==="k"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),r.command.insertEntityRange({namespace:l.NAMESPACE}));}}}
2
- export{l as LinkEntity,v as linkEntityPlugin};
1
+ import {a as a$1}from'./chunk-6XPPNCKR.mjs';import {b as b$1}from'./chunk-WX7ESURF.mjs';import'./chunk-7UI6TZPX.mjs';import {a}from'./chunk-P7IKAZYZ.mjs';import {f as f$1,k as k$1}from'./chunk-XQCH2FNS.mjs';import {e,m,n}from'./chunk-ZDZQ2RVJ.mjs';(function(){if(!(typeof document>"u")){var r="mrakomor/core/plugin/linkEntity/LinkEntity.css",e=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(a){return a.getAttribute("data-mrakomor-css-path")===r});if(!e){var t=document.createElement("style");t.setAttribute("data-mrakomor-css",""),t.setAttribute("data-mrakomor-css-path",r),t.textContent=`.link-toolbar{display:flex;flex-direction:column;gap:6px}.link-toolbar__row{display:flex;align-items:center;gap:4px;min-width:0}.link-toolbar__sep{width:1px;height:18px;background:#e0e0e0;flex-shrink:0;margin:0 2px}.link-toolbar__btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#555}.link-toolbar__btn:hover{background:#f0f0f0;color:#222}.link-toolbar__btn--danger:hover{color:#d32f2f;background:#fdecea}
2
+ `,document.head.appendChild(t);}}})();var k=a.preprocess(r=>String(r??"").trim(),a.string().refine(r=>r===""||/^(?:https?:|mailto:)/i.test(r)||!/^[a-z][a-z0-9+.-]*:/i.test(r),{message:"Invalid link href"}).catch(""));function u(r){return k.parse(r)}var f='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>';var b='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/></svg>';var i=class r extends a$1{static get nodeName(){return "a"}static get NAMESPACE(){return "atom.link.Link"}static getStateSchema(e){let t;if(e?.getAttribute("data-state"))try{t=JSON.parse(e.getAttribute("data-state"));}catch{}return b$1({type:r.NAMESPACE,data:a.object({href:a.string().default(t?.entity?.data?.href??e?.href??"").transform(a=>u(a)),target:a.string().default(t?.entity?.data?.target??e?.target??"")}).default({}),length:t?.length??0,offset:t?.offset??0}).default({})}constructor(e$1){super(e$1),this.input=e(t=>m(()=>{t.focus();}));}#e({entity:e,length:t,offset:a}){return n("div",{className:"link-toolbar"},[n("div",{className:"link-toolbar__row",style:{display:"flex"}},[n("button",{className:"link-toolbar__btn",title:"Copy URL",$dangerouslySetInnerHTML:f,onClick:()=>navigator.clipboard?.writeText(e.peek()?.data?.href??"")}),n("input",{type:"text",$ref:this.input,value:e.peek()?.data?.href??"",defaultValue:e.peek()?.data?.href??"",onKeyDown:o=>{o.key==="Enter"&&(o.preventDefault(),o.stopPropagation(),this.mrakomor.command.closeDialog());},onInput:o=>{let s=o.currentTarget.value;e.set({...e.peek(),data:{...e.peek()?.data,href:s}});}}),n("select",{value:e.peek()?.data?.target??"",onChange:o=>{e.set({...e.peek(),data:{...e.peek()?.data,target:o.currentTarget.value}});}},[n("option",{value:"",selected:e.peek()?.data?.target===""},""),n("option",{value:"_self",selected:e.peek()?.data?.target==="_self"},"_self"),n("option",{value:"_blank",selected:e.peek()?.data?.target==="_blank"},"_blank"),n("option",{value:"_parent",selected:e.peek()?.data?.target==="_parent"},"_parent"),n("option",{value:"_top",selected:e.peek()?.data?.target==="_top"},"_top")]),n("span",{className:"link-toolbar__sep"}),n("button",{className:"link-toolbar__btn link-toolbar__btn--danger",title:"Remove link",$dangerouslySetInnerHTML:b,onClick:()=>{this.mrakomor.command.removeEntityRange?.({state:{entity:e.peek(),length:t.peek(),offset:a.peek()},blockElement:f$1(this.element)});}})])])}onMount(){let{entity:e}=this.props;e.peek()?.data?.href||this.mrakomor.command.openDialog({element:this.element,children:this.#e(this.props)});}render(){let{entity:e,length:t,offset:a,children:o}=this.props;return n("a",{href:()=>u(e.get()?.data?.href),target:()=>e.get()?.data?.target||null,rel:()=>e.get()?.data?.target==="_blank"?"noopener noreferrer":null,$ref:this.element,onClick:s=>{s.ctrlKey||s.metaKey||m(()=>{k$1(),this.mrakomor.command.openDialog({element:this.element,children:this.#e({entity:e,length:t,offset:a})});});},"data-state":()=>JSON.stringify({entity:e.get(),length:t.get(),offset:a.get()})},o)}};function v({mrakomor:r}){return {resolveConfig:e=>(e.entityRanges.push(i),e),resolveComponent:e=>{if(e===i.NAMESPACE)return i},registerHandlers(){r.register.help.add({id:"link.insert",group:"formatting",description:"Insert or edit a link on the selection",commands:[],shortcuts:["Mod+K"]});},onKeyDown(e){e.key==="k"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),r.command.insertEntityRange({namespace:i.NAMESPACE}));}}}
3
+ export{i as LinkEntity,v as linkEntityPlugin};
package/dist/list.mjs CHANGED
@@ -1 +1 @@
1
- export{a as List,c as listPlugin}from'./chunk-MIXXUTVH.mjs';import'./chunk-5V6D56TM.mjs';import'./chunk-4CNZR6XL.mjs';import'./chunk-O7IO4QXV.mjs';import'./chunk-MWY3XQMH.mjs';import'./chunk-B6JJAATK.mjs';import'./chunk-DFL6LPER.mjs';
1
+ export{a as List,c as listPlugin}from'./chunk-F67KYIDS.mjs';import'./chunk-QWAQBTXR.mjs';import'./chunk-P6HMUYFA.mjs';import'./chunk-WX7ESURF.mjs';import'./chunk-7UI6TZPX.mjs';import'./chunk-P7IKAZYZ.mjs';import'./chunk-JFLCNBDM.mjs';import'./chunk-B6JJAATK.mjs';import'./chunk-XQCH2FNS.mjs';import'./chunk-ZDZQ2RVJ.mjs';
@@ -1 +1 @@
1
- export{a as Paragraph,b as paragraphPlugin}from'./chunk-R6ZAVJUD.mjs';import'./chunk-4CNZR6XL.mjs';import'./chunk-O7IO4QXV.mjs';import'./chunk-MWY3XQMH.mjs';import'./chunk-DFL6LPER.mjs';
1
+ export{a as Paragraph,b as paragraphPlugin}from'./chunk-PMR6XOZ6.mjs';import'./chunk-P6HMUYFA.mjs';import'./chunk-WX7ESURF.mjs';import'./chunk-7UI6TZPX.mjs';import'./chunk-P7IKAZYZ.mjs';import'./chunk-JFLCNBDM.mjs';import'./chunk-B6JJAATK.mjs';import'./chunk-XQCH2FNS.mjs';import'./chunk-ZDZQ2RVJ.mjs';
@@ -1 +1 @@
1
- import {k,j,r,b}from'./chunk-MWY3XQMH.mjs';import {a}from'./chunk-B6JJAATK.mjs';import {A,L,w as w$1,y,F,s}from'./chunk-DFL6LPER.mjs';function P(t){return t==null||t===""||/\s/.test(t)}function w(t,n){if(typeof t!="string"||n<1)return null;let r=t.slice(0,n),l=-1;for(let a=r.length-1;a>=0;a--){let i=r[a];if(i==="/"){let u=a===0?null:r[a-1];if(u===null||/\s/.test(u)){l=a;break}return null}if(!/[\w]/.test(i))return null}return l<0?null:{slashStart:l,slashEnd:n,query:r.slice(l+1)}}function U(t,n){if(!t)return null;let r=n.inputType??"",l=n.data??null;return r==="insertText"||r==="insertCompositionText"||r==="insertReplacementText"?l==null||l===""?t:/\s/.test(l)||!/^[\w]+$/.test(l)?null:{...t,query:t.query+l,slashEnd:t.slashEnd+l.length}:r==="deleteContentBackward"||r==="deleteContentForward"||r==="deleteByCut"||r==="deleteByDrag"?t.slashEnd<=t.slashStart+1?null:{...t,query:t.query.slice(0,-1),slashEnd:t.slashEnd-1}:r==="insertFromPaste"||r==="insertFromDrop"?null:t}function R(t,n){let r=String(n??"").trim().toLowerCase();return r?t.filter(l=>String(l.label??"").toLowerCase().includes(r)?true:(l.keywords??[]).some(i=>String(i).toLowerCase().includes(r))):t.slice()}function K(t,n,r$1){let{originalLineState:l}=r(t,n),{newLineState:a}=r(t,r$1);return {beforeState:l,afterState:a}}function V(t,n,r=null){let l=n?.component,a=l?.NAMESPACE;if(!l||!a)return null;let i=j(r?.properties?.text??""),u=r?.properties?.inlineStyleRanges??[],m=r?.properties?.entityRanges??[],f={componentId:s(),component:a,...n.settings?{settings:n.settings}:{}};return a===b?l.getStateSchema().parse({...f,properties:{items:[{text:i,inlineStyleRanges:u,entityRanges:m}]}}):l.getStateSchema().parse({...f,properties:{text:i,inlineStyleRanges:u,entityRanges:m}})}function I(t,n){let{mrakomor:r,blockElement:l,slashStart:a,slashEnd:i}=t,u=L(l),m=n?.component?.NAMESPACE;if(!u||!m)return;let f=u.getState();if(!k(f))return;let{beforeState:d,afterState:p}=K(f,a,i),M=j(d.properties?.text),x=j(p.properties?.text),h=!M&&!x,g=V(r,n,h?null:p);if(g){if(h){r.command.replaceBlockElement({blockElement:l,blocks:[g],cursor:0});return}r.command.insertBlockElement({blockElement:l,namespace:m,originalLineState:d,newLineState:g,cursor:0});}}function q(t,n){return {mrakomor:t,blockElement:n.blockElement,query:n.query,slashStart:n.slashStart,slashEnd:n.slashEnd,range:A()}}function $({mrakomor:t}){let n=null,r=null,l=false,a$1=[],i=0,u=false;function m(e){let o=t.getConfig()?.blockComponents??[];return R(o,e)}function f(){u=false,n=null,r=null,l=false,a$1=[],i=0,t.command.closeMenu?.();}function d(e){if(!n||!e)return;let o=q(t,n);I(o,e),f();}function p(e){if(!n)return;e&&(r=e),a$1=m(n.query),i=0;let o=u;u=true;let s={entries:a$1,anchorRect:r??void 0,highlightIndex:i,ariaLabel:"Slash commands",onSelect:d};o?t.command.updateMenu?.(s):t.command.openMenu?.(s);}function M(e){let{blockElement:o,slashStart:s,slashEnd:S,query:E,anchorRect:y}=e;n={blockElement:o,slashStart:s,slashEnd:S,query:E},p(y);}function x(){let e=A();if(!e?.collapsed)return null;let o=w$1(e),s=y(e);if(!o||!s)return null;let S=s.textContent??"",E=F(s,e.startContainer,e.startOffset);return {blockElement:o,selectable:s,text:S,cursor:E}}function h(e){let s=A()?.getBoundingClientRect?.();return (!s||s.width===0&&s.height===0)&&(s=e.getBoundingClientRect()),s}function g(e){let s=L(e)?.state?.peek();return !!(s&&k(s))}function F$1(e){let o=w(e.text,e.cursor);if(!o){u&&f();return}n={blockElement:e.blockElement,slashStart:o.slashStart,slashEnd:o.slashEnd,query:o.query},p(h(e.selectable));}function _(){let e=x();if(!e||!g(e.blockElement))return false;let o=e.cursor>=1&&e.text[e.cursor-1]==="/",s=o?e.cursor-1:e.cursor,S=s===0?null:e.text[s-1];return !P(S)||o&&e.text[s]!=="/"?false:(n={blockElement:e.blockElement,slashStart:s,slashEnd:s+1,query:""},p(h(e.selectable)),true)}function H(e){n||e.data==="/"&&(e.inputType&&e.inputType!=="insertText"&&e.inputType!=="insertCompositionText"||_()&&(l=true));}function z(e){let o=e.data??null,s=e.inputType??"";if(n&&l&&o==="/"){l=false,p();return}if(l=false,!n){if(o!=="/")return;_();return}if(s==="insertCompositionText"||s==="insertFromPaste"||s==="insertFromDrop"){let y=x();if(!y||y.blockElement!==n.blockElement){f();return}F$1(y);return}let S=s===""&&o!=null?{inputType:"insertText",data:o}:e,E=U(n,S);if(!E){f();return}n=E,p();}return {registerEvents(){a.OPEN_SLASH_COMMAND_MENU="mrakomor:open-slash-command-menu",a.CLOSE_SLASH_COMMAND_MENU="mrakomor:close-slash-command-menu",a.UPDATE_SLASH_COMMAND_MENU="mrakomor:update-slash-command-menu";},registerCommands(e){e.command.openSlashCommandMenu=o=>{e.emit(a.OPEN_SLASH_COMMAND_MENU,o);},e.command.updateSlashCommandMenu=o=>{e.emit(a.UPDATE_SLASH_COMMAND_MENU,o);},e.command.closeSlashCommandMenu=()=>{e.emit(a.CLOSE_SLASH_COMMAND_MENU);};},onKeyDown(e){if(u){if(e.key==="ArrowDown"){if(e.preventDefault(),!a$1.length)return;i=(i+1)%a$1.length,t.command.updateMenu?.({entries:a$1,highlightIndex:i,ariaLabel:"Slash commands",onSelect:d});return}if(e.key==="ArrowUp"){if(e.preventDefault(),!a$1.length)return;i=(i-1+a$1.length)%a$1.length,t.command.updateMenu?.({entries:a$1,highlightIndex:i,ariaLabel:"Slash commands",onSelect:d});return}if(e.key==="Enter"){e.preventDefault(),e.stopPropagation?.();let o=a$1[i];o&&d(o);return}e.key==="Escape"&&(e.preventDefault(),f());}},registerHandlers(){t.emitter.on(a.OPEN_SLASH_COMMAND_MENU,M),t.emitter.on(a.UPDATE_SLASH_COMMAND_MENU,M),t.emitter.on(a.CLOSE_SLASH_COMMAND_MENU,f),t.emitter.on(a.CLOSE_MENU,()=>{u=false,n=null,r=null,l=false,a$1=[],i=0;}),t.emitter.on(a.BEFORE_INPUT,H),t.emitter.on(a.INPUT,z);}}}export{$ as slashCommandPlugin};
1
+ import {a as a$2,b}from'./chunk-WQWE5UCN.mjs';import {a}from'./chunk-P7IKAZYZ.mjs';import {k,p,j as j$1,r,b as b$1}from'./chunk-JFLCNBDM.mjs';import {a as a$1}from'./chunk-B6JJAATK.mjs';import {i,e,g,n,t,a as a$3}from'./chunk-XQCH2FNS.mjs';import'./chunk-ZDZQ2RVJ.mjs';function Z(e,t){return String(e??t).trim().toLowerCase().replace(/\s+/g,"-")||String(t)}function ee({id:e,label:t,fallback:n=0}){return e??Z(t,n)}var _=a.object({id:a.string().optional(),label:a.string().optional(),keywords:a.array(a.string()).optional(),group:a.string().optional(),order:a.number().default(({context:e})=>e?.index??0),description:a.string().optional(),handler:a.function()}).derive(e=>{let t=ee({id:e.id,label:e.label,fallback:e.order}),n=String(e.label??e.id??`Action ${e.order}`),l=e.keywords?.length?e.keywords.map(String):[n,t];return {id:t,label:n,keywords:l,group:e.group??"actions",...e.description!=null&&e.description!==""?{description:String(e.description)}:{}}});var B=class extends a$2{normalize(t,n){if(!t||typeof t.handler!="function")return null;try{return _.parse(t,{context:{index:n}})}catch{return null}}};function H(e,t){let n=e._getBlockElementIndex(t);if(n===-1)return null;let l=e.getContent()[n];return l?structuredClone(l):null}function te(e,t$1){if(!t$1)return null;for(let n of e._getBlockElements())if(t(n)?.state?.peek()?.componentId===t$1)return n;return null}function ne(e,t){let n=te(e,t.baselineState?.componentId);return n||(e._getBlockElementIndex(t.blockElement)!==-1&&t.blockElement?.isConnected,t.blockElement)}function z(e){return e==null||e===""||/\s/.test(e)}function U(e,t){if(typeof e!="string"||t<1)return null;let n=e.slice(0,t),l=-1;for(let o=n.length-1;o>=0;o--){let c=n[o];if(c==="/"){let a=o===0?null:n[o-1];if(a===null||/\s/.test(a)){l=o;break}return null}if(!/[\w]/.test(c))return null}return l<0?null:{slashStart:l,slashEnd:t,query:n.slice(l+1)}}function $(e,t){if(!e)return null;let n=t.inputType??"",l=t.data??null;return n==="insertText"||n==="insertCompositionText"||n==="insertReplacementText"?l==null||l===""?e:/\s/.test(l)||!/^[\w]+$/.test(l)?null:{...e,query:e.query+l,slashEnd:e.slashEnd+l.length}:n==="deleteContentBackward"||n==="deleteContentForward"||n==="deleteByCut"||n==="deleteByDrag"?e.slashEnd<=e.slashStart+1?null:{...e,query:e.query.slice(0,-1),slashEnd:e.slashEnd-1}:n==="insertFromPaste"||n==="insertFromDrop"?null:e}function I(e){return typeof e?.handler=="function"}function j(e,t){let n=String(t??"").trim().toLowerCase();return n?e.filter(l=>String(l.label??"").toLowerCase().includes(n)?true:(l.keywords??[]).some(c=>String(c).toLowerCase().includes(n))):e.slice()}function K(e,t,n,l){let{originalLineState:o}=r(e,t),c=l&&k(l)?l:e,{newLineState:a}=r(c,n);return {beforeState:o,afterState:a}}function V(e){let t$1=t(e)?.getState?.();return t$1&&k(t$1)?t$1:null}function re(e,t=null){let n=e?.component,l=n?.NAMESPACE;if(!n||!l)return null;let o=j$1(t?.properties?.text??""),c=t?.properties?.inlineStyleRanges??[],a=t?.properties?.entityRanges??[],u={componentId:a$3(),component:l,...e.settings?{settings:e.settings}:{}};return l===b$1?n.getStateSchema().parse({...u,properties:{items:[{text:o,inlineStyleRanges:c,entityRanges:a}]}}):n.getStateSchema().parse({...u,properties:{text:o,inlineStyleRanges:c,entityRanges:a}})}function Y(e,t){if(!I(t))return;let{mrakomor:n,blockElement:l,slashStart:o,slashEnd:c,baselineState:a}=e;if(!a||!k(a)){t.handler(e);return}let u=V(l),{beforeState:f,afterState:d}=K(a,o,c,u),{state:m}=p(f,d),S=j$1(f.properties?.text).length;n.command.replaceBlockElement({blockElement:l,blocks:[n.normalizeComponentState(m)],cursor:S}),t.handler(e);}function v(e,t){let{mrakomor:n,blockElement:l,slashStart:o,slashEnd:c,baselineState:a}=e,u=t?.component?.NAMESPACE;if(!u||!a||!k(a))return;let f=V(l),{beforeState:d,afterState:m}=K(a,o,c,f),S=j$1(d.properties?.text),C=j$1(m.properties?.text),A=!S&&!C,E=re(t,A?null:m);if(E){if(A){n.command.replaceBlockElement({blockElement:l,blocks:[E],cursor:0});return}n.command.insertBlockElement({blockElement:l,namespace:u,originalLineState:d,newLineState:E,cursor:0});}}function G(e,t){return {mrakomor:e,blockElement:ne(e,t),query:t.query,slashStart:t.slashStart,slashEnd:t.slashEnd,baselineState:t.baselineState,range:i()}}function le(e){return `/${(e.keywords?.[0]??e.label??e.id).toLowerCase()}`}function J(e){return b().parse({id:e.id,group:e.group,description:e.description??e.label,commands:[le(e)],shortcuts:[]})}var oe={id:"slash.open",group:"blocks",description:"Open the slash command menu",commands:["/"],shortcuts:[]};function Q(e){let t=e.register.slashActions;if(t)for(let n of t.list())e.register.help.add(J(n));}function se({mrakomor:e$1}){e$1.register.slashActions=new B(e$1);let t$1=null,n$1=null,l=[],o=0,c=false;function a(r){return j([...e$1.register.blocks.list(),...e$1.register.slashActions.list()],r)}function u(){c=false,t$1=null,n$1=null,l=[],o=0,e$1.command.closeMenu?.();}function f(r){if(!t$1||!r)return;let s=G(e$1,t$1);I(r)?Y(s,r):v(s,r),u();}function d(r){if(!t$1)return;r&&(n$1=r),l=a(t$1.query),o=0;let s=c;c=true;let i={entries:l,anchorRect:n$1??void 0,highlightIndex:o,ariaLabel:"Slash commands",onSelect:f};s?e$1.command.updateMenu?.(i):e$1.command.openMenu?.(i);}function m(r,s,i,y,g){t$1={blockElement:r,slashStart:s,slashEnd:i,query:y,baselineState:H(e$1,r)},d(g);}function S(){let r=i();if(!r?.collapsed)return null;let s=e(r),i$1=g(r);if(!s||!i$1)return null;let y=i$1.textContent??"",g$1=n(i$1,r.startContainer,r.startOffset);return {blockElement:s,selectable:i$1,text:y,cursor:g$1}}function C(r){let i$1=i()?.getBoundingClientRect?.();return (!i$1||i$1.width===0&&i$1.height===0)&&(i$1=r.getBoundingClientRect()),i$1}function A(r){let i=t(r)?.state?.peek();return !!(i&&k(i))}function E(r){let s=U(r.text,r.cursor);if(!s){c&&u();return}m(r.blockElement,s.slashStart,s.slashEnd,s.query,C(r.selectable));}function W(){let r=S();if(!r||!A(r.blockElement)||r.cursor<1||r.text[r.cursor-1]!=="/")return false;let s=r.cursor-1,i=s===0?null:r.text[s-1];return z(i)?(m(r.blockElement,s,s+1,"",C(r.selectable)),true):false}function X(r){let s=r.data??null,i=r.inputType??"";if(!t$1){if(s!=="/")return;W();return}if(i==="insertCompositionText"||i==="insertFromPaste"||i==="insertFromDrop"){let T=S();if(!T||T.blockElement!==t$1.blockElement){u();return}E(T);return}let y=i===""&&s!=null?{inputType:"insertText",data:s}:r,g=$(t$1,y);if(!g){u();return}t$1=g,d();}return {resolveConfig(r){return e$1.register.slashActions.add(r.slashActions??[]),Q(e$1),r},registerCommands(){e$1.register.help.add(oe),Q(e$1);},onKeyDown(r){if(c){if(r.key==="ArrowDown"){if(r.preventDefault(),!l.length)return;o=(o+1)%l.length,e$1.command.updateMenu?.({entries:l,highlightIndex:o,ariaLabel:"Slash commands",onSelect:f});return}if(r.key==="ArrowUp"){if(r.preventDefault(),!l.length)return;o=(o-1+l.length)%l.length,e$1.command.updateMenu?.({entries:l,highlightIndex:o,ariaLabel:"Slash commands",onSelect:f});return}if(r.key==="Enter"){r.preventDefault(),r.stopPropagation?.();let s=l[o];s&&f(s);return}r.key==="Escape"&&(r.preventDefault(),u());}},registerHandlers(){e$1.emitter.on(a$1.INPUT,X),e$1.emitter.on(a$1.CLOSE_MENU,()=>{c=false,t$1=null,n$1=null,l=[],o=0;});}}}export{se as slashCommandPlugin};
package/dist/tooltip.mjs CHANGED
@@ -1 +1,2 @@
1
- import {a as a$1}from'./chunk-4K476NKG.mjs';import {w as w$1}from'./chunk-MWY3XQMH.mjs';import {a}from'./chunk-B6JJAATK.mjs';import {c,j,G,l,N,b,r,m,I,e,d,w,L,z,C,D}from'./chunk-DFL6LPER.mjs';(function(){if(!(typeof document>"u")){var t="mrakomor/core/plugin/tooltip/Tooltip.css",g=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(a){return a.getAttribute("data-mrakomor-css-path")===t});if(!g){var i=document.createElement("style");i.setAttribute("data-mrakomor-css",""),i.setAttribute("data-mrakomor-css-path",t),i.textContent='".mrakomor-tooltip{position:absolute;z-index:9100;display:flex;flex-direction:row;align-items:center;gap:2px;background:#1a1a1a;border-radius:6px;padding:4px 6px;box-shadow:0 3px 10px #00000040;pointer-events:all;white-space:nowrap}.mrakomor-tooltip__btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-width:28px;min-height:28px;padding:0 6px;transition:background .1s}.mrakomor-tooltip__btn:hover{background:#ffffff26}.mrakomor-tooltip__btn--active{background:#ffffff40;color:#7dd3fc}.mrakomor-tooltip__separator{width:1px;height:18px;background:#fff3;margin:0 4px;flex-shrink:0}\\n"',document.head.appendChild(i);}}})();function U({mrakomor:t,open:g,tooltipElement:i}){let a$1=c(0),m$1=c(0),p=c([]),u=null,E=null;function A(){g.set(false),u=null,E=null;}j(()=>{let v=t.emitter.on(a.OPEN_TOOLTIP,({element:o,actions:f})=>{u=o,E=G(),p.set(f??[]),g.set(true),l(()=>{let{x:c,y:s}=N(t.getRoot(),o,i);a$1.set(c),m$1.set(s);});}),e=t.emitter.on(a.CLOSE_TOOLTIP,A),r=t.emitter.on(a.KEYDOWN,()=>{g.peek()===true&&A();}),n=t.emitter.on(a.CLICK,o=>{g.peek()===true&&i.current&&!i.current.contains(o.target)&&u&&!u.contains(o.target)&&A();});return ()=>{v(),e(),r(),n();}});let _=b(()=>({left:`${a$1.get()}px`,top:`${m$1.get()}px`}));return r(()=>g.get(),m("div",{className:"mrakomor-tooltip",contenteditable:false,style:_,$ref:i},()=>X(p.get(),t,E)))}function X(t,g,i){if(!t.length)return null;let a=null,m$1=[];for(let p of t){a!==null&&p.group!==a&&m$1.push(m("span",{className:"mrakomor-tooltip__separator"})),a=p.group;let u=p.label,E=typeof u=="string"?u:typeof u=="function"?m(u,{}):u;m$1.push(m("button",{type:"button",className:["mrakomor-tooltip__btn",p.active?.()?"mrakomor-tooltip__btn--active":""].filter(Boolean).join(" "),title:p.title??"",onClick:A=>{A.preventDefault(),I(i),p.onAction(g);}},E));}return m("span",{style:"display: contents"},m$1)}function J({mrakomor:t}){let i=false,a$2=null,m$1=c(false),p=e(null);function u(){let e=t.getConfig();return {inlineStyles:e.inlineStyles,entityRanges:e.entityRanges,blockTransforms:e.blockComponents}}function E(e,r,n,o,f){let c=[],s=t.getConfig()?.inlineStyles??[],d=t.getConfig()?.entityRanges??[],T=f?.read?.(r)??{inlineStyleRanges:r?.properties?.inlineStyleRanges,entityRanges:r?.properties?.entityRanges},N=f?.element??n,P=T?.inlineStyleRanges??[],{offset:L,length:V}=w$1(N,o),W=L+V;for(let S of e.inlineStyles){let C$1=typeof S=="string"?S:S.style,y=s.find(b=>b.style===C$1);if(!y)continue;let O=P.some(b=>b.style===C$1&&b.offset<W&&b.offset+b.length>L);c.push({label:y.LABEL??C$1,title:C$1.charAt(0)+C$1.slice(1).toLowerCase(),group:"inline",active:()=>O,onAction:b=>{C(),b.command.insertInlineStyleRange({style:y.style}),l(()=>{D();});}});}for(let S of e.entityRanges){let C$1=typeof S=="string"?S:S.NAMESPACE,y=d.find(O=>O.NAMESPACE===C$1);y&&c.push({label:y.LABEL??"\u{1F517}",title:y.NAMESPACE,group:"inline",active:()=>false,onAction:O=>{C(),O.command.insertEntityRange({namespace:y.NAMESPACE,blockElement:n});}});}return c}function A(e){return {label:e.LABEL??e.NAMESPACE,title:e.LABEL??e.NAMESPACE,group:"transform",active:()=>true,onAction:()=>{}}}function _(e,r,n){let o=[],f=new Set;for(let c of e.blockTransforms){let s=typeof c=="string"?c:c?.component?.NAMESPACE??c?.NAMESPACE;if(!s||f.has(s)||(f.add(s),s===n.NAMESPACE))continue;let d=t.resolveComponentConstructor(s);d&&o.push({label:d.LABEL??s,title:`Convert to ${d.LABEL??s}`,group:"transform",active:()=>false,onAction:T=>{T.command.transformBlockElement({blockElement:r,namespace:s});}});}return o}function v(){if(i)return;let e=window.getSelection(),r=t.getRoot();if(!e||e.rangeCount===0){t.command.closeTooltip();return}let n=e.getRangeAt(0);if(!r.contains(n.commonAncestorContainer)){t.command.closeTooltip();return}if(n.startContainer===p.current&&m$1.peek()===true)return;let o=w(n);if(!o){t.command.closeTooltip();return}let f=L(o);if(!f){t.command.closeTooltip();return}let c=f.constructor;if(n.collapsed){t.command.closeTooltip();return}let s=z(n.startContainer),d=z(n.endContainer);if(!s||!d||s!==d){t.command.closeTooltip();return}let T=u(),N=f.getState(),P=f.getFormattingTarget?.(n)??null,L$1=[A(c),..._(T,o,c),...E(T,N,o,n,P)];if(L$1.length===0){t.command.closeTooltip();return}t.command.openTooltip({element:o,actions:L$1});}return {registerEvents(){a.OPEN_TOOLTIP="mrakomor:open-tooltip",a.CLOSE_TOOLTIP="mrakomor:close-tooltip";},registerCommands(e){e.command.openTooltip=(r,n)=>{e.emit(a.OPEN_TOOLTIP,{...r,options:n});},e.command.closeTooltip=r=>{e.emit(a.CLOSE_TOOLTIP,{options:r});};},registerListeners(){t.emitter.on(a.SELECTION_CHANGE,v),a.OPEN_DIALOG&&t.emitter.on(a.OPEN_DIALOG,()=>{i=true,m$1.peek()===true&&t.command.closeTooltip();}),a.CLOSE_DIALOG&&t.emitter.on(a.CLOSE_DIALOG,()=>{i=false;});},onMount(){let{dispose:e}=a$1(t,"mrakomor-tooltip-plugin-container",m(U,{mrakomor:d(t),tooltipElement:p,open:m$1}));a$2=e;},onUnmount(){a$2?.(),a$2=null;}}}export{U as Tooltip,J as tooltipPlugin};
1
+ import {a as a$1}from'./chunk-4NSVB4MI.mjs';import {w}from'./chunk-JFLCNBDM.mjs';import {a}from'./chunk-B6JJAATK.mjs';import {o,v,q,e as e$1,t,h,k as k$1,l}from'./chunk-XQCH2FNS.mjs';import {c,k,m,b,s,n,e,d}from'./chunk-ZDZQ2RVJ.mjs';(function(){if(!(typeof document>"u")){var t="mrakomor/core/plugin/tooltip/Tooltip.css",g=Array.prototype.some.call(document.head.querySelectorAll("style[data-mrakomor-css-path]"),function(a){return a.getAttribute("data-mrakomor-css-path")===t});if(!g){var i=document.createElement("style");i.setAttribute("data-mrakomor-css",""),i.setAttribute("data-mrakomor-css-path",t),i.textContent=`.mrakomor-tooltip{position:absolute;z-index:9100;display:flex;flex-direction:row;align-items:center;gap:2px;background:#1a1a1a;border-radius:6px;padding:4px 6px;box-shadow:0 3px 10px #00000040;pointer-events:all;white-space:nowrap}.mrakomor-tooltip__btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-width:28px;min-height:28px;padding:0 6px;transition:background .1s}.mrakomor-tooltip__btn:hover{background:#ffffff26}.mrakomor-tooltip__btn--active{background:#ffffff40;color:#7dd3fc}.mrakomor-tooltip__separator{width:1px;height:18px;background:#fff3;margin:0 4px;flex-shrink:0}
2
+ `,document.head.appendChild(i);}}})();function U({mrakomor:t,open:g,tooltipElement:i}){let a$1=c(0),d=c(0),u=c([]),p=null,E=null;function A(){g.set(false),p=null,E=null;}k(()=>{let v$1=t.emitter.on(a.OPEN_TOOLTIP,({element:o$1,actions:f})=>{p=o$1,E=o(),u.set(f??[]),g.set(true),m(()=>{let{x:c,y:s}=v(t.getRoot(),o$1,i);a$1.set(c),d.set(s);});}),e=t.emitter.on(a.CLOSE_TOOLTIP,A),r=t.emitter.on(a.KEYDOWN,()=>{g.peek()===true&&A();}),n=t.emitter.on(a.CLICK,o=>{g.peek()===true&&i.current&&!i.current.contains(o.target)&&p&&!p.contains(o.target)&&A();});return ()=>{v$1(),e(),r(),n();}});let _=b(()=>({left:`${a$1.get()}px`,top:`${d.get()}px`}));return s(()=>g.get(),n("div",{className:"mrakomor-tooltip",contenteditable:false,style:_,$ref:i},()=>X(u.get(),t,E)))}function X(t,g,i){if(!t.length)return null;let a=null,d=[];for(let u of t){a!==null&&u.group!==a&&d.push(n("span",{className:"mrakomor-tooltip__separator"})),a=u.group;let p=u.label,E=typeof p=="string"?p:typeof p=="function"?n(p,{}):p;d.push(n("button",{type:"button",className:["mrakomor-tooltip__btn",u.active?.()?"mrakomor-tooltip__btn--active":""].filter(Boolean).join(" "),title:u.title??"",onClick:A=>{A.preventDefault(),q(i),u.onAction(g);}},E));}return n("span",{style:"display: contents"},d)}function J({mrakomor:t$1}){let i=false,a$2=null,d$1=c(false),u=e(null);function p(){let e=t$1.getConfig();return {inlineStyles:e.inlineStyles,entityRanges:e.entityRanges,blockTransforms:t$1.register.blocks.list()}}function E(e,r,n,o,f){let c=[],s=t$1.getConfig()?.inlineStyles??[],m$1=t$1.getConfig()?.entityRanges??[],T=f?.read?.(r)??{inlineStyleRanges:r?.properties?.inlineStyleRanges,entityRanges:r?.properties?.entityRanges},N=f?.element??n,P=T?.inlineStyleRanges??[],{offset:L,length:V}=w(N,o),W=L+V;for(let S of e.inlineStyles){let C=typeof S=="string"?S:S.style,y=s.find(b=>b.style===C);if(!y)continue;let O=P.some(b=>b.style===C&&b.offset<W&&b.offset+b.length>L);c.push({label:y.LABEL??C,title:C.charAt(0)+C.slice(1).toLowerCase(),group:"inline",active:()=>O,onAction:b=>{k$1(),b.command.insertInlineStyleRange({style:y.style}),m(()=>{l();});}});}for(let S of e.entityRanges){let C=typeof S=="string"?S:S.NAMESPACE,y=m$1.find(O=>O.NAMESPACE===C);y&&c.push({label:y.LABEL??"\u{1F517}",title:y.NAMESPACE,group:"inline",active:()=>false,onAction:O=>{k$1(),O.command.insertEntityRange({namespace:y.NAMESPACE,blockElement:n});}});}return c}function A(e){return {label:e.LABEL??e.NAMESPACE,title:e.LABEL??e.NAMESPACE,group:"transform",active:()=>true,onAction:()=>{}}}function _(e,r,n){let o=[],f=new Set;for(let c of e.blockTransforms){let s=typeof c=="string"?c:c?.component?.NAMESPACE??c?.NAMESPACE;if(!s||f.has(s)||(f.add(s),s===n.NAMESPACE))continue;let m=t$1.resolveComponentConstructor(s);m&&o.push({label:m.LABEL??s,title:`Convert to ${m.LABEL??s}`,group:"transform",active:()=>false,onAction:T=>{T.command.transformBlockElement({blockElement:r,namespace:s});}});}return o}function v(){if(i)return;let e=window.getSelection(),r=t$1.getRoot();if(!e||e.rangeCount===0){t$1.command.closeTooltip();return}let n=e.getRangeAt(0);if(!r.contains(n.commonAncestorContainer)){t$1.command.closeTooltip();return}if(n.startContainer===u.current&&d$1.peek()===true)return;let o=e$1(n);if(!o){t$1.command.closeTooltip();return}let f=t(o);if(!f){t$1.command.closeTooltip();return}let c=f.constructor;if(n.collapsed){t$1.command.closeTooltip();return}let s=h(n.startContainer),m=h(n.endContainer);if(!s||!m||s!==m){t$1.command.closeTooltip();return}let T=p(),N=f.getState(),P=f.getFormattingTarget?.(n)??null,L=[A(c),..._(T,o,c),...E(T,N,o,n,P)];if(L.length===0){t$1.command.closeTooltip();return}t$1.command.openTooltip({element:o,actions:L});}return {registerEvents(){a.OPEN_TOOLTIP="mrakomor:open-tooltip",a.CLOSE_TOOLTIP="mrakomor:close-tooltip";},registerCommands(e){e.command.openTooltip=(r,n)=>{e.emit(a.OPEN_TOOLTIP,{...r,options:n});},e.command.closeTooltip=r=>{e.emit(a.CLOSE_TOOLTIP,{options:r});};},registerListeners(){t$1.emitter.on(a.SELECTION_CHANGE,v),a.OPEN_DIALOG&&t$1.emitter.on(a.OPEN_DIALOG,()=>{i=true,d$1.peek()===true&&t$1.command.closeTooltip();}),a.CLOSE_DIALOG&&t$1.emitter.on(a.CLOSE_DIALOG,()=>{i=false;});},onMount(){let{dispose:e}=a$1(t$1,"mrakomor-tooltip-plugin-container",n(U,{mrakomor:d(t$1),tooltipElement:u,open:d$1}));a$2=e;},onUnmount(){a$2?.(),a$2=null;}}}export{U as Tooltip,J as tooltipPlugin};
package/dist/tts.mjs CHANGED
@@ -1,2 +1,3 @@
1
- import {a as a$4}from'./chunk-R6ZAVJUD.mjs';import {a}from'./chunk-IAGILV5H.mjs';import {a as a$2,b as b$2}from'./chunk-MIXXUTVH.mjs';import {a as a$3,b as b$1}from'./chunk-5V6D56TM.mjs';import'./chunk-4CNZR6XL.mjs';import {a as a$5}from'./chunk-PYVJPCUA.mjs';import {g,f as f$1,a as a$1,e}from'./chunk-O7IO4QXV.mjs';import {u as u$1,n,v as v$1,e as e$1,f as f$2,g as g$1,h,i as i$1}from'./chunk-MWY3XQMH.mjs';import'./chunk-B6JJAATK.mjs';import {s,m as m$1,x as x$1}from'./chunk-DFL6LPER.mjs';var i=class extends a{static getStateSchema(t){return g(t,{component:this.NAMESPACE,properties:{text:a$1.string().default(t?.textContent??t?.innerText??""),entityRanges:f$1()}})}getInlineStyleComponents(){return []}getEntityRangeComponents(){return this.props?.entityRanges?.get()??this.mrakomor.getConfig()?.entityRanges??[]}parseFromHTML(t){return u$1(this,t)}_buildContent(t){return n(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}getFormattingTarget(t){return v$1(this.element)}},f=class extends i{static get NAMESPACE(){return e$1}static get LABEL(){return "H1"}constructor(t){super(t),this._level=1;}},m=class extends i{static get NAMESPACE(){return f$2}static get LABEL(){return "H2"}constructor(t){super(t),this._level=2;}},u=class extends i{static get NAMESPACE(){return g$1}static get LABEL(){return "H3"}constructor(t){super(t),this._level=3;}},d=class extends i{static get NAMESPACE(){return h}static get LABEL(){return "H4"}constructor(t){super(t),this._level=4;}},b=class extends i{static get NAMESPACE(){return i$1}static get LABEL(){return "H5"}constructor(t){super(t),this._level=5;}};function j(){return {resolveConfig:e=>(e.blockComponents.push(m,u,d),e),resolveComponent:e=>{if(e===f.NAMESPACE)return f;if(e===m.NAMESPACE)return m;if(e===u.NAMESPACE)return u;if(e===d.NAMESPACE)return d;if(e===b.NAMESPACE)return b}}}var O=e=>a$1.object({componentId:a$1.string().default(()=>s()),depth:a$1.number().default(0),text:a$1.string().default(""),entityRanges:f$1()}).default({}),v=class e extends a$2{static getStateSchema(t){let r=a$3(t);return a$1.object({component:a$1.string().default(e.NAMESPACE),componentId:a$1.string().default(t?.getAttribute("data-componentid")||s()),properties:a$1.object({items:a$1.array(O()).default([O().parse()]).transform(b$1)}).default({}),settings:a$1.object({style:a$1.enum(["ORDERED","UNORDERED"]).default(r??"UNORDERED")}).default({})}).default({})}getInlineStyleComponents(){return []}parseFromHTML(t){return this.constructor.getStateSchema(t).parse(super.parseFromHTML(t))}};function F(){return b$2(v)}var l=class e extends a$4{static getStateSchema(t){return g(t,{component:e.NAMESPACE,properties:{entityRanges:f$1(),text:a$1.string().default(t?.innerText??t?.textContent??"")}})}getInlineStyleComponents(){return []}};function $(){return {resolveConfig:e=>(e.blockComponents.push(l),e),resolveComponent:e=>{if(e===l.NAMESPACE)return l}}}(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/tts/TtsVoice.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='".atom-tts-voice{position:relative;border-radius:2px;display:inline-block}.atom-tts-voice:before{content:attr(data-voice-label);position:absolute;top:-1.1em;left:0;font-size:10px;line-height:1;white-space:nowrap;padding:1px 4px;border-radius:3px;pointer-events:none;font-weight:600}.tts-voice--man{background:#e8f0fe;color:#174ea6}.tts-voice--man:before{background:#1a73e8;color:#fff}.tts-voice--woman{background:#f3e8fd;color:#5e35b1}.tts-voice--woman:before{background:#7b1fa2;color:#fff}.tts-voice-toolbar{display:flex;flex-direction:column;gap:6px}.tts-voice-toolbar__row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0}.tts-voice-toolbar__voice{flex-shrink:0;border:1px solid #dadce0;border-radius:4px;padding:4px 8px;font-size:12px;background:#fff;color:#333}.tts-voice-toolbar__voice--man{border-color:#1a73e8;color:#174ea6}.tts-voice-toolbar__voice--woman{border-color:#7b1fa2;color:#5e35b1}.tts-voice-toolbar__voice--active{font-weight:600}.tts-voice-toolbar__voice--man.tts-voice-toolbar__voice--active{background:#e8f0fe}.tts-voice-toolbar__voice--woman.tts-voice-toolbar__voice--active{background:#f3e8fd}.tts-voice-toolbar__sep{width:1px;height:18px;background:#e0e0e0;flex-shrink:0;margin:0 2px}.tts-voice-toolbar__btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#555}.tts-voice-toolbar__btn:hover{background:#f0f0f0;color:#222}.tts-voice-toolbar__btn--danger:hover{color:#d32f2f;background:#fdecea}\\n"',document.head.appendChild(r);}}})();var E=[{id:"Jarda",label:"Voice Jarda",gender:"man"},{id:"Pavel",label:"Voice Pavel",gender:"man"},{id:"Radek",label:"Voice Radek",gender:"man"},{id:"Magda",label:"Voice Magda",gender:"woman"},{id:"Marketa",label:"Voice Marketa",gender:"woman"},{id:"Silva",label:"Voice Silva",gender:"woman"}],J='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/></svg>';function x(e){return E.find(t=>t.id===e)??E[0]}var p=class e$1 extends a$5{static get NAMESPACE(){return "atom.tts.Voice"}static get LABEL(){return "VOICE"}static match(t){return t?.entity?.type===e$1.NAMESPACE||t?.nodeName==="SPAN"&&t?.getAttribute?.("data-entity-type")===e$1.NAMESPACE}static getStateSchema(t){let r;if(t?.getAttribute?.("data-state"))try{r=JSON.parse(t.getAttribute("data-state"));}catch{}let a=r?.entity?.data?.voice??t?.getAttribute?.("data-voice")??"";return e({type:e$1.NAMESPACE,data:a$1.object({voice:a$1.string().default(a)}).default({}),length:r?.length??0,offset:r?.offset??0}).default({})}#e({entity:t,length:r,offset:a}){let h=t.peek()?.data?.voice??"";return m$1("div",{className:"tts-voice-toolbar"},[m$1("div",{className:"tts-voice-toolbar__row"},[...E.map(n=>m$1("button",{type:"button",className:`tts-voice-toolbar__voice tts-voice-toolbar__voice--${n.gender}${h===n.id?" tts-voice-toolbar__voice--active":""}`,title:n.label,onClick:()=>{t.set({...t.peek(),data:{voice:n.id}}),this.mrakomor.command.closeDialog();}},n.label)),m$1("span",{className:"tts-voice-toolbar__sep"}),m$1("button",{type:"button",className:"tts-voice-toolbar__btn tts-voice-toolbar__btn--danger",title:"Remove TTS voice",$dangerouslySetInnerHTML:J,onClick:()=>{this.mrakomor.command.removeEntityRange?.({state:{entity:t.peek(),length:r.peek(),offset:a.peek()},blockElement:x$1(this.element)});}})])])}#t(t){this.mrakomor.command.openDialog({element:this.element,children:this.#e(t)});}onMount(){let{entity:t}=this.props;t.peek()?.data?.voice||this.#t(this.props);}render(){let{entity:t,length:r,offset:a,children:h}=this.props;return m$1("span",{className:()=>{let n=t.get()?.data?.voice??"";return `atom-tts-voice tts-voice--${x(n||"man1").gender}`},"data-entity-type":this.constructor.NAMESPACE,"data-voice":()=>t.get()?.data?.voice??"","data-voice-label":()=>{let n=t.get()?.data?.voice??"";return n?x(n).label:""},$ref:this.element,onClick:n=>{n.preventDefault(),this.#t({entity:t,length:r,offset:a});},"data-state":()=>JSON.stringify({entity:t.get(),length:r.get(),offset:a.get()})},h)}};function U(){return {resolveConfig:e=>(e.entityRanges.push(p),e),resolveComponent:e=>{if(e===p.NAMESPACE)return p}}}
1
+ import {a as a$5}from'./chunk-PMR6XOZ6.mjs';import {a}from'./chunk-XVWRPXC2.mjs';import {a as a$2,b as b$2}from'./chunk-F67KYIDS.mjs';import {a as a$3,b as b$1}from'./chunk-QWAQBTXR.mjs';import'./chunk-P6HMUYFA.mjs';import {a as a$6}from'./chunk-6XPPNCKR.mjs';import {d as d$1,c,b as b$3}from'./chunk-WX7ESURF.mjs';import'./chunk-7UI6TZPX.mjs';import {a as a$1}from'./chunk-P7IKAZYZ.mjs';import {u as u$1,n,v as v$1,e,f as f$2,g,h,i as i$1}from'./chunk-JFLCNBDM.mjs';import'./chunk-B6JJAATK.mjs';import {a as a$4,f as f$1}from'./chunk-XQCH2FNS.mjs';import {n as n$1}from'./chunk-ZDZQ2RVJ.mjs';var i=class extends a{static getStateSchema(t){return d$1(t,{component:this.NAMESPACE,properties:{text:a$1.string().default(t?.textContent??t?.innerText??""),entityRanges:c()}})}getInlineStyleComponents(){return []}getEntityRangeComponents(){return this.props?.entityRanges?.get()??this.mrakomor.getConfig()?.entityRanges??[]}parseFromHTML(t){return u$1(this,t)}_buildContent(t){return n(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}getFormattingTarget(t){return v$1(this.element)}},f=class extends i{static get NAMESPACE(){return e}static get LABEL(){return "H1"}constructor(t){super(t),this._level=1;}},m=class extends i{static get NAMESPACE(){return f$2}static get LABEL(){return "H2"}constructor(t){super(t),this._level=2;}},u=class extends i{static get NAMESPACE(){return g}static get LABEL(){return "H3"}constructor(t){super(t),this._level=3;}},d=class extends i{static get NAMESPACE(){return h}static get LABEL(){return "H4"}constructor(t){super(t),this._level=4;}},b=class extends i{static get NAMESPACE(){return i$1}static get LABEL(){return "H5"}constructor(t){super(t),this._level=5;}};function j(){return {resolveConfig:e=>(e.blockComponents.push(m,u,d),e),resolveComponent:e=>{if(e===f.NAMESPACE)return f;if(e===m.NAMESPACE)return m;if(e===u.NAMESPACE)return u;if(e===d.NAMESPACE)return d;if(e===b.NAMESPACE)return b}}}var O=e=>a$1.object({componentId:a$1.string().default(()=>a$4()),depth:a$1.number().default(0),text:a$1.string().default(""),entityRanges:c()}).default({}),v=class e extends a$2{static getStateSchema(t){let r=a$3(t);return a$1.object({component:a$1.string().default(e.NAMESPACE),componentId:a$1.string().default(t?.getAttribute("data-componentid")||a$4()),properties:a$1.object({items:a$1.array(O()).default([O().parse()]).transform(b$1)}).default({}),settings:a$1.object({style:a$1.enum(["ORDERED","UNORDERED"]).default(r??"UNORDERED")}).default({})}).default({})}getInlineStyleComponents(){return []}parseFromHTML(t){return this.constructor.getStateSchema(t).parse(super.parseFromHTML(t))}};function F(){return b$2(v)}var l=class e extends a$5{static getStateSchema(t){return d$1(t,{component:e.NAMESPACE,properties:{entityRanges:c(),text:a$1.string().default(t?.innerText??t?.textContent??"")}})}getInlineStyleComponents(){return []}};function $(){return {resolveConfig:e=>(e.blockComponents.push(l),e),resolveComponent:e=>{if(e===l.NAMESPACE)return l}}}(function(){if(!(typeof document>"u")){var e="mrakomor/core/plugin/tts/TtsVoice.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=`.atom-tts-voice{position:relative;border-radius:2px;display:inline-block}.atom-tts-voice:before{content:attr(data-voice-label);position:absolute;top:-1.1em;left:0;font-size:10px;line-height:1;white-space:nowrap;padding:1px 4px;border-radius:3px;pointer-events:none;font-weight:600}.tts-voice--man{background:#e8f0fe;color:#174ea6}.tts-voice--man:before{background:#1a73e8;color:#fff}.tts-voice--woman{background:#f3e8fd;color:#5e35b1}.tts-voice--woman:before{background:#7b1fa2;color:#fff}.tts-voice-toolbar{display:flex;flex-direction:column;gap:6px}.tts-voice-toolbar__row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0}.tts-voice-toolbar__voice{flex-shrink:0;border:1px solid #dadce0;border-radius:4px;padding:4px 8px;font-size:12px;background:#fff;color:#333}.tts-voice-toolbar__voice--man{border-color:#1a73e8;color:#174ea6}.tts-voice-toolbar__voice--woman{border-color:#7b1fa2;color:#5e35b1}.tts-voice-toolbar__voice--active{font-weight:600}.tts-voice-toolbar__voice--man.tts-voice-toolbar__voice--active{background:#e8f0fe}.tts-voice-toolbar__voice--woman.tts-voice-toolbar__voice--active{background:#f3e8fd}.tts-voice-toolbar__sep{width:1px;height:18px;background:#e0e0e0;flex-shrink:0;margin:0 2px}.tts-voice-toolbar__btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#555}.tts-voice-toolbar__btn:hover{background:#f0f0f0;color:#222}.tts-voice-toolbar__btn--danger:hover{color:#d32f2f;background:#fdecea}
2
+ `,document.head.appendChild(r);}}})();var E=[{id:"Jarda",label:"Voice Jarda",gender:"man"},{id:"Pavel",label:"Voice Pavel",gender:"man"},{id:"Radek",label:"Voice Radek",gender:"man"},{id:"Magda",label:"Voice Magda",gender:"woman"},{id:"Marketa",label:"Voice Marketa",gender:"woman"},{id:"Silva",label:"Voice Silva",gender:"woman"}],J='<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/></svg>';function x(e){return E.find(t=>t.id===e)??E[0]}var p=class e extends a$6{static get NAMESPACE(){return "atom.tts.Voice"}static get LABEL(){return "VOICE"}static match(t){return t?.entity?.type===e.NAMESPACE||t?.nodeName==="SPAN"&&t?.getAttribute?.("data-entity-type")===e.NAMESPACE}static getStateSchema(t){let r;if(t?.getAttribute?.("data-state"))try{r=JSON.parse(t.getAttribute("data-state"));}catch{}let a=r?.entity?.data?.voice??t?.getAttribute?.("data-voice")??"";return b$3({type:e.NAMESPACE,data:a$1.object({voice:a$1.string().default(a)}).default({}),length:r?.length??0,offset:r?.offset??0}).default({})}#e({entity:t,length:r,offset:a}){let h=t.peek()?.data?.voice??"";return n$1("div",{className:"tts-voice-toolbar"},[n$1("div",{className:"tts-voice-toolbar__row"},[...E.map(n=>n$1("button",{type:"button",className:`tts-voice-toolbar__voice tts-voice-toolbar__voice--${n.gender}${h===n.id?" tts-voice-toolbar__voice--active":""}`,title:n.label,onClick:()=>{t.set({...t.peek(),data:{voice:n.id}}),this.mrakomor.command.closeDialog();}},n.label)),n$1("span",{className:"tts-voice-toolbar__sep"}),n$1("button",{type:"button",className:"tts-voice-toolbar__btn tts-voice-toolbar__btn--danger",title:"Remove TTS voice",$dangerouslySetInnerHTML:J,onClick:()=>{this.mrakomor.command.removeEntityRange?.({state:{entity:t.peek(),length:r.peek(),offset:a.peek()},blockElement:f$1(this.element)});}})])])}#t(t){this.mrakomor.command.openDialog({element:this.element,children:this.#e(t)});}onMount(){let{entity:t}=this.props;t.peek()?.data?.voice||this.#t(this.props);}render(){let{entity:t,length:r,offset:a,children:h}=this.props;return n$1("span",{className:()=>{let n=t.get()?.data?.voice??"";return `atom-tts-voice tts-voice--${x(n||"man1").gender}`},"data-entity-type":this.constructor.NAMESPACE,"data-voice":()=>t.get()?.data?.voice??"","data-voice-label":()=>{let n=t.get()?.data?.voice??"";return n?x(n).label:""},$ref:this.element,onClick:n=>{n.preventDefault(),this.#t({entity:t,length:r,offset:a});},"data-state":()=>JSON.stringify({entity:t.get(),length:r.get(),offset:a.get()})},h)}};function U(){return {resolveConfig:e=>(e.entityRanges.push(p),e),resolveComponent:e=>{if(e===p.NAMESPACE)return p}}}
2
3
  export{i as TtsHeadlineComponent,v as TtsList,l as TtsParagraph,p as TtsVoice,E as VOICES,x as getVoice,j as ttsHeadlinePlugin,F as ttsListPlugin,$ as ttsParagraphPlugin,U as ttsVoicePlugin};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrakomor/core",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "description": "",
5
5
  "imports": {
6
6
  "#src/*.mjs": "./src/*.mjs",
@@ -17,6 +17,8 @@
17
17
  "./blockInsertMenu": "./dist/blockInsertMenu.mjs",
18
18
  "./slashCommand": "./dist/slashCommand.mjs",
19
19
  "./clipboard": "./dist/clipboard.mjs",
20
+ "./footer": "./dist/footer.mjs",
21
+ "./help": "./dist/help.mjs",
20
22
  "./tts": "./dist/tts.mjs"
21
23
  },
22
24
  "files": [
@@ -24,17 +26,21 @@
24
26
  ],
25
27
  "sideEffects": [
26
28
  "**/*.css",
27
- "./dist/chunk-4CNZR6XL.mjs",
28
- "./dist/chunk-4K476NKG.mjs",
29
- "./dist/chunk-5V6D56TM.mjs",
29
+ "./dist/chunk-4NSVB4MI.mjs",
30
+ "./dist/chunk-6XPPNCKR.mjs",
31
+ "./dist/chunk-7UI6TZPX.mjs",
30
32
  "./dist/chunk-B6JJAATK.mjs",
31
- "./dist/chunk-DFL6LPER.mjs",
32
- "./dist/chunk-IAGILV5H.mjs",
33
- "./dist/chunk-MIXXUTVH.mjs",
34
- "./dist/chunk-MWY3XQMH.mjs",
35
- "./dist/chunk-O7IO4QXV.mjs",
36
- "./dist/chunk-PYVJPCUA.mjs",
37
- "./dist/chunk-R6ZAVJUD.mjs"
33
+ "./dist/chunk-F67KYIDS.mjs",
34
+ "./dist/chunk-JFLCNBDM.mjs",
35
+ "./dist/chunk-P6HMUYFA.mjs",
36
+ "./dist/chunk-P7IKAZYZ.mjs",
37
+ "./dist/chunk-PMR6XOZ6.mjs",
38
+ "./dist/chunk-QWAQBTXR.mjs",
39
+ "./dist/chunk-WQWE5UCN.mjs",
40
+ "./dist/chunk-WX7ESURF.mjs",
41
+ "./dist/chunk-XQCH2FNS.mjs",
42
+ "./dist/chunk-XVWRPXC2.mjs",
43
+ "./dist/chunk-ZDZQ2RVJ.mjs"
38
44
  ],
39
45
  "scripts": {
40
46
  "preversion": "npm run build && npm run lint && npm test && npm run types",
@@ -62,9 +68,10 @@
62
68
  "access": "public"
63
69
  },
64
70
  "dependencies": {
65
- "@esmj/dom": "^0.3.0",
71
+ "@esmj/dom": "^0.3.1",
66
72
  "@esmj/emitter": "^0.4.3",
67
- "@esmj/schema": "^0.9.1"
73
+ "@esmj/observable": "^0.2.2",
74
+ "@esmj/schema": "^0.9.2"
68
75
  },
69
76
  "devDependencies": {
70
77
  "@biomejs/biome": "^2.5.10",
@@ -1 +0,0 @@
1
- import {b,a}from'./chunk-O7IO4QXV.mjs';import {j}from'./chunk-MWY3XQMH.mjs';import {l,J,n,i}from'./chunk-DFL6LPER.mjs';var s=class extends n{state;element;mrakomor;constructor(t){super(t);let{state:r,observeDOMChanges:o=true}=t??{};this.state=r,this.element=null,this.mrakomor=i(b),this._stale=false,this._observer=null,this._observeDOMChanges=o;}static get NAMESPACE(){return "namespace.AbstractComponent"}static getStateSchema(){return a.object({component:a.string().default(this.NAMESPACE),properties:a.object().default({}),settings:a.object().default({})}).default({})}static getPropsSchema(){return a.object({state:this.getStateSchema(),observeDOMChanges:a.boolean().default(true)}).default({})}parseFromHTML(t){return this.constructor.getStateSchema(t).parse()}getState(){if(this._stale){let t=this.element;return this.parseFromHTML(t)}return this.state.peek()}onMount(){this.element&&this._observeDOMChanges&&(this._observer=new MutationObserver(()=>{this._stale=true;}),this._observer.observe(this.element,{subtree:true,characterData:true,characterDataOldValue:true,childList:true,attributes:true,attributeOldValue:true}));}onUnmount(){this._observer&&(this._observer.disconnect(),this._observer=null,this._stale=false);}};var m=class extends s{static get NAMESPACE(){return "namespace.block.BlockComponent"}static get LABEL(){return ""}static get KEYWORDS(){return []}static get GROUP(){return "blocks"}isAtomic(){return false}setCursor(t){let r=()=>{if(!this.element?.isConnected)return;let o=typeof t=="number"?t:j(this.getState()?.properties?.text).length;J(this.element,o);};r(),l(r);}onKeydown(t){}getFormattingTarget(t){return null}};export{m as a};
@@ -1 +0,0 @@
1
- import {p}from'./chunk-DFL6LPER.mjs';function c(e,r,s){let n=e.getRoot()?.querySelector(".mrakomor-tools-container");if(!n)return {container:null,dispose:null};let o=document.createElement("div");o.className=r,n.append(o);let i=p(o,s);return {container:o,dispose:i??null}}export{c as a};
@@ -1 +0,0 @@
1
- import {r,a,l,k as k$1,p,n,j,o}from'./chunk-MWY3XQMH.mjs';import {s,F as F$1}from'./chunk-DFL6LPER.mjs';function w(e){if(e?.nodeName==="OL")return "ORDERED";if(e?.nodeName==="UL")return "UNORDERED"}function O(e=[]){let n=new Set;return e.map(t=>{if(t?.componentId&&!n.has(t.componentId))return n.add(t.componentId),t;let r=s();return n.add(r),{...t,componentId:r}})}function D(e,n){if(!e||!n)return null;let t=n.startContainer;for(t.nodeType===Node.TEXT_NODE&&(t=t.parentElement);t&&t!==e;){if(t.nodeName==="LI"&&e.contains(t))return t;t=t.parentElement;}return null}function k(e,n){if(!n)return -1;let t=n.getAttribute?.("data-item-index");if(t!=null&&t!==""){let r=Number(t);if(!Number.isNaN(r))return r}return [...e.querySelectorAll("li")].indexOf(n)}function B(e,n){return !e||!n?0:F$1(e,n.startContainer,n.startOffset)}function F(e,n){let t={properties:{text:e.text??"",inlineStyleRanges:e.inlineStyleRanges??[],entityRanges:e.entityRanges??[]}},{originalLineState:r$1,newLineState:i}=r(t,n);return {before:{componentId:e.componentId,depth:e.depth??0,text:r$1.properties.text,inlineStyleRanges:r$1.properties.inlineStyleRanges??[],entityRanges:r$1.properties.entityRanges??[]},after:{componentId:s(),depth:e.depth??0,text:i.properties.text,inlineStyleRanges:i.properties.inlineStyleRanges??[],entityRanges:i.properties.entityRanges??[]}}}function M(e,n){let t=e.properties?.items??[],r=t[n];if(!r)return {blocks:[e],paragraphIndex:0};let i=t.slice(0,n),o=t.slice(n+1),p={component:a,componentId:s(),properties:{text:r.text??"",inlineStyleRanges:r.inlineStyleRanges??[],entityRanges:r.entityRanges??[]},settings:{}},s$1=[];return i.length&&s$1.push({...e,properties:{...e.properties,items:i}}),s$1.push(p),o.length&&s$1.push({...e,componentId:i.length?s():e.componentId,properties:{...e.properties,items:o}}),{blocks:s$1,paragraphIndex:i.length?1:0}}function P(e,n,t){if(n<0||t!==n+1||t>=e.length)return null;let r=e[n],i=e[t];if(!l(r)||!k$1(i))return null;let o=r.properties?.items??[],p$1=o.length-1;if(p$1<0)return null;let s=o[p$1],S={properties:{text:s.text??"",inlineStyleRanges:s.inlineStyleRanges??[],entityRanges:s.entityRanges??[]}},L={properties:{text:i.properties?.text??"",inlineStyleRanges:i.properties?.inlineStyleRanges??[],entityRanges:i.properties?.entityRanges??[]}},{state:l$1,cursor:N}=p(S,L),b={...r,properties:{...r.properties,items:o.map((g,A)=>A===p$1?{...g,text:l$1.properties.text,inlineStyleRanges:l$1.properties.inlineStyleRanges,entityRanges:l$1.properties.entityRanges}:g)}},c=[...e];return c[n]=b,c.splice(t,1),{content:c,listIndex:n,cursor:N}}function U(e,n$1){return n({properties:{text:e?.text??"",inlineStyleRanges:e?.inlineStyleRanges??[],entityRanges:e?.entityRanges??[]}},n$1)}function q(e,n){let t=Number(e.getAttribute("data-depth")??0)||0,r={properties:{text:j(e.innerText??e.textContent??""),inlineStyleRanges:[],entityRanges:[]}};return o(e.childNodes,r,0,n),{componentId:e.getAttribute("data-componentid")||void 0,depth:t,text:j(r.properties.text),inlineStyleRanges:r.properties.inlineStyleRanges,entityRanges:r.properties.entityRanges}}export{w as a,O as b,D as c,k as d,B as e,F as f,M as g,P as h,U as i,q as j};
@@ -1 +0,0 @@
1
- var me=class{next(...e){}error(...e){}complete(...e){}},K=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 q=Symbol("@esmj/signals:type"),T=Symbol("@esmj/signals:name");var h=null,J=false,Z=[];function v(e){let t=h;h=null;let n=e();return h=t,n}function Ke(){J=false;let e=xe();for(let n of e)n.get();let t=Z;Z=[];for(let n of t)n();}function be(){J||(J=true,queueMicrotask(Ke));}function Q(e){Z.push(e),be();}var ye=Symbol("@esmj/signals:internal observable"),b=Symbol("@esmj/signals:original function"),Je=class extends K{#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[b]=void 0),e instanceof Ee&&e.next[b]===void 0){let t=e.next.bind(e);e.next=()=>v(()=>{this.#e.add(e),t(),this.#o();}),e.next[b]=t;}return this.subscribe(e)}getPending(){let e=[];for(let t of this.#e){if(!t.get[b]){let n=t.get,o=n.bind(t);t.get=()=>v(()=>(this.#e.delete(t),o())),t.get[b]=n;}e.push(t);}return e}unwatch(e){return e.next=e.next[b]?e.next[b]:e.next,e.get=e.get[b]?e.get[b]:e.get,this.#e.delete(e),this.unsubscribe(e)}},P=null;function Se(e){P=new Je(e);}Se(()=>{be();});function xe(){return P.getPending()}function Ce(e){return P.watch(e)}function we(e){return P.unwatch(e)}var y=Symbol("@esmj/signals:no error"),Ee=class Ne extends me{#e=true;#o=false;#n=null;#r=this.#d();#c=null;#u=null;#i=0;#s=new Map;#t=y;constructor(t,n){super(),this.#c=t,this.#u=n,this.debug=n?.debug,this[q]="computed",this[T]=n?.debug??null,this.get=this.get.bind(this);}#a(){for(let{unsubscribe:t}of this.#r.dependencies.values())t();this.#r.dependencies.clear();}#d(){return {dependencies:new Map,sourceRevisions:new Map,observer:this}}getRevision(){return this.#i}getDebugInfo(){return {name:this[T],dirty:this.#e,revision:this.#i,sourceDependencies:[...this.#s.keys()]}}#f(){for(let[t,n]of this.#s)if(t instanceof Ne&&v(()=>t.get()),t.getRevision()!==n)return true;return false}next(){this.#e=true,this.#n[ye].next();}get(){if(this.#o)throw new Error("Cycle detected in computed signal");if(this.#n||(this.#n=E(this.#l(),this.#u)),(this.#e||this.#t!==y)&&(this.#s.size===0||this.#f()?this.#l():this.#e=false),h&&h.sourceRevisions.set(this,this.#i),this.#t!==y)throw this.#t;return this.#n.get()}peek(){if(this.#n||(this.#n=E(this.#l(),this.#u)),(this.#e||this.#t!==y)&&(this.#s.size===0||this.#f()?this.#l():this.#e=false),this.#t!==y)throw this.#t;return this.#n.peek()}#l(){this.#o=true,this.#e=false,this.#t=y,this.#a(),this.#r.sourceRevisions.clear();let t=h;h=this.#r;let n;try{n=this.#c();}catch(o){this.#t=o;}return h=t,this.#s=this.#r.sourceRevisions,this.#r.sourceRevisions=new Map,this.#o=false,n instanceof Promise&&(n=n.then(o=>{this.#t=y,this.#n.set(o);}).catch(o=>{this.#t=o;})),this.#t===y&&this.#n&&this.#n.set(n),this.#i++,n}destroy(){this.#a(),this.#s.clear(),this.#e=true,this.#t=y;}};function N(e,t){return new Ee(e,t)}function g(e,t){let n,{debug:o,...r}={},s=N(()=>{n?.(),n=e();},{equals:()=>false,...r});s.get(),Ce(s);let i=()=>{n?.(),s.destroy(),we(s);};return i[Symbol.dispose]=i,i[q]="effect",i[T]=o??null,i.__RX_COMPUTED__=s,i}function E(e,t={}){let n=t?.equals??Object.is,o=0,r=new K;function s(){return h&&(h.dependencies.set(r,r.subscribe(h.observer)),h.sourceRevisions.set(c,o)),e}function i(){return e}function l(f){if(!n(e,f)){e=f,o++,r.next();}return e}function u(){return o}let c={get:s,set:l,peek:i,getRevision:u,[ye]:r,[q]:"signal",[T]:t?.debug??null};return c}function j(){return Date.now().toString(32).substring(5)+Math.random().toString(32).substring(2)}var Ae=Symbol("node-component"),F=Symbol("node-internal"),Be=Symbol("keep-literal");function Ze(e){let t=()=>e;return t[Be]=true,t}function Qe(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,l){if(Reflect.has(s,i))return Reflect.get(s,i,l);if(!t)return;let u=t[i];return typeof u=="function"?u.bind(t):u},set(s,i,l,u){return Reflect.has(s,i)||!t?Reflect.set(s,i,l,u):(t[i]=l,true)},has(s,i){return Reflect.has(s,i)||!!t&&i in t}})}var Ie=null;function m(){return Ie}function H(e){Ie=e;}function z(e){return e?.[Ae]||null}function ve(e,t){e[Ae]=t;}function X(e,t={disposers:[],id:j()}){return e?.[F]?e[F]:(e&&(e[F]=t),t)}function et(e){return e[F]}function S(e,t){let n=et(e);n||(n=X(e)),n.disposers.push(t);}function B(e,t,n){e.has(t)||e.set(t,[]),e.get(t).push(n);}function x(e,t){let n=m();H(e);try{return t()}finally{H(n);}}var U=new Map,I=new Map,ke=new Map;function De(e){let t=Object.create(null);for(let n of Object.keys(e)){let o=e[n];n==="children"?t[n]=o:o?.[Be]?t[n]=o():o!=null&&typeof o.get=="function"?t[n]=o:typeof o=="function"?t[n]=N(o):t[n]=E(o);}return t}function G(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 l="value"in s?s.value:s.get?.call(e),u="value"in i?i.value:i.get?.call(t);return G(l,u)})}function tt(e){return {id:Symbol("context-id"),defaultValue:e}}function nt(e,t){let n=m();n&&n.contexts.set(e.id,t);}function ot(e){let t=m();return t?.contexts?.has(e.id)?t.contexts.get(e.id):e.defaultValue}function rt(e){let t=m();if(!t){console.warn("onMount called outside of a component context");return}B(U,t.id,e);}function st(e){let t=m();if(!t){console.warn("onUnmount called outside of a component context");return}B(I,t.id,e);}function it(e){Q(()=>{setTimeout(e,0);});}function D(e){let t=e.componentId,n=U.get(t);if(n){U.delete(t);for(let o of n){let r=o();typeof r=="function"&&B(I,t,r);}}}function lt(e){let t=I.get(e);if(t){I.delete(e);for(let n of t)n();}}function ut(e){let t=ke.get(e);if(t){ke.delete(e);for(let n of t)n();}}function L(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=z(e);if(n&&(lt(n.componentId),ut(n.componentId)),e.childNodes){let o=e.firstChild;for(;o;){let r=o.nextSibling;L(o),o=r;}}}function k(e){return e!=null&&typeof e=="object"&&typeof e.$constructor=="function"}function ct(e){return typeof e=="function"&&typeof e.prototype?.render=="function"}function at(e,t,n){let o=j(),r={componentId:o,$children:n,element:null,classInstance:null,$constructor(){let s={...De(t??{}),children:n},i=m(),l={disposers:[],id:o,contexts:new Map(i?.contexts)};H(l);let u;if(ct(e)){r.ClassConstructor=e;let f=new e(s);r.classInstance=f,typeof f.onMount=="function"&&B(U,o,()=>{f.onMount?.();}),typeof f.onUnmount=="function"&&B(I,o,()=>{f.onUnmount?.();}),u=f.render();}else u=e(s);H(i);let c=ft(u);if(r.element=c,c instanceof DocumentFragment&&c.childNodes.length)for(let f of c.childNodes)X(f,l),ve(f,r);else X(c,l),c instanceof Node&&ve(c,r);return c}};return r}function ne(e,t){let n=t.$constructor();n instanceof Node&&e.appendChild(n),queueMicrotask(()=>{D(t);});}function ft(e){return e instanceof Node?e:k(e)?e.$constructor():typeof e=="string"||typeof e=="number"?document.createTextNode(String(e)):document.createTextNode("")}var Re={className:"class",htmlFor:"for"},Me=new Set(["value","defaultValue","checked","selected","indeterminate"]),dt=new Set(["srcdoc"]),ht=new Set(["href","src","action","formaction","xlink:href"]),pt=new Set(["securitypolicyviolation"]),gt=new Set(["contenteditable","draggable","spellcheck"]);function A(e){return e!=null&&typeof e=="object"&&typeof e.get=="function"&&!(e instanceof Node)}var Le=Symbol("Fragment");function mt(e,t,n){if(e===Le){let r=document.createDocumentFragment();return te(r,Oe(n)),r}if(typeof e=="function")return at(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),xt(o,t),te(o,Oe(n)),o}function ee(e,t){t instanceof DocumentFragment?e.replaceChildren(t):e.innerHTML=t??"";}function bt(e){return typeof e!="string"?false:e.replace(/[\p{White_Space}\p{Cc}]+/gu,"").toLowerCase().startsWith("javascript:")}function yt(e,t){if(typeof e!="string")return false;let n=e.toLowerCase();return dt.has(n)?true:ht.has(n)&&t!==null&&t!==void 0&&bt(String(t))}function _e(e){return typeof e!="string"?e:Re[e]?Re[e]:e}function St(e,t){let n=_e(e),o=typeof n=="string"?n.toLowerCase():String(n).toLowerCase();return gt.has(o)&&(t===true||t===false||t==="true"||t==="false")?String(t):t==null||t===false?null:t}function Te(e,t,n){let o=St(t,n);if(o===null){e.removeAttribute(t);return}if(yt(t,o)){e.removeAttribute(t),console.warn(`[esmj-dom] Blocked unsafe attribute "${String(t)}" on <${e.tagName.toLowerCase()}>`);return}e.setAttribute(t,o);}function xt(e,t){let n=m();for(let[o,r]of Reflect.ownKeys(t).map(s=>[s,t[s]]))if(o!=="id"){if(o=_e(o),o==="$ref"){typeof r=="function"?r(e):typeof r=="object"&&r!==null&&(r.current=e);continue}if(o==="$dangerouslySetInnerHTML"){if(A(r)){let s=g(()=>{x(n,()=>{ee(e,r.get());});});S(e,s);}else if(typeof r=="function"){let s=g(()=>{x(n,()=>{ee(e,r());});});S(e,s);}else ee(e,r);continue}if(o==="style"){if(A(r)){let s=g(()=>{x(n,()=>{Object.assign(e.style,r.get());});});S(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(pt.has(s)){console.warn(`[esmj-dom] Blocked unsafe event binding "${o}" on <${e.tagName.toLowerCase()}>`);continue}e.addEventListener(s,r);continue}if(A(r)||typeof r=="function"){let s=o,i=g(()=>{x(n,()=>{let l=typeof r=="function"?r():r.get();Me.has(s)?e[s]=l??"":Te(e,s,l);});});S(e,i);continue}Me.has(o)||typeof o=="symbol"?e[o]=r??"":Te(e,o,r);}}function Oe(e){return e==null?[]:Array.isArray(e)?e.flat(Number.POSITIVE_INFINITY):[e]}function te(e,t){for(let n of t)$e(e,n);}function $e(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(k(t)){ne(e,t);return}if(A(t)){je(e,()=>t.get());return}if(Array.isArray(t)){te(e,t);return}e.appendChild(document.createTextNode(String(t)));}}function oe(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 re(e,t=true){for(let n of e)t&&L(n),n.remove();}function je(e,t){let n=m(),o=document.createComment("");e.appendChild(o);let r=[],s=g(()=>{x(n,()=>{let i=t(),{nodes:l,instance:u}=oe(i);re(r),l.length&&o.after(...l),u&&queueMicrotask(()=>D(u)),r=l;});});S(e,s);}var Kt=class{constructor(e){this.props=e;}};function Jt(e,t,n){let o=document.createElement("span");o.style.display="contents",o.setAttribute("data-each",j());let r=m(),s=[],i=new Map,l=N(()=>e()),u=g(()=>{let c=l.get(),f=[],$=[],de=new Set;for(let a=0;a<c.length;a++){let d=c[a],p=t(d,a);if(de.has(p)){console.error(`Each: duplicate key "${String(p)}" detected; ignoring later item at index ${a}`);continue}de.add(p),f.push(d),$.push(p);}let W=new Map(s.map(a=>[a.key,a])),M=[];for(let a=0;a<f.length;a++){let d=$[a],p=f[a],w=W.get(d);if(w)i.get(d).set(p),M.push(w),W.delete(d);else {let he=E(p,{equals:G});i.set(d,he);let ze={...he,set(){}},pe={key:d,nodes:[]};x(r,()=>{let Ge=n(ze,a),{nodes:Ve,instance:ge}=oe(Ge);pe.nodes=Ve,ge&&queueMicrotask(()=>D(ge));}),M.push(pe);}}for(let[a,d]of W)re(d.nodes),i.delete(a);let Y=null;for(let a=M.length-1;a>=0;a--){let d=M[a].nodes;for(let p=d.length-1;p>=0;p--){let w=d[p];(w.parentNode!==o||w.nextSibling!==Y)&&o.insertBefore(w,Y),Y=w;}}s=M;});return S(o,u),o}function Zt(e,t){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("mount: container not found");e instanceof DocumentFragment||(L(e),e.innerHTML=""),k(t)?ne(e,t):t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t)));}function Qt(e){if(typeof e=="string"&&(e=document.querySelector(e)),!e)throw new Error("unmount: container not found");L(e),e.innerHTML="";}function en(e,t){let n=null;if(k(t)?(n=t.$constructor(),queueMicrotask(()=>D(t))):t instanceof Node?n=t:n=document.createTextNode(String(t)),n instanceof HTMLElement){let o=N(()=>!!e()),r=g(()=>{n.style.display=o.get()?"":"none";});S(n,r);}return n}var se=ue(),ie=ue(),qe=ue(),Ct=Array.from({length:256},(e,t)=>(t<=15?"0":"")+t.toString(16));function ue(){return Math.floor(Math.random()*16777215)}function wt(){return ie=(ie+1)%16777215,ie}function sn(){let e=Math.floor(Date.now()/1e3);e=parseInt(e,10)%4294967295;let t=wt(),n=String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,e&255,se>>16&255,se>>8&255,se&255,qe>>8&255,qe&255,t>>16&255,t>>8&255,t&255),o="";for(let r=0;r<n.length;r++)o+=Ct[n.charCodeAt(r)];return o}var ce=Symbol("block-element"),Et=Symbol("block-element-body"),He=Symbol("selectable-element");function V(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 Xe(e){return e?V(e.startContainer,ce):null}function Pe(e){return V(e,ce)}function Ue(e){return e?V(e.startContainer,He):null}function Fe(e){return V(e,He)}function ae(){return window.getSelection()}function fe(){let e=ae();return e.rangeCount>0?e.getRangeAt(0).cloneRange():null}function ln(){let e=fe();if(!e)return 0;e.collapse(true);let t=Ue(e),n=Xe(e),o=t??R(n);return _(o,e.startContainer,e.startOffset)}var C=null;function un(){C=kt();}function Nt(){C&&Rt(C);}function cn(){C&&(C={start:C.end,end:C.end,element:C.element},Nt());}function vt(e,t){let n=Ue(t);return n||(R(e)??e?.childNodes?.[0]??null)}function _(e,t,n){if(!e)return 0;if(t===e){if(t.nodeType===Node.TEXT_NODE)return n;let i=0,l=e.childNodes,u=Math.min(n,l.length);for(let c=0;c<u;c++)i+=l[c].textContent.length;return i}if(t.nodeType===Node.ELEMENT_NODE&&!e.contains(t))return 0;let o=0,r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),s=r.nextNode();for(;s;){if(s===t)return o+n;o+=s.textContent.length,s=r.nextNode();}return o}function kt(){let e=fe();if(!e)return null;let t=Xe(e),n=vt(t,e);return {start:_(n,e.startContainer,e.startOffset),end:_(n,e.endContainer,e.endOffset),element:t,selectableElement:n}}function an(e=fe()){if(!e||e.collapsed)return null;let t=Pe(e.startContainer),n=Pe(e.endContainer);if(!t||!n)return null;let o=Fe(e.startContainer)??R(t),r=Fe(e.endContainer)??R(n);return {startBlock:t,endBlock:n,startOffset:_(o,e.startContainer,e.startOffset),endOffset:_(r,e.endContainer,e.endOffset)}}function Rt(e){if(!e)return;let{start:t,end:n,element:o,selectableElement:r}=e,s=r?.isConnected&&r||R(o)||o?.childNodes?.[0];if(!s)return;let i=le(s,t),l=le(s,n),u=document.createRange();u.setStart(i.startContainer,i.startOffset),u.setEnd(l.endContainer,l.endOffset);let c=ae();c.removeAllRanges(),c.addRange(u);}function le(e,t){let n=document.createRange();if(!e)return n;if(t<=0)return n.setStart(e,0),n.collapse(true),n;let o=0,r=[e];for(;r.length>0;){let s=r.pop();if(s.nodeType===Node.TEXT_NODE){let i=s.textContent.length;if(o+i>=t)return n.setEnd(s,t-o),n.setStart(s,t-o),n;o+=i;}else if(s.childNodes&&s.childNodes.length>0)for(let i=s.childNodes.length-1;i>=0;i--)r.push(s.childNodes[i]);}return n.setEnd(e,e.childNodes.length),n.setStart(e,e.childNodes.length),n}function fn(e,t){let n=le(e,t),o=ae();o.removeAllRanges(),o.addRange(n);}function R(e){if(!e)return null;let t=Mt(e);return t?.firstElementChild??t?.firstChild}function dn(e){if(!e?.[ce])return null;let t=R(e);return t?z(t)?.classInstance:null}function Mt(e){if(!e)return null;for(let t of e.children)if(t[Et])return t;return null}function hn(e,t,n,o=12){let r=e.getBoundingClientRect(),s=typeof t?.getBoundingClientRect=="function"?t.getBoundingClientRect():t??{left:0,top:0},i=n?.offsetHeight??40;return {x:s.left-r.left,y:s.top-r.top-i-o}}export{fe as A,ln as B,un as C,Nt as D,cn as E,_ as F,kt as G,an as H,Rt as I,fn as J,R as K,dn as L,Mt as M,hn as N,v as a,N as b,E as c,Ze as d,Qe as e,z as f,tt as g,nt as h,ot as i,rt as j,st as k,it as l,mt as m,Kt as n,Jt as o,Zt as p,Qt as q,en as r,sn as s,ce as t,Et as u,He as v,Xe as w,Pe as x,Ue as y,Fe as z};
@@ -1 +0,0 @@
1
- import {a as a$1}from'./chunk-4CNZR6XL.mjs';import {g,a as a$2}from'./chunk-O7IO4QXV.mjs';import {j,s as s$1,a as a$4,e,f,g as g$1,h,i as i$1}from'./chunk-MWY3XQMH.mjs';import {m,a as a$3,v,A,x,l,K,J}from'./chunk-DFL6LPER.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}\\n"',document.head.appendChild(r);}}})();var o=class extends a$1{constructor(t){super(t),this._level=1;}static getStateSchema(t){return g(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 m(`h${this._level}`,{className:t,"data-componentid":this.state.peek().componentId,contentEditable:true,[v]:true,$ref:r=>{this.element=r;},$dangerouslySetInnerHTML:()=>{let r=this.state.get(),n=r.properties?.text??"";return j(n)?a$3(()=>this._buildContent(r)):"<br>"}})}onKeydown(t){if(t.key==="Backspace"){this.#t(t);return}s$1(this,t,{namespace:a$4});}#t(t){if(!A()?.collapsed)return;let n=x(this.element);if(n?.previousElementSibling||j(this.getState()?.properties?.text))return;t.preventDefault(),this.mrakomor.command.transformBlockElement({blockElement:n,namespace:a$4});let l$1=()=>{let b=this.mrakomor.getRoot()?.querySelector(".mrakomor-content .mrakomor-block-element"),p=K(b);p?.isConnected&&J(p,0);};l$1(),l(l$1);}},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}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$1}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 +0,0 @@
1
- import {a as a$1,b as b$1,j,c,d,i,g,e,f,h}from'./chunk-5V6D56TM.mjs';import {a}from'./chunk-4CNZR6XL.mjs';import {a as a$2,e as e$1,d as d$1}from'./chunk-O7IO4QXV.mjs';import {b,j as j$1,l as l$1,k}from'./chunk-MWY3XQMH.mjs';import {a as a$4}from'./chunk-B6JJAATK.mjs';import {s,A,m,o,a as a$3,v,l,x,J,L}from'./chunk-DFL6LPER.mjs';(function(){if(!(typeof document>"u")){var l="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")===l});if(!t){var e=document.createElement("style");e.setAttribute("data-mrakomor-css",""),e.setAttribute("data-mrakomor-css-path",l),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}\\n"',document.head.appendChild(e);}}})();var E=l=>a$2.object({componentId:a$2.string().default(()=>l?.getAttribute?.("data-componentid")||s()),depth:a$2.number().default(0),text:a$2.string().default(""),inlineStyleRanges:a$2.array(d$1()).default([]),entityRanges:a$2.array(e$1()).default([])}).default({}),R=class l$1 extends a{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=a$1(t);return a$2.object({component:a$2.string().default(l$1.NAMESPACE),componentId:a$2.string().default(t?.getAttribute("data-componentid")||s()),properties:a$2.object({items:a$2.array(E()).default([E().parse()]).transform(b$1)}).default({}),settings:a$2.object({style:a$2.enum(["ORDERED","UNORDERED"]).default(e??"UNORDERED")}).default({})}).default({})}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()},n=[...t.querySelectorAll("li")];return e.properties.items=n.length?n.map(o=>E(o).parse(j(o,r))):[E().parse()],e.settings={...e.settings,style:t.nodeName==="OL"?"ORDERED":t.nodeName==="UL"?"UNORDERED":this.state?.peek()?.settings?.style??e.settings?.style??"UNORDERED"},e}getFormattingTarget(t){let e=t??A(),r=c(this.element,e);if(!r)return null;let n=d(this.element,r);return n<0?null:{element:r,read(o){let s=o.properties?.items?.[n];return {inlineStyleRanges:s?.inlineStyleRanges,entityRanges:s?.entityRanges}},write(o,{inlineStyleRanges:s,entityRanges:a}){let i=o.properties?.items?.[n];i&&(s!==void 0&&(i.inlineStyleRanges=s),a!==void 0&&(i.entityRanges=a));}}}_commitState(t){let e=this.mrakomor.getContent(),r=e.findIndex(n=>n.componentId===t.componentId);r!==-1&&(e.splice(r,1,t),this.mrakomor.setContent(e));}_buildItemContent(t){return i(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-"),e=this.state.peek(),r=e.settings?.style==="ORDERED"?"ol":"ul";return m(r,{className:t,"data-componentid":e.componentId,$ref:n=>{this.element=n;}},o(()=>this.state.get().properties?.items??[],(n,o)=>n.componentId??String(o),(n,o)=>m("li",{contentEditable:true,[v]:true,"data-componentid":()=>n.get().componentId,"data-item-index":()=>{let s=n.get()?.componentId,i=(this.state.get().properties?.items??[]).findIndex(c=>c.componentId===s);return String(i>=0?i:o)},"data-depth":()=>String(n.get()?.depth??0),$dangerouslySetInnerHTML:()=>{let s=n.get(),a=s?.text??"";return j$1(a)?a$3(()=>this._buildItemContent(s)):"<br>"}})))}onKeydown(t){if(t.key==="Enter"){this.#e(t);return}t.key==="Backspace"&&this.#n(t);}setCursor(t){let e=this.getState()?.properties?.items??[],r=e.length-1;if(r<0)return;let n=typeof t=="number"?t:j$1(e[r]?.text).length,o=()=>{let s=this.element?.querySelector(`li[data-item-index="${r}"]`);s?.isConnected&&J(s,n);};o(),l(o);}#t(t){let e=this.getState(),r=[...e.properties.items??[]],n=r[t];if(!n)return;if((n.depth??0)>0){r[t]={...n,depth:n.depth-1},this._commitState({...e,properties:{...e.properties,items:r}});let a=()=>{let i=this.element?.querySelector(`li[data-item-index="${t}"]`);i?.isConnected&&J(i,0);};a(),l(a);return}let{blocks:o,paragraphIndex:s}=g(e,t);this.mrakomor.command.replaceBlockElement({blockElement:x(this.element),blocks:o,cursor:0,cursorBlockIndex:s});}#e(t){t.preventDefault();let e$1=A(),r=c(this.element,e$1);if(!r)return;let n=d(this.element,r),o=e(r,e$1),s=this.getState(),a=[...s.properties.items??[]],i=a[n];if(!i)return;if(!j$1(i.text)){this.#t(n);return}let{before:c$1,after:y}=f(i,o);a.splice(n,1,c$1,y),this._commitState({...s,properties:{...s.properties,items:a}}),l(()=>{let k=this.element?.querySelector(`li[data-item-index="${n+1}"]`);k&&J(k,0);});}#n(t){let e$1=A(),r=c(this.element,e$1);if(!r||!e$1.collapsed)return;let n=d(this.element,r);e(r,e$1)===0&&(t.preventDefault(),this.#t(n));}};function H(l){let{mrakomor:t,blockElement:e,previousBlockElement:r}=l;if(!t||!e||!r)return;let n=t._getBlockElementIndex(r),o=t._getBlockElementIndex(e);if(n===-1||o===-1)return;let s=t.getContent(),a=s[n],i=s[o];if(!l$1(a)||!k(i))return;let c=h(s,n,o);c&&(l.preventDefault(),t._setContentState(c.content.map(y=>t.normalizeComponentState(y))),L(r)?.setCursor?.(c.cursor));}function z(l){return {resolveConfig:t=>(t.blockComponents.push({component:l,id:"list:ul",label:"UL",keywords:["ul","unordered","bullet"],order:100,settings:{style:"UNORDERED"}},{component:l,id:"list:ol",label:"OL",keywords:["ol","ordered","number"],order:101,settings:{style:"ORDERED"}}),t),resolveComponent:t=>{if(t===l.NAMESPACE)return l},registerCommands(t){t.emitter.on(a$4.MERGE_BLOCK_ELEMENT,H);}}}function nt(){return z(R)}export{R as a,z as b,nt as c};
@@ -1,3 +0,0 @@
1
- import {p,s,B as B$1,A as A$1,F as F$1,m}from'./chunk-DFL6LPER.mjs';var d="molecule.paragraph.Paragraph",k="molecule.list.List",D="molecule.external.ExternalComponent",O="namespace.unknown.UnknownComponent",F="molecule.headline.H1",v="molecule.headline.H2",X="molecule.headline.H3",K="molecule.headline.H4",z="molecule.headline.H5",A="molecule.headline.";function a(t){return t===`
2
- `||t===`\r
3
- `?"":t??""}function N(t){let e=t?.component??"";return e===d||e.startsWith(A)}function q(t){return Array.isArray(t?.properties?.items)}function J(t,e){return N(t)&&N(e)&&t.component===e.component}function _(t,e){let r=new Set([0,e]);for(let o of t)r.add(o.offset),r.add(o.offset+o.length);return [...r].sort((o,n)=>o-n)}function C(t,e,r){return t.filter(o=>o.offset<=e&&o.offset+o.length>=r)}function H(t,e,r,{inlineStyleComponents:o,entityRangeComponents:n}){let s=t;for(let i of e){let f=o.find(p=>p.match(i));f&&(s=m(f,{},s));}for(let i of r){let f=n.find(p=>p.match(i));f&&(s=m(f,i,s));}return s}function Q(t,{inlineStyleComponents:e,entityRangeComponents:r}){let o=document.createDocumentFragment(),n=a(t.properties.text),s=t.properties.inlineStyleRanges??[],i=t.properties.entityRanges??[];if(!n)return o;let f=_([...s,...i],n.length);for(let p$1=0;p$1<f.length-1;p$1+=1){let l=f[p$1],c=f[p$1+1];if(l>=c)continue;let g=n.slice(l,c),P=H(g,C(s,l,c),C(i,l,c),{inlineStyleComponents:e,entityRangeComponents:r});p(o,P);}return o}function u(t,e,r,{inlineStyleComponents:o,entityRangeComponents:n}){let s=r;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 f=o.find(l=>l.match(i));if(f){let l=i.textContent.length;e.properties.inlineStyleRanges.push({style:f.style,offset:s,length:l}),s=u(i.childNodes,e,s,{inlineStyleComponents:o,entityRangeComponents:n});continue}let p=n.find(l=>l.match(i));if(p){let l=i.textContent.length;e.properties.entityRanges.push({...p.getStateSchema(i).parse(),offset:s,length:l}),s=u(i.childNodes,e,s,{inlineStyleComponents:o,entityRangeComponents:n});continue}s=u(i.childNodes,e,s,{inlineStyleComponents:o,entityRangeComponents:n});}return s}function L(t,e){let r=a(t.properties.text),o=a(e.properties.text);return {state:{...t,properties:{...e.properties,...t.properties,text:r+o,inlineStyleRanges:[...t.properties.inlineStyleRanges??[],...(e.properties.inlineStyleRanges??[]).map(n=>({...n,offset:n.offset+r.length}))],entityRanges:[...t.properties.entityRanges??[],...(e.properties.entityRanges??[]).map(n=>({...n,offset:n.offset+r.length}))]},settings:{...e.settings,...t.settings}},cursor:r.length}}function V(t,{startIndex:e,endIndex:r,startOffset:o,endOffset:n}){let s=[...t],i=s[e],f=s[r],{originalLineState:p}=x(i,o),{newLineState:l}=x(f,n),{state:c,cursor:g}=L(p,l);return s.splice(e,r-e+1,c),{content:s,cursor:g,resultIndex:e}}function x(t,e){let r=structuredClone(t),o=structuredClone(t);return r.properties.text=t.properties.text.slice(0,e),o.properties.text=t.properties.text.slice(e),r.properties.inlineStyleRanges=(t.properties.inlineStyleRanges??[]).filter(n=>n.offset<e).map(n=>({...n,length:Math.min(n.length,e-n.offset)})),o.properties.inlineStyleRanges=(t.properties.inlineStyleRanges??[]).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)})),r.properties.entityRanges=(t.properties.entityRanges??[]).filter(n=>n.offset<e).map(n=>({...n,length:Math.min(n.length,e-n.offset)})),o.properties.entityRanges=(t.properties.entityRanges??[]).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)})),o.componentId=s(),{originalLineState:r,newLineState:o}}function Y(t,e,{namespace:r=t.constructor.NAMESPACE}={}){if(e.key!=="Enter")return false;e.preventDefault();let{originalLineState:o,newLineState:n}=x(t.getState(),B$1(t.element));return t.mrakomor.command.insertBlockElement({range:A$1(),cursor:0,newLineState:n,originalLineState:o,namespace:r}),true}function Z(t,e){if(e.key!=="Enter")return false;e.preventDefault();let r=d,o=t.mrakomor.resolveComponentConstructor(r);return t.mrakomor.command.insertBlockElement({range:A$1(),cursor:0,newLineState:t.mrakomor.normalizeComponentState(o.getStateSchema().parse({})),namespace:r}),true}function $(t,e){let r=t.constructor;if(!e)return r.getStateSchema(e).parse();let o=structuredClone(r.getStateSchema(e).parse());return u(e.childNodes,o,0,{inlineStyleComponents:t.getInlineStyleComponents(),entityRangeComponents:t.getEntityRangeComponents()}),o.properties.text=a(o.properties.text),o}function b(t){return t?{element:t,read(e){return {inlineStyleRanges:e.properties?.inlineStyleRanges,entityRanges:e.properties?.entityRanges}},write(e,{inlineStyleRanges:r,entityRanges:o}){r!==void 0&&(e.properties.inlineStyleRanges=r),o!==void 0&&(e.properties.entityRanges=o);}}:null}function M(t,e){let r=F$1(t,e.startContainer,e.startOffset),o=F$1(t,e.endContainer,e.endOffset);return {offset:r,length:Math.max(0,o-r)}}function T(t,{style:e,offset:r,length:o}){let n=t??[],s=r+o,i=n.find(f=>f.style===e&&f.offset<=r&&f.offset+f.length>=s);return i?n.filter(f=>f!==i):[...n,{style:e,offset:r,length:o}]}function I(t,e){return t.offset<e.offset+e.length&&e.offset<t.offset+t.length}function B(t,e){let r=e.offset+e.length,o=[];for(let n of t){if(!I(n,e)){o.push(n);continue}n.offset<e.offset&&o.push({...n,length:e.offset-n.offset});let s=n.offset+n.length;s>r&&o.push({...n,offset:r,length:s-r});}return o}function w(t,e){let r=t??[],o=e?.length??0;if(o===0)return null;let n=e.offset??0,s=e.entity?.type,i=r.find(f=>f.offset===n&&f.length===o&&f.entity?.type===s);return i?r.filter(f=>f!==i):[...B(r,e),e]}function ee(t,e,{style:r,range:o}){if(!t||!e?.element||!o)return null;let n=e.read(t);if(n?.inlineStyleRanges===void 0)return null;let{offset:s,length:i}=M(e.element,o);return i===0?null:(e.write(t,{inlineStyleRanges:T(n.inlineStyleRanges??[],{style:r,offset:s,length:i})}),t)}function te(t,e,{state:r,namespace:o,range:n}){if(!t||!e?.element||!n)return null;let s=e.read(t);if(s?.entityRanges===void 0)return null;let i={...r,entity:{type:o,...r?.entity},...M(e.element,n)},f=w(s.entityRanges??[],i);return f===null?null:(e.write(t,{entityRanges:f}),t)}export{d as a,k as b,D as c,O as d,F as e,v as f,X as g,K as h,z as i,a as j,N as k,q as l,J as m,Q as n,u as o,L as p,V as q,x as r,Y as s,Z as t,$ as u,b as v,M as w,ee as x,te as y};
@@ -1 +0,0 @@
1
- import {g,s}from'./chunk-DFL6LPER.mjs';var G={abortEarly:true};function x(e,s){if(s===void 0)return e;let t=e?.cause?.key?`${s}.${e.cause.key}`:`${s}`;return {message:`Error parsing key "${t}": ${e.message}`,cause:{key:t}}}function U(e,s,t){if(e.errors?.length)for(let r=0;r<e.errors.length;r++)s.push(x(e.errors[r],t));}function I(e,s,t,r){if(t!==false){let a=x(e.error,s);return {success:false,error:a,errors:[a]}}U(e,r,s);}function $(e){return e?.abortEarly!==void 0?e:G}function E(e,s){y(e,"_parse",(t,r,a)=>{let l=t(r,a);return !l.success&&s(r)?{success:true,data:r}:l});}var _=e=>typeof e=="string"||e instanceof String,D=e=>(typeof e=="number"||e instanceof Number)&&!Number.isNaN(e),S=e=>e===true||e===false,W=e=>e instanceof Date&&!Number.isNaN(e.getTime()),X=e=>typeof e=="function",K=e=>Array.isArray(e),R=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function q(e,s){let t=h(R,{...s,type:"object"});return t._getDescription=()=>`object({ ${Object.entries(e).map(([r,a])=>`${r}: ${a._getDescription()}`).join(", ")} })`,t._getDefinition=()=>e,y(t,"_parse",(r,a,l)=>{let n=r(a,l),{abortEarly:u}=$(l);if(n.success===false)return n;let i={},f=[];for(let c in e){let m=e[c]._parse(n.data[c],l);if(m.success)i[c]=m.data;else {let p=I(m,c,u,f);if(p)return p}}return f.length>0?{success:false,error:f[0],errors:f}:{success:true,data:i}}),t}function N(e){return h(_,{...e,type:"string"})}function v(e){return h(D,{...e,type:"number"})}function C(e){return h(S,{...e,type:"boolean"})}function k(e){return h(W,{...e,type:"date"})}function F(e){return h(X,{...e,type:"function"})}function H(e,s){let t=n=>e.includes(n),r=n=>`Invalid ${a} value. Expected ${e.map(u=>`"${u}"`).join(" | ")}, received "${n}".`,a="enum",l=h(t,{message:r,...s,type:a});return l._getDescription=()=>`enum(${e.map(n=>`"${n}"`).join(" | ")})`,l._getDefinition=()=>e,l}function M(e,s){let t=h(K,{...s,type:"array"});return t._getDescription=()=>`array(${e._getDescription()})`,t._getDefinition=()=>e,y(t,"_parse",(r,a,l)=>{let n=r(a,l),{abortEarly:u}=$(l);if(n.success===false)return n;let i=[],f=[];for(let c=0;c<n.data.length;c++){let m=e._parse(n.data[c],l);if(m.success)i.push(m.data);else {let p=I(m,c,u,f);if(p)return p}}return f.length>0?{success:false,error:f[0],errors:f}:{success:true,data:i}}),t}function V(){return h(()=>true)}function d(e,s){return y(s,"_parse",(t,r,a)=>(r=e(r),t(r,a))),s}function L(e,s){let t=a=>`Invalid union value. Expected the value to match one of the schemas:${e.map((l,n)=>` ${n+1}. ${l._getDescription()}`).join(",")} but received "${typeof a}" with value: ${R(a)?JSON.stringify(a):`"${a}"`}`,r=h(()=>false,{message:t,...s,type:"union"});return r._getDefinition=()=>e,y(r,"_parse",(a,l,n)=>{let u=n,i=[];for(let p=0;p<e.length;p++){let g=e[p]._parse(l,u);if(g.success)return g;i.push(g);}let{abortEarly:f}=$(u),c={message:typeof t=="function"?t(l):t};if(f!==false)return {success:false,error:c,errors:[c]};let m=[];for(let p=0;p<i.length;p++){let g=i[p].errors;if(g?.length)for(let b=0;b<g.length;b++)g[b].cause?.key&&m.push(x(g[b],`branch ${p}`));}return m.length===0&&m.push(c),{success:false,error:m[0],errors:m}}),r}function P(e,s){let t=h(r=>r===e,{message:r=>s?.message?typeof s.message=="function"?s.message(r):s.message:`Expected literal value "${e}", received "${r}"`,name:s?.name,type:"literal"});return t._getDescription=()=>`literal("${e}")`,t._getDefinition=()=>e,t}var z={boolean(e){let s=e?.message??(t=>`Cannot cast "${t}" to boolean. Accepted: true/false, 1/0, yes/no, on/off.`);return d(t=>{let r;return _(t)&&(r=t.toLowerCase()),r==="true"||r==="yes"||r==="on"||r==="1"||t===1?true:r==="false"||r==="no"||r==="off"||r==="0"||t===0?false:t},C({...e,message:s}))},number(e){let s=e?.message??(t=>`Cannot cast "${t}" to a number. Expected a numeric string or number.`);return d(t=>{if(S(t))return Number(t);if(_(t)){let r=t.trim();if(r==="")return t;let a=Number(r);if(Number.isFinite(a))return a}return t},v({...e,message:s}))},string(e){let s=e?.message??(t=>`Cannot cast "${t}" to string. Expected a string, number, or boolean.`);return d(t=>S(t)||D(t)&&Number.isFinite(t)?String(t):t,N({...e,message:s}))},date(e){let s=e?.message??(t=>`Cannot cast "${t}" to a valid date.`);return d(t=>{let r;return _(t)&&(r=t.trim()),D(t)&&Number.isFinite(t)||r?new Date(r??t):t},k({...e,message:s}))},json(e,s){let t=s?.message??(r=>`Cannot parse "${r}" as JSON.`);return y(e,"_parse",(r,a,l)=>{if(_(a))try{a=JSON.parse(a);}catch{let n={message:typeof t=="function"?t(a):t};return {success:false,error:n,errors:[n]}}return r(a,l)}),e}},B={},o={object:q,string:N,number:v,boolean:C,date:k,function:F,enum:H,array:M,any:V,preprocess:d,union:L,literal:P,coerce:B,cast:z};function T(e){return s=>`The value "${s}" must be type of ${e} but is type of "${typeof s}".`}function y(e,s,t){let r=e[s];e[s]=(...a)=>t(r,...a);}function h(e,{type:s="any",name:t,message:r}={}){r=r||T(s);let a={name:t,message:r,type:s},l={_getName(){return t},_getType(){return s},_getDescription(){return this._getName()??this._getType()},_parse(n,u){let i=e(n);if(i===true)return {success:true,data:n};if(typeof i=="object"&&i?.success===true)return i;let f={message:typeof r=="function"?r(n):r};return {success:false,error:f,errors:[f]}},parse(n,u){let i=this._parse(n,u);if(!i.success)throw i=i,new Error(i.error.message,{cause:i.error.cause});return i.data},safeParse(n,u){return this._parse(n,u)},transform(n){return y(this,"_parse",(u,i,f)=>{let c=u(i,f);return c.success&&(c.data=n(c.data)),c}),this},optional(){return E(this,n=>n===void 0),this},nullable(){return E(this,n=>n===null),this},nullish(){return E(this,n=>n==null),this},default(n){return y(this,"_parse",(u,i,f)=>(i===void 0&&(i=typeof n=="function"?n():n),u(i,f))),this},catch(n){return y(this,"_parse",(u,i,f)=>{let c=u(i,f);return c.success?c:{success:true,data:typeof n=="function"?n({input:i,error:c.error}):n}}),this},pipe(n){return y(this,"_parse",(u,i,f)=>{let c=u(i,f);return c.success?n._parse(c.data,f):c}),this},refine(n,{message:u,type:i,jsonSchema:f}={}){if(i&&(u=u||T(i),s=i),f){let c=[...this._getJsonSchemaHints?.()??[],f];this._getJsonSchemaHints=()=>c;}return y(this,"_parse",(c,m,p)=>{let g=c(m,p),{abortEarly:b}=$(p);if(!g.success)return g;let j=n(g.data);if(j===true||typeof j=="object"&&j?.success===true)return g;let w={message:typeof u=="function"?u(m):u};return {success:false,error:w,errors:[w]}}),this},clone(){return {...this}}};return J.length>0?J.reduce((n,u)=>u(n,e,a)??n,l):l}var J=[];function Q(e){return e!=null&&typeof e=="object"&&(typeof Element>"u"?e.nodeType===1:e instanceof Element)}function ae(){return o.object({root:o.any().refine(Q,{message:"root must be a DOM Element"}),id:o.string().optional(),debug:o.boolean().optional(),content:o.array(o.any()).optional(),plugins:o.array(o.function()).optional(),blockComponents:o.array(o.any().refine(e=>typeof e=="function"||e!=null&&typeof e=="object"&&typeof e.component=="function",{message:"blockComponents entry must be a constructor or registration"})).optional(),inlineStyles:o.array(o.function()).optional(),entityRanges:o.array(o.function()).optional(),tooltip:o.any().optional()})}function oe(){return o.object({length:o.number(),offset:o.number(),style:o.string()})}function Y({type:e,data:s=o.any(),length:t,offset:r}={}){let a=e!=null,l=o.object({type:a?o.string().default(e):o.string(),data:s}),n=t??(a?0:void 0),u=r??(a?0:void 0);return o.object({entity:a?l.default({}):l,length:n==null?o.number():o.number().default(n),offset:u==null?o.number():o.number().default(u)})}function ie(){return o.array(Y()).transform(e=>e.filter(s=>s.entity.type==="atom.tts.Voice")).default([])}function ue(e,{component:s$1,properties:t,settings:r=o.object({}).default({})}){return o.object({component:o.string().default(s$1),componentId:o.string().default(e?.getAttribute("data-componentid")||s()),properties:o.object(t).default({}),settings:r}).default({})}var fe=g();export{o as a,fe as b,ae as c,oe as d,Y as e,ie as f,ue as g};
@@ -1 +0,0 @@
1
- import {a,b}from'./chunk-O7IO4QXV.mjs';import {n,i as i$1,e,m}from'./chunk-DFL6LPER.mjs';var i=class extends n{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=i$1(b),this.element=e(null);}render(){return m(this.constructor.nodeName,{},this.props.children)}};export{i as a};
@@ -1 +0,0 @@
1
- import {a}from'./chunk-4CNZR6XL.mjs';import {g,a as a$2,d,e}from'./chunk-O7IO4QXV.mjs';import {a as a$1,u,n as n$1,j,v as v$1,s}from'./chunk-MWY3XQMH.mjs';import {m,a as a$3,v}from'./chunk-DFL6LPER.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}\\n"',document.head.appendChild(r);}}})();var n=class e$1 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 g(t,{component:e$1.NAMESPACE,properties:{entityRanges:a$2.array(e()).default([]),inlineStyleRanges:a$2.array(d()).default([]),text:a$2.string().default(t?.innerText??t?.textContent??"")}})}parseFromHTML(t){return u(this,t)}_buildContent(t){return n$1(t,{inlineStyleComponents:this.getInlineStyleComponents(),entityRangeComponents:this.getEntityRangeComponents()})}render(){let t=this.constructor.NAMESPACE.toLowerCase().replaceAll(".","-");return m("p",{className:t,"data-componentid":this.state.peek().componentId,contentEditable:true,[v]:true,$ref:r=>{this.element=r;},$dangerouslySetInnerHTML:()=>{let r=this.state.get(),a=r.properties?.text??"";return j(a)?a$3(()=>this._buildContent(r)):"<br>"}})}getFormattingTarget(t){return v$1(this.element)}onKeydown(t){s(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};