@powerduck/md-editor 0.10.9 → 0.10.10

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.
Files changed (3) hide show
  1. package/dist/index.cjs +28 -30
  2. package/dist/index.mjs +2132 -4691
  3. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -1,20 +1,18 @@
1
- "use strict";var wi=Object.create;var $t=Object.defineProperty;var vi=Object.getOwnPropertyDescriptor;var ki=Object.getOwnPropertyNames;var xi=Object.getPrototypeOf,Si=Object.prototype.hasOwnProperty;var Ni=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ki(e))!Si.call(i,r)&&r!==t&&$t(i,r,{get:()=>e[r],enumerable:!(n=vi(e,r))||n.enumerable});return i};var Ut=(i,e,t)=>(t=i!=null?wi(xi(i)):{},Ni(e||!i||!i.__esModule?$t(t,"default",{value:i,enumerable:!0}):t,i));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const se=require("@codemirror/state"),Q=require("@codemirror/view"),ct=require("@codemirror/commands"),Ti=require("@codemirror/lang-markdown"),Ai=require("@codemirror/language-data"),Ci=require("markdown-it"),Ht=require("katex"),Mi=1024;let Oi=0;class dt{constructor(e,t){this.from=e,this.to=t}}class V{constructor(e={}){this.id=Oi++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=le.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}}V.closedBy=new V({deserialize:i=>i.split(" ")});V.openedBy=new V({deserialize:i=>i.split(" ")});V.group=new V({deserialize:i=>i.split(" ")});V.isolate=new V({deserialize:i=>{if(i&&i!="rtl"&&i!="ltr"&&i!="auto")throw new RangeError("Invalid value for isolate: "+i);return i||"auto"}});V.contextHash=new V({perNode:!0});V.lookAhead=new V({perNode:!0});V.mounted=new V({perNode:!0});class Be{constructor(e,t,n,r=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=r}static get(e){return e&&e.props&&e.props[V.mounted.id]}}const Ri=Object.create(null);class le{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):Ri,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new le(e.name||"",t,e.id,n);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(V.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(" "))t[r]=e[n];return n=>{for(let r=n.prop(V.group),s=-1;s<(r?r.length:0);s++){let o=t[s<0?n.name:r[s]];if(o)return o}}}}le.none=new le("",Object.create(null),0,8);const We=new WeakMap,Ft=new WeakMap;var ee;(function(i){i[i.ExcludeBuffers=1]="ExcludeBuffers",i[i.IncludeAnonymous=2]="IncludeAnonymous",i[i.IgnoreMounts=4]="IgnoreMounts",i[i.IgnoreOverlays=8]="IgnoreOverlays",i[i.EnterBracketed=16]="EnterBracketed"})(ee||(ee={}));class ie{constructor(e,t,n,r,s){if(this.type=e,this.children=t,this.positions=n,this.length=r,this.props=null,s&&s.length){this.props=Object.create(null);for(let[o,a]of s)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=Be.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let r=n.toString();r&&(t&&(t+=","),t+=r)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new _t(this.topNode,e)}cursorAt(e,t=0,n=0){let r=We.get(this)||this.topNode,s=new _t(r);return s.moveTo(e,t),We.set(this,s._tree),s}get topNode(){return new ae(this,0,0,null)}resolve(e,t=0){let n=$e(We.get(this)||this.topNode,e,t,!1);return We.set(this,n),n}resolveInner(e,t=0){let n=$e(Ft.get(this)||this.topNode,e,t,!0);return Ft.set(this,n),n}resolveStack(e,t=0){return Di(this,e,t)}iterate(e){let{enter:t,leave:n,from:r=0,to:s=this.length}=e,o=e.mode||0,a=(o&ee.IncludeAnonymous)>0;for(let l=this.cursor(o|ee.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=r&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&n&&(a||!l.type.isAnonymous)&&n(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:At(le.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new ie(this.type,t,n,r,this.propValues),e.makeTree||((t,n,r)=>new ie(le.none,t,n,r)))}static build(e){return Pi(e)}}ie.empty=new ie(le.none,[],[],0);class Nt{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Nt(this.buffer,this.index)}}class Ee{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return le.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],r=this.set.types[t],s=r.name;if(/\W/.test(s)&&!r.isError&&(s=JSON.stringify(s)),e+=4,n==e)return s;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,n,r,s){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(yn(s,r,o[l+1],o[l+2])&&(a=l,n>0));l=o[l+3]);return a}slice(e,t,n){let r=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){s[l++]=r[a++],s[l++]=r[a++]-n;let c=s[l++]=r[a++]-n;s[l++]=r[a++]-e,o=Math.max(o,c)}return new Ee(s,o,this.set)}}function yn(i,e,t,n){switch(i){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function $e(i,e,t,n){for(var r;i.from==i.to||(t<1?i.from>=e:i.from>e)||(t>-1?i.to<=e:i.to<e);){let o=!n&&i instanceof ae&&i.index<0?null:i.parent;if(!o)return i;i=o}let s=n?0:ee.IgnoreOverlays;if(n)for(let o=i,a=o.parent;a;o=a,a=o.parent)o instanceof ae&&o.index<0&&((r=a.enter(e,t,s))===null||r===void 0?void 0:r.from)!=o.from&&(i=a);for(;;){let o=i.enter(e,t,s);if(!o)return i;i=o}}class _n{cursor(e=0){return new _t(this,e)}getChild(e,t=null,n=null){let r=zt(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return zt(this,e,t,n)}resolve(e,t=0){return $e(this,e,t,!1)}resolveInner(e,t=0){return $e(this,e,t,!0)}matchContext(e){return yt(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}get node(){return this}get next(){return this.parent}}class ae extends _n{constructor(e,t,n,r){super(),this._tree=e,this.from=t,this.index=n,this._parent=r}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,r,s=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,c=t>0?a.length:-1;e!=c;e+=t){let d=a[e],u=l[e]+o.from,h;if(!(!(s&ee.EnterBracketed&&d instanceof ie&&(h=Be.get(d))&&!h.overlay&&h.bracketed&&n>=u&&n<=u+d.length)&&!yn(r,n,u,u+d.length))){if(d instanceof Ee){if(s&ee.ExcludeBuffers)continue;let p=d.findChild(0,d.buffer.length,t,n-u,r);if(p>-1)return new ye(new Ii(o,d,e,u),null,p)}else if(s&ee.IncludeAnonymous||!d.type.isAnonymous||Tt(d)){let p;if(!(s&ee.IgnoreMounts)&&(p=Be.get(d))&&!p.overlay)return new ae(p.tree,u,e,o);let m=new ae(d,u,e,o);return s&ee.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(t<0?d.children.length-1:0,t,n,r,s)}}}if(s&ee.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,n=0){let r;if(!(n&ee.IgnoreOverlays)&&(r=Be.get(this._tree))&&r.overlay){let s=e-this.from,o=n&ee.EnterBracketed&&r.bracketed;for(let{from:a,to:l}of r.overlay)if((t>0||o?a<=s:a<s)&&(t<0||o?l>=s:l>s))return new ae(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function zt(i,e,t,n){let r=i.cursor(),s=[];if(!r.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=r.type.is(t),!r.nextSibling())return s}for(;;){if(n!=null&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return n==null?s:[]}}function yt(i,e,t=e.length-1){for(let n=i;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}class Ii{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}}class ye extends _n{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new ye(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,n=0){if(n&ee.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new ye(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new ye(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new ye(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,s=n.buffer[this.index+3];if(s>r){let o=n.buffer[this.index+1];e.push(n.slice(r,s,o)),t.push(0)}return new ie(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function En(i){if(!i.length)return null;let e=0,t=i[0];for(let s=1;s<i.length;s++){let o=i[s];(o.from>t.from||o.to<t.to)&&(t=o,e=s)}let n=t instanceof ae&&t.index<0?null:t.parent,r=i.slice();return n?r[e]=n:r.splice(e,1),new Li(r,t)}class Li{constructor(e,t){this.heads=e,this.node=t}get next(){return En(this.heads)}}function Di(i,e,t){let n=i.resolveInner(e,t),r=null;for(let s=n instanceof ae?n:n.context.parent;s;s=s.parent)if(s.index<0){let o=s.parent;(r||(r=[n])).push(o.resolve(e,t)),s=o}else{let o=Be.get(s.tree);if(o&&o.overlay&&o.overlay[0].from<=e&&o.overlay[o.overlay.length-1].to>=e){let a=new ae(o.tree,o.overlay[0].from+s.from,-1,s);(r||(r=[n])).push($e(a,e,t,!1))}}return r?En(r):n}class _t{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~ee.EnterBracketed,e instanceof ae)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof ae?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&ee.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&ee.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&ee.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let r=n<0?0:this.stack[n]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(r)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index<r.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(r.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:n}=r)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let s=t+e,o=e<0?-1:n._tree.children.length;s!=o;s+=e){let a=n._tree.children[s];if(this.mode&ee.IncludeAnonymous||a instanceof Ee||!a.type.isAnonymous||Tt(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let r=this.index,s=this.stack.length;s>=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,n=s+1;break e}r=this.stack[--s]}for(let r=n;r<this.stack.length;r++)t=new ye(this.buffer,t,this.stack[r]);return this.bufferNode=new ye(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let r=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(r=!0)}for(;;){if(r&&t&&t(this),r=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,r=!0}}}matchContext(e){if(!this.buffer)return yt(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let r=e.length-1,s=this.stack.length-1;r>=0;s--){if(s<0)return yt(this._tree,e,r);let o=n[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}}function Tt(i){return i.children.some(e=>e instanceof Ee||!e.type.isAnonymous||Tt(e))}function Pi(i){var e;let{buffer:t,nodeSet:n,maxBufferLength:r=Mi,reused:s=[],minRepeatType:o=n.types.length}=i,a=Array.isArray(t)?new Nt(t,t.length):t,l=n.types,c=0,d=0;function u(x,A,E,R,C,H){let{id:I,start:N,end:z,size:U}=a,X=d,f=c;if(U<0)if(a.next(),U==-1){let F=s[I];E.push(F),R.push(N-x);return}else if(U==-3){c=I;return}else if(U==-4){d=I;return}else throw new RangeError(`Unrecognized record size: ${U}`);let v=l[I],w,T,$=N-x;if(z-N<=r&&(T=S(a.pos-A,C))){let F=new Uint16Array(T.size-T.skip),q=a.pos-T.size,j=F.length;for(;a.pos>q;)j=O(T.start,F,j);w=new Ee(F,z-T.start,n),$=T.start-x}else{let F=a.pos-U;a.next();let q=[],j=[],J=I>=o?I:-1,te=0,we=z;for(;a.pos>F;)J>=0&&a.id==J&&a.size>=0?(a.end<=we-r&&(m(q,j,N,te,a.end,we,J,X,f),te=q.length,we=a.end),a.next()):H>2500?h(N,F,q,j):u(N,F,q,j,J,H+1);if(J>=0&&te>0&&te<q.length&&m(q,j,N,te,N,we,J,X,f),q.reverse(),j.reverse(),J>-1&&te>0){let Re=p(v,f);w=At(v,q,j,0,q.length,0,z-N,Re,Re)}else w=y(v,q,j,z-N,X-z,f)}E.push(w),R.push($)}function h(x,A,E,R){let C=[],H=0,I=-1;for(;a.pos>A;){let{id:N,start:z,end:U,size:X}=a;if(X>4)a.next();else{if(I>-1&&z<I)break;I<0&&(I=U-r),C.push(N,z,U),H++,a.next()}}if(H){let N=new Uint16Array(H*4),z=C[C.length-2];for(let U=C.length-3,X=0;U>=0;U-=3)N[X++]=C[U],N[X++]=C[U+1]-z,N[X++]=C[U+2]-z,N[X++]=X;E.push(new Ee(N,C[2]-z,n)),R.push(z-x)}}function p(x,A){return(E,R,C)=>{let H=0,I=E.length-1,N,z;if(I>=0&&(N=E[I])instanceof ie){if(!I&&N.type==x&&N.length==C)return N;(z=N.prop(V.lookAhead))&&(H=R[I]+N.length+z)}return y(x,E,R,C,H,A)}}function m(x,A,E,R,C,H,I,N,z){let U=[],X=[];for(;x.length>R;)U.push(x.pop()),X.push(A.pop()+E-C);x.push(y(n.types[I],U,X,H-C,N-H,z)),A.push(C-E)}function y(x,A,E,R,C,H,I){if(H){let N=[V.contextHash,H];I=I?[N].concat(I):[N]}if(C>25){let N=[V.lookAhead,C];I=I?[N].concat(I):[N]}return new ie(x,A,E,R,I)}function S(x,A){let E=a.fork(),R=0,C=0,H=0,I=E.end-r,N={size:0,start:0,skip:0};e:for(let z=E.pos-x;E.pos>z;){let U=E.size;if(E.id==A&&U>=0){N.size=R,N.start=C,N.skip=H,H+=4,R+=4,E.next();continue}let X=E.pos-U;if(U<0||X<z||E.start<I)break;let f=E.id>=o?4:0,v=E.start;for(E.next();E.pos>X;){if(E.size<0)if(E.size==-3||E.size==-4)f+=4;else break e;else E.id>=o&&(f+=4);E.next()}C=v,R+=U,H+=f}return(A<0||R==x)&&(N.size=R,N.start=C,N.skip=H),N.size>4?N:void 0}function O(x,A,E){let{id:R,start:C,end:H,size:I}=a;if(a.next(),I>=0&&R<o){let N=E;if(I>4){let z=a.pos-(I-4);for(;a.pos>z;)E=O(x,A,E)}A[--E]=N,A[--E]=H-x,A[--E]=C-x,A[--E]=R}else I==-3?c=R:I==-4&&(d=R);return E}let P=[],L=[];for(;a.pos>0;)u(i.start||0,i.bufferStart||0,P,L,-1,0);let B=(e=i.length)!==null&&e!==void 0?e:P.length?L[0]+P[0].length:0;return new ie(l[i.topID],P.reverse(),L.reverse(),B)}const Kt=new WeakMap;function Qe(i,e){if(!i.isAnonymous||e instanceof Ee||e.type!=i)return 1;let t=Kt.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=i||!(n instanceof ie)){t=1;break}t+=Qe(i,n)}Kt.set(e,t)}return t}function At(i,e,t,n,r,s,o,a,l){let c=0;for(let m=n;m<r;m++)c+=Qe(i,e[m]);let d=Math.ceil(c*1.5/8),u=[],h=[];function p(m,y,S,O,P){for(let L=S;L<O;){let B=L,x=y[L],A=Qe(i,m[L]);for(L++;L<O;L++){let E=Qe(i,m[L]);if(A+E>=d)break;A+=E}if(L==B+1){if(A>d){let E=m[B];p(E.children,E.positions,0,E.children.length,y[B]+P);continue}u.push(m[B])}else{let E=y[L-1]+m[L-1].length-x;u.push(At(i,m,y,B,L,x,E,null,l))}h.push(x+P-s)}}return p(e,t,n,r,0),(a||l)(u,h,o)}class xe{constructor(e,t,n,r,s=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let r=[new xe(0,e.length,e,0,!1,n)];for(let s of t)s.to>e.length&&r.push(s);return r}static applyChanges(e,t,n=128){if(!t.length)return e;let r=[],s=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let d=a<t.length?t[a]:null,u=d?d.fromA:1e9;if(u-l>=n)for(;o&&o.from<u;){let h=o;if(l>=h.from||u<=h.to||c){let p=Math.max(h.from,l)-c,m=Math.min(h.to,u)-c;h=p>=m?null:new xe(p,m,h.tree,h.offset+c,a>0,!!d)}if(h&&r.push(h),o.to>u)break;o=s<e.length?e[s++]:null}if(!d)break;l=d.toA,c=d.toA-d.toB}return r}}class Bi{startParse(e,t,n){return typeof e=="string"&&(e=new $i(e)),n=n?n.length?n.map(r=>new dt(r.from,r.to)):[new dt(0,0)]:[new dt(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let s=r.advance();if(s)return s}}}class $i{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}new V({perNode:!0});let Ui=0;class oe{constructor(e,t,n,r){this.name=e,this.set=t,this.base=n,this.modified=r,this.id=Ui++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof oe&&(t=e),t!=null&&t.base)throw new Error("Can not derive from a modified tag");let r=new oe(n,[],null,[]);if(r.set.push(r),t)for(let s of t.set)r.set.push(s);return r}static defineModifier(e){let t=new et(e);return n=>n.modified.indexOf(t)>-1?n:et.get(n.base||n,n.modified.concat(t).sort((r,s)=>r.id-s.id))}}let Hi=0;class et{constructor(e){this.name=e,this.instances=[],this.id=Hi++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(a=>a.base==e&&Fi(t,a.modified));if(n)return n;let r=[],s=new oe(e.name,r,e,t);for(let a of t)a.instances.push(s);let o=zi(t);for(let a of e.set)if(!a.modified.length)for(let l of o)r.push(et.get(a,l));return s}}function Fi(i,e){return i.length==e.length&&i.every((t,n)=>t==e[n])}function zi(i){let e=[[]];for(let t=0;t<i.length;t++)for(let n=0,r=e.length;n<r;n++)e.push(e[n].concat(i[t]));return e.sort((t,n)=>n.length-t.length)}function Ki(i){let e=Object.create(null);for(let t in i){let n=i[t];Array.isArray(n)||(n=[n]);for(let r of t.split(" "))if(r){let s=[],o=2,a=r;for(let u=0;;){if(a=="..."&&u>0&&u+3==r.length){o=1;break}let h=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!h)throw new RangeError("Invalid path: "+r);if(s.push(h[0]=="*"?"":h[0][0]=='"'?JSON.parse(h[0]):h[0]),u+=h[0].length,u==r.length)break;let p=r[u++];if(u==r.length&&p=="!"){o=0;break}if(p!="/")throw new RangeError("Invalid path: "+r);a=r.slice(u)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+r);let d=new Ue(n,o,l>0?s.slice(0,l):null);e[c]=d.sort(e[c])}}return wn.add(e)}const wn=new V({combine(i,e){let t,n,r;for(;i||e;){if(!i||e&&i.depth>=e.depth?(r=e,e=e.next):(r=i,i=i.next),t&&t.mode==r.mode&&!r.context&&!t.context)continue;let s=new Ue(r.tags,r.mode,r.context);t?t.next=s:n=s,t=s}return n}});class Ue{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}Ue.empty=new Ue([],2,null);function vn(i,e){let t=Object.create(null);for(let s of i)if(!Array.isArray(s.tag))t[s.tag.id]=s.class;else for(let o of s.tag)t[o.id]=s.class;let{scope:n,all:r=null}=e||{};return{style:s=>{let o=r;for(let a of s)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:n}}function qi(i,e){let t=null;for(let n of i){let r=n.style(e);r&&(t=t?t+" "+r:r)}return t}function Gi(i,e,t,n=0,r=i.length){let s=new Wi(n,Array.isArray(e)?e:[e],t);s.highlightRange(i.cursor(),n,r,"",s.highlighters),s.flush(r)}class Wi{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,s){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)return;o.isTop&&(s=this.highlighters.filter(p=>!p.scope||p.scope(o)));let c=r,d=Yi(e)||Ue.empty,u=qi(s,d.tags);if(u&&(c&&(c+=" "),c+=u,d.mode==1&&(r+=(r?" ":"")+u)),this.startSpan(Math.max(t,a),c),d.opaque)return;let h=e.tree&&e.tree.prop(V.mounted);if(h&&h.overlay){let p=e.node.enter(h.overlay[0].from+a,1),m=this.highlighters.filter(S=>!S.scope||S.scope(h.tree.type)),y=e.firstChild();for(let S=0,O=a;;S++){let P=S<h.overlay.length?h.overlay[S]:null,L=P?P.from+a:l,B=Math.max(t,O),x=Math.min(n,L);if(B<x&&y)for(;e.from<x&&(this.highlightRange(e,B,x,r,s),this.startSpan(Math.min(x,e.to),c),!(e.to>=L||!e.nextSibling())););if(!P||L>n)break;O=P.to+a,O>t&&(this.highlightRange(p.cursor(),Math.max(t,P.from+a),Math.min(n,O),"",m),this.startSpan(Math.min(n,O),c))}y&&e.parent()}else if(e.firstChild()){h&&(r="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,r,s),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}}function Yi(i){let e=i.type.prop(wn);for(;e&&e.context&&!i.matchContext(e.context);)e=e.next;return e||null}const b=oe.define,Ye=b(),me=b(),qt=b(me),Gt=b(me),be=b(),Ve=b(be),ut=b(be),he=b(),ke=b(he),de=b(),ue=b(),Et=b(),Ie=b(Et),Ze=b(),g={comment:Ye,lineComment:b(Ye),blockComment:b(Ye),docComment:b(Ye),name:me,variableName:b(me),typeName:qt,tagName:b(qt),propertyName:Gt,attributeName:b(Gt),className:b(me),labelName:b(me),namespace:b(me),macroName:b(me),literal:be,string:Ve,docString:b(Ve),character:b(Ve),attributeValue:b(Ve),number:ut,integer:b(ut),float:b(ut),bool:b(be),regexp:b(be),escape:b(be),color:b(be),url:b(be),keyword:de,self:b(de),null:b(de),atom:b(de),unit:b(de),modifier:b(de),operatorKeyword:b(de),controlKeyword:b(de),definitionKeyword:b(de),moduleKeyword:b(de),operator:ue,derefOperator:b(ue),arithmeticOperator:b(ue),logicOperator:b(ue),bitwiseOperator:b(ue),compareOperator:b(ue),updateOperator:b(ue),definitionOperator:b(ue),typeOperator:b(ue),controlOperator:b(ue),punctuation:Et,separator:b(Et),bracket:Ie,angleBracket:b(Ie),squareBracket:b(Ie),paren:b(Ie),brace:b(Ie),content:he,heading:ke,heading1:b(ke),heading2:b(ke),heading3:b(ke),heading4:b(ke),heading5:b(ke),heading6:b(ke),contentSeparator:b(he),list:b(he),quote:b(he),emphasis:b(he),strong:b(he),link:b(he),monospace:b(he),strikethrough:b(he),inserted:b(),deleted:b(),changed:b(),invalid:b(),meta:Ze,documentMeta:b(Ze),annotation:b(Ze),processingInstruction:b(Ze),definition:oe.defineModifier("definition"),constant:oe.defineModifier("constant"),function:oe.defineModifier("function"),standard:oe.defineModifier("standard"),local:oe.defineModifier("local"),special:oe.defineModifier("special")};for(let i in g){let e=g[i];e instanceof oe&&(e.name=i)}vn([{tag:g.link,class:"tok-link"},{tag:g.heading,class:"tok-heading"},{tag:g.emphasis,class:"tok-emphasis"},{tag:g.strong,class:"tok-strong"},{tag:g.keyword,class:"tok-keyword"},{tag:g.atom,class:"tok-atom"},{tag:g.bool,class:"tok-bool"},{tag:g.url,class:"tok-url"},{tag:g.labelName,class:"tok-labelName"},{tag:g.inserted,class:"tok-inserted"},{tag:g.deleted,class:"tok-deleted"},{tag:g.literal,class:"tok-literal"},{tag:g.string,class:"tok-string"},{tag:g.number,class:"tok-number"},{tag:[g.regexp,g.escape,g.special(g.string)],class:"tok-string2"},{tag:g.variableName,class:"tok-variableName"},{tag:g.local(g.variableName),class:"tok-variableName tok-local"},{tag:g.definition(g.variableName),class:"tok-variableName tok-definition"},{tag:g.special(g.variableName),class:"tok-variableName2"},{tag:g.definition(g.propertyName),class:"tok-propertyName tok-definition"},{tag:g.typeName,class:"tok-typeName"},{tag:g.namespace,class:"tok-namespace"},{tag:g.className,class:"tok-className"},{tag:g.macroName,class:"tok-macroName"},{tag:g.propertyName,class:"tok-propertyName"},{tag:g.operator,class:"tok-operator"},{tag:g.comment,class:"tok-comment"},{tag:g.meta,class:"tok-meta"},{tag:g.invalid,class:"tok-invalid"},{tag:g.punctuation,class:"tok-punctuation"}]);const wt="ͼ",Wt=typeof Symbol>"u"?"__"+wt:Symbol.for(wt),vt=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Yt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Vt{constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,a,l,c){let d=[],u=/^@(\w+)\b/.exec(o[0]),h=u&&u[1]=="keyframes";if(u&&a==null)return l.push(o[0]+";");for(let p in a){let m=a[p];if(/&/.test(p))s(p.split(/,\s*/).map(y=>o.map(S=>y.replace(/&/,S))).reduce((y,S)=>y.concat(S)),m,l);else if(m&&typeof m=="object"){if(!u)throw new RangeError("The value of a property ("+p+") should be a primitive value.");s(r(p),m,d,h)}else m!=null&&d.push(p.replace(/_.*/,"").replace(/[A-Z]/g,y=>"-"+y.toLowerCase())+": "+m+";")}(d.length||h)&&l.push((n&&!u&&!c?o.map(n):o).join(", ")+" {"+d.join(" ")+"}")}for(let o in e)s(r(o),e[o],this.rules)}getRules(){return this.rules.join(`
2
- `)}static newName(){let e=Yt[Wt]||1;return Yt[Wt]=e+1,wt+e.toString(36)}static mount(e,t,n){let r=e[vt],s=n&&n.nonce;r?s&&r.setNonce(s):r=new Vi(e,s),r.mount(Array.isArray(t)?t:[t],e)}}let Zt=new Map;class Vi{constructor(e,t){let n=e.ownerDocument||e,r=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let s=Zt.get(n);if(s)return e[vt]=s;this.sheet=new r.CSSStyleSheet,Zt.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[vt]=this}mount(e,t){let n=this.sheet,r=0,s=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),n)for(let c=0;c<a.rules.length;c++)n.insertRule(a.rules[c],r++)}else{for(;s<l;)r+=this.modules[s++].rules.length;r+=a.rules.length,s++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
3
- `;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}}var ht;const Pe=new V,Zi=new V;class pe{constructor(e,t,n=[],r=""){this.data=e,this.name=r,se.EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(se.EditorState.prototype,"tree",{get(){return He(this)}}),this.parser=t,this.extension=[Me.of(this),se.EditorState.languageData.of((s,o,a)=>{let l=Xt(s,o,a),c=l.type.prop(Pe);if(!c)return[];let d=s.facet(c),u=l.type.prop(Zi);if(u){let h=l.resolve(o-l.from,a);for(let p of u)if(p.test(h,s)){let m=s.facet(p.facet);return p.type=="replace"?m:m.concat(d)}}return d})].concat(n)}isActiveAt(e,t,n=-1){return Xt(e,t,n).type.prop(Pe)==this.data}findRegions(e){let t=e.facet(Me);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],r=(s,o)=>{if(s.prop(Pe)==this.data){n.push({from:o,to:o+s.length});return}let a=s.prop(V.mounted);if(a){if(a.tree.prop(Pe)==this.data){if(a.overlay)for(let l of a.overlay)n.push({from:l.from+o,to:l.to+o});else n.push({from:o,to:o+s.length});return}else if(a.overlay){let l=n.length;if(r(a.tree,a.overlay[0].from+o),n.length>l)return}}for(let l=0;l<s.children.length;l++){let c=s.children[l];c instanceof ie&&r(c,s.positions[l]+o)}};return r(He(e),0),n}get allowsNesting(){return!0}}pe.setState=se.StateEffect.define();function Xt(i,e,t){let n=i.facet(Me),r=He(i).topNode;if(!n||n.allowsNesting)for(let s=r;s;s=s.enter(e,t,ee.ExcludeBuffers|ee.EnterBracketed))s.type.isTop&&(r=s);return r}function He(i){let e=i.field(pe.state,!1);return e?e.tree:ie.empty}class Xi{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}let Le=null;class tt{constructor(e,t,n=[],r,s,o,a,l){this.parser=e,this.state=t,this.fragments=n,this.tree=r,this.treeLen=s,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new tt(e,t,[],ie.empty,0,n,[],null)}startParse(){return this.parser.startParse(new Xi(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=ie.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let r=this.parse.advance();if(r)if(this.fragments=this.withoutTempSkipped(xe.addTree(r,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=r,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(xe.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Le;Le=this;try{return e()}finally{Le=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=jt(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,d,u,h)=>l.push({fromA:c,toA:d,fromB:u,toB:h})),n=xe.applyChanges(n,l),r=ie.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let d=e.mapPos(c.from,1),u=e.mapPos(c.to,-1);d<u&&a.push({from:d,to:u})}}}return new tt(this.parser,t,n,r,s,o,a,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:r,to:s}=this.skipped[n];r<e.to&&s>e.from&&(this.fragments=jt(this.fragments,r,s),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Bi{createParse(t,n,r){let s=r[0].from,o=r[r.length-1].to;return{parsedPos:s,advance(){let l=Le;if(l){for(let c of r)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new ie(le.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Le}}function jt(i,e,t){return xe.applyChanges(i,[{fromA:e,toA:t,fromB:e,toB:t}])}class Ce{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new Ce(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=tt.create(e.facet(Me).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new Ce(n)}}pe.state=se.StateField.define({create:Ce.init,update(i,e){for(let t of e.effects)if(t.is(pe.setState))return t.value;return e.startState.facet(Me)!=e.state.facet(Me)?Ce.init(e.state):i.apply(e)}});let kn=i=>{let e=setTimeout(()=>i(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(kn=i=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(i,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const pt=typeof navigator<"u"&&(!((ht=navigator.scheduling)===null||ht===void 0)&&ht.isInputPending)?()=>navigator.scheduling.isInputPending():null,ji=Q.ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(pe.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(pe.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=kn(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:r}}=this.view,s=n.field(pe.state);if(s.tree==s.context.tree&&s.context.isDone(r+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!pt?Math.max(25,e.timeRemaining()-5):1e9),a=s.context.treeLen<r&&n.doc.length>r+1e3,l=s.context.work(()=>pt&&pt()||Date.now()>o,r+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:pe.setState.of(new Ce(s.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>Q.logException(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Me=se.Facet.define({combine(i){return i.length?i[0]:null},enables:i=>[pe.state,ji,Q.EditorView.contentAttributes.compute([i],e=>{let t=e.facet(i);return t&&t.name?{"data-language":t.name}:{}})]});class Ke{constructor(e,t){this.specs=e;let n;function r(a){let l=Vt.newName();return(n||(n=Object.create(null)))["."+l]=a,l}const s=typeof t.all=="string"?t.all:t.all?r(t.all):void 0,o=t.scope;this.scope=o instanceof pe?a=>a.prop(Pe)==o.data:o?a=>a==o:void 0,this.style=vn(e.map(a=>({tag:a.tag,class:a.class||r(Object.assign({},a,{tag:null}))})),{all:s}).style,this.module=n?new Vt(n):null,this.themeType=t.themeType}static define(e,t){return new Ke(e,t||{})}}const kt=se.Facet.define(),Ji=se.Facet.define({combine(i){return i.length?[i[0]]:null}});function ft(i){let e=i.facet(kt);return e.length?e:i.facet(Ji)}function xn(i,e){let t=[er],n;return i instanceof Ke&&(i.module&&t.push(Q.EditorView.styleModule.of(i.module)),n=i.themeType),n?t.push(kt.computeN([Q.EditorView.darkTheme],r=>r.facet(Q.EditorView.darkTheme)==(n=="dark")?[i]:[])):t.push(kt.of(i)),t}class Qi{constructor(e){this.markCache=Object.create(null),this.tree=He(e.state),this.decorations=this.buildDeco(e,ft(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=He(e.state),n=ft(e.state),r=n!=ft(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length<s.to&&!r&&t.type==this.tree.type&&o>=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return Q.Decoration.none;let n=new se.RangeSetBuilder;for(let{from:r,to:s}of e.visibleRanges)Gi(this.tree,t,(o,a,l)=>{n.add(o,a,this.markCache[l]||(this.markCache[l]=Q.Decoration.mark({class:l})))},r,s);return n.finish()}}const er=se.Prec.high(Q.ViewPlugin.fromClass(Qi,{decorations:i=>i.decorations})),tr=Object.create(null),Jt=[le.none],Qt=[],en=Object.create(null),nr=Object.create(null);for(let[i,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])nr[i]=ir(tr,e);function gt(i,e){Qt.indexOf(i)>-1||(Qt.push(i),console.warn(e))}function ir(i,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let d=i[c]||g[c];d?typeof d=="function"?l.length?l=l.map(d):gt(c,`Modifier ${c} used at start of tag`):l.length?gt(c,`Tag ${c} used as modifier`):l=Array.isArray(d)?d:[d]:gt(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),r=n+" "+t.map(a=>a.id),s=en[r];if(s)return s.id;let o=en[r]=le.define({id:Jt.length,name:n,props:[Ki({[n]:t})]});return Jt.push(o),o.id}Q.Direction.RTL,Q.Direction.LTR;const rr=Ke.define([{tag:g.heading,color:"#8250df",fontWeight:"600"},{tag:g.list,color:"#cf222e"},{tag:g.quote,color:"#6e7781"},{tag:g.monospace,color:"#0a6640"},{tag:g.meta,color:"#cf222e"},{tag:g.link,color:"#0969da"},{tag:g.url,color:"#0969da"},{tag:g.labelName,color:"#0969da"},{tag:g.strong,color:"#1f2328",fontWeight:"700"},{tag:g.emphasis,color:"#1f2328",fontStyle:"italic"},{tag:g.strikethrough,color:"#6e7781",textDecoration:"line-through"},{tag:g.contentSeparator,color:"#6e7781"},{tag:g.tagName,color:"#cf222e"},{tag:g.attributeName,color:"#0550ae"},{tag:g.attributeValue,color:"#0a6640"},{tag:g.comment,color:"#6e7781",fontStyle:"italic"},{tag:g.escape,color:"#6e7781"},{tag:g.keyword,color:"#cf222e"},{tag:g.definition(g.variableName),color:"#6639ba"},{tag:g.typeName,color:"#953800"},{tag:g.number,color:"#0550ae"},{tag:g.string,color:"#0a6640"},{tag:g.bool,color:"#0550ae"},{tag:g.function(g.variableName),color:"#8250df"},{tag:g.punctuation,color:"#57606a"},{tag:g.operator,color:"#57606a"}]),sr=Ke.define([{tag:g.heading,color:"#c4b5fd",fontWeight:"600"},{tag:g.list,color:"#ff9b9b"},{tag:g.quote,color:"#768390"},{tag:g.monospace,color:"#86efac"},{tag:g.meta,color:"#ff9b9b"},{tag:g.link,color:"#8eb5ff"},{tag:g.url,color:"#8eb5ff"},{tag:g.labelName,color:"#8eb5ff"},{tag:g.strong,color:"#edf2f7",fontWeight:"700"},{tag:g.emphasis,color:"#edf2f7",fontStyle:"italic"},{tag:g.strikethrough,color:"#768390",textDecoration:"line-through"},{tag:g.contentSeparator,color:"#768390"},{tag:g.tagName,color:"#ff9b9b"},{tag:g.attributeName,color:"#8eb5ff"},{tag:g.attributeValue,color:"#86efac"},{tag:g.comment,color:"#768390",fontStyle:"italic"},{tag:g.escape,color:"#768390"},{tag:g.keyword,color:"#ff9b9b"},{tag:g.definition(g.variableName),color:"#c4b5fd"},{tag:g.typeName,color:"#e7b96e"},{tag:g.number,color:"#8eb5ff"},{tag:g.string,color:"#86efac"},{tag:g.bool,color:"#8eb5ff"},{tag:g.function(g.variableName),color:"#c4b5fd"},{tag:g.punctuation,color:"#98a4b4"},{tag:g.operator,color:"#98a4b4"}]),tn=xn(rr),nn=xn(sr);class or{constructor(e,t={}){this.dropdown=null,this.items=[],this.selectedIndex=0,this.trigger=null,this.activeHead=0,this.searchAbort=null,this.destroyed=!1,this.view=e,this.options={onMentionSearch:t.onMentionSearch??(()=>[]),onMentionSelect:t.onMentionSelect??(n=>`[@${n.label}](mention:${n.id})`),minChars:t.minChars??0,maxItems:t.maxItems??8}}update(){if(this.destroyed)return;const e=this.findTrigger();if(!e){this.hide();return}this.trigger=e,this.runSearch(e.query)}isOpen(){return this.dropdown!==null&&this.items.length>0}selectCurrent(){this.isOpen()&&this.selectItem(this.selectedIndex)}handleKey(e){if(!this.dropdown||this.items.length===0)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),this.selectedIndex=(this.selectedIndex+1)%this.items.length,this.updateActiveClass(),!0;case"ArrowUp":return e.preventDefault(),this.selectedIndex=(this.selectedIndex-1+this.items.length)%this.items.length,this.updateActiveClass(),!0;case"Enter":case"Tab":return e.preventDefault(),this.selectItem(this.selectedIndex),!0;case"Escape":return e.preventDefault(),this.hide(),!0}return!1}findTrigger(){const{head:e}=this.view.state.selection.main,t=this.view.state.doc.lineAt(e),n=t.text,r=e-t.from;for(let s=r-1;s>=0;s--){const o=n[s];if(o==="@"){if(s===0||/\s|[^\w@]/.test(n[s-1])){const a=n.slice(s+1,r);return/\s/.test(a)?null:{from:t.from+s,query:a}}return null}if(/\s/.test(o))break}return null}async runSearch(e){var n;(n=this.searchAbort)==null||n.call(this);let t=!1;if(this.searchAbort=()=>{t=!0},e.length<this.options.minChars){this.hide();return}try{const r=await this.options.onMentionSearch(e);if(t||this.destroyed)return;this.items=r.slice(0,this.options.maxItems),this.selectedIndex=0,this.items.length>0?this.show():this.hide()}catch{t||this.hide()}}show(){if(this.trigger){if(this.activeHead=this.view.state.selection.main.head,!this.dropdown){this.dropdown=document.createElement("div"),this.dropdown.className="md-editor-mention-dropdown",this.dropdown.setAttribute("role","listbox");const e=this.view.dom.closest(".md-editor-root"),t=(e==null?void 0:e.getAttribute("data-theme"))??"light";this.dropdown.setAttribute("data-theme",t),document.body.appendChild(this.dropdown),this.dropdown.addEventListener("mousedown",n=>{const s=n.target.closest(".md-editor-mention-item");if(!s)return;n.preventDefault(),n.stopPropagation();const o=Number(s.dataset.index);Number.isNaN(o)||this.selectItem(o)}),this.dropdown.addEventListener("mouseover",n=>{const s=n.target.closest(".md-editor-mention-item");if(!s)return;const o=Number(s.dataset.index);!Number.isNaN(o)&&o!==this.selectedIndex&&(this.selectedIndex=o,this.updateActiveClass())})}this.renderDropdown(),this.positionDropdown()}}renderDropdown(){this.dropdown&&(this.dropdown.innerHTML="",this.items.forEach((e,t)=>{const n=document.createElement("div");if(n.className="md-editor-mention-item"+(t===this.selectedIndex?" is-active":""),n.setAttribute("role","option"),n.setAttribute("aria-selected",t===this.selectedIndex?"true":"false"),n.dataset.index=String(t),e.avatar){const o=document.createElement("img");o.className="md-editor-mention-avatar",o.src=e.avatar,o.alt="",n.appendChild(o)}const r=document.createElement("div");r.className="md-editor-mention-text";const s=document.createElement("div");if(s.className="md-editor-mention-label",s.textContent=e.label,r.appendChild(s),e.description){const o=document.createElement("div");o.className="md-editor-mention-desc",o.textContent=e.description,r.appendChild(o)}n.appendChild(r),this.dropdown.appendChild(n)}))}updateActiveClass(){if(!this.dropdown)return;const e=this.dropdown.children;for(let t=0;t<e.length;t++){const n=e[t],r=t===this.selectedIndex;n.classList.toggle("is-active",r),n.setAttribute("aria-selected",r?"true":"false")}}positionDropdown(){if(!this.dropdown||!this.trigger)return;let e=null;try{e=this.view.coordsAtPos(this.trigger.from)}catch{e=null}if(!e){const o=this.view.dom.getBoundingClientRect();e={top:o.top,bottom:o.top+20,left:o.left}}const t=this.dropdown.getBoundingClientRect(),n=window.innerHeight;let r=e.bottom+4,s=e.left;r+t.height>n-8&&(r=e.top-t.height-4),s=Math.max(8,Math.min(s,window.innerWidth-t.width-8)),this.dropdown.style.top=`${r}px`,this.dropdown.style.left=`${s}px`}selectItem(e){const t=this.items[e],n=this.trigger;if(!t||!n)return;const r=this.options.onMentionSelect(t);this.options.onMentionSelect!==void 0&&!r.includes("](mention:")&&r.startsWith("@")&&console.warn("[md-editor] onMentionSelect returned plain '@"+t.label+"'. For badge rendering in the preview, return '[@"+t.label+"](mention:"+t.id+")' instead, or omit onMentionSelect to use the default wrapper.");const s=n.from,o=this.activeHead;this.view.focus(),this.view.dispatch({changes:{from:s,to:o,insert:r},selection:{anchor:s+r.length}}),this.hide()}hide(){var e;this.dropdown&&(this.dropdown.remove(),this.dropdown=null),this.items=[],this.trigger=null,(e=this.searchAbort)==null||e.call(this),this.searchAbort=null}destroy(){this.destroyed=!0,this.hide()}}function ar(i){const e=i.renderer.rules.link_open??((r,s,o,a,l)=>l.renderToken(r,s,o)),t=i.renderer.rules.link_close??((r,s,o,a,l)=>l.renderToken(r,s,o));let n=!1;i.renderer.rules.link_open=(r,s,o,a,l)=>{const c=r[s],d=(c==null?void 0:c.attrGet("href"))??"";if(typeof d=="string"&&d.startsWith("mention:")){n=!0;const u=d.slice(8);return`<span class="md-editor-mention" data-mention-id="${lr(u)}">`}return n=!1,e(r,s,o,a,l)},i.renderer.rules.link_close=(r,s,o,a,l)=>n?(n=!1,"</span>"):t(r,s,o,a,l)}function lr(i){return i.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}async function cr(i){const e=await fetch(i,{mode:"cors"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=await e.text();return dr(t,i)}function dr(i,e){var l,c,d,u,h,p,m;const t={},n=new DOMParser().parseFromString(i,"text/html"),s=((l=n.querySelector('meta[property="og:title"]'))==null?void 0:l.getAttribute("content"))??((c=n.querySelector("title"))==null?void 0:c.textContent)??void 0;s&&(t.title=s.trim());const o=((d=n.querySelector('meta[property="og:description"]'))==null?void 0:d.getAttribute("content"))??((u=n.querySelector('meta[name="description"]'))==null?void 0:u.getAttribute("content"));o&&(t.description=o.trim());const a=((h=n.querySelector('meta[property="og:image"]'))==null?void 0:h.getAttribute("content"))??((p=n.querySelector('meta[property="og:image:secure_url"]'))==null?void 0:p.getAttribute("content"))??((m=n.querySelector('meta[name="twitter:image"]'))==null?void 0:m.getAttribute("content"));return a&&(t.thumbnail=a.startsWith("http")?a:new URL(a,e).href),t}class ur{constructor(e,t={}){this.dropdown=null,this.items=[],this.selectedIndex=0,this.trigger=null,this.activeHead=0,this.searchAbort=null,this.destroyed=!1,this.view=e,this.options={onDocSearch:t.onDocSearch??(()=>[]),insertStyle:t.insertStyle??"auto",triggerChar:t.triggerChar??"/",minChars:t.minChars??0,maxItems:t.maxItems??8,onFetchDocMeta:t.onFetchDocMeta??cr}}update(){if(this.destroyed)return;const e=this.findTrigger();if(!e){this.hide();return}this.trigger=e,this.runSearch(e.query)}isOpen(){return this.dropdown!==null&&this.items.length>0}selectCurrent(){this.isOpen()&&this.selectItem(this.selectedIndex)}handleKey(e){if(!this.dropdown||this.items.length===0)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),this.selectedIndex=(this.selectedIndex+1)%this.items.length,this.updateActiveClass(),!0;case"ArrowUp":return e.preventDefault(),this.selectedIndex=(this.selectedIndex-1+this.items.length)%this.items.length,this.updateActiveClass(),!0;case"Enter":case"Tab":return e.preventDefault(),this.selectItem(this.selectedIndex),!0;case"Escape":return e.preventDefault(),this.hide(),!0}return!1}findTrigger(){const{head:e}=this.view.state.selection.main,t=this.view.state.doc.lineAt(e),n=t.text,r=e-t.from,s=this.options.triggerChar;for(let o=r-1;o>=0;o--){const a=n[o];if(a===s){if(o===0||/\s/.test(n[o-1])){const l=n.slice(o+1,r);return/\s/.test(l)?null:{from:t.from+o,query:l}}return null}if(/\s/.test(a))break}return null}async runSearch(e){var n;(n=this.searchAbort)==null||n.call(this);let t=!1;if(this.searchAbort=()=>{t=!0},e.length<this.options.minChars){this.hide();return}try{const r=await this.options.onDocSearch(e);if(t||this.destroyed)return;this.items=r.slice(0,this.options.maxItems),this.selectedIndex=0,this.items.length>0?this.show():this.hide()}catch{t||this.hide()}}show(){if(this.trigger){if(this.activeHead=this.view.state.selection.main.head,!this.dropdown){this.dropdown=document.createElement("div"),this.dropdown.className="md-editor-doclink-dropdown",this.dropdown.setAttribute("role","listbox");const e=this.view.dom.closest(".md-editor-root"),t=(e==null?void 0:e.getAttribute("data-theme"))??"light";this.dropdown.setAttribute("data-theme",t),document.body.appendChild(this.dropdown),this.dropdown.addEventListener("mousedown",n=>{const s=n.target.closest(".md-editor-doclink-item");if(!s)return;n.preventDefault(),n.stopPropagation();const o=Number(s.dataset.index);Number.isNaN(o)||this.selectItem(o)}),this.dropdown.addEventListener("mouseover",n=>{const s=n.target.closest(".md-editor-doclink-item");if(!s)return;const o=Number(s.dataset.index);!Number.isNaN(o)&&o!==this.selectedIndex&&(this.selectedIndex=o,this.updateActiveClass())})}this.renderDropdown(),this.positionDropdown()}}renderDropdown(){this.dropdown&&(this.dropdown.innerHTML="",this.items.forEach((e,t)=>{const n=document.createElement("div");if(n.className="md-editor-doclink-item"+(t===this.selectedIndex?" is-active":""),n.setAttribute("role","option"),n.setAttribute("aria-selected",t===this.selectedIndex?"true":"false"),n.dataset.index=String(t),e.thumbnail){const a=document.createElement("img");a.className="md-editor-doclink-thumb-img",a.src=e.thumbnail,a.alt="",n.appendChild(a)}const r=document.createElement("div");r.className="md-editor-doclink-text";const s=document.createElement("div");if(s.className="md-editor-doclink-label",s.textContent=e.title,r.appendChild(s),e.description){const a=document.createElement("div");a.className="md-editor-doclink-desc",a.textContent=e.description,r.appendChild(a)}const o=document.createElement("div");o.className="md-editor-doclink-url";try{o.textContent=new URL(e.url).hostname}catch{o.textContent=e.url}r.appendChild(o),n.appendChild(r),this.dropdown.appendChild(n)}))}updateActiveClass(){if(!this.dropdown)return;const e=this.dropdown.children;for(let t=0;t<e.length;t++){const n=e[t],r=t===this.selectedIndex;n.classList.toggle("is-active",r),n.setAttribute("aria-selected",r?"true":"false")}}positionDropdown(){if(!this.dropdown||!this.trigger)return;let e=null;try{e=this.view.coordsAtPos(this.trigger.from)}catch{e=null}if(!e){const o=this.view.dom.getBoundingClientRect();e={top:o.top,bottom:o.top+20,left:o.left}}const t=this.dropdown.getBoundingClientRect(),n=window.innerHeight;let r=e.bottom+4,s=e.left;r+t.height>n-8&&(r=e.top-t.height-4),s=Math.max(8,Math.min(s,window.innerWidth-t.width-8)),this.dropdown.style.top=`${r}px`,this.dropdown.style.left=`${s}px`}async selectItem(e){const t=this.items[e],n=this.trigger;if(!t||!n)return;const r=n.from,s=this.activeHead;this.view.focus(),this.view.dispatch({changes:{from:r,to:s,insert:""}});const o=await this.buildInsertion(t);this.view.dispatch({changes:{from:r,insert:o},selection:{anchor:r+o.length}}),this.hide()}async buildInsertion(e){const t=this.options.insertStyle;if(t==="link")return`[${e.title}](${e.url})`;let n={title:e.title,thumbnail:e.thumbnail,description:e.description};if(!n.thumbnail||!n.description)try{const a=await this.options.onFetchDocMeta(e.url);n={title:a.title??n.title,thumbnail:a.thumbnail??n.thumbnail,description:a.description??n.description}}catch{}const s=!!(n.thumbnail||n.description);if(t==="auto"&&!s)return`[${e.title}](${e.url})`;if(t==="card"&&!s)return`[${e.title}](${e.url})`;const o=[`:::doc-link ${e.url}`];return o.push(`# ${n.title??e.title}`),n.thumbnail&&o.push(`![thumbnail](${n.thumbnail})`),n.description&&o.push(n.description),o.push(":::"),`
4
- `+o.join(`
1
+ "use strict";var on=Object.create;var qe=Object.defineProperty;var an=Object.getOwnPropertyDescriptor;var cn=Object.getOwnPropertyNames;var ln=Object.getPrototypeOf,dn=Object.prototype.hasOwnProperty;var un=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of cn(e))!dn.call(n,r)&&r!==t&&qe(n,r,{get:()=>e[r],enumerable:!(i=an(e,r))||i.enumerable});return n};var Ge=(n,e,t)=>(t=n!=null?on(ln(n)):{},un(e||!n||!n.__esModule?qe(t,"default",{value:n,enumerable:!0}):t,n));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const fe=require("@codemirror/state"),j=require("@codemirror/view"),xe=require("@codemirror/commands"),hn=require("@codemirror/lang-markdown"),pn=require("@codemirror/language-data"),ve=require("@codemirror/language"),w=require("@lezer/highlight"),gn=require("markdown-it"),We=require("katex"),mn=ve.HighlightStyle.define([{tag:w.tags.heading,color:"#8250df",fontWeight:"600"},{tag:w.tags.list,color:"#1f2328"},{tag:w.tags.quote,color:"#6e7781"},{tag:w.tags.monospace,color:"#0a6640"},{tag:w.tags.labelName,color:"#cf222e"},{tag:w.tags.link,color:"#0969da"},{tag:w.tags.url,color:"#0969da"},{tag:w.tags.strong,color:"#1f2328",fontWeight:"700"},{tag:w.tags.emphasis,color:"#1f2328",fontStyle:"italic"},{tag:w.tags.strikethrough,color:"#6e7781",textDecoration:"line-through"},{tag:w.tags.contentSeparator,color:"#6e7781"},{tag:w.tags.processingInstruction,color:"#6e7781"},{tag:w.tags.tagName,color:"#cf222e"},{tag:w.tags.attributeName,color:"#0550ae"},{tag:w.tags.attributeValue,color:"#0a6640"},{tag:w.tags.comment,color:"#6e7781",fontStyle:"italic"},{tag:w.tags.escape,color:"#6e7781"},{tag:w.tags.string,color:"#0a6640"},{tag:w.tags.keyword,color:"#cf222e"},{tag:w.tags.definition(w.tags.variableName),color:"#6639ba"},{tag:w.tags.typeName,color:"#953800"},{tag:w.tags.number,color:"#0550ae"},{tag:w.tags.bool,color:"#0550ae"},{tag:w.tags.function(w.tags.variableName),color:"#8250df"},{tag:w.tags.punctuation,color:"#57606a"},{tag:w.tags.operator,color:"#57606a"}]),fn=ve.HighlightStyle.define([{tag:w.tags.heading,color:"#c4b5fd",fontWeight:"600"},{tag:w.tags.list,color:"#edf2f7"},{tag:w.tags.quote,color:"#768390"},{tag:w.tags.monospace,color:"#86efac"},{tag:w.tags.labelName,color:"#ff9b9b"},{tag:w.tags.link,color:"#8eb5ff"},{tag:w.tags.url,color:"#8eb5ff"},{tag:w.tags.strong,color:"#edf2f7",fontWeight:"700"},{tag:w.tags.emphasis,color:"#edf2f7",fontStyle:"italic"},{tag:w.tags.strikethrough,color:"#768390",textDecoration:"line-through"},{tag:w.tags.contentSeparator,color:"#768390"},{tag:w.tags.processingInstruction,color:"#768390"},{tag:w.tags.tagName,color:"#ff9b9b"},{tag:w.tags.attributeName,color:"#8eb5ff"},{tag:w.tags.attributeValue,color:"#86efac"},{tag:w.tags.comment,color:"#768390",fontStyle:"italic"},{tag:w.tags.escape,color:"#768390"},{tag:w.tags.string,color:"#86efac"},{tag:w.tags.keyword,color:"#ff9b9b"},{tag:w.tags.definition(w.tags.variableName),color:"#c4b5fd"},{tag:w.tags.typeName,color:"#e7b96e"},{tag:w.tags.number,color:"#8eb5ff"},{tag:w.tags.bool,color:"#8eb5ff"},{tag:w.tags.function(w.tags.variableName),color:"#c4b5fd"},{tag:w.tags.punctuation,color:"#98a4b4"},{tag:w.tags.operator,color:"#98a4b4"}]),Ye=ve.syntaxHighlighting(mn),Ze=ve.syntaxHighlighting(fn);class bn{constructor(e,t={}){this.dropdown=null,this.items=[],this.selectedIndex=0,this.trigger=null,this.activeHead=0,this.searchAbort=null,this.destroyed=!1,this.view=e,this.options={onMentionSearch:t.onMentionSearch??(()=>[]),onMentionSelect:t.onMentionSelect??(i=>`[@${i.label}](mention:${i.id})`),minChars:t.minChars??0,maxItems:t.maxItems??8}}update(){if(this.destroyed)return;const e=this.findTrigger();if(!e){this.hide();return}this.trigger=e,this.runSearch(e.query)}isOpen(){return this.dropdown!==null&&this.items.length>0}selectCurrent(){this.isOpen()&&this.selectItem(this.selectedIndex)}handleKey(e){if(!this.dropdown||this.items.length===0)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),this.selectedIndex=(this.selectedIndex+1)%this.items.length,this.updateActiveClass(),!0;case"ArrowUp":return e.preventDefault(),this.selectedIndex=(this.selectedIndex-1+this.items.length)%this.items.length,this.updateActiveClass(),!0;case"Enter":case"Tab":return e.preventDefault(),this.selectItem(this.selectedIndex),!0;case"Escape":return e.preventDefault(),this.hide(),!0}return!1}findTrigger(){const{head:e}=this.view.state.selection.main,t=this.view.state.doc.lineAt(e),i=t.text,r=e-t.from;for(let a=r-1;a>=0;a--){const s=i[a];if(s==="@"){if(a===0||/\s|[^\w@]/.test(i[a-1])){const o=i.slice(a+1,r);return/\s/.test(o)?null:{from:t.from+a,query:o}}return null}if(/\s/.test(s))break}return null}async runSearch(e){var i;(i=this.searchAbort)==null||i.call(this);let t=!1;if(this.searchAbort=()=>{t=!0},e.length<this.options.minChars){this.hide();return}try{const r=await this.options.onMentionSearch(e);if(t||this.destroyed)return;this.items=r.slice(0,this.options.maxItems),this.selectedIndex=0,this.items.length>0?this.show():this.hide()}catch{t||this.hide()}}show(){if(this.trigger){if(this.activeHead=this.view.state.selection.main.head,!this.dropdown){this.dropdown=document.createElement("div"),this.dropdown.className="md-editor-mention-dropdown",this.dropdown.setAttribute("role","listbox");const e=this.view.dom.closest(".md-editor-root"),t=(e==null?void 0:e.getAttribute("data-theme"))??"light";this.dropdown.setAttribute("data-theme",t),document.body.appendChild(this.dropdown),this.dropdown.addEventListener("mousedown",i=>{const a=i.target.closest(".md-editor-mention-item");if(!a)return;i.preventDefault(),i.stopPropagation();const s=Number(a.dataset.index);Number.isNaN(s)||this.selectItem(s)}),this.dropdown.addEventListener("mouseover",i=>{const a=i.target.closest(".md-editor-mention-item");if(!a)return;const s=Number(a.dataset.index);!Number.isNaN(s)&&s!==this.selectedIndex&&(this.selectedIndex=s,this.updateActiveClass())})}this.renderDropdown(),this.positionDropdown()}}renderDropdown(){this.dropdown&&(this.dropdown.innerHTML="",this.items.forEach((e,t)=>{const i=document.createElement("div");if(i.className="md-editor-mention-item"+(t===this.selectedIndex?" is-active":""),i.setAttribute("role","option"),i.setAttribute("aria-selected",t===this.selectedIndex?"true":"false"),i.dataset.index=String(t),e.avatar){const s=document.createElement("img");s.className="md-editor-mention-avatar",s.src=e.avatar,s.alt="",i.appendChild(s)}const r=document.createElement("div");r.className="md-editor-mention-text";const a=document.createElement("div");if(a.className="md-editor-mention-label",a.textContent=e.label,r.appendChild(a),e.description){const s=document.createElement("div");s.className="md-editor-mention-desc",s.textContent=e.description,r.appendChild(s)}i.appendChild(r),this.dropdown.appendChild(i)}))}updateActiveClass(){if(!this.dropdown)return;const e=this.dropdown.children;for(let t=0;t<e.length;t++){const i=e[t],r=t===this.selectedIndex;i.classList.toggle("is-active",r),i.setAttribute("aria-selected",r?"true":"false")}}positionDropdown(){if(!this.dropdown||!this.trigger)return;let e=null;try{e=this.view.coordsAtPos(this.trigger.from)}catch{e=null}if(!e){const s=this.view.dom.getBoundingClientRect();e={top:s.top,bottom:s.top+20,left:s.left}}const t=this.dropdown.getBoundingClientRect(),i=window.innerHeight;let r=e.bottom+4,a=e.left;r+t.height>i-8&&(r=e.top-t.height-4),a=Math.max(8,Math.min(a,window.innerWidth-t.width-8)),this.dropdown.style.top=`${r}px`,this.dropdown.style.left=`${a}px`}selectItem(e){const t=this.items[e],i=this.trigger;if(!t||!i)return;const r=this.options.onMentionSelect(t);this.options.onMentionSelect!==void 0&&!r.includes("](mention:")&&r.startsWith("@")&&console.warn("[md-editor] onMentionSelect returned plain '@"+t.label+"'. For badge rendering in the preview, return '[@"+t.label+"](mention:"+t.id+")' instead, or omit onMentionSelect to use the default wrapper.");const a=i.from,s=this.activeHead;this.view.focus(),this.view.dispatch({changes:{from:a,to:s,insert:r},selection:{anchor:a+r.length}}),this.hide()}hide(){var e;this.dropdown&&(this.dropdown.remove(),this.dropdown=null),this.items=[],this.trigger=null,(e=this.searchAbort)==null||e.call(this),this.searchAbort=null}destroy(){this.destroyed=!0,this.hide()}}function _n(n){const e=n.renderer.rules.link_open??((r,a,s,o,c)=>c.renderToken(r,a,s)),t=n.renderer.rules.link_close??((r,a,s,o,c)=>c.renderToken(r,a,s));let i=!1;n.renderer.rules.link_open=(r,a,s,o,c)=>{const l=r[a],d=(l==null?void 0:l.attrGet("href"))??"";if(typeof d=="string"&&d.startsWith("mention:")){i=!0;const u=d.slice(8);return`<span class="md-editor-mention" data-mention-id="${En(u)}">`}return i=!1,e(r,a,s,o,c)},n.renderer.rules.link_close=(r,a,s,o,c)=>i?(i=!1,"</span>"):t(r,a,s,o,c)}function En(n){return n.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}async function yn(n){const e=await fetch(n,{mode:"cors"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=await e.text();return wn(t,n)}function wn(n,e){var c,l,d,u,p,m,b;const t={},i=new DOMParser().parseFromString(n,"text/html"),a=((c=i.querySelector('meta[property="og:title"]'))==null?void 0:c.getAttribute("content"))??((l=i.querySelector("title"))==null?void 0:l.textContent)??void 0;a&&(t.title=a.trim());const s=((d=i.querySelector('meta[property="og:description"]'))==null?void 0:d.getAttribute("content"))??((u=i.querySelector('meta[name="description"]'))==null?void 0:u.getAttribute("content"));s&&(t.description=s.trim());const o=((p=i.querySelector('meta[property="og:image"]'))==null?void 0:p.getAttribute("content"))??((m=i.querySelector('meta[property="og:image:secure_url"]'))==null?void 0:m.getAttribute("content"))??((b=i.querySelector('meta[name="twitter:image"]'))==null?void 0:b.getAttribute("content"));return o&&(t.thumbnail=o.startsWith("http")?o:new URL(o,e).href),t}class vn{constructor(e,t={}){this.dropdown=null,this.items=[],this.selectedIndex=0,this.trigger=null,this.activeHead=0,this.searchAbort=null,this.destroyed=!1,this.view=e,this.options={onDocSearch:t.onDocSearch??(()=>[]),insertStyle:t.insertStyle??"auto",triggerChar:t.triggerChar??"/",minChars:t.minChars??0,maxItems:t.maxItems??8,onFetchDocMeta:t.onFetchDocMeta??yn}}update(){if(this.destroyed)return;const e=this.findTrigger();if(!e){this.hide();return}this.trigger=e,this.runSearch(e.query)}isOpen(){return this.dropdown!==null&&this.items.length>0}selectCurrent(){this.isOpen()&&this.selectItem(this.selectedIndex)}handleKey(e){if(!this.dropdown||this.items.length===0)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),this.selectedIndex=(this.selectedIndex+1)%this.items.length,this.updateActiveClass(),!0;case"ArrowUp":return e.preventDefault(),this.selectedIndex=(this.selectedIndex-1+this.items.length)%this.items.length,this.updateActiveClass(),!0;case"Enter":case"Tab":return e.preventDefault(),this.selectItem(this.selectedIndex),!0;case"Escape":return e.preventDefault(),this.hide(),!0}return!1}findTrigger(){const{head:e}=this.view.state.selection.main,t=this.view.state.doc.lineAt(e),i=t.text,r=e-t.from,a=this.options.triggerChar;for(let s=r-1;s>=0;s--){const o=i[s];if(o===a){if(s===0||/\s/.test(i[s-1])){const c=i.slice(s+1,r);return/\s/.test(c)?null:{from:t.from+s,query:c}}return null}if(/\s/.test(o))break}return null}async runSearch(e){var i;(i=this.searchAbort)==null||i.call(this);let t=!1;if(this.searchAbort=()=>{t=!0},e.length<this.options.minChars){this.hide();return}try{const r=await this.options.onDocSearch(e);if(t||this.destroyed)return;this.items=r.slice(0,this.options.maxItems),this.selectedIndex=0,this.items.length>0?this.show():this.hide()}catch{t||this.hide()}}show(){if(this.trigger){if(this.activeHead=this.view.state.selection.main.head,!this.dropdown){this.dropdown=document.createElement("div"),this.dropdown.className="md-editor-doclink-dropdown",this.dropdown.setAttribute("role","listbox");const e=this.view.dom.closest(".md-editor-root"),t=(e==null?void 0:e.getAttribute("data-theme"))??"light";this.dropdown.setAttribute("data-theme",t),document.body.appendChild(this.dropdown),this.dropdown.addEventListener("mousedown",i=>{const a=i.target.closest(".md-editor-doclink-item");if(!a)return;i.preventDefault(),i.stopPropagation();const s=Number(a.dataset.index);Number.isNaN(s)||this.selectItem(s)}),this.dropdown.addEventListener("mouseover",i=>{const a=i.target.closest(".md-editor-doclink-item");if(!a)return;const s=Number(a.dataset.index);!Number.isNaN(s)&&s!==this.selectedIndex&&(this.selectedIndex=s,this.updateActiveClass())})}this.renderDropdown(),this.positionDropdown()}}renderDropdown(){this.dropdown&&(this.dropdown.innerHTML="",this.items.forEach((e,t)=>{const i=document.createElement("div");if(i.className="md-editor-doclink-item"+(t===this.selectedIndex?" is-active":""),i.setAttribute("role","option"),i.setAttribute("aria-selected",t===this.selectedIndex?"true":"false"),i.dataset.index=String(t),e.thumbnail){const o=document.createElement("img");o.className="md-editor-doclink-thumb-img",o.src=e.thumbnail,o.alt="",i.appendChild(o)}const r=document.createElement("div");r.className="md-editor-doclink-text";const a=document.createElement("div");if(a.className="md-editor-doclink-label",a.textContent=e.title,r.appendChild(a),e.description){const o=document.createElement("div");o.className="md-editor-doclink-desc",o.textContent=e.description,r.appendChild(o)}const s=document.createElement("div");s.className="md-editor-doclink-url";try{s.textContent=new URL(e.url).hostname}catch{s.textContent=e.url}r.appendChild(s),i.appendChild(r),this.dropdown.appendChild(i)}))}updateActiveClass(){if(!this.dropdown)return;const e=this.dropdown.children;for(let t=0;t<e.length;t++){const i=e[t],r=t===this.selectedIndex;i.classList.toggle("is-active",r),i.setAttribute("aria-selected",r?"true":"false")}}positionDropdown(){if(!this.dropdown||!this.trigger)return;let e=null;try{e=this.view.coordsAtPos(this.trigger.from)}catch{e=null}if(!e){const s=this.view.dom.getBoundingClientRect();e={top:s.top,bottom:s.top+20,left:s.left}}const t=this.dropdown.getBoundingClientRect(),i=window.innerHeight;let r=e.bottom+4,a=e.left;r+t.height>i-8&&(r=e.top-t.height-4),a=Math.max(8,Math.min(a,window.innerWidth-t.width-8)),this.dropdown.style.top=`${r}px`,this.dropdown.style.left=`${a}px`}async selectItem(e){const t=this.items[e],i=this.trigger;if(!t||!i)return;const r=i.from,a=this.activeHead;this.view.focus(),this.view.dispatch({changes:{from:r,to:a,insert:""}});const s=await this.buildInsertion(t);this.view.dispatch({changes:{from:r,insert:s},selection:{anchor:r+s.length}}),this.hide()}async buildInsertion(e){const t=this.options.insertStyle;if(t==="link")return`[${e.title}](${e.url})`;let i={title:e.title,thumbnail:e.thumbnail,description:e.description};if(!i.thumbnail||!i.description)try{const o=await this.options.onFetchDocMeta(e.url);i={title:o.title??i.title,thumbnail:o.thumbnail??i.thumbnail,description:o.description??i.description}}catch{}const a=!!(i.thumbnail||i.description);if(t==="auto"&&!a)return`[${e.title}](${e.url})`;if(t==="card"&&!a)return`[${e.title}](${e.url})`;const s=[`:::doc-link ${e.url}`];return s.push(`# ${i.title??e.title}`),i.thumbnail&&s.push(`![thumbnail](${i.thumbnail})`),i.description&&s.push(i.description),s.push(":::"),`
2
+ `+s.join(`
5
3
  `)+`
6
- `}hide(){var e;this.dropdown&&(this.dropdown.remove(),this.dropdown=null),this.items=[],this.trigger=null,(e=this.searchAbort)==null||e.call(this),this.searchAbort=null}destroy(){this.destroyed=!0,this.hide()}}const hr=/^:::doc-link\s+(\S+)(?:\s+(.+))?$/,pr=/^:::\s*$/;function fr(i){i.block.ruler.before("fence","doclink_block",(e,t,n,r)=>{const o=e.src.slice(e.bMarks[t],e.eMarks[t]).match(hr);if(!o)return!1;const a=o[1]??"";let l=t+1,c=!1;for(;l<n;){const y=e.src.slice(e.bMarks[l],e.eMarks[l]);if(pr.test(y.trim())){c=!0;break}l++}if(!c)return!1;if(r)return!0;const d=e.src.slice(e.bMarks[t+1],e.bMarks[l]).split(`
7
- `).map(y=>y.trim()).filter(y=>y.length>0);let u="",h="";const p=[];for(const y of d)if(y.startsWith("# "))u=y.slice(2).trim();else if(y.startsWith("![thumbnail](")){const S=y.match(/^!\[thumbnail\]\((.+)\)$/);S&&(h=S[1]??"")}else p.push(y);const m=e.push("doclink_block","div",0);return m.content=JSON.stringify({url:a,title:u,thumbnail:h,description:p.join(" ")}),e.line=l+1,!0}),i.renderer.rules.doclink_block=(e,t)=>{const n=e[t];if(!n)return"";let r;try{r=JSON.parse(n.content)}catch{return""}const{url:s,title:o,thumbnail:a,description:l}=r;let c=s;try{c=new URL(s).hostname}catch{}const d=a?`<div class="md-editor-doclink-card-thumb"><img src="${rn(a)}" alt="" loading="lazy" /></div>`:"";return`<a class="md-editor-doclink-card" href="${rn(s)}" target="_blank" rel="noopener noreferrer">`+d+`<div class="md-editor-doclink-card-body"><div class="md-editor-doclink-card-title">${mt(o)}</div>`+(l?`<div class="md-editor-doclink-card-desc">${mt(l)}</div>`:"")+`<div class="md-editor-doclink-card-url">${mt(c)}</div></div></a>`}}function mt(i){return i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function rn(i){return i.replace(/"/g,"&quot;").replace(/</g,"&lt;")}class Sn{constructor(e,t){var s,o;this.lineNumbersCompartment=new se.Compartment,this.customKeymapCompartment=new se.Compartment,this.highlightCompartment=new se.Compartment,this.mention=null,this.docLink=null,this.blurTimeout=null,this.destroyed=!1,this.onImageFile=t.onImageFile,this.theme=t.theme??"light";const n=this.theme==="dark"?nn:tn,r=[ct.history(),Q.keymap.of([{key:"Enter",run:()=>{var a,l;return(a=this.mention)!=null&&a.isOpen()?(this.mention.selectCurrent(),!0):(l=this.docLink)!=null&&l.isOpen()?(this.docLink.selectCurrent(),!0):!1}},{key:"ArrowDown",run:()=>{var a,l,c,d;if((a=this.mention)!=null&&a.isOpen()||(l=this.docLink)!=null&&l.isOpen()){const u=new KeyboardEvent("keydown",{key:"ArrowDown"});return(c=this.mention)==null||c.handleKey(u),(d=this.docLink)==null||d.handleKey(u),!0}return!1}},{key:"ArrowUp",run:()=>{var a,l,c,d;if((a=this.mention)!=null&&a.isOpen()||(l=this.docLink)!=null&&l.isOpen()){const u=new KeyboardEvent("keydown",{key:"ArrowUp"});return(c=this.mention)==null||c.handleKey(u),(d=this.docLink)==null||d.handleKey(u),!0}return!1}},{key:"Escape",run:()=>{var a,l;return(a=this.mention)!=null&&a.isOpen()?(this.mention.hide(),!0):(l=this.docLink)!=null&&l.isOpen()?(this.docLink.hide(),!0):!1}},...ct.defaultKeymap,...ct.historyKeymap]),this.customKeymapCompartment.of([]),Ti.markdown({codeLanguages:Ai.languages}),this.highlightCompartment.of(n),Q.EditorView.lineWrapping,this.lineNumbersCompartment.of(t.lineNumbers?Q.lineNumbers():[]),Q.EditorView.updateListener.of(a=>{var l,c,d;a.docChanged&&((l=t.onChange)==null||l.call(t,a.state.doc.toString())),(a.docChanged||a.selectionSet)&&((c=this.mention)==null||c.update(),(d=this.docLink)==null||d.update())}),Q.EditorView.domEventHandlers({paste:a=>this.handlePaste(a),drop:a=>this.handleDrop(a),blur:()=>{this.blurTimeout=window.setTimeout(()=>{var a,l;this.blurTimeout=null,!this.destroyed&&(this.view.dom.contains(document.activeElement)||((a=this.mention)==null||a.hide(),(l=this.docLink)==null||l.hide()))},150)},keydown:a=>{var l,c;return!!((l=this.mention)!=null&&l.handleKey(a)||(c=this.docLink)!=null&&c.handleKey(a))}})];this.view=new Q.EditorView({state:se.EditorState.create({doc:t.value??"",extensions:r}),parent:e}),(s=t.mention)!=null&&s.onMentionSearch&&(this.mention=new or(this.view,t.mention)),(o=t.docLink)!=null&&o.onDocSearch&&(this.docLink=new ur(this.view,t.docLink))}handlePaste(e){var n,r;const t=(n=e.clipboardData)==null?void 0:n.items;if(!t)return!1;for(const s of Array.from(t))if(s.type.startsWith("image/")){const o=s.getAsFile();if(o)return(r=this.onImageFile)==null||r.call(this,o),e.preventDefault(),!0}return!1}handleDrop(e){var n,r;const t=(n=e.dataTransfer)==null?void 0:n.files;if(!t||t.length===0)return!1;for(const s of Array.from(t))if(s.type.startsWith("image/"))return(r=this.onImageFile)==null||r.call(this,s),e.preventDefault(),!0;return!1}setKeymap(e){this.view.dispatch({effects:this.customKeymapCompartment.reconfigure(Q.keymap.of(e))})}getValue(){return this.view.state.doc.toString()}setValue(e){this.view.dispatch({changes:{from:0,to:this.view.state.doc.length,insert:e}})}setLineNumbers(e){this.view.dispatch({effects:this.lineNumbersCompartment.reconfigure(e?Q.lineNumbers():[])})}setTheme(e){if(this.theme===e)return;this.theme=e;const t=e==="dark"?nn:tn;this.view.dispatch({effects:this.highlightCompartment.reconfigure(t)})}insertAtCursor(e){const{from:t,to:n}=this.view.state.selection.main;this.view.dispatch({changes:{from:t,to:n,insert:e},selection:{anchor:t+e.length}}),this.view.focus()}wrapSelection(e,t,n){const{from:r,to:s}=this.view.state.selection.main,a=this.view.state.doc.sliceString(r,s)||n,l=`${e}${a}${t}`;this.view.dispatch({changes:{from:r,to:s,insert:l},selection:{anchor:r+e.length,head:r+e.length+a.length}}),this.view.focus()}getSelection(){const{from:e,to:t}=this.view.state.selection.main;return this.view.state.doc.sliceString(e,t)}wrapLines(e,t){const{from:n,to:r}=this.view.state.selection.main;let s=this.view.state.doc.sliceString(n,r);if(s){const a=s.split(`
8
- `).map(l=>`${e}${l}`).join(`
9
- `);this.view.dispatch({changes:{from:n,to:r,insert:a},selection:{anchor:n,head:n+a.length}})}else{const o=this.view.state.doc.lineAt(n);s=o.text;const a=o.from,l=o.to,d=(s?s.split(`
4
+ `}hide(){var e;this.dropdown&&(this.dropdown.remove(),this.dropdown=null),this.items=[],this.trigger=null,(e=this.searchAbort)==null||e.call(this),this.searchAbort=null}destroy(){this.destroyed=!0,this.hide()}}const kn=/^:::doc-link\s+(\S+)(?:\s+(.+))?$/,Nn=/^:::\s*$/;function Sn(n){n.block.ruler.before("fence","doclink_block",(e,t,i,r)=>{const s=e.src.slice(e.bMarks[t],e.eMarks[t]).match(kn);if(!s)return!1;const o=s[1]??"";let c=t+1,l=!1;for(;c<i;){const E=e.src.slice(e.bMarks[c],e.eMarks[c]);if(Nn.test(E.trim())){l=!0;break}c++}if(!l)return!1;if(r)return!0;const d=e.src.slice(e.bMarks[t+1],e.bMarks[c]).split(`
5
+ `).map(E=>E.trim()).filter(E=>E.length>0);let u="",p="";const m=[];for(const E of d)if(E.startsWith("# "))u=E.slice(2).trim();else if(E.startsWith("![thumbnail](")){const S=E.match(/^!\[thumbnail\]\((.+)\)$/);S&&(p=S[1]??"")}else m.push(E);const b=e.push("doclink_block","div",0);return b.content=JSON.stringify({url:o,title:u,thumbnail:p,description:m.join(" ")}),e.line=c+1,!0}),n.renderer.rules.doclink_block=(e,t)=>{const i=e[t];if(!i)return"";let r;try{r=JSON.parse(i.content)}catch{return""}const{url:a,title:s,thumbnail:o,description:c}=r;let l=a;try{l=new URL(a).hostname}catch{}const d=o?`<div class="md-editor-doclink-card-thumb"><img src="${Ve(o)}" alt="" loading="lazy" /></div>`:"";return`<a class="md-editor-doclink-card" href="${Ve(a)}" target="_blank" rel="noopener noreferrer">`+d+`<div class="md-editor-doclink-card-body"><div class="md-editor-doclink-card-title">${Ce(s)}</div>`+(c?`<div class="md-editor-doclink-card-desc">${Ce(c)}</div>`:"")+`<div class="md-editor-doclink-card-url">${Ce(l)}</div></div></a>`}}function Ce(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function Ve(n){return n.replace(/"/g,"&quot;").replace(/</g,"&lt;")}class lt{constructor(e,t){var a,s;this.lineNumbersCompartment=new fe.Compartment,this.customKeymapCompartment=new fe.Compartment,this.highlightCompartment=new fe.Compartment,this.mention=null,this.docLink=null,this.blurTimeout=null,this.destroyed=!1,this.onImageFile=t.onImageFile,this.theme=t.theme??"light";const i=this.theme==="dark"?Ze:Ye,r=[xe.history(),j.keymap.of([{key:"Enter",run:()=>{var o,c;return(o=this.mention)!=null&&o.isOpen()?(this.mention.selectCurrent(),!0):(c=this.docLink)!=null&&c.isOpen()?(this.docLink.selectCurrent(),!0):!1}},{key:"ArrowDown",run:()=>{var o,c,l,d;if((o=this.mention)!=null&&o.isOpen()||(c=this.docLink)!=null&&c.isOpen()){const u=new KeyboardEvent("keydown",{key:"ArrowDown"});return(l=this.mention)==null||l.handleKey(u),(d=this.docLink)==null||d.handleKey(u),!0}return!1}},{key:"ArrowUp",run:()=>{var o,c,l,d;if((o=this.mention)!=null&&o.isOpen()||(c=this.docLink)!=null&&c.isOpen()){const u=new KeyboardEvent("keydown",{key:"ArrowUp"});return(l=this.mention)==null||l.handleKey(u),(d=this.docLink)==null||d.handleKey(u),!0}return!1}},{key:"Escape",run:()=>{var o,c;return(o=this.mention)!=null&&o.isOpen()?(this.mention.hide(),!0):(c=this.docLink)!=null&&c.isOpen()?(this.docLink.hide(),!0):!1}},...xe.defaultKeymap,...xe.historyKeymap]),this.customKeymapCompartment.of([]),hn.markdown({codeLanguages:pn.languages}),this.highlightCompartment.of(i),j.EditorView.lineWrapping,this.lineNumbersCompartment.of(t.lineNumbers?j.lineNumbers():[]),j.EditorView.updateListener.of(o=>{var c,l,d;o.docChanged&&((c=t.onChange)==null||c.call(t,o.state.doc.toString())),(o.docChanged||o.selectionSet)&&((l=this.mention)==null||l.update(),(d=this.docLink)==null||d.update())}),j.EditorView.domEventHandlers({paste:o=>this.handlePaste(o),drop:o=>this.handleDrop(o),blur:()=>{this.blurTimeout=window.setTimeout(()=>{var o,c;this.blurTimeout=null,!this.destroyed&&(this.view.dom.contains(document.activeElement)||((o=this.mention)==null||o.hide(),(c=this.docLink)==null||c.hide()))},150)},keydown:o=>{var c,l;return!!((c=this.mention)!=null&&c.handleKey(o)||(l=this.docLink)!=null&&l.handleKey(o))}})];this.view=new j.EditorView({state:fe.EditorState.create({doc:t.value??"",extensions:r}),parent:e}),(a=t.mention)!=null&&a.onMentionSearch&&(this.mention=new bn(this.view,t.mention)),(s=t.docLink)!=null&&s.onDocSearch&&(this.docLink=new vn(this.view,t.docLink))}handlePaste(e){var i,r;const t=(i=e.clipboardData)==null?void 0:i.items;if(!t)return!1;for(const a of Array.from(t))if(a.type.startsWith("image/")){const s=a.getAsFile();if(s)return(r=this.onImageFile)==null||r.call(this,s),e.preventDefault(),!0}return!1}handleDrop(e){var i,r;const t=(i=e.dataTransfer)==null?void 0:i.files;if(!t||t.length===0)return!1;for(const a of Array.from(t))if(a.type.startsWith("image/"))return(r=this.onImageFile)==null||r.call(this,a),e.preventDefault(),!0;return!1}setKeymap(e){this.view.dispatch({effects:this.customKeymapCompartment.reconfigure(j.keymap.of(e))})}getValue(){return this.view.state.doc.toString()}setValue(e){this.view.dispatch({changes:{from:0,to:this.view.state.doc.length,insert:e}})}setLineNumbers(e){this.view.dispatch({effects:this.lineNumbersCompartment.reconfigure(e?j.lineNumbers():[])})}setTheme(e){if(this.theme===e)return;this.theme=e;const t=e==="dark"?Ze:Ye;this.view.dispatch({effects:this.highlightCompartment.reconfigure(t)})}insertAtCursor(e){const{from:t,to:i}=this.view.state.selection.main;this.view.dispatch({changes:{from:t,to:i,insert:e},selection:{anchor:t+e.length}}),this.view.focus()}wrapSelection(e,t,i){const{from:r,to:a}=this.view.state.selection.main,o=this.view.state.doc.sliceString(r,a)||i,c=`${e}${o}${t}`;this.view.dispatch({changes:{from:r,to:a,insert:c},selection:{anchor:r+e.length,head:r+e.length+o.length}}),this.view.focus()}getSelection(){const{from:e,to:t}=this.view.state.selection.main;return this.view.state.doc.sliceString(e,t)}wrapLines(e,t){const{from:i,to:r}=this.view.state.selection.main;let a=this.view.state.doc.sliceString(i,r);if(a){const o=a.split(`
6
+ `).map(c=>`${e}${c}`).join(`
7
+ `);this.view.dispatch({changes:{from:i,to:r,insert:o},selection:{anchor:i,head:i+o.length}})}else{const s=this.view.state.doc.lineAt(i);a=s.text;const o=s.from,c=s.to,d=(a?a.split(`
10
8
  `):[t]).map(u=>`${e}${u}`).join(`
11
- `);this.view.dispatch({changes:{from:a,to:l,insert:d},selection:{anchor:a+e.length}})}this.view.focus()}focus(){this.view.focus()}insertMention(){this.mention||console.warn("[md-editor] Mention dropdown is disabled. Pass `mention: { onMentionSearch }` in the editor options to enable it."),this.insertAtCursor("@")}insertDocLink(){this.docLink||console.warn("[md-editor] Document link dropdown is disabled. Pass `docLink: { onDocSearch }` in the editor options to enable it."),this.insertAtCursor("/")}toggleTaskList(){const{from:e,to:t}=this.view.state.selection.main,n=this.view.state.doc.lineAt(e),r=this.view.state.doc.lineAt(t),s=[];for(let h=n.number;h<=r.number;h++)s.push(this.view.state.doc.line(h).text);const o=/^- \[\s*(?:[xX])?\s*\](\s|$)/,a=/^- \[\s*\](\s|$)/,l=s.every(h=>o.test(h)),c=s.every(h=>a.test(h)),u=s.map(h=>l?c?h.replace(/^- \[\s*\](\s?)/,"- [x]$1"):h.replace(/^- \[\s*[xX]\s*\](\s?)/,"- [ ]$1"):/^-(\s|$)/.test(h)?h.replace(/^-(\s?)/,"- [ ]$1"):`- [ ] ${h}`).join(`
12
- `);this.view.dispatch({changes:{from:n.from,to:r.to,insert:u},selection:{anchor:n.from,head:n.from+u.length}}),this.view.focus()}destroy(){var e,t;this.destroyed=!0,this.blurTimeout!==null&&(window.clearTimeout(this.blurTimeout),this.blurTimeout=null),(e=this.mention)==null||e.destroy(),(t=this.docLink)==null||t.destroy(),this.view.destroy()}}const gr=/^\$([^$\n]+?)\$/;function mr(i){return/^[\d.,]+$/.test(i.trim())}function br(i){i.block.ruler.before("fence","math_block",(e,t,n,r)=>{const s=e.src.slice(e.bMarks[t],e.eMarks[t]);if(!s.startsWith("$$"))return!1;const o=s.match(/^\$\$(.+?)\$\$\s*$/);if(o){if(r)return!0;const u=e.push("math_block","div",0);return u.content=o[1].trim(),u.markup="$$",e.line=t+1,!0}let a=t+1,l=!1;for(;a<e.lineMax;){if(e.src.slice(e.bMarks[a],e.eMarks[a]).trimEnd().endsWith("$$")){l=!0;break}a++}if(!l)return!1;if(r)return!0;const c=e.src.slice(e.bMarks[t]+2,e.eMarks[a]-2).trim(),d=e.push("math_block","div",0);return d.content=c,d.markup="$$",e.line=a+1,!0}),i.renderer.rules.math_block=(e,t)=>{var r;const n=((r=e[t])==null?void 0:r.content)??"";try{return`<div class="md-editor-math-block">${Ht.renderToString(n,{displayMode:!0,throwOnError:!1,strict:!1})}</div>`}catch{return`<div class="md-editor-math-block md-editor-math-error">${sn(n)}</div>`}},i.inline.ruler.after("escape","math_inline",(e,t)=>{if(e.src[e.pos]!=="$"||e.src[e.pos+1]==="$")return!1;const n=e.src.slice(e.pos).match(gr);if(!n)return!1;const r=n[1]??"";if(mr(r))return!1;if(t)return!0;const s=e.push("math_inline","span",0);return s.content=r,s.markup="$",e.pos+=n[0].length,!0}),i.renderer.rules.math_inline=(e,t)=>{var r;const n=((r=e[t])==null?void 0:r.content)??"";try{return Ht.renderToString(n,{displayMode:!1,throwOnError:!1,strict:!1})}catch{return`<span class="md-editor-math-error">$${sn(n)}$</span>`}}}function sn(i){return i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}typeof globalThis.ResizeObserver>"u"&&(globalThis.ResizeObserver=class{observe(){}unobserve(){}disconnect(){}});let on=0;function yr(i){i.block.ruler.before("fence","mindmap_fence",(t,n,r,s)=>{const o=t.bMarks[n]+t.tShift[n],a=t.eMarks[n],c=t.src.slice(o,a).match(/^(`{3,})\s*mindmap\s*$/i);if(!c)return!1;if(s)return!0;const d=c[1].length;let u=n+1,h=1;for(;u<r;){const y=t.bMarks[u]+t.tShift[u],S=t.eMarks[u],P=t.src.slice(y,S).match(/^(`{3,})\s*(.*)$/);if(P&&P[1].length>=d){if(P[2].trim())h++;else if(h--,h===0)break}u++}const p=u<r?u:r-1,m=t.push("mindmap_block","div",0);return m.content=t.getLines(n+1,p,t.blkIndent,!0),m.map=[n,p+1],m.markup=c[1],m.info="mindmap",t.line=p+1,!0}),i.renderer.rules.mindmap_block=(t,n)=>{const r=t[n];if(!r)return"";const s=`md-editor-mindmap-${++on}`,o=encodeURIComponent(r.content);return`<div class="md-editor-mindmap" id="${s}" data-source="${o}"></div>`};const e=i.renderer.rules.fence?i.renderer.rules.fence.bind(i.renderer.rules):(t,n,r,s,o)=>o.renderToken(t,n,r);i.renderer.rules.fence=(t,n,r,s,o)=>{const a=t[n];if(!a)return e(t,n,r,s,o);if(a.info.trim().toLowerCase()==="mindmap"){const c=`md-editor-mindmap-${++on}`,d=encodeURIComponent(a.content);return`<div class="md-editor-mindmap" id="${c}" data-source="${d}"></div>`}return e(t,n,r,s,o)}}const _r=600,Er=320;async function wr(i){const e=i.querySelectorAll(".md-editor-mindmap:not([data-hydrated])");if(e.length===0)return;let t,n;try{t=(await import("markmap-lib")).Transformer;const o=await import("markmap-view");n=o.Markmap??o.default}catch{return}if(!n||!t)return;const r=new t;for(const s of Array.from(e))try{s.setAttribute("data-hydrated","1");const o=decodeURIComponent(s.dataset.source??"")||"- Empty mindmap",{root:a}=r.transform(o);s.innerHTML="";const l=s.clientWidth>0?s.clientWidth:_r,c=s.clientHeight>0?s.clientHeight:Er,d=document.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("width",String(l)),d.setAttribute("height",String(c)),d.style.width="100%",d.style.height="100%",d.style.display="block",s.appendChild(d);const u=n.create(d,{autoFit:!1},a),h=()=>{try{const m=d.querySelector("g");if(m){const y=m.getAttribute("transform")||"";(!y||y.includes("NaN"))&&m.setAttribute("transform",`translate(40, ${c/2}) scale(1)`)}}catch{}};h(),(typeof requestAnimationFrame=="function"?requestAnimationFrame:m=>setTimeout(m,16))(()=>{var m;try{if(!s.isConnected)return;const y=d.getBoundingClientRect();y.width>0&&y.height>0&&((m=u.fit)==null||m.call(u),h())}catch{}})}catch{s.removeAttribute("data-hydrated")}}function vr(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}function Nn(i){return i instanceof Map?i.clear=i.delete=i.set=function(){throw new Error("map is read-only")}:i instanceof Set&&(i.add=i.clear=i.delete=function(){throw new Error("set is read-only")}),Object.freeze(i),Object.getOwnPropertyNames(i).forEach(e=>{const t=i[e],n=typeof t;(n==="object"||n==="function")&&!Object.isFrozen(t)&&Nn(t)}),i}class an{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function Tn(i){return i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function _e(i,...e){const t=Object.create(null);for(const n in i)t[n]=i[n];return e.forEach(function(n){for(const r in n)t[r]=n[r]}),t}const kr="</span>",ln=i=>!!i.scope,xr=(i,{prefix:e})=>{if(i.startsWith("language:"))return i.replace("language:","language-");if(i.includes(".")){const t=i.split(".");return[`${e}${t.shift()}`,...t.map((n,r)=>`${n}${"_".repeat(r+1)}`)].join(" ")}return`${e}${i}`};class Sr{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=Tn(e)}openNode(e){if(!ln(e))return;const t=xr(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){ln(e)&&(this.buffer+=kr)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}const cn=(i={})=>{const e={children:[]};return Object.assign(e,i),e};class Ct{constructor(){this.rootNode=cn(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=cn({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(n=>this._walk(e,n)),e.closeNode(t)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(t=>typeof t=="string")?e.children=[e.children.join("")]:e.children.forEach(t=>{Ct._collapse(t)}))}}class Nr extends Ct{constructor(e){super(),this.options=e}addText(e){e!==""&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new Sr(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Fe(i){return i?typeof i=="string"?i:i.source:null}function An(i){return Ne("(?=",i,")")}function Tr(i){return Ne("(?:",i,")*")}function Ar(i){return Ne("(?:",i,")?")}function Ne(...i){return i.map(t=>Fe(t)).join("")}function Cr(i){const e=i[i.length-1];return typeof e=="object"&&e.constructor===Object?(i.splice(i.length-1,1),e):{}}function rt(...i){return"("+(Cr(i).capture?"":"?:")+i.map(n=>Fe(n)).join("|")+")"}function Cn(i){return new RegExp(i.toString()+"|").exec("").length-1}function Mr(i,e){const t=i&&i.exec(e);return t&&t.index===0}const Or=new RegExp(rt(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function Mt(i,{joinWith:e}){let t=0;return i.map(n=>{t+=1;const r=t;let s=Fe(n),o="";for(;s.length>0;){const a=Or.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+r):(o+=a[0],(a[0]==="("||/^\(\?[<']/.test(a[0]))&&t++)}return o}).map(n=>`(${n})`).join(e)}const Rr=/\b\B/,Mn="[a-zA-Z]\\w*",Ot="[a-zA-Z_]\\w*",On="\\b\\d+(\\.\\d+)?",Rn="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",In="\\b(0b[01]+)",Ir="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Lr=(i={})=>{const e=/^#![ ]*\//;return i.binary&&(i.begin=Ne(e,/.*\b/,i.binary,/\b.*/)),_e({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,n)=>{t.index!==0&&n.ignoreMatch()}},i)},ze={begin:"\\\\[\\s\\S]",relevance:0},Dr={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ze]},Pr={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ze]},Br={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},st=function(i,e,t={}){const n=_e({scope:"comment",begin:i,end:e,contains:[]},t);n.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const r=rt("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return n.contains.push({begin:Ne(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),n},$r=st("//","$"),Ur=st("/\\*","\\*/"),Hr=st("#","$"),Fr={scope:"number",begin:On,relevance:0},zr={scope:"number",begin:Rn,relevance:0},Kr={scope:"number",begin:In,relevance:0},qr={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ze,{begin:/\[/,end:/\]/,relevance:0,contains:[ze]}]},Gr={scope:"title",begin:Mn,relevance:0},Wr={scope:"title",begin:Ot,relevance:0},Yr={begin:"\\.\\s*"+Ot,relevance:0},Vr=function(i){return Object.assign(i,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var Xe=Object.freeze({__proto__:null,APOS_STRING_MODE:Dr,BACKSLASH_ESCAPE:ze,BINARY_NUMBER_MODE:Kr,BINARY_NUMBER_RE:In,COMMENT:st,C_BLOCK_COMMENT_MODE:Ur,C_LINE_COMMENT_MODE:$r,C_NUMBER_MODE:zr,C_NUMBER_RE:Rn,END_SAME_AS_BEGIN:Vr,HASH_COMMENT_MODE:Hr,IDENT_RE:Mn,MATCH_NOTHING_RE:Rr,METHOD_GUARD:Yr,NUMBER_MODE:Fr,NUMBER_RE:On,PHRASAL_WORDS_MODE:Br,QUOTE_STRING_MODE:Pr,REGEXP_MODE:qr,RE_STARTERS_RE:Ir,SHEBANG:Lr,TITLE_MODE:Gr,UNDERSCORE_IDENT_RE:Ot,UNDERSCORE_TITLE_MODE:Wr});function Zr(i,e){i.input[i.index-1]==="."&&e.ignoreMatch()}function Xr(i,e){i.className!==void 0&&(i.scope=i.className,delete i.className)}function jr(i,e){e&&i.beginKeywords&&(i.begin="\\b("+i.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",i.__beforeBegin=Zr,i.keywords=i.keywords||i.beginKeywords,delete i.beginKeywords,i.relevance===void 0&&(i.relevance=0))}function Jr(i,e){Array.isArray(i.illegal)&&(i.illegal=rt(...i.illegal))}function Qr(i,e){if(i.match){if(i.begin||i.end)throw new Error("begin & end are not supported with match");i.begin=i.match,delete i.match}}function es(i,e){i.relevance===void 0&&(i.relevance=1)}const ts=(i,e)=>{if(!i.beforeMatch)return;if(i.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},i);Object.keys(i).forEach(n=>{delete i[n]}),i.keywords=t.keywords,i.begin=Ne(t.beforeMatch,An(t.begin)),i.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},i.relevance=0,delete t.beforeMatch},ns=["of","and","for","in","not","or","if","then","parent","list","value"],is="keyword";function Ln(i,e,t=is){const n=Object.create(null);return typeof i=="string"?r(t,i.split(" ")):Array.isArray(i)?r(t,i):Object.keys(i).forEach(function(s){Object.assign(n,Ln(i[s],e,s))}),n;function r(s,o){e&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");n[l[0]]=[s,rs(l[0],l[1])]})}}function rs(i,e){return e?Number(e):ss(i)?0:1}function ss(i){return ns.includes(i.toLowerCase())}const dn={},Se=i=>{console.error(i)},un=(i,...e)=>{console.log(`WARN: ${i}`,...e)},Te=(i,e)=>{dn[`${i}/${e}`]||(console.log(`Deprecated as of ${i}. ${e}`),dn[`${i}/${e}`]=!0)},nt=new Error;function Dn(i,e,{key:t}){let n=0;const r=i[t],s={},o={};for(let a=1;a<=e.length;a++)o[a+n]=r[a],s[a+n]=!0,n+=Cn(e[a-1]);i[t]=o,i[t]._emit=s,i[t]._multi=!0}function os(i){if(Array.isArray(i.begin)){if(i.skip||i.excludeBegin||i.returnBegin)throw Se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),nt;if(typeof i.beginScope!="object"||i.beginScope===null)throw Se("beginScope must be object"),nt;Dn(i,i.begin,{key:"beginScope"}),i.begin=Mt(i.begin,{joinWith:""})}}function as(i){if(Array.isArray(i.end)){if(i.skip||i.excludeEnd||i.returnEnd)throw Se("skip, excludeEnd, returnEnd not compatible with endScope: {}"),nt;if(typeof i.endScope!="object"||i.endScope===null)throw Se("endScope must be object"),nt;Dn(i,i.end,{key:"endScope"}),i.end=Mt(i.end,{joinWith:""})}}function ls(i){i.scope&&typeof i.scope=="object"&&i.scope!==null&&(i.beginScope=i.scope,delete i.scope)}function cs(i){ls(i),typeof i.beginScope=="string"&&(i.beginScope={_wrap:i.beginScope}),typeof i.endScope=="string"&&(i.endScope={_wrap:i.endScope}),os(i),as(i)}function ds(i){function e(o,a){return new RegExp(Fe(o),"m"+(i.case_insensitive?"i":"")+(i.unicodeRegex?"u":"")+(a?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=Cn(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=e(Mt(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const c=l.findIndex((u,h)=>h>0&&u!==void 0),d=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,d)}}class n{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new t;return this.rules.slice(a).forEach(([c,d])=>l.addRule(c,d)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,c=d.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function r(o){const a=new n;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[Xr,Qr,cs,ts].forEach(d=>d(o,a)),i.compilerExtensions.forEach(d=>d(o,a)),o.__beforeBegin=null,[jr,Jr,es].forEach(d=>d(o,a)),o.isCompiled=!0;let c=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),c=o.keywords.$pattern,delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=Ln(o.keywords,i.case_insensitive)),l.keywordPatternRe=e(c,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=e(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=e(l.end)),l.terminatorEnd=Fe(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=e(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(d){return us(d==="self"?o:d)})),o.contains.forEach(function(d){s(d,l)}),o.starts&&s(o.starts,a),l.matcher=r(l),l}if(i.compilerExtensions||(i.compilerExtensions=[]),i.contains&&i.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return i.classNameAliases=_e(i.classNameAliases||{}),s(i)}function Pn(i){return i?i.endsWithParent||Pn(i.starts):!1}function us(i){return i.variants&&!i.cachedVariants&&(i.cachedVariants=i.variants.map(function(e){return _e(i,{variants:null},e)})),i.cachedVariants?i.cachedVariants:Pn(i)?_e(i,{starts:i.starts?_e(i.starts):null}):Object.isFrozen(i)?_e(i):i}var hs="11.12.0";class ps extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const bt=Tn,hn=_e,pn=Symbol("nomatch"),fs=7,Bn=function(i){const e=Object.create(null),t=Object.create(null),n=[];let r=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Nr};function l(f){return a.noHighlightRe.test(f)}function c(f){let v=f.className+" ";v+=f.parentNode?f.parentNode.className:"";const w=a.languageDetectRe.exec(v);if(w){const T=R(w[1]);return T||(un(s.replace("{}",w[1])),un("Falling back to no-highlight mode for this block.",f)),T?w[1]:"no-highlight"}return v.split(/\s+/).find(T=>l(T)||R(T))}function d(f,v,w){let T="",$="";typeof v=="object"?(T=f,w=v.ignoreIllegals,$=v.language):(Te("10.7.0","highlight(lang, code, ...args) has been deprecated."),Te("10.7.0",`Please use highlight(code, options) instead.
13
- https://github.com/highlightjs/highlight.js/issues/2277`),$=f,T=v),w===void 0&&(w=!0);const F={code:T,language:$};U("before:highlight",F);const q=F.result?F.result:u(F.language,F.code,w);return q.code=F.code,U("after:highlight",q),q}function u(f,v,w,T){const $=Object.create(null);function F(_,k){return _.keywords[k]}function q(){if(!M.keywords){ne.addText(W);return}let _=0;M.keywordPatternRe.lastIndex=0;let k=M.keywordPatternRe.exec(W),D="";for(;k;){D+=W.substring(_,k.index);const G=ce.case_insensitive?k[0].toLowerCase():k[0],re=F(M,G);if(re){const[fe,_i]=re;if(ne.addText(D),D="",$[G]=($[G]||0)+1,$[G]<=fs&&(Ge+=_i),fe.startsWith("_"))D+=k[0];else{const Ei=ce.classNameAliases[fe]||fe;te(k[0],Ei)}}else D+=k[0];_=M.keywordPatternRe.lastIndex,k=M.keywordPatternRe.exec(W)}D+=W.substring(_),ne.addText(D)}function j(){if(W==="")return;let _=null;if(typeof M.subLanguage=="string"){if(!e[M.subLanguage]){ne.addText(W);return}_=u(M.subLanguage,W,!0,Bt[M.subLanguage]),Bt[M.subLanguage]=_._top}else _=p(W,M.subLanguage.length?M.subLanguage:null);M.relevance>0&&(Ge+=_.relevance),ne.__addSublanguage(_._emitter,_.language)}function J(){M.subLanguage!=null?j():q(),W=""}function te(_,k){_!==""&&(ne.startScope(k),ne.addText(_),ne.endScope())}function we(_,k){let D=1;const G=k.length-1;for(;D<=G;){if(!_._emit[D]){D++;continue}const re=ce.classNameAliases[_[D]]||_[D],fe=k[D];re?te(fe,re):(W=fe,q(),W=""),D++}}function Re(_,k){return _.scope&&typeof _.scope=="string"&&ne.openNode(ce.classNameAliases[_.scope]||_.scope),_.beginScope&&(_.beginScope._wrap?(te(W,ce.classNameAliases[_.beginScope._wrap]||_.beginScope._wrap),W=""):_.beginScope._multi&&(we(_.beginScope,k),W="")),M=Object.create(_,{parent:{value:M}}),M}function Dt(_,k,D){let G=Mr(_.endRe,D);if(G){if(_["on:end"]){const re=new an(_);_["on:end"](k,re),re.isMatchIgnored&&(G=!1)}if(G){for(;_.endsParent&&_.parent;)_=_.parent;return _}}if(_.endsWithParent)return Dt(_.parent,k,D)}function fi(_){return M.matcher.regexIndex===0?(W+=_[0],1):(lt=!0,0)}function gi(_){const k=_[0],D=_.rule,G=new an(D),re=[D.__beforeBegin,D["on:begin"]];for(const fe of re)if(fe&&(fe(_,G),G.isMatchIgnored))return fi(k);return D.skip?W+=k:(D.excludeBegin&&(W+=k),J(),!D.returnBegin&&!D.excludeBegin&&(W=k)),Re(D,_),D.returnBegin?0:k.length}function mi(_){const k=_[0],D=v.substring(_.index),G=Dt(M,_,D);if(!G)return pn;const re=M;M.endScope&&M.endScope._wrap?(J(),te(k,M.endScope._wrap)):M.endScope&&M.endScope._multi?(J(),we(M.endScope,_)):re.skip?W+=k:(re.returnEnd||re.excludeEnd||(W+=k),J(),re.excludeEnd&&(W=k));do M.scope&&ne.closeNode(),!M.skip&&!M.subLanguage&&(Ge+=M.relevance),M=M.parent;while(M!==G.parent);return G.starts&&Re(G.starts,_),re.returnEnd?0:k.length}function bi(){const _=[];for(let k=M;k!==ce;k=k.parent)k.scope&&_.unshift(k.scope);_.forEach(k=>ne.openNode(k))}let qe={};function Pt(_,k){const D=k&&k[0];if(W+=_,D==null)return J(),0;if(qe.type==="begin"&&k.type==="end"&&qe.index===k.index&&D===""){if(W+=v.slice(k.index,k.index+1),!r){const G=new Error(`0 width match regex (${f})`);throw G.languageName=f,G.badRule=qe.rule,G}return 1}if(qe=k,k.type==="begin")return gi(k);if(k.type==="illegal"&&!w){const G=new Error('Illegal lexeme "'+D+'" for mode "'+(M.scope||"<unnamed>")+'"');throw G.mode=M,G}else if(k.type==="end"){const G=mi(k);if(G!==pn)return G}if(k.type==="illegal"&&D==="")return k.index===v.length||(W+=`
14
- `),1;if(at>1e5&&at>k.index*3)throw new Error("potential infinite loop, way more iterations than matches");return W+=D,D.length}const ce=R(f);if(!ce)throw Se(s.replace("{}",f)),new Error('Unknown language: "'+f+'"');const yi=ds(ce);let ot="",M=T||yi;const Bt={},ne=new a.__emitter(a);bi();let W="",Ge=0,ve=0,at=0,lt=!1;try{if(ce.__emitTokens)ce.__emitTokens(v,ne);else{for(M.matcher.considerAll();;){at++,lt?lt=!1:M.matcher.considerAll(),M.matcher.lastIndex=ve;const _=M.matcher.exec(v);if(!_)break;const k=v.substring(ve,_.index),D=Pt(k,_);ve=_.index+D}Pt(v.substring(ve))}return ne.finalize(),ot=ne.toHTML(),{language:f,value:ot,relevance:Ge,illegal:!1,_emitter:ne,_top:M}}catch(_){if(_.message&&_.message.includes("Illegal"))return{language:f,value:bt(v),illegal:!0,relevance:0,_illegalBy:{message:_.message,index:ve,context:v.slice(ve-100,ve+100),mode:_.mode,resultSoFar:ot},_emitter:ne};if(r)return{language:f,value:bt(v),illegal:!1,relevance:0,errorRaised:_,_emitter:ne,_top:M};throw _}}function h(f){const v={value:bt(f),illegal:!1,relevance:0,_top:o,_emitter:new a.__emitter(a)};return v._emitter.addText(f),v}function p(f,v){v=v||a.languages||Object.keys(e);const w=h(f),T=v.filter(R).filter(H).map(J=>u(J,f,!1));T.unshift(w);const $=T.sort((J,te)=>{if(J.relevance!==te.relevance)return te.relevance-J.relevance;if(J.language&&te.language){if(R(J.language).supersetOf===te.language)return 1;if(R(te.language).supersetOf===J.language)return-1}return 0}),[F,q]=$,j=F;return j.secondBest=q,j}function m(f,v,w){const T=v&&t[v]||w;f.classList.add("hljs"),f.classList.add(`language-${T}`)}function y(f){let v=null;const w=c(f);if(l(w))return;if(U("before:highlightElement",{el:f,language:w}),f.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",f);return}if(f.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(f)),a.throwUnescapedHTML))throw new ps("One of your code blocks includes unescaped HTML.",f.innerHTML);v=f;const T=v.textContent,$=w?d(T,{language:w,ignoreIllegals:!0}):p(T);f.innerHTML=$.value,f.dataset.highlighted="yes",m(f,w,$.language),f.result={language:$.language,re:$.relevance,relevance:$.relevance},$.secondBest&&(f.secondBest={language:$.secondBest.language,relevance:$.secondBest.relevance}),U("after:highlightElement",{el:f,result:$,text:T})}function S(f){a=hn(a,f)}const O=()=>{B(),Te("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function P(){B(),Te("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let L=!1;function B(){function f(){B()}if(document.readyState==="loading"){L||window.addEventListener("DOMContentLoaded",f,!1),L=!0;return}document.querySelectorAll(a.cssSelector).forEach(y)}function x(f,v){let w=null;try{w=v(i)}catch(T){if(Se("Language definition for '{}' could not be registered.".replace("{}",f)),r)Se(T);else throw T;w=o}w.name||(w.name=f),e[f]=w,w.rawDefinition=v.bind(null,i),w.aliases&&C(w.aliases,{languageName:f})}function A(f){delete e[f];for(const v of Object.keys(t))t[v]===f&&delete t[v]}function E(){return Object.keys(e)}function R(f){return f=(f||"").toLowerCase(),e[f]||e[t[f]]}function C(f,{languageName:v}){typeof f=="string"&&(f=[f]),f.forEach(w=>{t[w.toLowerCase()]=v})}function H(f){const v=R(f);return v&&!v.disableAutodetect}function I(f){f["before:highlightBlock"]&&!f["before:highlightElement"]&&(f["before:highlightElement"]=v=>{f["before:highlightBlock"](Object.assign({block:v.el},v))}),f["after:highlightBlock"]&&!f["after:highlightElement"]&&(f["after:highlightElement"]=v=>{f["after:highlightBlock"](Object.assign({block:v.el},v))})}function N(f){I(f),n.push(f)}function z(f){const v=n.indexOf(f);v!==-1&&n.splice(v,1)}function U(f,v){const w=f;n.forEach(function(T){T[w]&&T[w](v)})}function X(f){return Te("10.7.0","highlightBlock will be removed entirely in v12.0"),Te("10.7.0","Please use highlightElement now."),y(f)}Object.assign(i,{highlight:d,highlightAuto:p,highlightAll:B,highlightElement:y,highlightBlock:X,configure:S,initHighlighting:O,initHighlightingOnLoad:P,registerLanguage:x,unregisterLanguage:A,listLanguages:E,getLanguage:R,registerAliases:C,autoDetection:H,inherit:hn,addPlugin:N,removePlugin:z}),i.debugMode=function(){r=!1},i.safeMode=function(){r=!0},i.versionString=hs,i.regex={concat:Ne,lookahead:An,either:rt,optional:Ar,anyNumberOfTimes:Tr};for(const f in Xe)typeof Xe[f]=="object"&&Nn(Xe[f]);return Object.assign(i,Xe),i},Oe=Bn({});Oe.newInstance=()=>Bn({});var gs=Oe;Oe.HighlightJS=Oe;Oe.default=Oe;const K=vr(gs),fn="[A-Za-z$_][0-9A-Za-z$_]*",ms=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],bs=["true","false","null","undefined","NaN","Infinity"],$n=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Un=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Hn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ys=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],_s=[].concat(Hn,$n,Un);function Fn(i){const e=i.regex,t=(w,{after:T})=>{const $="</"+w[0].slice(1);return w.input.indexOf($,T)!==-1},n=fn,r={begin:"<>",end:"</>"},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(w,T)=>{const $=w[0].length+w.index,F=w.input[$];if(F==="<"||F===","){T.ignoreMatch();return}F===">"&&(t(w,{after:$})||T.ignoreMatch());let q;const j=w.input.substring($);if(q=j.match(/^\s*=/)){T.ignoreMatch();return}if((q=j.match(/^\s+extends\s+/))&&q.index===0){T.ignoreMatch();return}}},a={$pattern:fn,keyword:ms,literal:bs,built_in:_s,"variable.language":ys},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},m={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,h],subLanguage:"css"}},y={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,h]},P={className:"comment",variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]},L=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,p,m,y,S,{match:/\$\d+/},u];h.contains=L.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(L)});const B=[].concat(P,h.contains),x=B.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(B)}]),A={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:x},E={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,e.concat(n,"(",e.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},R={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...$n,...Un]}},C={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},H={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[A],illegal:/%/},I={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function N(w){return e.concat("(?!",w.join("|"),")")}const z={match:e.concat(/\b/,N([...Hn,"super","import","await"].map(w=>`${w}\\s*\\(`)),n,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},U={begin:e.concat(/\./,e.lookahead(e.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},X={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},A]},f="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",v={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(f)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:x,CLASS_REFERENCE:R},illegal:/#(?![$_A-Za-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",relevance:5}),C,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,p,m,y,S,P,{match:/\$\d+/},u,R,{scope:"attr",match:n+e.lookahead(":"),relevance:0},v,{begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[P,i.REGEXP_MODE,{className:"function",begin:f,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:x}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},H,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,i.inherit(i.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},U,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},z,I,E,X,{match:/\$[(.]/}]}}const it="[A-Za-z$_][0-9A-Za-z$_]*",zn=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Kn=["true","false","null","undefined","NaN","Infinity"],qn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Gn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Wn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Yn=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Vn=[].concat(Wn,qn,Gn);function Es(i){const e=i.regex,t=(w,{after:T})=>{const $="</"+w[0].slice(1);return w.input.indexOf($,T)!==-1},n=it,r={begin:"<>",end:"</>"},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(w,T)=>{const $=w[0].length+w.index,F=w.input[$];if(F==="<"||F===","){T.ignoreMatch();return}F===">"&&(t(w,{after:$})||T.ignoreMatch());let q;const j=w.input.substring($);if(q=j.match(/^\s*=/)){T.ignoreMatch();return}if((q=j.match(/^\s+extends\s+/))&&q.index===0){T.ignoreMatch();return}}},a={$pattern:it,keyword:zn,literal:Kn,built_in:Vn,"variable.language":Yn},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},m={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,h],subLanguage:"css"}},y={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,h]},P={className:"comment",variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]},L=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,p,m,y,S,{match:/\$\d+/},u];h.contains=L.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(L)});const B=[].concat(P,h.contains),x=B.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(B)}]),A={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:x},E={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,e.concat(n,"(",e.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},R={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...qn,...Gn]}},C={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},H={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[A],illegal:/%/},I={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function N(w){return e.concat("(?!",w.join("|"),")")}const z={match:e.concat(/\b/,N([...Wn,"super","import","await"].map(w=>`${w}\\s*\\(`)),n,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},U={begin:e.concat(/\./,e.lookahead(e.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},X={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},A]},f="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",v={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(f)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:x,CLASS_REFERENCE:R},illegal:/#(?![$_A-Za-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",relevance:5}),C,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,p,m,y,S,P,{match:/\$\d+/},u,R,{scope:"attr",match:n+e.lookahead(":"),relevance:0},v,{begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[P,i.REGEXP_MODE,{className:"function",begin:f,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:x}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},H,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,i.inherit(i.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},U,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},z,I,E,X,{match:/\$[(.]/}]}}function Zn(i){const e=i.regex,t=Es(i),n=it,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,i.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},o={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[t.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:it,keyword:zn.concat(l),literal:Kn,built_in:Vn.concat(r),"variable.language":Yn},d={className:"meta",begin:"@"+n},u=(y,S,O)=>{const P=y.contains.findIndex(L=>L.label===S);if(P===-1)throw new Error("can not find mode to replace");y.contains.splice(P,1,O)};Object.assign(t.keywords,c),t.exports.PARAMS_CONTAINS.push(d);const h=t.contains.find(y=>y.scope==="attr"),p=Object.assign({},h,{match:e.concat(n,e.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,h,p]),t.contains=t.contains.concat([d,s,o,p]),u(t,"shebang",i.SHEBANG()),u(t,"use_strict",a);const m=t.contains.find(y=>y.label==="func.def");return m.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}function Xn(i){const e=i.regex,t=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),n=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","lazy","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:n,built_in:["__import__","abs","aiter","all","anext","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozendict","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","sentinel","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},d={begin:/\{\{/,relevance:0},u={className:"string",contains:[i.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[i.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[i.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,end:/'''/,contains:[i.BACKSLASH_ESCAPE,l,d,c]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"""/,end:/"""/,contains:[i.BACKSLASH_ESCAPE,l,d,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'/,end:/'/,contains:[i.BACKSLASH_ESCAPE,d,c]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"/,end:/"/,contains:[i.BACKSLASH_ESCAPE,d,c]},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",p=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,m=`\\b|${n.join("|")}`,y={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${p}))[eE][+-]?(${h})[jJ]?(?=${m})`},{begin:`(${p})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${m})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${m})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${m})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${m})`},{begin:`\\b(${h})[jJ](?=${m})`}]},S={className:"comment",begin:e.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},O={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",l,y,u,i.HASH_COMMENT_MODE]}]};return c.contains=[u,y,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,y,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},u,S,i.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[O]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[y,O,u]}]}}const ws="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",vs={scope:"number",match:ws,relevance:0};function ks(i){const e={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:"punctuation",relevance:0},n=["true","false","null"],r={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:n},contains:[e,t,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,r,vs,i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function Rt(i){const e=i.regex,t={},n={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:e.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const r={className:"subst",begin:/\$\(/,end:/\)/,contains:[i.BACKSLASH_ESCAPE]},s=i.inherit(i.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[i.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[i.BACKSLASH_ESCAPE,t,r]};r.contains.push(a);const l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},d={match:/\\'/},u={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},i.NUMBER_MODE,t]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=i.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[i.inherit(i.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},y=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],S=["true","false"],O={match:/(\/[a-z._-]+)+/},P=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],L=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],B=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],x=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:y,literal:S,built_in:[...P,...L,"set","shopt",...B,...x]},contains:[p,i.SHEBANG(),m,u,s,o,O,a,l,c,d,t]}}const xs=i=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:i.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:i.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Ss=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Ns=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Ts=[...Ss,...Ns],As=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Cs=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Ms=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Os=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Rs(i){const e=i.regex,t=xs(i),n={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",s=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",a=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[t.BLOCK_COMMENT,n,t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Cs.join("|")+")"},{begin:":(:)?("+Ms.join("|")+")"}]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Os.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,t.UNICODE_RANGE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:As.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Ts.join("|")+")\\b"}]}}function It(i){const e=i.regex,t=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),n=/[\p{L}0-9._:-]+/u,r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=i.inherit(s,{begin:/\(/,end:/\)/}),a=i.inherit(i.APOS_STRING_MODE,{className:"string"}),l=i.inherit(i.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:n,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[r]},{begin:/'/,end:/'/,contains:[r]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[s,l,a,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[s,o,l,a]}]}]},i.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:"javascript"}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:e.concat(/</,e.lookahead(e.concat(t,e.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:c}]},{className:"tag",begin:e.concat(/<\//,e.lookahead(e.concat(t,/>/))),contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function Is(i){const e=i.regex,t=i.COMMENT("--","$"),n={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],d=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],u=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],p=d,m=[...c,...l].filter(x=>!d.includes(x)),y={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},S={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},O={match:e.concat(/\b/,e.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function P(x){return e.concat(/\b/,e.either(...x.map(A=>A.replace(/\s+/,"\\s+"))),/\b/)}const L={scope:"keyword",match:P(h),relevance:0};function B(x,{exceptions:A,when:E}={}){const R=E;return A=A||[],x.map(C=>C.match(/\|\d+$/)||A.includes(C)?C:R(C)?`${C}|0`:C)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:B(m,{when:x=>x.length<3}),literal:s,type:a,built_in:u},contains:[{scope:"type",match:P(o)},L,O,y,n,r,i.C_NUMBER_MODE,i.C_BLOCK_COMMENT_MODE,t,S]}}function jn(i){const e="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",n={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},o={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[i.BACKSLASH_ESCAPE,r]},a=i.inherit(o,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},p={end:",",endsWithParent:!0,excludeEnd:!0,keywords:e,relevance:0},m={begin:/\{/,end:/\}/,contains:[p],illegal:"\\n",relevance:0},y={begin:"\\[",end:"\\]",contains:[p],illegal:"\\n",relevance:0},S=[n,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t},{className:"meta",begin:"&"+i.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+i.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},i.HASH_COMMENT_MODE,{beginKeywords:e,keywords:{literal:e}},h,{className:"number",begin:i.C_NUMBER_RE+"\\b",relevance:0},m,y,s,o],O=[...S];return O.pop(),O.push(a),p.contains=O,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}function Jn(i){const e=i.regex,t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},n={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},d={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},u=i.inherit(c,{contains:[]}),h=i.inherit(d,{contains:[]});c.contains.push(h),d.contains.push(u);let p=[t,l];return[c,d,u,h].forEach(O=>{O.contains=O.contains.concat(p)}),p=p.concat(c,d),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:p},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:p}]}]},t,s,n,c,d,{className:"quote",begin:"^>\\s+",contains:p,end:"$"},r,l,o,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function Ls(i){const s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"</",contains:[i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE,{className:"string",variants:[i.QUOTE_STRING_MODE,i.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[i.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:s,illegal:/["']/}]}]}}function Qn(i){const e=i.regex,t=/(r#)?/,n=e.concat(t,i.UNDERSCORE_IDENT_RE),r=e.concat(t,i.IDENT_RE),s={scope:"title.function.invoke",relevance:0,begin:e.concat(/\b/,/(?!(?:let|for|while|if|else|match)\b)/,r,e.lookahead(/\s*\(/))},o="([ui](8|16|32|64|128|size)|f(16|32|64|128))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","raw","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],d=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f16","f32","f64","f128","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:i.IDENT_RE+"!?",type:d,keyword:a,literal:l,built_in:c},illegal:"</",contains:[i.C_LINE_COMMENT_MODE,i.COMMENT("/\\*","\\*/",{contains:["self"]}),i.inherit(i.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{scope:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|"|\\|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{scope:"number",variants:[{begin:"\\b0b([01_]+)"+o},{begin:"\\b0o([0-7_]+)"+o},{begin:"\\b0x([A-Fa-f0-9_]+)"+o},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+o}],relevance:0},{begin:[/\bsafe/,/\s+/,/extern/],scope:{1:"keyword",3:"keyword"}},{begin:[/fn/,/\s+/,n],scope:{1:"keyword",3:"title.function"}},{scope:"meta",begin:"#!?\\[",end:"\\]",contains:[{scope:"string",begin:/"/,end:/"/,contains:[i.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,n],scope:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,n,/\s+/,/in/],scope:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,n],scope:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,n],scope:{1:"keyword",3:"title.class"}},{begin:i.IDENT_RE+"::",keywords:{keyword:"Self",built_in:c,type:d}},{scope:"punctuation",begin:"->"},s]}}var Ae="[0-9](_*[0-9])*",je=`\\.(${Ae})`,Je="[0-9a-fA-F](_*[0-9a-fA-F])*",gn={className:"number",variants:[{begin:`(\\b(${Ae})((${je})|\\.)?|(${je}))[eE][+-]?(${Ae})[fFdD]?\\b`},{begin:`\\b(${Ae})((${je})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${je})[fFdD]?\\b`},{begin:`\\b(${Ae})[fFdD]\\b`},{begin:`\\b0[xX]((${Je})\\.?|(${Je})?\\.(${Je}))[pP][+-]?(${Ae})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Je})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function ei(i,e,t){return t===-1?"":i.replace(e,n=>ei(i,e,t-1))}function Ds(i){const e=i.regex,t="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",n="(?:(?:\\s*\\[\\s*])+)?",r=t+"<@@@>"+n,o="(?:"+("\\?(?:\\s+(?:extends|super)\\s+"+r+")?")+"|"+r+")",a=ei("(?:\\s*<\\s*"+o+"(?:\\s*,\\s*"+o+")*\\s*>)?",/<@@@>/g,2),h={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},p={className:"meta",begin:"@"+t,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},m={className:"params",begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[i.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:h,illegal:/<\/|#/,contains:[i.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[i.BACKSLASH_ESCAPE]},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{beginKeywords:"new throw return else yield assert",relevance:0},{begin:[t,e.concat(a,n,/\s+/),t,n,/\s*/,/=(?!=)/],className:{1:"type",3:"variable",6:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",3:"title.class"},contains:[m,i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},{begin:[t,e.concat(a,n,/\s+/),t,/\s*(?=\()/],className:{1:"type",3:"title.function"},keywords:h,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[p,i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,gn,i.C_BLOCK_COMMENT_MODE]},i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE]},gn,p]}}function Ps(i){const e=i.regex,t=i.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",o="("+n+"|"+e.optional(r)+"[a-zA-Z_]\\w*"+e.optional("<[^<>]+>")+")",a=e.concat(/\batomic_/,e.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/),l={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:a}]},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[i.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},i.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},u={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},h={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},d,{scope:"string",begin:/<.*?>/},t,i.C_BLOCK_COMMENT_MODE]},p={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},i.inherit(d,{className:"string"}),t,i.C_BLOCK_COMMENT_MODE]},m=[h,p],y={className:"title",begin:e.optional(r)+i.IDENT_RE,relevance:0},S=e.optional(r)+i.IDENT_RE+"\\s*\\(",O=12,B={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},x=[...m,l,t,i.C_BLOCK_COMMENT_MODE,u,d],A={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:B,contains:x.concat([{begin:/\(/,end:/\)/,keywords:B,contains:x.concat(["self"]),relevance:0}]),relevance:0},E={begin:"("+o+"[\\*&\\s]+){1,"+O+"}"+S,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:B,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:B,relevance:0},{begin:S,returnBegin:!0,contains:[i.inherit(y,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:[t,i.C_BLOCK_COMMENT_MODE,d,u,l,{begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:["self",t,i.C_BLOCK_COMMENT_MODE,d,u,l]}]},l,t,i.C_BLOCK_COMMENT_MODE,...m]};return{name:"C",aliases:["h"],keywords:B,disableAutodetect:!0,illegal:"</",contains:[].concat(A,E,x,[...m,{begin:i.IDENT_RE+"::",keywords:B},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},i.TITLE_MODE]}]),exports:{preprocessor:p,strings:d,keywords:B}}}function ti(i){const e=i.regex,t=i.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",o="(?!struct)("+n+"|"+e.optional(r)+"[a-zA-Z_]\\w*"+e.optional("<[^<>]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[i.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},i.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},c,{scope:"string",begin:/<.*?>/},t,i.C_BLOCK_COMMENT_MODE]},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},i.inherit(c,{className:"string"}),t,i.C_BLOCK_COMMENT_MODE]},p=[u,h],m={className:"title",begin:e.optional(r)+i.IDENT_RE,relevance:0},y=e.optional(r)+i.IDENT_RE+"\\s*\\(",S=12,O=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],P=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],L=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],B=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],E={type:P,keyword:O,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:L},R={className:"function.dispatch",relevance:0,keywords:{_hint:B},begin:e.concat(/\b/,`(?!${O.join("|")})`,i.IDENT_RE,e.lookahead(/(<[^<>]+>|)\s*\(/))},C=[R,...p,a,t,i.C_BLOCK_COMMENT_MODE,d,c],H={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:E,contains:C.concat([{begin:/\(/,end:/\)/,keywords:E,contains:C.concat(["self"]),relevance:0}]),relevance:0},I={className:"function",begin:"("+o+"[\\*&\\s]+){1,"+S+"}"+y,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:E,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:E,relevance:0},{begin:y,returnBegin:!0,contains:[m],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:[t,i.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:["self",t,i.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,t,i.C_BLOCK_COMMENT_MODE,...p]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:E,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(H,I,R,C,[...p,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:E,contains:["self",a]},{begin:i.IDENT_RE+"::",keywords:E},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}K.registerLanguage("javascript",Fn);K.registerLanguage("js",Fn);K.registerLanguage("typescript",Zn);K.registerLanguage("ts",Zn);K.registerLanguage("python",Xn);K.registerLanguage("py",Xn);K.registerLanguage("json",ks);K.registerLanguage("bash",Rt);K.registerLanguage("sh",Rt);K.registerLanguage("shell",Rt);K.registerLanguage("css",Rs);K.registerLanguage("xml",It);K.registerLanguage("html",It);K.registerLanguage("svg",It);K.registerLanguage("sql",Is);K.registerLanguage("yaml",jn);K.registerLanguage("yml",jn);K.registerLanguage("markdown",Jn);K.registerLanguage("md",Jn);K.registerLanguage("go",Ls);K.registerLanguage("rust",Qn);K.registerLanguage("rs",Qn);K.registerLanguage("java",Ds);K.registerLanguage("c",Ps);K.registerLanguage("cpp",ti);K.registerLanguage("c++",ti);const Bs=new Set(["mindmap"]);function De(i){return i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function $s(i,e={}){const t=new Set(e.reservedLanguages??Bs),n=i.renderer.rules.fence?i.renderer.rules.fence.bind(i.renderer.rules):(r,s,o,a,l)=>l.renderToken(r,s,o);i.renderer.rules.fence=(r,s,o,a,l)=>{var y;const c=r[s];if(!c)return n(r,s,o,a,l);const u=((y=c.info.trim().split(/\s+/)[0])==null?void 0:y.toLowerCase())??"";if(t.has(u))return n(r,s,o,a,l);const h=c.content;let p,m=u||"text";if(u&&K.getLanguage(u))try{p=K.highlight(h,{language:u,ignoreIllegals:!0}).value}catch{p=De(h)}else if(u)try{const S=K.highlightAuto(h);p=S.value,m=S.language||u}catch{p=De(h)}else try{const S=K.highlightAuto(h);p=S.value,m=S.language||"text"}catch{p=De(h)}return`<div class="md-editor-codeblock"><div class="md-editor-codeblock-header"><span class="md-editor-codeblock-lights"><span class="md-editor-codeblock-dot md-editor-codeblock-dot--red"></span><span class="md-editor-codeblock-dot md-editor-codeblock-dot--yellow"></span><span class="md-editor-codeblock-dot md-editor-codeblock-dot--green"></span></span><span class="md-editor-codeblock-lang">${De(m)}</span><button type="button" class="md-editor-codeblock-copy" aria-label="Copy code">Copy</button></div><pre class="md-editor-codeblock-pre"><code class="language-${De(m)}">${p}</code></pre></div>`}}const Us=[".mp4",".webm",".ogg",".mov",".m4v",".avi",".mkv"],Hs=[/(?:youtube\.com\/watch\?[^ ]*v=|youtu\.be\/|youtube\.com\/embed\/|youtube\.com\/shorts\/|youtube\.com\/v\/)([a-zA-Z0-9_-]{11})/,/^([a-zA-Z0-9_-]{11})$/];function ni(i){const e=i.trim();if(!e)return null;for(const t of Hs){const n=e.match(t);if(n&&n[1])return n[1]}return null}function ii(i,e="YouTube video"){const t=`https://img.youtube.com/vi/${i}/hqdefault.jpg`,n=`https://www.youtube.com/watch?v=${i}`;return`[![${e}](${t})](${n})`}function ri(i){const e=i.toLowerCase().split("?")[0]??"";return Us.some(t=>e.endsWith(t))}function xt(i,e="image"){return`![${e}](${i})`}function si(i,e="video"){return`![${e}](${i})`}function Fs(i){const e=i.renderer.rules.image?i.renderer.rules.image.bind(i.renderer.rules):(t,n,r,s,o)=>o.renderToken(t,n,r);i.renderer.rules.image=(t,n,r,s,o)=>{const a=t[n];if(!a)return e(t,n,r,s,o);const l=a.attrGet("src")??"";if(ri(l)){const c=a.content||"";return`<video src="${l}" controls class="md-editor-video" title="${c}">${c}</video>`}return e(t,n,r,s,o)}}const zs=new Set(["notice","info","tip","warning","danger","success"]),Ks=/^:::(\w+)(?:\s+(.+))?$/,qs=/^:::\s*$/,mn={notice:"Notice",info:"Info",tip:"Tip",warning:"Warning",danger:"Danger",success:"Success"},Gs={notice:"i",info:"i",tip:"✓",warning:"!",danger:"✕",success:"✓"};function Ws(i){i.block.ruler.before("fence","tips_block",(e,t,n,r)=>{const o=e.src.slice(e.bMarks[t],e.eMarks[t]).match(Ks);if(!o)return!1;const a=(o[1]??"").toLowerCase();if(!zs.has(a))return!1;let l=t+1,c=!1;for(;l<n;){const m=e.src.slice(e.bMarks[l],e.eMarks[l]);if(qs.test(m.trim())){c=!0;break}l++}if(!c)return!1;if(r)return!0;const d=o[2]??mn[a]??a,u=e.src.slice(e.bMarks[t+1],e.bMarks[l]).trim(),h=i.render(u),p=e.push("tips_block","div",0);return p.content=h,p.info=a,p.markup=d,e.line=l+1,!0}),i.renderer.rules.tips_block=(e,t)=>{const n=e[t];if(!n)return"";const r=n.info??"notice",s=n.markup??mn[r]??"Notice",o=Gs[r]??"i",a=n.content??"";return`<div class="md-editor-tip md-editor-tip--${r}"><div class="md-editor-tip-header"><span class="md-editor-tip-icon">${o}</span><span class="md-editor-tip-title">${Ys(s)}</span></div><div class="md-editor-tip-body">${a}</div></div>`}}function Ys(i){return i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function Vs(i){const e=i.renderer.rules.list_item_open;i.renderer.rules.list_item_open=(t,n,r,s,o)=>{var c,d;const a=t[n];if(!a)return e?e(t,n,r,s,o):o.renderToken(t,n,r);let l;for(let u=n+1;u<t.length&&u<n+6;u++){if(((c=t[u])==null?void 0:c.type)==="inline"){l=t[u];break}if(((d=t[u])==null?void 0:d.type)==="list_item_close")break}if(l&&l.content){const u=l.content,h=/^\[\s*\]\s/.test(u),p=/^\[\s*[xX]\s*\]\s/.test(u);if(h||p){const m=/^\[\s*(?:[xX])?\s*\]\s/;if(l.content=u.replace(m,""),l.children&&l.children.length>0){const O=l.children[0];O&&O.type==="text"&&(O.content=O.content.replace(m,""))}a.attrSet("class","task-list-item");const y=`<input type="checkbox" disabled${h?" checked":""} /> `;return(e?e(t,n,r,s,o):o.renderToken(t,n,r))+y}}return e?e(t,n,r,s,o):o.renderToken(t,n,r)}}class Lt{constructor(e={}){this.md=new Ci({html:e.html??!1,linkify:!0,breaks:e.breaks??!1,typographer:!0}),e.math!==!1&&br(this.md),this.mindmapEnabled=e.mindmap!==!1,this.mindmapEnabled&&yr(this.md),e.codeHighlight!==!1&&$s(this.md,{reservedLanguages:this.mindmapEnabled?["mindmap"]:[]}),e.tips!==!1&&Ws(this.md),Vs(this.md),fr(this.md),ar(this.md),Fs(this.md)}render(e){return this.md.render(e||"")}async hydrate(e){if(this.mindmapEnabled)try{await wr(e)}catch{}}}function Zs(i,e={}){return new Lt(e).render(i)}class oi{constructor(e){this.buttons=new Map,this.el=document.createElement("div"),this.el.className="md-editor-toolbar",this.el.setAttribute("role","toolbar");for(const t of e){const n=document.createElement("button");if(n.type="button",n.className="md-editor-toolbar-btn",t.toggle&&n.classList.add("is-toggle"),t.active&&n.classList.add("is-active"),n.title=t.title,n.setAttribute("aria-label",t.title),n.setAttribute("data-action",t.name),n.innerHTML=t.icon,n.addEventListener("mousedown",r=>{r.preventDefault(),r.stopPropagation(),t.handler(n)}),this.buttons.set(t.name,n),this.el.appendChild(n),t.groupEnd){const r=document.createElement("span");r.className="md-editor-toolbar-sep",this.el.appendChild(r)}}}setActive(e,t){var n;(n=this.buttons.get(e))==null||n.classList.toggle("is-active",t)}setIcon(e,t){const n=this.buttons.get(e);n&&(n.innerHTML=t)}destroy(){for(const e of this.buttons.values())e.onclick=null;this.buttons.clear(),this.el.remove()}}function St(i){const e=i.trim();return{charCount:i.length,wordCount:e?e.split(/\s+/).length:0}}class ai{constructor(e){this.el=document.createElement("div"),this.el.className="md-editor-statusbar",this.countEl=document.createElement("span"),this.blockEl=document.createElement("span"),this.blockEl.className="md-editor-statusbar-muted",this.refreshBtn=document.createElement("button"),this.refreshBtn.type="button",this.refreshBtn.className="md-editor-statusbar-refresh",this.refreshBtn.textContent="Refresh preview",this.refreshBtn.style.display="none",this.refreshBtn.addEventListener("click",e.onRefreshPreview),this.el.appendChild(this.countEl),this.el.appendChild(this.blockEl),this.el.appendChild(this.refreshBtn)}update(e){this.countEl.textContent=`${e.charCount} chars · ${e.wordCount} words`,this.blockEl.textContent=`${e.blockCount} render blocks`,this.refreshBtn.style.display=e.autoPreview?"none":""}destroy(){this.refreshBtn.onclick=null,this.el.remove()}}const Xs=/^ {0,3}#{1,6}\s/,js=/^ {0,3}(`{3,}|~{3,})(.*)$/,Js=/^ {0,3}(`{3,}|~{3,})\s*$/,Qs=/^ {0,3}:{3,}\S/,eo=/^ {0,3}:{3,}\s*$/;function to(i){let e=5381;for(let t=0;t<i.length;t++)e=e*33^i.charCodeAt(t);return(e>>>0).toString(36)+":"+i.length}function li(i){const e=i.split(`
15
- `),t=[];let n=[],r=!1,s="",o=0,a=!1;for(const c of e){const d=c.match(js);if(d){const u=d[1]??"",h=u[0]??"",p=u.length;r?h===s&&p>=o&&Js.test(c)&&(r=!1):(r=!0,s=h,o=p),n.push(c);continue}if(r||(!a&&Qs.test(c)?a=!0:a&&eo.test(c)&&(a=!1)),!r&&!a&&Xs.test(c)&&n.length>0){t.push(n.join(`
16
- `)),n=[c];continue}n.push(c)}n.length>0&&t.push(n.join(`
17
- `)),t.length===0&&t.push("");const l=new Map;return t.map(c=>{const d=to(c),u=(l.get(d)??0)+1;return l.set(d,u),{key:`${d}#${u}`,hash:d,source:c}})}class ci{constructor(e,t,n=800){this.container=e,this.renderBlock=t,this.maxCacheEntries=n,this.nodeByKey=new Map,this.htmlByHash=new Map,this.prevBlocks=[]}update(e){const t=li(e),n=document.createDocumentFragment(),r=new Map;let s=0;for(const o of t){let a=this.nodeByKey.get(o.key);if(!a){let l=this.htmlByHash.get(o.hash);if(l===void 0){try{l=this.renderBlock(o.source)}catch{l=`<pre>${this.escapeHtml(o.source)}</pre>`}this.htmlByHash.set(o.hash,l),s++}a=document.createElement("div"),a.className="md-editor-block",a.dataset.blockKey=o.key,a.innerHTML=l}r.set(o.key,a),n.appendChild(a)}return this.container.innerHTML="",this.container.appendChild(n),this.nodeByKey=r,this.prevBlocks=t,this.evictCacheIfNeeded(t),{rerenderedCount:s,totalCount:t.length}}evictCacheIfNeeded(e){if(this.htmlByHash.size<=this.maxCacheEntries)return;const t=new Set(e.map(n=>n.hash));for(const n of Array.from(this.htmlByHash.keys()))t.has(n)||this.htmlByHash.delete(n)}getBlockCount(){return this.prevBlocks.length}escapeHtml(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}destroy(){this.container.innerHTML="",this.nodeByKey.clear(),this.htmlByHash.clear(),this.prevBlocks=[]}}function di(i,e){let t,n;const r=(...s)=>{n=s,t!==void 0&&clearTimeout(t),t=setTimeout(()=>{t=void 0,n&&i(...n)},e)};return r.cancel=()=>{t!==void 0&&clearTimeout(t),t=void 0},r.flush=()=>{t!==void 0&&(clearTimeout(t),t=void 0,n&&i(...n))},r}function ui(i,e=120,t=600){const n=Math.max(0,i),r=Math.floor(n/2e4)*60;return Math.min(t,e+r)}function no(i,e=300){const t=window;return typeof t.requestIdleCallback=="function"?t.requestIdleCallback(i,{timeout:e}):window.setTimeout(i,0)}function io(i){const e=window;typeof e.cancelIdleCallback=="function"?e.cancelIdleCallback(i):clearTimeout(i)}const Z=i=>`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">${i}</svg>`,Y={bold:Z('<path d="M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"/><path d="M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"/>'),italic:Z('<line x1="19" y1="4" x2="10" y2="4"/><line x1="14" y1="20" x2="5" y2="20"/><line x1="15" y1="4" x2="9" y2="20"/>'),heading:Z('<path d="M6 12h12"/><path d="M6 4v16"/><path d="M18 4v16"/>'),link:Z('<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>'),code:Z('<polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/>'),image:Z('<rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/>'),video:Z('<polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2" ry="2"/>'),youtube:Z('<path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"/><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"/>'),quote:Z('<path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z"/><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z"/>'),list:Z('<line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3.01" y2="6"/><line x1="3" y1="12" x2="3.01" y2="12"/><line x1="3" y1="18" x2="3.01" y2="18"/>'),listOrdered:Z('<line x1="10" y1="6" x2="21" y2="6"/><line x1="10" y1="12" x2="21" y2="12"/><line x1="10" y1="18" x2="21" y2="18"/><path d="M4 6h1v4"/><path d="M4 10h2"/><path d="M6 16H4c0-1 2-2 2-3s-1-1.5-2-1"/>'),taskList:Z('<rect x="3" y="4" width="6" height="6" rx="1"/><polyline points="4.5 7 5.5 8 7.5 5.5"/><line x1="13" y1="7" x2="21" y2="7"/><rect x="3" y="14" width="6" height="6" rx="1"/><line x1="13" y1="17" x2="21" y2="17"/>'),mention:Z('<circle cx="12" cy="12" r="4"/><path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"/>'),fileText:Z('<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/>'),table:Z('<rect x="3" y="3" width="18" height="18" rx="2"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="3" y1="15" x2="21" y2="15"/><line x1="9" y1="3" x2="9" y2="21"/>'),hr:Z('<line x1="4" y1="12" x2="20" y2="12"/>'),alert:Z('<path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/>'),sigma:Z('<path d="M18 7V4H6l6 8-6 8h12v-3"/>'),mindmap:Z('<circle cx="12" cy="12" r="3"/><circle cx="4" cy="5" r="2"/><circle cx="4" cy="19" r="2"/><circle cx="20" cy="5" r="2"/><circle cx="20" cy="19" r="2"/><line x1="9.5" y1="10.5" x2="5.5" y2="6.5"/><line x1="9.5" y1="13.5" x2="5.5" y2="17.5"/><line x1="14.5" y1="10.5" x2="18.5" y2="6.5"/><line x1="14.5" y1="13.5" x2="18.5" y2="17.5"/>'),eye:Z('<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/>'),help:Z('<circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><line x1="12" y1="17" x2="12.01" y2="17"/>'),moon:Z('<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>'),sun:Z('<circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/>'),refresh:Z('<polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/>')};class ge{constructor(e,t){this.inputs=new Map,this.destroyed=!1,this.anchor=e,this.config=t,this.el=document.createElement("div"),this.el.className="md-editor-popup",this.el.setAttribute("role","dialog"),this.el.setAttribute("aria-label",t.title),t.theme&&this.el.setAttribute("data-theme",t.theme),this.build(),this.onOutsideClick=n=>{const r=n.target;!this.el.contains(r)&&!this.anchor.contains(r)&&this.hide()},this.onKeyDown=n=>{n.key==="Escape"&&this.hide()}}build(){const e=document.createElement("div");e.className="md-editor-popup-header",e.textContent=this.config.title;const t=document.createElement("div");t.className="md-editor-popup-body";for(const o of this.config.fields){const a=document.createElement("div");a.className="md-editor-popup-field";const l=document.createElement("label");l.className="md-editor-popup-label",l.textContent=o.label,l.setAttribute("for",`md-editor-popup-${o.name}`);let c;o.type==="textarea"?(c=document.createElement("textarea"),c.rows=2):(c=document.createElement("input"),c.type="text"),c.id=`md-editor-popup-${o.name}`,c.className="md-editor-popup-input",o.placeholder&&(c.placeholder=o.placeholder),o.required&&(c.required=!0),a.appendChild(l),a.appendChild(c),t.appendChild(a),this.inputs.set(o.name,c)}const n=document.createElement("div");n.className="md-editor-popup-footer";const r=document.createElement("button");r.type="button",r.className="md-editor-popup-btn md-editor-popup-btn--ghost",r.textContent="Cancel",r.addEventListener("click",()=>this.hide());const s=document.createElement("button");s.type="button",s.className="md-editor-popup-btn md-editor-popup-btn--primary",s.textContent=this.config.submitLabel??"Insert",s.addEventListener("click",()=>this.submit()),n.appendChild(r),n.appendChild(s),this.el.appendChild(e),this.el.appendChild(t),this.el.appendChild(n);for(const o of this.inputs.values())o.tagName==="INPUT"&&o.addEventListener("keydown",a=>{const l=a;l.key==="Enter"&&(l.preventDefault(),this.submit())})}submit(){const e={};for(const[t,n]of this.inputs)e[t]=n.value.trim();this.config.onSubmit(e),this.hide()}show(){if(this.destroyed)return;document.body.appendChild(this.el),this.position(),document.addEventListener("mousedown",this.onOutsideClick),document.addEventListener("keydown",this.onKeyDown);const e=this.inputs.values().next().value;e==null||e.focus()}hide(){this.destroyed||(this.el.remove(),document.removeEventListener("mousedown",this.onOutsideClick),document.removeEventListener("keydown",this.onKeyDown))}position(){const e=this.anchor.getBoundingClientRect(),t=this.el.getBoundingClientRect();let n=e.left;const r=e.bottom+6;n+t.width>window.innerWidth-8&&(n=window.innerWidth-t.width-8),n<8&&(n=8),this.el.style.left=`${n+window.scrollX}px`,this.el.style.top=`${r+window.scrollY}px`}destroy(){this.hide(),this.destroyed=!0,this.inputs.clear()}}const hi=[{action:"bold",key:"Mod-b",description:"Bold"},{action:"italic",key:"Mod-i",description:"Italic"},{action:"heading",key:"Mod-Alt-1",description:"Heading"},{action:"link",key:"Mod-k",description:"Insert link"},{action:"code",key:"Mod-Alt-c",description:"Code block"},{action:"quote",key:"Mod-Shift-.",description:"Blockquote"},{action:"ul",key:"Mod-Shift-8",description:"Unordered list"},{action:"ol",key:"Mod-Shift-7",description:"Ordered list"},{action:"tasklist",key:"Mod-Shift-9",description:"Task list"},{action:"math",key:"Mod-Alt-m",description:"Math formula"},{action:"preview",key:"Mod-Alt-p",description:"Toggle preview"},{action:"theme",key:"Mod-Shift-l",description:"Toggle theme"}];function ro(i,e){var l;const t=i.toLowerCase().split("-");let n="",r=!1,s=!1,o=!1,a=!1;for(const c of t)switch(c){case"mod":(l=navigator.platform)!=null&&l.toLowerCase().includes("mac")?s=!0:r=!0;break;case"ctrl":r=!0;break;case"meta":case"cmd":s=!0;break;case"alt":case"option":o=!0;break;case"shift":a=!0;break;default:n=c}return!(e.ctrlKey!==r||e.metaKey!==s||e.altKey!==o||e.shiftKey!==a||e.key.toLowerCase()!==n)}function so(i){var n;const e=((n=navigator.platform)==null?void 0:n.toLowerCase().includes("mac"))??!1;return i.split("-").map(r=>{switch(r.toLowerCase()){case"mod":return e?"Cmd":"Ctrl";case"ctrl":return"Ctrl";case"meta":case"cmd":return"Cmd";case"alt":return e?"Option":"Alt";case"shift":return"Shift";default:return r.toUpperCase()}}).join("+")}function pi(i){var n;const e=((n=navigator.platform)==null?void 0:n.toLowerCase().includes("mac"))??!1;return i.split("-").map(r=>{let s=r,o="";switch(r.toLowerCase()){case"mod":s=e?"Cmd":"Ctrl",o=e?"⌘":"";break;case"ctrl":s="Ctrl",o=e?"⌃":"";break;case"meta":case"cmd":s="Cmd",o="⌘";break;case"alt":s=e?"Option":"Alt",o=e?"⌥":"";break;case"shift":s="Shift",o="⇧";break;default:s=r.toUpperCase()}return`<kbd class="md-editor-kbd">${o?`<span class="md-editor-kbd-symbol">${o}</span>`:""}<span>${s}</span></kbd>`}).join('<span class="md-editor-kbd-plus">+</span>')}const bn={bold:["**","**","bold text"],italic:["_","_","italic text"],heading:["## ","","Heading"],link:["[","](https://)","link text"],code:["```\n","\n```","code"],math:["$","$","E=mc^2"],mindmapBlock:[`\`\`\`mindmap
9
+ `);this.view.dispatch({changes:{from:o,to:c,insert:d},selection:{anchor:o+e.length}})}this.view.focus()}focus(){this.view.focus()}insertMention(){this.mention||console.warn("[md-editor] Mention dropdown is disabled. Pass `mention: { onMentionSearch }` in the editor options to enable it."),this.insertAtCursor("@")}insertDocLink(){this.docLink||console.warn("[md-editor] Document link dropdown is disabled. Pass `docLink: { onDocSearch }` in the editor options to enable it."),this.insertAtCursor("/")}toggleTaskList(){const{from:e,to:t}=this.view.state.selection.main,i=this.view.state.doc.lineAt(e),r=this.view.state.doc.lineAt(t),a=[];for(let p=i.number;p<=r.number;p++)a.push(this.view.state.doc.line(p).text);const s=/^- \[\s*(?:[xX])?\s*\](\s|$)/,o=/^- \[\s*\](\s|$)/,c=a.every(p=>s.test(p)),l=a.every(p=>o.test(p)),u=a.map(p=>c?l?p.replace(/^- \[\s*\](\s?)/,"- [x]$1"):p.replace(/^- \[\s*[xX]\s*\](\s?)/,"- [ ]$1"):/^-(\s|$)/.test(p)?p.replace(/^-(\s?)/,"- [ ]$1"):`- [ ] ${p}`).join(`
10
+ `);this.view.dispatch({changes:{from:i.from,to:r.to,insert:u},selection:{anchor:i.from,head:i.from+u.length}}),this.view.focus()}destroy(){var e,t;this.destroyed=!0,this.blurTimeout!==null&&(window.clearTimeout(this.blurTimeout),this.blurTimeout=null),(e=this.mention)==null||e.destroy(),(t=this.docLink)==null||t.destroy(),this.view.destroy()}}const Tn=/^\$([^$\n]+?)\$/;function An(n){return/^[\d.,]+$/.test(n.trim())}function xn(n){n.block.ruler.before("fence","math_block",(e,t,i,r)=>{const a=e.src.slice(e.bMarks[t],e.eMarks[t]);if(!a.startsWith("$$"))return!1;const s=a.match(/^\$\$(.+?)\$\$\s*$/);if(s){if(r)return!0;const u=e.push("math_block","div",0);return u.content=s[1].trim(),u.markup="$$",e.line=t+1,!0}let o=t+1,c=!1;for(;o<e.lineMax;){if(e.src.slice(e.bMarks[o],e.eMarks[o]).trimEnd().endsWith("$$")){c=!0;break}o++}if(!c)return!1;if(r)return!0;const l=e.src.slice(e.bMarks[t]+2,e.eMarks[o]-2).trim(),d=e.push("math_block","div",0);return d.content=l,d.markup="$$",e.line=o+1,!0}),n.renderer.rules.math_block=(e,t)=>{var r;const i=((r=e[t])==null?void 0:r.content)??"";try{return`<div class="md-editor-math-block">${We.renderToString(i,{displayMode:!0,throwOnError:!1,strict:!1})}</div>`}catch{return`<div class="md-editor-math-block md-editor-math-error">${Xe(i)}</div>`}},n.inline.ruler.after("escape","math_inline",(e,t)=>{if(e.src[e.pos]!=="$"||e.src[e.pos+1]==="$")return!1;const i=e.src.slice(e.pos).match(Tn);if(!i)return!1;const r=i[1]??"";if(An(r))return!1;if(t)return!0;const a=e.push("math_inline","span",0);return a.content=r,a.markup="$",e.pos+=i[0].length,!0}),n.renderer.rules.math_inline=(e,t)=>{var r;const i=((r=e[t])==null?void 0:r.content)??"";try{return We.renderToString(i,{displayMode:!1,throwOnError:!1,strict:!1})}catch{return`<span class="md-editor-math-error">$${Xe(i)}$</span>`}}}function Xe(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}typeof globalThis.ResizeObserver>"u"&&(globalThis.ResizeObserver=class{observe(){}unobserve(){}disconnect(){}});let Qe=0;function Cn(n){n.block.ruler.before("fence","mindmap_fence",(t,i,r,a)=>{const s=t.bMarks[i]+t.tShift[i],o=t.eMarks[i],l=t.src.slice(s,o).match(/^(`{3,})\s*mindmap\s*$/i);if(!l)return!1;if(a)return!0;const d=l[1].length;let u=i+1,p=1;for(;u<r;){const E=t.bMarks[u]+t.tShift[u],S=t.eMarks[u],I=t.src.slice(E,S).match(/^(`{3,})\s*(.*)$/);if(I&&I[1].length>=d){if(I[2].trim())p++;else if(p--,p===0)break}u++}const m=u<r?u:r-1,b=t.push("mindmap_block","div",0);return b.content=t.getLines(i+1,m,t.blkIndent,!0),b.map=[i,m+1],b.markup=l[1],b.info="mindmap",t.line=m+1,!0}),n.renderer.rules.mindmap_block=(t,i)=>{const r=t[i];if(!r)return"";const a=`md-editor-mindmap-${++Qe}`,s=encodeURIComponent(r.content);return`<div class="md-editor-mindmap" id="${a}" data-source="${s}"></div>`};const e=n.renderer.rules.fence?n.renderer.rules.fence.bind(n.renderer.rules):(t,i,r,a,s)=>s.renderToken(t,i,r);n.renderer.rules.fence=(t,i,r,a,s)=>{const o=t[i];if(!o)return e(t,i,r,a,s);if(o.info.trim().toLowerCase()==="mindmap"){const l=`md-editor-mindmap-${++Qe}`,d=encodeURIComponent(o.content);return`<div class="md-editor-mindmap" id="${l}" data-source="${d}"></div>`}return e(t,i,r,a,s)}}const Mn=600,Rn=320;async function On(n){const e=n.querySelectorAll(".md-editor-mindmap:not([data-hydrated])");if(e.length===0)return;let t,i;try{t=(await import("markmap-lib")).Transformer;const s=await import("markmap-view");i=s.Markmap??s.default}catch{return}if(!i||!t)return;const r=new t;for(const a of Array.from(e))try{a.setAttribute("data-hydrated","1");const s=decodeURIComponent(a.dataset.source??"")||"- Empty mindmap",{root:o}=r.transform(s);a.innerHTML="";const c=a.clientWidth>0?a.clientWidth:Mn,l=a.clientHeight>0?a.clientHeight:Rn,d=document.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("width",String(c)),d.setAttribute("height",String(l)),d.style.width="100%",d.style.height="100%",d.style.display="block",a.appendChild(d);const u=i.create(d,{autoFit:!1},o),p=()=>{try{const b=d.querySelector("g");if(b){const E=b.getAttribute("transform")||"";(!E||E.includes("NaN"))&&b.setAttribute("transform",`translate(40, ${l/2}) scale(1)`)}}catch{}};p(),(typeof requestAnimationFrame=="function"?requestAnimationFrame:b=>setTimeout(b,16))(()=>{var b;try{if(!a.isConnected)return;const E=d.getBoundingClientRect();E.width>0&&E.height>0&&((b=u.fit)==null||b.call(u),p())}catch{}})}catch{a.removeAttribute("data-hydrated")}}function In(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function dt(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(e=>{const t=n[e],i=typeof t;(i==="object"||i==="function")&&!Object.isFrozen(t)&&dt(t)}),n}class Je{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function ut(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function ee(n,...e){const t=Object.create(null);for(const i in n)t[i]=n[i];return e.forEach(function(i){for(const r in i)t[r]=i[r]}),t}const Ln="</span>",je=n=>!!n.scope,Dn=(n,{prefix:e})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const t=n.split(".");return[`${e}${t.shift()}`,...t.map((i,r)=>`${i}${"_".repeat(r+1)}`)].join(" ")}return`${e}${n}`};class Pn{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=ut(e)}openNode(e){if(!je(e))return;const t=Dn(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){je(e)&&(this.buffer+=Ln)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}const et=(n={})=>{const e={children:[]};return Object.assign(e,n),e};class Ie{constructor(){this.rootNode=et(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=et({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(i=>this._walk(e,i)),e.closeNode(t)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(t=>typeof t=="string")?e.children=[e.children.join("")]:e.children.forEach(t=>{Ie._collapse(t)}))}}class Bn extends Ie{constructor(e){super(),this.options=e}addText(e){e!==""&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const i=e.root;t&&(i.scope=`language:${t}`),this.add(i)}toHTML(){return new Pn(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function he(n){return n?typeof n=="string"?n:n.source:null}function ht(n){return re("(?=",n,")")}function $n(n){return re("(?:",n,")*")}function Un(n){return re("(?:",n,")?")}function re(...n){return n.map(t=>he(t)).join("")}function Hn(n){const e=n[n.length-1];return typeof e=="object"&&e.constructor===Object?(n.splice(n.length-1,1),e):{}}function ke(...n){return"("+(Hn(n).capture?"":"?:")+n.map(i=>he(i)).join("|")+")"}function pt(n){return new RegExp(n.toString()+"|").exec("").length-1}function Fn(n,e){const t=n&&n.exec(e);return t&&t.index===0}const zn=new RegExp(ke(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function Le(n,{joinWith:e}){let t=0;return n.map(i=>{t+=1;const r=t;let a=he(i),s="";for(;a.length>0;){const o=zn.exec(a);if(!o){s+=a;break}s+=a.substring(0,o.index),a=a.substring(o.index+o[0].length),o[0][0]==="\\"&&o[1]?s+="\\"+String(Number(o[1])+r):(s+=o[0],(o[0]==="("||/^\(\?[<']/.test(o[0]))&&t++)}return s}).map(i=>`(${i})`).join(e)}const Kn=/\b\B/,gt="[a-zA-Z]\\w*",De="[a-zA-Z_]\\w*",mt="\\b\\d+(\\.\\d+)?",ft="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",bt="\\b(0b[01]+)",qn="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Gn=(n={})=>{const e=/^#![ ]*\//;return n.binary&&(n.begin=re(e,/.*\b/,n.binary,/\b.*/)),ee({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,i)=>{t.index!==0&&i.ignoreMatch()}},n)},pe={begin:"\\\\[\\s\\S]",relevance:0},Wn={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[pe]},Yn={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[pe]},Zn={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Ne=function(n,e,t={}){const i=ee({scope:"comment",begin:n,end:e,contains:[]},t);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const r=ke("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:re(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},Vn=Ne("//","$"),Xn=Ne("/\\*","\\*/"),Qn=Ne("#","$"),Jn={scope:"number",begin:mt,relevance:0},jn={scope:"number",begin:ft,relevance:0},ei={scope:"number",begin:bt,relevance:0},ti={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[pe,{begin:/\[/,end:/\]/,relevance:0,contains:[pe]}]},ni={scope:"title",begin:gt,relevance:0},ii={scope:"title",begin:De,relevance:0},ri={begin:"\\.\\s*"+De,relevance:0},si=function(n){return Object.assign(n,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var be=Object.freeze({__proto__:null,APOS_STRING_MODE:Wn,BACKSLASH_ESCAPE:pe,BINARY_NUMBER_MODE:ei,BINARY_NUMBER_RE:bt,COMMENT:Ne,C_BLOCK_COMMENT_MODE:Xn,C_LINE_COMMENT_MODE:Vn,C_NUMBER_MODE:jn,C_NUMBER_RE:ft,END_SAME_AS_BEGIN:si,HASH_COMMENT_MODE:Qn,IDENT_RE:gt,MATCH_NOTHING_RE:Kn,METHOD_GUARD:ri,NUMBER_MODE:Jn,NUMBER_RE:mt,PHRASAL_WORDS_MODE:Zn,QUOTE_STRING_MODE:Yn,REGEXP_MODE:ti,RE_STARTERS_RE:qn,SHEBANG:Gn,TITLE_MODE:ni,UNDERSCORE_IDENT_RE:De,UNDERSCORE_TITLE_MODE:ii});function oi(n,e){n.input[n.index-1]==="."&&e.ignoreMatch()}function ai(n,e){n.className!==void 0&&(n.scope=n.className,delete n.className)}function ci(n,e){e&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=oi,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function li(n,e){Array.isArray(n.illegal)&&(n.illegal=ke(...n.illegal))}function di(n,e){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function ui(n,e){n.relevance===void 0&&(n.relevance=1)}const hi=(n,e)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},n);Object.keys(n).forEach(i=>{delete n[i]}),n.keywords=t.keywords,n.begin=re(t.beforeMatch,ht(t.begin)),n.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},n.relevance=0,delete t.beforeMatch},pi=["of","and","for","in","not","or","if","then","parent","list","value"],gi="keyword";function _t(n,e,t=gi){const i=Object.create(null);return typeof n=="string"?r(t,n.split(" ")):Array.isArray(n)?r(t,n):Object.keys(n).forEach(function(a){Object.assign(i,_t(n[a],e,a))}),i;function r(a,s){e&&(s=s.map(o=>o.toLowerCase())),s.forEach(function(o){const c=o.split("|");i[c[0]]=[a,mi(c[0],c[1])]})}}function mi(n,e){return e?Number(e):fi(n)?0:1}function fi(n){return pi.includes(n.toLowerCase())}const tt={},ie=n=>{console.error(n)},nt=(n,...e)=>{console.log(`WARN: ${n}`,...e)},se=(n,e)=>{tt[`${n}/${e}`]||(console.log(`Deprecated as of ${n}. ${e}`),tt[`${n}/${e}`]=!0)},ye=new Error;function Et(n,e,{key:t}){let i=0;const r=n[t],a={},s={};for(let o=1;o<=e.length;o++)s[o+i]=r[o],a[o+i]=!0,i+=pt(e[o-1]);n[t]=s,n[t]._emit=a,n[t]._multi=!0}function bi(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw ie("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ye;if(typeof n.beginScope!="object"||n.beginScope===null)throw ie("beginScope must be object"),ye;Et(n,n.begin,{key:"beginScope"}),n.begin=Le(n.begin,{joinWith:""})}}function _i(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw ie("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ye;if(typeof n.endScope!="object"||n.endScope===null)throw ie("endScope must be object"),ye;Et(n,n.end,{key:"endScope"}),n.end=Le(n.end,{joinWith:""})}}function Ei(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function yi(n){Ei(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),bi(n),_i(n)}function wi(n){function e(s,o){return new RegExp(he(s),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(o?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(o,c){c.position=this.position++,this.matchIndexes[this.matchAt]=c,this.regexes.push([c,o]),this.matchAt+=pt(o)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const o=this.regexes.map(c=>c[1]);this.matcherRe=e(Le(o,{joinWith:"|"}),!0),this.lastIndex=0}exec(o){this.matcherRe.lastIndex=this.lastIndex;const c=this.matcherRe.exec(o);if(!c)return null;const l=c.findIndex((u,p)=>p>0&&u!==void 0),d=this.matchIndexes[l];return c.splice(0,l),Object.assign(c,d)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(o){if(this.multiRegexes[o])return this.multiRegexes[o];const c=new t;return this.rules.slice(o).forEach(([l,d])=>c.addRule(l,d)),c.compile(),this.multiRegexes[o]=c,c}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(o,c){this.rules.push([o,c]),c.type==="begin"&&this.count++}exec(o){const c=this.getMatcher(this.regexIndex);c.lastIndex=this.lastIndex;let l=c.exec(o);if(this.resumingScanAtSamePosition()&&!(l&&l.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,l=d.exec(o)}return l&&(this.regexIndex+=l.position+1,this.regexIndex===this.count&&this.considerAll()),l}}function r(s){const o=new i;return s.contains.forEach(c=>o.addRule(c.begin,{rule:c,type:"begin"})),s.terminatorEnd&&o.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&o.addRule(s.illegal,{type:"illegal"}),o}function a(s,o){const c=s;if(s.isCompiled)return c;[ai,di,yi,hi].forEach(d=>d(s,o)),n.compilerExtensions.forEach(d=>d(s,o)),s.__beforeBegin=null,[ci,li,ui].forEach(d=>d(s,o)),s.isCompiled=!0;let l=null;return typeof s.keywords=="object"&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),l=s.keywords.$pattern,delete s.keywords.$pattern),l=l||/\w+/,s.keywords&&(s.keywords=_t(s.keywords,n.case_insensitive)),c.keywordPatternRe=e(l,!0),o&&(s.begin||(s.begin=/\B|\b/),c.beginRe=e(c.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(c.endRe=e(c.end)),c.terminatorEnd=he(c.end)||"",s.endsWithParent&&o.terminatorEnd&&(c.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)),s.illegal&&(c.illegalRe=e(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(d){return vi(d==="self"?s:d)})),s.contains.forEach(function(d){a(d,c)}),s.starts&&a(s.starts,o),c.matcher=r(c),c}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=ee(n.classNameAliases||{}),a(n)}function yt(n){return n?n.endsWithParent||yt(n.starts):!1}function vi(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return ee(n,{variants:null},e)})),n.cachedVariants?n.cachedVariants:yt(n)?ee(n,{starts:n.starts?ee(n.starts):null}):Object.isFrozen(n)?ee(n):n}var ki="11.12.0";class Ni extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const Me=ut,it=ee,rt=Symbol("nomatch"),Si=7,wt=function(n){const e=Object.create(null),t=Object.create(null),i=[];let r=!0;const a="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let o={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Bn};function c(h){return o.noHighlightRe.test(h)}function l(h){let _=h.className+" ";_+=h.parentNode?h.parentNode.className:"";const f=o.languageDetectRe.exec(_);if(f){const k=U(f[1]);return k||(nt(a.replace("{}",f[1])),nt("Falling back to no-highlight mode for this block.",h)),k?f[1]:"no-highlight"}return _.split(/\s+/).find(k=>c(k)||U(k))}function d(h,_,f){let k="",T="";typeof _=="object"?(k=h,f=_.ignoreIllegals,T=_.language):(se("10.7.0","highlight(lang, code, ...args) has been deprecated."),se("10.7.0",`Please use highlight(code, options) instead.
11
+ https://github.com/highlightjs/highlight.js/issues/2277`),T=h,k=_),f===void 0&&(f=!0);const B={code:k,language:T};J("before:highlight",B);const K=B.result?B.result:u(B.language,B.code,f);return K.code=B.code,J("after:highlight",K),K}function u(h,_,f,k){const T=Object.create(null);function B(g,y){return g.keywords[y]}function K(){if(!v.keywords){z.addText(R);return}let g=0;v.keywordPatternRe.lastIndex=0;let y=v.keywordPatternRe.exec(R),N="";for(;y;){N+=R.substring(g,y.index);const C=Z.case_insensitive?y[0].toLowerCase():y[0],q=B(v,C);if(q){const[V,rn]=q;if(z.addText(N),N="",T[C]=(T[C]||0)+1,T[C]<=Si&&(me+=rn),V.startsWith("_"))N+=y[0];else{const sn=Z.classNameAliases[V]||V;Y(y[0],sn)}}else N+=y[0];g=v.keywordPatternRe.lastIndex,y=v.keywordPatternRe.exec(R)}N+=R.substring(g),z.addText(N)}function W(){if(R==="")return;let g=null;if(typeof v.subLanguage=="string"){if(!e[v.subLanguage]){z.addText(R);return}g=u(v.subLanguage,R,!0,Ke[v.subLanguage]),Ke[v.subLanguage]=g._top}else g=m(R,v.subLanguage.length?v.subLanguage:null);v.relevance>0&&(me+=g.relevance),z.__addSublanguage(g._emitter,g.language)}function G(){v.subLanguage!=null?W():K(),R=""}function Y(g,y){g!==""&&(z.startScope(y),z.addText(g),z.endScope())}function Ue(g,y){let N=1;const C=y.length-1;for(;N<=C;){if(!g._emit[N]){N++;continue}const q=Z.classNameAliases[g[N]]||g[N],V=y[N];q?Y(V,q):(R=V,K(),R=""),N++}}function He(g,y){return g.scope&&typeof g.scope=="string"&&z.openNode(Z.classNameAliases[g.scope]||g.scope),g.beginScope&&(g.beginScope._wrap?(Y(R,Z.classNameAliases[g.beginScope._wrap]||g.beginScope._wrap),R=""):g.beginScope._multi&&(Ue(g.beginScope,y),R="")),v=Object.create(g,{parent:{value:v}}),v}function Fe(g,y,N){let C=Fn(g.endRe,N);if(C){if(g["on:end"]){const q=new Je(g);g["on:end"](y,q),q.isMatchIgnored&&(C=!1)}if(C){for(;g.endsParent&&g.parent;)g=g.parent;return g}}if(g.endsWithParent)return Fe(g.parent,y,N)}function Jt(g){return v.matcher.regexIndex===0?(R+=g[0],1):(Ae=!0,0)}function jt(g){const y=g[0],N=g.rule,C=new Je(N),q=[N.__beforeBegin,N["on:begin"]];for(const V of q)if(V&&(V(g,C),C.isMatchIgnored))return Jt(y);return N.skip?R+=y:(N.excludeBegin&&(R+=y),G(),!N.returnBegin&&!N.excludeBegin&&(R=y)),He(N,g),N.returnBegin?0:y.length}function en(g){const y=g[0],N=_.substring(g.index),C=Fe(v,g,N);if(!C)return rt;const q=v;v.endScope&&v.endScope._wrap?(G(),Y(y,v.endScope._wrap)):v.endScope&&v.endScope._multi?(G(),Ue(v.endScope,g)):q.skip?R+=y:(q.returnEnd||q.excludeEnd||(R+=y),G(),q.excludeEnd&&(R=y));do v.scope&&z.closeNode(),!v.skip&&!v.subLanguage&&(me+=v.relevance),v=v.parent;while(v!==C.parent);return C.starts&&He(C.starts,g),q.returnEnd?0:y.length}function tn(){const g=[];for(let y=v;y!==Z;y=y.parent)y.scope&&g.unshift(y.scope);g.forEach(y=>z.openNode(y))}let ge={};function ze(g,y){const N=y&&y[0];if(R+=g,N==null)return G(),0;if(ge.type==="begin"&&y.type==="end"&&ge.index===y.index&&N===""){if(R+=_.slice(y.index,y.index+1),!r){const C=new Error(`0 width match regex (${h})`);throw C.languageName=h,C.badRule=ge.rule,C}return 1}if(ge=y,y.type==="begin")return jt(y);if(y.type==="illegal"&&!f){const C=new Error('Illegal lexeme "'+N+'" for mode "'+(v.scope||"<unnamed>")+'"');throw C.mode=v,C}else if(y.type==="end"){const C=en(y);if(C!==rt)return C}if(y.type==="illegal"&&N==="")return y.index===_.length||(R+=`
12
+ `),1;if(Te>1e5&&Te>y.index*3)throw new Error("potential infinite loop, way more iterations than matches");return R+=N,N.length}const Z=U(h);if(!Z)throw ie(a.replace("{}",h)),new Error('Unknown language: "'+h+'"');const nn=wi(Z);let Se="",v=k||nn;const Ke={},z=new o.__emitter(o);tn();let R="",me=0,ne=0,Te=0,Ae=!1;try{if(Z.__emitTokens)Z.__emitTokens(_,z);else{for(v.matcher.considerAll();;){Te++,Ae?Ae=!1:v.matcher.considerAll(),v.matcher.lastIndex=ne;const g=v.matcher.exec(_);if(!g)break;const y=_.substring(ne,g.index),N=ze(y,g);ne=g.index+N}ze(_.substring(ne))}return z.finalize(),Se=z.toHTML(),{language:h,value:Se,relevance:me,illegal:!1,_emitter:z,_top:v}}catch(g){if(g.message&&g.message.includes("Illegal"))return{language:h,value:Me(_),illegal:!0,relevance:0,_illegalBy:{message:g.message,index:ne,context:_.slice(ne-100,ne+100),mode:g.mode,resultSoFar:Se},_emitter:z};if(r)return{language:h,value:Me(_),illegal:!1,relevance:0,errorRaised:g,_emitter:z,_top:v};throw g}}function p(h){const _={value:Me(h),illegal:!1,relevance:0,_top:s,_emitter:new o.__emitter(o)};return _._emitter.addText(h),_}function m(h,_){_=_||o.languages||Object.keys(e);const f=p(h),k=_.filter(U).filter(Q).map(G=>u(G,h,!1));k.unshift(f);const T=k.sort((G,Y)=>{if(G.relevance!==Y.relevance)return Y.relevance-G.relevance;if(G.language&&Y.language){if(U(G.language).supersetOf===Y.language)return 1;if(U(Y.language).supersetOf===G.language)return-1}return 0}),[B,K]=T,W=B;return W.secondBest=K,W}function b(h,_,f){const k=_&&t[_]||f;h.classList.add("hljs"),h.classList.add(`language-${k}`)}function E(h){let _=null;const f=l(h);if(c(f))return;if(J("before:highlightElement",{el:h,language:f}),h.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",h);return}if(h.children.length>0&&(o.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(h)),o.throwUnescapedHTML))throw new Ni("One of your code blocks includes unescaped HTML.",h.innerHTML);_=h;const k=_.textContent,T=f?d(k,{language:f,ignoreIllegals:!0}):m(k);h.innerHTML=T.value,h.dataset.highlighted="yes",b(h,f,T.language),h.result={language:T.language,re:T.relevance,relevance:T.relevance},T.secondBest&&(h.secondBest={language:T.secondBest.language,relevance:T.secondBest.relevance}),J("after:highlightElement",{el:h,result:T,text:k})}function S(h){o=it(o,h)}const A=()=>{M(),se("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function I(){M(),se("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let H=!1;function M(){function h(){M()}if(document.readyState==="loading"){H||window.addEventListener("DOMContentLoaded",h,!1),H=!0;return}document.querySelectorAll(o.cssSelector).forEach(E)}function L(h,_){let f=null;try{f=_(n)}catch(k){if(ie("Language definition for '{}' could not be registered.".replace("{}",h)),r)ie(k);else throw k;f=s}f.name||(f.name=h),e[h]=f,f.rawDefinition=_.bind(null,n),f.aliases&&F(f.aliases,{languageName:h})}function P(h){delete e[h];for(const _ of Object.keys(t))t[_]===h&&delete t[_]}function $(){return Object.keys(e)}function U(h){return h=(h||"").toLowerCase(),e[h]||e[t[h]]}function F(h,{languageName:_}){typeof h=="string"&&(h=[h]),h.forEach(f=>{t[f.toLowerCase()]=_})}function Q(h){const _=U(h);return _&&!_.disableAutodetect}function te(h){h["before:highlightBlock"]&&!h["before:highlightElement"]&&(h["before:highlightElement"]=_=>{h["before:highlightBlock"](Object.assign({block:_.el},_))}),h["after:highlightBlock"]&&!h["after:highlightElement"]&&(h["after:highlightElement"]=_=>{h["after:highlightBlock"](Object.assign({block:_.el},_))})}function ce(h){te(h),i.push(h)}function le(h){const _=i.indexOf(h);_!==-1&&i.splice(_,1)}function J(h,_){const f=h;i.forEach(function(k){k[f]&&k[f](_)})}function de(h){return se("10.7.0","highlightBlock will be removed entirely in v12.0"),se("10.7.0","Please use highlightElement now."),E(h)}Object.assign(n,{highlight:d,highlightAuto:m,highlightAll:M,highlightElement:E,highlightBlock:de,configure:S,initHighlighting:A,initHighlightingOnLoad:I,registerLanguage:L,unregisterLanguage:P,listLanguages:$,getLanguage:U,registerAliases:F,autoDetection:Q,inherit:it,addPlugin:ce,removePlugin:le}),n.debugMode=function(){r=!1},n.safeMode=function(){r=!0},n.versionString=ki,n.regex={concat:re,lookahead:ht,either:ke,optional:Un,anyNumberOfTimes:$n};for(const h in be)typeof be[h]=="object"&&dt(be[h]);return Object.assign(n,be),n},ae=wt({});ae.newInstance=()=>wt({});var Ti=ae;ae.HighlightJS=ae;ae.default=ae;const x=In(Ti),st="[A-Za-z$_][0-9A-Za-z$_]*",Ai=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],xi=["true","false","null","undefined","NaN","Infinity"],vt=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],kt=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Nt=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ci=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Mi=[].concat(Nt,vt,kt);function St(n){const e=n.regex,t=(f,{after:k})=>{const T="</"+f[0].slice(1);return f.input.indexOf(T,k)!==-1},i=st,r={begin:"<>",end:"</>"},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(f,k)=>{const T=f[0].length+f.index,B=f.input[T];if(B==="<"||B===","){k.ignoreMatch();return}B===">"&&(t(f,{after:T})||k.ignoreMatch());let K;const W=f.input.substring(T);if(K=W.match(/^\s*=/)){k.ignoreMatch();return}if((K=W.match(/^\s+extends\s+/))&&K.index===0){k.ignoreMatch();return}}},o={$pattern:st,keyword:Ai,literal:xi,built_in:Mi,"variable.language":Ci},c="[0-9](_?[0-9])*",l=`\\.(${c})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${l})|\\.)?|(${l}))[eE][+-]?(${c})\\b`},{begin:`\\b(${d})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},p={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},m={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"xml"}},b={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"css"}},E={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,p]},I={className:"comment",variants:[n.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},H=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,b,E,S,{match:/\$\d+/},u];p.contains=H.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(H)});const M=[].concat(I,p.contains),L=M.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(M)}]),P={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:L},$={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,e.concat(i,"(",e.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},U={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...vt,...kt]}},F={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},Q={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[P],illegal:/%/},te={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ce(f){return e.concat("(?!",f.join("|"),")")}const le={match:e.concat(/\b/,ce([...Nt,"super","import","await"].map(f=>`${f}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},J={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},de={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},P]},h="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",_={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(h)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[P]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:L,CLASS_REFERENCE:U},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),F,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,b,E,S,I,{match:/\$\d+/},u,U,{scope:"attr",match:i+e.lookahead(":"),relevance:0},_,{begin:"("+n.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[I,n.REGEXP_MODE,{className:"function",begin:h,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:L}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:a},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},Q,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[P,n.inherit(n.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},J,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[P]},le,te,$,de,{match:/\$[(.]/}]}}const we="[A-Za-z$_][0-9A-Za-z$_]*",Tt=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],At=["true","false","null","undefined","NaN","Infinity"],xt=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Ct=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Mt=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Rt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Ot=[].concat(Mt,xt,Ct);function Ri(n){const e=n.regex,t=(f,{after:k})=>{const T="</"+f[0].slice(1);return f.input.indexOf(T,k)!==-1},i=we,r={begin:"<>",end:"</>"},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(f,k)=>{const T=f[0].length+f.index,B=f.input[T];if(B==="<"||B===","){k.ignoreMatch();return}B===">"&&(t(f,{after:T})||k.ignoreMatch());let K;const W=f.input.substring(T);if(K=W.match(/^\s*=/)){k.ignoreMatch();return}if((K=W.match(/^\s+extends\s+/))&&K.index===0){k.ignoreMatch();return}}},o={$pattern:we,keyword:Tt,literal:At,built_in:Ot,"variable.language":Rt},c="[0-9](_?[0-9])*",l=`\\.(${c})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${l})|\\.)?|(${l}))[eE][+-]?(${c})\\b`},{begin:`\\b(${d})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},p={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},m={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"xml"}},b={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"css"}},E={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,p]},I={className:"comment",variants:[n.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},H=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,b,E,S,{match:/\$\d+/},u];p.contains=H.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(H)});const M=[].concat(I,p.contains),L=M.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(M)}]),P={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:L},$={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,e.concat(i,"(",e.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},U={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...xt,...Ct]}},F={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},Q={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[P],illegal:/%/},te={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ce(f){return e.concat("(?!",f.join("|"),")")}const le={match:e.concat(/\b/,ce([...Mt,"super","import","await"].map(f=>`${f}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},J={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},de={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},P]},h="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",_={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(h)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[P]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:L,CLASS_REFERENCE:U},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),F,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,b,E,S,I,{match:/\$\d+/},u,U,{scope:"attr",match:i+e.lookahead(":"),relevance:0},_,{begin:"("+n.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[I,n.REGEXP_MODE,{className:"function",begin:h,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:L}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:a},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},Q,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[P,n.inherit(n.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},J,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[P]},le,te,$,de,{match:/\$[(.]/}]}}function It(n){const e=n.regex,t=Ri(n),i=we,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],a={begin:[/namespace/,/\s+/,n.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[t.exports.CLASS_REFERENCE]},o={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},c=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],l={$pattern:we,keyword:Tt.concat(c),literal:At,built_in:Ot.concat(r),"variable.language":Rt},d={className:"meta",begin:"@"+i},u=(E,S,A)=>{const I=E.contains.findIndex(H=>H.label===S);if(I===-1)throw new Error("can not find mode to replace");E.contains.splice(I,1,A)};Object.assign(t.keywords,l),t.exports.PARAMS_CONTAINS.push(d);const p=t.contains.find(E=>E.scope==="attr"),m=Object.assign({},p,{match:e.concat(i,e.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,p,m]),t.contains=t.contains.concat([d,a,s,m]),u(t,"shebang",n.SHEBANG()),u(t,"use_strict",o);const b=t.contains.find(E=>E.label==="func.def");return b.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}function Lt(n){const e=n.regex,t=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","lazy","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],o={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:["__import__","abs","aiter","all","anext","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozendict","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","sentinel","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},c={className:"meta",begin:/^(>>>|\.\.\.) /},l={className:"subst",begin:/\{/,end:/\}/,keywords:o,illegal:/#/},d={begin:/\{\{/,relevance:0},u={className:"string",contains:[n.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,c],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,c],relevance:10},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,c,d,l]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,c,d,l]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'/,end:/'/,contains:[n.BACKSLASH_ESCAPE,d,l]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,d,l]},n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},p="[0-9](_?[0-9])*",m=`(\\b(${p}))?\\.(${p})|\\b(${p})\\.`,b=`\\b|${i.join("|")}`,E={className:"number",relevance:0,variants:[{begin:`(\\b(${p})|(${m}))[eE][+-]?(${p})[jJ]?(?=${b})`},{begin:`(${m})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${b})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${b})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${b})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${b})`},{begin:`\\b(${p})[jJ](?=${b})`}]},S={className:"comment",begin:e.lookahead(/# type:/),end:/$/,keywords:o,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},A={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:["self",c,E,u,n.HASH_COMMENT_MODE]}]};return l.contains=[u,E,c],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:o,illegal:/(<\/|\?)|=>/,contains:[c,E,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},u,S,n.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[A]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[E,A,u]}]}}const Oi="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",Ii={scope:"number",match:Oi,relevance:0};function Li(n){const e={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:"punctuation",relevance:0},i=["true","false","null"],r={scope:"literal",beginKeywords:i.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:i},contains:[e,t,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,r,Ii,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function Pe(n){const e=n.regex,t={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:e.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const r={className:"subst",begin:/\$\(/,end:/\)/,contains:[n.BACKSLASH_ESCAPE]},a=n.inherit(n.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,t,r]};r.contains.push(o);const c={match:/\\"/},l={className:"string",begin:/'/,end:/'/},d={match:/\\'/},u={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},n.NUMBER_MODE,t]},p=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],m=n.SHEBANG({binary:`(${p.join("|")})`,relevance:10}),b={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[n.inherit(n.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},E=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],S=["true","false"],A={match:/(\/[a-z._-]+)+/},I=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],H=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],M=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],L=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:E,literal:S,built_in:[...I,...H,"set","shopt",...M,...L]},contains:[m,n.SHEBANG(),b,u,a,s,A,o,c,l,d,t]}}const Di=n=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:n.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:n.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Pi=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Bi=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],$i=[...Pi,...Bi],Ui=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Hi=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Fi=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),zi=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Ki(n){const e=n.regex,t=Di(n),i={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",a=/@-?\w[\w]*(-\w+)*/,s="[a-zA-Z-][a-zA-Z0-9_-]*",o=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[t.BLOCK_COMMENT,i,t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+s,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Hi.join("|")+")"},{begin:":(:)?("+Fi.join("|")+")"}]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+zi.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,t.UNICODE_RANGE,...o,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...o,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:a},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:Ui.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,t.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+$i.join("|")+")\\b"}]}}function Be(n){const e=n.regex,t=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),i=/[\p{L}0-9._:-]+/u,r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=n.inherit(a,{begin:/\(/,end:/\)/}),o=n.inherit(n.APOS_STRING_MODE,{className:"string"}),c=n.inherit(n.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:i,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[r]},{begin:/'/,end:/'/,contains:[r]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[a,c,o,s,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[a,s,c,o]}]}]},n.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:"javascript"}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:e.concat(/</,e.lookahead(e.concat(t,e.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{className:"tag",begin:e.concat(/<\//,e.lookahead(e.concat(t,/>/))),contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function qi(n){const e=n.regex,t=n.COMMENT("--","$"),i={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},a=["true","false","unknown"],s=["double precision","large object","with timezone","without timezone"],o=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],c=["add","asc","collation","desc","final","first","last","view"],l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],d=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],u=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],p=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],m=d,b=[...l,...c].filter(L=>!d.includes(L)),E={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},S={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},A={match:e.concat(/\b/,e.either(...m),/\s*\(/),relevance:0,keywords:{built_in:m}};function I(L){return e.concat(/\b/,e.either(...L.map(P=>P.replace(/\s+/,"\\s+"))),/\b/)}const H={scope:"keyword",match:I(p),relevance:0};function M(L,{exceptions:P,when:$}={}){const U=$;return P=P||[],L.map(F=>F.match(/\|\d+$/)||P.includes(F)?F:U(F)?`${F}|0`:F)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:M(b,{when:L=>L.length<3}),literal:a,type:o,built_in:u},contains:[{scope:"type",match:I(s)},H,A,E,i,r,n.C_NUMBER_MODE,n.C_BLOCK_COMMENT_MODE,t,S]}}function Dt(n){const e="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",i={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},a={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},s={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[n.BACKSLASH_ESCAPE,r]},o=n.inherit(s,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),p={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},m={end:",",endsWithParent:!0,excludeEnd:!0,keywords:e,relevance:0},b={begin:/\{/,end:/\}/,contains:[m],illegal:"\\n",relevance:0},E={begin:"\\[",end:"\\]",contains:[m],illegal:"\\n",relevance:0},S=[i,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t},{className:"meta",begin:"&"+n.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+n.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},n.HASH_COMMENT_MODE,{beginKeywords:e,keywords:{literal:e}},p,{className:"number",begin:n.C_NUMBER_RE+"\\b",relevance:0},b,E,a,s],A=[...S];return A.pop(),A.push(o),m.contains=A,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}function Pt(n){const e=n.regex,t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},a={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},s={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},o=/[A-Za-z][A-Za-z0-9+.-]*/,c={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,o,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},l={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},d={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},u=n.inherit(l,{contains:[]}),p=n.inherit(d,{contains:[]});l.contains.push(p),d.contains.push(u);let m=[t,c];return[l,d,u,p].forEach(A=>{A.contains=A.contains.concat(m)}),m=m.concat(l,d),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:m},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:m}]}]},t,a,i,l,d,{className:"quote",begin:"^>\\s+",contains:m,end:"$"},r,c,s,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function Gi(n){const a={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:a,illegal:"</",contains:[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,{className:"string",variants:[n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[n.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:a,illegal:/["']/}]}]}}function Bt(n){const e=n.regex,t=/(r#)?/,i=e.concat(t,n.UNDERSCORE_IDENT_RE),r=e.concat(t,n.IDENT_RE),a={scope:"title.function.invoke",relevance:0,begin:e.concat(/\b/,/(?!(?:let|for|while|if|else|match)\b)/,r,e.lookahead(/\s*\(/))},s="([ui](8|16|32|64|128|size)|f(16|32|64|128))?",o=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","raw","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],c=["true","false","Some","None","Ok","Err"],l=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],d=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f16","f32","f64","f128","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:n.IDENT_RE+"!?",type:d,keyword:o,literal:c,built_in:l},illegal:"</",contains:[n.C_LINE_COMMENT_MODE,n.COMMENT("/\\*","\\*/",{contains:["self"]}),n.inherit(n.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{scope:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|"|\\|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{scope:"number",variants:[{begin:"\\b0b([01_]+)"+s},{begin:"\\b0o([0-7_]+)"+s},{begin:"\\b0x([A-Fa-f0-9_]+)"+s},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+s}],relevance:0},{begin:[/\bsafe/,/\s+/,/extern/],scope:{1:"keyword",3:"keyword"}},{begin:[/fn/,/\s+/,i],scope:{1:"keyword",3:"title.function"}},{scope:"meta",begin:"#!?\\[",end:"\\]",contains:[{scope:"string",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,i],scope:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,i,/\s+/,/in/],scope:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,i],scope:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,i],scope:{1:"keyword",3:"title.class"}},{begin:n.IDENT_RE+"::",keywords:{keyword:"Self",built_in:l,type:d}},{scope:"punctuation",begin:"->"},a]}}var oe="[0-9](_*[0-9])*",_e=`\\.(${oe})`,Ee="[0-9a-fA-F](_*[0-9a-fA-F])*",ot={className:"number",variants:[{begin:`(\\b(${oe})((${_e})|\\.)?|(${_e}))[eE][+-]?(${oe})[fFdD]?\\b`},{begin:`\\b(${oe})((${_e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${_e})[fFdD]?\\b`},{begin:`\\b(${oe})[fFdD]\\b`},{begin:`\\b0[xX]((${Ee})\\.?|(${Ee})?\\.(${Ee}))[pP][+-]?(${oe})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ee})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function $t(n,e,t){return t===-1?"":n.replace(e,i=>$t(n,e,t-1))}function Wi(n){const e=n.regex,t="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",i="(?:(?:\\s*\\[\\s*])+)?",r=t+"<@@@>"+i,s="(?:"+("\\?(?:\\s+(?:extends|super)\\s+"+r+")?")+"|"+r+")",o=$t("(?:\\s*<\\s*"+s+"(?:\\s*,\\s*"+s+")*\\s*>)?",/<@@@>/g,2),p={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},m={className:"meta",begin:"@"+t,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},b={className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[n.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:p,illegal:/<\/|#/,contains:[n.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[n.BACKSLASH_ESCAPE]},n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{beginKeywords:"new throw return else yield assert",relevance:0},{begin:[t,e.concat(o,i,/\s+/),t,i,/\s*/,/=(?!=)/],className:{1:"type",3:"variable",6:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",3:"title.class"},contains:[b,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE]},{begin:[t,e.concat(o,i,/\s+/),t,/\s*(?=\()/],className:{1:"type",3:"title.function"},keywords:p,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[m,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,ot,n.C_BLOCK_COMMENT_MODE]},n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE]},ot,m]}}function Yi(n){const e=n.regex,t=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",s="("+i+"|"+e.optional(r)+"[a-zA-Z_]\\w*"+e.optional("<[^<>]+>")+")",o=e.concat(/\batomic_/,e.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/),c={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:o}]},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[n.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},n.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},u={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},p={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},d,{scope:"string",begin:/<.*?>/},t,n.C_BLOCK_COMMENT_MODE]},m={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},n.inherit(d,{className:"string"}),t,n.C_BLOCK_COMMENT_MODE]},b=[p,m],E={className:"title",begin:e.optional(r)+n.IDENT_RE,relevance:0},S=e.optional(r)+n.IDENT_RE+"\\s*\\(",A=12,M={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},L=[...b,c,t,n.C_BLOCK_COMMENT_MODE,u,d],P={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:M,contains:L.concat([{begin:/\(/,end:/\)/,keywords:M,contains:L.concat(["self"]),relevance:0}]),relevance:0},$={begin:"("+s+"[\\*&\\s]+){1,"+A+"}"+S,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:M,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:M,relevance:0},{begin:S,returnBegin:!0,contains:[n.inherit(E,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:M,relevance:0,contains:[t,n.C_BLOCK_COMMENT_MODE,d,u,c,{begin:/\(/,end:/\)/,keywords:M,relevance:0,contains:["self",t,n.C_BLOCK_COMMENT_MODE,d,u,c]}]},c,t,n.C_BLOCK_COMMENT_MODE,...b]};return{name:"C",aliases:["h"],keywords:M,disableAutodetect:!0,illegal:"</",contains:[].concat(P,$,L,[...b,{begin:n.IDENT_RE+"::",keywords:M},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{preprocessor:m,strings:d,keywords:M}}}function Ut(n){const e=n.regex,t=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",s="(?!struct)("+i+"|"+e.optional(r)+"[a-zA-Z_]\\w*"+e.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[n.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},n.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},l,{scope:"string",begin:/<.*?>/},t,n.C_BLOCK_COMMENT_MODE]},p={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},n.inherit(l,{className:"string"}),t,n.C_BLOCK_COMMENT_MODE]},m=[u,p],b={className:"title",begin:e.optional(r)+n.IDENT_RE,relevance:0},E=e.optional(r)+n.IDENT_RE+"\\s*\\(",S=12,A=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],I=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],H=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],M=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],$={type:I,keyword:A,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:H},U={className:"function.dispatch",relevance:0,keywords:{_hint:M},begin:e.concat(/\b/,`(?!${A.join("|")})`,n.IDENT_RE,e.lookahead(/(<[^<>]+>|)\s*\(/))},F=[U,...m,o,t,n.C_BLOCK_COMMENT_MODE,d,l],Q={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:$,contains:F.concat([{begin:/\(/,end:/\)/,keywords:$,contains:F.concat(["self"]),relevance:0}]),relevance:0},te={className:"function",begin:"("+s+"[\\*&\\s]+){1,"+S+"}"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:$,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:$,relevance:0},{begin:E,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:$,relevance:0,contains:[t,n.C_BLOCK_COMMENT_MODE,l,d,o,{begin:/\(/,end:/\)/,keywords:$,relevance:0,contains:["self",t,n.C_BLOCK_COMMENT_MODE,l,d,o]}]},o,t,n.C_BLOCK_COMMENT_MODE,...m]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:$,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(Q,te,U,F,[...m,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:$,contains:["self",o]},{begin:n.IDENT_RE+"::",keywords:$},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}x.registerLanguage("javascript",St);x.registerLanguage("js",St);x.registerLanguage("typescript",It);x.registerLanguage("ts",It);x.registerLanguage("python",Lt);x.registerLanguage("py",Lt);x.registerLanguage("json",Li);x.registerLanguage("bash",Pe);x.registerLanguage("sh",Pe);x.registerLanguage("shell",Pe);x.registerLanguage("css",Ki);x.registerLanguage("xml",Be);x.registerLanguage("html",Be);x.registerLanguage("svg",Be);x.registerLanguage("sql",qi);x.registerLanguage("yaml",Dt);x.registerLanguage("yml",Dt);x.registerLanguage("markdown",Pt);x.registerLanguage("md",Pt);x.registerLanguage("go",Gi);x.registerLanguage("rust",Bt);x.registerLanguage("rs",Bt);x.registerLanguage("java",Wi);x.registerLanguage("c",Yi);x.registerLanguage("cpp",Ut);x.registerLanguage("c++",Ut);const Zi=new Set(["mindmap"]);function ue(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function Vi(n,e={}){const t=new Set(e.reservedLanguages??Zi),i=n.renderer.rules.fence?n.renderer.rules.fence.bind(n.renderer.rules):(r,a,s,o,c)=>c.renderToken(r,a,s);n.renderer.rules.fence=(r,a,s,o,c)=>{var E;const l=r[a];if(!l)return i(r,a,s,o,c);const u=((E=l.info.trim().split(/\s+/)[0])==null?void 0:E.toLowerCase())??"";if(t.has(u))return i(r,a,s,o,c);const p=l.content;let m,b=u||"text";if(u&&x.getLanguage(u))try{m=x.highlight(p,{language:u,ignoreIllegals:!0}).value}catch{m=ue(p)}else if(u)try{const S=x.highlightAuto(p);m=S.value,b=S.language||u}catch{m=ue(p)}else try{const S=x.highlightAuto(p);m=S.value,b=S.language||"text"}catch{m=ue(p)}return`<div class="md-editor-codeblock"><div class="md-editor-codeblock-header"><span class="md-editor-codeblock-lights"><span class="md-editor-codeblock-dot md-editor-codeblock-dot--red"></span><span class="md-editor-codeblock-dot md-editor-codeblock-dot--yellow"></span><span class="md-editor-codeblock-dot md-editor-codeblock-dot--green"></span></span><span class="md-editor-codeblock-lang">${ue(b)}</span><button type="button" class="md-editor-codeblock-copy" aria-label="Copy code">Copy</button></div><pre class="md-editor-codeblock-pre"><code class="language-${ue(b)}">${m}</code></pre></div>`}}const Xi=[".mp4",".webm",".ogg",".mov",".m4v",".avi",".mkv"],Qi=[/(?:youtube\.com\/watch\?[^ ]*v=|youtu\.be\/|youtube\.com\/embed\/|youtube\.com\/shorts\/|youtube\.com\/v\/)([a-zA-Z0-9_-]{11})/,/^([a-zA-Z0-9_-]{11})$/];function Ht(n){const e=n.trim();if(!e)return null;for(const t of Qi){const i=e.match(t);if(i&&i[1])return i[1]}return null}function Ft(n,e="YouTube video"){const t=`https://img.youtube.com/vi/${n}/hqdefault.jpg`,i=`https://www.youtube.com/watch?v=${n}`;return`[![${e}](${t})](${i})`}function zt(n){const e=n.toLowerCase().split("?")[0]??"";return Xi.some(t=>e.endsWith(t))}function Re(n,e="image"){return`![${e}](${n})`}function Kt(n,e="video"){return`![${e}](${n})`}function Ji(n){const e=n.renderer.rules.image?n.renderer.rules.image.bind(n.renderer.rules):(t,i,r,a,s)=>s.renderToken(t,i,r);n.renderer.rules.image=(t,i,r,a,s)=>{const o=t[i];if(!o)return e(t,i,r,a,s);const c=o.attrGet("src")??"";if(zt(c)){const l=o.content||"";return`<video src="${c}" controls class="md-editor-video" title="${l}">${l}</video>`}return e(t,i,r,a,s)}}const ji=new Set(["notice","info","tip","warning","danger","success"]),er=/^:::(\w+)(?:\s+(.+))?$/,tr=/^:::\s*$/,at={notice:"Notice",info:"Info",tip:"Tip",warning:"Warning",danger:"Danger",success:"Success"},nr={notice:"i",info:"i",tip:"✓",warning:"!",danger:"✕",success:"✓"};function ir(n){n.block.ruler.before("fence","tips_block",(e,t,i,r)=>{const s=e.src.slice(e.bMarks[t],e.eMarks[t]).match(er);if(!s)return!1;const o=(s[1]??"").toLowerCase();if(!ji.has(o))return!1;let c=t+1,l=!1;for(;c<i;){const b=e.src.slice(e.bMarks[c],e.eMarks[c]);if(tr.test(b.trim())){l=!0;break}c++}if(!l)return!1;if(r)return!0;const d=s[2]??at[o]??o,u=e.src.slice(e.bMarks[t+1],e.bMarks[c]).trim(),p=n.render(u),m=e.push("tips_block","div",0);return m.content=p,m.info=o,m.markup=d,e.line=c+1,!0}),n.renderer.rules.tips_block=(e,t)=>{const i=e[t];if(!i)return"";const r=i.info??"notice",a=i.markup??at[r]??"Notice",s=nr[r]??"i",o=i.content??"";return`<div class="md-editor-tip md-editor-tip--${r}"><div class="md-editor-tip-header"><span class="md-editor-tip-icon">${s}</span><span class="md-editor-tip-title">${rr(a)}</span></div><div class="md-editor-tip-body">${o}</div></div>`}}function rr(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function sr(n){const e=n.renderer.rules.list_item_open;n.renderer.rules.list_item_open=(t,i,r,a,s)=>{var l,d;const o=t[i];if(!o)return e?e(t,i,r,a,s):s.renderToken(t,i,r);let c;for(let u=i+1;u<t.length&&u<i+6;u++){if(((l=t[u])==null?void 0:l.type)==="inline"){c=t[u];break}if(((d=t[u])==null?void 0:d.type)==="list_item_close")break}if(c&&c.content){const u=c.content,p=/^\[\s*\]\s/.test(u),m=/^\[\s*[xX]\s*\]\s/.test(u);if(p||m){const b=/^\[\s*(?:[xX])?\s*\]\s/;if(c.content=u.replace(b,""),c.children&&c.children.length>0){const A=c.children[0];A&&A.type==="text"&&(A.content=A.content.replace(b,""))}o.attrSet("class","task-list-item");const E=`<input type="checkbox" disabled${p?" checked":""} /> `;return(e?e(t,i,r,a,s):s.renderToken(t,i,r))+E}}return e?e(t,i,r,a,s):s.renderToken(t,i,r)}}class $e{constructor(e={}){this.md=new gn({html:e.html??!1,linkify:!0,breaks:e.breaks??!1,typographer:!0}),e.math!==!1&&xn(this.md),this.mindmapEnabled=e.mindmap!==!1,this.mindmapEnabled&&Cn(this.md),e.codeHighlight!==!1&&Vi(this.md,{reservedLanguages:this.mindmapEnabled?["mindmap"]:[]}),e.tips!==!1&&ir(this.md),sr(this.md),Sn(this.md),_n(this.md),Ji(this.md)}render(e){return this.md.render(e||"")}async hydrate(e){if(this.mindmapEnabled)try{await On(e)}catch{}}}function or(n,e={}){return new $e(e).render(n)}class qt{constructor(e){this.buttons=new Map,this.el=document.createElement("div"),this.el.className="md-editor-toolbar",this.el.setAttribute("role","toolbar");for(const t of e){const i=document.createElement("button");if(i.type="button",i.className="md-editor-toolbar-btn",t.toggle&&i.classList.add("is-toggle"),t.active&&i.classList.add("is-active"),i.title=t.title,i.setAttribute("aria-label",t.title),i.setAttribute("data-action",t.name),i.innerHTML=t.icon,i.addEventListener("mousedown",r=>{r.preventDefault(),r.stopPropagation(),t.handler(i)}),this.buttons.set(t.name,i),this.el.appendChild(i),t.groupEnd){const r=document.createElement("span");r.className="md-editor-toolbar-sep",this.el.appendChild(r)}}}setActive(e,t){var i;(i=this.buttons.get(e))==null||i.classList.toggle("is-active",t)}setIcon(e,t){const i=this.buttons.get(e);i&&(i.innerHTML=t)}destroy(){for(const e of this.buttons.values())e.onclick=null;this.buttons.clear(),this.el.remove()}}function Oe(n){const e=n.trim();return{charCount:n.length,wordCount:e?e.split(/\s+/).length:0}}class Gt{constructor(e){this.el=document.createElement("div"),this.el.className="md-editor-statusbar",this.countEl=document.createElement("span"),this.blockEl=document.createElement("span"),this.blockEl.className="md-editor-statusbar-muted",this.refreshBtn=document.createElement("button"),this.refreshBtn.type="button",this.refreshBtn.className="md-editor-statusbar-refresh",this.refreshBtn.textContent="Refresh preview",this.refreshBtn.style.display="none",this.refreshBtn.addEventListener("click",e.onRefreshPreview),this.el.appendChild(this.countEl),this.el.appendChild(this.blockEl),this.el.appendChild(this.refreshBtn)}update(e){this.countEl.textContent=`${e.charCount} chars · ${e.wordCount} words`,this.blockEl.textContent=`${e.blockCount} render blocks`,this.refreshBtn.style.display=e.autoPreview?"none":""}destroy(){this.refreshBtn.onclick=null,this.el.remove()}}const ar=/^ {0,3}#{1,6}\s/,cr=/^ {0,3}(`{3,}|~{3,})(.*)$/,lr=/^ {0,3}(`{3,}|~{3,})\s*$/,dr=/^ {0,3}:{3,}\S/,ur=/^ {0,3}:{3,}\s*$/;function hr(n){let e=5381;for(let t=0;t<n.length;t++)e=e*33^n.charCodeAt(t);return(e>>>0).toString(36)+":"+n.length}function Wt(n){const e=n.split(`
13
+ `),t=[];let i=[],r=!1,a="",s=0,o=!1;for(const l of e){const d=l.match(cr);if(d){const u=d[1]??"",p=u[0]??"",m=u.length;r?p===a&&m>=s&&lr.test(l)&&(r=!1):(r=!0,a=p,s=m),i.push(l);continue}if(r||(!o&&dr.test(l)?o=!0:o&&ur.test(l)&&(o=!1)),!r&&!o&&ar.test(l)&&i.length>0){t.push(i.join(`
14
+ `)),i=[l];continue}i.push(l)}i.length>0&&t.push(i.join(`
15
+ `)),t.length===0&&t.push("");const c=new Map;return t.map(l=>{const d=hr(l),u=(c.get(d)??0)+1;return c.set(d,u),{key:`${d}#${u}`,hash:d,source:l}})}class Yt{constructor(e,t,i=800){this.container=e,this.renderBlock=t,this.maxCacheEntries=i,this.nodeByKey=new Map,this.htmlByHash=new Map,this.prevBlocks=[]}update(e){const t=Wt(e),i=document.createDocumentFragment(),r=new Map;let a=0;for(const s of t){let o=this.nodeByKey.get(s.key);if(!o){let c=this.htmlByHash.get(s.hash);if(c===void 0){try{c=this.renderBlock(s.source)}catch{c=`<pre>${this.escapeHtml(s.source)}</pre>`}this.htmlByHash.set(s.hash,c),a++}o=document.createElement("div"),o.className="md-editor-block",o.dataset.blockKey=s.key,o.innerHTML=c}r.set(s.key,o),i.appendChild(o)}return this.container.innerHTML="",this.container.appendChild(i),this.nodeByKey=r,this.prevBlocks=t,this.evictCacheIfNeeded(t),{rerenderedCount:a,totalCount:t.length}}evictCacheIfNeeded(e){if(this.htmlByHash.size<=this.maxCacheEntries)return;const t=new Set(e.map(i=>i.hash));for(const i of Array.from(this.htmlByHash.keys()))t.has(i)||this.htmlByHash.delete(i)}getBlockCount(){return this.prevBlocks.length}escapeHtml(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}destroy(){this.container.innerHTML="",this.nodeByKey.clear(),this.htmlByHash.clear(),this.prevBlocks=[]}}function Zt(n,e){let t,i;const r=(...a)=>{i=a,t!==void 0&&clearTimeout(t),t=setTimeout(()=>{t=void 0,i&&n(...i)},e)};return r.cancel=()=>{t!==void 0&&clearTimeout(t),t=void 0},r.flush=()=>{t!==void 0&&(clearTimeout(t),t=void 0,i&&n(...i))},r}function Vt(n,e=120,t=600){const i=Math.max(0,n),r=Math.floor(i/2e4)*60;return Math.min(t,e+r)}function pr(n,e=300){const t=window;return typeof t.requestIdleCallback=="function"?t.requestIdleCallback(n,{timeout:e}):window.setTimeout(n,0)}function gr(n){const e=window;typeof e.cancelIdleCallback=="function"?e.cancelIdleCallback(n):clearTimeout(n)}const D=n=>`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">${n}</svg>`,O={bold:D('<path d="M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"/><path d="M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"/>'),italic:D('<line x1="19" y1="4" x2="10" y2="4"/><line x1="14" y1="20" x2="5" y2="20"/><line x1="15" y1="4" x2="9" y2="20"/>'),heading:D('<path d="M6 12h12"/><path d="M6 4v16"/><path d="M18 4v16"/>'),link:D('<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>'),code:D('<polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/>'),image:D('<rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/>'),video:D('<polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2" ry="2"/>'),youtube:D('<path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"/><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"/>'),quote:D('<path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z"/><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z"/>'),list:D('<line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3.01" y2="6"/><line x1="3" y1="12" x2="3.01" y2="12"/><line x1="3" y1="18" x2="3.01" y2="18"/>'),listOrdered:D('<line x1="10" y1="6" x2="21" y2="6"/><line x1="10" y1="12" x2="21" y2="12"/><line x1="10" y1="18" x2="21" y2="18"/><path d="M4 6h1v4"/><path d="M4 10h2"/><path d="M6 16H4c0-1 2-2 2-3s-1-1.5-2-1"/>'),taskList:D('<rect x="3" y="4" width="6" height="6" rx="1"/><polyline points="4.5 7 5.5 8 7.5 5.5"/><line x1="13" y1="7" x2="21" y2="7"/><rect x="3" y="14" width="6" height="6" rx="1"/><line x1="13" y1="17" x2="21" y2="17"/>'),mention:D('<circle cx="12" cy="12" r="4"/><path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"/>'),fileText:D('<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/>'),table:D('<rect x="3" y="3" width="18" height="18" rx="2"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="3" y1="15" x2="21" y2="15"/><line x1="9" y1="3" x2="9" y2="21"/>'),hr:D('<line x1="4" y1="12" x2="20" y2="12"/>'),alert:D('<path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/>'),sigma:D('<path d="M18 7V4H6l6 8-6 8h12v-3"/>'),mindmap:D('<circle cx="12" cy="12" r="3"/><circle cx="4" cy="5" r="2"/><circle cx="4" cy="19" r="2"/><circle cx="20" cy="5" r="2"/><circle cx="20" cy="19" r="2"/><line x1="9.5" y1="10.5" x2="5.5" y2="6.5"/><line x1="9.5" y1="13.5" x2="5.5" y2="17.5"/><line x1="14.5" y1="10.5" x2="18.5" y2="6.5"/><line x1="14.5" y1="13.5" x2="18.5" y2="17.5"/>'),eye:D('<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/>'),help:D('<circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><line x1="12" y1="17" x2="12.01" y2="17"/>'),moon:D('<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>'),sun:D('<circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/>'),refresh:D('<polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/>')};class X{constructor(e,t){this.inputs=new Map,this.destroyed=!1,this.anchor=e,this.config=t,this.el=document.createElement("div"),this.el.className="md-editor-popup",this.el.setAttribute("role","dialog"),this.el.setAttribute("aria-label",t.title),t.theme&&this.el.setAttribute("data-theme",t.theme),this.build(),this.onOutsideClick=i=>{const r=i.target;!this.el.contains(r)&&!this.anchor.contains(r)&&this.hide()},this.onKeyDown=i=>{i.key==="Escape"&&this.hide()}}build(){const e=document.createElement("div");e.className="md-editor-popup-header",e.textContent=this.config.title;const t=document.createElement("div");t.className="md-editor-popup-body";for(const s of this.config.fields){const o=document.createElement("div");o.className="md-editor-popup-field";const c=document.createElement("label");c.className="md-editor-popup-label",c.textContent=s.label,c.setAttribute("for",`md-editor-popup-${s.name}`);let l;s.type==="textarea"?(l=document.createElement("textarea"),l.rows=2):(l=document.createElement("input"),l.type="text"),l.id=`md-editor-popup-${s.name}`,l.className="md-editor-popup-input",s.placeholder&&(l.placeholder=s.placeholder),s.required&&(l.required=!0),o.appendChild(c),o.appendChild(l),t.appendChild(o),this.inputs.set(s.name,l)}const i=document.createElement("div");i.className="md-editor-popup-footer";const r=document.createElement("button");r.type="button",r.className="md-editor-popup-btn md-editor-popup-btn--ghost",r.textContent="Cancel",r.addEventListener("click",()=>this.hide());const a=document.createElement("button");a.type="button",a.className="md-editor-popup-btn md-editor-popup-btn--primary",a.textContent=this.config.submitLabel??"Insert",a.addEventListener("click",()=>this.submit()),i.appendChild(r),i.appendChild(a),this.el.appendChild(e),this.el.appendChild(t),this.el.appendChild(i);for(const s of this.inputs.values())s.tagName==="INPUT"&&s.addEventListener("keydown",o=>{const c=o;c.key==="Enter"&&(c.preventDefault(),this.submit())})}submit(){const e={};for(const[t,i]of this.inputs)e[t]=i.value.trim();this.config.onSubmit(e),this.hide()}show(){if(this.destroyed)return;document.body.appendChild(this.el),this.position(),document.addEventListener("mousedown",this.onOutsideClick),document.addEventListener("keydown",this.onKeyDown);const e=this.inputs.values().next().value;e==null||e.focus()}hide(){this.destroyed||(this.el.remove(),document.removeEventListener("mousedown",this.onOutsideClick),document.removeEventListener("keydown",this.onKeyDown))}position(){const e=this.anchor.getBoundingClientRect(),t=this.el.getBoundingClientRect();let i=e.left;const r=e.bottom+6;i+t.width>window.innerWidth-8&&(i=window.innerWidth-t.width-8),i<8&&(i=8),this.el.style.left=`${i+window.scrollX}px`,this.el.style.top=`${r+window.scrollY}px`}destroy(){this.hide(),this.destroyed=!0,this.inputs.clear()}}const Xt=[{action:"bold",key:"Mod-b",description:"Bold"},{action:"italic",key:"Mod-i",description:"Italic"},{action:"heading",key:"Mod-Alt-1",description:"Heading"},{action:"link",key:"Mod-k",description:"Insert link"},{action:"code",key:"Mod-Alt-c",description:"Code block"},{action:"quote",key:"Mod-Shift-.",description:"Blockquote"},{action:"ul",key:"Mod-Shift-8",description:"Unordered list"},{action:"ol",key:"Mod-Shift-7",description:"Ordered list"},{action:"tasklist",key:"Mod-Shift-9",description:"Task list"},{action:"math",key:"Mod-Alt-m",description:"Math formula"},{action:"preview",key:"Mod-Alt-p",description:"Toggle preview"},{action:"theme",key:"Mod-Shift-l",description:"Toggle theme"}];function mr(n,e){var c;const t=n.toLowerCase().split("-");let i="",r=!1,a=!1,s=!1,o=!1;for(const l of t)switch(l){case"mod":(c=navigator.platform)!=null&&c.toLowerCase().includes("mac")?a=!0:r=!0;break;case"ctrl":r=!0;break;case"meta":case"cmd":a=!0;break;case"alt":case"option":s=!0;break;case"shift":o=!0;break;default:i=l}return!(e.ctrlKey!==r||e.metaKey!==a||e.altKey!==s||e.shiftKey!==o||e.key.toLowerCase()!==i)}function fr(n){var i;const e=((i=navigator.platform)==null?void 0:i.toLowerCase().includes("mac"))??!1;return n.split("-").map(r=>{switch(r.toLowerCase()){case"mod":return e?"Cmd":"Ctrl";case"ctrl":return"Ctrl";case"meta":case"cmd":return"Cmd";case"alt":return e?"Option":"Alt";case"shift":return"Shift";default:return r.toUpperCase()}}).join("+")}function Qt(n){var i;const e=((i=navigator.platform)==null?void 0:i.toLowerCase().includes("mac"))??!1;return n.split("-").map(r=>{let a=r,s="";switch(r.toLowerCase()){case"mod":a=e?"Cmd":"Ctrl",s=e?"⌘":"";break;case"ctrl":a="Ctrl",s=e?"⌃":"";break;case"meta":case"cmd":a="Cmd",s="⌘";break;case"alt":a=e?"Option":"Alt",s=e?"⌥":"";break;case"shift":a="Shift",s="⇧";break;default:a=r.toUpperCase()}return`<kbd class="md-editor-kbd">${s?`<span class="md-editor-kbd-symbol">${s}</span>`:""}<span>${a}</span></kbd>`}).join('<span class="md-editor-kbd-plus">+</span>')}const ct={bold:["**","**","bold text"],italic:["_","_","italic text"],heading:["## ","","Heading"],link:["[","](https://)","link text"],code:["```\n","\n```","code"],math:["$","$","E=mc^2"],mindmapBlock:[`\`\`\`mindmap
18
16
  # Root topic
19
17
  ## Branch one
20
18
  - Child A
@@ -26,24 +24,24 @@ https://github.com/highlightjs/highlight.js/issues/2277`),$=f,T=v),w===void 0&&(
26
24
  | `,` | content |
27
25
  `,"content"],hr:[`
28
26
  ---
29
- `,"",""]};class oo{constructor(e,t={}){this.previewPane=null,this.incremental=null,this.toolbar=null,this.statusBar=null,this.activePopup=null,this.scheduledRender=null,this.scheduledWait=0;const n=typeof e=="string"?document.querySelector(e):e;if(!n)throw new Error("MarkdownEditor: mount container not found");this.container=n,this.mode=t.mode??"simple",this.theme=t.theme??"light",this.showPreview=t.preview??!0,this.autoPreview=t.autoPreview??!0,this.renderDebounceOpt=t.renderDebounce,this.onChange=t.onChange,this.onImageUpload=t.onImageUpload,this.toolbarConfig=t.toolbar,this.shortcuts=hi,this.container.classList.add("md-editor-root",`md-editor-mode-${this.mode}`),this.container.setAttribute("data-theme",this.theme),this.renderer=new Lt({math:t.math??!0,mindmap:t.mindmap??!0,codeHighlight:t.codeHighlight??!0,tips:t.tips??!0}),this.buildLayout(),this.codeEditor=new Sn(this.editorPane,{value:t.value??"",lineNumbers:this.mode==="complex",theme:this.theme,onChange:r=>{var s;(s=this.onChange)==null||s.call(this,r),this.autoPreview&&this.requestPreviewRender(r),this.updateStatusBar(r)},onImageFile:r=>this.handleImageFile(r),mention:t.mention,docLink:t.docLink}),this.setupKeyboardShortcuts(),this.mode==="complex"&&(this.buildToolbar(),this.buildStatusBar()),this.previewPane&&(this.previewPane.classList.add("markdown-body"),this.incremental=new ci(this.previewPane,r=>this.renderer.render(r)),this.setupCopyHandler()),this.renderPreview(t.value??""),this.updateStatusBar(t.value??"")}buildLayout(){this.container.innerHTML="",this.body=document.createElement("div"),this.body.className="md-editor-body",this.editorPane=document.createElement("div"),this.editorPane.className="md-editor-pane md-editor-source",this.body.appendChild(this.editorPane),this.showPreview&&(this.previewPane=document.createElement("div"),this.previewPane.className="md-editor-pane md-editor-preview",this.body.appendChild(this.previewPane)),this.container.appendChild(this.body)}isActionVisible(e){var t;return this.toolbarConfig?Array.isArray(this.toolbarConfig)?this.toolbarConfig.includes(e):((t=this.toolbarConfig[e])==null?void 0:t.show)!==!1:!0}getActionLabel(e,t){var n;return this.toolbarConfig&&!Array.isArray(this.toolbarConfig)?((n=this.toolbarConfig[e])==null?void 0:n.label)??t:t}getActionIcon(e,t){var n;return this.toolbarConfig&&!Array.isArray(this.toolbarConfig)?((n=this.toolbarConfig[e])==null?void 0:n.icon)??t:t}buildToolbar(){const e=[],t=(n,r,s,o,a={})=>{this.isActionVisible(n)&&e.push({name:n,title:this.getActionLabel(n,r),icon:this.getActionIcon(n,s),handler:o,...a})};t("heading","Heading",Y.heading,()=>this.insertSnippet("heading")),t("bold","Bold (Ctrl+B)",Y.bold,()=>this.wrapSnippet("bold")),t("italic","Italic (Ctrl+I)",Y.italic,()=>this.wrapSnippet("italic"),{groupEnd:!0}),t("link","Link (Ctrl+K)",Y.link,()=>this.wrapSnippet("link")),t("image","Insert image",Y.image,n=>this.showImagePopup(n)),t("video","Insert video",Y.video,n=>this.showVideoPopup(n),{groupEnd:!0}),t("youtube","Insert YouTube video",Y.youtube,n=>this.showYouTubePopup(n),{groupEnd:!0}),t("quote","Quote",Y.quote,()=>this.codeEditor.wrapLines("> ","quoted text")),t("ul","Unordered list",Y.list,()=>this.codeEditor.wrapLines("- ","list item")),t("ol","Ordered list",Y.listOrdered,()=>this.codeEditor.wrapLines("1. ","list item")),t("tasklist","Task list",Y.taskList,()=>this.codeEditor.toggleTaskList(),{groupEnd:!0}),t("mention","Mention (@)",Y.mention,()=>this.codeEditor.insertMention()),t("doclink","Insert document link",Y.fileText,()=>this.codeEditor.insertDocLink()),t("code","Code block",Y.code,()=>this.insertSnippet("code")),t("table","Table",Y.table,n=>this.showTablePopup(n),{groupEnd:!0}),t("math","Math formula",Y.sigma,n=>this.showMathPopup(n),{groupEnd:!0}),t("mindmap","Insert mindmap",Y.mindmap,n=>this.showMindmapPopup(n)),t("hr","Horizontal rule",Y.hr,()=>this.insertSnippet("hr")),t("tips","Insert callout",Y.alert,n=>this.showTipsPopup(n),{groupEnd:!0}),t("preview","Toggle preview",Y.eye,()=>this.togglePreview(),{toggle:!0,active:this.showPreview}),t("help","Keyboard shortcuts",Y.help,n=>this.showHelpPopup(n)),t("theme","Toggle theme",this.theme==="dark"?Y.sun:Y.moon,()=>this.setTheme(this.theme==="dark"?"light":"dark")),this.toolbar=new oi(e),this.container.insertBefore(this.toolbar.el,this.body)}buildStatusBar(){this.statusBar=new ai({onRefreshPreview:()=>this.renderPreview(this.codeEditor.getValue())}),this.container.appendChild(this.statusBar.el)}setupKeyboardShortcuts(){const e=this.shortcuts.map(t=>({key:t.key,run:()=>(this.executeAction(t.action),!0)}));this.codeEditor.setKeymap(e)}executeAction(e){switch(e){case"bold":this.wrapSnippet("bold");break;case"italic":this.wrapSnippet("italic");break;case"heading":this.insertSnippet("heading");break;case"link":this.wrapSnippet("link");break;case"code":this.insertSnippet("code");break;case"quote":this.codeEditor.wrapLines("> ","quoted text");break;case"ul":this.codeEditor.wrapLines("- ","list item");break;case"ol":this.codeEditor.wrapLines("1. ","list item");break;case"tasklist":this.codeEditor.toggleTaskList();break;case"math":this.wrapSnippet("math");break;case"preview":this.togglePreview();break;case"theme":this.setTheme(this.theme==="dark"?"light":"dark");break}}showImagePopup(e){var n;(n=this.activePopup)==null||n.destroy();const t=typeof this.onImageUpload=="function";this.activePopup=new ge(e,{title:"Insert image",theme:this.theme,fields:[{name:"url",label:"Image URL",placeholder:"https://example.com/image.png"},...t?[{name:"file",label:"Or paste/drop an image into the editor",type:"text",placeholder:"Upload via paste or drag-and-drop"}]:[]],onSubmit:r=>{const s=r.url??"";s&&this.codeEditor.insertAtCursor(xt(s,"image"))}}),this.activePopup.show()}showVideoPopup(e){var t;(t=this.activePopup)==null||t.destroy(),this.activePopup=new ge(e,{title:"Insert video",theme:this.theme,fields:[{name:"url",label:"Video URL (.mp4, .webm, .ogg)",placeholder:"https://example.com/video.mp4",required:!0},{name:"alt",label:"Title",placeholder:"video title"}],onSubmit:n=>{const r=n.url??"";r&&this.codeEditor.insertAtCursor(si(r,n.alt||"video"))}}),this.activePopup.show()}showYouTubePopup(e){var t;(t=this.activePopup)==null||t.destroy(),this.activePopup=new ge(e,{title:"Insert YouTube video",theme:this.theme,fields:[{name:"url",label:"YouTube URL or video ID",placeholder:"https://www.youtube.com/watch?v=dQw4w9WgXcQ",required:!0}],onSubmit:n=>{const r=n.url??"",s=ni(r);s&&this.codeEditor.insertAtCursor(ii(s))}}),this.activePopup.show()}showTablePopup(e){var t;(t=this.activePopup)==null||t.destroy(),this.activePopup=new ge(e,{title:"Insert table",theme:this.theme,fields:[{name:"rows",label:"Rows",placeholder:"3"},{name:"cols",label:"Columns",placeholder:"3"}],submitLabel:"Insert",onSubmit:n=>{const r=Math.max(1,Math.min(50,parseInt(n.rows??"3",10)||3)),s=Math.max(1,Math.min(20,parseInt(n.cols??"3",10)||3));this.codeEditor.insertAtCursor(this.generateTable(r,s))}}),this.activePopup.show()}generateTable(e,t){const n="| "+Array.from({length:t},(a,l)=>`Col ${l+1}`).join(" | ")+" |",r="| "+Array.from({length:t},()=>"---").join(" | ")+" |",s=Math.max(0,e-1),o=Array.from({length:s},()=>"| "+Array.from({length:t},()=>"content").join(" | ")+" |").join(`
30
- `);return s>0?`${n}
27
+ `,"",""]};class br{constructor(e,t={}){this.previewPane=null,this.incremental=null,this.toolbar=null,this.statusBar=null,this.activePopup=null,this.scheduledRender=null,this.scheduledWait=0;const i=typeof e=="string"?document.querySelector(e):e;if(!i)throw new Error("MarkdownEditor: mount container not found");this.container=i,this.mode=t.mode??"simple",this.theme=t.theme??"light",this.showPreview=t.preview??!0,this.autoPreview=t.autoPreview??!0,this.renderDebounceOpt=t.renderDebounce,this.onChange=t.onChange,this.onImageUpload=t.onImageUpload,this.toolbarConfig=t.toolbar,this.shortcuts=Xt,this.container.classList.add("md-editor-root",`md-editor-mode-${this.mode}`),this.container.setAttribute("data-theme",this.theme),this.renderer=new $e({math:t.math??!0,mindmap:t.mindmap??!0,codeHighlight:t.codeHighlight??!0,tips:t.tips??!0}),this.buildLayout(),this.codeEditor=new lt(this.editorPane,{value:t.value??"",lineNumbers:this.mode==="complex",theme:this.theme,onChange:r=>{var a;(a=this.onChange)==null||a.call(this,r),this.autoPreview&&this.requestPreviewRender(r),this.updateStatusBar(r)},onImageFile:r=>this.handleImageFile(r),mention:t.mention,docLink:t.docLink}),this.setupKeyboardShortcuts(),this.mode==="complex"&&(this.buildToolbar(),this.buildStatusBar()),this.previewPane&&(this.previewPane.classList.add("markdown-body"),this.incremental=new Yt(this.previewPane,r=>this.renderer.render(r)),this.setupCopyHandler()),this.renderPreview(t.value??""),this.updateStatusBar(t.value??"")}buildLayout(){this.container.innerHTML="",this.body=document.createElement("div"),this.body.className="md-editor-body",this.editorPane=document.createElement("div"),this.editorPane.className="md-editor-pane md-editor-source",this.body.appendChild(this.editorPane),this.showPreview&&(this.previewPane=document.createElement("div"),this.previewPane.className="md-editor-pane md-editor-preview",this.body.appendChild(this.previewPane)),this.container.appendChild(this.body)}isActionVisible(e){var t;return this.toolbarConfig?Array.isArray(this.toolbarConfig)?this.toolbarConfig.includes(e):((t=this.toolbarConfig[e])==null?void 0:t.show)!==!1:!0}getActionLabel(e,t){var i;return this.toolbarConfig&&!Array.isArray(this.toolbarConfig)?((i=this.toolbarConfig[e])==null?void 0:i.label)??t:t}getActionIcon(e,t){var i;return this.toolbarConfig&&!Array.isArray(this.toolbarConfig)?((i=this.toolbarConfig[e])==null?void 0:i.icon)??t:t}buildToolbar(){const e=[],t=(i,r,a,s,o={})=>{this.isActionVisible(i)&&e.push({name:i,title:this.getActionLabel(i,r),icon:this.getActionIcon(i,a),handler:s,...o})};t("heading","Heading",O.heading,()=>this.insertSnippet("heading")),t("bold","Bold (Ctrl+B)",O.bold,()=>this.wrapSnippet("bold")),t("italic","Italic (Ctrl+I)",O.italic,()=>this.wrapSnippet("italic"),{groupEnd:!0}),t("link","Link (Ctrl+K)",O.link,()=>this.wrapSnippet("link")),t("image","Insert image",O.image,i=>this.showImagePopup(i)),t("video","Insert video",O.video,i=>this.showVideoPopup(i),{groupEnd:!0}),t("youtube","Insert YouTube video",O.youtube,i=>this.showYouTubePopup(i),{groupEnd:!0}),t("quote","Quote",O.quote,()=>this.codeEditor.wrapLines("> ","quoted text")),t("ul","Unordered list",O.list,()=>this.codeEditor.wrapLines("- ","list item")),t("ol","Ordered list",O.listOrdered,()=>this.codeEditor.wrapLines("1. ","list item")),t("tasklist","Task list",O.taskList,()=>this.codeEditor.toggleTaskList(),{groupEnd:!0}),t("mention","Mention (@)",O.mention,()=>this.codeEditor.insertMention()),t("doclink","Insert document link",O.fileText,()=>this.codeEditor.insertDocLink()),t("code","Code block",O.code,()=>this.insertSnippet("code")),t("table","Table",O.table,i=>this.showTablePopup(i),{groupEnd:!0}),t("math","Math formula",O.sigma,i=>this.showMathPopup(i),{groupEnd:!0}),t("mindmap","Insert mindmap",O.mindmap,i=>this.showMindmapPopup(i)),t("hr","Horizontal rule",O.hr,()=>this.insertSnippet("hr")),t("tips","Insert callout",O.alert,i=>this.showTipsPopup(i),{groupEnd:!0}),t("preview","Toggle preview",O.eye,()=>this.togglePreview(),{toggle:!0,active:this.showPreview}),t("help","Keyboard shortcuts",O.help,i=>this.showHelpPopup(i)),t("theme","Toggle theme",this.theme==="dark"?O.sun:O.moon,()=>this.setTheme(this.theme==="dark"?"light":"dark")),this.toolbar=new qt(e),this.container.insertBefore(this.toolbar.el,this.body)}buildStatusBar(){this.statusBar=new Gt({onRefreshPreview:()=>this.renderPreview(this.codeEditor.getValue())}),this.container.appendChild(this.statusBar.el)}setupKeyboardShortcuts(){const e=this.shortcuts.map(t=>({key:t.key,run:()=>(this.executeAction(t.action),!0)}));this.codeEditor.setKeymap(e)}executeAction(e){switch(e){case"bold":this.wrapSnippet("bold");break;case"italic":this.wrapSnippet("italic");break;case"heading":this.insertSnippet("heading");break;case"link":this.wrapSnippet("link");break;case"code":this.insertSnippet("code");break;case"quote":this.codeEditor.wrapLines("> ","quoted text");break;case"ul":this.codeEditor.wrapLines("- ","list item");break;case"ol":this.codeEditor.wrapLines("1. ","list item");break;case"tasklist":this.codeEditor.toggleTaskList();break;case"math":this.wrapSnippet("math");break;case"preview":this.togglePreview();break;case"theme":this.setTheme(this.theme==="dark"?"light":"dark");break}}showImagePopup(e){var i;(i=this.activePopup)==null||i.destroy();const t=typeof this.onImageUpload=="function";this.activePopup=new X(e,{title:"Insert image",theme:this.theme,fields:[{name:"url",label:"Image URL",placeholder:"https://example.com/image.png"},...t?[{name:"file",label:"Or paste/drop an image into the editor",type:"text",placeholder:"Upload via paste or drag-and-drop"}]:[]],onSubmit:r=>{const a=r.url??"";a&&this.codeEditor.insertAtCursor(Re(a,"image"))}}),this.activePopup.show()}showVideoPopup(e){var t;(t=this.activePopup)==null||t.destroy(),this.activePopup=new X(e,{title:"Insert video",theme:this.theme,fields:[{name:"url",label:"Video URL (.mp4, .webm, .ogg)",placeholder:"https://example.com/video.mp4",required:!0},{name:"alt",label:"Title",placeholder:"video title"}],onSubmit:i=>{const r=i.url??"";r&&this.codeEditor.insertAtCursor(Kt(r,i.alt||"video"))}}),this.activePopup.show()}showYouTubePopup(e){var t;(t=this.activePopup)==null||t.destroy(),this.activePopup=new X(e,{title:"Insert YouTube video",theme:this.theme,fields:[{name:"url",label:"YouTube URL or video ID",placeholder:"https://www.youtube.com/watch?v=dQw4w9WgXcQ",required:!0}],onSubmit:i=>{const r=i.url??"",a=Ht(r);a&&this.codeEditor.insertAtCursor(Ft(a))}}),this.activePopup.show()}showTablePopup(e){var t;(t=this.activePopup)==null||t.destroy(),this.activePopup=new X(e,{title:"Insert table",theme:this.theme,fields:[{name:"rows",label:"Rows",placeholder:"3"},{name:"cols",label:"Columns",placeholder:"3"}],submitLabel:"Insert",onSubmit:i=>{const r=Math.max(1,Math.min(50,parseInt(i.rows??"3",10)||3)),a=Math.max(1,Math.min(20,parseInt(i.cols??"3",10)||3));this.codeEditor.insertAtCursor(this.generateTable(r,a))}}),this.activePopup.show()}generateTable(e,t){const i="| "+Array.from({length:t},(o,c)=>`Col ${c+1}`).join(" | ")+" |",r="| "+Array.from({length:t},()=>"---").join(" | ")+" |",a=Math.max(0,e-1),s=Array.from({length:a},()=>"| "+Array.from({length:t},()=>"content").join(" | ")+" |").join(`
28
+ `);return a>0?`${i}
31
29
  ${r}
32
- ${o}
33
- `:`${n}
30
+ ${s}
31
+ `:`${i}
34
32
  ${r}
35
- `}showHelpPopup(e){var s;(s=this.activePopup)==null||s.destroy();const t=new ge(e,{title:"Help",theme:this.theme,fields:[],onSubmit:()=>{}}),n=t.el.querySelector(".md-editor-popup-body");if(n){const o=[{label:"Task list",hint:"- [ ] checked / - [x] unchecked"},{label:"@mention",hint:"Type @ then pick a user from the dropdown"},{label:"Document link",hint:"Type / then pick a document"},{label:"Math formula",hint:"$E=mc^2$ inline / $$ block $$"},{label:"Mindmap",hint:"```mindmap fenced block with # headings"},{label:"Callout",hint:":::warning Title ...content... :::"}];n.innerHTML='<div class="md-editor-help-section-title">Keyboard Shortcuts</div><div class="md-editor-help-list">'+this.shortcuts.map(a=>`<div class="md-editor-help-row">
36
- <span class="md-editor-help-desc">${a.description}</span>
37
- <span class="md-editor-help-keys">${pi(a.key)}</span>
38
- </div>`).join("")+'</div><div class="md-editor-help-section-title">Syntax</div><div class="md-editor-help-list">'+o.map(a=>`<div class="md-editor-help-row">
39
- <span class="md-editor-help-desc">${a.label}</span>
40
- <span class="md-editor-help-syntax">${a.hint}</span>
41
- </div>`).join("")+"</div>"}const r=t.el.querySelector(".md-editor-popup-footer");r&&(r.innerHTML='<span class="md-editor-help-brand-text">PowerDuck Markdown Editor</span><a href="https://www.powerduck.com" target="_blank" rel="noopener noreferrer" class="md-editor-help-link">powerduck.com</a>',r.style.justifyContent="space-between",r.style.alignItems="center"),this.activePopup=t,this.activePopup.show()}async handleImageFile(e){if(this.onImageUpload)try{const t=await this.onImageUpload(e);t&&this.codeEditor.insertAtCursor(xt(t,e.name.replace(/\.[^.]+$/,"")||"image"))}catch{}}showTipsPopup(e){var o;(o=this.activePopup)==null||o.destroy();const t=[{key:"notice",label:"Notice",color:"#0969da"},{key:"info",label:"Info",color:"#0969da"},{key:"tip",label:"Tip",color:"#1a7f37"},{key:"success",label:"Success",color:"#1a7f37"},{key:"warning",label:"Warning",color:"#9a6700"},{key:"danger",label:"Danger",color:"#cf222e"}],n=new ge(e,{title:"Insert callout",theme:this.theme,fields:[],onSubmit:()=>{}}),r=n.el.querySelector(".md-editor-popup-body");if(r){const a=document.createElement("div");a.className="md-editor-tips-grid";for(const l of t){const c=document.createElement("button");c.type="button",c.className="md-editor-tips-option",c.innerHTML=`<span class="md-editor-tips-dot" style="background:${l.color}"></span><span>${l.label}</span>`,c.addEventListener("click",()=>{this.codeEditor.insertAtCursor(`:::${l.key} ${l.label}
33
+ `}showHelpPopup(e){var a;(a=this.activePopup)==null||a.destroy();const t=new X(e,{title:"Help",theme:this.theme,fields:[],onSubmit:()=>{}}),i=t.el.querySelector(".md-editor-popup-body");if(i){const s=[{label:"Task list",hint:"- [ ] checked / - [x] unchecked"},{label:"@mention",hint:"Type @ then pick a user from the dropdown"},{label:"Document link",hint:"Type / then pick a document"},{label:"Math formula",hint:"$E=mc^2$ inline / $$ block $$"},{label:"Mindmap",hint:"```mindmap fenced block with # headings"},{label:"Callout",hint:":::warning Title ...content... :::"}];i.innerHTML='<div class="md-editor-help-section-title">Keyboard Shortcuts</div><div class="md-editor-help-list">'+this.shortcuts.map(o=>`<div class="md-editor-help-row">
34
+ <span class="md-editor-help-desc">${o.description}</span>
35
+ <span class="md-editor-help-keys">${Qt(o.key)}</span>
36
+ </div>`).join("")+'</div><div class="md-editor-help-section-title">Syntax</div><div class="md-editor-help-list">'+s.map(o=>`<div class="md-editor-help-row">
37
+ <span class="md-editor-help-desc">${o.label}</span>
38
+ <span class="md-editor-help-syntax">${o.hint}</span>
39
+ </div>`).join("")+"</div>"}const r=t.el.querySelector(".md-editor-popup-footer");r&&(r.innerHTML='<span class="md-editor-help-brand-text">PowerDuck Markdown Editor</span><a href="https://www.powerduck.com" target="_blank" rel="noopener noreferrer" class="md-editor-help-link">powerduck.com</a>',r.style.justifyContent="space-between",r.style.alignItems="center"),this.activePopup=t,this.activePopup.show()}async handleImageFile(e){if(this.onImageUpload)try{const t=await this.onImageUpload(e);t&&this.codeEditor.insertAtCursor(Re(t,e.name.replace(/\.[^.]+$/,"")||"image"))}catch{}}showTipsPopup(e){var s;(s=this.activePopup)==null||s.destroy();const t=[{key:"notice",label:"Notice",color:"#0969da"},{key:"info",label:"Info",color:"#0969da"},{key:"tip",label:"Tip",color:"#1a7f37"},{key:"success",label:"Success",color:"#1a7f37"},{key:"warning",label:"Warning",color:"#9a6700"},{key:"danger",label:"Danger",color:"#cf222e"}],i=new X(e,{title:"Insert callout",theme:this.theme,fields:[],onSubmit:()=>{}}),r=i.el.querySelector(".md-editor-popup-body");if(r){const o=document.createElement("div");o.className="md-editor-tips-grid";for(const c of t){const l=document.createElement("button");l.type="button",l.className="md-editor-tips-option",l.innerHTML=`<span class="md-editor-tips-dot" style="background:${c.color}"></span><span>${c.label}</span>`,l.addEventListener("click",()=>{this.codeEditor.insertAtCursor(`:::${c.key} ${c.label}
42
40
 
43
- Your ${l.key.toLowerCase()} content here.
41
+ Your ${c.key.toLowerCase()} content here.
44
42
 
45
43
  :::
46
- `),n.hide()}),a.appendChild(c)}r.innerHTML="",r.appendChild(a)}const s=n.el.querySelector(".md-editor-popup-footer");s&&s.remove(),this.activePopup=n,this.activePopup.show()}showMathPopup(e){var o;(o=this.activePopup)==null||o.destroy();const t=[{label:"Inline formula",snippet:"$E=mc^2$",hint:"Inline $...$"},{label:"Block formula",snippet:`$$
44
+ `),i.hide()}),o.appendChild(l)}r.innerHTML="",r.appendChild(o)}const a=i.el.querySelector(".md-editor-popup-footer");a&&a.remove(),this.activePopup=i,this.activePopup.show()}showMathPopup(e){var s;(s=this.activePopup)==null||s.destroy();const t=[{label:"Inline formula",snippet:"$E=mc^2$",hint:"Inline $...$"},{label:"Block formula",snippet:`$$
47
45
  E = mc^2
48
46
  $$
49
47
  `,hint:"Block $$...$$"},{label:"Fraction",snippet:"$\\frac{a}{b}$",hint:"\\frac{a}{b}"},{label:"Square root",snippet:"$\\sqrt{x}$",hint:"\\sqrt{x}"},{label:"Sum",snippet:"$\\sum_{i=1}^{n} i$",hint:"\\sum_{i=1}^{n}"},{label:"Integral",snippet:"$\\int_{a}^{b} f(x)\\,dx$",hint:"\\int_{a}^{b}"},{label:"Limit",snippet:"$\\lim_{x \\to \\infty} f(x)$",hint:"\\lim_{x \\to \\infty}"},{label:"Matrix",snippet:`$$
@@ -52,7 +50,7 @@ a & b \\\\
52
50
  c & d
53
51
  \\end{pmatrix}
54
52
  $$
55
- `,hint:"pmatrix 2x2"}],n=new ge(e,{title:"Insert math formula",theme:this.theme,fields:[],onSubmit:()=>{}}),r=n.el.querySelector(".md-editor-popup-body");if(r){const a=document.createElement("div");a.className="md-editor-template-grid";for(const l of t){const c=document.createElement("button");c.type="button",c.className="md-editor-template-option",c.innerHTML=`<span class="md-editor-template-label">${l.label}</span><span class="md-editor-template-hint">${l.hint}</span>`,c.addEventListener("click",()=>{this.codeEditor.insertAtCursor(l.snippet),n.hide()}),a.appendChild(c)}r.innerHTML="",r.appendChild(a)}const s=n.el.querySelector(".md-editor-popup-footer");s&&s.remove(),this.activePopup=n,this.activePopup.show()}showMindmapPopup(e){var o;(o=this.activePopup)==null||o.destroy();const t=[{label:"Simple",hint:"Root with two branches",snippet:"```mindmap\n# Root topic\n## Branch one\n## Branch two\n```\n"},{label:"Multi-level",hint:"Root, branches, sub-branches",snippet:`\`\`\`mindmap
53
+ `,hint:"pmatrix 2x2"}],i=new X(e,{title:"Insert math formula",theme:this.theme,fields:[],onSubmit:()=>{}}),r=i.el.querySelector(".md-editor-popup-body");if(r){const o=document.createElement("div");o.className="md-editor-template-grid";for(const c of t){const l=document.createElement("button");l.type="button",l.className="md-editor-template-option",l.innerHTML=`<span class="md-editor-template-label">${c.label}</span><span class="md-editor-template-hint">${c.hint}</span>`,l.addEventListener("click",()=>{this.codeEditor.insertAtCursor(c.snippet),i.hide()}),o.appendChild(l)}r.innerHTML="",r.appendChild(o)}const a=i.el.querySelector(".md-editor-popup-footer");a&&a.remove(),this.activePopup=i,this.activePopup.show()}showMindmapPopup(e){var s;(s=this.activePopup)==null||s.destroy();const t=[{label:"Simple",hint:"Root with two branches",snippet:"```mindmap\n# Root topic\n## Branch one\n## Branch two\n```\n"},{label:"Multi-level",hint:"Root, branches, sub-branches",snippet:`\`\`\`mindmap
56
54
  # Root
57
55
  ## Branch one
58
56
  ### Sub-branch A
@@ -91,4 +89,4 @@ $$
91
89
  - Testing
92
90
  - Deploy
93
91
  \`\`\`
94
- `}],n=new ge(e,{title:"Insert mindmap",theme:this.theme,fields:[],onSubmit:()=>{}}),r=n.el.querySelector(".md-editor-popup-body");if(r){const a=document.createElement("div");a.className="md-editor-template-grid";for(const l of t){const c=document.createElement("button");c.type="button",c.className="md-editor-template-option",c.innerHTML=`<span class="md-editor-template-label">${l.label}</span><span class="md-editor-template-hint">${l.hint}</span>`,c.addEventListener("click",()=>{this.codeEditor.insertAtCursor(l.snippet),n.hide()}),a.appendChild(c)}r.innerHTML="",r.appendChild(a)}const s=n.el.querySelector(".md-editor-popup-footer");s&&s.remove(),this.activePopup=n,this.activePopup.show()}setupCopyHandler(){this.previewPane&&this.previewPane.addEventListener("click",e=>{const t=e.target.closest(".md-editor-codeblock-copy");if(!t)return;const n=t.closest(".md-editor-codeblock"),r=n==null?void 0:n.querySelector("code");if(!r)return;const s=r.textContent??"";this.copyToClipboard(s,t)})}copyToClipboard(e,t){var r;const n=()=>{const s=t.textContent;t.textContent="Copied!",t.classList.add("is-copied"),window.setTimeout(()=>{t.textContent=s,t.classList.remove("is-copied")},2e3)};(r=navigator.clipboard)!=null&&r.writeText?navigator.clipboard.writeText(e).then(n).catch(()=>{this.fallbackCopy(e,n)}):this.fallbackCopy(e,n)}fallbackCopy(e,t){try{const n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select();const r=document.execCommand("copy");document.body.removeChild(n),r&&t()}catch{}}escapeHtml(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}insertSnippet(e){const[t,n,r]=bn[e];this.codeEditor.insertAtCursor(`${t}${r}${n}`)}wrapSnippet(e){const[t,n,r]=bn[e];this.codeEditor.wrapSelection(t,n,r)}togglePreview(){var t;if(!this.previewPane)return;const e=this.previewPane.style.display!=="none";this.previewPane.style.display=e?"none":"",(t=this.toolbar)==null||t.setActive("preview",!e)}requestPreviewRender(e){var n,r;const t=this.renderDebounceOpt===!1?0:this.renderDebounceOpt??ui(e.length);if(t===0){(n=this.scheduledRender)==null||n.cancel(),this.scheduledRender=null,this.renderPreview(e);return}(!this.scheduledRender||this.scheduledWait!==t)&&((r=this.scheduledRender)==null||r.cancel(),this.scheduledRender=di(s=>this.renderPreview(s),t),this.scheduledWait=t),this.scheduledRender(e)}renderPreview(e){if(!this.previewPane||!this.incremental)return;let t=0;try{t=this.incremental.update(e).totalCount}catch{this.previewPane.innerHTML=`<pre style="padding:16px;white-space:pre-wrap;word-break:break-word;">${this.escapeHtml(e)}</pre>`}if(this.renderer.hydrate(this.previewPane).catch(()=>{}),this.statusBar){const{charCount:n,wordCount:r}=St(e);this.statusBar.update({charCount:n,wordCount:r,blockCount:t,mode:this.mode,autoPreview:this.autoPreview})}}updateStatusBar(e){var r;if(!this.statusBar)return;const{charCount:t,wordCount:n}=St(e);this.statusBar.update({charCount:t,wordCount:n,blockCount:((r=this.incremental)==null?void 0:r.getBlockCount())??0,mode:this.mode,autoPreview:this.autoPreview})}getValue(){return this.codeEditor.getValue()}setValue(e){var t;this.codeEditor.setValue(e),(t=this.scheduledRender)==null||t.cancel(),this.renderPreview(e),this.updateStatusBar(e)}getHtml(){return this.renderer.render(this.getValue())}renderNow(){var e;(e=this.scheduledRender)==null||e.cancel(),this.renderPreview(this.codeEditor.getValue())}setAutoPreview(e){this.autoPreview=e,e&&this.renderPreview(this.codeEditor.getValue()),this.updateStatusBar(this.codeEditor.getValue())}setMode(e){var t,n,r;e!==this.mode&&(this.mode=e,this.container.classList.remove("md-editor-mode-simple","md-editor-mode-complex"),this.container.classList.add(`md-editor-mode-${e}`),this.codeEditor.setLineNumbers(e==="complex"),(t=this.toolbar)==null||t.destroy(),this.toolbar=null,(n=this.statusBar)==null||n.destroy(),this.statusBar=null,(r=this.activePopup)==null||r.destroy(),this.activePopup=null,e==="complex"&&(this.buildToolbar(),this.buildStatusBar(),this.updateStatusBar(this.codeEditor.getValue())))}setTheme(e){var t;this.theme=e,this.container.setAttribute("data-theme",e),this.codeEditor.setTheme(e),(t=this.toolbar)==null||t.setIcon("theme",e==="dark"?Y.sun:Y.moon)}focus(){this.codeEditor.focus()}destroy(){var e,t,n,r,s;(e=this.scheduledRender)==null||e.cancel(),this.scheduledRender=null,(t=this.activePopup)==null||t.destroy(),this.activePopup=null,this.codeEditor.destroy(),(n=this.toolbar)==null||n.destroy(),this.toolbar=null,(r=this.statusBar)==null||r.destroy(),this.statusBar=null,(s=this.incremental)==null||s.destroy(),this.incremental=null,this.container.innerHTML="",this.container.classList.remove("md-editor-root",`md-editor-mode-${this.mode}`),this.container.removeAttribute("data-theme")}}exports.CodeEditor=Sn;exports.DEFAULT_SHORTCUTS=hi;exports.IncrementalRenderer=ci;exports.MarkdownEditor=oo;exports.Popup=ge;exports.Renderer=Lt;exports.StatusBar=ai;exports.Toolbar=oi;exports.adaptiveDebounceMs=ui;exports.cancelIdle=io;exports.countText=St;exports.debounce=di;exports.extractYouTubeId=ni;exports.formatShortcut=so;exports.formatShortcutHtml=pi;exports.icons=Y;exports.imageMarkdown=xt;exports.isVideoFile=ri;exports.matchShortcut=ro;exports.renderMarkdown=Zs;exports.scheduleIdle=no;exports.splitIntoBlocks=li;exports.videoMarkdown=si;exports.youTubeEmbedMarkdown=ii;
92
+ `}],i=new X(e,{title:"Insert mindmap",theme:this.theme,fields:[],onSubmit:()=>{}}),r=i.el.querySelector(".md-editor-popup-body");if(r){const o=document.createElement("div");o.className="md-editor-template-grid";for(const c of t){const l=document.createElement("button");l.type="button",l.className="md-editor-template-option",l.innerHTML=`<span class="md-editor-template-label">${c.label}</span><span class="md-editor-template-hint">${c.hint}</span>`,l.addEventListener("click",()=>{this.codeEditor.insertAtCursor(c.snippet),i.hide()}),o.appendChild(l)}r.innerHTML="",r.appendChild(o)}const a=i.el.querySelector(".md-editor-popup-footer");a&&a.remove(),this.activePopup=i,this.activePopup.show()}setupCopyHandler(){this.previewPane&&this.previewPane.addEventListener("click",e=>{const t=e.target.closest(".md-editor-codeblock-copy");if(!t)return;const i=t.closest(".md-editor-codeblock"),r=i==null?void 0:i.querySelector("code");if(!r)return;const a=r.textContent??"";this.copyToClipboard(a,t)})}copyToClipboard(e,t){var r;const i=()=>{const a=t.textContent;t.textContent="Copied!",t.classList.add("is-copied"),window.setTimeout(()=>{t.textContent=a,t.classList.remove("is-copied")},2e3)};(r=navigator.clipboard)!=null&&r.writeText?navigator.clipboard.writeText(e).then(i).catch(()=>{this.fallbackCopy(e,i)}):this.fallbackCopy(e,i)}fallbackCopy(e,t){try{const i=document.createElement("textarea");i.value=e,i.style.position="fixed",i.style.opacity="0",document.body.appendChild(i),i.select();const r=document.execCommand("copy");document.body.removeChild(i),r&&t()}catch{}}escapeHtml(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}insertSnippet(e){const[t,i,r]=ct[e];this.codeEditor.insertAtCursor(`${t}${r}${i}`)}wrapSnippet(e){const[t,i,r]=ct[e];this.codeEditor.wrapSelection(t,i,r)}togglePreview(){var t;if(!this.previewPane)return;const e=this.previewPane.style.display!=="none";this.previewPane.style.display=e?"none":"",(t=this.toolbar)==null||t.setActive("preview",!e)}requestPreviewRender(e){var i,r;const t=this.renderDebounceOpt===!1?0:this.renderDebounceOpt??Vt(e.length);if(t===0){(i=this.scheduledRender)==null||i.cancel(),this.scheduledRender=null,this.renderPreview(e);return}(!this.scheduledRender||this.scheduledWait!==t)&&((r=this.scheduledRender)==null||r.cancel(),this.scheduledRender=Zt(a=>this.renderPreview(a),t),this.scheduledWait=t),this.scheduledRender(e)}renderPreview(e){if(!this.previewPane||!this.incremental)return;let t=0;try{t=this.incremental.update(e).totalCount}catch{this.previewPane.innerHTML=`<pre style="padding:16px;white-space:pre-wrap;word-break:break-word;">${this.escapeHtml(e)}</pre>`}if(this.renderer.hydrate(this.previewPane).catch(()=>{}),this.statusBar){const{charCount:i,wordCount:r}=Oe(e);this.statusBar.update({charCount:i,wordCount:r,blockCount:t,mode:this.mode,autoPreview:this.autoPreview})}}updateStatusBar(e){var r;if(!this.statusBar)return;const{charCount:t,wordCount:i}=Oe(e);this.statusBar.update({charCount:t,wordCount:i,blockCount:((r=this.incremental)==null?void 0:r.getBlockCount())??0,mode:this.mode,autoPreview:this.autoPreview})}getValue(){return this.codeEditor.getValue()}setValue(e){var t;this.codeEditor.setValue(e),(t=this.scheduledRender)==null||t.cancel(),this.renderPreview(e),this.updateStatusBar(e)}getHtml(){return this.renderer.render(this.getValue())}renderNow(){var e;(e=this.scheduledRender)==null||e.cancel(),this.renderPreview(this.codeEditor.getValue())}setAutoPreview(e){this.autoPreview=e,e&&this.renderPreview(this.codeEditor.getValue()),this.updateStatusBar(this.codeEditor.getValue())}setMode(e){var t,i,r;e!==this.mode&&(this.mode=e,this.container.classList.remove("md-editor-mode-simple","md-editor-mode-complex"),this.container.classList.add(`md-editor-mode-${e}`),this.codeEditor.setLineNumbers(e==="complex"),(t=this.toolbar)==null||t.destroy(),this.toolbar=null,(i=this.statusBar)==null||i.destroy(),this.statusBar=null,(r=this.activePopup)==null||r.destroy(),this.activePopup=null,e==="complex"&&(this.buildToolbar(),this.buildStatusBar(),this.updateStatusBar(this.codeEditor.getValue())))}setTheme(e){var t;this.theme=e,this.container.setAttribute("data-theme",e),this.codeEditor.setTheme(e),(t=this.toolbar)==null||t.setIcon("theme",e==="dark"?O.sun:O.moon)}focus(){this.codeEditor.focus()}destroy(){var e,t,i,r,a;(e=this.scheduledRender)==null||e.cancel(),this.scheduledRender=null,(t=this.activePopup)==null||t.destroy(),this.activePopup=null,this.codeEditor.destroy(),(i=this.toolbar)==null||i.destroy(),this.toolbar=null,(r=this.statusBar)==null||r.destroy(),this.statusBar=null,(a=this.incremental)==null||a.destroy(),this.incremental=null,this.container.innerHTML="",this.container.classList.remove("md-editor-root",`md-editor-mode-${this.mode}`),this.container.removeAttribute("data-theme")}}exports.CodeEditor=lt;exports.DEFAULT_SHORTCUTS=Xt;exports.IncrementalRenderer=Yt;exports.MarkdownEditor=br;exports.Popup=X;exports.Renderer=$e;exports.StatusBar=Gt;exports.Toolbar=qt;exports.adaptiveDebounceMs=Vt;exports.cancelIdle=gr;exports.countText=Oe;exports.debounce=Zt;exports.extractYouTubeId=Ht;exports.formatShortcut=fr;exports.formatShortcutHtml=Qt;exports.icons=O;exports.imageMarkdown=Re;exports.isVideoFile=zt;exports.matchShortcut=mr;exports.renderMarkdown=or;exports.scheduleIdle=pr;exports.splitIntoBlocks=Wt;exports.videoMarkdown=Kt;exports.youTubeEmbedMarkdown=Ft;