docker-client-mx 1.40.0 → 1.42.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.
Files changed (100) hide show
  1. package/dist/docker-desktop-mx/browser/{chunk-CpVmilfG.js → chunk-3VyqMz_T.js} +2 -2
  2. package/dist/docker-desktop-mx/browser/{chunk-Doow6WqE.js → chunk-BW20bBdg.js} +1 -1
  3. package/dist/docker-desktop-mx/browser/chunk-Ba_z6LGV.js +1 -0
  4. package/dist/docker-desktop-mx/browser/chunk-BdOOWVGY.js +4 -0
  5. package/dist/docker-desktop-mx/browser/chunk-BgNCBUvw2.js +1 -0
  6. package/dist/docker-desktop-mx/browser/{chunk-D4dQfTTc.js → chunk-BoN9ZlqT.js} +1 -1
  7. package/dist/docker-desktop-mx/browser/chunk-BsAqguck2.js +3 -0
  8. package/dist/docker-desktop-mx/browser/{chunk-Bw7Mtap6.js → chunk-Bx2_SrZM.js} +1 -1
  9. package/dist/docker-desktop-mx/browser/{chunk-CZNcOfBu2.js → chunk-C-yEXU2P.js} +2 -2
  10. package/dist/docker-desktop-mx/browser/chunk-C1Wg9uje.js +1 -0
  11. package/dist/docker-desktop-mx/browser/{chunk-CC_wIdx2.js → chunk-C22Z7vgK.js} +1 -1
  12. package/dist/docker-desktop-mx/browser/chunk-C6u6rXYb2.js +1 -0
  13. package/dist/docker-desktop-mx/browser/{chunk-Ch8nHKqR.js → chunk-CC84vXik.js} +1 -1
  14. package/dist/docker-desktop-mx/browser/{chunk-DdFeg3-c.js → chunk-CI9I9Npi.js} +1 -1
  15. package/dist/docker-desktop-mx/browser/{chunk-DBPVGjlB.js → chunk-CMrtklQ1.js} +2 -2
  16. package/dist/docker-desktop-mx/browser/{chunk-wVwXBw1N.js → chunk-CRNeTD5E.js} +1 -1
  17. package/dist/docker-desktop-mx/browser/{chunk-5jLUVNg7.js → chunk-CSrKHPxR.js} +1 -1
  18. package/dist/docker-desktop-mx/browser/{chunk-Dz9ZDzia.js → chunk-CT1ZUgmS.js} +1 -1
  19. package/dist/docker-desktop-mx/browser/chunk-CWusqRG0.js +1 -0
  20. package/dist/docker-desktop-mx/browser/{chunk-8P32TlCt.js → chunk-Cbit44lz.js} +1 -1
  21. package/dist/docker-desktop-mx/browser/chunk-Cc4_zCxe2.js +1 -0
  22. package/dist/docker-desktop-mx/browser/{chunk-BH9xkVLp.js → chunk-Ckq_aT3A.js} +1 -1
  23. package/dist/docker-desktop-mx/browser/{chunk-BEAPEQBM.js → chunk-CrBxmi_g.js} +1 -1
  24. package/dist/docker-desktop-mx/browser/chunk-D-7d5O7f.js +1 -0
  25. package/dist/docker-desktop-mx/browser/{chunk-CP90rR4k.js → chunk-D0xC_xVf.js} +1 -1
  26. package/dist/docker-desktop-mx/browser/chunk-D29s9m84.js +1 -0
  27. package/dist/docker-desktop-mx/browser/chunk-DKpHNjiv.js +1 -0
  28. package/dist/docker-desktop-mx/browser/chunk-DLeqF0uQ.js +1 -0
  29. package/dist/docker-desktop-mx/browser/chunk-DZjRtM2K.js +1 -0
  30. package/dist/docker-desktop-mx/browser/chunk-DsuW5Ksa2.js +1 -0
  31. package/dist/docker-desktop-mx/browser/chunk-DvoPI4MU.js +1 -0
  32. package/dist/docker-desktop-mx/browser/chunk-DzG5R5Kk.js +1 -0
  33. package/dist/docker-desktop-mx/browser/{chunk-fqYbS3e-.js → chunk-KUYJNmP22.js} +1 -1
  34. package/dist/docker-desktop-mx/browser/chunk-QaMufr3I.js +1 -0
  35. package/dist/docker-desktop-mx/browser/{chunk-MpnWAfxv.js → chunk-V7ftX_10.js} +1 -1
  36. package/dist/docker-desktop-mx/browser/{chunk-Bn40KMmY.js → chunk-Zcfhi-RM.js} +1 -1
  37. package/dist/docker-desktop-mx/browser/{chunk-CiOk-qoT.js → chunk-Zom3ankA.js} +1 -1
  38. package/dist/docker-desktop-mx/browser/{chunk-DKNRYU3y.js → chunk-cYufOe8J.js} +1 -1
  39. package/dist/docker-desktop-mx/browser/chunk-eG8Su12W.js +1 -0
  40. package/dist/docker-desktop-mx/browser/chunk-ep62jwHG.js +1 -0
  41. package/dist/docker-desktop-mx/browser/{chunk-Di8ZOBwa.js → chunk-iwVkNYYA.js} +1 -1
  42. package/dist/docker-desktop-mx/browser/chunk-wa_VZZFY.js +1 -0
  43. package/dist/docker-desktop-mx/browser/index.html +2 -2
  44. package/dist/docker-desktop-mx/browser/main-DECBD64Q.js +1 -0
  45. package/dist/docker-desktop-mx/browser/styles-5TXFXUUF.css +1 -0
  46. package/dist-electron/auto-prune.js +76 -0
  47. package/dist-electron/auto-prune.js.map +1 -0
  48. package/dist-electron/channels.js +9 -0
  49. package/dist-electron/channels.js.map +1 -1
  50. package/dist-electron/container-commit.js +39 -0
  51. package/dist-electron/container-commit.js.map +1 -0
  52. package/dist-electron/container-rename.js +63 -0
  53. package/dist-electron/container-rename.js.map +1 -0
  54. package/dist-electron/environment.js +52 -0
  55. package/dist-electron/environment.js.map +1 -0
  56. package/dist-electron/image-reference.js +92 -0
  57. package/dist-electron/image-reference.js.map +1 -0
  58. package/dist-electron/image-tags.js +138 -0
  59. package/dist-electron/image-tags.js.map +1 -0
  60. package/dist-electron/images.js +2 -17
  61. package/dist-electron/images.js.map +1 -1
  62. package/dist-electron/ipc.js +26 -0
  63. package/dist-electron/ipc.js.map +1 -1
  64. package/dist-electron/main.js +34 -0
  65. package/dist-electron/main.js.map +1 -1
  66. package/dist-electron/preload.js +18 -1
  67. package/dist-electron/preload.js.map +1 -1
  68. package/dist-electron/pull.js +20 -12
  69. package/dist-electron/pull.js.map +1 -1
  70. package/dist-electron/redact.js +9 -0
  71. package/dist-electron/redact.js.map +1 -1
  72. package/dist-electron/renew.js +2 -2
  73. package/dist-electron/renew.js.map +1 -1
  74. package/dist-electron/settings.js +22 -0
  75. package/dist-electron/settings.js.map +1 -1
  76. package/dist-electron/volume-backup.js +16 -3
  77. package/dist-electron/volume-backup.js.map +1 -1
  78. package/dist-electron/volume-copy.js +145 -0
  79. package/dist-electron/volume-copy.js.map +1 -0
  80. package/package.json +1 -1
  81. package/dist/docker-desktop-mx/browser/chunk-7fAa0H9l2.js +0 -1
  82. package/dist/docker-desktop-mx/browser/chunk-BMXieIjc.js +0 -1
  83. package/dist/docker-desktop-mx/browser/chunk-BfC3KqGQ.js +0 -1
  84. package/dist/docker-desktop-mx/browser/chunk-CC7DUrLR.js +0 -1
  85. package/dist/docker-desktop-mx/browser/chunk-CHFuuSv8.js +0 -1
  86. package/dist/docker-desktop-mx/browser/chunk-CaYY-6hH.js +0 -1
  87. package/dist/docker-desktop-mx/browser/chunk-CmtjDUsV.js +0 -1
  88. package/dist/docker-desktop-mx/browser/chunk-CzrtYwlw.js +0 -1
  89. package/dist/docker-desktop-mx/browser/chunk-D0pCyzqb.js +0 -1
  90. package/dist/docker-desktop-mx/browser/chunk-DAgdneMS.js +0 -1
  91. package/dist/docker-desktop-mx/browser/chunk-DEsPgcXV.js +0 -4
  92. package/dist/docker-desktop-mx/browser/chunk-DFhjd8-d2.js +0 -1
  93. package/dist/docker-desktop-mx/browser/chunk-DGtAiSbg.js +0 -1
  94. package/dist/docker-desktop-mx/browser/chunk-DLh60Eif.js +0 -1
  95. package/dist/docker-desktop-mx/browser/chunk-Dq9pgyA42.js +0 -2
  96. package/dist/docker-desktop-mx/browser/chunk-Ds9stAVj.js +0 -1
  97. package/dist/docker-desktop-mx/browser/chunk-lLCuDcp6.js +0 -1
  98. package/dist/docker-desktop-mx/browser/chunk-nped2UPz.js +0 -1
  99. package/dist/docker-desktop-mx/browser/main-HUWYR6IC.js +0 -1
  100. package/dist/docker-desktop-mx/browser/styles-D7Y5N7JX.css +0 -1
