diff --git a/README.md b/README.md index e2b8d3d..1460ac3 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,119 @@ -# blog-static +# StaticPress -To install dependencies: +A local-first static site generator with a WordPress-like admin panel. Create blogs, landing pages, and business websites that deploy to Cloudflare Pages for fast, secure, free hosting. + +## Features + +- **Visual Editor** - WYSIWYG editing with TipTap +- **Markdown Support** - Toggle to raw markdown for power users +- **Live Preview** - See changes in real-time (split view, iframe, or rendered HTML) +- **SEO Optimized** - Sitemap, robots.txt, Open Graph, and Twitter cards built-in +- **Cloudflare Ready** - One-click deploy to Cloudflare Pages +- **Dark Mode** - Built-in dark mode support +- **Fast Static Files** - Pure HTML/CSS, no JavaScript required for visitors + +## Requirements + +- [Bun](https://bun.sh) - Runtime +- [Wrangler](https://developers.cloudflare.com/workers/wrangler/) - For Cloudflare deployment + +## Quick Start ```bash +# Install dependencies bun install + +# Start the dev server +bun run dev + +# Open admin panel +open http://localhost:4321/admin/ ``` -To run: +## Workflow + +1. **Create Content** - Go to `/admin/` to create posts and pages +2. **Edit** - Use visual mode or markdown toggle +3. **Preview** - See live preview as you edit +4. **Save** - Saves markdown files to `src/content/posts/` or `src/content/pages/` +5. **Build** - Click "Build Site" or run `bun run build` +6. **Deploy** - Click "Deploy" to push to Cloudflare Pages + +## Project Structure + +``` +├── src/ +│ ├── content/ +│ │ ├── posts/ # Blog posts (markdown) +│ │ └── pages/ # Static pages (markdown) +│ ├── pages/ +│ │ ├── blog/ # Blog post routes +│ │ ├── [slug].astro # Static page routes +│ │ └── index.astro # Homepage +│ ├── layouts/ # Shared layouts +│ ├── lib/ # Utilities +│ └── server.ts # Dev server +├── admin/ +│ └── index.html # Admin SPA +├── dist/ # Built output +└── public/ # Static assets +``` + +## Configuration + +### Site URL + +Before deploying, update the site URL in: +- `src/pages/index.astro` +- `src/pages/blog/index.astro` +- `src/pages/blog/[slug].astro` +- `src/pages/[slug].astro` + +Replace `https://yoursite.com` with your actual domain. + +### Cloudflare Setup + +1. Create a Cloudflare Pages project +2. Go to `/admin/deploy` in the admin panel +3. Enter your: + - Project Name + - API Token (needs "Cloudflare Pages: Edit" permission) + - Account ID + +## SEO + +StaticPress includes: + +- **Sitemap** - Auto-generated at `/sitemap.xml` +- **Robots.txt** - Configured at `/robots.txt` +- **Meta Tags** - Title, description, canonical URLs +- **Open Graph** - Social sharing cards +- **Twitter Cards** - Twitter metadata + +## Commands ```bash -bun run index.ts +bun run dev # Start dev server (serves admin + builds on save) +bun run build # Build static site to dist/ +bun run preview # Preview built site locally +bun run deploy # Deploy to Cloudflare Pages ``` -This project was created using `bun init` in bun v1.3.9. [Bun](https://bun.com) is a fast all-in-one JavaScript runtime. +## Tech Stack + +- **Astro** - Static site generator +- **TipTap** - Rich text editor +- **Tailwind CSS** - Styling +- **Bun** - Runtime and dev server +- **Cloudflare Pages** - Hosting + +## Security + +- Admin panel is never deployed (not in `dist/`) +- API routes are never deployed +- Only static HTML/CSS/JS goes to Cloudflare Pages +- robots.txt blocks crawlers from admin/API + +## License + +MIT diff --git a/admin/admin-editor.js b/admin/admin-editor.js new file mode 100644 index 0000000..955e320 --- /dev/null +++ b/admin/admin-editor.js @@ -0,0 +1,104 @@ +var bz=Object.create;var{getPrototypeOf:Ez,defineProperty:i6,getOwnPropertyNames:Tz}=Object;var xz=Object.prototype.hasOwnProperty;var Sz=(Z,Q,J)=>{J=Z!=null?bz(Ez(Z)):{};let q=Q||!Z||!Z.__esModule?i6(J,"default",{value:Z,enumerable:!0}):J;for(let X of Tz(Z))if(!xz.call(q,X))i6(q,X,{get:()=>Z[X],enumerable:!0});return q};var vz=(Z,Q)=>()=>(Q||Z((Q={exports:{}}).exports,Q),Q.exports);var Cz=vz((a_,Oz)=>{function Gz(Z){if(Z instanceof Map)Z.clear=Z.delete=Z.set=function(){throw Error("map is read-only")};else if(Z instanceof Set)Z.add=Z.clear=Z.delete=function(){throw Error("set is read-only")};return Object.freeze(Z),Object.getOwnPropertyNames(Z).forEach((Q)=>{let J=Z[Q],q=typeof J;if((q==="object"||q==="function")&&!Object.isFrozen(J))Gz(J)}),Z}class h6{constructor(Z){if(Z.data===void 0)Z.data={};this.data=Z.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function Kz(Z){return Z.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function o9(Z,...Q){let J=Object.create(null);for(let q in Z)J[q]=Z[q];return Q.forEach(function(q){for(let X in q)J[X]=q[X]}),J}var AH="",Jz=(Z)=>{return!!Z.scope},OH=(Z,{prefix:Q})=>{if(Z.startsWith("language:"))return Z.replace("language:","language-");if(Z.includes(".")){let J=Z.split(".");return[`${Q}${J.shift()}`,...J.map((q,X)=>`${q}${"_".repeat(X+1)}`)].join(" ")}return`${Q}${Z}`};class Wz{constructor(Z,Q){this.buffer="",this.classPrefix=Q.classPrefix,Z.walk(this)}addText(Z){this.buffer+=Kz(Z)}openNode(Z){if(!Jz(Z))return;let Q=OH(Z.scope,{prefix:this.classPrefix});this.span(Q)}closeNode(Z){if(!Jz(Z))return;this.buffer+=AH}value(){return this.buffer}span(Z){this.buffer+=``}}var qz=(Z={})=>{let Q={children:[]};return Object.assign(Q,Z),Q};class m6{constructor(){this.rootNode=qz(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Z){this.top.children.push(Z)}openNode(Z){let Q=qz({scope:Z});this.add(Q),this.stack.push(Q)}closeNode(){if(this.stack.length>1)return this.stack.pop();return}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Z){return this.constructor._walk(Z,this.rootNode)}static _walk(Z,Q){if(typeof Q==="string")Z.addText(Q);else if(Q.children)Z.openNode(Q),Q.children.forEach((J)=>this._walk(Z,J)),Z.closeNode(Q);return Z}static _collapse(Z){if(typeof Z==="string")return;if(!Z.children)return;if(Z.children.every((Q)=>typeof Q==="string"))Z.children=[Z.children.join("")];else Z.children.forEach((Q)=>{m6._collapse(Q)})}}class Uz extends m6{constructor(Z){super();this.options=Z}addText(Z){if(Z==="")return;this.add(Z)}startScope(Z){this.openNode(Z)}endScope(){this.closeNode()}__addSublanguage(Z,Q){let J=Z.root;if(Q)J.scope=`language:${Q}`;this.add(J)}toHTML(){return new Wz(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function g8(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function Hz(Z){return O1("(?=",Z,")")}function CH(Z){return O1("(?:",Z,")*")}function kH(Z){return O1("(?:",Z,")?")}function O1(...Z){return Z.map((J)=>g8(J)).join("")}function yH(Z){let Q=Z[Z.length-1];if(typeof Q==="object"&&Q.constructor===Object)return Z.splice(Z.length-1,1),Q;else return{}}function c6(...Z){return"("+(yH(Z).capture?"":"?:")+Z.map((q)=>g8(q)).join("|")+")"}function Fz(Z){return new RegExp(Z.toString()+"|").exec("").length-1}function $H(Z,Q){let J=Z&&Z.exec(Q);return J&&J.index===0}var NH=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function p6(Z,{joinWith:Q}){let J=0;return Z.map((q)=>{J+=1;let X=J,z=g8(q),V="";while(z.length>0){let Y=NH.exec(z);if(!Y){V+=z;break}if(V+=z.substring(0,Y.index),z=z.substring(Y.index+Y[0].length),Y[0][0]==="\\"&&Y[1])V+="\\"+String(Number(Y[1])+X);else if(V+=Y[0],Y[0]==="(")J++}return V}).map((q)=>`(${q})`).join(Q)}var RH=/\b\B/,Bz="[a-zA-Z]\\w*",l6="[a-zA-Z_]\\w*",Lz="\\b\\d+(\\.\\d+)?",Pz="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",_z="\\b(0b[01]+)",bH="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",EH=(Z={})=>{let Q=/^#![ ]*\//;if(Z.binary)Z.begin=O1(Q,/.*\b/,Z.binary,/\b.*/);return o9({scope:"meta",begin:Q,end:/$/,relevance:0,"on:begin":(J,q)=>{if(J.index!==0)q.ignoreMatch()}},Z)},h8={begin:"\\\\[\\s\\S]",relevance:0},TH={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[h8]},xH={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[h8]},SH={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/},y5=function(Z,Q,J={}){let q=o9({scope:"comment",begin:Z,end:Q,contains:[]},J);q.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let X=c6("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 q.contains.push({begin:O1(/[ ]+/,"(",X,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),q},vH=y5("//","$"),wH=y5("/\\*","\\*/"),fH=y5("#","$"),uH={scope:"number",begin:Lz,relevance:0},gH={scope:"number",begin:Pz,relevance:0},hH={scope:"number",begin:_z,relevance:0},mH={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[h8,{begin:/\[/,end:/\]/,relevance:0,contains:[h8]}]},cH={scope:"title",begin:Bz,relevance:0},pH={scope:"title",begin:l6,relevance:0},lH={begin:"\\.\\s*"+l6,relevance:0},dH=function(Z){return Object.assign(Z,{"on:begin":(Q,J)=>{J.data._beginMatch=Q[1]},"on:end":(Q,J)=>{if(J.data._beginMatch!==Q[1])J.ignoreMatch()}})},C5=Object.freeze({__proto__:null,APOS_STRING_MODE:TH,BACKSLASH_ESCAPE:h8,BINARY_NUMBER_MODE:hH,BINARY_NUMBER_RE:_z,COMMENT:y5,C_BLOCK_COMMENT_MODE:wH,C_LINE_COMMENT_MODE:vH,C_NUMBER_MODE:gH,C_NUMBER_RE:Pz,END_SAME_AS_BEGIN:dH,HASH_COMMENT_MODE:fH,IDENT_RE:Bz,MATCH_NOTHING_RE:RH,METHOD_GUARD:lH,NUMBER_MODE:uH,NUMBER_RE:Lz,PHRASAL_WORDS_MODE:SH,QUOTE_STRING_MODE:xH,REGEXP_MODE:mH,RE_STARTERS_RE:bH,SHEBANG:EH,TITLE_MODE:cH,UNDERSCORE_IDENT_RE:l6,UNDERSCORE_TITLE_MODE:pH});function iH(Z,Q){if(Z.input[Z.index-1]===".")Q.ignoreMatch()}function nH(Z,Q){if(Z.className!==void 0)Z.scope=Z.className,delete Z.className}function sH(Z,Q){if(!Q)return;if(!Z.beginKeywords)return;if(Z.begin="\\b("+Z.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",Z.__beforeBegin=iH,Z.keywords=Z.keywords||Z.beginKeywords,delete Z.beginKeywords,Z.relevance===void 0)Z.relevance=0}function aH(Z,Q){if(!Array.isArray(Z.illegal))return;Z.illegal=c6(...Z.illegal)}function rH(Z,Q){if(!Z.match)return;if(Z.begin||Z.end)throw Error("begin & end are not supported with match");Z.begin=Z.match,delete Z.match}function oH(Z,Q){if(Z.relevance===void 0)Z.relevance=1}var tH=(Z,Q)=>{if(!Z.beforeMatch)return;if(Z.starts)throw Error("beforeMatch cannot be used with starts");let J=Object.assign({},Z);Object.keys(Z).forEach((q)=>{delete Z[q]}),Z.keywords=J.keywords,Z.begin=O1(J.beforeMatch,Hz(J.begin)),Z.starts={relevance:0,contains:[Object.assign(J,{endsParent:!0})]},Z.relevance=0,delete J.beforeMatch},eH=["of","and","for","in","not","or","if","then","parent","list","value"],ZF="keyword";function jz(Z,Q,J=ZF){let q=Object.create(null);if(typeof Z==="string")X(J,Z.split(" "));else if(Array.isArray(Z))X(J,Z);else Object.keys(Z).forEach(function(z){Object.assign(q,jz(Z[z],Q,z))});return q;function X(z,V){if(Q)V=V.map((Y)=>Y.toLowerCase());V.forEach(function(Y){let G=Y.split("|");q[G[0]]=[z,QF(G[0],G[1])]})}}function QF(Z,Q){if(Q)return Number(Q);return JF(Z)?0:1}function JF(Z){return eH.includes(Z.toLowerCase())}var Xz={},A1=(Z)=>{console.error(Z)},zz=(Z,...Q)=>{console.log(`WARN: ${Z}`,...Q)},r1=(Z,Q)=>{if(Xz[`${Z}/${Q}`])return;console.log(`Deprecated as of ${Z}. ${Q}`),Xz[`${Z}/${Q}`]=!0},k5=Error();function Iz(Z,Q,{key:J}){let q=0,X=Z[J],z={},V={};for(let Y=1;Y<=Q.length;Y++)V[Y+q]=X[Y],z[Y+q]=!0,q+=Fz(Q[Y-1]);Z[J]=V,Z[J]._emit=z,Z[J]._multi=!0}function qF(Z){if(!Array.isArray(Z.begin))return;if(Z.skip||Z.excludeBegin||Z.returnBegin)throw A1("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),k5;if(typeof Z.beginScope!=="object"||Z.beginScope===null)throw A1("beginScope must be object"),k5;Iz(Z,Z.begin,{key:"beginScope"}),Z.begin=p6(Z.begin,{joinWith:""})}function XF(Z){if(!Array.isArray(Z.end))return;if(Z.skip||Z.excludeEnd||Z.returnEnd)throw A1("skip, excludeEnd, returnEnd not compatible with endScope: {}"),k5;if(typeof Z.endScope!=="object"||Z.endScope===null)throw A1("endScope must be object"),k5;Iz(Z,Z.end,{key:"endScope"}),Z.end=p6(Z.end,{joinWith:""})}function zF(Z){if(Z.scope&&typeof Z.scope==="object"&&Z.scope!==null)Z.beginScope=Z.scope,delete Z.scope}function VF(Z){if(zF(Z),typeof Z.beginScope==="string")Z.beginScope={_wrap:Z.beginScope};if(typeof Z.endScope==="string")Z.endScope={_wrap:Z.endScope};qF(Z),XF(Z)}function YF(Z){function Q(V,Y){return new RegExp(g8(V),"m"+(Z.case_insensitive?"i":"")+(Z.unicodeRegex?"u":"")+(Y?"g":""))}class J{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(V,Y){Y.position=this.position++,this.matchIndexes[this.matchAt]=Y,this.regexes.push([Y,V]),this.matchAt+=Fz(V)+1}compile(){if(this.regexes.length===0)this.exec=()=>null;let V=this.regexes.map((Y)=>Y[1]);this.matcherRe=Q(p6(V,{joinWith:"|"}),!0),this.lastIndex=0}exec(V){this.matcherRe.lastIndex=this.lastIndex;let Y=this.matcherRe.exec(V);if(!Y)return null;let G=Y.findIndex((W,U)=>U>0&&W!==void 0),K=this.matchIndexes[G];return Y.splice(0,G),Object.assign(Y,K)}}class q{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(V){if(this.multiRegexes[V])return this.multiRegexes[V];let Y=new J;return this.rules.slice(V).forEach(([G,K])=>Y.addRule(G,K)),Y.compile(),this.multiRegexes[V]=Y,Y}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(V,Y){if(this.rules.push([V,Y]),Y.type==="begin")this.count++}exec(V){let Y=this.getMatcher(this.regexIndex);Y.lastIndex=this.lastIndex;let G=Y.exec(V);if(this.resumingScanAtSamePosition())if(G&&G.index===this.lastIndex);else{let K=this.getMatcher(0);K.lastIndex=this.lastIndex+1,G=K.exec(V)}if(G){if(this.regexIndex+=G.position+1,this.regexIndex===this.count)this.considerAll()}return G}}function X(V){let Y=new q;if(V.contains.forEach((G)=>Y.addRule(G.begin,{rule:G,type:"begin"})),V.terminatorEnd)Y.addRule(V.terminatorEnd,{type:"end"});if(V.illegal)Y.addRule(V.illegal,{type:"illegal"});return Y}function z(V,Y){let G=V;if(V.isCompiled)return G;[nH,rH,VF,tH].forEach((W)=>W(V,Y)),Z.compilerExtensions.forEach((W)=>W(V,Y)),V.__beforeBegin=null,[sH,aH,oH].forEach((W)=>W(V,Y)),V.isCompiled=!0;let K=null;if(typeof V.keywords==="object"&&V.keywords.$pattern)V.keywords=Object.assign({},V.keywords),K=V.keywords.$pattern,delete V.keywords.$pattern;if(K=K||/\w+/,V.keywords)V.keywords=jz(V.keywords,Z.case_insensitive);if(G.keywordPatternRe=Q(K,!0),Y){if(!V.begin)V.begin=/\B|\b/;if(G.beginRe=Q(G.begin),!V.end&&!V.endsWithParent)V.end=/\B|\b/;if(V.end)G.endRe=Q(G.end);if(G.terminatorEnd=g8(G.end)||"",V.endsWithParent&&Y.terminatorEnd)G.terminatorEnd+=(V.end?"|":"")+Y.terminatorEnd}if(V.illegal)G.illegalRe=Q(V.illegal);if(!V.contains)V.contains=[];if(V.contains=[].concat(...V.contains.map(function(W){return GF(W==="self"?V:W)})),V.contains.forEach(function(W){z(W,G)}),V.starts)z(V.starts,Y);return G.matcher=X(G),G}if(!Z.compilerExtensions)Z.compilerExtensions=[];if(Z.contains&&Z.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return Z.classNameAliases=o9(Z.classNameAliases||{}),z(Z)}function Dz(Z){if(!Z)return!1;return Z.endsWithParent||Dz(Z.starts)}function GF(Z){if(Z.variants&&!Z.cachedVariants)Z.cachedVariants=Z.variants.map(function(Q){return o9(Z,{variants:null},Q)});if(Z.cachedVariants)return Z.cachedVariants;if(Dz(Z))return o9(Z,{starts:Z.starts?o9(Z.starts):null});if(Object.isFrozen(Z))return o9(Z);return Z}var KF="11.11.1";class Mz extends Error{constructor(Z,Q){super(Z);this.name="HTMLInjectionError",this.html=Q}}var g6=Kz,Vz=o9,Yz=Symbol("nomatch"),WF=7,Az=function(Z){let Q=Object.create(null),J=Object.create(null),q=[],X=!0,z="Could not find the language '{}', did you forget to load/include a language module?",V={disableAutodetect:!0,name:"Plain text",contains:[]},Y={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Uz};function G(O){return Y.noHighlightRe.test(O)}function K(O){let j=O.className+" ";j+=O.parentNode?O.parentNode.className:"";let M=Y.languageDetectRe.exec(j);if(M){let E=S(M[1]);if(!E)zz(z.replace("{}",M[1])),zz("Falling back to no-highlight mode for this block.",O);return E?M[1]:"no-highlight"}return j.split(/\s+/).find((E)=>G(E)||S(E))}function W(O,j,M){let E="",g="";if(typeof j==="object")E=O,M=j.ignoreIllegals,g=j.language;else r1("10.7.0","highlight(lang, code, ...args) has been deprecated."),r1("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),g=O,E=j;if(M===void 0)M=!0;let l={code:E,language:g};Y0("before:highlight",l);let t=l.result?l.result:U(l.language,l.code,M);return t.code=l.code,Y0("after:highlight",t),t}function U(O,j,M,E){let g=Object.create(null);function l(T,I){return T.keywords[I]}function t(){if(!c.keywords){A0.addText(n);return}let T=0;c.keywordPatternRe.lastIndex=0;let I=c.keywordPatternRe.exec(n),C="";while(I){C+=n.substring(T,I.index);let v=u0.case_insensitive?I[0].toLowerCase():I[0],d=l(c,v);if(d){let[G0,X9]=d;if(A0.addText(C),C="",g[v]=(g[v]||0)+1,g[v]<=WF)Q0+=X9;if(G0.startsWith("_"))C+=I[0];else{let $5=u0.classNameAliases[G0]||G0;z0(I[0],$5)}}else C+=I[0];T=c.keywordPatternRe.lastIndex,I=c.keywordPatternRe.exec(n)}C+=n.substring(T),A0.addText(C)}function _0(){if(n==="")return;let T=null;if(typeof c.subLanguage==="string"){if(!Q[c.subLanguage]){A0.addText(n);return}T=U(c.subLanguage,n,!0,p[c.subLanguage]),p[c.subLanguage]=T._top}else T=F(n,c.subLanguage.length?c.subLanguage:null);if(c.relevance>0)Q0+=T.relevance;A0.__addSublanguage(T._emitter,T.language)}function M0(){if(c.subLanguage!=null)_0();else t();n=""}function z0(T,I){if(T==="")return;A0.startScope(I),A0.addText(T),A0.endScope()}function y0(T,I){let C=1,v=I.length-1;while(C<=v){if(!T._emit[C]){C++;continue}let d=u0.classNameAliases[T[C]]||T[C],G0=I[C];if(d)z0(G0,d);else n=G0,t(),n="";C++}}function t9(T,I){if(T.scope&&typeof T.scope==="string")A0.openNode(u0.classNameAliases[T.scope]||T.scope);if(T.beginScope){if(T.beginScope._wrap)z0(n,u0.classNameAliases[T.beginScope._wrap]||T.beginScope._wrap),n="";else if(T.beginScope._multi)y0(T.beginScope,I),n=""}return c=Object.create(T,{parent:{value:c}}),c}function T9(T,I,C){let v=$H(T.endRe,C);if(v){if(T["on:end"]){let d=new h6(T);if(T["on:end"](I,d),d.isMatchIgnored)v=!1}if(v){while(T.endsParent&&T.parent)T=T.parent;return T}}if(T.endsWithParent)return T9(T.parent,I,C)}function C1(T){if(c.matcher.regexIndex===0)return n+=T[0],1;else return e9=!0,0}function t1(T){let I=T[0],C=T.rule,v=new h6(C),d=[C.__beforeBegin,C["on:begin"]];for(let G0 of d){if(!G0)continue;if(G0(T,v),v.isMatchIgnored)return C1(I)}if(C.skip)n+=I;else{if(C.excludeBegin)n+=I;if(M0(),!C.returnBegin&&!C.excludeBegin)n=I}return t9(C,T),C.returnBegin?0:I.length}function e1(T){let I=T[0],C=j.substring(T.index),v=T9(c,T,C);if(!v)return Yz;let d=c;if(c.endScope&&c.endScope._wrap)M0(),z0(I,c.endScope._wrap);else if(c.endScope&&c.endScope._multi)M0(),y0(c.endScope,T);else if(d.skip)n+=I;else{if(!(d.returnEnd||d.excludeEnd))n+=I;if(M0(),d.excludeEnd)n=I}do{if(c.scope)A0.closeNode();if(!c.skip&&!c.subLanguage)Q0+=c.relevance;c=c.parent}while(c!==v.parent);if(v.starts)t9(v.starts,T);return d.returnEnd?0:I.length}function Z8(){let T=[];for(let I=c;I!==u0;I=I.parent)if(I.scope)T.unshift(I.scope);T.forEach((I)=>A0.openNode(I))}let x9={};function M9(T,I){let C=I&&I[0];if(n+=T,C==null)return M0(),0;if(x9.type==="begin"&&I.type==="end"&&x9.index===I.index&&C===""){if(n+=j.slice(I.index,I.index+1),!X){let v=Error(`0 width match regex (${O})`);throw v.languageName=O,v.badRule=x9.rule,v}return 1}if(x9=I,I.type==="begin")return t1(I);else if(I.type==="illegal"&&!M){let v=Error('Illegal lexeme "'+C+'" for mode "'+(c.scope||"")+'"');throw v.mode=c,v}else if(I.type==="end"){let v=e1(I);if(v!==Yz)return v}if(I.type==="illegal"&&C==="")return n+=` +`,1;if(q9>1e5&&q9>I.index*3)throw Error("potential infinite loop, way more iterations than matches");return n+=C,C.length}let u0=S(O);if(!u0)throw A1(z.replace("{}",O)),Error('Unknown language: "'+O+'"');let r=YF(u0),K9="",c=E||r,p={},A0=new Y.__emitter(Y);Z8();let n="",Q0=0,s0=0,q9=0,e9=!1;try{if(!u0.__emitTokens){c.matcher.considerAll();for(;;){if(q9++,e9)e9=!1;else c.matcher.considerAll();c.matcher.lastIndex=s0;let T=c.matcher.exec(j);if(!T)break;let I=j.substring(s0,T.index),C=M9(I,T);s0=T.index+C}M9(j.substring(s0))}else u0.__emitTokens(j,A0);return A0.finalize(),K9=A0.toHTML(),{language:O,value:K9,relevance:Q0,illegal:!1,_emitter:A0,_top:c}}catch(T){if(T.message&&T.message.includes("Illegal"))return{language:O,value:g6(j),illegal:!0,relevance:0,_illegalBy:{message:T.message,index:s0,context:j.slice(s0-100,s0+100),mode:T.mode,resultSoFar:K9},_emitter:A0};else if(X)return{language:O,value:g6(j),illegal:!1,relevance:0,errorRaised:T,_emitter:A0,_top:c};else throw T}}function H(O){let j={value:g6(O),illegal:!1,relevance:0,_top:V,_emitter:new Y.__emitter(Y)};return j._emitter.addText(O),j}function F(O,j){j=j||Y.languages||Object.keys(Q);let M=H(O),E=j.filter(S).filter(U0).map((M0)=>U(M0,O,!1));E.unshift(M);let g=E.sort((M0,z0)=>{if(M0.relevance!==z0.relevance)return z0.relevance-M0.relevance;if(M0.language&&z0.language){if(S(M0.language).supersetOf===z0.language)return 1;else if(S(z0.language).supersetOf===M0.language)return-1}return 0}),[l,t]=g,_0=l;return _0.secondBest=t,_0}function B(O,j,M){let E=j&&J[j]||M;O.classList.add("hljs"),O.classList.add(`language-${E}`)}function L(O){let j=null,M=K(O);if(G(M))return;if(Y0("before:highlightElement",{el:O,language:M}),O.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",O);return}if(O.children.length>0){if(!Y.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(O);if(Y.throwUnescapedHTML)throw new Mz("One of your code blocks includes unescaped HTML.",O.innerHTML)}j=O;let E=j.textContent,g=M?W(E,{language:M,ignoreIllegals:!0}):F(E);if(O.innerHTML=g.value,O.dataset.highlighted="yes",B(O,M,g.language),O.result={language:g.language,re:g.relevance,relevance:g.relevance},g.secondBest)O.secondBest={language:g.secondBest.language,relevance:g.secondBest.relevance};Y0("after:highlightElement",{el:O,result:g,text:E})}function P(O){Y=Vz(Y,O)}let _=()=>{N(),r1("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function A(){N(),r1("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let k=!1;function N(){function O(){N()}if(document.readyState==="loading"){if(!k)window.addEventListener("DOMContentLoaded",O,!1);k=!0;return}document.querySelectorAll(Y.cssSelector).forEach(L)}function $(O,j){let M=null;try{M=j(Z)}catch(E){if(A1("Language definition for '{}' could not be registered.".replace("{}",O)),!X)throw E;else A1(E);M=V}if(!M.name)M.name=O;if(Q[O]=M,M.rawDefinition=j.bind(null,Z),M.aliases)m(M.aliases,{languageName:O})}function x(O){delete Q[O];for(let j of Object.keys(J))if(J[j]===O)delete J[j]}function b(){return Object.keys(Q)}function S(O){return O=(O||"").toLowerCase(),Q[O]||Q[J[O]]}function m(O,{languageName:j}){if(typeof O==="string")O=[O];O.forEach((M)=>{J[M.toLowerCase()]=j})}function U0(O){let j=S(O);return j&&!j.disableAutodetect}function T0(O){if(O["before:highlightBlock"]&&!O["before:highlightElement"])O["before:highlightElement"]=(j)=>{O["before:highlightBlock"](Object.assign({block:j.el},j))};if(O["after:highlightBlock"]&&!O["after:highlightElement"])O["after:highlightElement"]=(j)=>{O["after:highlightBlock"](Object.assign({block:j.el},j))}}function C0(O){T0(O),q.push(O)}function x0(O){let j=q.indexOf(O);if(j!==-1)q.splice(j,1)}function Y0(O,j){let M=O;q.forEach(function(E){if(E[M])E[M](j)})}function J0(O){return r1("10.7.0","highlightBlock will be removed entirely in v12.0"),r1("10.7.0","Please use highlightElement now."),L(O)}Object.assign(Z,{highlight:W,highlightAuto:F,highlightAll:N,highlightElement:L,highlightBlock:J0,configure:P,initHighlighting:_,initHighlightingOnLoad:A,registerLanguage:$,unregisterLanguage:x,listLanguages:b,getLanguage:S,registerAliases:m,autoDetection:U0,inherit:Vz,addPlugin:C0,removePlugin:x0}),Z.debugMode=function(){X=!1},Z.safeMode=function(){X=!0},Z.versionString=KF,Z.regex={concat:O1,lookahead:Hz,either:c6,optional:kH,anyNumberOfTimes:CH};for(let O in C5)if(typeof C5[O]==="object")Gz(C5[O]);return Object.assign(Z,C5),Z},o1=Az({});o1.newInstance=()=>Az({});Oz.exports=o1;o1.HighlightJS=o1;o1.default=o1});function S0(Z){this.content=Z}S0.prototype={constructor:S0,find:function(Z){for(var Q=0;Q>1}};S0.from=function(Z){if(Z instanceof S0)return Z;var Q=[];if(Z)for(var J in Z)Q.push(J,Z[J]);return new S0(Q)};var N5=S0;function J7(Z,Q,J){for(let q=0;;q++){if(q==Z.childCount||q==Q.childCount)return Z.childCount==Q.childCount?null:J;let X=Z.child(q),z=Q.child(q);if(X==z){J+=X.nodeSize;continue}if(!X.sameMarkup(z))return J;if(X.isText&&X.text!=z.text){for(let V=0;X.text[V]==z.text[V];V++)J++;return J}if(X.content.size||z.content.size){let V=J7(X.content,z.content,J+1);if(V!=null)return V}J+=X.nodeSize}}function q7(Z,Q,J,q){for(let X=Z.childCount,z=Q.childCount;;){if(X==0||z==0)return X==z?null:{a:J,b:q};let V=Z.child(--X),Y=Q.child(--z),G=V.nodeSize;if(V==Y){J-=G,q-=G;continue}if(!V.sameMarkup(Y))return{a:J,b:q};if(V.isText&&V.text!=Y.text){let K=0,W=Math.min(V.text.length,Y.text.length);while(KZ&&J(Y,q+V,X||null,z)!==!1&&Y.content.size){let K=V+1;Y.nodesBetween(Math.max(0,Z-K),Math.min(Y.content.size,Q-K),J,q+K)}V=G}}descendants(Z){this.nodesBetween(0,this.size,Z)}textBetween(Z,Q,J,q){let X="",z=!0;return this.nodesBetween(Z,Q,(V,Y)=>{let G=V.isText?V.text.slice(Math.max(Z,Y)-Y,Q-Y):!V.isLeaf?"":q?typeof q==="function"?q(V):q:V.type.spec.leafText?V.type.spec.leafText(V):"";if(V.isBlock&&(V.isLeaf&&G||V.isTextblock)&&J)if(z)z=!1;else X+=J;X+=G},0),X}append(Z){if(!Z.size)return this;if(!this.size)return Z;let Q=this.lastChild,J=Z.firstChild,q=this.content.slice(),X=0;if(Q.isText&&Q.sameMarkup(J))q[q.length-1]=Q.withText(Q.text+J.text),X=1;for(;XZ)for(let X=0,z=0;zZ){if(zQ)if(V.isText)V=V.cut(Math.max(0,Z-z),Math.min(V.text.length,Q-z));else V=V.cut(Math.max(0,Z-z-1),Math.min(V.content.size,Q-z-1));J.push(V),q+=V.nodeSize}z=Y}return new D(J,q)}cutByIndex(Z,Q){if(Z==Q)return D.empty;if(Z==0&&Q==this.content.length)return this;return new D(this.content.slice(Z,Q))}replaceChild(Z,Q){let J=this.content[Z];if(J==Q)return this;let q=this.content.slice(),X=this.size+Q.nodeSize-J.nodeSize;return q[Z]=Q,new D(q,X)}addToStart(Z){return new D([Z].concat(this.content),this.size+Z.nodeSize)}addToEnd(Z){return new D(this.content.concat(Z),this.size+Z.nodeSize)}eq(Z){if(this.content.length!=Z.content.length)return!1;for(let Q=0;Qthis.size||Z<0)throw RangeError(`Position ${Z} outside of fragment (${this})`);for(let Q=0,J=0;;Q++){let q=this.child(Q),X=J+q.nodeSize;if(X>=Z){if(X==Z)return m8(Q+1,X);return m8(Q,J)}J=X}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map((Z)=>Z.toJSON()):null}static fromJSON(Z,Q){if(!Q)return D.empty;if(!Array.isArray(Q))throw RangeError("Invalid input for Fragment.fromJSON");return new D(Q.map(Z.nodeFromJSON))}static fromArray(Z){if(!Z.length)return D.empty;let Q,J=0;for(let q=0;qthis.type.rank){if(!Q)Q=Z.slice(0,q);Q.push(this),J=!0}if(Q)Q.push(X)}}if(!Q)Q=Z.slice();if(!J)Q.push(this);return Q}removeFromSet(Z){for(let Q=0;QJ.type.rank-q.type.rank),Q}}e.none=[];class k1 extends Error{}class R{constructor(Z,Q,J){this.content=Z,this.openStart=Q,this.openEnd=J}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(Z,Q){let J=z7(this.content,Z+this.openStart,Q);return J&&new R(J,this.openStart,this.openEnd)}removeBetween(Z,Q){return new R(X7(this.content,Z+this.openStart,Q+this.openStart),this.openStart,this.openEnd)}eq(Z){return this.content.eq(Z.content)&&this.openStart==Z.openStart&&this.openEnd==Z.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let Z={content:this.content.toJSON()};if(this.openStart>0)Z.openStart=this.openStart;if(this.openEnd>0)Z.openEnd=this.openEnd;return Z}static fromJSON(Z,Q){if(!Q)return R.empty;let J=Q.openStart||0,q=Q.openEnd||0;if(typeof J!="number"||typeof q!="number")throw RangeError("Invalid input for Slice.fromJSON");return new R(D.fromJSON(Z,Q.content),J,q)}static maxOpen(Z,Q=!0){let J=0,q=0;for(let X=Z.firstChild;X&&!X.isLeaf&&(Q||!X.type.spec.isolating);X=X.firstChild)J++;for(let X=Z.lastChild;X&&!X.isLeaf&&(Q||!X.type.spec.isolating);X=X.lastChild)q++;return new R(Z,J,q)}}R.empty=new R(D.empty,0,0);function X7(Z,Q,J){let{index:q,offset:X}=Z.findIndex(Q),z=Z.maybeChild(q),{index:V,offset:Y}=Z.findIndex(J);if(X==Q||z.isText){if(Y!=J&&!Z.child(V).isText)throw RangeError("Removing non-flat range");return Z.cut(0,Q).append(Z.cut(J))}if(q!=V)throw RangeError("Removing non-flat range");return Z.replaceChild(q,z.copy(X7(z.content,Q-X-1,J-X-1)))}function z7(Z,Q,J,q){let{index:X,offset:z}=Z.findIndex(Q),V=Z.maybeChild(X);if(z==Q||V.isText){if(q&&!q.canReplace(X,X,J))return null;return Z.cut(0,Q).append(J).append(Z.cut(Q))}let Y=z7(V.content,Q-z-1,J,V);return Y&&Z.replaceChild(X,V.copy(Y))}function wz(Z,Q,J){if(J.openStart>Z.depth)throw new k1("Inserted content deeper than insertion position");if(Z.depth-J.openStart!=Q.depth-J.openEnd)throw new k1("Inconsistent open depths");return V7(Z,Q,J,0)}function V7(Z,Q,J,q){let X=Z.index(q),z=Z.node(q);if(X==Q.index(q)&&q=0&&Z.isText&&Z.sameMarkup(Q[J]))Q[J]=Z.withText(Q[J].text+Z.text);else Q.push(Z)}function J8(Z,Q,J,q){let X=(Q||Z).node(J),z=0,V=Q?Q.index(J):X.childCount;if(Z){if(z=Z.index(J),Z.depth>J)z++;else if(Z.textOffset)Z1(Z.nodeAfter,q),z++}for(let Y=z;YX&&E5(Z,Q,X+1),V=q.depth>X&&E5(J,q,X+1),Y=[];if(J8(null,Z,X,Y),z&&V&&Q.index(X)==J.index(X))Y7(z,V),Z1(Q1(z,G7(Z,Q,J,q,X+1)),Y);else{if(z)Z1(Q1(z,l8(Z,Q,X+1)),Y);if(J8(Q,J,X,Y),V)Z1(Q1(V,l8(J,q,X+1)),Y)}return J8(q,null,X,Y),new D(Y)}function l8(Z,Q,J){let q=[];if(J8(null,Z,J,q),Z.depth>J){let X=E5(Z,Q,J+1);Z1(Q1(X,l8(Z,Q,J+1)),q)}return J8(Q,null,J,q),new D(q)}function fz(Z,Q){let J=Q.depth-Z.openStart,X=Q.node(J).copy(Z.content);for(let z=J-1;z>=0;z--)X=Q.node(z).copy(D.from(X));return{start:X.resolveNoCache(Z.openStart+J),end:X.resolveNoCache(X.content.size-Z.openEnd-J)}}class X8{constructor(Z,Q,J){this.pos=Z,this.path=Q,this.parentOffset=J,this.depth=Q.length/3-1}resolveDepth(Z){if(Z==null)return this.depth;if(Z<0)return this.depth+Z;return Z}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(Z){return this.path[this.resolveDepth(Z)*3]}index(Z){return this.path[this.resolveDepth(Z)*3+1]}indexAfter(Z){return Z=this.resolveDepth(Z),this.index(Z)+(Z==this.depth&&!this.textOffset?0:1)}start(Z){return Z=this.resolveDepth(Z),Z==0?0:this.path[Z*3-1]+1}end(Z){return Z=this.resolveDepth(Z),this.start(Z)+this.node(Z).content.size}before(Z){if(Z=this.resolveDepth(Z),!Z)throw RangeError("There is no position before the top-level node");return Z==this.depth+1?this.pos:this.path[Z*3-1]}after(Z){if(Z=this.resolveDepth(Z),!Z)throw RangeError("There is no position after the top-level node");return Z==this.depth+1?this.pos:this.path[Z*3-1]+this.path[Z*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let Z=this.parent,Q=this.index(this.depth);if(Q==Z.childCount)return null;let J=this.pos-this.path[this.path.length-1],q=Z.child(Q);return J?Z.child(Q).cut(J):q}get nodeBefore(){let Z=this.index(this.depth),Q=this.pos-this.path[this.path.length-1];if(Q)return this.parent.child(Z).cut(0,Q);return Z==0?null:this.parent.child(Z-1)}posAtIndex(Z,Q){Q=this.resolveDepth(Q);let J=this.path[Q*3],q=Q==0?0:this.path[Q*3-1]+1;for(let X=0;X0;Q--)if(this.start(Q)<=Z&&this.end(Q)>=Z)return Q;return 0}blockRange(Z=this,Q){if(Z.pos=0;J--)if(Z.pos<=this.end(J)&&(!Q||Q(this.node(J))))return new y1(this,Z,J);return null}sameParent(Z){return this.pos-this.parentOffset==Z.pos-Z.parentOffset}max(Z){return Z.pos>this.pos?Z:this}min(Z){return Z.pos=0&&Q<=Z.content.size))throw RangeError("Position "+Q+" out of range");let J=[],q=0,X=Q;for(let z=Z;;){let{index:V,offset:Y}=z.content.findIndex(X),G=X-Y;if(J.push(z,V,q+Y),!G)break;if(z=z.child(V),z.isText)break;X=G-1,q+=Y+1}return new X8(Q,J,X)}static resolveCached(Z,Q){let J=n6.get(Z);if(J)for(let X=0;XZ)this.nodesBetween(Z,Q,(X)=>{if(J.isInSet(X.marks))q=!0;return!q});return q}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let Z=this.type.name;if(this.content.size)Z+="("+this.content.toStringInner()+")";return W7(this.marks,Z)}contentMatchAt(Z){let Q=this.type.contentMatch.matchFragment(this.content,0,Z);if(!Q)throw Error("Called contentMatchAt on a node with invalid content");return Q}canReplace(Z,Q,J=D.empty,q=0,X=J.childCount){let z=this.contentMatchAt(Z).matchFragment(J,q,X),V=z&&z.matchFragment(this.content,Q);if(!V||!V.validEnd)return!1;for(let Y=q;YQ.type.name)}`);this.content.forEach((Q)=>Q.check())}toJSON(){let Z={type:this.type.name};for(let Q in this.attrs){Z.attrs=this.attrs;break}if(this.content.size)Z.content=this.content.toJSON();if(this.marks.length)Z.marks=this.marks.map((Q)=>Q.toJSON());return Z}static fromJSON(Z,Q){if(!Q)throw RangeError("Invalid input for Node.fromJSON");let J=void 0;if(Q.marks){if(!Array.isArray(Q.marks))throw RangeError("Invalid mark data for Node.fromJSON");J=Q.marks.map(Z.markFromJSON)}if(Q.type=="text"){if(typeof Q.text!="string")throw RangeError("Invalid text node in JSON");return Z.text(Q.text,J)}let q=D.fromJSON(Z,Q.content),X=Z.nodeType(Q.type).create(Q.attrs,q,J);return X.type.checkAttrs(X.attrs),X}}d0.prototype.text=void 0;class d8 extends d0{constructor(Z,Q,J,q){super(Z,Q,null,q);if(!J)throw RangeError("Empty text nodes are not allowed");this.text=J}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);return W7(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(Z,Q){return this.text.slice(Z,Q)}get nodeSize(){return this.text.length}mark(Z){return Z==this.marks?this:new d8(this.type,this.attrs,this.text,Z)}withText(Z){if(Z==this.text)return this;return new d8(this.type,this.attrs,Z,this.marks)}cut(Z=0,Q=this.text.length){if(Z==0&&Q==this.text.length)return this;return this.withText(this.text.slice(Z,Q))}eq(Z){return this.sameMarkup(Z)&&this.text==Z.text}toJSON(){let Z=super.toJSON();return Z.text=this.text,Z}}function W7(Z,Q){for(let J=Z.length-1;J>=0;J--)Q=Z[J].type.name+"("+Q+")";return Q}class J1{constructor(Z){this.validEnd=Z,this.next=[],this.wrapCache=[]}static parse(Z,Q){let J=new U7(Z,Q);if(J.next==null)return J1.empty;let q=H7(J);if(J.next)J.err("Unexpected trailing text");let X=iz(dz(q));return nz(X,J),X}matchType(Z){for(let Q=0;QG.createAndFill()));for(let G=0;G=this.next.length)throw RangeError(`There's no ${Z}th edge in this content match`);return this.next[Z]}toString(){let Z=[];function Q(J){Z.push(J);for(let q=0;q{let X=q+(J.validEnd?"*":" ")+" ";for(let z=0;z"+Z.indexOf(J.next[z].next);return X}).join(` +`)}}J1.empty=new J1(!0);class U7{constructor(Z,Q){if(this.string=Z,this.nodeTypes=Q,this.inline=null,this.pos=0,this.tokens=Z.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]=="")this.tokens.pop();if(this.tokens[0]=="")this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(Z){return this.next==Z&&(this.pos++||!0)}err(Z){throw SyntaxError(Z+" (in content expression '"+this.string+"')")}}function H7(Z){let Q=[];do Q.push(hz(Z));while(Z.eat("|"));return Q.length==1?Q[0]:{type:"choice",exprs:Q}}function hz(Z){let Q=[];do Q.push(mz(Z));while(Z.next&&Z.next!=")"&&Z.next!="|");return Q.length==1?Q[0]:{type:"seq",exprs:Q}}function mz(Z){let Q=lz(Z);for(;;)if(Z.eat("+"))Q={type:"plus",expr:Q};else if(Z.eat("*"))Q={type:"star",expr:Q};else if(Z.eat("?"))Q={type:"opt",expr:Q};else if(Z.eat("{"))Q=cz(Z,Q);else break;return Q}function s6(Z){if(/\D/.test(Z.next))Z.err("Expected number, got '"+Z.next+"'");let Q=Number(Z.next);return Z.pos++,Q}function cz(Z,Q){let J=s6(Z),q=J;if(Z.eat(","))if(Z.next!="}")q=s6(Z);else q=-1;if(!Z.eat("}"))Z.err("Unclosed braced range");return{type:"range",min:J,max:q,expr:Q}}function pz(Z,Q){let J=Z.nodeTypes,q=J[Q];if(q)return[q];let X=[];for(let z in J){let V=J[z];if(V.isInGroup(Q))X.push(V)}if(X.length==0)Z.err("No node type or group '"+Q+"' found");return X}function lz(Z){if(Z.eat("(")){let Q=H7(Z);if(!Z.eat(")"))Z.err("Missing closing paren");return Q}else if(!/\W/.test(Z.next)){let Q=pz(Z,Z.next).map((J)=>{if(Z.inline==null)Z.inline=J.isInline;else if(Z.inline!=J.isInline)Z.err("Mixing inline and block content");return{type:"name",value:J}});return Z.pos++,Q.length==1?Q[0]:{type:"choice",exprs:Q}}else Z.err("Unexpected token '"+Z.next+"'")}function dz(Z){let Q=[[]];return X(z(Z,0),J()),Q;function J(){return Q.push([])-1}function q(V,Y,G){let K={term:G,to:Y};return Q[V].push(K),K}function X(V,Y){V.forEach((G)=>G.to=Y)}function z(V,Y){if(V.type=="choice")return V.exprs.reduce((G,K)=>G.concat(z(K,Y)),[]);else if(V.type=="seq")for(let G=0;;G++){let K=z(V.exprs[G],Y);if(G==V.exprs.length-1)return K;X(K,Y=J())}else if(V.type=="star"){let G=J();return q(Y,G),X(z(V.expr,G),G),[q(G)]}else if(V.type=="plus"){let G=J();return X(z(V.expr,Y),G),X(z(V.expr,G),G),[q(G)]}else if(V.type=="opt")return[q(Y)].concat(z(V.expr,Y));else if(V.type=="range"){let G=Y;for(let K=0;K{Z[V].forEach(({term:Y,to:G})=>{if(!Y)return;let K;for(let W=0;W{if(!K)X.push([Y,K=[]]);if(K.indexOf(W)==-1)K.push(W)})})});let z=Q[q.join(",")]=new J1(q.indexOf(Z.length-1)>-1);for(let V=0;V-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let Z in this.attrs)if(this.attrs[Z].isRequired)return!0;return!1}compatibleContent(Z){return this==Z||this.contentMatch.compatible(Z.contentMatch)}computeAttrs(Z){if(!Z&&this.defaultAttrs)return this.defaultAttrs;else return L7(this.attrs,Z)}create(Z=null,Q,J){if(this.isText)throw Error("NodeType.create can't construct text nodes");return new d0(this,this.computeAttrs(Z),D.from(Q),e.setFrom(J))}createChecked(Z=null,Q,J){return Q=D.from(Q),this.checkContent(Q),new d0(this,this.computeAttrs(Z),Q,e.setFrom(J))}createAndFill(Z=null,Q,J){if(Z=this.computeAttrs(Z),Q=D.from(Q),Q.size){let z=this.contentMatch.fillBefore(Q);if(!z)return null;Q=z.append(Q)}let q=this.contentMatch.matchFragment(Q),X=q&&q.fillBefore(D.empty,!0);if(!X)return null;return new d0(this,Z,Q.append(X),e.setFrom(J))}validContent(Z){let Q=this.contentMatch.matchFragment(Z);if(!Q||!Q.validEnd)return!1;for(let J=0;J-1}allowsMarks(Z){if(this.markSet==null)return!0;for(let Q=0;QJ[X]=new i8(X,Q,z));let q=Q.spec.topNode||"doc";if(!J[q])throw RangeError("Schema is missing its top node type ('"+q+"')");if(!J.text)throw RangeError("Every schema needs a 'text' type");for(let X in J.text.attrs)throw RangeError("The text node type should not have attributes");return J}}function sz(Z,Q,J){let q=J.split("|");return(X)=>{let z=X===null?"null":typeof X;if(q.indexOf(z)<0)throw RangeError(`Expected value of type ${q} for attribute ${Q} on type ${Z}, got ${z}`)}}class j7{constructor(Z,Q,J){this.hasDefault=Object.prototype.hasOwnProperty.call(J,"default"),this.default=J.default,this.validate=typeof J.validate=="string"?sz(Z,Q,J.validate):J.validate}get isRequired(){return!this.hasDefault}}class V8{constructor(Z,Q,J,q){this.name=Z,this.rank=Q,this.schema=J,this.spec=q,this.attrs=_7(Z,q.attrs),this.excluded=null;let X=B7(this.attrs);this.instance=X?new e(this,X):null}create(Z=null){if(!Z&&this.instance)return this.instance;return new e(this,L7(this.attrs,Z))}static compile(Z,Q){let J=Object.create(null),q=0;return Z.forEach((X,z)=>J[X]=new V8(X,q++,Q,z)),J}removeFromSet(Z){for(var Q=0;Q-1}}class n8{constructor(Z){this.linebreakReplacement=null,this.cached=Object.create(null);let Q=this.spec={};for(let q in Z)Q[q]=Z[q];Q.nodes=N5.from(Z.nodes),Q.marks=N5.from(Z.marks||{}),this.nodes=i8.compile(this.spec.nodes,this),this.marks=V8.compile(this.spec.marks,this);let J=Object.create(null);for(let q in this.nodes){if(q in this.marks)throw RangeError(q+" can not be both a node and a mark");let X=this.nodes[q],z=X.spec.content||"",V=X.spec.marks;if(X.contentMatch=J[z]||(J[z]=J1.parse(z,this.nodes)),X.inlineContent=X.contentMatch.inlineContent,X.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError("Multiple linebreak nodes defined");if(!X.isInline||!X.isLeaf)throw RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=X}X.markSet=V=="_"?null:V?r6(this,V.split(" ")):V==""||!X.inlineContent?[]:null}for(let q in this.marks){let X=this.marks[q],z=X.spec.excludes;X.excluded=z==null?[X]:z==""?[]:r6(this,z.split(" "))}this.nodeFromJSON=(q)=>d0.fromJSON(this,q),this.markFromJSON=(q)=>e.fromJSON(this,q),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(Z,Q=null,J,q){if(typeof Z=="string")Z=this.nodeType(Z);else if(!(Z instanceof i8))throw RangeError("Invalid node type: "+Z);else if(Z.schema!=this)throw RangeError("Node type from different schema used ("+Z.name+")");return Z.createChecked(Q,J,q)}text(Z,Q){let J=this.nodes.text;return new d8(J,J.defaultAttrs,Z,e.setFrom(Q))}mark(Z,Q){if(typeof Z=="string")Z=this.marks[Z];return Z.create(Q)}nodeType(Z){let Q=this.nodes[Z];if(!Q)throw RangeError("Unknown node type: "+Z);return Q}}function r6(Z,Q){let J=[];for(let q=0;q-1)J.push(V=G)}if(!V)throw SyntaxError("Unknown mark type: '"+Q[q]+"'")}return J}function az(Z){return Z.tag!=null}function rz(Z){return Z.style!=null}class z9{constructor(Z,Q){this.schema=Z,this.rules=Q,this.tags=[],this.styles=[];let J=this.matchedStyles=[];Q.forEach((q)=>{if(az(q))this.tags.push(q);else if(rz(q)){let X=/[^=]*/.exec(q.style)[0];if(J.indexOf(X)<0)J.push(X);this.styles.push(q)}}),this.normalizeLists=!this.tags.some((q)=>{if(!/^(ul|ol)\b/.test(q.tag)||!q.node)return!1;let X=Z.nodes[q.node];return X.contentMatch.matchType(X)})}parse(Z,Q={}){let J=new x5(this,Q,!1);return J.addAll(Z,e.none,Q.from,Q.to),J.finish()}parseSlice(Z,Q={}){let J=new x5(this,Q,!0);return J.addAll(Z,e.none,Q.from,Q.to),R.maxOpen(J.finish())}matchTag(Z,Q,J){for(let q=J?this.tags.indexOf(J)+1:0;qZ.length&&(V.charCodeAt(Z.length)!=61||V.slice(Z.length+1)!=Q))continue;if(z.getAttrs){let Y=z.getAttrs(Q);if(Y===!1)continue;z.attrs=Y||void 0}return z}}static schemaRules(Z){let Q=[];function J(q){let X=q.priority==null?50:q.priority,z=0;for(;z{if(J(z=t6(z)),!(z.mark||z.ignore||z.clearMark))z.mark=q})}for(let q in Z.nodes){let X=Z.nodes[q].spec.parseDOM;if(X)X.forEach((z)=>{if(J(z=t6(z)),!(z.node||z.ignore||z.mark))z.node=q})}return Q}static fromSchema(Z){return Z.cached.domParser||(Z.cached.domParser=new z9(Z,z9.schemaRules(Z)))}}var I7={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},oz={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},D7={ol:!0,ul:!0},z8=1,T5=2,q8=4;function o6(Z,Q,J){if(Q!=null)return(Q?z8:0)|(Q==="full"?T5:0);return Z&&Z.whitespace=="pre"?z8|T5:J&~q8}class Q8{constructor(Z,Q,J,q,X,z){this.type=Z,this.attrs=Q,this.marks=J,this.solid=q,this.options=z,this.content=[],this.activeMarks=e.none,this.match=X||(z&q8?null:Z.contentMatch)}findWrapping(Z){if(!this.match){if(!this.type)return[];let Q=this.type.contentMatch.fillBefore(D.from(Z));if(Q)this.match=this.type.contentMatch.matchFragment(Q);else{let J=this.type.contentMatch,q;if(q=J.findWrapping(Z.type))return this.match=J,q;else return null}}return this.match.findWrapping(Z.type)}finish(Z){if(!(this.options&z8)){let J=this.content[this.content.length-1],q;if(J&&J.isText&&(q=/[ \t\r\n\u000c]+$/.exec(J.text))){let X=J;if(J.text.length==q[0].length)this.content.pop();else this.content[this.content.length-1]=X.withText(X.text.slice(0,X.text.length-q[0].length))}}let Q=D.from(this.content);if(!Z&&this.match)Q=Q.append(this.match.fillBefore(D.empty,!0));return this.type?this.type.create(this.attrs,Q,this.marks):Q}inlineContext(Z){if(this.type)return this.type.inlineContent;if(this.content.length)return this.content[0].isInline;return Z.parentNode&&!I7.hasOwnProperty(Z.parentNode.nodeName.toLowerCase())}}class x5{constructor(Z,Q,J){this.parser=Z,this.options=Q,this.isOpen=J,this.open=0,this.localPreserveWS=!1;let q=Q.topNode,X,z=o6(null,Q.preserveWhitespace,0)|(J?q8:0);if(q)X=new Q8(q.type,q.attrs,e.none,!0,Q.topMatch||q.type.contentMatch,z);else if(J)X=new Q8(null,null,e.none,!0,null,z);else X=new Q8(Z.schema.topNodeType,null,e.none,!0,null,z);this.nodes=[X],this.find=Q.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(Z,Q){if(Z.nodeType==3)this.addTextNode(Z,Q);else if(Z.nodeType==1)this.addElement(Z,Q)}addTextNode(Z,Q){let J=Z.nodeValue,q=this.top,X=q.options&T5?"full":this.localPreserveWS||(q.options&z8)>0,{schema:z}=this.parser;if(X==="full"||q.inlineContext(Z)||/[^ \t\r\n\u000c]/.test(J)){if(!X){if(J=J.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(J)&&this.open==this.nodes.length-1){let V=q.content[q.content.length-1],Y=Z.previousSibling;if(!V||Y&&Y.nodeName=="BR"||V.isText&&/[ \t\r\n\u000c]$/.test(V.text))J=J.slice(1)}}else if(X==="full")J=J.replace(/\r\n?/g,` +`);else if(z.linebreakReplacement&&/[\r\n]/.test(J)&&this.top.findWrapping(z.linebreakReplacement.create())){let V=J.split(/\r?\n|\r/);for(let Y=0;Y!Y.clearMark(G));else Q=Q.concat(this.parser.schema.marks[Y.mark].create(Y.attrs));if(Y.consuming===!1)V=Y;else break}}return Q}addElementByRule(Z,Q,J,q){let X,z;if(Q.node){if(z=this.parser.schema.nodes[Q.node],!z.isLeaf){let Y=this.enter(z,Q.attrs||null,J,Q.preserveWhitespace);if(Y)X=!0,J=Y}else if(!this.insertNode(z.create(Q.attrs),J,Z.nodeName=="BR"))this.leafFallback(Z,J)}else{let Y=this.parser.schema.marks[Q.mark];J=J.concat(Y.create(Q.attrs))}let V=this.top;if(z&&z.isLeaf)this.findInside(Z);else if(q)this.addElement(Z,J,q);else if(Q.getContent)this.findInside(Z),Q.getContent(Z,this.parser.schema).forEach((Y)=>this.insertNode(Y,J,!1));else{let Y=Z;if(typeof Q.contentElement=="string")Y=Z.querySelector(Q.contentElement);else if(typeof Q.contentElement=="function")Y=Q.contentElement(Z);else if(Q.contentElement)Y=Q.contentElement;this.findAround(Z,Y,!0),this.addAll(Y,J),this.findAround(Z,Y,!1)}if(X&&this.sync(V))this.open--}addAll(Z,Q,J,q){let X=J||0;for(let z=J?Z.childNodes[J]:Z.firstChild,V=q==null?null:Z.childNodes[q];z!=V;z=z.nextSibling,++X)this.findAtPoint(Z,X),this.addDOM(z,Q);this.findAtPoint(Z,X)}findPlace(Z,Q,J){let q,X;for(let z=this.open,V=0;z>=0;z--){let Y=this.nodes[z],G=Y.findWrapping(Z);if(G&&(!q||q.length>G.length+V)){if(q=G,X=Y,!G.length)break}if(Y.solid){if(J)break;V+=2}}if(!q)return null;this.sync(X);for(let z=0;z{if(z.type?z.type.allowsMarkType(G.type):e6(G.type,Z))return Y=G.addToSet(Y),!1;return!0}),this.nodes.push(new Q8(Z,Q,Y,q,null,V)),this.open++,J}closeExtra(Z=!1){let Q=this.nodes.length-1;if(Q>this.open){for(;Q>this.open;Q--)this.nodes[Q-1].content.push(this.nodes[Q].finish(Z));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(Z){for(let Q=this.open;Q>=0;Q--)if(this.nodes[Q]==Z)return this.open=Q,!0;else if(this.localPreserveWS)this.nodes[Q].options|=z8;return!1}get currentPos(){this.closeExtra();let Z=0;for(let Q=this.open;Q>=0;Q--){let J=this.nodes[Q].content;for(let q=J.length-1;q>=0;q--)Z+=J[q].nodeSize;if(Q)Z++}return Z}findAtPoint(Z,Q){if(this.find){for(let J=0;J-1)return Z.split(/\s*\|\s*/).some(this.matchesContext,this);let Q=Z.split("/"),J=this.options.context,q=!this.isOpen&&(!J||J.parent.type==this.nodes[0].type),X=-(J?J.depth+1:0)+(q?0:1),z=(V,Y)=>{for(;V>=0;V--){let G=Q[V];if(G==""){if(V==Q.length-1||V==0)continue;for(;Y>=X;Y--)if(z(V-1,Y))return!0;return!1}else{let K=Y>0||Y==0&&q?this.nodes[Y].type:J&&Y>=X?J.node(Y-X).type:null;if(!K||K.name!=G&&!K.isInGroup(G))return!1;Y--}}return!0};return z(Q.length-1,this.open)}textblockFromContext(){let Z=this.options.context;if(Z)for(let Q=Z.depth;Q>=0;Q--){let J=Z.node(Q).contentMatchAt(Z.indexAfter(Q)).defaultType;if(J&&J.isTextblock&&J.defaultAttrs)return J}for(let Q in this.parser.schema.nodes){let J=this.parser.schema.nodes[Q];if(J.isTextblock&&J.defaultAttrs)return J}}}function tz(Z){for(let Q=Z.firstChild,J=null;Q;Q=Q.nextSibling){let q=Q.nodeType==1?Q.nodeName.toLowerCase():null;if(q&&D7.hasOwnProperty(q)&&J)J.appendChild(Q),Q=J;else if(q=="li")J=Q;else if(q)J=null}}function ez(Z,Q){return(Z.matches||Z.msMatchesSelector||Z.webkitMatchesSelector||Z.mozMatchesSelector).call(Z,Q)}function t6(Z){let Q={};for(let J in Z)Q[J]=Z[J];return Q}function e6(Z,Q){let J=Q.schema.nodes;for(let q in J){let X=J[q];if(!X.allowsMarkType(Z))continue;let z=[],V=(Y)=>{z.push(Y);for(let G=0;G{if(X.length||z.marks.length){let V=0,Y=0;while(V=0;q--){let X=this.serializeMark(Z.marks[q],Z.isInline,Q);if(X)(X.contentDOM||X.dom).appendChild(J),J=X.dom}return J}serializeMark(Z,Q,J={}){let q=this.marks[Z.type.name];return q&&c8(b5(J),q(Z,Q),null,Z.attrs)}static renderSpec(Z,Q,J=null,q){return c8(Z,Q,J,q)}static fromSchema(Z){return Z.cached.domSerializer||(Z.cached.domSerializer=new W9(this.nodesFromSchema(Z),this.marksFromSchema(Z)))}static nodesFromSchema(Z){let Q=Z7(Z.nodes);if(!Q.text)Q.text=(J)=>J.text;return Q}static marksFromSchema(Z){return Z7(Z.marks)}}function Z7(Z){let Q={};for(let J in Z){let q=Z[J].spec.toDOM;if(q)Q[J]=q}return Q}function b5(Z){return Z.document||window.document}var Q7=new WeakMap;function Z2(Z){let Q=Q7.get(Z);if(Q===void 0)Q7.set(Z,Q=Q2(Z));return Q}function Q2(Z){let Q=null;function J(q){if(q&&typeof q=="object")if(Array.isArray(q))if(typeof q[0]=="string"){if(!Q)Q=[];Q.push(q)}else for(let X=0;X-1)throw RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let V=X.indexOf(" ");if(V>0)J=X.slice(0,V),X=X.slice(V+1);let Y,G=J?Z.createElementNS(J,X):Z.createElement(X),K=Q[1],W=1;if(K&&typeof K=="object"&&K.nodeType==null&&!Array.isArray(K)){W=2;for(let U in K)if(K[U]!=null){let H=U.indexOf(" ");if(H>0)G.setAttributeNS(U.slice(0,H),U.slice(H+1),K[U]);else if(U=="style"&&G.style)G.style.cssText=K[U];else G.setAttribute(U,K[U])}}for(let U=W;UW)throw RangeError("Content hole must be the only child of its parent node");return{dom:G,contentDOM:G}}else{let{dom:F,contentDOM:B}=c8(Z,H,J,q);if(G.appendChild(F),B){if(Y)throw RangeError("Multiple content holes");Y=B}}}return{dom:G,contentDOM:Y}}var O7=65535,C7=Math.pow(2,16);function J2(Z,Q){return Z+Q*C7}function M7(Z){return Z&O7}function q2(Z){return(Z-(Z&O7))/C7}var k7=1,y7=2,s8=4,$7=8;class a8{constructor(Z,Q,J){this.pos=Z,this.delInfo=Q,this.recover=J}get deleted(){return(this.delInfo&$7)>0}get deletedBefore(){return(this.delInfo&(k7|s8))>0}get deletedAfter(){return(this.delInfo&(y7|s8))>0}get deletedAcross(){return(this.delInfo&s8)>0}}class i0{constructor(Z,Q=!1){if(this.ranges=Z,this.inverted=Q,!Z.length&&i0.empty)return i0.empty}recover(Z){let Q=0,J=M7(Z);if(!this.inverted)for(let q=0;qZ)break;let G=this.ranges[V+X],K=this.ranges[V+z],W=Y+G;if(Z<=W){let U=!G?Q:Z==Y?-1:Z==W?1:Q,H=Y+q+(U<0?0:K);if(J)return H;let F=Z==(Q<0?Y:W)?null:J2(V/3,Z-Y),B=Z==Y?y7:Z==W?k7:s8;if(Q<0?Z!=Y:Z!=W)B|=$7;return new a8(H,B,F)}q+=K-G}return J?Z+q:new a8(Z+q,0,null)}touches(Z,Q){let J=0,q=M7(Q),X=this.inverted?2:1,z=this.inverted?1:2;for(let V=0;VZ)break;let G=this.ranges[V+X],K=Y+G;if(Z<=K&&V==q*3)return!0;J+=this.ranges[V+z]-G}return!1}forEach(Z){let Q=this.inverted?2:1,J=this.inverted?1:2;for(let q=0,X=0;q=0;Q--){let q=Z.getMirror(Q);this.appendMap(Z._maps[Q].invert(),q!=null&&q>Q?J-q-1:void 0)}}invert(){let Z=new N1;return Z.appendMappingInverted(this),Z}map(Z,Q=1){if(this.mirror)return this._map(Z,Q,!0);for(let J=this.from;JX&&Y{if(!z.isAtom||!V.type.allowsMarkType(this.mark.type))return z;return z.mark(this.mark.addToSet(z.marks))},q),Q.openStart,Q.openEnd);return O0.fromReplace(Z,this.from,this.to,X)}invert(){return new U9(this.from,this.to,this.mark)}map(Z){let Q=Z.mapResult(this.from,1),J=Z.mapResult(this.to,-1);if(Q.deleted&&J.deleted||Q.pos>=J.pos)return null;return new S9(Q.pos,J.pos,this.mark)}merge(Z){if(Z instanceof S9&&Z.mark.eq(this.mark)&&this.from<=Z.to&&this.to>=Z.from)return new S9(Math.min(this.from,Z.from),Math.max(this.to,Z.to),this.mark);return null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(Z,Q){if(typeof Q.from!="number"||typeof Q.to!="number")throw RangeError("Invalid input for AddMarkStep.fromJSON");return new S9(Q.from,Q.to,Z.markFromJSON(Q.mark))}}$0.jsonID("addMark",S9);class U9 extends $0{constructor(Z,Q,J){super();this.from=Z,this.to=Q,this.mark=J}apply(Z){let Q=Z.slice(this.from,this.to),J=new R(u5(Q.content,(q)=>{return q.mark(this.mark.removeFromSet(q.marks))},Z),Q.openStart,Q.openEnd);return O0.fromReplace(Z,this.from,this.to,J)}invert(){return new S9(this.from,this.to,this.mark)}map(Z){let Q=Z.mapResult(this.from,1),J=Z.mapResult(this.to,-1);if(Q.deleted&&J.deleted||Q.pos>=J.pos)return null;return new U9(Q.pos,J.pos,this.mark)}merge(Z){if(Z instanceof U9&&Z.mark.eq(this.mark)&&this.from<=Z.to&&this.to>=Z.from)return new U9(Math.min(this.from,Z.from),Math.max(this.to,Z.to),this.mark);return null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(Z,Q){if(typeof Q.from!="number"||typeof Q.to!="number")throw RangeError("Invalid input for RemoveMarkStep.fromJSON");return new U9(Q.from,Q.to,Z.markFromJSON(Q.mark))}}$0.jsonID("removeMark",U9);class v9 extends $0{constructor(Z,Q){super();this.pos=Z,this.mark=Q}apply(Z){let Q=Z.nodeAt(this.pos);if(!Q)return O0.fail("No node at mark step's position");let J=Q.type.create(Q.attrs,null,this.mark.addToSet(Q.marks));return O0.fromReplace(Z,this.pos,this.pos+1,new R(D.from(J),0,Q.isLeaf?0:1))}invert(Z){let Q=Z.nodeAt(this.pos);if(Q){let J=this.mark.addToSet(Q.marks);if(J.length==Q.marks.length){for(let q=0;qJ.pos)return null;return new F0(Q.pos,J.pos,q,X,this.slice,this.insert,this.structure)}toJSON(){let Z={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};if(this.slice.size)Z.slice=this.slice.toJSON();if(this.structure)Z.structure=!0;return Z}static fromJSON(Z,Q){if(typeof Q.from!="number"||typeof Q.to!="number"||typeof Q.gapFrom!="number"||typeof Q.gapTo!="number"||typeof Q.insert!="number")throw RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new F0(Q.from,Q.to,Q.gapFrom,Q.gapTo,R.fromJSON(Z,Q.slice),Q.insert,!!Q.structure)}}$0.jsonID("replaceAround",F0);function f5(Z,Q,J){let q=Z.resolve(Q),X=J-Q,z=q.depth;while(X>0&&z>0&&q.indexAfter(z)==q.node(z).childCount)z--,X--;if(X>0){let V=q.node(z).maybeChild(q.indexAfter(z));while(X>0){if(!V||V.isLeaf)return!0;V=V.firstChild,X--}}return!1}function X2(Z,Q,J,q){let X=[],z=[],V,Y;Z.doc.nodesBetween(Q,J,(G,K,W)=>{if(!G.isInline)return;let U=G.marks;if(!q.isInSet(U)&&W.type.allowsMarkType(q.type)){let H=Math.max(K,Q),F=Math.min(K+G.nodeSize,J),B=q.addToSet(U);for(let L=0;LZ.step(G)),z.forEach((G)=>Z.step(G))}function z2(Z,Q,J,q){let X=[],z=0;Z.doc.nodesBetween(Q,J,(V,Y)=>{if(!V.isInline)return;z++;let G=null;if(q instanceof V8){let K=V.marks,W;while(W=q.isInSet(K))(G||(G=[])).push(W),K=W.removeFromSet(K)}else if(q){if(q.isInSet(V.marks))G=[q]}else G=V.marks;if(G&&G.length){let K=Math.min(Y+V.nodeSize,J);for(let W=0;WZ.step(new U9(V.from,V.to,V.style)))}function g5(Z,Q,J,q=J.contentMatch,X=!0){let z=Z.doc.nodeAt(Q),V=[],Y=Q+1;for(let G=0;G=0;G--)Z.step(V[G])}function V2(Z,Q,J){return(Q==0||Z.canReplace(Q,Z.childCount))&&(J==Z.childCount||Z.canReplace(0,J))}function A9(Z){let J=Z.parent.content.cutByIndex(Z.startIndex,Z.endIndex);for(let q=Z.depth,X=0,z=0;;--q){let V=Z.$from.node(q),Y=Z.$from.index(q)+X,G=Z.$to.indexAfter(q)-z;if(qJ;B--)if(L||q.index(B)>0)L=!0,W=D.from(q.node(B).copy(W)),U++;else G--;let H=D.empty,F=0;for(let B=z,L=!1;B>J;B--)if(L||X.after(B+1)=0;V--){if(q.size){let Y=J[V].type.contentMatch.matchFragment(q);if(!Y||!Y.validEnd)throw RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}q=D.from(J[V].type.create(J[V].attrs,q))}let{start:X,end:z}=Q;Z.step(new F0(X,z,X,z,new R(q,0,0),J.length,!0))}function U2(Z,Q,J,q,X){if(!q.isTextblock)throw RangeError("Type given to setBlockType should be a textblock");let z=Z.steps.length;Z.doc.nodesBetween(Q,J,(V,Y)=>{let G=typeof X=="function"?X(V):X;if(V.isTextblock&&!V.hasMarkup(q,G)&&H2(Z.doc,Z.mapping.slice(z).map(Y),q)){let K=null;if(q.schema.linebreakReplacement){let F=q.whitespace=="pre",B=!!q.contentMatch.matchType(q.schema.linebreakReplacement);if(F&&!B)K=!1;else if(!F&&B)K=!0}if(K===!1)R7(Z,V,Y,z);g5(Z,Z.mapping.slice(z).map(Y,1),q,void 0,K===null);let W=Z.mapping.slice(z),U=W.map(Y,1),H=W.map(Y+V.nodeSize,1);if(Z.step(new F0(U,H,U+1,H-1,new R(D.from(q.create(G,null,V.marks)),0,0),1,!0)),K===!0)N7(Z,V,Y,z);return!1}})}function N7(Z,Q,J,q){Q.forEach((X,z)=>{if(X.isText){let V,Y=/\r?\n|\r/g;while(V=Y.exec(X.text)){let G=Z.mapping.slice(q).map(J+1+z+V.index);Z.replaceWith(G,G+1,Q.type.schema.linebreakReplacement.create())}}})}function R7(Z,Q,J,q){Q.forEach((X,z)=>{if(X.type==X.type.schema.linebreakReplacement){let V=Z.mapping.slice(q).map(J+1+z);Z.replaceWith(V,V+1,Q.type.schema.text(` +`))}})}function H2(Z,Q,J){let q=Z.resolve(Q),X=q.index();return q.parent.canReplaceWith(X,X+1,J)}function F2(Z,Q,J,q,X){let z=Z.doc.nodeAt(Q);if(!z)throw RangeError("No node at given position");if(!J)J=z.type;let V=J.create(q,null,X||z.marks);if(z.isLeaf)return Z.replaceWith(Q,Q+z.nodeSize,V);if(!J.validContent(z.content))throw RangeError("Invalid content for node type "+J.name);Z.step(new F0(Q,Q+z.nodeSize,Q+1,Q+z.nodeSize-1,new R(D.from(V),0,0),1,!0))}function a0(Z,Q,J=1,q){let X=Z.resolve(Q),z=X.depth-J,V=q&&q[q.length-1]||X.parent;if(z<0||X.parent.type.spec.isolating||!X.parent.canReplace(X.index(),X.parent.childCount)||!V.type.validContent(X.parent.content.cutByIndex(X.index(),X.parent.childCount)))return!1;for(let K=X.depth-1,W=J-2;K>z;K--,W--){let U=X.node(K),H=X.index(K);if(U.type.spec.isolating)return!1;let F=U.content.cutByIndex(H,U.childCount),B=q&&q[W+1];if(B)F=F.replaceChild(0,B.type.create(B.attrs));let L=q&&q[W]||U;if(!U.canReplace(H+1,U.childCount)||!L.type.validContent(F))return!1}let Y=X.indexAfter(z),G=q&&q[0];return X.node(z).canReplaceWith(Y,Y,G?G.type:X.node(z+1).type)}function B2(Z,Q,J=1,q){let X=Z.doc.resolve(Q),z=D.empty,V=D.empty;for(let Y=X.depth,G=X.depth-J,K=J-1;Y>G;Y--,K--){z=D.from(X.node(Y).copy(z));let W=q&&q[K];V=D.from(W?W.type.create(W.attrs,V):X.node(Y).copy(V))}Z.step(new j0(Q,Q,new R(z.append(V),J,J),!0))}function V9(Z,Q){let J=Z.resolve(Q),q=J.index();return b7(J.nodeBefore,J.nodeAfter)&&J.parent.canReplace(q,q+1)}function L2(Z,Q){if(!Q.content.size)Z.type.compatibleContent(Q.type);let J=Z.contentMatchAt(Z.childCount),{linebreakReplacement:q}=Z.type.schema;for(let X=0;X0)z=q.node(X+1),Y++,V=q.node(X).maybeChild(Y);else z=q.node(X).maybeChild(Y-1),V=q.node(X+1);if(z&&!z.isTextblock&&b7(z,V)&&q.node(X).canReplace(Y,Y+1))return Q;if(X==0)break;Q=J<0?q.before(X):q.after(X)}}function P2(Z,Q,J){let q=null,{linebreakReplacement:X}=Z.doc.type.schema,z=Z.doc.resolve(Q-J),V=z.node().type;if(X&&V.inlineContent){let W=V.whitespace=="pre",U=!!V.contentMatch.matchType(X);if(W&&!U)q=!1;else if(!W&&U)q=!0}let Y=Z.steps.length;if(q===!1){let W=Z.doc.resolve(Q+J);R7(Z,W.node(),W.before(),Y)}if(V.inlineContent)g5(Z,Q+J-1,V,z.node().contentMatchAt(z.index()),q==null);let G=Z.mapping.slice(Y),K=G.map(Q-J);if(Z.step(new j0(K,G.map(Q+J,-1),R.empty,!0)),q===!0){let W=Z.doc.resolve(K);N7(Z,W.node(),W.before(),Z.steps.length)}return Z}function _2(Z,Q,J){let q=Z.resolve(Q);if(q.parent.canReplaceWith(q.index(),q.index(),J))return Q;if(q.parentOffset==0)for(let X=q.depth-1;X>=0;X--){let z=q.index(X);if(q.node(X).canReplaceWith(z,z,J))return q.before(X+1);if(z>0)return null}if(q.parentOffset==q.parent.content.size)for(let X=q.depth-1;X>=0;X--){let z=q.indexAfter(X);if(q.node(X).canReplaceWith(z,z,J))return q.after(X+1);if(z=0;V--){let Y=V==q.depth?0:q.pos<=(q.start(V+1)+q.end(V+1))/2?-1:1,G=q.index(V)+(Y>0?1:0),K=q.node(V),W=!1;if(z==1)W=K.canReplace(G,G,X);else{let U=K.contentMatchAt(G).findWrapping(X.firstChild.type);W=U&&K.canReplaceWith(G,G,U[0])}if(W)return Y==0?q.pos:Y<0?q.before(V+1):q.after(V+1)}return null}function W8(Z,Q,J=Q,q=R.empty){if(Q==J&&!q.size)return null;let X=Z.resolve(Q),z=Z.resolve(J);if(E7(X,z,q))return new j0(Q,J,q);return new T7(X,z,q).fit()}function E7(Z,Q,J){return!J.openStart&&!J.openEnd&&Z.start()==Q.start()&&Z.parent.canReplace(Z.index(),Q.index(),J.content)}class T7{constructor(Z,Q,J){this.$from=Z,this.$to=Q,this.unplaced=J,this.frontier=[],this.placed=D.empty;for(let q=0;q<=Z.depth;q++){let X=Z.node(q);this.frontier.push({type:X.type,match:X.contentMatchAt(Z.indexAfter(q))})}for(let q=Z.depth;q>0;q--)this.placed=D.from(Z.node(q).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){while(this.unplaced.size){let G=this.findFittable();if(G)this.placeNodes(G);else this.openMore()||this.dropNode()}let Z=this.mustMoveInline(),Q=this.placed.size-this.depth-this.$from.depth,J=this.$from,q=this.close(Z<0?this.$to:J.doc.resolve(Z));if(!q)return null;let X=this.placed,z=J.depth,V=q.depth;while(z&&V&&X.childCount==1)X=X.firstChild.content,z--,V--;let Y=new R(X,z,V);if(Z>-1)return new F0(J.pos,Z,this.$to.pos,this.$to.end(),Y,Q);if(Y.size||J.pos!=this.$to.pos)return new j0(J.pos,q.pos,Y);return null}findFittable(){let Z=this.unplaced.openStart;for(let Q=this.unplaced.content,J=0,q=this.unplaced.openEnd;J1)q=0;if(X.type.spec.isolating&&q<=J){Z=J;break}Q=X.content}for(let Q=1;Q<=2;Q++)for(let J=Q==1?Z:this.unplaced.openStart;J>=0;J--){let q,X=null;if(J)X=v5(this.unplaced.content,J-1).firstChild,q=X.content;else q=this.unplaced.content;let z=q.firstChild;for(let V=this.depth;V>=0;V--){let{type:Y,match:G}=this.frontier[V],K,W=null;if(Q==1&&(z?G.matchType(z.type)||(W=G.fillBefore(D.from(z),!1)):X&&Y.compatibleContent(X.type)))return{sliceDepth:J,frontierDepth:V,parent:X,inject:W};else if(Q==2&&z&&(K=G.findWrapping(z.type)))return{sliceDepth:J,frontierDepth:V,parent:X,wrap:K};if(X&&G.matchType(X.type))break}}}openMore(){let{content:Z,openStart:Q,openEnd:J}=this.unplaced,q=v5(Z,Q);if(!q.childCount||q.firstChild.isLeaf)return!1;return this.unplaced=new R(Z,Q+1,Math.max(J,q.size+Q>=Z.size-J?Q+1:0)),!0}dropNode(){let{content:Z,openStart:Q,openEnd:J}=this.unplaced,q=v5(Z,Q);if(q.childCount<=1&&Q>0){let X=Z.size-Q<=Q+q.size;this.unplaced=new R(Y8(Z,Q-1,1),Q-1,X?Q-1:J)}else this.unplaced=new R(Y8(Z,Q,1),Q,J)}placeNodes({sliceDepth:Z,frontierDepth:Q,parent:J,inject:q,wrap:X}){while(this.depth>Q)this.closeFrontierNode();if(X)for(let B=0;B1||Y==0||B.content.size)W=L,K.push(x7(B.mark(U.allowedMarks(B.marks)),G==1?Y:0,G==V.childCount?H:-1))}let F=G==V.childCount;if(!F)H=-1;if(this.placed=G8(this.placed,Q,D.from(K)),this.frontier[Q].match=W,F&&H<0&&J&&J.type==this.frontier[this.depth].type&&this.frontier.length>1)this.closeFrontierNode();for(let B=0,L=V;B1&&q==this.$to.end(--J))++q;return q}findCloseLevel(Z){Z:for(let Q=Math.min(this.depth,Z.depth);Q>=0;Q--){let{match:J,type:q}=this.frontier[Q],X=Q=0;V--){let{match:Y,type:G}=this.frontier[V],K=w5(Z,V,G,Y,!0);if(!K||K.childCount)continue Z}return{depth:Q,fit:z,move:X?Z.doc.resolve(Z.after(Q+1)):Z}}}close(Z){let Q=this.findCloseLevel(Z);if(!Q)return null;while(this.depth>Q.depth)this.closeFrontierNode();if(Q.fit.childCount)this.placed=G8(this.placed,Q.depth,Q.fit);Z=Q.move;for(let J=Q.depth+1;J<=Z.depth;J++){let q=Z.node(J),X=q.type.contentMatch.fillBefore(q.content,!0,Z.index(J));this.openFrontierNode(q.type,q.attrs,X)}return Z}openFrontierNode(Z,Q=null,J){let q=this.frontier[this.depth];q.match=q.match.matchType(Z),this.placed=G8(this.placed,this.depth,D.from(Z.create(Q,J))),this.frontier.push({type:Z,match:Z.contentMatch})}closeFrontierNode(){let Q=this.frontier.pop().match.fillBefore(D.empty,!0);if(Q.childCount)this.placed=G8(this.placed,this.frontier.length,Q)}}function Y8(Z,Q,J){if(Q==0)return Z.cutByIndex(J,Z.childCount);return Z.replaceChild(0,Z.firstChild.copy(Y8(Z.firstChild.content,Q-1,J)))}function G8(Z,Q,J){if(Q==0)return Z.append(J);return Z.replaceChild(Z.childCount-1,Z.lastChild.copy(G8(Z.lastChild.content,Q-1,J)))}function v5(Z,Q){for(let J=0;J1)q=q.replaceChild(0,x7(q.firstChild,Q-1,q.childCount==1?J-1:0));if(Q>0){if(q=Z.type.contentMatch.fillBefore(q).append(q),J<=0)q=q.append(Z.type.contentMatch.matchFragment(q).fillBefore(D.empty,!0))}return Z.copy(q)}function w5(Z,Q,J,q,X){let z=Z.node(Q),V=X?Z.indexAfter(Q):Z.index(Q);if(V==z.childCount&&!J.compatibleContent(z.type))return null;let Y=q.fillBefore(z.content,!0,V);return Y&&!j2(J,z.content,V)?Y:null}function j2(Z,Q,J){for(let q=J;q0;H--,F--){let B=X.node(H).type.spec;if(B.defining||B.definingAsContext||B.isolating)break;if(V.indexOf(H)>-1)Y=H;else if(X.before(H)==F)V.splice(1,0,-H)}let G=V.indexOf(Y),K=[],W=q.openStart;for(let H=q.content,F=0;;F++){let B=H.firstChild;if(K.push(B),F==q.openStart)break;H=B.content}for(let H=W-1;H>=0;H--){let F=K[H],B=I2(F.type);if(B&&!F.sameMarkup(X.node(Math.abs(Y)-1)))W=H;else if(B||!F.type.isTextblock)break}for(let H=q.openStart;H>=0;H--){let F=(H+W+1)%(q.openStart+1),B=K[F];if(!B)continue;for(let L=0;L=0;H--){if(Z.replace(Q,J,q),Z.steps.length>U)break;let F=V[H];if(F<0)continue;Q=X.before(F),J=z.after(F)}}function S7(Z,Q,J,q,X){if(Qq){let z=X.contentMatchAt(0),V=z.fillBefore(Z).append(Z);Z=V.append(z.matchFragment(V).fillBefore(D.empty,!0))}return Z}function M2(Z,Q,J,q){if(!q.isInline&&Q==J&&Z.doc.resolve(Q).parent.content.size){let X=_2(Z.doc,Q,q.type);if(X!=null)Q=J=X}Z.replaceRange(Q,J,new R(D.from(q),0,0))}function A2(Z,Q,J){let q=Z.doc.resolve(Q),X=Z.doc.resolve(J),z=v7(q,X);for(let V=0;V0&&(G||q.node(Y-1).canReplace(q.index(Y-1),X.indexAfter(Y-1))))return Z.delete(q.before(Y),X.after(Y))}for(let V=1;V<=q.depth&&V<=X.depth;V++)if(Q-q.start(V)==q.depth-V&&J>q.end(V)&&X.end(V)-J!=X.depth-V&&q.start(V-1)==X.start(V-1)&&q.node(V-1).canReplace(q.index(V-1),X.index(V-1)))return Z.delete(q.before(V),J);Z.delete(Q,J)}function v7(Z,Q){let J=[],q=Math.min(Z.depth,Q.depth);for(let X=q;X>=0;X--){let z=Z.start(X);if(zQ.pos+(Q.depth-X)||Z.node(X).type.spec.isolating||Q.node(X).type.spec.isolating)break;if(z==Q.start(X)||X==Z.depth&&X==Q.depth&&Z.parent.inlineContent&&Q.parent.inlineContent&&X&&Q.start(X-1)==z-1)J.push(X)}return J}class $1 extends $0{constructor(Z,Q,J){super();this.pos=Z,this.attr=Q,this.value=J}apply(Z){let Q=Z.nodeAt(this.pos);if(!Q)return O0.fail("No node at attribute step's position");let J=Object.create(null);for(let X in Q.attrs)J[X]=Q.attrs[X];J[this.attr]=this.value;let q=Q.type.create(J,null,Q.marks);return O0.fromReplace(Z,this.pos,this.pos+1,new R(D.from(q),0,Q.isLeaf?0:1))}getMap(){return i0.empty}invert(Z){return new $1(this.pos,this.attr,Z.nodeAt(this.pos).attrs[this.attr])}map(Z){let Q=Z.mapResult(this.pos,1);return Q.deletedAfter?null:new $1(Q.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(Z,Q){if(typeof Q.pos!="number"||typeof Q.attr!="string")throw RangeError("Invalid input for AttrStep.fromJSON");return new $1(Q.pos,Q.attr,Q.value)}}$0.jsonID("attr",$1);class K8 extends $0{constructor(Z,Q){super();this.attr=Z,this.value=Q}apply(Z){let Q=Object.create(null);for(let q in Z.attrs)Q[q]=Z.attrs[q];Q[this.attr]=this.value;let J=Z.type.create(Q,Z.content,Z.marks);return O0.ok(J)}getMap(){return i0.empty}invert(Z){return new K8(this.attr,Z.attrs[this.attr])}map(Z){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(Z,Q){if(typeof Q.attr!="string")throw RangeError("Invalid input for DocAttrStep.fromJSON");return new K8(Q.attr,Q.value)}}$0.jsonID("docAttr",K8);var R1=class extends Error{};R1=function Z(Q){let J=Error.call(this,Q);return J.__proto__=Z.prototype,J};R1.prototype=Object.create(Error.prototype);R1.prototype.constructor=R1;R1.prototype.name="TransformError";class X1{constructor(Z){this.doc=Z,this.steps=[],this.docs=[],this.mapping=new N1}get before(){return this.docs.length?this.docs[0]:this.doc}step(Z){let Q=this.maybeStep(Z);if(Q.failed)throw new R1(Q.failed);return this}maybeStep(Z){let Q=Z.apply(this.doc);if(!Q.failed)this.addStep(Z,Q.doc);return Q}get docChanged(){return this.steps.length>0}changedRange(){let Z=1e9,Q=-1e9;for(let J=0;J{Z=Math.min(Z,V),Q=Math.max(Q,Y)})}return Z==1e9?null:{from:Z,to:Q}}addStep(Z,Q){this.docs.push(this.doc),this.steps.push(Z),this.mapping.appendMap(Z.getMap()),this.doc=Q}replace(Z,Q=Z,J=R.empty){let q=W8(this.doc,Z,Q,J);if(q)this.step(q);return this}replaceWith(Z,Q,J){return this.replace(Z,Q,new R(D.from(J),0,0))}delete(Z,Q){return this.replace(Z,Q,R.empty)}insert(Z,Q){return this.replaceWith(Z,Z,Q)}replaceRange(Z,Q,J){return D2(this,Z,Q,J),this}replaceRangeWith(Z,Q,J){return M2(this,Z,Q,J),this}deleteRange(Z,Q){return A2(this,Z,Q),this}lift(Z,Q){return Y2(this,Z,Q),this}join(Z,Q=1){return P2(this,Z,Q),this}wrap(Z,Q){return W2(this,Z,Q),this}setBlockType(Z,Q=Z,J,q=null){return U2(this,Z,Q,J,q),this}setNodeMarkup(Z,Q,J=null,q){return F2(this,Z,Q,J,q),this}setNodeAttribute(Z,Q,J){return this.step(new $1(Z,Q,J)),this}setDocAttribute(Z,Q){return this.step(new K8(Z,Q)),this}addNodeMark(Z,Q){return this.step(new v9(Z,Q)),this}removeNodeMark(Z,Q){let J=this.doc.nodeAt(Z);if(!J)throw RangeError("No node at position "+Z);if(Q instanceof e){if(Q.isInSet(J.marks))this.step(new q1(Z,Q))}else{let q=J.marks,X,z=[];while(X=Q.isInSet(q))z.push(new q1(Z,X)),q=X.removeFromSet(q);for(let V=z.length-1;V>=0;V--)this.step(z[V])}return this}split(Z,Q=1,J){return B2(this,Z,Q,J),this}addMark(Z,Q,J){return X2(this,Z,Q,J),this}removeMark(Z,Q,J){return z2(this,Z,Q,J),this}clearIncompatible(Z,Q,J){return g5(this,Z,Q,J),this}}var h5=Object.create(null);class h{constructor(Z,Q,J){this.$anchor=Z,this.$head=Q,this.ranges=J||[new U8(Z.min(Q),Z.max(Q))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let Z=this.ranges;for(let Q=0;Q=0;X--){let z=Q<0?T1(Z.node(0),Z.node(X),Z.before(X+1),Z.index(X),Q,J):T1(Z.node(0),Z.node(X),Z.after(X+1),Z.index(X)+1,Q,J);if(z)return z}return null}static near(Z,Q=1){return this.findFrom(Z,Q)||this.findFrom(Z,-Q)||new N0(Z.node(0))}static atStart(Z){return T1(Z,Z,0,0,1)||new N0(Z)}static atEnd(Z){return T1(Z,Z,Z.content.size,Z.childCount,-1)||new N0(Z)}static fromJSON(Z,Q){if(!Q||!Q.type)throw RangeError("Invalid input for Selection.fromJSON");let J=h5[Q.type];if(!J)throw RangeError(`No selection type ${Q.type} defined`);return J.fromJSON(Z,Q)}static jsonID(Z,Q){if(Z in h5)throw RangeError("Duplicate use of selection JSON ID "+Z);return h5[Z]=Q,Q.prototype.jsonID=Z,Q}getBookmark(){return f.between(this.$anchor,this.$head).getBookmark()}}h.prototype.visible=!0;class U8{constructor(Z,Q){this.$from=Z,this.$to=Q}}var w7=!1;function f7(Z){if(!w7&&!Z.parent.inlineContent)w7=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+Z.parent.type.name+")")}class f extends h{constructor(Z,Q=Z){f7(Z),f7(Q);super(Z,Q)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(Z,Q){let J=Z.resolve(Q.map(this.head));if(!J.parent.inlineContent)return h.near(J);let q=Z.resolve(Q.map(this.anchor));return new f(q.parent.inlineContent?q:J,J)}replace(Z,Q=R.empty){if(super.replace(Z,Q),Q==R.empty){let J=this.$from.marksAcross(this.$to);if(J)Z.ensureMarks(J)}}eq(Z){return Z instanceof f&&Z.anchor==this.anchor&&Z.head==this.head}getBookmark(){return new e8(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(Z,Q){if(typeof Q.anchor!="number"||typeof Q.head!="number")throw RangeError("Invalid input for TextSelection.fromJSON");return new f(Z.resolve(Q.anchor),Z.resolve(Q.head))}static create(Z,Q,J=Q){let q=Z.resolve(Q);return new this(q,J==Q?q:Z.resolve(J))}static between(Z,Q,J){let q=Z.pos-Q.pos;if(!J||q)J=q>=0?1:-1;if(!Q.parent.inlineContent){let X=h.findFrom(Q,J,!0)||h.findFrom(Q,-J,!0);if(X)Q=X.$head;else return h.near(Q,J)}if(!Z.parent.inlineContent){if(q==0)Z=Q;else if(Z=(h.findFrom(Z,-J,!0)||h.findFrom(Z,J,!0)).$anchor,Z.pos0?0:1);X>0?V=0;V+=X){let Y=Q.child(V);if(!Y.isAtom){let G=T1(Z,Y,J+X,X<0?Y.childCount:0,X,z);if(G)return G}else if(!z&&u.isSelectable(Y))return u.create(Z,J-(X<0?Y.nodeSize:0));J+=Y.nodeSize*X}return null}function u7(Z,Q,J){let q=Z.steps.length-1;if(q{if(V==null)V=W}),Z.setSelection(h.near(Z.doc.resolve(V),J))}var g7=1,o8=2,h7=4;class c7 extends X1{constructor(Z){super(Z.doc);this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=Z.selection,this.storedMarks=Z.storedMarks}get selection(){if(this.curSelectionFor0}setStoredMarks(Z){return this.storedMarks=Z,this.updated|=o8,this}ensureMarks(Z){if(!e.sameSet(this.storedMarks||this.selection.$from.marks(),Z))this.setStoredMarks(Z);return this}addStoredMark(Z){return this.ensureMarks(Z.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(Z){return this.ensureMarks(Z.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&o8)>0}addStep(Z,Q){super.addStep(Z,Q),this.updated=this.updated&~o8,this.storedMarks=null}setTime(Z){return this.time=Z,this}replaceSelection(Z){return this.selection.replace(this,Z),this}replaceSelectionWith(Z,Q=!0){let J=this.selection;if(Q)Z=Z.mark(this.storedMarks||(J.empty?J.$from.marks():J.$from.marksAcross(J.$to)||e.none));return J.replaceWith(this,Z),this}deleteSelection(){return this.selection.replace(this),this}insertText(Z,Q,J){let q=this.doc.type.schema;if(Q==null){if(!Z)return this.deleteSelection();return this.replaceSelectionWith(q.text(Z),!0)}else{if(J==null)J=Q;if(!Z)return this.deleteRange(Q,J);let X=this.storedMarks;if(!X){let z=this.doc.resolve(Q);X=J==Q?z.marks():z.marksAcross(this.doc.resolve(J))}if(this.replaceRangeWith(Q,J,q.text(Z,X)),!this.selection.empty&&this.selection.to==Q+Z.length)this.setSelection(h.near(this.selection.$to));return this}}setMeta(Z,Q){return this.meta[typeof Z=="string"?Z:Z.key]=Q,this}getMeta(Z){return this.meta[typeof Z=="string"?Z:Z.key]}get isGeneric(){for(let Z in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=h7,this}get scrolledIntoView(){return(this.updated&h7)>0}}function m7(Z,Q){return!Q||!Z?Z:Z.bind(Q)}class x1{constructor(Z,Q,J){this.name=Z,this.init=m7(Q.init,J),this.apply=m7(Q.apply,J)}}var C2=[new x1("doc",{init(Z){return Z.doc||Z.schema.topNodeType.createAndFill()},apply(Z){return Z.doc}}),new x1("selection",{init(Z,Q){return Z.selection||h.atStart(Q.doc)},apply(Z){return Z.selection}}),new x1("storedMarks",{init(Z){return Z.storedMarks||null},apply(Z,Q,J,q){return q.selection.$cursor?Z.storedMarks:null}}),new x1("scrollToSelection",{init(){return 0},apply(Z,Q){return Z.scrolledIntoView?Q+1:Q}})];class t8{constructor(Z,Q){if(this.schema=Z,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=C2.slice(),Q)Q.forEach((J)=>{if(this.pluginsByKey[J.key])throw RangeError("Adding different instances of a keyed plugin ("+J.key+")");if(this.plugins.push(J),this.pluginsByKey[J.key]=J,J.spec.state)this.fields.push(new x1(J.key,J.spec.state,J))})}}class z1{constructor(Z){this.config=Z}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(Z){return this.applyTransaction(Z).state}filterTransaction(Z,Q=-1){for(let J=0;JJ.toJSON());if(Z&&typeof Z=="object")for(let J in Z){if(J=="doc"||J=="selection")throw RangeError("The JSON fields `doc` and `selection` are reserved");let q=Z[J],X=q.spec.state;if(X&&X.toJSON)Q[J]=X.toJSON.call(q,this[q.key])}return Q}static fromJSON(Z,Q,J){if(!Q)throw RangeError("Invalid input for EditorState.fromJSON");if(!Z.schema)throw RangeError("Required config field 'schema' missing");let q=new t8(Z.schema,Z.plugins),X=new z1(q);return q.fields.forEach((z)=>{if(z.name=="doc")X.doc=d0.fromJSON(Z.schema,Q.doc);else if(z.name=="selection")X.selection=h.fromJSON(X.doc,Q.selection);else if(z.name=="storedMarks"){if(Q.storedMarks)X.storedMarks=Q.storedMarks.map(Z.schema.markFromJSON)}else{if(J)for(let V in J){let Y=J[V],G=Y.spec.state;if(Y.key==z.name&&G&&G.fromJSON&&Object.prototype.hasOwnProperty.call(Q,V)){X[z.name]=G.fromJSON.call(Y,Z,Q[V],X);return}}X[z.name]=z.init(Z,X)}}),X}}function p7(Z,Q,J){for(let q in Z){let X=Z[q];if(X instanceof Function)X=X.bind(Q);else if(q=="handleDOMEvents")X=p7(X,Q,{});J[q]=X}return J}class Z0{constructor(Z){if(this.spec=Z,this.props={},Z.props)p7(Z.props,this,this.props);this.key=Z.key?Z.key.key:l7("plugin")}getState(Z){return Z[this.key]}}var m5=Object.create(null);function l7(Z){if(Z in m5)return Z+"$"+ ++m5[Z];return m5[Z]=0,Z+"$"}class K0{constructor(Z="key"){this.key=l7(Z)}get(Z){return Z.config.pluginsByKey[this.key]}getState(Z){return Z[this.key]}}var R0=function(Z){for(var Q=0;;Q++)if(Z=Z.previousSibling,!Z)return Q},u1=function(Z){let Q=Z.assignedSlot||Z.parentNode;return Q&&Q.nodeType==11?Q.host:Q},s5=null,C9=function(Z,Q,J){let q=s5||(s5=document.createRange());return q.setEnd(Z,J==null?Z.nodeValue.length:J),q.setStart(Z,Q||0),q},k2=function(){s5=null},U1=function(Z,Q,J,q){return J&&(d7(Z,Q,J,q,-1)||d7(Z,Q,J,q,1))},y2=/^(img|br|input|textarea|hr)$/i;function d7(Z,Q,J,q,X){var z;for(;;){if(Z==J&&Q==q)return!0;if(Q==(X<0?0:o0(Z))){let V=Z.parentNode;if(!V||V.nodeType!=1||j8(Z)||y2.test(Z.nodeName)||Z.contentEditable=="false")return!1;Q=R0(Z)+(X<0?0:1),Z=V}else if(Z.nodeType==1){let V=Z.childNodes[Q+(X<0?-1:0)];if(V.nodeType==1&&V.contentEditable=="false")if((z=V.pmViewDesc)===null||z===void 0?void 0:z.ignoreForSelection)Q+=X;else return!1;else Z=V,Q=X<0?o0(Z):0}else return!1}}function o0(Z){return Z.nodeType==3?Z.nodeValue.length:Z.childNodes.length}function $2(Z,Q){for(;;){if(Z.nodeType==3&&Q)return Z;if(Z.nodeType==1&&Q>0){if(Z.contentEditable=="false")return null;Z=Z.childNodes[Q-1],Q=o0(Z)}else if(Z.parentNode&&!j8(Z))Q=R0(Z),Z=Z.parentNode;else return null}}function N2(Z,Q){for(;;){if(Z.nodeType==3&&Q2),r0=g1||(H9?/Mac/.test(H9.platform):!1),yQ=H9?/Win/.test(H9.platform):!1,k9=/Android \d/.test(p9),I8=!!i7&&"webkitFontSmoothing"in i7.documentElement.style,T2=I8?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function x2(Z){let Q=Z.defaultView&&Z.defaultView.visualViewport;if(Q)return{left:0,right:Q.width,top:0,bottom:Q.height};return{left:0,right:Z.documentElement.clientWidth,top:0,bottom:Z.documentElement.clientHeight}}function O9(Z,Q){return typeof Z=="number"?Z:Z[Q]}function S2(Z){let Q=Z.getBoundingClientRect(),J=Q.width/Z.offsetWidth||1,q=Q.height/Z.offsetHeight||1;return{left:Q.left,right:Q.left+Z.clientWidth*J,top:Q.top,bottom:Q.top+Z.clientHeight*q}}function n7(Z,Q,J){let q=Z.someProp("scrollThreshold")||0,X=Z.someProp("scrollMargin")||5,z=Z.dom.ownerDocument;for(let V=J||Z.dom;;){if(!V)break;if(V.nodeType!=1){V=u1(V);continue}let Y=V,G=Y==z.body,K=G?x2(z):S2(Y),W=0,U=0;if(Q.topK.bottom-O9(q,"bottom"))U=Q.bottom-Q.top>K.bottom-K.top?Q.top+O9(X,"top")-K.top:Q.bottom-K.bottom+O9(X,"bottom");if(Q.leftK.right-O9(q,"right"))W=Q.right-K.right+O9(X,"right");if(W||U)if(G)z.defaultView.scrollBy(W,U);else{let{scrollLeft:F,scrollTop:B}=Y;if(U)Y.scrollTop+=U;if(W)Y.scrollLeft+=W;let L=Y.scrollLeft-F,P=Y.scrollTop-B;Q={left:Q.left-L,top:Q.top-P,right:Q.right-L,bottom:Q.bottom-P}}let H=G?"fixed":getComputedStyle(V).position;if(/^(fixed|sticky)$/.test(H))break;V=H=="absolute"?V.offsetParent:u1(V)}}function v2(Z){let Q=Z.dom.getBoundingClientRect(),J=Math.max(0,Q.top),q,X;for(let z=(Q.left+Q.right)/2,V=J+1;V=J-20){q=Y,X=G.top;break}}return{refDOM:q,refTop:X,stack:$Q(Z.dom)}}function $Q(Z){let Q=[],J=Z.ownerDocument;for(let q=Z;q;q=u1(q))if(Q.push({dom:q,top:q.scrollTop,left:q.scrollLeft}),Z==J)break;return Q}function w2({refDOM:Z,refTop:Q,stack:J}){let q=Z?Z.getBoundingClientRect().top:0;NQ(J,q==0?0:q-Q)}function NQ(Z,Q){for(let J=0;J=Y){V=Math.max(B.bottom,V),Y=Math.min(B.top,Y);let L=B.left>Q.left?B.left-Q.left:B.right=(B.left+B.right)/2?1:0);continue}}else if(B.top>Q.top&&!G&&B.left<=Q.left&&B.right>=Q.left)G=W,K={left:Math.max(B.left,Math.min(B.right,Q.left)),top:B.top};if(!J&&(Q.left>=B.right&&Q.top>=B.top||Q.left>=B.left&&Q.top>=B.bottom))z=U+1}}if(!J&&G)J=G,X=K,q=0;if(J&&J.nodeType==3)return u2(J,X);if(!J||q&&J.nodeType==1)return{node:Z,offset:z};return RQ(J,X)}function u2(Z,Q){let J=Z.nodeValue.length,q=document.createRange(),X;for(let z=0;z=(V.left+V.right)/2?1:0)};break}}return q.detach(),X||{node:Z,offset:0}}function X4(Z,Q){return Z.left>=Q.left-1&&Z.left<=Q.right+1&&Z.top>=Q.top-1&&Z.top<=Q.bottom+1}function g2(Z,Q){let J=Z.parentNode;if(J&&/^li$/i.test(J.nodeName)&&Q.left(V.left+V.right)/2?1:-1}return Z.docView.posFromDOM(q,X,z)}function m2(Z,Q,J,q){let X=-1;for(let z=Q,V=!1;;){if(z==Z.dom)break;let Y=Z.docView.nearestDesc(z,!0),G;if(!Y)return null;if(Y.dom.nodeType==1&&(Y.node.isBlock&&Y.parent||!Y.contentDOM)&&((G=Y.dom.getBoundingClientRect()).width||G.height)){if(Y.node.isBlock&&Y.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(Y.dom.nodeName)){if(!V&&G.left>q.left||G.top>q.top)X=Y.posBefore;else if(!V&&G.right-1?X:Z.docView.posFromDOM(Q,J,-1)}function bQ(Z,Q,J){let q=Z.childNodes.length;if(q&&J.topQ.top)X++}}let K;if(I8&&X&&q.nodeType==1&&(K=q.childNodes[X-1]).nodeType==1&&K.contentEditable=="false"&&K.getBoundingClientRect().top>=Q.top)X--;if(q==Z.dom&&X==q.childNodes.length-1&&q.lastChild.nodeType==1&&Q.top>q.lastChild.getBoundingClientRect().bottom)Y=Z.state.doc.content.size;else if(X==0||q.nodeType!=1||q.childNodes[X-1].nodeName!="BR")Y=m2(Z,q,X,Q)}if(Y==null)Y=h2(Z,V,Q);let G=Z.docView.nearestDesc(V,!0);return{pos:Y,inside:G?G.posAtStart-G.border:-1}}function s7(Z){return Z.top=0&&X==q.nodeValue.length)G--,W=1;else if(J<0)G--;else K++;return H8(w9(C9(q,G,K),W),W<0)}if(!Z.state.doc.resolve(Q-(z||0)).parent.inlineContent){if(z==null&&X&&(J<0||X==o0(q))){let G=q.childNodes[X-1];if(G.nodeType==1)return p5(G.getBoundingClientRect(),!1)}if(z==null&&X=0)}if(z==null&&X&&(J<0||X==o0(q))){let G=q.childNodes[X-1],K=G.nodeType==3?C9(G,o0(G)-(V?0:1)):G.nodeType==1&&(G.nodeName!="BR"||!G.nextSibling)?G:null;if(K)return H8(w9(K,1),!1)}if(z==null&&X=0)}function H8(Z,Q){if(Z.width==0)return Z;let J=Q?Z.left:Z.right;return{top:Z.top,bottom:Z.bottom,left:J,right:J}}function p5(Z,Q){if(Z.height==0)return Z;let J=Q?Z.top:Z.bottom;return{top:J,bottom:J,left:Z.left,right:Z.right}}function TQ(Z,Q,J){let q=Z.state,X=Z.root.activeElement;if(q!=Q)Z.updateState(Q);if(X!=Z.dom)Z.focus();try{return J()}finally{if(q!=Q)Z.updateState(q);if(X!=Z.dom&&X)X.focus()}}function l2(Z,Q,J){let q=Q.selection,X=J=="up"?q.$from:q.$to;return TQ(Z,Q,()=>{let{node:z}=Z.docView.domFromPos(X.pos,J=="up"?-1:1);for(;;){let Y=Z.docView.nearestDesc(z,!0);if(!Y)break;if(Y.node.isBlock){z=Y.contentDOM||Y.dom;break}z=Y.dom.parentNode}let V=EQ(Z,X.pos,1);for(let Y=z.firstChild;Y;Y=Y.nextSibling){let G;if(Y.nodeType==1)G=Y.getClientRects();else if(Y.nodeType==3)G=C9(Y,0,Y.nodeValue.length).getClientRects();else continue;for(let K=0;KW.top+1&&(J=="up"?V.top-W.top>(W.bottom-V.top)*2:W.bottom-V.bottom>(V.bottom-W.top)*2))return!1}}return!0})}var d2=/[\u0590-\u08ac]/;function i2(Z,Q,J){let{$head:q}=Q.selection;if(!q.parent.isTextblock)return!1;let X=q.parentOffset,z=!X,V=X==q.parent.content.size,Y=Z.domSelection();if(!Y)return q.pos==q.start()||q.pos==q.end();if(!d2.test(q.parent.textContent)||!Y.modify)return J=="left"||J=="backward"?z:V;return TQ(Z,Q,()=>{let{focusNode:G,focusOffset:K,anchorNode:W,anchorOffset:U}=Z.domSelectionRange(),H=Y.caretBidiLevel;Y.modify("move",J,"character");let F=q.depth?Z.docView.domAfterPos(q.before()):Z.dom,{focusNode:B,focusOffset:L}=Z.domSelectionRange(),P=B&&!F.contains(B.nodeType==1?B:B.parentNode)||G==B&&K==L;try{if(Y.collapse(W,U),G&&(G!=W||K!=U)&&Y.extend)Y.extend(G,K)}catch(_){}if(H!=null)Y.caretBidiLevel=H;return P})}var a7=null,r7=null,o7=!1;function n2(Z,Q,J){if(a7==Q&&r7==J)return o7;return a7=Q,r7=J,o7=J=="up"||J=="down"?l2(Z,Q,J):i2(Z,Q,J)}var e0=0,t7=1,Y1=2,F9=3;class h1{constructor(Z,Q,J,q){this.parent=Z,this.children=Q,this.dom=J,this.contentDOM=q,this.dirty=e0,J.pmViewDesc=this}matchesWidget(Z){return!1}matchesMark(Z){return!1}matchesNode(Z,Q,J){return!1}matchesHack(Z){return!1}parseRule(){return null}stopEvent(Z){return!1}get size(){let Z=0;for(let Q=0;QR0(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))q=Z.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(Q==0)for(let X=Z;;X=X.parentNode){if(X==this.dom){q=!1;break}if(X.previousSibling)break}if(q==null&&Q==Z.childNodes.length)for(let X=Z;;X=X.parentNode){if(X==this.dom){q=!0;break}if(X.nextSibling)break}}return(q==null?J>0:q)?this.posAtEnd:this.posAtStart}nearestDesc(Z,Q=!1){for(let J=!0,q=Z;q;q=q.parentNode){let X=this.getDesc(q),z;if(X&&(!Q||X.node))if(J&&(z=X.nodeDOM)&&!(z.nodeType==1?z.contains(Z.nodeType==1?Z:Z.parentNode):z==Z))J=!1;else return X}}getDesc(Z){let Q=Z.pmViewDesc;for(let J=Q;J;J=J.parent)if(J==this)return Q}posFromDOM(Z,Q,J){for(let q=Z;q;q=q.parentNode){let X=this.getDesc(q);if(X)return X.localPosFromDOM(Z,Q,J)}return-1}descAt(Z){for(let Q=0,J=0;QZ||z instanceof V4){q=Z-X;break}X=V}if(q)return this.children[J].domFromPos(q-this.children[J].border,Q);for(let X;J&&!(X=this.children[J-1]).size&&X instanceof z4&&X.side>=0;J--);if(Q<=0){let X,z=!0;for(;;J--,z=!1)if(X=J?this.children[J-1]:null,!X||X.dom.parentNode==this.contentDOM)break;if(X&&Q&&z&&!X.border&&!X.domAtom)return X.domFromPos(X.size,Q);return{node:this.contentDOM,offset:X?R0(X.dom)+1:0}}else{let X,z=!0;for(;;J++,z=!1)if(X=J=K&&Q<=G-Y.border&&Y.node&&Y.contentDOM&&this.contentDOM.contains(Y.contentDOM))return Y.parseRange(Z,Q,K);Z=z;for(let W=V;W>0;W--){let U=this.children[W-1];if(U.size&&U.dom.parentNode==this.contentDOM&&!U.emptyChildAt(1)){q=R0(U.dom)+1;break}Z-=U.size}if(q==-1)q=0}if(q>-1&&(G>Q||V==this.children.length-1)){Q=G;for(let K=V+1;KF&&zQ){let F=V;V=Y,Y=F}let H=document.createRange();H.setEnd(Y.node,Y.offset),H.setStart(V.node,V.offset),G.removeAllRanges(),G.addRange(H)}}ignoreMutation(Z){return!this.contentDOM&&Z.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(Z,Q){for(let J=0,q=0;q=J:ZJ){let V=J+X.border,Y=z-X.border;if(Z>=V&&Q<=Y){if(this.dirty=Z==J||Q==z?Y1:t7,Z==V&&Q==Y&&(X.contentLost||X.dom.parentNode!=this.contentDOM))X.dirty=F9;else X.markDirty(Z-V,Q-V);return}else X.dirty=X.dom==X.contentDOM&&X.dom.parentNode==this.contentDOM&&!X.children.length?Y1:F9}J=z}this.dirty=Y1}markParentsDirty(){let Z=1;for(let Q=this.parent;Q;Q=Q.parent,Z++){let J=Z==1?Y1:t7;if(Q.dirty{if(!X)return q;if(X.parent)return X.parent.posBeforeChild(X)});if(!Q.type.spec.raw){if(z.nodeType!=1){let V=document.createElement("span");V.appendChild(z),z=V}z.contentEditable="false",z.classList.add("ProseMirror-widget")}super(Z,[],z,null);this.widget=Q,this.widget=Q,X=this}matchesWidget(Z){return this.dirty==e0&&Z.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(Z){let Q=this.widget.spec.stopEvent;return Q?Q(Z):!1}ignoreMutation(Z){return Z.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}}class xQ extends h1{constructor(Z,Q,J,q){super(Z,[],Q,null);this.textDOM=J,this.text=q}get size(){return this.text.length}localPosFromDOM(Z,Q){if(Z!=this.textDOM)return this.posAtStart+(Q?this.size:0);return this.posAtStart+Q}domFromPos(Z){return{node:this.textDOM,offset:Z}}ignoreMutation(Z){return Z.type==="characterData"&&Z.target.nodeValue==Z.oldValue}}class H1 extends h1{constructor(Z,Q,J,q,X){super(Z,[],J,q);this.mark=Q,this.spec=X}static create(Z,Q,J,q){let X=q.nodeViews[Q.type.name],z=X&&X(Q,q,J);if(!z||!z.dom)z=W9.renderSpec(document,Q.type.spec.toDOM(Q,J),null,Q.attrs);return new H1(Z,Q,z.dom,z.contentDOM||z.dom,z)}parseRule(){if(this.dirty&F9||this.mark.type.spec.reparseInView)return null;return{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(Z){return this.dirty!=F9&&this.mark.eq(Z)}markDirty(Z,Q){if(super.markDirty(Z,Q),this.dirty!=e0){let J=this.parent;while(!J.node)J=J.parent;if(J.dirty0)X=e5(X,0,Z,J);for(let V=0;V{if(!Y)return z;if(Y.parent)return Y.parent.posBeforeChild(Y)},J,q),K=G&&G.dom,W=G&&G.contentDOM;if(Q.isText){if(!K)K=document.createTextNode(Q.text);else if(K.nodeType!=3)throw RangeError("Text must be rendered as a DOM text node")}else if(!K)({dom:K,contentDOM:W}=W9.renderSpec(document,Q.type.spec.toDOM(Q),null,Q.attrs));if(!W&&!Q.isText&&K.nodeName!="BR"){if(!K.hasAttribute("contenteditable"))K.contentEditable="false";if(Q.type.spec.draggable)K.draggable=!0}let U=K;if(K=fQ(K,J,Q),G)return Y=new SQ(Z,Q,J,q,K,W||null,U,G,X,z+1);else if(Q.isText)return new VZ(Z,Q,J,q,K,U,X);else return new m9(Z,Q,J,q,K,W||null,U,X,z+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let Z={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre")Z.preserveWhitespace="full";if(!this.contentDOM)Z.getContent=()=>this.node.content;else if(!this.contentLost)Z.contentElement=this.contentDOM;else{for(let Q=this.children.length-1;Q>=0;Q--){let J=this.children[Q];if(this.dom.contains(J.dom.parentNode)){Z.contentElement=J.dom.parentNode;break}}if(!Z.contentElement)Z.getContent=()=>D.empty}return Z}matchesNode(Z,Q,J){return this.dirty==e0&&Z.eq(this.node)&&ZZ(Q,this.outerDeco)&&J.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(Z,Q){let J=this.node.inlineContent,q=Q,X=Z.composing?this.localCompositionInfo(Z,Q):null,z=X&&X.pos>-1?X:null,V=X&&X.pos<0,Y=new uQ(this,z&&z.node,Z);if(o2(this.node,this.innerDeco,(G,K,W)=>{if(G.spec.marks)Y.syncToMarks(G.spec.marks,J,Z,K);else if(G.type.side>=0&&!W)Y.syncToMarks(K==this.node.childCount?e.none:this.node.child(K).marks,J,Z,K);Y.placeWidget(G,Z,q)},(G,K,W,U)=>{Y.syncToMarks(G.marks,J,Z,U);let H;if(Y.findNodeMatch(G,K,W,U));else if(V&&Z.state.selection.from>q&&Z.state.selection.to-1&&Y.updateNodeAt(G,K,W,H,Z));else if(Y.updateNextNode(G,K,W,Z,U,q));else Y.addNode(G,K,W,Z,q);q+=G.nodeSize}),Y.syncToMarks([],J,Z,0),this.node.isTextblock)Y.addTextblockHacks();if(Y.destroyRest(),Y.changed||this.dirty==Y1){if(z)this.protectLocalComposition(Z,z);if(vQ(this.contentDOM,this.children,Z),g1)t2(this.dom)}}localCompositionInfo(Z,Q){let{from:J,to:q}=Z.state.selection;if(!(Z.state.selection instanceof f)||JQ+this.node.content.size)return null;let X=Z.input.compositionNode;if(!X||!this.dom.contains(X.parentNode))return null;if(this.node.inlineContent){let z=X.nodeValue,V=e2(this.node.content,z,J-Q,q-Q);return V<0?null:{node:X,pos:V,text:z}}else return{node:X,pos:-1,text:""}}protectLocalComposition(Z,{node:Q,pos:J,text:q}){if(this.getDesc(Q))return;let X=Q;for(;;X=X.parentNode){if(X.parentNode==this.contentDOM)break;while(X.previousSibling)X.parentNode.removeChild(X.previousSibling);while(X.nextSibling)X.parentNode.removeChild(X.nextSibling);if(X.pmViewDesc)X.pmViewDesc=void 0}let z=new xQ(this,X,Q,q);Z.input.compositionNodes.push(z),this.children=e5(this.children,J,J+q.length,Z,z)}update(Z,Q,J,q){if(this.dirty==F9||!Z.sameMarkup(this.node))return!1;return this.updateInner(Z,Q,J,q),!0}updateInner(Z,Q,J,q){if(this.updateOuterDeco(Q),this.node=Z,this.innerDeco=J,this.contentDOM)this.updateChildren(q,this.posAtStart);this.dirty=e0}updateOuterDeco(Z){if(ZZ(Z,this.outerDeco))return;let Q=this.nodeDOM.nodeType!=1,J=this.dom;if(this.dom=wQ(this.dom,this.nodeDOM,t5(this.outerDeco,this.node,Q),t5(Z,this.node,Q)),this.dom!=J)J.pmViewDesc=void 0,this.dom.pmViewDesc=this;this.outerDeco=Z}selectNode(){if(this.nodeDOM.nodeType==1){if(this.nodeDOM.classList.add("ProseMirror-selectednode"),this.contentDOM||!this.node.type.spec.draggable)this.nodeDOM.draggable=!0}}deselectNode(){if(this.nodeDOM.nodeType==1){if(this.nodeDOM.classList.remove("ProseMirror-selectednode"),this.contentDOM||!this.node.type.spec.draggable)this.nodeDOM.removeAttribute("draggable")}}get domAtom(){return this.node.isAtom}}function e7(Z,Q,J,q,X){fQ(q,Q,Z);let z=new m9(void 0,Z,Q,J,q,q,q,X,0);if(z.contentDOM)z.updateChildren(X,0);return z}class VZ extends m9{constructor(Z,Q,J,q,X,z,V){super(Z,Q,J,q,X,null,z,V,0)}parseRule(){let Z=this.nodeDOM.parentNode;while(Z&&Z!=this.dom&&!Z.pmIsDeco)Z=Z.parentNode;return{skip:Z||!0}}update(Z,Q,J,q){if(this.dirty==F9||this.dirty!=e0&&!this.inParent()||!Z.sameMarkup(this.node))return!1;if(this.updateOuterDeco(Q),(this.dirty!=e0||Z.text!=this.node.text)&&Z.text!=this.nodeDOM.nodeValue){if(this.nodeDOM.nodeValue=Z.text,q.trackWrites==this.nodeDOM)q.trackWrites=null}return this.node=Z,this.dirty=e0,!0}inParent(){let Z=this.parent.contentDOM;for(let Q=this.nodeDOM;Q;Q=Q.parentNode)if(Q==Z)return!0;return!1}domFromPos(Z){return{node:this.nodeDOM,offset:Z}}localPosFromDOM(Z,Q,J){if(Z==this.nodeDOM)return this.posAtStart+Math.min(Q,this.node.text.length);return super.localPosFromDOM(Z,Q,J)}ignoreMutation(Z){return Z.type!="characterData"&&Z.type!="selection"}slice(Z,Q,J){let q=this.node.cut(Z,Q),X=document.createTextNode(q.text);return new VZ(this.parent,q,this.outerDeco,this.innerDeco,X,X,J)}markDirty(Z,Q){if(super.markDirty(Z,Q),this.dom!=this.nodeDOM&&(Z==0||Q==this.nodeDOM.nodeValue.length))this.dirty=F9}get domAtom(){return!1}isText(Z){return this.node.text==Z}}class V4 extends h1{parseRule(){return{ignore:!0}}matchesHack(Z){return this.dirty==e0&&this.dom.nodeName==Z}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName=="IMG"}}class SQ extends m9{constructor(Z,Q,J,q,X,z,V,Y,G,K){super(Z,Q,J,q,X,z,V,G,K);this.spec=Y}update(Z,Q,J,q){if(this.dirty==F9)return!1;if(this.spec.update&&(this.node.type==Z.type||this.spec.multiType)){let X=this.spec.update(Z,Q,J);if(X)this.updateInner(Z,Q,J,q);return X}else if(!this.contentDOM&&!Z.isLeaf)return!1;else return super.update(Z,Q,J,q)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(Z,Q,J,q){this.spec.setSelection?this.spec.setSelection(Z,Q,J.root):super.setSelection(Z,Q,J,q)}destroy(){if(this.spec.destroy)this.spec.destroy();super.destroy()}stopEvent(Z){return this.spec.stopEvent?this.spec.stopEvent(Z):!1}ignoreMutation(Z){return this.spec.ignoreMutation?this.spec.ignoreMutation(Z):super.ignoreMutation(Z)}}function vQ(Z,Q,J){let q=Z.firstChild,X=!1;for(let z=0;z>1,V=Math.min(z,Z.length);while(X-1){if(Y>this.index)this.changed=!0,this.destroyBetween(this.index,Y);this.top=this.top.children[this.index]}else{let K=H1.create(this.top,Z[z],Q,J);this.top.children.splice(this.index,0,K),this.top=K,this.changed=!0}this.index=0,z++}}findNodeMatch(Z,Q,J,q){let X=-1,z;if(q>=this.preMatch.index&&(z=this.preMatch.matches[q-this.preMatch.index]).parent==this.top&&z.matchesNode(Z,Q,J))X=this.top.children.indexOf(z,this.index);else for(let V=this.index,Y=Math.min(this.top.children.length,V+5);V0){let Y;for(;;)if(q){let K=J.children[q-1];if(K instanceof H1)J=K,q=K.children.length;else{Y=K,q--;break}}else if(J==Q)break Z;else q=J.parent.children.indexOf(J),J=J.parent;let G=Y.node;if(!G)continue;if(G!=Z.child(X-1))break;--X,z.set(Y,X),V.push(Y)}return{index:X,matched:z,matches:V.reverse()}}function r2(Z,Q){return Z.type.side-Q.type.side}function o2(Z,Q,J,q){let X=Q.locals(Z),z=0;if(X.length==0){for(let K=0;Kz)Y.push(X[V++]);let B=z+H.nodeSize;if(H.isText){let P=B;if(V!P.inline):Y.slice();q(H,L,Q.forChild(z,H),F),z=B}}function t2(Z){if(Z.nodeName=="UL"||Z.nodeName=="OL"){let Q=Z.style.cssText;Z.style.cssText=Q+"; list-style: square !important",window.getComputedStyle(Z).listStyle,Z.style.cssText=Q}}function e2(Z,Q,J,q){for(let X=0,z=0;X=J){if(z>=q&&G.slice(q-Q.length-Y,q-Y)==Q)return q-Q.length;let K=Y=0&&K+Q.length+Y>=J)return Y+K;if(J==q&&G.length>=q+Q.length-Y&&G.slice(q-Y,q-Y+Q.length)==Q)return q}}return-1}function e5(Z,Q,J,q,X){let z=[];for(let V=0,Y=0;V=J||W<=Q)z.push(G);else{if(KJ)z.push(G.slice(J-K,G.size,q))}}return z}function Y4(Z,Q=null){let J=Z.domSelectionRange(),q=Z.state.doc;if(!J.focusNode)return null;let X=Z.docView.nearestDesc(J.focusNode),z=X&&X.size==0,V=Z.docView.posFromDOM(J.focusNode,J.focusOffset,1);if(V<0)return null;let Y=q.resolve(V),G,K;if(zZ(J)){G=V;while(X&&!X.node)X=X.parent;let U=X.node;if(X&&U.isAtom&&u.isSelectable(U)&&X.parent&&!(U.isInline&&R2(J.focusNode,J.focusOffset,X.dom))){let H=X.posBefore;K=new u(V==H?Y:q.resolve(H))}}else{if(J instanceof Z.dom.ownerDocument.defaultView.Selection&&J.rangeCount>1){let U=V,H=V;for(let F=0;F{if(J.anchorNode!=q||J.anchorOffset!=X)Q.removeEventListener("selectionchange",Z.input.hideSelectionGuard),setTimeout(()=>{if(!gQ(Z)||Z.state.selection.visible)Z.dom.classList.remove("ProseMirror-hideselection")},20)})}function QV(Z){let Q=Z.domSelection();if(!Q)return;let J=Z.cursorWrapper.dom,q=J.nodeName=="IMG";if(q)Q.collapse(J.parentNode,R0(J)+1);else Q.collapse(J,0);if(!q&&!Z.state.selection.visible&&c0&&h9<=11)J.disabled=!0,J.disabled=!1}function hQ(Z,Q){if(Q instanceof u){let J=Z.docView.descAt(Q.from);if(J!=Z.lastSelectedViewDesc){if(XQ(Z),J)J.selectNode();Z.lastSelectedViewDesc=J}}else XQ(Z)}function XQ(Z){if(Z.lastSelectedViewDesc){if(Z.lastSelectedViewDesc.parent)Z.lastSelectedViewDesc.deselectNode();Z.lastSelectedViewDesc=void 0}}function G4(Z,Q,J,q){return Z.someProp("createSelectionBetween",(X)=>X(Z,Q,J))||f.between(Q,J,q)}function zQ(Z){if(Z.editable&&!Z.hasFocus())return!1;return mQ(Z)}function mQ(Z){let Q=Z.domSelectionRange();if(!Q.anchorNode)return!1;try{return Z.dom.contains(Q.anchorNode.nodeType==3?Q.anchorNode.parentNode:Q.anchorNode)&&(Z.editable||Z.dom.contains(Q.focusNode.nodeType==3?Q.focusNode.parentNode:Q.focusNode))}catch(J){return!1}}function JV(Z){let Q=Z.docView.domFromPos(Z.state.selection.anchor,0),J=Z.domSelectionRange();return U1(Q.node,Q.offset,J.anchorNode,J.anchorOffset)}function Z4(Z,Q){let{$anchor:J,$head:q}=Z.selection,X=Q>0?J.max(q):J.min(q),z=!X.parent.inlineContent?X:X.depth?Z.doc.resolve(Q>0?X.after():X.before()):null;return z&&h.findFrom(z,Q)}function f9(Z,Q){return Z.dispatch(Z.state.tr.setSelection(Q).scrollIntoView()),!0}function VQ(Z,Q,J){let q=Z.state.selection;if(q instanceof f){if(J.indexOf("s")>-1){let{$head:X}=q,z=X.textOffset?null:Q<0?X.nodeBefore:X.nodeAfter;if(!z||z.isText||!z.isLeaf)return!1;let V=Z.state.doc.resolve(X.pos+z.nodeSize*(Q<0?-1:1));return f9(Z,new f(q.$anchor,V))}else if(!q.empty)return!1;else if(Z.endOfTextblock(Q>0?"forward":"backward")){let X=Z4(Z.state,Q);if(X&&X instanceof u)return f9(Z,X);return!1}else if(!(r0&&J.indexOf("m")>-1)){let X=q.$head,z=X.textOffset?null:Q<0?X.nodeBefore:X.nodeAfter,V;if(!z||z.isText)return!1;let Y=Q<0?X.pos-z.nodeSize:X.pos;if(!(z.isAtom||(V=Z.docView.descAt(Y))&&!V.contentDOM))return!1;if(u.isSelectable(z))return f9(Z,new u(Q<0?Z.state.doc.resolve(X.pos-z.nodeSize):X));else if(I8)return f9(Z,new f(Z.state.doc.resolve(Q<0?Y:Y+z.nodeSize)));else return!1}}else if(q instanceof u&&q.node.isInline)return f9(Z,new f(Q>0?q.$to:q.$from));else{let X=Z4(Z.state,Q);if(X)return f9(Z,X);return!1}}function QZ(Z){return Z.nodeType==3?Z.nodeValue.length:Z.childNodes.length}function B8(Z,Q){let J=Z.pmViewDesc;return J&&J.size==0&&(Q<0||Z.nextSibling||Z.nodeName!="BR")}function v1(Z,Q){return Q<0?qV(Z):XV(Z)}function qV(Z){let Q=Z.domSelectionRange(),J=Q.focusNode,q=Q.focusOffset;if(!J)return;let X,z,V=!1;if(t0&&J.nodeType==1&&q0)if(J.nodeType!=1)break;else{let Y=J.childNodes[q-1];if(B8(Y,-1))X=J,z=--q;else if(Y.nodeType==3)J=Y,q=J.nodeValue.length;else break}else if(cQ(J))break;else{let Y=J.previousSibling;while(Y&&B8(Y,-1))X=J.parentNode,z=R0(Y),Y=Y.previousSibling;if(!Y){if(J=J.parentNode,J==Z.dom)break;q=0}else J=Y,q=QZ(J)}if(V)Q4(Z,J,q);else if(X)Q4(Z,X,z)}function XV(Z){let Q=Z.domSelectionRange(),J=Q.focusNode,q=Q.focusOffset;if(!J)return;let X=QZ(J),z,V;for(;;)if(q{if(Z.state==X)y9(Z)},50)}function YQ(Z,Q){let J=Z.state.doc.resolve(Q);if(!(b0||yQ)&&J.parent.inlineContent){let X=Z.coordsAtPos(Q);if(Q>J.start()){let z=Z.coordsAtPos(Q-1),V=(z.top+z.bottom)/2;if(V>X.top&&V1)return z.leftX.top&&V1)return z.left>X.left?"ltr":"rtl"}}return getComputedStyle(Z.dom).direction=="rtl"?"rtl":"ltr"}function GQ(Z,Q,J){let q=Z.state.selection;if(q instanceof f&&!q.empty||J.indexOf("s")>-1)return!1;if(r0&&J.indexOf("m")>-1)return!1;let{$from:X,$to:z}=q;if(!X.parent.inlineContent||Z.endOfTextblock(Q<0?"up":"down")){let V=Z4(Z.state,Q);if(V&&V instanceof u)return f9(Z,V)}if(!X.parent.inlineContent){let V=Q<0?X:z,Y=q instanceof N0?h.near(V,Q):h.findFrom(V,Q);return Y?f9(Z,Y):!1}return!1}function KQ(Z,Q){if(!(Z.state.selection instanceof f))return!0;let{$head:J,$anchor:q,empty:X}=Z.state.selection;if(!J.sameParent(q))return!0;if(!X)return!1;if(Z.endOfTextblock(Q>0?"forward":"backward"))return!0;let z=!J.textOffset&&(Q<0?J.nodeBefore:J.nodeAfter);if(z&&!z.isText){let V=Z.state.tr;if(Q<0)V.delete(J.pos-z.nodeSize,J.pos);else V.delete(J.pos,J.pos+z.nodeSize);return Z.dispatch(V),!0}return!1}function WQ(Z,Q,J){Z.domObserver.stop(),Q.contentEditable=J,Z.domObserver.start()}function YV(Z){if(!w0||Z.state.selection.$head.parentOffset>0)return!1;let{focusNode:Q,focusOffset:J}=Z.domSelectionRange();if(Q&&Q.nodeType==1&&J==0&&Q.firstChild&&Q.firstChild.contentEditable=="false"){let q=Q.firstChild;WQ(Z,q,"true"),setTimeout(()=>WQ(Z,q,"false"),20)}return!1}function GV(Z){let Q="";if(Z.ctrlKey)Q+="c";if(Z.metaKey)Q+="m";if(Z.altKey)Q+="a";if(Z.shiftKey)Q+="s";return Q}function KV(Z,Q){let J=Q.keyCode,q=GV(Q);if(J==8||r0&&J==72&&q=="c")return KQ(Z,-1)||v1(Z,-1);else if(J==46&&!Q.shiftKey||r0&&J==68&&q=="c")return KQ(Z,1)||v1(Z,1);else if(J==13||J==27)return!0;else if(J==37||r0&&J==66&&q=="c"){let X=J==37?YQ(Z,Z.state.selection.from)=="ltr"?-1:1:-1;return VQ(Z,X,q)||v1(Z,X)}else if(J==39||r0&&J==70&&q=="c"){let X=J==39?YQ(Z,Z.state.selection.from)=="ltr"?1:-1:1;return VQ(Z,X,q)||v1(Z,X)}else if(J==38||r0&&J==80&&q=="c")return GQ(Z,-1,q)||v1(Z,-1);else if(J==40||r0&&J==78&&q=="c")return YV(Z)||GQ(Z,1,q)||v1(Z,1);else if(q==(r0?"m":"c")&&(J==66||J==73||J==89||J==90))return!0;return!1}function K4(Z,Q){Z.someProp("transformCopied",(F)=>{Q=F(Q,Z)});let J=[],{content:q,openStart:X,openEnd:z}=Q;while(X>1&&z>1&&q.childCount==1&&q.firstChild.childCount==1){X--,z--;let F=q.firstChild;J.push(F.type.name,F.attrs!=F.type.defaultAttrs?F.attrs:null),q=F.content}let V=Z.someProp("clipboardSerializer")||W9.fromSchema(Z.state.schema),Y=sQ(),G=Y.createElement("div");G.appendChild(V.serializeFragment(q,{document:Y}));let K=G.firstChild,W,U=0;while(K&&K.nodeType==1&&(W=nQ[K.nodeName.toLowerCase()])){for(let F=W.length-1;F>=0;F--){let B=Y.createElement(W[F]);while(G.firstChild)B.appendChild(G.firstChild);G.appendChild(B),U++}K=G.firstChild}if(K&&K.nodeType==1)K.setAttribute("data-pm-slice",`${X} ${z}${U?` -${U}`:""} ${JSON.stringify(J)}`);let H=Z.someProp("clipboardTextSerializer",(F)=>F(Q,Z))||Q.content.textBetween(0,Q.content.size,` + +`);return{dom:G,text:H,slice:Q}}function pQ(Z,Q,J,q,X){let z=X.parent.type.spec.code,V,Y;if(!J&&!Q)return null;let G=!!Q&&(q||z||!J);if(G){if(Z.someProp("transformPastedText",(H)=>{Q=H(Q,z||q,Z)}),z)return Y=new R(D.from(Z.state.schema.text(Q.replace(/\r\n?/g,` +`))),0,0),Z.someProp("transformPasted",(H)=>{Y=H(Y,Z,!0)}),Y;let U=Z.someProp("clipboardTextParser",(H)=>H(Q,X,q,Z));if(U)Y=U;else{let H=X.marks(),{schema:F}=Z.state,B=W9.fromSchema(F);V=document.createElement("div"),Q.split(/(?:\r\n?|\n)+/).forEach((L)=>{let P=V.appendChild(document.createElement("p"));if(L)P.appendChild(B.serializeNode(F.text(L,H)))})}}else if(Z.someProp("transformPastedHTML",(U)=>{J=U(J,Z)}),V=FV(J),I8)BV(V);let K=V&&V.querySelector("[data-pm-slice]"),W=K&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(K.getAttribute("data-pm-slice")||"");if(W&&W[3])for(let U=+W[3];U>0;U--){let H=V.firstChild;while(H&&H.nodeType!=1)H=H.nextSibling;if(!H)break;V=H}if(!Y)Y=(Z.someProp("clipboardParser")||Z.someProp("domParser")||z9.fromSchema(Z.state.schema)).parseSlice(V,{preserveWhitespace:!!(G||W),context:X,ruleFromNode(H){if(H.nodeName=="BR"&&!H.nextSibling&&H.parentNode&&!WV.test(H.parentNode.nodeName))return{ignore:!0};return null}});if(W)Y=LV(UQ(Y,+W[1],+W[2]),W[4]);else if(Y=R.maxOpen(UV(Y.content,X),!0),Y.openStart||Y.openEnd){let U=0,H=0;for(let F=Y.content.firstChild;U{Y=U(Y,Z,G)}),Y}var WV=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function UV(Z,Q){if(Z.childCount<2)return Z;for(let J=Q.depth;J>=0;J--){let X=Q.node(J).contentMatchAt(Q.index(J)),z,V=[];if(Z.forEach((Y)=>{if(!V)return;let G=X.findWrapping(Y.type),K;if(!G)return V=null;if(K=V.length&&z.length&&dQ(G,z,Y,V[V.length-1],0))V[V.length-1]=K;else{if(V.length)V[V.length-1]=iQ(V[V.length-1],z.length);let W=lQ(Y,G);V.push(W),X=X.matchType(W.type),z=G}}),V)return D.from(V)}return Z}function lQ(Z,Q,J=0){for(let q=Q.length-1;q>=J;q--)Z=Q[q].create(null,D.from(Z));return Z}function dQ(Z,Q,J,q,X){if(X1)z=0;if(X=J)Y=Q<0?V.contentMatchAt(0).fillBefore(Y,z<=X).append(Y):Y.append(V.contentMatchAt(V.childCount).fillBefore(D.empty,!0));return Z.replaceChild(Q<0?0:Z.childCount-1,V.copy(Y))}function UQ(Z,Q,J){if(QJ});return d5.createHTML(Z)}function FV(Z){let Q=/^(\s*]*>)*/.exec(Z);if(Q)Z=Z.slice(Q[0].length);let J=sQ().createElement("div"),q=/<([a-z][^>\s]+)/i.exec(Z),X;if(X=q&&nQ[q[1].toLowerCase()])Z=X.map((z)=>"<"+z+">").join("")+Z+X.map((z)=>"").reverse().join("");if(J.innerHTML=HV(Z),X)for(let z=0;z=0;Y-=2){let G=J.nodes[q[Y]];if(!G||G.hasRequiredAttrs())break;X=D.from(G.create(q[Y+1],X)),z++,V++}return new R(X,z,V)}var g0={},h0={},PV={touchstart:!0,touchmove:!0};class aQ{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:"",button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-200000000,this.compositionID=1,this.badSafariComposition=!1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function _V(Z){for(let Q in g0){let J=g0[Q];Z.dom.addEventListener(Q,Z.input.eventHandlers[Q]=(q)=>{if(IV(Z,q)&&!W4(Z,q)&&(Z.editable||!(q.type in h0)))J(Z,q)},PV[Q]?{passive:!0}:void 0)}if(w0)Z.dom.addEventListener("input",()=>null);q4(Z)}function g9(Z,Q){Z.input.lastSelectionOrigin=Q,Z.input.lastSelectionTime=Date.now()}function jV(Z){Z.domObserver.stop();for(let Q in Z.input.eventHandlers)Z.dom.removeEventListener(Q,Z.input.eventHandlers[Q]);clearTimeout(Z.input.composingTimeout),clearTimeout(Z.input.lastIOSEnterFallbackTimeout)}function q4(Z){Z.someProp("handleDOMEvents",(Q)=>{for(let J in Q)if(!Z.input.eventHandlers[J])Z.dom.addEventListener(J,Z.input.eventHandlers[J]=(q)=>W4(Z,q))})}function W4(Z,Q){return Z.someProp("handleDOMEvents",(J)=>{let q=J[Q.type];return q?q(Z,Q)||Q.defaultPrevented:!1})}function IV(Z,Q){if(!Q.bubbles)return!0;if(Q.defaultPrevented)return!1;for(let J=Q.target;J!=Z.dom;J=J.parentNode)if(!J||J.nodeType==11||J.pmViewDesc&&J.pmViewDesc.stopEvent(Q))return!1;return!0}function DV(Z,Q){if(!W4(Z,Q)&&g0[Q.type]&&(Z.editable||!(Q.type in h0)))g0[Q.type](Z,Q)}h0.keydown=(Z,Q)=>{let J=Q;if(Z.input.shiftKey=J.keyCode==16||J.shiftKey,tQ(Z,J))return;if(Z.input.lastKeyCode=J.keyCode,Z.input.lastKeyCodeTime=Date.now(),k9&&b0&&J.keyCode==13)return;if(J.keyCode!=229)Z.domObserver.forceFlush();if(g1&&J.keyCode==13&&!J.ctrlKey&&!J.altKey&&!J.metaKey){let q=Date.now();Z.input.lastIOSEnter=q,Z.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{if(Z.input.lastIOSEnter==q)Z.someProp("handleKeyDown",(X)=>X(Z,V1(13,"Enter"))),Z.input.lastIOSEnter=0},200)}else if(Z.someProp("handleKeyDown",(q)=>q(Z,J))||KV(Z,J))J.preventDefault();else g9(Z,"key")};h0.keyup=(Z,Q)=>{if(Q.keyCode==16)Z.input.shiftKey=!1};h0.keypress=(Z,Q)=>{let J=Q;if(tQ(Z,J)||!J.charCode||J.ctrlKey&&!J.altKey||r0&&J.metaKey)return;if(Z.someProp("handleKeyPress",(X)=>X(Z,J))){J.preventDefault();return}let q=Z.state.selection;if(!(q instanceof f)||!q.$from.sameParent(q.$to)){let X=String.fromCharCode(J.charCode),z=()=>Z.state.tr.insertText(X).scrollIntoView();if(!/[\r\n]/.test(X)&&!Z.someProp("handleTextInput",(V)=>V(Z,q.$from.pos,q.$to.pos,X,z)))Z.dispatch(z());J.preventDefault()}};function YZ(Z){return{left:Z.clientX,top:Z.clientY}}function MV(Z,Q){let J=Q.x-Z.clientX,q=Q.y-Z.clientY;return J*J+q*q<100}function U4(Z,Q,J,q,X){if(q==-1)return!1;let z=Z.state.doc.resolve(q);for(let V=z.depth+1;V>0;V--)if(Z.someProp(Q,(Y)=>V>z.depth?Y(Z,J,z.nodeAfter,z.before(V),X,!0):Y(Z,J,z.node(V),z.before(V),X,!1)))return!0;return!1}function f1(Z,Q,J){if(!Z.focused)Z.focus();if(Z.state.selection.eq(Q))return;let q=Z.state.tr.setSelection(Q);if(J=="pointer")q.setMeta("pointer",!0);Z.dispatch(q)}function AV(Z,Q){if(Q==-1)return!1;let J=Z.state.doc.resolve(Q),q=J.nodeAfter;if(q&&q.isAtom&&u.isSelectable(q))return f1(Z,new u(J),"pointer"),!0;return!1}function OV(Z,Q){if(Q==-1)return!1;let J=Z.state.selection,q,X;if(J instanceof u)q=J.node;let z=Z.state.doc.resolve(Q);for(let V=z.depth+1;V>0;V--){let Y=V>z.depth?z.nodeAfter:z.node(V);if(u.isSelectable(Y)){if(q&&J.$from.depth>0&&V>=J.$from.depth&&z.before(J.$from.depth+1)==J.$from.pos)X=z.before(J.$from.depth);else X=z.before(V);break}}if(X!=null)return f1(Z,u.create(Z.state.doc,X),"pointer"),!0;else return!1}function CV(Z,Q,J,q,X){return U4(Z,"handleClickOn",Q,J,q)||Z.someProp("handleClick",(z)=>z(Z,Q,q))||(X?OV(Z,J):AV(Z,J))}function kV(Z,Q,J,q){return U4(Z,"handleDoubleClickOn",Q,J,q)||Z.someProp("handleDoubleClick",(X)=>X(Z,Q,q))}function yV(Z,Q,J,q){return U4(Z,"handleTripleClickOn",Q,J,q)||Z.someProp("handleTripleClick",(X)=>X(Z,Q,q))||$V(Z,J,q)}function $V(Z,Q,J){if(J.button!=0)return!1;let q=Z.state.doc;if(Q==-1){if(q.inlineContent)return f1(Z,f.create(q,0,q.content.size),"pointer"),!0;return!1}let X=q.resolve(Q);for(let z=X.depth+1;z>0;z--){let V=z>X.depth?X.nodeAfter:X.node(z),Y=X.before(z);if(V.inlineContent)f1(Z,f.create(q,Y+1,Y+1+V.content.size),"pointer");else if(u.isSelectable(V))f1(Z,u.create(q,Y),"pointer");else continue;return!0}}function H4(Z){return JZ(Z)}var rQ=r0?"metaKey":"ctrlKey";g0.mousedown=(Z,Q)=>{let J=Q;Z.input.shiftKey=J.shiftKey;let q=H4(Z),X=Date.now(),z="singleClick";if(X-Z.input.lastClick.time<500&&MV(J,Z.input.lastClick)&&!J[rQ]&&Z.input.lastClick.button==J.button){if(Z.input.lastClick.type=="singleClick")z="doubleClick";else if(Z.input.lastClick.type=="doubleClick")z="tripleClick"}Z.input.lastClick={time:X,x:J.clientX,y:J.clientY,type:z,button:J.button};let V=Z.posAtCoords(YZ(J));if(!V)return;if(z=="singleClick"){if(Z.input.mouseDown)Z.input.mouseDown.done();Z.input.mouseDown=new oQ(Z,V,J,!!q)}else if((z=="doubleClick"?kV:yV)(Z,V.pos,V.inside,J))J.preventDefault();else g9(Z,"pointer")};class oQ{constructor(Z,Q,J,q){this.view=Z,this.pos=Q,this.event=J,this.flushed=q,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=Z.state.doc,this.selectNode=!!J[rQ],this.allowDefault=J.shiftKey;let X,z;if(Q.inside>-1)X=Z.state.doc.nodeAt(Q.inside),z=Q.inside;else{let K=Z.state.doc.resolve(Q.pos);X=K.parent,z=K.depth?K.before():0}let V=q?null:J.target,Y=V?Z.docView.nearestDesc(V,!0):null;this.target=Y&&Y.nodeDOM.nodeType==1?Y.nodeDOM:null;let{selection:G}=Z.state;if(J.button==0&&X.type.spec.draggable&&X.type.spec.selectable!==!1||G instanceof u&&G.from<=z&&G.to>z)this.mightDrag={node:X,pos:z,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&t0&&!this.target.hasAttribute("contentEditable"))};if(this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)){if(this.view.domObserver.stop(),this.mightDrag.addAttr)this.target.draggable=!0;if(this.mightDrag.setUneditable)setTimeout(()=>{if(this.view.input.mouseDown==this)this.target.setAttribute("contentEditable","false")},20);this.view.domObserver.start()}Z.root.addEventListener("mouseup",this.up=this.up.bind(this)),Z.root.addEventListener("mousemove",this.move=this.move.bind(this)),g9(Z,"pointer")}done(){if(this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target){if(this.view.domObserver.stop(),this.mightDrag.addAttr)this.target.removeAttribute("draggable");if(this.mightDrag.setUneditable)this.target.removeAttribute("contentEditable");this.view.domObserver.start()}if(this.delayedSelectionSync)setTimeout(()=>y9(this.view));this.view.input.mouseDown=null}up(Z){if(this.done(),!this.view.dom.contains(Z.target))return;let Q=this.pos;if(this.view.state.doc!=this.startDoc)Q=this.view.posAtCoords(YZ(Z));if(this.updateAllowDefault(Z),this.allowDefault||!Q)g9(this.view,"pointer");else if(CV(this.view,Q.pos,Q.inside,Z,this.selectNode))Z.preventDefault();else if(Z.button==0&&(this.flushed||w0&&this.mightDrag&&!this.mightDrag.node.isAtom||b0&&!this.view.state.selection.visible&&Math.min(Math.abs(Q.pos-this.view.state.selection.from),Math.abs(Q.pos-this.view.state.selection.to))<=2))f1(this.view,h.near(this.view.state.doc.resolve(Q.pos)),"pointer"),Z.preventDefault();else g9(this.view,"pointer")}move(Z){if(this.updateAllowDefault(Z),g9(this.view,"pointer"),Z.buttons==0)this.done()}updateAllowDefault(Z){if(!this.allowDefault&&(Math.abs(this.event.x-Z.clientX)>4||Math.abs(this.event.y-Z.clientY)>4))this.allowDefault=!0}}g0.touchstart=(Z)=>{Z.input.lastTouch=Date.now(),H4(Z),g9(Z,"pointer")};g0.touchmove=(Z)=>{Z.input.lastTouch=Date.now(),g9(Z,"pointer")};g0.contextmenu=(Z)=>H4(Z);function tQ(Z,Q){if(Z.composing)return!0;if(w0&&Math.abs(Q.timeStamp-Z.input.compositionEndedAt)<500)return Z.input.compositionEndedAt=-200000000,!0;return!1}var NV=k9?5000:-1;h0.compositionstart=h0.compositionupdate=(Z)=>{if(!Z.composing){Z.domObserver.flush();let{state:Q}=Z,J=Q.selection.$to;if(Q.selection instanceof f&&(Q.storedMarks||!J.textOffset&&J.parentOffset&&J.nodeBefore.marks.some((q)=>q.type.spec.inclusive===!1)||b0&&yQ&&RV(Z)))Z.markCursor=Z.state.storedMarks||J.marks(),JZ(Z,!0),Z.markCursor=null;else if(JZ(Z,!Q.selection.empty),t0&&Q.selection.empty&&J.parentOffset&&!J.textOffset&&J.nodeBefore.marks.length){let q=Z.domSelectionRange();for(let{focusNode:X,focusOffset:z}=q;X&&X.nodeType==1&&z!=0;){let V=z<0?X.lastChild:X.childNodes[z-1];if(!V)break;if(V.nodeType==3){let Y=Z.domSelection();if(Y)Y.collapse(V,V.nodeValue.length);break}else X=V,z=-1}}Z.input.composing=!0}eQ(Z,NV)};function RV(Z){let{focusNode:Q,focusOffset:J}=Z.domSelectionRange();if(!Q||Q.nodeType!=1||J>=Q.childNodes.length)return!1;let q=Q.childNodes[J];return q.nodeType==1&&q.contentEditable=="false"}h0.compositionend=(Z,Q)=>{if(Z.composing){if(Z.input.composing=!1,Z.input.compositionEndedAt=Q.timeStamp,Z.input.compositionPendingChanges=Z.domObserver.pendingRecords().length?Z.input.compositionID:0,Z.input.compositionNode=null,Z.input.badSafariComposition)Z.domObserver.forceFlush();else if(Z.input.compositionPendingChanges)Promise.resolve().then(()=>Z.domObserver.flush());Z.input.compositionID++,eQ(Z,20)}};function eQ(Z,Q){if(clearTimeout(Z.input.composingTimeout),Q>-1)Z.input.composingTimeout=setTimeout(()=>JZ(Z),Q)}function Z3(Z){if(Z.composing)Z.input.composing=!1,Z.input.compositionEndedAt=EV();while(Z.input.compositionNodes.length>0)Z.input.compositionNodes.pop().markParentsDirty()}function bV(Z){let Q=Z.domSelectionRange();if(!Q.focusNode)return null;let J=$2(Q.focusNode,Q.focusOffset),q=N2(Q.focusNode,Q.focusOffset);if(J&&q&&J!=q){let X=q.pmViewDesc,z=Z.domObserver.lastChangedTextNode;if(J==z||q==z)return z;if(!X||!X.isText(q.nodeValue))return q;else if(Z.input.compositionNode==q){let V=J.pmViewDesc;if(!(!V||!V.isText(J.nodeValue)))return q}}return J||q}function EV(){let Z=document.createEvent("Event");return Z.initEvent("event",!0,!0),Z.timeStamp}function JZ(Z,Q=!1){if(k9&&Z.domObserver.flushingSoon>=0)return;if(Z.domObserver.forceFlush(),Z3(Z),Q||Z.docView&&Z.docView.dirty){let J=Y4(Z),q=Z.state.selection;if(J&&!J.eq(q))Z.dispatch(Z.state.tr.setSelection(J));else if((Z.markCursor||Q)&&!q.$from.node(q.$from.sharedDepth(q.to)).inlineContent)Z.dispatch(Z.state.tr.deleteSelection());else Z.updateState(Z.state);return!0}return!1}function TV(Z,Q){if(!Z.dom.parentNode)return;let J=Z.dom.parentNode.appendChild(document.createElement("div"));J.appendChild(Q),J.style.cssText="position: fixed; left: -10000px; top: 10px";let q=getSelection(),X=document.createRange();X.selectNodeContents(Q),Z.dom.blur(),q.removeAllRanges(),q.addRange(X),setTimeout(()=>{if(J.parentNode)J.parentNode.removeChild(J);Z.focus()},50)}var L8=c0&&h9<15||g1&&T2<604;g0.copy=h0.cut=(Z,Q)=>{let J=Q,q=Z.state.selection,X=J.type=="cut";if(q.empty)return;let z=L8?null:J.clipboardData,V=q.content(),{dom:Y,text:G}=K4(Z,V);if(z)J.preventDefault(),z.clearData(),z.setData("text/html",Y.innerHTML),z.setData("text/plain",G);else TV(Z,Y);if(X)Z.dispatch(Z.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function xV(Z){return Z.openStart==0&&Z.openEnd==0&&Z.content.childCount==1?Z.content.firstChild:null}function SV(Z,Q){if(!Z.dom.parentNode)return;let J=Z.input.shiftKey||Z.state.selection.$from.parent.type.spec.code,q=Z.dom.parentNode.appendChild(document.createElement(J?"textarea":"div"));if(!J)q.contentEditable="true";q.style.cssText="position: fixed; left: -10000px; top: 10px",q.focus();let X=Z.input.shiftKey&&Z.input.lastKeyCode!=45;setTimeout(()=>{if(Z.focus(),q.parentNode)q.parentNode.removeChild(q);if(J)P8(Z,q.value,null,X,Q);else P8(Z,q.textContent,q.innerHTML,X,Q)},50)}function P8(Z,Q,J,q,X){let z=pQ(Z,Q,J,q,Z.state.selection.$from);if(Z.someProp("handlePaste",(G)=>G(Z,X,z||R.empty)))return!0;if(!z)return!1;let V=xV(z),Y=V?Z.state.tr.replaceSelectionWith(V,q):Z.state.tr.replaceSelection(z);return Z.dispatch(Y.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function Q3(Z){let Q=Z.getData("text/plain")||Z.getData("Text");if(Q)return Q;let J=Z.getData("text/uri-list");return J?J.replace(/\r?\n/g," "):""}h0.paste=(Z,Q)=>{let J=Q;if(Z.composing&&!k9)return;let q=L8?null:J.clipboardData,X=Z.input.shiftKey&&Z.input.lastKeyCode!=45;if(q&&P8(Z,Q3(q),q.getData("text/html"),X,J))J.preventDefault();else SV(Z,J)};class F4{constructor(Z,Q,J){this.slice=Z,this.move=Q,this.node=J}}var vV=r0?"altKey":"ctrlKey";function J3(Z,Q){let J=Z.someProp("dragCopies",(q)=>!q(Q));return J!=null?J:!Q[vV]}g0.dragstart=(Z,Q)=>{let J=Q,q=Z.input.mouseDown;if(q)q.done();if(!J.dataTransfer)return;let X=Z.state.selection,z=X.empty?null:Z.posAtCoords(YZ(J)),V;if(z&&z.pos>=X.from&&z.pos<=(X instanceof u?X.to-1:X.to));else if(q&&q.mightDrag)V=u.create(Z.state.doc,q.mightDrag.pos);else if(J.target&&J.target.nodeType==1){let U=Z.docView.nearestDesc(J.target,!0);if(U&&U.node.type.spec.draggable&&U!=Z.docView)V=u.create(Z.state.doc,U.posBefore)}let Y=(V||Z.state.selection).content(),{dom:G,text:K,slice:W}=K4(Z,Y);if(!J.dataTransfer.files.length||!b0||kQ>120)J.dataTransfer.clearData();if(J.dataTransfer.setData(L8?"Text":"text/html",G.innerHTML),J.dataTransfer.effectAllowed="copyMove",!L8)J.dataTransfer.setData("text/plain",K);Z.dragging=new F4(W,J3(Z,J),V)};g0.dragend=(Z)=>{let Q=Z.dragging;window.setTimeout(()=>{if(Z.dragging==Q)Z.dragging=null},50)};h0.dragover=h0.dragenter=(Z,Q)=>Q.preventDefault();h0.drop=(Z,Q)=>{try{wV(Z,Q,Z.dragging)}finally{Z.dragging=null}};function wV(Z,Q,J){if(!Q.dataTransfer)return;let q=Z.posAtCoords(YZ(Q));if(!q)return;let X=Z.state.doc.resolve(q.pos),z=J&&J.slice;if(z)Z.someProp("transformPasted",(F)=>{z=F(z,Z,!1)});else z=pQ(Z,Q3(Q.dataTransfer),L8?null:Q.dataTransfer.getData("text/html"),!1,X);let V=!!(J&&J3(Z,Q));if(Z.someProp("handleDrop",(F)=>F(Z,Q,z||R.empty,V))){Q.preventDefault();return}if(!z)return;Q.preventDefault();let Y=z?r8(Z.state.doc,X.pos,z):X.pos;if(Y==null)Y=X.pos;let G=Z.state.tr;if(V){let{node:F}=J;if(F)F.replace(G);else G.deleteSelection()}let K=G.mapping.map(Y),W=z.openStart==0&&z.openEnd==0&&z.content.childCount==1,U=G.doc;if(W)G.replaceRangeWith(K,K,z.content.firstChild);else G.replaceRange(K,K,z);if(G.doc.eq(U))return;let H=G.doc.resolve(K);if(W&&u.isSelectable(z.content.firstChild)&&H.nodeAfter&&H.nodeAfter.sameMarkup(z.content.firstChild))G.setSelection(new u(H));else{let F=G.mapping.map(Y);G.mapping.maps[G.mapping.maps.length-1].forEach((B,L,P,_)=>F=_),G.setSelection(G4(Z,H,G.doc.resolve(F)))}Z.focus(),Z.dispatch(G.setMeta("uiEvent","drop"))}g0.focus=(Z)=>{if(Z.input.lastFocus=Date.now(),!Z.focused)Z.domObserver.stop(),Z.dom.classList.add("ProseMirror-focused"),Z.domObserver.start(),Z.focused=!0,setTimeout(()=>{if(Z.docView&&Z.hasFocus()&&!Z.domObserver.currentSelection.eq(Z.domSelectionRange()))y9(Z)},20)};g0.blur=(Z,Q)=>{let J=Q;if(Z.focused){if(Z.domObserver.stop(),Z.dom.classList.remove("ProseMirror-focused"),Z.domObserver.start(),J.relatedTarget&&Z.dom.contains(J.relatedTarget))Z.domObserver.currentSelection.clear();Z.focused=!1}};g0.beforeinput=(Z,Q)=>{if(b0&&k9&&Q.inputType=="deleteContentBackward"){Z.domObserver.flushSoon();let{domChangeCount:q}=Z.input;setTimeout(()=>{if(Z.input.domChangeCount!=q)return;if(Z.dom.blur(),Z.focus(),Z.someProp("handleKeyDown",(z)=>z(Z,V1(8,"Backspace"))))return;let{$cursor:X}=Z.state.selection;if(X&&X.pos>0)Z.dispatch(Z.state.tr.delete(X.pos-1,X.pos).scrollIntoView())},50)}};for(let Z in h0)g0[Z]=h0[Z];function _8(Z,Q){if(Z==Q)return!0;for(let J in Z)if(Z[J]!==Q[J])return!1;for(let J in Q)if(!(J in Z))return!1;return!0}class qZ{constructor(Z,Q){this.toDOM=Z,this.spec=Q||K1,this.side=this.spec.side||0}map(Z,Q,J,q){let{pos:X,deleted:z}=Z.mapResult(Q.from+q,this.side<0?-1:1);return z?null:new I0(X-J,X-J,this)}valid(){return!0}eq(Z){return this==Z||Z instanceof qZ&&(this.spec.key&&this.spec.key==Z.spec.key||this.toDOM==Z.toDOM&&_8(this.spec,Z.spec))}destroy(Z){if(this.spec.destroy)this.spec.destroy(Z)}}class c9{constructor(Z,Q){this.attrs=Z,this.spec=Q||K1}map(Z,Q,J,q){let X=Z.map(Q.from+q,this.spec.inclusiveStart?-1:1)-J,z=Z.map(Q.to+q,this.spec.inclusiveEnd?1:-1)-J;return X>=z?null:new I0(X,z,this)}valid(Z,Q){return Q.from=Z&&(!X||X(V.spec)))J.push(V.copy(V.from+q,V.to+q))}for(let z=0;zZ){let V=this.children[z]+1;this.children[z+2].findInner(Z-V,Q-V,J,q+V,X)}}map(Z,Q,J){if(this==v0||Z.maps.length==0)return this;return this.mapInner(Z,Q,0,0,J||K1)}mapInner(Z,Q,J,q,X){let z;for(let V=0;V{let G=Y+J,K;if(!(K=X3(Q,V,G)))return;if(!q)q=this.children.slice();while(XV&&W.to=Z){if(this.children[V]==Z)J=this.children[V+2];break}let X=Z+1,z=X+Q.content.size;for(let V=0;VX&&Y.type instanceof c9){let G=Math.max(X,Y.from)-X,K=Math.min(z,Y.to)-X;if(Gq.map(Z,Q,K1));return u9.from(J)}forChild(Z,Q){if(Q.isLeaf)return q0.empty;let J=[];for(let q=0;qQ instanceof q0)?Z:Z.reduce((Q,J)=>Q.concat(J instanceof q0?J:J.members),[]))}}forEachSet(Z){for(let Q=0;Q{let P=L-B-(F-H);for(let _=0;_A+W-U)continue;let k=Y[_]+W-U;if(F>=k)Y[_+1]=H<=k?-2:-1;else if(H>=W&&P)Y[_]+=P,Y[_+1]+=P}U+=P}),W=J.maps[K].map(W,-1)}let G=!1;for(let K=0;K=q.content.size){G=!0;continue}let H=J.map(Z[K+1]+z,-1),F=H-X,{index:B,offset:L}=q.content.findIndex(U),P=q.maybeChild(B);if(P&&L==U&&L+P.nodeSize==F){let _=Y[K+2].mapInner(J,P,W+1,Z[K]+z+1,V);if(_!=v0)Y[K]=U,Y[K+1]=F,Y[K+2]=_;else Y[K+1]=-2,G=!0}else G=!0}if(G){let K=uV(Y,Z,Q,J,X,z,V),W=XZ(K,q,0,V);Q=W.local;for(let U=0;UJ&&V.to{let K=X3(Z,Y,G+J);if(K){z=!0;let W=XZ(K,Y,J+G+1,q);if(W!=v0)X.push(G,G+Y.nodeSize,W)}});let V=q3(z?z3(Z):Z,-J).sort(W1);for(let Y=0;Y0)Q++;Z.splice(Q,0,J)}function i5(Z){let Q=[];if(Z.someProp("decorations",(J)=>{let q=J(Z.state);if(q&&q!=v0)Q.push(q)}),Z.cursorWrapper)Q.push(q0.create(Z.state.doc,[Z.cursorWrapper.deco]));return u9.from(Q)}var gV={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},hV=c0&&h9<=11;class V3{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(Z){this.anchorNode=Z.anchorNode,this.anchorOffset=Z.anchorOffset,this.focusNode=Z.focusNode,this.focusOffset=Z.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(Z){return Z.anchorNode==this.anchorNode&&Z.anchorOffset==this.anchorOffset&&Z.focusNode==this.focusNode&&Z.focusOffset==this.focusOffset}}class Y3{constructor(Z,Q){if(this.view=Z,this.handleDOMChange=Q,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new V3,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver((J)=>{for(let q=0;qq.type=="childList"&&q.removedNodes.length||q.type=="characterData"&&q.oldValue.length>q.target.nodeValue.length))this.flushSoon();else if(w0&&Z.composing&&J.some((q)=>q.type=="childList"&&q.target.nodeName=="TR"))Z.input.badSafariComposition=!0,this.flushSoon();else this.flush()}),hV)this.onCharData=(J)=>{this.queue.push({target:J.target,type:"characterData",oldValue:J.prevValue}),this.flushSoon()};this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){if(this.flushingSoon<0)this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20)}forceFlush(){if(this.flushingSoon>-1)window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush()}start(){if(this.observer)this.observer.takeRecords(),this.observer.observe(this.view.dom,gV);if(this.onCharData)this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData);this.connectSelection()}stop(){if(this.observer){let Z=this.observer.takeRecords();if(Z.length){for(let Q=0;Qthis.flush(),20)}this.observer.disconnect()}if(this.onCharData)this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData);this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(!zQ(this.view))return;if(this.suppressingSelectionUpdates)return y9(this.view);if(c0&&h9<=11&&!this.view.state.selection.empty){let Z=this.view.domSelectionRange();if(Z.focusNode&&U1(Z.focusNode,Z.focusOffset,Z.anchorNode,Z.anchorOffset))return this.flushSoon()}this.flush()}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(Z){if(!Z.focusNode)return!0;let Q=new Set,J;for(let X=Z.focusNode;X;X=u1(X))Q.add(X);for(let X=Z.anchorNode;X;X=u1(X))if(Q.has(X)){J=X;break}let q=J&&this.view.docView.nearestDesc(J);if(q&&q.ignoreMutation({type:"selection",target:J.nodeType==3?J.parentNode:J}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let Z of this.observer.takeRecords())this.queue.push(Z);return this.queue}flush(){let{view:Z}=this;if(!Z.docView||this.flushingSoon>-1)return;let Q=this.pendingRecords();if(Q.length)this.queue=[];let J=Z.domSelectionRange(),q=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(J)&&zQ(Z)&&!this.ignoreSelectionChange(J),X=-1,z=-1,V=!1,Y=[];if(Z.editable)for(let K=0;KK.nodeName=="BR")&&(Z.input.lastKeyCode==8||Z.input.lastKeyCode==46)){for(let K of Y)if(K.nodeName=="BR"&&K.parentNode){let W=K.nextSibling;while(W&&W.nodeType==1){if(W.contentEditable=="false"){K.parentNode.removeChild(K);break}W=W.firstChild}}}else if(t0&&Y.length){let K=Y.filter((W)=>W.nodeName=="BR");if(K.length==2){let[W,U]=K;if(W.parentNode&&W.parentNode.parentNode==U.parentNode)U.remove();else W.remove()}else{let{focusNode:W}=this.currentSelection;for(let U of K){let H=U.parentNode;if(H&&H.nodeName=="LI"&&(!W||pV(Z,W)!=H))U.remove()}}}let G=null;if(X<0&&q&&Z.input.lastFocus>Date.now()-200&&Math.max(Z.input.lastTouch,Z.input.lastClick.time)-1||q){if(X>-1)Z.docView.markDirty(X,z),mV(Z);if(Z.input.badSafariComposition)Z.input.badSafariComposition=!1,lV(Z,Y);if(this.handleDOMChange(X,z,V,Y),Z.docView&&Z.docView.dirty)Z.updateState(Z.state);else if(!this.currentSelection.eq(J))y9(Z);this.currentSelection.set(J)}}registerMutation(Z,Q){if(Q.indexOf(Z.target)>-1)return null;let J=this.view.docView.nearestDesc(Z.target);if(Z.type=="attributes"&&(J==this.view.docView||Z.attributeName=="contenteditable"||Z.attributeName=="style"&&!Z.oldValue&&!Z.target.getAttribute("style")))return null;if(!J||J.ignoreMutation(Z))return null;if(Z.type=="childList"){for(let K=0;KX;P--){let _=q.childNodes[P-1],A=_.pmViewDesc;if(_.nodeName=="BR"&&!A){z=P;break}if(!A||A.size)break}let U=Z.state.doc,H=Z.someProp("domParser")||z9.fromSchema(Z.state.schema),F=U.resolve(V),B=null,L=H.parse(q,{topNode:F.parent,topMatch:F.parent.contentMatchAt(F.index()),topOpen:!0,from:X,to:z,preserveWhitespace:F.parent.type.whitespace=="pre"?"full":!0,findPositions:K,ruleFromNode:iV,context:F});if(K&&K[0].pos!=null){let P=K[0].pos,_=K[1]&&K[1].pos;if(_==null)_=P;B={anchor:P+V,head:_+V}}return{doc:L,sel:B,from:V,to:Y}}function iV(Z){let Q=Z.pmViewDesc;if(Q)return Q.parseRule();else if(Z.nodeName=="BR"&&Z.parentNode){if(w0&&/^(ul|ol)$/i.test(Z.parentNode.nodeName)){let J=document.createElement("div");return J.appendChild(document.createElement("li")),{skip:J}}else if(Z.parentNode.lastChild==Z||w0&&/^(tr|table)$/i.test(Z.parentNode.nodeName))return{ignore:!0}}else if(Z.nodeName=="IMG"&&Z.getAttribute("mark-placeholder"))return{ignore:!0};return null}var nV=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function sV(Z,Q,J,q,X){let z=Z.input.compositionPendingChanges||(Z.composing?Z.input.compositionID:0);if(Z.input.compositionPendingChanges=0,Q<0){let b=Z.input.lastSelectionTime>Date.now()-50?Z.input.lastSelectionOrigin:null,S=Y4(Z,b);if(S&&!Z.state.selection.eq(S)){if(b0&&k9&&Z.input.lastKeyCode===13&&Date.now()-100U0(Z,V1(13,"Enter"))))return;let m=Z.state.tr.setSelection(S);if(b=="pointer")m.setMeta("pointer",!0);else if(b=="key")m.scrollIntoView();if(z)m.setMeta("composition",z);Z.dispatch(m)}return}let V=Z.state.doc.resolve(Q),Y=V.sharedDepth(J);Q=V.before(Y+1),J=Z.state.doc.resolve(J).after(Y+1);let G=Z.state.selection,K=dV(Z,Q,J),W=Z.state.doc,U=W.slice(K.from,K.to),H,F;if(Z.input.lastKeyCode===8&&Date.now()-100Date.now()-225||k9)&&X.some((b)=>b.nodeType==1&&!nV.test(b.nodeName))&&(!B||B.endA>=B.endB)&&Z.someProp("handleKeyDown",(b)=>b(Z,V1(13,"Enter")))){Z.input.lastIOSEnter=0;return}if(!B)if(q&&G instanceof f&&!G.empty&&G.$head.sameParent(G.$anchor)&&!Z.composing&&!(K.sel&&K.sel.anchor!=K.sel.head))B={start:G.from,endA:G.to,endB:G.to};else{if(K.sel){let b=_Q(Z,Z.state.doc,K.sel);if(b&&!b.eq(Z.state.selection)){let S=Z.state.tr.setSelection(b);if(z)S.setMeta("composition",z);Z.dispatch(S)}}return}if(Z.state.selection.fromZ.state.selection.from&&B.start<=Z.state.selection.from+2&&Z.state.selection.from>=K.from)B.start=Z.state.selection.from;else if(B.endA=Z.state.selection.to-2&&Z.state.selection.to<=K.to)B.endB+=Z.state.selection.to-B.endA,B.endA=Z.state.selection.to}if(c0&&h9<=11&&B.endB==B.start+1&&B.endA==B.start&&B.start>K.from&&K.doc.textBetween(B.start-K.from-1,B.start-K.from+1)=="  ")B.start--,B.endA--,B.endB--;let L=K.doc.resolveNoCache(B.start-K.from),P=K.doc.resolveNoCache(B.endB-K.from),_=W.resolve(B.start),A=L.sameParent(P)&&L.parent.inlineContent&&_.end()>=B.endA;if((g1&&Z.input.lastIOSEnter>Date.now()-225&&(!A||X.some((b)=>b.nodeName=="DIV"||b.nodeName=="P"))||!A&&L.posb(Z,V1(13,"Enter")))){Z.input.lastIOSEnter=0;return}if(Z.state.selection.anchor>B.start&&rV(W,B.start,B.endA,L,P)&&Z.someProp("handleKeyDown",(b)=>b(Z,V1(8,"Backspace")))){if(k9&&b0)Z.domObserver.suppressSelectionUpdates();return}if(b0&&B.endB==B.start)Z.input.lastChromeDelete=Date.now();if(k9&&!A&&L.start()!=P.start()&&P.parentOffset==0&&L.depth==P.depth&&K.sel&&K.sel.anchor==K.sel.head&&K.sel.head==B.endA)B.endB-=2,P=K.doc.resolveNoCache(B.endB-K.from),setTimeout(()=>{Z.someProp("handleKeyDown",function(b){return b(Z,V1(13,"Enter"))})},20);let{start:k,endA:N}=B,$=(b)=>{let S=b||Z.state.tr.replace(k,N,K.doc.slice(B.start-K.from,B.endB-K.from));if(K.sel){let m=_Q(Z,S.doc,K.sel);if(m&&!(b0&&Z.composing&&m.empty&&(B.start!=B.endB||Z.input.lastChromeDeletey9(Z),20);let b=$(Z.state.tr.delete(k,N)),S=W.resolve(B.start).marksAcross(W.resolve(B.endA));if(S)b.ensureMarks(S);Z.dispatch(b)}else if(B.endA==B.endB&&(x=aV(L.parent.content.cut(L.parentOffset,P.parentOffset),_.parent.content.cut(_.parentOffset,B.endA-_.start())))){let b=$(Z.state.tr);if(x.type=="add")b.addMark(k,N,x.mark);else b.removeMark(k,N,x.mark);Z.dispatch(b)}else if(L.parent.child(L.index()).isText&&L.index()==P.index()-(P.textOffset?0:1)){let b=L.parent.textBetween(L.parentOffset,P.parentOffset),S=()=>$(Z.state.tr.insertText(b,k,N));if(!Z.someProp("handleTextInput",(m)=>m(Z,k,N,b,S)))Z.dispatch(S())}else Z.dispatch($());else Z.dispatch($())}function _Q(Z,Q,J){if(Math.max(J.anchor,J.head)>Q.content.size)return null;return G4(Z,Q.resolve(J.anchor),Q.resolve(J.head))}function aV(Z,Q){let J=Z.firstChild.marks,q=Q.firstChild.marks,X=J,z=q,V,Y,G;for(let W=0;WW.mark(Y.addToSet(W.marks));else if(X.length==0&&z.length==1)Y=z[0],V="remove",G=(W)=>W.mark(Y.removeFromSet(W.marks));else return null;let K=[];for(let W=0;WJ||n5(V,!0,!1)0&&(Q||Z.indexAfter(q)==Z.node(q).childCount))q--,X++,Q=!1;if(J){let z=Z.node(q).maybeChild(Z.indexAfter(q));while(z&&!z.isLeaf)z=z.firstChild,X++}return X}function oV(Z,Q,J,q,X){let z=Z.findDiffStart(Q,J);if(z==null)return null;let{a:V,b:Y}=Z.findDiffEnd(Q,J+Z.size,J+Q.size);if(X=="end"){let G=Math.max(0,z-Math.min(V,Y));q-=V+G-z}if(V=V?z-q:0;if(z-=G,z&&z=Y?z-q:0;if(z-=G,z&&z=56320&&Q<=57343&&J>=55296&&J<=56319}class GZ{constructor(Z,Q){if(this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new aQ,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=Q,this.state=Q.state,this.directPlugins=Q.plugins||[],this.directPlugins.forEach(OQ),this.dispatch=this.dispatch.bind(this),this.dom=Z&&Z.mount||document.createElement("div"),Z){if(Z.appendChild)Z.appendChild(this.dom);else if(typeof Z=="function")Z(this.dom);else if(Z.mount)this.mounted=!0}this.editable=MQ(this),DQ(this),this.nodeViews=AQ(this),this.docView=e7(this.state.doc,IQ(this),i5(this),this.dom,this),this.domObserver=new Y3(this,(J,q,X,z)=>sV(this,J,q,X,z)),this.domObserver.start(),_V(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let Z=this._props;this._props={};for(let Q in Z)this._props[Q]=Z[Q];this._props.state=this.state}return this._props}update(Z){if(Z.handleDOMEvents!=this._props.handleDOMEvents)q4(this);let Q=this._props;if(this._props=Z,Z.plugins)Z.plugins.forEach(OQ),this.directPlugins=Z.plugins;this.updateStateInner(Z.state,Q)}setProps(Z){let Q={};for(let J in this._props)Q[J]=this._props[J];Q.state=this.state;for(let J in Z)Q[J]=Z[J];this.update(Q)}updateState(Z){this.updateStateInner(Z,this._props)}updateStateInner(Z,Q){var J;let q=this.state,X=!1,z=!1;if(Z.storedMarks&&this.composing)Z3(this),z=!0;this.state=Z;let V=q.plugins!=Z.plugins||this._props.plugins!=Q.plugins;if(V||this._props.plugins!=Q.plugins||this._props.nodeViews!=Q.nodeViews){let H=AQ(this);if(eV(H,this.nodeViews))this.nodeViews=H,X=!0}if(V||Q.handleDOMEvents!=this._props.handleDOMEvents)q4(this);this.editable=MQ(this),DQ(this);let Y=i5(this),G=IQ(this),K=q.plugins!=Z.plugins&&!q.doc.eq(Z.doc)?"reset":Z.scrollToSelection>q.scrollToSelection?"to selection":"preserve",W=X||!this.docView.matchesNode(Z.doc,G,Y);if(W||!Z.selection.eq(q.selection))z=!0;let U=K=="preserve"&&z&&this.dom.style.overflowAnchor==null&&v2(this);if(z){this.domObserver.stop();let H=W&&(c0||b0)&&!this.composing&&!q.selection.empty&&!Z.selection.empty&&tV(q.selection,Z.selection);if(W){let F=b0?this.trackWrites=this.domSelectionRange().focusNode:null;if(this.composing)this.input.compositionNode=bV(this);if(X||!this.docView.update(Z.doc,G,Y,this))this.docView.updateOuterDeco(G),this.docView.destroy(),this.docView=e7(Z.doc,G,Y,this.dom,this);if(F&&(!this.trackWrites||!this.dom.contains(this.trackWrites)))H=!0}if(H||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&JV(this)))y9(this,H);else hQ(this,Z.selection),this.domObserver.setCurSelection();this.domObserver.start()}if(this.updatePluginViews(q),((J=this.dragging)===null||J===void 0?void 0:J.node)&&!q.doc.eq(Z.doc))this.updateDraggedNode(this.dragging,q);if(K=="reset")this.dom.scrollTop=0;else if(K=="to selection")this.scrollToSelection();else if(U)w2(U)}scrollToSelection(){let Z=this.domSelectionRange().focusNode;if(!Z||!this.dom.contains(Z.nodeType==1?Z:Z.parentNode));else if(this.someProp("handleScrollToSelection",(Q)=>Q(this)));else if(this.state.selection instanceof u){let Q=this.docView.domAfterPos(this.state.selection.from);if(Q.nodeType==1)n7(this,Q.getBoundingClientRect(),Z)}else n7(this,this.coordsAtPos(this.state.selection.head,1),Z)}destroyPluginViews(){let Z;while(Z=this.pluginViews.pop())if(Z.destroy)Z.destroy()}updatePluginViews(Z){if(!Z||Z.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let Q=0;Q0&&XQ.ownerDocument.getSelection();return this._root=Q}}return Z||document}updateRoot(){this._root=null}posAtCoords(Z){return c2(this,Z)}coordsAtPos(Z,Q=1){return EQ(this,Z,Q)}domAtPos(Z,Q=0){return this.docView.domFromPos(Z,Q)}nodeDOM(Z){let Q=this.docView.descAt(Z);return Q?Q.nodeDOM:null}posAtDOM(Z,Q,J=-1){let q=this.docView.posFromDOM(Z,Q,J);if(q==null)throw RangeError("DOM position not inside the editor");return q}endOfTextblock(Z,Q){return n2(this,Q||this.state,Z)}pasteHTML(Z,Q){return P8(this,"",Z,!1,Q||new ClipboardEvent("paste"))}pasteText(Z,Q){return P8(this,Z,null,!0,Q||new ClipboardEvent("paste"))}serializeForClipboard(Z){return K4(this,Z)}destroy(){if(!this.docView)return;if(jV(this),this.destroyPluginViews(),this.mounted)this.docView.update(this.state.doc,[],i5(this),this),this.dom.textContent="";else if(this.dom.parentNode)this.dom.parentNode.removeChild(this.dom);this.docView.destroy(),this.docView=null,k2()}get isDestroyed(){return this.docView==null}dispatchEvent(Z){return DV(this,Z)}domSelectionRange(){let Z=this.domSelection();if(!Z)return{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0};return w0&&this.root.nodeType===11&&b2(this.dom.ownerDocument)==this.dom&&cV(this,Z)||Z}domSelection(){return this.root.getSelection()}}GZ.prototype.dispatch=function(Z){let Q=this._props.dispatchTransaction;if(Q)Q.call(this,Z);else this.updateState(this.state.apply(Z))};function IQ(Z){let Q=Object.create(null);if(Q.class="ProseMirror",Q.contenteditable=String(Z.editable),Z.someProp("attributes",(J)=>{if(typeof J=="function")J=J(Z.state);if(J){for(let q in J)if(q=="class")Q.class+=" "+J[q];else if(q=="style")Q.style=(Q.style?Q.style+";":"")+J[q];else if(!Q[q]&&q!="contenteditable"&&q!="nodeName")Q[q]=String(J[q])}}),!Q.translate)Q.translate="no";return[I0.node(0,Z.state.doc.content.size,Q)]}function DQ(Z){if(Z.markCursor){let Q=document.createElement("img");Q.className="ProseMirror-separator",Q.setAttribute("mark-placeholder","true"),Q.setAttribute("alt",""),Z.cursorWrapper={dom:Q,deco:I0.widget(Z.state.selection.from,Q,{raw:!0,marks:Z.markCursor})}}else Z.cursorWrapper=null}function MQ(Z){return!Z.someProp("editable",(Q)=>Q(Z.state)===!1)}function tV(Z,Q){let J=Math.min(Z.$anchor.sharedDepth(Z.head),Q.$anchor.sharedDepth(Q.head));return Z.$anchor.start(J)!=Q.$anchor.start(J)}function AQ(Z){let Q=Object.create(null);function J(q){for(let X in q)if(!Object.prototype.hasOwnProperty.call(Q,X))Q[X]=q[X]}return Z.someProp("nodeViews",J),Z.someProp("markViews",J),Q}function eV(Z,Q){let J=0,q=0;for(let X in Z){if(Z[X]!=Q[X])return!0;J++}for(let X in Q)q++;return J!=q}function OQ(Z){if(Z.spec.state||Z.spec.filterTransaction||Z.spec.appendTransaction)throw RangeError("Plugins passed directly to the view must not have a state component")}var $9={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},KZ={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},ZY=typeof navigator<"u"&&/Mac/.test(navigator.platform),QY=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(H0=0;H0<10;H0++)$9[48+H0]=$9[96+H0]=String(H0);var H0;for(H0=1;H0<=24;H0++)$9[H0+111]="F"+H0;var H0;for(H0=65;H0<=90;H0++)$9[H0]=String.fromCharCode(H0+32),KZ[H0]=String.fromCharCode(H0);var H0;for(D8 in $9)if(!KZ.hasOwnProperty(D8))KZ[D8]=$9[D8];var D8;function G3(Z){var Q=ZY&&Z.metaKey&&Z.shiftKey&&!Z.ctrlKey&&!Z.altKey||QY&&Z.shiftKey&&Z.key&&Z.key.length==1||Z.key=="Unidentified",J=!Q&&Z.key||(Z.shiftKey?KZ:$9)[Z.keyCode]||Z.key||"Unidentified";if(J=="Esc")J="Escape";if(J=="Del")J="Delete";if(J=="Left")J="ArrowLeft";if(J=="Up")J="ArrowUp";if(J=="Right")J="ArrowRight";if(J=="Down")J="ArrowDown";return J}var JY=typeof navigator<"u"&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),qY=typeof navigator<"u"&&/Win/.test(navigator.platform);function XY(Z){let Q=Z.split(/-(?!$)/),J=Q[Q.length-1];if(J=="Space")J=" ";let q,X,z,V;for(let Y=0;Y{if(Z.selection.empty)return!1;if(Q)Q(Z.tr.deleteSelection().scrollIntoView());return!0};function U3(Z,Q){let{$cursor:J}=Z.selection;if(!J||(Q?!Q.endOfTextblock("backward",Z):J.parentOffset>0))return null;return J}var j4=(Z,Q,J)=>{let q=U3(Z,J);if(!q)return!1;let X=D4(q);if(!X){let V=q.blockRange(),Y=V&&A9(V);if(Y==null)return!1;if(Q)Q(Z.tr.lift(V,Y).scrollIntoView());return!0}let z=X.nodeBefore;if(D3(Z,X,Q,-1))return!0;if(q.parent.content.size==0&&(m1(z,"end")||u.isSelectable(z)))for(let V=q.depth;;V--){let Y=W8(Z.doc,q.before(V),q.after(V),R.empty);if(Y&&Y.slice.size1)break}if(z.isAtom&&X.depth==q.depth-1){if(Q)Q(Z.tr.delete(X.pos-z.nodeSize,X.pos).scrollIntoView());return!0}return!1},H3=(Z,Q,J)=>{let q=U3(Z,J);if(!q)return!1;let X=D4(q);return X?B3(Z,X,Q):!1},F3=(Z,Q,J)=>{let q=L3(Z,J);if(!q)return!1;let X=O4(q);return X?B3(Z,X,Q):!1};function B3(Z,Q,J){let q=Q.nodeBefore,X=q,z=Q.pos-1;for(;!X.isTextblock;z--){if(X.type.spec.isolating)return!1;let W=X.lastChild;if(!W)return!1;X=W}let V=Q.nodeAfter,Y=V,G=Q.pos+1;for(;!Y.isTextblock;G++){if(Y.type.spec.isolating)return!1;let W=Y.firstChild;if(!W)return!1;Y=W}let K=W8(Z.doc,z,G,R.empty);if(!K||K.from!=z||K instanceof j0&&K.slice.size>=G-z)return!1;if(J){let W=Z.tr.step(K);W.setSelection(f.create(W.doc,z)),J(W.scrollIntoView())}return!0}function m1(Z,Q,J=!1){for(let q=Z;q;q=Q=="start"?q.firstChild:q.lastChild){if(q.isTextblock)return!0;if(J&&q.childCount!=1)return!1}return!1}var I4=(Z,Q,J)=>{let{$head:q,empty:X}=Z.selection,z=q;if(!X)return!1;if(q.parent.isTextblock){if(J?!J.endOfTextblock("backward",Z):q.parentOffset>0)return!1;z=D4(q)}let V=z&&z.nodeBefore;if(!V||!u.isSelectable(V))return!1;if(Q)Q(Z.tr.setSelection(u.create(Z.doc,z.pos-V.nodeSize)).scrollIntoView());return!0};function D4(Z){if(!Z.parent.type.spec.isolating)for(let Q=Z.depth-1;Q>=0;Q--){if(Z.index(Q)>0)return Z.doc.resolve(Z.before(Q+1));if(Z.node(Q).type.spec.isolating)break}return null}function L3(Z,Q){let{$cursor:J}=Z.selection;if(!J||(Q?!Q.endOfTextblock("forward",Z):J.parentOffset{let q=L3(Z,J);if(!q)return!1;let X=O4(q);if(!X)return!1;let z=X.nodeAfter;if(D3(Z,X,Q,1))return!0;if(q.parent.content.size==0&&(m1(z,"start")||u.isSelectable(z))){let V=W8(Z.doc,q.before(),q.after(),R.empty);if(V&&V.slice.size{let{$head:q,empty:X}=Z.selection,z=q;if(!X)return!1;if(q.parent.isTextblock){if(J?!J.endOfTextblock("forward",Z):q.parentOffset=0;Q--){let J=Z.node(Q);if(Z.index(Q)+1{let J=Z.selection,q=J instanceof u,X;if(q){if(J.node.isTextblock||!V9(Z.doc,J.from))return!1;X=J.from}else if(X=E1(Z.doc,J.from,-1),X==null)return!1;if(Q){let z=Z.tr.join(X);if(q)z.setSelection(u.create(z.doc,X-Z.doc.resolve(X).nodeBefore.nodeSize));Q(z.scrollIntoView())}return!0},_3=(Z,Q)=>{let J=Z.selection,q;if(J instanceof u){if(J.node.isTextblock||!V9(Z.doc,J.to))return!1;q=J.to}else if(q=E1(Z.doc,J.to,1),q==null)return!1;if(Q)Q(Z.tr.join(q).scrollIntoView());return!0},j3=(Z,Q)=>{let{$from:J,$to:q}=Z.selection,X=J.blockRange(q),z=X&&A9(X);if(z==null)return!1;if(Q)Q(Z.tr.lift(X,z).scrollIntoView());return!0},C4=(Z,Q)=>{let{$head:J,$anchor:q}=Z.selection;if(!J.parent.type.spec.code||!J.sameParent(q))return!1;if(Q)Q(Z.tr.insertText(` +`).scrollIntoView());return!0};function k4(Z){for(let Q=0;Q{let{$head:J,$anchor:q}=Z.selection;if(!J.parent.type.spec.code||!J.sameParent(q))return!1;let X=J.node(-1),z=J.indexAfter(-1),V=k4(X.contentMatchAt(z));if(!V||!X.canReplaceWith(z,z,V))return!1;if(Q){let Y=J.after(),G=Z.tr.replaceWith(Y,Y,V.createAndFill());G.setSelection(h.near(G.doc.resolve(Y),1)),Q(G.scrollIntoView())}return!0},$4=(Z,Q)=>{let J=Z.selection,{$from:q,$to:X}=J;if(J instanceof N0||q.parent.inlineContent||X.parent.inlineContent)return!1;let z=k4(X.parent.contentMatchAt(X.indexAfter()));if(!z||!z.isTextblock)return!1;if(Q){let V=(!q.parentOffset&&X.index(){let{$cursor:J}=Z.selection;if(!J||J.parent.content.size)return!1;if(J.depth>1&&J.after()!=J.end(-1)){let z=J.before();if(a0(Z.doc,z)){if(Q)Q(Z.tr.split(z).scrollIntoView());return!0}}let q=J.blockRange(),X=q&&A9(q);if(X==null)return!1;if(Q)Q(Z.tr.lift(q,X).scrollIntoView());return!0};function VY(Z){return(Q,J)=>{let{$from:q,$to:X}=Q.selection;if(Q.selection instanceof u&&Q.selection.node.isBlock){if(!q.parentOffset||!a0(Q.doc,q.pos))return!1;if(J)J(Q.tr.split(q.pos).scrollIntoView());return!0}if(!q.depth)return!1;let z=[],V,Y,G=!1,K=!1;for(let F=q.depth;;F--)if(q.node(F).isBlock){G=q.end(F)==q.pos+(q.depth-F),K=q.start(F)==q.pos-(q.depth-F),Y=k4(q.node(F-1).contentMatchAt(q.indexAfter(F-1)));let L=Z&&Z(X.parent,G,q);z.unshift(L||(G&&Y?{type:Y}:null)),V=F;break}else{if(F==1)return!1;z.unshift(null)}let W=Q.tr;if(Q.selection instanceof f||Q.selection instanceof N0)W.deleteSelection();let U=W.mapping.map(q.pos),H=a0(W.doc,U,z.length,z);if(!H)z[0]=Y?{type:Y}:null,H=a0(W.doc,U,z.length,z);if(!H)return!1;if(W.split(U,z.length,z),!G&&K&&q.node(V).type!=Y){let F=W.mapping.map(q.before(V)),B=W.doc.resolve(F);if(Y&&q.node(V-1).canReplaceWith(B.index(),B.index()+1,Y))W.setNodeMarkup(W.mapping.map(q.before(V)),Y)}if(J)J(W.scrollIntoView());return!0}}var YY=VY();var I3=(Z,Q)=>{let{$from:J,to:q}=Z.selection,X,z=J.sharedDepth(q);if(z==0)return!1;if(X=J.before(z),Q)Q(Z.tr.setSelection(u.create(Z.doc,X)));return!0},GY=(Z,Q)=>{if(Q)Q(Z.tr.setSelection(new N0(Z.doc)));return!0};function KY(Z,Q,J){let{nodeBefore:q,nodeAfter:X}=Q,z=Q.index();if(!q||!X||!q.type.compatibleContent(X.type))return!1;if(!q.content.size&&Q.parent.canReplace(z-1,z)){if(J)J(Z.tr.delete(Q.pos-q.nodeSize,Q.pos).scrollIntoView());return!0}if(!Q.parent.canReplace(z,z+1)||!(X.isTextblock||V9(Z.doc,Q.pos)))return!1;if(J)J(Z.tr.join(Q.pos).scrollIntoView());return!0}function D3(Z,Q,J,q){let{nodeBefore:X,nodeAfter:z}=Q,V,Y,G=X.type.spec.isolating||z.type.spec.isolating;if(!G&&KY(Z,Q,J))return!0;let K=!G&&Q.parent.canReplace(Q.index(),Q.index()+1);if(K&&(V=(Y=X.contentMatchAt(X.childCount)).findWrapping(z.type))&&Y.matchType(V[0]||z.type).validEnd){if(J){let F=Q.pos+z.nodeSize,B=D.empty;for(let _=V.length-1;_>=0;_--)B=D.from(V[_].create(null,B));B=D.from(X.copy(B));let L=Z.tr.step(new F0(Q.pos-1,F,Q.pos,F,new R(B,1,0),V.length,!0)),P=L.doc.resolve(F+2*V.length);if(P.nodeAfter&&P.nodeAfter.type==X.type&&V9(L.doc,P.pos))L.join(P.pos);J(L.scrollIntoView())}return!0}let W=z.type.spec.isolating||q>0&&G?null:h.findFrom(Q,1),U=W&&W.$from.blockRange(W.$to),H=U&&A9(U);if(H!=null&&H>=Q.depth){if(J)J(Z.tr.lift(U,H).scrollIntoView());return!0}if(K&&m1(z,"start",!0)&&m1(X,"end")){let F=X,B=[];for(;;){if(B.push(F),F.isTextblock)break;F=F.lastChild}let L=z,P=1;for(;!L.isTextblock;L=L.firstChild)P++;if(F.canReplace(F.childCount,F.childCount,L.content)){if(J){let _=D.empty;for(let k=B.length-1;k>=0;k--)_=D.from(B[k].copy(_));let A=Z.tr.step(new F0(Q.pos-B.length,Q.pos+z.nodeSize,Q.pos+P,Q.pos+z.nodeSize-P,new R(_,B.length,0),0,!0));J(A.scrollIntoView())}return!0}}return!1}function M3(Z){return function(Q,J){let q=Q.selection,X=Z<0?q.$from:q.$to,z=X.depth;while(X.node(z).isInline){if(!z)return!1;z--}if(!X.node(z).isTextblock)return!1;if(J)J(Q.tr.setSelection(f.create(Q.doc,Z<0?X.start(z):X.end(z))));return!0}}var R4=M3(-1),b4=M3(1);function A3(Z,Q=null){return function(J,q){let{$from:X,$to:z}=J.selection,V=X.blockRange(z),Y=V&&b1(V,Z,Q);if(!Y)return!1;if(q)q(J.tr.wrap(V,Y).scrollIntoView());return!0}}function E4(Z,Q=null){return function(J,q){let X=!1;for(let z=0;z{if(X)return!1;if(!G.isTextblock||G.hasMarkup(Z,Q))return;if(G.type==Z)X=!0;else{let W=J.doc.resolve(K),U=W.index();X=W.parent.canReplaceWith(U,U+1,Z)}})}if(!X)return!1;if(q){let z=J.tr;for(let V=0;V=2&&Q.$from.node(Q.depth-1).type.compatibleContent(J)&&Q.startIndex==0){if(Q.$from.index(Q.depth-1)==0)return!1;let G=V.resolve(Q.start-2);if(z=new y1(G,G,Q.depth),Q.endIndex=0;W--)z=D.from(J[W].type.create(J[W].attrs,z));Z.step(new F0(Q.start-(q?2:0),Q.end,Q.start,Q.end,new R(z,0,0),J.length,!0));let V=0;for(let W=0;WV.childCount>0&&V.firstChild.type==Z);if(!z)return!1;if(!J)return!0;if(q.node(z.depth-1).type==Z)return FY(Q,J,Z,z);else return BY(Q,J,z)}}function FY(Z,Q,J,q){let X=Z.tr,z=q.end,V=q.$to.end(q.depth);if(zL;B--)F-=X.child(B).nodeSize,q.delete(F-1,F+1);let z=q.doc.resolve(J.start),V=z.nodeAfter;if(q.mapping.map(J.end)!=J.start+z.nodeAfter.nodeSize)return!1;let Y=J.startIndex==0,G=J.endIndex==X.childCount,K=z.node(-1),W=z.index(-1);if(!K.canReplace(W+(Y?0:1),W+1,V.content.append(G?D.empty:D.from(X))))return!1;let U=z.pos,H=U+V.nodeSize;return q.step(new F0(U-(Y?1:0),H+(G?1:0),U+1,H-1,new R((Y?D.empty:D.from(X.copy(D.empty))).append(G?D.empty:D.from(X.copy(D.empty))),Y?0:1,G?0:1),Y?0:1)),Q(q.scrollIntoView()),!0}function k3(Z){return function(Q,J){let{$from:q,$to:X}=Q.selection,z=q.blockRange(X,(K)=>K.childCount>0&&K.firstChild.type==Z);if(!z)return!1;let V=z.startIndex;if(V==0)return!1;let Y=z.parent,G=Y.child(V-1);if(G.type!=Z)return!1;if(J){let K=G.lastChild&&G.lastChild.type==Y.type,W=D.from(K?Z.create():null),U=new R(D.from(Z.create(null,D.from(Y.type.create(null,W)))),K?3:1,0),H=z.start,F=z.end;J(Q.tr.step(new F0(H-(K?3:1),F,H,F,U,1,!0)).scrollIntoView())}return!0}}function jZ(Z){let{state:Q,transaction:J}=Z,{selection:q}=J,{doc:X}=J,{storedMarks:z}=J;return{...Q,apply:Q.apply.bind(Q),applyTransaction:Q.applyTransaction.bind(Q),plugins:Q.plugins,schema:Q.schema,reconfigure:Q.reconfigure.bind(Q),toJSON:Q.toJSON.bind(Q),get storedMarks(){return z},get selection(){return q},get doc(){return X},get tr(){return q=J.selection,X=J.doc,z=J.storedMarks,J}}}class C8{constructor(Z){this.editor=Z.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=Z.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:Z,editor:Q,state:J}=this,{view:q}=Q,{tr:X}=J,z=this.buildProps(X);return Object.fromEntries(Object.entries(Z).map(([V,Y])=>{return[V,(...K)=>{let W=Y(...K)(z);if(!X.getMeta("preventDispatch")&&!this.hasCustomState)q.dispatch(X);return W}]}))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(Z,Q=!0){let{rawCommands:J,editor:q,state:X}=this,{view:z}=q,V=[],Y=!!Z,G=Z||X.tr,K=()=>{if(!Y&&Q&&!G.getMeta("preventDispatch")&&!this.hasCustomState)z.dispatch(G);return V.every((U)=>U===!0)},W={...Object.fromEntries(Object.entries(J).map(([U,H])=>{return[U,(...B)=>{let L=this.buildProps(G,Q),P=H(...B)(L);return V.push(P),W}]})),run:K};return W}createCan(Z){let{rawCommands:Q,state:J}=this,q=!1,X=Z||J.tr,z=this.buildProps(X,!1);return{...Object.fromEntries(Object.entries(Q).map(([Y,G])=>{return[Y,(...K)=>G(...K)({...z,dispatch:void 0})]})),chain:()=>this.createChain(X,!1)}}buildProps(Z,Q=!0){let{rawCommands:J,editor:q,state:X}=this,{view:z}=q,V={tr:Z,editor:q,view:z,state:jZ({state:X,transaction:Z}),dispatch:Q?()=>{return}:void 0,chain:()=>this.createChain(Z,Q),can:()=>this.createCan(Z),get commands(){return Object.fromEntries(Object.entries(J).map(([Y,G])=>{return[Y,(...K)=>G(...K)(V)]}))}};return V}}class S3{constructor(){this.callbacks={}}on(Z,Q){if(!this.callbacks[Z])this.callbacks[Z]=[];return this.callbacks[Z].push(Q),this}emit(Z,...Q){let J=this.callbacks[Z];if(J)J.forEach((q)=>q.apply(this,Q));return this}off(Z,Q){let J=this.callbacks[Z];if(J)if(Q)this.callbacks[Z]=J.filter((q)=>q!==Q);else delete this.callbacks[Z];return this}once(Z,Q){let J=(...q)=>{this.off(Z,J),Q.apply(this,q)};return this.on(Z,J)}removeAllListeners(){this.callbacks={}}}function w(Z,Q,J){if(Z.config[Q]===void 0&&Z.parent)return w(Z.parent,Q,J);if(typeof Z.config[Q]==="function")return Z.config[Q].bind({...J,parent:Z.parent?w(Z.parent,Q,J):null});return Z.config[Q]}function IZ(Z){let Q=Z.filter((X)=>X.type==="extension"),J=Z.filter((X)=>X.type==="node"),q=Z.filter((X)=>X.type==="mark");return{baseExtensions:Q,nodeExtensions:J,markExtensions:q}}function v3(Z){let Q=[],{nodeExtensions:J,markExtensions:q}=IZ(Z),X=[...J,...q],z={default:null,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return Z.forEach((V)=>{let Y={name:V.name,options:V.options,storage:V.storage,extensions:X},G=w(V,"addGlobalAttributes",Y);if(!G)return;G().forEach((W)=>{W.types.forEach((U)=>{Object.entries(W.attributes).forEach(([H,F])=>{Q.push({type:U,name:H,attribute:{...z,...F}})})})})}),X.forEach((V)=>{let Y={name:V.name,options:V.options,storage:V.storage},G=w(V,"addAttributes",Y);if(!G)return;let K=G();Object.entries(K).forEach(([W,U])=>{let H={...z,...U};if(typeof(H===null||H===void 0?void 0:H.default)==="function")H.default=H.default();if((H===null||H===void 0?void 0:H.isRequired)&&(H===null||H===void 0?void 0:H.default)===void 0)delete H.default;Q.push({type:V.name,name:W,attribute:H})})}),Q}function k0(Z,Q){if(typeof Z==="string"){if(!Q.nodes[Z])throw Error(`There is no node type named '${Z}'. Maybe you forgot to add the extension?`);return Q.nodes[Z]}return Z}function i(...Z){return Z.filter((Q)=>!!Q).reduce((Q,J)=>{let q={...Q};return Object.entries(J).forEach(([X,z])=>{if(!q[X]){q[X]=z;return}if(X==="class"){let Y=z?String(z).split(" "):[],G=q[X]?q[X].split(" "):[],K=Y.filter((W)=>!G.includes(W));q[X]=[...G,...K].join(" ")}else if(X==="style"){let Y=z?z.split(";").map((W)=>W.trim()).filter(Boolean):[],G=q[X]?q[X].split(";").map((W)=>W.trim()).filter(Boolean):[],K=new Map;G.forEach((W)=>{let[U,H]=W.split(":").map((F)=>F.trim());K.set(U,H)}),Y.forEach((W)=>{let[U,H]=W.split(":").map((F)=>F.trim());K.set(U,H)}),q[X]=Array.from(K.entries()).map(([W,U])=>`${W}: ${U}`).join("; ")}else q[X]=z}),q},{})}function w4(Z,Q){return Q.filter((J)=>J.type===Z.type.name).filter((J)=>J.attribute.rendered).map((J)=>{if(!J.attribute.renderHTML)return{[J.name]:Z.attrs[J.name]};return J.attribute.renderHTML(Z.attrs)||{}}).reduce((J,q)=>i(J,q),{})}function w3(Z){return typeof Z==="function"}function s(Z,Q=void 0,...J){if(w3(Z)){if(Q)return Z.bind(Q)(...J);return Z(...J)}return Z}function LY(Z={}){return Object.keys(Z).length===0&&Z.constructor===Object}function PY(Z){if(typeof Z!=="string")return Z;if(Z.match(/^[+-]?(?:\d*\.)?\d+$/))return Number(Z);if(Z==="true")return!0;if(Z==="false")return!1;return Z}function y3(Z,Q){if("style"in Z)return Z;return{...Z,getAttrs:(J)=>{let q=Z.getAttrs?Z.getAttrs(J):Z.attrs;if(q===!1)return!1;let X=Q.reduce((z,V)=>{let Y=V.attribute.parseHTML?V.attribute.parseHTML(J):PY(J.getAttribute(V.name));if(Y===null||Y===void 0)return z;return{...z,[V.name]:Y}},{});return{...q,...X}}}}function $3(Z){return Object.fromEntries(Object.entries(Z).filter(([Q,J])=>{if(Q==="attrs"&&LY(J))return!1;return J!==null&&J!==void 0}))}function _Y(Z,Q){var J;let q=v3(Z),{nodeExtensions:X,markExtensions:z}=IZ(Z),V=(J=X.find((K)=>w(K,"topNode")))===null||J===void 0?void 0:J.name,Y=Object.fromEntries(X.map((K)=>{let W=q.filter((_)=>_.type===K.name),U={name:K.name,options:K.options,storage:K.storage,editor:Q},H=Z.reduce((_,A)=>{let k=w(A,"extendNodeSchema",U);return{..._,...k?k(K):{}}},{}),F=$3({...H,content:s(w(K,"content",U)),marks:s(w(K,"marks",U)),group:s(w(K,"group",U)),inline:s(w(K,"inline",U)),atom:s(w(K,"atom",U)),selectable:s(w(K,"selectable",U)),draggable:s(w(K,"draggable",U)),code:s(w(K,"code",U)),whitespace:s(w(K,"whitespace",U)),linebreakReplacement:s(w(K,"linebreakReplacement",U)),defining:s(w(K,"defining",U)),isolating:s(w(K,"isolating",U)),attrs:Object.fromEntries(W.map((_)=>{var A;return[_.name,{default:(A=_===null||_===void 0?void 0:_.attribute)===null||A===void 0?void 0:A.default}]}))}),B=s(w(K,"parseHTML",U));if(B)F.parseDOM=B.map((_)=>y3(_,W));let L=w(K,"renderHTML",U);if(L)F.toDOM=(_)=>L({node:_,HTMLAttributes:w4(_,W)});let P=w(K,"renderText",U);if(P)F.toText=P;return[K.name,F]})),G=Object.fromEntries(z.map((K)=>{let W=q.filter((P)=>P.type===K.name),U={name:K.name,options:K.options,storage:K.storage,editor:Q},H=Z.reduce((P,_)=>{let A=w(_,"extendMarkSchema",U);return{...P,...A?A(K):{}}},{}),F=$3({...H,inclusive:s(w(K,"inclusive",U)),excludes:s(w(K,"excludes",U)),group:s(w(K,"group",U)),spanning:s(w(K,"spanning",U)),code:s(w(K,"code",U)),attrs:Object.fromEntries(W.map((P)=>{var _;return[P.name,{default:(_=P===null||P===void 0?void 0:P.attribute)===null||_===void 0?void 0:_.default}]}))}),B=s(w(K,"parseHTML",U));if(B)F.parseDOM=B.map((P)=>y3(P,W));let L=w(K,"renderHTML",U);if(L)F.toDOM=(P)=>L({mark:P,HTMLAttributes:w4(P,W)});return[K.name,F]}));return new n8({topNode:V,nodes:Y,marks:G})}function x4(Z,Q){return Q.nodes[Z]||Q.marks[Z]||null}function N3(Z,Q){if(Array.isArray(Q))return Q.some((J)=>{return(typeof J==="string"?J:J.name)===Z.name});return Q}function g4(Z,Q){let J=W9.fromSchema(Q).serializeFragment(Z),X=document.implementation.createHTMLDocument().createElement("div");return X.appendChild(J),X.innerHTML}var jY=(Z,Q=500)=>{let J="",q=Z.parentOffset;return Z.parent.nodesBetween(Math.max(0,q-Q),q,(X,z,V,Y)=>{var G,K;let W=((K=(G=X.type.spec).toText)===null||K===void 0?void 0:K.call(G,{node:X,pos:z,parent:V,index:Y}))||X.textContent||"%leaf%";J+=X.isAtom&&!X.isText?W:W.slice(0,Math.max(0,q-z))}),J};function h4(Z){return Object.prototype.toString.call(Z)==="[object RegExp]"}class k8{constructor(Z){this.find=Z.find,this.handler=Z.handler}}var IY=(Z,Q)=>{if(h4(Q))return Q.exec(Z);let J=Q(Z);if(!J)return null;let q=[J.text];if(q.index=J.index,q.input=Z,q.data=J.data,J.replaceWith){if(!J.text.includes(J.replaceWith))console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".');q.push(J.replaceWith)}return q};function UZ(Z){var Q;let{editor:J,from:q,to:X,text:z,rules:V,plugin:Y}=Z,{view:G}=J;if(G.composing)return!1;let K=G.state.doc.resolve(q);if(K.parent.type.spec.code||!!((Q=K.nodeBefore||K.nodeAfter)===null||Q===void 0?void 0:Q.marks.find((H)=>H.type.spec.code)))return!1;let W=!1,U=jY(K)+z;return V.forEach((H)=>{if(W)return;let F=IY(U,H.find);if(!F)return;let B=G.state.tr,L=jZ({state:G.state,transaction:B}),P={from:q-(F[0].length-z.length),to:X},{commands:_,chain:A,can:k}=new C8({editor:J,state:L});if(H.handler({state:L,range:P,match:F,commands:_,chain:A,can:k})===null||!B.steps.length)return;B.setMeta(Y,{transform:B,from:q,to:X,text:z}),G.dispatch(B),W=!0}),W}function DY(Z){let{editor:Q,rules:J}=Z,q=new Z0({state:{init(){return null},apply(X,z,V){let Y=X.getMeta(q);if(Y)return Y;let G=X.getMeta("applyInputRules");if(!!G)setTimeout(()=>{let{text:W}=G;if(typeof W==="string")W=W;else W=g4(D.from(W),V.schema);let{from:U}=G,H=U+W.length;UZ({editor:Q,from:U,to:H,text:W,rules:J,plugin:q})});return X.selectionSet||X.docChanged?null:z}},props:{handleTextInput(X,z,V,Y){return UZ({editor:Q,from:z,to:V,text:Y,rules:J,plugin:q})},handleDOMEvents:{compositionend:(X)=>{return setTimeout(()=>{let{$cursor:z}=X.state.selection;if(z)UZ({editor:Q,from:z.pos,to:z.pos,text:"",rules:J,plugin:q})}),!1}},handleKeyDown(X,z){if(z.key!=="Enter")return!1;let{$cursor:V}=X.state.selection;if(V)return UZ({editor:Q,from:V.pos,to:V.pos,text:` +`,rules:J,plugin:q});return!1}},isInputRules:!0});return q}function MY(Z){return Object.prototype.toString.call(Z).slice(8,-1)}function HZ(Z){if(MY(Z)!=="Object")return!1;return Z.constructor===Object&&Object.getPrototypeOf(Z)===Object.prototype}function DZ(Z,Q){let J={...Z};if(HZ(Z)&&HZ(Q))Object.keys(Q).forEach((q)=>{if(HZ(Q[q])&&HZ(Z[q]))J[q]=DZ(Z[q],Q[q]);else J[q]=Q[q]});return J}class p0{constructor(Z={}){if(this.type="mark",this.name="mark",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...Z},this.name=this.config.name,Z.defaultOptions&&Object.keys(Z.defaultOptions).length>0)console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);if(this.options=this.config.defaultOptions,this.config.addOptions)this.options=s(w(this,"addOptions",{name:this.name}));this.storage=s(w(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(Z={}){return new p0(Z)}configure(Z={}){let Q=this.extend({...this.config,addOptions:()=>{return DZ(this.options,Z)}});return Q.name=this.name,Q.parent=this.parent,Q}extend(Z={}){let Q=new p0(Z);if(Q.parent=this,this.child=Q,Q.name=Z.name?Z.name:Q.parent.name,Z.defaultOptions&&Object.keys(Z.defaultOptions).length>0)console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${Q.name}".`);return Q.options=s(w(Q,"addOptions",{name:Q.name})),Q.storage=s(w(Q,"addStorage",{name:Q.name,options:Q.options})),Q}static handleExit({editor:Z,mark:Q}){let{tr:J}=Z.state,q=Z.state.selection.$from;if(q.pos===q.end()){let z=q.marks();if(!z.find((G)=>(G===null||G===void 0?void 0:G.type.name)===Q.name))return!1;let Y=z.find((G)=>(G===null||G===void 0?void 0:G.type.name)===Q.name);if(Y)J.removeStoredMark(Y);return J.insertText(" ",q.pos),Z.view.dispatch(J),!0}return!1}}function AY(Z){return typeof Z==="number"}class f3{constructor(Z){this.find=Z.find,this.handler=Z.handler}}var OY=(Z,Q,J)=>{if(h4(Q))return[...Z.matchAll(Q)];let q=Q(Z,J);if(!q)return[];return q.map((X)=>{let z=[X.text];if(z.index=X.index,z.input=Z,z.data=X.data,X.replaceWith){if(!X.text.includes(X.replaceWith))console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".');z.push(X.replaceWith)}return z})};function CY(Z){let{editor:Q,state:J,from:q,to:X,rule:z,pasteEvent:V,dropEvent:Y}=Z,{commands:G,chain:K,can:W}=new C8({editor:Q,state:J}),U=[];return J.doc.nodesBetween(q,X,(F,B)=>{if(!F.isTextblock||F.type.spec.code)return;let L=Math.max(q,B),P=Math.min(X,B+F.content.size),_=F.textBetween(L-B,P-B,void 0,"");OY(_,z.find,V).forEach((k)=>{if(k.index===void 0)return;let N=L+k.index+1,$=N+k[0].length,x={from:J.tr.mapping.map(N),to:J.tr.mapping.map($)},b=z.handler({state:J,range:x,match:k,commands:G,chain:K,can:W,pasteEvent:V,dropEvent:Y});U.push(b)})}),U.every((F)=>F!==null)}var FZ=null,kY=(Z)=>{var Q;let J=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(Q=J.clipboardData)===null||Q===void 0||Q.setData("text/html",Z),J};function yY(Z){let{editor:Q,rules:J}=Z,q=null,X=!1,z=!1,V=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,Y;try{Y=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{Y=null}let G=({state:W,from:U,to:H,rule:F,pasteEvt:B})=>{let L=W.tr,P=jZ({state:W,transaction:L});if(!CY({editor:Q,state:P,from:Math.max(U-1,0),to:H.b-1,rule:F,pasteEvent:B,dropEvent:Y})||!L.steps.length)return;try{Y=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{Y=null}return V=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,L};return J.map((W)=>{return new Z0({view(U){let H=(B)=>{var L;if(q=((L=U.dom.parentElement)===null||L===void 0?void 0:L.contains(B.target))?U.dom.parentElement:null,q)FZ=Q},F=()=>{if(FZ)FZ=null};return window.addEventListener("dragstart",H),window.addEventListener("dragend",F),{destroy(){window.removeEventListener("dragstart",H),window.removeEventListener("dragend",F)}}},props:{handleDOMEvents:{drop:(U,H)=>{if(z=q===U.dom.parentElement,Y=H,!z){let F=FZ;if(F===null||F===void 0?void 0:F.isEditable)setTimeout(()=>{let B=F.state.selection;if(B)F.commands.deleteRange({from:B.from,to:B.to})},10)}return!1},paste:(U,H)=>{var F;let B=(F=H.clipboardData)===null||F===void 0?void 0:F.getData("text/html");return V=H,X=!!(B===null||B===void 0?void 0:B.includes("data-pm-slice")),!1}}},appendTransaction:(U,H,F)=>{let B=U[0],L=B.getMeta("uiEvent")==="paste"&&!X,P=B.getMeta("uiEvent")==="drop"&&!z,_=B.getMeta("applyPasteRules"),A=!!_;if(!L&&!P&&!A)return;if(A){let{text:$}=_;if(typeof $==="string")$=$;else $=g4(D.from($),F.schema);let{from:x}=_,b=x+$.length,S=kY($);return G({rule:W,state:F,from:x,to:{b},pasteEvt:S})}let k=H.doc.content.findDiffStart(F.doc.content),N=H.doc.content.findDiffEnd(F.doc.content);if(!AY(k)||!N||k===N.b)return;return G({rule:W,state:F,from:k,to:N,pasteEvt:V})}})})}function $Y(Z){let Q=Z.filter((J,q)=>Z.indexOf(J)!==q);return Array.from(new Set(Q))}class c1{constructor(Z,Q){this.splittableMarks=[],this.editor=Q,this.extensions=c1.resolve(Z),this.schema=_Y(this.extensions,Q),this.setupExtensions()}static resolve(Z){let Q=c1.sort(c1.flatten(Z)),J=$Y(Q.map((q)=>q.name));if(J.length)console.warn(`[tiptap warn]: Duplicate extension names found: [${J.map((q)=>`'${q}'`).join(", ")}]. This can lead to issues.`);return Q}static flatten(Z){return Z.map((Q)=>{let J={name:Q.name,options:Q.options,storage:Q.storage},q=w(Q,"addExtensions",J);if(q)return[Q,...this.flatten(q())];return Q}).flat(10)}static sort(Z){return Z.sort((J,q)=>{let X=w(J,"priority")||100,z=w(q,"priority")||100;if(X>z)return-1;if(X{let J={name:Q.name,options:Q.options,storage:Q.storage,editor:this.editor,type:x4(Q.name,this.schema)},q=w(Q,"addCommands",J);if(!q)return Z;return{...Z,...q()}},{})}get plugins(){let{editor:Z}=this,Q=c1.sort([...this.extensions].reverse()),J=[],q=[],X=Q.map((z)=>{let V={name:z.name,options:z.options,storage:z.storage,editor:Z,type:x4(z.name,this.schema)},Y=[],G=w(z,"addKeyboardShortcuts",V),K={};if(z.type==="mark"&&w(z,"exitable",V))K.ArrowRight=()=>p0.handleExit({editor:Z,mark:z});if(G){let B=Object.fromEntries(Object.entries(G()).map(([L,P])=>{return[L,()=>P({editor:Z})]}));K={...K,...B}}let W=K3(K);Y.push(W);let U=w(z,"addInputRules",V);if(N3(z,Z.options.enableInputRules)&&U)J.push(...U());let H=w(z,"addPasteRules",V);if(N3(z,Z.options.enablePasteRules)&&H)q.push(...H());let F=w(z,"addProseMirrorPlugins",V);if(F){let B=F();Y.push(...B)}return Y}).flat();return[DY({editor:Z,rules:J}),...yY({editor:Z,rules:q}),...X]}get attributes(){return v3(this.extensions)}get nodeViews(){let{editor:Z}=this,{nodeExtensions:Q}=IZ(this.extensions);return Object.fromEntries(Q.filter((J)=>!!w(J,"addNodeView")).map((J)=>{let q=this.attributes.filter((Y)=>Y.type===J.name),X={name:J.name,options:J.options,storage:J.storage,editor:Z,type:k0(J.name,this.schema)},z=w(J,"addNodeView",X);if(!z)return[];let V=(Y,G,K,W,U)=>{let H=w4(Y,q);return z()({node:Y,view:G,getPos:K,decorations:W,innerDecorations:U,editor:Z,extension:J,HTMLAttributes:H})};return[J.name,V]}))}setupExtensions(){this.extensions.forEach((Z)=>{var Q;this.editor.extensionStorage[Z.name]=Z.storage;let J={name:Z.name,options:Z.options,storage:Z.storage,editor:this.editor,type:x4(Z.name,this.schema)};if(Z.type==="mark"){if((Q=s(w(Z,"keepOnSplit",J)))!==null&&Q!==void 0?Q:!0)this.splittableMarks.push(Z.name)}let q=w(Z,"onBeforeCreate",J),X=w(Z,"onCreate",J),z=w(Z,"onUpdate",J),V=w(Z,"onSelectionUpdate",J),Y=w(Z,"onTransaction",J),G=w(Z,"onFocus",J),K=w(Z,"onBlur",J),W=w(Z,"onDestroy",J);if(q)this.editor.on("beforeCreate",q);if(X)this.editor.on("create",X);if(z)this.editor.on("update",z);if(V)this.editor.on("selectionUpdate",V);if(Y)this.editor.on("transaction",Y);if(G)this.editor.on("focus",G);if(K)this.editor.on("blur",K);if(W)this.editor.on("destroy",W)})}}class D0{constructor(Z={}){if(this.type="extension",this.name="extension",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...Z},this.name=this.config.name,Z.defaultOptions&&Object.keys(Z.defaultOptions).length>0)console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);if(this.options=this.config.defaultOptions,this.config.addOptions)this.options=s(w(this,"addOptions",{name:this.name}));this.storage=s(w(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(Z={}){return new D0(Z)}configure(Z={}){let Q=this.extend({...this.config,addOptions:()=>{return DZ(this.options,Z)}});return Q.name=this.name,Q.parent=this.parent,Q}extend(Z={}){let Q=new D0({...this.config,...Z});if(Q.parent=this,this.child=Q,Q.name=Z.name?Z.name:Q.parent.name,Z.defaultOptions&&Object.keys(Z.defaultOptions).length>0)console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${Q.name}".`);return Q.options=s(w(Q,"addOptions",{name:Q.name})),Q.storage=s(w(Q,"addStorage",{name:Q.name,options:Q.options})),Q}}function u3(Z,Q,J){let{from:q,to:X}=Q,{blockSeparator:z=` + +`,textSerializers:V={}}=J||{},Y="";return Z.nodesBetween(q,X,(G,K,W,U)=>{var H;if(G.isBlock&&K>q)Y+=z;let F=V===null||V===void 0?void 0:V[G.type.name];if(F){if(W)Y+=F({node:G,pos:K,parent:W,index:U,range:Q});return!1}if(G.isText)Y+=(H=G===null||G===void 0?void 0:G.text)===null||H===void 0?void 0:H.slice(Math.max(q,K)-K,X-K)}),Y}function g3(Z){return Object.fromEntries(Object.entries(Z.nodes).filter(([,Q])=>Q.spec.toText).map(([Q,J])=>[Q,J.spec.toText]))}var NY=D0.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new Z0({key:new K0("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{let{editor:Z}=this,{state:Q,schema:J}=Z,{doc:q,selection:X}=Q,{ranges:z}=X,V=Math.min(...z.map((W)=>W.$from.pos)),Y=Math.max(...z.map((W)=>W.$to.pos)),G=g3(J);return u3(q,{from:V,to:Y},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:G})}}})]}}),RY=()=>({editor:Z,view:Q})=>{return requestAnimationFrame(()=>{var J;if(!Z.isDestroyed)Q.dom.blur(),(J=window===null||window===void 0?void 0:window.getSelection())===null||J===void 0||J.removeAllRanges()}),!0},bY=(Z=!1)=>({commands:Q})=>{return Q.setContent("",Z)},EY=()=>({state:Z,tr:Q,dispatch:J})=>{let{selection:q}=Q,{ranges:X}=q;if(!J)return!0;return X.forEach(({$from:z,$to:V})=>{Z.doc.nodesBetween(z.pos,V.pos,(Y,G)=>{if(Y.type.isText)return;let{doc:K,mapping:W}=Q,U=K.resolve(W.map(G)),H=K.resolve(W.map(G+Y.nodeSize)),F=U.blockRange(H);if(!F)return;let B=A9(F);if(Y.type.isTextblock){let{defaultType:L}=U.parent.contentMatchAt(U.index());Q.setNodeMarkup(F.start,L)}if(B||B===0)Q.lift(F,B)})}),!0},TY=(Z)=>(Q)=>{return Z(Q)},xY=()=>({state:Z,dispatch:Q})=>{return $4(Z,Q)},SY=(Z,Q)=>({editor:J,tr:q})=>{let{state:X}=J,z=X.doc.slice(Z.from,Z.to);q.deleteRange(Z.from,Z.to);let V=q.mapping.map(Q);return q.insert(V,z.content),q.setSelection(new f(q.doc.resolve(Math.max(V-1,0)))),!0},vY=()=>({tr:Z,dispatch:Q})=>{let{selection:J}=Z,q=J.$anchor.node();if(q.content.size>0)return!1;let X=Z.selection.$anchor;for(let z=X.depth;z>0;z-=1)if(X.node(z).type===q.type){if(Q){let Y=X.before(z),G=X.after(z);Z.delete(Y,G).scrollIntoView()}return!0}return!1},wY=(Z)=>({tr:Q,state:J,dispatch:q})=>{let X=k0(Z,J.schema),z=Q.selection.$anchor;for(let V=z.depth;V>0;V-=1)if(z.node(V).type===X){if(q){let G=z.before(V),K=z.after(V);Q.delete(G,K).scrollIntoView()}return!0}return!1},fY=(Z)=>({tr:Q,dispatch:J})=>{let{from:q,to:X}=Z;if(J)Q.delete(q,X);return!0},uY=()=>({state:Z,dispatch:Q})=>{return WZ(Z,Q)},gY=()=>({commands:Z})=>{return Z.keyboardShortcut("Enter")},hY=()=>({state:Z,dispatch:Q})=>{return y4(Z,Q)};function PZ(Z,Q,J={strict:!0}){let q=Object.keys(Q);if(!q.length)return!0;return q.every((X)=>{if(J.strict)return Q[X]===Z[X];if(h4(Q[X]))return Q[X].test(Z[X]);return Q[X]===Z[X]})}function h3(Z,Q,J={}){return Z.find((q)=>{return q.type===Q&&PZ(Object.fromEntries(Object.keys(J).map((X)=>[X,q.attrs[X]])),J)})}function R3(Z,Q,J={}){return!!h3(Z,Q,J)}function m4(Z,Q,J){var q;if(!Z||!Q)return;let X=Z.parent.childAfter(Z.parentOffset);if(!X.node||!X.node.marks.some((W)=>W.type===Q))X=Z.parent.childBefore(Z.parentOffset);if(!X.node||!X.node.marks.some((W)=>W.type===Q))return;if(J=J||((q=X.node.marks[0])===null||q===void 0?void 0:q.attrs),!h3([...X.node.marks],Q,J))return;let V=X.index,Y=Z.start()+X.offset,G=V+1,K=Y+X.node.nodeSize;while(V>0&&R3([...Z.parent.child(V-1).marks],Q,J))V-=1,Y-=Z.parent.child(V).nodeSize;while(G({tr:J,state:q,dispatch:X})=>{let z=d9(Z,q.schema),{doc:V,selection:Y}=J,{$from:G,from:K,to:W}=Y;if(X){let U=m4(G,z,Q);if(U&&U.from<=K&&U.to>=W){let H=f.create(V,U.from,U.to);J.setSelection(H)}}return!0},cY=(Z)=>(Q)=>{let J=typeof Z==="function"?Z(Q):Z;for(let q=0;q({editor:J,view:q,tr:X,dispatch:z})=>{Q={scrollIntoView:!0,...Q};let V=()=>{if(_Z()||b3())q.dom.focus();requestAnimationFrame(()=>{if(!J.isDestroyed){if(q.focus(),pY()&&!_Z()&&!b3())q.dom.focus({preventScroll:!0})}})};if(q.hasFocus()&&Z===null||Z===!1)return!0;if(z&&Z===null&&!m3(J.state.selection))return V(),!0;let Y=c3(X.doc,Z)||J.state.selection,G=J.state.selection.eq(Y);if(z){if(!G)X.setSelection(Y);if(G&&X.storedMarks)X.setStoredMarks(X.storedMarks);V()}return!0},dY=(Z,Q)=>(J)=>{return Z.every((q,X)=>Q(q,{...J,index:X}))},iY=(Z,Q)=>({tr:J,commands:q})=>{return q.insertContentAt({from:J.selection.from,to:J.selection.to},Z,Q)},p3=(Z)=>{let Q=Z.childNodes;for(let J=Q.length-1;J>=0;J-=1){let q=Q[J];if(q.nodeType===3&&q.nodeValue&&/^(\n\s\s|\n)$/.test(q.nodeValue))Z.removeChild(q);else if(q.nodeType===1)p3(q)}return Z};function BZ(Z){let Q=`${Z}`,J=new window.DOMParser().parseFromString(Q,"text/html").body;return p3(J)}function A8(Z,Q,J){if(Z instanceof d0||Z instanceof D)return Z;J={slice:!0,parseOptions:{},...J};let q=typeof Z==="object"&&Z!==null,X=typeof Z==="string";if(q)try{if(Array.isArray(Z)&&Z.length>0)return D.fromArray(Z.map((Y)=>Q.nodeFromJSON(Y)));let V=Q.nodeFromJSON(Z);if(J.errorOnInvalidContent)V.check();return V}catch(z){if(J.errorOnInvalidContent)throw Error("[tiptap error]: Invalid JSON content",{cause:z});return console.warn("[tiptap warn]: Invalid content.","Passed value:",Z,"Error:",z),A8("",Q,J)}if(X){if(J.errorOnInvalidContent){let V=!1,Y="",G=new n8({topNode:Q.spec.topNode,marks:Q.spec.marks,nodes:Q.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:(K)=>{return V=!0,Y=typeof K==="string"?K:K.outerHTML,null}}]}})});if(J.slice)z9.fromSchema(G).parseSlice(BZ(Z),J.parseOptions);else z9.fromSchema(G).parse(BZ(Z),J.parseOptions);if(J.errorOnInvalidContent&&V)throw Error("[tiptap error]: Invalid HTML content",{cause:Error(`Invalid element found: ${Y}`)})}let z=z9.fromSchema(Q);if(J.slice)return z.parseSlice(BZ(Z),J.parseOptions).content;return z.parse(BZ(Z),J.parseOptions)}return A8("",Q,J)}function nY(Z,Q,J){let q=Z.steps.length-1;if(q{if(V===0)V=W}),Z.setSelection(h.near(Z.doc.resolve(V),J))}var sY=(Z)=>{return!("type"in Z)},aY=(Z,Q,J)=>({tr:q,dispatch:X,editor:z})=>{var V;if(X){J={parseOptions:z.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...J};let Y,G=(P)=>{z.emit("contentError",{editor:z,error:P,disableCollaboration:()=>{if(z.storage.collaboration)z.storage.collaboration.isDisabled=!0}})},K={preserveWhitespace:"full",...J.parseOptions};if(!J.errorOnInvalidContent&&!z.options.enableContentCheck&&z.options.emitContentError)try{A8(Q,z.schema,{parseOptions:K,errorOnInvalidContent:!0})}catch(P){G(P)}try{Y=A8(Q,z.schema,{parseOptions:K,errorOnInvalidContent:(V=J.errorOnInvalidContent)!==null&&V!==void 0?V:z.options.enableContentCheck})}catch(P){return G(P),!1}let{from:W,to:U}=typeof Z==="number"?{from:Z,to:Z}:{from:Z.from,to:Z.to},H=!0,F=!0;if((sY(Y)?Y:[Y]).forEach((P)=>{P.check(),H=H?P.isText&&P.marks.length===0:!1,F=F?P.isBlock:!1}),W===U&&F){let{parent:P}=q.doc.resolve(W);if(P.isTextblock&&!P.type.spec.code&&!P.childCount)W-=1,U+=1}let L;if(H){if(Array.isArray(Q))L=Q.map((P)=>P.text||"").join("");else if(Q instanceof D){let P="";Q.forEach((_)=>{if(_.text)P+=_.text}),L=P}else if(typeof Q==="object"&&!!Q&&!!Q.text)L=Q.text;else L=Q;q.insertText(L,W,U)}else L=Y,q.replaceWith(W,U,L);if(J.updateSelection)nY(q,q.steps.length-1,-1);if(J.applyInputRules)q.setMeta("applyInputRules",{from:W,text:L});if(J.applyPasteRules)q.setMeta("applyPasteRules",{from:W,text:L})}return!0},rY=()=>({state:Z,dispatch:Q})=>{return P3(Z,Q)},oY=()=>({state:Z,dispatch:Q})=>{return _3(Z,Q)},tY=()=>({state:Z,dispatch:Q})=>{return j4(Z,Q)},eY=()=>({state:Z,dispatch:Q})=>{return M4(Z,Q)},ZG=()=>({state:Z,dispatch:Q,tr:J})=>{try{let q=E1(Z.doc,Z.selection.$from.pos,-1);if(q===null||q===void 0)return!1;if(J.join(q,2),Q)Q(J);return!0}catch{return!1}},QG=()=>({state:Z,dispatch:Q,tr:J})=>{try{let q=E1(Z.doc,Z.selection.$from.pos,1);if(q===null||q===void 0)return!1;if(J.join(q,2),Q)Q(J);return!0}catch{return!1}},JG=()=>({state:Z,dispatch:Q})=>{return H3(Z,Q)},qG=()=>({state:Z,dispatch:Q})=>{return F3(Z,Q)};function l3(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function XG(Z){let Q=Z.split(/-(?!$)/),J=Q[Q.length-1];if(J==="Space")J=" ";let q,X,z,V;for(let Y=0;Y({editor:Q,view:J,tr:q,dispatch:X})=>{let z=XG(Z).split(/-(?!$)/),V=z.find((K)=>!["Alt","Ctrl","Meta","Shift"].includes(K)),Y=new KeyboardEvent("keydown",{key:V==="Space"?" ":V,altKey:z.includes("Alt"),ctrlKey:z.includes("Ctrl"),metaKey:z.includes("Meta"),shiftKey:z.includes("Shift"),bubbles:!0,cancelable:!0}),G=Q.captureTransaction(()=>{J.someProp("handleKeyDown",(K)=>K(J,Y))});return G===null||G===void 0||G.steps.forEach((K)=>{let W=K.map(q.mapping);if(W&&X)q.maybeStep(W)}),!0};function O8(Z,Q,J={}){let{from:q,to:X,empty:z}=Z.selection,V=Q?k0(Q,Z.schema):null,Y=[];Z.doc.nodesBetween(q,X,(U,H)=>{if(U.isText)return;let F=Math.max(q,H),B=Math.min(X,H+U.nodeSize);Y.push({node:U,from:F,to:B})});let G=X-q,K=Y.filter((U)=>{if(!V)return!0;return V.name===U.node.type.name}).filter((U)=>PZ(U.node.attrs,J,{strict:!1}));if(z)return!!K.length;return K.reduce((U,H)=>U+H.to-H.from,0)>=G}var VG=(Z,Q={})=>({state:J,dispatch:q})=>{let X=k0(Z,J.schema);if(!O8(J,X,Q))return!1;return j3(J,q)},YG=()=>({state:Z,dispatch:Q})=>{return N4(Z,Q)},GG=(Z)=>({state:Q,dispatch:J})=>{let q=k0(Z,Q.schema);return C3(q)(Q,J)},KG=()=>({state:Z,dispatch:Q})=>{return C4(Z,Q)};function MZ(Z,Q){if(Q.nodes[Z])return"node";if(Q.marks[Z])return"mark";return null}function E3(Z,Q){let J=typeof Q==="string"?[Q]:Q;return Object.keys(Z).reduce((q,X)=>{if(!J.includes(X))q[X]=Z[X];return q},{})}var WG=(Z,Q)=>({tr:J,state:q,dispatch:X})=>{let z=null,V=null,Y=MZ(typeof Z==="string"?Z:Z.name,q.schema);if(!Y)return!1;if(Y==="node")z=k0(Z,q.schema);if(Y==="mark")V=d9(Z,q.schema);if(X)J.selection.ranges.forEach((G)=>{q.doc.nodesBetween(G.$from.pos,G.$to.pos,(K,W)=>{if(z&&z===K.type)J.setNodeMarkup(W,void 0,E3(K.attrs,Q));if(V&&K.marks.length)K.marks.forEach((U)=>{if(V===U.type)J.addMark(W,W+K.nodeSize,V.create(E3(U.attrs,Q)))})})});return!0},UG=()=>({tr:Z,dispatch:Q})=>{if(Q)Z.scrollIntoView();return!0},HG=()=>({tr:Z,dispatch:Q})=>{if(Q){let J=new N0(Z.doc);Z.setSelection(J)}return!0},FG=()=>({state:Z,dispatch:Q})=>{return I4(Z,Q)},BG=()=>({state:Z,dispatch:Q})=>{return A4(Z,Q)},LG=()=>({state:Z,dispatch:Q})=>{return I3(Z,Q)},PG=()=>({state:Z,dispatch:Q})=>{return b4(Z,Q)},_G=()=>({state:Z,dispatch:Q})=>{return R4(Z,Q)};function f4(Z,Q,J={},q={}){return A8(Z,Q,{slice:!1,parseOptions:J,errorOnInvalidContent:q.errorOnInvalidContent})}var jG=(Z,Q=!1,J={},q={})=>({editor:X,tr:z,dispatch:V,commands:Y})=>{var G,K;let{doc:W}=z;if(J.preserveWhitespace!=="full"){let U=f4(Z,X.schema,J,{errorOnInvalidContent:(G=q.errorOnInvalidContent)!==null&&G!==void 0?G:X.options.enableContentCheck});if(V)z.replaceWith(0,W.content.size,U).setMeta("preventUpdate",!Q);return!0}if(V)z.setMeta("preventUpdate",!Q);return Y.insertContentAt({from:0,to:W.content.size},Z,{parseOptions:J,errorOnInvalidContent:(K=q.errorOnInvalidContent)!==null&&K!==void 0?K:X.options.enableContentCheck})};function d3(Z,Q){let J=d9(Q,Z.schema),{from:q,to:X,empty:z}=Z.selection,V=[];if(z){if(Z.storedMarks)V.push(...Z.storedMarks);V.push(...Z.selection.$head.marks())}else Z.doc.nodesBetween(q,X,(G)=>{V.push(...G.marks)});let Y=V.find((G)=>G.type.name===J.name);if(!Y)return{};return{...Y.attrs}}function i3(Z,Q){let J=new X1(Z);return Q.forEach((q)=>{q.steps.forEach((X)=>{J.step(X)})}),J}function IG(Z){for(let Q=0;Q{if(Q(q))J.push({node:q,pos:X})}),J}function n3(Z,Q,J){let q=[];return Z.nodesBetween(Q.from,Q.to,(X,z)=>{if(J(X))q.push({node:X,pos:z})}),q}function c4(Z,Q){for(let J=Z.depth;J>0;J-=1){let q=Z.node(J);if(Q(q))return{pos:J>0?Z.before(J):0,start:Z.start(J),depth:J,node:q}}}function p4(Z){return(Q)=>c4(Q.$from,Z)}function DG(Z,Q){let J={from:0,to:Z.content.size};return u3(Z,J,Q)}function MG(Z,Q){let J=k0(Q,Z.schema),{from:q,to:X}=Z.selection,z=[];Z.doc.nodesBetween(q,X,(Y)=>{z.push(Y)});let V=z.reverse().find((Y)=>Y.type.name===J.name);if(!V)return{};return{...V.attrs}}function l4(Z,Q){let J=MZ(typeof Q==="string"?Q:Q.name,Z.schema);if(J==="node")return MG(Z,Q);if(J==="mark")return d3(Z,Q);return{}}function AG(Z,Q=JSON.stringify){let J={};return Z.filter((q)=>{let X=Q(q);return Object.prototype.hasOwnProperty.call(J,X)?!1:J[X]=!0})}function OG(Z){let Q=AG(Z);return Q.length===1?Q:Q.filter((J,q)=>{return!Q.filter((z,V)=>V!==q).some((z)=>{return J.oldRange.from>=z.oldRange.from&&J.oldRange.to<=z.oldRange.to&&J.newRange.from>=z.newRange.from&&J.newRange.to<=z.newRange.to})})}function s3(Z){let{mapping:Q,steps:J}=Z,q=[];return Q.maps.forEach((X,z)=>{let V=[];if(!X.ranges.length){let{from:Y,to:G}=J[z];if(Y===void 0||G===void 0)return;V.push({from:Y,to:G})}else X.forEach((Y,G)=>{V.push({from:Y,to:G})});V.forEach(({from:Y,to:G})=>{let K=Q.slice(z).map(Y,-1),W=Q.slice(z).map(G),U=Q.invert().map(K,-1),H=Q.invert().map(W);q.push({oldRange:{from:U,to:H},newRange:{from:K,to:W}})})}),OG(q)}function OZ(Z,Q,J){let q=[];if(Z===Q)J.resolve(Z).marks().forEach((X)=>{let z=J.resolve(Z),V=m4(z,X.type);if(!V)return;q.push({mark:X,...V})});else J.nodesBetween(Z,Q,(X,z)=>{if(!X||(X===null||X===void 0?void 0:X.nodeSize)===void 0)return;q.push(...X.marks.map((V)=>({from:z,to:z+X.nodeSize,mark:V})))});return q}function LZ(Z,Q,J){return Object.fromEntries(Object.entries(J).filter(([q])=>{let X=Z.find((z)=>{return z.type===Q&&z.name===q});if(!X)return!1;return X.attribute.keepOnSplit}))}function u4(Z,Q,J={}){let{empty:q,ranges:X}=Z.selection,z=Q?d9(Q,Z.schema):null;if(q)return!!(Z.storedMarks||Z.selection.$from.marks()).filter((U)=>{if(!z)return!0;return z.name===U.type.name}).find((U)=>PZ(U.attrs,J,{strict:!1}));let V=0,Y=[];if(X.forEach(({$from:U,$to:H})=>{let F=U.pos,B=H.pos;Z.doc.nodesBetween(F,B,(L,P)=>{if(!L.isText&&!L.marks.length)return;let _=Math.max(F,P),A=Math.min(B,P+L.nodeSize),k=A-_;V+=k,Y.push(...L.marks.map((N)=>({mark:N,from:_,to:A})))})}),V===0)return!1;let G=Y.filter((U)=>{if(!z)return!0;return z.name===U.mark.type.name}).filter((U)=>PZ(U.mark.attrs,J,{strict:!1})).reduce((U,H)=>U+H.to-H.from,0),K=Y.filter((U)=>{if(!z)return!0;return U.mark.type!==z&&U.mark.type.excludes(z)}).reduce((U,H)=>U+H.to-H.from,0);return(G>0?G+K:G)>=V}function CG(Z,Q,J={}){if(!Q)return O8(Z,null,J)||u4(Z,null,J);let q=MZ(Q,Z.schema);if(q==="node")return O8(Z,Q,J);if(q==="mark")return u4(Z,Q,J);return!1}function T3(Z,Q){let{nodeExtensions:J}=IZ(Q),q=J.find((V)=>V.name===Z);if(!q)return!1;let X={name:q.name,options:q.options,storage:q.storage},z=s(w(q,"group",X));if(typeof z!=="string")return!1;return z.split(" ").includes("list")}function y8(Z,{checkChildren:Q=!0,ignoreWhitespace:J=!1}={}){var q;if(J){if(Z.type.name==="hardBreak")return!0;if(Z.isText)return/^\s*$/m.test((q=Z.text)!==null&&q!==void 0?q:"")}if(Z.isText)return!Z.text;if(Z.isAtom||Z.isLeaf)return!1;if(Z.content.childCount===0)return!0;if(Q){let X=!0;return Z.content.forEach((z)=>{if(X===!1)return;if(!y8(z,{ignoreWhitespace:J,checkChildren:Q}))X=!1}),X}return!1}function a3(Z){return Z instanceof u}function kG(Z,Q,J){var q;let{selection:X}=Q,z=null;if(m3(X))z=X.$cursor;if(z){let Y=(q=Z.storedMarks)!==null&&q!==void 0?q:z.marks();return!!J.isInSet(Y)||!Y.some((G)=>G.type.excludes(J))}let{ranges:V}=X;return V.some(({$from:Y,$to:G})=>{let K=Y.depth===0?Z.doc.inlineContent&&Z.doc.type.allowsMarkType(J):!1;return Z.doc.nodesBetween(Y.pos,G.pos,(W,U,H)=>{if(K)return!1;if(W.isInline){let F=!H||H.type.allowsMarkType(J),B=!!J.isInSet(W.marks)||!W.marks.some((L)=>L.type.excludes(J));K=F&&B}return!K}),K})}var yG=(Z,Q={})=>({tr:J,state:q,dispatch:X})=>{let{selection:z}=J,{empty:V,ranges:Y}=z,G=d9(Z,q.schema);if(X)if(V){let K=d3(q,G);J.addStoredMark(G.create({...K,...Q}))}else Y.forEach((K)=>{let W=K.$from.pos,U=K.$to.pos;q.doc.nodesBetween(W,U,(H,F)=>{let B=Math.max(F,W),L=Math.min(F+H.nodeSize,U);if(H.marks.find((_)=>_.type===G))H.marks.forEach((_)=>{if(G===_.type)J.addMark(B,L,G.create({..._.attrs,...Q}))});else J.addMark(B,L,G.create(Q))})});return kG(q,J,G)},$G=(Z,Q)=>({tr:J})=>{return J.setMeta(Z,Q),!0},NG=(Z,Q={})=>({state:J,dispatch:q,chain:X})=>{let z=k0(Z,J.schema),V;if(J.selection.$anchor.sameParent(J.selection.$head))V=J.selection.$anchor.parent.attrs;if(!z.isTextblock)return console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1;return X().command(({commands:Y})=>{if(E4(z,{...V,...Q})(J))return!0;return Y.clearNodes()}).command(({state:Y})=>{return E4(z,{...V,...Q})(Y,q)}).run()},RG=(Z)=>({tr:Q,dispatch:J})=>{if(J){let{doc:q}=Q,X=B1(Z,0,q.content.size),z=u.create(q,X);Q.setSelection(z)}return!0},bG=(Z)=>({tr:Q,dispatch:J})=>{if(J){let{doc:q}=Q,{from:X,to:z}=typeof Z==="number"?{from:Z,to:Z}:Z,V=f.atStart(q).from,Y=f.atEnd(q).to,G=B1(X,V,Y),K=B1(z,V,Y),W=f.create(q,G,K);Q.setSelection(W)}return!0},EG=(Z)=>({state:Q,dispatch:J})=>{let q=k0(Z,Q.schema);return k3(q)(Q,J)};function x3(Z,Q){let J=Z.storedMarks||Z.selection.$to.parentOffset&&Z.selection.$from.marks();if(J){let q=J.filter((X)=>Q===null||Q===void 0?void 0:Q.includes(X.type.name));Z.tr.ensureMarks(q)}}var TG=({keepMarks:Z=!0}={})=>({tr:Q,state:J,dispatch:q,editor:X})=>{let{selection:z,doc:V}=Q,{$from:Y,$to:G}=z,K=X.extensionManager.attributes,W=LZ(K,Y.node().type.name,Y.node().attrs);if(z instanceof u&&z.node.isBlock){if(!Y.parentOffset||!a0(V,Y.pos))return!1;if(q){if(Z)x3(J,X.extensionManager.splittableMarks);Q.split(Y.pos).scrollIntoView()}return!0}if(!Y.parent.isBlock)return!1;let U=G.parentOffset===G.parent.content.size,H=Y.depth===0?void 0:IG(Y.node(-1).contentMatchAt(Y.indexAfter(-1))),F=U&&H?[{type:H,attrs:W}]:void 0,B=a0(Q.doc,Q.mapping.map(Y.pos),1,F);if(!F&&!B&&a0(Q.doc,Q.mapping.map(Y.pos),1,H?[{type:H}]:void 0))B=!0,F=H?[{type:H,attrs:W}]:void 0;if(q){if(B){if(z instanceof f)Q.deleteSelection();if(Q.split(Q.mapping.map(Y.pos),1,F),H&&!U&&!Y.parentOffset&&Y.parent.type!==H){let L=Q.mapping.map(Y.before()),P=Q.doc.resolve(L);if(Y.node(-1).canReplaceWith(P.index(),P.index()+1,H))Q.setNodeMarkup(Q.mapping.map(Y.before()),H)}}if(Z)x3(J,X.extensionManager.splittableMarks);Q.scrollIntoView()}return B},xG=(Z,Q={})=>({tr:J,state:q,dispatch:X,editor:z})=>{var V;let Y=k0(Z,q.schema),{$from:G,$to:K}=q.selection,W=q.selection.node;if(W&&W.isBlock||G.depth<2||!G.sameParent(K))return!1;let U=G.node(-1);if(U.type!==Y)return!1;let H=z.extensionManager.attributes;if(G.parent.content.size===0&&G.node(-1).childCount===G.indexAfter(-1)){if(G.depth===2||G.node(-3).type!==Y||G.index(-2)!==G.node(-2).childCount-1)return!1;if(X){let _=D.empty,A=G.index(-1)?1:G.index(-2)?2:3;for(let S=G.depth-A;S>=G.depth-3;S-=1)_=D.from(G.node(S).copy(_));let k=G.indexAfter(-1){if(b>-1)return!1;if(S.isTextblock&&S.content.size===0)b=m+1}),b>-1)J.setSelection(f.near(J.doc.resolve(b)));J.scrollIntoView()}return!0}let F=K.pos===G.end()?U.contentMatchAt(0).defaultType:null,B={...LZ(H,U.type.name,U.attrs),...Q},L={...LZ(H,G.node().type.name,G.node().attrs),...Q};J.delete(G.pos,K.pos);let P=F?[{type:Y,attrs:B},{type:F,attrs:L}]:[{type:Y,attrs:B}];if(!a0(J.doc,G.pos,2))return!1;if(X){let{selection:_,storedMarks:A}=q,{splittableMarks:k}=z.extensionManager,N=A||_.$to.parentOffset&&_.$from.marks();if(J.split(G.pos,2,P).scrollIntoView(),!N||!X)return!0;let $=N.filter((x)=>k.includes(x.type.name));J.ensureMarks($)}return!0},S4=(Z,Q)=>{let J=p4((V)=>V.type===Q)(Z.selection);if(!J)return!0;let q=Z.doc.resolve(Math.max(0,J.pos-1)).before(J.depth);if(q===void 0)return!0;let X=Z.doc.nodeAt(q);if(!(J.node.type===(X===null||X===void 0?void 0:X.type)&&V9(Z.doc,J.pos)))return!0;return Z.join(J.pos),!0},v4=(Z,Q)=>{let J=p4((V)=>V.type===Q)(Z.selection);if(!J)return!0;let q=Z.doc.resolve(J.start).after(J.depth);if(q===void 0)return!0;let X=Z.doc.nodeAt(q);if(!(J.node.type===(X===null||X===void 0?void 0:X.type)&&V9(Z.doc,q)))return!0;return Z.join(q),!0},SG=(Z,Q,J,q={})=>({editor:X,tr:z,state:V,dispatch:Y,chain:G,commands:K,can:W})=>{let{extensions:U,splittableMarks:H}=X.extensionManager,F=k0(Z,V.schema),B=k0(Q,V.schema),{selection:L,storedMarks:P}=V,{$from:_,$to:A}=L,k=_.blockRange(A),N=P||L.$to.parentOffset&&L.$from.marks();if(!k)return!1;let $=p4((x)=>T3(x.type.name,U))(L);if(k.depth>=1&&$&&k.depth-$.depth<=1){if($.node.type===F)return K.liftListItem(B);if(T3($.node.type.name,U)&&F.validContent($.node.content)&&Y)return G().command(()=>{return z.setNodeMarkup($.pos,F),!0}).command(()=>S4(z,F)).command(()=>v4(z,F)).run()}if(!J||!N||!Y)return G().command(()=>{if(W().wrapInList(F,q))return!0;return K.clearNodes()}).wrapInList(F,q).command(()=>S4(z,F)).command(()=>v4(z,F)).run();return G().command(()=>{let x=W().wrapInList(F,q),b=N.filter((S)=>H.includes(S.type.name));if(z.ensureMarks(b),x)return!0;return K.clearNodes()}).wrapInList(F,q).command(()=>S4(z,F)).command(()=>v4(z,F)).run()},vG=(Z,Q={},J={})=>({state:q,commands:X})=>{let{extendEmptyMarkRange:z=!1}=J,V=d9(Z,q.schema);if(u4(q,V,Q))return X.unsetMark(V,{extendEmptyMarkRange:z});return X.setMark(V,Q)},wG=(Z,Q,J={})=>({state:q,commands:X})=>{let z=k0(Z,q.schema),V=k0(Q,q.schema),Y=O8(q,z,J),G;if(q.selection.$anchor.sameParent(q.selection.$head))G=q.selection.$anchor.parent.attrs;if(Y)return X.setNode(V,G);return X.setNode(z,{...G,...J})},fG=(Z,Q={})=>({state:J,commands:q})=>{let X=k0(Z,J.schema);if(O8(J,X,Q))return q.lift(X);return q.wrapIn(X,Q)},uG=()=>({state:Z,dispatch:Q})=>{let J=Z.plugins;for(let q=0;q=0;G-=1)V.step(Y.steps[G].invert(Y.docs[G]));if(z.text){let G=V.doc.resolve(z.from).marks();V.replaceWith(z.from,z.to,Z.schema.text(z.text,G))}else V.delete(z.from,z.to)}return!0}}return!1},gG=()=>({tr:Z,dispatch:Q})=>{let{selection:J}=Z,{empty:q,ranges:X}=J;if(q)return!0;if(Q)X.forEach((z)=>{Z.removeMark(z.$from.pos,z.$to.pos)});return!0},hG=(Z,Q={})=>({tr:J,state:q,dispatch:X})=>{var z;let{extendEmptyMarkRange:V=!1}=Q,{selection:Y}=J,G=d9(Z,q.schema),{$from:K,empty:W,ranges:U}=Y;if(!X)return!0;if(W&&V){let{from:H,to:F}=Y,B=(z=K.marks().find((P)=>P.type===G))===null||z===void 0?void 0:z.attrs,L=m4(K,G,B);if(L)H=L.from,F=L.to;J.removeMark(H,F,G)}else U.forEach((H)=>{J.removeMark(H.$from.pos,H.$to.pos,G)});return J.removeStoredMark(G),!0},mG=(Z,Q={})=>({tr:J,state:q,dispatch:X})=>{let z=null,V=null,Y=MZ(typeof Z==="string"?Z:Z.name,q.schema);if(!Y)return!1;if(Y==="node")z=k0(Z,q.schema);if(Y==="mark")V=d9(Z,q.schema);if(X)J.selection.ranges.forEach((G)=>{let K=G.$from.pos,W=G.$to.pos,U,H,F,B;if(J.selection.empty)q.doc.nodesBetween(K,W,(L,P)=>{if(z&&z===L.type)F=Math.max(P,K),B=Math.min(P+L.nodeSize,W),U=P,H=L});else q.doc.nodesBetween(K,W,(L,P)=>{if(P=K&&P<=W){if(z&&z===L.type)J.setNodeMarkup(P,void 0,{...L.attrs,...Q});if(V&&L.marks.length)L.marks.forEach((_)=>{if(V===_.type){let A=Math.max(P,K),k=Math.min(P+L.nodeSize,W);J.addMark(A,k,V.create({..._.attrs,...Q}))}})}});if(H){if(U!==void 0)J.setNodeMarkup(U,void 0,{...H.attrs,...Q});if(V&&H.marks.length)H.marks.forEach((L)=>{if(V===L.type)J.addMark(F,B,V.create({...L.attrs,...Q}))})}});return!0},cG=(Z,Q={})=>({state:J,dispatch:q})=>{let X=k0(Z,J.schema);return A3(X,Q)(J,q)},pG=(Z,Q={})=>({state:J,dispatch:q})=>{let X=k0(Z,J.schema);return O3(X,Q)(J,q)},lG=Object.freeze({__proto__:null,blur:RY,clearContent:bY,clearNodes:EY,command:TY,createParagraphNear:xY,cut:SY,deleteCurrentNode:vY,deleteNode:wY,deleteRange:fY,deleteSelection:uY,enter:gY,exitCode:hY,extendMarkRange:mY,first:cY,focus:lY,forEach:dY,insertContent:iY,insertContentAt:aY,joinBackward:tY,joinDown:oY,joinForward:eY,joinItemBackward:ZG,joinItemForward:QG,joinTextblockBackward:JG,joinTextblockForward:qG,joinUp:rY,keyboardShortcut:zG,lift:VG,liftEmptyBlock:YG,liftListItem:GG,newlineInCode:KG,resetAttributes:WG,scrollIntoView:UG,selectAll:HG,selectNodeBackward:FG,selectNodeForward:BG,selectParentNode:LG,selectTextblockEnd:PG,selectTextblockStart:_G,setContent:jG,setMark:yG,setMeta:$G,setNode:NG,setNodeSelection:RG,setTextSelection:bG,sinkListItem:EG,splitBlock:TG,splitListItem:xG,toggleList:SG,toggleMark:vG,toggleNode:wG,toggleWrap:fG,undoInputRule:uG,unsetAllMarks:gG,unsetMark:hG,updateAttributes:mG,wrapIn:cG,wrapInList:pG}),dG=D0.create({name:"commands",addCommands(){return{...lG}}}),iG=D0.create({name:"drop",addProseMirrorPlugins(){return[new Z0({key:new K0("tiptapDrop"),props:{handleDrop:(Z,Q,J,q)=>{this.editor.emit("drop",{editor:this.editor,event:Q,slice:J,moved:q})}}})]}}),nG=D0.create({name:"editable",addProseMirrorPlugins(){return[new Z0({key:new K0("editable"),props:{editable:()=>this.editor.options.editable}})]}}),sG=new K0("focusEvents"),aG=D0.create({name:"focusEvents",addProseMirrorPlugins(){let{editor:Z}=this;return[new Z0({key:sG,props:{handleDOMEvents:{focus:(Q,J)=>{Z.isFocused=!0;let q=Z.state.tr.setMeta("focus",{event:J}).setMeta("addToHistory",!1);return Q.dispatch(q),!1},blur:(Q,J)=>{Z.isFocused=!1;let q=Z.state.tr.setMeta("blur",{event:J}).setMeta("addToHistory",!1);return Q.dispatch(q),!1}}}})]}}),rG=D0.create({name:"keymap",addKeyboardShortcuts(){let Z=()=>this.editor.commands.first(({commands:V})=>[()=>V.undoInputRule(),()=>V.command(({tr:Y})=>{let{selection:G,doc:K}=Y,{empty:W,$anchor:U}=G,{pos:H,parent:F}=U,B=U.parent.isTextblock&&H>0?Y.doc.resolve(H-1):U,L=B.parent.type.spec.isolating,P=U.pos-U.parentOffset,_=L&&B.parent.childCount===1?P===U.pos:h.atStart(K).from===H;if(!W||!F.type.isTextblock||F.textContent.length||!_||_&&U.parent.type.name==="paragraph")return!1;return V.clearNodes()}),()=>V.deleteSelection(),()=>V.joinBackward(),()=>V.selectNodeBackward()]),Q=()=>this.editor.commands.first(({commands:V})=>[()=>V.deleteSelection(),()=>V.deleteCurrentNode(),()=>V.joinForward(),()=>V.selectNodeForward()]),q={Enter:()=>this.editor.commands.first(({commands:V})=>[()=>V.newlineInCode(),()=>V.createParagraphNear(),()=>V.liftEmptyBlock(),()=>V.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:Z,"Mod-Backspace":Z,"Shift-Backspace":Z,Delete:Q,"Mod-Delete":Q,"Mod-a":()=>this.editor.commands.selectAll()},X={...q},z={...q,"Ctrl-h":Z,"Alt-Backspace":Z,"Ctrl-d":Q,"Ctrl-Alt-Backspace":Q,"Alt-Delete":Q,"Alt-d":Q,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};if(_Z()||l3())return z;return X},addProseMirrorPlugins(){return[new Z0({key:new K0("clearDocument"),appendTransaction:(Z,Q,J)=>{if(Z.some((L)=>L.getMeta("composition")))return;let q=Z.some((L)=>L.docChanged)&&!Q.doc.eq(J.doc),X=Z.some((L)=>L.getMeta("preventClearDocument"));if(!q||X)return;let{empty:z,from:V,to:Y}=Q.selection,G=h.atStart(Q.doc).from,K=h.atEnd(Q.doc).to;if(z||!(V===G&&Y===K))return;if(!y8(J.doc))return;let H=J.tr,F=jZ({state:J,transaction:H}),{commands:B}=new C8({editor:this.editor,state:F});if(B.clearNodes(),!H.steps.length)return;return H}})]}}),oG=D0.create({name:"paste",addProseMirrorPlugins(){return[new Z0({key:new K0("tiptapPaste"),props:{handlePaste:(Z,Q,J)=>{this.editor.emit("paste",{editor:this.editor,event:Q,slice:J})}}})]}}),tG=D0.create({name:"tabindex",addProseMirrorPlugins(){return[new Z0({key:new K0("tabindex"),props:{attributes:()=>this.editor.isEditable?{tabindex:"0"}:{}}})]}});class F1{get name(){return this.node.type.name}constructor(Z,Q,J=!1,q=null){this.currentNode=null,this.actualDepth=null,this.isBlock=J,this.resolvedPos=Z,this.editor=Q,this.currentNode=q}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){var Z;return(Z=this.actualDepth)!==null&&Z!==void 0?Z:this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(Z){let Q=this.from,J=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}Q=this.from+1,J=this.to-1}this.editor.commands.insertContentAt({from:Q,to:J},Z)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){if(this.isBlock)return this.pos;return this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){if(this.isBlock)return this.pos+this.size;return this.resolvedPos.end(this.resolvedPos.depth)+(this.node.isText?0:1)}get parent(){if(this.depth===0)return null;let Z=this.resolvedPos.start(this.resolvedPos.depth-1),Q=this.resolvedPos.doc.resolve(Z);return new F1(Q,this.editor)}get before(){let Z=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));if(Z.depth!==this.depth)Z=this.resolvedPos.doc.resolve(this.from-3);return new F1(Z,this.editor)}get after(){let Z=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));if(Z.depth!==this.depth)Z=this.resolvedPos.doc.resolve(this.to+3);return new F1(Z,this.editor)}get children(){let Z=[];return this.node.content.forEach((Q,J)=>{let q=Q.isBlock&&!Q.isTextblock,X=Q.isAtom&&!Q.isText,z=this.pos+J+(X?0:1);if(z<0||z>this.resolvedPos.doc.nodeSize-2)return;let V=this.resolvedPos.doc.resolve(z);if(!q&&V.depth<=this.depth)return;let Y=new F1(V,this.editor,q,q?Q:null);if(q)Y.actualDepth=this.depth+1;Z.push(new F1(V,this.editor,q,q?Q:null))}),Z}get firstChild(){return this.children[0]||null}get lastChild(){let Z=this.children;return Z[Z.length-1]||null}closest(Z,Q={}){let J=null,q=this.parent;while(q&&!J){if(q.node.type.name===Z)if(Object.keys(Q).length>0){let X=q.node.attrs,z=Object.keys(Q);for(let V=0;V{if(J&&q.length>0)return;if(z.node.type.name===Z){if(X.every((Y)=>Q[Y]===z.node.attrs[Y]))q.push(z)}if(J&&q.length>0)return;q=q.concat(z.querySelectorAll(Z,Q,J))}),q}setAttribute(Z){let{tr:Q}=this.editor.state;Q.setNodeMarkup(this.from,void 0,{...this.node.attrs,...Z}),this.editor.view.dispatch(Q)}}var eG=`.ProseMirror { + position: relative; +} + +.ProseMirror { + word-wrap: break-word; + white-space: pre-wrap; + white-space: break-spaces; + -webkit-font-variant-ligatures: none; + font-variant-ligatures: none; + font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */ +} + +.ProseMirror [contenteditable="false"] { + white-space: normal; +} + +.ProseMirror [contenteditable="false"] [contenteditable="true"] { + white-space: pre-wrap; +} + +.ProseMirror pre { + white-space: pre-wrap; +} + +img.ProseMirror-separator { + display: inline !important; + border: none !important; + margin: 0 !important; + width: 0 !important; + height: 0 !important; +} + +.ProseMirror-gapcursor { + display: none; + pointer-events: none; + position: absolute; + margin: 0; +} + +.ProseMirror-gapcursor:after { + content: ""; + display: block; + position: absolute; + top: -2px; + width: 20px; + border-top: 1px solid black; + animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite; +} + +@keyframes ProseMirror-cursor-blink { + to { + visibility: hidden; + } +} + +.ProseMirror-hideselection *::selection { + background: transparent; +} + +.ProseMirror-hideselection *::-moz-selection { + background: transparent; +} + +.ProseMirror-hideselection * { + caret-color: transparent; +} + +.ProseMirror-focused .ProseMirror-gapcursor { + display: block; +} + +.tippy-box[data-animation=fade][data-state=hidden] { + opacity: 0 +}`;function ZK(Z,Q,J){let q=document.querySelector(`style[data-tiptap-style${J?`-${J}`:""}]`);if(q!==null)return q;let X=document.createElement("style");if(Q)X.setAttribute("nonce",Q);return X.setAttribute(`data-tiptap-style${J?`-${J}`:""}`,""),X.innerHTML=Z,document.getElementsByTagName("head")[0].appendChild(X),X}class d4 extends S3{constructor(Z={}){super();this.isFocused=!1,this.isInitialized=!1,this.extensionStorage={},this.options={element:document.createElement("div"),content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:Q})=>{throw Q},onPaste:()=>null,onDrop:()=>null},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.setOptions(Z),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.on("contentError",this.options.onContentError),this.createView(),this.injectCSS(),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),this.on("drop",({event:Q,slice:J,moved:q})=>this.options.onDrop(Q,J,q)),this.on("paste",({event:Q,slice:J})=>this.options.onPaste(Q,J)),window.setTimeout(()=>{if(this.isDestroyed)return;this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}),this.isInitialized=!0},0)}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){if(this.options.injectCSS&&document)this.css=ZK(eG,this.options.injectNonce)}setOptions(Z={}){if(this.options={...this.options,...Z},!this.view||!this.state||this.isDestroyed)return;if(this.options.editorProps)this.view.setProps(this.options.editorProps);this.view.updateState(this.state)}setEditable(Z,Q=!0){if(this.setOptions({editable:Z}),Q)this.emit("update",{editor:this,transaction:this.state.tr})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get state(){return this.view.state}registerPlugin(Z,Q){let J=w3(Q)?Q(Z,[...this.state.plugins]):[...this.state.plugins,Z],q=this.state.reconfigure({plugins:J});return this.view.updateState(q),q}unregisterPlugin(Z){if(this.isDestroyed)return;let Q=this.state.plugins,J=Q;if([].concat(Z).forEach((X)=>{let z=typeof X==="string"?`${X}$`:X.key;J=J.filter((V)=>!V.key.startsWith(z))}),Q.length===J.length)return;let q=this.state.reconfigure({plugins:J});return this.view.updateState(q),q}createExtensionManager(){var Z,Q;let q=[...this.options.enableCoreExtensions?[nG,NY.configure({blockSeparator:(Q=(Z=this.options.coreExtensionOptions)===null||Z===void 0?void 0:Z.clipboardTextSerializer)===null||Q===void 0?void 0:Q.blockSeparator}),dG,aG,rG,tG,iG,oG].filter((X)=>{if(typeof this.options.enableCoreExtensions==="object")return this.options.enableCoreExtensions[X.name]!==!1;return!0}):[],...this.options.extensions].filter((X)=>{return["extension","node","mark"].includes(X===null||X===void 0?void 0:X.type)});this.extensionManager=new c1(q,this)}createCommandManager(){this.commandManager=new C8({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createView(){var Z;let Q;try{Q=f4(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(z){if(!(z instanceof Error)||!["[tiptap error]: Invalid JSON content","[tiptap error]: Invalid HTML content"].includes(z.message))throw z;this.emit("contentError",{editor:this,error:z,disableCollaboration:()=>{if(this.storage.collaboration)this.storage.collaboration.isDisabled=!0;this.options.extensions=this.options.extensions.filter((V)=>V.name!=="collaboration"),this.createExtensionManager()}}),Q=f4(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1})}let J=c3(Q,this.options.autofocus);this.view=new GZ(this.options.element,{...this.options.editorProps,attributes:{role:"textbox",...(Z=this.options.editorProps)===null||Z===void 0?void 0:Z.attributes},dispatchTransaction:this.dispatchTransaction.bind(this),state:z1.create({doc:Q,selection:J||void 0})});let q=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(q),this.createNodeViews(),this.prependClass();let X=this.view.dom;X.editor=this}createNodeViews(){if(this.view.isDestroyed)return;this.view.setProps({nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`tiptap ${this.view.dom.className}`}captureTransaction(Z){this.isCapturingTransaction=!0,Z(),this.isCapturingTransaction=!1;let Q=this.capturedTransaction;return this.capturedTransaction=null,Q}dispatchTransaction(Z){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=Z;return}Z.steps.forEach((z)=>{var V;return(V=this.capturedTransaction)===null||V===void 0?void 0:V.step(z)});return}let Q=this.state.apply(Z),J=!this.state.selection.eq(Q.selection);if(this.emit("beforeTransaction",{editor:this,transaction:Z,nextState:Q}),this.view.updateState(Q),this.emit("transaction",{editor:this,transaction:Z}),J)this.emit("selectionUpdate",{editor:this,transaction:Z});let q=Z.getMeta("focus"),X=Z.getMeta("blur");if(q)this.emit("focus",{editor:this,event:q.event,transaction:Z});if(X)this.emit("blur",{editor:this,event:X.event,transaction:Z});if(!Z.docChanged||Z.getMeta("preventUpdate"))return;this.emit("update",{editor:this,transaction:Z})}getAttributes(Z){return l4(this.state,Z)}isActive(Z,Q){let J=typeof Z==="string"?Z:null,q=typeof Z==="string"?Q:Z;return CG(this.state,J,q)}getJSON(){return this.state.doc.toJSON()}getHTML(){return g4(this.state.doc.content,this.schema)}getText(Z){let{blockSeparator:Q=` + +`,textSerializers:J={}}=Z||{};return DG(this.state.doc,{blockSeparator:Q,textSerializers:{...g3(this.schema),...J}})}get isEmpty(){return y8(this.state.doc)}getCharacterCount(){return console.warn('[tiptap warn]: "editor.getCharacterCount()" is deprecated. Please use "editor.storage.characterCount.characters()" instead.'),this.state.doc.content.size-2}destroy(){if(this.emit("destroy"),this.view){let Z=this.view.dom;if(Z&&Z.editor)delete Z.editor;this.view.destroy()}this.removeAllListeners()}get isDestroyed(){var Z;return!((Z=this.view)===null||Z===void 0?void 0:Z.docView)}$node(Z,Q){var J;return((J=this.$doc)===null||J===void 0?void 0:J.querySelector(Z,Q))||null}$nodes(Z,Q){var J;return((J=this.$doc)===null||J===void 0?void 0:J.querySelectorAll(Z,Q))||null}$pos(Z){let Q=this.state.doc.resolve(Z);return new F1(Q,this)}get $doc(){return this.$pos(0)}}function B9(Z){return new k8({find:Z.find,handler:({state:Q,range:J,match:q})=>{let X=s(Z.getAttributes,void 0,q);if(X===!1||X===null)return null;let{tr:z}=Q,V=q[q.length-1],Y=q[0];if(V){let G=Y.search(/\S/),K=J.from+Y.indexOf(V),W=K+V.length;if(OZ(J.from,J.to,Q.doc).filter((F)=>{return F.mark.type.excluded.find((L)=>L===Z.type&&L!==F.mark.type)}).filter((F)=>F.to>K).length)return null;if(WJ.from)z.delete(J.from+G,K);let H=J.from+G+V.length;z.addMark(J.from+G,H,Z.type.create(X||{})),z.removeStoredMark(Z.type)}}})}function CZ(Z){return new k8({find:Z.find,handler:({state:Q,range:J,match:q})=>{let X=s(Z.getAttributes,void 0,q)||{},{tr:z}=Q,V=J.from,Y=J.to,G=Z.type.create(X);if(q[1]){let K=q[0].lastIndexOf(q[1]),W=V+K;if(W>Y)W=Y;else Y=W+q[1].length;let U=q[0][q[0].length-1];z.insertText(U,V+q[0].length-1),z.replaceWith(W,Y,G)}else if(q[0]){let K=Z.type.isInline?V:V-1;z.insert(K,Z.type.create(X)).delete(z.mapping.map(V),z.mapping.map(Y))}z.scrollIntoView()}})}function $8(Z){return new k8({find:Z.find,handler:({state:Q,range:J,match:q})=>{let X=Q.doc.resolve(J.from),z=s(Z.getAttributes,void 0,q)||{};if(!X.node(-1).canReplaceWith(X.index(-1),X.indexAfter(-1),Z.type))return null;Q.tr.delete(J.from,J.to).setBlockType(J.from,J.from,Z.type,z)}})}function L9(Z){return new k8({find:Z.find,handler:({state:Q,range:J,match:q,chain:X})=>{let z=s(Z.getAttributes,void 0,q)||{},V=Q.tr.delete(J.from,J.to),G=V.doc.resolve(J.from).blockRange(),K=G&&b1(G,Z.type,z);if(!K)return null;if(V.wrap(G,K),Z.keepMarks&&Z.editor){let{selection:U,storedMarks:H}=Q,{splittableMarks:F}=Z.editor.extensionManager,B=H||U.$to.parentOffset&&U.$from.marks();if(B){let L=B.filter((P)=>F.includes(P.type.name));V.ensureMarks(L)}}if(Z.keepAttributes){let U=Z.type.name==="bulletList"||Z.type.name==="orderedList"?"listItem":"taskList";X().updateAttributes(U,z).run()}let W=V.doc.resolve(J.from-1).nodeBefore;if(W&&W.type===Z.type&&V9(V.doc,J.from-1)&&(!Z.joinPredicate||Z.joinPredicate(q,W)))V.join(J.from-1)}})}class o{constructor(Z={}){if(this.type="node",this.name="node",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...Z},this.name=this.config.name,Z.defaultOptions&&Object.keys(Z.defaultOptions).length>0)console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);if(this.options=this.config.defaultOptions,this.config.addOptions)this.options=s(w(this,"addOptions",{name:this.name}));this.storage=s(w(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(Z={}){return new o(Z)}configure(Z={}){let Q=this.extend({...this.config,addOptions:()=>{return DZ(this.options,Z)}});return Q.name=this.name,Q.parent=this.parent,Q}extend(Z={}){let Q=new o(Z);if(Q.parent=this,this.child=Q,Q.name=Z.name?Z.name:Q.parent.name,Z.defaultOptions&&Object.keys(Z.defaultOptions).length>0)console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${Q.name}".`);return Q.options=s(w(Q,"addOptions",{name:Q.name})),Q.storage=s(w(Q,"addStorage",{name:Q.name,options:Q.options})),Q}}function Z9(Z){return new f3({find:Z.find,handler:({state:Q,range:J,match:q,pasteEvent:X})=>{let z=s(Z.getAttributes,void 0,q,X);if(z===!1||z===null)return null;let{tr:V}=Q,Y=q[q.length-1],G=q[0],K=J.to;if(Y){let W=G.search(/\S/),U=J.from+G.indexOf(Y),H=U+Y.length;if(OZ(J.from,J.to,Q.doc).filter((B)=>{return B.mark.type.excluded.find((P)=>P===Z.type&&P!==B.mark.type)}).filter((B)=>B.to>U).length)return null;if(HJ.from)V.delete(J.from+W,U);K=J.from+W+Y.length,V.addMark(J.from+W,K,Z.type.create(z||{})),V.removeStoredMark(Z.type)}}})}function r3(Z,Q){let{selection:J}=Z,{$from:q}=J;if(J instanceof u){let z=q.index();return q.parent.canReplaceWith(z,z+1,Q)}let X=q.depth;while(X>=0){let z=q.index(X);if(q.node(X).contentMatchAt(z).matchType(Q))return!0;X-=1}return!1}var QK=/^\s*>\s$/,o3=o.create({name:"blockquote",addOptions(){return{HTMLAttributes:{}}},content:"block+",group:"block",defining:!0,parseHTML(){return[{tag:"blockquote"}]},renderHTML({HTMLAttributes:Z}){return["blockquote",i(this.options.HTMLAttributes,Z),0]},addCommands(){return{setBlockquote:()=>({commands:Z})=>{return Z.wrapIn(this.name)},toggleBlockquote:()=>({commands:Z})=>{return Z.toggleWrap(this.name)},unsetBlockquote:()=>({commands:Z})=>{return Z.lift(this.name)}}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[L9({find:QK,type:this.type})]}});var JK=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,qK=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,XK=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,zK=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,t3=p0.create({name:"bold",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"strong"},{tag:"b",getAttrs:(Z)=>Z.style.fontWeight!=="normal"&&null},{style:"font-weight=400",clearMark:(Z)=>Z.type.name===this.name},{style:"font-weight",getAttrs:(Z)=>/^(bold(er)?|[5-9]\d{2,})$/.test(Z)&&null}]},renderHTML({HTMLAttributes:Z}){return["strong",i(this.options.HTMLAttributes,Z),0]},addCommands(){return{setBold:()=>({commands:Z})=>{return Z.setMark(this.name)},toggleBold:()=>({commands:Z})=>{return Z.toggleMark(this.name)},unsetBold:()=>({commands:Z})=>{return Z.unsetMark(this.name)}}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[B9({find:JK,type:this.type}),B9({find:XK,type:this.type})]},addPasteRules(){return[Z9({find:qK,type:this.type}),Z9({find:zK,type:this.type})]}});var VK="listItem",e3="textStyle",ZJ=/^\s*([-+*])\s$/,QJ=o.create({name:"bulletList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:"ul"}]},renderHTML({HTMLAttributes:Z}){return["ul",i(this.options.HTMLAttributes,Z),0]},addCommands(){return{toggleBulletList:()=>({commands:Z,chain:Q})=>{if(this.options.keepAttributes)return Q().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(VK,this.editor.getAttributes(e3)).run();return Z.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let Z=L9({find:ZJ,type:this.type});if(this.options.keepMarks||this.options.keepAttributes)Z=L9({find:ZJ,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>{return this.editor.getAttributes(e3)},editor:this.editor});return[Z]}});var YK=/(^|[^`])`([^`]+)`(?!`)/,GK=/(^|[^`])`([^`]+)`(?!`)/g,JJ=p0.create({name:"code",addOptions(){return{HTMLAttributes:{}}},excludes:"_",code:!0,exitable:!0,parseHTML(){return[{tag:"code"}]},renderHTML({HTMLAttributes:Z}){return["code",i(this.options.HTMLAttributes,Z),0]},addCommands(){return{setCode:()=>({commands:Z})=>{return Z.setMark(this.name)},toggleCode:()=>({commands:Z})=>{return Z.toggleMark(this.name)},unsetCode:()=>({commands:Z})=>{return Z.unsetMark(this.name)}}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[B9({find:YK,type:this.type})]},addPasteRules(){return[Z9({find:GK,type:this.type})]}});var KK=/^```([a-z]+)?[\s\n]$/,WK=/^~~~([a-z]+)?[\s\n]$/,kZ=o.create({name:"codeBlock",addOptions(){return{languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,defaultLanguage:null,HTMLAttributes:{}}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:this.options.defaultLanguage,parseHTML:(Z)=>{var Q;let{languageClassPrefix:J}=this.options,z=[...((Q=Z.firstElementChild)===null||Q===void 0?void 0:Q.classList)||[]].filter((V)=>V.startsWith(J)).map((V)=>V.replace(J,""))[0];if(!z)return null;return z},rendered:!1}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({node:Z,HTMLAttributes:Q}){return["pre",i(this.options.HTMLAttributes,Q),["code",{class:Z.attrs.language?this.options.languageClassPrefix+Z.attrs.language:null},0]]},addCommands(){return{setCodeBlock:(Z)=>({commands:Q})=>{return Q.setNode(this.name,Z)},toggleCodeBlock:(Z)=>({commands:Q})=>{return Q.toggleNode(this.name,"paragraph",Z)}}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{let{empty:Z,$anchor:Q}=this.editor.state.selection,J=Q.pos===1;if(!Z||Q.parent.type.name!==this.name)return!1;if(J||!Q.parent.textContent.length)return this.editor.commands.clearNodes();return!1},Enter:({editor:Z})=>{if(!this.options.exitOnTripleEnter)return!1;let{state:Q}=Z,{selection:J}=Q,{$from:q,empty:X}=J;if(!X||q.parent.type!==this.type)return!1;let z=q.parentOffset===q.parent.nodeSize-2,V=q.parent.textContent.endsWith(` + +`);if(!z||!V)return!1;return Z.chain().command(({tr:Y})=>{return Y.delete(q.pos-2,q.pos),!0}).exitCode().run()},ArrowDown:({editor:Z})=>{if(!this.options.exitOnArrowDown)return!1;let{state:Q}=Z,{selection:J,doc:q}=Q,{$from:X,empty:z}=J;if(!z||X.parent.type!==this.type)return!1;if(X.parentOffset!==X.parent.nodeSize-2)return!1;let Y=X.after();if(Y===void 0)return!1;if(q.nodeAt(Y))return Z.commands.command(({tr:K})=>{return K.setSelection(h.near(q.resolve(Y))),!0});return Z.commands.exitCode()}}},addInputRules(){return[$8({find:KK,type:this.type,getAttributes:(Z)=>({language:Z[1]})}),$8({find:WK,type:this.type,getAttributes:(Z)=>({language:Z[1]})})]},addProseMirrorPlugins(){return[new Z0({key:new K0("codeBlockVSCodeHandler"),props:{handlePaste:(Z,Q)=>{if(!Q.clipboardData)return!1;if(this.editor.isActive(this.type.name))return!1;let J=Q.clipboardData.getData("text/plain"),q=Q.clipboardData.getData("vscode-editor-data"),X=q?JSON.parse(q):void 0,z=X===null||X===void 0?void 0:X.mode;if(!J||!z)return!1;let{tr:V,schema:Y}=Z.state,G=Y.text(J.replace(/\r\n?/g,` +`));if(V.replaceSelectionWith(this.type.create({language:z},G)),V.selection.$from.parent.type!==this.type)V.setSelection(f.near(V.doc.resolve(Math.max(0,V.selection.from-2))));return V.setMeta("paste",!0),Z.dispatch(V),!0}}})]}});var qJ=o.create({name:"doc",topNode:!0,content:"block+"});function XJ(Z={}){return new Z0({view(Q){return new zJ(Q,Z)}})}class zJ{constructor(Z,Q){var J;this.editorView=Z,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=(J=Q.width)!==null&&J!==void 0?J:1,this.color=Q.color===!1?void 0:Q.color||"black",this.class=Q.class,this.handlers=["dragover","dragend","drop","dragleave"].map((q)=>{let X=(z)=>{this[q](z)};return Z.dom.addEventListener(q,X),{name:q,handler:X}})}destroy(){this.handlers.forEach(({name:Z,handler:Q})=>this.editorView.dom.removeEventListener(Z,Q))}update(Z,Q){if(this.cursorPos!=null&&Q.doc!=Z.state.doc)if(this.cursorPos>Z.state.doc.content.size)this.setCursor(null);else this.updateOverlay()}setCursor(Z){if(Z==this.cursorPos)return;if(this.cursorPos=Z,Z==null)this.element.parentNode.removeChild(this.element),this.element=null;else this.updateOverlay()}updateOverlay(){let Z=this.editorView.state.doc.resolve(this.cursorPos),Q=!Z.parent.inlineContent,J,q=this.editorView.dom,X=q.getBoundingClientRect(),z=X.width/q.offsetWidth,V=X.height/q.offsetHeight;if(Q){let{nodeBefore:W,nodeAfter:U}=Z;if(W||U){let H=this.editorView.nodeDOM(this.cursorPos-(W?W.nodeSize:0));if(H){let F=H.getBoundingClientRect(),B=W?F.bottom:F.top;if(W&&U)B=(B+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2;let L=this.width/2*V;J={left:F.left,right:F.right,top:B-L,bottom:B+L}}}}if(!J){let W=this.editorView.coordsAtPos(this.cursorPos),U=this.width/2*z;J={left:W.left-U,right:W.left+U,top:W.top,bottom:W.bottom}}let Y=this.editorView.dom.offsetParent;if(!this.element){if(this.element=Y.appendChild(document.createElement("div")),this.class)this.element.className=this.class;if(this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color)this.element.style.backgroundColor=this.color}this.element.classList.toggle("prosemirror-dropcursor-block",Q),this.element.classList.toggle("prosemirror-dropcursor-inline",!Q);let G,K;if(!Y||Y==document.body&&getComputedStyle(Y).position=="static")G=-pageXOffset,K=-pageYOffset;else{let W=Y.getBoundingClientRect(),U=W.width/Y.offsetWidth,H=W.height/Y.offsetHeight;G=W.left-Y.scrollLeft*U,K=W.top-Y.scrollTop*H}this.element.style.left=(J.left-G)/z+"px",this.element.style.top=(J.top-K)/V+"px",this.element.style.width=(J.right-J.left)/z+"px",this.element.style.height=(J.bottom-J.top)/V+"px"}scheduleRemoval(Z){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),Z)}dragover(Z){if(!this.editorView.editable)return;let Q=this.editorView.posAtCoords({left:Z.clientX,top:Z.clientY}),J=Q&&Q.inside>=0&&this.editorView.state.doc.nodeAt(Q.inside),q=J&&J.type.spec.disableDropCursor,X=typeof q=="function"?q(this.editorView,Q,Z):q;if(Q&&!X){let z=Q.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let V=r8(this.editorView.state.doc,z,this.editorView.dragging.slice);if(V!=null)z=V}this.setCursor(z),this.scheduleRemoval(5000)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(Z){if(!this.editorView.dom.contains(Z.relatedTarget))this.setCursor(null)}}var VJ=D0.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[XJ(this.options)]}});class B0 extends h{constructor(Z){super(Z,Z)}map(Z,Q){let J=Z.resolve(Q.map(this.head));return B0.valid(J)?new B0(J):h.near(J)}content(){return R.empty}eq(Z){return Z instanceof B0&&Z.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(Z,Q){if(typeof Q.pos!="number")throw RangeError("Invalid input for GapCursor.fromJSON");return new B0(Z.resolve(Q.pos))}getBookmark(){return new i4(this.anchor)}static valid(Z){let Q=Z.parent;if(Q.inlineContent||!UK(Z)||!HK(Z))return!1;let J=Q.type.spec.allowGapCursor;if(J!=null)return J;let q=Q.contentMatchAt(Z.index()).defaultType;return q&&q.isTextblock}static findGapCursorFrom(Z,Q,J=!1){Z:for(;;){if(!J&&B0.valid(Z))return Z;let q=Z.pos,X=null;for(let z=Z.depth;;z--){let V=Z.node(z);if(Q>0?Z.indexAfter(z)0){X=V.child(Q>0?Z.indexAfter(z):Z.index(z)-1);break}else if(z==0)return null;q+=Q;let Y=Z.doc.resolve(q);if(B0.valid(Y))return Y}for(;;){let z=Q>0?X.firstChild:X.lastChild;if(!z){if(X.isAtom&&!X.isText&&!u.isSelectable(X)){Z=Z.doc.resolve(q+X.nodeSize*Q),J=!1;continue Z}break}X=z,q+=Q;let V=Z.doc.resolve(q);if(B0.valid(V))return V}return null}}}B0.prototype.visible=!1;B0.findFrom=B0.findGapCursorFrom;h.jsonID("gapcursor",B0);class i4{constructor(Z){this.pos=Z}map(Z){return new i4(Z.map(this.pos))}resolve(Z){let Q=Z.resolve(this.pos);return B0.valid(Q)?new B0(Q):h.near(Q)}}function YJ(Z){return Z.isAtom||Z.spec.isolating||Z.spec.createGapCursor}function UK(Z){for(let Q=Z.depth;Q>=0;Q--){let J=Z.index(Q),q=Z.node(Q);if(J==0){if(q.type.spec.isolating)return!0;continue}for(let X=q.child(J-1);;X=X.lastChild){if(X.childCount==0&&!X.inlineContent||YJ(X.type))return!0;if(X.inlineContent)return!1}}return!0}function HK(Z){for(let Q=Z.depth;Q>=0;Q--){let J=Z.indexAfter(Q),q=Z.node(Q);if(J==q.childCount){if(q.type.spec.isolating)return!0;continue}for(let X=q.child(J);;X=X.firstChild){if(X.childCount==0&&!X.inlineContent||YJ(X.type))return!0;if(X.inlineContent)return!1}}return!0}function GJ(){return new Z0({props:{decorations:PK,createSelectionBetween(Z,Q,J){return Q.pos==J.pos&&B0.valid(J)?new B0(J):null},handleClick:BK,handleKeyDown:FK,handleDOMEvents:{beforeinput:LK}}})}var FK=M8({ArrowLeft:yZ("horiz",-1),ArrowRight:yZ("horiz",1),ArrowUp:yZ("vert",-1),ArrowDown:yZ("vert",1)});function yZ(Z,Q){let J=Z=="vert"?Q>0?"down":"up":Q>0?"right":"left";return function(q,X,z){let V=q.selection,Y=Q>0?V.$to:V.$from,G=V.empty;if(V instanceof f){if(!z.endOfTextblock(J)||Y.depth==0)return!1;G=!1,Y=q.doc.resolve(Q>0?Y.after():Y.before())}let K=B0.findGapCursorFrom(Y,Q,G);if(!K)return!1;if(X)X(q.tr.setSelection(new B0(K)));return!0}}function BK(Z,Q,J){if(!Z||!Z.editable)return!1;let q=Z.state.doc.resolve(Q);if(!B0.valid(q))return!1;let X=Z.posAtCoords({left:J.clientX,top:J.clientY});if(X&&X.inside>-1&&u.isSelectable(Z.state.doc.nodeAt(X.inside)))return!1;return Z.dispatch(Z.state.tr.setSelection(new B0(q))),!0}function LK(Z,Q){if(Q.inputType!="insertCompositionText"||!(Z.state.selection instanceof B0))return!1;let{$from:J}=Z.state.selection,q=J.parent.contentMatchAt(J.index()).findWrapping(Z.state.schema.nodes.text);if(!q)return!1;let X=D.empty;for(let V=q.length-1;V>=0;V--)X=D.from(q[V].createAndFill(null,X));let z=Z.state.tr.replace(J.pos,J.pos,new R(X,0,0));return z.setSelection(f.near(z.doc.resolve(J.pos+1))),Z.dispatch(z),!1}function PK(Z){if(!(Z.selection instanceof B0))return null;let Q=document.createElement("div");return Q.className="ProseMirror-gapcursor",q0.create(Z.doc,[I0.widget(Z.selection.head,Q,{key:"gapcursor"})])}var KJ=D0.create({name:"gapCursor",addProseMirrorPlugins(){return[GJ()]},extendNodeSchema(Z){var Q;let J={name:Z.name,options:Z.options,storage:Z.storage};return{allowGapCursor:(Q=s(w(Z,"allowGapCursor",J)))!==null&&Q!==void 0?Q:null}}});var WJ=o.create({name:"hardBreak",addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:"inline",selectable:!1,linebreakReplacement:!0,parseHTML(){return[{tag:"br"}]},renderHTML({HTMLAttributes:Z}){return["br",i(this.options.HTMLAttributes,Z)]},renderText(){return` +`},addCommands(){return{setHardBreak:()=>({commands:Z,chain:Q,state:J,editor:q})=>{return Z.first([()=>Z.exitCode(),()=>Z.command(()=>{let{selection:X,storedMarks:z}=J;if(X.$from.parent.type.spec.isolating)return!1;let{keepMarks:V}=this.options,{splittableMarks:Y}=q.extensionManager,G=z||X.$to.parentOffset&&X.$from.marks();return Q().insertContent({type:this.name}).command(({tr:K,dispatch:W})=>{if(W&&G&&V){let U=G.filter((H)=>Y.includes(H.type.name));K.ensureMarks(U)}return!0}).run()})])}}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}});var UJ=o.create({name:"heading",addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:"inline*",group:"block",defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map((Z)=>({tag:`h${Z}`,attrs:{level:Z}}))},renderHTML({node:Z,HTMLAttributes:Q}){return[`h${this.options.levels.includes(Z.attrs.level)?Z.attrs.level:this.options.levels[0]}`,i(this.options.HTMLAttributes,Q),0]},addCommands(){return{setHeading:(Z)=>({commands:Q})=>{if(!this.options.levels.includes(Z.level))return!1;return Q.setNode(this.name,Z)},toggleHeading:(Z)=>({commands:Q})=>{if(!this.options.levels.includes(Z.level))return!1;return Q.toggleNode(this.name,"paragraph",Z)}}},addKeyboardShortcuts(){return this.options.levels.reduce((Z,Q)=>({...Z,...{[`Mod-Alt-${Q}`]:()=>this.editor.commands.toggleHeading({level:Q})}}),{})},addInputRules(){return this.options.levels.map((Z)=>{return $8({find:new RegExp(`^(#{${Math.min(...this.options.levels)},${Z}})\\s$`),type:this.type,getAttributes:{level:Z}})})}});var $Z=200,E0=function(){};E0.prototype.append=function(Q){if(!Q.length)return this;return Q=E0.from(Q),!this.length&&Q||Q.length<$Z&&this.leafAppend(Q)||this.length<$Z&&Q.leafPrepend(this)||this.appendInner(Q)};E0.prototype.prepend=function(Q){if(!Q.length)return this;return E0.from(Q).append(this)};E0.prototype.appendInner=function(Q){return new _K(this,Q)};E0.prototype.slice=function(Q,J){if(Q===void 0)Q=0;if(J===void 0)J=this.length;if(Q>=J)return E0.empty;return this.sliceInner(Math.max(0,Q),Math.min(this.length,J))};E0.prototype.get=function(Q){if(Q<0||Q>=this.length)return;return this.getInner(Q)};E0.prototype.forEach=function(Q,J,q){if(J===void 0)J=0;if(q===void 0)q=this.length;if(J<=q)this.forEachInner(Q,J,q,0);else this.forEachInvertedInner(Q,J,q,0)};E0.prototype.map=function(Q,J,q){if(J===void 0)J=0;if(q===void 0)q=this.length;var X=[];return this.forEach(function(z,V){return X.push(Q(z,V))},J,q),X};E0.from=function(Q){if(Q instanceof E0)return Q;return Q&&Q.length?new HJ(Q):E0.empty};var HJ=function(Z){function Q(q){Z.call(this),this.values=q}if(Z)Q.__proto__=Z;Q.prototype=Object.create(Z&&Z.prototype),Q.prototype.constructor=Q;var J={length:{configurable:!0},depth:{configurable:!0}};return Q.prototype.flatten=function(){return this.values},Q.prototype.sliceInner=function(X,z){if(X==0&&z==this.length)return this;return new Q(this.values.slice(X,z))},Q.prototype.getInner=function(X){return this.values[X]},Q.prototype.forEachInner=function(X,z,V,Y){for(var G=z;G=V;G--)if(X(this.values[G],Y+G)===!1)return!1},Q.prototype.leafAppend=function(X){if(this.length+X.length<=$Z)return new Q(this.values.concat(X.flatten()))},Q.prototype.leafPrepend=function(X){if(this.length+X.length<=$Z)return new Q(X.flatten().concat(this.values))},J.length.get=function(){return this.values.length},J.depth.get=function(){return 0},Object.defineProperties(Q.prototype,J),Q}(E0);E0.empty=new HJ([]);var _K=function(Z){function Q(J,q){Z.call(this),this.left=J,this.right=q,this.length=J.length+q.length,this.depth=Math.max(J.depth,q.depth)+1}if(Z)Q.__proto__=Z;return Q.prototype=Object.create(Z&&Z.prototype),Q.prototype.constructor=Q,Q.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},Q.prototype.getInner=function(q){return qY&&this.right.forEachInner(q,Math.max(X-Y,0),Math.min(this.length,z)-Y,V+Y)===!1)return!1},Q.prototype.forEachInvertedInner=function(q,X,z,V){var Y=this.left.length;if(X>Y&&this.right.forEachInvertedInner(q,X-Y,Math.max(z,Y)-Y,V+Y)===!1)return!1;if(z=z)return this.right.slice(q-z,X-z);return this.left.slice(q,z).append(this.right.slice(0,X-z))},Q.prototype.leafAppend=function(q){var X=this.right.leafAppend(q);if(X)return new Q(this.left,X)},Q.prototype.leafPrepend=function(q){var X=this.left.leafPrepend(q);if(X)return new Q(X,this.right)},Q.prototype.appendInner=function(q){if(this.left.depth>=Math.max(this.right.depth,q.depth)+1)return new Q(this.left,new Q(this.right,q));return new Q(this,q)},Q}(E0),n4=E0;var jK=500;class Y9{constructor(Z,Q){this.items=Z,this.eventCount=Q}popEvent(Z,Q){if(this.eventCount==0)return null;let J=this.items.length;for(;;J--)if(this.items.get(J-1).selection){--J;break}let q,X;if(Q)q=this.remapping(J,this.items.length),X=q.maps.length;let z=Z.tr,V,Y,G=[],K=[];return this.items.forEach((W,U)=>{if(!W.step){if(!q)q=this.remapping(J,U+1),X=q.maps.length;X--,K.push(W);return}if(q){K.push(new P9(W.map));let H=W.step.map(q.slice(X)),F;if(H&&z.maybeStep(H).doc)F=z.mapping.maps[z.mapping.maps.length-1],G.push(new P9(F,void 0,void 0,G.length+K.length));if(X--,F)q.appendMap(F,X)}else z.maybeStep(W.step);if(W.selection)return V=q?W.selection.map(q.slice(X)):W.selection,Y=new Y9(this.items.slice(0,J).append(K.reverse().concat(G)),this.eventCount-1),!1},this.items.length,0),{remaining:Y,transform:z,selection:V}}addTransform(Z,Q,J,q){let X=[],z=this.eventCount,V=this.items,Y=!q&&V.length?V.get(V.length-1):null;for(let K=0;KDK)V=IK(V,G),z-=G;return new Y9(V.append(X),z)}remapping(Z,Q){let J=new N1;return this.items.forEach((q,X)=>{let z=q.mirrorOffset!=null&&X-q.mirrorOffset>=Z?J.maps.length-q.mirrorOffset:void 0;J.appendMap(q.map,z)},Z,Q),J}addMaps(Z){if(this.eventCount==0)return this;return new Y9(this.items.append(Z.map((Q)=>new P9(Q))),this.eventCount)}rebased(Z,Q){if(!this.eventCount)return this;let J=[],q=Math.max(0,this.items.length-Q),X=Z.mapping,z=Z.steps.length,V=this.eventCount;this.items.forEach((U)=>{if(U.selection)V--},q);let Y=Q;this.items.forEach((U)=>{let H=X.getMirror(--Y);if(H==null)return;z=Math.min(z,H);let F=X.maps[H];if(U.step){let B=Z.steps[H].invert(Z.docs[H]),L=U.selection&&U.selection.map(X.slice(Y+1,H));if(L)V++;J.push(new P9(F,B,L))}else J.push(new P9(F))},q);let G=[];for(let U=Q;UjK)W=W.compress(this.items.length-J.length);return W}emptyItemCount(){let Z=0;return this.items.forEach((Q)=>{if(!Q.step)Z++}),Z}compress(Z=this.items.length){let Q=this.remapping(0,Z),J=Q.maps.length,q=[],X=0;return this.items.forEach((z,V)=>{if(V>=Z){if(q.push(z),z.selection)X++}else if(z.step){let Y=z.step.map(Q.slice(J)),G=Y&&Y.getMap();if(J--,G)Q.appendMap(G,J);if(Y){let K=z.selection&&z.selection.map(Q.slice(J));if(K)X++;let W=new P9(G.invert(),Y,K),U,H=q.length-1;if(U=q.length&&q[H].merge(W))q[H]=U;else q.push(W)}}else if(z.map)J--},this.items.length,0),new Y9(n4.from(q.reverse()),X)}}Y9.empty=new Y9(n4.empty,0);function IK(Z,Q){let J;return Z.forEach((q,X)=>{if(q.selection&&Q--==0)return J=X,!1}),Z.slice(J)}class P9{constructor(Z,Q,J,q){this.map=Z,this.step=Q,this.selection=J,this.mirrorOffset=q}merge(Z){if(this.step&&Z.step&&!Z.selection){let Q=Z.step.merge(this.step);if(Q)return new P9(Q.getMap().invert(),Q,this.selection)}}}class N9{constructor(Z,Q,J,q,X){this.done=Z,this.undone=Q,this.prevRanges=J,this.prevTime=q,this.prevComposition=X}}var DK=20;function MK(Z,Q,J,q){let X=J.getMeta(L1),z;if(X)return X.historyState;if(J.getMeta(CK))Z=new N9(Z.done,Z.undone,null,0,-1);let V=J.getMeta("appendedTransaction");if(J.steps.length==0)return Z;else if(V&&V.getMeta(L1))if(V.getMeta(L1).redo)return new N9(Z.done.addTransform(J,void 0,q,NZ(Q)),Z.undone,FJ(J.mapping.maps),Z.prevTime,Z.prevComposition);else return new N9(Z.done,Z.undone.addTransform(J,void 0,q,NZ(Q)),null,Z.prevTime,Z.prevComposition);else if(J.getMeta("addToHistory")!==!1&&!(V&&V.getMeta("addToHistory")===!1)){let Y=J.getMeta("composition"),G=Z.prevTime==0||!V&&Z.prevComposition!=Y&&(Z.prevTime<(J.time||0)-q.newGroupDelay||!AK(J,Z.prevRanges)),K=V?s4(Z.prevRanges,J.mapping):FJ(J.mapping.maps);return new N9(Z.done.addTransform(J,G?Q.selection.getBookmark():void 0,q,NZ(Q)),Y9.empty,K,J.time,Y==null?Z.prevComposition:Y)}else if(z=J.getMeta("rebased"))return new N9(Z.done.rebased(J,z),Z.undone.rebased(J,z),s4(Z.prevRanges,J.mapping),Z.prevTime,Z.prevComposition);else return new N9(Z.done.addMaps(J.mapping.maps),Z.undone.addMaps(J.mapping.maps),s4(Z.prevRanges,J.mapping),Z.prevTime,Z.prevComposition)}function AK(Z,Q){if(!Q)return!1;if(!Z.docChanged)return!0;let J=!1;return Z.mapping.maps[0].forEach((q,X)=>{for(let z=0;z=Q[z])J=!0}),J}function FJ(Z){let Q=[];for(let J=Z.length-1;J>=0&&Q.length==0;J--)Z[J].forEach((q,X,z,V)=>Q.push(z,V));return Q}function s4(Z,Q){if(!Z)return null;let J=[];for(let q=0;q{let X=L1.getState(J);if(!X||(Z?X.undone:X.done).eventCount==0)return!1;if(q){let z=OK(X,J,Z);if(z)q(Q?z.scrollIntoView():z)}return!0}}var r4=RZ(!1,!0),o4=RZ(!0,!0),nB=RZ(!1,!1),sB=RZ(!0,!1);var PJ=D0.create({name:"history",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:Z,dispatch:Q})=>{return r4(Z,Q)},redo:()=>({state:Z,dispatch:Q})=>{return o4(Z,Q)}}},addProseMirrorPlugins(){return[LJ(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}});var _J=o.create({name:"horizontalRule",addOptions(){return{HTMLAttributes:{}}},group:"block",parseHTML(){return[{tag:"hr"}]},renderHTML({HTMLAttributes:Z}){return["hr",i(this.options.HTMLAttributes,Z)]},addCommands(){return{setHorizontalRule:()=>({chain:Z,state:Q})=>{if(!r3(Q,Q.schema.nodes[this.name]))return!1;let{selection:J}=Q,{$from:q,$to:X}=J,z=Z();if(q.parentOffset===0)z.insertContentAt({from:Math.max(q.pos-1,0),to:X.pos},{type:this.name});else if(a3(J))z.insertContentAt(X.pos,{type:this.name});else z.insertContent({type:this.name});return z.command(({tr:V,dispatch:Y})=>{var G;if(Y){let{$to:K}=V.selection,W=K.end();if(K.nodeAfter)if(K.nodeAfter.isTextblock)V.setSelection(f.create(V.doc,K.pos+1));else if(K.nodeAfter.isBlock)V.setSelection(u.create(V.doc,K.pos));else V.setSelection(f.create(V.doc,K.pos));else{let U=(G=K.parent.type.contentMatch.defaultType)===null||G===void 0?void 0:G.create();if(U)V.insert(W,U),V.setSelection(f.create(V.doc,W+1))}V.scrollIntoView()}return!0}).run()}}},addInputRules(){return[CZ({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}});var kK=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,yK=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,$K=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,NK=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,jJ=p0.create({name:"italic",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"em"},{tag:"i",getAttrs:(Z)=>Z.style.fontStyle!=="normal"&&null},{style:"font-style=normal",clearMark:(Z)=>Z.type.name===this.name},{style:"font-style=italic"}]},renderHTML({HTMLAttributes:Z}){return["em",i(this.options.HTMLAttributes,Z),0]},addCommands(){return{setItalic:()=>({commands:Z})=>{return Z.setMark(this.name)},toggleItalic:()=>({commands:Z})=>{return Z.toggleMark(this.name)},unsetItalic:()=>({commands:Z})=>{return Z.unsetMark(this.name)}}},addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[B9({find:kK,type:this.type}),B9({find:$K,type:this.type})]},addPasteRules(){return[Z9({find:yK,type:this.type}),Z9({find:NK,type:this.type})]}});var IJ=o.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:Z}){return["li",i(this.options.HTMLAttributes,Z),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}});var RK="listItem",DJ="textStyle",MJ=/^(\d+)\.\s$/,AJ=o.create({name:"orderedList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:(Z)=>{return Z.hasAttribute("start")?parseInt(Z.getAttribute("start")||"",10):1}},type:{default:null,parseHTML:(Z)=>Z.getAttribute("type")}}},parseHTML(){return[{tag:"ol"}]},renderHTML({HTMLAttributes:Z}){let{start:Q,...J}=Z;return Q===1?["ol",i(this.options.HTMLAttributes,J),0]:["ol",i(this.options.HTMLAttributes,Z),0]},addCommands(){return{toggleOrderedList:()=>({commands:Z,chain:Q})=>{if(this.options.keepAttributes)return Q().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(RK,this.editor.getAttributes(DJ)).run();return Z.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let Z=L9({find:MJ,type:this.type,getAttributes:(Q)=>({start:+Q[1]}),joinPredicate:(Q,J)=>J.childCount+J.attrs.start===+Q[1]});if(this.options.keepMarks||this.options.keepAttributes)Z=L9({find:MJ,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:(Q)=>({start:+Q[1],...this.editor.getAttributes(DJ)}),joinPredicate:(Q,J)=>J.childCount+J.attrs.start===+Q[1],editor:this.editor});return[Z]}});var OJ=o.create({name:"paragraph",priority:1000,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:Z}){return["p",i(this.options.HTMLAttributes,Z),0]},addCommands(){return{setParagraph:()=>({commands:Z})=>{return Z.setNode(this.name)}}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}});var bK=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,EK=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,CJ=p0.create({name:"strike",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:(Z)=>Z.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:Z}){return["s",i(this.options.HTMLAttributes,Z),0]},addCommands(){return{setStrike:()=>({commands:Z})=>{return Z.setMark(this.name)},toggleStrike:()=>({commands:Z})=>{return Z.toggleMark(this.name)},unsetStrike:()=>({commands:Z})=>{return Z.unsetMark(this.name)}}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[B9({find:bK,type:this.type})]},addPasteRules(){return[Z9({find:EK,type:this.type})]}});var kJ=o.create({name:"text",group:"inline"});var yJ=D0.create({name:"starterKit",addExtensions(){let Z=[];if(this.options.bold!==!1)Z.push(t3.configure(this.options.bold));if(this.options.blockquote!==!1)Z.push(o3.configure(this.options.blockquote));if(this.options.bulletList!==!1)Z.push(QJ.configure(this.options.bulletList));if(this.options.code!==!1)Z.push(JJ.configure(this.options.code));if(this.options.codeBlock!==!1)Z.push(kZ.configure(this.options.codeBlock));if(this.options.document!==!1)Z.push(qJ.configure(this.options.document));if(this.options.dropcursor!==!1)Z.push(VJ.configure(this.options.dropcursor));if(this.options.gapcursor!==!1)Z.push(KJ.configure(this.options.gapcursor));if(this.options.hardBreak!==!1)Z.push(WJ.configure(this.options.hardBreak));if(this.options.heading!==!1)Z.push(UJ.configure(this.options.heading));if(this.options.history!==!1)Z.push(PJ.configure(this.options.history));if(this.options.horizontalRule!==!1)Z.push(_J.configure(this.options.horizontalRule));if(this.options.italic!==!1)Z.push(jJ.configure(this.options.italic));if(this.options.listItem!==!1)Z.push(IJ.configure(this.options.listItem));if(this.options.orderedList!==!1)Z.push(AJ.configure(this.options.orderedList));if(this.options.paragraph!==!1)Z.push(OJ.configure(this.options.paragraph));if(this.options.strike!==!1)Z.push(CJ.configure(this.options.strike));if(this.options.text!==!1)Z.push(kJ.configure(this.options.text));return Z}});var $J=D0.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new Z0({key:new K0("placeholder"),props:{decorations:({doc:Z,selection:Q})=>{let J=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:q}=Q,X=[];if(!J)return null;let z=this.editor.isEmpty;return Z.descendants((V,Y)=>{let G=q>=Y&&q<=Y+V.nodeSize,K=!V.isLeaf&&y8(V);if((G||!this.options.showOnlyCurrent)&&K){let W=[this.options.emptyNodeClass];if(z)W.push(this.options.emptyEditorClass);let U=I0.node(Y,Y+V.nodeSize,{class:W.join(" "),"data-placeholder":typeof this.options.placeholder==="function"?this.options.placeholder({editor:this.editor,node:V,pos:Y,hasAnchor:G}):this.options.placeholder});X.push(U)}return this.options.includeChildren}),q0.create(Z,X)}}})]}});function TK(Z,Q){if(!(Z in Q))Q[Z]=[];return Q[Z]}function P1(Z,Q,J){if(Q.numeric)Q.asciinumeric=!0,Q.alphanumeric=!0;if(Q.ascii)Q.asciinumeric=!0,Q.alpha=!0;if(Q.asciinumeric)Q.alphanumeric=!0;if(Q.alpha)Q.alphanumeric=!0;if(Q.alphanumeric)Q.domain=!0;if(Q.emoji)Q.domain=!0;for(let q in Q){let X=TK(q,J);if(X.indexOf(Z)<0)X.push(Z)}}function xK(Z,Q){let J={};for(let q in Q)if(Q[q].indexOf(Z)>=0)J[q]=!0;return J}function l0(Z=null){this.j={},this.jr=[],this.jd=null,this.t=Z}l0.groups={};l0.prototype={accepts(){return!!this.t},go(Z){let Q=this,J=Q.j[Z];if(J)return J;for(let q=0;qZ.ta(Q,J,q,X),L0=(Z,Q,J,q,X)=>Z.tr(Q,J,q,X),NJ=(Z,Q,J,q,X)=>Z.ts(Q,J,q,X),y=(Z,Q,J,q,X)=>Z.tt(Q,J,q,X),E9="WORD",q6="UWORD",SJ="ASCIINUMERICAL",vJ="ALPHANUMERICAL",S8="LOCALHOST",X6="TLD",z6="UTLD",xZ="SCHEME",p1="SLASH_SCHEME",Y6="NUM",V6="WS",G6="NL",R8="OPENBRACE",b8="CLOSEBRACE",SZ="OPENBRACKET",vZ="CLOSEBRACKET",wZ="OPENPAREN",fZ="CLOSEPAREN",uZ="OPENANGLEBRACKET",gZ="CLOSEANGLEBRACKET",hZ="FULLWIDTHLEFTPAREN",mZ="FULLWIDTHRIGHTPAREN",cZ="LEFTCORNERBRACKET",pZ="RIGHTCORNERBRACKET",lZ="LEFTWHITECORNERBRACKET",dZ="RIGHTWHITECORNERBRACKET",iZ="FULLWIDTHLESSTHAN",nZ="FULLWIDTHGREATERTHAN",sZ="AMPERSAND",aZ="APOSTROPHE",rZ="ASTERISK",n9="AT",oZ="BACKSLASH",tZ="BACKTICK",eZ="CARET",s9="COLON",K6="COMMA",Z5="DOLLAR",_9="DOT",Q5="EQUALS",W6="EXCLAMATION",J9="HYPHEN",E8="PERCENT",J5="PIPE",q5="PLUS",X5="POUND",T8="QUERY",U6="QUOTE",wJ="FULLWIDTHMIDDLEDOT",H6="SEMI",j9="SLASH",x8="TILDE",z5="UNDERSCORE",fJ="EMOJI",V5="SYM",uJ=Object.freeze({__proto__:null,ALPHANUMERICAL:vJ,AMPERSAND:sZ,APOSTROPHE:aZ,ASCIINUMERICAL:SJ,ASTERISK:rZ,AT:n9,BACKSLASH:oZ,BACKTICK:tZ,CARET:eZ,CLOSEANGLEBRACKET:gZ,CLOSEBRACE:b8,CLOSEBRACKET:vZ,CLOSEPAREN:fZ,COLON:s9,COMMA:K6,DOLLAR:Z5,DOT:_9,EMOJI:fJ,EQUALS:Q5,EXCLAMATION:W6,FULLWIDTHGREATERTHAN:nZ,FULLWIDTHLEFTPAREN:hZ,FULLWIDTHLESSTHAN:iZ,FULLWIDTHMIDDLEDOT:wJ,FULLWIDTHRIGHTPAREN:mZ,HYPHEN:J9,LEFTCORNERBRACKET:cZ,LEFTWHITECORNERBRACKET:lZ,LOCALHOST:S8,NL:G6,NUM:Y6,OPENANGLEBRACKET:uZ,OPENBRACE:R8,OPENBRACKET:SZ,OPENPAREN:wZ,PERCENT:E8,PIPE:J5,PLUS:q5,POUND:X5,QUERY:T8,QUOTE:U6,RIGHTCORNERBRACKET:pZ,RIGHTWHITECORNERBRACKET:dZ,SCHEME:xZ,SEMI:H6,SLASH:j9,SLASH_SCHEME:p1,SYM:V5,TILDE:x8,TLD:X6,UNDERSCORE:z5,UTLD:z6,UWORD:q6,WORD:E9,WS:V6}),R9=/[a-z]/,N8=/\p{L}/u,t4=/\p{Emoji}/u;var b9=/\d/,e4=/\s/;var RJ="\r",Z6=` +`,SK="️",vK="‍",Q6="",bZ=null,EZ=null;function wK(Z=[]){let Q={};l0.groups=Q;let J=new l0;if(bZ==null)bZ=bJ("aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2");if(EZ==null)EZ=bJ("ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2");y(J,"'",aZ),y(J,"{",R8),y(J,"}",b8),y(J,"[",SZ),y(J,"]",vZ),y(J,"(",wZ),y(J,")",fZ),y(J,"<",uZ),y(J,">",gZ),y(J,"(",hZ),y(J,")",mZ),y(J,"「",cZ),y(J,"」",pZ),y(J,"『",lZ),y(J,"』",dZ),y(J,"<",iZ),y(J,">",nZ),y(J,"&",sZ),y(J,"*",rZ),y(J,"@",n9),y(J,"`",tZ),y(J,"^",eZ),y(J,":",s9),y(J,",",K6),y(J,"$",Z5),y(J,".",_9),y(J,"=",Q5),y(J,"!",W6),y(J,"-",J9),y(J,"%",E8),y(J,"|",J5),y(J,"+",q5),y(J,"#",X5),y(J,"?",T8),y(J,'"',U6),y(J,"/",j9),y(J,";",H6),y(J,"~",x8),y(J,"_",z5),y(J,"\\",oZ),y(J,"・",wJ);let q=L0(J,b9,Y6,{["numeric"]:!0});L0(q,b9,q);let X=L0(q,R9,SJ,{["asciinumeric"]:!0}),z=L0(q,N8,vJ,{["alphanumeric"]:!0}),V=L0(J,R9,E9,{["ascii"]:!0});L0(V,b9,X),L0(V,R9,V),L0(X,b9,X),L0(X,R9,X);let Y=L0(J,N8,q6,{["alpha"]:!0});L0(Y,R9),L0(Y,b9,z),L0(Y,N8,Y),L0(z,b9,z),L0(z,R9),L0(z,N8,z);let G=y(J,Z6,G6,{["whitespace"]:!0}),K=y(J,RJ,V6,{["whitespace"]:!0}),W=L0(J,e4,V6,{["whitespace"]:!0});y(J,Q6,W),y(K,Z6,G),y(K,Q6,W),L0(K,e4,W),y(W,RJ),y(W,Z6),L0(W,e4,W),y(W,Q6,W);let U=L0(J,t4,fJ,{["emoji"]:!0});y(U,"#"),L0(U,t4,U),y(U,SK,U);let H=y(U,vK);y(H,"#"),L0(H,t4,U);let F=[[R9,V],[b9,X]],B=[[R9,null],[N8,Y],[b9,z]];for(let L=0;LL[0]>P[0]?1:-1);for(let L=0;L=0)A.domain=!0;else if(!R9.test(P))A.numeric=!0;else if(b9.test(P))A.asciinumeric=!0;else A.ascii=!0;NJ(J,P,P,A)}return NJ(J,"localhost",S8,{ascii:!0}),J.jd=new l0(V5),{start:J,tokens:Object.assign({groups:Q},uJ)}}function gJ(Z,Q){let J=fK(Q.replace(/[A-Z]/g,(Y)=>Y.toLowerCase())),q=J.length,X=[],z=0,V=0;while(V=0)U+=J[V].length,H++;K+=J[V].length,z+=J[V].length,V++}z-=U,V-=H,K-=U,X.push({t:W.t,v:Q.slice(z-K,z),s:z-K,e:z})}return X}function fK(Z){let Q=[],J=Z.length,q=0;while(q56319||q+1===J||(z=Z.charCodeAt(q+1))<56320||z>57343?Z[q]:Z.slice(q,q+2);Q.push(V),q+=V.length}return Q}function i9(Z,Q,J,q,X){let z,V=Q.length;for(let Y=0;Y=0)z++;if(z>0){Q.push(J.join(""));for(let V=parseInt(Z.substring(q,q+z),10);V>0;V--)J.pop();q+=z}else J.push(Z[q]),q++}return Q}var v8={defaultProtocol:"http",events:null,format:EJ,formatHref:EJ,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function F6(Z,Q=null){let J=Object.assign({},v8);if(Z)J=Object.assign(J,Z instanceof F6?Z.o:Z);let q=J.ignoreTags,X=[];for(let z=0;zJ?q.substring(0,J)+"…":q},toFormattedHref(Z){return Z.get("formatHref",this.toHref(Z.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(Z=v8.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(Z),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(Z){return{type:this.t,value:this.toFormattedString(Z),isLink:this.isLink,href:this.toFormattedHref(Z),start:this.startIndex(),end:this.endIndex()}},validate(Z){return Z.get("validate",this.toString(),this)},render(Z){let Q=this,J=this.toHref(Z.get("defaultProtocol")),q=Z.get("formatHref",J,this),X=Z.get("tagName",J,Q),z=this.toFormattedString(Z),V={},Y=Z.get("className",J,Q),G=Z.get("target",J,Q),K=Z.get("rel",J,Q),W=Z.getObj("attributes",J,Q),U=Z.getObj("events",J,Q);if(V.href=q,Y)V.class=Y;if(G)V.target=G;if(K)V.rel=K;if(W)Object.assign(V,W);return{tagName:X,attributes:V,content:z,eventListeners:U}}};function Y5(Z,Q){class J extends hJ{constructor(q,X){super(q,X);this.t=Z}}for(let q in Q)J.prototype[q]=Q[q];return J.t=Z,J}var TJ=Y5("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),xJ=Y5("text"),uK=Y5("nl"),TZ=Y5("url",{isLink:!0,toHref(Z=v8.defaultProtocol){return this.hasProtocol()?this.v:`${Z}://${this.v}`},hasProtocol(){let Z=this.tk;return Z.length>=2&&Z[0].t!==S8&&Z[1].t===s9}});var Q9=(Z)=>new l0(Z);function gK({groups:Z}){let Q=Z.domain.concat([sZ,rZ,n9,oZ,tZ,eZ,Z5,Q5,J9,Y6,E8,J5,q5,X5,j9,V5,x8,z5]),J=[aZ,s9,K6,_9,W6,E8,T8,U6,H6,uZ,gZ,R8,b8,vZ,SZ,wZ,fZ,hZ,mZ,cZ,pZ,lZ,dZ,iZ,nZ],q=[sZ,aZ,rZ,oZ,tZ,eZ,Z5,Q5,J9,R8,b8,E8,J5,q5,X5,T8,j9,V5,x8,z5],X=Q9(),z=y(X,x8);a(z,q,z),a(z,Z.domain,z);let V=Q9(),Y=Q9(),G=Q9();a(X,Z.domain,V),a(X,Z.scheme,Y),a(X,Z.slashscheme,G),a(V,q,z),a(V,Z.domain,V);let K=y(V,n9);y(z,n9,K),y(Y,n9,K),y(G,n9,K);let W=y(z,_9);a(W,q,z),a(W,Z.domain,z);let U=Q9();a(K,Z.domain,U),a(U,Z.domain,U);let H=y(U,_9);a(H,Z.domain,U);let F=Q9(TJ);a(H,Z.tld,F),a(H,Z.utld,F),y(K,S8,F);let B=y(U,J9);y(B,J9,B),a(B,Z.domain,U),a(F,Z.domain,U),y(F,_9,H),y(F,J9,B);let L=y(F,s9);a(L,Z.numeric,TJ);let P=y(V,J9),_=y(V,_9);y(P,J9,P),a(P,Z.domain,V),a(_,q,z),a(_,Z.domain,V);let A=Q9(TZ);a(_,Z.tld,A),a(_,Z.utld,A),a(A,Z.domain,V),a(A,q,z),y(A,_9,_),y(A,J9,P),y(A,n9,K);let k=y(A,s9),N=Q9(TZ);a(k,Z.numeric,N);let $=Q9(TZ),x=Q9();a($,Q,$),a($,J,x),a(x,Q,$),a(x,J,x),y(A,j9,$),y(N,j9,$);let b=y(Y,s9),S=y(G,s9),m=y(S,j9),U0=y(m,j9);a(Y,Z.domain,V),y(Y,_9,_),y(Y,J9,P),a(G,Z.domain,V),y(G,_9,_),y(G,J9,P),a(b,Z.domain,$),y(b,j9,$),y(b,T8,$),a(U0,Z.domain,$),a(U0,Q,$),y(U0,j9,$);let T0=[[R8,b8],[SZ,vZ],[wZ,fZ],[uZ,gZ],[hZ,mZ],[cZ,pZ],[lZ,dZ],[iZ,nZ]];for(let C0=0;C0=0)H++;X++,W++}if(H<0){if(X-=W,X0)z.push(J6(xJ,Q,V)),V=[];X-=H,W-=H;let F=U.t,B=J.slice(X-W,X);z.push(J6(F,Q,B))}}if(V.length>0)z.push(J6(xJ,Q,V));return z}function J6(Z,Q,J){let q=J[0].s,X=J[J.length-1].e,z=Q.slice(q,X);return new Z(z,J)}var mK=typeof console<"u"&&console&&console.warn||(()=>{}),cK="until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.",W0={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function mJ(){return l0.groups={},W0.scanner=null,W0.parser=null,W0.tokenQueue=[],W0.pluginQueue=[],W0.customSchemes=[],W0.initialized=!1,W0}function B6(Z,Q=!1){if(W0.initialized)mK(`linkifyjs: already initialized - will not register custom scheme "${Z}" ${cK}`);if(!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(Z))throw Error(`linkifyjs: incorrect scheme format. +1. Must only contain digits, lowercase ASCII letters or "-" +2. Cannot start or end with "-" +3. "-" cannot repeat`);W0.customSchemes.push([Z,Q])}function pK(){W0.scanner=wK(W0.customSchemes);for(let Z=0;Z{let X=Q.some((K)=>K.docChanged)&&!J.doc.eq(q.doc),z=Q.some((K)=>K.getMeta("preventAutolink"));if(!X||z)return;let{tr:V}=q,Y=i3(J.doc,[...Q]);if(s3(Y).forEach(({newRange:K})=>{let W=n3(q.doc,K,(F)=>F.isTextblock),U,H;if(W.length>1)U=W[0],H=q.doc.textBetween(U.pos,U.pos+U.node.nodeSize,void 0," ");else if(W.length){let F=q.doc.textBetween(K.from,K.to," "," ");if(!dK.test(F))return;U=W[0],H=q.doc.textBetween(U.pos,K.to,void 0," ")}if(U&&H){let F=H.split(lK).filter(Boolean);if(F.length<=0)return!1;let B=F[F.length-1],L=U.pos+H.lastIndexOf(B);if(!B)return!1;let P=G5(B).map((_)=>_.toObject(Z.defaultProtocol));if(!nK(P))return!1;P.filter((_)=>_.isLink).map((_)=>({..._,from:L+_.start+1,to:L+_.end+1})).filter((_)=>{if(!q.schema.marks.code)return!0;return!q.doc.rangeHasMark(_.from,_.to,q.schema.marks.code)}).filter((_)=>Z.validate(_.value)).filter((_)=>Z.shouldAutoLink(_.value)).forEach((_)=>{if(OZ(_.from,_.to,q.doc).some((A)=>A.mark.type===Z.type))return;V.addMark(_.from,_.to,Z.type.create({href:_.href}))})}}),!V.steps.length)return;return V}})}function aK(Z){return new Z0({key:new K0("handleClickLink"),props:{handleClick:(Q,J,q)=>{var X,z;if(q.button!==0)return!1;if(!Q.editable)return!1;let V=q.target,Y=[];while(V.nodeName!=="DIV")Y.push(V),V=V.parentNode;if(!Y.find((H)=>H.nodeName==="A"))return!1;let G=l4(Q.state,Z.type.name),K=q.target,W=(X=K===null||K===void 0?void 0:K.href)!==null&&X!==void 0?X:G.href,U=(z=K===null||K===void 0?void 0:K.target)!==null&&z!==void 0?z:G.target;if(K&&W)return window.open(W,U),!0;return!1}}})}function rK(Z){return new Z0({key:new K0("handlePasteLink"),props:{handlePaste:(Q,J,q)=>{let{state:X}=Q,{selection:z}=X,{empty:V}=z;if(V)return!1;let Y="";q.content.forEach((K)=>{Y+=K.textContent});let G=L6(Y,{defaultProtocol:Z.defaultProtocol}).find((K)=>K.isLink&&K.value===Y);if(!Y||!G)return!1;return Z.editor.commands.setMark(Z.type,{href:G.href})}}})}function _1(Z,Q){let J=["http","https","ftp","ftps","mailto","tel","callto","sms","cid","xmpp"];if(Q)Q.forEach((q)=>{let X=typeof q==="string"?q:q.scheme;if(X)J.push(X)});return!Z||Z.replace(iK,"").match(new RegExp(`^(?:(?:${J.join("|")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,"i"))}var cJ=p0.create({name:"link",priority:1000,keepOnSplit:!1,exitable:!0,onCreate(){if(this.options.validate&&!this.options.shouldAutoLink)this.options.shouldAutoLink=this.options.validate,console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.");this.options.protocols.forEach((Z)=>{if(typeof Z==="string"){B6(Z);return}B6(Z.scheme,Z.optionalSlashes)})},onDestroy(){mJ()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,linkOnPaste:!0,autolink:!0,protocols:[],defaultProtocol:"http",HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},isAllowedUri:(Z,Q)=>!!_1(Z,Q.protocols),validate:(Z)=>!!Z,shouldAutoLink:(Z)=>!!Z}},addAttributes(){return{href:{default:null,parseHTML(Z){return Z.getAttribute("href")}},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML(){return[{tag:"a[href]",getAttrs:(Z)=>{let Q=Z.getAttribute("href");if(!Q||!this.options.isAllowedUri(Q,{defaultValidate:(J)=>!!_1(J,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol}))return!1;return null}}]},renderHTML({HTMLAttributes:Z}){if(!this.options.isAllowedUri(Z.href,{defaultValidate:(Q)=>!!_1(Q,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol}))return["a",i(this.options.HTMLAttributes,{...Z,href:""}),0];return["a",i(this.options.HTMLAttributes,Z),0]},addCommands(){return{setLink:(Z)=>({chain:Q})=>{let{href:J}=Z;if(!this.options.isAllowedUri(J,{defaultValidate:(q)=>!!_1(q,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol}))return!1;return Q().setMark(this.name,Z).setMeta("preventAutolink",!0).run()},toggleLink:(Z)=>({chain:Q})=>{let{href:J}=Z;if(!this.options.isAllowedUri(J,{defaultValidate:(q)=>!!_1(q,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol}))return!1;return Q().toggleMark(this.name,Z,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()},unsetLink:()=>({chain:Z})=>{return Z().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}}},addPasteRules(){return[Z9({find:(Z)=>{let Q=[];if(Z){let{protocols:J,defaultProtocol:q}=this.options,X=L6(Z).filter((z)=>z.isLink&&this.options.isAllowedUri(z.value,{defaultValidate:(V)=>!!_1(V,J),protocols:J,defaultProtocol:q}));if(X.length)X.forEach((z)=>Q.push({text:z.value,data:{href:z.href},index:z.start}))}return Q},type:this.type,getAttributes:(Z)=>{var Q;return{href:(Q=Z.data)===null||Q===void 0?void 0:Q.href}}})]},addProseMirrorPlugins(){let Z=[],{protocols:Q,defaultProtocol:J}=this.options;if(this.options.autolink)Z.push(sK({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:(q)=>this.options.isAllowedUri(q,{defaultValidate:(X)=>!!_1(X,Q),protocols:Q,defaultProtocol:J}),shouldAutoLink:this.options.shouldAutoLink}));if(this.options.openOnClick===!0)Z.push(aK({type:this.type}));if(this.options.linkOnPaste)Z.push(rK({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type}));return Z}});var oK=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,pJ=o.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{}}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:Z}){return["img",i(this.options.HTMLAttributes,Z)]},addCommands(){return{setImage:(Z)=>({commands:Q})=>{return Q.insertContent({type:this.name,attrs:Z})}}},addInputRules(){return[CZ({find:oK,type:this.type,getAttributes:(Z)=>{let[,,Q,J,q]=Z;return{src:J,alt:Q,title:q}}})]}});var lJ=o.create({name:"taskList",addOptions(){return{itemTypeName:"taskItem",HTMLAttributes:{}}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:Z}){return["ul",i(this.options.HTMLAttributes,Z,{"data-type":this.name}),0]},addCommands(){return{toggleTaskList:()=>({commands:Z})=>{return Z.toggleList(this.name,this.options.itemTypeName)}}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});var tK=/^\s*(\[([( |x])?\])\s$/,dJ=o.create({name:"taskItem",addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:"taskList",a11y:void 0}},content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:(Z)=>{let Q=Z.getAttribute("data-checked");return Q===""||Q==="true"},renderHTML:(Z)=>({"data-checked":Z.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:Z,HTMLAttributes:Q}){return["li",i(this.options.HTMLAttributes,Q,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:Z.attrs.checked?"checked":null}],["span"]],["div",0]]},addKeyboardShortcuts(){let Z={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};if(!this.options.nested)return Z;return{...Z,Tab:()=>this.editor.commands.sinkListItem(this.name)}},addNodeView(){return({node:Z,HTMLAttributes:Q,getPos:J,editor:q})=>{let X=document.createElement("li"),z=document.createElement("label"),V=document.createElement("span"),Y=document.createElement("input"),G=document.createElement("div"),K=()=>{var W,U;Y.ariaLabel=((U=(W=this.options.a11y)===null||W===void 0?void 0:W.checkboxLabel)===null||U===void 0?void 0:U.call(W,Z,Y.checked))||`Task item checkbox for ${Z.textContent||"empty task item"}`};return K(),z.contentEditable="false",Y.type="checkbox",Y.addEventListener("mousedown",(W)=>W.preventDefault()),Y.addEventListener("change",(W)=>{if(!q.isEditable&&!this.options.onReadOnlyChecked){Y.checked=!Y.checked;return}let{checked:U}=W.target;if(q.isEditable&&typeof J==="function")q.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:H})=>{let F=J();if(typeof F!=="number")return!1;let B=H.doc.nodeAt(F);return H.setNodeMarkup(F,void 0,{...B===null||B===void 0?void 0:B.attrs,checked:U}),!0}).run();if(!q.isEditable&&this.options.onReadOnlyChecked){if(!this.options.onReadOnlyChecked(Z,U))Y.checked=!Y.checked}}),Object.entries(this.options.HTMLAttributes).forEach(([W,U])=>{X.setAttribute(W,U)}),X.dataset.checked=Z.attrs.checked,Y.checked=Z.attrs.checked,z.append(Y,V),X.append(z,G),Object.entries(Q).forEach(([W,U])=>{X.setAttribute(W,U)}),{dom:X,contentDOM:G,update:(W)=>{if(W.type!==this.type)return!1;return X.dataset.checked=W.attrs.checked,Y.checked=W.attrs.checked,K(),!0}}}},addInputRules(){return[L9({find:tK,type:this.type,getAttributes:(Z)=>({checked:Z[Z.length-1]==="x"})})]}});var j6,I6;if(typeof WeakMap<"u"){let Z=new WeakMap;j6=(Q)=>Z.get(Q),I6=(Q,J)=>{return Z.set(Q,J),J}}else{let Z=[],Q=10,J=0;j6=(q)=>{for(let X=0;X{if(J==10)J=0;return Z[J++]=q,Z[J++]=X}}var P0=class{constructor(Z,Q,J,q){this.width=Z,this.height=Q,this.map=J,this.problems=q}findCell(Z){for(let Q=0;Q=J){(z||(z=[])).push({type:"overlong_rowspan",pos:W,n:_-k});break}let N=X+k*Q;for(let $=0;$q)z+=K.attrs.colspan}}for(let V=0;V1)J=!0}if(Q==-1)Q=z;else if(Q!=z)Q=Math.max(Q,z)}return Q}function QW(Z,Q,J){if(!Z.problems)Z.problems=[];let q={};for(let X=0;X0;Q--)if(Z.node(Q).type.spec.tableRole=="row")return Z.node(0).resolve(Z.before(Q+1));return null}function qW(Z){for(let Q=Z.depth;Q>0;Q--){let J=Z.node(Q).type.spec.tableRole;if(J==="cell"||J==="header_cell")return Z.node(Q)}return null}function G9(Z){let Q=Z.selection.$head;for(let J=Q.depth;J>0;J--)if(Q.node(J).type.spec.tableRole=="row")return!0;return!1}function F5(Z){let Q=Z.selection;if("$anchorCell"in Q&&Q.$anchorCell)return Q.$anchorCell.pos>Q.$headCell.pos?Q.$anchorCell:Q.$headCell;else if("node"in Q&&Q.node&&Q.node.type.spec.tableRole=="cell")return Q.$anchor;let J=j1(Q.$head)||XW(Q.$head);if(J)return J;throw RangeError(`No cell found around position ${Q.head}`)}function XW(Z){for(let{nodeAfter:Q,pos:J}=Z;Q;Q=Q.firstChild,J++){let q=Q.type.spec.tableRole;if(q=="cell"||q=="header_cell")return Z.doc.resolve(J)}for(let{nodeBefore:Q,pos:J}=Z;Q;Q=Q.lastChild,J--){let q=Q.type.spec.tableRole;if(q=="cell"||q=="header_cell")return Z.doc.resolve(J-Q.nodeSize)}}function D6(Z){return Z.parent.type.spec.tableRole=="row"&&!!Z.nodeAfter}function zW(Z){return Z.node(0).resolve(Z.pos+Z.nodeAfter.nodeSize)}function O6(Z,Q){return Z.depth==Q.depth&&Z.pos>=Q.start(-1)&&Z.pos<=Q.end(-1)}function Qq(Z,Q,J){let q=Z.node(-1),X=P0.get(q),z=Z.start(-1),V=X.nextCell(Z.pos-z,Q,J);return V==null?null:Z.node(0).resolve(z+V)}function I1(Z,Q,J=1){let q={...Z,colspan:Z.colspan-J};if(q.colwidth){if(q.colwidth=q.colwidth.slice(),q.colwidth.splice(Q,J),!q.colwidth.some((X)=>X>0))q.colwidth=null}return q}function Jq(Z,Q,J=1){let q={...Z,colspan:Z.colspan+J};if(q.colwidth){q.colwidth=q.colwidth.slice();for(let X=0;XW!=J.pos-z);G.unshift(J.pos-z);let K=G.map((W)=>{let U=q.nodeAt(W);if(!U)throw RangeError(`No cell with offset ${W} found`);let H=z+W+1;return new U8(Y.resolve(H),Y.resolve(H+U.content.size))});super(K[0].$from,K[0].$to,K);this.$anchorCell=Q,this.$headCell=J}map(Q,J){let q=Q.resolve(J.map(this.$anchorCell.pos)),X=Q.resolve(J.map(this.$headCell.pos));if(D6(q)&&D6(X)&&O6(q,X)){let z=this.$anchorCell.node(-1)!=q.node(-1);if(z&&this.isRowSelection())return Z.rowSelection(q,X);else if(z&&this.isColSelection())return Z.colSelection(q,X);else return new Z(q,X)}return f.between(q,X)}content(){let Q=this.$anchorCell.node(-1),J=P0.get(Q),q=this.$anchorCell.start(-1),X=J.rectBetween(this.$anchorCell.pos-q,this.$headCell.pos-q),z={},V=[];for(let G=X.top;G0||P>0){let _=B.attrs;if(L>0)_=I1(_,0,L);if(P>0)_=I1(_,_.colspan-P,P);if(F.leftX.bottom){let _={...B.attrs,rowspan:Math.min(F.bottom,X.bottom)-Math.max(F.top,X.top)};if(F.top0)return!1;let q=Q+this.$anchorCell.nodeAfter.attrs.rowspan,X=J+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(q,X)==this.$headCell.node(-1).childCount}static colSelection(Q,J=Q){let q=Q.node(-1),X=P0.get(q),z=Q.start(-1),V=X.findCell(Q.pos-z),Y=X.findCell(J.pos-z),G=Q.node(0);if(V.top<=Y.top){if(V.top>0)Q=G.resolve(z+X.map[V.left]);if(Y.bottom0)J=G.resolve(z+X.map[Y.left]);if(V.bottom0)return!1;let V=X+this.$anchorCell.nodeAfter.attrs.colspan,Y=z+this.$headCell.nodeAfter.attrs.colspan;return Math.max(V,Y)==J.width}eq(Q){return Q instanceof Z&&Q.$anchorCell.pos==this.$anchorCell.pos&&Q.$headCell.pos==this.$headCell.pos}static rowSelection(Q,J=Q){let q=Q.node(-1),X=P0.get(q),z=Q.start(-1),V=X.findCell(Q.pos-z),Y=X.findCell(J.pos-z),G=Q.node(0);if(V.left<=Y.left){if(V.left>0)Q=G.resolve(z+X.map[V.top*X.width]);if(Y.right0)J=G.resolve(z+X.map[Y.top*X.width]);if(V.right{Q.push(I0.node(q,q+J.nodeSize,{class:"selectedCell"}))}),q0.create(Z.doc,Q)}function KW({$from:Z,$to:Q}){if(Z.pos==Q.pos||Z.pos=0;X--,J++)if(Z.after(X+1)=0;z--,q--)if(Q.before(z+1)>Q.start(z))break;return J==q&&/row|table/.test(Z.node(X).type.spec.tableRole)}function WW({$from:Z,$to:Q}){let J,q;for(let X=Z.depth;X>0;X--){let z=Z.node(X);if(z.type.spec.tableRole==="cell"||z.type.spec.tableRole==="header_cell"){J=z;break}}for(let X=Q.depth;X>0;X--){let z=Q.node(X);if(z.type.spec.tableRole==="cell"||z.type.spec.tableRole==="header_cell"){q=z;break}}return J!==q&&Q.parentOffset===0}function UW(Z,Q,J){let q=(Q||Z).selection,X=(Q||Z).doc,z,V;if(q instanceof u&&(V=q.node.type.spec.tableRole)){if(V=="cell"||V=="header_cell")z=V0.create(X,q.from);else if(V=="row"){let Y=X.resolve(q.from+1);z=V0.rowSelection(Y,Y)}else if(!J){let Y=P0.get(q.node),G=q.from+1,K=G+Y.map[Y.width*Y.height-1];z=V0.create(X,G+1,K)}}else if(q instanceof f&&KW(q))z=f.create(X,q.from);else if(q instanceof f&&WW(q))z=f.create(X,q.$from.start(),q.$from.end());if(z)(Q||(Q=Z.tr)).setSelection(z);return Q}var HW=new K0("fix-tables");function qq(Z,Q,J,q){let X=Z.childCount,z=Q.childCount;Z:for(let V=0,Y=0;V{if(X.type.spec.tableRole=="table")J=FW(Z,X,z,J)};if(!Q)Z.doc.descendants(q);else if(Q.doc!=Z.doc)qq(Q.doc,Z.doc,0,q);return J}function FW(Z,Q,J,q){let X=P0.get(Q);if(!X.problems)return q;if(!q)q=Z.tr;let z=[];for(let G=0;G0){let F="cell";if(W.firstChild)F=W.firstChild.type.spec.tableRole;let B=[];for(let P=0;P0?-1:0;if(VW(Q,q,X+z))z=X==0||X==Q.width?null:0;for(let V=0;V0&&X0&&Q.map[Y-1]==G||X0?-1:0;if(LW(Q,q,X+Y))Y=X==0||X==Q.height?null:0;for(let K=0,W=Q.width*X;K0&&X0&&U==Q.map[W-Q.width]){let H=J.nodeAt(U).attrs;Z.setNodeMarkup(Z.mapping.slice(Y).map(U+q),null,{...H,rowspan:H.rowspan-1}),K+=H.colspan-1}else if(X0&&J[z]==J[z-1]||q.right0&&J[X]==J[X-Z]||q.bottom0){let W=G+1+K.content.size,U=iJ(K)?G+1:W;z.replaceWith(U+q.tableStart,W+q.tableStart,Y)}z.setSelection(new V0(z.doc.resolve(G+q.tableStart))),Q(z)}return!0}function y6(Z,Q){let J=f0(Z.schema);return jW(({node:q})=>{return J[q.type.spec.tableRole]})(Z,Q)}function jW(Z){return(Q,J)=>{let q=Q.selection,X,z;if(!(q instanceof V0)){var V;if(X=qW(q.$from),!X)return!1;z=(V=j1(q.$from))===null||V===void 0?void 0:V.pos}else{if(q.$anchorCell.pos!=q.$headCell.pos)return!1;X=q.$anchorCell.nodeAfter,z=q.$anchorCell.pos}if(X==null||z==null)return!1;if(X.attrs.colspan==1&&X.attrs.rowspan==1)return!1;if(J){let Y=X.attrs,G=[],K=Y.colwidth;if(Y.rowspan>1)Y={...Y,rowspan:1};if(Y.colspan>1)Y={...Y,colspan:1};let W=I9(Q),U=Q.tr;for(let F=0;F{if(V.attrs[Z]!==Q)z.setNodeMarkup(Y,null,{...V.attrs,[Z]:Q})});else z.setNodeMarkup(X.pos,null,{...X.nodeAfter.attrs,[Z]:Q});q(z)}return!0}}function IW(Z){return function(Q,J){if(!G9(Q))return!1;if(J){let q=f0(Q.schema),X=I9(Q),z=Q.tr,V=X.map.cellsInRect(Z=="column"?{left:X.left,top:0,right:X.right,bottom:X.map.height}:Z=="row"?{left:0,top:X.top,right:X.map.width,bottom:X.bottom}:X),Y=V.map((G)=>X.table.nodeAt(G));for(let G=0;G{let F=H+z.tableStart,B=V.doc.nodeAt(F);if(B)V.setNodeMarkup(F,U,B.attrs)}),q(V)}return!0}}var JP=l1("row",{useDeprecatedLogic:!0}),qP=l1("column",{useDeprecatedLogic:!0}),Fq=l1("cell",{useDeprecatedLogic:!0});function DW(Z,Q){if(Q<0){let J=Z.nodeBefore;if(J)return Z.pos-J.nodeSize;for(let q=Z.index(-1)-1,X=Z.before();q>=0;q--){let z=Z.node(-1).child(q),V=z.lastChild;if(V)return X-1-V.nodeSize;X-=z.nodeSize}}else{if(Z.index()0;q--)if(J.node(q).type.spec.tableRole=="table"){if(Q)Q(Z.tr.delete(J.before(q),J.after(q)).scrollIntoView());return!0}return!1}function K5(Z,Q){let J=Z.selection;if(!(J instanceof V0))return!1;if(Q){let q=Z.tr,X=f0(Z.schema).cell.createAndFill().content;if(J.forEachCell((z,V)=>{if(!z.content.eq(X))q.replace(q.mapping.map(V+1),q.mapping.map(V+z.nodeSize-1),new R(X,0,0))}),q.docChanged)Q(q)}return!0}function MW(Z){if(Z.size===0)return null;let{content:Q,openStart:J,openEnd:q}=Z;while(Q.childCount==1&&(J>0&&q>0||Q.child(0).type.spec.tableRole=="table"))J--,q--,Q=Q.child(0).content;let X=Q.child(0),z=X.type.spec.tableRole,V=X.type.schema,Y=[];if(z=="row")for(let G=0;G=0;V--){let{rowspan:Y,colspan:G}=z.child(V).attrs;for(let K=X;K=Q.length)Q.push(D.empty);if(J[X]q)H=H.type.createChecked(I1(H.attrs,H.attrs.colspan,W+H.attrs.colspan-q),H.content);K.push(H),W+=H.attrs.colspan;for(let F=1;FX)U=U.type.create({...U.attrs,rowspan:Math.max(1,X-U.attrs.rowspan)},U.content);G.push(U)}z.push(D.from(G))}J=z,Q=X}return{width:Z,height:Q,rows:J}}function CW(Z,Q,J,q,X,z,V){let Y=Z.doc.type.schema,G=f0(Y),K,W;if(X>Q.width)for(let U=0,H=0;UQ.height){let U=[];for(let B=0,L=(Q.height-1)*Q.width;B=Q.width?!1:J.nodeAt(Q.map[L+B]).type==G.header_cell;U.push(P?W||(W=G.header_cell.createAndFill()):K||(K=G.cell.createAndFill()))}let H=G.row.create(null,D.from(U)),F=[];for(let B=Q.height;B{if(!X)return!1;let z=J.selection;if(z instanceof V0)return H5(J,q,h.near(z.$headCell,Q));if(Z!="horiz"&&!z.empty)return!1;let V=Lq(X,Z,Q);if(V==null)return!1;if(Z=="horiz")return H5(J,q,h.near(J.doc.resolve(z.head+Q),Q));else{let Y=J.doc.resolve(V),G=Qq(Y,Z,Q),K;if(G)K=h.near(G,1);else if(Q<0)K=h.near(J.doc.resolve(Y.before(-1)),-1);else K=h.near(J.doc.resolve(Y.after(-1)),1);return H5(J,q,K)}}}function U5(Z,Q){return(J,q,X)=>{if(!X)return!1;let z=J.selection,V;if(z instanceof V0)V=z;else{let G=Lq(X,Z,Q);if(G==null)return!1;V=new V0(J.doc.resolve(G))}let Y=Qq(V.$headCell,Z,Q);if(!Y)return!1;return H5(J,q,new V0(V.$anchorCell,Y))}}function yW(Z,Q){let J=Z.state.doc,q=j1(J.resolve(Q));if(!q)return!1;return Z.dispatch(Z.state.tr.setSelection(new V0(q))),!0}function $W(Z,Q,J){if(!G9(Z.state))return!1;let q=MW(J),X=Z.state.selection;if(X instanceof V0){if(!q)q={width:1,height:1,rows:[D.from(M6(f0(Z.state.schema).cell,J))]};let z=X.$anchorCell.node(-1),V=X.$anchorCell.start(-1),Y=P0.get(z).rectBetween(X.$anchorCell.pos-V,X.$headCell.pos-V);return q=OW(q,Y.right-Y.left,Y.bottom-Y.top),rJ(Z.state,Z.dispatch,V,Y,q),!0}else if(q){let z=F5(Z.state),V=z.start(-1);return rJ(Z.state,Z.dispatch,V,P0.get(z.node(-1)).findCell(z.pos-V),q),!0}else return!1}function NW(Z,Q){var J;if(Q.button!=0)return;if(Q.ctrlKey||Q.metaKey)return;let q=oJ(Z,Q.target),X;if(Q.shiftKey&&Z.state.selection instanceof V0)z(Z.state.selection.$anchorCell,Q),Q.preventDefault();else if(Q.shiftKey&&q&&(X=j1(Z.state.selection.$anchor))!=null&&((J=_6(Z,Q))===null||J===void 0?void 0:J.pos)!=X.pos)z(X,Q),Q.preventDefault();else if(!q)return;function z(G,K){let W=_6(Z,K),U=a9.getState(Z.state)==null;if(!W||!O6(G,W))if(U)W=G;else return;let H=new V0(G,W);if(U||!Z.state.selection.eq(H)){let F=Z.state.tr.setSelection(H);if(U)F.setMeta(a9,G.pos);Z.dispatch(F)}}function V(){if(Z.root.removeEventListener("mouseup",V),Z.root.removeEventListener("dragstart",V),Z.root.removeEventListener("mousemove",Y),a9.getState(Z.state)!=null)Z.dispatch(Z.state.tr.setMeta(a9,-1))}function Y(G){let K=G,W=a9.getState(Z.state),U;if(W!=null)U=Z.state.doc.resolve(W);else if(oJ(Z,K.target)!=q){if(U=_6(Z,Q),!U)return V()}if(U)z(U,K)}Z.root.addEventListener("mouseup",V),Z.root.addEventListener("dragstart",V),Z.root.addEventListener("mousemove",Y)}function Lq(Z,Q,J){if(!(Z.state.selection instanceof f))return null;let{$head:q}=Z.state.selection;for(let X=q.depth-1;X>=0;X--){let z=q.node(X);if((J<0?q.index(X):q.indexAfter(X))!=(J<0?0:z.childCount))return null;if(z.type.spec.tableRole=="cell"||z.type.spec.tableRole=="header_cell"){let V=q.before(X),Y=Q=="vert"?J>0?"down":"up":J>0?"right":"left";return Z.endOfTextblock(Y)?V:null}}return null}function oJ(Z,Q){for(;Q&&Q!=Z.dom;Q=Q.parentNode)if(Q.nodeName=="TD"||Q.nodeName=="TH")return Q;return null}function _6(Z,Q){let J=Z.posAtCoords({left:Q.clientX,top:Q.clientY});if(!J)return null;let{inside:q,pos:X}=J;return q>=0&&j1(Z.state.doc.resolve(q))||j1(Z.state.doc.resolve(X))}var RW=class{constructor(Z,Q){this.node=Z,this.defaultCellMinWidth=Q,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.table.style.setProperty("--default-cell-min-width",`${Q}px`),this.colgroup=this.table.appendChild(document.createElement("colgroup")),A6(Z,this.colgroup,this.table,Q),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(Z){if(Z.type!=this.node.type)return!1;return this.node=Z,A6(Z,this.colgroup,this.table,this.defaultCellMinWidth),!0}ignoreMutation(Z){return Z.type=="attributes"&&(Z.target==this.table||this.colgroup.contains(Z.target))}};function A6(Z,Q,J,q,X,z){let V=0,Y=!0,G=Q.firstChild,K=Z.firstChild;if(!K)return;for(let U=0,H=0;U{return new q(U,J,H)};return new bW(-1,!1)},apply(V,Y){return Y.apply(V)}},props:{attributes:(V)=>{let Y=n0.getState(V);return Y&&Y.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(V,Y)=>{EW(V,Y,Z,X)},mouseleave:(V)=>{TW(V)},mousedown:(V,Y)=>{xW(V,Y,Q,J)}},decorations:(V)=>{let Y=n0.getState(V);if(Y&&Y.activeHandle>-1)return uW(V,Y.activeHandle)},nodeViews:{}}});return z}var bW=class Z{constructor(Q,J){this.activeHandle=Q,this.dragging=J}apply(Q){let J=this,q=Q.getMeta(n0);if(q&&q.setHandle!=null)return new Z(q.setHandle,!1);if(q&&q.setDragging!==void 0)return new Z(J.activeHandle,q.setDragging);if(J.activeHandle>-1&&Q.docChanged){let X=Q.mapping.map(J.activeHandle,-1);if(!D6(Q.doc.resolve(X)))X=-1;return new Z(X,J.dragging)}return J}};function EW(Z,Q,J,q){if(!Z.editable)return;let X=n0.getState(Z.state);if(!X)return;if(!X.dragging){let z=vW(Q.target),V=-1;if(z){let{left:Y,right:G}=z.getBoundingClientRect();if(Q.clientX-Y<=J)V=tJ(Z,Q,"left",J);else if(G-Q.clientX<=J)V=tJ(Z,Q,"right",J)}if(V!=X.activeHandle){if(!q&&V!==-1){let Y=Z.state.doc.resolve(V),G=Y.node(-1),K=P0.get(G),W=Y.start(-1);if(K.colCount(Y.pos-W)+Y.nodeAfter.attrs.colspan-1==K.width-1)return}_q(Z,V)}}}function TW(Z){if(!Z.editable)return;let Q=n0.getState(Z.state);if(Q&&Q.activeHandle>-1&&!Q.dragging)_q(Z,-1)}function xW(Z,Q,J,q){var X;if(!Z.editable)return!1;let z=(X=Z.dom.ownerDocument.defaultView)!==null&&X!==void 0?X:window,V=n0.getState(Z.state);if(!V||V.activeHandle==-1||V.dragging)return!1;let Y=Z.state.doc.nodeAt(V.activeHandle),G=SW(Z,V.activeHandle,Y.attrs);Z.dispatch(Z.state.tr.setMeta(n0,{setDragging:{startX:Q.clientX,startWidth:G}}));function K(U){z.removeEventListener("mouseup",K),z.removeEventListener("mousemove",W);let H=n0.getState(Z.state);if(H===null||H===void 0?void 0:H.dragging)wW(Z,H.activeHandle,eJ(H.dragging,U,J)),Z.dispatch(Z.state.tr.setMeta(n0,{setDragging:null}))}function W(U){if(!U.which)return K(U);let H=n0.getState(Z.state);if(!H)return;if(H.dragging){let F=eJ(H.dragging,U,J);Zq(Z,H.activeHandle,F,q)}}return Zq(Z,V.activeHandle,G,q),z.addEventListener("mouseup",K),z.addEventListener("mousemove",W),Q.preventDefault(),!0}function SW(Z,Q,{colspan:J,colwidth:q}){let X=q&&q[q.length-1];if(X)return X;let z=Z.domAtPos(Q),V=z.node.childNodes[z.offset].offsetWidth,Y=J;if(q){for(let G=0;G{let q=Z.nodes[J];if(q.spec.tableRole)Q[q.spec.tableRole]=q}),Z.cached.tableNodeTypes=Q,Q}function mW(Z,Q,J,q,X){let z=hW(Z),V=[],Y=[];for(let K=0;K{let{selection:Q}=Z.state;if(!cW(Q))return!1;let J=0,q=c4(Q.ranges[0].$from,(z)=>{return z.type.name==="table"});if(q===null||q===void 0||q.node.descendants((z)=>{if(z.type.name==="table")return!1;if(["tableCell","tableHeader"].includes(z.type.name))J+=1}),J!==Q.ranges.length)return!1;return Z.commands.deleteTable(),!0},Aq=o.create({name:"table",addOptions(){return{HTMLAttributes:{},resizable:!1,renderWrapper:!1,handleWidth:5,cellMinWidth:25,View:Mq,lastColumnResizable:!0,allowTableNodeSelection:!1}},content:"tableRow+",tableRole:"table",isolating:!0,group:"block",parseHTML(){return[{tag:"table"}]},renderHTML({node:Z,HTMLAttributes:Q}){let{colgroup:J,tableWidth:q,tableMinWidth:X}=gW(Z,this.options.cellMinWidth),z=["table",i(this.options.HTMLAttributes,Q,{style:q?`width: ${q}`:`min-width: ${X}`}),J,["tbody",0]];return this.options.renderWrapper?["div",{class:"tableWrapper"},z]:z},addCommands(){return{insertTable:({rows:Z=3,cols:Q=3,withHeaderRow:J=!0}={})=>({tr:q,dispatch:X,editor:z})=>{let V=mW(z.schema,Z,Q,J);if(X){let Y=q.selection.from+1;q.replaceSelectionWith(V).scrollIntoView().setSelection(f.near(q.doc.resolve(Y)))}return!0},addColumnBefore:()=>({state:Z,dispatch:Q})=>{return zq(Z,Q)},addColumnAfter:()=>({state:Z,dispatch:Q})=>{return Vq(Z,Q)},deleteColumn:()=>({state:Z,dispatch:Q})=>{return Yq(Z,Q)},addRowBefore:()=>({state:Z,dispatch:Q})=>{return Kq(Z,Q)},addRowAfter:()=>({state:Z,dispatch:Q})=>{return Wq(Z,Q)},deleteRow:()=>({state:Z,dispatch:Q})=>{return Uq(Z,Q)},deleteTable:()=>({state:Z,dispatch:Q})=>{return Bq(Z,Q)},mergeCells:()=>({state:Z,dispatch:Q})=>{return k6(Z,Q)},splitCell:()=>({state:Z,dispatch:Q})=>{return y6(Z,Q)},toggleHeaderColumn:()=>({state:Z,dispatch:Q})=>{return l1("column")(Z,Q)},toggleHeaderRow:()=>({state:Z,dispatch:Q})=>{return l1("row")(Z,Q)},toggleHeaderCell:()=>({state:Z,dispatch:Q})=>{return Fq(Z,Q)},mergeOrSplit:()=>({state:Z,dispatch:Q})=>{if(k6(Z,Q))return!0;return y6(Z,Q)},setCellAttribute:(Z,Q)=>({state:J,dispatch:q})=>{return Hq(Z,Q)(J,q)},goToNextCell:()=>({state:Z,dispatch:Q})=>{return $6(1)(Z,Q)},goToPreviousCell:()=>({state:Z,dispatch:Q})=>{return $6(-1)(Z,Q)},fixTables:()=>({state:Z,dispatch:Q})=>{if(Q)C6(Z);return!0},setCellSelection:(Z)=>({tr:Q,dispatch:J})=>{if(J){let q=V0.create(Q.doc,Z.anchorCell,Z.headCell);Q.setSelection(q)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>{if(this.editor.commands.goToNextCell())return!0;if(!this.editor.can().addRowAfter())return!1;return this.editor.chain().addRowAfter().goToNextCell().run()},"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:B5,"Mod-Backspace":B5,Delete:B5,"Mod-Delete":B5}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[Pq({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],jq({allowTableNodeSelection:this.options.allowTableNodeSelection})]},extendNodeSchema(Z){let Q={name:Z.name,options:Z.options,storage:Z.storage};return{tableRole:s(w(Z,"tableRole",Q))}}});var Oq=o.create({name:"tableRow",addOptions(){return{HTMLAttributes:{}}},content:"(tableCell | tableHeader)*",tableRole:"row",parseHTML(){return[{tag:"tr"}]},renderHTML({HTMLAttributes:Z}){return["tr",i(this.options.HTMLAttributes,Z),0]}});var Cq=o.create({name:"tableHeader",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:(Z)=>{let Q=Z.getAttribute("colwidth");return Q?Q.split(",").map((q)=>parseInt(q,10)):null}}}},tableRole:"header_cell",isolating:!0,parseHTML(){return[{tag:"th"}]},renderHTML({HTMLAttributes:Z}){return["th",i(this.options.HTMLAttributes,Z),0]}});var kq=o.create({name:"tableCell",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:(Z)=>{let Q=Z.getAttribute("colwidth");return Q?Q.split(",").map((q)=>parseInt(q,10)):null}}}},tableRole:"cell",isolating:!0,parseHTML(){return[{tag:"td"}]},renderHTML({HTMLAttributes:Z}){return["td",i(this.options.HTMLAttributes,Z),0]}});function pW(Z){return Z&&Z.__esModule&&Object.prototype.hasOwnProperty.call(Z,"default")?Z.default:Z}function Sq(Z){if(Z instanceof Map)Z.clear=Z.delete=Z.set=function(){throw Error("map is read-only")};else if(Z instanceof Set)Z.add=Z.clear=Z.delete=function(){throw Error("set is read-only")};return Object.freeze(Z),Object.getOwnPropertyNames(Z).forEach((Q)=>{let J=Z[Q],q=typeof J;if((q==="object"||q==="function")&&!Object.isFrozen(J))Sq(J)}),Z}class b6{constructor(Z){if(Z.data===void 0)Z.data={};this.data=Z.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function vq(Z){return Z.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r9(Z,...Q){let J=Object.create(null);for(let q in Z)J[q]=Z[q];return Q.forEach(function(q){for(let X in q)J[X]=q[X]}),J}var lW="",yq=(Z)=>{return!!Z.scope},dW=(Z,{prefix:Q})=>{if(Z.startsWith("language:"))return Z.replace("language:","language-");if(Z.includes(".")){let J=Z.split(".");return[`${Q}${J.shift()}`,...J.map((q,X)=>`${q}${"_".repeat(X+1)}`)].join(" ")}return`${Q}${Z}`};class wq{constructor(Z,Q){this.buffer="",this.classPrefix=Q.classPrefix,Z.walk(this)}addText(Z){this.buffer+=vq(Z)}openNode(Z){if(!yq(Z))return;let Q=dW(Z.scope,{prefix:this.classPrefix});this.span(Q)}closeNode(Z){if(!yq(Z))return;this.buffer+=lW}value(){return this.buffer}span(Z){this.buffer+=``}}var $q=(Z={})=>{let Q={children:[]};return Object.assign(Q,Z),Q};class E6{constructor(){this.rootNode=$q(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Z){this.top.children.push(Z)}openNode(Z){let Q=$q({scope:Z});this.add(Q),this.stack.push(Q)}closeNode(){if(this.stack.length>1)return this.stack.pop();return}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Z){return this.constructor._walk(Z,this.rootNode)}static _walk(Z,Q){if(typeof Q==="string")Z.addText(Q);else if(Q.children)Z.openNode(Q),Q.children.forEach((J)=>this._walk(Z,J)),Z.closeNode(Q);return Z}static _collapse(Z){if(typeof Z==="string")return;if(!Z.children)return;if(Z.children.every((Q)=>typeof Q==="string"))Z.children=[Z.children.join("")];else Z.children.forEach((Q)=>{E6._collapse(Q)})}}class fq extends E6{constructor(Z){super();this.options=Z}addText(Z){if(Z==="")return;this.add(Z)}startScope(Z){this.openNode(Z)}endScope(){this.closeNode()}__addSublanguage(Z,Q){let J=Z.root;if(Q)J.scope=`language:${Q}`;this.add(J)}toHTML(){return new wq(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function w8(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function uq(Z){return M1("(?=",Z,")")}function iW(Z){return M1("(?:",Z,")*")}function nW(Z){return M1("(?:",Z,")?")}function M1(...Z){return Z.map((J)=>w8(J)).join("")}function sW(Z){let Q=Z[Z.length-1];if(typeof Q==="object"&&Q.constructor===Object)return Z.splice(Z.length-1,1),Q;else return{}}function T6(...Z){return"("+(sW(Z).capture?"":"?:")+Z.map((q)=>w8(q)).join("|")+")"}function gq(Z){return new RegExp(Z.toString()+"|").exec("").length-1}function aW(Z,Q){let J=Z&&Z.exec(Q);return J&&J.index===0}var rW=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function x6(Z,{joinWith:Q}){let J=0;return Z.map((q)=>{J+=1;let X=J,z=w8(q),V="";while(z.length>0){let Y=rW.exec(z);if(!Y){V+=z;break}if(V+=z.substring(0,Y.index),z=z.substring(Y.index+Y[0].length),Y[0][0]==="\\"&&Y[1])V+="\\"+String(Number(Y[1])+X);else if(V+=Y[0],Y[0]==="(")J++}return V}).map((q)=>`(${q})`).join(Q)}var oW=/\b\B/,hq="[a-zA-Z]\\w*",S6="[a-zA-Z_]\\w*",mq="\\b\\d+(\\.\\d+)?",cq="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",pq="\\b(0b[01]+)",tW="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",eW=(Z={})=>{let Q=/^#![ ]*\//;if(Z.binary)Z.begin=M1(Q,/.*\b/,Z.binary,/\b.*/);return r9({scope:"meta",begin:Q,end:/$/,relevance:0,"on:begin":(J,q)=>{if(J.index!==0)q.ignoreMatch()}},Z)},f8={begin:"\\\\[\\s\\S]",relevance:0},ZU={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[f8]},QU={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[f8]},JU={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/},_5=function(Z,Q,J={}){let q=r9({scope:"comment",begin:Z,end:Q,contains:[]},J);q.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let X=T6("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 q.contains.push({begin:M1(/[ ]+/,"(",X,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),q},qU=_5("//","$"),XU=_5("/\\*","\\*/"),zU=_5("#","$"),VU={scope:"number",begin:mq,relevance:0},YU={scope:"number",begin:cq,relevance:0},GU={scope:"number",begin:pq,relevance:0},KU={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[f8,{begin:/\[/,end:/\]/,relevance:0,contains:[f8]}]},WU={scope:"title",begin:hq,relevance:0},UU={scope:"title",begin:S6,relevance:0},HU={begin:"\\.\\s*"+S6,relevance:0},FU=function(Z){return Object.assign(Z,{"on:begin":(Q,J)=>{J.data._beginMatch=Q[1]},"on:end":(Q,J)=>{if(J.data._beginMatch!==Q[1])J.ignoreMatch()}})},L5=Object.freeze({__proto__:null,APOS_STRING_MODE:ZU,BACKSLASH_ESCAPE:f8,BINARY_NUMBER_MODE:GU,BINARY_NUMBER_RE:pq,COMMENT:_5,C_BLOCK_COMMENT_MODE:XU,C_LINE_COMMENT_MODE:qU,C_NUMBER_MODE:YU,C_NUMBER_RE:cq,END_SAME_AS_BEGIN:FU,HASH_COMMENT_MODE:zU,IDENT_RE:hq,MATCH_NOTHING_RE:oW,METHOD_GUARD:HU,NUMBER_MODE:VU,NUMBER_RE:mq,PHRASAL_WORDS_MODE:JU,QUOTE_STRING_MODE:QU,REGEXP_MODE:KU,RE_STARTERS_RE:tW,SHEBANG:eW,TITLE_MODE:WU,UNDERSCORE_IDENT_RE:S6,UNDERSCORE_TITLE_MODE:UU});function BU(Z,Q){if(Z.input[Z.index-1]===".")Q.ignoreMatch()}function LU(Z,Q){if(Z.className!==void 0)Z.scope=Z.className,delete Z.className}function PU(Z,Q){if(!Q)return;if(!Z.beginKeywords)return;if(Z.begin="\\b("+Z.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",Z.__beforeBegin=BU,Z.keywords=Z.keywords||Z.beginKeywords,delete Z.beginKeywords,Z.relevance===void 0)Z.relevance=0}function _U(Z,Q){if(!Array.isArray(Z.illegal))return;Z.illegal=T6(...Z.illegal)}function jU(Z,Q){if(!Z.match)return;if(Z.begin||Z.end)throw Error("begin & end are not supported with match");Z.begin=Z.match,delete Z.match}function IU(Z,Q){if(Z.relevance===void 0)Z.relevance=1}var DU=(Z,Q)=>{if(!Z.beforeMatch)return;if(Z.starts)throw Error("beforeMatch cannot be used with starts");let J=Object.assign({},Z);Object.keys(Z).forEach((q)=>{delete Z[q]}),Z.keywords=J.keywords,Z.begin=M1(J.beforeMatch,uq(J.begin)),Z.starts={relevance:0,contains:[Object.assign(J,{endsParent:!0})]},Z.relevance=0,delete J.beforeMatch},MU=["of","and","for","in","not","or","if","then","parent","list","value"],AU="keyword";function lq(Z,Q,J=AU){let q=Object.create(null);if(typeof Z==="string")X(J,Z.split(" "));else if(Array.isArray(Z))X(J,Z);else Object.keys(Z).forEach(function(z){Object.assign(q,lq(Z[z],Q,z))});return q;function X(z,V){if(Q)V=V.map((Y)=>Y.toLowerCase());V.forEach(function(Y){let G=Y.split("|");q[G[0]]=[z,OU(G[0],G[1])]})}}function OU(Z,Q){if(Q)return Number(Q);return CU(Z)?0:1}function CU(Z){return MU.includes(Z.toLowerCase())}var Nq={},D1=(Z)=>{console.error(Z)},Rq=(Z,...Q)=>{console.log(`WARN: ${Z}`,...Q)},d1=(Z,Q)=>{if(Nq[`${Z}/${Q}`])return;console.log(`Deprecated as of ${Z}. ${Q}`),Nq[`${Z}/${Q}`]=!0},P5=Error();function dq(Z,Q,{key:J}){let q=0,X=Z[J],z={},V={};for(let Y=1;Y<=Q.length;Y++)V[Y+q]=X[Y],z[Y+q]=!0,q+=gq(Q[Y-1]);Z[J]=V,Z[J]._emit=z,Z[J]._multi=!0}function kU(Z){if(!Array.isArray(Z.begin))return;if(Z.skip||Z.excludeBegin||Z.returnBegin)throw D1("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),P5;if(typeof Z.beginScope!=="object"||Z.beginScope===null)throw D1("beginScope must be object"),P5;dq(Z,Z.begin,{key:"beginScope"}),Z.begin=x6(Z.begin,{joinWith:""})}function yU(Z){if(!Array.isArray(Z.end))return;if(Z.skip||Z.excludeEnd||Z.returnEnd)throw D1("skip, excludeEnd, returnEnd not compatible with endScope: {}"),P5;if(typeof Z.endScope!=="object"||Z.endScope===null)throw D1("endScope must be object"),P5;dq(Z,Z.end,{key:"endScope"}),Z.end=x6(Z.end,{joinWith:""})}function $U(Z){if(Z.scope&&typeof Z.scope==="object"&&Z.scope!==null)Z.beginScope=Z.scope,delete Z.scope}function NU(Z){if($U(Z),typeof Z.beginScope==="string")Z.beginScope={_wrap:Z.beginScope};if(typeof Z.endScope==="string")Z.endScope={_wrap:Z.endScope};kU(Z),yU(Z)}function RU(Z){function Q(V,Y){return new RegExp(w8(V),"m"+(Z.case_insensitive?"i":"")+(Z.unicodeRegex?"u":"")+(Y?"g":""))}class J{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(V,Y){Y.position=this.position++,this.matchIndexes[this.matchAt]=Y,this.regexes.push([Y,V]),this.matchAt+=gq(V)+1}compile(){if(this.regexes.length===0)this.exec=()=>null;let V=this.regexes.map((Y)=>Y[1]);this.matcherRe=Q(x6(V,{joinWith:"|"}),!0),this.lastIndex=0}exec(V){this.matcherRe.lastIndex=this.lastIndex;let Y=this.matcherRe.exec(V);if(!Y)return null;let G=Y.findIndex((W,U)=>U>0&&W!==void 0),K=this.matchIndexes[G];return Y.splice(0,G),Object.assign(Y,K)}}class q{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(V){if(this.multiRegexes[V])return this.multiRegexes[V];let Y=new J;return this.rules.slice(V).forEach(([G,K])=>Y.addRule(G,K)),Y.compile(),this.multiRegexes[V]=Y,Y}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(V,Y){if(this.rules.push([V,Y]),Y.type==="begin")this.count++}exec(V){let Y=this.getMatcher(this.regexIndex);Y.lastIndex=this.lastIndex;let G=Y.exec(V);if(this.resumingScanAtSamePosition())if(G&&G.index===this.lastIndex);else{let K=this.getMatcher(0);K.lastIndex=this.lastIndex+1,G=K.exec(V)}if(G){if(this.regexIndex+=G.position+1,this.regexIndex===this.count)this.considerAll()}return G}}function X(V){let Y=new q;if(V.contains.forEach((G)=>Y.addRule(G.begin,{rule:G,type:"begin"})),V.terminatorEnd)Y.addRule(V.terminatorEnd,{type:"end"});if(V.illegal)Y.addRule(V.illegal,{type:"illegal"});return Y}function z(V,Y){let G=V;if(V.isCompiled)return G;[LU,jU,NU,DU].forEach((W)=>W(V,Y)),Z.compilerExtensions.forEach((W)=>W(V,Y)),V.__beforeBegin=null,[PU,_U,IU].forEach((W)=>W(V,Y)),V.isCompiled=!0;let K=null;if(typeof V.keywords==="object"&&V.keywords.$pattern)V.keywords=Object.assign({},V.keywords),K=V.keywords.$pattern,delete V.keywords.$pattern;if(K=K||/\w+/,V.keywords)V.keywords=lq(V.keywords,Z.case_insensitive);if(G.keywordPatternRe=Q(K,!0),Y){if(!V.begin)V.begin=/\B|\b/;if(G.beginRe=Q(G.begin),!V.end&&!V.endsWithParent)V.end=/\B|\b/;if(V.end)G.endRe=Q(G.end);if(G.terminatorEnd=w8(G.end)||"",V.endsWithParent&&Y.terminatorEnd)G.terminatorEnd+=(V.end?"|":"")+Y.terminatorEnd}if(V.illegal)G.illegalRe=Q(V.illegal);if(!V.contains)V.contains=[];if(V.contains=[].concat(...V.contains.map(function(W){return bU(W==="self"?V:W)})),V.contains.forEach(function(W){z(W,G)}),V.starts)z(V.starts,Y);return G.matcher=X(G),G}if(!Z.compilerExtensions)Z.compilerExtensions=[];if(Z.contains&&Z.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return Z.classNameAliases=r9(Z.classNameAliases||{}),z(Z)}function iq(Z){if(!Z)return!1;return Z.endsWithParent||iq(Z.starts)}function bU(Z){if(Z.variants&&!Z.cachedVariants)Z.cachedVariants=Z.variants.map(function(Q){return r9(Z,{variants:null},Q)});if(Z.cachedVariants)return Z.cachedVariants;if(iq(Z))return r9(Z,{starts:Z.starts?r9(Z.starts):null});if(Object.isFrozen(Z))return r9(Z);return Z}var EU="11.10.0";class nq extends Error{constructor(Z,Q){super(Z);this.name="HTMLInjectionError",this.html=Q}}var R6=vq,bq=r9,Eq=Symbol("nomatch"),TU=7,sq=function(Z){let Q=Object.create(null),J=Object.create(null),q=[],X=!0,z="Could not find the language '{}', did you forget to load/include a language module?",V={disableAutodetect:!0,name:"Plain text",contains:[]},Y={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:fq};function G(j){return Y.noHighlightRe.test(j)}function K(j){let M=j.className+" ";M+=j.parentNode?j.parentNode.className:"";let E=Y.languageDetectRe.exec(M);if(E){let g=m(E[1]);if(!g)Rq(z.replace("{}",E[1])),Rq("Falling back to no-highlight mode for this block.",j);return g?E[1]:"no-highlight"}return M.split(/\s+/).find((g)=>G(g)||m(g))}function W(j,M,E){let g="",l="";if(typeof M==="object")g=j,E=M.ignoreIllegals,l=M.language;else d1("10.7.0","highlight(lang, code, ...args) has been deprecated."),d1("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),l=j,g=M;if(E===void 0)E=!0;let t={code:g,language:l};J0("before:highlight",t);let _0=t.result?t.result:U(t.language,t.code,E);return _0.code=t.code,J0("after:highlight",_0),_0}function U(j,M,E,g){let l=Object.create(null);function t(I,C){return I.keywords[C]}function _0(){if(!p.keywords){n.addText(Q0);return}let I=0;p.keywordPatternRe.lastIndex=0;let C=p.keywordPatternRe.exec(Q0),v="";while(C){v+=Q0.substring(I,C.index);let d=r.case_insensitive?C[0].toLowerCase():C[0],G0=t(p,d);if(G0){let[X9,$5]=G0;if(n.addText(v),v="",l[d]=(l[d]||0)+1,l[d]<=TU)s0+=$5;if(X9.startsWith("_"))v+=C[0];else{let Rz=r.classNameAliases[X9]||X9;y0(C[0],Rz)}}else v+=C[0];I=p.keywordPatternRe.lastIndex,C=p.keywordPatternRe.exec(Q0)}v+=Q0.substring(I),n.addText(v)}function M0(){if(Q0==="")return;let I=null;if(typeof p.subLanguage==="string"){if(!Q[p.subLanguage]){n.addText(Q0);return}I=U(p.subLanguage,Q0,!0,A0[p.subLanguage]),A0[p.subLanguage]=I._top}else I=F(Q0,p.subLanguage.length?p.subLanguage:null);if(p.relevance>0)s0+=I.relevance;n.__addSublanguage(I._emitter,I.language)}function z0(){if(p.subLanguage!=null)M0();else _0();Q0=""}function y0(I,C){if(I==="")return;n.startScope(C),n.addText(I),n.endScope()}function t9(I,C){let v=1,d=C.length-1;while(v<=d){if(!I._emit[v]){v++;continue}let G0=r.classNameAliases[I[v]]||I[v],X9=C[v];if(G0)y0(X9,G0);else Q0=X9,_0(),Q0="";v++}}function T9(I,C){if(I.scope&&typeof I.scope==="string")n.openNode(r.classNameAliases[I.scope]||I.scope);if(I.beginScope){if(I.beginScope._wrap)y0(Q0,r.classNameAliases[I.beginScope._wrap]||I.beginScope._wrap),Q0="";else if(I.beginScope._multi)t9(I.beginScope,C),Q0=""}return p=Object.create(I,{parent:{value:p}}),p}function C1(I,C,v){let d=aW(I.endRe,v);if(d){if(I["on:end"]){let G0=new b6(I);if(I["on:end"](C,G0),G0.isMatchIgnored)d=!1}if(d){while(I.endsParent&&I.parent)I=I.parent;return I}}if(I.endsWithParent)return C1(I.parent,C,v)}function t1(I){if(p.matcher.regexIndex===0)return Q0+=I[0],1;else return T=!0,0}function e1(I){let C=I[0],v=I.rule,d=new b6(v),G0=[v.__beforeBegin,v["on:begin"]];for(let X9 of G0){if(!X9)continue;if(X9(I,d),d.isMatchIgnored)return t1(C)}if(v.skip)Q0+=C;else{if(v.excludeBegin)Q0+=C;if(z0(),!v.returnBegin&&!v.excludeBegin)Q0=C}return T9(v,I),v.returnBegin?0:C.length}function Z8(I){let C=I[0],v=M.substring(I.index),d=C1(p,I,v);if(!d)return Eq;let G0=p;if(p.endScope&&p.endScope._wrap)z0(),y0(C,p.endScope._wrap);else if(p.endScope&&p.endScope._multi)z0(),t9(p.endScope,I);else if(G0.skip)Q0+=C;else{if(!(G0.returnEnd||G0.excludeEnd))Q0+=C;if(z0(),G0.excludeEnd)Q0=C}do{if(p.scope)n.closeNode();if(!p.skip&&!p.subLanguage)s0+=p.relevance;p=p.parent}while(p!==d.parent);if(d.starts)T9(d.starts,I);return G0.returnEnd?0:C.length}function x9(){let I=[];for(let C=p;C!==r;C=C.parent)if(C.scope)I.unshift(C.scope);I.forEach((C)=>n.openNode(C))}let M9={};function u0(I,C){let v=C&&C[0];if(Q0+=I,v==null)return z0(),0;if(M9.type==="begin"&&C.type==="end"&&M9.index===C.index&&v===""){if(Q0+=M.slice(C.index,C.index+1),!X){let d=Error(`0 width match regex (${j})`);throw d.languageName=j,d.badRule=M9.rule,d}return 1}if(M9=C,C.type==="begin")return e1(C);else if(C.type==="illegal"&&!E){let d=Error('Illegal lexeme "'+v+'" for mode "'+(p.scope||"")+'"');throw d.mode=p,d}else if(C.type==="end"){let d=Z8(C);if(d!==Eq)return d}if(C.type==="illegal"&&v==="")return 1;if(e9>1e5&&e9>C.index*3)throw Error("potential infinite loop, way more iterations than matches");return Q0+=v,v.length}let r=m(j);if(!r)throw D1(z.replace("{}",j)),Error('Unknown language: "'+j+'"');let K9=RU(r),c="",p=g||K9,A0={},n=new Y.__emitter(Y);x9();let Q0="",s0=0,q9=0,e9=0,T=!1;try{if(!r.__emitTokens){p.matcher.considerAll();for(;;){if(e9++,T)T=!1;else p.matcher.considerAll();p.matcher.lastIndex=q9;let I=p.matcher.exec(M);if(!I)break;let C=M.substring(q9,I.index),v=u0(C,I);q9=I.index+v}u0(M.substring(q9))}else r.__emitTokens(M,n);return n.finalize(),c=n.toHTML(),{language:j,value:c,relevance:s0,illegal:!1,_emitter:n,_top:p}}catch(I){if(I.message&&I.message.includes("Illegal"))return{language:j,value:R6(M),illegal:!0,relevance:0,_illegalBy:{message:I.message,index:q9,context:M.slice(q9-100,q9+100),mode:I.mode,resultSoFar:c},_emitter:n};else if(X)return{language:j,value:R6(M),illegal:!1,relevance:0,errorRaised:I,_emitter:n,_top:p};else throw I}}function H(j){let M={value:R6(j),illegal:!1,relevance:0,_top:V,_emitter:new Y.__emitter(Y)};return M._emitter.addText(j),M}function F(j,M){M=M||Y.languages||Object.keys(Q);let E=H(j),g=M.filter(m).filter(T0).map((z0)=>U(z0,j,!1));g.unshift(E);let l=g.sort((z0,y0)=>{if(z0.relevance!==y0.relevance)return y0.relevance-z0.relevance;if(z0.language&&y0.language){if(m(z0.language).supersetOf===y0.language)return 1;else if(m(y0.language).supersetOf===z0.language)return-1}return 0}),[t,_0]=l,M0=t;return M0.secondBest=_0,M0}function B(j,M,E){let g=M&&J[M]||E;j.classList.add("hljs"),j.classList.add(`language-${g}`)}function L(j){let M=null,E=K(j);if(G(E))return;if(J0("before:highlightElement",{el:j,language:E}),j.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",j);return}if(j.children.length>0){if(!Y.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(j);if(Y.throwUnescapedHTML)throw new nq("One of your code blocks includes unescaped HTML.",j.innerHTML)}M=j;let g=M.textContent,l=E?W(g,{language:E,ignoreIllegals:!0}):F(g);if(j.innerHTML=l.value,j.dataset.highlighted="yes",B(j,E,l.language),j.result={language:l.language,re:l.relevance,relevance:l.relevance},l.secondBest)j.secondBest={language:l.secondBest.language,relevance:l.secondBest.relevance};J0("after:highlightElement",{el:j,result:l,text:g})}function P(j){Y=bq(Y,j)}let _=()=>{N(),d1("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function A(){N(),d1("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let k=!1;function N(){if(document.readyState==="loading"){k=!0;return}document.querySelectorAll(Y.cssSelector).forEach(L)}function $(){if(k)N()}if(typeof window<"u"&&window.addEventListener)window.addEventListener("DOMContentLoaded",$,!1);function x(j,M){let E=null;try{E=M(Z)}catch(g){if(D1("Language definition for '{}' could not be registered.".replace("{}",j)),!X)throw g;else D1(g);E=V}if(!E.name)E.name=j;if(Q[j]=E,E.rawDefinition=M.bind(null,Z),E.aliases)U0(E.aliases,{languageName:j})}function b(j){delete Q[j];for(let M of Object.keys(J))if(J[M]===j)delete J[M]}function S(){return Object.keys(Q)}function m(j){return j=(j||"").toLowerCase(),Q[j]||Q[J[j]]}function U0(j,{languageName:M}){if(typeof j==="string")j=[j];j.forEach((E)=>{J[E.toLowerCase()]=M})}function T0(j){let M=m(j);return M&&!M.disableAutodetect}function C0(j){if(j["before:highlightBlock"]&&!j["before:highlightElement"])j["before:highlightElement"]=(M)=>{j["before:highlightBlock"](Object.assign({block:M.el},M))};if(j["after:highlightBlock"]&&!j["after:highlightElement"])j["after:highlightElement"]=(M)=>{j["after:highlightBlock"](Object.assign({block:M.el},M))}}function x0(j){C0(j),q.push(j)}function Y0(j){let M=q.indexOf(j);if(M!==-1)q.splice(M,1)}function J0(j,M){let E=j;q.forEach(function(g){if(g[E])g[E](M)})}function O(j){return d1("10.7.0","highlightBlock will be removed entirely in v12.0"),d1("10.7.0","Please use highlightElement now."),L(j)}Object.assign(Z,{highlight:W,highlightAuto:F,highlightAll:N,highlightElement:L,highlightBlock:O,configure:P,initHighlighting:_,initHighlightingOnLoad:A,registerLanguage:x,unregisterLanguage:b,listLanguages:S,getLanguage:m,registerAliases:U0,autoDetection:T0,inherit:bq,addPlugin:x0,removePlugin:Y0}),Z.debugMode=function(){X=!1},Z.safeMode=function(){X=!0},Z.versionString=EU,Z.regex={concat:M1,lookahead:uq,either:T6,optional:nW,anyNumberOfTimes:iW};for(let j in L5)if(typeof L5[j]==="object")Sq(L5[j]);return Object.assign(Z,L5),Z},i1=sq({});i1.newInstance=()=>sq({});var xU=i1;i1.HighlightJS=i1;i1.default=i1;var SU=pW(xU);function aq(Z,Q=[]){return Z.map((J)=>{let q=[...Q,...J.properties?J.properties.className:[]];if(J.children)return aq(J.children,q);return{text:J.value,classes:q}}).flat()}function Tq(Z){return Z.value||Z.children||[]}function vU(Z){return Boolean(SU.getLanguage(Z))}function xq({doc:Z,name:Q,lowlight:J,defaultLanguage:q}){let X=[];return AZ(Z,(z)=>z.type.name===Q).forEach((z)=>{var V;let Y=z.pos+1,G=z.node.attrs.language||q,K=J.listLanguages(),W=G&&(K.includes(G)||vU(G)||((V=J.registered)===null||V===void 0?void 0:V.call(J,G)))?Tq(J.highlight(G,z.node.textContent)):Tq(J.highlightAuto(z.node.textContent));aq(W).forEach((U)=>{let H=Y+U.text.length;if(U.classes.length){let F=I0.inline(Y,H,{class:U.classes.join(" ")});X.push(F)}Y=H})}),q0.create(Z,X)}function wU(Z){return typeof Z==="function"}function fU({name:Z,lowlight:Q,defaultLanguage:J}){if(!["highlight","highlightAuto","listLanguages"].every((X)=>wU(Q[X])))throw Error("You should provide an instance of lowlight to use the code-block-lowlight extension");let q=new Z0({key:new K0("lowlight"),state:{init:(X,{doc:z})=>xq({doc:z,name:Z,lowlight:Q,defaultLanguage:J}),apply:(X,z,V,Y)=>{let G=V.selection.$head.parent.type.name,K=Y.selection.$head.parent.type.name,W=AZ(V.doc,(H)=>H.type.name===Z),U=AZ(Y.doc,(H)=>H.type.name===Z);if(X.docChanged&&([G,K].includes(Z)||U.length!==W.length||X.steps.some((H)=>{return H.from!==void 0&&H.to!==void 0&&W.some((F)=>{return F.pos>=H.from&&F.pos+F.node.nodeSize<=H.to})})))return xq({doc:X.doc,name:Z,lowlight:Q,defaultLanguage:J});return z.map(X.mapping,X.doc)}},props:{decorations(X){return q.getState(X)}}});return q}var rq=kZ.extend({addOptions(){var Z;return{...(Z=this.parent)===null||Z===void 0?void 0:Z.call(this),lowlight:{},languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,defaultLanguage:null,HTMLAttributes:{}}},addProseMirrorPlugins(){var Z;return[...((Z=this.parent)===null||Z===void 0?void 0:Z.call(this))||[],fU({name:this.name,lowlight:this.options.lowlight,defaultLanguage:this.options.defaultLanguage})]}});function uU(Z){let Q=Z.regex,J=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),q="decltype\\(auto\\)",X="[a-zA-Z_]\\w*::",z="<[^<>]+>",V="(?!struct)(decltype\\(auto\\)|"+Q.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+Q.optional("<[^<>]+>")+")",Y={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},G="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",K={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.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:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},W={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},U={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},Z.inherit(K,{className:"string"}),{className:"string",begin:/<.*?>/},J,Z.C_BLOCK_COMMENT_MODE]},H={className:"title",begin:Q.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},F=Q.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",B=["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"],L=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],P=["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"],_=["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"],N={type:L,keyword:B,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:P},$={className:"function.dispatch",relevance:0,keywords:{_hint:_},begin:Q.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,Z.IDENT_RE,Q.lookahead(/(<[^<>]+>|)\s*\(/))},x=[$,U,Y,J,Z.C_BLOCK_COMMENT_MODE,W,K],b={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:N,contains:x.concat([{begin:/\(/,end:/\)/,keywords:N,contains:x.concat(["self"]),relevance:0}]),relevance:0},S={className:"function",begin:"("+V+"[\\*&\\s]+)+"+F,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:N,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:N,relevance:0},{begin:F,returnBegin:!0,contains:[H],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[K,W]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:[J,Z.C_BLOCK_COMMENT_MODE,K,W,Y,{begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:["self",J,Z.C_BLOCK_COMMENT_MODE,K,W,Y]}]},Y,J,Z.C_BLOCK_COMMENT_MODE,U]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:N,illegal:"",keywords:N,contains:["self",Y]},{begin:Z.IDENT_RE+"::",keywords:N},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function oq(Z){let Q={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},J=uU(Z),q=J.keywords;return q.type=[...q.type,...Q.type],q.literal=[...q.literal,...Q.literal],q.built_in=[...q.built_in,...Q.built_in],q._hints=Q._hints,J.name="Arduino",J.aliases=["ino"],J.supersetOf="cpp",J}function tq(Z){let Q=Z.regex,J={},q={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[J]}]};Object.assign(J,{className:"variable",variants:[{begin:Q.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},q]});let X={className:"subst",begin:/\$\(/,end:/\)/,contains:[Z.BACKSLASH_ESCAPE]},z=Z.inherit(Z.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),V={begin:/<<-?\s*(?=\w+)/,starts:{contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},Y={className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,J,X]};X.contains.push(Y);let G={match:/\\"/},K={className:"string",begin:/'/,end:/'/},W={match:/\\'/},U={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},Z.NUMBER_MODE,J]},H=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],F=Z.SHEBANG({binary:`(${H.join("|")})`,relevance:10}),B={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[Z.inherit(Z.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},L=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],P=["true","false"],_={match:/(\/[a-z._-]+)+/},A=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],k=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],N=["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"],$=["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:L,literal:P,built_in:[...A,...k,"set","shopt",...N,...$]},contains:[F,Z.SHEBANG(),B,U,z,V,_,Y,G,K,W,J]}}function eq(Z){let Q=Z.regex,J=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),q="decltype\\(auto\\)",X="[a-zA-Z_]\\w*::",z="<[^<>]+>",V="(decltype\\(auto\\)|"+Q.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+Q.optional("<[^<>]+>")+")",Y={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},G="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",K={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.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:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},W={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},U={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},Z.inherit(K,{className:"string"}),{className:"string",begin:/<.*?>/},J,Z.C_BLOCK_COMMENT_MODE]},H={className:"title",begin:Q.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},F=Q.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",P={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"},_=[U,Y,J,Z.C_BLOCK_COMMENT_MODE,W,K],A={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:P,contains:_.concat([{begin:/\(/,end:/\)/,keywords:P,contains:_.concat(["self"]),relevance:0}]),relevance:0},k={begin:"("+V+"[\\*&\\s]+)+"+F,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:P,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:P,relevance:0},{begin:F,returnBegin:!0,contains:[Z.inherit(H,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:P,relevance:0,contains:[J,Z.C_BLOCK_COMMENT_MODE,K,W,Y,{begin:/\(/,end:/\)/,keywords:P,relevance:0,contains:["self",J,Z.C_BLOCK_COMMENT_MODE,K,W,Y]}]},Y,J,Z.C_BLOCK_COMMENT_MODE,U]};return{name:"C",aliases:["h"],keywords:P,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},Z.TITLE_MODE]}]),exports:{preprocessor:U,strings:K,keywords:P}}}function ZX(Z){let Q=Z.regex,J=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),q="decltype\\(auto\\)",X="[a-zA-Z_]\\w*::",z="<[^<>]+>",V="(?!struct)(decltype\\(auto\\)|"+Q.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+Q.optional("<[^<>]+>")+")",Y={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},G="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",K={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.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:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},W={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},U={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},Z.inherit(K,{className:"string"}),{className:"string",begin:/<.*?>/},J,Z.C_BLOCK_COMMENT_MODE]},H={className:"title",begin:Q.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},F=Q.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",B=["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"],L=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],P=["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"],_=["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"],N={type:L,keyword:B,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:P},$={className:"function.dispatch",relevance:0,keywords:{_hint:_},begin:Q.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,Z.IDENT_RE,Q.lookahead(/(<[^<>]+>|)\s*\(/))},x=[$,U,Y,J,Z.C_BLOCK_COMMENT_MODE,W,K],b={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:N,contains:x.concat([{begin:/\(/,end:/\)/,keywords:N,contains:x.concat(["self"]),relevance:0}]),relevance:0},S={className:"function",begin:"("+V+"[\\*&\\s]+)+"+F,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:N,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:N,relevance:0},{begin:F,returnBegin:!0,contains:[H],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[K,W]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:[J,Z.C_BLOCK_COMMENT_MODE,K,W,Y,{begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:["self",J,Z.C_BLOCK_COMMENT_MODE,K,W,Y]}]},Y,J,Z.C_BLOCK_COMMENT_MODE,U]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:N,illegal:"",keywords:N,contains:["self",Y]},{begin:Z.IDENT_RE+"::",keywords:N},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function QX(Z){let Q=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],J=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],q=["default","false","null","true"],X=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],z=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],V={keyword:X.concat(z),built_in:Q,literal:q},Y=Z.inherit(Z.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),G={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},K={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},W={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},U=Z.inherit(W,{illegal:/\n/}),H={className:"subst",begin:/\{/,end:/\}/,keywords:V},F=Z.inherit(H,{illegal:/\n/}),B={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},Z.BACKSLASH_ESCAPE,F]},L={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},H]},P=Z.inherit(L,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},F]});H.contains=[L,B,W,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,G,Z.C_BLOCK_COMMENT_MODE],F.contains=[P,B,U,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,G,Z.inherit(Z.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let _={variants:[K,L,B,W,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},A={begin:"<",end:">",contains:[{beginKeywords:"in out"},Y]},k=Z.IDENT_RE+"(<"+Z.IDENT_RE+"(\\s*,\\s*"+Z.IDENT_RE+")*>)?(\\[\\])?",N={begin:"@"+Z.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:V,illegal:/::/,contains:[Z.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},_,G,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},Y,A,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[Y,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[Y,A,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+k+"\\s+)+"+Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:V,contains:[{beginKeywords:J.join(" "),relevance:0},{begin:Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[Z.TITLE_MODE,A],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:V,relevance:0,contains:[_,G,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},N]}}var gU=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.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_-]*/}}},hU=["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"],mU=["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"],cU=[...hU,...mU],pU=["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(),lU=["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(),dU=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),iU=["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","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","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 JX(Z){let Q=Z.regex,J=gU(Z),q={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},X="and or not only",z=/@-?\w[\w]*(-\w+)*/,V="[a-zA-Z-][a-zA-Z0-9_-]*",Y=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[J.BLOCK_COMMENT,q,J.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},J.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+lU.join("|")+")"},{begin:":(:)?("+dU.join("|")+")"}]},J.CSS_VARIABLE,{className:"attribute",begin:"\\b("+iU.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[J.BLOCK_COMMENT,J.HEXCOLOR,J.IMPORTANT,J.CSS_NUMBER_MODE,...Y,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...Y,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},J.FUNCTION_DISPATCH]},{begin:Q.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:z},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:pU.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...Y,J.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+cU.join("|")+")\\b"}]}}function qX(Z){let Q=Z.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:Q.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:Q.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function XX(Z){let z={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:z,illegal:"{return GX(Z,Q,J-1)})}function KX(Z){let Q=Z.regex,J="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",q="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+GX("(?:<"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~(?:\\s*,\\s*"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~)*>)?",/~~~/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"]},K={className:"meta",begin:"@"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},W={className:"params",begin:/\(/,end:/\)/,keywords:G,relevance:0,contains:[Z.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:G,illegal:/<\/|#/,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[Z.BACKSLASH_ESCAPE]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[Q.concat(/(?!else)/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"),/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"},contains:[W,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+q+"\\s+)",Z.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:G,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:G,relevance:0,contains:[K,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,YX,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},YX,K]}}var nU=["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"],sU=["true","false","null","undefined","NaN","Infinity"],WX=["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"],UX=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],HX=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],aU=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],rU=[].concat(HX,WX,UX);function FX(Z){let Q=Z.regex,J=(M,{after:E})=>{let g="",end:""},z=/<[A-Za-z0-9\\._:-]+\s*\/>/,V={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(M,E)=>{let g=M[0].length+M.index,l=M.input[g];if(l==="<"||l===","){E.ignoreMatch();return}if(l===">"){if(!J(M,{after:g}))E.ignoreMatch()}let t,_0=M.input.substring(g);if(t=_0.match(/^\s*=/)){E.ignoreMatch();return}if(t=_0.match(/^\s+extends\s+/)){if(t.index===0){E.ignoreMatch();return}}}},Y={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:nU,literal:sU,built_in:rU,"variable.language":aU},G="[0-9](_?[0-9])*",K="\\.([0-9](_?[0-9])*)",W="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",U={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\b"},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},H={className:"subst",begin:"\\$\\{",end:"\\}",keywords:Y,contains:[]},F={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,H],subLanguage:"xml"}},B={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,H],subLanguage:"css"}},L={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,H],subLanguage:"graphql"}},P={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,H]},A={className:"comment",variants:[Z.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:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},k=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,F,B,L,P,{match:/\$\d+/},U];H.contains=k.concat({begin:/\{/,end:/\}/,keywords:Y,contains:["self"].concat(k)});let N=[].concat(A,H.contains),$=N.concat([{begin:/(\s*)\(/,end:/\)/,keywords:Y,contains:["self"].concat(N)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:$},b={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,Q.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",Q.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},S={relevance:0,match:Q.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:{_:[...WX,...UX]}},m={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},U0={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},T0={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function C0(M){return Q.concat("(?!",M.join("|"),")")}let x0={match:Q.concat(/\b/,C0([...HX,"super","import"].map((M)=>`${M}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",Q.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y0={begin:Q.concat(/\./,Q.lookahead(Q.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},J0={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},O="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",j={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,Q.lookahead(O)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:Y,exports:{PARAMS_CONTAINS:$,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),m,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,F,B,L,P,A,{match:/\$\d+/},U,S,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+Q.lookahead(":"),relevance:0},j,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[A,Z.REGEXP_MODE,{className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:$}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:X.begin,end:X.end},{match:z},{begin:V.begin,"on:begin":V.isTrulyOpeningTag,end:V.end}],subLanguage:"xml",contains:[{begin:V.begin,end:V.end,skip:!0,contains:["self"]}]}]},U0,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[x,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},Y0,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},x0,T0,b,J0,{match:/\$[(.]/}]}}function BX(Z){let Q={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},J={match:/[{}[\],:]/,className:"punctuation",relevance:0},q=["true","false","null"],X={scope:"literal",beginKeywords:q.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:q},contains:[Q,J,Z.QUOTE_STRING_MODE,X,Z.C_NUMBER_MODE,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var s1="[0-9](_*[0-9])*",D5=`\\.(${s1})`,M5="[0-9a-fA-F](_*[0-9a-fA-F])*",oU={className:"number",variants:[{begin:`(\\b(${s1})((${D5})|\\.)?|(${D5}))[eE][+-]?(${s1})[fFdD]?\\b`},{begin:`\\b(${s1})((${D5})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${D5})[fFdD]?\\b`},{begin:`\\b(${s1})[fFdD]\\b`},{begin:`\\b0[xX]((${M5})\\.?|(${M5})?\\.(${M5}))[pP][+-]?(${s1})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${M5})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function LX(Z){let Q={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},J={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},q={className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"@"},X={className:"subst",begin:/\$\{/,end:/\}/,contains:[Z.C_NUMBER_MODE]},z={className:"variable",begin:"\\$"+Z.UNDERSCORE_IDENT_RE},V={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[z,X]},{begin:"'",end:"'",illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE,z,X]}]};X.contains.push(V);let Y={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+Z.UNDERSCORE_IDENT_RE+")?"},G={className:"meta",begin:"@"+Z.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[Z.inherit(V,{className:"string"}),"self"]}]},K=oU,W=Z.COMMENT("/\\*","\\*/",{contains:[Z.C_BLOCK_COMMENT_MODE]}),U={variants:[{className:"type",begin:Z.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},H=U;return H.variants[1].contains=[U],U.variants[1].contains=[H],{name:"Kotlin",aliases:["kt","kts"],keywords:Q,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),Z.C_LINE_COMMENT_MODE,W,J,q,Y,G,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:Q,relevance:5,contains:[{begin:Z.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[Z.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:Q,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[U,Z.C_LINE_COMMENT_MODE,W],relevance:0},Z.C_LINE_COMMENT_MODE,W,Y,G,V,Z.C_NUMBER_MODE]},W]},{begin:[/class|interface|trait/,/\s+/,Z.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},Z.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},Y,G]},V,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` +`},K]}}var tU=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.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_-]*/}}},eU=["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"],ZH=["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"],QH=[...eU,...ZH],JH=["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(),PX=["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(),_X=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),qH=["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","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","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(),XH=PX.concat(_X).sort().reverse();function jX(Z){let Q=tU(Z),J=XH,q="and or not only",X="[\\w-]+",z="([\\w-]+|@\\{[\\w-]+\\})",V=[],Y=[],G=function(k){return{className:"string",begin:"~?"+k+".*?"+k}},K=function(k,N,$){return{className:k,begin:N,relevance:$}},W={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:JH.join(" ")},U={begin:"\\(",end:"\\)",contains:Y,keywords:W,relevance:0};Y.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,G("'"),G('"'),Q.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},Q.HEXCOLOR,U,K("variable","@@?[\\w-]+",10),K("variable","@\\{[\\w-]+\\}"),K("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},Q.IMPORTANT,{beginKeywords:"and not"},Q.FUNCTION_DISPATCH);let H=Y.concat({begin:/\{/,end:/\}/,contains:V}),F={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(Y)},B={begin:z+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},Q.CSS_VARIABLE,{className:"attribute",begin:"\\b("+qH.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:Y}}]},L={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:W,returnEnd:!0,contains:Y,relevance:0}},P={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:H}},_={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:z,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,F,K("keyword","all\\b"),K("variable","@\\{[\\w-]+\\}"),{begin:"\\b("+QH.join("|")+")\\b",className:"selector-tag"},Q.CSS_NUMBER_MODE,K("selector-tag",z,0),K("selector-id","#"+z),K("selector-class","\\."+z,0),K("selector-tag","&",0),Q.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+PX.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+_X.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:H},{begin:"!important"},Q.FUNCTION_DISPATCH]},A={begin:`[\\w-]+:(:)?(${J.join("|")})`,returnBegin:!0,contains:[_]};return V.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,L,P,A,B,_,F,Q.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:V}}function IX(Z){let q={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},X=[Z.COMMENT("--(?!\\[=*\\[)","$"),Z.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[q],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:Z.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:X.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[Z.inherit(Z.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:X}].concat(X)},Z.C_NUMBER_MODE,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[q],relevance:5}])}}function DX(Z){let Q={className:"variable",variants:[{begin:"\\$\\("+Z.UNDERSCORE_IDENT_RE+"\\)",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},q={begin:"^[-\\*]{3,}",end:"$"},X={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}]},z={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},V={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},Y=/[A-Za-z][A-Za-z0-9+.-]*/,G={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:Q.concat(/\[.+?\]\(/,Y,/:\/\/.*?\)/),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}]},K={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},W={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},U=Z.inherit(K,{contains:[]}),H=Z.inherit(W,{contains:[]});K.contains.push(H),W.contains.push(U);let F=[J,G];return[K,W,U,H].forEach((_)=>{_.contains=_.contains.concat(F)}),F=F.concat(K,W),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:F},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:F}]}]},J,z,K,W,{className:"quote",begin:"^>\\s+",contains:F,end:"$"},X,q,G,V,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function AX(Z){let Q={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},J=/[a-zA-Z@][a-zA-Z0-9_]*/,Y={"variable.language":["this","super"],$pattern:J,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},G={$pattern:J,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:Y,illegal:"/,end:/$/,illegal:"\\n"},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+G.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:G,contains:[Z.UNDERSCORE_TITLE_MODE]},{begin:"\\."+Z.UNDERSCORE_IDENT_RE,relevance:0}]}}function OX(Z){let Q=Z.regex,J=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],q=/[dualxmsipngr]{0,12}/,X={$pattern:/[\w.]+/,keyword:J.join(" ")},z={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:X},V={begin:/->\{/,end:/\}/},Y={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},G={scope:"variable",variants:[{begin:/\$\d/},{begin:Q.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[Y]},K={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},W=[Z.BACKSLASH_ESCAPE,z,G],U=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],H=(L,P,_="\\1")=>{let A=_==="\\1"?_:Q.concat(_,P);return Q.concat(Q.concat("(?:",L,")"),P,/(?:\\.|[^\\\/])*?/,A,/(?:\\.|[^\\\/])*?/,_,q)},F=(L,P,_)=>{return Q.concat(Q.concat("(?:",L,")"),P,/(?:\\.|[^\\\/])*?/,_,q)},B=[G,Z.HASH_COMMENT_MODE,Z.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),V,{className:"string",contains:W,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},K,{begin:"(\\/\\/|"+Z.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[Z.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:H("s|tr|y",Q.either(...U,{capture:!0}))},{begin:H("s|tr|y","\\(","\\)")},{begin:H("s|tr|y","\\[","\\]")},{begin:H("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:F("(?:m|qr)?",/\//,/\//)},{begin:F("m|qr",Q.either(...U,{capture:!0}),/\1/)},{begin:F("m|qr",/\(/,/\)/)},{begin:F("m|qr",/\[/,/\]/)},{begin:F("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,Y]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,Y,K]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return z.contains=B,V.contains=B,{name:"Perl",aliases:["pl","pm"],keywords:X,contains:B}}function CX(Z){let Q=Z.regex,J=/(?![A-Za-z0-9])(?![$])/,q=Q.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,J),X=Q.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,J),z=Q.concat(/[A-Z]+/,J),V={scope:"variable",match:"\\$+"+q},Y={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:0.1},{begin:/\?>/}]},G={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},K=Z.inherit(Z.APOS_STRING_MODE,{illegal:null}),W=Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,contains:Z.QUOTE_STRING_MODE.contains.concat(G)}),U={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:Z.QUOTE_STRING_MODE.contains.concat(G),"on:begin":(Y0,J0)=>{J0.data._beginMatch=Y0[1]||Y0[2]},"on:end":(Y0,J0)=>{if(J0.data._beginMatch!==Y0[1])J0.ignoreMatch()}},H=Z.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),F=`[ +]`,B={scope:"string",variants:[W,K,U,H]},L={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},P=["false","null","true"],_=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],A=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],N={keyword:_,literal:((Y0)=>{let J0=[];return Y0.forEach((O)=>{if(J0.push(O),O.toLowerCase()===O)J0.push(O.toUpperCase());else J0.push(O.toLowerCase())}),J0})(P),built_in:A},$=(Y0)=>{return Y0.map((J0)=>{return J0.replace(/\|\d+$/,"")})},x={variants:[{match:[/new/,Q.concat(`[ +]`,"+"),Q.concat("(?!",$(A).join("\\b|"),"\\b)"),X],scope:{1:"keyword",4:"title.class"}}]},b=Q.concat(q,"\\b(?!\\()"),S={variants:[{match:[Q.concat(/::/,Q.lookahead(/(?!class\b)/)),b],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[X,Q.concat(/::/,Q.lookahead(/(?!class\b)/)),b],scope:{1:"title.class",3:"variable.constant"}},{match:[X,Q.concat("::",Q.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[X,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},m={scope:"attr",match:Q.concat(q,Q.lookahead(":"),Q.lookahead(/(?!::)/))},U0={relevance:0,begin:/\(/,end:/\)/,keywords:N,contains:[m,V,S,Z.C_BLOCK_COMMENT_MODE,B,L,x]},T0={relevance:0,match:[/\b/,Q.concat("(?!fn\\b|function\\b|",$(_).join("\\b|"),"|",$(A).join("\\b|"),"\\b)"),q,Q.concat(`[ +]`,"*"),Q.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[U0]};U0.contains.push(T0);let C0=[m,S,Z.C_BLOCK_COMMENT_MODE,B,L,x],x0={begin:Q.concat(/#\[\s*\\?/,Q.either(X,z)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:P,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:P,keyword:["new","array"]},contains:["self",...C0]},...C0,{scope:"meta",variants:[{match:X},{match:z}]}]};return{case_insensitive:!1,keywords:N,contains:[x0,Z.HASH_COMMENT_MODE,Z.COMMENT("//","$"),Z.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:Z.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},Y,{scope:"variable.language",match:/\$this\b/},V,T0,S,{match:[/const/,/\s/,q],scope:{1:"keyword",3:"variable.constant"}},x,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},Z.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:N,contains:["self",x0,V,S,Z.C_BLOCK_COMMENT_MODE,B,L]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},Z.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[Z.inherit(Z.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},Z.UNDERSCORE_TITLE_MODE]},B,L]}}function kX(Z){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},Z.inherit(Z.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function yX(Z){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function $X(Z){let Q=Z.regex,J=/[\p{XID_Start}_]\p{XID_Continue}*/u,q=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],Y={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:q,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","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","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"]},G={className:"meta",begin:/^(>>>|\.\.\.) /},K={className:"subst",begin:/\{/,end:/\}/,keywords:Y,illegal:/#/},W={begin:/\{\{/,relevance:0},U={className:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,G],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,G],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,G,W,K]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,G,W,K]},{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:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[Z.BACKSLASH_ESCAPE,W,K]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,W,K]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},H="[0-9](_?[0-9])*",F="(\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.",B=`\\b|${q.join("|")}`,L={className:"number",relevance:0,variants:[{begin:`(\\b([0-9](_?[0-9])*)|((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.))[eE][+-]?([0-9](_?[0-9])*)[jJ]?(?=${B})`},{begin:"((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.)[jJ]?"},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${B})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${B})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${B})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${B})`},{begin:`\\b([0-9](_?[0-9])*)[jJ](?=${B})`}]},P={className:"comment",begin:Q.lookahead(/# type:/),end:/$/,keywords:Y,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},_={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:["self",G,L,U,Z.HASH_COMMENT_MODE]}]};return K.contains=[U,L,G],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:Y,illegal:/(<\/|\?)|=>/,contains:[G,L,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},U,P,Z.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,J],scope:{1:"keyword",3:"title.function"},contains:[_]},{variants:[{match:[/\bclass/,/\s+/,J,/\s*/,/\(\s*/,J,/\s*\)/]},{match:[/\bclass/,/\s+/,J]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[L,_,U]}]}}function NX(Z){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function RX(Z){let Q=Z.regex,J=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,q=Q.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),X=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,z=Q.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:J,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[Z.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:Q.lookahead(Q.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:J},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),Z.HASH_COMMENT_MODE,{scope:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[X,q]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,q]},{scope:{1:"punctuation",2:"number"},match:[z,q]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,q]}]},{scope:{3:"operator"},match:[J,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:X},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:z},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function bX(Z){let Q=Z.regex,J="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",q=Q.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),X=Q.concat(q,/(::\w+)*/),V={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},Y={className:"doctag",begin:"@[A-Za-z]+"},G={begin:"#<",end:">"},K=[Z.COMMENT("#","$",{contains:[Y]}),Z.COMMENT("^=begin","^=end",{contains:[Y],relevance:10}),Z.COMMENT("^__END__",Z.MATCH_NOTHING_RE)],W={className:"subst",begin:/#\{/,end:/\}/,keywords:V},U={className:"string",contains:[Z.BACKSLASH_ESCAPE,W],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:Q.concat(/<<[-~]?'?/,Q.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[Z.BACKSLASH_ESCAPE,W]})]}]},H="[1-9](_?[0-9])*|0",F="[0-9](_?[0-9])*",B={className:"number",relevance:0,variants:[{begin:"\\b([1-9](_?[0-9])*|0)(\\.([0-9](_?[0-9])*))?([eE][+-]?([0-9](_?[0-9])*)|r)?i?\\b"},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},L={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:V}]},x=[U,{variants:[{match:[/class\s+/,X,/\s+<\s+/,X]},{match:[/\b(class|module)\s+/,X]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:V},{match:[/(include|extend)\s+/,X],scope:{2:"title.class"},keywords:V},{relevance:0,match:[X,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:q,scope:"title.class"},{match:[/def/,/\s+/,"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"],scope:{1:"keyword",3:"title.function"},contains:[L]},{begin:Z.IDENT_RE+"::"},{className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[U,{begin:"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"}],relevance:0},B,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:V},{begin:"("+Z.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[Z.BACKSLASH_ESCAPE,W],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(G,K),relevance:0}].concat(G,K);W.contains=x,L.contains=x;let b="[>?]>",S="[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]",m="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",U0=[{begin:/^\s*=>/,starts:{end:"$",contains:x}},{className:"meta.prompt",begin:"^("+b+"|"+S+"|"+m+")(?=[ ])",starts:{end:"$",keywords:V,contains:x}}];return K.unshift(G),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:V,illegal:/\/\*/,contains:[Z.SHEBANG({binary:"ruby"})].concat(U0).concat(K).concat(x)}}function EX(Z){let Q=Z.regex,J=/(r#)?/,q=Q.concat(J,Z.UNDERSCORE_IDENT_RE),X=Q.concat(J,Z.IDENT_RE),z={className:"title.function.invoke",relevance:0,begin:Q.concat(/\b/,/(?!let|for|while|if|else|match\b)/,X,Q.lookahead(/\s*\(/))},V="([ui](8|16|32|64|128|size)|f(32|64))?",Y=["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","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],G=["true","false","Some","None","Ok","Err"],K=["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!"],W=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:Z.IDENT_RE+"!?",type:W,keyword:Y,literal:G,built_in:K},illegal:""},z]}}var zH=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.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_-]*/}}},VH=["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"],YH=["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"],GH=[...VH,...YH],KH=["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(),WH=["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(),UH=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),HH=["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","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","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 TX(Z){let Q=zH(Z),J=UH,q=WH,X="@[a-z-]+",z="and or not only",V="[a-zA-Z-][a-zA-Z0-9_-]*",Y={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,Q.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},Q.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+GH.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+q.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+J.join("|")+")"},Y,{begin:/\(/,end:/\)/,contains:[Q.CSS_NUMBER_MODE]},Q.CSS_VARIABLE,{className:"attribute",begin:"\\b("+HH.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[Q.BLOCK_COMMENT,Y,Q.HEXCOLOR,Q.CSS_NUMBER_MODE,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,Q.IMPORTANT,Q.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:"@[a-z-]+",keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:KH.join(" ")},contains:[{begin:"@[a-z-]+",className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},Y,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,Q.HEXCOLOR,Q.CSS_NUMBER_MODE]},Q.FUNCTION_DISPATCH]}}function xX(Z){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function SX(Z){let Q=Z.regex,J=Z.COMMENT("--","$"),q={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},X={begin:/"/,end:/"/,contains:[{match:/""/}]},z=["true","false","unknown"],V=["double precision","large object","with timezone","without timezone"],Y=["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"],G=["add","asc","collation","desc","final","first","last","view"],K=["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"],W=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],U=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],H=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],F=W,B=[...K,...G].filter(($)=>{return!W.includes($)}),L={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},P={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},_={match:Q.concat(/\b/,Q.either(...F),/\s*\(/),relevance:0,keywords:{built_in:F}};function A($){return Q.concat(/\b/,Q.either(...$.map((x)=>{return x.replace(/\s+/,"\\s+")})),/\b/)}let k={scope:"keyword",match:A(H),relevance:0};function N($,{exceptions:x,when:b}={}){let S=b;return x=x||[],$.map((m)=>{if(m.match(/\|\d+$/)||x.includes(m))return m;else if(S(m))return`${m}|0`;else return m})}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:N(B,{when:($)=>$.length<3}),literal:z,type:Y,built_in:U},contains:[{scope:"type",match:A(V)},k,_,L,q,X,Z.C_NUMBER_MODE,Z.C_BLOCK_COMMENT_MODE,J,P]}}function uX(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function u8(Z){return X0("(?=",Z,")")}function X0(...Z){return Z.map((J)=>uX(J)).join("")}function FH(Z){let Q=Z[Z.length-1];if(typeof Q==="object"&&Q.constructor===Object)return Z.splice(Z.length-1,1),Q;else return{}}function m0(...Z){return"("+(FH(Z).capture?"":"?:")+Z.map((q)=>uX(q)).join("|")+")"}var f6=(Z)=>X0(/\b/,Z,/\w$/.test(Z)?/\b/:/\B/),BH=["Protocol","Type"].map(f6),vX=["init","self"].map(f6),LH=["Any","Self"],v6=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],wX=["false","nil","true"],PH=["assignment","associativity","higherThan","left","lowerThan","none","right"],_H=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],fX=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],gX=m0(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),hX=m0(gX,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),w6=X0(gX,hX,"*"),mX=m0(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),O5=m0(mX,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),D9=X0(mX,O5,"*"),A5=X0(/[A-Z]/,O5,"*"),jH=["attached","autoclosure",X0(/convention\(/,m0("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",X0(/objc\(/,D9,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],IH=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function cX(Z){let Q={match:/\s+/,relevance:0},J=Z.COMMENT("/\\*","\\*/",{contains:["self"]}),q=[Z.C_LINE_COMMENT_MODE,J],X={match:[/\./,m0(...BH,...vX)],className:{2:"keyword"}},z={match:X0(/\./,m0(...v6)),relevance:0},V=v6.filter((r)=>typeof r==="string").concat(["_|0"]),Y=v6.filter((r)=>typeof r!=="string").concat(LH).map(f6),G={variants:[{className:"keyword",match:m0(...Y,...vX)}]},K={$pattern:m0(/\b\w+/,/#\w+/),keyword:V.concat(_H),literal:wX},W=[X,z,G],U={match:X0(/\./,m0(...fX)),relevance:0},H={className:"built_in",match:X0(/\b/,m0(...fX),/(?=\()/)},F=[U,H],B={match:/->/,relevance:0},L={className:"operator",relevance:0,variants:[{match:w6},{match:`\\.(\\.|${hX})+`}]},P=[B,L],_="([0-9]_*)+",A="([0-9a-fA-F]_*)+",k={className:"number",relevance:0,variants:[{match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{match:"\\b0x(([0-9a-fA-F]_*)+)(\\.(([0-9a-fA-F]_*)+))?([pP][+-]?(([0-9]_*)+))?\\b"},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},N=(r="")=>({className:"subst",variants:[{match:X0(/\\/,r,/[0\\tnr"']/)},{match:X0(/\\/,r,/u\{[0-9a-fA-F]{1,8}\}/)}]}),$=(r="")=>({className:"subst",match:X0(/\\/,r,/[\t ]*(?:[\r\n]|\r\n)/)}),x=(r="")=>({className:"subst",label:"interpol",begin:X0(/\\/,r,/\(/),end:/\)/}),b=(r="")=>({begin:X0(r,/"""/),end:X0(/"""/,r),contains:[N(r),$(r),x(r)]}),S=(r="")=>({begin:X0(r,/"/),end:X0(/"/,r),contains:[N(r),x(r)]}),m={className:"string",variants:[b(),b("#"),b("##"),b("###"),S(),S("#"),S("##"),S("###")]},U0=[Z.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[Z.BACKSLASH_ESCAPE]}],T0={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:U0},C0=(r)=>{let K9=X0(r,/\//),c=X0(/\//,r);return{begin:K9,end:c,contains:[...U0,{scope:"comment",begin:`#(?!.*${c})`,end:/$/}]}},x0={scope:"regexp",variants:[C0("###"),C0("##"),C0("#"),T0]},Y0={match:X0(/`/,D9,/`/)},J0={className:"variable",match:/\$\d+/},O={className:"variable",match:`\\$${O5}+`},j=[Y0,J0,O],M={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:IH,contains:[...P,k,m]}]}},E={scope:"keyword",match:X0(/@/,m0(...jH),u8(m0(/\(/,/\s+/)))},g={scope:"meta",match:X0(/@/,D9)},l=[M,E,g],t={match:u8(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:X0(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,O5,"+")},{className:"type",match:A5,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:X0(/\s+&\s+/,u8(A5)),relevance:0}]},_0={begin://,keywords:K,contains:[...q,...W,...l,B,t]};t.contains.push(_0);let M0={match:X0(D9,/\s*:/),keywords:"_|0",relevance:0},z0={begin:/\(/,end:/\)/,relevance:0,keywords:K,contains:["self",M0,...q,x0,...W,...F,...P,k,m,...j,...l,t]},y0={begin://,keywords:"repeat each",contains:[...q,t]},t9={begin:m0(u8(X0(D9,/\s*:/)),u8(X0(D9,/\s+/,D9,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:D9}]},T9={begin:/\(/,end:/\)/,keywords:K,contains:[t9,...q,...W,...P,k,m,...l,t,z0],endsParent:!0,illegal:/["']/},C1={match:[/(func|macro)/,/\s+/,m0(Y0.match,D9,w6)],className:{1:"keyword",3:"title.function"},contains:[y0,T9,Q],illegal:[/\[/,/%/]},t1={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[y0,T9,Q],illegal:/\[|%/},e1={match:[/operator/,/\s+/,w6],className:{1:"keyword",3:"title"}},Z8={begin:[/precedencegroup/,/\s+/,A5],className:{1:"keyword",3:"title"},contains:[t],keywords:[...PH,...wX],end:/}/},x9={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},M9={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},u0={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,D9,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:K,contains:[y0,...W,{begin:/:/,end:/\{/,keywords:K,contains:[{scope:"title.class.inherited",match:A5},...W],relevance:0}]};for(let r of m.variants){let K9=r.contains.find((p)=>p.label==="interpol");K9.keywords=K;let c=[...W,...F,...P,k,m,...j];K9.contains=[...c,{begin:/\(/,end:/\)/,contains:["self",...c]}]}return{name:"Swift",keywords:K,contains:[...q,C1,t1,x9,M9,u0,e1,Z8,{beginKeywords:"import",end:/$/,contains:[...q],relevance:0},x0,...W,...F,...P,k,m,...j,...l,t,z0]}}var pX=["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"],lX=["true","false","null","undefined","NaN","Infinity"],dX=["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"],iX=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],nX=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],sX=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],aX=[].concat(nX,dX,iX);function DH(Z){let Q=Z.regex,J=(M,{after:E})=>{let g="",end:""},z=/<[A-Za-z0-9\\._:-]+\s*\/>/,V={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(M,E)=>{let g=M[0].length+M.index,l=M.input[g];if(l==="<"||l===","){E.ignoreMatch();return}if(l===">"){if(!J(M,{after:g}))E.ignoreMatch()}let t,_0=M.input.substring(g);if(t=_0.match(/^\s*=/)){E.ignoreMatch();return}if(t=_0.match(/^\s+extends\s+/)){if(t.index===0){E.ignoreMatch();return}}}},Y={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:pX,literal:lX,built_in:aX,"variable.language":sX},G="[0-9](_?[0-9])*",K="\\.([0-9](_?[0-9])*)",W="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",U={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\b"},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},H={className:"subst",begin:"\\$\\{",end:"\\}",keywords:Y,contains:[]},F={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,H],subLanguage:"xml"}},B={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,H],subLanguage:"css"}},L={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,H],subLanguage:"graphql"}},P={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,H]},A={className:"comment",variants:[Z.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:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},k=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,F,B,L,P,{match:/\$\d+/},U];H.contains=k.concat({begin:/\{/,end:/\}/,keywords:Y,contains:["self"].concat(k)});let N=[].concat(A,H.contains),$=N.concat([{begin:/(\s*)\(/,end:/\)/,keywords:Y,contains:["self"].concat(N)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:$},b={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,Q.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",Q.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},S={relevance:0,match:Q.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:{_:[...dX,...iX]}},m={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},U0={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},T0={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function C0(M){return Q.concat("(?!",M.join("|"),")")}let x0={match:Q.concat(/\b/,C0([...nX,"super","import"].map((M)=>`${M}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",Q.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y0={begin:Q.concat(/\./,Q.lookahead(Q.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},J0={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},O="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",j={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,Q.lookahead(O)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:Y,exports:{PARAMS_CONTAINS:$,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),m,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,F,B,L,P,A,{match:/\$\d+/},U,S,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+Q.lookahead(":"),relevance:0},j,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[A,Z.REGEXP_MODE,{className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:$}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:X.begin,end:X.end},{match:z},{begin:V.begin,"on:begin":V.isTrulyOpeningTag,end:V.end}],subLanguage:"xml",contains:[{begin:V.begin,end:V.end,skip:!0,contains:["self"]}]}]},U0,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[x,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},Y0,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},x0,T0,b,J0,{match:/\$[(.]/}]}}function rX(Z){let Q=Z.regex,J=DH(Z),q="[A-Za-z$_][0-9A-Za-z$_]*",X=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],z={begin:[/namespace/,/\s+/,Z.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},V={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:X},contains:[J.exports.CLASS_REFERENCE]},Y={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},G=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],K={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:pX.concat(G),literal:lX,built_in:aX.concat(X),"variable.language":sX},W={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},U=(L,P,_)=>{let A=L.contains.findIndex((k)=>k.label===P);if(A===-1)throw Error("can not find mode to replace");L.contains.splice(A,1,_)};Object.assign(J.keywords,K),J.exports.PARAMS_CONTAINS.push(W);let H=J.contains.find((L)=>L.scope==="attr"),F=Object.assign({},H,{match:Q.concat("[A-Za-z$_][0-9A-Za-z$_]*",Q.lookahead(/\s*\?:/))});J.exports.PARAMS_CONTAINS.push([J.exports.CLASS_REFERENCE,H,F]),J.contains=J.contains.concat([W,z,V,F]),U(J,"shebang",Z.SHEBANG()),U(J,"use_strict",Y);let B=J.contains.find((L)=>L.label==="func.def");return B.relevance=0,Object.assign(J,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),J}function oX(Z){let Q=Z.regex,J={className:"string",begin:/"(""|[^/n])"C\b/},q={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},X=/\d{1,2}\/\d{1,2}\/\d{4}/,z=/\d{4}-\d{1,2}-\d{1,2}/,V=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,Y=/\d{1,2}(:\d{1,2}){1,2}/,G={className:"literal",variants:[{begin:Q.concat(/# */,Q.either(z,X),/ *#/)},{begin:Q.concat(/# */,Y,/ *#/)},{begin:Q.concat(/# */,V,/ *#/)},{begin:Q.concat(/# */,Q.either(z,X),/ +/,Q.either(V,Y),/ *#/)}]},K={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},W={className:"label",begin:/^\w+:/},U=Z.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),H=Z.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[J,q,G,K,W,U,H,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[H]}]}}function tX(Z){Z.regex;let Q=Z.COMMENT(/\(;/,/;\)/);Q.contains.push("self");let J=Z.COMMENT(/;;/,/$/),q=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],X={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},z={className:"variable",begin:/\$[\w_]+/},V={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},Y={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},G={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},K={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:q},contains:[J,Q,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},z,V,X,Z.QUOTE_STRING_MODE,G,K,Y]}}function eX(Z){let Q=Z.regex,J=Q.concat(/[\p{L}_]/u,Q.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),q=/[\p{L}0-9._:-]+/u,X={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},z={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},V=Z.inherit(z,{begin:/\(/,end:/\)/}),Y=Z.inherit(Z.APOS_STRING_MODE,{className:"string"}),G=Z.inherit(Z.QUOTE_STRING_MODE,{className:"string"}),K={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[z,G,Y,V,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[z,V,G,Y]}]}]},Z.COMMENT(//,{relevance:10}),{begin://,relevance:10},X,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[G]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[K],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[K],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:Q.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:J,relevance:0,starts:K}]},{className:"tag",begin:Q.concat(/<\//,Q.lookahead(Q.concat(J,/>/))),contains:[{className:"name",begin:J,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function Zz(Z){let q={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},X={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},z={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},V={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[Z.BACKSLASH_ESCAPE,X]},Y=Z.inherit(V,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),G="[0-9]{4}(-[0-9][0-9]){0,2}",K="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",W="(\\.[0-9]*)?",U="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",H={className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},F={end:",",endsWithParent:!0,excludeEnd:!0,keywords:"true false yes no null",relevance:0},B={begin:/\{/,end:/\}/,contains:[F],illegal:"\\n",relevance:0},L={begin:"\\[",end:"\\]",contains:[F],illegal:"\\n",relevance:0},P=[q,{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+![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!<[\\w#;/?:@&=+$,.~*'()[\\]]+>"},{className:"type",begin:"![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"meta",begin:"&"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},Z.HASH_COMMENT_MODE,{beginKeywords:"true false yes no null",keywords:{literal:"true false yes no null"}},H,{className:"number",begin:Z.C_NUMBER_RE+"\\b",relevance:0},B,L,z,V],_=[...P];return _.pop(),_.push(Y),F.contains=_,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:P}}var u6={arduino:oq,bash:tq,c:eq,cpp:ZX,csharp:QX,css:JX,diff:qX,go:XX,graphql:zX,ini:VX,java:KX,javascript:FX,json:BX,kotlin:LX,less:jX,lua:IX,makefile:DX,markdown:MX,objectivec:AX,perl:OX,php:CX,"php-template":kX,plaintext:yX,python:$X,"python-repl":NX,r:RX,ruby:bX,rust:EX,scss:TX,shell:xX,sql:SX,swift:cX,typescript:rX,vbnet:oX,wasm:tX,xml:eX,yaml:Zz};class Qz extends Error{name="Assertion";code="ERR_ASSERTION";constructor(Z,Q,J,q,X){super(Z);if(Error.captureStackTrace)Error.captureStackTrace(this,this.constructor);this.actual=Q,this.expected=J,this.generated=X,this.operator=q}}function a1(Z,Q){MH(Boolean(Z),!1,!0,"ok","Expected value to be truthy",Q)}function MH(Z,Q,J,q,X,z){if(!Z)throw z instanceof Error?z:new Qz(z||X,Q,J,q,!z)}var kz=Sz(Cz(),1);var yz=kz.default;var $z={},UF="hljs-";function d6(Z){let Q=yz.newInstance();if(Z)z(Z);return{highlight:J,highlightAuto:q,listLanguages:X,register:z,registerAlias:V,registered:Y};function J(G,K,W){a1(typeof G==="string","expected `string` as `name`"),a1(typeof K==="string","expected `string` as `value`");let U=W||$z,H=typeof U.prefix==="string"?U.prefix:UF;if(!Q.getLanguage(G))throw Error("Unknown language: `"+G+"` is not registered");Q.configure({__emitter:Nz,classPrefix:H});let F=Q.highlight(K,{ignoreIllegals:!0,language:G});if(F.errorRaised)throw Error("Could not highlight with `Highlight.js`",{cause:F.errorRaised});let B=F._emitter.root,L=B.data;return L.language=F.language,L.relevance=F.relevance,B}function q(G,K){a1(typeof G==="string","expected `string` as `value`");let U=(K||$z).subset||X(),H=-1,F=0,B;while(++HF)F=P.data.relevance,B=P}return B||{type:"root",children:[],data:{language:void 0,relevance:F}}}function X(){return Q.listLanguages()}function z(G,K){if(typeof G==="string")a1(K!==void 0,"expected `grammar`"),Q.registerLanguage(G,K);else{let W;for(W in G)if(Object.hasOwn(G,W))Q.registerLanguage(W,G[W])}}function V(G,K){if(typeof G==="string")a1(K!==void 0),Q.registerAliases(typeof K==="string"?K:[...K],{languageName:G});else{let W;for(W in G)if(Object.hasOwn(G,W)){let U=G[W];Q.registerAliases(typeof U==="string"?U:[...U],{languageName:W})}}}function Y(G){return Boolean(Q.getLanguage(G))}}class Nz{constructor(Z){this.options=Z,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(Z){if(Z==="")return;let Q=this.stack[this.stack.length-1],J=Q.children[Q.children.length-1];if(J&&J.type==="text")J.value+=Z;else Q.children.push({type:"text",value:Z})}startScope(Z){this.openNode(String(Z))}endScope(){this.closeNode()}__addSublanguage(Z,Q){let J=this.stack[this.stack.length-1],q=Z.root.children;if(Q)J.children.push({type:"element",tagName:"span",properties:{className:[Q]},children:q});else J.children.push(...q)}openNode(Z){let Q=this,J=Z.split(".").map(function(z,V){return V?z+"_".repeat(V):Q.options.classPrefix+z}),q=this.stack[this.stack.length-1],X={type:"element",tagName:"span",properties:{className:J},children:[]};q.children.push(X),this.stack.push(X)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}var HF=d6(u6);function FF(Z,Q,J){return new d4({element:Z,extensions:[yJ.configure({codeBlock:!1}),$J.configure({placeholder:"Start writing..."}),cJ.configure({openOnClick:!1}),pJ,lJ,dJ.configure({nested:!0}),Aq.configure({resizable:!0}),Oq,Cq,kq,rq.configure({lowlight:HF})],content:Q,onUpdate:({editor:q})=>{if(J)J(q.getHTML())}})}window.createEditor=FF; diff --git a/admin/index.html b/admin/index.html new file mode 100644 index 0000000..1530378 --- /dev/null +++ b/admin/index.html @@ -0,0 +1,1035 @@ + + + + + + StaticPress Admin + + + + + + + +
+
+ + + + + \ No newline at end of file diff --git a/bun.lock b/bun.lock index 58a52d6..b9af654 100644 --- a/bun.lock +++ b/bun.lock @@ -5,35 +5,42 @@ "": { "name": "blog-static", "dependencies": { - "@astrojs/cloudflare": "^13.1.1", - "@astrojs/tailwind": "^6.0.2", - "astro": "^6.0.4", - "tailwindcss": "^4.2.1", + "@astrojs/cloudflare": "^13.1.2", + "@tiptap/core": "^2.10.0", + "@tiptap/extension-code-block": "^2.10.0", + "@tiptap/extension-image": "^2.10.0", + "@tiptap/extension-link": "^2.10.0", + "@tiptap/extension-placeholder": "^2.10.0", + "@tiptap/pm": "^2.10.0", + "@tiptap/starter-kit": "^2.10.0", + "astro": "^6.0.7", + "dompurify": "^3.2.0", + "js-yaml": "^4.1.1", + "jsdom": "^26.0.0", + "marked": "^15.0.0", + "tailwindcss": "^4.2.2", }, "devDependencies": { - "@tailwindcss/postcss": "^4.2.1", - "@tailwindcss/vite": "^4.2.1", + "@tailwindcss/vite": "^4.0.0", "@types/bun": "latest", - }, - "peerDependencies": { - "typescript": "^5", + "@types/dompurify": "^3.0.5", + "@types/js-yaml": "^4.0.9", + "@types/jsdom": "^28.0.1", }, }, }, "packages": { - "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], + "@asamuzakjp/css-color": ["@asamuzakjp/css-color@3.2.0", "", { "dependencies": { "@csstools/css-calc": "^2.1.3", "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" } }, "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw=="], - "@astrojs/cloudflare": ["@astrojs/cloudflare@13.1.1", "", { "dependencies": { "@astrojs/internal-helpers": "0.8.0", "@astrojs/underscore-redirects": "1.0.1", "@cloudflare/vite-plugin": "^1.25.6", "piccolore": "^0.1.3", "tinyglobby": "^0.2.15", "vite": "^7.3.1" }, "peerDependencies": { "astro": "^6.0.0-alpha.0", "wrangler": "^4.61.1" } }, "sha512-Bx2Sr/cLi9VUA0iArMYc/O6wsKZdC2W6prE8dzMGbJqaF5oEBVBG6UclKe1T95SISrDIysuLlFNvVWL6htqnuA=="], + "@astrojs/cloudflare": ["@astrojs/cloudflare@13.1.2", "", { "dependencies": { "@astrojs/internal-helpers": "0.8.0", "@astrojs/underscore-redirects": "1.0.1", "@cloudflare/vite-plugin": "^1.25.6", "piccolore": "^0.1.3", "tinyglobby": "^0.2.15", "vite": "^7.3.1" }, "peerDependencies": { "astro": "^6.0.0", "wrangler": "^4.61.1" } }, "sha512-Uz2ci/OwmaI50jSSzEy0jOqUlsZisHHRjFATS/0qqqJGEdwRtxArQtoplmwqUAmw/ojc1RKoSJWdB3qbKOU2mQ=="], "@astrojs/compiler": ["@astrojs/compiler@3.0.0", "", {}, "sha512-MwAbDE5mawZ1SS+D8qWiHdprdME5Tlj2e0YjxnEICvcOpbSukNS7Sa7hA5PK+6RrmUr/t6Gi5YgrdZKjbO/WPQ=="], "@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.8.0", "", { "dependencies": { "picomatch": "^4.0.3" } }, "sha512-J56GrhEiV+4dmrGLPNOl2pZjpHXAndWVyiVDYGDuw6MWKpBSEMLdFxHzeM/6sqaknw9M+HFfHZAcvi3OfT3D/w=="], - "@astrojs/markdown-remark": ["@astrojs/markdown-remark@7.0.0", "", { "dependencies": { "@astrojs/internal-helpers": "0.8.0", "@astrojs/prism": "4.0.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "js-yaml": "^4.1.1", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.1.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "sha512-jTAXHPy45L7o1ljH4jYV+ShtOHtyQUa1mGp3a5fJp1soX8lInuTJQ6ihmldHzVM4Q7QptU4SzIDIcKbBJO7sXQ=="], - - "@astrojs/prism": ["@astrojs/prism@4.0.0", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-NndtNPpxaGinRpRytljGBvYHpTOwHycSZ/c+lQi5cHvkqqrHKWdkPEhImlODBNmbuB+vyQUNUDXyjzt66CihJg=="], + "@astrojs/markdown-remark": ["@astrojs/markdown-remark@7.0.1", "", { "dependencies": { "@astrojs/internal-helpers": "0.8.0", "@astrojs/prism": "4.0.1", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "js-yaml": "^4.1.1", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.1.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "sha512-zAfLJmn07u9SlDNNHTpjv0RT4F8D4k54NR7ReRas8CO4OeGoqSvOuKwqCFg2/cqN3wHwdWlK/7Yv/lMXlhVIaw=="], - "@astrojs/tailwind": ["@astrojs/tailwind@6.0.2", "", { "dependencies": { "autoprefixer": "^10.4.21", "postcss": "^8.5.3", "postcss-load-config": "^4.0.2" }, "peerDependencies": { "astro": "^3.0.0 || ^4.0.0 || ^5.0.0", "tailwindcss": "^3.0.24" } }, "sha512-j3mhLNeugZq6A8dMNXVarUa8K6X9AW+QHU9u3lKNrPLMHhOQ0S7VeWhHwEeJFpEK1BTKEUY1U78VQv2gN6hNGg=="], + "@astrojs/prism": ["@astrojs/prism@4.0.1", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ=="], "@astrojs/telemetry": ["@astrojs/telemetry@3.3.0", "", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ=="], @@ -71,6 +78,16 @@ "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="], + "@csstools/color-helpers": ["@csstools/color-helpers@5.1.0", "", {}, "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA=="], + + "@csstools/css-calc": ["@csstools/css-calc@2.1.4", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ=="], + + "@csstools/css-color-parser": ["@csstools/css-color-parser@3.1.0", "", { "dependencies": { "@csstools/color-helpers": "^5.1.0", "@csstools/css-calc": "^2.1.4" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA=="], + + "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.5", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="], + + "@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.4", "", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="], + "@emnapi/runtime": ["@emnapi/runtime@1.9.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw=="], "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.4", "", { "os": "aix", "cpu": "ppc64" }, "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q=="], @@ -193,6 +210,8 @@ "@poppinss/exception": ["@poppinss/exception@1.2.3", "", {}, "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw=="], + "@remirror/core-constants": ["@remirror/core-constants@3.0.0", "", {}, "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg=="], + "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.59.0", "", { "os": "android", "cpu": "arm" }, "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg=="], @@ -293,30 +312,96 @@ "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.2.1", "", { "os": "win32", "cpu": "x64" }, "sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ=="], - "@tailwindcss/postcss": ["@tailwindcss/postcss@4.2.1", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.2.1", "@tailwindcss/oxide": "4.2.1", "postcss": "^8.5.6", "tailwindcss": "4.2.1" } }, "sha512-OEwGIBnXnj7zJeonOh6ZG9woofIjGrd2BORfvE5p9USYKDCZoQmfqLcfNiRWoJlRWLdNPn2IgVZuWAOM4iTYMw=="], - "@tailwindcss/vite": ["@tailwindcss/vite@4.2.1", "", { "dependencies": { "@tailwindcss/node": "4.2.1", "@tailwindcss/oxide": "4.2.1", "tailwindcss": "4.2.1" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" } }, "sha512-TBf2sJjYeb28jD2U/OhwdW0bbOsxkWPwQ7SrqGf9sVcoYwZj7rkXljroBO9wKBut9XnmQLXanuDUeqQK0lGg/w=="], + "@tiptap/core": ["@tiptap/core@2.27.2", "", { "peerDependencies": { "@tiptap/pm": "^2.7.0" } }, "sha512-ABL1N6eoxzDzC1bYvkMbvyexHacszsKdVPYqhl5GwHLOvpZcv9VE9QaKwDILTyz5voCA0lGcAAXZp+qnXOk5lQ=="], + + "@tiptap/extension-blockquote": ["@tiptap/extension-blockquote@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-oIGZgiAeA4tG3YxbTDfrmENL4/CIwGuP3THtHsNhwRqwsl9SfMk58Ucopi2GXTQSdYXpRJ0ahE6nPqB5D6j/Zw=="], + + "@tiptap/extension-bold": ["@tiptap/extension-bold@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-bR7J5IwjCGQ0s3CIxyMvOCnMFMzIvsc5OVZKscTN5UkXzFsaY6muUAIqtKxayBUucjtUskm5qZowJITCeCb1/A=="], + + "@tiptap/extension-bullet-list": ["@tiptap/extension-bullet-list@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-gmFuKi97u5f8uFc/GQs+zmezjiulZmFiDYTh3trVoLRoc2SAHOjGEB7qxdx7dsqmMN7gwiAWAEVurLKIi1lnnw=="], + + "@tiptap/extension-code": ["@tiptap/extension-code@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-7X9AgwqiIGXoZX7uvdHQsGsjILnN/JaEVtqfXZnPECzKGaWHeK/Ao4sYvIIIffsyZJA8k5DC7ny2/0sAgr2TuA=="], + + "@tiptap/extension-code-block": ["@tiptap/extension-code-block@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-KgvdQHS4jXr79aU3wZOGBIZYYl9vCB7uDEuRFV4so2rYrfmiYMw3T8bTnlNEEGe4RUeAms1i4fdwwvQp9nR1Dw=="], + + "@tiptap/extension-document": ["@tiptap/extension-document@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-CFhAYsPnyYnosDC4639sCJnBUnYH4Cat9qH5NZWHVvdgtDwu8GZgZn2eSzaKSYXWH1vJ9DSlCK+7UyC3SNXIBA=="], + + "@tiptap/extension-dropcursor": ["@tiptap/extension-dropcursor@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-oEu/OrktNoQXq1x29NnH/GOIzQZm8ieTQl3FK27nxfBPA89cNoH4mFEUmBL5/OFIENIjiYG3qWpg6voIqzswNw=="], + + "@tiptap/extension-gapcursor": ["@tiptap/extension-gapcursor@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-/c9VF1HBxj+AP54XGVgCmD9bEGYc5w5OofYCFQgM7l7PB1J00A4vOke0oPkHJnqnOOyPlFaxO/7N6l3XwFcnKA=="], + + "@tiptap/extension-hard-break": ["@tiptap/extension-hard-break@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-kSRVGKlCYK6AGR0h8xRkk0WOFGXHIIndod3GKgWU49APuIGDiXd8sziXsSlniUsWmqgDmDXcNnSzPcV7AQ8YNg=="], + + "@tiptap/extension-heading": ["@tiptap/extension-heading@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-iM3yeRWuuQR/IRQ1djwNooJGfn9Jts9zF43qZIUf+U2NY8IlvdNsk2wTOdBgh6E0CamrStPxYGuln3ZS4fuglw=="], + + "@tiptap/extension-history": ["@tiptap/extension-history@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-+hSyqERoFNTWPiZx4/FCyZ/0eFqB9fuMdTB4AC/q9iwu3RNWAQtlsJg5230bf/qmyO6bZxRUc0k8p4hrV6ybAw=="], + + "@tiptap/extension-horizontal-rule": ["@tiptap/extension-horizontal-rule@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-WGWUSgX+jCsbtf9Y9OCUUgRZYuwjVoieW5n6mAUohJ9/6gc6sGIOrUpBShf+HHo6WD+gtQjRd+PssmX3NPWMpg=="], + + "@tiptap/extension-image": ["@tiptap/extension-image@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-5zL/BY41FIt72azVrCrv3n+2YJ/JyO8wxCcA4Dk1eXIobcgVyIdo4rG39gCqIOiqziAsqnqoj12QHTBtHsJ6mQ=="], + + "@tiptap/extension-italic": ["@tiptap/extension-italic@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-1OFsw2SZqfaqx5Fa5v90iNlPRcqyt+lVSjBwTDzuPxTPFY4Q0mL89mKgkq2gVHYNCiaRkXvFLDxaSvBWbmthgg=="], + + "@tiptap/extension-link": ["@tiptap/extension-link@2.27.2", "", { "dependencies": { "linkifyjs": "^4.3.2" }, "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-bnP61qkr0Kj9Cgnop1hxn2zbOCBzNtmawxr92bVTOE31fJv6FhtCnQiD6tuPQVGMYhcmAj7eihtvuEMFfqEPcQ=="], + + "@tiptap/extension-list-item": ["@tiptap/extension-list-item@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-eJNee7IEGXMnmygM5SdMGDC8m/lMWmwNGf9fPCK6xk0NxuQRgmZHL6uApKcdH6gyNcRPHCqvTTkhEP7pbny/fg=="], + + "@tiptap/extension-ordered-list": ["@tiptap/extension-ordered-list@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-M7A4tLGJcLPYdLC4CI2Gwl8LOrENQW59u3cMVa+KkwG1hzSJyPsbDpa1DI6oXPC2WtYiTf22zrbq3gVvH+KA2w=="], + + "@tiptap/extension-paragraph": ["@tiptap/extension-paragraph@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-elYVn2wHJJ+zB9LESENWOAfI4TNT0jqEN34sMA/hCtA4im1ZG2DdLHwkHIshj/c4H0dzQhmsS/YmNC5Vbqab/A=="], + + "@tiptap/extension-placeholder": ["@tiptap/extension-placeholder@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-IjsgSVYJRjpAKmIoapU0E2R4E2FPY3kpvU7/1i7PUYisylqejSJxmtJPGYw0FOMQY9oxnEEvfZHMBA610tqKpg=="], + + "@tiptap/extension-strike": ["@tiptap/extension-strike@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-HHIjhafLhS2lHgfAsCwC1okqMsQzR4/mkGDm4M583Yftyjri1TNA7lzhzXWRFWiiMfJxKtdjHjUAQaHuteRTZw=="], + + "@tiptap/extension-text": ["@tiptap/extension-text@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-Xk7nYcigljAY0GO9hAQpZ65ZCxqOqaAlTPDFcKerXmlkQZP/8ndx95OgUb1Xf63kmPOh3xypurGS2is3v0MXSA=="], + + "@tiptap/extension-text-style": ["@tiptap/extension-text-style@2.27.2", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-Omk+uxjJLyEY69KStpCw5fA9asvV+MGcAX2HOxyISDFoLaL49TMrNjhGAuz09P1L1b0KGXo4ml7Q3v/Lfy4WPA=="], + + "@tiptap/pm": ["@tiptap/pm@2.27.2", "", { "dependencies": { "prosemirror-changeset": "^2.3.0", "prosemirror-collab": "^1.3.1", "prosemirror-commands": "^1.6.2", "prosemirror-dropcursor": "^1.8.1", "prosemirror-gapcursor": "^1.3.2", "prosemirror-history": "^1.4.1", "prosemirror-inputrules": "^1.4.0", "prosemirror-keymap": "^1.2.2", "prosemirror-markdown": "^1.13.1", "prosemirror-menu": "^1.2.4", "prosemirror-model": "^1.23.0", "prosemirror-schema-basic": "^1.2.3", "prosemirror-schema-list": "^1.4.1", "prosemirror-state": "^1.4.3", "prosemirror-tables": "^1.6.4", "prosemirror-trailing-node": "^3.0.0", "prosemirror-transform": "^1.10.2", "prosemirror-view": "^1.37.0" } }, "sha512-kaEg7BfiJPDQMKbjVIzEPO3wlcA+pZb2tlcK9gPrdDnEFaec2QTF1sXz2ak2IIb2curvnIrQ4yrfHgLlVA72wA=="], + + "@tiptap/starter-kit": ["@tiptap/starter-kit@2.27.2", "", { "dependencies": { "@tiptap/core": "^2.27.2", "@tiptap/extension-blockquote": "^2.27.2", "@tiptap/extension-bold": "^2.27.2", "@tiptap/extension-bullet-list": "^2.27.2", "@tiptap/extension-code": "^2.27.2", "@tiptap/extension-code-block": "^2.27.2", "@tiptap/extension-document": "^2.27.2", "@tiptap/extension-dropcursor": "^2.27.2", "@tiptap/extension-gapcursor": "^2.27.2", "@tiptap/extension-hard-break": "^2.27.2", "@tiptap/extension-heading": "^2.27.2", "@tiptap/extension-history": "^2.27.2", "@tiptap/extension-horizontal-rule": "^2.27.2", "@tiptap/extension-italic": "^2.27.2", "@tiptap/extension-list-item": "^2.27.2", "@tiptap/extension-ordered-list": "^2.27.2", "@tiptap/extension-paragraph": "^2.27.2", "@tiptap/extension-strike": "^2.27.2", "@tiptap/extension-text": "^2.27.2", "@tiptap/extension-text-style": "^2.27.2", "@tiptap/pm": "^2.27.2" } }, "sha512-bb0gJvPoDuyRUQ/iuN52j1//EtWWttw+RXAv1uJxfR0uKf8X7uAqzaOOgwjknoCIDC97+1YHwpGdnRjpDkOBxw=="], + "@types/bun": ["@types/bun@1.3.10", "", { "dependencies": { "bun-types": "1.3.10" } }, "sha512-0+rlrUrOrTSskibryHbvQkDOWRJwJZqZlxrUs1u4oOoTln8+WIXBPmAuCF35SWB2z4Zl3E84Nl/D0P7803nigQ=="], "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], + "@types/dompurify": ["@types/dompurify@3.2.0", "", { "dependencies": { "dompurify": "*" } }, "sha512-Fgg31wv9QbLDA0SpTOXO3MaxySc4DKGLi8sna4/Utjo4r3ZRPdCt4UQee8BWr+Q5z21yifghREPJGYaEOEIACg=="], + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], + "@types/js-yaml": ["@types/js-yaml@4.0.9", "", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="], + + "@types/jsdom": ["@types/jsdom@28.0.1", "", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0", "undici-types": "^7.21.0" } }, "sha512-GJq2QE4TAZ5ajSoCasn5DOFm8u1mI3tIFvM5tIq3W5U/RTB6gsHwc6Yhpl91X9VSDOUVblgXmG+2+sSvFQrdlw=="], + + "@types/linkify-it": ["@types/linkify-it@5.0.0", "", {}, "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q=="], + + "@types/markdown-it": ["@types/markdown-it@14.1.2", "", { "dependencies": { "@types/linkify-it": "^5", "@types/mdurl": "^2" } }, "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog=="], + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + "@types/mdurl": ["@types/mdurl@2.0.0", "", {}, "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg=="], + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], "@types/nlcst": ["@types/nlcst@2.0.3", "", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="], "@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], + "@types/tough-cookie": ["@types/tough-cookie@4.0.5", "", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="], + + "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], + "agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], @@ -325,26 +410,18 @@ "array-iterate": ["array-iterate@2.0.1", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="], - "astro": ["astro@6.0.4", "", { "dependencies": { "@astrojs/compiler": "^3.0.0", "@astrojs/internal-helpers": "0.8.0", "@astrojs/markdown-remark": "7.0.0", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.0.1", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.3.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^1.1.1", "devalue": "^5.6.3", "diff": "^8.0.3", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^2.0.0", "esbuild": "^0.27.3", "flattie": "^1.1.1", "fontace": "~0.4.1", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "js-yaml": "^4.1.1", "magic-string": "^0.30.21", "magicast": "^0.5.2", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.3", "rehype": "^13.0.2", "semver": "^7.7.4", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "svgo": "^4.0.0", "tinyclip": "^0.1.6", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tsconfck": "^3.1.6", "ultrahtml": "^1.6.0", "unifont": "~0.7.4", "unist-util-visit": "^5.1.0", "unstorage": "^1.17.4", "vfile": "^6.0.3", "vite": "^7.3.1", "vitefu": "^1.1.2", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.3.6" }, "optionalDependencies": { "sharp": "^0.34.0" }, "bin": { "astro": "bin/astro.mjs" } }, "sha512-1piLJCPTL/x7AMO2cjVFSTFyRqKuC3W8sSEySCt1aJio+p/wGs5H3K+Xr/rE9ftKtknLUtjxCqCE7/0NsXfGpQ=="], - - "autoprefixer": ["autoprefixer@10.4.27", "", { "dependencies": { "browserslist": "^4.28.1", "caniuse-lite": "^1.0.30001774", "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA=="], + "astro": ["astro@6.0.7", "", { "dependencies": { "@astrojs/compiler": "^3.0.0", "@astrojs/internal-helpers": "0.8.0", "@astrojs/markdown-remark": "7.0.1", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.0.1", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.3.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^1.1.1", "devalue": "^5.6.3", "diff": "^8.0.3", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^2.0.0", "esbuild": "^0.27.3", "flattie": "^1.1.1", "fontace": "~0.4.1", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "js-yaml": "^4.1.1", "magic-string": "^0.30.21", "magicast": "^0.5.2", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.3", "rehype": "^13.0.2", "semver": "^7.7.4", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "svgo": "^4.0.0", "tinyclip": "^0.1.6", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tsconfck": "^3.1.6", "ultrahtml": "^1.6.0", "unifont": "~0.7.4", "unist-util-visit": "^5.1.0", "unstorage": "^1.17.4", "vfile": "^6.0.3", "vite": "^7.3.1", "vitefu": "^1.1.2", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.3.6" }, "optionalDependencies": { "sharp": "^0.34.0" }, "bin": { "astro": "bin/astro.mjs" } }, "sha512-tCUrtQI+2Dk13xTM07JYrvk16T4ekWqSXh0/dVCunne816ZV+RCs1tomSoTHZi3DJdoaTnLJmkH+uxCC3b1KWw=="], "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.10.8", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ=="], - "blake3-wasm": ["blake3-wasm@2.1.5", "", {}, "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g=="], "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], - "browserslist": ["browserslist@4.28.1", "", { "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", "electron-to-chromium": "^1.5.263", "node-releases": "^2.0.27", "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" } }, "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA=="], - "bun-types": ["bun-types@1.3.10", "", { "dependencies": { "@types/node": "*" } }, "sha512-tcpfCCl6XWo6nCVnpcVrxQ+9AYN1iqMIzgrSKYMB/fjLtV2eyAVEg7AxQJuCq/26R6HpKWykQXuSOq/21RYcbg=="], - "caniuse-lite": ["caniuse-lite@1.0.30001779", "", {}, "sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA=="], - "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], @@ -369,6 +446,8 @@ "cookie-es": ["cookie-es@1.2.2", "", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="], + "crelt": ["crelt@1.0.6", "", {}, "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="], + "crossws": ["crossws@0.3.5", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA=="], "css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="], @@ -379,8 +458,14 @@ "csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="], + "cssstyle": ["cssstyle@4.6.0", "", { "dependencies": { "@asamuzakjp/css-color": "^3.2.0", "rrweb-cssom": "^0.8.0" } }, "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg=="], + + "data-urls": ["data-urls@5.0.0", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + "decimal.js": ["decimal.js@10.6.0", "", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], + "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="], "defu": ["defu@6.1.4", "", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="], @@ -405,12 +490,12 @@ "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="], + "dompurify": ["dompurify@3.3.3", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA=="], + "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], "dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], - "electron-to-chromium": ["electron-to-chromium@1.5.313", "", {}, "sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA=="], - "enhanced-resolve": ["enhanced-resolve@5.20.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" } }, "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ=="], "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], @@ -421,9 +506,7 @@ "esbuild": ["esbuild@0.27.4", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.4", "@esbuild/android-arm": "0.27.4", "@esbuild/android-arm64": "0.27.4", "@esbuild/android-x64": "0.27.4", "@esbuild/darwin-arm64": "0.27.4", "@esbuild/darwin-x64": "0.27.4", "@esbuild/freebsd-arm64": "0.27.4", "@esbuild/freebsd-x64": "0.27.4", "@esbuild/linux-arm": "0.27.4", "@esbuild/linux-arm64": "0.27.4", "@esbuild/linux-ia32": "0.27.4", "@esbuild/linux-loong64": "0.27.4", "@esbuild/linux-mips64el": "0.27.4", "@esbuild/linux-ppc64": "0.27.4", "@esbuild/linux-riscv64": "0.27.4", "@esbuild/linux-s390x": "0.27.4", "@esbuild/linux-x64": "0.27.4", "@esbuild/netbsd-arm64": "0.27.4", "@esbuild/netbsd-x64": "0.27.4", "@esbuild/openbsd-arm64": "0.27.4", "@esbuild/openbsd-x64": "0.27.4", "@esbuild/openharmony-arm64": "0.27.4", "@esbuild/sunos-x64": "0.27.4", "@esbuild/win32-arm64": "0.27.4", "@esbuild/win32-ia32": "0.27.4", "@esbuild/win32-x64": "0.27.4" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ=="], - "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], - - "escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], @@ -439,8 +522,6 @@ "fontkitten": ["fontkitten@1.0.3", "", { "dependencies": { "tiny-inflate": "^1.0.3" } }, "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw=="], - "fraction.js": ["fraction.js@5.3.4", "", {}, "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ=="], - "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], @@ -469,12 +550,20 @@ "hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], + "html-encoding-sniffer": ["html-encoding-sniffer@4.0.0", "", { "dependencies": { "whatwg-encoding": "^3.1.1" } }, "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="], + "html-escaper": ["html-escaper@3.0.3", "", {}, "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ=="], "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], "http-cache-semantics": ["http-cache-semantics@4.2.0", "", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="], + "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], + + "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + + "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + "idb-keyval": ["idb-keyval@6.2.2", "", {}, "sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg=="], "iron-webcrypto": ["iron-webcrypto@1.2.1", "", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="], @@ -485,12 +574,16 @@ "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], + "is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="], "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + "jsdom": ["jsdom@26.1.0", "", { "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", "decimal.js": "^10.5.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.16", "parse5": "^7.2.1", "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.1.1", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.1.1", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg=="], + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], "lightningcss": ["lightningcss@1.31.1", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.31.1", "lightningcss-darwin-arm64": "1.31.1", "lightningcss-darwin-x64": "1.31.1", "lightningcss-freebsd-x64": "1.31.1", "lightningcss-linux-arm-gnueabihf": "1.31.1", "lightningcss-linux-arm64-gnu": "1.31.1", "lightningcss-linux-arm64-musl": "1.31.1", "lightningcss-linux-x64-gnu": "1.31.1", "lightningcss-linux-x64-musl": "1.31.1", "lightningcss-win32-arm64-msvc": "1.31.1", "lightningcss-win32-x64-msvc": "1.31.1" } }, "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ=="], @@ -517,7 +610,9 @@ "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.31.1", "", { "os": "win32", "cpu": "x64" }, "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw=="], - "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], + "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="], + + "linkifyjs": ["linkifyjs@4.3.2", "", {}, "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA=="], "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], @@ -527,8 +622,12 @@ "magicast": ["magicast@0.5.2", "", { "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "source-map-js": "^1.2.1" } }, "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ=="], + "markdown-it": ["markdown-it@14.1.1", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA=="], + "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], + "marked": ["marked@15.0.12", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA=="], + "mdast-util-definitions": ["mdast-util-definitions@6.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ=="], "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], @@ -557,6 +656,8 @@ "mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="], + "mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="], + "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], @@ -629,12 +730,12 @@ "node-mock-http": ["node-mock-http@1.0.4", "", {}, "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ=="], - "node-releases": ["node-releases@2.0.36", "", {}, "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA=="], - "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], + "nwsapi": ["nwsapi@2.2.23", "", {}, "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ=="], + "obug": ["obug@2.1.1", "", {}, "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ=="], "ofetch": ["ofetch@1.5.1", "", { "dependencies": { "destr": "^2.0.5", "node-fetch-native": "^1.6.7", "ufo": "^1.6.1" } }, "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA=="], @@ -645,6 +746,8 @@ "oniguruma-to-es": ["oniguruma-to-es@4.3.5", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ=="], + "orderedmap": ["orderedmap@2.1.1", "", {}, "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g=="], + "p-limit": ["p-limit@7.3.0", "", { "dependencies": { "yocto-queue": "^1.2.1" } }, "sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw=="], "p-queue": ["p-queue@9.1.0", "", { "dependencies": { "eventemitter3": "^5.0.1", "p-timeout": "^7.0.0" } }, "sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw=="], @@ -669,14 +772,50 @@ "postcss": ["postcss@8.5.8", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg=="], - "postcss-load-config": ["postcss-load-config@4.0.2", "", { "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ=="], - - "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], - "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], + "prosemirror-changeset": ["prosemirror-changeset@2.4.0", "", { "dependencies": { "prosemirror-transform": "^1.0.0" } }, "sha512-LvqH2v7Q2SF6yxatuPP2e8vSUKS/L+xAU7dPDC4RMyHMhZoGDfBC74mYuyYF4gLqOEG758wajtyhNnsTkuhvng=="], + + "prosemirror-collab": ["prosemirror-collab@1.3.1", "", { "dependencies": { "prosemirror-state": "^1.0.0" } }, "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ=="], + + "prosemirror-commands": ["prosemirror-commands@1.7.1", "", { "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.10.2" } }, "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w=="], + + "prosemirror-dropcursor": ["prosemirror-dropcursor@1.8.2", "", { "dependencies": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0", "prosemirror-view": "^1.1.0" } }, "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw=="], + + "prosemirror-gapcursor": ["prosemirror-gapcursor@1.4.1", "", { "dependencies": { "prosemirror-keymap": "^1.0.0", "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", "prosemirror-view": "^1.0.0" } }, "sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw=="], + + "prosemirror-history": ["prosemirror-history@1.5.0", "", { "dependencies": { "prosemirror-state": "^1.2.2", "prosemirror-transform": "^1.0.0", "prosemirror-view": "^1.31.0", "rope-sequence": "^1.3.0" } }, "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg=="], + + "prosemirror-inputrules": ["prosemirror-inputrules@1.5.1", "", { "dependencies": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.0.0" } }, "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw=="], + + "prosemirror-keymap": ["prosemirror-keymap@1.2.3", "", { "dependencies": { "prosemirror-state": "^1.0.0", "w3c-keyname": "^2.2.0" } }, "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw=="], + + "prosemirror-markdown": ["prosemirror-markdown@1.13.4", "", { "dependencies": { "@types/markdown-it": "^14.0.0", "markdown-it": "^14.0.0", "prosemirror-model": "^1.25.0" } }, "sha512-D98dm4cQ3Hs6EmjK500TdAOew4Z03EV71ajEFiWra3Upr7diytJsjF4mPV2dW+eK5uNectiRj0xFxYI9NLXDbw=="], + + "prosemirror-menu": ["prosemirror-menu@1.3.0", "", { "dependencies": { "crelt": "^1.0.0", "prosemirror-commands": "^1.0.0", "prosemirror-history": "^1.0.0", "prosemirror-state": "^1.0.0" } }, "sha512-TImyPXCHPcDsSka2/lwJ6WjTASr4re/qWq1yoTTuLOqfXucwF6VcRa2LWCkM/EyTD1UO3CUwiH8qURJoWJRxwg=="], + + "prosemirror-model": ["prosemirror-model@1.25.4", "", { "dependencies": { "orderedmap": "^2.0.0" } }, "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA=="], + + "prosemirror-schema-basic": ["prosemirror-schema-basic@1.2.4", "", { "dependencies": { "prosemirror-model": "^1.25.0" } }, "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ=="], + + "prosemirror-schema-list": ["prosemirror-schema-list@1.5.1", "", { "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.7.3" } }, "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q=="], + + "prosemirror-state": ["prosemirror-state@1.4.4", "", { "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-transform": "^1.0.0", "prosemirror-view": "^1.27.0" } }, "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw=="], + + "prosemirror-tables": ["prosemirror-tables@1.8.5", "", { "dependencies": { "prosemirror-keymap": "^1.2.3", "prosemirror-model": "^1.25.4", "prosemirror-state": "^1.4.4", "prosemirror-transform": "^1.10.5", "prosemirror-view": "^1.41.4" } }, "sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw=="], + + "prosemirror-trailing-node": ["prosemirror-trailing-node@3.0.0", "", { "dependencies": { "@remirror/core-constants": "3.0.0", "escape-string-regexp": "^4.0.0" }, "peerDependencies": { "prosemirror-model": "^1.22.1", "prosemirror-state": "^1.4.2", "prosemirror-view": "^1.33.8" } }, "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ=="], + + "prosemirror-transform": ["prosemirror-transform@1.11.0", "", { "dependencies": { "prosemirror-model": "^1.21.0" } }, "sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw=="], + + "prosemirror-view": ["prosemirror-view@1.41.7", "", { "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, "sha512-jUwKNCEIGiqdvhlS91/2QAg21e4dfU5bH2iwmSDQeosXJgKF7smG0YSplOWK0cjSNgIqXe7VXqo7EIfUFJdt3w=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="], + "radix3": ["radix3@1.1.2", "", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="], "readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="], @@ -715,8 +854,16 @@ "rollup": ["rollup@4.59.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.59.0", "@rollup/rollup-android-arm64": "4.59.0", "@rollup/rollup-darwin-arm64": "4.59.0", "@rollup/rollup-darwin-x64": "4.59.0", "@rollup/rollup-freebsd-arm64": "4.59.0", "@rollup/rollup-freebsd-x64": "4.59.0", "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", "@rollup/rollup-linux-arm-musleabihf": "4.59.0", "@rollup/rollup-linux-arm64-gnu": "4.59.0", "@rollup/rollup-linux-arm64-musl": "4.59.0", "@rollup/rollup-linux-loong64-gnu": "4.59.0", "@rollup/rollup-linux-loong64-musl": "4.59.0", "@rollup/rollup-linux-ppc64-gnu": "4.59.0", "@rollup/rollup-linux-ppc64-musl": "4.59.0", "@rollup/rollup-linux-riscv64-gnu": "4.59.0", "@rollup/rollup-linux-riscv64-musl": "4.59.0", "@rollup/rollup-linux-s390x-gnu": "4.59.0", "@rollup/rollup-linux-x64-gnu": "4.59.0", "@rollup/rollup-linux-x64-musl": "4.59.0", "@rollup/rollup-openbsd-x64": "4.59.0", "@rollup/rollup-openharmony-arm64": "4.59.0", "@rollup/rollup-win32-arm64-msvc": "4.59.0", "@rollup/rollup-win32-ia32-msvc": "4.59.0", "@rollup/rollup-win32-x64-gnu": "4.59.0", "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg=="], + "rope-sequence": ["rope-sequence@1.3.4", "", {}, "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ=="], + + "rrweb-cssom": ["rrweb-cssom@0.8.0", "", {}, "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="], + + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + "sax": ["sax@1.5.0", "", {}, "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA=="], + "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], + "semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], "sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], @@ -737,7 +884,9 @@ "svgo": ["svgo@4.0.1", "", { "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "^1.5.0" }, "bin": "./bin/svgo.js" }, "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w=="], - "tailwindcss": ["tailwindcss@4.2.1", "", {}, "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw=="], + "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], + + "tailwindcss": ["tailwindcss@4.2.2", "", {}, "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q=="], "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], @@ -749,6 +898,14 @@ "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + "tldts": ["tldts@6.1.86", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="], + + "tldts-core": ["tldts-core@6.1.86", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="], + + "tough-cookie": ["tough-cookie@5.1.2", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="], + + "tr46": ["tr46@5.1.1", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="], + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], @@ -759,6 +916,8 @@ "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="], + "ufo": ["ufo@1.6.3", "", {}, "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q=="], "ultrahtml": ["ultrahtml@1.6.0", "", {}, "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw=="], @@ -767,7 +926,7 @@ "undici": ["undici@7.18.2", "", {}, "sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw=="], - "undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], + "undici-types": ["undici-types@7.24.5", "", {}, "sha512-kNh333UBSbgK35OIW7FwJTr9tTfVIG51Fm1tSVT7m8foPHfDVjsb7OIee/q/rs3bB2aV/3qOPgG5mHNWl1odiA=="], "unenv": ["unenv@2.0.0-rc.24", "", { "dependencies": { "pathe": "^2.0.3" } }, "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw=="], @@ -795,8 +954,6 @@ "unstorage": ["unstorage@1.17.4", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^5.0.0", "destr": "^2.0.5", "h3": "^1.15.5", "lru-cache": "^11.2.0", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.1", "ufo": "^1.6.3" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6 || ^7 || ^8", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1 || ^2 || ^3", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw=="], - "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], - "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], "vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="], @@ -807,8 +964,20 @@ "vitefu": ["vitefu@1.1.2", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw=="], + "w3c-keyname": ["w3c-keyname@2.2.8", "", {}, "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="], + + "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], + "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], + "webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], + + "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], + + "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], + + "whatwg-url": ["whatwg-url@14.2.0", "", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="], + "which-pm-runs": ["which-pm-runs@1.1.0", "", {}, "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA=="], "workerd": ["workerd@1.20260312.1", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20260312.1", "@cloudflare/workerd-darwin-arm64": "1.20260312.1", "@cloudflare/workerd-linux-64": "1.20260312.1", "@cloudflare/workerd-linux-arm64": "1.20260312.1", "@cloudflare/workerd-windows-64": "1.20260312.1" }, "bin": { "workerd": "bin/workerd" } }, "sha512-nNpPkw9jaqo79B+iBCOiksx+N62xC+ETIfyzofUEdY3cSOHJg6oNnVSHm7vHevzVblfV76c8Gr0cXHEapYMBEg=="], @@ -817,6 +986,10 @@ "ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="], + "xml-name-validator": ["xml-name-validator@5.0.0", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="], + + "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], + "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="], "yaml": ["yaml@2.8.2", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A=="], @@ -833,8 +1006,12 @@ "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + "@asamuzakjp/css-color/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], + "@tailwindcss/node/tailwindcss": ["tailwindcss@4.2.1", "", {}, "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.9.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.9.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw=="], @@ -847,12 +1024,20 @@ "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@tailwindcss/vite/tailwindcss": ["tailwindcss@4.2.1", "", {}, "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw=="], + + "@types/node/undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], + "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="], "dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + "markdown-it/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "mdast-util-find-and-replace/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], + "wrangler/esbuild": ["esbuild@0.27.3", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.3", "@esbuild/android-arm": "0.27.3", "@esbuild/android-arm64": "0.27.3", "@esbuild/android-x64": "0.27.3", "@esbuild/darwin-arm64": "0.27.3", "@esbuild/darwin-x64": "0.27.3", "@esbuild/freebsd-arm64": "0.27.3", "@esbuild/freebsd-x64": "0.27.3", "@esbuild/linux-arm": "0.27.3", "@esbuild/linux-arm64": "0.27.3", "@esbuild/linux-ia32": "0.27.3", "@esbuild/linux-loong64": "0.27.3", "@esbuild/linux-mips64el": "0.27.3", "@esbuild/linux-ppc64": "0.27.3", "@esbuild/linux-riscv64": "0.27.3", "@esbuild/linux-s390x": "0.27.3", "@esbuild/linux-x64": "0.27.3", "@esbuild/netbsd-arm64": "0.27.3", "@esbuild/netbsd-x64": "0.27.3", "@esbuild/openbsd-arm64": "0.27.3", "@esbuild/openbsd-x64": "0.27.3", "@esbuild/openharmony-arm64": "0.27.3", "@esbuild/sunos-x64": "0.27.3", "@esbuild/win32-arm64": "0.27.3", "@esbuild/win32-ia32": "0.27.3", "@esbuild/win32-x64": "0.27.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg=="], "csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="], diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..66ff8ac --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7621 @@ +{ + "name": "staticpress", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "staticpress", + "dependencies": { + "@astrojs/cloudflare": "^13.1.2", + "@tiptap/core": "^2.10.0", + "@tiptap/extension-code-block": "^2.10.0", + "@tiptap/extension-code-block-lowlight": "^2.27.2", + "@tiptap/extension-image": "^2.27.2", + "@tiptap/extension-link": "^2.10.0", + "@tiptap/extension-placeholder": "^2.10.0", + "@tiptap/extension-table": "^2.27.2", + "@tiptap/extension-table-cell": "^2.27.2", + "@tiptap/extension-table-header": "^2.27.2", + "@tiptap/extension-table-row": "^2.27.2", + "@tiptap/extension-task-item": "^2.27.2", + "@tiptap/extension-task-list": "^2.27.2", + "@tiptap/pm": "^2.10.0", + "@tiptap/starter-kit": "^2.10.0", + "astro": "^6.0.7", + "dompurify": "^3.2.0", + "js-yaml": "^4.1.1", + "jsdom": "^26.0.0", + "lowlight": "^3.3.0", + "marked": "^15.0.0", + "sharp": "^0.33.5", + "tailwindcss": "^4.2.2" + }, + "devDependencies": { + "@tailwindcss/vite": "^4.0.0", + "@types/bun": "latest", + "@types/dompurify": "^3.0.5", + "@types/js-yaml": "^4.0.9", + "@types/jsdom": "^28.0.1" + } + }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "license": "ISC" + }, + "node_modules/@astrojs/cloudflare": { + "version": "13.1.2", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.8.0", + "@astrojs/underscore-redirects": "1.0.1", + "@cloudflare/vite-plugin": "^1.25.6", + "piccolore": "^0.1.3", + "tinyglobby": "^0.2.15", + "vite": "^7.3.1" + }, + "peerDependencies": { + "astro": "^6.0.0", + "wrangler": "^4.61.1" + } + }, + "node_modules/@astrojs/compiler": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/@astrojs/internal-helpers": { + "version": "0.8.0", + "license": "MIT", + "dependencies": { + "picomatch": "^4.0.3" + } + }, + "node_modules/@astrojs/markdown-remark": { + "version": "7.0.1", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.8.0", + "@astrojs/prism": "4.0.1", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "js-yaml": "^4.1.1", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.1", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.2", + "remark-smartypants": "^3.0.2", + "shiki": "^4.0.0", + "smol-toml": "^1.6.0", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.1.0", + "unist-util-visit-parents": "^6.0.2", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/prism": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "prismjs": "^1.30.0" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@astrojs/telemetry": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "ci-info": "^4.2.0", + "debug": "^4.4.0", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "is-docker": "^3.0.0", + "is-wsl": "^3.1.0", + "which-pm-runs": "^1.1.0" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@astrojs/underscore-redirects": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.0", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@capsizecss/unpack": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@clack/core": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "sisteransi": "^1.0.5" + } + }, + "node_modules/@clack/prompts": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@clack/core": "1.1.0", + "sisteransi": "^1.0.5" + } + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.4.2", + "license": "MIT OR Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@cloudflare/unenv-preset": { + "version": "2.15.0", + "license": "MIT OR Apache-2.0", + "peerDependencies": { + "unenv": "2.0.0-rc.24", + "workerd": "1.20260301.1 || ~1.20260302.1 || ~1.20260303.1 || ~1.20260304.1 || >1.20260305.0 <2.0.0-0" + }, + "peerDependenciesMeta": { + "workerd": { + "optional": true + } + } + }, + "node_modules/@cloudflare/vite-plugin": { + "version": "1.28.0", + "license": "MIT", + "dependencies": { + "@cloudflare/unenv-preset": "2.15.0", + "miniflare": "4.20260312.0", + "unenv": "2.0.0-rc.24", + "wrangler": "4.73.0", + "ws": "8.18.0" + }, + "peerDependencies": { + "vite": "^6.1.0 || ^7.0.0", + "wrangler": "^4.73.0" + } + }, + "node_modules/@cloudflare/workerd-darwin-64": { + "version": "1.20260312.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260312.1.tgz", + "integrity": "sha512-HUAtDWaqUduS6yasV6+NgsK7qBpP1qGU49ow/Wb117IHjYp+PZPUGReDYocpB4GOMRoQlvdd4L487iFxzdARpw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-darwin-arm64": { + "version": "1.20260312.1", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-linux-64": { + "version": "1.20260312.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260312.1.tgz", + "integrity": "sha512-TdkIh3WzPXYHuvz7phAtFEEvAxvFd30tHrm4gsgpw0R0F5b8PtoM3hfL2uY7EcBBWVYUBtkY2ahDYFfufnXw/g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-linux-arm64": { + "version": "1.20260312.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260312.1.tgz", + "integrity": "sha512-kNauZhL569Iy94t844OMwa1zP6zKFiL3xiJ4tGLS+TFTEfZ3pZsRH6lWWOtkXkjTyCmBEOog0HSEKjIV4oAffw==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-windows-64": { + "version": "1.20260312.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260312.1.tgz", + "integrity": "sha512-5dBrlSK+nMsZy5bYQpj8t9iiQNvCRlkm9GGvswJa9vVU/1BNO4BhJMlqOLWT24EmFyApZ+kaBiPJMV8847NDTg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", + "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz", + "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz", + "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz", + "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz", + "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.4", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz", + "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz", + "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz", + "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz", + "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz", + "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz", + "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz", + "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz", + "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz", + "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz", + "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz", + "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz", + "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz", + "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz", + "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz", + "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz", + "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz", + "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz", + "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz", + "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz", + "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz", + "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/@poppinss/colors": { + "version": "4.1.6", + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5" + } + }, + "node_modules/@poppinss/dumper": { + "version": "0.6.5", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@sindresorhus/is": "^7.0.2", + "supports-color": "^10.0.0" + } + }, + "node_modules/@poppinss/exception": { + "version": "1.2.3", + "license": "MIT" + }, + "node_modules/@remirror/core-constants": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.59.0", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/core": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@shikijs/primitive": "4.0.2", + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/langs": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/primitive": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/themes": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/types": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "7.2.0", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@speed-highlight/core": { + "version": "1.2.14", + "license": "CC0-1.0" + }, + "node_modules/@tailwindcss/node": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.31.1", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.1" + } + }, + "node_modules/@tailwindcss/node/node_modules/tailwindcss": { + "version": "4.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.1", + "@tailwindcss/oxide-darwin-arm64": "4.2.1", + "@tailwindcss/oxide-darwin-x64": "4.2.1", + "@tailwindcss/oxide-freebsd-x64": "4.2.1", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.1", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.1", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.1", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.1", + "@tailwindcss/oxide-linux-x64-musl": "4.2.1", + "@tailwindcss/oxide-wasm32-wasi": "4.2.1", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.1", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.1" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.1.tgz", + "integrity": "sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.1", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.1.tgz", + "integrity": "sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.1.tgz", + "integrity": "sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.1.tgz", + "integrity": "sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.1.tgz", + "integrity": "sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.1.tgz", + "integrity": "sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.1.tgz", + "integrity": "sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.1.tgz", + "integrity": "sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.1.tgz", + "integrity": "sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.1.tgz", + "integrity": "sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.1.tgz", + "integrity": "sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.2.1", + "@tailwindcss/oxide": "4.2.1", + "tailwindcss": "4.2.1" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" + } + }, + "node_modules/@tailwindcss/vite/node_modules/tailwindcss": { + "version": "4.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@tiptap/core": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-blockquote": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-bold": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-bullet-list": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-code": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-code-block": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-code-block-lowlight": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.27.2.tgz", + "integrity": "sha512-v6NKStBbQ/XCc1NnCi3ObsL1DsxadSIBtUQNA/B+urkPgn5LEy72HAGlf0xwjRaNkAGSaTASLKmc84L5q5zlGQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/extension-code-block": "^2.7.0", + "@tiptap/pm": "^2.7.0", + "highlight.js": "^11", + "lowlight": "^2 || ^3" + } + }, + "node_modules/@tiptap/extension-document": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-dropcursor": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-gapcursor": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-hard-break": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-heading": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-history": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-horizontal-rule": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-image": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.27.2.tgz", + "integrity": "sha512-5zL/BY41FIt72azVrCrv3n+2YJ/JyO8wxCcA4Dk1eXIobcgVyIdo4rG39gCqIOiqziAsqnqoj12QHTBtHsJ6mQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-italic": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-link": { + "version": "2.27.2", + "license": "MIT", + "dependencies": { + "linkifyjs": "^4.3.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-list-item": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-ordered-list": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-paragraph": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-placeholder": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-strike": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-table": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.27.2.tgz", + "integrity": "sha512-pDbhOpT5phZkcsyPjGBQlXv0+0hmdrvqHJ+dJjkGcCtlfy2pHiEIhmIItOFagc7wXy8G9iUFZ9Jie4zvDf+brg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-table-cell": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.27.2.tgz", + "integrity": "sha512-9Lk46MjZMFzVZfOj9Kd7VgC6Odt6vmEhlCYVumErShUY7EkFqCw3b2IYoUtQkntfOEx/Afnhff/okNQwPsJeUA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-table-header": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.27.2.tgz", + "integrity": "sha512-ZEb6lbG0NbbodWLV0b4BS/QrDIPlUbCcuOsUxzqVvlMUY1Vg6Fj6fKwLaBcsIUDHi8sxZDBEgYEDw3BR/zcO6A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-table-row": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.27.2.tgz", + "integrity": "sha512-Nw9+tA56Y5HtLVP01NGCZSUuTQhJPtfK9OfmDgGgcxynn2cRVdEtj+9FNZqRhQ1iRVaAI+Rd4xRvX9qYePMOxw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-task-item": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-task-item/-/extension-task-item-2.27.2.tgz", + "integrity": "sha512-ZBSqj/dygB/Rp5K9qOxRVwASTZCmKVoTq8C59KvMgD/aFjJxhq/w2dZaWkCUEXEep+NmvJqo0kfeAEMY5UDnGg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0", + "@tiptap/pm": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-task-list": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-task-list/-/extension-task-list-2.27.2.tgz", + "integrity": "sha512-5nupAewdzZ9F3599oAcaK0WkDH04wdACAVBPM4zG7InlIpkbho3txB7zWmm64OxfhCMIMGKiXY1q0bw9i0QBGQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-text": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/extension-text-style": { + "version": "2.27.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.7.0" + } + }, + "node_modules/@tiptap/pm": { + "version": "2.27.2", + "license": "MIT", + "dependencies": { + "prosemirror-changeset": "^2.3.0", + "prosemirror-collab": "^1.3.1", + "prosemirror-commands": "^1.6.2", + "prosemirror-dropcursor": "^1.8.1", + "prosemirror-gapcursor": "^1.3.2", + "prosemirror-history": "^1.4.1", + "prosemirror-inputrules": "^1.4.0", + "prosemirror-keymap": "^1.2.2", + "prosemirror-markdown": "^1.13.1", + "prosemirror-menu": "^1.2.4", + "prosemirror-model": "^1.23.0", + "prosemirror-schema-basic": "^1.2.3", + "prosemirror-schema-list": "^1.4.1", + "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.6.4", + "prosemirror-trailing-node": "^3.0.0", + "prosemirror-transform": "^1.10.2", + "prosemirror-view": "^1.37.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/starter-kit": { + "version": "2.27.2", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^2.27.2", + "@tiptap/extension-blockquote": "^2.27.2", + "@tiptap/extension-bold": "^2.27.2", + "@tiptap/extension-bullet-list": "^2.27.2", + "@tiptap/extension-code": "^2.27.2", + "@tiptap/extension-code-block": "^2.27.2", + "@tiptap/extension-document": "^2.27.2", + "@tiptap/extension-dropcursor": "^2.27.2", + "@tiptap/extension-gapcursor": "^2.27.2", + "@tiptap/extension-hard-break": "^2.27.2", + "@tiptap/extension-heading": "^2.27.2", + "@tiptap/extension-history": "^2.27.2", + "@tiptap/extension-horizontal-rule": "^2.27.2", + "@tiptap/extension-italic": "^2.27.2", + "@tiptap/extension-list-item": "^2.27.2", + "@tiptap/extension-ordered-list": "^2.27.2", + "@tiptap/extension-paragraph": "^2.27.2", + "@tiptap/extension-strike": "^2.27.2", + "@tiptap/extension-text": "^2.27.2", + "@tiptap/extension-text-style": "^2.27.2", + "@tiptap/pm": "^2.27.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@types/bun": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.3.11.tgz", + "integrity": "sha512-5vPne5QvtpjGpsGYXiFyycfpDF2ECyPcTSsFBMa0fraoxiQyMJ3SmuQIGhzPg2WJuWxVBoxWJ2kClYTcw/4fAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bun-types": "1.3.11" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/dompurify": { + "version": "3.2.0", + "deprecated": "This is a stub types definition. dompurify provides its own type definitions, so you do not need this installed.", + "dev": true, + "license": "MIT", + "dependencies": { + "dompurify": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsdom": { + "version": "28.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0", + "undici-types": "^7.21.0" + } + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/node": { + "version": "25.5.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/node/node_modules/undici-types": { + "version": "7.18.2", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "license": "MIT", + "optional": true + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "license": "ISC" + }, + "node_modules/agent-base": { + "version": "7.1.4", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/astro": { + "version": "6.0.7", + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^3.0.0", + "@astrojs/internal-helpers": "0.8.0", + "@astrojs/markdown-remark": "7.0.1", + "@astrojs/telemetry": "3.3.0", + "@capsizecss/unpack": "^4.0.0", + "@clack/prompts": "^1.0.1", + "@oslojs/encoding": "^1.1.0", + "@rollup/pluginutils": "^5.3.0", + "aria-query": "^5.3.2", + "axobject-query": "^4.1.0", + "ci-info": "^4.4.0", + "clsx": "^2.1.1", + "common-ancestor-path": "^2.0.0", + "cookie": "^1.1.1", + "devalue": "^5.6.3", + "diff": "^8.0.3", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "es-module-lexer": "^2.0.0", + "esbuild": "^0.27.3", + "flattie": "^1.1.1", + "fontace": "~0.4.1", + "github-slugger": "^2.0.0", + "html-escaper": "3.0.3", + "http-cache-semantics": "^4.2.0", + "js-yaml": "^4.1.1", + "magic-string": "^0.30.21", + "magicast": "^0.5.2", + "mrmime": "^2.0.1", + "neotraverse": "^0.6.18", + "obug": "^2.1.1", + "p-limit": "^7.3.0", + "p-queue": "^9.1.0", + "package-manager-detector": "^1.6.0", + "piccolore": "^0.1.3", + "picomatch": "^4.0.3", + "rehype": "^13.0.2", + "semver": "^7.7.4", + "shiki": "^4.0.0", + "smol-toml": "^1.6.0", + "svgo": "^4.0.0", + "tinyclip": "^0.1.6", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tsconfck": "^3.1.6", + "ultrahtml": "^1.6.0", + "unifont": "~0.7.4", + "unist-util-visit": "^5.1.0", + "unstorage": "^1.17.4", + "vfile": "^6.0.3", + "vite": "^7.3.1", + "vitefu": "^1.1.2", + "xxhash-wasm": "^1.1.0", + "yargs-parser": "^22.0.0", + "zod": "^4.3.6" + }, + "bin": { + "astro": "bin/astro.mjs" + }, + "engines": { + "node": ">=22.12.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/astrodotbuild" + }, + "optionalDependencies": { + "sharp": "^0.34.0" + } + }, + "node_modules/astro/node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/astro/node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/astro/node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/astro/node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/astro/node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/astro/node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/astro/node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/astro/node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/astro/node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/astro/node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/blake3-wasm": { + "version": "2.1.5", + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/bun-types": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.3.11.tgz", + "integrity": "sha512-1KGPpoxQWl9f6wcZh57LvrPIInQMn2TQ7jsgxqpRzg+l0QPOFvJVH7HmvHo/AiPgwXy+/Thf6Ov3EdVn1vOabg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ccount": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "11.1.0", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/common-ancestor-path": { + "version": "2.0.0", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">= 18" + } + }, + "node_modules/cookie": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cookie-es": { + "version": "1.2.2", + "license": "MIT" + }, + "node_modules/crelt": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/crossws": { + "version": "0.3.5", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree/node_modules/mdn-data": { + "version": "2.0.28", + "license": "CC0-1.0" + }, + "node_modules/cssstyle": { + "version": "4.6.0", + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "license": "MIT" + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.6.4", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff": { + "version": "8.0.3", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "3.3.3", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dset": { + "version": "3.1.4", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.4", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.4", + "@esbuild/android-arm": "0.27.4", + "@esbuild/android-arm64": "0.27.4", + "@esbuild/android-x64": "0.27.4", + "@esbuild/darwin-arm64": "0.27.4", + "@esbuild/darwin-x64": "0.27.4", + "@esbuild/freebsd-arm64": "0.27.4", + "@esbuild/freebsd-x64": "0.27.4", + "@esbuild/linux-arm": "0.27.4", + "@esbuild/linux-arm64": "0.27.4", + "@esbuild/linux-ia32": "0.27.4", + "@esbuild/linux-loong64": "0.27.4", + "@esbuild/linux-mips64el": "0.27.4", + "@esbuild/linux-ppc64": "0.27.4", + "@esbuild/linux-riscv64": "0.27.4", + "@esbuild/linux-s390x": "0.27.4", + "@esbuild/linux-x64": "0.27.4", + "@esbuild/netbsd-arm64": "0.27.4", + "@esbuild/netbsd-x64": "0.27.4", + "@esbuild/openbsd-arm64": "0.27.4", + "@esbuild/openbsd-x64": "0.27.4", + "@esbuild/openharmony-arm64": "0.27.4", + "@esbuild/sunos-x64": "0.27.4", + "@esbuild/win32-arm64": "0.27.4", + "@esbuild/win32-ia32": "0.27.4", + "@esbuild/win32-x64": "0.27.4" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/flattie": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fontace": { + "version": "0.4.1", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.2" + } + }, + "node_modules/fontkitten": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "tiny-inflate": "^1.0.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/h3": { + "version": "1.15.6", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.2", + "crossws": "^0.3.5", + "defu": "^6.1.4", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.4", + "radix3": "^1.1.2", + "ufo": "^1.6.3", + "uncrypto": "^0.1.3" + } + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/highlight.js": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-escaper": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT" + }, + "node_modules/is-docker": { + "version": "3.0.0", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "devOptional": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "26.1.0", + "license": "MIT", + "dependencies": { + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.5.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.1.1", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.1", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.31.1", + "devOptional": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.31.1", + "lightningcss-darwin-arm64": "1.31.1", + "lightningcss-darwin-x64": "1.31.1", + "lightningcss-freebsd-x64": "1.31.1", + "lightningcss-linux-arm-gnueabihf": "1.31.1", + "lightningcss-linux-arm64-gnu": "1.31.1", + "lightningcss-linux-arm64-musl": "1.31.1", + "lightningcss-linux-x64-gnu": "1.31.1", + "lightningcss-linux-x64-musl": "1.31.1", + "lightningcss-win32-arm64-msvc": "1.31.1", + "lightningcss-win32-x64-msvc": "1.31.1" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.31.1.tgz", + "integrity": "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.31.1", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.31.1.tgz", + "integrity": "sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.31.1.tgz", + "integrity": "sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.31.1.tgz", + "integrity": "sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.31.1.tgz", + "integrity": "sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.31.1.tgz", + "integrity": "sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.31.1.tgz", + "integrity": "sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.31.1.tgz", + "integrity": "sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.31.1.tgz", + "integrity": "sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz", + "integrity": "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/linkifyjs": { + "version": "4.3.2", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lowlight": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-3.3.0.tgz", + "integrity": "sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.0.0", + "highlight.js": "~11.11.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "11.2.7", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.2", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" + } + }, + "node_modules/markdown-it": { + "version": "14.1.1", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/marked": { + "version": "15.0.12", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mdast-util-definitions": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "license": "CC0-1.0" + }, + "node_modules/mdurl": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/micromark": { + "version": "4.0.2", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/miniflare": { + "version": "4.20260312.0", + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "0.8.1", + "sharp": "^0.34.5", + "undici": "7.18.2", + "workerd": "1.20260312.1", + "ws": "8.18.0", + "youch": "4.1.0-beta.10" + }, + "bin": { + "miniflare": "bootstrap.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/miniflare/node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neotraverse": { + "version": "0.6.18", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "license": "MIT" + }, + "node_modules/node-mock-http": { + "version": "1.0.4", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.23", + "license": "MIT" + }, + "node_modules/obug": { + "version": "2.1.1", + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/ofetch": { + "version": "1.5.1", + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "license": "MIT" + }, + "node_modules/oniguruma-parser": { + "version": "0.12.1", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.5", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.1", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/orderedmap": { + "version": "2.1.1", + "license": "MIT" + }, + "node_modules/p-limit": { + "version": "7.3.0", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.2.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^7.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "7.0.1", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-manager-detector": { + "version": "1.6.0", + "license": "MIT" + }, + "node_modules/parse-latin": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "license": "MIT" + }, + "node_modules/piccolore": { + "version": "0.1.3", + "license": "ISC" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.8", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/prosemirror-changeset": { + "version": "2.4.0", + "license": "MIT", + "dependencies": { + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-collab": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-commands": { + "version": "1.7.1", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.10.2" + } + }, + "node_modules/prosemirror-dropcursor": { + "version": "1.8.2", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0", + "prosemirror-view": "^1.1.0" + } + }, + "node_modules/prosemirror-gapcursor": { + "version": "1.4.1", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.0.0", + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-view": "^1.0.0" + } + }, + "node_modules/prosemirror-history": { + "version": "1.5.0", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "node_modules/prosemirror-inputrules": { + "version": "1.5.1", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-keymap": { + "version": "1.2.3", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "node_modules/prosemirror-markdown": { + "version": "1.13.4", + "license": "MIT", + "dependencies": { + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.0.0", + "prosemirror-model": "^1.25.0" + } + }, + "node_modules/prosemirror-menu": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "crelt": "^1.0.0", + "prosemirror-commands": "^1.0.0", + "prosemirror-history": "^1.0.0", + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-model": { + "version": "1.25.4", + "license": "MIT", + "dependencies": { + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-schema-basic": { + "version": "1.2.4", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.25.0" + } + }, + "node_modules/prosemirror-schema-list": { + "version": "1.5.1", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.7.3" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.4", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-tables": { + "version": "1.8.5", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.4", + "prosemirror-state": "^1.4.4", + "prosemirror-transform": "^1.10.5", + "prosemirror-view": "^1.41.4" + } + }, + "node_modules/prosemirror-trailing-node": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@remirror/core-constants": "3.0.0", + "escape-string-regexp": "^4.0.0" + }, + "peerDependencies": { + "prosemirror-model": "^1.22.1", + "prosemirror-state": "^1.4.2", + "prosemirror-view": "^1.33.8" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.11.0", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.21.0" + } + }, + "node_modules/prosemirror-view": { + "version": "1.41.7", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.20.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/radix3": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "license": "MIT" + }, + "node_modules/rehype": { + "version": "13.0.2", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "rehype-parse": "^9.0.0", + "rehype-stringify": "^10.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "9.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext": { + "version": "9.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rollup": { + "version": "4.59.0", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.59.0", + "@rollup/rollup-android-arm64": "4.59.0", + "@rollup/rollup-darwin-arm64": "4.59.0", + "@rollup/rollup-darwin-x64": "4.59.0", + "@rollup/rollup-freebsd-arm64": "4.59.0", + "@rollup/rollup-freebsd-x64": "4.59.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", + "@rollup/rollup-linux-arm64-gnu": "4.59.0", + "@rollup/rollup-linux-arm64-musl": "4.59.0", + "@rollup/rollup-linux-loong64-gnu": "4.59.0", + "@rollup/rollup-linux-loong64-musl": "4.59.0", + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", + "@rollup/rollup-linux-ppc64-musl": "4.59.0", + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", + "@rollup/rollup-linux-riscv64-musl": "4.59.0", + "@rollup/rollup-linux-s390x-gnu": "4.59.0", + "@rollup/rollup-linux-x64-gnu": "4.59.0", + "@rollup/rollup-linux-x64-musl": "4.59.0", + "@rollup/rollup-openbsd-x64": "4.59.0", + "@rollup/rollup-openharmony-arm64": "4.59.0", + "@rollup/rollup-win32-arm64-msvc": "4.59.0", + "@rollup/rollup-win32-ia32-msvc": "4.59.0", + "@rollup/rollup-win32-x64-gnu": "4.59.0", + "@rollup/rollup-win32-x64-msvc": "4.59.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rope-sequence": { + "version": "1.3.4", + "license": "MIT" + }, + "node_modules/rrweb-cssom": { + "version": "0.8.0", + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.5.0", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/saxes": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/shiki": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@shikijs/core": "4.0.2", + "@shikijs/engine-javascript": "4.0.2", + "@shikijs/engine-oniguruma": "4.0.2", + "@shikijs/langs": "4.0.2", + "@shikijs/themes": "4.0.2", + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/smol-toml": { + "version": "1.6.0", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/supports-color": { + "version": "10.2.2", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/svgo": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "4.2.2", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/tinyclip": { + "version": "0.1.12", + "license": "MIT", + "engines": { + "node": "^16.14.0 || >= 17.3.0" + } + }, + "node_modules/tinyexec": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tldts": { + "version": "6.1.86", + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tsconfck": { + "version": "3.1.6", + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/ufo": { + "version": "1.6.3", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "license": "MIT" + }, + "node_modules/undici": { + "version": "7.18.2", + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/undici-types": { + "version": "7.24.5", + "dev": true, + "license": "MIT" + }, + "node_modules/unenv": { + "version": "2.0.0-rc.24", + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unifont": { + "version": "0.7.4", + "license": "MIT", + "dependencies": { + "css-tree": "^3.1.0", + "ofetch": "^1.5.1", + "ohash": "^2.0.11" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unstorage": { + "version": "1.17.4", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.5", + "lru-cache": "^11.2.0", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.3" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6 || ^7 || ^8", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1 || ^2 || ^3", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "7.3.1", + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.1.2", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "license": "MIT" + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which-pm-runs": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/workerd": { + "version": "1.20260312.1", + "hasInstallScript": true, + "license": "Apache-2.0", + "bin": { + "workerd": "bin/workerd" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "@cloudflare/workerd-darwin-64": "1.20260312.1", + "@cloudflare/workerd-darwin-arm64": "1.20260312.1", + "@cloudflare/workerd-linux-64": "1.20260312.1", + "@cloudflare/workerd-linux-arm64": "1.20260312.1", + "@cloudflare/workerd-windows-64": "1.20260312.1" + } + }, + "node_modules/wrangler": { + "version": "4.73.0", + "license": "MIT OR Apache-2.0", + "dependencies": { + "@cloudflare/kv-asset-handler": "0.4.2", + "@cloudflare/unenv-preset": "2.15.0", + "blake3-wasm": "2.1.5", + "esbuild": "0.27.3", + "miniflare": "4.20260312.0", + "path-to-regexp": "6.3.0", + "unenv": "2.0.0-rc.24", + "workerd": "1.20260312.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" + }, + "engines": { + "node": ">=20.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@cloudflare/workers-types": "^4.20260312.1" + }, + "peerDependenciesMeta": { + "@cloudflare/workers-types": { + "optional": true + } + } + }, + "node_modules/wrangler/node_modules/@esbuild/aix-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/darwin-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/freebsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-loong64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-mips64el": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-riscv64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-s390x": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/netbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/openbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/sunos-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/win32-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/win32-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/win32-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/esbuild": { + "version": "0.27.3", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" + } + }, + "node_modules/wrangler/node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { + "version": "0.27.3", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "license": "MIT" + }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/yargs-parser": { + "version": "22.0.0", + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/youch": { + "version": "4.1.0-beta.10", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@poppinss/dumper": "^0.6.4", + "@speed-highlight/core": "^1.2.7", + "cookie": "^1.0.2", + "youch-core": "^0.3.3" + } + }, + "node_modules/youch-core": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.2", + "error-stack-parser-es": "^1.0.5" + } + }, + "node_modules/zod": { + "version": "4.3.6", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json index 38ad01c..c874952 100644 --- a/package.json +++ b/package.json @@ -3,22 +3,42 @@ "type": "module", "private": true, "scripts": { - "dev": "astro dev", - "build": "[ -d src/admin.tmp ] && mv src/admin.tmp src/pages/admin; trap 'mv src/admin.tmp src/pages/admin 2>/dev/null || true' ERR; mv src/pages/admin src/admin.tmp; astro build && mv src/admin.tmp src/pages/admin", - "preview": "astro preview" - }, - "devDependencies": { - "@tailwindcss/postcss": "^4.2.1", - "@tailwindcss/vite": "^4.2.1", - "@types/bun": "latest" - }, - "peerDependencies": { - "typescript": "^5" + "dev": "bun run src/server.ts", + "build": "bun run scripts/bundle-admin.ts && astro build && bun run scripts/copy-admin.ts && bun run scripts/generate-sitemap.ts", + "bundle": "bun run scripts/bundle-admin.ts", + "preview": "bunx wrangler pages dev dist", + "deploy": "bunx wrangler pages deploy dist" }, "dependencies": { - "@astrojs/cloudflare": "^13.1.1", - "@astrojs/tailwind": "^6.0.2", - "astro": "^6.0.4", - "tailwindcss": "^4.2.1" + "@astrojs/cloudflare": "^13.1.2", + "@tiptap/core": "^2.10.0", + "@tiptap/extension-code-block": "^2.10.0", + "@tiptap/extension-code-block-lowlight": "^2.27.2", + "@tiptap/extension-image": "^2.27.2", + "@tiptap/extension-link": "^2.10.0", + "@tiptap/extension-placeholder": "^2.10.0", + "@tiptap/extension-table": "^2.27.2", + "@tiptap/extension-table-cell": "^2.27.2", + "@tiptap/extension-table-header": "^2.27.2", + "@tiptap/extension-table-row": "^2.27.2", + "@tiptap/extension-task-item": "^2.27.2", + "@tiptap/extension-task-list": "^2.27.2", + "@tiptap/pm": "^2.10.0", + "@tiptap/starter-kit": "^2.10.0", + "astro": "^6.0.7", + "dompurify": "^3.2.0", + "js-yaml": "^4.1.1", + "jsdom": "^26.0.0", + "lowlight": "^3.3.0", + "marked": "^15.0.0", + "sharp": "^0.33.5", + "tailwindcss": "^4.2.2" + }, + "devDependencies": { + "@tailwindcss/vite": "^4.0.0", + "@types/bun": "latest", + "@types/dompurify": "^3.0.5", + "@types/js-yaml": "^4.0.9", + "@types/jsdom": "^28.0.1" } } diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index eee5eaa..0000000 --- a/public/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -User-agent: * -Allow: / - -Sitemap: https://staticpress.dev/sitemap.xml diff --git a/scripts/admin-editor.ts b/scripts/admin-editor.ts new file mode 100644 index 0000000..459f23b --- /dev/null +++ b/scripts/admin-editor.ts @@ -0,0 +1,47 @@ +import { Editor } from '@tiptap/core'; +import StarterKit from '@tiptap/starter-kit'; +import Placeholder from '@tiptap/extension-placeholder'; +import Link from '@tiptap/extension-link'; +import Image from '@tiptap/extension-image'; +import TaskList from '@tiptap/extension-task-list'; +import TaskItem from '@tiptap/extension-task-item'; +import Table from '@tiptap/extension-table'; +import TableRow from '@tiptap/extension-table-row'; +import TableHeader from '@tiptap/extension-table-header'; +import TableCell from '@tiptap/extension-table-cell'; +import CodeBlockLowlight from '@tiptap/extension-code-block-lowlight'; +import { createLowlight, common } from 'lowlight'; + +const lowlight = createLowlight(common); + +function createEditor(element: HTMLElement, content: string, onUpdate: (html: string) => void) { + return new Editor({ + element, + extensions: [ + StarterKit.configure({ + codeBlock: false, + }), + Placeholder.configure({ placeholder: 'Start writing...' }), + Link.configure({ openOnClick: false }), + Image, + TaskList, + TaskItem.configure({ nested: true }), + Table.configure({ resizable: true }), + TableRow, + TableHeader, + TableCell, + CodeBlockLowlight.configure({ lowlight }), + ], + content, + onUpdate: ({ editor }) => { + if (onUpdate) onUpdate(editor.getHTML()); + }, + }); +} + +declare global { + interface Window { + createEditor: typeof createEditor; + } +} +window.createEditor = createEditor; \ No newline at end of file diff --git a/scripts/bundle-admin.ts b/scripts/bundle-admin.ts new file mode 100644 index 0000000..820c144 --- /dev/null +++ b/scripts/bundle-admin.ts @@ -0,0 +1,16 @@ +#!/usr/bin/env bun +import { build } from 'bun'; +import { resolve } from 'path'; + +const root = process.cwd(); +const adminDir = resolve(root, 'admin'); + +await build({ + entrypoints: [resolve(root, 'scripts/admin-editor.ts')], + outdir: adminDir, + format: 'esm', + splitting: false, + minify: true, +}); + +console.log('Admin editor bundled successfully'); \ No newline at end of file diff --git a/scripts/config.ts b/scripts/config.ts new file mode 100644 index 0000000..3f420b0 --- /dev/null +++ b/scripts/config.ts @@ -0,0 +1,81 @@ +#!/usr/bin/env bun +import { readFileSync, existsSync } from 'fs'; +import { join } from 'path'; + +const PLACEHOLDER_SITE = 'https://yoursite.com'; +const PLACEHOLDER_FORMSPREE = 'YOUR_FORMSPREE_ID'; +const PLACEHOLDER_SITE_NAME = 'My Site'; +const PLACEHOLDER_AUTHOR = 'Site Author'; + +export interface SiteConfig { + siteUrl: string; + formspreeId: string; + siteName: string; + author: string; +} + +export function loadConfig(): SiteConfig { + const configPath = join(process.cwd(), 'site.config.json'); + + if (!existsSync(configPath)) { + console.warn('\n⚠️ Warning: site.config.json not found!'); + console.warn(' Creating default config with placeholder values.\n'); + return { + siteUrl: PLACEHOLDER_SITE, + formspreeId: PLACEHOLDER_FORMSPREE, + siteName: PLACEHOLDER_SITE_NAME, + author: PLACEHOLDER_AUTHOR, + }; + } + + try { + const content = readFileSync(configPath, 'utf-8'); + const config = JSON.parse(content) as SiteConfig; + + const warnings: string[] = []; + + if (config.siteUrl === PLACEHOLDER_SITE) { + warnings.push('siteUrl is still "https://yoursite.com"'); + } + + if (config.formspreeId === PLACEHOLDER_FORMSPREE) { + warnings.push('formspreeId is still "YOUR_FORMSPREE_ID"'); + } + + if ((config.siteName || PLACEHOLDER_SITE_NAME) === PLACEHOLDER_SITE_NAME) { + warnings.push('siteName is still "My Site"'); + } + + if ((config.author || PLACEHOLDER_AUTHOR) === PLACEHOLDER_AUTHOR) { + warnings.push('author is still "Site Author"'); + } + + if (warnings.length > 0) { + console.warn('\n⚠️ Warning: Configuration has placeholder values:'); + warnings.forEach(w => console.warn(` - ${w}`)); + console.warn(' Update site.config.json before deploying.\n'); + } + + return { + siteUrl: config.siteUrl || PLACEHOLDER_SITE, + formspreeId: config.formspreeId || PLACEHOLDER_FORMSPREE, + siteName: config.siteName || PLACEHOLDER_SITE_NAME, + author: config.author || PLACEHOLDER_AUTHOR, + }; + } catch (e) { + console.error('\n❌ Error: Failed to read site.config.json'); + return { + siteUrl: PLACEHOLDER_SITE, + formspreeId: PLACEHOLDER_FORMSPREE, + siteName: PLACEHOLDER_SITE_NAME, + author: PLACEHOLDER_AUTHOR, + }; + } +} + +export function isPlaceholder(value: string, placeholder: string): boolean { + return value === placeholder; +} + +export const PLACEHOLDER_SITE_URL = PLACEHOLDER_SITE; +export const PLACEHOLDER_FORMSPREE_ID = PLACEHOLDER_FORMSPREE; \ No newline at end of file diff --git a/scripts/copy-admin.ts b/scripts/copy-admin.ts new file mode 100644 index 0000000..f9f68d5 --- /dev/null +++ b/scripts/copy-admin.ts @@ -0,0 +1,17 @@ +#!/usr/bin/env bun +import { copyFileSync, mkdirSync, existsSync } from 'fs'; +import { resolve } from 'path'; + +const root = process.cwd(); +const src = resolve(root, 'admin', 'admin-editor.js'); +const destDir = resolve(root, 'dist', 'admin'); +const dest = resolve(destDir, 'admin-editor.js'); + +if (!existsSync(src)) { + console.error('admin-editor.js not found. Run "bun run bundle" first.'); + process.exit(1); +} + +mkdirSync(destDir, { recursive: true }); +copyFileSync(src, dest); +console.log('Copied admin-editor.js to dist/admin/'); \ No newline at end of file diff --git a/scripts/generate-sitemap.ts b/scripts/generate-sitemap.ts new file mode 100644 index 0000000..31b32d4 --- /dev/null +++ b/scripts/generate-sitemap.ts @@ -0,0 +1,98 @@ +#!/usr/bin/env bun +import { readdirSync, readFileSync, writeFileSync, existsSync } from 'fs'; +import { join } from 'path'; +import yaml from 'js-yaml'; +import { loadConfig } from './config'; + +const ROOT = process.cwd(); +const DIST_DIR = join(ROOT, 'dist'); +const POSTS_DIR = join(ROOT, 'src', 'content', 'posts'); +const PAGES_DIR = join(ROOT, 'src', 'content', 'pages'); + +const config = loadConfig(); +const { siteUrl } = config; + +function escapeXml(str: string): string { + return str + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +function extractFrontmatter(content: string): { data: Record; body: string } { + const frontmatterRegex = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/; + const match = content.match(frontmatterRegex); + if (!match) return { data: {}, body: content }; + + const frontmatterStr = match[1] || ''; + const body = match[2] || ''; + + try { + const data = yaml.load(frontmatterStr, { schema: yaml.JSON_SCHEMA }) as Record || {}; + return { data, body }; + } catch (e) { + return { data: {}, body }; + } +} + +function generateSitemap() { + const safeUrl = escapeXml(siteUrl); + const urls: string[] = [ + `${safeUrl}/weekly1.0`, + `${safeUrl}/blog/weekly0.9`, + ]; + + if (existsSync(POSTS_DIR)) { + const files = readdirSync(POSTS_DIR).filter((f: string) => f.endsWith('.md')); + for (const file of files) { + try { + const content = readFileSync(join(POSTS_DIR, file), 'utf-8'); + const { data } = extractFrontmatter(content); + if (data.published !== false) { + const slug = escapeXml(file.replace('.md', '')); + const lastmod = data.date ? new Date(data.date as string).toISOString().split('T')[0] : new Date().toISOString().split('T')[0]; + urls.push(`${safeUrl}/blog/${slug}/${lastmod}monthly0.8`); + } + } catch (e) {} + } + } + + if (existsSync(PAGES_DIR)) { + const files = readdirSync(PAGES_DIR).filter((f: string) => f.endsWith('.md')); + for (const file of files) { + try { + const content = readFileSync(join(PAGES_DIR, file), 'utf-8'); + const { data } = extractFrontmatter(content); + if (data.published !== false) { + const slug = escapeXml(file.replace('.md', '')); + urls.push(`${safeUrl}/${slug}/monthly0.7`); + } + } catch (e) {} + } + } + + const sitemap = ` + +${urls.join('\n')} +`; + + writeFileSync(join(DIST_DIR, 'sitemap.xml'), sitemap, 'utf-8'); + console.log('Generated sitemap.xml'); + + const robots = `User-agent: * +Allow: / + +# Sitemap +Sitemap: ${siteUrl}/sitemap.xml + +# Security - keep admin and API private +Disallow: /admin/ +Disallow: /api/`; + + writeFileSync(join(DIST_DIR, 'robots.txt'), robots, 'utf-8'); + console.log('Generated robots.txt'); +} + +generateSitemap(); \ No newline at end of file diff --git a/site.config.json b/site.config.json new file mode 100644 index 0000000..0b006bb --- /dev/null +++ b/site.config.json @@ -0,0 +1,6 @@ +{ + "siteUrl": "https://yoursite.com", + "formspreeId": "YOUR_FORMSPREE_ID", + "siteName": "My Site", + "author": "Site Author" +} \ No newline at end of file diff --git a/src/content.config.ts b/src/content.config.ts new file mode 100644 index 0000000..ab2c33a --- /dev/null +++ b/src/content.config.ts @@ -0,0 +1,24 @@ +import { defineCollection, z } from 'astro:content'; +import { glob } from 'astro/loaders'; + +const posts = defineCollection({ + loader: glob({ pattern: '**/*.md', base: './src/content/posts' }), + schema: z.object({ + title: z.string(), + date: z.coerce.date(), + excerpt: z.string().optional(), + published: z.boolean().default(false), + }), +}); + +const pages = defineCollection({ + loader: glob({ pattern: '**/*.md', base: './src/content/pages' }), + schema: z.object({ + title: z.string(), + date: z.coerce.date().optional(), + excerpt: z.string().optional(), + published: z.boolean().default(true), + }), +}); + +export const collections = { posts, pages }; diff --git a/src/content/pages/about.md b/src/content/pages/about.md index b94f872..c151f3e 100644 --- a/src/content/pages/about.md +++ b/src/content/pages/about.md @@ -11,13 +11,13 @@ StaticPress is a local-first static site generator that lets you create websites - **Local Admin Panel** - Create posts and pages in your browser - **Markdown Editor** - Write content with easy formatting - **Theme Customization** - Visual and code-based theming -- **One-Click Deploy** - Deploy to Cloudflare Pages withwrangler +- **One-Click Deploy** - Deploy to Cloudflare Pages with wrangler - **Open Source** - Free to use and modify ## Tech Stack - **Astro** - Static site generator -- **React** - Interactive admin UI +- **Vanilla JS** - Interactive admin UI - **Tailwind CSS** - Styling - **Bun** - Runtime - **Cloudflare Pages** - Deployment diff --git a/src/content/posts/my-new-post.md b/src/content/posts/my-new-post.md new file mode 100644 index 0000000..00cd885 --- /dev/null +++ b/src/content/posts/my-new-post.md @@ -0,0 +1,8 @@ +--- +title: "My New Post" +date: 2026-03-15 +excerpt: "This is my first post" +published: true +--- + +Hello world from the CLI! diff --git a/src/content/posts/welcome.md b/src/content/posts/welcome.md index 5f0c075..cc3e2c3 100644 --- a/src/content/posts/welcome.md +++ b/src/content/posts/welcome.md @@ -15,7 +15,7 @@ This is your first blog post! You can edit this in the admin panel. 2. Use the markdown editor to write content 3. Export your posts and copy to `src/content/posts/` 4. Run `bun run build` to generate the static site -5. Deploy to Cloudflare Pages with `npx wrangler pages deploy dist` +5. Deploy to Cloudflare Pages with `bunx wrangler pages deploy dist` ## Features diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 14def9b..584c335 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -1,11 +1,13 @@ --- +import { SITE_NAME } from '../lib/config'; + interface Props { title: string; description?: string; image?: string; } -const { title, description = 'A static site built with StaticPress', image } = Astro.props; +const { title, description = `A static site built with ${SITE_NAME}`, image } = Astro.props; --- @@ -24,13 +26,88 @@ const { title, description = 'A static site built with StaticPress', image } = A {image && } - + {image && } + + + diff --git a/src/layouts/PageLayout.astro b/src/layouts/PageLayout.astro new file mode 100644 index 0000000..2f19813 --- /dev/null +++ b/src/layouts/PageLayout.astro @@ -0,0 +1,104 @@ +--- +import BaseLayout from './BaseLayout.astro'; +import { SITE_NAME } from '../lib/config'; + +interface Props { + title: string; + description?: string; + image?: string; + showNav?: boolean; +} + +const { title, description, image, showNav = true } = Astro.props; +--- + + + + + {showNav && ( +
+
+ + +
+
+ )} + +
+ +
+ +
+
+

© {new Date().getFullYear()} {SITE_NAME}. Built with StaticPress

+
+
+
\ No newline at end of file diff --git a/src/lib/config.ts b/src/lib/config.ts new file mode 100644 index 0000000..cd8c7dc --- /dev/null +++ b/src/lib/config.ts @@ -0,0 +1,76 @@ +import { readFileSync, existsSync } from 'fs'; +import { join } from 'path'; + +const configPath = join(process.cwd(), 'site.config.json'); + +const defaultConfig = { + siteUrl: 'https://yoursite.com', + formspreeId: 'YOUR_FORMSPREE_ID', + siteName: 'My Site', + author: 'Site Author', +}; + +interface Config { + siteUrl: string; + formspreeId: string; + siteName: string; + author: string; +} + +function loadFromFile(): Config { + if (!existsSync(configPath)) { + return defaultConfig; + } + try { + const content = readFileSync(configPath, 'utf-8'); + return JSON.parse(content) as Config; + } catch { + return defaultConfig; + } +} + +const config = loadFromFile(); + +export const SITE_URL = config.siteUrl; +export const FORMSPREE_ID = config.formspreeId; +export const SITE_NAME = config.siteName; +export const AUTHOR = config.author; + +export function isProduction(): boolean { + if (SITE_URL === 'https://yoursite.com' || SITE_URL.includes('localhost')) { + return false; + } + + try { + const url = new URL(SITE_URL); + + if (url.protocol !== 'https:') { + return false; + } + + const hostname = url.hostname; + + if (hostname === 'localhost' || hostname === '127.0.0.1') { + return false; + } + + if (hostname.endsWith('.local')) { + return false; + } + + const ipPattern = /^(\d{1,3}\.){3}\d{1,3}$/; + if (ipPattern.test(hostname)) { + const parts = hostname.split('.').map(Number); + if (parts[0] === 10 || + (parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31) || + (parts[0] === 192 && parts[1] === 168) || + parts[0] === 127) { + return false; + } + } + + return true; + } catch { + return false; + } +} \ No newline at end of file diff --git a/src/lib/markdown.ts b/src/lib/markdown.ts new file mode 100644 index 0000000..9e4e6a2 --- /dev/null +++ b/src/lib/markdown.ts @@ -0,0 +1,85 @@ +import { marked } from 'marked'; +import DOMPurify from 'dompurify'; +import { JSDOM } from 'jsdom'; +import yaml from 'js-yaml'; + +const window = new JSDOM('').window; +const purify = DOMPurify(window as any); + +marked.setOptions({ + gfm: true, + breaks: true, +}); + +const MAX_CONTENT_SIZE = 1024 * 1024; // 1MB limit + +export function renderMarkdown(content: string): string { + if (!content || content.length > MAX_CONTENT_SIZE) { + return '

Content too large or empty

'; + } + + const html = marked.parse(content.slice(0, MAX_CONTENT_SIZE)) as string; + return purify.sanitize(html, { + ALLOWED_TAGS: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'br', 'hr', 'ul', 'ol', 'li', + 'blockquote', 'pre', 'code', 'em', 'strong', 'a', 'img', 'table', 'thead', + 'tbody', 'tr', 'th', 'td', 'div', 'span'], + ALLOWED_ATTR: ['href', 'src', 'alt', 'title', 'class', 'target', 'rel'], + FORBID_TAGS: ['script', 'iframe', 'object', 'embed', 'form', 'input', 'style'], + FORBID_ATTR: ['srcdoc', 'onerror', 'onload', 'onclick', 'style'], + } as any) as unknown as string; +} + +export interface FrontmatterData { + title?: string; + date?: string; + excerpt?: string; + published?: boolean; + [key: string]: any; +} + +export interface ParsedContent { + data: FrontmatterData; + body: string; +} + +export function extractFrontmatter(content: string): ParsedContent { + const frontmatterRegex = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/; + const match = content.match(frontmatterRegex); + + if (!match) { + return { data: {}, body: content }; + } + + const frontmatterStr = match[1] || ''; + const body = match[2] || ''; + + try { + const data = yaml.load(frontmatterStr, { schema: yaml.JSON_SCHEMA }) as FrontmatterData; + return { data: data || {}, body }; + } catch (e) { + console.error('YAML parse error:', e); + return { data: {}, body }; + } +} + +export function formatFrontmatter(data: Record, body: string): string { + const cleanData: Record = {}; + + for (const [key, value] of Object.entries(data)) { + if (value === undefined || value === null) continue; + cleanData[key] = value; + } + + const yamlContent = yaml.dump(cleanData, { quotingType: '"', forceQuotes: true }); + + return `---\n${yamlContent}---\n\n${body}`; +} + +export function slugify(text: string): string { + return text + .toLowerCase() + .replace(/[^\w\s-]/g, '') + .replace(/\s+/g, '-') + .replace(/-+/g, '-') + .trim(); +} diff --git a/src/pages/[slug].astro b/src/pages/[slug].astro new file mode 100644 index 0000000..198f9f2 --- /dev/null +++ b/src/pages/[slug].astro @@ -0,0 +1,96 @@ +--- +import { getCollection, render } from 'astro:content'; +import '../styles/global.css'; +import { SITE_URL, SITE_NAME } from '../lib/config'; + +export async function getStaticPaths() { + const pages = await getCollection('pages'); + return pages.map(page => ({ + params: { slug: page.id }, + props: { page }, + })); +} + +const { page } = Astro.props; +const { Content } = await render(page); +const { title, excerpt, date } = page.data; + +const siteUrl = SITE_URL; +const canonicalUrl = `${siteUrl}/${page.id}/`; +--- + + + + + + + + + {title} | {SITE_NAME} + + + + + + + + + + + + + + + + + + + + + + +
+
+ {SITE_NAME} + +
+
+ +
+
+
+

{title}

+ {date && ( +
+ +
+ )} +
+ +
+ +
+
+ + +
+ + + + diff --git a/src/pages/admin/build.astro b/src/pages/admin/build.astro index 69165c6..26250b8 100644 --- a/src/pages/admin/build.astro +++ b/src/pages/admin/build.astro @@ -2,6 +2,7 @@ import '../../styles/global.css'; const pageTitle = "Build Site"; --- + @@ -46,21 +47,27 @@ const pageTitle = "Build Site";

Build Site

-

Build your static site to prepare it for deployment.

+

Build your static site to prepare it for deployment. Run the build command in your terminal:

- +
+ bun run build +
- -
-

After Building

-

- Run bun run build to generate static files in dist/ folder, then deploy from Deploy Settings. +

+

Build Output

+

+ The build generates static files in the dist/ folder. After building, preview your site with bun run preview or deploy using the Deploy Settings.

@@ -68,34 +75,20 @@ const pageTitle = "Build Site";
- - - + \ No newline at end of file diff --git a/src/pages/admin/deploy.astro b/src/pages/admin/deploy.astro index 277004e..78ceec0 100644 --- a/src/pages/admin/deploy.astro +++ b/src/pages/admin/deploy.astro @@ -1,13 +1,9 @@ ---- -import '../../styles/global.css'; -const pageTitle = "Deploy Settings"; ---- - {pageTitle} | StaticPress Admin + Deploy Settings | StaticPress Admin - + \ No newline at end of file diff --git a/src/pages/admin/index.astro b/src/pages/admin/index.astro index 8f2f62a..96a2ba7 100644 --- a/src/pages/admin/index.astro +++ b/src/pages/admin/index.astro @@ -120,8 +120,8 @@ const title = "Dashboard"; const themeText = document.getElementById('theme-text'); function updateIcons() { const isDark = document.documentElement.classList.contains('dark'); - if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Light Mode'; } - else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Dark Mode'; } + if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Switch to Light'; } + else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Switch to Dark'; } } toggle?.addEventListener('click', () => { const isDark = document.documentElement.classList.contains('dark'); diff --git a/src/pages/admin/layout.astro b/src/pages/admin/layout.astro index 9680269..aa0705c 100644 --- a/src/pages/admin/layout.astro +++ b/src/pages/admin/layout.astro @@ -90,8 +90,8 @@ const pageTitle = "Layout"; const sunIcon = document.getElementById('sun-icon'), moonIcon = document.getElementById('moon-icon'), themeText = document.getElementById('theme-text'); function updateIcons() { const isDark = document.documentElement.classList.contains('dark'); - if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Light Mode'; } - else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Dark Mode'; } + if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Switch to Light'; } + else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Switch to Dark'; } } toggle?.addEventListener('click', () => { const isDark = document.documentElement.classList.contains('dark'); diff --git a/src/pages/admin/pages.astro b/src/pages/admin/pages.astro index 583070a..09c11d9 100644 --- a/src/pages/admin/pages.astro +++ b/src/pages/admin/pages.astro @@ -90,11 +90,47 @@ const pageTitle = "Pages"; @@ -216,8 +234,8 @@ ${frontmatter}${page.content || ''} const sunIcon = document.getElementById('sun-icon'), moonIcon = document.getElementById('moon-icon'), themeText = document.getElementById('theme-text'); function updateIcons() { const isDark = document.documentElement.classList.contains('dark'); - if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Light Mode'; } - else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Dark Mode'; } + if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Switch to Light'; } + else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Switch to Dark'; } } toggle?.addEventListener('click', () => { const isDark = document.documentElement.classList.contains('dark'); diff --git a/src/pages/admin/posts.astro b/src/pages/admin/posts.astro index 31e8926..5f512fa 100644 --- a/src/pages/admin/posts.astro +++ b/src/pages/admin/posts.astro @@ -107,11 +107,49 @@ const pageTitle = "Posts"; @@ -283,8 +296,8 @@ ${frontmatter}${post.content || ''} const sunIcon = document.getElementById('sun-icon'), moonIcon = document.getElementById('moon-icon'), themeText = document.getElementById('theme-text'); function updateIcons() { const isDark = document.documentElement.classList.contains('dark'); - if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Light Mode'; } - else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Dark Mode'; } + if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Switch to Light'; } + else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Switch to Dark'; } } toggle?.addEventListener('click', () => { const isDark = document.documentElement.classList.contains('dark'); diff --git a/src/pages/admin/theme.astro b/src/pages/admin/theme.astro index 7de5bc3..8090665 100644 --- a/src/pages/admin/theme.astro +++ b/src/pages/admin/theme.astro @@ -70,8 +70,8 @@ const pageTitle = "Theme"; const sunIcon = document.getElementById('sun-icon'), moonIcon = document.getElementById('moon-icon'), themeText = document.getElementById('theme-text'); function updateIcons() { const isDark = document.documentElement.classList.contains('dark'); - if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Light Mode'; } - else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Dark Mode'; } + if (isDark) { sunIcon.classList.remove('hidden'); moonIcon.classList.add('hidden'); themeText.textContent = 'Switch to Light'; } + else { sunIcon.classList.add('hidden'); moonIcon.classList.remove('hidden'); themeText.textContent = 'Switch to Dark'; } } toggle?.addEventListener('click', () => { const isDark = document.documentElement.classList.contains('dark'); diff --git a/src/pages/admin/theme/code.astro b/src/pages/admin/theme/code.astro index f868187..0fd23b2 100644 --- a/src/pages/admin/theme/code.astro +++ b/src/pages/admin/theme/code.astro @@ -53,16 +53,16 @@ const pageTitle = "Code Theme"; + + +
+
+ {SITE_NAME} + +
+
+ +
+
+
+

{title}

+
+ + Published +
+
+ +
+ +
+
+ + +
+ + + + diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro index 7028a73..c6a7c9b 100644 --- a/src/pages/blog/index.astro +++ b/src/pages/blog/index.astro @@ -1,5 +1,14 @@ --- +import { getCollection } from 'astro:content'; import '../../styles/global.css'; +import { SITE_URL, SITE_NAME } from '../../lib/config'; + +const posts = await getCollection('posts'); +const publishedPosts = posts + .filter(post => post.data.published) + .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); + +const siteUrl = SITE_URL; --- @@ -7,16 +16,37 @@ import '../../styles/global.css'; - Blog | StaticPress + + + Blog | {SITE_NAME} + + + + + + + + + + + + + + + + + + + - -
+ +
- StaticPress + {SITE_NAME}
-

Blog

+

Blog

-
- -
+ {publishedPosts.length === 0 ? ( +
+

No posts yet. Create your first post in the admin panel!

+ Go to Admin +
+ ) : ( +
+ {publishedPosts.map(post => ( +
+

+ + {post.data.title} + +

+ {post.data.excerpt && ( +

{post.data.excerpt}

+ )} +
+ + Published +
+
+ ))} +
+ )}
-
- Built with StaticPress +
+

Built with {SITE_NAME}

diff --git a/src/pages/contact.astro b/src/pages/contact.astro new file mode 100644 index 0000000..82f434a --- /dev/null +++ b/src/pages/contact.astro @@ -0,0 +1,174 @@ +--- +import PageLayout from '../layouts/PageLayout.astro'; +import { SITE_URL, FORMSPREE_ID } from '../lib/config'; +const siteUrl = SITE_URL; +const formspreeId = FORMSPREE_ID; +--- + + + + + + + + + +
+

Contact Us

+

Have a question or want to work together? Fill out the form below.

+ +
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ +

+ Or email us directly at hello@example.com +

+
+ + +
\ No newline at end of file diff --git a/src/pages/index.astro b/src/pages/index.astro index 447b1be..c6580a0 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,56 +1,14 @@ --- -import BaseLayout from '../layouts/BaseLayout.astro'; +import PageLayout from '../layouts/PageLayout.astro'; +import { SITE_URL, SITE_NAME } from '../lib/config'; +const siteUrl = SITE_URL; --- - + -
- -
+ + + + + -
-
-

Build Beautiful Static Sites

-

- A WordPress-like experience for creating static websites. - Edit content, customize themes, and deploy to Cloudflare Pages with one click. -

- -
-
-

Easy Content Management

-

Create posts and pages with a familiar editor interface. Your content is stored as Markdown files.

-
-
-

Visual Theme Builder

-

Customize colors, fonts, and styling without touching code. Or dive into the code editor for full control.

-
-
-

One-Click Deploy

-

Build your site locally and deploy to Cloudflare Pages with a single click. Fast, secure, and free.

-
+
+

Build Beautiful Static Sites

+

+ A WordPress-like experience for creating static websites. + Edit content, customize themes, and deploy to Cloudflare Pages with one click. +

+ Get Started → + +
+
+

Easy Content Management

+

Create posts and pages with a familiar editor interface. Your content is stored as Markdown files for maximum portability.

+
+
+

Visual Theme Builder

+

Customize colors, fonts, and styling without touching code. Or dive into the code editor for full control.

+
+
+

One-Click Deploy

+

Build your site locally and deploy to Cloudflare Pages with a single click. Fast, secure, and free hosting.

-
- -
-
-

Built with StaticPress

+ +
+

Ready to Get Started?

+

Jump into the admin panel to create your first post or page.

+ Open Admin Panel
-
-
+ + \ No newline at end of file diff --git a/src/server.ts b/src/server.ts new file mode 100644 index 0000000..e5ab212 --- /dev/null +++ b/src/server.ts @@ -0,0 +1,708 @@ +import { renderMarkdown, extractFrontmatter, formatFrontmatter, slugify } from './lib/markdown'; +import { readFileSync, writeFileSync, existsSync, readdirSync, mkdirSync, rmSync, renameSync, statSync } from 'fs'; +import { join, dirname } from 'path'; +import { fileURLToPath } from 'url'; +import { spawn } from 'child_process'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const ROOT = join(__dirname, '..'); +const CONTENT_DIR = join(ROOT, 'src', 'content'); +const POSTS_DIR = join(CONTENT_DIR, 'posts'); +const PAGES_DIR = join(CONTENT_DIR, 'pages'); +const DIST_DIR = join(ROOT, 'dist'); +const ADMIN_DIR = join(ROOT, 'admin'); +const MEDIA_DIR = join(ROOT, 'public', 'media'); + +const PLACEHOLDER_SITE = 'https://yoursite.com'; + +interface SiteConfig { + siteUrl: string; + formspreeId: string; + siteName: string; + author: string; +} + +function loadSiteConfig(): SiteConfig { + const configPath = join(ROOT, 'site.config.json'); + const defaultConfig = { + siteUrl: PLACEHOLDER_SITE, + formspreeId: 'YOUR_FORMSPREE_ID', + siteName: 'My Site', + author: 'Site Author', + }; + + if (!existsSync(configPath)) { + return defaultConfig; + } + try { + const content = readFileSync(configPath, 'utf-8'); + return JSON.parse(content) as SiteConfig; + } catch { + return defaultConfig; + } +} + +const siteConfig = loadSiteConfig(); + +interface Cache { + posts: any[]; + pages: any[]; + media: any[]; + timestamp: number; +} +let contentCache: Cache | null = null; +const CACHE_TTL = 1000; // 1 second cache to reduce stale data window + +function getCachedContent() { + if (contentCache && Date.now() - contentCache.timestamp < CACHE_TTL) { + return contentCache; + } + // Cache expired or missing - invalidate and return null + contentCache = null; + return null; +} + +function invalidateCache() { + contentCache = null; +} + +function escapeXml(str: string): string { + return str + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +function ensureDirectories() { + if (!existsSync(CONTENT_DIR)) mkdirSync(CONTENT_DIR, { recursive: true }); + if (!existsSync(POSTS_DIR)) mkdirSync(POSTS_DIR, { recursive: true }); + if (!existsSync(PAGES_DIR)) mkdirSync(PAGES_DIR, { recursive: true }); + if (!existsSync(DIST_DIR)) mkdirSync(DIST_DIR, { recursive: true }); + if (!existsSync(MEDIA_DIR)) mkdirSync(MEDIA_DIR, { recursive: true }); +} + +function importExistingContent() { + const cached = getCachedContent(); + if (cached) { + return { posts: cached.posts, pages: cached.pages }; + } + + const posts: any[] = []; + const pages: any[] = []; + + if (existsSync(POSTS_DIR)) { + const files = readdirSync(POSTS_DIR).filter((f: string) => f.endsWith('.md')); + for (const file of files) { + try { + const content = readFileSync(join(POSTS_DIR, file), 'utf-8'); + const { data, body } = extractFrontmatter(content); + const slug = file.replace('.md', ''); + posts.push({ slug, ...data, content: body, file }); + } catch (e) { + console.error(`Error reading post ${file}:`, e); + } + } + } + + if (existsSync(PAGES_DIR)) { + const files = readdirSync(PAGES_DIR).filter((f: string) => f.endsWith('.md')); + for (const file of files) { + try { + const content = readFileSync(join(PAGES_DIR, file), 'utf-8'); + const { data, body } = extractFrontmatter(content); + const slug = file.replace('.md', ''); + pages.push({ slug, ...data, content: body, file }); + } catch (e) { + console.error(`Error reading page ${file}:`, e); + } + } + } + + if (!contentCache) contentCache = { posts: [], pages: [], media: [], timestamp: Date.now() }; + contentCache.posts = posts; + contentCache.pages = pages; + contentCache.timestamp = Date.now(); + + return { posts, pages }; +} + +function getMediaFiles() { + if (!existsSync(MEDIA_DIR)) return []; + + const cached = getCachedContent(); + if (cached && cached.media.length > 0) { + return cached.media; + } + + const files = readdirSync(MEDIA_DIR).filter((f: string) => { + const ext = f.toLowerCase(); + return ext.endsWith('.webp') || ext.endsWith('.avif') || ext.endsWith('.png') || ext.endsWith('.jpg') || ext.endsWith('.jpeg') || ext.endsWith('.gif'); + }); + + const media = files.map((file: string) => { + const filepath = join(MEDIA_DIR, file); + const stats = { size: 0 }; + try { + const { size } = statSync(filepath); + stats.size = size; + } catch (e) {} + + const sizeKB = (stats.size / 1024).toFixed(1); + const sizeStr = stats.size > 1024 * 1024 ? `${(stats.size / (1024 * 1024)).toFixed(1)} MB` : `${sizeKB} KB`; + + return { + name: file, + url: `/media/${file}`, + size: sizeStr, + }; + }); + + if (!contentCache) contentCache = { posts: [], pages: [], media: [], timestamp: Date.now() }; + contentCache.media = media; + + return media; +} + +async function compressImage(inputBuffer: Buffer, filename: string): Promise<{ buffer: Buffer; filename: string }> { + try { + const sharp = (await import('sharp')).default; + + const ext = filename.toLowerCase(); + let outputBuffer: Buffer; + let outputFilename: string; + + if (ext.endsWith('.png')) { + outputBuffer = await sharp(inputBuffer) + .resize(1920, 1920, { fit: 'inside', withoutEnlargement: true }) + .png({ quality: 85, compressionLevel: 9 }) + .toBuffer(); + outputFilename = filename.replace(/\.png$/, '.webp'); + } else if (ext.endsWith('.jpg') || ext.endsWith('.jpeg')) { + outputBuffer = await sharp(inputBuffer) + .resize(1920, 1920, { fit: 'inside', withoutEnlargement: true }) + .jpeg({ quality: 85 }) + .toBuffer(); + outputFilename = filename.replace(/\.jpe?g$/, '.webp'); + } else if (ext.endsWith('.gif')) { + outputBuffer = await sharp(inputBuffer) + .resize(1920, 1920, { fit: 'inside', withoutEnlargement: true }) + .gif() + .toBuffer(); + outputFilename = filename.replace(/\.gif$/, '.webp'); + } else { + outputBuffer = await sharp(inputBuffer) + .resize(1920, 1920, { fit: 'inside', withoutEnlargement: true }) + .webp({ quality: 85 }) + .toBuffer(); + outputFilename = filename.endsWith('.webp') ? filename : `${filename}.webp`; + } + + return { buffer: outputBuffer, filename: outputFilename }; + } catch (e) { + console.error('Image compression failed:', e); + return { buffer: inputBuffer, filename }; + } +} + +const MAX_CONTENT_SIZE = 1 * 1024 * 1024; // 1MB limit + +function writeContentFile(type: 'post' | 'page', slug: string, data: any, content: string): boolean { + try { + // Validate content size + if (content.length > MAX_CONTENT_SIZE) { + console.error(`Content too large for ${type} ${slug}: ${content.length} bytes`); + return false; + } + + // Validate slug format (alphanumeric, dash, underscore only) + if (!/^[a-zA-Z0-9_-]+$/.test(slug)) { + console.error(`Invalid slug format: ${slug}`); + return false; + } + + const dir = type === 'post' ? POSTS_DIR : PAGES_DIR; + const filename = `${slug}.md`; + const filepath = join(dir, filename); + const tempFilepath = join(dir, `.${filename}.tmp`); + + const frontmatter: Record = { + title: data.title || slug, + date: data.date || new Date().toISOString().split('T')[0], + excerpt: data.excerpt || '', + published: data.published ?? false, + }; + + const fileContent = formatFrontmatter(frontmatter, content); + + // Atomic write: write to temp file first, then rename + writeFileSync(tempFilepath, fileContent, 'utf-8'); + rmSync(filepath); // Remove old file if exists + renameSync(tempFilepath, filepath); // Atomic rename + + invalidateCache(); + return true; + } catch (e) { + console.error(`Error writing ${type} ${slug}:`, e); + return false; + } +} + +function deleteContentFile(type: 'post' | 'page', slug: string): boolean { + try { + const dir = type === 'post' ? POSTS_DIR : PAGES_DIR; + const filepath = join(dir, `${slug}.md`); + if (existsSync(filepath)) { + rmSync(filepath); + } + invalidateCache(); + return true; + } catch (e) { + console.error(`Error deleting ${type} ${slug}:`, e); + return false; + } +} + +function deleteMediaFile(filename: string): boolean { + try { + // Validate filename - only allow safe characters and prevent path traversal + if (!/^[a-zA-Z0-9][a-zA-Z0-9-_.]*$/.test(filename)) { + console.error(`Invalid filename format: ${filename}`); + return false; + } + + // Check for path traversal attempts + if (filename.includes('..') || filename.includes('/') || filename.includes('\\')) { + console.error(`Path traversal attempt detected: ${filename}`); + return false; + } + + const filepath = join(MEDIA_DIR, filename); + + // Ensure resolved path is within MEDIA_DIR + if (!filepath.startsWith(MEDIA_DIR)) { + console.error(`Access denied - path outside media directory: ${filepath}`); + return false; + } + + if (existsSync(filepath)) { + rmSync(filepath); + } + invalidateCache(); + return true; + } catch (e) { + console.error(`Error deleting media ${filename}:`, e); + return false; + } +} + +function runBuild(): Promise<{ success: boolean; output: string; error?: string }> { + return new Promise((resolve) => { + console.log('Running astro build...'); + const proc = spawn('bun', ['run', 'build'], { cwd: ROOT }); + let output = ''; + let error = ''; + + proc.stdout.on('data', (data: Buffer) => { + output += data.toString(); + }); + + proc.stderr.on('data', (data: Buffer) => { + error += data.toString(); + }); + + proc.on('close', (code: number) => { + resolve({ + success: code === 0, + output, + error: error || undefined, + }); + }); + }); +} + +function runDeploy(): Promise<{ success: boolean; output: string; error?: string }> { + return new Promise((resolve) => { + console.log('Running wrangler deploy...'); + const proc = spawn('bunx', ['wrangler', 'pages', 'deploy', 'dist'], { cwd: ROOT }); + let output = ''; + let error = ''; + + proc.stdout.on('data', (data: Buffer) => { + output += data.toString(); + }); + + proc.stderr.on('data', (data: Buffer) => { + error += data.toString(); + }); + + proc.on('close', (code: number) => { + resolve({ + success: code === 0, + output, + error: error || undefined, + }); + }); + }); +} + +function serveFile(filepath: string, contentType: string) { + try { + if (existsSync(filepath)) { + const content = readFileSync(filepath); + return new Response(content, { + headers: { 'Content-Type': contentType }, + }); + } + } catch (e) { + console.error(`Error serving ${filepath}:`, e); + } + return new Response('Not Found', { status: 404 }); +} + +function getContentType(filepath: string): string { + const ext = filepath.split('.').pop()?.toLowerCase() || ''; + const contentTypes: Record = { + html: 'text/html', + css: 'text/css', + js: 'application/javascript', + json: 'application/json', + png: 'image/png', + jpg: 'image/jpeg', + svg: 'image/svg+xml', + ico: 'image/x-icon', + txt: 'text/plain', + xml: 'application/xml', + webp: 'image/webp', + avif: 'image/avif', + }; + return contentTypes[ext] || 'text/plain'; +} + +async function parseBody(request: Request): Promise { + return request.json(); +} + +async function parseMultiPart(request: Request): Promise<{ fields: Record; file?: { name: string; data: Buffer; type: string } }> { + const formData = await request.formData(); + const fields: Record = {}; + let file: { name: string; data: Buffer; type: string } | undefined; + + for (const [key, value] of formData.entries()) { + if (typeof value === 'string') { + fields[key] = value; + } else if (value instanceof File) { + const buffer = await value.arrayBuffer(); + file = { + name: value.name, + data: Buffer.from(buffer), + type: value.type, + }; + } + } + + return { fields, file }; +} + +async function handleAPI(url: URL, method: string, request: Request): Promise { + const pathname = url.pathname; + + if (pathname === '/api/posts' && method === 'GET') { + const { posts } = importExistingContent(); + return Response.json(posts); + } + + const postMatch = pathname.match(/^\/api\/posts\/([^/]+)$/); + if (postMatch && method === 'GET') { + const slug = postMatch[1]; + if (!/^[a-zA-Z0-9_-]+$/.test(slug)) { + return Response.json({ error: 'Invalid slug' }, { status: 400 }); + } + const filepath = join(POSTS_DIR, `${slug}.md`); + if (existsSync(filepath)) { + const content = readFileSync(filepath, 'utf-8'); + const { data, body } = extractFrontmatter(content); + return Response.json({ slug, ...data, content: body }); + } + return Response.json({ error: 'Post not found' }, { status: 404 }); + } + + if (postMatch && method === 'POST') { + const slug = postMatch[1]; + if (!/^[a-zA-Z0-9_-]+$/.test(slug)) { + return Response.json({ error: 'Invalid slug' }, { status: 400 }); + } + const body = await parseBody(request); + const success = writeContentFile('post', slug, body, body.content || ''); + if (success) { + return Response.json({ success: true, slug }); + } + return Response.json({ error: 'Failed to save post' }, { status: 500 }); + } + + if (postMatch && method === 'DELETE') { + const slug = postMatch[1]; + if (!/^[a-zA-Z0-9_-]+$/.test(slug)) { + return Response.json({ error: 'Invalid slug' }, { status: 400 }); + } + const success = deleteContentFile('post', slug); + return Response.json({ success }); + } + + if (pathname === '/api/pages' && method === 'GET') { + const { pages } = importExistingContent(); + return Response.json(pages); + } + + const pageMatch = pathname.match(/^\/api\/pages\/([^/]+)$/); + if (pageMatch && method === 'GET') { + const slug = pageMatch[1]; + if (!/^[a-zA-Z0-9_-]+$/.test(slug)) { + return Response.json({ error: 'Invalid slug' }, { status: 400 }); + } + const filepath = join(PAGES_DIR, `${slug}.md`); + if (existsSync(filepath)) { + const content = readFileSync(filepath, 'utf-8'); + const { data, body } = extractFrontmatter(content); + return Response.json({ slug, ...data, content: body }); + } + return Response.json({ error: 'Page not found' }, { status: 404 }); + } + + if (pageMatch && method === 'POST') { + const slug = pageMatch[1]; + if (!/^[a-zA-Z0-9_-]+$/.test(slug)) { + return Response.json({ error: 'Invalid slug' }, { status: 400 }); + } + const body = await parseBody(request); + const success = writeContentFile('page', slug, body, body.content || ''); + if (success) { + return Response.json({ success: true, slug }); + } + return Response.json({ error: 'Failed to save page' }, { status: 500 }); + } + + if (pageMatch && method === 'DELETE') { + const slug = pageMatch[1]; + if (!/^[a-zA-Z0-9_-]+$/.test(slug)) { + return Response.json({ error: 'Invalid slug' }, { status: 400 }); + } + const success = deleteContentFile('page', slug); + return Response.json({ success }); + } + + if (pathname === '/api/build' && method === 'POST') { + const result = await runBuild(); + return Response.json(result); + } + + if (pathname === '/api/deploy' && method === 'POST') { + const result = await runDeploy(); + return Response.json(result); + } + + if (pathname === '/api/render' && method === 'POST') { + const body = await parseBody<{ content: string }>(request); + const html = renderMarkdown(body.content || ''); + return Response.json({ html, sanitized: html }); + } + + if (pathname === '/api/media' && method === 'GET') { + const media = getMediaFiles(); + return Response.json(media); + } + + if (pathname === '/api/media/upload' && method === 'POST') { + try { + const { file } = await parseMultiPart(request); + if (!file) { + return Response.json({ error: 'No file provided' }, { status: 400 }); + } + + if (!file.type.startsWith('image/')) { + return Response.json({ error: 'Only images are allowed' }, { status: 400 }); + } + + if (file.type.includes('svg')) { + return Response.json({ error: 'SVG files are not allowed for security reasons' }, { status: 400 }); + } + + if (file.data.length > 10 * 1024 * 1024) { + return Response.json({ error: 'File too large (max 10MB)' }, { status: 400 }); + } + + const compressed = await compressImage(file.data, file.name); + let buffer = compressed.buffer; + let filename = compressed.filename; + + const uniqueName = `${Date.now()}-${filename.replace(/[^a-zA-Z0-9.-]/g, '_')}`; + const filepath = join(MEDIA_DIR, uniqueName); + writeFileSync(filepath, buffer); + + invalidateCache(); + + return Response.json({ + success: true, + filename: uniqueName, + url: `/media/${uniqueName}`, + size: `${(buffer.length / 1024).toFixed(1)} KB`, + }); + } catch (e) { + console.error('Media upload error:', e); + return Response.json({ error: 'Upload failed' }, { status: 500 }); + } + } + + const mediaDeleteMatch = pathname.match(/^\/api\/media\/(.+)$/); + if (mediaDeleteMatch && method === 'DELETE') { + const filename = decodeURIComponent(mediaDeleteMatch[1]); + const success = deleteMediaFile(filename); + return Response.json({ success }); + } + + return Response.json({ error: 'Not found' }, { status: 404 }); +} + +function generateSitemap(): string { + const { posts, pages } = importExistingContent(); + const baseUrl = escapeXml(siteConfig.siteUrl); + + if (siteConfig.siteUrl === PLACEHOLDER_SITE) { + console.warn('\n⚠️ Warning: Site URL is still set to placeholder value "https://yoursite.com"'); + console.warn(' Update site.config.json before deploying.\n'); + } + + const urls: string[] = [ + `${baseUrl}/weekly1.0`, + `${baseUrl}/blog/weekly0.9`, + ]; + + for (const post of posts) { + if (post.published) { + const lastmod = post.date ? new Date(post.date).toISOString().split('T')[0] : new Date().toISOString().split('T')[0]; + const slug = escapeXml(post.slug); + urls.push(`${baseUrl}/blog/${slug}/${lastmod}monthly0.8`); + } + } + + for (const page of pages) { + if (page.published !== false) { + const slug = escapeXml(page.slug); + urls.push(`${baseUrl}/${slug}/monthly0.7`); + } + } + + return ` + +${urls.join('\n')} +`; +} + +async function server(port: number = 4321) { + ensureDirectories(); + const initialContent = importExistingContent(); + console.log(`Imported ${initialContent.posts.length} posts and ${initialContent.pages.length} pages`); + + console.log(`StaticPress server running at http://127.0.0.1:${port}`); + console.log(`Admin UI: http://127.0.0.1:${port}/admin/`); + + Bun.serve({ + port, + hostname: '127.0.0.1', + async fetch(request) { + const url = new URL(request.url); + const pathname = url.pathname; + + // API endpoints are protected - only allow from localhost + // Since server binds to 127.0.0.1, requests already come from localhost + // But we verify the hostname to prevent host header injection + if (pathname.startsWith('/api/')) { + const hostname = url.hostname; + const isLocalhost = hostname === 'localhost' || hostname === '127.0.0.1'; + if (!isLocalhost) { + return new Response('API not available', { status: 403 }); + } + return handleAPI(url, request.method, request); + } + + if (pathname === '/sitemap.xml') { + return new Response(generateSitemap(), { + headers: { 'Content-Type': 'application/xml' }, + }); + } + + if (pathname === '/robots.txt') { + const robotsTxt = `User-agent: * +Allow: / + +# Sitemap +Sitemap: ${url.origin}/sitemap.xml + +# Security +Disallow: /admin/ +Disallow: /api/`; + return new Response(robotsTxt, { + headers: { 'Content-Type': 'text/plain' }, + }); + } + + if (pathname === '/admin' || pathname === '/admin/') { + const adminIndex = join(ADMIN_DIR, 'index.html'); + if (existsSync(adminIndex)) { + return serveFile(adminIndex, 'text/html'); + } + return new Response('Admin not found. Run build first.', { status: 404 }); + } + + if (pathname.startsWith('/admin/')) { + const filepath = join(ADMIN_DIR, pathname.slice(7)); + const ext = filepath.split('.').pop()?.toLowerCase(); + const contentTypes: Record = { + html: 'text/html', + css: 'text/css', + js: 'application/javascript', + json: 'application/json', + png: 'image/png', + jpg: 'image/jpeg', + svg: 'image/svg+xml', + }; + return serveFile(filepath, contentTypes[ext || ''] || 'text/plain'); + } + + const distPath = join(DIST_DIR, pathname === '/' ? 'index.html' : pathname); + + if (existsSync(distPath)) { + const ext = distPath.split('.').pop()?.toLowerCase(); + const contentTypes: Record = { + html: 'text/html', + css: 'text/css', + js: 'application/javascript', + json: 'application/json', + png: 'image/png', + jpg: 'image/jpeg', + svg: 'image/svg+xml', + ico: 'image/x-icon', + txt: 'text/plain', + xml: 'application/xml', + webp: 'image/webp', + avif: 'image/avif', + }; + return serveFile(distPath, contentTypes[ext || ''] || 'text/plain'); + } + + const indexPath = join(distPath, 'index.html'); + if (existsSync(indexPath)) { + return serveFile(indexPath, 'text/html'); + } + + const builtIndex = join(DIST_DIR, 'index.html'); + if (existsSync(builtIndex)) { + return serveFile(builtIndex, 'text/html'); + } + return new Response('Please run `bun run build` first', { status: 404 }); + }, + }); +} + +server(); \ No newline at end of file diff --git a/wrangler.toml b/wrangler.toml index 920f989..ba1399d 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -1,2 +1,3 @@ name = "staticpress" compatibility_date = "2024-04-03" +pages_build_output_dir = "dist" \ No newline at end of file