@whoz-oss/coday-client 0.138.0 → 0.139.0

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.
@@ -0,0 +1,2 @@
1
+ import{a as Fe,b as Ke,c as Z}from"./chunk-RPMRNJNU.js";import{a as He}from"./chunk-2PCZ45ML.js";import{d as Je}from"./chunk-TPSIRGLZ.js";import{a as Ue}from"./chunk-NLRFBAA2.js";import{a as q,b as $,c as Pe,d as je,f as Xe,h as Ze}from"./chunk-CC5AKB2A.js";import"./chunk-O7ALTLRI.js";import{a as ve,b as Ce,c as ke,e as Ie,l as Ae,o as Re,q as Ge,v as Ve,w as Qe}from"./chunk-APQFC6DT.js";import"./chunk-FAAHG43E.js";import"./chunk-2NXSUKWO.js";import{d as ce,e as de}from"./chunk-LTFITYTW.js";import"./chunk-IF2A56UI.js";import{a as qe,b as $e,c as Be}from"./chunk-M7DIJJQG.js";import{a as ze,b as We}from"./chunk-OI3PIKFL.js";import"./chunk-47EXVHLI.js";import"./chunk-SKVQOMLG.js";import{c as Ye}from"./chunk-JPVNXEXU.js";import{a as Te,c as ye,d as Se,e as Me,j as Le}from"./chunk-BOMZXZNH.js";import{a as xe,b as we,c as Oe,e as De,f as B,i as z,j as W,m as U,n as H}from"./chunk-JRNOMFVU.js";import{a as Ne,b as P}from"./chunk-LCBWJP6Z.js";import{a as me,d as A,e as ge,f as ue,g as _e,h as he}from"./chunk-75DAJTMO.js";import"./chunk-J4KEKL2K.js";import{a as F,b as L}from"./chunk-MMKBNIVO.js";import{C as Ee}from"./chunk-DLU3TQID.js";import{a as be,b as V}from"./chunk-G4QDBE4F.js";import{O as fe,Q as R,S as G,n as pe}from"./chunk-24VYLV4I.js";import{Bb as x,Db as u,Fb as p,Ja as K,Jb as oe,Ka as c,Kb as re,Lb as ae,Pb as S,Qb as se,Rb as y,Rc as le,Tb as l,Ub as b,Vb as j,Wa as N,Z as E,a as O,b as D,ca as h,ga as m,ha as g,jb as Y,kc as v,lb as C,ma as ie,mb as k,ob as I,pb as w,qb as T,rb as f,s as te,sb as o,t as ne,ta as _,tb as s,ub as M}from"./chunk-RNXBUYHW.js";var lt=(r,t)=>t.name;function ct(r,t){if(r&1&&(o(0,"mat-option",11),l(1),s()),r&2){let e=t.$implicit;f("value",e),c(),b(e)}}function dt(r,t){r&1&&M(0,"mat-spinner",13)}function pt(r,t){if(r&1&&(o(0,"span",20),l(1),s()),r&2){let e=p().$implicit;c(),b(e.description)}}function mt(r,t){if(r&1&&(o(0,"mat-option",11)(1,"span",19),l(2),s(),C(3,pt,2,1,"span",20),s()),r&2){let e=t.$implicit;f("value",e.name),c(2),b(e.name),c(),k(e.description?3:-1)}}function gt(r,t){if(r&1&&(o(0,"mat-option",11),l(1),s()),r&2){let e=t.$implicit;f("value",e),c(),b(e)}}function ut(r,t){if(r&1){let e=x();o(0,"div",25)(1,"mat-form-field",8)(2,"mat-label"),l(3,"Name"),s(),o(4,"input",26),u("input",function(i){m(e);let a=p(2);return g(a.issueNumber.set(i.target.value))}),s()(),o(5,"mat-form-field",27)(6,"mat-label"),l(7,"Type"),s(),o(8,"mat-select",28),u("selectionChange",function(i){m(e);let a=p(2);return g(a.branchType.set(i.value))}),w(9,gt,2,2,"mat-option",11,I),s()()()}if(r&2){let e=p(2);c(4),f("value",e.issueNumber()),c(4),f("value",e.branchType()),c(),T(e.branchTypes)}}function _t(r,t){r&1&&M(0,"mat-spinner",13)}function ht(r,t){if(r&1&&(o(0,"mat-option",11),l(1),s()),r&2){let e=t.$implicit;f("value",e),c(),b(e)}}function ft(r,t){if(r&1){let e=x();o(0,"mat-form-field",8)(1,"mat-label"),l(2,"Source branch"),s(),o(3,"input",29,4),u("input",function(i){m(e);let a=p(2);return g(a.onBranchSearchInput(i.target.value))})("focus",function(){m(e);let i=S(4),a=p(2);return g(a.openPanel(i))}),s(),C(5,_t,1,0,"mat-spinner",13),o(6,"mat-autocomplete",10,5),u("optionSelected",function(i){m(e);let a=p(2);return g(a.selectBranch(i.option.value))}),w(8,ht,2,2,"mat-option",11,I),s()()}if(r&2){let e=S(7),n=p(2);c(3),f("value",n.branchSearch())("matAutocomplete",e)("disabled",n.isLoadingBranches()),c(2),k(n.isLoadingBranches()?5:-1),c(3),T(n.filteredBranches())}}function bt(r,t){if(r&1){let e=x();o(0,"div",21)(1,"button",22),u("click",function(){m(e);let i=p();return g(i.onModeChange("local"))}),o(2,"mat-icon"),l(3,"folder_open"),s(),o(4,"span",23),l(5,"Local"),s(),o(6,"span",24),l(7,"Work directly on the current branch"),s()(),o(8,"button",22),u("click",function(){m(e);let i=p();return g(i.onModeChange("worktree"))}),o(9,"mat-icon"),l(10,"account_tree"),s(),o(11,"span",23),l(12,"Worktree"),s(),o(13,"span",24),l(14,"Create an isolated worktree from a branch"),s()()(),C(15,ut,11,2,"div",25),C(16,ft,10,4,"mat-form-field",8)}if(r&2){let e=p();c(),y("active",e.mode()==="local"),c(7),y("active",e.mode()==="worktree"),c(7),k(e.isWorktree()?15:-1),c(),k(e.isWorktree()?16:-1)}}function vt(r,t){r&1&&M(0,"mat-spinner",18)}function Ct(r,t){r&1&&(o(0,"mat-icon"),l(1,"rocket_launch"),s())}function kt(r,t){r&1&&(o(0,"mat-icon"),l(1,"open_in_new"),s())}var Q=class r{projectApi=h(be);agentApi=h(Ue);dialogRef=h(me);projectState=h(V);forcedProject=P(this.projectState.forcedProject$,{initialValue:null});selectedProject=_("");projectSearch=_("");selectedAgent=_("");agentSearch=_("");mode=_("local");selectedBranch=_("");branchSearch=_("");issueNumber=_("");branchType=_("feature");task=_("");hasGit=_(!1);branchTypes=["feature","fix","refactor","chore","docs","build"];projects=_([]);agents=_([]);branches=_([]);filteredProjects=v(()=>{let t=this.projectSearch().toLowerCase();return t?this.projects().filter(e=>e.toLowerCase().includes(t)):this.projects()});filteredAgents=v(()=>{let t=this.agentSearch().toLowerCase();return t?this.agents().filter(e=>e.name.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)):this.agents()});filteredBranches=v(()=>{let t=this.branchSearch().toLowerCase();return t?this.branches().filter(e=>e.toLowerCase().includes(t)):this.branches()});isLoadingAgents=_(!1);isLoadingBranches=_(!1);isSubmitting=_(!1);isWorktree=v(()=>this.mode()==="worktree"&&this.hasGit());isValid=v(()=>{let t=this.projects().includes(this.selectedProject()),e=this.agents().some(i=>i.name===this.selectedAgent()),n=t&&e&&!!this.task().trim();return this.isWorktree()?n&&!!this.selectedBranch()&&!!this.issueNumber().trim()&&!!this.branchType():n});canNavigate=v(()=>this.projects().includes(this.selectedProject()));openPanel(t){t.openPanel()}onProjectSearchInput(t){this.projectSearch.set(t),this.selectedProject()&&t!==this.selectedProject()&&(this.selectedProject.set(""),this.selectedAgent.set(""),this.agentSearch.set(""),this.agents.set([]))}selectProject(t){this.selectedProject.set(t),this.projectSearch.set(t),this.selectedAgent.set(""),this.agentSearch.set(""),this.agents.set([]),this.branches.set([]),this.selectedBranch.set(""),this.branchSearch.set(""),this.hasGit.set(!1),this.mode.set("local"),this.isLoadingAgents.set(!0),this.agentApi.getAgents(t).subscribe({next:e=>{this.agents.set(e),this.isLoadingAgents.set(!1)},error:()=>{this.isLoadingAgents.set(!1)}}),this.projectApi.getGitBranches(t).subscribe({next:({branches:e})=>{this.hasGit.set(e.length>0)},error:()=>{this.hasGit.set(!1)}})}onAgentSearchInput(t){this.agentSearch.set(t),this.selectedAgent()&&t!==this.selectedAgent()&&this.selectedAgent.set("")}selectAgent(t){this.selectedAgent.set(t),this.agentSearch.set(t)}onBranchSearchInput(t){this.branchSearch.set(t),this.selectedBranch()&&t!==this.selectedBranch()&&this.selectedBranch.set("")}selectBranch(t){this.selectedBranch.set(t),this.branchSearch.set(t)}ngOnInit(){this.projectApi.listProjects().subscribe({next:({projects:t})=>{let e=t.map(n=>n.name);this.projects.set(e),e.length===1&&e[0]&&this.selectProject(e[0])}})}onProjectChange(t){this.selectProject(t)}onModeChange(t){this.mode.set(t),t==="worktree"&&this.selectedProject()&&this.branches().length===0&&this.loadBranches()}loadBranches(){this.isLoadingBranches.set(!0),this.projectApi.getGitBranches(this.selectedProject()).subscribe({next:({branches:t})=>{this.branches.set(t),this.isLoadingBranches.set(!1)},error:()=>{this.isLoadingBranches.set(!1)}})}submit(){if(!this.isSubmitting()){if(this.isValid()){this.isSubmitting.set(!0);let t=this.isWorktree()&&this.issueNumber().trim()?`${this.issueNumber().trim()} ${this.task().trim()}`:this.task().trim();this.projectApi.createTask(this.selectedProject(),this.selectedAgent(),t,this.isWorktree()?"worktree":"local",this.isWorktree()?this.selectedBranch():void 0,this.isWorktree()?this.issueNumber().trim():void 0,this.isWorktree()?this.branchType():void 0).subscribe({next:({threadId:e,projectId:n})=>{this.dialogRef.close({threadId:e,projectId:n})},error:()=>{this.isSubmitting.set(!1)}});return}if(this.canNavigate()){this.dialogRef.close({projectId:this.selectedProject(),navigate:!0});return}}}cancel(){this.dialogRef.close(null)}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=N({type:r,selectors:[["app-new-task-dialog"]],decls:37,vars:12,consts:[["projectTrigger","matAutocompleteTrigger"],["projectAuto",""],["agentTrigger","matAutocompleteTrigger"],["agentAuto",""],["branchTrigger","matAutocompleteTrigger"],["branchAuto",""],["mat-dialog-title",""],[1,"ntd-content"],["appearance","outline",1,"ntd-field"],["matInput","","placeholder","Search project...",3,"input","focus","value","matAutocomplete"],[3,"optionSelected"],[3,"value"],["matInput","","placeholder","Search agent...",3,"input","focus","value","matAutocomplete","disabled"],["matSuffix","","diameter","16"],["matInput","","placeholder","Describe what the agent should accomplish...","rows","4",3,"input","value"],["align","end"],["mat-button","",3,"click","disabled"],["mat-flat-button","",1,"ntd-launch-btn",3,"click","disabled"],["diameter","16"],[1,"ntd-agent-name"],[1,"ntd-agent-desc"],[1,"ntd-radio-group"],["type","button",1,"ntd-mode-btn",3,"click"],[1,"ntd-radio-label"],[1,"ntd-radio-hint"],[1,"ntd-row"],["matInput","","type","text","placeholder","Name",3,"input","value"],["appearance","outline",1,"ntd-field","ntd-field--small"],[3,"selectionChange","value"],["matInput","","placeholder","Search branch...",3,"input","focus","value","matAutocomplete","disabled"]],template:function(e,n){if(e&1){let i=x();o(0,"h2",6)(1,"mat-icon"),l(2,"rocket_launch"),s(),l(3,` New Task
2
+ `),s(),o(4,"mat-dialog-content",7)(5,"mat-form-field",8)(6,"mat-label"),l(7,"Project"),s(),o(8,"input",9,0),u("input",function(d){return n.onProjectSearchInput(d.target.value)})("focus",function(){m(i);let d=S(9);return g(n.openPanel(d))}),s(),o(10,"mat-autocomplete",10,1),u("optionSelected",function(d){return n.selectProject(d.option.value)}),w(12,ct,2,2,"mat-option",11,I),s()(),o(14,"mat-form-field",8)(15,"mat-label"),l(16,"Agent"),s(),o(17,"input",12,2),u("input",function(d){return n.onAgentSearchInput(d.target.value)})("focus",function(){m(i);let d=S(18);return g(n.openPanel(d))}),s(),C(19,dt,1,0,"mat-spinner",13),o(20,"mat-autocomplete",10,3),u("optionSelected",function(d){return n.selectAgent(d.option.value)}),w(22,mt,4,3,"mat-option",11,lt),s()(),C(24,bt,17,6),o(25,"mat-form-field",8)(26,"mat-label"),l(27,"Task"),s(),o(28,"textarea",14),u("input",function(d){return n.task.set(d.target.value)}),s()()(),o(29,"mat-dialog-actions",15)(30,"button",16),u("click",function(){return n.cancel()}),l(31,"Cancel"),s(),o(32,"button",17),u("click",function(){return n.submit()}),C(33,vt,1,0,"mat-spinner",18)(34,Ct,2,0,"mat-icon")(35,kt,2,0,"mat-icon"),l(36),s()()}if(e&2){let i=S(11),a=S(21);c(8),f("value",n.projectSearch())("matAutocomplete",i),c(4),T(n.filteredProjects()),c(5),f("value",n.agentSearch())("matAutocomplete",a)("disabled",!n.selectedProject()||n.isLoadingAgents()),c(2),k(n.isLoadingAgents()?19:-1),c(3),T(n.filteredAgents()),c(2),k(n.hasGit()&&!n.forcedProject()?24:-1),c(4),f("value",n.task()),c(2),f("disabled",n.isSubmitting()),c(2),f("disabled",!n.canNavigate()||n.isSubmitting()),c(),k(n.isSubmitting()?33:n.isValid()?34:35),c(3),j(" ",n.isValid()?"Launch":"Open"," ")}},dependencies:[Ee,he,ge,_e,ue,G,R,W,z,Oe,B,H,U,Be,qe,Le,$e,We,ze,$,q,L,F],styles:["h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin-bottom:0}.ntd-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;padding-top:20px!important}.ntd-field[_ngcontent-%COMP%]{width:100%}.ntd-row[_ngcontent-%COMP%]{display:flex;gap:.75rem}.ntd-row[_ngcontent-%COMP%] .ntd-field--small[_ngcontent-%COMP%]{width:130px;flex-shrink:0}.ntd-radio-group[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding:.25rem 0 .75rem}.ntd-mode-btn[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.75rem;border:1px solid var(--color-border);border-radius:8px;background:transparent;color:var(--color-text);cursor:pointer;transition:border-color .15s,background .15s}.ntd-mode-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem;margin-bottom:.1rem}.ntd-mode-btn.active[_ngcontent-%COMP%]{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.ntd-mode-btn[_ngcontent-%COMP%]:hover:not(.active){border-color:var(--color-text-secondary)}.ntd-radio-label[_ngcontent-%COMP%]{font-weight:600;font-size:.9rem}.ntd-radio-hint[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);line-height:1.3;text-align:left}.ntd-agent-name[_ngcontent-%COMP%]{font-weight:500;display:block}.ntd-agent-desc[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px}.ntd-launch-btn[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse)}.ntd-launch-btn[_ngcontent-%COMP%]:disabled{background:var(--color-border);color:var(--color-text-secondary);opacity:.6;cursor:not-allowed}"]})};var X=class r{http=h(le);threadApi=h(ve);isLoading=_(!1);tasks=_([]);refresh(){this.isLoading.set(!0),this.threadApi.listAllThreads().pipe(te(15e3)).subscribe({next:t=>{let e=t.filter(n=>!n.parentThreadId).map(n=>({id:n.id,name:n.name,summary:n.summary,modifiedDate:n.modifiedDate,starring:n.starring??[],users:n.users??[],isActive:!1,status:this.deriveStatus(n),projectId:n.projectId,worktreeProject:n.worktreeProject}));this.tasks.set(this.sorted(e)),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1)}})}applyStatusEvent(t,e){let n=e==="invite"?"waiting-you":"in-progress";this.tasks.update(i=>this.sorted(i.map(a=>a.id===t?D(O({},a),{status:n}):a)))}closeTask(t,e){this.tasks.update(n=>n.filter(i=>i.id!==e)),this.http.delete(`/api/projects/${t}/missions/${e}`).subscribe({next:()=>this.refresh(),error:n=>{console.error("[GLOBAL-TC] Failed to close task:",n),this.refresh()}})}stopThread(t,e){this.http.post(`/api/projects/${t}/threads/${e}/stop`,{}).subscribe({error:n=>console.error("[GLOBAL-TC] Failed to stop thread:",n)})}deleteThread(t,e){this.tasks.update(n=>n.filter(i=>i.id!==e)),this.http.delete(`/api/projects/${t}/threads/${e}`).subscribe({next:()=>this.refresh(),error:n=>{console.error("[GLOBAL-TC] Failed to delete thread:",n),this.refresh()}})}toggleStar(t,e,n){let i=`/api/projects/${t}/threads/${e}/star`;(n?this.http.delete(i):this.http.post(i,{})).subscribe({next:()=>this.refresh(),error:d=>console.error("[GLOBAL-TC] Failed to toggle star:",d)})}markTaskDone(t,e){this.http.post(`/api/projects/${t}/threads/${e}/done`,{}).subscribe({next:()=>this.refresh(),error:n=>console.error("[GLOBAL-TC] Failed to mark task as done:",n)})}markTaskActive(t,e){this.http.delete(`/api/projects/${t}/threads/${e}/done`).subscribe({next:()=>this.refresh(),error:n=>console.error("[GLOBAL-TC] Failed to mark task as active:",n)})}deriveStatus(t){return t.closedByUser?"done":t.pendingInvite?"waiting-you":Date.now()-new Date(t.modifiedDate).getTime()<Ke?"in-progress":"paused"}sorted(t){return[...t].sort((e,n)=>{let i=Z[e.status]-Z[n.status];return i!==0?i:e.modifiedDate>n.modifiedDate?-1:1})}static \u0275fac=function(e){return new(e||r)};static \u0275prov=E({token:r,factory:r.\u0275fac,providedIn:"root"})};var J=class r{configApi=h(Ye);dialog=h(A);openUserConfigEditor(){this.configApi.getUserConfig().subscribe({next:t=>{this.dialog.open(Ze,{data:{configType:"user",initialContent:JSON.stringify(t,null,2)}}).afterClosed().subscribe(n=>{n&&this.configApi.updateUserConfig(n).subscribe({error:i=>console.error("[CONFIG-STATE] Error saving user config:",i)})})},error:t=>console.error("[CONFIG-STATE] Error loading user config:",t)})}static \u0275fac=function(e){return new(e||r)};static \u0275prov=E({token:r,factory:r.\u0275fac,providedIn:"root"})};var xt=["layoutContainer"],wt=(r,t)=>t.key,Tt=(r,t)=>t.name,yt=(r,t)=>t.status,tt=(r,t)=>t.id;function St(r,t){if(r&1){let e=x();o(0,"button",30),u("click",function(){m(e);let i=p();return g(i.clearSearch())}),o(1,"mat-icon"),l(2,"close"),s()()}}function Mt(r,t){if(r&1){let e=x();o(0,"button",31),u("click",function(){let i=m(e).$implicit,a=p(2);return g(a.setProject(i.name))}),l(1),o(2,"span",32),l(3),s()()}if(r&2){let e=t.$implicit,n=p(2);y("active",n.activeProject()===e.name),c(),j(" ",e.name," "),c(2),b(e.count)}}function Pt(r,t){if(r&1){let e=x();o(0,"nav",20)(1,"button",31),u("click",function(){m(e);let i=p();return g(i.setProject(null))}),l(2," All projects "),o(3,"span",32),l(4),s()(),w(5,Mt,4,4,"button",33,Tt),s()}if(r&2){let e=p();c(),y("active",e.activeProject()===null),c(3),b(e.allTasks().length),c(),T(e.projectSummaries())}}function jt(r,t){if(r&1&&(o(0,"span",35),l(1),s()),r&2){let e=p().$implicit,n=p();c(),b(n.filterCounts()[e.key])}}function Ot(r,t){if(r&1){let e=x();o(0,"button",34),u("click",function(){let i=m(e).$implicit,a=p();return g(a.setFilter(i.key))}),o(1,"mat-icon",24),l(2),s(),o(3,"span"),l(4),s(),C(5,jt,2,1,"span",35),s()}if(r&2){let e=t.$implicit,n=p();y("active",n.activeFilter()===e.key),Y("aria-selected",n.activeFilter()===e.key),c(2),b(e.icon),c(2),b(e.label),c(),k(n.filterCounts()[e.key]>0?5:-1)}}function Dt(r,t){r&1&&(o(0,"div",27),M(1,"mat-spinner",36),o(2,"p"),l(3,"Loading tasks from all projects\u2026"),s()())}function Et(r,t){r&1&&(o(0,"div",28)(1,"mat-icon",37),l(2,"hub"),s(),o(3,"p"),l(4,"No tasks found."),s()())}function Nt(r,t){if(r&1){let e=x();o(0,"app-task-card",43),u("stopRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onStopRequested(i,a.projectId))})("deleteRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onDeleteRequested(i,a.projectId))})("starToggled",function(i){let a=m(e).$implicit,d=p(3);return g(d.onStarToggled(i,a.projectId))})("closeTaskRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onCloseTaskRequested(i,a.projectId))})("markDoneRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onMarkDoneRequested(i,a.projectId))})("markActiveRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onMarkActiveRequested(i,a.projectId))})("previewRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onPreviewRequested(i,a.projectId,a.name))}),s()}if(r&2){let e=t.$implicit,n=p(3);y("is-previewed",n.previewThreadId()===e.id),f("task",e)("projectNameOverride",e.projectId)("showProject",!0)("previewMode",n.previewActive())}}function It(r,t){if(r&1&&(o(0,"section",38)(1,"h3",39)(2,"mat-icon",40),l(3),s(),l(4),o(5,"span",41),l(6),s()(),o(7,"div",29),w(8,Nt,1,6,"app-task-card",42,tt),s()()),r&2){let e=t.$implicit;c(3),b(e.icon),c(),j(" ",e.label," "),c(2),b(e.tasks.length),c(2),T(e.tasks)}}function At(r,t){if(r&1&&w(0,It,10,3,"section",38,yt),r&2){let e=p();T(e.taskGroups())}}function Rt(r,t){if(r&1){let e=x();o(0,"app-task-card",43),u("stopRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onStopRequested(i,a.projectId))})("deleteRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onDeleteRequested(i,a.projectId))})("starToggled",function(i){let a=m(e).$implicit,d=p(2);return g(d.onStarToggled(i,a.projectId))})("closeTaskRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onCloseTaskRequested(i,a.projectId))})("markDoneRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onMarkDoneRequested(i,a.projectId))})("markActiveRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onMarkActiveRequested(i,a.projectId))})("previewRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onPreviewRequested(i,a.projectId,a.name))}),s()}if(r&2){let e=t.$implicit,n=p(2);y("is-previewed",n.previewThreadId()===e.id),f("task",e)("projectNameOverride",e.projectId)("showProject",!0)("previewMode",n.previewActive())}}function Gt(r,t){if(r&1&&(o(0,"div",29),w(1,Rt,1,6,"app-task-card",42,tt),s()),r&2){let e=p();c(),T(e.displayedTasks())}}function Vt(r,t){if(r&1){let e=x();o(0,"div",44),u("mousedown",function(i){m(e);let a=p();return g(a.onResizerMousedown(i))}),s(),o(1,"div",45)(2,"header",46)(3,"span",47),l(4),s(),o(5,"div",48)(6,"button",49),u("click",function(){m(e);let i=p();return g(i.navigateToThread())}),o(7,"mat-icon"),l(8,"open_in_new"),s()(),o(9,"button",50),u("click",function(){m(e);let i=p();return g(i.closePreview())}),o(10,"mat-icon"),l(11,"close"),s()()()(),o(12,"div",51),M(13,"app-thread",52),s()()}if(r&2){let e=p();c(),se("width",e.previewPanelWidthPercent(),"%"),c(3),b(e.previewTaskName()||"Task"),c(9),f("projectName",e.previewProjectId())("threadId",e.previewThreadId())}}var Ft=20,Lt=70,qt=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{status:"in-progress",label:"In progress",icon:"pending"},{status:"paused",label:"Paused",icon:"pause_circle"},{status:"error",label:"Error",icon:"error"},{status:"done",label:"Done",icon:"check_circle"}],$t=[{key:"all",label:"All",icon:"grid_view"},{key:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{key:"in-progress",label:"In progress",icon:"pending"},{key:"paused",label:"Paused",icon:"pause_circle"},{key:"done",label:"Done",icon:"check_circle"}],et=class r{globalTaskService=h(X);destroyRef=h(ie);dialog=h(A);router=h(ce);configState=h(J);userService=h(ke);preferences=h(Qe);projectState=h(V);threadState=h(Ce);breakpointObserver=h(pe);username=P(this.userService.username$,{initialValue:null});isDesktop=P(this.breakpointObserver.observe("(min-width: 1280px)").pipe(ne(t=>t.matches)),{initialValue:!1});previewEnabled=P(this.preferences.missionPreviewEnabled$,{initialValue:!1});previewActive=v(()=>this.previewEnabled()&&this.isDesktop());previewThreadId=_(null);previewProjectId=_(null);previewTaskName=_(null);previewPanelWidthPercent=_(this.preferences.getMissionPreviewPanelWidth());isDraggingResizer=!1;dragStartX=0;dragStartWidth=0;containerWidth=0;layoutContainerRef;globalEventSource=null;filters=$t;activeFilter=_("all");starredOnly=_(!1);activeProject=_(null);searchQuery=_("");isLoading=this.globalTaskService.isLoading;allTasks=this.globalTaskService.tasks;projectSummaries=v(()=>{let t=this.allTasks(),e=new Map;for(let n of t)e.set(n.projectId,(e.get(n.projectId)??0)+1);return[...e.entries()].map(([n,i])=>({name:n,count:i})).sort((n,i)=>n.name.localeCompare(i.name))});filteredTasks=v(()=>{let t=this.allTasks(),e=this.activeProject();e&&(t=t.filter(a=>a.projectId===e));let n=this.username();this.starredOnly()&&n&&(t=t.filter(a=>a.starring.includes(n)));let i=this.activeFilter();return i!=="all"&&(t=t.filter(a=>a.status===i)),t});filterCounts=v(()=>{let t=this.allTasks(),e=this.activeProject();e&&(t=t.filter(i=>i.projectId===e));let n=this.username();return this.starredOnly()&&n&&(t=t.filter(i=>i.starring.includes(n))),{all:t.length,"waiting-you":t.filter(i=>i.status==="waiting-you").length,"in-progress":t.filter(i=>i.status==="in-progress").length,done:t.filter(i=>i.status==="done").length,paused:t.filter(i=>i.status==="paused").length,error:t.filter(i=>i.status==="error").length}});displayedTasks=v(()=>{let t=this.searchQuery().toLowerCase().trim(),e=this.sortedFilteredTasks();return t?e.filter(n=>(n.name||"").toLowerCase().includes(t)||(n.summary||"").toLowerCase().includes(t)):e});taskGroups=v(()=>{let t=this.displayedTasks();return qt.map(e=>D(O({},e),{tasks:t.filter(n=>n.status===e.status)})).filter(e=>e.tasks.length>0)});sortedFilteredTasks=v(()=>{let t=this.filteredTasks(),e={"waiting-you":0,"in-progress":1,paused:2,error:3,done:4};return[...t].sort((n,i)=>(e[n.status]??99)-(e[i.status]??99))});constructor(){this.destroyRef.onDestroy(()=>this.disconnectGlobalSse())}ngOnInit(){this.globalTaskService.refresh(),this.connectGlobalSse(),this.userService.fetchCurrentUser().pipe(Ne(this.destroyRef)).subscribe({error:t=>console.warn("[GTC] Could not fetch user:",t)})}setFilter(t){this.activeFilter.set(t)}toggleStarredFilter(){this.starredOnly.update(t=>!t)}setProject(t){this.activeProject.set(t),this.activeFilter.set("all")}onSearchInput(t){this.searchQuery.set(t.target.value)}clearSearch(){this.searchQuery.set("")}refresh(){this.globalTaskService.refresh()}openPreferences(){this.dialog.open(Xe,{width:"400px"})}openTokenUsage(){this.router.navigate(["/token-usage"])}openUserConfig(){this.configState.openUserConfigEditor()}openNewTaskDialog(){this.dialog.open(Q,{width:"500px",disableClose:!1}).afterClosed().subscribe(e=>{e&&(e.navigate?this.router.navigate(["project",e.projectId]):(setTimeout(()=>this.globalTaskService.refresh(),300),setTimeout(()=>this.globalTaskService.refresh(),1500)))})}onStopRequested(t,e){this.globalTaskService.stopThread(e,t)}onDeleteRequested(t,e){this.globalTaskService.deleteThread(e,t)}onStarToggled(t,e){let n=this.allTasks().find(d=>d.id===t);if(!n)return;let i=this.username(),a=!!i&&n.starring.includes(i);this.globalTaskService.toggleStar(e,t,a)}onCloseTaskRequested(t,e){let i=this.allTasks().find(d=>d.id===t)?.worktreeProject??e;this.dialog.open(He,{width:"420px",data:{title:"Close task",message:`This will stop the agent, delete the thread and remove the worktree project "${i}" from disk. This cannot be undone.`,confirmLabel:"Close task",cancelLabel:"Cancel"}}).afterClosed().subscribe(d=>{d&&this.globalTaskService.closeTask(e,t)})}onMarkDoneRequested(t,e){this.globalTaskService.markTaskDone(e,t)}onMarkActiveRequested(t,e){this.globalTaskService.markTaskActive(e,t)}onPreviewRequested(t,e,n){this.previewThreadId()===t?(this.previewThreadId.set(null),this.previewProjectId.set(null),this.previewTaskName.set(null)):(this.projectState.selectProject(e),this.threadState.selectThread(t),this.previewProjectId.set(e),this.previewThreadId.set(t),this.previewTaskName.set(n))}closePreview(){this.previewThreadId.set(null),this.previewProjectId.set(null),this.previewTaskName.set(null)}navigateToThread(){let t=this.previewThreadId(),e=this.previewProjectId();!t||!e||this.router.navigate(["project",e,"thread",t])}onResizerMousedown(t){t.preventDefault(),this.isDraggingResizer=!0,this.dragStartX=t.clientX,this.dragStartWidth=this.previewPanelWidthPercent(),this.containerWidth=this.layoutContainerRef?.nativeElement.offsetWidth??window.innerWidth}onDocumentMousemove(t){if(!this.isDraggingResizer)return;let n=(this.dragStartX-t.clientX)/this.containerWidth*100,i=Math.min(Lt,Math.max(Ft,this.dragStartWidth+n));this.previewPanelWidthPercent.set(i)}onDocumentMouseup(){this.isDraggingResizer&&(this.isDraggingResizer=!1,this.preferences.setMissionPreviewPanelWidth(this.previewPanelWidthPercent()))}connectGlobalSse(t=5e3){this.disconnectGlobalSse();let e=new EventSource("/api/event-stream");this.globalEventSource=e,e.onmessage=n=>{try{let i=JSON.parse(n.data),a=Ve(i);if(!a)return;let d=a.threadId;if(!d)return;a instanceof Ie||a instanceof Ae?this.globalTaskService.applyStatusEvent(d,"invite"):a instanceof Re?this.globalTaskService.applyStatusEvent(d,"thinking"):a instanceof Ge&&this.globalTaskService.refresh()}catch(i){}},e.onerror=()=>{e.readyState===EventSource.CLOSED&&(this.globalEventSource=null,setTimeout(()=>{this.globalEventSource||this.connectGlobalSse(Math.min(t*2,6e4))},t))}}disconnectGlobalSse(){this.globalEventSource&&(this.globalEventSource.close(),this.globalEventSource=null)}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=N({type:r,selectors:[["app-global-task-control"]],viewQuery:function(e,n){if(e&1&&oe(xt,5),e&2){let i;re(i=ae())&&(n.layoutContainerRef=i.first)}},hostBindings:function(e,n){e&1&&u("mousemove",function(a){return n.onDocumentMousemove(a)},K)("mouseup",function(){return n.onDocumentMouseup()},K)},decls:70,vars:10,consts:[["layoutContainer",""],["controlCenterMenu","matMenu"],[1,"gtc"],[1,"gtc-toolbar"],[1,"gtc-toolbar-left"],[1,"gtc-logo-icon"],[1,"gtc-title"],["appearance","fill","subscriptSizing","dynamic",1,"gtc-search"],["matPrefix",""],["matInput","","type","search","placeholder","Filter tasks\u2026","autocomplete","off",3,"input","keydown.escape","value"],["matSuffix","","mat-icon-button","","aria-label","Clear"],[1,"gtc-toolbar-actions"],["mat-icon-button","","matTooltip","Control Center","aria-label","Control Center",3,"matMenuTriggerFor"],["mat-menu-item","",3,"click"],["mat-menu-item","","href","https://github.com/whoz-oss/coday","target","_blank","rel","noopener noreferrer"],["mat-icon-button","","matTooltip","Refresh all tasks","aria-label","Refresh tasks",3,"click","disabled"],["mat-stroked-button","","routerLink","/projects","aria-label","Manage projects","matTooltip","Manage projects"],[1,"btn-label"],["mat-flat-button","","aria-label","New task","matTooltip","New Task",1,"gtc-new-btn",3,"click"],[1,"gtc-filter-bar"],["aria-label","Filter by project",1,"gtc-project-filters"],["role","tablist","aria-label","Filter by status",1,"gtc-filters"],["role","tab",1,"filter-chip",3,"active"],["role","switch","aria-label","Show starred tasks only",1,"filter-chip","starred-filter",3,"click"],[1,"filter-icon"],[1,"gtc-body"],[1,"gtc-content"],[1,"gtc-loading"],[1,"gtc-empty"],[1,"gtc-grid"],["matSuffix","","mat-icon-button","","aria-label","Clear",3,"click"],[1,"project-chip",3,"click"],[1,"chip-count"],[1,"project-chip",3,"active"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","36"],[1,"empty-icon"],[1,"gtc-group"],[1,"gtc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task","projectNameOverride","showProject","previewMode","is-previewed"],[3,"stopRequested","deleteRequested","starToggled","closeTaskRequested","markDoneRequested","markActiveRequested","previewRequested","task","projectNameOverride","showProject","previewMode"],["matTooltip","Drag to resize","aria-hidden","true",1,"gtc-resizer",3,"mousedown"],[1,"gtc-preview-pane"],[1,"gtc-preview-header"],[1,"gtc-preview-title"],[1,"gtc-preview-actions"],["matTooltip","Open full view","aria-label","Open thread in full view","type","button",1,"preview-action-btn",3,"click"],["matTooltip","Close panel","aria-label","Close preview panel","type","button",1,"preview-action-btn",3,"click"],[1,"gtc-preview-body","thread-preview-host"],[3,"projectName","threadId"]],template:function(e,n){if(e&1&&(o(0,"div",2,0)(2,"header",3)(3,"div",4)(4,"mat-icon",5),l(5,"hub"),s(),o(6,"h1",6),l(7,"Global Task Control"),s()(),o(8,"mat-form-field",7)(9,"mat-icon",8),l(10,"search"),s(),o(11,"input",9),u("input",function(a){return n.onSearchInput(a)})("keydown.escape",function(){return n.clearSearch()}),s(),C(12,St,3,0,"button",10),s(),o(13,"div",11)(14,"button",12)(15,"mat-icon"),l(16,"hub"),s()(),o(17,"mat-menu",null,1)(19,"button",13),u("click",function(){return n.openPreferences()}),o(20,"mat-icon"),l(21,"tune"),s(),o(22,"span"),l(23,"Preferences"),s()(),o(24,"button",13),u("click",function(){return n.openTokenUsage()}),o(25,"mat-icon"),l(26,"data_usage"),s(),o(27,"span"),l(28,"Token Usage"),s()(),o(29,"button",13),u("click",function(){return n.openUserConfig()}),o(30,"mat-icon"),l(31,"manage_accounts"),s(),o(32,"span"),l(33,"User Configuration"),s()(),M(34,"mat-divider"),o(35,"a",14)(36,"mat-icon"),l(37,"code"),s(),o(38,"span"),l(39,"Contribute on GitHub"),s()()(),o(40,"button",15),u("click",function(){return n.refresh()}),o(41,"mat-icon"),l(42,"refresh"),s()(),o(43,"button",16)(44,"mat-icon"),l(45,"settings"),s(),o(46,"span",17),l(47,"Manage projects"),s()(),o(48,"button",18),u("click",function(){return n.openNewTaskDialog()}),o(49,"mat-icon"),l(50,"rocket_launch"),s(),o(51,"span",17),l(52,"New Task"),s()()()(),o(53,"div",19),C(54,Pt,7,3,"nav",20),o(55,"nav",21),w(56,Ot,6,6,"button",22,wt),o(58,"button",23),u("click",function(){return n.toggleStarredFilter()}),o(59,"mat-icon",24),l(60,"star"),s(),o(61,"span"),l(62,"Starred"),s()()()(),o(63,"div",25)(64,"main",26),C(65,Dt,4,0,"div",27)(66,Et,5,0,"div",28)(67,At,2,0)(68,Gt,3,0,"div",29),s(),C(69,Vt,14,5),s()()),e&2){let i=S(18);c(11),f("value",n.searchQuery()),c(),k(n.searchQuery()?12:-1),c(2),f("matMenuTriggerFor",i),c(26),f("disabled",n.isLoading()),c(14),k(n.projectSummaries().length>1?54:-1),c(2),T(n.filters),c(2),y("active",n.starredOnly()),Y("aria-checked",n.starredOnly()),c(7),k(n.isLoading()?65:n.displayedTasks().length===0?66:n.activeFilter()==="all"&&!n.searchQuery()?67:68),c(4),k(n.previewActive()&&n.previewThreadId()&&n.previewProjectId()?69:-1)}},dependencies:[Fe,Je,L,F,G,R,fe,we,xe,$,q,Me,ye,Te,Se,je,Pe,W,z,De,B,H,U,de],styles:[".glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block;width:100%;height:100%;overflow:hidden}.gtc[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}.gtc-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:0 .75rem;height:56px;flex-shrink:0;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));box-sizing:border-box}.gtc-toolbar-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.gtc-logo-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem;color:var(--color-primary)}.gtc-title[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:600;color:var(--color-text);white-space:nowrap}.gtc-search[_ngcontent-%COMP%]{margin-left:auto;flex:0 1 240px;min-width:80px;--mat-form-field-container-height: 36px;--mat-form-field-container-vertical-padding: 6px;font-size:.875rem;--mdc-filled-text-field-container-color: transparent;--mdc-filled-text-field-hover-container-color: transparent;--mdc-filled-text-field-focus-container-color: transparent;--mdc-filled-text-field-active-indicator-color: transparent;--mdc-filled-text-field-hover-active-indicator-color: transparent;--mdc-filled-text-field-focus-active-indicator-color: transparent;--mdc-filled-text-field-active-indicator-height: 0}.gtc-toolbar-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.gtc-new-btn[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;height:36px;padding:0 1rem}.gtc-new-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}@media(max-width:600px){.gtc-toolbar[_ngcontent-%COMP%]{flex-wrap:wrap;height:auto;min-height:48px;padding:.5rem .75rem;gap:.375rem}.gtc-title[_ngcontent-%COMP%]{font-size:.875rem}.gtc-search[_ngcontent-%COMP%]{order:3;flex:1 1 100%;min-width:0;margin-left:0}.gtc-toolbar-actions[_ngcontent-%COMP%]{margin-left:auto}.btn-label[_ngcontent-%COMP%]{display:none}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]){--mdc-text-button-container-height: 36px;--mdc-filled-button-container-height: 36px;--mdc-outlined-button-container-height: 36px;min-width:36px;width:36px;height:36px;padding:0;border-radius:50%!important}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]) .mat-mdc-button-touch-target[_ngcontent-%COMP%]{width:36px;height:36px}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]) mat-icon[_ngcontent-%COMP%]{margin:0!important}}.gtc-filter-bar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem;padding:.5rem .75rem;flex-shrink:0;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.gtc-project-filters[_ngcontent-%COMP%]{display:flex;gap:.375rem;flex-wrap:wrap}.project-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .65rem;border-radius:100px;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.project-chip[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .3rem;font-size:.68rem;font-weight:700;min-width:16px;text-align:center;line-height:16px}.project-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.project-chip.active[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:#ffffff40;color:var(--color-text-inverse)}.project-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.gtc-filters[_ngcontent-%COMP%]{display:flex;gap:.375rem;flex-wrap:wrap}.filter-chip[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);display:flex;align-items:center;gap:.375rem;padding:.3rem .75rem;border-radius:100px;font-size:.8rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border:1px solid var(--color-border);transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.filter-chip[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{font-size:.9rem;width:.9rem;height:.9rem}.filter-chip[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.filter-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.filter-chip.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:var(--color-text-inverse)}.filter-chip.active[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:#ffffff40;color:var(--color-text-inverse)}.filter-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.starred-filter.active[_ngcontent-%COMP%]{background:#f5a62326;border-color:#f5a623;color:#f5a623}.starred-filter.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:#f5a623}.gtc-body[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex:1;overflow:hidden;min-height:0}.gtc-content[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:1rem 1rem 2rem;min-width:0}.gtc-resizer[_ngcontent-%COMP%]{width:6px;flex-shrink:0;cursor:col-resize;background:transparent;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);transition:background .15s ease}.gtc-resizer[_ngcontent-%COMP%]:hover, .gtc-resizer[_ngcontent-%COMP%]:active{background:var(--color-primary);opacity:.4}.gtc-preview-pane[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;flex-shrink:0;min-width:280px;border-left:1px solid var(--color-border);background:var(--glass-bg)}.gtc-preview-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.625rem .75rem .625rem 1rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.gtc-preview-title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.gtc-preview-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;flex-shrink:0}.preview-action-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;cursor:pointer;transition:background .15s ease}.preview-action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:18px;vertical-align:middle;color:var(--color-text-secondary)}.preview-action-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.preview-action-btn[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{color:var(--color-text)}.gtc-preview-body[_ngcontent-%COMP%]{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.gtc-preview-body[_ngcontent-%COMP%] app-thread[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0} app-task-card.is-previewed .task-card{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.gtc-group[_ngcontent-%COMP%]{margin-bottom:1.25rem}.gtc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.gtc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.gtc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:.95rem;width:.95rem;height:.95rem}.gtc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:16px;text-align:center;line-height:16px}.gtc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}@media(max-width:600px){.gtc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.gtc-loading[_ngcontent-%COMP%], .gtc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;color:var(--color-text-secondary);text-align:center}.gtc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .gtc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.9rem}.empty-icon[_ngcontent-%COMP%]{font-size:2.5rem;width:2.5rem;height:2.5rem;opacity:.3}"],changeDetection:0})};export{et as GlobalTaskControlComponent};
@@ -0,0 +1 @@
1
+ import{d as S}from"./chunk-LTFITYTW.js";import{a as N,b as I}from"./chunk-JRNOMFVU.js";import{a as E,b as q}from"./chunk-MMKBNIVO.js";import{b as D}from"./chunk-G4QDBE4F.js";import{O as j,S as R}from"./chunk-24VYLV4I.js";import{Bb as C,Db as m,Fb as u,Ka as c,Rb as y,Sb as O,Tb as l,Ub as k,Vb as T,Wa as x,ca as h,ga as b,ha as _,jb as M,kc as v,lb as d,mb as p,nc as g,oc as f,rb as w,sb as n,tb as s,ub as P}from"./chunk-RNXBUYHW.js";function z(o,e){o&1&&(n(0,"mat-icon",1),l(1,"star"),s())}function A(o,e){o&1&&P(0,"span",5)}function L(o,e){if(o&1&&(n(0,"div",6)(1,"mat-icon",20),l(2,"folder"),s(),n(3,"span"),l(4),s()()),o&2){let a=u();c(4),k(a.projectName())}}function Y(o,e){if(o&1&&(n(0,"p",8),l(1),s()),o&2){let a=u();c(),k(a.task().summary)}}function W(o,e){o&1&&(n(0,"p",9),l(1,"No summary yet"),s())}function U(o,e){if(o&1){let a=C();n(0,"button",21),m("click",function(i){b(a);let r=u();return _(r.onOpenDirect(i))}),n(1,"mat-icon"),l(2,"open_in_new"),s()()}}function B(o,e){if(o&1){let a=C();n(0,"button",22),m("click",function(i){b(a);let r=u();return _(r.onStop(i))}),n(1,"mat-icon"),l(2,"stop_circle"),s()()}}function $(o,e){if(o&1){let a=C();n(0,"button",23),m("click",function(i){b(a);let r=u();return _(r.onMarkDone(i))}),n(1,"mat-icon"),l(2,"check_circle_outline"),s()()}}function H(o,e){if(o&1){let a=C();n(0,"button",24),m("click",function(i){b(a);let r=u();return _(r.onMarkActive(i))}),n(1,"mat-icon"),l(2,"replay"),s()()}}function F(o,e){if(o&1){let a=C();n(0,"button",25),m("click",function(i){b(a);let r=u();return _(r.onCloseTask(i))}),n(1,"mat-icon"),l(2,"close_fullscreen"),s()()}}var V=class o{task=f.required();projectNameOverride=f(null);showProject=f(!1);previewMode=f(!1);stopRequested=g();deleteRequested=g();starToggled=g();closeTaskRequested=g();markDoneRequested=g();markActiveRequested=g();previewRequested=g();router=h(S);projectState=h(D);projectName=v(()=>this.projectNameOverride()??this.projectState.getSelectedProjectId());statusLabel=v(()=>G[this.task().status]);statusIcon=v(()=>K[this.task().status]);isWorktree=v(()=>!!this.task().worktreeProject);navigate(){if(this.previewMode()){this.previewRequested.emit(this.task().id);return}let e=this.projectName();e&&(this.projectState.selectProject(e),this.router.navigate(["project",e,"thread",this.task().id]))}onStop(e){e.stopPropagation(),this.stopRequested.emit(this.task().id)}onDelete(e){e.stopPropagation(),this.deleteRequested.emit(this.task().id)}onStarToggle(e){e.stopPropagation(),this.starToggled.emit(this.task().id)}onCloseTask(e){e.stopPropagation(),this.closeTaskRequested.emit(this.task().id)}onMarkDone(e){e.stopPropagation(),this.markDoneRequested.emit(this.task().id)}onMarkActive(e){e.stopPropagation(),this.markActiveRequested.emit(this.task().id)}onOpenDirect(e){e.stopPropagation();let a=this.projectName();a&&(this.projectState.selectProject(a),this.router.navigate(["project",a,"thread",this.task().id]))}formatRelativeTime(e){let a=Date.now()-new Date(e).getTime(),t=Math.floor(a/6e4);if(t<1)return"just now";if(t<60)return`${t} min ago`;let i=Math.floor(t/60);if(i<24)return`${i}h ago`;let r=Math.floor(i/24);return r===1?"yesterday":r<7?`${r} days ago`:new Date(e).toLocaleDateString("en",{day:"numeric",month:"short"})}static \u0275fac=function(a){return new(a||o)};static \u0275cmp=x({type:o,selectors:[["app-task-card"]],inputs:{task:[1,"task"],projectNameOverride:[1,"projectNameOverride"],showProject:[1,"showProject"],previewMode:[1,"previewMode"]},outputs:{stopRequested:"stopRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",closeTaskRequested:"closeTaskRequested",markDoneRequested:"markDoneRequested",markActiveRequested:"markActiveRequested",previewRequested:"previewRequested"},decls:28,vars:22,consts:[["role","button","tabindex","0",1,"task-card",3,"click","keydown.enter","keydown.space"],["aria-label","Starred",1,"starred-indicator"],[1,"status-badge"],[1,"status-icon"],[1,"status-label"],["aria-hidden","true",1,"pulse-ring"],[1,"task-project"],[1,"task-name"],[1,"task-summary"],[1,"task-summary","empty"],[1,"task-footer"],[1,"task-time"],[1,"task-actions"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn"],["mat-icon-button","",1,"action-btn","star-btn",3,"click","matTooltip"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn"],["mat-icon-button","","matTooltip","Delete task","aria-label","Delete task",1,"action-btn","delete-btn",3,"click"],[1,"project-icon"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn",3,"click"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn",3,"click"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn",3,"click"]],template:function(a,t){a&1&&(n(0,"article",0),m("click",function(){return t.navigate()})("keydown.enter",function(){return t.navigate()})("keydown.space",function(r){return t.navigate(),r.preventDefault()}),d(1,z,2,0,"mat-icon",1),n(2,"div",2)(3,"mat-icon",3),l(4),s(),n(5,"span",4),l(6),s(),d(7,A,1,0,"span",5),s(),d(8,L,5,1,"div",6),n(9,"h3",7),l(10),s(),d(11,Y,2,1,"p",8)(12,W,2,0,"p",9),n(13,"footer",10)(14,"span",11),l(15),s(),n(16,"div",12),d(17,U,3,0,"button",13),d(18,B,3,0,"button",14),d(19,$,3,0,"button",15)(20,H,3,0,"button",16),n(21,"button",17),m("click",function(r){return t.onStarToggle(r)}),n(22,"mat-icon"),l(23),s()(),d(24,F,3,0,"button",18),n(25,"button",19),m("click",function(r){return t.onDelete(r)}),n(26,"mat-icon"),l(27,"delete_outline"),s()()()()()),a&2&&(O("status-"+t.task().status),y("is-active",t.task().isActive),M("aria-label","Open task: "+t.task().name),c(),p(t.task().starring.length>0?1:-1),c(3),k(t.statusIcon()),c(2),k(t.statusLabel()),c(),p(t.task().status==="waiting-you"?7:-1),c(),p(t.showProject()&&t.projectName()?8:-1),c(2),T(" ",t.task().name||"Unnamed task"," "),c(),p(t.task().summary?11:12),c(4),k(t.formatRelativeTime(t.task().modifiedDate)),c(2),p(t.previewMode()?17:-1),c(),p(t.task().status==="in-progress"?18:-1),c(),p(t.task().status!=="done"?19:20),c(2),y("starred",t.task().starring.length>0),w("matTooltip",t.task().starring.length>0?"Unstar":"Star"),M("aria-label",t.task().starring.length>0?"Unstar task":"Star task"),c(2),k(t.task().starring.length>0?"star":"star_border"),c(),p(t.isWorktree()?24:-1))},dependencies:[q,E,R,j,I,N],styles:['.glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block}.task-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;padding:1.25rem;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),border-color .2s ease;outline:none;display:flex;flex-direction:column;gap:.5rem;min-height:160px}.task-card[_ngcontent-%COMP%]:hover, .task-card[_ngcontent-%COMP%]:focus-visible{transform:translateY(-3px);box-shadow:0 16px 48px #00000026}.task-card[_ngcontent-%COMP%]:active{transform:translateY(-1px)}.task-card[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;background:var(--status-color, var(--color-text-secondary))}.task-card.status-waiting-you[_ngcontent-%COMP%]{--status-color: var(--color-error);border-color:#ff3b3040}.task-card.status-in-progress[_ngcontent-%COMP%]{--status-color: var(--color-warning);border-color:#ff950033}.task-card.status-done[_ngcontent-%COMP%]{--status-color: var(--color-success)}.task-card.status-paused[_ngcontent-%COMP%]{--status-color: var(--color-text-secondary)}.task-card.status-error[_ngcontent-%COMP%]{--status-color: var(--color-error)}.task-card.is-active[_ngcontent-%COMP%]{box-shadow:var(--glass-shadow),0 0 0 2px rgba(var(--color-primary),.3)}.starred-indicator[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem;font-size:1rem;width:1rem;height:1rem;color:#f5a623;pointer-events:none}.status-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;position:relative}.status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;color:var(--status-color, var(--color-text-secondary))}.status-in-progress[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin 2s linear infinite}.status-badge[_ngcontent-%COMP%] .status-label[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--status-color, var(--color-text-secondary))}.status-badge[_ngcontent-%COMP%] .pulse-ring[_ngcontent-%COMP%]{position:absolute;left:-2px;top:-2px;width:20px;height:20px;border-radius:50%;border:2px solid var(--color-error);animation:_ngcontent-%COMP%_pulse 1.5s ease-out infinite;pointer-events:none}.task-project[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;color:var(--color-primary);opacity:.8;text-transform:uppercase;letter-spacing:.04em}.task-project[_ngcontent-%COMP%] .project-icon[_ngcontent-%COMP%]{font-size:.75rem;width:.75rem;height:.75rem}.task-name[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-summary[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-summary.empty[_ngcontent-%COMP%]{font-style:italic;opacity:.6}.task-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.25rem}.task-time[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);opacity:.8}.task-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.task-card[_ngcontent-%COMP%]:hover .task-actions[_ngcontent-%COMP%], .task-card[_ngcontent-%COMP%]:focus-within .task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:28px;height:28px;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center}.task-actions[_ngcontent-%COMP%] .stop-btn[_ngcontent-%COMP%]{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .mark-done-btn[_ngcontent-%COMP%]{color:var(--color-success)}.task-actions[_ngcontent-%COMP%] .star-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .star-btn.starred[_ngcontent-%COMP%]{color:#f5a623}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]{color:var(--color-primary)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover)}@media(max-width:600px){.task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:36px;height:36px}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2.2);opacity:0}}'],changeDetection:0})},G={"waiting-you":"Waiting for you","in-progress":"In progress\u2026",done:"Done",paused:"Paused",error:"Error"},K={"waiting-you":"mark_unread_chat_alt","in-progress":"pending",done:"check_circle",paused:"pause_circle",error:"error"};var dt=300*1e3,pt={"waiting-you":0,"in-progress":1,done:2,paused:3,error:4};export{V as a,dt as b,pt as c};
@@ -1 +1 @@
1
- import{a as re,b as ie,c as V}from"./chunk-6BPAEX7H.js";import{a as oe}from"./chunk-4EW3L5UH.js";import{a as Q,b as X,g as ne}from"./chunk-CC5AKB2A.js";import{a as G,b as C,c as B,f as Z,q as ee,v as te}from"./chunk-APQFC6DT.js";import{d as K}from"./chunk-LTFITYTW.js";import"./chunk-JPVNXEXU.js";import"./chunk-JRNOMFVU.js";import{a as _,b as f}from"./chunk-LCBWJP6Z.js";import"./chunk-75DAJTMO.js";import"./chunk-J4KEKL2K.js";import{a as H,b as W}from"./chunk-MMKBNIVO.js";import"./chunk-DLU3TQID.js";import{a as Y,b as M}from"./chunk-G4QDBE4F.js";import{Q as U,S as J}from"./chunk-24VYLV4I.js";import{Bb as S,Db as h,Fb as l,Ka as p,Rb as j,T as L,Tb as c,Ub as k,Vb as z,Wa as N,Z as w,ca as d,ga as u,h as A,ha as g,jb as E,kc as v,lb as b,ma as $,mb as y,pb as x,qb as T,rb as P,sb as a,t as I,ta as O,tb as s,ub as D}from"./chunk-RNXBUYHW.js";var R=class n{threadState=d(C);codayService=d(ne);threadList=f(this.threadState.threadList$,{initialValue:[]});selectedThread=f(this.threadState.selectedThread$,{initialValue:null});isThinking=f(this.codayService.isThinking$,{initialValue:!1});inviteEvent=f(this.codayService.currentInviteEvent$.pipe(I(t=>t?.invite===Z?null:t)),{initialValue:null});tasks=v(()=>{let t=this.threadList(),e=this.selectedThread(),r=this.isThinking(),o=this.inviteEvent();return t.filter(i=>!i.parentThreadId).map(i=>{let m=!!e&&i.id===e.id;return{id:i.id,name:i.name,summary:i.summary,modifiedDate:i.modifiedDate,starring:i.starring??[],users:i.users??[],status:this.deriveStatus(i,m,r,!!o),isActive:m,worktreeProject:i.worktreeProject}}).sort((i,m)=>{let q=V[i.status]-V[m.status];return q!==0?q:i.modifiedDate>m.modifiedDate?-1:1})});deriveStatus(t,e,r,o){let i=Date.now()-new Date(t.modifiedDate).getTime();return t.closedByUser?"done":t.pendingInvite?"waiting-you":e?r?"in-progress":"paused":i<ie?"in-progress":"paused"}static \u0275fac=function(e){return new(e||n)};static \u0275prov=w({token:n,factory:n.\u0275fac,providedIn:"root"})};var F=class n{projectState=d(M);threadState=d(C);destroy$=new A;eventSource=null;currentProject=null;constructor(){this.projectState.selectedProject$.pipe(L(this.destroy$)).subscribe(t=>{let e=t?.name??null;e!==this.currentProject&&(this.disconnect(),e&&this.connect(e))})}connect(t,e=5e3){this.currentProject=t;let r=`/api/projects/${encodeURIComponent(t)}/event-stream`;console.log(`[PROJECT_SSE] Connecting to ${r}`),this.eventSource=new EventSource(r),this.eventSource.onmessage=o=>{try{let i=JSON.parse(o.data),m=te(i);if(!m)return;m instanceof ee&&(console.log("[PROJECT_SSE] ThreadUpdateEvent \u2014 refreshing thread list"),this.threadState.refreshThreadList())}catch(i){console.warn("[PROJECT_SSE] Failed to parse event:",i)}},this.eventSource.onerror=()=>{this.eventSource?.readyState===EventSource.CLOSED&&(console.warn(`[PROJECT_SSE] Connection closed for ${t}, reconnecting in ${e}ms`),this.eventSource=null,setTimeout(()=>{this.currentProject===t&&this.connect(t,Math.min(e*2,6e4))},e))}}disconnect(){this.eventSource&&(this.eventSource.close(),this.eventSource=null,console.log(`[PROJECT_SSE] Disconnected from project ${this.currentProject}`)),this.currentProject=null}ngOnDestroy(){this.disconnect(),this.destroy$.next(),this.destroy$.complete()}static \u0275fac=function(e){return new(e||n)};static \u0275prov=w({token:n,factory:n.\u0275fac,providedIn:"root"})};var ce=(n,t)=>t.key,de=(n,t)=>t.status,le=(n,t)=>t.id;function pe(n,t){n&1&&D(0,"mat-spinner",6)}function me(n,t){n&1&&(a(0,"mat-icon"),c(1,"add"),s())}function ue(n,t){if(n&1&&(a(0,"span",16),c(1),s()),n&2){let e=l().$implicit,r=l();p(),k(r.filterCounts()[e.key])}}function ge(n,t){if(n&1){let e=S();a(0,"button",15),h("click",function(){let o=u(e).$implicit,i=l();return g(i.setFilter(o.key))}),a(1,"mat-icon",10),c(2),s(),a(3,"span"),c(4),s(),b(5,ue,2,1,"span",16),s()}if(n&2){let e=t.$implicit,r=l();j("active",r.activeFilter()===e.key),E("aria-selected",r.activeFilter()===e.key),p(2),k(e.icon),p(2),k(e.label),p(),y(r.filterCounts()[e.key]>0?5:-1)}}function _e(n,t){n&1&&(a(0,"div",12),D(1,"mat-spinner",17),a(2,"p"),c(3,"Loading tasks\u2026"),s()())}function fe(n,t){if(n&1){let e=S();a(0,"p"),c(1,"No tasks yet. Start your first one!"),s(),a(2,"button",19),h("click",function(){u(e);let o=l(2);return g(o.createTask())}),a(3,"mat-icon"),c(4,"add"),s(),c(5," New Task "),s()}}function he(n,t){n&1&&(a(0,"p"),c(1,"No tasks in this category."),s())}function ke(n,t){if(n&1&&(a(0,"div",13)(1,"mat-icon",18),c(2,"rocket_launch"),s(),b(3,fe,6,0)(4,he,2,0,"p"),s()),n&2){let e=l();p(3),y(e.activeFilter()==="all"?3:4)}}function ve(n,t){if(n&1){let e=S();a(0,"app-task-card",25),h("stopRequested",function(o){u(e);let i=l(3);return g(i.onStopRequested(o))})("deleteRequested",function(o){u(e);let i=l(3);return g(i.onDeleteRequested(o))})("starToggled",function(o){u(e);let i=l(3);return g(i.onStarToggled(o))})("markDoneRequested",function(o){u(e);let i=l(3);return g(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){u(e);let i=l(3);return g(i.onMarkActiveRequested(o))}),s()}if(n&2){let e=t.$implicit;P("task",e)}}function Ce(n,t){if(n&1&&(a(0,"section",20)(1,"h2",21)(2,"mat-icon",22),c(3),s(),c(4),a(5,"span",23),c(6),s()(),a(7,"div",14),x(8,ve,1,1,"app-task-card",24,le),s()()),n&2){let e=t.$implicit;p(3),k(e.icon),p(),z(" ",e.label," "),p(2),k(e.tasks.length),p(2),T(e.tasks)}}function be(n,t){if(n&1&&x(0,Ce,10,3,"section",20,de),n&2){let e=l();T(e.taskGroups())}}function ye(n,t){if(n&1){let e=S();a(0,"app-task-card",25),h("stopRequested",function(o){u(e);let i=l(2);return g(i.onStopRequested(o))})("deleteRequested",function(o){u(e);let i=l(2);return g(i.onDeleteRequested(o))})("starToggled",function(o){u(e);let i=l(2);return g(i.onStarToggled(o))})("markDoneRequested",function(o){u(e);let i=l(2);return g(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){u(e);let i=l(2);return g(i.onMarkActiveRequested(o))}),s()}if(n&2){let e=t.$implicit;P("task",e)}}function xe(n,t){if(n&1&&(a(0,"div",14),x(1,ye,1,1,"app-task-card",24,le),s()),n&2){let e=l();p(),T(e.filteredTasks())}}var Te=[{key:"all",label:"All",icon:"grid_view"},{key:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{key:"in-progress",label:"In progress",icon:"pending"},{key:"paused",label:"Paused",icon:"pause_circle"},{key:"done",label:"Done",icon:"check_circle"}],se=class n{router=d(K);projectState=d(M);threadState=d(C);threadApi=d(G);taskStatus=d(R);userService=d(B);projectApi=d(Y);destroyRef=d($);_projectEventStream=d(F);filters=Te;activeFilter=O("all");starredOnly=O(!1);isCreating=O(!1);isLoadingList=f(this.threadState.isLoadingThreadList$,{initialValue:!1});username=f(this.userService.username$,{initialValue:null});allTasks=this.taskStatus.tasks;filteredTasks=v(()=>{let t=this.activeFilter(),e=this.username(),r=this.allTasks();return this.starredOnly()&&e&&(r=r.filter(o=>o.starring.includes(e))),t==="all"?r:r.filter(o=>o.status===t)});filterCounts=v(()=>{let t=this.username(),e=this.allTasks();return this.starredOnly()&&t&&(e=e.filter(r=>r.starring.includes(t))),{all:e.length,"waiting-you":e.filter(r=>r.status==="waiting-you").length,"in-progress":e.filter(r=>r.status==="in-progress").length,paused:e.filter(r=>r.status==="paused").length,done:e.filter(r=>r.status==="done").length}});taskGroups=v(()=>{let t=this.username(),e=this.allTasks();this.starredOnly()&&t&&(e=e.filter(o=>o.starring.includes(t)));let r=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt",tasks:[]},{status:"in-progress",label:"In progress",icon:"pending",tasks:[]},{status:"done",label:"Done",icon:"check_circle",tasks:[]},{status:"paused",label:"Paused",icon:"pause_circle",tasks:[]},{status:"error",label:"Error",icon:"error",tasks:[]}];for(let o of e){let i=r.find(m=>m.status===o.status);i&&i.tasks.push(o)}return r.filter(o=>o.tasks.length>0)});ngOnInit(){this.userService.fetchCurrentUser().pipe(_(this.destroyRef)).subscribe({error:t=>console.warn("[TASK-CONTROL] Could not fetch user:",t)})}setFilter(t){this.activeFilter.set(t)}toggleStarredFilter(){this.starredOnly.update(t=>!t)}createTask(){let t=this.projectState.getSelectedProjectId();!t||this.isCreating()||(this.isCreating.set(!0),this.threadApi.createThread().pipe(_(this.destroyRef)).subscribe({next:e=>{this.isCreating.set(!1),this.router.navigate(["project",t,"thread",e.thread.id])},error:e=>{console.error("[TASK-CONTROL] Failed to create thread:",e),this.isCreating.set(!1)}}))}onStopRequested(t){this.threadApi.stopThread(t).pipe(_(this.destroyRef)).subscribe({error:e=>console.error("[TASK-CONTROL] Failed to stop thread:",e)})}onDeleteRequested(t){this.threadApi.deleteThread(t).pipe(_(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:e=>console.error("[TASK-CONTROL] Failed to delete thread:",e)})}onStarToggled(t){let e=this.username();if(!e)return;let r=this.allTasks().find(m=>m.id===t);if(!r)return;let o=r.starring.includes(e),i=o?this.threadApi.unstarThread(t):this.threadApi.starThread(t);this.threadState.updateStarLocal(t,!o,e),i.pipe(_(this.destroyRef)).subscribe({error:m=>{console.error("[TASK-CONTROL] Failed to toggle star:",m),this.threadState.refreshThreadList()}})}onMarkDoneRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadDone(e,t).pipe(_(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as done:",r)})}onMarkActiveRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadActive(e,t).pipe(_(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as active:",r)})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-task-control"]],decls:25,vars:6,consts:[[1,"task-control"],[1,"tc-header"],[1,"tc-title-row"],[1,"tc-title"],[1,"title-icon"],["mat-flat-button","","aria-label","Start a new task",1,"new-task-btn",3,"click","disabled"],["diameter","16"],["role","tablist","aria-label","Filter tasks",1,"tc-filters"],["role","tab",1,"filter-chip",3,"active"],["role","switch","aria-label","Show starred tasks only",1,"filter-chip","starred-filter",3,"click"],[1,"filter-icon"],[1,"tc-grid-wrapper"],[1,"tc-loading"],[1,"tc-empty"],[1,"tc-grid"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","40"],[1,"empty-icon"],["mat-flat-button","",1,"new-task-btn",3,"click"],[1,"tc-group"],[1,"tc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task"],[3,"stopRequested","deleteRequested","starToggled","markDoneRequested","markActiveRequested","task"]],template:function(e,r){e&1&&(a(0,"app-sidenav")(1,"div",0)(2,"header",1)(3,"div",2)(4,"h1",3)(5,"mat-icon",4),c(6,"rocket_launch"),s(),c(7," Task Control "),s(),a(8,"button",5),h("click",function(){return r.createTask()}),b(9,pe,1,0,"mat-spinner",6)(10,me,2,0,"mat-icon"),c(11," New Task "),s()(),a(12,"nav",7),x(13,ge,6,6,"button",8,ce),a(15,"button",9),h("click",function(){return r.toggleStarredFilter()}),a(16,"mat-icon",10),c(17,"star"),s(),a(18,"span"),c(19,"Starred"),s()()()(),a(20,"main",11),b(21,_e,4,0,"div",12)(22,ke,5,1,"div",13)(23,be,2,0)(24,xe,3,0,"div",14),s()()()),e&2&&(p(8),P("disabled",r.isCreating()),p(),y(r.isCreating()?9:10),p(4),T(r.filters),p(2),j("active",r.starredOnly()),E("aria-checked",r.starredOnly()),p(6),y(r.isLoadingList()?21:r.filteredTasks().length===0?22:r.activeFilter()==="all"?23:24))},dependencies:[re,oe,W,H,J,U,X,Q],styles:[".glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:flex;height:100vh;width:100%;overflow:hidden}.task-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1.5rem;gap:1.25rem;box-sizing:border-box}.tc-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;flex-shrink:0}.tc-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem}.tc-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text)}.tc-title[_ngcontent-%COMP%] .title-icon[_ngcontent-%COMP%]{font-size:1.5rem;width:1.5rem;height:1.5rem;color:var(--color-primary)}.new-task-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;padding:0 1rem;height:36px;flex-shrink:0}.new-task-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}.new-task-btn[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block}.tc-filters[_ngcontent-%COMP%]{display:flex;gap:.5rem;flex-wrap:wrap}.filter-chip[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);display:flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border-radius:100px;font-size:.8rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border:1px solid var(--color-border);transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.filter-chip[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{font-size:.9rem;width:.9rem;height:.9rem}.filter-chip[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.filter-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.filter-chip.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:var(--color-text-inverse)}.filter-chip.active[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:#ffffff4d;color:var(--color-text-inverse)}.filter-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.starred-filter.active[_ngcontent-%COMP%]{background:#f5a62326;border-color:#f5a623;color:#f5a623}.starred-filter.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:#f5a623}.tc-group[_ngcontent-%COMP%]{margin-bottom:1.5rem}.tc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.tc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.tc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem}.tc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.75rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.tc-grid-wrapper[_ngcontent-%COMP%]{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.tc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding-bottom:1rem}@media(max-width:600px){.tc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.tc-loading[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;min-height:240px;color:var(--color-text-secondary);text-align:center}.tc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.95rem}.empty-icon[_ngcontent-%COMP%]{font-size:3rem;width:3rem;height:3rem;opacity:.3}"],changeDetection:0})};export{se as TaskControlComponent};
1
+ import{a as re,b as ie,c as V}from"./chunk-RPMRNJNU.js";import{a as oe}from"./chunk-4EW3L5UH.js";import{a as Q,b as X,g as ne}from"./chunk-CC5AKB2A.js";import{a as G,b as C,c as B,f as Z,q as ee,v as te}from"./chunk-APQFC6DT.js";import{d as K}from"./chunk-LTFITYTW.js";import"./chunk-JPVNXEXU.js";import"./chunk-JRNOMFVU.js";import{a as _,b as f}from"./chunk-LCBWJP6Z.js";import"./chunk-75DAJTMO.js";import"./chunk-J4KEKL2K.js";import{a as H,b as W}from"./chunk-MMKBNIVO.js";import"./chunk-DLU3TQID.js";import{a as Y,b as M}from"./chunk-G4QDBE4F.js";import{Q as U,S as J}from"./chunk-24VYLV4I.js";import{Bb as S,Db as h,Fb as l,Ka as p,Rb as j,T as L,Tb as c,Ub as k,Vb as z,Wa as N,Z as w,ca as d,ga as u,h as A,ha as g,jb as E,kc as v,lb as b,ma as $,mb as y,pb as x,qb as T,rb as P,sb as a,t as I,ta as O,tb as s,ub as D}from"./chunk-RNXBUYHW.js";var R=class n{threadState=d(C);codayService=d(ne);threadList=f(this.threadState.threadList$,{initialValue:[]});selectedThread=f(this.threadState.selectedThread$,{initialValue:null});isThinking=f(this.codayService.isThinking$,{initialValue:!1});inviteEvent=f(this.codayService.currentInviteEvent$.pipe(I(t=>t?.invite===Z?null:t)),{initialValue:null});tasks=v(()=>{let t=this.threadList(),e=this.selectedThread(),r=this.isThinking(),o=this.inviteEvent();return t.filter(i=>!i.parentThreadId).map(i=>{let m=!!e&&i.id===e.id;return{id:i.id,name:i.name,summary:i.summary,modifiedDate:i.modifiedDate,starring:i.starring??[],users:i.users??[],status:this.deriveStatus(i,m,r,!!o),isActive:m,worktreeProject:i.worktreeProject}}).sort((i,m)=>{let q=V[i.status]-V[m.status];return q!==0?q:i.modifiedDate>m.modifiedDate?-1:1})});deriveStatus(t,e,r,o){let i=Date.now()-new Date(t.modifiedDate).getTime();return t.closedByUser?"done":t.pendingInvite?"waiting-you":e?r?"in-progress":"paused":i<ie?"in-progress":"paused"}static \u0275fac=function(e){return new(e||n)};static \u0275prov=w({token:n,factory:n.\u0275fac,providedIn:"root"})};var F=class n{projectState=d(M);threadState=d(C);destroy$=new A;eventSource=null;currentProject=null;constructor(){this.projectState.selectedProject$.pipe(L(this.destroy$)).subscribe(t=>{let e=t?.name??null;e!==this.currentProject&&(this.disconnect(),e&&this.connect(e))})}connect(t,e=5e3){this.currentProject=t;let r=`/api/projects/${encodeURIComponent(t)}/event-stream`;console.log(`[PROJECT_SSE] Connecting to ${r}`),this.eventSource=new EventSource(r),this.eventSource.onmessage=o=>{try{let i=JSON.parse(o.data),m=te(i);if(!m)return;m instanceof ee&&(console.log("[PROJECT_SSE] ThreadUpdateEvent \u2014 refreshing thread list"),this.threadState.refreshThreadList())}catch(i){console.warn("[PROJECT_SSE] Failed to parse event:",i)}},this.eventSource.onerror=()=>{this.eventSource?.readyState===EventSource.CLOSED&&(console.warn(`[PROJECT_SSE] Connection closed for ${t}, reconnecting in ${e}ms`),this.eventSource=null,setTimeout(()=>{this.currentProject===t&&this.connect(t,Math.min(e*2,6e4))},e))}}disconnect(){this.eventSource&&(this.eventSource.close(),this.eventSource=null,console.log(`[PROJECT_SSE] Disconnected from project ${this.currentProject}`)),this.currentProject=null}ngOnDestroy(){this.disconnect(),this.destroy$.next(),this.destroy$.complete()}static \u0275fac=function(e){return new(e||n)};static \u0275prov=w({token:n,factory:n.\u0275fac,providedIn:"root"})};var ce=(n,t)=>t.key,de=(n,t)=>t.status,le=(n,t)=>t.id;function pe(n,t){n&1&&D(0,"mat-spinner",6)}function me(n,t){n&1&&(a(0,"mat-icon"),c(1,"add"),s())}function ue(n,t){if(n&1&&(a(0,"span",16),c(1),s()),n&2){let e=l().$implicit,r=l();p(),k(r.filterCounts()[e.key])}}function ge(n,t){if(n&1){let e=S();a(0,"button",15),h("click",function(){let o=u(e).$implicit,i=l();return g(i.setFilter(o.key))}),a(1,"mat-icon",10),c(2),s(),a(3,"span"),c(4),s(),b(5,ue,2,1,"span",16),s()}if(n&2){let e=t.$implicit,r=l();j("active",r.activeFilter()===e.key),E("aria-selected",r.activeFilter()===e.key),p(2),k(e.icon),p(2),k(e.label),p(),y(r.filterCounts()[e.key]>0?5:-1)}}function _e(n,t){n&1&&(a(0,"div",12),D(1,"mat-spinner",17),a(2,"p"),c(3,"Loading tasks\u2026"),s()())}function fe(n,t){if(n&1){let e=S();a(0,"p"),c(1,"No tasks yet. Start your first one!"),s(),a(2,"button",19),h("click",function(){u(e);let o=l(2);return g(o.createTask())}),a(3,"mat-icon"),c(4,"add"),s(),c(5," New Task "),s()}}function he(n,t){n&1&&(a(0,"p"),c(1,"No tasks in this category."),s())}function ke(n,t){if(n&1&&(a(0,"div",13)(1,"mat-icon",18),c(2,"rocket_launch"),s(),b(3,fe,6,0)(4,he,2,0,"p"),s()),n&2){let e=l();p(3),y(e.activeFilter()==="all"?3:4)}}function ve(n,t){if(n&1){let e=S();a(0,"app-task-card",25),h("stopRequested",function(o){u(e);let i=l(3);return g(i.onStopRequested(o))})("deleteRequested",function(o){u(e);let i=l(3);return g(i.onDeleteRequested(o))})("starToggled",function(o){u(e);let i=l(3);return g(i.onStarToggled(o))})("markDoneRequested",function(o){u(e);let i=l(3);return g(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){u(e);let i=l(3);return g(i.onMarkActiveRequested(o))}),s()}if(n&2){let e=t.$implicit;P("task",e)}}function Ce(n,t){if(n&1&&(a(0,"section",20)(1,"h2",21)(2,"mat-icon",22),c(3),s(),c(4),a(5,"span",23),c(6),s()(),a(7,"div",14),x(8,ve,1,1,"app-task-card",24,le),s()()),n&2){let e=t.$implicit;p(3),k(e.icon),p(),z(" ",e.label," "),p(2),k(e.tasks.length),p(2),T(e.tasks)}}function be(n,t){if(n&1&&x(0,Ce,10,3,"section",20,de),n&2){let e=l();T(e.taskGroups())}}function ye(n,t){if(n&1){let e=S();a(0,"app-task-card",25),h("stopRequested",function(o){u(e);let i=l(2);return g(i.onStopRequested(o))})("deleteRequested",function(o){u(e);let i=l(2);return g(i.onDeleteRequested(o))})("starToggled",function(o){u(e);let i=l(2);return g(i.onStarToggled(o))})("markDoneRequested",function(o){u(e);let i=l(2);return g(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){u(e);let i=l(2);return g(i.onMarkActiveRequested(o))}),s()}if(n&2){let e=t.$implicit;P("task",e)}}function xe(n,t){if(n&1&&(a(0,"div",14),x(1,ye,1,1,"app-task-card",24,le),s()),n&2){let e=l();p(),T(e.filteredTasks())}}var Te=[{key:"all",label:"All",icon:"grid_view"},{key:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{key:"in-progress",label:"In progress",icon:"pending"},{key:"paused",label:"Paused",icon:"pause_circle"},{key:"done",label:"Done",icon:"check_circle"}],se=class n{router=d(K);projectState=d(M);threadState=d(C);threadApi=d(G);taskStatus=d(R);userService=d(B);projectApi=d(Y);destroyRef=d($);_projectEventStream=d(F);filters=Te;activeFilter=O("all");starredOnly=O(!1);isCreating=O(!1);isLoadingList=f(this.threadState.isLoadingThreadList$,{initialValue:!1});username=f(this.userService.username$,{initialValue:null});allTasks=this.taskStatus.tasks;filteredTasks=v(()=>{let t=this.activeFilter(),e=this.username(),r=this.allTasks();return this.starredOnly()&&e&&(r=r.filter(o=>o.starring.includes(e))),t==="all"?r:r.filter(o=>o.status===t)});filterCounts=v(()=>{let t=this.username(),e=this.allTasks();return this.starredOnly()&&t&&(e=e.filter(r=>r.starring.includes(t))),{all:e.length,"waiting-you":e.filter(r=>r.status==="waiting-you").length,"in-progress":e.filter(r=>r.status==="in-progress").length,paused:e.filter(r=>r.status==="paused").length,done:e.filter(r=>r.status==="done").length}});taskGroups=v(()=>{let t=this.username(),e=this.allTasks();this.starredOnly()&&t&&(e=e.filter(o=>o.starring.includes(t)));let r=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt",tasks:[]},{status:"in-progress",label:"In progress",icon:"pending",tasks:[]},{status:"done",label:"Done",icon:"check_circle",tasks:[]},{status:"paused",label:"Paused",icon:"pause_circle",tasks:[]},{status:"error",label:"Error",icon:"error",tasks:[]}];for(let o of e){let i=r.find(m=>m.status===o.status);i&&i.tasks.push(o)}return r.filter(o=>o.tasks.length>0)});ngOnInit(){this.userService.fetchCurrentUser().pipe(_(this.destroyRef)).subscribe({error:t=>console.warn("[TASK-CONTROL] Could not fetch user:",t)})}setFilter(t){this.activeFilter.set(t)}toggleStarredFilter(){this.starredOnly.update(t=>!t)}createTask(){let t=this.projectState.getSelectedProjectId();!t||this.isCreating()||(this.isCreating.set(!0),this.threadApi.createThread().pipe(_(this.destroyRef)).subscribe({next:e=>{this.isCreating.set(!1),this.router.navigate(["project",t,"thread",e.thread.id])},error:e=>{console.error("[TASK-CONTROL] Failed to create thread:",e),this.isCreating.set(!1)}}))}onStopRequested(t){this.threadApi.stopThread(t).pipe(_(this.destroyRef)).subscribe({error:e=>console.error("[TASK-CONTROL] Failed to stop thread:",e)})}onDeleteRequested(t){this.threadApi.deleteThread(t).pipe(_(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:e=>console.error("[TASK-CONTROL] Failed to delete thread:",e)})}onStarToggled(t){let e=this.username();if(!e)return;let r=this.allTasks().find(m=>m.id===t);if(!r)return;let o=r.starring.includes(e),i=o?this.threadApi.unstarThread(t):this.threadApi.starThread(t);this.threadState.updateStarLocal(t,!o,e),i.pipe(_(this.destroyRef)).subscribe({error:m=>{console.error("[TASK-CONTROL] Failed to toggle star:",m),this.threadState.refreshThreadList()}})}onMarkDoneRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadDone(e,t).pipe(_(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as done:",r)})}onMarkActiveRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadActive(e,t).pipe(_(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as active:",r)})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-task-control"]],decls:25,vars:6,consts:[[1,"task-control"],[1,"tc-header"],[1,"tc-title-row"],[1,"tc-title"],[1,"title-icon"],["mat-flat-button","","aria-label","Start a new task",1,"new-task-btn",3,"click","disabled"],["diameter","16"],["role","tablist","aria-label","Filter tasks",1,"tc-filters"],["role","tab",1,"filter-chip",3,"active"],["role","switch","aria-label","Show starred tasks only",1,"filter-chip","starred-filter",3,"click"],[1,"filter-icon"],[1,"tc-grid-wrapper"],[1,"tc-loading"],[1,"tc-empty"],[1,"tc-grid"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","40"],[1,"empty-icon"],["mat-flat-button","",1,"new-task-btn",3,"click"],[1,"tc-group"],[1,"tc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task"],[3,"stopRequested","deleteRequested","starToggled","markDoneRequested","markActiveRequested","task"]],template:function(e,r){e&1&&(a(0,"app-sidenav")(1,"div",0)(2,"header",1)(3,"div",2)(4,"h1",3)(5,"mat-icon",4),c(6,"rocket_launch"),s(),c(7," Task Control "),s(),a(8,"button",5),h("click",function(){return r.createTask()}),b(9,pe,1,0,"mat-spinner",6)(10,me,2,0,"mat-icon"),c(11," New Task "),s()(),a(12,"nav",7),x(13,ge,6,6,"button",8,ce),a(15,"button",9),h("click",function(){return r.toggleStarredFilter()}),a(16,"mat-icon",10),c(17,"star"),s(),a(18,"span"),c(19,"Starred"),s()()()(),a(20,"main",11),b(21,_e,4,0,"div",12)(22,ke,5,1,"div",13)(23,be,2,0)(24,xe,3,0,"div",14),s()()()),e&2&&(p(8),P("disabled",r.isCreating()),p(),y(r.isCreating()?9:10),p(4),T(r.filters),p(2),j("active",r.starredOnly()),E("aria-checked",r.starredOnly()),p(6),y(r.isLoadingList()?21:r.filteredTasks().length===0?22:r.activeFilter()==="all"?23:24))},dependencies:[re,oe,W,H,J,U,X,Q],styles:[".glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:flex;height:100vh;width:100%;overflow:hidden}.task-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1.5rem;gap:1.25rem;box-sizing:border-box}.tc-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;flex-shrink:0}.tc-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem}.tc-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text)}.tc-title[_ngcontent-%COMP%] .title-icon[_ngcontent-%COMP%]{font-size:1.5rem;width:1.5rem;height:1.5rem;color:var(--color-primary)}.new-task-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;padding:0 1rem;height:36px;flex-shrink:0}.new-task-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}.new-task-btn[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block}.tc-filters[_ngcontent-%COMP%]{display:flex;gap:.5rem;flex-wrap:wrap}.filter-chip[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);display:flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border-radius:100px;font-size:.8rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border:1px solid var(--color-border);transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.filter-chip[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{font-size:.9rem;width:.9rem;height:.9rem}.filter-chip[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.filter-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.filter-chip.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:var(--color-text-inverse)}.filter-chip.active[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:#ffffff4d;color:var(--color-text-inverse)}.filter-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.starred-filter.active[_ngcontent-%COMP%]{background:#f5a62326;border-color:#f5a623;color:#f5a623}.starred-filter.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:#f5a623}.tc-group[_ngcontent-%COMP%]{margin-bottom:1.5rem}.tc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.tc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.tc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem}.tc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.75rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.tc-grid-wrapper[_ngcontent-%COMP%]{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.tc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding-bottom:1rem}@media(max-width:600px){.tc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.tc-loading[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;min-height:240px;color:var(--color-text-secondary);text-align:center}.tc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.95rem}.empty-icon[_ngcontent-%COMP%]{font-size:3rem;width:3rem;height:3rem;opacity:.3}"],changeDetection:0})};export{se as TaskControlComponent};
@@ -10,8 +10,8 @@
10
10
  <base href="/">
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1">
12
12
  <link rel="icon" type="image/x-icon" href="CODAY-Logo.png">
13
- <style>:root{--color-bg:linear-gradient(135deg, #fafbfc 0%, #f5f6f8 100%);--color-bg-solid:#fafbfc;--color-bg-secondary:rgba(255, 255, 255, .7);--color-bg-secondary-rgb:255 255 255;--color-text:#1d1d1f;--color-text-secondary:#6e6e73;--color-text-inverse:#ffffff;--color-primary:#007aff;--color-primary-hover:#0051d5;--color-accent:#8b5cf6;--color-link:#007aff;--color-border:rgba(0, 0, 0, .1);--color-border-light:rgba(40, 40, 40, .08);--color-input-bg:rgba(255, 255, 255, .8);--color-success:#34c759;--color-error:#ff3b30;--color-warning:#ff9500;--color-info:#5ac8fa;--color-message-user:rgba(0, 122, 255, .1);--color-message-ai:rgba(255, 255, 255, .8);--color-code-bg:rgba(142, 142, 147, .12);--color-code-text:#ff375f;--color-bg-hover:rgba(0, 0, 0, .04);--glass-bg:rgba(255, 255, 255, .72);--glass-border:rgba(255, 255, 255, .18);--glass-shadow:0 8px 32px 0 rgba(31, 38, 135, .15);--glass-backdrop-blur:blur(20px);--color-modal-bg:#ffffff;--color-modal-border:rgba(0, 0, 0, .12);--color-modal-shadow:0 8px 40px rgba(0, 0, 0, .18), 0 2px 8px rgba(0, 0, 0, .1);--color-shadow:rgba(0, 0, 0, .08);--color-overlay:rgba(0, 0, 0, .4)}@media print{html,body,app-root{height:auto!important;max-height:none!important;min-height:auto!important;overflow:visible!important;position:static!important}body{background:#fff!important;color:#000!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:11pt;line-height:1.6;padding:1rem!important}*{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}}*{box-sizing:border-box}html{color-scheme:light}html{--mat-sys-background:light-dark(#faf9fd, #121316);--mat-sys-error:light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container:light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface:light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary:light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface:light-dark(#2f3033, #e3e2e6);--mat-sys-on-background:light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error:light-dark(#ffffff, #690005);--mat-sys-on-error-container:light-dark(#93000a, #ffdad6);--mat-sys-on-primary:light-dark(#ffffff, #002f65);--mat-sys-on-primary-container:light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed:light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant:light-dark(#00458f, #00458f);--mat-sys-on-secondary:light-dark(#ffffff, #283041);--mat-sys-on-secondary-container:light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed:light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant:light-dark(#3e4759, #3e4759);--mat-sys-on-surface:light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant:light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary:light-dark(#ffffff, #002f65);--mat-sys-on-tertiary-container:light-dark(#00458f, #d7e3ff);--mat-sys-on-tertiary-fixed:light-dark(#001b3f, #001b3f);--mat-sys-on-tertiary-fixed-variant:light-dark(#00458f, #00458f);--mat-sys-outline:light-dark(#74777f, #8e9099);--mat-sys-outline-variant:light-dark(#c4c6d0, #44474e);--mat-sys-primary:light-dark(#005cbb, #abc7ff);--mat-sys-primary-container:light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed:light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim:light-dark(#abc7ff, #abc7ff);--mat-sys-scrim:light-dark(#000000, #000000);--mat-sys-secondary:light-dark(#565e71, #bec6dc);--mat-sys-secondary-container:light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed:light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim:light-dark(#bec6dc, #bec6dc);--mat-sys-shadow:light-dark(#000000, #000000);--mat-sys-surface:light-dark(#faf9fd, #121316);--mat-sys-surface-bright:light-dark(#faf9fd, #38393c);--mat-sys-surface-container:light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high:light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest:light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low:light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest:light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim:light-dark(#dbd9dd, #121316);--mat-sys-surface-tint:light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant:light-dark(#e0e2ec, #44474e);--mat-sys-tertiary:light-dark(#005cbb, #abc7ff);--mat-sys-tertiary-container:light-dark(#d7e3ff, #00458f);--mat-sys-tertiary-fixed:light-dark(#d7e3ff, #d7e3ff);--mat-sys-tertiary-fixed-dim:light-dark(#abc7ff, #abc7ff);--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large:400 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-line-height:1.5rem;--mat-sys-body-large-size:1rem;--mat-sys-body-large-tracking:.031rem;--mat-sys-body-large-weight:400;--mat-sys-body-medium:400 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-line-height:1.25rem;--mat-sys-body-medium-size:.875rem;--mat-sys-body-medium-tracking:.016rem;--mat-sys-body-medium-weight:400;--mat-sys-body-small:400 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-line-height:1rem;--mat-sys-body-small-size:.75rem;--mat-sys-body-small-tracking:.025rem;--mat-sys-body-small-weight:400;--mat-sys-display-large:400 3.562rem / 4rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-line-height:4rem;--mat-sys-display-large-size:3.562rem;--mat-sys-display-large-tracking:-.016rem;--mat-sys-display-large-weight:400;--mat-sys-display-medium:400 2.812rem / 3.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-line-height:3.25rem;--mat-sys-display-medium-size:2.812rem;--mat-sys-display-medium-tracking:0;--mat-sys-display-medium-weight:400;--mat-sys-display-small:400 2.25rem / 2.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-line-height:2.75rem;--mat-sys-display-small-size:2.25rem;--mat-sys-display-small-tracking:0;--mat-sys-display-small-weight:400;--mat-sys-headline-large:400 2rem / 2.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-line-height:2.5rem;--mat-sys-headline-large-size:2rem;--mat-sys-headline-large-tracking:0;--mat-sys-headline-large-weight:400;--mat-sys-headline-medium:400 1.75rem / 2.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-line-height:2.25rem;--mat-sys-headline-medium-size:1.75rem;--mat-sys-headline-medium-tracking:0;--mat-sys-headline-medium-weight:400;--mat-sys-headline-small:400 1.5rem / 2rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-line-height:2rem;--mat-sys-headline-small-size:1.5rem;--mat-sys-headline-small-tracking:0;--mat-sys-headline-small-weight:400;--mat-sys-label-large:500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-line-height:1.25rem;--mat-sys-label-large-size:.875rem;--mat-sys-label-large-tracking:.006rem;--mat-sys-label-large-weight:500;--mat-sys-label-large-weight-prominent:700;--mat-sys-label-medium:500 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-line-height:1rem;--mat-sys-label-medium-size:.75rem;--mat-sys-label-medium-tracking:.031rem;--mat-sys-label-medium-weight:500;--mat-sys-label-medium-weight-prominent:700;--mat-sys-label-small:500 .688rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-line-height:1rem;--mat-sys-label-small-size:.688rem;--mat-sys-label-small-tracking:.031rem;--mat-sys-label-small-weight:500;--mat-sys-title-large:400 1.375rem / 1.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-line-height:1.75rem;--mat-sys-title-large-size:1.375rem;--mat-sys-title-large-tracking:0;--mat-sys-title-large-weight:400;--mat-sys-title-medium:500 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-line-height:1.5rem;--mat-sys-title-medium-size:1rem;--mat-sys-title-medium-tracking:.009rem;--mat-sys-title-medium-weight:500;--mat-sys-title-small:500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-line-height:1.25rem;--mat-sys-title-small-size:.875rem;--mat-sys-title-small-tracking:.006rem;--mat-sys-title-small-weight:500;--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;--mat-snack-bar-container-shape:transparent;--mat-snack-bar-container-color:transparent;--mat-snack-bar-supporting-text-color:var(--color-text)}html,body{margin:0;padding:0;width:100%;height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Helvetica Neue,Arial,sans-serif;transition:background .3s ease,color .3s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:0!important}</style><link rel="stylesheet" href="styles-THLRUXCP.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-THLRUXCP.css"></noscript></head>
13
+ <style>:root{--color-bg:linear-gradient(135deg, #fafbfc 0%, #f5f6f8 100%);--color-bg-solid:#fafbfc;--color-bg-secondary:rgba(255, 255, 255, .7);--color-bg-secondary-rgb:255 255 255;--color-text:#1d1d1f;--color-text-secondary:#6e6e73;--color-text-inverse:#ffffff;--color-primary:#007aff;--color-primary-hover:#0051d5;--color-accent:#8b5cf6;--color-link:#007aff;--color-border:rgba(0, 0, 0, .1);--color-border-light:rgba(40, 40, 40, .08);--color-input-bg:rgba(255, 255, 255, .8);--color-success:#34c759;--color-error:#ff3b30;--color-warning:#ff9500;--color-info:#5ac8fa;--color-message-user:rgba(0, 122, 255, .1);--color-message-ai:rgba(255, 255, 255, .8);--color-code-bg:rgba(142, 142, 147, .12);--color-code-text:#ff375f;--color-bg-hover:rgba(0, 0, 0, .04);--glass-bg:rgba(255, 255, 255, .72);--glass-border:rgba(255, 255, 255, .18);--glass-shadow:0 8px 32px 0 rgba(31, 38, 135, .15);--glass-backdrop-blur:blur(20px);--color-modal-bg:#ffffff;--color-modal-border:rgba(0, 0, 0, .12);--color-modal-shadow:0 8px 40px rgba(0, 0, 0, .18), 0 2px 8px rgba(0, 0, 0, .1);--color-shadow:rgba(0, 0, 0, .08);--color-overlay:rgba(0, 0, 0, .4)}@media print{html,body,app-root{height:auto!important;max-height:none!important;min-height:auto!important;overflow:visible!important;position:static!important}body{background:#fff!important;color:#000!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:11pt;line-height:1.6;padding:1rem!important}*{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}}*{box-sizing:border-box}html{color-scheme:light}html{--mat-sys-background:light-dark(#faf9fd, #121316);--mat-sys-error:light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container:light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface:light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary:light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface:light-dark(#2f3033, #e3e2e6);--mat-sys-on-background:light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error:light-dark(#ffffff, #690005);--mat-sys-on-error-container:light-dark(#93000a, #ffdad6);--mat-sys-on-primary:light-dark(#ffffff, #002f65);--mat-sys-on-primary-container:light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed:light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant:light-dark(#00458f, #00458f);--mat-sys-on-secondary:light-dark(#ffffff, #283041);--mat-sys-on-secondary-container:light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed:light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant:light-dark(#3e4759, #3e4759);--mat-sys-on-surface:light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant:light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary:light-dark(#ffffff, #002f65);--mat-sys-on-tertiary-container:light-dark(#00458f, #d7e3ff);--mat-sys-on-tertiary-fixed:light-dark(#001b3f, #001b3f);--mat-sys-on-tertiary-fixed-variant:light-dark(#00458f, #00458f);--mat-sys-outline:light-dark(#74777f, #8e9099);--mat-sys-outline-variant:light-dark(#c4c6d0, #44474e);--mat-sys-primary:light-dark(#005cbb, #abc7ff);--mat-sys-primary-container:light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed:light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim:light-dark(#abc7ff, #abc7ff);--mat-sys-scrim:light-dark(#000000, #000000);--mat-sys-secondary:light-dark(#565e71, #bec6dc);--mat-sys-secondary-container:light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed:light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim:light-dark(#bec6dc, #bec6dc);--mat-sys-shadow:light-dark(#000000, #000000);--mat-sys-surface:light-dark(#faf9fd, #121316);--mat-sys-surface-bright:light-dark(#faf9fd, #38393c);--mat-sys-surface-container:light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high:light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest:light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low:light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest:light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim:light-dark(#dbd9dd, #121316);--mat-sys-surface-tint:light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant:light-dark(#e0e2ec, #44474e);--mat-sys-tertiary:light-dark(#005cbb, #abc7ff);--mat-sys-tertiary-container:light-dark(#d7e3ff, #00458f);--mat-sys-tertiary-fixed:light-dark(#d7e3ff, #d7e3ff);--mat-sys-tertiary-fixed-dim:light-dark(#abc7ff, #abc7ff);--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large:400 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-line-height:1.5rem;--mat-sys-body-large-size:1rem;--mat-sys-body-large-tracking:.031rem;--mat-sys-body-large-weight:400;--mat-sys-body-medium:400 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-line-height:1.25rem;--mat-sys-body-medium-size:.875rem;--mat-sys-body-medium-tracking:.016rem;--mat-sys-body-medium-weight:400;--mat-sys-body-small:400 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-line-height:1rem;--mat-sys-body-small-size:.75rem;--mat-sys-body-small-tracking:.025rem;--mat-sys-body-small-weight:400;--mat-sys-display-large:400 3.562rem / 4rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-line-height:4rem;--mat-sys-display-large-size:3.562rem;--mat-sys-display-large-tracking:-.016rem;--mat-sys-display-large-weight:400;--mat-sys-display-medium:400 2.812rem / 3.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-line-height:3.25rem;--mat-sys-display-medium-size:2.812rem;--mat-sys-display-medium-tracking:0;--mat-sys-display-medium-weight:400;--mat-sys-display-small:400 2.25rem / 2.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-line-height:2.75rem;--mat-sys-display-small-size:2.25rem;--mat-sys-display-small-tracking:0;--mat-sys-display-small-weight:400;--mat-sys-headline-large:400 2rem / 2.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-line-height:2.5rem;--mat-sys-headline-large-size:2rem;--mat-sys-headline-large-tracking:0;--mat-sys-headline-large-weight:400;--mat-sys-headline-medium:400 1.75rem / 2.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-line-height:2.25rem;--mat-sys-headline-medium-size:1.75rem;--mat-sys-headline-medium-tracking:0;--mat-sys-headline-medium-weight:400;--mat-sys-headline-small:400 1.5rem / 2rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-line-height:2rem;--mat-sys-headline-small-size:1.5rem;--mat-sys-headline-small-tracking:0;--mat-sys-headline-small-weight:400;--mat-sys-label-large:500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-line-height:1.25rem;--mat-sys-label-large-size:.875rem;--mat-sys-label-large-tracking:.006rem;--mat-sys-label-large-weight:500;--mat-sys-label-large-weight-prominent:700;--mat-sys-label-medium:500 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-line-height:1rem;--mat-sys-label-medium-size:.75rem;--mat-sys-label-medium-tracking:.031rem;--mat-sys-label-medium-weight:500;--mat-sys-label-medium-weight-prominent:700;--mat-sys-label-small:500 .688rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-line-height:1rem;--mat-sys-label-small-size:.688rem;--mat-sys-label-small-tracking:.031rem;--mat-sys-label-small-weight:500;--mat-sys-title-large:400 1.375rem / 1.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-line-height:1.75rem;--mat-sys-title-large-size:1.375rem;--mat-sys-title-large-tracking:0;--mat-sys-title-large-weight:400;--mat-sys-title-medium:500 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-line-height:1.5rem;--mat-sys-title-medium-size:1rem;--mat-sys-title-medium-tracking:.009rem;--mat-sys-title-medium-weight:500;--mat-sys-title-small:500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-line-height:1.25rem;--mat-sys-title-small-size:.875rem;--mat-sys-title-small-tracking:.006rem;--mat-sys-title-small-weight:500;--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;--mat-snack-bar-container-shape:transparent;--mat-snack-bar-container-color:transparent;--mat-snack-bar-supporting-text-color:var(--color-text)}html,body{margin:0;padding:0;width:100%;height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Helvetica Neue,Arial,sans-serif;transition:background .3s ease,color .3s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:0!important}</style><link rel="stylesheet" href="styles-DXY4Y6E7.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-DXY4Y6E7.css"></noscript></head>
14
14
  <body>
15
15
  <app-root></app-root>
16
- <link rel="modulepreload" href="chunk-SUT4HFT6.js"><link rel="modulepreload" href="chunk-QVW2GZXC.js"><link rel="modulepreload" href="chunk-O7ALTLRI.js"><link rel="modulepreload" href="chunk-APQFC6DT.js"><link rel="modulepreload" href="chunk-FAAHG43E.js"><link rel="modulepreload" href="chunk-LTFITYTW.js"><link rel="modulepreload" href="chunk-IF2A56UI.js"><link rel="modulepreload" href="chunk-75DAJTMO.js"><link rel="modulepreload" href="chunk-J4KEKL2K.js"><link rel="modulepreload" href="chunk-G4QDBE4F.js"><script src="polyfills-2FSRUXKO.js" type="module"></script><script src="main-MM7I2UT5.js" type="module"></script></body>
16
+ <link rel="modulepreload" href="chunk-SUT4HFT6.js"><link rel="modulepreload" href="chunk-QVW2GZXC.js"><link rel="modulepreload" href="chunk-O7ALTLRI.js"><link rel="modulepreload" href="chunk-APQFC6DT.js"><link rel="modulepreload" href="chunk-FAAHG43E.js"><link rel="modulepreload" href="chunk-LTFITYTW.js"><link rel="modulepreload" href="chunk-IF2A56UI.js"><link rel="modulepreload" href="chunk-75DAJTMO.js"><link rel="modulepreload" href="chunk-J4KEKL2K.js"><link rel="modulepreload" href="chunk-G4QDBE4F.js"><script src="polyfills-2FSRUXKO.js" type="module"></script><script src="main-7IYGFW63.js" type="module"></script></body>
17
17
  </html>
@@ -1 +1 @@
1
- import{l as ei}from"./chunk-SUT4HFT6.js";import{a as S,b as K,e as xt,f as Ye,h as X,i as ve,j as le}from"./chunk-QVW2GZXC.js";import{a as si}from"./chunk-O7ALTLRI.js";import{b as ti,c as ii,x as ni}from"./chunk-APQFC6DT.js";import"./chunk-FAAHG43E.js";import{c as Ht,f as Yt,g as Xt}from"./chunk-LTFITYTW.js";import{a as Jt}from"./chunk-IF2A56UI.js";import{c as Zt}from"./chunk-75DAJTMO.js";import"./chunk-J4KEKL2K.js";import{b as Te}from"./chunk-G4QDBE4F.js";import"./chunk-24VYLV4I.js";import{B as Ot,Ca as We,G as It,L as Ft,La as Bt,Mc as $t,Nc as Gt,Oa as qt,Sc as Wt,V as Lt,W as v,Wa as Qt,Z as Se,a as ye,ba as Ee,c as Mt,ca as z,d as _e,fb as He,la as zt,pa as Kt,q as Ge,r as Dt,rc as Vt,sa as jt,t as Rt,u as kt,ub as Ut}from"./chunk-RNXBUYHW.js";function ri(s){return new v(3e3,!1)}function ln(){return new v(3100,!1)}function cn(){return new v(3101,!1)}function un(s){return new v(3001,!1)}function hn(s){return new v(3003,!1)}function dn(s){return new v(3004,!1)}function oi(s,e){return new v(3005,!1)}function li(){return new v(3006,!1)}function ci(){return new v(3007,!1)}function ui(s,e){return new v(3008,!1)}function hi(s){return new v(3002,!1)}function di(s,e,t,i,n){return new v(3010,!1)}function mi(){return new v(3011,!1)}function fi(){return new v(3012,!1)}function pi(){return new v(3200,!1)}function gi(){return new v(3202,!1)}function yi(){return new v(3013,!1)}function _i(s){return new v(3014,!1)}function Si(s){return new v(3015,!1)}function Ei(s){return new v(3016,!1)}function vi(s,e){return new v(3404,!1)}function mn(s){return new v(3502,!1)}function Ti(s){return new v(3503,!1)}function Ai(){return new v(3300,!1)}function bi(s){return new v(3504,!1)}function wi(s){return new v(3301,!1)}function Pi(s,e){return new v(3302,!1)}function Ni(s){return new v(3303,!1)}function Ci(s,e){return new v(3400,!1)}function Mi(s){return new v(3401,!1)}function Di(s){return new v(3402,!1)}function Ri(s,e){return new v(3505,!1)}function V(s){switch(s.length){case 0:return new X;case 1:return s[0];default:return new ve(s)}}function Je(s,e,t=new Map,i=new Map){let n=[],r=[],a=-1,o=null;if(e.forEach(l=>{let c=l.get("offset"),h=c==a,u=h&&o||new Map;l.forEach((_,y)=>{let m=y,g=_;if(y!=="offset")switch(m=s.normalizePropertyName(m,n),g){case le:g=t.get(y);break;case K:g=i.get(y);break;default:g=s.normalizeStyleValue(y,m,g,n);break}u.set(m,g)}),h||r.push(u),o=u,a=c}),n.length)throw mn(n);return r}function Ae(s,e,t,i){switch(e){case"start":s.onStart(()=>i(t&&Xe(t,"start",s)));break;case"done":s.onDone(()=>i(t&&Xe(t,"done",s)));break;case"destroy":s.onDestroy(()=>i(t&&Xe(t,"destroy",s)));break}}function Xe(s,e,t){let i=t.totalTime,n=!!t.disabled,r=be(s.element,s.triggerName,s.fromState,s.toState,e||s.phaseName,i??s.totalTime,n),a=s._data;return a!=null&&(r._data=a),r}function be(s,e,t,i,n="",r=0,a){return{element:s,triggerName:e,fromState:t,toState:i,phaseName:n,totalTime:r,disabled:!!a}}function k(s,e,t){let i=s.get(e);return i||s.set(e,i=t),i}function et(s){let e=s.indexOf(":"),t=s.substring(1,e),i=s.slice(e+1);return[t,i]}var fn=typeof document>"u"?null:document.documentElement;function we(s){let e=s.parentNode||s.host||null;return e===fn?null:e}function pn(s){return s.substring(1,6)=="ebkit"}var x=null,ai=!1;function ki(s){x||(x=gn()||{},ai=x.style?"WebkitAppearance"in x.style:!1);let e=!0;return x.style&&!pn(s)&&(e=s in x.style,!e&&ai&&(e="Webkit"+s.charAt(0).toUpperCase()+s.slice(1)in x.style)),e}function gn(){return typeof document<"u"?document.body:null}function tt(s,e){for(;e;){if(e===s)return!0;e=we(e)}return!1}function it(s,e,t){if(t)return Array.from(s.querySelectorAll(e));let i=s.querySelector(e);return i?[i]:[]}var yn=1e3,nt="{{",_n="}}",st="ng-enter",Pe="ng-leave",ce="ng-trigger",ue=".ng-trigger",rt="ng-animating",Ne=".ng-animating";function U(s){if(typeof s=="number")return s;let e=s.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:xe(parseFloat(e[1]),e[2])}function xe(s,e){return e==="s"?s*yn:s}function he(s,e,t){return s.hasOwnProperty("duration")?s:En(s,e,t)}var Sn=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;function En(s,e,t){let i,n=0,r="";if(typeof s=="string"){let a=s.match(Sn);if(a===null)return e.push(ri(s)),{duration:0,delay:0,easing:""};i=xe(parseFloat(a[1]),a[2]);let o=a[3];o!=null&&(n=xe(parseFloat(o),a[4]));let l=a[5];l&&(r=l)}else i=s;if(!t){let a=!1,o=e.length;i<0&&(e.push(ln()),a=!0),n<0&&(e.push(cn()),a=!0),a&&e.splice(o,0,ri(s))}return{duration:i,delay:n,easing:r}}function Oi(s){return s.length?s[0]instanceof Map?s:s.map(e=>new Map(Object.entries(e))):[]}function j(s,e,t){e.forEach((i,n)=>{let r=Ce(n);t&&!t.has(n)&&t.set(n,s.style[r]),s.style[r]=i})}function G(s,e){e.forEach((t,i)=>{let n=Ce(i);s.style[n]=""})}function se(s){return Array.isArray(s)?s.length==1?s[0]:xt(s):s}function Ii(s,e,t){let i=e.params||{},n=at(s);n.length&&n.forEach(r=>{i.hasOwnProperty(r)||t.push(un(r))})}var Ze=new RegExp(`${nt}\\s*(.+?)\\s*${_n}`,"g");function at(s){let e=[];if(typeof s=="string"){let t;for(;t=Ze.exec(s);)e.push(t[1]);Ze.lastIndex=0}return e}function re(s,e,t){let i=`${s}`,n=i.replace(Ze,(r,a)=>{let o=e[a];return o==null&&(t.push(hn(a)),o=""),o.toString()});return n==i?s:n}var vn=/-+([a-z0-9])/g;function Ce(s){return s.replace(vn,(...e)=>e[1].toUpperCase())}function Fi(s,e){return s===0||e===0}function Li(s,e,t){if(t.size&&e.length){let i=e[0],n=[];if(t.forEach((r,a)=>{i.has(a)||n.push(a),i.set(a,r)}),n.length)for(let r=1;r<e.length;r++){let a=e[r];n.forEach(o=>a.set(o,Me(s,o)))}}return e}function O(s,e,t){switch(e.type){case S.Trigger:return s.visitTrigger(e,t);case S.State:return s.visitState(e,t);case S.Transition:return s.visitTransition(e,t);case S.Sequence:return s.visitSequence(e,t);case S.Group:return s.visitGroup(e,t);case S.Animate:return s.visitAnimate(e,t);case S.Keyframes:return s.visitKeyframes(e,t);case S.Style:return s.visitStyle(e,t);case S.Reference:return s.visitReference(e,t);case S.AnimateChild:return s.visitAnimateChild(e,t);case S.AnimateRef:return s.visitAnimateRef(e,t);case S.Query:return s.visitQuery(e,t);case S.Stagger:return s.visitStagger(e,t);default:throw dn(e.type)}}function Me(s,e){return window.getComputedStyle(s)[e]}var At=(()=>{class s{validateStyleProperty(t){return ki(t)}containsElement(t,i){return tt(t,i)}getParentElement(t){return we(t)}query(t,i,n){return it(t,i,n)}computeStyle(t,i,n){return n||""}animate(t,i,n,r,a,o=[],l){return new X(n,r)}static \u0275fac=function(i){return new(i||s)};static \u0275prov=Se({token:s,factory:s.\u0275fac})}return s})(),J=class{static NOOP=new At},ee=class{};var Tn=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),Ie=class extends ee{normalizePropertyName(e,t){return Ce(e)}normalizeStyleValue(e,t,i,n){let r="",a=i.toString().trim();if(Tn.has(t)&&i!==0&&i!=="0")if(typeof i=="number")r="px";else{let o=i.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&o[1].length==0&&n.push(oi(e,i))}return a+r}};var Fe="*";function An(s,e){let t=[];return typeof s=="string"?s.split(/\s*,\s*/).forEach(i=>bn(i,t,e)):t.push(s),t}function bn(s,e,t){if(s[0]==":"){let l=wn(s,t);if(typeof l=="function"){e.push(l);return}s=l}let i=s.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return t.push(Si(s)),e;let n=i[1],r=i[2],a=i[3];e.push(zi(n,a));let o=n==Fe&&a==Fe;r[0]=="<"&&!o&&e.push(zi(a,n))}function wn(s,e){switch(s){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,i)=>parseFloat(i)>parseFloat(t);case":decrement":return(t,i)=>parseFloat(i)<parseFloat(t);default:return e.push(Ei(s)),"* => *"}}var De=new Set(["true","1"]),Re=new Set(["false","0"]);function zi(s,e){let t=De.has(s)||Re.has(s),i=De.has(e)||Re.has(e);return(n,r)=>{let a=s==Fe||s==n,o=e==Fe||e==r;return!a&&t&&typeof n=="boolean"&&(a=n?De.has(s):Re.has(s)),!o&&i&&typeof r=="boolean"&&(o=r?De.has(e):Re.has(e)),a&&o}}var Hi=":self",Pn=new RegExp(`s*${Hi}s*,?`,"g");function Yi(s,e,t,i){return new dt(s).build(e,t,i)}var Ki="",dt=class{_driver;constructor(e){this._driver=e}build(e,t,i){let n=new mt(t);return this._resetContextStyleTimingState(n),O(this,se(e),n)}_resetContextStyleTimingState(e){e.currentQuerySelector=Ki,e.collectedStyles=new Map,e.collectedStyles.set(Ki,new Map),e.currentTime=0}visitTrigger(e,t){let i=t.queryCount=0,n=t.depCount=0,r=[],a=[];return e.name.charAt(0)=="@"&&t.errors.push(li()),e.definitions.forEach(o=>{if(this._resetContextStyleTimingState(t),o.type==S.State){let l=o,c=l.name;c.toString().split(/\s*,\s*/).forEach(h=>{l.name=h,r.push(this.visitState(l,t))}),l.name=c}else if(o.type==S.Transition){let l=this.visitTransition(o,t);i+=l.queryCount,n+=l.depCount,a.push(l)}else t.errors.push(ci())}),{type:S.Trigger,name:e.name,states:r,transitions:a,queryCount:i,depCount:n,options:null}}visitState(e,t){let i=this.visitStyle(e.styles,t),n=e.options&&e.options.params||null;if(i.containsDynamicStyles){let r=new Set,a=n||{};i.styles.forEach(o=>{o instanceof Map&&o.forEach(l=>{at(l).forEach(c=>{a.hasOwnProperty(c)||r.add(c)})})}),r.size&&t.errors.push(ui(e.name,[...r.values()]))}return{type:S.State,name:e.name,style:i,options:n?{params:n}:null}}visitTransition(e,t){t.queryCount=0,t.depCount=0;let i=O(this,se(e.animation),t),n=An(e.expr,t.errors);return{type:S.Transition,matchers:n,animation:i,queryCount:t.queryCount,depCount:t.depCount,options:Z(e.options)}}visitSequence(e,t){return{type:S.Sequence,steps:e.steps.map(i=>O(this,i,t)),options:Z(e.options)}}visitGroup(e,t){let i=t.currentTime,n=0,r=e.steps.map(a=>{t.currentTime=i;let o=O(this,a,t);return n=Math.max(n,t.currentTime),o});return t.currentTime=n,{type:S.Group,steps:r,options:Z(e.options)}}visitAnimate(e,t){let i=Dn(e.timings,t.errors);t.currentAnimateTimings=i;let n,r=e.styles?e.styles:Ye({});if(r.type==S.Keyframes)n=this.visitKeyframes(r,t);else{let a=e.styles,o=!1;if(!a){o=!0;let c={};i.easing&&(c.easing=i.easing),a=Ye(c)}t.currentTime+=i.duration+i.delay;let l=this.visitStyle(a,t);l.isEmptyStep=o,n=l}return t.currentAnimateTimings=null,{type:S.Animate,timings:i,style:n,options:null}}visitStyle(e,t){let i=this._makeStyleAst(e,t);return this._validateStyleAst(i,t),i}_makeStyleAst(e,t){let i=[],n=Array.isArray(e.styles)?e.styles:[e.styles];for(let o of n)typeof o=="string"?o===K?i.push(o):t.errors.push(hi(o)):i.push(new Map(Object.entries(o)));let r=!1,a=null;return i.forEach(o=>{if(o instanceof Map&&(o.has("easing")&&(a=o.get("easing"),o.delete("easing")),!r)){for(let l of o.values())if(l.toString().indexOf(nt)>=0){r=!0;break}}}),{type:S.Style,styles:i,easing:a,offset:e.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(e,t){let i=t.currentAnimateTimings,n=t.currentTime,r=t.currentTime;i&&r>0&&(r-=i.duration+i.delay),e.styles.forEach(a=>{typeof a!="string"&&a.forEach((o,l)=>{let c=t.collectedStyles.get(t.currentQuerySelector),h=c.get(l),u=!0;h&&(r!=n&&r>=h.startTime&&n<=h.endTime&&(t.errors.push(di(l,h.startTime,h.endTime,r,n)),u=!1),r=h.startTime),u&&c.set(l,{startTime:r,endTime:n}),t.options&&Ii(o,t.options,t.errors)})})}visitKeyframes(e,t){let i={type:S.Keyframes,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(mi()),i;let n=1,r=0,a=[],o=!1,l=!1,c=0,h=e.steps.map(b=>{let w=this._makeStyleAst(b,t),M=w.offset!=null?w.offset:Mn(w.styles),N=0;return M!=null&&(r++,N=w.offset=M),l=l||N<0||N>1,o=o||N<c,c=N,a.push(N),w});l&&t.errors.push(fi()),o&&t.errors.push(pi());let u=e.steps.length,_=0;r>0&&r<u?t.errors.push(gi()):r==0&&(_=n/(u-1));let y=u-1,m=t.currentTime,g=t.currentAnimateTimings,T=g.duration;return h.forEach((b,w)=>{let M=_>0?w==y?1:_*w:a[w],N=M*T;t.currentTime=m+g.delay+N,g.duration=N,this._validateStyleAst(b,t),b.offset=M,i.styles.push(b)}),i}visitReference(e,t){return{type:S.Reference,animation:O(this,se(e.animation),t),options:Z(e.options)}}visitAnimateChild(e,t){return t.depCount++,{type:S.AnimateChild,options:Z(e.options)}}visitAnimateRef(e,t){return{type:S.AnimateRef,animation:this.visitReference(e.animation,t),options:Z(e.options)}}visitQuery(e,t){let i=t.currentQuerySelector,n=e.options||{};t.queryCount++,t.currentQuery=e;let[r,a]=Nn(e.selector);t.currentQuerySelector=i.length?i+" "+r:r,k(t.collectedStyles,t.currentQuerySelector,new Map);let o=O(this,se(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=i,{type:S.Query,selector:r,limit:n.limit||0,optional:!!n.optional,includeSelf:a,animation:o,originalSelector:e.selector,options:Z(e.options)}}visitStagger(e,t){t.currentQuery||t.errors.push(yi());let i=e.timings==="full"?{duration:0,delay:0,easing:"full"}:he(e.timings,t.errors,!0);return{type:S.Stagger,animation:O(this,se(e.animation),t),timings:i,options:null}}};function Nn(s){let e=!!s.split(/\s*,\s*/).find(t=>t==Hi);return e&&(s=s.replace(Pn,"")),s=s.replace(/@\*/g,ue).replace(/@\w+/g,t=>ue+"-"+t.slice(1)).replace(/:animating/g,Ne),[s,e]}function Cn(s){return s?ye({},s):null}var mt=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function Mn(s){if(typeof s=="string")return null;let e=null;if(Array.isArray(s))s.forEach(t=>{if(t instanceof Map&&t.has("offset")){let i=t;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(s instanceof Map&&s.has("offset")){let t=s;e=parseFloat(t.get("offset")),t.delete("offset")}return e}function Dn(s,e){if(s.hasOwnProperty("duration"))return s;if(typeof s=="number"){let r=he(s,e).duration;return ot(r,0,"")}let t=s;if(t.split(/\s+/).some(r=>r.charAt(0)=="{"&&r.charAt(1)=="{")){let r=ot(0,0,"");return r.dynamic=!0,r.strValue=t,r}let n=he(t,e);return ot(n.duration,n.delay,n.easing)}function Z(s){return s?(s=ye({},s),s.params&&(s.params=Cn(s.params))):s={},s}function ot(s,e,t){return{duration:s,delay:e,easing:t}}function bt(s,e,t,i,n,r,a=null,o=!1){return{type:1,element:s,keyframes:e,preStyleProps:t,postStyleProps:i,duration:n,delay:r,totalTime:n+r,easing:a,subTimeline:o}}var me=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,t){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...t)}has(e){return this._map.has(e)}clear(){this._map.clear()}},Rn=1,kn=":enter",On=new RegExp(kn,"g"),In=":leave",Fn=new RegExp(In,"g");function Xi(s,e,t,i,n,r=new Map,a=new Map,o,l,c=[]){return new ft().buildKeyframes(s,e,t,i,n,r,a,o,l,c)}var ft=class{buildKeyframes(e,t,i,n,r,a,o,l,c,h=[]){c=c||new me;let u=new pt(e,t,c,n,r,h,[]);u.options=l;let _=l.delay?U(l.delay):0;u.currentTimeline.delayNextStep(_),u.currentTimeline.setStyles([a],null,u.errors,l),O(this,i,u);let y=u.timelines.filter(m=>m.containsAnimation());if(y.length&&o.size){let m;for(let g=y.length-1;g>=0;g--){let T=y[g];if(T.element===t){m=T;break}}m&&!m.allowOnlyTimelineStyles()&&m.setStyles([o],null,u.errors,l)}return y.length?y.map(m=>m.buildKeyframes()):[bt(t,[],[],[],0,_,"",!1)]}visitTrigger(e,t){}visitState(e,t){}visitTransition(e,t){}visitAnimateChild(e,t){let i=t.subInstructions.get(t.element);if(i){let n=t.createSubContext(e.options),r=t.currentTimeline.currentTime,a=this._visitSubInstructions(i,n,n.options);r!=a&&t.transformIntoNewTimeline(a)}t.previousNode=e}visitAnimateRef(e,t){let i=t.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],t,i),this.visitReference(e.animation,i),t.transformIntoNewTimeline(i.currentTimeline.currentTime),t.previousNode=e}_applyAnimationRefDelays(e,t,i){for(let n of e){let r=n?.delay;if(r){let a=typeof r=="number"?r:U(re(r,n?.params??{},t.errors));i.delayNextStep(a)}}}_visitSubInstructions(e,t,i){let r=t.currentTimeline.currentTime,a=i.duration!=null?U(i.duration):null,o=i.delay!=null?U(i.delay):null;return a!==0&&e.forEach(l=>{let c=t.appendInstructionToTimeline(l,a,o);r=Math.max(r,c.duration+c.delay)}),r}visitReference(e,t){t.updateOptions(e.options,!0),O(this,e.animation,t),t.previousNode=e}visitSequence(e,t){let i=t.subContextCount,n=t,r=e.options;if(r&&(r.params||r.delay)&&(n=t.createSubContext(r),n.transformIntoNewTimeline(),r.delay!=null)){n.previousNode.type==S.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=Le);let a=U(r.delay);n.delayNextStep(a)}e.steps.length&&(e.steps.forEach(a=>O(this,a,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),t.previousNode=e}visitGroup(e,t){let i=[],n=t.currentTimeline.currentTime,r=e.options&&e.options.delay?U(e.options.delay):0;e.steps.forEach(a=>{let o=t.createSubContext(e.options);r&&o.delayNextStep(r),O(this,a,o),n=Math.max(n,o.currentTimeline.currentTime),i.push(o.currentTimeline)}),i.forEach(a=>t.currentTimeline.mergeTimelineCollectedStyles(a)),t.transformIntoNewTimeline(n),t.previousNode=e}_visitTiming(e,t){if(e.dynamic){let i=e.strValue,n=t.params?re(i,t.params,t.errors):i;return he(n,t.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,t){let i=t.currentAnimateTimings=this._visitTiming(e.timings,t),n=t.currentTimeline;i.delay&&(t.incrementTime(i.delay),n.snapshotCurrentStyles());let r=e.style;r.type==S.Keyframes?this.visitKeyframes(r,t):(t.incrementTime(i.duration),this.visitStyle(r,t),n.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e}visitStyle(e,t){let i=t.currentTimeline,n=t.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();let r=n&&n.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(r):i.setStyles(e.styles,r,t.errors,t.options),t.previousNode=e}visitKeyframes(e,t){let i=t.currentAnimateTimings,n=t.currentTimeline.duration,r=i.duration,o=t.createSubContext().currentTimeline;o.easing=i.easing,e.styles.forEach(l=>{let c=l.offset||0;o.forwardTime(c*r),o.setStyles(l.styles,l.easing,t.errors,t.options),o.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(o),t.transformIntoNewTimeline(n+r),t.previousNode=e}visitQuery(e,t){let i=t.currentTimeline.currentTime,n=e.options||{},r=n.delay?U(n.delay):0;r&&(t.previousNode.type===S.Style||i==0&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=Le);let a=i,o=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!n.optional,t.errors);t.currentQueryTotal=o.length;let l=null;o.forEach((c,h)=>{t.currentQueryIndex=h;let u=t.createSubContext(e.options,c);r&&u.delayNextStep(r),c===t.element&&(l=u.currentTimeline),O(this,e.animation,u),u.currentTimeline.applyStylesToKeyframe();let _=u.currentTimeline.currentTime;a=Math.max(a,_)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(a),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e}visitStagger(e,t){let i=t.parentContext,n=t.currentTimeline,r=e.timings,a=Math.abs(r.duration),o=a*(t.currentQueryTotal-1),l=a*t.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":l=o-l;break;case"full":l=i.currentStaggerTime;break}let h=t.currentTimeline;l&&h.delayNextStep(l);let u=h.currentTime;O(this,e.animation,t),t.previousNode=e,i.currentStaggerTime=n.currentTime-u+(n.startTime-i.currentTimeline.startTime)}},Le={},pt=class s{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=Le;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,t,i,n,r,a,o,l){this._driver=e,this.element=t,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=r,this.errors=a,this.timelines=o,this.currentTimeline=l||new ze(this._driver,t,0),o.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,t){if(!e)return;let i=e,n=this.options;i.duration!=null&&(n.duration=U(i.duration)),i.delay!=null&&(n.delay=U(i.delay));let r=i.params;if(r){let a=n.params;a||(a=this.options.params={}),Object.keys(r).forEach(o=>{(!t||!a.hasOwnProperty(o))&&(a[o]=re(r[o],a,this.errors))})}}_copyOptions(){let e={};if(this.options){let t=this.options.params;if(t){let i=e.params={};Object.keys(t).forEach(n=>{i[n]=t[n]})}}return e}createSubContext(e=null,t,i){let n=t||this.element,r=new s(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(e),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(e){return this.previousNode=Le,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,t,i){let n={duration:t??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},r=new gt(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,n,e.stretchStartingKeyframe);return this.timelines.push(r),n}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,t,i,n,r,a){let o=[];if(n&&o.push(this.element),e.length>0){e=e.replace(On,"."+this._enterClassName),e=e.replace(Fn,"."+this._leaveClassName);let l=i!=1,c=this._driver.query(this.element,e,l);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),o.push(...c)}return!r&&o.length==0&&a.push(_i(t)),o}},ze=class s{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,t,i,n){this._driver=e,this.element=t,this.startTime=i,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let t=this._keyframes.size===1&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,t){return this.applyStylesToKeyframe(),new s(this._driver,e,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=Rn,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,t){this._localTimelineStyles.set(e,t),this._globalTimelineStyles.set(e,t),this._styleSummary.set(e,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[t,i]of this._globalTimelineStyles)this._backFill.set(t,i||K),this._currentKeyframe.set(t,K);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,t,i,n){t&&this._previousKeyframe.set("easing",t);let r=n&&n.params||{},a=Ln(e,this._globalTimelineStyles);for(let[o,l]of a){let c=re(l,r,i);this._pendingStyles.set(o,c),this._localTimelineStyles.has(o)||this._backFill.set(o,this._globalTimelineStyles.get(o)??K),this._updateStyle(o,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,t)=>{this._currentKeyframe.set(t,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,e)}))}snapshotCurrentStyles(){for(let[e,t]of this._localTimelineStyles)this._pendingStyles.set(e,t),this._updateStyle(e,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let t in this._currentKeyframe)e.push(t);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((t,i)=>{let n=this._styleSummary.get(i);(!n||t.time>n.time)&&this._updateStyle(i,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,t=new Set,i=this._keyframes.size===1&&this.duration===0,n=[];this._keyframes.forEach((o,l)=>{let c=new Map([...this._backFill,...o]);c.forEach((h,u)=>{h===le?e.add(u):h===K&&t.add(u)}),i||c.set("offset",l/this.duration),n.push(c)});let r=[...e.values()],a=[...t.values()];if(i){let o=n[0],l=new Map(o);o.set("offset",0),l.set("offset",1),n=[o,l]}return bt(this.element,n,r,a,this.duration,this.startTime,this.easing,!1)}},gt=class extends ze{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,t,i,n,r,a,o=!1){super(e,t,a.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=r,this._stretchStartingKeyframe=o,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:t,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&t){let r=[],a=i+t,o=t/a,l=new Map(e[0]);l.set("offset",0),r.push(l);let c=new Map(e[0]);c.set("offset",ji(o)),r.push(c);let h=e.length-1;for(let u=1;u<=h;u++){let _=new Map(e[u]),y=_.get("offset"),m=t+y*i;_.set("offset",ji(m/a)),r.push(_)}i=a,t=0,n="",e=r}return bt(this.element,e,this.preStyleProps,this.postStyleProps,i,t,n,!0)}};function ji(s,e=3){let t=Math.pow(10,e-1);return Math.round(s*t)/t}function Ln(s,e){let t=new Map,i;return s.forEach(n=>{if(n==="*"){i??=e.keys();for(let r of i)t.set(r,K)}else for(let[r,a]of n)t.set(r,a)}),t}function Bi(s,e,t,i,n,r,a,o,l,c,h,u,_){return{type:0,element:s,triggerName:e,isRemovalTransition:n,fromState:t,fromStyles:r,toState:i,toStyles:a,timelines:o,queriedElements:l,preStyleProps:c,postStyleProps:h,totalTime:u,errors:_}}var lt={},Ke=class{_triggerName;ast;_stateStyles;constructor(e,t,i){this._triggerName=e,this.ast=t,this._stateStyles=i}match(e,t,i,n){return zn(this.ast.matchers,e,t,i,n)}buildStyles(e,t,i){let n=this._stateStyles.get("*");return e!==void 0&&(n=this._stateStyles.get(e?.toString())||n),n?n.buildStyles(t,i):new Map}build(e,t,i,n,r,a,o,l,c,h){let u=[],_=this.ast.options&&this.ast.options.params||lt,y=o&&o.params||lt,m=this.buildStyles(i,y,u),g=l&&l.params||lt,T=this.buildStyles(n,g,u),b=new Set,w=new Map,M=new Map,N=n==="void",ie={params:xi(g,_),delay:this.ast.options?.delay},q=h?[]:Xi(e,t,this.ast.animation,r,a,m,T,ie,c,u),D=0;return q.forEach(R=>{D=Math.max(R.duration+R.delay,D)}),u.length?Bi(t,this._triggerName,i,n,N,m,T,[],[],w,M,D,u):(q.forEach(R=>{let W=R.element,ne=k(w,W,new Set);R.preStyleProps.forEach(H=>ne.add(H));let wt=k(M,W,new Set);R.postStyleProps.forEach(H=>wt.add(H)),W!==t&&b.add(W)}),Bi(t,this._triggerName,i,n,N,m,T,q,[...b.values()],w,M,D))}};function zn(s,e,t,i,n){return s.some(r=>r(e,t,i,n))}function xi(s,e){let t=ye({},e);return Object.entries(s).forEach(([i,n])=>{n!=null&&(t[i]=n)}),t}var yt=class{styles;defaultParams;normalizer;constructor(e,t,i){this.styles=e,this.defaultParams=t,this.normalizer=i}buildStyles(e,t){let i=new Map,n=xi(e,this.defaultParams);return this.styles.styles.forEach(r=>{typeof r!="string"&&r.forEach((a,o)=>{a&&(a=re(a,n,t));let l=this.normalizer.normalizePropertyName(o,t);a=this.normalizer.normalizeStyleValue(o,l,a,t),i.set(o,a)})}),i}};function Kn(s,e,t){return new _t(s,e,t)}var _t=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,t,i){this.name=e,this.ast=t,this._normalizer=i,t.states.forEach(n=>{let r=n.options&&n.options.params||{};this.states.set(n.name,new yt(n.style,r,i))}),qi(this.states,"true","1"),qi(this.states,"false","0"),t.transitions.forEach(n=>{this.transitionFactories.push(new Ke(e,n,this.states))}),this.fallbackTransition=jn(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,t,i,n){return this.transitionFactories.find(a=>a.match(e,t,i,n))||null}matchStyles(e,t,i){return this.fallbackTransition.buildStyles(e,t,i)}};function jn(s,e,t){let i=[(a,o)=>!0],n={type:S.Sequence,steps:[],options:null},r={type:S.Transition,animation:n,matchers:i,options:null,queryCount:0,depCount:0};return new Ke(s,r,e)}function qi(s,e,t){s.has(e)?s.has(t)||s.set(t,s.get(e)):s.has(t)&&s.set(e,s.get(t))}var Bn=new me,St=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,t,i){this.bodyNode=e,this._driver=t,this._normalizer=i}register(e,t){let i=[],n=[],r=Yi(this._driver,t,i,n);if(i.length)throw Ti(i);this._animations.set(e,r)}_buildPlayer(e,t,i){let n=e.element,r=Je(this._normalizer,e.keyframes,t,i);return this._driver.animate(n,r,e.duration,e.delay,e.easing,[],!0)}create(e,t,i={}){let n=[],r=this._animations.get(e),a,o=new Map;if(r?(a=Xi(this._driver,t,r,st,Pe,new Map,new Map,i,Bn,n),a.forEach(h=>{let u=k(o,h.element,new Map);h.postStyleProps.forEach(_=>u.set(_,null))})):(n.push(Ai()),a=[]),n.length)throw bi(n);o.forEach((h,u)=>{h.forEach((_,y)=>{h.set(y,this._driver.computeStyle(u,y,K))})});let l=a.map(h=>{let u=o.get(h.element);return this._buildPlayer(h,new Map,u)}),c=V(l);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let t=this._getPlayer(e);t.destroy(),this._playersById.delete(e);let i=this.players.indexOf(t);i>=0&&this.players.splice(i,1)}_getPlayer(e){let t=this._playersById.get(e);if(!t)throw wi(e);return t}listen(e,t,i,n){let r=be(t,"","","");return Ae(this._getPlayer(e),i,r,n),()=>{}}command(e,t,i,n){if(i=="register"){this.register(e,n[0]);return}if(i=="create"){let a=n[0]||{};this.create(e,t,a);return}let r=this._getPlayer(e);switch(i){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(e);break}}},Qi="ng-animate-queued",qn=".ng-animate-queued",ct="ng-animate-disabled",Qn=".ng-animate-disabled",Un="ng-star-inserted",Vn=".ng-star-inserted",$n=[],Zi={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Gn={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},B="__ng_removed",fe=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,t=""){this.namespaceId=t;let i=e&&e.hasOwnProperty("value"),n=i?e.value:e;if(this.value=Hn(n),i){let r=e,{value:a}=r,o=Mt(r,["value"]);this.options=o}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let t=e.params;if(t){let i=this.options.params;Object.keys(t).forEach(n=>{i[n]==null&&(i[n]=t[n])})}}},de="void",ut=new fe(de),Et=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,t,i){this.id=e,this.hostElement=t,this._engine=i,this._hostClassName="ng-tns-"+e,L(t,this._hostClassName)}listen(e,t,i,n){if(!this._triggers.has(t))throw Pi(i,t);if(i==null||i.length==0)throw Ni(t);if(!Yn(i))throw Ci(i,t);let r=k(this._elementListeners,e,[]),a={name:t,phase:i,callback:n};r.push(a);let o=k(this._engine.statesByElement,e,new Map);return o.has(t)||(L(e,ce),L(e,ce+"-"+t),o.set(t,ut)),()=>{this._engine.afterFlush(()=>{let l=r.indexOf(a);l>=0&&r.splice(l,1),this._triggers.has(t)||o.delete(t)})}}register(e,t){return this._triggers.has(e)?!1:(this._triggers.set(e,t),!0)}_getTrigger(e){let t=this._triggers.get(e);if(!t)throw Mi(e);return t}trigger(e,t,i,n=!0){let r=this._getTrigger(t),a=new pe(this.id,t,e),o=this._engine.statesByElement.get(e);o||(L(e,ce),L(e,ce+"-"+t),this._engine.statesByElement.set(e,o=new Map));let l=o.get(t),c=new fe(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),o.set(t,c),l||(l=ut),!(c.value===de)&&l.value===c.value){if(!Zn(l.params,c.params)){let g=[],T=r.matchStyles(l.value,l.params,g),b=r.matchStyles(c.value,c.params,g);g.length?this._engine.reportError(g):this._engine.afterFlush(()=>{G(e,T),j(e,b)})}return}let _=k(this._engine.playersByElement,e,[]);_.forEach(g=>{g.namespaceId==this.id&&g.triggerName==t&&g.queued&&g.destroy()});let y=r.matchTransition(l.value,c.value,e,c.params),m=!1;if(!y){if(!n)return;y=r.fallbackTransition,m=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:y,fromState:l,toState:c,player:a,isFallbackTransition:m}),m||(L(e,Qi),a.onStart(()=>{ae(e,Qi)})),a.onDone(()=>{let g=this.players.indexOf(a);g>=0&&this.players.splice(g,1);let T=this._engine.playersByElement.get(e);if(T){let b=T.indexOf(a);b>=0&&T.splice(b,1)}}),this.players.push(a),_.push(a),a}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(t=>t.delete(e)),this._elementListeners.forEach((t,i)=>{this._elementListeners.set(i,t.filter(n=>n.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let t=this._engine.playersByElement.get(e);t&&(t.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,t){let i=this._engine.driver.query(e,ue,!0);i.forEach(n=>{if(n[B])return;let r=this._engine.fetchNamespacesByElement(n);r.size?r.forEach(a=>a.triggerLeaveAnimation(n,t,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(e,t,i,n){let r=this._engine.statesByElement.get(e),a=new Map;if(r){let o=[];if(r.forEach((l,c)=>{if(a.set(c,l.value),this._triggers.has(c)){let h=this.trigger(e,c,de,n);h&&o.push(h)}}),o.length)return this._engine.markElementAsRemoved(this.id,e,!0,t,a),i&&V(o).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let t=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(t&&i){let n=new Set;t.forEach(r=>{let a=r.name;if(n.has(a))return;n.add(a);let l=this._triggers.get(a).fallbackTransition,c=i.get(a)||ut,h=new fe(de),u=new pe(this.id,a,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:a,transition:l,fromState:c,toState:h,player:u,isFallbackTransition:!0})})}}removeNode(e,t){let i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t),this.triggerLeaveAnimation(e,t,!0))return;let n=!1;if(i.totalAnimations){let r=i.players.length?i.playersByQueriedElement.get(e):[];if(r&&r.length)n=!0;else{let a=e;for(;a=a.parentNode;)if(i.statesByElement.get(a)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(e),n)i.markElementAsRemoved(this.id,e,!1,t);else{let r=e[B];(!r||r===Zi)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,t))}}insertNode(e,t){L(e,this._hostClassName)}drainQueuedTransitions(e){let t=[];return this._queue.forEach(i=>{let n=i.player;if(n.destroyed)return;let r=i.element,a=this._elementListeners.get(r);a&&a.forEach(o=>{if(o.name==i.triggerName){let l=be(r,i.triggerName,i.fromState.value,i.toState.value);l._data=e,Ae(i.player,o.phase,l,o.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):t.push(i)}),this._queue=[],t.sort((i,n)=>{let r=i.transition.ast.depCount,a=n.transition.ast.depCount;return r==0||a==0?r-a:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(e){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},vt=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,t)=>{};_onRemovalComplete(e,t){this.onRemovalComplete(e,t)}constructor(e,t,i){this.bodyNode=e,this.driver=t,this._normalizer=i}get queuedPlayers(){let e=[];return this._namespaceList.forEach(t=>{t.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,t){let i=new Et(e,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(i,t):(this.newHostElements.set(t,i),this.collectEnterElement(t)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,t){let i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,o=this.driver.getParentElement(t);for(;o;){let l=n.get(o);if(l){let c=i.indexOf(l);i.splice(c+1,0,e),a=!0;break}o=this.driver.getParentElement(o)}a||i.unshift(e)}else i.push(e);return n.set(t,e),e}register(e,t){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,t)),i}registerTrigger(e,t,i){let n=this._namespaceLookup[e];n&&n.register(t,i)&&this.totalAnimations++}destroy(e,t){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);let n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(t),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let t=new Set,i=this.statesByElement.get(e);if(i){for(let n of i.values())if(n.namespaceId){let r=this._fetchNamespace(n.namespaceId);r&&t.add(r)}}return t}trigger(e,t,i,n){if(ke(t)){let r=this._fetchNamespace(e);if(r)return r.trigger(t,i,n),!0}return!1}insertNode(e,t,i,n){if(!ke(t))return;let r=t[B];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;let a=this.collectedLeaveElements.indexOf(t);a>=0&&this.collectedLeaveElements.splice(a,1)}if(e){let a=this._fetchNamespace(e);a&&a.insertNode(t,i)}n&&this.collectEnterElement(t)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),L(e,ct)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),ae(e,ct))}removeNode(e,t,i){if(ke(t)){let n=e?this._fetchNamespace(e):null;n?n.removeNode(t,i):this.markElementAsRemoved(e,t,!1,i);let r=this.namespacesByHostElement.get(t);r&&r.id!==e&&r.removeNode(t,i)}else this._onRemovalComplete(t,i)}markElementAsRemoved(e,t,i,n,r){this.collectedLeaveElements.push(t),t[B]={namespaceId:e,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(e,t,i,n,r){return ke(t)?this._fetchNamespace(e).listen(t,i,n,r):()=>{}}_buildInstruction(e,t,i,n,r){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,n,e.fromState.options,e.toState.options,t,r)}destroyInnerAnimations(e){let t=this.driver.query(e,ue,!0);t.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(t=this.driver.query(e,Ne,!0),t.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){let t=this.playersByElement.get(e);t&&t.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){let t=this.playersByQueriedElement.get(e);t&&t.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return V(this.players).onDone(()=>e());e()})}processLeaveNode(e){let t=e[B];if(t&&t.setForRemoval){if(e[B]=Zi,t.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(t.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,t.setForRemoval)}e.classList?.contains(ct)&&this.markElementAsDisabled(e,!1),this.driver.query(e,Qn,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;i<this.collectedEnterElements.length;i++){let n=this.collectedEnterElements[i];L(n,Un)}if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){let i=[];try{t=this._flushAnimations(i,e)}finally{for(let n=0;n<i.length;n++)i[n]()}}else for(let i=0;i<this.collectedLeaveElements.length;i++){let n=this.collectedLeaveElements[i];this.processLeaveNode(n)}if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(i=>i()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],t.length?V(t).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(e){throw Di(e)}_flushAnimations(e,t){let i=new me,n=[],r=new Map,a=[],o=new Map,l=new Map,c=new Map,h=new Set;this.disabledNodes.forEach(d=>{h.add(d);let f=this.driver.query(d,qn,!0);for(let p=0;p<f.length;p++)h.add(f[p])});let u=this.bodyNode,_=Array.from(this.statesByElement.keys()),y=$i(_,this.collectedEnterElements),m=new Map,g=0;y.forEach((d,f)=>{let p=st+g++;m.set(f,p),d.forEach(E=>L(E,p))});let T=[],b=new Set,w=new Set;for(let d=0;d<this.collectedLeaveElements.length;d++){let f=this.collectedLeaveElements[d],p=f[B];p&&p.setForRemoval&&(T.push(f),b.add(f),p.hasAnimation?this.driver.query(f,Vn,!0).forEach(E=>b.add(E)):w.add(f))}let M=new Map,N=$i(_,Array.from(b));N.forEach((d,f)=>{let p=Pe+g++;M.set(f,p),d.forEach(E=>L(E,p))}),e.push(()=>{y.forEach((d,f)=>{let p=m.get(f);d.forEach(E=>ae(E,p))}),N.forEach((d,f)=>{let p=M.get(f);d.forEach(E=>ae(E,p))}),T.forEach(d=>{this.processLeaveNode(d)})});let ie=[],q=[];for(let d=this._namespaceList.length-1;d>=0;d--)this._namespaceList[d].drainQueuedTransitions(t).forEach(p=>{let E=p.player,P=p.element;if(ie.push(E),this.collectedEnterElements.length){let C=P[B];if(C&&C.setForMove){if(C.previousTriggersValues&&C.previousTriggersValues.has(p.triggerName)){let Y=C.previousTriggersValues.get(p.triggerName),F=this.statesByElement.get(p.element);if(F&&F.has(p.triggerName)){let ge=F.get(p.triggerName);ge.value=Y,F.set(p.triggerName,ge)}}E.destroy();return}}let Q=!u||!this.driver.containsElement(u,P),I=M.get(P),$=m.get(P),A=this._buildInstruction(p,i,$,I,Q);if(A.errors&&A.errors.length){q.push(A);return}if(Q){E.onStart(()=>G(P,A.fromStyles)),E.onDestroy(()=>j(P,A.toStyles)),n.push(E);return}if(p.isFallbackTransition){E.onStart(()=>G(P,A.fromStyles)),E.onDestroy(()=>j(P,A.toStyles)),n.push(E);return}let Ct=[];A.timelines.forEach(C=>{C.stretchStartingKeyframe=!0,this.disabledNodes.has(C.element)||Ct.push(C)}),A.timelines=Ct,i.append(P,A.timelines);let on={instruction:A,player:E,element:P};a.push(on),A.queriedElements.forEach(C=>k(o,C,[]).push(E)),A.preStyleProps.forEach((C,Y)=>{if(C.size){let F=l.get(Y);F||l.set(Y,F=new Set),C.forEach((ge,$e)=>F.add($e))}}),A.postStyleProps.forEach((C,Y)=>{let F=c.get(Y);F||c.set(Y,F=new Set),C.forEach((ge,$e)=>F.add($e))})});if(q.length){let d=[];q.forEach(f=>{d.push(Ri(f.triggerName,f.errors))}),ie.forEach(f=>f.destroy()),this.reportError(d)}let D=new Map,R=new Map;a.forEach(d=>{let f=d.element;i.has(f)&&(R.set(f,f),this._beforeAnimationBuild(d.player.namespaceId,d.instruction,D))}),n.forEach(d=>{let f=d.element;this._getPreviousPlayers(f,!1,d.namespaceId,d.triggerName,null).forEach(E=>{k(D,f,[]).push(E),E.destroy()})});let W=T.filter(d=>Gi(d,l,c)),ne=new Map;Vi(ne,this.driver,w,c,K).forEach(d=>{Gi(d,l,c)&&W.push(d)});let H=new Map;y.forEach((d,f)=>{Vi(H,this.driver,new Set(d),l,le)}),W.forEach(d=>{let f=ne.get(d),p=H.get(d);ne.set(d,new Map([...f?.entries()??[],...p?.entries()??[]]))});let Ve=[],Pt=[],Nt={};a.forEach(d=>{let{element:f,player:p,instruction:E}=d;if(i.has(f)){if(h.has(f)){p.onDestroy(()=>j(f,E.toStyles)),p.disabled=!0,p.overrideTotalTime(E.totalTime),n.push(p);return}let P=Nt;if(R.size>1){let I=f,$=[];for(;I=I.parentNode;){let A=R.get(I);if(A){P=A;break}$.push(I)}$.forEach(A=>R.set(A,P))}let Q=this._buildAnimation(p.namespaceId,E,D,r,H,ne);if(p.setRealPlayer(Q),P===Nt)Ve.push(p);else{let I=this.playersByElement.get(P);I&&I.length&&(p.parentPlayer=V(I)),n.push(p)}}else G(f,E.fromStyles),p.onDestroy(()=>j(f,E.toStyles)),Pt.push(p),h.has(f)&&n.push(p)}),Pt.forEach(d=>{let f=r.get(d.element);if(f&&f.length){let p=V(f);d.setRealPlayer(p)}}),n.forEach(d=>{d.parentPlayer?d.syncPlayerEvents(d.parentPlayer):d.destroy()});for(let d=0;d<T.length;d++){let f=T[d],p=f[B];if(ae(f,Pe),p&&p.hasAnimation)continue;let E=[];if(o.size){let Q=o.get(f);Q&&Q.length&&E.push(...Q);let I=this.driver.query(f,Ne,!0);for(let $=0;$<I.length;$++){let A=o.get(I[$]);A&&A.length&&E.push(...A)}}let P=E.filter(Q=>!Q.destroyed);P.length?Xn(this,f,P):this.processLeaveNode(f)}return T.length=0,Ve.forEach(d=>{this.players.push(d),d.onDone(()=>{d.destroy();let f=this.players.indexOf(d);this.players.splice(f,1)}),d.play()}),Ve}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,t,i,n,r){let a=[];if(t){let o=this.playersByQueriedElement.get(e);o&&(a=o)}else{let o=this.playersByElement.get(e);if(o){let l=!r||r==de;o.forEach(c=>{c.queued||!l&&c.triggerName!=n||a.push(c)})}}return(i||n)&&(a=a.filter(o=>!(i&&i!=o.namespaceId||n&&n!=o.triggerName))),a}_beforeAnimationBuild(e,t,i){let n=t.triggerName,r=t.element,a=t.isRemovalTransition?void 0:e,o=t.isRemovalTransition?void 0:n;for(let l of t.timelines){let c=l.element,h=c!==r,u=k(i,c,[]);this._getPreviousPlayers(c,h,a,o,t.toState).forEach(y=>{let m=y.getRealPlayer();m.beforeDestroy&&m.beforeDestroy(),y.destroy(),u.push(y)})}G(r,t.fromStyles)}_buildAnimation(e,t,i,n,r,a){let o=t.triggerName,l=t.element,c=[],h=new Set,u=new Set,_=t.timelines.map(m=>{let g=m.element;h.add(g);let T=g[B];if(T&&T.removedBeforeQueried)return new X(m.duration,m.delay);let b=g!==l,w=xn((i.get(g)||$n).map(D=>D.getRealPlayer())).filter(D=>{let R=D;return R.element?R.element===g:!1}),M=r.get(g),N=a.get(g),ie=Je(this._normalizer,m.keyframes,M,N),q=this._buildPlayer(m,ie,w);if(m.subTimeline&&n&&u.add(g),b){let D=new pe(e,o,g);D.setRealPlayer(q),c.push(D)}return q});c.forEach(m=>{k(this.playersByQueriedElement,m.element,[]).push(m),m.onDone(()=>Wn(this.playersByQueriedElement,m.element,m))}),h.forEach(m=>L(m,rt));let y=V(_);return y.onDestroy(()=>{h.forEach(m=>ae(m,rt)),j(l,t.toStyles)}),u.forEach(m=>{k(n,m,[]).push(y)}),y}_buildPlayer(e,t,i){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,i):new X(e.duration,e.delay)}},pe=class{namespaceId;triggerName;element;_player=new X;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,t,i){this.namespaceId=e,this.triggerName=t,this.element=i}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((t,i)=>{t.forEach(n=>Ae(e,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let t=this._player;t.triggerCallback&&e.onStart(()=>t.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,t){k(this._queuedCallbacks,e,[]).push(t)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let t=this._player;t.triggerCallback&&t.triggerCallback(e)}};function Wn(s,e,t){let i=s.get(e);if(i){if(i.length){let n=i.indexOf(t);i.splice(n,1)}i.length==0&&s.delete(e)}return i}function Hn(s){return s??null}function ke(s){return s&&s.nodeType===1}function Yn(s){return s=="start"||s=="done"}function Ui(s,e){let t=s.style.display;return s.style.display=e??"none",t}function Vi(s,e,t,i,n){let r=[];t.forEach(l=>r.push(Ui(l)));let a=[];i.forEach((l,c)=>{let h=new Map;l.forEach(u=>{let _=e.computeStyle(c,u,n);h.set(u,_),(!_||_.length==0)&&(c[B]=Gn,a.push(c))}),s.set(c,h)});let o=0;return t.forEach(l=>Ui(l,r[o++])),a}function $i(s,e){let t=new Map;if(s.forEach(o=>t.set(o,[])),e.length==0)return t;let i=1,n=new Set(e),r=new Map;function a(o){if(!o)return i;let l=r.get(o);if(l)return l;let c=o.parentNode;return t.has(c)?l=c:n.has(c)?l=i:l=a(c),r.set(o,l),l}return e.forEach(o=>{let l=a(o);l!==i&&t.get(l).push(o)}),t}function L(s,e){s.classList?.add(e)}function ae(s,e){s.classList?.remove(e)}function Xn(s,e,t){V(t).onDone(()=>s.processLeaveNode(e))}function xn(s){let e=[];return Ji(s,e),e}function Ji(s,e){for(let t=0;t<s.length;t++){let i=s[t];i instanceof ve?Ji(i.players,e):e.push(i)}}function Zn(s,e){let t=Object.keys(s),i=Object.keys(e);if(t.length!=i.length)return!1;for(let n=0;n<t.length;n++){let r=t[n];if(!e.hasOwnProperty(r)||s[r]!==e[r])return!1}return!0}function Gi(s,e,t){let i=t.get(s);if(!i)return!1;let n=e.get(s);return n?i.forEach(r=>n.add(r)):e.set(s,i),t.delete(s),!0}var oe=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,t)=>{};constructor(e,t,i){this._driver=t,this._normalizer=i,this._transitionEngine=new vt(e.body,t,i),this._timelineEngine=new St(e.body,t,i),this._transitionEngine.onRemovalComplete=(n,r)=>this.onRemovalComplete(n,r)}registerTrigger(e,t,i,n,r){let a=e+"-"+n,o=this._triggerCache[a];if(!o){let l=[],c=[],h=Yi(this._driver,r,l,c);if(l.length)throw vi(n,l);o=Kn(n,h,this._normalizer),this._triggerCache[a]=o}this._transitionEngine.registerTrigger(t,n,o)}register(e,t){this._transitionEngine.register(e,t)}destroy(e,t){this._transitionEngine.destroy(e,t)}onInsert(e,t,i,n){this._transitionEngine.insertNode(e,t,i,n)}onRemove(e,t,i){this._transitionEngine.removeNode(e,t,i)}disableAnimations(e,t){this._transitionEngine.markElementAsDisabled(e,t)}process(e,t,i,n){if(i.charAt(0)=="@"){let[r,a]=et(i),o=n;this._timelineEngine.command(r,t,a,o)}else this._transitionEngine.trigger(e,t,i,n)}listen(e,t,i,n,r){if(i.charAt(0)=="@"){let[a,o]=et(i);return this._timelineEngine.listen(a,t,o,r)}return this._transitionEngine.listen(e,t,i,n,r)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function Jn(s,e){let t=null,i=null;return Array.isArray(e)&&e.length?(t=ht(e[0]),e.length>1&&(i=ht(e[e.length-1]))):e instanceof Map&&(t=ht(e)),t||i?new es(s,t,i):null}var es=(()=>{class s{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(t,i,n){this._element=t,this._startStyles=i,this._endStyles=n;let r=s.initialStylesByElement.get(t);r||s.initialStylesByElement.set(t,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&j(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(j(this._element,this._initialStyles),this._endStyles&&(j(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(s.initialStylesByElement.delete(this._element),this._startStyles&&(G(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(G(this._element,this._endStyles),this._endStyles=null),j(this._element,this._initialStyles),this._state=3)}}return s})();function ht(s){let e=null;return s.forEach((t,i)=>{ts(i)&&(e=e||new Map,e.set(i,t))}),e}function ts(s){return s==="display"||s==="position"}var je=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer=null;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,t,i,n){this.element=e,this.keyframes=t,this.options=i,this._specialStyles=n,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer()&&this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return this.domPlayer;this._initialized=!0;let e=this.keyframes,t=this._triggerWebAnimation(this.element,e,this.options);if(!t)return this._onFinish(),null;this.domPlayer=t,this._finalKeyframe=e.length?e[e.length-1]:new Map;let i=()=>this._onFinish();return t.addEventListener("finish",i),this.onDestroy(()=>{t.removeEventListener("finish",i)}),t}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer?.pause()}_convertKeyframesToObject(e){let t=[];return e.forEach(i=>{t.push(Object.fromEntries(i))}),t}_triggerWebAnimation(e,t,i){let n=this._convertKeyframesToObject(t);try{return e.animate(n,i)}catch(r){return null}}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){let e=this._buildPlayer();e&&(this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),e.play())}pause(){this.init(),this.domPlayer?.pause()}finish(){this.init(),this.domPlayer&&(this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish())}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer?.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer||this.init(),this.domPlayer&&(this.domPlayer.currentTime=e*this.time)}getPosition(){return this.domPlayer?+(this.domPlayer.currentTime??0)/this.time:this._initialized?1:0}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{n!=="offset"&&e.set(n,this._finished?i:Me(this.element,n))}),this.currentSnapshot=e}triggerCallback(e){let t=e==="start"?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}},Be=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,t){return tt(e,t)}getParentElement(e){return we(e)}query(e,t,i){return it(e,t,i)}computeStyle(e,t,i){return Me(e,t)}animate(e,t,i,n,r,a=[]){let o=n==0?"both":"forwards",l={duration:i,delay:n,fill:o};r&&(l.easing=r);let c=new Map,h=a.filter(y=>y instanceof je);Fi(i,n)&&h.forEach(y=>{y.currentSnapshot.forEach((m,g)=>c.set(g,m))});let u=Oi(t).map(y=>new Map(y));u=Li(e,u,c);let _=Jn(e,u);return new je(e,u,l,_)}};var Oe="@",en="@.disabled",qe=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,t,i,n){this.namespaceId=e,this.delegate=t,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)}insertBefore(e,t,i,n=!0){this.delegate.insertBefore(e,t,i),this.engine.onInsert(this.namespaceId,t,e,n)}removeChild(e,t,i,n){if(n){this.delegate.removeChild(e,t,i,n);return}this.parentNode(t)&&this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,i,n){this.delegate.setAttribute(e,t,i,n)}removeAttribute(e,t,i){this.delegate.removeAttribute(e,t,i)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,i,n){this.delegate.setStyle(e,t,i,n)}removeStyle(e,t,i){this.delegate.removeStyle(e,t,i)}setProperty(e,t,i){t.charAt(0)==Oe&&t==en?this.disableAnimations(e,!!i):this.delegate.setProperty(e,t,i)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,i,n){return this.delegate.listen(e,t,i,n)}disableAnimations(e,t){this.engine.disableAnimations(e,t)}},Tt=class extends qe{factory;constructor(e,t,i,n,r){super(t,i,n,r),this.factory=e,this.namespaceId=t}setProperty(e,t,i){t.charAt(0)==Oe?t.charAt(1)=="."&&t==en?(i=i===void 0?!0:!!i,this.disableAnimations(e,i)):this.engine.process(this.namespaceId,e,t.slice(1),i):this.delegate.setProperty(e,t,i)}listen(e,t,i,n){if(t.charAt(0)==Oe){let r=is(e),a=t.slice(1),o="";return a.charAt(0)!=Oe&&([a,o]=ns(a)),this.engine.listen(this.namespaceId,r,a,o,l=>{let c=l._data||-1;this.factory.scheduleListenerCallback(c,i,l)})}return this.delegate.listen(e,t,i,n)}};function is(s){switch(s){case"body":return document.body;case"document":return document;case"window":return window;default:return s}}function ns(s){let e=s.indexOf("."),t=s.substring(0,e),i=s.slice(e+1);return[t,i]}var Qe=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,t,i){this.delegate=e,this.engine=t,this._zone=i,t.onRemovalComplete=(n,r)=>{r?.removeChild(null,n)}}createRenderer(e,t){let n=this.delegate.createRenderer(e,t);if(!e||!t?.data?.animation){let c=this._rendererCache,h=c.get(n);if(!h){let u=()=>c.delete(n);h=new qe("",n,this.engine,u),c.set(n,h)}return h}let r=t.id,a=t.id+"-"+this._currentId;this._currentId++,this.engine.register(a,e);let o=c=>{Array.isArray(c)?c.forEach(o):this.engine.registerTrigger(r,a,e,c.name,c)};return t.data.animation.forEach(o),new Tt(this,a,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,t,i){if(e>=0&&e<this._microtaskId){this._zone.run(()=>t(i));return}let n=this._animationCallbacksBuffer;n.length==0&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(r=>{let[a,o]=r;a(o)}),this._animationCallbacksBuffer=[]})}),n.push([t,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){this.engine.flush(),this.delegate.componentReplaced?.(e)}};var rs=(()=>{class s extends oe{constructor(t,i,n){super(t,i,n)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||s)(Ee(zt),Ee(J),Ee(ee))};static \u0275prov=Se({token:s,factory:s.\u0275fac})}return s})();function as(){return new Ie}function os(){return new Qe(z($t),z(oe),z(Kt))}var tn=[{provide:ee,useFactory:as},{provide:oe,useClass:rs},{provide:qt,useFactory:os}],Rs=[{provide:J,useClass:At},{provide:We,useValue:"NoopAnimations"},...tn],ls=[{provide:J,useFactory:()=>new Be},{provide:We,useFactory:()=>"BrowserAnimations"},...tn];function nn(){return Bt("NgEagerAnimations"),[...ls]}var te=s=>_e(null,null,function*(){let e=z(Te),t=s.params.projectName;return t?e.getSelectedProjectId()===t?!0:(e.selectProject(t),(yield Dt(e.selectedProject$.pipe(Ft(n=>n?.name===t))))?.name===t):(console.log("[PROJECT GUARD] no project id in route"),!1)});var sn=s=>_e(null,null,function*(){let e=z(ti),t=z(ii),i=s.params.threadId;if(!t.getUsername())try{yield Ge(t.fetchCurrentUser())}catch(n){console.error("[THREAD GUARD] Failed to load current user:",n)}if(!i)return console.log("[THREAD GUARD] no threadId in route"),!1;if(console.log("[THREAD GUARD] Checking thread:",i),console.log("[THREAD GUARD] Current selected thread:",e.getSelectedThreadId()),e.getSelectedThreadId()===i)return console.log("[THREAD GUARD] Thread already selected, allowing navigation"),!0;console.log("[THREAD GUARD] Selecting thread:",i),e.selectThread(i);try{let n=yield Ge(kt([e.isLoading$,e.selectedThread$]).pipe(Lt(([a,o])=>console.log(`\u{1F43C} [${a?"loading":"loaded"}]`,o?.id)),Ot(([a,o])=>!a&&!!o),It(1),Rt(([a,o])=>o?.id))),r=n===i;return r?console.log("[THREAD GUARD] Thread validated, allowing navigation"):console.error("[THREAD GUARD] Thread ID mismatch - route:",i,"loaded:",n),r}catch(n){return console.error("[THREAD GUARD] Error loading thread:",n),!1}});var rn=[{path:"",loadComponent:()=>import("./chunk-AZTZWTQC.js").then(s=>s.GlobalTaskControlComponent)},{path:"projects",loadComponent:()=>import("./chunk-EYNAABQ3.js").then(s=>s.ProjectListComponent)},{path:"oauth/callback",loadComponent:()=>import("./chunk-GYZJRAEL.js").then(s=>s.OAuthCallbackComponent)},{path:"project/new",loadComponent:()=>import("./chunk-D7NRPJD7.js").then(s=>s.ProjectNewComponent)},{path:"project/:projectName",loadComponent:()=>import("./chunk-KLUNVGJU.js").then(s=>s.MainAppComponent),canActivate:[te]},{path:"project/:projectName/prompts",loadComponent:()=>import("./chunk-CR7BT2S7.js").then(s=>s.PromptListComponent),canActivate:[te]},{path:"project/:projectName/schedulers",loadComponent:()=>import("./chunk-C6OO5XU6.js").then(s=>s.SchedulerListComponent),canActivate:[te]},{path:"project/:projectName/agents",loadComponent:()=>import("./chunk-SODYVTNM.js").then(s=>s.AgentListComponent),canActivate:[te]},{path:"project/:projectName/tasks",loadComponent:()=>import("./chunk-6XGUFYZM.js").then(s=>s.TaskControlComponent),canActivate:[te]},{path:"project/:projectName/missions",redirectTo:"project/:projectName/tasks"},{path:"project/:projectName/thread/:threadId",loadComponent:()=>import("./chunk-KLUNVGJU.js").then(s=>s.MainAppComponent),canActivate:[te,sn]},{path:"token-usage",loadComponent:()=>import("./chunk-YXC5ZRFS.js").then(s=>s.TokenUsageComponent)},{path:"agentos",loadChildren:()=>import("./chunk-RU54IW5P.js").then(s=>s.AGENTOS_ROUTES)},{path:"**",redirectTo:""}];function cs(s){return()=>s.initializeDefaultProject()}function us(s){return()=>{console.log("[APP_INIT] OAuthService initialized")}}var an={providers:[jt(),Vt({eventCoalescing:!0}),Yt(rn),Wt(),nn(),{provide:Jt,useValue:{duration:3e3}},{provide:He,useFactory:cs,deps:[Te],multi:!0},{provide:He,useFactory:us,deps:[si],multi:!0},ei({basePath:"/api/agentos"}),{provide:Zt,useValue:{width:"80vw",maxWidth:"80vw",maxHeight:"80vh"}}]};var Ue=class s{title="client";themeService=z(ni);ngOnInit(){console.log("[APP] Application initialized with theme:",this.themeService.getCurrentTheme())}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=Qt({type:s,selectors:[["app-root"]],decls:1,vars:0,template:function(t,i){t&1&&Ut(0,"router-outlet")},dependencies:[Xt,Ht],encapsulation:2})};Gt(Ue,an).catch(s=>console.error(s));
1
+ import{l as ei}from"./chunk-SUT4HFT6.js";import{a as S,b as K,e as xt,f as Ye,h as X,i as ve,j as le}from"./chunk-QVW2GZXC.js";import{a as si}from"./chunk-O7ALTLRI.js";import{b as ti,c as ii,x as ni}from"./chunk-APQFC6DT.js";import"./chunk-FAAHG43E.js";import{c as Ht,f as Yt,g as Xt}from"./chunk-LTFITYTW.js";import{a as Jt}from"./chunk-IF2A56UI.js";import{c as Zt}from"./chunk-75DAJTMO.js";import"./chunk-J4KEKL2K.js";import{b as Te}from"./chunk-G4QDBE4F.js";import"./chunk-24VYLV4I.js";import{B as Ot,Ca as We,G as It,L as Ft,La as Bt,Mc as $t,Nc as Gt,Oa as qt,Sc as Wt,V as Lt,W as v,Wa as Qt,Z as Se,a as ye,ba as Ee,c as Mt,ca as z,d as _e,fb as He,la as zt,pa as Kt,q as Ge,r as Dt,rc as Vt,sa as jt,t as Rt,u as kt,ub as Ut}from"./chunk-RNXBUYHW.js";function ri(s){return new v(3e3,!1)}function ln(){return new v(3100,!1)}function cn(){return new v(3101,!1)}function un(s){return new v(3001,!1)}function hn(s){return new v(3003,!1)}function dn(s){return new v(3004,!1)}function oi(s,e){return new v(3005,!1)}function li(){return new v(3006,!1)}function ci(){return new v(3007,!1)}function ui(s,e){return new v(3008,!1)}function hi(s){return new v(3002,!1)}function di(s,e,t,i,n){return new v(3010,!1)}function mi(){return new v(3011,!1)}function fi(){return new v(3012,!1)}function pi(){return new v(3200,!1)}function gi(){return new v(3202,!1)}function yi(){return new v(3013,!1)}function _i(s){return new v(3014,!1)}function Si(s){return new v(3015,!1)}function Ei(s){return new v(3016,!1)}function vi(s,e){return new v(3404,!1)}function mn(s){return new v(3502,!1)}function Ti(s){return new v(3503,!1)}function Ai(){return new v(3300,!1)}function bi(s){return new v(3504,!1)}function wi(s){return new v(3301,!1)}function Pi(s,e){return new v(3302,!1)}function Ni(s){return new v(3303,!1)}function Ci(s,e){return new v(3400,!1)}function Mi(s){return new v(3401,!1)}function Di(s){return new v(3402,!1)}function Ri(s,e){return new v(3505,!1)}function V(s){switch(s.length){case 0:return new X;case 1:return s[0];default:return new ve(s)}}function Je(s,e,t=new Map,i=new Map){let n=[],r=[],a=-1,o=null;if(e.forEach(l=>{let c=l.get("offset"),h=c==a,u=h&&o||new Map;l.forEach((_,y)=>{let m=y,g=_;if(y!=="offset")switch(m=s.normalizePropertyName(m,n),g){case le:g=t.get(y);break;case K:g=i.get(y);break;default:g=s.normalizeStyleValue(y,m,g,n);break}u.set(m,g)}),h||r.push(u),o=u,a=c}),n.length)throw mn(n);return r}function Ae(s,e,t,i){switch(e){case"start":s.onStart(()=>i(t&&Xe(t,"start",s)));break;case"done":s.onDone(()=>i(t&&Xe(t,"done",s)));break;case"destroy":s.onDestroy(()=>i(t&&Xe(t,"destroy",s)));break}}function Xe(s,e,t){let i=t.totalTime,n=!!t.disabled,r=be(s.element,s.triggerName,s.fromState,s.toState,e||s.phaseName,i??s.totalTime,n),a=s._data;return a!=null&&(r._data=a),r}function be(s,e,t,i,n="",r=0,a){return{element:s,triggerName:e,fromState:t,toState:i,phaseName:n,totalTime:r,disabled:!!a}}function k(s,e,t){let i=s.get(e);return i||s.set(e,i=t),i}function et(s){let e=s.indexOf(":"),t=s.substring(1,e),i=s.slice(e+1);return[t,i]}var fn=typeof document>"u"?null:document.documentElement;function we(s){let e=s.parentNode||s.host||null;return e===fn?null:e}function pn(s){return s.substring(1,6)=="ebkit"}var x=null,ai=!1;function ki(s){x||(x=gn()||{},ai=x.style?"WebkitAppearance"in x.style:!1);let e=!0;return x.style&&!pn(s)&&(e=s in x.style,!e&&ai&&(e="Webkit"+s.charAt(0).toUpperCase()+s.slice(1)in x.style)),e}function gn(){return typeof document<"u"?document.body:null}function tt(s,e){for(;e;){if(e===s)return!0;e=we(e)}return!1}function it(s,e,t){if(t)return Array.from(s.querySelectorAll(e));let i=s.querySelector(e);return i?[i]:[]}var yn=1e3,nt="{{",_n="}}",st="ng-enter",Pe="ng-leave",ce="ng-trigger",ue=".ng-trigger",rt="ng-animating",Ne=".ng-animating";function U(s){if(typeof s=="number")return s;let e=s.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:xe(parseFloat(e[1]),e[2])}function xe(s,e){return e==="s"?s*yn:s}function he(s,e,t){return s.hasOwnProperty("duration")?s:En(s,e,t)}var Sn=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;function En(s,e,t){let i,n=0,r="";if(typeof s=="string"){let a=s.match(Sn);if(a===null)return e.push(ri(s)),{duration:0,delay:0,easing:""};i=xe(parseFloat(a[1]),a[2]);let o=a[3];o!=null&&(n=xe(parseFloat(o),a[4]));let l=a[5];l&&(r=l)}else i=s;if(!t){let a=!1,o=e.length;i<0&&(e.push(ln()),a=!0),n<0&&(e.push(cn()),a=!0),a&&e.splice(o,0,ri(s))}return{duration:i,delay:n,easing:r}}function Oi(s){return s.length?s[0]instanceof Map?s:s.map(e=>new Map(Object.entries(e))):[]}function j(s,e,t){e.forEach((i,n)=>{let r=Ce(n);t&&!t.has(n)&&t.set(n,s.style[r]),s.style[r]=i})}function G(s,e){e.forEach((t,i)=>{let n=Ce(i);s.style[n]=""})}function se(s){return Array.isArray(s)?s.length==1?s[0]:xt(s):s}function Ii(s,e,t){let i=e.params||{},n=at(s);n.length&&n.forEach(r=>{i.hasOwnProperty(r)||t.push(un(r))})}var Ze=new RegExp(`${nt}\\s*(.+?)\\s*${_n}`,"g");function at(s){let e=[];if(typeof s=="string"){let t;for(;t=Ze.exec(s);)e.push(t[1]);Ze.lastIndex=0}return e}function re(s,e,t){let i=`${s}`,n=i.replace(Ze,(r,a)=>{let o=e[a];return o==null&&(t.push(hn(a)),o=""),o.toString()});return n==i?s:n}var vn=/-+([a-z0-9])/g;function Ce(s){return s.replace(vn,(...e)=>e[1].toUpperCase())}function Fi(s,e){return s===0||e===0}function Li(s,e,t){if(t.size&&e.length){let i=e[0],n=[];if(t.forEach((r,a)=>{i.has(a)||n.push(a),i.set(a,r)}),n.length)for(let r=1;r<e.length;r++){let a=e[r];n.forEach(o=>a.set(o,Me(s,o)))}}return e}function O(s,e,t){switch(e.type){case S.Trigger:return s.visitTrigger(e,t);case S.State:return s.visitState(e,t);case S.Transition:return s.visitTransition(e,t);case S.Sequence:return s.visitSequence(e,t);case S.Group:return s.visitGroup(e,t);case S.Animate:return s.visitAnimate(e,t);case S.Keyframes:return s.visitKeyframes(e,t);case S.Style:return s.visitStyle(e,t);case S.Reference:return s.visitReference(e,t);case S.AnimateChild:return s.visitAnimateChild(e,t);case S.AnimateRef:return s.visitAnimateRef(e,t);case S.Query:return s.visitQuery(e,t);case S.Stagger:return s.visitStagger(e,t);default:throw dn(e.type)}}function Me(s,e){return window.getComputedStyle(s)[e]}var At=(()=>{class s{validateStyleProperty(t){return ki(t)}containsElement(t,i){return tt(t,i)}getParentElement(t){return we(t)}query(t,i,n){return it(t,i,n)}computeStyle(t,i,n){return n||""}animate(t,i,n,r,a,o=[],l){return new X(n,r)}static \u0275fac=function(i){return new(i||s)};static \u0275prov=Se({token:s,factory:s.\u0275fac})}return s})(),J=class{static NOOP=new At},ee=class{};var Tn=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),Ie=class extends ee{normalizePropertyName(e,t){return Ce(e)}normalizeStyleValue(e,t,i,n){let r="",a=i.toString().trim();if(Tn.has(t)&&i!==0&&i!=="0")if(typeof i=="number")r="px";else{let o=i.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&o[1].length==0&&n.push(oi(e,i))}return a+r}};var Fe="*";function An(s,e){let t=[];return typeof s=="string"?s.split(/\s*,\s*/).forEach(i=>bn(i,t,e)):t.push(s),t}function bn(s,e,t){if(s[0]==":"){let l=wn(s,t);if(typeof l=="function"){e.push(l);return}s=l}let i=s.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return t.push(Si(s)),e;let n=i[1],r=i[2],a=i[3];e.push(zi(n,a));let o=n==Fe&&a==Fe;r[0]=="<"&&!o&&e.push(zi(a,n))}function wn(s,e){switch(s){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,i)=>parseFloat(i)>parseFloat(t);case":decrement":return(t,i)=>parseFloat(i)<parseFloat(t);default:return e.push(Ei(s)),"* => *"}}var De=new Set(["true","1"]),Re=new Set(["false","0"]);function zi(s,e){let t=De.has(s)||Re.has(s),i=De.has(e)||Re.has(e);return(n,r)=>{let a=s==Fe||s==n,o=e==Fe||e==r;return!a&&t&&typeof n=="boolean"&&(a=n?De.has(s):Re.has(s)),!o&&i&&typeof r=="boolean"&&(o=r?De.has(e):Re.has(e)),a&&o}}var Hi=":self",Pn=new RegExp(`s*${Hi}s*,?`,"g");function Yi(s,e,t,i){return new dt(s).build(e,t,i)}var Ki="",dt=class{_driver;constructor(e){this._driver=e}build(e,t,i){let n=new mt(t);return this._resetContextStyleTimingState(n),O(this,se(e),n)}_resetContextStyleTimingState(e){e.currentQuerySelector=Ki,e.collectedStyles=new Map,e.collectedStyles.set(Ki,new Map),e.currentTime=0}visitTrigger(e,t){let i=t.queryCount=0,n=t.depCount=0,r=[],a=[];return e.name.charAt(0)=="@"&&t.errors.push(li()),e.definitions.forEach(o=>{if(this._resetContextStyleTimingState(t),o.type==S.State){let l=o,c=l.name;c.toString().split(/\s*,\s*/).forEach(h=>{l.name=h,r.push(this.visitState(l,t))}),l.name=c}else if(o.type==S.Transition){let l=this.visitTransition(o,t);i+=l.queryCount,n+=l.depCount,a.push(l)}else t.errors.push(ci())}),{type:S.Trigger,name:e.name,states:r,transitions:a,queryCount:i,depCount:n,options:null}}visitState(e,t){let i=this.visitStyle(e.styles,t),n=e.options&&e.options.params||null;if(i.containsDynamicStyles){let r=new Set,a=n||{};i.styles.forEach(o=>{o instanceof Map&&o.forEach(l=>{at(l).forEach(c=>{a.hasOwnProperty(c)||r.add(c)})})}),r.size&&t.errors.push(ui(e.name,[...r.values()]))}return{type:S.State,name:e.name,style:i,options:n?{params:n}:null}}visitTransition(e,t){t.queryCount=0,t.depCount=0;let i=O(this,se(e.animation),t),n=An(e.expr,t.errors);return{type:S.Transition,matchers:n,animation:i,queryCount:t.queryCount,depCount:t.depCount,options:Z(e.options)}}visitSequence(e,t){return{type:S.Sequence,steps:e.steps.map(i=>O(this,i,t)),options:Z(e.options)}}visitGroup(e,t){let i=t.currentTime,n=0,r=e.steps.map(a=>{t.currentTime=i;let o=O(this,a,t);return n=Math.max(n,t.currentTime),o});return t.currentTime=n,{type:S.Group,steps:r,options:Z(e.options)}}visitAnimate(e,t){let i=Dn(e.timings,t.errors);t.currentAnimateTimings=i;let n,r=e.styles?e.styles:Ye({});if(r.type==S.Keyframes)n=this.visitKeyframes(r,t);else{let a=e.styles,o=!1;if(!a){o=!0;let c={};i.easing&&(c.easing=i.easing),a=Ye(c)}t.currentTime+=i.duration+i.delay;let l=this.visitStyle(a,t);l.isEmptyStep=o,n=l}return t.currentAnimateTimings=null,{type:S.Animate,timings:i,style:n,options:null}}visitStyle(e,t){let i=this._makeStyleAst(e,t);return this._validateStyleAst(i,t),i}_makeStyleAst(e,t){let i=[],n=Array.isArray(e.styles)?e.styles:[e.styles];for(let o of n)typeof o=="string"?o===K?i.push(o):t.errors.push(hi(o)):i.push(new Map(Object.entries(o)));let r=!1,a=null;return i.forEach(o=>{if(o instanceof Map&&(o.has("easing")&&(a=o.get("easing"),o.delete("easing")),!r)){for(let l of o.values())if(l.toString().indexOf(nt)>=0){r=!0;break}}}),{type:S.Style,styles:i,easing:a,offset:e.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(e,t){let i=t.currentAnimateTimings,n=t.currentTime,r=t.currentTime;i&&r>0&&(r-=i.duration+i.delay),e.styles.forEach(a=>{typeof a!="string"&&a.forEach((o,l)=>{let c=t.collectedStyles.get(t.currentQuerySelector),h=c.get(l),u=!0;h&&(r!=n&&r>=h.startTime&&n<=h.endTime&&(t.errors.push(di(l,h.startTime,h.endTime,r,n)),u=!1),r=h.startTime),u&&c.set(l,{startTime:r,endTime:n}),t.options&&Ii(o,t.options,t.errors)})})}visitKeyframes(e,t){let i={type:S.Keyframes,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(mi()),i;let n=1,r=0,a=[],o=!1,l=!1,c=0,h=e.steps.map(b=>{let w=this._makeStyleAst(b,t),M=w.offset!=null?w.offset:Mn(w.styles),N=0;return M!=null&&(r++,N=w.offset=M),l=l||N<0||N>1,o=o||N<c,c=N,a.push(N),w});l&&t.errors.push(fi()),o&&t.errors.push(pi());let u=e.steps.length,_=0;r>0&&r<u?t.errors.push(gi()):r==0&&(_=n/(u-1));let y=u-1,m=t.currentTime,g=t.currentAnimateTimings,T=g.duration;return h.forEach((b,w)=>{let M=_>0?w==y?1:_*w:a[w],N=M*T;t.currentTime=m+g.delay+N,g.duration=N,this._validateStyleAst(b,t),b.offset=M,i.styles.push(b)}),i}visitReference(e,t){return{type:S.Reference,animation:O(this,se(e.animation),t),options:Z(e.options)}}visitAnimateChild(e,t){return t.depCount++,{type:S.AnimateChild,options:Z(e.options)}}visitAnimateRef(e,t){return{type:S.AnimateRef,animation:this.visitReference(e.animation,t),options:Z(e.options)}}visitQuery(e,t){let i=t.currentQuerySelector,n=e.options||{};t.queryCount++,t.currentQuery=e;let[r,a]=Nn(e.selector);t.currentQuerySelector=i.length?i+" "+r:r,k(t.collectedStyles,t.currentQuerySelector,new Map);let o=O(this,se(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=i,{type:S.Query,selector:r,limit:n.limit||0,optional:!!n.optional,includeSelf:a,animation:o,originalSelector:e.selector,options:Z(e.options)}}visitStagger(e,t){t.currentQuery||t.errors.push(yi());let i=e.timings==="full"?{duration:0,delay:0,easing:"full"}:he(e.timings,t.errors,!0);return{type:S.Stagger,animation:O(this,se(e.animation),t),timings:i,options:null}}};function Nn(s){let e=!!s.split(/\s*,\s*/).find(t=>t==Hi);return e&&(s=s.replace(Pn,"")),s=s.replace(/@\*/g,ue).replace(/@\w+/g,t=>ue+"-"+t.slice(1)).replace(/:animating/g,Ne),[s,e]}function Cn(s){return s?ye({},s):null}var mt=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function Mn(s){if(typeof s=="string")return null;let e=null;if(Array.isArray(s))s.forEach(t=>{if(t instanceof Map&&t.has("offset")){let i=t;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(s instanceof Map&&s.has("offset")){let t=s;e=parseFloat(t.get("offset")),t.delete("offset")}return e}function Dn(s,e){if(s.hasOwnProperty("duration"))return s;if(typeof s=="number"){let r=he(s,e).duration;return ot(r,0,"")}let t=s;if(t.split(/\s+/).some(r=>r.charAt(0)=="{"&&r.charAt(1)=="{")){let r=ot(0,0,"");return r.dynamic=!0,r.strValue=t,r}let n=he(t,e);return ot(n.duration,n.delay,n.easing)}function Z(s){return s?(s=ye({},s),s.params&&(s.params=Cn(s.params))):s={},s}function ot(s,e,t){return{duration:s,delay:e,easing:t}}function bt(s,e,t,i,n,r,a=null,o=!1){return{type:1,element:s,keyframes:e,preStyleProps:t,postStyleProps:i,duration:n,delay:r,totalTime:n+r,easing:a,subTimeline:o}}var me=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,t){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...t)}has(e){return this._map.has(e)}clear(){this._map.clear()}},Rn=1,kn=":enter",On=new RegExp(kn,"g"),In=":leave",Fn=new RegExp(In,"g");function Xi(s,e,t,i,n,r=new Map,a=new Map,o,l,c=[]){return new ft().buildKeyframes(s,e,t,i,n,r,a,o,l,c)}var ft=class{buildKeyframes(e,t,i,n,r,a,o,l,c,h=[]){c=c||new me;let u=new pt(e,t,c,n,r,h,[]);u.options=l;let _=l.delay?U(l.delay):0;u.currentTimeline.delayNextStep(_),u.currentTimeline.setStyles([a],null,u.errors,l),O(this,i,u);let y=u.timelines.filter(m=>m.containsAnimation());if(y.length&&o.size){let m;for(let g=y.length-1;g>=0;g--){let T=y[g];if(T.element===t){m=T;break}}m&&!m.allowOnlyTimelineStyles()&&m.setStyles([o],null,u.errors,l)}return y.length?y.map(m=>m.buildKeyframes()):[bt(t,[],[],[],0,_,"",!1)]}visitTrigger(e,t){}visitState(e,t){}visitTransition(e,t){}visitAnimateChild(e,t){let i=t.subInstructions.get(t.element);if(i){let n=t.createSubContext(e.options),r=t.currentTimeline.currentTime,a=this._visitSubInstructions(i,n,n.options);r!=a&&t.transformIntoNewTimeline(a)}t.previousNode=e}visitAnimateRef(e,t){let i=t.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],t,i),this.visitReference(e.animation,i),t.transformIntoNewTimeline(i.currentTimeline.currentTime),t.previousNode=e}_applyAnimationRefDelays(e,t,i){for(let n of e){let r=n?.delay;if(r){let a=typeof r=="number"?r:U(re(r,n?.params??{},t.errors));i.delayNextStep(a)}}}_visitSubInstructions(e,t,i){let r=t.currentTimeline.currentTime,a=i.duration!=null?U(i.duration):null,o=i.delay!=null?U(i.delay):null;return a!==0&&e.forEach(l=>{let c=t.appendInstructionToTimeline(l,a,o);r=Math.max(r,c.duration+c.delay)}),r}visitReference(e,t){t.updateOptions(e.options,!0),O(this,e.animation,t),t.previousNode=e}visitSequence(e,t){let i=t.subContextCount,n=t,r=e.options;if(r&&(r.params||r.delay)&&(n=t.createSubContext(r),n.transformIntoNewTimeline(),r.delay!=null)){n.previousNode.type==S.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=Le);let a=U(r.delay);n.delayNextStep(a)}e.steps.length&&(e.steps.forEach(a=>O(this,a,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),t.previousNode=e}visitGroup(e,t){let i=[],n=t.currentTimeline.currentTime,r=e.options&&e.options.delay?U(e.options.delay):0;e.steps.forEach(a=>{let o=t.createSubContext(e.options);r&&o.delayNextStep(r),O(this,a,o),n=Math.max(n,o.currentTimeline.currentTime),i.push(o.currentTimeline)}),i.forEach(a=>t.currentTimeline.mergeTimelineCollectedStyles(a)),t.transformIntoNewTimeline(n),t.previousNode=e}_visitTiming(e,t){if(e.dynamic){let i=e.strValue,n=t.params?re(i,t.params,t.errors):i;return he(n,t.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,t){let i=t.currentAnimateTimings=this._visitTiming(e.timings,t),n=t.currentTimeline;i.delay&&(t.incrementTime(i.delay),n.snapshotCurrentStyles());let r=e.style;r.type==S.Keyframes?this.visitKeyframes(r,t):(t.incrementTime(i.duration),this.visitStyle(r,t),n.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e}visitStyle(e,t){let i=t.currentTimeline,n=t.currentAnimateTimings;!n&&i.hasCurrentStyleProperties()&&i.forwardFrame();let r=n&&n.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(r):i.setStyles(e.styles,r,t.errors,t.options),t.previousNode=e}visitKeyframes(e,t){let i=t.currentAnimateTimings,n=t.currentTimeline.duration,r=i.duration,o=t.createSubContext().currentTimeline;o.easing=i.easing,e.styles.forEach(l=>{let c=l.offset||0;o.forwardTime(c*r),o.setStyles(l.styles,l.easing,t.errors,t.options),o.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(o),t.transformIntoNewTimeline(n+r),t.previousNode=e}visitQuery(e,t){let i=t.currentTimeline.currentTime,n=e.options||{},r=n.delay?U(n.delay):0;r&&(t.previousNode.type===S.Style||i==0&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=Le);let a=i,o=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!n.optional,t.errors);t.currentQueryTotal=o.length;let l=null;o.forEach((c,h)=>{t.currentQueryIndex=h;let u=t.createSubContext(e.options,c);r&&u.delayNextStep(r),c===t.element&&(l=u.currentTimeline),O(this,e.animation,u),u.currentTimeline.applyStylesToKeyframe();let _=u.currentTimeline.currentTime;a=Math.max(a,_)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(a),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e}visitStagger(e,t){let i=t.parentContext,n=t.currentTimeline,r=e.timings,a=Math.abs(r.duration),o=a*(t.currentQueryTotal-1),l=a*t.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":l=o-l;break;case"full":l=i.currentStaggerTime;break}let h=t.currentTimeline;l&&h.delayNextStep(l);let u=h.currentTime;O(this,e.animation,t),t.previousNode=e,i.currentStaggerTime=n.currentTime-u+(n.startTime-i.currentTimeline.startTime)}},Le={},pt=class s{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=Le;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,t,i,n,r,a,o,l){this._driver=e,this.element=t,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=r,this.errors=a,this.timelines=o,this.currentTimeline=l||new ze(this._driver,t,0),o.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,t){if(!e)return;let i=e,n=this.options;i.duration!=null&&(n.duration=U(i.duration)),i.delay!=null&&(n.delay=U(i.delay));let r=i.params;if(r){let a=n.params;a||(a=this.options.params={}),Object.keys(r).forEach(o=>{(!t||!a.hasOwnProperty(o))&&(a[o]=re(r[o],a,this.errors))})}}_copyOptions(){let e={};if(this.options){let t=this.options.params;if(t){let i=e.params={};Object.keys(t).forEach(n=>{i[n]=t[n]})}}return e}createSubContext(e=null,t,i){let n=t||this.element,r=new s(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(e),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(e){return this.previousNode=Le,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,t,i){let n={duration:t??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},r=new gt(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,n,e.stretchStartingKeyframe);return this.timelines.push(r),n}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,t,i,n,r,a){let o=[];if(n&&o.push(this.element),e.length>0){e=e.replace(On,"."+this._enterClassName),e=e.replace(Fn,"."+this._leaveClassName);let l=i!=1,c=this._driver.query(this.element,e,l);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),o.push(...c)}return!r&&o.length==0&&a.push(_i(t)),o}},ze=class s{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,t,i,n){this._driver=e,this.element=t,this.startTime=i,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let t=this._keyframes.size===1&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,t){return this.applyStylesToKeyframe(),new s(this._driver,e,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=Rn,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,t){this._localTimelineStyles.set(e,t),this._globalTimelineStyles.set(e,t),this._styleSummary.set(e,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[t,i]of this._globalTimelineStyles)this._backFill.set(t,i||K),this._currentKeyframe.set(t,K);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,t,i,n){t&&this._previousKeyframe.set("easing",t);let r=n&&n.params||{},a=Ln(e,this._globalTimelineStyles);for(let[o,l]of a){let c=re(l,r,i);this._pendingStyles.set(o,c),this._localTimelineStyles.has(o)||this._backFill.set(o,this._globalTimelineStyles.get(o)??K),this._updateStyle(o,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,t)=>{this._currentKeyframe.set(t,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,e)}))}snapshotCurrentStyles(){for(let[e,t]of this._localTimelineStyles)this._pendingStyles.set(e,t),this._updateStyle(e,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let t in this._currentKeyframe)e.push(t);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((t,i)=>{let n=this._styleSummary.get(i);(!n||t.time>n.time)&&this._updateStyle(i,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,t=new Set,i=this._keyframes.size===1&&this.duration===0,n=[];this._keyframes.forEach((o,l)=>{let c=new Map([...this._backFill,...o]);c.forEach((h,u)=>{h===le?e.add(u):h===K&&t.add(u)}),i||c.set("offset",l/this.duration),n.push(c)});let r=[...e.values()],a=[...t.values()];if(i){let o=n[0],l=new Map(o);o.set("offset",0),l.set("offset",1),n=[o,l]}return bt(this.element,n,r,a,this.duration,this.startTime,this.easing,!1)}},gt=class extends ze{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,t,i,n,r,a,o=!1){super(e,t,a.delay),this.keyframes=i,this.preStyleProps=n,this.postStyleProps=r,this._stretchStartingKeyframe=o,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:t,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&t){let r=[],a=i+t,o=t/a,l=new Map(e[0]);l.set("offset",0),r.push(l);let c=new Map(e[0]);c.set("offset",ji(o)),r.push(c);let h=e.length-1;for(let u=1;u<=h;u++){let _=new Map(e[u]),y=_.get("offset"),m=t+y*i;_.set("offset",ji(m/a)),r.push(_)}i=a,t=0,n="",e=r}return bt(this.element,e,this.preStyleProps,this.postStyleProps,i,t,n,!0)}};function ji(s,e=3){let t=Math.pow(10,e-1);return Math.round(s*t)/t}function Ln(s,e){let t=new Map,i;return s.forEach(n=>{if(n==="*"){i??=e.keys();for(let r of i)t.set(r,K)}else for(let[r,a]of n)t.set(r,a)}),t}function Bi(s,e,t,i,n,r,a,o,l,c,h,u,_){return{type:0,element:s,triggerName:e,isRemovalTransition:n,fromState:t,fromStyles:r,toState:i,toStyles:a,timelines:o,queriedElements:l,preStyleProps:c,postStyleProps:h,totalTime:u,errors:_}}var lt={},Ke=class{_triggerName;ast;_stateStyles;constructor(e,t,i){this._triggerName=e,this.ast=t,this._stateStyles=i}match(e,t,i,n){return zn(this.ast.matchers,e,t,i,n)}buildStyles(e,t,i){let n=this._stateStyles.get("*");return e!==void 0&&(n=this._stateStyles.get(e?.toString())||n),n?n.buildStyles(t,i):new Map}build(e,t,i,n,r,a,o,l,c,h){let u=[],_=this.ast.options&&this.ast.options.params||lt,y=o&&o.params||lt,m=this.buildStyles(i,y,u),g=l&&l.params||lt,T=this.buildStyles(n,g,u),b=new Set,w=new Map,M=new Map,N=n==="void",ie={params:xi(g,_),delay:this.ast.options?.delay},q=h?[]:Xi(e,t,this.ast.animation,r,a,m,T,ie,c,u),D=0;return q.forEach(R=>{D=Math.max(R.duration+R.delay,D)}),u.length?Bi(t,this._triggerName,i,n,N,m,T,[],[],w,M,D,u):(q.forEach(R=>{let W=R.element,ne=k(w,W,new Set);R.preStyleProps.forEach(H=>ne.add(H));let wt=k(M,W,new Set);R.postStyleProps.forEach(H=>wt.add(H)),W!==t&&b.add(W)}),Bi(t,this._triggerName,i,n,N,m,T,q,[...b.values()],w,M,D))}};function zn(s,e,t,i,n){return s.some(r=>r(e,t,i,n))}function xi(s,e){let t=ye({},e);return Object.entries(s).forEach(([i,n])=>{n!=null&&(t[i]=n)}),t}var yt=class{styles;defaultParams;normalizer;constructor(e,t,i){this.styles=e,this.defaultParams=t,this.normalizer=i}buildStyles(e,t){let i=new Map,n=xi(e,this.defaultParams);return this.styles.styles.forEach(r=>{typeof r!="string"&&r.forEach((a,o)=>{a&&(a=re(a,n,t));let l=this.normalizer.normalizePropertyName(o,t);a=this.normalizer.normalizeStyleValue(o,l,a,t),i.set(o,a)})}),i}};function Kn(s,e,t){return new _t(s,e,t)}var _t=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,t,i){this.name=e,this.ast=t,this._normalizer=i,t.states.forEach(n=>{let r=n.options&&n.options.params||{};this.states.set(n.name,new yt(n.style,r,i))}),qi(this.states,"true","1"),qi(this.states,"false","0"),t.transitions.forEach(n=>{this.transitionFactories.push(new Ke(e,n,this.states))}),this.fallbackTransition=jn(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,t,i,n){return this.transitionFactories.find(a=>a.match(e,t,i,n))||null}matchStyles(e,t,i){return this.fallbackTransition.buildStyles(e,t,i)}};function jn(s,e,t){let i=[(a,o)=>!0],n={type:S.Sequence,steps:[],options:null},r={type:S.Transition,animation:n,matchers:i,options:null,queryCount:0,depCount:0};return new Ke(s,r,e)}function qi(s,e,t){s.has(e)?s.has(t)||s.set(t,s.get(e)):s.has(t)&&s.set(e,s.get(t))}var Bn=new me,St=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,t,i){this.bodyNode=e,this._driver=t,this._normalizer=i}register(e,t){let i=[],n=[],r=Yi(this._driver,t,i,n);if(i.length)throw Ti(i);this._animations.set(e,r)}_buildPlayer(e,t,i){let n=e.element,r=Je(this._normalizer,e.keyframes,t,i);return this._driver.animate(n,r,e.duration,e.delay,e.easing,[],!0)}create(e,t,i={}){let n=[],r=this._animations.get(e),a,o=new Map;if(r?(a=Xi(this._driver,t,r,st,Pe,new Map,new Map,i,Bn,n),a.forEach(h=>{let u=k(o,h.element,new Map);h.postStyleProps.forEach(_=>u.set(_,null))})):(n.push(Ai()),a=[]),n.length)throw bi(n);o.forEach((h,u)=>{h.forEach((_,y)=>{h.set(y,this._driver.computeStyle(u,y,K))})});let l=a.map(h=>{let u=o.get(h.element);return this._buildPlayer(h,new Map,u)}),c=V(l);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let t=this._getPlayer(e);t.destroy(),this._playersById.delete(e);let i=this.players.indexOf(t);i>=0&&this.players.splice(i,1)}_getPlayer(e){let t=this._playersById.get(e);if(!t)throw wi(e);return t}listen(e,t,i,n){let r=be(t,"","","");return Ae(this._getPlayer(e),i,r,n),()=>{}}command(e,t,i,n){if(i=="register"){this.register(e,n[0]);return}if(i=="create"){let a=n[0]||{};this.create(e,t,a);return}let r=this._getPlayer(e);switch(i){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(e);break}}},Qi="ng-animate-queued",qn=".ng-animate-queued",ct="ng-animate-disabled",Qn=".ng-animate-disabled",Un="ng-star-inserted",Vn=".ng-star-inserted",$n=[],Zi={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Gn={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},B="__ng_removed",fe=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,t=""){this.namespaceId=t;let i=e&&e.hasOwnProperty("value"),n=i?e.value:e;if(this.value=Hn(n),i){let r=e,{value:a}=r,o=Mt(r,["value"]);this.options=o}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let t=e.params;if(t){let i=this.options.params;Object.keys(t).forEach(n=>{i[n]==null&&(i[n]=t[n])})}}},de="void",ut=new fe(de),Et=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,t,i){this.id=e,this.hostElement=t,this._engine=i,this._hostClassName="ng-tns-"+e,L(t,this._hostClassName)}listen(e,t,i,n){if(!this._triggers.has(t))throw Pi(i,t);if(i==null||i.length==0)throw Ni(t);if(!Yn(i))throw Ci(i,t);let r=k(this._elementListeners,e,[]),a={name:t,phase:i,callback:n};r.push(a);let o=k(this._engine.statesByElement,e,new Map);return o.has(t)||(L(e,ce),L(e,ce+"-"+t),o.set(t,ut)),()=>{this._engine.afterFlush(()=>{let l=r.indexOf(a);l>=0&&r.splice(l,1),this._triggers.has(t)||o.delete(t)})}}register(e,t){return this._triggers.has(e)?!1:(this._triggers.set(e,t),!0)}_getTrigger(e){let t=this._triggers.get(e);if(!t)throw Mi(e);return t}trigger(e,t,i,n=!0){let r=this._getTrigger(t),a=new pe(this.id,t,e),o=this._engine.statesByElement.get(e);o||(L(e,ce),L(e,ce+"-"+t),this._engine.statesByElement.set(e,o=new Map));let l=o.get(t),c=new fe(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),o.set(t,c),l||(l=ut),!(c.value===de)&&l.value===c.value){if(!Zn(l.params,c.params)){let g=[],T=r.matchStyles(l.value,l.params,g),b=r.matchStyles(c.value,c.params,g);g.length?this._engine.reportError(g):this._engine.afterFlush(()=>{G(e,T),j(e,b)})}return}let _=k(this._engine.playersByElement,e,[]);_.forEach(g=>{g.namespaceId==this.id&&g.triggerName==t&&g.queued&&g.destroy()});let y=r.matchTransition(l.value,c.value,e,c.params),m=!1;if(!y){if(!n)return;y=r.fallbackTransition,m=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:y,fromState:l,toState:c,player:a,isFallbackTransition:m}),m||(L(e,Qi),a.onStart(()=>{ae(e,Qi)})),a.onDone(()=>{let g=this.players.indexOf(a);g>=0&&this.players.splice(g,1);let T=this._engine.playersByElement.get(e);if(T){let b=T.indexOf(a);b>=0&&T.splice(b,1)}}),this.players.push(a),_.push(a),a}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(t=>t.delete(e)),this._elementListeners.forEach((t,i)=>{this._elementListeners.set(i,t.filter(n=>n.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let t=this._engine.playersByElement.get(e);t&&(t.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,t){let i=this._engine.driver.query(e,ue,!0);i.forEach(n=>{if(n[B])return;let r=this._engine.fetchNamespacesByElement(n);r.size?r.forEach(a=>a.triggerLeaveAnimation(n,t,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(e,t,i,n){let r=this._engine.statesByElement.get(e),a=new Map;if(r){let o=[];if(r.forEach((l,c)=>{if(a.set(c,l.value),this._triggers.has(c)){let h=this.trigger(e,c,de,n);h&&o.push(h)}}),o.length)return this._engine.markElementAsRemoved(this.id,e,!0,t,a),i&&V(o).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let t=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(t&&i){let n=new Set;t.forEach(r=>{let a=r.name;if(n.has(a))return;n.add(a);let l=this._triggers.get(a).fallbackTransition,c=i.get(a)||ut,h=new fe(de),u=new pe(this.id,a,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:a,transition:l,fromState:c,toState:h,player:u,isFallbackTransition:!0})})}}removeNode(e,t){let i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t),this.triggerLeaveAnimation(e,t,!0))return;let n=!1;if(i.totalAnimations){let r=i.players.length?i.playersByQueriedElement.get(e):[];if(r&&r.length)n=!0;else{let a=e;for(;a=a.parentNode;)if(i.statesByElement.get(a)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(e),n)i.markElementAsRemoved(this.id,e,!1,t);else{let r=e[B];(!r||r===Zi)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,t))}}insertNode(e,t){L(e,this._hostClassName)}drainQueuedTransitions(e){let t=[];return this._queue.forEach(i=>{let n=i.player;if(n.destroyed)return;let r=i.element,a=this._elementListeners.get(r);a&&a.forEach(o=>{if(o.name==i.triggerName){let l=be(r,i.triggerName,i.fromState.value,i.toState.value);l._data=e,Ae(i.player,o.phase,l,o.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):t.push(i)}),this._queue=[],t.sort((i,n)=>{let r=i.transition.ast.depCount,a=n.transition.ast.depCount;return r==0||a==0?r-a:this._engine.driver.containsElement(i.element,n.element)?1:-1})}destroy(e){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},vt=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,t)=>{};_onRemovalComplete(e,t){this.onRemovalComplete(e,t)}constructor(e,t,i){this.bodyNode=e,this.driver=t,this._normalizer=i}get queuedPlayers(){let e=[];return this._namespaceList.forEach(t=>{t.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,t){let i=new Et(e,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(i,t):(this.newHostElements.set(t,i),this.collectEnterElement(t)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,t){let i=this._namespaceList,n=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,o=this.driver.getParentElement(t);for(;o;){let l=n.get(o);if(l){let c=i.indexOf(l);i.splice(c+1,0,e),a=!0;break}o=this.driver.getParentElement(o)}a||i.unshift(e)}else i.push(e);return n.set(t,e),e}register(e,t){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,t)),i}registerTrigger(e,t,i){let n=this._namespaceLookup[e];n&&n.register(t,i)&&this.totalAnimations++}destroy(e,t){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);let n=this._namespaceList.indexOf(i);n>=0&&this._namespaceList.splice(n,1),i.destroy(t),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let t=new Set,i=this.statesByElement.get(e);if(i){for(let n of i.values())if(n.namespaceId){let r=this._fetchNamespace(n.namespaceId);r&&t.add(r)}}return t}trigger(e,t,i,n){if(ke(t)){let r=this._fetchNamespace(e);if(r)return r.trigger(t,i,n),!0}return!1}insertNode(e,t,i,n){if(!ke(t))return;let r=t[B];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;let a=this.collectedLeaveElements.indexOf(t);a>=0&&this.collectedLeaveElements.splice(a,1)}if(e){let a=this._fetchNamespace(e);a&&a.insertNode(t,i)}n&&this.collectEnterElement(t)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),L(e,ct)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),ae(e,ct))}removeNode(e,t,i){if(ke(t)){let n=e?this._fetchNamespace(e):null;n?n.removeNode(t,i):this.markElementAsRemoved(e,t,!1,i);let r=this.namespacesByHostElement.get(t);r&&r.id!==e&&r.removeNode(t,i)}else this._onRemovalComplete(t,i)}markElementAsRemoved(e,t,i,n,r){this.collectedLeaveElements.push(t),t[B]={namespaceId:e,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(e,t,i,n,r){return ke(t)?this._fetchNamespace(e).listen(t,i,n,r):()=>{}}_buildInstruction(e,t,i,n,r){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,n,e.fromState.options,e.toState.options,t,r)}destroyInnerAnimations(e){let t=this.driver.query(e,ue,!0);t.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(t=this.driver.query(e,Ne,!0),t.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){let t=this.playersByElement.get(e);t&&t.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){let t=this.playersByQueriedElement.get(e);t&&t.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return V(this.players).onDone(()=>e());e()})}processLeaveNode(e){let t=e[B];if(t&&t.setForRemoval){if(e[B]=Zi,t.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(t.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,t.setForRemoval)}e.classList?.contains(ct)&&this.markElementAsDisabled(e,!1),this.driver.query(e,Qn,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,n)=>this._balanceNamespaceList(i,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;i<this.collectedEnterElements.length;i++){let n=this.collectedEnterElements[i];L(n,Un)}if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){let i=[];try{t=this._flushAnimations(i,e)}finally{for(let n=0;n<i.length;n++)i[n]()}}else for(let i=0;i<this.collectedLeaveElements.length;i++){let n=this.collectedLeaveElements[i];this.processLeaveNode(n)}if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(i=>i()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],t.length?V(t).onDone(()=>{i.forEach(n=>n())}):i.forEach(n=>n())}}reportError(e){throw Di(e)}_flushAnimations(e,t){let i=new me,n=[],r=new Map,a=[],o=new Map,l=new Map,c=new Map,h=new Set;this.disabledNodes.forEach(d=>{h.add(d);let f=this.driver.query(d,qn,!0);for(let p=0;p<f.length;p++)h.add(f[p])});let u=this.bodyNode,_=Array.from(this.statesByElement.keys()),y=$i(_,this.collectedEnterElements),m=new Map,g=0;y.forEach((d,f)=>{let p=st+g++;m.set(f,p),d.forEach(E=>L(E,p))});let T=[],b=new Set,w=new Set;for(let d=0;d<this.collectedLeaveElements.length;d++){let f=this.collectedLeaveElements[d],p=f[B];p&&p.setForRemoval&&(T.push(f),b.add(f),p.hasAnimation?this.driver.query(f,Vn,!0).forEach(E=>b.add(E)):w.add(f))}let M=new Map,N=$i(_,Array.from(b));N.forEach((d,f)=>{let p=Pe+g++;M.set(f,p),d.forEach(E=>L(E,p))}),e.push(()=>{y.forEach((d,f)=>{let p=m.get(f);d.forEach(E=>ae(E,p))}),N.forEach((d,f)=>{let p=M.get(f);d.forEach(E=>ae(E,p))}),T.forEach(d=>{this.processLeaveNode(d)})});let ie=[],q=[];for(let d=this._namespaceList.length-1;d>=0;d--)this._namespaceList[d].drainQueuedTransitions(t).forEach(p=>{let E=p.player,P=p.element;if(ie.push(E),this.collectedEnterElements.length){let C=P[B];if(C&&C.setForMove){if(C.previousTriggersValues&&C.previousTriggersValues.has(p.triggerName)){let Y=C.previousTriggersValues.get(p.triggerName),F=this.statesByElement.get(p.element);if(F&&F.has(p.triggerName)){let ge=F.get(p.triggerName);ge.value=Y,F.set(p.triggerName,ge)}}E.destroy();return}}let Q=!u||!this.driver.containsElement(u,P),I=M.get(P),$=m.get(P),A=this._buildInstruction(p,i,$,I,Q);if(A.errors&&A.errors.length){q.push(A);return}if(Q){E.onStart(()=>G(P,A.fromStyles)),E.onDestroy(()=>j(P,A.toStyles)),n.push(E);return}if(p.isFallbackTransition){E.onStart(()=>G(P,A.fromStyles)),E.onDestroy(()=>j(P,A.toStyles)),n.push(E);return}let Ct=[];A.timelines.forEach(C=>{C.stretchStartingKeyframe=!0,this.disabledNodes.has(C.element)||Ct.push(C)}),A.timelines=Ct,i.append(P,A.timelines);let on={instruction:A,player:E,element:P};a.push(on),A.queriedElements.forEach(C=>k(o,C,[]).push(E)),A.preStyleProps.forEach((C,Y)=>{if(C.size){let F=l.get(Y);F||l.set(Y,F=new Set),C.forEach((ge,$e)=>F.add($e))}}),A.postStyleProps.forEach((C,Y)=>{let F=c.get(Y);F||c.set(Y,F=new Set),C.forEach((ge,$e)=>F.add($e))})});if(q.length){let d=[];q.forEach(f=>{d.push(Ri(f.triggerName,f.errors))}),ie.forEach(f=>f.destroy()),this.reportError(d)}let D=new Map,R=new Map;a.forEach(d=>{let f=d.element;i.has(f)&&(R.set(f,f),this._beforeAnimationBuild(d.player.namespaceId,d.instruction,D))}),n.forEach(d=>{let f=d.element;this._getPreviousPlayers(f,!1,d.namespaceId,d.triggerName,null).forEach(E=>{k(D,f,[]).push(E),E.destroy()})});let W=T.filter(d=>Gi(d,l,c)),ne=new Map;Vi(ne,this.driver,w,c,K).forEach(d=>{Gi(d,l,c)&&W.push(d)});let H=new Map;y.forEach((d,f)=>{Vi(H,this.driver,new Set(d),l,le)}),W.forEach(d=>{let f=ne.get(d),p=H.get(d);ne.set(d,new Map([...f?.entries()??[],...p?.entries()??[]]))});let Ve=[],Pt=[],Nt={};a.forEach(d=>{let{element:f,player:p,instruction:E}=d;if(i.has(f)){if(h.has(f)){p.onDestroy(()=>j(f,E.toStyles)),p.disabled=!0,p.overrideTotalTime(E.totalTime),n.push(p);return}let P=Nt;if(R.size>1){let I=f,$=[];for(;I=I.parentNode;){let A=R.get(I);if(A){P=A;break}$.push(I)}$.forEach(A=>R.set(A,P))}let Q=this._buildAnimation(p.namespaceId,E,D,r,H,ne);if(p.setRealPlayer(Q),P===Nt)Ve.push(p);else{let I=this.playersByElement.get(P);I&&I.length&&(p.parentPlayer=V(I)),n.push(p)}}else G(f,E.fromStyles),p.onDestroy(()=>j(f,E.toStyles)),Pt.push(p),h.has(f)&&n.push(p)}),Pt.forEach(d=>{let f=r.get(d.element);if(f&&f.length){let p=V(f);d.setRealPlayer(p)}}),n.forEach(d=>{d.parentPlayer?d.syncPlayerEvents(d.parentPlayer):d.destroy()});for(let d=0;d<T.length;d++){let f=T[d],p=f[B];if(ae(f,Pe),p&&p.hasAnimation)continue;let E=[];if(o.size){let Q=o.get(f);Q&&Q.length&&E.push(...Q);let I=this.driver.query(f,Ne,!0);for(let $=0;$<I.length;$++){let A=o.get(I[$]);A&&A.length&&E.push(...A)}}let P=E.filter(Q=>!Q.destroyed);P.length?Xn(this,f,P):this.processLeaveNode(f)}return T.length=0,Ve.forEach(d=>{this.players.push(d),d.onDone(()=>{d.destroy();let f=this.players.indexOf(d);this.players.splice(f,1)}),d.play()}),Ve}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,t,i,n,r){let a=[];if(t){let o=this.playersByQueriedElement.get(e);o&&(a=o)}else{let o=this.playersByElement.get(e);if(o){let l=!r||r==de;o.forEach(c=>{c.queued||!l&&c.triggerName!=n||a.push(c)})}}return(i||n)&&(a=a.filter(o=>!(i&&i!=o.namespaceId||n&&n!=o.triggerName))),a}_beforeAnimationBuild(e,t,i){let n=t.triggerName,r=t.element,a=t.isRemovalTransition?void 0:e,o=t.isRemovalTransition?void 0:n;for(let l of t.timelines){let c=l.element,h=c!==r,u=k(i,c,[]);this._getPreviousPlayers(c,h,a,o,t.toState).forEach(y=>{let m=y.getRealPlayer();m.beforeDestroy&&m.beforeDestroy(),y.destroy(),u.push(y)})}G(r,t.fromStyles)}_buildAnimation(e,t,i,n,r,a){let o=t.triggerName,l=t.element,c=[],h=new Set,u=new Set,_=t.timelines.map(m=>{let g=m.element;h.add(g);let T=g[B];if(T&&T.removedBeforeQueried)return new X(m.duration,m.delay);let b=g!==l,w=xn((i.get(g)||$n).map(D=>D.getRealPlayer())).filter(D=>{let R=D;return R.element?R.element===g:!1}),M=r.get(g),N=a.get(g),ie=Je(this._normalizer,m.keyframes,M,N),q=this._buildPlayer(m,ie,w);if(m.subTimeline&&n&&u.add(g),b){let D=new pe(e,o,g);D.setRealPlayer(q),c.push(D)}return q});c.forEach(m=>{k(this.playersByQueriedElement,m.element,[]).push(m),m.onDone(()=>Wn(this.playersByQueriedElement,m.element,m))}),h.forEach(m=>L(m,rt));let y=V(_);return y.onDestroy(()=>{h.forEach(m=>ae(m,rt)),j(l,t.toStyles)}),u.forEach(m=>{k(n,m,[]).push(y)}),y}_buildPlayer(e,t,i){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,i):new X(e.duration,e.delay)}},pe=class{namespaceId;triggerName;element;_player=new X;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,t,i){this.namespaceId=e,this.triggerName=t,this.element=i}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((t,i)=>{t.forEach(n=>Ae(e,i,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let t=this._player;t.triggerCallback&&e.onStart(()=>t.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,t){k(this._queuedCallbacks,e,[]).push(t)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let t=this._player;t.triggerCallback&&t.triggerCallback(e)}};function Wn(s,e,t){let i=s.get(e);if(i){if(i.length){let n=i.indexOf(t);i.splice(n,1)}i.length==0&&s.delete(e)}return i}function Hn(s){return s??null}function ke(s){return s&&s.nodeType===1}function Yn(s){return s=="start"||s=="done"}function Ui(s,e){let t=s.style.display;return s.style.display=e??"none",t}function Vi(s,e,t,i,n){let r=[];t.forEach(l=>r.push(Ui(l)));let a=[];i.forEach((l,c)=>{let h=new Map;l.forEach(u=>{let _=e.computeStyle(c,u,n);h.set(u,_),(!_||_.length==0)&&(c[B]=Gn,a.push(c))}),s.set(c,h)});let o=0;return t.forEach(l=>Ui(l,r[o++])),a}function $i(s,e){let t=new Map;if(s.forEach(o=>t.set(o,[])),e.length==0)return t;let i=1,n=new Set(e),r=new Map;function a(o){if(!o)return i;let l=r.get(o);if(l)return l;let c=o.parentNode;return t.has(c)?l=c:n.has(c)?l=i:l=a(c),r.set(o,l),l}return e.forEach(o=>{let l=a(o);l!==i&&t.get(l).push(o)}),t}function L(s,e){s.classList?.add(e)}function ae(s,e){s.classList?.remove(e)}function Xn(s,e,t){V(t).onDone(()=>s.processLeaveNode(e))}function xn(s){let e=[];return Ji(s,e),e}function Ji(s,e){for(let t=0;t<s.length;t++){let i=s[t];i instanceof ve?Ji(i.players,e):e.push(i)}}function Zn(s,e){let t=Object.keys(s),i=Object.keys(e);if(t.length!=i.length)return!1;for(let n=0;n<t.length;n++){let r=t[n];if(!e.hasOwnProperty(r)||s[r]!==e[r])return!1}return!0}function Gi(s,e,t){let i=t.get(s);if(!i)return!1;let n=e.get(s);return n?i.forEach(r=>n.add(r)):e.set(s,i),t.delete(s),!0}var oe=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,t)=>{};constructor(e,t,i){this._driver=t,this._normalizer=i,this._transitionEngine=new vt(e.body,t,i),this._timelineEngine=new St(e.body,t,i),this._transitionEngine.onRemovalComplete=(n,r)=>this.onRemovalComplete(n,r)}registerTrigger(e,t,i,n,r){let a=e+"-"+n,o=this._triggerCache[a];if(!o){let l=[],c=[],h=Yi(this._driver,r,l,c);if(l.length)throw vi(n,l);o=Kn(n,h,this._normalizer),this._triggerCache[a]=o}this._transitionEngine.registerTrigger(t,n,o)}register(e,t){this._transitionEngine.register(e,t)}destroy(e,t){this._transitionEngine.destroy(e,t)}onInsert(e,t,i,n){this._transitionEngine.insertNode(e,t,i,n)}onRemove(e,t,i){this._transitionEngine.removeNode(e,t,i)}disableAnimations(e,t){this._transitionEngine.markElementAsDisabled(e,t)}process(e,t,i,n){if(i.charAt(0)=="@"){let[r,a]=et(i),o=n;this._timelineEngine.command(r,t,a,o)}else this._transitionEngine.trigger(e,t,i,n)}listen(e,t,i,n,r){if(i.charAt(0)=="@"){let[a,o]=et(i);return this._timelineEngine.listen(a,t,o,r)}return this._transitionEngine.listen(e,t,i,n,r)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function Jn(s,e){let t=null,i=null;return Array.isArray(e)&&e.length?(t=ht(e[0]),e.length>1&&(i=ht(e[e.length-1]))):e instanceof Map&&(t=ht(e)),t||i?new es(s,t,i):null}var es=(()=>{class s{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(t,i,n){this._element=t,this._startStyles=i,this._endStyles=n;let r=s.initialStylesByElement.get(t);r||s.initialStylesByElement.set(t,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&j(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(j(this._element,this._initialStyles),this._endStyles&&(j(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(s.initialStylesByElement.delete(this._element),this._startStyles&&(G(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(G(this._element,this._endStyles),this._endStyles=null),j(this._element,this._initialStyles),this._state=3)}}return s})();function ht(s){let e=null;return s.forEach((t,i)=>{ts(i)&&(e=e||new Map,e.set(i,t))}),e}function ts(s){return s==="display"||s==="position"}var je=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer=null;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,t,i,n){this.element=e,this.keyframes=t,this.options=i,this._specialStyles=n,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer()&&this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return this.domPlayer;this._initialized=!0;let e=this.keyframes,t=this._triggerWebAnimation(this.element,e,this.options);if(!t)return this._onFinish(),null;this.domPlayer=t,this._finalKeyframe=e.length?e[e.length-1]:new Map;let i=()=>this._onFinish();return t.addEventListener("finish",i),this.onDestroy(()=>{t.removeEventListener("finish",i)}),t}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer?.pause()}_convertKeyframesToObject(e){let t=[];return e.forEach(i=>{t.push(Object.fromEntries(i))}),t}_triggerWebAnimation(e,t,i){let n=this._convertKeyframesToObject(t);try{return e.animate(n,i)}catch(r){return null}}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){let e=this._buildPlayer();e&&(this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),e.play())}pause(){this.init(),this.domPlayer?.pause()}finish(){this.init(),this.domPlayer&&(this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish())}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer?.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer||this.init(),this.domPlayer&&(this.domPlayer.currentTime=e*this.time)}getPosition(){return this.domPlayer?+(this.domPlayer.currentTime??0)/this.time:this._initialized?1:0}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,n)=>{n!=="offset"&&e.set(n,this._finished?i:Me(this.element,n))}),this.currentSnapshot=e}triggerCallback(e){let t=e==="start"?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}},Be=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,t){return tt(e,t)}getParentElement(e){return we(e)}query(e,t,i){return it(e,t,i)}computeStyle(e,t,i){return Me(e,t)}animate(e,t,i,n,r,a=[]){let o=n==0?"both":"forwards",l={duration:i,delay:n,fill:o};r&&(l.easing=r);let c=new Map,h=a.filter(y=>y instanceof je);Fi(i,n)&&h.forEach(y=>{y.currentSnapshot.forEach((m,g)=>c.set(g,m))});let u=Oi(t).map(y=>new Map(y));u=Li(e,u,c);let _=Jn(e,u);return new je(e,u,l,_)}};var Oe="@",en="@.disabled",qe=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,t,i,n){this.namespaceId=e,this.delegate=t,this.engine=i,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)}insertBefore(e,t,i,n=!0){this.delegate.insertBefore(e,t,i),this.engine.onInsert(this.namespaceId,t,e,n)}removeChild(e,t,i,n){if(n){this.delegate.removeChild(e,t,i,n);return}this.parentNode(t)&&this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,i,n){this.delegate.setAttribute(e,t,i,n)}removeAttribute(e,t,i){this.delegate.removeAttribute(e,t,i)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,i,n){this.delegate.setStyle(e,t,i,n)}removeStyle(e,t,i){this.delegate.removeStyle(e,t,i)}setProperty(e,t,i){t.charAt(0)==Oe&&t==en?this.disableAnimations(e,!!i):this.delegate.setProperty(e,t,i)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,i,n){return this.delegate.listen(e,t,i,n)}disableAnimations(e,t){this.engine.disableAnimations(e,t)}},Tt=class extends qe{factory;constructor(e,t,i,n,r){super(t,i,n,r),this.factory=e,this.namespaceId=t}setProperty(e,t,i){t.charAt(0)==Oe?t.charAt(1)=="."&&t==en?(i=i===void 0?!0:!!i,this.disableAnimations(e,i)):this.engine.process(this.namespaceId,e,t.slice(1),i):this.delegate.setProperty(e,t,i)}listen(e,t,i,n){if(t.charAt(0)==Oe){let r=is(e),a=t.slice(1),o="";return a.charAt(0)!=Oe&&([a,o]=ns(a)),this.engine.listen(this.namespaceId,r,a,o,l=>{let c=l._data||-1;this.factory.scheduleListenerCallback(c,i,l)})}return this.delegate.listen(e,t,i,n)}};function is(s){switch(s){case"body":return document.body;case"document":return document;case"window":return window;default:return s}}function ns(s){let e=s.indexOf("."),t=s.substring(0,e),i=s.slice(e+1);return[t,i]}var Qe=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,t,i){this.delegate=e,this.engine=t,this._zone=i,t.onRemovalComplete=(n,r)=>{r?.removeChild(null,n)}}createRenderer(e,t){let n=this.delegate.createRenderer(e,t);if(!e||!t?.data?.animation){let c=this._rendererCache,h=c.get(n);if(!h){let u=()=>c.delete(n);h=new qe("",n,this.engine,u),c.set(n,h)}return h}let r=t.id,a=t.id+"-"+this._currentId;this._currentId++,this.engine.register(a,e);let o=c=>{Array.isArray(c)?c.forEach(o):this.engine.registerTrigger(r,a,e,c.name,c)};return t.data.animation.forEach(o),new Tt(this,a,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,t,i){if(e>=0&&e<this._microtaskId){this._zone.run(()=>t(i));return}let n=this._animationCallbacksBuffer;n.length==0&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(r=>{let[a,o]=r;a(o)}),this._animationCallbacksBuffer=[]})}),n.push([t,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){this.engine.flush(),this.delegate.componentReplaced?.(e)}};var rs=(()=>{class s extends oe{constructor(t,i,n){super(t,i,n)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||s)(Ee(zt),Ee(J),Ee(ee))};static \u0275prov=Se({token:s,factory:s.\u0275fac})}return s})();function as(){return new Ie}function os(){return new Qe(z($t),z(oe),z(Kt))}var tn=[{provide:ee,useFactory:as},{provide:oe,useClass:rs},{provide:qt,useFactory:os}],Rs=[{provide:J,useClass:At},{provide:We,useValue:"NoopAnimations"},...tn],ls=[{provide:J,useFactory:()=>new Be},{provide:We,useFactory:()=>"BrowserAnimations"},...tn];function nn(){return Bt("NgEagerAnimations"),[...ls]}var te=s=>_e(null,null,function*(){let e=z(Te),t=s.params.projectName;return t?e.getSelectedProjectId()===t?!0:(e.selectProject(t),(yield Dt(e.selectedProject$.pipe(Ft(n=>n?.name===t))))?.name===t):(console.log("[PROJECT GUARD] no project id in route"),!1)});var sn=s=>_e(null,null,function*(){let e=z(ti),t=z(ii),i=s.params.threadId;if(!t.getUsername())try{yield Ge(t.fetchCurrentUser())}catch(n){console.error("[THREAD GUARD] Failed to load current user:",n)}if(!i)return console.log("[THREAD GUARD] no threadId in route"),!1;if(console.log("[THREAD GUARD] Checking thread:",i),console.log("[THREAD GUARD] Current selected thread:",e.getSelectedThreadId()),e.getSelectedThreadId()===i)return console.log("[THREAD GUARD] Thread already selected, allowing navigation"),!0;console.log("[THREAD GUARD] Selecting thread:",i),e.selectThread(i);try{let n=yield Ge(kt([e.isLoading$,e.selectedThread$]).pipe(Lt(([a,o])=>console.log(`\u{1F43C} [${a?"loading":"loaded"}]`,o?.id)),Ot(([a,o])=>!a&&!!o),It(1),Rt(([a,o])=>o?.id))),r=n===i;return r?console.log("[THREAD GUARD] Thread validated, allowing navigation"):console.error("[THREAD GUARD] Thread ID mismatch - route:",i,"loaded:",n),r}catch(n){return console.error("[THREAD GUARD] Error loading thread:",n),!1}});var rn=[{path:"",loadComponent:()=>import("./chunk-PZAUOUF2.js").then(s=>s.GlobalTaskControlComponent)},{path:"projects",loadComponent:()=>import("./chunk-EYNAABQ3.js").then(s=>s.ProjectListComponent)},{path:"oauth/callback",loadComponent:()=>import("./chunk-GYZJRAEL.js").then(s=>s.OAuthCallbackComponent)},{path:"project/new",loadComponent:()=>import("./chunk-D7NRPJD7.js").then(s=>s.ProjectNewComponent)},{path:"project/:projectName",loadComponent:()=>import("./chunk-KLUNVGJU.js").then(s=>s.MainAppComponent),canActivate:[te]},{path:"project/:projectName/prompts",loadComponent:()=>import("./chunk-CR7BT2S7.js").then(s=>s.PromptListComponent),canActivate:[te]},{path:"project/:projectName/schedulers",loadComponent:()=>import("./chunk-C6OO5XU6.js").then(s=>s.SchedulerListComponent),canActivate:[te]},{path:"project/:projectName/agents",loadComponent:()=>import("./chunk-SODYVTNM.js").then(s=>s.AgentListComponent),canActivate:[te]},{path:"project/:projectName/tasks",loadComponent:()=>import("./chunk-ZT5RKNVA.js").then(s=>s.TaskControlComponent),canActivate:[te]},{path:"project/:projectName/missions",redirectTo:"project/:projectName/tasks"},{path:"project/:projectName/thread/:threadId",loadComponent:()=>import("./chunk-KLUNVGJU.js").then(s=>s.MainAppComponent),canActivate:[te,sn]},{path:"token-usage",loadComponent:()=>import("./chunk-YXC5ZRFS.js").then(s=>s.TokenUsageComponent)},{path:"agentos",loadChildren:()=>import("./chunk-RU54IW5P.js").then(s=>s.AGENTOS_ROUTES)},{path:"**",redirectTo:""}];function cs(s){return()=>s.initializeDefaultProject()}function us(s){return()=>{console.log("[APP_INIT] OAuthService initialized")}}var an={providers:[jt(),Vt({eventCoalescing:!0}),Yt(rn),Wt(),nn(),{provide:Jt,useValue:{duration:3e3}},{provide:He,useFactory:cs,deps:[Te],multi:!0},{provide:He,useFactory:us,deps:[si],multi:!0},ei({basePath:"/api/agentos"}),{provide:Zt,useValue:{width:"80vw",maxWidth:"80vw",maxHeight:"80vh"}}]};var Ue=class s{title="client";themeService=z(ni);ngOnInit(){console.log("[APP] Application initialized with theme:",this.themeService.getCurrentTheme())}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=Qt({type:s,selectors:[["app-root"]],decls:1,vars:0,template:function(t,i){t&1&&Ut(0,"router-outlet")},dependencies:[Xt,Ht],encapsulation:2})};Gt(Ue,an).catch(s=>console.error(s));
@@ -1 +1 @@
1
- @charset "UTF-8";:root{--color-bg: linear-gradient(135deg, #fafbfc 0%, #f5f6f8 100%);--color-bg-solid: #fafbfc;--color-bg-secondary: rgba(255, 255, 255, .7);--color-bg-secondary-rgb: 255 255 255;--color-text: #1d1d1f;--color-text-secondary: #6e6e73;--color-text-inverse: #ffffff;--color-primary: #007aff;--color-primary-hover: #0051d5;--color-accent: #8b5cf6;--color-link: #007aff;--color-border: rgba(0, 0, 0, .1);--color-border-light: rgba(40, 40, 40, .08);--color-input-bg: rgba(255, 255, 255, .8);--color-success: #34c759;--color-error: #ff3b30;--color-warning: #ff9500;--color-info: #5ac8fa;--color-message-user: rgba(0, 122, 255, .1);--color-message-ai: rgba(255, 255, 255, .8);--color-code-bg: rgba(142, 142, 147, .12);--color-code-text: #ff375f;--color-bg-hover: rgba(0, 0, 0, .04);--glass-bg: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .18);--glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, .15);--glass-backdrop-blur: blur(20px);--color-modal-bg: #ffffff;--color-modal-border: rgba(0, 0, 0, .12);--color-modal-shadow: 0 8px 40px rgba(0, 0, 0, .18), 0 2px 8px rgba(0, 0, 0, .1);--color-shadow: rgba(0, 0, 0, .08);--color-overlay: rgba(0, 0, 0, .4)}[data-theme=dark]{--color-bg: linear-gradient(135deg, #1c1c1e 0%, #2c2c2e 100%);--color-bg-solid: #1c1c1e;--color-bg-secondary: rgba(44, 44, 46, .72);--color-bg-secondary-rgb: 44 44 46;--color-text: #f5f5f7;--color-text-secondary: #98989d;--color-text-inverse: #ffffff;--color-primary: #0a84ff;--color-primary-hover: #409cff;--color-accent: #a78bfa;--color-link: #0a84ff;--color-border: rgba(255, 255, 255, .15);--color-border-light: rgba(255, 255, 255, .05);--color-input-bg: rgba(44, 44, 46, .8);--color-success: #32d74b;--color-error: #ff453a;--color-warning: #ff9f0a;--color-info: #64d2ff;--color-message-user: rgba(10, 132, 255, .15);--color-message-ai: rgba(58, 58, 60, .72);--color-code-bg: rgba(142, 142, 147, .24);--color-code-text: #ff375f;--color-bg-hover: rgba(255, 255, 255, .08);--glass-bg: rgba(40, 42, 44);--glass-border: rgba(255, 255, 255, .18);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .37);--glass-backdrop-blur: blur(20px);--color-modal-bg: #2c2c2e;--color-modal-border: rgba(255, 255, 255, .12);--color-modal-shadow: 0 8px 48px rgba(0, 0, 0, .55), 0 2px 12px rgba(0, 0, 0, .35);--color-shadow: rgba(0, 0, 0, .5);--color-overlay: rgba(0, 0, 0, .8)}.glass-panel{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive:active{transform:translateY(0)}.glass-card{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button:active{transform:translateY(0)}.glass-button{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button:disabled:hover{transform:none}.smooth-theme-transition{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}@media print{html,body,app-root,app-main,.app,.chat-wrapper,app-chat-history,.chat-history{height:auto!important;max-height:none!important;min-height:auto!important;overflow:visible!important;position:static!important}body{background:#fff!important;color:#000!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:11pt;line-height:1.6;padding:1rem!important}app-floating-menu,.floating-menu-btn,.floating-menu,.menu-backdrop,.input-section,app-chat-textarea,app-choice-select,.actions,.action-btn,.go-to-bottom-btn,.thinking,.stop-btn,.connection-status,.upload-status{display:none!important}.chat-wrapper{padding:1rem 2rem!important;background:#fff!important}.chat-history{display:flex!important;flex-direction:column!important;gap:1rem!important}.message{page-break-inside:avoid;display:flex!important;flex-direction:column!important;max-width:75%!important;margin:.5rem 0!important;padding:0!important;background:none!important;border:none!important;cursor:default!important}.message.user{align-self:flex-end!important;margin-left:auto!important;margin-right:0!important}.message.assistant{align-self:flex-start!important;margin-left:0!important;margin-right:auto!important}.message-header{display:flex!important;flex-direction:column!important;margin-bottom:.25rem!important;gap:.25rem!important;align-items:normal!important}.speaker{font-size:9pt!important;font-weight:600!important;color:#333!important;margin:0!important;padding:0 .25rem!important}.message.user .speaker{text-align:right!important}.message.assistant .speaker{text-align:left!important}.content{padding:.75rem 1rem!important;border-radius:1rem!important;font-size:10pt!important;line-height:1.5!important;word-wrap:break-word!important;box-shadow:none!important}.message.user .content{background:#e8e5ff!important;color:#000!important;border-bottom-right-radius:.25rem!important}.message.assistant .content{background:#f3f4f6!important;color:#000!important;border-bottom-left-radius:.25rem!important}.message.technical,.message.system{display:none!important}body.print-include-technical .message.technical,body.print-include-technical .message.system{display:flex!important;max-width:100%!important;margin:.25rem 0!important;align-self:stretch!important}body.print-include-technical .message.technical .simple-content,body.print-include-technical .message.system .simple-content{padding:.5rem!important;font-family:Courier New,monospace!important;font-size:8pt!important;color:#666!important;background:#fafafa!important;border-left:2px solid #ddd!important;border-radius:.25rem!important}.message.error{max-width:100%!important;align-self:stretch!important}.message.error .content{background:#fff5f5!important;border-left:3px solid #e53e3e!important;color:#c53030!important;border-radius:.5rem!important}.message.warning{max-width:100%!important;align-self:stretch!important}.message.warning .content{background:#fffaf0!important;border-left:3px solid #dd6b20!important;color:#c05621!important;border-radius:.5rem!important}.markdown-content p{margin:.5rem 0!important;color:#000!important}.markdown-content p:first-child{margin-top:0!important}.markdown-content p:last-child{margin-bottom:0!important}.markdown-content code{background:#0000000d!important;padding:.1rem .3rem!important;border-radius:.25rem!important;font-family:Courier New,Consolas,monospace!important;font-size:9pt!important;color:#000!important;border:1px solid rgba(0,0,0,.1)!important}.markdown-content pre{background:#f8f9fa!important;padding:.75rem!important;border:1px solid #e0e0e0!important;border-radius:.5rem!important;page-break-inside:avoid;overflow:visible!important;white-space:pre-wrap!important;word-wrap:break-word!important;margin:.75rem 0!important}.markdown-content pre code{background:none!important;border:none!important;padding:0!important;font-size:8pt!important}.markdown-content strong,.markdown-content b{font-weight:700!important;color:#000!important}.markdown-content em,.markdown-content i{font-style:italic!important}.markdown-content ul,.markdown-content ol{margin:.5rem 0!important;padding-left:1.5rem!important}.markdown-content ul li,.markdown-content ol li{margin:.25rem 0!important;line-height:1.5!important}.markdown-content blockquote{border-left:3px solid #999!important;margin:.75rem 0!important;padding:.5rem 0 .5rem 1rem!important;font-style:italic!important;color:#333!important;background:#00000005!important;border-radius:0 .25rem .25rem 0!important}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin:1rem 0 .5rem!important;font-weight:700!important;color:#000!important;page-break-after:avoid}.markdown-content h1:first-child,.markdown-content h2:first-child,.markdown-content h3:first-child,.markdown-content h4:first-child,.markdown-content h5:first-child,.markdown-content h6:first-child{margin-top:0!important}.markdown-content h1{font-size:14pt!important}.markdown-content h2{font-size:12pt!important}.markdown-content h3{font-size:11pt!important}.markdown-content h4,.markdown-content h5,.markdown-content h6{font-size:10pt!important}.markdown-content a{color:#000!important;text-decoration:underline!important}.markdown-content a:after{content:" (" attr(href) ")";font-size:8pt;color:#666;font-style:italic}.markdown-content hr{border:none!important;border-top:1px solid #ddd!important;margin:1rem 0!important;page-break-after:avoid}.markdown-content table{border-collapse:collapse!important;margin:.75rem 0!important;page-break-inside:avoid;width:100%!important}.markdown-content table th,.markdown-content table td{padding:.5rem!important;border:1px solid #ddd!important;font-size:9pt!important;text-align:left!important}.markdown-content table th{font-weight:700!important;background:#f5f5f5!important}.markdown-content table tr:nth-child(2n) td{background:#fafafa!important}.user .markdown-content a{color:#328dff!important;background-color:#fff;padding:2px;display:inline-block;border-radius:4px;text-decoration:underline!important}.user .markdown-content a:after{display:inline-block}.message-image{max-width:100%!important;height:auto!important;page-break-inside:avoid;border:1px solid #ddd!important;border-radius:.5rem!important;margin:.5rem 0!important}.image-content{page-break-inside:avoid;margin:.5rem 0!important}.message,.message-header,blockquote,pre,table,.image-content{page-break-inside:avoid}h1,h2,h3,h4,h5,h6,.speaker{page-break-after:avoid}.message{page-break-before:auto}*{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}}@keyframes gradientBorderShift{0%{background-position:0 0}50%{background-position:100% 0}to{background-position:0 0}}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, 0px 2px 1px -1px --mat-sys-shadow, 0px 1px 1px 0px --mat-sys-shadow, 0px 1px 3px 0px --mat-sys-shadow)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, 0px 3px 1px -2px --mat-sys-shadow, 0px 2px 2px 0px --mat-sys-shadow, 0px 1px 5px 0px --mat-sys-shadow)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, 0px 3px 3px -2px --mat-sys-shadow, 0px 3px 4px 0px --mat-sys-shadow, 0px 1px 8px 0px --mat-sys-shadow)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, 0px 2px 4px -1px --mat-sys-shadow, 0px 4px 5px 0px --mat-sys-shadow, 0px 1px 10px 0px --mat-sys-shadow)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, 0px 3px 5px -1px --mat-sys-shadow, 0px 5px 8px 0px --mat-sys-shadow, 0px 1px 14px 0px --mat-sys-shadow)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, 0px 3px 5px -1px --mat-sys-shadow, 0px 6px 10px 0px --mat-sys-shadow, 0px 1px 18px 0px --mat-sys-shadow)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, 0px 4px 5px -2px --mat-sys-shadow, 0px 7px 10px 1px --mat-sys-shadow, 0px 2px 16px 1px --mat-sys-shadow)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, 0px 5px 5px -3px --mat-sys-shadow, 0px 8px 10px 1px --mat-sys-shadow, 0px 3px 14px 2px --mat-sys-shadow)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, 0px 5px 6px -3px --mat-sys-shadow, 0px 9px 12px 1px --mat-sys-shadow, 0px 3px 16px 2px --mat-sys-shadow)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, 0px 6px 6px -3px --mat-sys-shadow, 0px 10px 14px 1px --mat-sys-shadow, 0px 4px 18px 3px --mat-sys-shadow)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, 0px 6px 7px -4px --mat-sys-shadow, 0px 11px 15px 1px --mat-sys-shadow, 0px 4px 20px 3px --mat-sys-shadow)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, 0px 7px 8px -4px --mat-sys-shadow, 0px 12px 17px 2px --mat-sys-shadow, 0px 5px 22px 4px --mat-sys-shadow)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, 0px 7px 8px -4px --mat-sys-shadow, 0px 13px 19px 2px --mat-sys-shadow, 0px 5px 24px 4px --mat-sys-shadow)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, 0px 7px 9px -4px --mat-sys-shadow, 0px 14px 21px 2px --mat-sys-shadow, 0px 5px 26px 4px --mat-sys-shadow)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, 0px 8px 9px -5px --mat-sys-shadow, 0px 15px 22px 2px --mat-sys-shadow, 0px 6px 28px 5px --mat-sys-shadow)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, 0px 8px 10px -5px --mat-sys-shadow, 0px 16px 24px 2px --mat-sys-shadow, 0px 6px 30px 5px --mat-sys-shadow)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, 0px 8px 11px -5px --mat-sys-shadow, 0px 17px 26px 2px --mat-sys-shadow, 0px 6px 32px 5px --mat-sys-shadow)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, 0px 9px 11px -5px --mat-sys-shadow, 0px 18px 28px 2px --mat-sys-shadow, 0px 7px 34px 6px --mat-sys-shadow)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, 0px 9px 12px -6px --mat-sys-shadow, 0px 19px 29px 2px --mat-sys-shadow, 0px 7px 36px 6px --mat-sys-shadow)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, 0px 10px 13px -6px --mat-sys-shadow, 0px 20px 31px 3px --mat-sys-shadow, 0px 8px 38px 7px --mat-sys-shadow)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, 0px 10px 13px -6px --mat-sys-shadow, 0px 21px 33px 3px --mat-sys-shadow, 0px 8px 40px 7px --mat-sys-shadow)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, 0px 10px 14px -6px --mat-sys-shadow, 0px 22px 35px 3px --mat-sys-shadow, 0px 8px 42px 7px --mat-sys-shadow)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, 0px 11px 14px -7px --mat-sys-shadow, 0px 23px 36px 3px --mat-sys-shadow, 0px 9px 44px 8px --mat-sys-shadow)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, 0px 11px 15px -7px --mat-sys-shadow, 0px 24px 38px 3px --mat-sys-shadow, 0px 9px 46px 8px --mat-sys-shadow)}*{box-sizing:border-box}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}html{--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #002f65);--mat-sys-on-tertiary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-tertiary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-tertiary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#005cbb, #abc7ff);--mat-sys-tertiary-container: light-dark(#d7e3ff, #00458f);--mat-sys-tertiary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-tertiary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12;--mat-snack-bar-container-shape: transparent;--mat-snack-bar-container-color: transparent;--mat-snack-bar-supporting-text-color: var(--color-text)}html,body{margin:0;padding:0;width:100%;height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Helvetica Neue,Arial,sans-serif;transition:background .3s ease,color .3s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:0!important}.markdown-content p{margin:0 0 .75rem;line-height:1.6}.markdown-content p:last-child{margin-bottom:0}.markdown-content code{background:var(--color-code-bg);padding:.125rem .375rem;border-radius:6px;font-family:SF Mono,Monaco,Menlo,Cascadia Code,Consolas,monospace;font-size:.9em;color:var(--color-code-text);border:1px solid var(--color-border)}.markdown-content pre{background:var(--color-code-bg);padding:1rem;border-radius:12px;overflow-x:auto;margin:.75rem 0;border:1px solid var(--color-border);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);box-shadow:var(--glass-shadow)}.markdown-content pre code{background:none;padding:0;color:inherit;font-size:.85rem;border:none}.markdown-content strong,.markdown-content b{font-weight:600;color:var(--color-text, #282a36)}.markdown-content em,.markdown-content i{font-style:italic}.markdown-content ul,.markdown-content ol{margin:.75rem 0;padding-left:1.5rem}.markdown-content ul li,.markdown-content ol li{margin:.25rem 0;line-height:1.5}.markdown-content ul ul,.markdown-content ul ol,.markdown-content ol ul,.markdown-content ol ol{margin:.25rem 0}.markdown-content blockquote{border-left:4px solid var(--color-primary, #7064fb);margin:.75rem 0;padding:.5rem 0 .5rem 1rem;font-style:italic;color:var(--color-text-secondary, #6272a4);background:var(--color-bg-secondary, rgba(112, 100, 251, .05));border-radius:0 4px 4px 0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin:1rem 0 .5rem;font-weight:600;line-height:1.3;color:var(--color-text, #282a36)}.markdown-content h1:first-child,.markdown-content h2:first-child,.markdown-content h3:first-child,.markdown-content h4:first-child,.markdown-content h5:first-child,.markdown-content h6:first-child{margin-top:0}.markdown-content h1{font-size:1.5rem}.markdown-content h2{font-size:1.3rem}.markdown-content h3{font-size:1.1rem}.markdown-content h4{font-size:1rem}.markdown-content h5{font-size:.9rem}.markdown-content h6{font-size:.85rem}.markdown-content a{color:var(--color-link, #3498db);text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content .external-link-icon{display:inline-block;margin-left:.25rem;font-size:.85em;opacity:.7;transition:opacity .2s ease;vertical-align:super;line-height:0}.markdown-content a:hover .external-link-icon{opacity:1}.markdown-content hr{border:none;border-top:1px solid var(--color-border, #e5e7eb);margin:1rem 0}.markdown-content table{width:100%;border-collapse:collapse;margin:.75rem 0}.markdown-content table th,.markdown-content table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb)}.markdown-content table th{font-weight:600;background:var(--color-bg-secondary, #f8f9fa)}app-sidenav{display:block;width:100%;height:100%}app-main{position:relative;z-index:1}.app{position:relative;z-index:1}.cdk-overlay-container{z-index:10000}.mat-mdc-snackbar-surface{z-index:10000;border-radius:16px!important;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop-blur);backdrop-filter:var(--glass-backdrop-blur);position:relative;background:var(--glass-bg, #1e1e1e)!important;background-clip:padding-box}.mat-mdc-snackbar-surface:before{content:"";position:absolute;inset:-2px;border-radius:inherit;background-size:200% 100%;background:linear-gradient(90deg,var(--color-primary, #3b82f6) 0%,var(--color-accent, #8b5cf6) 50%,var(--color-primary, #3b82f6) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:1px;pointer-events:none;z-index:-1;animation:gradientBorderShift 3s ease-in-out infinite}.mat-mdc-snackbar-surface.snackbar-error{--mat-snack-bar-button-color: var(--color-error);--mdc-snackbar-supporting-text-color: var(--color-error)}.mat-mdc-snackbar-surface.snackbar-error:before{background:linear-gradient(90deg,var(--color-primary, #3b82f6) 0%,var(--color-error) 50%,var(--color-primary, #3b82f6) 100%);background-size:200% 100%}.mat-mdc-dialog-container{--mdc-dialog-container-color: var(--color-modal-bg);--mdc-dialog-supporting-text-color: var(--color-text)}.mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid var(--color-modal-border)!important;border-radius:16px!important;box-shadow:var(--color-modal-shadow)!important}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{background:var(--color-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.cdk-overlay-pane .mat-mdc-dialog-container{max-height:80vh}.cdk-overlay-pane.confirm-dialog-panel .mat-mdc-dialog-container{height:auto}[data-theme=dark] .mat-mdc-snack-bar-container.snackbar-success{--mdc-snackbar-container-color: var(--glass-bg);--mat-snack-bar-button-color: var(--color-primary, #3b82f6);--mdc-snackbar-supporting-text-color: var(--color-primary, #3b82f6)}[data-theme=dark] .mat-mdc-snack-bar-container.snackbar-error{--mdc-snackbar-container-color: var(--glass-bg);--mat-snack-bar-button-color: #f44336;--mdc-snackbar-supporting-text-color: #f44336}[data-theme=dark] .mat-mdc-snack-bar-container.snackbar-info{--mdc-snackbar-container-color: var(--glass-bg);--mat-snack-bar-button-color: var(--color-primary, #3b82f6);--mdc-snackbar-supporting-text-color: var(--color-primary, #3b82f6)}mat-slide-toggle{transform:scale(.75);transform-origin:right center}[data-variant=danger].mat-mdc-menu-item,[data-variant=danger].mat-mdc-menu-item .mat-icon{color:var(--color-error, #ff3b30)}
1
+ @charset "UTF-8";:root{--color-bg: linear-gradient(135deg, #fafbfc 0%, #f5f6f8 100%);--color-bg-solid: #fafbfc;--color-bg-secondary: rgba(255, 255, 255, .7);--color-bg-secondary-rgb: 255 255 255;--color-text: #1d1d1f;--color-text-secondary: #6e6e73;--color-text-inverse: #ffffff;--color-primary: #007aff;--color-primary-hover: #0051d5;--color-accent: #8b5cf6;--color-link: #007aff;--color-border: rgba(0, 0, 0, .1);--color-border-light: rgba(40, 40, 40, .08);--color-input-bg: rgba(255, 255, 255, .8);--color-success: #34c759;--color-error: #ff3b30;--color-warning: #ff9500;--color-info: #5ac8fa;--color-message-user: rgba(0, 122, 255, .1);--color-message-ai: rgba(255, 255, 255, .8);--color-code-bg: rgba(142, 142, 147, .12);--color-code-text: #ff375f;--color-bg-hover: rgba(0, 0, 0, .04);--glass-bg: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .18);--glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, .15);--glass-backdrop-blur: blur(20px);--color-modal-bg: #ffffff;--color-modal-border: rgba(0, 0, 0, .12);--color-modal-shadow: 0 8px 40px rgba(0, 0, 0, .18), 0 2px 8px rgba(0, 0, 0, .1);--color-shadow: rgba(0, 0, 0, .08);--color-overlay: rgba(0, 0, 0, .4)}[data-theme=dark]{--color-bg: linear-gradient(135deg, #1c1c1e 0%, #2c2c2e 100%);--color-bg-solid: #1c1c1e;--color-bg-secondary: rgba(44, 44, 46, .72);--color-bg-secondary-rgb: 44 44 46;--color-text: #f5f5f7;--color-text-secondary: #98989d;--color-text-inverse: #ffffff;--color-primary: #0a84ff;--color-primary-hover: #409cff;--color-accent: #a78bfa;--color-link: #0a84ff;--color-border: rgba(255, 255, 255, .15);--color-border-light: rgba(255, 255, 255, .05);--color-input-bg: rgba(44, 44, 46, .8);--color-success: #32d74b;--color-error: #ff453a;--color-warning: #ff9f0a;--color-info: #64d2ff;--color-message-user: rgba(10, 132, 255, .15);--color-message-ai: rgba(58, 58, 60, .72);--color-code-bg: rgba(142, 142, 147, .24);--color-code-text: #ff375f;--color-bg-hover: rgba(255, 255, 255, .08);--glass-bg: rgba(40, 42, 44);--glass-border: rgba(255, 255, 255, .18);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .37);--glass-backdrop-blur: blur(20px);--color-modal-bg: #2c2c2e;--color-modal-border: rgba(255, 255, 255, .12);--color-modal-shadow: 0 8px 48px rgba(0, 0, 0, .55), 0 2px 12px rgba(0, 0, 0, .35);--color-shadow: rgba(0, 0, 0, .5);--color-overlay: rgba(0, 0, 0, .8)}.glass-panel{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive:active{transform:translateY(0)}.glass-card{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button:active{transform:translateY(0)}.glass-button{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button:disabled:hover{transform:none}.smooth-theme-transition{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}@media print{html,body,app-root,app-main,.app,.chat-wrapper,app-chat-history,.chat-history{height:auto!important;max-height:none!important;min-height:auto!important;overflow:visible!important;position:static!important}body{background:#fff!important;color:#000!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:11pt;line-height:1.6;padding:1rem!important}app-floating-menu,.floating-menu-btn,.floating-menu,.menu-backdrop,.input-section,app-chat-textarea,app-choice-select,.actions,.action-btn,.go-to-bottom-btn,.thinking,.stop-btn,.connection-status,.upload-status{display:none!important}.chat-wrapper{padding:1rem 2rem!important;background:#fff!important}.chat-history{display:flex!important;flex-direction:column!important;gap:1rem!important}.message{page-break-inside:avoid;display:flex!important;flex-direction:column!important;max-width:75%!important;margin:.5rem 0!important;padding:0!important;background:none!important;border:none!important;cursor:default!important}.message.user{align-self:flex-end!important;margin-left:auto!important;margin-right:0!important}.message.assistant{align-self:flex-start!important;margin-left:0!important;margin-right:auto!important}.message-header{display:flex!important;flex-direction:column!important;margin-bottom:.25rem!important;gap:.25rem!important;align-items:normal!important}.speaker{font-size:9pt!important;font-weight:600!important;color:#333!important;margin:0!important;padding:0 .25rem!important}.message.user .speaker{text-align:right!important}.message.assistant .speaker{text-align:left!important}.content{padding:.75rem 1rem!important;border-radius:1rem!important;font-size:10pt!important;line-height:1.5!important;word-wrap:break-word!important;box-shadow:none!important}.message.user .content{background:#e8e5ff!important;color:#000!important;border-bottom-right-radius:.25rem!important}.message.assistant .content{background:#f3f4f6!important;color:#000!important;border-bottom-left-radius:.25rem!important}.message.technical,.message.system{display:none!important}body.print-include-technical .message.technical,body.print-include-technical .message.system{display:flex!important;max-width:100%!important;margin:.25rem 0!important;align-self:stretch!important}body.print-include-technical .message.technical .simple-content,body.print-include-technical .message.system .simple-content{padding:.5rem!important;font-family:Courier New,monospace!important;font-size:8pt!important;color:#666!important;background:#fafafa!important;border-left:2px solid #ddd!important;border-radius:.25rem!important}.message.error{max-width:100%!important;align-self:stretch!important}.message.error .content{background:#fff5f5!important;border-left:3px solid #e53e3e!important;color:#c53030!important;border-radius:.5rem!important}.message.warning{max-width:100%!important;align-self:stretch!important}.message.warning .content{background:#fffaf0!important;border-left:3px solid #dd6b20!important;color:#c05621!important;border-radius:.5rem!important}.markdown-content p{margin:.5rem 0!important;color:#000!important}.markdown-content p:first-child{margin-top:0!important}.markdown-content p:last-child{margin-bottom:0!important}.markdown-content code{background:#0000000d!important;padding:.1rem .3rem!important;border-radius:.25rem!important;font-family:Courier New,Consolas,monospace!important;font-size:9pt!important;color:#000!important;border:1px solid rgba(0,0,0,.1)!important}.markdown-content pre{background:#f8f9fa!important;padding:.75rem!important;border:1px solid #e0e0e0!important;border-radius:.5rem!important;page-break-inside:avoid;overflow:visible!important;white-space:pre-wrap!important;word-wrap:break-word!important;margin:.75rem 0!important}.markdown-content pre code{background:none!important;border:none!important;padding:0!important;font-size:8pt!important}.markdown-content strong,.markdown-content b{font-weight:700!important;color:#000!important}.markdown-content em,.markdown-content i{font-style:italic!important}.markdown-content ul,.markdown-content ol{margin:.5rem 0!important;padding-left:1.5rem!important}.markdown-content ul li,.markdown-content ol li{margin:.25rem 0!important;line-height:1.5!important}.markdown-content blockquote{border-left:3px solid #999!important;margin:.75rem 0!important;padding:.5rem 0 .5rem 1rem!important;font-style:italic!important;color:#333!important;background:#00000005!important;border-radius:0 .25rem .25rem 0!important}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin:1rem 0 .5rem!important;font-weight:700!important;color:#000!important;page-break-after:avoid}.markdown-content h1:first-child,.markdown-content h2:first-child,.markdown-content h3:first-child,.markdown-content h4:first-child,.markdown-content h5:first-child,.markdown-content h6:first-child{margin-top:0!important}.markdown-content h1{font-size:14pt!important}.markdown-content h2{font-size:12pt!important}.markdown-content h3{font-size:11pt!important}.markdown-content h4,.markdown-content h5,.markdown-content h6{font-size:10pt!important}.markdown-content a{color:#000!important;text-decoration:underline!important}.markdown-content a:after{content:" (" attr(href) ")";font-size:8pt;color:#666;font-style:italic}.markdown-content hr{border:none!important;border-top:1px solid #ddd!important;margin:1rem 0!important;page-break-after:avoid}.markdown-content table{border-collapse:collapse!important;margin:.75rem 0!important;page-break-inside:avoid;width:100%!important}.markdown-content table th,.markdown-content table td{padding:.5rem!important;border:1px solid #ddd!important;font-size:9pt!important;text-align:left!important}.markdown-content table th{font-weight:700!important;background:#f5f5f5!important}.markdown-content table tr:nth-child(2n) td{background:#fafafa!important}.user .markdown-content a{color:#328dff!important;background-color:#fff;padding:2px;display:inline-block;border-radius:4px;text-decoration:underline!important}.user .markdown-content a:after{display:inline-block}.message-image{max-width:100%!important;height:auto!important;page-break-inside:avoid;border:1px solid #ddd!important;border-radius:.5rem!important;margin:.5rem 0!important}.image-content{page-break-inside:avoid;margin:.5rem 0!important}.message,.message-header,blockquote,pre,table,.image-content{page-break-inside:avoid}h1,h2,h3,h4,h5,h6,.speaker{page-break-after:avoid}.message{page-break-before:auto}*{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}}@keyframes gradientBorderShift{0%{background-position:0 0}50%{background-position:100% 0}to{background-position:0 0}}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, 0px 2px 1px -1px --mat-sys-shadow, 0px 1px 1px 0px --mat-sys-shadow, 0px 1px 3px 0px --mat-sys-shadow)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, 0px 3px 1px -2px --mat-sys-shadow, 0px 2px 2px 0px --mat-sys-shadow, 0px 1px 5px 0px --mat-sys-shadow)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, 0px 3px 3px -2px --mat-sys-shadow, 0px 3px 4px 0px --mat-sys-shadow, 0px 1px 8px 0px --mat-sys-shadow)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, 0px 2px 4px -1px --mat-sys-shadow, 0px 4px 5px 0px --mat-sys-shadow, 0px 1px 10px 0px --mat-sys-shadow)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, 0px 3px 5px -1px --mat-sys-shadow, 0px 5px 8px 0px --mat-sys-shadow, 0px 1px 14px 0px --mat-sys-shadow)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, 0px 3px 5px -1px --mat-sys-shadow, 0px 6px 10px 0px --mat-sys-shadow, 0px 1px 18px 0px --mat-sys-shadow)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, 0px 4px 5px -2px --mat-sys-shadow, 0px 7px 10px 1px --mat-sys-shadow, 0px 2px 16px 1px --mat-sys-shadow)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, 0px 5px 5px -3px --mat-sys-shadow, 0px 8px 10px 1px --mat-sys-shadow, 0px 3px 14px 2px --mat-sys-shadow)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, 0px 5px 6px -3px --mat-sys-shadow, 0px 9px 12px 1px --mat-sys-shadow, 0px 3px 16px 2px --mat-sys-shadow)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, 0px 6px 6px -3px --mat-sys-shadow, 0px 10px 14px 1px --mat-sys-shadow, 0px 4px 18px 3px --mat-sys-shadow)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, 0px 6px 7px -4px --mat-sys-shadow, 0px 11px 15px 1px --mat-sys-shadow, 0px 4px 20px 3px --mat-sys-shadow)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, 0px 7px 8px -4px --mat-sys-shadow, 0px 12px 17px 2px --mat-sys-shadow, 0px 5px 22px 4px --mat-sys-shadow)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, 0px 7px 8px -4px --mat-sys-shadow, 0px 13px 19px 2px --mat-sys-shadow, 0px 5px 24px 4px --mat-sys-shadow)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, 0px 7px 9px -4px --mat-sys-shadow, 0px 14px 21px 2px --mat-sys-shadow, 0px 5px 26px 4px --mat-sys-shadow)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, 0px 8px 9px -5px --mat-sys-shadow, 0px 15px 22px 2px --mat-sys-shadow, 0px 6px 28px 5px --mat-sys-shadow)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, 0px 8px 10px -5px --mat-sys-shadow, 0px 16px 24px 2px --mat-sys-shadow, 0px 6px 30px 5px --mat-sys-shadow)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, 0px 8px 11px -5px --mat-sys-shadow, 0px 17px 26px 2px --mat-sys-shadow, 0px 6px 32px 5px --mat-sys-shadow)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, 0px 9px 11px -5px --mat-sys-shadow, 0px 18px 28px 2px --mat-sys-shadow, 0px 7px 34px 6px --mat-sys-shadow)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, 0px 9px 12px -6px --mat-sys-shadow, 0px 19px 29px 2px --mat-sys-shadow, 0px 7px 36px 6px --mat-sys-shadow)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, 0px 10px 13px -6px --mat-sys-shadow, 0px 20px 31px 3px --mat-sys-shadow, 0px 8px 38px 7px --mat-sys-shadow)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, 0px 10px 13px -6px --mat-sys-shadow, 0px 21px 33px 3px --mat-sys-shadow, 0px 8px 40px 7px --mat-sys-shadow)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, 0px 10px 14px -6px --mat-sys-shadow, 0px 22px 35px 3px --mat-sys-shadow, 0px 8px 42px 7px --mat-sys-shadow)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, 0px 11px 14px -7px --mat-sys-shadow, 0px 23px 36px 3px --mat-sys-shadow, 0px 9px 44px 8px --mat-sys-shadow)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, 0px 11px 15px -7px --mat-sys-shadow, 0px 24px 38px 3px --mat-sys-shadow, 0px 9px 46px 8px --mat-sys-shadow)}*{box-sizing:border-box}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}html{--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #002f65);--mat-sys-on-tertiary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-tertiary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-tertiary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#005cbb, #abc7ff);--mat-sys-tertiary-container: light-dark(#d7e3ff, #00458f);--mat-sys-tertiary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-tertiary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12;--mat-snack-bar-container-shape: transparent;--mat-snack-bar-container-color: transparent;--mat-snack-bar-supporting-text-color: var(--color-text)}html,body{margin:0;padding:0;width:100%;height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Helvetica Neue,Arial,sans-serif;transition:background .3s ease,color .3s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:0!important}.markdown-content p{margin:0 0 .75rem;line-height:1.6}.markdown-content p:last-child{margin-bottom:0}.markdown-content code{background:var(--color-code-bg);padding:.125rem .375rem;border-radius:6px;font-family:SF Mono,Monaco,Menlo,Cascadia Code,Consolas,monospace;font-size:.9em;color:var(--color-code-text);border:1px solid var(--color-border)}.markdown-content pre{background:var(--color-code-bg);padding:1rem;border-radius:12px;overflow-x:auto;margin:.75rem 0;border:1px solid var(--color-border);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);box-shadow:var(--glass-shadow)}.markdown-content pre code{background:none;padding:0;color:inherit;font-size:.85rem;border:none}.markdown-content strong,.markdown-content b{font-weight:600;color:var(--color-text, #282a36)}.markdown-content em,.markdown-content i{font-style:italic}.markdown-content ul,.markdown-content ol{margin:.75rem 0;padding-left:1.5rem}.markdown-content ul li,.markdown-content ol li{margin:.25rem 0;line-height:1.5}.markdown-content ul ul,.markdown-content ul ol,.markdown-content ol ul,.markdown-content ol ol{margin:.25rem 0}.markdown-content blockquote{border-left:4px solid var(--color-primary, #7064fb);margin:.75rem 0;padding:.5rem 0 .5rem 1rem;font-style:italic;color:var(--color-text-secondary, #6272a4);background:var(--color-bg-secondary, rgba(112, 100, 251, .05));border-radius:0 4px 4px 0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin:1rem 0 .5rem;font-weight:600;line-height:1.3;color:var(--color-text, #282a36)}.markdown-content h1:first-child,.markdown-content h2:first-child,.markdown-content h3:first-child,.markdown-content h4:first-child,.markdown-content h5:first-child,.markdown-content h6:first-child{margin-top:0}.markdown-content h1{font-size:1.5rem}.markdown-content h2{font-size:1.3rem}.markdown-content h3{font-size:1.1rem}.markdown-content h4{font-size:1rem}.markdown-content h5{font-size:.9rem}.markdown-content h6{font-size:.85rem}.markdown-content a{color:var(--color-link, #3498db);text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content .external-link-icon{display:inline-block;margin-left:.25rem;font-size:.85em;opacity:.7;transition:opacity .2s ease;vertical-align:super;line-height:0}.markdown-content a:hover .external-link-icon{opacity:1}.markdown-content hr{border:none;border-top:1px solid var(--color-border, #e5e7eb);margin:1rem 0}.markdown-content table{width:100%;border-collapse:collapse;margin:.75rem 0}.markdown-content table th,.markdown-content table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb)}.markdown-content table th{font-weight:600;background:var(--color-bg-secondary, #f8f9fa)}app-sidenav{display:block;width:100%;height:100%}.thread-preview-host app-thread .drag-drop-wrapper,.thread-preview-host app-thread .file-drawer-container{height:100%!important}app-main{position:relative;z-index:1}.app{position:relative;z-index:1}.cdk-overlay-container{z-index:10000}.mat-mdc-snackbar-surface{z-index:10000;border-radius:16px!important;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop-blur);backdrop-filter:var(--glass-backdrop-blur);position:relative;background:var(--glass-bg, #1e1e1e)!important;background-clip:padding-box}.mat-mdc-snackbar-surface:before{content:"";position:absolute;inset:-2px;border-radius:inherit;background-size:200% 100%;background:linear-gradient(90deg,var(--color-primary, #3b82f6) 0%,var(--color-accent, #8b5cf6) 50%,var(--color-primary, #3b82f6) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:1px;pointer-events:none;z-index:-1;animation:gradientBorderShift 3s ease-in-out infinite}.mat-mdc-snackbar-surface.snackbar-error{--mat-snack-bar-button-color: var(--color-error);--mdc-snackbar-supporting-text-color: var(--color-error)}.mat-mdc-snackbar-surface.snackbar-error:before{background:linear-gradient(90deg,var(--color-primary, #3b82f6) 0%,var(--color-error) 50%,var(--color-primary, #3b82f6) 100%);background-size:200% 100%}.mat-mdc-dialog-container{--mdc-dialog-container-color: var(--color-modal-bg);--mdc-dialog-supporting-text-color: var(--color-text)}.mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid var(--color-modal-border)!important;border-radius:16px!important;box-shadow:var(--color-modal-shadow)!important}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{background:var(--color-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.cdk-overlay-pane .mat-mdc-dialog-container{max-height:80vh}.cdk-overlay-pane.confirm-dialog-panel .mat-mdc-dialog-container{height:auto}[data-theme=dark] .mat-mdc-snack-bar-container.snackbar-success{--mdc-snackbar-container-color: var(--glass-bg);--mat-snack-bar-button-color: var(--color-primary, #3b82f6);--mdc-snackbar-supporting-text-color: var(--color-primary, #3b82f6)}[data-theme=dark] .mat-mdc-snack-bar-container.snackbar-error{--mdc-snackbar-container-color: var(--glass-bg);--mat-snack-bar-button-color: #f44336;--mdc-snackbar-supporting-text-color: #f44336}[data-theme=dark] .mat-mdc-snack-bar-container.snackbar-info{--mdc-snackbar-container-color: var(--glass-bg);--mat-snack-bar-button-color: var(--color-primary, #3b82f6);--mdc-snackbar-supporting-text-color: var(--color-primary, #3b82f6)}mat-slide-toggle{transform:scale(.75);transform-origin:right center}[data-variant=danger].mat-mdc-menu-item,[data-variant=danger].mat-mdc-menu-item .mat-icon{color:var(--color-error, #ff3b30)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whoz-oss/coday-client",
3
- "version": "0.138.0",
3
+ "version": "0.139.0",
4
4
  "repository": "https://github.com/whoz-oss/coday",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1 +0,0 @@
1
- import{d as S}from"./chunk-LTFITYTW.js";import{a as N,b as I}from"./chunk-JRNOMFVU.js";import{a as E,b as q}from"./chunk-MMKBNIVO.js";import{b as D}from"./chunk-G4QDBE4F.js";import{O as j,S as R}from"./chunk-24VYLV4I.js";import{Bb as C,Db as m,Fb as u,Ka as c,Rb as y,Sb as T,Tb as l,Ub as k,Vb as O,Wa as x,ca as h,ga as b,ha as _,jb as M,kc as v,lb as d,mb as p,nc as g,oc as f,rb as P,sb as n,tb as i,ub as w}from"./chunk-RNXBUYHW.js";function V(a,e){a&1&&(n(0,"mat-icon",1),l(1,"star"),i())}function A(a,e){a&1&&w(0,"span",5)}function L(a,e){if(a&1&&(n(0,"div",6)(1,"mat-icon",19),l(2,"folder"),i(),n(3,"span"),l(4),i()()),a&2){let o=u();c(4),k(o.projectName())}}function Y(a,e){if(a&1&&(n(0,"p",8),l(1),i()),a&2){let o=u();c(),k(o.task().summary)}}function W(a,e){a&1&&(n(0,"p",9),l(1,"No summary yet"),i())}function U(a,e){if(a&1){let o=C();n(0,"button",20),m("click",function(s){b(o);let r=u();return _(r.onStop(s))}),n(1,"mat-icon"),l(2,"stop_circle"),i()()}}function B(a,e){if(a&1){let o=C();n(0,"button",21),m("click",function(s){b(o);let r=u();return _(r.onMarkDone(s))}),n(1,"mat-icon"),l(2,"check_circle_outline"),i()()}}function $(a,e){if(a&1){let o=C();n(0,"button",22),m("click",function(s){b(o);let r=u();return _(r.onMarkActive(s))}),n(1,"mat-icon"),l(2,"replay"),i()()}}function H(a,e){if(a&1){let o=C();n(0,"button",23),m("click",function(s){b(o);let r=u();return _(r.onCloseTask(s))}),n(1,"mat-icon"),l(2,"close_fullscreen"),i()()}}var z=class a{task=f.required();projectNameOverride=f(null);showProject=f(!1);previewMode=f(!1);stopRequested=g();deleteRequested=g();starToggled=g();closeTaskRequested=g();markDoneRequested=g();markActiveRequested=g();previewRequested=g();router=h(S);projectState=h(D);projectName=v(()=>this.projectNameOverride()??this.projectState.getSelectedProjectId());statusLabel=v(()=>F[this.task().status]);statusIcon=v(()=>G[this.task().status]);isWorktree=v(()=>!!this.task().worktreeProject);navigate(){if(this.previewMode()){this.previewRequested.emit(this.task().id);return}let e=this.projectName();e&&(this.projectState.selectProject(e),this.router.navigate(["project",e,"thread",this.task().id]))}onStop(e){e.stopPropagation(),this.stopRequested.emit(this.task().id)}onDelete(e){e.stopPropagation(),this.deleteRequested.emit(this.task().id)}onStarToggle(e){e.stopPropagation(),this.starToggled.emit(this.task().id)}onCloseTask(e){e.stopPropagation(),this.closeTaskRequested.emit(this.task().id)}onMarkDone(e){e.stopPropagation(),this.markDoneRequested.emit(this.task().id)}onMarkActive(e){e.stopPropagation(),this.markActiveRequested.emit(this.task().id)}formatRelativeTime(e){let o=Date.now()-new Date(e).getTime(),t=Math.floor(o/6e4);if(t<1)return"just now";if(t<60)return`${t} min ago`;let s=Math.floor(t/60);if(s<24)return`${s}h ago`;let r=Math.floor(s/24);return r===1?"yesterday":r<7?`${r} days ago`:new Date(e).toLocaleDateString("en",{day:"numeric",month:"short"})}static \u0275fac=function(o){return new(o||a)};static \u0275cmp=x({type:a,selectors:[["app-task-card"]],inputs:{task:[1,"task"],projectNameOverride:[1,"projectNameOverride"],showProject:[1,"showProject"],previewMode:[1,"previewMode"]},outputs:{stopRequested:"stopRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",closeTaskRequested:"closeTaskRequested",markDoneRequested:"markDoneRequested",markActiveRequested:"markActiveRequested",previewRequested:"previewRequested"},decls:27,vars:21,consts:[["role","button","tabindex","0",1,"task-card",3,"click","keydown.enter","keydown.space"],["aria-label","Starred",1,"starred-indicator"],[1,"status-badge"],[1,"status-icon"],[1,"status-label"],["aria-hidden","true",1,"pulse-ring"],[1,"task-project"],[1,"task-name"],[1,"task-summary"],[1,"task-summary","empty"],[1,"task-footer"],[1,"task-time"],[1,"task-actions"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn"],["mat-icon-button","",1,"action-btn","star-btn",3,"click","matTooltip"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn"],["mat-icon-button","","matTooltip","Delete task","aria-label","Delete task",1,"action-btn","delete-btn",3,"click"],[1,"project-icon"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn",3,"click"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn",3,"click"]],template:function(o,t){o&1&&(n(0,"article",0),m("click",function(){return t.navigate()})("keydown.enter",function(){return t.navigate()})("keydown.space",function(r){return t.navigate(),r.preventDefault()}),d(1,V,2,0,"mat-icon",1),n(2,"div",2)(3,"mat-icon",3),l(4),i(),n(5,"span",4),l(6),i(),d(7,A,1,0,"span",5),i(),d(8,L,5,1,"div",6),n(9,"h3",7),l(10),i(),d(11,Y,2,1,"p",8)(12,W,2,0,"p",9),n(13,"footer",10)(14,"span",11),l(15),i(),n(16,"div",12),d(17,U,3,0,"button",13),d(18,B,3,0,"button",14)(19,$,3,0,"button",15),n(20,"button",16),m("click",function(r){return t.onStarToggle(r)}),n(21,"mat-icon"),l(22),i()(),d(23,H,3,0,"button",17),n(24,"button",18),m("click",function(r){return t.onDelete(r)}),n(25,"mat-icon"),l(26,"delete_outline"),i()()()()()),o&2&&(T("status-"+t.task().status),y("is-active",t.task().isActive),M("aria-label","Open task: "+t.task().name),c(),p(t.task().starring.length>0?1:-1),c(3),k(t.statusIcon()),c(2),k(t.statusLabel()),c(),p(t.task().status==="waiting-you"?7:-1),c(),p(t.showProject()&&t.projectName()?8:-1),c(2),O(" ",t.task().name||"Unnamed task"," "),c(),p(t.task().summary?11:12),c(4),k(t.formatRelativeTime(t.task().modifiedDate)),c(2),p(t.task().status==="in-progress"?17:-1),c(),p(t.task().status!=="done"?18:19),c(2),y("starred",t.task().starring.length>0),P("matTooltip",t.task().starring.length>0?"Unstar":"Star"),M("aria-label",t.task().starring.length>0?"Unstar task":"Star task"),c(2),k(t.task().starring.length>0?"star":"star_border"),c(),p(t.isWorktree()?23:-1))},dependencies:[q,E,R,j,I,N],styles:['.glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block}.task-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;padding:1.25rem;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),border-color .2s ease;outline:none;display:flex;flex-direction:column;gap:.5rem;min-height:160px}.task-card[_ngcontent-%COMP%]:hover, .task-card[_ngcontent-%COMP%]:focus-visible{transform:translateY(-3px);box-shadow:0 16px 48px #00000026}.task-card[_ngcontent-%COMP%]:active{transform:translateY(-1px)}.task-card[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;background:var(--status-color, var(--color-text-secondary))}.task-card.status-waiting-you[_ngcontent-%COMP%]{--status-color: var(--color-error);border-color:#ff3b3040}.task-card.status-in-progress[_ngcontent-%COMP%]{--status-color: var(--color-warning);border-color:#ff950033}.task-card.status-done[_ngcontent-%COMP%]{--status-color: var(--color-success)}.task-card.status-paused[_ngcontent-%COMP%]{--status-color: var(--color-text-secondary)}.task-card.status-error[_ngcontent-%COMP%]{--status-color: var(--color-error)}.task-card.is-active[_ngcontent-%COMP%]{box-shadow:var(--glass-shadow),0 0 0 2px rgba(var(--color-primary),.3)}.starred-indicator[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem;font-size:1rem;width:1rem;height:1rem;color:#f5a623;pointer-events:none}.status-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;position:relative}.status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;color:var(--status-color, var(--color-text-secondary))}.status-in-progress[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin 2s linear infinite}.status-badge[_ngcontent-%COMP%] .status-label[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--status-color, var(--color-text-secondary))}.status-badge[_ngcontent-%COMP%] .pulse-ring[_ngcontent-%COMP%]{position:absolute;left:-2px;top:-2px;width:20px;height:20px;border-radius:50%;border:2px solid var(--color-error);animation:_ngcontent-%COMP%_pulse 1.5s ease-out infinite;pointer-events:none}.task-project[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;color:var(--color-primary);opacity:.8;text-transform:uppercase;letter-spacing:.04em}.task-project[_ngcontent-%COMP%] .project-icon[_ngcontent-%COMP%]{font-size:.75rem;width:.75rem;height:.75rem}.task-name[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-summary[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-summary.empty[_ngcontent-%COMP%]{font-style:italic;opacity:.6}.task-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.25rem}.task-time[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);opacity:.8}.task-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.task-card[_ngcontent-%COMP%]:hover .task-actions[_ngcontent-%COMP%], .task-card[_ngcontent-%COMP%]:focus-within .task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:28px;height:28px;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center}.task-actions[_ngcontent-%COMP%] .stop-btn[_ngcontent-%COMP%]{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .mark-done-btn[_ngcontent-%COMP%]{color:var(--color-success)}.task-actions[_ngcontent-%COMP%] .star-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .star-btn.starred[_ngcontent-%COMP%]{color:#f5a623}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:var(--color-error)}@media(max-width:600px){.task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:36px;height:36px}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2.2);opacity:0}}'],changeDetection:0})},F={"waiting-you":"Waiting for you","in-progress":"In progress\u2026",done:"Done",paused:"Paused",error:"Error"},G={"waiting-you":"mark_unread_chat_alt","in-progress":"pending",done:"check_circle",paused:"pause_circle",error:"error"};var lt=300*1e3,dt={"waiting-you":0,"in-progress":1,done:2,paused:3,error:4};export{z as a,lt as b,dt as c};
@@ -1,2 +0,0 @@
1
- import{a as Fe,b as Ke,c as Z}from"./chunk-6BPAEX7H.js";import{a as He}from"./chunk-2PCZ45ML.js";import{d as Je}from"./chunk-TPSIRGLZ.js";import{a as Ue}from"./chunk-NLRFBAA2.js";import{a as q,b as $,c as Pe,d as je,f as Xe,h as Ze}from"./chunk-CC5AKB2A.js";import"./chunk-O7ALTLRI.js";import{a as ve,b as Ce,c as ke,e as Ie,l as Ae,o as Re,q as Ge,v as Ve,w as Qe}from"./chunk-APQFC6DT.js";import"./chunk-FAAHG43E.js";import"./chunk-2NXSUKWO.js";import{d as ce,e as de}from"./chunk-LTFITYTW.js";import"./chunk-IF2A56UI.js";import{a as qe,b as $e,c as Be}from"./chunk-M7DIJJQG.js";import{a as ze,b as We}from"./chunk-OI3PIKFL.js";import"./chunk-47EXVHLI.js";import"./chunk-SKVQOMLG.js";import{c as Ye}from"./chunk-JPVNXEXU.js";import{a as Te,c as ye,d as Se,e as Me,j as Le}from"./chunk-BOMZXZNH.js";import{a as xe,b as we,c as Oe,e as De,f as B,i as z,j as W,m as U,n as H}from"./chunk-JRNOMFVU.js";import{a as Ne,b as P}from"./chunk-LCBWJP6Z.js";import{a as me,d as A,e as ge,f as ue,g as _e,h as he}from"./chunk-75DAJTMO.js";import"./chunk-J4KEKL2K.js";import{a as F,b as L}from"./chunk-MMKBNIVO.js";import{C as Ee}from"./chunk-DLU3TQID.js";import{a as be,b as V}from"./chunk-G4QDBE4F.js";import{O as fe,Q as R,S as G,n as pe}from"./chunk-24VYLV4I.js";import{Bb as x,Db as u,Fb as p,Ja as K,Jb as oe,Ka as c,Kb as re,Lb as ae,Pb as S,Qb as se,Rb as y,Rc as le,Tb as l,Ub as b,Vb as j,Wa as N,Z as E,a as O,b as D,ca as h,ga as m,ha as g,jb as Y,kc as v,lb as C,ma as ie,mb as k,ob as I,pb as w,qb as T,rb as f,s as te,sb as o,t as ne,ta as _,tb as s,ub as M}from"./chunk-RNXBUYHW.js";var lt=(r,t)=>t.name;function ct(r,t){if(r&1&&(o(0,"mat-option",11),l(1),s()),r&2){let e=t.$implicit;f("value",e),c(),b(e)}}function dt(r,t){r&1&&M(0,"mat-spinner",13)}function pt(r,t){if(r&1&&(o(0,"span",20),l(1),s()),r&2){let e=p().$implicit;c(),b(e.description)}}function mt(r,t){if(r&1&&(o(0,"mat-option",11)(1,"span",19),l(2),s(),C(3,pt,2,1,"span",20),s()),r&2){let e=t.$implicit;f("value",e.name),c(2),b(e.name),c(),k(e.description?3:-1)}}function gt(r,t){if(r&1&&(o(0,"mat-option",11),l(1),s()),r&2){let e=t.$implicit;f("value",e),c(),b(e)}}function ut(r,t){if(r&1){let e=x();o(0,"div",25)(1,"mat-form-field",8)(2,"mat-label"),l(3,"Name"),s(),o(4,"input",26),u("input",function(i){m(e);let a=p(2);return g(a.issueNumber.set(i.target.value))}),s()(),o(5,"mat-form-field",27)(6,"mat-label"),l(7,"Type"),s(),o(8,"mat-select",28),u("selectionChange",function(i){m(e);let a=p(2);return g(a.branchType.set(i.value))}),w(9,gt,2,2,"mat-option",11,I),s()()()}if(r&2){let e=p(2);c(4),f("value",e.issueNumber()),c(4),f("value",e.branchType()),c(),T(e.branchTypes)}}function _t(r,t){r&1&&M(0,"mat-spinner",13)}function ht(r,t){if(r&1&&(o(0,"mat-option",11),l(1),s()),r&2){let e=t.$implicit;f("value",e),c(),b(e)}}function ft(r,t){if(r&1){let e=x();o(0,"mat-form-field",8)(1,"mat-label"),l(2,"Source branch"),s(),o(3,"input",29,4),u("input",function(i){m(e);let a=p(2);return g(a.onBranchSearchInput(i.target.value))})("focus",function(){m(e);let i=S(4),a=p(2);return g(a.openPanel(i))}),s(),C(5,_t,1,0,"mat-spinner",13),o(6,"mat-autocomplete",10,5),u("optionSelected",function(i){m(e);let a=p(2);return g(a.selectBranch(i.option.value))}),w(8,ht,2,2,"mat-option",11,I),s()()}if(r&2){let e=S(7),n=p(2);c(3),f("value",n.branchSearch())("matAutocomplete",e)("disabled",n.isLoadingBranches()),c(2),k(n.isLoadingBranches()?5:-1),c(3),T(n.filteredBranches())}}function bt(r,t){if(r&1){let e=x();o(0,"div",21)(1,"button",22),u("click",function(){m(e);let i=p();return g(i.onModeChange("local"))}),o(2,"mat-icon"),l(3,"folder_open"),s(),o(4,"span",23),l(5,"Local"),s(),o(6,"span",24),l(7,"Work directly on the current branch"),s()(),o(8,"button",22),u("click",function(){m(e);let i=p();return g(i.onModeChange("worktree"))}),o(9,"mat-icon"),l(10,"account_tree"),s(),o(11,"span",23),l(12,"Worktree"),s(),o(13,"span",24),l(14,"Create an isolated worktree from a branch"),s()()(),C(15,ut,11,2,"div",25),C(16,ft,10,4,"mat-form-field",8)}if(r&2){let e=p();c(),y("active",e.mode()==="local"),c(7),y("active",e.mode()==="worktree"),c(7),k(e.isWorktree()?15:-1),c(),k(e.isWorktree()?16:-1)}}function vt(r,t){r&1&&M(0,"mat-spinner",18)}function Ct(r,t){r&1&&(o(0,"mat-icon"),l(1,"rocket_launch"),s())}function kt(r,t){r&1&&(o(0,"mat-icon"),l(1,"open_in_new"),s())}var Q=class r{projectApi=h(be);agentApi=h(Ue);dialogRef=h(me);projectState=h(V);forcedProject=P(this.projectState.forcedProject$,{initialValue:null});selectedProject=_("");projectSearch=_("");selectedAgent=_("");agentSearch=_("");mode=_("local");selectedBranch=_("");branchSearch=_("");issueNumber=_("");branchType=_("feature");task=_("");hasGit=_(!1);branchTypes=["feature","fix","refactor","chore","docs","build"];projects=_([]);agents=_([]);branches=_([]);filteredProjects=v(()=>{let t=this.projectSearch().toLowerCase();return t?this.projects().filter(e=>e.toLowerCase().includes(t)):this.projects()});filteredAgents=v(()=>{let t=this.agentSearch().toLowerCase();return t?this.agents().filter(e=>e.name.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)):this.agents()});filteredBranches=v(()=>{let t=this.branchSearch().toLowerCase();return t?this.branches().filter(e=>e.toLowerCase().includes(t)):this.branches()});isLoadingAgents=_(!1);isLoadingBranches=_(!1);isSubmitting=_(!1);isWorktree=v(()=>this.mode()==="worktree"&&this.hasGit());isValid=v(()=>{let t=this.projects().includes(this.selectedProject()),e=this.agents().some(i=>i.name===this.selectedAgent()),n=t&&e&&!!this.task().trim();return this.isWorktree()?n&&!!this.selectedBranch()&&!!this.issueNumber().trim()&&!!this.branchType():n});canNavigate=v(()=>this.projects().includes(this.selectedProject()));openPanel(t){t.openPanel()}onProjectSearchInput(t){this.projectSearch.set(t),this.selectedProject()&&t!==this.selectedProject()&&(this.selectedProject.set(""),this.selectedAgent.set(""),this.agentSearch.set(""),this.agents.set([]))}selectProject(t){this.selectedProject.set(t),this.projectSearch.set(t),this.selectedAgent.set(""),this.agentSearch.set(""),this.agents.set([]),this.branches.set([]),this.selectedBranch.set(""),this.branchSearch.set(""),this.hasGit.set(!1),this.mode.set("local"),this.isLoadingAgents.set(!0),this.agentApi.getAgents(t).subscribe({next:e=>{this.agents.set(e),this.isLoadingAgents.set(!1)},error:()=>{this.isLoadingAgents.set(!1)}}),this.projectApi.getGitBranches(t).subscribe({next:({branches:e})=>{this.hasGit.set(e.length>0)},error:()=>{this.hasGit.set(!1)}})}onAgentSearchInput(t){this.agentSearch.set(t),this.selectedAgent()&&t!==this.selectedAgent()&&this.selectedAgent.set("")}selectAgent(t){this.selectedAgent.set(t),this.agentSearch.set(t)}onBranchSearchInput(t){this.branchSearch.set(t),this.selectedBranch()&&t!==this.selectedBranch()&&this.selectedBranch.set("")}selectBranch(t){this.selectedBranch.set(t),this.branchSearch.set(t)}ngOnInit(){this.projectApi.listProjects().subscribe({next:({projects:t})=>{let e=t.map(n=>n.name);this.projects.set(e),e.length===1&&e[0]&&this.selectProject(e[0])}})}onProjectChange(t){this.selectProject(t)}onModeChange(t){this.mode.set(t),t==="worktree"&&this.selectedProject()&&this.branches().length===0&&this.loadBranches()}loadBranches(){this.isLoadingBranches.set(!0),this.projectApi.getGitBranches(this.selectedProject()).subscribe({next:({branches:t})=>{this.branches.set(t),this.isLoadingBranches.set(!1)},error:()=>{this.isLoadingBranches.set(!1)}})}submit(){if(!this.isSubmitting()){if(this.isValid()){this.isSubmitting.set(!0);let t=this.isWorktree()&&this.issueNumber().trim()?`${this.issueNumber().trim()} ${this.task().trim()}`:this.task().trim();this.projectApi.createTask(this.selectedProject(),this.selectedAgent(),t,this.isWorktree()?"worktree":"local",this.isWorktree()?this.selectedBranch():void 0,this.isWorktree()?this.issueNumber().trim():void 0,this.isWorktree()?this.branchType():void 0).subscribe({next:({threadId:e,projectId:n})=>{this.dialogRef.close({threadId:e,projectId:n})},error:()=>{this.isSubmitting.set(!1)}});return}if(this.canNavigate()){this.dialogRef.close({projectId:this.selectedProject(),navigate:!0});return}}}cancel(){this.dialogRef.close(null)}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=N({type:r,selectors:[["app-new-task-dialog"]],decls:37,vars:12,consts:[["projectTrigger","matAutocompleteTrigger"],["projectAuto",""],["agentTrigger","matAutocompleteTrigger"],["agentAuto",""],["branchTrigger","matAutocompleteTrigger"],["branchAuto",""],["mat-dialog-title",""],[1,"ntd-content"],["appearance","outline",1,"ntd-field"],["matInput","","placeholder","Search project...",3,"input","focus","value","matAutocomplete"],[3,"optionSelected"],[3,"value"],["matInput","","placeholder","Search agent...",3,"input","focus","value","matAutocomplete","disabled"],["matSuffix","","diameter","16"],["matInput","","placeholder","Describe what the agent should accomplish...","rows","4",3,"input","value"],["align","end"],["mat-button","",3,"click","disabled"],["mat-flat-button","",1,"ntd-launch-btn",3,"click","disabled"],["diameter","16"],[1,"ntd-agent-name"],[1,"ntd-agent-desc"],[1,"ntd-radio-group"],["type","button",1,"ntd-mode-btn",3,"click"],[1,"ntd-radio-label"],[1,"ntd-radio-hint"],[1,"ntd-row"],["matInput","","type","text","placeholder","Name",3,"input","value"],["appearance","outline",1,"ntd-field","ntd-field--small"],[3,"selectionChange","value"],["matInput","","placeholder","Search branch...",3,"input","focus","value","matAutocomplete","disabled"]],template:function(e,n){if(e&1){let i=x();o(0,"h2",6)(1,"mat-icon"),l(2,"rocket_launch"),s(),l(3,` New Task
2
- `),s(),o(4,"mat-dialog-content",7)(5,"mat-form-field",8)(6,"mat-label"),l(7,"Project"),s(),o(8,"input",9,0),u("input",function(d){return n.onProjectSearchInput(d.target.value)})("focus",function(){m(i);let d=S(9);return g(n.openPanel(d))}),s(),o(10,"mat-autocomplete",10,1),u("optionSelected",function(d){return n.selectProject(d.option.value)}),w(12,ct,2,2,"mat-option",11,I),s()(),o(14,"mat-form-field",8)(15,"mat-label"),l(16,"Agent"),s(),o(17,"input",12,2),u("input",function(d){return n.onAgentSearchInput(d.target.value)})("focus",function(){m(i);let d=S(18);return g(n.openPanel(d))}),s(),C(19,dt,1,0,"mat-spinner",13),o(20,"mat-autocomplete",10,3),u("optionSelected",function(d){return n.selectAgent(d.option.value)}),w(22,mt,4,3,"mat-option",11,lt),s()(),C(24,bt,17,6),o(25,"mat-form-field",8)(26,"mat-label"),l(27,"Task"),s(),o(28,"textarea",14),u("input",function(d){return n.task.set(d.target.value)}),s()()(),o(29,"mat-dialog-actions",15)(30,"button",16),u("click",function(){return n.cancel()}),l(31,"Cancel"),s(),o(32,"button",17),u("click",function(){return n.submit()}),C(33,vt,1,0,"mat-spinner",18)(34,Ct,2,0,"mat-icon")(35,kt,2,0,"mat-icon"),l(36),s()()}if(e&2){let i=S(11),a=S(21);c(8),f("value",n.projectSearch())("matAutocomplete",i),c(4),T(n.filteredProjects()),c(5),f("value",n.agentSearch())("matAutocomplete",a)("disabled",!n.selectedProject()||n.isLoadingAgents()),c(2),k(n.isLoadingAgents()?19:-1),c(3),T(n.filteredAgents()),c(2),k(n.hasGit()&&!n.forcedProject()?24:-1),c(4),f("value",n.task()),c(2),f("disabled",n.isSubmitting()),c(2),f("disabled",!n.canNavigate()||n.isSubmitting()),c(),k(n.isSubmitting()?33:n.isValid()?34:35),c(3),j(" ",n.isValid()?"Launch":"Open"," ")}},dependencies:[Ee,he,ge,_e,ue,G,R,W,z,Oe,B,H,U,Be,qe,Le,$e,We,ze,$,q,L,F],styles:["h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin-bottom:0}.ntd-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;padding-top:20px!important}.ntd-field[_ngcontent-%COMP%]{width:100%}.ntd-row[_ngcontent-%COMP%]{display:flex;gap:.75rem}.ntd-row[_ngcontent-%COMP%] .ntd-field--small[_ngcontent-%COMP%]{width:130px;flex-shrink:0}.ntd-radio-group[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding:.25rem 0 .75rem}.ntd-mode-btn[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.75rem;border:1px solid var(--color-border);border-radius:8px;background:transparent;color:var(--color-text);cursor:pointer;transition:border-color .15s,background .15s}.ntd-mode-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem;margin-bottom:.1rem}.ntd-mode-btn.active[_ngcontent-%COMP%]{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.ntd-mode-btn[_ngcontent-%COMP%]:hover:not(.active){border-color:var(--color-text-secondary)}.ntd-radio-label[_ngcontent-%COMP%]{font-weight:600;font-size:.9rem}.ntd-radio-hint[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);line-height:1.3;text-align:left}.ntd-agent-name[_ngcontent-%COMP%]{font-weight:500;display:block}.ntd-agent-desc[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px}.ntd-launch-btn[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse)}.ntd-launch-btn[_ngcontent-%COMP%]:disabled{background:var(--color-border);color:var(--color-text-secondary);opacity:.6;cursor:not-allowed}"]})};var X=class r{http=h(le);threadApi=h(ve);isLoading=_(!1);tasks=_([]);refresh(){this.isLoading.set(!0),this.threadApi.listAllThreads().pipe(te(15e3)).subscribe({next:t=>{let e=t.filter(n=>!n.parentThreadId).map(n=>({id:n.id,name:n.name,summary:n.summary,modifiedDate:n.modifiedDate,starring:n.starring??[],users:n.users??[],isActive:!1,status:this.deriveStatus(n),projectId:n.projectId,worktreeProject:n.worktreeProject}));this.tasks.set(this.sorted(e)),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1)}})}applyStatusEvent(t,e){let n=e==="invite"?"waiting-you":"in-progress";this.tasks.update(i=>this.sorted(i.map(a=>a.id===t?D(O({},a),{status:n}):a)))}closeTask(t,e){this.tasks.update(n=>n.filter(i=>i.id!==e)),this.http.delete(`/api/projects/${t}/missions/${e}`).subscribe({next:()=>this.refresh(),error:n=>{console.error("[GLOBAL-TC] Failed to close task:",n),this.refresh()}})}stopThread(t,e){this.http.post(`/api/projects/${t}/threads/${e}/stop`,{}).subscribe({error:n=>console.error("[GLOBAL-TC] Failed to stop thread:",n)})}deleteThread(t,e){this.tasks.update(n=>n.filter(i=>i.id!==e)),this.http.delete(`/api/projects/${t}/threads/${e}`).subscribe({next:()=>this.refresh(),error:n=>{console.error("[GLOBAL-TC] Failed to delete thread:",n),this.refresh()}})}toggleStar(t,e,n){let i=`/api/projects/${t}/threads/${e}/star`;(n?this.http.delete(i):this.http.post(i,{})).subscribe({next:()=>this.refresh(),error:d=>console.error("[GLOBAL-TC] Failed to toggle star:",d)})}markTaskDone(t,e){this.http.post(`/api/projects/${t}/threads/${e}/done`,{}).subscribe({next:()=>this.refresh(),error:n=>console.error("[GLOBAL-TC] Failed to mark task as done:",n)})}markTaskActive(t,e){this.http.delete(`/api/projects/${t}/threads/${e}/done`).subscribe({next:()=>this.refresh(),error:n=>console.error("[GLOBAL-TC] Failed to mark task as active:",n)})}deriveStatus(t){return t.closedByUser?"done":t.pendingInvite?"waiting-you":Date.now()-new Date(t.modifiedDate).getTime()<Ke?"in-progress":"paused"}sorted(t){return[...t].sort((e,n)=>{let i=Z[e.status]-Z[n.status];return i!==0?i:e.modifiedDate>n.modifiedDate?-1:1})}static \u0275fac=function(e){return new(e||r)};static \u0275prov=E({token:r,factory:r.\u0275fac,providedIn:"root"})};var J=class r{configApi=h(Ye);dialog=h(A);openUserConfigEditor(){this.configApi.getUserConfig().subscribe({next:t=>{this.dialog.open(Ze,{data:{configType:"user",initialContent:JSON.stringify(t,null,2)}}).afterClosed().subscribe(n=>{n&&this.configApi.updateUserConfig(n).subscribe({error:i=>console.error("[CONFIG-STATE] Error saving user config:",i)})})},error:t=>console.error("[CONFIG-STATE] Error loading user config:",t)})}static \u0275fac=function(e){return new(e||r)};static \u0275prov=E({token:r,factory:r.\u0275fac,providedIn:"root"})};var xt=["layoutContainer"],wt=(r,t)=>t.key,Tt=(r,t)=>t.name,yt=(r,t)=>t.status,tt=(r,t)=>t.id;function St(r,t){if(r&1){let e=x();o(0,"button",30),u("click",function(){m(e);let i=p();return g(i.clearSearch())}),o(1,"mat-icon"),l(2,"close"),s()()}}function Mt(r,t){if(r&1){let e=x();o(0,"button",31),u("click",function(){let i=m(e).$implicit,a=p(2);return g(a.setProject(i.name))}),l(1),o(2,"span",32),l(3),s()()}if(r&2){let e=t.$implicit,n=p(2);y("active",n.activeProject()===e.name),c(),j(" ",e.name," "),c(2),b(e.count)}}function Pt(r,t){if(r&1){let e=x();o(0,"nav",20)(1,"button",31),u("click",function(){m(e);let i=p();return g(i.setProject(null))}),l(2," All projects "),o(3,"span",32),l(4),s()(),w(5,Mt,4,4,"button",33,Tt),s()}if(r&2){let e=p();c(),y("active",e.activeProject()===null),c(3),b(e.allTasks().length),c(),T(e.projectSummaries())}}function jt(r,t){if(r&1&&(o(0,"span",35),l(1),s()),r&2){let e=p().$implicit,n=p();c(),b(n.filterCounts()[e.key])}}function Ot(r,t){if(r&1){let e=x();o(0,"button",34),u("click",function(){let i=m(e).$implicit,a=p();return g(a.setFilter(i.key))}),o(1,"mat-icon",24),l(2),s(),o(3,"span"),l(4),s(),C(5,jt,2,1,"span",35),s()}if(r&2){let e=t.$implicit,n=p();y("active",n.activeFilter()===e.key),Y("aria-selected",n.activeFilter()===e.key),c(2),b(e.icon),c(2),b(e.label),c(),k(n.filterCounts()[e.key]>0?5:-1)}}function Dt(r,t){r&1&&(o(0,"div",27),M(1,"mat-spinner",36),o(2,"p"),l(3,"Loading tasks from all projects\u2026"),s()())}function Et(r,t){r&1&&(o(0,"div",28)(1,"mat-icon",37),l(2,"hub"),s(),o(3,"p"),l(4,"No tasks found."),s()())}function Nt(r,t){if(r&1){let e=x();o(0,"app-task-card",43),u("stopRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onStopRequested(i,a.projectId))})("deleteRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onDeleteRequested(i,a.projectId))})("starToggled",function(i){let a=m(e).$implicit,d=p(3);return g(d.onStarToggled(i,a.projectId))})("closeTaskRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onCloseTaskRequested(i,a.projectId))})("markDoneRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onMarkDoneRequested(i,a.projectId))})("markActiveRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onMarkActiveRequested(i,a.projectId))})("previewRequested",function(i){let a=m(e).$implicit,d=p(3);return g(d.onPreviewRequested(i,a.projectId,a.name))}),s()}if(r&2){let e=t.$implicit,n=p(3);y("is-previewed",n.previewThreadId()===e.id),f("task",e)("projectNameOverride",e.projectId)("showProject",!0)("previewMode",n.previewActive())}}function It(r,t){if(r&1&&(o(0,"section",38)(1,"h3",39)(2,"mat-icon",40),l(3),s(),l(4),o(5,"span",41),l(6),s()(),o(7,"div",29),w(8,Nt,1,6,"app-task-card",42,tt),s()()),r&2){let e=t.$implicit;c(3),b(e.icon),c(),j(" ",e.label," "),c(2),b(e.tasks.length),c(2),T(e.tasks)}}function At(r,t){if(r&1&&w(0,It,10,3,"section",38,yt),r&2){let e=p();T(e.taskGroups())}}function Rt(r,t){if(r&1){let e=x();o(0,"app-task-card",43),u("stopRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onStopRequested(i,a.projectId))})("deleteRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onDeleteRequested(i,a.projectId))})("starToggled",function(i){let a=m(e).$implicit,d=p(2);return g(d.onStarToggled(i,a.projectId))})("closeTaskRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onCloseTaskRequested(i,a.projectId))})("markDoneRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onMarkDoneRequested(i,a.projectId))})("markActiveRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onMarkActiveRequested(i,a.projectId))})("previewRequested",function(i){let a=m(e).$implicit,d=p(2);return g(d.onPreviewRequested(i,a.projectId,a.name))}),s()}if(r&2){let e=t.$implicit,n=p(2);y("is-previewed",n.previewThreadId()===e.id),f("task",e)("projectNameOverride",e.projectId)("showProject",!0)("previewMode",n.previewActive())}}function Gt(r,t){if(r&1&&(o(0,"div",29),w(1,Rt,1,6,"app-task-card",42,tt),s()),r&2){let e=p();c(),T(e.displayedTasks())}}function Vt(r,t){if(r&1){let e=x();o(0,"div",44),u("mousedown",function(i){m(e);let a=p();return g(a.onResizerMousedown(i))}),s(),o(1,"div",45)(2,"header",46)(3,"span",47),l(4),s(),o(5,"div",48)(6,"button",49),u("click",function(){m(e);let i=p();return g(i.navigateToThread())}),o(7,"mat-icon"),l(8,"open_in_full"),s()(),o(9,"button",50),u("click",function(){m(e);let i=p();return g(i.closePreview())}),o(10,"mat-icon"),l(11,"close"),s()()()(),o(12,"div",51),M(13,"app-thread",52),s()()}if(r&2){let e=p();c(),se("width",e.previewPanelWidthPercent(),"%"),c(3),b(e.previewTaskName()||"Task"),c(9),f("projectName",e.previewProjectId())("threadId",e.previewThreadId())}}var Ft=20,Lt=70,qt=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{status:"in-progress",label:"In progress",icon:"pending"},{status:"paused",label:"Paused",icon:"pause_circle"},{status:"error",label:"Error",icon:"error"},{status:"done",label:"Done",icon:"check_circle"}],$t=[{key:"all",label:"All",icon:"grid_view"},{key:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{key:"in-progress",label:"In progress",icon:"pending"},{key:"paused",label:"Paused",icon:"pause_circle"},{key:"done",label:"Done",icon:"check_circle"}],et=class r{globalTaskService=h(X);destroyRef=h(ie);dialog=h(A);router=h(ce);configState=h(J);userService=h(ke);preferences=h(Qe);projectState=h(V);threadState=h(Ce);breakpointObserver=h(pe);username=P(this.userService.username$,{initialValue:null});isDesktop=P(this.breakpointObserver.observe("(min-width: 1280px)").pipe(ne(t=>t.matches)),{initialValue:!1});previewEnabled=P(this.preferences.missionPreviewEnabled$,{initialValue:!1});previewActive=v(()=>this.previewEnabled()&&this.isDesktop());previewThreadId=_(null);previewProjectId=_(null);previewTaskName=_(null);previewPanelWidthPercent=_(this.preferences.getMissionPreviewPanelWidth());isDraggingResizer=!1;dragStartX=0;dragStartWidth=0;containerWidth=0;layoutContainerRef;globalEventSource=null;filters=$t;activeFilter=_("all");starredOnly=_(!1);activeProject=_(null);searchQuery=_("");isLoading=this.globalTaskService.isLoading;allTasks=this.globalTaskService.tasks;projectSummaries=v(()=>{let t=this.allTasks(),e=new Map;for(let n of t)e.set(n.projectId,(e.get(n.projectId)??0)+1);return[...e.entries()].map(([n,i])=>({name:n,count:i})).sort((n,i)=>n.name.localeCompare(i.name))});filteredTasks=v(()=>{let t=this.allTasks(),e=this.activeProject();e&&(t=t.filter(a=>a.projectId===e));let n=this.username();this.starredOnly()&&n&&(t=t.filter(a=>a.starring.includes(n)));let i=this.activeFilter();return i!=="all"&&(t=t.filter(a=>a.status===i)),t});filterCounts=v(()=>{let t=this.allTasks(),e=this.activeProject();e&&(t=t.filter(i=>i.projectId===e));let n=this.username();return this.starredOnly()&&n&&(t=t.filter(i=>i.starring.includes(n))),{all:t.length,"waiting-you":t.filter(i=>i.status==="waiting-you").length,"in-progress":t.filter(i=>i.status==="in-progress").length,done:t.filter(i=>i.status==="done").length,paused:t.filter(i=>i.status==="paused").length,error:t.filter(i=>i.status==="error").length}});displayedTasks=v(()=>{let t=this.searchQuery().toLowerCase().trim(),e=this.sortedFilteredTasks();return t?e.filter(n=>(n.name||"").toLowerCase().includes(t)||(n.summary||"").toLowerCase().includes(t)):e});taskGroups=v(()=>{let t=this.displayedTasks();return qt.map(e=>D(O({},e),{tasks:t.filter(n=>n.status===e.status)})).filter(e=>e.tasks.length>0)});sortedFilteredTasks=v(()=>{let t=this.filteredTasks(),e={"waiting-you":0,"in-progress":1,paused:2,error:3,done:4};return[...t].sort((n,i)=>(e[n.status]??99)-(e[i.status]??99))});constructor(){this.destroyRef.onDestroy(()=>this.disconnectGlobalSse())}ngOnInit(){this.globalTaskService.refresh(),this.connectGlobalSse(),this.userService.fetchCurrentUser().pipe(Ne(this.destroyRef)).subscribe({error:t=>console.warn("[GTC] Could not fetch user:",t)})}setFilter(t){this.activeFilter.set(t)}toggleStarredFilter(){this.starredOnly.update(t=>!t)}setProject(t){this.activeProject.set(t),this.activeFilter.set("all")}onSearchInput(t){this.searchQuery.set(t.target.value)}clearSearch(){this.searchQuery.set("")}refresh(){this.globalTaskService.refresh()}openPreferences(){this.dialog.open(Xe,{width:"400px"})}openTokenUsage(){this.router.navigate(["/token-usage"])}openUserConfig(){this.configState.openUserConfigEditor()}openNewTaskDialog(){this.dialog.open(Q,{width:"500px",disableClose:!1}).afterClosed().subscribe(e=>{e&&(e.navigate?this.router.navigate(["project",e.projectId]):(setTimeout(()=>this.globalTaskService.refresh(),300),setTimeout(()=>this.globalTaskService.refresh(),1500)))})}onStopRequested(t,e){this.globalTaskService.stopThread(e,t)}onDeleteRequested(t,e){this.globalTaskService.deleteThread(e,t)}onStarToggled(t,e){let n=this.allTasks().find(d=>d.id===t);if(!n)return;let i=this.username(),a=!!i&&n.starring.includes(i);this.globalTaskService.toggleStar(e,t,a)}onCloseTaskRequested(t,e){let i=this.allTasks().find(d=>d.id===t)?.worktreeProject??e;this.dialog.open(He,{width:"420px",data:{title:"Close task",message:`This will stop the agent, delete the thread and remove the worktree project "${i}" from disk. This cannot be undone.`,confirmLabel:"Close task",cancelLabel:"Cancel"}}).afterClosed().subscribe(d=>{d&&this.globalTaskService.closeTask(e,t)})}onMarkDoneRequested(t,e){this.globalTaskService.markTaskDone(e,t)}onMarkActiveRequested(t,e){this.globalTaskService.markTaskActive(e,t)}onPreviewRequested(t,e,n){this.previewThreadId()===t?(this.previewThreadId.set(null),this.previewProjectId.set(null),this.previewTaskName.set(null)):(this.projectState.selectProject(e),this.threadState.selectThread(t),this.previewProjectId.set(e),this.previewThreadId.set(t),this.previewTaskName.set(n))}closePreview(){this.previewThreadId.set(null),this.previewProjectId.set(null),this.previewTaskName.set(null)}navigateToThread(){let t=this.previewThreadId(),e=this.previewProjectId();!t||!e||this.router.navigate(["project",e,"thread",t])}onResizerMousedown(t){t.preventDefault(),this.isDraggingResizer=!0,this.dragStartX=t.clientX,this.dragStartWidth=this.previewPanelWidthPercent(),this.containerWidth=this.layoutContainerRef?.nativeElement.offsetWidth??window.innerWidth}onDocumentMousemove(t){if(!this.isDraggingResizer)return;let n=(this.dragStartX-t.clientX)/this.containerWidth*100,i=Math.min(Lt,Math.max(Ft,this.dragStartWidth+n));this.previewPanelWidthPercent.set(i)}onDocumentMouseup(){this.isDraggingResizer&&(this.isDraggingResizer=!1,this.preferences.setMissionPreviewPanelWidth(this.previewPanelWidthPercent()))}connectGlobalSse(t=5e3){this.disconnectGlobalSse();let e=new EventSource("/api/event-stream");this.globalEventSource=e,e.onmessage=n=>{try{let i=JSON.parse(n.data),a=Ve(i);if(!a)return;let d=a.threadId;if(!d)return;a instanceof Ie||a instanceof Ae?this.globalTaskService.applyStatusEvent(d,"invite"):a instanceof Re?this.globalTaskService.applyStatusEvent(d,"thinking"):a instanceof Ge&&this.globalTaskService.refresh()}catch(i){}},e.onerror=()=>{e.readyState===EventSource.CLOSED&&(this.globalEventSource=null,setTimeout(()=>{this.globalEventSource||this.connectGlobalSse(Math.min(t*2,6e4))},t))}}disconnectGlobalSse(){this.globalEventSource&&(this.globalEventSource.close(),this.globalEventSource=null)}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=N({type:r,selectors:[["app-global-task-control"]],viewQuery:function(e,n){if(e&1&&oe(xt,5),e&2){let i;re(i=ae())&&(n.layoutContainerRef=i.first)}},hostBindings:function(e,n){e&1&&u("mousemove",function(a){return n.onDocumentMousemove(a)},K)("mouseup",function(){return n.onDocumentMouseup()},K)},decls:70,vars:10,consts:[["layoutContainer",""],["controlCenterMenu","matMenu"],[1,"gtc"],[1,"gtc-toolbar"],[1,"gtc-toolbar-left"],[1,"gtc-logo-icon"],[1,"gtc-title"],["appearance","fill","subscriptSizing","dynamic",1,"gtc-search"],["matPrefix",""],["matInput","","type","search","placeholder","Filter tasks\u2026","autocomplete","off",3,"input","keydown.escape","value"],["matSuffix","","mat-icon-button","","aria-label","Clear"],[1,"gtc-toolbar-actions"],["mat-icon-button","","matTooltip","Control Center","aria-label","Control Center",3,"matMenuTriggerFor"],["mat-menu-item","",3,"click"],["mat-menu-item","","href","https://github.com/whoz-oss/coday","target","_blank","rel","noopener noreferrer"],["mat-icon-button","","matTooltip","Refresh all tasks","aria-label","Refresh tasks",3,"click","disabled"],["mat-stroked-button","","routerLink","/projects","aria-label","Manage projects","matTooltip","Manage projects"],[1,"btn-label"],["mat-flat-button","","aria-label","New task","matTooltip","New Task",1,"gtc-new-btn",3,"click"],[1,"gtc-filter-bar"],["aria-label","Filter by project",1,"gtc-project-filters"],["role","tablist","aria-label","Filter by status",1,"gtc-filters"],["role","tab",1,"filter-chip",3,"active"],["role","switch","aria-label","Show starred tasks only",1,"filter-chip","starred-filter",3,"click"],[1,"filter-icon"],[1,"gtc-body"],[1,"gtc-content"],[1,"gtc-loading"],[1,"gtc-empty"],[1,"gtc-grid"],["matSuffix","","mat-icon-button","","aria-label","Clear",3,"click"],[1,"project-chip",3,"click"],[1,"chip-count"],[1,"project-chip",3,"active"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","36"],[1,"empty-icon"],[1,"gtc-group"],[1,"gtc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task","projectNameOverride","showProject","previewMode","is-previewed"],[3,"stopRequested","deleteRequested","starToggled","closeTaskRequested","markDoneRequested","markActiveRequested","previewRequested","task","projectNameOverride","showProject","previewMode"],["matTooltip","Drag to resize","aria-hidden","true",1,"gtc-resizer",3,"mousedown"],[1,"gtc-preview-pane"],[1,"gtc-preview-header"],[1,"gtc-preview-title"],[1,"gtc-preview-actions"],["matTooltip","Open full view","aria-label","Open thread in full view","type","button",1,"preview-action-btn",3,"click"],["matTooltip","Close panel","aria-label","Close preview panel","type","button",1,"preview-action-btn",3,"click"],[1,"gtc-preview-body"],[3,"projectName","threadId"]],template:function(e,n){if(e&1&&(o(0,"div",2,0)(2,"header",3)(3,"div",4)(4,"mat-icon",5),l(5,"hub"),s(),o(6,"h1",6),l(7,"Global Task Control"),s()(),o(8,"mat-form-field",7)(9,"mat-icon",8),l(10,"search"),s(),o(11,"input",9),u("input",function(a){return n.onSearchInput(a)})("keydown.escape",function(){return n.clearSearch()}),s(),C(12,St,3,0,"button",10),s(),o(13,"div",11)(14,"button",12)(15,"mat-icon"),l(16,"hub"),s()(),o(17,"mat-menu",null,1)(19,"button",13),u("click",function(){return n.openPreferences()}),o(20,"mat-icon"),l(21,"tune"),s(),o(22,"span"),l(23,"Preferences"),s()(),o(24,"button",13),u("click",function(){return n.openTokenUsage()}),o(25,"mat-icon"),l(26,"data_usage"),s(),o(27,"span"),l(28,"Token Usage"),s()(),o(29,"button",13),u("click",function(){return n.openUserConfig()}),o(30,"mat-icon"),l(31,"manage_accounts"),s(),o(32,"span"),l(33,"User Configuration"),s()(),M(34,"mat-divider"),o(35,"a",14)(36,"mat-icon"),l(37,"code"),s(),o(38,"span"),l(39,"Contribute on GitHub"),s()()(),o(40,"button",15),u("click",function(){return n.refresh()}),o(41,"mat-icon"),l(42,"refresh"),s()(),o(43,"button",16)(44,"mat-icon"),l(45,"settings"),s(),o(46,"span",17),l(47,"Manage projects"),s()(),o(48,"button",18),u("click",function(){return n.openNewTaskDialog()}),o(49,"mat-icon"),l(50,"rocket_launch"),s(),o(51,"span",17),l(52,"New Task"),s()()()(),o(53,"div",19),C(54,Pt,7,3,"nav",20),o(55,"nav",21),w(56,Ot,6,6,"button",22,wt),o(58,"button",23),u("click",function(){return n.toggleStarredFilter()}),o(59,"mat-icon",24),l(60,"star"),s(),o(61,"span"),l(62,"Starred"),s()()()(),o(63,"div",25)(64,"main",26),C(65,Dt,4,0,"div",27)(66,Et,5,0,"div",28)(67,At,2,0)(68,Gt,3,0,"div",29),s(),C(69,Vt,14,5),s()()),e&2){let i=S(18);c(11),f("value",n.searchQuery()),c(),k(n.searchQuery()?12:-1),c(2),f("matMenuTriggerFor",i),c(26),f("disabled",n.isLoading()),c(14),k(n.projectSummaries().length>1?54:-1),c(2),T(n.filters),c(2),y("active",n.starredOnly()),Y("aria-checked",n.starredOnly()),c(7),k(n.isLoading()?65:n.displayedTasks().length===0?66:n.activeFilter()==="all"&&!n.searchQuery()?67:68),c(4),k(n.previewActive()&&n.previewThreadId()&&n.previewProjectId()?69:-1)}},dependencies:[Fe,Je,L,F,G,R,fe,we,xe,$,q,Me,ye,Te,Se,je,Pe,W,z,De,B,H,U,de],styles:[".glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block;width:100%;height:100%;overflow:hidden}.gtc[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}.gtc-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:0 .75rem;height:56px;flex-shrink:0;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));box-sizing:border-box}.gtc-toolbar-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.gtc-logo-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem;color:var(--color-primary)}.gtc-title[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:600;color:var(--color-text);white-space:nowrap}.gtc-search[_ngcontent-%COMP%]{margin-left:auto;flex:0 1 240px;min-width:80px;--mat-form-field-container-height: 36px;--mat-form-field-container-vertical-padding: 6px;font-size:.875rem;--mdc-filled-text-field-container-color: transparent;--mdc-filled-text-field-hover-container-color: transparent;--mdc-filled-text-field-focus-container-color: transparent;--mdc-filled-text-field-active-indicator-color: transparent;--mdc-filled-text-field-hover-active-indicator-color: transparent;--mdc-filled-text-field-focus-active-indicator-color: transparent;--mdc-filled-text-field-active-indicator-height: 0}.gtc-toolbar-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.gtc-new-btn[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;height:36px;padding:0 1rem}.gtc-new-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}@media(max-width:600px){.gtc-toolbar[_ngcontent-%COMP%]{flex-wrap:wrap;height:auto;min-height:48px;padding:.5rem .75rem;gap:.375rem}.gtc-title[_ngcontent-%COMP%]{font-size:.875rem}.gtc-search[_ngcontent-%COMP%]{order:3;flex:1 1 100%;min-width:0;margin-left:0}.gtc-toolbar-actions[_ngcontent-%COMP%]{margin-left:auto}.btn-label[_ngcontent-%COMP%]{display:none}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]){--mdc-text-button-container-height: 36px;--mdc-filled-button-container-height: 36px;--mdc-outlined-button-container-height: 36px;min-width:36px;width:36px;height:36px;padding:0;border-radius:50%!important}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]) .mat-mdc-button-touch-target[_ngcontent-%COMP%]{width:36px;height:36px}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]) mat-icon[_ngcontent-%COMP%]{margin:0!important}}.gtc-filter-bar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem;padding:.5rem .75rem;flex-shrink:0;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.gtc-project-filters[_ngcontent-%COMP%]{display:flex;gap:.375rem;flex-wrap:wrap}.project-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .65rem;border-radius:100px;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.project-chip[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .3rem;font-size:.68rem;font-weight:700;min-width:16px;text-align:center;line-height:16px}.project-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.project-chip.active[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:#ffffff40;color:var(--color-text-inverse)}.project-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.gtc-filters[_ngcontent-%COMP%]{display:flex;gap:.375rem;flex-wrap:wrap}.filter-chip[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);display:flex;align-items:center;gap:.375rem;padding:.3rem .75rem;border-radius:100px;font-size:.8rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border:1px solid var(--color-border);transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.filter-chip[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{font-size:.9rem;width:.9rem;height:.9rem}.filter-chip[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.filter-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.filter-chip.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:var(--color-text-inverse)}.filter-chip.active[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:#ffffff40;color:var(--color-text-inverse)}.filter-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.starred-filter.active[_ngcontent-%COMP%]{background:#f5a62326;border-color:#f5a623;color:#f5a623}.starred-filter.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:#f5a623}.gtc-body[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex:1;overflow:hidden;min-height:0}.gtc-content[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:1rem 1rem 2rem;min-width:0}.gtc-resizer[_ngcontent-%COMP%]{width:6px;flex-shrink:0;cursor:col-resize;background:transparent;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);transition:background .15s ease}.gtc-resizer[_ngcontent-%COMP%]:hover, .gtc-resizer[_ngcontent-%COMP%]:active{background:var(--color-primary);opacity:.4}.gtc-preview-pane[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;flex-shrink:0;min-width:280px;border-left:1px solid var(--color-border);background:var(--glass-bg)}.gtc-preview-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.625rem .75rem .625rem 1rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.gtc-preview-title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.gtc-preview-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;flex-shrink:0}.preview-action-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;cursor:pointer;transition:background .15s ease}.preview-action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:18px;color:var(--color-text-secondary)}.preview-action-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.preview-action-btn[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{color:var(--color-text)}.gtc-preview-body[_ngcontent-%COMP%]{flex:1;overflow:hidden;display:flex;flex-direction:column}.gtc-preview-body[_ngcontent-%COMP%] app-thread[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;overflow:hidden;height:100%} app-task-card.is-previewed .task-card{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.gtc-group[_ngcontent-%COMP%]{margin-bottom:1.25rem}.gtc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.gtc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.gtc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:.95rem;width:.95rem;height:.95rem}.gtc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:16px;text-align:center;line-height:16px}.gtc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}@media(max-width:600px){.gtc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.gtc-loading[_ngcontent-%COMP%], .gtc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;color:var(--color-text-secondary);text-align:center}.gtc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .gtc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.9rem}.empty-icon[_ngcontent-%COMP%]{font-size:2.5rem;width:2.5rem;height:2.5rem;opacity:.3}"],changeDetection:0})};export{et as GlobalTaskControlComponent};