@powerduck/md-editor 0.8.5 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +11 -11
- package/dist/index.mjs +647 -634
- package/dist/plugins/doclink.d.ts +2 -0
- package/dist/plugins/mention.d.ts +4 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
"use strict";var tn=Object.create;var ze=Object.defineProperty;var nn=Object.getOwnPropertyDescriptor;var rn=Object.getOwnPropertyNames;var sn=Object.getPrototypeOf,on=Object.prototype.hasOwnProperty;var an=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of rn(e))!on.call(n,r)&&r!==t&&ze(n,r,{get:()=>e[r],enumerable:!(i=nn(e,r))||i.enumerable});return n};var Ke=(n,e,t)=>(t=n!=null?tn(sn(n)):{},an(e||!n||!n.__esModule?ze(t,"default",{value:n,enumerable:!0}):t,n));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ne=require("@codemirror/state"),Q=require("@codemirror/view"),Se=require("@codemirror/commands"),cn=require("@codemirror/lang-markdown"),ln=require("@codemirror/language-data"),dn=require("markdown-it"),Ge=require("katex");class un{constructor(e,t={}){this.dropdown=null,this.items=[],this.selectedIndex=0,this.trigger=null,this.searchAbort=null,this.destroyed=!1,this.view=e,this.options={onMentionSearch:t.onMentionSearch??(()=>[]),onMentionSelect:t.onMentionSelect??(i=>`@${i.label}`),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)}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.renderDropdown(),!0;case"ArrowUp":return e.preventDefault(),this.selectedIndex=(this.selectedIndex-1+this.items.length)%this.items.length,this.renderDropdown(),!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.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.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"),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),i.addEventListener("mousedown",s=>{s.preventDefault(),this.selectItem(t)}),i.addEventListener("mouseenter",()=>{this.selectedIndex=t,this.renderDropdown()}),this.dropdown.appendChild(i)}))}positionDropdown(){if(!this.dropdown||!this.trigger)return;const e=this.view.coordsAtPos(this.trigger.from);if(!e)return;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];if(!t||!this.trigger)return;const i=this.options.onMentionSelect(t),{head:r}=this.view.state.selection.main;this.view.dispatch({changes:{from:this.trigger.from,to:r,insert:i},selection:{anchor:this.trigger.from+i.length}}),this.hide(),this.view.focus()}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()}}class hn{constructor(e,t={}){this.dropdown=null,this.items=[],this.selectedIndex=0,this.trigger=null,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}}update(){if(this.destroyed)return;const e=this.findTrigger();if(!e){this.hide();return}this.trigger=e,this.runSearch(e.query)}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.renderDropdown(),!0;case"ArrowUp":return e.preventDefault(),this.selectedIndex=(this.selectedIndex-1+this.items.length)%this.items.length,this.renderDropdown(),!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.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.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"),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),i.addEventListener("mousedown",o=>{o.preventDefault(),this.selectItem(t)}),i.addEventListener("mouseenter",()=>{this.selectedIndex=t,this.renderDropdown()}),this.dropdown.appendChild(i)}))}positionDropdown(){if(!this.dropdown||!this.trigger)return;const e=this.view.coordsAtPos(this.trigger.from);if(!e)return;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];if(!t||!this.trigger)return;const{head:i}=this.view.state.selection.main,r=this.trigger.from;this.view.dispatch({changes:{from:r,to:i,insert:""}});const a=await this.buildInsertion(t);this.view.dispatch({changes:{from:r,insert:a},selection:{anchor:r+a.length}}),this.hide(),this.view.focus()}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)&&this.options.onFetchDocMeta)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(``),i.description&&s.push(i.description),s.push(":::"),`
|
|
1
|
+
"use strict";var tn=Object.create;var ze=Object.defineProperty;var nn=Object.getOwnPropertyDescriptor;var rn=Object.getOwnPropertyNames;var sn=Object.getPrototypeOf,on=Object.prototype.hasOwnProperty;var an=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of rn(e))!on.call(n,r)&&r!==t&&ze(n,r,{get:()=>e[r],enumerable:!(i=nn(e,r))||i.enumerable});return n};var Ke=(n,e,t)=>(t=n!=null?tn(sn(n)):{},an(e||!n||!n.__esModule?ze(t,"default",{value:n,enumerable:!0}):t,n));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Se=require("@codemirror/state"),Q=require("@codemirror/view"),Ne=require("@codemirror/commands"),cn=require("@codemirror/lang-markdown"),ln=require("@codemirror/language-data"),dn=require("markdown-it"),Ge=require("katex");class un{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}`),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)}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.renderDropdown(),!0;case"ArrowUp":return e.preventDefault(),this.selectedIndex=(this.selectedIndex-1+this.items.length)%this.items.length,this.renderDropdown(),!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.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"),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),i.addEventListener("mousedown",s=>{s.preventDefault(),s.stopPropagation(),this.selectItem(t)}),i.addEventListener("click",s=>{s.preventDefault(),s.stopPropagation(),this.selectItem(t)}),i.addEventListener("mouseenter",()=>{this.selectedIndex=t,this.renderDropdown()}),this.dropdown.appendChild(i)}))}positionDropdown(){if(!this.dropdown||!this.trigger)return;const e=this.view.coordsAtPos(this.trigger.from);if(!e)return;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),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()}}async function hn(n){const e=await fetch(n,{mode:"cors"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=await e.text();return pn(t,n)}function pn(n,e){var c,l,d,h,p,m,y;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"))??((h=i.querySelector('meta[name="description"]'))==null?void 0:h.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"))??((y=i.querySelector('meta[name="twitter:image"]'))==null?void 0:y.getAttribute("content"));return o&&(t.thumbnail=o.startsWith("http")?o:new URL(o,e).href),t}class gn{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??hn}}update(){if(this.destroyed)return;const e=this.findTrigger();if(!e){this.hide();return}this.trigger=e,this.runSearch(e.query)}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.renderDropdown(),!0;case"ArrowUp":return e.preventDefault(),this.selectedIndex=(this.selectedIndex-1+this.items.length)%this.items.length,this.renderDropdown(),!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.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"),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),i.addEventListener("mousedown",o=>{o.preventDefault(),o.stopPropagation(),this.selectItem(t)}),i.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),this.selectItem(t)}),i.addEventListener("mouseenter",()=>{this.selectedIndex=t,this.renderDropdown()}),this.dropdown.appendChild(i)}))}positionDropdown(){if(!this.dropdown||!this.trigger)return;const e=this.view.coordsAtPos(this.trigger.from);if(!e)return;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(``),i.description&&s.push(i.description),s.push(":::"),`
|
|
2
2
|
`+s.join(`
|
|
3
3
|
`)+`
|
|
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
|
|
5
|
-
`).map(
|
|
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 mn=/^:::doc-link\s+(\S+)(?:\s+(.+))?$/,fn=/^:::\s*$/;function bn(n){n.block.ruler.before("fence","doclink_block",(e,t,i,r)=>{const s=e.src.slice(e.bMarks[t],e.eMarks[t]).match(mn);if(!s)return!1;const o=s[1]??"";let c=t+1,l=!1;for(;c<i;){const f=e.src.slice(e.bMarks[c],e.eMarks[c]);if(fn.test(f.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(f=>f.trim()).filter(f=>f.length>0);let h="",p="";const m=[];for(const f of d)if(f.startsWith("# "))h=f.slice(2).trim();else if(f.startsWith("){const v=f.match(/^!\[thumbnail\]\((.+)\)$/);v&&(p=v[1]??"")}else m.push(f);const y=e.push("doclink_block","div",0);return y.content=JSON.stringify({url:o,title:h,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="${qe(o)}" alt="" loading="lazy" /></div>`:"";return`<a class="md-editor-doclink-card" href="${qe(a)}" target="_blank" rel="noopener noreferrer"><div class="md-editor-doclink-card-body"><div class="md-editor-doclink-card-title">${Ae(s)}</div>`+(c?`<div class="md-editor-doclink-card-desc">${Ae(c)}</div>`:"")+`<div class="md-editor-doclink-card-url">${Ae(l)}</div></div>`+d+"</a>"}}function Ae(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function qe(n){return n.replace(/"/g,""").replace(/</g,"<")}class st{constructor(e,t){var r,a;this.lineNumbersCompartment=new Se.Compartment,this.customKeymapCompartment=new Se.Compartment,this.mention=null,this.docLink=null,this.onImageFile=t.onImageFile;const i=[Ne.history(),Q.keymap.of([...Ne.defaultKeymap,...Ne.historyKeymap]),this.customKeymapCompartment.of([]),cn.markdown({codeLanguages:ln.languages}),Q.EditorView.lineWrapping,this.lineNumbersCompartment.of(t.lineNumbers?Q.lineNumbers():[]),Q.EditorView.updateListener.of(s=>{var o,c,l;(s.docChanged||s.selectionSet)&&((o=t.onChange)==null||o.call(t,s.state.doc.toString()),(c=this.mention)==null||c.update(),(l=this.docLink)==null||l.update())}),Q.EditorView.domEventHandlers({paste:s=>this.handlePaste(s),drop:s=>this.handleDrop(s),blur:()=>{window.setTimeout(()=>{var s,o;this.view.dom.contains(document.activeElement)||((s=this.mention)==null||s.hide(),(o=this.docLink)==null||o.hide())},150)},keydown:s=>{var o,c;return!!((o=this.mention)!=null&&o.handleKey(s)||(c=this.docLink)!=null&&c.handleKey(s))}})];this.view=new Q.EditorView({state:Se.EditorState.create({doc:t.value??"",extensions:i}),parent:e}),(r=t.mention)!=null&&r.onMentionSearch&&(this.mention=new un(this.view,t.mention)),(a=t.docLink)!=null&&a.onDocSearch&&(this.docLink=new gn(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(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():[])})}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
6
|
`).map(c=>`${e}${c}`).join(`
|
|
7
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(`
|
|
8
8
|
`):[t]).map(h=>`${e}${h}`).join(`
|
|
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
|
|
10
|
-
`);this.view.dispatch({changes:{from:i.from,to:r.to,insert:l},selection:{anchor:i.from,head:i.from+l.length}}),this.view.focus()}destroy(){var e,t;(e=this.mention)==null||e.destroy(),(t=this.docLink)==null||t.destroy(),this.view.destroy()}}const fn=/^\$([^$\n]+?)\$/;function bn(n){return/^[\d.,]+$/.test(n.trim())}function _n(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 h=e.push("math_block","div",0);return h.content=s[1].trim(),h.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">${Ge.renderToString(i,{displayMode:!0,throwOnError:!1,strict:!1})}</div>`}catch{return`<div class="md-editor-math-block md-editor-math-error">${We(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(fn);if(!i)return!1;const r=i[1]??"";if(bn(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 Ge.renderToString(i,{displayMode:!1,throwOnError:!1,strict:!1})}catch{return`<span class="md-editor-math-error">$${We(i)}$</span>`}}}function We(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}typeof globalThis.ResizeObserver>"u"&&(globalThis.ResizeObserver=class{observe(){}unobserve(){}disconnect(){}});let Ye=0;function En(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 h=i+1,g=1;for(;h<r;){const b=t.bMarks[h]+t.tShift[h],w=t.eMarks[h],O=t.src.slice(b,w).match(/^(`{3,})\s*(.*)$/);if(O&&O[1].length>=d){if(O[2].trim())g++;else if(g--,g===0)break}h++}const m=h<r?h:r-1,y=t.push("mindmap_block","div",0);return y.content=t.getLines(i+1,m,t.blkIndent,!0),y.map=[i,m+1],y.markup=l[1],y.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-${++Ye}`,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-${++Ye}`,d=encodeURIComponent(o.content);return`<div class="md-editor-mindmap" id="${l}" data-source="${d}"></div>`}return e(t,i,r,a,s)}}const yn=600,wn=320;async function vn(n){const e=n.querySelectorAll(".md-editor-mindmap:not([data-hydrated])");if(e.length===0)return;const{Transformer:t}=await import("markmap-lib"),i=await import("markmap-view"),r=i.Markmap??i.default;if(!r)return;const a=new t;for(const s of Array.from(e)){s.setAttribute("data-hydrated","1");const o=decodeURIComponent(s.dataset.source??"")||"- Empty mindmap",{root:c}=a.transform(o);s.innerHTML="";const l=s.clientWidth>0?s.clientWidth:yn,d=s.clientHeight>0?s.clientHeight:wn,h=document.createElementNS("http://www.w3.org/2000/svg","svg");h.setAttribute("width",String(l)),h.setAttribute("height",String(d)),h.style.width="100%",h.style.height="100%",h.style.display="block",s.appendChild(h);const g=r.create(h,{autoFit:!1},c),m=()=>{try{const b=h.querySelector("g");if(b){const w=b.getAttribute("transform")||"";(!w||w.includes("NaN"))&&b.setAttribute("transform",`translate(40, ${d/2}) scale(1)`)}}catch{}};m(),(typeof requestAnimationFrame=="function"?requestAnimationFrame:b=>setTimeout(b,16))(()=>{var b;try{const w=h.getBoundingClientRect();w.width>0&&w.height>0&&((b=g.fit)==null||b.call(g),m())}catch{}})}}function kn(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function ot(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)&&ot(t)}),n}class Ze{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function at(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function J(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 Tn="</span>",Ve=n=>!!n.scope,Nn=(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 Sn{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=at(e)}openNode(e){if(!Ve(e))return;const t=Nn(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){Ve(e)&&(this.buffer+=Tn)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}const Xe=(n={})=>{const e={children:[]};return Object.assign(e,n),e};class Re{constructor(){this.rootNode=Xe(),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=Xe({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=>{Re._collapse(t)}))}}class An extends Re{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 Sn(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function ue(n){return n?typeof n=="string"?n:n.source:null}function ct(n){return ie("(?=",n,")")}function xn(n){return ie("(?:",n,")*")}function Cn(n){return ie("(?:",n,")?")}function ie(...n){return n.map(t=>ue(t)).join("")}function Mn(n){const e=n[n.length-1];return typeof e=="object"&&e.constructor===Object?(n.splice(n.length-1,1),e):{}}function ye(...n){return"("+(Mn(n).capture?"":"?:")+n.map(i=>ue(i)).join("|")+")"}function lt(n){return new RegExp(n.toString()+"|").exec("").length-1}function Rn(n,e){const t=n&&n.exec(e);return t&&t.index===0}const On=new RegExp(ye(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function Oe(n,{joinWith:e}){let t=0;return n.map(i=>{t+=1;const r=t;let a=ue(i),s="";for(;a.length>0;){const o=On.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 In=/\b\B/,dt="[a-zA-Z]\\w*",Ie="[a-zA-Z_]\\w*",ut="\\b\\d+(\\.\\d+)?",ht="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",pt="\\b(0b[01]+)",Ln="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Dn=(n={})=>{const e=/^#![ ]*\//;return n.binary&&(n.begin=ie(e,/.*\b/,n.binary,/\b.*/)),J({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,i)=>{t.index!==0&&i.ignoreMatch()}},n)},he={begin:"\\\\[\\s\\S]",relevance:0},Pn={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[he]},Bn={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[he]},$n={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/},we=function(n,e,t={}){const i=J({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=ye("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:ie(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},Un=we("//","$"),Fn=we("/\\*","\\*/"),Hn=we("#","$"),zn={scope:"number",begin:ut,relevance:0},Kn={scope:"number",begin:ht,relevance:0},Gn={scope:"number",begin:pt,relevance:0},qn={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[he,{begin:/\[/,end:/\]/,relevance:0,contains:[he]}]},Wn={scope:"title",begin:dt,relevance:0},Yn={scope:"title",begin:Ie,relevance:0},Zn={begin:"\\.\\s*"+Ie,relevance:0},Vn=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 me=Object.freeze({__proto__:null,APOS_STRING_MODE:Pn,BACKSLASH_ESCAPE:he,BINARY_NUMBER_MODE:Gn,BINARY_NUMBER_RE:pt,COMMENT:we,C_BLOCK_COMMENT_MODE:Fn,C_LINE_COMMENT_MODE:Un,C_NUMBER_MODE:Kn,C_NUMBER_RE:ht,END_SAME_AS_BEGIN:Vn,HASH_COMMENT_MODE:Hn,IDENT_RE:dt,MATCH_NOTHING_RE:In,METHOD_GUARD:Zn,NUMBER_MODE:zn,NUMBER_RE:ut,PHRASAL_WORDS_MODE:$n,QUOTE_STRING_MODE:Bn,REGEXP_MODE:qn,RE_STARTERS_RE:Ln,SHEBANG:Dn,TITLE_MODE:Wn,UNDERSCORE_IDENT_RE:Ie,UNDERSCORE_TITLE_MODE:Yn});function Xn(n,e){n.input[n.index-1]==="."&&e.ignoreMatch()}function Qn(n,e){n.className!==void 0&&(n.scope=n.className,delete n.className)}function Jn(n,e){e&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=Xn,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function jn(n,e){Array.isArray(n.illegal)&&(n.illegal=ye(...n.illegal))}function ei(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 ti(n,e){n.relevance===void 0&&(n.relevance=1)}const ni=(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=ie(t.beforeMatch,ct(t.begin)),n.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},n.relevance=0,delete t.beforeMatch},ii=["of","and","for","in","not","or","if","then","parent","list","value"],ri="keyword";function gt(n,e,t=ri){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,gt(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,si(c[0],c[1])]})}}function si(n,e){return e?Number(e):oi(n)?0:1}function oi(n){return ii.includes(n.toLowerCase())}const Qe={},ne=n=>{console.error(n)},Je=(n,...e)=>{console.log(`WARN: ${n}`,...e)},re=(n,e)=>{Qe[`${n}/${e}`]||(console.log(`Deprecated as of ${n}. ${e}`),Qe[`${n}/${e}`]=!0)},_e=new Error;function mt(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+=lt(e[o-1]);n[t]=s,n[t]._emit=a,n[t]._multi=!0}function ai(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw ne("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),_e;if(typeof n.beginScope!="object"||n.beginScope===null)throw ne("beginScope must be object"),_e;mt(n,n.begin,{key:"beginScope"}),n.begin=Oe(n.begin,{joinWith:""})}}function ci(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw ne("skip, excludeEnd, returnEnd not compatible with endScope: {}"),_e;if(typeof n.endScope!="object"||n.endScope===null)throw ne("endScope must be object"),_e;mt(n,n.end,{key:"endScope"}),n.end=Oe(n.end,{joinWith:""})}}function li(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function di(n){li(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),ai(n),ci(n)}function ui(n){function e(s,o){return new RegExp(ue(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+=lt(o)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const o=this.regexes.map(c=>c[1]);this.matcherRe=e(Oe(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((h,g)=>g>0&&h!==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;[Qn,ei,di,ni].forEach(d=>d(s,o)),n.compilerExtensions.forEach(d=>d(s,o)),s.__beforeBegin=null,[Jn,jn,ti].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=gt(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=ue(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 hi(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=J(n.classNameAliases||{}),a(n)}function ft(n){return n?n.endsWithParent||ft(n.starts):!1}function hi(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return J(n,{variants:null},e)})),n.cachedVariants?n.cachedVariants:ft(n)?J(n,{starts:n.starts?J(n.starts):null}):Object.isFrozen(n)?J(n):n}var pi="11.12.0";class gi extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const xe=at,je=J,et=Symbol("nomatch"),mi=7,bt=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:An};function c(u){return o.noHighlightRe.test(u)}function l(u){let _=u.className+" ";_+=u.parentNode?u.parentNode.className:"";const f=o.languageDetectRe.exec(_);if(f){const k=$(f[1]);return k||(Je(a.replace("{}",f[1])),Je("Falling back to no-highlight mode for this block.",u)),k?f[1]:"no-highlight"}return _.split(/\s+/).find(k=>c(k)||$(k))}function d(u,_,f){let k="",N="";typeof _=="object"?(k=u,f=_.ignoreIllegals,N=_.language):(re("10.7.0","highlight(lang, code, ...args) has been deprecated."),re("10.7.0",`Please use highlight(code, options) instead.
|
|
11
|
-
https://github.com/highlightjs/highlight.js/issues/2277`),
|
|
12
|
-
`),1;if(ke>1e5&&ke>E.index*3)throw new Error("potential infinite loop, way more iterations than matches");return C+=T,T.length}const Y=$(u);if(!Y)throw ne(a.replace("{}",u)),new Error('Unknown language: "'+u+'"');const Jt=ui(Y);let ve="",v=k||Jt;const He={},H=new o.__emitter(o);Qt();let C="",ge=0,ee=0,ke=0,Te=!1;try{if(Y.__emitTokens)Y.__emitTokens(_,H);else{for(v.matcher.considerAll();;){ke++,Te?Te=!1:v.matcher.considerAll(),v.matcher.lastIndex=ee;const p=v.matcher.exec(_);if(!p)break;const E=_.substring(ee,p.index),T=Fe(E,p);ee=p.index+T}Fe(_.substring(ee))}return H.finalize(),ve=H.toHTML(),{language:u,value:ve,relevance:ge,illegal:!1,_emitter:H,_top:v}}catch(p){if(p.message&&p.message.includes("Illegal"))return{language:u,value:xe(_),illegal:!0,relevance:0,_illegalBy:{message:p.message,index:ee,context:_.slice(ee-100,ee+100),mode:p.mode,resultSoFar:ve},_emitter:H};if(r)return{language:u,value:xe(_),illegal:!1,relevance:0,errorRaised:p,_emitter:H,_top:v};throw p}}function g(u){const _={value:xe(u),illegal:!1,relevance:0,_top:s,_emitter:new o.__emitter(o)};return _._emitter.addText(u),_}function m(u,_){_=_||o.languages||Object.keys(e);const f=g(u),k=_.filter($).filter(V).map(G=>h(G,u,!1));k.unshift(f);const N=k.sort((G,W)=>{if(G.relevance!==W.relevance)return W.relevance-G.relevance;if(G.language&&W.language){if($(G.language).supersetOf===W.language)return 1;if($(W.language).supersetOf===G.language)return-1}return 0}),[P,z]=N,q=P;return q.secondBest=z,q}function y(u,_,f){const k=_&&t[_]||f;u.classList.add("hljs"),u.classList.add(`language-${k}`)}function b(u){let _=null;const f=l(u);if(c(f))return;if(X("before:highlightElement",{el:u,language:f}),u.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",u);return}if(u.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(u)),o.throwUnescapedHTML))throw new gi("One of your code blocks includes unescaped HTML.",u.innerHTML);_=u;const k=_.textContent,N=f?d(k,{language:f,ignoreIllegals:!0}):m(k);u.innerHTML=N.value,u.dataset.highlighted="yes",y(u,f,N.language),u.result={language:N.language,re:N.relevance,relevance:N.relevance},N.secondBest&&(u.secondBest={language:N.secondBest.language,relevance:N.secondBest.relevance}),X("after:highlightElement",{el:u,result:N,text:k})}function w(u){o=je(o,u)}const R=()=>{x(),re("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function O(){x(),re("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let U=!1;function x(){function u(){x()}if(document.readyState==="loading"){U||window.addEventListener("DOMContentLoaded",u,!1),U=!0;return}document.querySelectorAll(o.cssSelector).forEach(b)}function I(u,_){let f=null;try{f=_(n)}catch(k){if(ne("Language definition for '{}' could not be registered.".replace("{}",u)),r)ne(k);else throw k;f=s}f.name||(f.name=u),e[u]=f,f.rawDefinition=_.bind(null,n),f.aliases&&F(f.aliases,{languageName:u})}function D(u){delete e[u];for(const _ of Object.keys(t))t[_]===u&&delete t[_]}function B(){return Object.keys(e)}function $(u){return u=(u||"").toLowerCase(),e[u]||e[t[u]]}function F(u,{languageName:_}){typeof u=="string"&&(u=[u]),u.forEach(f=>{t[f.toLowerCase()]=_})}function V(u){const _=$(u);return _&&!_.disableAutodetect}function j(u){u["before:highlightBlock"]&&!u["before:highlightElement"]&&(u["before:highlightElement"]=_=>{u["before:highlightBlock"](Object.assign({block:_.el},_))}),u["after:highlightBlock"]&&!u["after:highlightElement"]&&(u["after:highlightElement"]=_=>{u["after:highlightBlock"](Object.assign({block:_.el},_))})}function ae(u){j(u),i.push(u)}function ce(u){const _=i.indexOf(u);_!==-1&&i.splice(_,1)}function X(u,_){const f=u;i.forEach(function(k){k[f]&&k[f](_)})}function le(u){return re("10.7.0","highlightBlock will be removed entirely in v12.0"),re("10.7.0","Please use highlightElement now."),b(u)}Object.assign(n,{highlight:d,highlightAuto:m,highlightAll:x,highlightElement:b,highlightBlock:le,configure:w,initHighlighting:R,initHighlightingOnLoad:O,registerLanguage:I,unregisterLanguage:D,listLanguages:B,getLanguage:$,registerAliases:F,autoDetection:V,inherit:je,addPlugin:ae,removePlugin:ce}),n.debugMode=function(){r=!1},n.safeMode=function(){r=!0},n.versionString=pi,n.regex={concat:ie,lookahead:ct,either:ye,optional:Cn,anyNumberOfTimes:xn};for(const u in me)typeof me[u]=="object"&&ot(me[u]);return Object.assign(n,me),n},oe=bt({});oe.newInstance=()=>bt({});var fi=oe;oe.HighlightJS=oe;oe.default=oe;const S=kn(fi),tt="[A-Za-z$_][0-9A-Za-z$_]*",bi=["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"],_i=["true","false","null","undefined","NaN","Infinity"],_t=["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"],Et=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],yt=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ei=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],yi=[].concat(yt,_t,Et);function wt(n){const e=n.regex,t=(f,{after:k})=>{const N="</"+f[0].slice(1);return f.input.indexOf(N,k)!==-1},i=tt,r={begin:"<>",end:"</>"},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(f,k)=>{const N=f[0].length+f.index,P=f.input[N];if(P==="<"||P===","){k.ignoreMatch();return}P===">"&&(t(f,{after:N})||k.ignoreMatch());let z;const q=f.input.substring(N);if(z=q.match(/^\s*=/)){k.ignoreMatch();return}if((z=q.match(/^\s+extends\s+/))&&z.index===0){k.ignoreMatch();return}}},o={$pattern:tt,keyword:bi,literal:_i,built_in:yi,"variable.language":Ei},c="[0-9](_?[0-9])*",l=`\\.(${c})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={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},g={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},m={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,g],subLanguage:"xml"}},y={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,g],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,g],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,g]},O={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]},U=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,y,b,w,{match:/\$\d+/},h];g.contains=U.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(U)});const x=[].concat(O,g.contains),I=x.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(x)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:I},B={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"}}]},$={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:{_:[..._t,...Et]}},F={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},V={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ae(f){return e.concat("(?!",f.join("|"),")")}const ce={match:e.concat(/\b/,ae([...yt,"super","import","await"].map(f=>`${f}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},X={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},u="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",_={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(u)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:I,CLASS_REFERENCE:$},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),F,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,y,b,w,O,{match:/\$\d+/},h,$,{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:[O,n.REGEXP_MODE,{className:"function",begin:u,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:I}]}]},{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"]}]}]},V,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,n.inherit(n.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},X,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,j,B,le,{match:/\$[(.]/}]}}const Ee="[A-Za-z$_][0-9A-Za-z$_]*",vt=["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"],kt=["true","false","null","undefined","NaN","Infinity"],Tt=["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"],Nt=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],St=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],At=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],xt=[].concat(St,Tt,Nt);function wi(n){const e=n.regex,t=(f,{after:k})=>{const N="</"+f[0].slice(1);return f.input.indexOf(N,k)!==-1},i=Ee,r={begin:"<>",end:"</>"},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(f,k)=>{const N=f[0].length+f.index,P=f.input[N];if(P==="<"||P===","){k.ignoreMatch();return}P===">"&&(t(f,{after:N})||k.ignoreMatch());let z;const q=f.input.substring(N);if(z=q.match(/^\s*=/)){k.ignoreMatch();return}if((z=q.match(/^\s+extends\s+/))&&z.index===0){k.ignoreMatch();return}}},o={$pattern:Ee,keyword:vt,literal:kt,built_in:xt,"variable.language":At},c="[0-9](_?[0-9])*",l=`\\.(${c})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={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},g={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},m={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,g],subLanguage:"xml"}},y={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,g],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,g],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,g]},O={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]},U=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,y,b,w,{match:/\$\d+/},h];g.contains=U.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(U)});const x=[].concat(O,g.contains),I=x.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(x)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:I},B={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"}}]},$={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:{_:[...Tt,...Nt]}},F={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},V={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ae(f){return e.concat("(?!",f.join("|"),")")}const ce={match:e.concat(/\b/,ae([...St,"super","import","await"].map(f=>`${f}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},X={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},u="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",_={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(u)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:I,CLASS_REFERENCE:$},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),F,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,y,b,w,O,{match:/\$\d+/},h,$,{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:[O,n.REGEXP_MODE,{className:"function",begin:u,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:I}]}]},{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"]}]}]},V,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,n.inherit(n.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},X,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,j,B,le,{match:/\$[(.]/}]}}function Ct(n){const e=n.regex,t=wi(n),i=Ee,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:Ee,keyword:vt.concat(c),literal:kt,built_in:xt.concat(r),"variable.language":At},d={className:"meta",begin:"@"+i},h=(b,w,R)=>{const O=b.contains.findIndex(U=>U.label===w);if(O===-1)throw new Error("can not find mode to replace");b.contains.splice(O,1,R)};Object.assign(t.keywords,l),t.exports.PARAMS_CONTAINS.push(d);const g=t.contains.find(b=>b.scope==="attr"),m=Object.assign({},g,{match:e.concat(i,e.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,g,m]),t.contains=t.contains.concat([d,a,s,m]),h(t,"shebang",n.SHEBANG()),h(t,"use_strict",o);const y=t.contains.find(b=>b.label==="func.def");return y.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}function Mt(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},h={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]},g="[0-9](_?[0-9])*",m=`(\\b(${g}))?\\.(${g})|\\b(${g})\\.`,y=`\\b|${i.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${g})|(${m}))[eE][+-]?(${g})[jJ]?(?=${y})`},{begin:`(${m})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${y})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${y})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${y})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${y})`},{begin:`\\b(${g})[jJ](?=${y})`}]},w={className:"comment",begin:e.lookahead(/# type:/),end:/$/,keywords:o,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},R={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:["self",c,b,h,n.HASH_COMMENT_MODE]}]};return l.contains=[h,b,c],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:o,illegal:/(<\/|\?)|=>/,contains:[c,b,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},h,w,n.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[R]},{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:[b,R,h]}]}}const vi="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",ki={scope:"number",match:vi,relevance:0};function Ti(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,ki,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function Le(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:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},n.NUMBER_MODE,t]},g=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],m=n.SHEBANG({binary:`(${g.join("|")})`,relevance:10}),y={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[n.inherit(n.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},b=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],w=["true","false"],R={match:/(\/[a-z._-]+)+/},O=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],U=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],x=["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"],I=["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:b,literal:w,built_in:[...O,...U,"set","shopt",...x,...I]},contains:[m,n.SHEBANG(),y,h,a,s,R,o,c,l,d,t]}}const Ni=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_-]*/}}),Si=["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"],Ai=["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"],xi=[...Si,...Ai],Ci=["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(),Mi=["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(),Ri=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Oi=["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 Ii(n){const e=n.regex,t=Ni(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:":("+Mi.join("|")+")"},{begin:":(:)?("+Ri.join("|")+")"}]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Oi.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:Ci.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,t.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+xi.join("|")+")\\b"}]}}function De(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 Li(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"],h=["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"],g=["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,y=[...l,...c].filter(I=>!d.includes(I)),b={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},w={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},R={match:e.concat(/\b/,e.either(...m),/\s*\(/),relevance:0,keywords:{built_in:m}};function O(I){return e.concat(/\b/,e.either(...I.map(D=>D.replace(/\s+/,"\\s+"))),/\b/)}const U={scope:"keyword",match:O(g),relevance:0};function x(I,{exceptions:D,when:B}={}){const $=B;return D=D||[],I.map(F=>F.match(/\|\d+$/)||D.includes(F)?F:$(F)?`${F}|0`:F)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:x(y,{when:I=>I.length<3}),literal:a,type:o,built_in:h},contains:[{scope:"type",match:O(s)},U,R,b,i,r,n.C_NUMBER_MODE,n.C_BLOCK_COMMENT_MODE,t,w]}}function Rt(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,{}[\]]+/}]}),g={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},y={begin:/\{/,end:/\}/,contains:[m],illegal:"\\n",relevance:0},b={begin:"\\[",end:"\\]",contains:[m],illegal:"\\n",relevance:0},w=[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}},g,{className:"number",begin:n.C_NUMBER_RE+"\\b",relevance:0},y,b,a,s],R=[...w];return R.pop(),R.push(o),m.contains=R,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:w}}function Ot(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}]},h=n.inherit(l,{contains:[]}),g=n.inherit(d,{contains:[]});l.contains.push(g),d.contains.push(h);let m=[t,c];return[l,d,h,g].forEach(R=>{R.contains=R.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 Di(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 It(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 se="[0-9](_*[0-9])*",fe=`\\.(${se})`,be="[0-9a-fA-F](_*[0-9a-fA-F])*",nt={className:"number",variants:[{begin:`(\\b(${se})((${fe})|\\.)?|(${fe}))[eE][+-]?(${se})[fFdD]?\\b`},{begin:`\\b(${se})((${fe})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${fe})[fFdD]?\\b`},{begin:`\\b(${se})[fFdD]\\b`},{begin:`\\b0[xX]((${be})\\.?|(${be})?\\.(${be}))[pP][+-]?(${se})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${be})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Lt(n,e,t){return t===-1?"":n.replace(e,i=>Lt(n,e,t-1))}function Pi(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=Lt("(?:\\s*<\\s*"+s+"(?:\\s*,\\s*"+s+")*\\s*>)?",/<@@@>/g,2),g={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"]}]},y={className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[n.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:g,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:[y,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:g,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[m,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,nt,n.C_BLOCK_COMMENT_MODE]},n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE]},nt,m]}}function Bi(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})"/})]},h={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},g={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]},y=[g,m],b={className:"title",begin:e.optional(r)+n.IDENT_RE,relevance:0},w=e.optional(r)+n.IDENT_RE+"\\s*\\(",R=12,x={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"},I=[...y,c,t,n.C_BLOCK_COMMENT_MODE,h,d],D={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:x,contains:I.concat([{begin:/\(/,end:/\)/,keywords:x,contains:I.concat(["self"]),relevance:0}]),relevance:0},B={begin:"("+s+"[\\*&\\s]+){1,"+R+"}"+w,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:x,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:x,relevance:0},{begin:w,returnBegin:!0,contains:[n.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:[t,n.C_BLOCK_COMMENT_MODE,d,h,c,{begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:["self",t,n.C_BLOCK_COMMENT_MODE,d,h,c]}]},c,t,n.C_BLOCK_COMMENT_MODE,...y]};return{name:"C",aliases:["h"],keywords:x,disableAutodetect:!0,illegal:"</",contains:[].concat(D,B,I,[...y,{begin:n.IDENT_RE+"::",keywords:x},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{preprocessor:m,strings:d,keywords:x}}}function Dt(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},h={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},l,{scope:"string",begin:/<.*?>/},t,n.C_BLOCK_COMMENT_MODE]},g={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=[h,g],y={className:"title",begin:e.optional(r)+n.IDENT_RE,relevance:0},b=e.optional(r)+n.IDENT_RE+"\\s*\\(",w=12,R=["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"],O=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],U=["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"],x=["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"],B={type:O,keyword:R,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:U},$={className:"function.dispatch",relevance:0,keywords:{_hint:x},begin:e.concat(/\b/,`(?!${R.join("|")})`,n.IDENT_RE,e.lookahead(/(<[^<>]+>|)\s*\(/))},F=[$,...m,o,t,n.C_BLOCK_COMMENT_MODE,d,l],V={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:B,contains:F.concat([{begin:/\(/,end:/\)/,keywords:B,contains:F.concat(["self"]),relevance:0}]),relevance:0},j={className:"function",begin:"("+s+"[\\*&\\s]+){1,"+w+"}"+b,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:B,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:B,relevance:0},{begin:b,returnBegin:!0,contains:[y],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:[t,n.C_BLOCK_COMMENT_MODE,l,d,o,{begin:/\(/,end:/\)/,keywords:B,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:B,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(V,j,$,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:B,contains:["self",o]},{begin:n.IDENT_RE+"::",keywords:B},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}S.registerLanguage("javascript",wt);S.registerLanguage("js",wt);S.registerLanguage("typescript",Ct);S.registerLanguage("ts",Ct);S.registerLanguage("python",Mt);S.registerLanguage("py",Mt);S.registerLanguage("json",Ti);S.registerLanguage("bash",Le);S.registerLanguage("sh",Le);S.registerLanguage("shell",Le);S.registerLanguage("css",Ii);S.registerLanguage("xml",De);S.registerLanguage("html",De);S.registerLanguage("svg",De);S.registerLanguage("sql",Li);S.registerLanguage("yaml",Rt);S.registerLanguage("yml",Rt);S.registerLanguage("markdown",Ot);S.registerLanguage("md",Ot);S.registerLanguage("go",Di);S.registerLanguage("rust",It);S.registerLanguage("rs",It);S.registerLanguage("java",Pi);S.registerLanguage("c",Bi);S.registerLanguage("cpp",Dt);S.registerLanguage("c++",Dt);const $i=new Set(["mindmap"]);function de(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Ui(n,e={}){const t=new Set(e.reservedLanguages??$i),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 b;const l=r[a];if(!l)return i(r,a,s,o,c);const h=((b=l.info.trim().split(/\s+/)[0])==null?void 0:b.toLowerCase())??"";if(t.has(h))return i(r,a,s,o,c);const g=l.content;let m,y=h||"text";if(h&&S.getLanguage(h))try{m=S.highlight(g,{language:h,ignoreIllegals:!0}).value}catch{m=de(g)}else if(h)try{const w=S.highlightAuto(g);m=w.value,y=w.language||h}catch{m=de(g)}else try{const w=S.highlightAuto(g);m=w.value,y=w.language||"text"}catch{m=de(g)}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(y)}</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(y)}">${m}</code></pre></div>`}}const Fi=[".mp4",".webm",".ogg",".mov",".m4v",".avi",".mkv"],Hi=[/(?: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 Pt(n){const e=n.trim();if(!e)return null;for(const t of Hi){const i=e.match(t);if(i&&i[1])return i[1]}return null}function Bt(n,e="YouTube video"){const t=`https://img.youtube.com/vi/${n}/hqdefault.jpg`,i=`https://www.youtube.com/watch?v=${n}`;return`[](${i})`}function $t(n){const e=n.toLowerCase().split("?")[0]??"";return Fi.some(t=>e.endsWith(t))}function Ce(n,e="image"){return``}function Ut(n,e="video"){return``}function zi(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($t(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 Ki=new Set(["notice","info","tip","warning","danger","success"]),Gi=/^:::(\w+)(?:\s+(.+))?$/,qi=/^:::\s*$/,it={notice:"Notice",info:"Info",tip:"Tip",warning:"Warning",danger:"Danger",success:"Success"},Wi={notice:"i",info:"i",tip:"✓",warning:"!",danger:"✕",success:"✓"};function Yi(n){n.block.ruler.before("fence","tips_block",(e,t,i,r)=>{const s=e.src.slice(e.bMarks[t],e.eMarks[t]).match(Gi);if(!s)return!1;const o=(s[1]??"").toLowerCase();if(!Ki.has(o))return!1;let c=t+1,l=!1;for(;c<i;){const y=e.src.slice(e.bMarks[c],e.eMarks[c]);if(qi.test(y.trim())){l=!0;break}c++}if(!l)return!1;if(r)return!0;const d=s[2]??it[o]??o,h=e.src.slice(e.bMarks[t+1],e.bMarks[c]).trim(),g=n.render(h),m=e.push("tips_block","div",0);return m.content=g,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??it[r]??"Notice",s=Wi[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">${Zi(a)}</span></div><div class="md-editor-tip-body">${o}</div></div>`}}function Zi(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Vi(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 h=i+1;h<t.length&&h<i+6;h++){if(((l=t[h])==null?void 0:l.type)==="inline"){c=t[h];break}if(((d=t[h])==null?void 0:d.type)==="list_item_close")break}if(c&&c.content){const h=c.content,g=/^\[\s\]\s/.test(h),m=/^\[[xX]\]\s/.test(h);if(g||m){if(c.content=h.replace(/^\[[ xX]\]\s/,""),c.children&&c.children.length>0){const w=c.children[0];w&&w.type==="text"&&(w.content=w.content.replace(/^\[[ xX]\]\s/,""))}o.attrSet("class","task-list-item");const y=`<input type="checkbox" disabled${g?" checked":""} /> `;return(e?e(t,i,r,a,s):s.renderToken(t,i,r))+y}}return e?e(t,i,r,a,s):s.renderToken(t,i,r)}}class Pe{constructor(e={}){this.md=new dn({html:e.html??!1,linkify:!0,breaks:e.breaks??!1,typographer:!0}),e.math!==!1&&_n(this.md),this.mindmapEnabled=e.mindmap!==!1,this.mindmapEnabled&&En(this.md),e.codeHighlight!==!1&&Ui(this.md,{reservedLanguages:this.mindmapEnabled?["mindmap"]:[]}),e.tips!==!1&&Yi(this.md),Vi(this.md),mn(this.md),zi(this.md)}render(e){return this.md.render(e||"")}async hydrate(e){this.mindmapEnabled&&await vn(e)}}function Xi(n,e={}){return new Pe(e).render(n)}class Ft{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 Me(n){const e=n.trim();return{charCount:n.length,wordCount:e?e.split(/\s+/).length:0}}class Ht{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 Qi=/^ {0,3}#{1,6}\s/,Ji=/^ {0,3}(`{3,}|~{3,})/;function ji(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 zt(n){var o;const e=n.split(`
|
|
13
|
-
`),t=[];let i=[],r=!1,a="";for(const c of e){const l=c.match(
|
|
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)),h=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:h},selection:{anchor:i.from,head:i.from+h.length}}),this.view.focus()}destroy(){var e,t;(e=this.mention)==null||e.destroy(),(t=this.docLink)==null||t.destroy(),this.view.destroy()}}const _n=/^\$([^$\n]+?)\$/;function En(n){return/^[\d.,]+$/.test(n.trim())}function yn(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 h=e.push("math_block","div",0);return h.content=s[1].trim(),h.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">${Ge.renderToString(i,{displayMode:!0,throwOnError:!1,strict:!1})}</div>`}catch{return`<div class="md-editor-math-block md-editor-math-error">${We(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(_n);if(!i)return!1;const r=i[1]??"";if(En(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 Ge.renderToString(i,{displayMode:!1,throwOnError:!1,strict:!1})}catch{return`<span class="md-editor-math-error">$${We(i)}$</span>`}}}function We(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}typeof globalThis.ResizeObserver>"u"&&(globalThis.ResizeObserver=class{observe(){}unobserve(){}disconnect(){}});let Ye=0;function wn(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 h=i+1,p=1;for(;h<r;){const f=t.bMarks[h]+t.tShift[h],v=t.eMarks[h],O=t.src.slice(f,v).match(/^(`{3,})\s*(.*)$/);if(O&&O[1].length>=d){if(O[2].trim())p++;else if(p--,p===0)break}h++}const m=h<r?h:r-1,y=t.push("mindmap_block","div",0);return y.content=t.getLines(i+1,m,t.blkIndent,!0),y.map=[i,m+1],y.markup=l[1],y.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-${++Ye}`,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-${++Ye}`,d=encodeURIComponent(o.content);return`<div class="md-editor-mindmap" id="${l}" data-source="${d}"></div>`}return e(t,i,r,a,s)}}const vn=600,kn=320;async function Tn(n){const e=n.querySelectorAll(".md-editor-mindmap:not([data-hydrated])");if(e.length===0)return;const{Transformer:t}=await import("markmap-lib"),i=await import("markmap-view"),r=i.Markmap??i.default;if(!r)return;const a=new t;for(const s of Array.from(e)){s.setAttribute("data-hydrated","1");const o=decodeURIComponent(s.dataset.source??"")||"- Empty mindmap",{root:c}=a.transform(o);s.innerHTML="";const l=s.clientWidth>0?s.clientWidth:vn,d=s.clientHeight>0?s.clientHeight:kn,h=document.createElementNS("http://www.w3.org/2000/svg","svg");h.setAttribute("width",String(l)),h.setAttribute("height",String(d)),h.style.width="100%",h.style.height="100%",h.style.display="block",s.appendChild(h);const p=r.create(h,{autoFit:!1},c),m=()=>{try{const f=h.querySelector("g");if(f){const v=f.getAttribute("transform")||"";(!v||v.includes("NaN"))&&f.setAttribute("transform",`translate(40, ${d/2}) scale(1)`)}}catch{}};m(),(typeof requestAnimationFrame=="function"?requestAnimationFrame:f=>setTimeout(f,16))(()=>{var f;try{const v=h.getBoundingClientRect();v.width>0&&v.height>0&&((f=p.fit)==null||f.call(p),m())}catch{}})}}function Sn(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function ot(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)&&ot(t)}),n}class Ze{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function at(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function J(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 Nn="</span>",Ve=n=>!!n.scope,An=(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 xn{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=at(e)}openNode(e){if(!Ve(e))return;const t=An(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){Ve(e)&&(this.buffer+=Nn)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}const Xe=(n={})=>{const e={children:[]};return Object.assign(e,n),e};class Re{constructor(){this.rootNode=Xe(),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=Xe({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=>{Re._collapse(t)}))}}class Cn extends Re{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 xn(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function ue(n){return n?typeof n=="string"?n:n.source:null}function ct(n){return ie("(?=",n,")")}function Mn(n){return ie("(?:",n,")*")}function Rn(n){return ie("(?:",n,")?")}function ie(...n){return n.map(t=>ue(t)).join("")}function On(n){const e=n[n.length-1];return typeof e=="object"&&e.constructor===Object?(n.splice(n.length-1,1),e):{}}function ye(...n){return"("+(On(n).capture?"":"?:")+n.map(i=>ue(i)).join("|")+")"}function lt(n){return new RegExp(n.toString()+"|").exec("").length-1}function In(n,e){const t=n&&n.exec(e);return t&&t.index===0}const Ln=new RegExp(ye(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function Oe(n,{joinWith:e}){let t=0;return n.map(i=>{t+=1;const r=t;let a=ue(i),s="";for(;a.length>0;){const o=Ln.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 Dn=/\b\B/,dt="[a-zA-Z]\\w*",Ie="[a-zA-Z_]\\w*",ut="\\b\\d+(\\.\\d+)?",ht="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",pt="\\b(0b[01]+)",Pn="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Bn=(n={})=>{const e=/^#![ ]*\//;return n.binary&&(n.begin=ie(e,/.*\b/,n.binary,/\b.*/)),J({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,i)=>{t.index!==0&&i.ignoreMatch()}},n)},he={begin:"\\\\[\\s\\S]",relevance:0},$n={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[he]},Un={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[he]},Hn={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/},we=function(n,e,t={}){const i=J({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=ye("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:ie(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},Fn=we("//","$"),zn=we("/\\*","\\*/"),Kn=we("#","$"),Gn={scope:"number",begin:ut,relevance:0},qn={scope:"number",begin:ht,relevance:0},Wn={scope:"number",begin:pt,relevance:0},Yn={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[he,{begin:/\[/,end:/\]/,relevance:0,contains:[he]}]},Zn={scope:"title",begin:dt,relevance:0},Vn={scope:"title",begin:Ie,relevance:0},Xn={begin:"\\.\\s*"+Ie,relevance:0},Qn=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 me=Object.freeze({__proto__:null,APOS_STRING_MODE:$n,BACKSLASH_ESCAPE:he,BINARY_NUMBER_MODE:Wn,BINARY_NUMBER_RE:pt,COMMENT:we,C_BLOCK_COMMENT_MODE:zn,C_LINE_COMMENT_MODE:Fn,C_NUMBER_MODE:qn,C_NUMBER_RE:ht,END_SAME_AS_BEGIN:Qn,HASH_COMMENT_MODE:Kn,IDENT_RE:dt,MATCH_NOTHING_RE:Dn,METHOD_GUARD:Xn,NUMBER_MODE:Gn,NUMBER_RE:ut,PHRASAL_WORDS_MODE:Hn,QUOTE_STRING_MODE:Un,REGEXP_MODE:Yn,RE_STARTERS_RE:Pn,SHEBANG:Bn,TITLE_MODE:Zn,UNDERSCORE_IDENT_RE:Ie,UNDERSCORE_TITLE_MODE:Vn});function Jn(n,e){n.input[n.index-1]==="."&&e.ignoreMatch()}function jn(n,e){n.className!==void 0&&(n.scope=n.className,delete n.className)}function ei(n,e){e&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=Jn,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function ti(n,e){Array.isArray(n.illegal)&&(n.illegal=ye(...n.illegal))}function ni(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 ii(n,e){n.relevance===void 0&&(n.relevance=1)}const ri=(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=ie(t.beforeMatch,ct(t.begin)),n.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},n.relevance=0,delete t.beforeMatch},si=["of","and","for","in","not","or","if","then","parent","list","value"],oi="keyword";function gt(n,e,t=oi){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,gt(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,ai(c[0],c[1])]})}}function ai(n,e){return e?Number(e):ci(n)?0:1}function ci(n){return si.includes(n.toLowerCase())}const Qe={},ne=n=>{console.error(n)},Je=(n,...e)=>{console.log(`WARN: ${n}`,...e)},re=(n,e)=>{Qe[`${n}/${e}`]||(console.log(`Deprecated as of ${n}. ${e}`),Qe[`${n}/${e}`]=!0)},_e=new Error;function mt(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+=lt(e[o-1]);n[t]=s,n[t]._emit=a,n[t]._multi=!0}function li(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw ne("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),_e;if(typeof n.beginScope!="object"||n.beginScope===null)throw ne("beginScope must be object"),_e;mt(n,n.begin,{key:"beginScope"}),n.begin=Oe(n.begin,{joinWith:""})}}function di(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw ne("skip, excludeEnd, returnEnd not compatible with endScope: {}"),_e;if(typeof n.endScope!="object"||n.endScope===null)throw ne("endScope must be object"),_e;mt(n,n.end,{key:"endScope"}),n.end=Oe(n.end,{joinWith:""})}}function ui(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function hi(n){ui(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),li(n),di(n)}function pi(n){function e(s,o){return new RegExp(ue(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+=lt(o)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const o=this.regexes.map(c=>c[1]);this.matcherRe=e(Oe(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((h,p)=>p>0&&h!==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;[jn,ni,hi,ri].forEach(d=>d(s,o)),n.compilerExtensions.forEach(d=>d(s,o)),s.__beforeBegin=null,[ei,ti,ii].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=gt(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=ue(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 gi(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=J(n.classNameAliases||{}),a(n)}function ft(n){return n?n.endsWithParent||ft(n.starts):!1}function gi(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return J(n,{variants:null},e)})),n.cachedVariants?n.cachedVariants:ft(n)?J(n,{starts:n.starts?J(n.starts):null}):Object.isFrozen(n)?J(n):n}var mi="11.12.0";class fi extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const xe=at,je=J,et=Symbol("nomatch"),bi=7,bt=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:Cn};function c(u){return o.noHighlightRe.test(u)}function l(u){let _=u.className+" ";_+=u.parentNode?u.parentNode.className:"";const b=o.languageDetectRe.exec(_);if(b){const k=$(b[1]);return k||(Je(a.replace("{}",b[1])),Je("Falling back to no-highlight mode for this block.",u)),k?b[1]:"no-highlight"}return _.split(/\s+/).find(k=>c(k)||$(k))}function d(u,_,b){let k="",S="";typeof _=="object"?(k=u,b=_.ignoreIllegals,S=_.language):(re("10.7.0","highlight(lang, code, ...args) has been deprecated."),re("10.7.0",`Please use highlight(code, options) instead.
|
|
11
|
+
https://github.com/highlightjs/highlight.js/issues/2277`),S=u,k=_),b===void 0&&(b=!0);const P={code:k,language:S};X("before:highlight",P);const z=P.result?P.result:h(P.language,P.code,b);return z.code=P.code,X("after:highlight",z),z}function h(u,_,b,k){const S=Object.create(null);function P(g,E){return g.keywords[E]}function z(){if(!w.keywords){F.addText(M);return}let g=0;w.keywordPatternRe.lastIndex=0;let E=w.keywordPatternRe.exec(M),T="";for(;E;){T+=M.substring(g,E.index);const x=Y.case_insensitive?E[0].toLowerCase():E[0],K=P(w,x);if(K){const[Z,jt]=K;if(F.addText(T),T="",S[x]=(S[x]||0)+1,S[x]<=bi&&(ge+=jt),Z.startsWith("_"))T+=E[0];else{const en=Y.classNameAliases[Z]||Z;W(E[0],en)}}else T+=E[0];g=w.keywordPatternRe.lastIndex,E=w.keywordPatternRe.exec(M)}T+=M.substring(g),F.addText(T)}function q(){if(M==="")return;let g=null;if(typeof w.subLanguage=="string"){if(!e[w.subLanguage]){F.addText(M);return}g=h(w.subLanguage,M,!0,Fe[w.subLanguage]),Fe[w.subLanguage]=g._top}else g=m(M,w.subLanguage.length?w.subLanguage:null);w.relevance>0&&(ge+=g.relevance),F.__addSublanguage(g._emitter,g.language)}function G(){w.subLanguage!=null?q():z(),M=""}function W(g,E){g!==""&&(F.startScope(E),F.addText(g),F.endScope())}function Be(g,E){let T=1;const x=E.length-1;for(;T<=x;){if(!g._emit[T]){T++;continue}const K=Y.classNameAliases[g[T]]||g[T],Z=E[T];K?W(Z,K):(M=Z,z(),M=""),T++}}function $e(g,E){return g.scope&&typeof g.scope=="string"&&F.openNode(Y.classNameAliases[g.scope]||g.scope),g.beginScope&&(g.beginScope._wrap?(W(M,Y.classNameAliases[g.beginScope._wrap]||g.beginScope._wrap),M=""):g.beginScope._multi&&(Be(g.beginScope,E),M="")),w=Object.create(g,{parent:{value:w}}),w}function Ue(g,E,T){let x=In(g.endRe,T);if(x){if(g["on:end"]){const K=new Ze(g);g["on:end"](E,K),K.isMatchIgnored&&(x=!1)}if(x){for(;g.endsParent&&g.parent;)g=g.parent;return g}}if(g.endsWithParent)return Ue(g.parent,E,T)}function Zt(g){return w.matcher.regexIndex===0?(M+=g[0],1):(Te=!0,0)}function Vt(g){const E=g[0],T=g.rule,x=new Ze(T),K=[T.__beforeBegin,T["on:begin"]];for(const Z of K)if(Z&&(Z(g,x),x.isMatchIgnored))return Zt(E);return T.skip?M+=E:(T.excludeBegin&&(M+=E),G(),!T.returnBegin&&!T.excludeBegin&&(M=E)),$e(T,g),T.returnBegin?0:E.length}function Xt(g){const E=g[0],T=_.substring(g.index),x=Ue(w,g,T);if(!x)return et;const K=w;w.endScope&&w.endScope._wrap?(G(),W(E,w.endScope._wrap)):w.endScope&&w.endScope._multi?(G(),Be(w.endScope,g)):K.skip?M+=E:(K.returnEnd||K.excludeEnd||(M+=E),G(),K.excludeEnd&&(M=E));do w.scope&&F.closeNode(),!w.skip&&!w.subLanguage&&(ge+=w.relevance),w=w.parent;while(w!==x.parent);return x.starts&&$e(x.starts,g),K.returnEnd?0:E.length}function Qt(){const g=[];for(let E=w;E!==Y;E=E.parent)E.scope&&g.unshift(E.scope);g.forEach(E=>F.openNode(E))}let pe={};function He(g,E){const T=E&&E[0];if(M+=g,T==null)return G(),0;if(pe.type==="begin"&&E.type==="end"&&pe.index===E.index&&T===""){if(M+=_.slice(E.index,E.index+1),!r){const x=new Error(`0 width match regex (${u})`);throw x.languageName=u,x.badRule=pe.rule,x}return 1}if(pe=E,E.type==="begin")return Vt(E);if(E.type==="illegal"&&!b){const x=new Error('Illegal lexeme "'+T+'" for mode "'+(w.scope||"<unnamed>")+'"');throw x.mode=w,x}else if(E.type==="end"){const x=Xt(E);if(x!==et)return x}if(E.type==="illegal"&&T==="")return E.index===_.length||(M+=`
|
|
12
|
+
`),1;if(ke>1e5&&ke>E.index*3)throw new Error("potential infinite loop, way more iterations than matches");return M+=T,T.length}const Y=$(u);if(!Y)throw ne(a.replace("{}",u)),new Error('Unknown language: "'+u+'"');const Jt=pi(Y);let ve="",w=k||Jt;const Fe={},F=new o.__emitter(o);Qt();let M="",ge=0,ee=0,ke=0,Te=!1;try{if(Y.__emitTokens)Y.__emitTokens(_,F);else{for(w.matcher.considerAll();;){ke++,Te?Te=!1:w.matcher.considerAll(),w.matcher.lastIndex=ee;const g=w.matcher.exec(_);if(!g)break;const E=_.substring(ee,g.index),T=He(E,g);ee=g.index+T}He(_.substring(ee))}return F.finalize(),ve=F.toHTML(),{language:u,value:ve,relevance:ge,illegal:!1,_emitter:F,_top:w}}catch(g){if(g.message&&g.message.includes("Illegal"))return{language:u,value:xe(_),illegal:!0,relevance:0,_illegalBy:{message:g.message,index:ee,context:_.slice(ee-100,ee+100),mode:g.mode,resultSoFar:ve},_emitter:F};if(r)return{language:u,value:xe(_),illegal:!1,relevance:0,errorRaised:g,_emitter:F,_top:w};throw g}}function p(u){const _={value:xe(u),illegal:!1,relevance:0,_top:s,_emitter:new o.__emitter(o)};return _._emitter.addText(u),_}function m(u,_){_=_||o.languages||Object.keys(e);const b=p(u),k=_.filter($).filter(V).map(G=>h(G,u,!1));k.unshift(b);const S=k.sort((G,W)=>{if(G.relevance!==W.relevance)return W.relevance-G.relevance;if(G.language&&W.language){if($(G.language).supersetOf===W.language)return 1;if($(W.language).supersetOf===G.language)return-1}return 0}),[P,z]=S,q=P;return q.secondBest=z,q}function y(u,_,b){const k=_&&t[_]||b;u.classList.add("hljs"),u.classList.add(`language-${k}`)}function f(u){let _=null;const b=l(u);if(c(b))return;if(X("before:highlightElement",{el:u,language:b}),u.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",u);return}if(u.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(u)),o.throwUnescapedHTML))throw new fi("One of your code blocks includes unescaped HTML.",u.innerHTML);_=u;const k=_.textContent,S=b?d(k,{language:b,ignoreIllegals:!0}):m(k);u.innerHTML=S.value,u.dataset.highlighted="yes",y(u,b,S.language),u.result={language:S.language,re:S.relevance,relevance:S.relevance},S.secondBest&&(u.secondBest={language:S.secondBest.language,relevance:S.secondBest.relevance}),X("after:highlightElement",{el:u,result:S,text:k})}function v(u){o=je(o,u)}const N=()=>{C(),re("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function O(){C(),re("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let U=!1;function C(){function u(){C()}if(document.readyState==="loading"){U||window.addEventListener("DOMContentLoaded",u,!1),U=!0;return}document.querySelectorAll(o.cssSelector).forEach(f)}function I(u,_){let b=null;try{b=_(n)}catch(k){if(ne("Language definition for '{}' could not be registered.".replace("{}",u)),r)ne(k);else throw k;b=s}b.name||(b.name=u),e[u]=b,b.rawDefinition=_.bind(null,n),b.aliases&&H(b.aliases,{languageName:u})}function D(u){delete e[u];for(const _ of Object.keys(t))t[_]===u&&delete t[_]}function B(){return Object.keys(e)}function $(u){return u=(u||"").toLowerCase(),e[u]||e[t[u]]}function H(u,{languageName:_}){typeof u=="string"&&(u=[u]),u.forEach(b=>{t[b.toLowerCase()]=_})}function V(u){const _=$(u);return _&&!_.disableAutodetect}function j(u){u["before:highlightBlock"]&&!u["before:highlightElement"]&&(u["before:highlightElement"]=_=>{u["before:highlightBlock"](Object.assign({block:_.el},_))}),u["after:highlightBlock"]&&!u["after:highlightElement"]&&(u["after:highlightElement"]=_=>{u["after:highlightBlock"](Object.assign({block:_.el},_))})}function ae(u){j(u),i.push(u)}function ce(u){const _=i.indexOf(u);_!==-1&&i.splice(_,1)}function X(u,_){const b=u;i.forEach(function(k){k[b]&&k[b](_)})}function le(u){return re("10.7.0","highlightBlock will be removed entirely in v12.0"),re("10.7.0","Please use highlightElement now."),f(u)}Object.assign(n,{highlight:d,highlightAuto:m,highlightAll:C,highlightElement:f,highlightBlock:le,configure:v,initHighlighting:N,initHighlightingOnLoad:O,registerLanguage:I,unregisterLanguage:D,listLanguages:B,getLanguage:$,registerAliases:H,autoDetection:V,inherit:je,addPlugin:ae,removePlugin:ce}),n.debugMode=function(){r=!1},n.safeMode=function(){r=!0},n.versionString=mi,n.regex={concat:ie,lookahead:ct,either:ye,optional:Rn,anyNumberOfTimes:Mn};for(const u in me)typeof me[u]=="object"&&ot(me[u]);return Object.assign(n,me),n},oe=bt({});oe.newInstance=()=>bt({});var _i=oe;oe.HighlightJS=oe;oe.default=oe;const A=Sn(_i),tt="[A-Za-z$_][0-9A-Za-z$_]*",Ei=["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"],yi=["true","false","null","undefined","NaN","Infinity"],_t=["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"],Et=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],yt=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],wi=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],vi=[].concat(yt,_t,Et);function wt(n){const e=n.regex,t=(b,{after:k})=>{const S="</"+b[0].slice(1);return b.input.indexOf(S,k)!==-1},i=tt,r={begin:"<>",end:"</>"},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(b,k)=>{const S=b[0].length+b.index,P=b.input[S];if(P==="<"||P===","){k.ignoreMatch();return}P===">"&&(t(b,{after:S})||k.ignoreMatch());let z;const q=b.input.substring(S);if(z=q.match(/^\s*=/)){k.ignoreMatch();return}if((z=q.match(/^\s+extends\s+/))&&z.index===0){k.ignoreMatch();return}}},o={$pattern:tt,keyword:Ei,literal:yi,built_in:vi,"variable.language":wi},c="[0-9](_?[0-9])*",l=`\\.(${c})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={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"}},y={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"css"}},f={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"graphql"}},v={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,p]},O={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]},U=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,y,f,v,{match:/\$\d+/},h];p.contains=U.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(U)});const C=[].concat(O,p.contains),I=C.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(C)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:I},B={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"}}]},$={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:{_:[..._t,...Et]}},H={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},V={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ae(b){return e.concat("(?!",b.join("|"),")")}const ce={match:e.concat(/\b/,ae([...yt,"super","import","await"].map(b=>`${b}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},X={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},u="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",_={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(u)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:I,CLASS_REFERENCE:$},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),H,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,y,f,v,O,{match:/\$\d+/},h,$,{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:[O,n.REGEXP_MODE,{className:"function",begin:u,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:I}]}]},{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"]}]}]},V,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,n.inherit(n.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},X,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,j,B,le,{match:/\$[(.]/}]}}const Ee="[A-Za-z$_][0-9A-Za-z$_]*",vt=["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"],kt=["true","false","null","undefined","NaN","Infinity"],Tt=["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"],St=["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"],At=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],xt=[].concat(Nt,Tt,St);function ki(n){const e=n.regex,t=(b,{after:k})=>{const S="</"+b[0].slice(1);return b.input.indexOf(S,k)!==-1},i=Ee,r={begin:"<>",end:"</>"},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(b,k)=>{const S=b[0].length+b.index,P=b.input[S];if(P==="<"||P===","){k.ignoreMatch();return}P===">"&&(t(b,{after:S})||k.ignoreMatch());let z;const q=b.input.substring(S);if(z=q.match(/^\s*=/)){k.ignoreMatch();return}if((z=q.match(/^\s+extends\s+/))&&z.index===0){k.ignoreMatch();return}}},o={$pattern:Ee,keyword:vt,literal:kt,built_in:xt,"variable.language":At},c="[0-9](_?[0-9])*",l=`\\.(${c})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={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"}},y={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"css"}},f={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,p],subLanguage:"graphql"}},v={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,p]},O={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]},U=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,y,f,v,{match:/\$\d+/},h];p.contains=U.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(U)});const C=[].concat(O,p.contains),I=C.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(C)}]),D={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:I},B={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"}}]},$={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:{_:[...Tt,...St]}},H={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},V={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[D],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ae(b){return e.concat("(?!",b.join("|"),")")}const ce={match:e.concat(/\b/,ae([...Nt,"super","import","await"].map(b=>`${b}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},X={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},D]},u="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",_={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(u)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[D]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:I,CLASS_REFERENCE:$},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),H,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,m,y,f,v,O,{match:/\$\d+/},h,$,{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:[O,n.REGEXP_MODE,{className:"function",begin:u,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:I}]}]},{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"]}]}]},V,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[D,n.inherit(n.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},X,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[D]},ce,j,B,le,{match:/\$[(.]/}]}}function Ct(n){const e=n.regex,t=ki(n),i=Ee,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:Ee,keyword:vt.concat(c),literal:kt,built_in:xt.concat(r),"variable.language":At},d={className:"meta",begin:"@"+i},h=(f,v,N)=>{const O=f.contains.findIndex(U=>U.label===v);if(O===-1)throw new Error("can not find mode to replace");f.contains.splice(O,1,N)};Object.assign(t.keywords,l),t.exports.PARAMS_CONTAINS.push(d);const p=t.contains.find(f=>f.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]),h(t,"shebang",n.SHEBANG()),h(t,"use_strict",o);const y=t.contains.find(f=>f.label==="func.def");return y.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}function Mt(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},h={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})\\.`,y=`\\b|${i.join("|")}`,f={className:"number",relevance:0,variants:[{begin:`(\\b(${p})|(${m}))[eE][+-]?(${p})[jJ]?(?=${y})`},{begin:`(${m})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${y})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${y})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${y})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${y})`},{begin:`\\b(${p})[jJ](?=${y})`}]},v={className:"comment",begin:e.lookahead(/# type:/),end:/$/,keywords:o,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},N={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:["self",c,f,h,n.HASH_COMMENT_MODE]}]};return l.contains=[h,f,c],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:o,illegal:/(<\/|\?)|=>/,contains:[c,f,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},h,v,n.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[N]},{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:[f,N,h]}]}}const Ti="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",Si={scope:"number",match:Ti,relevance:0};function Ni(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,Si,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function Le(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:/\\'/},h={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}),y={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[n.inherit(n.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},f=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],v=["true","false"],N={match:/(\/[a-z._-]+)+/},O=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],U=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],C=["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"],I=["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:f,literal:v,built_in:[...O,...U,"set","shopt",...C,...I]},contains:[m,n.SHEBANG(),y,h,a,s,N,o,c,l,d,t]}}const Ai=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_-]*/}}),xi=["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"],Ci=["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"],Mi=[...xi,...Ci],Ri=["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(),Oi=["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(),Ii=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Li=["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 Di(n){const e=n.regex,t=Ai(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:":("+Oi.join("|")+")"},{begin:":(:)?("+Ii.join("|")+")"}]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Li.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:Ri.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,t.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Mi.join("|")+")\\b"}]}}function De(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 Pi(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"],h=["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,y=[...l,...c].filter(I=>!d.includes(I)),f={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},v={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},N={match:e.concat(/\b/,e.either(...m),/\s*\(/),relevance:0,keywords:{built_in:m}};function O(I){return e.concat(/\b/,e.either(...I.map(D=>D.replace(/\s+/,"\\s+"))),/\b/)}const U={scope:"keyword",match:O(p),relevance:0};function C(I,{exceptions:D,when:B}={}){const $=B;return D=D||[],I.map(H=>H.match(/\|\d+$/)||D.includes(H)?H:$(H)?`${H}|0`:H)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:C(y,{when:I=>I.length<3}),literal:a,type:o,built_in:h},contains:[{scope:"type",match:O(s)},U,N,f,i,r,n.C_NUMBER_MODE,n.C_BLOCK_COMMENT_MODE,t,v]}}function Rt(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},y={begin:/\{/,end:/\}/,contains:[m],illegal:"\\n",relevance:0},f={begin:"\\[",end:"\\]",contains:[m],illegal:"\\n",relevance:0},v=[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},y,f,a,s],N=[...v];return N.pop(),N.push(o),m.contains=N,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:v}}function Ot(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}]},h=n.inherit(l,{contains:[]}),p=n.inherit(d,{contains:[]});l.contains.push(p),d.contains.push(h);let m=[t,c];return[l,d,h,p].forEach(N=>{N.contains=N.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 Bi(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 It(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 se="[0-9](_*[0-9])*",fe=`\\.(${se})`,be="[0-9a-fA-F](_*[0-9a-fA-F])*",nt={className:"number",variants:[{begin:`(\\b(${se})((${fe})|\\.)?|(${fe}))[eE][+-]?(${se})[fFdD]?\\b`},{begin:`\\b(${se})((${fe})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${fe})[fFdD]?\\b`},{begin:`\\b(${se})[fFdD]\\b`},{begin:`\\b0[xX]((${be})\\.?|(${be})?\\.(${be}))[pP][+-]?(${se})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${be})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Lt(n,e,t){return t===-1?"":n.replace(e,i=>Lt(n,e,t-1))}function $i(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=Lt("(?:\\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"]}]},y={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:[y,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,nt,n.C_BLOCK_COMMENT_MODE]},n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE]},nt,m]}}function Ui(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})"/})]},h={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]},y=[p,m],f={className:"title",begin:e.optional(r)+n.IDENT_RE,relevance:0},v=e.optional(r)+n.IDENT_RE+"\\s*\\(",N=12,C={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"},I=[...y,c,t,n.C_BLOCK_COMMENT_MODE,h,d],D={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:C,contains:I.concat([{begin:/\(/,end:/\)/,keywords:C,contains:I.concat(["self"]),relevance:0}]),relevance:0},B={begin:"("+s+"[\\*&\\s]+){1,"+N+"}"+v,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:C,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:C,relevance:0},{begin:v,returnBegin:!0,contains:[n.inherit(f,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:[t,n.C_BLOCK_COMMENT_MODE,d,h,c,{begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:["self",t,n.C_BLOCK_COMMENT_MODE,d,h,c]}]},c,t,n.C_BLOCK_COMMENT_MODE,...y]};return{name:"C",aliases:["h"],keywords:C,disableAutodetect:!0,illegal:"</",contains:[].concat(D,B,I,[...y,{begin:n.IDENT_RE+"::",keywords:C},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{preprocessor:m,strings:d,keywords:C}}}function Dt(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},h={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=[h,p],y={className:"title",begin:e.optional(r)+n.IDENT_RE,relevance:0},f=e.optional(r)+n.IDENT_RE+"\\s*\\(",v=12,N=["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"],O=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],U=["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"],C=["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"],B={type:O,keyword:N,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:U},$={className:"function.dispatch",relevance:0,keywords:{_hint:C},begin:e.concat(/\b/,`(?!${N.join("|")})`,n.IDENT_RE,e.lookahead(/(<[^<>]+>|)\s*\(/))},H=[$,...m,o,t,n.C_BLOCK_COMMENT_MODE,d,l],V={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:B,contains:H.concat([{begin:/\(/,end:/\)/,keywords:B,contains:H.concat(["self"]),relevance:0}]),relevance:0},j={className:"function",begin:"("+s+"[\\*&\\s]+){1,"+v+"}"+f,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:B,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:B,relevance:0},{begin:f,returnBegin:!0,contains:[y],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:[t,n.C_BLOCK_COMMENT_MODE,l,d,o,{begin:/\(/,end:/\)/,keywords:B,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:B,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(V,j,$,H,[...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:B,contains:["self",o]},{begin:n.IDENT_RE+"::",keywords:B},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}A.registerLanguage("javascript",wt);A.registerLanguage("js",wt);A.registerLanguage("typescript",Ct);A.registerLanguage("ts",Ct);A.registerLanguage("python",Mt);A.registerLanguage("py",Mt);A.registerLanguage("json",Ni);A.registerLanguage("bash",Le);A.registerLanguage("sh",Le);A.registerLanguage("shell",Le);A.registerLanguage("css",Di);A.registerLanguage("xml",De);A.registerLanguage("html",De);A.registerLanguage("svg",De);A.registerLanguage("sql",Pi);A.registerLanguage("yaml",Rt);A.registerLanguage("yml",Rt);A.registerLanguage("markdown",Ot);A.registerLanguage("md",Ot);A.registerLanguage("go",Bi);A.registerLanguage("rust",It);A.registerLanguage("rs",It);A.registerLanguage("java",$i);A.registerLanguage("c",Ui);A.registerLanguage("cpp",Dt);A.registerLanguage("c++",Dt);const Hi=new Set(["mindmap"]);function de(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Fi(n,e={}){const t=new Set(e.reservedLanguages??Hi),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 f;const l=r[a];if(!l)return i(r,a,s,o,c);const h=((f=l.info.trim().split(/\s+/)[0])==null?void 0:f.toLowerCase())??"";if(t.has(h))return i(r,a,s,o,c);const p=l.content;let m,y=h||"text";if(h&&A.getLanguage(h))try{m=A.highlight(p,{language:h,ignoreIllegals:!0}).value}catch{m=de(p)}else if(h)try{const v=A.highlightAuto(p);m=v.value,y=v.language||h}catch{m=de(p)}else try{const v=A.highlightAuto(p);m=v.value,y=v.language||"text"}catch{m=de(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">${de(y)}</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(y)}">${m}</code></pre></div>`}}const zi=[".mp4",".webm",".ogg",".mov",".m4v",".avi",".mkv"],Ki=[/(?: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 Pt(n){const e=n.trim();if(!e)return null;for(const t of Ki){const i=e.match(t);if(i&&i[1])return i[1]}return null}function Bt(n,e="YouTube video"){const t=`https://img.youtube.com/vi/${n}/hqdefault.jpg`,i=`https://www.youtube.com/watch?v=${n}`;return`[](${i})`}function $t(n){const e=n.toLowerCase().split("?")[0]??"";return zi.some(t=>e.endsWith(t))}function Ce(n,e="image"){return``}function Ut(n,e="video"){return``}function Gi(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($t(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 qi=new Set(["notice","info","tip","warning","danger","success"]),Wi=/^:::(\w+)(?:\s+(.+))?$/,Yi=/^:::\s*$/,it={notice:"Notice",info:"Info",tip:"Tip",warning:"Warning",danger:"Danger",success:"Success"},Zi={notice:"i",info:"i",tip:"✓",warning:"!",danger:"✕",success:"✓"};function Vi(n){n.block.ruler.before("fence","tips_block",(e,t,i,r)=>{const s=e.src.slice(e.bMarks[t],e.eMarks[t]).match(Wi);if(!s)return!1;const o=(s[1]??"").toLowerCase();if(!qi.has(o))return!1;let c=t+1,l=!1;for(;c<i;){const y=e.src.slice(e.bMarks[c],e.eMarks[c]);if(Yi.test(y.trim())){l=!0;break}c++}if(!l)return!1;if(r)return!0;const d=s[2]??it[o]??o,h=e.src.slice(e.bMarks[t+1],e.bMarks[c]).trim(),p=n.render(h),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??it[r]??"Notice",s=Zi[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">${Xi(a)}</span></div><div class="md-editor-tip-body">${o}</div></div>`}}function Xi(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Qi(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 h=i+1;h<t.length&&h<i+6;h++){if(((l=t[h])==null?void 0:l.type)==="inline"){c=t[h];break}if(((d=t[h])==null?void 0:d.type)==="list_item_close")break}if(c&&c.content){const h=c.content,p=/^\[\s*\]\s/.test(h),m=/^\[\s*[xX]\s*\]\s/.test(h);if(p||m){const y=/^\[\s*(?:[xX])?\s*\]\s/;if(c.content=h.replace(y,""),c.children&&c.children.length>0){const N=c.children[0];N&&N.type==="text"&&(N.content=N.content.replace(y,""))}o.attrSet("class","task-list-item");const f=`<input type="checkbox" disabled${p?" checked":""} /> `;return(e?e(t,i,r,a,s):s.renderToken(t,i,r))+f}}return e?e(t,i,r,a,s):s.renderToken(t,i,r)}}class Pe{constructor(e={}){this.md=new dn({html:e.html??!1,linkify:!0,breaks:e.breaks??!1,typographer:!0}),e.math!==!1&&yn(this.md),this.mindmapEnabled=e.mindmap!==!1,this.mindmapEnabled&&wn(this.md),e.codeHighlight!==!1&&Fi(this.md,{reservedLanguages:this.mindmapEnabled?["mindmap"]:[]}),e.tips!==!1&&Vi(this.md),Qi(this.md),bn(this.md),Gi(this.md)}render(e){return this.md.render(e||"")}async hydrate(e){this.mindmapEnabled&&await Tn(e)}}function Ji(n,e={}){return new Pe(e).render(n)}class Ht{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 Me(n){const e=n.trim();return{charCount:n.length,wordCount:e?e.split(/\s+/).length:0}}class Ft{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 ji=/^ {0,3}#{1,6}\s/,er=/^ {0,3}(`{3,}|~{3,})(.*)$/,tr=/^ {0,3}(`{3,}|~{3,})\s*$/;function nr(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 zt(n){const e=n.split(`
|
|
13
|
+
`),t=[];let i=[],r=!1,a="",s=0;for(const c of e){const l=c.match(er);if(l){const d=l[1]??"",h=d[0]??"",p=d.length;r?h===a&&p>=s&&tr.test(c)&&(r=!1):(r=!0,a=h,s=p),i.push(c);continue}if(!r&&ji.test(c)&&i.length>0){t.push(i.join(`
|
|
14
14
|
`)),i=[c];continue}i.push(c)}i.length>0&&t.push(i.join(`
|
|
15
|
-
`)),t.length===0&&t.push("");const s=new Map;return t.map(c=>{const l=ji(c),d=(s.get(l)??0)+1;return s.set(l,d),{key:`${l}#${d}`,hash:l,source:c}})}class Kt{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=zt(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);c===void 0&&(c=this.renderBlock(s.source),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}destroy(){this.container.innerHTML="",this.nodeByKey.clear(),this.htmlByHash.clear(),this.prevBlocks=[]}}function Gt(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 qt(n,e=120,t=600){const i=Math.max(0,n),r=Math.floor(i/2e4)*60;return Math.min(t,e+r)}function er(n,e=300){const t=window;return typeof t.requestIdleCallback=="function"?t.requestIdleCallback(n,{timeout:e}):window.setTimeout(n,0)}function tr(n){const e=window;typeof e.cancelIdleCallback=="function"?e.cancelIdleCallback(n):clearTimeout(n)}const L=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>`,M={bold:L('<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:L('<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:L('<path d="M6 12h12"/><path d="M6 4v16"/><path d="M18 4v16"/>'),link:L('<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:L('<polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/>'),image:L('<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:L('<polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2" ry="2"/>'),youtube:L('<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:L('<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:L('<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:L('<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:L('<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:L('<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:L('<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:L('<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:L('<line x1="4" y1="12" x2="20" y2="12"/>'),alert:L('<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:L('<path d="M18 7V4H6l6 8-6 8h12v-3"/>'),mindmap:L('<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:L('<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:L('<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:L('<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>'),sun:L('<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:L('<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 te{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 Wt=[{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 nr(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 ir(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 Yt(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 rt={bold:["**","**","bold text"],italic:["_","_","italic text"],heading:["## ","","Heading"],link:["[","](https://)","link text"],code:["```\n","\n```","code"],math:["$","$","E=mc^2"],mindmapBlock:[`\`\`\`mindmap
|
|
15
|
+
`)),t.length===0&&t.push("");const o=new Map;return t.map(c=>{const l=nr(c),d=(o.get(l)??0)+1;return o.set(l,d),{key:`${l}#${d}`,hash:l,source:c}})}class Kt{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=zt(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);c===void 0&&(c=this.renderBlock(s.source),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}destroy(){this.container.innerHTML="",this.nodeByKey.clear(),this.htmlByHash.clear(),this.prevBlocks=[]}}function Gt(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 qt(n,e=120,t=600){const i=Math.max(0,n),r=Math.floor(i/2e4)*60;return Math.min(t,e+r)}function ir(n,e=300){const t=window;return typeof t.requestIdleCallback=="function"?t.requestIdleCallback(n,{timeout:e}):window.setTimeout(n,0)}function rr(n){const e=window;typeof e.cancelIdleCallback=="function"?e.cancelIdleCallback(n):clearTimeout(n)}const L=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>`,R={bold:L('<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:L('<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:L('<path d="M6 12h12"/><path d="M6 4v16"/><path d="M18 4v16"/>'),link:L('<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:L('<polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/>'),image:L('<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:L('<polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2" ry="2"/>'),youtube:L('<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:L('<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:L('<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:L('<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:L('<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:L('<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:L('<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:L('<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:L('<line x1="4" y1="12" x2="20" y2="12"/>'),alert:L('<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:L('<path d="M18 7V4H6l6 8-6 8h12v-3"/>'),mindmap:L('<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:L('<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:L('<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:L('<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>'),sun:L('<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:L('<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 te{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 Wt=[{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 sr(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 or(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 Yt(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 rt={bold:["**","**","bold text"],italic:["_","_","italic text"],heading:["## ","","Heading"],link:["[","](https://)","link text"],code:["```\n","\n```","code"],math:["$","$","E=mc^2"],mindmapBlock:[`\`\`\`mindmap
|
|
16
16
|
# Root topic
|
|
17
17
|
## Branch one
|
|
18
18
|
- Child A
|
|
@@ -24,7 +24,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),N=u,k=_),f===void 0&&(
|
|
|
24
24
|
| `,` | content |
|
|
25
25
|
`,"content"],hr:[`
|
|
26
26
|
---
|
|
27
|
-
`,"",""]};class
|
|
27
|
+
`,"",""]};class ar{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=Wt,this.container.classList.add("md-editor-root",`md-editor-mode-${this.mode}`),this.container.setAttribute("data-theme",this.theme),this.renderer=new Pe({math:t.math??!0,mindmap:t.mindmap??!0,codeHighlight:t.codeHighlight??!0,tips:t.tips??!0}),this.buildLayout(),this.codeEditor=new st(this.editorPane,{value:t.value??"",lineNumbers:this.mode==="complex",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 Kt(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",R.heading,()=>this.insertSnippet("heading")),t("bold","Bold (Ctrl+B)",R.bold,()=>this.wrapSnippet("bold")),t("italic","Italic (Ctrl+I)",R.italic,()=>this.wrapSnippet("italic"),{groupEnd:!0}),t("link","Link (Ctrl+K)",R.link,()=>this.wrapSnippet("link")),t("image","Insert image",R.image,i=>this.showImagePopup(i)),t("video","Insert video",R.video,i=>this.showVideoPopup(i),{groupEnd:!0}),t("youtube","Insert YouTube video",R.youtube,i=>this.showYouTubePopup(i),{groupEnd:!0}),t("quote","Quote",R.quote,()=>this.codeEditor.wrapLines("> ","quoted text")),t("ul","Unordered list",R.list,()=>this.codeEditor.wrapLines("- ","list item")),t("ol","Ordered list",R.listOrdered,()=>this.codeEditor.wrapLines("1. ","list item")),t("tasklist","Task list",R.taskList,()=>this.codeEditor.toggleTaskList(),{groupEnd:!0}),t("mention","Mention (@)",R.mention,()=>this.codeEditor.insertMention()),t("doclink","Insert document link",R.fileText,()=>this.codeEditor.insertDocLink()),t("code","Code block",R.code,()=>this.insertSnippet("code")),t("table","Table",R.table,i=>this.showTablePopup(i),{groupEnd:!0}),t("math","Math formula",R.sigma,()=>this.wrapSnippet("math")),t("mindmap","Insert mindmap",R.mindmap,()=>this.insertSnippet("mindmapBlock"),{groupEnd:!0}),t("hr","Horizontal rule",R.hr,()=>this.insertSnippet("hr")),t("tips","Insert callout",R.alert,i=>this.showTipsPopup(i),{groupEnd:!0}),t("preview","Toggle preview",R.eye,()=>this.togglePreview(),{toggle:!0,active:this.showPreview}),t("help","Keyboard shortcuts",R.help,i=>this.showHelpPopup(i)),t("theme","Toggle theme",this.theme==="dark"?R.sun:R.moon,()=>this.setTheme(this.theme==="dark"?"light":"dark")),this.toolbar=new Ht(e),this.container.insertBefore(this.toolbar.el,this.body)}buildStatusBar(){this.statusBar=new Ft({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 te(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(Ce(a,"image"))}}),this.activePopup.show()}showVideoPopup(e){var t;(t=this.activePopup)==null||t.destroy(),this.activePopup=new te(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(Ut(r,i.alt||"video"))}}),this.activePopup.show()}showYouTubePopup(e){var t;(t=this.activePopup)==null||t.destroy(),this.activePopup=new te(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=Pt(r);a&&this.codeEditor.insertAtCursor(Bt(a))}}),this.activePopup.show()}showTablePopup(e){var t;(t=this.activePopup)==null||t.destroy(),this.activePopup=new te(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
28
|
`);return a>0?`${i}
|
|
29
29
|
${r}
|
|
30
30
|
${s}
|
|
@@ -41,4 +41,4 @@ ${r}
|
|
|
41
41
|
Your ${c.key.toLowerCase()} content here.
|
|
42
42
|
|
|
43
43
|
:::
|
|
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()}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{}}insertSnippet(e){const[t,i,r]=rt[e];this.codeEditor.insertAtCursor(`${t}${r}${i}`)}wrapSnippet(e){const[t,i,r]=rt[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??qt(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=Gt(a=>this.renderPreview(a),t),this.scheduledWait=t),this.scheduledRender(e)}renderPreview(e){if(!this.previewPane||!this.incremental)return;const{totalCount:t}=this.incremental.update(e);if(this.renderer.hydrate(this.previewPane),this.statusBar){const{charCount:i,wordCount:r}=Me(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}=Me(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),(t=this.toolbar)==null||t.setIcon("theme",e==="dark"?
|
|
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()}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{}}insertSnippet(e){const[t,i,r]=rt[e];this.codeEditor.insertAtCursor(`${t}${r}${i}`)}wrapSnippet(e){const[t,i,r]=rt[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??qt(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=Gt(a=>this.renderPreview(a),t),this.scheduledWait=t),this.scheduledRender(e)}renderPreview(e){if(!this.previewPane||!this.incremental)return;const{totalCount:t}=this.incremental.update(e);if(this.renderer.hydrate(this.previewPane),this.statusBar){const{charCount:i,wordCount:r}=Me(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}=Me(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),(t=this.toolbar)==null||t.setIcon("theme",e==="dark"?R.sun:R.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=st;exports.DEFAULT_SHORTCUTS=Wt;exports.IncrementalRenderer=Kt;exports.MarkdownEditor=ar;exports.Popup=te;exports.Renderer=Pe;exports.StatusBar=Ft;exports.Toolbar=Ht;exports.adaptiveDebounceMs=qt;exports.cancelIdle=rr;exports.countText=Me;exports.debounce=Gt;exports.extractYouTubeId=Pt;exports.formatShortcut=or;exports.formatShortcutHtml=Yt;exports.icons=R;exports.imageMarkdown=Ce;exports.isVideoFile=$t;exports.matchShortcut=sr;exports.renderMarkdown=Ji;exports.scheduleIdle=ir;exports.splitIntoBlocks=zt;exports.videoMarkdown=Ut;exports.youTubeEmbedMarkdown=Bt;
|