@meowdown/core 0.16.1 → 0.16.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
@@ -1,5 +1,6 @@
1
1
  import { Editor, Extension, ExtractNodeBuilders, PlainExtension, Priority, Union, withPriority } from "@prosekit/core";
2
2
  import { CodeBlockAttrs } from "@prosekit/extensions/code-block";
3
+ import { HorizontalRuleExtension } from "@prosekit/extensions/horizontal-rule";
3
4
  import { ProseMirrorNode } from "@prosekit/pm/model";
4
5
  import { ListExtension } from "@prosekit/extensions/list";
5
6
  import { PlaceholderOptions, definePlaceholder } from "@prosekit/extensions/placeholder";
@@ -49,6 +50,21 @@ type ListTaskMarkerExtension = Extension<{
49
50
  }>;
50
51
  type MeowdownListExtension = Union<[ListExtension, ListMarkerExtension, ListTaskMarkerExtension]>;
51
52
  //#endregion
53
+ //#region src/extensions/horizontal-rule.d.ts
54
+ interface MeowdownHorizontalRuleAttrs {
55
+ /**
56
+ * The literal markdown marker of a thematic break, e.g. `***`, `___`, or
57
+ * `- - -`. Defaults to null, which the serializer emits as the canonical `---`.
58
+ */
59
+ marker?: string | null;
60
+ }
61
+ type HorizontalRuleMarkerExtension = Extension<{
62
+ Nodes: {
63
+ horizontalRule: MeowdownHorizontalRuleAttrs;
64
+ };
65
+ }>;
66
+ type MeowdownHorizontalRuleExtension = Union<[HorizontalRuleExtension, HorizontalRuleMarkerExtension]>;
67
+ //#endregion
52
68
  //#region src/extensions/inline-marks.d.ts
53
69
  interface MdImageViewAttrs {
54
70
  src: string;
@@ -92,7 +108,7 @@ declare function defineEditorExtensionImpl(): import("@prosekit/core").Union<rea
92
108
  setextUnderline?: number | null;
93
109
  };
94
110
  };
