@ganglion/xacpx-relay 0.9.4 → 0.9.5

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.
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/shiki-B-yqXaoA.js","assets/index-w7-D5Xrc.js","assets/index-L9iYRZjb.css"])))=>i.map(i=>d[i]);
2
- import{j as ue,k as At,r as S,l as re,A as Ou,m as Z,p as Kr,d as de,q as nt,s as Qt,c as b,a as f,n as X,t as k,x as B,f as x,F as J,y as le,g as M,h as Ae,z as G,o as d,B as zt,C as xe,T as eu,e as he,w as _e,D as Re,E as Bn,G as pu,H as tu,I as ku,J as Zr,K as je,L as Ru,M as qu,N as Xr,O as Yr,P as Jr,Q as Mt,R as gt,_ as Qr,S as eo,b as to,U as uo}from"./index-w7-D5Xrc.js";import{_ as no}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{u as so}from"./theme-W_gwuQgq.js";/**
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/shiki-BIq7G4Cm.js","assets/index-D95RDANU.js","assets/index-czQtNRcL.css"])))=>i.map(i=>d[i]);
2
+ import{j as ue,k as At,r as S,l as re,A as Ou,m as Z,p as Kr,d as de,q as nt,s as Qt,c as b,a as f,n as X,t as k,x as B,f as x,F as J,y as le,g as M,h as Ae,z as G,o as d,B as zt,C as xe,T as eu,e as he,w as _e,D as Re,E as Bn,G as pu,H as tu,I as ku,J as Zr,K as je,L as Ru,M as qu,N as Xr,O as Yr,P as Jr,Q as Mt,R as gt,_ as Qr,S as eo,b as to,U as uo}from"./index-D95RDANU.js";import{_ as no}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{u as so}from"./theme-CR6MoYC7.js";/**
3
3
  * @license lucide-vue-next v1.0.0 - ISC
4
4
  *
5
5
  * This source code is licensed under the ISC license.
@@ -284,5 +284,5 @@ $$`:`${e}$$`},j1=e=>B1(e)%2===0?e:q1(e),H1=e=>U1(e)%2===1?`${e}$`:e,W1=(e,t,u)=>
284
284
  `)}),n=Z(()=>({add:u.value.add.filter(s=>s.length>0).length,del:u.value.del.filter(s=>s.length>0).length}));return(s,a)=>(d(),b("div",dp,[e.detail.type==="diff"?(d(),b(J,{key:0},[f("div",fp,[f("span",pp,[B(x(Nu),{size:14,class:"shrink-0"}),f("span",hp,k(e.detail.path),1)]),f("span",mp,[n.value.add?(d(),b("span",bp,"+"+k(n.value.add),1)):M("",!0),n.value.del?(d(),b("span",gp,"−"+k(n.value.del),1)):M("",!0)])]),B(Ht,null,{default:gt(()=>[f("div",xp,[(d(!0),b(J,null,le(u.value.del,(r,o)=>(d(),b("div",{key:"d"+o,"data-test":"diff-del",class:"whitespace-pre text-danger"},"- "+k(r),1))),128)),(d(!0),b(J,null,le(u.value.add,(r,o)=>(d(),b("div",{key:"a"+o,"data-test":"diff-add",class:"whitespace-pre text-run"},"+ "+k(r),1))),128))])]),_:1})],64)):e.detail.type==="command"?(d(),b(J,{key:1},[f("div",vp,"$ "+k(e.detail.command),1),e.detail.output?(d(),G(Ht,{key:0},{default:gt(()=>[f("pre",yp,k(e.detail.output),1)]),_:1})):M("",!0),e.detail.exitCode!==void 0?(d(),b("div",kp,"exit "+k(e.detail.exitCode),1)):M("",!0)],64)):e.detail.type==="read"?(d(),b(J,{key:2},[f("div",_p,[B(x(Nu),{size:14,class:"shrink-0"}),f("span",wp,k(e.detail.path),1),e.detail.lines?(d(),b("span",Ep,k(e.detail.lines),1)):M("",!0)]),e.detail.preview?(d(),G(Ht,{key:0},{default:gt(()=>[f("pre",Ap,k(e.detail.preview),1)]),_:1})):M("",!0)],64)):e.detail.type==="search"?(d(),b(J,{key:3},[f("div",$p,[B(x(Hu),{size:14,class:"shrink-0"}),f("span",Cp,k(e.detail.query),1)]),e.detail.output?(d(),G(Ht,{key:0},{default:gt(()=>[f("pre",Dp,k(e.detail.output),1)]),_:1})):M("",!0)],64)):e.detail.type==="fields"?(d(),b(J,{key:4},[f("dl",Tp,[(d(!0),b(J,null,le(e.detail.fields,r=>(d(),b(J,{key:r.label},[f("dt",Sp,k(r.label),1),f("dd",{"data-test":"field-"+r.label,class:"font-mono text-fg break-all"},k(r.value),9,Fp)],64))),128))]),e.detail.output?(d(),G(Ht,{key:0},{default:gt(()=>[f("pre",Ip,k(e.detail.output),1)]),_:1})):M("",!0)],64)):e.detail.type==="text"?(d(),G(Ht,{key:5},{default:gt(()=>[f("p",Mp,k(e.detail.text),1)]),_:1})):M("",!0)]))}}),zp=de({__name:"FueDot",props:{pulsing:{type:Boolean,default:!0}},setup(e){return(t,u)=>(d(),b("span",{"data-test":"fue-dot",class:X(["inline-block h-2 w-2 rounded-full bg-accent",e.pulsing?"animate-pulse motion-reduce:animate-none":""]),"aria-hidden":"true"},null,2))}}),Wt=8;function Ar(e,t,u,n=Wt){const s=e.top+e.height+n,a=e.top-t.height-n,r=u.height-(e.top+e.height),o=e.top,p=s+t.height>u.height-Wt&&o>r?"above":"below",c=p==="above"?Math.max(Wt,a):s,v=e.left+e.width/2-t.width/2,h=Math.max(Wt,u.width-t.width-Wt),g=Math.min(Math.max(Wt,v),h);return{top:c,left:g,placement:p}}const Lp={class:"flex items-center gap-2 font-medium text-fg"},Op={class:"mt-1 text-xs text-fg-muted"},Rp={class:"mt-2 flex justify-end"},Np=de({__name:"FueCallout",props:{title:{},body:{},anchor:{}},emits:["dismiss"],setup(e,{emit:t}){const u=e,n=t,s=S(null),a=S({visibility:"hidden"});function r(){const i=s.value;if(!i)return;const l={width:i.offsetWidth||256,height:i.offsetHeight||96},p={width:window.innerWidth,height:window.innerHeight};if(u.anchor){const c=Ar(u.anchor,l,p);a.value={top:`${c.top}px`,left:`${c.left}px`,visibility:"visible"}}else a.value={top:`${Math.max(8,p.height/2-l.height/2)}px`,left:`${Math.max(8,p.width/2-l.width/2)}px`,visibility:"visible"}}function o(i){i.key==="Escape"&&n("dismiss")}return nt(()=>{r(),window.addEventListener("keydown",o),window.addEventListener("resize",r)}),Qt(()=>{window.removeEventListener("keydown",o),window.removeEventListener("resize",r)}),(i,l)=>(d(),G(eu,{to:"body"},[f("div",{ref_key:"card",ref:s,"data-test":"fue-callout",class:"fixed z-50 w-64 rounded-lg border border-border bg-raised p-3 text-sm shadow-lg",style:tu(a.value),role:"dialog"},[f("p",Lp,[l[1]||(l[1]=f("span",{class:"inline-block h-2 w-2 rounded-full bg-accent","aria-hidden":"true"},null,-1)),he(" "+k(e.title),1)]),f("p",Op,k(e.body),1),f("div",Rp,[f("button",{"data-test":"fue-dismiss",type:"button",class:"rounded bg-accent px-2 py-1 text-xs font-medium text-white hover:bg-accent-hover",onClick:l[0]||(l[0]=p=>n("dismiss"))},k(i.$t("fue.gotIt")),1)])],4)]))}}),$r="xacpx.fue.v1.";function Pp(e){try{return localStorage.getItem($r+e)==="1"}catch{return!1}}function Bp(e){try{localStorage.setItem($r+e,"1")}catch{}}function Up(e){const t=S(Pp(e)?"acknowledged":"unseen");function u(){t.value==="unseen"&&(t.value="engaging")}function n(){t.value="acknowledged",Bp(e)}return{status:t,engage:u,dismiss:n}}const es={read:ao,search:Hu,execute:Fo,edit:Ao,think:Un,other:Ta},qp={running:Lt,success:uu,error:st},jp=["read","search","execute","edit","think","other"],Hp=["running","success","error"],ha=5;function Wp(e){const t=new Map,u=new Map;for(const n of e)t.set(n.kind,(t.get(n.kind)??0)+1),u.set(n.status,(u.get(n.status)??0)+1);return{kinds:jp.filter(n=>t.has(n)).map(n=>({icon:es[n],count:t.get(n),label:n})),statuses:Hp.filter(n=>u.has(n)).map(n=>({icon:qp[n],count:u.get(n),label:n}))}}const Vp={class:"overflow-hidden rounded-lg border border-border bg-surface text-xs shadow-e1"},Gp={class:"inline-flex items-center gap-1.5 text-[11.5px] font-semibold text-fg-muted"},Kp={key:3,"data-test":"tool-count",class:"font-mono text-[10.5px] text-fg-muted"},Zp={"data-test":"tool-summary",class:"ml-1 flex items-center gap-1.5 text-[10.5px] text-fg-muted"},Xp=["data-test"],Yp={class:"tabular-nums"},Jp={key:0,class:"text-fg-muted"},Qp=["data-test"],eh={class:"tabular-nums"},th={key:1,class:"space-y-1 border-t border-border px-3 pb-2.5 pt-2"},uh=["onClick"],nh={class:"truncate font-mono text-[11px] text-fg"},sh={key:0,class:"ml-auto font-mono text-[10.5px] text-fg-muted"},ah={key:0,class:"px-2 pb-2 pt-1"},rh=de({__name:"ToolCallPanel",props:{steps:{}},setup(e){const t=e,u=S(t.steps.length<=ha),n=S(new Set);function s(h){n.value.has(h)?n.value.delete(h):n.value.add(h),n.value=new Set(n.value)}const a=Z(()=>Wp(t.steps)),r=Up("tool-group-collapse"),o=Z(()=>t.steps.length>ha),i=Z(()=>o.value&&r.status.value!=="acknowledged"),l=S(null),p=S(null);function c(){var h;if(u.value=!u.value,i.value){const g=(h=l.value)==null?void 0:h.getBoundingClientRect();g&&(p.value={top:g.top,left:g.left,width:g.width,height:g.height}),r.engage()}}function v(h){return h===void 0?"":h>=1e3?`${(h/1e3).toFixed(1)}s`:`${h}ms`}return(h,g)=>(d(),b("div",Vp,[f("button",{ref_key:"header",ref:l,type:"button",class:"flex w-full items-center gap-2 px-3 py-2 text-left transition-colors hover:bg-bg",onClick:c},[u.value?(d(),G(x(at),{key:0,size:13,class:"text-fg-muted"})):(d(),G(x(kt),{key:1,size:13,class:"text-fg-muted"})),f("span",Gp,[B(x(Ta),{size:13}),he(" "+k(h.$t("tools.toolSteps")),1)]),i.value?(d(),G(zp,{key:2,pulsing:x(r).status.value==="unseen"},null,8,["pulsing"])):(d(),b("span",Kp,k(e.steps.length),1)),f("span",Zp,[(d(!0),b(J,null,le(a.value.kinds,E=>(d(),b("span",{key:"k"+E.label,"data-test":"sum-"+E.label,class:"inline-flex items-center gap-0.5"},[(d(),G(Mt(E.icon),{size:11})),f("span",Yp,k(E.count),1)],8,Xp))),128)),a.value.statuses.length?(d(),b("span",Jp,"·")):M("",!0),(d(!0),b(J,null,le(a.value.statuses,E=>(d(),b("span",{key:"s"+E.label,"data-test":"sum-"+E.label,class:X(["inline-flex items-center gap-0.5",E.label==="success"?"text-run":E.label==="error"?"text-danger":"text-fg-muted"])},[(d(),G(Mt(E.icon),{size:11,class:X(E.label==="running"?"animate-spin motion-reduce:animate-none":"")},null,8,["class"])),f("span",eh,k(E.count),1)],10,Qp))),128))])],512),x(r).status.value==="engaging"?(d(),G(Np,{key:0,title:h.$t("tools.collapsed"),body:h.$t("tools.collapsedBody"),anchor:p.value,onDismiss:g[0]||(g[0]=E=>x(r).dismiss())},null,8,["title","body","anchor"])):M("",!0),u.value?(d(),b("ul",th,[(d(!0),b(J,null,le(e.steps,E=>(d(),b("li",{key:E.toolCallId},[f("button",{type:"button","data-test":"tool-row",class:"flex w-full items-center gap-2 rounded text-left text-[12px] hover:bg-fg/5",onClick:A=>s(E.toolCallId)},[f("span",{class:X(["grid h-4 w-4 shrink-0 place-items-center rounded-full",E.status==="success"?"bg-run/15":E.status==="running"?"bg-accent/15":"bg-danger/15"])},[E.status==="success"?(d(),G(x(uu),{key:0,"data-test":"step-status-success",size:9,class:"text-run"})):E.status==="running"?(d(),G(x(Lt),{key:1,"data-test":"step-status-running",size:9,class:"animate-spin motion-reduce:animate-none text-accent"})):(d(),G(x(pu),{key:2,"data-test":"step-status-error",size:9,class:"text-danger"}))],2),(d(),G(Mt(x(es)[E.kind]),{size:12,class:"shrink-0 text-fg-muted"})),f("span",nh,k(E.title),1),E.durationMs!==void 0?(d(),b("span",sh,k(v(E.durationMs)),1)):M("",!0)],8,uh),n.value.has(E.toolCallId)&&E.detail?(d(),b("div",ah,[B(Er,{detail:E.detail},null,8,["detail"])])):M("",!0)]))),128))])):M("",!0)]))}}),oh={class:"overflow-hidden rounded-lg border border-border bg-surface text-xs shadow-e1"},ih={key:2,"data-test":"reasoning-shimmer",class:"ml-1 inline-block h-1.5 w-1.5 animate-pulse motion-reduce:animate-none rounded-full bg-fg-muted","aria-hidden":"true"},lh={key:0,"data-test":"reasoning-body",class:"whitespace-pre-wrap border-t border-border px-3 pb-2.5 pt-2 text-[12px] leading-relaxed text-fg-muted"},Cr=de({__name:"ReasoningPanel",props:{reasoning:{},defaultOpen:{type:Boolean,default:!1},streaming:{type:Boolean,default:!1}},setup(e){const u=S(e.defaultOpen??!1),n=Z(()=>u.value);return(s,a)=>(d(),b("div",oh,[f("button",{type:"button",class:"flex w-full items-center gap-1.5 px-3 py-2 text-left text-fg-muted",onClick:a[0]||(a[0]=r=>u.value=!u.value)},[n.value?(d(),G(x(at),{key:0,size:13})):(d(),G(x(kt),{key:1,size:13})),B(x(Un),{size:13,class:X(e.streaming?"text-accent":"")},null,8,["class"]),f("span",{class:X(["text-[12px] font-medium",e.streaming?"shimmer-text":""])},k(e.streaming?s.$t("reasoning.reasoningStreaming"):s.$t("reasoning.reasoning")),3),e.streaming?(d(),b("span",ih)):M("",!0)]),n.value?(d(),b("p",lh,k(e.reasoning),1)):M("",!0)]))}}),ch={class:"truncate font-mono text-[11.5px] text-fg"},dh={class:"ml-auto flex shrink-0 items-center gap-2"},fh={key:0,class:"font-mono text-[10.5px] text-fg-muted"},ph={key:0,class:"border-t border-border px-3 pb-2.5 pt-2"},hh={key:0,"data-test":"tool-step-error",class:"mb-1.5 flex items-start gap-1.5 rounded bg-danger/10 px-2 py-1.5 text-danger"},mh={class:"whitespace-pre-wrap break-words font-mono text-[11px] leading-relaxed"},bh=de({__name:"ToolStepCard",props:{step:{}},setup(e){const t=S(!0);function u(n){return n===void 0?"":n>=1e3?`${(n/1e3).toFixed(1)}s`:`${n}ms`}return(n,s)=>(d(),b("div",{"data-test":"tool-step-card",class:X(["overflow-hidden rounded-lg border bg-surface text-xs shadow-e1",e.step.status==="error"?"border-danger/40":"border-border"])},[f("button",{type:"button","data-test":"tool-step-header",class:"flex w-full items-center gap-2 px-3 py-2 text-left transition-colors hover:bg-bg",onClick:s[0]||(s[0]=a=>t.value=!t.value)},[t.value?(d(),G(x(at),{key:0,size:13,class:"text-fg-muted"})):(d(),G(x(kt),{key:1,size:13,class:"text-fg-muted"})),(d(),G(Mt(x(es)[e.step.kind]),{size:13,class:"shrink-0 text-fg-muted"})),f("span",ch,k(e.step.title),1),f("span",dh,[e.step.durationMs!==void 0?(d(),b("span",fh,k(u(e.step.durationMs)),1)):M("",!0),e.step.status==="success"?(d(),G(x(uu),{key:1,"data-test":"step-status-success",size:13,class:"text-run"})):e.step.status==="running"?(d(),G(x(Lt),{key:2,"data-test":"step-status-running",size:13,class:"animate-spin motion-reduce:animate-none text-accent"})):(d(),G(x(pu),{key:3,"data-test":"step-status-error",size:13,class:"text-danger"}))])]),t.value?(d(),b("div",ph,[e.step.status==="error"&&e.step.error?(d(),b("div",hh,[B(x(pu),{size:13,class:"mt-0.5 shrink-0"}),f("span",mh,k(e.step.error),1)])):M("",!0),e.step.detail?(d(),G(Er,{key:1,detail:e.step.detail},null,8,["detail"])):M("",!0)])):M("",!0)],2))}}),gh={class:"space-y-2.5"},ma=de({__name:"TurnParts",props:{parts:{},streaming:{type:Boolean}},setup(e){const t=e,u=n=>t.streaming===!0&&n===t.parts.length-1;return(n,s)=>(d(),b("div",gh,[(d(!0),b(J,null,le(e.parts,(a,r)=>(d(),b(J,{key:r},[a.type==="reasoning"&&a.text.trim()?(d(),G(Cr,{key:0,reasoning:a.text,streaming:u(r),"default-open":!1},null,8,["reasoning","streaming"])):a.type==="tool"?(d(),G(bh,{key:1,step:a.step},null,8,["step"])):(d(),G(wr,{key:2,text:a.text,streaming:u(r),class:X(["text-[14px] leading-relaxed text-fg",u(r)?"caret":""])},null,8,["text","streaming","class"]))],64))),128))]))}}),xh=["aria-label","title"],Dr=de({__name:"CopyButton",props:{text:{}},setup(e){const t=e,u=S(!1);let n=null;async function s(){try{await navigator.clipboard.writeText(t.text)}catch{const a=document.createElement("textarea");a.value=t.text,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();try{document.execCommand("copy")}catch{}document.body.removeChild(a)}u.value=!0,n&&clearTimeout(n),n=setTimeout(()=>u.value=!1,1200)}return(a,r)=>(d(),b("button",{"data-test":"copy-button",type:"button","aria-label":a.$t("copy.copy"),title:u.value?a.$t("copy.copied"):a.$t("copy.copy"),class:"rounded p-1 leading-none text-fg-muted hover:bg-fg/5 hover:text-fg",onClick:Ae(s,["stop"])},[u.value?(d(),G(x(uu),{key:0,size:14,class:"text-run"})):(d(),G(x(fo),{key:1,size:14}))],8,xh))}}),vh={class:"mt-1 flex flex-wrap gap-2"},yh=["src","alt"],kh={key:1,"data-test":"att-file",class:"flex items-center gap-2 rounded-lg border border-border bg-surface px-3 py-2 text-[13px]"},_h={class:"max-w-[180px] truncate"},wh={class:"text-fg-muted"},Eh=de({__name:"MessageAttachments",props:{attachments:{}},setup(e){function t(u){return u<1024?`${u} B`:u<1024*1024?`${(u/1024).toFixed(0)} KB`:`${(u/1024/1024).toFixed(1)} MB`}return(u,n)=>(d(),b("div",vh,[(d(!0),b(J,null,le(e.attachments,s=>(d(),b(J,{key:s.id},[s.kind==="image"&&s.previewUrl?(d(),b("img",{key:0,"data-test":"att-image",src:s.previewUrl,alt:s.filename,class:"max-h-40 max-w-[200px] rounded-lg border border-border object-cover"},null,8,yh)):(d(),b("div",kh,[B(x(hu),{size:16,class:"shrink-0 text-fg-muted"}),f("span",_h,k(s.filename),1),f("span",wh,k(t(s.size)),1)]))],64))),128))]))}}),Ah={class:"relative flex-1 overflow-hidden"},$h={class:"mx-auto max-w-3xl space-y-5"},Ch={key:0,"data-test":"loading-older",class:"flex justify-center py-1 text-[11px] text-fg-muted"},Dh=["data-scheduled-task"],Th={class:"flex max-w-[80%] flex-col items-end"},Sh=["title"],Fh={class:"whitespace-pre-wrap text-[14px] leading-relaxed text-fg"},Ih={key:1,class:"mt-1 flex items-center gap-2"},Mh={"data-test":"msg-failed",class:"text-xs text-danger"},zh=["title","onClick"],Lh={key:1,class:"cv-row group flex gap-2.5"},Oh={class:"mt-0.5 grid h-6 w-6 shrink-0 place-items-center rounded-lg border border-border bg-surface"},Rh={"data-test":"msg-actions",class:"flex items-center gap-1.5 pt-0.5 text-fg-muted"},Nh={key:1,"data-test":"msg-time",class:"font-mono text-[10.5px] tabular-nums"},Ph={key:2,"data-test":"msg-cancelled",class:"inline-flex items-center gap-1 text-[11px] text-warn"},Bh={key:3,"data-test":"msg-failed",class:"text-[11px] text-danger"},Uh={key:1,class:"flex gap-2.5"},qh={class:"mt-0.5 grid h-6 w-6 shrink-0 place-items-center rounded-lg border border-border bg-surface"},jh={"data-test":"msg-streaming",class:"min-w-0 flex-1"},Hh=48,Wh=240,Vh=de({__name:"MessageList",props:{messages:{},liveTurn:{},hasMoreOlder:{type:Boolean},loadingOlder:{type:Boolean},sessionKey:{},scrollToScheduled:{}},emits:["resend","loadOlder"],setup(e,{emit:t}){const u=e,n=t;function s(c){var v;return c.scheduled??((v=c.structured)==null?void 0:v.scheduled)}const a=S(null),r=S(!0);let o=null;function i(){const c=a.value;c&&(r.value=c.scrollHeight-c.scrollTop-c.clientHeight<=Hh,c.scrollTop<=Wh&&u.hasMoreOlder&&!u.loadingOlder&&o===null&&(o=c.scrollHeight-c.scrollTop,n("loadOlder")))}xe(()=>u.loadingOlder,(c,v)=>{if(!(v&&!c)||o===null)return;const h=o;o=null,je(()=>{const g=a.value;g&&(g.scrollTop=g.scrollHeight-h)})});let l=0;function p(c=!1){const v=a.value;if(!v||(typeof v.scrollTo=="function"?v.scrollTo({top:v.scrollHeight,behavior:c?"smooth":"auto"}):v.scrollTop=v.scrollHeight,r.value=!0,c||typeof requestAnimationFrame!="function"))return;l&&cancelAnimationFrame(l);let h=0;const g=()=>{l=0;const E=a.value;E&&(E.scrollHeight-E.scrollTop-E.clientHeight>1&&(E.scrollTop=E.scrollHeight),++h<4&&(l=requestAnimationFrame(g)))};l=requestAnimationFrame(g)}return xe(()=>u.sessionKey,()=>{r.value=!0,o=null,je(()=>p(!1))}),xe(()=>{var c;return(c=u.scrollToScheduled)==null?void 0:c.nonce},()=>{var v;const c=(v=u.scrollToScheduled)==null?void 0:v.taskId;c&&je(()=>{var g;const h=(g=a.value)==null?void 0:g.querySelector(`[data-scheduled-task="${c}"]`);h&&typeof h.scrollIntoView=="function"&&(h.scrollIntoView({behavior:"smooth",block:"center"}),r.value=!1)})}),xe(()=>{const c=u.liveTurn,v=c==null?void 0:c.parts[c.parts.length-1],h=v?v.type==="tool"?v.step.status:v.text.length:0;return[u.messages.length,(c==null?void 0:c.parts.length)??0,h]},()=>{r.value&&je(()=>p(!1))}),(c,v)=>(d(),b("div",Ah,[f("div",{ref_key:"scroller",ref:a,"data-test":"msg-scroller",class:"thin-scroll h-full overflow-y-auto px-3 py-4 lg:px-5 lg:py-5",onScroll:i},[f("div",$h,[e.loadingOlder?(d(),b("div",Ch,[B(x(Lt),{size:13,class:"animate-spin motion-reduce:animate-none"})])):M("",!0),(d(!0),b(J,null,le(e.messages,(h,g)=>{var E,A,w,C,y,_,D,N;return d(),b(J,{key:h.id!==void 0?`p${h.id}`:`o${h.createdAt}:${g}`},[h.direction==="in"?(d(),b("div",{key:0,class:"cv-row flex justify-end","data-scheduled-task":(E=s(h))==null?void 0:E.taskId},[f("div",Th,[s(h)?(d(),b("span",{key:0,"data-test":"msg-scheduled-badge",class:"mb-1 inline-flex items-center gap-1 rounded-full bg-accent/10 px-2 py-0.5 text-[10.5px] font-medium text-accent",title:`${c.$t("chat.scheduledFor")} ${x(qn)(s(h).executeAt)}`},[B(x(Da),{size:11}),he(k(c.$t("chat.scheduled")),1)],8,Sh)):M("",!0),f("div",{"data-test":"msg-in",class:X(["rounded-2xl rounded-tr-md border border-accent/15 bg-accent/10 px-3.5 py-2",h.failed?"ring-1 ring-danger":""])},[f("p",Fh,k(h.text),1),(A=h.attachments)!=null&&A.length?(d(),G(Eh,{key:0,attachments:h.attachments},null,8,["attachments"])):M("",!0)],2),h.failed?(d(),b("div",Ih,[f("span",Mh,k(c.$t("chat.failedToSend")),1),f("button",{type:"button","data-test":"msg-resend",class:"inline-flex items-center gap-1 text-xs font-medium text-accent hover:opacity-80",title:c.$t("chat.resendThis"),onClick:V=>n("resend",h)},[B(x(Co),{size:12}),he(k(c.$t("chat.resend")),1)],8,zh)])):M("",!0)])],8,Dh)):(d(),b("div",Lh,[f("div",Oh,[B(x(Mn),{size:13,class:"text-accent"})]),f("div",{"data-test":"msg-out",class:X(["min-w-0 flex-1 space-y-2.5",h.failed?"rounded-lg ring-1 ring-danger":""])},[(C=(w=h.structured)==null?void 0:w.parts)!=null&&C.length?(d(),G(ma,{key:0,parts:h.structured.parts},null,8,["parts"])):(d(),b(J,{key:1},[(_=(y=h.structured)==null?void 0:y.toolSteps)!=null&&_.length?(d(),G(rh,{key:0,steps:h.structured.toolSteps},null,8,["steps"])):M("",!0),(N=(D=h.structured)==null?void 0:D.reasoning)!=null&&N.trim()?(d(),G(Cr,{key:1,reasoning:h.structured.reasoning,"default-open":!1},null,8,["reasoning"])):M("",!0),h.text?(d(),G(wr,{key:2,text:h.text,class:"text-[14px] leading-relaxed text-fg"},null,8,["text"])):M("",!0)],64)),f("div",Rh,[h.text?(d(),G(Dr,{key:0,text:h.text},null,8,["text"])):M("",!0),x(Ds)(h.createdAt)?(d(),b("span",Nh,k(x(Ds)(h.createdAt)),1)):M("",!0),h.status==="cancelled"?(d(),b("span",Ph,[B(x(io),{size:12}),he(" "+k(c.$t("chat.stopped")),1)])):M("",!0),h.failed?(d(),b("span",Bh,k(c.$t("chat.failed")),1)):M("",!0)])],2)]))],64)}),128)),e.liveTurn&&e.liveTurn.parts.length?(d(),b("div",Uh,[f("div",qh,[B(x(Mn),{size:13,class:"text-accent"})]),f("div",jh,[B(ma,{parts:e.liveTurn.parts,streaming:!0},null,8,["parts"])])])):M("",!0)])],544),_e(f("button",{"data-test":"jump-latest",type:"button",class:"absolute bottom-3 left-1/2 -translate-x-1/2 rounded-full border border-border bg-raised px-3 py-1 text-xs text-fg-muted shadow hover:bg-fg/5",onClick:v[0]||(v[0]=h=>p(!0))},k(c.$t("chat.jumpLatest")),513),[[qu,!r.value]])]))}}),Gh=no(Vh,[["__scopeId","data-v-a7278286"]]),Tr="xacpx.composer-drafts.v1";function Sr(){try{const e=sessionStorage.getItem(Tr);return e?JSON.parse(e):{}}catch{return{}}}function Kh(e){try{sessionStorage.setItem(Tr,JSON.stringify(e))}catch{}}function ba(e){return e?Sr()[e]??"":""}function ga(e,t){if(!e)return;const u=Sr();t?u[e]=t:delete u[e],Kh(u)}const Zh={class:"mb-1 text-[11px] font-semibold uppercase tracking-wide text-fg-muted"},Xh={class:"flex items-baseline justify-between tabular-nums"},Yh={class:"text-fg"},Jh={class:"text-fg-muted"},Qh={class:"mb-1 mt-3 text-[11px] font-semibold uppercase tracking-wide text-fg-muted"},e2={class:"space-y-0.5"},t2={key:0,class:"flex justify-between tabular-nums"},u2={class:"text-fg-muted"},n2={class:"text-fg"},s2={class:"mb-1 mt-3 text-[11px] font-semibold uppercase tracking-wide text-fg-muted"},a2={class:"flex justify-between tabular-nums"},r2={class:"text-fg-muted"},o2={class:"text-fg"},i2=de({__name:"UsagePopover",props:{used:{},size:{},pct:{},cost:{},breakdown:{},anchor:{}},emits:["dismiss"],setup(e,{emit:t}){const u=e,n=t,s=S(null),a=S({visibility:"hidden"}),r=[{key:"inputTokens",label:"chat.usage.input"},{key:"outputTokens",label:"chat.usage.output"},{key:"cachedReadTokens",label:"chat.usage.cacheRead"},{key:"cachedWriteTokens",label:"chat.usage.cacheWrite"},{key:"thoughtTokens",label:"chat.usage.thinking"},{key:"totalTokens",label:"chat.usage.total"}];function o(v){return typeof v=="number"?v.toLocaleString():null}function i(){var g,E;const v=(g=u.cost)==null?void 0:g.amount;if(typeof v!="number")return null;const h=(E=u.cost)==null?void 0:E.currency;try{if(h)return new Intl.NumberFormat(void 0,{style:"currency",currency:h,maximumFractionDigits:4}).format(v)}catch{}return h?`${v} ${h}`:String(v)}function l(){const v=s.value;if(!v)return;const h={width:v.offsetWidth||240,height:v.offsetHeight||160},g={width:window.innerWidth,height:window.innerHeight};if(u.anchor){const E=Ar(u.anchor,h,g);a.value={top:`${E.top}px`,left:`${E.left}px`,visibility:"visible"}}else a.value={top:`${Math.max(8,g.height/2-h.height/2)}px`,left:`${Math.max(8,g.width/2-h.width/2)}px`,visibility:"visible"}}function p(v){v.key==="Escape"&&n("dismiss")}function c(v){s.value&&!s.value.contains(v.target)&&n("dismiss")}return nt(()=>{l(),window.addEventListener("keydown",p),window.addEventListener("resize",l),setTimeout(()=>document.addEventListener("pointerdown",c),0)}),Qt(()=>{window.removeEventListener("keydown",p),window.removeEventListener("resize",l),document.removeEventListener("pointerdown",c)}),(v,h)=>(d(),G(eu,{to:"body"},[f("div",{ref_key:"card",ref:s,"data-test":"usage-popover",class:"fixed z-[60] w-60 rounded-lg border border-border bg-raised p-3 text-sm shadow-e2",style:tu(a.value),role:"dialog"},[f("p",Zh,k(v.$t("chat.usage.contextWindow")),1),f("div",Xh,[f("span",Yh,k(e.used.toLocaleString())+" / "+k(e.size.toLocaleString()),1),f("span",Jh,k(e.pct)+"%",1)]),e.breakdown?(d(),b(J,{key:0},[f("p",Qh,k(v.$t("chat.usage.tokens")),1),f("dl",e2,[(d(),b(J,null,le(r,g=>(d(),b(J,{key:g.key},[o(e.breakdown[g.key])!==null?(d(),b("div",t2,[f("dt",u2,k(v.$t(g.label)),1),f("dd",n2,k(o(e.breakdown[g.key])),1)])):M("",!0)],64))),64))])],64)):M("",!0),i()!==null?(d(),b(J,{key:1},[f("p",s2,k(v.$t("chat.usage.cost")),1),f("div",a2,[f("span",r2,k(v.$t("chat.usage.cumulative")),1),f("span",o2,k(i()),1)])],64)):M("",!0)],4)]))}}),l2=At("session-controls",()=>{const e=S(void 0),t=S([]),u=S(!1),n=S("");function s(){e.value=void 0,t.value=[],n.value=""}async function a(o,i){if(!o||!i){s();return}u.value=!0,n.value="";try{const l=await re.rpc(o,"control.session.model.get",{sessionAlias:i});if(Zt(l)){s();return}e.value=typeof l.current=="string"?l.current:void 0,t.value=Array.isArray(l.available)?l.available:[]}catch{s()}finally{u.value=!1}}async function r(o,i,l){n.value="";const p=e.value;e.value=l;try{const c=await re.rpc(o,"control.session.model.set",{sessionAlias:i,modelId:l});return Zt(c)?(e.value=p,n.value=c.error.message,!1):!0}catch(c){return e.value=p,n.value=c instanceof Error?c.message:"set-failed",!1}}return{current:e,available:t,loading:u,error:n,reset:s,loadModel:a,setModel:r}}),c2=new Set(["minimal","low","medium","high","xhigh","max"]);function xa(e){const t=/^(.+)\[([a-z]+)\]$/.exec(e);return t&&c2.has(t[2])?`${t[1]}/${t[2]}`:e}const d2={class:"rounded-lg border border-border bg-surface shadow-e2 focus-within:border-accent/50 transition-colors"},f2={key:0,class:"flex flex-wrap gap-2 px-2.5 pt-2.5 pb-1"},p2=["src","alt"],h2={class:"max-w-[120px] truncate text-fg"},m2={key:1,class:"text-fg-muted"},b2={key:2,class:"text-danger font-semibold"},g2=["title","onClick"],x2={key:1,"data-test":"attach-rejected",class:"block px-3 pt-2 text-xs text-danger"},v2={key:2,"data-test":"cmd-menu",role:"listbox",class:"mx-2.5 mt-2 max-h-56 overflow-auto rounded-md border border-border bg-raised py-1 shadow-e2"},y2=["aria-selected","onMousedown","onMouseenter"],k2={class:"shrink-0 font-medium text-fg"},_2={key:0,class:"truncate text-fg-muted"},w2=["placeholder"],E2={class:"flex items-center justify-between px-2.5 pb-2.5 pt-0.5"},A2={key:0,class:"relative flex items-center gap-2"},$2=["disabled"],C2={class:"font-mono text-[11.5px] font-medium text-fg"},D2={key:0,"data-test":"model-menu",class:"absolute bottom-full left-0 z-10 mb-1 max-h-48 min-w-40 overflow-y-auto rounded-lg border border-border bg-raised shadow-lg"},T2=["onClick"],S2={class:"font-mono"},F2={key:1,"data-test":"model-error",class:"text-xs text-danger"},I2=["title"],M2={class:"relative h-1 w-8 shrink-0 overflow-hidden rounded-full bg-border"},z2={class:"shrink-0 text-[11.5px] font-medium tabular-nums text-fg-muted"},L2={key:1},O2={class:"flex items-center gap-1.5"},R2=["title"],N2=["disabled"],P2=de({__name:"PromptInput",props:{busy:{type:Boolean},draftKey:{},instanceId:{},sessionAlias:{}},emits:["send","cancel"],setup(e,{emit:t}){const u=e,n=t,s=La(),a=l2(),r=$t(),o=Z(()=>{const $=r.sessionUsage;if(!$||$.size<=0)return null;const I=Math.min(100,Math.round($.used/$.size*100)),R=I>=90?"danger":I>=75?"warn":"accent";return{used:$.used,size:$.size,pct:I,tone:R,cost:$.cost,breakdown:$.breakdown}}),i=S(!1),l=S(null);function p($){const I=$.currentTarget.getBoundingClientRect();l.value={top:I.top,left:I.left,width:I.width,height:I.height},i.value=!i.value}const c=S(!1);xe(()=>[u.instanceId,u.sessionAlias],([$,I])=>{a.loadModel($??null,I??null),c.value=!1},{immediate:!0});async function v($){c.value=!1,u.instanceId&&u.sessionAlias&&await a.setModel(u.instanceId,u.sessionAlias,$)}const h=S(ba(u.draftKey??"")),g=S(null),E=S(null),A=S(!1),w=S(0),C=Z(()=>{const $=h.value;return!$.startsWith("/")||$.includes(`
285
285
  `)||$.slice(1).includes(" ")?null:$.slice(1).toLowerCase()}),y=Z(()=>{const $=C.value;return $===null?[]:r.sessionCommands.filter(I=>I.name.toLowerCase().startsWith($)).slice(0,8)});xe(y,$=>{A.value=$.length>0,w.value=0});function _($){h.value=`/${$} `,A.value=!1,je(()=>{var I;return(I=g.value)==null?void 0:I.focus()})}function D(){var $;($=E.value)==null||$.click()}async function N($){const I=$.target;I.files&&await s.addFiles(Array.from(I.files)),I.value=""}async function V($){var R;const I=Array.from(((R=$.clipboardData)==null?void 0:R.files)??[]);I.length>0&&($.preventDefault(),await s.addFiles(I))}async function te($){var R;const I=Array.from(((R=$.dataTransfer)==null?void 0:R.files)??[]);I.length>0&&($.preventDefault(),await s.addFiles(I))}xe(h,$=>ga(u.draftKey??"",$)),xe(()=>u.draftKey,($,I)=>{I&&ga(I,h.value),h.value=ba($??"")}),xe(()=>s.insertRequest,$=>{!$||$.key!==(u.draftKey??"")||(h.value=h.value.trim()?`${h.value.trimEnd()} ${$.text}`:$.text,je(()=>{var I;return(I=g.value)==null?void 0:I.focus()}))});const ne=S([]);let ee=-1;function L(){if(u.busy||s.uploading)return;const $=h.value.trim(),I=s.pending.filter(fe=>fe.status==="ready");if(!$&&I.length===0)return;const R=I.map(fe=>({id:fe.id,filePath:fe.filePath,fileName:fe.filename,mimeType:fe.mimeType,kind:fe.kind,size:fe.size,...fe.previewUrl?{previewUrl:fe.previewUrl}:{}}));n("send",$,R),s.clearAttachments(),$&&ne.value[ne.value.length-1]!==$&&ne.value.push($),ee=-1,h.value=""}function F($){if(ne.value.length!==0){if($===-1)ee=ee===-1?ne.value.length-1:Math.max(0,ee-1);else{if(ee===-1)return;if(ee=ee+1,ee>=ne.value.length){ee=-1,h.value="";return}}h.value=ne.value[ee]}}function P($){var R,fe;if($.isComposing)return;if(A.value&&y.value.length>0){if($.key==="ArrowDown"){w.value=(w.value+1)%y.value.length,$.preventDefault();return}if($.key==="ArrowUp"){w.value=(w.value-1+y.value.length)%y.value.length,$.preventDefault();return}if($.key==="Enter"||$.key==="Tab"){const H=y.value[w.value];H&&_(H.name),$.preventDefault();return}if($.key==="Escape"){A.value=!1,$.preventDefault();return}}if($.key==="Escape"){u.busy&&(n("cancel"),$.preventDefault());return}if($.key==="Enter"&&!$.shiftKey){L(),$.preventDefault();return}const I=(((R=g.value)==null?void 0:R.selectionStart)??0)===0&&(((fe=g.value)==null?void 0:fe.selectionEnd)??0)===0;if($.key==="ArrowUp"&&I){F(-1),$.preventDefault();return}if($.key==="ArrowDown"&&ee!==-1&&I){F(1),$.preventDefault();return}}function O(){ee=-1}return($,I)=>(d(),b("form",{class:"relative border-t border-border px-0 pt-3 lg:px-3 lg:pt-3",onSubmit:Ae(L,["prevent"]),onDrop:Ae(te,["prevent"]),onDragover:I[4]||(I[4]=Ae(()=>{},["prevent"]))},[f("input",{ref_key:"fileInput",ref:E,type:"file",multiple:"",class:"hidden","data-test":"attach-input",onChange:N},null,544),f("div",d2,[x(s).pending.length?(d(),b("div",f2,[(d(!0),b(J,null,le(x(s).pending,R=>(d(),b("div",{key:R.id,class:"flex items-center gap-1.5 rounded-md border border-border bg-raised px-2 py-1 text-[12px]"},[R.previewUrl?(d(),b("img",{key:0,src:R.previewUrl,class:"h-6 w-6 rounded object-cover",alt:R.filename},null,8,p2)):M("",!0),f("span",h2,k(R.filename),1),R.status==="uploading"?(d(),b("span",m2,"…")):R.status==="error"?(d(),b("span",b2,"!")):M("",!0),f("button",{type:"button",title:$.$t("chat.attach.remove"),class:"text-fg-muted hover:text-fg transition-colors",onClick:fe=>x(s).removeAttachment(R.id)},[B(x(st),{size:12})],8,g2)]))),128))])):M("",!0),x(s).rejection?(d(),b("span",x2,k(x(s).rejection.reason==="too-many"?$.$t("chat.attach.tooMany"):$.$t("chat.attach.tooLarge",{name:x(s).rejection.filename})),1)):M("",!0),A.value&&y.value.length?(d(),b("ul",v2,[(d(!0),b(J,null,le(y.value,(R,fe)=>(d(),b("li",{key:R.name,"data-test":"cmd-item",role:"option","aria-selected":fe===w.value,class:X(["flex cursor-pointer items-baseline gap-2 px-3 py-1.5 text-[13px]",fe===w.value?"bg-accent/10":""]),onMousedown:Ae(H=>_(R.name),["prevent"]),onMouseenter:H=>w.value=fe},[f("span",k2,"/"+k(R.name),1),R.description?(d(),b("span",_2,k(R.description),1)):M("",!0)],42,y2))),128))])):M("",!0),_e(f("textarea",{ref_key:"textarea",ref:g,"onUpdate:modelValue":I[0]||(I[0]=R=>h.value=R),rows:"2",class:"w-full resize-none bg-transparent px-3.5 pt-2.5 pb-1 text-[16px] lg:text-[14px] leading-relaxed text-fg placeholder:text-fg-muted focus:outline-none",placeholder:e.busy?$.$t("chat.working"):$.$t("chat.message"),onInput:O,onKeydown:P,onPaste:V},null,40,w2),[[Re,h.value]]),f("div",E2,[e.instanceId&&e.sessionAlias?(d(),b("div",A2,[f("button",{type:"button","data-test":"model-chip",class:"flex items-center gap-1.5 px-1.5 py-1 rounded-md text-fg-muted hover:bg-raised transition-colors disabled:opacity-60",disabled:!x(a).available.length,onClick:I[1]||(I[1]=R=>c.value=!c.value)},[B(x(Un),{size:14,class:"text-accent"}),f("span",C2,k(x(a).current?x(xa)(x(a).current):$.$t("chat.model")),1),x(a).available.length?(d(),G(x(at),{key:0,size:13})):M("",!0)],8,$2),c.value&&x(a).available.length?(d(),b("ul",D2,[(d(!0),b(J,null,le(x(a).available,R=>(d(),b("li",{key:R},[f("button",{type:"button","data-test":"model-option",class:X(["flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm",R===x(a).current?"bg-accent/10 text-accent":"hover:bg-fg/10 text-fg-muted"]),onClick:fe=>v(R)},[f("span",S2,k(x(xa)(R)),1),R===x(a).current?(d(),G(x(uu),{key:0,size:14,class:"ml-auto"})):M("",!0)],10,T2)]))),128))])):M("",!0),x(a).error?(d(),b("span",F2,k(x(a).error),1)):M("",!0),o.value?(d(),b("button",{key:2,type:"button","data-test":"context-meter",class:"flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded pl-0.5 hover:opacity-80",title:$.$t("chat.contextUsage",{used:o.value.used.toLocaleString(),size:o.value.size.toLocaleString()}),onClick:p},[B(x(xo),{size:13,class:X(["shrink-0",o.value.tone==="danger"?"text-danger":o.value.tone==="warn"?"text-warn":"text-accent"])},null,8,["class"]),f("span",M2,[f("span",{class:X(["absolute inset-y-0 left-0 rounded-full",o.value.tone==="danger"?"bg-danger":o.value.tone==="warn"?"bg-warn":"bg-accent"]),style:tu({width:o.value.pct+"%"})},null,6)]),f("span",z2,k(o.value.pct)+"%",1)],8,I2)):M("",!0),o.value&&i.value?(d(),G(i2,{key:3,used:o.value.used,size:o.value.size,pct:o.value.pct,cost:o.value.cost,breakdown:o.value.breakdown,anchor:l.value,onDismiss:I[2]||(I[2]=R=>i.value=!1)},null,8,["used","size","pct","cost","breakdown","anchor"])):M("",!0)])):(d(),b("span",L2)),f("div",O2,[f("button",{type:"button","data-test":"attach-btn",title:$.$t("chat.attach.add"),class:"flex items-center gap-1.5 px-1.5 py-1 rounded-md text-fg-muted hover:bg-raised transition-colors",onClick:D},[B(x(Eo),{size:15})],8,R2),e.busy?(d(),b("button",{key:0,type:"button","data-test":"composer-stop",class:"flex items-center gap-1.5 pl-3 pr-2.5 py-1.5 rounded-md bg-danger text-white text-[12.5px] font-semibold hover:opacity-90 transition-all",onClick:I[3]||(I[3]=R=>n("cancel"))},k($.$t("chat.stop")),1)):(d(),b("button",{key:1,type:"submit","data-test":"composer-send",disabled:x(s).uploading||!h.value.trim()&&!x(s).pending.filter(R=>R.status==="ready").length,class:"flex items-center gap-1.5 pl-3 pr-2.5 py-1.5 rounded-md bg-accent text-white text-[12.5px] font-semibold shadow-e1 hover:bg-accent-hover hover:shadow-e2 transition-all disabled:bg-fg/10 disabled:text-fg-muted disabled:shadow-none"},[he(k($.$t("chat.send"))+" ",1),B(x(Do),{size:14})],8,N2))])])])],32))}}),B2={key:0,"data-test":"plan-panel",class:"rounded-md border border-border bg-surface p-2 text-sm"},U2=["aria-expanded","aria-label"],q2={class:"ml-auto font-mono tabular-nums"},j2=["data-test"],H2=de({__name:"PlanPanel",props:{entries:{},active:{type:Boolean,default:void 0}},setup(e){const t=e,u=S(t.active??!0),n=S(null),s=Z(()=>t.entries.filter(l=>l.status==="completed").length),a=Z(()=>{let l=-1;return t.entries.forEach((p,c)=>{p.status==="in_progress"&&(l=c)}),l>=0?l:(t.entries.forEach((p,c)=>{p.status==="completed"&&(l=c)}),l>=0?l:t.entries.length-1)}),r=l=>l==="completed"?Ca:l==="in_progress"?Lt:co,o=l=>l==="completed"?"text-run":l==="in_progress"?"text-accent":"text-fg-muted";async function i(){var c;if(!u.value)return;await je();const l=n.value;if(!l)return;const p=l.children[a.value];(c=p==null?void 0:p.scrollIntoView)==null||c.call(p,{block:"nearest"})}return xe(()=>t.entries,i,{flush:"post"}),xe(u,i),xe(()=>t.active,l=>{l!==void 0&&(u.value=l)}),(l,p)=>e.entries.length?(d(),b("div",B2,[f("button",{type:"button","data-test":"plan-toggle","aria-expanded":u.value,"aria-controls":"plan-list","aria-label":l.$t("plan.togglePlan"),class:"mb-1 flex w-full items-center gap-1.5 text-xs font-semibold uppercase text-fg-muted hover:text-fg transition-colors",onClick:p[0]||(p[0]=c=>u.value=!u.value)},[u.value?(d(),G(x(at),{key:0,size:12,class:"shrink-0"})):(d(),G(x(kt),{key:1,size:12,class:"shrink-0"})),he(" "+k(l.$t("plan.title"))+" ",1),f("span",q2,k(s.value)+"/"+k(e.entries.length),1)],8,U2),_e(f("ul",{id:"plan-list",ref_key:"listEl",ref:n,class:"max-h-48 overflow-y-auto thin-scroll space-y-0.5"},[(d(!0),b(J,null,le(e.entries,(c,v)=>(d(),b("li",{key:v,"data-test":v===a.value?"plan-active":void 0,class:"flex items-start gap-1.5"},[(d(),G(Mt(r(c.status)),{size:13,class:X([o(c.status),"mt-0.5 shrink-0",c.status==="in_progress"?"animate-spin motion-reduce:animate-none":""])},null,8,["class"])),f("span",{class:X(["min-w-0",c.status==="completed"?"text-fg-muted line-through":"text-fg"])},k(c.content),3)],8,j2))),128))],512),[[qu,u.value]])])):M("",!0)}}),W2={class:"flex h-full flex-1 flex-col"},V2={key:0,class:"flex flex-1 items-center justify-center text-fg-muted"},G2={class:"shrink-0 flex min-h-11 lg:h-11 items-center gap-2.5 border-b border-border bg-surface/60 px-3 lg:px-5 py-1.5 lg:py-0 backdrop-blur-md"},K2={class:"hidden lg:block text-[14px] font-semibold tracking-tight text-fg"},Z2={key:0,class:"flex min-w-0 flex-1 items-center gap-1 overflow-x-auto no-scrollbar"},X2=["title"],Y2={key:1,"data-test":"ctx-chip-instance",class:"flex shrink-0 items-center gap-1 whitespace-nowrap rounded-md border border-border bg-surface py-0.5 pl-1.5 pr-2 text-[10.5px] font-medium text-fg-muted"},J2={key:2,"data-test":"ctx-chip-agent",class:"flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md border border-border bg-surface py-0.5 pl-1.5 pr-2 text-[10.5px] font-medium text-fg-muted"},Q2=["title"],em={key:0,class:"font-mono"},tm={key:1,class:"italic"},um={class:"text-warn"},nm={key:0,"data-test":"chat-error",class:"bg-danger/10 px-4 py-1 text-xs text-danger"},sm={class:"shrink-0 space-y-2 bg-gradient-to-t from-bg to-transparent px-2 lg:px-5 pb-[max(1rem,env(safe-area-inset-bottom))] pt-1.5"},am={key:0,"data-test":"turn-hud",class:"flex items-center gap-2 rounded-lg border border-run/20 bg-run/8 px-3 py-1.5"},rm={class:"text-[12px] font-semibold text-run"},om={class:"font-mono text-[12px] font-semibold tabular-nums text-run"},im={key:0,class:"text-[11.5px] text-fg-muted"},lm=de({__name:"ChatPane",emits:["show-files"],setup(e,{emit:t}){const u=t,n=$t(),s=pt(),a=Wu(),r=La();function o(A,w=[]){n.send(A,w)}xe(()=>n.instanceId,A=>{A&&r.bindInstance(A)},{immediate:!0}),xe(()=>[n.instanceId,n.sessionAlias],([A,w],C)=>{C&&(A!==C[0]||w!==C[1])&&r.clearAttachments()});const i=Z(()=>n.instanceId?s.byId(n.instanceId):void 0),l=Z(()=>{var A;return(A=i.value)==null?void 0:A.sessions.find(w=>w.alias===n.sessionAlias)});xe(()=>{var A;return[n.instanceId,(A=l.value)==null?void 0:A.workspace]},([A,w])=>{A&&w?a.loadGitSummary(A,w):a.gitSummary=null},{immediate:!0});const p=S(Date.now()),c=setInterval(()=>{p.value=Date.now()},1e3);Ru(()=>clearInterval(c));const v=Z(()=>{if(!n.liveTurn)return"";const A=Math.max(0,Math.floor((p.value-n.liveTurn.startedAt)/1e3));return`${Math.floor(A/60)}:${String(A%60).padStart(2,"0")}`}),h=Z(()=>n.liveToolSteps.filter(A=>A.status==="running").length),g=["Working","Thinking","Pondering","Cogitating","Reasoning","Computing","Churning","Crunching","Percolating","Noodling","Mulling","Brewing","Processing","Deliberating","Ruminating","Synthesizing","Wrangling","Tinkering"],E=Z(()=>{if(!n.liveTurn)return g[0];const A=Math.max(0,Math.floor((p.value-n.liveTurn.startedAt)/1e3));return g[Math.floor(A/10)%g.length]});return(A,w)=>{var C,y,_,D;return d(),b("div",W2,[x(n).sessionAlias?(d(),b(J,{key:1},[f("div",G2,[f("h1",K2,k(x(n).sessionAlias),1),l.value||i.value?(d(),b("div",Z2,[(C=l.value)!=null&&C.workspace?(d(),b("button",{key:0,"data-test":"ctx-chip-workspace",class:"flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md border border-border bg-surface py-0.5 pl-1.5 pr-2 text-[10.5px] font-medium text-fg-muted hover:bg-fg/5",title:A.$t("chat.browseFiles"),onClick:w[0]||(w[0]=N=>u("show-files"))},[B(x(zn),{size:11,class:"shrink-0 text-warn"}),f("span",null,k(l.value.workspace),1)],8,X2)):M("",!0),(y=i.value)!=null&&y.name?(d(),b("span",Y2,[w[4]||(w[4]=f("span",{class:"font-mono text-accent"},"@",-1)),f("span",null,k(i.value.name),1)])):M("",!0),(_=l.value)!=null&&_.agent?(d(),b("span",J2,[B(x(Mn),{size:11,class:"shrink-0 text-accent"}),f("span",null,k(l.value.agent),1)])):M("",!0),x(a).gitSummary?(d(),b("button",{key:3,"data-test":"git-summary",class:"flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md border border-border bg-surface py-0.5 pl-1.5 pr-2 text-[10.5px] font-medium text-fg-muted hover:bg-fg/5",title:x(a).gitSummary.branch||A.$t("chat.viewChanges"),onClick:w[1]||(w[1]=N=>{x(a).tab="changes",u("show-files")})},[B(x(Ln),{size:11,class:"shrink-0 text-warn"}),x(a).gitSummary.branch?(d(),b("span",em,k(x(a).gitSummary.branch),1)):x(a).gitSummary.detached?(d(),b("span",tm,k(A.$t("files.detached")),1)):M("",!0),w[5]||(w[5]=f("span",{class:"h-1 w-1 shrink-0 rounded-full bg-warn","aria-hidden":"true"},null,-1)),f("span",um,k(x(a).gitSummary.changedCount)+" "+k(A.$t("chat.changed")),1)],8,Q2)):M("",!0)])):M("",!0)]),x(n).error?(d(),b("div",nm,[he(k(x(n).error)+" ",1),f("button",{class:"ml-2 text-danger underline",onClick:w[2]||(w[2]=N=>x(n).error="")},k(A.$t("common.dismiss")),1)])):M("",!0),B(Gh,{messages:x(n).messages,"live-turn":x(n).liveTurn,"session-key":`${x(n).instanceId}\0${x(n).sessionAlias}`,"scroll-to-scheduled":x(n).scrollRequest,"has-more-older":x(n).hasMoreOlder,"loading-older":x(n).loadingOlder,onResend:x(n).resend,onLoadOlder:x(n).loadOlder},null,8,["messages","live-turn","session-key","scroll-to-scheduled","has-more-older","loading-older","onResend","onLoadOlder"]),f("div",sm,[x(n).busy?(d(),b("div",am,[w[6]||(w[6]=f("span",{class:"h-2 w-2 rounded-full bg-run pulse-dot","aria-hidden":"true"},null,-1)),f("span",rm,k(E.value)+"…",1),f("span",om,k(v.value),1),h.value>0?(d(),b("span",im,"· "+k(h.value)+" "+k(h.value===1?A.$t("chat.tool"):A.$t("chat.tools")),1)):M("",!0),w[7]||(w[7]=f("span",{class:"flex-1"},null,-1)),f("button",{"data-test":"cancel-turn",class:"flex items-center gap-1.5 text-[11.5px] font-medium text-danger transition-opacity hover:opacity-80",onClick:w[3]||(w[3]=(...N)=>x(n).cancel&&x(n).cancel(...N))},[B(x(st),{size:13}),he(k(A.$t("common.cancel")),1)])])):M("",!0),(D=x(n).sessionPlan)!=null&&D.length?(d(),G(H2,{key:1,entries:x(n).sessionPlan,active:x(n).busy},null,8,["entries","active"])):M("",!0),B(P2,{busy:x(n).busy,"draft-key":`${x(n).instanceId}\0${x(n).sessionAlias}`,"instance-id":x(n).instanceId,"session-alias":x(n).sessionAlias,onSend:o,onCancel:x(n).cancel},null,8,["busy","draft-key","instance-id","session-alias","onCancel"])])],64)):(d(),b("div",V2,k(A.$t("chat.selectSession")),1))])}}}),cm=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@(.*)$/;function dm(e){const t=[];let u=0,n=0,s=0,a=0,r=!1;for(const o of e.split(`
286
286
  `)){const i=cm.exec(o);if(i){s=Number(i[1]),a=Number(i[2]),r=!0,t.push({type:"hunk",oldNo:null,newNo:null,text:i[3].trim()});continue}if(!r)continue;const l=o[0];if(l==="+"){if(o.startsWith("+++"))continue;t.push({type:"add",oldNo:null,newNo:a,text:o.slice(1)}),a++,u++}else if(l==="-"){if(o.startsWith("---"))continue;t.push({type:"del",oldNo:s,newNo:null,text:o.slice(1)}),s++,n++}else l===" "&&(t.push({type:"context",oldNo:s,newNo:a,text:o.slice(1)}),s++,a++)}return{rows:t,add:u,del:n}}const fm={class:"flex h-full flex-1 flex-col bg-bg","data-test":"file-viewer-center"},pm={class:"flex h-11 shrink-0 items-center gap-2 border-b border-border bg-surface/60 px-3 backdrop-blur-md"},hm=["aria-label"],mm=["aria-label"],bm={class:"truncate font-mono text-[12.5px] text-fg"},gm={class:"shrink-0 text-[11px] text-fg-muted"},xm={key:0,class:"shrink-0 rounded bg-warn/10 px-1 text-[10.5px] text-warn"},vm={key:1,class:"shrink-0 rounded bg-fg/5 px-1 text-[10.5px] text-fg-muted"},ym={class:"truncate font-mono text-[12.5px] text-fg"},km={class:"ml-auto flex shrink-0 items-center gap-1"},_m=["aria-label"],wm={class:"min-h-0 flex-1 overflow-auto thin-scroll"},Em={key:0,"data-test":"fv-file-body"},Am=["innerHTML"],$m={key:1,class:"overflow-x-auto p-4 font-mono text-[12.5px] leading-relaxed text-fg whitespace-pre"},Cm={key:1,"data-test":"fv-file-body",class:"overflow-x-auto p-4 font-mono text-[12.5px] leading-relaxed text-fg whitespace-pre"},Dm={key:2,class:"p-6 text-sm text-fg-muted"},Tm={key:0,"data-test":"fv-diff-body",class:"font-mono text-[12.5px] leading-relaxed"},Sm={class:"sticky left-0 w-12 shrink-0 select-none border-r border-border bg-surface px-2 text-right tabular-nums text-fg-muted/70"},Fm={class:"w-12 shrink-0 select-none border-r border-border bg-surface px-2 text-right tabular-nums text-fg-muted/70"},Im={key:1,class:"p-6 text-sm text-fg-muted"},Mm={key:2,class:"px-4 py-1 text-xs text-warn"},va=5e3,zm=de({__name:"FileViewer",emits:["back","close"],setup(e,{emit:t}){const u=t,n=Wu(),s=Z(()=>{const l=n.file;return!l||l.binary?[]:l.content.split(`
287
- `)}),a=S("");let r=null;xe(()=>{var l,p,c;return[(l=n.file)==null?void 0:l.path,(p=n.file)==null?void 0:p.content,(c=n.file)==null?void 0:c.binary]},([l,p,c])=>{if(r&&clearTimeout(r),a.value="",!n.file||c||p===void 0||s.value.length>va)return;const v=p;r=setTimeout(()=>{(async()=>{var A;const{resolveLang:h,highlightToHtml:g}=await Qr(async()=>{const{resolveLang:w,highlightToHtml:C}=await import("./shiki-B-yqXaoA.js");return{resolveLang:w,highlightToHtml:C}},__vite__mapDeps([0,1,2])),E=await g(v,h(l));((A=n.file)==null?void 0:A.content)===v&&(a.value=E)})()},150)},{immediate:!0});const o=Z(()=>{var l;return(l=n.diff)!=null&&l.diff?dm(n.diff.diff):null});function i(l){return l===void 0?"":l<1024?`${l} B`:l<1024*1024?`${(l/1024).toFixed(1)} KB`:`${(l/1024/1024).toFixed(1)} MB`}return(l,p)=>(d(),b("div",fm,[f("div",pm,[f("button",{"data-test":"fv-back-list","aria-label":l.$t("files.backToList"),class:"flex lg:hidden items-center gap-1.5 rounded-md px-2 py-1 text-[12px] font-medium text-fg-muted transition-colors hover:bg-raised hover:text-fg",onClick:p[0]||(p[0]=c=>u("back"))},[B(x(ys),{size:14}),he(k(l.$t("files.title")),1)],8,hm),f("button",{"data-test":"fv-back","aria-label":l.$t("files.back"),class:"hidden lg:flex items-center gap-1.5 rounded-md px-2 py-1 text-[12px] font-medium text-fg-muted transition-colors hover:bg-raised hover:text-fg",onClick:p[1]||(p[1]=c=>u("close"))},[B(x(ys),{size:14}),he(k(l.$t("files.back")),1)],8,mm),p[3]||(p[3]=f("span",{class:"h-4 w-px bg-border","aria-hidden":"true"},null,-1)),x(n).file?(d(),b(J,{key:0},[B(x(hu),{size:14,class:"shrink-0 text-accent"}),f("span",bm,k(x(n).file.path),1),f("span",gm,k(i(x(n).file.size)),1),x(n).file.truncated?(d(),b("span",xm,k(l.$t("files.truncated")),1)):M("",!0),x(n).file.binary?(d(),b("span",vm,k(l.$t("files.binary")),1)):M("",!0)],64)):x(n).diffPath?(d(),b(J,{key:1},[B(x(bo),{size:14,class:"shrink-0 text-accent"}),f("span",ym,k(x(n).diffPath),1)],64)):M("",!0),f("div",km,[x(n).file&&!x(n).file.binary?(d(),G(Dr,{key:0,text:x(n).file.content},null,8,["text"])):M("",!0),f("button",{"data-test":"fv-close","aria-label":l.$t("files.closeFile"),class:"grid h-7 w-7 place-items-center rounded text-fg-muted transition-colors hover:bg-raised hover:text-fg lg:hidden",onClick:p[2]||(p[2]=c=>u("close"))},[B(x(st),{size:16})],8,_m)])]),f("div",wm,[x(n).file?(d(),b(J,{key:0},[!x(n).file.binary&&s.value.length<=va?(d(),b("div",Em,[a.value?(d(),b("div",{key:0,innerHTML:a.value},null,8,Am)):(d(),b("pre",$m,k(x(n).file.content),1))])):x(n).file.binary?(d(),b("div",Dm,k(l.$t("files.binaryNotShown")),1)):(d(),b("pre",Cm,k(x(n).file.content),1))],64)):x(n).diffPath&&x(n).diff?(d(),b(J,{key:1},[o.value&&o.value.rows.length?(d(),b("div",Tm,[(d(!0),b(J,null,le(o.value.rows,(c,v)=>(d(),b("div",{key:v,"data-test":"fv-diff-row",class:X(["flex",c.type==="add"?"bg-run/10":c.type==="del"?"bg-danger/10":c.type==="hunk"?"bg-info/5":""])},[f("span",Sm,k(c.oldNo??""),1),f("span",Fm,k(c.newNo??""),1),f("span",{class:X(["w-4 shrink-0 select-none text-center",c.type==="add"?"text-run":c.type==="del"?"text-danger":"text-fg-muted/40"])},k(c.type==="add"?"+":c.type==="del"?"-":""),3),f("span",{class:X(["whitespace-pre px-2",c.type==="hunk"?"text-info":"text-fg"])},k(c.text),3)],2))),128))])):(d(),b("div",Im,k(l.$t("files.noDiffContent")),1)),x(n).diff.truncated?(d(),b("div",Mm,k(l.$t("files.diffTruncated")),1)):M("",!0)],64)):M("",!0)])]))}}),Lm={"data-test":"scheduled-item",class:"rounded-md border border-border bg-bg text-sm"},Om={class:"flex items-center gap-1 px-2 py-1.5"},Rm=["data-test"],Nm=["data-test"],Pm={class:"min-w-0 flex-1 truncate text-[12.5px] text-fg"},Bm={class:"flex shrink-0 items-center gap-0.5"},Um=["title","aria-label"],qm=["title","aria-label"],jm=["data-test"],Hm={class:"whitespace-pre-wrap text-[12.5px] text-fg"},Wm={class:"font-mono text-[10.5px] tabular-nums text-fg-muted"},Vm=["data-test"],ya=de({__name:"ScheduledTaskRow",props:{task:{}},emits:["view"],setup(e,{emit:t}){const u=e,n=t,{t:s}=zt(),a=_u(),r=$t(),o=S(!1);function i(c){switch(c){case"pending":return{label:s("tasks.statusUpcoming"),cls:"text-fg-muted",icon:Da};case"triggering":return{label:s("tasks.statusRunning"),cls:"text-run",icon:Lt,spin:!0};case"executed":return{label:s("tasks.statusDone"),cls:"text-run",icon:Ca};case"failed":return{label:s("tasks.statusFailed"),cls:"text-danger",icon:lo};case"missed":return{label:s("tasks.statusMissed"),cls:"text-warn",icon:pu};case"cancelled":return{label:s("tasks.statusCancelled"),cls:"text-fg-muted",icon:$a}}}function l(){r.requestScrollToScheduled(u.task.id),n("view")}async function p(c){await ku({title:s("tasks.cancelScheduledTitle"),message:s("tasks.cancelScheduledBody"),confirmLabel:s("tasks.cancelTask"),cancelLabel:s("tasks.keep"),tone:"danger"})&&await a.cancelScheduled(c)}return(c,v)=>(d(),b("li",Lm,[f("div",Om,[f("button",{type:"button","data-test":`scheduled-toggle-${e.task.id}`,class:"flex min-w-0 flex-1 items-center gap-1.5 text-left cursor-pointer",onClick:v[0]||(v[0]=h=>o.value=!o.value)},[B(x(kt),{size:12,class:X(["shrink-0 text-fg-muted transition-transform",o.value?"rotate-90":""])},null,8,["class"]),f("span",{"data-test":`scheduled-status-${e.task.id}`,class:X(["inline-flex shrink-0 items-center gap-1 text-[11px] font-medium",i(e.task.status).cls])},[(d(),G(Mt(i(e.task.status).icon),{size:12,class:X(i(e.task.status).spin?"animate-spin motion-reduce:animate-none":"")},null,8,["class"])),he(" "+k(i(e.task.status).label),1)],10,Nm),f("span",Pm,k(e.task.message),1)],8,Rm),f("span",Bm,[e.task.status==="executed"?(d(),b("button",{key:0,"data-test":"view-scheduled",title:c.$t("tasks.viewRunTitle"),"aria-label":c.$t("tasks.viewRun"),class:"grid h-6 w-6 place-items-center rounded text-fg-muted transition-colors hover:bg-accent/15 hover:text-accent",onClick:l},[B(x(mo),{size:13})],8,Um)):M("",!0),e.task.status==="pending"?(d(),b("button",{key:1,"data-test":"cancel-scheduled",title:c.$t("tasks.cancelScheduled"),"aria-label":c.$t("tasks.cancelScheduled"),class:"grid h-6 w-6 place-items-center rounded text-fg-muted transition-colors hover:bg-danger/15 hover:text-danger",onClick:v[1]||(v[1]=h=>p(e.task.id))},[B(x(mu),{size:13})],8,qm)):M("",!0)])]),o.value?(d(),b("div",{key:0,"data-test":`scheduled-detail-${e.task.id}`,class:"space-y-1 border-t border-border px-2 py-1.5"},[f("p",Hm,k(e.task.message),1),f("p",Wm,k(x(qn)(e.task.executeAt)),1),e.task.status==="failed"&&e.task.lastError?(d(),b("p",{key:0,"data-test":`scheduled-error-${e.task.id}`,class:"rounded bg-danger/10 px-2 py-1 text-[11px] text-danger"},k(e.task.lastError),9,Vm)):M("",!0)],8,jm)):M("",!0)]))}}),Gm={class:"shrink-0 border-b border-border bg-surface p-3"},Km={class:"mb-2 flex items-center gap-1.5"},Zm={class:"text-xs font-semibold uppercase tracking-wide text-fg-muted"},Xm={key:0,class:"rounded-full bg-bg px-1.5 font-mono text-[10px] tabular-nums text-fg-muted"},Ym=["title","aria-label"],Jm={class:"space-y-1"},Qm={key:0,class:"rounded-md border border-dashed border-border px-2 py-2 text-center text-[11px] text-fg-muted"},eb={class:"flex flex-col gap-1"},tb={class:"text-[10px] font-semibold uppercase tracking-wide text-fg-muted"},ub={class:"flex flex-col gap-1"},nb={class:"text-[10px] font-semibold uppercase tracking-wide text-fg-muted"},sb=["placeholder"],ab={class:"flex items-center gap-1.5 pt-0.5"},rb=["disabled"],ob=["aria-label"],ib={class:"flex items-center justify-between border-b border-border px-4 py-3"},lb={class:"text-sm font-semibold text-fg"},cb=["aria-label"],db={class:"flex-1 space-y-1 overflow-y-auto p-3"},ka=3,fb=de({__name:"ScheduledTasks",setup(e){const t=_u(),u=$t(),n=S(""),s=S(""),a=S(!1),r=Z(()=>t.scheduled.slice(0,ka)),o=Z(()=>Math.max(0,t.scheduled.length-ka)),i=S(!1);async function l(){if(!u.instanceId||!u.sessionAlias||!n.value||!s.value)return;const p=new Date(n.value).toISOString();await t.createScheduled(u.instanceId,u.sessionAlias,p,s.value),n.value="",s.value="",a.value=!1}return(p,c)=>(d(),b("div",Gm,[f("div",Km,[B(x(ro),{size:13,class:"shrink-0 text-fg-muted"}),f("h3",Zm,k(p.$t("tasks.scheduled")),1),x(t).scheduled.length?(d(),b("span",Xm,k(x(t).scheduled.length),1)):M("",!0),f("button",{type:"button","data-test":"scheduled-compose-toggle",title:p.$t("tasks.newScheduled"),"aria-label":p.$t("tasks.newScheduled"),class:X(["ml-auto grid h-6 w-6 place-items-center rounded-md transition-colors hover:bg-raised hover:text-fg",a.value?"bg-raised text-fg":"text-fg-muted"]),onClick:c[0]||(c[0]=v=>a.value=!a.value)},[B(x(ju),{size:14,class:X(["transition-transform",a.value?"rotate-45":""])},null,8,["class"])],10,Ym)]),f("ul",Jm,[(d(!0),b(J,null,le(r.value,v=>(d(),G(ya,{key:v.id,task:v},null,8,["task"]))),128)),x(t).scheduled.length===0?(d(),b("li",Qm,k(p.$t("tasks.noScheduled")),1)):M("",!0)]),o.value>0?(d(),b("button",{key:0,type:"button","data-test":"scheduled-view-all",class:"mt-1.5 flex w-full items-center justify-center gap-1 rounded-md border border-border bg-bg px-2 py-1 text-[11px] font-medium text-fg-muted transition-colors hover:bg-accent/10 hover:text-accent",onClick:c[1]||(c[1]=v=>i.value=!0)},[he(k(p.$t("tasks.viewAll",{count:x(t).scheduled.length}))+" ",1),B(x(at),{size:12})])):M("",!0),a.value?(d(),b("form",{key:1,"data-test":"scheduled-composer",class:"mt-2 space-y-2 rounded-lg border border-border bg-bg p-2.5",onSubmit:Ae(l,["prevent"])},[f("label",eb,[f("span",tb,k(p.$t("tasks.whenLabel")),1),_e(f("input",{"onUpdate:modelValue":c[2]||(c[2]=v=>n.value=v),type:"datetime-local",class:"w-full rounded-md border border-border bg-surface px-2 py-1 text-xs text-fg focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent"},null,512),[[Re,n.value]])]),f("label",ub,[f("span",nb,k(p.$t("tasks.messageLabel")),1),_e(f("input",{"onUpdate:modelValue":c[3]||(c[3]=v=>s.value=v),placeholder:p.$t("tasks.messagePlaceholder"),class:"w-full rounded-md border border-border bg-surface px-2 py-1 text-xs text-fg placeholder:text-fg-muted focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent"},null,8,sb),[[Re,s.value]])]),f("div",ab,[f("button",{type:"submit",disabled:!n.value||!s.value,class:"flex-1 rounded-md bg-accent px-2 py-1 text-xs font-medium text-white transition-colors hover:bg-accent-hover disabled:cursor-not-allowed disabled:opacity-40"},k(p.$t("tasks.schedule")),9,rb),f("button",{type:"button",class:"rounded-md border border-border px-2 py-1 text-xs text-fg-muted transition-colors hover:bg-raised hover:text-fg",onClick:c[4]||(c[4]=v=>a.value=!1)},k(p.$t("common.cancel")),1)])],32)):M("",!0),(d(),G(eu,{to:"body"},[B(eo,{"enter-active-class":"transition-opacity duration-200 ease-out motion-reduce:transition-none","enter-from-class":"opacity-0","leave-active-class":"transition-opacity duration-150 ease-in motion-reduce:transition-none","leave-to-class":"opacity-0"},{default:gt(()=>[i.value?(d(),b("div",{key:0,"data-test":"scheduled-drawer",class:"fixed inset-0 z-50 flex justify-end bg-black/50",onClick:c[7]||(c[7]=Ae(v=>i.value=!1,["self"])),onKeydown:c[8]||(c[8]=Bn(v=>i.value=!1,["esc"]))},[f("aside",{class:"flex h-full w-full max-w-md flex-col border-l border-border bg-raised shadow-xl",role:"dialog","aria-label":p.$t("tasks.allScheduled")},[f("header",ib,[f("h2",lb,k(p.$t("tasks.scheduledCount",{count:x(t).scheduled.length})),1),f("button",{class:"rounded p-1 text-fg-muted hover:bg-fg/5 hover:text-fg","aria-label":p.$t("tasks.close"),"data-test":"scheduled-drawer-close",onClick:c[5]||(c[5]=v=>i.value=!1)},[B(x(st),{size:16})],8,cb)]),f("ul",db,[(d(!0),b(J,null,le(x(t).scheduled,v=>(d(),G(ya,{key:v.id,task:v,onView:c[6]||(c[6]=h=>i.value=!1)},null,8,["task"]))),128))])],8,ob)],32)):M("",!0)]),_:1})]))]))}}),pb={class:"flex min-h-0 flex-col bg-surface"},hb={class:"shrink-0 px-3 pt-3 pb-2 text-xs font-semibold uppercase text-fg-muted"},mb={class:"min-h-0 flex-1 space-y-1 overflow-y-auto thin-scroll px-3 pb-3"},bb={class:"flex min-w-0 items-center gap-1.5"},gb={class:"truncate"},xb=["title","aria-label","onClick"],vb={key:0,class:"text-xs text-fg-muted"},yb={key:1,class:"pt-0.5 text-center text-[10.5px] text-fg-muted"},Fn=10,kb=de({__name:"OrchestrationTasks",setup(e){const{t}=zt(),u=_u(),n=Z(()=>[...u.orchestration].sort((r,o)=>o.createdAt.localeCompare(r.createdAt)).slice(0,Fn));async function s(r){await ku({title:t("tasks.cancelTitle"),message:t("tasks.cancelBody"),confirmLabel:t("tasks.cancelConfirm"),cancelLabel:t("tasks.keepRunning"),tone:"danger"})&&await u.cancelOrchestration(r)}function a(r){const o=r.toLowerCase();return o.includes("run")||o.includes("active")?"text-run":o.includes("fail")||o.includes("error")||o.includes("cancel")?"text-danger":o.includes("wait")||o.includes("pending")||o.includes("block")?"text-warn":"text-fg-muted"}return(r,o)=>(d(),b("div",pb,[f("h3",hb,k(r.$t("tasks.orchestration")),1),f("ul",mb,[(d(!0),b(J,null,le(n.value,i=>(d(),b("li",{key:i.taskId,class:"flex items-center justify-between text-sm text-fg"},[f("span",bb,[B(x(Pu),{size:14,class:"shrink-0 text-fg-muted"}),f("span",gb,[he(k(i.task)+" ",1),f("span",{class:X(["text-xs",a(i.status)])},"("+k(i.status)+")",3)])]),f("button",{"data-test":"cancel-orchestration",title:r.$t("tasks.cancelTask"),"aria-label":r.$t("tasks.cancelOrchestrationAria"),class:"ml-2 grid h-6 w-6 shrink-0 place-items-center rounded text-fg-muted transition-colors hover:bg-danger/15 hover:text-danger",onClick:l=>s(i.taskId)},[B(x($a),{size:13})],8,xb)]))),128)),x(u).orchestration.length===0?(d(),b("li",vb,k(r.$t("tasks.noOrchestration")),1)):M("",!0),x(u).orchestration.length>Fn?(d(),b("li",yb,k(r.$t("tasks.moreOrchestration",{count:x(u).orchestration.length-Fn})),1)):M("",!0)])]))}}),_b={key:0,class:"flex h-full flex-col"},wb={key:1,class:"p-4 text-sm text-fg-muted"},Eb=de({__name:"TaskPanel",setup(e){const t=$t(),u=_u();return xe(()=>[t.instanceId,t.sessionAlias],([n,s])=>{n&&s&&u.loadFor(n,s)},{immediate:!0}),(n,s)=>x(t).instanceId&&x(t).sessionAlias?(d(),b("div",_b,[B(fb),B(kb,{class:"min-h-0 flex-1"})])):(d(),b("div",wb,k(n.$t("taskPanel.noSession")),1))}});function Ab(e){const t=[],u=[],n=[];for(const s of e){if(s.status==="??"){n.push(s);continue}const a=s.status[0]??" ",r=s.status[1]??" ";a!==" "&&a!=="?"&&t.push(s),r!==" "&&r!=="?"&&u.push(s)}return{staged:t,changes:u,untracked:n}}function In(e){const t=e.lastIndexOf("/");return t<0?{dir:"",name:e}:{dir:e.slice(0,t+1),name:e.slice(t+1)}}const $b={class:"flex h-full flex-col bg-surface text-sm text-fg-muted"},Cb={key:0,class:"flex flex-1 items-center justify-center p-4 text-center text-xs text-fg-muted"},Db={class:"flex shrink-0 items-center gap-2 border-b border-border p-2"},Tb=["title"],Sb={class:"truncate font-medium"},Fb={class:"flex shrink-0 items-center gap-1"},Ib=["title","aria-label","disabled"],Mb={key:0,"data-test":"files-error",class:"shrink-0 bg-danger/10 px-2 py-1 text-xs text-danger"},zb={key:1,class:"flex min-h-0 flex-1 flex-col"},Lb={class:"flex shrink-0 items-center gap-1 border-b border-border px-2 py-1"},Ob=["placeholder"],Rb=["aria-label"],Nb={key:0,"data-test":"fs-results",class:"min-h-0 flex-1 overflow-y-auto thin-scroll"},Pb={class:"p-2.5 text-[11px] font-mono leading-5 space-y-px"},Bb=["onClick"],Ub={class:"truncate font-sans text-[12px] text-fg-muted"},qb={key:0,class:"px-1.5 py-1 text-xs text-fg-muted"},jb={key:0,class:"px-2.5 pb-1 text-xs text-warn"},Hb={class:"flex shrink-0 flex-wrap items-center gap-1 border-b border-border px-2.5 py-1.5 font-mono text-[11px] text-fg-muted"},Wb=["title","aria-label","disabled"],Vb=["onClick"],Gb={class:"min-h-0 flex-1 overflow-y-auto thin-scroll p-2.5 text-[11px] font-mono leading-5 space-y-px"},Kb=["onClick"],Zb={key:1,class:"w-[11px] shrink-0"},Xb=["title"],Yb={key:5,class:"shrink-0 font-mono text-[10.5px] text-fg-muted tabular-nums"},Jb={key:0,class:"px-1.5 py-1 text-xs text-fg-muted"},Qb={key:2,class:"flex min-h-0 flex-1 flex-col"},eg={class:"shrink-0 border-b border-border"},tg={key:0,"data-test":"changes-branch",class:"truncate font-mono text-[11.5px] font-medium text-fg"},ug={key:1,"data-test":"changes-branch",class:"truncate font-mono text-[11.5px] italic text-fg-muted"},ng={key:2,class:"text-[10.5px] font-semibold uppercase tracking-wider text-fg-muted"},sg={key:3,"data-test":"worktree-linked",class:"shrink-0 rounded-full border border-accent/30 bg-accent/10 px-1.5 py-px text-[9px] font-semibold uppercase tracking-wide text-accent"},ag={key:4,class:"flex shrink-0 items-center gap-1.5 font-mono text-[10.5px] tabular-nums"},rg={class:"text-fg-muted"},og={class:"text-run"},ig={class:"text-danger"},lg=["title"],cg={class:"truncate font-mono",dir:"rtl"},dg={class:"min-h-0 flex-1 overflow-y-auto thin-scroll p-2.5 space-y-2"},fg=["onClick"],pg={class:"text-fg-muted/60"},hg={class:"space-y-px pt-0.5"},mg=["title","onClick"],bg={class:"flex min-w-0 flex-1 items-baseline truncate font-mono text-[11px]"},gg={key:0,class:"truncate text-fg-muted/70"},xg={key:0,class:"px-1.5 py-1 text-xs text-fg-muted"},vg={key:1,"data-test":"changes-not-git",class:"flex min-h-0 flex-1 flex-col items-center justify-center gap-1.5 p-6 text-center text-xs text-fg-muted"},yg={class:"text-[11px] text-fg-muted/70"},kg={key:2,class:"p-3 text-xs text-fg-muted"},_g={key:3,class:"shrink-0 border-t border-border px-3 py-1 text-xs text-fg-muted"},_a="xacpx.changes.collapsed",wg=de({__name:"FilesPanel",props:{instanceId:{}},setup(e){const t=e,u=Wu(),n=pt(),s=$t(),a=Z(()=>u.path?u.path.split("/"):[]),r=Z(()=>a.value.length===0);function o(){r.value||u.up(a.value.length-2)}const i=Z(()=>{var F;const L=t.instanceId?n.byId(t.instanceId):void 0;return((F=L==null?void 0:L.sessions.find(P=>P.alias===s.sessionAlias))==null?void 0:F.workspace)??null}),l=Z(()=>{const L=u.diff;return L?{branch:L.branch,detached:L.detached===!0,worktree:L.worktree}:null}),p=Z(()=>{const L=u.diff;if(!L)return null;let F=0,P=0;for(const O of L.diff?L.diff.split(`
287
+ `)}),a=S("");let r=null;xe(()=>{var l,p,c;return[(l=n.file)==null?void 0:l.path,(p=n.file)==null?void 0:p.content,(c=n.file)==null?void 0:c.binary]},([l,p,c])=>{if(r&&clearTimeout(r),a.value="",!n.file||c||p===void 0||s.value.length>va)return;const v=p;r=setTimeout(()=>{(async()=>{var A;const{resolveLang:h,highlightToHtml:g}=await Qr(async()=>{const{resolveLang:w,highlightToHtml:C}=await import("./shiki-BIq7G4Cm.js");return{resolveLang:w,highlightToHtml:C}},__vite__mapDeps([0,1,2])),E=await g(v,h(l));((A=n.file)==null?void 0:A.content)===v&&(a.value=E)})()},150)},{immediate:!0});const o=Z(()=>{var l;return(l=n.diff)!=null&&l.diff?dm(n.diff.diff):null});function i(l){return l===void 0?"":l<1024?`${l} B`:l<1024*1024?`${(l/1024).toFixed(1)} KB`:`${(l/1024/1024).toFixed(1)} MB`}return(l,p)=>(d(),b("div",fm,[f("div",pm,[f("button",{"data-test":"fv-back-list","aria-label":l.$t("files.backToList"),class:"flex lg:hidden shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md px-2 py-1 text-[12px] font-medium text-fg-muted transition-colors hover:bg-raised hover:text-fg",onClick:p[0]||(p[0]=c=>u("back"))},[B(x(ys),{size:14,class:"shrink-0"}),he(k(l.$t("files.title")),1)],8,hm),f("button",{"data-test":"fv-back","aria-label":l.$t("files.back"),class:"hidden lg:flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md px-2 py-1 text-[12px] font-medium text-fg-muted transition-colors hover:bg-raised hover:text-fg",onClick:p[1]||(p[1]=c=>u("close"))},[B(x(ys),{size:14,class:"shrink-0"}),he(k(l.$t("files.back")),1)],8,mm),p[3]||(p[3]=f("span",{class:"h-4 w-px bg-border","aria-hidden":"true"},null,-1)),x(n).file?(d(),b(J,{key:0},[B(x(hu),{size:14,class:"shrink-0 text-accent"}),f("span",bm,k(x(n).file.path),1),f("span",gm,k(i(x(n).file.size)),1),x(n).file.truncated?(d(),b("span",xm,k(l.$t("files.truncated")),1)):M("",!0),x(n).file.binary?(d(),b("span",vm,k(l.$t("files.binary")),1)):M("",!0)],64)):x(n).diffPath?(d(),b(J,{key:1},[B(x(bo),{size:14,class:"shrink-0 text-accent"}),f("span",ym,k(x(n).diffPath),1)],64)):M("",!0),f("div",km,[x(n).file&&!x(n).file.binary?(d(),G(Dr,{key:0,text:x(n).file.content},null,8,["text"])):M("",!0),f("button",{"data-test":"fv-close","aria-label":l.$t("files.closeFile"),class:"grid h-7 w-7 place-items-center rounded text-fg-muted transition-colors hover:bg-raised hover:text-fg lg:hidden",onClick:p[2]||(p[2]=c=>u("close"))},[B(x(st),{size:16})],8,_m)])]),f("div",wm,[x(n).file?(d(),b(J,{key:0},[!x(n).file.binary&&s.value.length<=va?(d(),b("div",Em,[a.value?(d(),b("div",{key:0,innerHTML:a.value},null,8,Am)):(d(),b("pre",$m,k(x(n).file.content),1))])):x(n).file.binary?(d(),b("div",Dm,k(l.$t("files.binaryNotShown")),1)):(d(),b("pre",Cm,k(x(n).file.content),1))],64)):x(n).diffPath&&x(n).diff?(d(),b(J,{key:1},[o.value&&o.value.rows.length?(d(),b("div",Tm,[(d(!0),b(J,null,le(o.value.rows,(c,v)=>(d(),b("div",{key:v,"data-test":"fv-diff-row",class:X(["flex",c.type==="add"?"bg-run/10":c.type==="del"?"bg-danger/10":c.type==="hunk"?"bg-info/5":""])},[f("span",Sm,k(c.oldNo??""),1),f("span",Fm,k(c.newNo??""),1),f("span",{class:X(["w-4 shrink-0 select-none text-center",c.type==="add"?"text-run":c.type==="del"?"text-danger":"text-fg-muted/40"])},k(c.type==="add"?"+":c.type==="del"?"-":""),3),f("span",{class:X(["whitespace-pre px-2",c.type==="hunk"?"text-info":"text-fg"])},k(c.text),3)],2))),128))])):(d(),b("div",Im,k(l.$t("files.noDiffContent")),1)),x(n).diff.truncated?(d(),b("div",Mm,k(l.$t("files.diffTruncated")),1)):M("",!0)],64)):M("",!0)])]))}}),Lm={"data-test":"scheduled-item",class:"rounded-md border border-border bg-bg text-sm"},Om={class:"flex items-center gap-1 px-2 py-1.5"},Rm=["data-test"],Nm=["data-test"],Pm={class:"min-w-0 flex-1 truncate text-[12.5px] text-fg"},Bm={class:"flex shrink-0 items-center gap-0.5"},Um=["title","aria-label"],qm=["title","aria-label"],jm=["data-test"],Hm={class:"whitespace-pre-wrap text-[12.5px] text-fg"},Wm={class:"font-mono text-[10.5px] tabular-nums text-fg-muted"},Vm=["data-test"],ya=de({__name:"ScheduledTaskRow",props:{task:{}},emits:["view"],setup(e,{emit:t}){const u=e,n=t,{t:s}=zt(),a=_u(),r=$t(),o=S(!1);function i(c){switch(c){case"pending":return{label:s("tasks.statusUpcoming"),cls:"text-fg-muted",icon:Da};case"triggering":return{label:s("tasks.statusRunning"),cls:"text-run",icon:Lt,spin:!0};case"executed":return{label:s("tasks.statusDone"),cls:"text-run",icon:Ca};case"failed":return{label:s("tasks.statusFailed"),cls:"text-danger",icon:lo};case"missed":return{label:s("tasks.statusMissed"),cls:"text-warn",icon:pu};case"cancelled":return{label:s("tasks.statusCancelled"),cls:"text-fg-muted",icon:$a}}}function l(){r.requestScrollToScheduled(u.task.id),n("view")}async function p(c){await ku({title:s("tasks.cancelScheduledTitle"),message:s("tasks.cancelScheduledBody"),confirmLabel:s("tasks.cancelTask"),cancelLabel:s("tasks.keep"),tone:"danger"})&&await a.cancelScheduled(c)}return(c,v)=>(d(),b("li",Lm,[f("div",Om,[f("button",{type:"button","data-test":`scheduled-toggle-${e.task.id}`,class:"flex min-w-0 flex-1 items-center gap-1.5 text-left cursor-pointer",onClick:v[0]||(v[0]=h=>o.value=!o.value)},[B(x(kt),{size:12,class:X(["shrink-0 text-fg-muted transition-transform",o.value?"rotate-90":""])},null,8,["class"]),f("span",{"data-test":`scheduled-status-${e.task.id}`,class:X(["inline-flex shrink-0 items-center gap-1 text-[11px] font-medium",i(e.task.status).cls])},[(d(),G(Mt(i(e.task.status).icon),{size:12,class:X(i(e.task.status).spin?"animate-spin motion-reduce:animate-none":"")},null,8,["class"])),he(" "+k(i(e.task.status).label),1)],10,Nm),f("span",Pm,k(e.task.message),1)],8,Rm),f("span",Bm,[e.task.status==="executed"?(d(),b("button",{key:0,"data-test":"view-scheduled",title:c.$t("tasks.viewRunTitle"),"aria-label":c.$t("tasks.viewRun"),class:"grid h-6 w-6 place-items-center rounded text-fg-muted transition-colors hover:bg-accent/15 hover:text-accent",onClick:l},[B(x(mo),{size:13})],8,Um)):M("",!0),e.task.status==="pending"?(d(),b("button",{key:1,"data-test":"cancel-scheduled",title:c.$t("tasks.cancelScheduled"),"aria-label":c.$t("tasks.cancelScheduled"),class:"grid h-6 w-6 place-items-center rounded text-fg-muted transition-colors hover:bg-danger/15 hover:text-danger",onClick:v[1]||(v[1]=h=>p(e.task.id))},[B(x(mu),{size:13})],8,qm)):M("",!0)])]),o.value?(d(),b("div",{key:0,"data-test":`scheduled-detail-${e.task.id}`,class:"space-y-1 border-t border-border px-2 py-1.5"},[f("p",Hm,k(e.task.message),1),f("p",Wm,k(x(qn)(e.task.executeAt)),1),e.task.status==="failed"&&e.task.lastError?(d(),b("p",{key:0,"data-test":`scheduled-error-${e.task.id}`,class:"rounded bg-danger/10 px-2 py-1 text-[11px] text-danger"},k(e.task.lastError),9,Vm)):M("",!0)],8,jm)):M("",!0)]))}}),Gm={class:"shrink-0 border-b border-border bg-surface p-3"},Km={class:"mb-2 flex items-center gap-1.5"},Zm={class:"text-xs font-semibold uppercase tracking-wide text-fg-muted"},Xm={key:0,class:"rounded-full bg-bg px-1.5 font-mono text-[10px] tabular-nums text-fg-muted"},Ym=["title","aria-label"],Jm={class:"space-y-1"},Qm={key:0,class:"rounded-md border border-dashed border-border px-2 py-2 text-center text-[11px] text-fg-muted"},eb={class:"flex flex-col gap-1"},tb={class:"text-[10px] font-semibold uppercase tracking-wide text-fg-muted"},ub={class:"flex flex-col gap-1"},nb={class:"text-[10px] font-semibold uppercase tracking-wide text-fg-muted"},sb=["placeholder"],ab={class:"flex items-center gap-1.5 pt-0.5"},rb=["disabled"],ob=["aria-label"],ib={class:"flex items-center justify-between border-b border-border px-4 py-3"},lb={class:"text-sm font-semibold text-fg"},cb=["aria-label"],db={class:"flex-1 space-y-1 overflow-y-auto p-3"},ka=3,fb=de({__name:"ScheduledTasks",setup(e){const t=_u(),u=$t(),n=S(""),s=S(""),a=S(!1),r=Z(()=>t.scheduled.slice(0,ka)),o=Z(()=>Math.max(0,t.scheduled.length-ka)),i=S(!1);async function l(){if(!u.instanceId||!u.sessionAlias||!n.value||!s.value)return;const p=new Date(n.value).toISOString();await t.createScheduled(u.instanceId,u.sessionAlias,p,s.value),n.value="",s.value="",a.value=!1}return(p,c)=>(d(),b("div",Gm,[f("div",Km,[B(x(ro),{size:13,class:"shrink-0 text-fg-muted"}),f("h3",Zm,k(p.$t("tasks.scheduled")),1),x(t).scheduled.length?(d(),b("span",Xm,k(x(t).scheduled.length),1)):M("",!0),f("button",{type:"button","data-test":"scheduled-compose-toggle",title:p.$t("tasks.newScheduled"),"aria-label":p.$t("tasks.newScheduled"),class:X(["ml-auto grid h-6 w-6 place-items-center rounded-md transition-colors hover:bg-raised hover:text-fg",a.value?"bg-raised text-fg":"text-fg-muted"]),onClick:c[0]||(c[0]=v=>a.value=!a.value)},[B(x(ju),{size:14,class:X(["transition-transform",a.value?"rotate-45":""])},null,8,["class"])],10,Ym)]),f("ul",Jm,[(d(!0),b(J,null,le(r.value,v=>(d(),G(ya,{key:v.id,task:v},null,8,["task"]))),128)),x(t).scheduled.length===0?(d(),b("li",Qm,k(p.$t("tasks.noScheduled")),1)):M("",!0)]),o.value>0?(d(),b("button",{key:0,type:"button","data-test":"scheduled-view-all",class:"mt-1.5 flex w-full items-center justify-center gap-1 rounded-md border border-border bg-bg px-2 py-1 text-[11px] font-medium text-fg-muted transition-colors hover:bg-accent/10 hover:text-accent",onClick:c[1]||(c[1]=v=>i.value=!0)},[he(k(p.$t("tasks.viewAll",{count:x(t).scheduled.length}))+" ",1),B(x(at),{size:12})])):M("",!0),a.value?(d(),b("form",{key:1,"data-test":"scheduled-composer",class:"mt-2 space-y-2 rounded-lg border border-border bg-bg p-2.5",onSubmit:Ae(l,["prevent"])},[f("label",eb,[f("span",tb,k(p.$t("tasks.whenLabel")),1),_e(f("input",{"onUpdate:modelValue":c[2]||(c[2]=v=>n.value=v),type:"datetime-local",class:"w-full min-w-0 rounded-md border border-border bg-surface px-2 py-1 text-xs text-fg focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent"},null,512),[[Re,n.value]])]),f("label",ub,[f("span",nb,k(p.$t("tasks.messageLabel")),1),_e(f("input",{"onUpdate:modelValue":c[3]||(c[3]=v=>s.value=v),placeholder:p.$t("tasks.messagePlaceholder"),class:"w-full rounded-md border border-border bg-surface px-2 py-1 text-xs text-fg placeholder:text-fg-muted focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent"},null,8,sb),[[Re,s.value]])]),f("div",ab,[f("button",{type:"submit",disabled:!n.value||!s.value,class:"flex-1 rounded-md bg-accent px-2 py-1 text-xs font-medium text-white transition-colors hover:bg-accent-hover disabled:cursor-not-allowed disabled:opacity-40"},k(p.$t("tasks.schedule")),9,rb),f("button",{type:"button",class:"rounded-md border border-border px-2 py-1 text-xs text-fg-muted transition-colors hover:bg-raised hover:text-fg",onClick:c[4]||(c[4]=v=>a.value=!1)},k(p.$t("common.cancel")),1)])],32)):M("",!0),(d(),G(eu,{to:"body"},[B(eo,{"enter-active-class":"transition-opacity duration-200 ease-out motion-reduce:transition-none","enter-from-class":"opacity-0","leave-active-class":"transition-opacity duration-150 ease-in motion-reduce:transition-none","leave-to-class":"opacity-0"},{default:gt(()=>[i.value?(d(),b("div",{key:0,"data-test":"scheduled-drawer",class:"fixed inset-0 z-50 flex justify-end bg-black/50",onClick:c[7]||(c[7]=Ae(v=>i.value=!1,["self"])),onKeydown:c[8]||(c[8]=Bn(v=>i.value=!1,["esc"]))},[f("aside",{class:"flex h-full w-full max-w-md flex-col border-l border-border bg-raised shadow-xl",role:"dialog","aria-label":p.$t("tasks.allScheduled")},[f("header",ib,[f("h2",lb,k(p.$t("tasks.scheduledCount",{count:x(t).scheduled.length})),1),f("button",{class:"rounded p-1 text-fg-muted hover:bg-fg/5 hover:text-fg","aria-label":p.$t("tasks.close"),"data-test":"scheduled-drawer-close",onClick:c[5]||(c[5]=v=>i.value=!1)},[B(x(st),{size:16})],8,cb)]),f("ul",db,[(d(!0),b(J,null,le(x(t).scheduled,v=>(d(),G(ya,{key:v.id,task:v,onView:c[6]||(c[6]=h=>i.value=!1)},null,8,["task"]))),128))])],8,ob)],32)):M("",!0)]),_:1})]))]))}}),pb={class:"flex min-h-0 flex-col bg-surface"},hb={class:"shrink-0 px-3 pt-3 pb-2 text-xs font-semibold uppercase text-fg-muted"},mb={class:"min-h-0 flex-1 space-y-1 overflow-y-auto thin-scroll px-3 pb-3"},bb={class:"flex min-w-0 items-center gap-1.5"},gb={class:"truncate"},xb=["title","aria-label","onClick"],vb={key:0,class:"text-xs text-fg-muted"},yb={key:1,class:"pt-0.5 text-center text-[10.5px] text-fg-muted"},Fn=10,kb=de({__name:"OrchestrationTasks",setup(e){const{t}=zt(),u=_u(),n=Z(()=>[...u.orchestration].sort((r,o)=>o.createdAt.localeCompare(r.createdAt)).slice(0,Fn));async function s(r){await ku({title:t("tasks.cancelTitle"),message:t("tasks.cancelBody"),confirmLabel:t("tasks.cancelConfirm"),cancelLabel:t("tasks.keepRunning"),tone:"danger"})&&await u.cancelOrchestration(r)}function a(r){const o=r.toLowerCase();return o.includes("run")||o.includes("active")?"text-run":o.includes("fail")||o.includes("error")||o.includes("cancel")?"text-danger":o.includes("wait")||o.includes("pending")||o.includes("block")?"text-warn":"text-fg-muted"}return(r,o)=>(d(),b("div",pb,[f("h3",hb,k(r.$t("tasks.orchestration")),1),f("ul",mb,[(d(!0),b(J,null,le(n.value,i=>(d(),b("li",{key:i.taskId,class:"flex items-center justify-between text-sm text-fg"},[f("span",bb,[B(x(Pu),{size:14,class:"shrink-0 text-fg-muted"}),f("span",gb,[he(k(i.task)+" ",1),f("span",{class:X(["text-xs",a(i.status)])},"("+k(i.status)+")",3)])]),f("button",{"data-test":"cancel-orchestration",title:r.$t("tasks.cancelTask"),"aria-label":r.$t("tasks.cancelOrchestrationAria"),class:"ml-2 grid h-6 w-6 shrink-0 place-items-center rounded text-fg-muted transition-colors hover:bg-danger/15 hover:text-danger",onClick:l=>s(i.taskId)},[B(x($a),{size:13})],8,xb)]))),128)),x(u).orchestration.length===0?(d(),b("li",vb,k(r.$t("tasks.noOrchestration")),1)):M("",!0),x(u).orchestration.length>Fn?(d(),b("li",yb,k(r.$t("tasks.moreOrchestration",{count:x(u).orchestration.length-Fn})),1)):M("",!0)])]))}}),_b={key:0,class:"flex h-full flex-col"},wb={key:1,class:"p-4 text-sm text-fg-muted"},Eb=de({__name:"TaskPanel",setup(e){const t=$t(),u=_u();return xe(()=>[t.instanceId,t.sessionAlias],([n,s])=>{n&&s&&u.loadFor(n,s)},{immediate:!0}),(n,s)=>x(t).instanceId&&x(t).sessionAlias?(d(),b("div",_b,[B(fb),B(kb,{class:"min-h-0 flex-1"})])):(d(),b("div",wb,k(n.$t("taskPanel.noSession")),1))}});function Ab(e){const t=[],u=[],n=[];for(const s of e){if(s.status==="??"){n.push(s);continue}const a=s.status[0]??" ",r=s.status[1]??" ";a!==" "&&a!=="?"&&t.push(s),r!==" "&&r!=="?"&&u.push(s)}return{staged:t,changes:u,untracked:n}}function In(e){const t=e.lastIndexOf("/");return t<0?{dir:"",name:e}:{dir:e.slice(0,t+1),name:e.slice(t+1)}}const $b={class:"flex h-full flex-col bg-surface text-sm text-fg-muted"},Cb={key:0,class:"flex flex-1 items-center justify-center p-4 text-center text-xs text-fg-muted"},Db={class:"flex shrink-0 items-center gap-2 border-b border-border p-2"},Tb=["title"],Sb={class:"truncate font-medium"},Fb={class:"flex shrink-0 items-center gap-1"},Ib=["title","aria-label","disabled"],Mb={key:0,"data-test":"files-error",class:"shrink-0 bg-danger/10 px-2 py-1 text-xs text-danger"},zb={key:1,class:"flex min-h-0 flex-1 flex-col"},Lb={class:"flex shrink-0 items-center gap-1 border-b border-border px-2 py-1"},Ob=["placeholder"],Rb=["aria-label"],Nb={key:0,"data-test":"fs-results",class:"min-h-0 flex-1 overflow-y-auto thin-scroll"},Pb={class:"p-2.5 text-[11px] font-mono leading-5 space-y-px"},Bb=["onClick"],Ub={class:"truncate font-sans text-[12px] text-fg-muted"},qb={key:0,class:"px-1.5 py-1 text-xs text-fg-muted"},jb={key:0,class:"px-2.5 pb-1 text-xs text-warn"},Hb={class:"flex shrink-0 flex-wrap items-center gap-1 border-b border-border px-2.5 py-1.5 font-mono text-[11px] text-fg-muted"},Wb=["title","aria-label","disabled"],Vb=["onClick"],Gb={class:"min-h-0 flex-1 overflow-y-auto thin-scroll p-2.5 text-[11px] font-mono leading-5 space-y-px"},Kb=["onClick"],Zb={key:1,class:"w-[11px] shrink-0"},Xb=["title"],Yb={key:5,class:"shrink-0 font-mono text-[10.5px] text-fg-muted tabular-nums"},Jb={key:0,class:"px-1.5 py-1 text-xs text-fg-muted"},Qb={key:2,class:"flex min-h-0 flex-1 flex-col"},eg={class:"shrink-0 border-b border-border"},tg={key:0,"data-test":"changes-branch",class:"truncate font-mono text-[11.5px] font-medium text-fg"},ug={key:1,"data-test":"changes-branch",class:"truncate font-mono text-[11.5px] italic text-fg-muted"},ng={key:2,class:"text-[10.5px] font-semibold uppercase tracking-wider text-fg-muted"},sg={key:3,"data-test":"worktree-linked",class:"shrink-0 rounded-full border border-accent/30 bg-accent/10 px-1.5 py-px text-[9px] font-semibold uppercase tracking-wide text-accent"},ag={key:4,class:"flex shrink-0 items-center gap-1.5 font-mono text-[10.5px] tabular-nums"},rg={class:"text-fg-muted"},og={class:"text-run"},ig={class:"text-danger"},lg=["title"],cg={class:"truncate font-mono",dir:"rtl"},dg={class:"min-h-0 flex-1 overflow-y-auto thin-scroll p-2.5 space-y-2"},fg=["onClick"],pg={class:"text-fg-muted/60"},hg={class:"space-y-px pt-0.5"},mg=["title","onClick"],bg={class:"flex min-w-0 flex-1 items-baseline truncate font-mono text-[11px]"},gg={key:0,class:"truncate text-fg-muted/70"},xg={key:0,class:"px-1.5 py-1 text-xs text-fg-muted"},vg={key:1,"data-test":"changes-not-git",class:"flex min-h-0 flex-1 flex-col items-center justify-center gap-1.5 p-6 text-center text-xs text-fg-muted"},yg={class:"text-[11px] text-fg-muted/70"},kg={key:2,class:"p-3 text-xs text-fg-muted"},_g={key:3,class:"shrink-0 border-t border-border px-3 py-1 text-xs text-fg-muted"},_a="xacpx.changes.collapsed",wg=de({__name:"FilesPanel",props:{instanceId:{}},setup(e){const t=e,u=Wu(),n=pt(),s=$t(),a=Z(()=>u.path?u.path.split("/"):[]),r=Z(()=>a.value.length===0);function o(){r.value||u.up(a.value.length-2)}const i=Z(()=>{var F;const L=t.instanceId?n.byId(t.instanceId):void 0;return((F=L==null?void 0:L.sessions.find(P=>P.alias===s.sessionAlias))==null?void 0:F.workspace)??null}),l=Z(()=>{const L=u.diff;return L?{branch:L.branch,detached:L.detached===!0,worktree:L.worktree}:null}),p=Z(()=>{const L=u.diff;if(!L)return null;let F=0,P=0;for(const O of L.diff?L.diff.split(`
288
288
  `):[])O.startsWith("+")&&!O.startsWith("+++")?F++:O.startsWith("-")&&!O.startsWith("---")&&P++;return{fileCount:L.files.length,add:F,del:P}}),c=Z(()=>{var F;const L=Ab(((F=u.diff)==null?void 0:F.files)??[]);return[{key:"staged",items:L.staged},{key:"changes",items:L.changes},{key:"untracked",items:L.untracked}].filter(P=>P.items.length)}),v=S(h());function h(){try{return JSON.parse(localStorage.getItem(_a)??"{}")}catch{return{}}}function g(L){v.value={...v.value,[L]:!v.value[L]};try{localStorage.setItem(_a,JSON.stringify(v.value))}catch{}}const E=S("");let A=null;function w(){A&&clearTimeout(A),A=setTimeout(()=>void u.search(E.value),250)}function C(){E.value="",u.search("")}function y(L){return L===void 0?"":L<1024?`${L} B`:L<1024*1024?`${(L/1024).toFixed(1)} KB`:`${(L/1024/1024).toFixed(1)} MB`}function _(L){return u.path?`${u.path}/${L}`:L}function D(L){const F=L.trim();return F.includes("?")?{label:"U",cls:"text-warn",dot:"bg-warn"}:F.includes("A")?{label:"A",cls:"text-run",dot:"bg-run"}:F.includes("D")?{label:"D",cls:"text-danger",dot:"bg-danger"}:F.includes("R")?{label:"R",cls:"text-accent",dot:"bg-accent"}:F.includes("M")?{label:"M",cls:"text-info",dot:"bg-warn"}:{label:F[0]??"•",cls:"text-fg-muted",dot:"bg-warn"}}function N(L){const F=_(L.name);if(L.type==="file"){const O=u.changed[F];return O?D(O):null}const P=`${F}/`;return Object.keys(u.changed).some(O=>O.startsWith(P))?{label:"•",cls:"text-warn",dot:"bg-warn"}:null}function V(L){return!!u.file&&u.file.path===_(L)}function te(L){L.type==="file"&&(u.diffPath=null),u.open(L)}function ne(L){u.diffPath=null,u.openFile(L)}function ee(L){u.file=null,u.loadDiff(L)}return xe(()=>[t.instanceId,i.value],async([L,F])=>{var O,$,I;if(u.reset(),E.value="",!L)return;u.instanceId=L,await n.loadWorkspaces(L).catch(()=>{});const P=F??((I=($=(O=n.byId(L))==null?void 0:O.workspaces)==null?void 0:$[0])==null?void 0:I.name);P&&u.selectWorkspace(L,P)},{immediate:!0}),xe(()=>u.tab,L=>{L==="changes"&&!u.diff&&u.loadDiff()}),(L,F)=>{var P,O,$,I,R,fe;return d(),b("div",$b,[e.instanceId?(d(),b(J,{key:1},[f("div",Db,[f("div",{"data-test":"ws-label",class:"flex min-w-0 flex-1 items-center gap-1.5 text-xs text-fg",title:x(u).workspace??""},[B(x(zn),{size:13,class:"shrink-0 text-warn"}),f("span",Sb,k(x(u).workspace??"—"),1)],8,Tb),f("div",Fb,[f("button",{"data-test":"refresh-files",title:L.$t("files.refresh"),"aria-label":L.$t("files.refresh"),class:"grid h-6 w-6 place-items-center rounded text-fg-muted transition-colors hover:bg-raised hover:text-fg disabled:opacity-50",disabled:x(u).loading,onClick:F[0]||(F[0]=H=>x(u).refresh())},[B(x($o),{size:13,class:X(x(u).loading?"animate-spin motion-reduce:animate-none":"")},null,8,["class"])],8,Ib),f("button",{"data-test":"tab-files",class:X(["flex items-center gap-1.5 rounded-md px-2.5 py-1 text-[11.5px] transition-colors cursor-pointer",x(u).tab==="files"?"bg-accent/10 text-accent font-semibold":"text-fg-muted font-medium hover:bg-raised"]),onClick:F[1]||(F[1]=H=>x(u).tab="files")},[B(x(hu),{size:13}),he(k(L.$t("files.title")),1)],2),f("button",{"data-test":"tab-changes",class:X(["flex items-center gap-1.5 rounded-md px-2.5 py-1 text-[11.5px] transition-colors cursor-pointer",x(u).tab==="changes"?"bg-accent/10 text-accent font-semibold":"text-fg-muted font-medium hover:bg-raised"]),onClick:F[2]||(F[2]=H=>x(u).tab="changes")},[B(x(Pu),{size:13}),he(k(L.$t("files.changes")),1)],2)])]),x(u).error?(d(),b("div",Mb,k(x(u).error),1)):M("",!0),x(u).tab==="files"?(d(),b("div",zb,[f("div",Lb,[_e(f("input",{"onUpdate:modelValue":F[3]||(F[3]=H=>E.value=H),"data-test":"fs-search",placeholder:L.$t("files.searchPlaceholder"),class:"min-w-0 flex-1 rounded border border-border bg-bg px-2 py-1 text-xs text-fg placeholder:text-fg-muted",onInput:w},null,40,Ob),[[Re,E.value]]),E.value?(d(),b("button",{key:0,"aria-label":L.$t("files.clearSearch"),class:"text-fg-muted hover:text-fg",onClick:C},[B(x(st),{size:14})],8,Rb)):M("",!0)]),x(u).query.trim()?(d(),b("div",Nb,[f("ul",Pb,[(d(!0),b(J,null,le(x(u).results,H=>(d(),b("li",{key:H},[f("button",{"data-test":"fs-result",class:"flex w-full items-center gap-1.5 rounded-md px-1.5 py-1 text-left hover:bg-raised cursor-pointer",onClick:be=>ne(H)},[B(x(Nu),{size:13,class:"shrink-0 text-fg-muted"}),f("span",Ub,k(H),1)],8,Bb)]))),128)),!x(u).results.length&&!x(u).searching?(d(),b("li",qb,k(L.$t("palette.noMatches")),1)):M("",!0)]),x(u).searchTruncated?(d(),b("div",jb,k(L.$t("files.showingFirstMatches")),1)):M("",!0)])):(d(),b(J,{key:1},[f("div",Hb,[f("button",{"data-test":"fs-up",title:L.$t("files.upOneLevel"),"aria-label":L.$t("files.upOneLevel"),class:"grid h-5 w-5 shrink-0 place-items-center rounded text-fg-muted hover:bg-raised hover:text-fg disabled:opacity-40 disabled:hover:bg-transparent disabled:hover:text-fg-muted",disabled:r.value||x(u).loading,onClick:o},[B(x(po),{size:13})],8,Wb),f("button",{class:"hover:text-fg",onClick:F[4]||(F[4]=H=>x(u).up(-1))},k(x(u).workspace??L.$t("files.root")),1),(d(!0),b(J,null,le(a.value,(H,be)=>(d(),b(J,{key:be},[F[5]||(F[5]=f("span",null,"/",-1)),f("button",{class:"hover:text-fg",onClick:ve=>x(u).up(be)},k(H),9,Vb)],64))),128))]),f("ul",Gb,[(d(!0),b(J,null,le(x(u).entries,H=>(d(),b("li",{key:H.name},[f("button",{"data-test":"fs-entry",class:X(["flex w-full items-center gap-1.5 rounded-md px-1.5 py-1 text-left cursor-pointer",V(H.name)?"bg-accent/15":N(H)?"bg-accent/10":"hover:bg-raised"]),onClick:be=>te(H)},[H.type==="dir"?(d(),G(x(kt),{key:0,size:11,class:"shrink-0 text-fg-muted"})):(d(),b("span",Zb)),H.type==="dir"?(d(),G(x(zn),{key:2,size:13,class:X(["shrink-0",N(H)?"text-accent":"text-fg-muted"])},null,8,["class"])):(d(),G(x(Nu),{key:3,size:13,class:X(["shrink-0",V(H.name)||N(H)?"text-accent":"text-fg-muted"])},null,8,["class"])),f("span",{class:X(["flex-1 truncate font-sans text-[12px]",V(H.name)||N(H)?"text-accent font-medium":H.type==="dir"?"text-fg font-medium":"text-fg-muted"])},k(H.name),3),N(H)?(d(),b("span",{key:4,"data-test":"fs-status",class:X(["w-1.5 h-1.5 shrink-0 rounded-full",N(H).dot]),title:`${N(H).label} — ${x(u).changed[_(H.name)]||L.$t("files.containsChanges")}`},null,10,Xb)):M("",!0),H.type==="file"&&!N(H)?(d(),b("span",Yb,k(y(H.size)),1)):M("",!0)],10,Kb)]))),128)),!x(u).entries.length&&!x(u).loading?(d(),b("li",Jb,k(L.$t("files.emptyDirectory")),1)):M("",!0)])],64))])):(d(),b("div",Qb,[x(u).diff?(d(),b(J,{key:0},[f("div",eg,[f("div",{"data-test":"changes-summary",class:X(["flex items-center gap-1.5 px-2.5 pt-2",(P=l.value)!=null&&P.worktree?"pb-1":"pb-2"])},[B(x(Ln),{size:12,class:"shrink-0 text-accent"}),(O=l.value)!=null&&O.branch?(d(),b("span",tg,k(l.value.branch),1)):($=l.value)!=null&&$.detached?(d(),b("span",ug,k(L.$t("files.detached")),1)):(d(),b("span",ng,k(L.$t("files.changes")),1)),(R=(I=l.value)==null?void 0:I.worktree)!=null&&R.linked?(d(),b("span",sg,k(L.$t("files.linked")),1)):M("",!0),F[6]||(F[6]=f("span",{class:"flex-1"},null,-1)),p.value?(d(),b("div",ag,[f("span",rg,k(p.value.fileCount)+" "+k(L.$t("files.filesCount")),1),f("span",og,"+"+k(p.value.add),1),f("span",ig,"−"+k(p.value.del),1)])):M("",!0)],2),(fe=l.value)!=null&&fe.worktree?(d(),b("div",{key:0,"data-test":"worktree-path",class:"flex items-center gap-1.5 px-2.5 pb-2 text-[10px] text-fg-muted",title:`${L.$t("files.worktree")}: ${l.value.worktree.root}`},[B(x(go),{size:11,class:"shrink-0 opacity-70"}),f("span",cg,k(l.value.worktree.root),1)],8,lg)):M("",!0)]),f("div",dg,[(d(!0),b(J,null,le(c.value,H=>(d(),b("div",{key:H.key,"data-test":"change-group"},[f("button",{class:"flex w-full items-center gap-1.5 px-1 py-0.5 text-[10.5px] font-semibold uppercase tracking-wider text-fg-muted transition-colors hover:text-fg",onClick:be=>g(H.key)},[B(x(kt),{size:11,class:X(["shrink-0 transition-transform",v.value[H.key]?"":"rotate-90"])},null,8,["class"]),f("span",null,k(L.$t(`files.${H.key}`)),1),f("span",pg,k(H.items.length),1)],8,fg),_e(f("ul",hg,[(d(!0),b(J,null,le(H.items,be=>(d(),b("li",{key:be.path},[f("button",{"data-test":"diff-file",title:be.path,class:X(["flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left cursor-pointer",x(u).diffPath===be.path?"bg-accent/10":"hover:bg-raised"]),onClick:ve=>ee(be.path)},[f("span",{class:X(["w-3 shrink-0 text-center font-mono text-[10.5px] uppercase",D(be.status).cls])},k(D(be.status).label),3),f("span",bg,[x(In)(be.path).dir?(d(),b("span",gg,k(x(In)(be.path).dir),1)):M("",!0),f("span",{class:X(["shrink-0",x(u).diffPath===be.path?"text-accent":"text-fg"])},k(x(In)(be.path).name),3)])],10,mg)]))),128))],512),[[qu,!v.value[H.key]]])]))),128)),c.value.length?M("",!0):(d(),b("div",xg,k(L.$t("files.noChanges")),1))])],64)):x(u).notGit?(d(),b("div",vg,[B(x(Ln),{size:20,class:"text-fg-muted/60"}),f("span",null,k(L.$t("files.notGitRepo")),1),f("span",yg,k(L.$t("files.notGitRepoBody")),1)])):x(u).loading?M("",!0):(d(),b("div",kg,k(L.$t("files.noDiffLoaded")),1))])),x(u).loading?(d(),b("div",_g,k(L.$t("files.loading")),1)):M("",!0)],64)):(d(),b("div",Cb,k(L.$t("files.selectToBrowse")),1))])}}}),Eg={class:"pointer-events-none fixed bottom-4 right-4 z-50 flex w-72 flex-col gap-2","aria-live":"polite"},Ag={class:"flex items-start justify-between gap-2"},$g=["aria-label","onClick"],Cg=de({__name:"NoticeToast",setup(e){const t=Fa();function u(n){const s=n.toLowerCase();return s.includes("fail")||s.includes("error")?"text-danger":s.includes("complet")||s.includes("done")||s.includes("success")?"text-run":"text-info"}return(n,s)=>(d(),b("div",Eg,[(d(!0),b(J,null,le(x(t).items.slice(0,4),a=>(d(),b("div",{key:a.id,"data-test":"notice",class:"pointer-events-auto rounded border border-border bg-raised px-3 py-2 text-sm text-fg shadow-lg"},[f("div",Ag,[f("span",null,[f("span",{class:X(["text-xs uppercase",u(a.kind)])},k(a.kind),3),s[0]||(s[0]=f("br",null,null,-1)),he(k(a.text),1)]),f("button",{class:"text-xs text-fg-muted hover:text-fg","aria-label":n.$t("common.dismissNotice"),onClick:r=>x(t).dismiss(a.id)},"×",8,$g)])]))),128))]))}}),Dg={key:0,"data-test":"action-toast",class:"fixed bottom-[calc(1rem+env(safe-area-inset-bottom))] left-1/2 z-50 flex -translate-x-1/2 items-center gap-3 rounded-lg border border-border bg-surface px-3 py-2 text-sm text-fg shadow-lg"},Tg=["aria-label"],Sg=de({__name:"ActionToast",setup(e){const t=ei();return(u,n)=>(d(),G(eu,{to:"body"},[x(t)?(d(),b("div",Dg,[f("span",null,k(x(t).message),1),f("button",{"data-test":"toast-action",class:"font-medium text-accent hover:underline",onClick:n[0]||(n[0]=(...s)=>x(As)&&x(As)(...s))},k(x(t).actionLabel),1),f("button",{class:"text-fg-muted hover:text-fg","aria-label":u.$t("common.dismiss"),onClick:n[1]||(n[1]=(...s)=>x($s)&&x($s)(...s))},"×",8,Tg)])):M("",!0)]))}}),Fg=["title"],Ig=de({__name:"ConnectionBadge",setup(e){const t=Ia();return(u,n)=>(d(),b("div",{"data-test":"conn-badge",class:X(["inline-flex items-center gap-1.5 rounded-full border border-border px-2 py-0.5 text-xs",x(t).online?"text-run":"text-danger"]),title:x(t).online?u.$t("connection.online"):u.$t("connection.reconnecting")},[f("span",{class:X(["h-2 w-2 rounded-full",x(t).online?"bg-run":"bg-danger"]),"aria-hidden":"true"},null,2),f("span",null,k(x(t).online?u.$t("connection.online"):u.$t("connection.reconnecting")),1)],10,Fg))}}),Mg={class:"w-full max-w-lg overflow-hidden rounded-xl border border-border bg-raised shadow-xl"},zg={class:"flex items-center gap-2 border-b border-border px-4 py-3"},Lg=["placeholder"],Og={class:"max-h-80 overflow-y-auto py-1 text-sm"},Rg=["onMouseenter","onClick"],Ng={class:"font-medium"},Pg={class:"truncate text-xs text-fg-muted"},Bg={key:0,class:"px-4 py-3 text-xs text-fg-muted"},Ug=de({__name:"CommandPalette",emits:["close","select-session"],setup(e,{emit:t}){const u=t,n=pt(),s=S(""),a=S(null),r=S(0),o=Z(()=>n.instances.flatMap(h=>h.sessions.map(g=>({label:g.alias,sub:`${h.name} · ${g.agent}`,instanceId:h.id,alias:g.alias}))));function i(h,g){return g?`${h.label} ${h.sub}`.toLowerCase().includes(g.toLowerCase()):!0}const l=Z(()=>{const h=s.value.trim();return o.value.filter(g=>i(g,h))});function p(){r.value>=l.value.length&&(r.value=Math.max(0,l.value.length-1))}function c(h){u("select-session",h.instanceId,h.alias),u("close")}function v(h){if(h.key==="Escape"){u("close");return}if(h.key==="ArrowDown")h.preventDefault(),r.value=Math.min(r.value+1,l.value.length-1);else if(h.key==="ArrowUp")h.preventDefault(),r.value=Math.max(r.value-1,0);else if(h.key==="Enter"){h.preventDefault();const g=l.value[r.value];g&&c(g)}}return nt(()=>void je(()=>{var h;return(h=a.value)==null?void 0:h.focus()})),(h,g)=>(d(),b("div",{class:"fixed inset-0 z-50 flex items-start justify-center bg-black/50 pt-24","data-test":"command-palette",onClick:g[2]||(g[2]=Ae(E=>u("close"),["self"]))},[f("div",Mg,[f("div",zg,[B(x(Hu),{size:16,class:"shrink-0 text-fg-muted"}),_e(f("input",{ref_key:"input",ref:a,"onUpdate:modelValue":g[0]||(g[0]=E=>s.value=E),"data-test":"palette-input",placeholder:h.$t("palette.placeholder"),class:"w-full bg-transparent text-sm text-fg placeholder:text-fg-muted outline-none",onInput:g[1]||(g[1]=E=>{r.value=0,p()}),onKeydown:v},null,40,Lg),[[Re,s.value]])]),f("ul",Og,[(d(!0),b(J,null,le(l.value,(E,A)=>(d(),b("li",{key:`${E.instanceId}:${E.alias}:${A}`},[f("button",{"data-test":"palette-row",class:X(["flex w-full items-center gap-2 px-4 py-1.5 text-left",A===r.value?"bg-accent/10 text-accent":"text-fg hover:bg-fg/5"]),onMouseenter:w=>r.value=A,onClick:w=>c(E)},[B(x(yo),{size:14,class:"shrink-0"}),f("span",Ng,k(E.label),1),f("span",Pg,k(E.sub),1)],42,Rg)]))),128)),l.value.length?M("",!0):(d(),b("li",Bg,k(h.$t("palette.noMatches")),1))])])]))}}),qg={class:"flex items-center gap-2 select-none"},jg=de({__name:"BrandLogo",setup(e){return(t,u)=>(d(),b("div",qg,[...u[0]||(u[0]=[to('<svg data-test="brand-x" width="22" height="22" viewBox="0 0 24 24" fill="none" aria-hidden="true"><defs><linearGradient id="xacpxBrand" x1="3" y1="3" x2="21" y2="21" gradientUnits="userSpaceOnUse"><stop stop-color="#4F9BF5"></stop><stop offset="1" stop-color="#69D689"></stop></linearGradient></defs><path d="M5 5 L19 19 M19 5 L5 19" stroke="url(#xacpxBrand)" stroke-width="3.2" stroke-linecap="round"></path></svg><span class="text-[15px] font-semibold tracking-tight text-fg">xacpx</span><span class="text-fg-muted text-xs">· relay</span>',3)])]))}});function Hg(e){const t=e.edgeZone??30,u=e.threshold??45,n=e.viewportWidth??(()=>window.innerWidth);let s=0,a=0,r=null;function o(h){var g,E;return((g=h.touches)==null?void 0:g[0])??((E=h.changedTouches)==null?void 0:E[0])??null}function i(h){var g,E;return((g=h.changedTouches)==null?void 0:g[0])??((E=h.touches)==null?void 0:E[0])??null}function l(h){const g=h.target;return!!(g&&typeof g.closest=="function"&&g.closest("[data-drawer]"))}function p(h){var E;if(r=null,!e.isEnabled()||(((E=h.touches)==null?void 0:E.length)??0)>1)return;const g=o(h);if(g){if(s=g.clientX,a=g.clientY,e.isLeftOpen()||e.isRightOpen()){if(l(h))return;r=e.isLeftOpen()?"close-left":"close-right";return}s<=t?r="open-left":s>=n()-t&&(r="open-right")}}function c(h){const g=r;if(r=null,!g)return;const E=i(h);if(!E)return;const A=E.clientX-s,w=E.clientY-a;Math.abs(A)<u||Math.abs(A)<=Math.abs(w)||(g==="open-left"&&A>0?e.openLeft():g==="open-right"&&A<0?e.openRight():g==="close-left"&&A<0?e.closeLeft():g==="close-right"&&A>0&&e.closeRight())}function v(){r=null}return{onTouchStart:p,onTouchEnd:c,onTouchCancel:v}}function Fr(e,t,u,n,s){let a=u;return s!=null&&n!=null&&(a=Math.min(a,Math.floor(n*s))),a<t&&(a=t),e<t?t:e>a?a:Math.round(e)}function Wg(e){const t=e.viewportWidth??(()=>window.innerWidth),u=e.target??window;let n=0,s=0,a=!1;function r(p){const c=e.side==="right"?n-p:p-n,v=Fr(s+c,e.min,e.max,t(),e.maxViewportFraction);e.setWidth(v)}function o(p){a&&r(p.clientX)}function i(){var p;a&&(a=!1,u.removeEventListener("pointermove",o),u.removeEventListener("pointerup",i),u.removeEventListener("pointercancel",i),(p=e.onDragEnd)==null||p.call(e))}function l(p){var c;e.isEnabled()&&(a=!0,n=p.clientX,s=e.getWidth(),u.addEventListener("pointermove",o),u.addEventListener("pointerup",i),u.addEventListener("pointercancel",i),(c=e.onDragStart)==null||c.call(e))}return{onPointerDown:l}}const Vg={class:"sticky top-0 z-30 flex h-[calc(2.75rem+env(safe-area-inset-top))] shrink-0 items-center justify-between border-b border-border bg-surface/80 px-3 pt-[env(safe-area-inset-top)] backdrop-blur-xl"},Gg={class:"flex items-center gap-2"},Kg={class:"flex items-center gap-1.5"},Zg=["aria-label"],Xg={class:"hidden flex-1 text-[12.5px] text-fg-muted sm:inline"},Yg=["aria-label"],Jg={class:"flex items-center gap-2 border-b border-border bg-surface px-2 py-1.5 lg:hidden"},Qg=["aria-label"],e3={class:"min-w-0 flex-1 truncate text-center text-sm font-medium"},t3={class:"flex shrink-0 items-center gap-0.5"},u3=["aria-label","title"],n3=["aria-label","title"],s3={class:"flex flex-1 overflow-hidden"},a3={class:"flex h-9 shrink-0 items-center justify-between px-3 text-xs"},r3={class:"font-semibold uppercase tracking-wider text-fg-muted"},o3={class:"flex items-center gap-2"},i3=["aria-label","title"],l3=["aria-label"],c3=["aria-label","title"],d3={"data-test":"column",class:"relative flex min-w-0 flex-1 flex-col"},f3=["title"],p3={class:"flex h-9 shrink-0 items-center gap-1 border-b border-border px-2.5"},h3=["aria-label"],m3={class:"min-h-0 flex-1 overflow-hidden"},wa=240,Ea=560,b3=296,Aa=.5,y3=de({__name:"DashboardView",setup(e){const t=so(),u=pt(),n=$t(),s=Wu(),a=_u(),r=Fa(),o=Ia();let i=null;const l=S(!1),p=S(!1),c=S("tasks");function v(){l.value=!1,p.value=!1}function h(I){c.value=I,p.value=!0}const g=Hg({isEnabled:()=>typeof window<"u"&&window.innerWidth<1024,isLeftOpen:()=>l.value,isRightOpen:()=>p.value,openLeft:()=>{l.value=!0},openRight:()=>{p.value=!0},closeLeft:()=>{l.value=!1},closeRight:()=>{p.value=!1}});function E(){ne(),h("files")}const A=S(localStorage.getItem("xacpx.leftCollapsed")==="1");xe(A,I=>localStorage.setItem("xacpx.leftCollapsed",I?"1":"0"));function w(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(min-width: 1024px)").matches}const C=S(w()),y=S(Fr(Number(localStorage.getItem("xacpx.rightWidth"))||b3,wa,Ea,typeof window<"u"?window.innerWidth:void 0,Aa)),_=S(!1);xe(y,I=>localStorage.setItem("xacpx.rightWidth",String(I)));const D=Wg({side:"right",getWidth:()=>y.value,setWidth:I=>{y.value=I},min:wa,max:Ea,maxViewportFraction:Aa,isEnabled:()=>C.value,onDragStart:()=>{_.value=!0,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},onDragEnd:()=>{_.value=!1,document.body.style.cursor="",document.body.style.userSelect=""}});let N=null;function V(I){C.value=I.matches}const te=Z(()=>!!(s.file||s.diffPath));function ne(){s.file=null,s.diffPath=null}xe(te,I=>{I&&(p.value=!1)});const ee=S(!1);function L(I){(I.metaKey||I.ctrlKey)&&I.key.toLowerCase()==="k"&&(I.preventDefault(),ee.value=!ee.value)}function F(I,R){n.select(I,R),n.loadHistory().catch(()=>{}),l.value=!1}let P=!1;async function O(){await u.loadInstances().catch(()=>{}),await n.loadActiveTurns().catch(()=>{}),n.instanceId&&n.sessionAlias&&(await u.loadSessions(n.instanceId).catch(()=>{}),await n.loadHistory().catch(()=>{}),await a.loadFor(n.instanceId,n.sessionAlias).catch(()=>{}))}function $(I){o.setOnline(I),I&&(P&&O(),P=!0)}return nt(async()=>{window.addEventListener("keydown",L),typeof window.matchMedia=="function"&&(N=window.matchMedia("(min-width: 1024px)"),C.value=N.matches,N.addEventListener("change",V)),await u.loadInstances(),i=Go(R=>{u.applyEvent(R),n.applyEvent(R),a.applyEvent(R),r.applyEvent(R)},$),await n.loadActiveTurns().catch(()=>{});const I=Zo();I&&u.byId(I.instanceId)&&F(I.instanceId,I.alias)}),Ru(()=>{window.removeEventListener("keydown",L),N==null||N.removeEventListener("change",V),i==null||i()}),(I,R)=>{const fe=uo("router-link");return d(),b("div",{class:"flex h-dvh flex-col bg-bg text-fg",onTouchstartPassive:R[15]||(R[15]=(...H)=>x(g).onTouchStart&&x(g).onTouchStart(...H)),onTouchendPassive:R[16]||(R[16]=(...H)=>x(g).onTouchEnd&&x(g).onTouchEnd(...H)),onTouchcancelPassive:R[17]||(R[17]=(...H)=>x(g).onTouchCancel&&x(g).onTouchCancel(...H))},[f("header",Vg,[f("div",Gg,[B(jg),B(Ig)]),f("div",Kg,[f("button",{"data-test":"global-search","aria-label":I.$t("nav.search"),class:"group flex h-7 items-center gap-2 rounded-lg border border-border bg-bg px-2.5 text-left transition-colors hover:border-accent/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent sm:w-64",onClick:R[0]||(R[0]=H=>ee.value=!0)},[B(x(Hu),{size:14,class:"text-fg-muted"}),f("span",Xg,k(I.$t("nav.searchPlaceholder")),1),R[18]||(R[18]=f("kbd",{class:"hidden rounded border border-border bg-raised px-1.5 py-0.5 font-mono text-[10px] text-fg-muted sm:inline"},"⌘K",-1))],8,Zg),f("button",{"data-test":"theme-toggle","aria-label":x(t).mode==="dark"?I.$t("nav.toLight"):I.$t("nav.toDark"),class:"grid h-7 w-7 place-items-center rounded-lg border border-border text-fg-muted transition-colors hover:bg-raised focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent",onClick:R[1]||(R[1]=H=>x(t).toggle())},[x(t).mode==="dark"?(d(),G(x(ko),{key:0,size:15})):(d(),G(x(Io),{key:1,size:15}))],8,Yg),B(fe,{to:"/settings","data-test":"settings-link","aria-label":I.$t("nav.settings"),class:"grid h-7 w-7 place-items-center rounded-lg border border-border text-fg-muted transition-colors hover:bg-raised focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent"},{default:gt(()=>[B(x(So),{size:15})]),_:1},8,["aria-label"])])]),f("div",Jg,[f("button",{"data-test":"open-instances","aria-label":I.$t("nav.openInstances"),class:"rounded p-1 leading-none text-fg-muted hover:bg-fg/5",onClick:R[2]||(R[2]=H=>l.value=!0)},[B(x(vo),{size:20})],8,Qg),f("span",e3,k(x(n).sessionAlias??"xacpx relay"),1),f("div",t3,[f("button",{"data-test":"open-files","aria-label":I.$t("nav.openFiles"),title:I.$t("nav.files"),class:"grid h-8 w-8 place-items-center rounded text-fg-muted hover:bg-fg/5",onClick:R[3]||(R[3]=H=>h("files"))},[B(x(hu),{size:18})],8,u3),f("button",{"data-test":"open-tasks","aria-label":I.$t("nav.openTasks"),title:I.$t("nav.tasks"),class:"grid h-8 w-8 place-items-center rounded text-fg-muted hover:bg-fg/5",onClick:R[4]||(R[4]=H=>h("tasks"))},[B(x(Pu),{size:18})],8,n3)])]),f("div",s3,[l.value||p.value?(d(),b("div",{key:0,"data-test":"drawer-backdrop",class:"fixed inset-0 z-30 bg-black/30 lg:hidden",onClick:v})):M("",!0),f("div",{"data-test":"column","data-drawer":"left",class:X(["fixed inset-y-0 left-0 z-40 flex w-72 max-w-[85%] shrink-0 transform flex-col border-r border-border bg-surface shadow-lg transition-[transform,width] pt-[env(safe-area-inset-top)] lg:static lg:z-auto lg:max-w-none lg:translate-x-0 lg:transform-none lg:shadow-none lg:pt-0",[l.value?"translate-x-0":"-translate-x-full",A.value?"lg:w-0 lg:min-w-0 lg:overflow-hidden lg:border-r-0":"lg:w-[248px]"]])},[f("div",a3,[f("span",r3,k(I.$t("nav.instances")),1),f("div",o3,[f("button",{"data-test":"toggle-left","aria-label":I.$t("nav.hideSidebar"),title:I.$t("nav.hideSidebar"),class:"hidden h-6 w-6 place-items-center rounded-md text-fg-muted transition-colors hover:bg-raised hover:text-fg lg:grid",onClick:R[5]||(R[5]=H=>A.value=!0)},[B(x(_o),{size:15})],8,i3),f("button",{"data-test":"close-instances","aria-label":I.$t("nav.closeInstances"),class:"text-fg-muted hover:text-fg lg:hidden",onClick:R[6]||(R[6]=H=>l.value=!1)},[B(x(st),{size:18})],8,l3)])]),B(Ac,{onSelect:F})],2),A.value?(d(),b("button",{key:1,"data-test":"expand-left","aria-label":I.$t("nav.showSidebar"),title:I.$t("nav.showSidebar"),class:"hidden w-5 shrink-0 items-center justify-center border-r border-border bg-surface/60 text-fg-muted transition-colors hover:bg-raised hover:text-fg lg:flex",onClick:R[7]||(R[7]=H=>A.value=!1)},[B(x(wo),{size:15})],8,c3)):M("",!0),f("div",d3,[B(lm,{class:"absolute inset-0",inert:te.value,onShowFiles:R[8]||(R[8]=H=>c.value="files")},null,8,["inert"]),te.value?(d(),G(zm,{key:0,class:"absolute inset-0 z-10",onBack:E,onClose:ne})):M("",!0)]),f("div",{"data-test":"column","data-drawer":"right",class:X(["fixed inset-y-0 right-0 z-40 flex w-72 max-w-[85%] shrink-0 transform flex-col overflow-hidden border-l border-border bg-surface shadow-lg transition-transform pt-[env(safe-area-inset-top)] lg:relative lg:z-auto lg:w-[296px] lg:max-w-none lg:translate-x-0 lg:transform-none lg:shadow-none lg:pt-0",p.value?"translate-x-0":"translate-x-full"]),style:tu(C.value?{width:y.value+"px"}:void 0)},[f("div",{"data-test":"right-resize","aria-hidden":"true",title:I.$t("nav.resizePanel"),class:X(["absolute inset-y-0 left-0 z-20 hidden w-1.5 cursor-col-resize touch-none select-none transition-colors lg:block",_.value?"bg-accent/50":"hover:bg-accent/30"]),onPointerdown:R[9]||(R[9]=Ae((...H)=>x(D).onPointerDown&&x(D).onPointerDown(...H),["prevent"]))},null,42,f3),f("div",p3,[f("button",{"data-test":"right-tab-files",class:X(["flex items-center gap-1.5 rounded-md px-2.5 py-1 text-[11.5px] transition-colors cursor-pointer",c.value==="files"?"bg-accent/10 text-accent font-semibold":"text-fg-muted font-medium hover:bg-raised"]),onClick:R[10]||(R[10]=H=>c.value="files")},[B(x(hu),{size:13}),he(k(I.$t("nav.files")),1)],2),f("button",{"data-test":"right-tab-tasks",class:X(["flex items-center gap-1.5 rounded-md px-2.5 py-1 text-[11.5px] transition-colors cursor-pointer",c.value==="tasks"?"bg-accent/10 text-accent font-semibold":"text-fg-muted font-medium hover:bg-raised"]),onClick:R[11]||(R[11]=H=>c.value="tasks")},[B(x(Pu),{size:13}),he(k(I.$t("nav.tasks")),1)],2),f("button",{"data-test":"close-tasks","aria-label":I.$t("nav.closeTasks"),class:"ml-auto text-fg-muted hover:text-fg lg:hidden",onClick:R[12]||(R[12]=H=>p.value=!1)},[B(x(st),{size:18})],8,h3)]),f("div",m3,[c.value==="tasks"?(d(),G(Eb,{key:0})):(d(),G(wg,{key:1,"instance-id":x(n).instanceId},null,8,["instance-id"]))])],6)]),B(Cg),B(Sg),ee.value?(d(),G(Ug,{key:0,onClose:R[13]||(R[13]=H=>ee.value=!1),onSelectSession:R[14]||(R[14]=(H,be)=>{F(H,be),ee.value=!1})})):M("",!0)],32)}}});export{y3 as default};
@@ -1 +1 @@
1
- import{d as w,u as k,c as a,a as e,b as C,e as c,t as l,n as f,w as _,v as M,f as b,g as v,h as $,r as d,i as B,o as n}from"./index-w7-D5Xrc.js";import{_ as V}from"./_plugin-vue_export-helper-DlAUqK2U.js";const j={class:"relative flex min-h-dvh items-center justify-center overflow-hidden bg-bg px-4"},D={class:"relative flex items-center border-b border-border bg-raised px-3.5 py-2.5"},L={class:"pointer-events-none absolute inset-x-0 flex items-center justify-center gap-1.5 text-xs text-fg-muted"},N={class:"px-4 pb-5 pt-4"},S={class:"flex items-center gap-2"},A=["title","aria-label"],T={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},I={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},U={id:"login-hint",class:"mb-5 mt-1 text-[11.5px] leading-relaxed text-fg-muted"},E={class:"relative"},F=["type","placeholder","aria-label","disabled"],G=["title","aria-label","aria-pressed"],H={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},O={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},X={key:0,"data-test":"login-error",role:"alert",class:"mt-3 flex items-start gap-1.5 text-xs text-danger"},z=["disabled"],K={key:0,class:"ml-auto text-[11px] text-fg-muted"},x="xacpx-relay add token",P=w({__name:"LoginView",setup(R){const u=k(),h=B(),p=d(""),s=d(!1),i=d(!1),r=d(!1);async function m(){if(!s.value){s.value=!0;try{await u.login(p.value)&&h.replace("/")}finally{s.value=!1}}}async function y(){var o;try{await((o=navigator.clipboard)==null?void 0:o.writeText(x)),r.value=!0,window.setTimeout(()=>r.value=!1,1200)}catch{}}return(o,t)=>(n(),a("div",j,[t[11]||(t[11]=e("div",{"aria-hidden":"true",class:"login-glow"},null,-1)),t[12]||(t[12]=e("div",{"aria-hidden":"true",class:"login-grid"},null,-1)),e("form",{"data-test":"login-window",class:"relative w-[22rem] max-w-full overflow-hidden rounded-2xl border border-border bg-surface font-mono shadow-e3",onSubmit:$(m,["prevent"])},[e("div",D,[t[3]||(t[3]=e("div",{"aria-hidden":"true",class:"flex gap-[7px]"},[e("span",{class:"h-[11px] w-[11px] rounded-full opacity-90",style:{background:"#ff5f56"}}),e("span",{class:"h-[11px] w-[11px] rounded-full opacity-90",style:{background:"#ffbd2e"}}),e("span",{class:"h-[11px] w-[11px] rounded-full opacity-90",style:{background:"#27c93f"}})],-1)),e("div",L,[t[2]||(t[2]=C('<svg width="13" height="13" viewBox="0 0 24 24" fill="none" aria-hidden="true" data-v-5bca4cb2><defs data-v-5bca4cb2><linearGradient id="loginBrandX" x1="3" y1="3" x2="21" y2="21" gradientUnits="userSpaceOnUse" data-v-5bca4cb2><stop stop-color="#4F9BF5" data-v-5bca4cb2></stop><stop offset="1" stop-color="#69D689" data-v-5bca4cb2></stop></linearGradient></defs><path d="M5 5 L19 19 M19 5 L5 19" stroke="url(#loginBrandX)" stroke-width="3.4" stroke-linecap="round" data-v-5bca4cb2></path></svg>',1)),c(" xacpx-relay — "+l(o.$t("login.window")),1)])]),e("div",N,[e("div",S,[e("p",{class:"flex-1 text-[12.5px] text-fg"},[t[4]||(t[4]=e("span",{class:"select-none text-run"},"$",-1)),c(" "+l(x))]),e("button",{type:"button","data-test":"copy-command",title:o.$t("login.copyCommand"),"aria-label":o.$t("login.copyCommand"),class:f(["flex h-7 w-7 items-center justify-center rounded-md transition-colors hover:bg-bg",r.value?"text-run":"text-fg-muted hover:text-fg"]),onClick:y},[r.value?(n(),a("svg",I,[...t[6]||(t[6]=[e("path",{d:"M20 6 9 17l-5-5"},null,-1)])])):(n(),a("svg",T,[...t[5]||(t[5]=[e("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"},null,-1),e("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])]))],10,A)]),e("p",U,l(o.$t("login.runHint")),1),t[10]||(t[10]=e("div",{"aria-hidden":"true",class:"mb-2 flex items-center gap-1.5 text-xs text-fg-muted"},[e("span",{class:"text-run"},"▸"),c(" access-token ")],-1)),e("div",E,[_(e("input",{id:"access-token","onUpdate:modelValue":t[0]||(t[0]=g=>p.value=g),"data-test":"token-input",type:i.value?"text":"password",placeholder:o.$t("login.tokenPlaceholder"),"aria-label":o.$t("login.tokenLabel"),"aria-describedby":"login-hint",autocomplete:"off",disabled:s.value,class:"login-input w-full rounded-lg border border-border bg-bg py-2.5 pl-3 pr-10 text-sm tracking-[0.05em] text-fg placeholder:tracking-normal placeholder:text-fg-muted disabled:opacity-50"},null,8,F),[[M,p.value]]),e("button",{type:"button","data-test":"toggle-visibility",title:o.$t("login.toggleVisibility"),"aria-label":o.$t("login.toggleVisibility"),"aria-pressed":i.value,class:"absolute right-1.5 top-1/2 flex h-7 w-7 -translate-y-1/2 items-center justify-center rounded-md text-fg-muted transition-colors hover:bg-surface hover:text-fg",onClick:t[1]||(t[1]=g=>i.value=!i.value)},[i.value?(n(),a("svg",O,[...t[8]||(t[8]=[e("path",{d:"M9.9 4.2A11 11 0 0 1 12 4c6.5 0 10 7 10 7a13 13 0 0 1-1.7 2.7M6.6 6.6A13 13 0 0 0 2 11s3.5 7 10 7a11 11 0 0 0 3.4-.5M3 3l18 18M9.9 9.9a3 3 0 0 0 4.2 4.2"},null,-1)])])):(n(),a("svg",H,[...t[7]||(t[7]=[e("path",{d:"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"},null,-1),e("circle",{cx:"12",cy:"12",r:"3"},null,-1)])]))],8,G)]),b(u).error?(n(),a("p",X,[t[9]||(t[9]=e("span",{class:"font-bold"},"!",-1)),e("span",null,l(b(u).error),1)])):v("",!0),e("button",{type:"submit","data-test":"signin",disabled:s.value,class:"login-btn group mt-5 flex w-full items-center gap-2.5 rounded-lg px-3 py-2.5 text-[13.5px] font-semibold text-fg transition-colors hover:bg-run/10 hover:text-run disabled:cursor-default disabled:text-fg-muted disabled:hover:bg-transparent disabled:hover:text-fg-muted"},[e("span",{class:f(["login-arrow group-hover:translate-x-0.5",s.value?"text-fg-muted":"text-run"])},"▸",2),e("span",null,l(s.value?o.$t("login.signingIn"):o.$t("login.signIn")),1),s.value?v("",!0):(n(),a("span",K,"⏎ enter"))],8,z)])],32)]))}}),J=V(P,[["__scopeId","data-v-5bca4cb2"]]);export{J as default};
1
+ import{d as w,u as k,c as a,a as e,b as C,e as c,t as l,n as f,w as _,v as M,f as b,g as v,h as $,r as d,i as B,o as n}from"./index-D95RDANU.js";import{_ as V}from"./_plugin-vue_export-helper-DlAUqK2U.js";const j={class:"relative flex min-h-dvh items-center justify-center overflow-hidden bg-bg px-4"},D={class:"relative flex items-center border-b border-border bg-raised px-3.5 py-2.5"},L={class:"pointer-events-none absolute inset-x-0 flex items-center justify-center gap-1.5 text-xs text-fg-muted"},N={class:"px-4 pb-5 pt-4"},S={class:"flex items-center gap-2"},A=["title","aria-label"],T={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},I={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},U={id:"login-hint",class:"mb-5 mt-1 text-[11.5px] leading-relaxed text-fg-muted"},E={class:"relative"},F=["type","placeholder","aria-label","disabled"],G=["title","aria-label","aria-pressed"],H={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},O={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},X={key:0,"data-test":"login-error",role:"alert",class:"mt-3 flex items-start gap-1.5 text-xs text-danger"},z=["disabled"],K={key:0,class:"ml-auto text-[11px] text-fg-muted"},x="xacpx-relay add token",P=w({__name:"LoginView",setup(R){const u=k(),h=B(),p=d(""),s=d(!1),i=d(!1),r=d(!1);async function m(){if(!s.value){s.value=!0;try{await u.login(p.value)&&h.replace("/")}finally{s.value=!1}}}async function y(){var o;try{await((o=navigator.clipboard)==null?void 0:o.writeText(x)),r.value=!0,window.setTimeout(()=>r.value=!1,1200)}catch{}}return(o,t)=>(n(),a("div",j,[t[11]||(t[11]=e("div",{"aria-hidden":"true",class:"login-glow"},null,-1)),t[12]||(t[12]=e("div",{"aria-hidden":"true",class:"login-grid"},null,-1)),e("form",{"data-test":"login-window",class:"relative w-[22rem] max-w-full overflow-hidden rounded-2xl border border-border bg-surface font-mono shadow-e3",onSubmit:$(m,["prevent"])},[e("div",D,[t[3]||(t[3]=e("div",{"aria-hidden":"true",class:"flex gap-[7px]"},[e("span",{class:"h-[11px] w-[11px] rounded-full opacity-90",style:{background:"#ff5f56"}}),e("span",{class:"h-[11px] w-[11px] rounded-full opacity-90",style:{background:"#ffbd2e"}}),e("span",{class:"h-[11px] w-[11px] rounded-full opacity-90",style:{background:"#27c93f"}})],-1)),e("div",L,[t[2]||(t[2]=C('<svg width="13" height="13" viewBox="0 0 24 24" fill="none" aria-hidden="true" data-v-5bca4cb2><defs data-v-5bca4cb2><linearGradient id="loginBrandX" x1="3" y1="3" x2="21" y2="21" gradientUnits="userSpaceOnUse" data-v-5bca4cb2><stop stop-color="#4F9BF5" data-v-5bca4cb2></stop><stop offset="1" stop-color="#69D689" data-v-5bca4cb2></stop></linearGradient></defs><path d="M5 5 L19 19 M19 5 L5 19" stroke="url(#loginBrandX)" stroke-width="3.4" stroke-linecap="round" data-v-5bca4cb2></path></svg>',1)),c(" xacpx-relay — "+l(o.$t("login.window")),1)])]),e("div",N,[e("div",S,[e("p",{class:"flex-1 text-[12.5px] text-fg"},[t[4]||(t[4]=e("span",{class:"select-none text-run"},"$",-1)),c(" "+l(x))]),e("button",{type:"button","data-test":"copy-command",title:o.$t("login.copyCommand"),"aria-label":o.$t("login.copyCommand"),class:f(["flex h-7 w-7 items-center justify-center rounded-md transition-colors hover:bg-bg",r.value?"text-run":"text-fg-muted hover:text-fg"]),onClick:y},[r.value?(n(),a("svg",I,[...t[6]||(t[6]=[e("path",{d:"M20 6 9 17l-5-5"},null,-1)])])):(n(),a("svg",T,[...t[5]||(t[5]=[e("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"},null,-1),e("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])]))],10,A)]),e("p",U,l(o.$t("login.runHint")),1),t[10]||(t[10]=e("div",{"aria-hidden":"true",class:"mb-2 flex items-center gap-1.5 text-xs text-fg-muted"},[e("span",{class:"text-run"},"▸"),c(" access-token ")],-1)),e("div",E,[_(e("input",{id:"access-token","onUpdate:modelValue":t[0]||(t[0]=g=>p.value=g),"data-test":"token-input",type:i.value?"text":"password",placeholder:o.$t("login.tokenPlaceholder"),"aria-label":o.$t("login.tokenLabel"),"aria-describedby":"login-hint",autocomplete:"off",disabled:s.value,class:"login-input w-full rounded-lg border border-border bg-bg py-2.5 pl-3 pr-10 text-sm tracking-[0.05em] text-fg placeholder:tracking-normal placeholder:text-fg-muted disabled:opacity-50"},null,8,F),[[M,p.value]]),e("button",{type:"button","data-test":"toggle-visibility",title:o.$t("login.toggleVisibility"),"aria-label":o.$t("login.toggleVisibility"),"aria-pressed":i.value,class:"absolute right-1.5 top-1/2 flex h-7 w-7 -translate-y-1/2 items-center justify-center rounded-md text-fg-muted transition-colors hover:bg-surface hover:text-fg",onClick:t[1]||(t[1]=g=>i.value=!i.value)},[i.value?(n(),a("svg",O,[...t[8]||(t[8]=[e("path",{d:"M9.9 4.2A11 11 0 0 1 12 4c6.5 0 10 7 10 7a13 13 0 0 1-1.7 2.7M6.6 6.6A13 13 0 0 0 2 11s3.5 7 10 7a11 11 0 0 0 3.4-.5M3 3l18 18M9.9 9.9a3 3 0 0 0 4.2 4.2"},null,-1)])])):(n(),a("svg",H,[...t[7]||(t[7]=[e("path",{d:"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"},null,-1),e("circle",{cx:"12",cy:"12",r:"3"},null,-1)])]))],8,G)]),b(u).error?(n(),a("p",X,[t[9]||(t[9]=e("span",{class:"font-bold"},"!",-1)),e("span",null,l(b(u).error),1)])):v("",!0),e("button",{type:"submit","data-test":"signin",disabled:s.value,class:"login-btn group mt-5 flex w-full items-center gap-2.5 rounded-lg px-3 py-2.5 text-[13.5px] font-semibold text-fg transition-colors hover:bg-run/10 hover:text-run disabled:cursor-default disabled:text-fg-muted disabled:hover:bg-transparent disabled:hover:text-fg-muted"},[e("span",{class:f(["login-arrow group-hover:translate-x-0.5",s.value?"text-fg-muted":"text-run"])},"▸",2),e("span",null,l(s.value?o.$t("login.signingIn"):o.$t("login.signIn")),1),s.value?v("",!0):(n(),a("span",K,"⏎ enter"))],8,z)])],32)]))}}),J=V(P,[["__scopeId","data-v-5bca4cb2"]]);export{J as default};
@@ -1,4 +1,4 @@
1
- import{j as B,d as P,u as A,V as D,B as E,q as I,l as b,c as r,a as t,t as s,x as $,R as M,f as n,n as h,F as R,y as U,W as j,w as z,D as H,g as w,e as C,r as c,I as F,U as q,i as W,o as l}from"./index-w7-D5Xrc.js";import{u as G}from"./theme-W_gwuQgq.js";/**
1
+ import{j as B,d as P,u as A,V as D,B as E,q as I,l as b,c as r,a as t,t as s,x as $,R as M,f as n,n as h,F as R,y as U,W as j,w as z,D as H,g as w,e as C,r as c,I as F,U as q,i as W,o as l}from"./index-D95RDANU.js";import{u as G}from"./theme-CR6MoYC7.js";/**
2
2
  * @license lucide-vue-next v1.0.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-DThHTMEG.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/LoginView-BDsZDCu4.css","assets/DashboardView-DHpsuunb.js","assets/theme-W_gwuQgq.js","assets/DashboardView-DQH2-6ZB.css","assets/SettingsView-CqmzNd9O.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-6-Sx6Ty1.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/LoginView-BDsZDCu4.css","assets/DashboardView-B-uAkayo.js","assets/theme-CR6MoYC7.js","assets/DashboardView-DQH2-6ZB.css","assets/SettingsView-FpZipkSZ.js"])))=>i.map(i=>d[i]);
2
2
  (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();/**
3
3
  * @vue/shared v3.5.35
4
4
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
@@ -77,7 +77,7 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-DThHT
77
77
  * vue-router v4.6.4
78
78
  * (c) 2025 Eduardo San Martin Morote
79
79
  * @license MIT
80
- */let Zh=()=>location.protocol+"//"+location.host;function Tc(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let i=r.includes(e.slice(o))?e.slice(o).length:1,l=r.slice(i);return l[0]!=="/"&&(l="/"+l),Yi(l,"")}return Yi(n,e)+s+r}function zh(e,t,n,s){let r=[],o=[],i=null;const l=({state:d})=>{const _=Tc(e,location),C=n.value,y=t.value;let w=0;if(d){if(n.value=_,t.value=d,i&&i===C){i=null;return}w=y?d.position-y.position:0}else s(_);r.forEach(M=>{M(n.value,C,{delta:w,type:ao.pop,direction:w?w>0?Ur.forward:Ur.back:Ur.unknown})})};function a(){i=n.value}function c(d){r.push(d);const _=()=>{const C=r.indexOf(d);C>-1&&r.splice(C,1)};return o.push(_),_}function u(){if(document.visibilityState==="hidden"){const{history:d}=window;if(!d.state)return;d.replaceState(ue({},d.state,{scroll:vr()}),"")}}function f(){for(const d of o)d();o=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:a,listen:c,destroy:f}}function Zi(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?vr():null}}function em(e){const{history:t,location:n}=window,s={value:Tc(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(a,c,u){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:Zh()+e+a;try{t[u?"replaceState":"pushState"](c,"",d),r.value=c}catch(_){console.error(_),n[u?"replace":"assign"](d)}}function i(a,c){o(a,ue({},t.state,Zi(r.value.back,a,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=a}function l(a,c){const u=ue({},r.value,t.state,{forward:a,scroll:vr()});o(u.current,u,!0),o(a,ue({},Zi(s.value,a,null),{position:u.position+1},c),!1),s.value=a}return{location:s,state:r,push:l,replace:i}}function tm(e){e=Uh(e);const t=em(e),n=zh(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=ue({location:"",base:e,go:s,createHref:Hh.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let bn=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var Oe=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(Oe||{});const nm={type:bn.Static,value:""},sm=/[a-zA-Z0-9_]/;function rm(e){if(!e)return[[]];if(e==="/")return[[nm]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(_){throw new Error(`ERR (${n})/"${c}": ${_}`)}let n=Oe.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let l=0,a,c="",u="";function f(){c&&(n===Oe.Static?o.push({type:bn.Static,value:c}):n===Oe.Param||n===Oe.ParamRegExp||n===Oe.ParamRegExpEnd?(o.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:bn.Param,value:c,regexp:u,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function d(){c+=a}for(;l<e.length;){if(a=e[l++],a==="\\"&&n!==Oe.ParamRegExp){s=n,n=Oe.EscapeNext;continue}switch(n){case Oe.Static:a==="/"?(c&&f(),i()):a===":"?(f(),n=Oe.Param):d();break;case Oe.EscapeNext:d(),n=s;break;case Oe.Param:a==="("?n=Oe.ParamRegExp:sm.test(a)?d():(f(),n=Oe.Static,a!=="*"&&a!=="?"&&a!=="+"&&l--);break;case Oe.ParamRegExp:a===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+a:n=Oe.ParamRegExpEnd:u+=a;break;case Oe.ParamRegExpEnd:f(),n=Oe.Static,a!=="*"&&a!=="?"&&a!=="+"&&l--,u="";break;default:t("Unknown state");break}}return n===Oe.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),f(),i(),r}const zi="[^/]+?",om={sensitive:!1,strict:!1,start:!0,end:!0};var Xe=function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e}(Xe||{});const im=/[.+*?^${}()[\]/\\]/g;function lm(e,t){const n=ue({},om,t),s=[];let r=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[Xe.Root];n.strict&&!c.length&&(r+="/");for(let f=0;f<c.length;f++){const d=c[f];let _=Xe.Segment+(n.sensitive?Xe.BonusCaseSensitive:0);if(d.type===bn.Static)f||(r+="/"),r+=d.value.replace(im,"\\$&"),_+=Xe.Static;else if(d.type===bn.Param){const{value:C,repeatable:y,optional:w,regexp:M}=d;o.push({name:C,repeatable:y,optional:w});const R=M||zi;if(R!==zi){_+=Xe.BonusCustomRegExp;try{`${R}`}catch(b){throw new Error(`Invalid custom RegExp for param "${C}" (${R}): `+b.message)}}let E=y?`((?:${R})(?:/(?:${R}))*)`:`(${R})`;f||(E=w&&c.length<2?`(?:/${E})`:"/"+E),w&&(E+="?"),r+=E,_+=Xe.Dynamic,w&&(_+=Xe.BonusOptional),y&&(_+=Xe.BonusRepeatable),R===".*"&&(_+=Xe.BonusWildcard)}u.push(_)}s.push(u)}if(n.strict&&n.end){const c=s.length-1;s[c][s[c].length-1]+=Xe.BonusStrict}n.strict||(r+="/?"),n.end?r+="$":n.strict&&!r.endsWith("/")&&(r+="(?:/|$)");const i=new RegExp(r,n.sensitive?"":"i");function l(c){const u=c.match(i),f={};if(!u)return null;for(let d=1;d<u.length;d++){const _=u[d]||"",C=o[d-1];f[C.name]=_&&C.repeatable?_.split("/"):_}return f}function a(c){let u="",f=!1;for(const d of e){(!f||!u.endsWith("/"))&&(u+="/"),f=!1;for(const _ of d)if(_.type===bn.Static)u+=_.value;else if(_.type===bn.Param){const{value:C,repeatable:y,optional:w}=_,M=C in c?c[C]:"";if(Et(M)&&!y)throw new Error(`Provided param "${C}" is an array but it is not repeatable (* or + modifiers)`);const R=Et(M)?M.join("/"):M;if(!R)if(w)d.length<2&&(u.endsWith("/")?u=u.slice(0,-1):f=!0);else throw new Error(`Missing required param "${C}"`);u+=R}}return u||"/"}return{re:i,score:s,keys:o,parse:l,stringify:a}}function am(e,t){let n=0;for(;n<e.length&&n<t.length;){const s=t[n]-e[n];if(s)return s;n++}return e.length<t.length?e.length===1&&e[0]===Xe.Static+Xe.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Xe.Static+Xe.Segment?1:-1:0}function Sc(e,t){let n=0;const s=e.score,r=t.score;for(;n<s.length&&n<r.length;){const o=am(s[n],r[n]);if(o)return o;n++}if(Math.abs(r.length-s.length)===1){if(el(s))return 1;if(el(r))return-1}return r.length-s.length}function el(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const cm={strict:!1,end:!0,sensitive:!1};function um(e,t,n){const s=lm(rm(e.path),n),r=ue(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function fm(e,t){const n=[],s=new Map;t=Ki(cm,t);function r(f){return s.get(f)}function o(f,d,_){const C=!_,y=nl(f);y.aliasOf=_&&_.record;const w=Ki(t,f),M=[y];if("alias"in f){const b=typeof f.alias=="string"?[f.alias]:f.alias;for(const I of b)M.push(nl(ue({},y,{components:_?_.record.components:y.components,path:I,aliasOf:_?_.record:y})))}let R,E;for(const b of M){const{path:I}=b;if(d&&I[0]!=="/"){const O=d.record.path,L=O[O.length-1]==="/"?"":"/";b.path=d.record.path+(I&&L+I)}if(R=um(b,d,w),_?_.alias.push(R):(E=E||R,E!==R&&E.alias.push(R),C&&f.name&&!sl(R)&&i(f.name)),Ac(R)&&a(R),y.children){const O=y.children;for(let L=0;L<O.length;L++)o(O[L],R,_&&_.children[L])}_=_||R}return E?()=>{i(E)}:cs}function i(f){if(Ec(f)){const d=s.get(f);d&&(s.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&s.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function a(f){const d=mm(f,n);n.splice(d,0,f),f.record.name&&!sl(f)&&s.set(f.record.name,f)}function c(f,d){let _,C={},y,w;if("name"in f&&f.name){if(_=s.get(f.name),!_)throw Vn(Ae.MATCHER_NOT_FOUND,{location:f});w=_.record.name,C=ue(tl(d.params,_.keys.filter(E=>!E.optional).concat(_.parent?_.parent.keys.filter(E=>E.optional):[]).map(E=>E.name)),f.params&&tl(f.params,_.keys.map(E=>E.name))),y=_.stringify(C)}else if(f.path!=null)y=f.path,_=n.find(E=>E.re.test(y)),_&&(C=_.parse(y),w=_.record.name);else{if(_=d.name?s.get(d.name):n.find(E=>E.re.test(d.path)),!_)throw Vn(Ae.MATCHER_NOT_FOUND,{location:f,currentLocation:d});w=_.record.name,C=ue({},d.params,f.params),y=_.stringify(C)}const M=[];let R=_;for(;R;)M.unshift(R.record),R=R.parent;return{name:w,path:y,params:C,matched:M,meta:hm(M)}}e.forEach(f=>o(f));function u(){n.length=0,s.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:l,getRecordMatcher:r}}function tl(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function nl(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:dm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function dm(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function sl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hm(e){return e.reduce((t,n)=>ue(t,n.meta),{})}function mm(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;Sc(e,t[o])<0?s=o:n=o+1}const r=pm(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function pm(e){let t=e;for(;t=t.parent;)if(Ac(t)&&Sc(e,t)===0)return t}function Ac({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function rl(e){const t=ut(Er),n=ut(yc),s=Ce(()=>{const a=Ie(e.to);return t.resolve(a)}),r=Ce(()=>{const{matched:a}=s.value,{length:c}=a,u=a[c-1],f=n.matched;if(!u||!f.length)return-1;const d=f.findIndex(Un.bind(null,u));if(d>-1)return d;const _=ol(a[c-2]);return c>1&&ol(u)===_&&f[f.length-1].path!==_?f.findIndex(Un.bind(null,a[c-2])):d}),o=Ce(()=>r.value>-1&&bm(n.params,s.value.params)),i=Ce(()=>r.value>-1&&r.value===n.matched.length-1&&vc(n.params,s.value.params));function l(a={}){if(Em(a)){const c=t[Ie(e.replace)?"replace":"push"](Ie(e.to)).catch(cs);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:Ce(()=>s.value.href),isActive:o,isExactActive:i,navigate:l}}function gm(e){return e.length===1?e[0]:e}const _m=An({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:rl,setup(e,{slots:t}){const n=Cs(rl(e)),{options:s}=ut(Er),r=Ce(()=>({[il(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[il(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&gm(t.default(n));return e.custom?o:nn("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),vm=_m;function Em(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function bm(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!Et(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function ol(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const il=(e,t,n)=>e??t??n,ym=An({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=ut(uo),r=Ce(()=>e.route||s.value),o=ut(Qi,0),i=Ce(()=>{let c=Ie(o);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),l=Ce(()=>r.value.matched[i.value]);Us(Qi,Ce(()=>i.value+1)),Us(Jh,l),Us(uo,r);const a=ct();return Zt(()=>[a.value,l.value,e.name],([c,u,f],[d,_,C])=>{u&&(u.instances[f]=c,_&&_!==u&&c&&c===d&&(u.leaveGuards.size||(u.leaveGuards=_.leaveGuards),u.updateGuards.size||(u.updateGuards=_.updateGuards))),c&&u&&(!_||!Un(u,_)||!d)&&(u.enterCallbacks[f]||[]).forEach(y=>y(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,f=l.value,d=f&&f.components[u];if(!d)return ll(n.default,{Component:d,route:c});const _=f.props[u],C=_?_===!0?c.params:typeof _=="function"?_(c):_:null,w=nn(d,ue({},C,t,{onVnodeUnmounted:M=>{M.component.isUnmounted&&(f.instances[u]=null)},ref:a}));return ll(n.default,{Component:w,route:c})||w}}});function ll(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Tm=ym;function Sm(e){const t=fm(e.routes,e),n=e.parseQuery||Xh,s=e.stringifyQuery||Ji,r=e.history,o=Jn(),i=Jn(),l=Jn(),a=ko(Kt);let c=Kt;On&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Fr.bind(null,x=>""+x),f=Fr.bind(null,Ph),d=Fr.bind(null,bs);function _(x,Y){let j,X;return Ec(x)?(j=t.getRecordMatcher(x),X=Y):X=x,t.addRoute(X,j)}function C(x){const Y=t.getRecordMatcher(x);Y&&t.removeRoute(Y)}function y(){return t.getRoutes().map(x=>x.record)}function w(x){return!!t.getRecordMatcher(x)}function M(x,Y){if(Y=ue({},Y||a.value),typeof x=="string"){const g=xr(n,x,Y.path),N=t.resolve({path:g.path},Y),U=r.createHref(g.fullPath);return ue(g,N,{params:d(N.params),hash:bs(g.hash),redirectedFrom:void 0,href:U})}let j;if(x.path!=null)j=ue({},x,{path:xr(n,x.path,Y.path).path});else{const g=ue({},x.params);for(const N in g)g[N]==null&&delete g[N];j=ue({},x,{params:f(g)}),Y.params=f(Y.params)}const X=t.resolve(j,Y),re=x.hash||"";X.params=u(d(X.params));const p=Dh(s,ue({},x,{hash:Ih(re),path:X.path})),v=r.createHref(p);return ue({fullPath:p,hash:re,query:s===Ji?qh(x.query):x.query||{}},X,{redirectedFrom:void 0,href:v})}function R(x){return typeof x=="string"?xr(n,x,a.value.path):ue({},x)}function E(x,Y){if(c!==x)return Vn(Ae.NAVIGATION_CANCELLED,{from:Y,to:x})}function b(x){return L(x)}function I(x){return b(ue(R(x),{replace:!0}))}function O(x,Y){const j=x.matched[x.matched.length-1];if(j&&j.redirect){const{redirect:X}=j;let re=typeof X=="function"?X(x,Y):X;return typeof re=="string"&&(re=re.includes("?")||re.includes("#")?re=R(re):{path:re},re.params={}),ue({query:x.query,hash:x.hash,params:re.path!=null?{}:x.params},re)}}function L(x,Y){const j=c=M(x),X=a.value,re=x.state,p=x.force,v=x.replace===!0,g=O(j,X);if(g)return L(ue(R(g),{state:typeof g=="object"?ue({},re,g.state):re,force:p,replace:v}),Y||j);const N=j;N.redirectedFrom=Y;let U;return!p&&Mh(s,X,j)&&(U=Vn(Ae.NAVIGATION_DUPLICATED,{to:N,from:X}),Te(X,X,!0,!1)),(U?Promise.resolve(U):K(N,X)).catch(k=>Pt(k)?Pt(k,Ae.NAVIGATION_GUARD_REDIRECT)?k:Qe(k):le(k,N,X)).then(k=>{if(k){if(Pt(k,Ae.NAVIGATION_GUARD_REDIRECT))return L(ue({replace:v},R(k.to),{state:typeof k.to=="object"?ue({},re,k.to.state):re,force:p}),Y||N)}else k=V(N,X,!0,v,re);return Z(N,X,k),k})}function F(x,Y){const j=E(x,Y);return j?Promise.reject(j):Promise.resolve()}function T(x){const Y=ze.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(x):x()}function K(x,Y){let j;const[X,re,p]=Qh(x,Y);j=Vr(X.reverse(),"beforeRouteLeave",x,Y);for(const g of X)g.leaveGuards.forEach(N=>{j.push(Qt(N,x,Y))});const v=F.bind(null,x,Y);return j.push(v),De(j).then(()=>{j=[];for(const g of o.list())j.push(Qt(g,x,Y));return j.push(v),De(j)}).then(()=>{j=Vr(re,"beforeRouteUpdate",x,Y);for(const g of re)g.updateGuards.forEach(N=>{j.push(Qt(N,x,Y))});return j.push(v),De(j)}).then(()=>{j=[];for(const g of p)if(g.beforeEnter)if(Et(g.beforeEnter))for(const N of g.beforeEnter)j.push(Qt(N,x,Y));else j.push(Qt(g.beforeEnter,x,Y));return j.push(v),De(j)}).then(()=>(x.matched.forEach(g=>g.enterCallbacks={}),j=Vr(p,"beforeRouteEnter",x,Y,T),j.push(v),De(j))).then(()=>{j=[];for(const g of i.list())j.push(Qt(g,x,Y));return j.push(v),De(j)}).catch(g=>Pt(g,Ae.NAVIGATION_CANCELLED)?g:Promise.reject(g))}function Z(x,Y,j){l.list().forEach(X=>T(()=>X(x,Y,j)))}function V(x,Y,j,X,re){const p=E(x,Y);if(p)return p;const v=Y===Kt,g=On?history.state:{};j&&(X||v?r.replace(x.fullPath,ue({scroll:v&&g&&g.scroll},re)):r.push(x.fullPath,re)),a.value=x,Te(x,Y,j,v),Qe()}let Q;function he(){Q||(Q=r.listen((x,Y,j)=>{if(!et.listening)return;const X=M(x),re=O(X,et.currentRoute.value);if(re){L(ue(re,{replace:!0,force:!0}),X).catch(cs);return}c=X;const p=a.value;On&&Bh(qi(p.fullPath,j.delta),vr()),K(X,p).catch(v=>Pt(v,Ae.NAVIGATION_ABORTED|Ae.NAVIGATION_CANCELLED)?v:Pt(v,Ae.NAVIGATION_GUARD_REDIRECT)?(L(ue(R(v.to),{force:!0}),X).then(g=>{Pt(g,Ae.NAVIGATION_ABORTED|Ae.NAVIGATION_DUPLICATED)&&!j.delta&&j.type===ao.pop&&r.go(-1,!1)}).catch(cs),Promise.reject()):(j.delta&&r.go(-j.delta,!1),le(v,X,p))).then(v=>{v=v||V(X,p,!1),v&&(j.delta&&!Pt(v,Ae.NAVIGATION_CANCELLED)?r.go(-j.delta,!1):j.type===ao.pop&&Pt(v,Ae.NAVIGATION_ABORTED|Ae.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),Z(X,p,v)}).catch(cs)}))}let Ne=Jn(),oe=Jn(),ee;function le(x,Y,j){Qe(x);const X=oe.list();return X.length?X.forEach(re=>re(x,Y,j)):console.error(x),Promise.reject(x)}function Be(){return ee&&a.value!==Kt?Promise.resolve():new Promise((x,Y)=>{Ne.add([x,Y])})}function Qe(x){return ee||(ee=!x,he(),Ne.list().forEach(([Y,j])=>x?j(x):Y()),Ne.reset()),x}function Te(x,Y,j,X){const{scrollBehavior:re}=e;if(!On||!re)return Promise.resolve();const p=!j&&jh(qi(x.fullPath,0))||(X||!j)&&history.state&&history.state.scroll||null;return fr().then(()=>re(x,Y,p)).then(v=>v&&$h(v)).catch(v=>le(v,x,Y))}const Se=x=>r.go(x);let ot;const ze=new Set,et={currentRoute:a,listening:!0,addRoute:_,removeRoute:C,clearRoutes:t.clearRoutes,hasRoute:w,getRoutes:y,resolve:M,options:e,push:b,replace:I,go:Se,back:()=>Se(-1),forward:()=>Se(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:oe.add,isReady:Be,install(x){x.component("RouterLink",vm),x.component("RouterView",Tm),x.config.globalProperties.$router=et,Object.defineProperty(x.config.globalProperties,"$route",{enumerable:!0,get:()=>Ie(a)}),On&&!ot&&a.value===Kt&&(ot=!0,b(r.location).catch(X=>{}));const Y={};for(const X in Kt)Object.defineProperty(Y,X,{get:()=>a.value[X],enumerable:!0});x.provide(Er,et),x.provide(yc,ha(Y)),x.provide(uo,a);const j=x.unmount;ze.add(x),x.unmount=function(){ze.delete(x),ze.size<1&&(c=Kt,Q&&Q(),Q=null,a.value=Kt,ot=!1,ee=!1),j()}}};function De(x){return x.reduce((Y,j)=>Y.then(()=>T(j)),Promise.resolve())}return et}function e_(){return ut(Er)}class Cc extends Error{constructor(t,n){super(t),this.code=t,this.status=n}}async function Ln(e,t,n){const r=await fetch(t,{method:e,credentials:"include",headers:e==="GET"?{}:{"content-type":"application/json"},body:n===void 0?void 0:JSON.stringify(n)}),o=r.status===204?void 0:await r.json().catch(()=>{});if(!r.ok)throw new Cc((o==null?void 0:o.error)??"request-failed",r.status);return o}const Hr={get:e=>Ln("GET",e),post:(e,t)=>Ln("POST",e,t),patch:(e,t)=>Ln("PATCH",e,t),del:e=>Ln("DELETE",e),rpc:(e,t,n={})=>Ln("POST",`/api/instances/${e}/rpc`,{type:t,payload:n}).then(s=>s.result),upload:(e,t)=>Ln("POST",`/api/instances/${e}/rpc`,{type:"control.upload",payload:t}).then(n=>n.result)},Am=fc("auth",()=>{const e=ct(null),t=ct("");async function n(o){t.value="";try{return e.value=await Hr.post("/api/login",{token:o}),!0}catch(i){return t.value=i instanceof Cc?i.code:"request-failed",e.value=null,!1}}async function s(){try{return e.value=await Hr.get("/api/me"),!0}catch{return e.value=null,!1}}async function r(){await Hr.post("/api/logout").catch(()=>{}),e.value=null}return{account:e,error:t,login:n,fetchMe:s,logout:r}}),Cm=[{path:"/login",name:"login",component:()=>Ws(()=>import("./LoginView-DThHTMEG.js"),__vite__mapDeps([0,1,2]))},{path:"/",name:"dashboard",component:()=>Ws(()=>import("./DashboardView-DHpsuunb.js"),__vite__mapDeps([3,1,4,5]))},{path:"/settings",name:"settings",component:()=>Ws(()=>import("./SettingsView-CqmzNd9O.js"),__vite__mapDeps([6,4]))}],Nc=Sm({history:tm(),routes:Cm});Nc.beforeEach(async e=>{if(e.name==="login")return!0;const t=Am();return t.account||await t.fetchMe()?!0:{name:"login"}});/*!
80
+ */let Zh=()=>location.protocol+"//"+location.host;function Tc(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let i=r.includes(e.slice(o))?e.slice(o).length:1,l=r.slice(i);return l[0]!=="/"&&(l="/"+l),Yi(l,"")}return Yi(n,e)+s+r}function zh(e,t,n,s){let r=[],o=[],i=null;const l=({state:d})=>{const _=Tc(e,location),C=n.value,y=t.value;let w=0;if(d){if(n.value=_,t.value=d,i&&i===C){i=null;return}w=y?d.position-y.position:0}else s(_);r.forEach(M=>{M(n.value,C,{delta:w,type:ao.pop,direction:w?w>0?Ur.forward:Ur.back:Ur.unknown})})};function a(){i=n.value}function c(d){r.push(d);const _=()=>{const C=r.indexOf(d);C>-1&&r.splice(C,1)};return o.push(_),_}function u(){if(document.visibilityState==="hidden"){const{history:d}=window;if(!d.state)return;d.replaceState(ue({},d.state,{scroll:vr()}),"")}}function f(){for(const d of o)d();o=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:a,listen:c,destroy:f}}function Zi(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?vr():null}}function em(e){const{history:t,location:n}=window,s={value:Tc(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(a,c,u){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:Zh()+e+a;try{t[u?"replaceState":"pushState"](c,"",d),r.value=c}catch(_){console.error(_),n[u?"replace":"assign"](d)}}function i(a,c){o(a,ue({},t.state,Zi(r.value.back,a,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=a}function l(a,c){const u=ue({},r.value,t.state,{forward:a,scroll:vr()});o(u.current,u,!0),o(a,ue({},Zi(s.value,a,null),{position:u.position+1},c),!1),s.value=a}return{location:s,state:r,push:l,replace:i}}function tm(e){e=Uh(e);const t=em(e),n=zh(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=ue({location:"",base:e,go:s,createHref:Hh.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let bn=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var Oe=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(Oe||{});const nm={type:bn.Static,value:""},sm=/[a-zA-Z0-9_]/;function rm(e){if(!e)return[[]];if(e==="/")return[[nm]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(_){throw new Error(`ERR (${n})/"${c}": ${_}`)}let n=Oe.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let l=0,a,c="",u="";function f(){c&&(n===Oe.Static?o.push({type:bn.Static,value:c}):n===Oe.Param||n===Oe.ParamRegExp||n===Oe.ParamRegExpEnd?(o.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:bn.Param,value:c,regexp:u,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function d(){c+=a}for(;l<e.length;){if(a=e[l++],a==="\\"&&n!==Oe.ParamRegExp){s=n,n=Oe.EscapeNext;continue}switch(n){case Oe.Static:a==="/"?(c&&f(),i()):a===":"?(f(),n=Oe.Param):d();break;case Oe.EscapeNext:d(),n=s;break;case Oe.Param:a==="("?n=Oe.ParamRegExp:sm.test(a)?d():(f(),n=Oe.Static,a!=="*"&&a!=="?"&&a!=="+"&&l--);break;case Oe.ParamRegExp:a===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+a:n=Oe.ParamRegExpEnd:u+=a;break;case Oe.ParamRegExpEnd:f(),n=Oe.Static,a!=="*"&&a!=="?"&&a!=="+"&&l--,u="";break;default:t("Unknown state");break}}return n===Oe.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),f(),i(),r}const zi="[^/]+?",om={sensitive:!1,strict:!1,start:!0,end:!0};var Xe=function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e}(Xe||{});const im=/[.+*?^${}()[\]/\\]/g;function lm(e,t){const n=ue({},om,t),s=[];let r=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[Xe.Root];n.strict&&!c.length&&(r+="/");for(let f=0;f<c.length;f++){const d=c[f];let _=Xe.Segment+(n.sensitive?Xe.BonusCaseSensitive:0);if(d.type===bn.Static)f||(r+="/"),r+=d.value.replace(im,"\\$&"),_+=Xe.Static;else if(d.type===bn.Param){const{value:C,repeatable:y,optional:w,regexp:M}=d;o.push({name:C,repeatable:y,optional:w});const R=M||zi;if(R!==zi){_+=Xe.BonusCustomRegExp;try{`${R}`}catch(b){throw new Error(`Invalid custom RegExp for param "${C}" (${R}): `+b.message)}}let E=y?`((?:${R})(?:/(?:${R}))*)`:`(${R})`;f||(E=w&&c.length<2?`(?:/${E})`:"/"+E),w&&(E+="?"),r+=E,_+=Xe.Dynamic,w&&(_+=Xe.BonusOptional),y&&(_+=Xe.BonusRepeatable),R===".*"&&(_+=Xe.BonusWildcard)}u.push(_)}s.push(u)}if(n.strict&&n.end){const c=s.length-1;s[c][s[c].length-1]+=Xe.BonusStrict}n.strict||(r+="/?"),n.end?r+="$":n.strict&&!r.endsWith("/")&&(r+="(?:/|$)");const i=new RegExp(r,n.sensitive?"":"i");function l(c){const u=c.match(i),f={};if(!u)return null;for(let d=1;d<u.length;d++){const _=u[d]||"",C=o[d-1];f[C.name]=_&&C.repeatable?_.split("/"):_}return f}function a(c){let u="",f=!1;for(const d of e){(!f||!u.endsWith("/"))&&(u+="/"),f=!1;for(const _ of d)if(_.type===bn.Static)u+=_.value;else if(_.type===bn.Param){const{value:C,repeatable:y,optional:w}=_,M=C in c?c[C]:"";if(Et(M)&&!y)throw new Error(`Provided param "${C}" is an array but it is not repeatable (* or + modifiers)`);const R=Et(M)?M.join("/"):M;if(!R)if(w)d.length<2&&(u.endsWith("/")?u=u.slice(0,-1):f=!0);else throw new Error(`Missing required param "${C}"`);u+=R}}return u||"/"}return{re:i,score:s,keys:o,parse:l,stringify:a}}function am(e,t){let n=0;for(;n<e.length&&n<t.length;){const s=t[n]-e[n];if(s)return s;n++}return e.length<t.length?e.length===1&&e[0]===Xe.Static+Xe.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Xe.Static+Xe.Segment?1:-1:0}function Sc(e,t){let n=0;const s=e.score,r=t.score;for(;n<s.length&&n<r.length;){const o=am(s[n],r[n]);if(o)return o;n++}if(Math.abs(r.length-s.length)===1){if(el(s))return 1;if(el(r))return-1}return r.length-s.length}function el(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const cm={strict:!1,end:!0,sensitive:!1};function um(e,t,n){const s=lm(rm(e.path),n),r=ue(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function fm(e,t){const n=[],s=new Map;t=Ki(cm,t);function r(f){return s.get(f)}function o(f,d,_){const C=!_,y=nl(f);y.aliasOf=_&&_.record;const w=Ki(t,f),M=[y];if("alias"in f){const b=typeof f.alias=="string"?[f.alias]:f.alias;for(const I of b)M.push(nl(ue({},y,{components:_?_.record.components:y.components,path:I,aliasOf:_?_.record:y})))}let R,E;for(const b of M){const{path:I}=b;if(d&&I[0]!=="/"){const O=d.record.path,L=O[O.length-1]==="/"?"":"/";b.path=d.record.path+(I&&L+I)}if(R=um(b,d,w),_?_.alias.push(R):(E=E||R,E!==R&&E.alias.push(R),C&&f.name&&!sl(R)&&i(f.name)),Ac(R)&&a(R),y.children){const O=y.children;for(let L=0;L<O.length;L++)o(O[L],R,_&&_.children[L])}_=_||R}return E?()=>{i(E)}:cs}function i(f){if(Ec(f)){const d=s.get(f);d&&(s.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&s.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function a(f){const d=mm(f,n);n.splice(d,0,f),f.record.name&&!sl(f)&&s.set(f.record.name,f)}function c(f,d){let _,C={},y,w;if("name"in f&&f.name){if(_=s.get(f.name),!_)throw Vn(Ae.MATCHER_NOT_FOUND,{location:f});w=_.record.name,C=ue(tl(d.params,_.keys.filter(E=>!E.optional).concat(_.parent?_.parent.keys.filter(E=>E.optional):[]).map(E=>E.name)),f.params&&tl(f.params,_.keys.map(E=>E.name))),y=_.stringify(C)}else if(f.path!=null)y=f.path,_=n.find(E=>E.re.test(y)),_&&(C=_.parse(y),w=_.record.name);else{if(_=d.name?s.get(d.name):n.find(E=>E.re.test(d.path)),!_)throw Vn(Ae.MATCHER_NOT_FOUND,{location:f,currentLocation:d});w=_.record.name,C=ue({},d.params,f.params),y=_.stringify(C)}const M=[];let R=_;for(;R;)M.unshift(R.record),R=R.parent;return{name:w,path:y,params:C,matched:M,meta:hm(M)}}e.forEach(f=>o(f));function u(){n.length=0,s.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:l,getRecordMatcher:r}}function tl(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function nl(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:dm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function dm(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function sl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hm(e){return e.reduce((t,n)=>ue(t,n.meta),{})}function mm(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;Sc(e,t[o])<0?s=o:n=o+1}const r=pm(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function pm(e){let t=e;for(;t=t.parent;)if(Ac(t)&&Sc(e,t)===0)return t}function Ac({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function rl(e){const t=ut(Er),n=ut(yc),s=Ce(()=>{const a=Ie(e.to);return t.resolve(a)}),r=Ce(()=>{const{matched:a}=s.value,{length:c}=a,u=a[c-1],f=n.matched;if(!u||!f.length)return-1;const d=f.findIndex(Un.bind(null,u));if(d>-1)return d;const _=ol(a[c-2]);return c>1&&ol(u)===_&&f[f.length-1].path!==_?f.findIndex(Un.bind(null,a[c-2])):d}),o=Ce(()=>r.value>-1&&bm(n.params,s.value.params)),i=Ce(()=>r.value>-1&&r.value===n.matched.length-1&&vc(n.params,s.value.params));function l(a={}){if(Em(a)){const c=t[Ie(e.replace)?"replace":"push"](Ie(e.to)).catch(cs);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:Ce(()=>s.value.href),isActive:o,isExactActive:i,navigate:l}}function gm(e){return e.length===1?e[0]:e}const _m=An({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:rl,setup(e,{slots:t}){const n=Cs(rl(e)),{options:s}=ut(Er),r=Ce(()=>({[il(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[il(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&gm(t.default(n));return e.custom?o:nn("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),vm=_m;function Em(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function bm(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!Et(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function ol(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const il=(e,t,n)=>e??t??n,ym=An({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=ut(uo),r=Ce(()=>e.route||s.value),o=ut(Qi,0),i=Ce(()=>{let c=Ie(o);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),l=Ce(()=>r.value.matched[i.value]);Us(Qi,Ce(()=>i.value+1)),Us(Jh,l),Us(uo,r);const a=ct();return Zt(()=>[a.value,l.value,e.name],([c,u,f],[d,_,C])=>{u&&(u.instances[f]=c,_&&_!==u&&c&&c===d&&(u.leaveGuards.size||(u.leaveGuards=_.leaveGuards),u.updateGuards.size||(u.updateGuards=_.updateGuards))),c&&u&&(!_||!Un(u,_)||!d)&&(u.enterCallbacks[f]||[]).forEach(y=>y(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,f=l.value,d=f&&f.components[u];if(!d)return ll(n.default,{Component:d,route:c});const _=f.props[u],C=_?_===!0?c.params:typeof _=="function"?_(c):_:null,w=nn(d,ue({},C,t,{onVnodeUnmounted:M=>{M.component.isUnmounted&&(f.instances[u]=null)},ref:a}));return ll(n.default,{Component:w,route:c})||w}}});function ll(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Tm=ym;function Sm(e){const t=fm(e.routes,e),n=e.parseQuery||Xh,s=e.stringifyQuery||Ji,r=e.history,o=Jn(),i=Jn(),l=Jn(),a=ko(Kt);let c=Kt;On&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Fr.bind(null,x=>""+x),f=Fr.bind(null,Ph),d=Fr.bind(null,bs);function _(x,Y){let j,X;return Ec(x)?(j=t.getRecordMatcher(x),X=Y):X=x,t.addRoute(X,j)}function C(x){const Y=t.getRecordMatcher(x);Y&&t.removeRoute(Y)}function y(){return t.getRoutes().map(x=>x.record)}function w(x){return!!t.getRecordMatcher(x)}function M(x,Y){if(Y=ue({},Y||a.value),typeof x=="string"){const g=xr(n,x,Y.path),N=t.resolve({path:g.path},Y),U=r.createHref(g.fullPath);return ue(g,N,{params:d(N.params),hash:bs(g.hash),redirectedFrom:void 0,href:U})}let j;if(x.path!=null)j=ue({},x,{path:xr(n,x.path,Y.path).path});else{const g=ue({},x.params);for(const N in g)g[N]==null&&delete g[N];j=ue({},x,{params:f(g)}),Y.params=f(Y.params)}const X=t.resolve(j,Y),re=x.hash||"";X.params=u(d(X.params));const p=Dh(s,ue({},x,{hash:Ih(re),path:X.path})),v=r.createHref(p);return ue({fullPath:p,hash:re,query:s===Ji?qh(x.query):x.query||{}},X,{redirectedFrom:void 0,href:v})}function R(x){return typeof x=="string"?xr(n,x,a.value.path):ue({},x)}function E(x,Y){if(c!==x)return Vn(Ae.NAVIGATION_CANCELLED,{from:Y,to:x})}function b(x){return L(x)}function I(x){return b(ue(R(x),{replace:!0}))}function O(x,Y){const j=x.matched[x.matched.length-1];if(j&&j.redirect){const{redirect:X}=j;let re=typeof X=="function"?X(x,Y):X;return typeof re=="string"&&(re=re.includes("?")||re.includes("#")?re=R(re):{path:re},re.params={}),ue({query:x.query,hash:x.hash,params:re.path!=null?{}:x.params},re)}}function L(x,Y){const j=c=M(x),X=a.value,re=x.state,p=x.force,v=x.replace===!0,g=O(j,X);if(g)return L(ue(R(g),{state:typeof g=="object"?ue({},re,g.state):re,force:p,replace:v}),Y||j);const N=j;N.redirectedFrom=Y;let U;return!p&&Mh(s,X,j)&&(U=Vn(Ae.NAVIGATION_DUPLICATED,{to:N,from:X}),Te(X,X,!0,!1)),(U?Promise.resolve(U):K(N,X)).catch(k=>Pt(k)?Pt(k,Ae.NAVIGATION_GUARD_REDIRECT)?k:Qe(k):le(k,N,X)).then(k=>{if(k){if(Pt(k,Ae.NAVIGATION_GUARD_REDIRECT))return L(ue({replace:v},R(k.to),{state:typeof k.to=="object"?ue({},re,k.to.state):re,force:p}),Y||N)}else k=V(N,X,!0,v,re);return Z(N,X,k),k})}function F(x,Y){const j=E(x,Y);return j?Promise.reject(j):Promise.resolve()}function T(x){const Y=ze.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(x):x()}function K(x,Y){let j;const[X,re,p]=Qh(x,Y);j=Vr(X.reverse(),"beforeRouteLeave",x,Y);for(const g of X)g.leaveGuards.forEach(N=>{j.push(Qt(N,x,Y))});const v=F.bind(null,x,Y);return j.push(v),De(j).then(()=>{j=[];for(const g of o.list())j.push(Qt(g,x,Y));return j.push(v),De(j)}).then(()=>{j=Vr(re,"beforeRouteUpdate",x,Y);for(const g of re)g.updateGuards.forEach(N=>{j.push(Qt(N,x,Y))});return j.push(v),De(j)}).then(()=>{j=[];for(const g of p)if(g.beforeEnter)if(Et(g.beforeEnter))for(const N of g.beforeEnter)j.push(Qt(N,x,Y));else j.push(Qt(g.beforeEnter,x,Y));return j.push(v),De(j)}).then(()=>(x.matched.forEach(g=>g.enterCallbacks={}),j=Vr(p,"beforeRouteEnter",x,Y,T),j.push(v),De(j))).then(()=>{j=[];for(const g of i.list())j.push(Qt(g,x,Y));return j.push(v),De(j)}).catch(g=>Pt(g,Ae.NAVIGATION_CANCELLED)?g:Promise.reject(g))}function Z(x,Y,j){l.list().forEach(X=>T(()=>X(x,Y,j)))}function V(x,Y,j,X,re){const p=E(x,Y);if(p)return p;const v=Y===Kt,g=On?history.state:{};j&&(X||v?r.replace(x.fullPath,ue({scroll:v&&g&&g.scroll},re)):r.push(x.fullPath,re)),a.value=x,Te(x,Y,j,v),Qe()}let Q;function he(){Q||(Q=r.listen((x,Y,j)=>{if(!et.listening)return;const X=M(x),re=O(X,et.currentRoute.value);if(re){L(ue(re,{replace:!0,force:!0}),X).catch(cs);return}c=X;const p=a.value;On&&Bh(qi(p.fullPath,j.delta),vr()),K(X,p).catch(v=>Pt(v,Ae.NAVIGATION_ABORTED|Ae.NAVIGATION_CANCELLED)?v:Pt(v,Ae.NAVIGATION_GUARD_REDIRECT)?(L(ue(R(v.to),{force:!0}),X).then(g=>{Pt(g,Ae.NAVIGATION_ABORTED|Ae.NAVIGATION_DUPLICATED)&&!j.delta&&j.type===ao.pop&&r.go(-1,!1)}).catch(cs),Promise.reject()):(j.delta&&r.go(-j.delta,!1),le(v,X,p))).then(v=>{v=v||V(X,p,!1),v&&(j.delta&&!Pt(v,Ae.NAVIGATION_CANCELLED)?r.go(-j.delta,!1):j.type===ao.pop&&Pt(v,Ae.NAVIGATION_ABORTED|Ae.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),Z(X,p,v)}).catch(cs)}))}let Ne=Jn(),oe=Jn(),ee;function le(x,Y,j){Qe(x);const X=oe.list();return X.length?X.forEach(re=>re(x,Y,j)):console.error(x),Promise.reject(x)}function Be(){return ee&&a.value!==Kt?Promise.resolve():new Promise((x,Y)=>{Ne.add([x,Y])})}function Qe(x){return ee||(ee=!x,he(),Ne.list().forEach(([Y,j])=>x?j(x):Y()),Ne.reset()),x}function Te(x,Y,j,X){const{scrollBehavior:re}=e;if(!On||!re)return Promise.resolve();const p=!j&&jh(qi(x.fullPath,0))||(X||!j)&&history.state&&history.state.scroll||null;return fr().then(()=>re(x,Y,p)).then(v=>v&&$h(v)).catch(v=>le(v,x,Y))}const Se=x=>r.go(x);let ot;const ze=new Set,et={currentRoute:a,listening:!0,addRoute:_,removeRoute:C,clearRoutes:t.clearRoutes,hasRoute:w,getRoutes:y,resolve:M,options:e,push:b,replace:I,go:Se,back:()=>Se(-1),forward:()=>Se(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:oe.add,isReady:Be,install(x){x.component("RouterLink",vm),x.component("RouterView",Tm),x.config.globalProperties.$router=et,Object.defineProperty(x.config.globalProperties,"$route",{enumerable:!0,get:()=>Ie(a)}),On&&!ot&&a.value===Kt&&(ot=!0,b(r.location).catch(X=>{}));const Y={};for(const X in Kt)Object.defineProperty(Y,X,{get:()=>a.value[X],enumerable:!0});x.provide(Er,et),x.provide(yc,ha(Y)),x.provide(uo,a);const j=x.unmount;ze.add(x),x.unmount=function(){ze.delete(x),ze.size<1&&(c=Kt,Q&&Q(),Q=null,a.value=Kt,ot=!1,ee=!1),j()}}};function De(x){return x.reduce((Y,j)=>Y.then(()=>T(j)),Promise.resolve())}return et}function e_(){return ut(Er)}class Cc extends Error{constructor(t,n){super(t),this.code=t,this.status=n}}async function Ln(e,t,n){const r=await fetch(t,{method:e,credentials:"include",headers:e==="GET"?{}:{"content-type":"application/json"},body:n===void 0?void 0:JSON.stringify(n)}),o=r.status===204?void 0:await r.json().catch(()=>{});if(!r.ok)throw new Cc((o==null?void 0:o.error)??"request-failed",r.status);return o}const Hr={get:e=>Ln("GET",e),post:(e,t)=>Ln("POST",e,t),patch:(e,t)=>Ln("PATCH",e,t),del:e=>Ln("DELETE",e),rpc:(e,t,n={})=>Ln("POST",`/api/instances/${e}/rpc`,{type:t,payload:n}).then(s=>s.result),upload:(e,t)=>Ln("POST",`/api/instances/${e}/rpc`,{type:"control.upload",payload:t}).then(n=>n.result)},Am=fc("auth",()=>{const e=ct(null),t=ct("");async function n(o){t.value="";try{return e.value=await Hr.post("/api/login",{token:o}),!0}catch(i){return t.value=i instanceof Cc?i.code:"request-failed",e.value=null,!1}}async function s(){try{return e.value=await Hr.get("/api/me"),!0}catch{return e.value=null,!1}}async function r(){await Hr.post("/api/logout").catch(()=>{}),e.value=null}return{account:e,error:t,login:n,fetchMe:s,logout:r}}),Cm=[{path:"/login",name:"login",component:()=>Ws(()=>import("./LoginView-6-Sx6Ty1.js"),__vite__mapDeps([0,1,2]))},{path:"/",name:"dashboard",component:()=>Ws(()=>import("./DashboardView-B-uAkayo.js"),__vite__mapDeps([3,1,4,5]))},{path:"/settings",name:"settings",component:()=>Ws(()=>import("./SettingsView-FpZipkSZ.js"),__vite__mapDeps([6,4]))}],Nc=Sm({history:tm(),routes:Cm});Nc.beforeEach(async e=>{if(e.name==="login")return!0;const t=Am();return t.account||await t.fetchMe()?!0:{name:"login"}});/*!
81
81
  * shared v9.14.5
82
82
  * (c) 2025 kazuya kawaguchi
83
83
  * Released under the MIT License.
@@ -1 +1 @@
1
- @font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1{bottom:.25rem}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-\[calc\(1rem\+env\(safe-area-inset-bottom\)\)\]{bottom:calc(1rem + env(safe-area-inset-bottom))}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[60\]{z-index:60}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-2\.5{margin-left:.625rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.mt-px{margin-top:1px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-11{height:2.75rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[11px\]{height:11px}.h-\[calc\(2\.75rem\+env\(safe-area-inset-top\)\)\]{height:calc(2.75rem + env(safe-area-inset-top))}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.min-h-11{min-height:2.75rem}.min-h-dvh{min-height:100dvh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[11px\]{width:11px}.w-\[22rem\]{width:22rem}.w-\[3px\]{width:3px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-40{min-width:10rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[120px\]{max-width:120px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[80\%\]{max-width:80%}.max-w-\[85\%\]{max-width:85%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.touch-pan-y{--tw-pan-y: pan-y;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[auto\,1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-\[7px\]{gap:7px}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1{row-gap:.25rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(var(--c-border) / var(--tw-divide-opacity, 1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-tr-md{border-top-right-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-accent{--tw-border-opacity: 1;border-color:rgb(var(--c-accent) / var(--tw-border-opacity, 1))}.border-accent\/15{border-color:rgb(var(--c-accent) / .15)}.border-accent\/30{border-color:rgb(var(--c-accent) / .3)}.border-border{--tw-border-opacity: 1;border-color:rgb(var(--c-border) / var(--tw-border-opacity, 1))}.border-danger\/40{border-color:rgb(var(--c-danger) / .4)}.border-run\/20{border-color:rgb(var(--c-run) / .2)}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(var(--c-accent) / var(--tw-bg-opacity, 1))}.bg-accent\/10{background-color:rgb(var(--c-accent) / .1)}.bg-accent\/15{background-color:rgb(var(--c-accent) / .15)}.bg-accent\/50{background-color:rgb(var(--c-accent) / .5)}.bg-bg{--tw-bg-opacity: 1;background-color:rgb(var(--c-bg) / var(--tw-bg-opacity, 1))}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-border{--tw-bg-opacity: 1;background-color:rgb(var(--c-border) / var(--tw-bg-opacity, 1))}.bg-danger{--tw-bg-opacity: 1;background-color:rgb(var(--c-danger) / var(--tw-bg-opacity, 1))}.bg-danger\/10{background-color:rgb(var(--c-danger) / .1)}.bg-danger\/15{background-color:rgb(var(--c-danger) / .15)}.bg-fg-muted{--tw-bg-opacity: 1;background-color:rgb(var(--c-fg-muted) / var(--tw-bg-opacity, 1))}.bg-fg\/5{background-color:rgb(var(--c-fg) / .05)}.bg-info{--tw-bg-opacity: 1;background-color:rgb(var(--c-info) / var(--tw-bg-opacity, 1))}.bg-info\/10{background-color:rgb(var(--c-info) / .1)}.bg-info\/5{background-color:rgb(var(--c-info) / .05)}.bg-raised{--tw-bg-opacity: 1;background-color:rgb(var(--c-raised) / var(--tw-bg-opacity, 1))}.bg-run{--tw-bg-opacity: 1;background-color:rgb(var(--c-run) / var(--tw-bg-opacity, 1))}.bg-run-bright{--tw-bg-opacity: 1;background-color:rgb(var(--c-run-bright) / var(--tw-bg-opacity, 1))}.bg-run\/10{background-color:rgb(var(--c-run) / .1)}.bg-run\/15{background-color:rgb(var(--c-run) / .15)}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(var(--c-surface) / var(--tw-bg-opacity, 1))}.bg-surface\/60{background-color:rgb(var(--c-surface) / .6)}.bg-surface\/80{background-color:rgb(var(--c-surface) / .8)}.bg-transparent{background-color:transparent}.bg-warn{--tw-bg-opacity: 1;background-color:rgb(var(--c-warn) / var(--tw-bg-opacity, 1))}.bg-warn\/10{background-color:rgb(var(--c-warn) / .1)}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-bg{--tw-gradient-from: rgb(var(--c-bg) / 1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(var(--c-bg) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-5{padding-bottom:1.25rem}.pb-\[calc\(1\.5rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}.pb-\[max\(1rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(1rem,env(safe-area-inset-bottom))}.pb-px{padding-bottom:1px}.pl-0\.5{padding-left:.125rem}.pl-1\.5{padding-left:.375rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pr-1\.5{padding-right:.375rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-9{padding-right:2.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-\[calc\(1\.5rem\+env\(safe-area-inset-top\)\)\]{padding-top:calc(1.5rem + env(safe-area-inset-top))}.pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace}.font-sans{font-family:Inter,ui-sans-serif,system-ui,sans-serif}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-\[0\.05em\]{letter-spacing:.05em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent{--tw-text-opacity: 1;color:rgb(var(--c-accent) / var(--tw-text-opacity, 1))}.text-danger{--tw-text-opacity: 1;color:rgb(var(--c-danger) / var(--tw-text-opacity, 1))}.text-danger\/80{color:rgb(var(--c-danger) / .8)}.text-fg{--tw-text-opacity: 1;color:rgb(var(--c-fg) / var(--tw-text-opacity, 1))}.text-fg-muted{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.text-fg-muted\/40{color:rgb(var(--c-fg-muted) / .4)}.text-fg-muted\/50{color:rgb(var(--c-fg-muted) / .5)}.text-fg-muted\/60{color:rgb(var(--c-fg-muted) / .6)}.text-fg-muted\/70{color:rgb(var(--c-fg-muted) / .7)}.text-info{--tw-text-opacity: 1;color:rgb(var(--c-info) / var(--tw-text-opacity, 1))}.text-run{--tw-text-opacity: 1;color:rgb(var(--c-run) / var(--tw-text-opacity, 1))}.text-warn{--tw-text-opacity: 1;color:rgb(var(--c-warn) / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-e1{--tw-shadow: var(--shadow-e1);--tw-shadow-colored: var(--shadow-e1);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-e2{--tw-shadow: var(--shadow-e2);--tw-shadow-colored: var(--shadow-e2);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-e3{--tw-shadow: var(--shadow-e3);--tw-shadow-colored: var(--shadow-e3);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-danger{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--c-danger) / var(--tw-ring-opacity, 1))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[transform\,width\]{transition-property:transform,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--c-bg: 246 248 251;--c-surface: 255 255 255;--c-raised: 255 255 255;--c-border: 228 233 240;--c-fg: 18 24 35;--c-fg-muted: 91 102 117;--c-accent: 29 111 214;--c-accent-hover: 26 99 192;--c-run: 25 122 67;--c-run-bright: 52 192 110;--c-warn: 180 83 9;--c-danger: 200 30 30;--c-info: 37 99 235;--shadow-e1: 0 1px 2px rgba(12,18,28,.06), 0 1px 1px rgba(12,18,28,.04);--shadow-e2: 0 4px 12px rgba(12,18,28,.08), 0 2px 4px rgba(12,18,28,.05);--shadow-e3: 0 12px 32px rgba(12,18,28,.14), 0 4px 8px rgba(12,18,28,.06)}.dark{--c-bg: 14 17 22;--c-surface: 21 26 33;--c-raised: 27 33 42;--c-border: 38 45 56;--c-fg: 232 236 241;--c-fg-muted: 148 160 176;--c-accent: 79 155 245;--c-accent-hover: 107 176 248;--c-run: 70 194 119;--c-run-bright: 105 214 137;--c-warn: 251 191 36;--c-danger: 248 113 113;--c-info: 96 165 250;--shadow-e1: 0 1px 2px rgba(0,0,0,.5);--shadow-e2: 0 6px 18px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.45);--shadow-e3: 0 18px 48px rgba(0,0,0,.7), 0 6px 16px rgba(0,0,0,.55)}:root{--brand-from: #4F9BF5;--brand-to: #69D689}html,body,#app{height:100%}html,body{overflow-x:hidden}body{--tw-bg-opacity: 1;background-color:rgb(var(--c-bg) / var(--tw-bg-opacity, 1));font-family:Inter,ui-sans-serif,system-ui,sans-serif;--tw-text-opacity: 1;color:rgb(var(--c-fg) / var(--tw-text-opacity, 1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible{outline:none;box-shadow:0 0 0 2px rgb(var(--c-bg)),0 0 0 4px rgb(var(--c-accent));border-radius:6px}@keyframes softpulse{0%,to{box-shadow:0 0 #69d68980}50%{box-shadow:0 0 0 5px #69d68900}}.pulse-dot{animation:softpulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer-text{background:linear-gradient(90deg,rgb(var(--c-fg-muted)),rgb(var(--c-fg)),rgb(var(--c-fg-muted)));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 2.4s linear infinite}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.caret:after{content:"";display:inline-block;width:2px;height:1em;background:rgb(var(--c-accent));margin-left:2px;vertical-align:text-bottom;animation:blink 1s step-end infinite}.thin-scroll::-webkit-scrollbar{width:8px;height:8px}.thin-scroll::-webkit-scrollbar-thumb{background:rgb(var(--c-fg-muted) / .28);border-radius:8px}.thin-scroll::-webkit-scrollbar-track{background:transparent}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}@media (prefers-reduced-motion: reduce){.pulse-dot,.shimmer-text,.caret:after{animation:none!important}}.shiki,.shiki span{background-color:transparent!important;color:var(--shiki-light)}.dark .shiki,.dark .shiki span{color:var(--shiki-dark)}.shiki{margin:0;padding:.75rem 1rem;overflow-x:auto;font-size:12.5px;line-height:1.6}.shiki code{display:grid;counter-reset:shiki-ln}.shiki code .line{position:relative;padding-left:3.25rem;min-height:1.6em}.shiki code .line:before{counter-increment:shiki-ln;content:counter(shiki-ln);position:absolute;left:0;width:2.75rem;text-align:right;opacity:.45;-webkit-user-select:none;-moz-user-select:none;user-select:none}.placeholder\:tracking-normal::-moz-placeholder{letter-spacing:0em}.placeholder\:tracking-normal::placeholder{letter-spacing:0em}.placeholder\:text-fg-muted::-moz-placeholder{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.placeholder\:text-fg-muted::placeholder{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.focus-within\:border-accent\/50:focus-within{border-color:rgb(var(--c-accent) / .5)}.hover\:border-accent:hover{--tw-border-opacity: 1;border-color:rgb(var(--c-accent) / var(--tw-border-opacity, 1))}.hover\:border-accent\/40:hover{border-color:rgb(var(--c-accent) / .4)}.hover\:border-danger\/40:hover{border-color:rgb(var(--c-danger) / .4)}.hover\:bg-accent-hover:hover{--tw-bg-opacity: 1;background-color:rgb(var(--c-accent-hover) / var(--tw-bg-opacity, 1))}.hover\:bg-accent\/10:hover{background-color:rgb(var(--c-accent) / .1)}.hover\:bg-accent\/15:hover{background-color:rgb(var(--c-accent) / .15)}.hover\:bg-accent\/30:hover{background-color:rgb(var(--c-accent) / .3)}.hover\:bg-bg:hover{--tw-bg-opacity: 1;background-color:rgb(var(--c-bg) / var(--tw-bg-opacity, 1))}.hover\:bg-danger\/10:hover{background-color:rgb(var(--c-danger) / .1)}.hover\:bg-danger\/15:hover{background-color:rgb(var(--c-danger) / .15)}.hover\:bg-danger\/90:hover{background-color:rgb(var(--c-danger) / .9)}.hover\:bg-fg\/10:hover{background-color:rgb(var(--c-fg) / .1)}.hover\:bg-fg\/5:hover{background-color:rgb(var(--c-fg) / .05)}.hover\:bg-raised:hover{--tw-bg-opacity: 1;background-color:rgb(var(--c-raised) / var(--tw-bg-opacity, 1))}.hover\:bg-run\/10:hover{background-color:rgb(var(--c-run) / .1)}.hover\:bg-surface:hover{--tw-bg-opacity: 1;background-color:rgb(var(--c-surface) / var(--tw-bg-opacity, 1))}.hover\:bg-warn\/90:hover{background-color:rgb(var(--c-warn) / .9)}.hover\:text-accent:hover{--tw-text-opacity: 1;color:rgb(var(--c-accent) / var(--tw-text-opacity, 1))}.hover\:text-danger:hover{--tw-text-opacity: 1;color:rgb(var(--c-danger) / var(--tw-text-opacity, 1))}.hover\:text-fg:hover{--tw-text-opacity: 1;color:rgb(var(--c-fg) / var(--tw-text-opacity, 1))}.hover\:text-run:hover{--tw-text-opacity: 1;color:rgb(var(--c-run) / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-e2:hover{--tw-shadow: var(--shadow-e2);--tw-shadow-colored: var(--shadow-e2);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-accent:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--c-accent) / var(--tw-ring-opacity, 1))}.enabled\:hover\:bg-accent-hover:hover:enabled{--tw-bg-opacity: 1;background-color:rgb(var(--c-accent-hover) / var(--tw-bg-opacity, 1))}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-fg\/10:disabled{background-color:rgb(var(--c-fg) / .1)}.disabled\:text-fg-muted:disabled{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:shadow-none:disabled{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-fg-muted:hover:disabled{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (prefers-reduced-motion: reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}@media (min-width: 640px){.sm\:inline{display:inline}.sm\:w-64{width:16rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:static{position:static}.lg\:relative{position:relative}.lg\:z-auto{z-index:auto}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-11{height:2.75rem}.lg\:w-0{width:0px}.lg\:w-\[248px\]{width:248px}.lg\:w-\[296px\]{width:296px}.lg\:min-w-0{min-width:0px}.lg\:max-w-none{max-width:none}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:transform-none{transform:none}.lg\:overflow-hidden{overflow:hidden}.lg\:border-r-0{border-right-width:0px}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.lg\:pt-0{padding-top:0}.lg\:pt-3{padding-top:.75rem}.lg\:text-\[14px\]{font-size:14px}.lg\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (hover:hover){.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}.group:hover .\[\@media\(hover\:hover\)\]\:group-hover\:opacity-100{opacity:1}}
1
+ @font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1{bottom:.25rem}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-\[calc\(1rem\+env\(safe-area-inset-bottom\)\)\]{bottom:calc(1rem + env(safe-area-inset-bottom))}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[60\]{z-index:60}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-2\.5{margin-left:.625rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.mt-px{margin-top:1px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-11{height:2.75rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[11px\]{height:11px}.h-\[calc\(2\.75rem\+env\(safe-area-inset-top\)\)\]{height:calc(2.75rem + env(safe-area-inset-top))}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.min-h-11{min-height:2.75rem}.min-h-dvh{min-height:100dvh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[11px\]{width:11px}.w-\[22rem\]{width:22rem}.w-\[3px\]{width:3px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-40{min-width:10rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[120px\]{max-width:120px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[80\%\]{max-width:80%}.max-w-\[85\%\]{max-width:85%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.touch-pan-y{--tw-pan-y: pan-y;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[auto\,1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-\[7px\]{gap:7px}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1{row-gap:.25rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(var(--c-border) / var(--tw-divide-opacity, 1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-tr-md{border-top-right-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-accent{--tw-border-opacity: 1;border-color:rgb(var(--c-accent) / var(--tw-border-opacity, 1))}.border-accent\/15{border-color:rgb(var(--c-accent) / .15)}.border-accent\/30{border-color:rgb(var(--c-accent) / .3)}.border-border{--tw-border-opacity: 1;border-color:rgb(var(--c-border) / var(--tw-border-opacity, 1))}.border-danger\/40{border-color:rgb(var(--c-danger) / .4)}.border-run\/20{border-color:rgb(var(--c-run) / .2)}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(var(--c-accent) / var(--tw-bg-opacity, 1))}.bg-accent\/10{background-color:rgb(var(--c-accent) / .1)}.bg-accent\/15{background-color:rgb(var(--c-accent) / .15)}.bg-accent\/50{background-color:rgb(var(--c-accent) / .5)}.bg-bg{--tw-bg-opacity: 1;background-color:rgb(var(--c-bg) / var(--tw-bg-opacity, 1))}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-border{--tw-bg-opacity: 1;background-color:rgb(var(--c-border) / var(--tw-bg-opacity, 1))}.bg-danger{--tw-bg-opacity: 1;background-color:rgb(var(--c-danger) / var(--tw-bg-opacity, 1))}.bg-danger\/10{background-color:rgb(var(--c-danger) / .1)}.bg-danger\/15{background-color:rgb(var(--c-danger) / .15)}.bg-fg-muted{--tw-bg-opacity: 1;background-color:rgb(var(--c-fg-muted) / var(--tw-bg-opacity, 1))}.bg-fg\/5{background-color:rgb(var(--c-fg) / .05)}.bg-info{--tw-bg-opacity: 1;background-color:rgb(var(--c-info) / var(--tw-bg-opacity, 1))}.bg-info\/10{background-color:rgb(var(--c-info) / .1)}.bg-info\/5{background-color:rgb(var(--c-info) / .05)}.bg-raised{--tw-bg-opacity: 1;background-color:rgb(var(--c-raised) / var(--tw-bg-opacity, 1))}.bg-run{--tw-bg-opacity: 1;background-color:rgb(var(--c-run) / var(--tw-bg-opacity, 1))}.bg-run-bright{--tw-bg-opacity: 1;background-color:rgb(var(--c-run-bright) / var(--tw-bg-opacity, 1))}.bg-run\/10{background-color:rgb(var(--c-run) / .1)}.bg-run\/15{background-color:rgb(var(--c-run) / .15)}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(var(--c-surface) / var(--tw-bg-opacity, 1))}.bg-surface\/60{background-color:rgb(var(--c-surface) / .6)}.bg-surface\/80{background-color:rgb(var(--c-surface) / .8)}.bg-transparent{background-color:transparent}.bg-warn{--tw-bg-opacity: 1;background-color:rgb(var(--c-warn) / var(--tw-bg-opacity, 1))}.bg-warn\/10{background-color:rgb(var(--c-warn) / .1)}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-bg{--tw-gradient-from: rgb(var(--c-bg) / 1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(var(--c-bg) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-5{padding-bottom:1.25rem}.pb-\[calc\(1\.5rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}.pb-\[max\(1rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(1rem,env(safe-area-inset-bottom))}.pb-px{padding-bottom:1px}.pl-0\.5{padding-left:.125rem}.pl-1\.5{padding-left:.375rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pr-1\.5{padding-right:.375rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-9{padding-right:2.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-\[calc\(1\.5rem\+env\(safe-area-inset-top\)\)\]{padding-top:calc(1.5rem + env(safe-area-inset-top))}.pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace}.font-sans{font-family:Inter,ui-sans-serif,system-ui,sans-serif}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-\[0\.05em\]{letter-spacing:.05em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent{--tw-text-opacity: 1;color:rgb(var(--c-accent) / var(--tw-text-opacity, 1))}.text-danger{--tw-text-opacity: 1;color:rgb(var(--c-danger) / var(--tw-text-opacity, 1))}.text-danger\/80{color:rgb(var(--c-danger) / .8)}.text-fg{--tw-text-opacity: 1;color:rgb(var(--c-fg) / var(--tw-text-opacity, 1))}.text-fg-muted{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.text-fg-muted\/40{color:rgb(var(--c-fg-muted) / .4)}.text-fg-muted\/50{color:rgb(var(--c-fg-muted) / .5)}.text-fg-muted\/60{color:rgb(var(--c-fg-muted) / .6)}.text-fg-muted\/70{color:rgb(var(--c-fg-muted) / .7)}.text-info{--tw-text-opacity: 1;color:rgb(var(--c-info) / var(--tw-text-opacity, 1))}.text-run{--tw-text-opacity: 1;color:rgb(var(--c-run) / var(--tw-text-opacity, 1))}.text-warn{--tw-text-opacity: 1;color:rgb(var(--c-warn) / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-e1{--tw-shadow: var(--shadow-e1);--tw-shadow-colored: var(--shadow-e1);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-e2{--tw-shadow: var(--shadow-e2);--tw-shadow-colored: var(--shadow-e2);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-e3{--tw-shadow: var(--shadow-e3);--tw-shadow-colored: var(--shadow-e3);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-danger{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--c-danger) / var(--tw-ring-opacity, 1))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[transform\,width\]{transition-property:transform,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--c-bg: 246 248 251;--c-surface: 255 255 255;--c-raised: 255 255 255;--c-border: 228 233 240;--c-fg: 18 24 35;--c-fg-muted: 91 102 117;--c-accent: 29 111 214;--c-accent-hover: 26 99 192;--c-run: 25 122 67;--c-run-bright: 52 192 110;--c-warn: 180 83 9;--c-danger: 200 30 30;--c-info: 37 99 235;--shadow-e1: 0 1px 2px rgba(12,18,28,.06), 0 1px 1px rgba(12,18,28,.04);--shadow-e2: 0 4px 12px rgba(12,18,28,.08), 0 2px 4px rgba(12,18,28,.05);--shadow-e3: 0 12px 32px rgba(12,18,28,.14), 0 4px 8px rgba(12,18,28,.06)}.dark{--c-bg: 14 17 22;--c-surface: 21 26 33;--c-raised: 27 33 42;--c-border: 38 45 56;--c-fg: 232 236 241;--c-fg-muted: 148 160 176;--c-accent: 79 155 245;--c-accent-hover: 107 176 248;--c-run: 70 194 119;--c-run-bright: 105 214 137;--c-warn: 251 191 36;--c-danger: 248 113 113;--c-info: 96 165 250;--shadow-e1: 0 1px 2px rgba(0,0,0,.5);--shadow-e2: 0 6px 18px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.45);--shadow-e3: 0 18px 48px rgba(0,0,0,.7), 0 6px 16px rgba(0,0,0,.55)}:root{--brand-from: #4F9BF5;--brand-to: #69D689}html,body,#app{height:100%}html,body{overflow-x:hidden}body{--tw-bg-opacity: 1;background-color:rgb(var(--c-bg) / var(--tw-bg-opacity, 1));font-family:Inter,ui-sans-serif,system-ui,sans-serif;--tw-text-opacity: 1;color:rgb(var(--c-fg) / var(--tw-text-opacity, 1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible{outline:none;box-shadow:0 0 0 2px rgb(var(--c-bg)),0 0 0 4px rgb(var(--c-accent));border-radius:6px}@keyframes softpulse{0%,to{box-shadow:0 0 #69d68980}50%{box-shadow:0 0 0 5px #69d68900}}.pulse-dot{animation:softpulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer-text{background:linear-gradient(90deg,rgb(var(--c-fg-muted)),rgb(var(--c-fg)),rgb(var(--c-fg-muted)));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 2.4s linear infinite}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.caret:after{content:"";display:inline-block;width:2px;height:1em;background:rgb(var(--c-accent));margin-left:2px;vertical-align:text-bottom;animation:blink 1s step-end infinite}.thin-scroll::-webkit-scrollbar{width:8px;height:8px}.thin-scroll::-webkit-scrollbar-thumb{background:rgb(var(--c-fg-muted) / .28);border-radius:8px}.thin-scroll::-webkit-scrollbar-track{background:transparent}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}@media (prefers-reduced-motion: reduce){.pulse-dot,.shimmer-text,.caret:after{animation:none!important}}.shiki,.shiki span{background-color:transparent!important;color:var(--shiki-light)}.dark .shiki,.dark .shiki span{color:var(--shiki-dark)}.shiki{margin:0;padding:.75rem;overflow-x:auto;font-size:12.5px;line-height:1.6}.shiki code{display:grid;counter-reset:shiki-ln}.shiki code .line{position:relative;padding-left:2.75rem;min-height:1.6em}.shiki code .line:before{counter-increment:shiki-ln;content:counter(shiki-ln);position:absolute;left:0;width:2.25rem;text-align:right;opacity:.45;-webkit-user-select:none;-moz-user-select:none;user-select:none}@supports (-webkit-touch-callout: none){input[type=datetime-local],input[type=date],input[type=time]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:0}}.placeholder\:tracking-normal::-moz-placeholder{letter-spacing:0em}.placeholder\:tracking-normal::placeholder{letter-spacing:0em}.placeholder\:text-fg-muted::-moz-placeholder{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.placeholder\:text-fg-muted::placeholder{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.focus-within\:border-accent\/50:focus-within{border-color:rgb(var(--c-accent) / .5)}.hover\:border-accent:hover{--tw-border-opacity: 1;border-color:rgb(var(--c-accent) / var(--tw-border-opacity, 1))}.hover\:border-accent\/40:hover{border-color:rgb(var(--c-accent) / .4)}.hover\:border-danger\/40:hover{border-color:rgb(var(--c-danger) / .4)}.hover\:bg-accent-hover:hover{--tw-bg-opacity: 1;background-color:rgb(var(--c-accent-hover) / var(--tw-bg-opacity, 1))}.hover\:bg-accent\/10:hover{background-color:rgb(var(--c-accent) / .1)}.hover\:bg-accent\/15:hover{background-color:rgb(var(--c-accent) / .15)}.hover\:bg-accent\/30:hover{background-color:rgb(var(--c-accent) / .3)}.hover\:bg-bg:hover{--tw-bg-opacity: 1;background-color:rgb(var(--c-bg) / var(--tw-bg-opacity, 1))}.hover\:bg-danger\/10:hover{background-color:rgb(var(--c-danger) / .1)}.hover\:bg-danger\/15:hover{background-color:rgb(var(--c-danger) / .15)}.hover\:bg-danger\/90:hover{background-color:rgb(var(--c-danger) / .9)}.hover\:bg-fg\/10:hover{background-color:rgb(var(--c-fg) / .1)}.hover\:bg-fg\/5:hover{background-color:rgb(var(--c-fg) / .05)}.hover\:bg-raised:hover{--tw-bg-opacity: 1;background-color:rgb(var(--c-raised) / var(--tw-bg-opacity, 1))}.hover\:bg-run\/10:hover{background-color:rgb(var(--c-run) / .1)}.hover\:bg-surface:hover{--tw-bg-opacity: 1;background-color:rgb(var(--c-surface) / var(--tw-bg-opacity, 1))}.hover\:bg-warn\/90:hover{background-color:rgb(var(--c-warn) / .9)}.hover\:text-accent:hover{--tw-text-opacity: 1;color:rgb(var(--c-accent) / var(--tw-text-opacity, 1))}.hover\:text-danger:hover{--tw-text-opacity: 1;color:rgb(var(--c-danger) / var(--tw-text-opacity, 1))}.hover\:text-fg:hover{--tw-text-opacity: 1;color:rgb(var(--c-fg) / var(--tw-text-opacity, 1))}.hover\:text-run:hover{--tw-text-opacity: 1;color:rgb(var(--c-run) / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-e2:hover{--tw-shadow: var(--shadow-e2);--tw-shadow-colored: var(--shadow-e2);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-accent:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--c-accent) / var(--tw-ring-opacity, 1))}.enabled\:hover\:bg-accent-hover:hover:enabled{--tw-bg-opacity: 1;background-color:rgb(var(--c-accent-hover) / var(--tw-bg-opacity, 1))}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-fg\/10:disabled{background-color:rgb(var(--c-fg) / .1)}.disabled\:text-fg-muted:disabled{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:shadow-none:disabled{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-fg-muted:hover:disabled{--tw-text-opacity: 1;color:rgb(var(--c-fg-muted) / var(--tw-text-opacity, 1))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (prefers-reduced-motion: reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}@media (min-width: 640px){.sm\:inline{display:inline}.sm\:w-64{width:16rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:static{position:static}.lg\:relative{position:relative}.lg\:z-auto{z-index:auto}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-11{height:2.75rem}.lg\:w-0{width:0px}.lg\:w-\[248px\]{width:248px}.lg\:w-\[296px\]{width:296px}.lg\:min-w-0{min-width:0px}.lg\:max-w-none{max-width:none}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:transform-none{transform:none}.lg\:overflow-hidden{overflow:hidden}.lg\:border-r-0{border-right-width:0px}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.lg\:pt-0{padding-top:0}.lg\:pt-3{padding-top:.75rem}.lg\:text-\[14px\]{font-size:14px}.lg\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (hover:hover){.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}.group:hover .\[\@media\(hover\:hover\)\]\:group-hover\:opacity-100{opacity:1}}
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xml-sdJ4AIDG.js","assets/java-CylS5w8V.js","assets/html-GMplVEZG.js","assets/javascript-wDzz0qaB.js","assets/css-DPfMkruS.js","assets/scss-OYdSNvt2.js","assets/vue-DVfSmUF7.js","assets/typescript-BPQ3VLAy.js","assets/json-Cp-IABpG.js","assets/graphql-ChdNCCLP.js","assets/jsx-g9-lgVsj.js","assets/tsx-COt5Ahok.js","assets/cpp-BRuaLJcg.js","assets/c-BIGW1oBm.js","assets/sql-BLtJtn59.js","assets/php-Dhbhpdrm.js","assets/ruby-xesJ3fNi.js","assets/shellscript-Yzrsuije.js","assets/yaml-Buea-lGh.js"])))=>i.map(i=>d[i]);
2
- var ps=Object.defineProperty;var ds=Object.getPrototypeOf;var gs=Reflect.get;var yn=t=>{throw TypeError(t)};var ms=(t,e,n)=>e in t?ps(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var g=(t,e,n)=>ms(t,typeof e!="symbol"?e+"":e,n),wt=(t,e,n)=>e.has(t)||yn("Cannot "+n);var F=(t,e,n)=>(wt(t,e,"read from private field"),n?n.call(t):e.get(t)),fe=(t,e,n)=>e.has(t)?yn("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),X=(t,e,n,r)=>(wt(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n),Ct=(t,e,n)=>(wt(t,e,"access private method"),n);var _n=(t,e,n)=>gs(ds(t),n,e);import{_ as A}from"./index-w7-D5Xrc.js";let T=class extends Error{constructor(e){super(e),this.name="ShikiError"}};function ys(t){return en(t)}function en(t){return Array.isArray(t)?_s(t):t instanceof RegExp?t:typeof t=="object"?bs(t):t}function _s(t){let e=[];for(let n=0,r=t.length;n<r;n++)e[n]=en(t[n]);return e}function bs(t){let e={};for(let n in t)e[n]=en(t[n]);return e}function ar(t,...e){return e.forEach(n=>{for(let r in n)t[r]=n[r]}),t}function lr(t){const e=~t.lastIndexOf("/")||~t.lastIndexOf("\\");return e===0?t:~e===t.length-1?lr(t.substring(0,t.length-1)):t.substr(~e+1)}var St=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,qe=class{static hasCaptures(t){return t===null?!1:(St.lastIndex=0,St.test(t))}static replaceCaptures(t,e,n){return t.replace(St,(r,s,o,i)=>{let a=n[parseInt(s||o,10)];if(a){let l=e.substring(a.start,a.end);for(;l[0]===".";)l=l.substring(1);switch(i){case"downcase":return l.toLowerCase();case"upcase":return l.toUpperCase();default:return l}}else return r})}};function cr(t,e){return t<e?-1:t>e?1:0}function ur(t,e){if(t===null&&e===null)return 0;if(!t)return-1;if(!e)return 1;let n=t.length,r=e.length;if(n===r){for(let s=0;s<n;s++){let o=cr(t[s],e[s]);if(o!==0)return o}return 0}return n-r}function bn(t){return!!(/^#[0-9a-f]{6}$/i.test(t)||/^#[0-9a-f]{8}$/i.test(t)||/^#[0-9a-f]{3}$/i.test(t)||/^#[0-9a-f]{4}$/i.test(t))}function hr(t){return t.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}var fr=class{constructor(t){g(this,"cache",new Map);this.fn=t}get(t){if(this.cache.has(t))return this.cache.get(t);const e=this.fn(t);return this.cache.set(t,e),e}},nt=class{constructor(t,e,n){g(this,"_cachedMatchRoot",new fr(t=>this._root.match(t)));this._colorMap=t,this._defaults=e,this._root=n}static createFromRawTheme(t,e){return this.createFromParsedTheme(Ss(t),e)}static createFromParsedTheme(t,e){return vs(t,e)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(t){if(t===null)return this._defaults;const e=t.scopeName,r=this._cachedMatchRoot.get(e).find(s=>ws(t.parent,s.parentScopes));return r?new pr(r.fontStyle,r.foreground,r.background):null}},kt=class Je{constructor(e,n){this.parent=e,this.scopeName=n}static push(e,n){for(const r of n)e=new Je(e,r);return e}static from(...e){let n=null;for(let r=0;r<e.length;r++)n=new Je(n,e[r]);return n}push(e){return new Je(this,e)}getSegments(){let e=this;const n=[];for(;e;)n.push(e.scopeName),e=e.parent;return n.reverse(),n}toString(){return this.getSegments().join(" ")}extends(e){return this===e?!0:this.parent===null?!1:this.parent.extends(e)}getExtensionIfDefined(e){const n=[];let r=this;for(;r&&r!==e;)n.push(r.scopeName),r=r.parent;return r===e?n.reverse():void 0}};function ws(t,e){if(e.length===0)return!0;for(let n=0;n<e.length;n++){let r=e[n],s=!1;if(r===">"){if(n===e.length-1)return!1;r=e[++n],s=!0}for(;t&&!Cs(t.scopeName,r);){if(s)return!1;t=t.parent}if(!t)return!1;t=t.parent}return!0}function Cs(t,e){return e===t||t.startsWith(e)&&t[e.length]==="."}var pr=class{constructor(t,e,n){this.fontStyle=t,this.foregroundId=e,this.backgroundId=n}};function Ss(t){if(!t)return[];if(!t.settings||!Array.isArray(t.settings))return[];let e=t.settings,n=[],r=0;for(let s=0,o=e.length;s<o;s++){let i=e[s];if(!i.settings)continue;let a;if(typeof i.scope=="string"){let h=i.scope;h=h.replace(/^[,]+/,""),h=h.replace(/[,]+$/,""),a=h.split(",")}else Array.isArray(i.scope)?a=i.scope:a=[""];let l=-1;if(typeof i.settings.fontStyle=="string"){l=0;let h=i.settings.fontStyle.split(" ");for(let f=0,d=h.length;f<d;f++)switch(h[f]){case"italic":l=l|1;break;case"bold":l=l|2;break;case"underline":l=l|4;break;case"strikethrough":l=l|8;break}}let c=null;typeof i.settings.foreground=="string"&&bn(i.settings.foreground)&&(c=i.settings.foreground);let u=null;typeof i.settings.background=="string"&&bn(i.settings.background)&&(u=i.settings.background);for(let h=0,f=a.length;h<f;h++){let p=a[h].trim().split(" "),_=p[p.length-1],w=null;p.length>1&&(w=p.slice(0,p.length-1),w.reverse()),n[r++]=new ks(_,w,s,l,c,u)}}return n}var ks=class{constructor(t,e,n,r,s,o){this.scope=t,this.parentScopes=e,this.index=n,this.fontStyle=r,this.foreground=s,this.background=o}},G=(t=>(t[t.NotSet=-1]="NotSet",t[t.None=0]="None",t[t.Italic=1]="Italic",t[t.Bold=2]="Bold",t[t.Underline=4]="Underline",t[t.Strikethrough=8]="Strikethrough",t))(G||{});function vs(t,e){t.sort((l,c)=>{let u=cr(l.scope,c.scope);return u!==0||(u=ur(l.parentScopes,c.parentScopes),u!==0)?u:l.index-c.index});let n=0,r="#000000",s="#ffffff";for(;t.length>=1&&t[0].scope==="";){let l=t.shift();l.fontStyle!==-1&&(n=l.fontStyle),l.foreground!==null&&(r=l.foreground),l.background!==null&&(s=l.background)}let o=new xs(e),i=new pr(n,o.getId(r),o.getId(s)),a=new As(new Gt(0,null,-1,0,0),[]);for(let l=0,c=t.length;l<c;l++){let u=t[l];a.insert(0,u.scope,u.parentScopes,u.fontStyle,o.getId(u.foreground),o.getId(u.background))}return new nt(o,i,a)}var xs=class{constructor(t){g(this,"_isFrozen");g(this,"_lastColorId");g(this,"_id2color");g(this,"_color2id");if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(t)){this._isFrozen=!0;for(let e=0,n=t.length;e<n;e++)this._color2id[t[e]]=e,this._id2color[e]=t[e]}else this._isFrozen=!1}getId(t){if(t===null)return 0;t=t.toUpperCase();let e=this._color2id[t];if(e)return e;if(this._isFrozen)throw new Error(`Missing color in color map - ${t}`);return e=++this._lastColorId,this._color2id[t]=e,this._id2color[e]=t,e}getColorMap(){return this._id2color.slice(0)}},Es=Object.freeze([]),Gt=class dr{constructor(e,n,r,s,o){g(this,"scopeDepth");g(this,"parentScopes");g(this,"fontStyle");g(this,"foreground");g(this,"background");this.scopeDepth=e,this.parentScopes=n||Es,this.fontStyle=r,this.foreground=s,this.background=o}clone(){return new dr(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(e){let n=[];for(let r=0,s=e.length;r<s;r++)n[r]=e[r].clone();return n}acceptOverwrite(e,n,r,s){this.scopeDepth>e?console.log("how did this happen?"):this.scopeDepth=e,n!==-1&&(this.fontStyle=n),r!==0&&(this.foreground=r),s!==0&&(this.background=s)}},As=class Dt{constructor(e,n=[],r={}){g(this,"_rulesWithParentScopes");this._mainRule=e,this._children=r,this._rulesWithParentScopes=n}static _cmpBySpecificity(e,n){if(e.scopeDepth!==n.scopeDepth)return n.scopeDepth-e.scopeDepth;let r=0,s=0;for(;e.parentScopes[r]===">"&&r++,n.parentScopes[s]===">"&&s++,!(r>=e.parentScopes.length||s>=n.parentScopes.length);){const o=n.parentScopes[s].length-e.parentScopes[r].length;if(o!==0)return o;r++,s++}return n.parentScopes.length-e.parentScopes.length}match(e){if(e!==""){let r=e.indexOf("."),s,o;if(r===-1?(s=e,o=""):(s=e.substring(0,r),o=e.substring(r+1)),this._children.hasOwnProperty(s))return this._children[s].match(o)}const n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort(Dt._cmpBySpecificity),n}insert(e,n,r,s,o,i){if(n===""){this._doInsertHere(e,r,s,o,i);return}let a=n.indexOf("."),l,c;a===-1?(l=n,c=""):(l=n.substring(0,a),c=n.substring(a+1));let u;this._children.hasOwnProperty(l)?u=this._children[l]:(u=new Dt(this._mainRule.clone(),Gt.cloneArr(this._rulesWithParentScopes)),this._children[l]=u),u.insert(e+1,c,r,s,o,i)}_doInsertHere(e,n,r,s,o){if(n===null){this._mainRule.acceptOverwrite(e,r,s,o);return}for(let i=0,a=this._rulesWithParentScopes.length;i<a;i++){let l=this._rulesWithParentScopes[i];if(ur(l.parentScopes,n)===0){l.acceptOverwrite(e,r,s,o);return}}r===-1&&(r=this._mainRule.fontStyle),s===0&&(s=this._mainRule.foreground),o===0&&(o=this._mainRule.background),this._rulesWithParentScopes.push(new Gt(e,n,r,s,o))}},Re=class W{static toBinaryStr(e){return e.toString(2).padStart(32,"0")}static print(e){const n=W.getLanguageId(e),r=W.getTokenType(e),s=W.getFontStyle(e),o=W.getForeground(e),i=W.getBackground(e);console.log({languageId:n,tokenType:r,fontStyle:s,foreground:o,background:i})}static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(e,n,r,s,o,i,a){let l=W.getLanguageId(e),c=W.getTokenType(e),u=W.containsBalancedBrackets(e)?1:0,h=W.getFontStyle(e),f=W.getForeground(e),d=W.getBackground(e);return n!==0&&(l=n),r!==8&&(c=r),s!==null&&(u=s?1:0),o!==-1&&(h=o),i!==0&&(f=i),a!==0&&(d=a),(l<<0|c<<8|u<<10|h<<11|f<<15|d<<24)>>>0}};function rt(t,e){const n=[],r=Is(t);let s=r.next();for(;s!==null;){let l=0;if(s.length===2&&s.charAt(1)===":"){switch(s.charAt(0)){case"R":l=1;break;case"L":l=-1;break;default:console.log(`Unknown priority ${s} in scope selector`)}s=r.next()}let c=i();if(n.push({matcher:c,priority:l}),s!==",")break;s=r.next()}return n;function o(){if(s==="-"){s=r.next();const l=o();return c=>!!l&&!l(c)}if(s==="("){s=r.next();const l=a();return s===")"&&(s=r.next()),l}if(wn(s)){const l=[];do l.push(s),s=r.next();while(wn(s));return c=>e(l,c)}return null}function i(){const l=[];let c=o();for(;c;)l.push(c),c=o();return u=>l.every(h=>h(u))}function a(){const l=[];let c=i();for(;c&&(l.push(c),s==="|"||s===",");){do s=r.next();while(s==="|"||s===",");c=i()}return u=>l.some(h=>h(u))}}function wn(t){return!!t&&!!t.match(/[\w\.:]+/)}function Is(t){let e=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=e.exec(t);return{next:()=>{if(!n)return null;const r=n[0];return n=e.exec(t),r}}}function gr(t){typeof t.dispose=="function"&&t.dispose()}var De=class{constructor(t){this.scopeName=t}toKey(){return this.scopeName}},Rs=class{constructor(t,e){this.scopeName=t,this.ruleName=e}toKey(){return`${this.scopeName}#${this.ruleName}`}},Ns=class{constructor(){g(this,"_references",[]);g(this,"_seenReferenceKeys",new Set);g(this,"visitedRule",new Set)}get references(){return this._references}add(t){const e=t.toKey();this._seenReferenceKeys.has(e)||(this._seenReferenceKeys.add(e),this._references.push(t))}},Ps=class{constructor(t,e){g(this,"seenFullScopeRequests",new Set);g(this,"seenPartialScopeRequests",new Set);g(this,"Q");this.repo=t,this.initialScopeName=e,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new De(this.initialScopeName)]}processQueue(){const t=this.Q;this.Q=[];const e=new Ns;for(const n of t)Ls(n,this.initialScopeName,this.repo,e);for(const n of e.references)if(n instanceof De){if(this.seenFullScopeRequests.has(n.scopeName))continue;this.seenFullScopeRequests.add(n.scopeName),this.Q.push(n)}else{if(this.seenFullScopeRequests.has(n.scopeName)||this.seenPartialScopeRequests.has(n.toKey()))continue;this.seenPartialScopeRequests.add(n.toKey()),this.Q.push(n)}}};function Ls(t,e,n,r){const s=n.lookup(t.scopeName);if(!s){if(t.scopeName===e)throw new Error(`No grammar provided for <${e}>`);return}const o=n.lookup(e);t instanceof De?et({baseGrammar:o,selfGrammar:s},r):Bt(t.ruleName,{baseGrammar:o,selfGrammar:s,repository:s.repository},r);const i=n.injections(t.scopeName);if(i)for(const a of i)r.add(new De(a))}function Bt(t,e,n){if(e.repository&&e.repository[t]){const r=e.repository[t];st([r],e,n)}}function et(t,e){t.selfGrammar.patterns&&Array.isArray(t.selfGrammar.patterns)&&st(t.selfGrammar.patterns,{...t,repository:t.selfGrammar.repository},e),t.selfGrammar.injections&&st(Object.values(t.selfGrammar.injections),{...t,repository:t.selfGrammar.repository},e)}function st(t,e,n){for(const r of t){if(n.visitedRule.has(r))continue;n.visitedRule.add(r);const s=r.repository?ar({},e.repository,r.repository):e.repository;Array.isArray(r.patterns)&&st(r.patterns,{...e,repository:s},n);const o=r.include;if(!o)continue;const i=mr(o);switch(i.kind){case 0:et({...e,selfGrammar:e.baseGrammar},n);break;case 1:et(e,n);break;case 2:Bt(i.ruleName,{...e,repository:s},n);break;case 3:case 4:const a=i.scopeName===e.selfGrammar.scopeName?e.selfGrammar:i.scopeName===e.baseGrammar.scopeName?e.baseGrammar:void 0;if(a){const l={baseGrammar:e.baseGrammar,selfGrammar:a,repository:s};i.kind===4?Bt(i.ruleName,l,n):et(l,n)}else i.kind===4?n.add(new Rs(i.scopeName,i.ruleName)):n.add(new De(i.scopeName));break}}}var $s=class{constructor(){g(this,"kind",0)}},Ts=class{constructor(){g(this,"kind",1)}},Ms=class{constructor(t){g(this,"kind",2);this.ruleName=t}},Os=class{constructor(t){g(this,"kind",3);this.scopeName=t}},Gs=class{constructor(t,e){g(this,"kind",4);this.scopeName=t,this.ruleName=e}};function mr(t){if(t==="$base")return new $s;if(t==="$self")return new Ts;const e=t.indexOf("#");if(e===-1)return new Os(t);if(e===0)return new Ms(t.substring(1));{const n=t.substring(0,e),r=t.substring(e+1);return new Gs(n,r)}}var Ds=/\\(\d+)/,Cn=/\\(\d+)/g,Bs=-1,yr=-2;var We=class{constructor(t,e,n,r){g(this,"$location");g(this,"id");g(this,"_nameIsCapturing");g(this,"_name");g(this,"_contentNameIsCapturing");g(this,"_contentName");this.$location=t,this.id=e,this._name=n||null,this._nameIsCapturing=qe.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=qe.hasCaptures(this._contentName)}get debugName(){const t=this.$location?`${lr(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${t}`}getName(t,e){return!this._nameIsCapturing||this._name===null||t===null||e===null?this._name:qe.replaceCaptures(this._name,t,e)}getContentName(t,e){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:qe.replaceCaptures(this._contentName,t,e)}},Fs=class extends We{constructor(e,n,r,s,o){super(e,n,r,s);g(this,"retokenizeCapturedWithRuleId");this.retokenizeCapturedWithRuleId=o}dispose(){}collectPatterns(e,n){throw new Error("Not supported!")}compile(e,n){throw new Error("Not supported!")}compileAG(e,n,r,s){throw new Error("Not supported!")}},Us=class extends We{constructor(e,n,r,s,o){super(e,n,r,null);g(this,"_match");g(this,"captures");g(this,"_cachedCompiledPatterns");this._match=new Be(s,this.id),this.captures=o,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,n){n.push(this._match)}compile(e,n){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,n,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Fe,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Sn=class extends We{constructor(e,n,r,s,o){super(e,n,r,s);g(this,"hasMissingPatterns");g(this,"patterns");g(this,"_cachedCompiledPatterns");this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,n){for(const r of this.patterns)e.getRule(r).collectPatterns(e,n)}compile(e,n){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,n,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Fe,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Ft=class extends We{constructor(e,n,r,s,o,i,a,l,c,u){super(e,n,r,s);g(this,"_begin");g(this,"beginCaptures");g(this,"_end");g(this,"endHasBackReferences");g(this,"endCaptures");g(this,"applyEndPatternLast");g(this,"hasMissingPatterns");g(this,"patterns");g(this,"_cachedCompiledPatterns");this._begin=new Be(o,this.id),this.beginCaptures=i,this._end=new Be(a||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=l,this.applyEndPatternLast=c||!1,this.patterns=u.patterns,this.hasMissingPatterns=u.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,n){return this._end.resolveBackReferences(e,n)}collectPatterns(e,n){n.push(this._begin)}compile(e,n){return this._getCachedCompiledPatterns(e,n).compile(e)}compileAG(e,n,r,s){return this._getCachedCompiledPatterns(e,n).compileAG(e,r,s)}_getCachedCompiledPatterns(e,n){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Fe;for(const r of this.patterns)e.getRule(r).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,n):this._cachedCompiledPatterns.setSource(0,n)),this._cachedCompiledPatterns}},ot=class extends We{constructor(e,n,r,s,o,i,a,l,c){super(e,n,r,s);g(this,"_begin");g(this,"beginCaptures");g(this,"whileCaptures");g(this,"_while");g(this,"whileHasBackReferences");g(this,"hasMissingPatterns");g(this,"patterns");g(this,"_cachedCompiledPatterns");g(this,"_cachedCompiledWhilePatterns");this._begin=new Be(o,this.id),this.beginCaptures=i,this.whileCaptures=l,this._while=new Be(a,yr),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=c.patterns,this.hasMissingPatterns=c.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,n){return this._while.resolveBackReferences(e,n)}collectPatterns(e,n){n.push(this._begin)}compile(e,n){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,n,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Fe;for(const n of this.patterns)e.getRule(n).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,n){return this._getCachedCompiledWhilePatterns(e,n).compile(e)}compileWhileAG(e,n,r,s){return this._getCachedCompiledWhilePatterns(e,n).compileAG(e,r,s)}_getCachedCompiledWhilePatterns(e,n){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Fe,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,n||"￿"),this._cachedCompiledWhilePatterns}},_r=class O{static createCaptureRule(e,n,r,s,o){return e.registerRule(i=>new Fs(n,i,r,s,o))}static getCompiledRuleId(e,n,r){return e.id||n.registerRule(s=>{if(e.id=s,e.match)return new Us(e.$vscodeTextmateLocation,e.id,e.name,e.match,O._compileCaptures(e.captures,n,r));if(typeof e.begin>"u"){e.repository&&(r=ar({},r,e.repository));let o=e.patterns;return typeof o>"u"&&e.include&&(o=[{include:e.include}]),new Sn(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,O._compilePatterns(o,n,r))}return e.while?new ot(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,O._compileCaptures(e.beginCaptures||e.captures,n,r),e.while,O._compileCaptures(e.whileCaptures||e.captures,n,r),O._compilePatterns(e.patterns,n,r)):new Ft(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,O._compileCaptures(e.beginCaptures||e.captures,n,r),e.end,O._compileCaptures(e.endCaptures||e.captures,n,r),e.applyEndPatternLast,O._compilePatterns(e.patterns,n,r))}),e.id}static _compileCaptures(e,n,r){let s=[];if(e){let o=0;for(const i in e){if(i==="$vscodeTextmateLocation")continue;const a=parseInt(i,10);a>o&&(o=a)}for(let i=0;i<=o;i++)s[i]=null;for(const i in e){if(i==="$vscodeTextmateLocation")continue;const a=parseInt(i,10);let l=0;e[i].patterns&&(l=O.getCompiledRuleId(e[i],n,r)),s[a]=O.createCaptureRule(n,e[i].$vscodeTextmateLocation,e[i].name,e[i].contentName,l)}}return s}static _compilePatterns(e,n,r){let s=[];if(e)for(let o=0,i=e.length;o<i;o++){const a=e[o];let l=-1;if(a.include){const c=mr(a.include);switch(c.kind){case 0:case 1:l=O.getCompiledRuleId(r[a.include],n,r);break;case 2:let u=r[c.ruleName];u&&(l=O.getCompiledRuleId(u,n,r));break;case 3:case 4:const h=c.scopeName,f=c.kind===4?c.ruleName:null,d=n.getExternalGrammar(h,r);if(d)if(f){let p=d.repository[f];p&&(l=O.getCompiledRuleId(p,n,d.repository))}else l=O.getCompiledRuleId(d.repository.$self,n,d.repository);break}}else l=O.getCompiledRuleId(a,n,r);if(l!==-1){const c=n.getRule(l);let u=!1;if((c instanceof Sn||c instanceof Ft||c instanceof ot)&&c.hasMissingPatterns&&c.patterns.length===0&&(u=!0),u)continue;s.push(l)}}return{patterns:s,hasMissingPatterns:(e?e.length:0)!==s.length}}},Be=class br{constructor(e,n){g(this,"source");g(this,"ruleId");g(this,"hasAnchor");g(this,"hasBackReferences");g(this,"_anchorCache");if(e&&typeof e=="string"){const r=e.length;let s=0,o=[],i=!1;for(let a=0;a<r;a++)if(e.charAt(a)==="\\"&&a+1<r){const c=e.charAt(a+1);c==="z"?(o.push(e.substring(s,a)),o.push("$(?!\\n)(?<!\\n)"),s=a+2):(c==="A"||c==="G")&&(i=!0),a++}this.hasAnchor=i,s===0?this.source=e:(o.push(e.substring(s,r)),this.source=o.join(""))}else this.hasAnchor=!1,this.source=e;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=n,typeof this.source=="string"?this.hasBackReferences=Ds.test(this.source):this.hasBackReferences=!1}clone(){return new br(this.source,this.ruleId)}setSource(e){this.source!==e&&(this.source=e,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(e,n){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let r=n.map(s=>e.substring(s.start,s.end));return Cn.lastIndex=0,this.source.replace(Cn,(s,o)=>hr(r[parseInt(o,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let e=[],n=[],r=[],s=[],o,i,a,l;for(o=0,i=this.source.length;o<i;o++)a=this.source.charAt(o),e[o]=a,n[o]=a,r[o]=a,s[o]=a,a==="\\"&&o+1<i&&(l=this.source.charAt(o+1),l==="A"?(e[o+1]="￿",n[o+1]="￿",r[o+1]="A",s[o+1]="A"):l==="G"?(e[o+1]="￿",n[o+1]="G",r[o+1]="￿",s[o+1]="G"):(e[o+1]=l,n[o+1]=l,r[o+1]=l,s[o+1]=l),o++);return{A0_G0:e.join(""),A0_G1:n.join(""),A1_G0:r.join(""),A1_G1:s.join("")}}resolveAnchors(e,n){return!this.hasAnchor||!this._anchorCache||typeof this.source!="string"?this.source:e?n?this._anchorCache.A1_G1:this._anchorCache.A1_G0:n?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},Fe=class{constructor(){g(this,"_items");g(this,"_hasAnchors");g(this,"_cached");g(this,"_anchorCache");this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(t){this._items.push(t),this._hasAnchors=this._hasAnchors||t.hasAnchor}unshift(t){this._items.unshift(t),this._hasAnchors=this._hasAnchors||t.hasAnchor}length(){return this._items.length}setSource(t,e){this._items[t].source!==e&&(this._disposeCaches(),this._items[t].setSource(e))}compile(t){if(!this._cached){let e=this._items.map(n=>n.source);this._cached=new kn(t,e,this._items.map(n=>n.ruleId))}return this._cached}compileAG(t,e,n){return this._hasAnchors?e?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(t,e,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(t,e,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(t,e,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(t,e,n)),this._anchorCache.A0_G0):this.compile(t)}_resolveAnchors(t,e,n){let r=this._items.map(s=>s.resolveAnchors(e,n));return new kn(t,r,this._items.map(s=>s.ruleId))}},kn=class{constructor(t,e,n){g(this,"scanner");this.regExps=e,this.rules=n,this.scanner=t.createOnigScanner(e)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const t=[];for(let e=0,n=this.rules.length;e<n;e++)t.push(" - "+this.rules[e]+": "+this.regExps[e]);return t.join(`
2
+ var ps=Object.defineProperty;var ds=Object.getPrototypeOf;var gs=Reflect.get;var yn=t=>{throw TypeError(t)};var ms=(t,e,n)=>e in t?ps(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var g=(t,e,n)=>ms(t,typeof e!="symbol"?e+"":e,n),wt=(t,e,n)=>e.has(t)||yn("Cannot "+n);var F=(t,e,n)=>(wt(t,e,"read from private field"),n?n.call(t):e.get(t)),fe=(t,e,n)=>e.has(t)?yn("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),X=(t,e,n,r)=>(wt(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n),Ct=(t,e,n)=>(wt(t,e,"access private method"),n);var _n=(t,e,n)=>gs(ds(t),n,e);import{_ as A}from"./index-D95RDANU.js";let T=class extends Error{constructor(e){super(e),this.name="ShikiError"}};function ys(t){return en(t)}function en(t){return Array.isArray(t)?_s(t):t instanceof RegExp?t:typeof t=="object"?bs(t):t}function _s(t){let e=[];for(let n=0,r=t.length;n<r;n++)e[n]=en(t[n]);return e}function bs(t){let e={};for(let n in t)e[n]=en(t[n]);return e}function ar(t,...e){return e.forEach(n=>{for(let r in n)t[r]=n[r]}),t}function lr(t){const e=~t.lastIndexOf("/")||~t.lastIndexOf("\\");return e===0?t:~e===t.length-1?lr(t.substring(0,t.length-1)):t.substr(~e+1)}var St=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,qe=class{static hasCaptures(t){return t===null?!1:(St.lastIndex=0,St.test(t))}static replaceCaptures(t,e,n){return t.replace(St,(r,s,o,i)=>{let a=n[parseInt(s||o,10)];if(a){let l=e.substring(a.start,a.end);for(;l[0]===".";)l=l.substring(1);switch(i){case"downcase":return l.toLowerCase();case"upcase":return l.toUpperCase();default:return l}}else return r})}};function cr(t,e){return t<e?-1:t>e?1:0}function ur(t,e){if(t===null&&e===null)return 0;if(!t)return-1;if(!e)return 1;let n=t.length,r=e.length;if(n===r){for(let s=0;s<n;s++){let o=cr(t[s],e[s]);if(o!==0)return o}return 0}return n-r}function bn(t){return!!(/^#[0-9a-f]{6}$/i.test(t)||/^#[0-9a-f]{8}$/i.test(t)||/^#[0-9a-f]{3}$/i.test(t)||/^#[0-9a-f]{4}$/i.test(t))}function hr(t){return t.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}var fr=class{constructor(t){g(this,"cache",new Map);this.fn=t}get(t){if(this.cache.has(t))return this.cache.get(t);const e=this.fn(t);return this.cache.set(t,e),e}},nt=class{constructor(t,e,n){g(this,"_cachedMatchRoot",new fr(t=>this._root.match(t)));this._colorMap=t,this._defaults=e,this._root=n}static createFromRawTheme(t,e){return this.createFromParsedTheme(Ss(t),e)}static createFromParsedTheme(t,e){return vs(t,e)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(t){if(t===null)return this._defaults;const e=t.scopeName,r=this._cachedMatchRoot.get(e).find(s=>ws(t.parent,s.parentScopes));return r?new pr(r.fontStyle,r.foreground,r.background):null}},kt=class Je{constructor(e,n){this.parent=e,this.scopeName=n}static push(e,n){for(const r of n)e=new Je(e,r);return e}static from(...e){let n=null;for(let r=0;r<e.length;r++)n=new Je(n,e[r]);return n}push(e){return new Je(this,e)}getSegments(){let e=this;const n=[];for(;e;)n.push(e.scopeName),e=e.parent;return n.reverse(),n}toString(){return this.getSegments().join(" ")}extends(e){return this===e?!0:this.parent===null?!1:this.parent.extends(e)}getExtensionIfDefined(e){const n=[];let r=this;for(;r&&r!==e;)n.push(r.scopeName),r=r.parent;return r===e?n.reverse():void 0}};function ws(t,e){if(e.length===0)return!0;for(let n=0;n<e.length;n++){let r=e[n],s=!1;if(r===">"){if(n===e.length-1)return!1;r=e[++n],s=!0}for(;t&&!Cs(t.scopeName,r);){if(s)return!1;t=t.parent}if(!t)return!1;t=t.parent}return!0}function Cs(t,e){return e===t||t.startsWith(e)&&t[e.length]==="."}var pr=class{constructor(t,e,n){this.fontStyle=t,this.foregroundId=e,this.backgroundId=n}};function Ss(t){if(!t)return[];if(!t.settings||!Array.isArray(t.settings))return[];let e=t.settings,n=[],r=0;for(let s=0,o=e.length;s<o;s++){let i=e[s];if(!i.settings)continue;let a;if(typeof i.scope=="string"){let h=i.scope;h=h.replace(/^[,]+/,""),h=h.replace(/[,]+$/,""),a=h.split(",")}else Array.isArray(i.scope)?a=i.scope:a=[""];let l=-1;if(typeof i.settings.fontStyle=="string"){l=0;let h=i.settings.fontStyle.split(" ");for(let f=0,d=h.length;f<d;f++)switch(h[f]){case"italic":l=l|1;break;case"bold":l=l|2;break;case"underline":l=l|4;break;case"strikethrough":l=l|8;break}}let c=null;typeof i.settings.foreground=="string"&&bn(i.settings.foreground)&&(c=i.settings.foreground);let u=null;typeof i.settings.background=="string"&&bn(i.settings.background)&&(u=i.settings.background);for(let h=0,f=a.length;h<f;h++){let p=a[h].trim().split(" "),_=p[p.length-1],w=null;p.length>1&&(w=p.slice(0,p.length-1),w.reverse()),n[r++]=new ks(_,w,s,l,c,u)}}return n}var ks=class{constructor(t,e,n,r,s,o){this.scope=t,this.parentScopes=e,this.index=n,this.fontStyle=r,this.foreground=s,this.background=o}},G=(t=>(t[t.NotSet=-1]="NotSet",t[t.None=0]="None",t[t.Italic=1]="Italic",t[t.Bold=2]="Bold",t[t.Underline=4]="Underline",t[t.Strikethrough=8]="Strikethrough",t))(G||{});function vs(t,e){t.sort((l,c)=>{let u=cr(l.scope,c.scope);return u!==0||(u=ur(l.parentScopes,c.parentScopes),u!==0)?u:l.index-c.index});let n=0,r="#000000",s="#ffffff";for(;t.length>=1&&t[0].scope==="";){let l=t.shift();l.fontStyle!==-1&&(n=l.fontStyle),l.foreground!==null&&(r=l.foreground),l.background!==null&&(s=l.background)}let o=new xs(e),i=new pr(n,o.getId(r),o.getId(s)),a=new As(new Gt(0,null,-1,0,0),[]);for(let l=0,c=t.length;l<c;l++){let u=t[l];a.insert(0,u.scope,u.parentScopes,u.fontStyle,o.getId(u.foreground),o.getId(u.background))}return new nt(o,i,a)}var xs=class{constructor(t){g(this,"_isFrozen");g(this,"_lastColorId");g(this,"_id2color");g(this,"_color2id");if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(t)){this._isFrozen=!0;for(let e=0,n=t.length;e<n;e++)this._color2id[t[e]]=e,this._id2color[e]=t[e]}else this._isFrozen=!1}getId(t){if(t===null)return 0;t=t.toUpperCase();let e=this._color2id[t];if(e)return e;if(this._isFrozen)throw new Error(`Missing color in color map - ${t}`);return e=++this._lastColorId,this._color2id[t]=e,this._id2color[e]=t,e}getColorMap(){return this._id2color.slice(0)}},Es=Object.freeze([]),Gt=class dr{constructor(e,n,r,s,o){g(this,"scopeDepth");g(this,"parentScopes");g(this,"fontStyle");g(this,"foreground");g(this,"background");this.scopeDepth=e,this.parentScopes=n||Es,this.fontStyle=r,this.foreground=s,this.background=o}clone(){return new dr(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(e){let n=[];for(let r=0,s=e.length;r<s;r++)n[r]=e[r].clone();return n}acceptOverwrite(e,n,r,s){this.scopeDepth>e?console.log("how did this happen?"):this.scopeDepth=e,n!==-1&&(this.fontStyle=n),r!==0&&(this.foreground=r),s!==0&&(this.background=s)}},As=class Dt{constructor(e,n=[],r={}){g(this,"_rulesWithParentScopes");this._mainRule=e,this._children=r,this._rulesWithParentScopes=n}static _cmpBySpecificity(e,n){if(e.scopeDepth!==n.scopeDepth)return n.scopeDepth-e.scopeDepth;let r=0,s=0;for(;e.parentScopes[r]===">"&&r++,n.parentScopes[s]===">"&&s++,!(r>=e.parentScopes.length||s>=n.parentScopes.length);){const o=n.parentScopes[s].length-e.parentScopes[r].length;if(o!==0)return o;r++,s++}return n.parentScopes.length-e.parentScopes.length}match(e){if(e!==""){let r=e.indexOf("."),s,o;if(r===-1?(s=e,o=""):(s=e.substring(0,r),o=e.substring(r+1)),this._children.hasOwnProperty(s))return this._children[s].match(o)}const n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort(Dt._cmpBySpecificity),n}insert(e,n,r,s,o,i){if(n===""){this._doInsertHere(e,r,s,o,i);return}let a=n.indexOf("."),l,c;a===-1?(l=n,c=""):(l=n.substring(0,a),c=n.substring(a+1));let u;this._children.hasOwnProperty(l)?u=this._children[l]:(u=new Dt(this._mainRule.clone(),Gt.cloneArr(this._rulesWithParentScopes)),this._children[l]=u),u.insert(e+1,c,r,s,o,i)}_doInsertHere(e,n,r,s,o){if(n===null){this._mainRule.acceptOverwrite(e,r,s,o);return}for(let i=0,a=this._rulesWithParentScopes.length;i<a;i++){let l=this._rulesWithParentScopes[i];if(ur(l.parentScopes,n)===0){l.acceptOverwrite(e,r,s,o);return}}r===-1&&(r=this._mainRule.fontStyle),s===0&&(s=this._mainRule.foreground),o===0&&(o=this._mainRule.background),this._rulesWithParentScopes.push(new Gt(e,n,r,s,o))}},Re=class W{static toBinaryStr(e){return e.toString(2).padStart(32,"0")}static print(e){const n=W.getLanguageId(e),r=W.getTokenType(e),s=W.getFontStyle(e),o=W.getForeground(e),i=W.getBackground(e);console.log({languageId:n,tokenType:r,fontStyle:s,foreground:o,background:i})}static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(e,n,r,s,o,i,a){let l=W.getLanguageId(e),c=W.getTokenType(e),u=W.containsBalancedBrackets(e)?1:0,h=W.getFontStyle(e),f=W.getForeground(e),d=W.getBackground(e);return n!==0&&(l=n),r!==8&&(c=r),s!==null&&(u=s?1:0),o!==-1&&(h=o),i!==0&&(f=i),a!==0&&(d=a),(l<<0|c<<8|u<<10|h<<11|f<<15|d<<24)>>>0}};function rt(t,e){const n=[],r=Is(t);let s=r.next();for(;s!==null;){let l=0;if(s.length===2&&s.charAt(1)===":"){switch(s.charAt(0)){case"R":l=1;break;case"L":l=-1;break;default:console.log(`Unknown priority ${s} in scope selector`)}s=r.next()}let c=i();if(n.push({matcher:c,priority:l}),s!==",")break;s=r.next()}return n;function o(){if(s==="-"){s=r.next();const l=o();return c=>!!l&&!l(c)}if(s==="("){s=r.next();const l=a();return s===")"&&(s=r.next()),l}if(wn(s)){const l=[];do l.push(s),s=r.next();while(wn(s));return c=>e(l,c)}return null}function i(){const l=[];let c=o();for(;c;)l.push(c),c=o();return u=>l.every(h=>h(u))}function a(){const l=[];let c=i();for(;c&&(l.push(c),s==="|"||s===",");){do s=r.next();while(s==="|"||s===",");c=i()}return u=>l.some(h=>h(u))}}function wn(t){return!!t&&!!t.match(/[\w\.:]+/)}function Is(t){let e=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=e.exec(t);return{next:()=>{if(!n)return null;const r=n[0];return n=e.exec(t),r}}}function gr(t){typeof t.dispose=="function"&&t.dispose()}var De=class{constructor(t){this.scopeName=t}toKey(){return this.scopeName}},Rs=class{constructor(t,e){this.scopeName=t,this.ruleName=e}toKey(){return`${this.scopeName}#${this.ruleName}`}},Ns=class{constructor(){g(this,"_references",[]);g(this,"_seenReferenceKeys",new Set);g(this,"visitedRule",new Set)}get references(){return this._references}add(t){const e=t.toKey();this._seenReferenceKeys.has(e)||(this._seenReferenceKeys.add(e),this._references.push(t))}},Ps=class{constructor(t,e){g(this,"seenFullScopeRequests",new Set);g(this,"seenPartialScopeRequests",new Set);g(this,"Q");this.repo=t,this.initialScopeName=e,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new De(this.initialScopeName)]}processQueue(){const t=this.Q;this.Q=[];const e=new Ns;for(const n of t)Ls(n,this.initialScopeName,this.repo,e);for(const n of e.references)if(n instanceof De){if(this.seenFullScopeRequests.has(n.scopeName))continue;this.seenFullScopeRequests.add(n.scopeName),this.Q.push(n)}else{if(this.seenFullScopeRequests.has(n.scopeName)||this.seenPartialScopeRequests.has(n.toKey()))continue;this.seenPartialScopeRequests.add(n.toKey()),this.Q.push(n)}}};function Ls(t,e,n,r){const s=n.lookup(t.scopeName);if(!s){if(t.scopeName===e)throw new Error(`No grammar provided for <${e}>`);return}const o=n.lookup(e);t instanceof De?et({baseGrammar:o,selfGrammar:s},r):Bt(t.ruleName,{baseGrammar:o,selfGrammar:s,repository:s.repository},r);const i=n.injections(t.scopeName);if(i)for(const a of i)r.add(new De(a))}function Bt(t,e,n){if(e.repository&&e.repository[t]){const r=e.repository[t];st([r],e,n)}}function et(t,e){t.selfGrammar.patterns&&Array.isArray(t.selfGrammar.patterns)&&st(t.selfGrammar.patterns,{...t,repository:t.selfGrammar.repository},e),t.selfGrammar.injections&&st(Object.values(t.selfGrammar.injections),{...t,repository:t.selfGrammar.repository},e)}function st(t,e,n){for(const r of t){if(n.visitedRule.has(r))continue;n.visitedRule.add(r);const s=r.repository?ar({},e.repository,r.repository):e.repository;Array.isArray(r.patterns)&&st(r.patterns,{...e,repository:s},n);const o=r.include;if(!o)continue;const i=mr(o);switch(i.kind){case 0:et({...e,selfGrammar:e.baseGrammar},n);break;case 1:et(e,n);break;case 2:Bt(i.ruleName,{...e,repository:s},n);break;case 3:case 4:const a=i.scopeName===e.selfGrammar.scopeName?e.selfGrammar:i.scopeName===e.baseGrammar.scopeName?e.baseGrammar:void 0;if(a){const l={baseGrammar:e.baseGrammar,selfGrammar:a,repository:s};i.kind===4?Bt(i.ruleName,l,n):et(l,n)}else i.kind===4?n.add(new Rs(i.scopeName,i.ruleName)):n.add(new De(i.scopeName));break}}}var $s=class{constructor(){g(this,"kind",0)}},Ts=class{constructor(){g(this,"kind",1)}},Ms=class{constructor(t){g(this,"kind",2);this.ruleName=t}},Os=class{constructor(t){g(this,"kind",3);this.scopeName=t}},Gs=class{constructor(t,e){g(this,"kind",4);this.scopeName=t,this.ruleName=e}};function mr(t){if(t==="$base")return new $s;if(t==="$self")return new Ts;const e=t.indexOf("#");if(e===-1)return new Os(t);if(e===0)return new Ms(t.substring(1));{const n=t.substring(0,e),r=t.substring(e+1);return new Gs(n,r)}}var Ds=/\\(\d+)/,Cn=/\\(\d+)/g,Bs=-1,yr=-2;var We=class{constructor(t,e,n,r){g(this,"$location");g(this,"id");g(this,"_nameIsCapturing");g(this,"_name");g(this,"_contentNameIsCapturing");g(this,"_contentName");this.$location=t,this.id=e,this._name=n||null,this._nameIsCapturing=qe.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=qe.hasCaptures(this._contentName)}get debugName(){const t=this.$location?`${lr(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${t}`}getName(t,e){return!this._nameIsCapturing||this._name===null||t===null||e===null?this._name:qe.replaceCaptures(this._name,t,e)}getContentName(t,e){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:qe.replaceCaptures(this._contentName,t,e)}},Fs=class extends We{constructor(e,n,r,s,o){super(e,n,r,s);g(this,"retokenizeCapturedWithRuleId");this.retokenizeCapturedWithRuleId=o}dispose(){}collectPatterns(e,n){throw new Error("Not supported!")}compile(e,n){throw new Error("Not supported!")}compileAG(e,n,r,s){throw new Error("Not supported!")}},Us=class extends We{constructor(e,n,r,s,o){super(e,n,r,null);g(this,"_match");g(this,"captures");g(this,"_cachedCompiledPatterns");this._match=new Be(s,this.id),this.captures=o,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,n){n.push(this._match)}compile(e,n){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,n,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Fe,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Sn=class extends We{constructor(e,n,r,s,o){super(e,n,r,s);g(this,"hasMissingPatterns");g(this,"patterns");g(this,"_cachedCompiledPatterns");this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,n){for(const r of this.patterns)e.getRule(r).collectPatterns(e,n)}compile(e,n){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,n,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Fe,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Ft=class extends We{constructor(e,n,r,s,o,i,a,l,c,u){super(e,n,r,s);g(this,"_begin");g(this,"beginCaptures");g(this,"_end");g(this,"endHasBackReferences");g(this,"endCaptures");g(this,"applyEndPatternLast");g(this,"hasMissingPatterns");g(this,"patterns");g(this,"_cachedCompiledPatterns");this._begin=new Be(o,this.id),this.beginCaptures=i,this._end=new Be(a||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=l,this.applyEndPatternLast=c||!1,this.patterns=u.patterns,this.hasMissingPatterns=u.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,n){return this._end.resolveBackReferences(e,n)}collectPatterns(e,n){n.push(this._begin)}compile(e,n){return this._getCachedCompiledPatterns(e,n).compile(e)}compileAG(e,n,r,s){return this._getCachedCompiledPatterns(e,n).compileAG(e,r,s)}_getCachedCompiledPatterns(e,n){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Fe;for(const r of this.patterns)e.getRule(r).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,n):this._cachedCompiledPatterns.setSource(0,n)),this._cachedCompiledPatterns}},ot=class extends We{constructor(e,n,r,s,o,i,a,l,c){super(e,n,r,s);g(this,"_begin");g(this,"beginCaptures");g(this,"whileCaptures");g(this,"_while");g(this,"whileHasBackReferences");g(this,"hasMissingPatterns");g(this,"patterns");g(this,"_cachedCompiledPatterns");g(this,"_cachedCompiledWhilePatterns");this._begin=new Be(o,this.id),this.beginCaptures=i,this.whileCaptures=l,this._while=new Be(a,yr),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=c.patterns,this.hasMissingPatterns=c.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,n){return this._while.resolveBackReferences(e,n)}collectPatterns(e,n){n.push(this._begin)}compile(e,n){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,n,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Fe;for(const n of this.patterns)e.getRule(n).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,n){return this._getCachedCompiledWhilePatterns(e,n).compile(e)}compileWhileAG(e,n,r,s){return this._getCachedCompiledWhilePatterns(e,n).compileAG(e,r,s)}_getCachedCompiledWhilePatterns(e,n){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Fe,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,n||"￿"),this._cachedCompiledWhilePatterns}},_r=class O{static createCaptureRule(e,n,r,s,o){return e.registerRule(i=>new Fs(n,i,r,s,o))}static getCompiledRuleId(e,n,r){return e.id||n.registerRule(s=>{if(e.id=s,e.match)return new Us(e.$vscodeTextmateLocation,e.id,e.name,e.match,O._compileCaptures(e.captures,n,r));if(typeof e.begin>"u"){e.repository&&(r=ar({},r,e.repository));let o=e.patterns;return typeof o>"u"&&e.include&&(o=[{include:e.include}]),new Sn(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,O._compilePatterns(o,n,r))}return e.while?new ot(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,O._compileCaptures(e.beginCaptures||e.captures,n,r),e.while,O._compileCaptures(e.whileCaptures||e.captures,n,r),O._compilePatterns(e.patterns,n,r)):new Ft(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,O._compileCaptures(e.beginCaptures||e.captures,n,r),e.end,O._compileCaptures(e.endCaptures||e.captures,n,r),e.applyEndPatternLast,O._compilePatterns(e.patterns,n,r))}),e.id}static _compileCaptures(e,n,r){let s=[];if(e){let o=0;for(const i in e){if(i==="$vscodeTextmateLocation")continue;const a=parseInt(i,10);a>o&&(o=a)}for(let i=0;i<=o;i++)s[i]=null;for(const i in e){if(i==="$vscodeTextmateLocation")continue;const a=parseInt(i,10);let l=0;e[i].patterns&&(l=O.getCompiledRuleId(e[i],n,r)),s[a]=O.createCaptureRule(n,e[i].$vscodeTextmateLocation,e[i].name,e[i].contentName,l)}}return s}static _compilePatterns(e,n,r){let s=[];if(e)for(let o=0,i=e.length;o<i;o++){const a=e[o];let l=-1;if(a.include){const c=mr(a.include);switch(c.kind){case 0:case 1:l=O.getCompiledRuleId(r[a.include],n,r);break;case 2:let u=r[c.ruleName];u&&(l=O.getCompiledRuleId(u,n,r));break;case 3:case 4:const h=c.scopeName,f=c.kind===4?c.ruleName:null,d=n.getExternalGrammar(h,r);if(d)if(f){let p=d.repository[f];p&&(l=O.getCompiledRuleId(p,n,d.repository))}else l=O.getCompiledRuleId(d.repository.$self,n,d.repository);break}}else l=O.getCompiledRuleId(a,n,r);if(l!==-1){const c=n.getRule(l);let u=!1;if((c instanceof Sn||c instanceof Ft||c instanceof ot)&&c.hasMissingPatterns&&c.patterns.length===0&&(u=!0),u)continue;s.push(l)}}return{patterns:s,hasMissingPatterns:(e?e.length:0)!==s.length}}},Be=class br{constructor(e,n){g(this,"source");g(this,"ruleId");g(this,"hasAnchor");g(this,"hasBackReferences");g(this,"_anchorCache");if(e&&typeof e=="string"){const r=e.length;let s=0,o=[],i=!1;for(let a=0;a<r;a++)if(e.charAt(a)==="\\"&&a+1<r){const c=e.charAt(a+1);c==="z"?(o.push(e.substring(s,a)),o.push("$(?!\\n)(?<!\\n)"),s=a+2):(c==="A"||c==="G")&&(i=!0),a++}this.hasAnchor=i,s===0?this.source=e:(o.push(e.substring(s,r)),this.source=o.join(""))}else this.hasAnchor=!1,this.source=e;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=n,typeof this.source=="string"?this.hasBackReferences=Ds.test(this.source):this.hasBackReferences=!1}clone(){return new br(this.source,this.ruleId)}setSource(e){this.source!==e&&(this.source=e,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(e,n){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let r=n.map(s=>e.substring(s.start,s.end));return Cn.lastIndex=0,this.source.replace(Cn,(s,o)=>hr(r[parseInt(o,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let e=[],n=[],r=[],s=[],o,i,a,l;for(o=0,i=this.source.length;o<i;o++)a=this.source.charAt(o),e[o]=a,n[o]=a,r[o]=a,s[o]=a,a==="\\"&&o+1<i&&(l=this.source.charAt(o+1),l==="A"?(e[o+1]="￿",n[o+1]="￿",r[o+1]="A",s[o+1]="A"):l==="G"?(e[o+1]="￿",n[o+1]="G",r[o+1]="￿",s[o+1]="G"):(e[o+1]=l,n[o+1]=l,r[o+1]=l,s[o+1]=l),o++);return{A0_G0:e.join(""),A0_G1:n.join(""),A1_G0:r.join(""),A1_G1:s.join("")}}resolveAnchors(e,n){return!this.hasAnchor||!this._anchorCache||typeof this.source!="string"?this.source:e?n?this._anchorCache.A1_G1:this._anchorCache.A1_G0:n?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},Fe=class{constructor(){g(this,"_items");g(this,"_hasAnchors");g(this,"_cached");g(this,"_anchorCache");this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(t){this._items.push(t),this._hasAnchors=this._hasAnchors||t.hasAnchor}unshift(t){this._items.unshift(t),this._hasAnchors=this._hasAnchors||t.hasAnchor}length(){return this._items.length}setSource(t,e){this._items[t].source!==e&&(this._disposeCaches(),this._items[t].setSource(e))}compile(t){if(!this._cached){let e=this._items.map(n=>n.source);this._cached=new kn(t,e,this._items.map(n=>n.ruleId))}return this._cached}compileAG(t,e,n){return this._hasAnchors?e?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(t,e,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(t,e,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(t,e,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(t,e,n)),this._anchorCache.A0_G0):this.compile(t)}_resolveAnchors(t,e,n){let r=this._items.map(s=>s.resolveAnchors(e,n));return new kn(t,r,this._items.map(s=>s.ruleId))}},kn=class{constructor(t,e,n){g(this,"scanner");this.regExps=e,this.rules=n,this.scanner=t.createOnigScanner(e)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const t=[];for(let e=0,n=this.rules.length;e<n;e++)t.push(" - "+this.rules[e]+": "+this.regExps[e]);return t.join(`
3
3
  `)}findNextMatchSync(t,e,n){const r=this.scanner.findNextMatchSync(t,e,n);return r?{ruleId:this.rules[r.index],captureIndices:r.captureIndices}:null}},vt=class{constructor(t,e){this.languageId=t,this.tokenType=e}},re,js=(re=class{constructor(e,n){g(this,"_defaultAttributes");g(this,"_embeddedLanguagesMatcher");g(this,"_getBasicScopeAttributes",new fr(e=>{const n=this._scopeToLanguage(e),r=this._toStandardTokenType(e);return new vt(n,r)}));this._defaultAttributes=new vt(e,8),this._embeddedLanguagesMatcher=new zs(Object.entries(n||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return e===null?re._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const n=e.match(re.STANDARD_TOKEN_TYPE_REGEXP);if(!n)return 8;switch(n[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}},g(re,"_NULL_SCOPE_METADATA",new vt(0,0)),g(re,"STANDARD_TOKEN_TYPE_REGEXP",/\b(comment|string|regex|meta\.embedded)\b/),re),zs=class{constructor(t){g(this,"values");g(this,"scopesRegExp");if(t.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(t);const e=t.map(([n,r])=>hr(n));e.sort(),e.reverse(),this.scopesRegExp=new RegExp(`^((${e.join(")|(")}))($|\\.)`,"")}}match(t){if(!this.scopesRegExp)return;const e=t.match(this.scopesRegExp);if(e)return this.values.get(e[1])}},vn=class{constructor(t,e){this.stack=t,this.stoppedEarly=e}};function wr(t,e,n,r,s,o,i,a){const l=e.content.length;let c=!1,u=-1;if(i){const d=Ws(t,e,n,r,s,o);s=d.stack,r=d.linePos,n=d.isFirstLine,u=d.anchorPosition}const h=Date.now();for(;!c;){if(a!==0&&Date.now()-h>a)return new vn(s,!0);f()}return new vn(s,!1);function f(){const d=Vs(t,e,n,r,s,u);if(!d){o.produce(s,l),c=!0;return}const p=d.captureIndices,_=d.matchedRuleId,w=p&&p.length>0?p[0].end>r:!1;if(_===Bs){const b=s.getRule(t);o.produce(s,p[0].start),s=s.withContentNameScopesList(s.nameScopesList),Me(t,e,n,s,o,b.endCaptures,p),o.produce(s,p[0].end);const C=s;if(s=s.parent,u=C.getAnchorPos(),!w&&C.getEnterPos()===r){s=C,o.produce(s,l),c=!0;return}}else{const b=t.getRule(_);o.produce(s,p[0].start);const C=s,y=b.getName(e.content,p),S=s.contentNameScopesList.pushAttributed(y,t);if(s=s.push(_,r,u,p[0].end===l,null,S,S),b instanceof Ft){const x=b;Me(t,e,n,s,o,x.beginCaptures,p),o.produce(s,p[0].end),u=p[0].end;const R=x.getContentName(e.content,p),E=S.pushAttributed(R,t);if(s=s.withContentNameScopesList(E),x.endHasBackReferences&&(s=s.withEndRule(x.getEndWithResolvedBackReferences(e.content,p))),!w&&C.hasSameRuleAs(s)){s=s.pop(),o.produce(s,l),c=!0;return}}else if(b instanceof ot){const x=b;Me(t,e,n,s,o,x.beginCaptures,p),o.produce(s,p[0].end),u=p[0].end;const R=x.getContentName(e.content,p),E=S.pushAttributed(R,t);if(s=s.withContentNameScopesList(E),x.whileHasBackReferences&&(s=s.withEndRule(x.getWhileWithResolvedBackReferences(e.content,p))),!w&&C.hasSameRuleAs(s)){s=s.pop(),o.produce(s,l),c=!0;return}}else if(Me(t,e,n,s,o,b.captures,p),o.produce(s,p[0].end),s=s.pop(),!w){s=s.safePop(),o.produce(s,l),c=!0;return}}p[0].end>r&&(r=p[0].end,n=!1)}}function Ws(t,e,n,r,s,o){let i=s.beginRuleCapturedEOL?0:-1;const a=[];for(let l=s;l;l=l.pop()){const c=l.getRule(t);c instanceof ot&&a.push({rule:c,stack:l})}for(let l=a.pop();l;l=a.pop()){const{ruleScanner:c,findOptions:u}=Xs(l.rule,t,l.stack.endRule,n,r===i),h=c.findNextMatchSync(e,r,u);if(h){if(h.ruleId!==yr){s=l.stack.pop();break}h.captureIndices&&h.captureIndices.length&&(o.produce(l.stack,h.captureIndices[0].start),Me(t,e,n,l.stack,o,l.rule.whileCaptures,h.captureIndices),o.produce(l.stack,h.captureIndices[0].end),i=h.captureIndices[0].end,h.captureIndices[0].end>r&&(r=h.captureIndices[0].end,n=!1))}else{s=l.stack.pop();break}}return{stack:s,linePos:r,anchorPosition:i,isFirstLine:n}}function Vs(t,e,n,r,s,o){const i=Hs(t,e,n,r,s,o),a=t.getInjections();if(a.length===0)return i;const l=qs(a,t,e,n,r,s,o);if(!l)return i;if(!i)return l;const c=i.captureIndices[0].start,u=l.captureIndices[0].start;return u<c||l.priorityMatch&&u===c?l:i}function Hs(t,e,n,r,s,o){const i=s.getRule(t),{ruleScanner:a,findOptions:l}=Cr(i,t,s.endRule,n,r===o),c=a.findNextMatchSync(e,r,l);return c?{captureIndices:c.captureIndices,matchedRuleId:c.ruleId}:null}function qs(t,e,n,r,s,o,i){let a=Number.MAX_VALUE,l=null,c,u=0;const h=o.contentNameScopesList.getScopeNames();for(let f=0,d=t.length;f<d;f++){const p=t[f];if(!p.matcher(h))continue;const _=e.getRule(p.ruleId),{ruleScanner:w,findOptions:b}=Cr(_,e,null,r,s===i),C=w.findNextMatchSync(n,s,b);if(!C)continue;const y=C.captureIndices[0].start;if(!(y>=a)&&(a=y,l=C.captureIndices,c=C.ruleId,u=p.priority,a===s))break}return l?{priorityMatch:u===-1,captureIndices:l,matchedRuleId:c}:null}function Cr(t,e,n,r,s){return{ruleScanner:t.compileAG(e,n,r,s),findOptions:0}}function Xs(t,e,n,r,s){return{ruleScanner:t.compileWhileAG(e,n,r,s),findOptions:0}}function Me(t,e,n,r,s,o,i){if(o.length===0)return;const a=e.content,l=Math.min(o.length,i.length),c=[],u=i[0].end;for(let h=0;h<l;h++){const f=o[h];if(f===null)continue;const d=i[h];if(d.length===0)continue;if(d.start>u)break;for(;c.length>0&&c[c.length-1].endPos<=d.start;)s.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop();if(c.length>0?s.produceFromScopes(c[c.length-1].scopes,d.start):s.produce(r,d.start),f.retokenizeCapturedWithRuleId){const _=f.getName(a,i),w=r.contentNameScopesList.pushAttributed(_,t),b=f.getContentName(a,i),C=w.pushAttributed(b,t),y=r.push(f.retokenizeCapturedWithRuleId,d.start,-1,!1,null,w,C),S=t.createOnigString(a.substring(0,d.end));wr(t,S,n&&d.start===0,d.start,y,s,!1,0),gr(S);continue}const p=f.getName(a,i);if(p!==null){const w=(c.length>0?c[c.length-1].scopes:r.contentNameScopesList).pushAttributed(p,t);c.push(new Ks(w,d.end))}}for(;c.length>0;)s.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop()}var Ks=class{constructor(t,e){g(this,"scopes");g(this,"endPos");this.scopes=t,this.endPos=e}};function Qs(t,e,n,r,s,o,i,a){return new Ys(t,e,n,r,s,o,i,a)}function xn(t,e,n,r,s){const o=rt(e,it),i=_r.getCompiledRuleId(n,r,s.repository);for(const a of o)t.push({debugSelector:e,matcher:a.matcher,ruleId:i,grammar:s,priority:a.priority})}function it(t,e){if(e.length<t.length)return!1;let n=0;return t.every(r=>{for(let s=n;s<e.length;s++)if(Zs(e[s],r))return n=s+1,!0;return!1})}function Zs(t,e){if(!t)return!1;if(t===e)return!0;const n=e.length;return t.length>n&&t.substr(0,n)===e&&t[n]==="."}var Ys=class{constructor(t,e,n,r,s,o,i,a){g(this,"_rootId");g(this,"_lastRuleId");g(this,"_ruleId2desc");g(this,"_includedGrammars");g(this,"_grammarRepository");g(this,"_grammar");g(this,"_injections");g(this,"_basicScopeAttributesProvider");g(this,"_tokenTypeMatchers");if(this._rootScopeName=t,this.balancedBracketSelectors=o,this._onigLib=a,this._basicScopeAttributesProvider=new js(n,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=i,this._grammar=En(e,null),this._injections=null,this._tokenTypeMatchers=[],s)for(const l of Object.keys(s)){const c=rt(l,it);for(const u of c)this._tokenTypeMatchers.push({matcher:u.matcher,type:s[l]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const t of this._ruleId2desc)t&&t.dispose()}createOnigScanner(t){return this._onigLib.createOnigScanner(t)}createOnigString(t){return this._onigLib.createOnigString(t)}getMetadataForScope(t){return this._basicScopeAttributesProvider.getBasicScopeAttributes(t)}_collectInjections(){const t={lookup:s=>s===this._rootScopeName?this._grammar:this.getExternalGrammar(s),injections:s=>this._grammarRepository.injections(s)},e=[],n=this._rootScopeName,r=t.lookup(n);if(r){const s=r.injections;if(s)for(let i in s)xn(e,i,s[i],this,r);const o=this._grammarRepository.injections(n);o&&o.forEach(i=>{const a=this.getExternalGrammar(i);if(a){const l=a.injectionSelector;l&&xn(e,l,a,this,a)}})}return e.sort((s,o)=>s.priority-o.priority),e}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(t){const e=++this._lastRuleId,n=t(e);return this._ruleId2desc[e]=n,n}getRule(t){return this._ruleId2desc[t]}getExternalGrammar(t,e){if(this._includedGrammars[t])return this._includedGrammars[t];if(this._grammarRepository){const n=this._grammarRepository.lookup(t);if(n)return this._includedGrammars[t]=En(n,e&&e.$base),this._includedGrammars[t]}}tokenizeLine(t,e,n=0){const r=this._tokenize(t,e,!1,n);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(t,e,n=0){const r=this._tokenize(t,e,!0,n);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(t,e,n,r){this._rootId===-1&&(this._rootId=_r.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let s;if(!e||e===Ut.NULL){s=!0;const c=this._basicScopeAttributesProvider.getDefaultAttributes(),u=this.themeProvider.getDefaults(),h=Re.set(0,c.languageId,c.tokenType,null,u.fontStyle,u.foregroundId,u.backgroundId),f=this.getRule(this._rootId).getName(null,null);let d;f?d=Oe.createRootAndLookUpScopeName(f,h,this):d=Oe.createRoot("unknown",h),e=new Ut(null,this._rootId,-1,-1,!1,null,d,d)}else s=!1,e.reset();t=t+`
4
4
  `;const o=this.createOnigString(t),i=o.content.length,a=new eo(n,t,this._tokenTypeMatchers,this.balancedBracketSelectors),l=wr(this,o,s,0,e,a,!0,r);return gr(o),{lineLength:i,lineTokens:a,ruleStack:l.stack,stoppedEarly:l.stoppedEarly}}};function En(t,e){return t=ys(t),t.repository=t.repository||{},t.repository.$self={$vscodeTextmateLocation:t.$vscodeTextmateLocation,patterns:t.patterns,name:t.scopeName},t.repository.$base=e||t.repository.$self,t}var Oe=class Y{constructor(e,n,r){this.parent=e,this.scopePath=n,this.tokenAttributes=r}static fromExtension(e,n){let r=e,s=(e==null?void 0:e.scopePath)??null;for(const o of n)s=kt.push(s,o.scopeNames),r=new Y(r,s,o.encodedTokenAttributes);return r}static createRoot(e,n){return new Y(null,new kt(null,e),n)}static createRootAndLookUpScopeName(e,n,r){const s=r.getMetadataForScope(e),o=new kt(null,e),i=r.themeProvider.themeMatch(o),a=Y.mergeAttributes(n,s,i);return new Y(null,o,a)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(e){return Y.equals(this,e)}static equals(e,n){do{if(e===n||!e&&!n)return!0;if(!e||!n||e.scopeName!==n.scopeName||e.tokenAttributes!==n.tokenAttributes)return!1;e=e.parent,n=n.parent}while(!0)}static mergeAttributes(e,n,r){let s=-1,o=0,i=0;return r!==null&&(s=r.fontStyle,o=r.foregroundId,i=r.backgroundId),Re.set(e,n.languageId,n.tokenType,null,s,o,i)}pushAttributed(e,n){if(e===null)return this;if(e.indexOf(" ")===-1)return Y._pushAttributed(this,e,n);const r=e.split(/ /g);let s=this;for(const o of r)s=Y._pushAttributed(s,o,n);return s}static _pushAttributed(e,n,r){const s=r.getMetadataForScope(n),o=e.scopePath.push(n),i=r.themeProvider.themeMatch(o),a=Y.mergeAttributes(e.tokenAttributes,s,i);return new Y(e,o,a)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){var s;const n=[];let r=this;for(;r&&r!==e;)n.push({encodedTokenAttributes:r.tokenAttributes,scopeNames:r.scopePath.getExtensionIfDefined(((s=r.parent)==null?void 0:s.scopePath)??null)}),r=r.parent;return r===e?n.reverse():void 0}},V,Ut=(V=class{constructor(e,n,r,s,o,i,a,l){g(this,"_stackElementBrand");g(this,"_enterPos");g(this,"_anchorPos");g(this,"depth");this.parent=e,this.ruleId=n,this.beginRuleCapturedEOL=o,this.endRule=i,this.nameScopesList=a,this.contentNameScopesList=l,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=r,this._anchorPos=s}equals(e){return e===null?!1:V._equals(this,e)}static _equals(e,n){return e===n?!0:this._structuralEquals(e,n)?Oe.equals(e.contentNameScopesList,n.contentNameScopesList):!1}static _structuralEquals(e,n){do{if(e===n||!e&&!n)return!0;if(!e||!n||e.depth!==n.depth||e.ruleId!==n.ruleId||e.endRule!==n.endRule)return!1;e=e.parent,n=n.parent}while(!0)}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){V._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,n,r,s,o,i,a){return new V(this,e,n,r,s,o,i,a)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,n){var r,s;return this.parent&&(n=this.parent._writeString(e,n)),e[n++]=`(${this.ruleId}, ${(r=this.nameScopesList)==null?void 0:r.toString()}, ${(s=this.contentNameScopesList)==null?void 0:s.toString()})`,n}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new V(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let n=this;for(;n&&n._enterPos===e._enterPos;){if(n.ruleId===e.ruleId)return!0;n=n.parent}return!1}toStateStackFrame(){var e,n,r;return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:((n=this.nameScopesList)==null?void 0:n.getExtensionIfDefined(((e=this.parent)==null?void 0:e.nameScopesList)??null))??[],contentNameScopesList:((r=this.contentNameScopesList)==null?void 0:r.getExtensionIfDefined(this.nameScopesList))??[]}}static pushFrame(e,n){const r=Oe.fromExtension((e==null?void 0:e.nameScopesList)??null,n.nameScopesList);return new V(e,n.ruleId,n.enterPos??-1,n.anchorPos??-1,n.beginRuleCapturedEOL,n.endRule,r,Oe.fromExtension(r,n.contentNameScopesList))}},g(V,"NULL",new V(null,0,0,0,!1,null,null,null)),V),Js=class{constructor(t,e){g(this,"balancedBracketScopes");g(this,"unbalancedBracketScopes");g(this,"allowAny",!1);this.balancedBracketScopes=t.flatMap(n=>n==="*"?(this.allowAny=!0,[]):rt(n,it).map(r=>r.matcher)),this.unbalancedBracketScopes=e.flatMap(n=>rt(n,it).map(r=>r.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(t){for(const e of this.unbalancedBracketScopes)if(e(t))return!1;for(const e of this.balancedBracketScopes)if(e(t))return!0;return this.allowAny}},eo=class{constructor(t,e,n,r){g(this,"_emitBinaryTokens");g(this,"_lineText");g(this,"_tokens");g(this,"_binaryTokens");g(this,"_lastTokenEndIndex");g(this,"_tokenTypeOverrides");this.balancedBracketSelectors=r,this._emitBinaryTokens=t,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(t,e){this.produceFromScopes(t.contentNameScopesList,e)}produceFromScopes(t,e){var r;if(this._lastTokenEndIndex>=e)return;if(this._emitBinaryTokens){let s=(t==null?void 0:t.tokenAttributes)??0,o=!1;if((r=this.balancedBracketSelectors)!=null&&r.matchesAlways&&(o=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const i=(t==null?void 0:t.getScopeNames())??[];for(const a of this._tokenTypeOverrides)a.matcher(i)&&(s=Re.set(s,0,a.type,null,-1,0,0));this.balancedBracketSelectors&&(o=this.balancedBracketSelectors.match(i))}if(o&&(s=Re.set(s,0,8,o,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===s){this._lastTokenEndIndex=e;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(s),this._lastTokenEndIndex=e;return}const n=(t==null?void 0:t.getScopeNames())??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:e,scopes:n}),this._lastTokenEndIndex=e}getResult(t,e){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===e-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(t,e),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(t,e){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===e-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(t,e),this._binaryTokens[this._binaryTokens.length-2]=0);const n=new Uint32Array(this._binaryTokens.length);for(let r=0,s=this._binaryTokens.length;r<s;r++)n[r]=this._binaryTokens[r];return n}},to=class{constructor(t,e){g(this,"_grammars",new Map);g(this,"_rawGrammars",new Map);g(this,"_injectionGrammars",new Map);g(this,"_theme");this._onigLib=e,this._theme=t}dispose(){for(const t of this._grammars.values())t.dispose()}setTheme(t){this._theme=t}getColorMap(){return this._theme.getColorMap()}addGrammar(t,e){this._rawGrammars.set(t.scopeName,t),e&&this._injectionGrammars.set(t.scopeName,e)}lookup(t){return this._rawGrammars.get(t)}injections(t){return this._injectionGrammars.get(t)}getDefaults(){return this._theme.getDefaults()}themeMatch(t){return this._theme.match(t)}grammarForScopeName(t,e,n,r,s){if(!this._grammars.has(t)){let o=this._rawGrammars.get(t);if(!o)return null;this._grammars.set(t,Qs(t,o,e,n,r,s,this,this._onigLib))}return this._grammars.get(t)}},no=class{constructor(e){g(this,"_options");g(this,"_syncRegistry");g(this,"_ensureGrammarCache");this._options=e,this._syncRegistry=new to(nt.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,n){this._syncRegistry.setTheme(nt.createFromRawTheme(e,n))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,n,r){return this.loadGrammarWithConfiguration(e,n,{embeddedLanguages:r})}loadGrammarWithConfiguration(e,n,r){return this._loadGrammar(e,n,r.embeddedLanguages,r.tokenTypes,new Js(r.balancedBracketSelectors||[],r.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}_loadGrammar(e,n,r,s,o){const i=new Ps(this._syncRegistry,e);for(;i.Q.length>0;)i.Q.map(a=>this._loadSingleGrammar(a.scopeName)),i.processQueue();return this._grammarForScopeName(e,n,r,s,o)}_loadSingleGrammar(e){this._ensureGrammarCache.has(e)||(this._doLoadSingleGrammar(e),this._ensureGrammarCache.set(e,!0))}_doLoadSingleGrammar(e){const n=this._options.loadGrammar(e);if(n){const r=typeof this._options.getInjections=="function"?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(n,r)}}addGrammar(e,n=[],r=0,s=null){return this._syncRegistry.addGrammar(e,n),this._grammarForScopeName(e.scopeName,r,s)}_grammarForScopeName(e,n=0,r=null,s=null,o=null){return this._syncRegistry.grammarForScopeName(e,n,r,s,o)}},jt=Ut.NULL;const ro=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"];class Ve{constructor(e,n,r){this.normal=n,this.property=e,r&&(this.space=r)}}Ve.prototype.normal={};Ve.prototype.property={};Ve.prototype.space=void 0;function Sr(t,e){const n={},r={};for(const s of t)Object.assign(n,s.property),Object.assign(r,s.normal);return new Ve(n,r,e)}function zt(t){return t.toLowerCase()}class U{constructor(e,n){this.attribute=n,this.property=e}}U.prototype.attribute="";U.prototype.booleanish=!1;U.prototype.boolean=!1;U.prototype.commaOrSpaceSeparated=!1;U.prototype.commaSeparated=!1;U.prototype.defined=!1;U.prototype.mustUseProperty=!1;U.prototype.number=!1;U.prototype.overloadedBoolean=!1;U.prototype.property="";U.prototype.spaceSeparated=!1;U.prototype.space=void 0;let so=0;const k=Ce(),P=Ce(),Wt=Ce(),m=Ce(),I=Ce(),be=Ce(),j=Ce();function Ce(){return 2**++so}const Vt=Object.freeze(Object.defineProperty({__proto__:null,boolean:k,booleanish:P,commaOrSpaceSeparated:j,commaSeparated:be,number:m,overloadedBoolean:Wt,spaceSeparated:I},Symbol.toStringTag,{value:"Module"})),xt=Object.keys(Vt);class tn extends U{constructor(e,n,r,s){let o=-1;if(super(e,n),An(this,"space",s),typeof r=="number")for(;++o<xt.length;){const i=xt[o];An(this,xt[o],(r&Vt[i])===Vt[i])}}}tn.prototype.defined=!0;function An(t,e,n){n&&(t[e]=n)}function Ne(t){const e={},n={};for(const[r,s]of Object.entries(t.properties)){const o=new tn(r,t.transform(t.attributes||{},r),s,t.space);t.mustUseProperty&&t.mustUseProperty.includes(r)&&(o.mustUseProperty=!0),e[r]=o,n[zt(r)]=r,n[zt(o.attribute)]=r}return new Ve(e,n,t.space)}const kr=Ne({properties:{ariaActiveDescendant:null,ariaAtomic:P,ariaAutoComplete:null,ariaBusy:P,ariaChecked:P,ariaColCount:m,ariaColIndex:m,ariaColSpan:m,ariaControls:I,ariaCurrent:null,ariaDescribedBy:I,ariaDetails:null,ariaDisabled:P,ariaDropEffect:I,ariaErrorMessage:null,ariaExpanded:P,ariaFlowTo:I,ariaGrabbed:P,ariaHasPopup:null,ariaHidden:P,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:I,ariaLevel:m,ariaLive:null,ariaModal:P,ariaMultiLine:P,ariaMultiSelectable:P,ariaOrientation:null,ariaOwns:I,ariaPlaceholder:null,ariaPosInSet:m,ariaPressed:P,ariaReadOnly:P,ariaRelevant:null,ariaRequired:P,ariaRoleDescription:I,ariaRowCount:m,ariaRowIndex:m,ariaRowSpan:m,ariaSelected:P,ariaSetSize:m,ariaSort:null,ariaValueMax:m,ariaValueMin:m,ariaValueNow:m,ariaValueText:null,role:null},transform(t,e){return e==="role"?e:"aria-"+e.slice(4).toLowerCase()}});function vr(t,e){return e in t?t[e]:e}function xr(t,e){return vr(t,e.toLowerCase())}const oo=Ne({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:be,acceptCharset:I,accessKey:I,action:null,allow:null,allowFullScreen:k,allowPaymentRequest:k,allowUserMedia:k,alpha:k,alt:null,as:null,async:k,autoCapitalize:null,autoComplete:I,autoFocus:k,autoPlay:k,blocking:I,capture:null,charSet:null,checked:k,cite:null,className:I,closedBy:null,colorSpace:null,cols:m,colSpan:m,command:null,commandFor:null,content:null,contentEditable:P,controls:k,controlsList:I,coords:m|be,crossOrigin:null,data:null,dateTime:null,decoding:null,default:k,defer:k,dir:null,dirName:null,disabled:k,download:Wt,draggable:P,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:k,formTarget:null,headers:I,height:m,hidden:Wt,high:m,href:null,hrefLang:null,htmlFor:I,httpEquiv:I,id:null,imageSizes:null,imageSrcSet:null,inert:k,inputMode:null,integrity:null,is:null,isMap:k,itemId:null,itemProp:I,itemRef:I,itemScope:k,itemType:I,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:k,low:m,manifest:null,max:null,maxLength:m,media:null,method:null,min:null,minLength:m,multiple:k,muted:k,name:null,nonce:null,noModule:k,noValidate:k,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:k,optimum:m,pattern:null,ping:I,placeholder:null,playsInline:k,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:k,referrerPolicy:null,rel:I,required:k,reversed:k,rows:m,rowSpan:m,sandbox:I,scope:null,scoped:k,seamless:k,selected:k,shadowRootClonable:k,shadowRootCustomElementRegistry:k,shadowRootDelegatesFocus:k,shadowRootMode:null,shadowRootSerializable:k,shape:null,size:m,sizes:null,slot:null,span:m,spellCheck:P,src:null,srcDoc:null,srcLang:null,srcSet:null,start:m,step:null,style:null,tabIndex:m,target:null,title:null,translate:null,type:null,typeMustMatch:k,useMap:null,value:P,width:m,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:I,axis:null,background:null,bgColor:null,border:m,borderColor:null,bottomMargin:m,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:k,declare:k,event:null,face:null,frame:null,frameBorder:null,hSpace:m,leftMargin:m,link:null,longDesc:null,lowSrc:null,marginHeight:m,marginWidth:m,noResize:k,noHref:k,noShade:k,noWrap:k,object:null,profile:null,prompt:null,rev:null,rightMargin:m,rules:null,scheme:null,scrolling:P,standby:null,summary:null,text:null,topMargin:m,valueType:null,version:null,vAlign:null,vLink:null,vSpace:m,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:k,disablePictureInPicture:k,disableRemotePlayback:k,exportParts:be,part:I,prefix:null,property:null,results:m,security:null,unselectable:null},space:"html",transform:xr}),io=Ne({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:j,accentHeight:m,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:m,amplitude:m,arabicForm:null,ascent:m,attributeName:null,attributeType:null,azimuth:m,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:m,by:null,calcMode:null,capHeight:m,className:I,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:m,diffuseConstant:m,direction:null,display:null,dur:null,divisor:m,dominantBaseline:null,download:k,dx:null,dy:null,edgeMode:null,editable:null,elevation:m,enableBackground:null,end:null,event:null,exponent:m,externalResourcesRequired:null,fill:null,fillOpacity:m,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:be,g2:be,glyphName:be,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:m,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:m,horizOriginX:m,horizOriginY:m,id:null,ideographic:m,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:m,k:m,k1:m,k2:m,k3:m,k4:m,kernelMatrix:j,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:m,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:m,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:m,overlineThickness:m,paintOrder:null,panose1:null,path:null,pathLength:m,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:I,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:m,pointsAtY:m,pointsAtZ:m,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:j,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:j,rev:j,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:j,requiredFeatures:j,requiredFonts:j,requiredFormats:j,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:m,specularExponent:m,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:m,strikethroughThickness:m,string:null,stroke:null,strokeDashArray:j,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:m,strokeOpacity:m,strokeWidth:null,style:null,surfaceScale:m,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:j,tabIndex:m,tableValues:null,target:null,targetX:m,targetY:m,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:j,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:m,underlineThickness:m,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:m,values:null,vAlphabetic:m,vMathematical:m,vectorEffect:null,vHanging:m,vIdeographic:m,version:null,vertAdvY:m,vertOriginX:m,vertOriginY:m,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:m,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:vr}),Er=Ne({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(t,e){return"xlink:"+e.slice(5).toLowerCase()}}),Ar=Ne({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:xr}),Ir=Ne({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(t,e){return"xml:"+e.slice(3).toLowerCase()}}),ao=/[A-Z]/g,In=/-[a-z]/g,lo=/^data[-\w.:]+$/i;function co(t,e){const n=zt(e);let r=e,s=U;if(n in t.normal)return t.property[t.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&lo.test(e)){if(e.charAt(4)==="-"){const o=e.slice(5).replace(In,ho);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=e.slice(4);if(!In.test(o)){let i=o.replace(ao,uo);i.charAt(0)!=="-"&&(i="-"+i),e="data"+i}}s=tn}return new s(r,e)}function uo(t){return"-"+t.toLowerCase()}function ho(t){return t.charAt(1).toUpperCase()}const fo=Sr([kr,oo,Er,Ar,Ir],"html"),Rr=Sr([kr,io,Er,Ar,Ir],"svg"),Rn={}.hasOwnProperty;function po(t,e){const n=e||{};function r(s,...o){let i=r.invalid;const a=r.handlers;if(s&&Rn.call(s,t)){const l=String(s[t]);i=Rn.call(a,l)?a[l]:r.unknown}if(i)return i.call(this,s,...o)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}const go=/["&'<>`]/g,mo=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,yo=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,_o=/[|\\{}()[\]^$+*?.]/g,Nn=new WeakMap;function bo(t,e){if(t=t.replace(e.subset?wo(e.subset):go,r),e.subset||e.escapeOnly)return t;return t.replace(mo,n).replace(yo,r);function n(s,o,i){return e.format((s.charCodeAt(0)-55296)*1024+s.charCodeAt(1)-56320+65536,i.charCodeAt(o+2),e)}function r(s,o,i){return e.format(s.charCodeAt(0),i.charCodeAt(o+1),e)}}function wo(t){let e=Nn.get(t);return e||(e=Co(t),Nn.set(t,e)),e}function Co(t){const e=[];let n=-1;for(;++n<t.length;)e.push(t[n].replace(_o,"\\$&"));return new RegExp("(?:"+e.join("|")+")","g")}const So=/[\dA-Fa-f]/;function ko(t,e,n){const r="&#x"+t.toString(16).toUpperCase();return n&&e&&!So.test(String.fromCharCode(e))?r:r+";"}const vo=/\d/;function xo(t,e,n){const r="&#"+String(t);return n&&e&&!vo.test(String.fromCharCode(e))?r:r+";"}const Eo=["AElig","AMP","Aacute","Acirc","Agrave","Aring","Atilde","Auml","COPY","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","GT","Iacute","Icirc","Igrave","Iuml","LT","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","QUOT","REG","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","acute","aelig","agrave","amp","aring","atilde","auml","brvbar","ccedil","cedil","cent","copy","curren","deg","divide","eacute","ecirc","egrave","eth","euml","frac12","frac14","frac34","gt","iacute","icirc","iexcl","igrave","iquest","iuml","laquo","lt","macr","micro","middot","nbsp","not","ntilde","oacute","ocirc","ograve","ordf","ordm","oslash","otilde","ouml","para","plusmn","pound","quot","raquo","reg","sect","shy","sup1","sup2","sup3","szlig","thorn","times","uacute","ucirc","ugrave","uml","uuml","yacute","yen","yuml"],Et={nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",fnof:"ƒ",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",bull:"•",hellip:"…",prime:"′",Prime:"″",oline:"‾",frasl:"⁄",weierp:"℘",image:"ℑ",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",quot:'"',amp:"&",lt:"<",gt:">",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"},Ao=["cent","copy","divide","gt","lt","not","para","times"],Nr={}.hasOwnProperty,Ht={};let Xe;for(Xe in Et)Nr.call(Et,Xe)&&(Ht[Et[Xe]]=Xe);const Io=/[^\dA-Za-z]/;function Ro(t,e,n,r){const s=String.fromCharCode(t);if(Nr.call(Ht,s)){const o=Ht[s],i="&"+o;return n&&Eo.includes(o)&&!Ao.includes(o)&&(!r||e&&e!==61&&Io.test(String.fromCharCode(e)))?i:i+";"}return""}function No(t,e,n){let r=ko(t,e,n.omitOptionalSemicolons),s;if((n.useNamedReferences||n.useShortestReferences)&&(s=Ro(t,e,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!s)&&n.useShortestReferences){const o=xo(t,e,n.omitOptionalSemicolons);o.length<r.length&&(r=o)}return s&&(!n.useShortestReferences||s.length<r.length)?s:r}function Ie(t,e){return bo(t,Object.assign({format:No},e))}const Po=/^>|^->|<!--|-->|--!>|<!-$/g,Lo=[">"],$o=["<",">"];function To(t,e,n,r){return r.settings.bogusComments?"<?"+Ie(t.value,Object.assign({},r.settings.characterReferences,{subset:Lo}))+">":"<!--"+t.value.replace(Po,s)+"-->";function s(o){return Ie(o,Object.assign({},r.settings.characterReferences,{subset:$o}))}}function Mo(t,e,n,r){return"<!"+(r.settings.upperDoctype?"DOCTYPE":"doctype")+(r.settings.tightDoctype?"":" ")+"html>"}function Pn(t,e){const n=String(t);if(typeof e!="string")throw new TypeError("Expected character");let r=0,s=n.indexOf(e);for(;s!==-1;)r++,s=n.indexOf(e,s+e.length);return r}function Oo(t,e){const n=e||{};return(t[t.length-1]===""?[...t,""]:t).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}function Go(t){return t.join(" ").trim()}const Do=/[ \t\n\f\r]/g;function nn(t){return typeof t=="object"?t.type==="text"?Ln(t.value):!1:Ln(t)}function Ln(t){return t.replace(Do,"")===""}const $=Lr(1),Pr=Lr(-1),Bo=[];function Lr(t){return e;function e(n,r,s){const o=n?n.children:Bo;let i=(r||0)+t,a=o[i];if(!s)for(;a&&nn(a);)i+=t,a=o[i];return a}}const Fo={}.hasOwnProperty;function $r(t){return e;function e(n,r,s){return Fo.call(t,n.tagName)&&t[n.tagName](n,r,s)}}const rn=$r({body:jo,caption:At,colgroup:At,dd:Ho,dt:Vo,head:At,html:Uo,li:Wo,optgroup:qo,option:Xo,p:zo,rp:$n,rt:$n,tbody:Qo,td:Tn,tfoot:Zo,th:Tn,thead:Ko,tr:Yo});function At(t,e,n){const r=$(n,e,!0);return!r||r.type!=="comment"&&!(r.type==="text"&&nn(r.value.charAt(0)))}function Uo(t,e,n){const r=$(n,e);return!r||r.type!=="comment"}function jo(t,e,n){const r=$(n,e);return!r||r.type!=="comment"}function zo(t,e,n){const r=$(n,e);return r?r.type==="element"&&(r.tagName==="address"||r.tagName==="article"||r.tagName==="aside"||r.tagName==="blockquote"||r.tagName==="details"||r.tagName==="div"||r.tagName==="dl"||r.tagName==="fieldset"||r.tagName==="figcaption"||r.tagName==="figure"||r.tagName==="footer"||r.tagName==="form"||r.tagName==="h1"||r.tagName==="h2"||r.tagName==="h3"||r.tagName==="h4"||r.tagName==="h5"||r.tagName==="h6"||r.tagName==="header"||r.tagName==="hgroup"||r.tagName==="hr"||r.tagName==="main"||r.tagName==="menu"||r.tagName==="nav"||r.tagName==="ol"||r.tagName==="p"||r.tagName==="pre"||r.tagName==="section"||r.tagName==="table"||r.tagName==="ul"):!n||!(n.type==="element"&&(n.tagName==="a"||n.tagName==="audio"||n.tagName==="del"||n.tagName==="ins"||n.tagName==="map"||n.tagName==="noscript"||n.tagName==="video"))}function Wo(t,e,n){const r=$(n,e);return!r||r.type==="element"&&r.tagName==="li"}function Vo(t,e,n){const r=$(n,e);return!!(r&&r.type==="element"&&(r.tagName==="dt"||r.tagName==="dd"))}function Ho(t,e,n){const r=$(n,e);return!r||r.type==="element"&&(r.tagName==="dt"||r.tagName==="dd")}function $n(t,e,n){const r=$(n,e);return!r||r.type==="element"&&(r.tagName==="rp"||r.tagName==="rt")}function qo(t,e,n){const r=$(n,e);return!r||r.type==="element"&&r.tagName==="optgroup"}function Xo(t,e,n){const r=$(n,e);return!r||r.type==="element"&&(r.tagName==="option"||r.tagName==="optgroup")}function Ko(t,e,n){const r=$(n,e);return!!(r&&r.type==="element"&&(r.tagName==="tbody"||r.tagName==="tfoot"))}function Qo(t,e,n){const r=$(n,e);return!r||r.type==="element"&&(r.tagName==="tbody"||r.tagName==="tfoot")}function Zo(t,e,n){return!$(n,e)}function Yo(t,e,n){const r=$(n,e);return!r||r.type==="element"&&r.tagName==="tr"}function Tn(t,e,n){const r=$(n,e);return!r||r.type==="element"&&(r.tagName==="td"||r.tagName==="th")}const Jo=$r({body:ni,colgroup:ri,head:ti,html:ei,tbody:si});function ei(t){const e=$(t,-1);return!e||e.type!=="comment"}function ti(t){const e=new Set;for(const r of t.children)if(r.type==="element"&&(r.tagName==="base"||r.tagName==="title")){if(e.has(r.tagName))return!1;e.add(r.tagName)}const n=t.children[0];return!n||n.type==="element"}function ni(t){const e=$(t,-1,!0);return!e||e.type!=="comment"&&!(e.type==="text"&&nn(e.value.charAt(0)))&&!(e.type==="element"&&(e.tagName==="meta"||e.tagName==="link"||e.tagName==="script"||e.tagName==="style"||e.tagName==="template"))}function ri(t,e,n){const r=Pr(n,e),s=$(t,-1,!0);return n&&r&&r.type==="element"&&r.tagName==="colgroup"&&rn(r,n.children.indexOf(r),n)?!1:!!(s&&s.type==="element"&&s.tagName==="col")}function si(t,e,n){const r=Pr(n,e),s=$(t,-1);return n&&r&&r.type==="element"&&(r.tagName==="thead"||r.tagName==="tbody")&&rn(r,n.children.indexOf(r),n)?!1:!!(s&&s.type==="element"&&s.tagName==="tr")}const Ke={name:[[`
5
5
  \f\r &/=>`.split(""),`
@@ -1 +1 @@
1
- import{k as n,r as c}from"./index-w7-D5Xrc.js";const a="relay-theme";function m(){var t;const e=localStorage.getItem(a);return e==="dark"||e==="light"?e:(t=window.matchMedia)!=null&&t.call(window,"(prefers-color-scheme: light)").matches?"light":"dark"}const i=n("theme",()=>{const e=c(m());function t(){document.documentElement.classList.toggle("dark",e.value==="dark"),document.documentElement.style.colorScheme=e.value}function o(r){e.value=r,localStorage.setItem(a,r),t()}function l(){o(e.value==="dark"?"light":"dark")}return t(),{mode:e,set:o,toggle:l,apply:t}});export{i as u};
1
+ import{k as n,r as c}from"./index-D95RDANU.js";const a="relay-theme";function m(){var t;const e=localStorage.getItem(a);return e==="dark"||e==="light"?e:(t=window.matchMedia)!=null&&t.call(window,"(prefers-color-scheme: light)").matches?"light":"dark"}const i=n("theme",()=>{const e=c(m());function t(){document.documentElement.classList.toggle("dark",e.value==="dark"),document.documentElement.style.colorScheme=e.value}function o(r){e.value=r,localStorage.setItem(a,r),t()}function l(){o(e.value==="dark"?"light":"dark")}return t(),{mode:e,set:o,toggle:l,apply:t}});export{i as u};
@@ -29,8 +29,8 @@
29
29
  }
30
30
  })();
31
31
  </script>
32
- <script type="module" crossorigin src="/assets/index-w7-D5Xrc.js"></script>
33
- <link rel="stylesheet" crossorigin href="/assets/index-L9iYRZjb.css">
32
+ <script type="module" crossorigin src="/assets/index-D95RDANU.js"></script>
33
+ <link rel="stylesheet" crossorigin href="/assets/index-czQtNRcL.css">
34
34
  <link rel="manifest" href="/manifest.webmanifest"></head>
35
35
  <body>
36
36
  <div id="app"></div>
@@ -1 +1 @@
1
- if(!self.define){let s,l={};const e=(e,n)=>(e=new URL(e+".js",n).href,l[e]||new Promise(l=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=l,document.head.appendChild(s)}else s=e,importScripts(e),l()}).then(()=>{let s=l[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s}));self.define=(n,i)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(l[r])return;let o={};const a=s=>e(s,r),u={module:{uri:r},exports:o,require:a};l[r]=Promise.all(n.map(s=>u[s]||a(s))).then(s=>(i(...s),o))}}define(["./workbox-9c191d2f"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"pwa-64x64.png",revision:"d2af46f4bb347977f19595bda6caaed4"},{url:"pwa-512x512.png",revision:"f16a01bab067f36b39a42485d686e3be"},{url:"pwa-192x192.png",revision:"fa77320642032c636d96f216b9ed84a3"},{url:"mask-icon.svg",revision:"78d0341702fa97ead2e057c910ac730e"},{url:"index.html",revision:"f96558f2ead651092f3288cf2bde6904"},{url:"icon.svg",revision:"108e2c2390e392bf1df806b0fac8630b"},{url:"favicon.ico",revision:"f3b082619625b4e8aba703acb01d86c9"},{url:"apple-touch-icon-180x180.png",revision:"e55c4a308bb7b81b46fc17ca3cecc9df"},{url:"assets/yaml-Buea-lGh.js",revision:null},{url:"assets/xml-sdJ4AIDG.js",revision:null},{url:"assets/workbox-window.prod.es5-BqEJf4Xk.js",revision:null},{url:"assets/vue-DVfSmUF7.js",revision:null},{url:"assets/typescript-BPQ3VLAy.js",revision:null},{url:"assets/tsx-COt5Ahok.js",revision:null},{url:"assets/toml-vGWfd6FD.js",revision:null},{url:"assets/theme-W_gwuQgq.js",revision:null},{url:"assets/swift-D82vCrfD.js",revision:null},{url:"assets/sql-BLtJtn59.js",revision:null},{url:"assets/shiki-B-yqXaoA.js",revision:null},{url:"assets/shellscript-Yzrsuije.js",revision:null},{url:"assets/scss-OYdSNvt2.js",revision:null},{url:"assets/rust-B1yitclQ.js",revision:null},{url:"assets/ruby-xesJ3fNi.js",revision:null},{url:"assets/python-B6aJPvgy.js",revision:null},{url:"assets/php-Dhbhpdrm.js",revision:null},{url:"assets/markdown-Cvjx9yec.js",revision:null},{url:"assets/make-CHLpvVh8.js",revision:null},{url:"assets/kotlin-BdnUsdx6.js",revision:null},{url:"assets/jsx-g9-lgVsj.js",revision:null},{url:"assets/json-Cp-IABpG.js",revision:null},{url:"assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2",revision:null},{url:"assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2",revision:null},{url:"assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2",revision:null},{url:"assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2",revision:null},{url:"assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2",revision:null},{url:"assets/jetbrains-mono-greek-400-normal-C190GLew.woff2",revision:null},{url:"assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2",revision:null},{url:"assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2",revision:null},{url:"assets/javascript-wDzz0qaB.js",revision:null},{url:"assets/java-CylS5w8V.js",revision:null},{url:"assets/inter-vietnamese-700-normal-DlLaEgI2.woff2",revision:null},{url:"assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2",revision:null},{url:"assets/inter-vietnamese-500-normal-DOriooB6.woff2",revision:null},{url:"assets/inter-vietnamese-400-normal-DMkecbls.woff2",revision:null},{url:"assets/inter-latin-ext-700-normal-Ca8adRJv.woff2",revision:null},{url:"assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2",revision:null},{url:"assets/inter-latin-ext-500-normal-CV4jyFjo.woff2",revision:null},{url:"assets/inter-latin-ext-400-normal-C1nco2VV.woff2",revision:null},{url:"assets/inter-latin-700-normal-Yt3aPRUw.woff2",revision:null},{url:"assets/inter-latin-600-normal-LgqL8muc.woff2",revision:null},{url:"assets/inter-latin-500-normal-Cerq10X2.woff2",revision:null},{url:"assets/inter-latin-400-normal-C38fXH4l.woff2",revision:null},{url:"assets/inter-greek-ext-700-normal-qfdV9bQt.woff2",revision:null},{url:"assets/inter-greek-ext-600-normal-DRtmH8MT.woff2",revision:null},{url:"assets/inter-greek-ext-500-normal-C4iEst2y.woff2",revision:null},{url:"assets/inter-greek-ext-400-normal-DGGRlc-M.woff2",revision:null},{url:"assets/inter-greek-700-normal-C3JjAnD8.woff2",revision:null},{url:"assets/inter-greek-600-normal-plRanbMR.woff2",revision:null},{url:"assets/inter-greek-500-normal-BIZE56-Y.woff2",revision:null},{url:"assets/inter-greek-400-normal-B4URO6DV.woff2",revision:null},{url:"assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2",revision:null},{url:"assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2",revision:null},{url:"assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2",revision:null},{url:"assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2",revision:null},{url:"assets/inter-cyrillic-700-normal-CjBOestx.woff2",revision:null},{url:"assets/inter-cyrillic-600-normal-CWCymEST.woff2",revision:null},{url:"assets/inter-cyrillic-500-normal-BasfLYem.woff2",revision:null},{url:"assets/inter-cyrillic-400-normal-obahsSVq.woff2",revision:null},{url:"assets/index-w7-D5Xrc.js",revision:null},{url:"assets/index-L9iYRZjb.css",revision:null},{url:"assets/html-GMplVEZG.js",revision:null},{url:"assets/graphql-ChdNCCLP.js",revision:null},{url:"assets/go-CxLEBnE3.js",revision:null},{url:"assets/github-light-DAi9KRSo.js",revision:null},{url:"assets/github-dark-DHJKELXO.js",revision:null},{url:"assets/dockerfile-BcOcwvcX.js",revision:null},{url:"assets/diff-D97Zzqfu.js",revision:null},{url:"assets/css-DPfMkruS.js",revision:null},{url:"assets/csharp-COcwbKMJ.js",revision:null},{url:"assets/cpp-BRuaLJcg.js",revision:null},{url:"assets/c-BIGW1oBm.js",revision:null},{url:"assets/_plugin-vue_export-helper-DlAUqK2U.js",revision:null},{url:"assets/SettingsView-CqmzNd9O.js",revision:null},{url:"assets/LoginView-DThHTMEG.js",revision:null},{url:"assets/LoginView-BDsZDCu4.css",revision:null},{url:"assets/DashboardView-DQH2-6ZB.css",revision:null},{url:"assets/DashboardView-DHpsuunb.js",revision:null},{url:"apple-touch-icon-180x180.png",revision:"e55c4a308bb7b81b46fc17ca3cecc9df"},{url:"favicon.ico",revision:"f3b082619625b4e8aba703acb01d86c9"},{url:"icon.svg",revision:"108e2c2390e392bf1df806b0fac8630b"},{url:"mask-icon.svg",revision:"78d0341702fa97ead2e057c910ac730e"},{url:"pwa-192x192.png",revision:"fa77320642032c636d96f216b9ed84a3"},{url:"pwa-512x512.png",revision:"f16a01bab067f36b39a42485d686e3be"},{url:"pwa-64x64.png",revision:"d2af46f4bb347977f19595bda6caaed4"},{url:"manifest.webmanifest",revision:"b4ffc8074149528886e792c1f7aec4ef"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api/,/^\/ws/]}))});
1
+ if(!self.define){let s,l={};const e=(e,n)=>(e=new URL(e+".js",n).href,l[e]||new Promise(l=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=l,document.head.appendChild(s)}else s=e,importScripts(e),l()}).then(()=>{let s=l[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s}));self.define=(n,i)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(l[r])return;let o={};const a=s=>e(s,r),t={module:{uri:r},exports:o,require:a};l[r]=Promise.all(n.map(s=>t[s]||a(s))).then(s=>(i(...s),o))}}define(["./workbox-9c191d2f"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"pwa-64x64.png",revision:"d2af46f4bb347977f19595bda6caaed4"},{url:"pwa-512x512.png",revision:"f16a01bab067f36b39a42485d686e3be"},{url:"pwa-192x192.png",revision:"fa77320642032c636d96f216b9ed84a3"},{url:"mask-icon.svg",revision:"78d0341702fa97ead2e057c910ac730e"},{url:"index.html",revision:"5506316b1ec0934e858493f5ece63018"},{url:"icon.svg",revision:"108e2c2390e392bf1df806b0fac8630b"},{url:"favicon.ico",revision:"f3b082619625b4e8aba703acb01d86c9"},{url:"apple-touch-icon-180x180.png",revision:"e55c4a308bb7b81b46fc17ca3cecc9df"},{url:"assets/yaml-Buea-lGh.js",revision:null},{url:"assets/xml-sdJ4AIDG.js",revision:null},{url:"assets/workbox-window.prod.es5-BqEJf4Xk.js",revision:null},{url:"assets/vue-DVfSmUF7.js",revision:null},{url:"assets/typescript-BPQ3VLAy.js",revision:null},{url:"assets/tsx-COt5Ahok.js",revision:null},{url:"assets/toml-vGWfd6FD.js",revision:null},{url:"assets/theme-CR6MoYC7.js",revision:null},{url:"assets/swift-D82vCrfD.js",revision:null},{url:"assets/sql-BLtJtn59.js",revision:null},{url:"assets/shiki-BIq7G4Cm.js",revision:null},{url:"assets/shellscript-Yzrsuije.js",revision:null},{url:"assets/scss-OYdSNvt2.js",revision:null},{url:"assets/rust-B1yitclQ.js",revision:null},{url:"assets/ruby-xesJ3fNi.js",revision:null},{url:"assets/python-B6aJPvgy.js",revision:null},{url:"assets/php-Dhbhpdrm.js",revision:null},{url:"assets/markdown-Cvjx9yec.js",revision:null},{url:"assets/make-CHLpvVh8.js",revision:null},{url:"assets/kotlin-BdnUsdx6.js",revision:null},{url:"assets/jsx-g9-lgVsj.js",revision:null},{url:"assets/json-Cp-IABpG.js",revision:null},{url:"assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2",revision:null},{url:"assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2",revision:null},{url:"assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2",revision:null},{url:"assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2",revision:null},{url:"assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2",revision:null},{url:"assets/jetbrains-mono-greek-400-normal-C190GLew.woff2",revision:null},{url:"assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2",revision:null},{url:"assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2",revision:null},{url:"assets/javascript-wDzz0qaB.js",revision:null},{url:"assets/java-CylS5w8V.js",revision:null},{url:"assets/inter-vietnamese-700-normal-DlLaEgI2.woff2",revision:null},{url:"assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2",revision:null},{url:"assets/inter-vietnamese-500-normal-DOriooB6.woff2",revision:null},{url:"assets/inter-vietnamese-400-normal-DMkecbls.woff2",revision:null},{url:"assets/inter-latin-ext-700-normal-Ca8adRJv.woff2",revision:null},{url:"assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2",revision:null},{url:"assets/inter-latin-ext-500-normal-CV4jyFjo.woff2",revision:null},{url:"assets/inter-latin-ext-400-normal-C1nco2VV.woff2",revision:null},{url:"assets/inter-latin-700-normal-Yt3aPRUw.woff2",revision:null},{url:"assets/inter-latin-600-normal-LgqL8muc.woff2",revision:null},{url:"assets/inter-latin-500-normal-Cerq10X2.woff2",revision:null},{url:"assets/inter-latin-400-normal-C38fXH4l.woff2",revision:null},{url:"assets/inter-greek-ext-700-normal-qfdV9bQt.woff2",revision:null},{url:"assets/inter-greek-ext-600-normal-DRtmH8MT.woff2",revision:null},{url:"assets/inter-greek-ext-500-normal-C4iEst2y.woff2",revision:null},{url:"assets/inter-greek-ext-400-normal-DGGRlc-M.woff2",revision:null},{url:"assets/inter-greek-700-normal-C3JjAnD8.woff2",revision:null},{url:"assets/inter-greek-600-normal-plRanbMR.woff2",revision:null},{url:"assets/inter-greek-500-normal-BIZE56-Y.woff2",revision:null},{url:"assets/inter-greek-400-normal-B4URO6DV.woff2",revision:null},{url:"assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2",revision:null},{url:"assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2",revision:null},{url:"assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2",revision:null},{url:"assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2",revision:null},{url:"assets/inter-cyrillic-700-normal-CjBOestx.woff2",revision:null},{url:"assets/inter-cyrillic-600-normal-CWCymEST.woff2",revision:null},{url:"assets/inter-cyrillic-500-normal-BasfLYem.woff2",revision:null},{url:"assets/inter-cyrillic-400-normal-obahsSVq.woff2",revision:null},{url:"assets/index-czQtNRcL.css",revision:null},{url:"assets/index-D95RDANU.js",revision:null},{url:"assets/html-GMplVEZG.js",revision:null},{url:"assets/graphql-ChdNCCLP.js",revision:null},{url:"assets/go-CxLEBnE3.js",revision:null},{url:"assets/github-light-DAi9KRSo.js",revision:null},{url:"assets/github-dark-DHJKELXO.js",revision:null},{url:"assets/dockerfile-BcOcwvcX.js",revision:null},{url:"assets/diff-D97Zzqfu.js",revision:null},{url:"assets/css-DPfMkruS.js",revision:null},{url:"assets/csharp-COcwbKMJ.js",revision:null},{url:"assets/cpp-BRuaLJcg.js",revision:null},{url:"assets/c-BIGW1oBm.js",revision:null},{url:"assets/_plugin-vue_export-helper-DlAUqK2U.js",revision:null},{url:"assets/SettingsView-FpZipkSZ.js",revision:null},{url:"assets/LoginView-BDsZDCu4.css",revision:null},{url:"assets/LoginView-6-Sx6Ty1.js",revision:null},{url:"assets/DashboardView-DQH2-6ZB.css",revision:null},{url:"assets/DashboardView-B-uAkayo.js",revision:null},{url:"apple-touch-icon-180x180.png",revision:"e55c4a308bb7b81b46fc17ca3cecc9df"},{url:"favicon.ico",revision:"f3b082619625b4e8aba703acb01d86c9"},{url:"icon.svg",revision:"108e2c2390e392bf1df806b0fac8630b"},{url:"mask-icon.svg",revision:"78d0341702fa97ead2e057c910ac730e"},{url:"pwa-192x192.png",revision:"fa77320642032c636d96f216b9ed84a3"},{url:"pwa-512x512.png",revision:"f16a01bab067f36b39a42485d686e3be"},{url:"pwa-64x64.png",revision:"d2af46f4bb347977f19595bda6caaed4"},{url:"manifest.webmanifest",revision:"b4ffc8074149528886e792c1f7aec4ef"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api/,/^\/ws/]}))});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ganglion/xacpx-relay",
3
- "version": "0.9.4",
3
+ "version": "0.9.5",
4
4
  "description": "Self-hosted relay hub for xacpx: instance gateway, accounts, and web API.",
5
5
  "license": "MIT",
6
6
  "keywords": [