@milkdown/preset-commonmark 5.2.1 → 5.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/lib/index.d.ts +1 -34
- package/lib/index.es.js +73 -53
- package/lib/index.es.js.map +1 -1
- package/lib/src/index.d.ts +34 -0
- package/lib/src/index.d.ts.map +1 -0
- package/lib/{mark → src/mark}/code-inline.d.ts +1 -1
- package/lib/src/mark/code-inline.d.ts.map +1 -0
- package/lib/{mark → src/mark}/em.d.ts +1 -1
- package/lib/src/mark/em.d.ts.map +1 -0
- package/lib/src/mark/index.d.ts +6 -0
- package/lib/src/mark/index.d.ts.map +1 -0
- package/lib/{mark → src/mark}/link.d.ts +1 -1
- package/lib/src/mark/link.d.ts.map +1 -0
- package/lib/{mark → src/mark}/strong.d.ts +1 -1
- package/lib/src/mark/strong.d.ts.map +1 -0
- package/lib/{node → src/node}/blockquote.d.ts +1 -1
- package/lib/src/node/blockquote.d.ts.map +1 -0
- package/lib/{node → src/node}/bullet-list.d.ts +1 -1
- package/lib/src/node/bullet-list.d.ts.map +1 -0
- package/lib/{node → src/node}/code-fence.d.ts +1 -1
- package/lib/src/node/code-fence.d.ts.map +1 -0
- package/lib/{node → src/node}/doc.d.ts +1 -1
- package/lib/src/node/doc.d.ts.map +1 -0
- package/lib/{node → src/node}/hardbreak.d.ts +1 -1
- package/lib/src/node/hardbreak.d.ts.map +1 -0
- package/lib/{node → src/node}/heading.d.ts +1 -1
- package/lib/src/node/heading.d.ts.map +1 -0
- package/lib/{node → src/node}/hr.d.ts +1 -1
- package/lib/src/node/hr.d.ts.map +1 -0
- package/lib/{node → src/node}/image.d.ts +1 -1
- package/lib/src/node/image.d.ts.map +1 -0
- package/lib/{node → src/node}/index.d.ts +2 -2
- package/lib/src/node/index.d.ts.map +1 -0
- package/lib/{node → src/node}/list-item.d.ts +1 -1
- package/lib/src/node/list-item.d.ts.map +1 -0
- package/lib/{node → src/node}/ordered-list.d.ts +1 -1
- package/lib/src/node/ordered-list.d.ts.map +1 -0
- package/lib/{node → src/node}/paragraph.d.ts +1 -1
- package/lib/src/node/paragraph.d.ts.map +1 -0
- package/lib/{node → src/node}/text.d.ts +1 -1
- package/lib/src/node/text.d.ts.map +1 -0
- package/lib/{plugin → src/plugin}/filter-html.d.ts +0 -0
- package/lib/src/plugin/filter-html.d.ts.map +1 -0
- package/lib/src/plugin/index.d.ts +2 -0
- package/lib/src/plugin/index.d.ts.map +1 -0
- package/lib/{supported-keys.d.ts → src/supported-keys.d.ts} +0 -0
- package/lib/src/supported-keys.d.ts.map +1 -0
- package/lib/src/types.d.ts +5 -0
- package/package.json +13 -25
- package/src/mark/code-inline.ts +6 -7
- package/src/mark/link.ts +1 -2
- package/src/mark/strong.ts +1 -2
- package/src/node/blockquote.ts +1 -2
- package/src/node/bullet-list.ts +1 -1
- package/src/node/code-fence.ts +7 -6
- package/src/node/heading.ts +36 -26
- package/src/node/hr.ts +1 -2
- package/src/node/image.ts +10 -7
- package/src/node/list-item.ts +1 -2
- package/src/node/ordered-list.ts +1 -1
- package/src/node/paragraph.ts +8 -9
- package/lib/index.cjs.js +0 -261
- package/lib/index.cjs.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/mark/code-inline.d.ts.map +0 -1
- package/lib/mark/em.d.ts.map +0 -1
- package/lib/mark/index.d.ts +0 -6
- package/lib/mark/index.d.ts.map +0 -1
- package/lib/mark/link.d.ts.map +0 -1
- package/lib/mark/strong.d.ts.map +0 -1
- package/lib/node/blockquote.d.ts.map +0 -1
- package/lib/node/bullet-list.d.ts.map +0 -1
- package/lib/node/code-fence.d.ts.map +0 -1
- package/lib/node/doc.d.ts.map +0 -1
- package/lib/node/hardbreak.d.ts.map +0 -1
- package/lib/node/heading.d.ts.map +0 -1
- package/lib/node/hr.d.ts.map +0 -1
- package/lib/node/image.d.ts.map +0 -1
- package/lib/node/index.d.ts.map +0 -1
- package/lib/node/list-item.d.ts.map +0 -1
- package/lib/node/ordered-list.d.ts.map +0 -1
- package/lib/node/paragraph.d.ts.map +0 -1
- package/lib/node/text.d.ts.map +0 -1
- package/lib/plugin/filter-html.d.ts.map +0 -1
- package/lib/plugin/index.d.ts +0 -2
- package/lib/plugin/index.d.ts.map +0 -1
- package/lib/supported-keys.d.ts.map +0 -1
package/lib/index.cjs.js
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
"use strict";var Ke=Object.defineProperty,We=Object.defineProperties;var qe=Object.getOwnPropertyDescriptors;var ae=Object.getOwnPropertySymbols;var ze=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var oe=(n,r,e)=>r in n?Ke(n,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[r]=e,N=(n,r)=>{for(var e in r||(r={}))ze.call(r,e)&&oe(n,e,r[e]);if(ae)for(var e of ae(r))Pe.call(r,e)&&oe(n,e,r[e]);return n},L=(n,r)=>We(n,qe(r));Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var d=require("@milkdown/utils"),w=require("@emotion/css"),i=require("@milkdown/core"),m=require("@milkdown/prose"),je=require("remark-inline-links");function Fe(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var Ve=Fe(je);const b={HardBreak:"HardBreak",Blockquote:"Blockquote",BulletList:"BulletList",OrderedList:"OrderedList",CodeFence:"CodeFence",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",Text:"Text",CodeInline:"CodeInline",Em:"Em",Bold:"Bold",NextListItem:"NextListItem",SinkListItem:"SinkListItem",LiftListItem:"LiftListItem"},se="code_inline",A=i.createCmdKey(),ce=d.createMark(n=>{const r=n.getStyle(({palette:e,size:t,font:o})=>w.css`
|
|
2
|
-
background-color: ${e("neutral")};
|
|
3
|
-
color: ${e("background")};
|
|
4
|
-
border-radius: ${t.radius};
|
|
5
|
-
font-weight: 500;
|
|
6
|
-
font-family: ${o.code};
|
|
7
|
-
padding: 0 0.2rem;
|
|
8
|
-
`);return{id:se,schema:()=>({excludes:"_",parseDOM:[{tag:"code"}],toDOM:e=>["code",{class:n.getClassName(e.attrs,"code-inline",r)}],parseMarkdown:{match:e=>e.type==="inlineCode",runner:(e,t,o)=>{e.openMark(o),e.addText(t.value),e.closeMark(o)}},toMarkdown:{match:e=>e.type.name===se,runner:(e,t,o)=>(e.addNode("inlineCode",void 0,o.text||""),!0)}}),inputRules:e=>[m.markRule(/(?:^|[^`])(`([^`]+)`)$/,e)],commands:e=>[i.createCmd(A,()=>m.toggleMark(e))],shortcuts:{[b.CodeInline]:d.createShortcut(A,"Mod-e")}}}),V="em",H=i.createCmdKey(),le=d.createMark(n=>({id:V,schema:()=>({parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style",getAttrs:r=>r==="italic"}],toDOM:r=>["em",{class:n.getClassName(r.attrs,V)}],parseMarkdown:{match:r=>r.type==="emphasis",runner:(r,e,t)=>{r.openMark(t),r.next(e.children),r.closeMark(t)}},toMarkdown:{match:r=>r.type.name===V,runner:(r,e)=>{r.withMark(e,"emphasis")}}}),inputRules:r=>[m.markRule(/(?:^|[^_])(_([^_]+)_)$/,r),m.markRule(/(?:^|[^*])(\*([^*]+)\*)$/,r)],commands:r=>[i.createCmd(H,()=>m.toggleMark(r))],shortcuts:{[b.Em]:d.createShortcut(H,"Mod-i")}})),G=i.createCmdKey(),J=i.createCmdKey(),Q="link",ie=d.createMark(n=>{const r=n.getStyle(e=>{const t=e.palette("line");return w.css`
|
|
9
|
-
color: ${e.palette("secondary")};
|
|
10
|
-
cursor: pointer;
|
|
11
|
-
transition: all 0.4s ease-in-out;
|
|
12
|
-
font-weight: 500;
|
|
13
|
-
&:hover {
|
|
14
|
-
background-color: ${t};
|
|
15
|
-
box-shadow: 0 0.2rem ${t}, 0 -0.2rem ${t};
|
|
16
|
-
}
|
|
17
|
-
`});return{id:Q,schema:()=>({attrs:{href:{},title:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs:e=>{if(!(e instanceof HTMLElement))throw new Error;return{href:e.getAttribute("href"),title:e.getAttribute("title")}}}],toDOM:e=>["a",L(N({},e.attrs),{class:n.getClassName(e.attrs,Q,r)})],parseMarkdown:{match:e=>e.type==="link",runner:(e,t,o)=>{const a=t.url,c=t.title;e.openMark(o,{href:a,title:c}),e.next(t.children),e.closeMark(o)}},toMarkdown:{match:e=>e.type.name===Q,runner:(e,t)=>{e.withMark(t,"link",void 0,{title:t.attrs.title,url:t.attrs.href})}}}),commands:e=>[i.createCmd(G,(t="")=>m.toggleMark(e,{href:t})),i.createCmd(J,(t="")=>(o,a)=>{if(!a)return!1;const{marks:c}=o.schema;let u,s=-1;const{selection:l}=o;if(o.doc.nodesBetween(l.from,l.to,(p,y)=>{if(c.link.isInSet(p.marks))return u=p,s=y,!1}),!u)return!1;const g=u.marks.find(({type:p})=>p===e);if(!g)return!1;const h=s,f=s+u.nodeSize,{tr:k}=o,M=c.link.create(L(N({},g.attrs),{href:t}));return a(k.removeMark(h,f,g).addMark(h,f,M).setSelection(new m.TextSelection(k.selection.$anchor)).scrollIntoView()),!0})],inputRules:(e,t)=>[new m.InputRule(/\[(?<text>.*?)]\((?<href>.*?)(?=“|\))"?(?<title>[^"]+)?"?\)/,(o,a,c,u)=>{const[s,l="",g,h]=a,{tr:f}=o;if(s){const k=l||"link";f.replaceWith(c,u,t.get(i.schemaCtx).text(k)).addMark(c,k.length+c,e.create({title:h,href:g}))}return f})]}}),U="strong",D=i.createCmdKey(),de=d.createMark(n=>{const r=n.getStyle(()=>w.css`
|
|
18
|
-
font-weight: 600;
|
|
19
|
-
`);return{id:U,schema:()=>({parseDOM:[{tag:"b"},{tag:"strong"},{style:"font-style",getAttrs:e=>e==="bold"}],toDOM:e=>["strong",{class:n.getClassName(e.attrs,U,r)}],parseMarkdown:{match:e=>e.type==="strong",runner:(e,t,o)=>{e.openMark(o),e.next(t.children),e.closeMark(o)}},toMarkdown:{match:e=>e.type.name===U,runner:(e,t)=>{e.withMark(t,"strong")}}}),inputRules:e=>[m.markRule(/(?:__)([^_]+)(?:__)$/,e),m.markRule(/(?:\*\*)([^*]+)(?:\*\*)$/,e)],commands:e=>[i.createCmd(D,()=>m.toggleMark(e))],shortcuts:{[b.Bold]:d.createShortcut(D,"Mod-b")}}}),ue=[ce(),le(),de(),ie()],R="blockquote",E=i.createCmdKey(),me=d.createNode(n=>{const r=n.getStyle(e=>w.css`
|
|
20
|
-
padding-left: 1.875rem;
|
|
21
|
-
line-height: 1.75rem;
|
|
22
|
-
border-left: 4px solid ${e.palette("primary")};
|
|
23
|
-
* {
|
|
24
|
-
font-size: 1rem;
|
|
25
|
-
line-height: 1.5rem;
|
|
26
|
-
}
|
|
27
|
-
`);return{id:R,schema:()=>({content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM:e=>["blockquote",{class:n.getClassName(e.attrs,R,r)},0],parseMarkdown:{match:({type:e})=>e===R,runner:(e,t,o)=>{e.openNode(o).next(t.children).closeNode()}},toMarkdown:{match:e=>e.type.name===R,runner:(e,t)=>{e.openNode("blockquote").next(t.content).closeNode()}}}),inputRules:e=>[m.wrappingInputRule(/^\s*>\s$/,e)],commands:e=>[i.createCmd(E,()=>m.wrapIn(e))],shortcuts:{[b.Blockquote]:d.createShortcut(E,"Mod-Shift-b")}}}),T=i.createCmdKey(),ge=d.createNode(n=>{const r="bullet_list";return{id:r,schema:()=>({content:"listItem+",group:"block",parseDOM:[{tag:"ul"}],toDOM:e=>["ul",{class:n.getClassName(e.attrs,"bullet-list")},0],parseMarkdown:{match:({type:e,ordered:t})=>e==="list"&&!t,runner:(e,t,o)=>{e.openNode(o).next(t.children).closeNode()}},toMarkdown:{match:e=>e.type.name===r,runner:(e,t)=>{e.openNode("list",void 0,{ordered:!1}).next(t.content).closeNode()}}}),inputRules:e=>[m.wrappingInputRule(/^\s*([-+*])\s$/,e)],commands:e=>[i.createCmd(T,()=>m.wrapIn(e))],shortcuts:{[b.BulletList]:d.createShortcut(T,"Mod-Shift-8")}}}),Ge=["","javascript","typescript","bash","sql","json","html","css","c","cpp","java","ruby","python","go","rust","markdown"],pe=/^```(?<language>[a-z]*)?[\s\n]$/,he=/^~~~(?<language>[a-z]*)?[\s\n]$/,B=i.createCmdKey(),X="fence",fe=d.createNode((n,r)=>{const e=n.getStyle(({palette:t,mixin:o,size:a,font:c})=>{const{shadow:u,scrollbar:s,border:l}=o,{lineWidth:g,radius:h}=a;return w.css`
|
|
28
|
-
background-color: ${t("background")};
|
|
29
|
-
color: ${t("neutral")};
|
|
30
|
-
font-size: 0.85rem;
|
|
31
|
-
padding: 1.2rem 0.4rem 1.4rem;
|
|
32
|
-
border-radius: ${h};
|
|
33
|
-
font-family: ${c.typography};
|
|
34
|
-
|
|
35
|
-
* {
|
|
36
|
-
margin: 0;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.code-fence_select-wrapper {
|
|
40
|
-
position: relative;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.code-fence_value {
|
|
44
|
-
width: 10.25rem;
|
|
45
|
-
box-sizing: border-box;
|
|
46
|
-
border-radius: ${a.radius};
|
|
47
|
-
margin: 0 1.2rem 1.2rem;
|
|
48
|
-
${l()};
|
|
49
|
-
${u()};
|
|
50
|
-
cursor: pointer;
|
|
51
|
-
background-color: ${t("surface")};
|
|
52
|
-
position: relative;
|
|
53
|
-
display: flex;
|
|
54
|
-
color: ${t("neutral",.87)};
|
|
55
|
-
letter-spacing: 0.5px;
|
|
56
|
-
height: 2.625rem;
|
|
57
|
-
align-items: center;
|
|
58
|
-
|
|
59
|
-
& > *:last-child {
|
|
60
|
-
width: 2.625rem;
|
|
61
|
-
height: 100%;
|
|
62
|
-
display: flex;
|
|
63
|
-
justify-content: center;
|
|
64
|
-
align-items: center;
|
|
65
|
-
color: ${t("solid",.87)};
|
|
66
|
-
border-left: ${g} solid ${t("line")};
|
|
67
|
-
|
|
68
|
-
text-align: center;
|
|
69
|
-
transition: all 0.2s ease-in-out;
|
|
70
|
-
&:hover {
|
|
71
|
-
background: ${t("background")};
|
|
72
|
-
color: ${t("primary")};
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
> span:first-child {
|
|
77
|
-
padding-left: 1rem;
|
|
78
|
-
flex: 1;
|
|
79
|
-
font-weight: 500;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.code-fence_select-option {
|
|
84
|
-
list-style: none;
|
|
85
|
-
line-height: 2rem;
|
|
86
|
-
padding-left: 1rem;
|
|
87
|
-
cursor: pointer;
|
|
88
|
-
:hover {
|
|
89
|
-
background: ${t("secondary",.12)};
|
|
90
|
-
color: ${t("primary")};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.code-fence_select {
|
|
95
|
-
&[data-fold='true'] {
|
|
96
|
-
display: none;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
font-weight: 500;
|
|
100
|
-
position: absolute;
|
|
101
|
-
z-index: 1;
|
|
102
|
-
top: 2.625rem;
|
|
103
|
-
box-sizing: border-box;
|
|
104
|
-
left: 1.2rem;
|
|
105
|
-
padding: 0.5rem 0;
|
|
106
|
-
max-height: 16.75rem;
|
|
107
|
-
width: 10.25rem;
|
|
108
|
-
${l()};
|
|
109
|
-
${u()};
|
|
110
|
-
background-color: ${t("surface")};
|
|
111
|
-
border-top: none;
|
|
112
|
-
overflow-y: auto;
|
|
113
|
-
display: flex;
|
|
114
|
-
flex-direction: column;
|
|
115
|
-
|
|
116
|
-
${s("y")}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
code {
|
|
120
|
-
line-height: 1.5;
|
|
121
|
-
font-family: ${c.code};
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
pre {
|
|
125
|
-
font-family: ${c.code};
|
|
126
|
-
margin: 0 1.2rem !important;
|
|
127
|
-
}
|
|
128
|
-
`});return{id:X,schema:()=>({content:"text*",group:"block",marks:"",defining:!0,code:!0,attrs:{language:{default:""},fold:{default:!0}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs:t=>{if(!(t instanceof HTMLElement))throw new Error("Parse DOM error.");return{language:t.dataset.language}}}],toDOM:t=>["div",{"data-language":t.attrs.language,class:n.getClassName(t.attrs,"code-fence",e)},["pre",["code",{spellCheck:"false"},0]]],parseMarkdown:{match:({type:t})=>t==="code",runner:(t,o,a)=>{const c=o.lang,u=o.value;t.openNode(a,{language:c}),u&&t.addText(u),t.closeNode()}},toMarkdown:{match:t=>t.type.name===X,runner:(t,o)=>{var a;t.addNode("code",void 0,((a=o.content.firstChild)==null?void 0:a.text)||"",{lang:o.attrs.language})}}}),inputRules:t=>[m.textblockTypeInputRule(pe,t,o=>{const[a,c]=o;if(!!a)return{language:c}}),m.textblockTypeInputRule(he,t,o=>{const[a,c]=o;if(!!a)return{language:c}})],commands:t=>[i.createCmd(B,()=>m.setBlockType(t))],shortcuts:{[b.CodeFence]:d.createShortcut(B,"Mod-Alt-c")},view:t=>(o,a,c)=>{const u=document.createElement("div"),s=document.createElement("div"),l=document.createElement("ul"),g=document.createElement("pre"),h=document.createElement("code"),f=document.createElement("div");f.className="code-fence_value";const k=document.createElement("span");f.appendChild(k),f.appendChild(t.get(i.themeToolCtx).slots.icon("downArrow")),l.className="code-fence_select",l.addEventListener("mousedown",p=>{if(p.preventDefault(),p.stopPropagation(),!a.editable)return;const y=p.target;if(!(y instanceof HTMLLIElement))return;const{tr:$}=a.state;a.dispatch($.setNodeMarkup(c(),void 0,{fold:!0,language:y.dataset.value}))}),f.addEventListener("mousedown",p=>{if(p.preventDefault(),p.stopPropagation(),!a.editable)return;const{tr:y}=a.state;a.dispatch(y.setNodeMarkup(c(),void 0,{fold:!1,language:u.dataset.language}))}),document.addEventListener("mousedown",()=>{if(!a.editable||l.dataset.fold==="true")return;const{tr:p}=a.state;a.dispatch(p.setNodeMarkup(c(),void 0,{fold:!0,language:u.dataset.language}))}),((r==null?void 0:r.languageList)||Ge).forEach(p=>{const y=document.createElement("li");y.className="code-fence_select-option",y.innerText=p||"--",l.appendChild(y),y.setAttribute("data-value",p)}),h.spellcheck=!1,s.className="code-fence_select-wrapper",s.contentEditable="false",s.append(f),s.append(l),g.append(h);const M=document.createElement("div");return h.append(M),M.style.whiteSpace="inherit",u.append(s,g),u.setAttribute("class",n.getClassName(o.attrs,"code-fence",e)),u.setAttribute("data-language",o.attrs.language),k.innerText=o.attrs.language||"--",l.setAttribute("data-fold",o.attrs.fold?"true":"false"),{dom:u,contentDOM:M,update:p=>{if(p.type.name!==X)return!1;const y=p.attrs.language;return u.dataset.language=y,k.innerText=y||"--",l.setAttribute("data-fold",p.attrs.fold?"true":"false"),!0}}}}}),ke=d.createNode(()=>({id:"doc",schema:()=>({content:"block+",parseMarkdown:{match:({type:n})=>n==="root",runner:(n,r,e)=>{n.injectRoot(r,e)}},toMarkdown:{match:n=>n.type.name==="doc",runner:(n,r)=>{n.openNode("root"),n.next(r.content)}}})})),K=i.createCmdKey(),Me=d.createNode(n=>({id:"hardbreak",schema:()=>({inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:r=>["br",{class:n.getClassName(r.attrs,"hardbreak")}],parseMarkdown:{match:({type:r})=>r==="break",runner:(r,e,t)=>{r.addNode(t)}},toMarkdown:{match:r=>r.type.name==="hardbreak",runner:r=>{r.addNode("break")}}}),commands:r=>[i.createCmd(K,()=>(e,t)=>(t==null||t(e.tr.setMeta("hardbreak",!0).replaceSelectionWith(r.create()).scrollIntoView()),!0))],shortcuts:{[b.HardBreak]:d.createShortcut(K,"Shift-Enter")},prosePlugins:r=>[new m.Plugin({key:new m.PluginKey("hardbreak-marks"),appendTransaction:(e,t,o)=>{if(!e.length)return;const[a]=e,[c]=a.steps;if(a.getMeta("hardbreak")){if(!(c instanceof m.ReplaceStep))return;const{from:l}=c;return o.tr.setNodeMarkup(l,r,void 0,[])}if(c instanceof m.AddMarkStep){let l=o.tr;const{from:g,to:h}=c;return o.doc.nodesBetween(g,h,(f,k)=>{f.type===r&&(l=l.setNodeMarkup(k,r,void 0,[]))}),l}}})]})),ye=Array(6).fill(0).map((n,r)=>r+1),x=i.createCmdKey(),be=d.createNode((n,r)=>{const e="heading",t={1:w.css`
|
|
129
|
-
font-size: 3rem;
|
|
130
|
-
line-height: 3.5rem;
|
|
131
|
-
`,2:w.css`
|
|
132
|
-
font-size: 2.125rem;
|
|
133
|
-
line-height: 2.25rem;
|
|
134
|
-
`,3:w.css`
|
|
135
|
-
font-size: 1.5rem;
|
|
136
|
-
line-height: 1.5rem;
|
|
137
|
-
`},o=a=>(r==null?void 0:r.headless)?null:w.css`
|
|
138
|
-
${t[a]||""}
|
|
139
|
-
margin: 2.5rem 0 !important;
|
|
140
|
-
font-weight: 400;
|
|
141
|
-
`;return{id:e,schema:()=>({content:"inline*",group:"block",attrs:{level:{default:1},id:{default:""}},parseDOM:ye.map(a=>({tag:`h${a}`,attrs:{level:a}})),toDOM:a=>[`h${a.attrs.level}`,{class:n.getClassName(a.attrs,`heading h${a.attrs.level}`,o(a.attrs.level))},0],parseMarkdown:{match:({type:a})=>a===e,runner:(a,c,u)=>{const s=c.depth;a.openNode(u,{level:s}),a.next(c.children),a.closeNode()}},toMarkdown:{match:a=>a.type.name===e,runner:(a,c)=>{a.openNode("heading",void 0,{depth:c.attrs.level}),a.next(c.content),a.closeNode()}}}),inputRules:a=>ye.map(c=>m.textblockTypeInputRule(new RegExp(`^(#{1,${c}})\\s$`),a,()=>({level:c}))),commands:a=>[i.createCmd(x,(c=1)=>m.setBlockType(a,{level:c}))],shortcuts:{[b.H1]:d.createShortcut(x,"Mod-Alt-1",1),[b.H2]:d.createShortcut(x,"Mod-Alt-2",2),[b.H3]:d.createShortcut(x,"Mod-Alt-3",3),[b.H4]:d.createShortcut(x,"Mod-Alt-4",4),[b.H5]:d.createShortcut(x,"Mod-Alt-5",5),[b.H6]:d.createShortcut(x,"Mod-Alt-6",6)}}}),Y="hr",Z=i.createCmdKey(),we=d.createNode(n=>{const r=n.getStyle(e=>w.css`
|
|
142
|
-
height: ${e.size.lineWidth};
|
|
143
|
-
background-color: ${e.palette("line")};
|
|
144
|
-
border-width: 0;
|
|
145
|
-
`);return{id:Y,schema:()=>({group:"block",parseDOM:[{tag:"hr"}],toDOM:e=>["hr",{class:n.getClassName(e.attrs,Y,r)}],parseMarkdown:{match:({type:e})=>e==="thematicBreak",runner:(e,t,o)=>{e.addNode(o)}},toMarkdown:{match:e=>e.type.name===Y,runner:e=>{e.addNode("thematicBreak")}}}),inputRules:e=>[new m.InputRule(/^(?:---|___\s|\*\*\*\s)$/,(t,o,a,c)=>{const{tr:u}=t;return o[0]&&u.replaceWith(a-1,c,e.create()),u})],commands:(e,t)=>[i.createCmd(Z,()=>(o,a)=>{if(!a)return!0;const{tr:c,selection:u}=o,s=u.from,l=e.create();if(!l)return!0;const g=c.replaceSelectionWith(l).insert(s,t.get(i.schemaCtx).node("paragraph")),h=m.Selection.findFrom(g.doc.resolve(s),1,!0);return h&&a(g.setSelection(h).scrollIntoView()),!0})]}}),ee=i.createCmdKey(),te=i.createCmdKey(),_="image",Ie=d.createNode((n,r)=>{var c,u;const e=N({loading:"Loading...",empty:"Add an Image",failed:"Image loads failed"},(c=r==null?void 0:r.placeholder)!=null?c:{}),t=(u=r==null?void 0:r.isBlock)!=null?u:!1,o=n.getStyle(s=>w.css`
|
|
146
|
-
display: inline-block;
|
|
147
|
-
position: relative;
|
|
148
|
-
text-align: center;
|
|
149
|
-
font-size: 0;
|
|
150
|
-
vertical-align: text-bottom;
|
|
151
|
-
line-height: 1;
|
|
152
|
-
|
|
153
|
-
${t?`
|
|
154
|
-
width: 100%;
|
|
155
|
-
margin: 0 auto;
|
|
156
|
-
`:""}
|
|
157
|
-
|
|
158
|
-
&.ProseMirror-selectednode::after {
|
|
159
|
-
content: '';
|
|
160
|
-
background: ${s.palette("secondary",.38)};
|
|
161
|
-
position: absolute;
|
|
162
|
-
top: 0;
|
|
163
|
-
left: 0;
|
|
164
|
-
right: 0;
|
|
165
|
-
bottom: 0;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
img {
|
|
169
|
-
max-width: 100%;
|
|
170
|
-
height: auto;
|
|
171
|
-
object-fit: contain;
|
|
172
|
-
margin: 0 2px;
|
|
173
|
-
}
|
|
174
|
-
.icon,
|
|
175
|
-
.placeholder {
|
|
176
|
-
display: none;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
&.system {
|
|
180
|
-
width: 100%;
|
|
181
|
-
padding: 0 2rem;
|
|
182
|
-
|
|
183
|
-
img {
|
|
184
|
-
width: 0;
|
|
185
|
-
height: 0;
|
|
186
|
-
display: none;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
.icon,
|
|
190
|
-
.placeholder {
|
|
191
|
-
display: inline;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
box-sizing: border-box;
|
|
195
|
-
height: 3rem;
|
|
196
|
-
background-color: ${s.palette("background")};
|
|
197
|
-
border-radius: ${s.size.radius};
|
|
198
|
-
display: inline-flex;
|
|
199
|
-
gap: 2rem;
|
|
200
|
-
justify-content: flex-start;
|
|
201
|
-
align-items: center;
|
|
202
|
-
.placeholder {
|
|
203
|
-
margin: 0;
|
|
204
|
-
line-height: 1;
|
|
205
|
-
&::before {
|
|
206
|
-
content: '';
|
|
207
|
-
font-size: 0.875rem;
|
|
208
|
-
color: ${s.palette("neutral",.6)};
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
&.loading {
|
|
214
|
-
.placeholder {
|
|
215
|
-
&::before {
|
|
216
|
-
content: '${e.loading}';
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
&.empty {
|
|
222
|
-
.placeholder {
|
|
223
|
-
&::before {
|
|
224
|
-
content: '${e.empty}';
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
&.failed {
|
|
230
|
-
.placeholder {
|
|
231
|
-
&::before {
|
|
232
|
-
content: '${e.failed}';
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
`),a=n.getStyle(()=>w.css`
|
|
237
|
-
display: inline-block;
|
|
238
|
-
margin: 0 auto;
|
|
239
|
-
object-fit: contain;
|
|
240
|
-
width: 100%;
|
|
241
|
-
position: relative;
|
|
242
|
-
height: auto;
|
|
243
|
-
text-align: center;
|
|
244
|
-
`);return{id:"image",schema:()=>({inline:!0,group:"inline",selectable:!0,draggable:!0,marks:"",atom:!0,defining:!0,isolating:!0,attrs:{src:{default:""},alt:{default:null},title:{default:null},failed:{default:!1},loading:{default:!0},width:{default:0}},parseDOM:[{tag:"img[src]",getAttrs:s=>{if(!(s instanceof HTMLElement))throw new Error;return{failed:s.classList.contains("failed"),loading:s.classList.contains("loading"),src:s.getAttribute("src")||"",alt:s.getAttribute("alt"),title:s.getAttribute("title")||s.getAttribute("alt"),width:s.getAttribute("width")||0}}}],toDOM:s=>["img",L(N({},s.attrs),{class:n.getClassName(s.attrs,_,s.attrs.failed?"failed":"",s.attrs.loading?"loading":"",a)})],parseMarkdown:{match:({type:s})=>s===_,runner:(s,l,g)=>{const h=l.url,f=l.alt,k=l.title;s.addNode(g,{src:h,alt:f,title:k})}},toMarkdown:{match:s=>s.type.name===_,runner:(s,l)=>{s.addNode("image",void 0,void 0,{title:l.attrs.title,url:l.attrs.src,alt:l.attrs.alt})}}}),commands:s=>[i.createCmd(te,(l="")=>(g,h)=>{if(!h)return!0;const{tr:f}=g,k=s.create({src:l});if(!k)return!0;const M=f.replaceSelectionWith(k);return h(M.scrollIntoView()),!0}),i.createCmd(ee,(l="")=>(g,h)=>{const f=m.findSelectedNodeOfType(g.selection,s);if(!f)return!1;const{tr:k}=g;return h==null||h(k.setNodeMarkup(f.pos,void 0,L(N({},f.node.attrs),{loading:!0,src:l})).scrollIntoView()),!0})],inputRules:s=>[new m.InputRule(/!\[(?<alt>.*?)]\((?<filename>.*?)\s*(?="|\))"?(?<title>[^"]+)?"?\)/,(l,g,h,f)=>{const[k,M,p="",y]=g,{tr:$}=l;return k&&$.replaceWith(h,f,s.create({src:p,alt:M,title:y})),$})],view:s=>(l,g,h)=>{const f=l.type,k=s.get(i.themeToolCtx).slots.icon,M=document.createElement("span");M.className=n.getClassName(l.attrs,_,o);const p=document.createElement("img");M.append(p);let y=k("image");const $=document.createElement("span");$.classList.add("placeholder"),M.append(y,$);const O=C=>{const I=k(C);M.replaceChild(I,y),y=I},re=C=>{M.classList.add("system","loading"),O("loading");const I=document.createElement("img");I.src=C,I.onerror=()=>{const{tr:v}=g.state,S=v.setNodeMarkup(h(),f,L(N({},l.attrs),{src:C,loading:!1,failed:!0}));g.dispatch(S)},I.onload=()=>{const{tr:v}=g.state,S=v.setNodeMarkup(h(),f,L(N({},l.attrs),{width:I.width,src:C,loading:!1,failed:!1}));g.dispatch(S)}},{src:F,loading:He,title:De,alt:ne,width:Re}=l.attrs;return p.src=F,p.title=De||ne,p.alt=ne,p.width=Re,F.length===0?(M.classList.add("system","empty"),O("image")):He&&re(F),{dom:M,update:C=>{if(C.type.name!==_)return!1;const{src:I,alt:v,title:S,loading:Ee,failed:Te,width:Be}=C.attrs;return p.src=I,p.alt=v,p.title=S||v,p.width=Be,Ee?(re(I),!0):Te?(M.classList.remove("loading","empty"),M.classList.add("system","failed"),O("brokenImage"),!0):I.length>0?(M.classList.remove("system","empty","loading"),!0):(M.classList.add("system","empty"),O("image"),!0)},selectNode:()=>{M.classList.add("ProseMirror-selectednode")},deselectNode:()=>{M.classList.remove("ProseMirror-selectednode")}}}}}),Ne="list_item",W=i.createCmdKey(),q=i.createCmdKey(),z=i.createCmdKey(),xe=d.createNode(n=>{const r=n.getStyle(e=>w.css`
|
|
245
|
-
&,
|
|
246
|
-
& > * {
|
|
247
|
-
margin: 0.5rem 0;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
&,
|
|
251
|
-
li {
|
|
252
|
-
&::marker {
|
|
253
|
-
color: ${e.palette("primary")};
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
`);return{id:Ne,schema:()=>({group:"listItem",content:"paragraph block*",defining:!0,parseDOM:[{tag:"li"}],toDOM:e=>["li",{class:n.getClassName(e.attrs,"list-item",r)},0],parseMarkdown:{match:({type:e,checked:t})=>e==="listItem"&&t===null,runner:(e,t,o)=>{e.openNode(o),e.next(t.children),e.closeNode()}},toMarkdown:{match:e=>e.type.name===Ne,runner:(e,t)=>{e.openNode("listItem"),e.next(t.content),e.closeNode()}}}),inputRules:e=>[m.wrappingInputRule(/^\s*([-+*])\s$/,e)],commands:e=>[i.createCmd(W,()=>m.splitListItem(e)),i.createCmd(q,()=>m.sinkListItem(e)),i.createCmd(z,()=>m.liftListItem(e))],shortcuts:{[b.NextListItem]:d.createShortcut(W,"Enter"),[b.SinkListItem]:d.createShortcut(q,"Mod-]"),[b.LiftListItem]:d.createShortcut(z,"Mod-[")}}}),P=i.createCmdKey(),Ce="ordered_list",Le=d.createNode(n=>({id:Ce,schema:()=>({content:"listItem+",group:"block",attrs:{order:{default:1}},parseDOM:[{tag:"ol",getAttrs:r=>{if(!(r instanceof HTMLElement))throw new Error;return{order:r.hasAttribute("start")?Number(r.getAttribute("start")):1}}}],toDOM:r=>["ol",L(N({},r.attrs.order===1?{}:r.attrs.order),{class:n.getClassName(r.attrs,"ordered-list")}),0],parseMarkdown:{match:({type:r,ordered:e})=>r==="list"&&!!e,runner:(r,e,t)=>{r.openNode(t).next(e.children).closeNode()}},toMarkdown:{match:r=>r.type.name===Ce,runner:(r,e)=>{r.openNode("list",void 0,{ordered:!0,start:1}),r.next(e.content),r.closeNode()}}}),inputRules:r=>[m.wrappingInputRule(/^(\d+)\.\s$/,r,e=>({order:Number(e[1])}),(e,t)=>t.childCount+t.attrs.order===Number(e[1]))],commands:r=>[i.createCmd(P,()=>m.wrapIn(r))],shortcuts:{[b.OrderedList]:d.createShortcut(P,"Mod-Shift-7")}})),j=i.createCmdKey(),$e="paragraph",ve=d.createNode((n,r)=>{const e=(r==null?void 0:r.headless)?null:w.css`
|
|
257
|
-
font-size: 1rem;
|
|
258
|
-
line-height: 1.5;
|
|
259
|
-
letter-spacing: 0.5px;
|
|
260
|
-
`;return{id:$e,schema:()=>({content:"inline*",group:"block",parseDOM:[{tag:"p"}],toDOM:t=>["p",{class:n.getClassName(t.attrs,$e,e)},0],parseMarkdown:{match:t=>t.type==="paragraph",runner:(t,o,a)=>{t.openNode(a),o.children?t.next(o.children):t.addText(o.value),t.closeNode()}},toMarkdown:{match:t=>t.type.name==="paragraph",runner:(t,o)=>{t.openNode("paragraph"),t.next(o.content),t.closeNode()}}}),commands:t=>[i.createCmd(j,()=>m.setBlockType(t))],shortcuts:{[b.Text]:d.createShortcut(j,"Mod-Alt-0")}}}),Se=d.createNode(()=>({id:"text",schema:()=>({group:"inline",parseMarkdown:{match:({type:n})=>n==="text",runner:(n,r)=>{n.addText(r.value)}},toMarkdown:{match:n=>n.type.name==="text",runner:(n,r)=>{n.addNode("text",void 0,r.text)}}})})),_e=[ke(),ve(),Me(),me(),fe(),ge(),Le(),xe(),be(),we(),Ie(),Se()],Je=n=>!!n.children,Qe=n=>n.type==="html";function Ue(n,r){return e(n,0,null)[0];function e(t,o,a){if(Je(t)){const c=[];for(let u=0,s=t.children.length;u<s;u++){const l=e(t.children[u],u,t);if(l)for(let g=0,h=l.length;g<h;g++)c.push(l[g])}t.children=c}return r(t,o,a)}}const Xe=()=>{function n(r){Ue(r,e=>Qe(e)?[]:[e])}return n},Oe=[d.createPlugin(()=>({remarkPlugins:()=>[Ve.default,Xe]}))()],Ae=d.AtomList.create([..._e,...ue]),Ye=d.AtomList.create([...Oe,...Ae]),Ze={ToggleInlineCode:A,ToggleItalic:H,ToggleLink:G,ToggleBold:D,ModifyLink:J,ModifyImage:ee,WrapInBlockquote:E,WrapInBulletList:T,WrapInOrderedList:P,TurnIntoCodeFence:B,TurnIntoHeading:x,TurnIntoText:j,InsertHardbreak:K,InsertHr:Z,InsertImage:te,SplitListItem:W,SinkListItem:q,LiftListItem:z};exports.InsertHardbreak=K;exports.InsertHr=Z;exports.InsertImage=te;exports.LiftListItem=z;exports.ModifyImage=ee;exports.ModifyLink=J;exports.SinkListItem=q;exports.SplitListItem=W;exports.SupportedKeys=b;exports.ToggleBold=D;exports.ToggleInlineCode=A;exports.ToggleItalic=H;exports.ToggleLink=G;exports.TurnIntoCodeFence=B;exports.TurnIntoHeading=x;exports.TurnIntoText=j;exports.WrapInBlockquote=E;exports.WrapInBulletList=T;exports.WrapInOrderedList=P;exports.backtickInputRegex=pe;exports.blockquote=me;exports.bulletList=ge;exports.codeFence=fe;exports.codeInline=ce;exports.commands=Ze;exports.commonmark=Ye;exports.commonmarkNodes=Ae;exports.commonmarkPlugins=Oe;exports.doc=ke;exports.em=le;exports.hardbreak=Me;exports.heading=be;exports.hr=we;exports.image=Ie;exports.link=ie;exports.listItem=xe;exports.marks=ue;exports.nodes=_e;exports.orderedList=Le;exports.paragraph=ve;exports.strong=de;exports.text=Se;exports.tildeInputRegex=he;
|
|
261
|
-
//# sourceMappingURL=index.cjs.js.map
|
package/lib/index.cjs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/supported-keys.ts","../src/mark/code-inline.ts","../src/mark/em.ts","../src/mark/link.ts","../src/mark/strong.ts","../src/mark/index.ts","../src/node/blockquote.ts","../src/node/bullet-list.ts","../src/node/code-fence.ts","../src/node/doc.ts","../src/node/hardbreak.ts","../src/node/heading.ts","../src/node/hr.ts","../src/node/image.ts","../src/node/list-item.ts","../src/node/ordered-list.ts","../src/node/paragraph.ts","../src/node/text.ts","../src/node/index.ts","../src/plugin/filter-html.ts","../src/plugin/index.ts","../src/index.ts"],"sourcesContent":["/* Copyright 2021, Milkdown by Mirone. */\nexport const SupportedKeys = {\n HardBreak: 'HardBreak',\n Blockquote: 'Blockquote',\n BulletList: 'BulletList',\n OrderedList: 'OrderedList',\n CodeFence: 'CodeFence',\n H1: 'H1',\n H2: 'H2',\n H3: 'H3',\n H4: 'H4',\n H5: 'H5',\n H6: 'H6',\n Text: 'Text',\n CodeInline: 'CodeInline',\n Em: 'Em',\n Bold: 'Bold',\n NextListItem: 'NextListItem',\n SinkListItem: 'SinkListItem',\n LiftListItem: 'LiftListItem',\n} as const;\n\nexport type SupportedKeys = typeof SupportedKeys;\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { markRule, toggleMark } from '@milkdown/prose';\nimport { createMark, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['CodeInline'];\nconst id = 'code_inline';\n\nexport const ToggleInlineCode = createCmdKey();\n\nexport const codeInline = createMark<Keys>((utils) => {\n const style = utils.getStyle(\n ({ palette, size, font }) =>\n css`\n background-color: ${palette('neutral')};\n color: ${palette('background')};\n border-radius: ${size.radius};\n font-weight: 500;\n font-family: ${font.code};\n padding: 0 0.2rem;\n `,\n );\n return {\n id,\n schema: () => ({\n excludes: '_',\n parseDOM: [{ tag: 'code' }],\n toDOM: (mark) => ['code', { class: utils.getClassName(mark.attrs, 'code-inline', style) }],\n parseMarkdown: {\n match: (node) => node.type === 'inlineCode',\n runner: (state, node, markType) => {\n state.openMark(markType);\n state.addText(node.value as string);\n state.closeMark(markType);\n },\n },\n toMarkdown: {\n match: (mark) => mark.type.name === id,\n runner: (state, _, node) => {\n state.addNode('inlineCode', undefined, node.text || '');\n\n return true;\n },\n },\n }),\n inputRules: (markType) => [markRule(/(?:^|[^`])(`([^`]+)`)$/, markType)],\n commands: (markType) => [createCmd(ToggleInlineCode, () => toggleMark(markType))],\n shortcuts: {\n [SupportedKeys.CodeInline]: createShortcut(ToggleInlineCode, 'Mod-e'),\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { markRule, toggleMark } from '@milkdown/prose';\nimport { createMark, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['Em'];\n\nconst id = 'em';\n\nexport const ToggleItalic = createCmdKey();\n\nexport const em = createMark<Keys>((utils) => ({\n id,\n schema: () => ({\n parseDOM: [\n { tag: 'i' },\n { tag: 'em' },\n { style: 'font-style', getAttrs: (value) => (value === 'italic') as false },\n ],\n toDOM: (mark) => ['em', { class: utils.getClassName(mark.attrs, id) }],\n parseMarkdown: {\n match: (node) => node.type === 'emphasis',\n runner: (state, node, markType) => {\n state.openMark(markType);\n state.next(node.children);\n state.closeMark(markType);\n },\n },\n toMarkdown: {\n match: (mark) => mark.type.name === id,\n runner: (state, mark) => {\n state.withMark(mark, 'emphasis');\n },\n },\n }),\n inputRules: (markType) => [\n markRule(/(?:^|[^_])(_([^_]+)_)$/, markType),\n markRule(/(?:^|[^*])(\\*([^*]+)\\*)$/, markType),\n ],\n commands: (markType) => [createCmd(ToggleItalic, () => toggleMark(markType))],\n shortcuts: {\n [SupportedKeys.Em]: createShortcut(ToggleItalic, 'Mod-i'),\n },\n}));\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey, schemaCtx } from '@milkdown/core';\nimport { InputRule, Node as ProseNode, TextSelection, toggleMark } from '@milkdown/prose';\nimport { createMark } from '@milkdown/utils';\n\nexport const ToggleLink = createCmdKey<string>();\nexport const ModifyLink = createCmdKey<string>();\nconst id = 'link';\nexport const link = createMark((utils) => {\n const style = utils.getStyle((themeTool) => {\n const lineColor = themeTool.palette('line');\n\n return css`\n color: ${themeTool.palette('secondary')};\n cursor: pointer;\n transition: all 0.4s ease-in-out;\n font-weight: 500;\n &:hover {\n background-color: ${lineColor};\n box-shadow: 0 0.2rem ${lineColor}, 0 -0.2rem ${lineColor};\n }\n `;\n });\n return {\n id,\n schema: () => ({\n attrs: {\n href: {},\n title: { default: null },\n },\n inclusive: false,\n parseDOM: [\n {\n tag: 'a[href]',\n getAttrs: (dom) => {\n if (!(dom instanceof HTMLElement)) {\n throw new Error();\n }\n return { href: dom.getAttribute('href'), title: dom.getAttribute('title') };\n },\n },\n ],\n toDOM: (mark) => ['a', { ...mark.attrs, class: utils.getClassName(mark.attrs, id, style) }],\n parseMarkdown: {\n match: (node) => node.type === 'link',\n runner: (state, node, markType) => {\n const url = node.url as string;\n const title = node.title as string;\n state.openMark(markType, { href: url, title });\n state.next(node.children);\n state.closeMark(markType);\n },\n },\n toMarkdown: {\n match: (mark) => mark.type.name === id,\n runner: (state, mark) => {\n state.withMark(mark, 'link', undefined, {\n title: mark.attrs.title,\n url: mark.attrs.href,\n });\n },\n },\n }),\n commands: (markType) => [\n createCmd(ToggleLink, (href = '') => toggleMark(markType, { href })),\n createCmd(ModifyLink, (href = '') => (state, dispatch) => {\n if (!dispatch) return false;\n\n const { marks } = state.schema;\n\n let node: ProseNode | undefined;\n let pos = -1;\n const { selection } = state;\n state.doc.nodesBetween(selection.from, selection.to, (n, p) => {\n if (marks.link.isInSet(n.marks)) {\n node = n;\n pos = p;\n return false;\n }\n return;\n });\n if (!node) return false;\n\n const mark = node.marks.find(({ type }) => type === markType);\n if (!mark) return false;\n\n const start = pos;\n const end = pos + node.nodeSize;\n const { tr } = state;\n const linkMark = marks.link.create({ ...mark.attrs, href });\n dispatch(\n tr\n .removeMark(start, end, mark)\n .addMark(start, end, linkMark)\n .setSelection(new TextSelection(tr.selection.$anchor))\n .scrollIntoView(),\n );\n\n return true;\n }),\n ],\n inputRules: (markType, ctx) => [\n new InputRule(/\\[(?<text>.*?)]\\((?<href>.*?)(?=“|\\))\"?(?<title>[^\"]+)?\"?\\)/, (state, match, start, end) => {\n const [okay, text = '', href, title] = match;\n const { tr } = state;\n if (okay) {\n const content = text || 'link';\n tr.replaceWith(start, end, ctx.get(schemaCtx).text(content)).addMark(\n start,\n content.length + start,\n markType.create({ title, href }),\n );\n }\n\n return tr;\n }),\n ],\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { markRule, toggleMark } from '@milkdown/prose';\nimport { createMark, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['Bold'];\nconst id = 'strong';\nexport const ToggleBold = createCmdKey();\nexport const strong = createMark<Keys>((utils) => {\n const style = utils.getStyle(\n () =>\n css`\n font-weight: 600;\n `,\n );\n return {\n id,\n schema: () => ({\n parseDOM: [\n { tag: 'b' },\n { tag: 'strong' },\n { style: 'font-style', getAttrs: (value) => (value === 'bold') as false },\n ],\n toDOM: (mark) => ['strong', { class: utils.getClassName(mark.attrs, id, style) }],\n parseMarkdown: {\n match: (node) => node.type === 'strong',\n runner: (state, node, markType) => {\n state.openMark(markType);\n state.next(node.children);\n state.closeMark(markType);\n },\n },\n toMarkdown: {\n match: (mark) => mark.type.name === id,\n runner: (state, mark) => {\n state.withMark(mark, 'strong');\n },\n },\n }),\n inputRules: (markType) => [\n markRule(/(?:__)([^_]+)(?:__)$/, markType),\n markRule(/(?:\\*\\*)([^*]+)(?:\\*\\*)$/, markType),\n ],\n commands: (markType) => [createCmd(ToggleBold, () => toggleMark(markType))],\n shortcuts: {\n [SupportedKeys.Bold]: createShortcut(ToggleBold, 'Mod-b'),\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { codeInline } from './code-inline';\nimport { em } from './em';\nimport { link } from './link';\nimport { strong } from './strong';\n\nexport const marks = [codeInline(), em(), strong(), link()];\n\nexport * from './code-inline';\nexport * from './em';\nexport * from './link';\nexport * from './strong';\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { wrapIn, wrappingInputRule } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['Blockquote'];\n\nconst id = 'blockquote';\n\nexport const WrapInBlockquote = createCmdKey();\n\nexport const blockquote = createNode<Keys>((utils) => {\n const style = utils.getStyle(\n (themeTool) =>\n css`\n padding-left: 1.875rem;\n line-height: 1.75rem;\n border-left: 4px solid ${themeTool.palette('primary')};\n * {\n font-size: 1rem;\n line-height: 1.5rem;\n }\n `,\n );\n\n return {\n id,\n schema: () => ({\n content: 'block+',\n group: 'block',\n defining: true,\n parseDOM: [{ tag: 'blockquote' }],\n toDOM: (node) => ['blockquote', { class: utils.getClassName(node.attrs, id, style) }, 0],\n parseMarkdown: {\n match: ({ type }) => type === id,\n runner: (state, node, type) => {\n state.openNode(type).next(node.children).closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state, node) => {\n state.openNode('blockquote').next(node.content).closeNode();\n },\n },\n }),\n inputRules: (nodeType) => [wrappingInputRule(/^\\s*>\\s$/, nodeType)],\n commands: (nodeType) => [createCmd(WrapInBlockquote, () => wrapIn(nodeType))],\n shortcuts: {\n [SupportedKeys.Blockquote]: createShortcut(WrapInBlockquote, 'Mod-Shift-b'),\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { wrapIn, wrappingInputRule } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['BulletList'];\n\nexport const WrapInBulletList = createCmdKey();\n\nexport const bulletList = createNode<Keys>((utils) => {\n const id = 'bullet_list';\n return {\n id,\n schema: () => ({\n content: 'listItem+',\n group: 'block',\n parseDOM: [{ tag: 'ul' }],\n toDOM: (node) => {\n return ['ul', { class: utils.getClassName(node.attrs, 'bullet-list') }, 0];\n },\n parseMarkdown: {\n match: ({ type, ordered }) => type === 'list' && !ordered,\n runner: (state, node, type) => {\n state.openNode(type).next(node.children).closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state, node) => {\n state.openNode('list', undefined, { ordered: false }).next(node.content).closeNode();\n },\n },\n }),\n inputRules: (nodeType) => [wrappingInputRule(/^\\s*([-+*])\\s$/, nodeType)],\n commands: (nodeType) => [createCmd(WrapInBulletList, () => wrapIn(nodeType))],\n shortcuts: {\n [SupportedKeys.BulletList]: createShortcut(WrapInBulletList, 'Mod-Shift-8'),\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey, themeToolCtx } from '@milkdown/core';\nimport { setBlockType, textblockTypeInputRule } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['CodeFence'];\n\nconst languageOptions = [\n '',\n 'javascript',\n 'typescript',\n 'bash',\n 'sql',\n 'json',\n 'html',\n 'css',\n 'c',\n 'cpp',\n 'java',\n 'ruby',\n 'python',\n 'go',\n 'rust',\n 'markdown',\n];\n\nexport const backtickInputRegex = /^```(?<language>[a-z]*)?[\\s\\n]$/;\nexport const tildeInputRegex = /^~~~(?<language>[a-z]*)?[\\s\\n]$/;\n\nexport const TurnIntoCodeFence = createCmdKey();\n\nconst id = 'fence';\nexport const codeFence = createNode<Keys, { languageList?: string[] }>((utils, options) => {\n const style = utils.getStyle(({ palette, mixin, size, font }) => {\n const { shadow, scrollbar, border } = mixin;\n const { lineWidth, radius } = size;\n return css`\n background-color: ${palette('background')};\n color: ${palette('neutral')};\n font-size: 0.85rem;\n padding: 1.2rem 0.4rem 1.4rem;\n border-radius: ${radius};\n font-family: ${font.typography};\n\n * {\n margin: 0;\n }\n\n .code-fence_select-wrapper {\n position: relative;\n }\n\n .code-fence_value {\n width: 10.25rem;\n box-sizing: border-box;\n border-radius: ${size.radius};\n margin: 0 1.2rem 1.2rem;\n ${border()};\n ${shadow()};\n cursor: pointer;\n background-color: ${palette('surface')};\n position: relative;\n display: flex;\n color: ${palette('neutral', 0.87)};\n letter-spacing: 0.5px;\n height: 2.625rem;\n align-items: center;\n\n & > *:last-child {\n width: 2.625rem;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n color: ${palette('solid', 0.87)};\n border-left: ${lineWidth} solid ${palette('line')};\n\n text-align: center;\n transition: all 0.2s ease-in-out;\n &:hover {\n background: ${palette('background')};\n color: ${palette('primary')};\n }\n }\n\n > span:first-child {\n padding-left: 1rem;\n flex: 1;\n font-weight: 500;\n }\n }\n\n .code-fence_select-option {\n list-style: none;\n line-height: 2rem;\n padding-left: 1rem;\n cursor: pointer;\n :hover {\n background: ${palette('secondary', 0.12)};\n color: ${palette('primary')};\n }\n }\n\n .code-fence_select {\n &[data-fold='true'] {\n display: none;\n }\n\n font-weight: 500;\n position: absolute;\n z-index: 1;\n top: 2.625rem;\n box-sizing: border-box;\n left: 1.2rem;\n padding: 0.5rem 0;\n max-height: 16.75rem;\n width: 10.25rem;\n ${border()};\n ${shadow()};\n background-color: ${palette('surface')};\n border-top: none;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n ${scrollbar('y')}\n }\n\n code {\n line-height: 1.5;\n font-family: ${font.code};\n }\n\n pre {\n font-family: ${font.code};\n margin: 0 1.2rem !important;\n }\n `;\n });\n\n return {\n id,\n schema: () => ({\n content: 'text*',\n group: 'block',\n marks: '',\n defining: true,\n code: true,\n attrs: {\n language: {\n default: '',\n },\n fold: {\n default: true,\n },\n },\n parseDOM: [\n {\n tag: 'pre',\n preserveWhitespace: 'full',\n getAttrs: (dom) => {\n if (!(dom instanceof HTMLElement)) {\n throw new Error('Parse DOM error.');\n }\n return { language: dom.dataset.language };\n },\n },\n ],\n toDOM: (node) => {\n return [\n 'div',\n {\n 'data-language': node.attrs.language,\n class: utils.getClassName(node.attrs, 'code-fence', style),\n },\n ['pre', ['code', { spellCheck: 'false' }, 0]],\n ];\n },\n parseMarkdown: {\n match: ({ type }) => type === 'code',\n runner: (state, node, type) => {\n const language = node.lang as string;\n const value = node.value as string;\n state.openNode(type, { language });\n if (value) {\n state.addText(value);\n }\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state, node) => {\n state.addNode('code', undefined, node.content.firstChild?.text || '', {\n lang: node.attrs.language,\n });\n },\n },\n }),\n inputRules: (nodeType) => [\n textblockTypeInputRule(backtickInputRegex, nodeType, (match) => {\n const [ok, language] = match;\n if (!ok) return;\n return { language };\n }),\n textblockTypeInputRule(tildeInputRegex, nodeType, (match) => {\n const [ok, language] = match;\n if (!ok) return;\n return { language };\n }),\n ],\n commands: (nodeType) => [createCmd(TurnIntoCodeFence, () => setBlockType(nodeType))],\n shortcuts: {\n [SupportedKeys.CodeFence]: createShortcut(TurnIntoCodeFence, 'Mod-Alt-c'),\n },\n view: (ctx) => (node, view, getPos) => {\n const container = document.createElement('div');\n const selectWrapper = document.createElement('div');\n const select = document.createElement('ul');\n const pre = document.createElement('pre');\n const code = document.createElement('code');\n\n const valueWrapper = document.createElement('div');\n valueWrapper.className = 'code-fence_value';\n const value = document.createElement('span');\n valueWrapper.appendChild(value);\n valueWrapper.appendChild(ctx.get(themeToolCtx).slots.icon('downArrow'));\n\n select.className = 'code-fence_select';\n select.addEventListener('mousedown', (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!view.editable) return;\n\n const el = e.target;\n if (!(el instanceof HTMLLIElement)) return;\n const { tr } = view.state;\n\n view.dispatch(\n tr.setNodeMarkup(getPos(), undefined, {\n fold: true,\n language: el.dataset.value,\n }),\n );\n });\n valueWrapper.addEventListener('mousedown', (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!view.editable) return;\n const { tr } = view.state;\n\n view.dispatch(\n tr.setNodeMarkup(getPos(), undefined, {\n fold: false,\n language: container.dataset.language,\n }),\n );\n });\n document.addEventListener('mousedown', () => {\n if (!view.editable || select.dataset.fold === 'true') return;\n\n const { tr } = view.state;\n\n view.dispatch(\n tr.setNodeMarkup(getPos(), undefined, {\n fold: true,\n language: container.dataset.language,\n }),\n );\n });\n\n (options?.languageList || languageOptions).forEach((lang) => {\n const option = document.createElement('li');\n option.className = 'code-fence_select-option';\n option.innerText = lang || '--';\n select.appendChild(option);\n option.setAttribute('data-value', lang);\n });\n\n code.spellcheck = false;\n selectWrapper.className = 'code-fence_select-wrapper';\n selectWrapper.contentEditable = 'false';\n selectWrapper.append(valueWrapper);\n selectWrapper.append(select);\n pre.append(code);\n const codeContent = document.createElement('div');\n code.append(codeContent);\n codeContent.style.whiteSpace = 'inherit';\n\n container.append(selectWrapper, pre);\n container.setAttribute('class', utils.getClassName(node.attrs, 'code-fence', style));\n container.setAttribute('data-language', node.attrs.language);\n value.innerText = node.attrs.language || '--';\n select.setAttribute('data-fold', node.attrs.fold ? 'true' : 'false');\n\n return {\n dom: container,\n contentDOM: codeContent,\n update: (updatedNode) => {\n if (updatedNode.type.name !== id) return false;\n\n const lang = updatedNode.attrs.language;\n container.dataset.language = lang;\n value.innerText = lang || '--';\n select.setAttribute('data-fold', updatedNode.attrs.fold ? 'true' : 'false');\n\n return true;\n },\n };\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createNode } from '@milkdown/utils';\n\nexport const doc = createNode(() => {\n return {\n id: 'doc',\n schema: () => ({\n content: 'block+',\n parseMarkdown: {\n match: ({ type }) => type === 'root',\n runner: (state, node, type) => {\n state.injectRoot(node, type);\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'doc',\n runner: (state, node) => {\n state.openNode('root');\n state.next(node.content);\n },\n },\n }),\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { AddMarkStep, Plugin, PluginKey, ReplaceStep } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['HardBreak'];\n\nexport const InsertHardbreak = createCmdKey();\n\nexport const hardbreak = createNode<Keys>((utils) => {\n return {\n id: 'hardbreak',\n schema: () => ({\n inline: true,\n group: 'inline',\n selectable: false,\n parseDOM: [{ tag: 'br' }],\n toDOM: (node) => ['br', { class: utils.getClassName(node.attrs, 'hardbreak') }],\n parseMarkdown: {\n match: ({ type }) => type === 'break',\n runner: (state, _, type) => {\n state.addNode(type);\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'hardbreak',\n runner: (state) => {\n state.addNode('break');\n },\n },\n }),\n commands: (type) => [\n createCmd(InsertHardbreak, () => (state, dispatch) => {\n dispatch?.(state.tr.setMeta('hardbreak', true).replaceSelectionWith(type.create()).scrollIntoView());\n return true;\n }),\n ],\n shortcuts: {\n [SupportedKeys.HardBreak]: createShortcut(InsertHardbreak, 'Shift-Enter'),\n },\n prosePlugins: (type) => [\n new Plugin({\n key: new PluginKey('hardbreak-marks'),\n appendTransaction: (trs, _oldState, newState) => {\n if (!trs.length) return;\n const [tr] = trs;\n\n const [step] = tr.steps;\n\n const isInsertHr = tr.getMeta('hardbreak');\n if (isInsertHr) {\n if (!(step instanceof ReplaceStep)) {\n return;\n }\n const { from } = step as unknown as { from: number };\n return newState.tr.setNodeMarkup(from, type, undefined, []);\n }\n\n const isAddMarkStep = step instanceof AddMarkStep;\n if (isAddMarkStep) {\n let _tr = newState.tr;\n const { from, to } = step as unknown as { from: number; to: number };\n newState.doc.nodesBetween(from, to, (node, pos) => {\n if (node.type === type) {\n _tr = _tr.setNodeMarkup(pos, type, undefined, []);\n }\n });\n\n return _tr;\n }\n\n return;\n },\n }),\n ],\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { setBlockType, textblockTypeInputRule } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\nconst headingIndex = Array(6)\n .fill(0)\n .map((_, i) => i + 1);\n\ntype Keys =\n | SupportedKeys['H1']\n | SupportedKeys['H2']\n | SupportedKeys['H3']\n | SupportedKeys['H4']\n | SupportedKeys['H5']\n | SupportedKeys['H6'];\n\nexport const TurnIntoHeading = createCmdKey<number>();\n\nexport const heading = createNode<Keys>((utils, options) => {\n const id = 'heading';\n const headingMap: Record<number, string> = {\n 1: css`\n font-size: 3rem;\n line-height: 3.5rem;\n `,\n 2: css`\n font-size: 2.125rem;\n line-height: 2.25rem;\n `,\n 3: css`\n font-size: 1.5rem;\n line-height: 1.5rem;\n `,\n };\n\n const style = (level: number) =>\n options?.headless\n ? null\n : css`\n ${headingMap[level] || ''}\n margin: 2.5rem 0 !important;\n font-weight: 400;\n `;\n\n return {\n id,\n schema: () => ({\n content: 'inline*',\n group: 'block',\n attrs: {\n level: {\n default: 1,\n },\n id: {\n default: '',\n },\n },\n parseDOM: headingIndex.map((x) => ({ tag: `h${x}`, attrs: { level: x } })),\n toDOM: (node) => {\n return [\n `h${node.attrs.level}`,\n {\n class: utils.getClassName(node.attrs, `heading h${node.attrs.level}`, style(node.attrs.level)),\n },\n 0,\n ];\n },\n parseMarkdown: {\n match: ({ type }) => type === id,\n runner: (state, node, type) => {\n const depth = node.depth as number;\n state.openNode(type, { level: depth });\n state.next(node.children);\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state, node) => {\n state.openNode('heading', undefined, { depth: node.attrs.level });\n state.next(node.content);\n state.closeNode();\n },\n },\n }),\n inputRules: (type) =>\n headingIndex.map((x) =>\n textblockTypeInputRule(new RegExp(`^(#{1,${x}})\\\\s$`), type, () => ({\n level: x,\n })),\n ),\n commands: (type) => [createCmd(TurnIntoHeading, (level = 1) => setBlockType(type, { level }))],\n shortcuts: {\n [SupportedKeys.H1]: createShortcut(TurnIntoHeading, 'Mod-Alt-1', 1),\n [SupportedKeys.H2]: createShortcut(TurnIntoHeading, 'Mod-Alt-2', 2),\n [SupportedKeys.H3]: createShortcut(TurnIntoHeading, 'Mod-Alt-3', 3),\n [SupportedKeys.H4]: createShortcut(TurnIntoHeading, 'Mod-Alt-4', 4),\n [SupportedKeys.H5]: createShortcut(TurnIntoHeading, 'Mod-Alt-5', 5),\n [SupportedKeys.H6]: createShortcut(TurnIntoHeading, 'Mod-Alt-6', 6),\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey, schemaCtx } from '@milkdown/core';\nimport { InputRule, Selection } from '@milkdown/prose';\nimport { createNode } from '@milkdown/utils';\n\nconst id = 'hr';\nexport const InsertHr = createCmdKey<string>();\nexport const hr = createNode((utils) => {\n const style = utils.getStyle(\n (themeTool) => css`\n height: ${themeTool.size.lineWidth};\n background-color: ${themeTool.palette('line')};\n border-width: 0;\n `,\n );\n return {\n id,\n schema: () => ({\n group: 'block',\n parseDOM: [{ tag: 'hr' }],\n toDOM: (node) => ['hr', { class: utils.getClassName(node.attrs, id, style) }],\n parseMarkdown: {\n match: ({ type }) => type === 'thematicBreak',\n runner: (state, _, type) => {\n state.addNode(type);\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state) => {\n state.addNode('thematicBreak');\n },\n },\n }),\n inputRules: (type) => [\n new InputRule(/^(?:---|___\\s|\\*\\*\\*\\s)$/, (state, match, start, end) => {\n const { tr } = state;\n\n if (match[0]) {\n tr.replaceWith(start - 1, end, type.create());\n }\n\n return tr;\n }),\n ],\n commands: (type, ctx) => [\n createCmd(InsertHr, () => (state, dispatch) => {\n if (!dispatch) return true;\n const { tr, selection } = state;\n const from = selection.from;\n const node = type.create();\n if (!node) {\n return true;\n }\n const _tr = tr.replaceSelectionWith(node).insert(from, ctx.get(schemaCtx).node('paragraph'));\n const sel = Selection.findFrom(_tr.doc.resolve(from), 1, true);\n if (!sel) {\n return true;\n }\n dispatch(_tr.setSelection(sel).scrollIntoView());\n return true;\n }),\n ],\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey, themeToolCtx } from '@milkdown/core';\nimport type { Icon } from '@milkdown/design-system';\nimport { findSelectedNodeOfType, InputRule } from '@milkdown/prose';\nimport { createNode } from '@milkdown/utils';\n\nexport const ModifyImage = createCmdKey<string>();\nexport const InsertImage = createCmdKey<string>();\nconst id = 'image';\nexport type ImageOptions = {\n isBlock: boolean;\n placeholder: {\n loading: string;\n empty: string;\n failed: string;\n };\n};\nexport const image = createNode<string, ImageOptions>((utils, options) => {\n const placeholder = {\n loading: 'Loading...',\n empty: 'Add an Image',\n failed: 'Image loads failed',\n ...(options?.placeholder ?? {}),\n };\n const isBlock = options?.isBlock ?? false;\n const containerStyle = utils.getStyle(\n (themeTool) =>\n css`\n display: inline-block;\n position: relative;\n text-align: center;\n font-size: 0;\n vertical-align: text-bottom;\n line-height: 1;\n\n ${isBlock\n ? `\n width: 100%;\n margin: 0 auto;\n `\n : ''}\n\n &.ProseMirror-selectednode::after {\n content: '';\n background: ${themeTool.palette('secondary', 0.38)};\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n img {\n max-width: 100%;\n height: auto;\n object-fit: contain;\n margin: 0 2px;\n }\n .icon,\n .placeholder {\n display: none;\n }\n\n &.system {\n width: 100%;\n padding: 0 2rem;\n\n img {\n width: 0;\n height: 0;\n display: none;\n }\n\n .icon,\n .placeholder {\n display: inline;\n }\n\n box-sizing: border-box;\n height: 3rem;\n background-color: ${themeTool.palette('background')};\n border-radius: ${themeTool.size.radius};\n display: inline-flex;\n gap: 2rem;\n justify-content: flex-start;\n align-items: center;\n .placeholder {\n margin: 0;\n line-height: 1;\n &::before {\n content: '';\n font-size: 0.875rem;\n color: ${themeTool.palette('neutral', 0.6)};\n }\n }\n }\n\n &.loading {\n .placeholder {\n &::before {\n content: '${placeholder.loading}';\n }\n }\n }\n\n &.empty {\n .placeholder {\n &::before {\n content: '${placeholder.empty}';\n }\n }\n }\n\n &.failed {\n .placeholder {\n &::before {\n content: '${placeholder.failed}';\n }\n }\n }\n `,\n );\n\n const style = utils.getStyle(\n () =>\n css`\n display: inline-block;\n margin: 0 auto;\n object-fit: contain;\n width: 100%;\n position: relative;\n height: auto;\n text-align: center;\n `,\n );\n\n return {\n id: 'image',\n schema: () => ({\n inline: true,\n group: 'inline',\n selectable: true,\n draggable: true,\n marks: '',\n atom: true,\n defining: true,\n isolating: true,\n attrs: {\n src: { default: '' },\n alt: { default: null },\n title: { default: null },\n failed: { default: false },\n loading: { default: true },\n width: { default: 0 },\n },\n parseDOM: [\n {\n tag: 'img[src]',\n getAttrs: (dom) => {\n if (!(dom instanceof HTMLElement)) {\n throw new Error();\n }\n return {\n failed: dom.classList.contains('failed'),\n loading: dom.classList.contains('loading'),\n src: dom.getAttribute('src') || '',\n alt: dom.getAttribute('alt'),\n title: dom.getAttribute('title') || dom.getAttribute('alt'),\n width: dom.getAttribute('width') || 0,\n };\n },\n },\n ],\n toDOM: (node) => {\n return [\n 'img',\n {\n ...node.attrs,\n class: utils.getClassName(\n node.attrs,\n id,\n node.attrs.failed ? 'failed' : '',\n node.attrs.loading ? 'loading' : '',\n style,\n ),\n },\n ];\n },\n parseMarkdown: {\n match: ({ type }) => type === id,\n runner: (state, node, type) => {\n const url = node.url as string;\n const alt = node.alt as string;\n const title = node.title as string;\n state.addNode(type, {\n src: url,\n alt,\n title,\n });\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state, node) => {\n state.addNode('image', undefined, undefined, {\n title: node.attrs.title,\n url: node.attrs.src,\n alt: node.attrs.alt,\n });\n },\n },\n }),\n commands: (type) => [\n createCmd(InsertImage, (src = '') => (state, dispatch) => {\n if (!dispatch) return true;\n const { tr } = state;\n const node = type.create({ src });\n if (!node) {\n return true;\n }\n const _tr = tr.replaceSelectionWith(node);\n dispatch(_tr.scrollIntoView());\n return true;\n }),\n createCmd(ModifyImage, (src = '') => (state, dispatch) => {\n const node = findSelectedNodeOfType(state.selection, type);\n if (!node) return false;\n\n const { tr } = state;\n dispatch?.(\n tr.setNodeMarkup(node.pos, undefined, { ...node.node.attrs, loading: true, src }).scrollIntoView(),\n );\n\n return true;\n }),\n ],\n inputRules: (type) => [\n new InputRule(\n /!\\[(?<alt>.*?)]\\((?<filename>.*?)\\s*(?=\"|\\))\"?(?<title>[^\"]+)?\"?\\)/,\n (state, match, start, end) => {\n const [okay, alt, src = '', title] = match;\n const { tr } = state;\n if (okay) {\n tr.replaceWith(start, end, type.create({ src, alt, title }));\n }\n\n return tr;\n },\n ),\n ],\n view: (ctx) => (node, view, getPos) => {\n const nodeType = node.type;\n const createIcon = ctx.get(themeToolCtx).slots.icon;\n const container = document.createElement('span');\n container.className = utils.getClassName(node.attrs, id, containerStyle);\n\n const content = document.createElement('img');\n\n container.append(content);\n let icon = createIcon('image');\n const placeholder = document.createElement('span');\n placeholder.classList.add('placeholder');\n container.append(icon, placeholder);\n\n const setIcon = (name: Icon) => {\n const nextIcon = createIcon(name);\n container.replaceChild(nextIcon, icon);\n icon = nextIcon;\n };\n\n const loadImage = (src: string) => {\n container.classList.add('system', 'loading');\n setIcon('loading');\n const img = document.createElement('img');\n img.src = src;\n\n img.onerror = () => {\n const { tr } = view.state;\n const _tr = tr.setNodeMarkup(getPos(), nodeType, {\n ...node.attrs,\n src,\n loading: false,\n failed: true,\n });\n view.dispatch(_tr);\n };\n\n img.onload = () => {\n const { tr } = view.state;\n const _tr = tr.setNodeMarkup(getPos(), nodeType, {\n ...node.attrs,\n width: img.width,\n src,\n loading: false,\n failed: false,\n });\n view.dispatch(_tr);\n };\n };\n\n const { src, loading, title, alt, width } = node.attrs;\n content.src = src;\n content.title = title || alt;\n content.alt = alt;\n content.width = width;\n\n if (src.length === 0) {\n container.classList.add('system', 'empty');\n setIcon('image');\n } else if (loading) {\n loadImage(src);\n }\n\n return {\n dom: container,\n update: (updatedNode) => {\n if (updatedNode.type.name !== id) return false;\n\n const { src, alt, title, loading, failed, width } = updatedNode.attrs;\n content.src = src;\n content.alt = alt;\n content.title = title || alt;\n content.width = width;\n if (loading) {\n loadImage(src);\n return true;\n }\n if (failed) {\n container.classList.remove('loading', 'empty');\n container.classList.add('system', 'failed');\n setIcon('brokenImage');\n return true;\n }\n if (src.length > 0) {\n container.classList.remove('system', 'empty', 'loading');\n return true;\n }\n\n container.classList.add('system', 'empty');\n setIcon('image');\n return true;\n },\n selectNode: () => {\n container.classList.add('ProseMirror-selectednode');\n },\n deselectNode: () => {\n container.classList.remove('ProseMirror-selectednode');\n },\n };\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { liftListItem, sinkListItem, splitListItem, wrappingInputRule } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['SinkListItem'] | SupportedKeys['LiftListItem'] | SupportedKeys['NextListItem'];\n\nconst id = 'list_item';\n\nexport const SplitListItem = createCmdKey();\nexport const SinkListItem = createCmdKey();\nexport const LiftListItem = createCmdKey();\n\nexport const listItem = createNode<Keys>((utils) => {\n const style = utils.getStyle(\n (themeTool) =>\n css`\n &,\n & > * {\n margin: 0.5rem 0;\n }\n\n &,\n li {\n &::marker {\n color: ${themeTool.palette('primary')};\n }\n }\n `,\n );\n\n return {\n id,\n schema: () => ({\n group: 'listItem',\n content: 'paragraph block*',\n defining: true,\n parseDOM: [{ tag: 'li' }],\n toDOM: (node) => ['li', { class: utils.getClassName(node.attrs, 'list-item', style) }, 0],\n parseMarkdown: {\n match: ({ type, checked }) => type === 'listItem' && checked === null,\n runner: (state, node, type) => {\n state.openNode(type);\n state.next(node.children);\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state, node) => {\n state.openNode('listItem');\n state.next(node.content);\n state.closeNode();\n },\n },\n }),\n inputRules: (nodeType) => [wrappingInputRule(/^\\s*([-+*])\\s$/, nodeType)],\n commands: (nodeType) => [\n createCmd(SplitListItem, () => splitListItem(nodeType)),\n createCmd(SinkListItem, () => sinkListItem(nodeType)),\n createCmd(LiftListItem, () => liftListItem(nodeType)),\n ],\n shortcuts: {\n [SupportedKeys.NextListItem]: createShortcut(SplitListItem, 'Enter'),\n [SupportedKeys.SinkListItem]: createShortcut(SinkListItem, 'Mod-]'),\n [SupportedKeys.LiftListItem]: createShortcut(LiftListItem, 'Mod-['),\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { wrapIn, wrappingInputRule } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['OrderedList'];\n\nexport const WrapInOrderedList = createCmdKey();\n\nconst id = 'ordered_list';\nexport const orderedList = createNode<Keys>((utils) => ({\n id,\n schema: () => ({\n content: 'listItem+',\n group: 'block',\n attrs: {\n order: {\n default: 1,\n },\n },\n parseDOM: [\n {\n tag: 'ol',\n getAttrs: (dom) => {\n if (!(dom instanceof HTMLElement)) {\n throw new Error();\n }\n return { order: dom.hasAttribute('start') ? Number(dom.getAttribute('start')) : 1 };\n },\n },\n ],\n toDOM: (node) => [\n 'ol',\n {\n ...(node.attrs.order === 1 ? {} : node.attrs.order),\n class: utils.getClassName(node.attrs, 'ordered-list'),\n },\n 0,\n ],\n parseMarkdown: {\n match: ({ type, ordered }) => type === 'list' && !!ordered,\n runner: (state, node, type) => {\n state.openNode(type).next(node.children).closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === id,\n runner: (state, node) => {\n state.openNode('list', undefined, { ordered: true, start: 1 });\n state.next(node.content);\n state.closeNode();\n },\n },\n }),\n inputRules: (nodeType) => [\n wrappingInputRule(\n /^(\\d+)\\.\\s$/,\n nodeType,\n (match) => ({ order: Number(match[1]) }),\n (match, node) => node.childCount + node.attrs.order === Number(match[1]),\n ),\n ],\n commands: (nodeType) => [createCmd(WrapInOrderedList, () => wrapIn(nodeType))],\n shortcuts: {\n [SupportedKeys.OrderedList]: createShortcut(WrapInOrderedList, 'Mod-Shift-7'),\n },\n}));\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { css } from '@emotion/css';\nimport { createCmd, createCmdKey } from '@milkdown/core';\nimport { setBlockType } from '@milkdown/prose';\nimport { createNode, createShortcut } from '@milkdown/utils';\n\nimport { SupportedKeys } from '../supported-keys';\n\ntype Keys = SupportedKeys['Text'];\n\nexport const TurnIntoText = createCmdKey();\n\nconst id = 'paragraph';\nexport const paragraph = createNode<Keys>((utils, options) => {\n const style = options?.headless\n ? null\n : css`\n font-size: 1rem;\n line-height: 1.5;\n letter-spacing: 0.5px;\n `;\n\n return {\n id,\n schema: () => ({\n content: 'inline*',\n group: 'block',\n parseDOM: [{ tag: 'p' }],\n toDOM: (node) => ['p', { class: utils.getClassName(node.attrs, id, style) }, 0],\n parseMarkdown: {\n match: (node) => node.type === 'paragraph',\n runner: (state, node, type) => {\n state.openNode(type);\n if (node.children) {\n state.next(node.children);\n } else {\n state.addText(node.value as string);\n }\n state.closeNode();\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'paragraph',\n runner: (state, node) => {\n state.openNode('paragraph');\n state.next(node.content);\n state.closeNode();\n },\n },\n }),\n commands: (nodeType) => [createCmd(TurnIntoText, () => setBlockType(nodeType))],\n shortcuts: {\n [SupportedKeys.Text]: createShortcut(TurnIntoText, 'Mod-Alt-0'),\n },\n };\n});\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createNode } from '@milkdown/utils';\n\nexport const text = createNode(() => ({\n id: 'text',\n schema: () => ({\n group: 'inline',\n parseMarkdown: {\n match: ({ type }) => type === 'text',\n runner: (state, node) => {\n state.addText(node.value as string);\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === 'text',\n runner: (state, node) => {\n state.addNode('text', undefined, node.text as string);\n },\n },\n }),\n}));\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { blockquote } from './blockquote';\nimport { bulletList } from './bullet-list';\nimport { codeFence } from './code-fence';\nimport { doc } from './doc';\nimport { hardbreak } from './hardbreak';\nimport { heading } from './heading';\nimport { hr } from './hr';\nimport { image } from './image';\nimport { listItem } from './list-item';\nimport { orderedList } from './ordered-list';\nimport { paragraph } from './paragraph';\nimport { text } from './text';\n\nexport const nodes = [\n doc(),\n paragraph(),\n hardbreak(),\n blockquote(),\n codeFence(),\n bulletList(),\n orderedList(),\n listItem(),\n heading(),\n hr(),\n image(),\n text(),\n];\n\nexport * from './blockquote';\nexport * from './bullet-list';\nexport * from './code-fence';\nexport * from './doc';\nexport * from './hardbreak';\nexport * from './heading';\nexport * from './hr';\nexport * from './image';\nexport * from './list-item';\nexport * from './ordered-list';\nexport * from './paragraph';\nexport * from './text';\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { Literal, Node, Parent } from 'unist';\n\nconst isParent = (node: Node): node is Parent => !!(node as Parent).children;\nconst isHTML = (node: Node): node is Literal<string> => node.type === 'html';\n\nfunction flatMapWithDepth(ast: Node, fn: (node: Node, index: number, parent: Node | null) => Node[]) {\n return transform(ast, 0, null)[0];\n\n function transform(node: Node, index: number, parent: Node | null) {\n if (isParent(node)) {\n const out = [];\n for (let i = 0, n = node.children.length; i < n; i++) {\n const xs = transform(node.children[i], i, node);\n if (xs) {\n for (let j = 0, m = xs.length; j < m; j++) {\n out.push(xs[j]);\n }\n }\n }\n node.children = out;\n }\n\n return fn(node, index, parent);\n }\n}\n\nexport const filterHTMLPlugin = () => {\n function transformer(tree: Node) {\n flatMapWithDepth(tree, (node) => {\n if (!isHTML(node)) {\n return [node];\n }\n\n return [];\n });\n }\n return transformer;\n};\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { createPlugin } from '@milkdown/utils';\nimport links from 'remark-inline-links';\n\nimport { filterHTMLPlugin } from './filter-html';\n\nexport const commonmarkPlugins = [\n createPlugin(() => ({\n remarkPlugins: () => [links, filterHTMLPlugin],\n }))(),\n];\n","/* Copyright 2021, Milkdown by Mirone. */\nimport { AtomList } from '@milkdown/utils';\n\nimport { marks, ModifyLink, ToggleBold, ToggleInlineCode, ToggleItalic, ToggleLink } from './mark';\nimport {\n InsertHardbreak,\n InsertHr,\n InsertImage,\n LiftListItem,\n ModifyImage,\n nodes,\n SinkListItem,\n SplitListItem,\n TurnIntoCodeFence,\n TurnIntoHeading,\n TurnIntoText,\n WrapInBlockquote,\n WrapInBulletList,\n WrapInOrderedList,\n} from './node';\nimport { commonmarkPlugins } from './plugin';\n\nexport * from './mark';\nexport * from './node';\nexport * from './supported-keys';\n\nexport const commonmarkNodes = AtomList.create([...nodes, ...marks]);\nexport { commonmarkPlugins };\nexport const commonmark = AtomList.create([...commonmarkPlugins, ...commonmarkNodes]);\n\nexport const commands = {\n ToggleInlineCode,\n ToggleItalic,\n ToggleLink,\n ToggleBold,\n\n ModifyLink,\n ModifyImage,\n\n WrapInBlockquote,\n WrapInBulletList,\n WrapInOrderedList,\n\n TurnIntoCodeFence,\n TurnIntoHeading,\n TurnIntoText,\n\n InsertHardbreak,\n InsertHr,\n InsertImage,\n\n SplitListItem,\n SinkListItem,\n LiftListItem,\n} as const;\nexport type Commands = typeof commands;\n"],"names":["id","createCmdKey","createMark","utils","css","markRule","createCmd","toggleMark","createShortcut","TextSelection","InputRule","schemaCtx","createNode","wrappingInputRule","wrapIn","textblockTypeInputRule","setBlockType","themeToolCtx","Plugin","PluginKey","ReplaceStep","AddMarkStep","Selection","findSelectedNodeOfType","splitListItem","sinkListItem","liftListItem","createPlugin","links","AtomList"],"mappings":"wxBACa,GAAgB,CACzB,UAAW,YACX,WAAY,aACZ,WAAY,aACZ,YAAa,cACb,UAAW,YACX,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,KAAM,OACN,WAAY,aACZ,GAAI,KACJ,KAAM,OACN,aAAc,eACd,aAAc,eACd,aAAc,gBCVZA,GAAK,cAEE,EAAmBC,iBAEnB,GAAaC,aAAiB,AAACC,GAAU,MAC5C,GAAQA,EAAM,SAChB,CAAC,CAAE,UAAS,OAAM,UACdC;oCACwB,EAAQ;AAAA,yBACnB,EAAQ;AAAA,iCACA,EAAK;AAAA;AAAA,+BAEP,EAAK;AAAA;AAAA,qBAIzB,IACHJ,GACA,OAAQ,MACJ,SAAU,IACV,SAAU,CAAC,CAAE,IAAK,SAClB,MAAO,AAAC,GAAS,CAAC,OAAQ,CAAE,MAAOG,EAAM,aAAa,EAAK,MAAO,cAAe,KACjF,cAAe,CACX,MAAO,AAAC,GAAS,EAAK,OAAS,aAC/B,OAAQ,CAAC,EAAO,EAAM,IAAa,GACzB,SAAS,KACT,QAAQ,EAAK,SACb,UAAU,KAGxB,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASH,GACpC,OAAQ,CAAC,EAAO,EAAG,OACT,QAAQ,aAAc,OAAW,EAAK,MAAQ,IAE7C,OAInB,WAAY,AAAC,GAAa,CAACK,WAAS,yBAA0B,IAC9D,SAAU,AAAC,GAAa,CAACC,YAAU,EAAkB,IAAMC,aAAW,KACtE,UAAW,EACN,EAAc,YAAaC,iBAAe,EAAkB,aC1CnER,EAAK,KAEE,EAAeC,iBAEf,GAAKC,aAAiB,AAACC,QAChCH,EACA,OAAQ,MACJ,SAAU,CACN,CAAE,IAAK,KACP,CAAE,IAAK,MACP,CAAE,MAAO,aAAc,SAAU,AAAC,GAAW,IAAU,WAE3D,MAAO,AAAC,GAAS,CAAC,KAAM,CAAE,MAAOG,EAAM,aAAa,EAAK,MAAOH,KAChE,cAAe,CACX,MAAO,AAAC,GAAS,EAAK,OAAS,WAC/B,OAAQ,CAAC,EAAO,EAAM,IAAa,GACzB,SAAS,KACT,KAAK,EAAK,YACV,UAAU,KAGxB,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASA,EACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,EAAM,gBAIjC,WAAY,AAAC,GAAa,CACtBK,WAAS,yBAA0B,GACnCA,WAAS,2BAA4B,IAEzC,SAAU,AAAC,GAAa,CAACC,YAAU,EAAc,IAAMC,aAAW,KAClE,UAAW,EACN,EAAc,IAAKC,iBAAe,EAAc,aCrC5C,EAAaP,iBACb,EAAaA,iBACpBD,EAAK,OACE,GAAOE,aAAW,AAAC,GAAU,MAChC,GAAQ,EAAM,SAAS,AAAC,GAAc,MAClC,GAAY,EAAU,QAAQ,cAE7BE;qBACM,EAAU,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,oCAKH;AAAA,uCACG,gBAAwB;AAAA;AAAA,kBAIpD,IACHJ,EACA,OAAQ,MACJ,MAAO,CACH,KAAM,GACN,MAAO,CAAE,QAAS,OAEtB,UAAW,GACX,SAAU,CACN,CACI,IAAK,UACL,SAAU,AAAC,GAAQ,IACX,cAAiB,mBACX,IAAI,aAEP,CAAE,KAAM,EAAI,aAAa,QAAS,MAAO,EAAI,aAAa,aAI7E,MAAO,AAAC,GAAS,CAAC,IAAK,OAAK,EAAK,OAAV,CAAiB,MAAO,EAAM,aAAa,EAAK,MAAOA,EAAI,MAClF,cAAe,CACX,MAAO,AAAC,GAAS,EAAK,OAAS,OAC/B,OAAQ,CAAC,EAAO,EAAM,IAAa,MACzB,GAAM,EAAK,IACX,EAAQ,EAAK,QACb,SAAS,EAAU,CAAE,KAAM,EAAK,YAChC,KAAK,EAAK,YACV,UAAU,KAGxB,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASA,EACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,EAAM,OAAQ,OAAW,CACpC,MAAO,EAAK,MAAM,MAClB,IAAK,EAAK,MAAM,WAKhC,SAAU,AAAC,GAAa,CACpBM,YAAU,EAAY,CAAC,EAAO,KAAOC,aAAW,EAAU,CAAE,UAC5DD,YAAU,EAAY,CAAC,EAAO,KAAO,CAAC,EAAO,IAAa,IAClD,CAAC,QAAiB,QAEhB,CAAE,SAAU,EAAM,UAEpB,GACA,EAAM,QACJ,CAAE,aAAc,OAChB,IAAI,aAAa,EAAU,KAAM,EAAU,GAAI,CAAC,EAAG,IAAM,IACvD,EAAM,KAAK,QAAQ,EAAE,gBACd,IACD,EACC,KAIX,CAAC,QAAa,QAEZ,GAAO,EAAK,MAAM,KAAK,CAAC,CAAE,UAAW,IAAS,MAChD,CAAC,QAAa,QAEZ,GAAQ,EACR,EAAM,EAAM,EAAK,SACjB,CAAE,MAAO,EACT,EAAW,EAAM,KAAK,OAAO,OAAK,EAAK,OAAV,CAAiB,mBAEhD,EACK,WAAW,EAAO,EAAK,GACvB,QAAQ,EAAO,EAAK,GACpB,aAAa,GAAIG,iBAAc,EAAG,UAAU,UAC5C,kBAGF,MAGf,WAAY,CAAC,EAAU,IAAQ,CAC3B,GAAIC,aAAU,8DAA+D,CAAC,EAAO,EAAO,EAAO,IAAQ,MACjG,CAAC,EAAM,EAAO,GAAI,EAAM,GAAS,EACjC,CAAE,MAAO,KACX,EAAM,MACA,GAAU,GAAQ,SACrB,YAAY,EAAO,EAAK,EAAI,IAAIC,aAAW,KAAK,IAAU,QACzD,EACA,EAAQ,OAAS,EACjB,EAAS,OAAO,CAAE,QAAO,gBAI1B,SC1GjBX,EAAK,SACE,EAAaC,iBACb,GAASC,aAAiB,AAACC,GAAU,MACxC,GAAQA,EAAM,SAChB,IACIC;;qBAID,IACHJ,EACA,OAAQ,MACJ,SAAU,CACN,CAAE,IAAK,KACP,CAAE,IAAK,UACP,CAAE,MAAO,aAAc,SAAU,AAAC,GAAW,IAAU,SAE3D,MAAO,AAAC,GAAS,CAAC,SAAU,CAAE,MAAOG,EAAM,aAAa,EAAK,MAAOH,EAAI,KACxE,cAAe,CACX,MAAO,AAAC,GAAS,EAAK,OAAS,SAC/B,OAAQ,CAAC,EAAO,EAAM,IAAa,GACzB,SAAS,KACT,KAAK,EAAK,YACV,UAAU,KAGxB,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASA,EACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,EAAM,cAIjC,WAAY,AAAC,GAAa,CACtBK,WAAS,uBAAwB,GACjCA,WAAS,2BAA4B,IAEzC,SAAU,AAAC,GAAa,CAACC,YAAU,EAAY,IAAMC,aAAW,KAChE,UAAW,EACN,EAAc,MAAOC,iBAAe,EAAY,aC1ChD,GAAQ,CAAC,KAAc,KAAM,KAAU,MCI9CR,EAAK,aAEE,EAAmBC,iBAEnB,GAAaW,aAAiB,AAACT,GAAU,MAC5C,GAAQA,EAAM,SAChB,AAAC,GACGC;;;yCAG6B,EAAU,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,qBAQhD,IACHJ,EACA,OAAQ,MACJ,QAAS,SACT,MAAO,QACP,SAAU,GACV,SAAU,CAAC,CAAE,IAAK,eAClB,MAAO,AAAC,GAAS,CAAC,aAAc,CAAE,MAAOG,EAAM,aAAa,EAAK,MAAOH,EAAI,IAAU,GACtF,cAAe,CACX,MAAO,CAAC,CAAE,UAAW,IAASA,EAC9B,OAAQ,CAAC,EAAO,EAAM,IAAS,GACrB,SAAS,GAAM,KAAK,EAAK,UAAU,cAGjD,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASA,EACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,cAAc,KAAK,EAAK,SAAS,gBAI5D,WAAY,AAAC,GAAa,CAACa,oBAAkB,WAAY,IACzD,SAAU,AAAC,GAAa,CAACP,YAAU,EAAkB,IAAMQ,SAAO,KAClE,UAAW,EACN,EAAc,YAAaN,iBAAe,EAAkB,mBC3C5D,EAAmBP,iBAEnB,GAAaW,aAAiB,AAACT,GAAU,MAC5C,GAAK,oBACJ,CACH,KACA,OAAQ,MACJ,QAAS,YACT,MAAO,QACP,SAAU,CAAC,CAAE,IAAK,OAClB,MAAO,AAAC,GACG,CAAC,KAAM,CAAE,MAAOA,EAAM,aAAa,EAAK,MAAO,gBAAkB,GAE5E,cAAe,CACX,MAAO,CAAC,CAAE,OAAM,aAAc,IAAS,QAAU,CAAC,EAClD,OAAQ,CAAC,EAAO,EAAM,IAAS,GACrB,SAAS,GAAM,KAAK,EAAK,UAAU,cAGjD,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAAS,EACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,OAAQ,OAAW,CAAE,QAAS,KAAS,KAAK,EAAK,SAAS,gBAIrF,WAAY,AAAC,GAAa,CAACU,oBAAkB,iBAAkB,IAC/D,SAAU,AAAC,GAAa,CAACP,YAAU,EAAkB,IAAMQ,SAAO,KAClE,UAAW,EACN,EAAc,YAAaN,iBAAe,EAAkB,mBC5BnE,GAAkB,CACpB,GACA,aACA,aACA,OACA,MACA,OACA,OACA,MACA,IACA,MACA,OACA,OACA,SACA,KACA,OACA,YAGS,GAAqB,kCACrB,GAAkB,kCAElB,EAAoBP,iBAE3BD,EAAK,QACE,GAAYY,aAA8C,CAACT,EAAO,IAAY,MACjF,GAAQA,EAAM,SAAS,CAAC,CAAE,UAAS,QAAO,OAAM,UAAW,MACvD,CAAE,SAAQ,YAAW,UAAW,EAChC,CAAE,YAAW,UAAW,QACvBC;gCACiB,EAAQ;AAAA,qBACnB,EAAQ;AAAA;AAAA;AAAA,6BAGA;AAAA,2BACF,EAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAaC,EAAK;AAAA;AAAA,kBAEpB;AAAA,kBACA;AAAA;AAAA,oCAEkB,EAAQ;AAAA;AAAA;AAAA,yBAGnB,EAAQ,UAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAWf,EAAQ,QAAS;AAAA,mCACX,WAAmB,EAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,sCAKxB,EAAQ;AAAA,iCACb,EAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAiBP,EAAQ,YAAa;AAAA,6BAC1B,EAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAkBnB;AAAA,kBACA;AAAA,oCACkB,EAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAM1B,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA,+BAKG,EAAK;AAAA;AAAA;AAAA;AAAA,+BAIL,EAAK;AAAA;AAAA;AAAA,kBAMzB,IACHJ,EACA,OAAQ,MACJ,QAAS,QACT,MAAO,QACP,MAAO,GACP,SAAU,GACV,KAAM,GACN,MAAO,CACH,SAAU,CACN,QAAS,IAEb,KAAM,CACF,QAAS,KAGjB,SAAU,CACN,CACI,IAAK,MACL,mBAAoB,OACpB,SAAU,AAAC,GAAQ,IACX,cAAiB,mBACX,IAAI,OAAM,0BAEb,CAAE,SAAU,EAAI,QAAQ,aAI3C,MAAO,AAAC,GACG,CACH,MACA,CACI,gBAAiB,EAAK,MAAM,SAC5B,MAAOG,EAAM,aAAa,EAAK,MAAO,aAAc,IAExD,CAAC,MAAO,CAAC,OAAQ,CAAE,WAAY,SAAW,KAGlD,cAAe,CACX,MAAO,CAAC,CAAE,UAAW,IAAS,OAC9B,OAAQ,CAAC,EAAO,EAAM,IAAS,MACrB,GAAW,EAAK,KAChB,EAAQ,EAAK,QACb,SAAS,EAAM,CAAE,aACnB,KACM,QAAQ,KAEZ,cAGd,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASH,EACpC,OAAQ,CAAC,EAAO,IAAS,SACf,QAAQ,OAAQ,OAAW,MAAK,QAAQ,aAAb,cAAyB,OAAQ,GAAI,CAClE,KAAM,EAAK,MAAM,eAKjC,WAAY,AAAC,GAAa,CACtBe,yBAAuB,GAAoB,EAAU,AAAC,GAAU,MACtD,CAAC,EAAI,GAAY,KACnB,EAAC,QACE,CAAE,cAEbA,yBAAuB,GAAiB,EAAU,AAAC,GAAU,MACnD,CAAC,EAAI,GAAY,KACnB,EAAC,QACE,CAAE,eAGjB,SAAU,AAAC,GAAa,CAACT,YAAU,EAAmB,IAAMU,eAAa,KACzE,UAAW,EACN,EAAc,WAAYR,iBAAe,EAAmB,cAEjE,KAAM,AAAC,GAAQ,CAAC,EAAM,EAAM,IAAW,MAC7B,GAAY,SAAS,cAAc,OACnC,EAAgB,SAAS,cAAc,OACvC,EAAS,SAAS,cAAc,MAChC,EAAM,SAAS,cAAc,OAC7B,EAAO,SAAS,cAAc,QAE9B,EAAe,SAAS,cAAc,SAC/B,UAAY,wBACnB,GAAQ,SAAS,cAAc,UACxB,YAAY,KACZ,YAAY,EAAI,IAAIS,gBAAc,MAAM,KAAK,gBAEnD,UAAY,sBACZ,iBAAiB,YAAa,AAAC,GAAM,MACtC,mBACA,kBAEE,CAAC,EAAK,qBAEJ,GAAK,EAAE,UACT,cAAgB,4BACd,CAAE,MAAO,EAAK,QAEf,SACD,EAAG,cAAc,IAAU,OAAW,CAClC,KAAM,GACN,SAAU,EAAG,QAAQ,aAIpB,iBAAiB,YAAa,AAAC,GAAM,MAC5C,mBACA,kBAEE,CAAC,EAAK,qBACJ,CAAE,MAAO,EAAK,QAEf,SACD,EAAG,cAAc,IAAU,OAAW,CAClC,KAAM,GACN,SAAU,EAAU,QAAQ,uBAI/B,iBAAiB,YAAa,IAAM,IACrC,CAAC,EAAK,UAAY,EAAO,QAAQ,OAAS,mBAExC,CAAE,MAAO,EAAK,QAEf,SACD,EAAG,cAAc,IAAU,OAAW,CAClC,KAAM,GACN,SAAU,EAAU,QAAQ,iCAK9B,eAAgB,IAAiB,QAAQ,AAAC,GAAS,MACnD,GAAS,SAAS,cAAc,QAC/B,UAAY,6BACZ,UAAY,GAAQ,OACpB,YAAY,KACZ,aAAa,aAAc,OAGjC,WAAa,KACJ,UAAY,8BACZ,gBAAkB,UAClB,OAAO,KACP,OAAO,KACjB,OAAO,QACL,GAAc,SAAS,cAAc,gBACtC,OAAO,KACA,MAAM,WAAa,YAErB,OAAO,EAAe,KACtB,aAAa,QAASd,EAAM,aAAa,EAAK,MAAO,aAAc,MACnE,aAAa,gBAAiB,EAAK,MAAM,YAC7C,UAAY,EAAK,MAAM,UAAY,OAClC,aAAa,YAAa,EAAK,MAAM,KAAO,OAAS,SAErD,CACH,IAAK,EACL,WAAY,EACZ,OAAQ,AAAC,GAAgB,IACjB,EAAY,KAAK,OAASH,QAAW,QAEnC,GAAO,EAAY,MAAM,kBACrB,QAAQ,SAAW,IACvB,UAAY,GAAQ,OACnB,aAAa,YAAa,EAAY,MAAM,KAAO,OAAS,SAE5D,SCpTd,GAAMY,aAAW,IACnB,EACH,GAAI,MACJ,OAAQ,MACJ,QAAS,SACT,cAAe,CACX,MAAO,CAAC,CAAE,UAAW,IAAS,OAC9B,OAAQ,CAAC,EAAO,EAAM,IAAS,GACrB,WAAW,EAAM,KAG/B,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAAS,MACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,UACT,KAAK,EAAK,gBCTvB,EAAkBX,iBAElB,GAAYW,aAAiB,AAACT,GAChC,EACH,GAAI,YACJ,OAAQ,MACJ,OAAQ,GACR,MAAO,SACP,WAAY,GACZ,SAAU,CAAC,CAAE,IAAK,OAClB,MAAO,AAAC,GAAS,CAAC,KAAM,CAAE,MAAOA,EAAM,aAAa,EAAK,MAAO,eAChE,cAAe,CACX,MAAO,CAAC,CAAE,UAAW,IAAS,QAC9B,OAAQ,CAAC,EAAO,EAAG,IAAS,GAClB,QAAQ,KAGtB,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAAS,YACpC,OAAQ,AAAC,GAAU,GACT,QAAQ,aAI1B,SAAU,AAAC,GAAS,CAChBG,YAAU,EAAiB,IAAM,CAAC,EAAO,gBAC1B,EAAM,GAAG,QAAQ,YAAa,IAAM,qBAAqB,EAAK,UAAU,kBAC5E,MAGf,UAAW,EACN,EAAc,WAAYE,iBAAe,EAAiB,gBAE/D,aAAc,AAAC,GAAS,CACpB,GAAIU,UAAO,CACP,IAAK,GAAIC,aAAU,mBACnB,kBAAmB,CAAC,EAAK,EAAW,IAAa,IACzC,CAAC,EAAI,mBACH,CAAC,GAAM,EAEP,CAAC,GAAQ,EAAG,SAEC,EAAG,QAAQ,aACd,IACR,cAAkBC,4BAGhB,CAAE,QAAS,QACV,GAAS,GAAG,cAAc,EAAM,EAAM,OAAW,OAGtC,YAAgBC,eACnB,IACX,GAAM,EAAS,QACb,CAAE,OAAM,MAAO,WACZ,IAAI,aAAa,EAAM,EAAI,CAAC,EAAM,IAAQ,CAC3C,EAAK,OAAS,MACR,EAAI,cAAc,EAAK,EAAM,OAAW,OAI/C,UC9DzB,GAAe,MAAM,GACtB,KAAK,GACL,IAAI,CAAC,EAAG,IAAM,EAAI,GAUV,EAAkBpB,iBAElB,GAAUW,aAAiB,CAACT,EAAO,IAAY,MAClD,GAAK,UACL,EAAqC,CACvC,EAAGC;;;UAIH,EAAGA;;;UAIH,EAAGA;;;WAMD,EAAQ,AAAC,GACX,kBAAS,UACH,KACAA;oBACM,EAAW,IAAU;AAAA;AAAA;AAAA,sBAK9B,CACH,KACA,OAAQ,MACJ,QAAS,UACT,MAAO,QACP,MAAO,CACH,MAAO,CACH,QAAS,GAEb,GAAI,CACA,QAAS,KAGjB,SAAU,GAAa,IAAI,AAAC,KAAS,IAAK,IAAI,IAAK,MAAO,CAAE,MAAO,MACnE,MAAO,AAAC,GACG,CACH,IAAI,EAAK,MAAM,QACf,CACI,MAAOD,EAAM,aAAa,EAAK,MAAO,YAAY,EAAK,MAAM,QAAS,EAAM,EAAK,MAAM,SAE3F,GAGR,cAAe,CACX,MAAO,CAAC,CAAE,UAAW,IAAS,EAC9B,OAAQ,CAAC,EAAO,EAAM,IAAS,MACrB,GAAQ,EAAK,QACb,SAAS,EAAM,CAAE,MAAO,MACxB,KAAK,EAAK,YACV,cAGd,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAAS,EACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,UAAW,OAAW,CAAE,MAAO,EAAK,MAAM,UACnD,KAAK,EAAK,WACV,gBAIlB,WAAY,AAAC,GACT,GAAa,IAAI,AAAC,GACdY,yBAAuB,GAAI,QAAO,SAAS,WAAY,EAAM,MACzD,MAAO,MAGnB,SAAU,AAAC,GAAS,CAACT,YAAU,EAAiB,CAAC,EAAQ,IAAMU,eAAa,EAAM,CAAE,YACpF,UAAW,EACN,EAAc,IAAKR,iBAAe,EAAiB,YAAa,IAChE,EAAc,IAAKA,iBAAe,EAAiB,YAAa,IAChE,EAAc,IAAKA,iBAAe,EAAiB,YAAa,IAChE,EAAc,IAAKA,iBAAe,EAAiB,YAAa,IAChE,EAAc,IAAKA,iBAAe,EAAiB,YAAa,IAChE,EAAc,IAAKA,iBAAe,EAAiB,YAAa,OChGvER,EAAK,KACE,EAAWC,iBACX,GAAKW,aAAW,AAAC,GAAU,MAC9B,GAAQ,EAAM,SAChB,AAAC,GAAcR;sBACD,EAAU,KAAK;AAAA,gCACL,EAAU,QAAQ;AAAA;AAAA,iBAIvC,IACHJ,EACA,OAAQ,MACJ,MAAO,QACP,SAAU,CAAC,CAAE,IAAK,OAClB,MAAO,AAAC,GAAS,CAAC,KAAM,CAAE,MAAO,EAAM,aAAa,EAAK,MAAOA,EAAI,KACpE,cAAe,CACX,MAAO,CAAC,CAAE,UAAW,IAAS,gBAC9B,OAAQ,CAAC,EAAO,EAAG,IAAS,GAClB,QAAQ,KAGtB,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASA,EACpC,OAAQ,AAAC,GAAU,GACT,QAAQ,qBAI1B,WAAY,AAAC,GAAS,CAClB,GAAIU,aAAU,2BAA4B,CAAC,EAAO,EAAO,EAAO,IAAQ,MAC9D,CAAE,MAAO,QAEX,GAAM,MACH,YAAY,EAAQ,EAAG,EAAK,EAAK,UAGjC,KAGf,SAAU,CAAC,EAAM,IAAQ,CACrBJ,YAAU,EAAU,IAAM,CAAC,EAAO,IAAa,IACvC,CAAC,QAAiB,QAChB,CAAE,KAAI,aAAc,EACpB,EAAO,EAAU,KACjB,EAAO,EAAK,YACd,CAAC,QACM,QAEL,GAAM,EAAG,qBAAqB,GAAM,OAAO,EAAM,EAAI,IAAIK,aAAW,KAAK,cACzE,EAAMW,YAAU,SAAS,EAAI,IAAI,QAAQ,GAAO,EAAG,UACpD,MAGI,EAAI,aAAa,GAAK,kBACxB,SCtDV,GAAcrB,iBACd,GAAcA,iBACrBD,EAAK,QASE,GAAQY,aAAiC,CAAC,EAAO,IAAY,cAChE,GAAc,GAChB,QAAS,aACT,MAAO,eACP,OAAQ,sBACJ,oBAAS,cAAT,OAAwB,IAE1B,EAAU,oBAAS,UAAT,OAAoB,GAC9B,EAAiB,EAAM,SACzB,AAAC,GACGR;;;;;;;;kBAQM,EACI;AAAA;AAAA;AAAA,kBAIA;AAAA;AAAA;AAAA;AAAA,kCAIY,EAAU,QAAQ,YAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAoCzB,EAAU,QAAQ;AAAA,qCACrB,EAAU,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qCAWf,EAAU,QAAQ,UAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAQ1B,EAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAQZ,EAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAQZ,EAAY;AAAA;AAAA;AAAA;AAAA,eAO1C,EAAQ,EAAM,SAChB,IACIA;;;;;;;;qBAWD,CACH,GAAI,QACJ,OAAQ,MACJ,OAAQ,GACR,MAAO,SACP,WAAY,GACZ,UAAW,GACX,MAAO,GACP,KAAM,GACN,SAAU,GACV,UAAW,GACX,MAAO,CACH,IAAK,CAAE,QAAS,IAChB,IAAK,CAAE,QAAS,MAChB,MAAO,CAAE,QAAS,MAClB,OAAQ,CAAE,QAAS,IACnB,QAAS,CAAE,QAAS,IACpB,MAAO,CAAE,QAAS,IAEtB,SAAU,CACN,CACI,IAAK,WACL,SAAU,AAAC,GAAQ,IACX,cAAiB,mBACX,IAAI,aAEP,CACH,OAAQ,EAAI,UAAU,SAAS,UAC/B,QAAS,EAAI,UAAU,SAAS,WAChC,IAAK,EAAI,aAAa,QAAU,GAChC,IAAK,EAAI,aAAa,OACtB,MAAO,EAAI,aAAa,UAAY,EAAI,aAAa,OACrD,MAAO,EAAI,aAAa,UAAY,MAKpD,MAAO,AAAC,GACG,CACH,MACA,OACO,EAAK,OADZ,CAEI,MAAO,EAAM,aACT,EAAK,MACLJ,EACA,EAAK,MAAM,OAAS,SAAW,GAC/B,EAAK,MAAM,QAAU,UAAY,GACjC,MAKhB,cAAe,CACX,MAAO,CAAC,CAAE,UAAW,IAASA,EAC9B,OAAQ,CAAC,EAAO,EAAM,IAAS,MACrB,GAAM,EAAK,IACX,EAAM,EAAK,IACX,EAAQ,EAAK,QACb,QAAQ,EAAM,CAChB,IAAK,EACL,MACA,YAIZ,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASA,EACpC,OAAQ,CAAC,EAAO,IAAS,GACf,QAAQ,QAAS,OAAW,OAAW,CACzC,MAAO,EAAK,MAAM,MAClB,IAAK,EAAK,MAAM,IAChB,IAAK,EAAK,MAAM,UAKhC,SAAU,AAAC,GAAS,CAChBM,YAAU,GAAa,CAAC,EAAM,KAAO,CAAC,EAAO,IAAa,IAClD,CAAC,QAAiB,QAChB,CAAE,MAAO,EACT,EAAO,EAAK,OAAO,CAAE,WACvB,CAAC,QACM,QAEL,GAAM,EAAG,qBAAqB,YAC3B,EAAI,kBACN,KAEXA,YAAU,GAAa,CAAC,EAAM,KAAO,CAAC,EAAO,IAAa,MAChD,GAAOiB,yBAAuB,EAAM,UAAW,MACjD,CAAC,QAAa,QAEZ,CAAE,MAAO,oBAEX,EAAG,cAAc,EAAK,IAAK,OAAW,OAAK,EAAK,KAAK,OAAf,CAAsB,QAAS,GAAM,SAAO,kBAG/E,MAGf,WAAY,AAAC,GAAS,CAClB,GAAIb,aACA,qEACA,CAAC,EAAO,EAAO,EAAO,IAAQ,MACpB,CAAC,EAAM,EAAK,EAAM,GAAI,GAAS,EAC/B,CAAE,MAAO,QACX,MACG,YAAY,EAAO,EAAK,EAAK,OAAO,CAAE,MAAK,MAAK,WAGhD,KAInB,KAAM,AAAC,GAAQ,CAAC,EAAM,EAAM,IAAW,MAC7B,GAAW,EAAK,KAChB,EAAa,EAAI,IAAIO,gBAAc,MAAM,KACzC,EAAY,SAAS,cAAc,UAC/B,UAAY,EAAM,aAAa,EAAK,MAAOjB,EAAI,QAEnD,GAAU,SAAS,cAAc,SAE7B,OAAO,MACb,GAAO,EAAW,cAChB,GAAc,SAAS,cAAc,UAC/B,UAAU,IAAI,iBAChB,OAAO,EAAM,QAEjB,GAAU,AAAC,GAAe,MACtB,GAAW,EAAW,KAClB,aAAa,EAAU,KAC1B,GAGL,GAAY,AAAC,GAAgB,GACrB,UAAU,IAAI,SAAU,aAC1B,gBACF,GAAM,SAAS,cAAc,SAC/B,IAAM,IAEN,QAAU,IAAM,MACV,CAAE,MAAO,EAAK,MACd,EAAM,EAAG,cAAc,IAAU,EAAU,OAC1C,EAAK,OADqC,CAE7C,MACA,QAAS,GACT,OAAQ,QAEP,SAAS,MAGd,OAAS,IAAM,MACT,CAAE,MAAO,EAAK,MACd,EAAM,EAAG,cAAc,IAAU,EAAU,OAC1C,EAAK,OADqC,CAE7C,MAAO,EAAI,MACX,MACA,QAAS,GACT,OAAQ,QAEP,SAAS,KAIhB,CAAE,MAAK,WAAS,SAAO,OAAK,UAAU,EAAK,eACzC,IAAM,IACN,MAAQ,IAAS,KACjB,IAAM,KACN,MAAQ,GAEZ,EAAI,SAAW,KACL,UAAU,IAAI,SAAU,WAC1B,UACD,OACG,GAGP,CACH,IAAK,EACL,OAAQ,AAAC,GAAgB,IACjB,EAAY,KAAK,OAASA,QAAW,QAEnC,CAAE,MAAK,MAAK,QAAO,WAAS,UAAQ,UAAU,EAAY,eACxD,IAAM,IACN,IAAM,IACN,MAAQ,GAAS,IACjB,MAAQ,GACZ,OACU,GACH,IAEP,MACU,UAAU,OAAO,UAAW,WAC5B,UAAU,IAAI,SAAU,YAC1B,eACD,IAEP,EAAI,OAAS,KACH,UAAU,OAAO,SAAU,QAAS,WACvC,OAGD,UAAU,IAAI,SAAU,WAC1B,SACD,KAEX,WAAY,IAAM,GACJ,UAAU,IAAI,6BAE5B,aAAc,IAAM,GACN,UAAU,OAAO,kCCjVzCA,GAAK,YAEE,EAAgBC,iBAChB,EAAeA,iBACf,EAAeA,iBAEf,GAAWW,aAAiB,AAACT,GAAU,MAC1C,GAAQA,EAAM,SAChB,AAAC,GACGC;;;;;;;;;iCASqB,EAAU,QAAQ;AAAA;AAAA;AAAA,qBAMxC,IACHJ,GACA,OAAQ,MACJ,MAAO,WACP,QAAS,mBACT,SAAU,GACV,SAAU,CAAC,CAAE,IAAK,OAClB,MAAO,AAAC,GAAS,CAAC,KAAM,CAAE,MAAOG,EAAM,aAAa,EAAK,MAAO,YAAa,IAAU,GACvF,cAAe,CACX,MAAO,CAAC,CAAE,OAAM,aAAc,IAAS,YAAc,IAAY,KACjE,OAAQ,CAAC,EAAO,EAAM,IAAS,GACrB,SAAS,KACT,KAAK,EAAK,YACV,cAGd,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASH,GACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,cACT,KAAK,EAAK,WACV,gBAIlB,WAAY,AAAC,GAAa,CAACa,oBAAkB,iBAAkB,IAC/D,SAAU,AAAC,GAAa,CACpBP,YAAU,EAAe,IAAMkB,gBAAc,IAC7ClB,YAAU,EAAc,IAAMmB,eAAa,IAC3CnB,YAAU,EAAc,IAAMoB,eAAa,KAE/C,UAAW,EACN,EAAc,cAAelB,iBAAe,EAAe,UAC3D,EAAc,cAAeA,iBAAe,EAAc,UAC1D,EAAc,cAAeA,iBAAe,EAAc,aC3D1D,EAAoBP,iBAE3BD,GAAK,eACE,GAAcY,aAAiB,AAACT,QACzCH,GACA,OAAQ,MACJ,QAAS,YACT,MAAO,QACP,MAAO,CACH,MAAO,CACH,QAAS,IAGjB,SAAU,CACN,CACI,IAAK,KACL,SAAU,AAAC,GAAQ,IACX,cAAiB,mBACX,IAAI,aAEP,CAAE,MAAO,EAAI,aAAa,SAAW,OAAO,EAAI,aAAa,UAAY,MAI5F,MAAO,AAAC,GAAS,CACb,KACA,OACQ,EAAK,MAAM,QAAU,EAAI,GAAK,EAAK,MAAM,OADjD,CAEI,MAAOG,EAAM,aAAa,EAAK,MAAO,kBAE1C,GAEJ,cAAe,CACX,MAAO,CAAC,CAAE,OAAM,aAAc,IAAS,QAAU,CAAC,CAAC,EACnD,OAAQ,CAAC,EAAO,EAAM,IAAS,GACrB,SAAS,GAAM,KAAK,EAAK,UAAU,cAGjD,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAASH,GACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,OAAQ,OAAW,CAAE,QAAS,GAAM,MAAO,MACpD,KAAK,EAAK,WACV,gBAIlB,WAAY,AAAC,GAAa,CACtBa,oBACI,cACA,EACA,AAAC,KAAa,MAAO,OAAO,EAAM,MAClC,CAAC,EAAO,IAAS,EAAK,WAAa,EAAK,MAAM,QAAU,OAAO,EAAM,MAG7E,SAAU,AAAC,GAAa,CAACP,YAAU,EAAmB,IAAMQ,SAAO,KACnE,UAAW,EACN,EAAc,aAAcN,iBAAe,EAAmB,mBCxD1D,EAAeP,iBAEtB,GAAK,YACE,GAAYW,aAAiB,CAACT,EAAO,IAAY,MACpD,GAAQ,kBAAS,UACjB,KACAC;;;;kBAMC,CACH,MACA,OAAQ,MACJ,QAAS,UACT,MAAO,QACP,SAAU,CAAC,CAAE,IAAK,MAClB,MAAO,AAAC,GAAS,CAAC,IAAK,CAAE,MAAOD,EAAM,aAAa,EAAK,MAAO,GAAI,IAAU,GAC7E,cAAe,CACX,MAAO,AAAC,GAAS,EAAK,OAAS,YAC/B,OAAQ,CAAC,EAAO,EAAM,IAAS,GACrB,SAAS,GACX,EAAK,WACC,KAAK,EAAK,YAEV,QAAQ,EAAK,SAEjB,cAGd,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAAS,YACpC,OAAQ,CAAC,EAAO,IAAS,GACf,SAAS,eACT,KAAK,EAAK,WACV,gBAIlB,SAAU,AAAC,GAAa,CAACG,YAAU,EAAc,IAAMU,eAAa,KACpE,UAAW,EACN,EAAc,MAAOR,iBAAe,EAAc,iBCjDlD,GAAOI,aAAW,MAC3B,GAAI,OACJ,OAAQ,MACJ,MAAO,SACP,cAAe,CACX,MAAO,CAAC,CAAE,UAAW,IAAS,OAC9B,OAAQ,CAAC,EAAO,IAAS,GACf,QAAQ,EAAK,SAG3B,WAAY,CACR,MAAO,AAAC,GAAS,EAAK,KAAK,OAAS,OACpC,OAAQ,CAAC,EAAO,IAAS,GACf,QAAQ,OAAQ,OAAW,EAAK,aCFzC,GAAQ,CACjB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MCvBE,GAAW,AAAC,GAA+B,CAAC,CAAE,EAAgB,SAC9D,GAAS,AAAC,GAAwC,EAAK,OAAS,OAEtE,YAA0B,EAAW,EAAgE,OAC1F,GAAU,EAAK,EAAG,MAAM,cAEZ,EAAY,EAAe,EAAqB,IAC3D,GAAS,GAAO,MACV,GAAM,UACH,GAAI,EAAG,EAAI,EAAK,SAAS,OAAQ,EAAI,EAAG,IAAK,MAC5C,GAAK,EAAU,EAAK,SAAS,GAAI,EAAG,MACtC,SACS,GAAI,EAAG,EAAI,EAAG,OAAQ,EAAI,EAAG,MAC9B,KAAK,EAAG,MAInB,SAAW,QAGb,GAAG,EAAM,EAAO,SAIlB,IAAmB,IAAM,YACb,EAAY,IACZ,EAAM,AAAC,GACf,GAAO,GAIL,GAHI,CAAC,UAMb,IC/BE,GAAoB,CAC7Be,eAAa,MACT,cAAe,IAAM,CAACC,WAAO,UCkBxB,GAAkBC,WAAS,OAAO,CAAC,GAAG,GAAO,GAAG,KAEhD,GAAaA,WAAS,OAAO,CAAC,GAAG,GAAmB,GAAG,KAEvD,GAAW,CACpB,mBACA,eACA,aACA,aAEA,aACA,eAEA,mBACA,mBACA,oBAEA,oBACA,kBACA,eAEA,kBACA,WACA,eAEA,gBACA,eACA"}
|
package/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAmB3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AAEjC,eAAO,MAAM,eAAe;;gOAAwC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,eAAO,MAAM,UAAU;;gOAA8D,CAAC;AAEtF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;CAwBX,CAAC;AACX,oBAAY,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code-inline.d.ts","sourceRoot":"","sources":["../../src/mark/code-inline.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB,4CAAiB,CAAC;AAE/C,eAAO,MAAM,UAAU;;;;EAyCrB,CAAC"}
|
package/lib/mark/em.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"em.d.ts","sourceRoot":"","sources":["../../src/mark/em.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,YAAY,4CAAiB,CAAC;AAE3C,eAAO,MAAM,EAAE;;;;EAgCZ,CAAC"}
|
package/lib/mark/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare const marks: (import("@milkdown/utils/lib/types").Metadata<import("@milkdown/utils/lib/types").GetPlugin<string, import("@milkdown/utils").UnknownRecord>> & import("@milkdown/core").MilkdownPlugin)[];
|
|
2
|
-
export * from './code-inline';
|
|
3
|
-
export * from './em';
|
|
4
|
-
export * from './link';
|
|
5
|
-
export * from './strong';
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
package/lib/mark/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mark/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,KAAK,4LAAyC,CAAC;AAE5D,cAAc,eAAe,CAAC;AAC9B,cAAc,MAAM,CAAC;AACrB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
|
package/lib/mark/link.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/mark/link.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,UAAU,yCAAyB,CAAC;AACjD,eAAO,MAAM,UAAU,yCAAyB,CAAC;AAEjD,eAAO,MAAM,IAAI;;;;EA8Gf,CAAC"}
|
package/lib/mark/strong.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strong.d.ts","sourceRoot":"","sources":["../../src/mark/strong.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,4CAAiB,CAAC;AACzC,eAAO,MAAM,MAAM;;;;EAwCjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blockquote.d.ts","sourceRoot":"","sources":["../../src/node/blockquote.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gBAAgB,4CAAiB,CAAC;AAE/C,eAAO,MAAM,UAAU;;;;EAyCrB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bullet-list.d.ts","sourceRoot":"","sources":["../../src/node/bullet-list.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,gBAAgB,4CAAiB,CAAC;AAE/C,eAAO,MAAM,UAAU;;;;EA8BrB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code-fence.d.ts","sourceRoot":"","sources":["../../src/node/code-fence.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,kBAAkB,QAAoC,CAAC;AACpE,eAAO,MAAM,eAAe,QAAoC,CAAC;AAEjE,eAAO,MAAM,iBAAiB,4CAAiB,CAAC;AAGhD,eAAO,MAAM,SAAS;;;;;;EAyRpB,CAAC"}
|
package/lib/node/doc.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../src/node/doc.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG;;;;EAoBd,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hardbreak.d.ts","sourceRoot":"","sources":["../../src/node/hardbreak.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,eAAe,4CAAiB,CAAC;AAE9C,eAAO,MAAM,SAAS;;;;EAmEpB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../src/node/heading.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMlD,aAAK,IAAI,GACH,aAAa,CAAC,IAAI,CAAC,GACnB,aAAa,CAAC,IAAI,CAAC,GACnB,aAAa,CAAC,IAAI,CAAC,GACnB,aAAa,CAAC,IAAI,CAAC,GACnB,aAAa,CAAC,IAAI,CAAC,GACnB,aAAa,CAAC,IAAI,CAAC,CAAC;AAE1B,eAAO,MAAM,eAAe,yCAAyB,CAAC;AAEtD,eAAO,MAAM,OAAO;;;;EAmFlB,CAAC"}
|
package/lib/node/hr.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hr.d.ts","sourceRoot":"","sources":["../../src/node/hr.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ,yCAAyB,CAAC;AAC/C,eAAO,MAAM,EAAE;;;;EAyDb,CAAC"}
|
package/lib/node/image.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/node/image.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,yCAAyB,CAAC;AAClD,eAAO,MAAM,WAAW,yCAAyB,CAAC;AAElD,oBAAY,YAAY,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL,CAAC;AACF,eAAO,MAAM,KAAK;;;;EA8UhB,CAAC"}
|
package/lib/node/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,KAAK;;mOAajB,CAAC;AAEF,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-item.d.ts","sourceRoot":"","sources":["../../src/node/list-item.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,aAAK,IAAI,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;AAI1G,eAAO,MAAM,aAAa,4CAAiB,CAAC;AAC5C,eAAO,MAAM,YAAY,4CAAiB,CAAC;AAC3C,eAAO,MAAM,YAAY,4CAAiB,CAAC;AAE3C,eAAO,MAAM,QAAQ;;;;EAuDnB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ordered-list.d.ts","sourceRoot":"","sources":["../../src/node/ordered-list.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,iBAAiB,4CAAiB,CAAC;AAGhD,eAAO,MAAM,WAAW;;;;EAwDrB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph.d.ts","sourceRoot":"","sources":["../../src/node/paragraph.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,YAAY,4CAAiB,CAAC;AAG3C,eAAO,MAAM,SAAS;;;;EA0CpB,CAAC"}
|
package/lib/node/text.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/node/text.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI;;;;EAiBd,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter-html.d.ts","sourceRoot":"","sources":["../../src/plugin/filter-html.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,IAAI,EAAU,MAAM,OAAO,CAAC;AA0B9C,eAAO,MAAM,gBAAgB,eACE,IAAI,SAUlC,CAAC"}
|
package/lib/plugin/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,4LAI7B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"supported-keys.d.ts","sourceRoot":"","sources":["../src/supported-keys.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;CAmBhB,CAAC;AAEX,oBAAY,aAAa,GAAG,OAAO,aAAa,CAAC"}
|