loki-mode 6.44.1 → 6.45.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.
- package/SKILL.md +2 -2
- package/VERSION +1 -1
- package/autonomy/loki +30 -18
- package/dashboard/__init__.py +1 -1
- package/docs/INSTALLATION.md +1 -1
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
- package/web-app/dist/assets/{Badge-DTFBYZoA.js → Badge-D1-tb3Ci.js} +1 -1
- package/web-app/dist/assets/Button-DUExR4iB.js +6 -0
- package/web-app/dist/assets/{Card-CL6xo_RX.js → Card-LXXTWpme.js} +1 -1
- package/web-app/dist/assets/{HomePage-1Ccs1i0m.js → HomePage-C3QLIWSC.js} +1 -1
- package/web-app/dist/assets/ProjectPage-CkFeNhXf.js +162 -0
- package/web-app/dist/assets/{ProjectsPage-DEP-ZiW7.js → ProjectsPage-CzyuQptX.js} +2 -7
- package/web-app/dist/assets/{SettingsPage-CULNMl6W.js → SettingsPage-BwpQIkqM.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-DdrBEy9w.js → TemplatesPage-D5h6cG1N.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-C3fQIXqq.js → TerminalOutput-CnXPLmFM.js} +1 -1
- package/web-app/dist/assets/{clock-D5NTAxeP.js → clock-DRfchEI9.js} +1 -1
- package/web-app/dist/assets/{external-link-CSO4H-LC.js → external-link-CS_9f84I.js} +1 -1
- package/web-app/dist/assets/index-BZpAV5M8.css +1 -0
- package/web-app/dist/assets/{index-DvhjaUe4.js → index-HocOQZ9L.js} +17 -17
- package/web-app/dist/index.html +2 -2
- package/web-app/server.py +327 -61
- package/web-app/dist/assets/Button-NSmP6YCA.js +0 -1
- package/web-app/dist/assets/ProjectPage-wby1itP1.js +0 -141
- package/web-app/dist/assets/index-BLBd5LBk.css +0 -1
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
var Mt=e=>{throw TypeError(e)};var Pt=(e,t,n)=>t.has(e)||Mt("Cannot "+n);var Ee=(e,t,n)=>(Pt(e,t,"read from private field"),n?n.call(e):t.get(e)),Et=(e,t,n)=>t.has(e)?Mt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Lt=(e,t,n,r)=>(Pt(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);import{c as H,r as u,W as je,j as a,a as W,B as Rt,S as Wn,d as Un,u as Gn}from"./index-DvhjaUe4.js";import{T as Kn,P as Xn,a as Qn,S as Yn,E as Jn}from"./TerminalOutput-C3fQIXqq.js";import{B as Ge}from"./Button-NSmP6YCA.js";import{C as Zn,a as er}from"./clock-D5NTAxeP.js";import{E as tr}from"./external-link-CSO4H-LC.js";/**
|
|
2
|
-
* @license lucide-react v0.577.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const nr=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],rr=H("arrow-left",nr);/**
|
|
7
|
-
* @license lucide-react v0.577.0 - ISC
|
|
8
|
-
*
|
|
9
|
-
* This source code is licensed under the ISC license.
|
|
10
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/const ar=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],or=H("arrow-right",ar);/**
|
|
12
|
-
* @license lucide-react v0.577.0 - ISC
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the ISC license.
|
|
15
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/const sr=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],ir=H("bot",sr);/**
|
|
17
|
-
* @license lucide-react v0.577.0 - ISC
|
|
18
|
-
*
|
|
19
|
-
* This source code is licensed under the ISC license.
|
|
20
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
-
*/const lr=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],cr=H("chevron-down",lr);/**
|
|
22
|
-
* @license lucide-react v0.577.0 - ISC
|
|
23
|
-
*
|
|
24
|
-
* This source code is licensed under the ISC license.
|
|
25
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
-
*/const ur=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],dr=H("chevron-right",ur);/**
|
|
27
|
-
* @license lucide-react v0.577.0 - ISC
|
|
28
|
-
*
|
|
29
|
-
* This source code is licensed under the ISC license.
|
|
30
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
31
|
-
*/const fr=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],pr=H("code-xml",fr);/**
|
|
32
|
-
* @license lucide-react v0.577.0 - ISC
|
|
33
|
-
*
|
|
34
|
-
* This source code is licensed under the ISC license.
|
|
35
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
36
|
-
*/const hr=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],He=H("eye",hr);/**
|
|
37
|
-
* @license lucide-react v0.577.0 - ISC
|
|
38
|
-
*
|
|
39
|
-
* This source code is licensed under the ISC license.
|
|
40
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
41
|
-
*/const mr=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]],xr=H("file-braces",mr);/**
|
|
42
|
-
* @license lucide-react v0.577.0 - ISC
|
|
43
|
-
*
|
|
44
|
-
* This source code is licensed under the ISC license.
|
|
45
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
46
|
-
*/const gr=[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]],ae=H("file-code-corner",gr);/**
|
|
47
|
-
* @license lucide-react v0.577.0 - ISC
|
|
48
|
-
*
|
|
49
|
-
* This source code is licensed under the ISC license.
|
|
50
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
51
|
-
*/const vr=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]],br=H("file-code",vr);/**
|
|
52
|
-
* @license lucide-react v0.577.0 - ISC
|
|
53
|
-
*
|
|
54
|
-
* This source code is licensed under the ISC license.
|
|
55
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
56
|
-
*/const yr=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]],wr=H("file-plus",yr);/**
|
|
57
|
-
* @license lucide-react v0.577.0 - ISC
|
|
58
|
-
*
|
|
59
|
-
* This source code is licensed under the ISC license.
|
|
60
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
61
|
-
*/const jr=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],nn=H("file-text",jr);/**
|
|
62
|
-
* @license lucide-react v0.577.0 - ISC
|
|
63
|
-
*
|
|
64
|
-
* This source code is licensed under the ISC license.
|
|
65
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
66
|
-
*/const Sr=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M11 18h2",key:"12mj7e"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5",key:"qbrxap"}]],kr=H("file-type",Sr);/**
|
|
67
|
-
* @license lucide-react v0.577.0 - ISC
|
|
68
|
-
*
|
|
69
|
-
* This source code is licensed under the ISC license.
|
|
70
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
71
|
-
*/const zr=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],Cr=H("file",zr);/**
|
|
72
|
-
* @license lucide-react v0.577.0 - ISC
|
|
73
|
-
*
|
|
74
|
-
* This source code is licensed under the ISC license.
|
|
75
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
76
|
-
*/const Nr=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],Mr=H("folder-open",Nr);/**
|
|
77
|
-
* @license lucide-react v0.577.0 - ISC
|
|
78
|
-
*
|
|
79
|
-
* This source code is licensed under the ISC license.
|
|
80
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
81
|
-
*/const Pr=[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],Er=H("folder-plus",Pr);/**
|
|
82
|
-
* @license lucide-react v0.577.0 - ISC
|
|
83
|
-
*
|
|
84
|
-
* This source code is licensed under the ISC license.
|
|
85
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
86
|
-
*/const Lr=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],Rr=H("folder",Lr);/**
|
|
87
|
-
* @license lucide-react v0.577.0 - ISC
|
|
88
|
-
*
|
|
89
|
-
* This source code is licensed under the ISC license.
|
|
90
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
91
|
-
*/const Or=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],Dr=H("key-round",Or);/**
|
|
92
|
-
* @license lucide-react v0.577.0 - ISC
|
|
93
|
-
*
|
|
94
|
-
* This source code is licensed under the ISC license.
|
|
95
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
96
|
-
*/const $r=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Ir=H("message-square",$r);/**
|
|
97
|
-
* @license lucide-react v0.577.0 - ISC
|
|
98
|
-
*
|
|
99
|
-
* This source code is licensed under the ISC license.
|
|
100
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
101
|
-
*/const Tr=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Fr=H("rotate-cw",Tr);/**
|
|
102
|
-
* @license lucide-react v0.577.0 - ISC
|
|
103
|
-
*
|
|
104
|
-
* This source code is licensed under the ISC license.
|
|
105
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
106
|
-
*/const Ar=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],_r=H("send",Ar);/**
|
|
107
|
-
* @license lucide-react v0.577.0 - ISC
|
|
108
|
-
*
|
|
109
|
-
* This source code is licensed under the ISC license.
|
|
110
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
111
|
-
*/const Br=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Hr=H("shield-check",Br);/**
|
|
112
|
-
* @license lucide-react v0.577.0 - ISC
|
|
113
|
-
*
|
|
114
|
-
* This source code is licensed under the ISC license.
|
|
115
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
116
|
-
*/const Vr=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],qr=H("terminal",Vr);/**
|
|
117
|
-
* @license lucide-react v0.577.0 - ISC
|
|
118
|
-
*
|
|
119
|
-
* This source code is licensed under the ISC license.
|
|
120
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
121
|
-
*/const Wr=[["path",{d:"M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3",key:"1ub6xw"}],["path",{d:"m16 2 6 6",key:"1gw87d"}],["path",{d:"M12 16H4",key:"1cjfip"}]],rt=H("test-tube-diagonal",Wr);/**
|
|
122
|
-
* @license lucide-react v0.577.0 - ISC
|
|
123
|
-
*
|
|
124
|
-
* This source code is licensed under the ISC license.
|
|
125
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
126
|
-
*/const Ur=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Gr=H("trash-2",Ur);/**
|
|
127
|
-
* @license lucide-react v0.577.0 - ISC
|
|
128
|
-
*
|
|
129
|
-
* This source code is licensed under the ISC license.
|
|
130
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
131
|
-
*/const Kr=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Xe=H("x",Kr);function Ot(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Xr(e){if(Array.isArray(e))return e}function Qr(e,t,n){return(t=ra(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Yr(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,o,s,d,i=[],l=!0,c=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(l=(r=s.call(n)).done)&&(i.push(r.value),i.length!==t);l=!0);}catch(p){c=!0,o=p}finally{try{if(!l&&n.return!=null&&(d=n.return(),Object(d)!==d))return}finally{if(c)throw o}}return i}}function Jr(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
132
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function $t(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Dt(Object(n),!0).forEach(function(r){Qr(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dt(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Zr(e,t){if(e==null)return{};var n,r,o=ea(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ea(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function ta(e,t){return Xr(e)||Yr(e,t)||aa(e,t)||Jr()}function na(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ra(e){var t=na(e,"string");return typeof t=="symbol"?t:t+""}function aa(e,t){if(e){if(typeof e=="string")return Ot(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ot(e,t):void 0}}function oa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function It(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Tt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?It(Object(n),!0).forEach(function(r){oa(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):It(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function sa(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(r){return t.reduceRight(function(o,s){return s(o)},r)}}function Le(e){return function t(){for(var n=this,r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];return o.length>=e.length?e.apply(this,o):function(){for(var d=arguments.length,i=new Array(d),l=0;l<d;l++)i[l]=arguments[l];return t.apply(n,[].concat(o,i))}}}function Qe(e){return{}.toString.call(e).includes("Object")}function ia(e){return!Object.keys(e).length}function Ie(e){return typeof e=="function"}function la(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ca(e,t){return Qe(t)||le("changeType"),Object.keys(t).some(function(n){return!la(e,n)})&&le("changeField"),t}function ua(e){Ie(e)||le("selectorType")}function da(e){Ie(e)||Qe(e)||le("handlerType"),Qe(e)&&Object.values(e).some(function(t){return!Ie(t)})&&le("handlersType")}function fa(e){e||le("initialIsRequired"),Qe(e)||le("initialType"),ia(e)&&le("initialContent")}function pa(e,t){throw new Error(e[t]||e.default)}var ha={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},le=Le(pa)(ha),Ve={changes:ca,selector:ua,handler:da,initial:fa};function ma(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Ve.initial(e),Ve.handler(t);var n={current:e},r=Le(va)(n,t),o=Le(ga)(n),s=Le(Ve.changes)(e),d=Le(xa)(n);function i(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(p){return p};return Ve.selector(c),c(n.current)}function l(c){sa(r,o,s,d)(c)}return[i,l]}function xa(e,t){return Ie(t)?t(e.current):t}function ga(e,t){return e.current=Tt(Tt({},e.current),t),t}function va(e,t,n){return Ie(t)?t(e.current):Object.keys(n).forEach(function(r){var o;return(o=t[r])===null||o===void 0?void 0:o.call(t,e.current[r])}),n}var ba={create:ma},ya={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function wa(e){return function t(){for(var n=this,r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];return o.length>=e.length?e.apply(this,o):function(){for(var d=arguments.length,i=new Array(d),l=0;l<d;l++)i[l]=arguments[l];return t.apply(n,[].concat(o,i))}}}function ja(e){return{}.toString.call(e).includes("Object")}function Sa(e){return e||Ft("configIsRequired"),ja(e)||Ft("configType"),e.urls?(ka(),{paths:{vs:e.urls.monacoBase}}):e}function ka(){console.warn(rn.deprecation)}function za(e,t){throw new Error(e[t]||e.default)}var rn={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
|
|
133
|
-
You are using deprecated way of configuration.
|
|
134
|
-
|
|
135
|
-
Instead of using
|
|
136
|
-
monaco.config({ urls: { monacoBase: '...' } })
|
|
137
|
-
use
|
|
138
|
-
monaco.config({ paths: { vs: '...' } })
|
|
139
|
-
|
|
140
|
-
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
|
|
141
|
-
`},Ft=wa(za)(rn),Ca={config:Sa},Na=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(o){return n.reduceRight(function(s,d){return d(s)},o)}};function an(e,t){return Object.keys(t).forEach(function(n){t[n]instanceof Object&&e[n]&&Object.assign(t[n],an(e[n],t[n]))}),$t($t({},e),t)}var Ma={type:"cancelation",msg:"operation is manually canceled"};function at(e){var t=!1,n=new Promise(function(r,o){e.then(function(s){return t?o(Ma):r(s)}),e.catch(o)});return n.cancel=function(){return t=!0},n}var Pa=["monaco"],Ea=ba.create({config:ya,isInitialized:!1,resolve:null,reject:null,monaco:null}),on=ta(Ea,2),Fe=on[0],Ye=on[1];function La(e){var t=Ca.config(e),n=t.monaco,r=Zr(t,Pa);Ye(function(o){return{config:an(o.config,r),monaco:n}})}function Ra(){var e=Fe(function(t){var n=t.monaco,r=t.isInitialized,o=t.resolve;return{monaco:n,isInitialized:r,resolve:o}});if(!e.isInitialized){if(Ye({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),at(ot);if(window.monaco&&window.monaco.editor)return sn(window.monaco),e.resolve(window.monaco),at(ot);Na(Oa,$a)(Ia)}return at(ot)}function Oa(e){return document.body.appendChild(e)}function Da(e){var t=document.createElement("script");return e&&(t.src=e),t}function $a(e){var t=Fe(function(r){var o=r.config,s=r.reject;return{config:o,reject:s}}),n=Da("".concat(t.config.paths.vs,"/loader.js"));return n.onload=function(){return e()},n.onerror=t.reject,n}function Ia(){var e=Fe(function(n){var r=n.config,o=n.resolve,s=n.reject;return{config:r,resolve:o,reject:s}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(n){var r=n.m||n;sn(r),e.resolve(r)},function(n){e.reject(n)})}function sn(e){Fe().monaco||Ye({monaco:e})}function Ta(){return Fe(function(e){var t=e.monaco;return t})}var ot=new Promise(function(e,t){return Ye({resolve:e,reject:t})}),ln={config:La,init:Ra,__getMonacoInstance:Ta},Fa={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},st=Fa,Aa={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},_a=Aa;function Ba({children:e}){return je.createElement("div",{style:_a.container},e)}var Ha=Ba,Va=Ha;function qa({width:e,height:t,isEditorReady:n,loading:r,_ref:o,className:s,wrapperProps:d}){return je.createElement("section",{style:{...st.wrapper,width:e,height:t},...d},!n&&je.createElement(Va,null,r),je.createElement("div",{ref:o,style:{...st.fullWidth,...!n&&st.hide},className:s}))}var Wa=qa,cn=u.memo(Wa);function Ua(e){u.useEffect(e,[])}var un=Ua;function Ga(e,t,n=!0){let r=u.useRef(!0);u.useEffect(r.current||!n?()=>{r.current=!1}:e,t)}var X=Ga;function De(){}function ye(e,t,n,r){return Ka(e,r)||Xa(e,t,n,r)}function Ka(e,t){return e.editor.getModel(dn(e,t))}function Xa(e,t,n,r){return e.editor.createModel(t,n,r?dn(e,r):void 0)}function dn(e,t){return e.Uri.parse(t)}function Qa({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:o,originalModelPath:s,modifiedModelPath:d,keepCurrentOriginalModel:i=!1,keepCurrentModifiedModel:l=!1,theme:c="light",loading:p="Loading...",options:v={},height:m="100%",width:y="100%",className:j,wrapperProps:x={},beforeMount:w=De,onMount:b=De}){let[h,z]=u.useState(!1),[S,g]=u.useState(!0),M=u.useRef(null),C=u.useRef(null),$=u.useRef(null),_=u.useRef(b),L=u.useRef(w),P=u.useRef(!1);un(()=>{let k=ln.init();return k.then(O=>(C.current=O)&&g(!1)).catch(O=>(O==null?void 0:O.type)!=="cancelation"&&console.error("Monaco initialization: error:",O)),()=>M.current?I():k.cancel()}),X(()=>{if(M.current&&C.current){let k=M.current.getOriginalEditor(),O=ye(C.current,e||"",r||n||"text",s||"");O!==k.getModel()&&k.setModel(O)}},[s],h),X(()=>{if(M.current&&C.current){let k=M.current.getModifiedEditor(),O=ye(C.current,t||"",o||n||"text",d||"");O!==k.getModel()&&k.setModel(O)}},[d],h),X(()=>{let k=M.current.getModifiedEditor();k.getOption(C.current.editor.EditorOption.readOnly)?k.setValue(t||""):t!==k.getValue()&&(k.executeEdits("",[{range:k.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),k.pushUndoStop())},[t],h),X(()=>{var k,O;(O=(k=M.current)==null?void 0:k.getModel())==null||O.original.setValue(e||"")},[e],h),X(()=>{let{original:k,modified:O}=M.current.getModel();C.current.editor.setModelLanguage(k,r||n||"text"),C.current.editor.setModelLanguage(O,o||n||"text")},[n,r,o],h),X(()=>{var k;(k=C.current)==null||k.editor.setTheme(c)},[c],h),X(()=>{var k;(k=M.current)==null||k.updateOptions(v)},[v],h);let E=u.useCallback(()=>{var q;if(!C.current)return;L.current(C.current);let k=ye(C.current,e||"",r||n||"text",s||""),O=ye(C.current,t||"",o||n||"text",d||"");(q=M.current)==null||q.setModel({original:k,modified:O})},[n,t,o,e,r,s,d]),F=u.useCallback(()=>{var k;!P.current&&$.current&&(M.current=C.current.editor.createDiffEditor($.current,{automaticLayout:!0,...v}),E(),(k=C.current)==null||k.editor.setTheme(c),z(!0),P.current=!0)},[v,c,E]);u.useEffect(()=>{h&&_.current(M.current,C.current)},[h]),u.useEffect(()=>{!S&&!h&&F()},[S,h,F]);function I(){var O,q,Y,te;let k=(O=M.current)==null?void 0:O.getModel();i||((q=k==null?void 0:k.original)==null||q.dispose()),l||((Y=k==null?void 0:k.modified)==null||Y.dispose()),(te=M.current)==null||te.dispose()}return je.createElement(cn,{width:y,height:m,isEditorReady:h,loading:p,_ref:$,className:j,wrapperProps:x})}var Ya=Qa;u.memo(Ya);function Ja(e){let t=u.useRef();return u.useEffect(()=>{t.current=e},[e]),t.current}var Za=Ja,qe=new Map;function eo({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:o,path:s,theme:d="light",line:i,loading:l="Loading...",options:c={},overrideServices:p={},saveViewState:v=!0,keepCurrentModel:m=!1,width:y="100%",height:j="100%",className:x,wrapperProps:w={},beforeMount:b=De,onMount:h=De,onChange:z,onValidate:S=De}){let[g,M]=u.useState(!1),[C,$]=u.useState(!0),_=u.useRef(null),L=u.useRef(null),P=u.useRef(null),E=u.useRef(h),F=u.useRef(b),I=u.useRef(),k=u.useRef(r),O=Za(s),q=u.useRef(!1),Y=u.useRef(!1);un(()=>{let R=ln.init();return R.then(D=>(_.current=D)&&$(!1)).catch(D=>(D==null?void 0:D.type)!=="cancelation"&&console.error("Monaco initialization: error:",D)),()=>L.current?ne():R.cancel()}),X(()=>{var D,V,G,J;let R=ye(_.current,e||r||"",t||o||"",s||n||"");R!==((D=L.current)==null?void 0:D.getModel())&&(v&&qe.set(O,(V=L.current)==null?void 0:V.saveViewState()),(G=L.current)==null||G.setModel(R),v&&((J=L.current)==null||J.restoreViewState(qe.get(s))))},[s],g),X(()=>{var R;(R=L.current)==null||R.updateOptions(c)},[c],g),X(()=>{!L.current||r===void 0||(L.current.getOption(_.current.editor.EditorOption.readOnly)?L.current.setValue(r):r!==L.current.getValue()&&(Y.current=!0,L.current.executeEdits("",[{range:L.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),L.current.pushUndoStop(),Y.current=!1))},[r],g),X(()=>{var D,V;let R=(D=L.current)==null?void 0:D.getModel();R&&o&&((V=_.current)==null||V.editor.setModelLanguage(R,o))},[o],g),X(()=>{var R;i!==void 0&&((R=L.current)==null||R.revealLine(i))},[i],g),X(()=>{var R;(R=_.current)==null||R.editor.setTheme(d)},[d],g);let te=u.useCallback(()=>{var R;if(!(!P.current||!_.current)&&!q.current){F.current(_.current);let D=s||n,V=ye(_.current,r||e||"",t||o||"",D||"");L.current=(R=_.current)==null?void 0:R.editor.create(P.current,{model:V,automaticLayout:!0,...c},p),v&&L.current.restoreViewState(qe.get(D)),_.current.editor.setTheme(d),i!==void 0&&L.current.revealLine(i),M(!0),q.current=!0}},[e,t,n,r,o,s,c,p,v,d,i]);u.useEffect(()=>{g&&E.current(L.current,_.current)},[g]),u.useEffect(()=>{!C&&!g&&te()},[C,g,te]),k.current=r,u.useEffect(()=>{var R,D;g&&z&&((R=I.current)==null||R.dispose(),I.current=(D=L.current)==null?void 0:D.onDidChangeModelContent(V=>{Y.current||z(L.current.getValue(),V)}))},[g,z]),u.useEffect(()=>{if(g){let R=_.current.editor.onDidChangeMarkers(D=>{var G;let V=(G=L.current.getModel())==null?void 0:G.uri;if(V&&D.find(J=>J.path===V.path)){let J=_.current.editor.getModelMarkers({resource:V});S==null||S(J)}});return()=>{R==null||R.dispose()}}return()=>{}},[g,S]);function ne(){var R,D;(R=I.current)==null||R.dispose(),m?v&&qe.set(s,L.current.saveViewState()):(D=L.current.getModel())==null||D.dispose(),L.current.dispose()}return je.createElement(cn,{width:y,height:j,isEditorReady:g,loading:l,_ref:P,className:x,wrapperProps:w})}var to=eo,no=u.memo(to),ro=no;function ao(e,t){const n=getComputedStyle(e),r=parseFloat(n.fontSize);return t*r}function oo(e,t){const n=getComputedStyle(e.ownerDocument.body),r=parseFloat(n.fontSize);return t*r}function so(e){return e/100*window.innerHeight}function io(e){return e/100*window.innerWidth}function lo(e){switch(typeof e){case"number":return[e,"px"];case"string":{const t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}function Re({groupSize:e,panelElement:t,styleProp:n}){let r;const[o,s]=lo(n);switch(s){case"%":{r=o/100*e;break}case"px":{r=o;break}case"rem":{r=oo(t,o);break}case"em":{r=ao(t,o);break}case"vh":{r=so(o);break}case"vw":{r=io(o);break}}return r}function K(e){return parseFloat(e.toFixed(3))}function ze({group:e}){const{orientation:t,panels:n}=e;return n.reduce((r,o)=>(r+=t==="horizontal"?o.element.offsetWidth:o.element.offsetHeight,r),0)}function lt(e){const{panels:t}=e,n=ze({group:e});return n===0?t.map(r=>({groupResizeBehavior:r.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:r.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:r.panelConstraints.disabled,minSize:0,maxSize:100,panelId:r.id})):t.map(r=>{const{element:o,panelConstraints:s}=r;let d=0;if(s.collapsedSize!==void 0){const p=Re({groupSize:n,panelElement:o,styleProp:s.collapsedSize});d=K(p/n*100)}let i;if(s.defaultSize!==void 0){const p=Re({groupSize:n,panelElement:o,styleProp:s.defaultSize});i=K(p/n*100)}let l=0;if(s.minSize!==void 0){const p=Re({groupSize:n,panelElement:o,styleProp:s.minSize});l=K(p/n*100)}let c=100;if(s.maxSize!==void 0){const p=Re({groupSize:n,panelElement:o,styleProp:s.maxSize});c=K(p/n*100)}return{groupResizeBehavior:s.groupResizeBehavior,collapsedSize:d,collapsible:s.collapsible===!0,defaultSize:i,disabled:s.disabled,minSize:l,maxSize:c,panelId:r.id}})}function A(e,t="Assertion error"){if(!e)throw Error(t)}function ct(e,t){return Array.from(t).sort(e==="horizontal"?co:uo)}function co(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function uo(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function fn(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function pn(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function fo({orientation:e,rects:t,targetRect:n}){const r={x:n.x+n.width/2,y:n.y+n.height/2};let o,s=Number.MAX_VALUE;for(const d of t){const{x:i,y:l}=pn(r,d),c=e==="horizontal"?i:l;c<s&&(s=c,o=d)}return A(o,"No rect found"),o}let We;function po(){return We===void 0&&(typeof matchMedia=="function"?We=!!matchMedia("(pointer:coarse)").matches:We=!1),We}function hn(e){const{element:t,orientation:n,panels:r,separators:o}=e,s=ct(n,Array.from(t.children).filter(fn).map(j=>({element:j}))).map(({element:j})=>j),d=[];let i=!1,l=!1,c=-1,p=-1,v=0,m,y=[];{let j=-1;for(const x of s)x.hasAttribute("data-panel")&&(j++,x.ariaDisabled===null&&(v++,c===-1&&(c=j),p=j))}if(v>1){let j=-1;for(const x of s)if(x.hasAttribute("data-panel")){j++;const w=r.find(b=>b.element===x);if(w){if(m){const b=m.element.getBoundingClientRect(),h=x.getBoundingClientRect();let z;if(l){const S=n==="horizontal"?new DOMRect(b.right,b.top,0,b.height):new DOMRect(b.left,b.bottom,b.width,0),g=n==="horizontal"?new DOMRect(h.left,h.top,0,h.height):new DOMRect(h.left,h.top,h.width,0);switch(y.length){case 0:{z=[S,g];break}case 1:{const M=y[0],C=fo({orientation:n,rects:[b,h],targetRect:M.element.getBoundingClientRect()});z=[M,C===b?g:S];break}default:{z=y;break}}}else y.length?z=y:z=[n==="horizontal"?new DOMRect(b.right,h.top,h.left-b.right,h.height):new DOMRect(h.left,b.bottom,h.width,h.top-b.bottom)];for(const S of z){let g="width"in S?S:S.element.getBoundingClientRect();const M=po()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(g.width<M){const $=M-g.width;g=new DOMRect(g.x-$/2,g.y,g.width+$,g.height)}if(g.height<M){const $=M-g.height;g=new DOMRect(g.x,g.y-$/2,g.width,g.height+$)}const C=j<=c||j>p;!i&&!C&&d.push({group:e,groupSize:ze({group:e}),panels:[m,w],separator:"width"in S?void 0:S,rect:g}),i=!1}}l=!1,m=w,y=[]}}else if(x.hasAttribute("data-separator")){x.ariaDisabled!==null&&(i=!0);const w=o.find(b=>b.element===x);w?y.push(w):(m=void 0,y=[])}else l=!0}return d}var ie;class mn{constructor(){Et(this,ie,{})}addListener(t,n){const r=Ee(this,ie)[t];return r===void 0?Ee(this,ie)[t]=[n]:r.includes(n)||r.push(n),()=>{this.removeListener(t,n)}}emit(t,n){const r=Ee(this,ie)[t];if(r!==void 0)if(r.length===1)r[0].call(null,n);else{let o=!1,s=null;const d=Array.from(r);for(let i=0;i<d.length;i++){const l=d[i];try{l.call(null,n)}catch(c){s===null&&(o=!0,s=c)}}if(o)throw s}}removeAllListeners(){Lt(this,ie,{})}removeListener(t,n){const r=Ee(this,ie)[t];if(r!==void 0){const o=r.indexOf(n);o>=0&&r.splice(o,1)}}}ie=new WeakMap;let ee=new Map;const xn=new mn;function ho(e){ee=new Map(ee),ee.delete(e)}function At(e,t){for(const[n]of ee)if(n.id===e)return n}function ce(e,t){for(const[n,r]of ee)if(n.id===e)return r;if(t)throw Error(`Could not find data for Group with id ${e}`)}function me(){return ee}function pt(e,t){return xn.addListener("groupChange",n=>{n.group.id===e&&t(n)})}function oe(e,t){const n=ee.get(e);ee=new Map(ee),ee.set(e,t),xn.emit("groupChange",{group:e,prev:n,next:t})}function mo(e,t,n){let r,o={x:1/0,y:1/0};for(const s of t){const d=pn(n,s.rect);switch(e){case"horizontal":{d.x<=o.x&&(r=s,o=d);break}case"vertical":{d.y<=o.y&&(r=s,o=d);break}}}return r?{distance:o,hitRegion:r}:void 0}function xo(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function go(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:Ht(e),b:Ht(t)};let r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();A(r,"Stacking order can only be calculated for elements with a common ancestor");const o={a:Bt(_t(n.a)),b:Bt(_t(n.b))};if(o.a===o.b){const s=r.childNodes,d={a:n.a.at(-1),b:n.b.at(-1)};let i=s.length;for(;i--;){const l=s[i];if(l===d.a)return 1;if(l===d.b)return-1}}return Math.sign(o.a-o.b)}const vo=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function bo(e){const t=getComputedStyle(gn(e)??e).display;return t==="flex"||t==="inline-flex"}function yo(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||bo(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||vo.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function _t(e){let t=e.length;for(;t--;){const n=e[t];if(A(n,"Missing node"),yo(n))return n}return null}function Bt(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Ht(e){const t=[];for(;e;)t.push(e),e=gn(e);return t}function gn(e){const{parentNode:t}=e;return xo(t)?t.host:t}function wo(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function jo({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!fn(n)||n.contains(e)||e.contains(n))return!0;if(go(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(wo(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function ht(e,t){const n=[];return t.forEach((r,o)=>{if(o.disabled)return;const s=hn(o),d=mo(o.orientation,s,{x:e.clientX,y:e.clientY});d&&d.distance.x<=0&&d.distance.y<=0&&jo({groupElement:o.element,hitRegion:d.hitRegion.rect,pointerEventTarget:e.target})&&n.push(d.hitRegion)}),n}function So(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function U(e,t,n=0){return Math.abs(K(e)-K(t))<=n}function Z(e,t){return U(e,t)?0:e>t?1:-1}function we({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:r}){const{collapsedSize:o=0,collapsible:s,disabled:d,maxSize:i=100,minSize:l=0}=t;if(d&&!e)return n;if(Z(r,l)<0)if(s){const c=(o+l)/2;Z(r,c)<0?r=o:r=l}else r=l;return r=Math.min(i,r),r=K(r),r}function Te({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:o,trigger:s}){if(U(e,0))return t;const d=s==="imperative-api",i=Object.values(t),l=Object.values(o),c=[...i],[p,v]=r;A(p!=null,"Invalid first pivot index"),A(v!=null,"Invalid second pivot index");let m=0;switch(s){case"keyboard":{{const x=e<0?v:p,w=n[x];A(w,`Panel constraints not found for index ${x}`);const{collapsedSize:b=0,collapsible:h,minSize:z=0}=w;if(h){const S=i[x];if(A(S!=null,`Previous layout not found for panel index ${x}`),U(S,b)){const g=z-S;Z(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}{const x=e<0?p:v,w=n[x];A(w,`No panel constraints found for index ${x}`);const{collapsedSize:b=0,collapsible:h,minSize:z=0}=w;if(h){const S=i[x];if(A(S!=null,`Previous layout not found for panel index ${x}`),U(S,z)){const g=S-b;Z(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}break}default:{const x=e<0?v:p,w=n[x];A(w,`Panel constraints not found for index ${x}`);const b=i[x],{collapsible:h,collapsedSize:z,minSize:S}=w;if(h&&Z(b,S)<0)if(e>0){const g=S-z,M=g/2,C=b+e;Z(C,S)<0&&(e=Z(e,M)<=0?0:g)}else{const g=S-z,M=100-g/2,C=b-e;Z(C,S)<0&&(e=Z(100+e,M)>0?0:-g)}break}}{const x=e<0?1:-1;let w=e<0?v:p,b=0;for(;;){const z=i[w];A(z!=null,`Previous layout not found for panel index ${w}`);const S=we({overrideDisabledPanels:d,panelConstraints:n[w],prevSize:z,size:100})-z;if(b+=S,w+=x,w<0||w>=n.length)break}const h=Math.min(Math.abs(e),Math.abs(b));e=e<0?0-h:h}{let x=e<0?p:v;for(;x>=0&&x<n.length;){const w=Math.abs(e)-Math.abs(m),b=i[x];A(b!=null,`Previous layout not found for panel index ${x}`);const h=b-w,z=we({overrideDisabledPanels:d,panelConstraints:n[x],prevSize:b,size:h});if(!U(b,z)&&(m+=b-z,c[x]=z,m.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?x--:x++}}if(So(l,c))return o;{const x=e<0?v:p,w=i[x];A(w!=null,`Previous layout not found for panel index ${x}`);const b=w+m,h=we({overrideDisabledPanels:d,panelConstraints:n[x],prevSize:w,size:b});if(c[x]=h,!U(h,b)){let z=b-h,S=e<0?v:p;for(;S>=0&&S<n.length;){const g=c[S];A(g!=null,`Previous layout not found for panel index ${S}`);const M=g+z,C=we({overrideDisabledPanels:d,panelConstraints:n[S],prevSize:g,size:M});if(U(g,C)||(z-=C-g,c[S]=C),U(z,0))break;e>0?S--:S++}}}const y=Object.values(c).reduce((x,w)=>w+x,0);if(!U(y,100,.1))return o;const j=Object.keys(o);return c.reduce((x,w,b)=>(x[j[b]]=w,x),{})}function fe(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||Z(e[n],t[n])!==0)return!1;return!0}function pe({layout:e,panelConstraints:t}){const n=Object.values(e),r=[...n],o=r.reduce((i,l)=>i+l,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(i=>`${i}%`).join(", ")}`);if(!U(o,100)&&r.length>0)for(let i=0;i<t.length;i++){const l=r[i];A(l!=null,`No layout data found for index ${i}`);const c=100/o*l;r[i]=c}let s=0;for(let i=0;i<t.length;i++){const l=n[i];A(l!=null,`No layout data found for index ${i}`);const c=r[i];A(c!=null,`No layout data found for index ${i}`);const p=we({overrideDisabledPanels:!0,panelConstraints:t[i],prevSize:l,size:c});c!=p&&(s+=c-p,r[i]=p)}if(!U(s,0))for(let i=0;i<t.length;i++){const l=r[i];A(l!=null,`No layout data found for index ${i}`);const c=l+s,p=we({overrideDisabledPanels:!0,panelConstraints:t[i],prevSize:l,size:c});if(l!==p&&(s-=p-l,r[i]=p,U(s,0)))break}const d=Object.keys(e);return r.reduce((i,l,c)=>(i[d[c]]=l,i),{})}function vn({groupId:e,panelId:t}){const n=()=>{const i=me();for(const[l,{defaultLayoutDeferred:c,derivedPanelConstraints:p,layout:v,groupSize:m,separatorToPanels:y}]of i)if(l.id===e)return{defaultLayoutDeferred:c,derivedPanelConstraints:p,group:l,groupSize:m,layout:v,separatorToPanels:y};throw Error(`Group ${e} not found`)},r=()=>{const i=n().derivedPanelConstraints.find(l=>l.panelId===t);if(i!==void 0)return i;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{const i=n().group.panels.find(l=>l.id===t);if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},s=()=>{const i=n().layout[t];if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},d=i=>{const l=s();if(i===l)return;const{defaultLayoutDeferred:c,derivedPanelConstraints:p,group:v,groupSize:m,layout:y,separatorToPanels:j}=n(),x=v.panels.findIndex(z=>z.id===t),w=x===v.panels.length-1,b=Te({delta:w?l-i:i-l,initialLayout:y,panelConstraints:p,pivotIndices:w?[x-1,x]:[x,x+1],prevLayout:y,trigger:"imperative-api"}),h=pe({layout:b,panelConstraints:p});fe(y,h)||oe(v,{defaultLayoutDeferred:c,derivedPanelConstraints:p,groupSize:m,layout:h,separatorToPanels:j})};return{collapse:()=>{const{collapsible:i,collapsedSize:l}=r(),{mutableValues:c}=o(),p=s();i&&p!==l&&(c.expandToSize=p,d(l))},expand:()=>{const{collapsible:i,collapsedSize:l,minSize:c}=r(),{mutableValues:p}=o(),v=s();if(i&&v===l){let m=p.expandToSize??c;m===0&&(m=1),d(m)}},getSize:()=>{const{group:i}=n(),l=s(),{element:c}=o(),p=i.orientation==="horizontal"?c.offsetWidth:c.offsetHeight;return{asPercentage:l,inPixels:p}},isCollapsed:()=>{const{collapsible:i,collapsedSize:l}=r(),c=s();return i&&U(l,c)},resize:i=>{const{group:l}=n(),{element:c}=o(),p=ze({group:l}),v=Re({groupSize:p,panelElement:c,styleProp:i}),m=K(v/p*100);d(m)}}}function Vt(e){if(e.defaultPrevented)return;const t=me();ht(e,t).forEach(n=>{if(n.separator){const r=n.panels.find(o=>o.panelConstraints.defaultSize!==void 0);if(r){const o=r.panelConstraints.defaultSize,s=vn({groupId:n.group.id,panelId:r.id});s&&o!==void 0&&(s.resize(o),e.preventDefault())}}})}function Ke(e){const t=me();for(const[n]of t)if(n.separators.some(r=>r.element===e))return n;throw Error("Could not find parent Group for separator element")}function bn({groupId:e}){const t=()=>{const n=me();for(const[r,o]of n)if(r.id===e)return{group:r,...o};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){const{defaultLayoutDeferred:n,layout:r}=t();return n?{}:r},setLayout(n){const{defaultLayoutDeferred:r,derivedPanelConstraints:o,group:s,groupSize:d,layout:i,separatorToPanels:l}=t(),c=pe({layout:n,panelConstraints:o});return r?i:(fe(i,c)||oe(s,{defaultLayoutDeferred:r,derivedPanelConstraints:o,groupSize:d,layout:c,separatorToPanels:l}),c)}}}function de(e,t){const n=Ke(e),r=ce(n.id,!0),o=n.separators.find(p=>p.element===e);A(o,"Matching separator not found");const s=r.separatorToPanels.get(o);A(s,"Matching panels not found");const d=s.map(p=>n.panels.indexOf(p)),i=bn({groupId:n.id}).getLayout(),l=Te({delta:t,initialLayout:i,panelConstraints:r.derivedPanelConstraints,pivotIndices:d,prevLayout:i,trigger:"keyboard"}),c=pe({layout:l,panelConstraints:r.derivedPanelConstraints});fe(i,c)||oe(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function qt(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=Ke(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&de(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&de(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&de(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&de(t,-5);break}case"End":{e.preventDefault(),de(t,100);break}case"Enter":{e.preventDefault();const r=Ke(t),o=ce(r.id,!0),{derivedPanelConstraints:s,layout:d,separatorToPanels:i}=o,l=r.separators.find(m=>m.element===t);A(l,"Matching separator not found");const c=i.get(l);A(c,"Matching panels not found");const p=c[0],v=s.find(m=>m.panelId===p.id);if(A(v,"Panel metadata not found"),v.collapsible){const m=d[p.id],y=v.collapsedSize===m?r.mutableState.expandedPanelSizes[p.id]??v.minSize:v.collapsedSize;de(t,y-m)}break}case"F6":{e.preventDefault();const r=Ke(t).separators.map(d=>d.element),o=Array.from(r).findIndex(d=>d===e.currentTarget);A(o!==null,"Index not found");const s=e.shiftKey?o>0?o-1:r.length-1:o+1<r.length?o+1:0;r[s].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),de(t,-100);break}}}let Se={cursorFlags:0,state:"inactive"};const mt=new mn;function he(){return Se}function ko(e){return mt.addListener("change",e)}function zo(e){const t=Se,n={...Se};n.cursorFlags=e,Se=n,mt.emit("change",{prev:t,next:n})}function ke(e){const t=Se;Se=e,mt.emit("change",{prev:t,next:e})}function Wt(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=me(),n=ht(e,t),r=new Map;let o=!1;n.forEach(s=>{s.separator&&(o||(o=!0,s.separator.element.focus({preventScroll:!0})));const d=t.get(s.group);d&&r.set(s.group,d.layout)}),ke({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),n.length&&e.preventDefault()}const Co=e=>e,it=()=>{},yn=1,wn=2,jn=4,Sn=8,Ut=3,Gt=12;let Ue;function Kt(){return Ue===void 0&&(Ue=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(Ue=!0)),Ue}function No({cursorFlags:e,groups:t,state:n}){let r=0,o=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.mutableState.disableCursor)switch(s.orientation){case"horizontal":{r++;break}case"vertical":{o++;break}}})}if(!(r===0&&o===0)){switch(n){case"active":{if(e&&Kt()){const s=(e&yn)!==0,d=(e&wn)!==0,i=(e&jn)!==0,l=(e&Sn)!==0;if(s)return i?"se-resize":l?"ne-resize":"e-resize";if(d)return i?"sw-resize":l?"nw-resize":"w-resize";if(i)return"s-resize";if(l)return"n-resize"}break}}return Kt()?r>0&&o>0?"move":r>0?"ew-resize":"ns-resize":r>0&&o>0?"grab":r>0?"col-resize":"row-resize"}}const Xt=new WeakMap;function xt(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Xt.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));const r=he();switch(r.state){case"active":case"hover":{const o=No({cursorFlags:r.cursorFlags,groups:r.hitRegions.map(d=>d.group),state:r.state}),s=`*, *:hover {cursor: ${o} !important; }`;if(t===s)return;t=s,o?n.cssRules.length===0?n.insertRule(s):n.replaceSync(s):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}Xt.set(e,{prevStyle:t,styleSheet:n})}function kn({document:e,event:t,hitRegions:n,initialLayoutMap:r,mountedGroups:o,pointerDownAtPoint:s,prevCursorFlags:d}){let i=0;n.forEach(c=>{const{group:p,groupSize:v}=c,{orientation:m,panels:y}=p,{disableCursor:j}=p.mutableState;let x=0;s?m==="horizontal"?x=(t.clientX-s.x)/v*100:x=(t.clientY-s.y)/v*100:m==="horizontal"?x=t.clientX<0?-100:100:x=t.clientY<0?-100:100;const w=r.get(p),b=o.get(p);if(!w||!b)return;const{defaultLayoutDeferred:h,derivedPanelConstraints:z,groupSize:S,layout:g,separatorToPanels:M}=b;if(z&&g&&M){const C=Te({delta:x,initialLayout:w,panelConstraints:z,pivotIndices:c.panels.map($=>y.indexOf($)),prevLayout:g,trigger:"mouse-or-touch"});if(fe(C,g)){if(x!==0&&!j)switch(m){case"horizontal":{i|=x<0?yn:wn;break}case"vertical":{i|=x<0?jn:Sn;break}}}else oe(c.group,{defaultLayoutDeferred:h,derivedPanelConstraints:z,groupSize:S,layout:C,separatorToPanels:M})}});let l=0;t.movementX===0?l|=d&Ut:l|=i&Ut,t.movementY===0?l|=d&Gt:l|=i&Gt,zo(l),xt(e)}function Qt(e){const t=me(),n=he();switch(n.state){case"active":kn({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Yt(e){if(e.defaultPrevented)return;const t=he(),n=me();switch(t.state){case"active":{if(e.buttons===0){ke({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(r=>{const o=ce(r.group.id,!0);oe(r.group,o)});return}kn({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const r=ht(e,n);r.length===0?t.state!=="inactive"&&ke({cursorFlags:0,state:"inactive"}):ke({cursorFlags:0,hitRegions:r,state:"hover"}),xt(e.currentTarget);break}}}function Jt(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(he().state){case"hover":ke({cursorFlags:0,state:"inactive"})}}function Zt(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=he();switch(t.state){case"active":ke({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(xt(e.currentTarget),t.hitRegions.forEach(n=>{const r=ce(n.group.id,!0);oe(n.group,r)}),e.preventDefault())}}function en(e){let t=0,n=0;const r={};for(const s of e)if(s.defaultSize!==void 0){t++;const d=K(s.defaultSize);n+=d,r[s.panelId]=d}else r[s.panelId]=void 0;const o=e.length-t;if(o!==0){const s=K((100-n)/o);for(const d of e)d.defaultSize===void 0&&(r[d.panelId]=s)}return r}function Mo(e,t,n){if(!n[0])return;const r=e.panels.find(l=>l.element===t);if(!r||!r.onResize)return;const o=ze({group:e}),s=e.orientation==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,d=r.mutableValues.prevSize,i={asPercentage:K(s/o*100),inPixels:s};r.mutableValues.prevSize=i,r.onResize(i,r.id,d)}function Po(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(e[n]!==t[n])return!1;return!0}function Eo({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:r}){if(n<=0||t<=0||n===t)return r;let o=0,s=0,d=!1;const i=new Map,l=[];for(const v of e.panels){const m=r[v.id]??0;switch(v.panelConstraints.groupResizeBehavior){case"preserve-pixel-size":{d=!0;const y=m/100*n,j=K(y/t*100);i.set(v.id,j),o+=j;break}case"preserve-relative-size":default:{l.push(v.id),s+=m;break}}}if(!d||l.length===0)return r;const c=100-o,p={...r};if(i.forEach((v,m)=>{p[m]=v}),s>0)for(const v of l){const m=r[v]??0;p[v]=K(m/s*c)}else{const v=K(c/l.length);for(const m of l)p[m]=v}return p}function Lo(e,t){const n=e.map(o=>o.id),r=Object.keys(t);if(n.length!==r.length)return!1;for(const o of n)if(!r.includes(o))return!1;return!0}const be=new Map;function Ro(e){let t=!0;A(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,r=new Set,o=new Set,s=new n(j=>{for(const x of j){const{borderBoxSize:w,target:b}=x;if(b===e.element){if(t){const h=ze({group:e});if(h===0)return;const z=ce(e.id);if(!z)return;const S=lt(e),g=z.defaultLayoutDeferred?en(S):z.layout,M=Eo({group:e,nextGroupSize:h,prevGroupSize:z.groupSize,prevLayout:g}),C=pe({layout:M,panelConstraints:S});if(!z.defaultLayoutDeferred&&fe(z.layout,C)&&Po(z.derivedPanelConstraints,S)&&z.groupSize===h)return;oe(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:S,groupSize:h,layout:C,separatorToPanels:z.separatorToPanels})}}else Mo(e,b,w)}});s.observe(e.element),e.panels.forEach(j=>{A(!r.has(j.id),`Panel ids must be unique; id "${j.id}" was used more than once`),r.add(j.id),j.onResize&&s.observe(j.element)});const d=ze({group:e}),i=lt(e),l=e.panels.map(({id:j})=>j).join(",");let c=e.mutableState.defaultLayout;c&&(Lo(e.panels,c)||(c=void 0));const p=e.mutableState.layouts[l]??c??en(i),v=pe({layout:p,panelConstraints:i}),m=e.element.ownerDocument;be.set(m,(be.get(m)??0)+1);const y=new Map;return hn(e).forEach(j=>{j.separator&&y.set(j.separator,j.panels)}),oe(e,{defaultLayoutDeferred:d===0,derivedPanelConstraints:i,groupSize:d,layout:v,separatorToPanels:y}),e.separators.forEach(j=>{A(!o.has(j.id),`Separator ids must be unique; id "${j.id}" was used more than once`),o.add(j.id),j.element.addEventListener("keydown",qt)}),be.get(m)===1&&(m.addEventListener("dblclick",Vt,!0),m.addEventListener("pointerdown",Wt,!0),m.addEventListener("pointerleave",Qt),m.addEventListener("pointermove",Yt),m.addEventListener("pointerout",Jt),m.addEventListener("pointerup",Zt,!0)),function(){t=!1,be.set(m,Math.max(0,(be.get(m)??0)-1)),ho(e),e.separators.forEach(j=>{j.element.removeEventListener("keydown",qt)}),be.get(m)||(m.removeEventListener("dblclick",Vt,!0),m.removeEventListener("pointerdown",Wt,!0),m.removeEventListener("pointerleave",Qt),m.removeEventListener("pointermove",Yt),m.removeEventListener("pointerout",Jt),m.removeEventListener("pointerup",Zt,!0)),s.disconnect()}}function Oo(){const[e,t]=u.useState({}),n=u.useCallback(()=>t({}),[]);return[e,n]}function gt(e){const t=u.useId();return`${e??t}`}const xe=typeof window<"u"?u.useLayoutEffect:u.useEffect;function $e(e){const t=u.useRef(e);return xe(()=>{t.current=e},[e]),u.useCallback((...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[t])}function vt(...e){return $e(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function bt(e){const t=u.useRef({...e});return xe(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const zn=u.createContext(null);function Do(e,t){const n=u.useRef({getLayout:()=>({}),setLayout:Co});u.useImperativeHandle(t,()=>n.current,[]),xe(()=>{Object.assign(n.current,bn({groupId:e}))})}function ut({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:o,elementRef:s,groupRef:d,id:i,onLayoutChange:l,onLayoutChanged:c,orientation:p="horizontal",resizeTargetMinimumSize:v={coarse:20,fine:10},style:m,...y}){const j=u.useRef({onLayoutChange:{},onLayoutChanged:{}}),x=$e(P=>{fe(j.current.onLayoutChange,P)||(j.current.onLayoutChange=P,l==null||l(P))}),w=$e(P=>{fe(j.current.onLayoutChanged,P)||(j.current.onLayoutChanged=P,c==null||c(P))}),b=gt(i),h=u.useRef(null),[z,S]=Oo(),g=u.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:v,separators:[]}),M=vt(h,s);Do(b,d);const C=$e((P,E)=>{const F=he(),I=At(P),k=ce(P);if(k){let O=!1;switch(F.state){case"active":{O=F.hitRegions.some(q=>q.group===I);break}}return{flexGrow:k.layout[E]??1,pointerEvents:O?"none":void 0}}return{flexGrow:(n==null?void 0:n[E])??1}}),$=bt({defaultLayout:n,disableCursor:r}),_=u.useMemo(()=>({get disableCursor(){return!!$.disableCursor},getPanelStyles:C,id:b,orientation:p,registerPanel:P=>{const E=g.current;return E.panels=ct(p,[...E.panels,P]),S(),()=>{E.panels=E.panels.filter(F=>F!==P),S()}},registerSeparator:P=>{const E=g.current;return E.separators=ct(p,[...E.separators,P]),S(),()=>{E.separators=E.separators.filter(F=>F!==P),S()}},togglePanelDisabled:(P,E)=>{const F=g.current.panels.find(O=>O.id===P);F&&(F.panelConstraints.disabled=E);const I=At(b),k=ce(b);I&&k&&oe(I,{...k,derivedPanelConstraints:lt(I)})},toggleSeparatorDisabled:(P,E)=>{const F=g.current.separators.find(I=>I.id===P);F&&(F.disabled=E)}}),[C,b,S,p,$]),L=u.useRef(null);return xe(()=>{const P=h.current;if(P===null)return;const E=g.current;let F;if($.defaultLayout!==void 0&&Object.keys($.defaultLayout).length===E.panels.length){F={};for(const ne of E.panels){const R=$.defaultLayout[ne.id];R!==void 0&&(F[ne.id]=R)}}const I={disabled:!!o,element:P,id:b,mutableState:{defaultLayout:F,disableCursor:!!$.disableCursor,expandedPanelSizes:g.current.lastExpandedPanelSizes,layouts:g.current.layouts},orientation:p,panels:E.panels,resizeTargetMinimumSize:E.resizeTargetMinimumSize,separators:E.separators};L.current=I;const k=Ro(I),{defaultLayoutDeferred:O,derivedPanelConstraints:q,layout:Y}=ce(I.id,!0);!O&&q.length>0&&(x(Y),w(Y));const te=pt(b,ne=>{const{defaultLayoutDeferred:R,derivedPanelConstraints:D,layout:V}=ne.next;if(R||D.length===0)return;const G=I.panels.map(({id:Q})=>Q).join(",");I.mutableState.layouts[G]=V,D.forEach(Q=>{if(Q.collapsible){const{layout:Ce}=ne.prev??{};if(Ce){const ge=U(Q.collapsedSize,V[Q.panelId]),Je=U(Q.collapsedSize,Ce[Q.panelId]);ge&&!Je&&(I.mutableState.expandedPanelSizes[Q.panelId]=Ce[Q.panelId])}}});const J=he().state!=="active";x(V),J&&w(V)});return()=>{L.current=null,k(),te()}},[o,b,w,x,p,z,$]),u.useEffect(()=>{const P=L.current;P&&(P.mutableState.defaultLayout=n,P.mutableState.disableCursor=!!r)}),a.jsx(zn.Provider,{value:_,children:a.jsx("div",{...y,className:t,"data-group":!0,"data-testid":b,id:b,ref:M,style:{height:"100%",width:"100%",overflow:"hidden",...m,display:"flex",flexDirection:p==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:p==="horizontal"?"pan-y":"pan-x"},children:e})})}ut.displayName="Group";function yt(){const e=u.useContext(zn);return A(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function $o(e,t){const{id:n}=yt(),r=u.useRef({collapse:it,expand:it,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:it});u.useImperativeHandle(t,()=>r.current,[]),xe(()=>{Object.assign(r.current,vn({groupId:n,panelId:e}))})}function Oe({children:e,className:t,collapsedSize:n="0%",collapsible:r=!1,defaultSize:o,disabled:s,elementRef:d,groupResizeBehavior:i="preserve-relative-size",id:l,maxSize:c="100%",minSize:p="0%",onResize:v,panelRef:m,style:y,...j}){const x=!!l,w=gt(l),b=bt({disabled:s}),h=u.useRef(null),z=vt(h,d),{getPanelStyles:S,id:g,orientation:M,registerPanel:C,togglePanelDisabled:$}=yt(),_=v!==null,L=$e((E,F,I)=>{v==null||v(E,l,I)});xe(()=>{const E=h.current;if(E!==null){const F={element:E,id:w,idIsStable:x,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:_?L:void 0,panelConstraints:{groupResizeBehavior:i,collapsedSize:n,collapsible:r,defaultSize:o,disabled:b.disabled,maxSize:c,minSize:p}};return C(F)}},[i,n,r,o,_,w,x,c,p,L,C,b]),u.useEffect(()=>{$(w,!!s)},[s,w,$]),$o(w,m);const P=u.useSyncExternalStore(E=>pt(g,E),()=>JSON.stringify(S(g,w)),()=>JSON.stringify(S(g,w)));return a.jsx("div",{...j,"aria-disabled":s||void 0,"data-panel":!0,"data-testid":w,id:w,ref:z,style:{...Io,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...JSON.parse(P)},children:a.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...y,touchAction:M==="horizontal"?"pan-y":"pan-x"},children:e})})}Oe.displayName="Panel";const Io={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function To({layout:e,panelConstraints:t,panelId:n,panelIndex:r}){let o,s;const d=e[n],i=t.find(l=>l.panelId===n);if(i){const l=i.maxSize,c=i.collapsible?i.collapsedSize:i.minSize,p=[r,r+1];s=pe({layout:Te({delta:c-d,initialLayout:e,panelConstraints:t,pivotIndices:p,prevLayout:e}),panelConstraints:t})[n],o=pe({layout:Te({delta:l-d,initialLayout:e,panelConstraints:t,pivotIndices:p,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:o,valueMin:s,valueNow:d}}function dt({children:e,className:t,disabled:n,elementRef:r,id:o,style:s,...d}){const i=gt(o),l=bt({disabled:n}),[c,p]=u.useState({}),[v,m]=u.useState("inactive"),y=u.useRef(null),j=vt(y,r),{disableCursor:x,id:w,orientation:b,registerSeparator:h,toggleSeparatorDisabled:z}=yt(),S=b==="horizontal"?"vertical":"horizontal";xe(()=>{const M=y.current;if(M!==null){const C={disabled:l.disabled,element:M,id:i},$=h(C),_=ko(P=>{m(P.next.state!=="inactive"&&P.next.hitRegions.some(E=>E.separator===C)?P.next.state:"inactive")}),L=pt(w,P=>{const{derivedPanelConstraints:E,layout:F,separatorToPanels:I}=P.next,k=I.get(C);if(k){const O=k[0],q=k.indexOf(O);p(To({layout:F,panelConstraints:E,panelId:O.id,panelIndex:q}))}});return()=>{_(),L(),$()}}},[w,i,h,l]),u.useEffect(()=>{z(i,!!n)},[n,i,z]);let g;return n&&!x&&(g="not-allowed"),a.jsx("div",{...d,"aria-controls":c.valueControls,"aria-disabled":n||void 0,"aria-orientation":S,"aria-valuemax":c.valueMax,"aria-valuemin":c.valueMin,"aria-valuenow":c.valueNow,children:e,className:t,"data-separator":n?"disabled":v,"data-testid":i,id:i,ref:j,role:"separator",style:{flexBasis:"auto",cursor:g,...s,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:n?void 0:0})}dt.displayName="Separator";const Fo={ghost:"hover:bg-[#F8F4F0] text-[#36342E]",subtle:"hover:bg-[#ECEAE3] text-[#6B6960]"},Ao={sm:"w-7 h-7",md:"w-8 h-8"},_o={sm:14,md:16};function se({icon:e,label:t,size:n="md",variant:r="ghost",onClick:o,className:s="",disabled:d=!1,title:i}){return a.jsx("button",{type:"button","aria-label":t,title:i??t,disabled:d,onClick:o,className:["inline-flex items-center justify-center rounded-btn transition-colors",Fo[r],Ao[n],d?"opacity-40 cursor-not-allowed":"",s].filter(Boolean).join(" "),children:a.jsx(e,{size:_o[n]})})}function Bo({x:e,y:t,items:n,onClose:r}){const[o,s]=u.useState(0),d=u.useRef(null),i=u.useRef([]);u.useEffect(()=>{var c;(c=i.current[0])==null||c.focus()},[]),u.useEffect(()=>{const c=p=>{d.current&&!d.current.contains(p.target)&&r()};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[r]);const l=u.useCallback(c=>{var p,v;switch(c.key){case"Escape":c.preventDefault(),r();break;case"ArrowDown":c.preventDefault(),s(m=>{var j;const y=(m+1)%n.length;return(j=i.current[y])==null||j.focus(),y});break;case"ArrowUp":c.preventDefault(),s(m=>{var j;const y=(m-1+n.length)%n.length;return(j=i.current[y])==null||j.focus(),y});break;case"Home":c.preventDefault(),s(0),(p=i.current[0])==null||p.focus();break;case"End":c.preventDefault(),s(n.length-1),(v=i.current[n.length-1])==null||v.focus();break}},[n.length,r]);return a.jsx("div",{ref:d,role:"menu",className:"bg-card border border-border rounded-card shadow-card-hover py-1 min-w-[160px]",style:{position:"fixed",left:e,top:t,zIndex:100},onKeyDown:l,children:n.map((c,p)=>{const v=c.icon,m=c.variant==="danger";return a.jsxs("button",{ref:y=>{i.current[p]=y},role:"menuitem",tabIndex:o===p?0:-1,onClick:()=>{c.onClick(),r()},className:["flex items-center gap-2 w-full text-left px-3 py-2 text-sm transition-colors",m?"text-danger hover:bg-danger/10":"text-ink hover:bg-hover"].join(" "),children:[a.jsx(v,{size:14}),c.label]},c.label)})})}function Ho({sessionId:e,defaultMode:t}){const[n,r]=u.useState([]),[o,s]=u.useState(""),[d,i]=u.useState(t||"quick"),[l,c]=u.useState(!1),p=u.useRef(null),v=u.useRef(null);u.useEffect(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)},[n]);const m=async()=>{var x;const y=o.trim();if(!y||l)return;const j={role:"user",content:y,timestamp:new Date().toISOString()};r(w=>[...w,j]),s(""),c(!0);try{const w=await W.chatMessage(e,y,d),b={role:"system",content:w.output||"Done.",timestamp:new Date().toISOString(),filesChanged:w.files_changed};r(h=>[...h,b])}catch(w){const b={role:"system",content:`Error: ${w instanceof Error?w.message:"Request failed"}`,timestamp:new Date().toISOString()};r(h=>[...h,b])}finally{c(!1),(x=v.current)==null||x.focus()}};return a.jsxs("div",{className:"flex flex-col h-full",children:[a.jsxs("div",{ref:p,className:"flex-1 overflow-y-auto p-3 space-y-3 terminal-scroll",children:[n.length===0&&a.jsx("div",{className:"text-xs text-muted text-center py-8",children:"Send a message to iterate on your project."}),n.map((y,j)=>a.jsx("div",{className:`flex ${y.role==="user"?"justify-end":"justify-start"}`,children:a.jsxs("div",{className:`max-w-[80%] rounded-lg px-3 py-2 text-xs ${y.role==="user"?"bg-primary/10 text-ink":"bg-hover text-ink"}`,children:[a.jsx("p",{className:"whitespace-pre-wrap",children:y.content}),y.filesChanged&&y.filesChanged.length>0&&a.jsxs("div",{className:"mt-2 pt-2 border-t border-border",children:[a.jsx("span",{className:"text-xs text-muted font-semibold uppercase",children:"Files changed:"}),a.jsx("ul",{className:"mt-1 space-y-0.5",children:y.filesChanged.map((x,w)=>a.jsx("li",{className:"text-xs font-mono text-muted",children:x},w))})]})]})},j)),l&&a.jsx("div",{className:"flex justify-start",children:a.jsxs("div",{className:"bg-hover text-ink rounded-lg px-3 py-2 text-xs",children:["Building",a.jsx("span",{className:"animate-pulse",children:"..."})]})})]}),a.jsxs("div",{className:"border-t border-border p-2 flex-shrink-0",children:[a.jsx("div",{className:"flex items-center gap-1 mb-2",children:["quick","standard","max"].map(y=>a.jsx("button",{onClick:()=>i(y),className:`text-xs font-semibold px-3 py-1.5 rounded-btn transition-colors capitalize ${d===y?"bg-primary text-white":"text-muted hover:text-ink"}`,children:y},y))}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("input",{ref:v,type:"text",value:o,onChange:y=>s(y.target.value),onKeyDown:y=>{y.key==="Enter"&&!y.shiftKey&&(y.preventDefault(),m())},placeholder:"Ask AI to modify your project...",className:"flex-1 px-3 py-1.5 text-xs bg-card border border-border rounded-btn outline-none focus:border-primary transition-colors",disabled:l}),a.jsx(Ge,{size:"sm",icon:_r,onClick:m,disabled:l||!o.trim(),"aria-label":"Send message",children:"Send"})]})]})]})}const tn=[{id:"build",label:"Build Log",icon:qr},{id:"agents",label:"Agents",icon:ir},{id:"quality",label:"Quality",icon:Hr},{id:"chat",label:"AI Chat",icon:Ir}];function Vo({status:e}){switch(e){case"pass":return a.jsx(er,{size:14,className:"text-success"});case"fail":return a.jsx(Xe,{size:14,className:"text-danger"});default:return a.jsx(Zn,{size:14,className:"text-muted"})}}function qo({agents:e}){return!e||e.length===0?a.jsx("div",{className:"p-4 text-xs text-muted",children:"No agents running."}):a.jsx("div",{className:"p-2 space-y-1 overflow-y-auto terminal-scroll",children:e.map(t=>a.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-btn bg-hover text-xs",children:[a.jsx("span",{className:"font-semibold text-ink truncate",children:t.name}),a.jsx("span",{className:"text-xs font-mono text-muted-accessible px-1.5 py-0.5 rounded-btn bg-card",children:t.type}),a.jsx("span",{className:`text-xs font-semibold ${t.status==="running"?"text-success":"text-muted"}`,children:t.status}),a.jsx("span",{className:"ml-auto text-xs text-muted-accessible font-mono truncate max-w-[200px]",children:t.task})]},t.id))})}function Wo({checklist:e}){return!e||!e.items||e.items.length===0?a.jsx("div",{className:"p-4 text-xs text-muted",children:"No quality gate data available."}):a.jsxs("div",{className:"p-2 space-y-1 overflow-y-auto terminal-scroll",children:[a.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 text-xs text-muted-accessible font-semibold uppercase",children:[a.jsx("span",{children:"Gate"}),a.jsxs("span",{className:"ml-auto",children:[e.passed,"/",e.total," passed"]})]}),e.items.map(t=>a.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-btn hover:bg-hover text-xs",children:[a.jsx(Vo,{status:t.status}),a.jsx("span",{className:"text-ink",children:t.label}),t.details&&a.jsx("span",{className:"ml-auto text-xs text-muted-accessible truncate max-w-[200px]",children:t.details})]},t.id))]})}function Uo({logs:e,logsLoading:t,agents:n,checklist:r,sessionId:o,subscribe:s,buildMode:d}){var c;const[i,l]=u.useState("build");return a.jsxs("div",{className:"h-full flex flex-col bg-card",children:[a.jsx("div",{role:"tablist",className:"flex items-center border-b border-border px-2 flex-shrink-0",children:tn.map(p=>{const v=p.icon,m=i===p.id;return a.jsxs("button",{role:"tab","aria-selected":m,onClick:()=>l(p.id),className:`flex items-center gap-1.5 px-3 py-2 text-xs font-medium transition-colors border-b-2 ${m?"border-primary text-primary":"border-transparent text-muted hover:text-ink"}`,children:[a.jsx(v,{size:14}),p.label]},p.id)})}),a.jsxs("div",{role:"tabpanel","aria-label":(c=tn.find(p=>p.id===i))==null?void 0:c.label,className:"flex-1 min-h-0 overflow-hidden",children:[i==="build"&&a.jsx(Kn,{logs:e,loading:t,subscribe:s}),i==="agents"&&a.jsx(qo,{agents:n}),i==="quality"&&a.jsx(Wo,{checklist:r}),i==="chat"&&a.jsx(Ho,{sessionId:o,defaultMode:d})]})]})}function ft(e,t,n){var s;if(t==="directory")return n?a.jsx(Mr,{size:14}):a.jsx(Rr,{size:14});const r=((s=e.split(".").pop())==null?void 0:s.toLowerCase())||"";return{js:a.jsx(ae,{size:14,className:"text-yellow-600"}),ts:a.jsx(ae,{size:14,className:"text-blue-500"}),tsx:a.jsx(ae,{size:14,className:"text-blue-400"}),jsx:a.jsx(ae,{size:14,className:"text-yellow-500"}),py:a.jsx(ae,{size:14,className:"text-green-600"}),html:a.jsx(br,{size:14,className:"text-orange-500"}),css:a.jsx(kr,{size:14,className:"text-purple-500"}),json:a.jsx(xr,{size:14,className:"text-green-500"}),md:a.jsx(nn,{size:14,className:"text-muted"}),go:a.jsx(ae,{size:14,className:"text-cyan-600"}),rs:a.jsx(ae,{size:14,className:"text-orange-600"}),rb:a.jsx(ae,{size:14,className:"text-red-500"}),sh:a.jsx(ae,{size:14,className:"text-green-600"})}[r]||a.jsx(Cr,{size:14})}function Go(e){var o;const t=((o=e.split(".").pop())==null?void 0:o.toLowerCase())||"",n={js:"javascript",jsx:"javascript",ts:"typescript",tsx:"typescript",py:"python",html:"html",htm:"html",css:"css",scss:"scss",less:"less",json:"json",md:"markdown",go:"go",rs:"rust",sh:"shell",bash:"shell",yml:"yaml",yaml:"yaml",xml:"xml",svg:"xml",sql:"sql",java:"java",kt:"kotlin",rb:"ruby",dockerfile:"dockerfile"},r=e.toLowerCase();return r==="dockerfile"?"dockerfile":r==="makefile"?"makefile":n[t]||"plaintext"}function Cn(e){for(const t of e)if(t.type==="file"&&t.name.endsWith(".html")||t.children&&Cn(t.children))return!0;return!1}function Nn(e,t){for(const n of e){if(n.path===t)return n.size;if(n.children){const r=Nn(n.children,t);if(r!==void 0)return r}}}function Mn(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Pn({nodes:e,selectedPath:t,onSelect:n,onDelete:r,onContextMenu:o,depth:s=0}){const[d,i]=u.useState(()=>{const l=new Set;return s<2&&e.filter(c=>c.type==="directory").forEach(c=>l.add(c.path)),l});return a.jsx("div",{role:s===0?"tree":"group",children:e.map(l=>{const c=l.type==="directory",p=d.has(l.path),v=l.path===t;return a.jsxs("div",{className:"group/file",children:[a.jsxs("button",{role:"treeitem","aria-label":l.name,"aria-selected":v,...c?{"aria-expanded":p}:{},onContextMenu:m=>{m.preventDefault(),o==null||o(m,l.path,l.name,l.type)},onClick:()=>{c?i(m=>{const y=new Set(m);return y.has(l.path)?y.delete(l.path):y.add(l.path),y}):n(l.path,l.name)},className:`w-full text-left flex items-center gap-1.5 px-2 py-1 text-xs font-mono rounded transition-colors ${v?"bg-primary/10 text-primary":"text-ink/70 hover:bg-hover"}`,style:{paddingLeft:`${s*14+8}px`},children:[c?a.jsx("span",{className:"w-3 flex items-center justify-center flex-shrink-0 text-muted",children:p?a.jsx(cr,{size:14}):a.jsx(dr,{size:14})}):a.jsx("span",{className:"w-3 flex-shrink-0"}),a.jsx("span",{className:`w-5 flex items-center justify-center flex-shrink-0 ${c?"text-primary":""}`,children:ft(l.name,l.type,p)}),a.jsxs("span",{className:"truncate",children:[l.name,c?"/":""]}),!c&&l.size!=null&&l.size>0&&a.jsx("span",{className:"text-xs text-muted ml-auto flex-shrink-0",children:Mn(l.size)}),!c&&r&&a.jsx("span",{role:"button",tabIndex:-1,onClick:m=>{m.stopPropagation(),r(l.path,l.name)},onKeyDown:m=>{m.key==="Enter"&&(m.stopPropagation(),r(l.path,l.name))},className:"text-muted hover:text-danger ml-1 flex-shrink-0 opacity-0 group-hover/file:opacity-100 transition-opacity cursor-pointer",title:"Delete file",children:a.jsx(Xe,{size:12})})]}),c&&p&&l.children&&a.jsx(Pn,{nodes:l.children,selectedPath:t,onSelect:n,onDelete:r,onContextMenu:o,depth:s+1})]},l.path)})})}function En(e,t=""){const n=[];for(const r of e)r.type==="file"&&n.push({path:r.path,name:r.name}),r.children&&n.push(...En(r.children,r.path+"/"));return n}function Ko({session:e,onClose:t}){var Nt;const[n,r]=u.useState(null),[o,s]=u.useState(""),[d,i]=u.useState(null),[l,c]=u.useState(null),[p,v]=u.useState(!1),[m,y]=u.useState("code"),[j,x]=u.useState(!1),[w,b]=u.useState(!1),[h,z]=u.useState(e),S=u.useRef(null),[g,M]=u.useState([]),[C,$]=u.useState(!1),[_,L]=u.useState(""),P=u.useRef(null),E=u.useRef(null),[F,I]=u.useState(0),[k,O]=u.useState(null),[q,Y]=u.useState("standard"),[te,ne]=u.useState("claude"),[R,D]=u.useState(null),[V,G]=u.useState(!1),[J,Q]=u.useState(!1),[Ce,ge]=u.useState(!1),Je=u.useCallback(async()=>{try{await W.stopSession(),Q(!1),ge(!1)}catch{}},[]),Ln=u.useCallback(async()=>{try{await W.pauseSession(),ge(!0)}catch{}},[]),Rn=u.useCallback(async()=>{try{await W.resumeSession(),ge(!1)}catch{}},[]);u.useEffect(()=>{const f=async()=>{try{const T=await W.getStatus();Q(T.running),ge(T.paused)}catch{}};f();const N=setInterval(f,1e4);return()=>clearInterval(N)},[]);const On=Cn(h.files),wt=`/api/sessions/${encodeURIComponent(h.id)}/preview/index.html`,[Ae,Dn]=u.useState([wt]),[re,Ze]=u.useState(0),Ne=Ae[re]||wt,[jt,St]=u.useState(Ne),ve=u.useCallback(async()=>{try{const f=await W.getSessionDetail(h.id);z(f)}catch{}},[h.id]),$n=u.useCallback((f,N,T,B)=>{f.preventDefault(),O({x:f.clientX,y:f.clientY,path:N,name:T,type:B})},[]),In=u.useCallback(()=>{re>0&&(Ze(f=>f-1),I(f=>f+1))},[re]),Tn=u.useCallback(()=>{re<Ae.length-1&&(Ze(f=>f+1),I(f=>f+1))},[re,Ae.length]),Fn=u.useCallback(f=>{Dn(N=>[...N.slice(0,re+1),f]),Ze(N=>N+1),I(N=>N+1)},[re]);u.useEffect(()=>{St(Ne)},[Ne]);const _e=u.useCallback(async()=>{G(!0);try{const f=await W.reviewProject(h.id);D(f.output)}catch(f){D(`Error: ${f instanceof Error?f.message:"Unknown"}`)}finally{G(!1)}},[h.id]),Be=u.useCallback(async()=>{G(!0);try{const f=await W.testProject(h.id);D(f.output)}catch(f){D(`Error: ${f instanceof Error?f.message:"Unknown"}`)}finally{G(!1)}},[h.id]),et=u.useCallback(async()=>{G(!0);try{const f=await W.explainProject(h.id);D(f.output)}catch(f){D(`Error: ${f instanceof Error?f.message:"Unknown"}`)}finally{G(!1)}},[h.id]),tt=u.useCallback(async(f,N)=>{if(window.confirm(`Delete "${N}"?`))try{await W.deleteSessionFile(h.id,f),n===f&&(r(null),s(""),i(null),c(null),x(!1)),await ve()}catch(B){const ue=B instanceof Error?B.message:"Unknown error";window.alert(`Delete failed: ${ue}`)}},[h.id,n,ve]),An=u.useCallback(f=>f.type==="file"?[{label:"Review",icon:He,onClick:()=>{_e()}},{label:"Generate Tests",icon:rt,onClick:()=>{Be()}},{label:"Explain",icon:Rt,onClick:()=>{et()}},{label:"Delete",icon:Gr,onClick:()=>{tt(f.path,f.name)},variant:"danger"}]:[{label:"Review Project",icon:He,onClick:()=>{_e()}},{label:"Run Tests",icon:rt,onClick:()=>{Be()}}],[_e,Be,et,tt]),Me=u.useCallback(async(f,N)=>{j&&n&&l!==null&&M(B=>B.map(ue=>ue.path===n?{...ue,content:l,modified:!0}:ue));const T=g.find(B=>B.path===f);if(T){r(f),s(N),i(T.content),c(T.content),x(T.modified);return}r(f),s(N),v(!0),x(!1);try{const B=h.id?await W.getSessionFileContent(h.id,f):await W.getFileContent(f);i(B.content),c(B.content),M(ue=>[...ue,{path:f,name:N,content:B.content,modified:!1}])}catch{i("[Error loading file]"),c("[Error loading file]")}finally{v(!1)}},[h.id,j,n,l,g]),nt=u.useCallback(async()=>{var f;if(!(!n||l===null||!h.id)){b(!0);try{await W.saveSessionFile(h.id,n,l),i(l),x(!1),M(T=>T.map(B=>B.path===n?{...B,content:l,modified:!1}:B));const N=((f=n.split(".").pop())==null?void 0:f.toLowerCase())||"";["html","css","js","jsx","ts","tsx"].includes(N)&&I(T=>T+1)}catch(N){const T=N instanceof Error?N.message:"Unknown error";window.alert(`Save failed: ${T}`)}finally{b(!1)}}},[n,l,h.id]),kt=u.useCallback(f=>{const N=g.find(T=>T.path===f);if(!(N!=null&&N.modified&&!window.confirm("Unsaved changes. Close anyway?"))&&(M(T=>T.filter(B=>B.path!==f)),n===f)){const T=g.filter(B=>B.path!==f);if(T.length>0){const B=T[T.length-1];r(B.path),s(B.name),i(B.content),c(B.content),x(B.modified)}else r(null),s(""),i(null),c(null),x(!1)}},[g,n]);u.useEffect(()=>{const f=N=>{(N.metaKey||N.ctrlKey)&&N.key==="s"&&(N.preventDefault(),j&&n&&nt()),(N.metaKey||N.ctrlKey)&&N.key==="p"&&(N.preventDefault(),$(T=>!T),L("")),N.key==="Escape"&&C&&$(!1)};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[j,n,nt,C]),u.useEffect(()=>{C&&P.current&&P.current.focus()},[C]);const zt=En(h.files),Pe=_?zt.filter(f=>f.path.toLowerCase().includes(_.toLowerCase())):zt;u.useEffect(()=>{const f=h.files.find(N=>N.name==="index.html"&&N.type==="file");f&&Me(f.path,f.name)},[]);const _n=u.useCallback(f=>{f!==void 0&&(c(f),x(f!==d))},[d]),Bn=u.useCallback(f=>{S.current=f},[]),Hn=u.useCallback(async()=>{const f=window.prompt("New file name (e.g. src/utils.ts):");if(!(!f||!f.trim()))try{await W.createSessionFile(h.id,f.trim()),await ve()}catch(N){const T=N instanceof Error?N.message:"Unknown error";window.alert(`Create file failed: ${T}`)}},[h.id,ve]),Vn=u.useCallback(async()=>{const f=window.prompt("New folder name (e.g. src/components):");if(!(!f||!f.trim()))try{await W.createSessionDirectory(h.id,f.trim()),await ve()}catch(N){const T=N instanceof Error?N.message:"Unknown error";window.alert(`Create folder failed: ${T}`)}},[h.id,ve]),Ct=n?Nn(h.files,n):void 0,qn=((Nt=o.split(".").pop())==null?void 0:Nt.toUpperCase())||"";return a.jsxs("div",{className:"flex flex-col h-full relative",children:[a.jsxs("div",{className:"bg-card px-3 py-2 flex items-center gap-3 flex-shrink-0 border-b border-border",children:[a.jsx("button",{onClick:()=>{j&&!window.confirm("Unsaved changes. Discard?")||t()},className:"text-xs font-medium px-3 py-1.5 rounded-btn border border-border text-muted hover:text-ink hover:bg-hover transition-colors",children:"Back"}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("h2",{className:"text-sm font-bold text-ink truncate",children:h.id}),a.jsx("p",{className:"text-xs font-mono text-muted-accessible truncate",children:h.path})]}),a.jsx("span",{className:`text-xs font-semibold px-2 py-0.5 rounded-full ${h.status==="completed"||h.status==="completion_promise_fulfilled"?"bg-success/10 text-success":"bg-muted/10 text-muted"}`,children:h.status}),J&&a.jsxs("div",{className:"flex items-center gap-1 border-l border-border pl-3 ml-1",children:[Ce?a.jsx(Ge,{variant:"ghost",size:"sm",icon:Xn,onClick:Rn,title:"Resume build",children:"Resume"}):a.jsx(Ge,{variant:"ghost",size:"sm",icon:Qn,onClick:Ln,title:"Pause build",children:"Pause"}),a.jsx(Ge,{variant:"danger",size:"sm",icon:Yn,onClick:Je,title:"Stop build",children:"Stop"})]}),a.jsx(se,{icon:He,label:"Review project",size:"sm",onClick:_e,disabled:V}),a.jsx(se,{icon:rt,label:"Run tests",size:"sm",onClick:Be,disabled:V}),a.jsx(se,{icon:Rt,label:"Explain project",size:"sm",onClick:et,disabled:V})]}),a.jsx("div",{className:"flex-1 min-h-0",children:a.jsxs(ut,{orientation:"vertical",children:[a.jsx(Oe,{defaultSize:70,minSize:40,children:a.jsxs(ut,{orientation:"horizontal",className:"h-full",children:[a.jsx(Oe,{defaultSize:20,minSize:15,children:a.jsxs("div",{className:"h-full flex flex-col border-r border-border bg-card",children:[a.jsxs("div",{className:"px-3 py-2 border-b border-border flex items-center gap-2",children:[a.jsx("span",{className:"text-xs text-muted-accessible uppercase tracking-wider font-semibold flex-1",children:"Files"}),a.jsxs("button",{onClick:Hn,title:"New File",className:"flex items-center gap-1 text-xs text-muted-accessible hover:text-primary px-2.5 py-1 rounded border border-border hover:border-primary/30 transition-colors",children:[a.jsx(wr,{size:12})," New"]}),a.jsxs("button",{onClick:Vn,title:"New Folder",className:"flex items-center gap-1 text-xs text-muted-accessible hover:text-primary px-2.5 py-1 rounded border border-border hover:border-primary/30 transition-colors",children:[a.jsx(Er,{size:12})," New"]})]}),a.jsx("div",{className:"flex-1 overflow-y-auto terminal-scroll",children:h.files.length>0?a.jsx(Pn,{nodes:h.files,selectedPath:n,onSelect:Me,onDelete:tt,onContextMenu:$n}):a.jsx("div",{className:"p-4 text-xs text-muted",children:"No files"})})]})}),a.jsx(dt,{className:"w-1 bg-border hover:bg-primary/30 transition-colors cursor-col-resize"}),a.jsx(Oe,{defaultSize:80,minSize:40,children:a.jsxs("div",{className:"h-full flex flex-col min-w-0",children:[a.jsx("div",{className:"flex items-center border-b border-border bg-hover px-1 flex-shrink-0",role:"tablist",children:[{id:"code",label:"Code",icon:pr},{id:"preview",label:"Preview",icon:He},{id:"config",label:"Config",icon:Wn},{id:"secrets",label:"Secrets",icon:Dr},{id:"prd",label:"PRD",icon:nn}].map(f=>a.jsxs("button",{role:"tab","aria-selected":m===f.id,onClick:()=>y(f.id),className:`flex items-center gap-1.5 px-4 py-2 text-xs font-medium border-b-2 transition-colors ${m===f.id?"border-primary text-primary":"border-transparent text-muted hover:text-ink hover:border-border"}`,children:[a.jsx(f.icon,{size:14}),f.label]},f.id))}),a.jsxs("div",{className:"flex-1 min-h-0",role:"tabpanel",children:[m==="code"&&a.jsxs("div",{className:"h-full flex flex-col min-w-0",children:[g.length>0&&a.jsx("div",{className:"flex items-center border-b border-border bg-hover overflow-x-auto flex-shrink-0",children:g.map(f=>a.jsxs("button",{onClick:()=>Me(f.path,f.name),className:`flex items-center gap-1.5 px-3 py-1.5 text-[11px] font-mono border-r border-border whitespace-nowrap transition-colors ${f.path===n?"bg-card text-ink":"text-muted hover:text-ink hover:bg-card"}`,children:[a.jsx("span",{className:"w-4 flex items-center justify-center",children:ft(f.name,"file")}),f.name,f.modified&&a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary"}),a.jsx("span",{role:"button",tabIndex:-1,title:"Close tab",onClick:N=>{N.stopPropagation(),kt(f.path)},onKeyDown:N=>{N.key==="Enter"&&(N.stopPropagation(),kt(f.path))},className:"text-muted hover:text-danger ml-1 cursor-pointer",children:a.jsx(Xe,{size:12})})]},f.path))}),n?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"px-4 py-1.5 border-b border-border flex items-center gap-2 flex-shrink-0 bg-hover",children:[a.jsx("span",{className:"text-xs font-mono text-secondary truncate",children:n}),w&&a.jsx("span",{className:"text-xs text-primary animate-pulse flex-shrink-0",children:"Saving..."}),a.jsx("span",{className:"ml-auto text-xs text-muted/50 font-mono",children:Ct!=null?Mn(Ct):""}),a.jsx("span",{className:"text-xs text-muted font-mono uppercase",children:qn}),j&&a.jsx("button",{onClick:nt,className:"text-xs font-medium px-2 py-0.5 rounded border border-primary/40 bg-primary/10 text-primary hover:bg-primary/20 transition-colors",children:"Save"})]}),a.jsx("div",{className:"flex-1 min-h-0",children:p?a.jsx("div",{className:"text-muted text-xs animate-pulse p-4",children:"Loading..."}):a.jsx(ro,{value:l??"",language:Go(o),theme:"vs",onChange:_n,onMount:Bn,options:{minimap:{enabled:!1},fontSize:13,lineNumbers:"on",wordWrap:"on",scrollBeyondLastLine:!1,automaticLayout:!0,padding:{top:8},renderLineHighlight:"line",smoothScrolling:!0,cursorBlinking:"smooth",folding:!0,bracketPairColorization:{enabled:!0}}})})]}):a.jsx("div",{className:"flex-1 flex items-center justify-center text-muted text-sm",children:"Select a file to view its contents"})]}),m==="preview"&&a.jsxs("div",{className:"h-full flex flex-col",children:[a.jsxs("div",{className:"px-3 py-1.5 border-b border-border flex items-center gap-2 bg-hover",children:[a.jsx(se,{icon:rr,label:"Back",size:"sm",onClick:In,disabled:re<=0}),a.jsx(se,{icon:or,label:"Forward",size:"sm",onClick:Tn,disabled:re>=Ae.length-1}),a.jsx(se,{icon:Fr,label:"Refresh",size:"sm",onClick:()=>I(f=>f+1)}),a.jsx("input",{value:jt,onChange:f=>St(f.target.value),onKeyDown:f=>{f.key==="Enter"&&Fn(jt)},className:"flex-1 px-3 py-1 text-xs font-mono bg-card border border-border rounded-btn"}),a.jsx(se,{icon:tr,label:"Open in new tab",size:"sm",onClick:()=>window.open(Ne,"_blank")})]}),On?a.jsx("div",{className:"flex-1 bg-white",children:a.jsx("iframe",{ref:E,src:Ne,title:"Project Preview",className:"w-full h-full border-0",sandbox:"allow-scripts allow-same-origin allow-forms allow-popups"},F)}):a.jsx("div",{className:"flex-1 flex items-center justify-center text-muted text-sm",children:"No HTML files found for preview"})]}),m==="config"&&a.jsx("div",{className:"h-full flex flex-col",children:a.jsxs("div",{className:"p-6 overflow-y-auto",children:[a.jsx("h3",{className:"text-h3 font-heading text-ink mb-4",children:"Project Configuration"}),a.jsxs("div",{className:"space-y-4",children:[a.jsxs("div",{className:"card p-4",children:[a.jsx("label",{className:"block text-xs font-semibold text-muted-accessible uppercase tracking-wider mb-2",children:"Provider"}),a.jsx("div",{className:"flex gap-2",children:["claude","codex","gemini"].map(f=>a.jsx("button",{onClick:()=>{ne(f),W.setProvider(f).catch(()=>{})},className:`px-4 py-2 rounded-btn text-sm font-medium border transition-colors capitalize ${te===f?"border-primary bg-primary/10 text-primary":"border-border text-secondary hover:bg-hover"}`,children:f},f))})]}),a.jsxs("div",{className:"card p-4",children:[a.jsx("label",{className:"block text-xs font-semibold text-muted-accessible uppercase tracking-wider mb-2",children:"Build Mode"}),a.jsx("div",{className:"flex gap-2",children:["quick","standard","max"].map(f=>a.jsx("button",{onClick:()=>Y(f),className:`px-4 py-2 rounded-btn text-sm font-medium border transition-colors capitalize ${q===f?"border-primary bg-primary/10 text-primary":"border-border text-secondary hover:bg-hover"}`,children:f},f))})]}),a.jsxs("div",{className:"card p-4",children:[a.jsx("label",{className:"block text-xs font-semibold text-muted-accessible uppercase tracking-wider mb-2",children:"Project Path"}),a.jsx("input",{value:h.path,readOnly:!0,className:"w-full px-3 py-2 text-sm font-mono bg-hover border border-border rounded-btn text-ink"})]}),a.jsxs("div",{className:"card p-4",children:[a.jsx("label",{className:"block text-xs font-semibold text-muted-accessible uppercase tracking-wider mb-2",children:"Session ID"}),a.jsx("input",{value:h.id,readOnly:!0,className:"w-full px-3 py-2 text-sm font-mono bg-hover border border-border rounded-btn text-ink"})]})]})]})}),m==="secrets"&&a.jsx("div",{className:"h-full flex flex-col",children:a.jsxs("div",{className:"p-6 overflow-y-auto",children:[a.jsx("h3",{className:"text-h3 font-heading text-ink mb-2",children:"Environment Secrets"}),a.jsx("p",{className:"text-sm text-muted mb-6",children:"Secrets are stored locally and injected as environment variables during builds. They are never committed to the project repository."}),a.jsx("div",{className:"card p-4",children:a.jsxs("div",{className:"text-sm text-muted-accessible text-center py-8",children:["Secret management coming soon.",a.jsx("br",{}),a.jsxs("span",{className:"text-xs mt-2 block",children:["For now, set environment variables before running ",a.jsx("code",{className:"font-mono bg-hover px-1.5 py-0.5 rounded text-primary",children:"loki start"})]})]})})]})}),m==="prd"&&a.jsx("div",{className:"h-full flex flex-col",children:a.jsxs("div",{className:"p-6 overflow-y-auto",children:[a.jsx("h3",{className:"text-h3 font-heading text-ink mb-4",children:"Product Requirements"}),h.prd?a.jsx("pre",{className:"text-sm font-mono text-ink whitespace-pre-wrap bg-hover border border-border rounded-card p-4 leading-relaxed",children:h.prd}):a.jsx("div",{className:"text-sm text-muted text-center py-8",children:"No PRD found for this project."})]})})]})]})})]})}),a.jsx(dt,{className:"h-1 bg-border hover:bg-primary/30 cursor-row-resize"}),a.jsx(Oe,{defaultSize:30,minSize:15,collapsible:!0,children:a.jsx(Uo,{logs:null,logsLoading:!1,agents:null,checklist:null,sessionId:e.id,buildMode:q})})]})}),R&&a.jsxs("div",{className:"absolute inset-x-0 bottom-0 z-20 bg-card border-t border-border p-4 max-h-64 overflow-y-auto",children:[a.jsxs("div",{className:"flex items-center justify-between mb-2",children:[a.jsx("span",{className:"text-xs font-semibold text-ink",children:"Action Output"}),a.jsx(se,{icon:Xe,label:"Close",size:"sm",onClick:()=>D(null)})]}),a.jsx("pre",{className:"text-xs font-mono text-ink whitespace-pre-wrap",children:R})]}),k&&a.jsx(Bo,{x:k.x,y:k.y,items:An(k),onClose:()=>O(null)}),C&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-start justify-center pt-[20vh]",role:"dialog","aria-modal":"true","aria-label":"Quick open file search",onClick:()=>$(!1),children:a.jsxs("div",{className:"bg-card rounded-card shadow-2xl border border-border w-full max-w-lg",onClick:f=>f.stopPropagation(),children:[a.jsx("input",{ref:P,type:"text",value:_,onChange:f=>L(f.target.value),placeholder:"Search files by name...",className:"w-full px-4 py-3 text-sm font-mono border-b border-border outline-none rounded-t-card bg-transparent",onKeyDown:f=>{f.key==="Enter"&&Pe.length>0&&(Me(Pe[0].path,Pe[0].name),$(!1)),f.key==="Escape"&&$(!1)}}),a.jsxs("div",{className:"max-h-64 overflow-y-auto",children:[Pe.slice(0,20).map(f=>a.jsxs("button",{onClick:()=>{Me(f.path,f.name),$(!1)},className:"w-full text-left px-4 py-2 text-xs font-mono hover:bg-primary/5 flex items-center gap-2",children:[a.jsx("span",{className:"w-5 flex items-center justify-center",children:ft(f.name,"file")}),a.jsx("span",{className:"text-ink",children:f.name}),a.jsx("span",{className:"text-muted ml-auto truncate text-xs",children:f.path})]},f.path)),Pe.length===0&&a.jsx("div",{className:"px-4 py-3 text-xs text-muted",children:"No matching files"})]})]})})]})}function ts(){const{sessionId:e}=Un(),t=Gn(),[n,r]=u.useState(null),[o,s]=u.useState(!0),[d,i]=u.useState(null);return u.useEffect(()=>{e&&(s(!0),i(null),W.getSessionDetail(e).then(l=>{r(l),s(!1)}).catch(l=>{i(l instanceof Error?l.message:"Failed to load session"),s(!1)}))},[e]),o?a.jsx("div",{className:"h-screen bg-background flex items-center justify-center",children:a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"text-muted animate-pulse text-sm",children:"Loading project..."}),a.jsx("div",{className:"text-xs font-mono text-muted/50 mt-2",children:e})]})}):d||!n?a.jsx("div",{className:"h-screen bg-background flex items-center justify-center",children:a.jsxs("div",{className:"text-center",children:[a.jsx("p",{className:"text-danger text-sm font-medium",children:"Project not found"}),a.jsx("p",{className:"text-xs text-muted mt-1",children:d||`Session ${e} does not exist`}),a.jsx("button",{onClick:()=>t("/"),className:"mt-4 px-4 py-2 rounded-btn text-sm font-semibold border border-primary/30 text-primary hover:bg-primary/5 transition-all",children:"Back to Home"})]})}):a.jsx("div",{className:"h-screen bg-background flex flex-col",children:a.jsx("div",{className:"flex-1 min-h-0",children:a.jsx(Jn,{name:"ProjectWorkspace",children:a.jsx(Ko,{session:n,onClose:()=>t("/")})})})})}export{ts as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.terminal-scroll::-webkit-scrollbar{width:6px}.terminal-scroll::-webkit-scrollbar-track{background:transparent}.terminal-scroll::-webkit-scrollbar-thumb{background:#553de933;border-radius:3px}.terminal-scroll::-webkit-scrollbar-thumb:hover{background:#553de959}.card{background:#fff;border:1px solid #ECEAE3;border-radius:5px;box-shadow:0 1px 3px #0000000f}.card:hover,.card-hover:hover{box-shadow:0 5px 10px #00000014}.pattern-nodes{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.04;pointer-events:none;background-image:radial-gradient(circle at 10% 20%,#553DE9 1px,transparent 1px),radial-gradient(circle at 30% 60%,#553DE9 1px,transparent 1px),radial-gradient(circle at 50% 40%,#553DE9 1px,transparent 1px),radial-gradient(circle at 70% 80%,#553DE9 1px,transparent 1px),radial-gradient(circle at 90% 30%,#553DE9 1px,transparent 1px);background-size:200px 200px}*:focus-visible{outline:2px solid #553DE9;outline-offset:2px}::-moz-selection{background:#e8e4fd;color:#201515}::selection{background:#e8e4fd;color:#201515}@media(prefers-reduced-motion:reduce){.phase-active{animation:none}}@keyframes phase-pulse{0%,to{opacity:1}50%{opacity:.5}}.phase-active{animation:phase-pulse 2s ease-in-out infinite}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.terminal-cursor:after{content:"";display:inline-block;width:8px;height:16px;background:#553de9;animation:cursor-blink 1s step-end infinite;margin-left:2px;vertical-align:text-bottom}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.\!visible{visibility:visible!important}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.left-3{left:.75rem}.right-0{right:0}.top-1\/2{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-5{grid-column:span 5 / span 5}.col-span-6{grid-column:span 6 / span 6}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-28{height:7rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-64{max-height:16rem}.max-h-\[400px\]{max-height:400px}.min-h-0{min-height:0px}.min-h-\[280px\]{min-height:280px}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-28{width:7rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[160px\]{min-width:160px}.max-w-3xl{max-width:48rem}.max-w-\[1400px\]{max-width:1400px}.max-w-\[1920px\]{max-width:1920px}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[80\%\]{max-width:80%}.max-w-\[800px\]{max-width:800px}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[3px\]{border-radius:3px}.rounded-\[5px\]{border-radius:5px}.rounded-btn{border-radius:4px}.rounded-card{border-radius:5px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-t-card{border-top-left-radius:5px;border-top-right-radius:5px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-\[\#553DE9\]{--tw-border-opacity: 1;border-color:rgb(85 61 233 / var(--tw-border-opacity, 1))}.border-\[\#553DE9\]\/30{border-color:#553de94d}.border-\[\#C45B5B\]\/20{border-color:#c45b5b33}.border-\[\#ECEAE3\],.border-border{--tw-border-opacity: 1;border-color:rgb(236 234 227 / var(--tw-border-opacity, 1))}.border-border-light{--tw-border-opacity: 1;border-color:rgb(197 192 177 / var(--tw-border-opacity, 1))}.border-border\/50{border-color:#eceae380}.border-danger\/20{border-color:#c45b5b33}.border-muted\/20{border-color:#93908433}.border-primary{--tw-border-opacity: 1;border-color:rgb(85 61 233 / var(--tw-border-opacity, 1))}.border-primary\/20{border-color:#553de933}.border-primary\/30{border-color:#553de94d}.border-primary\/40{border-color:#553de966}.border-success\/20{border-color:#1fc5a833}.border-transparent{border-color:transparent}.border-warning\/10{border-color:#d4a03c1a}.border-warning\/20{border-color:#d4a03c33}.border-warning\/30{border-color:#d4a03c4d}.border-warning\/40{border-color:#d4a03c66}.border-t-transparent{border-top-color:transparent}.bg-\[\#1FC5A8\]{--tw-bg-opacity: 1;background-color:rgb(31 197 168 / var(--tw-bg-opacity, 1))}.bg-\[\#1FC5A8\]\/10{background-color:#1fc5a81a}.bg-\[\#553DE9\]{--tw-bg-opacity: 1;background-color:rgb(85 61 233 / var(--tw-bg-opacity, 1))}.bg-\[\#553DE9\]\/10{background-color:#553de91a}.bg-\[\#C45B5B\]{--tw-bg-opacity: 1;background-color:rgb(196 91 91 / var(--tw-bg-opacity, 1))}.bg-\[\#C45B5B\]\/10{background-color:#c45b5b1a}.bg-\[\#D4A03C\]\/10{background-color:#d4a03c1a}.bg-\[\#F8F4F0\]{--tw-bg-opacity: 1;background-color:rgb(248 244 240 / var(--tw-bg-opacity, 1))}.bg-\[\#FAF9F6\]{--tw-bg-opacity: 1;background-color:rgb(250 249 246 / var(--tw-bg-opacity, 1))}.bg-background{--tw-bg-opacity: 1;background-color:rgb(255 254 251 / var(--tw-bg-opacity, 1))}.bg-black\/30{background-color:#0000004d}.bg-black\/5{background-color:#0000000d}.bg-border{--tw-bg-opacity: 1;background-color:rgb(236 234 227 / var(--tw-bg-opacity, 1))}.bg-border\/30{background-color:#eceae34d}.bg-card{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-current{background-color:currentColor}.bg-danger{--tw-bg-opacity: 1;background-color:rgb(196 91 91 / var(--tw-bg-opacity, 1))}.bg-danger\/10{background-color:#c45b5b1a}.bg-hover{--tw-bg-opacity: 1;background-color:rgb(248 244 240 / var(--tw-bg-opacity, 1))}.bg-info{--tw-bg-opacity: 1;background-color:rgb(47 113 227 / var(--tw-bg-opacity, 1))}.bg-ink\/\[0\.03\]{background-color:#20151508}.bg-muted{--tw-bg-opacity: 1;background-color:rgb(147 144 132 / var(--tw-bg-opacity, 1))}.bg-muted\/10{background-color:#9390841a}.bg-muted\/30{background-color:#9390844d}.bg-muted\/40{background-color:#93908466}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(85 61 233 / var(--tw-bg-opacity, 1))}.bg-primary\/10{background-color:#553de91a}.bg-success{--tw-bg-opacity: 1;background-color:rgb(31 197 168 / var(--tw-bg-opacity, 1))}.bg-success\/10{background-color:#1fc5a81a}.bg-transparent{background-color:transparent}.bg-warning{--tw-bg-opacity: 1;background-color:rgb(212 160 60 / var(--tw-bg-opacity, 1))}.bg-warning\/10{background-color:#d4a03c1a}.bg-warning\/5{background-color:#d4a03c0d}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.fill-ink{fill:#201515}.fill-primary{fill:#553de9}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2\.5{padding-bottom:.625rem}.pl-3{padding-left:.75rem}.pl-9{padding-left:2.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-\[20vh\]{padding-top:20vh}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-heading{font-family:DM Serif Display,Georgia,Times New Roman,serif}.font-mono{font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace}.font-sans{font-family:Inter,system-ui,-apple-system,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-h1{font-size:2.5rem;line-height:1;letter-spacing:-.01em}.text-h3{font-size:1.25rem;line-height:1.4}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[\#1FC5A8\]{--tw-text-opacity: 1;color:rgb(31 197 168 / var(--tw-text-opacity, 1))}.text-\[\#36342E\]{--tw-text-opacity: 1;color:rgb(54 52 46 / var(--tw-text-opacity, 1))}.text-\[\#553DE9\]{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.text-\[\#6B6960\]{--tw-text-opacity: 1;color:rgb(107 105 96 / var(--tw-text-opacity, 1))}.text-\[\#939084\]{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.text-\[\#C45B5B\]{--tw-text-opacity: 1;color:rgb(196 91 91 / var(--tw-text-opacity, 1))}.text-\[\#D4A03C\]{--tw-text-opacity: 1;color:rgb(212 160 60 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-danger{--tw-text-opacity: 1;color:rgb(196 91 91 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-info{--tw-text-opacity: 1;color:rgb(47 113 227 / var(--tw-text-opacity, 1))}.text-ink{--tw-text-opacity: 1;color:rgb(32 21 21 / var(--tw-text-opacity, 1))}.text-ink\/70{color:#201515b3}.text-muted{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.text-muted-accessible{--tw-text-opacity: 1;color:rgb(107 105 96 / var(--tw-text-opacity, 1))}.text-muted\/50{color:#93908480}.text-muted\/60{color:#93908499}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.text-primary\/60{color:#553de999}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary{--tw-text-opacity: 1;color:rgb(54 52 46 / var(--tw-text-opacity, 1))}.text-success{--tw-text-opacity: 1;color:rgb(31 197 168 / var(--tw-text-opacity, 1))}.text-warning{--tw-text-opacity: 1;color:rgb(212 160 60 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-button{--tw-shadow: 0 1px 3px rgba(0,0,0,.08);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow: 0 1px 3px rgba(0,0,0,.06);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card-hover{--tw-shadow: 0 5px 10px rgba(0,0,0,.08);--tw-shadow-colored: 0 5px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[\#553DE9\]\/20{--tw-shadow-color: rgb(85 61 233 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-card{--tw-shadow-color: #FFFFFF;--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-\[\#553DE9\]{--tw-ring-opacity: 1;--tw-ring-color: rgb(85 61 233 / var(--tw-ring-opacity, 1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.placeholder\:text-\[\#939084\]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.placeholder\:text-\[\#939084\]::placeholder{--tw-text-opacity: 1;color:rgb(147 144 132 / var(--tw-text-opacity, 1))}.placeholder\:text-primary\/60::-moz-placeholder{color:#553de999}.placeholder\:text-primary\/60::placeholder{color:#553de999}.hover\:border-border:hover{--tw-border-opacity: 1;border-color:rgb(236 234 227 / var(--tw-border-opacity, 1))}.hover\:border-primary\/30:hover{border-color:#553de94d}.hover\:bg-\[\#4432c4\]:hover{--tw-bg-opacity: 1;background-color:rgb(68 50 196 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#553DE9\]\/5:hover{background-color:#553de90d}.hover\:bg-\[\#553DE9\]\/90:hover{background-color:#553de9e6}.hover\:bg-\[\#C45B5B\]\/20:hover{background-color:#c45b5b33}.hover\:bg-\[\#E8E4FD\]:hover{--tw-bg-opacity: 1;background-color:rgb(232 228 253 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#ECEAE3\]:hover{--tw-bg-opacity: 1;background-color:rgb(236 234 227 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#F8F4F0\]:hover{--tw-bg-opacity: 1;background-color:rgb(248 244 240 / var(--tw-bg-opacity, 1))}.hover\:bg-card:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-danger\/10:hover{background-color:#c45b5b1a}.hover\:bg-danger\/20:hover{background-color:#c45b5b33}.hover\:bg-hover:hover{--tw-bg-opacity: 1;background-color:rgb(248 244 240 / var(--tw-bg-opacity, 1))}.hover\:bg-primary\/20:hover{background-color:#553de933}.hover\:bg-primary\/30:hover{background-color:#553de94d}.hover\:bg-primary\/5:hover{background-color:#553de90d}.hover\:bg-primary\/90:hover{background-color:#553de9e6}.hover\:bg-warning\/10:hover{background-color:#d4a03c1a}.hover\:text-\[\#36342E\]:hover{--tw-text-opacity: 1;color:rgb(54 52 46 / var(--tw-text-opacity, 1))}.hover\:text-danger:hover{--tw-text-opacity: 1;color:rgb(196 91 91 / var(--tw-text-opacity, 1))}.hover\:text-ink:hover{--tw-text-opacity: 1;color:rgb(32 21 21 / var(--tw-text-opacity, 1))}.hover\:text-primary:hover{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:#553de9cc}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-card-hover:hover{--tw-shadow: 0 5px 10px rgba(0,0,0,.08);--tw-shadow-colored: 0 5px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:absolute:focus{position:absolute}.focus\:left-2:focus{left:.5rem}.focus\:top-2:focus{top:.5rem}.focus\:z-50:focus{z-index:50}.focus\:rounded-\[3px\]:focus{border-radius:3px}.focus\:border-\[\#553DE9\]:focus{--tw-border-opacity: 1;border-color:rgb(85 61 233 / var(--tw-border-opacity, 1))}.focus\:border-primary:focus{--tw-border-opacity: 1;border-color:rgb(85 61 233 / var(--tw-border-opacity, 1))}.focus\:border-primary\/30:focus{border-color:#553de94d}.focus\:bg-white:focus{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.focus\:px-4:focus{padding-left:1rem;padding-right:1rem}.focus\:py-2:focus{padding-top:.5rem;padding-bottom:.5rem}.focus\:text-\[\#553DE9\]:focus{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.focus\:shadow-card:focus{--tw-shadow: 0 1px 3px rgba(0,0,0,.06);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: #FFFFFF;--tw-shadow: var(--tw-shadow-colored)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-\[\#553DE9\]\/20:focus{--tw-ring-color: rgb(85 61 233 / .2)}.focus\:ring-primary\/20:focus{--tw-ring-color: rgb(85 61 233 / .2)}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-primary{--tw-text-opacity: 1;color:rgb(85 61 233 / var(--tw-text-opacity, 1))}.group\/file:hover .group-hover\/file\:opacity-100{opacity:1}@media(prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
|