@meowdown/core 0.7.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -76,13 +76,16 @@ type WikilinkClickHandler = (payload: WikilinkClickPayload) => void;
76
76
  declare function defineWikilinkClickHandler(onClick: WikilinkClickHandler): PlainExtension;
77
77
  //#endregion
78
78
  //#region src/extensions/images.d.ts
79
+ type ImageUrlResolver = (src: string) => string | undefined;
80
+ type ImagePasteHandler = (file: File) => string | undefined | Promise<string | undefined>;
81
+ type ImageSaveErrorHandler = (error: unknown, file: File) => void;
79
82
  interface ImageOptions {
80
83
  /** Map a markdown `src` to a displayable URL, or `undefined` to skip rendering. */
81
- resolveImageUrl: (src: string) => string | undefined;
84
+ resolveImageUrl: ImageUrlResolver;
82
85
  /** Persist a pasted/dropped image file and return its markdown `src`, or `undefined` to decline. */
83
- onImagePaste?: (file: File) => Promise<string | undefined>;
86
+ onImagePaste?: ImagePasteHandler;
84
87
  /** Called when persisting a pasted/dropped image throws. Defaults to `console.error`. */
85
- onImageSaveError?: (error: unknown, file: File) => void;
88
+ onImageSaveError?: ImageSaveErrorHandler;
86
89
  }
87
90
  /** Inline image rendering (widget decorations) plus paste/drop persistence. */
