codex-lens 0.1.33 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -85,6 +85,6 @@ WARNING: This link could potentially be dangerous`)){const d=window.open();if(d)
|
|
|
85
85
|
`);r=n<0?i:i.slice(0,n)}return e+r.length>this.to?r.slice(0,this.to-e):r}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,i,r=0){this.block=Sc.create(e,r,this.lineStart+i,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,i,r=0){this.startContext(this.parser.getNodeType(e),i,r)}addNode(e,i,r){typeof e=="number"&&(e=new ye(this.parser.nodeSet.types[e],As,As,(r??this.prevLineEnd())-i)),this.block.addChild(e,i-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,i){this.addNode(this.buffer.writeElements(Ud(i.children,e.marks),-i.from).finish(i.type,i.to-i.from),i.from)}finishContext(){let e=this.stack.pop(),i=this.stack[this.stack.length-1];i.addChild(e.toTree(this.parser.nodeSet),e.from-i.from),this.block=i}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?Pw(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let r of e.parsers)if(r.finish(this,e))return;let i=Ud(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(i,-e.start).finish(F.Paragraph,e.content.length),e.start)}elt(e,i,r,n){return typeof e=="string"?Se(this.parser.getNodeType(e),i,r,n):new Xw(e,i)}get buffer(){return new ww(this.parser.nodeSet)}}function Pw(t,e,i,r,n){let s=t[e].to,o=[],a=[],l=i.from+r;function O(c,h){for(;h?c>=s:c>s;){let u=t[e+1].from-s;r+=u,c+=u,e++,s=t[e].to}}for(let c=i.firstChild;c;c=c.nextSibling){O(c.from+r,!0);let h=c.from+r,u,m=n.get(c.tree);m?u=m:c.to+r>s?(u=Pw(t,e,c,r,n),O(c.to+r,!1)):u=c.toTree(),o.push(u),a.push(h-l)}return O(i.to+r,!1),new ye(i.type,o,a,i.to+r-l,i.tree?i.tree.propValues:void 0)}class sh extends om{constructor(e,i,r,n,s,o,a,l,O){super(),this.nodeSet=e,this.blockParsers=i,this.leafBlockParsers=r,this.blockNames=n,this.endLeafBlock=s,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=O,this.nodeTypes=Object.create(null);for(let c of e.types)this.nodeTypes[c.name]=c.id}createParse(e,i,r){let n=new iE(this,e,i,r);for(let s of this.wrappers)n=s(n,e,i,r);return n}configure(e){let i=Wd(e);if(!i)return this;let{nodeSet:r,skipContextMarkup:n}=this,s=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),O=this.inlineNames.slice(),c=this.endLeafBlock.slice(),h=this.wrappers;if($o(i.defineNodes)){n=Object.assign({},n);let u=r.types.slice(),m;for(let S of i.defineNodes){let{name:Q,block:g,composite:d,style:f}=typeof S=="string"?{name:S}:S;if(u.some(v=>v.name==Q))continue;d&&(n[u.length]=(v,P,w)=>d(P,w,v.value));let p=u.length,$=d?["Block","BlockContext"]:g?p>=F.ATXHeading1&&p<=F.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;u.push(He.define({id:p,name:Q,props:$&&[[de.group,$]]})),f&&(m||(m={}),Array.isArray(f)||f instanceof qi?m[Q]=f:Object.assign(m,f))}r=new Ia(u),m&&(r=r.extend(Et(m)))}if($o(i.props)&&(r=r.extend(...i.props)),$o(i.remove))for(let u of i.remove){let m=this.blockNames.indexOf(u),S=this.inlineNames.indexOf(u);m>-1&&(s[m]=o[m]=void 0),S>-1&&(l[S]=void 0)}if($o(i.parseBlock))for(let u of i.parseBlock){let m=a.indexOf(u.name);if(m>-1)s[m]=u.parse,o[m]=u.leaf;else{let S=u.before?Il(a,u.before):u.after?Il(a,u.after)+1:a.length-1;s.splice(S,0,u.parse),o.splice(S,0,u.leaf),a.splice(S,0,u.name)}u.endLeaf&&c.push(u.endLeaf)}if($o(i.parseInline))for(let u of i.parseInline){let m=O.indexOf(u.name);if(m>-1)l[m]=u.parse;else{let S=u.before?Il(O,u.before):u.after?Il(O,u.after)+1:O.length-1;l.splice(S,0,u.parse),O.splice(S,0,u.name)}}return i.wrap&&(h=h.concat(i.wrap)),new sh(r,s,o,a,c,n,l,O,h)}getNodeType(e){let i=this.nodeTypes[e];if(i==null)throw new RangeError(`Unknown node type '${e}'`);return i}parseInline(e,i){let r=new zm(this,e,i);e:for(let n=i;n<r.end;){let s=r.char(n);for(let o of this.inlineParsers)if(o){let a=o(r,s,n);if(a>=0){n=a;continue e}}n++}return r.resolveMarkers(0)}}function $o(t){return t!=null&&t.length>0}function Wd(t){if(!Array.isArray(t))return t;if(t.length==0)return null;let e=Wd(t[0]);if(t.length==1)return e;let i=Wd(t.slice(1));if(!i||!e)return e||i;let r=(o,a)=>(o||As).concat(a||As),n=e.wrap,s=i.wrap;return{props:r(e.props,i.props),defineNodes:r(e.defineNodes,i.defineNodes),parseBlock:r(e.parseBlock,i.parseBlock),parseInline:r(e.parseInline,i.parseInline),remove:r(e.remove,i.remove),wrap:n?s?(o,a,l,O)=>n(s(o,a,l,O),a,l,O):n:s}}function Il(t,e){let i=t.indexOf(e);if(i<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return i}let yw=[He.none];for(let t=1,e;e=F[t];t++)yw[t]=He.define({id:t,name:e,props:t>=F.Escape?[]:[[de.group,t in fw?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});const As=[];class ww{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e,i,r,n=0){return this.content.push(e,i,r,4+n*4),this}writeElements(e,i=0){for(let r of e)r.writeTo(this,i);return this}finish(e,i){return ye.build({buffer:this.content,nodeSet:this.nodeSet,reused:this.nodes,topID:e,length:i})}}let Wa=class{constructor(e,i,r,n=As){this.type=e,this.from=i,this.to=r,this.children=n}writeTo(e,i){let r=e.content.length;e.writeElements(this.children,i),e.content.push(this.type,this.from+i,this.to+i,e.content.length+4-r)}toTree(e){return new ww(e).writeElements(this.children,-this.from).finish(this.type,this.to-this.from)}};class Xw{constructor(e,i){this.tree=e,this.from=i}get to(){return this.from+this.tree.length}get type(){return this.tree.type.id}get children(){return As}writeTo(e,i){e.nodes.push(this.tree),e.content.push(e.nodes.length-1,this.from+i,this.to+i,-1)}toTree(){return this.tree}}function Se(t,e,i,r){return new Wa(t,e,i,r)}const xw={resolve:"Emphasis",mark:"EmphasisMark"},bw={resolve:"Emphasis",mark:"EmphasisMark"},Qn={},$c={};class Gt{constructor(e,i,r,n){this.type=e,this.from=i,this.to=r,this.side=n}}const z$="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";let Ua=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;try{Ua=new RegExp("[\\p{S}|\\p{P}]","u")}catch{}const vu={Escape(t,e,i){if(e!=92||i==t.end-1)return-1;let r=t.char(i+1);for(let n=0;n<z$.length;n++)if(z$.charCodeAt(n)==r)return t.append(Se(F.Escape,i,i+2));return-1},Entity(t,e,i){if(e!=38)return-1;let r=/^(?:#\d+|#x[a-f\d]+|\w+);/i.exec(t.slice(i+1,i+31));return r?t.append(Se(F.Entity,i,i+1+r[0].length)):-1},InlineCode(t,e,i){if(e!=96||i&&t.char(i-1)==96)return-1;let r=i+1;for(;r<t.end&&t.char(r)==96;)r++;let n=r-i,s=0;for(;r<t.end;r++)if(t.char(r)==96){if(s++,s==n&&t.char(r+1)!=96)return t.append(Se(F.InlineCode,i,r+1,[Se(F.CodeMark,i,i+n),Se(F.CodeMark,r+1-n,r+1)]))}else s=0;return-1},HTMLTag(t,e,i){if(e!=60||i==t.end-1)return-1;let r=t.slice(i+1,t.end),n=/^(?:[a-z][-\w+.]+:[^\s>]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(r);if(n)return t.append(Se(F.Autolink,i,i+1+n[0].length,[Se(F.LinkMark,i,i+1),Se(F.URL,i+1,i+n[0].length),Se(F.LinkMark,i+n[0].length,i+1+n[0].length)]));let s=/^!--[^>](?:-[^-]|[^-])*?-->/i.exec(r);if(s)return t.append(Se(F.Comment,i,i+1+s[0].length));let o=/^\?[^]*?\?>/.exec(r);if(o)return t.append(Se(F.ProcessingInstruction,i,i+1+o[0].length));let a=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(r);return a?t.append(Se(F.HTMLTag,i,i+1+a[0].length)):-1},Emphasis(t,e,i){if(e!=95&&e!=42)return-1;let r=i+1;for(;t.char(r)==e;)r++;let n=t.slice(i-1,i),s=t.slice(r,r+1),o=Ua.test(n),a=Ua.test(s),l=/\s|^$/.test(n),O=/\s|^$/.test(s),c=!O&&(!a||l||o),h=!l&&(!o||O||a),u=c&&(e==42||!h||o),m=h&&(e==42||!c||a);return t.append(new Gt(e==95?xw:bw,i,r,(u?1:0)|(m?2:0)))},HardBreak(t,e,i){if(e==92&&t.char(i+1)==10)return t.append(Se(F.HardBreak,i,i+2));if(e==32){let r=i+1;for(;t.char(r)==32;)r++;if(t.char(r)==10&&r>=i+2)return t.append(Se(F.HardBreak,i,r+1))}return-1},Link(t,e,i){return e==91?t.append(new Gt(Qn,i,i+1,1)):-1},Image(t,e,i){return e==33&&t.char(i+1)==91?t.append(new Gt($c,i,i+2,1)):-1},LinkEnd(t,e,i){if(e!=93)return-1;for(let r=t.parts.length-1;r>=0;r--){let n=t.parts[r];if(n instanceof Gt&&(n.type==Qn||n.type==$c)){if(!n.side||t.skipSpace(n.to)==i&&!/[(\[]/.test(t.slice(i+1,i+2)))return t.parts[r]=null,-1;let s=t.takeContent(r),o=t.parts[r]=rE(t,s,n.type==Qn?F.Link:F.Image,n.from,i+1);if(n.type==Qn)for(let a=0;a<r;a++){let l=t.parts[a];l instanceof Gt&&l.type==Qn&&(l.side=0)}return o.to}}return-1}};function rE(t,e,i,r,n){let{text:s}=t,o=t.char(n),a=n;if(e.unshift(Se(F.LinkMark,r,r+(i==F.Image?2:1))),e.push(Se(F.LinkMark,n-1,n)),o==40){let l=t.skipSpace(n+1),O=kw(s,l-t.offset,t.offset),c;O&&(l=t.skipSpace(O.to),l!=O.to&&(c=Tw(s,l-t.offset,t.offset),c&&(l=t.skipSpace(c.to)))),t.char(l)==41&&(e.push(Se(F.LinkMark,n,n+1)),a=l+1,O&&e.push(O),c&&e.push(c),e.push(Se(F.LinkMark,l,a)))}else if(o==91){let l=Rw(s,n-t.offset,t.offset,!1);l&&(e.push(l),a=l.to)}return Se(i,r,a,e)}function kw(t,e,i){if(t.charCodeAt(e)==60){for(let n=e+1;n<t.length;n++){let s=t.charCodeAt(n);if(s==62)return Se(F.URL,e+i,n+1+i);if(s==60||s==10)return!1}return null}else{let n=0,s=e;for(let o=!1;s<t.length;s++){let a=t.charCodeAt(s);if(di(a))break;if(o)o=!1;else if(a==40)n++;else if(a==41){if(!n)break;n--}else a==92&&(o=!0)}return s>e?Se(F.URL,e+i,s+i):s==t.length?null:!1}}function Tw(t,e,i){let r=t.charCodeAt(e);if(r!=39&&r!=34&&r!=40)return!1;let n=r==40?41:r;for(let s=e+1,o=!1;s<t.length;s++){let a=t.charCodeAt(s);if(o)o=!1;else{if(a==n)return Se(F.LinkTitle,e+i,s+1+i);a==92&&(o=!0)}}return null}function Rw(t,e,i,r){for(let n=!1,s=e+1,o=Math.min(t.length,s+999);s<o;s++){let a=t.charCodeAt(s);if(n)n=!1;else{if(a==93)return r?!1:Se(F.LinkLabel,e+i,s+1+i);if(r&&!di(a)&&(r=!1),a==91)return!1;a==92&&(n=!0)}}return null}class zm{constructor(e,i,r){this.parser=e,this.text=i,this.offset=r,this.parts=[]}char(e){return e>=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,i){return this.text.slice(e-this.offset,i-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,i,r,n,s){return this.append(new Gt(e,i,r,(n?1:0)|(s?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let i=this.parts[e];if(i instanceof Gt&&(i.type==Qn||i.type==$c))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let r=e;r<this.parts.length;r++){let n=this.parts[r];if(!(n instanceof Gt&&n.type.resolve&&n.side&2))continue;let s=n.type==xw||n.type==bw,o=n.to-n.from,a,l=r-1;for(;l>=e;l--){let Q=this.parts[l];if(Q instanceof Gt&&Q.side&1&&Q.type==n.type&&!(s&&(n.side&1||Q.side&2)&&(Q.to-Q.from+o)%3==0&&((Q.to-Q.from)%3||o%3))){a=Q;break}}if(!a)continue;let O=n.type.resolve,c=[],h=a.from,u=n.to;if(s){let Q=Math.min(2,a.to-a.from,o);h=a.to-Q,u=n.from+Q,O=Q==1?"Emphasis":"StrongEmphasis"}a.type.mark&&c.push(this.elt(a.type.mark,h,a.to));for(let Q=l+1;Q<r;Q++)this.parts[Q]instanceof Wa&&c.push(this.parts[Q]),this.parts[Q]=null;n.type.mark&&c.push(this.elt(n.type.mark,n.from,u));let m=this.elt(O,h,u,c);this.parts[l]=s&&a.from!=h?new Gt(a.type,a.from,h,a.side):null,(this.parts[r]=s&&n.to!=u?new Gt(n.type,u,n.to,n.side):null)?this.parts.splice(r,0,m):this.parts[r]=m}let i=[];for(let r=e;r<this.parts.length;r++){let n=this.parts[r];n instanceof Wa&&i.push(n)}return i}findOpeningDelimiter(e){for(let i=this.parts.length-1;i>=0;i--){let r=this.parts[i];if(r instanceof Gt&&r.type==e&&r.side&1)return i}return null}takeContent(e){let i=this.resolveMarkers(e);return this.parts.length=e,i}getDelimiterAt(e){let i=this.parts[e];return i instanceof Gt?i:null}skipSpace(e){return Fo(this.text,e-this.offset)+this.offset}elt(e,i,r,n){return typeof e=="string"?Se(this.parser.getNodeType(e),i,r,n):new Xw(e,i)}}zm.linkStart=Qn;zm.imageStart=$c;function Ud(t,e){if(!e.length)return t;if(!t.length)return e;let i=t.slice(),r=0;for(let n of e){for(;r<i.length&&i[r].to<n.to;)r++;if(r<i.length&&i[r].from<n.from){let s=i[r];s instanceof Wa&&(i[r]=new Wa(s.type,s.from,s.to,Ud(s.children,[n])))}else i.splice(r++,0,n)}return i}const nE=[F.CodeBlock,F.ListItem,F.OrderedList,F.BulletList];class sE{constructor(e,i){this.fragments=e,this.input=i,this.i=0,this.fragment=null,this.fragmentEnd=-1,this.cursor=null,e.length&&(this.fragment=e[this.i++])}nextFragment(){this.fragment=this.i<this.fragments.length?this.fragments[this.i++]:null,this.cursor=null,this.fragmentEnd=-1}moveTo(e,i){for(;this.fragment&&this.fragment.to<=e;)this.nextFragment();if(!this.fragment||this.fragment.from>(e?e-1:0))return!1;if(this.fragmentEnd<0){let s=this.fragment.to;for(;s>0&&this.input.read(s-1,s)!=`
|
|
86
86
|
`;)s--;this.fragmentEnd=s?s-1:0}let r=this.cursor;r||(r=this.cursor=this.fragment.tree.cursor(),r.firstChild());let n=e+this.fragment.offset;for(;r.to<=n;)if(!r.parent())return!1;for(;;){if(r.from>=n)return this.fragment.from<=i;if(!r.childAfter(n))return!1}}matches(e){let i=this.cursor.tree;return i&&i.prop(de.contextHash)==e}takeNodes(e){let i=this.cursor,r=this.fragment.offset,n=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,a=e.block.children.length,l=o,O=a;for(;;){if(i.to-r>n){if(i.type.isAnonymous&&i.firstChild())continue;break}let c=Cw(i.from-r,e.ranges);if(i.to-r<=e.ranges[e.rangeI].to)e.addNode(i.tree,c);else{let h=new ye(e.parser.nodeSet.types[F.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,i.tree),e.addNode(h,c)}if(i.type.is("Block")&&(nE.indexOf(i.type.id)<0?(o=i.to-r,a=e.block.children.length):(o=l,a=O),l=i.to-r,O=e.block.children.length),!i.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-s}}function Cw(t,e){let i=t;for(let r=1;r<e.length;r++){let n=e[r-1].to,s=e[r].from;n<t&&(i-=s-n)}return i}const oE=Et({"Blockquote/...":y.quote,HorizontalRule:y.contentSeparator,"ATXHeading1/... SetextHeading1/...":y.heading1,"ATXHeading2/... SetextHeading2/...":y.heading2,"ATXHeading3/...":y.heading3,"ATXHeading4/...":y.heading4,"ATXHeading5/...":y.heading5,"ATXHeading6/...":y.heading6,"Comment CommentBlock":y.comment,Escape:y.escape,Entity:y.character,"Emphasis/...":y.emphasis,"StrongEmphasis/...":y.strong,"Link/... Image/...":y.link,"OrderedList/... BulletList/...":y.list,"BlockQuote/...":y.quote,"InlineCode CodeText":y.monospace,"URL Autolink":y.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":y.processingInstruction,"CodeInfo LinkLabel":y.labelName,LinkTitle:y.string,Paragraph:y.content}),aE=new sh(new Ia(yw).extend(oE),Object.keys(Bl).map(t=>Bl[t]),Object.keys(Bl).map(t=>vw[t]),Object.keys(Bl),eE,fw,Object.keys(vu).map(t=>vu[t]),Object.keys(vu),[]);function lE(t,e,i){let r=[];for(let n=t.firstChild,s=e;;n=n.nextSibling){let o=n?n.from:i;if(o>s&&r.push({from:s,to:o}),!n)break;s=n.to}return r}function OE(t){let{codeParser:e,htmlParser:i}=t;return{wrap:pP((n,s)=>{let o=n.type.id;if(e&&(o==F.CodeBlock||o==F.FencedCode)){let a="";if(o==F.FencedCode){let O=n.node.getChild(F.CodeInfo);O&&(a=s.read(O.from,O.to))}let l=e(a);if(l)return{parser:l,overlay:O=>O.type.id==F.CodeText,bracketed:o==F.FencedCode}}else if(i&&(o==F.HTMLBlock||o==F.HTMLTag||o==F.CommentBlock))return{parser:i,overlay:lE(n.node,n.from,n.to)};return null})}}const cE={resolve:"Strikethrough",mark:"StrikethroughMark"},hE={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":y.strikethrough}},{name:"StrikethroughMark",style:y.processingInstruction}],parseInline:[{name:"Strikethrough",parse(t,e,i){if(e!=126||t.char(i+1)!=126||t.char(i+2)==126)return-1;let r=t.slice(i-1,i),n=t.slice(i+2,i+3),s=/\s|^$/.test(r),o=/\s|^$/.test(n),a=Ua.test(r),l=Ua.test(n);return t.addDelimiter(cE,i,i+2,!o&&(!l||s||a),!s&&(!a||o||l))},after:"Emphasis"}]};function Ho(t,e,i=0,r,n=0){let s=0,o=!0,a=-1,l=-1,O=!1,c=()=>{r.push(t.elt("TableCell",n+a,n+l,t.parser.parseInline(e.slice(a,l),n+a)))};for(let h=i;h<e.length;h++){let u=e.charCodeAt(h);u==124&&!O?((!o||a>-1)&&s++,o=!1,r&&(a>-1&&c(),r.push(t.elt("TableDelimiter",h+n,h+n+1))),a=l=-1):(O||u!=32&&u!=9)&&(a<0&&(a=h),l=h+1),O=!O&&u==92}return a>-1&&(s++,r&&c()),s}function q$(t,e){for(let i=e;i<t.length;i++){let r=t.charCodeAt(i);if(r==124)return!0;r==92&&i++}return!1}const Yw=/^\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/;class E${constructor(){this.rows=null}nextLine(e,i,r){if(this.rows==null){this.rows=!1;let n;if((i.next==45||i.next==58||i.next==124)&&Yw.test(n=i.text.slice(i.pos))){let s=[];Ho(e,r.content,0,s,r.start)==Ho(e,n,i.pos)&&(this.rows=[e.elt("TableHeader",r.start,r.start+r.content.length,s),e.elt("TableDelimiter",e.lineStart+i.pos,e.lineStart+i.text.length)])}}else if(this.rows){let n=[];Ho(e,i.text,i.pos,n,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+i.pos,e.lineStart+i.text.length,n))}return!1}finish(e,i){return this.rows?(e.addLeafElement(i,e.elt("Table",i.start,i.start+i.content.length,this.rows)),!0):!1}}const uE={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":y.heading}},"TableRow",{name:"TableCell",style:y.content},{name:"TableDelimiter",style:y.processingInstruction}],parseBlock:[{name:"Table",leaf(t,e){return q$(e.content,0)?new E$:null},endLeaf(t,e,i){if(i.parsers.some(n=>n instanceof E$)||!q$(e.text,e.basePos))return!1;let r=t.peekLine();return Yw.test(r)&&Ho(t,e.text,e.basePos)==Ho(t,r,e.basePos)},before:"SetextHeading"}]};class fE{nextLine(){return!1}finish(e,i){return e.addLeafElement(i,e.elt("Task",i.start,i.start+i.content.length,[e.elt("TaskMarker",i.start,i.start+3),...e.parser.parseInline(i.content.slice(3),i.start+3)])),!0}}const dE={defineNodes:[{name:"Task",block:!0,style:y.list},{name:"TaskMarker",style:y.atom}],parseBlock:[{name:"TaskList",leaf(t,e){return/^\[[ xX]\][ \t]/.test(e.content)&&t.parentType().name=="ListItem"?new fE:null},after:"SetextHeading"}]},V$=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,A$=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,pE=/[\w-]+\.[\w-]+($|\/)/,j$=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,L$=/\/[a-zA-Z\d@.]+/gy;function D$(t,e,i,r){let n=0;for(let s=e;s<i;s++)t[s]==r&&n++;return n}function mE(t,e){A$.lastIndex=e;let i=A$.exec(t);if(!i||pE.exec(i[0])[0].indexOf("_")>-1)return-1;let r=e+i[0].length;for(;;){let n=t[r-1],s;if(/[?!.,:*_~]/.test(n)||n==")"&&D$(t,e,r,")")>D$(t,e,r,"("))r--;else if(n==";"&&(s=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(t.slice(e,r))))r=e+s.index;else break}return r}function M$(t,e){j$.lastIndex=e;let i=j$.exec(t);if(!i)return-1;let r=i[0][i[0].length-1];return r=="_"||r=="-"?-1:e+i[0].length-(r=="."?1:0)}const gE={parseInline:[{name:"Autolink",parse(t,e,i){let r=i-t.offset;if(r&&/\w/.test(t.text[r-1]))return-1;V$.lastIndex=r;let n=V$.exec(t.text),s=-1;if(!n)return-1;if(n[1]||n[2]){if(s=mE(t.text,r+n[0].length),s>-1&&t.hasOpenLink){let o=/([^\[\]]|\[[^\]]*\])*/.exec(t.text.slice(r,s));s=r+o[0].length}}else n[3]?s=M$(t.text,r):(s=M$(t.text,r+n[0].length),s>-1&&n[0]=="xmpp:"&&(L$.lastIndex=s,n=L$.exec(t.text),n&&(s=n.index+n[0].length)));return s<0?-1:(t.addElement(t.elt("URL",i,s+t.offset)),s+t.offset)}}]},QE=[uE,dE,hE,gE];function Zw(t,e,i){return(r,n,s)=>{if(n!=t||r.char(s+1)==t)return-1;let o=[r.elt(i,s,s+1)];for(let a=s+1;a<r.end;a++){let l=r.char(a);if(l==t)return r.addElement(r.elt(e,s,a+1,o.concat(r.elt(i,a,a+1))));if(l==92&&o.push(r.elt("Escape",a,a+++2)),di(l))break}return-1}}const SE={defineNodes:[{name:"Superscript",style:y.special(y.content)},{name:"SuperscriptMark",style:y.processingInstruction}],parseInline:[{name:"Superscript",parse:Zw(94,"Superscript","SuperscriptMark")}]},$E={defineNodes:[{name:"Subscript",style:y.special(y.content)},{name:"SubscriptMark",style:y.processingInstruction}],parseInline:[{name:"Subscript",parse:Zw(126,"Subscript","SubscriptMark")}]},_E={defineNodes:[{name:"Emoji",style:y.character}],parseInline:[{name:"Emoji",parse(t,e,i){let r;return e!=58||!(r=/^[a-zA-Z_0-9]+:/.exec(t.slice(i+1,t.end)))?-1:t.addElement(t.elt("Emoji",i,i+1+r[0].length))}}]},vE=55,PE=1,yE=56,wE=2,XE=57,xE=3,G$=4,bE=5,qm=6,Ww=7,Uw=8,zw=9,qw=10,kE=11,TE=12,RE=13,Pu=58,CE=14,YE=15,B$=59,Ew=21,ZE=23,Vw=24,WE=25,zd=27,Aw=28,UE=29,zE=32,qE=35,EE=37,VE=38,AE=0,jE=1,LE={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},DE={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},I$={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function ME(t){return t==45||t==46||t==58||t>=65&&t<=90||t==95||t>=97&&t<=122||t>=161}let N$=null,F$=null,H$=0;function qd(t,e){let i=t.pos+e;if(H$==i&&F$==t)return N$;let r=t.peek(e),n="";for(;ME(r);)n+=String.fromCharCode(r),r=t.peek(++e);return F$=t,H$=i,N$=n?n.toLowerCase():r==GE||r==BE?void 0:null}const jw=60,_c=62,Em=47,GE=63,BE=33,IE=45;function K$(t,e){this.name=t,this.parent=e}const NE=[qm,qw,Ww,Uw,zw],FE=new el({start:null,shift(t,e,i,r){return NE.indexOf(e)>-1?new K$(qd(r,1)||"",t):t},reduce(t,e){return e==Ew&&t?t.parent:t},reuse(t,e,i,r){let n=e.type.id;return n==qm||n==EE?new K$(qd(r,1)||"",t):t},strict:!1}),HE=new xe((t,e)=>{if(t.next!=jw){t.next<0&&e.context&&t.acceptToken(Pu);return}t.advance();let i=t.next==Em;i&&t.advance();let r=qd(t,0);if(r===void 0)return;if(!r)return t.acceptToken(i?YE:CE);let n=e.context?e.context.name:null;if(i){if(r==n)return t.acceptToken(kE);if(n&&DE[n])return t.acceptToken(Pu,-2);if(e.dialectEnabled(AE))return t.acceptToken(TE);for(let s=e.context;s;s=s.parent)if(s.name==r)return;t.acceptToken(RE)}else{if(r=="script")return t.acceptToken(Ww);if(r=="style")return t.acceptToken(Uw);if(r=="textarea")return t.acceptToken(zw);if(LE.hasOwnProperty(r))return t.acceptToken(qw);n&&I$[n]&&I$[n][r]?t.acceptToken(Pu,-1):t.acceptToken(qm)}},{contextual:!0}),KE=new xe(t=>{for(let e=0,i=0;;i++){if(t.next<0){i&&t.acceptToken(B$);break}if(t.next==IE)e++;else if(t.next==_c&&e>=2){i>=3&&t.acceptToken(B$,-2);break}else e=0;t.advance()}});function JE(t){for(;t;t=t.parent)if(t.name=="svg"||t.name=="math")return!0;return!1}const eV=new xe((t,e)=>{if(t.next==Em&&t.peek(1)==_c){let i=e.dialectEnabled(jE)||JE(e.context);t.acceptToken(i?bE:G$,2)}else t.next==_c&&t.acceptToken(G$,1)});function Vm(t,e,i){let r=2+t.length;return new xe(n=>{for(let s=0,o=0,a=0;;a++){if(n.next<0){a&&n.acceptToken(e);break}if(s==0&&n.next==jw||s==1&&n.next==Em||s>=2&&s<r&&n.next==t.charCodeAt(s-2))s++,o++;else if(s==r&&n.next==_c){a>o?n.acceptToken(e,-o):n.acceptToken(i,-(o-2));break}else if((n.next==10||n.next==13)&&a){n.acceptToken(e,1);break}else s=o=0;n.advance()}})}const tV=Vm("script",vE,PE),iV=Vm("style",yE,wE),rV=Vm("textarea",XE,xE),nV=Et({"Text RawText IncompleteTag IncompleteCloseTag":y.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":y.angleBracket,TagName:y.tagName,"MismatchedCloseTag/TagName":[y.tagName,y.invalid],AttributeName:y.attributeName,"AttributeValue UnquotedAttributeValue":y.attributeValue,Is:y.definitionOperator,"EntityReference CharacterReference":y.character,Comment:y.blockComment,ProcessingInst:y.processingInstruction,DoctypeDecl:y.documentMeta}),sV=qt.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:FE,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[nV],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|caPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bXaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UVaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pTaPOv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!dpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({WaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!b`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!b`!dpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYlWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]`aP!b`!dp!_^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebiSlWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXiSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vciSaP!b`!dpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!ahaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WiiSlWd!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QciSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXjSaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[tV,iV,rV,eV,HE,KE,0,1,2,3,4,5],topRules:{Document:[0,16]},dialects:{noMatch:0,selfClosing:515},tokenPrec:517});function Lw(t,e){let i=Object.create(null);for(let r of t.getChildren(Vw)){let n=r.getChild(WE),s=r.getChild(zd)||r.getChild(Aw);n&&(i[e.read(n.from,n.to)]=s?s.type.id==zd?e.read(s.from+1,s.to-1):e.read(s.from,s.to):"")}return i}function J$(t,e){let i=t.getChild(ZE);return i?e.read(i.from,i.to):" "}function yu(t,e,i){let r;for(let n of i)if(!n.attrs||n.attrs(r||(r=Lw(t.node.parent.firstChild,e))))return{parser:n.parser,bracketed:!0};return null}function Dw(t=[],e=[]){let i=[],r=[],n=[],s=[];for(let a of t)(a.tag=="script"?i:a.tag=="style"?r:a.tag=="textarea"?n:s).push(a);let o=e.length?Object.create(null):null;for(let a of e)(o[a.name]||(o[a.name]=[])).push(a);return pP((a,l)=>{let O=a.type.id;if(O==UE)return yu(a,l,i);if(O==zE)return yu(a,l,r);if(O==qE)return yu(a,l,n);if(O==Ew&&s.length){let c=a.node,h=c.firstChild,u=h&&J$(h,l),m;if(u){for(let S of s)if(S.tag==u&&(!S.attrs||S.attrs(m||(m=Lw(h,l))))){let Q=c.lastChild,g=Q.type.id==VE?Q.from:c.to;if(g>h.to)return{parser:S.parser,overlay:[{from:h.to,to:g}]}}}}if(o&&O==Vw){let c=a.node,h;if(h=c.firstChild){let u=o[l.read(h.from,h.to)];if(u)for(let m of u){if(m.tagName&&m.tagName!=J$(c.parent,l))continue;let S=c.lastChild;if(S.type.id==zd){let Q=S.from+1,g=S.lastChild,d=S.to-(g&&g.isError?0:1);if(d>Q)return{parser:m.parser,overlay:[{from:Q,to:d}],bracketed:!0}}else if(S.type.id==Aw)return{parser:m.parser,overlay:[{from:S.from,to:S.to}]}}}}return null})}const oV=122,e_=1,aV=123,lV=124,Mw=2,OV=125,cV=3,hV=4,Gw=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],uV=58,fV=40,Bw=95,dV=91,SO=45,pV=46,mV=35,gV=37,QV=38,SV=92,$V=10,_V=42;function za(t){return t>=65&&t<=90||t>=97&&t<=122||t>=161}function Am(t){return t>=48&&t<=57}function t_(t){return Am(t)||t>=97&&t<=102||t>=65&&t<=70}const Iw=(t,e,i)=>(r,n)=>{for(let s=!1,o=0,a=0;;a++){let{next:l}=r;if(za(l)||l==SO||l==Bw||s&&Am(l))!s&&(l!=SO||a>0)&&(s=!0),o===a&&l==SO&&o++,r.advance();else if(l==SV&&r.peek(1)!=$V){if(r.advance(),t_(r.next)){do r.advance();while(t_(r.next));r.next==32&&r.advance()}else r.next>-1&&r.advance();s=!0}else{s&&r.acceptToken(o==2&&n.canShift(Mw)?e:l==fV?i:t);break}}},vV=new xe(Iw(aV,Mw,lV)),PV=new xe(Iw(OV,cV,hV)),yV=new xe(t=>{if(Gw.includes(t.peek(-1))){let{next:e}=t;(za(e)||e==Bw||e==mV||e==pV||e==_V||e==dV||e==uV&&za(t.peek(1))||e==SO||e==QV)&&t.acceptToken(oV)}}),wV=new xe(t=>{if(!Gw.includes(t.peek(-1))){let{next:e}=t;if(e==gV&&(t.advance(),t.acceptToken(e_)),za(e)){do t.advance();while(za(t.next)||Am(t.next));t.acceptToken(e_)}}}),XV=Et({"AtKeyword import charset namespace keyframes media supports":y.definitionKeyword,"from to selector":y.keyword,NamespaceName:y.namespace,KeyframeName:y.labelName,KeyframeRangeName:y.operatorKeyword,TagName:y.tagName,ClassName:y.className,PseudoClassName:y.constant(y.className),IdName:y.labelName,"FeatureName PropertyName":y.propertyName,AttributeName:y.attributeName,NumberLiteral:y.number,KeywordQuery:y.keyword,UnaryQueryOp:y.operatorKeyword,"CallTag ValueName":y.atom,VariableName:y.variableName,Callee:y.operatorKeyword,Unit:y.unit,"UniversalSelector NestingSelector":y.definitionOperator,"MatchOp CompareOp":y.compareOperator,"ChildOp SiblingOp, LogicOp":y.logicOperator,BinOp:y.arithmeticOperator,Important:y.modifier,Comment:y.blockComment,ColorLiteral:y.color,"ParenthesizedContent StringLiteral":y.string,":":y.punctuation,"PseudoOp #":y.derefOperator,"; ,":y.separator,"( )":y.paren,"[ ]":y.squareBracket,"{ }":y.brace}),xV={__proto__:null,lang:38,"nth-child":38,"nth-last-child":38,"nth-of-type":38,"nth-last-of-type":38,dir:38,"host-context":38,if:84,url:124,"url-prefix":124,domain:124,regexp:124},bV={__proto__:null,or:98,and:98,not:106,only:106,layer:170},kV={__proto__:null,selector:112,layer:166},TV={__proto__:null,"@import":162,"@media":174,"@charset":178,"@namespace":182,"@keyframes":188,"@supports":200,"@scope":204},RV={__proto__:null,to:207},CV=qt.deserialize({version:14,states:"EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",stateData:"Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",goto:"2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",nodeNames:"⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",maxTerm:143,nodeProps:[["isolate",-2,5,36,""],["openedBy",20,"(",28,"[",31,"{"],["closedBy",21,")",29,"]",32,"}"]],propSources:[XV],skippedNodes:[0,5,106],repeatNodeCount:15,tokenData:"JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",tokenizers:[yV,wV,vV,PV,1,2,3,4,new Es("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~",28,129)],topRules:{StyleSheet:[0,6],Styles:[1,105]},dynamicPrecedences:{76:1},specialized:[{term:124,get:t=>xV[t]||-1},{term:125,get:t=>bV[t]||-1},{term:4,get:t=>kV[t]||-1},{term:25,get:t=>TV[t]||-1},{term:123,get:t=>RV[t]||-1}],tokenPrec:1963});let wu=null;function Xu(){if(!wu&&typeof document=="object"&&document.body){let{style:t}=document.body,e=[],i=new Set;for(let r in t)r!="cssText"&&r!="cssFloat"&&typeof t[r]=="string"&&(/[A-Z]/.test(r)&&(r=r.replace(/[A-Z]/g,n=>"-"+n.toLowerCase())),i.has(r)||(e.push(r),i.add(r)));wu=e.sort().map(r=>({type:"property",label:r,apply:r+": "}))}return wu||[]}const i_=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(t=>({type:"class",label:t})),r_=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(t=>({type:"keyword",label:t})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(t=>({type:"constant",label:t}))),YV=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(t=>({type:"type",label:t})),ZV=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(t=>({type:"keyword",label:t})),Ji=/^(\w[\w-]*|-\w[\w-]*|)$/,WV=/^-(-[\w-]*)?$/;function UV(t,e){var i;if((t.name=="("||t.type.isError)&&(t=t.parent||t),t.name!="ArgList")return!1;let r=(i=t.parent)===null||i===void 0?void 0:i.firstChild;return(r==null?void 0:r.name)!="Callee"?!1:e.sliceString(r.from,r.to)=="var"}const n_=new Nc,zV=["Declaration"];function qV(t){for(let e=t;;){if(e.type.isTop)return e;if(!(e=e.parent))return t}}function Nw(t,e,i){if(e.to-e.from>4096){let r=n_.get(e);if(r)return r;let n=[],s=new Set,o=e.cursor(ve.IncludeAnonymous);if(o.firstChild())do for(let a of Nw(t,o.node,i))s.has(a.label)||(s.add(a.label),n.push(a));while(o.nextSibling());return n_.set(e,n),n}else{let r=[],n=new Set;return e.cursor().iterate(s=>{var o;if(i(s)&&s.matchContext(zV)&&((o=s.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let a=t.sliceString(s.from,s.to);n.has(a)||(n.add(a),r.push({label:a,type:"variable"}))}}),r}}const EV=t=>e=>{let{state:i,pos:r}=e,n=we(i).resolveInner(r,-1),s=n.type.isError&&n.from==n.to-1&&i.doc.sliceString(n.from,n.to)=="-";if(n.name=="PropertyName"||(s||n.name=="TagName")&&/^(Block|Styles)$/.test(n.resolve(n.to).name))return{from:n.from,options:Xu(),validFor:Ji};if(n.name=="ValueName")return{from:n.from,options:r_,validFor:Ji};if(n.name=="PseudoClassName")return{from:n.from,options:i_,validFor:Ji};if(t(n)||(e.explicit||s)&&UV(n,i.doc))return{from:t(n)||s?n.from:r,options:Nw(i.doc,qV(n),t),validFor:WV};if(n.name=="TagName"){for(let{parent:l}=n;l;l=l.parent)if(l.name=="Block")return{from:n.from,options:Xu(),validFor:Ji};return{from:n.from,options:YV,validFor:Ji}}if(n.name=="AtKeyword")return{from:n.from,options:ZV,validFor:Ji};if(!e.explicit)return null;let o=n.resolve(r),a=o.childBefore(r);return a&&a.name==":"&&o.name=="PseudoClassSelector"?{from:r,options:i_,validFor:Ji}:a&&a.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:r,options:r_,validFor:Ji}:o.name=="Block"||o.name=="Styles"?{from:r,options:Xu(),validFor:Ji}:null},VV=EV(t=>t.name=="VariableName"),vc=zt.define({name:"css",parser:CV.configure({props:[ei.add({Declaration:Ot()}),Vt.add({"Block KeyframeList":Pr})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function To(){return new Ht(vc,vc.data.of({autocomplete:VV}))}const _o=["_blank","_self","_top","_parent"],xu=["ascii","utf-8","utf-16","latin1","latin1"],bu=["get","post","put","delete"],ku=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Lt=["true","false"],ce={},AV={a:{attrs:{href:null,ping:null,type:null,media:null,target:_o,hreflang:null}},abbr:ce,address:ce,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:ce,aside:ce,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:ce,base:{attrs:{href:null,target:_o}},bdi:ce,bdo:ce,blockquote:{attrs:{cite:null}},body:ce,br:ce,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:ku,formmethod:bu,formnovalidate:["novalidate"],formtarget:_o,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:ce,center:ce,cite:ce,code:ce,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:ce,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:ce,div:ce,dl:ce,dt:ce,em:ce,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:ce,figure:ce,footer:ce,form:{attrs:{action:null,name:null,"accept-charset":xu,autocomplete:["on","off"],enctype:ku,method:bu,novalidate:["novalidate"],target:_o}},h1:ce,h2:ce,h3:ce,h4:ce,h5:ce,h6:ce,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:ce,hgroup:ce,hr:ce,html:{attrs:{manifest:null}},i:ce,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:ku,formmethod:bu,formnovalidate:["novalidate"],formtarget:_o,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:ce,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:ce,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:ce,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:xu,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:ce,noscript:ce,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:ce,param:{attrs:{name:null,value:null}},pre:ce,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:ce,rt:ce,ruby:ce,samp:ce,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:xu}},section:ce,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:ce,source:{attrs:{src:null,type:null,media:null}},span:ce,strong:ce,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:ce,summary:ce,sup:ce,table:ce,tbody:ce,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:ce,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:ce,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:ce,time:{attrs:{datetime:null}},title:ce,tr:ce,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:ce,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:ce},Fw={accesskey:null,class:null,contenteditable:Lt,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Lt,autocorrect:Lt,autocapitalize:Lt,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Lt,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Lt,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Lt,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Lt,"aria-hidden":Lt,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Lt,"aria-multiselectable":Lt,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Lt,"aria-relevant":null,"aria-required":Lt,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},Hw="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(t=>"on"+t);for(let t of Hw)Fw[t]=null;class qa{constructor(e,i){this.tags={...AV,...e},this.globalAttrs={...Fw,...i},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}qa.default=new qa;function js(t,e,i=t.length){if(!e)return"";let r=e.firstChild,n=r&&r.getChild("TagName");return n?t.sliceString(n.from,Math.min(n.to,i)):""}function Ls(t,e=!1){for(;t;t=t.parent)if(t.name=="Element")if(e)e=!1;else return t;return null}function Kw(t,e,i){let r=i.tags[js(t,Ls(e))];return(r==null?void 0:r.children)||i.allTags}function jm(t,e){let i=[];for(let r=Ls(e);r&&!r.type.isTop;r=Ls(r.parent)){let n=js(t,r);if(n&&r.lastChild.name=="CloseTag")break;n&&i.indexOf(n)<0&&(e.name=="EndTag"||e.from>=r.firstChild.to)&&i.push(n)}return i}const Jw=/^[:\-\.\w\u00b7-\uffff]*$/;function s_(t,e,i,r,n){let s=/\s*>/.test(t.sliceDoc(n,n+5))?"":">",o=Ls(i,i.name=="StartTag"||i.name=="TagName");return{from:r,to:n,options:Kw(t.doc,o,e).map(a=>({label:a,type:"type"})).concat(jm(t.doc,i).map((a,l)=>({label:"/"+a,apply:"/"+a+s,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function o_(t,e,i,r){let n=/\s*>/.test(t.sliceDoc(r,r+5))?"":">";return{from:i,to:r,options:jm(t.doc,e).map((s,o)=>({label:s,apply:s+n,type:"type",boost:99-o})),validFor:Jw}}function jV(t,e,i,r){let n=[],s=0;for(let o of Kw(t.doc,i,e))n.push({label:"<"+o,type:"type"});for(let o of jm(t.doc,i))n.push({label:"</"+o+">",type:"type",boost:99-s++});return{from:r,to:r,options:n,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function LV(t,e,i,r,n){let s=Ls(i),o=s?e.tags[js(t.doc,s)]:null,a=o&&o.attrs?Object.keys(o.attrs):[],l=o&&o.globalAttrs===!1?a:a.length?a.concat(e.globalAttrNames):e.globalAttrNames;return{from:r,to:n,options:l.map(O=>({label:O,type:"property"})),validFor:Jw}}function DV(t,e,i,r,n){var s;let o=(s=i.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),a=[],l;if(o){let O=t.sliceDoc(o.from,o.to),c=e.globalAttrs[O];if(!c){let h=Ls(i),u=h?e.tags[js(t.doc,h)]:null;c=(u==null?void 0:u.attrs)&&u.attrs[O]}if(c){let h=t.sliceDoc(r,n).toLowerCase(),u='"',m='"';/^['"]/.test(h)?(l=h[0]=='"'?/^[^"]*$/:/^[^']*$/,u="",m=t.sliceDoc(n,n+1)==h[0]?"":h[0],h=h.slice(1),r++):l=/^[^\s<>='"]*$/;for(let S of c)a.push({label:S,apply:u+S+m,type:"constant"})}}return{from:r,to:n,options:a,validFor:l}}function eX(t,e){let{state:i,pos:r}=e,n=we(i).resolveInner(r,-1),s=n.resolve(r);for(let o=r,a;s==n&&(a=n.childBefore(o));){let l=a.lastChild;if(!l||!l.type.isError||l.from<l.to)break;s=n=a,o=l.from}return n.name=="TagName"?n.parent&&/CloseTag$/.test(n.parent.name)?o_(i,n,n.from,r):s_(i,t,n,n.from,r):n.name=="StartTag"||n.name=="IncompleteTag"?s_(i,t,n,r,r):n.name=="StartCloseTag"||n.name=="IncompleteCloseTag"?o_(i,n,r,r):n.name=="OpenTag"||n.name=="SelfClosingTag"||n.name=="AttributeName"?LV(i,t,n,n.name=="AttributeName"?n.from:r,r):n.name=="Is"||n.name=="AttributeValue"||n.name=="UnquotedAttributeValue"?DV(i,t,n,n.name=="Is"?r:n.from,r):e.explicit&&(s.name=="Element"||s.name=="Text"||s.name=="Document")?jV(i,t,n,r):null}function MV(t){return eX(qa.default,t)}function GV(t){let{extraTags:e,extraGlobalAttributes:i}=t,r=i||e?new qa(e,i):qa.default;return n=>eX(r,n)}const BV=Fi.parser.configure({top:"SingleExpression"}),tX=[{tag:"script",attrs:t=>t.type=="text/typescript"||t.lang=="ts",parser:jy.parser},{tag:"script",attrs:t=>t.type=="text/babel"||t.type=="text/jsx",parser:Ly.parser},{tag:"script",attrs:t=>t.type=="text/typescript-jsx",parser:Dy.parser},{tag:"script",attrs(t){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(t.type)},parser:BV},{tag:"script",attrs(t){return!t.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(t.type)},parser:Fi.parser},{tag:"style",attrs(t){return(!t.lang||t.lang=="css")&&(!t.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(t.type))},parser:vc.parser}],iX=[{name:"style",parser:vc.parser.configure({top:"Styles"})}].concat(Hw.map(t=>({name:t,parser:Fi.parser}))),rX=zt.define({name:"html",parser:sV.configure({props:[ei.add({Element(t){let e=/^(\s*)(<\/)?/.exec(t.textAfter);return t.node.to<=t.pos+e[0].length?t.continue():t.lineIndent(t.node.from)+(e[2]?0:t.unit)},"OpenTag CloseTag SelfClosingTag"(t){return t.column(t.node.from)+t.unit},Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].length<t.node.to)return t.continue();let e=null,i;for(let r=t.node;;){let n=r.lastChild;if(!n||n.name!="Element"||n.to!=r.to)break;e=r=n}return e&&!((i=e.lastChild)&&(i.name=="CloseTag"||i.name=="SelfClosingTag"))?t.lineIndent(e.from)+t.unit:null}}),Vt.add({Element(t){let e=t.firstChild,i=t.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:i.name=="CloseTag"?i.from:t.to}}}),YP.add({"OpenTag CloseTag":t=>t.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),$O=rX.configure({wrap:Dw(tX,iX)});function Ro(t={}){let e="",i;t.matchClosingTags===!1&&(e="noMatch"),t.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(t.nestedLanguages&&t.nestedLanguages.length||t.nestedAttributes&&t.nestedAttributes.length)&&(i=Dw((t.nestedLanguages||[]).concat(tX),(t.nestedAttributes||[]).concat(iX)));let r=i?rX.configure({wrap:i,dialect:e}):e?$O.configure({dialect:e}):$O;return new Ht(r,[$O.data.of({autocomplete:GV(t)}),t.autoCloseTags!==!1?IV:[],fn().support,To().support])}const a_=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),IV=H.inputHandler.of((t,e,i,r,n)=>{if(t.composing||t.state.readOnly||e!=i||r!=">"&&r!="/"||!$O.isActiveAt(t.state,e,-1))return!1;let s=n(),{state:o}=s,a=o.changeByRange(l=>{var O,c,h;let u=o.doc.sliceString(l.from-1,l.to)==r,{head:m}=l,S=we(o).resolveInner(m,-1),Q;if(u&&r==">"&&S.name=="EndTag"){let g=S.parent;if(((c=(O=g.parent)===null||O===void 0?void 0:O.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(Q=js(o.doc,g.parent,m))&&!a_.has(Q)){let d=m+(o.doc.sliceString(m,m+1)===">"?1:0),f=`</${Q}>`;return{range:l,changes:{from:m,to:d,insert:f}}}}else if(u&&r=="/"&&S.name=="IncompleteCloseTag"){let g=S.parent;if(S.from==m-2&&((h=g.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(Q=js(o.doc,g,m))&&!a_.has(Q)){let d=m+(o.doc.sliceString(m,m+1)===">"?1:0),f=`${Q}>`;return{range:A.cursor(m+f.length,-1),changes:{from:m,to:d,insert:f}}}}return{range:l}});return a.changes.empty?!1:(t.dispatch([s,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),nX=am({commentTokens:{block:{open:"<!--",close:"-->"}}}),sX=new de,oX=aE.configure({props:[Vt.add(t=>!t.is("Block")||t.is("Document")||Ed(t)!=null||NV(t)?void 0:(e,i)=>({from:i.doc.lineAt(e.from).to,to:e.to})),sX.add(Ed),ei.add({Document:()=>null}),yn.add({Document:nX})]});function Ed(t){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(t.name);return e?+e[1]:void 0}function NV(t){return t.name=="OrderedList"||t.name=="BulletList"}function FV(t,e){let i=t;for(;;){let r=i.nextSibling,n;if(!r||(n=Ed(r.type))!=null&&n<=e)break;i=r}return i.to}const HV=_P.of((t,e,i)=>{for(let r=we(t).resolveInner(i,-1);r&&!(r.from<e);r=r.parent){let n=r.type.prop(sX);if(n==null)continue;let s=FV(r,n);if(s>i)return{from:i,to:s}}return null});function Lm(t){return new ai(nX,t,[],"markdown")}const KV=Lm(oX),JV=oX.configure([QE,$E,SE,_E,{props:[Vt.add({Table:(t,e)=>({from:e.doc.lineAt(t.from).to,to:t.to})})]}]),Pc=Lm(JV);function e4(t,e){return i=>{if(i&&t){let r=null;if(i=/\S*/.exec(i)[0],typeof t=="function"?r=t(i):r=nc.matchLanguageName(t,i,!0),r instanceof nc)return r.support?r.support.language.parser:wa.getSkippingParser(r.load());if(r)return r.parser}return e?e.parser:null}}class Tu{constructor(e,i,r,n,s,o,a){this.node=e,this.from=i,this.to=r,this.spaceBefore=n,this.spaceAfter=s,this.type=o,this.item=a}blank(e,i=!0){let r=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;r.length<e;)r+=" ";return r}else{for(let n=this.to-this.from-r.length-this.spaceAfter.length;n>0;n--)r+=" ";return r+(i?this.spaceAfter:"")}}marker(e,i){let r=this.node.name=="OrderedList"?String(+lX(this.item,e)[2]+i):"";return this.spaceBefore+r+this.type+this.spaceAfter}}function aX(t,e){let i=[],r=[];for(let n=t;n;n=n.parent){if(n.name=="FencedCode")return r;(n.name=="ListItem"||n.name=="Blockquote")&&i.push(n)}for(let n=i.length-1;n>=0;n--){let s=i[n],o,a=e.lineAt(s.from),l=s.from-a.from;if(s.name=="Blockquote"&&(o=/^ *>( ?)/.exec(a.text.slice(l))))r.push(new Tu(s,l,l+o[0].length,"",o[1],">",null));else if(s.name=="ListItem"&&s.parent.name=="OrderedList"&&(o=/^( *)\d+([.)])( *)/.exec(a.text.slice(l)))){let O=o[3],c=o[0].length;O.length>=4&&(O=O.slice(0,O.length-4),c-=4),r.push(new Tu(s.parent,l,l+c,o[1],O,o[2],s))}else if(s.name=="ListItem"&&s.parent.name=="BulletList"&&(o=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(a.text.slice(l)))){let O=o[4],c=o[0].length;O.length>4&&(O=O.slice(0,O.length-4),c-=4);let h=o[2];o[3]&&(h+=o[3].replace(/[xX]/," ")),r.push(new Tu(s.parent,l,l+c,o[1],O,h,s))}}return r}function lX(t,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(t.from,t.from+10))}function Ru(t,e,i,r=0){for(let n=-1,s=t;;){if(s.name=="ListItem"){let a=lX(s,e),l=+a[2];if(n>=0){if(l!=n+1)return;i.push({from:s.from+a[1].length,to:s.from+a[0].length,insert:String(n+2+r)})}n=l}let o=s.nextSibling;if(!o)break;s=o}}function Dm(t,e){let i=/^[ \t]*/.exec(t)[0].length;if(!i||e.facet(Ns)!=" ")return t;let r=wi(t,4,i),n="";for(let s=r;s>0;)s>=4?(n+=" ",s-=4):(n+=" ",s--);return n+t.slice(i)}const t4=(t={})=>({state:e,dispatch:i})=>{let r=we(e),{doc:n}=e,s=null,o=e.changeByRange(a=>{if(!a.empty||!Pc.isActiveAt(e,a.from,-1)&&!Pc.isActiveAt(e,a.from,1))return s={range:a};let l=a.from,O=n.lineAt(l),c=aX(r.resolveInner(l,-1),n);for(;c.length&&c[c.length-1].from>l-O.from;)c.pop();if(!c.length)return s={range:a};let h=c[c.length-1];if(h.to-h.spaceAfter.length>l-O.from)return s={range:a};let u=l>=h.to-h.spaceAfter.length&&!/\S/.test(O.text.slice(h.to));if(h.item&&u){let d=h.node.firstChild,f=h.node.getChild("ListItem","ListItem");if(d.to>=l||f&&f.to<l||O.from>0&&!/[^\s>]/.test(n.lineAt(O.from-1).text)||t.nonTightLists===!1){let p=c.length>1?c[c.length-2]:null,$,v="";p&&p.item?($=O.from+p.from,v=p.marker(n,1)):$=O.from+(p?p.to:0);let P=[{from:$,to:l,insert:v}];return h.node.name=="OrderedList"&&Ru(h.item,n,P,-2),p&&p.node.name=="OrderedList"&&Ru(p.item,n,P),{range:A.cursor($+v.length),changes:P}}else{let p=O_(c,e,O);return{range:A.cursor(l+p.length+1),changes:{from:O.from,insert:p+e.lineBreak}}}}if(h.node.name=="Blockquote"&&u&&O.from){let d=n.lineAt(O.from-1),f=/>\s*$/.exec(d.text);if(f&&f.index==h.from){let p=e.changes([{from:d.from+f.index,to:d.to},{from:O.from+h.from,to:O.to}]);return{range:a.map(p),changes:p}}}let m=[];h.node.name=="OrderedList"&&Ru(h.item,n,m);let S=h.item&&h.item.from<O.from,Q="";if(!S||/^[\s\d.)\-+*>]*/.exec(O.text)[0].length>=h.to)for(let d=0,f=c.length-1;d<=f;d++)Q+=d==f&&!S?c[d].marker(n,1):c[d].blank(d<f?wi(O.text,4,c[d+1].from)-Q.length:null);let g=l;for(;g>O.from&&/\s/.test(O.text.charAt(g-O.from-1));)g--;return Q=Dm(Q,e),r4(h.node,e.doc)&&(Q=O_(c,e,O)+e.lineBreak+Q),m.push({from:g,to:l,insert:e.lineBreak+Q}),{range:A.cursor(g+Q.length+1),changes:m}});return s?!1:(i(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)},i4=t4();function l_(t){return t.name=="QuoteMark"||t.name=="ListMark"}function r4(t,e){if(t.name!="OrderedList"&&t.name!="BulletList")return!1;let i=t.firstChild,r=t.getChild("ListItem","ListItem");if(!r)return!1;let n=e.lineAt(i.to),s=e.lineAt(r.from),o=/^[\s>]*$/.test(n.text);return n.number+(o?0:1)<s.number}function O_(t,e,i){let r="";for(let n=0,s=t.length-2;n<=s;n++)r+=t[n].blank(n<s?wi(i.text,4,t[n+1].from)-r.length:null,n<s);return Dm(r,e)}function n4(t,e){let i=t.resolveInner(e,-1),r=e;l_(i)&&(r=i.from,i=i.parent);for(let n;n=i.childBefore(r);)if(l_(n))r=n.from;else if(n.name=="OrderedList"||n.name=="BulletList")i=n.lastChild,r=i.to;else break;return i}const s4=({state:t,dispatch:e})=>{let i=we(t),r=null,n=t.changeByRange(s=>{let o=s.from,{doc:a}=t;if(s.empty&&Pc.isActiveAt(t,s.from)){let l=a.lineAt(o),O=aX(n4(i,o),a);if(O.length){let c=O[O.length-1],h=c.to-c.spaceAfter.length+(c.spaceAfter?1:0);if(o-l.from>h&&!/\S/.test(l.text.slice(h,o-l.from)))return{range:A.cursor(l.from+h),changes:{from:l.from+h,to:o}};if(o-l.from==h&&(!c.item||l.from<=c.item.from||!/\S/.test(l.text.slice(0,c.to)))){let u=l.from+c.from;if(c.item&&c.node.from<c.item.from&&/\S/.test(l.text.slice(c.from,c.to))){let m=c.blank(wi(l.text,4,c.to)-wi(l.text,4,c.from));return u==l.from&&(m=Dm(m,t)),{range:A.cursor(u+m.length),changes:{from:u,to:l.from+c.to,insert:m}}}if(u<o)return{range:A.cursor(u),changes:{from:u,to:o}}}}}return r={range:s}});return r?!1:(e(t.update(n,{scrollIntoView:!0,userEvent:"delete"})),!0)},o4=[{key:"Enter",run:i4},{key:"Backspace",run:s4}],OX=Ro({matchClosingTags:!1});function c_(t={}){let{codeLanguages:e,defaultCodeLanguage:i,addKeymap:r=!0,base:{parser:n}=KV,completeHTMLTags:s=!0,pasteURLAsLink:o=!0,htmlTagLanguage:a=OX}=t;if(!(n instanceof sh))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let l=t.extensions?[t.extensions]:[],O=[a.support,HV],c;o&&O.push(c4),i instanceof Ht?(O.push(i.support),c=i.language):i&&(c=i);let h=e||c?e4(e,c):void 0;l.push(OE({codeParser:h,htmlParser:a.language.parser})),r&&O.push(vr.high(Is.of(o4)));let u=Lm(n.configure(l));return s&&O.push(u.data.of({autocomplete:a4})),new Ht(u,O)}function a4(t){let{state:e,pos:i}=t,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(e.sliceDoc(i-25,i));if(!r)return null;let n=we(e).resolveInner(i,-1);for(;n&&!n.type.isTop;){if(n.name=="CodeBlock"||n.name=="FencedCode"||n.name=="ProcessingInstructionBlock"||n.name=="CommentBlock"||n.name=="Link"||n.name=="Image")return null;n=n.parent}return{from:i-r[0].length,to:i,options:l4(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let Cu=null;function l4(){if(Cu)return Cu;let t=MV(new Sm(Qe.create({extensions:OX}),0,!0));return Cu=t?t.options:[]}const O4=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,c4=H.domEventHandlers({paste:(t,e)=>{var i;let{main:r}=e.state.selection;if(r.empty)return!1;let n=(i=t.clipboardData)===null||i===void 0?void 0:i.getData("text/plain");if(!n||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(n)||(/^www\./.test(n)&&(n="https://"+n),!Pc.isActiveAt(e.state,r.from,1)))return!1;let s=we(e.state),o=!1;return s.iterate({from:r.from,to:r.to,enter:a=>{(a.from>r.from||O4.test(a.name))&&(o=!0)},leave:a=>{a.to<r.to&&(o=!0)}}),o?!1:(e.dispatch({changes:[{from:r.from,insert:"["},{from:r.to,insert:`](${n})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}}),h4=36,h_=1,u4=2,Mn=3,Yu=4,f4=5,d4=6,p4=7,m4=8,g4=9,Q4=10,S4=11,$4=12,_4=13,v4=14,P4=15,y4=16,w4=17,u_=18,X4=19,cX=20,hX=21,f_=22,x4=23,b4=24;function Vd(t){return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57}function k4(t){return t>=48&&t<=57||t>=97&&t<=102||t>=65&&t<=70}function dn(t,e,i){for(let r=!1;;){if(t.next<0)return;if(t.next==e&&!r){t.advance();return}r=i&&!r&&t.next==92,t.advance()}}function T4(t,e){e:for(;;){if(t.next<0)return;if(t.next==36){t.advance();for(let i=0;i<e.length;i++){if(t.next!=e.charCodeAt(i))continue e;t.advance()}if(t.next==36){t.advance();return}}else t.advance()}}function R4(t,e){let i="[{<(".indexOf(String.fromCharCode(e)),r=i<0?e:"]}>)".charCodeAt(i);for(;;){if(t.next<0)return;if(t.next==r&&t.peek(1)==39){t.advance(2);return}t.advance()}}function Ad(t,e){for(;!(t.next!=95&&!Vd(t.next));)e!=null&&(e+=String.fromCharCode(t.next)),t.advance();return e}function C4(t){if(t.next==39||t.next==34||t.next==96){let e=t.next;t.advance(),dn(t,e,!1)}else Ad(t)}function d_(t,e){for(;t.next==48||t.next==49;)t.advance();e&&t.next==e&&t.advance()}function p_(t,e){for(;;){if(t.next==46){if(e)break;e=!0}else if(t.next<48||t.next>57)break;t.advance()}if(t.next==69||t.next==101)for(t.advance(),(t.next==43||t.next==45)&&t.advance();t.next>=48&&t.next<=57;)t.advance()}function m_(t){for(;!(t.next<0||t.next==10);)t.advance()}function On(t,e){for(let i=0;i<e.length;i++)if(e.charCodeAt(i)==t)return!0;return!1}const Zu=` \r
|
|
87
87
|
`;function uX(t,e,i){let r=Object.create(null);r.true=r.false=f4,r.null=r.unknown=d4;for(let n of t.split(" "))n&&(r[n]=cX);for(let n of e.split(" "))n&&(r[n]=hX);for(let n of(i||"").split(" "))n&&(r[n]=b4);return r}const Y4="array binary bit boolean char character clob date decimal double float int integer interval large national nchar nclob numeric object precision real smallint time timestamp varchar varying ",Z4="absolute action add after all allocate alter and any are as asc assertion at authorization before begin between both breadth by call cascade cascaded case cast catalog check close collate collation column commit condition connect connection constraint constraints constructor continue corresponding count create cross cube current current_date current_default_transform_group current_transform_group_for_type current_path current_role current_time current_timestamp current_user cursor cycle data day deallocate declare default deferrable deferred delete depth deref desc describe descriptor deterministic diagnostics disconnect distinct do domain drop dynamic each else elseif end end-exec equals escape except exception exec execute exists exit external fetch first for foreign found from free full function general get global go goto grant group grouping handle having hold hour identity if immediate in indicator initially inner inout input insert intersect into is isolation join key language last lateral leading leave left level like limit local localtime localtimestamp locator loop map match method minute modifies module month names natural nesting new next no none not of old on only open option or order ordinality out outer output overlaps pad parameter partial path prepare preserve primary prior privileges procedure public read reads recursive redo ref references referencing relative release repeat resignal restrict result return returns revoke right role rollback rollup routine row rows savepoint schema scroll search second section select session session_user set sets signal similar size some space specific specifictype sql sqlexception sqlstate sqlwarning start state static system_user table temporary then timezone_hour timezone_minute to trailing transaction translation treat trigger under undo union unique unnest until update usage user using value values view when whenever where while with without work write year zone ",jd={backslashEscapes:!1,hashComments:!1,spaceAfterDashes:!1,slashComments:!1,doubleQuotedStrings:!1,doubleDollarQuotedStrings:!1,unquotedBitLiterals:!1,treatBitsAsBytes:!1,charSetCasts:!1,plsqlQuotingMechanism:!1,operatorChars:"*+-%<>!=&|~^/",specialVar:"?",identifierQuotes:'"',caseInsensitiveIdentifiers:!1,words:uX(Z4,Y4)};function W4(t,e,i,r){let n={};for(let s in jd)n[s]=(t.hasOwnProperty(s)?t:jd)[s];return e&&(n.words=uX(e,i||"",r)),n}function fX(t){return new xe(e=>{var i;let{next:r}=e;if(e.advance(),On(r,Zu)){for(;On(e.next,Zu);)e.advance();e.acceptToken(h4)}else if(r==36&&t.doubleDollarQuotedStrings){let n=Ad(e,"");e.next==36&&(e.advance(),T4(e,n),e.acceptToken(Mn))}else if(r==39||r==34&&t.doubleQuotedStrings)dn(e,r,t.backslashEscapes),e.acceptToken(Mn);else if(r==35&&t.hashComments||r==47&&e.next==47&&t.slashComments)m_(e),e.acceptToken(h_);else if(r==45&&e.next==45&&(!t.spaceAfterDashes||e.peek(1)==32))m_(e),e.acceptToken(h_);else if(r==47&&e.next==42){e.advance();for(let n=1;;){let s=e.next;if(e.next<0)break;if(e.advance(),s==42&&e.next==47){if(n--,e.advance(),!n)break}else s==47&&e.next==42&&(n++,e.advance())}e.acceptToken(u4)}else if((r==101||r==69)&&e.next==39)e.advance(),dn(e,39,!0),e.acceptToken(Mn);else if((r==110||r==78)&&e.next==39&&t.charSetCasts)e.advance(),dn(e,39,t.backslashEscapes),e.acceptToken(Mn);else if(r==95&&t.charSetCasts)for(let n=0;;n++){if(e.next==39&&n>1){e.advance(),dn(e,39,t.backslashEscapes),e.acceptToken(Mn);break}if(!Vd(e.next))break;e.advance()}else if(t.plsqlQuotingMechanism&&(r==113||r==81)&&e.next==39&&e.peek(1)>0&&!On(e.peek(1),Zu)){let n=e.peek(1);e.advance(2),R4(e,n),e.acceptToken(Mn)}else if(On(r,t.identifierQuotes)){const n=r==91?93:r;dn(e,n,!1),e.acceptToken(X4)}else if(r==40)e.acceptToken(p4);else if(r==41)e.acceptToken(m4);else if(r==123)e.acceptToken(g4);else if(r==125)e.acceptToken(Q4);else if(r==91)e.acceptToken(S4);else if(r==93)e.acceptToken($4);else if(r==59)e.acceptToken(_4);else if(t.unquotedBitLiterals&&r==48&&e.next==98)e.advance(),d_(e),e.acceptToken(f_);else if((r==98||r==66)&&(e.next==39||e.next==34)){const n=e.next;e.advance(),t.treatBitsAsBytes?(dn(e,n,t.backslashEscapes),e.acceptToken(x4)):(d_(e,n),e.acceptToken(f_))}else if(r==48&&(e.next==120||e.next==88)||(r==120||r==88)&&e.next==39){let n=e.next==39;for(e.advance();k4(e.next);)e.advance();n&&e.next==39&&e.advance(),e.acceptToken(Yu)}else if(r==46&&e.next>=48&&e.next<=57)p_(e,!0),e.acceptToken(Yu);else if(r==46)e.acceptToken(v4);else if(r>=48&&r<=57)p_(e,!1),e.acceptToken(Yu);else if(On(r,t.operatorChars)){for(;On(e.next,t.operatorChars);)e.advance();e.acceptToken(P4)}else if(On(r,t.specialVar))e.next==r&&e.advance(),C4(e),e.acceptToken(w4);else if(r==58||r==44)e.acceptToken(y4);else if(Vd(r)){let n=Ad(e,String.fromCharCode(r));e.acceptToken(e.next==46||e.peek(-n.length-1)==46?u_:(i=t.words[n.toLowerCase()])!==null&&i!==void 0?i:u_)}})}const dX=fX(jd),U4=qt.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,dX],topRules:{Script:[0,25]},tokenPrec:0});function Ld(t){let e=t.cursor().moveTo(t.from,-1);for(;/Comment/.test(e.name);)e.moveTo(e.from,-1);return e.node}function Ea(t,e){let i=t.sliceString(e.from,e.to),r=/^([`'"\[])(.*)([`'"\]])$/.exec(i);return r?r[2]:i}function yc(t){return t&&(t.name=="Identifier"||t.name=="QuotedIdentifier")}function z4(t,e){if(e.name=="CompositeIdentifier"){let i=[];for(let r=e.firstChild;r;r=r.nextSibling)yc(r)&&i.push(Ea(t,r));return i}return[Ea(t,e)]}function g_(t,e){for(let i=[];;){if(!e||e.name!=".")return i;let r=Ld(e);if(!yc(r))return i;i.unshift(Ea(t,r)),e=Ld(r)}}function q4(t,e){let i=we(t).resolveInner(e,-1),r=V4(t.doc,i);return i.name=="Identifier"||i.name=="QuotedIdentifier"||i.name=="Keyword"?{from:i.from,quoted:i.name=="QuotedIdentifier"?t.doc.sliceString(i.from,i.from+1):null,parents:g_(t.doc,Ld(i)),aliases:r}:i.name=="."?{from:e,quoted:null,parents:g_(t.doc,i),aliases:r}:{from:e,quoted:null,parents:[],empty:!0,aliases:r}}const E4=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function V4(t,e){let i;for(let n=e;!i;n=n.parent){if(!n)return null;n.name=="Statement"&&(i=n)}let r=null;for(let n=i.firstChild,s=!1,o=null;n;n=n.nextSibling){let a=n.name=="Keyword"?t.sliceString(n.from,n.to).toLowerCase():null,l=null;if(!s)s=a=="from";else if(a=="as"&&o&&yc(n.nextSibling))l=Ea(t,n.nextSibling);else{if(a&&E4.has(a))break;o&&yc(n)&&(l=Ea(t,n))}l&&(r||(r=Object.create(null)),r[l]=z4(t,o)),o=/Identifier$/.test(n.name)?n:null}return r}function A4(t,e,i){return i.map(r=>({...r,label:r.label[0]==t?r.label:t+r.label+e,apply:void 0}))}const j4=/^\w*$/,L4=/^[`'"\[]?\w*[`'"\]]?$/;function Q_(t){return t.self&&typeof t.self.label=="string"}class Mm{constructor(e,i){this.idQuote=e,this.idCaseInsensitive=i,this.list=[],this.children=void 0}child(e){let i=this.children||(this.children=Object.create(null)),r=i[e];return r||(e&&!this.list.some(n=>n.label==e)&&this.list.push(S_(e,"type",this.idQuote,this.idCaseInsensitive)),i[e]=new Mm(this.idQuote,this.idCaseInsensitive))}maybeChild(e){return this.children?this.children[e]:null}addCompletion(e){let i=this.list.findIndex(r=>r.label==e.label);i>-1?this.list[i]=e:this.list.push(e)}addCompletions(e){for(let i of e)this.addCompletion(typeof i=="string"?S_(i,"property",this.idQuote,this.idCaseInsensitive):i)}addNamespace(e){Array.isArray(e)?this.addCompletions(e):Q_(e)?this.addNamespace(e.children):this.addNamespaceObject(e)}addNamespaceObject(e){for(let i of Object.keys(e)){let r=e[i],n=null,s=i.replace(/\\?\./g,a=>a=="."?"\0":a).split("\0"),o=this;Q_(r)&&(n=r.self,r=r.children);for(let a=0;a<s.length;a++)n&&a==s.length-1&&o.addCompletion(n),o=o.child(s[a].replace(/\\\./g,"."));o.addNamespace(r)}}}function S_(t,e,i,r){return new RegExp("^[a-z_][a-z_\\d]*$",r?"i":"").test(t)?{label:t,type:e}:{label:t,type:e,apply:i+t+pX(i)}}function pX(t){return t==="["?"]":t}function D4(t,e,i,r,n,s){var o;let a=((o=s==null?void 0:s.spec.identifierQuotes)===null||o===void 0?void 0:o[0])||'"',l=new Mm(a,!!(s!=null&&s.spec.caseInsensitiveIdentifiers)),O=n?l.child(n):null;return l.addNamespace(t),e&&(O||l).addCompletions(e),i&&l.addCompletions(i),O&&l.addCompletions(O.list),r&&l.addCompletions((O||l).child(r).list),c=>{let{parents:h,from:u,quoted:m,empty:S,aliases:Q}=q4(c.state,c.pos);if(S&&!c.explicit)return null;Q&&h.length==1&&(h=Q[h[0]]||h);let g=l;for(let f of h){for(;!g.children||!g.children[f];)if(g==l&&O)g=O;else if(g==O&&r)g=g.child(r);else return null;let p=g.maybeChild(f);if(!p)return null;g=p}let d=g.list;if(g==l&&Q&&(d=d.concat(Object.keys(Q).map(f=>({label:f,type:"constant"})))),m){let f=m[0],p=pX(f),$=c.state.sliceDoc(c.pos,c.pos+1)==p;return{from:u,to:$?c.pos+1:void 0,options:A4(f,p,d),validFor:L4}}else return{from:u,options:d,validFor:j4}}}function M4(t){return t==hX?"type":t==cX?"keyword":"variable"}function G4(t,e,i){let r=Object.keys(t).map(n=>i(e?n.toUpperCase():n,M4(t[n])));return ih(["QuotedIdentifier","String","LineComment","BlockComment","."],Ka(r))}let B4=U4.configure({props:[ei.add({Statement:Ot()}),Vt.add({Statement(t,e){return{from:Math.min(t.from+100,e.doc.lineAt(t.from).to),to:t.to}},BlockComment(t){return{from:t.from+2,to:t.to-2}}}),Et({Keyword:y.keyword,Type:y.typeName,Builtin:y.standard(y.name),Bits:y.number,Bytes:y.string,Bool:y.bool,Null:y.null,Number:y.number,String:y.string,Identifier:y.name,QuotedIdentifier:y.special(y.string),SpecialVar:y.special(y.name),LineComment:y.lineComment,BlockComment:y.blockComment,Operator:y.operator,"Semi Punctuation":y.punctuation,"( )":y.paren,"{ }":y.brace,"[ ]":y.squareBracket})]});class wc{constructor(e,i,r){this.dialect=e,this.language=i,this.spec=r}get extension(){return this.language.extension}configureLanguage(e,i){return new wc(this.dialect,this.language.configure(e,i),this.spec)}static define(e){let i=W4(e,e.keywords,e.types,e.builtin),r=zt.define({name:"sql",parser:B4.configure({tokenizers:[{from:dX,to:fX(i)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new wc(i,r,e)}}function I4(t,e){return{label:t,type:e,boost:-1}}function N4(t,e=!1,i){return G4(t.dialect.words,e,i||I4)}function F4(t){return t.schema?D4(t.schema,t.tables,t.schemas,t.defaultTable,t.defaultSchema,t.dialect||Gm):()=>null}function H4(t){return t.schema?(t.dialect||Gm).language.data.of({autocomplete:F4(t)}):[]}function K4(t={}){let e=t.dialect||Gm;return new Ht(e.language,[H4(t),e.language.data.of({autocomplete:N4(e,t.upperCaseKeywords,t.keywordCompletion)})])}const Gm=wc.define({});var J4=function(t,e){var i={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(i[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,r=Object.getOwnPropertySymbols(t);n<r.length;n++)e.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(t,r[n])&&(i[r[n]]=t[r[n]]);return i};const _t=te.define({combine:t=>{const e=[];for(let i of t){if(!i)continue;const{create:r,gutters:n}=i,s=J4(i,["create","gutters"]);e.push(Object.assign(Object.assign({},s),{enabled:!0,gutters:n?n.filter(o=>Object.keys(o).length>0):void 0}))}return xi(e,{enabled:e.length>0,displayText:"characters",eventHandlers:{},showOverlay:"always",gutters:[]})}}),Bt={PixelMultiplier:2,SizeRatio:4,MaxWidth:120},e3=H.theme({".cm-minimap-overlay-container":{position:"absolute",top:0,height:"100%",width:"100%","&.cm-minimap-overlay-mouse-over":{opacity:0,transition:"visibility 0s linear 300ms, opacity 300ms"},"&.cm-minimap-overlay-mouse-over:hover":{opacity:1,transition:"visibility 0s linear 0ms, opacity 300ms"},"&.cm-minimap-overlay-off":{display:"none"},"& .cm-minimap-overlay":{background:"rgb(121, 121, 121)",opacity:"0.2",position:"absolute",right:0,top:0,width:"100%",transition:"top 0s ease-in 0ms","&:hover":{opacity:"0.3"}},"&.cm-minimap-overlay-active":{opacity:1,visibility:"visible",transition:"visibility 0s linear 0ms, opacity 300ms","& .cm-minimap-overlay":{opacity:"0.4"}}}}),br=Bt.PixelMultiplier*Bt.SizeRatio,t3=We.fromClass(class{constructor(t){this.view=t,this._isDragging=!1,t.state.facet(_t).enabled&&this.create(t)}create(t){this.container=$e("div",{class:"cm-minimap-overlay-container"}),this.dom=$e("div",{class:"cm-minimap-overlay"}),this.container.appendChild(this.dom),this.container.addEventListener("mousedown",this.onMouseDown.bind(this)),window.addEventListener("mouseup",this.onMouseUp.bind(this)),window.addEventListener("mousemove",this.onMouseMove.bind(this));const e=t.dom.querySelector(".cm-minimap-inner");e&&e.appendChild(this.container),this.computeShowOverlay(),this.computeHeight(),this.computeTop()}remove(){this.container&&(this.container.removeEventListener("mousedown",this.onMouseDown),window.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("mousemove",this.onMouseMove),this.container.remove())}update(t){const e=t.startState.facet(_t).enabled,i=t.state.facet(_t).enabled;if(e&&!i){this.remove();return}!e&&i&&this.create(t.view),i&&(this.computeShowOverlay(),t.geometryChanged&&(this.computeHeight(),this.computeTop()))}computeHeight(){if(!this.dom)return;const t=this.view.dom.clientHeight/br;this.dom.style.height=t+"px"}computeTop(){if(!this._isDragging&&this.dom){const{clientHeight:t,scrollHeight:e,scrollTop:i}=this.view.scrollDOM,r=e-t,n=i/br,s=t/br,o=t-s;let a=i/r;isNaN(a)&&(a=0);const l=o*a,O=Math.min(l,n);this.dom.style.top=O+"px"}}computeShowOverlay(){if(!this.container)return;const{showOverlay:t}=this.view.state.facet(_t);t==="mouse-over"?this.container.classList.add("cm-minimap-overlay-mouse-over"):this.container.classList.remove("cm-minimap-overlay-mouse-over");const{clientHeight:e,scrollHeight:i}=this.view.scrollDOM;e===i?this.container.classList.add("cm-minimap-overlay-off"):this.container.classList.remove("cm-minimap-overlay-off")}onMouseDown(t){if(!this.container||t.button===2)return;const{clientY:e,target:i}=t;if(i===this.dom){this._dragStartY=t.clientY,this._isDragging=!0,this.container.classList.add("cm-minimap-overlay-active");return}const{clientHeight:r,scrollHeight:n,scrollTop:s}=this.view.scrollDOM,o=i.getBoundingClientRect().top,a=(e-o)*br,l=s/(n-r),c=(r*br-r)*l,h=Math.max(0,s-c);this.view.scrollDOM.scrollTop=h+a-r/2}onMouseUp(t){this._isDragging&&this.container&&(this._dragStartY=void 0,this._isDragging=!1,this.container.classList.remove("cm-minimap-overlay-active"))}onMouseMove(t){if(!this._isDragging||!this.dom)return;if(t.preventDefault(),t.stopPropagation(),!this._dragStartY){this._dragStartY=t.clientY;return}const e=t.clientY-this._dragStartY,i=e<0,r=e>0;this._dragStartY=t.clientY;const n=this.dom.getBoundingClientRect().height,s=this.dom.getBoundingClientRect().y,o=s+n,a=parseFloat(this.dom.style.top),l=this.view.scrollDOM.scrollTop,O=this.view.scrollDOM.clientHeight,c=this.view.scrollDOM.scrollHeight,h=l===0,u=Math.round(l)>=Math.round(c-O);if(h&&i||h&&t.clientY<s||u&&r||u&&t.clientY>o)return;const m=this.view.scrollDOM.scrollHeight,S=this.view.scrollDOM.clientHeight,Q=(m-S)/br,g=S-S/br,d=a+e,f=d/g,p=(m-S)*f,$=d*br;this.view.scrollDOM.scrollTop=Math.max(p,$);const v=Math.min(Math.max(0,d),Math.min(g,Q));this.dom.style.top=v+"px"}destroy(){this.remove()}},{eventHandlers:{scroll(){requestAnimationFrame(()=>this.computeTop())}}}),i3=[e3,t3];class Bm{constructor(e){this.map=new Map,this.view=e}get(e){return this.map.get(e)}set(e,i){this.map.set(e,i)}}function $_(t){var e;if(!t.facet(_t).enabled)return[];const i=[],r=t.doc.iterLines(),n=D5(t).iter();let s=0;for(r.next();!r.done;){const o=r.value;let a=s,l=a+o.length;for(;n.value&&n.to<a;)n.next();const{from:O,to:c}=n,h=a>=O&&a<c,u=l>O&&l<=c;if(h){let m=(e=i.pop())!==null&&e!==void 0?e:[],S=m.pop();S&&S.folded&&(S.to=c),S&&m.push(S),(!S||!S.folded)&&m.push({from:O,to:c,folded:!0}),u||m.push({from:c,to:l,folded:!1}),i.push(m)}else u?i.push([{from:a,to:O,folded:!1},{from:O,to:c,folded:!0}]):i.push([{from:a,to:l,folded:!1}]);s=l+1,r.next()}return i}const Ds=it.define({create:t=>$_(t),update:(t,e)=>oh([e])||e.docChanged?$_(e.state):t});function oh(t){return t.find(e=>e.effects.find(i=>i.is(Na)||i.is(Fs)))}class r3 extends Bm{constructor(e){super(e),this.count=void 0}shouldUpdate(e){if(!e.state.facet(_t).enabled)return!1;if(e.docChanged)return!0;for(const i of e.transactions)for(const r of i.effects)if(r.is(bm))return!0;return!!(oh(e.transactions)||this.count===void 0)}update(e){if(!this.shouldUpdate(e))return;this.map.clear();const i=e.state.field(Ds);this.count=rZ(e.state),mZ(e.state,(r,n,s)=>{const o=this.findLine(n,i),a=this.findLine(s,i);let l=r.severity;for(let O=o;O<=a;O++){const c=this.get(O);c&&(l=[l,c].sort(this.sort.bind(this)).slice(0,1)[0]),this.set(O,l)}})}drawLine(e,i){const{context:r,lineHeight:n,offsetX:s,offsetY:o}=e,a=this.get(i);a&&(r.globalAlpha=.65,r.beginPath(),r.rect(s,o,r.canvas.width-s,n),r.fillStyle=this.color(a),r.fill())}findLine(e,i){return i.findIndex(n=>{const s=n.slice(0,1)[0],o=n.slice(-1)[0];return!s||!o?!1:s.from<=e&&e<=o.to})+1}color(e){return e==="error"?"#d11":e==="warning"?"orange":"#999"}sort(e,i){return this.score(i)-this.score(e)}score(e){switch(e){case"error":return 3;case"warning":return 2;default:return 1}}}function n3(t){return new r3(t)}class s3 extends Bm{constructor(e){super(e),this.getDrawInfo(),this._themeClasses=e.dom.classList.value}shouldUpdate(e){return e.state.facet(_t).enabled?!!(e.docChanged||e.selectionSet||this._themeClasses!==this.view.dom.classList.value||oh(e.transactions)):!1}update(e){if(!this.shouldUpdate(e))return;this.map.clear(),this._themeClasses!==this.view.dom.classList.value&&(this._drawInfo=void 0,this._themeClasses=this.view.dom.classList.value);const{ranges:i}=e.state.selection;let r=0;for(const[n,s]of e.state.field(Ds).entries()){const o=[];let a=0;for(const O of s){do{if(r>=i.length||O.to<i[r].from)continue;if(i[r].from===i[r].to){r++;continue}const c=i[r],h={from:a+Math.max(O.from,c.from)-O.from,to:a+Math.min(O.to,c.to)-O.from,extends:c.to>O.to},u=o.slice(-1)[0];if(u&&u.to===h.from){let{to:m}=h;O.folded&&h.extends?m=h.from+1:O.folded&&!h.extends&&(m=u.to),o[o.length-1]=Object.assign(Object.assign({},u),{to:m,extends:h.extends})}else O.folded||o.push(h);if(h.extends)break;r++}while(r<i.length&&O.to>=i[r].from);a+=O.folded?1:O.to-O.from}if(o.length===0)continue;const l=n+1;this.map.set(l,o)}}drawLine(e,i){let{context:r,lineHeight:n,charWidth:s,offsetX:o,offsetY:a}=e;const l=this.get(i);if(l)for(const O of l){const c=o+O.from*s,h=(O.to-O.from)*s,u=r.canvas.width-c;O.extends&&(r.globalAlpha=.65,r.beginPath(),r.rect(c,a,u,n),r.fillStyle=this.getDrawInfo().backgroundColor,r.fill()),r.globalAlpha=1,r.beginPath(),r.rect(c,a,h,n),r.fillStyle=this.getDrawInfo().backgroundColor,r.fill()}}getDrawInfo(){if(this._drawInfo)return this._drawInfo;const e=document.createElement("span");e.setAttribute("class","cm-selectionBackground"),this.view.dom.appendChild(e);const r={backgroundColor:window.getComputedStyle(e).backgroundColor};return this._drawInfo=r,this.view.dom.removeChild(e),r}}function o3(t){return new s3(t)}class a3 extends Bm{constructor(e){super(e),this._fontInfoMap=new Map,this._themeClasses=new Set(e.dom.classList.values()),e.state.facet(_t).enabled&&this.updateImpl(e.state)}shouldUpdate(e){return!!(e.docChanged||e.state.facet(_t)!==e.startState.facet(_t)||this.themeChanged()||oh(e.transactions))}update(e){this.shouldUpdate(e)&&(this._highlightingCallbackId&&(typeof window.requestIdleCallback<"u"?cancelIdleCallback(this._highlightingCallbackId):clearTimeout(this._highlightingCallbackId)),this.updateImpl(e.state,e.changes))}updateImpl(e,i){var r;this.map.clear(),this._displayText=e.facet(_t).displayText,this.themeChanged()&&this._fontInfoMap.clear();let n;if(this._previousTree&&i){const h=Pi.addTree(this._previousTree),u=[];i.iterChangedRanges((m,S,Q,g)=>u.push({fromA:m,toA:S,fromB:Q,toB:g})),n=Pi.applyChanges(h,u)}const s=e.doc.toString(),o=(r=e.facet(Sr))===null||r===void 0?void 0:r.parser,a=o?o.parse(s,n):void 0;this._previousTree=a;const l={style:h=>iC(e,h)};let O=[];if(a){const h=e.doc.lineAt(this.view.viewport.from).number,u=e.doc.lineAt(this.view.viewport.to).number,m=u-h,S=h/(e.doc.lines-m),{SizeRatio:Q,PixelMultiplier:g}=Bt,d=m*Q*g,f=S*d,p=Math.max(1,Math.floor(h-f)),$=Math.min(u+Math.floor(d-f),e.doc.lines);fd(a,l,(v,P,w)=>{O.push({from:v,to:P,tags:w})},e.doc.line(p).from,e.doc.line($).to)}this.updateMapImpl(e,O),O=[];const c=()=>{a&&(fd(a,l,(h,u,m)=>{O.push({from:h,to:u,tags:m})}),this.updateMapImpl(e,O),this._highlightingCallbackId=void 0)};this._highlightingCallbackId=typeof window.requestIdleCallback<"u"?requestIdleCallback(c):setTimeout(c)}updateMapImpl(e,i){this.map.clear();const r=e.doc.toString(),n=i.values();let s=n.next();for(const[o,a]of e.field(Ds).entries()){const l=[];for(const c of a){if(c.from===c.to)continue;if(c.folded){l.push({text:"…",tags:""});continue}let h=c.from;for(;!s.done&&s.value.from<c.to;){const{from:u,to:m,tags:S}=s.value;if(m<h){s=n.next();continue}u>h&&l.push({text:r.slice(h,u),tags:""});const Q=Math.max(u,c.from),g=Math.min(m,c.to);if(l.push({text:r.slice(Q,g),tags:S}),h=g,m>g)break;s=n.next()}h!==c.to&&l.push({text:r.slice(h,c.to),tags:""})}const O=o+1;this.map.set(O,l)}}measure(e){const{color:i,font:r,lineHeight:n}=this.getFontInfo("");return e.textBaseline="ideographic",e.fillStyle=i,e.font=r,{charWidth:e.measureText("_").width,lineHeight:n}}beforeDraw(){this._fontInfoMap.clear()}drawLine(e,i){const r=this.get(i);if(!r)return;let{context:n,charWidth:s,lineHeight:o,offsetX:a,offsetY:l}=e,O;n.textBaseline="ideographic";for(const c of r){const h=this.getFontInfo(c.tags);switch((!O||O.color!==h.color)&&(n.fillStyle=h.color),(!O||O.font!==h.font)&&(n.font=h.font),O=h,o=Math.max(o,h.lineHeight),this._displayText){case"characters":{n.fillText(c.text,a,l+o),a+=c.text.length*s;break}case"blocks":{const u=/\S+/g;let m;for(;(m=u.exec(c.text))!==null;){const S=a+m.index*s;let Q=(u.lastIndex-m.index)*s;if(S>n.canvas.width)break;S+Q>n.canvas.width&&(Q=n.canvas.width-S);const g=2/Bt.SizeRatio,d=o-g;n.fillStyle=h.color,n.globalAlpha=.65,n.beginPath(),n.rect(S,l,Q,d),n.fill()}a+=c.text.length*s;break}}}}getFontInfo(e){const i=this._fontInfoMap.get(e);if(i)return i;const r=$e("span",{class:e}),n=$e("div",{class:"cm-line",style:"display: none"},r);this.view.contentDOM.appendChild(n);const s=window.getComputedStyle(r),o=parseFloat(s.lineHeight)/Bt.SizeRatio,a={color:s.color,font:`${s.fontStyle} ${s.fontWeight} ${o}px ${s.fontFamily}`,lineHeight:o};return this._fontInfoMap.set(e,a),this.view.contentDOM.removeChild(n),a}themeChanged(){const e=this._themeClasses,i=new Set(this.view.dom.classList.values());if(this._themeClasses=i,!e||(e.delete("cm-focused"),i.delete("cm-focused"),e.size!==i.size))return!0;let r=!0;return e.forEach(n=>{i.has(n)||(r=!1)}),!r}}function l3(t){return new a3(t)}const mX=4;function O3(t,e,i){const r=t[i];r&&(e.context.fillStyle=r,e.context.globalAlpha=1,e.context.beginPath(),e.context.rect(e.offsetX,e.offsetY,mX,e.lineHeight),e.context.fill())}const c3=H.theme({"&":{height:"100%",overflowY:"auto"},"& .cm-minimap-gutter":{borderRight:0,flexShrink:0,left:"unset",position:"sticky",right:0,top:0},"& .cm-minimap-inner":{height:"100%",position:"absolute",right:0,top:0,overflowY:"hidden","& canvas":{display:"block"}},"& .cm-minimap-box-shadow":{boxShadow:"12px 0px 20px 5px #6c6c6c"}}),__=6,h3=We.fromClass(class{constructor(t){this.view=t,this.text=l3(t),this.selection=o3(t),this.diagnostic=n3(t),t.state.facet(Co)&&this.create(t)}create(t){const e=t.state.facet(Co);if(!e)throw Error("Expected nonnull");this.inner=$e("div",{class:"cm-minimap-inner"}),this.canvas=$e("canvas"),this.dom=e.create(t).dom,this.dom.classList.add("cm-gutters"),this.dom.classList.add("cm-minimap-gutter"),this.inner.appendChild(this.canvas),this.dom.appendChild(this.inner),this.view.scrollDOM.insertBefore(this.dom,this.view.contentDOM.nextSibling);for(const i in this.view.state.facet(_t).eventHandlers){const r=this.view.state.facet(_t).eventHandlers[i];r&&this.dom.addEventListener(i,n=>r(n,this.view))}}remove(){this.dom&&this.dom.remove()}update(t){const e=t.startState.facet(Co),i=t.state.facet(Co);if(e&&!i){this.remove();return}!e&&i&&this.create(t.view),i&&(this.text.update(t),this.selection.update(t),this.diagnostic.update(t),this.render())}getWidth(){const t=this.view.dom.clientWidth;if(t<=Bt.MaxWidth*__){const e=t/(Bt.MaxWidth*__);return Bt.MaxWidth*e}return Bt.MaxWidth}render(){if(!this.dom||!this.canvas||!this.inner)return;this.text.beforeDraw(),this.updateBoxShadow(),this.dom.style.width=this.getWidth()+"px",this.canvas.style.maxWidth=this.getWidth()+"px",this.canvas.width=this.getWidth()*Bt.PixelMultiplier;const t=this.view.dom.getBoundingClientRect().height;this.inner.style.minHeight=t+"px",this.canvas.height=t*Bt.PixelMultiplier,this.canvas.style.height=t+"px";const e=this.canvas.getContext("2d");if(!e)return;e.clearRect(0,0,this.canvas.width,this.canvas.height);const{charWidth:i,lineHeight:r}=this.text.measure(e);let{startIndex:n,endIndex:s,offsetY:o}=this.canvasStartAndEndIndex(e,r);const a=this.view.state.facet(_t).gutters;for(let l=n;l<s;l++){const O=this.view.state.field(Ds);if(l>=O.length)break;const c={offsetX:0,offsetY:o,context:e,lineHeight:r,charWidth:i};if(a.length){c.offsetX+=2;for(let h of a)O3(h,c,l+1),c.offsetX+=mX;c.offsetX+=2}this.text.drawLine(c,l+1),this.selection.drawLine(c,l+1),this.diagnostic.drawLine(c,l+1),o+=r}e.restore()}canvasStartAndEndIndex(t,e){let{top:i,bottom:r}=this.view.documentPadding;i/=Bt.SizeRatio,r/=Bt.SizeRatio;const n=t.canvas.height,{clientHeight:s,scrollHeight:o,scrollTop:a}=this.view.scrollDOM;let l=a/(o-s);isNaN(l)&&(l=0);const O=this.view.state.field(Ds).length,c=i+r+O*e,h=Math.max(0,l*(c-n)),u=Math.max(0,i-h),m=Math.round(Math.max(0,h-i)/e),S=Math.round((n-u)/e);return{startIndex:m,endIndex:m+S,offsetY:u}}updateBoxShadow(){if(!this.canvas)return;const{clientWidth:t,scrollWidth:e,scrollLeft:i}=this.view.scrollDOM;t+i<e?this.canvas.classList.add("cm-minimap-box-shadow"):this.canvas.classList.remove("cm-minimap-box-shadow")}destroy(){this.remove()}},{eventHandlers:{scroll(){requestAnimationFrame(()=>this.render())}},provide:t=>H.scrollMargins.of(e=>{var i;const r=(i=e.plugin(t))===null||i===void 0?void 0:i.getWidth();return r?{right:r}:null})}),Co=te.define({combine:t=>{var e;return(e=t.find(i=>i!==null))!==null&&e!==void 0?e:null},enables:t=>[[_t.compute([t],e=>e.facet(t)),c3,Ds,h3,i3]]}),v_={js:fn,jsx:fn,ts:fn,tsx:fn,mjs:fn,cjs:fn,py:g$,pyw:g$,java:NU,c:Ln,cpp:Ln,cc:Ln,cxx:Ln,h:Ln,hpp:Ln,go:mq,rs:qz,json:$q,yml:Y$,yaml:Y$,md:c_,markdown:c_,css:To,scss:To,sass:To,less:To,sql:K4,html:Ro,htm:Ro,svg:Ro,xml:Ro};function u3(t){var i;const e=(i=t==null?void 0:t.split(".").pop())==null?void 0:i.toLowerCase();return v_[e]?[v_[e]()]:[]}const f3=le.line({class:"cm-diff-added-line",attributes:{"data-diff-type":"added"}}),d3=le.line({class:"cm-diff-removed-line",attributes:{"data-diff-type":"removed"}}),p3=le.mark({class:"cm-diff-added-mark"}),m3=le.mark({class:"cm-diff-removed-mark"});function g3(t){return We.fromClass(class{constructor(e){rl(this,"decorations");this.decorations=this.buildDecorations(e,t)}update(e){(e.docChanged||e.viewportChanged)&&(this.decorations=this.buildDecorations(e.view,t))}buildDecorations(e,i){if(!i||i.length===0)return le.none;const r=new Hi,n=e.state.doc;for(let s=1;s<=n.lines;s++){const o=n.line(s),a=i[s-1];a&&(a.added?(r.add(o.from,o.from,f3),o.length>0&&r.add(o.from,o.from+1,p3)):a.removed&&(r.add(o.from,o.from,d3),o.length>0&&r.add(o.from,o.from+1,m3)))}return r.finish()}},{decorations:e=>e.decorations})}const Q3=H.theme({"&":{backgroundColor:"#000000",color:"#e0e0e0",height:"100%"},".cm-gutters":{backgroundColor:"#0a0a0a",color:"#6b7280",border:"none",borderRight:"1px solid #1f1f1f"},".cm-activeLineGutter":{backgroundColor:"#1a1a1a"},".cm-activeLine":{backgroundColor:"rgba(255, 255, 255, 0.05)"},".cm-cursor":{borderLeftColor:"#22c55e"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground":{backgroundColor:"rgba(34, 197, 94, 0.2)"},".cm-scroller":{fontFamily:"'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, monospace",fontSize:"13px",lineHeight:"1.6",overflow:"auto"},".cm-content":{minHeight:"100%"},".cm-minimap-gutter":{background:"#0a0a0a",borderLeft:"1px solid #1f1f1f"},".cm-minimap-overlay-container":{cursor:"pointer"},".cm-minimap-overlay":{border:"1px solid rgba(34, 197, 94, 0.6)",background:"rgba(34, 197, 94, 0.2)",borderRadius:"2px",cursor:"grab",transition:"background 0.15s ease"},".cm-minimap-overlay:hover":{border:"1px solid rgba(34, 197, 94, 0.9)",background:"rgba(34, 197, 94, 0.35)"},".cm-minimap-overlay-container.cm-minimap-overlay-active .cm-minimap-overlay":{border:"1px solid rgba(34, 197, 94, 1)",background:"rgba(34, 197, 94, 0.4)",cursor:"grabbing"},".cm-diff-added-line":{backgroundColor:"rgba(34, 197, 94, 0.15)"},".cm-diff-added-mark":{color:"#4ade80",fontWeight:"bold"},".cm-diff-removed-line":{backgroundColor:"rgba(239, 68, 68, 0.15)"},".cm-diff-removed-mark":{color:"#f87171",fontWeight:"bold"}},{dark:!0}),S3=Hs.define([{tag:y.keyword,color:"#ff7b72"},{tag:[y.name,y.deleted,y.character,y.propertyName,y.macroName],color:"#ffa657"},{tag:[y.function(y.variableName),y.labelName],color:"#d2a8ff"},{tag:[y.color,y.constant(y.name),y.standard(y.name)],color:"#79c0ff"},{tag:[y.definition(y.name),y.separator],color:"#e0e0e0"},{tag:[y.typeName,y.className,y.number,y.changed,y.annotation,y.modifier,y.self,y.namespace],color:"#ffa657"},{tag:[y.operator,y.operatorKeyword,y.url,y.escape,y.regexp,y.link,y.special(y.string)],color:"#79c0ff"},{tag:[y.meta,y.comment],color:"#6b7280",fontStyle:"italic"},{tag:y.strong,fontWeight:"bold"},{tag:y.emphasis,fontStyle:"italic"},{tag:y.link,color:"#79c0ff",textDecoration:"underline"},{tag:y.heading,fontWeight:"bold",color:"#ffa657"},{tag:[y.atom,y.bool,y.special(y.variableName)],color:"#79c0ff"},{tag:[y.processingInstruction,y.string,y.inserted],color:"#a5d6ff"},{tag:y.invalid,color:"#f85149"}]),$3=hm(S3);function _3({content:t,diff:e,isDiff:i,filePath:r,onChange:n}){const s=he.useRef(null),o=he.useMemo(()=>{const c=[...u3(r),$3,H.lineWrapping,Co.compute(["doc"],h=>({create:u=>({dom:document.createElement("div")}),displayText:"characters",showOverlay:"always"}))];return i&&e&&e.length>0&&c.push(g3(e)),c},[r,i,e]),a=he.useMemo(()=>i&&e?e.map(c=>c.added?"+"+c.content:c.removed?"-"+c.content:" "+c.content).join(`
|
|
88
|
-
`):t||"",[t,e,i]),l=!i;function O(c){n&&l&&n(c)}return L.jsx("div",{className:"code-viewer-codemirror",children:L.jsx(Zy,{value:a,height:"100%",theme:Q3,extensions:o,editable:l,onChange:O,basicSetup:{lineNumbers:!0,foldGutter:!1,highlightActiveLine:!0,highlightSelectionMatches:!1,bracketMatching:!0},onCreateEditor:c=>{s.current=c}})})}function v3(){const[t,e]=he.useState([]),[i,r]=he.useState([]),[n,s]=he.useState(null),[o,a]=he.useState("disconnected"),[l,O]=he.useState(null),[c,h]=he.useState(null),[u,m]=he.useState(null),[S,Q]=he.useState(!1),[g,d]=he.useState(""),[f,p]=he.useState(!1),[$,v]=he.useState({isRepo:!1,branch:null,status:null,stagedCount:0,unstagedCount:0}),[P,w]=he.useState(!1),_=he.useRef(null);he.useEffect(()=>(X(),Z(),document.addEventListener("click",T),document.addEventListener("keydown",C),()=>{document.removeEventListener("click",T),document.removeEventListener("keydown",C),_.current&&_.current.close()}),[]);async function X(){try{const q=window.location.port==="5173"?"5174":window.location.port,J=window.location.protocol==="https:"?"https:":"http:",Oe=await fetch(`${J}//${window.location.hostname}:${q}/api/status`);if(Oe.ok){const oe=await Oe.json();if(h(oe.version),m(oe.latestVersion),Q(oe.hasUpdate),oe.projectRoot){const ue=oe.projectRoot.split(/[/\\]/);d(ue[ue.length-1]||oe.projectRoot)}}}catch(q){console.error("Failed to fetch status:",q)}}function T(){O(null)}function C(q){if(n){if(q.ctrlKey&&q.key==="w")q.preventDefault(),B(n);else if(q.ctrlKey&&q.key==="Tab")q.preventDefault(),q.shiftKey?G():k();else if(q.ctrlKey&&q.key==="s"){q.preventDefault();const J=i.find(Oe=>Oe.id===n);J&&J.modified&&Y(n)}}}function Z(){const q=window.location.protocol==="https:"?"wss:":"ws:",J=window.location.hostname,Oe=window.location.port==="5173"?"5174":window.location.port,oe=`${q}//${J}:${Oe}/ws`,ue=new WebSocket(oe);ue.onopen=()=>{console.log("Connected to Codex Lens"),a("connected")},ue.onclose=()=>{console.log("Disconnected from Codex Lens"),a("disconnected"),setTimeout(Z,3e3)},ue.onerror=re=>{console.error("WebSocket error:",re)},ue.onmessage=re=>{try{const Ce=JSON.parse(re.data);R(Ce)}catch(Ce){console.error("Failed to parse message:",Ce)}},_.current=ue}function R(q){switch(q.type){case"file_change":x(q.data);break;case"file_tree":e(q.data);break;case"file_content":E(q.data);break;case"git_status":v({isRepo:q.data.isRepo,branch:q.data.branch,status:q.data.status,stagedCount:q.data.stagedCount,unstagedCount:q.data.unstagedCount});break;case"connected":console.log("Server confirmed connection");break;default:console.log("Unknown message type:",q.type)}}function z(q,J){var Oe;((Oe=_.current)==null?void 0:Oe.readyState)===WebSocket.OPEN&&_.current.send(JSON.stringify({type:q,...J}))}function V(q){z("git_stage",{filePath:q})}function M(q){z("git_unstage",{filePath:q})}function I(q){z("git_commit",{message:q})}function E(q){const J=q.path.split(/[/\\]/).pop();r(Oe=>{const oe=Oe.find(ue=>ue.path===q.path);if(oe)return s(oe.id),Oe;{const ue={id:Date.now().toString(),path:q.path,name:J,content:q.content,originalContent:q.content,diff:q.diff||null,isDiff:!!q.diff,modified:!1};return s(ue.id),[...Oe,ue]}})}function x(q){const J=q.path.split(/[/\\]/).pop();r(Oe=>{const oe=Oe.find(ue=>ue.path===q.path);if(oe){const ue={...oe,content:q.newContent,originalContent:q.newContent,diff:q.diff,isDiff:!0,modified:!1};return s(oe.id),Oe.map(re=>re.path===q.path?ue:re)}else{const ue={id:Date.now().toString(),path:q.path,name:J,content:q.newContent,originalContent:q.newContent,diff:q.diff,isDiff:!0,modified:!1};return s(ue.id),[...Oe,ue]}})}function b(q,J){r(Oe=>Oe.map(oe=>{if(oe.id===q){const ue=J!==oe.originalContent;return{...oe,content:J,modified:ue}}return oe}))}async function Y(q){const J=i.find(Oe=>Oe.id===q);if(!(!J||!J.modified)){p(!0);try{const Oe=window.location.port==="5173"?"5174":window.location.port,oe=window.location.protocol==="https:"?"https:":"http:",ue=await fetch(`${oe}//${window.location.hostname}:${Oe}/api/save-file`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:J.path,content:J.content})});if(ue.ok)r(re=>re.map(Ce=>Ce.id===q?{...Ce,originalContent:Ce.content,modified:!1}:Ce)),console.log("File saved:",J.path);else{const re=await ue.json();console.error("Failed to save file:",re.message),alert("保存失败: "+re.message)}}catch(Oe){console.error("Failed to save file:",Oe),alert("保存失败: "+Oe.message)}finally{p(!1)}}}async function W(){const q=i.filter(re=>re.modified);if(q.length===0)return;p(!0);const J=window.location.port==="5173"?"5174":window.location.port,Oe=window.location.protocol==="https:"?"https:":"http:";let oe=0,ue=[];for(const re of q)try{const Ce=await fetch(`${Oe}//${window.location.hostname}:${J}/api/save-file`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:re.path,content:re.content})});if(Ce.ok)oe++;else{const to=await Ce.json();ue.push(re.name),console.error("Failed to save file:",re.name,to.message)}}catch(Ce){ue.push(re.name),console.error("Failed to save file:",re.name,Ce)}oe>0&&r(re=>re.map(Ce=>Ce.modified&&!ue.includes(Ce.name)?{...Ce,originalContent:Ce.content,modified:!1}:Ce)),ue.length>0&&alert(`以下文件保存失败: ${ue.join(", ")}`),p(!1)}function D(q){var Oe;const J=i.find(oe=>oe.path===q);if(J){s(J.id);return}((Oe=_.current)==null?void 0:Oe.readyState)===WebSocket.OPEN&&_.current.send(JSON.stringify({type:"open_file",data:q}))}function B(q){const J=i.find(Oe=>Oe.id===q);J!=null&&J.modified&&window.confirm(`文件 "${J.name}" 已修改,是否保存?`)&&Y(q),r(Oe=>{const oe=Oe.filter(ue=>ue.id!==q);if(n===q){const ue=oe.length>0?oe[oe.length-1].id:null;s(ue)}return oe})}function se(q){r(J=>(J.filter(oe=>oe.id!==q).forEach(oe=>{oe.modified&&window.confirm(`文件 "${oe.name}" 已修改,是否保存?`)&&Y(oe.id)}),J.filter(oe=>oe.id===q))),s(q)}function ae(){i.forEach(q=>{q.modified&&window.confirm(`文件 "${q.name}" 已修改,是否保存?`)&&Y(q.id)}),r([]),s(null)}function U(){r(q=>q.map(J=>({...J,diff:null,isDiff:!1})))}function k(){const q=i.findIndex(J=>J.id===n);q<i.length-1?s(i[q+1].id):i.length>0&&s(i[0].id)}function G(){const q=i.findIndex(J=>J.id===n);q>0?s(i[q-1].id):i.length>0&&s(i[i.length-1].id)}function j(q,J){q.preventDefault(),O({x:q.clientX,y:q.clientY,tabId:J})}const K=i.find(q=>q.id===n);return L.jsxs("div",{className:"app-container",children:[L.jsxs("div",{className:"top-bar",children:[L.jsx("div",{className:"top-bar-left",children:L.jsxs("span",{className:"top-bar-title",children:["当前工作区: ",g]})}),L.jsxs("div",{className:"top-bar-center",children:[$.isRepo&&L.jsxs("div",{className:"git-status-bar",children:[L.jsxs("span",{className:"git-branch",children:[L.jsx("span",{className:"git-branch-icon",children:"⎇"}),$.branch||"main"]}),L.jsxs("div",{className:"git-stats",children:[L.jsxs("span",{className:"git-staged",title:"已暂存",children:[L.jsx("span",{className:"git-staged-count",children:$.stagedCount}),L.jsx("span",{className:"git-staged-label",children:"已暂存"})]}),L.jsxs("span",{className:"git-unstaged",title:"未暂存",children:[L.jsx("span",{className:"git-unstaged-count",children:$.unstagedCount}),L.jsx("span",{className:"git-unstaged-label",children:"未暂存"})]})]}),L.jsx("button",{className:"git-changes-btn",onClick:()=>w(!P),children:P?"隐藏变更":"查看变更"})]}),L.jsx("button",{className:"task-btn task-btn-clear",onClick:U,title:"清空所有 diff 显示",children:"清空 diff"})]}),L.jsxs("div",{className:"top-bar-right",children:[L.jsx("span",{className:"top-bar-title",children:"Codex 终端"}),L.jsx("span",{className:`ws-status ${o}`}),L.jsxs("span",{className:"version-info",children:[c&&L.jsxs("span",{className:"version-number",children:["v",c]}),S&&u&&L.jsx("span",{className:"update-badge",title:`可用版本: ${u}`,children:"更新可用"})]})]})]}),L.jsxs("div",{className:"main-content",children:[L.jsx(X3,{files:t,activeFile:(K==null?void 0:K.path)||null,onFileClick:D,gitInfo:$}),L.jsxs("div",{className:"panel middle-panel",children:[L.jsx(P3,{tabs:i,activeTabId:n,onTabClick:s,onTabClose:B,onContextMenu:j}),L.jsx("div",{className:"panel-content code-panel",children:K?L.jsx(_3,{content:K.content,diff:K.diff,isDiff:K.isDiff,filePath:K.path,onChange:q=>b(n,q)}):L.jsx("div",{className:"empty-state",children:"双击左侧文件查看内容..."})})]}),l&&L.jsx(y3,{x:l.x,y:l.y,tab:i.find(q=>q.id===l.tabId),tabs:i,saving:f,onClose:()=>O(null),onCloseTab:()=>{B(l.tabId),O(null)},onCloseOtherTabs:()=>{se(l.tabId),O(null)},onCloseAllTabs:()=>{ae(),O(null)},onSave:()=>{Y(l.tabId),O(null)},onSaveAll:()=>{W(),O(null)}}),P&&$.isRepo&&L.jsx(w3,{gitInfo:$,onStage:V,onUnstage:M,onCommit:I,onClose:()=>w(!1)}),L.jsx("div",{className:"panel right-panel",children:L.jsx("div",{className:"terminal-wrapper",children:L.jsx(Kb,{})})})]})]})}function P3({tabs:t,activeTabId:e,onTabClick:i,onTabClose:r,onContextMenu:n}){return L.jsx("div",{className:"tab-bar",children:t.map(s=>L.jsxs("div",{className:`tab ${e===s.id?"active":""} ${s.modified?"modified":""}`,onClick:()=>i(s.id),onContextMenu:o=>n(o,s.id),children:[L.jsxs("span",{className:"tab-name",children:[s.modified&&L.jsx("span",{className:"tab-modified-mark",children:"●"}),s.name]}),L.jsx("button",{className:"tab-close",onClick:o=>{o.stopPropagation(),r(s.id)},children:"×"})]},s.id))})}function y3({x:t,y:e,tab:i,tabs:r,saving:n,onClose:s,onCloseTab:o,onCloseOtherTabs:a,onCloseAllTabs:l,onSave:O,onSaveAll:c}){const h=r==null?void 0:r.some(u=>u.modified);return L.jsxs("div",{className:"context-menu",style:{left:t,top:e},onClick:u=>u.stopPropagation(),children:[(i==null?void 0:i.modified)&&L.jsx("div",{className:"context-menu-item",onClick:O,style:{color:"#4ade80"},children:n?"保存中...":"保存"}),h&&L.jsx("div",{className:"context-menu-item",onClick:c,style:{color:"#4ade80"},children:n?"保存中...":"全部保存"}),L.jsx("div",{className:"context-menu-item",onClick:o,children:"关闭"}),L.jsx("div",{className:"context-menu-item",onClick:a,children:"关闭其他"}),L.jsx("div",{className:"context-menu-item",onClick:l,children:"关闭所有"})]})}function w3({gitInfo:t,onStage:e,onUnstage:i,onCommit:r,onClose:n}){if(!t.isRepo||!t.status)return null;const{staged:s,unstaged:o,untracked:a}=t.status;return L.jsxs("div",{className:"staged-changes-panel",children:[L.jsxs("div",{className:"staged-panel-header",children:[L.jsx("span",{children:"Git 变更"}),L.jsxs("div",{className:"staged-panel-actions",children:[L.jsx("button",{onClick:()=>e(null),className:"stage-btn",children:"Stage All"}),L.jsx("button",{onClick:()=>i(null),className:"unstage-btn",children:"Unstage All"}),L.jsx("button",{onClick:n,className:"close-btn",children:"×"})]})]}),(s==null?void 0:s.length)>0&&L.jsxs("div",{className:"changes-section",children:[L.jsx("div",{className:"changes-section-header",children:L.jsxs("span",{className:"changes-section-title",children:["已暂存 (",s.length,")"]})}),L.jsx("div",{className:"changes-list",children:s.map((l,O)=>L.jsxs("div",{className:"change-item staged",onClick:()=>i(l.path),children:[L.jsx("span",{className:"change-icon",children:"✓"}),L.jsx("span",{className:`change-status ${l.indexStatus}`,children:l.indexStatus}),L.jsx("span",{className:"change-path",children:l.path})]},O))})]}),(o==null?void 0:o.length)>0&&L.jsxs("div",{className:"changes-section",children:[L.jsx("div",{className:"changes-section-header",children:L.jsxs("span",{className:"changes-section-title",children:["未暂存修改 (",o.length,")"]})}),L.jsx("div",{className:"changes-list",children:o.map((l,O)=>L.jsxs("div",{className:"change-item",onClick:()=>e(l.path),children:[L.jsx("span",{className:"change-icon",children:"○"}),L.jsx("span",{className:`change-status ${l.workTreeStatus}`,children:l.workTreeStatus}),L.jsx("span",{className:"change-path",children:l.path})]},O))})]}),(a==null?void 0:a.length)>0&&L.jsxs("div",{className:"changes-section",children:[L.jsx("div",{className:"changes-section-header",children:L.jsxs("span",{className:"changes-section-title",children:["未跟踪 (",a.length,")"]})}),L.jsx("div",{className:"changes-list",children:a.map((l,O)=>L.jsxs("div",{className:"change-item untracked",onClick:()=>e(l.path),children:[L.jsx("span",{className:"change-icon",children:"?"}),L.jsx("span",{className:"change-status",children:"?"}),L.jsx("span",{className:"change-path",children:l.path})]},O))})]}),!(s!=null&&s.length)&&!(o!=null&&o.length)&&!(a!=null&&a.length)&&L.jsx("div",{className:"no-changes",children:"无变更"}),(s==null?void 0:s.length)>0&&L.jsxs("div",{className:"commit-section",children:[L.jsx("input",{type:"text",className:"commit-input",placeholder:"提交信息...",id:"commit-message"}),L.jsx("button",{className:"commit-btn",onClick:()=>{var O;const l=(O=document.getElementById("commit-message"))==null?void 0:O.value;l&&r(l)},children:"Commit"})]})]})}function X3({files:t,activeFile:e,onFileClick:i,gitInfo:r}){const[n,s]=he.useState({}),[o,a]=he.useState(null);function l(m){s(S=>({...S,[m]:!S[m]}))}function O(m,S){m.preventDefault(),m.stopPropagation(),a({x:m.clientX,y:m.clientY,item:S})}function c(){var m;(m=o==null?void 0:o.item)!=null&&m.path&&navigator.clipboard.writeText(o.item.path).then(()=>{console.log("Path copied:",o.item.path)}).catch(S=>{console.error("Failed to copy path:",S)}),a(null)}function h(){var m;(m=o==null?void 0:o.item)!=null&&m.path&&fetch("/api/open-in-explorer",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:o.item.path})}).catch(S=>{console.error("Failed to open in explorer:",S)}),a(null)}function u(m,S=0){return m.map((Q,g)=>{var v,P,w;const d=Q.type==="directory",f=n[Q.path],p=8+S*16;let $=null;return!d&&r.status&&($=((v=r.status.staged)==null?void 0:v.find(_=>_.path===Q.path))||((P=r.status.unstaged)==null?void 0:P.find(_=>_.path===Q.path))||((w=r.status.untracked)==null?void 0:w.find(_=>_.path===Q.path))),L.jsxs(UX.Fragment,{children:[L.jsxs("div",{className:`file-item ${e===Q.path?"active":""}`,onClick:()=>d?l(Q.path):null,onDoubleClick:()=>!d&&i(Q.path),onContextMenu:_=>O(_,Q),style:{paddingLeft:`${p}px`},children:[$&&L.jsx("span",{className:`file-git-badge ${$.indexStatus!=="?"?"staged":"wt"}`,children:$.indexStatus!=="?"?$.indexStatus:$.workTreeStatus}),L.jsx("span",{className:"file-icon",children:d?f?"📂":"📁":x3(Q.type)}),L.jsx("span",{className:"file-name",children:Q.name})]}),d&&f&&Q.children&&u(Q.children,S+1)]},Q.path)})}return L.jsxs("div",{className:"panel left-panel",onClick:()=>a(null),children:[L.jsx("div",{className:"panel-content",children:L.jsx("div",{className:"section",children:t.length===0?L.jsx("div",{className:"empty-state",children:"等待文件变化..."}):u(t)})}),o&&L.jsxs("div",{className:"file-context-menu",style:{left:o.x,top:o.y},onClick:m=>m.stopPropagation(),children:[L.jsx("div",{className:"context-menu-item",onClick:c,children:"复制文件路径"}),L.jsx("div",{className:"context-menu-item",onClick:h,children:"在文件资源管理器中打开"})]})]})}function x3(t){const e={".js":"📜",".jsx":"⚛️",".ts":"📘",".tsx":"⚛️",".py":"🐍",".json":"📋",".css":"🎨",".html":"🌐",".md":"📝",".txt":"📄",".yml":"⚙️",".yaml":"⚙️",".toml":"⚙️",".ini":"⚙️",".env":"🔐",".gitignore":"🙈",".dockerignore":"🐳",default:"📄"};return e[t]||e.default}class b3 extends he.Component{render(){const{error:e,onReload:i,onReset:r}=this.props;return L.jsx("div",{style:{height:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",background:"#1e1e1e",color:"#e0e0e0",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',padding:"20px"},children:L.jsxs("div",{style:{maxWidth:"600px",padding:"32px",background:"#252526",borderRadius:"8px",border:"1px solid #3c3c3c",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.4)",textAlign:"center"},children:[L.jsx("div",{style:{fontSize:"48px",marginBottom:"16px"},children:L.jsx("span",{style:{color:"#f85149"},children:"!"})}),L.jsx("h1",{style:{fontSize:"24px",fontWeight:600,marginBottom:"8px",color:"#ffffff"},children:"应用程序出错"}),L.jsx("p",{style:{fontSize:"14px",color:"#858585",marginBottom:"24px"},children:"抱歉,应用程序遇到了一个错误。请尝试刷新页面或重置应用状态。"}),e&&L.jsxs("details",{style:{marginBottom:"24px",padding:"12px",background:"#1e1e1e",borderRadius:"4px",textAlign:"left"},children:[L.jsx("summary",{style:{cursor:"pointer",fontSize:"13px",color:"#e0e0e0",fontWeight:500},children:"错误详情"}),L.jsxs("pre",{style:{marginTop:"12px",padding:"12px",background:"#0a0a0a",borderRadius:"4px",fontSize:"12px",color:"#f48771",overflow:"auto",maxHeight:"200px",fontFamily:'"SF Mono", Consolas, monospace'},children:[e.toString(),e.stack&&`
|
|
88
|
+
`):t||"",[t,e,i]),l=!i;function O(c){n&&l&&n(c)}return L.jsx("div",{className:"code-viewer-codemirror",children:L.jsx(Zy,{value:a,height:"100%",theme:Q3,extensions:o,editable:l,onChange:O,basicSetup:{lineNumbers:!0,foldGutter:!1,highlightActiveLine:!0,highlightSelectionMatches:!1,bracketMatching:!0},onCreateEditor:c=>{s.current=c}})})}function v3(){const[t,e]=he.useState([]),[i,r]=he.useState([]),[n,s]=he.useState(null),[o,a]=he.useState("disconnected"),[l,O]=he.useState(null),[c,h]=he.useState(null),[u,m]=he.useState(null),[S,Q]=he.useState(!1),[g,d]=he.useState(""),[f,p]=he.useState(!1),[$,v]=he.useState({isRepo:!1,branch:null,status:null,stagedCount:0,unstagedCount:0}),[P,w]=he.useState(!1),_=he.useRef(null);he.useEffect(()=>(X(),Z(),document.addEventListener("click",T),document.addEventListener("keydown",C),()=>{document.removeEventListener("click",T),document.removeEventListener("keydown",C),_.current&&_.current.close()}),[]);async function X(){try{const q=window.location.port==="5173"?"5174":window.location.port,J=window.location.protocol==="https:"?"https:":"http:",Oe=await fetch(`${J}//${window.location.hostname}:${q}/api/status`);if(Oe.ok){const oe=await Oe.json();if(h(oe.version),m(oe.latestVersion),Q(oe.hasUpdate),oe.projectRoot){const ue=oe.projectRoot.split(/[/\\]/);d(ue[ue.length-1]||oe.projectRoot)}}}catch(q){console.error("Failed to fetch status:",q)}}function T(){O(null)}function C(q){if(n){if(q.ctrlKey&&q.key==="w")q.preventDefault(),B(n);else if(q.ctrlKey&&q.key==="Tab")q.preventDefault(),q.shiftKey?G():k();else if(q.ctrlKey&&q.key==="s"){q.preventDefault();const J=i.find(Oe=>Oe.id===n);J&&J.modified&&Y(n)}}}function Z(){const q=window.location.protocol==="https:"?"wss:":"ws:",J=window.location.hostname,Oe=window.location.port==="5173"?"5174":window.location.port,oe=`${q}//${J}:${Oe}/ws`,ue=new WebSocket(oe);ue.onopen=()=>{console.log("Connected to Codex Lens"),a("connected")},ue.onclose=()=>{console.log("Disconnected from Codex Lens"),a("disconnected"),setTimeout(Z,3e3)},ue.onerror=re=>{console.error("WebSocket error:",re)},ue.onmessage=re=>{try{const Ce=JSON.parse(re.data);R(Ce)}catch(Ce){console.error("Failed to parse message:",Ce)}},_.current=ue}function R(q){switch(q.type){case"file_change":x(q.data);break;case"file_tree":e(q.data);break;case"file_content":E(q.data);break;case"git_status":v({isRepo:q.data.isRepo,branch:q.data.branch,status:q.data.status,stagedCount:q.data.stagedCount,unstagedCount:q.data.unstagedCount});break;case"connected":console.log("Server confirmed connection");break;default:console.log("Unknown message type:",q.type)}}function z(q,J){var Oe;((Oe=_.current)==null?void 0:Oe.readyState)===WebSocket.OPEN&&_.current.send(JSON.stringify({type:q,...J}))}function V(q){z("git_stage",{filePath:q})}function M(q){z("git_unstage",{filePath:q})}function I(q){z("git_commit",{message:q})}function E(q){const J=q.path.split(/[/\\]/).pop();r(Oe=>{const oe=Oe.find(ue=>ue.path===q.path);if(oe)return s(oe.id),Oe;{const ue={id:Date.now().toString(),path:q.path,name:J,content:q.content,originalContent:q.content,diff:q.diff||null,isDiff:!!q.diff,modified:!1};return s(ue.id),[...Oe,ue]}})}function x(q){const J=q.path.split(/[/\\]/).pop();r(Oe=>{const oe=Oe.find(ue=>ue.path===q.path);if(oe){const ue={...oe,content:q.newContent,originalContent:q.newContent,diff:q.diff,isDiff:!0,modified:!1};return s(oe.id),Oe.map(re=>re.path===q.path?ue:re)}else{const ue={id:Date.now().toString(),path:q.path,name:J,content:q.newContent,originalContent:q.newContent,diff:q.diff,isDiff:!0,modified:!1};return s(ue.id),[...Oe,ue]}})}function b(q,J){r(Oe=>Oe.map(oe=>{if(oe.id===q){const ue=J!==oe.originalContent;return{...oe,content:J,modified:ue}}return oe}))}async function Y(q){const J=i.find(Oe=>Oe.id===q);if(!(!J||!J.modified)){p(!0);try{const Oe=window.location.port==="5173"?"5174":window.location.port,oe=window.location.protocol==="https:"?"https:":"http:",ue=await fetch(`${oe}//${window.location.hostname}:${Oe}/api/save-file`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:J.path,content:J.content})});if(ue.ok)r(re=>re.map(Ce=>Ce.id===q?{...Ce,originalContent:Ce.content,modified:!1}:Ce)),console.log("File saved:",J.path);else{const re=await ue.json();console.error("Failed to save file:",re.message),alert("保存失败: "+re.message)}}catch(Oe){console.error("Failed to save file:",Oe),alert("保存失败: "+Oe.message)}finally{p(!1)}}}async function W(){const q=i.filter(re=>re.modified);if(q.length===0)return;p(!0);const J=window.location.port==="5173"?"5174":window.location.port,Oe=window.location.protocol==="https:"?"https:":"http:";let oe=0,ue=[];for(const re of q)try{const Ce=await fetch(`${Oe}//${window.location.hostname}:${J}/api/save-file`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:re.path,content:re.content})});if(Ce.ok)oe++;else{const to=await Ce.json();ue.push(re.name),console.error("Failed to save file:",re.name,to.message)}}catch(Ce){ue.push(re.name),console.error("Failed to save file:",re.name,Ce)}oe>0&&r(re=>re.map(Ce=>Ce.modified&&!ue.includes(Ce.name)?{...Ce,originalContent:Ce.content,modified:!1}:Ce)),ue.length>0&&alert(`以下文件保存失败: ${ue.join(", ")}`),p(!1)}function D(q){var Oe;const J=i.find(oe=>oe.path===q);if(J){s(J.id);return}((Oe=_.current)==null?void 0:Oe.readyState)===WebSocket.OPEN&&_.current.send(JSON.stringify({type:"open_file",data:q}))}function B(q){const J=i.find(Oe=>Oe.id===q);J!=null&&J.modified&&window.confirm(`文件 "${J.name}" 已修改,是否保存?`)&&Y(q),r(Oe=>{const oe=Oe.filter(ue=>ue.id!==q);if(n===q){const ue=oe.length>0?oe[oe.length-1].id:null;s(ue)}return oe})}function se(q){r(J=>(J.filter(oe=>oe.id!==q).forEach(oe=>{oe.modified&&window.confirm(`文件 "${oe.name}" 已修改,是否保存?`)&&Y(oe.id)}),J.filter(oe=>oe.id===q))),s(q)}function ae(){i.forEach(q=>{q.modified&&window.confirm(`文件 "${q.name}" 已修改,是否保存?`)&&Y(q.id)}),r([]),s(null)}function U(){r(q=>q.map(J=>({...J,diff:null,isDiff:!1})))}function k(){const q=i.findIndex(J=>J.id===n);q<i.length-1?s(i[q+1].id):i.length>0&&s(i[0].id)}function G(){const q=i.findIndex(J=>J.id===n);q>0?s(i[q-1].id):i.length>0&&s(i[i.length-1].id)}function j(q,J){q.preventDefault(),O({x:q.clientX,y:q.clientY,tabId:J})}const K=i.find(q=>q.id===n);return L.jsxs("div",{className:"app-container",children:[L.jsxs("div",{className:"top-bar",children:[L.jsx("div",{className:"top-bar-left",children:L.jsxs("span",{className:"top-bar-title",children:["当前工作区: ",g]})}),L.jsxs("div",{className:"top-bar-center",children:[$.isRepo&&L.jsxs("div",{className:"git-status-bar",children:[L.jsxs("span",{className:"git-branch",children:[L.jsx("span",{className:"git-branch-icon",children:"⎇"}),$.branch||"main"]}),L.jsxs("div",{className:"git-stats",children:[L.jsxs("span",{className:"git-staged",title:"已暂存",children:[L.jsx("span",{className:"git-staged-count",children:$.stagedCount}),L.jsx("span",{className:"git-staged-label",children:"已暂存"})]}),L.jsxs("span",{className:"git-unstaged",title:"未暂存",children:[L.jsx("span",{className:"git-unstaged-count",children:$.unstagedCount}),L.jsx("span",{className:"git-unstaged-label",children:"未暂存"})]})]}),L.jsx("button",{className:"git-changes-btn",onClick:()=>w(!P),children:P?"隐藏变更":"查看变更"})]}),L.jsx("button",{className:"task-btn task-btn-clear",onClick:U,title:"清空所有 diff 显示",children:"清空 diff"})]}),L.jsxs("div",{className:"top-bar-right",children:[L.jsx("span",{className:"top-bar-title",children:"Codex 终端"}),L.jsx("span",{className:`ws-status ${o}`}),L.jsxs("span",{className:"version-info",children:[c&&L.jsxs("span",{className:"version-number",children:["v",c]}),S&&u&&L.jsx("span",{className:"update-badge",title:`可用版本: ${u}`,children:"更新可用"})]})]})]}),L.jsxs("div",{className:"main-content",children:[L.jsx(X3,{files:t,activeFile:(K==null?void 0:K.path)||null,onFileClick:D,gitInfo:$}),L.jsxs("div",{className:"panel middle-panel",children:[L.jsx(P3,{tabs:i,activeTabId:n,onTabClick:s,onTabClose:B,onContextMenu:j}),L.jsx("div",{className:"panel-content code-panel",children:K?L.jsx(_3,{content:K.content,diff:K.diff,isDiff:K.isDiff,filePath:K.path,onChange:q=>b(n,q)}):L.jsx("div",{className:"empty-state",children:"双击左侧文件查看内容..."})})]}),l&&L.jsx(y3,{x:l.x,y:l.y,tab:i.find(q=>q.id===l.tabId),tabs:i,saving:f,onClose:()=>O(null),onCloseTab:()=>{B(l.tabId),O(null)},onCloseOtherTabs:()=>{se(l.tabId),O(null)},onCloseAllTabs:()=>{ae(),O(null)},onSave:()=>{Y(l.tabId),O(null)},onSaveAll:()=>{W(),O(null)}}),P&&$.isRepo&&L.jsx(w3,{gitInfo:$,onStage:V,onUnstage:M,onCommit:I,onClose:()=>w(!1)}),L.jsx("div",{className:"panel right-panel",children:L.jsx("div",{className:"terminal-wrapper",children:L.jsx(Kb,{})})})]})]})}function P3({tabs:t,activeTabId:e,onTabClick:i,onTabClose:r,onContextMenu:n}){return L.jsx("div",{className:"tab-bar",children:t.map(s=>L.jsxs("div",{className:`tab ${e===s.id?"active":""} ${s.modified?"modified":""}`,onClick:()=>i(s.id),onContextMenu:o=>n(o,s.id),children:[L.jsxs("span",{className:"tab-name",children:[s.modified&&L.jsx("span",{className:"tab-modified-mark",children:"●"}),s.name]}),L.jsx("button",{className:"tab-close",onClick:o=>{o.stopPropagation(),r(s.id)},children:"×"})]},s.id))})}function y3({x:t,y:e,tab:i,tabs:r,saving:n,onClose:s,onCloseTab:o,onCloseOtherTabs:a,onCloseAllTabs:l,onSave:O,onSaveAll:c}){const h=r==null?void 0:r.some(u=>u.modified);return L.jsxs("div",{className:"context-menu",style:{left:t,top:e},onClick:u=>u.stopPropagation(),children:[(i==null?void 0:i.modified)&&L.jsx("div",{className:"context-menu-item",onClick:O,style:{color:"#4ade80"},children:n?"保存中...":"保存"}),h&&L.jsx("div",{className:"context-menu-item",onClick:c,style:{color:"#4ade80"},children:n?"保存中...":"全部保存"}),L.jsx("div",{className:"context-menu-item",onClick:o,children:"关闭"}),L.jsx("div",{className:"context-menu-item",onClick:a,children:"关闭其他"}),L.jsx("div",{className:"context-menu-item",onClick:l,children:"关闭所有"})]})}function w3({gitInfo:t,onStage:e,onUnstage:i,onCommit:r,onClose:n}){if(!t.isRepo||!t.status)return null;const{staged:s,unstaged:o,untracked:a}=t.status;return L.jsxs("div",{className:"staged-changes-panel",children:[L.jsxs("div",{className:"staged-panel-header",children:[L.jsx("span",{children:"Git 变更"}),L.jsxs("div",{className:"staged-panel-actions",children:[L.jsx("button",{onClick:()=>e(null),className:"stage-btn",children:"Stage All"}),L.jsx("button",{onClick:()=>i(null),className:"unstage-btn",children:"Unstage All"}),L.jsx("button",{onClick:n,className:"close-btn",children:"×"})]})]}),(s==null?void 0:s.length)>0&&L.jsxs("div",{className:"changes-section",children:[L.jsx("div",{className:"changes-section-header",children:L.jsxs("span",{className:"changes-section-title",children:["已暂存 (",s.length,")"]})}),L.jsx("div",{className:"changes-list",children:s.map((l,O)=>L.jsxs("div",{className:"change-item staged",onClick:()=>i(l.path),children:[L.jsx("span",{className:"change-icon",children:"✓"}),L.jsx("span",{className:`change-status ${l.indexStatus}`,children:l.indexStatus}),L.jsx("span",{className:"change-path",children:l.path})]},O))})]}),(o==null?void 0:o.length)>0&&L.jsxs("div",{className:"changes-section",children:[L.jsx("div",{className:"changes-section-header",children:L.jsxs("span",{className:"changes-section-title",children:["未暂存修改 (",o.length,")"]})}),L.jsx("div",{className:"changes-list",children:o.map((l,O)=>L.jsxs("div",{className:"change-item",onClick:()=>e(l.path),children:[L.jsx("span",{className:"change-icon",children:"○"}),L.jsx("span",{className:`change-status ${l.workTreeStatus}`,children:l.workTreeStatus}),L.jsx("span",{className:"change-path",children:l.path})]},O))})]}),(a==null?void 0:a.length)>0&&L.jsxs("div",{className:"changes-section",children:[L.jsx("div",{className:"changes-section-header",children:L.jsxs("span",{className:"changes-section-title",children:["未跟踪 (",a.length,")"]})}),L.jsx("div",{className:"changes-list",children:a.map((l,O)=>L.jsxs("div",{className:"change-item untracked",onClick:()=>e(l.path),children:[L.jsx("span",{className:"change-icon",children:"?"}),L.jsx("span",{className:"change-status",children:"?"}),L.jsx("span",{className:"change-path",children:l.path})]},O))})]}),!(s!=null&&s.length)&&!(o!=null&&o.length)&&!(a!=null&&a.length)&&L.jsx("div",{className:"no-changes",children:"无变更"}),(s==null?void 0:s.length)>0&&L.jsxs("div",{className:"commit-section",children:[L.jsx("input",{type:"text",className:"commit-input",placeholder:"提交信息...",id:"commit-message"}),L.jsx("button",{className:"commit-btn",onClick:()=>{var O;const l=(O=document.getElementById("commit-message"))==null?void 0:O.value;l&&r(l)},children:"Commit"})]})]})}function X3({files:t,activeFile:e,onFileClick:i,gitInfo:r}){const[n,s]=he.useState({}),[o,a]=he.useState(null);function l(m){s(S=>({...S,[m]:!S[m]}))}function O(m,S){m.preventDefault(),m.stopPropagation(),a({x:m.clientX,y:m.clientY,item:S})}function c(){var m;(m=o==null?void 0:o.item)!=null&&m.path&&navigator.clipboard.writeText(o.item.path).then(()=>{console.log("Path copied:",o.item.path)}).catch(S=>{console.error("Failed to copy path:",S)}),a(null)}function h(){var m;(m=o==null?void 0:o.item)!=null&&m.path&&fetch("/api/open-in-explorer",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:o.item.path})}).catch(S=>{console.error("Failed to open in explorer:",S)}),a(null)}function u(m,S=0){return m.map((Q,g)=>{var v,P,w;const d=Q.type==="directory",f=n[Q.path],p=8+S*16;let $=null;return!d&&r.status&&($=((v=r.status.staged)==null?void 0:v.find(_=>_.path===Q.path))||((P=r.status.unstaged)==null?void 0:P.find(_=>_.path===Q.path))||((w=r.status.untracked)==null?void 0:w.find(_=>_.path===Q.path))),L.jsxs(UX.Fragment,{children:[L.jsxs("div",{className:`file-item ${e===Q.path?"active":""}`,onClick:()=>d?l(Q.path):null,onDoubleClick:()=>!d&&i(Q.path),onContextMenu:_=>O(_,Q),style:{paddingLeft:`${p}px`},children:[L.jsx("span",{className:"file-icon",children:d?f?"📂":"📁":x3(Q.type)}),L.jsx("span",{className:"file-name",children:Q.name}),$&&L.jsx("span",{className:`file-git-badge ${$.indexStatus!=="?"?"staged":"wt"}`,children:$.indexStatus!=="?"?$.indexStatus:$.workTreeStatus})]}),d&&f&&Q.children&&u(Q.children,S+1)]},Q.path)})}return L.jsxs("div",{className:"panel left-panel",onClick:()=>a(null),children:[L.jsx("div",{className:"panel-content",children:L.jsx("div",{className:"section",children:t.length===0?L.jsx("div",{className:"empty-state",children:"等待文件变化..."}):u(t)})}),o&&L.jsxs("div",{className:"file-context-menu",style:{left:o.x,top:o.y},onClick:m=>m.stopPropagation(),children:[L.jsx("div",{className:"context-menu-item",onClick:c,children:"复制文件路径"}),L.jsx("div",{className:"context-menu-item",onClick:h,children:"在文件资源管理器中打开"})]})]})}function x3(t){const e={".js":"📜",".jsx":"⚛️",".ts":"📘",".tsx":"⚛️",".py":"🐍",".json":"📋",".css":"🎨",".html":"🌐",".md":"📝",".txt":"📄",".yml":"⚙️",".yaml":"⚙️",".toml":"⚙️",".ini":"⚙️",".env":"🔐",".gitignore":"🙈",".dockerignore":"🐳",default:"📄"};return e[t]||e.default}class b3 extends he.Component{render(){const{error:e,onReload:i,onReset:r}=this.props;return L.jsx("div",{style:{height:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",background:"#1e1e1e",color:"#e0e0e0",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',padding:"20px"},children:L.jsxs("div",{style:{maxWidth:"600px",padding:"32px",background:"#252526",borderRadius:"8px",border:"1px solid #3c3c3c",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.4)",textAlign:"center"},children:[L.jsx("div",{style:{fontSize:"48px",marginBottom:"16px"},children:L.jsx("span",{style:{color:"#f85149"},children:"!"})}),L.jsx("h1",{style:{fontSize:"24px",fontWeight:600,marginBottom:"8px",color:"#ffffff"},children:"应用程序出错"}),L.jsx("p",{style:{fontSize:"14px",color:"#858585",marginBottom:"24px"},children:"抱歉,应用程序遇到了一个错误。请尝试刷新页面或重置应用状态。"}),e&&L.jsxs("details",{style:{marginBottom:"24px",padding:"12px",background:"#1e1e1e",borderRadius:"4px",textAlign:"left"},children:[L.jsx("summary",{style:{cursor:"pointer",fontSize:"13px",color:"#e0e0e0",fontWeight:500},children:"错误详情"}),L.jsxs("pre",{style:{marginTop:"12px",padding:"12px",background:"#0a0a0a",borderRadius:"4px",fontSize:"12px",color:"#f48771",overflow:"auto",maxHeight:"200px",fontFamily:'"SF Mono", Consolas, monospace'},children:[e.toString(),e.stack&&`
|
|
89
89
|
|
|
90
90
|
${e.stack}`]})]}),L.jsxs("div",{style:{display:"flex",gap:"12px",justifyContent:"center"},children:[L.jsx("button",{onClick:r,style:{padding:"10px 20px",background:"#3c3c3c",border:"1px solid #4c4c4c",borderRadius:"4px",color:"#cccccc",fontSize:"14px",cursor:"pointer"},children:"重置应用"}),L.jsx("button",{onClick:i,style:{padding:"10px 20px",background:"#0078d4",border:"none",borderRadius:"4px",color:"#ffffff",fontSize:"14px",cursor:"pointer",fontWeight:500},children:"刷新页面"})]})]})})}}class k3 extends he.Component{constructor(i){super(i);rl(this,"handleReload",()=>{this.setState({hasError:!1,error:null,errorInfo:null}),window.location.reload()});rl(this,"handleReset",()=>{this.setState({hasError:!1,error:null,errorInfo:null})});this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(i){return{hasError:!0,error:i}}componentDidCatch(i,r){var n,s;this.setState({errorInfo:r}),(s=(n=this.props).onError)==null||s.call(n,i,r),console.error("[ErrorBoundary]",i,r)}render(){return this.state.hasError?this.props.fallback?this.props.fallback:L.jsx(b3,{error:this.state.error,errorInfo:this.state.errorInfo,onReload:this.handleReload,onReset:this.handleReset}):this.props.children}}const T3=document.getElementById("root"),R3=W1(T3);R3.render(L.jsx(k3,{onError:(t,e)=>{console.error("[Global Error]",t,e)},children:L.jsx(v3,{})}));
|
|
@@ -29,4 +29,4 @@
|
|
|
29
29
|
* The original design remains. The terminal itself
|
|
30
30
|
* has been extended to include xterm CSI codes, among
|
|
31
31
|
* other features.
|
|
32
|
-
*/.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}:root{--bg-primary: #000000;--bg-secondary: #0A0A0A;--bg-tertiary: #141414;--bg-elevated: #1A1A1A;--bg-surface: #0F0F0F;--text-primary: #F8FAFC;--text-secondary: #94A3B8;--text-muted: #64748B;--border-color: rgba(148, 163, 184, .15);--border-glow: rgba(34, 197, 94, .3);--accent-color: #22C55E;--accent-hover: #16A34A;--accent-glow: rgba(34, 197, 94, .4);--accent-soft: rgba(34, 197, 94, .1);--diff-add-bg: rgba(34, 197, 94, .12);--diff-add-text: #4ADE80;--diff-add-border: #22C55E;--diff-remove-bg: rgba(239, 68, 68, .12);--diff-remove-text: #F87171;--diff-remove-border: #EF4444;--danger-color: #EF4444;--danger-hover: #DC2626;--success-color: #22C55E;--success-hover: #16A34A;--warning-color: #F59E0B;--info-color: #3B82F6;--font-family: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Consolas", monospace;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .5);--shadow-glow: 0 0 24px var(--accent-glow);--shadow-glow-sm: 0 0 12px var(--accent-glow);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--transition-fast: .12s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--blur-sm: 8px;--blur-md: 16px;--blur-lg: 24px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{display:flex;flex-direction:column;height:100vh;width:100vw;background:var(--bg-primary)}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:linear-gradient(180deg,#1e293bf2,#1e293bd9);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));border-bottom:1px solid var(--border-color);min-height:52px;position:relative;z-index:100}.top-bar:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-color),transparent);opacity:.3}.top-bar-left,.top-bar-center,.top-bar-right{display:flex;align-items:center;gap:16px}.top-bar-left{width:260px}.top-bar-center{flex:1;justify-content:center}.top-bar-right{width:40%;justify-content:flex-end}.top-bar-title{font-family:var(--font-display);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.top-bar-title:before{content:"";display:inline-block;width:3px;height:14px;background:var(--accent-color);border-radius:2px}.main-content{display:flex;flex:1;overflow:hidden;gap:1px;background:var(--border-color)}.panel{display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(180deg,var(--bg-secondary) 0%,rgba(30,41,59,.95) 100%)}.left-panel{width:260px;flex-shrink:0}.middle-panel{flex:1;min-width:300px}.right-panel{width:40%;min-width:300px;max-width:60%}.panel-content{flex:1;overflow:auto;padding:8px}.file-tree{padding:4px}.file-item{padding:8px 12px;cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;gap:10px;transition:all var(--transition-fast);position:relative;margin:2px 0}.file-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--accent-color);border-radius:0 2px 2px 0;transition:height var(--transition-fast)}.file-item:hover{background:#94a3b814}.file-item:hover:before{height:60%}.file-item:active{transform:scale(.98)}.file-item.active{background:var(--accent-soft);color:var(--text-primary)}.file-item.active:before{height:70%}.file-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:.9}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.diff-line{font-family:var(--font-mono);font-size:13px;padding:3px 16px 3px 20px;white-space:pre;border-left:3px solid transparent;transition:background var(--transition-fast);position:relative}.diff-line.added{background:var(--diff-add-bg);color:var(--diff-add-text);border-left-color:var(--diff-add-border)}.diff-line.removed{background:var(--diff-remove-bg);color:var(--diff-remove-text);border-left-color:var(--diff-remove-border)}.diff-line:before{display:inline-block;width:16px;margin-left:-16px;text-align:center;font-weight:600;font-size:12px}.diff-line.added:before{content:"+";color:var(--diff-add-text)}.diff-line.removed:before{content:"-";color:var(--diff-remove-text)}.tab-bar{display:flex;background:#0f172a99;border-bottom:1px solid var(--border-color);overflow-x:auto;min-height:40px;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab{display:flex;align-items:center;gap:8px;padding:10px 16px;background:transparent;border-right:1px solid var(--border-color);cursor:pointer;min-width:100px;max-width:180px;font-size:13px;color:var(--text-muted);transition:all var(--transition-fast);position:relative}.tab:hover{background:#94a3b80d;color:var(--text-secondary)}.tab.active{background:var(--bg-secondary);color:var(--text-primary)}.tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent-color)}.tab-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-close{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:var(--radius-xs);line-height:1;transition:all var(--transition-fast);opacity:.6}.tab-close:hover{background:#ef444433;color:var(--danger-color);opacity:1}.tab.modified .tab-name{color:var(--accent-color)}.tab-modified-mark{color:var(--accent-color);margin-right:4px;font-size:10px}.context-menu{position:fixed;background:linear-gradient(180deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:6px;min-width:160px;box-shadow:var(--shadow-lg);z-index:1000;animation:contextMenuIn .15s ease;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm))}@keyframes contextMenuIn{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.context-menu-item{padding:10px 14px;cursor:pointer;font-size:13px;color:var(--text-primary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.context-menu-item:hover{background:var(--accent-soft);color:var(--accent-color)}.file-context-menu{position:fixed;background:linear-gradient(180deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:6px;min-width:200px;box-shadow:var(--shadow-lg);z-index:1000;animation:contextMenuIn .15s ease;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm))}.ws-status{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:8px;transition:all var(--transition-normal)}.ws-status.connected{background:var(--success-color);box-shadow:0 0 8px var(--success-color);animation:pulse 2s infinite}.ws-status.disconnected{background:var(--danger-color);box-shadow:0 0 8px var(--danger-color)}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 8px var(--success-color)}50%{opacity:.7;box-shadow:0 0 4px var(--success-color)}}.version-info{display:flex;align-items:center;gap:10px}.version-number{font-size:11px;color:var(--text-muted);font-weight:500;font-family:var(--font-mono);padding:3px 8px;background:#94a3b81a;border-radius:var(--radius-xs)}.update-badge{font-size:10px;padding:4px 10px;background:linear-gradient(135deg,var(--warning-color) 0%,#FBBF24 100%);color:var(--bg-primary);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;transition:all var(--transition-fast)}.update-badge:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.terminal-wrapper{flex:1;overflow:hidden;min-height:0}.section{margin-bottom:8px}.section-title{padding:10px 12px 6px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px}.empty-state{padding:40px 24px;text-align:center;color:var(--text-muted);font-size:13px;display:flex;flex-direction:column;align-items:center;gap:12px}.empty-state:before{content:"";width:48px;height:48px;background:linear-gradient(135deg,var(--bg-tertiary) 0%,var(--bg-elevated) 100%);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.code-panel{font-family:var(--font-mono)}.code-viewer-codemirror{height:100%;width:100%;display:flex;min-height:0;min-width:0}.code-viewer-codemirror .cm-theme{flex:1;display:flex;min-height:0;min-width:0}.code-viewer-codemirror .cm-editor{flex:1;min-width:0;min-height:0}.code-viewer-codemirror .cm-scroller{flex:1;overflow:auto!important;min-height:0}.code-content{padding:16px;white-space:pre-wrap;word-break:break-all;line-height:1.7;font-size:13px}.diff-container{font-family:var(--font-mono);font-size:13px;padding:8px 0}.task-btn{padding:8px 18px;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);display:inline-flex;align-items:center;gap:6px}.task-btn:hover{transform:translateY(-1px)}.task-btn:active{transform:translateY(0)}.task-btn-clear{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.task-btn-clear:hover{background:var(--accent-soft);border-color:var(--accent-color);color:var(--accent-color);box-shadow:var(--shadow-glow-sm)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::-webkit-scrollbar-corner{background:transparent}.git-status-bar{display:flex;align-items:center;gap:16px;padding:6px 14px;background:#94a3b814;border-radius:var(--radius-sm);border:1px solid var(--border-color)}.git-branch{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--accent-color)}.git-branch-icon{font-size:14px;opacity:.8}.git-stats{display:flex;align-items:center;gap:12px}.git-staged,.git-unstaged{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary)}.git-staged-count{font-weight:600;color:var(--success-color)}.git-unstaged-count{font-weight:600;color:var(--warning-color)}.git-changes-btn{padding:4px 10px;font-size:11px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.git-changes-btn:hover{background:var(--accent-soft);border-color:var(--accent-color);color:var(--accent-color)}.staged-changes-panel{position:absolute;top:52px;left:0;right:0;max-height:400px;background:linear-gradient(180deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);border-bottom:1px solid var(--border-color);z-index:99;overflow-y:auto;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.staged-panel-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#0f172a99;border-bottom:1px solid var(--border-color);font-weight:600;font-size:12px;color:var(--text-secondary)}.staged-panel-actions{display:flex;gap:8px;align-items:center}.stage-btn,.unstage-btn{padding:4px 10px;font-size:11px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.stage-btn:hover,.unstage-btn:hover{background:var(--accent-soft);border-color:var(--accent-color);color:var(--accent-color)}.close-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;border-radius:var(--radius-xs);transition:all var(--transition-fast)}.close-btn:hover{background:#ef444433;color:var(--danger-color)}.changes-section{padding:8px 0;border-bottom:1px solid var(--border-color)}.changes-section:last-child{border-bottom:none}.changes-section-header{padding:4px 16px}.changes-section-title{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.changes-list{display:flex;flex-direction:column}.change-item{display:flex;align-items:center;gap:8px;padding:6px 16px;cursor:pointer;transition:background var(--transition-fast)}.change-item:hover{background:#94a3b814}.change-item.staged{background:var(--accent-soft)}.change-icon{width:16px;text-align:center;font-size:12px;color:var(--text-muted)}.change-item.staged .change-icon{color:var(--success-color)}.change-status{width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;font-family:var(--font-mono);border-radius:2px}.change-status.M{background:var(--warning-color);color:var(--bg-primary)}.change-status.A{background:var(--success-color);color:var(--bg-primary)}.change-status.D{background:var(--danger-color);color:var(--text-primary)}.change-status.R{background:var(--info-color);color:var(--text-primary)}.change-status.\?{background:var(--text-muted);color:var(--bg-primary)}.change-path{flex:1;font-size:12px;font-family:var(--font-mono);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-changes{padding:24px;text-align:center;color:var(--text-muted);font-size:13px}.commit-section{display:flex;gap:8px;padding:12px 16px;background:#0f172a99;border-top:1px solid var(--border-color)}.commit-input{flex:1;padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;font-family:var(--font-family)}.commit-input:focus{outline:none;border-color:var(--accent-color)}.commit-btn{padding:8px 16px;background:var(--accent-color);border:none;border-radius:var(--radius-sm);color:var(--bg-primary);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.commit-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.file-git-badge{width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;font-family:var(--font-mono);border-radius:2px;margin-right:2px}.file-git-badge.staged{background:var(--success-color);color:var(--bg-primary)}.file-git-badge.wt{background:var(--warning-color);color:var(--bg-primary)}@media (max-width: 1024px){.left-panel{width:220px}.right-panel{width:45%;min-width:250px}.top-bar-left{width:220px}}@media (max-width: 768px){.main-content{flex-direction:column}.left-panel,.right-panel{width:100%;max-width:none;min-width:auto}.middle-panel{min-height:300px}.top-bar{flex-wrap:wrap;padding:10px 16px}.top-bar-left,.top-bar-center,.top-bar-right{width:auto}.top-bar-center{order:3;width:100%;justify-content:flex-start;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color)}}
|
|
32
|
+
*/.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}:root{--bg-primary: #000000;--bg-secondary: #0A0A0A;--bg-tertiary: #141414;--bg-elevated: #1A1A1A;--bg-surface: #0F0F0F;--text-primary: #F8FAFC;--text-secondary: #94A3B8;--text-muted: #64748B;--border-color: rgba(148, 163, 184, .15);--border-glow: rgba(34, 197, 94, .3);--accent-color: #22C55E;--accent-hover: #16A34A;--accent-glow: rgba(34, 197, 94, .4);--accent-soft: rgba(34, 197, 94, .1);--diff-add-bg: rgba(34, 197, 94, .12);--diff-add-text: #4ADE80;--diff-add-border: #22C55E;--diff-remove-bg: rgba(239, 68, 68, .12);--diff-remove-text: #F87171;--diff-remove-border: #EF4444;--danger-color: #EF4444;--danger-hover: #DC2626;--success-color: #22C55E;--success-hover: #16A34A;--warning-color: #F59E0B;--info-color: #3B82F6;--font-family: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Consolas", monospace;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .5);--shadow-glow: 0 0 24px var(--accent-glow);--shadow-glow-sm: 0 0 12px var(--accent-glow);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--transition-fast: .12s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--blur-sm: 8px;--blur-md: 16px;--blur-lg: 24px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{display:flex;flex-direction:column;height:100vh;width:100vw;background:var(--bg-primary)}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:linear-gradient(180deg,#1e293bf2,#1e293bd9);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));border-bottom:1px solid var(--border-color);min-height:52px;position:relative;z-index:100}.top-bar:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-color),transparent);opacity:.3}.top-bar-left,.top-bar-center,.top-bar-right{display:flex;align-items:center;gap:16px}.top-bar-left{width:260px}.top-bar-center{flex:1;justify-content:center}.top-bar-right{width:40%;justify-content:flex-end}.top-bar-title{font-family:var(--font-display);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.top-bar-title:before{content:"";display:inline-block;width:3px;height:14px;background:var(--accent-color);border-radius:2px}.main-content{display:flex;flex:1;overflow:hidden;gap:1px;background:var(--border-color)}.panel{display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(180deg,var(--bg-secondary) 0%,rgba(30,41,59,.95) 100%)}.left-panel{width:260px;flex-shrink:0}.middle-panel{flex:1;min-width:300px}.right-panel{width:40%;min-width:300px;max-width:60%}.panel-content{flex:1;overflow:auto;padding:8px}.file-tree{padding:4px}.file-item{padding:8px 12px;cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;gap:10px;transition:all var(--transition-fast);position:relative;margin:2px 0}.file-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--accent-color);border-radius:0 2px 2px 0;transition:height var(--transition-fast)}.file-item:hover{background:#94a3b814}.file-item:hover:before{height:60%}.file-item:active{transform:scale(.98)}.file-item.active{background:var(--accent-soft);color:var(--text-primary)}.file-item.active:before{height:70%}.file-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:.9}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.diff-line{font-family:var(--font-mono);font-size:13px;padding:3px 16px 3px 20px;white-space:pre;border-left:3px solid transparent;transition:background var(--transition-fast);position:relative}.diff-line.added{background:var(--diff-add-bg);color:var(--diff-add-text);border-left-color:var(--diff-add-border)}.diff-line.removed{background:var(--diff-remove-bg);color:var(--diff-remove-text);border-left-color:var(--diff-remove-border)}.diff-line:before{display:inline-block;width:16px;margin-left:-16px;text-align:center;font-weight:600;font-size:12px}.diff-line.added:before{content:"+";color:var(--diff-add-text)}.diff-line.removed:before{content:"-";color:var(--diff-remove-text)}.tab-bar{display:flex;background:#0f172a99;border-bottom:1px solid var(--border-color);overflow-x:auto;min-height:40px;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab{display:flex;align-items:center;gap:8px;padding:10px 16px;background:transparent;border-right:1px solid var(--border-color);cursor:pointer;min-width:100px;max-width:180px;font-size:13px;color:var(--text-muted);transition:all var(--transition-fast);position:relative}.tab:hover{background:#94a3b80d;color:var(--text-secondary)}.tab.active{background:var(--bg-secondary);color:var(--text-primary)}.tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent-color)}.tab-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-close{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:var(--radius-xs);line-height:1;transition:all var(--transition-fast);opacity:.6}.tab-close:hover{background:#ef444433;color:var(--danger-color);opacity:1}.tab.modified .tab-name{color:var(--accent-color)}.tab-modified-mark{color:var(--accent-color);margin-right:4px;font-size:10px}.context-menu{position:fixed;background:linear-gradient(180deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:6px;min-width:160px;box-shadow:var(--shadow-lg);z-index:1000;animation:contextMenuIn .15s ease;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm))}@keyframes contextMenuIn{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.context-menu-item{padding:10px 14px;cursor:pointer;font-size:13px;color:var(--text-primary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.context-menu-item:hover{background:var(--accent-soft);color:var(--accent-color)}.file-context-menu{position:fixed;background:linear-gradient(180deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:6px;min-width:200px;box-shadow:var(--shadow-lg);z-index:1000;animation:contextMenuIn .15s ease;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm))}.ws-status{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:8px;transition:all var(--transition-normal)}.ws-status.connected{background:var(--success-color);box-shadow:0 0 8px var(--success-color);animation:pulse 2s infinite}.ws-status.disconnected{background:var(--danger-color);box-shadow:0 0 8px var(--danger-color)}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 8px var(--success-color)}50%{opacity:.7;box-shadow:0 0 4px var(--success-color)}}.version-info{display:flex;align-items:center;gap:10px}.version-number{font-size:11px;color:var(--text-muted);font-weight:500;font-family:var(--font-mono);padding:3px 8px;background:#94a3b81a;border-radius:var(--radius-xs)}.update-badge{font-size:10px;padding:4px 10px;background:linear-gradient(135deg,var(--warning-color) 0%,#FBBF24 100%);color:var(--bg-primary);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;transition:all var(--transition-fast)}.update-badge:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.terminal-wrapper{flex:1;overflow:hidden;min-height:0}.section{margin-bottom:8px}.section-title{padding:10px 12px 6px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px}.empty-state{padding:40px 24px;text-align:center;color:var(--text-muted);font-size:13px;display:flex;flex-direction:column;align-items:center;gap:12px}.empty-state:before{content:"";width:48px;height:48px;background:linear-gradient(135deg,var(--bg-tertiary) 0%,var(--bg-elevated) 100%);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.code-panel{font-family:var(--font-mono)}.code-viewer-codemirror{height:100%;width:100%;display:flex;min-height:0;min-width:0}.code-viewer-codemirror .cm-theme{flex:1;display:flex;min-height:0;min-width:0}.code-viewer-codemirror .cm-editor{flex:1;min-width:0;min-height:0}.code-viewer-codemirror .cm-scroller{flex:1;overflow:auto!important;min-height:0}.code-content{padding:16px;white-space:pre-wrap;word-break:break-all;line-height:1.7;font-size:13px}.diff-container{font-family:var(--font-mono);font-size:13px;padding:8px 0}.task-btn{padding:8px 18px;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);display:inline-flex;align-items:center;gap:6px}.task-btn:hover{transform:translateY(-1px)}.task-btn:active{transform:translateY(0)}.task-btn-clear{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.task-btn-clear:hover{background:var(--accent-soft);border-color:var(--accent-color);color:var(--accent-color);box-shadow:var(--shadow-glow-sm)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::-webkit-scrollbar-corner{background:transparent}.git-status-bar{display:flex;align-items:center;gap:16px;padding:6px 14px;background:#94a3b814;border-radius:var(--radius-sm);border:1px solid var(--border-color)}.git-branch{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--accent-color)}.git-branch-icon{font-size:14px;opacity:.8}.git-stats{display:flex;align-items:center;gap:12px}.git-staged,.git-unstaged{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary)}.git-staged-count{font-weight:600;color:var(--success-color)}.git-unstaged-count{font-weight:600;color:var(--warning-color)}.git-changes-btn{padding:4px 10px;font-size:11px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.git-changes-btn:hover{background:var(--accent-soft);border-color:var(--accent-color);color:var(--accent-color)}.staged-changes-panel{position:absolute;top:52px;left:0;right:0;max-height:400px;background:linear-gradient(180deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);border-bottom:1px solid var(--border-color);z-index:99;overflow-y:auto;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.staged-panel-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#0f172a99;border-bottom:1px solid var(--border-color);font-weight:600;font-size:12px;color:var(--text-secondary)}.staged-panel-actions{display:flex;gap:8px;align-items:center}.stage-btn,.unstage-btn{padding:4px 10px;font-size:11px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.stage-btn:hover,.unstage-btn:hover{background:var(--accent-soft);border-color:var(--accent-color);color:var(--accent-color)}.close-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;border-radius:var(--radius-xs);transition:all var(--transition-fast)}.close-btn:hover{background:#ef444433;color:var(--danger-color)}.changes-section{padding:8px 0;border-bottom:1px solid var(--border-color)}.changes-section:last-child{border-bottom:none}.changes-section-header{padding:4px 16px}.changes-section-title{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.changes-list{display:flex;flex-direction:column}.change-item{display:flex;align-items:center;gap:8px;padding:6px 16px;cursor:pointer;transition:background var(--transition-fast)}.change-item:hover{background:#94a3b814}.change-item.staged{background:var(--accent-soft)}.change-icon{width:16px;text-align:center;font-size:12px;color:var(--text-muted)}.change-item.staged .change-icon{color:var(--success-color)}.change-status{width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;font-family:var(--font-mono);border-radius:2px}.change-status.M{background:var(--warning-color);color:var(--bg-primary)}.change-status.A{background:var(--success-color);color:var(--bg-primary)}.change-status.D{background:var(--danger-color);color:var(--text-primary)}.change-status.R{background:var(--info-color);color:var(--text-primary)}.change-status.\?{background:var(--text-muted);color:var(--bg-primary)}.change-path{flex:1;font-size:12px;font-family:var(--font-mono);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-changes{padding:24px;text-align:center;color:var(--text-muted);font-size:13px}.commit-section{display:flex;gap:8px;padding:12px 16px;background:#0f172a99;border-top:1px solid var(--border-color)}.commit-input{flex:1;padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;font-family:var(--font-family)}.commit-input:focus{outline:none;border-color:var(--accent-color)}.commit-btn{padding:8px 16px;background:var(--accent-color);border:none;border-radius:var(--radius-sm);color:var(--bg-primary);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.commit-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.file-git-badge{width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;font-family:var(--font-mono);border-radius:2px;margin-left:auto;flex-shrink:0}.file-git-badge.staged{background:var(--success-color);color:var(--bg-primary)}.file-git-badge.wt{background:var(--warning-color);color:var(--bg-primary)}@media (max-width: 1024px){.left-panel{width:220px}.right-panel{width:45%;min-width:250px}.top-bar-left{width:220px}}@media (max-width: 768px){.main-content{flex-direction:column}.left-panel,.right-panel{width:100%;max-width:none;min-width:auto}.middle-panel{min-height:300px}.top-bar{flex-wrap:wrap;padding:10px 16px}.top-bar-left,.top-bar-center,.top-bar-right{width:auto}.top-bar-center{order:3;width:100%;justify-content:flex-start;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color)}}
|
package/dist/public/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Codex Lens</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/main-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="./assets/main-
|
|
7
|
+
<script type="module" crossorigin src="./assets/main-B9zQ2WJ0.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="./assets/main-DLXcJXXv.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<div id="root"></div>
|
package/package.json
CHANGED
package/src/components/App.jsx
CHANGED
|
@@ -739,15 +739,15 @@ function LeftPanel({ files, activeFile, onFileClick, gitInfo }) {
|
|
|
739
739
|
onContextMenu={(e) => handleContextMenu(e, item)}
|
|
740
740
|
style={{ paddingLeft: `${indent}px` }}
|
|
741
741
|
>
|
|
742
|
+
<span className="file-icon">
|
|
743
|
+
{isDir ? (isExpanded ? '📂' : '📁') : getFileIcon(item.type)}
|
|
744
|
+
</span>
|
|
745
|
+
<span className="file-name">{item.name}</span>
|
|
742
746
|
{fileGitStatus && (
|
|
743
747
|
<span className={`file-git-badge ${fileGitStatus.indexStatus !== '?' ? 'staged' : 'wt'}`}>
|
|
744
748
|
{fileGitStatus.indexStatus !== '?' ? fileGitStatus.indexStatus : fileGitStatus.workTreeStatus}
|
|
745
749
|
</span>
|
|
746
750
|
)}
|
|
747
|
-
<span className="file-icon">
|
|
748
|
-
{isDir ? (isExpanded ? '📂' : '📁') : getFileIcon(item.type)}
|
|
749
|
-
</span>
|
|
750
|
-
<span className="file-name">{item.name}</span>
|
|
751
751
|
</div>
|
|
752
752
|
{isDir && isExpanded && item.children && renderFileTree(item.children, depth + 1)}
|
|
753
753
|
</React.Fragment>
|