1&&i==this.$to.end(--r);)++i;return i}findCloseLevel(e){e:for(let n=Math.min(this.depth,e.depth);n>=0;n--){let{match:r,type:i}=this.frontier[n],o=nr){let a=r+o.border,l=s-o.border;if(e>=a&&n<=l){this.dirty=e==r||n==s?Gn:Fu,e==a&&n==l&&(o.contentLost||o.dom.parentNode!=this.contentDOM)?o.dirty=Gt:o.markDirty(e-a,n-a);return}else o.dirty=o.dom==o.contentDOM&&o.dom.parentNode==this.contentDOM&&!o.children.length?Gn:Gt}r=s}this.dirty=Gn}markParentsDirty(){let e=1;for(let n=this.parent;n;n=n.parent,e++){let r=e==1?Gn:Fu;n.dirty-1)a>this.index&&(this.changed=!0,this.destroyBetween(this.index,a)),this.top=this.top.children[this.index];else{let l=Ir.create(this.top,e[o],n,r);this.top.children.splice(this.index,0,l),this.top=l,this.changed=!0}this.index=0,o++}}findNodeMatch(e,n,r,i){let o=-1,s;if(i>=this.preMatch.index&&(s=this.preMatch.matches[i-this.preMatch.index]).parent==this.top&&s.matchesNode(e,n,r))o=this.top.children.indexOf(s,this.index);else for(let a=this.index,l=Math.min(this.top.children.length,a+5);am;h--)p-=i.child(h).nodeSize,r.delete(p-1,p+1);let o=r.doc.resolve(n.start),s=o.nodeAfter;if(r.mapping.map(n.end)!=n.start+o.nodeAfter.nodeSize)return!1;let a=n.startIndex==0,l=n.endIndex==i.childCount,c=o.node(-1),d=o.index(-1);if(!c.canReplace(d+(a?0:1),d+1,s.content.append(l?_.empty:_.from(i))))return!1;let u=o.pos,f=u+s.nodeSize;return r.step(new Ie(u-(a?1:0),f+(l?1:0),u+1,f-1,new L((a?_.empty:_.from(i.copy(_.empty))).append(l?_.empty:_.from(i.copy(_.empty))),a?0:1,l?0:1),a?0:1)),e(r.scrollIntoView()),!0}function Qf(t){return function(e,n){let{$from:r,$to:i}=e.selection,o=r.blockRange(i,c=>c.childCount>0&&c.firstChild.type==t);if(!o)return!1;let s=o.startIndex;if(s==0)return!1;let a=o.parent,l=a.child(s-1);if(l.type!=t)return!1;if(n){let c=l.lastChild&&l.lastChild.type==a.type,d=_.from(c?t.create():null),u=new L(_.from(t.create(null,_.from(a.type.create(null,d)))),c?3:1,0),f=o.start,p=o.end;n(e.tr.step(new Ie(f-(c?3:1),p,f,p,u,1,!0)).scrollIntoView())}return!0}}function Po(t){let{state:e,transaction:n}=t,{selection:r}=n,{doc:i}=n,{storedMarks:o}=n;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),filterTransaction:e.filterTransaction,plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return o},get selection(){return r},get doc(){return i},get tr(){return r=n.selection,i=n.doc,o=n.storedMarks,n}}}var Pr=class{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:n,state:r}=this,{view:i}=n,{tr:o}=r,s=this.buildProps(o);return Object.fromEntries(Object.entries(e).map(([a,l])=>[a,(...d)=>{let u=l(...d)(s);return!o.getMeta("preventDispatch")&&!this.hasCustomState&&i.dispatch(o),u}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,n=!0){let{rawCommands:r,editor:i,state:o}=this,{view:s}=i,a=[],l=!!e,c=e||o.tr,d=()=>(!l&&n&&!c.getMeta("preventDispatch")&&!this.hasCustomState&&s.dispatch(c),a.every(f=>f===!0)),u={...Object.fromEntries(Object.entries(r).map(([f,p])=>[f,(...m)=>{let g=this.buildProps(c,n),y=p(...m)(g);return a.push(y),u}])),run:d};return u}createCan(e){let{rawCommands:n,state:r}=this,i=!1,o=e||r.tr,s=this.buildProps(o,i);return{...Object.fromEntries(Object.entries(n).map(([l,c])=>[l,(...d)=>c(...d)({...s,dispatch:void 0})])),chain:()=>this.createChain(o,i)}}buildProps(e,n=!0){let{rawCommands:r,editor:i,state:o}=this,{view:s}=i,a={tr:e,editor:i,view:s,state:Po({state:o,transaction:e}),dispatch:n?()=>{}:void 0,chain:()=>this.createChain(e,n),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(r).map(([l,c])=>[l,(...d)=>c(...d)(a)]))}};return a}},xl=class{constructor(){this.callbacks={}}on(e,n){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(n),this}emit(e,...n){let r=this.callbacks[e];return r&&r.forEach(i=>i.apply(this,n)),this}off(e,n){let r=this.callbacks[e];return r&&(n?this.callbacks[e]=r.filter(i=>i!==n):delete this.callbacks[e]),this}removeAllListeners(){this.callbacks={}}};function F(t,e,n){return t.config[e]===void 0&&t.parent?F(t.parent,e,n):typeof t.config[e]=="function"?t.config[e].bind({...n,parent:t.parent?F(t.parent,e,n):null}):t.config[e]}function Bo(t){let e=t.filter(i=>i.type==="extension"),n=t.filter(i=>i.type==="node"),r=t.filter(i=>i.type==="mark");return{baseExtensions:e,nodeExtensions:n,markExtensions:r}}function ap(t){let e=[],{nodeExtensions:n,markExtensions:r}=Bo(t),i=[...n,...r],o={default:null,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return t.forEach(s=>{let a={name:s.name,options:s.options,storage:s.storage},l=F(s,"addGlobalAttributes",a);if(!l)return;l().forEach(d=>{d.types.forEach(u=>{Object.entries(d.attributes).forEach(([f,p])=>{e.push({type:u,name:f,attribute:{...o,...p}})})})})}),i.forEach(s=>{let a={name:s.name,options:s.options,storage:s.storage},l=F(s,"addAttributes",a);if(!l)return;let c=l();Object.entries(c).forEach(([d,u])=>{let f={...o,...u};typeof f?.default=="function"&&(f.default=f.default()),f?.isRequired&&f?.default===void 0&&delete f.default,e.push({type:s.name,name:d,attribute:f})})}),e}function Ue(t,e){if(typeof t=="string"){if(!e.nodes[t])throw Error(`There is no node type named '${t}'. Maybe you forgot to add the extension?`);return e.nodes[t]}return t}function P(...t){return t.filter(e=>!!e).reduce((e,n)=>{let r={...e};return Object.entries(n).forEach(([i,o])=>{if(!r[i]){r[i]=o;return}if(i==="class"){let a=o?o.split(" "):[],l=r[i]?r[i].split(" "):[],c=a.filter(d=>!l.includes(d));r[i]=[...l,...c].join(" ")}else i==="style"?r[i]=[r[i],o].join("; "):r[i]=o}),r},{})}function kl(t,e){return e.filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(t.attrs)||{}:{[n.name]:t.attrs[n.name]}).reduce((n,r)=>P(n,r),{})}function lp(t){return typeof t=="function"}function ne(t,e=void 0,...n){return lp(t)?e?t.bind(e)(...n):t(...n):t}function AE(t={}){return Object.keys(t).length===0&&t.constructor===Object}function RE(t){return typeof t!="string"?t:t.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(t):t==="true"?!0:t==="false"?!1:t}function ep(t,e){return t.style?t:{...t,getAttrs:n=>{let r=t.getAttrs?t.getAttrs(n):t.attrs;if(r===!1)return!1;let i=e.reduce((o,s)=>{let a=s.attribute.parseHTML?s.attribute.parseHTML(n):RE(n.getAttribute(s.name));return a==null?o:{...o,[s.name]:a}},{});return{...r,...i}}}}function tp(t){return Object.fromEntries(Object.entries(t).filter(([e,n])=>e==="attrs"&&AE(n)?!1:n!=null))}function IE(t,e){var n;let r=ap(t),{nodeExtensions:i,markExtensions:o}=Bo(t),s=(n=i.find(c=>F(c,"topNode")))===null||n===void 0?void 0:n.name,a=Object.fromEntries(i.map(c=>{let d=r.filter(y=>y.type===c.name),u={name:c.name,options:c.options,storage:c.storage,editor:e},f=t.reduce((y,x)=>{let S=F(x,"extendNodeSchema",u);return{...y,...S?S(c):{}}},{}),p=tp({...f,content:ne(F(c,"content",u)),marks:ne(F(c,"marks",u)),group:ne(F(c,"group",u)),inline:ne(F(c,"inline",u)),atom:ne(F(c,"atom",u)),selectable:ne(F(c,"selectable",u)),draggable:ne(F(c,"draggable",u)),code:ne(F(c,"code",u)),defining:ne(F(c,"defining",u)),isolating:ne(F(c,"isolating",u)),attrs:Object.fromEntries(d.map(y=>{var x;return[y.name,{default:(x=y?.attribute)===null||x===void 0?void 0:x.default}]}))}),h=ne(F(c,"parseHTML",u));h&&(p.parseDOM=h.map(y=>ep(y,d)));let m=F(c,"renderHTML",u);m&&(p.toDOM=y=>m({node:y,HTMLAttributes:kl(y,d)}));let g=F(c,"renderText",u);return g&&(p.toText=g),[c.name,p]})),l=Object.fromEntries(o.map(c=>{let d=r.filter(g=>g.type===c.name),u={name:c.name,options:c.options,storage:c.storage,editor:e},f=t.reduce((g,y)=>{let x=F(y,"extendMarkSchema",u);return{...g,...x?x(c):{}}},{}),p=tp({...f,inclusive:ne(F(c,"inclusive",u)),excludes:ne(F(c,"excludes",u)),group:ne(F(c,"group",u)),spanning:ne(F(c,"spanning",u)),code:ne(F(c,"code",u)),attrs:Object.fromEntries(d.map(g=>{var y;return[g.name,{default:(y=g?.attribute)===null||y===void 0?void 0:y.default}]}))}),h=ne(F(c,"parseHTML",u));h&&(p.parseDOM=h.map(g=>ep(g,d)));let m=F(c,"renderHTML",u);return m&&(p.toDOM=g=>m({mark:g,HTMLAttributes:kl(g,d)})),[c.name,p]}));return new oo({topNode:s,nodes:a,marks:l})}function yl(t,e){return e.nodes[t]||e.marks[t]||null}function np(t,e){return Array.isArray(e)?e.some(n=>(typeof n=="string"?n:n.name)===t.name):e}var DE=(t,e=500)=>{let n="",r=t.parentOffset;return t.parent.nodesBetween(Math.max(0,r-e),r,(i,o,s,a)=>{var l,c;let d=((c=(l=i.type.spec).toText)===null||c===void 0?void 0:c.call(l,{node:i,pos:o,parent:s,index:a}))||i.textContent||"%leaf%";n+=d.slice(0,Math.max(0,r-o))}),n};function _l(t){return Object.prototype.toString.call(t)==="[object RegExp]"}var Br=class{constructor(e){this.find=e.find,this.handler=e.handler}},LE=(t,e)=>{if(_l(e))return e.exec(t);let n=e(t);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=t,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r};function El(t){var e;let{editor:n,from:r,to:i,text:o,rules:s,plugin:a}=t,{view:l}=n;if(l.composing)return!1;let c=l.state.doc.resolve(r);if(c.parent.type.spec.code||!((e=c.nodeBefore||c.nodeAfter)===null||e===void 0)&&e.marks.find(f=>f.type.spec.code))return!1;let d=!1,u=DE(c)+o;return s.forEach(f=>{if(d)return;let p=LE(u,f.find);if(!p)return;let h=l.state.tr,m=Po({state:l.state,transaction:h}),g={from:r-(p[0].length-o.length),to:i},{commands:y,chain:x,can:S}=new Pr({editor:n,state:m});f.handler({state:m,range:g,match:p,commands:y,chain:x,can:S})===null||!h.steps.length||(h.setMeta(a,{transform:h,from:r,to:i,text:o}),l.dispatch(h),d=!0)}),d}function PE(t){let{editor:e,rules:n}=t,r=new ce({state:{init(){return null},apply(i,o){let s=i.getMeta(r);return s||(i.selectionSet||i.docChanged?null:o)}},props:{handleTextInput(i,o,s,a){return El({editor:e,from:o,to:s,text:a,rules:n,plugin:r})},handleDOMEvents:{compositionend:i=>(setTimeout(()=>{let{$cursor:o}=i.state.selection;o&&El({editor:e,from:o.pos,to:o.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(i,o){if(o.key!=="Enter")return!1;let{$cursor:s}=i.state.selection;return s?El({editor:e,from:s.pos,to:s.pos,text:`
-`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function BE(t){return typeof t=="number"}var Ml=class{constructor(e){this.find=e.find,this.handler=e.handler}},HE=(t,e)=>{if(_l(e))return[...t.matchAll(e)];let n=e(t);return n?n.map(r=>{let i=[r.text];return i.index=r.index,i.input=t,i.data=r.data,r.replaceWith&&(r.text.includes(r.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),i.push(r.replaceWith)),i}):[]};function FE(t){let{editor:e,state:n,from:r,to:i,rule:o,pasteEvent:s,dropEvent:a}=t,{commands:l,chain:c,can:d}=new Pr({editor:e,state:n}),u=[];return n.doc.nodesBetween(r,i,(p,h)=>{if(!p.isTextblock||p.type.spec.code)return;let m=Math.max(r,h),g=Math.min(i,h+p.content.size),y=p.textBetween(m-h,g-h,void 0,"\uFFFC");HE(y,o.find).forEach(S=>{if(S.index===void 0)return;let b=m+S.index+1,N=b+S[0].length,v={from:n.tr.mapping.map(b),to:n.tr.mapping.map(N)},A=o.handler({state:n,range:v,match:S,commands:l,chain:c,can:d,pasteEvent:s,dropEvent:a});u.push(A)})}),u.every(p=>p!==null)}function zE(t){let{editor:e,rules:n}=t,r=null,i=!1,o=!1,s=new ClipboardEvent("paste"),a=new DragEvent("drop");return n.map(c=>new ce({view(d){let u=f=>{var p;r=!((p=d.dom.parentElement)===null||p===void 0)&&p.contains(f.target)?d.dom.parentElement:null};return window.addEventListener("dragstart",u),{destroy(){window.removeEventListener("dragstart",u)}}},props:{handleDOMEvents:{drop:(d,u)=>(o=r===d.dom.parentElement,a=u,!1),paste:(d,u)=>{var f;let p=(f=u.clipboardData)===null||f===void 0?void 0:f.getData("text/html");return s=u,i=!!p?.includes("data-pm-slice"),!1}}},appendTransaction:(d,u,f)=>{let p=d[0],h=p.getMeta("uiEvent")==="paste"&&!i,m=p.getMeta("uiEvent")==="drop"&&!o;if(!h&&!m)return;let g=u.doc.content.findDiffStart(f.doc.content),y=u.doc.content.findDiffEnd(f.doc.content);if(!BE(g)||!y||g===y.b)return;let x=f.tr,S=Po({state:f,transaction:x});if(!(!FE({editor:e,state:S,from:Math.max(g-1,0),to:y.b-1,rule:c,pasteEvent:s,dropEvent:a})||!x.steps.length))return a=new DragEvent("drop"),s=new ClipboardEvent("paste"),x}}))}function $E(t){let e=t.filter((n,r)=>t.indexOf(n)!==r);return[...new Set(e)]}var Tl=class t{constructor(e,n){this.splittableMarks=[],this.editor=n,this.extensions=t.resolve(e),this.schema=IE(this.extensions,n),this.extensions.forEach(r=>{var i;this.editor.extensionStorage[r.name]=r.storage;let o={name:r.name,options:r.options,storage:r.storage,editor:this.editor,type:yl(r.name,this.schema)};r.type==="mark"&&(!((i=ne(F(r,"keepOnSplit",o)))!==null&&i!==void 0)||i)&&this.splittableMarks.push(r.name);let s=F(r,"onBeforeCreate",o);s&&this.editor.on("beforeCreate",s);let a=F(r,"onCreate",o);a&&this.editor.on("create",a);let l=F(r,"onUpdate",o);l&&this.editor.on("update",l);let c=F(r,"onSelectionUpdate",o);c&&this.editor.on("selectionUpdate",c);let d=F(r,"onTransaction",o);d&&this.editor.on("transaction",d);let u=F(r,"onFocus",o);u&&this.editor.on("focus",u);let f=F(r,"onBlur",o);f&&this.editor.on("blur",f);let p=F(r,"onDestroy",o);p&&this.editor.on("destroy",p)})}static resolve(e){let n=t.sort(t.flatten(e)),r=$E(n.map(i=>i.name));return r.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${r.map(i=>`'${i}'`).join(", ")}]. This can lead to issues.`),n}static flatten(e){return e.map(n=>{let r={name:n.name,options:n.options,storage:n.storage},i=F(n,"addExtensions",r);return i?[n,...this.flatten(i())]:n}).flat(10)}static sort(e){return e.sort((r,i)=>{let o=F(r,"priority")||100,s=F(i,"priority")||100;return o>s?-1:o{let r={name:n.name,options:n.options,storage:n.storage,editor:this.editor,type:yl(n.name,this.schema)},i=F(n,"addCommands",r);return i?{...e,...i()}:e},{})}get plugins(){let{editor:e}=this,n=t.sort([...this.extensions].reverse()),r=[],i=[],o=n.map(s=>{let a={name:s.name,options:s.options,storage:s.storage,editor:e,type:yl(s.name,this.schema)},l=[],c=F(s,"addKeyboardShortcuts",a),d={};if(s.type==="mark"&&s.config.exitable&&(d.ArrowRight=()=>we.handleExit({editor:e,mark:s})),c){let m=Object.fromEntries(Object.entries(c()).map(([g,y])=>[g,()=>y({editor:e})]));d={...d,...m}}let u=zf(d);l.push(u);let f=F(s,"addInputRules",a);np(s,e.options.enableInputRules)&&f&&r.push(...f());let p=F(s,"addPasteRules",a);np(s,e.options.enablePasteRules)&&p&&i.push(...p());let h=F(s,"addProseMirrorPlugins",a);if(h){let m=h();l.push(...m)}return l}).flat();return[PE({editor:e,rules:r}),...zE({editor:e,rules:i}),...o]}get attributes(){return ap(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:n}=Bo(this.extensions);return Object.fromEntries(n.filter(r=>!!F(r,"addNodeView")).map(r=>{let i=this.attributes.filter(l=>l.type===r.name),o={name:r.name,options:r.options,storage:r.storage,editor:e,type:Ue(r.name,this.schema)},s=F(r,"addNodeView",o);if(!s)return[];let a=(l,c,d,u)=>{let f=kl(l,i);return s()({editor:e,node:l,getPos:d,decorations:u,HTMLAttributes:f,extension:r})};return[r.name,a]}))}};function UE(t){return Object.prototype.toString.call(t).slice(8,-1)}function vl(t){return UE(t)!=="Object"?!1:t.constructor===Object&&Object.getPrototypeOf(t)===Object.prototype}function Ho(t,e){let n={...t};return vl(t)&&vl(e)&&Object.keys(e).forEach(r=>{vl(e[r])?r in t?n[r]=Ho(t[r],e[r]):Object.assign(n,{[r]:e[r]}):Object.assign(n,{[r]:e[r]})}),n}var Se=class t{constructor(e={}){this.type="extension",this.name="extension",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...e},this.name=this.config.name,e.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=ne(F(this,"addOptions",{name:this.name}))),this.storage=ne(F(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(e={}){return new t(e)}configure(e={}){let n=this.extend();return n.options=Ho(this.options,e),n.storage=ne(F(n,"addStorage",{name:n.name,options:n.options})),n}extend(e={}){let n=new t(e);return n.parent=this,this.child=n,n.name=e.name?e.name:n.parent.name,e.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${n.name}".`),n.options=ne(F(n,"addOptions",{name:n.name})),n.storage=ne(F(n,"addStorage",{name:n.name,options:n.options})),n}};function cp(t,e,n){let{from:r,to:i}=e,{blockSeparator:o=`
-
-`,textSerializers:s={}}=n||{},a="",l=!0;return t.nodesBetween(r,i,(c,d,u,f)=>{var p;let h=s?.[c.type.name];h?(c.isBlock&&!l&&(a+=o,l=!0),u&&(a+=h({node:c,pos:d,parent:u,index:f,range:e}))):c.isText?(a+=(p=c?.text)===null||p===void 0?void 0:p.slice(Math.max(r,d)-d,i-d),l=!1):c.isBlock&&!l&&(a+=o,l=!0)}),a}function dp(t){return Object.fromEntries(Object.entries(t.nodes).filter(([,e])=>e.spec.toText).map(([e,n])=>[e,n.spec.toText]))}var KE=Se.create({name:"clipboardTextSerializer",addProseMirrorPlugins(){return[new ce({key:new me("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{let{editor:t}=this,{state:e,schema:n}=t,{doc:r,selection:i}=e,{ranges:o}=i,s=Math.min(...o.map(d=>d.$from.pos)),a=Math.max(...o.map(d=>d.$to.pos)),l=dp(n);return cp(r,{from:s,to:a},{textSerializers:l})}}})]}}),WE=()=>({editor:t,view:e})=>(requestAnimationFrame(()=>{var n;t.isDestroyed||(e.dom.blur(),(n=window?.getSelection())===null||n===void 0||n.removeAllRanges())}),!0),VE=(t=!1)=>({commands:e})=>e.setContent("",t),GE=()=>({state:t,tr:e,dispatch:n})=>{let{selection:r}=e,{ranges:i}=r;return n&&i.forEach(({$from:o,$to:s})=>{t.doc.nodesBetween(o.pos,s.pos,(a,l)=>{if(a.type.isText)return;let{doc:c,mapping:d}=e,u=c.resolve(d.map(l)),f=c.resolve(d.map(l+a.nodeSize)),p=u.blockRange(f);if(!p)return;let h=rn(p);if(a.type.isTextblock){let{defaultType:m}=u.parent.contentMatchAt(u.index());e.setNodeMarkup(p.start,m)}(h||h===0)&&e.lift(p,h)})}),!0},qE=t=>e=>t(e),jE=()=>({state:t,dispatch:e})=>fl(t,e),YE=(t,e)=>({editor:n,tr:r})=>{let{state:i}=n,o=i.doc.slice(t.from,t.to);r.deleteRange(t.from,t.to);let s=r.mapping.map(e);return r.insert(s,o.content),r.setSelection(new W(r.doc.resolve(s-1))),!0},JE=()=>({tr:t,dispatch:e})=>{let{selection:n}=t,r=n.$anchor.node();if(r.content.size>0)return!1;let i=t.selection.$anchor;for(let o=i.depth;o>0;o-=1)if(i.node(o).type===r.type){if(e){let a=i.before(o),l=i.after(o);t.delete(a,l).scrollIntoView()}return!0}return!1},XE=t=>({tr:e,state:n,dispatch:r})=>{let i=Ue(t,n.schema),o=e.selection.$anchor;for(let s=o.depth;s>0;s-=1)if(o.node(s).type===i){if(r){let l=o.before(s),c=o.after(s);e.delete(l,c).scrollIntoView()}return!0}return!1},ZE=t=>({tr:e,dispatch:n})=>{let{from:r,to:i}=t;return n&&e.delete(r,i),!0},QE=()=>({state:t,dispatch:e})=>Ao(t,e),ev=()=>({commands:t})=>t.keyboardShortcut("Enter"),tv=()=>({state:t,dispatch:e})=>ul(t,e);function Io(t,e,n={strict:!0}){let r=Object.keys(e);return r.length?r.every(i=>n.strict?e[i]===t[i]:_l(e[i])?e[i].test(t[i]):e[i]===t[i]):!0}function Nl(t,e,n={}){return t.find(r=>r.type===e&&Io(r.attrs,n))}function nv(t,e,n={}){return!!Nl(t,e,n)}function Ol(t,e,n={}){if(!t||!e)return;let r=t.parent.childAfter(t.parentOffset);if(t.parentOffset===r.offset&&r.offset!==0&&(r=t.parent.childBefore(t.parentOffset)),!r.node)return;let i=Nl([...r.node.marks],e,n);if(!i)return;let o=r.index,s=t.start()+r.offset,a=o+1,l=s+r.node.nodeSize;for(Nl([...r.node.marks],e,n);o>0&&i.isInSet(t.parent.child(o-1).marks);)o-=1,s-=t.parent.child(o).nodeSize;for(;a
1&&i==this.$to.end(--r);)++i;return i}findCloseLevel(e){e:for(let n=Math.min(this.depth,e.depth);n>=0;n--){let{match:r,type:i}=this.frontier[n],o=nr){let a=r+o.border,l=s-o.border;if(e>=a&&n<=l){this.dirty=e==r||n==s?qn:ju,e==a&&n==l&&(o.contentLost||o.dom.parentNode!=this.contentDOM)?o.dirty=Gt:o.markDirty(e-a,n-a);return}else o.dirty=o.dom==o.contentDOM&&o.dom.parentNode==this.contentDOM&&!o.children.length?qn:Gt}r=s}this.dirty=qn}markParentsDirty(){let e=1;for(let n=this.parent;n;n=n.parent,e++){let r=e==1?qn:ju;n.dirty-1)a>this.index&&(this.changed=!0,this.destroyBetween(this.index,a)),this.top=this.top.children[this.index];else{let l=Ar.create(this.top,e[o],n,r);this.top.children.splice(this.index,0,l),this.top=l,this.changed=!0}this.index=0,o++}}findNodeMatch(e,n,r,i){let o=-1,s;if(i>=this.preMatch.index&&(s=this.preMatch.matches[i-this.preMatch.index]).parent==this.top&&s.matchesNode(e,n,r))o=this.top.children.indexOf(s,this.index);else for(let a=this.index,l=Math.min(this.top.children.length,a+5);am;h--)p-=i.child(h).nodeSize,r.delete(p-1,p+1);let o=r.doc.resolve(n.start),s=o.nodeAfter;if(r.mapping.map(n.end)!=n.start+o.nodeAfter.nodeSize)return!1;let a=n.startIndex==0,l=n.endIndex==i.childCount,c=o.node(-1),d=o.index(-1);if(!c.canReplace(d+(a?0:1),d+1,s.content.append(l?_.empty:_.from(i))))return!1;let u=o.pos,f=u+s.nodeSize;return r.step(new Ie(u-(a?1:0),f+(l?1:0),u+1,f-1,new D((a?_.empty:_.from(i.copy(_.empty))).append(l?_.empty:_.from(i.copy(_.empty))),a?0:1,l?0:1),a?0:1)),e(r.scrollIntoView()),!0}function dp(t){return function(e,n){let{$from:r,$to:i}=e.selection,o=r.blockRange(i,c=>c.childCount>0&&c.firstChild.type==t);if(!o)return!1;let s=o.startIndex;if(s==0)return!1;let a=o.parent,l=a.child(s-1);if(l.type!=t)return!1;if(n){let c=l.lastChild&&l.lastChild.type==a.type,d=_.from(c?t.create():null),u=new D(_.from(t.create(null,_.from(a.type.create(null,d)))),c?3:1,0),f=o.start,p=o.end;n(e.tr.step(new Ie(f-(c?3:1),p,f,p,u,1,!0)).scrollIntoView())}return!0}}function Ao(t){let{state:e,transaction:n}=t,{selection:r}=n,{doc:i}=n,{storedMarks:o}=n;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),filterTransaction:e.filterTransaction,plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return o},get selection(){return r},get doc(){return i},get tr(){return r=n.selection,i=n.doc,o=n.storedMarks,n}}}var Ir=class{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:n,state:r}=this,{view:i}=n,{tr:o}=r,s=this.buildProps(o);return Object.fromEntries(Object.entries(e).map(([a,l])=>[a,(...d)=>{let u=l(...d)(s);return!o.getMeta("preventDispatch")&&!this.hasCustomState&&i.dispatch(o),u}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,n=!0){let{rawCommands:r,editor:i,state:o}=this,{view:s}=i,a=[],l=!!e,c=e||o.tr,d=()=>(!l&&n&&!c.getMeta("preventDispatch")&&!this.hasCustomState&&s.dispatch(c),a.every(f=>f===!0)),u={...Object.fromEntries(Object.entries(r).map(([f,p])=>[f,(...m)=>{let g=this.buildProps(c,n),y=p(...m)(g);return a.push(y),u}])),run:d};return u}createCan(e){let{rawCommands:n,state:r}=this,i=!1,o=e||r.tr,s=this.buildProps(o,i);return{...Object.fromEntries(Object.entries(n).map(([l,c])=>[l,(...d)=>c(...d)({...s,dispatch:void 0})])),chain:()=>this.createChain(o,i)}}buildProps(e,n=!0){let{rawCommands:r,editor:i,state:o}=this,{view:s}=i,a={tr:e,editor:i,view:s,state:Ao({state:o,transaction:e}),dispatch:n?()=>{}:void 0,chain:()=>this.createChain(e,n),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(r).map(([l,c])=>[l,(...d)=>c(...d)(a)]))}};return a}},Il=class{constructor(){this.callbacks={}}on(e,n){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(n),this}emit(e,...n){let r=this.callbacks[e];return r&&r.forEach(i=>i.apply(this,n)),this}off(e,n){let r=this.callbacks[e];return r&&(n?this.callbacks[e]=r.filter(i=>i!==n):delete this.callbacks[e]),this}removeAllListeners(){this.callbacks={}}};function F(t,e,n){return t.config[e]===void 0&&t.parent?F(t.parent,e,n):typeof t.config[e]=="function"?t.config[e].bind({...n,parent:t.parent?F(t.parent,e,n):null}):t.config[e]}function Ro(t){let e=t.filter(i=>i.type==="extension"),n=t.filter(i=>i.type==="node"),r=t.filter(i=>i.type==="mark");return{baseExtensions:e,nodeExtensions:n,markExtensions:r}}function yp(t){let e=[],{nodeExtensions:n,markExtensions:r}=Ro(t),i=[...n,...r],o={default:null,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return t.forEach(s=>{let a={name:s.name,options:s.options,storage:s.storage},l=F(s,"addGlobalAttributes",a);if(!l)return;l().forEach(d=>{d.types.forEach(u=>{Object.entries(d.attributes).forEach(([f,p])=>{e.push({type:u,name:f,attribute:{...o,...p}})})})})}),i.forEach(s=>{let a={name:s.name,options:s.options,storage:s.storage},l=F(s,"addAttributes",a);if(!l)return;let c=l();Object.entries(c).forEach(([d,u])=>{let f={...o,...u};typeof f?.default=="function"&&(f.default=f.default()),f?.isRequired&&f?.default===void 0&&delete f.default,e.push({type:s.name,name:d,attribute:f})})}),e}function Ue(t,e){if(typeof t=="string"){if(!e.nodes[t])throw Error(`There is no node type named '${t}'. Maybe you forgot to add the extension?`);return e.nodes[t]}return t}function L(...t){return t.filter(e=>!!e).reduce((e,n)=>{let r={...e};return Object.entries(n).forEach(([i,o])=>{if(!r[i]){r[i]=o;return}if(i==="class"){let a=o?o.split(" "):[],l=r[i]?r[i].split(" "):[],c=a.filter(d=>!l.includes(d));r[i]=[...l,...c].join(" ")}else i==="style"?r[i]=[r[i],o].join("; "):r[i]=o}),r},{})}function Dl(t,e){return e.filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(t.attrs)||{}:{[n.name]:t.attrs[n.name]}).reduce((n,r)=>L(n,r),{})}function Ep(t){return typeof t=="function"}function ee(t,e=void 0,...n){return Ep(t)?e?t.bind(e)(...n):t(...n):t}function U0(t={}){return Object.keys(t).length===0&&t.constructor===Object}function K0(t){return typeof t!="string"?t:t.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(t):t==="true"?!0:t==="false"?!1:t}function up(t,e){return t.style?t:{...t,getAttrs:n=>{let r=t.getAttrs?t.getAttrs(n):t.attrs;if(r===!1)return!1;let i=e.reduce((o,s)=>{let a=s.attribute.parseHTML?s.attribute.parseHTML(n):K0(n.getAttribute(s.name));return a==null?o:{...o,[s.name]:a}},{});return{...r,...i}}}}function fp(t){return Object.fromEntries(Object.entries(t).filter(([e,n])=>e==="attrs"&&U0(n)?!1:n!=null))}function W0(t,e){var n;let r=yp(t),{nodeExtensions:i,markExtensions:o}=Ro(t),s=(n=i.find(c=>F(c,"topNode")))===null||n===void 0?void 0:n.name,a=Object.fromEntries(i.map(c=>{let d=r.filter(y=>y.type===c.name),u={name:c.name,options:c.options,storage:c.storage,editor:e},f=t.reduce((y,x)=>{let S=F(x,"extendNodeSchema",u);return{...y,...S?S(c):{}}},{}),p=fp({...f,content:ee(F(c,"content",u)),marks:ee(F(c,"marks",u)),group:ee(F(c,"group",u)),inline:ee(F(c,"inline",u)),atom:ee(F(c,"atom",u)),selectable:ee(F(c,"selectable",u)),draggable:ee(F(c,"draggable",u)),code:ee(F(c,"code",u)),defining:ee(F(c,"defining",u)),isolating:ee(F(c,"isolating",u)),attrs:Object.fromEntries(d.map(y=>{var x;return[y.name,{default:(x=y?.attribute)===null||x===void 0?void 0:x.default}]}))}),h=ee(F(c,"parseHTML",u));h&&(p.parseDOM=h.map(y=>up(y,d)));let m=F(c,"renderHTML",u);m&&(p.toDOM=y=>m({node:y,HTMLAttributes:Dl(y,d)}));let g=F(c,"renderText",u);return g&&(p.toText=g),[c.name,p]})),l=Object.fromEntries(o.map(c=>{let d=r.filter(g=>g.type===c.name),u={name:c.name,options:c.options,storage:c.storage,editor:e},f=t.reduce((g,y)=>{let x=F(y,"extendMarkSchema",u);return{...g,...x?x(c):{}}},{}),p=fp({...f,inclusive:ee(F(c,"inclusive",u)),excludes:ee(F(c,"excludes",u)),group:ee(F(c,"group",u)),spanning:ee(F(c,"spanning",u)),code:ee(F(c,"code",u)),attrs:Object.fromEntries(d.map(g=>{var y;return[g.name,{default:(y=g?.attribute)===null||y===void 0?void 0:y.default}]}))}),h=ee(F(c,"parseHTML",u));h&&(p.parseDOM=h.map(g=>up(g,d)));let m=F(c,"renderHTML",u);return m&&(p.toDOM=g=>m({mark:g,HTMLAttributes:Dl(g,d)})),[c.name,p]}));return new Qi({topNode:s,nodes:a,marks:l})}function Cl(t,e){return e.nodes[t]||e.marks[t]||null}function pp(t,e){return Array.isArray(e)?e.some(n=>(typeof n=="string"?n:n.name)===t.name):e}var V0=(t,e=500)=>{let n="",r=t.parentOffset;return t.parent.nodesBetween(Math.max(0,r-e),r,(i,o,s,a)=>{var l,c;let d=((c=(l=i.type.spec).toText)===null||c===void 0?void 0:c.call(l,{node:i,pos:o,parent:s,index:a}))||i.textContent||"%leaf%";n+=d.slice(0,Math.max(0,r-o))}),n};function Fl(t){return Object.prototype.toString.call(t)==="[object RegExp]"}var Dr=class{constructor(e){this.find=e.find,this.handler=e.handler}},G0=(t,e)=>{if(Fl(e))return e.exec(t);let n=e(t);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=t,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r};function _l(t){var e;let{editor:n,from:r,to:i,text:o,rules:s,plugin:a}=t,{view:l}=n;if(l.composing)return!1;let c=l.state.doc.resolve(r);if(c.parent.type.spec.code||!((e=c.nodeBefore||c.nodeAfter)===null||e===void 0)&&e.marks.find(f=>f.type.spec.code))return!1;let d=!1,u=V0(c)+o;return s.forEach(f=>{if(d)return;let p=G0(u,f.find);if(!p)return;let h=l.state.tr,m=Ao({state:l.state,transaction:h}),g={from:r-(p[0].length-o.length),to:i},{commands:y,chain:x,can:S}=new Ir({editor:n,state:m});f.handler({state:m,range:g,match:p,commands:y,chain:x,can:S})===null||!h.steps.length||(h.setMeta(a,{transform:h,from:r,to:i,text:o}),l.dispatch(h),d=!0)}),d}function q0(t){let{editor:e,rules:n}=t,r=new ae({state:{init(){return null},apply(i,o){let s=i.getMeta(r);return s||(i.selectionSet||i.docChanged?null:o)}},props:{handleTextInput(i,o,s,a){return _l({editor:e,from:o,to:s,text:a,rules:n,plugin:r})},handleDOMEvents:{compositionend:i=>(setTimeout(()=>{let{$cursor:o}=i.state.selection;o&&_l({editor:e,from:o.pos,to:o.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(i,o){if(o.key!=="Enter")return!1;let{$cursor:s}=i.state.selection;return s?_l({editor:e,from:s.pos,to:s.pos,text:`
+`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function j0(t){return typeof t=="number"}var Ll=class{constructor(e){this.find=e.find,this.handler=e.handler}},Y0=(t,e)=>{if(Fl(e))return[...t.matchAll(e)];let n=e(t);return n?n.map(r=>{let i=[r.text];return i.index=r.index,i.input=t,i.data=r.data,r.replaceWith&&(r.text.includes(r.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),i.push(r.replaceWith)),i}):[]};function J0(t){let{editor:e,state:n,from:r,to:i,rule:o,pasteEvent:s,dropEvent:a}=t,{commands:l,chain:c,can:d}=new Ir({editor:e,state:n}),u=[];return n.doc.nodesBetween(r,i,(p,h)=>{if(!p.isTextblock||p.type.spec.code)return;let m=Math.max(r,h),g=Math.min(i,h+p.content.size),y=p.textBetween(m-h,g-h,void 0,"\uFFFC");Y0(y,o.find).forEach(S=>{if(S.index===void 0)return;let b=m+S.index+1,N=b+S[0].length,v={from:n.tr.mapping.map(b),to:n.tr.mapping.map(N)},A=o.handler({state:n,range:v,match:S,commands:l,chain:c,can:d,pasteEvent:s,dropEvent:a});u.push(A)})}),u.every(p=>p!==null)}function X0(t){let{editor:e,rules:n}=t,r=null,i=!1,o=!1,s=new ClipboardEvent("paste"),a=new DragEvent("drop");return n.map(c=>new ae({view(d){let u=f=>{var p;r=!((p=d.dom.parentElement)===null||p===void 0)&&p.contains(f.target)?d.dom.parentElement:null};return window.addEventListener("dragstart",u),{destroy(){window.removeEventListener("dragstart",u)}}},props:{handleDOMEvents:{drop:(d,u)=>(o=r===d.dom.parentElement,a=u,!1),paste:(d,u)=>{var f;let p=(f=u.clipboardData)===null||f===void 0?void 0:f.getData("text/html");return s=u,i=!!p?.includes("data-pm-slice"),!1}}},appendTransaction:(d,u,f)=>{let p=d[0],h=p.getMeta("uiEvent")==="paste"&&!i,m=p.getMeta("uiEvent")==="drop"&&!o;if(!h&&!m)return;let g=u.doc.content.findDiffStart(f.doc.content),y=u.doc.content.findDiffEnd(f.doc.content);if(!j0(g)||!y||g===y.b)return;let x=f.tr,S=Ao({state:f,transaction:x});if(!(!J0({editor:e,state:S,from:Math.max(g-1,0),to:y.b-1,rule:c,pasteEvent:s,dropEvent:a})||!x.steps.length))return a=new DragEvent("drop"),s=new ClipboardEvent("paste"),x}}))}function Z0(t){let e=t.filter((n,r)=>t.indexOf(n)!==r);return[...new Set(e)]}var Pl=class t{constructor(e,n){this.splittableMarks=[],this.editor=n,this.extensions=t.resolve(e),this.schema=W0(this.extensions,n),this.extensions.forEach(r=>{var i;this.editor.extensionStorage[r.name]=r.storage;let o={name:r.name,options:r.options,storage:r.storage,editor:this.editor,type:Cl(r.name,this.schema)};r.type==="mark"&&(!((i=ee(F(r,"keepOnSplit",o)))!==null&&i!==void 0)||i)&&this.splittableMarks.push(r.name);let s=F(r,"onBeforeCreate",o);s&&this.editor.on("beforeCreate",s);let a=F(r,"onCreate",o);a&&this.editor.on("create",a);let l=F(r,"onUpdate",o);l&&this.editor.on("update",l);let c=F(r,"onSelectionUpdate",o);c&&this.editor.on("selectionUpdate",c);let d=F(r,"onTransaction",o);d&&this.editor.on("transaction",d);let u=F(r,"onFocus",o);u&&this.editor.on("focus",u);let f=F(r,"onBlur",o);f&&this.editor.on("blur",f);let p=F(r,"onDestroy",o);p&&this.editor.on("destroy",p)})}static resolve(e){let n=t.sort(t.flatten(e)),r=Z0(n.map(i=>i.name));return r.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${r.map(i=>`'${i}'`).join(", ")}]. This can lead to issues.`),n}static flatten(e){return e.map(n=>{let r={name:n.name,options:n.options,storage:n.storage},i=F(n,"addExtensions",r);return i?[n,...this.flatten(i())]:n}).flat(10)}static sort(e){return e.sort((r,i)=>{let o=F(r,"priority")||100,s=F(i,"priority")||100;return o>s?-1:o{let r={name:n.name,options:n.options,storage:n.storage,editor:this.editor,type:Cl(n.name,this.schema)},i=F(n,"addCommands",r);return i?{...e,...i()}:e},{})}get plugins(){let{editor:e}=this,n=t.sort([...this.extensions].reverse()),r=[],i=[],o=n.map(s=>{let a={name:s.name,options:s.options,storage:s.storage,editor:e,type:Cl(s.name,this.schema)},l=[],c=F(s,"addKeyboardShortcuts",a),d={};if(s.type==="mark"&&s.config.exitable&&(d.ArrowRight=()=>ve.handleExit({editor:e,mark:s})),c){let m=Object.fromEntries(Object.entries(c()).map(([g,y])=>[g,()=>y({editor:e})]));d={...d,...m}}let u=Xf(d);l.push(u);let f=F(s,"addInputRules",a);pp(s,e.options.enableInputRules)&&f&&r.push(...f());let p=F(s,"addPasteRules",a);pp(s,e.options.enablePasteRules)&&p&&i.push(...p());let h=F(s,"addProseMirrorPlugins",a);if(h){let m=h();l.push(...m)}return l}).flat();return[q0({editor:e,rules:r}),...X0({editor:e,rules:i}),...o]}get attributes(){return yp(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:n}=Ro(this.extensions);return Object.fromEntries(n.filter(r=>!!F(r,"addNodeView")).map(r=>{let i=this.attributes.filter(l=>l.type===r.name),o={name:r.name,options:r.options,storage:r.storage,editor:e,type:Ue(r.name,this.schema)},s=F(r,"addNodeView",o);if(!s)return[];let a=(l,c,d,u)=>{let f=Dl(l,i);return s()({editor:e,node:l,getPos:d,decorations:u,HTMLAttributes:f,extension:r})};return[r.name,a]}))}};function Q0(t){return Object.prototype.toString.call(t).slice(8,-1)}function Ol(t){return Q0(t)!=="Object"?!1:t.constructor===Object&&Object.getPrototypeOf(t)===Object.prototype}function Io(t,e){let n={...t};return Ol(t)&&Ol(e)&&Object.keys(e).forEach(r=>{Ol(e[r])?r in t?n[r]=Io(t[r],e[r]):Object.assign(n,{[r]:e[r]}):Object.assign(n,{[r]:e[r]})}),n}var Se=class t{constructor(e={}){this.type="extension",this.name="extension",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...e},this.name=this.config.name,e.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=ee(F(this,"addOptions",{name:this.name}))),this.storage=ee(F(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(e={}){return new t(e)}configure(e={}){let n=this.extend();return n.options=Io(this.options,e),n.storage=ee(F(n,"addStorage",{name:n.name,options:n.options})),n}extend(e={}){let n=new t(e);return n.parent=this,this.child=n,n.name=e.name?e.name:n.parent.name,e.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${n.name}".`),n.options=ee(F(n,"addOptions",{name:n.name})),n.storage=ee(F(n,"addStorage",{name:n.name,options:n.options})),n}};function vp(t,e,n){let{from:r,to:i}=e,{blockSeparator:o=`
+
+`,textSerializers:s={}}=n||{},a="",l=!0;return t.nodesBetween(r,i,(c,d,u,f)=>{var p;let h=s?.[c.type.name];h?(c.isBlock&&!l&&(a+=o,l=!0),u&&(a+=h({node:c,pos:d,parent:u,index:f,range:e}))):c.isText?(a+=(p=c?.text)===null||p===void 0?void 0:p.slice(Math.max(r,d)-d,i-d),l=!1):c.isBlock&&!l&&(a+=o,l=!0)}),a}function wp(t){return Object.fromEntries(Object.entries(t.nodes).filter(([,e])=>e.spec.toText).map(([e,n])=>[e,n.spec.toText]))}var ev=Se.create({name:"clipboardTextSerializer",addProseMirrorPlugins(){return[new ae({key:new pe("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{let{editor:t}=this,{state:e,schema:n}=t,{doc:r,selection:i}=e,{ranges:o}=i,s=Math.min(...o.map(d=>d.$from.pos)),a=Math.max(...o.map(d=>d.$to.pos)),l=wp(n);return vp(r,{from:s,to:a},{textSerializers:l})}}})]}}),tv=()=>({editor:t,view:e})=>(requestAnimationFrame(()=>{var n;t.isDestroyed||(e.dom.blur(),(n=window?.getSelection())===null||n===void 0||n.removeAllRanges())}),!0),nv=(t=!1)=>({commands:e})=>e.setContent("",t),rv=()=>({state:t,tr:e,dispatch:n})=>{let{selection:r}=e,{ranges:i}=r;return n&&i.forEach(({$from:o,$to:s})=>{t.doc.nodesBetween(o.pos,s.pos,(a,l)=>{if(a.type.isText)return;let{doc:c,mapping:d}=e,u=c.resolve(d.map(l)),f=c.resolve(d.map(l+a.nodeSize)),p=u.blockRange(f);if(!p)return;let h=rn(p);if(a.type.isTextblock){let{defaultType:m}=u.parent.contentMatchAt(u.index());e.setNodeMarkup(p.start,m)}(h||h===0)&&e.lift(p,h)})}),!0},iv=t=>e=>t(e),ov=()=>({state:t,dispatch:e})=>Sl(t,e),sv=(t,e)=>({editor:n,tr:r})=>{let{state:i}=n,o=i.doc.slice(t.from,t.to);r.deleteRange(t.from,t.to);let s=r.mapping.map(e);return r.insert(s,o.content),r.setSelection(new K(r.doc.resolve(s-1))),!0},av=()=>({tr:t,dispatch:e})=>{let{selection:n}=t,r=n.$anchor.node();if(r.content.size>0)return!1;let i=t.selection.$anchor;for(let o=i.depth;o>0;o-=1)if(i.node(o).type===r.type){if(e){let a=i.before(o),l=i.after(o);t.delete(a,l).scrollIntoView()}return!0}return!1},lv=t=>({tr:e,state:n,dispatch:r})=>{let i=Ue(t,n.schema),o=e.selection.$anchor;for(let s=o.depth;s>0;s-=1)if(o.node(s).type===i){if(r){let l=o.before(s),c=o.after(s);e.delete(l,c).scrollIntoView()}return!0}return!1},cv=t=>({tr:e,dispatch:n})=>{let{from:r,to:i}=t;return n&&e.delete(r,i),!0},dv=()=>({state:t,dispatch:e})=>Mo(t,e),uv=()=>({commands:t})=>t.keyboardShortcut("Enter"),fv=()=>({state:t,dispatch:e})=>wl(t,e);function Co(t,e,n={strict:!0}){let r=Object.keys(e);return r.length?r.every(i=>n.strict?e[i]===t[i]:Fl(e[i])?e[i].test(t[i]):e[i]===t[i]):!0}function Bl(t,e,n={}){return t.find(r=>r.type===e&&Co(r.attrs,n))}function pv(t,e,n={}){return!!Bl(t,e,n)}function zl(t,e,n={}){if(!t||!e)return;let r=t.parent.childAfter(t.parentOffset);if(t.parentOffset===r.offset&&r.offset!==0&&(r=t.parent.childBefore(t.parentOffset)),!r.node)return;let i=Bl([...r.node.marks],e,n);if(!i)return;let o=r.index,s=t.start()+r.offset,a=o+1,l=s+r.node.nodeSize;for(Bl([...r.node.marks],e,n);o>0&&i.isInSet(t.parent.child(o-1).marks);)o-=1,s-=t.parent.child(o).nodeSize;for(;a=s;l--)if(i(this.values[l],a+l)===!1)return!1},e.prototype.leafAppend=function(i){if(this.length+i.length<=Go)return new e(this.values.concat(i.flatten()))},e.prototype.leafPrepend=function(i){if(this.length+i.length<=Go)return new e(i.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(e.prototype,n),e}(je);je.empty=new Ip([]);var Tw=function(t){function e(n,r){t.call(this),this.left=n,this.right=r,this.length=n.length+r.length,this.depth=Math.max(n.depth,r.depth)+1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(r){return rNw&&(u=u.compress(this.items.length-r.length)),u}emptyItemCount(){let e=0;return this.items.forEach(n=>{n.step||e++}),e}compress(e=this.items.length){let n=this.remapping(0,e),r=n.maps.length,i=[],o=0;return this.items.forEach((s,a)=>{if(a>=e)i.push(s),s.selection&&o++;else if(s.step){let l=s.step.map(n.slice(r)),c=l&&l.getMap();if(r--,c&&n.appendMap(c,r),l){let d=s.selection&&s.selection.map(n.slice(r));d&&o++;let u=new qt(c.invert(),l,d),f,p=i.length-1;(f=i.length&&i[p].merge(u))?i[p]=f:i.push(u)}}else s.map&&r--},this.items.length,0),new t(Bl.from(i.reverse()),o)}};tr.empty=new tr(Bl.empty,0);function Cw(t,e){let n;return t.forEach((r,i)=>{if(r.selection&&e--==0)return n=i,!1}),t.slice(n)}var qt=class t{constructor(e,n,r,i){this.map=e,this.step=n,this.selection=r,this.mirrorOffset=i}merge(e){if(this.step&&e.step&&!e.selection){let n=e.step.merge(this.step);if(n)return new t(n.getMap().invert(),n,this.selection)}}},jt=class{constructor(e,n,r,i,o){this.done=e,this.undone=n,this.prevRanges=r,this.prevTime=i,this.prevComposition=o}},_w=20;function Ow(t,e,n,r){let i=n.getMeta(Mn),o;if(i)return i.historyState;n.getMeta(Rw)&&(t=new jt(t.done,t.undone,null,0,-1));let s=n.getMeta("appendedTransaction");if(n.steps.length==0)return t;if(s&&s.getMeta(Mn))return s.getMeta(Mn).redo?new jt(t.done.addTransform(n,void 0,r,qo(e)),t.undone,Dp(n.mapping.maps[n.steps.length-1]),t.prevTime,t.prevComposition):new jt(t.done,t.undone.addTransform(n,void 0,r,qo(e)),null,t.prevTime,t.prevComposition);if(n.getMeta("addToHistory")!==!1&&!(s&&s.getMeta("addToHistory")===!1)){let a=n.getMeta("composition"),l=t.prevTime==0||!s&&t.prevComposition!=a&&(t.prevTime<(n.time||0)-r.newGroupDelay||!Aw(n,t.prevRanges)),c=s?Hl(t.prevRanges,n.mapping):Dp(n.mapping.maps[n.steps.length-1]);return new jt(t.done.addTransform(n,l?e.selection.getBookmark():void 0,r,qo(e)),tr.empty,c,n.time,a??t.prevComposition)}else return(o=n.getMeta("rebased"))?new jt(t.done.rebased(n,o),t.undone.rebased(n,o),Hl(t.prevRanges,n.mapping),t.prevTime,t.prevComposition):new jt(t.done.addMaps(n.mapping.maps),t.undone.addMaps(n.mapping.maps),Hl(t.prevRanges,n.mapping),t.prevTime,t.prevComposition)}function Aw(t,e){if(!e)return!1;if(!t.docChanged)return!0;let n=!1;return t.mapping.maps[0].forEach((r,i)=>{for(let o=0;o