@meowdown/core 0.12.0 → 0.14.0
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/README.md +3 -1
- package/dist/index.d.ts +13 -2
- package/dist/index.js +7 -7
- package/dist/style.css +17 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -55,10 +55,12 @@ Selection colors are standalone variables, not derived from `--meowdown-accent`,
|
|
|
55
55
|
|
|
56
56
|
Tags (`#tag`) render as pills via the `.md-tag` class, tinted from `--meowdown-accent`.
|
|
57
57
|
|
|
58
|
-
Wikilinks (`[[target]]`) render
|
|
58
|
+
Wikilinks (`[[target]]`/`[[target|alias]]`) render in place via a mark view as an immutable label (the alias, or the target when there is no alias), with the raw source hidden in hide and focus modes and shown dimmed in show mode. The label uses the `.md-wikilink-label` class and the raw source the `.md-wikilink-source` class, both dashed-underlined and colored by `--meowdown-accent`. In every mark mode the link is a single immutable caret stop: arrowing onto it selects the whole source (ringed with `--meowdown-node-outline` in hide and focus, the native selection over the visible source in show), and Backspace/Delete remove it as a unit. Wire click navigation with `defineWikilinkClickHandler(({ target, event }) => ...)` (or `@meowdown/react`'s `onWikilinkClick` prop).
|
|
59
59
|
|
|
60
60
|
Markdown links (`[text](url)`) render the label as an `<a href>` with the `.md-link` class, colored by `--meowdown-accent`; the `[`, `]`, and `(url)` syntax dims in show mode and hides in hide and focus modes. Wire click handling with `defineLinkClickHandler(({ href, event }) => ...)` (or `@meowdown/react`'s `onLinkClick` prop). A plain click inside a link the caret already sits in just places the caret; `Mod`-click always fires.
|
|
61
61
|
|
|
62
|
+
Bare URLs autolink without `[text](url)` brackets and share the same `.md-link` rendering and click handling: a scheme URL (`https://example.com`), an angle autolink (`<https://example.com>`), a `www.` host (`www.example.com`), an email (`me@example.com`), and a bare domain (`google.com`, `sub.domain.io/path`). Bare domains are matched against a curated list of common TLDs, so file names and prose keep their dots without linkifying (`README.md`, `node.js`, `i.e.` stay plain text); reach for `[text](url)` or `<url>` to link anything off that list. Autolinks are derived live from the text, so editing one re-evaluates it; the caret sitting inside a link never un-links it.
|
|
63
|
+
|
|
62
64
|
Inline images (``) stay literal text and render in place via a mark view, with the raw `` hidden in hide and focus modes. Add it with `defineImage({ resolveImageUrl, onImagePaste })` (or `@meowdown/react`'s image props). `resolveImageUrl` is optional and defaults to showing http(s) URLs as-is. Wire click handling with `defineImageClickHandler(({ src, alt, event }) => ...)` (or `@meowdown/react`'s `onImageClick` prop).
|
|
63
65
|
|
|
64
66
|
Pasting a lone tweet or YouTube link can auto-embed it. `defineEmbedPaste()` (or `@meowdown/react`'s `embedPaste` prop) rewrites the pasted link to `` so it renders as an embed; one undo turns the embed back into the raw link. It is not part of `defineEditorExtension`; add it explicitly.
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,13 @@ interface MdImageSourceAttrs {
|
|
|
16
16
|
interface MdLinkTextAttrs {
|
|
17
17
|
href: string;
|
|
18
18
|
}
|
|
19
|
+
interface MdWikilinkSourceAttrs {
|
|
20
|
+
target: string;
|
|
21
|
+
}
|
|
22
|
+
interface MdWikilinkViewAttrs {
|
|
23
|
+
target: string;
|
|
24
|
+
display: string;
|
|
25
|
+
}
|
|
19
26
|
//#endregion
|
|
20
27
|
//#region src/extensions/extension.d.ts
|
|
21
28
|
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<{
|
|
@@ -52,7 +59,11 @@ declare function defineEditorExtensionImpl(): import("@prosekit/core").Union<rea
|
|
|
52
59
|
};
|
|
53
60
|
}>, import("@prosekit/core").Extension<{
|
|
54
61
|
Marks: {
|
|
55
|
-
|
|
62
|
+
mdWikilinkSource: MdWikilinkSourceAttrs;
|
|
63
|
+
};
|
|
64
|
+
}>, import("@prosekit/core").Extension<{
|
|
65
|
+
Marks: {
|
|
66
|
+
mdWikilinkView: MdWikilinkViewAttrs;
|
|
56
67
|
};
|
|
57
68
|
}>, import("@prosekit/core").Extension<{
|
|
58
69
|
Marks: {
|
|
@@ -69,7 +80,7 @@ declare function defineEditorExtensionImpl(): import("@prosekit/core").Union<rea
|
|
|
69
80
|
toggleCode: [];
|
|
70
81
|
toggleDel: [];
|
|
71
82
|
};
|
|
72
|
-
}>, import("@prosekit/core").PlainExtension]>, import("@prosekit/core").PlainExtension, import("@prosekit/core").BaseCommandsExtension, import("@prosekit/core").HistoryExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension]>;
|
|
83
|
+
}>, import("@prosekit/core").PlainExtension]>, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").BaseCommandsExtension, import("@prosekit/core").HistoryExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension]>;
|
|
73
84
|
type EditorExtension = ReturnType<typeof defineEditorExtensionImpl>;
|
|
74
85
|
declare function defineEditorExtension(): EditorExtension;
|
|
75
86
|
type TypedEditor = Editor<EditorExtension>;
|
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 ne,toggleNode as re,union as m,unsetBlockType as ie,withPriority as ae,withPriority as h,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{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{Plugin as g,PluginKey as _,TextSelection as v}from"@prosekit/pm/state";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 y}from"@ocavue/utils";import{defineTableCellSpec as Me,defineTableCommands as Ne,defineTableDropIndicator as Pe,defineTableEditingPlugin as Fe,defineTableHeaderCellSpec as Ie,defineTableRowSpec as Le,defineTableSpec as Re}from"@prosekit/extensions/table";import{Decoration as b,DecorationSet as x}from"@prosekit/pm/view";import{closeHistory as S}from"@prosekit/pm/history";import{definePlaceholder as ze}from"@prosekit/extensions/placeholder";import{defineReadonly as Be}from"@prosekit/extensions/readonly";const C=new Map;async function Ve(e){let t=ve.matchLanguageName(ye,e,!0);if(!t){C.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),C.set(e,null)}if(C.has(e))return;if(!n){C.set(e,null);return}let r=xe({parse:e=>n.language.parser.parse(e.content),highlighter:be});C.set(e,r)}const He=e=>{let t=e.language?.trim();if(!t)return[];let n=C.get(t);return n?n(e):n===null?[]:Ve(t)};function Ue(){return le({parser:He,nodeTypes:[`codeBlock`]})}function w(e){return oe(re({type:`heading`,attrs:{level:e}}))}const We=(e,t,n)=>te(e,n)?.parent.type.name===`heading`?ie()(e,t,n):!1;function Ge(){return c({"Mod-1":w(1),"Mod-2":w(2),"Mod-3":w(3),"Mod-4":w(4),"Mod-5":w(5),"Mod-6":w(6),Backspace:We})}function Ke(){return m(we(),Ce(),Se(),Ge())}function qe(e){let[t,n,r]=e;return[t,n,r.map(e=>e.toJSON())]}function Je(e,t){let[n,r,i]=t;return[n,r,i.map(t=>ke.fromJSON(e,t))]}var T=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 Ye;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(qe)}}static fromJSON(t,n){let r=n.chunks;return new e(r.map(e=>Je(t,e)))}};Ee.jsonID(`batchSetMark`,T);const Ye=new T([]);function Xe(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 Ze(e){return e>=65&&e<=90||e>=97&&e<=122||e>127&&/\p{L}/u.test(String.fromCharCode(e))}const Qe={defineNodes:[{name:`Hashtag`}],parseInline:[{name:`Hashtag`,parse(e,t,n){if(t!==35||!/\s|^$/.test(e.slice(n-1,n)))return-1;let r=n+1,i=!1;for(;r<e.end;){let t=e.char(r);if(!Xe(t))break;i||=Ze(t),r++}return i?e.addElement(e.elt(`Hashtag`,n,r)):-1}}]},$e={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 et(e){return e.end}const E=je.configure([Ae,Qe,$e]),tt=E.configure({parseInline:[{name:`SkipInline`,before:`Escape`,parse:et}]});function D(e){return E.parseInline(e,0)}function O(e,t,n=[]){for(let r of e)t(r)&&n.push(r),O(r.children,t,n);return n}function nt(e){let t={};for(let n of e.nodeSet.types)t[n.name]=n.id;return t}const k=nt(E);function rt(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}const A=new Map([[k.Emphasis,`mdEm`],[k.StrongEmphasis,`mdStrong`],[k.InlineCode,`mdCode`],[k.Strikethrough,`mdDel`],[k.EmphasisMark,`mdMark`],[k.CodeMark,`mdMark`],[k.LinkMark,`mdMark`],[k.StrikethroughMark,`mdMark`],[k.URL,`mdLinkUri`],[k.Hashtag,`mdTag`],[k.Wikilink,`mdWikilink`],[k.WikilinkMark,`mdMark`]]);function it(e,t){let n=D(t),r=[];return j(n,[],0,t.length,t,e,r),r}function at(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))return`https://${e}`}function j(e,t,n,r,i,a,o){let s=n;for(let n of e){if(n.from>s&&N(o,s,n.from,t),n.type===k.Link)M(n,t,i,a,o);else if(n.type===k.Image)ot(n,t,i,a,o);else if(n.type===k.URL){let e=at(i.slice(n.from,n.to)),r=e?a.mdLinkText.create({href:e}):a.mdLinkUri.create();N(o,n.from,n.to,[...t,r])}else{let e=A.get(n.type),r=e?[...t,a[e].create()]:t;n.children.length===0?N(o,n.from,n.to,r):j(n.children,r,n.from,n.to,i,a,o)}s=n.to}s<r&&N(o,s,r,t)}function M(e,t,n,r,i){let a=-1,o=null,s=0;for(let t of e.children)t.type===k.LinkMark?(s++,s===2&&(a=t.from)):t.type===k.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;N(i,d,a.from,e)}let e=u(a.from)?[...t,l]:t,o=A.get(a.type),s=o?[...e,r[o].create()]:e;a.children.length===0?N(i,a.from,a.to,s):j(a.children,s,a.from,a.to,n,r,i),d=a.to}d<e.to&&N(i,d,e.to,t)}function ot(e,t,n,r,i){let a=e.children.find(e=>e.type===k.URL);if(!a){M(e,t,n,r,i);return}let o=e.children.filter(e=>e.type===k.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&&N(i,p,t.from,f(p));let e=A.get(t.type),a=e?[...f(t.from),r[e].create()]:f(t.from);t.children.length===0?N(i,t.from,t.to,a):j(t.children,a,t.from,t.to,n,r,i),p=t.to}p<e.to&&N(i,p,e.to,f(p))}function N(e,t,n,r){if(t>=n)return;let i=e.at(-1);if(i&&i[1]===t&&rt(i[2],r)){e[e.length-1]=[i[0],n,i[2]];return}e.push([t,n,r])}const st=y(()=>{let e=Jt().schema;if(e==null)throw Error(`Unexpected empty schema`);return e}),ct=y(()=>r(st())),P=`meowdown_mark_builders`;function lt(e){let t=e.cached[P];if(t)return t;let r=n(e);return e.cached[P]=r,r}const F=`inline-marks-applied`,I=new WeakMap;let ut=0,dt=0;function ft(e,t,n){let r=I.get(e);if(r?dt++:(ut++,r=it(lt(n),e.textContent),I.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 pt(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 mt(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=ft(t,r+1,e.schema);return i.length>0&&n.push(...i),!1}),n}function ht(){return new g({key:new _(`inline-mark`),appendTransaction(e,t,n){for(let t of e)if(t.getMeta(F))return null;let r=mt(n,pt(e,n));if(r.length===0)return null;let i=n.tr.step(new T(r));return i.setMeta(F,!0),i.setMeta(`addToHistory`,!1),i},view(e){return e.dispatch(gt(e.state)),{}}})}function gt(e){return e.tr.setMeta(`inline-marks-trigger`,!0)}function _t(){return d(ht())}function vt(){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 yt(){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 bt(){return l({name:`mdMark`,inclusive:!1,toDOM:()=>[`span`,{class:`md-mark`},0],parseDOM:[{tag:`span.md-mark`}]})}function xt(){return l({name:`mdEm`,toDOM:()=>[`em`,0],parseDOM:[{tag:`em`}]})}function St(){return l({name:`mdStrong`,toDOM:()=>[`strong`,0],parseDOM:[{tag:`strong`}]})}function Ct(){return l({name:`mdCode`,toDOM:()=>[`code`,0],parseDOM:[{tag:`code`}]})}function wt(){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 Tt(){return l({name:`mdLinkUri`,inclusive:!1,toDOM:()=>[`span`,{class:`md-link-uri`},0],parseDOM:[{tag:`span.md-link-uri`}]})}function Et(){return l({name:`mdDel`,toDOM:()=>[`del`,0],parseDOM:[{tag:`del`}]})}function Dt(){return l({name:`mdTag`,toDOM:()=>[`span`,{class:`md-tag`},0],parseDOM:[{tag:`span.md-tag`}]})}function Ot(){return l({name:`mdWikilink`,inclusive:!1,toDOM:()=>[`span`,{class:`md-wikilink`},0],parseDOM:[{tag:`span.md-wikilink`}]})}function kt(){return m(bt(),xt(),St(),Ct(),wt(),Tt(),Et(),Dt(),Ot(),yt(),vt())}function At(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 L={em:{node:k.Emphasis,delim:`*`},strong:{node:k.StrongEmphasis,delim:`**`},code:{node:k.InlineCode,delim:"`"},del:{node:k.Strikethrough,delim:`~~`}},jt=new Set([k.EmphasisMark,k.CodeMark,k.LinkMark,k.StrikethroughMark]);function R(e){return[e.children[0],e.children.at(-1)]}function Mt(e){let{type:t,children:n}=e;if(t===k.Emphasis||t===k.StrongEmphasis||t===k.Strikethrough)return[n[0].to,n.at(-1).from];if(t===k.Link||t===k.Image){let e=n.find((e,t)=>t>0&&e.type===k.LinkMark);return e?[n[0].to,e.from]:null}return null}function z(e,t,n){for(let r of e){if(r.to<=t||r.from>=n||t<=r.from&&r.to<=n)continue;let i=Mt(r);return i&&i[0]<=t&&n<=i[1]?z(r.children,t,n):z(e,Math.min(t,r.from),Math.max(n,r.to))}return[t,n]}function Nt(e,t,n){for(let r of e)if(!(r.to<=t||r.from>=n)&&(t>r.from||r.to>n))return Nt(e,Math.min(t,r.from),Math.max(n,r.to));return[t,n]}const B=e=>e===` `||e===` `;function Pt(e,t,n){for(;t<n&&B(e[t]);)t++;for(;n>t&&B(e[n-1]);)n--;return[t,n]}function Ft(e,t,n,r){let i=O(D(e),e=>e.type===r.node||jt.has(e.type));for(let r=t;r<n;r++)if(!B(e[r])&&i.every(e=>!(e.from<=r&&r<e.to)))return!1;return!0}function It(e,t,n,r,i){let a=D(e),o=O(a,e=>e.type===r.node);return i?zt(e,o,t,n):Lt(e,a,o,t,n,r)}function Lt(e,t,n,r,i,a){for(let e=0;e!==i-r;){e=i-r,[r,i]=z(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]=R(e);o.push({from:t.from,to:t.to,insert:``}),o.push({from:n.from,to:n.to,insert:``})}let[s,c]=Rt(e,r,i,o,a);return o.push({from:r,to:r,insert:s},{from:i,to:i,insert:c}),o}function Rt(e,t,n,r,i){if(i.node!==k.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(At(a)+1),s=a.startsWith("`")||a.endsWith("`")?` `:``;return[o+s,s+o]}function zt(e,t,n,r){let i=[];for(let a of t){if(a.to<=n||a.from>=r)continue;let[t,o]=R(a),s=Math.max(n,t.to),c=Math.min(r,o.from);for(s>=c&&([s,c]=[t.to,o.from]),[s,c]=Nt(a.children.slice(1,-1),s,c);s>t.to&&B(e[s-1]);)s--;for(;c<o.from&&B(e[c]);)c++;s>t.to?i.push({from:s,to:s,insert:e.slice(o.from,o.to)}):i.push({from:t.from,to:t.to,insert:``}),c<o.from?i.push({from:c,to:c,insert:e.slice(t.from,t.to)}):i.push({from:o.from,to:o.to,insert:``})}return i}function Bt(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=D(e),o=O(a,e=>e.type===n.node).findLast(e=>e.from<=t&&t<=e.to);if(o){let[e,n]=R(o);return{kind:`move`,pos:t===o.from?e.to:t===o.to?n.from:o.to}}return Vt(a,t)||e[t-1]===r[0]||e[t]===r[0]?null:{kind:`insert`,pos:t}}function Vt(e,t){for(let n of e)if(n.from<t&&t<n.to){let e=Mt(n);return!e||t<e[0]||t>e[1]?!0:Vt(n.children,t)}return!1}function V(e){return(t,n)=>{if(t.selection.empty)return Ht(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]=Pt(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:Ft(a,c,l,e)}),!1});let c=s.length>0&&s.every(e=>e.active),l=s.filter(e=>c||!e.active).flatMap(t=>It(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(v.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 Ht(e,t,n){let{$from:r}=t.selection,i=r.parent;if(!i.isTextblock||i.type.spec.code)return!1;let a=Bt(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(v.create(o.doc,i+a.pos)),a.kind===`insert`&&(o.insertText(e.delim+e.delim,i+a.pos),o.setSelection(v.create(o.doc,i+a.pos+e.delim.length))),n(o.scrollIntoView())}return!0}function Ut(){return o({toggleEm:()=>V(L.em),toggleStrong:()=>V(L.strong),toggleCode:()=>V(L.code),toggleDel:()=>V(L.del)})}function Wt(){return c({"Mod-b":V(L.strong),"Mod-i":V(L.em),"Mod-e":V(L.code),"Mod-Shift-x":V(L.del)})}function Gt(){return m(Ut(),Wt())}function Kt(){return m(Re(),Le(),Me(),Ie(),Fe({allowTableNodeSelection:!0}),Ne(),Pe())}function qt(){return m(he(),ue(),ge(),se(),pe(),Ke(),Kt(),ce(),fe(),kt(),Ue(),_t(),Gt(),a(),i(),s(),de(),_e(),me())}function Jt(){return qt()}const Yt=new Set([`mdStrong`,`mdEm`,`mdCode`,`mdDel`,`mdLinkText`,`mdLinkUri`,`mdWikilink`,`mdImageSource`]),Xt=new Set([`mdMark`,`mdLinkUri`]),Zt=new Set([`mdMark`,`mdLinkUri`]),H=new Set([`mdLinkText`,`mdLinkUri`]),Qt=new Set([`mdStrong`,`mdEm`,`mdCode`,`mdDel`,`mdWikilink`]),$t=new _(`mark-mode`);function en(e){return new g({key:$t,state:{init:()=>e,apply:(e,t)=>t},props:{attributes:{"data-mark-mode":e},decorations:e===`focus`?e=>an(e):void 0,clipboardTextSerializer:e===`show`?void 0:rn}})}function tn(e){return d(en(e))}function nn(e){return $t.getState(e.state)}function rn(e){let t=[];return e.content.forEach(e=>{let n=[];e.descendants(e=>!e.isText||!e.text?!0:(!e.marks.some(e=>e.type.name===`mdImageSource`)&&e.marks.some(e=>Zt.has(e.type.name))||n.push(e.text),!1)),t.push(n.join(``))}),t.join(`
|
|
2
|
-
`)}function an(e){let{$anchor:t,empty:n}=e.selection;if(!n)return x.empty;let r=t.parent;if(!r.isTextblock)return;let i=t.start(),a=t.parentOffset,o=on(r,a);if(o.size===0)return x.empty;let s=[],c=new Set,l=!1;for(let e of o)if(H.has(e)){if(l)continue;l=!0,cn(r,i,a,s,c)}else sn(r,i,e,a,s,c);let u=s.map(([e,t])=>b.inline(e,t,{class:`show`}));return x.create(e.doc,u)}function on(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;Yt.has(e)&&n.add(e)}r=i}),n}function sn(e,t,n,r,i,a){let o=t,s=0,c=-1,l=-1;e.forEach(u=>{let d=u.marks.some(e=>e.type.name===n);d&&c===-1&&(c=o,l=s),!d&&c!==-1&&(r>=l&&r<=s&&U(e,t,c,o,i,a),c=-1,l=-1),o+=u.nodeSize,s+=u.nodeSize}),c!==-1&&r>=l&&r<=s&&U(e,t,c,o,i,a)}function cn(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=>H.has(e.type.name))){o=t;break}s=i}if(o===-1)return;let c=o;for(;c>0&&ln(e.child(c-1));)c--;let l=o;for(;l<a-1&&ln(e.child(l+1));)l++;let u=t;for(let t=0;t<c;t++)u+=e.child(t).nodeSize;let d=u;for(let t=c;t<=l;t++)d+=e.child(t).nodeSize;U(e,t,u,d,r,i)}function ln(e){let t=!1,n=!1,r=!1;for(let i of e.marks){let e=i.type.name;e===`mdMark`?t=!0:H.has(e)?n=!0:Qt.has(e)&&(r=!0)}return!!(n||t&&!r)}function U(e,t,n,r,i,a){let o=t;e.forEach(e=>{let t=o,s=o+e.nodeSize;if(t>=n&&s<=r)for(let n of e.marks){let e=n.type.name;if(Xt.has(e)){let e=`${t}_${s}`;a.has(e)||(a.add(e),i.push([t,s]));break}}o=s})}function W(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)}function un(e){let t;return d(new g({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 _(`meowdown-wikilink-click`);function fn(e,t){let n=W(e,t,`mdWikilink`);if(n)return{from:n.from,to:n.to,target:pn(e.doc.textBetween(n.from,n.to))}}function pn(e){let t=e.replace(/^\[\[/u,``).replace(/\]\]$/u,``),n=t.indexOf(`|`);return(n>=0?t.slice(0,n):t).trim()}function mn(e){return un({key:dn,selector:`.md-wikilink`,preventDefault:!1,findHitAt:(e,t)=>{let n=fn(e,t);return n?{from:n.from,to:n.to,payload:n.target}:void 0},onClick:(t,n)=>e({target:t,event:n})})}const hn=new _(`meowdown-link-click`);function gn(e,t){let n=W(e,t,`mdLinkText`);if(n)return{from:n.from,to:n.to,href:n.mark.attrs.href}}function _n(e){return un({key:hn,selector:`.md-link`,preventDefault:!0,findHitAt:(e,t)=>{let n=gn(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 yn=/^(?:www\.|mobile\.)?(?:twitter\.com|x\.com)$/i,bn=/\/status(?:es)?\/(\d+)/;function xn(e){let t;try{t=new URL(e)}catch{return}if(yn.test(t.hostname))return bn.exec(t.pathname)?.[1]}const Sn=e=>{let t=xn(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`),Cn(n),n}}};function Cn(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 wn=/^(?:www\.|m\.)?(?:youtube\.com|youtube-nocookie\.com)$/i,Tn=/^(?:www\.)?youtu\.be$/i,En=/^[\w-]{11}$/;function Dn(e){let t;try{t=new URL(e)}catch{return}let n=null;if(Tn.test(t.hostname))n=t.pathname.slice(1);else if(wn.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||!En.test(n))return;let r=t.searchParams.get(`start`)??t.searchParams.get(`t`),i=r?On(r):void 0;return{videoId:n,startSeconds:i}}function On(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 kn=[e=>{let t=Dn(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}}},Sn];function An(e){for(let t of kn){let n=t(e);if(n)return n}}function G(e,t){return W(e,t,`mdImageSource`)}function K(e,t){let n=G(e,t);return n&&n.to===t?n:void 0}function q(e,t){let n=G(e,t);return n&&n.from===t?n:void 0}function J(e){let{from:t,to:n,empty:r}=e.selection;if(r)return;let i=G(e,t);return i&&i.from===t&&i.to===n?i:void 0}function Y(e){return!!e&&nn(e)===`hide`}function jn(e,t){return v.create(e.doc,t.from,t.to)}const Mn=(e,t,n)=>{if(!Y(n)||!ne(e.selection))return!1;let r=e.selection;if(r.empty){let n=q(e,r.from);if(n)return t?.(e.tr.setSelection(jn(e,n))),!0;if(K(e,r.from)){let n=e.doc.resolve(r.from);return r.from>=n.end()?!1:(t?.(e.tr.setSelection(v.create(e.doc,r.from+1))),!0)}return!1}let i=J(e);return i?(t?.(e.tr.setSelection(v.create(e.doc,i.to))),!0):!1},Nn=(e,t,n)=>{if(!Y(n)||!ne(e.selection))return!1;let r=e.selection;if(r.empty){let n=K(e,r.from);return n?(t?.(e.tr.setSelection(jn(e,n))),!0):!1}let i=J(e);return i?(t?.(e.tr.setSelection(v.create(e.doc,i.from))),!0):!1},Pn=(e,t,n)=>{if(!Y(n)||!e.selection.empty)return!1;let r=e.selection.from,i=K(e,r);return i?(t?.(e.tr.delete(i.from,i.to)),!0):!q(e,r)||r<=e.doc.resolve(r).start()?!1:(t?.(e.tr.delete(r-1,r)),!0)},Fn=(e,t,n)=>{if(!Y(n)||!e.selection.empty)return!1;let r=e.selection.from,i=q(e,r);return i?(t?.(e.tr.delete(i.from,i.to)),!0):!K(e,r)||r>=e.doc.resolve(r).end()?!1:(t?.(e.tr.delete(r,r+1)),!0)};function In(){return new g({key:new _(`image-selection`),props:{decorations:e=>{let t=J(e);return t?x.create(e.doc,[b.inline(t.from,t.to,{class:`md-image-selected`})]):null}}})}function Ln(){return m(h(c({ArrowRight:Mn,ArrowLeft:Nn,Backspace:Pn,Delete:Fn}),t.high),d(In()))}function Rn(e){return/^https?:\/\//i.test(e)?e:void 0}function zn(e,t,n){let r=An(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??Rn)(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 Bn(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=zn(n.src,n.alt,e);return a&&(a.contentEditable=`false`,r.appendChild(a)),{dom:r,contentDOM:i,ignoreMutation:e=>!i.contains(e.target)}}}function Vn(e){return e?Array.from(e.files).filter(e=>e.type.startsWith(`image/`)):[]}const Hn=e=>{console.error(`[meowdown] failed to save pasted image:`,e)};async function Un(e,t,n,r=Hn,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=``,s=a==null?e.state.tr.insertText(o):e.state.tr.insertText(o,a);e.dispatch(s),a!=null&&(a+=o.length)}}function Wn(e){return new g({key:new _(`image-input`),props:{handlePaste:(t,n)=>{let r=Vn(n.clipboardData),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(Un(t,r,i,a),!0)},handleDrop:(t,n)=>{let r=Vn(n.dataTransfer),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(Un(t,r,i,a,t.posAtCoords({left:n.clientX,top:n.clientY})?.pos),!0)}}})}function Gn(e={}){return m(u({name:`mdImageView`,constructor:Bn(e)}),Ln(),h(d(Wn(e)),t.high))}const Kn=new _(`meowdown-image-click`);function qn(e,t){let n=W(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 Jn(e){return d(new g({key:Kn,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=qn(t.state,t.posAtDOM(a,0));return o?(e({src:o.src,alt:o.alt,event:r}),!0):!1}}}))}const Yn=new _(`meowdown-embed-paste`);function Xn(e){let t=e.trim();if(!(!t||/\s/.test(t)))return An(t)?t:void 0}function Zn(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(``,n,n+t.length);e.dispatch(S(i))}function Qn(){return d(new g({key:Yn,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=Xn(r);return i?(Zn(e,i),!0):!1}}}))}const $n=(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(v.create(s.doc,o+2)),t(s.scrollIntoView())}return!0};function er(){return h(c({Enter:$n}),t.high)}const tr={"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`},nr=new Set([`MscGen`,`Xù`,`MsGenny`,`Angular Template`,`Brainfuck`,`Esper`,`Oz`,`Factor`,`Squirrel`,`Yacas`,`mIRC`,`FCL`,`ECL`,`MUMPS`,`Pig`,`Asterisk`,`Z80`]),rr=ye.map(e=>e.name).filter(e=>!nr.has(e)).map(e=>({label:e,value:e.toLowerCase()})).concat({label:`Plain text`,value:``}).sort((e,t)=>e.label.localeCompare(t.label));function ir(e){let t=new or;return sr(e,t),t.finish()}const ar=[``,`# `,`## `,`### `,`#### `,`##### `,`###### `];var or=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,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=``,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(``,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(`
|
|
3
3
|
`)){this.parts.push(e);return}let t=e.split(`
|
|
4
4
|
`);for(let e=0;e<t.length;e++)e>0&&this.parts.push(`
|
|
5
5
|
`,this.linePrefix),t[e]!==``&&this.parts.push(t[e])}closeBlock(){this.atLineStart||this.parts.push(`
|
|
6
6
|
`),this.atLineStart=!0,this.deferredBlankPrefix=this.linePrefix}suppressBlank(){this.deferredBlankPrefix=null}withPrefix(e,t,n){let r=this.linePrefix,i=this.pendingFirst;if(this.linePrefix=r+e,t!==null){let e=i??r;this.pendingFirst=e+t}n(),this.linePrefix=r,this.pendingFirst=i}finish(){return this.parts.join(``).replace(/\s+$/,``)+`
|
|
7
7
|
`}emitDeferredBlankLine(){let e=this.deferredBlankPrefix;e!==null&&(this.parts.push(e.trimEnd(),`
|
|
8
|
-
`),this.deferredBlankPrefix=null)}};function
|
|
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(`
|
|
9
9
|
`),t.write(r),t.write(`
|
|
10
|
-
`),t.write(i),t.closeBlock()}function
|
|
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(`
|
|
11
11
|
`),t.write(o);for(let e=0;e<n;e++)e!==a&&(t.write(`
|
|
12
|
-
`),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(`
|
|
13
13
|
`)?t:t.replaceAll(`|`,String.raw`\|`).replaceAll(`
|
|
14
|
-
`,` `)}function
|
|
15
|
-
`).filter(e=>e.trim()!==``)}function
|
|
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};
|
package/dist/style.css
CHANGED
|
@@ -379,13 +379,17 @@ img.ProseMirror-separator {
|
|
|
379
379
|
padding: .1em .35em;
|
|
380
380
|
}
|
|
381
381
|
|
|
382
|
-
.ProseMirror .md-wikilink {
|
|
382
|
+
.ProseMirror .md-wikilink-label, .ProseMirror .md-wikilink-source {
|
|
383
383
|
color: var(--meowdown-accent);
|
|
384
384
|
text-underline-offset: 2px;
|
|
385
385
|
cursor: pointer;
|
|
386
386
|
text-decoration: underline 1px dashed;
|
|
387
387
|
}
|
|
388
388
|
|
|
389
|
+
.ProseMirror[data-mark-mode="show"] .md-wikilink-label {
|
|
390
|
+
display: none;
|
|
391
|
+
}
|
|
392
|
+
|
|
389
393
|
.ProseMirror .md-image-preview-img {
|
|
390
394
|
vertical-align: bottom;
|
|
391
395
|
display: inline-block;
|
|
@@ -417,11 +421,19 @@ img.ProseMirror-separator {
|
|
|
417
421
|
display: block;
|
|
418
422
|
}
|
|
419
423
|
|
|
420
|
-
.ProseMirror[data-mark-mode="hide"] .md-image-view:has(.md-
|
|
424
|
+
.ProseMirror[data-mark-mode="hide"] .md-image-view:has(.md-atomic-selected) .md-image-preview, .ProseMirror[data-mark-mode="hide"] .md-wikilink-view:has(.md-atomic-selected) .md-wikilink-label, .ProseMirror[data-mark-mode="focus"] .md-wikilink-view:has(.md-atomic-selected) .md-wikilink-label {
|
|
421
425
|
outline: 2px solid var(--meowdown-node-outline);
|
|
422
426
|
outline-offset: 2px;
|
|
423
|
-
border-radius: var(--meowdown-image-radius, .5rem);
|
|
424
427
|
background: var(--meowdown-node-selection);
|
|
428
|
+
border-radius: .25rem;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
.ProseMirror[data-mark-mode="hide"] .md-image-view:has(.md-atomic-selected) .md-image-preview {
|
|
432
|
+
border-radius: var(--meowdown-image-radius, .5rem);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
.ProseMirror:has(.md-atomic-selected) {
|
|
436
|
+
caret-color: #0000;
|
|
425
437
|
}
|
|
426
438
|
|
|
427
439
|
.ProseMirror .prosekit-placeholder:before {
|
|
@@ -444,18 +456,10 @@ img.ProseMirror-separator {
|
|
|
444
456
|
text-decoration: underline 1px;
|
|
445
457
|
}
|
|
446
458
|
|
|
447
|
-
.ProseMirror[data-mark-mode="hide"] .md-mark, .ProseMirror[data-mark-mode="hide"] .md-link-uri, .ProseMirror[data-mark-mode="focus"] .md-mark, .ProseMirror[data-mark-mode="focus"] .md-link-uri {
|
|
448
|
-
display: none;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
.ProseMirror[data-mark-mode="focus"] .md-mark:has(.show), .ProseMirror[data-mark-mode="focus"] .md-link-uri:has(.show) {
|
|
452
|
-
display: inline;
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
.ProseMirror[data-mark-mode="hide"] .md-image-source, .ProseMirror[data-mark-mode="focus"] .md-image-source {
|
|
459
|
+
.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 {
|
|
456
460
|
display: none;
|
|
457
461
|
}
|
|
458
462
|
|
|
459
|
-
.ProseMirror[data-mark-mode="focus"] .md-image-source:has(.show) {
|
|
463
|
+
.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) {
|
|
460
464
|
display: inline;
|
|
461
465
|
}
|