@hachej/boring-workspace 0.1.30 → 0.1.32
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/dist/FileTree-BltQETt9.js +289 -0
- package/dist/{MarkdownEditor-DPBSzTBz.js → MarkdownEditor-heUJdK4j.js} +1 -1
- package/dist/WorkspaceLoadingState-InXsc_8G.js +719 -0
- package/dist/{WorkspaceProvider-0V-2x7AH.js → WorkspaceProvider-Cg-J1wxr.js} +2750 -2570
- package/dist/app-front.d.ts +22 -2
- package/dist/app-front.js +672 -524
- package/dist/app-server.d.ts +21 -4
- package/dist/app-server.js +277 -104
- package/dist/boring-workspace.css +1 -1
- package/dist/{createInMemoryBridge--ZFPAgXy.d.ts → createInMemoryBridge-HJopAIbo.d.ts} +12 -2
- package/dist/plugin.d.ts +2 -2
- package/dist/server.d.ts +62 -9
- package/dist/server.js +261 -46
- package/dist/shared.d.ts +2 -2
- package/dist/{surface-CEEkd81D.d.ts → surface-obE7YwJk.d.ts} +2 -0
- package/dist/testing.d.ts +2 -0
- package/dist/testing.js +1 -1
- package/dist/{ui-bridge-Bdgl2hR8.d.ts → ui-bridge-DFNem0df.d.ts} +2 -2
- package/dist/workspace.css +79 -27
- package/dist/workspace.d.ts +88 -2
- package/dist/workspace.js +472 -386
- package/docs/PLUGIN_STRUCTURE.md +5 -4
- package/docs/PLUGIN_SYSTEM.md +6 -6
- package/docs/plans/archive/UNIFIED_PLUGIN_SYSTEM_PLAN.md +2 -2
- package/package.json +3 -3
- package/dist/FileTree-DUxjUbxL.js +0 -266
- package/dist/WorkspaceLoadingState-DJF_4S4_.js +0 -613
package/dist/workspace.js
CHANGED
|
@@ -1,244 +1,311 @@
|
|
|
1
1
|
var V = Object.defineProperty;
|
|
2
|
-
var X = (e,
|
|
3
|
-
var T = (e,
|
|
4
|
-
import { u as
|
|
5
|
-
import { A as
|
|
6
|
-
import { c as
|
|
7
|
-
import { C as
|
|
8
|
-
import {
|
|
9
|
-
import { Button as
|
|
10
|
-
import { Toaster as
|
|
11
|
-
import { useSyncExternalStore as
|
|
12
|
-
import { C as
|
|
13
|
-
import { FileTree as
|
|
14
|
-
import { MarkdownEditor as
|
|
15
|
-
import { MenuIcon as
|
|
16
|
-
import { d as
|
|
17
|
-
function
|
|
18
|
-
const e =
|
|
19
|
-
return
|
|
2
|
+
var X = (e, t, a) => t in e ? V(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a;
|
|
3
|
+
var T = (e, t, a) => X(e, typeof t != "symbol" ? t + "" : t, a);
|
|
4
|
+
import { u as K, p as Q, a as Y, b as Z, D as ee } from "./WorkspaceProvider-Cg-J1wxr.js";
|
|
5
|
+
import { A as Je, C as Ge, c as Ve, d as Xe, e as Qe, F as Ye, f as Ze, M as et, g as tt, P as at, h as rt, i as nt, j as st, k as ot, R as it, S as lt, l as ct, m as dt, T as ut, U as pt, W as ft, n as mt, o as ht, q as gt, r as bt, s as yt, t as vt, v as xt, w as kt, x as wt, y as Pt, z as St, B as Ct, E as Nt, G as Rt, H as Et, I as Tt, J as It, K as Ot, L as Ft, N as Lt, O as Mt, Q as Bt, V as Wt, X as Dt, Y as Kt, Z as $t, _ as jt, $ as zt, a0 as Ht, a1 as Ut, a2 as _t, a3 as qt, a4 as At, a5 as Jt, a6 as Gt, a7 as Vt, a8 as Xt, a9 as Qt, aa as Yt, ab as Zt, ac as ea, ad as ta, ae as aa, af as ra, ag as na, ah as sa, ai as oa, aj as ia, ak as la, al as ca, am as da, an as ua, ao as pa, ap as fa, aq as ma, ar as ha } from "./WorkspaceProvider-Cg-J1wxr.js";
|
|
6
|
+
import { c as C } from "./utils-B6yFEsav.js";
|
|
7
|
+
import { C as ba, T as ya, W as va, b as xa } from "./WorkspaceLoadingState-InXsc_8G.js";
|
|
8
|
+
import { jsx as r, jsxs as g, Fragment as te } from "react/jsx-runtime";
|
|
9
|
+
import { Button as P, Sheet as ae, SheetContent as re, SheetHeader as ne, SheetTitle as se, SheetDescription as oe, EmptyState as ie, Kbd as I, ErrorState as le, IconButton as O } from "@hachej/boring-ui-kit";
|
|
10
|
+
import { Toaster as wa, dismissToast as Pa, toast as Sa } from "@hachej/boring-ui-kit";
|
|
11
|
+
import { useSyncExternalStore as $, useState as N, useEffect as k, useRef as S, useCallback as b, useMemo as w, Suspense as ce, Component as de } from "react";
|
|
12
|
+
import { C as Na, c as Ra } from "./CodeEditor-DQqOn4xz.js";
|
|
13
|
+
import { FileTree as Ta } from "./FileTree-BltQETt9.js";
|
|
14
|
+
import { MarkdownEditor as Oa } from "./MarkdownEditor-heUJdK4j.js";
|
|
15
|
+
import { MenuIcon as ue, PanelLeftOpenIcon as pe, PanelLeftCloseIcon as fe, PinIcon as me, CheckIcon as he, CopyIcon as ge } from "lucide-react";
|
|
16
|
+
import { d as La } from "./panel-DnvDNQac.js";
|
|
17
|
+
function We() {
|
|
18
|
+
const e = K();
|
|
19
|
+
return $(e.subscribe, e.getSnapshot);
|
|
20
|
+
}
|
|
21
|
+
function j(e) {
|
|
22
|
+
switch (e.kind) {
|
|
23
|
+
case "openFile":
|
|
24
|
+
return { kind: "openFile", params: { path: e.path, ...e.mode ? { mode: e.mode } : {} } };
|
|
25
|
+
case "openSurface":
|
|
26
|
+
return { kind: "openSurface", params: { kind: e.surfaceKind, target: e.target, ...e.meta ? { meta: e.meta } : {} } };
|
|
27
|
+
case "openPanel":
|
|
28
|
+
return {
|
|
29
|
+
kind: "openPanel",
|
|
30
|
+
params: {
|
|
31
|
+
id: e.id,
|
|
32
|
+
component: e.component,
|
|
33
|
+
...e.title ? { title: e.title } : {},
|
|
34
|
+
...e.params ? { params: e.params } : {}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
case "expandToFile":
|
|
38
|
+
return { kind: "expandToFile", params: { path: e.path } };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function be(e) {
|
|
42
|
+
return `boring-workspace-command:${encodeURIComponent(JSON.stringify(j(e)))}`;
|
|
43
|
+
}
|
|
44
|
+
function ye(e) {
|
|
45
|
+
return e.button === 0 && !e.metaKey && !e.ctrlKey && !e.altKey && !e.shiftKey;
|
|
46
|
+
}
|
|
47
|
+
function De({ to: e, children: t, className: a, title: n, href: i, onClick: o }) {
|
|
48
|
+
return /* @__PURE__ */ r(
|
|
49
|
+
"a",
|
|
50
|
+
{
|
|
51
|
+
href: i ?? be(e),
|
|
52
|
+
className: a,
|
|
53
|
+
title: n,
|
|
54
|
+
onClick: (u) => {
|
|
55
|
+
o == null || o(u), !(u.defaultPrevented || !ye(u)) && (u.preventDefault(), Q(j(e)));
|
|
56
|
+
},
|
|
57
|
+
children: t
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
function ve(e, t) {
|
|
62
|
+
return e ? `${e.replace(/\/$/, "")}${t}` : t;
|
|
63
|
+
}
|
|
64
|
+
function xe() {
|
|
65
|
+
if (typeof window > "u") return;
|
|
66
|
+
const e = window.location.pathname.match(/^\/workspace\/([^/?#]+)/);
|
|
67
|
+
if (e != null && e[1])
|
|
68
|
+
try {
|
|
69
|
+
return decodeURIComponent(e[1]);
|
|
70
|
+
} catch {
|
|
71
|
+
return e[1];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async function Ke(e) {
|
|
75
|
+
const t = new URLSearchParams({ path: e.path });
|
|
76
|
+
e.recordSet && t.set("recordSet", e.recordSet), e.offset !== void 0 && t.set("offset", String(e.offset)), e.limit !== void 0 && t.set("limit", String(e.limit)), e.q && t.set("q", e.q);
|
|
77
|
+
const a = { ...e.headers ?? {} }, n = e.workspaceId ?? xe();
|
|
78
|
+
n && !Object.keys(a).some((o) => o.toLowerCase() === "x-boring-workspace-id") && (a["x-boring-workspace-id"] = n);
|
|
79
|
+
const i = await fetch(ve(e.apiBaseUrl, `/api/v1/files/records?${t}`), {
|
|
80
|
+
method: "GET",
|
|
81
|
+
headers: a,
|
|
82
|
+
signal: e.signal
|
|
83
|
+
});
|
|
84
|
+
if (!i.ok)
|
|
85
|
+
throw new Error(`readFileRecords failed: HTTP ${i.status}`);
|
|
86
|
+
return await i.json();
|
|
20
87
|
}
|
|
21
88
|
function B(e) {
|
|
22
89
|
return typeof window > "u" ? !1 : window.innerWidth < e;
|
|
23
90
|
}
|
|
24
91
|
function W(e = 1024) {
|
|
25
|
-
const [
|
|
26
|
-
return
|
|
27
|
-
const
|
|
28
|
-
|
|
92
|
+
const [t, a] = N(() => B(e));
|
|
93
|
+
return k(() => {
|
|
94
|
+
const n = () => {
|
|
95
|
+
a(B(e));
|
|
29
96
|
};
|
|
30
|
-
return
|
|
31
|
-
window.removeEventListener("resize",
|
|
97
|
+
return n(), window.addEventListener("resize", n), () => {
|
|
98
|
+
window.removeEventListener("resize", n);
|
|
32
99
|
};
|
|
33
|
-
}, [e]),
|
|
100
|
+
}, [e]), t;
|
|
34
101
|
}
|
|
35
|
-
function
|
|
102
|
+
function ke({
|
|
36
103
|
isNarrowViewport: e,
|
|
37
|
-
isCollapsed:
|
|
38
|
-
setCollapsed:
|
|
104
|
+
isCollapsed: t,
|
|
105
|
+
setCollapsed: a
|
|
39
106
|
}) {
|
|
40
|
-
const
|
|
41
|
-
return
|
|
42
|
-
|
|
43
|
-
}, [
|
|
44
|
-
const
|
|
45
|
-
if (
|
|
46
|
-
|
|
107
|
+
const n = S(t), i = S(!1), o = S(null);
|
|
108
|
+
return k(() => {
|
|
109
|
+
n.current = t;
|
|
110
|
+
}, [t]), k(() => {
|
|
111
|
+
const u = o.current, d = u !== !0 && e, l = u === !0 && !e;
|
|
112
|
+
if (o.current = e, e && d && !n.current) {
|
|
113
|
+
i.current = !0, a(!0);
|
|
47
114
|
return;
|
|
48
115
|
}
|
|
49
|
-
|
|
50
|
-
}, [e,
|
|
51
|
-
|
|
116
|
+
l && i.current && (i.current = !1, a(!1));
|
|
117
|
+
}, [e, a]), b(() => {
|
|
118
|
+
i.current = !1;
|
|
52
119
|
}, []);
|
|
53
120
|
}
|
|
54
|
-
function
|
|
55
|
-
const [
|
|
56
|
-
|
|
121
|
+
function $e(e) {
|
|
122
|
+
const [t, a] = N([]), n = S(t);
|
|
123
|
+
n.current = t, k(() => {
|
|
57
124
|
if (!e) {
|
|
58
|
-
|
|
125
|
+
a([]);
|
|
59
126
|
return;
|
|
60
127
|
}
|
|
61
|
-
function
|
|
128
|
+
function l() {
|
|
62
129
|
try {
|
|
63
|
-
const
|
|
64
|
-
if (
|
|
65
|
-
const
|
|
66
|
-
if (
|
|
67
|
-
for (const [,
|
|
68
|
-
|
|
69
|
-
id:
|
|
70
|
-
component:
|
|
71
|
-
params:
|
|
130
|
+
const p = e.toJSON(), m = [];
|
|
131
|
+
if (p && typeof p == "object" && "panels" in p) {
|
|
132
|
+
const y = p;
|
|
133
|
+
if (y.panels)
|
|
134
|
+
for (const [, f] of Object.entries(y.panels))
|
|
135
|
+
f.id && m.push({
|
|
136
|
+
id: f.id,
|
|
137
|
+
component: f.contentComponent ?? f.id,
|
|
138
|
+
params: f.params
|
|
72
139
|
});
|
|
73
140
|
}
|
|
74
|
-
const
|
|
75
|
-
(
|
|
141
|
+
const s = n.current;
|
|
142
|
+
(s.length !== m.length || s.some((y, f) => {
|
|
76
143
|
var v;
|
|
77
|
-
return
|
|
78
|
-
})) &&
|
|
144
|
+
return y.id !== ((v = m[f]) == null ? void 0 : v.id);
|
|
145
|
+
})) && a(m);
|
|
79
146
|
} catch {
|
|
80
147
|
}
|
|
81
148
|
}
|
|
82
|
-
|
|
83
|
-
const c = setInterval(
|
|
149
|
+
l();
|
|
150
|
+
const c = setInterval(l, 500);
|
|
84
151
|
return () => clearInterval(c);
|
|
85
152
|
}, [e]);
|
|
86
|
-
const
|
|
87
|
-
(
|
|
153
|
+
const i = b(
|
|
154
|
+
(l) => {
|
|
88
155
|
e == null || e.addPanel("artifacts", {
|
|
89
|
-
id:
|
|
90
|
-
component:
|
|
91
|
-
params:
|
|
156
|
+
id: l.id,
|
|
157
|
+
component: l.component,
|
|
158
|
+
params: l.params
|
|
92
159
|
});
|
|
93
160
|
},
|
|
94
161
|
[e]
|
|
95
|
-
),
|
|
96
|
-
(
|
|
97
|
-
e == null || e.removePanel(
|
|
162
|
+
), o = b(
|
|
163
|
+
(l) => {
|
|
164
|
+
e == null || e.removePanel(l);
|
|
98
165
|
},
|
|
99
166
|
[e]
|
|
100
|
-
),
|
|
101
|
-
(
|
|
102
|
-
e == null || e.activatePanel(
|
|
167
|
+
), u = b(
|
|
168
|
+
(l) => {
|
|
169
|
+
e == null || e.activatePanel(l);
|
|
103
170
|
},
|
|
104
171
|
[e]
|
|
105
|
-
), d =
|
|
106
|
-
(
|
|
172
|
+
), d = b(
|
|
173
|
+
(l) => n.current.some((c) => c.id === l),
|
|
107
174
|
[]
|
|
108
175
|
);
|
|
109
|
-
return { panels:
|
|
176
|
+
return { panels: t, open: i, close: o, activate: u, isOpen: d };
|
|
110
177
|
}
|
|
111
|
-
function
|
|
112
|
-
const
|
|
113
|
-
(
|
|
114
|
-
[
|
|
178
|
+
function je(e, t = {}) {
|
|
179
|
+
const a = t.toolPanelMap ?? {}, n = b(
|
|
180
|
+
(o) => a[o],
|
|
181
|
+
[a]
|
|
115
182
|
);
|
|
116
|
-
return { openForTool:
|
|
117
|
-
(
|
|
118
|
-
const d =
|
|
183
|
+
return { openForTool: b(
|
|
184
|
+
(o, u) => {
|
|
185
|
+
const d = a[o];
|
|
119
186
|
if (!d) return;
|
|
120
|
-
const
|
|
121
|
-
e.isOpen(
|
|
187
|
+
const l = `artifact-${u.path}`;
|
|
188
|
+
e.isOpen(l) ? e.activate(l) : e.open({ id: l, component: d, params: u });
|
|
122
189
|
},
|
|
123
|
-
[
|
|
124
|
-
), resolvePanel:
|
|
190
|
+
[a, e]
|
|
191
|
+
), resolvePanel: n };
|
|
125
192
|
}
|
|
126
|
-
const
|
|
127
|
-
function
|
|
193
|
+
const we = 768, Pe = 1024;
|
|
194
|
+
function Se(e) {
|
|
128
195
|
return {
|
|
129
196
|
...e,
|
|
130
|
-
groups: e.groups.filter((
|
|
197
|
+
groups: e.groups.filter((t) => t.id !== "sidebar")
|
|
131
198
|
};
|
|
132
199
|
}
|
|
133
|
-
function
|
|
200
|
+
function Ce({
|
|
134
201
|
layout: e,
|
|
135
|
-
className:
|
|
202
|
+
className: t
|
|
136
203
|
}) {
|
|
137
|
-
var
|
|
138
|
-
const
|
|
204
|
+
var L;
|
|
205
|
+
const a = K(), n = Y(), i = Z(), o = W(we), u = W(Pe), d = u && !o, l = w(
|
|
139
206
|
() => e.groups.find((x) => x.id === "sidebar" && x.panel),
|
|
140
207
|
[e]
|
|
141
|
-
), c =
|
|
142
|
-
isNarrowViewport:
|
|
143
|
-
isCollapsed:
|
|
144
|
-
setCollapsed: (x) =>
|
|
145
|
-
}), [
|
|
146
|
-
|
|
147
|
-
(!
|
|
148
|
-
}, [
|
|
149
|
-
const
|
|
150
|
-
() =>
|
|
151
|
-
[
|
|
152
|
-
),
|
|
153
|
-
const x =
|
|
154
|
-
let
|
|
208
|
+
), c = l == null ? void 0 : l.panel, p = !!c, m = ke({
|
|
209
|
+
isNarrowViewport: p && u,
|
|
210
|
+
isCollapsed: n.collapsed,
|
|
211
|
+
setCollapsed: (x) => i({ collapsed: x })
|
|
212
|
+
}), [s, h] = N(!1);
|
|
213
|
+
k(() => {
|
|
214
|
+
(!p || !o && !d) && h(!1);
|
|
215
|
+
}, [p, o, d]);
|
|
216
|
+
const y = p && (o || d && n.collapsed), f = p && !o && (!d || !n.collapsed), v = w(
|
|
217
|
+
() => f ? e : Se(e),
|
|
218
|
+
[f, e]
|
|
219
|
+
), z = w(() => {
|
|
220
|
+
const x = f ? "inline-sidebar" : "overlay-sidebar", M = v.groups.map((R) => {
|
|
221
|
+
let E = "";
|
|
155
222
|
try {
|
|
156
|
-
|
|
223
|
+
E = JSON.stringify(R.params ?? null);
|
|
157
224
|
} catch {
|
|
158
|
-
|
|
225
|
+
E = "unserializable";
|
|
159
226
|
}
|
|
160
|
-
return `${
|
|
227
|
+
return `${R.id}:${R.panel ?? ""}:${E}`;
|
|
161
228
|
}).join(",");
|
|
162
|
-
return `${v.version}:${x}:${
|
|
163
|
-
}, [v,
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
),
|
|
168
|
-
|
|
169
|
-
}, []), A =
|
|
170
|
-
|
|
171
|
-
}, [
|
|
172
|
-
|
|
173
|
-
}, [
|
|
229
|
+
return `${v.version}:${x}:${M}`;
|
|
230
|
+
}, [v, f]), H = $(
|
|
231
|
+
a.subscribe,
|
|
232
|
+
a.getSnapshot,
|
|
233
|
+
a.getSnapshot
|
|
234
|
+
), U = w(() => a.getComponents(), [a, H]), F = c ? U[c] : null, _ = c ? ((L = a.get(c)) == null ? void 0 : L.title) ?? "Sidebar" : "Sidebar", q = b(() => {
|
|
235
|
+
h(!0);
|
|
236
|
+
}, []), A = b(() => {
|
|
237
|
+
m(), i({ collapsed: !1 }), h(!1);
|
|
238
|
+
}, [m, i]), J = b(() => {
|
|
239
|
+
m(), i({ collapsed: !0 }), h(!1);
|
|
240
|
+
}, [m, i]), G = b(
|
|
174
241
|
(x) => {
|
|
175
|
-
x.target.closest("[role='treeitem']") &&
|
|
242
|
+
x.target.closest("[role='treeitem']") && h(!1);
|
|
176
243
|
},
|
|
177
244
|
[]
|
|
178
245
|
);
|
|
179
|
-
return /* @__PURE__ */
|
|
180
|
-
d &&
|
|
246
|
+
return /* @__PURE__ */ g("div", { className: "relative h-full w-full", children: [
|
|
247
|
+
d && p && n.collapsed && /* @__PURE__ */ r(
|
|
181
248
|
"div",
|
|
182
249
|
{
|
|
183
250
|
className: "pointer-events-none absolute inset-y-0 left-0 z-20 w-10 border-r border-border bg-background/95",
|
|
184
251
|
"aria-hidden": "true"
|
|
185
252
|
}
|
|
186
253
|
),
|
|
187
|
-
|
|
254
|
+
y && /* @__PURE__ */ r(
|
|
188
255
|
"div",
|
|
189
256
|
{
|
|
190
|
-
className:
|
|
257
|
+
className: C(
|
|
191
258
|
"absolute z-30",
|
|
192
|
-
|
|
259
|
+
o ? "left-2 top-2" : "left-1 top-2"
|
|
193
260
|
),
|
|
194
|
-
children: /* @__PURE__ */
|
|
195
|
-
|
|
261
|
+
children: /* @__PURE__ */ r(
|
|
262
|
+
P,
|
|
196
263
|
{
|
|
197
264
|
type: "button",
|
|
198
265
|
variant: "outline",
|
|
199
266
|
size: "icon-sm",
|
|
200
|
-
onClick:
|
|
201
|
-
"aria-label":
|
|
202
|
-
children:
|
|
267
|
+
onClick: q,
|
|
268
|
+
"aria-label": o ? "Open sidebar menu" : "Open collapsed sidebar",
|
|
269
|
+
children: o ? /* @__PURE__ */ r(ue, { className: "h-4 w-4" }) : /* @__PURE__ */ r(pe, { className: "h-4 w-4" })
|
|
203
270
|
}
|
|
204
271
|
)
|
|
205
272
|
}
|
|
206
273
|
),
|
|
207
|
-
d &&
|
|
208
|
-
|
|
274
|
+
d && p && !n.collapsed && /* @__PURE__ */ r("div", { className: "absolute left-2 top-2 z-30", children: /* @__PURE__ */ r(
|
|
275
|
+
P,
|
|
209
276
|
{
|
|
210
277
|
type: "button",
|
|
211
278
|
variant: "outline",
|
|
212
279
|
size: "icon-sm",
|
|
213
|
-
onClick:
|
|
280
|
+
onClick: J,
|
|
214
281
|
"aria-label": "Collapse sidebar",
|
|
215
|
-
children: /* @__PURE__ */
|
|
282
|
+
children: /* @__PURE__ */ r(fe, { className: "h-4 w-4" })
|
|
216
283
|
}
|
|
217
284
|
) }),
|
|
218
|
-
/* @__PURE__ */
|
|
219
|
-
|
|
285
|
+
/* @__PURE__ */ r(
|
|
286
|
+
ee,
|
|
220
287
|
{
|
|
221
288
|
layout: v,
|
|
222
|
-
className:
|
|
223
|
-
|
|
224
|
-
d &&
|
|
289
|
+
className: C(
|
|
290
|
+
t,
|
|
291
|
+
d && p && n.collapsed && "pl-10"
|
|
225
292
|
)
|
|
226
293
|
},
|
|
227
|
-
|
|
294
|
+
z
|
|
228
295
|
),
|
|
229
|
-
|
|
230
|
-
|
|
296
|
+
y && /* @__PURE__ */ r(ae, { open: s, onOpenChange: h, children: /* @__PURE__ */ g(
|
|
297
|
+
re,
|
|
231
298
|
{
|
|
232
299
|
side: "left",
|
|
233
300
|
className: "w-[85vw] max-w-sm p-0",
|
|
234
301
|
children: [
|
|
235
|
-
/* @__PURE__ */
|
|
236
|
-
/* @__PURE__ */
|
|
237
|
-
/* @__PURE__ */
|
|
238
|
-
/* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ g(ne, { className: "flex flex-row items-center justify-between border-b border-border px-4 py-3", children: [
|
|
303
|
+
/* @__PURE__ */ g("div", { children: [
|
|
304
|
+
/* @__PURE__ */ r(se, { children: _ }),
|
|
305
|
+
/* @__PURE__ */ r(oe, { className: "sr-only", children: "Responsive sidebar panel" })
|
|
239
306
|
] }),
|
|
240
|
-
d && /* @__PURE__ */
|
|
241
|
-
|
|
307
|
+
d && /* @__PURE__ */ g(
|
|
308
|
+
P,
|
|
242
309
|
{
|
|
243
310
|
type: "button",
|
|
244
311
|
variant: "outline",
|
|
@@ -246,18 +313,18 @@ function ve({
|
|
|
246
313
|
onClick: A,
|
|
247
314
|
"aria-label": "Pin sidebar open",
|
|
248
315
|
children: [
|
|
249
|
-
/* @__PURE__ */
|
|
316
|
+
/* @__PURE__ */ r(me, { className: "h-4 w-4" }),
|
|
250
317
|
"Pin"
|
|
251
318
|
]
|
|
252
319
|
}
|
|
253
320
|
)
|
|
254
321
|
] }),
|
|
255
|
-
/* @__PURE__ */
|
|
322
|
+
/* @__PURE__ */ r(
|
|
256
323
|
"div",
|
|
257
324
|
{
|
|
258
325
|
className: "h-full min-h-0 overflow-auto",
|
|
259
|
-
onClickCapture:
|
|
260
|
-
children: F ? /* @__PURE__ */
|
|
326
|
+
onClickCapture: G,
|
|
327
|
+
children: F ? /* @__PURE__ */ r(ce, { fallback: /* @__PURE__ */ r(D, {}), children: /* @__PURE__ */ r(F, {}) }) : /* @__PURE__ */ r(D, {})
|
|
261
328
|
}
|
|
262
329
|
)
|
|
263
330
|
]
|
|
@@ -266,14 +333,14 @@ function ve({
|
|
|
266
333
|
] });
|
|
267
334
|
}
|
|
268
335
|
function D() {
|
|
269
|
-
return /* @__PURE__ */
|
|
336
|
+
return /* @__PURE__ */ r("div", { className: "flex h-full min-h-[240px] items-center justify-center text-sm text-muted-foreground", children: "Loading sidebar..." });
|
|
270
337
|
}
|
|
271
|
-
function
|
|
272
|
-
const { sidebar:
|
|
338
|
+
function Ne(e = {}) {
|
|
339
|
+
const { sidebar: t = "filetree", center: a = "empty", right: n } = e, i = [
|
|
273
340
|
{
|
|
274
341
|
id: "sidebar",
|
|
275
342
|
position: "left",
|
|
276
|
-
panel:
|
|
343
|
+
panel: t,
|
|
277
344
|
locked: !0,
|
|
278
345
|
collapsible: !0,
|
|
279
346
|
collapsedWidth: 40,
|
|
@@ -282,49 +349,49 @@ function xe(e = {}) {
|
|
|
282
349
|
{
|
|
283
350
|
id: "center",
|
|
284
351
|
position: "center",
|
|
285
|
-
panel:
|
|
352
|
+
panel: a,
|
|
286
353
|
dynamic: !0,
|
|
287
354
|
placeholder: "empty",
|
|
288
355
|
constraints: { minWidth: 300 }
|
|
289
356
|
}
|
|
290
357
|
];
|
|
291
|
-
return
|
|
358
|
+
return n && i.push({
|
|
292
359
|
id: "right",
|
|
293
360
|
position: "right",
|
|
294
|
-
panel:
|
|
361
|
+
panel: n,
|
|
295
362
|
hideHeader: !0,
|
|
296
363
|
constraints: { minWidth: 250 }
|
|
297
|
-
}), { version: "2.0", groups:
|
|
364
|
+
}), { version: "2.0", groups: i };
|
|
298
365
|
}
|
|
299
|
-
function
|
|
300
|
-
return /* @__PURE__ */
|
|
366
|
+
function ze(e) {
|
|
367
|
+
return /* @__PURE__ */ r(Ce, { layout: Ne(e), className: e.className });
|
|
301
368
|
}
|
|
302
|
-
function
|
|
303
|
-
return /* @__PURE__ */
|
|
304
|
-
|
|
369
|
+
function He({ className: e, onOpenFile: t }) {
|
|
370
|
+
return /* @__PURE__ */ r(
|
|
371
|
+
ie,
|
|
305
372
|
{
|
|
306
|
-
className:
|
|
373
|
+
className: C("h-full border-0 text-muted-foreground", e),
|
|
307
374
|
title: "No file open",
|
|
308
375
|
description: "Open a file to get started",
|
|
309
|
-
actions:
|
|
310
|
-
children: /* @__PURE__ */
|
|
311
|
-
/* @__PURE__ */
|
|
312
|
-
/* @__PURE__ */
|
|
313
|
-
/* @__PURE__ */
|
|
376
|
+
actions: t ? /* @__PURE__ */ r(P, { type: "button", variant: "outline", onClick: t, children: "Open file" }) : null,
|
|
377
|
+
children: /* @__PURE__ */ g("div", { className: "space-y-2 text-sm", children: [
|
|
378
|
+
/* @__PURE__ */ g("div", { className: "flex items-center gap-3", children: [
|
|
379
|
+
/* @__PURE__ */ r(I, { children: "⌘P" }),
|
|
380
|
+
/* @__PURE__ */ r("span", { children: "Open file" })
|
|
314
381
|
] }),
|
|
315
|
-
/* @__PURE__ */
|
|
316
|
-
/* @__PURE__ */
|
|
317
|
-
/* @__PURE__ */
|
|
382
|
+
/* @__PURE__ */ g("div", { className: "flex items-center gap-3", children: [
|
|
383
|
+
/* @__PURE__ */ r(I, { children: "⌘⇧P" }),
|
|
384
|
+
/* @__PURE__ */ r("span", { children: "Command palette" })
|
|
318
385
|
] }),
|
|
319
|
-
/* @__PURE__ */
|
|
320
|
-
/* @__PURE__ */
|
|
321
|
-
/* @__PURE__ */
|
|
386
|
+
/* @__PURE__ */ g("div", { className: "flex items-center gap-3", children: [
|
|
387
|
+
/* @__PURE__ */ r(I, { children: "⌘B" }),
|
|
388
|
+
/* @__PURE__ */ r("span", { children: "Toggle sidebar" })
|
|
322
389
|
] })
|
|
323
390
|
] })
|
|
324
391
|
}
|
|
325
392
|
);
|
|
326
393
|
}
|
|
327
|
-
class
|
|
394
|
+
class Ue extends de {
|
|
328
395
|
constructor() {
|
|
329
396
|
super(...arguments);
|
|
330
397
|
T(this, "state", { hasError: !1, error: null });
|
|
@@ -332,92 +399,92 @@ class Le extends le {
|
|
|
332
399
|
this.setState({ hasError: !1, error: null });
|
|
333
400
|
});
|
|
334
401
|
}
|
|
335
|
-
static getDerivedStateFromError(
|
|
336
|
-
return { hasError: !0, error:
|
|
402
|
+
static getDerivedStateFromError(a) {
|
|
403
|
+
return { hasError: !0, error: a };
|
|
337
404
|
}
|
|
338
|
-
componentDidCatch(
|
|
339
|
-
const { panelId:
|
|
340
|
-
console.error(`[PanelErrorBoundary] Panel "${
|
|
341
|
-
panelId:
|
|
342
|
-
error:
|
|
343
|
-
stack:
|
|
405
|
+
componentDidCatch(a, n) {
|
|
406
|
+
const { panelId: i, onError: o } = this.props;
|
|
407
|
+
console.error(`[PanelErrorBoundary] Panel "${i}" crashed:`, a, n.componentStack), o == null || o({
|
|
408
|
+
panelId: i,
|
|
409
|
+
error: a.message,
|
|
410
|
+
stack: n.componentStack ?? void 0
|
|
344
411
|
});
|
|
345
412
|
}
|
|
346
413
|
render() {
|
|
347
|
-
var
|
|
348
|
-
return this.state.hasError ? /* @__PURE__ */
|
|
349
|
-
|
|
414
|
+
var a;
|
|
415
|
+
return this.state.hasError ? /* @__PURE__ */ r("div", { className: "flex h-full items-center justify-center p-6", children: /* @__PURE__ */ r(
|
|
416
|
+
le,
|
|
350
417
|
{
|
|
351
418
|
className: "w-full max-w-md",
|
|
352
419
|
title: "Something went wrong",
|
|
353
|
-
description: /* @__PURE__ */
|
|
420
|
+
description: /* @__PURE__ */ g(te, { children: [
|
|
354
421
|
"Panel ",
|
|
355
|
-
/* @__PURE__ */
|
|
422
|
+
/* @__PURE__ */ r("code", { className: "rounded bg-muted px-1 py-0.5 text-xs", children: this.props.panelId }),
|
|
356
423
|
" ",
|
|
357
424
|
"encountered an error."
|
|
358
425
|
] }),
|
|
359
|
-
details: (
|
|
360
|
-
actions: /* @__PURE__ */
|
|
426
|
+
details: (a = this.state.error) == null ? void 0 : a.message,
|
|
427
|
+
actions: /* @__PURE__ */ r(P, { type: "button", variant: "outline", onClick: this.handleRetry, children: "Retry" })
|
|
361
428
|
}
|
|
362
429
|
) }) : this.props.children;
|
|
363
430
|
}
|
|
364
431
|
}
|
|
365
|
-
function
|
|
432
|
+
function _e({
|
|
366
433
|
sessions: e,
|
|
367
|
-
activeId:
|
|
368
|
-
onSwitch:
|
|
369
|
-
onCreate:
|
|
370
|
-
onDelete:
|
|
371
|
-
className:
|
|
434
|
+
activeId: t,
|
|
435
|
+
onSwitch: a,
|
|
436
|
+
onCreate: n,
|
|
437
|
+
onDelete: i,
|
|
438
|
+
className: o
|
|
372
439
|
}) {
|
|
373
|
-
const [
|
|
374
|
-
|
|
440
|
+
const [u, d] = N(null), l = S({}), c = w(() => e.map((s) => s.id), [e]);
|
|
441
|
+
k(() => {
|
|
375
442
|
if (c.length === 0) {
|
|
376
443
|
d(null);
|
|
377
444
|
return;
|
|
378
445
|
}
|
|
379
|
-
d((
|
|
380
|
-
}, [c,
|
|
381
|
-
const
|
|
382
|
-
var
|
|
383
|
-
d(
|
|
384
|
-
}, []),
|
|
385
|
-
(
|
|
386
|
-
if (
|
|
387
|
-
if (
|
|
388
|
-
|
|
446
|
+
d((s) => s && c.includes(s) ? s : t && c.includes(t) ? t : c[0] ?? null);
|
|
447
|
+
}, [c, t]);
|
|
448
|
+
const p = b((s) => {
|
|
449
|
+
var h;
|
|
450
|
+
d(s), (h = l.current[s]) == null || h.focus();
|
|
451
|
+
}, []), m = b(
|
|
452
|
+
(s, h) => {
|
|
453
|
+
if (s.target !== s.currentTarget) return;
|
|
454
|
+
if (s.key === "Enter" || s.key === " ") {
|
|
455
|
+
s.preventDefault(), a == null || a(h);
|
|
389
456
|
return;
|
|
390
457
|
}
|
|
391
|
-
const
|
|
392
|
-
if (
|
|
393
|
-
let
|
|
394
|
-
if (
|
|
395
|
-
|
|
396
|
-
else if (
|
|
397
|
-
|
|
398
|
-
else if (
|
|
399
|
-
|
|
400
|
-
else if (
|
|
401
|
-
|
|
458
|
+
const y = c.indexOf(h);
|
|
459
|
+
if (y < 0) return;
|
|
460
|
+
let f = y;
|
|
461
|
+
if (s.key === "ArrowDown")
|
|
462
|
+
f = Math.min(y + 1, c.length - 1);
|
|
463
|
+
else if (s.key === "ArrowUp")
|
|
464
|
+
f = Math.max(y - 1, 0);
|
|
465
|
+
else if (s.key === "Home")
|
|
466
|
+
f = 0;
|
|
467
|
+
else if (s.key === "End")
|
|
468
|
+
f = c.length - 1;
|
|
402
469
|
else
|
|
403
470
|
return;
|
|
404
|
-
|
|
405
|
-
const v = c[
|
|
406
|
-
v &&
|
|
471
|
+
s.preventDefault();
|
|
472
|
+
const v = c[f];
|
|
473
|
+
v && p(v);
|
|
407
474
|
},
|
|
408
|
-
[
|
|
475
|
+
[p, a, c]
|
|
409
476
|
);
|
|
410
|
-
return /* @__PURE__ */
|
|
477
|
+
return /* @__PURE__ */ g(
|
|
411
478
|
"div",
|
|
412
479
|
{
|
|
413
480
|
"data-boring-workspace-part": "session-list",
|
|
414
|
-
className:
|
|
481
|
+
className: C("flex h-full flex-col", o),
|
|
415
482
|
role: "navigation",
|
|
416
483
|
"aria-label": "Sessions",
|
|
417
484
|
children: [
|
|
418
|
-
/* @__PURE__ */
|
|
419
|
-
/* @__PURE__ */
|
|
420
|
-
|
|
485
|
+
/* @__PURE__ */ g("div", { className: "flex items-center justify-between border-b border-border px-3 py-2", children: [
|
|
486
|
+
/* @__PURE__ */ r("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Sessions" }),
|
|
487
|
+
n && /* @__PURE__ */ r(O, { type: "button", variant: "ghost", size: "icon-xs", onClick: n, "aria-label": "New session", children: /* @__PURE__ */ r(
|
|
421
488
|
"svg",
|
|
422
489
|
{
|
|
423
490
|
width: "16",
|
|
@@ -427,105 +494,120 @@ function Be({
|
|
|
427
494
|
stroke: "currentColor",
|
|
428
495
|
strokeWidth: "1.5",
|
|
429
496
|
strokeLinecap: "round",
|
|
430
|
-
children: /* @__PURE__ */
|
|
497
|
+
children: /* @__PURE__ */ r("path", { d: "M8 3v10M3 8h10" })
|
|
431
498
|
}
|
|
432
499
|
) })
|
|
433
500
|
] }),
|
|
434
|
-
/* @__PURE__ */
|
|
435
|
-
e.length === 0 && /* @__PURE__ */
|
|
436
|
-
e.map((
|
|
437
|
-
|
|
501
|
+
/* @__PURE__ */ g("div", { className: "flex-1 overflow-y-auto", role: "list", "aria-label": "Session list", children: [
|
|
502
|
+
e.length === 0 && /* @__PURE__ */ r("div", { className: "px-3 py-6 text-center text-sm text-muted-foreground", children: "No sessions" }),
|
|
503
|
+
e.map((s) => /* @__PURE__ */ r(
|
|
504
|
+
Ee,
|
|
438
505
|
{
|
|
439
|
-
session:
|
|
440
|
-
isActive:
|
|
441
|
-
isFocused:
|
|
442
|
-
onSwitch:
|
|
443
|
-
onDelete:
|
|
444
|
-
onFocus: () => d(
|
|
445
|
-
onKeyDown:
|
|
446
|
-
rowRef: (
|
|
447
|
-
|
|
506
|
+
session: s,
|
|
507
|
+
isActive: s.id === t,
|
|
508
|
+
isFocused: s.id === u,
|
|
509
|
+
onSwitch: a,
|
|
510
|
+
onDelete: i,
|
|
511
|
+
onFocus: () => d(s.id),
|
|
512
|
+
onKeyDown: m,
|
|
513
|
+
rowRef: (h) => {
|
|
514
|
+
l.current[s.id] = h;
|
|
448
515
|
}
|
|
449
516
|
},
|
|
450
|
-
|
|
517
|
+
s.id
|
|
451
518
|
))
|
|
452
519
|
] })
|
|
453
520
|
]
|
|
454
521
|
}
|
|
455
522
|
);
|
|
456
523
|
}
|
|
457
|
-
function
|
|
524
|
+
async function Re(e) {
|
|
525
|
+
var a, n;
|
|
526
|
+
if (typeof navigator < "u" && ((a = navigator.clipboard) != null && a.writeText))
|
|
527
|
+
try {
|
|
528
|
+
return await navigator.clipboard.writeText(e), !0;
|
|
529
|
+
} catch {
|
|
530
|
+
}
|
|
531
|
+
if (typeof document > "u") return !1;
|
|
532
|
+
const t = document.createElement("textarea");
|
|
533
|
+
t.value = e, t.setAttribute("readonly", ""), t.style.position = "fixed", t.style.top = "-9999px", t.style.left = "-9999px", t.style.opacity = "0", t.style.pointerEvents = "none", document.body.appendChild(t);
|
|
534
|
+
try {
|
|
535
|
+
return t.focus(), t.select(), ((n = document.execCommand) == null ? void 0 : n.call(document, "copy")) ?? !1;
|
|
536
|
+
} catch {
|
|
537
|
+
return !1;
|
|
538
|
+
} finally {
|
|
539
|
+
document.body.removeChild(t);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
function Ee({
|
|
458
543
|
session: e,
|
|
459
|
-
isActive:
|
|
460
|
-
isFocused:
|
|
461
|
-
onSwitch:
|
|
462
|
-
onDelete:
|
|
463
|
-
onFocus:
|
|
464
|
-
onKeyDown:
|
|
544
|
+
isActive: t,
|
|
545
|
+
isFocused: a,
|
|
546
|
+
onSwitch: n,
|
|
547
|
+
onDelete: i,
|
|
548
|
+
onFocus: o,
|
|
549
|
+
onKeyDown: u,
|
|
465
550
|
rowRef: d
|
|
466
551
|
}) {
|
|
467
|
-
const [
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
const n = (f = (p = navigator.clipboard) == null ? void 0 : p.writeText) == null ? void 0 : f.bind(navigator.clipboard);
|
|
471
|
-
n && n(e.id).then(() => {
|
|
472
|
-
c(!0), window.setTimeout(() => c(!1), 1200);
|
|
552
|
+
const [l, c] = N(!1), p = b((m) => {
|
|
553
|
+
m.stopPropagation(), Re(e.id).then((s) => {
|
|
554
|
+
s && (c(!0), window.setTimeout(() => c(!1), 1200));
|
|
473
555
|
});
|
|
474
556
|
}, [e.id]);
|
|
475
|
-
return /* @__PURE__ */
|
|
557
|
+
return /* @__PURE__ */ g(
|
|
476
558
|
"div",
|
|
477
559
|
{
|
|
478
560
|
ref: d,
|
|
479
561
|
role: "listitem",
|
|
480
562
|
"data-boring-workspace-part": "session-row",
|
|
481
|
-
"data-boring-state":
|
|
482
|
-
"data-focused":
|
|
483
|
-
className:
|
|
563
|
+
"data-boring-state": t ? "selected" : void 0,
|
|
564
|
+
"data-focused": a ? "true" : "false",
|
|
565
|
+
className: C(
|
|
484
566
|
"group flex items-center gap-2 border-b border-border px-3 py-2 text-sm cursor-pointer transition-colors",
|
|
485
567
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",
|
|
486
|
-
|
|
568
|
+
t ? "bg-accent text-accent-foreground" : "text-foreground hover:bg-accent/50"
|
|
487
569
|
),
|
|
488
|
-
onClick: () =>
|
|
489
|
-
onFocus:
|
|
490
|
-
onKeyDown: (
|
|
491
|
-
tabIndex:
|
|
492
|
-
"aria-current":
|
|
570
|
+
onClick: () => n == null ? void 0 : n(e.id),
|
|
571
|
+
onFocus: o,
|
|
572
|
+
onKeyDown: (m) => u(m, e.id),
|
|
573
|
+
tabIndex: a ? 0 : -1,
|
|
574
|
+
"aria-current": t ? "true" : void 0,
|
|
493
575
|
children: [
|
|
494
|
-
/* @__PURE__ */
|
|
495
|
-
/* @__PURE__ */
|
|
576
|
+
/* @__PURE__ */ r("span", { className: "flex-1 truncate", children: e.title }),
|
|
577
|
+
/* @__PURE__ */ r(
|
|
496
578
|
O,
|
|
497
579
|
{
|
|
498
580
|
type: "button",
|
|
499
581
|
variant: "ghost",
|
|
500
582
|
size: "icon-xs",
|
|
501
583
|
className: "shrink-0 text-muted-foreground opacity-0 hover:text-foreground focus-visible:opacity-100 group-hover:opacity-100 group-data-[focused=true]:opacity-100",
|
|
502
|
-
onClick:
|
|
503
|
-
tabIndex:
|
|
584
|
+
onClick: p,
|
|
585
|
+
tabIndex: a ? 0 : -1,
|
|
504
586
|
"aria-label": `Copy Pi session id for ${e.title}`,
|
|
505
587
|
title: "Copy Pi session id",
|
|
506
|
-
children:
|
|
588
|
+
children: l ? /* @__PURE__ */ r(he, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ r(ge, { className: "h-3.5 w-3.5" })
|
|
507
589
|
}
|
|
508
590
|
),
|
|
509
|
-
|
|
591
|
+
t && /* @__PURE__ */ r(
|
|
510
592
|
"span",
|
|
511
593
|
{
|
|
512
594
|
className: "h-1.5 w-1.5 shrink-0 rounded-full bg-primary",
|
|
513
595
|
"aria-label": "Active"
|
|
514
596
|
}
|
|
515
597
|
),
|
|
516
|
-
|
|
598
|
+
i && /* @__PURE__ */ r(
|
|
517
599
|
O,
|
|
518
600
|
{
|
|
519
601
|
type: "button",
|
|
520
602
|
variant: "ghost",
|
|
521
603
|
size: "icon-xs",
|
|
522
604
|
className: "shrink-0 text-muted-foreground opacity-0 hover:text-destructive focus-visible:opacity-100 group-hover:opacity-100 group-data-[focused=true]:opacity-100",
|
|
523
|
-
onClick: (
|
|
524
|
-
|
|
605
|
+
onClick: (m) => {
|
|
606
|
+
m.stopPropagation(), i(e.id);
|
|
525
607
|
},
|
|
526
|
-
tabIndex:
|
|
608
|
+
tabIndex: a ? 0 : -1,
|
|
527
609
|
"aria-label": `Delete ${e.title}`,
|
|
528
|
-
children: /* @__PURE__ */
|
|
610
|
+
children: /* @__PURE__ */ r(
|
|
529
611
|
"svg",
|
|
530
612
|
{
|
|
531
613
|
width: "14",
|
|
@@ -535,7 +617,7 @@ function Pe({
|
|
|
535
617
|
stroke: "currentColor",
|
|
536
618
|
strokeWidth: "1.5",
|
|
537
619
|
strokeLinecap: "round",
|
|
538
|
-
children: /* @__PURE__ */
|
|
620
|
+
children: /* @__PURE__ */ r("path", { d: "M3.5 3.5l7 7M10.5 3.5l-7 7" })
|
|
539
621
|
}
|
|
540
622
|
)
|
|
541
623
|
}
|
|
@@ -545,110 +627,114 @@ function Pe({
|
|
|
545
627
|
);
|
|
546
628
|
}
|
|
547
629
|
export {
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
630
|
+
Je as ArtifactSurfacePane,
|
|
631
|
+
Ge as CatalogRegistry,
|
|
632
|
+
ba as ChatLayout,
|
|
633
|
+
Na as CodeEditor,
|
|
634
|
+
Ve as CodeEditorPane,
|
|
635
|
+
Xe as CommandPalette,
|
|
636
|
+
Qe as CommandRegistry,
|
|
637
|
+
ee as DockviewShell,
|
|
638
|
+
He as EmptyPane,
|
|
639
|
+
Ta as FileTree,
|
|
640
|
+
Ye as FileTreePane,
|
|
641
|
+
Ze as FileTreeView,
|
|
642
|
+
ze as IdeLayout,
|
|
643
|
+
et as MAX_PANELS,
|
|
644
|
+
Oa as MarkdownEditor,
|
|
645
|
+
tt as MarkdownEditorPane,
|
|
646
|
+
at as PanelChrome,
|
|
647
|
+
Ue as PanelErrorBoundary,
|
|
648
|
+
rt as PanelRegistry,
|
|
649
|
+
nt as PluginError,
|
|
650
|
+
st as PluginErrorBoundary,
|
|
651
|
+
ot as PluginErrorProvider,
|
|
652
|
+
it as RegistryProvider,
|
|
653
|
+
Ce as ResponsiveDockviewShell,
|
|
654
|
+
lt as SessionBrowser,
|
|
655
|
+
_e as SessionList,
|
|
656
|
+
ct as SurfaceResolverRegistry,
|
|
657
|
+
dt as SurfaceShell,
|
|
658
|
+
ut as ThemeProvider,
|
|
659
|
+
wa as Toaster,
|
|
660
|
+
ya as TopBar,
|
|
661
|
+
pt as UI_COMMAND_EVENT,
|
|
662
|
+
ft as WORKSPACE_OPEN_PATH_SURFACE_KIND,
|
|
663
|
+
mt as WorkbenchLeftPane,
|
|
664
|
+
ht as WorkspaceFilesProvider,
|
|
665
|
+
De as WorkspaceLink,
|
|
666
|
+
va as WorkspaceLoadingState,
|
|
667
|
+
gt as WorkspaceProvider,
|
|
668
|
+
bt as agentMeta,
|
|
669
|
+
yt as bindStore,
|
|
670
|
+
vt as bootstrap,
|
|
671
|
+
xa as buildChatLayout,
|
|
672
|
+
xt as buildFullPagePanelHref,
|
|
673
|
+
Ne as buildIdeLayout,
|
|
674
|
+
kt as closePanelSchema,
|
|
675
|
+
C as cn,
|
|
676
|
+
wt as createBridge,
|
|
677
|
+
Pt as createBridgeClient,
|
|
678
|
+
Ra as createShadcnTheme,
|
|
679
|
+
St as createWorkspaceStore,
|
|
680
|
+
La as definePanel,
|
|
681
|
+
Pa as dismissToast,
|
|
682
|
+
Ct as emitAgentData,
|
|
683
|
+
Nt as emitFilesystemAgentFileChange,
|
|
684
|
+
Rt as events,
|
|
685
|
+
Et as expandToFileSchema,
|
|
686
|
+
Tt as filesystemEvents,
|
|
687
|
+
It as filesystemPlugin,
|
|
688
|
+
Ot as formatShortcut,
|
|
689
|
+
Ft as getFileIcon,
|
|
690
|
+
Lt as navigateToLineSchema,
|
|
691
|
+
Mt as notificationSchema,
|
|
692
|
+
Bt as onFilesystemChanged,
|
|
693
|
+
Wt as openFileSchema,
|
|
694
|
+
Dt as openPanelSchema,
|
|
695
|
+
Q as postUiCommand,
|
|
696
|
+
Ke as readFileRecords,
|
|
697
|
+
Sa as toast,
|
|
698
|
+
Kt as useActiveFile,
|
|
699
|
+
$t as useActivePanel,
|
|
700
|
+
We as useActivePanels,
|
|
701
|
+
jt as useApiBaseUrl,
|
|
702
|
+
$e as useArtifactPanels,
|
|
703
|
+
je as useArtifactRouting,
|
|
704
|
+
zt as useAutoOpenAgentFiles,
|
|
705
|
+
Ht as useCatalogRegistry,
|
|
706
|
+
Ut as useCatalogs,
|
|
707
|
+
_t as useCommandRegistry,
|
|
708
|
+
qt as useCommands,
|
|
709
|
+
At as useDirtyFiles,
|
|
710
|
+
Jt as useDockviewApi,
|
|
711
|
+
Gt as useEditorLifecycle,
|
|
712
|
+
Vt as useEvent,
|
|
713
|
+
Xt as useFilePane,
|
|
714
|
+
Qt as useFullPagePanelHref,
|
|
715
|
+
Yt as useHasWorkspaceFilesProvider,
|
|
716
|
+
Zt as useHydrationComplete,
|
|
717
|
+
ea as useIsFullPagePanel,
|
|
718
|
+
ta as useKeyboardShortcuts,
|
|
719
|
+
aa as useOpenPanels,
|
|
720
|
+
ra as usePanelRenderMode,
|
|
721
|
+
na as usePluginErrors,
|
|
722
|
+
K as useRegistry,
|
|
723
|
+
sa as useResetLayout,
|
|
724
|
+
ke as useResponsiveSidebarCollapse,
|
|
725
|
+
Z as useSetSidebar,
|
|
726
|
+
Y as useSidebarState,
|
|
727
|
+
oa as useSurfaceResolverRegistry,
|
|
728
|
+
ia as useTheme,
|
|
729
|
+
la as useThemePreference,
|
|
646
730
|
W as useViewportBreakpoint,
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
731
|
+
ca as useWorkspaceAttention,
|
|
732
|
+
da as useWorkspaceBridge,
|
|
733
|
+
ua as useWorkspaceChatPanel,
|
|
734
|
+
pa as useWorkspaceContext,
|
|
735
|
+
fa as useWorkspaceContextOptional,
|
|
736
|
+
ma as useWorkspaceRequestId,
|
|
737
|
+
ha as userMeta,
|
|
738
|
+
j as workspaceLinkCommand,
|
|
739
|
+
be as workspaceLinkHref
|
|
654
740
|
};
|