@meowdown/core 0.15.1 → 0.15.2

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
@@ -23,6 +23,16 @@ interface MdWikilinkViewAttrs {
23
23
  target: string;
24
24
  display: string;
25
25
  }
26
+ interface MdPackAttrs {
27
+ /**
28
+ * Content-derived identity of one inline syntax unit. Adjacent units of the
29
+ * same kind are kept apart by it (so they do not merge into one mark run), and
30
+ * it stays stable when unrelated text in the block is edited, so editing one
31
+ * unit never re-marks the others. Values: `bold` | `italic` | `code` |
32
+ * `strike` | `autolink` | `link_${href}` | `image_${src}`.
33
+ */
34
+ key: string;
35
+ }
26
36
  //#endregion
27
37
  //#region src/extensions/extension.d.ts
28
38
  declare function defineEditorExtensionImpl(): import("@prosekit/core").Union<readonly [import("@prosekit/extensions/paragraph").ParagraphExtension, import("@prosekit/extensions/doc").DocExtension, import("@prosekit/extensions/text").TextExtension, import("@prosekit/extensions/blockquote").BlockquoteExtension, import("@prosekit/extensions/list").ListExtension, import("@prosekit/core").Union<readonly [import("@prosekit/extensions/heading").HeadingSpecExtension, import("@prosekit/core").PlainExtension, import("@prosekit/extensions/heading").HeadingCommandsExtension, import("@prosekit/core").PlainExtension]>, import("@prosekit/core").Union<readonly [import("@prosekit/extensions/table").TableSpecExtension, import("@prosekit/extensions/table").TableRowSpecExtension, import("@prosekit/extensions/table").TableCellSpecExtension, import("@prosekit/extensions/table").TableHeaderCellSpecExtension, import("@prosekit/core").PlainExtension, import("@prosekit/extensions/table").TableCommandsExtension, import("@prosekit/core").PlainExtension]>, import("@prosekit/extensions/code-block").CodeBlockExtension, import("@prosekit/extensions/horizontal-rule").HorizontalRuleExtension, import("@prosekit/core").Union<readonly [import("@prosekit/core").Extension<{
@@ -73,6 +83,10 @@ declare function defineEditorExtensionImpl(): import("@prosekit/core").Union<rea
73
83
  Marks: {
74
84
  mdImageView: MdImageViewAttrs;
75
85
  };
86
+ }>, import("@prosekit/core").Extension<{
87
+ Marks: {
88
+ mdPack: MdPackAttrs;
89
+ };
76
90
  }>]>, import("@prosekit/core").Extension<import("@prosekit/core").ExtensionTyping<any, any, any>>, import("@prosekit/core").PlainExtension, import("@prosekit/core").Union<readonly [import("@prosekit/core").Extension<{
77
91
  Commands: {
78
92
  toggleEm: [];
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
- import{Priority as e,Priority as t,createMarkBuilders as n,createNodeBuilders as r,defineBaseCommands as i,defineBaseKeymap as a,defineCommands as o,defineHistory as s,defineKeymap as c,defineMarkSpec as l,defineMarkView as u,definePlugin as d,getMarkRange as f,getNodeType as p,isApple as ee,isAtBlockStart as te,isTextSelection as m,toggleNode as ne,union as h,unsetBlockType as re,withPriority as ie,withPriority as g,withSkipCodeBlock as ae}from"@prosekit/core";import{defineBlockquote as oe}from"@prosekit/extensions/blockquote";import{defineCodeBlock as se,defineCodeBlockHighlight as ce}from"@prosekit/extensions/code-block";import{defineDoc as le}from"@prosekit/extensions/doc";import{defineGapCursor as ue}from"@prosekit/extensions/gap-cursor";import{defineHorizontalRule as de}from"@prosekit/extensions/horizontal-rule";import{defineList as fe}from"@prosekit/extensions/list";import{defineModClickPrevention as pe}from"@prosekit/extensions/mod-click-prevention";import{defineParagraph as me}from"@prosekit/extensions/paragraph";import{defineText as he}from"@prosekit/extensions/text";import{defineVirtualSelection as ge}from"@prosekit/extensions/virtual-selection";import{Plugin as _,PluginKey as v,TextSelection as y}from"@prosekit/pm/state";import{Decoration as _e,DecorationSet as b}from"@prosekit/pm/view";import{LanguageDescription as ve}from"@codemirror/language";import{languages as x}from"@codemirror/language-data";import{classHighlighter as ye}from"@lezer/highlight";import{createParser as be}from"prosemirror-highlight/lezer";import{defineHeadingCommands as xe,defineHeadingInputRule as Se,defineHeadingSpec as Ce}from"@prosekit/extensions/heading";import{ReplaceStep as we,Step as S,StepResult as Te,Transform as Ee}from"@prosekit/pm/transform";import{Mark as De}from"@prosekit/pm/model";import{GFM as Oe,parser as ke}from"@lezer/markdown";import{once as Ae}from"@ocavue/utils";import{defineTableCellSpec as je,defineTableCommands as Me,defineTableDropIndicator as Ne,defineTableEditingPlugin as Pe,defineTableHeaderCellSpec as Fe,defineTableRowSpec as Ie,defineTableSpec as Le}from"@prosekit/extensions/table";import{closeHistory as Re}from"@prosekit/pm/history";import{definePlaceholder as ze}from"@prosekit/extensions/placeholder";import{defineReadonly as Be}from"@prosekit/extensions/readonly";function C(e,t,n){let r=e.doc.content.size;if(t<0||t>r)return;let i=e.doc.resolve(t);if(!(!i.parent.isTextblock||i.parent.type.spec.code))return f(i,n)}const Ve=new Set([`mdStrong`,`mdEm`,`mdCode`,`mdDel`,`mdLinkText`,`mdLinkUri`,`mdImageSource`]),He=new Set([`mdMark`,`mdLinkUri`]),Ue=new Set([`mdMark`,`mdLinkUri`]),We=new Set([`mdImageSource`,`mdWikilinkSource`]),w=new Set([`mdLinkText`,`mdLinkUri`]),Ge=new Set([`mdStrong`,`mdEm`,`mdCode`,`mdDel`,`mdWikilinkSource`]),Ke=new v(`mark-mode`);function qe(e){return new _({key:Ke,state:{init:()=>e,apply:(e,t)=>t},props:{attributes:{"data-mark-mode":e},decorations:e===`focus`?e=>Ze(e):void 0,clipboardTextSerializer:e===`show`?void 0:Xe}})}function Je(e){return d(qe(e))}function Ye(e){return Ke.getState(e)}function Xe(e){let t=[];return e.content.forEach(e=>{let n=[];e.descendants(e=>!e.isText||!e.text?!0:(!e.marks.some(e=>We.has(e.type.name))&&e.marks.some(e=>Ue.has(e.type.name))||n.push(e.text),!1)),t.push(n.join(``))}),t.join(`
2
- `)}function Ze(e){let{$anchor:t,empty:n}=e.selection;if(!n)return b.empty;let r=t.parent;if(!r.isTextblock)return;let i=t.start(),a=t.parentOffset,o=Qe(r,a);if(o.size===0)return b.empty;let s=[],c=new Set,l=!1;for(let e of o)if(w.has(e)){if(l)continue;l=!0,et(r,i,a,s,c)}else $e(r,i,e,a,s,c);let u=s.map(([e,t])=>_e.inline(e,t,{class:`show`}));return b.create(e.doc,u)}function Qe(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;Ve.has(e)&&n.add(e)}r=i}),n}function $e(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&&T(e,t,c,o,i,a),c=-1,l=-1),o+=u.nodeSize,s+=u.nodeSize}),c!==-1&&r>=l&&r<=s&&T(e,t,c,o,i,a)}function et(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&&tt(e.child(c-1));)c--;let l=o;for(;l<a-1&&tt(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;T(e,t,u,d,r,i)}function tt(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:Ge.has(e)&&(r=!0)}return!!(n||t&&!r)}function T(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(He.has(e)){let e=`${t}_${s}`;a.has(e)||(a.add(e),i.push([t,s]));break}}o=s})}function E(e,t){let n=Ye(t);return n?e.flatMap(e=>e.modes.includes(n)?[e.name]:[]):[]}function D(e,t,n){for(let r of n){let n=C(e,t,r);if(n)return n}}function O(e,t,n){let r=D(e,t,n);return r&&r.to===t?r:void 0}function k(e,t,n){let r=D(e,t,n);return r&&r.from===t?r:void 0}function A(e,t){let{from:n,to:r,empty:i}=e.selection;if(i)return;let a=D(e,n,t);return a&&a.from===n&&a.to===r?a:void 0}function nt(e,t){return y.create(e.doc,t.from,t.to)}function rt(e){return(t,n)=>{let r=E(e,t);if(r.length===0||!m(t.selection))return!1;let i=t.selection;if(i.empty){let e=k(t,i.from,r);if(e)return n?.(t.tr.setSelection(nt(t,e))),!0;if(O(t,i.from,r)){let e=t.doc.resolve(i.from);return i.from>=e.end()?!1:(n?.(t.tr.setSelection(y.create(t.doc,i.from+1))),!0)}return!1}let a=A(t,r);return a?(n?.(t.tr.setSelection(y.create(t.doc,a.to))),!0):!1}}function it(e){return(t,n)=>{let r=E(e,t);if(r.length===0||!m(t.selection))return!1;let i=t.selection;if(i.empty){let e=O(t,i.from,r);return e?(n?.(t.tr.setSelection(nt(t,e))),!0):!1}let a=A(t,r);return a?(n?.(t.tr.setSelection(y.create(t.doc,a.from))),!0):!1}}function at(e){return(t,n)=>{let r=E(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=O(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!k(t,i,r)||i<=t.doc.resolve(i).start()?!1:(n?.(t.tr.delete(i-1,i)),!0)}}function ot(e){return(t,n)=>{let r=E(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=k(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!O(t,i,r)||i>=t.doc.resolve(i).end()?!1:(n?.(t.tr.delete(i,i+1)),!0)}}function st(e,t){return new _({key:new v(`atomic-mark-selection-${t}`),props:{decorations:n=>{let r=E(e,n);if(r.length===0)return;let i=A(n,r);if(i)return b.create(n.doc,[_e.inline(i.from,i.to,{class:t})])}}})}function ct({marks:e,selectedClass:n}){return h(g(c({ArrowRight:rt(e),ArrowLeft:it(e),Backspace:at(e),Delete:ot(e)}),t.high),d(st(e,n)))}const j=new Map;async function lt(e){let t=ve.matchLanguageName(x,e,!0);if(!t){j.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),j.set(e,null)}if(j.has(e))return;if(!n){j.set(e,null);return}let r=be({parse:e=>n.language.parser.parse(e.content),highlighter:ye});j.set(e,r)}const ut=e=>{let t=e.language?.trim();if(!t)return[];let n=j.get(t);return n?n(e):n===null?[]:lt(t)};function dt(){return ce({parser:ut,nodeTypes:[`codeBlock`]})}function M(e){return ae(ne({type:`heading`,attrs:{level:e}}))}const ft=(e,t,n)=>te(e,n)?.parent.type.name===`heading`?re()(e,t,n):!1;function pt(){return c({"Mod-1":M(1),"Mod-2":M(2),"Mod-3":M(3),"Mod-4":M(4),"Mod-5":M(5),"Mod-6":M(6),Backspace:ft})}function mt(){return h(Ce(),Se(),xe(),pt())}function ht(e){let[t,n,r]=e;return[t,n,r.map(e=>e.toJSON())]}function gt(e,t){let[n,r,i]=t;return[n,r,i.map(t=>De.fromJSON(e,t))]}var N=class e extends S{constructor(e){super(),this.chunks=e}apply(e){if(this.chunks.length===0)return Te.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 Ee(e),n.removeMark(i,c,t));for(let t of a)t.isInSet(l)||(n??=new Ee(e),n.addMark(i,c,t));return!1})}return Te.ok(n?n.doc:e)}invert(e){if(this.chunks.length===0)return _t;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 we(i,a,e.slice(i,a),!1)}map(e){return null}toJSON(){return{stepType:`batchSetMark`,chunks:this.chunks.map(ht)}}static fromJSON(t,n){let r=n.chunks;return new e(r.map(e=>gt(t,e)))}};S.jsonID(`batchSetMark`,N);const _t=new N([]),vt=new Set([`com`,`br`,`net`,`jp`,`org`,`in`,`de`,`ru`,`it`,`fr`]),yt=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;function bt(e){let t=e.indexOf(`/`);return t===-1?e:e.slice(0,t)}function xt(e){let t=e.split(`.`);if(t.length<2)return!1;let n=t[t.length-1].toLowerCase();if(!vt.has(n)||t[t.length-2].length<3)return!1;for(let e of t)if(e.length>63||!yt.test(e))return!1;return!0}const St=/^[a-z0-9-]+(?:\.[a-z0-9-]+)+(?:\/[^\s<]*)?/i,Ct=/[\s(*_~]/;function wt(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45}function Tt(e,t,n){let r=0;for(let i=0;i<t;i++)e[i]===n&&r++;return r}function Et(e){let t=e.length;for(;;){let n=e[t-1];if(/[?!.,:*_~]/.test(n)||n===`)`&&Tt(e,t,`)`)>Tt(e,t,`(`))t--;else if(n===`;`){let n=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(0,t));if(!n)break;t=n.index}else break}return t}const Dt={parseInline:[{name:`BareAutolink`,before:`Link`,parse(e,t,n){if(!wt(t)||e.hasOpenLink)return-1;let r=e.slice(n-1,n);if(r!==``&&!Ct.test(r))return-1;let i=St.exec(e.slice(n,e.end));if(!i)return-1;let a=Et(i[0]);return a===0||!xt(bt(i[0].slice(0,a)))?-1:e.addElement(e.elt(`URL`,n,n+a))}}]};function Ot(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 kt(e){return e>=65&&e<=90||e>=97&&e<=122||e>127&&/\p{L}/u.test(String.fromCharCode(e))}const At={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(!Ot(t))break;i||=kt(t),r++}return i?e.addElement(e.elt(`Hashtag`,n,r)):-1}}]},jt={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 Mt(e){return e.end}const P=ke.configure([Oe,At,jt,Dt]),Nt=P.configure({parseInline:[{name:`SkipInline`,before:`Escape`,parse:Mt}]});function F(e){return P.parseInline(e,0)}function I(e,t,n=[]){for(let r of e)t(r)&&n.push(r),I(r.children,t,n);return n}function Pt(e){let t={};for(let n of e.nodeSet.types)t[n.name]=n.id;return t}const L=Pt(P);function Ft(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}function It(e){let t=e.replace(/^\[\[/,``).replace(/\]\]$/,``),n=t.indexOf(`|`);return n<0?{target:t.trim(),display:``}:{target:t.slice(0,n).trim(),display:t.slice(n+1).trim()}}function Lt(){return e=>{let t=e.attrs,n=document.createElement(`span`);n.className=`md-wikilink-view`;let r=document.createElement(`span`);n.appendChild(r);let i=document.createElement(`span`);return i.className=`md-wikilink-label`,i.contentEditable=`false`,i.dataset.testid=`wikilink`,i.textContent=t.display||t.target,n.appendChild(i),{dom:n,contentDOM:r,ignoreMutation:e=>!r.contains(e.target)}}}function Rt(){return u({name:`mdWikilinkView`,constructor:Lt()})}const R=new Map([[L.Emphasis,`mdEm`],[L.StrongEmphasis,`mdStrong`],[L.InlineCode,`mdCode`],[L.Strikethrough,`mdDel`],[L.EmphasisMark,`mdMark`],[L.CodeMark,`mdMark`],[L.LinkMark,`mdMark`],[L.StrikethroughMark,`mdMark`],[L.URL,`mdLinkUri`],[L.Hashtag,`mdTag`],[L.WikilinkMark,`mdMark`]]);function zt(e,t){let n=F(t),r=[];return z(n,[],0,t.length,t,e,r),r}function Bt(e){if(/^[a-z][a-z0-9+.-]*:/i.test(e))return e;if(/^[^\s@]+@[^\s@]+$/.test(e))return`mailto:${e}`;if(/^www\./i.test(e)||xt(bt(e)))return`https://${e}`}function z(e,t,n,r,i,a,o){let s=n;for(let n of e){if(n.from>s&&H(o,s,n.from,t),n.type===L.Link)B(n,t,i,a,o);else if(n.type===L.Image)Vt(n,t,i,a,o);else if(n.type===L.Wikilink)V(n,t,i,a,o);else if(n.type===L.URL){let e=Bt(i.slice(n.from,n.to)),r=e?a.mdLinkText.create({href:e}):a.mdLinkUri.create();H(o,n.from,n.to,[...t,r])}else{let e=R.get(n.type),r=e?[...t,a[e].create()]:t;n.children.length===0?H(o,n.from,n.to,r):z(n.children,r,n.from,n.to,i,a,o)}s=n.to}s<r&&H(o,s,r,t)}function B(e,t,n,r,i){let a=-1,o=null,s=0;for(let t of e.children)t.type===L.LinkMark?(s++,s===2&&(a=t.from)):t.type===L.URL&&o===null&&(o=t);let c=o?n.slice(o.from,o.to):``,l=c?r.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;H(i,d,a.from,e)}let e=u(a.from)?[...t,l]:t;if(a.type===L.Wikilink){V(a,e,n,r,i),d=a.to;continue}let o=R.get(a.type),s=o?[...e,r[o].create()]:e;a.children.length===0?H(i,a.from,a.to,s):z(a.children,s,a.from,a.to,n,r,i),d=a.to}d<e.to&&H(i,d,e.to,t)}function Vt(e,t,n,r,i){let a=e.children.find(e=>e.type===L.URL);if(!a){B(e,t,n,r,i);return}let o=e.children.filter(e=>e.type===L.LinkMark),s=n.slice(a.from,a.to),c=o.length>=2?n.slice(o[0].to,o[1].from):``,l=r.mdImageSource.create({src:s,alt:c}),u=r.mdImageView.create({src:s,alt:c}),d=e.to-1,f=e=>e>=d?[...t,l,u]:[...t,l],p=e.from;for(let t of e.children){t.from>p&&H(i,p,t.from,f(p));let e=R.get(t.type),a=e?[...f(t.from),r[e].create()]:f(t.from);t.children.length===0?H(i,t.from,t.to,a):z(t.children,a,t.from,t.to,n,r,i),p=t.to}p<e.to&&H(i,p,e.to,f(p))}function V(e,t,n,r,i){let{target:a,display:o}=It(n.slice(e.from,e.to)),s=r.mdWikilinkSource.create({target:a}),c=r.mdWikilinkView.create({target:a,display:o}),l=e.to-1,u=e=>e>=l?[...t,s,c]:[...t,s],d=e.from;for(let t of e.children){t.from>d&&H(i,d,t.from,u(d));let e=r.mdMark.create();t.from<l&&t.to>l?(H(i,t.from,l,[...u(t.from),e]),H(i,l,t.to,[...u(l),e])):H(i,t.from,t.to,[...u(t.from),e]),d=t.to}d<e.to&&H(i,d,e.to,u(d))}function H(e,t,n,r){if(t>=n)return;let i=e.at(-1);if(i&&i[1]===t&&Ft(i[2],r)){e[e.length-1]=[i[0],n,i[2]];return}e.push([t,n,r])}const Ht=Ae(()=>{let e=Mn().schema;if(e==null)throw Error(`Unexpected empty schema`);return e}),Ut=Ae(()=>r(Ht())),U=`meowdown_mark_builders`;function Wt(e){let t=e.cached[U];if(t)return t;let r=n(e);return e.cached[U]=r,r}const W=`inline-marks-applied`,Gt=new WeakMap;let Kt=0,qt=0;function Jt(e,t,n){let r=Gt.get(e);if(r?qt++:(Kt++,r=zt(Wt(n),e.textContent),Gt.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 Yt(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 Xt(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=Jt(t,r+1,e.schema);return i.length>0&&n.push(...i),!1}),n}function Zt(){return new _({key:new v(`inline-mark`),appendTransaction(e,t,n){for(let t of e)if(t.getMeta(W))return null;let r=Xt(n,Yt(e,n));if(r.length===0)return null;let i=n.tr.step(new N(r));return i.setMeta(W,!0),i.setMeta(`addToHistory`,!1),i},view(e){return e.dispatch(Qt(e.state)),{}}})}function Qt(e){return e.tr.setMeta(`inline-marks-trigger`,!0)}function $t(){return d(Zt())}function en(){return l({name:`mdImageView`,inclusive:!1,attrs:{src:{default:``},alt:{default:``}},toDOM:()=>[`span`,{class:`md-image-anchor`},0],parseDOM:[{tag:`span.md-image-anchor`}]})}function tn(){return l({name:`mdImageSource`,inclusive:!1,attrs:{src:{default:``},alt:{default:``}},toDOM:()=>[`span`,{class:`md-image-source`},0],parseDOM:[{tag:`span.md-image-source`}]})}function nn(){return l({name:`mdMark`,inclusive:!1,toDOM:()=>[`span`,{class:`md-mark`},0],parseDOM:[{tag:`span.md-mark`}]})}function rn(){return l({name:`mdEm`,toDOM:()=>[`em`,0],parseDOM:[{tag:`em`}]})}function an(){return l({name:`mdStrong`,toDOM:()=>[`strong`,0],parseDOM:[{tag:`strong`}]})}function on(){return l({name:`mdCode`,toDOM:()=>[`code`,0],parseDOM:[{tag:`code`}]})}function sn(){return l({name:`mdLinkText`,inclusive:!1,attrs:{href:{default:``}},toDOM:e=>[`a`,{class:`md-link`,href:e.attrs.href},0],parseDOM:[{tag:`a`,getAttrs:e=>({href:e.getAttribute(`href`)??``})}]})}function cn(){return l({name:`mdLinkUri`,inclusive:!1,toDOM:()=>[`span`,{class:`md-link-uri`},0],parseDOM:[{tag:`span.md-link-uri`}]})}function ln(){return l({name:`mdDel`,toDOM:()=>[`del`,0],parseDOM:[{tag:`del`}]})}function un(){return l({name:`mdTag`,toDOM:()=>[`span`,{class:`md-tag`},0],parseDOM:[{tag:`span.md-tag`}]})}function dn(){return l({name:`mdWikilinkSource`,inclusive:!1,attrs:{target:{default:``}},toDOM:()=>[`span`,{class:`md-wikilink-source`},0],parseDOM:[{tag:`span.md-wikilink-source`}]})}function fn(){return l({name:`mdWikilinkView`,inclusive:!1,attrs:{target:{default:``},display:{default:``}},toDOM:()=>[`span`,{class:`md-wikilink-anchor`},0],parseDOM:[{tag:`span.md-wikilink-anchor`}]})}function pn(){return h(nn(),rn(),an(),on(),sn(),cn(),ln(),un(),dn(),fn(),tn(),en())}function mn(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 G={em:{node:L.Emphasis,delim:`*`},strong:{node:L.StrongEmphasis,delim:`**`},code:{node:L.InlineCode,delim:"`"},del:{node:L.Strikethrough,delim:`~~`}},hn=new Set([L.EmphasisMark,L.CodeMark,L.LinkMark,L.StrikethroughMark]);function K(e){return[e.children[0],e.children.at(-1)]}function gn(e){let{type:t,children:n}=e;if(t===L.Emphasis||t===L.StrongEmphasis||t===L.Strikethrough)return[n[0].to,n.at(-1).from];if(t===L.Link||t===L.Image){let e=n.find((e,t)=>t>0&&e.type===L.LinkMark);return e?[n[0].to,e.from]:null}return null}function q(e,t,n){for(let r of e){if(r.to<=t||r.from>=n||t<=r.from&&r.to<=n)continue;let i=gn(r);return i&&i[0]<=t&&n<=i[1]?q(r.children,t,n):q(e,Math.min(t,r.from),Math.max(n,r.to))}return[t,n]}function _n(e,t,n){for(let r of e)if(!(r.to<=t||r.from>=n)&&(t>r.from||r.to>n))return _n(e,Math.min(t,r.from),Math.max(n,r.to));return[t,n]}const J=e=>e===` `||e===` `;function vn(e,t,n){for(;t<n&&J(e[t]);)t++;for(;n>t&&J(e[n-1]);)n--;return[t,n]}function yn(e,t,n,r){let i=I(F(e),e=>e.type===r.node||hn.has(e.type));for(let r=t;r<n;r++)if(!J(e[r])&&i.every(e=>!(e.from<=r&&r<e.to)))return!1;return!0}function bn(e,t,n,r,i){let a=F(e),o=I(a,e=>e.type===r.node);return i?Cn(e,o,t,n):xn(e,a,o,t,n,r)}function xn(e,t,n,r,i,a){for(let e=0;e!==i-r;){e=i-r,[r,i]=q(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]=K(e);o.push({from:t.from,to:t.to,insert:``}),o.push({from:n.from,to:n.to,insert:``})}let[s,c]=Sn(e,r,i,o,a);return o.push({from:r,to:r,insert:s},{from:i,to:i,insert:c}),o}function Sn(e,t,n,r,i){if(i.node!==L.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(mn(a)+1),s=a.startsWith("`")||a.endsWith("`")?` `:``;return[o+s,s+o]}function Cn(e,t,n,r){let i=[];for(let a of t){if(a.to<=n||a.from>=r)continue;let[t,o]=K(a),s=Math.max(n,t.to),c=Math.min(r,o.from);for(s>=c&&([s,c]=[t.to,o.from]),[s,c]=_n(a.children.slice(1,-1),s,c);s>t.to&&J(e[s-1]);)s--;for(;c<o.from&&J(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 wn(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=F(e),o=I(a,e=>e.type===n.node).findLast(e=>e.from<=t&&t<=e.to);if(o){let[e,n]=K(o);return{kind:`move`,pos:t===o.from?e.to:t===o.to?n.from:o.to}}return Tn(a,t)||e[t-1]===r[0]||e[t]===r[0]?null:{kind:`insert`,pos:t}}function Tn(e,t){for(let n of e)if(n.from<t&&t<n.to){let e=gn(n);return!e||t<e[0]||t>e[1]?!0:Tn(n.children,t)}return!1}function Y(e){return(t,n)=>{if(t.selection.empty)return En(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]=vn(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:yn(a,c,l,e)}),!1});let c=s.length>0&&s.every(e=>e.active),l=s.filter(e=>c||!e.active).flatMap(t=>bn(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(y.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 En(e,t,n){let{$from:r}=t.selection,i=r.parent;if(!i.isTextblock||i.type.spec.code)return!1;let a=wn(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(y.create(o.doc,i+a.pos)),a.kind===`insert`&&(o.insertText(e.delim+e.delim,i+a.pos),o.setSelection(y.create(o.doc,i+a.pos+e.delim.length))),n(o.scrollIntoView())}return!0}function Dn(){return o({toggleEm:()=>Y(G.em),toggleStrong:()=>Y(G.strong),toggleCode:()=>Y(G.code),toggleDel:()=>Y(G.del)})}function On(){return c({"Mod-b":Y(G.strong),"Mod-i":Y(G.em),"Mod-e":Y(G.code),"Mod-Shift-x":Y(G.del)})}function kn(){return h(Dn(),On())}function An(){return h(Le(),Ie(),je(),Fe(),Pe({allowTableNodeSelection:!0}),Me(),Ne())}function jn(){return h(me(),le(),he(),oe(),fe(),mt(),An(),se(),de(),pn(),dt(),$t(),kn(),Rt(),ct({marks:[{name:`mdImageSource`,modes:[`hide`]},{name:`mdWikilinkSource`,modes:[`hide`,`focus`,`show`]}],selectedClass:`md-atomic-selected`}),a(),i(),s(),ue(),ge(),pe())}function Mn(){return jn()}function X(e){let t;return d(new _({key:e.key,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?.(e.selector))return!1;let a=e.findHitAt(n.state,r);return!a||!(ee?i.metaKey:i.ctrlKey)&&t?.empty&&t.from>=a.from&&t.to<=a.to?!1:(e.preventDefault&&i.preventDefault(),e.onClick(a.payload,i),!0)}}}))}const Nn=new v(`meowdown-wikilink-click`);function Pn(e,t){let n=C(e,t,`mdWikilinkSource`);if(!n)return;let{target:r}=n.mark.attrs;return{from:n.from,to:n.to,target:r}}function Fn(e){return X({key:Nn,selector:`.md-wikilink-label, .md-wikilink-source`,preventDefault:!1,findHitAt:(e,t)=>{let n=Pn(e,t);return n?{from:n.from,to:n.to,payload:n.target}:void 0},onClick:(t,n)=>e({target:t,event:n})})}const In=new v(`meowdown-link-click`);function Ln(e,t){let n=C(e,t,`mdLinkText`);if(n)return{from:n.from,to:n.to,href:n.mark.attrs.href}}function Rn(e){return X({key:In,selector:`.md-link`,preventDefault:!0,findHitAt:(e,t)=>{let n=Ln(e,t);return n?{from:n.from,to:n.to,payload:n.href}:void 0},onClick:(t,n)=>e({href:t,event:n})})}function zn(){return typeof window>`u`?!1:window.matchMedia(`(prefers-color-scheme: dark)`).matches}const Bn=/^(?:www\.|mobile\.)?(?:twitter\.com|x\.com)$/i,Vn=/\/status(?:es)?\/(\d+)/;function Hn(e){let t;try{t=new URL(e)}catch{return}if(Bn.test(t.hostname))return Vn.exec(t.pathname)?.[1]}const Un=e=>{let t=Hn(e);if(t)return{key:`tweet:${t}`,render:()=>{let e=zn()?`dark`:`light`,n=document.createElement(`iframe`);return n.src=`https://platform.twitter.com/embed/Tweet.html?id=${t}&theme=${e}&dnt=true`,n.title=`Tweet`,n.className=`md-embed md-embed-tweet`,n.dataset.testid=`tweet-embed`,n.loading=`lazy`,n.referrerPolicy=`strict-origin-when-cross-origin`,n.setAttribute(`frameborder`,`0`),Wn(n),n}}};function Wn(e){let t=t=>{if(t.source===e.contentWindow)try{let n=t.data?.[`twttr.embed`]?.params?.[0]?.height;typeof n==`number`&&(e.style.height=`${n}px`)}catch(e){console.warn(`[meowdown] failed to parse tweet resize message:`,e)}};window.addEventListener(`message`,t);let n=new MutationObserver(()=>{e.isConnected||(window.removeEventListener(`message`,t),n.disconnect())});n.observe(document.body,{childList:!0,subtree:!0})}const Gn=/^(?:www\.|m\.)?(?:youtube\.com|youtube-nocookie\.com)$/i,Kn=/^(?:www\.)?youtu\.be$/i,qn=/^[\w-]{11}$/;function Jn(e){let t;try{t=new URL(e)}catch{return}let n=null;if(Kn.test(t.hostname))n=t.pathname.slice(1);else if(Gn.test(t.hostname)){let[,e,r]=t.pathname.split(`/`);t.pathname===`/watch`?n=t.searchParams.get(`v`):(e===`shorts`||e===`embed`||e===`live`)&&(n=r??null)}if(!n||!qn.test(n))return;let r=t.searchParams.get(`start`)??t.searchParams.get(`t`),i=r?Yn(r):void 0;return{videoId:n,startSeconds:i}}function Yn(e){if(/^\d+$/.test(e))return Number(e);let t=/^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/.exec(e);if(!(!t||!t[1]&&!t[2]&&!t[3]))return Number(t[1]??0)*3600+Number(t[2]??0)*60+Number(t[3]??0)}const Xn=[e=>{let t=Jn(e);if(!t)return;let n=t.startSeconds?`?start=${t.startSeconds}`:``;return{key:`youtube:${t.videoId}:${t.startSeconds??0}`,render:()=>{let e=document.createElement(`iframe`);return e.src=`https://www.youtube-nocookie.com/embed/${t.videoId}${n}`,e.title=`YouTube video`,e.className=`md-embed md-embed-youtube`,e.dataset.testid=`youtube-embed`,e.loading=`lazy`,e.referrerPolicy=`strict-origin-when-cross-origin`,e.setAttribute(`frameborder`,`0`),e.allow=`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen`,e.allowFullscreen=!0,e}}},Un];function Zn(e){for(let t of Xn){let n=t(e);if(n)return n}}function Qn(e){return/^https?:\/\//i.test(e)?e:void 0}function $n(e,t,n){let r=Zn(e);if(r){let e=document.createElement(`span`);return e.className=`md-image-preview md-image-preview-embed`,e.appendChild(r.render()),e}let i=(n.resolveImageUrl??Qn)(e);if(!i)return;let a=document.createElement(`span`);a.className=`md-image-preview md-image-preview-img`,a.dataset.testid=`image-preview`;let o=document.createElement(`img`);return o.src=i,o.alt=t,o.draggable=!1,a.appendChild(o),a}function er(e){return t=>{let n=t.attrs,r=document.createElement(`span`);r.className=`md-image-view`;let i=document.createElement(`span`);i.className=`md-image-view-content`,r.appendChild(i);let a=$n(n.src,n.alt,e);return a&&(a.contentEditable=`false`,r.appendChild(a)),{dom:r,contentDOM:i,ignoreMutation:e=>!i.contains(e.target)}}}function tr(e){return e?Array.from(e.files).filter(e=>e.type.startsWith(`image/`)):[]}const nr=e=>{console.error(`[meowdown] failed to save pasted image:`,e)};async function rr(e,t,n,r=nr,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 ir(e){return new _({key:new v(`image-input`),props:{handlePaste:(t,n)=>{let r=tr(n.clipboardData),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(rr(t,r,i,a),!0)},handleDrop:(t,n)=>{let r=tr(n.dataTransfer),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(rr(t,r,i,a,t.posAtCoords({left:n.clientX,top:n.clientY})?.pos),!0)}}})}function ar(e={}){return h(u({name:`mdImageView`,constructor:er(e)}),g(d(ir(e)),t.high))}const or=new v(`meowdown-image-click`);function sr(e,t){let n=C(e,t,`mdImageSource`);if(!n)return;let{src:r,alt:i}=n.mark.attrs;return{from:n.from,to:n.to,src:r,alt:i}}function cr(e){return d(new _({key:or,props:{handleClick:(t,n,r)=>{let i=r.target?.closest?.(`.md-image-preview`);if(!i)return!1;let a=i.closest(`.md-image-view`)?.querySelector(`.md-image-view-content`);if(!a)return!1;let o=sr(t.state,t.posAtDOM(a,0));return o?(e({src:o.src,alt:o.alt,event:r}),!0):!1}}}))}const lr=new v(`meowdown-embed-paste`);function ur(e){let t=e.trim();if(!(!t||/\s/.test(t)))return Zn(t)?t:void 0}function dr(e,t){let{from:n,to:r}=e.state.selection;e.dispatch(Re(e.state.tr.insertText(t,n,r)));let i=e.state.tr.insertText(`![](${t})`,n,n+t.length);e.dispatch(Re(i))}function fr(){return d(new _({key:lr,props:{handlePaste:(e,t)=>{let n=e.state.selection.$from.parent;if(!n.inlineContent||n.type.spec.code)return!1;let r=t.clipboardData?.getData(`text/plain`);if(!r)return!1;let i=ur(r);return i?(dr(e,i),!0):!1}}}))}const pr=(e,t)=>{let{$from:n,empty:r}=e.selection;if(!r||n.depth!==1||n.index(0)!==0||n.parent.type.name!==`heading`||n.parentOffset!==n.parent.content.size)return!1;if(t){let r=p(e.schema,`list`),i=p(e.schema,`paragraph`),a=r.create({kind:`bullet`},i.create()),o=n.after(),s=e.tr.insert(o,a);s.setSelection(y.create(s.doc,o+2)),t(s.scrollIntoView())}return!0};function mr(){return g(c({Enter:pr}),t.high)}const hr={"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`},gr=new Set([`MscGen`,`Xù`,`MsGenny`,`Angular Template`,`Brainfuck`,`Esper`,`Oz`,`Factor`,`Squirrel`,`Yacas`,`mIRC`,`FCL`,`ECL`,`MUMPS`,`Pig`,`Asterisk`,`Z80`]),_r=x.map(e=>e.name).filter(e=>!gr.has(e)).map(e=>({label:e,value:e.toLowerCase()})).concat({label:`Plain text`,value:``}).sort((e,t)=>e.label.localeCompare(t.label));function vr(e){let t=new br;return xr(e,t),t.finish()}const yr=[``,`# `,`## `,`### `,`#### `,`##### `,`###### `];var br=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,Priority as t,createMarkBuilders as n,createNodeBuilders as r,defineBaseCommands as i,defineBaseKeymap as a,defineCommands as o,defineHistory as s,defineKeymap as c,defineMarkSpec as l,defineMarkView as u,definePlugin as d,getMarkRange as f,getMarkType as p,getNodeType as m,isApple as ee,isAtBlockStart as te,isTextSelection as ne,toggleNode as re,union as h,unsetBlockType as ie,withPriority as ae,withPriority as g,withSkipCodeBlock as oe}from"@prosekit/core";import{defineBlockquote as se}from"@prosekit/extensions/blockquote";import{defineCodeBlock as ce,defineCodeBlockHighlight as le}from"@prosekit/extensions/code-block";import{defineDoc as ue}from"@prosekit/extensions/doc";import{defineGapCursor as de}from"@prosekit/extensions/gap-cursor";import{defineHorizontalRule as fe}from"@prosekit/extensions/horizontal-rule";import{defineList as pe}from"@prosekit/extensions/list";import{defineModClickPrevention as me}from"@prosekit/extensions/mod-click-prevention";import{defineParagraph as he}from"@prosekit/extensions/paragraph";import{defineText as ge}from"@prosekit/extensions/text";import{defineVirtualSelection as _e}from"@prosekit/extensions/virtual-selection";import{Plugin as _,PluginKey as v,TextSelection as y}from"@prosekit/pm/state";import{Decoration as ve,DecorationSet as b}from"@prosekit/pm/view";import{LanguageDescription as ye}from"@codemirror/language";import{languages as be}from"@codemirror/language-data";import{classHighlighter as xe}from"@lezer/highlight";import{createParser as Se}from"prosemirror-highlight/lezer";import{defineHeadingCommands as Ce,defineHeadingInputRule as we,defineHeadingSpec as Te}from"@prosekit/extensions/heading";import{ReplaceStep as Ee,Step as x,StepResult as S,Transform as C}from"@prosekit/pm/transform";import{Mark as De}from"@prosekit/pm/model";import{GFM as Oe,parser as ke}from"@lezer/markdown";import{once as w}from"@ocavue/utils";import{defineTableCellSpec as Ae,defineTableCommands as je,defineTableDropIndicator as Me,defineTableEditingPlugin as Ne,defineTableHeaderCellSpec as Pe,defineTableRowSpec as Fe,defineTableSpec as Ie}from"@prosekit/extensions/table";import{closeHistory as T}from"@prosekit/pm/history";import{definePlaceholder as Le}from"@prosekit/extensions/placeholder";import{defineReadonly as Re}from"@prosekit/extensions/readonly";function E(e,t,n){let r=e.doc.content.size;if(t<0||t>r)return;let i=e.doc.resolve(t);if(!(!i.parent.isTextblock||i.parent.type.spec.code))return f(i,n)}const ze=new Set([`mdMark`,`mdLinkUri`]),Be=new Set([`mdImageSource`,`mdWikilinkSource`]),D=new v(`mark-mode`);function Ve(e){return new _({key:D,state:{init:()=>e,apply:(e,t)=>t},props:{attributes:{"data-mark-mode":e},decorations:e===`focus`?e=>Ge(e):void 0,clipboardTextSerializer:e===`show`?void 0:We}})}function He(e){return d(Ve(e))}function Ue(e){return D.getState(e)}function We(e){let t=[];return e.content.forEach(e=>{let n=[];e.descendants(e=>!e.isText||!e.text?!0:(!e.marks.some(e=>Be.has(e.type.name))&&e.marks.some(e=>ze.has(e.type.name))||n.push(e.text),!1)),t.push(n.join(``))}),t.join(`
2
+ `)}function Ge(e){let{selection:t}=e;if(!t.empty)return b.empty;let n=t.$head,{parent:r}=n;if(!r.isTextblock||r.type.spec.code)return b.empty;let i=f(n,p(e.schema,`mdPack`));return i?b.create(e.doc,[ve.inline(i.from,i.to,{class:`show`})]):b.empty}function O(e,t){let n=Ue(t);return n?e.flatMap(e=>e.modes.includes(n)?[e.name]:[]):[]}function k(e,t,n){for(let r of n){let n=E(e,t,r);if(n)return n}}function A(e,t,n){let r=k(e,t,n);return r&&r.to===t?r:void 0}function j(e,t,n){let r=k(e,t,n);return r&&r.from===t?r:void 0}function M(e,t){let{from:n,to:r,empty:i}=e.selection;if(i)return;let a=k(e,n,t);return a&&a.from===n&&a.to===r?a:void 0}function N(e,t){return y.create(e.doc,t.from,t.to)}function Ke(e){return(t,n)=>{let r=O(e,t);if(r.length===0||!ne(t.selection))return!1;let i=t.selection;if(i.empty){let e=j(t,i.from,r);if(e)return n?.(t.tr.setSelection(N(t,e))),!0;if(A(t,i.from,r)){let e=t.doc.resolve(i.from);return i.from>=e.end()?!1:(n?.(t.tr.setSelection(y.create(t.doc,i.from+1))),!0)}return!1}let a=M(t,r);return a?(n?.(t.tr.setSelection(y.create(t.doc,a.to))),!0):!1}}function qe(e){return(t,n)=>{let r=O(e,t);if(r.length===0||!ne(t.selection))return!1;let i=t.selection;if(i.empty){let e=A(t,i.from,r);return e?(n?.(t.tr.setSelection(N(t,e))),!0):!1}let a=M(t,r);return a?(n?.(t.tr.setSelection(y.create(t.doc,a.from))),!0):!1}}function Je(e){return(t,n)=>{let r=O(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=A(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!j(t,i,r)||i<=t.doc.resolve(i).start()?!1:(n?.(t.tr.delete(i-1,i)),!0)}}function Ye(e){return(t,n)=>{let r=O(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=j(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!A(t,i,r)||i>=t.doc.resolve(i).end()?!1:(n?.(t.tr.delete(i,i+1)),!0)}}function Xe(e,t){return new _({key:new v(`atomic-mark-selection-${t}`),props:{decorations:n=>{let r=O(e,n);if(r.length===0)return;let i=M(n,r);if(i)return b.create(n.doc,[ve.inline(i.from,i.to,{class:t})])}}})}function Ze({marks:e,selectedClass:n}){return h(g(c({ArrowRight:Ke(e),ArrowLeft:qe(e),Backspace:Je(e),Delete:Ye(e)}),t.high),d(Xe(e,n)))}const P=new Map;async function Qe(e){let t=ye.matchLanguageName(be,e,!0);if(!t){P.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),P.set(e,null)}if(P.has(e))return;if(!n){P.set(e,null);return}let r=Se({parse:e=>n.language.parser.parse(e.content),highlighter:xe});P.set(e,r)}const $e=e=>{let t=e.language?.trim();if(!t)return[];let n=P.get(t);return n?n(e):n===null?[]:Qe(t)};function et(){return le({parser:$e,nodeTypes:[`codeBlock`]})}function F(e){return oe(re({type:`heading`,attrs:{level:e}}))}const tt=(e,t,n)=>te(e,n)?.parent.type.name===`heading`?ie()(e,t,n):!1;function nt(){return c({"Mod-1":F(1),"Mod-2":F(2),"Mod-3":F(3),"Mod-4":F(4),"Mod-5":F(5),"Mod-6":F(6),Backspace:tt})}function rt(){return h(Te(),we(),Ce(),nt())}function it(e){let[t,n,r]=e;return[t,n,r.map(e=>e.toJSON())]}function at(e,t){let[n,r,i]=t;return[n,r,i.map(t=>De.fromJSON(e,t))]}var I=class e extends x{constructor(e){super(),this.chunks=e}apply(e){if(this.chunks.length===0)return S.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 C(e),n.removeMark(i,c,t));for(let t of a)t.isInSet(l)||(n??=new C(e),n.addMark(i,c,t));return!1})}return S.ok(n?n.doc:e)}invert(e){if(this.chunks.length===0)return ot;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 Ee(i,a,e.slice(i,a),!1)}map(e){return null}toJSON(){return{stepType:`batchSetMark`,chunks:this.chunks.map(it)}}static fromJSON(t,n){let r=n.chunks;return new e(r.map(e=>at(t,e)))}};x.jsonID(`batchSetMark`,I);const ot=new I([]),st=new Set([`com`,`br`,`net`,`jp`,`org`,`in`,`de`,`ru`,`it`,`fr`]),ct=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;function L(e){let t=e.indexOf(`/`);return t===-1?e:e.slice(0,t)}function lt(e){let t=e.split(`.`);if(t.length<2)return!1;let n=t[t.length-1].toLowerCase();if(!st.has(n)||t[t.length-2].length<3)return!1;for(let e of t)if(e.length>63||!ct.test(e))return!1;return!0}const ut=/^[a-z0-9-]+(?:\.[a-z0-9-]+)+(?:\/[^\s<]*)?/i,dt=/[\s(*_~]/;function ft(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45}function pt(e,t,n){let r=0;for(let i=0;i<t;i++)e[i]===n&&r++;return r}function mt(e){let t=e.length;for(;;){let n=e[t-1];if(/[?!.,:*_~]/.test(n)||n===`)`&&pt(e,t,`)`)>pt(e,t,`(`))t--;else if(n===`;`){let n=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(0,t));if(!n)break;t=n.index}else break}return t}const ht={parseInline:[{name:`BareAutolink`,before:`Link`,parse(e,t,n){if(!ft(t)||e.hasOpenLink)return-1;let r=e.slice(n-1,n);if(r!==``&&!dt.test(r))return-1;let i=ut.exec(e.slice(n,e.end));if(!i)return-1;let a=mt(i[0]);return a===0||!lt(L(i[0].slice(0,a)))?-1:e.addElement(e.elt(`URL`,n,n+a))}}]};function gt(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 _t(e){return e>=65&&e<=90||e>=97&&e<=122||e>127&&/\p{L}/u.test(String.fromCharCode(e))}const vt={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(!gt(t))break;i||=_t(t),r++}return i?e.addElement(e.elt(`Hashtag`,n,r)):-1}}]},yt={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 bt(e){return e.end}const R=ke.configure([Oe,vt,yt,ht]),xt=R.configure({parseInline:[{name:`SkipInline`,before:`Escape`,parse:bt}]});function z(e){return R.parseInline(e,0)}function B(e,t,n=[]){for(let r of e)t(r)&&n.push(r),B(r.children,t,n);return n}function St(e){let t={};for(let n of e.nodeSet.types)t[n.name]=n.id;return t}const V=St(R);function Ct(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}function wt(e){let t=e.replace(/^\[\[/,``).replace(/\]\]$/,``),n=t.indexOf(`|`);return n<0?{target:t.trim(),display:``}:{target:t.slice(0,n).trim(),display:t.slice(n+1).trim()}}function Tt(){return e=>{let t=e.attrs,n=document.createElement(`span`);n.className=`md-wikilink-view`;let r=document.createElement(`span`);n.appendChild(r);let i=document.createElement(`span`);return i.className=`md-wikilink-label`,i.contentEditable=`false`,i.dataset.testid=`wikilink`,i.textContent=t.display||t.target,n.appendChild(i),{dom:n,contentDOM:r,ignoreMutation:e=>!r.contains(e.target)}}}function Et(){return u({name:`mdWikilinkView`,constructor:Tt()})}const H=new Map([[V.Emphasis,`mdEm`],[V.StrongEmphasis,`mdStrong`],[V.InlineCode,`mdCode`],[V.Strikethrough,`mdDel`],[V.EmphasisMark,`mdMark`],[V.CodeMark,`mdMark`],[V.LinkMark,`mdMark`],[V.StrikethroughMark,`mdMark`],[V.URL,`mdLinkUri`],[V.Hashtag,`mdTag`],[V.WikilinkMark,`mdMark`]]);function Dt(e,t){let n=z(t),r=[];return U(n,[],0,t.length,t,e,r),r}function Ot(e){if(/^[a-z][a-z0-9+.-]*:/i.test(e))return e;if(/^[^\s@]+@[^\s@]+$/.test(e))return`mailto:${e}`;if(/^www\./i.test(e)||lt(L(e)))return`https://${e}`}function U(e,t,n,r,i,a,o){let s=n;for(let n of e){n.from>s&&W(o,s,n.from,t);let e=n.type;if(e===V.Link)kt(n,t,i,a,o);else if(e===V.Image)At(n,t,i,a,o);else if(e===V.Wikilink)jt(n,t,i,a,o);else if(e===V.URL){let e=Ot(i.slice(n.from,n.to)),r=e?a.mdLinkText.create({href:e}):a.mdLinkUri.create();W(o,n.from,n.to,[...t,r])}else{let r;e===V.Emphasis?r=`italic`:e===V.StrongEmphasis?r=`bold`:e===V.InlineCode?r=`code`:e===V.Strikethrough?r=`strike`:e===V.Autolink&&(r=`autolink`);let s=r?[...t,a.mdPack.create({key:r})]:t,c=H.get(e),l=c?[...s,a[c].create()]:s;n.children.length===0?W(o,n.from,n.to,l):U(n.children,l,n.from,n.to,i,a,o)}s=n.to}s<r&&W(o,s,r,t)}function kt(e,t,n,r,i){let a=-1,o=null,s=0;for(let t of e.children)t.type===V.LinkMark?(s++,s===2&&(a=t.from)):t.type===V.URL&&o===null&&(o=t);let c=o?n.slice(o.from,o.to):``,l=c?r.mdLinkText.create({href:c}):null,u=e=>a>=0&&e<a&&l!==null,d=r.mdPack.create({key:`link_${c}`}),f=[...t,d],p=e.from;for(let t of e.children){if(t.from>p){let e=u(p)?[...f,l]:f;W(i,p,t.from,e)}let e=u(t.from)?[...f,l]:f;if(t.type===V.Wikilink){jt(t,e,n,r,i),p=t.to;continue}let a=H.get(t.type),o=a?[...e,r[a].create()]:e;t.children.length===0?W(i,t.from,t.to,o):U(t.children,o,t.from,t.to,n,r,i),p=t.to}p<e.to&&W(i,p,e.to,f)}function At(e,t,n,r,i){let a=e.children.find(e=>e.type===V.URL);if(!a){kt(e,t,n,r,i);return}let o=e.children.filter(e=>e.type===V.LinkMark),s=n.slice(a.from,a.to),c=o.length>=2?n.slice(o[0].to,o[1].from):``,l=r.mdImageSource.create({src:s,alt:c}),u=r.mdImageView.create({src:s,alt:c}),d=r.mdPack.create({key:`image_${s}`}),f=e.to-1,p=e=>e>=f?[...t,d,l,u]:[...t,d,l],m=e.from;for(let t of e.children){t.from>m&&W(i,m,t.from,p(m));let e=H.get(t.type),a=e?[...p(t.from),r[e].create()]:p(t.from);t.children.length===0?W(i,t.from,t.to,a):U(t.children,a,t.from,t.to,n,r,i),m=t.to}m<e.to&&W(i,m,e.to,p(m))}function jt(e,t,n,r,i){let{target:a,display:o}=wt(n.slice(e.from,e.to)),s=r.mdWikilinkSource.create({target:a}),c=r.mdWikilinkView.create({target:a,display:o}),l=e.to-1,u=e=>e>=l?[...t,s,c]:[...t,s],d=e.from;for(let t of e.children){t.from>d&&W(i,d,t.from,u(d));let e=r.mdMark.create();t.from<l&&t.to>l?(W(i,t.from,l,[...u(t.from),e]),W(i,l,t.to,[...u(l),e])):W(i,t.from,t.to,[...u(t.from),e]),d=t.to}d<e.to&&W(i,d,e.to,u(d))}function W(e,t,n,r){if(t>=n)return;let i=e.at(-1);if(i&&i[1]===t&&Ct(i[2],r)){e[e.length-1]=[i[0],n,i[2]];return}e.push([t,n,r])}const Mt=w(()=>{let e=Tn().schema;if(e==null)throw Error(`Unexpected empty schema`);return e}),Nt=w(()=>r(Mt())),Pt=`meowdown_mark_builders`;function Ft(e){let t=e.cached[Pt];if(t)return t;let r=n(e);return e.cached[Pt]=r,r}const It=`inline-marks-applied`,Lt=new WeakMap;let Rt=0,zt=0;function Bt(e,t,n){let r=Lt.get(e);if(r?zt++:(Rt++,r=Dt(Ft(n),e.textContent),Lt.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 Vt(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 Ht(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=Bt(t,r+1,e.schema);return i.length>0&&n.push(...i),!1}),n}function Ut(){return new _({key:new v(`inline-mark`),appendTransaction(e,t,n){for(let t of e)if(t.getMeta(It))return null;let r=Ht(n,Vt(e,n));if(r.length===0)return null;let i=n.tr.step(new I(r));return i.setMeta(It,!0),i.setMeta(`addToHistory`,!1),i},view(e){return e.dispatch(Wt(e.state)),{}}})}function Wt(e){return e.tr.setMeta(`inline-marks-trigger`,!0)}function Gt(){return d(Ut())}function Kt(){return l({name:`mdImageView`,inclusive:!1,attrs:{src:{default:``},alt:{default:``}},toDOM:()=>[`span`,{class:`md-image-anchor`},0],parseDOM:[{tag:`span.md-image-anchor`}]})}function qt(){return l({name:`mdImageSource`,inclusive:!1,attrs:{src:{default:``},alt:{default:``}},toDOM:()=>[`span`,{class:`md-image-source`},0],parseDOM:[{tag:`span.md-image-source`}]})}function Jt(){return l({name:`mdMark`,inclusive:!1,toDOM:()=>[`span`,{class:`md-mark`},0],parseDOM:[{tag:`span.md-mark`}]})}function Yt(){return l({name:`mdEm`,toDOM:()=>[`em`,0],parseDOM:[{tag:`em`}]})}function Xt(){return l({name:`mdStrong`,toDOM:()=>[`strong`,0],parseDOM:[{tag:`strong`}]})}function Zt(){return l({name:`mdCode`,toDOM:()=>[`code`,0],parseDOM:[{tag:`code`}]})}function Qt(){return l({name:`mdLinkText`,inclusive:!1,attrs:{href:{default:``}},toDOM:e=>[`a`,{class:`md-link`,href:e.attrs.href},0],parseDOM:[{tag:`a`,getAttrs:e=>({href:e.getAttribute(`href`)??``})}]})}function $t(){return l({name:`mdLinkUri`,inclusive:!1,toDOM:()=>[`span`,{class:`md-link-uri`},0],parseDOM:[{tag:`span.md-link-uri`}]})}function en(){return l({name:`mdDel`,toDOM:()=>[`del`,0],parseDOM:[{tag:`del`}]})}function tn(){return l({name:`mdTag`,toDOM:()=>[`span`,{class:`md-tag`},0],parseDOM:[{tag:`span.md-tag`}]})}function nn(){return l({name:`mdWikilinkSource`,inclusive:!1,attrs:{target:{default:``}},toDOM:()=>[`span`,{class:`md-wikilink-source`},0],parseDOM:[{tag:`span.md-wikilink-source`}]})}function rn(){return l({name:`mdWikilinkView`,inclusive:!1,attrs:{target:{default:``},display:{default:``}},toDOM:()=>[`span`,{class:`md-wikilink-anchor`},0],parseDOM:[{tag:`span.md-wikilink-anchor`}]})}function an(){return l({name:`mdPack`,excludes:``,inclusive:!1,attrs:{key:{default:``}},toDOM:e=>[`span`,{class:`md-pack`,"data-key":e.attrs.key},0],parseDOM:[{tag:`span.md-pack`}]})}function on(){return h(Jt(),Yt(),Xt(),Zt(),Qt(),$t(),en(),tn(),nn(),rn(),qt(),Kt(),an())}function sn(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 G={em:{node:V.Emphasis,delim:`*`},strong:{node:V.StrongEmphasis,delim:`**`},code:{node:V.InlineCode,delim:"`"},del:{node:V.Strikethrough,delim:`~~`}},cn=new Set([V.EmphasisMark,V.CodeMark,V.LinkMark,V.StrikethroughMark]);function K(e){return[e.children[0],e.children.at(-1)]}function ln(e){let{type:t,children:n}=e;if(t===V.Emphasis||t===V.StrongEmphasis||t===V.Strikethrough)return[n[0].to,n.at(-1).from];if(t===V.Link||t===V.Image){let e=n.find((e,t)=>t>0&&e.type===V.LinkMark);return e?[n[0].to,e.from]:null}return null}function q(e,t,n){for(let r of e){if(r.to<=t||r.from>=n||t<=r.from&&r.to<=n)continue;let i=ln(r);return i&&i[0]<=t&&n<=i[1]?q(r.children,t,n):q(e,Math.min(t,r.from),Math.max(n,r.to))}return[t,n]}function un(e,t,n){for(let r of e)if(!(r.to<=t||r.from>=n)&&(t>r.from||r.to>n))return un(e,Math.min(t,r.from),Math.max(n,r.to));return[t,n]}const J=e=>e===` `||e===` `;function dn(e,t,n){for(;t<n&&J(e[t]);)t++;for(;n>t&&J(e[n-1]);)n--;return[t,n]}function fn(e,t,n,r){let i=B(z(e),e=>e.type===r.node||cn.has(e.type));for(let r=t;r<n;r++)if(!J(e[r])&&i.every(e=>!(e.from<=r&&r<e.to)))return!1;return!0}function pn(e,t,n,r,i){let a=z(e),o=B(a,e=>e.type===r.node);return i?gn(e,o,t,n):mn(e,a,o,t,n,r)}function mn(e,t,n,r,i,a){for(let e=0;e!==i-r;){e=i-r,[r,i]=q(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]=K(e);o.push({from:t.from,to:t.to,insert:``}),o.push({from:n.from,to:n.to,insert:``})}let[s,c]=hn(e,r,i,o,a);return o.push({from:r,to:r,insert:s},{from:i,to:i,insert:c}),o}function hn(e,t,n,r,i){if(i.node!==V.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(sn(a)+1),s=a.startsWith("`")||a.endsWith("`")?` `:``;return[o+s,s+o]}function gn(e,t,n,r){let i=[];for(let a of t){if(a.to<=n||a.from>=r)continue;let[t,o]=K(a),s=Math.max(n,t.to),c=Math.min(r,o.from);for(s>=c&&([s,c]=[t.to,o.from]),[s,c]=un(a.children.slice(1,-1),s,c);s>t.to&&J(e[s-1]);)s--;for(;c<o.from&&J(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 _n(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=z(e),o=B(a,e=>e.type===n.node).findLast(e=>e.from<=t&&t<=e.to);if(o){let[e,n]=K(o);return{kind:`move`,pos:t===o.from?e.to:t===o.to?n.from:o.to}}return vn(a,t)||e[t-1]===r[0]||e[t]===r[0]?null:{kind:`insert`,pos:t}}function vn(e,t){for(let n of e)if(n.from<t&&t<n.to){let e=ln(n);return!e||t<e[0]||t>e[1]?!0:vn(n.children,t)}return!1}function Y(e){return(t,n)=>{if(t.selection.empty)return yn(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]=dn(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:fn(a,c,l,e)}),!1});let c=s.length>0&&s.every(e=>e.active),l=s.filter(e=>c||!e.active).flatMap(t=>pn(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(y.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 yn(e,t,n){let{$from:r}=t.selection,i=r.parent;if(!i.isTextblock||i.type.spec.code)return!1;let a=_n(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(y.create(o.doc,i+a.pos)),a.kind===`insert`&&(o.insertText(e.delim+e.delim,i+a.pos),o.setSelection(y.create(o.doc,i+a.pos+e.delim.length))),n(o.scrollIntoView())}return!0}function bn(){return o({toggleEm:()=>Y(G.em),toggleStrong:()=>Y(G.strong),toggleCode:()=>Y(G.code),toggleDel:()=>Y(G.del)})}function xn(){return c({"Mod-b":Y(G.strong),"Mod-i":Y(G.em),"Mod-e":Y(G.code),"Mod-Shift-x":Y(G.del)})}function Sn(){return h(bn(),xn())}function Cn(){return h(Ie(),Fe(),Ae(),Pe(),Ne({allowTableNodeSelection:!0}),je(),Me())}function wn(){return h(he(),ue(),ge(),se(),pe(),rt(),Cn(),ce(),fe(),on(),et(),Gt(),Sn(),Et(),Ze({marks:[{name:`mdImageSource`,modes:[`hide`]},{name:`mdWikilinkSource`,modes:[`hide`,`focus`,`show`]}],selectedClass:`md-atomic-selected`}),a(),i(),s(),de(),_e(),me())}function Tn(){return wn()}function En(e){let t;return d(new _({key:e.key,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?.(e.selector))return!1;let a=e.findHitAt(n.state,r);return!a||!(ee?i.metaKey:i.ctrlKey)&&t?.empty&&t.from>=a.from&&t.to<=a.to?!1:(e.preventDefault&&i.preventDefault(),e.onClick(a.payload,i),!0)}}}))}const Dn=new v(`meowdown-wikilink-click`);function On(e,t){let n=E(e,t,`mdWikilinkSource`);if(!n)return;let{target:r}=n.mark.attrs;return{from:n.from,to:n.to,target:r}}function kn(e){return En({key:Dn,selector:`.md-wikilink-label, .md-wikilink-source`,preventDefault:!1,findHitAt:(e,t)=>{let n=On(e,t);return n?{from:n.from,to:n.to,payload:n.target}:void 0},onClick:(t,n)=>e({target:t,event:n})})}const An=new v(`meowdown-link-click`);function jn(e,t){let n=E(e,t,`mdLinkText`);if(n)return{from:n.from,to:n.to,href:n.mark.attrs.href}}function Mn(e){return En({key:An,selector:`.md-link`,preventDefault:!0,findHitAt:(e,t)=>{let n=jn(e,t);return n?{from:n.from,to:n.to,payload:n.href}:void 0},onClick:(t,n)=>e({href:t,event:n})})}function Nn(){return typeof window>`u`?!1:window.matchMedia(`(prefers-color-scheme: dark)`).matches}const Pn=/^(?:www\.|mobile\.)?(?:twitter\.com|x\.com)$/i,Fn=/\/status(?:es)?\/(\d+)/;function In(e){let t;try{t=new URL(e)}catch{return}if(Pn.test(t.hostname))return Fn.exec(t.pathname)?.[1]}const Ln=e=>{let t=In(e);if(t)return{key:`tweet:${t}`,render:()=>{let e=Nn()?`dark`:`light`,n=document.createElement(`iframe`);return n.src=`https://platform.twitter.com/embed/Tweet.html?id=${t}&theme=${e}&dnt=true`,n.title=`Tweet`,n.className=`md-embed md-embed-tweet`,n.dataset.testid=`tweet-embed`,n.loading=`lazy`,n.referrerPolicy=`strict-origin-when-cross-origin`,n.setAttribute(`frameborder`,`0`),Rn(n),n}}};function Rn(e){let t=t=>{if(t.source===e.contentWindow)try{let n=t.data?.[`twttr.embed`]?.params?.[0]?.height;typeof n==`number`&&(e.style.height=`${n}px`)}catch(e){console.warn(`[meowdown] failed to parse tweet resize message:`,e)}};window.addEventListener(`message`,t);let n=new MutationObserver(()=>{e.isConnected||(window.removeEventListener(`message`,t),n.disconnect())});n.observe(document.body,{childList:!0,subtree:!0})}const zn=/^(?:www\.|m\.)?(?:youtube\.com|youtube-nocookie\.com)$/i,Bn=/^(?:www\.)?youtu\.be$/i,Vn=/^[\w-]{11}$/;function Hn(e){let t;try{t=new URL(e)}catch{return}let n=null;if(Bn.test(t.hostname))n=t.pathname.slice(1);else if(zn.test(t.hostname)){let[,e,r]=t.pathname.split(`/`);t.pathname===`/watch`?n=t.searchParams.get(`v`):(e===`shorts`||e===`embed`||e===`live`)&&(n=r??null)}if(!n||!Vn.test(n))return;let r=t.searchParams.get(`start`)??t.searchParams.get(`t`),i=r?Un(r):void 0;return{videoId:n,startSeconds:i}}function Un(e){if(/^\d+$/.test(e))return Number(e);let t=/^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/.exec(e);if(!(!t||!t[1]&&!t[2]&&!t[3]))return Number(t[1]??0)*3600+Number(t[2]??0)*60+Number(t[3]??0)}const Wn=[e=>{let t=Hn(e);if(!t)return;let n=t.startSeconds?`?start=${t.startSeconds}`:``;return{key:`youtube:${t.videoId}:${t.startSeconds??0}`,render:()=>{let e=document.createElement(`iframe`);return e.src=`https://www.youtube-nocookie.com/embed/${t.videoId}${n}`,e.title=`YouTube video`,e.className=`md-embed md-embed-youtube`,e.dataset.testid=`youtube-embed`,e.loading=`lazy`,e.referrerPolicy=`strict-origin-when-cross-origin`,e.setAttribute(`frameborder`,`0`),e.allow=`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen`,e.allowFullscreen=!0,e}}},Ln];function Gn(e){for(let t of Wn){let n=t(e);if(n)return n}}function Kn(e){return/^https?:\/\//i.test(e)?e:void 0}function qn(e,t,n){let r=Gn(e);if(r){let e=document.createElement(`span`);return e.className=`md-image-preview md-image-preview-embed`,e.appendChild(r.render()),e}let i=(n.resolveImageUrl??Kn)(e);if(!i)return;let a=document.createElement(`span`);a.className=`md-image-preview md-image-preview-img`,a.dataset.testid=`image-preview`;let o=document.createElement(`img`);return o.src=i,o.alt=t,o.draggable=!1,a.appendChild(o),a}function Jn(e){return t=>{let n=t.attrs,r=document.createElement(`span`);r.className=`md-image-view`;let i=document.createElement(`span`);i.className=`md-image-view-content`,r.appendChild(i);let a=qn(n.src,n.alt,e);return a&&(a.contentEditable=`false`,r.appendChild(a)),{dom:r,contentDOM:i,ignoreMutation:e=>!i.contains(e.target)}}}function Yn(e){return e?Array.from(e.files).filter(e=>e.type.startsWith(`image/`)):[]}const Xn=e=>{console.error(`[meowdown] failed to save pasted image:`,e)};async function Zn(e,t,n,r=Xn,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 Qn(e){return new _({key:new v(`image-input`),props:{handlePaste:(t,n)=>{let r=Yn(n.clipboardData),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(Zn(t,r,i,a),!0)},handleDrop:(t,n)=>{let r=Yn(n.dataTransfer),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(Zn(t,r,i,a,t.posAtCoords({left:n.clientX,top:n.clientY})?.pos),!0)}}})}function $n(e={}){return h(u({name:`mdImageView`,constructor:Jn(e)}),g(d(Qn(e)),t.high))}const er=new v(`meowdown-image-click`);function tr(e,t){let n=E(e,t,`mdImageSource`);if(!n)return;let{src:r,alt:i}=n.mark.attrs;return{from:n.from,to:n.to,src:r,alt:i}}function nr(e){return d(new _({key:er,props:{handleClick:(t,n,r)=>{let i=r.target?.closest?.(`.md-image-preview`);if(!i)return!1;let a=i.closest(`.md-image-view`)?.querySelector(`.md-image-view-content`);if(!a)return!1;let o=tr(t.state,t.posAtDOM(a,0));return o?(e({src:o.src,alt:o.alt,event:r}),!0):!1}}}))}const rr=new v(`meowdown-embed-paste`);function ir(e){let t=e.trim();if(!(!t||/\s/.test(t)))return Gn(t)?t:void 0}function ar(e,t){let{from:n,to:r}=e.state.selection;e.dispatch(T(e.state.tr.insertText(t,n,r)));let i=e.state.tr.insertText(`![](${t})`,n,n+t.length);e.dispatch(T(i))}function or(){return d(new _({key:rr,props:{handlePaste:(e,t)=>{let n=e.state.selection.$from.parent;if(!n.inlineContent||n.type.spec.code)return!1;let r=t.clipboardData?.getData(`text/plain`);if(!r)return!1;let i=ir(r);return i?(ar(e,i),!0):!1}}}))}const sr=(e,t)=>{let{$from:n,empty:r}=e.selection;if(!r||n.depth!==1||n.index(0)!==0||n.parent.type.name!==`heading`||n.parentOffset!==n.parent.content.size)return!1;if(t){let r=m(e.schema,`list`),i=m(e.schema,`paragraph`),a=r.create({kind:`bullet`},i.create()),o=n.after(),s=e.tr.insert(o,a);s.setSelection(y.create(s.doc,o+2)),t(s.scrollIntoView())}return!0};function cr(){return g(c({Enter:sr}),t.high)}const lr={"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`},ur=new Set([`MscGen`,`Xù`,`MsGenny`,`Angular Template`,`Brainfuck`,`Esper`,`Oz`,`Factor`,`Squirrel`,`Yacas`,`mIRC`,`FCL`,`ECL`,`MUMPS`,`Pig`,`Asterisk`,`Z80`]),dr=be.map(e=>e.name).filter(e=>!ur.has(e)).map(e=>({label:e,value:e.toLowerCase()})).concat({label:`Plain text`,value:``}).sort((e,t)=>e.label.localeCompare(t.label));function fr(e){let t=new mr;return hr(e,t),t.finish()}const pr=[``,`# `,`## `,`### `,`#### `,`##### `,`###### `];var mr=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.pendingFirst!==null&&(this.emitDeferredBlankLine(),this.parts.push(this.pendingFirst.trimEnd()),this.pendingFirst=null,this.atLineStart=!1),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 xr(e,t){switch(e.type.name){case`doc`:Z(e,t);return;case`paragraph`:wr(e,t),t.closeBlock();return;case`heading`:{let n=e.attrs;t.write(yr[n.level]??`# `),wr(e,t),t.closeBlock();return}case`blockquote`:t.withPrefix(`> `,`> `,()=>Z(e,t)),t.closeBlock();return;case`list`:Tr(e,t,Cr(e));return;case`codeBlock`:Er(e,t);return;case`horizontalRule`:t.write(`---`),t.closeBlock();return;case`table`:Dr(e,t);return;case`text`:e.text&&t.write(e.text);return}}function Z(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(),xr(a,t),i++;continue}let o=i+1;for(;o<r&&e.child(o).type.name===`list`;)o++;let s=Sr(e,i,o);for(let r=i;r<o;r++)(r===i?n&&i>0:s)&&t.suppressBlank(),Tr(e.child(r),t,s);i=o}}function Sr(e,t,n){for(let r=t;r<n;r++)if(!Cr(e.child(r)))return!1;return!0}function Cr(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 wr(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 Tr(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,()=>Z(e,t,n)),t.closeBlock()}function Er(e,t){let n=e.attrs.language||``,r=e.textContent,i="`".repeat(mn(r,2)+1);t.write(i),n&&t.write(n),t.write(`
8
+ `),this.deferredBlankPrefix=null)}};function hr(e,t){switch(e.type.name){case`doc`:X(e,t);return;case`paragraph`:_r(e,t),t.closeBlock();return;case`heading`:{let n=e.attrs;t.write(pr[n.level]??`# `),_r(e,t),t.closeBlock();return}case`blockquote`:t.withPrefix(`> `,`> `,()=>X(e,t)),t.closeBlock();return;case`list`:vr(e,t,Z(e));return;case`codeBlock`:yr(e,t);return;case`horizontalRule`:t.write(`---`),t.closeBlock();return;case`table`:br(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(),hr(a,t),i++;continue}let o=i+1;for(;o<r&&e.child(o).type.name===`list`;)o++;let s=gr(e,i,o);for(let r=i;r<o;r++)(r===i?n&&i>0:s)&&t.suppressBlank(),vr(e.child(r),t,s);i=o}}function gr(e,t,n){for(let r=t;r<n;r++)if(!Z(e.child(r)))return!1;return!0}function Z(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 _r(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 vr(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 yr(e,t){let n=e.attrs.language||``,r=e.textContent,i="`".repeat(sn(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 Dr(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(kr(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(Or(s,i)),t.write(`
10
+ `),t.write(i),t.closeBlock()}function br(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(Sr(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(xr(s,i)),t.write(`
11
11
  `),t.write(o);for(let e=0;e<n;e++)e!==a&&(t.write(`
12
- `),t.write(Or(r[e],i)));t.closeBlock()}function Or(e,t){let n=`|`;for(let r=0;r<t;r++)n+=` `+(e[r]??``)+` |`;return n}function kr(e){let t=e.textContent.trim();return!t.includes(`|`)&&!t.includes(`
12
+ `),t.write(xr(r[e],i)));t.closeBlock()}function xr(e,t){let n=`|`;for(let r=0;r<t;r++)n+=` `+(e[r]??``)+` |`;return n}function Sr(e){let t=e.textContent.trim();return!t.includes(`|`)&&!t.includes(`
13
13
  `)?t:t.replaceAll(`|`,String.raw`\|`).replaceAll(`
14
- `,` `)}function Ar(e,t=Ut()){let n=jr(t,Nt.parse(e).cursor(),e);return t.doc(n)}function jr(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 L.ATXHeading1:return[$(e,t,n,1)];case L.ATXHeading2:return[$(e,t,n,2)];case L.ATXHeading3:return[$(e,t,n,3)];case L.ATXHeading4:return[$(e,t,n,4)];case L.ATXHeading5:return[$(e,t,n,5)];case L.ATXHeading6:return[$(e,t,n,6)];case L.SetextHeading1:return[$(e,t,n,1)];case L.SetextHeading2:return[$(e,t,n,2)];case L.Paragraph:return[Mr(e,t,n)];case L.Blockquote:return[Nr(e,t,n)];case L.BulletList:return Pr(e,t,n,`bullet`,1);case L.OrderedList:return Fr(e,t,n);case L.FencedCode:case L.CodeBlock:return[Rr(e,t,n)];case L.HorizontalRule:return[e.horizontalRule()];case L.Table:return[zr(e,t,n)];case L.Task:return[Mr(e,t,n)];default:return[]}}function $(e,t,n,r){let i=t.from,a=t.to;if(t.firstChild()){t.type.id===L.HeaderMark&&(i=t.to);let e=-1,n=-1;do e=t.type.id,n=t.from;while(t.nextSibling());e===L.HeaderMark&&n>i&&(a=n),t.parent()}let o=n.slice(i,a).trim();return e.heading({level:r},o)}function Mr(e,t,n){let r=n.slice(t.from,t.to);return e.paragraph(r)}function Nr(e,t,n){let r=[];if(t.firstChild()){do{if(t.type.id===L.QuoteMark)continue;r.push(...Q(e,t,n))}while(t.nextSibling());t.parent()}return e.blockquote(r)}function Pr(e,t,n,r,i){let a=[];if(t.firstChild()){do t.type.id===L.ListItem&&a.push(Ir(e,t,n,r,i));while(t.nextSibling());t.parent()}return a}function Fr(e,t,n){let r=1;if(t.firstChild()){if(t.type.id===L.ListItem&&t.firstChild()){if(t.type.id===L.ListMark){let e=n.slice(t.from,t.to),i=Number.parseInt(e,10);Number.isFinite(i)&&(r=i)}t.parent()}t.parent()}return Pr(e,t,n,`ordered`,r)}function Ir(e,t,n,r,i){let a=[],o=null;if(t.firstChild()){do{if(t.type.id===L.ListMark)continue;if(r===`bullet`&&t.type.id===L.Task){let r=Lr(e,t,n);o=r.checked,a.push(r.paragraph);continue}a.push(...Q(e,t,n))}while(t.nextSibling());t.parent()}return e.list({kind:o===null?r:`task`,order:r===`ordered`?i:null,checked:o??!1,collapsed:!1},a)}function Lr(e,t,n){let r=!1,i=t.from,a=t.to;t.firstChild()&&(t.type.id===L.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.paragraph():e.paragraph(o)}}function Rr(e,t,n){let r=``,i=``;if(t.firstChild()){do switch(t.type.id){case L.CodeInfo:r=n.slice(t.from,t.to);break;case L.CodeText:i=n.slice(t.from,t.to);break}while(t.nextSibling());t.parent()}return e.codeBlock({language:r},i)}function zr(e,t,n){let r=0;if(t.firstChild()){do t.type.id===L.TableDelimiter&&(r=Br(n.slice(t.from,t.to)));while(t.nextSibling());t.parent()}let i=[];if(t.firstChild()){do{let a=t.type.id;a===L.TableHeader?i.push(Vr(e,t,n,!0,r)):a===L.TableRow&&i.push(Vr(e,t,n,!1,r))}while(t.nextSibling());t.parent()}return e.table(i)}function Br(e){return e.split(`|`).filter(e=>e.trim()!==``).length}function Vr(e,t,n,r,i){let a=Array(i).fill(``);if(t.firstChild()){let e=t.type.id===L.TableDelimiter,r=0;do if(t.type.id===L.TableDelimiter)r++;else if(t.type.id===L.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.paragraph(t);return r?e.tableHeaderCell(n):e.tableCell(n)});return e.tableRow(o)}function Hr(e){return e.replace(/\n+$/u,``)}function Ur(e){return e.split(`
15
- `).filter(e=>e.trim()!==``)}function Wr(e){let t=vr(Ar(e));if(Hr(t)===Hr(e))return`exact`;let n=Ur(e),r=Ur(t);return n.length===r.length&&n.every((e,t)=>e===r[t])?`normalizing`:`lossy`}export{hr as EDITOR_KEY_BINDINGS,e as Priority,Wr as checkRoundTrip,_r as codeBlockLanguages,mr as defineBulletAfterHeading,Mn as defineEditorExtension,fr as defineEmbedPaste,ar as defineImage,cr as defineImageClickHandler,Rn as defineLinkClickHandler,Je as defineMarkMode,ze as definePlaceholder,Be as defineReadonly,Fn as defineWikilinkClickHandler,vr as docToMarkdown,Ar as markdownToDoc,ie as withPriority};
14
+ `,` `)}function Cr(e,t=Nt()){let n=wr(t,xt.parse(e).cursor(),e);return t.doc(n)}function wr(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 V.ATXHeading1:return[$(e,t,n,1)];case V.ATXHeading2:return[$(e,t,n,2)];case V.ATXHeading3:return[$(e,t,n,3)];case V.ATXHeading4:return[$(e,t,n,4)];case V.ATXHeading5:return[$(e,t,n,5)];case V.ATXHeading6:return[$(e,t,n,6)];case V.SetextHeading1:return[$(e,t,n,1)];case V.SetextHeading2:return[$(e,t,n,2)];case V.Paragraph:return[Tr(e,t,n)];case V.Blockquote:return[Er(e,t,n)];case V.BulletList:return Dr(e,t,n,`bullet`,1);case V.OrderedList:return Or(e,t,n);case V.FencedCode:case V.CodeBlock:return[jr(e,t,n)];case V.HorizontalRule:return[e.horizontalRule()];case V.Table:return[Mr(e,t,n)];case V.Task:return[Tr(e,t,n)];default:return[]}}function $(e,t,n,r){let i=t.from,a=t.to;if(t.firstChild()){t.type.id===V.HeaderMark&&(i=t.to);let e=-1,n=-1;do e=t.type.id,n=t.from;while(t.nextSibling());e===V.HeaderMark&&n>i&&(a=n),t.parent()}let o=n.slice(i,a).trim();return e.heading({level:r},o)}function Tr(e,t,n){let r=n.slice(t.from,t.to);return e.paragraph(r)}function Er(e,t,n){let r=[];if(t.firstChild()){do{if(t.type.id===V.QuoteMark)continue;r.push(...Q(e,t,n))}while(t.nextSibling());t.parent()}return e.blockquote(r)}function Dr(e,t,n,r,i){let a=[];if(t.firstChild()){do t.type.id===V.ListItem&&a.push(kr(e,t,n,r,i));while(t.nextSibling());t.parent()}return a}function Or(e,t,n){let r=1;if(t.firstChild()){if(t.type.id===V.ListItem&&t.firstChild()){if(t.type.id===V.ListMark){let e=n.slice(t.from,t.to),i=Number.parseInt(e,10);Number.isFinite(i)&&(r=i)}t.parent()}t.parent()}return Dr(e,t,n,`ordered`,r)}function kr(e,t,n,r,i){let a=[],o=null;if(t.firstChild()){do{if(t.type.id===V.ListMark)continue;if(r===`bullet`&&t.type.id===V.Task){let r=Ar(e,t,n);o=r.checked,a.push(r.paragraph);continue}a.push(...Q(e,t,n))}while(t.nextSibling());t.parent()}return e.list({kind:o===null?r:`task`,order:r===`ordered`?i:null,checked:o??!1,collapsed:!1},a)}function Ar(e,t,n){let r=!1,i=t.from,a=t.to;t.firstChild()&&(t.type.id===V.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.paragraph():e.paragraph(o)}}function jr(e,t,n){let r=``,i=``;if(t.firstChild()){do switch(t.type.id){case V.CodeInfo:r=n.slice(t.from,t.to);break;case V.CodeText:i=n.slice(t.from,t.to);break}while(t.nextSibling());t.parent()}return e.codeBlock({language:r},i)}function Mr(e,t,n){let r=0;if(t.firstChild()){do t.type.id===V.TableDelimiter&&(r=Nr(n.slice(t.from,t.to)));while(t.nextSibling());t.parent()}let i=[];if(t.firstChild()){do{let a=t.type.id;a===V.TableHeader?i.push(Pr(e,t,n,!0,r)):a===V.TableRow&&i.push(Pr(e,t,n,!1,r))}while(t.nextSibling());t.parent()}return e.table(i)}function Nr(e){return e.split(`|`).filter(e=>e.trim()!==``).length}function Pr(e,t,n,r,i){let a=Array(i).fill(``);if(t.firstChild()){let e=t.type.id===V.TableDelimiter,r=0;do if(t.type.id===V.TableDelimiter)r++;else if(t.type.id===V.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.paragraph(t);return r?e.tableHeaderCell(n):e.tableCell(n)});return e.tableRow(o)}function Fr(e){return e.replace(/\n+$/u,``)}function Ir(e){return e.split(`
15
+ `).filter(e=>e.trim()!==``)}function Lr(e){let t=fr(Cr(e));if(Fr(t)===Fr(e))return`exact`;let n=Ir(e),r=Ir(t);return n.length===r.length&&n.every((e,t)=>e===r[t])?`normalizing`:`lossy`}export{lr as EDITOR_KEY_BINDINGS,e as Priority,Lr as checkRoundTrip,dr as codeBlockLanguages,cr as defineBulletAfterHeading,Tn as defineEditorExtension,or as defineEmbedPaste,$n as defineImage,nr as defineImageClickHandler,Mn as defineLinkClickHandler,He as defineMarkMode,Le as definePlaceholder,Re as defineReadonly,kn as defineWikilinkClickHandler,fr as docToMarkdown,Cr as markdownToDoc,ae as withPriority};
package/dist/style.css CHANGED
@@ -458,10 +458,29 @@ img.ProseMirror-separator {
458
458
  text-decoration: underline 1px;
459
459
  }
460
460
 
461
- .ProseMirror[data-mark-mode="hide"] .md-mark, .ProseMirror[data-mark-mode="hide"] .md-link-uri, .ProseMirror[data-mark-mode="hide"] .md-image-source, .ProseMirror[data-mark-mode="hide"] .md-wikilink-source, .ProseMirror[data-mark-mode="focus"] .md-mark, .ProseMirror[data-mark-mode="focus"] .md-link-uri, .ProseMirror[data-mark-mode="focus"] .md-image-source, .ProseMirror[data-mark-mode="focus"] .md-wikilink-source {
462
- display: none;
461
+ .ProseMirror .md-pack {
462
+ display: contents;
463
+ }
464
+
465
+ .ProseMirror[data-mark-mode="hide"] {
466
+ & .md-mark, & .md-link-uri, & .md-image-source, & .md-wikilink-source {
467
+ display: none;
468
+ }
463
469
  }
464
470
 
465
- .ProseMirror[data-mark-mode="focus"] .md-mark:has(.show), .ProseMirror[data-mark-mode="focus"] .md-link-uri:has(.show), .ProseMirror[data-mark-mode="focus"] .md-image-source:has(.show) {
466
- display: inline;
471
+ .ProseMirror[data-mark-mode="focus"] {
472
+ & .md-wikilink-source {
473
+ display: none;
474
+ }
475
+
476
+ & .md-mark, & .md-link-uri, & .md-image-source {
477
+ vertical-align: bottom;
478
+ letter-spacing: -2em;
479
+ display: inline-block;
480
+ overflow: hidden;
481
+
482
+ &:has(.show) {
483
+ letter-spacing: 0;
484
+ }
485
+ }
467
486
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meowdown/core",
3
3
  "type": "module",
4
- "version": "0.15.1",
4
+ "version": "0.15.2",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -33,7 +33,7 @@
33
33
  "@tsdown/css": "^0.22.3",
34
34
  "@vitest/browser-playwright": "^4.1.9",
35
35
  "dedent": "^1.7.2",
36
- "diffable-html-snapshot": "^0.2.0",
36
+ "diffable-html-snapshot": "^0.3.0",
37
37
  "tsdown": "^0.22.3",
38
38
  "vitest": "^4.1.9"
39
39
  },