@@ -0,0 +1 @@
1
+ import{$n as sk,A as HE,B as Kr,Bn as ok,Cn as ik,D as Gm,Dn as kc,En as kE,Et as Ty,Fn as nS,Gt as _m,H as Ld,J as Nc,K as My,L as JF,Nt as W,Pt as Wm,R as Jm,St as Tc,Wn as pg,Wt as _S,cn as f,cr as ve,et as Od,f as C,gr as wt,gt as SS,ht as SE,jn as lk,l as BE,ln as fS,lr as vg,mr as wc,o as Ac,on as eH,or as vS,qt as ag,rn as dk,rt as Ot,sn as ec,t as $E,tt as Oi,u as Br,ut as Qm,w as G,xn as hg}from"./chunk-BdOOWVGY.js";import"./chunk-CSrKHPxR.js";import{n as u,t as f$1}from"./chunk-V7ftX_10.js";import"./chunk-iwVkNYYA.js";import{n as y,t as w}from"./chunk-CC84vXik.js";import{i as Ie$1,o as Ne$1}from"./chunk-D29s9m84.js";import"./chunk-eG8Su12W.js";import"./chunk-Bx2_SrZM.js";import"./chunk-QaMufr3I.js";import{n as x,t as u$1}from"./chunk-BW20bBdg.js";import{n as P,t as K}from"./chunk-DvoPI4MU.js";import{n as W$1,t as J}from"./chunk-DZjRtM2K.js";var se;var le=f(()=>{se=[`claude-opus-5`,`claude-sonnet-5`,`claude-haiku-4-5`]});function Se(a,n){if(a&1&&(Oi(0,`span`,34),fS(1),Nc()),a&2){let e=HE(2);ec(),pg(e.t().inUse)}}function Ce(a,n){if(a&1&&(Oi(0,`span`,34),fS(1),Nc()),a&2){let e=HE(2);ec(),pg(e.t().cli)}}function ke(a,n){if(a&1&&(Oi(0,`div`,36),fS(1),Nc()),a&2){let e=HE().$implicit;ec(),pg(e.description)}}function we(a,n){if(a&1&&(Oi(0,`div`,37),fS(1),Nc()),a&2){let e=HE().$implicit;ec(),pg(e.reason)}}function Ee(a,n){a&1&&Qm(0)}function Te(a,n){if(a&1){let e=$E();Oi(0,`li`,5)(1,`div`,30)(2,`div`,31)(3,`div`,32)(4,`span`,33),fS(5),Nc(),SE(6,Se,2,1,`span`,34),SE(7,Ce,2,1,`span`,34),Nc(),Oi(8,`div`,35),fS(9),Nc(),SE(10,ke,2,1,`div`,36),SE(11,we,2,1,`div`,37),Nc(),Oi(12,`button`,38),Jm(`click`,function(){let l=Ld(e).$implicit;return Od(HE().test(l.name,{context:l.name}))}),fS(13),Nc(),Oi(14,`button`,39),Jm(`click`,function(){let l=Ld(e).$implicit;return Od(HE().askRemove(l.name))}),Gm(15,`app-icon`,40),Nc()(),_m(16,Ee,1,0,`ng-container`,28),Nc()}if(a&2){let e=n.$implicit,t=HE(),l=BE(48);Br(`data-testid`,`server-`+e.name),ec(5),pg(e.name),ec(),kE(e.active?6:-1),ec(),kE(e.currentInCli?7:-1),ec(2),pg(e.host),ec(),kE(e.description?10:-1),ec(),kE(!e.supported&&e.reason?11:-1),ec(),Wm(`disabled`,!e.supported||t.testing()!==null),ec(),Ac(` `,t.testing()===e.name?t.t().testing:t.t().test,` `),ec(),Wm(`title`,e.active||e.currentInCli?t.t().removeBlocked:t.t().remove)(`disabled`,e.active||e.currentInCli),Br(`aria-label`,t.t().remove),ec(),Wm(`size`,14),ec(),Wm(`ngTemplateOutlet`,l)(`ngTemplateOutletContext`,SS(15,de,e.name))}}function Pe(a,n){if(a&1&&(Oi(0,`li`,6),fS(1),Nc()),a&2){let e=HE();ec(),pg(e.t().empty)}}function Ie(a,n){if(a&1){let e=$E();Oi(0,`label`,15)(1,`span`,10),fS(2),Nc(),Oi(3,`input`,41),Jm(`input`,function(l){Ld(e);return Od(HE().username.set(l.target.value))}),Nc()()}if(a&2){let e=HE();ec(2),pg(e.t().add.username),ec(),nS(e.input),Wm(`placeholder`,e.t().add.usernamePlaceholder)(`value`,e.username())}}function De(a,n){if(a&1&&(Oi(0,`p`,22),fS(1),Nc()),a&2){let e=HE();ec(),pg(e.t().add.tcpWarning)}}function Me(a,n){a&1&&(Oi(0,`p`,23),fS(1),Nc()),a&2&&(ec(),pg(n))}function Ve(a,n){a&1&&Qm(0)}function Ae(a,n){if(a&1&&(Oi(0,`p`,43),fS(1),Nc()),a&2){let e=HE(),t=HE(2);ec(),pg(t.t().connected(e.version,e.os,e.arch))}}function Ne(a,n){if(a&1){let e=$E();Oi(0,`p`,45),fS(1),Nc(),Oi(2,`div`,46)(3,`code`,47),fS(4),Nc(),Oi(5,`button`,48),Jm(`click`,function(){let l=Ld(e),s=HE(3).$implicit;return Od(HE().trust(s,l.name,l.fingerprint))}),fS(6),Nc()()}if(a&2){let e=n,t=HE(4);ec(),pg(t.t().unknownHostKey(e.name,e.type)),ec(3),pg(e.fingerprint),ec(),Wm(`disabled`,t.testing()!==null),ec(),Ac(` `,t.t().trust,` `)}}function Ue(a,n){if(a&1&&(Oi(0,`p`,44),fS(1),Nc(),SE(2,Ne,7,4)),a&2){let e,t=HE();ec(),pg(t.problem),ec(),kE((e=t.unknownHostKey)?2:-1,e)}}function Oe(a,n){a&1&&(Oi(0,`div`,42),SE(1,Ae,2,1,`p`,43)(2,Ue,3,2),Nc()),a&2&&(ec(),kE(n.ok?1:2))}function Fe(a,n){if(a&1&&SE(0,Oe,3,1,`div`,42),a&2){let e,t=n.$implicit;kE((e=HE().results()[t])?0:-1,e)}}var de;var be;var F;var Le;var L;var pe=f(()=>{Ne$1();Kr();w();lk();sk();J();dk();f$1();Kr();de=a=>({$implicit:a}),be=(a,n)=>n.name;F=`:form`,Le=`mx-focus mt-1 w-full rounded-md border border-ink-700 bg-ink-800 px-3 py-1.5 text-[13px] text-ink-100 placeholder:text-ink-500`,L=class a{contexts=C(y);toast=C(u);t=Ot(()=>ok().settings.servers);form=F;input=Le;servers=Ot(()=>this.contexts.contexts().filter(n=>n.name!=="default"));name=wt(``);kind=wt(`ssh`);username=wt(``);host=wt(``);port=wt(``);description=wt(``);formProblem=wt(null);saving=wt(!1);testing=wt(null);results=wt({});confirmOpen=wt(!1);removing=wt(null);filledIn=Ot(()=>this.name().trim()!==``&&this.host().trim()!==``);constructor(){this.contexts.load()}async test(n,e){this.testing.set(n);try{let t=await window.electron.contexts.test(e);this.results.update(l=>G(W({},l),{[n]:t}))}catch(t){this.results.update(l=>G(W({},l),{[n]:{ok:!1,problem:eH(t),unknownHostKey:null}}))}finally{this.testing.set(null)}}async testForm(){let n=this.server();n!==null&&(this.formProblem.set(null),await this.test(F,{server:n}))}async trust(n,e,t){try{let s=await window.electron.contexts.trustHostKey(e,t);if(!s.ok){this.results.update(_=>G(W({},_),{[n]:{ok:!1,problem:s.problem,unknownHostKey:null}}));return}}catch(s){this.results.update(_=>G(W({},_),{[n]:{ok:!1,problem:eH(s),unknownHostKey:null}}));return}let l=n===F?this.server():null;await this.test(n,l===null?{context:n}:{server:l})}async add(n){n.preventDefault();let e=this.server();if(!(e===null||this.saving())){this.saving.set(!0);try{let t=await window.electron.contexts.create(e);if(!t.ok){this.formProblem.set(t.problem);return}this.toast.success(this.t().add.added(e.name)),this.reset(),await this.contexts.load()}catch(t){this.formProblem.set(eH(t))}finally{this.saving.set(!1)}}}askRemove(n){this.removing.set(n),this.confirmOpen.set(!0)}async remove(){let n=this.removing();if(n!==null)try{let e=await window.electron.contexts.remove(n);if(!e.ok){this.toast.error(e.problem);return}this.forgetResult(n),await this.contexts.load()}catch(e){this.toast.error(eH(e))}finally{this.removing.set(null)}}server(){let n=this.port().trim(),e=n===``?null:Number(n);if(e!==null&&(!Number.isInteger(e)||e<1||e>65535))return this.formProblem.set(ok().settings.servers.add.port+`: 1–65535`),null;let t=this.username().trim(),l=this.description().trim();return{name:this.name().trim(),description:l===``?null:l,kind:this.kind(),host:this.host().trim(),port:e,username:this.kind()===`ssh`&&t!==``?t:null}}reset(){this.name.set(``),this.username.set(``),this.host.set(``),this.port.set(``),this.description.set(``),this.formProblem.set(null),this.forgetResult(F)}forgetResult(n){this.results.update(e=>Object.fromEntries(Object.entries(e).filter(([t])=>t!==n)))}static ɵfac=function(e){return new(e||a)};static ɵcmp=wc({type:a,selectors:[[`app-servers-settings`]],decls:50,vars:50,consts:[[`outcome`,``],[`data-testid`,`servers-settings`,1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`text-[13px]`,`font-medium`,`text-ink-200`],[1,`mt-1`,`text-[12px]`,`text-ink-500`],[1,`mt-3`,`divide-y`,`divide-ink-700`,`border-y`,`border-ink-700`],[1,`py-2.5`],[1,`py-2.5`,`text-[13px]`,`text-ink-400`],[`data-testid`,`server-form`,1,`mt-4`,3,`submit`],[1,`mt-2`,`grid`,`grid-cols-6`,`gap-3`],[1,`col-span-3`,`block`],[1,`text-[12px]`,`text-ink-400`],[`type`,`text`,`data-testid`,`server-name`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`placeholder`,`value`],[`data-testid`,`server-kind`,3,`change`],[`value`,`ssh`,3,`selected`],[`value`,`tcp`,3,`selected`],[1,`col-span-2`,`block`],[1,`block`],[`type`,`text`,`data-testid`,`server-host`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`placeholder`,`value`],[1,`col-span-1`,`block`],[`type`,`text`,`inputmode`,`numeric`,`data-testid`,`server-port`,`autocomplete`,`off`,3,`input`,`placeholder`,`value`],[1,`col-span-6`,`block`],[`type`,`text`,`data-testid`,`server-description`,`autocomplete`,`off`,3,`input`,`placeholder`,`value`],[1,`mt-2`,`text-[12px]`,`text-warn`],[`data-testid`,`server-form-problem`,1,`mt-2`,`text-[12px]`,`text-danger`],[1,`mt-3`,`flex`,`justify-end`,`gap-2`],[`type`,`button`,`data-testid`,`server-form-test`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`],[`type`,`submit`,`data-testid`,`server-add`,1,`mx-btn`,`mx-focus`,3,`disabled`],[`name`,`plus`,3,`size`],[4,`ngTemplateOutlet`,`ngTemplateOutletContext`],[3,`openChange`,`confirmed`,`open`,`title`,`description`],[1,`flex`,`items-center`,`gap-3`],[1,`min-w-0`,`flex-1`],[1,`flex`,`items-center`,`gap-2`],[1,`text-[13px]`,`text-ink-100`],[1,`rounded`,`bg-ink-700`,`px-1.5`,`text-[11px]`,`text-ink-200`],[1,`truncate`,`font-mono`,`text-[12px]`,`text-ink-400`],[1,`text-[12px]`,`text-ink-500`],[1,`text-[12px]`,`text-danger`],[`type`,`button`,`data-testid`,`server-test`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`],[`type`,`button`,`data-testid`,`server-remove`,1,`mx-btn`,`mx-focus`,3,`click`,`title`,`disabled`],[`name`,`trash`,3,`size`],[`type`,`text`,`data-testid`,`server-username`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`placeholder`,`value`],[`data-testid`,`server-test-result`,1,`mt-2`,`text-[12px]`],[1,`text-ok`],[1,`text-danger`],[1,`mt-2`,`text-ink-300`],[1,`mt-1`,`flex`,`items-center`,`gap-3`],[`data-testid`,`server-fingerprint`,1,`min-w-0`,`flex-1`,`truncate`,`font-mono`,`text-ink-100`],[`type`,`button`,`data-testid`,`server-trust`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`]],template:function(e,t){if(e&1){let l=$E();Oi(0,`div`,1)(1,`h2`,2),fS(2),Nc(),Oi(3,`p`,3),fS(4),Nc(),Oi(5,`ul`,4),kc(6,Te,17,17,`li`,5,be,!1,Pe,2,1,`li`,6),Nc(),Oi(9,`form`,7),Jm(`submit`,function(_){return t.add(_)}),Oi(10,`h3`,2),fS(11),Nc(),Oi(12,`div`,8)(13,`label`,9)(14,`span`,10),fS(15),Nc(),Oi(16,`input`,11),Jm(`input`,function(_){return t.name.set(_.target.value)}),Nc()(),Oi(17,`label`,9)(18,`span`,10),fS(19),Nc(),Oi(20,`select`,12),Jm(`change`,function(_){return t.kind.set(_.target.value)}),Oi(21,`option`,13),fS(22),Nc(),Oi(23,`option`,14),fS(24),Nc()()(),SE(25,Ie,4,5,`label`,15),Oi(26,`label`,16)(27,`span`,10),fS(28),Nc(),Oi(29,`input`,17),Jm(`input`,function(_){return t.host.set(_.target.value)}),Nc()(),Oi(30,`label`,18)(31,`span`,10),fS(32),Nc(),Oi(33,`input`,19),Jm(`input`,function(_){return t.port.set(_.target.value)}),Nc()(),Oi(34,`label`,20)(35,`span`,10),fS(36),Nc(),Oi(37,`input`,21),Jm(`input`,function(_){return t.description.set(_.target.value)}),Nc()()(),SE(38,De,2,1,`p`,22),SE(39,Me,2,1,`p`,23),Oi(40,`div`,24)(41,`button`,25),Jm(`click`,function(){return t.testForm()}),fS(42),Nc(),Oi(43,`button`,26),Gm(44,`app-icon`,27),fS(45),Nc()(),_m(46,Ve,1,0,`ng-container`,28),Nc()(),_m(47,Fe,1,1,`ng-template`,null,0,_S),Oi(49,`app-confirm-dialog`,29),vg(`openChange`,function(_){return Ld(l),vS(t.confirmOpen,_)||(t.confirmOpen=_),Od(_)}),Jm(`confirmed`,function(){return t.remove()}),Nc()}if(e&2){let l,s=BE(48);ec(2),pg(t.t().heading),ec(2),pg(t.t().hint),ec(2),Tc(t.servers()),ec(5),pg(t.t().add.heading),ec(4),pg(t.t().add.name),ec(),nS(t.input),Wm(`placeholder`,t.t().add.namePlaceholder)(`value`,t.name()),ec(3),pg(t.t().add.kind),ec(),nS(t.input),ec(),Wm(`selected`,t.kind()===`ssh`),ec(),pg(t.t().add.ssh),ec(),Wm(`selected`,t.kind()===`tcp`),ec(),pg(t.t().add.tcp),ec(),kE(t.kind()===`ssh`?25:-1),ec(),ag(`col-span-3`,t.kind()===`ssh`)(`col-span-5`,t.kind()===`tcp`),ec(2),pg(t.t().add.host),ec(),nS(t.input),Wm(`placeholder`,t.t().add.hostPlaceholder)(`value`,t.host()),ec(3),pg(t.t().add.port),ec(),nS(t.input),Wm(`placeholder`,t.kind()===`ssh`?`22`:`2375`)(`value`,t.port()),ec(3),pg(t.t().add.description),ec(),nS(t.input),Wm(`placeholder`,t.t().add.descriptionPlaceholder)(`value`,t.description()),ec(),kE(t.kind()===`tcp`?38:-1),ec(),kE((l=t.formProblem())?39:-1,l),ec(2),Wm(`disabled`,!t.filledIn()||t.testing()!==null),ec(),Ac(` `,t.testing()===t.form?t.t().testing:t.t().test,` `),ec(),Wm(`disabled`,!t.filledIn()||t.saving()),ec(),Wm(`size`,14),ec(),Ac(` `,t.t().add.submit,` `),ec(),Wm(`ngTemplateOutlet`,s)(`ngTemplateOutletContext`,SS(48,de,t.form)),ec(3),hg(`open`,t.confirmOpen),Wm(`title`,t.t().removeTitle(t.removing()??``))(`description`,t.t().removeDescription)}},dependencies:[W$1,My,Ie$1],encapsulation:2})}});function Ke(a,n){if(a&1&&(Oi(0,`option`,10),fS(1),Nc()),a&2){let e=n.$implicit,t=HE();Wm(`value`,e.value)(`selected`,e.value===t.language),Br(`lang`,e.value),ec(),pg(e.name)}}function Re(a,n){if(a&1&&(Oi(0,`p`,17),fS(1),Nc()),a&2){let e=HE(2);ec(),pg(e.t().startup.shortcutTaken)}}function $e(a,n){if(a&1&&(Oi(0,`p`,23),fS(1),Nc()),a&2){let e=HE(),t=HE();ec(),pg(t.lastPrune(e.lastAutoPrune))}}function He(a,n){if(a&1&&(Oi(0,`span`,26),fS(1),Nc()),a&2){let e=HE(2);ec(),pg(e.t().update.version(n.current))}}function je(a,n){if(a&1){let e=$E();Oi(0,`button`,35),Jm(`click`,function(){Ld(e);return Od(HE(2).install())}),fS(1),Nc()}if(a&2){let e=HE(2);ec(),Ac(` `,e.t().update.install,` `)}}function ze(a,n){if(a&1){let e=$E();Oi(0,`button`,36),Jm(`click`,function(){Ld(e);return Od(HE(2).check())}),fS(1),Nc()}if(a&2){let e=HE(2);Wm(`disabled`,e.updateState()===`checking`||e.updateState()===`downloading`),ec(),Ac(` `,e.t().update.check,` `)}}function We(a,n){if(a&1){let e=$E();Oi(0,`div`,29)(1,`app-filter-switch`,16),Jm(`onChange`,function(l){Ld(e);return Od(HE(2).update({autoUpdate:l}))}),Nc()()}if(a&2){let e=HE(),t=HE();ec(),Wm(`label`,t.t().update.auto)(`on`,e.autoUpdate)}}function Be(a,n){if(a&1&&(Oi(0,`option`,10),fS(1),Nc()),a&2){let e=n.$implicit,t=HE();Wm(`value`,e.value)(`selected`,e.value===t.assistantModel),ec(),pg(e.name)}}function Ge(a,n){if(a&1){let e=$E();Oi(0,`div`,7)(1,`span`,39),fS(2),Nc(),Oi(3,`button`,40),Jm(`click`,function(){Ld(e);return Od(HE(3).clearKey())}),Gm(4,`app-icon`,41),fS(5),Nc()()}if(a&2){let e=HE(3);ec(2),pg(e.t().assistant.configured),ec(2),Wm(`size`,14),ec(),Ac(` `,e.t().assistant.clearKey,` `)}}function qe(a,n){if(a&1){let e=$E();Oi(0,`form`,42),Jm(`submit`,function(l){Ld(e);return Od(HE(3).saveKey(l))}),Oi(1,`label`,43),fS(2),Nc(),Oi(3,`input`,44),Jm(`input`,function(l){Ld(e);return Od(HE(3).keyDraft.set(l.target.value))}),Nc(),Oi(4,`button`,45),fS(5),Nc()()}if(a&2){let e=HE(),t=HE(2);ec(2),pg(t.t().assistant.keyLabel),ec(),Wm(`value`,t.keyDraft())(`disabled`,!e.storageAvailable),ec(),Wm(`disabled`,!e.storageAvailable||t.keyDraft().trim()===``),ec(),Ac(` `,t.common().save,` `)}}function Je(a,n){a&1&&(Oi(0,`p`,38),fS(1),Nc()),a&2&&(ec(),pg(n))}function Qe(a,n){if(a&1&&(SE(0,Ge,6,3,`div`,7)(1,qe,6,5,`form`,37),SE(2,Je,2,1,`p`,38),Oi(3,`p`,11),fS(4),Nc()),a&2){let e,t=HE(2);kE(n.configured?0:1),ec(2),kE((e=t.keyProblem())?2:-1,e),ec(2),pg(t.t().assistant.hint)}}function Xe(a,n){if(a&1){let e=$E();Oi(0,`div`,3)(1,`div`,4)(2,`div`,5)(3,`h2`,6),fS(4),Nc(),Oi(5,`div`,7)(6,`label`,8),fS(7),Nc(),Oi(8,`select`,9),Jm(`change`,function(l){Ld(e);return Od(HE().chooseLanguage(l.target.value))}),kc(9,Ke,2,4,`option`,10,ce),Nc()(),Oi(11,`p`,11),fS(12),Nc()(),Oi(13,`div`,12)(14,`h2`,6),fS(15),Nc(),Oi(16,`div`,13)(17,`app-filter-switch`,14),Jm(`onChange`,function(l){Ld(e);return Od(HE().update({startAtLogin:l}))}),Nc()(),Oi(18,`p`,11),fS(19),Nc(),Oi(20,`div`,15)(21,`app-filter-switch`,16),Jm(`onChange`,function(l){Ld(e);return Od(HE().update({paletteShortcut:l}))}),Nc()(),SE(22,Re,2,1,`p`,17),Nc(),Oi(23,`div`,12)(24,`h2`,6),fS(25),Nc(),Oi(26,`div`,18)(27,`div`,19)(28,`app-filter-switch`,16),Jm(`onChange`,function(l){Ld(e);return Od(HE().update({notifyCrash:l}))}),Nc()(),Oi(29,`div`,20)(30,`app-filter-switch`,16),Jm(`onChange`,function(l){Ld(e);return Od(HE().update({notifyUnhealthy:l}))}),Nc()(),Oi(31,`div`,21)(32,`app-filter-switch`,16),Jm(`onChange`,function(l){Ld(e);return Od(HE().update({notifyWiring:l}))}),Nc()()(),Oi(33,`p`,11),fS(34),Nc()(),Oi(35,`div`,12)(36,`h2`,6),fS(37),Nc(),Oi(38,`div`,22)(39,`app-filter-switch`,16),Jm(`onChange`,function(l){Ld(e);return Od(HE().update({autoPrune:l}))}),Nc()(),Oi(40,`p`,11),fS(41),Nc(),SE(42,$e,2,1,`p`,23),Nc(),Oi(43,`div`,24)(44,`div`,25)(45,`h2`,6),fS(46),Nc(),SE(47,He,2,1,`span`,26),SE(48,je,2,1,`button`,27)(49,ze,2,2,`button`,28),Nc(),SE(50,We,2,2,`div`,29),Oi(51,`p`,30),fS(52),Nc()(),Oi(53,`div`,31)(54,`h2`,6),fS(55,`Claude`),Nc(),Oi(56,`div`,32)(57,`label`,33),fS(58),Nc(),Oi(59,`select`,34),Jm(`change`,function(l){Ld(e);return Od(HE().update({assistantModel:l.target.value}))}),kc(60,Be,2,3,`option`,10,ce),Nc()(),Oi(62,`p`,11),fS(63),Nc(),SE(64,Qe,5,3),Nc()(),Gm(65,`app-servers-settings`),Nc()}if(a&2){let e,t,l=n,s=HE();ec(4),pg(s.t().language.heading),ec(3),pg(s.t().language.label),ec(2),Tc(s.languages),ec(3),pg(s.t().language.hint),ec(3),pg(s.t().startup.heading),ec(2),Wm(`label`,s.t().startup.startAtLogin)(`on`,l.startAtLogin)(`disabled`,!l.startAtLoginAvailable),ec(2),Ac(` `,l.startAtLoginAvailable?s.t().startup.hintAvailable:s.t().startup.hintUnavailable,` `),ec(2),Wm(`label`,s.t().startup.paletteShortcut)(`on`,l.paletteShortcut),ec(),kE(l.paletteShortcut&&!l.paletteShortcutActive?22:-1),ec(3),pg(s.t().notifications.heading),ec(3),Wm(`label`,s.t().notifications.crash)(`on`,l.notifyCrash),ec(2),Wm(`label`,s.t().notifications.unhealthy)(`on`,l.notifyUnhealthy),ec(2),Wm(`label`,s.t().notifications.wiring)(`on`,l.notifyWiring),ec(2),pg(s.t().notifications.hint),ec(3),pg(s.t().prune.heading),ec(2),Wm(`label`,s.t().prune.auto)(`on`,l.autoPrune),ec(2),pg(s.t().prune.hint),ec(),kE(l.autoPrune?42:-1),ec(4),pg(s.t().update.heading),ec(),kE((e=s.appUpdate())?47:-1,e),ec(),kE(s.updateState()===`ready`?48:s.updateState()!==`unavailable`?49:-1),ec(2),kE(s.updateState()!==`unavailable`?50:-1),ec(2),pg(s.updateText()),ec(6),pg(s.t().assistant.model),ec(2),Tc(s.models),ec(3),pg(s.t().assistant.modelHint),ec(),kE((t=s.assistant())?64:-1,t)}}var ce;var Ye;var me;f(()=>{Kr();le();sk();lk();K();dk();x();pe();Kr();ce=(a,n)=>n.value;Ye={"claude-opus-5":`Opus 5`,"claude-sonnet-5":`Sonnet 5`,"claude-haiku-4-5":`Haiku 4.5`},me=class a{t=Ot(()=>ok().settings);common=Ot(()=>ok().common);languages=Object.keys(JF).map(n=>({value:n,name:JF[n]}));models=se.map(n=>({value:n,name:Ye[n]}));settings=wt(null);problem=wt(null);appUpdate=wt(null);assistant=wt(null);keyDraft=wt(``);keyProblem=wt(null);updateState=Ot(()=>this.appUpdate()?.status.state??`unavailable`);updateText=Ot(()=>{let n=this.appUpdate()?.status??{state:`unavailable`},e=this.t().update;switch(n.state){case`unavailable`:return e.unavailable;case`idle`:return e.idle;case`checking`:return e.checking;case`upToDate`:return e.upToDate(new Date(n.checkedAt).toLocaleTimeString(ik(),{hour:`2-digit`,minute:`2-digit`}));case`downloading`:return e.downloading(n.version,n.percent);case`ready`:return e.ready(n.version);case`error`:return e.error(n.problem)}});constructor(){this.load(),this.loadAppUpdate(),this.loadAssistant();let n=window.electron.appUpdate.onChange(e=>this.appUpdate.set(e));C(ve).onDestroy(n)}async check(){try{this.appUpdate.set(await window.electron.appUpdate.check())}catch(n){this.problem.set(eH(n))}}async install(){try{await window.electron.appUpdate.install()}catch(n){this.problem.set(eH(n))}}lastPrune(n){let e=this.t().prune;return n===null?e.never:e.last(new Intl.DateTimeFormat(ik(),{dateStyle:`long`,timeStyle:`short`}).format(n))}async update(n){try{this.settings.set(await window.electron.settings.update(n)),this.problem.set(null)}catch(e){this.problem.set(eH(e)),await this.load()}}async chooseLanguage(n){Ty(n),await this.update({language:n}),Ty(this.settings()?.language??n)}async saveKey(n){n.preventDefault();try{let e=await window.electron.assistant.setKey(this.keyDraft());if(!e.ok){this.keyProblem.set(e.problem);return}this.keyDraft.set(``),this.keyProblem.set(null),await this.loadAssistant()}catch(e){this.keyProblem.set(eH(e))}}async clearKey(){try{this.assistant.set(await window.electron.assistant.clearKey()),this.keyProblem.set(null)}catch(n){this.keyProblem.set(eH(n))}}async loadAssistant(){try{this.assistant.set(await window.electron.assistant.status())}catch(n){this.problem.set(eH(n))}}async loadAppUpdate(){try{this.appUpdate.set(await window.electron.appUpdate.get())}catch(n){this.problem.set(eH(n))}}async load(){try{this.settings.set(await window.electron.settings.get())}catch(n){this.problem.set(eH(n))}}static ɵfac=function(e){return new(e||a)};static ɵcmp=wc({type:a,selectors:[[`app-settings-page`]],decls:5,vars:3,consts:[[1,`h-full`,`overflow-y-auto`,`px-6`,`pt-5`,`pb-8`],[1,`text-xl`,`font-semibold`,`tracking-tight`,`text-ink-100`],[3,`problem`],[1,`mt-4`,`grid`,`max-w-6xl`,`items-start`,`gap-4`,`lg:grid-cols-2`],[1,`space-y-4`],[`data-testid`,`setting-language`,1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`text-[13px]`,`font-medium`,`text-ink-200`],[1,`mt-3`,`flex`,`items-center`,`gap-3`],[`for`,`setting-language`,1,`text-[13px]`,`text-ink-300`],[`id`,`setting-language`,1,`mx-focus`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-800`,`px-2.5`,`py-1.5`,`text-[13px]`,`text-ink-100`,3,`change`],[3,`value`,`selected`],[1,`mt-2`,`text-[12px]`,`text-ink-500`],[1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[`data-testid`,`setting-start-at-login`,1,`mt-3`],[3,`onChange`,`label`,`on`,`disabled`],[`data-testid`,`setting-palette-shortcut`,1,`mt-3`],[3,`onChange`,`label`,`on`],[`data-testid`,`shortcut-taken`,1,`mt-2`,`text-[12px]`,`text-warn`],[1,`mt-3`,`space-y-2.5`],[`data-testid`,`setting-notify-crash`],[`data-testid`,`setting-notify-unhealthy`],[`data-testid`,`setting-notify-wiring`],[`data-testid`,`setting-auto-prune`,1,`mt-3`],[`data-testid`,`auto-prune-last`,1,`mt-1`,`text-[12px]`,`text-ink-400`],[`data-testid`,`app-update`,1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`flex`,`items-center`,`gap-3`],[1,`font-mono`,`text-[12px]`,`text-ink-500`],[`type`,`button`,`data-testid`,`app-update-install`,1,`mx-btn`,`mx-focus`,`ml-auto`],[`type`,`button`,`data-testid`,`app-update-check`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`disabled`],[`data-testid`,`setting-auto-update`,1,`mt-3`],[`data-testid`,`app-update-status`,1,`mt-2`,`text-[12px]`,`text-ink-500`],[`data-testid`,`assistant-settings`,1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[`data-testid`,`setting-assistant-model`,1,`mt-3`,`flex`,`items-center`,`gap-3`],[`for`,`setting-assistant-model`,1,`text-[13px]`,`text-ink-300`],[`id`,`setting-assistant-model`,1,`mx-focus`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-800`,`px-2.5`,`py-1.5`,`text-[13px]`,`text-ink-100`,3,`change`],[`type`,`button`,`data-testid`,`app-update-install`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`],[`type`,`button`,`data-testid`,`app-update-check`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`,`disabled`],[1,`mt-3`,`flex`,`gap-2`],[1,`mt-2`,`text-[12px]`,`text-danger`],[1,`text-[13px]`,`text-ink-300`],[`type`,`button`,`data-testid`,`assistant-clear-key`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`],[`name`,`trash`,3,`size`],[1,`mt-3`,`flex`,`gap-2`,3,`submit`],[`for`,`assistant-key`,1,`sr-only`],[`id`,`assistant-key`,`type`,`password`,`placeholder`,`sk-ant-…`,`autocomplete`,`off`,`spellcheck`,`false`,1,`mx-focus`,`min-w-0`,`flex-1`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-800`,`px-3`,`py-1.5`,`font-mono`,`text-[13px]`,`text-ink-100`,`placeholder:text-ink-500`,3,`input`,`value`,`disabled`],[`type`,`submit`,`data-testid`,`assistant-save-key`,1,`mx-btn`,`mx-focus`,3,`disabled`]],template:function(e,t){if(e&1&&(Oi(0,`section`,0)(1,`h1`,1),fS(2),Nc(),Gm(3,`app-page-messages`,2),SE(4,Xe,66,32,`div`,3),Nc()),e&2){let l;ec(2),pg(t.t().title),ec(),Wm(`problem`,t.problem()),ec(),kE((l=t.settings())?4:-1,l)}},dependencies:[P,u$1,My,L],encapsulation:2})}})();export{me as SettingsPage};
@@ -7,8 +7,8 @@
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
8
  <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; connect-src 'self' ws://localhost:4200 http://localhost:4200"/>
9
9
  <link rel="icon" type="image/x-icon" href="favicon.ico"/>
10
- <link rel="stylesheet" href="styles-D7Y5N7JX.css"></head>
10
+ <link rel="stylesheet" href="styles-5TXFXUUF.css"></head>
11
11
  <body>
12
12
  <app-root></app-root>
13
- <link rel="modulepreload" href="chunk-DEsPgcXV.js"><link rel="modulepreload" href="chunk-BEAPEQBM.js"><link rel="modulepreload" href="chunk-5jLUVNg7.js"><link rel="modulepreload" href="chunk-MpnWAfxv.js"><link rel="modulepreload" href="chunk-Di8ZOBwa.js"><link rel="modulepreload" href="chunk-Ch8nHKqR.js"><link rel="modulepreload" href="chunk-CP90rR4k.js"><link rel="modulepreload" href="chunk-Ds9stAVj.js"><link rel="modulepreload" href="chunk-DBPVGjlB.js"><link rel="modulepreload" href="chunk-wVwXBw1N.js"><script src="main-HUWYR6IC.js" type="module"></script></body>
13
+ <link rel="modulepreload" href="chunk-BdOOWVGY.js"><link rel="modulepreload" href="chunk-CrBxmi_g.js"><link rel="modulepreload" href="chunk-CSrKHPxR.js"><link rel="modulepreload" href="chunk-V7ftX_10.js"><link rel="modulepreload" href="chunk-iwVkNYYA.js"><link rel="modulepreload" href="chunk-CC84vXik.js"><link rel="modulepreload" href="chunk-D0xC_xVf.js"><link rel="modulepreload" href="chunk-D29s9m84.js"><link rel="modulepreload" href="chunk-CMrtklQ1.js"><link rel="modulepreload" href="chunk-CRNeTD5E.js"><script src="main-DECBD64Q.js" type="module"></script></body>
14
14
  </html>
@@ -0,0 +1 @@
1
+ import{$n as sk,$t as bg,A as HE,B as Kr,Bn as ok,Cn as ik,Cr as zE,Ct as Tg,D as Gm,Dn as kc,En as kE,Fn as nS,Ft as Wr,Gn as pj,Gt as _m,H as Ld,Hn as ow,J as Nc,K as My,Kn as qr,Nn as mg,Nt as W,Pn as mj,Pt as Wm,Qn as sg,R as Jm,Rt as X,St as Tc,Tn as jc,Vt as Zd,Wn as pg,Xn as rf,Xt as bS,Yt as bD,Z as Ny,Zn as rg,_t as Sc,at as PI,br as yS,bt as TE,cn as f,cr as ve,dr as vr,et as Od,f as C,fn as fk,fr as wD,gn as gj,gr as wt,gt as SS,hn as gg,ht as SE,jn as lk,ln as fS,lr as vg,lt as Qi$1,mr as wc,o as Ac,on as eH,or as vS,qt as ag,rn as dk,rt as Ot,sn as ec,st as Pr,t as $E,tt as Oi$1,u as Br,w as G,xn as hg,zt as Xm}from"./chunk-BdOOWVGY.js";import{n as y,t as f$1}from"./chunk-CrBxmi_g.js";import{n as y$1,t as o}from"./chunk-CSrKHPxR.js";import{n as u,t as f$2}from"./chunk-V7ftX_10.js";import{n as y$2,t as c}from"./chunk-iwVkNYYA.js";import{n as y$3,t as w}from"./chunk-CC84vXik.js";import{i as u$1,n as d,r as m,t as a}from"./chunk-D0xC_xVf.js";import"./chunk-D29s9m84.js";import{n as he,t as W$1}from"./chunk-CMrtklQ1.js";import{i as h,n as N,r as d$1}from"./chunk-CRNeTD5E.js";import{n as h$1,t as P}from"./chunk-Cbit44lz.js";import{n as w$1,t as B}from"./chunk-Zom3ankA.js";import{n as y$4,t as f$3}from"./chunk-Ckq_aT3A.js";import{n as o$1,t as i}from"./chunk-Zcfhi-RM.js";import{n as p,t as M}from"./chunk-C22Z7vgK.js";import"./chunk-eG8Su12W.js";import"./chunk-Bx2_SrZM.js";import{_ as pn$1,a as Ni$1,c as Ri$1,d as dn$1,f as fn$1,g as ln$1,h as ki$1,i as Mi$1,m as ie,n as Ii$1,o as Oi$2,p as ho,r as Je$1,s as Pi$1,t as Ai$1,u as cn$1}from"./chunk-QaMufr3I.js";import{n as v,t as u$2}from"./chunk-BoN9ZlqT.js";import{n as x,t as u$3}from"./chunk-BW20bBdg.js";import{a as Yt,c as na$1,i as Qr,l as qn,n as Ks,o as ao,r as Q,s as fe,t as Gs,u as ra$1}from"./chunk-DzG5R5Kk.js";function Wn(i){let t=ok().dashboard.pruneResult,e=[],n=[],a=0;for(let{kind:g,result:f}of i)f.ok?f.removed>0&&(e.push(t.removed[g](f.removed)),a+=f.reclaimedBytes):n.push(`${t.kinds[g]}: ${f.problem}`);let r=e.length>1?`${e.slice(0,-1).join(`, `)} ${t.and} ${e[e.length-1]}`:e[0];return{notice:r===void 0?n.length===0?ok().common.nothingToPrune:null:t.notice(r,d$1(a)),problem:n.length===0?null:t.problem(n.join(`; `))}}var Ce;var pt=f(()=>{Kr();h();lk();sk();f$2();Kr();Ce=class i{toast=C(u);usage=wt(null);busy=wt(!1);failure=wt(null);pruning=wt(!1);diskUsage=this.usage.asReadonly();loading=this.busy.asReadonly();problem=this.failure.asReadonly();pruneBusy=this.pruning.asReadonly();largestBytes=Ot(()=>Math.max(1,...(this.usage()?.entries??[]).map(t=>t.sizeBytes)));constructor(){C(ve).onDestroy(window.electron.events.subscribe(t=>{(t.includes(`image`)||t.includes(`volume`))&&this.refresh()}))}async refresh(){this.busy.set(!0);try{this.usage.set(await window.electron.system.diskUsage()),this.failure.set(null)}catch(t){this.failure.set(eH(t))}finally{this.busy.set(!1)}}async prune(t){this.pruning.set(!0);try{let e=Wn(await window.electron.system.prune(t));e.notice!==null&&this.toast.success(e.notice),e.problem!==null&&this.toast.error(e.problem)}catch(e){this.toast.error(eH(e))}finally{this.pruning.set(!1)}await this.refresh()}static ɵfac=function(e){return new(e||i)};static ɵprov=X({token:i,factory:i.ɵfac,providedIn:`root`})}});function Fe(i,t){let e=t.t-Oe,n=[...i,t].filter(a=>a.t>=e);return n.length>rn?n.slice(n.length-rn):n}var Oe;var rn;var je;var mt=f(()=>{Kr();Kr();Oe=18e4,rn=240,je=class i{cpuPoints=wt([]);memoryPoints=wt([]);rxPoints=wt([]);txPoints=wt([]);cpu=this.cpuPoints.asReadonly();memory=this.memoryPoints.asReadonly();received=this.rxPoints.asReadonly();sent=this.txPoints.asReadonly();constructor(){C(ve).onDestroy(window.electron.containers.onStats(t=>{let e=0,n=0,a=0,r=0;for(let g of t)e+=g.cpuPercent,n+=g.memoryBytes,a+=g.rxBytesPerSec,r+=g.txBytesPerSec;let p=Date.now();this.cpuPoints.update(g=>Fe(g,{t:p,value:e})),this.memoryPoints.update(g=>Fe(g,{t:p,value:n})),this.rxPoints.update(g=>Fe(g,{t:p,value:a})),this.txPoints.update(g=>Fe(g,{t:p,value:r}))}))}static ɵfac=function(e){return new(e||i)};static ɵprov=X({token:i,factory:i.ɵfac,providedIn:`root`})}});function Gn(i,t){if(i&1&&(qr(0,`li`,7),Qi$1(1,`span`,8),fS(2),Wr()),i&2){let e=t.$implicit;ec(),nS(e.classes.swatch),ec(),Ac(` `,e.series.label,` `)}}function Kn(i,t){if(i&1&&(qr(0,`ul`,1),kc(1,Gn,3,3,`li`,7,sn),Wr()),i&2){HE();let e=bS(0);ec(),Tc(e.lines)}}function Qn(i,t){if(i&1&&(vr(),Qi$1(0,`line`,3)),i&2){let e=t.$implicit,n=HE();Br(`x1`,0)(`x2`,n.w)(`y1`,e)(`y2`,e)}}function Xn(i,t){if(i&1&&(vr(),Qi$1(0,`path`)),i&2){let e=HE().$implicit,n=HE().$implicit;nS(n.classes.area),Br(`d`,e.area)}}function Zn(i,t){if(i&1&&(SE(0,Xn,1,3,`:svg:path`,9),vr(),Qi$1(1,`path`,10)),i&2){let e=t.$implicit,n=HE().$implicit;HE();kE(bS(0).lines.length===1?0:-1),ec(),nS(n.classes.stroke),Br(`d`,e.line)}}function Yn(i,t){if(i&1&&kc(0,Zn,2,4,null,null,TE),i&2){let e=t.$implicit;Tc(e.segments)}}function Jn(i,t){if(i&1&&(vr(),Qi$1(0,`circle`,13)),i&2){let e=t.$implicit;nS(e.line.classes.fill+` stroke-panel`),Br(`cx`,e.at.x)(`cy`,e.at.y)}}function ei(i,t){if(i&1&&(vr(),Qi$1(0,`line`,11),kc(1,Jn,1,4,`:svg:circle`,12,ln)),i&2){let e=t,n=HE();Br(`x1`,e.x)(`x2`,e.x)(`y1`,0)(`y2`,n.h),ec(),Tc(e.spots)}}function ti(i,t){if(i&1&&(Qi$1(0,`span`,16),qr(1,`span`,17),fS(2),Wr()),i&2){let e=HE().$implicit;nS(e.line.classes.swatch),ec(2),pg(e.line.series.label)}}function ni(i,t){if(i&1&&(qr(0,`div`,7),SE(1,ti,3,3),qr(2,`span`,6),fS(3),Wr()()),i&2){let e=t.$implicit,n=HE(),a=HE();ec(),kE(n.spots.length>1?1:-1),ec(2),pg(a.format()(e.at.point.value))}}function ii(i,t){if(i&1&&(qr(0,`div`,14),kc(1,ni,4,2,`div`,7,ln),qr(3,`div`,15),fS(4),Wr()()),i&2){let e=t,n=HE();sg(`left`,e.x/n.w*100,`%`),ec(),Tc(e.spots),ec(3),pg(n.clockOf(e.t))}}function si(i){if(i<=0)return 1;let t=10**Math.floor(Math.log10(i)),e=i/t;return e<=1?t:e<=2?2*t:e<=5?5*t:10*t}function li(i){let t=[],e=[];function n(){if(e.length===0)return;let a=e.map(g=>`${g.x.toFixed(1)},${g.y.toFixed(1)}`).join(` L`),r=e[0],p=e[e.length-1];t.push({line:`M${a}`,area:`M${r.x.toFixed(1)},${String(ce)} L${a} L${p.x.toFixed(1)},${String(ce)} Z`}),e=[]}for(let[a,r]of i.entries())a>0&&r.point.t-i[a-1].point.t>ai&&n(),e.push(r);return n(),t}var sn;var ln;var He;var ce;var ai;var oi;var ri;var qe;var dn=f(()=>{Kr();mt();sk();Kr();sn=(i,t)=>t.series.key,ln=(i,t)=>t.line.series.key;He=600,ce=120,ai=5e3,oi={accent:{stroke:`stroke-accent`,fill:`fill-accent`,area:`fill-accent/15`,swatch:`bg-accent`},"series-1":{stroke:`stroke-series-1`,fill:`fill-series-1`,area:`fill-series-1/15`,swatch:`bg-series-1`},"series-2":{stroke:`stroke-series-2`,fill:`fill-series-2`,area:`fill-series-2/15`,swatch:`bg-series-2`}},ri=15e3,qe=class i{points=jc([]);series=jc(null);format=jc.required();label=jc.required();floor=jc(1);w=He;h=ce;viewBox=`0 0 ${String(He)} ${String(ce)}`;gridlines=[0,ce/2,ce];hovered=wt(null);t=Ot(()=>ok().shell.usageChart);allSeries=Ot(()=>this.series()??[{key:`main`,label:this.label(),points:this.points(),color:`accent`}]);plot=Ot(()=>this.build());marker=Ot(()=>{let t=this.hovered();if(t===null)return null;let e=this.plot().lines.filter(n=>n.plotted.length>0).map(n=>({line:n,at:n.plotted.reduce((a,r)=>Math.abs(r.x-t)<Math.abs(a.x-t)?r:a)}));return e.length===0?null:{x:e[0].at.x,t:e[0].at.point.t,spots:e}});summary=Ot(()=>{let t=this.format(),e=this.t(),n=this.allSeries().filter(r=>r.points.length>0).map(r=>{let p=r.points.map(g=>g.value);return{label:r.label,values:e.values(t(p[p.length-1]),t(Math.max(...p)),t(Math.min(...p)))}});if(n.length===0)return e.noData(this.label());let a=this.series()===null?n[0].values:n.map(r=>`${r.label}: ${r.values}`).join(`; `);return e.summary(this.label(),this.ageOf(this.plot().spanMs),a)});onMove(t){let e=t.currentTarget.getBoundingClientRect();e.width!==0&&this.hovered.set((t.clientX-e.left)/e.width*He)}ageOf(t){return t<6e4?`${String(Math.round(t/1e3))} s`:`${String(Math.round(t/6e4))} min`}clockOf(t){return new Date(t).toLocaleTimeString(ik(),{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}build(){let t=this.allSeries(),e=t.flatMap(D=>D.points.map(s=>s.t));if(e.length===0)return{lines:[],yMax:this.floor(),spanMs:Oe};let n=Math.max(...e),a=Math.max(ri,Math.min(Oe,n-Math.min(...e))),r=n-a,p=t.flatMap(D=>D.points.map(s=>s.value)),g=si(Math.max(this.floor(),...p));return{lines:t.map(D=>{let s=D.points.filter(C=>C.t>=r).map(C=>({point:C,x:(C.t-r)/a*He,y:ce-C.value/g*ce}));return{series:D,classes:oi[D.color],segments:li(s),plotted:s}}),yMax:g,spanMs:a}}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-usage-chart`]],inputs:{points:[1,`points`],series:[1,`series`],format:[1,`format`],label:[1,`label`],floor:[1,`floor`]},decls:17,vars:9,consts:[[1,`relative`,`m-0`],[`data-testid`,`chart-legend`,1,`mb-1.5`,`flex`,`flex-wrap`,`gap-x-4`,`gap-y-1`,`text-[11px]`,`text-ink-400`],[`preserveAspectRatio`,`none`,`role`,`img`,1,`h-28`,`w-full`,3,`pointermove`,`pointerleave`],[`stroke-width`,`1`,`vector-effect`,`non-scaling-stroke`,1,`stroke-ink-700`],[1,`pointer-events-none`,`absolute`,`-top-1`,`z-10`,`-translate-x-1/2`,`-translate-y-full`,`rounded-md`,`border`,`border-ink-700`,`bg-panel`,`px-2`,`py-1`,`text-[11px]`,`whitespace-nowrap`,`text-ink-200`,`shadow-2xl`,3,`left`],[1,`mt-1`,`flex`,`items-baseline`,`justify-between`,`text-[11px]`,`text-ink-500`],[1,`tabular-nums`],[1,`flex`,`items-center`,`gap-1.5`],[`aria-hidden`,`true`,1,`h-0.5`,`w-3`,`rounded-full`],[3,`class`],[`fill`,`none`,`stroke-width`,`2`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`,`vector-effect`,`non-scaling-stroke`],[`stroke-width`,`1`,`vector-effect`,`non-scaling-stroke`,1,`stroke-ink-600`],[`r`,`3`,`stroke-width`,`2`,3,`class`],[`r`,`3`,`stroke-width`,`2`],[1,`pointer-events-none`,`absolute`,`-top-1`,`z-10`,`-translate-x-1/2`,`-translate-y-full`,`rounded-md`,`border`,`border-ink-700`,`bg-panel`,`px-2`,`py-1`,`text-[11px]`,`whitespace-nowrap`,`text-ink-200`,`shadow-2xl`],[1,`text-ink-500`],[`aria-hidden`,`true`,1,`h-0.5`,`w-2.5`,`rounded-full`],[1,`text-ink-400`]],template:function(e,n){if(e&1&&(bg(0),qr(1,`figure`,0),SE(2,Kn,3,0,`ul`,1),vr(),qr(3,`svg`,2),Xm(`pointermove`,function(r){return n.onMove(r)})(`pointerleave`,function(){return n.hovered.set(null)}),kc(4,Qn,1,4,`:svg:line`,3,Sc),kc(6,Yn,2,0,null,null,sn),SE(8,ei,3,4),Wr(),SE(9,ii,5,3,`div`,4),Zd(),qr(10,`figcaption`,5)(11,`span`),fS(12),Wr(),qr(13,`span`,6),fS(14),Wr(),qr(15,`span`),fS(16),Wr()()()),e&2){let a,r,p=yS(n.plot());ec(2),kE(p.lines.length>1?2:-1),ec(),Br(`viewBox`,n.viewBox)(`aria-label`,n.summary()),ec(),Tc(n.gridlines),ec(2),Tc(p.lines),ec(2),kE((a=n.marker())?8:-1,a),ec(),kE((r=n.marker())?9:-1,r),ec(3),pg(n.t().ago(n.ageOf(p.spanMs))),ec(2),pg(n.t().max(n.format()(p.yMax))),ec(2),pg(n.t().now)}},encapsulation:2})}});function ci(i,t){if(i&1){let e=$E();Oi$1(0,`li`)(1,`label`,14)(2,`input`,15),Jm(`change`,function(a){let r=Ld(e).$implicit;return Od(HE(2).toggle(r.choice,a.target.checked))}),Nc(),Oi$1(3,`span`,16),fS(4),Oi$1(5,`span`,17),fS(6),Nc()(),Oi$1(7,`span`,18),fS(8),Nc()()()}if(i&2){let e=t.$implicit;ag(`pl-6`,e.choice===`allImages`),ec(),ag(`text-ink-100`,!e.disabled)(`text-ink-500`,e.disabled),ec(),Wm(`checked`,e.checked)(`disabled`,e.disabled),Br(`data-choice`,e.choice),ec(2),Ac(` `,e.label,` `),ec(2),pg(e.hint),ec(2),pg(e.count)}}function pi(i,t){if(i&1){let e=$E();Gm(0,`div`,2),Oi$1(1,`div`,3)(2,`div`,4)(3,`h2`,5),fS(4),Nc(),Oi$1(5,`p`,6),fS(6),Nc(),Oi$1(7,`ul`,7),kc(8,ci,9,12,`li`,8,di),Nc(),Oi$1(10,`div`,9)(11,`button`,10),Gm(12,`app-icon`,11),fS(13),Nc(),Oi$1(14,`button`,12),Jm(`click`,function(){Ld(e);return Od(HE().accept())}),Gm(15,`app-icon`,13),fS(16),Nc()()()()}if(i&2){let e=HE();ec(4),pg(e.t().title),ec(2),Ac(` `,e.t().description,` `),ec(2),Tc(e.rows()),ec(4),Wm(`size`,14),ec(),Ac(` `,e.cancel(),` `),ec(),Wm(`disabled`,e.nothingSelected()),ec(),Wm(`size`,14),ec(),Ac(` `,e.t().confirm,` `)}}var di;var cn;var We;var pn=f(()=>{Kr();ho();sk();dk();Kr();di=(i,t)=>t.choice;cn={containers:!0,networks:!0,volumes:!1,images:!0,allImages:!1,buildCache:!0},We=class i{open=mj(!1);counts=jc.required();confirmed=pj();choices=wt(W({},cn));t=Ot(()=>ok().dashboard.pruneDialog);cancel=Ot(()=>ok().common.cancel);rows=Ot(()=>{let t=this.counts(),e=this.choices(),n=this.t(),a=(r,p,g,f,D=f===0)=>({choice:r,label:p,hint:g,count:f,disabled:D,checked:e[r]&&!D});return[a(`containers`,n.containers,n.containersHint,t.containers),a(`networks`,n.networks,n.networksHint,t.networks),a(`images`,n.images,n.imagesHint,t.danglingImages),a(`allImages`,n.allImages,n.allImagesHint,t.unusedImages,t.unusedImages===0||!e.images),a(`buildCache`,n.buildCache,n.buildCacheHint,t.buildCache),a(`volumes`,n.volumes,n.volumesHint,t.volumes)]});nothingSelected=Ot(()=>this.rows().every(t=>!t.checked));constructor(){rf(()=>{this.open()&&this.choices.set(W({},cn))})}toggle(t,e){this.choices.update(n=>G(W({},n),{[t]:e}))}accept(){let t=new Set(this.rows().filter(e=>e.checked).map(e=>e.choice));this.open.set(!1),this.confirmed.emit({containers:t.has(`containers`),networks:t.has(`networks`),volumes:t.has(`volumes`),images:t.has(`images`)||t.has(`allImages`),allImages:t.has(`allImages`),buildCache:t.has(`buildCache`)})}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-prune-dialog`]],inputs:{open:[1,`open`],counts:[1,`counts`]},outputs:{open:`openChange`,confirmed:`confirmed`},decls:2,vars:1,consts:[[`rdxAlertDialogRoot`,``,3,`openChange`,`open`],[`rdxAlertDialogPortal`,``],[`rdxAlertDialogBackdrop`,``,1,`fixed`,`inset-0`,`z-40`,`bg-black/50`],[`rdxAlertDialogViewport`,``,`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`grid`,`place-items-center`,`p-4`],[`rdxAlertDialogPopup`,``,1,`w-full`,`max-w-md`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`p-5`,`shadow-2xl`],[`rdxAlertDialogTitle`,``,1,`text-[15px]`,`font-semibold`,`text-ink-100`],[`rdxAlertDialogDescription`,``,1,`mt-1.5`,`text-[13px]`,`text-ink-300`],[1,`mt-4`,`space-y-2.5`,`text-[13px]`],[3,`pl-6`],[1,`mt-5`,`flex`,`justify-end`,`gap-2`],[`type`,`button`,`rdxAlertDialogClose`,``,1,`mx-btn`,`mx-focus`],[`name`,`close`,3,`size`],[`type`,`button`,1,`mx-btn`,`mx-focus`,`border-danger`,`bg-danger`,`text-white`,`hover:border-danger`,`hover:bg-danger`,`hover:text-white`,`disabled:opacity-50`,3,`click`,`disabled`],[`name`,`broom`,3,`size`],[1,`flex`,`items-baseline`,`gap-2`],[`type`,`checkbox`,1,`mx-focus`,`accent-accent`,3,`change`,`checked`,`disabled`],[1,`min-w-0`,`flex-1`],[1,`block`,`text-[11px]`,`text-ink-500`],[1,`tabular-nums`,`text-ink-400`]],template:function(e,n){e&1&&(Oi$1(0,`div`,0),vg(`openChange`,function(r){return vS(n.open,r)||(n.open=r),r}),_m(1,pi,17,7,`ng-template`,1),Nc()),e&2&&hg(`open`,n.open)},dependencies:[Ni$1,Ai$1,Oi$2,ki$1,Ii$1,Pi$1,Mi$1,Ri$1,My],encapsulation:2})}});function fi(i,t){if(i&1&&(Oi$1(0,`span`,3),fS(1),Nc()),i&2){let e=HE();ec(),pg(e.t().engine.connecting)}}function hi(i,t){if(i&1&&(Oi$1(0,`span`,3),fS(1),Nc()),i&2){let e=t;ec(),mg(`Docker `,e.version,` · API `,e.apiVersion)}}function xi(i,t){if(i&1&&(Oi$1(0,`span`,3),fS(1),Nc()),i&2){let e=t,n=HE(2);ec(),gg(``,e.name,` · `,e.cpus,` CPU · `,n.sizeOf(e.memoryBytes))}}function _i(i,t){i&1&&(Oi$1(0,`span`,36),fS(1),Nc()),i&2&&(ec(),pg(t))}function bi(i,t){if(i&1&&(Oi$1(0,`p`,39),fS(1),Oi$1(2,`code`,40),fS(3,`instanceIdleTimeout=-1`),Nc(),fS(4),Oi$1(5,`code`,40),fS(6,`[general]`),Nc(),fS(7),Oi$1(8,`code`,40),fS(9,`%UserProfile%\\.wslconfig`),Nc(),fS(10),Nc()),i&2){let e=HE(),n=HE(2);ec(),Ac(` `,n.t().engine.idleHint.intro(e),` `),ec(3),Ac(` `,n.t().engine.idleHint.under,` `),ec(3),Ac(` `,n.t().engine.idleHint.in,` `),ec(3),Ac(` `,n.t().engine.idleHint.outro,` `)}}function vi(i,t){if(i&1){let e=$E();Oi$1(0,`button`,37),Jm(`click`,function(){let a=Ld(e);return Od(HE(2).startWsl(a))}),Gm(1,`app-icon`,38),fS(2),Nc(),SE(3,bi,11,4,`p`,39)}if(i&2){let e=t,n=HE(2);Wm(`disabled`,n.wslStarting()),ec(),Wm(`size`,14),ec(),Ac(` `,n.wslStarting()?n.t().engine.startingDistro(e):n.t().engine.startDistro(e),` `),ec(),kE(n.wslStartedBefore()?3:-1)}}function Ci(i,t){if(i&1){let e=$E();Oi$1(0,`button`,41),Jm(`click`,function(){let a=Ld(e);return Od(HE(2).startWslDaemon(a))}),Gm(1,`app-icon`,38),fS(2),Nc(),Oi$1(3,`p`,42),fS(4),Nc()}if(i&2){let e=t,n=HE(2);Wm(`disabled`,n.wslStarting()),ec(),Wm(`size`,14),ec(),Ac(` `,n.wslStarting()?n.t().engine.startingDaemon(e):n.t().engine.startDaemon(e),` `),ec(2),pg(n.t().engine.daemonHint(e))}}function ki(i,t){if(i&1&&(Oi$1(0,`span`,32),Gm(1,`span`,33),Oi$1(2,`span`,34),fS(3),Nc()(),SE(4,hi,2,2,`span`,3),Oi$1(5,`span`,35),fS(6),Nc(),SE(7,xi,2,3,`span`,3),SE(8,_i,2,1,`span`,36),SE(9,vi,4,4),SE(10,Ci,5,4)),i&2){let e,n,a,r,p,g=HE(),f=bS(3);ec(),ag(`bg-ok`,f.connected)(`bg-danger`,!f.connected),ec(),ag(`text-ink-100`,f.connected)(`text-danger`,!f.connected),ec(),Ac(` `,f.connected?g.t().engine.running:g.t().engine.unreachable,` `),ec(),kE((e=f.version)?4:-1,e),ec(2),pg(f.endpoint),ec(),kE((n=f.info)?7:-1,n),ec(),kE((a=f.problem)?8:-1,a),ec(),kE((r=!f.connected&&f.wslDistro)?9:-1,r),ec(),kE((p=!f.connected&&f.wslDaemonDistro)?10:-1,p)}}function wi(i,t){if(i&1&&(Oi$1(0,`span`,25),fS(1),Nc()),i&2){let e=HE();ec(),pg(e.t().disk.total(e.sizeOf(t.totalBytes)))}}function Si(i,t){if(i&1&&(Oi$1(0,`span`,26),fS(1),Nc()),i&2){let e=HE();ec(),pg(e.t().disk.calculating)}}function Pi(i,t){if(i&1&&(Oi$1(0,`span`,50),fS(1),Nc()),i&2){let e=HE().$implicit,n=HE(2);ec(),pg(n.t().disk.unused(n.unusedOf(e.total,e.active)))}}function Ei(i,t){if(i&1&&(Oi$1(0,`div`,44)(1,`dt`,46),fS(2),Nc(),Oi$1(3,`div`,47),Gm(4,`div`,48),Nc(),Oi$1(5,`dd`,49),fS(6),SE(7,Pi,2,1,`span`,50),Nc()()),i&2){let e=t.$implicit,n=HE(2);ec(2),pg(n.labelOf(e.kind)),ec(2),sg(`min-width`,e.sizeBytes>0?3:0,`px`)(`width`,n.barWidth(e.sizeBytes),`%`),Wm(`title`,n.labelOf(e.kind)+`: `+n.sizeOf(e.sizeBytes)),ec(2),Ac(` `,n.sizeOf(e.sizeBytes),` `),ec(),kE(n.unusedOf(e.total,e.active)>0?7:-1)}}function Di(i,t){if(i&1&&(Oi$1(0,`dl`,43),kc(1,Ei,8,8,`div`,44,gi),Nc(),Oi$1(3,`p`,45),fS(4),Oi$1(5,`code`,40),fS(6,`docker system df`),Nc(),fS(7),Nc()),i&2){let e=HE();ec(),Tc(t.entries),ec(3),Ac(` `,e.t().disk.footnoteBefore,` `),ec(3),Ac(``,e.t().disk.footnoteAfter,` `)}}function Ii(i,t){if(i&1&&(Oi$1(0,`p`,51),Gm(1,`app-icon`,53),fS(2),Nc()),i&2){let e=HE(2);ec(),Wm(`size`,13),ec(),Ac(` `,e.t().attention.none,` `)}}function Ti(i,t){if(i&1&&(Oi$1(0,`li`,54),Gm(1,`app-icon`,56),Oi$1(2,`a`,57),fS(3),Nc(),Oi$1(4,`span`),fS(5),Nc(),Oi$1(6,`span`,58),fS(7),Nc()()),i&2){let e=HE().$implicit,n=HE(3);ec(),ag(`text-danger`,n.failed(e.container))(`text-ink-500`,!n.failed(e.container)),Wm(`name`,n.failed(e.container)?`warning`:`stop`)(`size`,13),ec(),Wm(`routerLink`,SS(14,un,e.container.id)),ec(),pg(e.container.name),ec(),ag(`text-danger`,n.failed(e.container))(`text-ink-400`,!n.failed(e.container)),ec(),pg(n.exitLabel(e.container)),ec(2),pg(n.t().stopped.created(n.ageOf(e.container.createdAt)))}}function Mi(i,t){if(i&1&&(Oi$1(0,`a`,59),fS(1),Nc()),i&2){HE();let e=bS(0);Wm(`queryParams`,SS(2,mi,e.image)),ec(),pg(e.name)}}function Ni(i,t){if(i&1&&(Oi$1(0,`span`,60),fS(1),Nc()),i&2){HE();let e=bS(0);ec(),pg(e.name)}}function Ai(i,t){if(i&1&&(Oi$1(0,`a`,57),fS(1),Nc()),i&2){HE();let e=bS(0);Wm(`routerLink`,SS(2,un,e.id)),ec(),pg(e.name)}}function $i(i,t){if(i&1&&(Oi$1(0,`a`,62),fS(1),Nc()),i&2){HE();let e=bS(0),n=HE(4);Wm(`queryParams`,SS(3,ui,e.name)),Br(`data-testid`,`attention-update-`+e.name),ec(),pg(n.t().attention.updateProject)}}function Ri(i,t){if(i&1&&(Oi$1(0,`a`,63),fS(1),Nc()),i&2){HE();let e=bS(0),n=HE(4);Br(`data-testid`,`attention-drift-`+e.name),ec(),pg(n.t().attention.toCompose)}}function Bi(i,t){if(i&1&&(bg(0),Oi$1(1,`li`,55),Gm(2,`app-icon`,56),SE(3,Mi,2,4,`a`,59)(4,Ni,2,1,`span`,60)(5,Ai,2,4,`a`,57),Oi$1(6,`span`,61),fS(7),Nc(),SE(8,$i,2,5,`a`,62)(9,Ri,2,2,`a`,63),Nc()),i&2){let e=HE().$implicit,n=HE(3),a=yS(e.item);ec(2),nS(a.kind===`update`||a.kind===`projectUpdate`||a.kind===`projectDrift`?`text-accent`:`text-danger`),Wm(`name`,n.attentionIcon(a))(`size`,13),ec(),kE(a.kind===`update`?3:a.kind===`projectUpdate`||a.kind===`projectDrift`?4:5),ec(4),pg(n.attentionText(a)),ec(),kE(a.kind===`projectUpdate`?8:a.kind===`projectDrift`?9:-1)}}function Vi(i,t){if(i&1&&SE(0,Ti,8,16,`li`,54)(1,Bi,10,8,`li`,55),i&2){let e=t.$implicit;kE(e.type===`stopped`?0:1)}}function Li(i,t){if(i&1&&(Oi$1(0,`ul`,52),kc(1,Vi,2,1,null,null,yi),Nc()),i&2){let e=HE();ec(),Tc(e)}}function zi(i,t){i&1&&SE(0,Ii,3,2,`p`,51)(1,Li,3,0,`ul`,52),i&2&&kE(t.length===0?0:1)}function Ui(i,t){if(i&1&&(Oi$1(0,`p`,30),fS(1),Nc()),i&2){let e=HE();ec(),pg(e.t().attention.loading)}}var un;var mi;var ui;var gi;var yi;var Fi;var mn;var ji;var Ge;var gn=f(()=>{Kr();ra$1();o$1();v();y$1();h();P();f$3();pt();mt();B();sk();dk();x();dn();pn();Kr();un=i=>[`/containers`,i],mi=i=>({zoek:i}),ui=i=>({bijwerken:i}),gi=(i,t)=>t.kind,yi=(i,t)=>t.type===`attention`?t.item.kind+t.item.id:`stopped`+t.container.id;Fi=6,mn=new Set([`update`,`projectUpdate`,`projectDrift`]),ji=/^[0-9a-f]{64}$/,Ge=class i$1{engine=C(o);containers=C(u$2);images=C(h$1);volumes=C(w$1);networks=C(y$4);system=C(Ce);history=C(je);t=Ot(()=>ok().dashboard);status=this.engine.status;wslStarting=this.engine.wslStarting;wslProblem=this.engine.wslProblem;wslStartedBefore=this.engine.wslStartedBefore;diskUsage=this.system.diskUsage;diskLoading=this.system.loading;diskProblem=Ot(()=>this.engine.status()?.connected===!1?null:this.system.problem());pruneBusy=this.system.pruneBusy;pruneOpen=wt(!1);opruimen=jc(void 0);router=C(fe);route=C(Q);cpuHistory=this.history.cpu;memoryHistory=this.history.memory;networkSeries=Ot(()=>[{key:`rx`,label:this.t().usage.received,points:this.history.received(),color:`series-1`},{key:`tx`,label:this.t().usage.sent,points:this.history.sent(),color:`series-2`}]);formatPercent=t=>`${t.toFixed(1)}%`;formatMemory=t=>d$1(t);formatRate=t=>`${d$1(t)}/s`;containerCount=Ot(()=>this.containers.containers().length);runningCount=Ot(()=>this.containers.runningIds().length);imageCount=Ot(()=>new Set(this.images.images().map(t=>t.id)).size);volumeCount=Ot(()=>this.volumes.volumes().length);networkCount=Ot(()=>this.networks.networks().length);totals=Ot(()=>{let t=0,e=0,n=0,a=0;for(let r of this.containers.runningIds()){let p=this.containers.stats().get(r);t+=p?.cpuPercent??0,e+=p?.memoryBytes??0,n+=p?.rxBytesPerSec??0,a+=p?.txBytesPerSec??0}return{cpu:t,memory:e,received:n,sent:a}});pruneCounts=Ot(()=>{let t=this.images.images().filter(n=>n.inUseBy===0),e=this.system.diskUsage()?.entries.find(n=>n.kind===`buildCache`);return{containers:this.containers.containers().filter(n=>n.state===`exited`||n.state===`dead`||n.state===`created`).length,networks:this.networks.networks().filter(n=>!n.builtIn&&n.connected===0).length,volumes:this.volumes.volumes().filter(n=>n.inUseBy===0&&ji.test(n.name)).length,danglingImages:new Set(t.filter(n=>n.dangling).map(n=>n.id)).size,unusedImages:new Set(t.map(n=>n.id)).size,buildCache:e===void 0?0:Math.max(0,e.total-e.active)}});recentlyStopped=Ot(()=>this.containers.containers().filter(t=>t.state===`exited`||t.state===`dead`).slice().sort((t,e)=>e.createdAt-t.createdAt).slice(0,Fi));attention=wt(null);cardRows=Ot(()=>{let t=this.attention();if(t===null)return null;let e=new Set(t.map(r=>r.id)),n=this.recentlyStopped().filter(r=>!e.has(r.id)),a=r=>mn.has(r.kind);return[...t.filter(r=>!a(r)).map(r=>({type:`attention`,item:r})),...n.filter(r=>this.failed(r)).map(r=>({type:`stopped`,container:r})),...t.filter(a).map(r=>({type:`attention`,item:r})),...n.filter(r=>!this.failed(r)).map(r=>({type:`stopped`,container:r}))]});attentionRound=0;constructor(){rf(()=>{this.opruimen()!==void 0&&Tg(()=>{this.pruneOpen.set(!0),i(this.router,this.route,`opruimen`)})}),rf(()=>{this.containers.containers(),Tg(()=>{this.loadAttention()})}),rf(()=>this.containers.watchStats(this.containers.runningIds())),C(ve).onDestroy(()=>this.containers.watchStats([])),this.engine.refresh(),this.loadLists()}async startWsl(t){await this.engine.startWsl(t)&&this.loadLists()}async startWslDaemon(t){await this.engine.startWslDaemon(t)&&this.loadLists()}loadLists(){this.containers.refresh(),this.images.refresh(),this.volumes.refresh(),this.networks.refresh(),this.system.refresh()}prune(t){this.system.prune(t)}labelOf(t){return this.t().disk.labels[t]}sizeOf(t){return d$1(t)}ageOf(t){return N(t)}barWidth(t){return Math.max(0,t/this.system.largestBytes()*100)}unusedOf(t,e){return Math.max(0,t-e)}attentionIcon(t){switch(t.kind){case`network`:return`networks`;case`unhealthy`:return`pulse`;case`restarting`:return`refresh`;case`update`:case`projectUpdate`:return`download`;case`projectDrift`:return`file`;default:return`warning`}}somethingBroken=Ot(()=>(this.cardRows()??[]).some(t=>t.type===`attention`?!mn.has(t.item.kind):this.failed(t.container)));attentionText(t){let e=this.t().attention;switch(t.kind){case`crashLoop`:return e.crashLoop(t.crashes);case`restarting`:return e.restarting;case`unhealthy`:return e.unhealthy;case`network`:return e.network(t.network);case`ports`:return e.ports(t.ports.map(n=>String(n.hostPort??n.containerPort)).join(`, `));case`update`:return e.update(t.image);case`projectUpdate`:return e.projectUpdate(t.images.join(`, `));case`projectDrift`:return e.projectDrift(t.services.join(`, `))}}async loadAttention(){let t=++this.attentionRound;try{let e=await window.electron.containers.attention();t===this.attentionRound&&this.attention.set(e)}catch{t===this.attentionRound&&this.attention.set([])}}exitLabel(t){return t.exitCode===null?t.status:t.exitCode===0?this.t().stopped.clean:this.t().stopped.failed(t.exitCode)}failed(t){return t.exitCode!==null&&t.exitCode!==0}static ɵfac=function(e){return new(e||i$1)};static ɵcmp=wc({type:i$1,selectors:[[`app-dashboard-page`]],inputs:{opruimen:[1,`opruimen`]},decls:81,vars:49,consts:[[1,`h-full`,`overflow-y-auto`,`px-6`,`pt-5`,`pb-8`],[1,`text-xl`,`font-semibold`,`tracking-tight`,`text-ink-100`],[1,`mt-4`,`flex`,`flex-wrap`,`items-center`,`gap-x-8`,`gap-y-3`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`text-[13px]`,`text-ink-400`],[3,`problem`],[1,`mt-4`,`grid`,`gap-3`,`lg:grid-cols-2`],[1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`text-[12px]`,`text-ink-400`],[1,`mt-1`,`text-2xl`,`font-semibold`,`tabular-nums`,`text-ink-100`],[1,`text-base`,`font-normal`,`text-ink-400`],[`data-testid`,`cpu-chart`,1,`mt-2`],[3,`points`,`format`,`label`,`floor`],[`data-testid`,`memory-chart`,1,`mt-2`],[1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`,`lg:col-span-2`],[1,`mt-1`,`flex`,`flex-wrap`,`items-baseline`,`gap-x-6`,`text-2xl`,`font-semibold`,`tabular-nums`,`text-ink-100`],[`data-testid`,`network-received`],[`data-testid`,`network-sent`],[`data-testid`,`network-chart`,1,`mt-2`],[3,`series`,`format`,`label`,`floor`],[1,`mt-1`,`text-[11px]`,`text-ink-500`],[1,`mt-3`,`grid`,`gap-3`,`sm:grid-cols-2`,`lg:grid-cols-3`],[1,`text-[11px]`,`text-ink-500`],[1,`mt-4`,`grid`,`gap-4`,`lg:grid-cols-2`],[1,`flex`,`items-baseline`,`gap-3`],[1,`text-[13px]`,`font-semibold`,`text-ink-100`],[1,`text-[13px]`,`tabular-nums`,`text-ink-400`],[1,`text-[12px]`,`text-ink-500`],[`type`,`button`,`data-testid`,`open-prune`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`,`disabled`],[`name`,`broom`,3,`size`],[`data-testid`,`attention`,1,`rounded-lg`,`border`,`bg-ink-850`,`px-4`,`py-3`],[1,`mt-2`,`text-[13px]`,`text-ink-400`],[3,`openChange`,`confirmed`,`open`,`counts`],[1,`flex`,`items-center`,`gap-2`],[`aria-hidden`,`true`,1,`size-2.5`,`rounded-full`],[1,`text-[14px]`,`font-medium`],[1,`font-mono`,`text-[12px]`,`text-ink-500`],[1,`text-[13px]`,`text-danger`],[`type`,`button`,`data-testid`,`start-wsl`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`],[`name`,`play`,3,`size`],[`data-testid`,`wsl-idle-hint`,1,`basis-full`,`text-[12px]`,`text-ink-400`],[1,`font-mono`],[`type`,`button`,`data-testid`,`start-wsl-daemon`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`],[`data-testid`,`wsl-daemon-hint`,1,`basis-full`,`text-[12px]`,`text-ink-400`],[1,`mt-3`,`space-y-2.5`],[1,`grid`,`grid-cols-[7.5rem_1fr_auto]`,`items-center`,`gap-3`],[1,`mt-3`,`text-[11px]`,`text-ink-500`],[1,`truncate`,`text-[13px]`,`text-ink-300`],[1,`h-1.5`,`w-full`,`rounded-full`,`bg-ink-800`],[1,`h-full`,`rounded-full`,`bg-accent`,3,`title`],[1,`text-right`,`text-[13px]`,`tabular-nums`,`text-ink-200`],[1,`ml-2`,`text-[11px]`,`text-warn`],[1,`mt-2`,`flex`,`items-center`,`gap-2`,`text-[13px]`,`text-ink-400`],[1,`mt-2`,`space-y-1.5`],[`name`,`check`,1,`text-ok`,3,`size`],[`data-testid`,`attention-stopped`,1,`flex`,`flex-wrap`,`items-center`,`gap-x-3`,`gap-y-1`,`text-[13px]`],[1,`flex`,`flex-wrap`,`items-center`,`gap-x-3`,`gap-y-1`,`text-[13px]`],[3,`name`,`size`],[1,`mx-focus`,`min-w-0`,`truncate`,`text-ink-100`,`hover:text-accent`,`hover:underline`,3,`routerLink`],[1,`ml-auto`,`shrink-0`,`text-ink-500`],[`routerLink`,`/images`,1,`mx-focus`,`min-w-0`,`truncate`,`text-ink-100`,`hover:text-accent`,`hover:underline`,3,`queryParams`],[1,`min-w-0`,`truncate`,`text-ink-100`],[1,`text-ink-400`],[`routerLink`,`/compose`,1,`mx-focus`,`text-accent`,`hover:underline`,3,`queryParams`],[`routerLink`,`/compose`,1,`mx-focus`,`text-accent`,`hover:underline`]],template:function(e,n){if(e&1){let a=$E();Oi$1(0,`section`,0)(1,`h1`,1),fS(2),Nc(),bg(3),Oi$1(4,`div`,2),SE(5,fi,2,1,`span`,3)(6,ki,11,15),Nc(),Gm(7,`app-page-messages`,4),Oi$1(8,`div`,5)(9,`div`,6)(10,`div`,7),fS(11),Nc(),Oi$1(12,`div`,8),fS(13),Oi$1(14,`span`,9),fS(15,`%`),Nc()(),Oi$1(16,`div`,10),Gm(17,`app-usage-chart`,11),Nc()(),Oi$1(18,`div`,6)(19,`div`,7),fS(20),Nc(),Oi$1(21,`div`,8),fS(22),Nc(),Oi$1(23,`div`,12),Gm(24,`app-usage-chart`,11),Nc()(),Oi$1(25,`div`,13)(26,`div`,7),fS(27),Nc(),Oi$1(28,`div`,14)(29,`span`,15)(30,`span`,9),fS(31,`↓`),Nc(),fS(32),Nc(),Oi$1(33,`span`,16)(34,`span`,9),fS(35,`↑`),Nc(),fS(36),Nc()(),Oi$1(37,`div`,17),Gm(38,`app-usage-chart`,18),Nc(),Oi$1(39,`p`,19),fS(40),Nc()()(),Oi$1(41,`div`,20)(42,`div`,6)(43,`div`,7),fS(44),Nc(),Oi$1(45,`div`,8),fS(46),Oi$1(47,`span`,9),fS(48),Nc()(),Oi$1(49,`div`,21),fS(50),Nc()(),Oi$1(51,`div`,6)(52,`div`,7),fS(53),Nc(),Oi$1(54,`div`,8),fS(55),Nc()(),Oi$1(56,`div`,6)(57,`div`,7),fS(58),Nc(),Oi$1(59,`div`,8),fS(60),Oi$1(61,`span`,9),fS(62),Nc()()()(),Oi$1(63,`div`,22)(64,`div`,6)(65,`div`,23)(66,`h2`,24),fS(67),Nc(),SE(68,wi,2,1,`span`,25),SE(69,Si,2,1,`span`,26),Oi$1(70,`button`,27),Jm(`click`,function(){return n.pruneOpen.set(!0)}),Gm(71,`app-icon`,28),fS(72),Nc()(),Gm(73,`app-page-messages`,4),SE(74,Di,8,2),Nc(),Oi$1(75,`div`,29)(76,`h2`,24),fS(77),Nc(),SE(78,zi,2,1)(79,Ui,2,1,`p`,30),Nc()()(),Oi$1(80,`app-prune-dialog`,31),vg(`openChange`,function(p){return Ld(a),vS(n.pruneOpen,p)||(n.pruneOpen=p),Od(p)}),Jm(`confirmed`,function(p){return n.prune(p)}),Nc()}if(e&2){let a,r,p;ec(2),pg(n.t().title),ec();let g=yS(n.status());ec(2),kE(g===null?5:6),ec(2),Wm(`problem`,n.wslProblem()),ec(4),pg(n.t().usage.cpu),ec(2),Ac(` `,n.totals().cpu.toFixed(2)),ec(4),Wm(`points`,n.cpuHistory())(`format`,n.formatPercent)(`label`,n.t().usage.cpu)(`floor`,10),ec(3),pg(n.t().usage.memory),ec(2),pg(n.sizeOf(n.totals().memory)),ec(2),Wm(`points`,n.memoryHistory())(`format`,n.formatMemory)(`label`,n.t().usage.memoryChart)(`floor`,134217728),ec(3),pg(n.t().usage.network),ec(3),Br(`aria-label`,n.t().usage.receivedAria),ec(2),Ac(` `,n.formatRate(n.totals().received),` `),ec(2),Br(`aria-label`,n.t().usage.sentAria),ec(2),Ac(` `,n.formatRate(n.totals().sent),` `),ec(2),Wm(`series`,n.networkSeries())(`format`,n.formatRate)(`label`,n.t().usage.networkChart)(`floor`,10240),ec(2),pg(n.t().usage.hostNote),ec(4),pg(n.t().counts.containers),ec(2),Ac(` `,n.runningCount()),ec(2),Ac(` / `,n.containerCount()),ec(2),pg(n.t().counts.runningOfTotal),ec(3),pg(n.t().counts.images),ec(2),pg(n.imageCount()),ec(3),pg(n.t().counts.volumesNetworks),ec(2),Ac(` `,n.volumeCount()),ec(2),Ac(` · `,n.networkCount()),ec(5),pg(n.t().disk.title),ec(),kE((a=n.diskUsage())?68:-1,a),ec(),kE(n.diskLoading()?69:-1),ec(),Wm(`disabled`,n.pruneBusy()),ec(),Wm(`size`,14),ec(),Ac(` `,n.pruneBusy()?n.t().disk.pruning:n.t().disk.prune,` `),ec(),Wm(`problem`,n.diskProblem()),ec(),kE((r=n.diskUsage())?74:-1,r),ec(),nS(n.somethingBroken()?`border-danger/40`:`border-ink-700`),ec(2),pg(n.t().attention.title),ec(),kE((p=n.cardRows())?78:79,p),ec(2),hg(`open`,n.pruneOpen),Wm(`counts`,n.pruneCounts())}},dependencies:[My,u$3,We,Yt,qe],encapsulation:2})}});var yn;var fn=f(()=>{sk();gn();yn=[{path:``,pathMatch:`full`,redirectTo:`dashboard`},{path:`dashboard`,component:Ge,title:()=>ok().shell.nav.dashboard},{path:`containers`,loadComponent:()=>import(`./chunk-Cc4_zCxe2.js`).then(i=>i.ContainersPage),title:()=>ok().shell.nav.containers},{path:`containers/:id`,loadComponent:()=>import(`./chunk-BsAqguck2.js`).then(i=>i.ContainerDetail),title:()=>ok().shell.routes.container},{path:`images`,loadComponent:()=>import(`./chunk-C1Wg9uje.js`).then(i=>i.ImagesPage),title:()=>ok().shell.nav.images},{path:`volumes`,loadComponent:()=>import(`./chunk-D-7d5O7f.js`).then(i=>i.VolumesPage),title:()=>ok().shell.nav.volumes},{path:`networks`,loadComponent:()=>import(`./chunk-DsuW5Ksa2.js`).then(i=>i.NetworksPage),title:()=>ok().shell.nav.networks},{path:`ports`,loadComponent:()=>import(`./chunk-CI9I9Npi.js`).then(i=>i.PortsPage),title:()=>ok().shell.nav.ports},{path:`compose`,loadComponent:()=>import(`./chunk-C-yEXU2P.js`).then(i=>i.ComposePage),title:()=>ok().shell.nav.compose},{path:`logs`,loadComponent:()=>import(`./chunk-C6u6rXYb2.js`).then(i=>i.LogsPage),title:()=>ok().shell.nav.logs},{path:`terminal`,loadComponent:()=>import(`./chunk-CT1ZUgmS.js`).then(i=>i.TerminalPage),title:()=>ok().shell.nav.terminal},{path:`settings`,loadComponent:()=>import(`./chunk-wa_VZZFY.js`).then(i=>i.SettingsPage),title:()=>ok().shell.nav.settings},{path:`**`,redirectTo:`dashboard`}]});var hn;var xn=f(()=>{Kr();ra$1();fn();sk();hn={providers:[ow(),PI(()=>C(Ny).load()),Ks(yn,na$1())]}});var ke;var ut=f(()=>{Kr();Kr();ke=class i{open=wt(!1);static ɵfac=function(e){return new(e||i)};static ɵprov=X({token:i,factory:i.ɵfac,providedIn:`root`})}});var Ke;var _n=f(()=>{Kr();u$1();sk();dk();ut();Kr();Ke=class i{theme=C(a);palette=C(ke);t=Ot(()=>ok().shell.header);quit(){window.electron.app.quit()}isDark(){return this.theme.theme()===`dark`}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-header`]],decls:12,vars:10,consts:[[1,`flex`,`h-11`,`items-center`,`gap-3`,`border-b`,`border-ink-700`,`bg-panel`,`px-3`],[1,`text-[13px]`,`font-semibold`,`tracking-tight`,`text-ink-100`],[1,`text-accent`],[`type`,`button`,`data-testid`,`open-palette`,1,`mx-btn`,`mx-focus`,`ml-auto`,`text-ink-400`,3,`click`,`title`],[`name`,`search`,3,`size`],[`type`,`button`,1,`mx-btn`,`mx-focus`,3,`click`,`title`],[3,`name`,`size`],[`type`,`button`,`data-testid`,`quit-app`,1,`mx-btn`,`mx-focus`,`hover:text-danger`,3,`click`,`title`],[`name`,`power`,3,`size`]],template:function(e,n){e&1&&(Oi$1(0,`header`,0)(1,`span`,1),fS(2,`Docker `),Oi$1(3,`span`,2),fS(4,`Client`),Nc(),fS(5,` MX`),Nc(),Oi$1(6,`button`,3),Jm(`click`,function(){return n.palette.open.set(!0)}),Gm(7,`app-icon`,4),Nc(),Oi$1(8,`button`,5),Jm(`click`,function(){return n.theme.toggle()}),Gm(9,`app-icon`,6),Nc(),Oi$1(10,`button`,7),Jm(`click`,function(){return n.quit()}),Gm(11,`app-icon`,8),Nc()()),e&2&&(ec(6),Wm(`title`,n.t().search),Br(`aria-label`,n.t().search),ec(),Wm(`size`,14),ec(),Wm(`title`,n.isDark()?n.t().lightTheme:n.t().darkTheme),Br(`aria-label`,n.isDark()?n.t().lightTheme:n.t().darkTheme),ec(),Wm(`name`,n.isDark()?`sun`:`moon`)(`size`,15),ec(),Wm(`title`,n.t().quit),Br(`aria-label`,n.t().quit),ec(),Wm(`size`,15))},dependencies:[My],encapsulation:2})}});function yt(i){let{nav:t}=ok().shell,e=ok().shell.palette,n=Oi.map(([s,C])=>({id:`page:${C}`,label:t[s],detail:e.groups.page,group:`page`,target:{kind:`route`,route:C}})),a=i.containers.flatMap(s=>{let C=s.image,O=[...new Set(s.ports.flatMap(j=>j.hostPort===null?[]:[j.hostPort]))].sort((j,it)=>j-it),M={id:`container:${s.id}`,label:s.name,detail:C,keywords:[s.status,s.composeProject??``,...O.map(j=>`:${String(j)}`)].join(` `),group:`container`,target:{kind:`route`,route:`/containers/${s.id}`}},w=j=>({id:`container:${s.id}:${j}`,label:e[j](s.name),detail:C,group:`container`,target:{kind:`container`,id:s.id,action:j},parent:M.id}),$={id:`container:${s.id}:diagnose`,label:e.diagnose(s.name),detail:C,group:`container`,target:{kind:`route`,route:`/containers/${s.id}`,diagnose:!0},parent:M.id},Y=(j,it)=>({id:`container:${s.id}:tab:${j}`,label:it,detail:C,group:`container`,target:{kind:`dialog`,route:`/containers/${s.id}`,param:`tabblad`,value:j},parent:M.id}),H=s.composeProject!==null&&s.composeService!==null&&s.composeWorkingDir!==null,W=[Y(`events`,e.events(s.name)),...s.state===`running`?[Y(`terminal`,e.terminal(s.name))]:[],{id:`container:${s.id}:compose`,label:e.composeService(s.name),detail:C,group:`container`,target:{kind:`dialog`,route:`/containers/${s.id}`,param:`yaml`,value:`1`},parent:M.id},{id:`container:${s.id}:rename`,label:e.rename(s.name),detail:C,group:`container`,target:{kind:`dialog`,route:`/containers/${s.id}`,param:`hernoemen`,value:`1`},parent:M.id},{id:`container:${s.id}:cpu`,label:e.cpu(s.name),detail:C,group:`container`,target:{kind:`dialog`,route:`/containers/${s.id}`,param:`processor`,value:`1`},parent:M.id},{id:`container:${s.id}:memory`,label:e.memory(s.name),detail:C,group:`container`,target:{kind:`dialog`,route:`/containers/${s.id}`,param:`geheugen`,value:`1`},parent:M.id},...H?[{id:`container:${s.id}:recreate`,label:e.recreate(s.name),detail:C,group:`container`,target:{kind:`recreate`,project:s.composeProject??``,service:s.composeService??``},parent:M.id}]:[],{id:`container:${s.id}:copy`,label:e.copyId(s.name),detail:C,group:`container`,target:{kind:`copy`,text:s.id},parent:M.id}];return s.state===`running`?[M,w(`restart`),w(`stop`),$,...W]:[M,w(`start`),$,...W]}),r=i.images.filter(s=>!s.dangling).flatMap(s=>{let C={id:`image:${s.reference}`,label:s.reference,detail:`Image`,keywords:s.inUseBy>0?e.imageInUse(s.inUseBy):e.imageUnused,group:`image`,target:{kind:`route`,route:`/images`,search:s.reference}},O=(M,w,$)=>({id:`image:${s.reference}:${w}`,label:$,detail:`Image`,group:`image`,target:{kind:`dialog`,route:`/images`,param:M,value:s.reference},parent:C.id});return[C,O(`starten`,`run`,e.imageRun(s.reference)),O(`lagen`,`layers`,e.imageLayers(s.reference)),O(`ophalen`,`pull`,e.imagePull(s.reference)),O(`verwijder`,`remove`,e.imageRemove(s.reference))]}),p=i.composeProjects.filter(s=>s.workingDir!==null).flatMap(s=>{let C=`Compose`,O={id:`compose:${s.name}`,label:s.name,detail:C,group:`compose`,target:{kind:`route`,route:`/compose`}},M=O.id;return[O,{id:`compose:${s.name}:up`,label:e.composeUp(s.name),detail:C,group:`compose`,target:{kind:`compose`,project:s.name},parent:M},{id:`compose:${s.name}:update`,label:e.updateProject(s.name),detail:C,group:`compose`,target:{kind:`dialog`,route:`/compose`,param:`bijwerken`,value:s.name},parent:M},{id:`compose:${s.name}:file`,label:e.composeFile(s.name),detail:C,group:`compose`,target:{kind:`dialog`,route:`/compose`,param:`bestand`,value:s.name},parent:M},{id:`compose:${s.name}:down`,label:e.composeDown(s.name),detail:C,group:`compose`,target:{kind:`dialog`,route:`/compose`,param:`afbreken`,value:s.name},parent:M},{id:`compose:${s.name}:logs`,label:e.composeLogs(s.name),detail:C,group:`compose`,target:{kind:`dialog`,route:`/logs`,param:`volg`,value:s.name},parent:M}]}),g=i.volumes.flatMap(s=>{let C=s.composeProject===null?`Volume`:`Volume \xB7 ${s.composeProject}`;return[{id:`volume:${s.name}`,label:s.name,detail:C,group:`volume`,target:{kind:`route`,route:`/volumes`,search:s.name}},{id:`volume:${s.name}:browse`,label:e.volumeBrowse(s.name),detail:C,group:`volume`,target:{kind:`dialog`,route:`/volumes`,param:`inkijk`,value:s.name},secondary:!0,parent:`volume:${s.name}`},{id:`volume:${s.name}:backup`,label:e.volumeBackup(s.name),detail:C,group:`volume`,target:{kind:`dialog`,route:`/volumes`,param:`bewaar`,value:s.name},secondary:!0,parent:`volume:${s.name}`}]}),f=i.networks.flatMap(s=>{let C=e.network(s.driver);return[{id:`network:${s.id}`,label:s.name,detail:C,group:`network`,target:{kind:`route`,route:`/networks`,search:s.name}},{id:`network:${s.id}:members`,label:e.networkMembers(s.name),detail:C,group:`network`,target:{kind:`dialog`,route:`/networks`,param:`leden`,value:s.name},secondary:!0,parent:`network:${s.id}`}]}),D=[{id:`action:prune`,label:e.prune,detail:e.groups.action,group:`action`,target:{kind:`dialog`,route:`/dashboard`,param:`opruimen`,value:`1`}},{id:`action:check-updates`,label:e.checkUpdates,detail:e.groups.action,group:`action`,target:{kind:`dialog`,route:`/images`,param:`controleren`,value:`1`}},{id:`action:theme`,label:e.theme,detail:e.groups.action,group:`action`,target:{kind:`theme`}},...(i.contexts??[]).filter(s=>!s.active).map(s=>({id:`action:context:${s.name}`,label:e.useContext(s.name),detail:`Context`,group:`action`,target:{kind:`context`,name:s.name}}))];return[...n,...a,...p,...r,...g,...f,...D]}function Hi(i,t){let e=t.toLowerCase().split(/\s+/).filter(p=>p!==``),n=i.label.toLowerCase(),a=`${n} ${i.detail.toLowerCase()} ${(i.keywords??``).toLowerCase()}`;if(e.some(p=>!a.includes(p)))return e.length===1&&Cn(n,e[0]??``)!==null?4:null;let r=e[0]??``;return n.startsWith(r)?0:new RegExp(`[\\s_./:-]${r.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}`).test(n)?1:n.includes(r)?2:3}function bn(i,t,e=50){if(t.trim()===``)return i.slice(0,e);let n=i.map(a=>({entry:a,score:Hi(a,t.trim())})).filter(a=>a.score!==null);return n.sort((a,r)=>a.score-r.score||gt.indexOf(a.entry.group)-gt.indexOf(r.entry.group)||+(a.entry.secondary===!0||a.entry.parent!==void 0)-+(r.entry.secondary===!0||r.entry.parent!==void 0)||a.entry.label.localeCompare(r.entry.label)),n.slice(0,e).map(a=>a.entry)}function Cn(i,t){let e=[],n=0;for(let a of t){let r=i.indexOf(a,n);if(r===-1)return null;e.push(r),n=r+1}return e}function qi(i,t){let e=i.toLowerCase(),n=t.toLowerCase().split(/\s+/).filter(r=>r!==``),a=new Set;for(let r of n){let p=e.indexOf(r);if(p!==-1)for(let g=p;g<p+r.length;g++)a.add(g);else n.length===1&&Cn(e,r)?.forEach(g=>a.add(g))}return[...a].sort((r,p)=>r-p)}function Gi(i){if(i.startsWith(`>`))return{scope:`actions`,rest:i.slice(1).trim()};let t=/^([a-z]) (.*)$/s.exec(i),e=t===null?void 0:Wi[t[1]??``];return e===void 0||t===null?{scope:null,rest:i}:{scope:e,rest:t[2]?.trim()??``}}function kn(i,t,e=50){let n=ok().shell.palette,a=new Set(i.flatMap(w=>w.parent===void 0?[]:[w.parent])),r=(w,$,Y)=>({entry:w,header:Y,matches:$===``?[]:qi(w.label,$),hasActions:a.has(w.id)});if(t.parent!==null){let w=i.find(W=>W.id===t.parent),$=i.filter(W=>W.parent===t.parent),Y=w===void 0?$:[w,...$];return(t.query.trim()===``?Y:bn(Y,t.query)).map((W$2,j)=>G(W({},r(W$2,t.query,j===0?w?.label:void 0)),{hasActions:!1}))}let{scope:p,rest:g}=Gi(t.query),f=i.filter(w=>p===null?!0:p===`actions`?w.parent!==void 0||w.group===`action`:w.group===p&&w.parent===void 0);if(g!==``||p!==null){let w=H=>+(H.group!==`action`),$=[...f].sort((H,W)=>w(H)-w(W)||H.label.localeCompare(W.label));return(g===``?$.slice(0,e):bn(f,g,e)).map(H=>r(H,g))}let D=i.filter(w=>w.parent===void 0),s=new Map(i.map(w=>[w.id,w])),C=new Set,O=[],M=(w,$)=>{$.filter(H=>!C.has(H.id)).forEach((H,W)=>{C.add(H.id),O.push(r(H,``,W===0?w:void 0))})};M(n.recent,t.recent.flatMap(w=>s.get(w)??[]).slice(0,10)),M(n.attention,t.attention.flatMap(w=>s.get(`container:${w}`)??[]));for(let w of[...gt.filter($=>$!==`page`),`page`]){let $=D.filter(Y=>Y.group===w);$.length>0&&M(`${n.sections[w]} \xB7 ${String($.length)}`,w===`page`?$:$.slice(0,Ki))}return O}function Qe(i){let t=ok().shell.palette,e=i.filter(a=>a.problem===null),n=i.flatMap(a=>{switch(a.problem){case`unknown`:return[t.problems.unknown(a.name)];case`ambiguous`:return[t.problems.ambiguous(a.name,a.candidates.length)];case`state`:return[t.problems.state(a.container?.name??a.name)];case`notCompose`:return[t.problems.notCompose(a.container?.name??a.name)];default:return[]}});return{id:`command`,label:e.length===0?t.commandNothing:e.map(a=>`${t.verbs[a.verb]} ${a.container?.name??a.name}`).join(` · `),detail:n.length===0?t.commandHint:n.join(` · `),group:`container`,target:{kind:`batch`,steps:i}}}function wn(i,t){let e=new Set(t.types),n=t.nameContains?.toLowerCase()??null,a=t.project?.toLowerCase()??null,r=s=>(t.minSizeMb===null||s!==null&&s>=t.minSizeMb*vn)&&(t.maxSizeMb===null||s!==null&&s<=t.maxSizeMb*vn),p=s=>n===null||s.toLowerCase().includes(n),g=s=>a===null||s?.toLowerCase()===a,f=s=>e.size===0||e.has(s),D=new Set;for(let s of i.containers){let C=s.state===`running`,O=t.state===`any`||t.state===`running`===C;f(`container`)&&O&&p(s.name)&&g(s.composeProject)&&r(i.containerSizes?.[s.id]??null)&&D.add(`container:${s.id}`)}for(let s of i.images)f(`image`)&&!s.dangling&&p(s.reference)&&a===null&&r(s.sizeBytes)&&(!t.unusedOnly||s.inUseBy===0)&&D.add(`image:${s.reference}`);for(let s of i.volumes)f(`volume`)&&p(s.name)&&g(s.composeProject)&&r(s.sizeBytes)&&(!t.unusedOnly||s.inUseBy===0)&&D.add(`volume:${s.name}`);for(let s of i.networks)f(`network`)&&p(s.name)&&a===null&&t.minSizeMb===null&&t.maxSizeMb===null&&D.add(`network:${s.id}`);for(let s of i.composeProjects)f(`compose`)&&p(s.name)&&g(s.name)&&D.add(`compose:${s.name}`);return yt(i).filter(s=>D.has(s.id))}var Oi;var gt;var Wi;var Ki;var vn;var Sn=f(()=>{sk();Oi=[[`dashboard`,`/dashboard`],[`containers`,`/containers`],[`images`,`/images`],[`volumes`,`/volumes`],[`networks`,`/networks`],[`ports`,`/ports`],[`compose`,`/compose`],[`logs`,`/logs`],[`terminal`,`/terminal`],[`settings`,`/settings`]],gt=[`page`,`container`,`compose`,`image`,`volume`,`network`,`action`];Wi={c:`container`,i:`image`,v:`volume`,n:`network`,p:`compose`};Ki=5;vn=1024*1024});function Zi(i,t){switch(i){case`start`:return t.state!==`running`&&t.state!==`paused`;case`stop`:case`restart`:case`pause`:return t.state===`running`;case`unpause`:return t.state===`paused`;case`recreate`:return!0}}function Yi(i,t){let e=i.toLowerCase(),n=t.filter(p=>p.name.toLowerCase()===e),a=t.filter(p=>p.composeService?.toLowerCase()===e),r=t.filter(p=>p.name.toLowerCase().includes(e));for(let p of[n,a,r]){if(p.length===1)return{container:p[0]??null,candidates:[]};if(p.length>1)return{container:null,candidates:p.map(g=>g.name)}}return{container:null,candidates:[]}}function Xe(i,t,e){let{container:n,candidates:a}=Yi(t,e);return{verb:i,name:t,container:n,problem:n===null?a.length>0?`ambiguous`:`unknown`:i===`recreate`&&(n.composeProject===null||n.composeService===null)?`notCompose`:Zi(i,n)?null:`state`,candidates:a}}function Pn(i){let t=i.toLowerCase();for(let[e,n]of Qi)if(t===e||t.startsWith(`${e} `))return{verb:n,rest:i.slice(e.length).trim()};return null}function En(i,t){let e=i.trim(),n=Pn(e);if(n===null)return null;let a=[],r=n.verb;for(let p of e.split(Xi)){let g=Pn(p);g!==null&&(r=g.verb);let f=(g===null?p:g.rest).split(/\s+/).filter(D=>D!==``);for(let D of f)a.push(Xe(r,D,t))}return a.length===0?null:a}var Qi;var Xi;var Dn=f(()=>{Qi=[[`opnieuw opbouwen`,`recreate`],[`neu aufbauen`,`recreate`],[`herbouw`,`recreate`],[`rebuild`,`recreate`],[`recreate`,`recreate`],[`reconstruire`,`recreate`],[`reconstruir`,`recreate`],[`herstarten`,`restart`],[`herstart`,`restart`],[`restart`,`restart`],[`neustarten`,`restart`],[`neu starten`,`restart`],[`redémarrer`,`restart`],[`redemarrer`,`restart`],[`reiniciar`,`restart`],[`stoppen`,`stop`],[`stop`,`stop`],[`stoppe`,`stop`],[`arrêter`,`stop`],[`arreter`,`stop`],[`arrête`,`stop`],[`detener`,`stop`],[`parar`,`stop`],[`starten`,`start`],[`start`,`start`],[`démarrer`,`start`],[`demarrer`,`start`],[`iniciar`,`start`],[`arrancar`,`start`],[`pauzeren`,`pause`],[`pauzeer`,`pause`],[`pause`,`pause`],[`pausieren`,`pause`],[`pausar`,`pause`],[`hervatten`,`unpause`],[`hervat`,`unpause`],[`unpause`,`unpause`],[`resume`,`unpause`],[`fortsetzen`,`unpause`],[`reprendre`,`unpause`],[`reanudar`,`unpause`]].slice().sort((i,t)=>t[0].length-i[0].length),Xi=/\s*(?:[,;]|\s(?:en|and|und|et|y)\s)\s*/i});function ea(i,t){if(i&1){let e=$E();Oi$1(0,`button`,13),Jm(`click`,function(){Ld(e);return Od(HE(2).leave())}),fS(1),Gm(2,`app-icon`,14),Nc()}i&2&&(ec(),Ac(` `,t,` `),ec(),Wm(`size`,12))}function ta(i,t){if(i&1&&(Oi$1(0,`p`,15),fS(1),Nc()),i&2){let e=HE(3);ec(),pg(e.t().thinking)}}function na(i,t){i&1&&(Oi$1(0,`p`,18),fS(1),Nc()),i&2&&(ec(),pg(t))}function ia(i,t){if(i&1&&(Oi$1(0,`p`,17),fS(1),Nc(),SE(2,na,2,1,`p`,18)),i&2){let e,n=HE(),a=HE(2);ec(),pg(a.t().claudeSays(n.summary)),ec(),kE((e=n.note)?2:-1,e)}}function aa(i,t){if(i&1&&(Oi$1(0,`p`,19),fS(1),Nc()),i&2){let e=HE(4);ec(),pg(e.t().thinking)}}function oa(i,t){if(i&1&&Gm(0,`app-answer-text`,20),i&2)Wm(`text`,HE(2).text)}function ra(i,t){if(i&1&&(SE(0,aa,2,1,`p`,19)(1,oa,1,1,`app-answer-text`,20),Oi$1(2,`p`,21),fS(3),Nc()),i&2){let e=HE(),n=HE(2);kE(e.text===``?0:1),ec(3),pg(n.t().questionNote)}}function sa(i,t){if(i&1&&(Oi$1(0,`p`,16),fS(1),Nc()),i&2){let e=HE();ec(),pg(e.problem)}}function la(i,t){if(i&1&&(Oi$1(0,`div`,9),SE(1,ta,2,1,`p`,15)(2,ia,3,2)(3,ra,4,2)(4,sa,2,1,`p`,16),Nc()),i&2){let e;ec(),kE((e=t.phase)===`thinking`?1:e===`rows`?2:e===`answer`?3:e===`error`?4:-1)}}function da(i,t){i&1&&(Oi$1(0,`li`,22),fS(1),Nc()),i&2&&(ec(),Ac(` `,t,` `))}function ca(i,t){if(i&1&&(Oi$1(0,`span`),fS(1),Nc()),i&2){let e=t.$implicit,n=HE(3);nS(e.bold?n.hit:``),ec(),pg(e.text)}}function pa(i,t){if(i&1&&Gm(0,`app-icon`,29),i&2){let e=HE(3);Wm(`size`,12),Br(`aria-label`,e.t().actions)}}function ma(i,t){if(i&1){let e=$E();SE(0,da,2,1,`li`,22),Oi$1(1,`li`,23),Jm(`mousemove`,function(){let a=Ld(e).$index;return Od(HE(2).active.set(a))})(`click`,function(){let a=Ld(e).$implicit;return Od(HE(2).run(a.entry))})(`keydown.enter`,function(){let a=Ld(e).$implicit;return Od(HE(2).run(a.entry))}),Gm(2,`app-icon`,24),Oi$1(3,`span`,25),fS(4),Nc(),Oi$1(5,`span`,26),kc(6,ca,2,3,`span`,27,TE),Nc(),Oi$1(8,`span`,28),fS(9),Nc(),SE(10,pa,1,2,`app-icon`,29),Nc()}if(i&2){let e,n=t.$implicit,a=t.$index,r=HE(2);kE((e=n.header)?0:-1,e),ec(),ag(`bg-ink-800`,a===r.active()),Wm(`id`,r.optionId(n.entry)),Br(`aria-selected`,a===r.active()),ec(),Wm(`name`,r.groupIcon[n.entry.group])(`size`,14),ec(2),pg(r.t().groups[n.entry.group]),ec(2),Tc(r.labelParts(n)),ec(3),pg(n.entry.detail),ec(),kE(n.hasActions?10:-1)}}function ua(i,t){if(i&1&&(Oi$1(0,`li`,11),fS(1),Nc()),i&2){let e=HE(2);ec(),pg(e.t().empty)}}function ga(i,t){if(i&1){let e=$E();Oi$1(0,`div`,2)(1,`div`,3)(2,`h2`,4),fS(3),Nc(),Oi$1(4,`p`,5),fS(5),Nc(),Oi$1(6,`div`,6),SE(7,ea,3,2,`button`,7),Oi$1(8,`input`,8),Jm(`input`,function(a){Ld(e);return Od(HE().setQuery(a.target.value))})(`keydown`,function(a){Ld(e);return Od(HE().onKey(a))}),Nc()(),SE(9,la,5,1,`div`,9),Oi$1(10,`ul`,10),kc(11,ma,11,10,null,null,Ji,!1,ua,2,1,`li`,11),Nc(),Oi$1(14,`p`,12),fS(15),Nc()()()}if(i&2){let e,n,a=HE();ec(3),pg(a.t().title),ec(2),pg(a.t().description),ec(2),kE((e=a.parentLabel())?7:-1,e),ec(),Wm(`placeholder`,a.parent()===null?a.t().placeholder:a.t().actions)(`value`,a.query()),Br(`aria-activedescendant`,a.activeId()),ec(),kE((n=a.ai())?9:-1,n),ec(),Br(`aria-label`,a.t().results),ec(),Tc(a.results()),ec(4),pg(a.t().hint)}}function ha(i,t){let e=new Set(t),n=[];for(let[a,r]of[...i].entries()){let p=e.has(a),g=n.at(-1);g?.bold===p?n[n.length-1]={text:g.text+r,bold:p}:n.push({text:r,bold:p})}return n}var Ji;var ya;var fa;var Ze;var In=f(()=>{Kr();ra$1();Je$1();y();y$2();v();w();P();f$3();Sn();Dn();f$2();M();u$1();pt();B();sk();he();dk();Kr();Ji=(i,t)=>t.entry.id;ya={page:`file`,container:`containers`,compose:`compose`,image:`images`,volume:`volumes`,network:`networks`,action:`sliders`},fa=10;Ze=class i{open=mj(!1);router=C(fe);containers=C(u$2);compose=C(c);images=C(h$1);volumes=C(w$1);networks=C(y$4);system=C(Ce);contexts=C(y$3);preferences=C(p);aiAvailable=wt(!1);ai=wt(null);conversation=null;aiRound=0;toast=C(u);theme=C(a);groupIcon=ya;hit=`font-semibold text-accent`;t=Ot(()=>ok().shell.palette);query=wt(``);active=wt(0);parent=wt(null);outerQuery=``;attention=wt([]);recent=Ot(()=>this.preferences.names(`palette.recent.${this.contexts.active()?.name??`default`}`));data=Ot(()=>({containers:this.containers.containers(),composeProjects:f$1(this.containers.containers()),images:this.images.images(),volumes:this.volumes.volumes(),networks:this.networks.networks(),contexts:this.contexts.contexts().filter(t=>t.supported),containerSizes:this.system.diskUsage()?.containerSizes??null}));entries=Ot(()=>yt(this.data()));command=Ot(()=>this.parent()===null?En(this.query(),this.containers.containers()):null);results=Ot(()=>{let t=this.ai();if(t!==null){let p=t.phase===`rows`?t.entries:t.phase===`answer`?t.proposals:[],g=new Set(this.entries().flatMap(f=>f.parent===void 0?[]:[f.parent]));return p.map(f=>({entry:f,matches:[],hasActions:g.has(f.id)}))}let e=this.askRow();if(e!==null&&this.query().startsWith(`?`))return[e];let n=kn(this.entries(),{query:this.query(),parent:this.parent(),recent:[...this.recent()()],attention:this.attention()}),a=this.command(),r=a===null?n:[{entry:Qe(a),matches:[],hasActions:!1},...n];return e===null?r:[...r,e]});askRow=Ot(()=>{let t=this.query().replace(/^\?/,``).trim();return!this.aiAvailable()||this.parent()!==null||t===``||this.query().startsWith(`>`)?null:{entry:{id:`ai`,label:this.t().askClaude(t),detail:this.t().askNote,group:`action`,target:{kind:`ai`,query:t}},matches:[],hasActions:!1}});parentLabel=Ot(()=>{let t=this.parent();return t===null?null:this.entries().find(e=>e.id===t)?.label??null});activeId=Ot(()=>{let t=this.results()[this.active()];return t===void 0?null:this.optionId(t.entry)});constructor(){rf(()=>{this.open()?Tg(()=>{this.query.set(``),this.active.set(0),this.parent.set(null),this.containers.refresh(),this.images.refresh(),this.volumes.refresh(),this.networks.refresh(),this.loadAttention(),window.electron.assistant.status().then(e=>this.aiAvailable.set(e.configured)).catch(()=>this.aiAvailable.set(!1))}):Tg(()=>this.stopAi())});let t=e=>{e.key===`Escape`&&!e.isComposing&&(e.preventDefault(),e.stopImmediatePropagation(),this.open.set(!1))};rf(e=>{this.open()&&(window.addEventListener(`keydown`,t,{capture:!0}),e(()=>window.removeEventListener(`keydown`,t,{capture:!0})))}),C(ve).onDestroy(()=>this.stopAi())}setQuery(t){this.stopAi(),this.query.set(t),this.active.set(0)}labelParts(t){return ha(t.entry.label,t.matches)}onKey(t){let e=this.results().length,n=this.results()[this.active()];if(t.key===`ArrowDown`||t.key===`ArrowUp`){if(t.preventDefault(),e>0){let r=t.key===`ArrowDown`?1:-1;this.active.set((this.active()+r+e)%e),document.getElementById(this.activeId()??``)?.scrollIntoView?.({block:`nearest`})}return}let a=t.target?.selectionStart===this.query().length;if(n?.hasActions===!0&&(t.key===`Tab`||t.key===`ArrowRight`&&a)){t.preventDefault(),this.enter(n.entry.id);return}if(this.parent()!==null&&this.query()===``&&(t.key===`ArrowLeft`||t.key===`Backspace`)){t.preventDefault(),this.leave();return}t.key===`Enter`&&(t.preventDefault(),n!==void 0&&this.run(n.entry))}leave(){this.parent.set(null),this.query.set(this.outerQuery),this.active.set(0)}optionId(t){return`palette-${t.id.replace(/[^a-zA-Z0-9_-]/g,`_`)}`}run(t){let e=t.target;if(e.kind===`batch`){this.runSteps(e.steps);return}if(e.kind===`ai`){this.askClaude(e.query);return}if(this.remember(t.id),this.open.set(!1),e.kind===`container`){this.containers.run(e.action,e.id);return}if(e.kind===`compose`){this.compose.up(e.project);return}if(e.kind===`recreate`){this.compose.recreate(e.project,e.service);return}if(e.kind===`copy`){navigator.clipboard.writeText(e.text).then(()=>this.toast.success(this.t().copied(e.text.slice(0,12)))).catch(()=>{});return}if(e.kind===`theme`){this.theme.toggle();return}if(e.kind===`context`){this.contexts.use(e.name);return}if(e.kind===`dialog`){this.router.navigate([e.route],{queryParams:{[e.param]:e.value}});return}let n=W(W({},e.search===void 0?{}:{zoek:e.search}),e.diagnose===!0?{diagnose:1}:{});this.router.navigate([e.route],{queryParams:n})}async runSteps(t){let e=t.filter(n=>n.problem===null&&n.container!==null);if(e.length!==0){this.open.set(!1);for(let n of e){let a=n.container;a!==null&&(n.verb===`recreate`?await this.compose.recreate(a.composeProject??``,a.composeService??``):await this.containers.run(n.verb,a.id))}this.toast.success(this.t().commandDone(e.length))}}async askClaude(t){this.stopAi();let e=++this.aiRound,n=()=>e===this.aiRound;this.ai.set({phase:`thinking`}),this.active.set(0);let a=await window.electron.paletteAi.interpret(t).catch(()=>null);if(n()){if(a===null||!a.ok){this.ai.set({phase:`error`,problem:a?.problem??this.t().aiNothing});return}if(a.kind===`filter`&&a.filter!==null){let r=a.filter.minSizeMb!==null||a.filter.maxSizeMb!==null,p=a.filter.types.length===0||a.filter.types.includes(`container`);if(r&&p&&(await this.system.refresh(),!n()))return;let g=wn(this.data(),a.filter),f=r&&p&&this.system.diskUsage()===null?`${this.t().noContainerSize} ${this.t().askNote}`:this.t().askNote,D=g.length===0?this.t().aiNothing:this.t().aiMatches(g.length);this.ai.set({phase:`rows`,summary:`${a.summary} \u2014 ${D}`,note:f,entries:g});return}if(a.kind===`command`){let r=await window.electron.paletteAi.plan(t).catch(()=>null);if(!n())return;if(r===null||!r.ok){this.ai.set({phase:`error`,problem:r?.problem??this.t().aiNothing});return}let p=r.steps.map(g=>Xe(g.verb,g.container,this.containers.containers()));this.ai.set({phase:`rows`,summary:r.summary,note:this.t().commandNote,entries:p.length===0?[]:[Qe(p)]});return}await this.askQuestion(t,n)}}async askQuestion(t,e){let n=await window.electron.assistant.start(null);if(!e()){window.electron.assistant.close(n);return}let a=``,r=[],p=f=>{e()&&this.ai.set({phase:`answer`,text:a,done:f,proposals:r})},g=window.electron.assistant.onEvent(n,f=>{if(f.type===`text`)a+=f.text,p(!1);else if(f.type===`proposal`){let D=this.proposalEntry(f.proposal);r=D===null?r:[...r,D],p(!1)}else f.type===`done`?p(!0):f.type===`error`&&e()&&this.ai.set({phase:`error`,problem:f.problem})});this.conversation={id:n,unsubscribe:g},p(!1),await window.electron.assistant.ask(n,t)}proposalEntry(t){if(t.kind===`container`)return G(W({},Qe([Xe(t.action,t.containerName,this.containers.containers())])),{id:`ai:${t.containerName}:${t.action}`,detail:t.reason});return t.kind===`compose`?{id:`ai:${t.project}:up`,label:this.t().composeUp(t.project),detail:t.reason,group:`compose`,target:{kind:`compose`,project:t.project}}:{id:`ai:command:${t.command}`,label:this.t().copyCommand(t.command),detail:t.reason,group:`action`,target:{kind:`copy`,text:t.command}}}stopAi(){this.aiRound+=1,this.conversation!==null&&(this.conversation.unsubscribe(),window.electron.assistant.close(this.conversation.id).catch(()=>{}),this.conversation=null),this.ai.set(null)}enter(t){this.outerQuery=this.query(),this.parent.set(t),this.query.set(``),this.active.set(0)}remember(t){let e=this.recent();e.set(new Set([t,...[...e()].filter(n=>n!==t)].slice(0,fa)))}async loadAttention(){try{let t=await window.electron.containers.attention();this.attention.set(t.filter(e=>e.kind!==`update`).map(e=>e.id))}catch{this.attention.set([])}}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-command-palette`]],inputs:{open:[1,`open`]},outputs:{open:`openChange`},decls:2,vars:1,consts:[[`rdxDialogRoot`,``,3,`openChange`,`open`],[`rdxDialogPortal`,``],[`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`flex`,`items-start`,`justify-center`,`bg-black/40`,`p-4`,`pt-[12vh]`],[`rdxDialogPopup`,``,1,`w-full`,`max-w-3xl`,`overflow-hidden`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`shadow-2xl`],[`rdxDialogTitle`,``,1,`sr-only`],[`rdxDialogDescription`,``,1,`sr-only`],[1,`flex`,`items-center`,`border-b`,`border-ink-700`],[`type`,`button`,`data-testid`,`palette-parent`,1,`mx-focus`,`ml-3`,`flex`,`shrink-0`,`cursor-pointer`,`items-center`,`gap-1`,`rounded`,`border`,`border-ink-700`,`px-2`,`py-0.5`,`text-[12px]`,`text-ink-300`,`hover:text-ink-100`],[`type`,`text`,`role`,`combobox`,`aria-controls`,`palette-list`,`aria-expanded`,`true`,`aria-autocomplete`,`list`,`spellcheck`,`false`,`autocomplete`,`off`,`data-testid`,`palette-input`,1,`w-full`,`bg-transparent`,`px-4`,`py-3`,`text-[14px]`,`text-ink-100`,`outline-none`,`placeholder:text-ink-500`,3,`input`,`keydown`,`placeholder`,`value`],[`role`,`status`,`data-testid`,`palette-ai`,1,`border-b`,`border-ink-700`,`px-4`,`py-2`,`text-[13px]`],[`id`,`palette-list`,`role`,`listbox`,1,`max-h-[50vh]`,`overflow-y-auto`,`py-1`],[1,`px-4`,`py-3`,`text-[13px]`,`text-ink-400`],[`data-testid`,`palette-hint`,1,`border-t`,`border-ink-700`,`px-4`,`py-1.5`,`text-[11px]`,`text-ink-500`],[`type`,`button`,`data-testid`,`palette-parent`,1,`mx-focus`,`ml-3`,`flex`,`shrink-0`,`cursor-pointer`,`items-center`,`gap-1`,`rounded`,`border`,`border-ink-700`,`px-2`,`py-0.5`,`text-[12px]`,`text-ink-300`,`hover:text-ink-100`,3,`click`],[`name`,`chevronRight`,3,`size`],[1,`text-ink-400`],[1,`text-danger`],[1,`text-ink-200`],[1,`mt-0.5`,`text-[11px]`,`text-ink-500`],[`data-testid`,`palette-answer`,1,`text-ink-100`],[`data-testid`,`palette-answer`,1,`max-h-[30vh]`,`overflow-y-auto`,`text-ink-100`,3,`text`],[1,`mt-1`,`text-[11px]`,`text-ink-500`],[`role`,`presentation`,`data-testid`,`palette-header`,1,`px-4`,`pt-2`,`pb-1`,`text-[11px]`,`font-medium`,`tracking-wide`,`text-ink-500`,`uppercase`],[`role`,`option`,`tabindex`,`-1`,1,`flex`,`cursor-pointer`,`items-center`,`gap-3`,`px-4`,`py-1.5`,`text-[13px]`,3,`mousemove`,`click`,`keydown.enter`,`id`],[1,`text-ink-500`,3,`name`,`size`],[1,`sr-only`],[`data-testid`,`palette-label`,1,`min-w-0`,`flex-1`,`truncate`,`text-ink-100`],[3,`class`],[1,`max-w-[45%]`,`shrink-0`,`truncate`,`text-[11px]`,`text-ink-500`],[`name`,`chevronRight`,1,`shrink-0`,`text-ink-600`,3,`size`]],template:function(e,n){e&1&&(Oi$1(0,`div`,0),vg(`openChange`,function(r){return vS(n.open,r)||(n.open=r),r}),_m(1,ga,16,10,`ng-template`,1),Nc()),e&2&&hg(`open`,n.open)},dependencies:[ie,ln$1,pn$1,cn$1,fn$1,dn$1,W$1,My],encapsulation:2})}});function _a(i,t){if(i&1&&(Oi$1(0,`a`,1),Gm(1,`app-icon`,2),Oi$1(2,`span`,3),fS(3),Nc()()),i&2){let e=t.$implicit,n=HE();Wm(`routerLink`,e.path),Br(`title`,n.t()[e.label]),ec(),Wm(`name`,e.icon),ec(2),pg(n.t()[e.label])}}var xa;var ba;var Ye;var Tn=f(()=>{Kr();ra$1();dk();sk();Kr();xa=(i,t)=>t.path;ba=[{path:`/dashboard`,label:`dashboard`,icon:`dashboard`},{path:`/containers`,label:`containers`,icon:`containers`},{path:`/images`,label:`images`,icon:`images`},{path:`/volumes`,label:`volumes`,icon:`volumes`},{path:`/networks`,label:`networks`,icon:`networks`},{path:`/ports`,label:`ports`,icon:`ports`},{path:`/compose`,label:`compose`,icon:`compose`},{path:`/logs`,label:`logs`,icon:`lines`},{path:`/terminal`,label:`terminal`,icon:`terminal`},{path:`/settings`,label:`settings`,icon:`sliders`}],Ye=class i{nav=ba;t=Ot(()=>ok().shell.nav);static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-sidebar`]],decls:3,vars:1,consts:[[1,`flex`,`h-full`,`flex-col`,`gap-0.5`,`p-2`],[`routerLinkActive`,`bg-ink-800 text-ink-100`,1,`mx-focus`,`flex`,`items-center`,`gap-2.5`,`rounded-md`,`px-2.5`,`py-1.5`,`text-[13px]`,`text-ink-300`,`transition-colors`,`hover:bg-ink-850`,`hover:text-ink-100`,3,`routerLink`],[3,`name`],[1,`max-sidebar:hidden`,`truncate`]],template:function(e,n){e&1&&(Oi$1(0,`nav`,0),kc(1,_a,4,4,`a`,1,xa),Nc()),e&2&&(Br(`aria-label`,n.t().label),ec(),Tc(n.nav))},dependencies:[Yt,Gs,My],encapsulation:2})}});function ka(i,t){i&1&&(Oi$1(0,`span`,10),fS(1),Nc()),i&2&&(ec(),pg(t))}function wa(i,t){if(i&1){let e=$E();Oi$1(0,`li`)(1,`button`,6),Jm(`click`,function(){let a=Ld(e).$implicit;return Od(HE(3).pick(a.name))})(`keydown`,function(a){Ld(e);return Od(HE(3).onListKey(a))}),Gm(2,`app-icon`,7),Oi$1(3,`span`,8)(4,`span`,9),fS(5),Nc(),SE(6,ka,2,1,`span`,10),Nc()()()}if(i&2){let e,n=t.$implicit,a=HE(3),r=n.name===a.activeName();ec(),ag(`text-ink-100`,r)(`text-ink-300`,!r),Wm(`disabled`,!n.supported)(`title`,n.host),Br(`aria-selected`,r),ec(),ag(`text-accent`,r)(`invisible`,!r),Wm(`size`,12),ec(3),pg(n.name),ec(),kE((e=a.noteOf(n))?6:-1,e)}}function Sa(i,t){if(i&1&&(Oi$1(0,`ul`,4),kc(1,wa,7,14,`li`,null,Ca),Nc()),i&2){let e=HE(2);Br(`aria-label`,e.t().label),ec(),Tc(e.contexts())}}function Pa(i,t){if(i&1&&(Oi$1(0,`span`,5),fS(1),Nc()),i&2){let e=HE(2);ec(),pg(e.t().switching)}}function Ea(i,t){if(i&1){let e=$E();Oi$1(0,`div`,1)(1,`button`,2,0),Jm(`click`,function(){Ld(e);return Od(HE().toggle())})(`keydown`,function(a){Ld(e);return Od(HE().onTriggerKey(a))}),fS(3),Gm(4,`app-icon`,3),Nc(),SE(5,Sa,3,1,`ul`,4),Nc(),SE(6,Pa,2,1,`span`,5)}if(i&2){let e=HE();ec(),Wm(`disabled`,e.switching()),Br(`aria-expanded`,e.open())(`aria-label`,e.t().label),ec(2),Ac(` `,e.activeName(),` `),ec(),Wm(`name`,e.open()?`chevronDown`:`chevronUp`)(`size`,12),ec(),kE(e.open()?5:-1),ec(),kE(e.switching()?6:-1)}}var va;var Ca;var Je;var Mn=f(()=>{Kr();w();sk();dk();Kr();va=[`trigger`],Ca=(i,t)=>t.name;Je=class i{store=C(y$3);host=C(Pr);trigger=gj(`trigger`);contexts=this.store.contexts;switching=this.store.switching;open=wt(!1);t=Ot(()=>ok().shell.contextPicker);activeName=Ot(()=>this.store.active()?.name??``);constructor(){this.store.load()}noteOf(t){let e=this.t();return t.supported?t.currentInCli?e.inUseByCli:``:t.reason??e.unsupported}toggle(){this.open.update(t=>!t)}close(){this.open.set(!1),this.trigger()?.nativeElement.focus()}onOutside(t){this.open()&&!this.host.nativeElement.contains(t.target)&&this.open.set(!1)}onTriggerKey(t){t.key!==`ArrowDown`&&t.key!==`ArrowUp`||(t.preventDefault(),this.open.set(!0),setTimeout(()=>this.focusOption(t.key===`ArrowUp`?-1:0)))}onListKey(t){if(t.key===`Escape`){t.preventDefault(),this.close();return}if(t.key!==`ArrowDown`&&t.key!==`ArrowUp`)return;t.preventDefault();let n=this.options().indexOf(document.activeElement),a=t.key===`ArrowDown`?1:-1;this.focusOption(n===-1?0:n+a)}pick(t){this.open.set(!1),this.trigger()?.nativeElement.focus(),t!==this.activeName()&&this.store.use(t)}options(){return[...this.trigger()?.nativeElement.closest(`.relative`)?.querySelectorAll(`[role="option"]:not(:disabled)`)??[]]}focusOption(t){let e=this.options();e.length!==0&&e[(t+e.length)%e.length].focus()}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-context-picker`]],viewQuery:function(e,n){e&1&&rg(n.trigger,va,5),e&2&&zE()},hostAttrs:[1,`flex`,`items-center`,`gap-2`],hostBindings:function(e,n){e&1&&Jm(`pointerdown`,function(r){return n.onOutside(r)},wD)},decls:1,vars:1,consts:[[`trigger`,``],[1,`relative`],[`type`,`button`,`aria-haspopup`,`listbox`,1,`mx-focus`,`flex`,`cursor-pointer`,`items-center`,`gap-1`,`rounded`,`border`,`border-transparent`,`py-0.5`,`pr-1`,`pl-1.5`,`text-[12px]`,`text-ink-400`,`transition-colors`,`hover:border-ink-700`,`hover:text-ink-100`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,3,`click`,`keydown`,`disabled`],[3,`name`,`size`],[`role`,`listbox`,1,`absolute`,`right-0`,`bottom-full`,`z-50`,`mb-1.5`,`max-h-64`,`w-64`,`overflow-y-auto`,`rounded-md`,`border`,`border-ink-700`,`bg-panel`,`py-1`,`shadow-2xl`],[1,`text-[12px]`,`text-ink-500`],[`type`,`button`,`role`,`option`,1,`mx-focus`,`flex`,`w-full`,`cursor-pointer`,`items-start`,`gap-2`,`px-2.5`,`py-1.5`,`text-left`,`text-[12px]`,`transition-colors`,`hover:bg-ink-850`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`disabled:hover:bg-transparent`,3,`click`,`keydown`,`disabled`,`title`],[`name`,`check`,1,`mt-0.5`,`shrink-0`,3,`size`],[1,`min-w-0`,`flex-1`],[1,`block`,`truncate`],[1,`block`,`truncate`,`text-[11px]`,`text-ink-500`]],template:function(e,n){e&1&&SE(0,Ea,7,8),e&2&&kE(n.contexts().length>1?0:-1)},dependencies:[My],encapsulation:2})}});function Da(i,t){if(i&1&&(Oi$1(0,`span`),fS(1),Nc()),i&2){let e=HE();ec(),pg(e.t().connecting)}}function Ia(i,t){i&1&&(Oi$1(0,`span`,3),fS(1),Nc()),i&2&&(ec(),pg(t))}function Ta(i,t){if(i&1&&(Oi$1(0,`span`,8),fS(1,`|`),Nc(),Oi$1(2,`span`),fS(3),Nc(),Oi$1(4,`span`),fS(5),Nc(),Oi$1(6,`span`),fS(7),Nc()),i&2){let e=t,n=HE(3);ec(3),pg(n.t().containers(e.containersRunning,e.containers)),ec(2),pg(n.t().images(e.images)),ec(2),mg(``,e.cpus,` CPU · `,n.memory())}}function Ma(i,t){if(i&1&&SE(0,Ta,8,4),i&2){let e;HE(2);kE((e=bS(1).info)?0:-1,e)}}function Na(i,t){if(i&1&&(Oi$1(0,`span`,3),fS(1),Nc()),i&2){HE(2);let e=bS(1);ec(),pg(e.problem)}}function Aa(i,t){if(i&1&&(Oi$1(0,`span`),fS(1),Nc()),i&2){let e=t;ec(),mg(`Docker `,e.version,` · API `,e.apiVersion)}}function $a(i,t){if(i&1){let e=$E();Oi$1(0,`span`,1),Gm(1,`span`,2),fS(2),Nc(),SE(3,Ia,2,1,`span`,3),SE(4,Ma,1,1)(5,Na,2,1,`span`,3),Oi$1(6,`span`,4),Gm(7,`app-context-picker`),Oi$1(8,`span`,5),fS(9),Nc(),SE(10,Aa,2,2,`span`),Oi$1(11,`button`,6),Jm(`click`,function(){Ld(e);return Od(HE().refresh())}),Gm(12,`app-icon`,7),Nc()()}if(i&2){let e,n,a=HE(),r=bS(1);ag(`text-danger`,!r.connected),ec(),ag(`bg-ok`,r.connected)(`bg-danger`,!r.connected),ec(),Ac(` `,r.connected?a.t().engineRunning:a.t().engineUnreachable,` `),ec(),kE((e=a.contextProblem())?3:-1,e),ec(),kE(r.connected?4:r.problem?5:-1),ec(5),pg(r.endpoint),ec(),kE((n=r.version)?10:-1,n),ec(),Wm(`disabled`,a.loading())(`title`,a.t().reconnect),Br(`aria-label`,a.t().reconnect),ec(),Wm(`size`,14)}}var et;var Nn=f(()=>{Kr();w();y$1();h();sk();Mn();dk();Kr();et=class i{engine=C(o);contexts=C(y$3);status=this.engine.status;loading=this.engine.loading;contextProblem=this.contexts.problem;t=Ot(()=>ok().shell.statusBar);memory=Ot(()=>{let t=this.engine.status()?.info;return t===void 0?``:d$1(t.memoryBytes)});refresh(){this.engine.refresh()}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-status-bar`]],decls:4,vars:2,consts:[[`role`,`status`,1,`flex`,`h-7`,`items-center`,`gap-3`,`border-t`,`border-ink-700`,`bg-panel`,`px-3`,`text-[12px]`,`text-ink-400`],[1,`flex`,`items-center`,`gap-1.5`],[`aria-hidden`,`true`,1,`size-2`,`rounded-full`],[1,`truncate`,`text-danger`],[1,`ml-auto`,`flex`,`items-center`,`gap-3`],[1,`text-ink-500`],[`type`,`button`,1,`mx-focus`,`cursor-pointer`,`rounded`,`p-0.5`,`text-ink-400`,`transition-colors`,`hover:text-ink-100`,3,`click`,`disabled`,`title`],[`name`,`refresh`,3,`size`],[`aria-hidden`,`true`,1,`text-ink-600`]],template:function(e,n){if(e&1&&(Oi$1(0,`div`,0),bg(1),SE(2,Da,2,1,`span`)(3,$a,13,15),Nc()),e&2){ec();let a=yS(n.status());ec(),kE(a===null?2:3)}},dependencies:[My,Je],encapsulation:2})}});function Ra(i,t){i&1&&(Oi$1(0,`p`,3),fS(1),Nc()),i&2&&(ec(),pg(t))}function La(i,t){if(i&1){let e=$E();Oi$1(0,`li`,3)(1,`app-toast-item`,4),Jm(`closed`,function(){let a=Ld(e).$implicit;return Od(HE().service.close(a.id))}),Nc()()}if(i&2){let e=t.$implicit,n=HE();ec(),Wm(`toast`,e)(`paused`,n.hovered()||n.focused()||!n.windowActive())}}var Ba;var Va;var ft;var tt;var An=f(()=>{Kr();sk();dk();f$2();Kr();Ba=[`region`],Va=(i,t)=>t.id;ft=class i{toast=jc.required();paused=jc(!1);closed=pj();t=Ot(()=>ok().shell.toast);remaining=null;startedAt=0;timer=null;constructor(){rf(()=>{let{timeout:t,closing:e}=this.toast();this.stop(),!(t===0||e||this.paused())&&(this.remaining??=t,this.startedAt=Date.now(),this.timer=setTimeout(()=>this.closed.emit(),this.remaining))}),C(ve).onDestroy(()=>this.stop())}stop(){this.timer!==null&&(clearTimeout(this.timer),this.timer=null,this.remaining=Math.max(0,(this.remaining??0)-(Date.now()-this.startedAt)))}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-toast-item`]],hostAttrs:[`aria-atomic`,`true`,`tabindex`,`0`,1,`mx-focus`,`pointer-events-auto`,`flex`,`items-start`,`gap-2.5`,`rounded-lg`,`border`,`bg-ink-850`,`px-3`,`py-2.5`,`text-[13px]`,`shadow-lg`,`transition-[opacity,translate]`,`duration-200`,`starting:translate-y-2`,`starting:opacity-0`,`data-[state=closed]:translate-x-4`,`data-[state=closed]:opacity-0`,`data-[type=error]:border-danger/50`,`data-[type=success]:border-ok/50`],hostVars:4,hostBindings:function(e,n){e&1&&Jm(`keydown.escape`,function(){return n.closed.emit()}),e&2&&Br(`role`,n.toast().type===`error`?`alert`:`status`)(`aria-live`,n.toast().type===`error`?`assertive`:`polite`)(`data-type`,n.toast().type)(`data-state`,n.toast().closing?`closed`:`open`)},inputs:{toast:[1,`toast`],paused:[1,`paused`]},outputs:{closed:`closed`},decls:8,vars:10,consts:[[1,`mt-0.5`,`shrink-0`],[3,`name`,`size`],[1,`min-w-0`,`flex-1`],[1,`font-medium`,`text-ink-100`],[`data-testid`,`toast-description`,1,`break-words`,`text-ink-200`],[`type`,`button`,1,`mx-focus`,`-mr-1`,`shrink-0`,`rounded`,`p-0.5`,`text-ink-500`,`hover:text-ink-100`,3,`click`],[`name`,`close`,3,`size`]],template:function(e,n){if(e&1&&(Oi$1(0,`span`,0),Gm(1,`app-icon`,1),Nc(),Oi$1(2,`div`,2),SE(3,Ra,2,1,`p`,3),Oi$1(4,`p`,4),fS(5),Nc()(),Oi$1(6,`button`,5),Jm(`click`,function(){return n.closed.emit()}),Gm(7,`app-icon`,6),Nc()),e&2){let a;ag(`text-ok`,n.toast().type===`success`)(`text-danger`,n.toast().type===`error`),ec(),Wm(`name`,n.toast().type===`error`?`close`:`check`)(`size`,14),ec(2),kE((a=n.toast().title)?3:-1,a),ec(2),pg(n.toast().description),ec(),Br(`aria-label`,n.t().close),ec(),Wm(`size`,13)}},dependencies:[My],encapsulation:2})},tt=class i{service=C(u);hovered=wt(!1);focused=wt(!1);windowActive=wt(!0);t=Ot(()=>ok().shell.toast);region=gj.required(`region`);focus(){(this.region().nativeElement.querySelector(`app-toast-item`)??this.region().nativeElement).focus()}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-toast-viewport`]],viewQuery:function(e,n){e&1&&rg(n.region,Ba,5),e&2&&zE()},hostBindings:function(e,n){e&1&&Jm(`keydown.f8`,function(){return n.focus()},wD)(`blur`,function(){return n.windowActive.set(!1)},bD)(`focus`,function(){return n.windowActive.set(!0)},bD)},decls:5,vars:1,consts:[[`region`,``],[`tabindex`,`-1`,1,`pointer-events-none`,`fixed`,`right-4`,`bottom-10`,`z-50`,`w-[22rem]`,`max-w-[calc(100vw-2rem)]`,`outline-none`,3,`mouseenter`,`mouseleave`,`focusin`,`focusout`],[1,`flex`,`flex-col`,`gap-2`],[1,`contents`],[3,`closed`,`toast`,`paused`]],template:function(e,n){e&1&&(Oi$1(0,`section`,1,0),Jm(`mouseenter`,function(){return n.hovered.set(!0)})(`mouseleave`,function(){return n.hovered.set(!1)})(`focusin`,function(){return n.focused.set(!0)})(`focusout`,function(){return n.focused.set(!1)}),Oi$1(2,`ol`,2),kc(3,La,2,2,`li`,3,Va),Nc()()),e&2&&(Br(`aria-label`,n.t().region),ec(3),Tc(n.service.toasts()))},dependencies:[ft],encapsulation:2})}});var nt;var $n=f(()=>{Kr();ra$1();y$1();ut();_n();In();Tn();Nn();An();Kr();nt=class i{engine=C(o);router=C(fe);palette=C(ke);constructor(){this.engine.refresh(),C(ve).onDestroy(window.electron.navigation.onNavigate(t=>{this.router.navigateByUrl(t)})),C(ve).onDestroy(window.electron.navigation.onOpenPalette(()=>this.palette.open.set(!0))),window.electron.navigation.takePending().then(t=>{t===`#palet`?this.palette.open.set(!0):t!==null&&this.router.navigateByUrl(t)})}onKey(t){t.key.toLowerCase()!==`k`||!(t.ctrlKey||t.metaKey)||t.altKey||t.shiftKey||t.target instanceof Element&&t.target.closest(`.xterm`)!==null||(t.preventDefault(),this.palette.open.set(!0))}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-root`]],hostAttrs:[1,`block`,`h-full`],hostBindings:function(e,n){e&1&&Jm(`keydown`,function(r){return n.onKey(r)},wD)},decls:10,vars:1,consts:[[1,`flex`,`h-full`,`flex-col`,`bg-ink-900`],[1,`flex`,`min-h-0`,`flex-1`],[1,`max-sidebar:w-13`,`w-52`,`shrink-0`,`border-r`,`border-ink-700`,`bg-panel`],[1,`min-w-0`,`flex-1`,`overflow-y-auto`],[3,`openChange`,`open`]],template:function(e,n){e&1&&(Oi$1(0,`div`,0),Gm(1,`app-header`),Oi$1(2,`div`,1)(3,`aside`,2),Gm(4,`app-sidebar`),Nc(),Oi$1(5,`main`,3),Gm(6,`router-outlet`),Nc()(),Gm(7,`app-status-bar`),Nc(),Oi$1(8,`app-command-palette`,4),vg(`openChange`,function(r){return vS(n.palette.open,r)||(n.palette.open=r),r}),Nc(),Gm(9,`app-toast-viewport`)),e&2&&(ec(8),hg(`open`,n.palette.open))},dependencies:[qn,Ke,Ye,et,Ze,tt],encapsulation:2})}});var za=fk(()=>{Qr();xn();$n();u$1();m(d());ao(nt,hn).catch(i=>console.error(i))});var main_DECBD64Q_default=za();export{main_DECBD64Q_default as default};
@@ -0,0 +1 @@
1
+ .xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black: #000;--color-white: #fff;--spacing: .25rem;--container-xs: 20rem;--container-md: 28rem;--container-xl: 36rem;--container-2xl: 42rem;--container-3xl: 48rem;--container-4xl: 56rem;--container-6xl: 72rem;--text-base: 1rem;--text-base--line-height: 1.5 ;--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--tracking-tight: -.025em;--tracking-wide: .025em;--leading-snug: 1.375;--leading-relaxed: 1.625;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono);--color-ink-950: #ffffff;--color-ink-900: #fbf9f6;--color-ink-850: #f3efe9;--color-ink-800: #e8e2da;--color-ink-750: #d5dae4;--color-ink-700: #c3cad8;--color-ink-600: #9aa4b6;--color-ink-500: #78839a;--color-ink-400: #5a6579;--color-ink-300: #414a5c;--color-ink-200: #2b3341;--color-ink-100: #161b23;--color-accent: #c2552f;--color-ok: #2f7d55;--color-warn: #8a6212;--color-danger: #c0392f;--color-halt: #f59e0b;--color-stopped: #9b2c2c;--color-series-1: #2a78d6;--color-series-2: #d95926;--color-panel: #fffdfa;--breakpoint-sidebar: 900px}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor}@supports (color: color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border-width:0}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-full{top:100%}.right-0{right:0}.right-1{right:var(--spacing)}.right-4{right:calc(var(--spacing) * 4)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-full{bottom:100%}.left-0{left:0}.left-2\.5{left:calc(var(--spacing) * 2.5)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-5{grid-column:span 5 / span 5}.col-span-6{grid-column:span 6 / span 6}.container{width:100%}@media(width>=900px){.container{max-width:900px}}@media(width>=40rem){.container{max-width:40rem}}@media(width>=48rem){.container{max-width:48rem}}@media(width>=64rem){.container{max-width:64rem}}@media(width>=80rem){.container{max-width:80rem}}@media(width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.m-4{margin:calc(var(--spacing) * 4)}.my-1{margin-block:var(--spacing)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.h-28{height:calc(var(--spacing) * 28)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[30vh\]{max-height:30vh}.max-h-\[50vh\]{max-height:50vh}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-96{width:calc(var(--spacing) * 96)}.w-\[22rem\]{width:22rem}.w-\[84px\]{width:84px}.w-\[110px\]{width:110px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[45\%\]{max-width:45%}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-md{max-width:var(--container-md)}.max-w-prose{max-width:65ch}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.basis-full{flex-basis:100%}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[3px\]{--tw-translate-x: 3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y: -100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-\[7\.5rem_1fr_auto\]{grid-template-columns:7.5rem 1fr auto}.grid-cols-\[minmax\(0\,1fr\)_auto_minmax\(0\,1fr\)_7rem_2rem\]{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) 7rem 2rem}.grid-cols-\[minmax\(0\,2fr\)_auto_minmax\(0\,3fr\)_2rem\]{grid-template-columns:minmax(0,2fr) auto minmax(0,3fr) 2rem}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-x-10{column-gap:calc(var(--spacing) * 10)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse: 0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-ink-700>:not(:last-child)){border-color:var(--color-ink-700)}:where(.divide-ink-800>:not(:last-child)){border-color:var(--color-ink-800)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-dashed{--tw-border-style: dashed;border-style:dashed}.border-accent{border-color:var(--color-accent)}.border-accent\/40{border-color:color-mix(in srgb,#c2552f 40%,transparent)}@supports (color: color-mix(in lab,red,red)){.border-accent\/40{border-color:color-mix(in oklab,var(--color-accent) 40%,transparent)}}.border-danger{border-color:var(--color-danger)}.border-danger\/40{border-color:color-mix(in srgb,#c0392f 40%,transparent)}@supports (color: color-mix(in lab,red,red)){.border-danger\/40{border-color:color-mix(in oklab,var(--color-danger) 40%,transparent)}}.border-ink-400{border-color:var(--color-ink-400)}.border-ink-700{border-color:var(--color-ink-700)}.border-ink-800{border-color:var(--color-ink-800)}.border-ok\/40{border-color:color-mix(in srgb,#2f7d55 40%,transparent)}@supports (color: color-mix(in lab,red,red)){.border-ok\/40{border-color:color-mix(in oklab,var(--color-ok) 40%,transparent)}}.border-transparent{border-color:transparent}.border-warn{border-color:var(--color-warn)}.border-warn\/40{border-color:color-mix(in srgb,#8a6212 40%,transparent)}@supports (color: color-mix(in lab,red,red)){.border-warn\/40{border-color:color-mix(in oklab,var(--color-warn) 40%,transparent)}}.bg-accent{background-color:var(--color-accent)}.bg-accent\/5{background-color:color-mix(in srgb,#c2552f 5%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-accent\/5{background-color:color-mix(in oklab,var(--color-accent) 5%,transparent)}}.bg-accent\/10{background-color:color-mix(in srgb,#c2552f 10%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-black\/40{background-color:color-mix(in srgb,#000 40%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:color-mix(in srgb,#000 50%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-danger{background-color:var(--color-danger)}.bg-danger\/10{background-color:color-mix(in srgb,#c0392f 10%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-danger\/10{background-color:color-mix(in oklab,var(--color-danger) 10%,transparent)}}.bg-halt{background-color:var(--color-halt)}.bg-ink-400{background-color:var(--color-ink-400)}.bg-ink-600{background-color:var(--color-ink-600)}.bg-ink-700{background-color:var(--color-ink-700)}.bg-ink-800{background-color:var(--color-ink-800)}.bg-ink-850{background-color:var(--color-ink-850)}.bg-ink-900{background-color:var(--color-ink-900)}.bg-ink-950{background-color:var(--color-ink-950)}.bg-ok{background-color:var(--color-ok)}.bg-ok\/10{background-color:color-mix(in srgb,#2f7d55 10%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-ok\/10{background-color:color-mix(in oklab,var(--color-ok) 10%,transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-series-1{background-color:var(--color-series-1)}.bg-series-2{background-color:var(--color-series-2)}.bg-stopped{background-color:var(--color-stopped)}.bg-transparent{background-color:transparent}.bg-warn\/10{background-color:color-mix(in srgb,#8a6212 10%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-warn\/10{background-color:color-mix(in oklab,var(--color-warn) 10%,transparent)}}.fill-accent{fill:var(--color-accent)}.fill-accent\/15{fill:color-mix(in srgb,#c2552f 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.fill-accent\/15{fill:color-mix(in oklab,var(--color-accent) 15%,transparent)}}.fill-series-1{fill:var(--color-series-1)}.fill-series-1\/15{fill:color-mix(in srgb,#2a78d6 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.fill-series-1\/15{fill:color-mix(in oklab,var(--color-series-1) 15%,transparent)}}.fill-series-2{fill:var(--color-series-2)}.fill-series-2\/15{fill:color-mix(in srgb,#d95926 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.fill-series-2\/15{fill:color-mix(in oklab,var(--color-series-2) 15%,transparent)}}.stroke-accent{stroke:var(--color-accent)}.stroke-ink-600{stroke:var(--color-ink-600)}.stroke-ink-700{stroke:var(--color-ink-700)}.stroke-panel{stroke:var(--color-panel)}.stroke-series-1{stroke:var(--color-series-1)}.stroke-series-2{stroke:var(--color-series-2)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-\[12vh\]{padding-top:12vh}.pr-1{padding-right:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading, var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading, var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading, var(--text-lg--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-\[0\.92em\]{font-size:.92em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.leading-\[1\.6\]{--tw-leading: 1.6;line-height:1.6}.leading-\[1\.7\]{--tw-leading: 1.7;line-height:1.7}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading: var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight: var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking: var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking: var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-ink-100{color:var(--color-ink-100)}.text-ink-200{color:var(--color-ink-200)}.text-ink-300{color:var(--color-ink-300)}.text-ink-400{color:var(--color-ink-400)}.text-ink-500{color:var(--color-ink-500)}.text-ink-600{color:var(--color-ink-600)}.text-ok{color:var(--color-ok)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0%}.opacity-70{opacity:70%}.shadow{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_0_3px_color-mix\(in_oklab\,var\(--color-ok\)_28\%\,transparent\)\]{--tw-shadow: 0 0 0 3px var(--tw-shadow-color, color-mix(in srgb,#2f7d55 28%,transparent));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@supports (color: color-mix(in lab,red,red)){.shadow-\[0_0_0_3px_color-mix\(in_oklab\,var\(--color-ok\)_28\%\,transparent\)\]{--tw-shadow: 0 0 0 3px var(--tw-shadow-color, color-mix(in oklab,var(--color-ok) 28%,transparent))}}.shadow-lg{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\[opacity\,translate\]{transition-property:opacity,translate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-200{--tw-duration: .2s;transition-duration:.2s}.outline-none{--tw-outline-style: none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[localhost\:5000\/app\]{localhost:5000/app}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:100%}}.placeholder\:text-ink-500::placeholder{color:var(--color-ink-500)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0px}@media(hover:hover){.hover\:border-accent:hover{border-color:var(--color-accent)}.hover\:border-danger:hover{border-color:var(--color-danger)}.hover\:border-ink-500:hover{border-color:var(--color-ink-500)}.hover\:border-ink-700:hover{border-color:var(--color-ink-700)}.hover\:bg-danger:hover{background-color:var(--color-danger)}.hover\:bg-danger\/15:hover{background-color:color-mix(in srgb,#c0392f 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.hover\:bg-danger\/15:hover{background-color:color-mix(in oklab,var(--color-danger) 15%,transparent)}}.hover\:bg-ink-750:hover{background-color:var(--color-ink-750)}.hover\:bg-ink-800:hover{background-color:var(--color-ink-800)}.hover\:bg-ink-850:hover{background-color:var(--color-ink-850)}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-ink-100:hover{color:var(--color-ink-100)}.hover\:text-ink-200:hover{color:var(--color-ink-200)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:opacity-100:focus{opacity:100%}.focus-visible\:bg-danger\/15:focus-visible{background-color:color-mix(in srgb,#c0392f 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.focus-visible\:bg-danger\/15:focus-visible{background-color:color-mix(in oklab,var(--color-danger) 15%,transparent)}}.focus-visible\:bg-ink-750:focus-visible{background-color:var(--color-ink-750)}.focus-visible\:text-ink-100:focus-visible{color:var(--color-ink-100)}.focus-visible\:outline-none:focus-visible{--tw-outline-style: none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:40%}.disabled\:opacity-50:disabled{opacity:50%}@media(hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:transparent}}.data-\[active\]\:border-accent[data-active]{border-color:var(--color-accent)}.data-\[active\]\:text-ink-100[data-active]{color:var(--color-ink-100)}.data-\[checked\]\:translate-x-\[19px\][data-checked]{--tw-translate-x: 19px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[checked\]\:border-accent[data-checked]{border-color:var(--color-accent)}.data-\[checked\]\:bg-accent[data-checked]{background-color:var(--color-accent)}.data-\[checked\]\:bg-white[data-checked]{background-color:var(--color-white)}.data-\[state\=closed\]\:translate-x-4[data-state=closed]{--tw-translate-x: calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=closed\]\:opacity-0[data-state=closed]{opacity:0%}.data-\[type\=error\]\:border-danger\/50[data-type=error]{border-color:color-mix(in srgb,#c0392f 50%,transparent)}@supports (color: color-mix(in lab,red,red)){.data-\[type\=error\]\:border-danger\/50[data-type=error]{border-color:color-mix(in oklab,var(--color-danger) 50%,transparent)}}.data-\[type\=success\]\:border-ok\/50[data-type=success]{border-color:color-mix(in srgb,#2f7d55 50%,transparent)}@supports (color: color-mix(in lab,red,red)){.data-\[type\=success\]\:border-ok\/50[data-type=success]{border-color:color-mix(in oklab,var(--color-ok) 50%,transparent)}}@media(width<900px){.max-sidebar\:hidden{display:none}.max-sidebar\:w-13{width:calc(var(--spacing) * 13)}}@media(width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(width>=64rem){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@starting-style{.starting\:translate-y-2{--tw-translate-y: calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.starting\:opacity-0{opacity:0%}}}:root[data-theme=dark]{--color-ink-950: #08090b;--color-ink-900: #0b0d10;--color-ink-850: #101318;--color-ink-800: #151920;--color-ink-750: #1b2029;--color-ink-700: #232935;--color-ink-600: #323a4a;--color-ink-500: #4b566b;--color-ink-400: #6b7689;--color-ink-300: #97a1b2;--color-ink-200: #c3cad6;--color-ink-100: #e6eaf0;--color-accent: #d97757;--color-accent-soft: #f0a888;--color-ok: #4ea87a;--color-warn: #d9a13f;--color-danger: #d9584f;--color-halt: #fbbf24;--color-stopped: #b83a3a;--color-series-1: #3987e5;--color-series-2: #d95926;--color-panel: #101318}:root{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}html,body{height:100%;margin:0;background:var(--color-ink-900);color:var(--color-ink-100);font-family:Verdana,ui-sans-serif,-apple-system,SF Pro Text,Segoe UI,system-ui,sans-serif;font-size:15px;overflow:hidden}*,*:before,*:after{box-sizing:border-box}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-ink-700);border-radius:6px;border:2px solid var(--color-ink-900)}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-600)}@layer components{.mx-btn{display:inline-flex;flex-shrink:0;cursor:pointer;align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-ink-700);background-color:var(--color-ink-800);padding-inline:calc(var(--spacing) * 2.5);padding-block:var(--spacing);font-size:13px;--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-ink-200);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));-webkit-user-select:none;user-select:none}.mx-btn:hover:not(:disabled){border-color:var(--color-ink-600);background-color:var(--color-ink-750);color:var(--color-ink-100)}.mx-btn:disabled{cursor:not-allowed;opacity:40%}.mx-focus:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:var(--color-accent)}}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-divide-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-leading{syntax: "*"; inherits: false;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-tracking{syntax: "*"; inherits: false;}@property --tw-ordinal{syntax: "*"; inherits: false;}@property --tw-slashed-zero{syntax: "*"; inherits: false;}@property --tw-numeric-figure{syntax: "*"; inherits: false;}@property --tw-numeric-spacing{syntax: "*"; inherits: false;}@property --tw-numeric-fraction{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@property --tw-duration{syntax: "*"; inherits: false;}@property --tw-outline-style{syntax: "*"; inherits: false; initial-value: solid;}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-space-y-reverse: 0;--tw-divide-y-reverse: 0;--tw-border-style: solid;--tw-leading: initial;--tw-font-weight: initial;--tw-tracking: initial;--tw-ordinal: initial;--tw-slashed-zero: initial;--tw-numeric-figure: initial;--tw-numeric-spacing: initial;--tw-numeric-fraction: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-duration: initial;--tw-outline-style: solid}}}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutoPrune = exports.AUTO_PRUNE_SELECTION = exports.WEEK_MS = void 0;
4
+ exports.isDue = isDue;
5
+ exports.reclaimedBytes = reclaimedBytes;
6
+ exports.formatSize = formatSize;
7
+ const i18n_1 = require("./i18n");
8
+ /**
9
+ * Vanzelf opruimen (fase 66): eens per week ongetagde images en build cache die niet in gebruik is.
10
+ *
11
+ * Standaard uit. Dezelfde opruiming als de dialoog op het dashboard (fase 8), met alleen de twee
12
+ * soorten die vanzelf terugkomen. Nooit volumes, nooit gestopte containers, nooit images met een tag:
13
+ * die heeft iemand bewust laten staan.
14
+ *
15
+ * Zonder Electron: de bronnen komen als functies binnen, zodat het met een klok te testen is.
16
+ */
17
+ exports.WEEK_MS = 7 * 24 * 60 * 60 * 1000;
18
+ /** Wat er vanzelf opgeruimd wordt: alleen ongetagd, en de build cache. */
19
+ exports.AUTO_PRUNE_SELECTION = {
20
+ containers: false,
21
+ networks: false,
22
+ volumes: false,
23
+ images: true,
24
+ allImages: false,
25
+ buildCache: true,
26
+ };
27
+ /** Of het weer tijd is: nog nooit, of een week geleden. */
28
+ function isDue(last, now) {
29
+ return last === null || now - last >= exports.WEEK_MS;
30
+ }
31
+ /** Hoeveel het opleverde, over de stappen die lukten. */
32
+ function reclaimedBytes(entries) {
33
+ return entries.reduce((sum, entry) => sum + (entry.result.ok ? entry.result.reclaimedBytes : 0), 0);
34
+ }
35
+ /** Bytes zoals je ze leest, in de taal van de app: `1,2 GB`. */
36
+ function formatSize(bytes) {
37
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
38
+ let value = bytes;
39
+ let unit = 0;
40
+ while (value >= 1024 && unit < units.length - 1) {
41
+ value /= 1024;
42
+ unit += 1;
43
+ }
44
+ return `${new Intl.NumberFormat((0, i18n_1.language)(), { maximumFractionDigits: unit === 0 ? 0 : 1 }).format(value)} ${units[unit] ?? 'B'}`;
45
+ }
46
+ class AutoPrune {
47
+ deps;
48
+ running = false;
49
+ constructor(deps) {
50
+ this.deps = deps;
51
+ }
52
+ /** Kijkt of het tijd is, en ruimt dan op. Aan te roepen zo vaak als je wilt. */
53
+ async tick() {
54
+ if (this.running || !this.deps.enabled() || !isDue(this.deps.last(), this.deps.now())) {
55
+ return;
56
+ }
57
+ this.running = true;
58
+ try {
59
+ const entries = await this.deps.prune(exports.AUTO_PRUNE_SELECTION);
60
+ // Ook als er niets was: anders probeert hij het bij elke tik opnieuw.
61
+ this.deps.record(this.deps.now());
62
+ const bytes = reclaimedBytes(entries);
63
+ if (bytes > 0) {
64
+ this.deps.notify(bytes);
65
+ }
66
+ }
67
+ catch {
68
+ // De daemon was er niet; dan de volgende tik opnieuw, zonder iets te onthouden.
69
+ }
70
+ finally {
71
+ this.running = false;
72
+ }
73
+ }
74
+ }
75
+ exports.AutoPrune = AutoPrune;
76
+ //# sourceMappingURL=auto-prune.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-prune.js","sourceRoot":"","sources":["../electron/auto-prune.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,10 @@ exports.CHANNELS = {
21
21
  containersAttention: 'containers:attention',
22
22
  containersMemoryLimit: 'containers:memoryLimit',
23
23
  containersSetMemoryLimit: 'containers:setMemoryLimit',
24
+ containersRename: 'containers:rename',
25
+ containersCommit: 'containers:commit',
24
26
  containersCpuLimit: 'containers:cpuLimit',
27
+ containersEnvironment: 'containers:environment',
25
28
  containersSetCpuLimit: 'containers:setCpuLimit',
26
29
  containersSaveLogs: 'containers:saveLogs',
27
30
  containersRunCommand: 'containers:runCommand',
@@ -46,6 +49,10 @@ exports.CHANNELS = {
46
49
  imagesRun: 'images:run',
47
50
  imagesPull: 'images:pull',
48
51
  imagesPullClose: 'images:pullClose',
52
+ imagesTag: 'images:tag',
53
+ imagesUntag: 'images:untag',
54
+ /** Een push (fase 69); de voortgang gaat over imagesPullProgress, gesloten met imagesPullClose. */
55
+ imagesPush: 'images:push',
49
56
  imagesCheckUpdates: 'images:checkUpdates',
50
57
  imagesStale: 'images:stale',
51
58
  imagesRenew: 'images:renew',
@@ -64,6 +71,8 @@ exports.CHANNELS = {
64
71
  volumesCloseBrowser: 'volumes:closeBrowser',
65
72
  volumesBackup: 'volumes:backup',
66
73
  volumesRestore: 'volumes:restore',
74
+ volumesUsers: 'volumes:users',
75
+ volumesCopy: 'volumes:copy',
67
76
  networksList: 'networks:list',
68
77
  networksCreate: 'networks:create',
69
78
  networksRemove: 'networks:remove',
@@ -1 +1 @@
1
- {"version":3,"file":"channels.js","sourceRoot":"","sources":["../electron/channels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../electron/channels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.commitContainer = commitContainer;
4
+ const docker_client_1 = require("./docker-client");
5
+ const i18n_1 = require("./i18n");
6
+ const image_reference_1 = require("./image-reference");
7
+ /**
8
+ * Een container als image bewaren (fase 68): `/commit`, zoals `docker commit`.
9
+ *
10
+ * Met `pause`, net als de CLI standaard doet: een draaiende container staat even stil, zodat er
11
+ * geen half geschreven bestand in de image komt. Volumes en bind mounts horen niet bij de
12
+ * container en komen er dus niet in; dat zegt de dialoog erbij.
13
+ */
14
+ /** Bewaart de container onder `reference` (`naam` of `naam:tag`) en geeft de korte id van de nieuwe image. */
15
+ async function commitContainer(id, reference) {
16
+ const wanted = reference.trim();
17
+ if (!(0, image_reference_1.isReference)(wanted)) {
18
+ return {
19
+ ok: false,
20
+ problem: (0, i18n_1.t)({
21
+ en: 'An image name is in lowercase, like my-app or registry.example.com/team/app, optionally followed by :tag.',
22
+ nl: 'Een imagenaam is in kleine letters, zoals mijn-app of registry.example.com/team/app, eventueel gevolgd door :tag.',
23
+ de: 'Ein Image-Name ist kleingeschrieben, etwa mein-app oder registry.example.com/team/app, optional gefolgt von :tag.',
24
+ fr: 'Un nom d’image est en minuscules, comme mon-app ou registry.example.com/equipe/app, suivi éventuellement de :tag.',
25
+ es: 'Un nombre de imagen va en minúsculas, como mi-app o registry.example.com/equipo/app, seguido opcionalmente de :tag.',
26
+ }),
27
+ };
28
+ }
29
+ const { repository, tag } = (0, image_reference_1.splitReference)(wanted);
30
+ try {
31
+ const created = (await (0, docker_client_1.getConnection)().docker.getContainer(id).commit({ repo: repository, tag, pause: true }));
32
+ const imageId = (created.Id ?? '').replace(/^sha256:/, '').slice(0, 12);
33
+ return { ok: true, reference: `${repository}:${tag}`, imageId };
34
+ }
35
+ catch (err) {
36
+ return { ok: false, problem: (0, docker_client_1.readableError)(err, (0, docker_client_1.getConnection)().endpoint).message };
37
+ }
38
+ }
39
+ //# sourceMappingURL=container-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-commit.js","sourceRoot":"","sources":["../electron/container-commit.ts"],"names":[],"mappings":";;AAcA,0CA2BC;AAxCD,mDAA+D;AAC/D,iCAA2B;AAC3B,uDAAgE;AAEhE;;;;;;GAMG;AAEH,8GAA8G;AACvG,KAAK,UAAU,eAAe,CAAC,EAAU,EAAE,SAAiB;IAEjE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAEhC,IAAI,CAAC,IAAA,6BAAW,EAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAA,QAAC,EAAC;gBACT,EAAE,EAAE,2GAA2G;gBAC/G,EAAE,EAAE,mHAAmH;gBACvH,EAAE,EAAE,mHAAmH;gBACvH,EAAE,EAAE,mHAAmH;gBACvH,EAAE,EAAE,qHAAqH;aAC1H,CAAC;SACH,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAA,gCAAc,EAAC,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,IAAA,6BAAa,GAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAoB,CAAC;QAClI,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAExE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAA,6BAAa,EAAC,GAAG,EAAE,IAAA,6BAAa,GAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IACtF,CAAC;AACH,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONTAINER_NAME = void 0;
4
+ exports.isContainerName = isContainerName;
5
+ exports.renameContainer = renameContainer;
6
+ const docker_client_1 = require("./docker-client");
7
+ const i18n_1 = require("./i18n");
8
+ /**
9
+ * Een container hernoemen (fase 67): `/containers/{id}/rename`, draaiend of niet.
10
+ *
11
+ * De gebeurtenis `rename` neemt de geschiedenis van de oude naam mee (fase 35); de eigen groepen
12
+ * hangen aan de naam en verhuist de renderer zelf.
13
+ *
14
+ * Een compose-container herkent compose aan zijn labels, niet aan zijn naam: `up` laat hem staan
15
+ * zolang er niets verandert, en pas als compose hem opnieuw maakt, krijgt hij de naam uit het
16
+ * project terug (nagekeken met compose 2 op Docker 29). De dialoog zegt dat erbij.
17
+ */
18
+ /** Wat Docker als containernaam toestaat: minstens twee tekens, met een letter of cijfer voorop. */
19
+ exports.CONTAINER_NAME = /^[a-zA-Z0-9][a-zA-Z0-9_.-]+$/;
20
+ /** Of Docker deze naam zou aannemen; een `/` ervoor, zoals in de lijst van de API, telt niet mee. */
21
+ function isContainerName(name) {
22
+ return exports.CONTAINER_NAME.test(name);
23
+ }
24
+ /** Hernoemt de container. Een naam die al bestaat, weigert hij voordat Docker het doet. */
25
+ async function renameContainer(id, name) {
26
+ const wanted = name.trim();
27
+ if (!isContainerName(wanted)) {
28
+ return {
29
+ ok: false,
30
+ problem: (0, i18n_1.t)({
31
+ en: 'A container name has at least two characters: a letter or digit, followed by letters, digits, _ . or -.',
32
+ nl: 'Een containernaam heeft minstens twee tekens: een letter of cijfer, gevolgd door letters, cijfers, _ . of -.',
33
+ de: 'Ein Containername hat mindestens zwei Zeichen: einen Buchstaben oder eine Ziffer, gefolgt von Buchstaben, Ziffern, _ . oder -.',
34
+ fr: 'Un nom de conteneur a au moins deux caractères : une lettre ou un chiffre, suivi de lettres, chiffres, _ . ou -.',
35
+ es: 'Un nombre de contenedor tiene al menos dos caracteres: una letra o cifra, seguida de letras, cifras, _ . o -.',
36
+ }),
37
+ };
38
+ }
39
+ const { docker } = (0, docker_client_1.getConnection)();
40
+ try {
41
+ // Het filter op naam is een deelstring; alleen een precieze treffer bij een andere container telt.
42
+ const listed = await docker.listContainers({ all: true, filters: { name: [wanted] } });
43
+ const other = listed.find((container) => container.Id !== id && container.Names.some((known) => known.replace(/^\//, '') === wanted));
44
+ if (other !== undefined) {
45
+ return {
46
+ ok: false,
47
+ problem: (0, i18n_1.t)({
48
+ en: `There already is a container named ${wanted}.`,
49
+ nl: `Er is al een container ${wanted}.`,
50
+ de: `Es gibt bereits einen Container ${wanted}.`,
51
+ fr: `Un conteneur ${wanted} existe déjà.`,
52
+ es: `Ya existe un contenedor ${wanted}.`,
53
+ }),
54
+ };
55
+ }
56
+ await docker.getContainer(id).rename({ name: wanted });
57
+ return { ok: true };
58
+ }
59
+ catch (err) {
60
+ return { ok: false, problem: (0, docker_client_1.readableError)(err, (0, docker_client_1.getConnection)().endpoint).message };
61
+ }
62
+ }
63
+ //# sourceMappingURL=container-rename.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-rename.js","sourceRoot":"","sources":["../electron/container-rename.ts"],"names":[],"mappings":";;;AAmBA,0CAGC;AAGD,0CA2CC;AAnED,mDAA+D;AAC/D,iCAA2B;AAE3B;;;;;;;;;GASG;AAEH,oGAAoG;AACvF,QAAA,cAAc,GAAG,8BAA8B,CAAC;AAE7D,qGAAqG;AACrG,SAAgB,eAAe,CAAC,IAAY;IAE1C,OAAO,sBAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,2FAA2F;AACpF,KAAK,UAAU,eAAe,CAAC,EAAU,EAAE,IAAY;IAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAA,QAAC,EAAC;gBACT,EAAE,EAAE,yGAAyG;gBAC7G,EAAE,EAAE,8GAA8G;gBAClH,EAAE,EAAE,gIAAgI;gBACpI,EAAE,EAAE,kHAAkH;gBACtH,EAAE,EAAE,+GAA+G;aACpH,CAAC;SACH,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,6BAAa,GAAE,CAAC;IAEnC,IAAI,CAAC;QACH,mGAAmG;QACnG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;QAEtI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAA,QAAC,EAAC;oBACT,EAAE,EAAE,sCAAsC,MAAM,GAAG;oBACnD,EAAE,EAAE,0BAA0B,MAAM,GAAG;oBACvC,EAAE,EAAE,mCAAmC,MAAM,GAAG;oBAChD,EAAE,EAAE,gBAAgB,MAAM,eAAe;oBACzC,EAAE,EAAE,2BAA2B,MAAM,GAAG;iBACzC,CAAC;aACH,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAA,6BAAa,EAAC,GAAG,EAAE,IAAA,6BAAa,GAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IACtF,CAAC;AACH,CAAC"}