95
- }>, 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<{
111
+ }>, 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, MeowdownHorizontalRuleExtension, import("@prosekit/core").Union<readonly [import("@prosekit/core").Extension<{
96
112
  Marks: {
97
113
  mdMark: import("@prosekit/pm/model").Attrs;
98
114
  };
package/dist/index.js CHANGED
@@ -1,19 +1,19 @@
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,defineNodeAttr as d,definePlugin as f,getMarkRange as p,getMarkType as m,getNodeType as h,isApple as ee,isAtBlockStart as te,isTextSelection as ne,toggleNode as re,union as g,unsetBlockType as ie,withPriority as ae,withPriority as _,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{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 v,PluginKey as y,TextSelection as b}from"@prosekit/pm/state";import{Decoration as _e,DecorationSet as x}from"@prosekit/pm/view";import{LanguageDescription as ve}from"@codemirror/language";import{languages as ye}from"@codemirror/language-data";import{classHighlighter as be}from"@lezer/highlight";import{createParser as xe}from"prosemirror-highlight/lezer";import{defineHeadingCommands as Se,defineHeadingInputRule as Ce,defineHeadingSpec as we}from"@prosekit/extensions/heading";import{ReplaceStep as Te,Step as Ee,StepResult as De,Transform as Oe}from"@prosekit/pm/transform";import{Mark as ke}from"@prosekit/pm/model";import{GFM as Ae,parser as je}from"@lezer/markdown";import{once as Me}from"@ocavue/utils";import{defineList as Ne}from"@prosekit/extensions/list";import{defineTableCellSpec as Pe,defineTableCommands as Fe,defineTableDropIndicator as Ie,defineTableEditingPlugin as Le,defineTableHeaderCellSpec as Re,defineTableRowSpec as ze,defineTableSpec as Be}from"@prosekit/extensions/table";import{closeHistory as S}from"@prosekit/pm/history";import{definePlaceholder as Ve}from"@prosekit/extensions/placeholder";import{defineReadonly as He}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 p(i,n)}const Ue=new Set([`mdMark`,`mdLinkUri`]),We=new Set([`mdImageSource`,`mdWikilinkSource`]),Ge=new y(`mark-mode`);function Ke(e){return new v({key:Ge,state:{init:()=>e,apply:(e,t)=>t},props:{attributes:{"data-mark-mode":e},decorations:e===`focus`?e=>Xe(e):void 0,clipboardTextSerializer:e===`show`?void 0:Ye}})}function qe(e){return f(Ke(e))}function Je(e){return Ge.getState(e)}function Ye(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 Xe(e){let{selection:t}=e;if(!t.empty)return x.empty;let n=t.$head,{parent:r}=n;if(!r.isTextblock||r.type.spec.code)return x.empty;let i=p(n,m(e.schema,`mdPack`));return i?x.create(e.doc,[_e.inline(i.from,i.to,{class:`show`})]):x.empty}function w(e,t){let n=Je(t);return n?e.flatMap(e=>e.modes.includes(n)?[e.name]:[]):[]}function T(e,t,n){for(let r of n){let n=C(e,t,r);if(n)return n}}function E(e,t,n){let r=T(e,t,n);return r&&r.to===t?r:void 0}function D(e,t,n){let r=T(e,t,n);return r&&r.from===t?r:void 0}function O(e,t){let{from:n,to:r,empty:i}=e.selection;if(i)return;let a=T(e,n,t);return a&&a.from===n&&a.to===r?a:void 0}function Ze(e,t){return b.create(e.doc,t.from,t.to)}function Qe(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!ne(t.selection))return!1;let i=t.selection;if(i.empty){let e=D(t,i.from,r);if(e)return n?.(t.tr.setSelection(Ze(t,e))),!0;if(E(t,i.from,r)){let e=t.doc.resolve(i.from);return i.from>=e.end()?!1:(n?.(t.tr.setSelection(b.create(t.doc,i.from+1))),!0)}return!1}let a=O(t,r);return a?(n?.(t.tr.setSelection(b.create(t.doc,a.to))),!0):!1}}function $e(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!ne(t.selection))return!1;let i=t.selection;if(i.empty){let e=E(t,i.from,r);return e?(n?.(t.tr.setSelection(Ze(t,e))),!0):!1}let a=O(t,r);return a?(n?.(t.tr.setSelection(b.create(t.doc,a.from))),!0):!1}}function et(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=E(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!D(t,i,r)||i<=t.doc.resolve(i).start()?!1:(n?.(t.tr.delete(i-1,i)),!0)}}function tt(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=D(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!E(t,i,r)||i>=t.doc.resolve(i).end()?!1:(n?.(t.tr.delete(i,i+1)),!0)}}function nt(e,t){return new v({key:new y(`atomic-mark-selection-${t}`),props:{decorations:n=>{let r=w(e,n);if(r.length===0)return;let i=O(n,r);if(i)return x.create(n.doc,[_e.inline(i.from,i.to,{class:t})])}}})}function rt({marks:e,selectedClass:n}){return g(_(c({ArrowRight:Qe(e),ArrowLeft:$e(e),Backspace:et(e),Delete:tt(e)}),t.high),f(nt(e,n)))}const k=new Map;async function it(e){let t=ve.matchLanguageName(ye,e,!0);if(!t){k.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),k.set(e,null)}if(k.has(e))return;if(!n){k.set(e,null);return}let r=xe({parse:e=>n.language.parser.parse(e.content),highlighter:be});k.set(e,r)}const at=e=>{let t=e.language?.trim();if(!t)return[];let n=k.get(t);return n?n(e):n===null?[]:it(t)};function ot(){return le({parser:at,nodeTypes:[`codeBlock`]})}function st(){return d({type:`doc`,attr:`frontmatter`,default:null})}function ct(){return d({type:`heading`,attr:`setextUnderline`,default:null,toDOM:e=>e==null?null:[`data-setext-underline`,String(e)],parseDOM:e=>{let t=e.getAttribute(`data-setext-underline`);if(t==null)return null;let n=Number.parseInt(t,10);return Number.isSafeInteger(n)&&n>0?n:null}})}function A(e){return oe(re({type:`heading`,attrs:{level:e}}))}const lt=(e,t,n)=>te(e,n)?.parent.type.name===`heading`?ie()(e,t,n):!1;function ut(){return c({"Mod-1":A(1),"Mod-2":A(2),"Mod-3":A(3),"Mod-4":A(4),"Mod-5":A(5),"Mod-6":A(6),Backspace:lt})}function dt(){return g(we(),ct(),Ce(),Se(),ut())}function ft(e){let[t,n,r]=e;return[t,n,r.map(e=>e.toJSON())]}function pt(e,t){let[n,r,i]=t;return[n,r,i.map(t=>ke.fromJSON(e,t))]}var j=class e extends Ee{constructor(e){super(),this.chunks=e}apply(e){if(this.chunks.length===0)return De.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 Oe(e),n.removeMark(i,c,t));for(let t of a)t.isInSet(l)||(n??=new Oe(e),n.addMark(i,c,t));return!1})}return De.ok(n?n.doc:e)}invert(e){if(this.chunks.length===0)return mt;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 Te(i,a,e.slice(i,a),!1)}map(e){return null}toJSON(){return{stepType:`batchSetMark`,chunks:this.chunks.map(ft)}}static fromJSON(t,n){let r=n.chunks;return new e(r.map(e=>pt(t,e)))}};Ee.jsonID(`batchSetMark`,j);const mt=new j([]),ht=new Set([`com`,`br`,`net`,`jp`,`org`,`in`,`de`,`ru`,`it`,`fr`]),gt=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;function _t(e){let t=e.indexOf(`/`);return t===-1?e:e.slice(0,t)}function vt(e){let t=e.split(`.`);if(t.length<2)return!1;let n=t[t.length-1].toLowerCase();if(!ht.has(n)||t[t.length-2].length<3)return!1;for(let e of t)if(e.length>63||!gt.test(e))return!1;return!0}function yt(e){return e===32||e===9||e===10||e===13}const bt=/^[a-z0-9-]+(?:\.[a-z0-9-]+)+(?:\/[^\s<]*)?/i,xt=/[\s(*_~]/;function St(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45}function Ct(e,t,n){let r=0;for(let i=0;i<t;i++)e[i]===n&&r++;return r}function wt(e){let t=e.length;for(;;){let n=e[t-1];if(/[?!.,:*_~]/.test(n)||n===`)`&&Ct(e,t,`)`)>Ct(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 Tt={parseInline:[{name:`BareAutolink`,before:`Link`,parse(e,t,n){if(!St(t)||e.hasOpenLink)return-1;let r=e.slice(n-1,n);if(r!==``&&!xt.test(r))return-1;let i=bt.exec(e.slice(n,e.end));if(!i)return-1;let a=wt(i[0]);return a===0||!vt(_t(i[0].slice(0,a)))?-1:e.addElement(e.elt(`URL`,n,n+a))}}]};function Et(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 Dt(e){return e>=65&&e<=90||e>=97&&e<=122||e>127&&/\p{L}/u.test(String.fromCharCode(e))}const Ot={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(!Et(t))break;i||=Dt(t),r++}return i?e.addElement(e.elt(`Hashtag`,n,r)):-1}}]},kt={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 At(e){return e.end}const M=je.configure([Ae,Ot,kt,Tt]),jt=M.configure({parseInline:[{name:`SkipInline`,before:`Escape`,parse:At}]});function N(e){return M.parseInline(e,0)}function P(e,t,n=[]){for(let r of e)t(r)&&n.push(r),P(r.children,t,n);return n}function Mt(e){let t={};for(let n of e.nodeSet.types)t[n.name]=n.id;return t}const F=Mt(M);function Nt(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 Pt(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 Ft(){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 It(){return u({name:`mdWikilinkView`,constructor:Ft()})}const I=new Map([[F.Emphasis,`mdEm`],[F.StrongEmphasis,`mdStrong`],[F.InlineCode,`mdCode`],[F.Strikethrough,`mdDel`],[F.EmphasisMark,`mdMark`],[F.CodeMark,`mdMark`],[F.LinkMark,`mdMark`],[F.StrikethroughMark,`mdMark`],[F.URL,`mdLinkUri`],[F.Hashtag,`mdTag`],[F.WikilinkMark,`mdMark`]]);function Lt(e,t){let n=N(t),r=[];return L(n,[],0,t.length,t,e,r),r}function Rt(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)||vt(_t(e)))return`https://${e}`}function L(e,t,n,r,i,a,o){let s=n;for(let n of e){n.from>s&&B(o,s,n.from,t);let e=n.type;if(e===F.Link)R(n,t,i,a,o);else if(e===F.Image)zt(n,t,i,a,o);else if(e===F.Wikilink)z(n,t,i,a,o);else if(e===F.URL){let e=Rt(i.slice(n.from,n.to)),r=e?a.mdLinkText.create({href:e}):a.mdLinkUri.create();B(o,n.from,n.to,[...t,r])}else{let r;e===F.Emphasis?r=`italic`:e===F.StrongEmphasis?r=`bold`:e===F.InlineCode?r=`code`:e===F.Strikethrough?r=`strike`:e===F.Autolink&&(r=`autolink`);let s=r?[...t,a.mdPack.create({key:r})]:t,c=I.get(e),l=c?[...s,a[c].create()]:s;n.children.length===0?B(o,n.from,n.to,l):L(n.children,l,n.from,n.to,i,a,o)}s=n.to}s<r&&B(o,s,r,t)}function R(e,t,n,r,i){let a=-1,o=null,s=0;for(let t of e.children)t.type===F.LinkMark?(s++,s===2&&(a=t.from)):t.type===F.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;B(i,p,t.from,e)}let e=u(t.from)?[...f,l]:f;if(t.type===F.Wikilink){z(t,e,n,r,i),p=t.to;continue}let a=I.get(t.type),o=a?[...e,r[a].create()]:e;t.children.length===0?B(i,t.from,t.to,o):L(t.children,o,t.from,t.to,n,r,i),p=t.to}p<e.to&&B(i,p,e.to,f)}function zt(e,t,n,r,i){let a=e.children.find(e=>e.type===F.URL);if(!a){R(e,t,n,r,i);return}let o=e.children.filter(e=>e.type===F.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&&B(i,m,t.from,p(m));let e=I.get(t.type),a=e?[...p(t.from),r[e].create()]:p(t.from);t.children.length===0?B(i,t.from,t.to,a):L(t.children,a,t.from,t.to,n,r,i),m=t.to}m<e.to&&B(i,m,e.to,p(m))}function z(e,t,n,r,i){let{target:a,display:o}=Pt(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&&B(i,d,t.from,u(d));let e=r.mdMark.create();t.from<l&&t.to>l?(B(i,t.from,l,[...u(t.from),e]),B(i,l,t.to,[...u(l),e])):B(i,t.from,t.to,[...u(t.from),e]),d=t.to}d<e.to&&B(i,d,e.to,u(d))}function B(e,t,n,r){if(t>=n)return;let i=e.at(-1);if(i&&i[1]===t&&Nt(i[2],r)){e[e.length-1]=[i[0],n,i[2]];return}e.push([t,n,r])}const Bt=Me(()=>{let e=Nn().schema;if(e==null)throw Error(`Unexpected empty schema`);return e}),Vt=Me(()=>r(Bt())),V=`meowdown_mark_builders`;function Ht(e){let t=e.cached[V];if(t)return t;let r=n(e);return e.cached[V]=r,r}const H=`inline-marks-applied`,Ut=new WeakMap;let Wt=0,Gt=0;function Kt(e,t,n){let r=Ut.get(e);if(r?Gt++:(Wt++,r=Lt(Ht(n),e.textContent),Ut.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 qt(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 Jt(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=Kt(t,r+1,e.schema);return i.length>0&&n.push(...i),!1}),n}function Yt(){return new v({key:new y(`inline-mark`),appendTransaction(e,t,n){for(let t of e)if(t.getMeta(H))return null;let r=Jt(n,qt(e,n));if(r.length===0)return null;let i=n.tr.step(new j(r));return i.setMeta(H,!0),i.setMeta(`addToHistory`,!1),i},view(e){return e.dispatch(Xt(e.state)),{}}})}function Xt(e){return e.tr.setMeta(`inline-marks-trigger`,!0)}function Zt(){return f(Yt())}function Qt(){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 $t(){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 en(){return l({name:`mdMark`,inclusive:!1,toDOM:()=>[`span`,{class:`md-mark`},0],parseDOM:[{tag:`span.md-mark`}]})}function tn(){return l({name:`mdEm`,toDOM:()=>[`em`,0],parseDOM:[{tag:`em`}]})}function nn(){return l({name:`mdStrong`,toDOM:()=>[`strong`,0],parseDOM:[{tag:`strong`}]})}function rn(){return l({name:`mdCode`,toDOM:()=>[`code`,0],parseDOM:[{tag:`code`}]})}function an(){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 on(){return l({name:`mdLinkUri`,inclusive:!1,toDOM:()=>[`span`,{class:`md-link-uri`},0],parseDOM:[{tag:`span.md-link-uri`}]})}function sn(){return l({name:`mdDel`,toDOM:()=>[`del`,0],parseDOM:[{tag:`del`}]})}function cn(){return l({name:`mdTag`,toDOM:()=>[`span`,{class:`md-tag`},0],parseDOM:[{tag:`span.md-tag`}]})}function ln(){return l({name:`mdWikilinkSource`,inclusive:!1,attrs:{target:{default:``}},toDOM:()=>[`span`,{class:`md-wikilink-source`},0],parseDOM:[{tag:`span.md-wikilink-source`}]})}function un(){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 dn(){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 fn(){return g(en(),tn(),nn(),rn(),an(),on(),sn(),cn(),ln(),un(),$t(),Qt(),dn())}function pn(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 U={em:{node:F.Emphasis,delim:`*`},strong:{node:F.StrongEmphasis,delim:`**`},code:{node:F.InlineCode,delim:"`"},del:{node:F.Strikethrough,delim:`~~`}},mn=new Set([F.EmphasisMark,F.CodeMark,F.LinkMark,F.StrikethroughMark]);function W(e){return[e.children[0],e.children.at(-1)]}function G(e){let{type:t,children:n}=e;if(t===F.Emphasis||t===F.StrongEmphasis||t===F.Strikethrough)return[n[0].to,n.at(-1).from];if(t===F.Link||t===F.Image){let e=n.find((e,t)=>t>0&&e.type===F.LinkMark);return e?[n[0].to,e.from]:null}return null}function K(e,t,n){for(let r of e){if(r.to<=t||r.from>=n||t<=r.from&&r.to<=n)continue;let i=G(r);return i&&i[0]<=t&&n<=i[1]?K(r.children,t,n):K(e,Math.min(t,r.from),Math.max(n,r.to))}return[t,n]}function hn(e,t,n){for(let r of e)if(!(r.to<=t||r.from>=n)&&(t>r.from||r.to>n))return hn(e,Math.min(t,r.from),Math.max(n,r.to));return[t,n]}const q=e=>e===` `||e===` `;function gn(e,t,n){for(;t<n&&q(e[t]);)t++;for(;n>t&&q(e[n-1]);)n--;return[t,n]}function _n(e,t,n,r){let i=P(N(e),e=>e.type===r.node||mn.has(e.type));for(let r=t;r<n;r++)if(!q(e[r])&&i.every(e=>!(e.from<=r&&r<e.to)))return!1;return!0}function vn(e,t,n,r,i){let a=N(e),o=P(a,e=>e.type===r.node);return i?xn(e,o,t,n):yn(e,a,o,t,n,r)}function yn(e,t,n,r,i,a){for(let e=0;e!==i-r;){e=i-r,[r,i]=K(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]=W(e);o.push({from:t.from,to:t.to,insert:``}),o.push({from:n.from,to:n.to,insert:``})}let[s,c]=bn(e,r,i,o,a);return o.push({from:r,to:r,insert:s},{from:i,to:i,insert:c}),o}function bn(e,t,n,r,i){if(i.node!==F.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(pn(a)+1),s=a.startsWith("`")||a.endsWith("`")?` `:``;return[o+s,s+o]}function xn(e,t,n,r){let i=[];for(let a of t){if(a.to<=n||a.from>=r)continue;let[t,o]=W(a),s=Math.max(n,t.to),c=Math.min(r,o.from);for(s>=c&&([s,c]=[t.to,o.from]),[s,c]=hn(a.children.slice(1,-1),s,c);s>t.to&&q(e[s-1]);)s--;for(;c<o.from&&q(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 Sn(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=N(e),o=P(a,e=>e.type===n.node).findLast(e=>e.from<=t&&t<=e.to);if(o){let[e,n]=W(o);return{kind:`move`,pos:t===o.from?e.to:t===o.to?n.from:o.to}}return Cn(a,t)||e[t-1]===r[0]||e[t]===r[0]?null:{kind:`insert`,pos:t}}function Cn(e,t){for(let n of e)if(n.from<t&&t<n.to){let e=G(n);return!e||t<e[0]||t>e[1]?!0:Cn(n.children,t)}return!1}function J(e){return(t,n)=>{if(t.selection.empty)return wn(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]=gn(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:_n(a,c,l,e)}),!1});let c=s.length>0&&s.every(e=>e.active),l=s.filter(e=>c||!e.active).flatMap(t=>vn(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(b.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 wn(e,t,n){let{$from:r}=t.selection,i=r.parent;if(!i.isTextblock||i.type.spec.code)return!1;let a=Sn(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(b.create(o.doc,i+a.pos)),a.kind===`insert`&&(o.insertText(e.delim+e.delim,i+a.pos),o.setSelection(b.create(o.doc,i+a.pos+e.delim.length))),n(o.scrollIntoView())}return!0}function Tn(){return o({toggleEm:()=>J(U.em),toggleStrong:()=>J(U.strong),toggleCode:()=>J(U.code),toggleDel:()=>J(U.del)})}function En(){return c({"Mod-b":J(U.strong),"Mod-i":J(U.em),"Mod-e":J(U.code),"Mod-Shift-x":J(U.del)})}function Dn(){return g(Tn(),En())}function On(){return d({type:`list`,attr:`marker`,default:null,splittable:!0,toDOM:e=>e===`)`||e===`*`||e===`+`?[`data-list-marker`,e]:null,parseDOM:e=>{let t=e.getAttribute(`data-list-marker`);return t===`)`||t===`*`||t===`+`?t:null}})}function kn(){return d({type:`list`,attr:`taskMarker`,default:null,splittable:!0,toDOM:e=>e===`X`?[`data-list-task-marker`,e]:null,parseDOM:e=>e.getAttribute(`data-list-task-marker`)===`X`?`X`:null})}function An(){return g(Ne(),On(),kn())}function jn(){return g(Be(),ze(),Pe(),Re(),Le({allowTableNodeSelection:!0}),Fe(),Ie())}function Mn(){return g(me(),ue(),st(),he(),se(),An(),dt(),jn(),ce(),fe(),fn(),ot(),Zt(),Dn(),It(),rt({marks:[{name:`mdImageSource`,modes:[`hide`]},{name:`mdWikilinkSource`,modes:[`hide`,`focus`,`show`]}],selectedClass:`md-atomic-selected`}),a(),i(),s(),de(),ge(),pe())}function Nn(){return Mn()}function Pn(e){let t;return f(new v({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 Fn=new y(`meowdown-wikilink-click`);function In(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 Ln(e){return Pn({key:Fn,selector:`.md-wikilink-label, .md-wikilink-source`,preventDefault:!1,findHitAt:(e,t)=>{let n=In(e,t);return n?{from:n.from,to:n.to,payload:n.target}:void 0},onClick:(t,n)=>e({target:t,event:n})})}const Rn=new y(`meowdown-link-click`);function zn(e,t){let n=C(e,t,`mdLinkText`);if(n)return{from:n.from,to:n.to,href:n.mark.attrs.href}}function Bn(e){return Pn({key:Rn,selector:`.md-link`,preventDefault:!0,findHitAt:(e,t)=>{let n=zn(e,t);return n?{from:n.from,to:n.to,payload:n.href}:void 0},onClick:(t,n)=>e({href:t,event:n})})}function Vn(){return typeof window>`u`?!1:window.matchMedia(`(prefers-color-scheme: dark)`).matches}const Hn=/^(?:www\.|mobile\.)?(?:twitter\.com|x\.com)$/i,Un=/\/status(?:es)?\/(\d+)/;function Wn(e){let t;try{t=new URL(e)}catch{return}if(Hn.test(t.hostname))return Un.exec(t.pathname)?.[1]}const Gn=e=>{let t=Wn(e);if(t)return{key:`tweet:${t}`,render:()=>{let e=Vn()?`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`),Kn(n),n}}};function Kn(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 qn=/^(?:www\.|m\.)?(?:youtube\.com|youtube-nocookie\.com)$/i,Jn=/^(?:www\.)?youtu\.be$/i,Yn=/^[\w-]{11}$/;function Xn(e){let t;try{t=new URL(e)}catch{return}let n=null;if(Jn.test(t.hostname))n=t.pathname.slice(1);else if(qn.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||!Yn.test(n))return;let r=t.searchParams.get(`start`)??t.searchParams.get(`t`),i=r?Zn(r):void 0;return{videoId:n,startSeconds:i}}function Zn(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 Qn=[e=>{let t=Xn(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}}},Gn];function $n(e){for(let t of Qn){let n=t(e);if(n)return n}}function er(e){return/^https?:\/\//i.test(e)?e:void 0}function tr(e,t,n){let r=$n(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??er)(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 nr(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=tr(n.src,n.alt,e);return a&&(a.contentEditable=`false`,r.appendChild(a)),{dom:r,contentDOM:i,ignoreMutation:e=>!i.contains(e.target)}}}function rr(e){return e?Array.from(e.files).filter(e=>e.type.startsWith(`image/`)):[]}const ir=e=>{console.error(`[meowdown] failed to save pasted image:`,e)};async function ar(e,t,n,r=ir,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 or(e){return new v({key:new y(`image-input`),props:{handlePaste:(t,n)=>{let r=rr(n.clipboardData),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(ar(t,r,i,a),!0)},handleDrop:(t,n)=>{let r=rr(n.dataTransfer),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(ar(t,r,i,a,t.posAtCoords({left:n.clientX,top:n.clientY})?.pos),!0)}}})}function sr(e={}){return g(u({name:`mdImageView`,constructor:nr(e)}),_(f(or(e)),t.high))}const cr=new y(`meowdown-image-click`);function lr(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 ur(e){return f(new v({key:cr,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=lr(t.state,t.posAtDOM(a,0));return o?(e({src:o.src,alt:o.alt,event:r}),!0):!1}}}))}const dr=new y(`meowdown-embed-paste`);function fr(e){let t=e.trim();if(!(!t||/\s/.test(t)))return $n(t)?t:void 0}function pr(e,t){return e.clipboardData?.getData(`text/plain`)||t.content.textBetween(0,t.content.size,`
3
- `)}function mr(e,t){let{from:n,to:r}=e.state.selection;e.dispatch(S(e.state.tr.insertText(t,n,r)));let i=e.state.tr.insertText(`![](${t})`,n,n+t.length);e.dispatch(S(i))}function hr(){return f(new v({key:dr,props:{handlePaste:(e,t,n)=>{let r=e.state.selection.$from.parent;if(!r.inlineContent||r.type.spec.code)return!1;let i=pr(t,n);if(!i)return!1;let a=fr(i);return a?(mr(e,a),!0):!1}}}))}const gr=(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=h(e.schema,`list`),i=h(e.schema,`paragraph`),a=r.create({kind:`bullet`},i.create()),o=n.after(),s=e.tr.insert(o,a);s.setSelection(b.create(s.doc,o+2)),t(s.scrollIntoView())}return!0};function _r(){return _(c({Enter:gr}),t.high)}const vr={"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`},yr=new Set([`MscGen`,`Xù`,`MsGenny`,`Angular Template`,`Brainfuck`,`Esper`,`Oz`,`Factor`,`Squirrel`,`Yacas`,`mIRC`,`FCL`,`ECL`,`MUMPS`,`Pig`,`Asterisk`,`Z80`]),br=ye.map(e=>e.name).filter(e=>!yr.has(e)).map(e=>({label:e,value:e.toLowerCase()})).concat({label:`Plain text`,value:``}).sort((e,t)=>e.label.localeCompare(t.label));function xr(e){let t=new Tr;return Sr(e.attrs.frontmatter,t),Er(e,t),t.finish()}function Sr(e,t){e!==null&&(t.write(`---`),t.write(`
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,defineNodeAttr as d,definePlugin as f,getMarkRange as p,getMarkType as m,getNodeType as h,isApple as ee,isAtBlockStart as te,isTextSelection as ne,toggleNode as re,union as g,unsetBlockType as ie,withPriority as ae,withPriority as _,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{defineModClickPrevention as fe}from"@prosekit/extensions/mod-click-prevention";import{defineParagraph as pe}from"@prosekit/extensions/paragraph";import{defineText as me}from"@prosekit/extensions/text";import{defineVirtualSelection as he}from"@prosekit/extensions/virtual-selection";import{Plugin as v,PluginKey as y,TextSelection as b}from"@prosekit/pm/state";import{Decoration as ge,DecorationSet as x}from"@prosekit/pm/view";import{LanguageDescription as _e}from"@codemirror/language";import{languages as ve}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{defineHorizontalRule as we}from"@prosekit/extensions/horizontal-rule";import{ReplaceStep as Te,Step as Ee,StepResult as De,Transform as Oe}from"@prosekit/pm/transform";import{Mark as ke}from"@prosekit/pm/model";import{GFM as Ae,parser as je}from"@lezer/markdown";import{once as Me}from"@ocavue/utils";import{defineList as Ne}from"@prosekit/extensions/list";import{defineTableCellSpec as Pe,defineTableCommands as Fe,defineTableDropIndicator as Ie,defineTableEditingPlugin as Le,defineTableHeaderCellSpec as Re,defineTableRowSpec as ze,defineTableSpec as Be}from"@prosekit/extensions/table";import{closeHistory as S}from"@prosekit/pm/history";import{definePlaceholder as Ve}from"@prosekit/extensions/placeholder";import{defineReadonly as He}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 p(i,n)}const Ue=new Set([`mdMark`,`mdLinkUri`]),We=new Set([`mdImageSource`,`mdWikilinkSource`]),Ge=new y(`mark-mode`);function Ke(e){return new v({key:Ge,state:{init:()=>e,apply:(e,t)=>t},props:{attributes:{"data-mark-mode":e},decorations:e===`focus`?e=>Xe(e):void 0,clipboardTextSerializer:e===`show`?void 0:Ye}})}function qe(e){return f(Ke(e))}function Je(e){return Ge.getState(e)}function Ye(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 Xe(e){let{selection:t}=e;if(!t.empty)return x.empty;let n=t.$head,{parent:r}=n;if(!r.isTextblock||r.type.spec.code)return x.empty;let i=p(n,m(e.schema,`mdPack`));return i?x.create(e.doc,[ge.inline(i.from,i.to,{class:`show`})]):x.empty}function w(e,t){let n=Je(t);return n?e.flatMap(e=>e.modes.includes(n)?[e.name]:[]):[]}function T(e,t,n){for(let r of n){let n=C(e,t,r);if(n)return n}}function E(e,t,n){let r=T(e,t,n);return r&&r.to===t?r:void 0}function D(e,t,n){let r=T(e,t,n);return r&&r.from===t?r:void 0}function O(e,t){let{from:n,to:r,empty:i}=e.selection;if(i)return;let a=T(e,n,t);return a&&a.from===n&&a.to===r?a:void 0}function Ze(e,t){return b.create(e.doc,t.from,t.to)}function Qe(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!ne(t.selection))return!1;let i=t.selection;if(i.empty){let e=D(t,i.from,r);if(e)return n?.(t.tr.setSelection(Ze(t,e))),!0;if(E(t,i.from,r)){let e=t.doc.resolve(i.from);return i.from>=e.end()?!1:(n?.(t.tr.setSelection(b.create(t.doc,i.from+1))),!0)}return!1}let a=O(t,r);return a?(n?.(t.tr.setSelection(b.create(t.doc,a.to))),!0):!1}}function $e(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!ne(t.selection))return!1;let i=t.selection;if(i.empty){let e=E(t,i.from,r);return e?(n?.(t.tr.setSelection(Ze(t,e))),!0):!1}let a=O(t,r);return a?(n?.(t.tr.setSelection(b.create(t.doc,a.from))),!0):!1}}function et(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=E(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!D(t,i,r)||i<=t.doc.resolve(i).start()?!1:(n?.(t.tr.delete(i-1,i)),!0)}}function tt(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=D(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!E(t,i,r)||i>=t.doc.resolve(i).end()?!1:(n?.(t.tr.delete(i,i+1)),!0)}}function nt(e,t){return new v({key:new y(`atomic-mark-selection-${t}`),props:{decorations:n=>{let r=w(e,n);if(r.length===0)return;let i=O(n,r);if(i)return x.create(n.doc,[ge.inline(i.from,i.to,{class:t})])}}})}function rt({marks:e,selectedClass:n}){return g(_(c({ArrowRight:Qe(e),ArrowLeft:$e(e),Backspace:et(e),Delete:tt(e)}),t.high),f(nt(e,n)))}const k=new Map;async function it(e){let t=_e.matchLanguageName(ve,e,!0);if(!t){k.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),k.set(e,null)}if(k.has(e))return;if(!n){k.set(e,null);return}let r=be({parse:e=>n.language.parser.parse(e.content),highlighter:ye});k.set(e,r)}const at=e=>{let t=e.language?.trim();if(!t)return[];let n=k.get(t);return n?n(e):n===null?[]:it(t)};function ot(){return le({parser:at,nodeTypes:[`codeBlock`]})}function st(){return d({type:`doc`,attr:`frontmatter`,default:null})}function ct(){return d({type:`heading`,attr:`setextUnderline`,default:null,toDOM:e=>e==null?null:[`data-setext-underline`,String(e)],parseDOM:e=>{let t=e.getAttribute(`data-setext-underline`);if(t==null)return null;let n=Number.parseInt(t,10);return Number.isSafeInteger(n)&&n>0?n:null}})}function A(e){return oe(re({type:`heading`,attrs:{level:e}}))}const lt=(e,t,n)=>te(e,n)?.parent.type.name===`heading`?ie()(e,t,n):!1;function ut(){return c({"Mod-1":A(1),"Mod-2":A(2),"Mod-3":A(3),"Mod-4":A(4),"Mod-5":A(5),"Mod-6":A(6),Backspace:lt})}function dt(){return g(Ce(),ct(),Se(),xe(),ut())}function ft(){return d({type:`horizontalRule`,attr:`marker`,default:null,toDOM:e=>e?[`data-hr-marker`,e]:null,parseDOM:e=>e.getAttribute(`data-hr-marker`)})}function pt(){return g(we(),ft())}function mt(e){let[t,n,r]=e;return[t,n,r.map(e=>e.toJSON())]}function ht(e,t){let[n,r,i]=t;return[n,r,i.map(t=>ke.fromJSON(e,t))]}var j=class e extends Ee{constructor(e){super(),this.chunks=e}apply(e){if(this.chunks.length===0)return De.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 Oe(e),n.removeMark(i,c,t));for(let t of a)t.isInSet(l)||(n??=new Oe(e),n.addMark(i,c,t));return!1})}return De.ok(n?n.doc:e)}invert(e){if(this.chunks.length===0)return gt;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 Te(i,a,e.slice(i,a),!1)}map(e){return null}toJSON(){return{stepType:`batchSetMark`,chunks:this.chunks.map(mt)}}static fromJSON(t,n){let r=n.chunks;return new e(r.map(e=>ht(t,e)))}};Ee.jsonID(`batchSetMark`,j);const gt=new j([]),_t=new Set([`com`,`br`,`net`,`jp`,`org`,`in`,`de`,`ru`,`it`,`fr`]),vt=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;function yt(e){let t=e.indexOf(`/`);return t===-1?e:e.slice(0,t)}function bt(e){let t=e.split(`.`);if(t.length<2)return!1;let n=t[t.length-1].toLowerCase();if(!_t.has(n)||t[t.length-2].length<3)return!1;for(let e of t)if(e.length>63||!vt.test(e))return!1;return!0}function xt(e){return e===32||e===9||e===10||e===13}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||!bt(yt(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 M=je.configure([Ae,At,jt,Dt]),Nt=M.configure({parseInline:[{name:`SkipInline`,before:`Escape`,parse:Mt}]});function N(e){return M.parseInline(e,0)}function P(e,t,n=[]){for(let r of e)t(r)&&n.push(r),P(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 F=Pt(M);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 I=new Map([[F.Emphasis,`mdEm`],[F.StrongEmphasis,`mdStrong`],[F.InlineCode,`mdCode`],[F.Strikethrough,`mdDel`],[F.EmphasisMark,`mdMark`],[F.CodeMark,`mdMark`],[F.LinkMark,`mdMark`],[F.StrikethroughMark,`mdMark`],[F.URL,`mdLinkUri`],[F.Hashtag,`mdTag`],[F.WikilinkMark,`mdMark`]]);function zt(e,t){let n=N(t),r=[];return L(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)||bt(yt(e)))return`https://${e}`}function L(e,t,n,r,i,a,o){let s=n;for(let n of e){n.from>s&&B(o,s,n.from,t);let e=n.type;if(e===F.Link)R(n,t,i,a,o);else if(e===F.Image)Vt(n,t,i,a,o);else if(e===F.Wikilink)z(n,t,i,a,o);else if(e===F.URL){let e=Bt(i.slice(n.from,n.to)),r=e?a.mdLinkText.create({href:e}):a.mdLinkUri.create();B(o,n.from,n.to,[...t,r])}else{let r;e===F.Emphasis?r=`italic`:e===F.StrongEmphasis?r=`bold`:e===F.InlineCode?r=`code`:e===F.Strikethrough?r=`strike`:e===F.Autolink&&(r=`autolink`);let s=r?[...t,a.mdPack.create({key:r})]:t,c=I.get(e),l=c?[...s,a[c].create()]:s;n.children.length===0?B(o,n.from,n.to,l):L(n.children,l,n.from,n.to,i,a,o)}s=n.to}s<r&&B(o,s,r,t)}function R(e,t,n,r,i){let a=-1,o=null,s=0;for(let t of e.children)t.type===F.LinkMark?(s++,s===2&&(a=t.from)):t.type===F.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;B(i,p,t.from,e)}let e=u(t.from)?[...f,l]:f;if(t.type===F.Wikilink){z(t,e,n,r,i),p=t.to;continue}let a=I.get(t.type),o=a?[...e,r[a].create()]:e;t.children.length===0?B(i,t.from,t.to,o):L(t.children,o,t.from,t.to,n,r,i),p=t.to}p<e.to&&B(i,p,e.to,f)}function Vt(e,t,n,r,i){let a=e.children.find(e=>e.type===F.URL);if(!a){R(e,t,n,r,i);return}let o=e.children.filter(e=>e.type===F.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&&B(i,m,t.from,p(m));let e=I.get(t.type),a=e?[...p(t.from),r[e].create()]:p(t.from);t.children.length===0?B(i,t.from,t.to,a):L(t.children,a,t.from,t.to,n,r,i),m=t.to}m<e.to&&B(i,m,e.to,p(m))}function z(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&&B(i,d,t.from,u(d));let e=r.mdMark.create();t.from<l&&t.to>l?(B(i,t.from,l,[...u(t.from),e]),B(i,l,t.to,[...u(l),e])):B(i,t.from,t.to,[...u(t.from),e]),d=t.to}d<e.to&&B(i,d,e.to,u(d))}function B(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=Me(()=>{let e=Fn().schema;if(e==null)throw Error(`Unexpected empty schema`);return e}),Ut=Me(()=>r(Ht())),V=`meowdown_mark_builders`;function Wt(e){let t=e.cached[V];if(t)return t;let r=n(e);return e.cached[V]=r,r}const H=`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 v({key:new y(`inline-mark`),appendTransaction(e,t,n){for(let t of e)if(t.getMeta(H))return null;let r=Xt(n,Yt(e,n));if(r.length===0)return null;let i=n.tr.step(new j(r));return i.setMeta(H,!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 f(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 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 mn(){return g(nn(),rn(),an(),on(),sn(),cn(),ln(),un(),dn(),fn(),tn(),en(),pn())}function hn(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 U={em:{node:F.Emphasis,delim:`*`},strong:{node:F.StrongEmphasis,delim:`**`},code:{node:F.InlineCode,delim:"`"},del:{node:F.Strikethrough,delim:`~~`}},gn=new Set([F.EmphasisMark,F.CodeMark,F.LinkMark,F.StrikethroughMark]);function W(e){return[e.children[0],e.children.at(-1)]}function G(e){let{type:t,children:n}=e;if(t===F.Emphasis||t===F.StrongEmphasis||t===F.Strikethrough)return[n[0].to,n.at(-1).from];if(t===F.Link||t===F.Image){let e=n.find((e,t)=>t>0&&e.type===F.LinkMark);return e?[n[0].to,e.from]:null}return null}function K(e,t,n){for(let r of e){if(r.to<=t||r.from>=n||t<=r.from&&r.to<=n)continue;let i=G(r);return i&&i[0]<=t&&n<=i[1]?K(r.children,t,n):K(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 q=e=>e===` `||e===` `;function vn(e,t,n){for(;t<n&&q(e[t]);)t++;for(;n>t&&q(e[n-1]);)n--;return[t,n]}function yn(e,t,n,r){let i=P(N(e),e=>e.type===r.node||gn.has(e.type));for(let r=t;r<n;r++)if(!q(e[r])&&i.every(e=>!(e.from<=r&&r<e.to)))return!1;return!0}function bn(e,t,n,r,i){let a=N(e),o=P(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]=K(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]=W(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!==F.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(hn(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]=W(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&&q(e[s-1]);)s--;for(;c<o.from&&q(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=N(e),o=P(a,e=>e.type===n.node).findLast(e=>e.from<=t&&t<=e.to);if(o){let[e,n]=W(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=G(n);return!e||t<e[0]||t>e[1]?!0:Tn(n.children,t)}return!1}function J(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(b.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(b.create(o.doc,i+a.pos)),a.kind===`insert`&&(o.insertText(e.delim+e.delim,i+a.pos),o.setSelection(b.create(o.doc,i+a.pos+e.delim.length))),n(o.scrollIntoView())}return!0}function Dn(){return o({toggleEm:()=>J(U.em),toggleStrong:()=>J(U.strong),toggleCode:()=>J(U.code),toggleDel:()=>J(U.del)})}function On(){return c({"Mod-b":J(U.strong),"Mod-i":J(U.em),"Mod-e":J(U.code),"Mod-Shift-x":J(U.del)})}function kn(){return g(Dn(),On())}function An(){return d({type:`list`,attr:`marker`,default:null,splittable:!0,toDOM:e=>e===`)`||e===`*`||e===`+`?[`data-list-marker`,e]:null,parseDOM:e=>{let t=e.getAttribute(`data-list-marker`);return t===`)`||t===`*`||t===`+`?t:null}})}function jn(){return d({type:`list`,attr:`taskMarker`,default:null,splittable:!0,toDOM:e=>e===`X`?[`data-list-task-marker`,e]:null,parseDOM:e=>e.getAttribute(`data-list-task-marker`)===`X`?`X`:null})}function Mn(){return g(Ne(),An(),jn())}function Nn(){return g(Be(),ze(),Pe(),Re(),Le({allowTableNodeSelection:!0}),Fe(),Ie())}function Pn(){return g(pe(),ue(),st(),me(),se(),Mn(),dt(),Nn(),ce(),pt(),mn(),ot(),$t(),kn(),Rt(),rt({marks:[{name:`mdImageSource`,modes:[`hide`]},{name:`mdWikilinkSource`,modes:[`hide`,`focus`,`show`]}],selectedClass:`md-atomic-selected`}),a(),i(),s(),de(),he(),fe())}function Fn(){return Pn()}function In(e){let t;return f(new v({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 Ln=new y(`meowdown-wikilink-click`);function Rn(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 zn(e){return In({key:Ln,selector:`.md-wikilink-label, .md-wikilink-source`,preventDefault:!1,findHitAt:(e,t)=>{let n=Rn(e,t);return n?{from:n.from,to:n.to,payload:n.target}:void 0},onClick:(t,n)=>e({target:t,event:n})})}const Bn=new y(`meowdown-link-click`);function Vn(e,t){let n=C(e,t,`mdLinkText`);if(n)return{from:n.from,to:n.to,href:n.mark.attrs.href}}function Hn(e){return In({key:Bn,selector:`.md-link`,preventDefault:!0,findHitAt:(e,t)=>{let n=Vn(e,t);return n?{from:n.from,to:n.to,payload:n.href}:void 0},onClick:(t,n)=>e({href:t,event:n})})}function Un(){return typeof window>`u`?!1:window.matchMedia(`(prefers-color-scheme: dark)`).matches}const Wn=/^(?:www\.|mobile\.)?(?:twitter\.com|x\.com)$/i,Gn=/\/status(?:es)?\/(\d+)/;function Kn(e){let t;try{t=new URL(e)}catch{return}if(Wn.test(t.hostname))return Gn.exec(t.pathname)?.[1]}const qn=e=>{let t=Kn(e);if(t)return{key:`tweet:${t}`,render:()=>{let e=Un()?`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`),Jn(n),n}}};function Jn(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 Yn=/^(?:www\.|m\.)?(?:youtube\.com|youtube-nocookie\.com)$/i,Xn=/^(?:www\.)?youtu\.be$/i,Zn=/^[\w-]{11}$/;function Qn(e){let t;try{t=new URL(e)}catch{return}let n=null;if(Xn.test(t.hostname))n=t.pathname.slice(1);else if(Yn.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||!Zn.test(n))return;let r=t.searchParams.get(`start`)??t.searchParams.get(`t`),i=r?$n(r):void 0;return{videoId:n,startSeconds:i}}function $n(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 er=[e=>{let t=Qn(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}}},qn];function tr(e){for(let t of er){let n=t(e);if(n)return n}}function nr(e){return/^https?:\/\//i.test(e)?e:void 0}function rr(e,t,n){let r=tr(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??nr)(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 ir(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=rr(n.src,n.alt,e);return a&&(a.contentEditable=`false`,r.appendChild(a)),{dom:r,contentDOM:i,ignoreMutation:e=>!i.contains(e.target)}}}function ar(e){return e?Array.from(e.files).filter(e=>e.type.startsWith(`image/`)):[]}const or=e=>{console.error(`[meowdown] failed to save pasted image:`,e)};async function sr(e,t,n,r=or,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 cr(e){return new v({key:new y(`image-input`),props:{handlePaste:(t,n)=>{let r=ar(n.clipboardData),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(sr(t,r,i,a),!0)},handleDrop:(t,n)=>{let r=ar(n.dataTransfer),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(sr(t,r,i,a,t.posAtCoords({left:n.clientX,top:n.clientY})?.pos),!0)}}})}function lr(e={}){return g(u({name:`mdImageView`,constructor:ir(e)}),_(f(cr(e)),t.high))}const ur=new y(`meowdown-image-click`);function dr(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 fr(e){return f(new v({key:ur,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=dr(t.state,t.posAtDOM(a,0));return o?(e({src:o.src,alt:o.alt,event:r}),!0):!1}}}))}const pr=new y(`meowdown-embed-paste`);function mr(e){let t=e.trim();if(!(!t||/\s/.test(t)))return tr(t)?t:void 0}function hr(e,t){return e.clipboardData?.getData(`text/plain`)||t.content.textBetween(0,t.content.size,`
3
+ `)}function gr(e,t){let{from:n,to:r}=e.state.selection;e.dispatch(S(e.state.tr.insertText(t,n,r)));let i=e.state.tr.insertText(`![](${t})`,n,n+t.length);e.dispatch(S(i))}function _r(){return f(new v({key:pr,props:{handlePaste:(e,t,n)=>{let r=e.state.selection.$from.parent;if(!r.inlineContent||r.type.spec.code)return!1;let i=hr(t,n);if(!i)return!1;let a=mr(i);return a?(gr(e,a),!0):!1}}}))}const vr=(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=h(e.schema,`list`),i=h(e.schema,`paragraph`),a=r.create({kind:`bullet`},i.create()),o=n.after(),s=e.tr.insert(o,a);s.setSelection(b.create(s.doc,o+2)),t(s.scrollIntoView())}return!0};function yr(){return _(c({Enter:vr}),t.high)}const br={"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`},xr=new Set([`MscGen`,`Xù`,`MsGenny`,`Angular Template`,`Brainfuck`,`Esper`,`Oz`,`Factor`,`Squirrel`,`Yacas`,`mIRC`,`FCL`,`ECL`,`MUMPS`,`Pig`,`Asterisk`,`Z80`]),Sr=ve.map(e=>e.name).filter(e=>!xr.has(e)).map(e=>({label:e,value:e.toLowerCase()})).concat({label:`Plain text`,value:``}).sort((e,t)=>e.label.localeCompare(t.label));function Cr(e){let t=new Dr;return wr(e.attrs.frontmatter,t),Or(e,t),t.finish()}function wr(e,t){e!==null&&(t.write(`---`),t.write(`
4
4
  `),e!==``&&(t.write(e),t.write(`
5
- `)),t.write(`---`),t.closeBlock())}const Cr=[``,`# `,`## `,`### `,`#### `,`##### `,`###### `];function wr(e,t){let n=e.attrs,r=n.setextUnderline;if(r!=null&&e.content.size>0&&n.level<=2){X(e,t);let i=n.level===1?`=`:`-`;t.write(`
6
- `+i.repeat(Math.max(1,r))),t.closeBlock();return}t.write(Cr[n.level]??`# `),X(e,t),t.closeBlock()}var Tr=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(`
5
+ `)),t.write(`---`),t.closeBlock())}const Tr=[``,`# `,`## `,`### `,`#### `,`##### `,`###### `];function Er(e,t){let n=e.attrs,r=n.setextUnderline;if(r!=null&&e.content.size>0&&n.level<=2){X(e,t);let i=n.level===1?`=`:`-`;t.write(`
6
+ `+i.repeat(Math.max(1,r))),t.closeBlock();return}t.write(Tr[n.level]??`# `),X(e,t),t.closeBlock()}var Dr=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(`
7
7
  `)){this.parts.push(e);return}let t=e.split(`
8
8
  `);for(let e=0;e<t.length;e++)e>0&&this.parts.push(`
9
9
  `,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(`
10
10
  `),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=t===null?i:null}finish(){return this.parts.join(``).replace(/\s+$/,``)+`
11
11
  `}emitDeferredBlankLine(){let e=this.deferredBlankPrefix;e!==null&&(this.parts.push(e.trimEnd(),`
12
- `),this.deferredBlankPrefix=null)}};function Er(e,t){switch(e.type.name){case`doc`:Y(e,t);return;case`paragraph`:X(e,t),t.closeBlock();return;case`heading`:wr(e,t);return;case`blockquote`:t.withPrefix(`> `,`> `,()=>Y(e,t)),t.closeBlock();return;case`list`:kr(e,t,Or(e));return;case`codeBlock`:Ar(e,t);return;case`horizontalRule`:t.write(`---`),t.closeBlock();return;case`table`:jr(e,t);return;case`text`:e.text&&t.write(e.text);return}}function Y(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(),Er(a,t),i++;continue}let o=i+1;for(;o<r&&e.child(o).type.name===`list`;)o++;let s=Dr(e,i,o);for(let r=i;r<o;r++)(r===i?n&&i>0:s)&&t.suppressBlank(),kr(e.child(r),t,s);i=o}}function Dr(e,t,n){for(let r=t;r<n;r++)if(!Or(e.child(r)))return!1;return!0}function Or(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 X(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 kr(e,t,n){let r=e.attrs,i=r.marker===`*`||r.marker===`+`?r.marker:`-`,a=r.marker===`)`?`)`:`.`,o=r.taskMarker===`X`?`X`:`x`,s=r.kind===`ordered`?`${r.order??1}${a} `:r.kind===`task`?`${i} [${r.checked?o:` `}] `:`${i} `,c=` `.repeat(r.kind===`task`?2:s.length);t.withPrefix(c,s,()=>Y(e,t,n)),t.closeBlock()}function Ar(e,t){let n=e.attrs.language||``,r=e.textContent,i="`".repeat(pn(r,2)+1);t.write(i),n&&t.write(n),t.write(`
12
+ `),this.deferredBlankPrefix=null)}};function Or(e,t){switch(e.type.name){case`doc`:Y(e,t);return;case`paragraph`:X(e,t),t.closeBlock();return;case`heading`:Er(e,t);return;case`blockquote`:t.withPrefix(`> `,`> `,()=>Y(e,t)),t.closeBlock();return;case`list`:jr(e,t,Ar(e));return;case`codeBlock`:Mr(e,t);return;case`horizontalRule`:{let{marker:n}=e.attrs;t.write(n||`---`),t.closeBlock();return}case`table`:Nr(e,t);return;case`text`:e.text&&t.write(e.text);return}}function Y(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(),Or(a,t),i++;continue}let o=i+1;for(;o<r&&e.child(o).type.name===`list`;)o++;let s=kr(e,i,o);for(let r=i;r<o;r++)(r===i?n&&i>0:s)&&t.suppressBlank(),jr(e.child(r),t,s);i=o}}function kr(e,t,n){for(let r=t;r<n;r++)if(!Ar(e.child(r)))return!1;return!0}function Ar(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 X(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 jr(e,t,n){let r=e.attrs,i=r.marker===`*`||r.marker===`+`?r.marker:`-`,a=r.marker===`)`?`)`:`.`,o=r.taskMarker===`X`?`X`:`x`,s=r.kind===`ordered`?`${r.order??1}${a} `:r.kind===`task`?`${i} [${r.checked?o:` `}] `:`${i} `,c=` `.repeat(r.kind===`task`?2:s.length);t.withPrefix(c,s,()=>Y(e,t,n)),t.closeBlock()}function Mr(e,t){let n=e.attrs.language||``,r=e.textContent,i="`".repeat(hn(r,2)+1);t.write(i),n&&t.write(n),t.write(`
13
13
  `),r&&(t.write(r),t.write(`
14
- `)),t.write(i),t.closeBlock()}function jr(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(Nr(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(Mr(s,i)),t.write(`
14
+ `)),t.write(i),t.closeBlock()}function Nr(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(Fr(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(Pr(s,i)),t.write(`
15
15
  `),t.write(o);for(let e=0;e<n;e++)e!==a&&(t.write(`
16
- `),t.write(Mr(r[e],i)));t.closeBlock()}function Mr(e,t){let n=`|`;for(let r=0;r<t;r++)n+=` `+(e[r]??``)+` |`;return n}function Nr(e){let t=e.textContent.trim();return!t.includes(`|`)&&!t.includes(`
16
+ `),t.write(Pr(r[e],i)));t.closeBlock()}function Pr(e,t){let n=`|`;for(let r=0;r<t;r++)n+=` `+(e[r]??``)+` |`;return n}function Fr(e){let t=e.textContent.trim();return!t.includes(`|`)&&!t.includes(`
17
17
  `)?t:t.replaceAll(`|`,String.raw`\|`).replaceAll(`
18
- `,` `)}function Pr(e,t=Vt()){let[n,r]=Ir(e),i=r?e.slice(r):e,a=Lr(t,jt.parse(i).cursor(),i);return t.doc({frontmatter:n},a)}const Fr=/^---[ \t]*\r?\n([\s\S]*?\n)?---[ \t]*(?:\r?\n|$)/;function Ir(e){let t=Fr.exec(e);return t?[(t[1]??``).replace(/\r?\n$/,``),t[0].length]:[]}function Lr(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 F.ATXHeading1:return[Q(e,t,n,1,!1)];case F.ATXHeading2:return[Q(e,t,n,2,!1)];case F.ATXHeading3:return[Q(e,t,n,3,!1)];case F.ATXHeading4:return[Q(e,t,n,4,!1)];case F.ATXHeading5:return[Q(e,t,n,5,!1)];case F.ATXHeading6:return[Q(e,t,n,6,!1)];case F.SetextHeading1:return[Q(e,t,n,1,!0)];case F.SetextHeading2:return[Q(e,t,n,2,!0)];case F.Paragraph:return[$(e,t,n)];case F.HTMLBlock:case F.CommentBlock:case F.ProcessingInstructionBlock:return[$(e,t,n)];case F.Blockquote:return[zr(e,t,n)];case F.BulletList:return Br(e,t,n,`bullet`);case F.OrderedList:return Br(e,t,n,`ordered`);case F.FencedCode:case F.CodeBlock:return[Hr(e,t,n)];case F.HorizontalRule:return[e.horizontalRule()];case F.Table:return[Ur(e,t,n)];case F.Task:return[$(e,t,n)];default:return n.slice(t.from,t.to).trim()===``?[]:(console.warn(`[meowdown] unsupported lezer block "${t.type.name}"`),[$(e,t,n)])}}function Q(e,t,n,r,i){let a=t.from,o=t.from,s=t.to,c=-1,l=-1;if(t.firstChild()){t.type.id===F.HeaderMark&&t.from===a&&(o=t.to);let e=-1,n=-1,r=-1;do e=t.type.id,n=t.from,r=t.to;while(t.nextSibling());e===F.HeaderMark&&n>o&&(s=n,c=n,l=r),t.parent()}let u=n.slice(o,s).trim(),d=i?Rr(n,c,l)||1:null;return e.heading({level:r,setextUnderline:d},u)}function Rr(e,t,n){if(t<0)return 0;let r=0;for(let i=t;i<n;i++){let t=e.charCodeAt(i);(t===61||t===45)&&r++}return r}function $(e,t,n){let r=t.from,i=t.to;if(t.firstChild()){let a=``,o=r;do t.type.id===F.QuoteMark&&(a+=n.slice(o,t.from),o=t.to,yt(n.charCodeAt(o))&&(o+=1));while(t.nextSibling());return t.parent(),a+=n.slice(o,i),a===``?e.paragraph():e.paragraph(a)}return e.paragraph(n.slice(r,i))}function zr(e,t,n){let r=[];if(t.firstChild()){do{if(t.type.id===F.QuoteMark)continue;r.push(...Z(e,t,n))}while(t.nextSibling());t.parent()}return e.blockquote(r)}function Br(e,t,n,r){let i=[];if(t.firstChild()){do t.type.id===F.ListItem&&i.push(Vr(e,t,n,r));while(t.nextSibling());t.parent()}return i}function Vr(e,t,n,r){let i=[],a,o,s,c;if(t.firstChild()){do{if(t.type.id===F.ListMark){if(r===`ordered`){let e=n.charCodeAt(t.to-1);e===41?c=`)`:e===46&&(c=`.`);let r=Number.parseInt(n.slice(t.from,t.to),10);s=Number.isFinite(r)?r:1}else{let e=n.charCodeAt(t.from);c=e===42?`*`:e===43?`+`:`-`}continue}if(r===`bullet`&&t.type.id===F.Task){let r=t.from,s=t.to;if(a=!1,t.firstChild()){if(t.type.id===F.TaskMarker){let e=n.charCodeAt(t.from+1);e===120?(a=!0,o=`x`):e===88&&(a=!0,o=`X`),r=t.to}t.parent()}yt(n.charCodeAt(r))&&(r+=1);let c=n.slice(r,s);i.push(c===``?e.paragraph():e.paragraph(c));continue}i.push(...Z(e,t,n))}while(t.nextSibling());t.parent()}return e.list({kind:a==null?r:`task`,order:r===`ordered`?s??1:null,checked:a??!1,collapsed:!1,marker:c,taskMarker:o},i)}function Hr(e,t,n){let r=``,i=``;if(t.firstChild()){do switch(t.type.id){case F.CodeInfo:r=n.slice(t.from,t.to);break;case F.CodeText:i=n.slice(t.from,t.to);break}while(t.nextSibling());t.parent()}return e.codeBlock({language:r},i)}function Ur(e,t,n){let r=0;if(t.firstChild()){do t.type.id===F.TableDelimiter&&(r=Wr(n.slice(t.from,t.to)));while(t.nextSibling());t.parent()}let i=[];if(t.firstChild()){do{let a=t.type.id;a===F.TableHeader?i.push(Gr(e,t,n,!0,r)):a===F.TableRow&&i.push(Gr(e,t,n,!1,r))}while(t.nextSibling());t.parent()}return e.table(i)}function Wr(e){return e.split(`|`).filter(e=>e.trim()!==``).length}function Gr(e,t,n,r,i){let a=Array(i).fill(``);if(t.firstChild()){let e=t.type.id===F.TableDelimiter,r=0;do if(t.type.id===F.TableDelimiter)r++;else if(t.type.id===F.TableCell){let o=r-+!!e;o>=0&&o<i&&(a[o]=n.slice(t.from,t.to).trim().replaceAll(String.raw`\|`,`|`))}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 Kr(e){return e.replace(/\n+$/u,``)}function qr(e){return e.split(`
19
- `).filter(e=>e.trim()!==``)}function Jr(e){let t=xr(Pr(e));if(Kr(t)===Kr(e))return`exact`;let n=qr(e),r=qr(t);return n.length===r.length&&n.every((e,t)=>e===r[t])?`normalizing`:`lossy`}export{vr as EDITOR_KEY_BINDINGS,e as Priority,Jr as checkRoundTrip,br as codeBlockLanguages,_r as defineBulletAfterHeading,Nn as defineEditorExtension,hr as defineEmbedPaste,sr as defineImage,ur as defineImageClickHandler,Bn as defineLinkClickHandler,qe as defineMarkMode,Ve as definePlaceholder,He as defineReadonly,Ln as defineWikilinkClickHandler,xr as docToMarkdown,Pr as markdownToDoc,ae as withPriority};
18
+ `,` `)}function Ir(e,t=Ut()){let[n,r]=Rr(e),i=r?e.slice(r):e,a=zr(t,Nt.parse(i).cursor(),i);return t.doc({frontmatter:n},a)}const Lr=/^---[ \t]*\r?\n([\s\S]*?\n)?---[ \t]*(?:\r?\n|$)/;function Rr(e){let t=Lr.exec(e);return t?[(t[1]??``).replace(/\r?\n$/,``),t[0].length]:[]}function zr(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 F.ATXHeading1:return[Q(e,t,n,1,!1)];case F.ATXHeading2:return[Q(e,t,n,2,!1)];case F.ATXHeading3:return[Q(e,t,n,3,!1)];case F.ATXHeading4:return[Q(e,t,n,4,!1)];case F.ATXHeading5:return[Q(e,t,n,5,!1)];case F.ATXHeading6:return[Q(e,t,n,6,!1)];case F.SetextHeading1:return[Q(e,t,n,1,!0)];case F.SetextHeading2:return[Q(e,t,n,2,!0)];case F.Paragraph:return[$(e,t,n)];case F.HTMLBlock:case F.CommentBlock:case F.ProcessingInstructionBlock:return[$(e,t,n)];case F.Blockquote:return[Vr(e,t,n)];case F.BulletList:return Hr(e,t,n,`bullet`);case F.OrderedList:return Hr(e,t,n,`ordered`);case F.FencedCode:case F.CodeBlock:return[Wr(e,t,n)];case F.HorizontalRule:{let r=n.slice(t.from,t.to).trimEnd();return[e.horizontalRule({marker:r===`---`?null:r})]}case F.Table:return[Gr(e,t,n)];case F.Task:return[$(e,t,n)];default:return n.slice(t.from,t.to).trim()===``?[]:(console.warn(`[meowdown] unsupported lezer block "${t.type.name}"`),[$(e,t,n)])}}function Q(e,t,n,r,i){let a=t.from,o=t.from,s=t.to,c=-1,l=-1;if(t.firstChild()){t.type.id===F.HeaderMark&&t.from===a&&(o=t.to);let e=-1,n=-1,r=-1;do e=t.type.id,n=t.from,r=t.to;while(t.nextSibling());e===F.HeaderMark&&n>o&&(s=n,c=n,l=r),t.parent()}let u=n.slice(o,s).trim(),d=i?Br(n,c,l)||1:null;return e.heading({level:r,setextUnderline:d},u)}function Br(e,t,n){if(t<0)return 0;let r=0;for(let i=t;i<n;i++){let t=e.charCodeAt(i);(t===61||t===45)&&r++}return r}function $(e,t,n){let r=t.from,i=t.to;if(t.firstChild()){let a=``,o=r;do t.type.id===F.QuoteMark&&(a+=n.slice(o,t.from),o=t.to,xt(n.charCodeAt(o))&&(o+=1));while(t.nextSibling());return t.parent(),a+=n.slice(o,i),a===``?e.paragraph():e.paragraph(a)}return e.paragraph(n.slice(r,i))}function Vr(e,t,n){let r=[];if(t.firstChild()){do{if(t.type.id===F.QuoteMark)continue;r.push(...Z(e,t,n))}while(t.nextSibling());t.parent()}return e.blockquote(r)}function Hr(e,t,n,r){let i=[];if(t.firstChild()){do t.type.id===F.ListItem&&i.push(Ur(e,t,n,r));while(t.nextSibling());t.parent()}return i}function Ur(e,t,n,r){let i=[],a,o,s,c;if(t.firstChild()){do{if(t.type.id===F.ListMark){if(r===`ordered`){let e=n.charCodeAt(t.to-1);e===41?c=`)`:e===46&&(c=`.`);let r=Number.parseInt(n.slice(t.from,t.to),10);s=Number.isFinite(r)?r:1}else{let e=n.charCodeAt(t.from);c=e===42?`*`:e===43?`+`:`-`}continue}if(r===`bullet`&&t.type.id===F.Task){let r=t.from,s=t.to;if(a=!1,t.firstChild()){if(t.type.id===F.TaskMarker){let e=n.charCodeAt(t.from+1);e===120?(a=!0,o=`x`):e===88&&(a=!0,o=`X`),r=t.to}t.parent()}xt(n.charCodeAt(r))&&(r+=1);let c=n.slice(r,s);i.push(c===``?e.paragraph():e.paragraph(c));continue}i.push(...Z(e,t,n))}while(t.nextSibling());t.parent()}return e.list({kind:a==null?r:`task`,order:r===`ordered`?s??1:null,checked:a??!1,collapsed:!1,marker:c,taskMarker:o},i)}function Wr(e,t,n){let r=``,i=``;if(t.firstChild()){do switch(t.type.id){case F.CodeInfo:r=n.slice(t.from,t.to);break;case F.CodeText:i=n.slice(t.from,t.to);break}while(t.nextSibling());t.parent()}return e.codeBlock({language:r},i)}function Gr(e,t,n){let r=0;if(t.firstChild()){do t.type.id===F.TableDelimiter&&(r=Kr(n.slice(t.from,t.to)));while(t.nextSibling());t.parent()}let i=[];if(t.firstChild()){do{let a=t.type.id;a===F.TableHeader?i.push(qr(e,t,n,!0,r)):a===F.TableRow&&i.push(qr(e,t,n,!1,r))}while(t.nextSibling());t.parent()}return e.table(i)}function Kr(e){return e.split(`|`).filter(e=>e.trim()!==``).length}function qr(e,t,n,r,i){let a=Array(i).fill(``);if(t.firstChild()){let e=t.type.id===F.TableDelimiter,r=0;do if(t.type.id===F.TableDelimiter)r++;else if(t.type.id===F.TableCell){let o=r-+!!e;o>=0&&o<i&&(a[o]=n.slice(t.from,t.to).trim().replaceAll(String.raw`\|`,`|`))}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 Jr(e){return e.replace(/\n+$/u,``)}function Yr(e){return e.split(`
19
+ `).filter(e=>e.trim()!==``)}function Xr(e){let t=Cr(Ir(e));if(Jr(t)===Jr(e))return`exact`;let n=Yr(e),r=Yr(t);return n.length===r.length&&n.every((e,t)=>e===r[t])?`normalizing`:`lossy`}export{br as EDITOR_KEY_BINDINGS,e as Priority,Xr as checkRoundTrip,Sr as codeBlockLanguages,yr as defineBulletAfterHeading,Fn as defineEditorExtension,_r as defineEmbedPaste,lr as defineImage,fr as defineImageClickHandler,Hn as defineLinkClickHandler,qe as defineMarkMode,Ve as definePlaceholder,He as defineReadonly,zn as defineWikilinkClickHandler,Cr as docToMarkdown,Ir as markdownToDoc,ae as withPriority};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meowdown/core",
3
3
  "type": "module",
4
- "version": "0.16.1",
4
+ "version": "0.16.2",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -24,7 +24,7 @@
24
24
  "@lezer/markdown": "^1.6.4",
25
25
  "@ocavue/utils": "^1.7.0",
26
26
  "@prosekit/core": "^0.13.0-beta.3",
27
- "@prosekit/extensions": "^0.17.5-beta.4",
27
+ "@prosekit/extensions": "^0.17.5-beta.5",
28
28
  "@prosekit/pm": "^0.1.19-beta.0",
29
29
  "prosemirror-highlight": "^0.15.2"
30
30
  },