88
91
  declare function defineImages(options: ImageOptions): PlainExtension;
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
- import{createEditor as e,defineBaseCommands as t,defineBaseKeymap as n,defineCommands as r,defineHistory as i,defineKeymap as a,defineMarkSpec as o,definePlugin as s,getMarkType as c,isApple as l,isAtBlockStart as u,toggleNode as d,union as f,unsetBlockType as ee,withSkipCodeBlock as te}from"@prosekit/core";import{defineBlockquote as ne}from"@prosekit/extensions/blockquote";import{defineCodeBlock as re,defineCodeBlockHighlight as ie}from"@prosekit/extensions/code-block";import{defineDoc as ae}from"@prosekit/extensions/doc";import{defineGapCursor as oe}from"@prosekit/extensions/gap-cursor";import{defineHorizontalRule as se}from"@prosekit/extensions/horizontal-rule";import{defineList as ce}from"@prosekit/extensions/list";import{defineModClickPrevention as le}from"@prosekit/extensions/mod-click-prevention";import{defineParagraph as ue}from"@prosekit/extensions/paragraph";import{defineText as de}from"@prosekit/extensions/text";import{defineVirtualSelection as fe}from"@prosekit/extensions/virtual-selection";import{LanguageDescription as pe}from"@codemirror/language";import{languages as p}from"@codemirror/language-data";import{classHighlighter as me}from"@lezer/highlight";import{createParser as he}from"prosemirror-highlight/lezer";import{defineHeadingCommands as ge,defineHeadingInputRule as _e,defineHeadingSpec as ve}from"@prosekit/extensions/heading";import{Plugin as m,PluginKey as h,TextSelection as g}from"@prosekit/pm/state";import{ReplaceStep as ye,Step as _,StepResult as v,Transform as y}from"@prosekit/pm/transform";import{Mark as be}from"@prosekit/pm/model";import{GFM as xe,parser as Se}from"@lezer/markdown";import{defineTableCellSpec as Ce,defineTableCommands as we,defineTableDropIndicator as Te,defineTableHeaderCellSpec as Ee,defineTableRowSpec as De,defineTableSpec as Oe}from"@prosekit/extensions/table";import{tableEditing as ke}from"prosemirror-tables";import{Decoration as b,DecorationSet as x}from"@prosekit/pm/view";import{definePlaceholder as Ae}from"@prosekit/extensions/placeholder";import{defineReadonly as je}from"@prosekit/extensions/readonly";const S=new Map;async function Me(e){let t=pe.matchLanguageName(p,e,!0);if(!t){S.set(e,null);return}let n=t.support;if(!n)try{n=await t.load()}catch(t){console.error(`[meowdown] Failed to load language "${e}":`,t),S.set(e,null)}if(S.has(e))return;if(!n){S.set(e,null);return}let r=he({parse:e=>n.language.parser.parse(e.content),highlighter:me});S.set(e,r)}const Ne=e=>{let t=e.language?.trim();if(!t)return[];let n=S.get(t);return n?n(e):n===null?[]:Me(t)};function Pe(){return ie({parser:Ne,nodeTypes:[`codeBlock`]})}function C(e){return te(d({type:`heading`,attrs:{level:e}}))}const Fe=(e,t,n)=>u(e,n)?.parent.type.name===`heading`?ee()(e,t,n):!1;function Ie(){return a({"Mod-1":C(1),"Mod-2":C(2),"Mod-3":C(3),"Mod-4":C(4),"Mod-5":C(5),"Mod-6":C(6),Backspace:Fe})}function Le(){return f(ve(),_e(),ge(),Ie())}function Re(e){let[t,n,r]=e;return[t,n,r.map(e=>e.toJSON())]}function ze(e,t){let[n,r,i]=t;return[n,r,i.map(t=>be.fromJSON(e,t))]}var w=class e extends _{constructor(e){super(),this.chunks=e}apply(e){if(this.chunks.length===0)return v.ok(e);let t=e.content.size,n;for(let[r,i,a]of this.chunks){if(r>=i)continue;let o=Math.max(0,Math.min(r,t)),s=Math.max(o,Math.min(i,t));o>=s||e.nodesBetween(o,s,(t,r)=>{if(!t.isText)return!0;let i=Math.max(o,r),c=Math.min(s,r+t.nodeSize);if(i>=c)return!1;let l=t.marks;for(let t of l)t.isInSet(a)||(n??=new y(e),n.removeMark(i,c,t));for(let t of a)t.isInSet(l)||(n??=new y(e),n.addMark(i,c,t));return!1})}return v.ok(n?n.doc:e)}invert(e){if(this.chunks.length===0)return Be;let t=this.chunks[0][0],n=this.chunks[0][1];for(let[,e]of this.chunks)e>n&&(n=e);let r=e.content.size,i=Math.max(0,Math.min(t,r)),a=Math.max(i,Math.min(n,r));return new ye(i,a,e.slice(i,a),!1)}map(e){return null}toJSON(){return{stepType:`batchSetMark`,chunks:this.chunks.map(Re)}}static fromJSON(t,n){let r=n.chunks;return new e(r.map(e=>ze(t,e)))}};_.jsonID(`batchSetMark`,w);const Be=new w([]);function Ve(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45||e===95||e>127&&/[\p{L}\p{N}]/u.test(String.fromCharCode(e))}function He(e){return e>=65&&e<=90||e>=97&&e<=122||e>127&&/\p{L}/u.test(String.fromCharCode(e))}const Ue={defineNodes:[{name:`Hashtag`}],parseInline:[{name:`Hashtag`,parse(e,t,n){if(t!==35||!/\s|^$/.test(e.slice(n-1,n)))return-1;let r=n+1,i=!1;for(;r<e.end;){let t=e.char(r);if(!Ve(t))break;i||=He(t),r++}return i?e.addElement(e.elt(`Hashtag`,n,r)):-1}}]},We={defineNodes:[{name:`Wikilink`},{name:`WikilinkMark`}],parseInline:[{name:`Wikilink`,before:`Link`,parse(e,t,n){if(t!==91||e.char(n+1)!==91)return-1;let r=!1;for(let t=n+2;t<e.end-1;t++){let i=e.char(t);if(i===93){if(e.char(t+1)!==93||!r)return-1;let i=t+2;return e.addElement(e.elt(`Wikilink`,n,i,[e.elt(`WikilinkMark`,n,n+2),e.elt(`WikilinkMark`,t,i)]))}if(i===91||i===10)return-1;i!==32&&i!==9&&(r=!0)}return-1}}]};function Ge(e){return e.end}const T=Se.configure([xe,Ue,We]),Ke=T.configure({parseInline:[{name:`SkipInline`,before:`Escape`,parse:Ge}]});function E(e){return T.parseInline(e,0)}function D(e,t,n=[]){for(let r of e)t(r)&&n.push(r),D(r.children,t,n);return n}function qe(e){let t={};for(let n of e.nodeSet.types)t[n.name]=n.id;return t}const O=qe(T);function Je(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}const k=new Map([[O.Emphasis,`mdEm`],[O.StrongEmphasis,`mdStrong`],[O.InlineCode,`mdCode`],[O.Strikethrough,`mdDel`],[O.EmphasisMark,`mdMark`],[O.CodeMark,`mdMark`],[O.LinkMark,`mdMark`],[O.StrikethroughMark,`mdMark`],[O.URL,`mdLinkUri`],[O.Hashtag,`mdTag`],[O.Wikilink,`mdWikilink`],[O.WikilinkMark,`mdMark`]]);function Ye(e,t){let n=E(t),r=[];return A(n,[],0,t.length,t,e,r),r}function A(e,t,n,r,i,a,o){let s=n;for(let n of e){if(n.from>s&&j(o,s,n.from,t),n.type===O.Link||n.type===O.Image)Xe(n,t,i,a,o);else{let e=k.get(n.type),r=e?[...t,a.marks[e].create()]:t;n.children.length===0?j(o,n.from,n.to,r):A(n.children,r,n.from,n.to,i,a,o)}s=n.to}s<r&&j(o,s,r,t)}function Xe(e,t,n,r,i){let a=-1,o=null,s=0;for(let t of e.children)t.type===O.LinkMark?(s++,s===2&&(a=t.from)):t.type===O.URL&&o===null&&(o=t);let c=o?n.slice(o.from,o.to):``,l=c&&r.marks.mdLinkText?r.marks.mdLinkText.create({href:c}):null,u=e=>a>=0&&e<a&&l!==null,d=e.from;for(let a of e.children){if(a.from>d){let e=u(d)?[...t,l]:t;j(i,d,a.from,e)}let e=u(a.from)?[...t,l]:t,o=k.get(a.type),s=o?[...e,r.marks[o].create()]:e;a.children.length===0?j(i,a.from,a.to,s):A(a.children,s,a.from,a.to,n,r,i),d=a.to}d<e.to&&j(i,d,e.to,t)}function j(e,t,n,r){if(t>=n)return;let i=e.at(-1);if(i&&i[1]===t&&Je(i[2],r)){e[e.length-1]=[i[0],n,i[2]];return}e.push([t,n,r])}const M=`inline-marks-applied`,N=new WeakMap;let Ze=0,Qe=0;function $e(e,t,n){let r=N.get(e);if(r?Qe++:(Ze++,r=Ye(n,e.textContent),N.set(e,r)),t===0)return r;let i=[];for(let[e,n,a]of r)i.push([e+t,n+t,a]);return i}function et(e,t){let n=1/0,r=-1/0;for(let t of e)for(let e of t.mapping.maps)e.forEach((e,t,i,a)=>{i<n&&(n=i),a>r&&(r=a)});let i=t.doc.content.size;return n>r?{from:0,to:i}:{from:Math.max(0,n),to:Math.min(i,r)}}function tt(e,t){let n=[];return e.doc.nodesBetween(t.from,t.to,(t,r)=>{if(t.type.spec.code)return!1;if(!t.isTextblock)return!0;if(t.childCount===0)return!1;let i=$e(t,r+1,e.schema);return i.length>0&&n.push(...i),!1}),n}function nt(){return new m({key:new h(`inline-mark`),appendTransaction(e,t,n){for(let t of e)if(t.getMeta(M))return null;let r=tt(n,et(e,n));if(r.length===0)return null;let i=n.tr.step(new w(r));return i.setMeta(M,!0),i.setMeta(`addToHistory`,!1),i},view(e){return e.dispatch(rt(e.state)),{}}})}function rt(e){return e.tr.setMeta(`inline-marks-trigger`,!0)}function it(){return s(nt())}function at(){return o({name:`mdMark`,inclusive:!1,toDOM:()=>[`span`,{class:`md-mark`},0],parseDOM:[{tag:`span.md-mark`}]})}function ot(){return o({name:`mdEm`,toDOM:()=>[`em`,0],parseDOM:[{tag:`em`}]})}function st(){return o({name:`mdStrong`,toDOM:()=>[`strong`,0],parseDOM:[{tag:`strong`}]})}function ct(){return o({name:`mdCode`,toDOM:()=>[`code`,0],parseDOM:[{tag:`code`}]})}function lt(){return o({name:`mdLinkText`,inclusive:!1,attrs:{href:{default:``}},toDOM:e=>[`a`,{href:e.attrs.href},0],parseDOM:[{tag:`a`,getAttrs:e=>({href:e.getAttribute(`href`)??``})}]})}function ut(){return o({name:`mdLinkUri`,inclusive:!1,toDOM:()=>[`span`,{class:`md-link-uri`},0],parseDOM:[{tag:`span.md-link-uri`}]})}function dt(){return o({name:`mdDel`,toDOM:()=>[`del`,0],parseDOM:[{tag:`del`}]})}function ft(){return o({name:`mdTag`,toDOM:()=>[`span`,{class:`md-tag`},0],parseDOM:[{tag:`span.md-tag`}]})}function pt(){return o({name:`mdWikilink`,inclusive:!1,toDOM:()=>[`span`,{class:`md-wikilink`},0],parseDOM:[{tag:`span.md-wikilink`}]})}function mt(){return f(at(),ot(),st(),ct(),lt(),ut(),dt(),ft(),pt())}function P(e,t=0){let n=t,r=0;for(let t=0;t<e.length;t++)e.charCodeAt(t)===96?(r++,r>n&&(n=r)):r=0;return n}const F={em:{node:O.Emphasis,delim:`*`},strong:{node:O.StrongEmphasis,delim:`**`},code:{node:O.InlineCode,delim:"`"},del:{node:O.Strikethrough,delim:`~~`}},ht=new Set([O.EmphasisMark,O.CodeMark,O.LinkMark,O.StrikethroughMark]);function I(e){return[e.children[0],e.children.at(-1)]}function L(e){let{type:t,children:n}=e;if(t===O.Emphasis||t===O.StrongEmphasis||t===O.Strikethrough)return[n[0].to,n.at(-1).from];if(t===O.Link||t===O.Image){let e=n.find((e,t)=>t>0&&e.type===O.LinkMark);return e?[n[0].to,e.from]:null}return null}function R(e,t,n){for(let r of e){if(r.to<=t||r.from>=n||t<=r.from&&r.to<=n)continue;let i=L(r);return i&&i[0]<=t&&n<=i[1]?R(r.children,t,n):R(e,Math.min(t,r.from),Math.max(n,r.to))}return[t,n]}function z(e,t,n){for(let r of e)if(!(r.to<=t||r.from>=n)&&(t>r.from||r.to>n))return z(e,Math.min(t,r.from),Math.max(n,r.to));return[t,n]}const B=e=>e===` `||e===` `;function gt(e,t,n){for(;t<n&&B(e[t]);)t++;for(;n>t&&B(e[n-1]);)n--;return[t,n]}function _t(e,t,n,r){let i=D(E(e),e=>e.type===r.node||ht.has(e.type));for(let r=t;r<n;r++)if(!B(e[r])&&i.every(e=>!(e.from<=r&&r<e.to)))return!1;return!0}function vt(e,t,n,r,i){let a=E(e),o=D(a,e=>e.type===r.node);return i?xt(e,o,t,n):yt(e,a,o,t,n,r)}function yt(e,t,n,r,i,a){for(let e=0;e!==i-r;){e=i-r,[r,i]=R(t,r,i);for(let e of n)e.to===r&&(r=e.from),e.from===i&&(i=e.to)}let o=[];for(let e of n)if(r<=e.from&&e.to<=i){let[t,n]=I(e);o.push({from:t.from,to:t.to,insert:``}),o.push({from:n.from,to:n.to,insert:``})}let[s,c]=bt(e,r,i,o,a);return o.push({from:r,to:r,insert:s},{from:i,to:i,insert:c}),o}function bt(e,t,n,r,i){if(i.node!==O.InlineCode)return[i.delim,i.delim];let a=e.slice(t,n);for(let e of[...r].sort((e,t)=>t.from-e.from))a=a.slice(0,e.from-t)+a.slice(e.to-t);let o="`".repeat(P(a)+1),s=a.startsWith("`")||a.endsWith("`")?` `:``;return[o+s,s+o]}function xt(e,t,n,r){let i=[];for(let a of t){if(a.to<=n||a.from>=r)continue;let[t,o]=I(a),s=Math.max(n,t.to),c=Math.min(r,o.from);for(s>=c&&([s,c]=[t.to,o.from]),[s,c]=z(a.children.slice(1,-1),s,c);s>t.to&&B(e[s-1]);)s--;for(;c<o.from&&B(e[c]);)c++;s>t.to?i.push({from:s,to:s,insert:e.slice(o.from,o.to)}):i.push({from:t.from,to:t.to,insert:``}),c<o.from?i.push({from:c,to:c,insert:e.slice(t.from,t.to)}):i.push({from:o.from,to:o.to,insert:``})}return i}function St(e,t,n){let{delim:r}=n,i=r.length;if(e.slice(t-i,t)===r&&e.startsWith(r,t)&&e[t-i-1]!==r[0]&&e[t+i]!==r[0])return{kind:`unwrap`,from:t-i,to:t+i};let a=E(e),o=D(a,e=>e.type===n.node).findLast(e=>e.from<=t&&t<=e.to);if(o){let[e,n]=I(o);return{kind:`move`,pos:t===o.from?e.to:t===o.to?n.from:o.to}}return V(a,t)||e[t-1]===r[0]||e[t]===r[0]?null:{kind:`insert`,pos:t}}function V(e,t){for(let n of e)if(n.from<t&&t<n.to){let e=L(n);return!e||t<e[0]||t>e[1]?!0:V(n.children,t)}return!1}function H(e){return(t,n)=>{if(t.selection.empty)return Ct(e,t,n);let{from:r,to:i,anchor:a,head:o}=t.selection,s=[];t.doc.nodesBetween(r,i,(t,n)=>{if(t.type.spec.code)return!1;if(!t.isTextblock)return!0;let a=t.textContent,o=n+1,[c,l]=gt(a,Math.max(r-o,0),Math.min(i-o,a.length));return c<l&&s.push({text:a,base:o,from:c,to:l,active:_t(a,c,l,e)}),!1});let c=s.length>0&&s.every(e=>e.active),l=s.filter(e=>c||!e.active).flatMap(t=>vt(t.text,t.from,t.to,e,c).map(e=>({from:e.from+t.base,to:e.to+t.base,insert:e.insert})));if(l.length===0)return!1;if(n){let e=t.tr;l.sort((e,t)=>t.from-e.from||t.to-e.to);for(let t of l)t.insert?e.insertText(t.insert,t.from,t.to):e.delete(t.from,t.to);e.setSelection(g.create(e.doc,e.mapping.map(a,a<=o?1:-1),e.mapping.map(o,o<a?1:-1))),n(e.scrollIntoView())}return!0}}function Ct(e,t,n){let{$from:r}=t.selection,i=r.parent;if(!i.isTextblock||i.type.spec.code)return!1;let a=St(i.textContent,r.parentOffset,e);if(!a)return!1;if(n){let i=r.start(),o=t.tr;a.kind===`unwrap`&&o.delete(i+a.from,i+a.to),a.kind===`move`&&o.setSelection(g.create(o.doc,i+a.pos)),a.kind===`insert`&&(o.insertText(e.delim+e.delim,i+a.pos),o.setSelection(g.create(o.doc,i+a.pos+e.delim.length))),n(o.scrollIntoView())}return!0}function wt(){return r({toggleEm:()=>H(F.em),toggleStrong:()=>H(F.strong),toggleCode:()=>H(F.code),toggleDel:()=>H(F.del)})}function Tt(){return a({"Mod-b":H(F.strong),"Mod-i":H(F.em),"Mod-e":H(F.code),"Mod-Shift-x":H(F.del)})}function Et(){return f(wt(),Tt())}function Dt(){return f(Oe(),De(),Ce(),Ee(),s(ke()),we(),Te())}function Ot(){return f(ue(),ae(),de(),ne(),ce(),Le(),Dt(),re(),se(),mt(),Pe(),it(),Et(),n(),t(),i(),oe(),fe(),le())}function U(){return Ot()}const kt=new Set([`mdStrong`,`mdEm`,`mdCode`,`mdDel`,`mdLinkText`,`mdLinkUri`,`mdWikilink`]),At=new Set([`mdMark`,`mdLinkUri`]),jt=new Set([`mdMark`,`mdLinkUri`]),W=new Set([`mdLinkText`,`mdLinkUri`]),Mt=new Set([`mdStrong`,`mdEm`,`mdCode`,`mdDel`,`mdWikilink`]);function Nt(e){return new m({key:new h(`mark-mode`),props:{attributes:{"data-mark-mode":e},decorations:e===`focus`?e=>It(e):void 0,clipboardTextSerializer:e===`show`?void 0:Ft}})}function Pt(e){return s(Nt(e))}function Ft(e){let t=[];return e.content.forEach(e=>{let n=[];e.descendants(e=>!e.isText||!e.text?!0:(e.marks.some(e=>jt.has(e.type.name))||n.push(e.text),!1)),t.push(n.join(``))}),t.join(`
2
- `)}function It(e){let{$anchor:t,empty:n}=e.selection;if(!n)return x.empty;let r=t.parent;if(!r.isTextblock)return null;let i=t.start(),a=t.parentOffset,o=Lt(r,a);if(o.size===0)return x.empty;let s=[],c=new Set,l=!1;for(let e of o)if(W.has(e)){if(l)continue;l=!0,zt(r,i,a,s,c)}else Rt(r,i,e,a,s,c);let u=s.map(([e,t])=>b.inline(e,t,{class:`show`}));return x.create(e.doc,u)}function Lt(e,t){let n=new Set,r=0;return e.forEach(e=>{let i=r+e.nodeSize;if(t>=r&&t<=i)for(let t of e.marks){let e=t.type.name;kt.has(e)&&n.add(e)}r=i}),n}function Rt(e,t,n,r,i,a){let o=t,s=0,c=-1,l=-1;e.forEach(u=>{let d=u.marks.some(e=>e.type.name===n);d&&c===-1&&(c=o,l=s),!d&&c!==-1&&(r>=l&&r<=s&&K(e,t,c,o,i,a),c=-1,l=-1),o+=u.nodeSize,s+=u.nodeSize}),c!==-1&&r>=l&&r<=s&&K(e,t,c,o,i,a)}function zt(e,t,n,r,i){let a=e.childCount;if(a===0)return;let o=-1,s=0;for(let t=0;t<a;t++){let r=e.child(t),i=s+r.nodeSize;if(n>=s&&n<=i&&r.marks.some(e=>W.has(e.type.name))){o=t;break}s=i}if(o===-1)return;let c=o;for(;c>0&&G(e.child(c-1));)c--;let l=o;for(;l<a-1&&G(e.child(l+1));)l++;let u=t;for(let t=0;t<c;t++)u+=e.child(t).nodeSize;let d=u;for(let t=c;t<=l;t++)d+=e.child(t).nodeSize;K(e,t,u,d,r,i)}function G(e){let t=!1,n=!1,r=!1;for(let i of e.marks){let e=i.type.name;e===`mdMark`?t=!0:W.has(e)?n=!0:Mt.has(e)&&(r=!0)}return!!(n||t&&!r)}function K(e,t,n,r,i,a){let o=t;e.forEach(e=>{let t=o,s=o+e.nodeSize;if(t>=n&&s<=r)for(let n of e.marks){let e=n.type.name;if(At.has(e)){let e=`${t}_${s}`;a.has(e)||(a.add(e),i.push([t,s]));break}}o=s})}const Bt=new h(`meowdown-wikilink-click`);function Vt(e,t){let n=c(e.schema,`mdWikilink`),r=e.doc.resolve(t),i=r.parent;if(!i.isTextblock||i.type.spec.code)return;let a=r.start(),o=-1,s=-1,l,u=0;if(i.forEach(e=>{let r=a+u;u+=e.nodeSize;let i=a+u;n.isInSet(e.marks)?(o<0&&(o=r),s=i):(o>=0&&o<=t&&t<=s&&(l={from:o,to:s}),o=-1)}),o>=0&&o<=t&&t<=s&&(l={from:o,to:s}),l)return{from:l.from,to:l.to,target:Ht(e.doc.textBetween(l.from,l.to))}}function Ht(e){let t=e.replace(/^\[\[/u,``).replace(/\]\]$/u,``),n=t.indexOf(`|`);return(n>=0?t.slice(0,n):t).trim()}function Ut(e){let t;return s(new m({key:Bt,props:{handleDOMEvents:{mousedown:e=>{let{from:n,to:r,empty:i}=e.state.selection;return t={from:n,to:r,empty:i},!1}},handleClick:(n,r,i)=>{if(!i.target?.closest?.(`.md-wikilink`))return!1;let a=Vt(n.state,r);return!a||!(l?i.metaKey:i.ctrlKey)&&t?.empty&&t.from>=a.from&&t.to<=a.to?!1:(e({target:a.target,event:i}),!0)}}}))}function Wt(e){let t=[],n=D(E(e),e=>e.type===O.Image);for(let r of n){let n=r.children.find(e=>e.type===O.URL),i=r.children.filter(e=>e.type===O.LinkMark);!n||i.length<2||t.push({from:r.from,to:r.to,alt:e.slice(i[0].to,i[1].from),src:e.slice(n.from,n.to)})}return t}const q=new h(`meowdown-images`);function Gt(e){let t=[];return e.doc.descendants((e,n)=>{if(e.type.spec.code)return!1;if(!e.isTextblock)return!0;if(e.childCount===0)return!1;let r=!0;if(e.forEach(e=>{e.isText||(r=!1)}),!r)return!1;for(let r of Wt(e.textContent))t.push({widgetAt:n+e.nodeSize-1,alt:r.alt,src:r.src});return!1}),t}function J(e,t){let n=[];for(let r of Gt(e)){let e=t.resolveImageUrl(r.src);e&&n.push(b.widget(r.widgetAt,()=>{let t=document.createElement(`div`);t.className=`md-image`,t.contentEditable=`false`;let n=document.createElement(`img`);return n.src=e,n.alt=r.alt,n.draggable=!1,t.appendChild(n),t},{key:`md-image:${e}`,side:1}))}return x.create(e.doc,n)}function Kt(e){return new m({key:q,state:{init:(t,n)=>J(n,e),apply:(t,n,r,i)=>t.docChanged?J(i,e):n},props:{decorations:e=>q.getState(e)}})}function Y(e){return e?Array.from(e.files).filter(e=>e.type.startsWith(`image/`)):[]}function qt(e,t,n){e.onImageSaveError?e.onImageSaveError(t,n):console.error(`[meowdown] failed to save pasted image:`,t)}async function Jt(e,t,n,r){let i=r;for(let r of t){let t;try{t=await n.onImagePaste(r)}catch(e){qt(n,e,r);continue}if(!t||e.isDestroyed)continue;let a=`![](${t})`,o=i==null?e.state.tr.insertText(a):e.state.tr.insertText(a,i);e.dispatch(o),i!=null&&(i+=a.length)}}function Yt(e){return new m({props:{handlePaste:(t,n)=>{let r=Y(n.clipboardData),i=e.onImagePaste;return r.length===0||!i?!1:(Jt(t,r,{...e,onImagePaste:i}),!0)},handleDrop:(t,n)=>{let r=Y(n.dataTransfer),i=e.onImagePaste;if(r.length===0||!i)return!1;let a=t.posAtCoords({left:n.clientX,top:n.clientY});return Jt(t,r,{...e,onImagePaste:i},a?.pos),!0}}})}function Xt(e){return f(s(Kt(e)),s(Yt(e)))}const Zt={"Mod-b":`Bold`,"Mod-i":`Italic`,"Mod-e":`Inline code`,"Mod-Shift-x":`Strikethrough`,"Mod-1":`Heading 1`,"Mod-2":`Heading 2`,"Mod-3":`Heading 3`,"Mod-4":`Heading 4`,"Mod-5":`Heading 5`,"Mod-6":`Heading 6`},Qt=new Set([`MscGen`,`Xù`,`MsGenny`,`Angular Template`]),$t=p.map(e=>e.name).filter(e=>!Qt.has(e)).map(e=>({label:e,value:e.toLowerCase()})).concat({label:`Plain text`,value:``}).sort((e,t)=>e.label.localeCompare(t.label));function en(e){let t=new nn;return rn(e,t),t.finish()}const tn=[``,`# `,`## `,`### `,`#### `,`##### `,`###### `];var nn=class{constructor(){this.parts=[],this.linePrefix=``,this.pendingFirst=null,this.atLineStart=!0,this.deferredBlankPrefix=null}write(e){if(e===``)return;if(this.emitDeferredBlankLine(),this.atLineStart&&=(this.parts.push(this.pendingFirst??this.linePrefix),this.pendingFirst=null,!1),!e.includes(`
1
+ import{Priority as e,createEditor as t,defineBaseCommands as n,defineBaseKeymap as r,defineCommands as i,defineHistory as a,defineKeymap as o,defineMarkSpec as s,definePlugin as c,getMarkType as l,isApple as u,isAtBlockStart as d,toggleNode as ee,union as f,unsetBlockType as te,withPriority as ne,withSkipCodeBlock as re}from"@prosekit/core";import{defineBlockquote as ie}from"@prosekit/extensions/blockquote";import{defineCodeBlock as ae,defineCodeBlockHighlight as oe}from"@prosekit/extensions/code-block";import{defineDoc as se}from"@prosekit/extensions/doc";import{defineGapCursor as ce}from"@prosekit/extensions/gap-cursor";import{defineHorizontalRule as le}from"@prosekit/extensions/horizontal-rule";import{defineList as ue}from"@prosekit/extensions/list";import{defineModClickPrevention as de}from"@prosekit/extensions/mod-click-prevention";import{defineParagraph as fe}from"@prosekit/extensions/paragraph";import{defineText as pe}from"@prosekit/extensions/text";import{defineVirtualSelection as me}from"@prosekit/extensions/virtual-selection";import{LanguageDescription as he}from"@codemirror/language";import{languages as ge}from"@codemirror/language-data";import{classHighlighter as _e}from"@lezer/highlight";import{createParser as ve}from"prosemirror-highlight/lezer";import{defineHeadingCommands as ye,defineHeadingInputRule as be,defineHeadingSpec as xe}from"@prosekit/extensions/heading";import{Plugin as p,PluginKey as m,TextSelection as h}from"@prosekit/pm/state";import{ReplaceStep as Se,Step as Ce,StepResult as g,Transform as _}from"@prosekit/pm/transform";import{Mark as we}from"@prosekit/pm/model";import{GFM as Te,parser as Ee}from"@lezer/markdown";import{defineTableCellSpec as De,defineTableCommands as Oe,defineTableDropIndicator as ke,defineTableHeaderCellSpec as Ae,defineTableRowSpec as je,defineTableSpec as Me}from"@prosekit/extensions/table";import{tableEditing as Ne}from"prosemirror-tables";import{Decoration as v,DecorationSet as y}from"@prosekit/pm/view";import{definePlaceholder as Pe}from"@prosekit/extensions/placeholder";import{defineReadonly as Fe}from"@prosekit/extensions/readonly";const b=new Map;async function Ie(e){let t=he.matchLanguageName(ge,e,!0);if(!t){b.set(e,null);return}let n=t.support;if(!n)try{n=await t.load()}catch(t){console.error(`[meowdown] Failed to load language "${e}":`,t),b.set(e,null)}if(b.has(e))return;if(!n){b.set(e,null);return}let r=ve({parse:e=>n.language.parser.parse(e.content),highlighter:_e});b.set(e,r)}const Le=e=>{let t=e.language?.trim();if(!t)return[];let n=b.get(t);return n?n(e):n===null?[]:Ie(t)};function Re(){return oe({parser:Le,nodeTypes:[`codeBlock`]})}function x(e){return re(ee({type:`heading`,attrs:{level:e}}))}const ze=(e,t,n)=>d(e,n)?.parent.type.name===`heading`?te()(e,t,n):!1;function Be(){return o({"Mod-1":x(1),"Mod-2":x(2),"Mod-3":x(3),"Mod-4":x(4),"Mod-5":x(5),"Mod-6":x(6),Backspace:ze})}function Ve(){return f(xe(),be(),ye(),Be())}function He(e){let[t,n,r]=e;return[t,n,r.map(e=>e.toJSON())]}function Ue(e,t){let[n,r,i]=t;return[n,r,i.map(t=>we.fromJSON(e,t))]}var S=class e extends Ce{constructor(e){super(),this.chunks=e}apply(e){if(this.chunks.length===0)return g.ok(e);let t=e.content.size,n;for(let[r,i,a]of this.chunks){if(r>=i)continue;let o=Math.max(0,Math.min(r,t)),s=Math.max(o,Math.min(i,t));o>=s||e.nodesBetween(o,s,(t,r)=>{if(!t.isText)return!0;let i=Math.max(o,r),c=Math.min(s,r+t.nodeSize);if(i>=c)return!1;let l=t.marks;for(let t of l)t.isInSet(a)||(n??=new _(e),n.removeMark(i,c,t));for(let t of a)t.isInSet(l)||(n??=new _(e),n.addMark(i,c,t));return!1})}return g.ok(n?n.doc:e)}invert(e){if(this.chunks.length===0)return We;let t=this.chunks[0][0],n=this.chunks[0][1];for(let[,e]of this.chunks)e>n&&(n=e);let r=e.content.size,i=Math.max(0,Math.min(t,r)),a=Math.max(i,Math.min(n,r));return new Se(i,a,e.slice(i,a),!1)}map(e){return null}toJSON(){return{stepType:`batchSetMark`,chunks:this.chunks.map(He)}}static fromJSON(t,n){let r=n.chunks;return new e(r.map(e=>Ue(t,e)))}};Ce.jsonID(`batchSetMark`,S);const We=new S([]);function Ge(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45||e===95||e>127&&/[\p{L}\p{N}]/u.test(String.fromCharCode(e))}function Ke(e){return e>=65&&e<=90||e>=97&&e<=122||e>127&&/\p{L}/u.test(String.fromCharCode(e))}const qe={defineNodes:[{name:`Hashtag`}],parseInline:[{name:`Hashtag`,parse(e,t,n){if(t!==35||!/\s|^$/.test(e.slice(n-1,n)))return-1;let r=n+1,i=!1;for(;r<e.end;){let t=e.char(r);if(!Ge(t))break;i||=Ke(t),r++}return i?e.addElement(e.elt(`Hashtag`,n,r)):-1}}]},Je={defineNodes:[{name:`Wikilink`},{name:`WikilinkMark`}],parseInline:[{name:`Wikilink`,before:`Link`,parse(e,t,n){if(t!==91||e.char(n+1)!==91)return-1;let r=!1;for(let t=n+2;t<e.end-1;t++){let i=e.char(t);if(i===93){if(e.char(t+1)!==93||!r)return-1;let i=t+2;return e.addElement(e.elt(`Wikilink`,n,i,[e.elt(`WikilinkMark`,n,n+2),e.elt(`WikilinkMark`,t,i)]))}if(i===91||i===10)return-1;i!==32&&i!==9&&(r=!0)}return-1}}]};function Ye(e){return e.end}const C=Ee.configure([Te,qe,Je]),Xe=C.configure({parseInline:[{name:`SkipInline`,before:`Escape`,parse:Ye}]});function w(e){return C.parseInline(e,0)}function T(e,t,n=[]){for(let r of e)t(r)&&n.push(r),T(r.children,t,n);return n}function Ze(e){let t={};for(let n of e.nodeSet.types)t[n.name]=n.id;return t}const E=Ze(C);function Qe(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}const D=new Map([[E.Emphasis,`mdEm`],[E.StrongEmphasis,`mdStrong`],[E.InlineCode,`mdCode`],[E.Strikethrough,`mdDel`],[E.EmphasisMark,`mdMark`],[E.CodeMark,`mdMark`],[E.LinkMark,`mdMark`],[E.StrikethroughMark,`mdMark`],[E.URL,`mdLinkUri`],[E.Hashtag,`mdTag`],[E.Wikilink,`mdWikilink`],[E.WikilinkMark,`mdMark`]]);function $e(e,t){let n=w(t),r=[];return O(n,[],0,t.length,t,e,r),r}function O(e,t,n,r,i,a,o){let s=n;for(let n of e){if(n.from>s&&k(o,s,n.from,t),n.type===E.Link||n.type===E.Image)et(n,t,i,a,o);else{let e=D.get(n.type),r=e?[...t,a.marks[e].create()]:t;n.children.length===0?k(o,n.from,n.to,r):O(n.children,r,n.from,n.to,i,a,o)}s=n.to}s<r&&k(o,s,r,t)}function et(e,t,n,r,i){let a=-1,o=null,s=0;for(let t of e.children)t.type===E.LinkMark?(s++,s===2&&(a=t.from)):t.type===E.URL&&o===null&&(o=t);let c=o?n.slice(o.from,o.to):``,l=c&&r.marks.mdLinkText?r.marks.mdLinkText.create({href:c}):null,u=e=>a>=0&&e<a&&l!==null,d=e.from;for(let a of e.children){if(a.from>d){let e=u(d)?[...t,l]:t;k(i,d,a.from,e)}let e=u(a.from)?[...t,l]:t,o=D.get(a.type),s=o?[...e,r.marks[o].create()]:e;a.children.length===0?k(i,a.from,a.to,s):O(a.children,s,a.from,a.to,n,r,i),d=a.to}d<e.to&&k(i,d,e.to,t)}function k(e,t,n,r){if(t>=n)return;let i=e.at(-1);if(i&&i[1]===t&&Qe(i[2],r)){e[e.length-1]=[i[0],n,i[2]];return}e.push([t,n,r])}const A=`inline-marks-applied`,j=new WeakMap;let tt=0,nt=0;function rt(e,t,n){let r=j.get(e);if(r?nt++:(tt++,r=$e(n,e.textContent),j.set(e,r)),t===0)return r;let i=[];for(let[e,n,a]of r)i.push([e+t,n+t,a]);return i}function it(e,t){let n=1/0,r=-1/0;for(let t of e)for(let e of t.mapping.maps)e.forEach((e,t,i,a)=>{i<n&&(n=i),a>r&&(r=a)});let i=t.doc.content.size;return n>r?{from:0,to:i}:{from:Math.max(0,n),to:Math.min(i,r)}}function at(e,t){let n=[];return e.doc.nodesBetween(t.from,t.to,(t,r)=>{if(t.type.spec.code)return!1;if(!t.isTextblock)return!0;if(t.childCount===0)return!1;let i=rt(t,r+1,e.schema);return i.length>0&&n.push(...i),!1}),n}function ot(){return new p({key:new m(`inline-mark`),appendTransaction(e,t,n){for(let t of e)if(t.getMeta(A))return null;let r=at(n,it(e,n));if(r.length===0)return null;let i=n.tr.step(new S(r));return i.setMeta(A,!0),i.setMeta(`addToHistory`,!1),i},view(e){return e.dispatch(st(e.state)),{}}})}function st(e){return e.tr.setMeta(`inline-marks-trigger`,!0)}function ct(){return c(ot())}function lt(){return s({name:`mdMark`,inclusive:!1,toDOM:()=>[`span`,{class:`md-mark`},0],parseDOM:[{tag:`span.md-mark`}]})}function ut(){return s({name:`mdEm`,toDOM:()=>[`em`,0],parseDOM:[{tag:`em`}]})}function dt(){return s({name:`mdStrong`,toDOM:()=>[`strong`,0],parseDOM:[{tag:`strong`}]})}function ft(){return s({name:`mdCode`,toDOM:()=>[`code`,0],parseDOM:[{tag:`code`}]})}function pt(){return s({name:`mdLinkText`,inclusive:!1,attrs:{href:{default:``}},toDOM:e=>[`a`,{href:e.attrs.href},0],parseDOM:[{tag:`a`,getAttrs:e=>({href:e.getAttribute(`href`)??``})}]})}function mt(){return s({name:`mdLinkUri`,inclusive:!1,toDOM:()=>[`span`,{class:`md-link-uri`},0],parseDOM:[{tag:`span.md-link-uri`}]})}function ht(){return s({name:`mdDel`,toDOM:()=>[`del`,0],parseDOM:[{tag:`del`}]})}function gt(){return s({name:`mdTag`,toDOM:()=>[`span`,{class:`md-tag`},0],parseDOM:[{tag:`span.md-tag`}]})}function _t(){return s({name:`mdWikilink`,inclusive:!1,toDOM:()=>[`span`,{class:`md-wikilink`},0],parseDOM:[{tag:`span.md-wikilink`}]})}function vt(){return f(lt(),ut(),dt(),ft(),pt(),mt(),ht(),gt(),_t())}function M(e,t=0){let n=t,r=0;for(let t=0;t<e.length;t++)e.charCodeAt(t)===96?(r++,r>n&&(n=r)):r=0;return n}const N={em:{node:E.Emphasis,delim:`*`},strong:{node:E.StrongEmphasis,delim:`**`},code:{node:E.InlineCode,delim:"`"},del:{node:E.Strikethrough,delim:`~~`}},yt=new Set([E.EmphasisMark,E.CodeMark,E.LinkMark,E.StrikethroughMark]);function P(e){return[e.children[0],e.children.at(-1)]}function bt(e){let{type:t,children:n}=e;if(t===E.Emphasis||t===E.StrongEmphasis||t===E.Strikethrough)return[n[0].to,n.at(-1).from];if(t===E.Link||t===E.Image){let e=n.find((e,t)=>t>0&&e.type===E.LinkMark);return e?[n[0].to,e.from]:null}return null}function F(e,t,n){for(let r of e){if(r.to<=t||r.from>=n||t<=r.from&&r.to<=n)continue;let i=bt(r);return i&&i[0]<=t&&n<=i[1]?F(r.children,t,n):F(e,Math.min(t,r.from),Math.max(n,r.to))}return[t,n]}function I(e,t,n){for(let r of e)if(!(r.to<=t||r.from>=n)&&(t>r.from||r.to>n))return I(e,Math.min(t,r.from),Math.max(n,r.to));return[t,n]}const L=e=>e===` `||e===` `;function xt(e,t,n){for(;t<n&&L(e[t]);)t++;for(;n>t&&L(e[n-1]);)n--;return[t,n]}function St(e,t,n,r){let i=T(w(e),e=>e.type===r.node||yt.has(e.type));for(let r=t;r<n;r++)if(!L(e[r])&&i.every(e=>!(e.from<=r&&r<e.to)))return!1;return!0}function Ct(e,t,n,r,i){let a=w(e),o=T(a,e=>e.type===r.node);return i?Et(e,o,t,n):wt(e,a,o,t,n,r)}function wt(e,t,n,r,i,a){for(let e=0;e!==i-r;){e=i-r,[r,i]=F(t,r,i);for(let e of n)e.to===r&&(r=e.from),e.from===i&&(i=e.to)}let o=[];for(let e of n)if(r<=e.from&&e.to<=i){let[t,n]=P(e);o.push({from:t.from,to:t.to,insert:``}),o.push({from:n.from,to:n.to,insert:``})}let[s,c]=Tt(e,r,i,o,a);return o.push({from:r,to:r,insert:s},{from:i,to:i,insert:c}),o}function Tt(e,t,n,r,i){if(i.node!==E.InlineCode)return[i.delim,i.delim];let a=e.slice(t,n);for(let e of[...r].sort((e,t)=>t.from-e.from))a=a.slice(0,e.from-t)+a.slice(e.to-t);let o="`".repeat(M(a)+1),s=a.startsWith("`")||a.endsWith("`")?` `:``;return[o+s,s+o]}function Et(e,t,n,r){let i=[];for(let a of t){if(a.to<=n||a.from>=r)continue;let[t,o]=P(a),s=Math.max(n,t.to),c=Math.min(r,o.from);for(s>=c&&([s,c]=[t.to,o.from]),[s,c]=I(a.children.slice(1,-1),s,c);s>t.to&&L(e[s-1]);)s--;for(;c<o.from&&L(e[c]);)c++;s>t.to?i.push({from:s,to:s,insert:e.slice(o.from,o.to)}):i.push({from:t.from,to:t.to,insert:``}),c<o.from?i.push({from:c,to:c,insert:e.slice(t.from,t.to)}):i.push({from:o.from,to:o.to,insert:``})}return i}function Dt(e,t,n){let{delim:r}=n,i=r.length;if(e.slice(t-i,t)===r&&e.startsWith(r,t)&&e[t-i-1]!==r[0]&&e[t+i]!==r[0])return{kind:`unwrap`,from:t-i,to:t+i};let a=w(e),o=T(a,e=>e.type===n.node).findLast(e=>e.from<=t&&t<=e.to);if(o){let[e,n]=P(o);return{kind:`move`,pos:t===o.from?e.to:t===o.to?n.from:o.to}}return R(a,t)||e[t-1]===r[0]||e[t]===r[0]?null:{kind:`insert`,pos:t}}function R(e,t){for(let n of e)if(n.from<t&&t<n.to){let e=bt(n);return!e||t<e[0]||t>e[1]?!0:R(n.children,t)}return!1}function z(e){return(t,n)=>{if(t.selection.empty)return Ot(e,t,n);let{from:r,to:i,anchor:a,head:o}=t.selection,s=[];t.doc.nodesBetween(r,i,(t,n)=>{if(t.type.spec.code)return!1;if(!t.isTextblock)return!0;let a=t.textContent,o=n+1,[c,l]=xt(a,Math.max(r-o,0),Math.min(i-o,a.length));return c<l&&s.push({text:a,base:o,from:c,to:l,active:St(a,c,l,e)}),!1});let c=s.length>0&&s.every(e=>e.active),l=s.filter(e=>c||!e.active).flatMap(t=>Ct(t.text,t.from,t.to,e,c).map(e=>({from:e.from+t.base,to:e.to+t.base,insert:e.insert})));if(l.length===0)return!1;if(n){let e=t.tr;l.sort((e,t)=>t.from-e.from||t.to-e.to);for(let t of l)t.insert?e.insertText(t.insert,t.from,t.to):e.delete(t.from,t.to);e.setSelection(h.create(e.doc,e.mapping.map(a,a<=o?1:-1),e.mapping.map(o,o<a?1:-1))),n(e.scrollIntoView())}return!0}}function Ot(e,t,n){let{$from:r}=t.selection,i=r.parent;if(!i.isTextblock||i.type.spec.code)return!1;let a=Dt(i.textContent,r.parentOffset,e);if(!a)return!1;if(n){let i=r.start(),o=t.tr;a.kind===`unwrap`&&o.delete(i+a.from,i+a.to),a.kind===`move`&&o.setSelection(h.create(o.doc,i+a.pos)),a.kind===`insert`&&(o.insertText(e.delim+e.delim,i+a.pos),o.setSelection(h.create(o.doc,i+a.pos+e.delim.length))),n(o.scrollIntoView())}return!0}function kt(){return i({toggleEm:()=>z(N.em),toggleStrong:()=>z(N.strong),toggleCode:()=>z(N.code),toggleDel:()=>z(N.del)})}function At(){return o({"Mod-b":z(N.strong),"Mod-i":z(N.em),"Mod-e":z(N.code),"Mod-Shift-x":z(N.del)})}function jt(){return f(kt(),At())}function Mt(){return f(Me(),je(),De(),Ae(),c(Ne()),Oe(),ke())}function Nt(){return f(fe(),se(),pe(),ie(),ue(),Ve(),Mt(),ae(),le(),vt(),Re(),ct(),jt(),r(),n(),a(),ce(),me(),de())}function B(){return Nt()}const Pt=new Set([`mdStrong`,`mdEm`,`mdCode`,`mdDel`,`mdLinkText`,`mdLinkUri`,`mdWikilink`]),Ft=new Set([`mdMark`,`mdLinkUri`]),It=new Set([`mdMark`,`mdLinkUri`]),V=new Set([`mdLinkText`,`mdLinkUri`]),Lt=new Set([`mdStrong`,`mdEm`,`mdCode`,`mdDel`,`mdWikilink`]);function Rt(e){return new p({key:new m(`mark-mode`),props:{attributes:{"data-mark-mode":e},decorations:e===`focus`?e=>Vt(e):void 0,clipboardTextSerializer:e===`show`?void 0:Bt}})}function zt(e){return c(Rt(e))}function Bt(e){let t=[];return e.content.forEach(e=>{let n=[];e.descendants(e=>!e.isText||!e.text?!0:(e.marks.some(e=>It.has(e.type.name))||n.push(e.text),!1)),t.push(n.join(``))}),t.join(`
2
+ `)}function Vt(e){let{$anchor:t,empty:n}=e.selection;if(!n)return y.empty;let r=t.parent;if(!r.isTextblock)return null;let i=t.start(),a=t.parentOffset,o=Ht(r,a);if(o.size===0)return y.empty;let s=[],c=new Set,l=!1;for(let e of o)if(V.has(e)){if(l)continue;l=!0,Wt(r,i,a,s,c)}else Ut(r,i,e,a,s,c);let u=s.map(([e,t])=>v.inline(e,t,{class:`show`}));return y.create(e.doc,u)}function Ht(e,t){let n=new Set,r=0;return e.forEach(e=>{let i=r+e.nodeSize;if(t>=r&&t<=i)for(let t of e.marks){let e=t.type.name;Pt.has(e)&&n.add(e)}r=i}),n}function Ut(e,t,n,r,i,a){let o=t,s=0,c=-1,l=-1;e.forEach(u=>{let d=u.marks.some(e=>e.type.name===n);d&&c===-1&&(c=o,l=s),!d&&c!==-1&&(r>=l&&r<=s&&U(e,t,c,o,i,a),c=-1,l=-1),o+=u.nodeSize,s+=u.nodeSize}),c!==-1&&r>=l&&r<=s&&U(e,t,c,o,i,a)}function Wt(e,t,n,r,i){let a=e.childCount;if(a===0)return;let o=-1,s=0;for(let t=0;t<a;t++){let r=e.child(t),i=s+r.nodeSize;if(n>=s&&n<=i&&r.marks.some(e=>V.has(e.type.name))){o=t;break}s=i}if(o===-1)return;let c=o;for(;c>0&&H(e.child(c-1));)c--;let l=o;for(;l<a-1&&H(e.child(l+1));)l++;let u=t;for(let t=0;t<c;t++)u+=e.child(t).nodeSize;let d=u;for(let t=c;t<=l;t++)d+=e.child(t).nodeSize;U(e,t,u,d,r,i)}function H(e){let t=!1,n=!1,r=!1;for(let i of e.marks){let e=i.type.name;e===`mdMark`?t=!0:V.has(e)?n=!0:Lt.has(e)&&(r=!0)}return!!(n||t&&!r)}function U(e,t,n,r,i,a){let o=t;e.forEach(e=>{let t=o,s=o+e.nodeSize;if(t>=n&&s<=r)for(let n of e.marks){let e=n.type.name;if(Ft.has(e)){let e=`${t}_${s}`;a.has(e)||(a.add(e),i.push([t,s]));break}}o=s})}const Gt=new m(`meowdown-wikilink-click`);function Kt(e,t){let n=l(e.schema,`mdWikilink`),r=e.doc.resolve(t),i=r.parent;if(!i.isTextblock||i.type.spec.code)return;let a=r.start(),o=-1,s=-1,c,u=0;if(i.forEach(e=>{let r=a+u;u+=e.nodeSize;let i=a+u;n.isInSet(e.marks)?(o<0&&(o=r),s=i):(o>=0&&o<=t&&t<=s&&(c={from:o,to:s}),o=-1)}),o>=0&&o<=t&&t<=s&&(c={from:o,to:s}),c)return{from:c.from,to:c.to,target:qt(e.doc.textBetween(c.from,c.to))}}function qt(e){let t=e.replace(/^\[\[/u,``).replace(/\]\]$/u,``),n=t.indexOf(`|`);return(n>=0?t.slice(0,n):t).trim()}function Jt(e){let t;return c(new p({key:Gt,props:{handleDOMEvents:{mousedown:e=>{let{from:n,to:r,empty:i}=e.state.selection;return t={from:n,to:r,empty:i},!1}},handleClick:(n,r,i)=>{if(!i.target?.closest?.(`.md-wikilink`))return!1;let a=Kt(n.state,r);return!a||!(u?i.metaKey:i.ctrlKey)&&t?.empty&&t.from>=a.from&&t.to<=a.to?!1:(e({target:a.target,event:i}),!0)}}}))}function Yt(e){let t=[],n=T(w(e),e=>e.type===E.Image);for(let r of n){let n=r.children.find(e=>e.type===E.URL),i=r.children.filter(e=>e.type===E.LinkMark);!n||i.length<2||t.push({from:r.from,to:r.to,alt:e.slice(i[0].to,i[1].from),src:e.slice(n.from,n.to)})}return t}const W=new m(`meowdown-images`);function Xt(e){let t=[];return e.doc.descendants((e,n)=>{if(e.type.spec.code)return!1;if(!e.isTextblock)return!0;if(e.childCount===0)return!1;let r=!0;if(e.forEach(e=>{e.isText||(r=!1)}),!r)return!1;for(let r of Yt(e.textContent))t.push({widgetAt:n+e.nodeSize-1,alt:r.alt,src:r.src});return!1}),t}function G(e,t){let n=[];for(let r of Xt(e)){let e=t.resolveImageUrl(r.src);e&&n.push(v.widget(r.widgetAt,()=>{let t=document.createElement(`div`);t.className=`md-image`,t.contentEditable=`false`;let n=document.createElement(`img`);return n.src=e,n.alt=r.alt,n.draggable=!1,t.appendChild(n),t},{key:`md-image:${e}`,side:1}))}return y.create(e.doc,n)}function Zt(e){return new p({key:W,state:{init:(t,n)=>G(n,e),apply:(t,n,r,i)=>t.docChanged?G(i,e):n},props:{decorations:e=>W.getState(e)}})}function K(e){return e?Array.from(e.files).filter(e=>e.type.startsWith(`image/`)):[]}const Qt=e=>{console.error(`[meowdown] failed to save pasted image:`,e)};async function q(e,t,n,r=Qt,i){let a=i;for(let i of t){let t;try{t=await n(i)}catch(e){r(e,i);continue}if(!t||e.isDestroyed)continue;let o=`![](${t})`,s=a==null?e.state.tr.insertText(o):e.state.tr.insertText(o,a);e.dispatch(s),a!=null&&(a+=o.length)}}function $t(e){return new p({props:{handlePaste:(t,n)=>{let r=K(n.clipboardData),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(q(t,r,i,a),!0)},handleDrop:(t,n)=>{let r=K(n.dataTransfer),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(q(t,r,i,a,t.posAtCoords({left:n.clientX,top:n.clientY})?.pos),!0)}}})}function en(t){return f(c(Zt(t)),ne(c($t(t)),e.high))}const tn={"Mod-b":`Bold`,"Mod-i":`Italic`,"Mod-e":`Inline code`,"Mod-Shift-x":`Strikethrough`,"Mod-1":`Heading 1`,"Mod-2":`Heading 2`,"Mod-3":`Heading 3`,"Mod-4":`Heading 4`,"Mod-5":`Heading 5`,"Mod-6":`Heading 6`},nn=new Set([`MscGen`,`Xù`,`MsGenny`,`Angular Template`]),rn=ge.map(e=>e.name).filter(e=>!nn.has(e)).map(e=>({label:e,value:e.toLowerCase()})).concat({label:`Plain text`,value:``}).sort((e,t)=>e.label.localeCompare(t.label));function J(e){let t=new on;return Y(e,t),t.finish()}const an=[``,`# `,`## `,`### `,`#### `,`##### `,`###### `];var on=class{constructor(){this.parts=[],this.linePrefix=``,this.pendingFirst=null,this.atLineStart=!0,this.deferredBlankPrefix=null}write(e){if(e===``)return;if(this.emitDeferredBlankLine(),this.atLineStart&&=(this.parts.push(this.pendingFirst??this.linePrefix),this.pendingFirst=null,!1),!e.includes(`
3
3
  `)){this.parts.push(e);return}let t=e.split(`
4
4
  `);for(let e=0;e<t.length;e++)e>0&&this.parts.push(`
5
5
  `,this.linePrefix),t[e]!==``&&this.parts.push(t[e])}closeBlock(){this.atLineStart||this.parts.push(`
6
6
  `),this.atLineStart=!0,this.deferredBlankPrefix=this.linePrefix}suppressBlank(){this.deferredBlankPrefix=null}withPrefix(e,t,n){let r=this.linePrefix,i=this.pendingFirst;if(this.linePrefix=r+e,t!==null){let e=i??r;this.pendingFirst=e+t}n(),this.linePrefix=r,this.pendingFirst=i}finish(){return this.parts.join(``).replace(/\s+$/,``)+`
7
7
  `}emitDeferredBlankLine(){let e=this.deferredBlankPrefix;e!==null&&(this.parts.push(e.trimEnd(),`
8
- `),this.deferredBlankPrefix=null)}};function rn(e,t){switch(e.type.name){case`doc`:X(e,t);return;case`paragraph`:sn(e,t),t.closeBlock();return;case`heading`:{let n=e.attrs.level;t.write(tn[n]??`# `),sn(e,t),t.closeBlock();return}case`blockquote`:t.withPrefix(`> `,`> `,()=>X(e,t)),t.closeBlock();return;case`list`:cn(e,t,on(e));return;case`codeBlock`:ln(e,t);return;case`horizontalRule`:t.write(`---`),t.closeBlock();return;case`table`:un(e,t);return;case`text`:e.text&&t.write(e.text);return}}function X(e,t,n=!1){let r=e.childCount,i=0;for(;i<r;){let a=e.child(i);if(a.type.name!==`list`){n&&i>0&&t.suppressBlank(),rn(a,t),i++;continue}let o=i+1;for(;o<r&&e.child(o).type.name===`list`;)o++;let s=an(e,i,o);for(let r=i;r<o;r++)(r===i?n&&i>0:s)&&t.suppressBlank(),cn(e.child(r),t,s);i=o}}function an(e,t,n){for(let r=t;r<n;r++)if(!on(e.child(r)))return!1;return!0}function on(e){let t=e.childCount;for(let n=0;n<t;n++){let t=e.child(n);if(t.type.name!==`list`&&!(t.type.name===`paragraph`&&n===0))return!1}return!0}function sn(e,t){let n=e.childCount;for(let r=0;r<n;r++){let n=e.child(r);n.isText&&n.text&&t.write(n.text)}}function cn(e,t,n){let r=e.attrs,i=r.kind===`ordered`?`${r.order??1}. `:r.kind===`task`?r.checked?`- [x] `:`- [ ] `:`- `,a=` `.repeat(r.kind===`task`?2:i.length);t.withPrefix(a,i,()=>X(e,t,n)),t.closeBlock()}function ln(e,t){let n=e.attrs.language??``,r=e.textContent,i="`".repeat(P(r,2)+1);t.write(i),n&&t.write(n),t.write(`
8
+ `),this.deferredBlankPrefix=null)}};function Y(e,t){switch(e.type.name){case`doc`:X(e,t);return;case`paragraph`:ln(e,t),t.closeBlock();return;case`heading`:{let n=e.attrs.level;t.write(an[n]??`# `),ln(e,t),t.closeBlock();return}case`blockquote`:t.withPrefix(`> `,`> `,()=>X(e,t)),t.closeBlock();return;case`list`:un(e,t,cn(e));return;case`codeBlock`:dn(e,t);return;case`horizontalRule`:t.write(`---`),t.closeBlock();return;case`table`:fn(e,t);return;case`text`:e.text&&t.write(e.text);return}}function X(e,t,n=!1){let r=e.childCount,i=0;for(;i<r;){let a=e.child(i);if(a.type.name!==`list`){n&&i>0&&t.suppressBlank(),Y(a,t),i++;continue}let o=i+1;for(;o<r&&e.child(o).type.name===`list`;)o++;let s=sn(e,i,o);for(let r=i;r<o;r++)(r===i?n&&i>0:s)&&t.suppressBlank(),un(e.child(r),t,s);i=o}}function sn(e,t,n){for(let r=t;r<n;r++)if(!cn(e.child(r)))return!1;return!0}function cn(e){let t=e.childCount;for(let n=0;n<t;n++){let t=e.child(n);if(t.type.name!==`list`&&!(t.type.name===`paragraph`&&n===0))return!1}return!0}function ln(e,t){let n=e.childCount;for(let r=0;r<n;r++){let n=e.child(r);n.isText&&n.text&&t.write(n.text)}}function un(e,t,n){let r=e.attrs,i=r.kind===`ordered`?`${r.order??1}. `:r.kind===`task`?r.checked?`- [x] `:`- [ ] `:`- `,a=` `.repeat(r.kind===`task`?2:i.length);t.withPrefix(a,i,()=>X(e,t,n)),t.closeBlock()}function dn(e,t){let n=e.attrs.language??``,r=e.textContent,i="`".repeat(M(r,2)+1);t.write(i),n&&t.write(n),t.write(`
9
9
  `),t.write(r),t.write(`
10
- `),t.write(i),t.closeBlock()}function un(e,t){let n=e.childCount;if(n===0)return;let r=[],i=0,a=-1;for(let t=0;t<n;t++){let n=e.child(t),o=[],s=!1;for(let e=0;e<n.childCount;e++){let t=n.child(e);t.type.name===`tableHeaderCell`&&(s=!0),o.push(dn(t))}s&&a<0&&(a=t),o.length>i&&(i=o.length),r.push(o)}if(i===0)return;let o=`| `+Array(i).fill(`---`).join(` | `)+` |`,s=a>=0?r[a]:Array(i).fill(``);t.write(Z(s,i)),t.write(`
10
+ `),t.write(i),t.closeBlock()}function fn(e,t){let n=e.childCount;if(n===0)return;let r=[],i=0,a=-1;for(let t=0;t<n;t++){let n=e.child(t),o=[],s=!1;for(let e=0;e<n.childCount;e++){let t=n.child(e);t.type.name===`tableHeaderCell`&&(s=!0),o.push(mn(t))}s&&a<0&&(a=t),o.length>i&&(i=o.length),r.push(o)}if(i===0)return;let o=`| `+Array(i).fill(`---`).join(` | `)+` |`,s=a>=0?r[a]:Array(i).fill(``);t.write(pn(s,i)),t.write(`
11
11
  `),t.write(o);for(let e=0;e<n;e++)e!==a&&(t.write(`
12
- `),t.write(Z(r[e],i)));t.closeBlock()}function Z(e,t){let n=`|`;for(let r=0;r<t;r++)n+=` `+(e[r]??``)+` |`;return n}function dn(e){let t=e.textContent.trim();return!t.includes(`|`)&&!t.includes(`
12
+ `),t.write(pn(r[e],i)));t.closeBlock()}function pn(e,t){let n=`|`;for(let r=0;r<t;r++)n+=` `+(e[r]??``)+` |`;return n}function mn(e){let t=e.textContent.trim();return!t.includes(`|`)&&!t.includes(`
13
13
  `)?t:t.replaceAll(`|`,String.raw`\|`).replaceAll(`
14
- `,` `)}function fn(e,t){let n=pn(e,Ke.parse(t).cursor(),t);return e.nodes.doc(n)}function pn(e,t,n){let r=[];if(!t.firstChild())return r;do r.push(...Q(e,t,n));while(t.nextSibling());return t.parent(),r}function Q(e,t,n){switch(t.type.id){case O.ATXHeading1:return[$(e,t,n,1)];case O.ATXHeading2:return[$(e,t,n,2)];case O.ATXHeading3:return[$(e,t,n,3)];case O.ATXHeading4:return[$(e,t,n,4)];case O.ATXHeading5:return[$(e,t,n,5)];case O.ATXHeading6:return[$(e,t,n,6)];case O.SetextHeading1:return[$(e,t,n,1)];case O.SetextHeading2:return[$(e,t,n,2)];case O.Paragraph:return[mn(e,t,n)];case O.Blockquote:return[hn(e,t,n)];case O.BulletList:return gn(e,t,n,`bullet`,1);case O.OrderedList:return _n(e,t,n);case O.FencedCode:case O.CodeBlock:return[bn(e,t,n)];case O.HorizontalRule:return[e.nodes.horizontalRule()];case O.Table:return[xn(e,t,n)];case O.Task:return[mn(e,t,n)];default:return[]}}function $(e,t,n,r){let i=t.from,a=t.to;if(t.firstChild()){t.type.id===O.HeaderMark&&(i=t.to);let e=-1,n=-1;do e=t.type.id,n=t.from;while(t.nextSibling());e===O.HeaderMark&&n>i&&(a=n),t.parent()}let o=n.slice(i,a).trim();return e.nodes.heading({level:r},o)}function mn(e,t,n){let r=n.slice(t.from,t.to);return e.nodes.paragraph(r)}function hn(e,t,n){let r=[];if(t.firstChild()){do{if(t.type.id===O.QuoteMark)continue;r.push(...Q(e,t,n))}while(t.nextSibling());t.parent()}return e.nodes.blockquote(r)}function gn(e,t,n,r,i){let a=[];if(t.firstChild()){do t.type.id===O.ListItem&&a.push(vn(e,t,n,r,i));while(t.nextSibling());t.parent()}return a}function _n(e,t,n){let r=1;if(t.firstChild()){if(t.type.id===O.ListItem&&t.firstChild()){if(t.type.id===O.ListMark){let e=n.slice(t.from,t.to),i=Number.parseInt(e,10);Number.isFinite(i)&&(r=i)}t.parent()}t.parent()}return gn(e,t,n,`ordered`,r)}function vn(e,t,n,r,i){let a=[],o=null;if(t.firstChild()){do{if(t.type.id===O.ListMark)continue;if(r===`bullet`&&t.type.id===O.Task){let r=yn(e,t,n);o=r.checked,a.push(r.paragraph);continue}a.push(...Q(e,t,n))}while(t.nextSibling());t.parent()}return e.nodes.list({kind:o===null?r:`task`,order:r===`ordered`?i:null,checked:o??!1,collapsed:!1},a)}function yn(e,t,n){let r=!1,i=t.from,a=t.to;t.firstChild()&&(t.type.id===O.TaskMarker&&(r=n.slice(t.from,t.to).toLowerCase().includes(`x`),i=t.to),t.parent());let o=n.slice(i,a);return o.startsWith(` `)&&(o=o.slice(1)),{checked:r,paragraph:o===``?e.nodes.paragraph():e.nodes.paragraph(o)}}function bn(e,t,n){let r=``,i=``;if(t.firstChild()){do switch(t.type.id){case O.CodeInfo:r=n.slice(t.from,t.to);break;case O.CodeText:i=n.slice(t.from,t.to);break}while(t.nextSibling());t.parent()}return e.nodes.codeBlock({language:r},i)}function xn(e,t,n){let r=[];if(t.firstChild()){do{let i=t.type.id;i===O.TableHeader?r.push(Sn(e,t,n,!0)):i===O.TableRow&&r.push(Sn(e,t,n,!1))}while(t.nextSibling());t.parent()}return e.nodes.table(r)}function Sn(e,t,n,r){let i=[];if(t.firstChild()){do if(t.type.id===O.TableCell){let a=n.slice(t.from,t.to).trim(),o=e.nodes.paragraph(a);i.push(r?e.nodes.tableHeaderCell(o):e.nodes.tableCell(o))}while(t.nextSibling());t.parent()}return e.nodes.tableRow(i)}let Cn;function wn(){return Cn??=e({extension:U()}),Cn}function Tn(e){return e.replace(/\n+$/u,``)}function En(e){return e.split(`
15
- `).filter(e=>e.trim()!==``)}function Dn(e){let t=en(fn(wn(),e));if(Tn(t)===Tn(e))return`exact`;let n=En(e),r=En(t);return n.length===r.length&&n.every((e,t)=>e===r[t])?`normalizing`:`lossy`}export{Zt as EDITOR_KEY_BINDINGS,Dn as checkRoundTrip,$t as codeBlockLanguages,U as defineEditorExtension,Xt as defineImages,Pt as defineMarkMode,Ae as definePlaceholder,je as defineReadonly,Ut as defineWikilinkClickHandler,en as docToMarkdown,fn as markdownToDoc};
14
+ `,` `)}function hn(e,t){let n=gn(e,Xe.parse(t).cursor(),t);return e.nodes.doc(n)}function gn(e,t,n){let r=[];if(!t.firstChild())return r;do r.push(...Z(e,t,n));while(t.nextSibling());return t.parent(),r}function Z(e,t,n){switch(t.type.id){case E.ATXHeading1:return[Q(e,t,n,1)];case E.ATXHeading2:return[Q(e,t,n,2)];case E.ATXHeading3:return[Q(e,t,n,3)];case E.ATXHeading4:return[Q(e,t,n,4)];case E.ATXHeading5:return[Q(e,t,n,5)];case E.ATXHeading6:return[Q(e,t,n,6)];case E.SetextHeading1:return[Q(e,t,n,1)];case E.SetextHeading2:return[Q(e,t,n,2)];case E.Paragraph:return[_n(e,t,n)];case E.Blockquote:return[vn(e,t,n)];case E.BulletList:return yn(e,t,n,`bullet`,1);case E.OrderedList:return bn(e,t,n);case E.FencedCode:case E.CodeBlock:return[Cn(e,t,n)];case E.HorizontalRule:return[e.nodes.horizontalRule()];case E.Table:return[wn(e,t,n)];case E.Task:return[_n(e,t,n)];default:return[]}}function Q(e,t,n,r){let i=t.from,a=t.to;if(t.firstChild()){t.type.id===E.HeaderMark&&(i=t.to);let e=-1,n=-1;do e=t.type.id,n=t.from;while(t.nextSibling());e===E.HeaderMark&&n>i&&(a=n),t.parent()}let o=n.slice(i,a).trim();return e.nodes.heading({level:r},o)}function _n(e,t,n){let r=n.slice(t.from,t.to);return e.nodes.paragraph(r)}function vn(e,t,n){let r=[];if(t.firstChild()){do{if(t.type.id===E.QuoteMark)continue;r.push(...Z(e,t,n))}while(t.nextSibling());t.parent()}return e.nodes.blockquote(r)}function yn(e,t,n,r,i){let a=[];if(t.firstChild()){do t.type.id===E.ListItem&&a.push(xn(e,t,n,r,i));while(t.nextSibling());t.parent()}return a}function bn(e,t,n){let r=1;if(t.firstChild()){if(t.type.id===E.ListItem&&t.firstChild()){if(t.type.id===E.ListMark){let e=n.slice(t.from,t.to),i=Number.parseInt(e,10);Number.isFinite(i)&&(r=i)}t.parent()}t.parent()}return yn(e,t,n,`ordered`,r)}function xn(e,t,n,r,i){let a=[],o=null;if(t.firstChild()){do{if(t.type.id===E.ListMark)continue;if(r===`bullet`&&t.type.id===E.Task){let r=Sn(e,t,n);o=r.checked,a.push(r.paragraph);continue}a.push(...Z(e,t,n))}while(t.nextSibling());t.parent()}return e.nodes.list({kind:o===null?r:`task`,order:r===`ordered`?i:null,checked:o??!1,collapsed:!1},a)}function Sn(e,t,n){let r=!1,i=t.from,a=t.to;t.firstChild()&&(t.type.id===E.TaskMarker&&(r=n.slice(t.from,t.to).toLowerCase().includes(`x`),i=t.to),t.parent());let o=n.slice(i,a);return o.startsWith(` `)&&(o=o.slice(1)),{checked:r,paragraph:o===``?e.nodes.paragraph():e.nodes.paragraph(o)}}function Cn(e,t,n){let r=``,i=``;if(t.firstChild()){do switch(t.type.id){case E.CodeInfo:r=n.slice(t.from,t.to);break;case E.CodeText:i=n.slice(t.from,t.to);break}while(t.nextSibling());t.parent()}return e.nodes.codeBlock({language:r},i)}function wn(e,t,n){let r=0;if(t.firstChild()){do t.type.id===E.TableDelimiter&&(r=Tn(n.slice(t.from,t.to)));while(t.nextSibling());t.parent()}let i=[];if(t.firstChild()){do{let a=t.type.id;a===E.TableHeader?i.push($(e,t,n,!0,r)):a===E.TableRow&&i.push($(e,t,n,!1,r))}while(t.nextSibling());t.parent()}return e.nodes.table(i)}function Tn(e){return e.split(`|`).filter(e=>e.trim()!==``).length}function $(e,t,n,r,i){let a=Array(i).fill(``);if(t.firstChild()){let e=t.type.id===E.TableDelimiter,r=0;do if(t.type.id===E.TableDelimiter)r++;else if(t.type.id===E.TableCell){let o=r-+!!e;o>=0&&o<i&&(a[o]=n.slice(t.from,t.to).trim())}while(t.nextSibling());t.parent()}let o=a.map(t=>{let n=e.nodes.paragraph(t);return r?e.nodes.tableHeaderCell(n):e.nodes.tableCell(n)});return e.nodes.tableRow(o)}let En;function Dn(){return En??=t({extension:B()}),En}function On(e){return e.replace(/\n+$/u,``)}function kn(e){return e.split(`
15
+ `).filter(e=>e.trim()!==``)}function An(e){let t=J(hn(Dn(),e));if(On(t)===On(e))return`exact`;let n=kn(e),r=kn(t);return n.length===r.length&&n.every((e,t)=>e===r[t])?`normalizing`:`lossy`}export{tn as EDITOR_KEY_BINDINGS,An as checkRoundTrip,rn as codeBlockLanguages,B as defineEditorExtension,en as defineImages,zt as defineMarkMode,Pe as definePlaceholder,Fe as defineReadonly,Jt as defineWikilinkClickHandler,J as docToMarkdown,hn as markdownToDoc};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meowdown/core",
3
3
  "type": "module",
4
- "version": "0.7.0",
4
+ "version": "0.8.1",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -32,6 +32,7 @@
32
32
  "@ocavue/tsconfig": "^0.7.1",
33
33
  "@tsdown/css": "^0.22.2",
34
34
  "@vitest/browser-playwright": "^4.1.8",
35
+ "dedent": "^1.7.2",
35
36
  "diffable-html-snapshot": "^0.2.0",
36
37
  "tsdown": "^0.22.2",
37
38
  "vitest": "^4.1.8"