rme 0.3.1-beta.3 → 0.3.3
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.mjs +53 -95
- package/package.json +7 -7
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o,r)=>{for(var n=r>1?void 0:r?qa(t,o):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(n=(r?s(t,o,n):s(n))||n);return r&&n&&Ua(t,o,n),n};import{createTheme as Io}from"@drl990114/codemirror-themes";import{indentWithTab as rl}from"@codemirror/commands";import{ensureSyntaxTree as nl}from"@codemirror/language";import{languages as il}from"@codemirror/language-data";import{SearchQuery as Rn}from"@codemirror/search";import{EditorState as Sn,Compartment as _o,RangeSetBuilder as sl,StateEffect as al,StateField as ll}from"@codemirror/state";import{Decoration as Oo,EditorView as Tn,keymap as cl,ViewPlugin as dl}from"@codemirror/view";import{assertGet as ml,isPromise as pl,replaceNodeAtPosition as ul}from"@rme-sdk/core";import{exitCode as vn}from"@rme-sdk/pm/commands";import{redo as Mn,undo as fl}from"@rme-sdk/pm/history";import{Selection as hl,TextSelection as Pn}from"@rme-sdk/pm/state";import{nanoid as gl}from"nanoid";import{redo as Qa,undo as Xa}from"@codemirror/commands";function St(){return navigator.clipboard.read().then(async e=>{let t="",o="",r=e.find(a=>a.types.includes("text/html")),n=e.find(a=>a.types.includes("text/plain")),i=async()=>{r&&(t=await(await r.getType("text/html")).text())},s=async()=>{n&&(o=await(await n.getType("text/plain")).text())};return await Promise.all([i(),s()]),{html:t,text:o}})}import{EditorSelection as Pe}from"@codemirror/state";var Ga=/^\[([^\]]+)\]\((.+?)\)|(((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()[\]{};:'".,<>?«»“”‘’])))|([a-z0-9.\-_+]+?@[a-z0-9.\-_+]+\.[a-z]{2,7})$/i;function nn(e,t){let o=t.type==="image"?"!":"";return t.clipboardReadFunction?.().then(({text:r})=>{let n=Ga.test(r)?r:"",i=e.state.changeByRange(({from:s,to:a})=>{let l=e.state.sliceDoc(s,a),c=1;return l.length>0&&n.length>0?c=4+l.length+n.length:l.length>0&&n.length===0&&(c=3+l.length),t.type==="image"&&c++,{changes:{from:s,to:a,insert:`${o}[${l}](${n})`},range:Pe.cursor(s+c)}});e.dispatch(i)}).catch(r=>console.error(r)),!0}function ja(e){let t;return(t=/^#{1,6}\s+/.exec(e))!==null?e.substring(t[0].length):(t=/^(\s{,3})>\s/.exec(e))!==null?t[1]+e.substring(t[0].length):e}function Ne(e,t){let o=e.state.changeByRange(r=>{let n=e.state.doc.lineAt(r.from).number,i=e.state.doc.lineAt(r.to).number,s=[],a=0;for(let l=n;l<=i;l++){let c=e.state.doc.line(l),d=ja(c.text);a+=c.text.length-d.length+t.length+1,s.push({from:c.from,to:c.to,insert:t+" "+d})}return{changes:s,range:Pe.range(r.to,r.to)}});e.dispatch(o)}function Tt(e,t,o){let r=e.state.changeByRange(n=>{let i=e.state.sliceDoc(n.from,n.to),s=e.state.sliceDoc(n.from-t.length,n.from),a=e.state.sliceDoc(n.to,n.to+o.length);return s===t&&a===o?{changes:{from:n.from-t.length,to:n.to+o.length,insert:i},range:Pe.range(n.from-t.length,n.from-t.length+i.length)}:i.startsWith(t)&&i.endsWith(o)?{changes:{from:n.from,to:n.to,insert:i.substring(t.length,i.length-o.length)},range:Pe.range(n.from,n.from+i.length-t.length-o.length)}:a===o&&n.empty?{range:Pe.cursor(n.to+o.length)}:{changes:{from:n.from,to:n.to,insert:t+i+o},range:Pe.range(n.from+t.length,n.from+t.length+i.length)}});e.dispatch(r)}function Ao({type:e,options:t}){return e==="link"?o=>nn(o,{...t,type:e}):o=>nn(o,{...t,type:e})}function sn(e){let t="**";return Tt(e,t,t),!0}function an(e){let t="*";return Tt(e,t,t),!0}function ln(e){return Tt(e,"`","`"),!0}function cn(e){return Ne(e,"#"),!0}function dn(e){return Ne(e,"##"),!0}function mn(e){return Ne(e,"###"),!0}function pn(e){return Ne(e,"####"),!0}function un(e){return Ne(e,"#####"),!0}function fn(e){return Ne(e,"######"),!0}function hn(e){return Tt(e,"~~","~~"),!0}var Ya={copy:"mod-c",paste:"mod-v",undo:"mod-z",redo:"mod-shift-z",cut:"mod-x",toggleH1:"mod-1",toggleH2:"mod-2",toggleH3:"mod-3",toggleH4:"mod-4",toggleH5:"mod-5",toggleH6:"mod-6",toggleStrong:"mod-b",toggleEmphasis:"mod-i",toggleCodeText:"mod-e",toggleDelete:"mod-shift-s",insertLink:"mod-k",insertImage:"mod-alt-i"};function gn(e={}){let{overrideShortcutMap:t={},disableAllBuildInShortcuts:o=!1}=e,r=o?{}:{...Ya};Object.assign(r,t),delete r.paste;let n=[];return r.undo&&n.push({key:r.undo,run:Xa,preventDefault:!0}),r.redo&&n.push({key:r.redo,run:Qa,preventDefault:!0}),r.toggleStrong&&n.push({key:r.toggleStrong,run:sn}),r.toggleEmphasis&&n.push({key:r.toggleEmphasis,run:an}),r.toggleCodeText&&n.push({key:r.toggleCodeText,run:ln}),r.toggleDelete&&n.push({key:r.toggleDelete,run:hn}),r.insertLink&&n.push({key:r.insertLink,run:Ao({type:"link",options:e})}),r.insertImage&&n.push({key:r.insertImage,run:Ao({type:"image",options:e})}),r.toggleH1&&n.push({key:r.toggleH1,run:cn}),r.toggleH2&&n.push({key:r.toggleH2,run:dn}),r.toggleH3&&n.push({key:r.toggleH3,run:mn}),r.toggleH4&&n.push({key:r.toggleH4,run:pn}),r.toggleH5&&n.push({key:r.toggleH5,run:un}),r.toggleH6&&n.push({key:r.toggleH6,run:fn}),r.copy&&n.push({key:r.copy,run:i=>(document.execCommand("copy"),!0),preventDefault:!0}),r.paste&&n.push({key:r.paste,run:i=>((e.clipboardReadFunction||St)().then(({text:a})=>{if(a&&i){let l=typeof a=="string"?a:"",d=i.state.selection.main.from+l.length;i.dispatch({changes:{from:i.state.selection.main.from,to:i.state.selection.main.to,insert:l},selection:{anchor:d,head:d}})}}).catch(a=>{console.error("Failed to read clipboard:",a)}),!0),preventDefault:!0}),r.cut&&n.push({key:r.cut,run:i=>(document.execCommand("cut"),!0),preventDefault:!0}),n}import{tags as M}from"@lezer/highlight";var bn={theme:"dark",settings:{background:"#11191f",foreground:"#c9d1d9",caret:"#c9d1d9",selection:"#1c78aa",selectionMatch:"#1c78aa",lineHighlight:"#36334280"},styles:[{tag:[M.standard(M.tagName),M.tagName],color:"#7ee787"},{tag:[M.comment,M.bracket],color:"#8b949e"},{tag:[M.className,M.propertyName],color:"#d2a8ff"},{tag:[M.variableName,M.attributeName,M.number,M.operator],color:"#D19A66"},{tag:[M.keyword,M.typeName,M.typeOperator,M.typeName],color:"#ff7b72"},{tag:[M.string,M.meta,M.regexp],color:"#98C379"},{tag:[M.name,M.quote],color:"#7ee787"},{tag:[M.heading],color:"#E06C75",fontWeight:"bold"},{tag:[M.emphasis],color:"#d2a8ff",fontStyle:"italic"},{tag:[M.deleted],color:"#ffdcd7",backgroundColor:"ffeef0"},{tag:[M.atom,M.bool,M.special(M.variableName)],color:"#ffab70"},{tag:[M.url,M.escape,M.link],color:"#D19A66"},{tag:M.link,textDecoration:"underline"},{tag:M.strikethrough,textDecoration:"line-through"},{tag:M.invalid,color:"#f97583"},{tag:M.strong,color:"#98C379",fontWeight:"bold"}]};import{tags as P}from"@lezer/highlight";var yn={theme:"light",settings:{background:"#fdfdfd",foreground:"#24292e",selection:"#0369a1",selectionMatch:"#0369a1",gutterBackground:"#fdfdfd",gutterForeground:"#fdfdfd"},styles:[{tag:[P.standard(P.tagName),P.tagName],color:"#116329"},{tag:[P.comment,P.bracket],color:"#6a737d"},{tag:[P.className,P.propertyName],color:"#6f42c1"},{tag:[P.variableName,P.attributeName,P.number,P.operator],color:"#0000CC"},{tag:[P.keyword,P.typeName,P.typeOperator],color:"#d73a49"},{tag:[P.string,P.meta,P.regexp],color:"#0055AA"},{tag:[P.name,P.quote],color:"#22863a"},{tag:[P.heading],color:"#0000FF",fontWeight:"bold"},{tag:[P.emphasis],color:"#24292e",fontStyle:"italic"},{tag:[P.deleted],color:"#b31d28",backgroundColor:"ffeef0"},{tag:[P.atom,P.bool,P.special(P.variableName)],color:"#e36209"},{tag:[P.url,P.escape,P.link],color:"#E06C75"},{tag:P.link,textDecoration:"underline"},{tag:P.strikethrough,textDecoration:"line-through",color:"red"},{tag:P.invalid,color:"#cb2431"},{tag:P.strong,color:"#0055AA",fontWeight:"bold"}]};var xn={primaryFontColor:"#c8d1d9",labelFontColor:"rgba(255, 255, 255, 0.5)",accentColor:"#016ab3",borderColor:"#363b41",bgColor:"#05010d",hoverColor:"#1f2225",warnColor:"#e2b340",dangerColor:"#dc2626",tipsBgColor:"#0e1419",successColor:"#00c853",boxShadowColor:"rgba(255, 255, 255, 0.04)",nodeSelectedColor:"#193048",markBgColor:"#fff8c5",markFontColor:"#000",imgBgColor:"#0f0f0f",hrBgColor:"#30363d",hrBorderColor:"#21262d",placeholderFontColor:"#6e7681",kbdBgColor:"#161b22",kbdBorderColor:"rgba(110, 118, 129, 0.4)",kbdFontColor:"#c9d1d9",blockquoteBorderColor:"#30363d",blockquoteFontColor:"#8b949e",tableTdBorderColor:"#30363d",tableTrBgColor:"#0f0f0f",tableTrDeepBgColor:"#161b22",tableTrBorderColor:"#21262d",tableSelectorBgColor:"#333333",tableSelectorBgHoverColor:"#555555",tableSelectorBorderColor:"#555555",tableSelectorHightColor:"#003366",tableSelectorHightHoverColor:"#224466",tableSelectorHightBorderColor:"#003366",tableSelectorCellBgColor:"#224466",tableSelectorCellBorderColor:"#003366",codeBgColor:"#6e768166",preBgColor:"#252525",contextMenuBgColor:"#1E1F20",contextMenuBgColorActive:"#1A1A1A",contextMenuBgColorHover:"#2D3134",slashMenuBorderColor:"rgb(38 38 38 / 1)",editorToolbarBgColor:"#1b1b1b",selectionMatchBgColor:"#7f7a5b"};var kn={primaryFontColor:"#000000",labelFontColor:"#9ca3af",accentColor:"#007acc",borderColor:"#d7d7dc",bgColor:"#fdfdfd",hoverColor:"#d7d7dc",warnColor:"#e2b340",dangerColor:"#dc2626",tipsBgColor:"#f6f7f9",successColor:"#00c853",boxShadowColor:"rgba(0, 0, 0, 0.08)",nodeSelectedColor:"#3988ff33",markBgColor:"#fff8c5",markFontColor:"#24292f",imgBgColor:"#ffffff",hrBgColor:"#d0d7de",hrBorderColor:"#d8dee4",placeholderFontColor:"#6e7681",kbdBgColor:"#e5e5e5",kbdBorderColor:"#afb8c133",kbdFontColor:"#24292f",blockquoteBorderColor:"#d0d7de",blockquoteFontColor:"#57606a",tableTdBorderColor:"#d0d7de",tableTrBgColor:"#ffffff",tableTrDeepBgColor:"#f6f6f6",tableTrBorderColor:"#d8dee4",tableSelectorBgColor:"#e5e5e5",tableSelectorBgHoverColor:"#c6c6c6",tableSelectorBorderColor:"#c6c6c6",tableSelectorHightColor:"#5ea5f6",tableSelectorHightHoverColor:"#91bbe5",tableSelectorHightBorderColor:"#1c7ed6",tableSelectorCellBgColor:"#d7ecf9",tableSelectorCellBorderColor:"#1c7ed6",codeBgColor:"#afb8c133",preBgColor:"#e7e7e7",contextMenuBgColor:"#f6f7f9",contextMenuBgColorActive:"#F2F2F2",contextMenuBgColorHover:"#E8E8EC",slashMenuBorderColor:"rgb(229 229 229 / 1)",editorToolbarBgColor:"#EBEBEC",selectionMatchBgColor:"#fff8c5"};import Za,{css as el}from"styled-components";import{css as Ja}from"styled-components";var Cn=Ja`
|
|
1
|
+
var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o,r)=>{for(var n=r>1?void 0:r?qa(t,o):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(n=(r?s(t,o,n):s(n))||n);return r&&n&&Ua(t,o,n),n};import{createTheme as Io}from"@drl990114/codemirror-themes";import{indentWithTab as rl}from"@codemirror/commands";import{ensureSyntaxTree as nl}from"@codemirror/language";import{languages as il}from"@codemirror/language-data";import{SearchQuery as In}from"@codemirror/search";import{EditorState as Tn,Compartment as _o,RangeSetBuilder as sl,StateEffect as al,StateField as ll}from"@codemirror/state";import{Decoration as Oo,EditorView as vn,keymap as cl,ViewPlugin as dl}from"@codemirror/view";import{assertGet as ml,isPromise as pl,replaceNodeAtPosition as ul}from"@rme-sdk/core";import{exitCode as Mn}from"@rme-sdk/pm/commands";import{redo as Pn,undo as fl}from"@rme-sdk/pm/history";import{Selection as hl,TextSelection as Nn}from"@rme-sdk/pm/state";import{nanoid as gl}from"nanoid";import{redo as Qa,undo as Xa}from"@codemirror/commands";function St(){return navigator.clipboard.read().then(async e=>{let t="",o="",r=e.find(a=>a.types.includes("text/html")),n=e.find(a=>a.types.includes("text/plain")),i=async()=>{r&&(t=await(await r.getType("text/html")).text())},s=async()=>{n&&(o=await(await n.getType("text/plain")).text())};return await Promise.all([i(),s()]),{html:t,text:o}})}import{EditorSelection as Pe}from"@codemirror/state";var Ga=/^\[([^\]]+)\]\((.+?)\)|(((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()[\]{};:'".,<>?«»“”‘’])))|([a-z0-9.\-_+]+?@[a-z0-9.\-_+]+\.[a-z]{2,7})$/i;function sn(e,t){let o=t.type==="image"?"!":"";return t.clipboardReadFunction?.().then(({text:r})=>{let n=Ga.test(r)?r:"",i=e.state.changeByRange(({from:s,to:a})=>{let l=e.state.sliceDoc(s,a),c=1;return l.length>0&&n.length>0?c=4+l.length+n.length:l.length>0&&n.length===0&&(c=3+l.length),t.type==="image"&&c++,{changes:{from:s,to:a,insert:`${o}[${l}](${n})`},range:Pe.cursor(s+c)}});e.dispatch(i)}).catch(r=>console.error(r)),!0}function ja(e){let t;return(t=/^#{1,6}\s+/.exec(e))!==null?e.substring(t[0].length):(t=/^(\s{,3})>\s/.exec(e))!==null?t[1]+e.substring(t[0].length):e}function Ne(e,t){let o=e.state.changeByRange(r=>{let n=e.state.doc.lineAt(r.from).number,i=e.state.doc.lineAt(r.to).number,s=[],a=0;for(let l=n;l<=i;l++){let c=e.state.doc.line(l),d=ja(c.text);a+=c.text.length-d.length+t.length+1,s.push({from:c.from,to:c.to,insert:t+" "+d})}return{changes:s,range:Pe.range(r.to,r.to)}});e.dispatch(o)}function Tt(e,t,o){let r=e.state.changeByRange(n=>{let i=e.state.sliceDoc(n.from,n.to),s=e.state.sliceDoc(n.from-t.length,n.from),a=e.state.sliceDoc(n.to,n.to+o.length);return s===t&&a===o?{changes:{from:n.from-t.length,to:n.to+o.length,insert:i},range:Pe.range(n.from-t.length,n.from-t.length+i.length)}:i.startsWith(t)&&i.endsWith(o)?{changes:{from:n.from,to:n.to,insert:i.substring(t.length,i.length-o.length)},range:Pe.range(n.from,n.from+i.length-t.length-o.length)}:a===o&&n.empty?{range:Pe.cursor(n.to+o.length)}:{changes:{from:n.from,to:n.to,insert:t+i+o},range:Pe.range(n.from+t.length,n.from+t.length+i.length)}});e.dispatch(r)}function Ao({type:e,options:t}){return e==="link"?o=>sn(o,{...t,type:e}):o=>sn(o,{...t,type:e})}function an(e){let t="**";return Tt(e,t,t),!0}function ln(e){let t="*";return Tt(e,t,t),!0}function cn(e){return Tt(e,"`","`"),!0}function dn(e){return Ne(e,"#"),!0}function mn(e){return Ne(e,"##"),!0}function pn(e){return Ne(e,"###"),!0}function un(e){return Ne(e,"####"),!0}function fn(e){return Ne(e,"#####"),!0}function hn(e){return Ne(e,"######"),!0}function gn(e){return Tt(e,"~~","~~"),!0}var Ya={copy:"mod-c",paste:"mod-v",undo:"mod-z",redo:"mod-shift-z",cut:"mod-x",toggleH1:"mod-1",toggleH2:"mod-2",toggleH3:"mod-3",toggleH4:"mod-4",toggleH5:"mod-5",toggleH6:"mod-6",toggleStrong:"mod-b",toggleEmphasis:"mod-i",toggleCodeText:"mod-e",toggleDelete:"mod-shift-s",insertLink:"mod-k",insertImage:"mod-alt-i"};function bn(e={}){let{overrideShortcutMap:t={},disableAllBuildInShortcuts:o=!1}=e,r=o?{}:{...Ya};Object.assign(r,t),delete r.paste;let n=[];return r.undo&&n.push({key:r.undo,run:Xa,preventDefault:!0}),r.redo&&n.push({key:r.redo,run:Qa,preventDefault:!0}),r.toggleStrong&&n.push({key:r.toggleStrong,run:an}),r.toggleEmphasis&&n.push({key:r.toggleEmphasis,run:ln}),r.toggleCodeText&&n.push({key:r.toggleCodeText,run:cn}),r.toggleDelete&&n.push({key:r.toggleDelete,run:gn}),r.insertLink&&n.push({key:r.insertLink,run:Ao({type:"link",options:e})}),r.insertImage&&n.push({key:r.insertImage,run:Ao({type:"image",options:e})}),r.toggleH1&&n.push({key:r.toggleH1,run:dn}),r.toggleH2&&n.push({key:r.toggleH2,run:mn}),r.toggleH3&&n.push({key:r.toggleH3,run:pn}),r.toggleH4&&n.push({key:r.toggleH4,run:un}),r.toggleH5&&n.push({key:r.toggleH5,run:fn}),r.toggleH6&&n.push({key:r.toggleH6,run:hn}),r.copy&&n.push({key:r.copy,run:i=>(document.execCommand("copy"),!0),preventDefault:!0}),r.paste&&n.push({key:r.paste,run:i=>((e.clipboardReadFunction||St)().then(({text:a})=>{if(a&&i){let l=typeof a=="string"?a:"",d=i.state.selection.main.from+l.length;i.dispatch({changes:{from:i.state.selection.main.from,to:i.state.selection.main.to,insert:l},selection:{anchor:d,head:d}})}}).catch(a=>{console.error("Failed to read clipboard:",a)}),!0),preventDefault:!0}),r.cut&&n.push({key:r.cut,run:i=>(document.execCommand("cut"),!0),preventDefault:!0}),n}import{tags as M}from"@lezer/highlight";var yn={theme:"dark",settings:{background:"#11191f",foreground:"#c9d1d9",caret:"#c9d1d9",selection:"#1c78aa",selectionMatch:"#1c78aa",lineHighlight:"#36334280"},styles:[{tag:[M.standard(M.tagName),M.tagName],color:"#7ee787"},{tag:[M.comment,M.bracket],color:"#8b949e"},{tag:[M.className,M.propertyName],color:"#d2a8ff"},{tag:[M.variableName,M.attributeName,M.number,M.operator],color:"#D19A66"},{tag:[M.keyword,M.typeName,M.typeOperator,M.typeName],color:"#ff7b72"},{tag:[M.string,M.meta,M.regexp],color:"#98C379"},{tag:[M.name,M.quote],color:"#7ee787"},{tag:[M.heading],color:"#E06C75",fontWeight:"bold"},{tag:[M.emphasis],color:"#d2a8ff",fontStyle:"italic"},{tag:[M.deleted],color:"#ffdcd7",backgroundColor:"ffeef0"},{tag:[M.atom,M.bool,M.special(M.variableName)],color:"#ffab70"},{tag:[M.url,M.escape,M.link],color:"#D19A66"},{tag:M.link,textDecoration:"underline"},{tag:M.strikethrough,textDecoration:"line-through"},{tag:M.invalid,color:"#f97583"},{tag:M.strong,color:"#98C379",fontWeight:"bold"}]};import{tags as P}from"@lezer/highlight";var xn={theme:"light",settings:{background:"#fdfdfd",foreground:"#24292e",selection:"#0369a1",selectionMatch:"#0369a1",gutterBackground:"#fdfdfd",gutterForeground:"#fdfdfd"},styles:[{tag:[P.standard(P.tagName),P.tagName],color:"#116329"},{tag:[P.comment,P.bracket],color:"#6a737d"},{tag:[P.className,P.propertyName],color:"#6f42c1"},{tag:[P.variableName,P.attributeName,P.number,P.operator],color:"#0000CC"},{tag:[P.keyword,P.typeName,P.typeOperator],color:"#d73a49"},{tag:[P.string,P.meta,P.regexp],color:"#0055AA"},{tag:[P.name,P.quote],color:"#22863a"},{tag:[P.heading],color:"#0000FF",fontWeight:"bold"},{tag:[P.emphasis],color:"#24292e",fontStyle:"italic"},{tag:[P.deleted],color:"#b31d28",backgroundColor:"ffeef0"},{tag:[P.atom,P.bool,P.special(P.variableName)],color:"#e36209"},{tag:[P.url,P.escape,P.link],color:"#E06C75"},{tag:P.link,textDecoration:"underline"},{tag:P.strikethrough,textDecoration:"line-through",color:"red"},{tag:P.invalid,color:"#cb2431"},{tag:P.strong,color:"#0055AA",fontWeight:"bold"}]};var kn={primaryFontColor:"#c8d1d9",labelFontColor:"rgba(255, 255, 255, 0.5)",accentColor:"#016ab3",borderColor:"#363b41",bgColor:"#05010d",hoverColor:"#1f2225",warnColor:"#e2b340",dangerColor:"#dc2626",tipsBgColor:"#0e1419",successColor:"#00c853",boxShadowColor:"rgba(255, 255, 255, 0.04)",nodeSelectedColor:"#193048",markBgColor:"#fff8c5",markFontColor:"#000",imgBgColor:"#0f0f0f",hrBgColor:"#30363d",hrBorderColor:"#21262d",placeholderFontColor:"#6e7681",kbdBgColor:"#161b22",kbdBorderColor:"rgba(110, 118, 129, 0.4)",kbdFontColor:"#c9d1d9",blockquoteBorderColor:"#30363d",blockquoteFontColor:"#8b949e",tableTdBorderColor:"#30363d",tableTrBgColor:"#0f0f0f",tableTrDeepBgColor:"#161b22",tableTrBorderColor:"#21262d",tableSelectorBgColor:"#333333",tableSelectorBgHoverColor:"#555555",tableSelectorBorderColor:"#555555",tableSelectorHightColor:"#003366",tableSelectorHightHoverColor:"#224466",tableSelectorHightBorderColor:"#003366",tableSelectorCellBgColor:"#224466",tableSelectorCellBorderColor:"#003366",codeBgColor:"#6e768166",preBgColor:"#252525",contextMenuBgColor:"#1E1F20",contextMenuBgColorActive:"#1A1A1A",contextMenuBgColorHover:"#2D3134",slashMenuBorderColor:"rgb(38 38 38 / 1)",editorToolbarBgColor:"#1b1b1b",selectionMatchBgColor:"#7f7a5b"};var Cn={primaryFontColor:"#000000",labelFontColor:"#9ca3af",accentColor:"#007acc",borderColor:"#d7d7dc",bgColor:"#fdfdfd",hoverColor:"#d7d7dc",warnColor:"#e2b340",dangerColor:"#dc2626",tipsBgColor:"#f6f7f9",successColor:"#00c853",boxShadowColor:"rgba(0, 0, 0, 0.08)",nodeSelectedColor:"#3988ff33",markBgColor:"#fff8c5",markFontColor:"#24292f",imgBgColor:"#ffffff",hrBgColor:"#d0d7de",hrBorderColor:"#d8dee4",placeholderFontColor:"#6e7681",kbdBgColor:"#e5e5e5",kbdBorderColor:"#afb8c133",kbdFontColor:"#24292f",blockquoteBorderColor:"#d0d7de",blockquoteFontColor:"#57606a",tableTdBorderColor:"#d0d7de",tableTrBgColor:"#ffffff",tableTrDeepBgColor:"#f6f6f6",tableTrBorderColor:"#d8dee4",tableSelectorBgColor:"#e5e5e5",tableSelectorBgHoverColor:"#c6c6c6",tableSelectorBorderColor:"#c6c6c6",tableSelectorHightColor:"#5ea5f6",tableSelectorHightHoverColor:"#91bbe5",tableSelectorHightBorderColor:"#1c7ed6",tableSelectorCellBgColor:"#d7ecf9",tableSelectorCellBorderColor:"#1c7ed6",codeBgColor:"#afb8c133",preBgColor:"#e7e7e7",contextMenuBgColor:"#f6f7f9",contextMenuBgColorActive:"#F2F2F2",contextMenuBgColorHover:"#E8E8EC",slashMenuBorderColor:"rgb(229 229 229 / 1)",editorToolbarBgColor:"#EBEBEC",selectionMatchBgColor:"#fff8c5"};import Za,{css as el}from"styled-components";import{css as Ja}from"styled-components";var wn=Ja`
|
|
2
2
|
--prosekit-list-bullet-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='2.5' fill='currentColor'/%3E%3C/svg%3E");
|
|
3
3
|
--prosekit-list-toggle-open-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpolygon points='8,10 12,14 16,10' fill='currentColor'/%3E%3C/svg%3E");
|
|
4
4
|
--prosekit-list-toggle-closed-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpolygon points='10,8 14,12 10,16' fill='currentColor'/%3E%3C/svg%3E");
|
|
@@ -1296,12 +1296,12 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1296
1296
|
}
|
|
1297
1297
|
|
|
1298
1298
|
/* Import flat list styles */
|
|
1299
|
-
${
|
|
1299
|
+
${wn}
|
|
1300
1300
|
|
|
1301
1301
|
${e=>e.dark&&el`
|
|
1302
1302
|
color-scheme: dark;
|
|
1303
1303
|
`}
|
|
1304
|
-
`;import tl,{css as ol}from"styled-components";var
|
|
1304
|
+
`;import tl,{css as ol}from"styled-components";var En=tl.div.attrs(e=>({rootFontSize:"15px",rootLineHeight:"1.6",...e}))`
|
|
1305
1305
|
width: 100%;
|
|
1306
1306
|
position: relative;
|
|
1307
1307
|
white-space: pre-wrap;
|
|
@@ -1376,15 +1376,15 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1376
1376
|
${e=>e.dark&&ol`
|
|
1377
1377
|
color-scheme: dark;
|
|
1378
1378
|
`}
|
|
1379
|
-
`;var Vx=15,En={lineHeightBase:"1.6",titleBarHeight:"30px",titleBarControlBtnWidth:"50px",fontBase:"15px",fontSm:"14px",fontXs:"12px",spaceXs:"4px",spaceSm:"8px",spaceBase:"10px",spaceL:"12px",spaceXl:"16px",smallBorderRadius:"4px",midBorderRadius:"8px",bigBorderRadius:"12px",black:"#74757D",white:"#E0E0E0",gray:"#C0C0C0",blue:"#0359D0",fontFamily:"'Open Sans', 'Clear Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif",codemirrorFontFamily:"'DejaVu Sans Mono', 'Source Code Pro', 'Droid Sans Mono', Consolas, monospace"},Lo={codemirrorTheme:bn,styledConstants:{...En,...xn}},it={codemirrorTheme:yn,styledConstants:{...En,...kn}};var st=new Map,Bo={current:Io(it.codemirrorTheme)},In=al.define(),Mt=ll.define({create(){return{query:new Rn({search:""}),active:null}},update(e,t){for(let o of t.effects)if(o.is(In))return o.value;return e}}),bl=Oo.mark({class:"cm-search-match"}),yl=Oo.mark({class:"cm-search-active"}),xl=e=>{let t=[],o=[...e??[]];for(;o.length>0;){let r=o.shift();if(r){if(Array.isArray(r)){o.unshift(...r);continue}t.push(r)}}return t},kl=dl.fromClass(class{constructor(e){this.decorations=this.buildDecorations(e)}update(e){(e.docChanged||e.viewportChanged||e.startState.field(Mt)!==e.state.field(Mt))&&(this.decorations=this.buildDecorations(e.view))}buildDecorations(e){let{query:t,active:o}=e.state.field(Mt);if(!t.valid||!t.search)return Oo.none;let r=new sl;for(let{from:n,to:i}of e.visibleRanges){let s=t.getCursor(e.state,n,i);for(;;){let a=s.next();if(a.done)break;let l=a.value,c=o&&o.from===l.from&&o.to===l.to?yl:bl;r.add(l.from,l.to,c)}}return r.finish()}},{decorations:e=>e.decorations}),Ho=e=>{Bo.current=Io(e),st.forEach(t=>{t.cm.dispatch({effects:t.editorTheme.reconfigure(Bo.current)})})},ok=(e,t=!1)=>{me(e,t,null)},me=(e,t=!1,o)=>{let r=new Rn({search:e,caseSensitive:t});st.forEach(n=>{let i=n.getProsemirrorContentRange(),s=o&&o.from>=i.from&&o.to<=i.to?{from:o.from-i.from,to:o.to-i.from}:null;n.setSearchState(r,s)})},An=e=>{if(!e)return!1;let t=!1;return st.forEach(o=>{let r=o.getProsemirrorContentRange();e.from>=r.from&&e.to<=r.to&&(o.scrollToPosition(e.from-r.from),t=!0)}),t},rk=e=>{let t=nl(e.state,e.state.doc.length),o=[];return t?.iterate({from:0,to:e.state.doc.length,enter:({type:r,from:n,to:i})=>{r.name.startsWith("ATXHeading")&&o.push({from:n,to:i,value:e.state.doc.sliceString(n,i),type:r.name})}}),o},W=class{constructor({view:t,getPos:o,node:r,extensions:n=[],languageName:i,options:s={}}){this.toggleName="paragraph";this.id=gl();this.content="";this.updating=!1;this.copyButton=null;this.copyButtonContainer=null;this.view=t,this.getPos=o,this.node=r,this.languageConf=new _o,this.editorTheme=new _o,this.searchQueryConf=new _o,this.schema=r.type.schema,this.languageName=i,this.loadLanguage=wl,this.options=s,this.content=this.node.textContent;let a=Sn.changeFilter.of(c=>(c.docChanged||this.forwardSelection(),!0)),l=Sn.create({doc:this.node.textContent,extensions:[cl.of(this.codeMirrorKeymap()),a,this.searchQueryConf.of([Mt,kl]),this.languageConf.of([]),this.editorTheme.of(Bo.current),...xl(n)]});this.cm=new Tn({state:l,dispatch:this.valueChanged.bind(this),...this.options.codemirrorEditorViewConfig||{}}),st.set(this.id,this),this.updateLanguage(),this.options.copyButton?.enabled!==!1&&this.createCopyButton()}update(t){if(t.type!==this.node.type)return!1;this.node=t,this.content=t.textContent,this.updateLanguage();let o=Nn(this.cm.state.doc.toString(),t.textContent);return o&&(this.updating=!0,this.cm.dispatch({changes:{from:o.from,to:o.to,insert:o.text}}),this.updating=!1),!0}setSelection(t,o){this.cm.focus(),this.updating=!0,this.cm.dispatch({selection:{anchor:t,head:o}}),this.updating=!1}updateLanguage(){let t=this.node.attrs.language;if(t===this.languageName)return;let o=this.loadLanguage(t);if(o){if(pl(o)){o.then(r=>{this.setLanguage(r),this.languageName=t});return}this.setLanguage(o),this.languageName=t}}destroy(){this.cm.destroy(),st.delete(this.id)}setSearchState(t,o){this.cm.dispatch({effects:In.of({query:t,active:o})})}scrollToPosition(t){let o=Math.max(0,Math.min(t,this.cm.state.doc.length));this.cm.dispatch({effects:Tn.scrollIntoView(o,{y:"center"})})}getProsemirrorContentRange(){let t=this.getPos()+1;return{from:t,to:t+this.node.content.size}}forwardSelection(){if(!this.cm.hasFocus)return;let{state:t}=this.view,o=this.asProseMirrorSelection(t.doc);o.eq(t.selection)||this.view.dispatch(t.tr.setSelection(o))}setLanguage(t){this.cm.dispatch({effects:this.languageConf.reconfigure(t)})}valueChanged(t){if(!this.cm||!this.view||(this.cm.update([t]),!t.docChanged||this.updating))return;let o=Nn(this.node.textContent,t.state.doc.toString());if(o){let r=this.getPos()+1,n=this.view.state.tr.replaceWith(r+o.from,r+o.to,o.text?this.schema.text(o.text):[]);this.view.dispatch(n),this.options?.onValueChange?.(t.state.doc.toString())}}asProseMirrorSelection(t){let o=this.getPos()+1,{anchor:r,head:n}=this.cm.state.selection.main;return Pn.between(t.resolve(r+o),t.resolve(n+o))}codeMirrorKeymap(){let t=[rl,{key:"ArrowUp",run:this.maybeEscape("line",-1)},{key:"ArrowLeft",run:this.maybeEscape("char",-1)},{key:"ArrowDown",run:this.maybeEscape("line",1)},{key:"ArrowRight",run:this.maybeEscape("char",1)},{key:"Ctrl-Enter",run:()=>vn(this.view.state,this.view.dispatch)?(this.view.focus(),!0):!1},{key:"Backspace",run:()=>{let{ranges:o}=this.cm.state.selection;if(!this.cm||!o||o.length>1)return!1;let r=o[0];if(r&&(!r.empty||r.anchor>0)||this.cm.state.doc.lines>=2)return!1;let{state:n}=this.view,i=ml(n.schema.nodes,this.toggleName),s=this.getPos(),a=ul({pos:s,tr:n.tr,content:i.createChecked({},this.node.content)});return a.setSelection(Pn.near(a.doc.resolve(s))),this.view.dispatch(a),this.view.focus(),!0}},...gn(this.options?.commandKeymapOptions)];return this.options?.useProsemirrorHistoryKey&&t.push({key:"Mod-z",run:()=>(fl(this.view.state,this.view.dispatch),this.view.focus(),!1)},{key:"Mod-y",mac:"Mod-Shift-z",run:()=>(Mn(this.view.state,this.view.dispatch),this.view.focus(),!1),preventDefault:!0},{linux:"Ctrl-Shift-z",run:()=>(Mn(this.view.state,this.view.dispatch),this.view.focus(),!1),preventDefault:!0}),t}maybeEscape(t,o){return r=>{let{state:n}=r;if(n.selection.ranges.some(d=>!d.empty))return!1;let{anchor:i}=n.selection.main,s=n.doc.lineAt(i),a=i-s.from;if(s.number!==(o<0?1:n.doc.lines)||t==="char"&&a!==(o<0?0:s.length))return!1;if(t==="line"&&o<0&&this.focusLanguageInput())return!0;let l=this.getPos()+(o<0?0:this.node.nodeSize),c=hl.near(this.view.state.doc.resolve(l),o);return o===1&&vn(this.view.state,this.view.dispatch)?(this.view.focus(),!0):(this.view.dispatch(this.view.state.tr.setSelection(c).scrollIntoView()),this.view.focus(),!0)}}focusLanguageInput(){let t=this.view.nodeDOM(this.getPos());if(!t?.parentElement)return!1;let r=t.previousSibling;for(;r;){if(r instanceof HTMLElement&&r.classList.contains("code-block__menu")){let n=r.querySelector(".code-block__languages__input");return n?(n.focus(),!0):!1}r=r.previousSibling}return!1}createCopyButton(){if(!this.cm.dom||!this.options)return;this.copyButton=document.createElement("div"),this.copyButton.className="cm-copy-btn",this.copyButton.innerHTML='<i class="ri-file-copy-line"></i>';let t="Copy code";this.copyButton.title=t,this.setupCopyButtonEvents(),this.cm.dom.appendChild(this.copyButton),this.copyButton.style.pointerEvents="auto"}setupCopyButtonEvents(){this.copyButton&&(this.copyButton.addEventListener("mouseenter",()=>{this.copyButton&&(this.copyButton.style.transform="translateY(-1px)")}),this.copyButton.addEventListener("mousedown",t=>{t.preventDefault(),t.stopPropagation()}),this.copyButton.addEventListener("mouseleave",()=>{this.copyButton&&(this.copyButton.style.transform="translateY(0)")}),this.copyButton.addEventListener("click",this.handleCopy.bind(this),{capture:!0}))}async handleCopy(t){if(t.stopPropagation(),t.preventDefault(),!this.options)return;let o=this.node.textContent;if(this.options.copyButton?.customCopyFunction)try{let r=this.options.copyButton.customCopyFunction(o);r instanceof Promise?await r&&this.showCopySuccess():r&&this.showCopySuccess();return}catch(r){console.error("Custom copy function failed:",r)}if(navigator.clipboard&&window.isSecureContext)try{await navigator.clipboard.writeText(o),this.showCopySuccess()}catch(r){console.error("Clipboard API failed:",r)}}showCopySuccess(){if(!this.copyButton||!this.options)return;let t=this.copyButton.title,o="Copied!";this.copyButton.innerHTML='<i class="ri-check-line"></i>',this.copyButton.title=o,this.copyButton.style.color="green",setTimeout(()=>{this.copyButton&&(this.copyButton.innerHTML='<i class="ri-file-copy-line"></i>',this.copyButton.title=t,this.copyButton.style.color="inherit")},1500)}},Cl=()=>{let e={};for(let t of il??[])for(let o of t.alias)e[o]=t;return e},wl=e=>{if(typeof e!="string")return;let o=Cl()[e.toLowerCase()];if(o)return o.support||o.load()};function Nn(e,t){if(e===t)return null;let o=0,r=e.length,n=t.length;for(;o<r&&e.charCodeAt(o)===t.charCodeAt(o);)++o;for(;r>o&&n>o&&e.charCodeAt(r-1)===t.charCodeAt(n-1);)r--,n--;return{from:o,to:r,text:t.slice(o,n)}}import{prosemirrorNodeToHtml as $y}from"@rme-sdk/main";import{Slice as zy}from"@rme-sdk/pm";import{forwardRef as Ky,memo as Wy,useCallback as Zr,useImperativeHandle as Uy,useMemo as qy,useRef as Gy,useState as jy}from"react";import{ProsemirrorDevTools as Uh}from"@rme-sdk/dev";import{Remirror as qh}from"@rme-sdk/react";import{memo as Ws,useCallback as Gh,useMemo as jh}from"react";import{useEffect as Al,useRef as _n,useState as Ll}from"react";import{createContext as El,useContext as Sl,useEffect as Tl,useLayoutEffect as vl,useRef as Ml}from"react";import{jsx as Il}from"react/jsx-runtime";function Ln(e){let t=El(null),o=Pl(t);return[n=>{let i=e(n);return Il(t.Provider,{value:i,children:n.children})},o,t]}function Pl(e){return(t,o)=>{let r=Sl(e),n=Nl(r);if(!r)throw new Error("`useContextHook` must be placed inside the `Provider` returned by the `createContextState` method");if(!t)return r;if(typeof t!="function")throw new TypeError("invalid arguments passed to `useContextHook`. This hook must be called with zero arguments, a getter function or a path string.");let i=t(r);if(!n||!o)return i;let s=t(n);return o(s,i)?s:i}}function Nl(e){let t=Ml(null);return Rl(()=>{t.current=e}),t.current}var Rl=typeof document<"u"?vl:Tl;function Hn(e,t){return Ln(o=>{let r=_n(null),n=_n(void 0),i=t?.(o),[s,a]=Ll(()=>e({get:Bn(r),set:On(n),previousContext:void 0,props:o,state:i})),l=[...Object.values(o),i];return Al(()=>{l.length!==0&&a(c=>e({get:Bn(r),set:On(n),previousContext:c,props:o,state:i}))},l),r.current=s,n.current=a,s})}function Bn(e){return t=>{if(!e.current)throw new Error("`get` called outside of function scope. `get` can only be called within a function.");if(!t)return e.current;if(typeof t!="function")throw new TypeError("Invalid arguments passed to `useContextHook`. The hook must be called with zero arguments, a getter function or a path string.");return t(e.current)}}function On(e){return t=>{if(!e.current)throw new Error("`set` called outside of function scope. `set` can only be called within a function.");e.current(o=>({...o,...typeof t=="function"?t(o):t}))}}import _l from"react";import at from"styled-components";import{jsx as te,jsxs as Pt}from"react/jsx-runtime";var Bl=at.h1`
|
|
1379
|
+
`;var Dx=15,Sn={lineHeightBase:"1.6",titleBarHeight:"30px",titleBarControlBtnWidth:"50px",fontBase:"15px",fontSm:"14px",fontXs:"12px",spaceXs:"4px",spaceSm:"8px",spaceBase:"10px",spaceL:"12px",spaceXl:"16px",smallBorderRadius:"4px",midBorderRadius:"8px",bigBorderRadius:"12px",black:"#74757D",white:"#E0E0E0",gray:"#C0C0C0",blue:"#0359D0",fontFamily:"'Open Sans', 'Clear Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif",codemirrorFontFamily:"'DejaVu Sans Mono', 'Source Code Pro', 'Droid Sans Mono', Consolas, monospace"},Lo={codemirrorTheme:yn,styledConstants:{...Sn,...kn}},it={codemirrorTheme:xn,styledConstants:{...Sn,...Cn}};var st=new Map,Bo={current:Io(it.codemirrorTheme)},An=al.define(),Mt=ll.define({create(){return{query:new In({search:""}),active:null}},update(e,t){for(let o of t.effects)if(o.is(An))return o.value;return e}}),bl=Oo.mark({class:"cm-search-match"}),yl=Oo.mark({class:"cm-search-active"}),xl=e=>{let t=[],o=[...e??[]];for(;o.length>0;){let r=o.shift();if(r){if(Array.isArray(r)){o.unshift(...r);continue}t.push(r)}}return t},kl=dl.fromClass(class{constructor(e){this.decorations=this.buildDecorations(e)}update(e){(e.docChanged||e.viewportChanged||e.startState.field(Mt)!==e.state.field(Mt))&&(this.decorations=this.buildDecorations(e.view))}buildDecorations(e){let{query:t,active:o}=e.state.field(Mt);if(!t.valid||!t.search)return Oo.none;let r=new sl;for(let{from:n,to:i}of e.visibleRanges){let s=t.getCursor(e.state,n,i);for(;;){let a=s.next();if(a.done)break;let l=a.value,c=o&&o.from===l.from&&o.to===l.to?yl:bl;r.add(l.from,l.to,c)}}return r.finish()}},{decorations:e=>e.decorations}),Ho=e=>{Bo.current=Io(e),st.forEach(t=>{t.cm.dispatch({effects:t.editorTheme.reconfigure(Bo.current)})})},ok=(e,t=!1)=>{me(e,t,null)},me=(e,t=!1,o)=>{let r=new In({search:e,caseSensitive:t});st.forEach(n=>{let i=n.getProsemirrorContentRange(),s=o&&o.from>=i.from&&o.to<=i.to?{from:o.from-i.from,to:o.to-i.from}:null;n.setSearchState(r,s)})},Ln=e=>{if(!e)return!1;let t=!1;return st.forEach(o=>{let r=o.getProsemirrorContentRange();e.from>=r.from&&e.to<=r.to&&(o.scrollToPosition(e.from-r.from),t=!0)}),t},rk=e=>{let t=nl(e.state,e.state.doc.length),o=[];return t?.iterate({from:0,to:e.state.doc.length,enter:({type:r,from:n,to:i})=>{r.name.startsWith("ATXHeading")&&o.push({from:n,to:i,value:e.state.doc.sliceString(n,i),type:r.name})}}),o},W=class{constructor({view:t,getPos:o,node:r,extensions:n=[],languageName:i,options:s={}}){this.toggleName="paragraph";this.id=gl();this.content="";this.updating=!1;this.copyButton=null;this.copyButtonContainer=null;this.view=t,this.getPos=o,this.node=r,this.languageConf=new _o,this.editorTheme=new _o,this.searchQueryConf=new _o,this.schema=r.type.schema,this.languageName=i,this.loadLanguage=wl,this.options=s,this.content=this.node.textContent;let a=Tn.changeFilter.of(c=>(c.docChanged||this.forwardSelection(),!0)),l=Tn.create({doc:this.node.textContent,extensions:[cl.of(this.codeMirrorKeymap()),a,this.searchQueryConf.of([Mt,kl]),this.languageConf.of([]),this.editorTheme.of(Bo.current),...xl(n)]});this.cm=new vn({state:l,dispatch:this.valueChanged.bind(this),...this.options.codemirrorEditorViewConfig||{}}),st.set(this.id,this),this.updateLanguage(),this.options.copyButton?.enabled!==!1&&this.createCopyButton()}update(t){if(t.type!==this.node.type)return!1;this.node=t,this.content=t.textContent,this.updateLanguage();let o=Rn(this.cm.state.doc.toString(),t.textContent);return o&&(this.updating=!0,this.cm.dispatch({changes:{from:o.from,to:o.to,insert:o.text}}),this.updating=!1),!0}setSelection(t,o){this.cm.focus(),this.updating=!0,this.cm.dispatch({selection:{anchor:t,head:o}}),this.updating=!1}updateLanguage(){let t=this.node.attrs.language;if(t===this.languageName)return;let o=this.loadLanguage(t);if(o){if(pl(o)){o.then(r=>{this.setLanguage(r),this.languageName=t});return}this.setLanguage(o),this.languageName=t}}destroy(){this.cm.destroy(),st.delete(this.id)}setSearchState(t,o){this.cm.dispatch({effects:An.of({query:t,active:o})})}scrollToPosition(t){let o=Math.max(0,Math.min(t,this.cm.state.doc.length));this.cm.dispatch({effects:vn.scrollIntoView(o,{y:"center"})})}getProsemirrorContentRange(){let t=this.getPos()+1;return{from:t,to:t+this.node.content.size}}forwardSelection(){if(!this.cm.hasFocus)return;let{state:t}=this.view,o=this.asProseMirrorSelection(t.doc);o.eq(t.selection)||this.view.dispatch(t.tr.setSelection(o))}setLanguage(t){this.cm.dispatch({effects:this.languageConf.reconfigure(t)})}valueChanged(t){if(!this.cm||!this.view||(this.cm.update([t]),!t.docChanged||this.updating))return;let o=Rn(this.node.textContent,t.state.doc.toString());if(o){let r=this.getPos()+1,n=this.view.state.tr.replaceWith(r+o.from,r+o.to,o.text?this.schema.text(o.text):[]);this.view.dispatch(n),this.options?.onValueChange?.(t.state.doc.toString())}}asProseMirrorSelection(t){let o=this.getPos()+1,{anchor:r,head:n}=this.cm.state.selection.main;return Nn.between(t.resolve(r+o),t.resolve(n+o))}codeMirrorKeymap(){let t=[rl,{key:"ArrowUp",run:this.maybeEscape("line",-1)},{key:"ArrowLeft",run:this.maybeEscape("char",-1)},{key:"ArrowDown",run:this.maybeEscape("line",1)},{key:"ArrowRight",run:this.maybeEscape("char",1)},{key:"Ctrl-Enter",run:()=>Mn(this.view.state,this.view.dispatch)?(this.view.focus(),!0):!1},{key:"Backspace",run:()=>{let{ranges:o}=this.cm.state.selection;if(!this.cm||!o||o.length>1)return!1;let r=o[0];if(r&&(!r.empty||r.anchor>0)||this.cm.state.doc.lines>=2)return!1;let{state:n}=this.view,i=ml(n.schema.nodes,this.toggleName),s=this.getPos(),a=ul({pos:s,tr:n.tr,content:i.createChecked({},this.node.content)});return a.setSelection(Nn.near(a.doc.resolve(s))),this.view.dispatch(a),this.view.focus(),!0}},...bn(this.options?.commandKeymapOptions)];return this.options?.useProsemirrorHistoryKey&&t.push({key:"Mod-z",run:()=>(fl(this.view.state,this.view.dispatch),this.view.focus(),!1)},{key:"Mod-y",mac:"Mod-Shift-z",run:()=>(Pn(this.view.state,this.view.dispatch),this.view.focus(),!1),preventDefault:!0},{linux:"Ctrl-Shift-z",run:()=>(Pn(this.view.state,this.view.dispatch),this.view.focus(),!1),preventDefault:!0}),t}maybeEscape(t,o){return r=>{let{state:n}=r;if(n.selection.ranges.some(d=>!d.empty))return!1;let{anchor:i}=n.selection.main,s=n.doc.lineAt(i),a=i-s.from;if(s.number!==(o<0?1:n.doc.lines)||t==="char"&&a!==(o<0?0:s.length))return!1;if(t==="line"&&o<0&&this.focusLanguageInput())return!0;let l=this.getPos()+(o<0?0:this.node.nodeSize),c=hl.near(this.view.state.doc.resolve(l),o);return o===1&&Mn(this.view.state,this.view.dispatch)?(this.view.focus(),!0):(this.view.dispatch(this.view.state.tr.setSelection(c).scrollIntoView()),this.view.focus(),!0)}}focusLanguageInput(){let t=this.view.nodeDOM(this.getPos());if(!t?.parentElement)return!1;let r=t.previousSibling;for(;r;){if(r instanceof HTMLElement&&r.classList.contains("code-block__menu")){let n=r.querySelector(".code-block__languages__input");return n?(n.focus(),!0):!1}r=r.previousSibling}return!1}createCopyButton(){if(!this.cm.dom||!this.options)return;this.copyButton=document.createElement("div"),this.copyButton.className="cm-copy-btn",this.copyButton.innerHTML='<i class="ri-file-copy-line"></i>';let t="Copy code";this.copyButton.title=t,this.setupCopyButtonEvents(),this.cm.dom.appendChild(this.copyButton),this.copyButton.style.pointerEvents="auto"}setupCopyButtonEvents(){this.copyButton&&(this.copyButton.addEventListener("mouseenter",()=>{this.copyButton&&(this.copyButton.style.transform="translateY(-1px)")}),this.copyButton.addEventListener("mousedown",t=>{t.preventDefault(),t.stopPropagation()}),this.copyButton.addEventListener("mouseleave",()=>{this.copyButton&&(this.copyButton.style.transform="translateY(0)")}),this.copyButton.addEventListener("click",this.handleCopy.bind(this),{capture:!0}))}async handleCopy(t){if(t.stopPropagation(),t.preventDefault(),!this.options)return;let o=this.node.textContent;if(this.options.copyButton?.customCopyFunction)try{let r=this.options.copyButton.customCopyFunction(o);r instanceof Promise?await r&&this.showCopySuccess():r&&this.showCopySuccess();return}catch(r){console.error("Custom copy function failed:",r)}if(navigator.clipboard&&window.isSecureContext)try{await navigator.clipboard.writeText(o),this.showCopySuccess()}catch(r){console.error("Clipboard API failed:",r)}}showCopySuccess(){if(!this.copyButton||!this.options)return;let t=this.copyButton.title,o="Copied!";this.copyButton.innerHTML='<i class="ri-check-line"></i>',this.copyButton.title=o,this.copyButton.style.color="green",setTimeout(()=>{this.copyButton&&(this.copyButton.innerHTML='<i class="ri-file-copy-line"></i>',this.copyButton.title=t,this.copyButton.style.color="inherit")},1500)}},Cl=()=>{let e={};for(let t of il??[])for(let o of t.alias)e[o]=t;return e},wl=e=>{if(typeof e!="string")return;let o=Cl()[e.toLowerCase()];if(o)return o.support||o.load()};function Rn(e,t){if(e===t)return null;let o=0,r=e.length,n=t.length;for(;o<r&&e.charCodeAt(o)===t.charCodeAt(o);)++o;for(;r>o&&n>o&&e.charCodeAt(r-1)===t.charCodeAt(n-1);)r--,n--;return{from:o,to:r,text:t.slice(o,n)}}import{prosemirrorNodeToHtml as $y}from"@rme-sdk/main";import{Slice as zy}from"@rme-sdk/pm";import{forwardRef as Ky,memo as Wy,useCallback as en,useImperativeHandle as Uy,useMemo as qy,useRef as Gy,useState as jy}from"react";import{ProsemirrorDevTools as Wh}from"@rme-sdk/dev";import{Remirror as Uh}from"@rme-sdk/react";import{memo as Us,useCallback as qh,useMemo as Gh}from"react";import{useEffect as Al,useRef as Bn,useState as Ll}from"react";import{createContext as El,useContext as Sl,useEffect as Tl,useLayoutEffect as vl,useRef as Ml}from"react";import{jsx as Il}from"react/jsx-runtime";function _n(e){let t=El(null),o=Pl(t);return[n=>{let i=e(n);return Il(t.Provider,{value:i,children:n.children})},o,t]}function Pl(e){return(t,o)=>{let r=Sl(e),n=Nl(r);if(!r)throw new Error("`useContextHook` must be placed inside the `Provider` returned by the `createContextState` method");if(!t)return r;if(typeof t!="function")throw new TypeError("invalid arguments passed to `useContextHook`. This hook must be called with zero arguments, a getter function or a path string.");let i=t(r);if(!n||!o)return i;let s=t(n);return o(s,i)?s:i}}function Nl(e){let t=Ml(null);return Rl(()=>{t.current=e}),t.current}var Rl=typeof document<"u"?vl:Tl;function Dn(e,t){return _n(o=>{let r=Bn(null),n=Bn(void 0),i=t?.(o),[s,a]=Ll(()=>e({get:On(r),set:Hn(n),previousContext:void 0,props:o,state:i})),l=[...Object.values(o),i];return Al(()=>{l.length!==0&&a(c=>e({get:On(r),set:Hn(n),previousContext:c,props:o,state:i}))},l),r.current=s,n.current=a,s})}function On(e){return t=>{if(!e.current)throw new Error("`get` called outside of function scope. `get` can only be called within a function.");if(!t)return e.current;if(typeof t!="function")throw new TypeError("Invalid arguments passed to `useContextHook`. The hook must be called with zero arguments, a getter function or a path string.");return t(e.current)}}function Hn(e){return t=>{if(!e.current)throw new Error("`set` called outside of function scope. `set` can only be called within a function.");e.current(o=>({...o,...typeof t=="function"?t(o):t}))}}import _l from"react";import at from"styled-components";import{jsx as ee,jsxs as Pt}from"react/jsx-runtime";var Bl=at.h1`
|
|
1380
1380
|
color: ${({theme:e})=>e.dangerColor};
|
|
1381
1381
|
`,Ol=at.div`
|
|
1382
1382
|
display: grid;
|
|
1383
1383
|
gap: 12px;
|
|
1384
|
-
`,
|
|
1384
|
+
`,Do=at.div`
|
|
1385
1385
|
display: grid;
|
|
1386
1386
|
gap: 8px;
|
|
1387
|
-
`,
|
|
1387
|
+
`,Vo=at.div`
|
|
1388
1388
|
font-weight: 600;
|
|
1389
1389
|
`,Fo=at.pre`
|
|
1390
1390
|
background: ${({theme:e})=>e.preBgColor};
|
|
@@ -1393,13 +1393,13 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1393
1393
|
overflow: auto;
|
|
1394
1394
|
white-space: pre-wrap;
|
|
1395
1395
|
word-break: break-word;
|
|
1396
|
-
`,Hl=e=>{let t=e.error?.name||"Error",o=e.error?.message||String(e.error),r=e.error?.stack,n=e.errorInfo?.componentStack;return Pt(Ol,{children:[
|
|
1397
|
-
`:p.content).join(""),a.push(m),l=[]}a.push(c)}else l.push(c)}),l.length>0){let c=new
|
|
1398
|
-
`)?e.slice(0,e.length-1):e}function
|
|
1399
|
-
`)}function
|
|
1400
|
-
`)}function
|
|
1396
|
+
`,Hl=e=>{let t=e.error?.name||"Error",o=e.error?.message||String(e.error),r=e.error?.stack,n=e.errorInfo?.componentStack;return Pt(Ol,{children:[ee(Bl,{children:"Sorry, something went wrong!"}),Pt(Do,{children:[ee(Vo,{children:"Message"}),ee(Fo,{children:`${t}: ${o}`})]}),r?Pt(Do,{children:[ee(Vo,{children:"Stack"}),ee(Fo,{children:r})]}):null,n?Pt(Do,{children:[ee(Vo,{children:"Component Stack"}),ee(Fo,{children:n.trim()})]}):null]})},$o=class extends _l.Component{constructor(t){super(t),this.state={hasError:this.props.hasError??!1}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,o){console.error("[ErrorBoundary]",t,o),this.setState({errorInfo:o})}render(){let t=this.props.fallback??Hl;if(this.state.hasError){let o=this.props.error??this.state.error??new Error("Unknown error");return console.error(o),this.props.onError?.({error:o,errorInfo:this.state.errorInfo}),ee(t,{error:o,errorInfo:this.state.errorInfo})}return this.props.children}},Re=$o;import{useRemirrorContext as Dl}from"@rme-sdk/react";import{memo as Vl}from"react";import{jsx as $l}from"react/jsx-runtime";var Fl=Vl(({children:e,...t})=>{let{getRootProps:o}=Dl(),{key:r,...n}=o(),i=Object.assign({position:"relative"},t.style);return $l("div",{...n,spellCheck:!1,...t,style:i,children:e})}),Vn=Fl;import{markdown as Vh}from"@codemirror/lang-markdown";import{CountExtension as Fh}from"@rme-sdk/extension-count";import{DocExtension as $h}from"@rme-sdk/main/extensions";import{createReactManager as zh}from"@rme-sdk/react";import{languages as zs}from"@codemirror/language-data";import{placeholder as Rh}from"@codemirror/view";import{extension as Ih,findParentNodeOfType as Ks,isElementDomNode as Ah,isEqual as Lh,isTextSelection as _h,NodeExtension as Bh,nodeInputRule as Ws,setBlockType as Oh}from"@rme-sdk/core";import{TextSelection as Wr}from"@rme-sdk/pm/state";import{Decoration as Hh,DecorationSet as Eo}from"@rme-sdk/pm/view";import{t as Dh}from"i18next";import{Mark as jo}from"@rme-sdk/pm/model";import Xn from"markdown-it";import zl from"markdown-it/lib/token.mjs";function Kl(e){return e.type==="list_item_open"&&["*","-"].includes(e.markup)}function Wl(e){return e.type==="paragraph_open"}function Ul(e){return e.type==="inline"}var ql=e=>{let t=!1,o=e.tokens,r=o.length;for(let n=r-3;n>=0;n--){let i=o[n];if(i.type==="ordered_list_open"&&i.attrs?.some(([s,a])=>{if(s==="start"){let l=parseInt(a,10);return!isNaN(l)&&l>=1&&i.attrPush(["order",a]),!0}return!1}),Kl(i)&&Wl(o[n+1])&&Ul(o[n+2])){let s=o[n+2],a=/^\[([ |x])\]\s?/.exec(s.content);if(a){let l=a[1]==="x",c=a[0];if(s.content=s.content.slice(c.length),s.children&&s.children.length>0){let m=s.children.find(p=>p.type==="text");if(m){let p=m.content;p.startsWith(c)&&(m.content=p.slice(c.length))}}let d=new zl("list_checkbox","input",0);d.attrPush(["type","checkbox"]),l&&d.attrPush(["checked",""]),o.splice(n+1,0,d),t=!0}}}return t};function Gl(e){e.core.ruler.push("markdown-it-list-checkbox",ql)}var Fn=Gl;import{normalizeReference as jl}from"markdown-it/lib/common/utils.mjs";var Ql=/^!\[([^\]]*)\]\[([^\]]+)\]/g;function Xl(e,t){let o=e.pos,r=e.src.slice(o),n=Ql.exec(r);if(!n)return!1;let i=n[1]||"",s=(n[2]||"").trim(),a=e.env&&e.env.rmeReferences,l=jl(s);if(!(a&&a[l]))return!1;if(!t){let d=e.push("md_image","",0);d.attrs={src:"",alt:i,"data-refer-label":s},d.tag="img"}return e.pos=o+n[0].length,!0}function zo(e){e.inline.ruler.push("reference_image",Xl)}function $n(e,t){var o=3,r="-",n=r.charCodeAt(0),i=r.length;function s(a,l,c,d){var m,p,f,u,y,b,x,E=!1,k=a.bMarks[l]+a.tShift[l],h=a.eMarks[l];if(l!==0||n!==a.src.charCodeAt(0))return!1;for(m=k+1;m<=h;m++)if(r[(m-k)%i]!==a.src[m]){x=m+1;break}if(f=Math.floor((m-k)/i),f<o)return!1;if(m-=(m-k)%i,d)return!0;for(p=l;p++,!(p>=c||a.src.slice(k,h)==="..."||(k=a.bMarks[p]+a.tShift[p],h=a.eMarks[p],k<h&&a.sCount[p]<a.blkIndent));)if(n===a.src.charCodeAt(k)&&!(a.sCount[p]-a.blkIndent>=4)){for(m=k+1;m<=h&&r[(m-k)%i]===a.src[m];m++);if(!(Math.floor((m-k)/i)<f)&&(m-=(m-k)%i,m=a.skipSpaces(m),!(m<h))){E=!0;break}}return y=a.parentType,b=a.lineMax,a.parentType="container",a.lineMax=p,u=a.push("fence",null,0),u.tag="code",u.hidden=!0,u.markup=a.src.slice(l,m),u.block=!0,u.map=[l,p+(E?1:0)],u.meta=a.src.slice(x,k-1),u.info="yaml",u.attrSet("front-matter",!0),u.content=u.meta,a.parentType=y,a.lineMax=b,a.line=p+(E?1:0),t(u.meta),!0}e.block.ruler.before("table","front_matter",s,{alt:["paragraph","reference","blockquote","list"]})}import te from"markdown-it/lib/token.mjs";import Yl from"void-elements";import zn from"html-parse-stringify";function Kn(e){return/^<\/[a-zA-Z0-9]+\s*>$/.test(e)}function Wn(e){let t=zn.parse(e);return t&&t.length===1}var pe=e=>zn.parse(e)[0]?.attrs||{};function Ie(e){let o=/<\/?([a-zA-Z0-9]+)\b[^>]*>/.exec(e);return o&&o.length>1?o[1].toLowerCase():""}function Nt(e){return e&&e.tagName?.toLocaleUpperCase()==="IMG"}function Un(e){let{attrs:t}=e;if(t["data-refer-label"])return`![${t.alt||""}][${t["data-refer-label"]}]`;let o=t.alt||"",r=t.src||"",n=t.title?` "${t.title}"`:"";return``}function Ae(e){let t="";if(e.attrs){let o=Object.entries(e.attrs).filter(([,r])=>r);o.length&&(t=`${o.map(([r,n])=>`${r}="${n}"`).join(" ")}`)}return e.voidElement?`<${e.tag} ${t} />`:`<${e.tag} ${t}></${e.tag}>`}var lt=["img","iframe","br"],oe=["html_inline_node","html_image","iframe_inline","html_br","math_inline","md_image"],Ko={img:"html_image",iframe:"iframe_inline",br:"html_br"};function Jl(e){let t=[],o=[];for(let r=0;r<e.length;r++){let n=e[r];if(qn(n)){let i=Ie(n.content),s={tag:i,voidElement:!!Yl[i],isClosingTag:Kn(n.content),index:r};s.voidElement?n.complete=!0:s.isClosingTag?t[t.length-1]?.tag===s.tag&&t.length>=1&&(o.push([t.pop(),s]),n.complete=!0):t.push(s)}}for(let r=0;r<o.length;r++){let n=o[r],i=n[0].index,s=n[1].index;o.findIndex(l=>l[0].index<i&&l[1].index>s)>=0&&(o.splice(r,1),r--)}return o}function Zl(e,t,o){let r=new te("html_inline_node","",0);for(let n=t;n<=o;n++)r.content+=e[n].content||"",r.complete=!0;return r.attrs={htmlText:r.content},e.splice(t,o-t+1,r),e}function ec(e){let t=Jl(e),o=0;t.forEach(r=>{let n=r[0].index+o,i=r[1].index+o;Zl(e,n,i),o+=n-i}),e.forEach((r,n)=>{if(qn(r)){let i=Ie(r.content);if(Ko[i]){let s=new te(Ko[i],"",0);s.content=r.content,s.attrs=pe(r.content),s.attrs.htmlText=s.content,e.splice(n,1,s)}else{let s=new te("html_inline_node","",0);s.content=r.content,s.attrs={htmlText:s.content},e.splice(n,1,s)}}})}function tc(e){return e.type==="inline"}function qn(e){return e.type==="html_inline"}function oc(e){return e.type==="html_block"}var rc=e=>{let o=e.tokens,r=o.length;for(let n=0;n<=r-1;n++){let i=o[n];if(tc(i)){let s=i.children;s&&ec(s);let a=[],l=[];if(s?.forEach((c,d)=>{if(oe.includes(c.type)){if(l.length>0){let m=new te("inline","",0);m.children=[...l],m.content=l.map(p=>p.type==="softbreak"?`
|
|
1397
|
+
`:p.content).join(""),a.push(m),l=[]}a.push(c)}else l.push(c)}),l.length>0){let c=new te("inline","",0);c.children=l,c.content=l.map(d=>d.content).join(""),a.push(c),l=[]}i.children&&a.length>0&&(o.splice(n,1,...a),r+=a.length-1)}else if(oc(i)){let s=Ie(i.content);if(Wn(i.content)&<.includes(s)){let a=new te(Ko[s],"",0);a.content=i.content,a.attrs=pe(i.content),o.splice(n,1,new te("paragraph_open","",0),a,new te("paragraph_close","",0))}}}return!1};function nc(e){e.core.ruler.push("markdown-it-html-inline",rc)}var Gn=nc;import Wo from"markdown-it/lib/token.mjs";var ic=e=>{let t=!1,o=e.tokens,r=o.length;for(let n=0;n<=r-1;n++){let i=o[n],s=[];if(i.type==="html_image"){let a=i.attrs?.src||"",l=i.attrs?.alt||"",c=new Wo("md_image","img",0);c.attrs={src:a,alt:l,"data-rme-type":"html"},o.splice(n,1,c),t=!0;continue}if(i.type==="inline"&&i.children&&i.children.some(a=>a.type==="image"||a.type==="html_image")){i.children.forEach(l=>{if(l.type==="image"){let c=l.attrs?.[0]?.[1]||"",d=l.attrs?.[1]?.[1]||l.content||"",m=new Wo("md_image","img",0);m.attrs={src:c,alt:d},s.push(m),t=!0}else if(l.type==="html_image"){let c=l.attrs?.src||"",d=l.attrs?.alt||"",m=new Wo("md_image","img",0);m.attrs={src:c,alt:d,"data-rme-type":"html"},s.push(m),t=!0}else s.push(l)}),o.splice(n,1,...s),r+=s.length-1;continue}}return t};function Uo(e){e.core.ruler.push("markdown-it-image",ic)}import jn from"markdown-it/lib/token.mjs";var sc=e=>{let t=!1,o=e.tokens,r=o.length;for(let n=0;n<=r-1;n++){let i=o[n];if(i.type==="math_block"){let a=i.content||"",l=new jn("math_block","",0);l.attrs={tex:i.attrs?.[0]?.[1]||""},l.content=a,l.block=!0,l.map=i.map,o[n]=l,t=!0}let s=[];if(i.type==="inline"&&i.children&&i.children.some(a=>a.type==="math_inline")){i.children.forEach(l=>{if(l.type==="math_inline"){let c=l.attrs?.tex||"",d=l.content||"",m=new jn("math_inline","",0);m.attrs={tex:c},m.content=d,s.push(m),t=!0}else s.push(l)}),o.splice(n,1,...s),r+=s.length-1;continue}}return t};function qo(e){e.inline.ruler.after("escape","math_inline",(t,o)=>{let r=t.pos;if(t.src.charCodeAt(r)!==36||t.src.charCodeAt(r+1)===36)return!1;let i=r+1,s=i;for(;(s=t.src.indexOf("$",s))!==-1;){let a=0,l=s-1;for(;l>=0&&t.src[l]==="\\";)a++,l--;if(a%2===0)break;s++}if(s===-1)return!1;if(!o){let a=t.push("math_inline","",0),l=t.src.slice(i,s),c=t.src.slice(r,s+1);a.attrs={tex:l}}return t.pos=s+1,!0}),e.block.ruler.after("fence","math_block",(t,o,r,n)=>{let i=t.bMarks[o]+t.tShift[o],s=t.eMarks[o];if(i+2>s||t.src.charCodeAt(i)!==36||t.src.charCodeAt(i+1)!==36)return!1;if(i+=2,n)return!0;let a=o,l=!1,c="";for(;a++,!(a>=r);){let p=t.bMarks[a]+t.tShift[a],f=t.eMarks[a];if(t.src.charCodeAt(p)===36&&t.src.charCodeAt(p+1)===36){l=!0,i=p+2;break}}if(!l)return!1;c=t.getLines(o+1,a,t.tShift[o+1],!0);let d=t.getLines(o,a+1,t.tShift[o],!0),m=t.push("math_block","div",0);return m.block=!0,m.content=c,m.attrs=[["tex",c]],m.map=[o,a+1],t.line=a+1,!0},{alt:["paragraph","reference","blockquote","list"]}),e.core.ruler.push("markdown-it-math",sc)}import ac from"markdown-it/lib/token.mjs";var lc=e=>{let t=!1,o=e.tokens,r=o.length;for(let n=0;n<=r-1;n++){let i=o[n];if(i.type==="fence"&&i.info==="mermaid"){let s=i.content,a=new ac("mermaid_node","",0);a.content=s,o[n]=a}}return t};function cc(e){e.core.ruler.push("markdown-it-mermaid",lc)}var Qn=cc;import{isSpace as Rt,normalizeReference as dc}from"markdown-it/lib/common/utils.mjs";import ct from"markdown-it/lib/token.mjs";function mc(e,t,o,r){let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],s=t+1;if(e.sCount[t]-e.blkIndent>=4||e.src.charCodeAt(n)!==91)return!1;function a(h){let g=e.lineMax;if(h>=g||e.isEmpty(h))return null;let S=!1;if(e.sCount[h]-e.blkIndent>3&&(S=!0),e.sCount[h]<0&&(S=!0),!S){let T=e.md.block.ruler.getRules("reference_def"),I=e.parentType;e.parentType="reference_def";let R=!1;for(let N=0,V=T.length;N<V;N++)if(T[N](e,h,g,!0)){R=!0;break}if(e.parentType=I,R)return null}let C=e.bMarks[h]+e.tShift[h],w=e.eMarks[h];return e.src.slice(C,w+1)}let l=e.src.slice(n,i+1);i=l.length;let c=-1;for(n=1;n<i;n++){let h=l.charCodeAt(n);if(h===91)return!1;if(h===93){c=n;break}else if(h===10){let g=a(s);g!==null&&(l+=g,i=l.length,s++)}else if(h===92&&(n++,n<i&&l.charCodeAt(n)===10)){let g=a(s);g!==null&&(l+=g,i=l.length,s++)}}if(c<0||l.charCodeAt(c+1)!==58)return!1;for(n=c+2;n<i;n++){let h=l.charCodeAt(n);if(h===10){let g=a(s);g!==null&&(l+=g,i=l.length,s++)}else if(!Rt(h))break}let d=e.md.helpers.parseLinkDestination(l,n,i);if(!d.ok)return!1;let m=e.md.normalizeLink(d.str);if(!e.md.validateLink(m))return!1;n=d.pos;let p=n,f=s,u=n;for(;n<i;n++){let h=l.charCodeAt(n);if(h===10){let g=a(s);g!==null&&(l+=g,i=l.length,s++)}else if(!Rt(h))break}let y=e.md.helpers.parseLinkTitle(l,n,i);for(;y.can_continue;){let h=a(s);if(h===null)break;l+=h,n=i,i=l.length,s++,y=e.md.helpers.parseLinkTitle(l,n,i,y)}let b;for(n<i&&u!==n&&y.ok?(b=y.str,n=y.pos):(b="",n=p,s=f);n<i;){let h=l.charCodeAt(n);if(!Rt(h))break;n++}if(n<i&&l.charCodeAt(n)!==10&&b)for(b="",n=p,s=f;n<i;){let h=l.charCodeAt(n);if(!Rt(h))break;n++}if(n<i&&l.charCodeAt(n)!==10)return!1;let x=l.slice(1,c),E=dc(x);if(!x)return!1;if(r)return!0;let k=e.push("reference_def","",0);return k.info=x,k.attrs=[["label",x],["href",m]],b&&k.attrs.push(["title",b]),k.map=[t,t+1],k.content=l,typeof e.env.rmeReferences>"u"&&(e.env.rmeReferences={}),typeof e.env.rmeReferences[x]>"u"&&(e.env.rmeReferences[E]={title:b,href:m,label:x}),e.line=s,!0}var pc=e=>{let t=!1,o=e.tokens,r=o.length;for(let n=0;n<=r-1;n++){let i=o[n];if(i.type==="reference_def"){console.log("reference_def",i);let s=i.attrs?.find(u=>u[0]==="label")?.[1]||"",a=i.attrs?.find(u=>u[0]==="href")?.[1]||"",l=i.attrs?.find(u=>u[0]==="title")?.[1]||"",c=new ct("reference_label","span",0),d=new ct("reference_href","span",0),m=new ct("reference_title","span",0);c.content=s,d.content=a,m.content=l;let p=new ct("reference_def_open","span",0),f=new ct("reference_def_close","span",0);p.attrs=[["label",s],["href",a],["title",l]],o.splice(n,1,p,c,d,m,f),n+=4,r+=4,t=!0}}return t};function Go(e){e.core.ruler.push("markdown-it-reference-def",pc),e.block.ruler.before("paragraph","reference_def",mc,{alt:["paragraph","reference"]})}var Qo=class extends Error{constructor(o,r){super(`MarkdownIt token type '${o}' not supported. `);this.tokenType=o;this.supportedTokenTypes=r;this.tokenType=o}},Xo=class{constructor(t,o){this.schema=t,this.stack=[{type:t.topNodeType,content:[]}],this.contextStack=[],this.contextTokenStack=[],this.marks=jo.none,this.tokenHandlers=o}top(){return this.stack[this.stack.length-1]}push(t){this.stack.length&&this.top().content.push(t)}addText(t){if(!t)return;let r=this.top().content,n=r[r.length-1],i=this.schema.text(t,this.marks),s;n&&(s=this.mergeTextNode(n,i))?r[r.length-1]=s:r.push(i)}mergeTextNode(t,o){if(t.isText&&o.isText&&jo.sameSet(t.marks,o.marks)){let r=(t.text||"")+(o.text||"");return t.type.schema.text(r,t.marks)}}openMark(t){this.marks=t.addToSet(this.marks)}closeMark(t){this.marks=t.removeFromSet(this.marks)}parseTokens(t){for(let o of t){let r=this.tokenHandlers[o.type];if(!r)return;if(!r)throw new Qo(o.type,Object.keys(this.tokenHandlers));o.type==="inline"&&o.children&&o.children.length>0?this.parseTokens(o.children):r(this,o)}}addNode(t,o,r){let n=t.createAndFill(o,r,this.marks);if(!n)throw new Error(`unexpected error: node is empty while creating ${t.name} node`);return this.push(n),n}openNode(t,o){this.stack.push({type:t,attrs:o,content:[]})}closeNode(){this.marks.length&&(this.marks=jo.none);let t=this.stack.pop();if(!t)throw new Error("unexpected error: info is empty");return this.addNode(t.type,t.attrs,t.content)}openContext(t,o){this.contextStack.push(t),this.contextTokenStack.push(o)}closeContext(){this.contextStack.pop(),this.contextTokenStack.pop()}closeContextToken(){return this.contextTokenStack.pop()}topContext(){return this.contextStack[this.contextStack.length-1]}topContextToken(){return this.contextTokenStack[this.contextTokenStack.length-1]}};function uc(e){return e.endsWith(`
|
|
1398
|
+
`)?e.slice(0,e.length-1):e}function fc(e,t,o){let r=o.nodes[e.node];if(r===void 0)throw new RangeError(`Can't find block type '${e.node}'`);e.hasOpenClose?(t[e.token+"_open"]=(n,i)=>{let s=e.getAttrs?e.getAttrs(i):void 0;n.openNode(r,s)},t[e.token+"_close"]=n=>{n.closeNode()}):t[e.token]=(n,i)=>{let s=e.getAttrs?e.getAttrs(i):void 0;n.openNode(r,s),n.addText(uc(i.content)),n.closeNode()}}function hc(e,t){t[e.token+"_open"]=(o,r)=>{o.openContext(e.context,r)},t[e.token+"_close"]=o=>{o.closeContext()}}function gc(e,t,o){let r=o.nodes[e.token];if(r===void 0)throw new RangeError(`Can't find inline type '${e.token}'`);t[e.token]=(n,i)=>{let s=i.attrs||null,a;i.content&&!r.isAtom&&(a=o.text(i.content));let l=o.nodes[i.type]?.createAndFill(s,a);l&&n.push(l)}}function bc(e,t){t[e.token]=(o,r)=>{o.addText(e.getText(r))}}function yc(e,t){let o={};for(let r of t)switch(r.type){case 1:bc(r,o);break;case 2:fc(r,o,e);break;case 5:hc(r,o);break;case 3:o[r.token]=()=>{};break;case 6:gc(r,o,e);break;case 4:o[r.token]=r.handler;break;default:throw new Error("unknown parser rule type")}return o}var It=class{constructor(t,o){this.schema=t,this.tokenizer=Xn("commonmark",{html:!0}).disable(["emphasis","autolink","backticks","entity","reference","link"]).enable(["table"]).use($n,function(r){console.log("Front matter content:",r)}).use(Gn).use(Fn).use(Qn).use(qo).use(Uo).use(zo).use(Go),this.tokenizer.validateLink=r=>r.startsWith("data:")?!0:Xn().validateLink(r),this.tokenizer.normalizeLink=r=>r,this.tokenHandlers=yc(t,o)}parse(t){let o=new Xo(this.schema,this.tokenHandlers),r,n=this.tokenizer.parse(t,{});o.parseTokens(n);do r=o.closeNode();while(o.stack.length);return r}};import{DropCursorExtension as kh}from"@rme-sdk/main/extensions";import{findParentNodeOfType as mi}from"@rme-sdk/core";import{TableCellExtension as _c,TableExtension as Bc,TableHeaderCellExtension as Oc,TableRowExtension as Hc}from"@rme-sdk/extension-tables";import{TextSelection as nr}from"@rme-sdk/pm/state";import{TableMap as pi}from"@rme-sdk/pm/tables";import{convertCommand as xc,isTextSelection as kc}from"@rme-sdk/core";import{Fragment as Cc}from"@rme-sdk/pm/model";function Yn(e,t,o){return{Enter:xc((r,n)=>{if(!kc(r.selection))return!1;let i=r.selection.$cursor;if(!i)return!1;let{nodeBefore:s}=r.selection.$from,a=s&&s.isText&&s.text;if(!a)return!1;let l=e.exec(a);if(!l)return!1;let[c,d]=[i.pos-l[0].length,i.pos],m=r.doc.resolve(c),p=t({match:l,start:c,end:d}),f=m.node(-1),u=m.index(-1),y=m.indexAfter(-1);if(!f.canReplace(u,y,Cc.from(p)))return!1;let b=r.tr;return b=b.replaceRangeWith(c,d,p),o&&(b=o({tr:b})),n&&n(b),!0})}}import{findParentNodeOfType as Yo}from"@rme-sdk/core";import{CellSelection as At,TableMap as wc}from"@rme-sdk/pm/tables";function Jn(e,t){let o=Yo({selection:e.doc.resolve(t),types:"tableCell"});return o?(e.setSelection(At.rowSelection(e.doc.resolve(o.pos))),!0):!1}function Zn(e,t){let o=Yo({selection:e.doc.resolve(t),types:"tableCell"});return o?(e.setSelection(At.colSelection(e.doc.resolve(o.pos))),!0):!1}function ei(e,t){let o=Yo({selection:e.doc.resolve(t),types:"table"});if(!o)return!1;let r=wc.get(o.node);if(!r.map.length)return!1;let n=r.map[0],i=r.map[r.map.length-1];return e.setSelection(At.create(e.doc,o.start+n,o.start+i)),!0}function ti(e,t){return e.setSelection(At.create(e.doc,t)),!0}import{PlainExtension as Lc}from"@rme-sdk/core";import{cx as or}from"@rme-sdk/core";import{isCellSelection as ci,TableMap as Nc}from"@rme-sdk/pm/tables";import{Decoration as er,DecorationSet as tr}from"@rme-sdk/pm/view";import{getDocument as Ec,getId as Sc}from"@ocavue/utils";function Lt(e,t,...o){let r=document.createElement(e);return t&&Object.entries(t).forEach(([n,i])=>{typeof i=="string"?r.setAttribute(n,i):r[n]=i}),o.length&&r.append(...o),r}function oi(e,t=!1){let o=e.cloneNode(!0),r=Tc(e,o,t);return[o,r]}function Tc(e,t,o){let r=[e],n=[t],i=[];for(;r.length>0&&r.length===n.length;){let s=r.shift(),a=n.shift();if(!s||!a)break;let l=vc(s,a,o);l&&i.push(l),r.push(...Array.from(s.children)),n.push(...Array.from(a.children))}return i.join(`
|
|
1399
|
+
`)}function vc(e,t,o){if(!e||!t)return"";let r=e.ownerDocument?.defaultView;if(!r)return"";let n=r.getComputedStyle(e),i=t.style;if(!n||!i)return"";for(let a of n)i.setProperty(a,n.getPropertyValue(a),o?"important":n.getPropertyPriority(a)||"");let s=[];for(let a of[":before",":after"]){let l=r.getComputedStyle(e,a),c=r.getComputedStyle(t,a);if(!l)continue;let d=l.getPropertyValue("content");if(!(d&&d!=="none"&&d!=="normal"))continue;let p=[];for(let u of l){let y=l.getPropertyValue(u),b=l.getPropertyPriority(u),x=c.getPropertyValue(u),E=c.getPropertyPriority(u);(y!==x||b!==E)&&p.push(`${u}: ${y}${b?" !important":""};`)}let f=`clone-pseudo-element-${Sc()}`;t.classList.add(f),s.push(`.${f}${a} { ${p.join(" ")} }`)}return s.join(`
|
|
1400
|
+
`)}function ri(e,t){if(!t)return;let r=Ec(e).createElement("style");r.textContent=t,e.appendChild(r)}function Le(e,t){let{iconName:o="ri-expand-left-right-line",labelName:r=""}=t,n=["cm-render-node-label-icon",o].join(" "),i=document.createElement("span");return i.innerHTML=`<i class="${n}"></i>${r}`,i.classList.add("cm-render-node-label"),e.appendChild(i),e.classList.add("cm-render-node"),i}import{findParentNodeOfType as Mc}from"@rme-sdk/core";import{TableMap as _t}from"@rme-sdk/pm/tables";function re(e){return Mc({selection:e,types:"table"})}function Jo(e,t,o){return t.cellsInRect(o).map(r=>{let n=e.node.nodeAt(r),i=r+e.start;if(!n)throw new RangeError(`unable to find a table cell node at position ${i}`);return{node:n,pos:i}})}function ii(e,t){let o=re(e);if(!o)return[];let r=_t.get(o.node);return t<0||t>=r.width?[]:Jo(o,r,{top:0,bottom:r.height,left:t,right:t+1})}function si(e,t){let o=re(e);if(!o)return[];let r=_t.get(o.node);return t<0||t>=r.height?[]:Jo(o,r,{top:t,bottom:t+1,left:0,right:r.width})}function ai(e,t){let o=re(e);if(!o)return[];let r=_t.get(o.node);return Jo(o,r,t)}var ni=new WeakMap;function li(e){let t=ni.get(e);return t||(t=Pc(e),ni.set(e,t)),t}function Pc(e){let t=e.isColSelection(),o=e.isRowSelection();return t&&o?"table":t?"column":o?"row":"cell"}function Zo(e){let t=e.$anchorCell.node(-1),o=_t.get(t),r=e.$anchorCell.start(-1);return o.rectBetween(e.$anchorCell.pos-r,e.$headCell.pos-r)}var rr="data-table-selector-type",_e=e=>{e.preventDefault()};function Rc(e,t,o){let r=Lt("div",{class:or("rme-table-body-selector rme-table-selector",o&&"rme-table-selector-highlight"),contenteditable:"false",[rr]:"body",onmousedown:_e,onmouseup:_e,onclick:n=>{n.preventDefault();let i=t();if(!i)return;let s=e.state.tr;ei(s,i)&&e.dispatch(s)}});return r.innerHTML='<svg viewBox="0 0 24 24" width="100%" height="100%" fill="currentColor" style="display: block;"><path d="M10 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm4 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 6a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-4 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 6a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm4 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"></path></svg>',r}function Ic(e,t,o){return Lt("div",{class:or("rme-table-row-selector rme-table-selector",o&&"rme-table-selector-highlight"),contenteditable:"false",[rr]:"row",onmousedown:_e,onmouseup:_e,onclick:r=>{r.preventDefault();let n=t();if(!n)return;let i=e.state.tr;Jn(i,n)&&e.dispatch(i)}})}function Ac(e,t,o){return Lt("div",{class:or("rme-table-column-selector rme-table-selector",o&&"rme-table-selector-highlight"),contenteditable:"false",[rr]:"column",onmousedown:_e,onmouseup:_e,onclick:r=>{r.preventDefault();let n=t();if(!n)return;let i=e.state.tr;Zn(i,n)&&e.dispatch(i)}})}function di(e){let{doc:t,selection:o}=e,r=re(o);if(!r)return tr.empty;let n=Nc.get(r.node);if(!n.map.length)return tr.empty;let i=[],s=ci(o)?li(o):null,a=-1,l=-1,c=-1,d=-1;if(ci(o)){if(s==="table")a=0,l=n.height-1,c=0,d=n.width-1;else if(s==="row"){let f=Zo(o);a=f.top,l=f.bottom-1}else if(s==="column"){let f=Zo(o);c=f.left,d=f.right-1}}let m={side:-1,ignoreSelection:!0},p=ai(o,{top:0,bottom:1,left:0,right:1})[0];return i.push(er.widget(p.pos+1,(f,u)=>Rc(f,u,s==="table"),{...m,key:`table-body-selector-${s==="table"}`})),ii(o,0).forEach((f,u)=>{let y=u>=a&&u<=l;i.push(er.widget(f.pos+1,(b,x)=>Ic(b,x,y),{...m,key:`table-row-selector-${u}-${y}`}))}),si(o,0).forEach((f,u)=>{let y=u>=c&&u<=d;i.push(er.widget(f.pos+1,(b,x)=>Ac(b,x,y),{...m,key:`table-column-selector-${u}-${y}`}))}),tr.create(t,i)}var Bt=class extends Lc{get name(){return"tableSelector"}createDecorations(t){return di(t)}};var Ot=class extends Bc{constructor(){super(...arguments);this.createKeymap=()=>{let o=this.store.schema;return{...Yn(/^\|((?:[^\|]+\|){2,})\s*$/,({match:r})=>{let n=r[1].split("|").slice(0,-1).map(d=>(d=d.trim(),d||(d=" "),o.text(d))),i=n.map(d=>o.nodes.tableCell.create(null,d)),s=n.map(()=>o.nodes.tableCell.create(null)),a=o.nodes.tableRow.create(null,i),l=o.nodes.tableRow.create(null,s);return o.nodes.table.create(null,[a,l])},({tr:r})=>{let n=r.selection?.$cursor;if(n){let i=n.depth-1,s=n.posAtIndex(n.index(i)-1,i),a=r.doc.resolve(s);return r.setSelection(nr.near(a))}else return r}),ArrowUp:({state:r,dispatch:n})=>{let{selection:i}=r,{$head:s}=i,a=mi({selection:s,types:"tableCell"});if(!a)return!1;let c=a.node.content,d=s.pos-a.pos-1,m=ui(c);if(!(d<=m[0].end))return!1;let f=re(i);if(!f)return!1;let u=pi.get(f.node),b=a.pos-f.start,x=-1,E=-1;for(let S=0;S<u.height;S++){for(let C=0;C<u.width;C++){let w=S*u.width+C;if(u.map[w]===b){x=S,E=C;break}}if(x!==-1)break}if(x===-1||x===0)return!1;let k=u.map[(x-1)*u.width+E];if(k===void 0)return!1;let h=f.start+k,g=r.tr.setSelection(nr.near(r.doc.resolve(h+1)));return n&&n(g),!0},ArrowDown:({state:r,dispatch:n})=>{let{selection:i}=r,{$head:s}=i,a=mi({selection:s,types:"tableCell"});if(!a)return!1;let c=a.node.content,d=s.pos-a.pos-1,m=ui(c);if(!(d>=m[m.length-1].start))return!1;let f=re(i);if(!f)return!1;let u=pi.get(f.node),b=a.pos-f.start,x=-1,E=-1;for(let S=0;S<u.height;S++){for(let C=0;C<u.width;C++){let w=S*u.width+C;if(u.map[w]===b){x=S,E=C;break}}if(x!==-1)break}if(x===-1||x===u.height-1)return!1;let k=u.map[(x+1)*u.width+E];if(k===void 0)return!1;let h=f.start+k,g=r.tr.setSelection(nr.near(r.doc.resolve(h+1)));return n&&n(g),!0}}}}get name(){return"table"}fromMarkdown(){return[{type:2,token:"table",node:this.name,hasOpenClose:!0},{type:3,token:"thead_open"},{type:3,token:"thead_close"},{type:3,token:"tbody_open"},{type:3,token:"tbody_close"}]}toMarkdown({state:o,node:r}){let n=[],i=[];r.forEach((d,m,p)=>{let f=[];d.forEach((u,y,b)=>{let x="";for(let E=0;E<u.childCount;E++){let k=u.child(E);k.textContent?x+=k.textContent:k.type.name==="html_br"&&(x+="<br/>")}f.push(Dc(x.trim())),p===0&&(i[b]=1)}),n.push(f)});let s=i.length,a=new Array(s);n.forEach(d=>{d.forEach((m,p)=>{a[p]||(a[p]=3),a[p]=Math.max(m.length,a[p])})});let l=new Array(s);a.forEach((d,m)=>{switch(i[m]){case 4:l[m]=":"+"-".repeat(d-1);break;case 3:l[m]="-".repeat(d-1)+":";break;case 2:l[m]=":"+"-".repeat(d-2)+":";break;default:l[m]="-".repeat(d);break}}),n.splice(1,0,l);let c="";n.forEach(d=>{d.forEach((m,p)=>{c+="| ";let f=a[p];if(i[p]===2){let u=" ".repeat(Math.round((f-m.length)/2));c+=(u+m+u).padEnd(f)}else i[p]===3?c+=m.padStart(f):c+=m.padEnd(f);c+=" "}),c+=`|
|
|
1401
1401
|
`}),c+=`
|
|
1402
|
-
`,o.text(c,!1)}createExtensions(){return[]}},Ht=class extends
|
|
1402
|
+
`,o.text(c,!1)}createExtensions(){return[]}},Ht=class extends Hc{get name(){return"tableRow"}createNodeSpec(t,o){return{...super.createNodeSpec(t,o),allowGapCursor:!1}}fromMarkdown(){return[{type:2,token:"tr",node:this.name,hasOpenClose:!0}]}toMarkdown(){}createExtensions(){return[]}},Dt=class extends Oc{get name(){return"tableHeaderCell"}fromMarkdown(){return[]}toMarkdown(){}createExtensions(){return[]}},Vt=class extends _c{get name(){return"tableCell"}createNodeSpec(t,o){return{...super.createNodeSpec(t,o),content:"inline*"}}createExtensions(){return[new Bt]}createCommands(){return{selectTableCell:({pos:t})=>({tr:o,dispatch:r})=>ti(o,t)?(r?.(o),!0):!1}}fromMarkdown(){return[{type:2,token:"th",node:this.name,hasOpenClose:!0},{type:2,token:"td",node:this.name,hasOpenClose:!0}]}toMarkdown(){}};function Dc(e){return e.replace(/\n/g,"")}function ui(e){let t=[{start:0,end:e.firstChild?.nodeSize||0,isText:e.firstChild?.isText||!1}],o=t[0];for(let r=1;r<e.childCount;r++){let n=e.child(r);if(n.isText&&o?.isText)o.end+=n.nodeSize;else{let i=o.end;t.push({start:i,end:i+n.nodeSize,isText:n.isText}),o=t[t.length-1]}}return t}import{CountExtension as Ch}from"@rme-sdk/extension-count";import{corePreset as wh}from"@rme-sdk/preset-core";import{ReactComponentExtension as Eh}from"@rme-sdk/react";import{extension as qc,ExtensionTag as bi,NodeExtension as Gc}from"@rme-sdk/core";import{TextSelection as jc}from"@rme-sdk/pm/state";import{t as U}from"i18next";import{useEffect as Vc,useRef as fi,useState as mt}from"react";import ue from"styled-components";import{Button as Be,Menu as hi}from"zens";var dt=e=>e.state.plugins.find(o=>o.spec.initialState?.isTransformerFlag===!0)?.getState(e.state)||{};import{jsx as F,jsxs as X}from"react/jsx-runtime";function gi(e){let{supportProviderInfosMap:t,generateText:o,getPosition:r,defaultSelectProvider:n}=e,i=r(),[s,a]=mt(0),l=Object.keys(t),[c,d]=mt(n||l[0]),m=t[c],[p,f]=mt(m.models[0]),[u,y]=mt(""),[b,x]=mt(""),E=fi(null),k=fi(null);Vc(()=>{E.current?.focus()},[]);let h=dt(e.view),g=async()=>{a(1);try{k.current&&k.current.abort(),k.current=new AbortController;let w=await o({provider:c,model:p,prompt:b});if(k.current?.signal.aborted)return;w?(y(w),a(2)):a(3)}catch{a(3)}},S=()=>{switch(s){case 0:return X(Be,{size:"small",btnType:"primary",onClick:g,children:[F("i",{className:"ri-bard-line"}),U("ai.generate")]});case 1:return[X(Be,{size:"small",disabled:!0,children:[U("common.loading"),"..."]},"loading"),X(Be,{size:"small",onClick:()=>{k.current?.abort(),a(0)},children:[F("i",{className:"ri-stop-line"}),U("ai.stop")]},"stop")];case 2:return[F(Be,{size:"small",btnType:"primary",onClick:()=>{if(u)try{let w=h.stringToDoc?.(u);if(w&&i!==void 0){let T=e.view.state.tr.replaceWith(i,i+1,w);e.view.dispatch(T)}}catch(w){console.log("ai-node error",w)}},children:U("common.accept")},"accept"),F(Be,{size:"small",onClick:g,children:U("ai.regenerate")},"regenerate")];case 3:return F(Be,{size:"small",btnType:"primary",onClick:g,children:U("ai.retry")})}};return X(Fc,{children:[X("div",{children:[(()=>{if(s===0)return null;if(s===1)return X(ir,{children:[U("common.loading"),"..."]},1);if(s===2)return X("div",{children:[F(ir,{children:U("ai.preview")},2),F("blockquote",{children:u})]});if(s===3)return F(Kc,{children:U("ai.error")})})(),F(ir,{children:U("ai.prompt")}),F(zc,{ref:E,value:b,onChange:w=>x(w.target.value)})]}),F("div",{className:"divider"}),X(Wc,{children:[X($c,{children:[F(hi,{menuButtonProps:{size:"small",style:{marginRight:"8px"}},items:l.map(w=>({label:w,value:w,handler:()=>{d(w),f(t[w]?.models[0])}})),children:c||"Select Provider"}),F(hi,{menuButtonProps:{size:"small"},items:m.models.map(w=>({label:w,value:w,handler:()=>{f(w)}})),children:p||"Select Model"})]}),F(Uc,{children:S()})]})]})}var Fc=ue.div`
|
|
1403
1403
|
padding: 16px;
|
|
1404
1404
|
border: 1px solid ${e=>e.theme.borderColor};
|
|
1405
1405
|
user-select: none;
|
|
@@ -1410,14 +1410,14 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1410
1410
|
margin: 8px 0;
|
|
1411
1411
|
border-bottom: 1px solid ${e=>e.theme.borderColor};
|
|
1412
1412
|
}
|
|
1413
|
-
|
|
1413
|
+
`,$c=ue.div`
|
|
1414
1414
|
display: flex;
|
|
1415
1415
|
margin-bottom: 8px;
|
|
1416
1416
|
font-size: 12px;
|
|
1417
1417
|
margin-right: 8px;
|
|
1418
1418
|
user-select: none;
|
|
1419
1419
|
-webkit-user-select: none;
|
|
1420
|
-
`,
|
|
1420
|
+
`,zc=ue.textarea`
|
|
1421
1421
|
width: -webkit-fill-available;
|
|
1422
1422
|
min-height: 80px;
|
|
1423
1423
|
max-height: 200px;
|
|
@@ -1431,14 +1431,14 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1431
1431
|
&:focus {
|
|
1432
1432
|
background-color: transparent;
|
|
1433
1433
|
}
|
|
1434
|
-
`,
|
|
1434
|
+
`,ir=ue.div`
|
|
1435
1435
|
margin-right: 8px;
|
|
1436
1436
|
margin-bottom: 8px;
|
|
1437
1437
|
font-size: 12px;
|
|
1438
1438
|
font-weight: bold;
|
|
1439
1439
|
user-select: none;
|
|
1440
1440
|
-webkit-user-select: none;
|
|
1441
|
-
`,
|
|
1441
|
+
`,Kc=ue.div`
|
|
1442
1442
|
margin-right: 8px;
|
|
1443
1443
|
margin-bottom: 8px;
|
|
1444
1444
|
font-size: 12px;
|
|
@@ -1446,28 +1446,28 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1446
1446
|
color: ${e=>e.theme.warnColor};
|
|
1447
1447
|
user-select: none;
|
|
1448
1448
|
-webkit-user-select: none;
|
|
1449
|
-
`,
|
|
1449
|
+
`,Wc=ue.div`
|
|
1450
1450
|
display: flex;
|
|
1451
1451
|
justify-content: space-between;
|
|
1452
1452
|
align-items: center;
|
|
1453
|
-
`,
|
|
1453
|
+
`,Uc=ue.div`
|
|
1454
1454
|
display: flex;
|
|
1455
1455
|
align-items: center;
|
|
1456
1456
|
gap: 8px;
|
|
1457
|
-
`;import{jsx as
|
|
1457
|
+
`;import{jsx as Qc}from"react/jsx-runtime";var Oe=class extends Gc{constructor(){super(...arguments);this.ReactComponent=o=>Qc(gi,{...o,...this.options})}get name(){return"ai_block"}createTags(){return[bi.Block,bi.Media]}createCommands(){return{createAiBlock:()=>o=>{let{tr:r,dispatch:n,state:i}=o;if(!r.selection.empty)return!1;let s=r.selection.anchor,a=this.type.create({});return n?.(r.replaceSelectionWith(a).scrollIntoView().setSelection(jc.near(r.doc.resolve(s)))),!0}}}createNodeSpec(o,r){return{inline:!1,selectable:!0,...r,attrs:{...o.defaults()}}}};Oe=v([qc({defaultOptions:{supportProviderInfosMap:{openai:{models:["gpt-3.5-turbo","gpt-4"]}}},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Oe);import{BlockquoteExtension as Xc}from"@rme-sdk/main/extensions";var Ft=class extends Xc{fromMarkdown(){return[{type:2,token:"blockquote",node:this.name,hasOpenClose:!0}]}toMarkdown({state:t,node:o}){t.wrapBlock("> ",null,o,()=>t.renderContent(o))}};import{extension as Yc,PlainExtension as Jc}from"@rme-sdk/core";import{DOMParser as Zc,Fragment as sr,Slice as yi}from"@rme-sdk/pm/model";function ar(e){if(!e)return!1;if(Array.isArray(e))return e.length>1?!1:ar(e[0]);let t=e.content;return t?ar(t):e.type==="text"}function ed(e){if(e.content.childCount===1){let t=e.content.firstChild;if(t?.type.name==="text"&&t.marks.length===0)return t;if(t?.type.name==="paragraph"&&t.childCount===1){let o=t.firstChild;if(o?.type.name==="text"&&o.marks.length===0)return o}}return!1}var He=class extends Jc{constructor(){super(...arguments);this.handleClipboardData=async({html:o="",text:r="",view:n})=>{if(console.log("clipboard html",o),console.log("clipboard text",r),!n.props.editable?.(n.state)||n.state.selection.$from.node().type.spec.code||o.length===0&&r.length===0)return!1;let l=dt(n).stringToDoc,c=n.state.schema,d=Zc.fromSchema(c),m;if(o.length===0){let u=l?.(r);if(!u||typeof u=="string")return!1;let y=[];if(u.content.forEach((b,x)=>{b.type.name==="paragraph"&&x===0?b.content.forEach(E=>{y.push(E)}):y.push(b)}),this.processImagesInNodesSync(y,n),y.length===1)n.dispatch(n.state.tr.replaceSelectionWith(y[0],!1));else{let b=sr.from(y);n.dispatch(n.state.tr.replaceSelection(new yi(b,0,0)))}return!0}else{let u=document.createElement("template");u.innerHTML=o,m=u.content.cloneNode(!0);try{m.querySelectorAll("a").forEach(b=>{let x=b.getAttribute("href"),E=b.textContent||"";x&&(b.textContent=`[${E}](${x})`)})}catch{}u.remove()}let p=d.parseSlice(m),f=ed(p);return f?(f.attrs["data-rme-from-paste"]="true",n.dispatch(n.state.tr.replaceSelectionWith(f,!0)),!0):(this.processImagesInSliceAsync(p,n),n.dispatch(n.state.tr.replaceSelection(p)),!0)}}get name(){return"clipboard"}createPlugin(){return{props:{handlePaste:(o,r)=>{let{clipboardData:n}=r;if(!n||o.state.selection.$from.node().type.spec.code)return!1;let s=n.getData("text/plain"),a=n.getData("text/html");return this.handleClipboardData({text:s,html:a,view:o}),!0},clipboardTextSerializer:(o,r)=>{let n=r.state.schema,s=dt(r).docToString;if(ar(o.content.toJSON()))return o.content.textBetween(0,o.content.size,`
|
|
1458
1458
|
|
|
1459
|
-
`);let l=n.topNodeType.createAndFill(void 0,o.content);return l&&s?.(l)||""},transformCopied:o=>{let r=s=>{if(s.marks.some(l=>l.attrs?.ignoreWhenCopy===!0&&s.type.name==="text")){let l=[];return s.content&&s.content.size>0&&s.content.forEach(c=>{l.push(...r(c))}),l}else{if(s.content&&s.content.size>0){let l=[];if(s.content.forEach(c=>{l.push(...r(c))}),l.length!==s.content.childCount)return[s.copy(
|
|
1459
|
+
`);let l=n.topNodeType.createAndFill(void 0,o.content);return l&&s?.(l)||""},transformCopied:o=>{let r=s=>{if(s.marks.some(l=>l.attrs?.ignoreWhenCopy===!0&&s.type.name==="text")){let l=[];return s.content&&s.content.size>0&&s.content.forEach(c=>{l.push(...r(c))}),l}else{if(s.content&&s.content.size>0){let l=[];if(s.content.forEach(c=>{l.push(...r(c))}),l.length!==s.content.childCount)return[s.copy(sr.from(l))]}return[s]}},n=[];o.content.forEach(s=>{n.push(...r(s))});let i=sr.from(n);return new yi(i,o.openStart,o.openEnd)}}}}createCommands(){return{copy:()=>o=>o.tr.selection.empty?!1:(o.dispatch&&document.execCommand("copy"),!0),paste:()=>o=>{let{view:r}=o;return!r||!this.options.clipboardReadFunction?!1:(this.options.clipboardReadFunction().then(async n=>{let{html:i,text:s}=n;return!i&&!s?!1:await this.handleClipboardData({html:i,text:s,view:r})}),!0)},cut:()=>o=>o.tr.selection.empty?!1:(o.dispatch&&document.execCommand("cut"),!0)}}processImageNode(o,r){o.attrs["data-rme-from-paste"]="true"}processImagesInSliceAsync(o,r){let n=[],i=0,s=(a,l)=>{(a.type.name==="html_image"||a.type.name==="md_image")&&a.attrs.src&&n.push({node:a,pos:l}),a.content&&a.content.size>0&&a.content.forEach((c,d)=>{s(c,l+d+1)})};o.content.forEach((a,l)=>{s(a,i+l)}),n.map(({node:a,pos:l})=>{if(a.attrs.src)return this.processImageNode(a,r)})}processImagesInNodesSync(o,r){let n=i=>{(i.type.name==="html_image"||i.type.name==="md_image")&&i.attrs.src&&this.processImageNode(i,r),i.content&&i.content.size>0&&i.content.forEach(s=>{n(s)})};o.forEach(n)}};He=v([Yc({defaultOptions:{ignoredNodeTypes:[]},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],He);import{autocompletion as xi,closeBrackets as ki,closeBracketsKeymap as td,completionKeymap as od}from"@codemirror/autocomplete";import{defaultKeymap as Ci,history as rd,historyKeymap as nd}from"@codemirror/commands";import{bracketMatching as wi,defaultHighlightStyle as Ei,foldGutter as id,foldKeymap as sd,indentOnInput as ad,syntaxHighlighting as Si}from"@codemirror/language";import{lintKeymap as ld}from"@codemirror/lint";import{highlightSelectionMatches as Ti,searchKeymap as cd}from"@codemirror/search";import{EditorState as dd}from"@codemirror/state";import{crosshairCursor as vi,dropCursor as Mi,EditorView as Pi,highlightActiveLine as md,highlightActiveLineGutter as pd,highlightSpecialChars as Ni,keymap as Ri,lineNumbers as Ii}from"@codemirror/view";import{EditorView as Aw}from"@codemirror/view";var Ai=[Pi.lineWrapping,Ii({formatNumber:e=>e%10===0||e===1?`${e}`:""}),pd(),Ni(),rd(),id(),Mi(),dd.allowMultipleSelections.of(!0),ad(),Si(Ei,{fallback:!0}),wi(),ki(),xi(),vi(),md(),Ti(),Ri.of([...td,...Ci,...cd,...nd,...sd,...od,...ld])],lr=[Mi(),Ni(),Si(Ei,{fallback:!0}),wi(),ki(),xi(),vi(),Ti(),Ri.of([...Ci])],cr=e=>{let t=[lr];return e?.lineWrapping&&t.push(Pi.lineWrapping),e?.lineNumbers&&t.push(Ii()),t};import{extension as fd,PlainExtension as hd}from"@rme-sdk/core";import{Selection as ud}from"@rme-sdk/pm/state";function pt(e){return({dispatch:t,view:o,tr:r})=>{if(!o||!(r.selection.empty&&o.endOfTextblock(e)))return!1;let n=e==="left"||e==="up"?-1:1,i=r.selection.$head,s=ud.near(r.doc.resolve(n>0?i.after():i.before()),n);if(s.$head&&(s.$head.parent.type.name==="codeMirror"||s.$head.parent.type.name==="html_block"||s.$head.parent.type.name==="mermaid_node"||s.$head.parent.type.name==="math_block")){if(t?.(r.setSelection(s)),e==="down"&&s.$head.parent.type.name==="codeMirror"){let a=s.$head.before();requestAnimationFrame(()=>{o.dom.querySelector(`.code-block__menu[data-pos="${a}"]`)?.querySelector(".code-block__languages__input")?.focus()})}return!0}return!1}}var De=class extends hd{get name(){return"commonKeymap"}createKeymap(){return{ArrowLeft:pt("left"),ArrowRight:pt("right"),ArrowUp:pt("up"),ArrowDown:pt("down")}}};De=v([fd({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],De);import{extension as gd,isTextSelection as Li,PlainExtension as bd}from"@rme-sdk/core";import{Decoration as yd,DecorationSet as xd}from"@rme-sdk/pm/view";console.log("123");var Ve=class extends bd{get name(){return"copilot"}createPlugin(){let t={status:"idle",suggestion:"",pos:null,requestId:0},o=(s,a,l)=>{let c=a+l;for(;c>=0&&c<s.childCount;){let d=s.child(c);if(d.type.name==="paragraph")return d.textBetween(0,d.content.size,`
|
|
1460
1460
|
`,`
|
|
1461
|
-
`)||"";c+=l}return null},r=s=>{if(!
|
|
1461
|
+
`)||"";c+=l}return null},r=s=>{if(!Li(s.selection)||!s.selection.empty)return null;let a=s.selection.$from,l=a.parent;if(!l.isTextblock)return null;let c=l.textBetween(0,a.parentOffset,`
|
|
1462
1462
|
`,`
|
|
1463
1463
|
`),d=l.textBetween(a.parentOffset,l.content.size,`
|
|
1464
1464
|
`,`
|
|
1465
1465
|
`),m=this.options.maxContextChars??500,p=m>0&&c.length>m?c.slice(c.length-m):c,f=a.depth-1,u=f>=0?a.node(f):null,y=f>=0?a.index(f):-1,b=u&&y>=0?o(u,y,-1):null,x=u&&y>=0?o(u,y,1):null;return!(p.trim()||d.trim()||b?.trim()||x?.trim())?null:{context:{nodeType:l.type.name,textBefore:p,textAfter:d,prevParagraph:b,nextParagraph:x},pos:s.selection.from}},n=(s,a)=>{let l=s.replace(/\r\n/g,`
|
|
1466
|
-
`);l.startsWith(a)&&(l=l.slice(a.length)),l=l.replace(/^\s+/,"");let c=this.options.maxSuggestionChars??500;return c>0&&l.length>c&&(l=l.slice(0,c)),l},i=(s,a)=>{let l=this.pluginKey.getState(s.state);if(!l||l.status!=="ready"||!l.suggestion)return!1;a?.preventDefault();let c=l.requestId+1;return s.dispatch(s.state.tr.insertText(l.suggestion).setMeta(this.pluginKey,{type:"clear",requestId:c})),!0};return{key:this.pluginKey,initialState:t,state:{init:()=>t,apply:(s,a)=>{let l=s.getMeta(this.pluginKey);if(l){if(l.type==="loading")return{...a,status:"loading",suggestion:"",pos:l.pos,requestId:l.requestId};if(l.type==="ready")return{...a,status:"ready",suggestion:l.suggestion,pos:l.pos,requestId:l.requestId};if(l.type==="clear")return{...a,status:"idle",suggestion:"",pos:null,requestId:l.requestId}}return s.docChanged||s.selectionSet?{...a,status:"idle",suggestion:"",pos:null}:a}},props:{decorations:s=>{let a=this.pluginKey.getState(s);if(!a||a.status!=="ready"||!a.pos||!
|
|
1467
|
-
`);return}}createKeymap(){let t=new Set(["heading"]),o=
|
|
1468
|
-
`))),!0}else return o(n)});return{"Mod-Enter":r,"Shift-Enter":r}}};import{convertCommand as
|
|
1466
|
+
`);l.startsWith(a)&&(l=l.slice(a.length)),l=l.replace(/^\s+/,"");let c=this.options.maxSuggestionChars??500;return c>0&&l.length>c&&(l=l.slice(0,c)),l},i=(s,a)=>{let l=this.pluginKey.getState(s.state);if(!l||l.status!=="ready"||!l.suggestion)return!1;a?.preventDefault();let c=l.requestId+1;return s.dispatch(s.state.tr.insertText(l.suggestion).setMeta(this.pluginKey,{type:"clear",requestId:c})),!0};return{key:this.pluginKey,initialState:t,state:{init:()=>t,apply:(s,a)=>{let l=s.getMeta(this.pluginKey);if(l){if(l.type==="loading")return{...a,status:"loading",suggestion:"",pos:l.pos,requestId:l.requestId};if(l.type==="ready")return{...a,status:"ready",suggestion:l.suggestion,pos:l.pos,requestId:l.requestId};if(l.type==="clear")return{...a,status:"idle",suggestion:"",pos:null,requestId:l.requestId}}return s.docChanged||s.selectionSet?{...a,status:"idle",suggestion:"",pos:null}:a}},props:{decorations:s=>{let a=this.pluginKey.getState(s);if(!a||a.status!=="ready"||!a.pos||!Li(s.selection)||!s.selection.empty||s.selection.from!==a.pos||!a.suggestion.trim())return null;let l=yd.widget(a.pos,()=>{let c=document.createElement("span");return c.className="rme-copilot-suggestion",c.textContent=a.suggestion,c});return xd.create(s.doc,[l])},handleKeyDown:(s,a)=>a.key!=="Tab"?!1:i(s,a)},view:s=>{let a=null,l=0,c=()=>{a&&(clearTimeout(a),a=null),l+=1,s.dispatch(s.state.tr.setMeta(this.pluginKey,{type:"clear",requestId:l}))},d=()=>{a&&clearTimeout(a),a=setTimeout(async()=>{let m=r(s.state);if(!m||!this.options.generateText)return;l+=1;let p=l;s.dispatch(s.state.tr.setMeta(this.pluginKey,{type:"loading",pos:m.pos,requestId:p}));try{let f=await this.options.generateText({context:m.context});if(console.log("currentRequestId",p,l),p!==l)return;let u=f?n(f,m.context.textBefore):"";if(!u.trim()){s.dispatch(s.state.tr.setMeta(this.pluginKey,{type:"clear",requestId:p}));return}s.dispatch(s.state.tr.setMeta(this.pluginKey,{type:"ready",pos:m.pos,suggestion:u,requestId:p}))}catch{p===l&&s.dispatch(s.state.tr.setMeta(this.pluginKey,{type:"clear",requestId:p}))}},this.options.debounceMs??500)};return{update:(m,p)=>{if(m!==s)return;let f=!m.state.doc.eq(p.doc),u=!m.state.selection.eq(p.selection);!f&&!u||(c(),f&&d())},destroy:()=>{a&&clearTimeout(a)}}}}}};Ve=v([gd({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Ve);import{extension as kd,PlainExtension as Cd}from"@rme-sdk/core";import{TextSelection as _i}from"@rme-sdk/pm/state";import{getMatchHighlights as wd,search as Ed,SearchQuery as $t,setSearchState as ut}from"prosemirror-search";function dr(e,t){return t<=0?0:(e%t+t)%t}var ne=class extends Cd{constructor(){super(...arguments);this.find=({query:o,activeIndex:r,caseSensitive:n})=>o?({state:i,tr:s,dispatch:a})=>{let l=new $t({search:o,caseSensitive:n??!1});if(!l.valid)return!1;if(!a)return!0;ut(s,l);let c=null;if(r!=null){let d=this.collectQueryMatches(i,l),m=dr(r,d.length),p=d[m];p&&(s.setSelection(_i.create(s.doc,p.from,p.to)).scrollIntoView(),c={from:p.from,to:p.to})}return a(s),me(o,n??!1,c),this.scrollToActiveResult(c),!0}:this.stopFind();this.stopFind=()=>({tr:o,dispatch:r})=>(r&&(ut(o,new $t({search:""})),r(o),me("",!1,null)),!0);this.findAndReplace=({query:o,caseSensitive:r,replacement:n,index:i})=>({state:s,tr:a,dispatch:l})=>{let c=new $t({search:o,replace:n,caseSensitive:r??!1});if(!c.valid)return!1;if(!l)return!0;let d=this.collectQueryMatches(s,c);if(!d.length)return ut(a,c),l(a),me(o,r??!1,null),!1;let{activeIndex:m}=this.getHighlightRanges(s),p=dr(i??m??0,d.length),f=d[p];if(!f)return!1;ut(a,c);let u=c.getReplacements(s,f);for(let x=u.length-1;x>=0;x--){let{from:E,to:k,insert:h}=u[x];a.replaceRange(E,k,h)}let y=a.mapping.map(f.from),b=a.mapping.map(f.to);return a.setSelection(_i.create(a.doc,y,b)).scrollIntoView(),l(a),me(o,r??!1,{from:y,to:b}),this.scrollToActiveResult({from:y,to:b}),!0};this.findAndReplaceAll=({query:o,caseSensitive:r,replacement:n})=>({state:i,tr:s,dispatch:a})=>{let l=new $t({search:o,replace:n,caseSensitive:r??!1});if(!l.valid)return!1;if(!a)return!0;let c=this.collectQueryMatches(i,l);ut(s,l);for(let d=c.length-1;d>=0;d--){let m=l.getReplacements(i,c[d]);for(let p=m.length-1;p>=0;p--){let{from:f,to:u,insert:y}=m[p];s.replaceRange(f,u,y)}}return a(s),me(o,r??!1,null),!0};this.findRanges=o=>{this.store.commands.find(o);let{ranges:r,activeIndex:n}=this.getHighlightRanges(this.store.view.state);return{activeIndex:n,ranges:r}}}get name(){return"find"}createCommands(){return{find:this.find,stopFind:this.stopFind,findAndReplace:this.findAndReplace,findAndReplaceAll:this.findAndReplaceAll}}createHelpers(){return{findRanges:this.findRanges}}createExternalPlugins(){return[Ed({})]}collectQueryMatches(o,r,n){if(!r.valid)return[];let i=[],s=n?.from??0,a=n?.to??o.doc.content.size,l=s;for(;l<=a;){let c=r.findNext(o,l,a);if(!c)break;i.push(c);let d=c.to>l?c.to:l+1;if(d>a)break;l=d}return i}scrollToActiveResult(o){if(!o||Ln(o))return;let r=this.store.view,n=r.state.doc.content.size,i=o.from;if(i>n)return;r.domAtPos(i).node?.scrollIntoView?.({block:"nearest",behavior:"smooth"})}getHighlightRanges(o){let r=wd(o);if(!r)return{ranges:[],activeIndex:void 0};let i=r.find().map(d=>({from:d.from,to:d.to})).sort((d,m)=>d.from===m.from?d.to-m.to:d.from-m.from),s=i.map(({from:d,to:m})=>({from:d,to:m})),{from:a,to:l}=o.selection,c=i.findIndex(d=>d.from===a&&d.to===l);return{ranges:s,activeIndex:c>=0?c:void 0}}};ne=v([kd({defaultOptions:{alwaysFind:!1},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],ne);import{PlainExtension as Sd}from"@rme-sdk/core";var zt=e=>[{regexp:/!\[([^\]]*)\]\(([^\s"]+(?:\s+[^\s"]+)*)?(?:\s+"(.*?)")?\)/,type:e,getAttributes:t=>{let[,o,r,n]=t;return{alt:o,src:r,title:n}}}],Kt=e=>[{regexp:new RegExp("<img[^>]*>"),type:e,getAttributes:t=>pe(t[0])}],Wt=e=>[{regexp:/\$\$(?!\$)/,type:e,getAttributes:()=>({tex:"",fromInput:!0})},{regexp:/<span[^>]*data-type=["']math-inline["'][^>]*><\/span>/,type:e,getAttributes:()=>({fromInput:!1})},{regexp:/\$([^$\n]+?)\$/,type:e,getAttributes:t=>({tex:t[1]??"",fromInput:!0})}];var Bi=["math_block","codeMirror","reference_def"],Ut=class extends Sd{constructor(o){super();this.inputRules=[...zt("md_image"),...Wt("math_inline"),...Kt("html_image")];o?.rules&&(this.inputRules=[...this.inputRules,...o.rules])}get name(){return"handle_input"}addRule(o){this.inputRules.push(o)}createPlugin(){return{appendTransaction:(o,r,n)=>{if(!o.some(d=>d.docChanged))return null;let i=o[o.length-1];if(!i.docChanged)return null;let s=!1;if(i.mapping.maps.forEach(d=>{d.forEach((m,p,f,u)=>{n.doc.nodesBetween(f,u,(y,b)=>Bi.includes(y.type.name)?(s=!0,!1):!0)})}),s)return null;let a=null,l=n.schema,c=[];if(i.mapping.maps.forEach(d=>{d.forEach((m,p,f,u)=>{let y=Math.max(0,f-100),b=Math.min(n.doc.content.size,u+100);n.doc.nodesBetween(y,b,(x,E)=>{if(Bi.includes(x.type.name))return!1;if(!x.isText||!x.text)return!0;let h=n.doc.resolve(E).parent;if(["math_block","codeMirror","reference_def","html_block","mermaid_node"].includes(h.type.name))return!0;let S=x.text;for(let C of this.inputRules){let w;for(C.regexp.lastIndex=0;(w=C.regexp.exec(S))!==null;){let T=w.index??0,I=E+T,R=I+w[0].length;if(I>=0&&R<=n.doc.content.size){console.log("nodenode",x);let N=C.getAttributes?C.getAttributes(w):null;x.attrs["data-rme-from-paste"]==="true"&&N&&(N["data-rme-from-paste"]="true");let V=l.nodes[C.type];if(!V){console.warn(`Node type '${C.type}' not found in schema`);continue}let Q;if(V.spec.atom)Q=V.create(N);else{let K=null;C.getContent?K=C.getContent(w,l):K=l.text(w[0]),Q=V.create(N,K)}c.push({from:I,to:R,node:Q})}if(!C.regexp.global)break}}return!0})})}),c.length>0){c.sort((d,m)=>m.from-d.from),a=n.tr;for(let d of c)d.from>=0&&d.to<=a.doc.content.size&&(a=a.replaceWith(d.from,d.to,d.node))}return a&&a.docChanged?a:null}}}};import{convertCommand as Oi}from"@rme-sdk/core";import{HardBreakExtension as Td}from"@rme-sdk/main/extensions";import{baseKeymap as vd,exitCode as Md}from"@rme-sdk/pm/commands";import{chainCommands as Pd}from"@rme-sdk/pm";var Nd=["tableCell"],qt=class extends Td{fromMarkdown(){return[]}toMarkdown({state:t,node:o,parent:r,index:n}){for(let i=n+1;i<r.childCount;i++)if(r.child(i).type!=o.type){t.write(`
|
|
1467
|
+
`);return}}createKeymap(){let t=new Set(["heading"]),o=Oi(vd.Enter),r=Pd(Oi(Md),n=>{let{state:i,tr:s,dispatch:a}=n,{$from:l,$to:c,from:d,to:m}=i.selection,p=!t.has(l.parent.type.name)&&!t.has(c.parent.type.name),f=l.parent.type.name;if(p){let u=i.schema;return Nd.includes(f)?a?.(s.replaceRangeWith(d,m,u.nodes.html_br.create())):a?.(s.replaceRangeWith(d,m,u.text(`
|
|
1468
|
+
`))),!0}else return o(n)});return{"Mod-Enter":r,"Shift-Enter":r}}};import{convertCommand as Rd,findParentNodeOfType as Id}from"@rme-sdk/core";import{HeadingExtension as Ad}from"@rme-sdk/main/extensions";import{setBlockType as Ld}from"@rme-sdk/pm/commands";var Gt=class extends Ad{createNodeSpec(t,o){return{...super.createNodeSpec(t,o)}}createKeymap(){return{Backspace:({state:o,dispatch:r})=>{let{selection:n}=o,{$from:i}=n;if(!n.empty||i.parent.type.name!==this.name)return!1;let s=Id({types:this.type,selection:n});if(s?.start!==n.from)return!1;let a=o.tr.setBlockType(s.start,s.start,o.schema.nodes.paragraph);return r&&r(a),!0}}}createCommands(){let t={};return this.options.levels.forEach(o=>{t[`toggleH${o}`]=()=>Rd(Ld(this.type,{level:o}))}),t}fromMarkdown(){return[{type:2,token:"heading",node:this.name,hasOpenClose:!0,getAttrs:t=>({level:+t.tag.slice(1)})}]}toMarkdown({state:t,node:o}){t.write(t.repeat("#",o.attrs.level)+" "),t.renderInline(o),t.closeBlock(o)}};import{ErrorConstant as _d,ExtensionTag as Bd,invariant as Od,isEmptyBlockNode as Hd,isNodeSelection as Dd,NodeExtension as Vd,nodeInputRule as Fd}from"@rme-sdk/core";import{TextSelection as $d}from"@rme-sdk/pm/state";var jt=class extends Vd{constructor(){super(...arguments);this.insertHorizontalRule=()=>o=>{let{tr:r,dispatch:n}=o,i=r.selection.$anchor,s=i.parent;return s.type.name==="doc"||s.isAtom||s.isLeaf?!1:(n&&(r.selection.empty&&Hd(s)&&r.insert(i.pos+1,s),r.replaceSelectionWith(this.type.create()),this.updateFromNodeSelection(r),n(r.scrollIntoView())),!0)}}get name(){return"horizontalRule"}createTags(){return[Bd.Block]}createNodeSpec(o,r){return{...r,attrs:o.defaults(),parseDOM:[{tag:"hr",getAttrs:o.parse},...r.parseDOM??[]],toDOM:n=>["hr",o.dom(n)]}}createInputRules(){return[Fd({regexp:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type,beforeDispatch:({tr:o})=>{this.updateFromNodeSelection(o)}})]}updateFromNodeSelection(o){if(!Dd(o.selection)||o.selection.node.type.name!==this.name)return;let r=o.selection.$from.pos+1,{insertionNode:n}=this.options;if(!n)return;let i=this.store.schema.nodes[n];Od(i,{code:_d.EXTENSION,message:`'${n}' node provided as the insertionNode to the '${this.constructorName}' does not exist.`});let s=i.create();o.insert(r,s),o.setSelection($d.near(o.doc.resolve(r+1)))}createCommands(){return{insertHorizontalRule:()=>this.insertHorizontalRule()}}fromMarkdown(){return[{type:2,token:"hr",node:this.name,hasOpenClose:!1}]}toMarkdown({state:o,node:r}){o.write("---"),o.closeBlock(r)}};import{extension as zd,ExtensionTag as Kd,NodeExtension as Wd,nodeInputRule as Ud}from"@rme-sdk/core";var fe=class extends Wd{get name(){return"html_br"}createTags(){return[Kd.InlineNode]}createNodeSpec(t,o){return{inline:!0,selectable:!0,atom:!0,...o,attrs:{},parseDOM:[{tag:"br"}],toDOM:()=>["br"]}}createInputRules(){return[Ud({regexp:new RegExp("<br/>"),type:this.type})]}fromMarkdown(){return[{type:6,token:"html_br",node:this.name}]}toMarkdown({state:t,node:o}){t.text("<br/>",!1)}};fe.disableExtraAttributes=!0,fe=v([zd({defaultOptions:{}})],fe);import{convertCommand as Qd,extension as Xd,isElementDomNode as Yd,NodeExtension as Jd,nodeInputRule as Zd}from"@rme-sdk/core";import{setBlockType as em}from"@rme-sdk/pm/commands";import{TextSelection as tm}from"@rme-sdk/pm/state";import om from"markdown-it/lib/common/html_blocks.mjs";var Hi=(e,t)=>e.filter(o=>!t.includes(o));import{html as qd}from"@codemirror/lang-html";import{Compartment as Gd}from"@codemirror/state";function jd(e){return e.replace(/\n+|\t/g,"")}var Qt=class{constructor(t,o,r,n){this._htmlSrcElt=null;this.destroying=!1;this.options={};this.ignoreMutation=()=>!0;this._node=t,this._outerView=o,this._getPos=r,this.schema=t.type.schema,n&&(this.options={...this.options,...n}),this.dom=document.createElement("div"),this.dom.classList.add("html-node"),this._htmlRenderElt=document.createElement("p"),this._htmlRenderElt.textContent="",this._htmlRenderElt.classList.add("html-node-render"),Le(this.dom,{labelName:"HTML"}).addEventListener("click",()=>this.ensureFocus()),this.dom.appendChild(this._htmlRenderElt),this._htmlSrcElt=document.createElement("span"),this._htmlSrcElt.classList.add("html-src","node-hide"),this.languageConf=new Gd,this.dom.appendChild(this._htmlSrcElt),this.renderHtml()}ensureFocus(){this._outerView.hasFocus()&&(this._innerView?this._innerView.focus():this.openEditor())}update(t){return this._node=t,!!this.mfCodemirrorView?.update(t)}stopEvent(){return!0}renderHtml(){if(!this._htmlRenderElt)return;let o=jd(this.mfCodemirrorView?.content||this._node.textContent).trim();if(o.length<1){for(;this._htmlRenderElt.firstChild;)this._htmlRenderElt.firstChild.remove();return}try{for(;this._htmlRenderElt.firstChild;)this._htmlRenderElt.firstChild.remove();this._htmlRenderElt.classList.remove("node-hide"),this._htmlRenderElt.classList.add("node-show");let n=new DOMParser().parseFromString(o,"text/html"),i=s=>{Array.from(s).forEach(l=>{if(Nt(l)&&l.src&&this.options.handleViewImgSrcUrl){let c=l.src;l.src.includes(location.origin)&&(c=l.src.split(location.origin)[1]),this.options.handleViewImgSrcUrl(c).then(d=>{l.src=d})}if(l.nodeType===Node.ELEMENT_NODE){let c=l;c.children.length>0&&i(c.children)}this._htmlRenderElt?.appendChild(l)})};i(n.body.childNodes)}catch{}}setSelection(t,o){this._innerView?this.mfCodemirrorView?.setSelection(t,o):(this.openEditor(),this.mfCodemirrorView.setSelection(t,o))}openEditor(){if(this._innerView)throw Error("inner view should not exist!");let t=[qd()];this.options?.codemirrorExtensions&&t.push(...this.options.codemirrorExtensions),this.mfCodemirrorView=new W({view:this._outerView,node:this._node,getPos:this._getPos,languageName:"html",extensions:t,options:{useProsemirrorHistoryKey:!0,codemirrorEditorViewConfig:{parent:this._htmlSrcElt},copyButton:{enabled:!0,customCopyFunction:this.options?.customCopyFunction}}}),this._htmlSrcElt.classList.remove("node-hide"),this._innerView=this.mfCodemirrorView.cm,this._htmlRenderElt?.classList.add("node-hide");let o=this._node.textContent.length||0;this.setSelection(o,o),this._innerView.focus(),this._innerView.contentDOM.addEventListener("blur",()=>{this.destroying||this.closeEditor(!0)}),this.mfCodemirrorView.forwardSelection()}destroy(){this.destroying=!0,this.closeEditor(!1),this._htmlRenderElt&&(this._htmlRenderElt.remove(),delete this._htmlRenderElt),this._htmlSrcElt&&(this._htmlSrcElt.remove(),this._htmlSrcElt=null),this.dom.remove()}closeEditor(t=!0){this._innerView&&(this._innerView.destroy(),this._innerView=void 0),this.mfCodemirrorView&&(this.mfCodemirrorView.destroy(),this.mfCodemirrorView=void 0),t&&this.renderHtml()}};var Fe=class extends Jd{constructor(){super(...arguments);this.createHtmlBlock=()=>Qd(em(this.type))}get name(){return"html_block"}createNodeSpec(o,r){return{group:"block",content:"text*",defining:!0,...r,code:!0,marks:"",attrs:{language:{default:"html"},...o.defaults()},parseDOM:[{tag:"pre",getAttrs:n=>Yd(n)?o.parse(n):!1},...r.parseDOM??[]],toDOM(){return["pre",["code",0]]},isolating:!0}}createNodeViews(){return(o,r,n)=>new Qt(o,r,n,this.options)}createInputRules(){return[Zd({regexp:new RegExp("^</?("+Hi(om,lt).join("|")+")(?=(\\s|/?>|$))","i"),type:this.type,beforeDispatch:({tr:r,start:n,match:i})=>{let s=r.doc.resolve(n);r.setSelection(tm.near(s)),r.insertText(i[0])}})]}createCommands(){return{createHtmlBlock:this.createHtmlBlock}}fromMarkdown(){return[{type:2,token:"html_block",node:this.name,hasOpenClose:!1}]}toMarkdown({state:o,node:r}){o.write(`
|
|
1469
1469
|
`),o.text(r.textContent,!1),o.text(`
|
|
1470
|
-
`),o.closeBlock(r),o.ensureNewLine()}};Fe=v([
|
|
1470
|
+
`),o.closeBlock(r),o.ensureNewLine()}};Fe=v([Xd({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Fe);import{ExtensionTag as dm,NodeExtension as mm,extension as pm,nodeInputRule as um}from"@rme-sdk/main";import fm from"markdown-it/lib/common/html_blocks.mjs";import{history as rm,redo as nm,undo as im}from"@rme-sdk/pm/history";import{keymap as sm}from"@rme-sdk/pm/keymap";import{EditorState as am,Plugin as lm,TextSelection as Di}from"@rme-sdk/pm/state";import{EditorView as cm}from"@rme-sdk/pm/view";function Xt(e,t,o,r=!0,n){return(i,s)=>{let a=e.state,{to:l,from:c}=a.selection,{to:d,from:m}=i.selection;if(r&&d!==m)return!1;let p=t>0?d:m;if(o){let f=i.doc.nodeSize-2;if(t>0&&p<f||t<0&&p>0)return!1}if(s){n&&n(i.doc.textContent);let f=e.state,{to:u,from:y}=f.selection,b=t>0?u:y;e.dispatch(f.tr.setSelection(Di.create(f.doc,b))),e.focus()}return!0}}var Yt=class{constructor(t,o,r){this.options={};this._node=t,this._outerView=o,this._getPos=r,this._isEditing=!1,this._tagName="span",this.dom=document.createElement(this._tagName),this.dom.classList.add("inline-input"),this._htmlRenderElt=document.createElement("span"),this._htmlRenderElt.textContent="",this._htmlRenderElt.classList.add("inline-input-render"),this.dom.appendChild(this._htmlRenderElt),this._htmlSrcElt=document.createElement("span"),this._htmlSrcElt.spellcheck=!1,this.dom.appendChild(this._htmlSrcElt),this.dom.addEventListener("click",()=>this.ensureFocus()),t.attrs.fromInput?setTimeout(()=>{this.openEditor()}):this.renderHtml()}destroy(){this.closeEditor(!1),this._htmlRenderElt&&(this._htmlRenderElt.remove(),delete this._htmlRenderElt),this._htmlSrcElt&&(this._htmlSrcElt.remove(),delete this._htmlSrcElt),this.dom.remove()}ensureFocus(){this._innerView&&this._outerView.hasFocus()&&this._innerView.focus()}update(t,o){return t.sameMarkup(this._node)?(this._node=t,console.log("update",t),this._isEditing||this.renderHtml(),!0):!1}selectNode(){this._outerView.editable&&(this._isEditing||this.openEditor())}deselectNode(){this._isEditing&&this.closeEditor()}stopEvent(t){return this._innerView!==void 0&&t.target!==void 0&&this._innerView.dom.contains(t.target)}ignoreMutation(){return!0}renderHtml(t=!1){if(!this._htmlRenderElt)return;let r=(this._innerView?.state.doc.textContent||this._node.attrs?.htmlText||"").trim();try{for(;this._htmlRenderElt.firstChild;)this._htmlRenderElt.firstChild.remove();let i=new DOMParser().parseFromString(r,"text/html"),s=[];i.body.childNodes.forEach(a=>{if(Nt(a)&&a.src&&this.options.handleViewImgSrcUrl){let l=a.src;a.src.includes(location.origin)&&(l=a.src.split(location.origin)[1]),this.options.handleViewImgSrcUrl(l).then(c=>{a.src=c})}s.push(a)}),s.forEach(a=>{this._htmlRenderElt.appendChild(a)}),t&&this._htmlRenderElt.classList.add("inline-input-preview")}catch(n){console.error(n),this._htmlRenderElt?.classList.add("parse-error"),this.dom.setAttribute("title",n.toString())}}dispatchInner(t){if(!this._innerView)return;let{state:o}=this._innerView.state.applyTransaction(t);this._innerView.updateState(o),this.renderHtml(!0)}openEditor(){if(this._innerView){console.warn("[HTMLInlineView] editor already open when openEditor was called");return}let t=n=>{let i=this._getPos();if(i!==void 0){let s=this._outerView.state.tr;s.setNodeAttribute(i,"fromInput",!1),s.setNodeAttribute(i,"htmlText",n),this._outerView.dispatch(s)}};this._innerView=new cm(this._htmlSrcElt,{state:am.create({doc:this._outerView.state.schema.node("paragraph",null,[this._outerView.state.schema.text(this._node.attrs?.htmlText)]),plugins:[rm(),sm({Tab:(n,i)=>(i&&i(n.tr.insertText(" ")),!0),ArrowLeft:Xt(this._outerView,-1,!0,!0,t),ArrowRight:Xt(this._outerView,1,!0,!0,t),ArrowUp:Xt(this._outerView,-1,!0,!0,t),ArrowDown:Xt(this._outerView,1,!0,!0,t),"Mod-z":(n,i,s)=>im(n,i,s),"Shift-Mod-z":(n,i,s)=>nm(n,i,s)}),new lm({props:{handleDOMEvents:{blur:n=>{let i=this._getPos();if(i!==void 0){let s=this._innerView?.state.doc.textContent||"",a=this._outerView.state.tr;a.setNodeAttribute(i,"fromInput",!1),a.setNodeAttribute(i,"htmlText",s),this._outerView.dispatch(a)}this.closeEditor()}}}})]}),dispatchTransaction:this.dispatchInner.bind(this)}),this._innerView.dom.classList.add("inline-input-src"),this._innerView.dom.classList.remove("ProseMirror");let o=this._innerView.state;this._innerView.focus();let r=o.doc.textContent.length||0;this._innerView.dispatch(o.tr.setSelection(Di.create(o.doc,r))),this._htmlRenderElt?.classList.add("inline-input-preview"),this._isEditing=!0}closeEditor(t=!0){if(this._innerView){if(this._getPos()!==void 0){let r=this._innerView.state.doc.textContent||""}this._innerView?.destroy(),this._innerView=void 0}t&&(this.renderHtml(),this._htmlRenderElt?.classList.add("inline-input-render"),this._htmlRenderElt?.classList.remove("inline-input-preview")),this._isEditing=!1}};var hm="[a-zA-Z_:][a-zA-Z0-9:._-]*",gm="[^\"'=<>`\\x00-\\x20]+",bm="'[^']*'",ym='"[^"]*"',xm="(?:"+gm+"|"+bm+"|"+ym+")",km="(?:\\s+"+hm+"(?:\\s*=\\s*"+xm+")?)",Cm="<[A-Za-z][A-Za-z0-9\\-]*"+km+"*\\s*\\/?>",wm="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",Em=new RegExp("(?:"+Cm+"|"+wm+")","g"),he=class extends mm{get name(){return"html_inline_node"}createTags(){return[dm.InlineNode]}createNodeSpec(){return{inline:!0,selectable:!0,atom:!0,marks:"",attrs:{key:{default:""},htmlText:{default:""},fromInput:{default:!1}},toDOM:t=>{let o=document.createElement("span");return o.classList.add("inline-input-render"),o.innerHTML=t.attrs.htmlText,o}}}createNodeViews(){return(t,o,r)=>new Yt(t,o,r)}createInputRules(){return[um({regexp:Em,type:this.type,getAttributes:o=>({htmlText:o[0],fromInput:!0}),beforeDispatch:({tr:o,start:r,match:n})=>{let s=o.doc.resolve(r).node(1);console.log("last",s.lastChild),console.log("node",s)},shouldSkip:o=>{let r=Ie(o.fullMatch);return lt.includes(r)||fm.includes(r)?!0:(o.state.tr.replaceRangeWith(o.start,o.end,this.type.create({htmlText:o.fullMatch,fromInput:!0})),!1)}})]}fromMarkdown(){return[{type:6,token:"html_inline_node",node:this.name}]}toMarkdown({state:t,node:o}){t.text(o.attrs.htmlText||"")}};he.disableExtraAttributes=!0,he=v([pm({staticKeys:[],handlerKeys:[],customHandlerKeys:[],defaultOptions:{handleViewImgSrcUrl:async e=>e}})],he);import{cx as Bm,extension as Om,ExtensionTag as $i,NodeExtension as Hm,nodeInputRule as Dm,omitExtraAttributes as Vm}from"@rme-sdk/core";import{useRef as Lm}from"react";import{Popover as _m}from"zens";import{memo as Mm,useCallback as Vi,useEffect as Pm,useRef as ge,useState as mr}from"react";import Nm from"styled-components";import Sm,{css as q}from"styled-components";import{jsx as vm}from"react/jsx-runtime";var Tm=Sm.span`
|
|
1471
1471
|
position: absolute;
|
|
1472
1472
|
border-radius: 12px;
|
|
1473
1473
|
border: 2px solid #fff;
|
|
@@ -1541,7 +1541,7 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1541
1541
|
width: 30px;
|
|
1542
1542
|
cursor: row-resize;
|
|
1543
1543
|
`;default:break}}}
|
|
1544
|
-
`,ft=e=>{let t=o=>{e.onResizing&&e.onResizing(o,e.handleType)};return
|
|
1544
|
+
`,ft=e=>{let t=o=>{e.onResizing&&e.onResizing(o,e.handleType)};return vm(Tm,{className:"resizeable-handle",visible:e.visible,selected:e.selected,handleType:e.handleType,onMouseDown:t})};import{jsx as Jt,jsxs as Am}from"react/jsx-runtime";var Rm=(e,t,o)=>{let r=null,n=0;return function(...i){let s=Date.now()-n,a=()=>{n=Date.now(),o(...i)};r&&clearTimeout(r),s>e?a():t||(r=setTimeout(a,e-s))}};var Im=Nm.div`
|
|
1545
1545
|
display: inline-flex;
|
|
1546
1546
|
position: relative;
|
|
1547
1547
|
max-width: 100%;
|
|
@@ -1551,14 +1551,14 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1551
1551
|
-ms-user-select: none; /* Edge, IE */
|
|
1552
1552
|
border-radius: 2px;
|
|
1553
1553
|
transition: all 0.15s ease-out;
|
|
1554
|
-
`,
|
|
1554
|
+
`,pr=20,Zt=Mm(e=>{let{node:t,aspectRatio:o=0,updateAttributes:r,selected:n,controlInit:i,onResize:s}=e,[a,l]=mr({}),[c,d]=mr(!1),[m,p]=mr(!1),f=ge([]),u=ge(null),y=ge(0),b=ge(0),x=ge(0),E=ge(0),k=ge(!1),h=Vi((C,w)=>{C.preventDefault();let T=C.pageX,I=C.pageY,R=y.current||0,N=b.current||0;x.current=R,E.current=N,k.current=!0;let V=Rm(100,!1,K=>{if(!k.current)return;let rt=K.pageX,nt=K.pageY,ve=rt-T,Me=nt-I,O=null,$=null;if(o===0&&R&&N)switch(w){case 0:case 4:case 6:O=R+ve,$=N/R*O;break;case 1:case 5:case 7:O=R-ve,$=N/R*O;break;case 3:$=N+Me,O=R/N*$;break;case 2:$=N-Me,O=R/N*$;break}else if(o===1)switch(w){case 0:O=R+ve;break;case 1:O=R-ve;break;case 3:$=N+Me;break;case 2:$=N-Me;break;case 6:case 4:O=R+ve,$=N+Me;break;case 7:case 5:O=R-ve,$=N+Me;break}typeof O=="number"&&O<pr&&(o===0&&R&&N?(O=pr,$=N/R*O):o===1&&(O=pr)),O&&u.current&&k.current&&(x.current=Math.round(O),l(Ro=>({...Ro,width:x.current}))),$&&k.current&&(E.current=Math.round($),l(Ro=>({...Ro,height:E.current})))}),Q=K=>{K.preventDefault(),K.stopPropagation(),k.current=!1,document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",Q);let rt=x.current,nt=E.current;y.current=rt,b.current=nt,l({width:rt,height:nt}),r({...t.attrs,width:rt,height:nt}),s?.(K)};document.addEventListener("mousemove",V),document.addEventListener("mouseup",Q),f.current.push(()=>{k.current=!1,document.removeEventListener("mousemove",V)}),f.current.push(()=>document.removeEventListener("mouseup",Q))},[o,t.attrs,r,s]),g=Vi((C,w)=>{p(!0),h(C,w)},[h]);Pm(()=>{let C=()=>{if(u.current){let{width:w,height:T}=u.current.getBoundingClientRect();y.current=w,b.current=T,x.current=w,E.current=T,l({width:w,height:T})}};return i?i(C):C(),()=>{f.current.forEach(w=>w()),f.current=[]}},[i]);let S=n||c;return Am(Im,{ref:u,style:m?{width:`${a.width}px`,height:`${a.height}px`,aspectRatio:`${a.width} / ${a.height}`}:void 0,onMouseOver:()=>d(!0),onMouseOut:()=>d(!1),children:[Jt(ft,{visible:S,selected:n,onResizing:g,handleType:5}),Jt(ft,{visible:S,selected:n,onResizing:g,handleType:4}),Jt(ft,{visible:S,selected:n,onResizing:g,handleType:7}),Jt(ft,{visible:S,selected:n,onResizing:g,handleType:6}),e.children]})});import{jsx as ur}from"react/jsx-runtime";function Fi(e){let{node:t,selected:o}=e,r=Lm();return ur(_m,{placement:"top-start",open:o,arrow:!1,children:ur(Zt,{controlInit:n=>r.current=n,...e,children:ur("iframe",{onLoad:()=>r.current?.(),...t.attrs})})})}import{jsx as Fm}from"react/jsx-runtime";var $e=class extends Hm{constructor(){super(...arguments);this.ReactComponent=o=>Fm(Fi,{...o});this.addIframe=o=>({tr:r,dispatch:n})=>(n?.(r.replaceSelectionWith(this.type.create(o))),!0)}get name(){return"iframe_inline"}createTags(){return[$i.InlineNode,$i.Media]}createNodeSpec(o,r){let{defaultSource:n}=this.options;return{inline:!0,selectable:!0,atom:!0,...r,attrs:{...o.defaults(),src:n?{default:n}:{},allowFullScreen:{default:!0},frameBorder:{default:0},type:{default:"custom"},width:{default:null},height:{default:null}},parseDOM:[{tag:"iframe",getAttrs:i=>{let s=i.getAttribute("frameborder"),a=i.getAttribute("width"),l=i.getAttribute("height");return{...o.parse(i),type:i.getAttribute("data-embed-type")??void 0,height:l&&Number.parseInt(l,10)||void 0,width:a&&Number.parseInt(a,10)||void 0,allowFullScreen:i.getAttribute("allowfullscreen")!=="false",frameBorder:s?Number.parseInt(s,10):0,src:i.getAttribute("src")??""}}},...r.parseDOM??[]],toDOM:i=>{let{frameBorder:s,allowFullScreen:a,src:l,type:c,...d}=Vm(i.attrs,o),{class:m}=this.options;return["iframe",{...o.dom(i),...d,class:Bm(m,`${m}-${c}`),src:l,"data-embed-type":c,allowfullscreen:a?"true":"false",frameBorder:s?.toString()}]}}}createCommands(){return{addIframe:this.addIframe}}createInputRules(){return[Dm({regexp:new RegExp("<iframe[^>]*>"),type:this.type,getAttributes:r=>pe(r[0])})]}fromMarkdown(){return[{type:6,token:"iframe_inline",node:this.name}]}toMarkdown({state:o,node:r}){o.text(Ae({tag:"iframe",attrs:r.attrs,voidElement:!0}),!1)}};$e=v([Om({defaultOptions:{defaultSource:"",class:"remirror-iframe",enableResizing:!1},staticKeys:["defaultSource","class"],handlerKeys:[],customHandlerKeys:[]})],$e);import{ErrorConstant as pp,extension as up,ExtensionTag as ns,getTextSelection as fp,invariant as hp,isElementDomNode as gp,NodeExtension as bp,nodeInputRule as yp,omitExtraAttributes as xp}from"@rme-sdk/core";import{omit as ip}from"lodash";import{normalizeReference as os}from"markdown-it/lib/common/utils.mjs";import{useCallback as sp,useEffect as rs,useEffectEvent as ap,useMemo as lp,useRef as kr}from"react";import{Popover as cp,Image as dp}from"zens";import{t as es}from"i18next";import{useState as eo}from"react";import xe from"styled-components";import{Button as tp,Input as op}from"zens";import{memo as qm,useCallback as ht,useEffect as Qi,useMemo as Xi,useRef as Gm,useState as hr}from"react";import{useTranslation as jm}from"react-i18next";import ze,{css as Qm}from"styled-components";import{Input as Xm,Space as Ym}from"zens";var B={"heading-1":"ri-h-1","heading-2":"ri-h-2","heading-3":"ri-h-3","heading-4":"ri-h-4","heading-5":"ri-h-5","heading-6":"ri-h-6",paragraph:"ri-paragraph","list-bullet":"ri-list-unordered","list-ordered":"ri-list-ordered","list-task":"ri-list-check-3",codeMirror:"ri-code-box-line",table:"ri-table-line",blockquote:"ri-double-quotes-l",html_block:"ri-html5-line",math_block:"ri-formula",mermaid_node:"ri-flow-chart",horizontalRule:"ri-separator"};var be=(e,t,o)=>e.dispatch(e.state.tr.setMeta(t,o)),ye=e=>e.key==="/",zi=["Unidentified","Alt","AltGraph","CapsLock","Control","Fn","FnLock","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","F16","F17","F18","F19","F20","F21","F22","F23","F24","Hyper","Meta","NumLock","PageDown","PageUp","Pause","PrintScreen","Redo","ScrollLock","Shift","Super","Symbol","SymbolLock","Enter","Tab","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home","PageDown","PageUp","Backspace","Clear","Copy","CrSel","Cut","Delete","EraseEof","ExSel","Insert","Paste","Redo","Undo","Accept","Again","Attn","Cancel","ContextMenu","Escape","Execute","Find","Finish","Help","Pause","Play","Props","Select","ZoomIn","ZoomOut","BrightnessDown","BrightnessUp","Eject","LogOff","Power","PowerOff","PrintScreen","Hibernate","Standby","WakeUp","AllCandidates","Alphanumeric","CodeInput","Compose","Convert","Dead","FinalMode","GroupFirst","GroupLast","GroupNext","GroupPrevious","ModeChange","NextCandidate","NonConvert","PreviousCandidate","Process","SingleCandidate","HangulMode","HanjaMode","JunjaMode","Eisu","Hankaku","Hiragana","HiraganaKatakana","KanaMode","KanjiMode","Katakana","Romaji","Zenkaku","ZenkakuHanaku"];import{jsx as $m}from"react/jsx-runtime";function Ki(){let e=window.navigator.userAgent,t=window.navigator.platform;return/Win/.test(t)||/Win/.test(e)?"Windows":/Mac/.test(t)||/Mac/.test(e)?"macOS":"Unknown"}function fr(){return Ki()==="macOS"?$m("i",{className:"ri-command-line"}):"Ctrl"}function Wi(){return Ki()==="macOS"?"metaKey":"ctrlKey"}import{useImperativeHandle as zm,useState as Ui}from"react";import Km from"styled-components";import{jsx as Gi,jsxs as qi}from"react/jsx-runtime";var Wm=Km.div.attrs(e=>e)`
|
|
1555
1555
|
border: 1px solid ${e=>e.theme.borderColor};
|
|
1556
1556
|
margin-right: 1px;
|
|
1557
1557
|
margin-bottom: 1px;
|
|
1558
1558
|
width: 10px;
|
|
1559
1559
|
height: 10px;
|
|
1560
1560
|
background-color: ${e=>e.inScope?e.theme.blue:e.theme.contextMenuBgColor};
|
|
1561
|
-
`,
|
|
1561
|
+
`,Um=e=>{let{commands:t,closeMenu:o,ref:r}=e,[n,i]=Ui(3),[s,a]=Ui(3);zm(r,()=>({createTable:()=>{t.createTable({rowsCount:n,columnsCount:s,withHeaderRow:!1})},handleKeyDown:d=>{let m=()=>(a(b=>b+1),0),p=()=>d.metaKey||d.ctrlKey?1:(a(b=>b-1<1?1:b-1),0),f=()=>{i(b=>b-1<1?1:b-1)},u=()=>{i(b=>b+1)},y=()=>(t.createTable({rowsCount:n,columnsCount:s}),2);if(d.key==="ArrowRight")return m();if(d.key==="ArrowLeft")return p();if(d.key==="ArrowUp")return f();if(d.key==="ArrowDown")return u();if(d.key==="Enter")return y()}}));let l=10,c=8;return qi("div",{children:[qi("span",{children:["Rows: ",n," Cols: ",s]}),Array.from({length:l}).map((d,m)=>Gi("div",{style:{display:"flex"},children:Array.from({length:c}).map((p,f)=>{let u=m<n&&f<s;return Gi(Wm,{inScope:u,onClick:()=>{t.createTable({rowsCount:m,columnsCount:f,withHeaderRow:!1}),o()}},f)})},m))]})},ji=Um;import{Fragment as gr,jsx as A,jsxs as D}from"react/jsx-runtime";var Zi=qm(({rootRef:e,commands:t,closeMenu:o})=>{let r=Gm({}),[n,i]=hr(""),{t:s}=jm(),a=Xi(()=>{let g=[{title:"Text",id:"text",iconName:"ri-text",children:Array.from({length:6}).map((S,C)=>({title:`Heading ${C+1}`,id:`Heading${C+1}`,handler:()=>{t.toggleHeading({level:C+1})}}))},{title:"Table",id:"table",iconName:B.table,handler:()=>{r.current.table?.createTable()},Renderer:{id:"table",Component:A(ji,{ref:S=>{r.current.table=S},commands:t,closeMenu:o})}},{title:"Code Block",id:"code-block",iconName:B.codeMirror,handler:()=>{t.createCodeMirror()}},{title:"Math Block",id:"math-block",iconName:B.math_block,handler:()=>{t.createMathBlock()}},{title:"Mermaid",id:"mermaid-block",iconName:B.mermaid_node,handler:()=>{t.createMermaidBlock()}},{title:"HTML Block",id:"html-block",iconName:B.html_block,handler:()=>{t.createHtmlBlock()}},{title:"Quote Block",id:"blockquote",iconName:B.blockquote,handler:()=>{t.toggleBlockquote()}},{title:"Horizontal Rule",id:"horizontal-rule",iconName:B.horizontalRule,handler:()=>{t.insertHorizontalRule()}}];return t.createAiBlock&&g.unshift({title:"AI",id:"ai",iconName:"ri-bard-line",handler:()=>{t.createAiBlock({})}}),g},[o,t]),l=Xi(()=>{if(!n.trim())return a;let h=n.toLowerCase();return a.filter(g=>!!(g.title.toLowerCase().includes(h)||g.children&&g.children.filter(C=>C.title.toLowerCase().includes(h)).length>0)).map(g=>{if(g.children&&n.trim()){let S=n.toLowerCase();if(g.title.toLowerCase().includes(S))return g;let C=g.children.filter(w=>w.title.toLowerCase().includes(S));return{...g,children:C}}return g})},[a,n]),[c,d]=hr(l[0]?.id),[m,p]=hr();Qi(()=>{l.length>0?(d(l[0].id),l[0].children?p(l[0].children[0].id):p(void 0)):(d(void 0),p(void 0))},[l]);let f=l.findIndex(h=>h.id===c),u=l[f],y=ht(()=>{if(m)if(u?.children){let g=u.children.findIndex(S=>S.id===m)+1;g<u.children.length&&p(u.children[g].id)}else u?.Renderer&&p(u.Renderer.id);else{let h=f+1;h<l.length&&d(l[h].id)}},[m,f,u?.Renderer,u?.children,l]),b=ht(()=>{if(m)if(u?.children){let g=u.children.findIndex(S=>S.id===m)-1;g>=0&&p(u.children[g].id)}else u?.Renderer&&p(u.Renderer.id);else{let h=f-1;h>=0&&d(l[h].id)}},[m,f,u?.Renderer,u?.children,l]),x=ht(()=>{u?.children?p(u.children[0].id):u?.Renderer&&p(u.Renderer.id)},[u]),E=ht(()=>{p(void 0)},[]),k=ht(h=>{i(h.target.value)},[]);return Qi(()=>{let h=g=>{if(g.key==="Escape")return o();if(g.isComposing||g.key==="Process")return;let S=g.key==="ArrowDown"||g.key==="ArrowUp"||g.key==="ArrowRight"||g.key==="ArrowLeft"||g.key==="Enter";if(!(n&&g[Wi()]===!1&&!S)){if(m){let C=r.current[m];if(C?.handleKeyDown){let w=C.handleKeyDown(g);if(w===2){o();return}else if(w===0)return}}if(g.key==="ArrowDown")y();else if(g.key==="ArrowUp")b();else if(g.key==="ArrowRight")x();else if(g.key==="ArrowLeft")E();else if(g.key==="Enter"){if(g.preventDefault(),g.stopPropagation(),m){let C=u?.children?.find(w=>w.id===m);C?.handler&&C.handler()}u?.handler&&u.handler(),o()}}};return document.addEventListener("keydown",h),()=>{document.removeEventListener("keydown",h)}},[m,y,E,x,b,o,l,u,n]),D("div",{ref:e,style:{display:"flex",flexDirection:"column"},children:[A(Zm,{children:A(Xm,{type:"text",size:"small",style:{width:"100%"},placeholder:s("slashMenu.searchPlaceholder"),value:n,onChange:k,autoFocus:!0,onKeyDown:h=>{h.code==="Backspace"?n===""&&(h.preventDefault(),h.stopPropagation(),o?.()):ye(h)&&(n===""||n==="/")&&(h.preventDefault(),h.stopPropagation(),o?.({insertSlash:!0}))}})}),D(ep,{children:[D(Yi,{active:!0,location:"left",children:[l.map(h=>{let g=h.id===c;return A(Ji,{onClick:()=>{d(h.id),!h.children&&!h.Renderer&&h.handler&&(h.handler(),o())},onMouseEnter:()=>{d(h.id),h.children?.length?p(h.children[0].id):h.Renderer?p(h.Renderer.id):p(void 0)},selected:g,children:D(Ym,{size:4,children:[A("i",{className:h.iconName})," ",h.title]})},h.id)}),l.length===0&&A("div",{children:A("span",{children:s("slashMenu.noResults")})})]}),u?.children||u?.Renderer?.Component?A(Yi,{active:!!m,location:"right",children:u?.Renderer?u.Renderer.Component:u?.children?.map(h=>{let g=h.id===m;return A(Ji,{selected:g,onMouseEnter:()=>{p(h.id)},onClick:()=>{p(h.id),h.handler?.(),o()},children:h.title},h.id)})}):null]}),D(Jm,{children:[D(gt,{children:[n?D(gr,{children:[A("kbd",{children:fr()}),A("span",{children:" + "})]}):null,A("kbd",{"aria-label":"Up Arrow",children:D("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[A("path",{d:"m5 12 7-7 7 7"}),A("path",{d:"M12 19V5"})]})}),A("kbd",{"aria-label":"Down Arrow",children:D("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[A("path",{d:"M12 5v14"}),A("path",{d:"m19 12-7 7-7-7"})]})}),u?.children||u?.Renderer?D(gr,{children:[A("kbd",{"aria-label":"Left Arrow",children:D("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[A("path",{d:"m12 19-7-7 7-7"}),A("path",{d:"M19 12H5"})]})}),A("kbd",{"aria-label":"Right Arrow",children:D("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[A("path",{d:"M5 12h14"}),A("path",{d:"m12 5 7 7-7 7"})]})})]}):null,s("slashMenu.toNavigate")]}),D(gt,{children:[n?D(gr,{children:[A("kbd",{children:fr()}),A("span",{children:" + "})]}):null,A("kbd",{"aria-label":"Enter",children:D("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[A("polyline",{points:"9 10 4 15 9 20"}),A("path",{d:"M20 4v7a4 4 0 0 1-4 4H4"})]})}),s("slashMenu.toSelect")]})]})]})}),Jm=ze.div`
|
|
1562
1562
|
display: flex;
|
|
1563
1563
|
justify-content: space-between;
|
|
1564
1564
|
padding: ${e=>e.theme.spaceXs};
|
|
@@ -1578,7 +1578,7 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1578
1578
|
align-items: center;
|
|
1579
1579
|
font-size: 12px;
|
|
1580
1580
|
}
|
|
1581
|
-
`,
|
|
1581
|
+
`,Yi=ze.div.attrs(e=>e)`
|
|
1582
1582
|
display: flex;
|
|
1583
1583
|
min-width: 130px;
|
|
1584
1584
|
width: 100%;
|
|
@@ -1592,7 +1592,7 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1592
1592
|
overflow: visible;
|
|
1593
1593
|
max-height: 260px;
|
|
1594
1594
|
overflow-y: auto;
|
|
1595
|
-
`,
|
|
1595
|
+
`,Ji=ze.li.attrs(e=>({...e}))`
|
|
1596
1596
|
display: flex;
|
|
1597
1597
|
cursor: default;
|
|
1598
1598
|
align-items: center;
|
|
@@ -1605,19 +1605,19 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1605
1605
|
background-color: ${e=>e.theme.contextMenuBgColorHover};
|
|
1606
1606
|
}
|
|
1607
1607
|
|
|
1608
|
-
${e=>{if(e.selected)return
|
|
1608
|
+
${e=>{if(e.selected)return Qm`
|
|
1609
1609
|
background-color: ${t=>t.theme.contextMenuBgColorHover};
|
|
1610
1610
|
`}}
|
|
1611
|
-
`,
|
|
1611
|
+
`,Zm=ze.div`
|
|
1612
1612
|
padding: ${e=>e.theme.spaceXs};
|
|
1613
1613
|
background-color: ${e=>e.theme.contextMenuBgColor};
|
|
1614
1614
|
border-bottom: 1px solid ${e=>e.theme.slashMenuBorderColor};
|
|
1615
1615
|
border-radius: ${e=>e.theme.smallBorderRadius}
|
|
1616
1616
|
${e=>e.theme.smallBorderRadius} 0 0;
|
|
1617
|
-
`,
|
|
1617
|
+
`,ep=ze.div`
|
|
1618
1618
|
display: flex;
|
|
1619
1619
|
flex: 1;
|
|
1620
|
-
`;import{jsx as G,jsxs as
|
|
1620
|
+
`;import{jsx as G,jsxs as ie}from"react/jsx-runtime";var rp=xe.div`
|
|
1621
1621
|
display: flex;
|
|
1622
1622
|
flex-direction: column;
|
|
1623
1623
|
gap: ${e=>e.theme.spaceSm};
|
|
@@ -1630,20 +1630,20 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1630
1630
|
font-size: ${e=>e.theme.fontBase};
|
|
1631
1631
|
line-height: normal;
|
|
1632
1632
|
z-index: 100;
|
|
1633
|
-
`,
|
|
1633
|
+
`,br=xe.div`
|
|
1634
1634
|
display: flex;
|
|
1635
1635
|
flex-direction: column;
|
|
1636
1636
|
gap: ${e=>e.theme.spaceXs};
|
|
1637
|
-
`,
|
|
1637
|
+
`,np=xe.div`
|
|
1638
1638
|
display: flex;
|
|
1639
1639
|
justify-content: flex-end;
|
|
1640
1640
|
gap: ${e=>e.theme.spaceXs};
|
|
1641
|
-
`,
|
|
1641
|
+
`,yr=xe.label`
|
|
1642
1642
|
font-size: ${e=>e.theme.fontXs};
|
|
1643
1643
|
font-weight: 600;
|
|
1644
1644
|
color: ${e=>e.theme.labelFontColor};
|
|
1645
1645
|
margin: 0;
|
|
1646
|
-
`,
|
|
1646
|
+
`,xr=xe(op)`
|
|
1647
1647
|
width: 100%;
|
|
1648
1648
|
font-size: ${e=>e.theme.fontSm};
|
|
1649
1649
|
|
|
@@ -1669,7 +1669,7 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1669
1669
|
justify-content: flex-end;
|
|
1670
1670
|
gap: ${e=>e.theme.spaceXs};
|
|
1671
1671
|
margin-top: ${e=>e.theme.spaceXs};
|
|
1672
|
-
`,hT=xe(
|
|
1672
|
+
`,hT=xe(tp)`
|
|
1673
1673
|
padding: ${e=>e.theme.spaceXs} ${e=>e.theme.spaceSm};
|
|
1674
1674
|
font-size: ${e=>e.theme.fontXs};
|
|
1675
1675
|
border-radius: ${e=>e.theme.smallBorderRadius};
|
|
@@ -1694,26 +1694,26 @@ var Ua=Object.defineProperty;var qa=Object.getOwnPropertyDescriptor;var v=(e,t,o
|
|
|
1694
1694
|
background-color: ${e=>e.theme.hoverColor};
|
|
1695
1695
|
}
|
|
1696
1696
|
}
|
|
1697
|
-
`,es=e=>{let{node:t,referInfo:o,imageHostingHandler:r}=e,{src:n,alt:i}=t.attrs,[s,a]=eo(n||""),[l,c]=eo(i||""),[d,m]=eo(o?.label||""),[p,f]=eo(!1),u=!!o,y=g=>{let S=g.currentTarget.value;a(S),f(S!==n||l!==i||d!==o?.label)},b=g=>{let S=g.currentTarget.value;c(S),f(s!==n||S!==i||d!==o?.label)},x=g=>{let S=g.currentTarget.value;m(S),f(s!==n||l!==i||S!==o?.label)},E=()=>{if(e.updateAttributes){if(u)e.updateAttributes({...t.attrs,alt:l.trim(),referInfo:{...t.attrs.referInfo,label:d.trim()}});else{let g=t.attrs.src;g&&g!==s&&r?r(g).then(S=>{S!==g&&e.updateAttributes?.({...t.attrs,src:S,alt:l.trim()})}):e.updateAttributes({...t.attrs,src:s.trim(),alt:l.trim()})}f(!1)}},k=()=>{a(n||""),c(i||""),m(o?.label||""),f(!1)},h=g=>{g.key==="Enter"&&!g.shiftKey?(g.preventDefault(),E()):g.key==="Escape"&&(g.preventDefault(),k())};return se(np,{children:[u?se(gr,{children:[G(br,{children:"Refer Label"}),G(yr,{placeholder:"Enter reference label...",value:d,onInput:x,onKeyDown:h})]}):se(gr,{children:[G(br,{children:"URL"}),G(yr,{placeholder:"Enter image URL...",value:s,onInput:y,onKeyDown:h})]}),se(gr,{children:[G(br,{children:"Alt"}),G(yr,{placeholder:"Enter alternative text for accessibility...",value:l,onInput:b,onKeyDown:h})]}),se(ip,{children:[se(gt,{children:[G("kbd",{"aria-label":"Esc",children:"Esc"}),Zi("slashMenu.toCancel")]}),se(gt,{children:[G("kbd",{"aria-label":"Enter",children:se("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[G("polyline",{points:"9 10 4 15 9 20"}),G("path",{d:"M20 4v7a4 4 0 0 1-4 4H4"})]})}),Zi("slashMenu.toSelect")]})]})]})};import{jsx as ke}from"react/jsx-runtime";var pp="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAAChElEQVR4Ae3aMW/TQBxAcb70k91AAiGuGlZAtOlQApWaDiSdklZq2RPUTm1xUWL3PgqSpygkXlh88N54nn7S2Trd3y/CP5IQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECPmPIEKECBEiRIgQIeX82+FBO0naB4eTRRkt5P7sNWt1Rw9RQvKThI2SYR4f5OoVW2rfRAYpT6hqHc8WeVHki9mgRdWwiAmyfA9AdrlaW5tlAHxcxQMpK8feRbGxPEkrSREN5ARg/y780V0GMIwFcgXwLg9byvsAN3FA8lfAfr7jYQZ0nqKAfAb21vYVwNruSoEvMUDuE+Ai7IKECZA+RAA5A7JiN6TMgFHzIeUb4DLshoQZ0H1uPGQOvFzVQZYtYNF4yBg4DnWQMAAmjYccArN6yBQ4ajzkAFjUQ+ZAv/GQNpDXQ3Kg03hIAhT1kAJIhLi1/vJl39Ic6Mf3+a2K8PM7BgahtgEwjuKI0lqGjSI8opRdYFb3sk/jODSGEZCVuyFFDzgPzYc8JMBkN2QMpI8RQMIQ2LvdBblNgdM4Lh/aQJaHrf3sAe2nKCDhGqCfb3VEcx1UNQTItlzQ3fYAvoZYIMUHgHRSbiyPU4BPZUSX2JWEbLZcW5v2qByrmMYKxZCq1mA6z4sin08HLapOy8gGPddtttT5HuHobZiwUXr6K85h6KjLWm/PH+MdTy/GR/12knb6g8mPZ38YECJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAh0fUb5q7oCGreEVEAAAAASUVORK5CYII=";function to(e){let{node:t,selected:o,updateAttributes:r,handleViewImgSrcUrl:n,imagePasteHandler:i,imageHostingHandler:s,view:a}=e,l=xr(null),c=xr(null),d=xr(null),m=t.attrs["data-rme-from-paste"]==="true",p=a.state.doc.content.content.filter(h=>h.type.name==="reference_def"),f=cp(()=>{let h;return p.forEach(g=>{let S=g.content.content.find(T=>T.type.name==="reference_label"),C=g.content.content.find(T=>T.type.name==="reference_href"),w=g.content.content.find(T=>T.type.name==="reference_title");!S?.textContent||!t.attrs["data-refer-label"]||ts(S?.textContent)===ts(t.attrs["data-refer-label"])&&(h={href:C?.textContent||"",title:w?.textContent||"",label:S?.textContent||""})}),h},[p]),u=lp(async()=>{let h=t.attrs.src||"";if(i)try{h=await i(t.attrs.src)}catch{}r({"data-rme-from-paste":null,src:h})});os(()=>{m&&u()},[m]);let y=h=>{c.current=h};os(()=>{let h=g=>{d.current&&c.current&&(!g.target||!(g.target instanceof Node)||!d.current.contains(g.target))&&c.current.setOpen(!1)};if(o)return document.addEventListener("mousedown",h),()=>{document.removeEventListener("mousedown",h)}},[o]);let b=ap(()=>{r({"data-rme-type":"html"})},[r]),x=ke("span",{className:"inline-loading",children:ke("i",{className:"inline-loading-icon ri-loader-4-line"})});if(m)return x;let E=sp(t.attrs,"data-refer-label"),k=ke(Zt,{controlInit:h=>l.current=h,onResize:b,...e,children:ke(mp,{...E,onLoad:()=>l.current?.(),src:f?.href||t.attrs.src,loader:x,imgPromise:()=>new Promise(async(h,g)=>{let S=f?.href||t.attrs.src||"",C=f?.href||t.attrs.src||"";if(n)try{S=await n(S)}catch{}let w=T=>{let I=new Image;I.src=T,I.onload=()=>{h(T)},I.onerror=()=>{T===C?g(pp):w(C)}};w(S)}),style:{width:"100%",height:"100%"}})},`${t.attrs.src}`);return ke("div",{ref:d,style:{position:"relative",zIndex:o?10:"auto",lineHeight:0},children:ke(dp,{customContent:ke(es,{node:t,referInfo:f,imageHostingHandler:s,updateAttributes:(...h)=>{r(...h),c.current?.setOpen(!1)}},`${t.attrs.src}`),boxProps:{style:{display:"inline-flex"}},placement:"top-start",onStoreChange:y,toggleOnClick:!0,style:{zIndex:11},children:k})})}import{jsx as vp}from"react/jsx-runtime";var Ke=class extends yp{constructor(){super(...arguments);this.ReactComponent=o=>{let{handleViewImgSrcUrl:r,imageHostingHandler:n,imagePasteHandler:i}=this.options;return vp(to,{handleViewImgSrcUrl:r,imagePasteHandler:i,imageHostingHandler:n,...o})}}get name(){return"html_image"}createTags(){return[rs.InlineNode,rs.Media]}createNodeSpec(o,r){let{preferPastedTextContent:n}=this.options;return{inline:!0,selectable:!0,atom:!0,...r,attrs:{...o.defaults(),alt:{default:""},crop:{default:null},height:{default:null},width:{default:null},rotate:{default:null},src:{default:null},title:{default:""},"data-file-name":{default:null},"data-rme-loading":{default:null},"data-rme-from-paste":{default:null}},parseDOM:[{tag:"img[src]",getAttrs:i=>{if(bp(i)){let s=Ep({element:i,parse:o.parse});return n&&s.src?.startsWith("file:///")?!1:s}return{}}},...r.parseDOM??[]],toDOM:i=>{let s=kp(i.attrs,o);return["img",{...o.dom(i),...s}]}}}insertImage(o,r){return({tr:n,dispatch:i})=>{let{from:s,to:a}=hp(r??n.selection,n.doc),l=this.type.create(o);return i?.(n.replaceRangeWith(s,a,l)),!0}}createInputRules(){return Kt(this.type).map(xp)}fromMarkdown(){return[{type:6,token:"html_image",node:this.name}]}toMarkdown({state:o,node:r}){o.text(Ae({tag:"img",attrs:r.attrs,voidElement:!0}),!1)}};Ke=v([fp({defaultOptions:{createPlaceholder:Sp,handleViewImgSrcUrl:async e=>e,updatePlaceholder:()=>{},destroyPlaceholder:()=>{},uploadHandler:Tp,imageHostingHandler:async e=>e,preferPastedTextContent:!0,defaultInlineNode:"div"},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Ke);var Cp=new Set(["image/jpeg","image/gif","image/png","image/jpg","image/svg","image/webp"]);function IT(e){return Cp.has(e.type)}function wp(e){let{width:t,height:o}=e.style;return t=t||e.getAttribute("width")||"",o=o||e.getAttribute("height")||"",{width:t,height:o}}function Ep({element:e,parse:t}){let{width:o,height:r}=wp(e);return{...t(e),alt:e.getAttribute("alt")??"",height:Number.parseInt(r||"0",10)||null,src:e.getAttribute("src")??null,title:e.getAttribute("title")??"",width:Number.parseInt(o||"0",10)||null,"data-file-name":e.getAttribute("data-file-name")??null}}function Sp(){return document.createElement("div")}function Tp(e){gp(e.length>0,{code:up.EXTENSION,message:"The upload handler was applied for the image extension without any valid files"});let t=0,o=[];for(let{file:r,progress:n}of e)o.push(()=>new Promise(i=>{let s=new FileReader;s.addEventListener("load",a=>{t+=1,n(t/e.length),i({src:a.target?.result,"data-file-name":r.name})},{once:!0}),s.readAsDataURL(r)}));return o}import{ErrorConstant as Mp,extension as Pp,ExtensionTag as ns,getTextSelection as Np,invariant as Rp,isElementDomNode as Ip,isNumber as Ap,NodeExtension as Lp,nodeInputRule as _p,omitExtraAttributes as Bp}from"@rme-sdk/core";import{insertPoint as Op}from"@rme-sdk/pm/transform";import{jsx as zp}from"react/jsx-runtime";var We=class extends Lp{constructor(){super(...arguments);this.ReactComponent=o=>{let{handleViewImgSrcUrl:r,imageHostingHandler:n,imagePasteHandler:i}=this.options;return zp(to,{handleViewImgSrcUrl:r,imageHostingHandler:n,imagePasteHandler:i,...o})};this.uploadImage=(o,r)=>{let{updatePlaceholder:n,destroyPlaceholder:i,createPlaceholder:s}=this.options;return a=>{let{tr:l}=a,c=l.selection.from;return this.store.createPlaceholderCommand({promise:o,placeholder:{type:"widget",get pos(){return c},createElement:(d,m)=>{let p=s(d,m);return r?.(p),p},onUpdate:(d,m,p,f)=>{n(d,m,p,f)},onDestroy:(d,m)=>{i(d,m)}},onSuccess:(d,m,p)=>this.insertMarkdownImage(d,m)(p)}).validate(({tr:d,dispatch:m})=>{let p=Op(d.doc,c,this.type);return p==null?!1:(c=p,d.selection.empty||m?.(d.deleteSelection()),!0)},"unshift").generateCommand()(a)}};this.uploadFiles=o=>{let{uploadHandler:r}=this.options;return n=>{let{tr:i}=n,s=o.pos??i.selection.from,{files:a}=o,{commands:l,chain:c}=this.store,d=a.map((p,f)=>({file:p,progress:u=>{l.updatePlaceholder(m[f],u)}})),m=r(d);Ap(s)&&c.selectText(s);for(let p of m)c.uploadImage(p);return c.run(),!0}}}get name(){return"md_image"}createTags(){return[ns.InlineNode,ns.Media]}createNodeSpec(o,r){let{preferPastedTextContent:n}=this.options;return{inline:!0,selectable:!0,atom:!0,...r,attrs:{...o.defaults(),"data-rme-type":{default:"md"},alt:{default:""},crop:{default:null},height:{default:null},width:{default:null},rotate:{default:null},src:{default:null},title:{default:""},"data-refer-label":{default:""},"data-file-name":{default:null},"data-rme-from-paste":{default:null}},parseDOM:[{tag:"img[src]",getAttrs:i=>{if(Ip(i)){let s=Vp({element:i,parse:o.parse});return n&&s.src?.startsWith("file:///")?!1:s}return{}}},...r.parseDOM??[]],toDOM:i=>{let s=Bp(i.attrs,o);return["img",{...o.dom(i),...s}]}}}insertMarkdownImage(o,r){return({tr:n,dispatch:i})=>{let{from:s,to:a}=Np(r??n.selection,n.doc),l=this.type.create(o);return i?.(n.replaceRangeWith(s,a,l)),!0}}createCommands(){return{uploadImage:this.uploadImage,uploadFiles:this.uploadFiles}}fileUploadFileHandler(o,r,n){let{preferPastedTextContent:i}=this.options;if(i&&$p(r)&&r.clipboardData?.getData("text/plain"))return!1;let{chain:s}=this.store;return s.uploadFiles({files:o,pos:n}),s.run(),!0}createPasteRules(){return[{type:"file",regexp:/image/i,fileHandler:o=>{o.event.preventDefault();let r=o.type==="drop"?o.pos:void 0;return this.fileUploadFileHandler(o.files,o.event,r)}}]}createInputRules(){return zt(this.type).map(_p)}fromMarkdown(){return[{type:6,token:"md_image",node:this.name}]}toMarkdown({state:o,node:r}){r.attrs["data-rme-type"]==="html"?o.text(Ae({tag:"img",attrs:r.attrs,voidElement:!0})):o.text(Wn(r),!1)}};We=v([Pp({defaultOptions:{createPlaceholder:Dp,handleViewImgSrcUrl:async e=>e,updatePlaceholder:()=>{},destroyPlaceholder:()=>{},uploadHandler:Fp,imageHostingHandler:async e=>e,preferPastedTextContent:!0,defaultInlineNode:"div"},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],We);function Hp(e){let{width:t,height:o}=e.style;return t=t||e.getAttribute("width")||"",o=o||e.getAttribute("height")||"",{width:t,height:o}}function Vp({element:e,parse:t}){let{width:o,height:r}=Hp(e);return{...t(e),alt:e.getAttribute("alt")??"",height:Number.parseInt(r||"0",10)||null,src:e.getAttribute("src")??null,title:e.getAttribute("title")??"",width:Number.parseInt(o||"0",10)||null,"data-file-name":e.getAttribute("data-file-name")??null}}function Dp(){return document.createElement("div")}function Fp(e){Rp(e.length>0,{code:Mp.EXTENSION,message:"The upload handler was applied for the image extension without any valid files"});let t=0,o=[];for(let{file:r,progress:n}of e)o.push(()=>new Promise(i=>{let s=new FileReader;s.addEventListener("load",a=>{t+=1,n(t/e.length),i({src:a.target?.result,"data-file-name":r.name})},{once:!0}),s.readAsDataURL(r)}));return o}function $p(e){return e.clipboardData!==void 0}import{isTextSelection as Nu,PlainExtension as Ru}from"@rme-sdk/core";import{Decoration as Iu,DecorationSet as Au}from"@rme-sdk/pm/view";import{MarkExtension as z,extension as vu}from"@rme-sdk/core";function kr(e){return Kp(e)||Wp(e)?Up(e):e}function Kp(e){return e.startsWith("/")}function Wp(e){return e.startsWith("\\")||/^[A-Z]{1,2}:/.test(e)}function Up(e){let t=e;return t=t.replace(/\\/g,"/"),t[0]!=="/"&&(t=`/${t}`),encodeURI(`file://${t}`).replace(/[?#]/g,encodeURIComponent)}import{TextSelection as Cu}from"@rme-sdk/pm/state";import{Transform as yu}from"@rme-sdk/pm/transform";import{Fragment as jp,Mark as Qp,NodeRange as Xp,Slice as Yp}from"@rme-sdk/pm/model";import{Step as ss,StepResult as Jp}from"@rme-sdk/pm/transform";import{Step as is,StepMap as qp,StepResult as Gp}from"@rme-sdk/pm/transform";var bt=class e extends is{constructor(o){super();this.doc=o}apply(o){return Gp.ok(o)}getMap(){return qp.empty}invert(o){return new e(o)}map(){return null}merge(o){return null}toJSON(){return{stepType:"replaceDoc",doc:this.doc.toJSON()}}static fromJSON(o,r){let n=o.nodeFromJSON(r.doc);return new e(n)}};try{is.jsonID("replaceDoc",bt)}catch{}var Ue=class e extends ss{constructor(o){if(o.length===0)throw new RangeError("BatchSetMarkStep: at least one chunk is required");let r=0;for(let[n,i]of o){if(r>n||n>i)throw new RangeError("BatchSetMarkStep: chunks must be sorted");r=i}super();this.chunks=o}apply(o){let r=this.chunks,n=r[0][0],i=r[r.length-1][1],s=o.resolve(n),a=o.resolve(i),l=s.sharedDepth(i),{start:c,parent:d}=new Xp(s,a,l),m=o.slice(c,i),p=0,f,u,y,b,x,E,k,h,g,S,C=as(m.content,c,d,(w,T,I)=>{g=w;let R=[];for(;g&&p<r.length;){if(f=I+g.nodeSize,[u,y,k]=r[p],u>=y){p++;continue}if(u>=f){R.push(g);break}if(I>=y){p++;continue}b=Math.max(u,I),x=Math.min(y,f),b>I&&(R.push(g.cut(0,b-I)),g=g.cut(b-I),I=b),x<f&&([g,S]=[g.cut(0,x-I),g.cut(x-I)],f=x),h=g.marks;for(E of h)E.isInSet(k)||(h=E.removeFromSet(h));for(E of k)!E.isInSet(h)&&T?.type.allowsMarkType(E.type)&&(h=E.addToSet(h));g=g.mark(h),R.push(g),I+=g.nodeSize,g=S,S=null}return R});return Jp.fromReplace(o,c,i,new Yp(C,m.openStart,m.openEnd))}invert(o){return new bt(o)}map(){return null}merge(){return null}toJSON(){return{stepType:"batchSetMark",chunks:this.chunks.map(r=>[r[0],r[1],r[2].map(n=>n.toJSON())])}}static fromJSON(o,r){return new e(r.chunks.map(n=>[n[0],n[1],n[2].map(i=>Qp.fromJSON(o,i))]))}};try{ss.jsonID("batchSetMark",Ue)}catch{}function as(e,t,o,r){let n=[],i=t;for(let s=0;s<e.childCount;s++){let a=e.child(s);a.content.size&&(a=a.copy(as(a.content,i+(a.isLeaf?0:1),a,r))),a.isInline?n.push(...r(a,o,i)):n.push(a),i+=a.nodeSize}return jp.fromArray(n)}function*Cr(e){let t=e.content;for(let o=0,r=0;o<t.childCount;o++){let n=t.child(o);yield[n,r,o],r+=n.nodeSize}}function*ls(e){let t=e.start+1;for(let[o,,r]of Cr(e.parent))if(!(r<e.startIndex)){if(r>=e.endIndex)break;yield[o,t],t+=o.nodeSize}}import Zp from"lodash";import{fromMarkdown as eu}from"mdast-util-from-markdown";import{gfmAutolinkLiteralFromMarkdown as cs}from"mdast-util-gfm-autolink-literal";import{gfmStrikethroughFromMarkdown as tu}from"mdast-util-gfm-strikethrough";import{gfmAutolinkLiteral as ou}from"micromark-extension-gfm-autolink-literal";import{gfmStrikethrough as ru}from"micromark-extension-gfm-strikethrough";var{cloneDeep:lv}=Zp;cs.transforms=[];function nu(e){return e.length<=1?e:e.includes("mdMark")?["mdMark"]:e.includes("mdCodeText")?["mdCodeText"]:e.includes("mdText")?e.filter(t=>t!=="mdText"):e}function iu(e,t){return[{marks:["mdText"],attrs:{depth:t,first:!0,last:!0},start:e.position.start.offset,end:e.position.end.offset}]}function su(e,t,o){let r=[{marks:["mdMark"],attrs:{depth:t,first:!0},start:e.position.start.offset,end:e.position.start.offset+2}];for(let n of e.children)for(let i of qe(n,t+1,o))i.marks.push("mdStrong"),r.push(i);return r.push({marks:["mdMark"],attrs:{depth:t,last:!0},start:e.position.end.offset-2,end:e.position.end.offset}),r}function au(e,t,o){let r=[{marks:["mdMark"],attrs:{depth:t,first:!0},start:e.position.start.offset,end:e.position.start.offset+1}];for(let n of e.children)for(let i of qe(n,t+1,o))i.marks.push("mdEm"),r.push(i);return r.push({marks:["mdMark"],attrs:{depth:t,last:!0},start:e.position.end.offset-1,end:e.position.end.offset}),r}function lu(e,t,o){let r=[{marks:["mdMark"],attrs:{depth:t,first:!0},start:e.position.start.offset,end:e.position.start.offset+2}];for(let n of e.children)for(let i of qe(n,t+1,o))i.marks.push("mdDel"),r.push(i);return r.push({marks:["mdMark"],attrs:{depth:t,last:!0},start:e.position.end.offset-2,end:e.position.end.offset}),r}function cu(e,t){return[{marks:["mdMark"],attrs:{depth:t,first:!0},start:e.position.start.offset,end:e.position.start.offset+1},{marks:["mdCodeText"],attrs:{depth:t},start:e.position.start.offset+1,end:e.position.end.offset-1},{marks:["mdMark"],attrs:{depth:t,last:!0},start:e.position.end.offset-1,end:e.position.end.offset}]}function du(e,t){return[{marks:["mdLinkText"],attrs:{depth:t,first:!0,last:!0,href:e.url},start:e.position.start.offset,end:e.position.end.offset}]}function mu(e,t,o){let r=e.position.start.offset,n=e.position.end.offset,i=0;if(o){let c=0;o.forEach(d=>{re.includes(d.type.name)&&r<=c&&c<n&&i++,c+=d.nodeSize})}if(e.children.length===0)return[{marks:[i>0?"mdMark":"mdText"],attrs:{depth:t,first:!0,last:!1,ignoreWhenCopy:!0,linkHref:e.url},start:e.position.start.offset,end:e.position.start.offset+2},{marks:[i>0?"mdMark":"mdText"],attrs:{depth:t,first:!1,last:!0,ignoreWhenCopy:!0,linkHref:e.url},start:e.position.start.offset+2,end:n}];let s=e.children[0].position.start.offset,a=e.children[e.children.length-1].position.end.offset;if(i>0&&(a+=i),r===s&&n===a)return du(e,t);let l=[{marks:["mdMark"],attrs:{depth:t,first:!0,ignoreWhenCopy:!0},start:e.position.start.offset,end:e.position.start.offset+1}];for(let c of e.children)for(let d of qe(c,t+1,o))d.marks.push("mdLinkText"),d.attrs.href=e.url,l.push(d);return a+2<n&&l.push({marks:["mdMark"],attrs:{depth:t,ignoreWhenCopy:!0},start:a,end:a+2},{marks:["mdLinkUri"],attrs:{depth:t,ignoreWhenCopy:!0},start:a+2,end:n-1}),l.push({marks:["mdMark"],attrs:{depth:t,last:!0,ignoreWhenCopy:!0},start:n-1,end:n}),l}function pu(e,t,o){let r=e.position.start.offset,n=e.position.end.offset,i=0;if(o){let c=0;o.forEach(d=>{re.includes(d.type.name)&&r<=c&&c<n&&i++,c+=d.nodeSize})}if(e.children.length===0)return[{marks:[i>0?"mdMark":"mdText"],attrs:{depth:t,first:!0,last:!1,ignoreWhenCopy:!0},start:e.position.start.offset,end:e.position.start.offset+2},{marks:[i>0?"mdMark":"mdText"],attrs:{depth:t,first:!1,last:!0,ignoreWhenCopy:!0},start:e.position.start.offset+2,end:n}];let s=e.children[0].position.start.offset,a=e.children[e.children.length-1].position.end.offset;i>0&&(a+=i);let l=[{marks:["mdMark"],attrs:{depth:t,first:!0,ignoreWhenCopy:!0},start:e.position.start.offset,end:e.position.start.offset+1}];for(let c of e.children)for(let d of qe(c,t+1,o))d.marks.push("mdLinkText"),l.push(d);return a+2<n&&l.push({marks:["mdMark"],attrs:{depth:t,ignoreWhenCopy:!0},start:a,end:a+2},{marks:["mdLinkUri"],attrs:{depth:t,ignoreWhenCopy:!0},start:a+2,end:n-1}),l.push({marks:["mdMark"],attrs:{depth:t,last:!0,ignoreWhenCopy:!0},start:n-1,end:n}),l}function qe(e,t,o){switch(e.type){case"text":return iu(e,t);case"strong":return su(e,t,o);case"emphasis":return au(e,t,o);case"delete":return lu(e,t,o);case"inlineCode":return cu(e,t);case"html":return[];case"break":return[];case"image":return[];case"imageReference":return[];case"footnote":return[];case"footnoteReference":return[];case"link":return mu(e,t,o);case"linkReference":return pu(e,t,o);default:return console.warn("unknow mdast token:",e),[]}}var uu={delete:!0,text:!0,emphasis:!0,strong:!0,html:!0,inlineCode:!0,break:!0,image:!0,imageReference:!0,footnote:!0,footnoteReference:!0,link:!0,linkReference:!0},fu={extensions:[{disable:{null:["blockQuote","characterEscape","codeFenced","codeIndented","headingAtx","htmlFlow","htmlText","list","thematicBreak","image"]}},ru({singleTilde:!1}),ou],mdastExtensions:[tu,cs]};function hu(e){try{let t=eu(e,fu);if(t.children.length===0)return[];let o=t.children[0];if(o.type!=="paragraph")throw Error(`unknow child type ${o.type}`);for(let r of o.children)if(!uu[r.type])throw Error(`got unknow phrasingContent token: ${JSON.stringify(r)}`);return o.children}catch(t){console.warn(`failed to parse inline markdown text ${JSON.stringify(e)}: ${t}`)}return[]}function gu(e){for(let t of e)t.end-t.start!==0&&(t.marks=nu(t.marks));return e}function bu(e,t,o=1){let r=[];for(let n of e)r=r.concat(qe(n,o,t));return gu(r)}function ds(e,t,o){let n=e.doc.content.content.filter(a=>a.type?.name==="reference_def").map(a=>`[${a.attrs.label}]: ${a.attrs.href}${a.attrs.title?` "${a.attrs.title}"`:""}`).join(`
|
|
1697
|
+
`,ts=e=>{let{node:t,referInfo:o,imageHostingHandler:r}=e,{src:n,alt:i}=t.attrs,[s,a]=eo(n||""),[l,c]=eo(i||""),[d,m]=eo(o?.label||""),[p,f]=eo(!1),u=!!o,y=g=>{let S=g.currentTarget.value;a(S),f(S!==n||l!==i||d!==o?.label)},b=g=>{let S=g.currentTarget.value;c(S),f(s!==n||S!==i||d!==o?.label)},x=g=>{let S=g.currentTarget.value;m(S),f(s!==n||l!==i||S!==o?.label)},E=()=>{if(e.updateAttributes){if(u)e.updateAttributes({...t.attrs,alt:l.trim(),referInfo:{...t.attrs.referInfo,label:d.trim()}});else{let g=t.attrs.src;g&&g!==s&&r?r(g).then(S=>{S!==g&&e.updateAttributes?.({...t.attrs,src:S,alt:l.trim()})}):e.updateAttributes({...t.attrs,src:s.trim(),alt:l.trim()})}f(!1)}},k=()=>{a(n||""),c(i||""),m(o?.label||""),f(!1)},h=g=>{g.key==="Enter"&&!g.shiftKey?(g.preventDefault(),E()):g.key==="Escape"&&(g.preventDefault(),k())};return ie(rp,{children:[u?ie(br,{children:[G(yr,{children:"Refer Label"}),G(xr,{placeholder:"Enter reference label...",value:d,onInput:x,onKeyDown:h})]}):ie(br,{children:[G(yr,{children:"URL"}),G(xr,{placeholder:"Enter image URL...",value:s,onInput:y,onKeyDown:h})]}),ie(br,{children:[G(yr,{children:"Alt"}),G(xr,{placeholder:"Enter alternative text for accessibility...",value:l,onInput:b,onKeyDown:h})]}),ie(np,{children:[ie(gt,{children:[G("kbd",{"aria-label":"Esc",children:"Esc"}),es("slashMenu.toCancel")]}),ie(gt,{children:[G("kbd",{"aria-label":"Enter",children:ie("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[G("polyline",{points:"9 10 4 15 9 20"}),G("path",{d:"M20 4v7a4 4 0 0 1-4 4H4"})]})}),es("slashMenu.toSelect")]})]})]})};import{jsx as ke}from"react/jsx-runtime";var mp="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAAChElEQVR4Ae3aMW/TQBxAcb70k91AAiGuGlZAtOlQApWaDiSdklZq2RPUTm1xUWL3PgqSpygkXlh88N54nn7S2Trd3y/CP5IQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECPmPIEKECBEiRIgQIeX82+FBO0naB4eTRRkt5P7sNWt1Rw9RQvKThI2SYR4f5OoVW2rfRAYpT6hqHc8WeVHki9mgRdWwiAmyfA9AdrlaW5tlAHxcxQMpK8feRbGxPEkrSREN5ARg/y780V0GMIwFcgXwLg9byvsAN3FA8lfAfr7jYQZ0nqKAfAb21vYVwNruSoEvMUDuE+Ai7IKECZA+RAA5A7JiN6TMgFHzIeUb4DLshoQZ0H1uPGQOvFzVQZYtYNF4yBg4DnWQMAAmjYccArN6yBQ4ajzkAFjUQ+ZAv/GQNpDXQ3Kg03hIAhT1kAJIhLi1/vJl39Ic6Mf3+a2K8PM7BgahtgEwjuKI0lqGjSI8opRdYFb3sk/jODSGEZCVuyFFDzgPzYc8JMBkN2QMpI8RQMIQ2LvdBblNgdM4Lh/aQJaHrf3sAe2nKCDhGqCfb3VEcx1UNQTItlzQ3fYAvoZYIMUHgHRSbiyPU4BPZUSX2JWEbLZcW5v2qByrmMYKxZCq1mA6z4sin08HLapOy8gGPddtttT5HuHobZiwUXr6K85h6KjLWm/PH+MdTy/GR/12knb6g8mPZ38YECJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAh0fUb5q7oCGreEVEAAAAASUVORK5CYII=";function to(e){let{node:t,selected:o,updateAttributes:r,handleViewImgSrcUrl:n,imagePasteHandler:i,imageHostingHandler:s,view:a}=e,l=kr(null),c=kr(null),d=kr(null),m=t.attrs["data-rme-from-paste"]==="true",p=a.state.doc.content.content.filter(h=>h.type.name==="reference_def"),f=lp(()=>{let h;return p.forEach(g=>{let S=g.content.content.find(T=>T.type.name==="reference_label"),C=g.content.content.find(T=>T.type.name==="reference_href"),w=g.content.content.find(T=>T.type.name==="reference_title");!S?.textContent||!t.attrs["data-refer-label"]||os(S?.textContent)===os(t.attrs["data-refer-label"])&&(h={href:C?.textContent||"",title:w?.textContent||"",label:S?.textContent||""})}),h},[p]),u=ap(async()=>{let h=t.attrs.src||"";if(i)try{h=await i(t.attrs.src)}catch{}r({"data-rme-from-paste":null,src:h})});rs(()=>{m&&u()},[m]);let y=h=>{c.current=h};rs(()=>{let h=g=>{d.current&&c.current&&(!g.target||!(g.target instanceof Node)||!d.current.contains(g.target))&&c.current.setOpen(!1)};if(o)return document.addEventListener("mousedown",h),()=>{document.removeEventListener("mousedown",h)}},[o]);let b=sp(()=>{r({"data-rme-type":"html"})},[r]),x=ke("span",{className:"inline-loading",children:ke("i",{className:"inline-loading-icon ri-loader-4-line"})});if(m)return x;let E=ip(t.attrs,"data-refer-label"),k=ke(Zt,{controlInit:h=>l.current=h,onResize:b,...e,children:ke(dp,{...E,onLoad:()=>l.current?.(),src:f?.href||t.attrs.src,loader:x,imgPromise:()=>new Promise(async(h,g)=>{let S=f?.href||t.attrs.src||"",C=f?.href||t.attrs.src||"";if(n)try{S=await n(S)}catch{}let w=T=>{let I=new Image;I.src=T,I.onload=()=>{h(T)},I.onerror=()=>{T===C?g(mp):w(C)}};w(S)}),style:{width:"100%",height:"100%"}})},`${t.attrs.src}`);return ke("div",{ref:d,style:{position:"relative",zIndex:o?10:"auto",lineHeight:0},children:ke(cp,{customContent:ke(ts,{node:t,referInfo:f,imageHostingHandler:s,updateAttributes:(...h)=>{r(...h),c.current?.setOpen(!1)}},`${t.attrs.src}`),boxProps:{style:{display:"inline-flex"}},placement:"top-start",onStoreChange:y,toggleOnClick:!0,style:{zIndex:11},children:k})})}import{jsx as Tp}from"react/jsx-runtime";var Ke=class extends bp{constructor(){super(...arguments);this.ReactComponent=o=>{let{handleViewImgSrcUrl:r,imageHostingHandler:n,imagePasteHandler:i}=this.options;return Tp(to,{handleViewImgSrcUrl:r,imagePasteHandler:i,imageHostingHandler:n,...o})}}get name(){return"html_image"}createTags(){return[ns.InlineNode,ns.Media]}createNodeSpec(o,r){let{preferPastedTextContent:n}=this.options;return{inline:!0,selectable:!0,atom:!0,...r,attrs:{...o.defaults(),alt:{default:""},crop:{default:null},height:{default:null},width:{default:null},rotate:{default:null},src:{default:null},title:{default:""},"data-file-name":{default:null},"data-rme-loading":{default:null},"data-rme-from-paste":{default:null}},parseDOM:[{tag:"img[src]",getAttrs:i=>{if(gp(i)){let s=wp({element:i,parse:o.parse});return n&&s.src?.startsWith("file:///")?!1:s}return{}}},...r.parseDOM??[]],toDOM:i=>{let s=xp(i.attrs,o);return["img",{...o.dom(i),...s}]}}}insertImage(o,r){return({tr:n,dispatch:i})=>{let{from:s,to:a}=fp(r??n.selection,n.doc),l=this.type.create(o);return i?.(n.replaceRangeWith(s,a,l)),!0}}createInputRules(){return Kt(this.type).map(yp)}fromMarkdown(){return[{type:6,token:"html_image",node:this.name}]}toMarkdown({state:o,node:r}){o.text(Ae({tag:"img",attrs:r.attrs,voidElement:!0}),!1)}};Ke=v([up({defaultOptions:{createPlaceholder:Ep,handleViewImgSrcUrl:async e=>e,updatePlaceholder:()=>{},destroyPlaceholder:()=>{},uploadHandler:Sp,imageHostingHandler:async e=>e,preferPastedTextContent:!0,defaultInlineNode:"div"},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Ke);var kp=new Set(["image/jpeg","image/gif","image/png","image/jpg","image/svg","image/webp"]);function IT(e){return kp.has(e.type)}function Cp(e){let{width:t,height:o}=e.style;return t=t||e.getAttribute("width")||"",o=o||e.getAttribute("height")||"",{width:t,height:o}}function wp({element:e,parse:t}){let{width:o,height:r}=Cp(e);return{...t(e),alt:e.getAttribute("alt")??"",height:Number.parseInt(r||"0",10)||null,src:e.getAttribute("src")??null,title:e.getAttribute("title")??"",width:Number.parseInt(o||"0",10)||null,"data-file-name":e.getAttribute("data-file-name")??null}}function Ep(){return document.createElement("div")}function Sp(e){hp(e.length>0,{code:pp.EXTENSION,message:"The upload handler was applied for the image extension without any valid files"});let t=0,o=[];for(let{file:r,progress:n}of e)o.push(()=>new Promise(i=>{let s=new FileReader;s.addEventListener("load",a=>{t+=1,n(t/e.length),i({src:a.target?.result,"data-file-name":r.name})},{once:!0}),s.readAsDataURL(r)}));return o}import{ErrorConstant as vp,extension as Mp,ExtensionTag as is,getTextSelection as Pp,invariant as Np,isElementDomNode as Rp,isNumber as Ip,NodeExtension as Ap,nodeInputRule as Lp,omitExtraAttributes as _p}from"@rme-sdk/core";import{insertPoint as Bp}from"@rme-sdk/pm/transform";import{jsx as $p}from"react/jsx-runtime";var We=class extends Ap{constructor(){super(...arguments);this.ReactComponent=o=>{let{handleViewImgSrcUrl:r,imageHostingHandler:n,imagePasteHandler:i}=this.options;return $p(to,{handleViewImgSrcUrl:r,imageHostingHandler:n,imagePasteHandler:i,...o})};this.uploadImage=(o,r)=>{let{updatePlaceholder:n,destroyPlaceholder:i,createPlaceholder:s}=this.options;return a=>{let{tr:l}=a,c=l.selection.from;return this.store.createPlaceholderCommand({promise:o,placeholder:{type:"widget",get pos(){return c},createElement:(d,m)=>{let p=s(d,m);return r?.(p),p},onUpdate:(d,m,p,f)=>{n(d,m,p,f)},onDestroy:(d,m)=>{i(d,m)}},onSuccess:(d,m,p)=>this.insertMarkdownImage(d,m)(p)}).validate(({tr:d,dispatch:m})=>{let p=Bp(d.doc,c,this.type);return p==null?!1:(c=p,d.selection.empty||m?.(d.deleteSelection()),!0)},"unshift").generateCommand()(a)}};this.uploadFiles=o=>{let{uploadHandler:r}=this.options;return n=>{let{tr:i}=n,s=o.pos??i.selection.from,{files:a}=o,{commands:l,chain:c}=this.store,d=a.map((p,f)=>({file:p,progress:u=>{l.updatePlaceholder(m[f],u)}})),m=r(d);Ip(s)&&c.selectText(s);for(let p of m)c.uploadImage(p);return c.run(),!0}}}get name(){return"md_image"}createTags(){return[is.InlineNode,is.Media]}createNodeSpec(o,r){let{preferPastedTextContent:n}=this.options;return{inline:!0,selectable:!0,atom:!0,...r,attrs:{...o.defaults(),"data-rme-type":{default:"md"},alt:{default:""},crop:{default:null},height:{default:null},width:{default:null},rotate:{default:null},src:{default:null},title:{default:""},"data-refer-label":{default:""},"data-file-name":{default:null},"data-rme-from-paste":{default:null}},parseDOM:[{tag:"img[src]",getAttrs:i=>{if(Rp(i)){let s=Hp({element:i,parse:o.parse});return n&&s.src?.startsWith("file:///")?!1:s}return{}}},...r.parseDOM??[]],toDOM:i=>{let s=_p(i.attrs,o);return["img",{...o.dom(i),...s}]}}}insertMarkdownImage(o,r){return({tr:n,dispatch:i})=>{let{from:s,to:a}=Pp(r??n.selection,n.doc),l=this.type.create(o);return i?.(n.replaceRangeWith(s,a,l)),!0}}createCommands(){return{uploadImage:this.uploadImage,uploadFiles:this.uploadFiles}}fileUploadFileHandler(o,r,n){let{preferPastedTextContent:i}=this.options;if(i&&Fp(r)&&r.clipboardData?.getData("text/plain"))return!1;let{chain:s}=this.store;return s.uploadFiles({files:o,pos:n}),s.run(),!0}createPasteRules(){return[{type:"file",regexp:/image/i,fileHandler:o=>{o.event.preventDefault();let r=o.type==="drop"?o.pos:void 0;return this.fileUploadFileHandler(o.files,o.event,r)}}]}createInputRules(){return zt(this.type).map(Lp)}fromMarkdown(){return[{type:6,token:"md_image",node:this.name}]}toMarkdown({state:o,node:r}){r.attrs["data-rme-type"]==="html"?o.text(Ae({tag:"img",attrs:r.attrs,voidElement:!0})):o.text(Un(r),!1)}};We=v([Mp({defaultOptions:{createPlaceholder:Dp,handleViewImgSrcUrl:async e=>e,updatePlaceholder:()=>{},destroyPlaceholder:()=>{},uploadHandler:Vp,imageHostingHandler:async e=>e,preferPastedTextContent:!0,defaultInlineNode:"div"},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],We);function Op(e){let{width:t,height:o}=e.style;return t=t||e.getAttribute("width")||"",o=o||e.getAttribute("height")||"",{width:t,height:o}}function Hp({element:e,parse:t}){let{width:o,height:r}=Op(e);return{...t(e),alt:e.getAttribute("alt")??"",height:Number.parseInt(r||"0",10)||null,src:e.getAttribute("src")??null,title:e.getAttribute("title")??"",width:Number.parseInt(o||"0",10)||null,"data-file-name":e.getAttribute("data-file-name")??null}}function Dp(){return document.createElement("div")}function Vp(e){Np(e.length>0,{code:vp.EXTENSION,message:"The upload handler was applied for the image extension without any valid files"});let t=0,o=[];for(let{file:r,progress:n}of e)o.push(()=>new Promise(i=>{let s=new FileReader;s.addEventListener("load",a=>{t+=1,n(t/e.length),i({src:a.target?.result,"data-file-name":r.name})},{once:!0}),s.readAsDataURL(r)}));return o}function Fp(e){return e.clipboardData!==void 0}import{isTextSelection as Pu,PlainExtension as Nu}from"@rme-sdk/core";import{Decoration as Ru,DecorationSet as Iu}from"@rme-sdk/pm/view";import{MarkExtension as z,extension as Tu}from"@rme-sdk/core";function Cr(e){return zp(e)||Kp(e)?Wp(e):e}function zp(e){return e.startsWith("/")}function Kp(e){return e.startsWith("\\")||/^[A-Z]{1,2}:/.test(e)}function Wp(e){let t=e;return t=t.replace(/\\/g,"/"),t[0]!=="/"&&(t=`/${t}`),encodeURI(`file://${t}`).replace(/[?#]/g,encodeURIComponent)}import{TextSelection as ku}from"@rme-sdk/pm/state";import{Transform as bu}from"@rme-sdk/pm/transform";import{Fragment as Gp,Mark as jp,NodeRange as Qp,Slice as Xp}from"@rme-sdk/pm/model";import{Step as as,StepResult as Yp}from"@rme-sdk/pm/transform";import{Step as ss,StepMap as Up,StepResult as qp}from"@rme-sdk/pm/transform";var bt=class e extends ss{constructor(o){super();this.doc=o}apply(o){return qp.ok(o)}getMap(){return Up.empty}invert(o){return new e(o)}map(){return null}merge(o){return null}toJSON(){return{stepType:"replaceDoc",doc:this.doc.toJSON()}}static fromJSON(o,r){let n=o.nodeFromJSON(r.doc);return new e(n)}};try{ss.jsonID("replaceDoc",bt)}catch{}var Ue=class e extends as{constructor(o){if(o.length===0)throw new RangeError("BatchSetMarkStep: at least one chunk is required");let r=0;for(let[n,i]of o){if(r>n||n>i)throw new RangeError("BatchSetMarkStep: chunks must be sorted");r=i}super();this.chunks=o}apply(o){let r=this.chunks,n=r[0][0],i=r[r.length-1][1],s=o.resolve(n),a=o.resolve(i),l=s.sharedDepth(i),{start:c,parent:d}=new Qp(s,a,l),m=o.slice(c,i),p=0,f,u,y,b,x,E,k,h,g,S,C=ls(m.content,c,d,(w,T,I)=>{g=w;let R=[];for(;g&&p<r.length;){if(f=I+g.nodeSize,[u,y,k]=r[p],u>=y){p++;continue}if(u>=f){R.push(g);break}if(I>=y){p++;continue}b=Math.max(u,I),x=Math.min(y,f),b>I&&(R.push(g.cut(0,b-I)),g=g.cut(b-I),I=b),x<f&&([g,S]=[g.cut(0,x-I),g.cut(x-I)],f=x),h=g.marks;for(E of h)E.isInSet(k)||(h=E.removeFromSet(h));for(E of k)!E.isInSet(h)&&T?.type.allowsMarkType(E.type)&&(h=E.addToSet(h));g=g.mark(h),R.push(g),I+=g.nodeSize,g=S,S=null}return R});return Yp.fromReplace(o,c,i,new Xp(C,m.openStart,m.openEnd))}invert(o){return new bt(o)}map(){return null}merge(){return null}toJSON(){return{stepType:"batchSetMark",chunks:this.chunks.map(r=>[r[0],r[1],r[2].map(n=>n.toJSON())])}}static fromJSON(o,r){return new e(r.chunks.map(n=>[n[0],n[1],n[2].map(i=>jp.fromJSON(o,i))]))}};try{as.jsonID("batchSetMark",Ue)}catch{}function ls(e,t,o,r){let n=[],i=t;for(let s=0;s<e.childCount;s++){let a=e.child(s);a.content.size&&(a=a.copy(ls(a.content,i+(a.isLeaf?0:1),a,r))),a.isInline?n.push(...r(a,o,i)):n.push(a),i+=a.nodeSize}return Gp.fromArray(n)}function*wr(e){let t=e.content;for(let o=0,r=0;o<t.childCount;o++){let n=t.child(o);yield[n,r,o],r+=n.nodeSize}}function*cs(e){let t=e.start+1;for(let[o,,r]of wr(e.parent))if(!(r<e.startIndex)){if(r>=e.endIndex)break;yield[o,t],t+=o.nodeSize}}import Jp from"lodash";import{fromMarkdown as Zp}from"mdast-util-from-markdown";import{gfmAutolinkLiteralFromMarkdown as ds}from"mdast-util-gfm-autolink-literal";import{gfmStrikethroughFromMarkdown as eu}from"mdast-util-gfm-strikethrough";import{gfmAutolinkLiteral as tu}from"micromark-extension-gfm-autolink-literal";import{gfmStrikethrough as ou}from"micromark-extension-gfm-strikethrough";var{cloneDeep:lv}=Jp;ds.transforms=[];function ru(e){return e.length<=1?e:e.includes("mdMark")?["mdMark"]:e.includes("mdCodeText")?["mdCodeText"]:e.includes("mdText")?e.filter(t=>t!=="mdText"):e}function nu(e,t){return[{marks:["mdText"],attrs:{depth:t,first:!0,last:!0},start:e.position.start.offset,end:e.position.end.offset}]}function iu(e,t,o){let r=[{marks:["mdMark"],attrs:{depth:t,first:!0},start:e.position.start.offset,end:e.position.start.offset+2}];for(let n of e.children)for(let i of qe(n,t+1,o))i.marks.push("mdStrong"),r.push(i);return r.push({marks:["mdMark"],attrs:{depth:t,last:!0},start:e.position.end.offset-2,end:e.position.end.offset}),r}function su(e,t,o){let r=[{marks:["mdMark"],attrs:{depth:t,first:!0},start:e.position.start.offset,end:e.position.start.offset+1}];for(let n of e.children)for(let i of qe(n,t+1,o))i.marks.push("mdEm"),r.push(i);return r.push({marks:["mdMark"],attrs:{depth:t,last:!0},start:e.position.end.offset-1,end:e.position.end.offset}),r}function au(e,t,o){let r=[{marks:["mdMark"],attrs:{depth:t,first:!0},start:e.position.start.offset,end:e.position.start.offset+2}];for(let n of e.children)for(let i of qe(n,t+1,o))i.marks.push("mdDel"),r.push(i);return r.push({marks:["mdMark"],attrs:{depth:t,last:!0},start:e.position.end.offset-2,end:e.position.end.offset}),r}function lu(e,t){return[{marks:["mdMark"],attrs:{depth:t,first:!0},start:e.position.start.offset,end:e.position.start.offset+1},{marks:["mdCodeText"],attrs:{depth:t},start:e.position.start.offset+1,end:e.position.end.offset-1},{marks:["mdMark"],attrs:{depth:t,last:!0},start:e.position.end.offset-1,end:e.position.end.offset}]}function cu(e,t){return[{marks:["mdLinkText"],attrs:{depth:t,first:!0,last:!0,href:e.url},start:e.position.start.offset,end:e.position.end.offset}]}function du(e,t,o){let r=e.position.start.offset,n=e.position.end.offset,i=0;if(o){let c=0;o.forEach(d=>{oe.includes(d.type.name)&&r<=c&&c<n&&i++,c+=d.nodeSize})}if(e.children.length===0)return[{marks:[i>0?"mdMark":"mdText"],attrs:{depth:t,first:!0,last:!1,ignoreWhenCopy:!0,linkHref:e.url},start:e.position.start.offset,end:e.position.start.offset+2},{marks:[i>0?"mdMark":"mdText"],attrs:{depth:t,first:!1,last:!0,ignoreWhenCopy:!0,linkHref:e.url},start:e.position.start.offset+2,end:n}];let s=e.children[0].position.start.offset,a=e.children[e.children.length-1].position.end.offset;if(i>0&&(a+=i),r===s&&n===a)return cu(e,t);let l=[{marks:["mdMark"],attrs:{depth:t,first:!0,ignoreWhenCopy:!0},start:e.position.start.offset,end:e.position.start.offset+1}];for(let c of e.children)for(let d of qe(c,t+1,o))d.marks.push("mdLinkText"),d.attrs.href=e.url,l.push(d);return a+2<n&&l.push({marks:["mdMark"],attrs:{depth:t,ignoreWhenCopy:!0},start:a,end:a+2},{marks:["mdLinkUri"],attrs:{depth:t,ignoreWhenCopy:!0},start:a+2,end:n-1}),l.push({marks:["mdMark"],attrs:{depth:t,last:!0,ignoreWhenCopy:!0},start:n-1,end:n}),l}function mu(e,t,o){let r=e.position.start.offset,n=e.position.end.offset,i=0;if(o){let c=0;o.forEach(d=>{oe.includes(d.type.name)&&r<=c&&c<n&&i++,c+=d.nodeSize})}if(e.children.length===0)return[{marks:[i>0?"mdMark":"mdText"],attrs:{depth:t,first:!0,last:!1,ignoreWhenCopy:!0},start:e.position.start.offset,end:e.position.start.offset+2},{marks:[i>0?"mdMark":"mdText"],attrs:{depth:t,first:!1,last:!0,ignoreWhenCopy:!0},start:e.position.start.offset+2,end:n}];let s=e.children[0].position.start.offset,a=e.children[e.children.length-1].position.end.offset;i>0&&(a+=i);let l=[{marks:["mdMark"],attrs:{depth:t,first:!0,ignoreWhenCopy:!0},start:e.position.start.offset,end:e.position.start.offset+1}];for(let c of e.children)for(let d of qe(c,t+1,o))d.marks.push("mdLinkText"),l.push(d);return a+2<n&&l.push({marks:["mdMark"],attrs:{depth:t,ignoreWhenCopy:!0},start:a,end:a+2},{marks:["mdLinkUri"],attrs:{depth:t,ignoreWhenCopy:!0},start:a+2,end:n-1}),l.push({marks:["mdMark"],attrs:{depth:t,last:!0,ignoreWhenCopy:!0},start:n-1,end:n}),l}function qe(e,t,o){switch(e.type){case"text":return nu(e,t);case"strong":return iu(e,t,o);case"emphasis":return su(e,t,o);case"delete":return au(e,t,o);case"inlineCode":return lu(e,t);case"html":return[];case"break":return[];case"image":return[];case"imageReference":return[];case"footnote":return[];case"footnoteReference":return[];case"link":return du(e,t,o);case"linkReference":return mu(e,t,o);default:return console.warn("unknow mdast token:",e),[]}}var pu={delete:!0,text:!0,emphasis:!0,strong:!0,html:!0,inlineCode:!0,break:!0,image:!0,imageReference:!0,footnote:!0,footnoteReference:!0,link:!0,linkReference:!0},uu={extensions:[{disable:{null:["blockQuote","characterEscape","codeFenced","codeIndented","headingAtx","htmlFlow","htmlText","list","thematicBreak","image"]}},ou({singleTilde:!1}),tu],mdastExtensions:[eu,ds]};function fu(e){try{let t=Zp(e,uu);if(t.children.length===0)return[];let o=t.children[0];if(o.type!=="paragraph")throw Error(`unknow child type ${o.type}`);for(let r of o.children)if(!pu[r.type])throw Error(`got unknow phrasingContent token: ${JSON.stringify(r)}`);return o.children}catch(t){console.warn(`failed to parse inline markdown text ${JSON.stringify(e)}: ${t}`)}return[]}function hu(e){for(let t of e)t.end-t.start!==0&&(t.marks=ru(t.marks));return e}function gu(e,t,o=1){let r=[];for(let n of e)r=r.concat(qe(n,o,t));return hu(r)}function ms(e,t,o){let n=e.doc.content.content.filter(a=>a.type?.name==="reference_def").map(a=>`[${a.attrs.label}]: ${a.attrs.href}${a.attrs.title?` "${a.attrs.title}"`:""}`).join(`
|
|
1698
1698
|
|
|
1699
|
-
`),i=
|
|
1699
|
+
`),i=fu(`${t}
|
|
1700
1700
|
|
|
1701
|
-
${n}`);return bu(i,o)}function xu(e,t){if(t.length===0||e.length===0)return;let o=e[e.length-1],r=t[0];o[1]-1===r&&(o[0]+=1,o[1]+=1)}function ku(e,t,o,r,n){if(!o.textContent)return;let i=[],s=-1;for(let c=0;c<o.childCount;c++){let d=o.child(c);s+=d.nodeSize,re.includes(d.type.name)&&i.push(s)}if(o.type.name==="reference_def")return;let a=ds(e,o.textContent,o);if(a.length===0)return;let l=0;for(let c of a){let d=c.marks.map(y=>t.marks[y].create(c.attrs)),m=c.start+l,p=c.end+l,f=i.filter(y=>y>=m&&y<p),u=f.length;xu(n,f),n.push([r+c.start+l,r+c.end+l+u,d]),l+=u}}function ms(e,t,o,r,n){o.attrs.inlineDecorateType!=="IGNORE"&&(o.isTextblock?ku(e,t,o,r,n):o.forEach((i,s)=>{ms(e,t,i,r+s+1,n)}))}function oo(e,t,o,r){if(t.isTextblock){let n=e.doc.type.schema;ms(e,n,t,o,r)}else for(let[n,i]of Cr(t))oo(e,n,o+i+1,r)}function wr(e){let t=new yu(e),o=[];return oo(t,e,0,o),o.length&&t.step(new Ue(o)),t.doc}function Er(e){if(e.isDestroyed)return;let t=e.state.tr;t.setMeta("addToHistory",!1),ro(t)&&e.dispatch(t)}function ro(e,t){e.setMeta("APPLY_MARKS",!0);let{$from:o,$to:r}=e.selection,n=o.blockRange(r),i=[];if(!n||t)oo(e,e.doc,0,i);else{let l=n.end;for(let[c,d]of ls(n))d<n.start||d>l||oo(e,c,d,i)}if(i.length===0)return!1;let s=e.doc.content.size,a=[];for(let[l,c,d]of i)l<0||c>s||l>=c||a.push([l,c,d]);if(a.length===0)return!1;try{e.step(new Ue(a))}catch{return!1}return!!e.docChanged}function wu(e,t,o,r,n){for(let i=o;i<=r;i++)if(Ce(e.maybeChild(i),t))return i;if(n||o===r){if(Ce(e.maybeChild(o),"mdMark")&&Ce(e.maybeChild(o-1),t))return o-1;if(Ce(e.maybeChild(r),"mdMark")&&Ce(e.maybeChild(r+1),t))return r+1}return!1}function Eu({left:e,right:t,mark:o}){return r=>{let{tr:n,dispatch:i,state:s}=r,{$from:a,$to:l,empty:c}=s.selection,d=a.parent;if(!d||!d.isTextblock)return!1;let m=a.start();if(m<0)return!1;let p=a.index(),f=l.index();l.textOffset===0&&(c?p=Math.max(p-1,0):f>p&&f--);let u=wu(d,o,p,f,c);if(u!==!1){let y=!1;for(let b=u;b<d.childCount;b++){let x=d.child(b);Ce(x,"mdMark")&&x.text===t&&(ps(n,d,m,b),y=!0)}for(let b=u;b>=0;b--){let x=d.child(b);Ce(x,"mdMark")&&x.text===e&&(ps(n,d,m,b),y=!0)}if(y){if(i)try{ro(n),i(n)}catch{return!1}return!0}}return!1}}function Su({left:e,right:t}){return o=>{let{tr:r,dispatch:n,state:i}=o,{$from:s,$to:a,anchor:l,head:c}=i.selection;if(n){r.insertText(t,a.pos),r.insertText(e,s.pos);let d=e.length;r.setSelection(Cu.create(r.doc,l+d,c+d)),ro(r),n(r)}return!0}}function no({left:e,right:t,mark:o}){return r=>{let{$from:n,$to:i}=r.state.selection;return!n.sameParent(i)||!n.parent.type.isTextblock?!1:!!(Eu({left:e,right:t,mark:o})(r)||Su({left:e,right:t,mark:o})(r))}}function Ge(e){switch(e){case"mdStrong":return no({mark:e,left:"**",right:"**"});case"mdEm":return no({mark:e,left:"*",right:"*"});case"mdCodeText":return no({mark:e,left:"`",right:"`"});case"mdDel":return no({mark:e,left:"~~",right:"~~"});default:Tu(e)}}function Tu(e){throw new Error(`Unknown mark to toggle: ${e}`)}function Ce(e,t){return e?e.marks.some(o=>o.type.name===t):!1}function ps(e,t,o,r){if(r<0||r>=t.childCount)return e;let n=t.child(r);if(!n)return e;let i=e.doc.content.size;if(o<0||o>i)return e;let s=o;for(let c=0;c<r;c++){let d=t.child(c);d&&(s+=d.nodeSize)}let a=s,l=s+n.nodeSize;if(a<0||l>i||a>=l)return e;try{return e.delete(a,l)}catch{return e}}var J={depth:{default:0},ignoreWhenCopy:{default:!1},linkHref:{default:null}},us={depth:{default:0},first:{default:!1},last:{default:!1},class:{default:""},ignoreWhenCopy:{default:!1},linkHref:{default:null}},Sr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdMark"}createMarkSpec(){return{inclusive:!1,attrs:us,toDOM:t=>["span",{class:"md-mark","data-ignore-when-copy":t.attrs.ignoreWhenCopy},0]}}createCommands(){return{toggleInlineMark:Ge}}},Tr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdText"}createMarkSpec(){return{attrs:us,toDOM:t=>["span",{class:t.attrs.class},0]}}},vr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdEm"}createMarkSpec(){return{attrs:J,toDOM:()=>["em",0]}}createCommands(){return{toggleEmphasis:()=>t=>Ge(this.name)(t)}}},Mr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdStrong"}createMarkSpec(){return{attrs:J,toDOM:()=>["strong",0]}}createCommands(){return{toggleStrong:()=>t=>Ge(this.name)(t)}}},Pr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdCodeText"}createMarkSpec(){return{attrs:J,toDOM:()=>["code",0]}}createCommands(){return{toggleCodeText:()=>t=>Ge(this.name)(t)}}},Nr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdCodeSpace"}createMarkSpec(){return{attrs:J,toDOM:()=>["span",0]}}},Rr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdDel"}createMarkSpec(){return{attrs:J,toDOM:()=>["del",0]}}createCommands(){return{toggleDelete:()=>t=>Ge(this.name)(t)}}},Ir=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdLinkText"}createMarkSpec(){return{attrs:{...J,href:{default:""}},toDOM:t=>["a",{href:t.attrs.href},0]}}},Ar=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdLinkUri"}createMarkSpec(){return{spanning:!1,attrs:J,toDOM:t=>["a",{class:"md-link","data-ignore-when-copy":t.attrs.ignoreWhenCopy},0]}}},Lr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdImgText"}createMarkSpec(){return{spanning:!1,attrs:J,toDOM:()=>["span",{class:"md-img-text"},0]}}},Mu=new Map,yt=class extends z{constructor(){super(...arguments);this.createNodeViews=()=>o=>{let r=document.createElement("span"),n=document.createElement("img");this.options.handleViewImgSrcUrl?this.options.handleViewImgSrcUrl(o.attrs.href).then(s=>{n.setAttribute("src",kr(s)),Mu.set(o.attrs.href,s)}):n.setAttribute("src",kr(o.attrs.href));let i=document.createElement("span");return i.appendChild(n),i.appendChild(r),i.setAttribute("class","md-img-uri"),{dom:i,contentDOM:r}}}get name(){return"mdImgUri"}createMarkSpec(){return{spanning:!1,attrs:{...J,key:{default:""},href:{default:""}},toDOM:o=>["img",{src:o.attrs.href},0]}}};yt.disableExtraAttributes=!0,yt=v([vu({defaultOptions:{handleViewImgSrcUrl:async e=>e},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],yt);var Pu={mdMark:!0,mdLinkUri:!0,mdImgText:!0,mdHtmlInline:!0};function fs(e){return Pu[e]}var hs=(e={})=>[new Sr,new Tr,new vr,new Mr,new Pr,new Nr,new Rr,new Ir,new Ar,new Lr];function io(e){let t={};for(let o of e?.marks||[]){if(re.includes(e?.type.name||""))break;fs(o.type.name)&&(t.isAutoHideMark=!0),Object.assign(t,o.attrs)}return t}function gs(e,t,o,r){let n=[],i=t;for(let l=o;l<e.content.childCount;l++){let c=e.content.child(l),d=io(c);if(d.isAutoHideMark&&n.push([i,i+c.nodeSize]),i+=c.nodeSize,d.depth===1&&d.last)break}let s=io(e.maybeChild(o));if(s.depth===1&&s.first&&!r)return n;let a=t;for(let l=o-1;l>=0;l--){let c=e.content.child(l),d=io(c);if(d.isAutoHideMark&&n.push([a-c.nodeSize,a]),a-=c.nodeSize,d.depth===1&&d.first)break}return n}function Lu(){return{props:{decorations:e=>{if(!Nu(e.selection))return null;let t=e.selection.$anchor,o=t.parent;if(!o.isTextblock)return null;let r;if(t.textOffset===0)r=gs(o,t.pos,t.index(t.depth),!0);else{let n=t.index(t.depth),i=o.content.maybeChild(n);if(!i||!io(i).depth)return null;r=gs(o,t.pos-t.textOffset,t.index(t.depth),!1)}return Au.create(e.doc,r.map(([n,i])=>Iu.inline(n,i,{class:"show"})))}}}}var so=class extends Ru{get name(){return"inlineDecoration"}createPlugin(){return Lu()}};import{TextSelection as bs}from"@rme-sdk/pm/state";import{PlainExtension as _u}from"@rme-sdk/main";var xt=class extends _u{get name(){return"inlineMark"}createPlugin(){let t=null,o=n=>{t&&clearTimeout(t),t=setTimeout(()=>{if(n.isDestroyed){t=null;return}let i=n.state.doc,s=n.state.selection,{$head:a,$anchor:l}=s;Er(n);let c=i.content.size,d=Math.min(Math.max(a.pos,0),c),m=Math.min(Math.max(l.pos,0),c);if(d>=0&&d<=c&&m>=0&&m<=c)try{let p=i.resolve(d),f=i.resolve(m),u=p.parent===f.parent?bs.create(i,m,d):bs.create(i,d);n.dispatch(n.state.tr.setSelection(u))}catch{}t=null},10)},r=null;return{appendTransaction:n=>{let i=!1;for(let s of n)if(s.docChanged&&!s.getMeta("APPLY_MARKS")){i=!0;break}i&&r&&!r.isDestroyed&&o(r)},view:n=>(r=n,{})}}};import{isString as Vu}from"@rme-sdk/core";import{InputRule as Bu}from"prosemirror-inputrules";import{findWrapping as Ou}from"prosemirror-transform";function _r(e){if(e==null)return null;let t=Number.parseInt(e,10);return Number.isInteger(t)?t:null}function ys(e){let t=e.attrs;switch(t.kind){case"task":return[["label",["input",{type:"checkbox",checked:t.checked?"":void 0}]]];case"toggle":return[];default:return[]}}var xs="flatList";var ks="PROSEMIRROR_FLAT_LIST_TYPE_NAME";function ao(e){let t=e.cached[ks];if(!t){for(let o of Object.values(e.nodes))if((o.spec.group||"").split(" ").includes(xs)){t=o.name;break}if(!t)throw new TypeError("[prosemirror-flat-list] Unable to find a flat list type in the schema");return e.cached[ks]=t,t}return t}function Cs(e){return e.nodes[ao(e)]}function ws(e){return ao(e.schema)===e.name}function Es(e){return e?ws(e.type):!1}function Hu(e){for(let t=e.depth;t>0;t--){let o=e.node(t);if(o.type.name==="tableCell"||o.type.name==="tableHeaderCell")return!0}return!1}function lo(e,t){return new Bu(e,(o,r,n,i)=>{let s=o.tr;s.deleteRange(n,i);let a=s.selection.$from;if(Hu(a))return null;let l=a.index(-1)===0&&a.node(-1);if(l&&Es(l)){let f=l.attrs,u=typeof t=="function"?t({match:r,attributes:f}):t,y=Object.entries(u).filter(([b,x])=>f[b]!==x);if(y.length===0)return null;{let b=a.before(-1);for(let[x,E]of y)s.setNodeAttribute(b,x,E);return s}}let d=s.doc.resolve(n).blockRange();if(!d)return null;let m=typeof t=="function"?t({match:r}):t,p=Ou(d,Cs(o.schema),m);return p?s.wrap(d,p):null})}var Ss=[lo(/^\s?([*-])\s$/,{kind:"bullet",collapsed:!1}),lo(/^\s?(\d+)\.\s$/,({match:e})=>{let t=_r(e[1]);return{kind:"ordered",collapsed:!1,order:t!=null&&t>=2?t:null}}),lo(/^\s?\[([\sXx]?)]\s$/,({match:e})=>({kind:"task",checked:["x","X"].includes(e[1]),collapsed:!1})),lo(/^\s?>>\s$/,{kind:"toggle"})];import{convertCommand as j,ExtensionTag as Du,NodeExtension as Fu}from"@rme-sdk/core";import{createDedentListCommand as $u,createIndentListCommand as zu,createListPlugins as Ku,createListSpec as Wu,createMoveListCommand as Uu,createSplitListCommand as qu,createToggleCollapsedCommand as Gu,createToggleListCommand as ju,createUnwrapListCommand as Qu,createWrapInListCommand as Xu,listKeymap as Yu,protectCollapsed as Ju}from"@rme-sdk/prosemirror-flat-list";var Ts=class{},co=class extends Fu{static{this.disableExtraAttributes=!0}get name(){return"list"}createInputRules(){return Ss}createTags(){return[Du.Block]}createNodeSpec(){return Wu({toDomParams:{nativeList:!1,getMarkers:ys}})}createKeymap(){let t={};for(let[o,r]of Object.entries(Yu))t[o]=j(r);return t.Tab=vs(t["Mod-]"]),t["Shift-Tab"]=vs(t["Mod-["]),t}createExternalPlugins(){return Ku({schema:this.store.schema})}createCommands(){return{indentList:t=>j(zu(t)),dedentList:t=>j($u(t)),unwrapList:t=>j(Qu(t)),wrapInList:t=>j(Xu(t)),moveList:t=>j(Uu(t)),splitList:()=>j(qu()),protectCollapsed:()=>j(Ju),toggleCollapsed:t=>j(Gu(t)),toggleList:t=>j(ju(t))}}fromMarkdown(){return[{type:4,token:"list_item_open",handler:(t,o)=>{switch(t.topContext()){case"ordered_list":let r=t.topContextToken(),n;r?.type==="ordered_list_open"&&r?.attrs?.some(([i,s])=>i==="order"?(n=parseInt(s,10),t.closeContextToken(),!0):!1),t.openNode(this.type,{kind:"ordered",order:n});break;case"bullet_list":t.openNode(this.type,{kind:"bullet"});break;default:throw new Error("unknown context")}}},{type:4,token:"list_checkbox",handler:(t,o)=>{let r=t.stack[t.stack.length-1];if(r?.type.name==="list"){let n=o.attrGet("checked"),i={kind:"task",checked:Vu(n)||!!n};r.attrs=i}else console.warn(`expect list but got ${r?.type.name}`)}},{type:4,token:"list_item_close",handler:t=>{t.closeNode()}},{type:5,token:"bullet_list",context:"bullet_list"},{type:5,token:"ordered_list",context:"ordered_list"}]}toMarkdown({state:t,node:o,counter:r}){let n=o.attrs,i="";n.kind==="ordered"?i=`${n.order!=null?n.order:r}. `:n.kind==="task"?i=n.checked?"- [x] ":"- [ ] ":n.kind==="bullet"&&(i="- "),t.wrapBlock(" ",i,o,()=>t.renderContent(o))}};function vs(e){return(...t)=>(e(...t),!0)}function mo(e){return e.type.name==="list"&&e.attrs.kind==="ordered"}import{extension as lf,ExtensionTag as cf,NodeExtension as df,nodeInputRule as mf,omitExtraAttributes as pf}from"@rme-sdk/core";import{history as Zu,redo as ef,undo as tf}from"@rme-sdk/pm/history";import{keymap as of}from"@rme-sdk/pm/keymap";import{EditorState as rf,Plugin as nf,TextSelection as Ms}from"@rme-sdk/pm/state";import{EditorView as sf}from"@rme-sdk/pm/view";import af from"katex";function po(e,t,o,r=!0){return(n,i)=>{let s=e.state,{to:a,from:l}=s.selection,{to:c,from:d}=n.selection;if(r&&c!==d)return!1;let m=t>0?c:d;if(o){let p=n.doc.nodeSize-2;if(t>0&&m<p||t<0&&m>0)return!1}if(i){let p=t>0?a:l;e.dispatch(s.tr.setSelection(Ms.create(s.doc,p))),e.focus()}return!0}}var uo=class{constructor(t,o,r){this.openEditor=()=>{if(this._innerView)return;let t=this._node.attrs.tex??"";this._innerView=new sf(this._srcElt,{state:rf.create({doc:this._outerView.state.schema.node("paragraph",null,t?[this._outerView.state.schema.text(t)]:[this._outerView.state.schema.text("\u200B")]),plugins:[Zu(),of({ArrowLeft:po(this._outerView,-1,!0),ArrowRight:po(this._outerView,1,!0),ArrowUp:po(this._outerView,-1,!0),ArrowDown:po(this._outerView,1,!0),"Mod-z":(n,i,s)=>tf(n,i,s),"Shift-Mod-z":(n,i,s)=>ef(n,i,s),Backspace:n=>{let{from:i,to:s}=n.selection;if(i===0&&s===n.doc.content.size){let a=this._getPos();if(a!==void 0){let l=this._outerView.state.tr.delete(a,a+this._node.nodeSize);return this._outerView.dispatch(l),this._outerView.focus(),!0}}return!1}}),new nf({props:{handleDOMEvents:{blur:()=>{let n=this._getPos();if(n!==void 0){let i=(this._innerView?.state.doc.textContent||"").replace(/\u200b/g,""),s=this._outerView.state.tr;s.setNodeAttribute(n,"fromInput",!1),s.setNodeAttribute(n,"tex",i),this._outerView.dispatch(s)}return this.closeEditor(),!0}}}})]}),dispatchTransaction:this.dispatchInner.bind(this)}),this._innerView.dom.classList.add("inline-input-src"),this._innerView.dom.classList.remove("ProseMirror"),this._srcElt.style.display="inline";let o=this._innerView.state;this._innerView.focus();let r=o.doc.textContent.length||0;this._innerView.dispatch(o.tr.setSelection(Ms.create(o.doc,r))),this._renderElt?.classList.add("inline-input-preview"),this._isEditing=!0};this.closeEditor=(t=!0)=>{this._srcElt&&(this._srcElt.style.display="none"),this._innerView&&(this._innerView.destroy(),this._innerView=void 0),t&&this.renderTex(),this._isEditing=!1};this._node=t,this._outerView=o,this._getPos=r,this._isEditing=!1,this.dom=document.createElement("span"),this.dom.classList.add("inline-input"),this._renderElt=document.createElement("span"),this._renderElt.classList.add("inline-input-render"),this.dom.appendChild(this._renderElt),this._srcElt=document.createElement("span"),this._srcElt.spellcheck=!1,this._srcElt.style.display="none",this.dom.appendChild(this._srcElt),this.dom.addEventListener("click",()=>this.ensureFocus()),t.attrs.fromInput?setTimeout(()=>this.openEditor()):this.renderTex()}destroy(){this.closeEditor(!1),this._renderElt&&(this._renderElt.remove(),delete this._renderElt),this._srcElt&&(this._srcElt.remove(),delete this._srcElt),this.dom.remove()}ensureFocus(){this._innerView&&this._outerView.hasFocus()&&this._innerView.focus()}update(t,o){return t.sameMarkup(this._node)?(this._node=t,this._isEditing||this.renderTex(),!0):!1}selectNode(){this._outerView.editable&&(this._isEditing||this.openEditor())}deselectNode(){this._isEditing&&this.closeEditor()}stopEvent(t){return this._innerView!==void 0&&t.target!==void 0&&this._innerView.dom.contains(t.target)}ignoreMutation(){return!0}renderTex(t=!1){if(!this._renderElt)return;let r=(this._innerView?.state.doc.textContent??this._node.attrs.tex??"").replace(/\u200b/g,"").trim();try{for(;this._renderElt.firstChild;)this._renderElt.firstChild.remove();let n=document.createElement("span");n.setAttribute("data-type","math-inline"),af.render(r||"",n,{throwOnError:!1,displayMode:!1,output:"mathml"});let i=n;n.childElementCount===1&&n.firstElementChild&&(i=n.firstElementChild),this._renderElt.replaceWith(i),this._renderElt=i,this.dom.appendChild(this._renderElt),t?this._renderElt.classList.add("inline-input-preview"):(this._renderElt.classList.add("inline-input-render"),this._renderElt.classList.remove("inline-input-preview"))}catch(n){console.error(n),this._renderElt.classList.add("parse-error"),this.dom.setAttribute("title",String(n))}}dispatchInner(t){if(!this._innerView)return;let{state:o}=this._innerView.state.applyTransaction(t);this._innerView.updateState(o),this.renderTex(!0)}};var we=class extends df{get name(){return"math_inline"}createTags(){return[cf.InlineNode]}createNodeSpec(t,o){return{inline:!0,atom:!0,selectable:!0,marks:"",...o,attrs:{...t.defaults(),tex:{default:""},fromInput:{default:!1}},parseDOM:[{tag:'span[data-type="math-inline"]',getAttrs:r=>{let n=r;return{...t.parse(r),tex:n.getAttribute("data-tex")??""}}},...o.parseDOM??[]],toDOM:r=>{let n=pf(r.attrs,t);return["span",{...t.dom(r),"data-type":"math-inline","data-tex":n.tex}]}}}createInputRules(){return Wt(this.type).map(mf)}fromMarkdown(){return[{type:6,token:"math_inline",node:this.name,getAttrs:t=>({tex:t.attrs?.tex||""})}]}toMarkdown({state:t,node:o}){let r=o.attrs.tex;t.text(`$${r}$`,!1)}createNodeViews(){return(t,o,r)=>new uo(t,o,r)}};we.disableExtraAttributes=!0,we=v([lf({defaultOptions:{}})],we);import{convertCommand as hf,extension as gf,ExtensionTag as bf,NodeExtension as yf,nodeInputRule as xf}from"@rme-sdk/core";import{setBlockType as kf}from"@rme-sdk/pm/commands";import{latex as uf}from"codemirror-lang-latex";import ff from"katex";var fo=class{constructor(t,o,r,n){this.openEditor=()=>{if(this._innerView)return;let t=this._node.attrs.tex??"",o=[uf()];this.options?.codemirrorExtensions&&o.push(...this.options.codemirrorExtensions),this.mfCodemirrorView=new W({view:this._outerView,node:this._node,getPos:this._getPos,languageName:"LaTeX",extensions:o,options:{useProsemirrorHistoryKey:!0,codemirrorEditorViewConfig:{parent:this._srcElt},copyButton:{enabled:!0,customCopyFunction:this.options?.customCopyFunction}}}),this._srcElt.classList.remove("node-hide"),this._innerView=this.mfCodemirrorView.cm,this._renderElt?.classList.add("node-hide"),console.log("currentTex",t,this._node.textContent);let r=this._node.textContent.length||0;this.setSelection(r,r),this._innerView.focus(),this._innerView.contentDOM.addEventListener("blur",()=>{this.closeEditor(!0)}),this.mfCodemirrorView.forwardSelection()};this.closeEditor=(t=!0)=>{this._innerView&&(this._innerView.destroy(),this._innerView=void 0),this.mfCodemirrorView&&(this.mfCodemirrorView.destroy(),this.mfCodemirrorView=void 0),t&&this.renderTex()};this._node=t,this._outerView=o,this._getPos=r,this.options=n,this.dom=document.createElement("div"),this.dom.classList.add("math-block-nodeview"),this._renderElt=document.createElement("div"),this._renderElt.classList.add("math-block-render"),this.dom.appendChild(this._renderElt),this._srcElt=document.createElement("div"),this._srcElt.classList.add("html-src","node-hide");let i=Le(this.dom,{labelName:"LaTex"});this.dom.appendChild(this._srcElt),i.addEventListener("click",()=>this.ensureFocus()),t.attrs.fromInput?this.openEditor():this.renderTex()}destroy(){this.closeEditor(!1),this._renderElt&&(this._renderElt.remove(),delete this._renderElt),this._srcElt&&(this._srcElt.remove(),this._srcElt=void 0),this.dom.remove()}ensureFocus(){this._outerView.hasFocus()&&(this._innerView?this._innerView.focus():this.openEditor())}update(t,o){return this._node=t,!!this.mfCodemirrorView?.update(t)}setSelection(t,o){this._innerView?this.mfCodemirrorView?.setSelection(t,o):(this.openEditor(),this.mfCodemirrorView.setSelection(t,o))}stopEvent(){return!0}ignoreMutation(){return!0}renderTex(t=!1){if(!this._renderElt)return;let r=(this.mfCodemirrorView?.content||this._node.textContent).trim();try{for(;this._renderElt.firstChild;)this._renderElt.firstChild.remove();let n=document.createElement("div");n.setAttribute("data-type","math-block"),ff.render(r||"",n,{throwOnError:!1,displayMode:!1,output:"mathml"});let i=n;n.childElementCount===1&&n.firstElementChild&&(i=n.firstElementChild),this._renderElt.replaceWith(i),this._renderElt=i,this.dom.appendChild(this._renderElt),t?this._renderElt.classList.add("math-block-preview"):(this._renderElt.classList.add("math-block-render"),this._renderElt.classList.remove("math-block-preview"))}catch(n){console.error(n),this._renderElt.classList.add("parse-error"),this.dom.setAttribute("title",String(n))}}};var je=class extends yf{constructor(){super(...arguments);this.createMathBlock=(o={})=>hf(kf(this.type,{tex:"",fromInput:!0,...o}))}get name(){return"math_block"}createTags(){return[bf.Block]}createNodeSpec(o,r){return{group:"block",content:"text*",defining:!0,code:!0,marks:"",...r,attrs:{...o.defaults(),tex:{default:""},fromInput:{default:!1}},parseDOM:[{tag:'div[data-type="math-block"]',getAttrs:n=>o.parse(n)},...r.parseDOM??[]],toDOM:()=>["div",{"data-type":"math-block"},0],isolating:!0}}createNodeViews(){return(o,r,n)=>new fo(o,r,n,this.options)}createInputRules(){return[xf({regexp:/^\$\$$/,type:this.type,getAttributes:o=>({tex:o[1]??"",fromInput:!0})})]}createCommands(){return{createMathBlock:this.createMathBlock}}fromMarkdown(){return[{type:2,token:"math_block",node:this.name,hasOpenClose:!1,getAttrs:o=>({tex:o.attrs?.tex||""})}]}toMarkdown({state:o,node:r}){o.write(`$$
|
|
1701
|
+
${n}`);return gu(i,o)}function yu(e,t){if(t.length===0||e.length===0)return;let o=e[e.length-1],r=t[0];o[1]-1===r&&(o[0]+=1,o[1]+=1)}function xu(e,t,o,r,n){if(!o.textContent)return;let i=[],s=-1;for(let c=0;c<o.childCount;c++){let d=o.child(c);s+=d.nodeSize,oe.includes(d.type.name)&&i.push(s)}if(o.type.name==="reference_def")return;let a=ms(e,o.textContent,o);if(a.length===0)return;let l=0;for(let c of a){let d=c.marks.map(y=>t.marks[y].create(c.attrs)),m=c.start+l,p=c.end+l,f=i.filter(y=>y>=m&&y<p),u=f.length;yu(n,f),n.push([r+c.start+l,r+c.end+l+u,d]),l+=u}}function ps(e,t,o,r,n){o.attrs.inlineDecorateType!=="IGNORE"&&(o.isTextblock?xu(e,t,o,r,n):o.forEach((i,s)=>{ps(e,t,i,r+s+1,n)}))}function oo(e,t,o,r){if(t.isTextblock){let n=e.doc.type.schema;ps(e,n,t,o,r)}else for(let[n,i]of wr(t))oo(e,n,o+i+1,r)}function Er(e){let t=new bu(e),o=[];return oo(t,e,0,o),o.length&&t.step(new Ue(o)),t.doc}function Sr(e){if(e.isDestroyed)return;let t=e.state.tr;t.setMeta("addToHistory",!1),ro(t)&&e.dispatch(t)}function ro(e,t){e.setMeta("APPLY_MARKS",!0);let{$from:o,$to:r}=e.selection,n=o.blockRange(r),i=[];if(!n||t)oo(e,e.doc,0,i);else{let l=n.end;for(let[c,d]of cs(n))d<n.start||d>l||oo(e,c,d,i)}if(i.length===0)return!1;let s=e.doc.content.size,a=[];for(let[l,c,d]of i)l<0||c>s||l>=c||a.push([l,c,d]);if(a.length===0)return!1;try{e.step(new Ue(a))}catch{return!1}return!!e.docChanged}function Cu(e,t,o,r,n){for(let i=o;i<=r;i++)if(Ce(e.maybeChild(i),t))return i;if(n||o===r){if(Ce(e.maybeChild(o),"mdMark")&&Ce(e.maybeChild(o-1),t))return o-1;if(Ce(e.maybeChild(r),"mdMark")&&Ce(e.maybeChild(r+1),t))return r+1}return!1}function wu({left:e,right:t,mark:o}){return r=>{let{tr:n,dispatch:i,state:s}=r,{$from:a,$to:l,empty:c}=s.selection,d=a.parent;if(!d||!d.isTextblock)return!1;let m=a.start();if(m<0)return!1;let p=a.index(),f=l.index();l.textOffset===0&&(c?p=Math.max(p-1,0):f>p&&f--);let u=Cu(d,o,p,f,c);if(u!==!1){let y=!1;for(let b=u;b<d.childCount;b++){let x=d.child(b);Ce(x,"mdMark")&&x.text===t&&(us(n,d,m,b),y=!0)}for(let b=u;b>=0;b--){let x=d.child(b);Ce(x,"mdMark")&&x.text===e&&(us(n,d,m,b),y=!0)}if(y){if(i)try{ro(n),i(n)}catch{return!1}return!0}}return!1}}function Eu({left:e,right:t}){return o=>{let{tr:r,dispatch:n,state:i}=o,{$from:s,$to:a,anchor:l,head:c}=i.selection;if(n){r.insertText(t,a.pos),r.insertText(e,s.pos);let d=e.length;r.setSelection(ku.create(r.doc,l+d,c+d)),ro(r),n(r)}return!0}}function no({left:e,right:t,mark:o}){return r=>{let{$from:n,$to:i}=r.state.selection;return!n.sameParent(i)||!n.parent.type.isTextblock?!1:!!(wu({left:e,right:t,mark:o})(r)||Eu({left:e,right:t,mark:o})(r))}}function Ge(e){switch(e){case"mdStrong":return no({mark:e,left:"**",right:"**"});case"mdEm":return no({mark:e,left:"*",right:"*"});case"mdCodeText":return no({mark:e,left:"`",right:"`"});case"mdDel":return no({mark:e,left:"~~",right:"~~"});default:Su(e)}}function Su(e){throw new Error(`Unknown mark to toggle: ${e}`)}function Ce(e,t){return e?e.marks.some(o=>o.type.name===t):!1}function us(e,t,o,r){if(r<0||r>=t.childCount)return e;let n=t.child(r);if(!n)return e;let i=e.doc.content.size;if(o<0||o>i)return e;let s=o;for(let c=0;c<r;c++){let d=t.child(c);d&&(s+=d.nodeSize)}let a=s,l=s+n.nodeSize;if(a<0||l>i||a>=l)return e;try{return e.delete(a,l)}catch{return e}}var Y={depth:{default:0},ignoreWhenCopy:{default:!1},linkHref:{default:null}},fs={depth:{default:0},first:{default:!1},last:{default:!1},class:{default:""},ignoreWhenCopy:{default:!1},linkHref:{default:null}},Tr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdMark"}createMarkSpec(){return{inclusive:!1,attrs:fs,toDOM:t=>["span",{class:"md-mark","data-ignore-when-copy":t.attrs.ignoreWhenCopy},0]}}createCommands(){return{toggleInlineMark:Ge}}},vr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdText"}createMarkSpec(){return{attrs:fs,toDOM:t=>["span",{class:t.attrs.class},0]}}},Mr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdEm"}createMarkSpec(){return{attrs:Y,toDOM:()=>["em",0]}}createCommands(){return{toggleEmphasis:()=>t=>Ge(this.name)(t)}}},Pr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdStrong"}createMarkSpec(){return{attrs:Y,toDOM:()=>["strong",0]}}createCommands(){return{toggleStrong:()=>t=>Ge(this.name)(t)}}},Nr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdCodeText"}createMarkSpec(){return{attrs:Y,toDOM:()=>["code",0]}}createCommands(){return{toggleCodeText:()=>t=>Ge(this.name)(t)}}},Rr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdCodeSpace"}createMarkSpec(){return{attrs:Y,toDOM:()=>["span",0]}}},Ir=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdDel"}createMarkSpec(){return{attrs:Y,toDOM:()=>["del",0]}}createCommands(){return{toggleDelete:()=>t=>Ge(this.name)(t)}}},Ar=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdLinkText"}createMarkSpec(){return{attrs:{...Y,href:{default:""}},toDOM:t=>["a",{href:t.attrs.href},0]}}},Lr=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdLinkUri"}createMarkSpec(){return{spanning:!1,attrs:Y,toDOM:t=>["a",{class:"md-link","data-ignore-when-copy":t.attrs.ignoreWhenCopy},0]}}},_r=class extends z{static{this.disableExtraAttributes=!0}get name(){return"mdImgText"}createMarkSpec(){return{spanning:!1,attrs:Y,toDOM:()=>["span",{class:"md-img-text"},0]}}},vu=new Map,yt=class extends z{constructor(){super(...arguments);this.createNodeViews=()=>o=>{let r=document.createElement("span"),n=document.createElement("img");this.options.handleViewImgSrcUrl?this.options.handleViewImgSrcUrl(o.attrs.href).then(s=>{n.setAttribute("src",Cr(s)),vu.set(o.attrs.href,s)}):n.setAttribute("src",Cr(o.attrs.href));let i=document.createElement("span");return i.appendChild(n),i.appendChild(r),i.setAttribute("class","md-img-uri"),{dom:i,contentDOM:r}}}get name(){return"mdImgUri"}createMarkSpec(){return{spanning:!1,attrs:{...Y,key:{default:""},href:{default:""}},toDOM:o=>["img",{src:o.attrs.href},0]}}};yt.disableExtraAttributes=!0,yt=v([Tu({defaultOptions:{handleViewImgSrcUrl:async e=>e},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],yt);var Mu={mdMark:!0,mdLinkUri:!0,mdImgText:!0,mdHtmlInline:!0};function hs(e){return Mu[e]}var gs=(e={})=>[new Tr,new vr,new Mr,new Pr,new Nr,new Rr,new Ir,new Ar,new Lr,new _r];function io(e){let t={};for(let o of e?.marks||[]){if(oe.includes(e?.type.name||""))break;hs(o.type.name)&&(t.isAutoHideMark=!0),Object.assign(t,o.attrs)}return t}function bs(e,t,o,r){let n=[],i=t;for(let l=o;l<e.content.childCount;l++){let c=e.content.child(l),d=io(c);if(d.isAutoHideMark&&n.push([i,i+c.nodeSize]),i+=c.nodeSize,d.depth===1&&d.last)break}let s=io(e.maybeChild(o));if(s.depth===1&&s.first&&!r)return n;let a=t;for(let l=o-1;l>=0;l--){let c=e.content.child(l),d=io(c);if(d.isAutoHideMark&&n.push([a-c.nodeSize,a]),a-=c.nodeSize,d.depth===1&&d.first)break}return n}function Au(){return{props:{decorations:e=>{if(!Pu(e.selection))return null;let t=e.selection.$anchor,o=t.parent;if(!o.isTextblock)return null;let r;if(t.textOffset===0)r=bs(o,t.pos,t.index(t.depth),!0);else{let n=t.index(t.depth),i=o.content.maybeChild(n);if(!i||!io(i).depth)return null;r=bs(o,t.pos-t.textOffset,t.index(t.depth),!1)}return Iu.create(e.doc,r.map(([n,i])=>Ru.inline(n,i,{class:"show"})))}}}}var so=class extends Nu{get name(){return"inlineDecoration"}createPlugin(){return Au()}};import{TextSelection as ys}from"@rme-sdk/pm/state";import{PlainExtension as Lu}from"@rme-sdk/main";var xt=class extends Lu{get name(){return"inlineMark"}createPlugin(){let t=null,o=n=>{t&&clearTimeout(t),t=setTimeout(()=>{if(n.isDestroyed){t=null;return}let i=n.state.doc,s=n.state.selection,{$head:a,$anchor:l}=s;Sr(n);let c=i.content.size,d=Math.min(Math.max(a.pos,0),c),m=Math.min(Math.max(l.pos,0),c);if(d>=0&&d<=c&&m>=0&&m<=c)try{let p=i.resolve(d),f=i.resolve(m),u=p.parent===f.parent?ys.create(i,m,d):ys.create(i,d);n.dispatch(n.state.tr.setSelection(u))}catch{}t=null},10)},r=null;return{appendTransaction:n=>{let i=!1;for(let s of n)if(s.docChanged&&!s.getMeta("APPLY_MARKS")){i=!0;break}i&&r&&!r.isDestroyed&&o(r)},view:n=>(r=n,{})}}};import{isString as Hu}from"@rme-sdk/core";import{InputRule as _u}from"prosemirror-inputrules";import{findWrapping as Bu}from"prosemirror-transform";function Br(e){if(e==null)return null;let t=Number.parseInt(e,10);return Number.isInteger(t)?t:null}function xs(e){let t=e.attrs;switch(t.kind){case"task":return[["label",["input",{type:"checkbox",checked:t.checked?"":void 0}]]];case"toggle":return[];default:return[]}}var ks="flatList";var Cs="PROSEMIRROR_FLAT_LIST_TYPE_NAME";function ao(e){let t=e.cached[Cs];if(!t){for(let o of Object.values(e.nodes))if((o.spec.group||"").split(" ").includes(ks)){t=o.name;break}if(!t)throw new TypeError("[prosemirror-flat-list] Unable to find a flat list type in the schema");return e.cached[Cs]=t,t}return t}function ws(e){return e.nodes[ao(e)]}function Es(e){return ao(e.schema)===e.name}function Ss(e){return e?Es(e.type):!1}function Ou(e){for(let t=e.depth;t>0;t--){let o=e.node(t);if(o.type.name==="tableCell"||o.type.name==="tableHeaderCell")return!0}return!1}function lo(e,t){return new _u(e,(o,r,n,i)=>{let s=o.tr;s.deleteRange(n,i);let a=s.selection.$from;if(Ou(a))return null;let l=a.index(-1)===0&&a.node(-1);if(l&&Ss(l)){let f=l.attrs,u=typeof t=="function"?t({match:r,attributes:f}):t,y=Object.entries(u).filter(([b,x])=>f[b]!==x);if(y.length===0)return null;{let b=a.before(-1);for(let[x,E]of y)s.setNodeAttribute(b,x,E);return s}}let d=s.doc.resolve(n).blockRange();if(!d)return null;let m=typeof t=="function"?t({match:r}):t,p=Bu(d,ws(o.schema),m);return p?s.wrap(d,p):null})}var Ts=[lo(/^\s?([*-])\s$/,{kind:"bullet",collapsed:!1}),lo(/^\s?(\d+)\.\s$/,({match:e})=>{let t=Br(e[1]);return{kind:"ordered",collapsed:!1,order:t!=null&&t>=2?t:null}}),lo(/^\s?\[([\sXx]?)]\s$/,({match:e})=>({kind:"task",checked:["x","X"].includes(e[1]),collapsed:!1})),lo(/^\s?>>\s$/,{kind:"toggle"})];import{convertCommand as j,ExtensionTag as Du,NodeExtension as Vu}from"@rme-sdk/core";import{createDedentListCommand as Fu,createIndentListCommand as $u,createListPlugins as zu,createListSpec as Ku,createMoveListCommand as Wu,createSplitListCommand as Uu,createToggleCollapsedCommand as qu,createToggleListCommand as Gu,createUnwrapListCommand as ju,createWrapInListCommand as Qu,listKeymap as Xu,protectCollapsed as Yu}from"@rme-sdk/prosemirror-flat-list";var vs=class{},co=class extends Vu{static{this.disableExtraAttributes=!0}get name(){return"list"}createInputRules(){return Ts}createTags(){return[Du.Block]}createNodeSpec(){return Ku({toDomParams:{nativeList:!1,getMarkers:xs}})}createKeymap(){let t={};for(let[o,r]of Object.entries(Xu))t[o]=j(r);return t.Tab=Ms(t["Mod-]"]),t["Shift-Tab"]=Ms(t["Mod-["]),t}createExternalPlugins(){return zu({schema:this.store.schema})}createCommands(){return{indentList:t=>j($u(t)),dedentList:t=>j(Fu(t)),unwrapList:t=>j(ju(t)),wrapInList:t=>j(Qu(t)),moveList:t=>j(Wu(t)),splitList:()=>j(Uu()),protectCollapsed:()=>j(Yu),toggleCollapsed:t=>j(qu(t)),toggleList:t=>j(Gu(t))}}fromMarkdown(){return[{type:4,token:"list_item_open",handler:(t,o)=>{switch(t.topContext()){case"ordered_list":let r=t.topContextToken(),n;r?.type==="ordered_list_open"&&r?.attrs?.some(([i,s])=>i==="order"?(n=parseInt(s,10),t.closeContextToken(),!0):!1),t.openNode(this.type,{kind:"ordered",order:n});break;case"bullet_list":t.openNode(this.type,{kind:"bullet"});break;default:throw new Error("unknown context")}}},{type:4,token:"list_checkbox",handler:(t,o)=>{let r=t.stack[t.stack.length-1];if(r?.type.name==="list"){let n=o.attrGet("checked"),i={kind:"task",checked:Hu(n)||!!n};r.attrs=i}else console.warn(`expect list but got ${r?.type.name}`)}},{type:4,token:"list_item_close",handler:t=>{t.closeNode()}},{type:5,token:"bullet_list",context:"bullet_list"},{type:5,token:"ordered_list",context:"ordered_list"}]}toMarkdown({state:t,node:o,counter:r}){let n=o.attrs,i="";n.kind==="ordered"?i=`${n.order!=null?n.order:r}. `:n.kind==="task"?i=n.checked?"- [x] ":"- [ ] ":n.kind==="bullet"&&(i="- "),t.wrapBlock(" ",i,o,()=>t.renderContent(o))}};function Ms(e){return(...t)=>(e(...t),!0)}function mo(e){return e.type.name==="list"&&e.attrs.kind==="ordered"}import{extension as af,ExtensionTag as lf,NodeExtension as cf,nodeInputRule as df,omitExtraAttributes as mf}from"@rme-sdk/core";import{history as Ju,redo as Zu,undo as ef}from"@rme-sdk/pm/history";import{keymap as tf}from"@rme-sdk/pm/keymap";import{EditorState as of,Plugin as rf,TextSelection as Ps}from"@rme-sdk/pm/state";import{EditorView as nf}from"@rme-sdk/pm/view";import sf from"katex";function po(e,t,o,r=!0){return(n,i)=>{let s=e.state,{to:a,from:l}=s.selection,{to:c,from:d}=n.selection;if(r&&c!==d)return!1;let m=t>0?c:d;if(o){let p=n.doc.nodeSize-2;if(t>0&&m<p||t<0&&m>0)return!1}if(i){let p=t>0?a:l;e.dispatch(s.tr.setSelection(Ps.create(s.doc,p))),e.focus()}return!0}}var uo=class{constructor(t,o,r){this.openEditor=()=>{if(this._innerView)return;let t=this._node.attrs.tex??"";this._innerView=new nf(this._srcElt,{state:of.create({doc:this._outerView.state.schema.node("paragraph",null,t?[this._outerView.state.schema.text(t)]:[this._outerView.state.schema.text("\u200B")]),plugins:[Ju(),tf({ArrowLeft:po(this._outerView,-1,!0),ArrowRight:po(this._outerView,1,!0),ArrowUp:po(this._outerView,-1,!0),ArrowDown:po(this._outerView,1,!0),"Mod-z":(n,i,s)=>ef(n,i,s),"Shift-Mod-z":(n,i,s)=>Zu(n,i,s),Backspace:n=>{let{from:i,to:s}=n.selection;if(i===0&&s===n.doc.content.size){let a=this._getPos();if(a!==void 0){let l=this._outerView.state.tr.delete(a,a+this._node.nodeSize);return this._outerView.dispatch(l),this._outerView.focus(),!0}}return!1}}),new rf({props:{handleDOMEvents:{blur:()=>{let n=this._getPos();if(n!==void 0){let i=(this._innerView?.state.doc.textContent||"").replace(/\u200b/g,""),s=this._outerView.state.tr;s.setNodeAttribute(n,"fromInput",!1),s.setNodeAttribute(n,"tex",i),this._outerView.dispatch(s)}return this.closeEditor(),!0}}}})]}),dispatchTransaction:this.dispatchInner.bind(this)}),this._innerView.dom.classList.add("inline-input-src"),this._innerView.dom.classList.remove("ProseMirror"),this._srcElt.style.display="inline";let o=this._innerView.state;this._innerView.focus();let r=o.doc.textContent.length||0;this._innerView.dispatch(o.tr.setSelection(Ps.create(o.doc,r))),this._renderElt?.classList.add("inline-input-preview"),this._isEditing=!0};this.closeEditor=(t=!0)=>{this._srcElt&&(this._srcElt.style.display="none"),this._innerView&&(this._innerView.destroy(),this._innerView=void 0),t&&this.renderTex(),this._isEditing=!1};this._node=t,this._outerView=o,this._getPos=r,this._isEditing=!1,this.dom=document.createElement("span"),this.dom.classList.add("inline-input"),this._renderElt=document.createElement("span"),this._renderElt.classList.add("inline-input-render"),this.dom.appendChild(this._renderElt),this._srcElt=document.createElement("span"),this._srcElt.spellcheck=!1,this._srcElt.style.display="none",this.dom.appendChild(this._srcElt),this.dom.addEventListener("click",()=>this.ensureFocus()),t.attrs.fromInput?setTimeout(()=>this.openEditor()):this.renderTex()}destroy(){this.closeEditor(!1),this._renderElt&&(this._renderElt.remove(),delete this._renderElt),this._srcElt&&(this._srcElt.remove(),delete this._srcElt),this.dom.remove()}ensureFocus(){this._innerView&&this._outerView.hasFocus()&&this._innerView.focus()}update(t,o){return t.sameMarkup(this._node)?(this._node=t,this._isEditing||this.renderTex(),!0):!1}selectNode(){this._outerView.editable&&(this._isEditing||this.openEditor())}deselectNode(){this._isEditing&&this.closeEditor()}stopEvent(t){return this._innerView!==void 0&&t.target!==void 0&&this._innerView.dom.contains(t.target)}ignoreMutation(){return!0}renderTex(t=!1){if(!this._renderElt)return;let r=(this._innerView?.state.doc.textContent??this._node.attrs.tex??"").replace(/\u200b/g,"").trim();try{for(;this._renderElt.firstChild;)this._renderElt.firstChild.remove();let n=document.createElement("span");n.setAttribute("data-type","math-inline"),sf.render(r||"",n,{throwOnError:!1,displayMode:!1,output:"mathml"});let i=n;n.childElementCount===1&&n.firstElementChild&&(i=n.firstElementChild),this._renderElt.replaceWith(i),this._renderElt=i,this.dom.appendChild(this._renderElt),t?this._renderElt.classList.add("inline-input-preview"):(this._renderElt.classList.add("inline-input-render"),this._renderElt.classList.remove("inline-input-preview"))}catch(n){console.error(n),this._renderElt.classList.add("parse-error"),this.dom.setAttribute("title",String(n))}}dispatchInner(t){if(!this._innerView)return;let{state:o}=this._innerView.state.applyTransaction(t);this._innerView.updateState(o),this.renderTex(!0)}};var we=class extends cf{get name(){return"math_inline"}createTags(){return[lf.InlineNode]}createNodeSpec(t,o){return{inline:!0,atom:!0,selectable:!0,marks:"",...o,attrs:{...t.defaults(),tex:{default:""},fromInput:{default:!1}},parseDOM:[{tag:'span[data-type="math-inline"]',getAttrs:r=>{let n=r;return{...t.parse(r),tex:n.getAttribute("data-tex")??""}}},...o.parseDOM??[]],toDOM:r=>{let n=mf(r.attrs,t);return["span",{...t.dom(r),"data-type":"math-inline","data-tex":n.tex}]}}}createInputRules(){return Wt(this.type).map(df)}fromMarkdown(){return[{type:6,token:"math_inline",node:this.name,getAttrs:t=>({tex:t.attrs?.tex||""})}]}toMarkdown({state:t,node:o}){let r=o.attrs.tex;t.text(`$${r}$`,!1)}createNodeViews(){return(t,o,r)=>new uo(t,o,r)}};we.disableExtraAttributes=!0,we=v([af({defaultOptions:{}})],we);import{convertCommand as ff,extension as hf,ExtensionTag as gf,NodeExtension as bf,nodeInputRule as yf}from"@rme-sdk/core";import{setBlockType as xf}from"@rme-sdk/pm/commands";import{latex as pf}from"codemirror-lang-latex";import uf from"katex";var fo=class{constructor(t,o,r,n){this.openEditor=()=>{if(this._innerView)return;let t=this._node.attrs.tex??"",o=[pf()];this.options?.codemirrorExtensions&&o.push(...this.options.codemirrorExtensions),this.mfCodemirrorView=new W({view:this._outerView,node:this._node,getPos:this._getPos,languageName:"LaTeX",extensions:o,options:{useProsemirrorHistoryKey:!0,codemirrorEditorViewConfig:{parent:this._srcElt},copyButton:{enabled:!0,customCopyFunction:this.options?.customCopyFunction}}}),this._srcElt.classList.remove("node-hide"),this._innerView=this.mfCodemirrorView.cm,this._renderElt?.classList.add("node-hide"),console.log("currentTex",t,this._node.textContent);let r=this._node.textContent.length||0;this.setSelection(r,r),this._innerView.focus(),this._innerView.contentDOM.addEventListener("blur",()=>{this.closeEditor(!0)}),this.mfCodemirrorView.forwardSelection()};this.closeEditor=(t=!0)=>{this._innerView&&(this._innerView.destroy(),this._innerView=void 0),this.mfCodemirrorView&&(this.mfCodemirrorView.destroy(),this.mfCodemirrorView=void 0),t&&this.renderTex()};this._node=t,this._outerView=o,this._getPos=r,this.options=n,this.dom=document.createElement("div"),this.dom.classList.add("math-block-nodeview"),this._renderElt=document.createElement("div"),this._renderElt.classList.add("math-block-render"),this.dom.appendChild(this._renderElt),this._srcElt=document.createElement("div"),this._srcElt.classList.add("html-src","node-hide");let i=Le(this.dom,{labelName:"LaTex"});this.dom.appendChild(this._srcElt),i.addEventListener("click",()=>this.ensureFocus()),t.attrs.fromInput?this.openEditor():this.renderTex()}destroy(){this.closeEditor(!1),this._renderElt&&(this._renderElt.remove(),delete this._renderElt),this._srcElt&&(this._srcElt.remove(),this._srcElt=void 0),this.dom.remove()}ensureFocus(){this._outerView.hasFocus()&&(this._innerView?this._innerView.focus():this.openEditor())}update(t,o){return this._node=t,!!this.mfCodemirrorView?.update(t)}setSelection(t,o){this._innerView?this.mfCodemirrorView?.setSelection(t,o):(this.openEditor(),this.mfCodemirrorView.setSelection(t,o))}stopEvent(){return!0}ignoreMutation(){return!0}renderTex(t=!1){if(!this._renderElt)return;let r=(this.mfCodemirrorView?.content||this._node.textContent).trim();try{for(;this._renderElt.firstChild;)this._renderElt.firstChild.remove();let n=document.createElement("div");n.setAttribute("data-type","math-block"),uf.render(r||"",n,{throwOnError:!1,displayMode:!1,output:"mathml"});let i=n;n.childElementCount===1&&n.firstElementChild&&(i=n.firstElementChild),this._renderElt.replaceWith(i),this._renderElt=i,this.dom.appendChild(this._renderElt),t?this._renderElt.classList.add("math-block-preview"):(this._renderElt.classList.add("math-block-render"),this._renderElt.classList.remove("math-block-preview"))}catch(n){console.error(n),this._renderElt.classList.add("parse-error"),this.dom.setAttribute("title",String(n))}}};var je=class extends bf{constructor(){super(...arguments);this.createMathBlock=(o={})=>ff(xf(this.type,{tex:"",fromInput:!0,...o}))}get name(){return"math_block"}createTags(){return[gf.Block]}createNodeSpec(o,r){return{group:"block",content:"text*",defining:!0,code:!0,marks:"",...r,attrs:{...o.defaults(),tex:{default:""},fromInput:{default:!1}},parseDOM:[{tag:'div[data-type="math-block"]',getAttrs:n=>o.parse(n)},...r.parseDOM??[]],toDOM:()=>["div",{"data-type":"math-block"},0],isolating:!0}}createNodeViews(){return(o,r,n)=>new fo(o,r,n,this.options)}createInputRules(){return[yf({regexp:/^\$\$$/,type:this.type,getAttributes:o=>({tex:o[1]??"",fromInput:!0})})]}createCommands(){return{createMathBlock:this.createMathBlock}}fromMarkdown(){return[{type:2,token:"math_block",node:this.name,hasOpenClose:!1,getAttrs:o=>({tex:o.attrs?.tex||""})}]}toMarkdown({state:o,node:r}){o.write(`$$
|
|
1702
1702
|
`);let n=r.textContent||r.attrs.tex||"";o.text(n,!1),n.endsWith(`
|
|
1703
1703
|
`)||o.text(`
|
|
1704
|
-
`),o.write("$$"),o.closeBlock(r),o.ensureNewLine()}};je=v([
|
|
1705
|
-
`),o.write("```"),o.closeBlock(r),o.ensureNewLine()}};Qe=v([Tf({defaultOptions:{customCopyFunction:void 0},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Qe);import{isHTMLElement as Ls}from"@ocavue/utils";import{PlainExtension as zf}from"@rme-sdk/core";import{NodeSelection as _s,TextSelection as Kf}from"@rme-sdk/pm/state";import{isHTMLElement as If}from"@ocavue/utils";import{NodeSelection as Af}from"@rme-sdk/pm/state";function Lf(e){let t=[[-1,e.state.doc]],o=[];for(;t.length>0;){let[r,n]=t.pop();if(r>=0){let i=e.nodeDOM(r);if(i&&If(i)){let s=i.getBoundingClientRect(),{top:a,bottom:l,left:c,right:d}=s;o.push([r,[c,a,d,a]],[r+n.nodeSize,[c,l,d,l]])}}if(n.isBlock&&!n.isTextblock){let i=r+1;for(let s of n.children)t.push([i,s]),i+=s.nodeSize}}return o}function Is(e,t){let o=[],r,n,i=()=>{let d=e.dom.getBoundingClientRect(),m=e.state.doc;return o&&r&&n&&d.width===n.width&&d.height===n.height&&d.x===n.x&&d.y===n.y&&r.eq(m)||(n=d,r=m,o=Lf(e)),o},s=(d,m)=>{if(!e.editable||e.isDestroyed)return;let p=(y,b)=>{let[x,E]=y,[k,h]=b,g=Rs(d,E),S=Rs(d,h);return g-S||x-k},f=i();f.sort(p),f=f.slice(0,8);let u=f.find(y=>t?.({view:e,pos:y[0],event:m})!==!1);if(!(u&&Bf(e,u[0])))return u},a,l;return(d,m)=>(a&&_f(a,d)||(a=d,l=s(d,m)),l)}function _f(e,t){return e[0]===t[0]&&e[1]===t[1]}function Ns(e,t){return Math.abs(e[0]-t[0])+Math.abs(e[1]-t[1])}function Rs(e,t){return Math.min(Ns(e,[t[0],t[1]]),Ns(e,[t[2],t[3]]))}function Bf(e,t){let o=e.dragging;if(!o)return;let{move:r}=o;if(!r)return;let n=e.state.selection;if(!(n instanceof Af))return;let{from:i,to:s}=n;return i<=t&&t<=s}import{isElement as Or,isTextNode as Of}from"@ocavue/utils";function ae(e){let t=e.getBoundingClientRect();if(t.width===0&&t.height===0&&t.x===0&&t.y===0&&e.getClientRects().length===0){let r=Array.from(e.children).map(l=>ae(l));if(r.length===0)return t;if(r.length===1)return r[0];let{top:n,bottom:i,left:s,right:a}=r[0];for(let l=1;l<r.length;l++){let c=r[l];c.top<n&&(n=c.top),c.bottom>i&&(i=c.bottom),c.left<s&&(s=c.left),c.right>a&&(a=c.right)}return{top:n,bottom:i,left:s,right:a}}return t}function As(e,t,o){let r=ae(e.dom);if(!Vf(r,t,o))return;let n=e.state.doc,i=-1;for(;n;){if(n.isBlock&&(n.isTextblock||n.isAtom||n.type.spec.isolating))return{node:n,pos:i};let s=[],a=[];n.forEach((d,m)=>{s.push(d),a.push(m+i+1)});let l=0,c=s.length-1;for(;l<=c;){let d=c-(c-l>>1),m=e.nodeDOM(a[d]),p=Hf(m);if(!p){console.warn(`[rme] Unable to get rect at position: ${a[d]}`);return}if(p.top>o)c=d-1;else if(p.bottom<o)l=d+1;else{l=d;break}}if(l>c)return;n=s[l],i=a[l]}}function Hf(e){if(e&&Or(e)&&e.isConnected)return ae(e)}function Vf(e,t,o){return t>=e.left&&t<=e.right&&o>=e.top&&o<=e.bottom}function Hr(e,t){if(!(e&&!e.isConnected)&&!(t&&!t.isConnected))if(e&&t){let o=Df(e),r=Br(t);if(o&&r){let{top:n,bottom:i}=r,{left:s,right:a}=o;return{top:n,bottom:i,left:s,right:a}}else return o||r}else{if(e)return Br(e);if(t)return Br(t)}}function Df(e){if(!Or(e))return;let t=ae(e),o=e.ownerDocument.defaultView?.getComputedStyle(e),r=o&&Number.parseInt(o.marginLeft,10)||0,n=o&&Number.parseInt(o.marginRight,10)||0,i=t.left-r,s=t.right+n;return{top:t.top,bottom:t.bottom,left:i,right:s}}function Br(e){if(Or(e))return $f(e);if(Of(e))return Ff(e)}function Ff(e){let t=e.ownerDocument;if(!t)return;let o=t.createRange();return o.setStart(e,0),o.setEnd(e,0),o.getClientRects()[0]}function $f(e){if(e.nodeName==="BR")return e.getBoundingClientRect();let t=ae(e),o=e.ownerDocument.defaultView?.getComputedStyle(e),r=o&&Number.parseInt(o.marginLeft,10)||0,n=o&&Number.parseInt(o.marginRight,10)||0,i=t.left-r,s=t.right+n,a=o&&Number.parseInt(o.lineHeight,10)||24,l=o&&Number.parseInt(o.paddingTop,10)||0,c=o&&Number.parseInt(o.borderTopWidth,10)||0,d=t.top+l+c,m=d+a;return{top:d,bottom:m,left:i,right:s}}var Ee=class extends zf{get name(){return"nodeIndicator"}createPlugin(){let t,o={node:null,pos:null,rect:null};return{initialState:o,state:{init:()=>o,apply:(r,n)=>{let i=r.getMeta(this.pluginKey);return i?{...n,...i}:r.docChanged?{...n}:n}},view:r=>(t=Is(r),{}),props:{handleDrop:(r,n,i,s)=>{if(!t)return!1;let a=t([n.clientX,n.clientY],n);if(!a)return!1;n.preventDefault();let l=a[0],c=r.state.tr;if(s){let{node:u}=r.dragging||{};u?u.replace(c):c.deleteSelection()}let d=c.mapping.map(l),m=i.openStart==0&&i.openEnd==0&&i.content.childCount==1,p=c.doc;if(m?c.replaceRangeWith(d,d,i.content.firstChild):c.replaceRange(d,d,i),c.doc.eq(p))return!1;let f=c.doc.resolve(d);if(m&&_s.isSelectable(i.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(i.content.firstChild))c.setSelection(new _s(f));else{let u=c.mapping.map(l);c.mapping.maps[c.mapping.maps.length-1].forEach((y,b,x,E)=>u=E),c.setSelection(Wf(r,f,c.doc.resolve(u)))}return r.focus(),r.dispatch(c.setMeta("uiEvent","drop")),!0},handleDOMEvents:{pointerout:(r,n)=>{let i=n.relatedTarget;return i&&r.dom.contains(i)||i&&i instanceof HTMLElement&&i.closest(".rme-block-handler")||this.pluginKey.getState(r.state)?.node!==null&&r.dispatch(r.state.tr.setMeta(this.pluginKey,{node:null,pos:null,rect:null})),!1},pointermove:(r,n)=>{r.__nodeIndicatorThrottled||(r.__nodeIndicatorThrottled=!0,requestAnimationFrame(()=>{r.__nodeIndicatorThrottled=!1,Uf(r,n,this.pluginKey)}))}}}}}};function Wf(e,t,o,r){return e.someProp("createSelectionBetween",n=>n(e,t,o))||Kf.between(t,o,r)}function Uf(e,t,o){let r=o.getState(e.state),{x:n,y:i}=t,s=As(e,n,i);if(!s){r?.node!==null&&e.dispatch(e.state.tr.setMeta(o,{node:null,pos:null,rect:null}));return}let{node:a,pos:l}=s,c=e.nodeDOM(l);if(!c||!Ls(c)){r?.node!==null&&e.dispatch(e.state.tr.setMeta(o,{node:null,pos:null,rect:null}));return}let d=a,m=l,p=e.state.doc.resolve(l);if(p.depth>0&&p.index(p.depth)===0){let y=p.before(p.depth);d=p.parent,m=y}if(r?.pos===m&&r?.node&&d.type===r?.node.type)return;let f=e.nodeDOM(m);if(!f||!Ls(f))return;let u;if(p.depth>0&&p.index(p.depth)===0){let y=e.nodeDOM(p.before(p.depth));u=Hr(y,f)}else u=Hr(void 0,f);e.dispatch(e.state.tr.setMeta(o,{node:d,pos:m,rect:u||{}}))}import{ParagraphExtension as qf}from"@rme-sdk/main/extensions";var go=class extends qf{createNodeSpec(t,o){return{...super.createNodeSpec(t,o),whitespace:"pre"}}fromMarkdown(){return[{type:2,token:"paragraph",node:this.name,hasOpenClose:!0}]}toMarkdown({state:t,node:o}){t.renderInline(o),t.closeBlock(o)}};import{extension as Gf,ManagerPhase as jf,PlainExtension as Qf}from"@rme-sdk/core";import{Decoration as Xf,DecorationSet as Yf}from"@rme-sdk/pm/view";var Xe=class extends Qf{get name(){return"placeholder"}createAttributes(){return{"aria-placeholder":this.options.placeholder}}createPlugin(){return{props:{decorations:t=>Jf({state:t,extension:this})}}}onSetOptions(t){let{changes:o}=t;o.placeholder.changed&&this.store.phase>=jf.EditorView&&this.store.updateAttributes()}};Xe=v([Gf({defaultOptions:{placeholder:""},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Xe);function Jf(e){let{extension:t,state:o}=e,{emptyNodeClass:r,placeholder:n}=t.options,i=[];return o.doc.descendants((s,a,l)=>{if(s.type.name==="paragraph"&&s.content.size===0&&n&&o.selection.from-1===a&&l?.type.name==="doc"){let c=Xf.node(a,a+s.nodeSize,{class:r,"data-placeholder":n});i.push(c)}}),Yf.create(o.doc,i)}import{extension as Zf,ExtensionTag as bo,findParentNodeOfType as eh,isElementDomNode as th,NodeExtension as oh,nodeInputRule as rh}from"@rme-sdk/core";import{Decoration as nh,DecorationSet as Bs}from"@rme-sdk/pm/view";var Ye=class extends oh{get name(){return"reference_def"}createTags(){return[bo.LastNodeCompatible,bo.TextBlock,bo.Block,bo.FormattingNode]}createNodeSpec(t,o){return{group:"reference",content:"reference_label reference_href reference_title*",...o,attrs:{...t.defaults(),label:{default:""},href:{default:""},title:{default:""}},parseDOM:[{tag:"div[data-reference-definition]",getAttrs:r=>{if(!th(r))return!1;let n=r.getAttribute("data-reference-label")||"",i=r.getAttribute("data-reference-href")||"",s=r.getAttribute("data-reference-title")||"";return{...t.parse(r),label:n,href:i,title:s}}},...o.parseDOM??[]],toDOM:r=>["div",{...t.dom(r),class:"reference-def"},0]}}createDecorations(t){let o=eh({types:this.type,selection:t.selection});return o?Bs.create(t.doc,[nh.node(o.pos,o.pos+o.node.nodeSize,{class:"rme-block-focus"})]):Bs.empty}createInputRules(){return[rh({regexp:/^\[([^\]]*)\]:\s*([^\s"]+(:\s+[^\s"]+)*)?(?:\s+"(.*?)")?/,type:this.type,getAttributes:t=>{let[,o,r,n]=t;return console.log("matchmatch",t),{label:o,ref:r,title:n}}})]}fromMarkdown(){return[{type:2,node:this.name,token:"reference_def",hasOpenClose:!0,getAttrs:t=>({label:t.attrs?.[0]?.[1]||"",href:t.attrs?.[1]?.[1]||"",title:t.attrs?.[2]?.[1]||""})}]}toMarkdown({state:t,node:o}){t.renderInline(o),t.closeBlock(o)}};Ye=v([Zf({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Ye);import{extension as Vr,ExtensionTag as Dr,NodeExtension as Fr}from"@rme-sdk/core";var Je=class extends Fr{get name(){return"reference_label"}createTags(){return[Dr.InlineNode]}createNodeSpec(t,o){return{inline:!0,group:"reference_inline",content:"text*",...o,attrs:{...t.defaults()},toDOM:r=>["span",{...t.dom(r),class:"reference-definition-node__label"},["span",{contenteditable:"false",disabled:"true"},"\u200B"],["span",{},0],["span",{contenteditable:"false",disabled:"true"},"\u200B"]]}}fromMarkdown(){return[{type:6,token:"reference_label",getText:t=>t.content}]}toMarkdown({state:t,node:o}){t.write("["),t.text(o.textContent||""),t.write("]: ")}createKeymap(){return{Backspace:({state:t,dispatch:o})=>{let{selection:r}=t,{$from:n}=r;if(n.parent.type.name!==this.name)return!1;if(n.parent.textContent.length===0){let i=null,s=-1;for(let a=n.depth-1;a>=0;a--){let l=n.node(a);if(l.type.name==="reference_def"){i=l,s=n.start(a);break}}if(i&&s!==-1&&o)return o(t.tr.delete(s,s+i.nodeSize)),!0}return!1}}}};Je=v([Vr({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Je);var Ze=class extends Fr{get name(){return"reference_href"}createTags(){return[Dr.InlineNode]}createNodeSpec(t,o){return{inline:!0,group:"reference_inline",content:"text*",...o,attrs:{...t.defaults()},toDOM:r=>["span",{...t.dom(r),class:"reference-definition-node__href"},0]}}fromMarkdown(){return[{type:6,token:"reference_href",getText:t=>t.content}]}toMarkdown({state:t,node:o}){t.text(`${o.textContent||""} `)}};Ze=v([Vr({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Ze);var et=class extends Fr{get name(){return"reference_title"}createTags(){return[Dr.InlineNode]}createNodeSpec(t,o){return{inline:!0,group:"reference_inline",content:"text*",...o,attrs:{...t.defaults()},toDOM:r=>["span",{...t.dom(r),class:"reference-definition-node__title"},0]}}fromMarkdown(){return[{type:6,token:"reference_title",getText:t=>t.content}]}toMarkdown({state:t,node:o}){o.textContent&&(t.write('"'),t.text(o.textContent||""),t.write('"'))}};et=v([Vr({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],et);import{TextSelection as oP}from"@rme-sdk/pm/state";import{extension as ah,PlainExtension as lh}from"@rme-sdk/main";var ih=(e=!1)=>({shouldOpen:(t,o,r)=>{if(o.isComposing)return!1;let n=r.state,s=(n.selection.from<0||n.selection.from>n.doc.content.size?null:n.doc.resolve(n.selection.from))?.parent,a=s?.type.name==="paragraph",l=n.selection.$head.parentOffset,c=n.selection.$head.parent.textContent.slice(l-1,l),d=a&&s?.textContent===c,m=c==="\u200A"||c===""||c===" ";return!t.open&&ye(o)&&a&&(d||m||n.selection.from!==n.selection.to&&e)},shouldClose:(t,o)=>t.open&&(ye(o)||o.key==="Escape"||o.key==="Backspace")&&t.filter.length===0}),Os=(e,t,o,r,n,i)=>{if(t.isComposing)return t.key==="Escape"||t.key==="Backspace"&&e.filter.length===0?"closeMenu":"Ignore";let s=n||ih(i);if(s.shouldOpen(e,t,o))return"openMenu";if(s.shouldClose(e,t,o))return"closeMenu";if(e.open){if(t.key==="ArrowDown")return"NextItem";if(t.key==="ArrowUp")return"PrevItem";if(t.key==="Enter"||t.key==="Tab")return"Execute";if(t.key==="Escape"||t.key==="Backspace"&&e.filter.length===0)return"closeMenu";if(e.filter.length>0&&t.key==="Backspace")return"removeChar";if(!r.includes(t.key))return"addChar";if(t.key==="ArrowLeft"||t.key==="ArrowRight")return"Catch"}return"Ignore"};var le=class extends lh{get name(){return"slash-menu"}createPlugin(){let t={open:!1,filter:"",ignoredKeys:$i};return{props:{handleKeyDown(o,r){let n=o.state;if(!n)return!1;let i=this.getState(n);if(!i)return!1;switch(Os(i,r,o,t.ignoredKeys)){case"openMenu":let a=n.selection.from<0||n.selection.from>n.doc.content.size?null:n.doc.resolve(n.selection.from),l=a?.parent,c=l?.type.name==="paragraph";return a?.depth===1?(c&&l.textContent==="/"&&a&&o.dispatch(n.tr.delete(a.start(),a.end()).setMeta(this.spec.key,{type:"open"})),be(o,this.spec.key,{type:"open"}),!0):!1;case"closeMenu":return r.isComposing?be(o,this.spec.key,{type:"close"}):ye(r)?o.dispatch(n.tr.insertText("/").setMeta(this.spec.key,{type:"close"})):be(o,this.spec.key,{type:"close"}),!0;case"Execute":case"NextItem":case"PrevItem":case"addChar":case"removeChar":case"Catch":return!0;default:return!1}}},state:{init(){return t},apply(o,r){switch(o.getMeta(this.spec.key)?.type){case"open":return{...t,open:!0};case"close":return t;case"execute":return{...t,open:!0};default:return r}}},initialState:t}}};le=v([ah({defaultOptions:{}})],le);import{TextExtension as ch}from"@rme-sdk/main/extensions";var yo=class extends ch{fromMarkdown(){return[{type:1,token:"text",getText:t=>t.content},{type:1,token:"inline",getText:t=>t.content},{type:1,token:"softbreak",getText:t=>`
|
|
1706
|
-
`}]}toMarkdown({state:t,node:o}){t.text(o.text||"")}};import{PlainExtension as
|
|
1704
|
+
`),o.write("$$"),o.closeBlock(r),o.ensureNewLine()}};je=v([hf({defaultOptions:{}})],je);import{convertCommand as Ef,extension as Sf,isElementDomNode as Tf,NodeExtension as vf,nodeInputRule as Mf}from"@rme-sdk/core";import{setBlockType as Pf}from"@rme-sdk/pm/commands";import{TextSelection as Nf}from"@rme-sdk/pm/state";import{Compartment as Cf}from"@codemirror/state";import wf from"mermaid";import kf from"js-event-bus";var kt=new kf;var Ns={count:0},ho=class{constructor(t,o,r,n){this._htmlSrcElt=null;this.destroying=!1;this.renderViewId=null;this.ignoreMutation=()=>!0;this.changeTheme=()=>{this.renderHtml()};this._node=t,this._outerView=o,this._getPos=r,this.schema=t.type.schema,this.options=n,this.dom=document.createElement("div"),this.dom.classList.add("mermaid-node"),this._htmlRenderElt=document.createElement("p"),this._htmlRenderElt.textContent="",this._htmlRenderElt.classList.add("html-node-render"),Le(this.dom,{labelName:"Mermaid"}).addEventListener("click",()=>this.ensureFocus()),this.dom.appendChild(this._htmlRenderElt),this.dom.appendChild(this._htmlRenderElt),this._htmlSrcElt=document.createElement("span"),this._htmlSrcElt.classList.add("mermaid-src","node-hide"),this.languageConf=new Cf,this.dom.appendChild(this._htmlSrcElt),this.renderHtml(),kt.on("change-theme",this.changeTheme)}ensureFocus(){this._outerView.hasFocus()&&(this._innerView?this._innerView.focus():this.openEditor())}update(t){return this._node=t,!!this.mfCodemirrorView?.update(t)}stopEvent(){return!0}renderHtml(){if(!this._htmlRenderElt)return;let t=this.mfCodemirrorView?.content||this._node.textContent;try{this._htmlRenderElt.innerHTML="",this._htmlRenderElt.classList.remove("node-hide"),this._htmlRenderElt.classList.add("node-show"),Ns.count++;let o=`mermaid-${Ns.count}`;wf.render(o,t).then(({svg:r,bindFunctions:n})=>{this._htmlRenderElt&&(this._htmlRenderElt.innerHTML=r,n?.(this._htmlRenderElt))}).catch(r=>{document.getElementById("d"+o)?.remove(),console.error("\u6E32\u67D3\u5931\u8D25:",o,r)})}catch{}}setSelection(t,o){this._innerView?this.mfCodemirrorView?.setSelection(t,o):(this.openEditor(),this.mfCodemirrorView.setSelection(t,o))}openEditor(){if(this._innerView)throw Error("inner view should not exist!");this.mfCodemirrorView=new W({view:this._outerView,node:this._node,getPos:this._getPos,languageName:"mermaid",extensions:this.options?.codemirrorExtensions||[lr],options:{useProsemirrorHistoryKey:!0,codemirrorEditorViewConfig:{parent:this._htmlSrcElt},copyButton:{enabled:!0,customCopyFunction:this.options?.customCopyFunction}}}),this._htmlSrcElt.classList.remove("node-hide"),this._innerView=this.mfCodemirrorView.cm,this._htmlRenderElt?.classList.add("node-hide");let t=this._node.textContent.length||0;this.setSelection(t,t),this._innerView.focus(),this._innerView.contentDOM.addEventListener("blur",()=>{this.destroying||this.closeEditor(!0)}),this.mfCodemirrorView.forwardSelection()}destroy(){this.destroying=!0,this.closeEditor(!1),this._htmlRenderElt&&(this._htmlRenderElt.remove(),delete this._htmlRenderElt),this._htmlSrcElt&&(this._htmlSrcElt.remove(),this._htmlSrcElt=null),this.dom.remove(),kt.detach("change-theme",this.changeTheme)}closeEditor(t=!0){this._innerView&&(this._innerView.destroy(),this._innerView=void 0),this.mfCodemirrorView&&(this.mfCodemirrorView.destroy(),this.mfCodemirrorView=void 0),t&&this.renderHtml()}};var Qe=class extends vf{constructor(){super(...arguments);this.createMermaidBlock=()=>Ef(Pf(this.type))}get name(){return"mermaid_node"}createNodeSpec(o,r){return{group:"block",content:"text*",defining:!0,...r,code:!0,marks:"",attrs:{...o.defaults()},parseDOM:[{tag:"pre",getAttrs:n=>Tf(n)?o.parse(n):!1},...r.parseDOM??[]],toDOM(){return["pre",{"data-type":"mermaid"},0]},isolating:!0}}createNodeViews(){return(o,r,n)=>new ho(o,r,n,this.options)}createInputRules(){return[Mf({regexp:/^```mermaid$/,type:this.type,beforeDispatch:({tr:r,start:n,match:i})=>{let s=r.doc.resolve(n);r.setSelection(Nf.near(s))}})]}createCommands(){return{createMermaidBlock:this.createMermaidBlock}}fromMarkdown(){return[{type:2,token:"mermaid_node",node:this.name,hasOpenClose:!1}]}toMarkdown({state:o,node:r}){o.write("```mermaid\n"),o.text(r.textContent,!1),o.text(`
|
|
1705
|
+
`),o.write("```"),o.closeBlock(r),o.ensureNewLine()}};Qe=v([Sf({defaultOptions:{customCopyFunction:void 0},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Qe);import{isHTMLElement as _s}from"@ocavue/utils";import{PlainExtension as $f}from"@rme-sdk/core";import{NodeSelection as Bs,TextSelection as zf}from"@rme-sdk/pm/state";import{isHTMLElement as Rf}from"@ocavue/utils";import{NodeSelection as If}from"@rme-sdk/pm/state";function Af(e){let t=[[-1,e.state.doc]],o=[];for(;t.length>0;){let[r,n]=t.pop();if(r>=0){let i=e.nodeDOM(r);if(i&&Rf(i)){let s=i.getBoundingClientRect(),{top:a,bottom:l,left:c,right:d}=s;o.push([r,[c,a,d,a]],[r+n.nodeSize,[c,l,d,l]])}}if(n.isBlock&&!n.isTextblock){let i=r+1;for(let s of n.children)t.push([i,s]),i+=s.nodeSize}}return o}function As(e,t){let o=[],r,n,i=()=>{let d=e.dom.getBoundingClientRect(),m=e.state.doc;return o&&r&&n&&d.width===n.width&&d.height===n.height&&d.x===n.x&&d.y===n.y&&r.eq(m)||(n=d,r=m,o=Af(e)),o},s=(d,m)=>{if(!e.editable||e.isDestroyed)return;let p=(y,b)=>{let[x,E]=y,[k,h]=b,g=Is(d,E),S=Is(d,h);return g-S||x-k},f=i();f.sort(p),f=f.slice(0,8);let u=f.find(y=>t?.({view:e,pos:y[0],event:m})!==!1);if(!(u&&_f(e,u[0])))return u},a,l;return(d,m)=>(a&&Lf(a,d)||(a=d,l=s(d,m)),l)}function Lf(e,t){return e[0]===t[0]&&e[1]===t[1]}function Rs(e,t){return Math.abs(e[0]-t[0])+Math.abs(e[1]-t[1])}function Is(e,t){return Math.min(Rs(e,[t[0],t[1]]),Rs(e,[t[2],t[3]]))}function _f(e,t){let o=e.dragging;if(!o)return;let{move:r}=o;if(!r)return;let n=e.state.selection;if(!(n instanceof If))return;let{from:i,to:s}=n;return i<=t&&t<=s}import{isElement as Hr,isTextNode as Bf}from"@ocavue/utils";function se(e){let t=e.getBoundingClientRect();if(t.width===0&&t.height===0&&t.x===0&&t.y===0&&e.getClientRects().length===0){let r=Array.from(e.children).map(l=>se(l));if(r.length===0)return t;if(r.length===1)return r[0];let{top:n,bottom:i,left:s,right:a}=r[0];for(let l=1;l<r.length;l++){let c=r[l];c.top<n&&(n=c.top),c.bottom>i&&(i=c.bottom),c.left<s&&(s=c.left),c.right>a&&(a=c.right)}return{top:n,bottom:i,left:s,right:a}}return t}function Ls(e,t,o){let r=se(e.dom);if(!Hf(r,t,o))return;let n=e.state.doc,i=-1;for(;n;){if(n.isBlock&&(n.isTextblock||n.isAtom||n.type.spec.isolating))return{node:n,pos:i};let s=[],a=[];n.forEach((d,m)=>{s.push(d),a.push(m+i+1)});let l=0,c=s.length-1;for(;l<=c;){let d=c-(c-l>>1),m=e.nodeDOM(a[d]),p=Of(m);if(!p){console.warn(`[rme] Unable to get rect at position: ${a[d]}`);return}if(p.top>o)c=d-1;else if(p.bottom<o)l=d+1;else{l=d;break}}if(l>c)return;n=s[l],i=a[l]}}function Of(e){if(e&&Hr(e)&&e.isConnected)return se(e)}function Hf(e,t,o){return t>=e.left&&t<=e.right&&o>=e.top&&o<=e.bottom}function Dr(e,t){if(!(e&&!e.isConnected)&&!(t&&!t.isConnected))if(e&&t){let o=Df(e),r=Or(t);if(o&&r){let{top:n,bottom:i}=r,{left:s,right:a}=o;return{top:n,bottom:i,left:s,right:a}}else return o||r}else{if(e)return Or(e);if(t)return Or(t)}}function Df(e){if(!Hr(e))return;let t=se(e),o=e.ownerDocument.defaultView?.getComputedStyle(e),r=o&&Number.parseInt(o.marginLeft,10)||0,n=o&&Number.parseInt(o.marginRight,10)||0,i=t.left-r,s=t.right+n;return{top:t.top,bottom:t.bottom,left:i,right:s}}function Or(e){if(Hr(e))return Ff(e);if(Bf(e))return Vf(e)}function Vf(e){let t=e.ownerDocument;if(!t)return;let o=t.createRange();return o.setStart(e,0),o.setEnd(e,0),o.getClientRects()[0]}function Ff(e){if(e.nodeName==="BR")return e.getBoundingClientRect();let t=se(e),o=e.ownerDocument.defaultView?.getComputedStyle(e),r=o&&Number.parseInt(o.marginLeft,10)||0,n=o&&Number.parseInt(o.marginRight,10)||0,i=t.left-r,s=t.right+n,a=o&&Number.parseInt(o.lineHeight,10)||24,l=o&&Number.parseInt(o.paddingTop,10)||0,c=o&&Number.parseInt(o.borderTopWidth,10)||0,d=t.top+l+c,m=d+a;return{top:d,bottom:m,left:i,right:s}}var Ee=class extends $f{get name(){return"nodeIndicator"}createPlugin(){let t,o={node:null,pos:null,rect:null};return{initialState:o,state:{init:()=>o,apply:(r,n)=>{let i=r.getMeta(this.pluginKey);return i?{...n,...i}:r.docChanged?{...n}:n}},view:r=>(t=As(r),{}),props:{handleDrop:(r,n,i,s)=>{if(!t)return!1;let a=t([n.clientX,n.clientY],n);if(!a)return!1;n.preventDefault();let l=a[0],c=r.state.tr;if(s){let{node:u}=r.dragging||{};u?u.replace(c):c.deleteSelection()}let d=c.mapping.map(l),m=i.openStart==0&&i.openEnd==0&&i.content.childCount==1,p=c.doc;if(m?c.replaceRangeWith(d,d,i.content.firstChild):c.replaceRange(d,d,i),c.doc.eq(p))return!1;let f=c.doc.resolve(d);if(m&&Bs.isSelectable(i.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(i.content.firstChild))c.setSelection(new Bs(f));else{let u=c.mapping.map(l);c.mapping.maps[c.mapping.maps.length-1].forEach((y,b,x,E)=>u=E),c.setSelection(Kf(r,f,c.doc.resolve(u)))}return r.focus(),r.dispatch(c.setMeta("uiEvent","drop")),!0},handleDOMEvents:{pointerout:(r,n)=>{let i=n.relatedTarget;return i&&r.dom.contains(i)||i&&i instanceof HTMLElement&&i.closest(".rme-block-handler")||this.pluginKey.getState(r.state)?.node!==null&&r.dispatch(r.state.tr.setMeta(this.pluginKey,{node:null,pos:null,rect:null})),!1},pointermove:(r,n)=>{r.__nodeIndicatorThrottled||(r.__nodeIndicatorThrottled=!0,requestAnimationFrame(()=>{r.__nodeIndicatorThrottled=!1,Wf(r,n,this.pluginKey)}))}}}}}};function Kf(e,t,o,r){return e.someProp("createSelectionBetween",n=>n(e,t,o))||zf.between(t,o,r)}function Wf(e,t,o){let r=o.getState(e.state),{x:n,y:i}=t,s=Ls(e,n,i);if(!s){r?.node!==null&&e.dispatch(e.state.tr.setMeta(o,{node:null,pos:null,rect:null}));return}let{node:a,pos:l}=s,c=e.nodeDOM(l);if(!c||!_s(c)){r?.node!==null&&e.dispatch(e.state.tr.setMeta(o,{node:null,pos:null,rect:null}));return}let d=a,m=l,p=e.state.doc.resolve(l);if(p.depth>0&&p.index(p.depth)===0){let y=p.before(p.depth);d=p.parent,m=y}if(r?.pos===m&&r?.node&&d.type===r?.node.type)return;let f=e.nodeDOM(m);if(!f||!_s(f))return;let u;if(p.depth>0&&p.index(p.depth)===0){let y=e.nodeDOM(p.before(p.depth));u=Dr(y,f)}else u=Dr(void 0,f);e.dispatch(e.state.tr.setMeta(o,{node:d,pos:m,rect:u||{}}))}import{ParagraphExtension as Uf}from"@rme-sdk/main/extensions";var go=class extends Uf{createNodeSpec(t,o){return{...super.createNodeSpec(t,o),whitespace:"pre"}}fromMarkdown(){return[{type:2,token:"paragraph",node:this.name,hasOpenClose:!0}]}toMarkdown({state:t,node:o}){t.renderInline(o),t.closeBlock(o)}};import{extension as qf,ManagerPhase as Gf,PlainExtension as jf}from"@rme-sdk/core";import{Decoration as Qf,DecorationSet as Xf}from"@rme-sdk/pm/view";var Xe=class extends jf{get name(){return"placeholder"}createAttributes(){return{"aria-placeholder":this.options.placeholder}}createPlugin(){return{props:{decorations:t=>Yf({state:t,extension:this})}}}onSetOptions(t){let{changes:o}=t;o.placeholder.changed&&this.store.phase>=Gf.EditorView&&this.store.updateAttributes()}};Xe=v([qf({defaultOptions:{placeholder:""},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Xe);function Yf(e){let{extension:t,state:o}=e,{emptyNodeClass:r,placeholder:n}=t.options,i=[];return o.doc.descendants((s,a,l)=>{if(s.type.name==="paragraph"&&s.content.size===0&&n&&o.selection.from-1===a&&l?.type.name==="doc"){let c=Qf.node(a,a+s.nodeSize,{class:r,"data-placeholder":n});i.push(c)}}),Xf.create(o.doc,i)}import{extension as Jf,ExtensionTag as bo,findParentNodeOfType as Zf,isElementDomNode as eh,NodeExtension as th,nodeInputRule as oh}from"@rme-sdk/core";import{Decoration as rh,DecorationSet as Os}from"@rme-sdk/pm/view";var Ye=class extends th{get name(){return"reference_def"}createTags(){return[bo.LastNodeCompatible,bo.TextBlock,bo.Block,bo.FormattingNode]}createNodeSpec(t,o){return{group:"reference",content:"reference_label reference_href reference_title*",...o,attrs:{...t.defaults(),label:{default:""},href:{default:""},title:{default:""}},parseDOM:[{tag:"div[data-reference-definition]",getAttrs:r=>{if(!eh(r))return!1;let n=r.getAttribute("data-reference-label")||"",i=r.getAttribute("data-reference-href")||"",s=r.getAttribute("data-reference-title")||"";return{...t.parse(r),label:n,href:i,title:s}}},...o.parseDOM??[]],toDOM:r=>["div",{...t.dom(r),class:"reference-def"},0]}}createDecorations(t){let o=Zf({types:this.type,selection:t.selection});return o?Os.create(t.doc,[rh.node(o.pos,o.pos+o.node.nodeSize,{class:"rme-block-focus"})]):Os.empty}createInputRules(){return[oh({regexp:/^\[([^\]]*)\]:\s*([^\s"]+(:\s+[^\s"]+)*)?(?:\s+"(.*?)")?/,type:this.type,getAttributes:t=>{let[,o,r,n]=t;return console.log("matchmatch",t),{label:o,ref:r,title:n}}})]}fromMarkdown(){return[{type:2,node:this.name,token:"reference_def",hasOpenClose:!0,getAttrs:t=>({label:t.attrs?.[0]?.[1]||"",href:t.attrs?.[1]?.[1]||"",title:t.attrs?.[2]?.[1]||""})}]}toMarkdown({state:t,node:o}){t.renderInline(o),t.closeBlock(o)}};Ye=v([Jf({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Ye);import{extension as Vr,ExtensionTag as Fr,NodeExtension as $r}from"@rme-sdk/core";var Je=class extends $r{get name(){return"reference_label"}createTags(){return[Fr.InlineNode]}createNodeSpec(t,o){return{inline:!0,group:"reference_inline",content:"text*",...o,attrs:{...t.defaults()},toDOM:r=>["span",{...t.dom(r),class:"reference-definition-node__label"},["span",{contenteditable:"false",disabled:"true"},"\u200B"],["span",{},0],["span",{contenteditable:"false",disabled:"true"},"\u200B"]]}}fromMarkdown(){return[{type:6,token:"reference_label",getText:t=>t.content}]}toMarkdown({state:t,node:o}){t.write("["),t.text(o.textContent||""),t.write("]: ")}createKeymap(){return{Backspace:({state:t,dispatch:o})=>{let{selection:r}=t,{$from:n}=r;if(n.parent.type.name!==this.name)return!1;if(n.parent.textContent.length===0){let i=null,s=-1;for(let a=n.depth-1;a>=0;a--){let l=n.node(a);if(l.type.name==="reference_def"){i=l,s=n.start(a);break}}if(i&&s!==-1&&o)return o(t.tr.delete(s,s+i.nodeSize)),!0}return!1}}}};Je=v([Vr({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Je);var Ze=class extends $r{get name(){return"reference_href"}createTags(){return[Fr.InlineNode]}createNodeSpec(t,o){return{inline:!0,group:"reference_inline",content:"text*",...o,attrs:{...t.defaults()},toDOM:r=>["span",{...t.dom(r),class:"reference-definition-node__href"},0]}}fromMarkdown(){return[{type:6,token:"reference_href",getText:t=>t.content}]}toMarkdown({state:t,node:o}){t.text(`${o.textContent||""} `)}};Ze=v([Vr({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],Ze);var et=class extends $r{get name(){return"reference_title"}createTags(){return[Fr.InlineNode]}createNodeSpec(t,o){return{inline:!0,group:"reference_inline",content:"text*",...o,attrs:{...t.defaults()},toDOM:r=>["span",{...t.dom(r),class:"reference-definition-node__title"},0]}}fromMarkdown(){return[{type:6,token:"reference_title",getText:t=>t.content}]}toMarkdown({state:t,node:o}){o.textContent&&(t.write('"'),t.text(o.textContent||""),t.write('"'))}};et=v([Vr({defaultOptions:{},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],et);import{TextSelection as oP}from"@rme-sdk/pm/state";import{extension as sh,PlainExtension as ah}from"@rme-sdk/main";var nh=(e=!1)=>({shouldOpen:(t,o,r)=>{if(o.isComposing)return!1;let n=r.state,s=(n.selection.from<0||n.selection.from>n.doc.content.size?null:n.doc.resolve(n.selection.from))?.parent,a=s?.type.name==="paragraph",l=n.selection.$head.parentOffset,c=n.selection.$head.parent.textContent.slice(l-1,l),d=a&&s?.textContent===c,m=c==="\u200A"||c===""||c===" ";return!t.open&&ye(o)&&a&&(d||m||n.selection.from!==n.selection.to&&e)},shouldClose:(t,o)=>t.open&&(ye(o)||o.key==="Escape"||o.key==="Backspace")&&t.filter.length===0}),Hs=(e,t,o,r,n,i)=>{if(t.isComposing)return t.key==="Escape"||t.key==="Backspace"&&e.filter.length===0?"closeMenu":"Ignore";let s=n||nh(i);if(s.shouldOpen(e,t,o))return"openMenu";if(s.shouldClose(e,t,o))return"closeMenu";if(e.open){if(t.key==="ArrowDown")return"NextItem";if(t.key==="ArrowUp")return"PrevItem";if(t.key==="Enter"||t.key==="Tab")return"Execute";if(t.key==="Escape"||t.key==="Backspace"&&e.filter.length===0)return"closeMenu";if(e.filter.length>0&&t.key==="Backspace")return"removeChar";if(!r.includes(t.key))return"addChar";if(t.key==="ArrowLeft"||t.key==="ArrowRight")return"Catch"}return"Ignore"};var ae=class extends ah{get name(){return"slash-menu"}createPlugin(){let t={open:!1,filter:"",ignoredKeys:zi};return{props:{handleKeyDown(o,r){let n=o.state;if(!n)return!1;let i=this.getState(n);if(!i)return!1;switch(Hs(i,r,o,t.ignoredKeys)){case"openMenu":let a=n.selection.from<0||n.selection.from>n.doc.content.size?null:n.doc.resolve(n.selection.from),l=a?.parent,c=l?.type.name==="paragraph";return a?.depth===1?(c&&l.textContent==="/"&&a&&o.dispatch(n.tr.delete(a.start(),a.end()).setMeta(this.spec.key,{type:"open"})),be(o,this.spec.key,{type:"open"}),!0):!1;case"closeMenu":return r.isComposing?be(o,this.spec.key,{type:"close"}):ye(r)?o.dispatch(n.tr.insertText("/").setMeta(this.spec.key,{type:"close"})):be(o,this.spec.key,{type:"close"}),!0;case"Execute":case"NextItem":case"PrevItem":case"addChar":case"removeChar":case"Catch":return!0;default:return!1}}},state:{init(){return t},apply(o,r){switch(o.getMeta(this.spec.key)?.type){case"open":return{...t,open:!0};case"close":return t;case"execute":return{...t,open:!0};default:return r}}},initialState:t}}};ae=v([sh({defaultOptions:{}})],ae);import{TextExtension as lh}from"@rme-sdk/main/extensions";var yo=class extends lh{fromMarkdown(){return[{type:1,token:"text",getText:t=>t.content},{type:1,token:"inline",getText:t=>t.content},{type:1,token:"softbreak",getText:t=>`
|
|
1706
|
+
`}]}toMarkdown({state:t,node:o}){t.text(o.text||"")}};import{PlainExtension as ch,extension as dh}from"@rme-sdk/core";var le=class extends ch{get name(){return"transformer"}createPlugin(){let t={isTransformerFlag:!0,stringToDoc:null,docToString:null};return{state:{init(){return t},apply:(o,r)=>{let n=o.getMeta(this.pluginKey);return n?{...r,stringToDoc:n.stringToDoc,docToString:n.docToString}:r}},initialState:t}}};le=v([dh({defaultOptions:{}})],le);import{extension as mh,isTextSelection as ph,PlainExtension as uh}from"@rme-sdk/core";import{ViewPlugin as fh}from"@codemirror/view";var Ds=32;function hh(e){let o=window.getComputedStyle(e).overflowY;return o!=="visible"&&o!=="clip"&&e.scrollHeight>e.clientHeight}function gh(e){let t=e.dom.parentElement;for(;t;){if(hh(t))return t;t=t.parentElement}return document}function Ct(e){return e===document?window.scrollY:e.scrollTop}function bh(e){return e===document?window.innerHeight:e.clientHeight}function yh(e){if(e===document){let t=document.scrollingElement;return t?t.scrollHeight-window.innerHeight:0}return e.scrollHeight-e.clientHeight}function xh(e,t){if(e===document){window.scrollTo({top:t,behavior:"smooth"});return}e.scrollTo({top:t,behavior:"smooth"})}function Vs(e){return e===document?0:e.getBoundingClientRect().top}var J=class extends uh{get name(){return"typewriterScroll"}createCodeMirrorExtension(){let t=this;return fh.fromClass(class{constructor(){this.rafId=null}update(o){t.options.enabled&&(!o.docChanged&&!o.selectionSet||this.scheduleCenter(o))}scheduleCenter(o){this.rafId!==null&&cancelAnimationFrame(this.rafId),this.rafId=requestAnimationFrame(()=>{this.rafId=null,this.centerCaretLine(o)})}centerCaretLine(o){let{view:r}=o,i=r.state.selection.main.head,a=r.state.doc.lineAt(i).from,l=r.coordsAtPos(a);if(!l)return;let c=l.top,d=l.bottom,m=(c+d)/2,p=window.innerHeight/2,f=m-p;if(Math.abs(f)<=Ds)return;let u=window.scrollY,y=Math.max(0,Math.min(document.documentElement.scrollHeight-window.innerHeight,u+f));y!==u&&window.scrollTo({top:y,behavior:"smooth"})}destroy(){this.rafId!==null&&cancelAnimationFrame(this.rafId)}})}createPlugin(){let t=null,o=!1,r=()=>{t!==null&&(cancelAnimationFrame(t),t=null)},n=c=>{let d=document.activeElement;return!d||d===c.dom||!c.dom.contains(d)?!1:!!d.closest(".cm-editor")},i=c=>{if(!this.options.enabled||o||!c.hasFocus())return;let d=gh(c),m=yh(d);if(!(m<=0))try{let p,f;if(n(c)){let k=document.activeElement?.closest(".cm-editor");if(!k||!k.querySelector(".cm-content"))return;let g=window.getSelection();if(!g||g.rangeCount===0)return;let C=g.getRangeAt(0).getClientRects();if(C.length===0)return;let w=C[0],T=Ct(d),I=Vs(d);p=T+w.top-I,f=T+w.bottom-I}else{let{selection:E}=c.state;if(!ph(E)||!E.empty)return;let k=c.coordsAtPos(E.head);if(!k)return;let h=Ct(d),g=Vs(d);p=h+k.top-g,f=h+k.bottom-g}let u=(p+f)/2,y=Ct(d)+bh(d)/2,b=u-y;if(Math.abs(b)<=Ds)return;let x=Math.max(0,Math.min(m,Ct(d)+b));x!==Ct(d)&&xh(d,x)}catch{return}},s=c=>{r(),t=requestAnimationFrame(()=>{t=null,i(c)})},a=()=>{l&&n(l)&&s(l)},l=null;return{view:c=>{l=c;let d=()=>{l&&n(l)&&s(l)};return document.addEventListener("selectionchange",d),{update:(m,p)=>{if(m!==c)return;let f=!m.state.doc.eq(p.doc),u=!m.state.selection.eq(p.selection);!f&&!u||s(m)},destroy:()=>{r(),document.removeEventListener("selectionchange",d),l=null}}},props:{handleDOMEvents:{compositionstart:()=>(o=!0,!1),compositionend:c=>(o=!1,s(c),!1),focus:c=>(s(c),!1),blur:()=>(r(),o=!1,!1)}}}}};J=v([mh({defaultOptions:{enabled:!1},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],J);function Sh(e){let t=f=>(navigator.clipboard.writeText(f),!0),{handleViewImgSrcUrl:o,imageHostingHandler:r,imagePasteHandler:n,customCopyFunction:i=t,clipboardReadFunction:s=St,codemirrorOptions:a={},typewriterScroll:l={}}=e,c=new J(l),d=l.enabled===!0?[c.createCodeMirrorExtension()]:[],m={customCopyFunction:i,codemirrorExtensions:[...cr({...a,lineNumbers:!0}),...d]},p=[...wh({excludeExtensions:["paragraph","text"]}),...gs({handleViewImgSrcUrl:o}),new De,new Ch({}),new Ke({handleViewImgSrcUrl:o,imageHostingHandler:r,imagePasteHandler:n}),new We({handleViewImgSrcUrl:o,imageHostingHandler:r,imagePasteHandler:n,uploadHandler:e.uploadImageHandler}),new Ut,new fe,new $e({enableResizing:!0}),new Xe({placeholder:"Type '/' for commands"}),new go,new yo,new qt,new Ft,new Gt({}),new co,new ce({extensions:[...cr({...a,lineNumbers:!0}),...d],useProsemirrorHistoryKey:!0,customCopyFunction:i}),new jt({}),new Ot({resizable:!1}),new Dt,new Ht,new Vt,new ne({decoration:{style:"background-color: yellow; color: black"},activeDecoration:{style:"background-color: orange; color: black"}}),new he({handleViewImgSrcUrl:o}),new He({imagePasteHandler:n,clipboardReadFunction:s}),new Eh({}),new kh({className:"rme-drop-cursor"}),new ae,new xt,new so,new je(m),new Fe({...m,handleViewImgSrcUrl:o}),new Qe(m),new we({}),new Ye({}),new Je({}),new Ze({}),new et({}),new le({}),new Ee,c];return e.ai&&(p.unshift(new Oe(e.ai)),e.ai.copilot&&p.unshift(new Ve(e.ai.copilot))),p}var zr=Sh;var Kr=class{constructor(t){this.nodes=t,this.delimiter="",this.out="",this.closed=null,this.inTightList=!1}flushClose(t=2){if(this.closed){if(this.ensureNewLine(),t>1){let o=this.delimiter,r=/\s+$/.exec(o);r&&(o=o.slice(0,o.length-r[0].length));for(let n=1;n<t;n++)this.out+=o+`
|
|
1707
1707
|
`}this.closed=null}}wrapBlock(t,o,r,n){let i=this.delimiter;this.write(o||t),this.delimiter=this.delimiter+t,n(),this.delimiter=i,this.closeBlock(r)}atBlank(){return/(^|\n)$/.test(this.out)}ensureNewLine(){this.atBlank()||(this.out+=`
|
|
1708
1708
|
`)}write(t){this.flushClose(),this.delimiter&&this.atBlank()&&(this.out+=this.delimiter),t&&(this.out+=t)}closeBlock(t){this.closed=t}text(t,o=!0){let r=t.split(`
|
|
1709
1709
|
`);for(let n=0;n<r.length;n++){let i=this.atBlank()||this.closed;this.write(),this.out+=o?this.esc(r[n],!!i):r[n],n!=r.length-1&&(this.out+=`
|
|
1710
|
-
`)}}render(t,o,r,n=0){let i=this.nodes[t.type.name];if(i){if(!i)throw new Error(`Can't find node spec for type '${t.type.name}'`);i({state:this,node:t,parent:o,index:r,counter:n})}}renderContent(t){let o=0;if(t.forEach)t.forEach((r,n,i)=>{if(mo(r)){let s=i>0?t.child(i-1):null;s&&!mo(s)&&(o=0);let a=r.attrs;a.order!=null?o=a.order:o+=1}else o=0;this.render(r,t,i,o)});else{if(mo(t)){let r=t.attrs;r.order!=null?o=r.order:o+=1}else o=0;this.render(t,t,0,o)}}renderInline(t){t.forEach((o,r,n)=>{o.isText?this.text(o.text||"",!1):this.render(o,t,n)})}renderList(t,o,r){this.closed&&this.closed.type===t.type?this.flushClose(3):this.inTightList?this.flushClose(1):this.flushClose(2);let n=this.inTightList;this.inTightList=!0,t.forEach((i,s,a)=>{a&&this.flushClose(1),this.wrapBlock(o,r(a),t,()=>this.render(i,t,a))}),this.inTightList=n}esc(t,o){return t=t.replace(/[`*\\~\[\]]/g,"\\$&"),o&&(t=t.replace(/^[:#\-*+]/,"\\$&").replace(/^(\d+)\./,"$1\\.")),t}quote(t){let o=t.includes('"')?t.includes("'")?"()":"''":'""';return o[0]+t+o[1]}repeat(t,o){let r="";for(let n=0;n<o;n++)r+=t;return r}getEnclosingWhitespace(t){return{leading:(/^(\s+)/.exec(t)||[])[0],trailing:(/(\s+)$/.exec(t)||[])[0]}}},xo=class{constructor(t){this.nodes=t}serialize(t){let o=new
|
|
1710
|
+
`)}}render(t,o,r,n=0){let i=this.nodes[t.type.name];if(i){if(!i)throw new Error(`Can't find node spec for type '${t.type.name}'`);i({state:this,node:t,parent:o,index:r,counter:n})}}renderContent(t){let o=0;if(t.forEach)t.forEach((r,n,i)=>{if(mo(r)){let s=i>0?t.child(i-1):null;s&&!mo(s)&&(o=0);let a=r.attrs;a.order!=null?o=a.order:o+=1}else o=0;this.render(r,t,i,o)});else{if(mo(t)){let r=t.attrs;r.order!=null?o=r.order:o+=1}else o=0;this.render(t,t,0,o)}}renderInline(t){t.forEach((o,r,n)=>{o.isText?this.text(o.text||"",!1):this.render(o,t,n)})}renderList(t,o,r){this.closed&&this.closed.type===t.type?this.flushClose(3):this.inTightList?this.flushClose(1):this.flushClose(2);let n=this.inTightList;this.inTightList=!0,t.forEach((i,s,a)=>{a&&this.flushClose(1),this.wrapBlock(o,r(a),t,()=>this.render(i,t,a))}),this.inTightList=n}esc(t,o){return t=t.replace(/[`*\\~\[\]]/g,"\\$&"),o&&(t=t.replace(/^[:#\-*+]/,"\\$&").replace(/^(\d+)\./,"$1\\.")),t}quote(t){let o=t.includes('"')?t.includes("'")?"()":"''":'""';return o[0]+t+o[1]}repeat(t,o){let r="";for(let n=0;n<o;n++)r+=t;return r}getEnclosingWhitespace(t){return{leading:(/^(\s+)/.exec(t)||[])[0],trailing:(/(\s+)$/.exec(t)||[])[0]}}},xo=class{constructor(t){this.nodes=t}serialize(t){let o=new Kr(this.nodes);return o.renderContent(t),o.out}};import{languages as ko}from"@codemirror/language-data";import{computePosition as Th}from"@floating-ui/dom";import{Selection as Fs}from"@rme-sdk/pm/state";import vh from"fuse.js";import{t as Mh}from"i18next";var Ph=e=>{let t=document.createElement("ul");return t.classList.add("code-block__languages"),ko.forEach(o=>{let r=document.createElement("li");r.classList.add("code-block__language"),r.classList.toggle("code-block__language--active",o.name===e),r.innerText=o.name,t.append(r)}),t},tt=({keyword:e,languagesList:t,currentLanguage:o,highlightedIndex:r})=>{let n=ko;if(e&&(n=new vh(ko,{keys:["name"]}).search(e).map(i=>i.item)),t.innerHTML="",n.length===0){let i=document.createElement("li");return i.classList.add("code-block__language","code-block__language--empty"),i.innerText="No results",t.append(i),n}return n.forEach((i,s)=>{let a=document.createElement("li");a.classList.add("code-block__language"),a.classList.toggle("code-block__language--active",i.name===o),a.classList.toggle("code-block__language--highlight",s===r),a.dataset.value=i.name,a.dataset.index=String(s),a.innerText=i.name,t.append(a)}),n},Nh=e=>{let t=[],o=i=>{i.target.classList.contains("code-block__languages__input")||n()},r=(i,s)=>{let a=e.node.attrs.language||"";a===Co&&(a="");let l=Ph(a),c=ko,d=-1,m=!1,p=k=>{let h=s();h!==void 0&&i.dispatch(i.state.tr.setNodeMarkup(h,void 0,{language:k}))},f=k=>{let h=s();if(h===void 0)return;let g=k<0?h:h+e.node.nodeSize,S=Fs.near(i.state.doc.resolve(g),k);i.dispatch(i.state.tr.setSelection(S).scrollIntoView()),i.focus()},u=k=>{let h=s();if(h===void 0)return;let g=k<0?h+e.node.nodeSize-1:h+1,S=Fs.near(i.state.doc.resolve(g),k);i.dispatch(i.state.tr.setSelection(S).scrollIntoView()),i.focus()},y=()=>{m||(m=!0,t.push(()=>{m&&(b.removeChild(l),m=!1)}),b.appendChild(l),Th(b,l,{placement:"bottom-start"}).then(({x:k,y:h})=>{Object.assign(l.style,{left:`${k}px`,top:`${h}px`})}))},b=document.createElement("div"),x=document.createElement("input");b.classList.add("code-block__reference","code-block__reference--active"),x.classList.add("code-block__languages__input"),x.placeholder=Mh("codemirror.searchInputPlaceholder"),b.appendChild(x),x.value=a,x.addEventListener("focus",()=>{let k=c.findIndex(h=>h.name===a);d=k>=0?k:c.length>0?0:-1,c=tt({keyword:x.value,currentLanguage:a,languagesList:l,highlightedIndex:d})}),document.addEventListener("click",o,!0),x.addEventListener("input",k=>{if(k.target){m||y();let h=k.target.value;d=-1,c=tt({keyword:h,currentLanguage:a,languagesList:l,highlightedIndex:d}),p(h)}}),l?.addEventListener("click",k=>{let g=k.target.dataset.value;g&&(a=g,p(a),x.value=a,d=c.findIndex(S=>S.name===a),c=tt({keyword:x.value,currentLanguage:a,languagesList:l,highlightedIndex:d}))}),l?.addEventListener("mousemove",k=>{let g=k.target.dataset.index;g!==void 0&&(d=Number(g),c=tt({keyword:x.value,currentLanguage:a,languagesList:l,highlightedIndex:d}))}),x.addEventListener("keydown",k=>{if(k.key==="ArrowDown"){if(!m){k.preventDefault(),u(1);return}if(c.length===0)return;k.preventDefault(),d=(d+1)%c.length}else if(k.key==="ArrowUp"){if(!m){k.preventDefault(),f(-1);return}if(c.length===0)return;k.preventDefault(),d=(d-1+c.length)%c.length}else if(k.key==="Enter"){if(!m)return;c.length>0&&d>=0&&(k.preventDefault(),a=c[d].name,p(a),x.value=a)}else if(k.key==="Escape"){n();return}else return;m&&(c=tt({keyword:x.value,currentLanguage:a,languagesList:l,highlightedIndex:d}),l.querySelector(`[data-index="${d}"]`)?.scrollIntoView({block:"nearest"}))}),c=tt({keyword:a,currentLanguage:a,languagesList:l,highlightedIndex:d});let E=document.createElement("div");return E.classList.add("code-block__menu"),E.dataset.pos=String(e.pos),E.appendChild(b),E},n=()=>{t.forEach(i=>i()),t.length=0,document.removeEventListener("click",o)};return{create:r,destroy:n}},$s=Nh;var wo=class{constructor({node:t,view:o,getPos:r,extensions:n,options:i,onCodemirrorViewLoad:s}){this.node=t,this.view=o,this.getPos=r,this.languageName="";let a=n;this.mfCodemirrorView=new W({view:this.view,getPos:this.getPos,node:this.node,extensions:a,languageName:this.languageName,options:i}),s&&s(this.mfCodemirrorView),this.cm=this.mfCodemirrorView.cm,this.dom=this.cm.dom}update(t){return this.node=t,this.mfCodemirrorView.update(t)}setSelection(t,o){this.mfCodemirrorView.setSelection(t,o)}focus(){this.cm.focus(),this.mfCodemirrorView.forwardSelection()}stopEvent(){return!0}destroy(){this.mfCodemirrorView.destroy()}};var Co="indent-code",ce=class extends Bh{constructor(){super(...arguments);this.enterKey=({dispatch:o,tr:r})=>{if(!(_h(r.selection)&&r.selection.empty))return!1;let{nodeBefore:n,parent:i}=r.selection.$anchor;if(!n?.isText||!i.type.isTextblock)return!1;let s=/^```(\S*)?$/,{text:a,nodeSize:l}=n,{textContent:c}=i;if(!a)return!1;let d=a.match(s),m=c.match(s);if(!d||!m)return!1;let p=d[1]??"",f=r.selection.$from.before(),u=f+l+1;return r.replaceWith(f,u,this.type.create({language:p})),r.setSelection(Wr.near(r.doc.resolve(f+1))),o&&o(r),!0};this.createCodeMirror=o=>Oh(this.type,o);this.updateCodeMirror=o=>{let r=this.type;return({state:n,dispatch:i,tr:s})=>{let a=Ks({types:r,selection:n.selection});return!a||Lh(o,a.node.attrs)?!1:(s.setNodeMarkup(a.pos,r,{...a.node.attrs,...o}),i&&i(s),!0)}}}get name(){return"codeMirror"}createNodeSpec(o,r){return{group:"block",content:"text*",marks:"",defining:!0,...r,code:!0,selectable:!0,attrs:{...o.defaults(),"front-matter":{default:!1},language:{default:""}},parseDOM:[{tag:"pre",getAttrs:n=>Ah(n)?o.parse(n):!1},...r.parseDOM??[]],toDOM(){return["pre",["code",0]]},isolating:!0}}createNodeViews(){return(o,r,n)=>{let i=this.options.extensions??[];return o.attrs["front-matter"]===!0&&i.push(Rh(Dh("codemirror.frontMatterPlaceholder"))),this.nodeview=new wo({node:o,view:r,getPos:n,extensions:i,toggleName:this.options.toggleName,options:{useProsemirrorHistoryKey:this.options.useProsemirrorHistoryKey,copyButton:{enabled:this.options.showCopyButton,customCopyFunction:this.options.customCopyFunction},commandKeymapOptions:this.options.commandKeymapOptions},onCodemirrorViewLoad:this.options.onCodemirrorViewLoad}),o.attrs["front-matter"]===!0&&this.nodeview?.dom?.setAttribute("data-front-matter","true"),this.nodeview}}createInputRules(){let o=/^---$/,r=/^```(?!mermaid)(\S*) $/,n=()=>({"front-matter":!0,language:"yaml"}),i=s=>({language:s[1]??""});return[Ws({regexp:o,type:this.type,beforeDispatch:({tr:s,start:a})=>{let l=s.doc.resolve(a);s.setSelection(Wr.near(l))},getAttributes:n,shouldSkip:({state:s,start:a})=>s.doc.resolve(a).index(0)!==0}),Ws({regexp:r,type:this.type,beforeDispatch:({tr:s,start:a})=>{let l=s.doc.resolve(a);s.setSelection(Wr.near(l))},getAttributes:i})]}createCommands(){return{createCodeMirror:this.createCodeMirror,updateCodeMirror:this.updateCodeMirror}}fromMarkdown(){return[{type:2,token:"fence",node:this.name,hasOpenClose:!1,getAttrs:o=>({language:o.info,"front-matter":o.attrGet("front-matter")})},{type:2,token:"code_block",node:this.name,hasOpenClose:!1,getAttrs:()=>({language:Co})}]}toMarkdown({state:o,node:r}){if(r.attrs["front-matter"]===!0){o.write(`---
|
|
1711
1711
|
`),o.write(r.textContent),r.textContent.endsWith(`
|
|
1712
1712
|
`)||o.write(`
|
|
1713
1713
|
`),o.write(`---
|
|
1714
1714
|
`);return}else r.attrs.language!==Co?(o.write("```"+(r.attrs.language||"")+`
|
|
1715
1715
|
`),o.text(r.textContent,!1),o.text(`
|
|
1716
|
-
`),o.write("```"),o.closeBlock(r)):(o.wrapBlock(" "," ",r,()=>o.renderContent(r)),o.closeBlock(r));o.ensureNewLine()}createDecorations(o){if(this.options.hideDecoration)return Eo.empty;let r=zs({types:this.type,selection:o.selection});if(!r||r.node.attrs["front-matter"]===!0)return Eo.empty;if(!$s||$s.length<=1)return Eo.empty;let{create:n,destroy:i}=Fs(r),s=Vh.widget(r.pos,n,{ignoreSelection:!0,stopEvent:()=>!0,key:"language-menu",destroy:i});return Eo.create(o.doc,[s])}};de=v([Ah({defaultOptions:{hideDecoration:!1,extensions:null,toggleName:"paragraph",useProsemirrorHistoryKey:!1,onCodemirrorViewLoad:()=>{},showCopyButton:!0},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],de);function Wh(e){let t=e?.typewriterScroll??{},o=new Z(t),r=t.enabled!==!1?[o.createCodeMirrorExtension()]:[];return Kh(()=>[new $h({}),new zh({content:"codeMirror"}),new ie({}),new de({hideDecoration:!0,showCopyButton:!1,extensions:[Ii,Fh(),...r],onCodemirrorViewLoad:e?.onCodemirrorViewLoad,commandKeymapOptions:{overrideShortcutMap:e?.overrideShortcutMap,disableAllBuildInShortcuts:e?.disableAllBuildInShortcuts,clipboardReadFunction:e?.clipboardReadFunction}}),o])}var So=e=>{let t=Wh(e);return{manager:t,stringToDoc:n=>{let i=t.schema,s={language:e?.language||"markdown"},a=n?i.text(n):void 0;return i.nodes.doc.create({},i.nodes.codeMirror.create(s,a))},docToString:n=>n.textContent,view:"SourceCode"}};import{jsx as Se,jsxs as Zh}from"react/jsx-runtime";var[Qh,Xh]=Hn(({props:e})=>({...e})),Yh=Ws(e=>{let{markdownToolBar:t,styleToken:o,textContainerProps:r={}}=e,{content:n,markText:i,hooks:s,isTesting:a,editable:l}=Xh(),c;try{c=i.stringToDoc(n)}catch(d){return Se(Re,{hasError:!0,error:d,...e.errorHandler||{}})}return Se(Re,{...e.errorHandler||{},children:Se(wn,{...o,children:Zh(qh,{manager:i.manager,initialContent:c,hooks:s,editable:l,onChange:e.onChange,autoRender:!1,children:[Se(Vn,{...r}),t||null,a?Se(Uh,{}):null]})})})}),Jh=e=>{let{content:t,delegate:o,isTesting:r,hooks:n,markdownToolBar:i,styleToken:s=To,sourceCodeTextContainerProps:a={}}=e,l=jh(()=>o??So(),[o]),c=Gh(d=>{try{e.onChange?.(d)}catch(m){console.error(m)}},[l,e]);return Se(Qh,{content:t,isTesting:r,markText:l,hooks:n,children:Se(Yh,{styleToken:s,textContainerProps:a,markdownToolBar:i,onChange:c,errorHandler:e.errorHandler})})},Wr=Ws(Jh);import{useRemirrorContext as eg}from"@rme-sdk/react-core";import{useEffect as tg}from"react";var Us=e=>{let t=eg();tg(()=>{e&&e(t)},[e,t])};import{ProsemirrorDevTools as Ly}from"@rme-sdk/dev";import{Remirror as _y}from"@rme-sdk/react";import{memo as By,useCallback as Oy,useEffect as Hy,useMemo as Vy}from"react";import{isHTMLElement as yg}from"@ocavue/utils";import{NodeSelection as xg}from"@rme-sdk/pm/state";import{useCommands as kg,useExtension as Cg,useRemirrorContext as wg}from"@rme-sdk/react-core";import{Dropdown as Eg}from"antd";import{t as wt}from"i18next";import{memo as Sg,useCallback as ot,useEffect as Zs,useMemo as vo,useRef as ea,useState as ta}from"react";import ra from"styled-components";import{isHTMLElement as js}from"@ocavue/utils";import{Fragment as og,Slice as rg}from"@rme-sdk/pm";import{NodeSelection as ng}from"@rme-sdk/pm/state";function qs(e){let t=e.ownerDocument.defaultView;if(!t)return;let r=t.getComputedStyle(e).display;return r==="contents"&&e.childElementCount===1?e.firstElementChild:r==="none"?void 0:e}function Gs(e,t){let{top:o,bottom:r,left:n,right:i}=ae(t),s=i-n,a=r-o,l=n,c=o,{clientX:d,clientY:m}=e,p=t.ownerDocument,f=p.createElement("div"),u=Math.round(l-d),y=Math.round(c-m),b=Math.max(u,0),x=Math.max(y,0);Object.assign(f.style,{position:"fixed",top:"-1000vh",left:"-1000vw",pointerEvents:"none",zIndex:"2147483647",borderLeft:`${b}px solid transparent`,borderTop:`${x}px solid transparent`,boxSizing:"border-box",width:`${s+b}px`,height:`${a+x}px`});let[E,k]=ti(t,!0);E.style.setProperty("opacity","0.7","important"),E.style.setProperty("margin","0","important"),E.style.setProperty("outline-color","transparent","important"),p.body.appendChild(f),f.appendChild(E),oi(f,k),e.dataTransfer?.setDragImage(f,Math.max(-u,0),Math.max(-y,0)),requestAnimationFrame(()=>{f.remove()})}function Qs(e,t,o){if(!o.dataTransfer)return;let{pos:r}=t;if(r==null)return;let n=e.nodeDOM(r);if(!n||!js(n))return;let i=qs(n);!i||!js(i)||(o.dataTransfer.clearData(),o.dataTransfer.setData("text/html",i.outerHTML),o.dataTransfer.effectAllowed="copyMove",Gs(o,i))}function Xs(e,t){let{node:o,pos:r}=t,n={slice:new rg(og.from(o),0,0),move:!0,node:ng.create(e.state.doc,r)};e.dragging=n}import{TextSelection as Gr}from"@rme-sdk/pm/state";import{useCommands as zR}from"@rme-sdk/react-core";import{useMemo as ig}from"react";import{useTranslation as UR}from"react-i18next";var sg=e=>t=>t.type.name==="heading"&&t.attrs.level===e,ag=e=>e.type.name==="paragraph",lg=e=>e.type.name==="codeMirror",cg=e=>e.type.name==="blockquote",Ur=e=>t=>t.type.name==="list"&&t.attrs.kind===e,Ys=e=>["paragraph","heading","codeMirror","blockquote","list"].includes(e.type.name),qr=e=>["paragraph","heading","codeMirror","blockquote","list"].includes(e.type.name),dg=e=>["paragraph","heading","blockquote","list"].includes(e.type.name),mg=e=>["paragraph","heading","codeMirror","list"].includes(e.type.name),pg=e=>{let{view:t,pos:o,node:r,tr:n}=e;n.delete(o,o+r.nodeSize);let i=Math.max(0,Math.min(o,n.doc.content.size));return n.setSelection(Gr.create(n.doc,i)),t.dispatch(n),t.focus(),!0},ug=e=>t=>{let{view:o,pos:r,tr:n}=t,i=o.state.schema.nodes.heading;return i?(n.setBlockType(r,r+t.node.nodeSize,i,{level:e}),o.dispatch(n),!0):!1},fg=e=>{let{view:t,pos:o,tr:r}=e,n=t.state.schema.nodes.paragraph;return n?(r.setBlockType(o,o+e.node.nodeSize,n),t.dispatch(r),!0):!1},hg=e=>{let{view:t,pos:o,node:r,tr:n}=e,i=t.state.schema.nodes.codeMirror;if(!i)return!1;let s=bg(r);n.delete(o,o+r.nodeSize);let a=i.create({language:""},t.state.schema.text(s));n.insert(o,a);let l=o+1;return n.setSelection(Gr.create(n.doc,l)),t.dispatch(n),!0},gg=e=>{let{view:t,pos:o,node:r,tr:n}=e,i=t.state.schema.nodes.blockquote,s=t.state.schema.nodes.paragraph;if(!i||!s)return!1;let a=r.content,l=s.create(null,a),c=i.create(null,l);n.delete(o,o+r.nodeSize),n.insert(o,c);let d=o+1;return n.setSelection(Gr.create(n.doc,d)),t.dispatch(n),!0},bg=e=>{let t="";return e.descendants(o=>{o.isText&&(t+=o.text)}),t},Js=(e,t)=>ig(()=>{let r=Array.from({length:6},(s,a)=>{let l=a+1;return{key:`heading-${l}`,label:e("blockType.heading",{level:l})||`Heading ${l}`,icon:B[`heading-${l}`]||"ri-heading",group:"transform",isActive:sg(l),isAvailable:Ys,transform:ug(l)}}),n=[{key:"paragraph",label:e("blockType.paragraph")||"Paragraph",icon:B.paragraph,group:"transform",isActive:ag,isAvailable:Ys,transform:fg},...r,{key:"code-block",label:e("blockType.codeBlock")||"Code Block",icon:B.codeMirror,group:"transform",isActive:lg,isAvailable:dg,transform:hg},{key:"blockquote",label:e("blockType.blockquote")||"Quote",icon:B.blockquote,group:"transform",isActive:cg,isAvailable:mg,transform:gg},{key:"bullet-list",label:e("blockType.bulletList")||"Bullet List",icon:B["list-bullet"],group:"transform",isActive:Ur("bullet"),isAvailable:qr,transform:s=>t.toggleBulletList?.enabled?.()?(t.toggleBulletList(),!0):!1},{key:"ordered-list",label:e("blockType.orderedList")||"Ordered List",icon:B["list-ordered"],group:"transform",isActive:Ur("ordered"),isAvailable:qr,transform:s=>t.toggleOrderedList?.enabled?.()?(t.toggleOrderedList(),!0):!1},{key:"task-list",label:e("blockType.taskList")||"Task List",icon:B["list-task"],group:"transform",isActive:Ur("task"),isAvailable:qr,transform:s=>t.toggleTaskList?.enabled?.()?(t.toggleTaskList(),!0):!1}],i=[{key:"delete",label:e("blockType.delete")||"Delete",icon:"ri-delete-bin-line",group:"actions",action:pg}];return[...n,...i]},[e,t]);import{Fragment as Pg,jsx as Q,jsxs as oa}from"react/jsx-runtime";var na=Sg(()=>{let{view:e}=wg({autoUpdate:!0}),t=Cg(Ee),o=t?.getPluginState(),[r,n]=ta(!1),[i,s]=ta(null),a=kg(),l=Js(wt,a),c=ea(null),d=ea(o),m=ot(()=>{if(e&&t&&o&&o.pos!==null&&o.node){let C=e.state.tr;C.setSelection(xg.create(C.doc,o.pos)),e.dispatch(C)}},[e,t,o]),p=ot(C=>{if(e&&o&&o.pos!==null&&o.node&&o.node.isBlock){e.dom.classList.add("rme-dragging"),m();let w=e.nodeDOM(o.pos);w&&yg(w)&&(C.dataTransfer&&(C.dataTransfer.effectAllowed="move"),Qs(e,o,C),Xs(e,o))}},[e,o,m]),f=ot(()=>{e&&e.dom.classList.remove("rme-dragging")},[e]),u=ot(C=>{let w=d.current;if(!e||!w||w.pos===null||!w.node)return;let T=l.find(X=>X.key===C);if(!T)return;let R=e.state.tr,N={view:e,pos:w.pos,node:w.node,tr:R},D=!1;T.group==="transform"&&T.transform?D=T.transform(N):T.group==="actions"&&T.action&&(D=T.action(N)),D&&n(!1)},[e,l]);Zs(()=>{r||(d.current=o)},[o,r]),Zs(()=>{if(r){let C=d.current;C?.rect&&s({left:C.rect.left-38,top:C.rect.top})}else s(null)},[r]);let y=r?d.current:o,b=vo(()=>{let C=y?.node;return C?l.filter(w=>w.group==="transform"&&(!w.isAvailable||w.isAvailable(C))):[]},[l,y?.node]),x=vo(()=>{let C=y?.node;return C?l.filter(w=>w.group==="actions"&&(!w.isAvailable||w.isAvailable(C))):[]},[l,y?.node]),E=vo(()=>b.reduce((C,w)=>{let T=w.key.startsWith("heading")?"text":w.key.includes("list")?"list":"other";return C[T]||(C[T]=[]),C[T].push(w),C},{}),[b]),k={text:wt("blockTypeGroup.text")||"Text",list:wt("blockTypeGroup.list")||"List",other:wt("blockTypeGroup.other")||"Other"},h=vo(()=>{if(!y?.node)return[];let C=[],w=[];return Object.entries(E).forEach(([T,I],R)=>{R>0&&w.push({type:"divider"}),w.push({type:"group",label:k[T],children:I.map(N=>({key:N.key,label:N.label,icon:Q("i",{className:N.icon})}))})}),w.length>0&&C.push({key:"transform",label:wt("blockType.transformTo")||"Transform to",icon:Q("i",{className:"ri-exchange-line"}),children:w}),x.length>0&&(C.push({type:"divider"}),x.forEach(T=>{C.push({key:T.key,label:T.label,icon:Q("i",{className:T.icon}),danger:T.key==="delete"})})),C},[y?.node,E,x,k]),g=ot(({key:C})=>{u(C)},[u]),S=ot(()=>{if(!y?.node)return null;let C=y.node.type?.name||"";y.node.type?.name==="heading"&&(C=`heading-${y.node.attrs?.level}`),y.node.type?.name==="list"&&(C=`list-${y.node.attrs?.kind}`);let w=B[C];return w?Q("i",{className:w}):null},[y?.node]);return!e||!y?.node?null:oa(Pg,{children:[Q(Mg,{}),Q(Eg,{menu:{items:h,onClick:g,className:"rme-block-handler-menu"},open:r,trigger:["click"],onOpenChange:C=>n(C),placement:"bottomLeft",getPopupContainer:C=>C.parentElement||document.body,children:oa(Tg,{ref:c,className:"rme-block-handler",draggable:"true",onClick:()=>n(!r),onDragStart:p,onDragEnd:f,style:{position:"fixed",left:`${i?.left??(o?.rect?.left?o.rect.left-38:0)}px`,top:`${i?.top??o?.rect?.top??0}px`},children:[Q(vg,{onClick:m,children:S()}),Q("div",{className:"rme-draggable-handler",children:Q("i",{className:"ri-draggable"})})]},"rme-block-handler")})]})}),Tg=ra.div`
|
|
1716
|
+
`),o.write("```"),o.closeBlock(r)):(o.wrapBlock(" "," ",r,()=>o.renderContent(r)),o.closeBlock(r));o.ensureNewLine()}createDecorations(o){if(this.options.hideDecoration)return Eo.empty;let r=Ks({types:this.type,selection:o.selection});if(!r||r.node.attrs["front-matter"]===!0)return Eo.empty;if(!zs||zs.length<=1)return Eo.empty;let{create:n,destroy:i}=$s(r),s=Hh.widget(r.pos,n,{ignoreSelection:!0,stopEvent:()=>!0,key:"language-menu",destroy:i});return Eo.create(o.doc,[s])}};ce=v([Ih({defaultOptions:{hideDecoration:!1,extensions:null,toggleName:"paragraph",useProsemirrorHistoryKey:!1,onCodemirrorViewLoad:()=>{},showCopyButton:!0},staticKeys:[],handlerKeys:[],customHandlerKeys:[]})],ce);function Kh(e){let t=e?.typewriterScroll??{},o=new J(t),r=t.enabled===!0?[o.createCodeMirrorExtension()]:[];return zh(()=>[new Fh({}),new $h({content:"codeMirror"}),new ne({}),new ce({hideDecoration:!0,showCopyButton:!1,extensions:[Ai,Vh(),...r],onCodemirrorViewLoad:e?.onCodemirrorViewLoad,commandKeymapOptions:{overrideShortcutMap:e?.overrideShortcutMap,disableAllBuildInShortcuts:e?.disableAllBuildInShortcuts,clipboardReadFunction:e?.clipboardReadFunction}}),o])}var So=e=>{let t=Kh(e);return{manager:t,stringToDoc:n=>{let i=t.schema,s={language:e?.language||"markdown"},a=n?i.text(n):void 0;return i.nodes.doc.create({},i.nodes.codeMirror.create(s,a))},docToString:n=>n.textContent,view:"SourceCode"}};import{jsx as Se,jsxs as Jh}from"react/jsx-runtime";var[jh,Qh]=Dn(({props:e})=>({...e})),Xh=Us(e=>{let{markdownToolBar:t,styleToken:o,textContainerProps:r={}}=e,{content:n,markText:i,hooks:s,isTesting:a,editable:l}=Qh(),c;try{c=i.stringToDoc(n)}catch(d){return Se(Re,{hasError:!0,error:d,...e.errorHandler||{}})}return Se(Re,{...e.errorHandler||{},children:Se(En,{...o,children:Jh(Uh,{manager:i.manager,initialContent:c,hooks:s,editable:l,onChange:e.onChange,autoRender:!1,children:[Se(Vn,{...r}),t||null,a?Se(Wh,{}):null]})})})}),Yh=e=>{let{content:t,delegate:o,isTesting:r,hooks:n,markdownToolBar:i,styleToken:s=To,sourceCodeTextContainerProps:a={}}=e,l=Gh(()=>o??So(),[o]),c=qh(d=>{try{e.onChange?.(d)}catch(m){console.error(m)}},[l,e]);return Se(jh,{content:t,isTesting:r,markText:l,hooks:n,children:Se(Xh,{styleToken:s,textContainerProps:a,markdownToolBar:i,onChange:c,errorHandler:e.errorHandler})})},Ur=Us(Yh);import{useRemirrorContext as Zh}from"@rme-sdk/react-core";import{useEffect as eg}from"react";var qs=e=>{let t=Zh();eg(()=>{e&&e(t)},[e,t])};import{ProsemirrorDevTools as Ly}from"@rme-sdk/dev";import{Remirror as _y}from"@rme-sdk/react";import{memo as By,useCallback as Oy,useEffect as Hy,useMemo as Dy}from"react";import{isHTMLElement as bg}from"@ocavue/utils";import{NodeSelection as yg}from"@rme-sdk/pm/state";import{useCommands as xg,useExtension as kg,useRemirrorContext as Cg}from"@rme-sdk/react-core";import{t as wt}from"i18next";import{memo as wg,useCallback as ot,useEffect as ea,useMemo as vo,useRef as ta,useState as oa}from"react";import ra from"styled-components";import{Dropdown as Eg}from"zens";import{isHTMLElement as Qs}from"@ocavue/utils";import{Fragment as tg,Slice as og}from"@rme-sdk/pm";import{NodeSelection as rg}from"@rme-sdk/pm/state";function Gs(e){let t=e.ownerDocument.defaultView;if(!t)return;let r=t.getComputedStyle(e).display;return r==="contents"&&e.childElementCount===1?e.firstElementChild:r==="none"?void 0:e}function js(e,t){let{top:o,bottom:r,left:n,right:i}=se(t),s=i-n,a=r-o,l=n,c=o,{clientX:d,clientY:m}=e,p=t.ownerDocument,f=p.createElement("div"),u=Math.round(l-d),y=Math.round(c-m),b=Math.max(u,0),x=Math.max(y,0);Object.assign(f.style,{position:"fixed",top:"-1000vh",left:"-1000vw",pointerEvents:"none",zIndex:"2147483647",borderLeft:`${b}px solid transparent`,borderTop:`${x}px solid transparent`,boxSizing:"border-box",width:`${s+b}px`,height:`${a+x}px`});let[E,k]=oi(t,!0);E.style.setProperty("opacity","0.7","important"),E.style.setProperty("margin","0","important"),E.style.setProperty("outline-color","transparent","important"),p.body.appendChild(f),f.appendChild(E),ri(f,k),e.dataTransfer?.setDragImage(f,Math.max(-u,0),Math.max(-y,0)),requestAnimationFrame(()=>{f.remove()})}function Xs(e,t,o){if(!o.dataTransfer)return;let{pos:r}=t;if(r==null)return;let n=e.nodeDOM(r);if(!n||!Qs(n))return;let i=Gs(n);!i||!Qs(i)||(o.dataTransfer.clearData(),o.dataTransfer.setData("text/html",i.outerHTML),o.dataTransfer.effectAllowed="copyMove",js(o,i))}function Ys(e,t){let{node:o,pos:r}=t,n={slice:new og(tg.from(o),0,0),move:!0,node:rg.create(e.state.doc,r)};e.dragging=n}import{TextSelection as jr}from"@rme-sdk/pm/state";import{useCommands as zR}from"@rme-sdk/react-core";import{useMemo as ng}from"react";import{useTranslation as UR}from"react-i18next";var ig=e=>t=>t.type.name==="heading"&&t.attrs.level===e,sg=e=>e.type.name==="paragraph",ag=e=>e.type.name==="codeMirror",lg=e=>e.type.name==="blockquote",qr=e=>t=>t.type.name==="list"&&t.attrs.kind===e,Js=e=>["paragraph","heading","codeMirror","blockquote","list"].includes(e.type.name),Gr=e=>["paragraph","heading","codeMirror","blockquote","list"].includes(e.type.name),cg=e=>["paragraph","heading","blockquote","list"].includes(e.type.name),dg=e=>["paragraph","heading","codeMirror","list"].includes(e.type.name),mg=e=>{let{view:t,pos:o,node:r,tr:n}=e;n.delete(o,o+r.nodeSize);let i=Math.max(0,Math.min(o,n.doc.content.size));return n.setSelection(jr.create(n.doc,i)),t.dispatch(n),t.focus(),!0},pg=e=>t=>{let{view:o,pos:r,tr:n}=t,i=o.state.schema.nodes.heading;return i?(n.setBlockType(r,r+t.node.nodeSize,i,{level:e}),o.dispatch(n),!0):!1},ug=e=>{let{view:t,pos:o,tr:r}=e,n=t.state.schema.nodes.paragraph;return n?(r.setBlockType(o,o+e.node.nodeSize,n),t.dispatch(r),!0):!1},fg=e=>{let{view:t,pos:o,node:r,tr:n}=e,i=t.state.schema.nodes.codeMirror;if(!i)return!1;let s=gg(r);n.delete(o,o+r.nodeSize);let a=i.create({language:""},t.state.schema.text(s));n.insert(o,a);let l=o+1;return n.setSelection(jr.create(n.doc,l)),t.dispatch(n),!0},hg=e=>{let{view:t,pos:o,node:r,tr:n}=e,i=t.state.schema.nodes.blockquote,s=t.state.schema.nodes.paragraph;if(!i||!s)return!1;let a=r.content,l=s.create(null,a),c=i.create(null,l);n.delete(o,o+r.nodeSize),n.insert(o,c);let d=o+1;return n.setSelection(jr.create(n.doc,d)),t.dispatch(n),!0},gg=e=>{let t="";return e.descendants(o=>{o.isText&&(t+=o.text)}),t},Zs=(e,t)=>ng(()=>{let r=Array.from({length:6},(s,a)=>{let l=a+1;return{key:`heading-${l}`,label:e("blockType.heading",{level:l})||`Heading ${l}`,icon:B[`heading-${l}`]||"ri-heading",group:"transform",isActive:ig(l),isAvailable:Js,transform:pg(l)}}),n=[{key:"paragraph",label:e("blockType.paragraph")||"Paragraph",icon:B.paragraph,group:"transform",isActive:sg,isAvailable:Js,transform:ug},...r,{key:"code-block",label:e("blockType.codeBlock")||"Code Block",icon:B.codeMirror,group:"transform",isActive:ag,isAvailable:cg,transform:fg},{key:"blockquote",label:e("blockType.blockquote")||"Quote",icon:B.blockquote,group:"transform",isActive:lg,isAvailable:dg,transform:hg},{key:"bullet-list",label:e("blockType.bulletList")||"Bullet List",icon:B["list-bullet"],group:"transform",isActive:qr("bullet"),isAvailable:Gr,transform:s=>t.toggleBulletList?.enabled?.()?(t.toggleBulletList(),!0):!1},{key:"ordered-list",label:e("blockType.orderedList")||"Ordered List",icon:B["list-ordered"],group:"transform",isActive:qr("ordered"),isAvailable:Gr,transform:s=>t.toggleOrderedList?.enabled?.()?(t.toggleOrderedList(),!0):!1},{key:"task-list",label:e("blockType.taskList")||"Task List",icon:B["list-task"],group:"transform",isActive:qr("task"),isAvailable:Gr,transform:s=>t.toggleTaskList?.enabled?.()?(t.toggleTaskList(),!0):!1}],i=[{key:"delete",label:e("blockType.delete")||"Delete",icon:"ri-delete-bin-line",group:"actions",action:mg}];return[...n,...i]},[e,t]);import{jsx as de,jsxs as vg}from"react/jsx-runtime";var na=wg(()=>{let{view:e}=Cg({autoUpdate:!0}),t=kg(Ee),o=t?.getPluginState(),[r,n]=oa(!1),[i,s]=oa(null),a=xg(),l=Zs(wt,a),c=ta(null),d=ta(o),m=ot(()=>{if(e&&t&&o&&o.pos!==null&&o.node){let C=e.state.tr;C.setSelection(yg.create(C.doc,o.pos)),e.dispatch(C)}},[e,t,o]),p=ot(C=>{if(e&&o&&o.pos!==null&&o.node&&o.node.isBlock){e.dom.classList.add("rme-dragging"),m();let w=e.nodeDOM(o.pos);w&&bg(w)&&(C.dataTransfer&&(C.dataTransfer.effectAllowed="move"),Xs(e,o,C),Ys(e,o))}},[e,o,m]),f=ot(()=>{e&&e.dom.classList.remove("rme-dragging")},[e]),u=ot(C=>{let w=d.current;if(!e||!w||w.pos===null||!w.node)return;let T=l.find(Q=>Q.key===C);if(!T)return;let R=e.state.tr,N={view:e,pos:w.pos,node:w.node,tr:R},V=!1;T.group==="transform"&&T.transform?V=T.transform(N):T.group==="actions"&&T.action&&(V=T.action(N)),V&&n(!1)},[e,l]);ea(()=>{r||(d.current=o)},[o,r]),ea(()=>{if(r){let C=d.current;C?.rect&&s({left:C.rect.left-38,top:C.rect.top})}else s(null)},[r]);let y=r?d.current:o,b=vo(()=>{let C=y?.node;return C?l.filter(w=>w.group==="transform"&&(!w.isAvailable||w.isAvailable(C))):[]},[l,y?.node]),x=vo(()=>{let C=y?.node;return C?l.filter(w=>w.group==="actions"&&(!w.isAvailable||w.isAvailable(C))):[]},[l,y?.node]),E=vo(()=>b.reduce((C,w)=>{let T=w.key.startsWith("heading")?"text":w.key.includes("list")?"list":"other";return C[T]||(C[T]=[]),C[T].push(w),C},{}),[b]),k={text:wt("blockTypeGroup.text")||"Text",list:wt("blockTypeGroup.list")||"List",other:wt("blockTypeGroup.other")||"Other"},h=vo(()=>{if(!y?.node)return[];let C=[],w=[];return Object.entries(E).forEach(([T,I],R)=>{R>0&&w.push({type:"divider"}),w.push({key:`group-${T}`,label:k[T],disabled:!0}),I.forEach(N=>{w.push({key:N.key,label:N.label,icon:de("i",{className:N.icon})})})}),w.length>0&&C.push({key:"transform",label:wt("blockType.transformTo")||"Transform to",icon:de("i",{className:"ri-exchange-line"}),children:w}),x.length>0&&(C.push({type:"divider"}),x.forEach(T=>{C.push({key:T.key,label:T.label,icon:de("i",{className:T.icon}),danger:T.key==="delete"})})),C},[y?.node,E,x,k]),g=ot(C=>{u(C.key)},[u]),S=ot(()=>{if(!y?.node)return null;let C=y.node.type?.name||"";y.node.type?.name==="heading"&&(C=`heading-${y.node.attrs?.level}`),y.node.type?.name==="list"&&(C=`list-${y.node.attrs?.kind}`);let w=B[C];return w?de("i",{className:w}):null},[y?.node]);return!e||!y?.node?null:de(Eg,{menu:{items:h,onClick:g},trigger:["click"],placement:"bottomLeft",getPopupContainer:()=>document.body,raw:!0,open:r,onOpenChange:n,triggerRef:c,children:vg(Sg,{ref:c,className:"rme-block-handler",draggable:"true",onClick:()=>n(!r),onDragStart:p,onDragEnd:f,style:{position:"fixed",left:`${i?.left??(o?.rect?.left?o.rect.left-38:0)}px`,top:`${i?.top??o?.rect?.top??0}px`},children:[de(Tg,{onClick:m,children:S()}),de("div",{className:"rme-draggable-handler",children:de("i",{className:"ri-draggable"})})]},"rme-block-handler")})}),Sg=ra.div`
|
|
1717
1717
|
display: flex;
|
|
1718
1718
|
align-items: center;
|
|
1719
1719
|
justify-content: center;
|
|
@@ -1738,7 +1738,7 @@ ${n}`);return bu(i,o)}function xu(e,t){if(t.length===0||e.length===0)return;let
|
|
|
1738
1738
|
border-radius: ${e=>e.theme.smallBorderRadius};
|
|
1739
1739
|
cursor: grab;
|
|
1740
1740
|
}
|
|
1741
|
-
`,
|
|
1741
|
+
`,Tg=ra.div`
|
|
1742
1742
|
display: flex;
|
|
1743
1743
|
align-items: center;
|
|
1744
1744
|
justify-content: center;
|
|
@@ -1746,56 +1746,14 @@ ${n}`);return bu(i,o)}function xu(e,t){if(t.length===0||e.length===0)return;let
|
|
|
1746
1746
|
width: 18px;
|
|
1747
1747
|
border-radius: ${e=>e.theme.smallBorderRadius};
|
|
1748
1748
|
cursor: pointer;
|
|
1749
|
-
|
|
1750
|
-
.rme-block-handler-menu .ant-menu-sub,
|
|
1751
|
-
.rme-block-handler-menu .ant-dropdown-menu-sub,
|
|
1752
|
-
.rme-block-handler-menu .ant-dropdown-menu-vertical,
|
|
1753
|
-
.ant-dropdown-menu-submenu-popup .ant-dropdown-menu,
|
|
1754
|
-
.ant-dropdown .ant-dropdown-menu-vertical {
|
|
1755
|
-
max-height: 300px !important;
|
|
1756
|
-
overflow-y: auto !important;
|
|
1757
|
-
}
|
|
1758
|
-
|
|
1759
|
-
.rme-block-handler-menu .ant-menu-sub::-webkit-scrollbar,
|
|
1760
|
-
.rme-block-handler-menu .ant-dropdown-menu-sub::-webkit-scrollbar,
|
|
1761
|
-
.rme-block-handler-menu .ant-dropdown-menu-vertical::-webkit-scrollbar,
|
|
1762
|
-
.ant-dropdown-menu-submenu-popup .ant-dropdown-menu::-webkit-scrollbar,
|
|
1763
|
-
.ant-dropdown .ant-dropdown-menu-vertical::-webkit-scrollbar {
|
|
1764
|
-
width: 4px;
|
|
1765
|
-
}
|
|
1766
|
-
|
|
1767
|
-
.rme-block-handler-menu .ant-menu-sub::-webkit-scrollbar-track,
|
|
1768
|
-
.rme-block-handler-menu .ant-dropdown-menu-sub::-webkit-scrollbar-track,
|
|
1769
|
-
.rme-block-handler-menu .ant-dropdown-menu-vertical::-webkit-scrollbar-track,
|
|
1770
|
-
.ant-dropdown-menu-submenu-popup .ant-dropdown-menu::-webkit-scrollbar-track,
|
|
1771
|
-
.ant-dropdown .ant-dropdown-menu-vertical::-webkit-scrollbar-track {
|
|
1772
|
-
background: transparent;
|
|
1773
|
-
}
|
|
1774
|
-
|
|
1775
|
-
.rme-block-handler-menu .ant-menu-sub::-webkit-scrollbar-thumb,
|
|
1776
|
-
.rme-block-handler-menu .ant-dropdown-menu-sub::-webkit-scrollbar-thumb,
|
|
1777
|
-
.rme-block-handler-menu .ant-dropdown-menu-vertical::-webkit-scrollbar-thumb,
|
|
1778
|
-
.ant-dropdown-menu-submenu-popup .ant-dropdown-menu::-webkit-scrollbar-thumb,
|
|
1779
|
-
.ant-dropdown .ant-dropdown-menu-vertical::-webkit-scrollbar-thumb {
|
|
1780
|
-
background: #d9d9d9;
|
|
1781
|
-
border-radius: 2px;
|
|
1782
|
-
}
|
|
1783
|
-
|
|
1784
|
-
.rme-block-handler-menu .ant-menu-sub::-webkit-scrollbar-thumb:hover,
|
|
1785
|
-
.rme-block-handler-menu .ant-dropdown-menu-sub::-webkit-scrollbar-thumb:hover,
|
|
1786
|
-
.rme-block-handler-menu .ant-dropdown-menu-vertical::-webkit-scrollbar-thumb:hover,
|
|
1787
|
-
.ant-dropdown-menu-submenu-popup .ant-dropdown-menu::-webkit-scrollbar-thumb:hover,
|
|
1788
|
-
.ant-dropdown .ant-dropdown-menu-vertical::-webkit-scrollbar-thumb:hover {
|
|
1789
|
-
background: #bfbfbf;
|
|
1790
|
-
}
|
|
1791
|
-
`});import{useExtension as Ng,useRemirrorContext as Rg}from"@rme-sdk/react-core";import{useCallback as Ig,useEffect as Ag,useMemo as Lg,useRef as _g,useState as Bg}from"react";import{usePopper as Og}from"react-popper";import Hg from"styled-components";import{Fragment as Dg,jsx as jr}from"react/jsx-runtime";var ia=()=>{let{view:e,getState:t,commands:o}=Rg({autoUpdate:!0});if(!e)return;let r=t(),n=Ng(le),i=n.getPluginState(),s=_g(null);Ag(()=>{if(!s)return;let f=u=>{s.current&&(!u.target||!(u.target instanceof Node)||!s.current.contains(u?.target))&&be(e,n.pluginKey,{type:"close"})};return document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f)}},[e,s,n.pluginKey]);let[a,l]=Bg(null),c=Lg(()=>{let f=e.domAtPos(r.selection.to)?.node,u=e.state.selection.to,y=e.coordsAtPos(u).left;if(!(f instanceof HTMLElement))return;let{top:b,height:x}=f.getBoundingClientRect();return{getBoundingClientRect(){return{top:b,right:y,bottom:b,left:y,width:0,height:x,x:y,y:b,toJSON:()=>JSON.stringify({top:b,right:y,bottom:b,left:y,width:0,height:x,x:y,y:b})}}}},[e,r]),{styles:d,attributes:m}=Og(c,a,{placement:"bottom-start",modifiers:[{name:"flip",enabled:!0},{name:"preventOverflow"}]}),p=Ig(f=>{i.open&&(be(e,n.pluginKey,{type:"close"}),f?.insertSlash&&e.dispatch(e.state.tr.insertText("/").setMeta(n.pluginKey,{type:"close"})),e.focus())},[e,i.open,n.pluginKey]);return jr(Dg,{children:i.open?jr(Vg,{ref:l,style:{...d.popper},...m.popper,children:jr(Ji,{rootRef:s,commands:o,closeMenu:p})}):null})},Vg=Hg.div`
|
|
1749
|
+
`;import{useExtension as Mg,useRemirrorContext as Pg}from"@rme-sdk/react-core";import{useCallback as Ng,useEffect as Rg,useMemo as Ig,useRef as Ag,useState as Lg}from"react";import{usePopper as _g}from"react-popper";import Bg from"styled-components";import{Fragment as Hg,jsx as Qr}from"react/jsx-runtime";var ia=()=>{let{view:e,getState:t,commands:o}=Pg({autoUpdate:!0});if(!e)return;let r=t(),n=Mg(ae),i=n.getPluginState(),s=Ag(null);Rg(()=>{if(!s)return;let f=u=>{s.current&&(!u.target||!(u.target instanceof Node)||!s.current.contains(u?.target))&&be(e,n.pluginKey,{type:"close"})};return document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f)}},[e,s,n.pluginKey]);let[a,l]=Lg(null),c=Ig(()=>{let f=e.domAtPos(r.selection.to)?.node,u=e.state.selection.to,y=e.coordsAtPos(u).left;if(!(f instanceof HTMLElement))return;let{top:b,height:x}=f.getBoundingClientRect();return{getBoundingClientRect(){return{top:b,right:y,bottom:b,left:y,width:0,height:x,x:y,y:b,toJSON:()=>JSON.stringify({top:b,right:y,bottom:b,left:y,width:0,height:x,x:y,y:b})}}}},[e,r]),{styles:d,attributes:m}=_g(c,a,{placement:"bottom-start",modifiers:[{name:"flip",enabled:!0},{name:"preventOverflow"}]}),p=Ng(f=>{i.open&&(be(e,n.pluginKey,{type:"close"}),f?.insertSlash&&e.dispatch(e.state.tr.insertText("/").setMeta(n.pluginKey,{type:"close"})),e.focus())},[e,i.open,n.pluginKey]);return Qr(Hg,{children:i.open?Qr(Og,{ref:l,style:{...d.popper},...m.popper,children:Qr(Zi,{rootRef:s,commands:o,closeMenu:p})}):null})},Og=Bg.div`
|
|
1792
1750
|
border-radius: 4px;
|
|
1793
1751
|
border: 1px solid ${e=>e.theme.slashMenuBorderColor};
|
|
1794
1752
|
z-index: 1000;
|
|
1795
|
-
`;import{PositionerPortal as eb,useCommands as tb,useMultiPositioner as ob}from"@rme-sdk/react";import{useEffect as rb}from"react";import{useCommands as
|
|
1753
|
+
`;import{PositionerPortal as eb,useCommands as tb,useMultiPositioner as ob}from"@rme-sdk/react";import{useEffect as rb}from"react";import{useCommands as Dg}from"@rme-sdk/react";import{useRef as Vg,useState as Fg}from"react";import{useTranslation as $g}from"react-i18next";import{Dropdown as zg}from"zens";import{jsx as Mo}from"react/jsx-runtime";var Kg=e=>{let{positioner:t}=e,o=Dg(),{t:r}=$g(),[n,i]=Fg(!1),s=Vg(null),a=[{key:"insertColumnBefore",label:r("table.insertColumnBefore")},{key:"insertColumnAfter",label:r("table.insertColumnAfter")},{key:"insertRowBefore",label:r("table.insertRowBefore")},{key:"insertRowAfter",label:r("table.insertRowAfter")},{type:"divider"},{key:"deleteColumn",label:r("table.deleteColumn"),danger:!0},{key:"deleteRow",label:r("table.deleteRow"),danger:!0}],l=f=>{switch(f.key){case"insertColumnBefore":o.addTableColumnBefore();break;case"insertColumnAfter":o.addTableColumnAfter();break;case"insertRowBefore":o.addTableRowBefore();break;case"insertRowAfter":o.addTableRowAfter();break;case"deleteColumn":o.deleteTableColumn();break;case"deleteRow":o.deleteTableRow();break}},{ref:c,key:d,x:m,y:p}=t;return Mo("div",{ref:c,style:{position:"absolute",left:m,top:p,width:20,height:20,zIndex:1},children:Mo(zg,{menu:{items:a,onClick:l},trigger:["click"],raw:!0,open:n,onOpenChange:i,triggerRef:s,getPopupContainer:()=>document.body,children:Mo("div",{ref:s,onMouseDown:f=>{f.preventDefault()},onClick:()=>i(!n),style:{cursor:"pointer"},children:Mo("i",{className:"ri-equalizer-line"})})})},d)},sa=Kg;import{useCommands as Wg}from"@rme-sdk/react";import Ug from"styled-components";import{Tooltip as qg}from"zens";import{jsx as Xr}from"react/jsx-runtime";var Gg=Ug.div`
|
|
1796
1754
|
position: absolute;
|
|
1797
1755
|
color: ${e=>e.theme.dangerColor};
|
|
1798
|
-
`;function jg(e){let{positioner:t}=e,o=Wg(),{ref:r,key:n,x:i,y:s}=t;return
|
|
1756
|
+
`;function jg(e){let{positioner:t}=e,o=Wg(),{ref:r,key:n,x:i,y:s}=t;return Xr(Gg,{ref:r,style:{left:i-15+t.width/2,top:s+t.height,width:20,height:20},onMouseDown:a=>{a.preventDefault(),o.deleteTable()},children:Xr(qg,{title:"delete",children:Xr("i",{className:"ri-delete-bin-line"})})},n)}var aa=jg;import{Positioner as Po,hasStateChanged as Qg,isPositionVisible as Xg}from"@rme-sdk/extension-positioner";import{findParentNodeOfType as ca,isElementDomNode as Yr}from"@rme-sdk/main";function Yg(e){return ca({selection:e,types:"table"})}function Jg(e){return ca({selection:e,types:["tableHeaderCell","tableCell"]})}var da={y:-999999,x:-999999,width:0,height:0},la={...da,left:-999999,top:-999999,bottom:-999999,right:-999999},Zg={...da,rect:{...la,toJSON:()=>la},visible:!1},ma=Po.create({hasChanged:Qg,getActive(e){let{state:t,view:o}=e,{selection:r}=t,n=Yg(r);if(!n)return Po.EMPTY;let i=Jg(r);if(!i)return Po.EMPTY;let{pos:s}=i,a=o.nodeDOM(n.pos),l=o.nodeDOM(s);if(!Yr(a)||!Yr(l))return Po.EMPTY;let c=a.getBoundingClientRect(),d=l.getBoundingClientRect();return[{pos:n.pos,rect:new DOMRect(c.x,c.y,c.width,c.height)},{pos:s,rect:new DOMRect(d.x,c.y,d.width,c.height)}]},getID(e){return`${e.pos}`},getPosition(e){let{view:t,data:o}=e,r=t.nodeDOM(o.pos);if(!Yr(r))return Zg;let n=r.getBoundingClientRect(),i=t.dom.getBoundingClientRect(),s=n.width,a=t.dom.scrollLeft+n.left-i.left,l=t.dom.scrollTop+n.top-i.top,c=n.height,d=new DOMRect(n.x,n.y,s,c);return{x:a,y:l,width:s,height:c,rect:d,visible:Xg(d,t.dom)}}});import{Fragment as ua,jsx as Et}from"react/jsx-runtime";var nb=({positioner:e})=>{let t=ob(e,[]),{forceUpdatePositioners:o}=tb();if(rb(()=>{o()},[o]),t.length===0)return null;let r=[aa,sa];return Et(ua,{children:t.map((n,i)=>{let s=r[i];return Et(s,{positioner:n},n.key)})})},ib=()=>Et(ua,{children:Et(eb,{children:Et(nb,{positioner:ma})})}),pa=ib;import{isString as mb}from"@rme-sdk/core";import{useCallback as pb}from"react";import ub from"styled-components";import{Ariakit as fb,Tooltip as hb}from"zens";import{useHelpers as ab}from"@rme-sdk/react-core";import{useMemo as fa}from"react";import{t as lb}from"i18next";import{isArray as WI,isEqual as UI,isFunction as sb,isString as qI}from"@rme-sdk/core";function No(e,t){return sb(e)?e(t):e}var ha=({commandName:e,active:t,enabled:o,attrs:r})=>{let{getCommandOptions:n}=ab(),i=n(e),{description:s,label:a,icon:l,shortcut:c}=i||{},d=fa(()=>({active:t,attrs:r,enabled:o,t:lb}),[t,r,o]);return fa(()=>({description:No(s,d),label:No(a,d),icon:No(l,d),shortcut:""}),[d,s,a,l])};import{isString as cb}from"@rme-sdk/core";import{jsx as db}from"react/jsx-runtime";var ga=({icon:e})=>cb(e)?db("i",{className:e}):e;import{jsx as Jr}from"react/jsx-runtime";var L=({commandName:e,active:t=!1,enabled:o,attrs:r,onSelect:n,onChange:i,icon:s,displayShortcut:a=!0,"aria-label":l,label:c,...d})=>{let m=pb(x=>{n(),i?.(x)},[n,i]),p=ha({commandName:e,active:t,enabled:o,attrs:r}),f=null;p.icon&&(f=mb(p.icon)?p.icon:p.icon.name);let u=l??p.label??"",y=c??u,b=a&&p.shortcut?` (${p.shortcut})`:"";return Jr(hb,{title:`${y}${b}`,children:Jr(gb,{"aria-label":u,disabled:!o,...d,value:e,onClick:m,children:Jr(ga,{icon:s??f})})})},gb=ub(fb.ToolbarItem)`
|
|
1799
1757
|
display: flex;
|
|
1800
1758
|
flex-direction: column;
|
|
1801
1759
|
align-items: center;
|
|
@@ -1810,7 +1768,7 @@ ${n}`);return bu(i,o)}function xu(e,t){if(t.length===0||e.length===0)return;let
|
|
|
1810
1768
|
&:hover {
|
|
1811
1769
|
background-color: ${e=>e.theme.hoverColor};
|
|
1812
1770
|
}
|
|
1813
|
-
`;import Ra from"styled-components";import{Ariakit as Ia}from"zens";import{useActive as bb,useCommands as yb}from"@rme-sdk/react-core";import{useCallback as xb}from"react";import{t as kb}from"i18next";import{jsx as Cb}from"react/jsx-runtime";var ba=({attrs:e={},...t})=>{let{insertHorizontalRule:o}=yb(),r=xb(()=>{o.enabled(e)&&o(e)},[o,e]),n=bb().codeMirror(),i=o.enabled(e);return Cb(L,{...t,label:kb("toolbar.separator"),icon:"ri-separator",commandName:"insertHorizontalRule",active:n,enabled:i,attrs:e,onSelect:r})};import{useCommands as wb,useHelpers as Eb}from"@rme-sdk/react-core";import{t as Sb}from"i18next";import{useCallback as Tb}from"react";import{jsx as vb}from"react/jsx-runtime";var ya=e=>{let{redo:t}=wb(),{redoDepth:o}=Eb(!0),r=Tb(()=>{t.enabled()&&t()},[t]),n=o()>0;return vb(L,{...e,label:Sb("toolbar.redo"),icon:"ri-arrow-go-forward-fill",commandName:"redo",active:!1,enabled:n,onSelect:r})};import{useActive as Mb,useCommands as Pb}from"@rme-sdk/react-core";import{useCallback as Nb}from"react";import{t as Rb}from"i18next";import{jsx as Ib}from"react/jsx-runtime";var xa=({...e})=>{let{toggleBlockquote:t}=Pb(),o=Nb(()=>{t.enabled()&&t()},[t]),r=Mb().blockquote(),n=t.enabled();return Ib(L,{...e,label:Rb("toolbar.blockquote"),icon:"ri-double-quotes-r",commandName:"toggleBlockquote",active:r,enabled:n,onSelect:o})};import{useActive as Ab,useCommands as Lb}from"@rme-sdk/react-core";import{useCallback as _b}from"react";import{t as Bb}from"i18next";import{jsx as Ob}from"react/jsx-runtime";var ka=e=>{let{toggleStrong:t}=Lb(),o=_b(()=>{t.enabled()&&t()},[t]),r=Ab().mdStrong(),n=t.enabled();return Ob(L,{...e,label:Bb("toolbar.bold"),icon:"ri-bold",commandName:"toggleStrong",active:r,enabled:n,onSelect:o})};import{useActive as Hb,useCommands as
|
|
1771
|
+
`;import Ra from"styled-components";import{Ariakit as Ia}from"zens";import{useActive as bb,useCommands as yb}from"@rme-sdk/react-core";import{useCallback as xb}from"react";import{t as kb}from"i18next";import{jsx as Cb}from"react/jsx-runtime";var ba=({attrs:e={},...t})=>{let{insertHorizontalRule:o}=yb(),r=xb(()=>{o.enabled(e)&&o(e)},[o,e]),n=bb().codeMirror(),i=o.enabled(e);return Cb(L,{...t,label:kb("toolbar.separator"),icon:"ri-separator",commandName:"insertHorizontalRule",active:n,enabled:i,attrs:e,onSelect:r})};import{useCommands as wb,useHelpers as Eb}from"@rme-sdk/react-core";import{t as Sb}from"i18next";import{useCallback as Tb}from"react";import{jsx as vb}from"react/jsx-runtime";var ya=e=>{let{redo:t}=wb(),{redoDepth:o}=Eb(!0),r=Tb(()=>{t.enabled()&&t()},[t]),n=o()>0;return vb(L,{...e,label:Sb("toolbar.redo"),icon:"ri-arrow-go-forward-fill",commandName:"redo",active:!1,enabled:n,onSelect:r})};import{useActive as Mb,useCommands as Pb}from"@rme-sdk/react-core";import{useCallback as Nb}from"react";import{t as Rb}from"i18next";import{jsx as Ib}from"react/jsx-runtime";var xa=({...e})=>{let{toggleBlockquote:t}=Pb(),o=Nb(()=>{t.enabled()&&t()},[t]),r=Mb().blockquote(),n=t.enabled();return Ib(L,{...e,label:Rb("toolbar.blockquote"),icon:"ri-double-quotes-r",commandName:"toggleBlockquote",active:r,enabled:n,onSelect:o})};import{useActive as Ab,useCommands as Lb}from"@rme-sdk/react-core";import{useCallback as _b}from"react";import{t as Bb}from"i18next";import{jsx as Ob}from"react/jsx-runtime";var ka=e=>{let{toggleStrong:t}=Lb(),o=_b(()=>{t.enabled()&&t()},[t]),r=Ab().mdStrong(),n=t.enabled();return Ob(L,{...e,label:Bb("toolbar.bold"),icon:"ri-bold",commandName:"toggleStrong",active:r,enabled:n,onSelect:o})};import{useActive as Hb,useCommands as Db}from"@rme-sdk/react-core";import{useCallback as Vb}from"react";import{t as Fb}from"i18next";import{jsx as $b}from"react/jsx-runtime";var Ca=e=>{let{toggleList:t}=Db(),o=Vb(()=>{t&&t({})},[t]),r=Hb().list();return $b(L,{...e,label:Fb("toolbar.bulletList"),icon:"ri-list-unordered",commandName:"toggleList",active:r,enabled:!0,onSelect:o})};import{useActive as zb,useCommands as Kb}from"@rme-sdk/react-core";import{useCallback as Wb}from"react";import{t as Ub}from"i18next";import{jsx as qb}from"react/jsx-runtime";var wa=({attrs:e={},...t})=>{let{createCodeMirror:o}=Kb(),r=Wb(()=>{o.enabled(e)&&o(e)},[o,e]),n=zb().codeMirror(),i=o.enabled(e);return qb(L,{...t,label:Ub("toolbar.codeBlock"),icon:"ri-code-box-line",commandName:"createCodeMirror",active:n,enabled:i,attrs:e,onSelect:r})};import{useActive as Gb,useCommands as jb}from"@rme-sdk/react-core";import{useCallback as Qb}from"react";import{t as Xb}from"i18next";import{jsx as Yb}from"react/jsx-runtime";var Ea=e=>{let{toggleCodeText:t}=jb(),o=Qb(()=>{t.enabled()&&t()},[t]),r=Gb().mdCodeText(),n=t.enabled();return Yb(L,{...e,label:Xb("toolbar.codeText"),icon:"ri-code-line",commandName:"toggleCodeText",active:r,enabled:n,onSelect:o})};import{useActive as Jb,useCommands as Zb}from"@rme-sdk/react-core";import{useCallback as ey}from"react";import{t as ty}from"i18next";import{jsx as oy}from"react/jsx-runtime";var Sa=({attrs:e,...t})=>{let{toggleHeading:o}=Zb(),r=ey(()=>{o.enabled(e)&&o(e)},[o,e]),n=Jb().heading(e),i=o.enabled(e);return oy(L,{...t,label:ty("toolbar.heading"),icon:"ri-heading",commandName:"toggleHeading",active:n,enabled:i,attrs:e,onSelect:r})};import{useActive as ry,useCommands as ny}from"@rme-sdk/react-core";import{useCallback as iy}from"react";import{t as sy}from"i18next";import{jsx as ay}from"react/jsx-runtime";var Ta=e=>{let{toggleEmphasis:t}=ny(),o=iy(()=>{t.enabled()&&t()},[t]),r=ry().mdEm(),n=t.enabled();return ay(L,{...e,label:sy("toolbar.italic"),icon:"ri-italic",commandName:"toggleEmphasis",active:r,enabled:n,onSelect:o})};import{useActive as ly,useCommands as cy}from"@rme-sdk/react-core";import{useCallback as dy}from"react";import{t as my}from"i18next";import{jsx as py}from"react/jsx-runtime";var va=e=>{let{toggleList:t}=cy(),o=dy(()=>{t&&t({kind:"ordered"})},[t]),r=ly().list();return py(L,{...e,label:my("toolbar.orderedList"),icon:"ri-list-ordered",commandName:"toggleList",active:r,enabled:!0,onSelect:o})};import{useActive as uy,useCommands as fy}from"@rme-sdk/react-core";import{useCallback as hy}from"react";import{t as gy}from"i18next";import{jsx as by}from"react/jsx-runtime";var Ma=e=>{let{toggleList:t}=fy(),o=hy(()=>{t&&t({kind:"task"})},[t]),r=uy().list();return by(L,{...e,label:gy("toolbar.taskList"),icon:"ri-list-check-3",commandName:"toggleList",active:r,enabled:!0,onSelect:o})};import{useCommands as yy,useHelpers as xy}from"@rme-sdk/react-core";import{t as ky}from"i18next";import{useCallback as Cy}from"react";import{jsx as wy}from"react/jsx-runtime";var Pa=e=>{let{undo:t}=yy(),{undoDepth:o}=xy(!0),r=Cy(()=>{t.enabled()&&t()},[t]),n=o()>0;return wy(L,{...e,label:ky("toolbar.undo"),icon:"ri-arrow-go-back-fill",commandName:"undo",active:!1,enabled:n,onSelect:r})};import{jsx as H,jsxs as Sy}from"react/jsx-runtime";var Aa=e=>{let{prevActions:t=null,nextActions:o=null}=e;return Sy(Ey,{className:e.className,style:e.style,children:[t,H(Pa,{}),H(ya,{}),H(Na,{render:H("div",{})}),H(Sa,{}),H(ka,{}),H(Ta,{}),H(xa,{}),H(wa,{}),H(Ea,{}),H(ba,{}),H(Na,{render:H("div",{})}),H(Ca,{}),H(va,{}),H(Ma,{}),o]})},Ey=Ra(Ia.Toolbar)`
|
|
1814
1772
|
display: flex;
|
|
1815
1773
|
flex-wrap: wrap;
|
|
1816
1774
|
max-width: 100%;
|
|
@@ -1826,4 +1784,4 @@ ${n}`);return bu(i,o)}function xu(e,t){if(t.length===0||e.length===0)return;let
|
|
|
1826
1784
|
border-right-width: 1px;
|
|
1827
1785
|
border-right-style: solid;
|
|
1828
1786
|
border-color: ${e=>e.theme.labelFontColor};
|
|
1829
|
-
`;import{useRemirrorContext as Ty}from"@rme-sdk/react";import{memo as vy}from"react";import{jsx as Py}from"react/jsx-runtime";var My=vy(({children:e,...t})=>{let{getRootProps:o}=Ty(),{key:r,...n}=o(),i=Object.assign({position:"relative",padding:"0 40px"},t.style);return Py("div",{...n,spellCheck:!1,...t,style:i,children:e})}),La=My;import{isExtension as Ny}from"@rme-sdk/core";import{createReactManager as Ry}from"@rme-sdk/react";function _a(e){return!!(Ny(e)&&e.fromMarkdown&&e.toMarkdown)}function Iy(e){let t=[];for(let o of e.extensions)_a(o)&&t.push(...o.fromMarkdown());return new It(e.schema,t)}function Ay(e){let t={};for(let o of e.extensions)_a(o)&&(t[o.name]=o.toMarkdown);return new xo(t)}var Te=(e={})=>{let t={copy:"mod-c",paste:"mod-v",undo:"mod-z",redo:"mod-shift-z",cut:"mod-x",toggleH1:"mod-1",toggleH2:"mod-2",toggleH3:"mod-3",toggleH4:"mod-4",toggleH5:"mod-5",toggleH6:"mod-6",toggleStrong:"mod-b",toggleEmphasis:"mod-i",toggleCodeText:"mod-e",toggleDelete:"mod-shift-s"},o={...e.overrideShortcutMap||{}};e.disableAllBuildInShortcuts||Object.assign(o,t),delete o.paste;let r=Ry(()=>[
|
|
1787
|
+
`;import{useRemirrorContext as Ty}from"@rme-sdk/react";import{memo as vy}from"react";import{jsx as Py}from"react/jsx-runtime";var My=vy(({children:e,...t})=>{let{getRootProps:o}=Ty(),{key:r,...n}=o(),i=Object.assign({position:"relative",padding:"0 40px"},t.style);return Py("div",{...n,spellCheck:!1,...t,style:i,children:e})}),La=My;import{isExtension as Ny}from"@rme-sdk/core";import{createReactManager as Ry}from"@rme-sdk/react";function _a(e){return!!(Ny(e)&&e.fromMarkdown&&e.toMarkdown)}function Iy(e){let t=[];for(let o of e.extensions)_a(o)&&t.push(...o.fromMarkdown());return new It(e.schema,t)}function Ay(e){let t={};for(let o of e.extensions)_a(o)&&(t[o.name]=o.toMarkdown);return new xo(t)}var Te=(e={})=>{let t={copy:"mod-c",paste:"mod-v",undo:"mod-z",redo:"mod-shift-z",cut:"mod-x",toggleH1:"mod-1",toggleH2:"mod-2",toggleH3:"mod-3",toggleH4:"mod-4",toggleH5:"mod-5",toggleH6:"mod-6",toggleStrong:"mod-b",toggleEmphasis:"mod-i",toggleCodeText:"mod-e",toggleDelete:"mod-shift-s"},o={...e.overrideShortcutMap||{}};e.disableAllBuildInShortcuts||Object.assign(o,t),delete o.paste;let r=Ry(()=>[...zr(e)],{builtin:{overrideShortcutMap:o}}),n=Iy(r),i=Ay(r);return{view:"Wysiwyg",manager:r,stringToDoc:l=>{let c=n.parse(l);return Er(c)},docToString:l=>i.serialize(l)}};import{jsx as Z,jsxs as Fy}from"react/jsx-runtime";var Vy=e=>{let{content:t,hooks:o,delegate:r,wysiwygToolBar:n,isTesting:i,editable:s=!0,wysiwygToolBarOptions:a,styleToken:l=To,wysiwygTextContainerProps:c={}}=e,d=Dy(()=>r??Te(),[r]),m=Oy(f=>{try{e.onChange?.(f)}catch(u){console.error(u)}},[d,e]);Hy(()=>{let f=d.manager.getExtension(le);f&&d?.manager?.view?.dispatch(d.manager.view.state.tr.setMeta(f.pluginKey,{stringToDoc:d.stringToDoc,docToString:d.docToString}))},[d]);let p;try{p=d.stringToDoc(t)}catch(f){return Z(Re,{hasError:!0,error:f,...e.errorHandler||{}})}return Z(Re,{...e.errorHandler||{},children:Z(vt,{...l,children:Fy(_y,{manager:d.manager,initialContent:p,hooks:o,editable:s,onChange:m,autoRender:!1,children:[a?.enable?Z(Aa,{...a?.compProps}):null,Z(La,{...c}),Z(pa,{}),Z(na,{}),Z(ia,{}),n||null,i?Z(Ly,{}):null]})})})},Zr=By(Vy);import Ba from"html-parse-stringify";import{nanoid as Qy}from"nanoid";import{jsx as tn}from"react/jsx-runtime";var m_=Wy(Ky((e,t)=>{let{initialType:o="wysiwyg",hooks:r=[],onContextMounted:n,...i}=e,[s,a]=jy(o),l=Gy(null),c=en(()=>i.delegate?i.delegate:s==="sourceCode"?So():Te(i.delegateOptions),[i.delegate,i.delegateOptions,s]),d=en(f=>{let u=l.current?.view;if(!u)return;let b=c().stringToDoc(f),x=u.state.tr.replace(0,u.state.doc.content.size,new zy(b.content,0,0));u.dispatch(x)},[c]),m=en(f=>{l.current=f,n?.(f)},[n]);Uy(t,()=>({getType:()=>s,toggleType:f=>{a(f)},setContent:f=>{f!==i.content&&d(f)},exportHtml:async()=>new Promise(f=>{let u=i.content;typeof u=="string"&&(u=Te(i.delegateOptions).stringToDoc(u));let y=$y(u),b=Ba.parse(y),x=[],E=async k=>{let h=g=>{g&&(g.name==="img"&&g.attrs?.src&&i.delegateOptions?.handleViewImgSrcUrl&&x.push((async()=>{g.attrs.src=await i.delegateOptions?.handleViewImgSrcUrl?.(g.attrs.src),g.attrs.key=Qy()})()),g.children&&E(g.children))};for(let g=0;g<k.length;g++)h(k[g])};E(b),Promise.all(x).then(k=>{f(Ba.stringify(b))}).catch(()=>{f(y)})})}));let p=qy(()=>[()=>qs(m),...r],[m,r]);return s==="preview"?tn(Oa,{doc:i.content,delegateOptions:i.delegateOptions}):s==="sourceCode"?tn(Ur,{...i,hooks:p}):tn(Zr,{...i,hooks:p})})),To={rootFontSize:"15px",rootLineHeight:"1.6"};import{ThemeProvider as Jy}from"styled-components";import{memo as Zy,useEffect as za}from"react";import Va from"i18next";import{initReactI18next as Yy}from"react-i18next";var Da={common:{loading:"Loading",accept:"Accept"},table:{insertColumnAfter:"insert column after",insertColumnBefore:"insert column before",insertRowAfter:"insert row after",insertRowBefore:"insert row before",deleteColumn:"delete column",deleteRow:"delete row"},codemirror:{searchInputPlaceholder:"Input language",frontMatterPlaceholder:"input yaml front matter"},ai:{generate:"Generate Text",stop:"Stop",retry:"Retry",regenerate:"Regenerate",preview:"Preview",error:"Error occurred",prompt:"Prompt"},toolbar:{undo:"Undo",redo:"Redo",separator:"Insert Separator",blockquote:"Blockquote",bold:"Bold",italic:"Italic",codeText:"Code Text",codeBlock:"Code Block",heading:"Heading",bulletList:"Bullet List",orderedList:"Ordered List",taskList:"Task List"},slashMenu:{searchPlaceholder:"Search menu items...",noResults:"No results",toNavigate:"to navigate",toSelect:"to select",toCancel:"to cancel"},blockType:{paragraph:"Paragraph",heading:"Heading {{level}}",codeBlock:"Code Block",blockquote:"Quote",bulletList:"Bullet List",orderedList:"Ordered List",taskList:"Task List",transformTo:"Transform to"},blockTypeGroup:{text:"Text",list:"List",other:"Other"}};async function Fa(e={},t){await Va.use(Yy).init({resources:{en:{translation:Da},...e},interpolation:{escapeValue:!1},fallbackLng:"en",...t})}function $a(e){return Va.changeLanguage(e)}import ex from"mermaid";import{jsx as tx}from"react/jsx-runtime";var M_=Zy(({theme:e,i18n:t,children:o})=>{let r=e?.mode||"light",n=r==="dark"?Lo.styledConstants:it.styledConstants,i=e?.token?{...n,...e.token}:n;return za(()=>{t?.locales&&Fa(t.locales).then(()=>{t?.language&&$a(t?.language)})},[t]),za(()=>{let s=e?.codemirrorTheme||r==="dark"?Lo.codemirrorTheme:it.codemirrorTheme;Ho(s),ex.initialize({theme:r==="dark"?"dark":"default"}),kt.emit("change-theme")},[r,e?.codemirrorTheme,Ho]),tx(Jy,{theme:i,children:o})});import{useEffect as sx,useState as ax}from"react";import{Icon as lx}from"zens";import{prosemirrorNodeToHtml as ox}from"@rme-sdk/main";import rn from"html-parse-stringify";import{normalizeReference as Ka}from"markdown-it/lib/common/utils.mjs";import rx from"mermaid";import{nanoid as on}from"nanoid";var nx={img:[{checker:(e,t)=>e.name==="img"&&e.attrs?.src&&t?.handleViewImgSrcUrl,handler:async(e,t)=>{e.attrs.src=await t?.handleViewImgSrcUrl?.(e.attrs.src),e.attrs.key=on()}},{checker:e=>e.name==="img"&&e.attrs?.["data-refer-label"],handler:async(e,t,o)=>{let r=e.attrs["data-refer-label"],n=o?.get(Ka(r));n?.href&&(e.attrs.src=n.href,n.title&&(e.attrs.title=n.title)),t?.handleViewImgSrcUrl&&e.attrs.src&&(e.attrs.src=await t.handleViewImgSrcUrl(e.attrs.src)),e.attrs.key=on(),delete e.attrs["data-refer-label"]}}],pre:[{checker:e=>e.attrs["data-type"]==="mermaid",handler:async(e,t)=>{let o=e.children?.[0]?.content||"",r=document.createElement("div");r.innerHTML=o,o=r.textContent||"";let n=await rx.render(`mermaid_${ix.count++}`,o),i=rn.parse(n.svg);e.name="div",e.attrs={key:on()},e.children=i}}]},ix={count:0},Wa=async(e,t)=>{let o=ox(e),r=rn.parse(o),n=new Map;for(let a of e.content.content)if(a.type.name==="reference_def"){let l="",c="",d="";for(let m of a.content.content)m.type.name==="reference_label"?l=m.textContent||"":m.type.name==="reference_href"?c=m.textContent||"":m.type.name==="reference_title"&&(d=m.textContent||"");l&&c&&n.set(Ka(l),{href:c,title:d})}console.log("preview",n,r);let i=[],s=a=>{let l=c=>{if(!c)return;let d=nx[c.name];if(d)for(let m of d)m.checker(c,t,n)&&i.push(m.handler(c,t,n));c.children&&s(c.children)};for(let c=0;c<a.length;c++)l(a[c])};s(r);try{return await Promise.all(i),rn.stringify(r)}catch{return o}};import{jsx as nn}from"react/jsx-runtime";var Oa=e=>{let{doc:t,delegateOptions:o}=e,[r,n]=ax(""),i=t;return typeof i=="string"&&(i=Te(o).stringToDoc(i)),sx(()=>{Wa(i,o).then(s=>{n(s)}).catch(s=>{e.onError?.(s),console.error(s)})},[e.onError]),r?nn(vt,{dangerouslySetInnerHTML:{__html:r}}):nn("div",{style:{width:"100%",minHeight:"60px",display:"flex",justifyContent:"center",alignItems:"center"},children:nn(lx.Loading3QuartersOutlined,{spin:!0,size:40})})};import{useCommands as Y_,useHelpers as J_,useKeymap as Z_,useRemirrorContext as eB}from"@rme-sdk/react";var Ha=(r=>(r.WYSIWYG="wysiwyg",r.SOURCECODE="sourceCode",r.PREVIEW="preview",r))(Ha||{});export{L as CommandButton,ga as CommandButtonIcon,m_ as Editor,zr as EditorExtensions,Ha as EditorViewType,Ke as HtmlImageExtension,co as LineListExtension,vs as MarkdownNodeExtension,We as MdImgUriExtension,W as MfCodemirrorView,Oa as Preview,En as SourceCodeThemeWrapper,Ur as SourceEditor,M_ as ThemeProvider,Zr as WysiwygEditor,vt as WysiwygThemeWrapper,Aa as WysiwygToolbar,Ms as alwaysTrue,Iy as buildMarkdownParser,Ay as buildMarkdownSerializer,Ho as changeTheme,Sn as common,Rn as computeChange,So as createSourceCodeDelegate,Kh as createSourceCodeManager,Io as createTheme,Te as createWysiwygDelegate,Lo as darkTheme,To as defaultStyleToken,rk as extractMatches,Cl as getLanguageMap,IT as isImageFileType,mo as isOrderedListNode,it as lightTheme,wl as loadLanguage,Ln as scrollCodemirrorToMatch,Dx as tableSelectorSize,ok as updateCodemirrorSearchQuery,me as updateCodemirrorSearchState,Y_ as useCommands,J_ as useHelpers,Z_ as useKeymap,eB as useRemirrorContext};
|